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=-3.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no 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 09FA8C4363D for ; Thu, 24 Sep 2020 21:40:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9088B2399A for ; Thu, 24 Sep 2020 21:40:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726638AbgIXVkI (ORCPT ); Thu, 24 Sep 2020 17:40:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39680 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726185AbgIXVkH (ORCPT ); Thu, 24 Sep 2020 17:40:07 -0400 Received: from shards.monkeyblade.net (shards.monkeyblade.net [IPv6:2620:137:e000::1:9]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93D2AC0613CE for ; Thu, 24 Sep 2020 14:40:07 -0700 (PDT) Received: from localhost (unknown [IPv6:2601:601:9f00:477::3d5]) (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 9461012A1E4EE for ; Thu, 24 Sep 2020 14:23:16 -0700 (PDT) Date: Thu, 24 Sep 2020 14:40:01 -0700 (PDT) Message-Id: <20200924.144001.2148078165712329256.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 27.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Sep_24_14_40_01_2020_771)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [2620:137:e000::1:9]); Thu, 24 Sep 2020 14:23:18 -0700 (PDT) Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Thu_Sep_24_14_40_01_2020_771)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v5.4 and v5.8 -stable, respectively. Thank you! ----Next_Part(Thu_Sep_24_14_40_01_2020_771)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_54.mbox" RnJvbSA4YjI0MzI2MzM4OWY5NmM5YzFkMjc2NzQxN2M2ZWJjNmI1YTgzZWM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCAzIFNlcCAyMDIwIDE5OjEwOjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMS8z Nl0gYWN0X2lmZTogbG9hZCBtZXRhIG1vZHVsZXMgYmVmb3JlIHRjZl9pZHJfY2hlY2tfYWxsb2Mo KQoKWyBVcHN0cmVhbSBjb21taXQgY2M4ZTU4ZjgzMjVjZGYxNGI5NTE2YjYxYzM4NGNkZmQwMmE0 ZjQwOCBdCgpUaGUgZm9sbG93aW5nIGRlYWRsb2NrIHNjZW5hcmlvIGlzIHRyaWdnZXJlZCBieSBz eXpib3Q6CgpUaHJlYWQgQToJCQkJVGhyZWFkIEI6CnRjZl9pZHJfY2hlY2tfYWxsb2MoKQouLi4K cG9wdWxhdGVfbWV0YWxpc3QoKQogIHJ0bmxfdW5sb2NrKCkKCQkJCQlydG5sX2xvY2soKQoJCQkJ CS4uLgogIHJlcXVlc3RfbW9kdWxlKCkJCQl0Y2ZfaWRyX2NoZWNrX2FsbG9jKCkKICBydG5sX2xv Y2soKQoKQXQgdGhpcyBwb2ludCwgdGhyZWFkIEEgaXMgd2FpdGluZyBmb3IgdGhyZWFkIEIgdG8g cmVsZWFzZSBSVE5MCmxvY2ssIHdoaWxlIHRocmVhZCBCIGlzIHdhaXRpbmcgZm9yIHRocmVhZCBB IHRvIGNvbW1pdCB0aGUgSURSCmNoYW5nZSB3aXRoIHRjZl9pZHJfaW5zZXJ0KCkgbGF0ZXIuCgpC cmVhayB0aGlzIGRlYWRsb2NrIHNpdHVhdGlvbiBieSBwcmVsb2FkaW5nIGlmZSBtb2R1bGVzIGVh cmxpZXIsCmJlZm9yZSB0Y2ZfaWRyX2NoZWNrX2FsbG9jKCksIHRoaXMgaXMgZmluZSBiZWNhdXNl IHdlIG9ubHkgbmVlZAp0byBsb2FkIG1vZHVsZXMgd2UgbmVlZCBwb3RlbnRpYWxseS4KClJlcG9y dGVkLWFuZC10ZXN0ZWQtYnk6IHN5emJvdCs4MGUzMmI1ZDFmOTkyM2Y4YWNlNkBzeXprYWxsZXIu YXBwc3BvdG1haWwuY29tCkZpeGVzOiAwMTkwYzFkNDUyYTkgKCJuZXQ6IHNjaGVkOiBhdG9taWNh bGx5IGNoZWNrLWFsbG9jYXRlIGFjdGlvbiIpCkNjOiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9q YXRhdHUuY29tPgpDYzogVmxhZCBCdXNsb3YgPHZsYWRidUBtZWxsYW5veC5jb20+CkNjOiBKaXJp IFBpcmtvIDxqaXJpQHJlc251bGxpLnVzPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91 Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFA a2VybmVsLm9yZz4KLS0tCiBuZXQvc2NoZWQvYWN0X2lmZS5jIHwgNDQgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRp b25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X2lmZS5j IGIvbmV0L3NjaGVkL2FjdF9pZmUuYwppbmRleCBhMGNmYjQ3OTNjOTMuLjc3ODM3MWJhYzkzZSAx MDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9pZmUuYworKysgYi9uZXQvc2NoZWQvYWN0X2lmZS5j CkBAIC00MzYsNiArNDM2LDI1IEBAIHN0YXRpYyB2b2lkIHRjZl9pZmVfY2xlYW51cChzdHJ1Y3Qg dGNfYWN0aW9uICphKQogCQlrZnJlZV9yY3UocCwgcmN1KTsKIH0KIAorc3RhdGljIGludCBsb2Fk X21ldGFsaXN0KHN0cnVjdCBubGF0dHIgKip0YiwgYm9vbCBydG5sX2hlbGQpCit7CisJaW50IGk7 CisKKwlmb3IgKGkgPSAxOyBpIDwgbWF4X21ldGFjbnQ7IGkrKykgeworCQlpZiAodGJbaV0pIHsK KwkJCXZvaWQgKnZhbCA9IG5sYV9kYXRhKHRiW2ldKTsKKwkJCWludCBsZW4gPSBubGFfbGVuKHRi W2ldKTsKKwkJCWludCByYzsKKworCQkJcmMgPSBsb2FkX21ldGFvcHNfYW5kX3ZldChpLCB2YWws IGxlbiwgcnRubF9oZWxkKTsKKwkJCWlmIChyYyAhPSAwKQorCQkJCXJldHVybiByYzsKKwkJfQor CX0KKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHBvcHVsYXRlX21ldGFsaXN0KHN0cnVj dCB0Y2ZfaWZlX2luZm8gKmlmZSwgc3RydWN0IG5sYXR0ciAqKnRiLAogCQkJICAgICBib29sIGV4 aXN0cywgYm9vbCBydG5sX2hlbGQpCiB7CkBAIC00NDksMTAgKzQ2OCw2IEBAIHN0YXRpYyBpbnQg cG9wdWxhdGVfbWV0YWxpc3Qoc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLCBzdHJ1Y3QgbmxhdHRy ICoqdGIsCiAJCQl2YWwgPSBubGFfZGF0YSh0YltpXSk7CiAJCQlsZW4gPSBubGFfbGVuKHRiW2ld KTsKIAotCQkJcmMgPSBsb2FkX21ldGFvcHNfYW5kX3ZldChpLCB2YWwsIGxlbiwgcnRubF9oZWxk KTsKLQkJCWlmIChyYyAhPSAwKQotCQkJCXJldHVybiByYzsKLQogCQkJcmMgPSBhZGRfbWV0YWlu Zm8oaWZlLCBpLCB2YWwsIGxlbiwgZXhpc3RzKTsKIAkJCWlmIChyYykKIAkJCQlyZXR1cm4gcmM7 CkBAIC01MDgsNiArNTIzLDIxIEBAIHN0YXRpYyBpbnQgdGNmX2lmZV9pbml0KHN0cnVjdCBuZXQg Km5ldCwgc3RydWN0IG5sYXR0ciAqbmxhLAogCWlmICghcCkKIAkJcmV0dXJuIC1FTk9NRU07CiAK KwlpZiAodGJbVENBX0lGRV9NRVRBTFNUXSkgeworCQllcnIgPSBubGFfcGFyc2VfbmVzdGVkX2Rl cHJlY2F0ZWQodGIyLCBJRkVfTUVUQV9NQVgsCisJCQkJCQkgIHRiW1RDQV9JRkVfTUVUQUxTVF0s IE5VTEwsCisJCQkJCQkgIE5VTEwpOworCQlpZiAoZXJyKSB7CisJCQlrZnJlZShwKTsKKwkJCXJl dHVybiBlcnI7CisJCX0KKwkJZXJyID0gbG9hZF9tZXRhbGlzdCh0YjIsIHJ0bmxfaGVsZCk7CisJ CWlmIChlcnIpIHsKKwkJCWtmcmVlKHApOworCQkJcmV0dXJuIGVycjsKKwkJfQorCX0KKwogCWlu ZGV4ID0gcGFybS0+aW5kZXg7CiAJZXJyID0gdGNmX2lkcl9jaGVja19hbGxvYyh0biwgJmluZGV4 LCBhLCBiaW5kKTsKIAlpZiAoZXJyIDwgMCkgewpAQCAtNTY5LDE1ICs1OTksOSBAQCBzdGF0aWMg aW50IHRjZl9pZmVfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAl9 CiAKIAlpZiAodGJbVENBX0lGRV9NRVRBTFNUXSkgewotCQllcnIgPSBubGFfcGFyc2VfbmVzdGVk X2RlcHJlY2F0ZWQodGIyLCBJRkVfTUVUQV9NQVgsCi0JCQkJCQkgIHRiW1RDQV9JRkVfTUVUQUxT VF0sIE5VTEwsCi0JCQkJCQkgIE5VTEwpOwotCQlpZiAoZXJyKQotCQkJZ290byBtZXRhZGF0YV9w YXJzZV9lcnI7CiAJCWVyciA9IHBvcHVsYXRlX21ldGFsaXN0KGlmZSwgdGIyLCBleGlzdHMsIHJ0 bmxfaGVsZCk7CiAJCWlmIChlcnIpCiAJCQlnb3RvIG1ldGFkYXRhX3BhcnNlX2VycjsKLQogCX0g ZWxzZSB7CiAJCS8qIGlmIG5vIHBhc3NlZCBtZXRhZGF0YSBhbGxvdyBsaXN0IG9yIHBhc3NlZCBh bGxvdy1hbGwKIAkJICogdGhlbiBoZXJlIHdlIHByb2Nlc3MgYnkgYWRkaW5nIGFzIG1hbnkgc3Vw cG9ydGVkIG1ldGFkYXR1bQotLSAKMi4yNi4yCgoKRnJvbSA0OTFiY2ZjNWE5YTQxYmQ4MmQzYWM1 OTg4ZWJiZDJhZDMwMTc2OWExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWYXN1bmRo YXJhIFZvbGFtIDx2YXN1bmRoYXJhLXYudm9sYW1AYnJvYWRjb20uY29tPgpEYXRlOiBTYXQsIDUg U2VwIDIwMjAgMjI6NTU6MzYgLTA0MDAKU3ViamVjdDogW1BBVENIIDAyLzM2XSBibnh0X2VuOiBB dm9pZCBzZW5kaW5nIGZpcm13YXJlIG1lc3NhZ2VzIHdoZW4gQUVSIGVycm9yCiBpcyBkZXRlY3Rl ZC4KClsgVXBzdHJlYW0gY29tbWl0IGIzNDBkYzY4MGVkNDhkY2MwNWI1NmUxZWJlMWI5NTM1ODEz YzNlZTAgXQoKV2hlbiB0aGUgZHJpdmVyIGdvZXMgdGhyb3VnaCBQQ0llIEFFUiByZXNldCBpbiBl cnJvciBzdGF0ZSwgYWxsCmZpcm13YXJlIG1lc3NhZ2VzIHdpbGwgdGltZW91dCBiZWNhdXNlIHRo ZSBQQ0llIGJ1cyBpcyBubyBsb25nZXIKYWNjZXNzaWJsZS4gIFRoaXMgY2FuIGxlYWQgdG8gQUVS IHJlc2V0IHRha2luZyBtYW55IG1pbnV0ZXMgdG8KY29tcGxldGUgYXMgZWFjaCBmaXJtd2FyZSBj b21tYW5kIHRha2VzIHRpbWUgdG8gdGltZW91dC4KCkRlZmluZSBhIG5ldyBtYWNybyBCTlhUX05P X0ZXX0FDQ0VTUygpIHRvIHNraXAgdGhlc2UgZmlybXdhcmUgbWVzc2FnZXMKd2hlbiBlaXRoZXIg ZmlybXdhcmUgaXMgaW4gZmF0YWwgZXJyb3Igc3RhdGUgb3Igd2hlbgpwY2lfY2hhbm5lbF9vZmZs aW5lKCkgaXMgdHJ1ZS4gIEl0IG5vdyB0YWtlcyBhIG1vcmUgcmVhc29uYWJsZSAyMCB0bwozMCBz ZWNvbmRzIHRvIGNvbXBsZXRlIEFFUiByZWNvdmVyeS4KCkZpeGVzOiBiNGZmZjIwNzlkMTAgKCJi bnh0X2VuOiBEbyBub3Qgc2VuZCBmaXJtd2FyZSBtZXNzYWdlcyBpZiBmaXJtd2FyZSBpcyBpbiBl cnJvciBzdGF0ZS4iKQpTaWduZWQtb2ZmLWJ5OiBWYXN1bmRoYXJhIFZvbGFtIDx2YXN1bmRoYXJh LXYudm9sYW1AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hh ZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJh QGtlcm5lbC5vcmc+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0 LmMgfCA2ICsrKy0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0Lmgg fCA0ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKaW5kZXggNDAzMDAy MGY5MmJlLi4wMGEyMTM3YzJiMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2JueHQvYm54dC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2Ju eHQvYm54dC5jCkBAIC00MjA0LDcgKzQyMDQsNyBAQCBzdGF0aWMgaW50IGJueHRfaHdybV9kb19z ZW5kX21zZyhzdHJ1Y3QgYm54dCAqYnAsIHZvaWQgKm1zZywgdTMyIG1zZ19sZW4sCiAJdTMyIGJh cl9vZmZzZXQgPSBCTlhUX0dSQ1BGX1JFR19DSElNUF9DT01NOwogCXUxNiBkc3QgPSBCTlhUX0hX Uk1fQ0hOTF9DSElNUDsKIAotCWlmICh0ZXN0X2JpdChCTlhUX1NUQVRFX0ZXX0ZBVEFMX0NPTkQs ICZicC0+c3RhdGUpKQorCWlmIChCTlhUX05PX0ZXX0FDQ0VTUyhicCkpCiAJCXJldHVybiAtRUJV U1k7CiAKIAlpZiAobXNnX2xlbiA+IEJOWFRfSFdSTV9NQVhfUkVRX0xFTikgewpAQCAtNTUzOSw3 ICs1NTM5LDcgQEAgc3RhdGljIGludCBod3JtX3JpbmdfZnJlZV9zZW5kX21zZyhzdHJ1Y3QgYm54 dCAqYnAsCiAJc3RydWN0IGh3cm1fcmluZ19mcmVlX291dHB1dCAqcmVzcCA9IGJwLT5od3JtX2Nt ZF9yZXNwX2FkZHI7CiAJdTE2IGVycm9yX2NvZGU7CiAKLQlpZiAodGVzdF9iaXQoQk5YVF9TVEFU RV9GV19GQVRBTF9DT05ELCAmYnAtPnN0YXRlKSkKKwlpZiAoQk5YVF9OT19GV19BQ0NFU1MoYnAp KQogCQlyZXR1cm4gMDsKIAogCWJueHRfaHdybV9jbWRfaGRyX2luaXQoYnAsICZyZXEsIEhXUk1f UklOR19GUkVFLCBjbXBsX3JpbmdfaWQsIC0xKTsKQEAgLTc0NTQsNyArNzQ1NCw3IEBAIHN0YXRp YyBpbnQgYm54dF9zZXRfdHBhKHN0cnVjdCBibnh0ICpicCwgYm9vbCBzZXRfdHBhKQogCiAJaWYg KHNldF90cGEpCiAJCXRwYV9mbGFncyA9IGJwLT5mbGFncyAmIEJOWFRfRkxBR19UUEE7Ci0JZWxz ZSBpZiAodGVzdF9iaXQoQk5YVF9TVEFURV9GV19GQVRBTF9DT05ELCAmYnAtPnN0YXRlKSkKKwll bHNlIGlmIChCTlhUX05PX0ZXX0FDQ0VTUyhicCkpCiAJCXJldHVybiAwOwogCWZvciAoaSA9IDA7 IGkgPCBicC0+bnJfdm5pY3M7IGkrKykgewogCQlyYyA9IGJueHRfaHdybV92bmljX3NldF90cGEo YnAsIGksIHRwYV9mbGFncyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibnh0L2JueHQuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54 dC5oCmluZGV4IGE2MWE1ODczYWIwYS4uZDJkZDg1MmQyN2RhIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuaAorKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9ibnh0L2JueHQuaApAQCAtMTYyOCw2ICsxNjI4LDEwIEBAIHN0cnVjdCBi bnh0IHsKICNkZWZpbmUgQk5YVF9TVEFURV9BQk9SVF9FUlIJNQogI2RlZmluZSBCTlhUX1NUQVRF X0ZXX0ZBVEFMX0NPTkQJNgogCisjZGVmaW5lIEJOWFRfTk9fRldfQUNDRVNTKGJwKQkJCQkJXAor CSh0ZXN0X2JpdChCTlhUX1NUQVRFX0ZXX0ZBVEFMX0NPTkQsICYoYnApLT5zdGF0ZSkgfHwJXAor CSBwY2lfY2hhbm5lbF9vZmZsaW5lKChicCktPnBkZXYpKQorCiAJc3RydWN0IGJueHRfaXJxCSpp cnFfdGJsOwogCWludAkJCXRvdGFsX2lycXM7CiAJdTgJCQltYWNfYWRkcltFVEhfQUxFTl07Ci0t IAoyLjI2LjIKCgpGcm9tIGQxNTMzMjZjODBhZGU4NzAwYmZjZmJmMmMxOTA3ZTFmNzM1NmU4YWYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZhc3VuZGhhcmEgVm9sYW0gPHZhc3VuZGhh cmEtdi52b2xhbUBicm9hZGNvbS5jb20+CkRhdGU6IFNhdCwgNSBTZXAgMjAyMCAyMjo1NTozNyAt MDQwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMzZdIGJueHRfZW46IEZpeCBOVUxMIHB0ciBkZXJlZmVy ZW5jZSBjcmFzaCBpbgogYm54dF9md19yZXNldF90YXNrKCkKClsgVXBzdHJlYW0gY29tbWl0IGIx NjkzOWI1OWNjMDAyMzFhNzVkMjI0ZmQwNThkMjJjOWQwNjQ5NzYgXQoKYm54dF9md19yZXNldF90 YXNrKCkgd2hpY2ggcnVucyBmcm9tIGEgd29ya3F1ZXVlIGNhbiByYWNlIHdpdGgKYm54dF9yZW1v dmVfb25lKCkuICBGb3IgZXhhbXBsZSwgaWYgZmlybXdhcmUgcmVzZXQgYW5kIFZGIEZMUiBhcmUK aGFwcGVuaW5nIGF0IGFib3V0IHRoZSBzYW1lIHRpbWUuCgpibnh0X3JlbW92ZV9vbmUoKSBhbHJl YWR5IGNhbmNlbHMgdGhlIHdvcmtxdWV1ZSBhbmQgd2FpdHMgZm9yIGl0CnRvIGZpbmlzaCwgYnV0 IHdlIG5lZWQgdG8gZG8gdGhpcyBlYXJsaWVyIGJlZm9yZSB0aGUgZGV2bGluawpyZXBvcnRlcnMg YXJlIGRlc3Ryb3llZC4gIFRoaXMgd2lsbCBndWFyYW50ZWUgdGhhdAp0aGUgZGV2bGluayByZXBv cnRlcnMgd2lsbCBhbHdheXMgYmUgdmFsaWQgd2hlbiBibnh0X2Z3X3Jlc2V0X3Rhc2soKQppcyBz dGlsbCBydW5uaW5nLgoKRml4ZXM6IGIxNDhiYjIzOGMwMiAoImJueHRfZW46IEZpeCBwb3NzaWJs ZSBjcmFzaCBpbiBibnh0X2Z3X3Jlc2V0X3Rhc2soKS4iKQpSZXZpZXdlZC1ieTogRWR3aW4gUGVl ciA8ZWR3aW4ucGVlckBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IFZhc3VuZGhhcmEgVm9s YW0gPHZhc3VuZGhhcmEtdi52b2xhbUBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hh ZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIg S2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibnh0L2JueHQuYyB8IDcgKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibnh0L2JueHQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQv Ym54dC5jCmluZGV4IDAwYTIxMzdjMmIzMS4uNTkyNTdlZTI1MTY4IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwpAQCAtMTEzODUsMTQgKzExMzg1LDE1IEBAIHN0 YXRpYyB2b2lkIGJueHRfcmVtb3ZlX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAlpZiAoQk5Y VF9QRihicCkpCiAJCWJueHRfc3Jpb3ZfZGlzYWJsZShicCk7CiAKKwljbGVhcl9iaXQoQk5YVF9T VEFURV9JTl9GV19SRVNFVCwgJmJwLT5zdGF0ZSk7CisJYm54dF9jYW5jZWxfc3Bfd29yayhicCk7 CisJYnAtPnNwX2V2ZW50ID0gMDsKKwogCWJueHRfZGxfZndfcmVwb3J0ZXJzX2Rlc3Ryb3koYnAs IHRydWUpOwogCXBjaV9kaXNhYmxlX3BjaWVfZXJyb3JfcmVwb3J0aW5nKHBkZXYpOwogCXVucmVn aXN0ZXJfbmV0ZGV2KGRldik7CiAJYm54dF9kbF91bnJlZ2lzdGVyKGJwKTsKIAlibnh0X3NodXRk b3duX3RjKGJwKTsKLQljbGVhcl9iaXQoQk5YVF9TVEFURV9JTl9GV19SRVNFVCwgJmJwLT5zdGF0 ZSk7Ci0JYm54dF9jYW5jZWxfc3Bfd29yayhicCk7Ci0JYnAtPnNwX2V2ZW50ID0gMDsKIAogCWJu eHRfY2xlYXJfaW50X21vZGUoYnApOwogCWJueHRfaHdybV9mdW5jX2Rydl91bnJndHIoYnApOwot LSAKMi4yNi4yCgoKRnJvbSA3OTg2ZGY1ZWJjZDI3YWRiODBlNDY2YzdhMDdkYjE5NmNjYmFkZDA3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSYWp1IFJhbmdvanUgPHJhanVyQGNoZWxz aW8uY29tPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIxOjUwOjM5ICswNTMwClN1YmplY3Q6IFtQ QVRDSCAwNC8zNl0gY3hnYjQ6IGZpeCBtZW1vcnkgbGVhayBkdXJpbmcgbW9kdWxlIHVubG9hZAoK WyBVcHN0cmVhbSBjb21taXQgZjRhMjZhOWIzMTFkN2ZmOWRiNDYxMjc4ZmFmMjg2OWQwNjQ5NmVm OCBdCgpGaXggdGhlIG1lbW9yeSBsZWFrIGluIG1wcyBkdXJpbmcgbW9kdWxlIHVubG9hZApwYXRo IGJ5IGZyZWVpbmcgbXBzIHJlZmVyZW5jZSBlbnRyaWVzIGlmIHRoZSBsaXN0CmFkcHRlci0+bXBz X3JlZiBpcyBub3QgYWxyZWFkeSBlbXB0eQoKRml4ZXM6IDI4YjM4NzA1NzhlZiAoImN4Z2I0OiBS ZS13b3JrIHRoZSBsb2dpYyBmb3IgbXBzIHJlZmNvdW50aW5nIikKU2lnbmVkLW9mZi1ieTogUmFq dSBSYW5nb2p1IDxyYWp1ckBjaGVsc2lvLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxz aW8vY3hnYjQvY3hnYjRfbXBzLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVs c2lvL2N4Z2I0L2N4Z2I0X21wcy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdi NC9jeGdiNF9tcHMuYwppbmRleCBiMWEwNzNlZWE2MGIuLmEwMjBlODQ5MDY4MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tcHMuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21wcy5jCkBAIC0yMjksNyAr MjI5LDcgQEAgdm9pZCBjeGdiNF9mcmVlX21wc19yZWZfZW50cmllcyhzdHJ1Y3QgYWRhcHRlciAq YWRhcCkKIHsKIAlzdHJ1Y3QgbXBzX2VudHJpZXNfcmVmICptcHNfZW50cnksICp0bXA7CiAKLQlp ZiAoIWxpc3RfZW1wdHkoJmFkYXAtPm1wc19yZWYpKQorCWlmIChsaXN0X2VtcHR5KCZhZGFwLT5t cHNfcmVmKSkKIAkJcmV0dXJuOwogCiAJc3Bpbl9sb2NrKCZhZGFwLT5tcHNfcmVmX2xvY2spOwot LSAKMi4yNi4yCgoKRnJvbSA1M2U4ZmRiZDVmNTM5MTIyY2EyZmExNDQ3ODMyMWI4M2VjYmRkMThj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHYW5qaSBBcmF2aW5kIDxnYW5qaS5hcmF2 aW5kQGNoZWxzaW8uY29tPgpEYXRlOiBGcmksIDQgU2VwIDIwMjAgMTU6NTg6MTggKzA1MzAKU3Vi amVjdDogW1BBVENIIDA1LzM2XSBjeGdiNDogRml4IG9mZnNldCB3aGVuIGNsZWFyaW5nIGZpbHRl ciBieXRlIGNvdW50ZXJzCgpbIFVwc3RyZWFtIGNvbW1pdCA5NGNjMjQyYTA2N2E4NjljMjk4MDBh YTc4OWQzOGI3Njc2MTM2ZTUwIF0KClBhc3MgdGhlIGNvcnJlY3Qgb2Zmc2V0IHRvIGNsZWFyIHRo ZSBzdGFsZSBmaWx0ZXIgaGl0CmJ5dGVzIGNvdW50ZXIuIE90aGVyd2lzZSwgdGhlIGNvdW50ZXIg c3RhcnRzIGluY3JlbWVudGluZwpmcm9tIHRoZSBzdGFsZSBpbmZvcm1hdGlvbiwgaW5zdGVhZCBv ZiAwLgoKRml4ZXM6IDEyYjI3NmZiZjZlMCAoImN4Z2I0OiBhZGQgc3VwcG9ydCB0byBjcmVhdGUg aGFzaCBmaWx0ZXJzIikKU2lnbmVkLW9mZi1ieTogR2FuamkgQXJhdmluZCA8Z2FuamkuYXJhdmlu ZEBjaGVsc2lvLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVs Lm9yZz4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2ZpbHRl ci5jIHwgOSArKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdi NC9jeGdiNF9maWx0ZXIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hn YjRfZmlsdGVyLmMKaW5kZXggZjQ1OTMxMzM1N2M3Li4xMzdmZjAwNjA1ZDkgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZmlsdGVyLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9maWx0ZXIuYwpAQCAtMTYx NywxMyArMTYxNywxNiBAQCBpbnQgY3hnYjRfZGVsX2ZpbHRlcihzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LCBpbnQgZmlsdGVyX2lkLAogc3RhdGljIGludCBjb25maWd1cmVfZmlsdGVyX3RjYihzdHJ1 Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHRpZCwKIAkJCQlzdHJ1Y3QgZmlsdGVyX2Vu dHJ5ICpmKQogewotCWlmIChmLT5mcy5oaXRjbnRzKQorCWlmIChmLT5mcy5oaXRjbnRzKSB7CiAJ CXNldF90Y2JfZmllbGQoYWRhcCwgZiwgdGlkLCBUQ0JfVElNRVNUQU1QX1csCi0JCQkgICAgICBU Q0JfVElNRVNUQU1QX1YoVENCX1RJTUVTVEFNUF9NKSB8CisJCQkgICAgICBUQ0JfVElNRVNUQU1Q X1YoVENCX1RJTUVTVEFNUF9NKSwKKwkJCSAgICAgIFRDQl9USU1FU1RBTVBfVigwVUxMKSwKKwkJ CSAgICAgIDEpOworCQlzZXRfdGNiX2ZpZWxkKGFkYXAsIGYsIHRpZCwgVENCX1JUVF9UU19SRUNF TlRfQUdFX1csCiAJCQkgICAgICBUQ0JfUlRUX1RTX1JFQ0VOVF9BR0VfVihUQ0JfUlRUX1RTX1JF Q0VOVF9BR0VfTSksCi0JCQkgICAgICBUQ0JfVElNRVNUQU1QX1YoMFVMTCkgfAogCQkJICAgICAg VENCX1JUVF9UU19SRUNFTlRfQUdFX1YoMFVMTCksCiAJCQkgICAgICAxKTsKKwl9CiAKIAlpZiAo Zi0+ZnMubmV3ZG1hYykKIAkJc2V0X3RjYl90ZmxhZyhhZGFwLCBmLCB0aWQsIFRGX0NDVFJMX0VD RV9TLCAxLAotLSAKMi4yNi4yCgoKRnJvbSA4YzM3ZWMyYzA0MjUwMjgyNGMwYzI5NzBhM2I2ODlk ZWJlZDczYjhhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIEdyYXkgPG1hcmsu ZC5ncmF5QHJlZGhhdC5jb20+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMDU6MTk6MzUgLTA0MDAK U3ViamVjdDogW1BBVENIIDA2LzM2XSBnZW5ldmU6IGFkZCB0cmFuc3BvcnQgcG9ydHMgaW4gcm91 dGUgbG9va3VwIGZvciBnZW5ldmUKClsgVXBzdHJlYW0gY29tbWl0IDM0YmViMjE1OTQ1MTljZTY0 YTU1YTQ5OGMyZmU3ZDU2N2JjMWNhMjAgXQoKVGhpcyBwYXRjaCBhZGRzIHRyYW5zcG9ydCBwb3J0 cyBpbmZvcm1hdGlvbiBmb3Igcm91dGUgbG9va3VwIHNvIHRoYXQKSVBzZWMgY2FuIHNlbGVjdCBH ZW5ldmUgdHVubmVsIHRyYWZmaWMgdG8gZG8gZW5jcnlwdGlvbi4gVGhpcyBpcwpuZWVkZWQgZm9y IE9WUy9PVk4gSVBzZWMgd2l0aCBlbmNyeXB0ZWQgR2VuZXZlIHR1bm5lbHMuCgpUaGlzIGNhbiBi ZSB0ZXN0ZWQgYnkgY29uZmlndXJpbmcgYSBob3N0LWhvc3QgVlBOIHVzaW5nIGFuIElLRQpkYWVt b24gYW5kIHNwZWNpZnlpbmcgcG9ydCBudW1iZXJzLiBGb3IgZXhhbXBsZSwgZm9yIGFuCk9wZW5z d2FuLXR5cGUgY29uZmlndXJhdGlvbiwgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIHNob3VsZCBi ZQpjb25maWd1cmVkIG9uIGJvdGggaG9zdHMgYW5kIElQc2VjIHNldCB1cCBhcy1wZXIgbm9ybWFs OgoKJCBjYXQgL2V0Yy9pcHNlYy5jb25mCgpjb25uIGluCi4uLgpsZWZ0PSRJUDEKcmlnaHQ9JElQ MgouLi4KbGVmdHByb3RvcG9ydD11ZHAvNjA4MQpyaWdodHByb3RvcG9ydD11ZHAKLi4uCmNvbm4g b3V0Ci4uLgpsZWZ0PSRJUDEKcmlnaHQ9JElQMgouLi4KbGVmdHByb3RvcG9ydD11ZHAKcmlnaHRw cm90b3BvcnQ9dWRwLzYwODEKLi4uCgpUaGUgdHVubmVsIGNhbiB0aGVuIGJlIHNldHVwIHVzaW5n ICJpcCIgb24gYm90aCBob3N0cyAoYnV0CmNoYW5naW5nIHRoZSByZWxldmFudCBJUCBhZGRyZXNz ZXMpOgoKJCBpcCBsaW5rIGFkZCB0dW4gdHlwZSBnZW5ldmUgaWQgMTAwMCByZW1vdGUgJElQMgok IGlwIGFkZHIgYWRkIDE5Mi4xNjguMC4xLzI0IGRldiB0dW4KJCBpcCBsaW5rIHNldCB0dW4gdXAK ClRoaXMgY2FuIHRoZW4gYmUgdGVzdGVkIGJ5IHBpbmdpbmcgZnJvbSAkSVAxOgoKJCBwaW5nIDE5 Mi4xNjguMC4yCgpXaXRob3V0IHRoaXMgcGF0Y2ggdGhlIHRyYWZmaWMgaXMgdW5lbmNyeXB0ZWQg b24gdGhlIHdpcmUuCgpGaXhlczogMmQwN2RjNzlmZTA0ICgiZ2VuZXZlOiBhZGQgaW5pdGlhbCBu ZXRkZXYgZHJpdmVyIGZvciBHRU5FVkUgdHVubmVscyIpClNpZ25lZC1vZmYtYnk6IFFpdXl1IFhp YW8gPHFpdXl1LnhpYW8ucXl4QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFyayBHcmF5IDxt YXJrLmQuZ3JheUByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogR3JlZyBSb3NlIDxndnJvc2U4MTky QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2dlbmV2ZS5jIHwgMzcgKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDEw IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2dlbmV2ZS5jIGIvZHJpdmVy cy9uZXQvZ2VuZXZlLmMKaW5kZXggYWRmZGY2MjYwYjI2Li5mY2I3YTZiNGNjMDIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2dlbmV2ZS5jCisrKyBiL2RyaXZlcnMvbmV0L2dlbmV2ZS5jCkBAIC03 NzMsNyArNzczLDggQEAgc3RhdGljIHN0cnVjdCBydGFibGUgKmdlbmV2ZV9nZXRfdjRfcnQoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkgICAgICAgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJ CQkgICAgICAgc3RydWN0IGdlbmV2ZV9zb2NrICpnczQsCiAJCQkJICAgICAgIHN0cnVjdCBmbG93 aTQgKmZsNCwKLQkJCQkgICAgICAgY29uc3Qgc3RydWN0IGlwX3R1bm5lbF9pbmZvICppbmZvKQor CQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKmluZm8sCisJCQkJICAgICAg IF9fYmUxNiBkcG9ydCwgX19iZTE2IHNwb3J0KQogewogCWJvb2wgdXNlX2NhY2hlID0gaXBfdHVu bmVsX2RzdF9jYWNoZV91c2FibGUoc2tiLCBpbmZvKTsKIAlzdHJ1Y3QgZ2VuZXZlX2RldiAqZ2Vu ZXZlID0gbmV0ZGV2X3ByaXYoZGV2KTsKQEAgLTc4OSw2ICs3OTAsOCBAQCBzdGF0aWMgc3RydWN0 IHJ0YWJsZSAqZ2VuZXZlX2dldF92NF9ydChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWZsNC0+Zmxv d2k0X3Byb3RvID0gSVBQUk9UT19VRFA7CiAJZmw0LT5kYWRkciA9IGluZm8tPmtleS51LmlwdjQu ZHN0OwogCWZsNC0+c2FkZHIgPSBpbmZvLT5rZXkudS5pcHY0LnNyYzsKKwlmbDQtPmZsNF9kcG9y dCA9IGRwb3J0OworCWZsNC0+Zmw0X3Nwb3J0ID0gc3BvcnQ7CiAKIAl0b3MgPSBpbmZvLT5rZXku dG9zOwogCWlmICgodG9zID09IDEpICYmICFnZW5ldmUtPmNvbGxlY3RfbWQpIHsKQEAgLTgyMyw3 ICs4MjYsOCBAQCBzdGF0aWMgc3RydWN0IGRzdF9lbnRyeSAqZ2VuZXZlX2dldF92Nl9kc3Qoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJICAgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCQkJ ICAgc3RydWN0IGdlbmV2ZV9zb2NrICpnczYsCiAJCQkJCSAgIHN0cnVjdCBmbG93aTYgKmZsNiwK LQkJCQkJICAgY29uc3Qgc3RydWN0IGlwX3R1bm5lbF9pbmZvICppbmZvKQorCQkJCQkgICBjb25z dCBzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKmluZm8sCisJCQkJCSAgIF9fYmUxNiBkcG9ydCwgX19i ZTE2IHNwb3J0KQogewogCWJvb2wgdXNlX2NhY2hlID0gaXBfdHVubmVsX2RzdF9jYWNoZV91c2Fi bGUoc2tiLCBpbmZvKTsKIAlzdHJ1Y3QgZ2VuZXZlX2RldiAqZ2VuZXZlID0gbmV0ZGV2X3ByaXYo ZGV2KTsKQEAgLTgzOSw2ICs4NDMsOSBAQCBzdGF0aWMgc3RydWN0IGRzdF9lbnRyeSAqZ2VuZXZl X2dldF92Nl9kc3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlmbDYtPmZsb3dpNl9wcm90byA9IElQ UFJPVE9fVURQOwogCWZsNi0+ZGFkZHIgPSBpbmZvLT5rZXkudS5pcHY2LmRzdDsKIAlmbDYtPnNh ZGRyID0gaW5mby0+a2V5LnUuaXB2Ni5zcmM7CisJZmw2LT5mbDZfZHBvcnQgPSBkcG9ydDsKKwlm bDYtPmZsNl9zcG9ydCA9IHNwb3J0OworCiAJcHJpbyA9IGluZm8tPmtleS50b3M7CiAJaWYgKChw cmlvID09IDEpICYmICFnZW5ldmUtPmNvbGxlY3RfbWQpIHsKIAkJcHJpbyA9IGlwX3R1bm5lbF9n ZXRfZHNmaWVsZChpcF9oZHIoc2tiKSwgc2tiKTsKQEAgLTg4NSwxNCArODkyLDE1IEBAIHN0YXRp YyBpbnQgZ2VuZXZlX3htaXRfc2tiKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsCiAJX19iZTE2IHNwb3J0OwogCWludCBlcnI7CiAKLQlydCA9IGdlbmV2ZV9nZXRf djRfcnQoc2tiLCBkZXYsIGdzNCwgJmZsNCwgaW5mbyk7CisJc3BvcnQgPSB1ZHBfZmxvd19zcmNf cG9ydChnZW5ldmUtPm5ldCwgc2tiLCAxLCBVU0hSVF9NQVgsIHRydWUpOworCXJ0ID0gZ2VuZXZl X2dldF92NF9ydChza2IsIGRldiwgZ3M0LCAmZmw0LCBpbmZvLAorCQkJICAgICAgZ2VuZXZlLT5p bmZvLmtleS50cF9kc3QsIHNwb3J0KTsKIAlpZiAoSVNfRVJSKHJ0KSkKIAkJcmV0dXJuIFBUUl9F UlIocnQpOwogCiAJc2tiX3R1bm5lbF9jaGVja19wbXR1KHNrYiwgJnJ0LT5kc3QsCiAJCQkgICAg ICBHRU5FVkVfSVBWNF9ITEVOICsgaW5mby0+b3B0aW9uc19sZW4pOwogCi0Jc3BvcnQgPSB1ZHBf Zmxvd19zcmNfcG9ydChnZW5ldmUtPm5ldCwgc2tiLCAxLCBVU0hSVF9NQVgsIHRydWUpOwogCWlm IChnZW5ldmUtPmNvbGxlY3RfbWQpIHsKIAkJdG9zID0gaXBfdHVubmVsX2Vjbl9lbmNhcChrZXkt PnRvcywgaXBfaGRyKHNrYiksIHNrYik7CiAJCXR0bCA9IGtleS0+dHRsOwpAQCAtOTQ3LDEzICs5 NTUsMTQgQEAgc3RhdGljIGludCBnZW5ldmU2X3htaXRfc2tiKHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJX19iZTE2IHNwb3J0OwogCWludCBlcnI7CiAKLQlk c3QgPSBnZW5ldmVfZ2V0X3Y2X2RzdChza2IsIGRldiwgZ3M2LCAmZmw2LCBpbmZvKTsKKwlzcG9y dCA9IHVkcF9mbG93X3NyY19wb3J0KGdlbmV2ZS0+bmV0LCBza2IsIDEsIFVTSFJUX01BWCwgdHJ1 ZSk7CisJZHN0ID0gZ2VuZXZlX2dldF92Nl9kc3Qoc2tiLCBkZXYsIGdzNiwgJmZsNiwgaW5mbywK KwkJCQlnZW5ldmUtPmluZm8ua2V5LnRwX2RzdCwgc3BvcnQpOwogCWlmIChJU19FUlIoZHN0KSkK IAkJcmV0dXJuIFBUUl9FUlIoZHN0KTsKIAogCXNrYl90dW5uZWxfY2hlY2tfcG10dShza2IsIGRz dCwgR0VORVZFX0lQVjZfSExFTiArIGluZm8tPm9wdGlvbnNfbGVuKTsKIAotCXNwb3J0ID0gdWRw X2Zsb3dfc3JjX3BvcnQoZ2VuZXZlLT5uZXQsIHNrYiwgMSwgVVNIUlRfTUFYLCB0cnVlKTsKIAlp ZiAoZ2VuZXZlLT5jb2xsZWN0X21kKSB7CiAJCXByaW8gPSBpcF90dW5uZWxfZWNuX2VuY2FwKGtl eS0+dG9zLCBpcF9oZHIoc2tiKSwgc2tiKTsKIAkJdHRsID0ga2V5LT50dGw7CkBAIC0xMDM0LDEz ICsxMDQzLDE4IEBAIHN0YXRpYyBpbnQgZ2VuZXZlX2ZpbGxfbWV0YWRhdGFfZHN0KHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0IGlwX3R1bm5l bF9pbmZvICppbmZvID0gc2tiX3R1bm5lbF9pbmZvKHNrYik7CiAJc3RydWN0IGdlbmV2ZV9kZXYg KmdlbmV2ZSA9IG5ldGRldl9wcml2KGRldik7CisJX19iZTE2IHNwb3J0OwogCiAJaWYgKGlwX3R1 bm5lbF9pbmZvX2FmKGluZm8pID09IEFGX0lORVQpIHsKIAkJc3RydWN0IHJ0YWJsZSAqcnQ7CiAJ CXN0cnVjdCBmbG93aTQgZmw0OworCiAJCXN0cnVjdCBnZW5ldmVfc29jayAqZ3M0ID0gcmN1X2Rl cmVmZXJlbmNlKGdlbmV2ZS0+c29jazQpOworCQlzcG9ydCA9IHVkcF9mbG93X3NyY19wb3J0KGdl bmV2ZS0+bmV0LCBza2IsCisJCQkJCSAgMSwgVVNIUlRfTUFYLCB0cnVlKTsKIAotCQlydCA9IGdl bmV2ZV9nZXRfdjRfcnQoc2tiLCBkZXYsIGdzNCwgJmZsNCwgaW5mbyk7CisJCXJ0ID0gZ2VuZXZl X2dldF92NF9ydChza2IsIGRldiwgZ3M0LCAmZmw0LCBpbmZvLAorCQkJCSAgICAgIGdlbmV2ZS0+ aW5mby5rZXkudHBfZHN0LCBzcG9ydCk7CiAJCWlmIChJU19FUlIocnQpKQogCQkJcmV0dXJuIFBU Ul9FUlIocnQpOwogCkBAIC0xMDUwLDkgKzEwNjQsMTMgQEAgc3RhdGljIGludCBnZW5ldmVfZmls bF9tZXRhZGF0YV9kc3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNr YikKIAl9IGVsc2UgaWYgKGlwX3R1bm5lbF9pbmZvX2FmKGluZm8pID09IEFGX0lORVQ2KSB7CiAJ CXN0cnVjdCBkc3RfZW50cnkgKmRzdDsKIAkJc3RydWN0IGZsb3dpNiBmbDY7CisKIAkJc3RydWN0 IGdlbmV2ZV9zb2NrICpnczYgPSByY3VfZGVyZWZlcmVuY2UoZ2VuZXZlLT5zb2NrNik7CisJCXNw b3J0ID0gdWRwX2Zsb3dfc3JjX3BvcnQoZ2VuZXZlLT5uZXQsIHNrYiwKKwkJCQkJICAxLCBVU0hS VF9NQVgsIHRydWUpOwogCi0JCWRzdCA9IGdlbmV2ZV9nZXRfdjZfZHN0KHNrYiwgZGV2LCBnczYs ICZmbDYsIGluZm8pOworCQlkc3QgPSBnZW5ldmVfZ2V0X3Y2X2RzdChza2IsIGRldiwgZ3M2LCAm Zmw2LCBpbmZvLAorCQkJCQlnZW5ldmUtPmluZm8ua2V5LnRwX2RzdCwgc3BvcnQpOwogCQlpZiAo SVNfRVJSKGRzdCkpCiAJCQlyZXR1cm4gUFRSX0VSUihkc3QpOwogCkBAIC0xMDYzLDggKzEwODEs NyBAQCBzdGF0aWMgaW50IGdlbmV2ZV9maWxsX21ldGFkYXRhX2RzdChzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlp bmZvLT5rZXkudHBfc3JjID0gdWRwX2Zsb3dfc3JjX3BvcnQoZ2VuZXZlLT5uZXQsIHNrYiwKLQkJ CQkJICAgICAxLCBVU0hSVF9NQVgsIHRydWUpOworCWluZm8tPmtleS50cF9zcmMgPSBzcG9ydDsK IAlpbmZvLT5rZXkudHBfZHN0ID0gZ2VuZXZlLT5pbmZvLmtleS50cF9kc3Q7CiAJcmV0dXJuIDA7 CiB9Ci0tIAoyLjI2LjIKCgpGcm9tIDI0NmMxMzBjZDJkMDA1MTc1ZmViNjA0YmI4MDlkZGNjZTg5 YTJlNzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbiBDYXJwZW50ZXIgPGRhbi5j YXJwZW50ZXJAb3JhY2xlLmNvbT4KRGF0ZTogV2VkLCA5IFNlcCAyMDIwIDEyOjQ2OjQ4ICswMzAw ClN1YmplY3Q6IFtQQVRDSCAwNy8zNl0gaGRsY19wcHA6IGFkZCByYW5nZSBjaGVja3MgaW4gcHBw X2NwX3BhcnNlX2NyKCkKClsgVXBzdHJlYW0gY29tbWl0IDY2ZDQyZWQ4YjI1YjY0ZWI2MzExMWEy Yjg1ODJjNWFmYzhiZjExMDUgXQoKVGhlcmUgYXJlIGEgY291cGxlIGJ1Z3MgaGVyZToKMSkgSWYg b3B0WzFdIGlzIHplcm8gdGhlbiB0aGlzIHJlc3VsdHMgaW4gYSBmb3JldmVyIGxvb3AuICBJZiB0 aGUgdmFsdWUKICAgaXMgbGVzcyB0aGFuIDIgdGhlbiBpdCBpcyBpbnZhbGlkLgoyKSBJdCBhc3N1 bWVzIHRoYXQgImxlbiIgaXMgbW9yZSB0aGFuIHNpemVvZih2YWxpZF9hY2NtKSBvciA2IHdoaWNo IGNhbgogICByZXN1bHQgaW4gbWVtb3J5IGNvcnJ1cHRpb24uCgpJbiB0aGUgY2FzZSBvZiBMQ1Bf T1BUSU9OX0FDQ00sIHRoZW4gIHdlIHNob3VsZCBjaGVjayAib3B0WzFdIiBpbnN0ZWFkCm9mICJs ZW4iIGJlY2F1c2UsIGlmICJvcHRbMV0iIGlzIGxlc3MgdGhhbiBzaXplb2YodmFsaWRfYWNjbSkg dGhlbgoibmFrX2xlbiIgZ2V0cyBvdXQgb2Ygc3luYyBhbmQgaXQgY2FuIGxlYWQgdG8gbWVtb3J5 IGNvcnJ1cHRpb24gaW4gdGhlCm5leHQgaXRlcmF0aW9ucyB0aHJvdWdoIHRoZSBsb29wLiAgSW4g Y2FzZSBvZiBMQ1BfT1BUSU9OX01BR0lDLCB0aGUKb25seSB2YWxpZCB2YWx1ZSBmb3Igb3B0WzFd IGlzIDYsIGJ1dCB0aGUgY29kZSBpcyB0cnlpbmcgdG8gbG9nIGludmFsaWQKZGF0YSBzbyB3ZSBz aG91bGQgb25seSBkaXNjYXJkIHRoZSBkYXRhIHdoZW4gImxlbiIgaXMgbGVzcyB0aGFuIDYKYmVj YXVzZSB0aGF0IGxlYWRzIHRvIGEgcmVhZCBvdmVyZmxvdy4KClJlcG9ydGVkLWJ5OiBDaGVuTmFu IE9mIENoYWl0aW4gU2VjdXJpdHkgUmVzZWFyY2ggTGFiICA8d2h1dGNoZW5uYW5AZ21haWwuY29t PgpGaXhlczogZTAyMmMyZjA3YWU1ICgiV0FOOiBuZXcgc3luY2hyb25vdXMgUFBQIGltcGxlbWVu dGF0aW9uIGZvciBnZW5lcmljIEhETEMuIikKU2lnbmVkLW9mZi1ieTogRGFuIENhcnBlbnRlciA8 ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hA bGludXhmb3VuZGF0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3dhbi9oZGxjX3BwcC5jIHwgMTYgKysr KysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2FuL2hkbGNfcHBwLmMgYi9kcml2ZXJz L25ldC93YW4vaGRsY19wcHAuYwppbmRleCA0OGNlZDM5MTI1NzYuLjE2ZjMzZDFmZmJmYiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvd2FuL2hkbGNfcHBwLmMKKysrIGIvZHJpdmVycy9uZXQvd2Fu L2hkbGNfcHBwLmMKQEAgLTM4MywxMSArMzgzLDggQEAgc3RhdGljIHZvaWQgcHBwX2NwX3BhcnNl X2NyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUxNiBwaWQsIHU4IGlkLAogCX0KIAogCWZvciAo b3B0ID0gZGF0YTsgbGVuOyBsZW4gLT0gb3B0WzFdLCBvcHQgKz0gb3B0WzFdKSB7Ci0JCWlmIChs ZW4gPCAyIHx8IGxlbiA8IG9wdFsxXSkgewotCQkJZGV2LT5zdGF0cy5yeF9lcnJvcnMrKzsKLQkJ CWtmcmVlKG91dCk7Ci0JCQlyZXR1cm47IC8qIGJhZCBwYWNrZXQsIGRyb3Agc2lsZW50bHkgKi8K LQkJfQorCQlpZiAobGVuIDwgMiB8fCBvcHRbMV0gPCAyIHx8IGxlbiA8IG9wdFsxXSkKKwkJCWdv dG8gZXJyX291dDsKIAogCQlpZiAocGlkID09IFBJRF9MQ1ApCiAJCQlzd2l0Y2ggKG9wdFswXSkg ewpAQCAtMzk1LDYgKzM5Miw4IEBAIHN0YXRpYyB2b2lkIHBwcF9jcF9wYXJzZV9jcihzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LCB1MTYgcGlkLCB1OCBpZCwKIAkJCQljb250aW51ZTsgLyogTVJVIGFs d2F5cyBPSyBhbmQgPiAxNTAwIGJ5dGVzPyAqLwogCiAJCQljYXNlIExDUF9PUFRJT05fQUNDTTog LyogYXN5bmMgY29udHJvbCBjaGFyYWN0ZXIgbWFwICovCisJCQkJaWYgKG9wdFsxXSA8IHNpemVv Zih2YWxpZF9hY2NtKSkKKwkJCQkJZ290byBlcnJfb3V0OwogCQkJCWlmICghbWVtY21wKG9wdCwg dmFsaWRfYWNjbSwKIAkJCQkJICAgIHNpemVvZih2YWxpZF9hY2NtKSkpCiAJCQkJCWNvbnRpbnVl OwpAQCAtNDA2LDYgKzQwNSw4IEBAIHN0YXRpYyB2b2lkIHBwcF9jcF9wYXJzZV9jcihzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LCB1MTYgcGlkLCB1OCBpZCwKIAkJCQl9CiAJCQkJYnJlYWs7CiAJCQlj YXNlIExDUF9PUFRJT05fTUFHSUM6CisJCQkJaWYgKGxlbiA8IDYpCisJCQkJCWdvdG8gZXJyX291 dDsKIAkJCQlpZiAob3B0WzFdICE9IDYgfHwgKCFvcHRbMl0gJiYgIW9wdFszXSAmJgogCQkJCQkJ ICAgICFvcHRbNF0gJiYgIW9wdFs1XSkpCiAJCQkJCWJyZWFrOyAvKiByZWplY3QgaW52YWxpZCBt YWdpYyBudW1iZXIgKi8KQEAgLTQyNCw2ICs0MjUsMTEgQEAgc3RhdGljIHZvaWQgcHBwX2NwX3Bh cnNlX2NyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUxNiBwaWQsIHU4IGlkLAogCQlwcHBfY3Bf ZXZlbnQoZGV2LCBwaWQsIFJDUl9HT09ELCBDUF9DT05GX0FDSywgaWQsIHJlcV9sZW4sIGRhdGEp OwogCiAJa2ZyZWUob3V0KTsKKwlyZXR1cm47CisKK2Vycl9vdXQ6CisJZGV2LT5zdGF0cy5yeF9l cnJvcnMrKzsKKwlrZnJlZShvdXQpOwogfQogCiBzdGF0aWMgaW50IHBwcF9yeChzdHJ1Y3Qgc2tf YnVmZiAqc2tiKQotLSAKMi4yNi4yCgoKRnJvbSA2M2NjZTczODU3ODE2MmI1OTBhZjVkMTNkYzEw YmZhZjA2ODM0NDIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXZWkgV2FuZyA8d2Vp d2FuQGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgOCBTZXAgMjAyMCAxNDowOTozNCAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMDgvMzZdIGlwOiBmaXggdG9zIHJlZmxlY3Rpb24gaW4gYWNrIGFuZCByZXNl dCBwYWNrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCBiYTllMDRhN2RkZjRmMjJhMTBlMDViZjk0MDNk YjZiOTc3NDNjN2JmIF0KCkN1cnJlbnRseSwgaW4gdGNwX3Y0X3JlcXNrX3NlbmRfYWNrKCkgYW5k IHRjcF92NF9zZW5kX3Jlc2V0KCksIHdlCmVjaG8gdGhlIFRPUyB2YWx1ZSBvZiB0aGUgcmVjZWl2 ZWQgcGFja2V0cyBpbiB0aGUgcmVzcG9uc2UuCkhvd2V2ZXIsIHdlIGRvIG5vdCB3YW50IHRvIGVj aG8gdGhlIGxvd2VyIDIgRUNOIGJpdHMgaW4gYWNjb3JkYW5jZQp3aXRoIFJGQyAzMTY4IDYuMS41 IHJvYnVzdG5lc3MgcHJpbmNpcGxlcy4KCkZpeGVzOiAxZGExNzdlNGMzZjQgKCJMaW51eC0yLjYu MTItcmMyIikKClNpZ25lZC1vZmYtYnk6IFdlaSBXYW5nIDx3ZWl3YW5AZ29vZ2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQv aXBfb3V0cHV0LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX291dHB1dC5jIGIvbmV0L2lwdjQv aXBfb3V0cHV0LmMKaW5kZXggYjM2YzRhMzE1OWU1Li4wNzlkY2Y5ZjBjNTYgMTAwNjQ0Ci0tLSBh L25ldC9pcHY0L2lwX291dHB1dC5jCisrKyBiL25ldC9pcHY0L2lwX291dHB1dC5jCkBAIC03NCw2 ICs3NCw3IEBACiAjaW5jbHVkZSA8bmV0L2ljbXAuaD4KICNpbmNsdWRlIDxuZXQvY2hlY2tzdW0u aD4KICNpbmNsdWRlIDxuZXQvaW5ldHBlZXIuaD4KKyNpbmNsdWRlIDxuZXQvaW5ldF9lY24uaD4K ICNpbmNsdWRlIDxuZXQvbHd0dW5uZWwuaD4KICNpbmNsdWRlIDxsaW51eC9icGYtY2dyb3VwLmg+ CiAjaW5jbHVkZSA8bGludXgvaWdtcC5oPgpAQCAtMTY5OSw3ICsxNzAwLDcgQEAgdm9pZCBpcF9z ZW5kX3VuaWNhc3RfcmVwbHkoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAog CWlmIChJU19FUlIocnQpKQogCQlyZXR1cm47CiAKLQlpbmV0X3NrKHNrKS0+dG9zID0gYXJnLT50 b3M7CisJaW5ldF9zayhzayktPnRvcyA9IGFyZy0+dG9zICYgfklORVRfRUNOX01BU0s7CiAKIAlz ay0+c2tfcHJvdG9jb2wgPSBpcF9oZHIoc2tiKS0+cHJvdG9jb2w7CiAJc2stPnNrX2JvdW5kX2Rl dl9pZiA9IGFyZy0+Ym91bmRfZGV2X2lmOwotLSAKMi4yNi4yCgoKRnJvbSA3MDlmMDE5MTFhZmQz ZmU3OTAxNzljMzQ0OTdlYTIxYjI5NWEzMDIzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTMgU2VwIDIwMjAg MTI6NDM6MzkgLTA2MDAKU3ViamVjdDogW1BBVENIIDA5LzM2XSBpcHY0OiBJbml0aWFsaXplIGZs b3dpNF9tdWx0aXBhdGhfaGFzaCBpbiBkYXRhIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IDE4Njll MjI2YTdiM2VmNzViNGY3MGVkZTJmMWI3MjI5ZjcxNTdmYTQgXQoKZmxvd2k0X211bHRpcGF0aF9o YXNoIHdhcyBhZGRlZCBieSB0aGUgY29tbWl0IHJlZmVyZW5jZWQgYmVsb3cgZm9yCnR1bm5lbHMu IFVuZm9ydHVuYXRlbHksIHRoZSBwYXRjaCBkaWQgbm90IGluaXRpYWxpemUgdGhlIG5ldyBmaWVs ZApmb3Igc2V2ZXJhbCBmYXN0IHBhdGggbG9va3VwcyB0aGF0IGRvIG5vdCBpbml0aWFsaXplIHRo ZSBlbnRpcmUgZmxvdwpzdHJ1Y3QgdG8gMC4gRml4IHRob3NlIGxvY2F0aW9ucy4gQ3VycmVudGx5 LCBmbG93aTRfbXVsdGlwYXRoX2hhc2gKaXMgcmFuZG9tIGdhcmJhZ2UgYW5kIGFmZmVjdHMgdGhl IGhhc2ggdmFsdWUgY29tcHV0ZWQgYnkKZmliX211bHRpcGF0aF9oYXNoIGZvciBtdWx0aXBhdGgg c2VsZWN0aW9uLgoKRml4ZXM6IDI0YmExNDQwNmM1YyAoInJvdXRlOiBBZGQgbXVsdGlwYXRoX2hh c2ggaW4gZmxvd2lfY29tbW9uIHRvIG1ha2UgdXNlci1kZWZpbmUgaGFzaCIpClNpZ25lZC1vZmYt Ynk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KQ2M6IHdlbnh1IDx3ZW54dUB1Y2xv dWQuY24+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBpbmNsdWRlL25ldC9mbG93LmggICAgICB8IDEgKwogbmV0L2NvcmUvZmlsdGVyLmMg ICAgICAgfCAxICsKIG5ldC9pcHY0L2ZpYl9mcm9udGVuZC5jIHwgMSArCiBuZXQvaXB2NC9yb3V0 ZS5jICAgICAgICB8IDEgKwogNCBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9pbmNsdWRlL25ldC9mbG93LmggYi9pbmNsdWRlL25ldC9mbG93LmgKaW5kZXggYTUw ZmI3N2EwYjI3Li5kMDU4ZTYzZmI1OWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2Zsb3cuaAor KysgYi9pbmNsdWRlL25ldC9mbG93LmgKQEAgLTExNiw2ICsxMTYsNyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgZmxvd2k0X2luaXRfb3V0cHV0KHN0cnVjdCBmbG93aTQgKmZsNCwgaW50IG9pZiwKIAlm bDQtPnNhZGRyID0gc2FkZHI7CiAJZmw0LT5mbDRfZHBvcnQgPSBkcG9ydDsKIAlmbDQtPmZsNF9z cG9ydCA9IHNwb3J0OworCWZsNC0+Zmxvd2k0X211bHRpcGF0aF9oYXNoID0gMDsKIH0KIAogLyog UmVzZXQgc29tZSBpbnB1dCBwYXJhbWV0ZXJzIGFmdGVyIHByZXZpb3VzIGxvb2t1cCAqLwpkaWZm IC0tZ2l0IGEvbmV0L2NvcmUvZmlsdGVyLmMgYi9uZXQvY29yZS9maWx0ZXIuYwppbmRleCA1YzQ5 MGQ0NzNkZjEuLmNmMmE2ODUxM2JmZCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZmlsdGVyLmMKKysr IGIvbmV0L2NvcmUvZmlsdGVyLmMKQEAgLTQ2NTAsNiArNDY1MCw3IEBAIHN0YXRpYyBpbnQgYnBm X2lwdjRfZmliX2xvb2t1cChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBicGZfZmliX2xvb2t1cCAq cGFyYW1zLAogCWZsNC5zYWRkciA9IHBhcmFtcy0+aXB2NF9zcmM7CiAJZmw0LmZsNF9zcG9ydCA9 IHBhcmFtcy0+c3BvcnQ7CiAJZmw0LmZsNF9kcG9ydCA9IHBhcmFtcy0+ZHBvcnQ7CisJZmw0LmZs b3dpNF9tdWx0aXBhdGhfaGFzaCA9IDA7CiAKIAlpZiAoZmxhZ3MgJiBCUEZfRklCX0xPT0tVUF9E SVJFQ1QpIHsKIAkJdTMyIHRiaWQgPSBsM21kZXZfZmliX3RhYmxlX3JjdShkZXYpID8gOiBSVF9U QUJMRV9NQUlOOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMgYi9uZXQvaXB2 NC9maWJfZnJvbnRlbmQuYwppbmRleCAyYjA1MjFmZWFkYWEuLjBhODIyMGQzMGM5OSAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKKysrIGIvbmV0L2lwdjQvZmliX2Zyb250ZW5k LmMKQEAgLTM3Miw2ICszNzIsNyBAQCBzdGF0aWMgaW50IF9fZmliX3ZhbGlkYXRlX3NvdXJjZShz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgc3JjLCBfX2JlMzIgZHN0LAogCWZsNC5mbG93aTRf dHVuX2tleS50dW5faWQgPSAwOwogCWZsNC5mbG93aTRfZmxhZ3MgPSAwOwogCWZsNC5mbG93aTRf dWlkID0gc29ja19uZXRfdWlkKG5ldCwgTlVMTCk7CisJZmw0LmZsb3dpNF9tdWx0aXBhdGhfaGFz aCA9IDA7CiAKIAlub19hZGRyID0gaWRldi0+aWZhX2xpc3QgPT0gTlVMTDsKIApkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXggYjNhOGQzMmY3ZDhk Li5iZTAwNGQ1OWYzZGUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMKKysrIGIvbmV0L2lw djQvcm91dGUuYwpAQCAtMjEwNCw2ICsyMTA0LDcgQEAgc3RhdGljIGludCBpcF9yb3V0ZV9pbnB1 dF9zbG93KHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBkYWRkciwgX19iZTMyIHNhZGRyLAog CWZsNC5kYWRkciA9IGRhZGRyOwogCWZsNC5zYWRkciA9IHNhZGRyOwogCWZsNC5mbG93aTRfdWlk ID0gc29ja19uZXRfdWlkKG5ldCwgTlVMTCk7CisJZmw0LmZsb3dpNF9tdWx0aXBhdGhfaGFzaCA9 IDA7CiAKIAlpZiAoZmliNF9ydWxlc19lYXJseV9mbG93X2Rpc3NlY3QobmV0LCBza2IsICZmbDQs ICZfZmxrZXlzKSkgewogCQlmbGtleXMgPSAmX2Zsa2V5czsKLS0gCjIuMjYuMgoKCkZyb20gNzdj YmM0NmFhYzlkYjE5NTU0Zjk5NjcyMmQ4ZDlhZmMzODI4ZGRjZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5Aa2VybmVsLm9yZz4KRGF0ZTogTW9uLCAx NCBTZXAgMjAyMCAyMTowMzo1NCAtMDYwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMzZdIGlwdjQ6IFVw ZGF0ZSBleGNlcHRpb24gaGFuZGxpbmcgZm9yIG11bHRpcGF0aCByb3V0ZXMKIHZpYSBzYW1lIGRl dmljZQoKWyBVcHN0cmVhbSBjb21taXQgMmZiYzZlODliMmYxNDAzMTg5ZTYyNGNhYmFmNzNlMTg5 YzVlNTBjNiBdCgpLZmlyIHJlcG9ydGVkIHRoYXQgcG10dSBleGNlcHRpb25zIGFyZSBub3QgY3Jl YXRlZCBwcm9wZXJseSBmb3IKZGVwbG95bWVudHMgd2hlcmUgbXVsdGlwYXRoIHJvdXRlcyB1c2Ug dGhlIHNhbWUgZGV2aWNlLgoKQWZ0ZXIgc29tZSBkaWdnaW5nIEkgc2VlIDIgY29tcG91bmRpbmcg cHJvYmxlbXM6CjEuIGlwX3JvdXRlX291dHB1dF9rZXlfaGFzaF9yY3UgaXMgdXBkYXRpbmcgdGhl IGZsb3dpNF9vaWYgKmFmdGVyKgogICB0aGUgcm91dGUgbG9va3VwLiBUaGlzIGlzIHRoZSBzZWNv bmQgdXNlIGNhc2Ugd2hlcmUgdGhpcyBoYXMKICAgYmVlbiBhIHByb2JsZW0gKHRoZSBmaXJzdCBp cyByZWxhdGVkIHRvIHVzZSBvZiB2dGkgZGV2aWNlcyB3aXRoCiAgIFZSRikuIEkgY2FuIG5vdCBm aW5kIGFueSByZWFzb24gZm9yIHRoZSBvaWYgdG8gYmUgY2hhbmdlZCBhZnRlciB0aGUKICAgbG9v a3VwOyB0aGUgY29kZSBnb2VzIGJhY2sgdG8gdGhlIHN0YXJ0IG9mIGdpdC4gSXQgZG9lcyBub3Qg c2VlbQogICBsb2dpY2FsIHNvIHJlbW92ZSBpdC4KCjIuIGZpYl9sb29rdXBzIGZvciBleGNlcHRp b25zIGRvIG5vdCBjYWxsIGZpYl9zZWxlY3RfcGF0aCB0byBoYW5kbGUKICAgbXVsdGlwYXRoIHJv dXRlIHNlbGVjdGlvbiBiYXNlZCBvbiB0aGUgaGFzaC4KClRoZSBlbmQgcmVzdWx0IGlzIHRoYXQg dGhlIGZpYl9sb29rdXAgdXNlZCB0byBhZGQgdGhlIGV4Y2VwdGlvbgphbHdheXMgY3JlYXRlcyBp dCBiYXNlZCB1c2luZyB0aGUgZmlyc3QgbGVnIG9mIHRoZSByb3V0ZS4KCkFuIGV4YW1wbGUgdG9w b2xvZ3kgc2hvd2luZyB0aGUgcHJvYmxlbToKCiAgICAgICAgICAgICAgICAgfCAgaG9zdDEKICAg ICAgICAgICAgICstLS0tLS0rCiAgICAgICAgICAgICB8IGV0aDAgfCAgLjIwOQogICAgICAgICAg ICAgKy0tLS0tLSsKICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgICArLS0tLS0tKwogICAg IHN3aXRjaCAgfCBicjAgIHwKICAgICAgICAgICAgICstLS0tLS0rCiAgICAgICAgICAgICAgICAg fAogICAgICAgKy0tLS0tLS0tLSstLS0tLS0tLS0rCiAgICAgICB8IGhvc3QyICAgICAgICAgICAg IHwgIGhvc3QzCiAgICstLS0tLS0rICAgICAgICAgICAgICstLS0tLS0rCiAgIHwgZXRoMCB8IC4y NTAgICAgICAgIHwgZXRoMCB8IDE5Mi4xNjguMjUyLjI1MgogICArLS0tLS0tKyAgICAgICAgICAg ICArLS0tLS0tKwoKICAgKy0tLS0tKyAgICAgICAgICAgICArLS0tLS0rCiAgIHwgdnRpIHwgLjIg ICAgICAgICAgfCB2dGkgfCAxOTIuMTY4LjI0Ny4zCiAgICstLS0tLSsgICAgICAgICAgICAgKy0t LS0tKwogICAgICAgXCAgICAgICAgICAgICAgICAgIC8KID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogdHVubmVscwogICAgICAgICAxOTIuMTY4LjI0Ny4xLzI0Cgpmb3IgaCBpbiBo b3N0MSBob3N0MiBob3N0MzsgZG8KICAgICAgICBpcCBuZXRucyBhZGQgJHtofQogICAgICAgIGlw IC1uZXRucyAke2h9IGxpbmsgc2V0IGxvIHVwCiAgICAgICAgaXAgbmV0bnMgZXhlYyAke2h9IHN5 c2N0bCAtd3EgbmV0LmlwdjQuaXBfZm9yd2FyZD0xCmRvbmUKCmlwIG5ldG5zIGFkZCBzd2l0Y2gK aXAgLW5ldG5zIHN3aXRjaCBsaSBzZXQgbG8gdXAKaXAgLW5ldG5zIHN3aXRjaCBsaW5rIGFkZCBi cjAgdHlwZSBicmlkZ2Ugc3RwIDAKaXAgLW5ldG5zIHN3aXRjaCBsaW5rIHNldCBicjAgdXAKCmZv ciBuIGluIDEgMiAzOyBkbwogICAgICAgIGlwIC1uZXRucyBzd2l0Y2ggbGluayBhZGQgZXRoLXN3 IHR5cGUgdmV0aCBwZWVyIG5hbWUgZXRoLWgke259CiAgICAgICAgaXAgLW5ldG5zIHN3aXRjaCBs aSBzZXQgZXRoLWgke259IG1hc3RlciBicjAgdXAKICAgICAgICBpcCAtbmV0bnMgc3dpdGNoIGxp IHNldCBldGgtc3cgbmV0bnMgaG9zdCR7bn0gbmFtZSBldGgwCmRvbmUKCmlwIC1uZXRucyBob3N0 MSBhZGRyIGFkZCAxOTIuMTY4LjI1Mi4yMDkvMjQgZGV2IGV0aDAKaXAgLW5ldG5zIGhvc3QxIGxp bmsgc2V0IGRldiBldGgwIHVwCmlwIC1uZXRucyBob3N0MSByb3V0ZSBhZGQgMTkyLjE2OC4yNDcu MC8yNCBcCiAgICAgICAgbmV4dGhvcCB2aWEgMTkyLjE2OC4yNTIuMjUwIGRldiBldGgwIG5leHRo b3AgdmlhIDE5Mi4xNjguMjUyLjI1MiBkZXYgZXRoMAoKaXAgLW5ldG5zIGhvc3QyIGFkZHIgYWRk IDE5Mi4xNjguMjUyLjI1MC8yNCBkZXYgZXRoMAppcCAtbmV0bnMgaG9zdDIgbGluayBzZXQgZGV2 IGV0aDAgdXAKCmlwIC1uZXRucyBob3N0MiBhZGRyIGFkZCAxOTIuMTY4LjI1Mi4yNTIvMjQgZGV2 IGV0aDAKaXAgLW5ldG5zIGhvc3QzIGxpbmsgc2V0IGRldiBldGgwIHVwCgppcCBuZXRucyBhZGQg dHVubmVsCmlwIC1uZXRucyB0dW5uZWwgbGkgc2V0IGxvIHVwCmlwIC1uZXRucyB0dW5uZWwgbGkg YWRkIGJyMCB0eXBlIGJyaWRnZQppcCAtbmV0bnMgdHVubmVsIGxpIHNldCBicjAgdXAKZm9yIG4g aW4gJChzZXEgMTEgMjApOyBkbwogICAgICAgIGlwIC1uZXRucyB0dW5uZWwgYWRkciBhZGQgZGV2 IGJyMCAxOTIuMTY4LjI0Ny4ke259LzI0CmRvbmUKCmZvciBuIGluIDIgMwpkbwogICAgICAgIGlw IC1uZXRucyB0dW5uZWwgbGluayBhZGQgdnRpJHtufSB0eXBlIHZldGggcGVlciBuYW1lIGV0aCR7 bn0KICAgICAgICBpcCAtbmV0bnMgdHVubmVsIGxpbmsgc2V0IGV0aCR7bn0gbXR1IDEzNjAgbWFz dGVyIGJyMCB1cAogICAgICAgIGlwIC1uZXRucyB0dW5uZWwgbGluayBzZXQgdnRpJHtufSBuZXRu cyBob3N0JHtufSBtdHUgMTM2MCB1cAogICAgICAgIGlwIC1uZXRucyBob3N0JHtufSBhZGRyIGFk ZCBkZXYgdnRpJHtufSAxOTIuMTY4LjI0Ny4ke259LzI0CmRvbmUKaXAgLW5ldG5zIHR1bm5lbCBy byBhZGQgZGVmYXVsdCBuZXh0aG9wIHZpYSAxOTIuMTY4LjI0Ny4yIG5leHRob3AgdmlhIDE5Mi4x NjguMjQ3LjMKCmlwIG5ldG5zIGV4ZWMgaG9zdDEgcGluZyAtTSBkbyAtcyAxNDAwIC1jMyAtSSAx OTIuMTY4LjI1Mi4yMDkgMTkyLjE2OC4yNDcuMTEKaXAgbmV0bnMgZXhlYyBob3N0MSBwaW5nIC1N IGRvIC1zIDE0MDAgLWMzIC1JIDE5Mi4xNjguMjUyLjIwOSAxOTIuMTY4LjI0Ny4xNQppcCAtbmV0 bnMgaG9zdDEgcm8gbHMgY2FjaGUKCkJlZm9yZSB0aGlzIHBhdGNoIHRoZSBjYWNoZSBhbHdheXMg c2hvd3MgZXhjZXB0aW9ucyBhZ2FpbnN0IHRoZSBmaXJzdApsZWcgaW4gdGhlIG11bHRpcGF0aCBy b3V0ZTsgMTkyLjE2OC4yNTIuMjUwIHBlciB0aGlzIGV4YW1wbGUuIFNpbmNlIHRoZQpoYXNoIGhh cyBhbiBpbml0aWFsIHJhbmRvbSBzZWVkLCB5b3UgbWF5IG5lZWQgdG8gdmFyeSB0aGUgZmluYWwg b2N0ZXQKbW9yZSB0aGFuIHdoYXQgaXMgbGlzdGVkLiBJbiBteSB0ZXN0cywgdXNpbmcgYWRkcmVz c2VzIGJldHdlZW4gMTEgYW5kIDE5CnVzdWFsbHkgZm91bmQgMSB0aGF0IHVzZWQgYm90aCBsZWdz LgoKV2l0aCB0aGlzIHBhdGNoLCB0aGUgY2FjaGUgd2lsbCBoYXZlIGV4Y2VwdGlvbnMgZm9yIGJv dGggbGVncy4KCkZpeGVzOiA0ODk1Yzc3MWM3ZjAgKCJpcHY0OiBBZGQgRklCIG5leHRob3AgZXhj ZXB0aW9ucyIpClJlcG9ydGVkLWJ5OiBLZmlyIEl0emhhayA8bWFzdGVydGhla25pZmVAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBrZXJuZWwub3JnPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjQvcm91dGUuYyB8IDEzICsrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2Vy dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBi L25ldC9pcHY0L3JvdXRlLmMKaW5kZXggYmUwMDRkNTlmM2RlLi5hYTc3Zjk4OWJhODEgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMKKysrIGIvbmV0L2lwdjQvcm91dGUuYwpAQCAtNzg1LDgg Kzc4NSwxMCBAQCBzdGF0aWMgdm9pZCBfX2lwX2RvX3JlZGlyZWN0KHN0cnVjdCBydGFibGUgKnJ0 LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZmxvdwogCQkJbmVpZ2hfZXZlbnRfc2VuZChu LCBOVUxMKTsKIAkJfSBlbHNlIHsKIAkJCWlmIChmaWJfbG9va3VwKG5ldCwgZmw0LCAmcmVzLCAw KSA9PSAwKSB7Ci0JCQkJc3RydWN0IGZpYl9uaF9jb21tb24gKm5oYyA9IEZJQl9SRVNfTkhDKHJl cyk7CisJCQkJc3RydWN0IGZpYl9uaF9jb21tb24gKm5oYzsKIAorCQkJCWZpYl9zZWxlY3RfcGF0 aChuZXQsICZyZXMsIGZsNCwgc2tiKTsKKwkJCQluaGMgPSBGSUJfUkVTX05IQyhyZXMpOwogCQkJ CXVwZGF0ZV9vcl9jcmVhdGVfZm5oZShuaGMsIGZsNC0+ZGFkZHIsIG5ld19ndywKIAkJCQkJCTAs IGZhbHNlLAogCQkJCQkJamlmZmllcyArIGlwX3J0X2djX3RpbWVvdXQpOwpAQCAtMTAxMiw2ICsx MDE0LDcgQEAgb3V0OglrZnJlZV9za2Ioc2tiKTsKIHN0YXRpYyB2b2lkIF9faXBfcnRfdXBkYXRl X3BtdHUoc3RydWN0IHJ0YWJsZSAqcnQsIHN0cnVjdCBmbG93aTQgKmZsNCwgdTMyIG10dSkKIHsK IAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QgPSAmcnQtPmRzdDsKKwlzdHJ1Y3QgbmV0ICpuZXQgPSBk ZXZfbmV0KGRzdC0+ZGV2KTsKIAl1MzIgb2xkX210dSA9IGlwdjRfbXR1KGRzdCk7CiAJc3RydWN0 IGZpYl9yZXN1bHQgcmVzOwogCWJvb2wgbG9jayA9IGZhbHNlOwpAQCAtMTAzMiw5ICsxMDM1LDEx IEBAIHN0YXRpYyB2b2lkIF9faXBfcnRfdXBkYXRlX3BtdHUoc3RydWN0IHJ0YWJsZSAqcnQsIHN0 cnVjdCBmbG93aTQgKmZsNCwgdTMyIG10dSkKIAkJcmV0dXJuOwogCiAJcmN1X3JlYWRfbG9jaygp OwotCWlmIChmaWJfbG9va3VwKGRldl9uZXQoZHN0LT5kZXYpLCBmbDQsICZyZXMsIDApID09IDAp IHsKLQkJc3RydWN0IGZpYl9uaF9jb21tb24gKm5oYyA9IEZJQl9SRVNfTkhDKHJlcyk7CisJaWYg KGZpYl9sb29rdXAobmV0LCBmbDQsICZyZXMsIDApID09IDApIHsKKwkJc3RydWN0IGZpYl9uaF9j b21tb24gKm5oYzsKIAorCQlmaWJfc2VsZWN0X3BhdGgobmV0LCAmcmVzLCBmbDQsIE5VTEwpOwor CQluaGMgPSBGSUJfUkVTX05IQyhyZXMpOwogCQl1cGRhdGVfb3JfY3JlYXRlX2ZuaGUobmhjLCBm bDQtPmRhZGRyLCAwLCBtdHUsIGxvY2ssCiAJCQkJICAgICAgamlmZmllcyArIGlwX3J0X210dV9l eHBpcmVzKTsKIAl9CkBAIC0yNjI2LDggKzI2MzEsNiBAQCBzdHJ1Y3QgcnRhYmxlICppcF9yb3V0 ZV9vdXRwdXRfa2V5X2hhc2hfcmN1KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGZsb3dpNCAqZmw0 LAogCWZpYl9zZWxlY3RfcGF0aChuZXQsIHJlcywgZmw0LCBza2IpOwogCiAJZGV2X291dCA9IEZJ Ql9SRVNfREVWKCpyZXMpOwotCWZsNC0+Zmxvd2k0X29pZiA9IGRldl9vdXQtPmlmaW5kZXg7Ci0K IAogbWFrZV9yb3V0ZToKIAlydGggPSBfX21rcm91dGVfb3V0cHV0KHJlcywgZmw0LCBvcmlnX29p ZiwgZGV2X291dCwgZmxhZ3MpOwotLSAKMi4yNi4yCgoKRnJvbSBkNzFkYTU3MDRjNDE5OTJhOWIy YjM3YzZjMjRkYzY1ZGYyNGViMTAzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgOCBTZXAgMjAyMCAwMToy MDoyMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMzZdIGlwdjY6IGF2b2lkIGxvY2tkZXAgaXNz dWUgaW4gZmliNl9kZWwoKQoKWyBVcHN0cmVhbSBjb21taXQgODQzZDkyNmIwMDNlYTY5MjQ2OGM4 Y2M1YmVhMWY5ZjU4ZGZhOGM3NSBdCgpzeXpib3QgcmVwb3J0ZWQgdHdpY2UgYSBsb2NrZGVwIGlz c3VlIGluIGZpYjZfZGVsKCkgWzFdCndoaWNoIEkgdGhpbmsgaXMgY2F1c2VkIGJ5IG5ldC0+aXB2 Ni5maWI2X251bGxfZW50cnkKaGF2aW5nIGEgTlVMTCBmaWI2X3RhYmxlIHBvaW50ZXIuCgpmaWI2 X2RlbCgpIGFscmVhZHkgY2hlY2tzIGZvciBmaWI2X251bGxfZW50cnkgc3BlY2lhbApjYXNlLCB3 ZSBvbmx5IG5lZWQgdG8gcmV0dXJuIGVhcmxpZXIuCgpCdWcgc2VlbXMgdG8gb2NjdXIgdmVyeSBy YXJlbHksIEkgaGF2ZSB0aHVzIGNob3NlbgphICdidWcgb3JpZ2luJyB0aGF0IG1ha2VzIGJhY2tw b3J0cyBub3QgdG9vIGNvbXBsZXguCgpbMV0KV0FSTklORzogc3VzcGljaW91cyBSQ1UgdXNhZ2UK NS45LjAtcmM0LXN5emthbGxlciAjMCBOb3QgdGFpbnRlZAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpuZXQvaXB2Ni9pcDZfZmliLmM6MTk5NiBzdXNwaWNpb3VzIHJjdV9kZXJlZmVyZW5j ZV9wcm90ZWN0ZWQoKSB1c2FnZSEKCm90aGVyIGluZm8gdGhhdCBtaWdodCBoZWxwIHVzIGRlYnVn IHRoaXM6CgpyY3Vfc2NoZWR1bGVyX2FjdGl2ZSA9IDIsIGRlYnVnX2xvY2tzID0gMQo0IGxvY2tz IGhlbGQgYnkgc3l6LWV4ZWN1dG9yLjUvODA5NToKICMwOiBmZmZmZmZmZjhhN2VhNzA4IChydG5s X211dGV4KXsrLisufS17MzozfSwgYXQ6IHBwcF9yZWxlYXNlKzB4MTc4LzB4MjQwIGRyaXZlcnMv bmV0L3BwcC9wcHBfZ2VuZXJpYy5jOjQwMQogIzE6IGZmZmY4ODgwNGM0MjJkZDggKCZuZXQtPmlw djYuZmliNl9nY19sb2NrKXsrLi0ufS17MjoyfSwgYXQ6IHNwaW5fdHJ5bG9ja19iaCBpbmNsdWRl L2xpbnV4L3NwaW5sb2NrLmg6NDE0IFtpbmxpbmVdCiAjMTogZmZmZjg4ODA0YzQyMmRkOCAoJm5l dC0+aXB2Ni5maWI2X2djX2xvY2speysuLS59LXsyOjJ9LCBhdDogZmliNl9ydW5fZ2MrMHgyMWIv MHgyZDAgbmV0L2lwdjYvaXA2X2ZpYi5jOjIzMTIKICMyOiBmZmZmZmZmZjg5YmQ2YTQwIChyY3Vf cmVhZF9sb2NrKXsuLi4ufS17MToyfSwgYXQ6IF9fZmliNl9jbGVhbl9hbGwrMHgwLzB4MjkwIG5l dC9pcHY2L2lwNl9maWIuYzoyNjEzCiAjMzogZmZmZjg4ODBhODJlNjQzMCAoJnRiLT50YjZfbG9j ayl7Ky4tLn0tezI6Mn0sIGF0OiBzcGluX2xvY2tfYmggaW5jbHVkZS9saW51eC9zcGlubG9jay5o OjM1OSBbaW5saW5lXQogIzM6IGZmZmY4ODgwYTgyZTY0MzAgKCZ0Yi0+dGI2X2xvY2speysuLS59 LXsyOjJ9LCBhdDogX19maWI2X2NsZWFuX2FsbCsweDEwNy8weDI5MCBuZXQvaXB2Ni9pcDZfZmli LmM6MjI0NQoKc3RhY2sgYmFja3RyYWNlOgpDUFU6IDEgUElEOiA4MDk1IENvbW06IHN5ei1leGVj dXRvci41IE5vdCB0YWludGVkIDUuOS4wLXJjNC1zeXprYWxsZXIgIzAKSGFyZHdhcmUgbmFtZTog R29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1Mg R29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFj ay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTk4LzB4MWZkIGxpYi9kdW1wX3N0YWNrLmM6 MTE4CiBmaWI2X2RlbCsweDEyYjQvMHgxNjMwIG5ldC9pcHY2L2lwNl9maWIuYzoxOTk2CiBmaWI2 X2NsZWFuX25vZGUrMHgzOWIvMHg1NzAgbmV0L2lwdjYvaXA2X2ZpYi5jOjIxODAKIGZpYjZfd2Fs a19jb250aW51ZSsweDRhYS8weDhlMCBuZXQvaXB2Ni9pcDZfZmliLmM6MjEwMgogZmliNl93YWxr KzB4MTgyLzB4MzcwIG5ldC9pcHY2L2lwNl9maWIuYzoyMTUwCiBmaWI2X2NsZWFuX3RyZWUrMHhk Yi8weDEyMCBuZXQvaXB2Ni9pcDZfZmliLmM6MjIzMAogX19maWI2X2NsZWFuX2FsbCsweDEyMC8w eDI5MCBuZXQvaXB2Ni9pcDZfZmliLmM6MjI0NgogZmliNl9jbGVhbl9hbGwgbmV0L2lwdjYvaXA2 X2ZpYi5jOjIyNTcgW2lubGluZV0KIGZpYjZfcnVuX2djKzB4MTEzLzB4MmQwIG5ldC9pcHY2L2lw Nl9maWIuYzoyMzIwCiBuZGlzY19uZXRkZXZfZXZlbnQrMHgyMTcvMHgzNTAgbmV0L2lwdjYvbmRp c2MuYzoxODA1CiBub3RpZmllcl9jYWxsX2NoYWluKzB4YjUvMHgyMDAga2VybmVsL25vdGlmaWVy LmM6ODMKIGNhbGxfbmV0ZGV2aWNlX25vdGlmaWVyc19pbmZvKzB4YjUvMHgxMzAgbmV0L2NvcmUv ZGV2LmM6MjAzMwogY2FsbF9uZXRkZXZpY2Vfbm90aWZpZXJzX2V4dGFjayBuZXQvY29yZS9kZXYu YzoyMDQ1IFtpbmxpbmVdCiBjYWxsX25ldGRldmljZV9ub3RpZmllcnMgbmV0L2NvcmUvZGV2LmM6 MjA1OSBbaW5saW5lXQogZGV2X2Nsb3NlX21hbnkrMHgzMGIvMHg2NTAgbmV0L2NvcmUvZGV2LmM6 MTYzNAogcm9sbGJhY2tfcmVnaXN0ZXJlZF9tYW55KzB4M2E4LzB4MTIxMCBuZXQvY29yZS9kZXYu Yzo5MjYxCiByb2xsYmFja19yZWdpc3RlcmVkIG5ldC9jb3JlL2Rldi5jOjkzMjkgW2lubGluZV0K IHVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKzB4MmRkLzB4NTcwIG5ldC9jb3JlL2Rldi5jOjEw NDEwCiB1bnJlZ2lzdGVyX25ldGRldmljZSBpbmNsdWRlL2xpbnV4L25ldGRldmljZS5oOjI3NzQg W2lubGluZV0KIHBwcF9yZWxlYXNlKzB4MjE2LzB4MjQwIGRyaXZlcnMvbmV0L3BwcC9wcHBfZ2Vu ZXJpYy5jOjQwMwogX19mcHV0KzB4Mjg1LzB4OTIwIGZzL2ZpbGVfdGFibGUuYzoyODEKIHRhc2tf d29ya19ydW4rMHhkZC8weDE5MCBrZXJuZWwvdGFza193b3JrLmM6MTQxCiB0cmFjZWhvb2tfbm90 aWZ5X3Jlc3VtZSBpbmNsdWRlL2xpbnV4L3RyYWNlaG9vay5oOjE4OCBbaW5saW5lXQogZXhpdF90 b191c2VyX21vZGVfbG9vcCBrZXJuZWwvZW50cnkvY29tbW9uLmM6MTYzIFtpbmxpbmVdCiBleGl0 X3RvX3VzZXJfbW9kZV9wcmVwYXJlKzB4MWUxLzB4MjAwIGtlcm5lbC9lbnRyeS9jb21tb24uYzox OTAKIHN5c2NhbGxfZXhpdF90b191c2VyX21vZGUrMHg3ZS8weDJlMCBrZXJuZWwvZW50cnkvY29t bW9uLmM6MjY1CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpGaXhl czogNDIxODQyZWRlYWY2ICgibmV0L2lwdjY6IEFkZCBmaWI2X251bGxfZW50cnkiKQpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBEYXZpZCBBaGVy biA8ZHNhaGVybkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfZmliLmMgfCAxMyArKysrKysrKystLS0tCiAxIGZpbGUg Y2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY2L2lwNl9maWIuYyBiL25ldC9pcHY2L2lwNl9maWIuYwppbmRleCA3YTBjODc3Y2EzMDYu Ljk2ZDgwZTUwYmYzNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2ZpYi5jCisrKyBiL25ldC9p cHY2L2lwNl9maWIuYwpAQCAtMTg5NiwxNCArMTg5NiwxOSBAQCBzdGF0aWMgdm9pZCBmaWI2X2Rl bF9yb3V0ZShzdHJ1Y3QgZmliNl90YWJsZSAqdGFibGUsIHN0cnVjdCBmaWI2X25vZGUgKmZuLAog LyogTmVlZCB0byBvd24gdGFibGUtPnRiNl9sb2NrICovCiBpbnQgZmliNl9kZWwoc3RydWN0IGZp YjZfaW5mbyAqcnQsIHN0cnVjdCBubF9pbmZvICppbmZvKQogewotCXN0cnVjdCBmaWI2X25vZGUg KmZuID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChydC0+ZmliNl9ub2RlLAotCQkJCSAgICBs b2NrZGVwX2lzX2hlbGQoJnJ0LT5maWI2X3RhYmxlLT50YjZfbG9jaykpOwotCXN0cnVjdCBmaWI2 X3RhYmxlICp0YWJsZSA9IHJ0LT5maWI2X3RhYmxlOwogCXN0cnVjdCBuZXQgKm5ldCA9IGluZm8t Pm5sX25ldDsKIAlzdHJ1Y3QgZmliNl9pbmZvIF9fcmN1ICoqcnRwOwogCXN0cnVjdCBmaWI2X2lu Zm8gX19yY3UgKipydHBfbmV4dDsKKwlzdHJ1Y3QgZmliNl90YWJsZSAqdGFibGU7CisJc3RydWN0 IGZpYjZfbm9kZSAqZm47CisKKwlpZiAocnQgPT0gbmV0LT5pcHY2LmZpYjZfbnVsbF9lbnRyeSkK KwkJcmV0dXJuIC1FTk9FTlQ7CiAKLQlpZiAoIWZuIHx8IHJ0ID09IG5ldC0+aXB2Ni5maWI2X251 bGxfZW50cnkpCisJdGFibGUgPSBydC0+ZmliNl90YWJsZTsKKwlmbiA9IHJjdV9kZXJlZmVyZW5j ZV9wcm90ZWN0ZWQocnQtPmZpYjZfbm9kZSwKKwkJCQkgICAgICAgbG9ja2RlcF9pc19oZWxkKCZ0 YWJsZS0+dGI2X2xvY2spKTsKKwlpZiAoIWZuKQogCQlyZXR1cm4gLUVOT0VOVDsKIAogCVdBUk5f T04oIShmbi0+Zm5fZmxhZ3MgJiBSVE5fUlRJTkZPKSk7Ci0tIAoyLjI2LjIKCgpGcm9tIDkxMTJl MzlhOTljMTMxODlmZTU4M2U1NTkyNTcwZDk0MGQ4YzU1YmMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFZsYWRpbWlyIE9sdGVhbiA8dmxhZGltaXIub2x0ZWFuQG54cC5jb20+CkRhdGU6 IFR1ZSwgMjIgU2VwIDIwMjAgMDE6MDc6MDkgKzAzMDAKU3ViamVjdDogW1BBVENIIDEyLzM2XSBu ZXQ6IGJyaWRnZTogYnJfdmxhbl9nZXRfcHZpZF9yY3UoKSBzaG91bGQgZGVyZWZlcmVuY2UKIHRo ZSBWTEFOIGdyb3VwIHVuZGVyIFJDVQoKWyBVcHN0cmVhbSBjb21taXQgOTlmNjJhNzQ2MDY2ZmE0 MzZhYTE1ZDQ2MDZhNTM4NTY5NTQwZGIwOCBdCgpXaGVuIGNhbGxpbmcgdGhlIFJDVSBicm90aGVy IG9mIGJyX3ZsYW5fZ2V0X3B2aWQoKSwgbG9ja2RlcCB3YXJuczoKCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CldBUk5JTkc6IHN1c3BpY2lvdXMgUkNVIHVzYWdlCjUuOS4wLXJjMy0wMTYz MS1nMTNjMTdhY2I4ZTM4LWRpcnR5ICM4MTQgTm90IHRhaW50ZWQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KbmV0L2JyaWRnZS9icl9wcml2YXRlLmg6MTA1NCBzdXNwaWNpb3VzIHJjdV9k ZXJlZmVyZW5jZV9wcm90ZWN0ZWQoKSB1c2FnZSEKCkNhbGwgdHJhY2U6CiBsb2NrZGVwX3JjdV9z dXNwaWNpb3VzKzB4ZDQvMHhmOAogX19icl92bGFuX2dldF9wdmlkKzB4YzAvMHgxMDAKIGJyX3Zs YW5fZ2V0X3B2aWRfcmN1KzB4NzgvMHgxMDgKClRoZSB3YXJuaW5nIGlzIGJlY2F1c2UgYnJfdmxh bl9nZXRfcHZpZF9yY3UoKSBjYWxscyBuYnBfdmxhbl9ncm91cCgpCndoaWNoIGNhbGxzIHJ0bmxf ZGVyZWZlcmVuY2UoKSBpbnN0ZWFkIG9mIHJjdV9kZXJlZmVyZW5jZSgpLiBJbiB0dXJuLApydG5s X2RlcmVmZXJlbmNlKCkgY2FsbHMgcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZCgpIHdoaWNoIGFz c3VtZXMKb3BlcmF0aW9uIHVuZGVyIGFuIFJDVSB3cml0ZS1zaWRlIGNyaXRpY2FsIHNlY3Rpb24s IHdoaWNoIG9idmlvdXNseSBpcwpub3QgdGhlIGNhc2UgaGVyZS4gU28sIHdoZW4gdGhlIGluY29y cmVjdCBwcmltaXRpdmUgaXMgdXNlZCB0byBhY2Nlc3MKdGhlIFJDVS1wcm90ZWN0ZWQgVkxBTiBn cm91cCBwb2ludGVyLCBSRUFEX09OQ0UoKSBpcyBub3QgdXNlZCwgd2hpY2ggbWF5CmNhdXNlIHZh cmlvdXMgdW5leHBlY3RlZCBwcm9ibGVtcy4KCkknbSBzYWQgdG8gc2F5IHRoYXQgYnJfdmxhbl9n ZXRfcHZpZCgpIGFuZCBicl92bGFuX2dldF9wdmlkX3JjdSgpIGNhbm5vdApzaGFyZSB0aGUgc2Ft ZSBpbXBsZW1lbnRhdGlvbi4gU28gZml4IHRoZSBidWcgYnkgc3BsaXR0aW5nIHRoZSAyCmZ1bmN0 aW9ucywgYW5kIG1ha2luZyBicl92bGFuX2dldF9wdmlkX3JjdSgpIHJldHJpZXZlIHRoZSBWTEFO IGdyb3Vwcwp1bmRlciBwcm9wZXIgbG9ja2luZyBhbm5vdGF0aW9ucy4KCkZpeGVzOiA3NTgyZjVi NzBmOWEgKCJicmlkZ2U6IGFkZCBicl92bGFuX2dldF9wdmlkX3JjdSgpIikKU2lnbmVkLW9mZi1i eTogVmxhZGltaXIgT2x0ZWFuIDx2bGFkaW1pci5vbHRlYW5AbnhwLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2Uv YnJfdmxhbi5jIHwgMjcgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2Jy aWRnZS9icl92bGFuLmMgYi9uZXQvYnJpZGdlL2JyX3ZsYW4uYwppbmRleCBiYjk4OTg0Y2QyN2Qu LjQ4NDEzYjVlYjYxZiAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl92bGFuLmMKKysrIGIvbmV0 L2JyaWRnZS9icl92bGFuLmMKQEAgLTEyMjksMTEgKzEyMjksMTMgQEAgdm9pZCBicl92bGFuX2dl dF9zdGF0cyhjb25zdCBzdHJ1Y3QgbmV0X2JyaWRnZV92bGFuICp2LAogCX0KIH0KIAotc3RhdGlj IGludCBfX2JyX3ZsYW5fZ2V0X3B2aWQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKLQkJ CSAgICAgIHN0cnVjdCBuZXRfYnJpZGdlX3BvcnQgKnAsIHUxNiAqcF9wdmlkKQoraW50IGJyX3Zs YW5fZ2V0X3B2aWQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2ICpwX3B2aWQpCiB7 CiAJc3RydWN0IG5ldF9icmlkZ2Vfdmxhbl9ncm91cCAqdmc7CisJc3RydWN0IG5ldF9icmlkZ2Vf cG9ydCAqcDsKIAorCUFTU0VSVF9SVE5MKCk7CisJcCA9IGJyX3BvcnRfZ2V0X2NoZWNrX3J0bmwo ZGV2KTsKIAlpZiAocCkKIAkJdmcgPSBuYnBfdmxhbl9ncm91cChwKTsKIAllbHNlIGlmIChuZXRp Zl9pc19icmlkZ2VfbWFzdGVyKGRldikpCkBAIC0xMjQ0LDE4ICsxMjQ2LDIzIEBAIHN0YXRpYyBp bnQgX19icl92bGFuX2dldF9wdmlkKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJKnBf cHZpZCA9IGJyX2dldF9wdmlkKHZnKTsKIAlyZXR1cm4gMDsKIH0KLQotaW50IGJyX3ZsYW5fZ2V0 X3B2aWQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2ICpwX3B2aWQpCi17Ci0JQVNT RVJUX1JUTkwoKTsKLQotCXJldHVybiBfX2JyX3ZsYW5fZ2V0X3B2aWQoZGV2LCBicl9wb3J0X2dl dF9jaGVja19ydG5sKGRldiksIHBfcHZpZCk7Ci19CiBFWFBPUlRfU1lNQk9MX0dQTChicl92bGFu X2dldF9wdmlkKTsKIAogaW50IGJyX3ZsYW5fZ2V0X3B2aWRfcmN1KGNvbnN0IHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsIHUxNiAqcF9wdmlkKQogewotCXJldHVybiBfX2JyX3ZsYW5fZ2V0X3B2aWQo ZGV2LCBicl9wb3J0X2dldF9jaGVja19yY3UoZGV2KSwgcF9wdmlkKTsKKwlzdHJ1Y3QgbmV0X2Jy aWRnZV92bGFuX2dyb3VwICp2ZzsKKwlzdHJ1Y3QgbmV0X2JyaWRnZV9wb3J0ICpwOworCisJcCA9 IGJyX3BvcnRfZ2V0X2NoZWNrX3JjdShkZXYpOworCWlmIChwKQorCQl2ZyA9IG5icF92bGFuX2dy b3VwX3JjdShwKTsKKwllbHNlIGlmIChuZXRpZl9pc19icmlkZ2VfbWFzdGVyKGRldikpCisJCXZn ID0gYnJfdmxhbl9ncm91cF9yY3UobmV0ZGV2X3ByaXYoZGV2KSk7CisJZWxzZQorCQlyZXR1cm4g LUVJTlZBTDsKKworCSpwX3B2aWQgPSBicl9nZXRfcHZpZCh2Zyk7CisJcmV0dXJuIDA7CiB9CiBF WFBPUlRfU1lNQk9MX0dQTChicl92bGFuX2dldF9wdmlkX3JjdSk7CiAKLS0gCjIuMjYuMgoKCkZy b20gZTU0MmExYWEyZWI2NjAyYjRhMDZiMzU4NTkwY2I3ZjkxZDg3Njg0NyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogUGV0ciBNYWNoYXRhIDxwZXRybUBudmlkaWEuY29tPgpEYXRlOiBU aHUsIDEwIFNlcCAyMDIwIDE0OjA5OjA1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMy8zNl0gbmV0 OiBEQ0I6IFZhbGlkYXRlIERDQl9BVFRSX0RDQl9CVUZGRVIgYXJndW1lbnQKClsgVXBzdHJlYW0g Y29tbWl0IDI5N2U3N2U1M2VhZGIzMzJkNTA2MjkxMzQ0N2IxMDRhNzcyZGMzM2IgXQoKVGhlIHBh cmFtZXRlciBwYXNzZWQgdmlhIERDQl9BVFRSX0RDQl9CVUZGRVIgaXMgYSBzdHJ1Y3QgZGNibmxf YnVmZmVyLiBUaGUKZmllbGQgcHJpbzJidWZmZXIgaXMgYW4gYXJyYXkgb2YgSUVFRV84MDIxUV9N QVhfUFJJT1JJVElFUyBieXRlcywgd2hlcmUKZWFjaCB2YWx1ZSBpcyBhIG51bWJlciBvZiBhIGJ1 ZmZlciB0byBkaXJlY3QgdGhhdCBwcmlvcml0eSdzIHRyYWZmaWMgdG8uClRoYXQgdmFsdWUgaXMg aG93ZXZlciBuZXZlciB2YWxpZGF0ZWQgdG8gbGllIHdpdGhpbiB0aGUgYm91bmRzIHNldCBieQpE Q0JYX01BWF9CVUZGRVJTLiBUaGUgb25seSBkcml2ZXIgdGhhdCBjdXJyZW50bHkgaW1wbGVtZW50 cyB0aGUgY2FsbGJhY2sgaXMKbWx4NSAobWFpbnRhaW5lcnMgQ0NkKSwgYW5kIHRoYXQgZG9lcyBu b3QgZG8gYW55IHZhbGlkYXRpb24gZWl0aGVyLCBpbgpwYXJ0aWN1YWwgYWxsb3dpbmcgaW5jb3Jy ZWN0IGNvbmZpZ3VyYXRpb24gaWYgdGhlIHByaW8yYnVmZmVyIHZhbHVlIGRvZXMKbm90IGZpdCBp bnRvIDQgYml0cy4KCkluc3RlYWQgb2Ygb2ZmbG9hZGluZyB0aGUgbmVlZCB0byB2YWxpZGF0ZSB0 aGUgYnVmZmVyIGluZGV4IHRvIGRyaXZlcnMsIGRvCml0IHJpZ2h0IHRoZXJlIGluIGNvcmUsIGFu ZCBib3VuY2UgdGhlIHJlcXVlc3QgaWYgdGhlIHZhbHVlIGlzIHRvbyBsYXJnZS4KCkNDOiBQYXJh diBQYW5kaXQgPHBhcmF2QG52aWRpYS5jb20+CkNDOiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG52 aWRpYS5jb20+CkZpeGVzOiBlNTQ5ZjZmOWMwOTggKCJuZXQvZGNiOiBBZGQgZGNibmwgYnVmZmVy IGF0dHJpYnV0ZSIpClNpZ25lZC1vZmYtYnk6IFBldHIgTWFjaGF0YSA8cGV0cm1AbnZpZGlhLmNv bT4KUmV2aWV3ZWQtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG52aWRpYS5jb20+ClJldmlld2Vk LWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG52aWRpYS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvZGNiL2RjYm5sLmMgfCA4ICsr KysrKysrCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0 L2RjYi9kY2JubC5jIGIvbmV0L2RjYi9kY2JubC5jCmluZGV4IGQyYTQ1NTNiY2YzOS4uMGZkMWMy YWExMzYxIDEwMDY0NAotLS0gYS9uZXQvZGNiL2RjYm5sLmMKKysrIGIvbmV0L2RjYi9kY2JubC5j CkBAIC0xNDI2LDYgKzE0MjYsNyBAQCBzdGF0aWMgaW50IGRjYm5sX2llZWVfc2V0KHN0cnVjdCBu ZXRfZGV2aWNlICpuZXRkZXYsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogewogCWNvbnN0IHN0cnVj dCBkY2JubF9ydG5sX29wcyAqb3BzID0gbmV0ZGV2LT5kY2JubF9vcHM7CiAJc3RydWN0IG5sYXR0 ciAqaWVlZVtEQ0JfQVRUUl9JRUVFX01BWCArIDFdOworCWludCBwcmlvOwogCWludCBlcnI7CiAK IAlpZiAoIW9wcykKQEAgLTE0NzUsNiArMTQ3NiwxMyBAQCBzdGF0aWMgaW50IGRjYm5sX2llZWVf c2V0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCQlz dHJ1Y3QgZGNibmxfYnVmZmVyICpidWZmZXIgPQogCQkJbmxhX2RhdGEoaWVlZVtEQ0JfQVRUUl9E Q0JfQlVGRkVSXSk7CiAKKwkJZm9yIChwcmlvID0gMDsgcHJpbyA8IEFSUkFZX1NJWkUoYnVmZmVy LT5wcmlvMmJ1ZmZlcik7IHByaW8rKykgeworCQkJaWYgKGJ1ZmZlci0+cHJpbzJidWZmZXJbcHJp b10gPj0gRENCWF9NQVhfQlVGRkVSUykgeworCQkJCWVyciA9IC1FSU5WQUw7CisJCQkJZ290byBl cnI7CisJCQl9CisJCX0KKwogCQllcnIgPSBvcHMtPmRjYm5sX3NldGJ1ZmZlcihuZXRkZXYsIGJ1 ZmZlcik7CiAJCWlmIChlcnIpCiAJCQlnb3RvIGVycjsKLS0gCjIuMjYuMgoKCkZyb20gYjU5Yzk1 Y2FlNjgyOWY0ZTE5NzZlYzMyNjI4MDI2MTljOWFmMjJiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogTGludXMgV2FsbGVpaiA8bGludXMud2FsbGVpakBsaW5hcm8ub3JnPgpEYXRlOiBT YXQsIDUgU2VwIDIwMjAgMTI6MzI6MzMgKzAyMDAKU3ViamVjdDogW1BBVENIIDE0LzM2XSBuZXQ6 IGRzYTogcnRsODM2NjogUHJvcGVybHkgY2xlYXIgbWVtYmVyIGNvbmZpZwoKWyBVcHN0cmVhbSBj b21taXQgNGRkY2FmMWViYjVlNGU5OTI0MGYyOWQ1MzFlZTY5ZDQyNDRmZTQxNiBdCgpXaGVuIHJl bW92aW5nIGEgcG9ydCBmcm9tIGEgVkxBTiB3ZSBhcmUganVzdCBlcmFzaW5nIHRoZQptZW1iZXIg Y29uZmlnIGZvciB0aGUgVkxBTiwgd2hpY2ggaXMgd3Jvbmc6IG90aGVyIHBvcnRzCmNhbiBiZSB1 c2luZyBpdC4KCkp1c3QgbWFzayBvZmYgdGhlIHBvcnQgYW5kIG9ubHkgemVybyBvdXQgdGhlIHJl c3Qgb2YgdGhlCm1lbWJlciBjb25maWcgb25jZSBwb3J0cyB1c2luZyBvZiB0aGUgVkxBTiBhcmUg cmVtb3ZlZApmcm9tIGl0LgoKUmVwb3J0ZWQtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVs bGlAZ21haWwuY29tPgpGaXhlczogZDg2NTI5NTZjZjM3ICgibmV0OiBkc2E6IHJlYWx0ZWstc21p OiBBZGQgUmVhbHRlayBTTUkgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTogTGludXMgV2FsbGVpaiA8 bGludXMud2FsbGVpakBsaW5hcm8ub3JnPgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8 a3ViYUBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvbmV0L2RzYS9ydGw4MzY2LmMgfCAyMCArKysr KysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDcgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3J0bDgzNjYuYyBiL2RyaXZl cnMvbmV0L2RzYS9ydGw4MzY2LmMKaW5kZXggMTM2ODgxNmFiYWVkLi45OWNkYjJmMThmYTIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9ydGw4MzY2LmMKKysrIGIvZHJpdmVycy9uZXQvZHNh L3J0bDgzNjYuYwpAQCAtNDUyLDEzICs0NTIsMTkgQEAgaW50IHJ0bDgzNjZfdmxhbl9kZWwoc3Ry dWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAkJCQlyZXR1cm4gcmV0OwogCiAJCQlpZiAo dmlkID09IHZsYW5tYy52aWQpIHsKLQkJCQkvKiBjbGVhciBWTEFOIG1lbWJlciBjb25maWd1cmF0 aW9ucyAqLwotCQkJCXZsYW5tYy52aWQgPSAwOwotCQkJCXZsYW5tYy5wcmlvcml0eSA9IDA7Ci0J CQkJdmxhbm1jLm1lbWJlciA9IDA7Ci0JCQkJdmxhbm1jLnVudGFnID0gMDsKLQkJCQl2bGFubWMu ZmlkID0gMDsKLQorCQkJCS8qIFJlbW92ZSB0aGlzIHBvcnQgZnJvbSB0aGUgVkxBTiAqLworCQkJ CXZsYW5tYy5tZW1iZXIgJj0gfkJJVChwb3J0KTsKKwkJCQl2bGFubWMudW50YWcgJj0gfkJJVChw b3J0KTsKKwkJCQkvKgorCQkJCSAqIElmIG5vIHBvcnRzIGFyZSBtZW1iZXJzIG9mIHRoaXMgVkxB TgorCQkJCSAqIGFueW1vcmUgdGhlbiBjbGVhciB0aGUgd2hvbGUgbWVtYmVyCisJCQkJICogY29u ZmlnIHNvIGl0IGNhbiBiZSByZXVzZWQuCisJCQkJICovCisJCQkJaWYgKCF2bGFubWMubWVtYmVy ICYmIHZsYW5tYy51bnRhZykgeworCQkJCQl2bGFubWMudmlkID0gMDsKKwkJCQkJdmxhbm1jLnBy aW9yaXR5ID0gMDsKKwkJCQkJdmxhbm1jLmZpZCA9IDA7CisJCQkJfQogCQkJCXJldCA9IHNtaS0+ b3BzLT5zZXRfdmxhbl9tYyhzbWksIGksICZ2bGFubWMpOwogCQkJCWlmIChyZXQpIHsKIAkJCQkJ ZGV2X2VycihzbWktPmRldiwKLS0gCjIuMjYuMgoKCkZyb20gNWZiOTFjZWJjMzI2MzVjODJmOTI1 YzdiNzUzYjBjZWRiM2MwZjMwNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWRvIFNj aGltbWVsIDxpZG9zY2hAbnZpZGlhLmNvbT4KRGF0ZTogVGh1LCAxMCBTZXAgMjAyMCAxNDowMToy NiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMzZdIG5ldDogRml4IGJyaWRnZSBlbnNsYXZlbWVu dCBmYWlsdXJlCgpbIFVwc3RyZWFtIGNvbW1pdCBlMWI5ZWZlNmJhZWJlNzkwMTlhMjE4MzE3NjY4 NmEwZTcwOTM4OGFlIF0KCldoZW4gYSBuZXRkZXYgaXMgZW5zbGF2ZWQgdG8gYSBicmlkZ2UsIGl0 cyBwYXJlbnQgaWRlbnRpZmllciBpcyBxdWVyaWVkLgpUaGlzIGlzIGRvbmUgc28gdGhhdCBwYWNr ZXRzIHRoYXQgd2VyZSBhbHJlYWR5IGZvcndhcmRlZCBpbiBoYXJkd2FyZQp3aWxsIG5vdCBiZSBm b3J3YXJkZWQgYWdhaW4gYnkgdGhlIGJyaWRnZSBkZXZpY2UgYmV0d2VlbiBuZXRkZXZzCmJlbG9u Z2luZyB0byB0aGUgc2FtZSBoYXJkd2FyZSBpbnN0YW5jZS4KClRoZSBvcGVyYXRpb24gZmFpbHMg d2hlbiB0aGUgbmV0ZGV2IGlzIGFuIHVwcGVyIG9mIG5ldGRldnMgd2l0aApkaWZmZXJlbnQgcGFy ZW50IGlkZW50aWZpZXJzLgoKSW5zdGVhZCBvZiBmYWlsaW5nIHRoZSBlbnNsYXZlbWVudCwgaGF2 ZSBkZXZfZ2V0X3BvcnRfcGFyZW50X2lkKCkgcmV0dXJuCictRU9QTk9UU1VQUCcgd2hpY2ggd2ls bCBzaWduYWwgdGhlIGJyaWRnZSB0byBza2lwIHRoZSBxdWVyeSBvcGVyYXRpb24uCk90aGVyIGNh bGxlcnMgb2YgdGhlIGZ1bmN0aW9uIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhpcyBjaGFuZ2UuCgpG aXhlczogN2UxMTQ2ZThjMTBjICgibmV0OiBkZXZsaW5rOiBpbnRyb2R1Y2UgZGV2bGlua19jb21w YXRfc3dpdGNoX2lkX2dldCgpIGhlbHBlciIpClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8 aWRvc2NoQG52aWRpYS5jb20+ClJlcG9ydGVkLWJ5OiBWYXN1bmRoYXJhIFZvbGFtIDx2YXN1bmRo YXJhLXYudm9sYW1AYnJvYWRjb20uY29tPgpSZXZpZXdlZC1ieTogSmlyaSBQaXJrbyA8amlyaUBu dmlkaWEuY29tPgpSZXZpZXdlZC1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBudmlk aWEuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2NvcmUvZGV2LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9j b3JlL2Rldi5jCmluZGV4IGNkYzFjM2ExNDRlMS4uMjBjN2ZkN2I4YjRiIDEwMDY0NAotLS0gYS9u ZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtODI0MSw3ICs4MjQxLDcgQEAg aW50IGRldl9nZXRfcG9ydF9wYXJlbnRfaWQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJaWYg KCFmaXJzdC5pZF9sZW4pCiAJCQlmaXJzdCA9ICpwcGlkOwogCQllbHNlIGlmIChtZW1jbXAoJmZp cnN0LCBwcGlkLCBzaXplb2YoKnBwaWQpKSkKLQkJCXJldHVybiAtRU5PREFUQTsKKwkJCXJldHVy biAtRU9QTk9UU1VQUDsKIAl9CiAKIAlyZXR1cm4gZXJyOwotLSAKMi4yNi4yCgoKRnJvbSAwYWJj NzdkODRhZDE0OTJiNGMyNTEwNThjNGJkYTQ1NTRmMDhiMjZjIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBOZWNpcCBGYXppbCBZaWxkaXJhbiA8ZmF6aWx5aWxkaXJhbkBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMTk6NDY6NDMgKzAzMDAKU3ViamVjdDogW1BBVENIIDE2 LzM2XSBuZXQ6IGlwdjY6IGZpeCBrY29uZmlnIGRlcGVuZGVuY3kgd2FybmluZyBmb3IKIElQVjZf U0VHNl9ITUFDCgpbIFVwc3RyZWFtIGNvbW1pdCBkYjdjZDkxYTRiZTE1ZTE0ODVkNmI1OGM2YWZj ODc2MWM1OWM0ZWZiIF0KCldoZW4gSVBWNl9TRUc2X0hNQUMgaXMgZW5hYmxlZCBhbmQgQ1JZUFRP IGlzIGRpc2FibGVkLCBpdCByZXN1bHRzIGluIHRoZQpmb2xsb3dpbmcgS2J1aWxkIHdhcm5pbmc6 CgpXQVJOSU5HOiB1bm1ldCBkaXJlY3QgZGVwZW5kZW5jaWVzIGRldGVjdGVkIGZvciBDUllQVE9f SE1BQwogIERlcGVuZHMgb24gW25dOiBDUllQVE8gWz1uXQogIFNlbGVjdGVkIGJ5IFt5XToKICAt IElQVjZfU0VHNl9ITUFDIFs9eV0gJiYgTkVUIFs9eV0gJiYgSU5FVCBbPXldICYmIElQVjYgWz15 XQoKV0FSTklORzogdW5tZXQgZGlyZWN0IGRlcGVuZGVuY2llcyBkZXRlY3RlZCBmb3IgQ1JZUFRP X1NIQTEKICBEZXBlbmRzIG9uIFtuXTogQ1JZUFRPIFs9bl0KICBTZWxlY3RlZCBieSBbeV06CiAg LSBJUFY2X1NFRzZfSE1BQyBbPXldICYmIE5FVCBbPXldICYmIElORVQgWz15XSAmJiBJUFY2IFs9 eV0KCldBUk5JTkc6IHVubWV0IGRpcmVjdCBkZXBlbmRlbmNpZXMgZGV0ZWN0ZWQgZm9yIENSWVBU T19TSEEyNTYKICBEZXBlbmRzIG9uIFtuXTogQ1JZUFRPIFs9bl0KICBTZWxlY3RlZCBieSBbeV06 CiAgLSBJUFY2X1NFRzZfSE1BQyBbPXldICYmIE5FVCBbPXldICYmIElORVQgWz15XSAmJiBJUFY2 IFs9eV0KClRoZSByZWFzb24gaXMgdGhhdCBJUFY2X1NFRzZfSE1BQyBzZWxlY3RzIENSWVBUT19I TUFDLCBDUllQVE9fU0hBMSwgYW5kCkNSWVBUT19TSEEyNTYgd2l0aG91dCBkZXBlbmRpbmcgb24g b3Igc2VsZWN0aW5nIENSWVBUTyB3aGlsZSB0aG9zZSBjb25maWdzCmFyZSBzdWJvcmRpbmF0ZSB0 byBDUllQVE8uCgpIb25vciB0aGUga2NvbmZpZyBtZW51IGhpZXJhcmNoeSB0byByZW1vdmUga2Nv bmZpZyBkZXBlbmRlbmN5IHdhcm5pbmdzLgoKRml4ZXM6IGJmMzU1YjhkMmMzMCAoImlwdjY6IHNy OiBhZGQgY29yZSBmaWxlcyBmb3IgU1IgSE1BQyBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogTmVj aXAgRmF6aWwgWWlsZGlyYW4gPGZhemlseWlsZGlyYW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvS2Nv bmZpZyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvS2NvbmZpZyBiL25ldC9pcHY2L0tjb25maWcKaW5kZXggYWUxMzQ0ZTRjZWM1Li5k Y2UxNDQ3MGIxNWEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L0tjb25maWcKKysrIGIvbmV0L2lwdjYv S2NvbmZpZwpAQCAtMjg5LDYgKzI4OSw3IEBAIGNvbmZpZyBJUFY2X1NFRzZfTFdUVU5ORUwKIGNv bmZpZyBJUFY2X1NFRzZfSE1BQwogCWJvb2wgIklQdjY6IFNlZ21lbnQgUm91dGluZyBITUFDIHN1 cHBvcnQiCiAJZGVwZW5kcyBvbiBJUFY2CisJc2VsZWN0IENSWVBUTwogCXNlbGVjdCBDUllQVE9f SE1BQwogCXNlbGVjdCBDUllQVE9fU0hBMQogCXNlbGVjdCBDUllQVE9fU0hBMjU2Ci0tIAoyLjI2 LjIKCgpGcm9tIDQ1MDA4NTE2Yjk5ZTBkNWY2MzI0M2MxMzQ5MTIyNDI0NmUyMmU1MGQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hb3IgR290dGxpZWIgPG1hb3JnQG52aWRpYS5jb20+ CkRhdGU6IE1vbiwgMzEgQXVnIDIwMjAgMjA6NTA6NDIgKzAzMDAKU3ViamVjdDogW1BBVENIIDE3 LzM2XSBuZXQvbWx4NTogRml4IEZURSBjbGVhbnVwCgpbIFVwc3RyZWFtIGNvbW1pdCBjZWZjMjM1 NTRmYzI1OTExNGU3OGE3YjA5MDhhYWM0NjEwZWUxOGViIF0KCkN1cnJlbnRseSwgd2hlbiBhbiBG VEUgaXMgYWxsb2NhdGVkLCBpdHMgcmVmY291bnQgaXMgZGVjcmVhc2VkIHRvIDAKd2l0aCB0aGUg cHVycG9zZSBpdCB3aWxsIG5vdCBiZSBhIHN0YW5kIGFsb25lIHN0ZWVyaW5nIG9iamVjdCBhbmQg ZXZlcnkKcnVsZSAoZGVzdGluYXRpb24pIG9mIHRoZSBGVEUgd291bGQgaW5jcmVhc2UgdGhlIHJl ZmNvdW50LgpXaGVuIG1seDVfY2xlYW51cF9mcyBpcyBjYWxsZWQgd2hpbGUgbm90IGFsbCBydWxl cyB3ZXJlIGRlbGV0ZWQgYnkgdGhlCnN0ZWVyaW5nIHVzZXJzLCBpdCBoaXQgcmVmY291bnQgdW5k ZXJmbG93IG9uIHRoZSBGVEUgb25jZSBjbGVhbl90cmVlCmNhbGxzIHRvIHRyZWVfcmVtb3ZlX25v ZGUgYWZ0ZXIgdGhlIGRlbGV0ZWQgcnVsZXMgYWxyZWFkeSBkZWNyZWFzZWQKdGhlIHJlZmNvdW50 IHRvIDAuCgpGVEUgaXMgbm8gbG9uZ2VyIGRlc3Ryb3llZCBpbXBsaWNpdGx5IHdoZW4gdGhlIGxh c3QgcnVsZSAoZGVzdGluYXRpb24pCmlzIGRlbGV0ZWQuIG1seDVfZGVsX2Zsb3dfcnVsZXMgYXZv aWRzIGl0IGJ5IGluY3JlYXNpbmcgdGhlIHJlZmNvdW50IG9uCnRoZSBGVEUgYW5kIGRlc3Ryb3kg aXQgZXhwbGljaXRseSBhZnRlciBhbGwgcnVsZXMgd2VyZSBkZWxldGVkLiBTbyB3ZQpjYW4gYXZv aWQgdGhlIHJlZmNvdW50IHVuZGVyZmxvdyBieSBtYWtpbmcgRlRFIGFzIHN0YW5kIGFsb25lIG9i amVjdC4KSW4gYWRkaXRpb24gbmVlZCB0byBzZXQgZGVsX2h3X2Z1bmMgdG8gRlRFIHNvIHRoZSBI VyBvYmplY3Qgd2lsbCBiZQpkZXN0cm95ZWQgd2hlbiB0aGUgRlRFIGlzIGRlbGV0ZWQgZnJvbSB0 aGUgY2xlYW51cF90cmVlIGZsb3cuCgpyZWZjb3VudF90OiB1bmRlcmZsb3c7IHVzZS1hZnRlci1m cmVlLgpXQVJOSU5HOiBDUFU6IDIgUElEOiAxNTcxNSBhdCBsaWIvcmVmY291bnQuYzoyOCByZWZj b3VudF93YXJuX3NhdHVyYXRlKzB4ZDkvMHhlMApIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJk IFBDIChRMzUgKyBJQ0g5LCAyMDA5KSwgQklPUyByZWwtMS4xMy4wLTAtZ2YyMWI1YTRhZWIwMi1w cmVidWlsdC5xZW11Lm9yZyAwNC8wMS8yMDE0CkNhbGwgVHJhY2U6CiB0cmVlX3B1dF9ub2RlKzB4 ZjIvMHgxNDAgW21seDVfY29yZV0KIGNsZWFuX3RyZWUrMHg0ZS8weGYwIFttbHg1X2NvcmVdCiBj bGVhbl90cmVlKzB4NGUvMHhmMCBbbWx4NV9jb3JlXQogY2xlYW5fdHJlZSsweDRlLzB4ZjAgW21s eDVfY29yZV0KIGNsZWFuX3RyZWUrMHg1Zi8weGYwIFttbHg1X2NvcmVdCiBjbGVhbl90cmVlKzB4 NGUvMHhmMCBbbWx4NV9jb3JlXQogY2xlYW5fdHJlZSsweDVmLzB4ZjAgW21seDVfY29yZV0KIG1s eDVfY2xlYW51cF9mcysweDI2LzB4MjcwIFttbHg1X2NvcmVdCiBtbHg1X3VubG9hZCsweDJlLzB4 YTAgW21seDVfY29yZV0KIG1seDVfdW5sb2FkX29uZSsweDUxLzB4MTIwIFttbHg1X2NvcmVdCiBt bHg1X2RldmxpbmtfcmVsb2FkX2Rvd24rMHg1MS8weDkwIFttbHg1X2NvcmVdCiBkZXZsaW5rX3Jl bG9hZCsweDM5LzB4MTIwCiA/IGRldmxpbmtfbmxfY21kX3JlbG9hZCsweDQzLzB4MjIwCiBnZW5s X3Jjdl9tc2crMHgxZTQvMHg0MjAKID8gZ2VubF9mYW1pbHlfcmN2X21zZ19hdHRyc19wYXJzZSsw eDEwMC8weDEwMAogbmV0bGlua19yY3Zfc2tiKzB4NDcvMHgxMTAKIGdlbmxfcmN2KzB4MjQvMHg0 MAogbmV0bGlua191bmljYXN0KzB4MjE3LzB4MmYwCiBuZXRsaW5rX3NlbmRtc2crMHgzMGYvMHg0 MzAKIHNvY2tfc2VuZG1zZysweDMwLzB4NDAKIF9fc3lzX3NlbmR0bysweDEwZS8weDE0MAogPyBo YW5kbGVfbW1fZmF1bHQrMHhjNC8weDFmMAogPyBkb19wYWdlX2ZhdWx0KzB4MzNmLzB4NjMwCiBf X3g2NF9zeXNfc2VuZHRvKzB4MjQvMHgzMAogZG9fc3lzY2FsbF82NCsweDQ4LzB4MTMwCiBlbnRy eV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpGaXhlczogNzE4Y2U0ZDYwMWRi ICgibmV0L21seDU6IENvbnNvbGlkYXRlIHVwZGF0ZSBGVEUgZm9yIGFsbCByZW1vdmFsIGNoYW5n ZXMiKQpGaXhlczogYmQ3MWIwOGVjMmVlICgibmV0L21seDU6IFN1cHBvcnQgbXVsdGlwbGUgdXBk YXRlcyBvZiBzdGVlcmluZyBydWxlcyBpbiBwYXJhbGxlbCIpClNpZ25lZC1vZmYtYnk6IE1hb3Ig R290dGxpZWIgPG1hb3JnQG52aWRpYS5jb20+ClJldmlld2VkLWJ5OiBNYXJrIEJsb2NoIDxtYmxv Y2hAbnZpZGlhLmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBudmlk aWEuY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19j b3JlLmMgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9mc19jb3JlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZnNfY29yZS5jCmluZGV4IGI2NmU1YjZlZWNkOS4uOWFjMmY1MjE4N2VhIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMKQEAgLTYy OSw3ICs2MjksNyBAQCBzdGF0aWMgc3RydWN0IGZzX2Z0ZSAqYWxsb2NfZnRlKHN0cnVjdCBtbHg1 X2Zsb3dfdGFibGUgKmZ0LAogCWZ0ZS0+YWN0aW9uID0gKmZsb3dfYWN0OwogCWZ0ZS0+Zmxvd19j b250ZXh0ID0gc3BlYy0+Zmxvd19jb250ZXh0OwogCi0JdHJlZV9pbml0X25vZGUoJmZ0ZS0+bm9k ZSwgTlVMTCwgZGVsX3N3X2Z0ZSk7CisJdHJlZV9pbml0X25vZGUoJmZ0ZS0+bm9kZSwgZGVsX2h3 X2Z0ZSwgZGVsX3N3X2Z0ZSk7CiAKIAlyZXR1cm4gZnRlOwogfQpAQCAtMTczNyw3ICsxNzM3LDYg QEAgdHJ5X2FkZF90b19leGlzdGluZ19mZyhzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCwKIAkJ dXBfd3JpdGVfcmVmX25vZGUoJmctPm5vZGUsIGZhbHNlKTsKIAkJcnVsZSA9IGFkZF9ydWxlX2Zn KGcsIHNwZWMsIGZsb3dfYWN0LCBkZXN0LCBkZXN0X251bSwgZnRlKTsKIAkJdXBfd3JpdGVfcmVm X25vZGUoJmZ0ZS0+bm9kZSwgZmFsc2UpOwotCQl0cmVlX3B1dF9ub2RlKCZmdGUtPm5vZGUsIGZh bHNlKTsKIAkJcmV0dXJuIHJ1bGU7CiAJfQogCXJ1bGUgPSBFUlJfUFRSKC1FTk9FTlQpOwpAQCAt MTgzNyw3ICsxODM2LDYgQEAgX21seDVfYWRkX2Zsb3dfcnVsZXMoc3RydWN0IG1seDVfZmxvd190 YWJsZSAqZnQsCiAJdXBfd3JpdGVfcmVmX25vZGUoJmctPm5vZGUsIGZhbHNlKTsKIAlydWxlID0g YWRkX3J1bGVfZmcoZywgc3BlYywgZmxvd19hY3QsIGRlc3QsIGRlc3RfbnVtLCBmdGUpOwogCXVw X3dyaXRlX3JlZl9ub2RlKCZmdGUtPm5vZGUsIGZhbHNlKTsKLQl0cmVlX3B1dF9ub2RlKCZmdGUt Pm5vZGUsIGZhbHNlKTsKIAl0cmVlX3B1dF9ub2RlKCZnLT5ub2RlLCBmYWxzZSk7CiAJcmV0dXJu IHJ1bGU7CiAKQEAgLTE5MzAsNyArMTkyOCw5IEBAIHZvaWQgbWx4NV9kZWxfZmxvd19ydWxlcyhz dHJ1Y3QgbWx4NV9mbG93X2hhbmRsZSAqaGFuZGxlKQogCQl1cF93cml0ZV9yZWZfbm9kZSgmZnRl LT5ub2RlLCBmYWxzZSk7CiAJfSBlbHNlIHsKIAkJZGVsX2h3X2Z0ZSgmZnRlLT5ub2RlKTsKLQkJ dXBfd3JpdGUoJmZ0ZS0+bm9kZS5sb2NrKTsKKwkJLyogQXZvaWQgZG91YmxlIGNhbGwgdG8gZGVs X2h3X2Z0ZSAqLworCQlmdGUtPm5vZGUuZGVsX2h3X2Z1bmMgPSBOVUxMOworCQl1cF93cml0ZV9y ZWZfbm9kZSgmZnRlLT5ub2RlLCBmYWxzZSk7CiAJCXRyZWVfcHV0X25vZGUoJmZ0ZS0+bm9kZSwg ZmFsc2UpOwogCX0KIAlrZnJlZShoYW5kbGUpOwotLSAKMi4yNi4yCgoKRnJvbSA3NzExM2Q3NDYy YjJkNGIyMTAzMTY5ZjI3NTY3YTU4MjEzZjY4YTc4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBZdW5zaGVuZyBMaW4gPGxpbnl1bnNoZW5nQGh1YXdlaS5jb20+CkRhdGU6IFR1ZSwgOCBT ZXAgMjAyMCAxOTowMjozNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMzZdIG5ldDogc2NoX2dl bmVyaWM6IGF2aW9kIGNvbmN1cnJlbnQgcmVzZXQgYW5kIGVucXVldWUgb3AKIGZvciBsb2NrbGVz cyBxZGlzYwoKWyBVcHN0cmVhbSBjb21taXQgMmZiNTQxYzg2MmM5ODdkMDJkZmRmMjhmMTU0NTAx NmRlZWNmYTBkNSBdCgpDdXJyZW50bHkgdGhlcmUgaXMgY29uY3VycmVudCByZXNldCBhbmQgZW5x dWV1ZSBvcGVyYXRpb24gZm9yIHRoZQpzYW1lIGxvY2tsZXNzIHFkaXNjIHdoZW4gdGhlcmUgaXMg bm8gbG9jayB0byBzeW5jaHJvbml6ZSB0aGUKcS0+ZW5xdWV1ZSgpIGluIF9fZGV2X3htaXRfc2ti KCkgd2l0aCB0aGUgcWRpc2MgcmVzZXQgb3BlcmF0aW9uIGluCnFkaXNjX2RlYWN0aXZhdGUoKSBj YWxsZWQgYnkgZGV2X2RlYWN0aXZhdGVfcXVldWUoKSwgd2hpY2ggbWF5IGNhdXNlCm91dC1vZi1i b3VuZHMgYWNjZXNzIGZvciBwcml2LT5yaW5nW10gaW4gaG5zMyBkcml2ZXIgaWYgdXNlciBoYXMK cmVxdWVzdGVkIGEgc21hbGxlciBxdWV1ZSBudW0gd2hlbiBfX2Rldl94bWl0X3NrYigpIHN0aWxs IGVucXVldWUgYQpza2Igd2l0aCBhIGxhcmdlciBxdWV1ZV9tYXBwaW5nIGFmdGVyIHRoZSBjb3Jy ZXNwb25kaW5nIHFkaXNjIGlzCnJlc2V0LCBhbmQgY2FsbCBobnMzX25pY19uZXRfeG1pdCgpIHdp dGggdGhhdCBza2IgbGF0ZXIuCgpSZXVzZWQgdGhlIGV4aXN0aW5nIHN5bmNocm9uaXplX25ldCgp IGluIGRldl9kZWFjdGl2YXRlX21hbnkoKSB0bwptYWtlIHN1cmUgc2tiIHdpdGggbGFyZ2VyIHF1 ZXVlX21hcHBpbmcgZW5xdWV1ZWQgdG8gb2xkIHFkaXNjKHdoaWNoCmlzIHNhdmVkIGluIGRldl9x dWV1ZS0+cWRpc2Nfc2xlZXBpbmcpIHdpbGwgYWx3YXlzIGJlIHJlc2V0IHdoZW4KZGV2X3Jlc2V0 X3F1ZXVlKCkgaXMgY2FsbGVkLgoKRml4ZXM6IDZiM2JhOTE0NmZlNiAoIm5ldDogc2NoZWQ6IGFs bG93IHFkaXNjcyB0byBoYW5kbGUgbG9ja2luZyIpClNpZ25lZC1vZmYtYnk6IFl1bnNoZW5nIExp biA8bGlueXVuc2hlbmdAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jIHwgNDkg KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAzMyBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2No ZWQvc2NoX2dlbmVyaWMuYyBiL25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jCmluZGV4IDg5NmM5MDM3 MTU1YS4uMGUyNzVlMTFmNTExIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2dlbmVyaWMuYwor KysgYi9uZXQvc2NoZWQvc2NoX2dlbmVyaWMuYwpAQCAtMTEyNiwyNyArMTEyNiwzNiBAQCBzdGF0 aWMgdm9pZCBkZXZfZGVhY3RpdmF0ZV9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJ CSBzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpkZXZfcXVldWUsCiAJCQkJIHZvaWQgKl9xZGlzY19kZWZh dWx0KQogewotCXN0cnVjdCBRZGlzYyAqcWRpc2NfZGVmYXVsdCA9IF9xZGlzY19kZWZhdWx0Owot CXN0cnVjdCBRZGlzYyAqcWRpc2M7CisJc3RydWN0IFFkaXNjICpxZGlzYyA9IHJ0bmxfZGVyZWZl cmVuY2UoZGV2X3F1ZXVlLT5xZGlzYyk7CiAKLQlxZGlzYyA9IHJ0bmxfZGVyZWZlcmVuY2UoZGV2 X3F1ZXVlLT5xZGlzYyk7CiAJaWYgKHFkaXNjKSB7Ci0JCWJvb2wgbm9sb2NrID0gcWRpc2MtPmZs YWdzICYgVENRX0ZfTk9MT0NLOwotCi0JCWlmIChub2xvY2spCi0JCQlzcGluX2xvY2tfYmgoJnFk aXNjLT5zZXFsb2NrKTsKLQkJc3Bpbl9sb2NrX2JoKHFkaXNjX2xvY2socWRpc2MpKTsKLQogCQlp ZiAoIShxZGlzYy0+ZmxhZ3MgJiBUQ1FfRl9CVUlMVElOKSkKIAkJCXNldF9iaXQoX19RRElTQ19T VEFURV9ERUFDVElWQVRFRCwgJnFkaXNjLT5zdGF0ZSk7CisJfQorfQogCi0JCXJjdV9hc3NpZ25f cG9pbnRlcihkZXZfcXVldWUtPnFkaXNjLCBxZGlzY19kZWZhdWx0KTsKLQkJcWRpc2NfcmVzZXQo cWRpc2MpOworc3RhdGljIHZvaWQgZGV2X3Jlc2V0X3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsCisJCQkgICAgc3RydWN0IG5ldGRldl9xdWV1ZSAqZGV2X3F1ZXVlLAorCQkJICAgIHZvaWQg Kl91bnVzZWQpCit7CisJc3RydWN0IFFkaXNjICpxZGlzYzsKKwlib29sIG5vbG9jazsKIAotCQlz cGluX3VubG9ja19iaChxZGlzY19sb2NrKHFkaXNjKSk7Ci0JCWlmIChub2xvY2spCi0JCQlzcGlu X3VubG9ja19iaCgmcWRpc2MtPnNlcWxvY2spOwotCX0KKwlxZGlzYyA9IGRldl9xdWV1ZS0+cWRp c2Nfc2xlZXBpbmc7CisJaWYgKCFxZGlzYykKKwkJcmV0dXJuOworCisJbm9sb2NrID0gcWRpc2Mt PmZsYWdzICYgVENRX0ZfTk9MT0NLOworCisJaWYgKG5vbG9jaykKKwkJc3Bpbl9sb2NrX2JoKCZx ZGlzYy0+c2VxbG9jayk7CisJc3Bpbl9sb2NrX2JoKHFkaXNjX2xvY2socWRpc2MpKTsKKworCXFk aXNjX3Jlc2V0KHFkaXNjKTsKKworCXNwaW5fdW5sb2NrX2JoKHFkaXNjX2xvY2socWRpc2MpKTsK KwlpZiAobm9sb2NrKQorCQlzcGluX3VubG9ja19iaCgmcWRpc2MtPnNlcWxvY2spOwogfQogCiBz dGF0aWMgYm9vbCBzb21lX3FkaXNjX2lzX2J1c3koc3RydWN0IG5ldF9kZXZpY2UgKmRldikKQEAg LTEyMDcsMTIgKzEyMTYsMjAgQEAgdm9pZCBkZXZfZGVhY3RpdmF0ZV9tYW55KHN0cnVjdCBsaXN0 X2hlYWQgKmhlYWQpCiAJCWRldl93YXRjaGRvZ19kb3duKGRldik7CiAJfQogCi0JLyogV2FpdCBm b3Igb3V0c3RhbmRpbmcgcWRpc2MtbGVzcyBkZXZfcXVldWVfeG1pdCBjYWxscy4KKwkvKiBXYWl0 IGZvciBvdXRzdGFuZGluZyBxZGlzYy1sZXNzIGRldl9xdWV1ZV94bWl0IGNhbGxzIG9yCisJICog b3V0c3RhbmRpbmcgcWRpc2MgZW5xdWV1aW5nIGNhbGxzLgogCSAqIFRoaXMgaXMgYXZvaWRlZCBp ZiBhbGwgZGV2aWNlcyBhcmUgaW4gZGlzbWFudGxlIHBoYXNlIDoKIAkgKiBDYWxsZXIgd2lsbCBj YWxsIHN5bmNocm9uaXplX25ldCgpIGZvciB1cwogCSAqLwogCXN5bmNocm9uaXplX25ldCgpOwog CisJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXYsIGhlYWQsIGNsb3NlX2xpc3QpIHsKKwkJbmV0ZGV2 X2Zvcl9lYWNoX3R4X3F1ZXVlKGRldiwgZGV2X3Jlc2V0X3F1ZXVlLCBOVUxMKTsKKworCQlpZiAo ZGV2X2luZ3Jlc3NfcXVldWUoZGV2KSkKKwkJCWRldl9yZXNldF9xdWV1ZShkZXYsIGRldl9pbmdy ZXNzX3F1ZXVlKGRldiksIE5VTEwpOworCX0KKwogCS8qIFdhaXQgZm9yIG91dHN0YW5kaW5nIHFk aXNjX3J1biBjYWxscy4gKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgaGVhZCwgY2xvc2Vf bGlzdCkgewogCQl3aGlsZSAoc29tZV9xZGlzY19pc19idXN5KGRldikpCi0tIAoyLjI2LjIKCgpG cm9tIDcyZjJmNjFlYWNkMWI4NDFlODAwYmNmNDE5NWY5ZmUxZWQzZWEwN2IgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEhlbnJ5IFB0YXNpbnNraSA8aHB0YXNpbnNraUBnb29nbGUuY29t PgpEYXRlOiBTYXQsIDE5IFNlcCAyMDIwIDAwOjEyOjExICswMDAwClN1YmplY3Q6IFtQQVRDSCAx OS8zNl0gbmV0OiBzY3RwOiBGaXggSVB2NiBhbmNlc3Rvcl9zaXplIGNhbGMgaW4KIHNjdHBfY29w eV9kZXNjZW5kYW50CgpbIFVwc3RyZWFtIGNvbW1pdCBmZTgxZDlmNjE4MmQxMTYwZTYyNTg5NGVl Y2IzZDdmZjAyMjJjYWM1IF0KCldoZW4gY2FsY3VsYXRpbmcgYW5jZXN0b3Jfc2l6ZSB3aXRoIElQ djYgZW5hYmxlZCwgc2ltcGx5IHVzaW5nCnNpemVvZihzdHJ1Y3QgaXB2Nl9waW5mbykgZG9lc24n dCBhY2NvdW50IGZvciBleHRyYSBieXRlcyBuZWVkZWQgZm9yCmFsaWdubWVudCBpbiB0aGUgc3Ry dWN0IHNjdHA2X3NvY2suIE9uIHg4NiwgdGhlcmUgYXJlbid0IGFueSBleHRyYQpieXRlcywgYnV0 IG9uIEFSTSB0aGUgaXB2Nl9waW5mbyBzdHJ1Y3R1cmUgaXMgYWxpZ25lZCBvbiBhbiA4LWJ5dGUK Ym91bmRhcnkgc28gdGhlcmUgd2VyZSA0IHBhZCBieXRlcyB0aGF0IHdlcmUgb21pdHRlZCBmcm9t IHRoZQphbmNlc3Rvcl9zaXplIGNhbGN1bGF0aW9uLiAgVGhpcyB3b3VsZCBsZWFkIHRvIGNvcnJ1 cHRpb24gb2YgdGhlCnBkX2xvYmJ5IHBvaW50ZXJzLCBjYXVzaW5nIGFuIG9vcHMgd2hlbiB0cnlp bmcgdG8gZnJlZSB0aGUgc2N0cApzdHJ1Y3R1cmUgb24gc29ja2V0IGNsb3NlLgoKRml4ZXM6IDYz NmQyNWQ1NTdkMSAoInNjdHA6IG5vdCBjb3B5IHNjdHBfc29jayBwZF9sb2JieSBpbiBzY3RwX2Nv cHlfZGVzY2VuZGFudCIpClNpZ25lZC1vZmYtYnk6IEhlbnJ5IFB0YXNpbnNraSA8aHB0YXNpbnNr aUBnb29nbGUuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8u bGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaCB8IDggKysrKyst LS0KIG5ldC9zY3RwL3NvY2tldC5jICAgICAgICAgIHwgOSArKystLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgOCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbmV0L3NjdHAvc3RydWN0cy5oIGIvaW5jbHVkZS9uZXQvc2N0cC9zdHJ1Y3RzLmgKaW5kZXgg MmI2ZjNmMTNkNWJjLi4zZThmODdhM2M1MmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjdHAv c3RydWN0cy5oCisrKyBiL2luY2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5oCkBAIC0yMjQsMTIgKzIy NCwxNCBAQCBzdHJ1Y3Qgc2N0cF9zb2NrIHsKIAkJZGF0YV9yZWFkeV9zaWduYWxsZWQ6MTsKIAog CWF0b21pY190IHBkX21vZGU7CisKKwkvKiBGaWVsZHMgYWZ0ZXIgdGhpcyBwb2ludCB3aWxsIGJl IHNraXBwZWQgb24gY29waWVzLCBsaWtlIG9uIGFjY2VwdAorCSAqIGFuZCBwZWVsb2ZmIG9wZXJh dGlvbnMKKwkgKi8KKwogCS8qIFJlY2VpdmUgdG8gaGVyZSB3aGlsZSBwYXJ0aWFsIGRlbGl2ZXJ5 IGlzIGluIGVmZmVjdC4gKi8KIAlzdHJ1Y3Qgc2tfYnVmZl9oZWFkIHBkX2xvYmJ5OwogCi0JLyog VGhlc2UgbXVzdCBiZSB0aGUgbGFzdCBmaWVsZHMsIGFzIHRoZXkgd2lsbCBza2lwcGVkIG9uIGNv cGllcywKLQkgKiBsaWtlIG9uIGFjY2VwdCBhbmQgcGVlbG9mZiBvcGVyYXRpb25zCi0JICovCiAJ c3RydWN0IGxpc3RfaGVhZCBhdXRvX2FzY29uZl9saXN0OwogCWludCBkb19hdXRvX2FzY29uZjsK IH07CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmlu ZGV4IDNhMTEyMTJiYjRjMC4uMWZjYzEzZjYwNzNlIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zb2Nr ZXQuYworKysgYi9uZXQvc2N0cC9zb2NrZXQuYwpAQCAtOTMzNywxMyArOTMzNywxMCBAQCB2b2lk IHNjdHBfY29weV9zb2NrKHN0cnVjdCBzb2NrICpuZXdzaywgc3RydWN0IHNvY2sgKnNrLAogc3Rh dGljIGlubGluZSB2b2lkIHNjdHBfY29weV9kZXNjZW5kYW50KHN0cnVjdCBzb2NrICpza190bywK IAkJCQkJY29uc3Qgc3RydWN0IHNvY2sgKnNrX2Zyb20pCiB7Ci0JaW50IGFuY2VzdG9yX3NpemUg PSBzaXplb2Yoc3RydWN0IGluZXRfc29jaykgKwotCQkJICAgIHNpemVvZihzdHJ1Y3Qgc2N0cF9z b2NrKSAtCi0JCQkgICAgb2Zmc2V0b2Yoc3RydWN0IHNjdHBfc29jaywgcGRfbG9iYnkpOwotCi0J aWYgKHNrX2Zyb20tPnNrX2ZhbWlseSA9PSBQRl9JTkVUNikKLQkJYW5jZXN0b3Jfc2l6ZSArPSBz aXplb2Yoc3RydWN0IGlwdjZfcGluZm8pOworCXNpemVfdCBhbmNlc3Rvcl9zaXplID0gc2l6ZW9m KHN0cnVjdCBpbmV0X3NvY2spOwogCisJYW5jZXN0b3Jfc2l6ZSArPSBza19mcm9tLT5za19wcm90 LT5vYmpfc2l6ZTsKKwlhbmNlc3Rvcl9zaXplIC09IG9mZnNldG9mKHN0cnVjdCBzY3RwX3NvY2ss IHBkX2xvYmJ5KTsKIAlfX2luZXRfc2tfY29weV9kZXNjZW5kYW50KHNrX3RvLCBza19mcm9tLCBh bmNlc3Rvcl9zaXplKTsKIH0KIAotLSAKMi4yNi4yCgoKRnJvbSBiNTk3MjAwYjU1NzQ2ZGRiZTU5 YmNlNmFkNmRiM2UzMGQ4MDUzMTc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1 YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBUaHUsIDE3IFNlcCAyMDIwIDEwOjUy OjU3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMC8zNl0gbmZwOiB1c2UgY29ycmVjdCBkZWZpbmUg dG8gcmV0dXJuIE5PTkUgZmVjCgpbIFVwc3RyZWFtIGNvbW1pdCA1ZjY4NTdlODA4YThiZDA3ODI5 NjU3NWI0MTdjNGI5ZDE2MGI5Nzc5IF0KCnN0cnVjdCBldGh0b29sX2ZlY3BhcmFtIGNhcnJpZXMg Yml0bWFza3Mgbm90IGJpdCBudW1iZXJzLgpXZSB3YW50IHRvIHJldHVybiAxIChOT05FKSwgbm90 IDAuCgpGaXhlczogMGQwODcwOTM4MzM3ICgibmZwOiBpbXBsZW1lbnQgZXRodG9vbCBGRUMgbW9k ZSBzZXR0aW5ncyIpClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5v cmc+ClJldmlld2VkLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBuZXRyb25vbWUuY29t PgpSZXZpZXdlZC1ieTogSmVzc2UgQnJhbmRlYnVyZyA8amVzc2UuYnJhbmRlYnVyZ0BpbnRlbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9uZXRfZXRodG9vbC5j IHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZwX25l dF9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9uZXRf ZXRodG9vbC5jCmluZGV4IDFiODQwZWU0NzMzOS4uMTdiOTFlZDM5MzY5IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9uZXRfZXRodG9vbC5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZwX25ldF9ldGh0b29sLmMKQEAg LTczMSw4ICs3MzEsOCBAQCBuZnBfcG9ydF9nZXRfZmVjcGFyYW0oc3RydWN0IG5ldF9kZXZpY2Ug Km5ldGRldiwKIAlzdHJ1Y3QgbmZwX2V0aF90YWJsZV9wb3J0ICpldGhfcG9ydDsKIAlzdHJ1Y3Qg bmZwX3BvcnQgKnBvcnQ7CiAKLQlwYXJhbS0+YWN0aXZlX2ZlYyA9IEVUSFRPT0xfRkVDX05PTkVf QklUOwotCXBhcmFtLT5mZWMgPSBFVEhUT09MX0ZFQ19OT05FX0JJVDsKKwlwYXJhbS0+YWN0aXZl X2ZlYyA9IEVUSFRPT0xfRkVDX05PTkU7CisJcGFyYW0tPmZlYyA9IEVUSFRPT0xfRkVDX05PTkU7 CiAKIAlwb3J0ID0gbmZwX3BvcnRfZnJvbV9uZXRkZXYobmV0ZGV2KTsKIAlldGhfcG9ydCA9IG5m cF9wb3J0X2dldF9ldGhfcG9ydChwb3J0KTsKLS0gCjIuMjYuMgoKCkZyb20gODYzNDFhZGI5NmZh MDgzMDNkZmNiMzNiZGI4OGY5YWYwYzJmYTU2NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogVmluaWNpdXMgQ29zdGEgR29tZXMgPHZpbmljaXVzLmdvbWVzQGludGVsLmNvbT4KRGF0ZTog V2VkLCA5IFNlcCAyMDIwIDE3OjAzOjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMS8zNl0gdGFw cmlvOiBGaXggYWxsb3dpbmcgdG9vIHNtYWxsIGludGVydmFscwoKWyBVcHN0cmVhbSBjb21taXQg YjViNzNiMjZiM2NhMzQ1NzQxMjRlZDdhZTljNWJhODM5MWE3ZjE3NiBdCgpJdCdzIHBvc3NpYmxl IHRoYXQgdGhlIHVzZXIgc3BlY2lmaWVzIGFuIGludGVydmFsIHRoYXQgY291bGRuJ3QgYWxsb3cK YW55IHBhY2tldCB0byBiZSB0cmFuc21pdHRlZC4gVGhpcyBhbHNvIGF2b2lkcyB0aGUgaXNzdWUg b2YgdGhlCmhydGltZXIgaGFuZGxlciBzdGFydmluZyB0aGUgb3RoZXIgdGhyZWFkcyBiZWNhdXNl IGl0J3MgcnVubmluZyB0b28Kb2Z0ZW4uCgpUaGUgc29sdXRpb24gaXMgdG8gcmVqZWN0IGludGVy dmFsIHNpemVzIHRoYXQgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50Cmxpbmsgc3BlZWQgd291bGRu J3QgYWxsb3cgYW55IHBhY2tldCB0byBiZSB0cmFuc21pdHRlZC4KClJlcG9ydGVkLWJ5OiBzeXpi b3QrODI2NzI0MTYwOWFlOGMyM2IyNDhAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpGaXhlczog NWE3ODFjY2JkMTllICgidGM6IEFkZCBzdXBwb3J0IGZvciBjb25maWd1cmluZyB0aGUgdGFwcmlv IHNjaGVkdWxlciIpClNpZ25lZC1vZmYtYnk6IFZpbmljaXVzIENvc3RhIEdvbWVzIDx2aW5pY2l1 cy5nb21lc0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX3RhcHJpby5jIHwgMjggKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfdGFwcmlvLmMgYi9uZXQv c2NoZWQvc2NoX3RhcHJpby5jCmluZGV4IDZhNTA4NmU1ODZlZi4uMmI3OTdhNzFlOWJkIDEwMDY0 NAotLS0gYS9uZXQvc2NoZWQvc2NoX3RhcHJpby5jCisrKyBiL25ldC9zY2hlZC9zY2hfdGFwcmlv LmMKQEAgLTc3Nyw5ICs3NzcsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IHRh cHJpb19wb2xpY3lbVENBX1RBUFJJT19BVFRSX01BWCArIDFdID0gewogCVtUQ0FfVEFQUklPX0FU VFJfVFhUSU1FX0RFTEFZXQkJICAgICA9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCiB9OwogCi1zdGF0 aWMgaW50IGZpbGxfc2NoZWRfZW50cnkoc3RydWN0IG5sYXR0ciAqKnRiLCBzdHJ1Y3Qgc2NoZWRf ZW50cnkgKmVudHJ5LAorc3RhdGljIGludCBmaWxsX3NjaGVkX2VudHJ5KHN0cnVjdCB0YXByaW9f c2NoZWQgKnEsIHN0cnVjdCBubGF0dHIgKip0YiwKKwkJCSAgICBzdHJ1Y3Qgc2NoZWRfZW50cnkg KmVudHJ5LAogCQkJICAgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKIHsKKwlpbnQg bWluX2R1cmF0aW9uID0gbGVuZ3RoX3RvX2R1cmF0aW9uKHEsIEVUSF9aTEVOKTsKIAl1MzIgaW50 ZXJ2YWwgPSAwOwogCiAJaWYgKHRiW1RDQV9UQVBSSU9fU0NIRURfRU5UUllfQ01EXSkKQEAgLTc5 NCw3ICs3OTYsMTAgQEAgc3RhdGljIGludCBmaWxsX3NjaGVkX2VudHJ5KHN0cnVjdCBubGF0dHIg Kip0Yiwgc3RydWN0IHNjaGVkX2VudHJ5ICplbnRyeSwKIAkJaW50ZXJ2YWwgPSBubGFfZ2V0X3Uz MigKIAkJCXRiW1RDQV9UQVBSSU9fU0NIRURfRU5UUllfSU5URVJWQUxdKTsKIAotCWlmIChpbnRl cnZhbCA9PSAwKSB7CisJLyogVGhlIGludGVydmFsIHNob3VsZCBhbGxvdyBhdCBsZWFzdCB0aGUg bWluaW11bSBldGhlcm5ldAorCSAqIGZyYW1lIHRvIGdvIG91dC4KKwkgKi8KKwlpZiAoaW50ZXJ2 YWwgPCBtaW5fZHVyYXRpb24pIHsKIAkJTkxfU0VUX0VSUl9NU0coZXh0YWNrLCAiSW52YWxpZCBp bnRlcnZhbCBmb3Igc2NoZWR1bGUgZW50cnkiKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAt ODA0LDggKzgwOSw5IEBAIHN0YXRpYyBpbnQgZmlsbF9zY2hlZF9lbnRyeShzdHJ1Y3QgbmxhdHRy ICoqdGIsIHN0cnVjdCBzY2hlZF9lbnRyeSAqZW50cnksCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRp YyBpbnQgcGFyc2Vfc2NoZWRfZW50cnkoc3RydWN0IG5sYXR0ciAqbiwgc3RydWN0IHNjaGVkX2Vu dHJ5ICplbnRyeSwKLQkJCSAgICAgaW50IGluZGV4LCBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpl eHRhY2spCitzdGF0aWMgaW50IHBhcnNlX3NjaGVkX2VudHJ5KHN0cnVjdCB0YXByaW9fc2NoZWQg KnEsIHN0cnVjdCBubGF0dHIgKm4sCisJCQkgICAgIHN0cnVjdCBzY2hlZF9lbnRyeSAqZW50cnks IGludCBpbmRleCwKKwkJCSAgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQogewog CXN0cnVjdCBubGF0dHIgKnRiW1RDQV9UQVBSSU9fU0NIRURfRU5UUllfTUFYICsgMV0gPSB7IH07 CiAJaW50IGVycjsKQEAgLTgxOSwxMCArODI1LDEwIEBAIHN0YXRpYyBpbnQgcGFyc2Vfc2NoZWRf ZW50cnkoc3RydWN0IG5sYXR0ciAqbiwgc3RydWN0IHNjaGVkX2VudHJ5ICplbnRyeSwKIAogCWVu dHJ5LT5pbmRleCA9IGluZGV4OwogCi0JcmV0dXJuIGZpbGxfc2NoZWRfZW50cnkodGIsIGVudHJ5 LCBleHRhY2spOworCXJldHVybiBmaWxsX3NjaGVkX2VudHJ5KHEsIHRiLCBlbnRyeSwgZXh0YWNr KTsKIH0KIAotc3RhdGljIGludCBwYXJzZV9zY2hlZF9saXN0KHN0cnVjdCBubGF0dHIgKmxpc3Qs CitzdGF0aWMgaW50IHBhcnNlX3NjaGVkX2xpc3Qoc3RydWN0IHRhcHJpb19zY2hlZCAqcSwgc3Ry dWN0IG5sYXR0ciAqbGlzdCwKIAkJCSAgICBzdHJ1Y3Qgc2NoZWRfZ2F0ZV9saXN0ICpzY2hlZCwK IAkJCSAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCiB7CkBAIC04NDcsNyArODUz LDcgQEAgc3RhdGljIGludCBwYXJzZV9zY2hlZF9saXN0KHN0cnVjdCBubGF0dHIgKmxpc3QsCiAJ CQlyZXR1cm4gLUVOT01FTTsKIAkJfQogCi0JCWVyciA9IHBhcnNlX3NjaGVkX2VudHJ5KG4sIGVu dHJ5LCBpLCBleHRhY2spOworCQllcnIgPSBwYXJzZV9zY2hlZF9lbnRyeShxLCBuLCBlbnRyeSwg aSwgZXh0YWNrKTsKIAkJaWYgKGVyciA8IDApIHsKIAkJCWtmcmVlKGVudHJ5KTsKIAkJCXJldHVy biBlcnI7CkBAIC04NjIsNyArODY4LDcgQEAgc3RhdGljIGludCBwYXJzZV9zY2hlZF9saXN0KHN0 cnVjdCBubGF0dHIgKmxpc3QsCiAJcmV0dXJuIGk7CiB9CiAKLXN0YXRpYyBpbnQgcGFyc2VfdGFw cmlvX3NjaGVkdWxlKHN0cnVjdCBubGF0dHIgKip0YiwKK3N0YXRpYyBpbnQgcGFyc2VfdGFwcmlv X3NjaGVkdWxlKHN0cnVjdCB0YXByaW9fc2NoZWQgKnEsIHN0cnVjdCBubGF0dHIgKip0YiwKIAkJ CQkgc3RydWN0IHNjaGVkX2dhdGVfbGlzdCAqbmV3LAogCQkJCSBzdHJ1Y3QgbmV0bGlua19leHRf YWNrICpleHRhY2spCiB7CkBAIC04ODMsOCArODg5LDggQEAgc3RhdGljIGludCBwYXJzZV90YXBy aW9fc2NoZWR1bGUoc3RydWN0IG5sYXR0ciAqKnRiLAogCQluZXctPmN5Y2xlX3RpbWUgPSBubGFf Z2V0X3M2NCh0YltUQ0FfVEFQUklPX0FUVFJfU0NIRURfQ1lDTEVfVElNRV0pOwogCiAJaWYgKHRi W1RDQV9UQVBSSU9fQVRUUl9TQ0hFRF9FTlRSWV9MSVNUXSkKLQkJZXJyID0gcGFyc2Vfc2NoZWRf bGlzdCgKLQkJCXRiW1RDQV9UQVBSSU9fQVRUUl9TQ0hFRF9FTlRSWV9MSVNUXSwgbmV3LCBleHRh Y2spOworCQllcnIgPSBwYXJzZV9zY2hlZF9saXN0KHEsIHRiW1RDQV9UQVBSSU9fQVRUUl9TQ0hF RF9FTlRSWV9MSVNUXSwKKwkJCQkgICAgICAgbmV3LCBleHRhY2spOwogCWlmIChlcnIgPCAwKQog CQlyZXR1cm4gZXJyOwogCkBAIC0xNDc0LDcgKzE0ODAsNyBAQCBzdGF0aWMgaW50IHRhcHJpb19j aGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCwKIAkJZ290byBmcmVl X3NjaGVkOwogCX0KIAotCWVyciA9IHBhcnNlX3RhcHJpb19zY2hlZHVsZSh0YiwgbmV3X2FkbWlu LCBleHRhY2spOworCWVyciA9IHBhcnNlX3RhcHJpb19zY2hlZHVsZShxLCB0YiwgbmV3X2FkbWlu LCBleHRhY2spOwogCWlmIChlcnIgPCAwKQogCQlnb3RvIGZyZWVfc2NoZWQ7CiAKLS0gCjIuMjYu MgoKCkZyb20gNTcyOWE5MzY3MzRkMzZlZjMxMDVhZThjNGI3YzAzODFhNmI2MTIxZiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGVpbGluIFllIDx5ZXBlaWxpbi5jc0BnbWFpbC5jb20+ CkRhdGU6IFN1biwgMTMgU2VwIDIwMjAgMDQ6MDY6MDUgLTA0MDAKU3ViamVjdDogW1BBVENIIDIy LzM2XSB0aXBjOiBGaXggbWVtb3J5IGxlYWsgaW4gdGlwY19ncm91cF9jcmVhdGVfbWVtYmVyKCkK ClsgVXBzdHJlYW0gY29tbWl0IGJiM2E0MjBkNDdhYjAwZDdlMWU1MDgzMjg2Y2FiMTUyMzVhOTY2 ODAgXQoKdGlwY19ncm91cF9hZGRfdG9fdHJlZSgpIHJldHVybnMgc2lsZW50bHkgaWYgYGtleWAg bWF0Y2hlcyBgbmtleWAgb2YgYW4KZXhpc3Rpbmcgbm9kZSwgY2F1c2luZyB0aXBjX2dyb3VwX2Ny ZWF0ZV9tZW1iZXIoKSB0byBsZWFrIG1lbW9yeS4gTGV0CnRpcGNfZ3JvdXBfYWRkX3RvX3RyZWUo KSByZXR1cm4gYW4gZXJyb3IgaW4gc3VjaCBhIGNhc2UsIHNvIHRoYXQKdGlwY19ncm91cF9jcmVh dGVfbWVtYmVyKCkgY2FuIGhhbmRsZSBpdCBwcm9wZXJseS4KCkZpeGVzOiA3NWRhMjE2M2RiYjYg KCJ0aXBjOiBpbnRyb2R1Y2UgY29tbXVuaWNhdGlvbiBncm91cHMiKQpSZXBvcnRlZC1hbmQtdGVz dGVkLWJ5OiBzeXpib3QrZjk1ZDkwYzQ1NDg2NGIzYjViYzlAc3l6a2FsbGVyLmFwcHNwb3RtYWls LmNvbQpDYzogSGlsbGYgRGFudG9uIDxoZGFudG9uQHNpbmEuY29tPgpMaW5rOiBodHRwczovL3N5 emthbGxlci5hcHBzcG90LmNvbS9idWc/aWQ9MDQ4MzkwNjA0ZmUxYjYwZGYzNDE1MDI2NTQ3OTIw MmYxMGUxM2FmZgpTaWduZWQtb2ZmLWJ5OiBQZWlsaW4gWWUgPHllcGVpbGluLmNzQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC90aXBjL2dyb3VwLmMgfCAxNCArKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDEwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMv Z3JvdXAuYyBiL25ldC90aXBjL2dyb3VwLmMKaW5kZXggODkyNTdlMmE5ODBkLi5mNTM4NzFiYWE0 MmUgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL2dyb3VwLmMKKysrIGIvbmV0L3RpcGMvZ3JvdXAuYwpA QCAtMjczLDggKzI3Myw4IEBAIHN0YXRpYyBzdHJ1Y3QgdGlwY19tZW1iZXIgKnRpcGNfZ3JvdXBf ZmluZF9ub2RlKHN0cnVjdCB0aXBjX2dyb3VwICpncnAsCiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0 YXRpYyB2b2lkIHRpcGNfZ3JvdXBfYWRkX3RvX3RyZWUoc3RydWN0IHRpcGNfZ3JvdXAgKmdycCwK LQkJCQkgICBzdHJ1Y3QgdGlwY19tZW1iZXIgKm0pCitzdGF0aWMgaW50IHRpcGNfZ3JvdXBfYWRk X3RvX3RyZWUoc3RydWN0IHRpcGNfZ3JvdXAgKmdycCwKKwkJCQkgIHN0cnVjdCB0aXBjX21lbWJl ciAqbSkKIHsKIAl1NjQgbmtleSwga2V5ID0gKHU2NCltLT5ub2RlIDw8IDMyIHwgbS0+cG9ydDsK IAlzdHJ1Y3QgcmJfbm9kZSAqKm4sICpwYXJlbnQgPSBOVUxMOwpAQCAtMjkxLDEwICsyOTEsMTEg QEAgc3RhdGljIHZvaWQgdGlwY19ncm91cF9hZGRfdG9fdHJlZShzdHJ1Y3QgdGlwY19ncm91cCAq Z3JwLAogCQllbHNlIGlmIChrZXkgPiBua2V5KQogCQkJbiA9ICYoKm4pLT5yYl9yaWdodDsKIAkJ ZWxzZQotCQkJcmV0dXJuOworCQkJcmV0dXJuIC1FRVhJU1Q7CiAJfQogCXJiX2xpbmtfbm9kZSgm bS0+dHJlZV9ub2RlLCBwYXJlbnQsIG4pOwogCXJiX2luc2VydF9jb2xvcigmbS0+dHJlZV9ub2Rl LCAmZ3JwLT5tZW1iZXJzKTsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHN0cnVjdCB0aXBjX21l bWJlciAqdGlwY19ncm91cF9jcmVhdGVfbWVtYmVyKHN0cnVjdCB0aXBjX2dyb3VwICpncnAsCkBA IC0zMDIsNiArMzAzLDcgQEAgc3RhdGljIHN0cnVjdCB0aXBjX21lbWJlciAqdGlwY19ncm91cF9j cmVhdGVfbWVtYmVyKHN0cnVjdCB0aXBjX2dyb3VwICpncnAsCiAJCQkJCQkgICAgdTMyIGluc3Rh bmNlLCBpbnQgc3RhdGUpCiB7CiAJc3RydWN0IHRpcGNfbWVtYmVyICptOworCWludCByZXQ7CiAK IAltID0ga3phbGxvYyhzaXplb2YoKm0pLCBHRlBfQVRPTUlDKTsKIAlpZiAoIW0pCkBAIC0zMTQs OCArMzE2LDEyIEBAIHN0YXRpYyBzdHJ1Y3QgdGlwY19tZW1iZXIgKnRpcGNfZ3JvdXBfY3JlYXRl X21lbWJlcihzdHJ1Y3QgdGlwY19ncm91cCAqZ3JwLAogCW0tPnBvcnQgPSBwb3J0OwogCW0tPmlu c3RhbmNlID0gaW5zdGFuY2U7CiAJbS0+YmNfYWNrZWQgPSBncnAtPmJjX3NuZF9ueHQgLSAxOwor CXJldCA9IHRpcGNfZ3JvdXBfYWRkX3RvX3RyZWUoZ3JwLCBtKTsKKwlpZiAocmV0IDwgMCkgewor CQlrZnJlZShtKTsKKwkJcmV0dXJuIE5VTEw7CisJfQogCWdycC0+bWVtYmVyX2NudCsrOwotCXRp cGNfZ3JvdXBfYWRkX3RvX3RyZWUoZ3JwLCBtKTsKIAl0aXBjX25saXN0X2FkZCgmZ3JwLT5kZXN0 cywgbS0+bm9kZSk7CiAJbS0+c3RhdGUgPSBzdGF0ZTsKIAlyZXR1cm4gbTsKLS0gCjIuMjYuMgoK CkZyb20gZmI1M2VkYzhmNDMzYWRmMmE1NTg4OWUzODUxZGRiYTQ3MzFkYTBlNiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogVGV0c3VvIEhhbmRhIDxwZW5ndWluLWtlcm5lbEBJLWxvdmUu U0FLVVJBLm5lLmpwPgpEYXRlOiBTYXQsIDUgU2VwIDIwMjAgMTU6MTQ6NDcgKzA5MDAKU3ViamVj dDogW1BBVENIIDIzLzM2XSB0aXBjOiBmaXggc2h1dGRvd24oKSBvZiBjb25uZWN0aW9uIG9yaWVu dGVkIHNvY2tldAoKWyBVcHN0cmVhbSBjb21taXQgYTRiNWNjOWUxMDgwM2VjYmE2NGE3ZDU0YzBm NDdlNDU2NGI0YTk4MCBdCgpJIGNvbmZpcm1lZCB0aGF0IHRoZSBwcm9ibGVtIGZpeGVkIGJ5IGNv bW1pdCAyYTYzODY2YzhiNTFhM2Y3ICgidGlwYzogZml4CnNodXRkb3duKCkgb2YgY29ubmVjdGlv bmxlc3Mgc29ja2V0IikgYWxzbyBhcHBsaWVzIHRvIHN0cmVhbSBzb2NrZXQuCgotLS0tLS0tLS0t CiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHN5 cy93YWl0Lmg+CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQp7CiAgICAgICAgaW50 IGZkc1syXSA9IHsgLTEsIC0xIH07CiAgICAgICAgc29ja2V0cGFpcihQRl9USVBDLCBTT0NLX1NU UkVBTSAvKiBvciBTT0NLX0RHUkFNICovLCAwLCBmZHMpOwogICAgICAgIGlmIChmb3JrKCkgPT0g MCkKICAgICAgICAgICAgICAgIF9leGl0KHJlYWQoZmRzWzBdLCBOVUxMLCAxKSk7CiAgICAgICAg c2h1dGRvd24oZmRzWzBdLCBTSFVUX1JEV1IpOyAvKiBUaGlzIG11c3QgbWFrZSByZWFkKCkgcmV0 dXJuLiAqLwogICAgICAgIHdhaXQoTlVMTCk7IC8qIFRvIGJlIHdva2VuIHVwIGJ5IF9leGl0KCku ICovCiAgICAgICAgcmV0dXJuIDA7Cn0KLS0tLS0tLS0tLQoKU2luY2Ugc2h1dGRvd24oU0hVVF9S RFdSKSBzaG91bGQgYWZmZWN0IGFsbCBwcm9jZXNzZXMgc2hhcmluZyB0aGF0IHNvY2tldCwKdW5j b25kaXRpb25hbGx5IHNldHRpbmcgc2stPnNrX3NodXRkb3duIHRvIFNIVVRET1dOX01BU0sgd2ls bCBiZSB0aGUgcmlnaHQKYmVoYXZpb3IuCgpTaWduZWQtb2ZmLWJ5OiBUZXRzdW8gSGFuZGEgPHBl bmd1aW4ta2VybmVsQEktbG92ZS5TQUtVUkEubmUuanA+CkFja2VkLWJ5OiBZaW5nIFh1ZSA8eWlu Zy54dWVAd2luZHJpdmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL3NvY2tldC5jIHwgNSArLS0tLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC90aXBjL3NvY2tldC5jIGIvbmV0L3RpcGMvc29ja2V0LmMKaW5kZXggNTMxOGJiNjYxMWFiLi45 NTkxNTVjM2ExNjAgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL3NvY2tldC5jCisrKyBiL25ldC90aXBj L3NvY2tldC5jCkBAIC0yNjE2LDEwICsyNjE2LDcgQEAgc3RhdGljIGludCB0aXBjX3NodXRkb3du KHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBob3cpCiAKIAl0cmFjZV90aXBjX3NrX3NodXRkb3du KHNrLCBOVUxMLCBUSVBDX0RVTVBfQUxMLCAiICIpOwogCV9fdGlwY19zaHV0ZG93bihzb2NrLCBU SVBDX0NPTk5fU0hVVERPV04pOwotCWlmICh0aXBjX3NrX3R5cGVfY29ubmVjdGlvbmxlc3Moc2sp KQotCQlzay0+c2tfc2h1dGRvd24gPSBTSFVURE9XTl9NQVNLOwotCWVsc2UKLQkJc2stPnNrX3No dXRkb3duID0gU0VORF9TSFVURE9XTjsKKwlzay0+c2tfc2h1dGRvd24gPSBTSFVURE9XTl9NQVNL OwogCiAJaWYgKHNrLT5za19zdGF0ZSA9PSBUSVBDX0RJU0NPTk5FQ1RJTkcpIHsKIAkJLyogRGlz Y2FyZCBhbnkgdW5yZWNlaXZlZCBtZXNzYWdlcyAqLwotLSAKMi4yNi4yCgoKRnJvbSBkMTFmZmJm YjQzMjc4YmI2ODhjZjZlZDc4MmFmYWE2YTM3YTk0NzYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTMgU2Vw IDIwMjAgMTk6Mzc6MzEgKzA4MDAKU3ViamVjdDogW1BBVENIIDI0LzM2XSB0aXBjOiB1c2Ugc2ti X3Vuc2hhcmUoKSBpbnN0ZWFkIGluIHRpcGNfYnVmX2FwcGVuZCgpCgpbIFVwc3RyZWFtIGNvbW1p dCBmZjQ4YjYyMjJlNjVlYmRiYTVhNDAzZWYxZGViYTYyMTRlNzQ5MTkzIF0KCkluIHRpcGNfYnVm X2FwcGVuZCgpIGl0IG1heSBjaGFuZ2Ugc2tiJ3MgZnJhZ19saXN0LCBhbmQgaXQgY2F1c2VzCnBy b2JsZW1zIHdoZW4gdGhpcyBza2IgaXMgY2xvbmVkLiBza2JfdW5jbG9uZSgpIGRvZXNuJ3QgcmVh bGx5Cm1ha2UgdGhpcyBza2IncyBmbGFnX2xpc3QgYXZhaWxhYmxlIHRvIGNoYW5nZS4KClNodWFu ZyBMaSBoYXMgcmVwb3J0ZWQgYW4gdXNlLWFmdGVyLWZyZWUgaXNzdWUgYmVjYXVzZSBvZiB0aGlz CndoZW4gY3JlYXRpbmcgcXVpdGUgYSBmZXcgbWFjdmxhbiBkZXYgb3ZlciB0aGUgc2FtZSBkZXYs IHdoZXJlCnRoZSBicm9hZGNhc3QgcGFja2V0cyB3aWxsIGJlIGNsb25lZCBhbmQgZ28gdXAgdG8g dGhlIHN0YWNrOgoKIFsgXSBCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBwc2tiX2V4cGFu ZF9oZWFkKzB4ODZkLzB4ZWEwCiBbIF0gQ2FsbCBUcmFjZToKIFsgXSAgZHVtcF9zdGFjaysweDdj LzB4YjAKIFsgXSAgcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbi5jb25zdHByb3AuNysweDFhLzB4 MjIwCiBbIF0gIGthc2FuX3JlcG9ydC5jb2xkLjEwKzB4MzcvMHg3YwogWyBdICBjaGVja19tZW1v cnlfcmVnaW9uKzB4MTgzLzB4MWUwCiBbIF0gIHBza2JfZXhwYW5kX2hlYWQrMHg4NmQvMHhlYTAK IFsgXSAgcHJvY2Vzc19iYWNrbG9nKzB4MWRmLzB4NjYwCiBbIF0gIG5ldF9yeF9hY3Rpb24rMHgz YjQvMHhjOTAKIFsgXQogWyBdIEFsbG9jYXRlZCBieSB0YXNrIDE3ODY6CiBbIF0gIGttZW1fY2Fj aGVfYWxsb2MrMHhiZi8weDIyMAogWyBdICBza2JfY2xvbmUrMHgxMGEvMHgzMDAKIFsgXSAgbWFj dmxhbl9icm9hZGNhc3QrMHgyZjYvMHg1OTAgW21hY3ZsYW5dCiBbIF0gIG1hY3ZsYW5fcHJvY2Vz c19icm9hZGNhc3QrMHgzN2MvMHg1MTYgW21hY3ZsYW5dCiBbIF0gIHByb2Nlc3Nfb25lX3dvcmsr MHg2NmEvMHgxMDYwCiBbIF0gIHdvcmtlcl90aHJlYWQrMHg4Ny8weGIxMAogWyBdCiBbIF0gRnJl ZWQgYnkgdGFzayAzMjUzOgogWyBdICBrbWVtX2NhY2hlX2ZyZWUrMHg4Mi8weDJhMAogWyBdICBz a2JfcmVsZWFzZV9kYXRhKzB4MmMzLzB4NmUwCiBbIF0gIGtmcmVlX3NrYisweDc4LzB4MWQwCiBb IF0gIHRpcGNfcmVjdm1zZysweDNiZS8weGE0MCBbdGlwY10KClNvIGZpeCBpdCBieSB1c2luZyBz a2JfdW5zaGFyZSgpIGluc3RlYWQsIHdoaWNoIHdvdWxkIGNyZWF0ZSBhIG5ldwpza2IgZm9yIHRo ZSBjbG9uZWQgZnJhZyBhbmQgaXQnbGwgYmUgc2FmZSB0byBjaGFuZ2UgaXRzIGZyYWdfbGlzdC4K VGhlIHNpbWlsYXIgdGhpbmdzIHdlcmUgYWxzbyBkb25lIGluIHNjdHBfbWFrZV9yZWFzc2VtYmxl ZF9ldmVudCgpLAp3aGljaCBpcyB1c2luZyBza2JfY29weSgpLgoKUmVwb3J0ZWQtYnk6IFNodWFu ZyBMaSA8c2h1YWxpQHJlZGhhdC5jb20+CkZpeGVzOiAzN2UyMjE2NGE4YTMgKCJ0aXBjOiByZW5h bWUgYW5kIG1vdmUgbWVzc2FnZSByZWFzc2VtYmx5IGZ1bmN0aW9uIikKU2lnbmVkLW9mZi1ieTog WGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvbXNnLmMgfCAzICsrLQog MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL25ldC90aXBjL21zZy5jIGIvbmV0L3RpcGMvbXNnLmMKaW5kZXggOTIyZDI2MmUxNTNmLi5l ZTRiMjI2MWU3OTUgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL21zZy5jCisrKyBiL25ldC90aXBjL21z Zy5jCkBAIC0xNDAsNyArMTQwLDggQEAgaW50IHRpcGNfYnVmX2FwcGVuZChzdHJ1Y3Qgc2tfYnVm ZiAqKmhlYWRidWYsIHN0cnVjdCBza19idWZmICoqYnVmKQogCWlmIChmcmFnaWQgPT0gRklSU1Rf RlJBR01FTlQpIHsKIAkJaWYgKHVubGlrZWx5KGhlYWQpKQogCQkJZ290byBlcnI7Ci0JCWlmICh1 bmxpa2VseShza2JfdW5jbG9uZShmcmFnLCBHRlBfQVRPTUlDKSkpCisJCWZyYWcgPSBza2JfdW5z aGFyZShmcmFnLCBHRlBfQVRPTUlDKTsKKwkJaWYgKHVubGlrZWx5KCFmcmFnKSkKIAkJCWdvdG8g ZXJyOwogCQloZWFkID0gKmhlYWRidWYgPSBmcmFnOwogCQkqYnVmID0gTlVMTDsKLS0gCjIuMjYu MgoKCkZyb20gMzBhMDE1YjZlMDhkNThhNWQyZWRkZjRjMGQ2MjRlNTA1MmFmYTk0MyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFvciBEaWNrbWFuIDxtYW9yZEBtZWxsYW5veC5jb20+ CkRhdGU6IFdlZCwgNSBBdWcgMjAyMCAxNzo1NjowNCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjUv MzZdIG5ldC9tbHg1ZTogRW5hYmxlIGFkZGluZyBwZWVyIG1pc3MgcnVsZXMgb25seSBpZiBtZXJn ZWQKIGVzd2l0Y2ggaXMgc3VwcG9ydGVkCgpbIFVwc3RyZWFtIGNvbW1pdCA2Y2VjMDIyOWFiMTk1 OTI1OWU3MWU5YTViYmU0N2MwNDU3Nzk1MGIxIF0KClRoZSBjaXRlZCBjb21taXQgY3JlYXRlcyBw ZWVyIG1pc3MgZ3JvdXAgZHVyaW5nIHN3aXRjaGRldiBtb2RlCmluaXRpYWxpemF0aW9uIGluIG9y ZGVyIHRvIGhhbmRsZSBtaXNzIHBhY2tldHMgY29ycmVjdGx5IHdoaWxlIGluIFZGCkxBRyBtb2Rl LiBUaGlzIGlzIGRvbmUgcmVnYXJkbGVzcyBvZiBGVyBzdXBwb3J0IG9mIHN1Y2ggZ3JvdXBzIHdo aWNoCmNvdWxkIGNhdXNlIHJ1bGVzIHNldHVwcyBmYWlsdXJlIGxhdGVyIG9uLgoKRml4IGJ5IGFk ZGluZyBGVyBjYXBhYmlsaXR5IGNoZWNrIGJlZm9yZSBjcmVhdGluZyBwZWVyIGdyb3Vwcy9ydWxl LgoKRml4ZXM6IGFjMDA0YjgzMjEyOCAoIm5ldC9tbHg1ZTogRS1Td2l0Y2gsIEFkZCBwZWVyIG1p c3MgcnVsZXMiKQpTaWduZWQtb2ZmLWJ5OiBNYW9yIERpY2ttYW4gPG1hb3JkQG1lbGxhbm94LmNv bT4KUmV2aWV3ZWQtYnk6IFJvaSBEYXlhbiA8cm9pZEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5 OiBSYWVkIFNhbGVtIDxyYWVkc0BtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1h aGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIC4uLi9tZWxsYW5veC9tbHg1L2NvcmUv ZXN3aXRjaF9vZmZsb2Fkcy5jICAgICB8IDUyICsrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9h ZHMuYwppbmRleCA1YWNmZGVhM2E3NWEuLjdjYzgwZGM0ZTZkOCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fk cy5jCkBAIC0xMTQzLDM1ICsxMTQzLDM3IEBAIHN0YXRpYyBpbnQgZXN3X2NyZWF0ZV9vZmZsb2Fk c19mZGJfdGFibGVzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgaW50IG52cG9ydHMpCiAJfQog CWVzdy0+ZmRiX3RhYmxlLm9mZmxvYWRzLnNlbmRfdG9fdnBvcnRfZ3JwID0gZzsKIAotCS8qIGNy ZWF0ZSBwZWVyIGVzdyBtaXNzIGdyb3VwICovCi0JbWVtc2V0KGZsb3dfZ3JvdXBfaW4sIDAsIGlu bGVuKTsKKwlpZiAoTUxYNV9DQVBfRVNXKGVzdy0+ZGV2LCBtZXJnZWRfZXN3aXRjaCkpIHsKKwkJ LyogY3JlYXRlIHBlZXIgZXN3IG1pc3MgZ3JvdXAgKi8KKwkJbWVtc2V0KGZsb3dfZ3JvdXBfaW4s IDAsIGlubGVuKTsKIAotCWVzd19zZXRfZmxvd19ncm91cF9zb3VyY2VfcG9ydChlc3csIGZsb3df Z3JvdXBfaW4pOworCQllc3dfc2V0X2Zsb3dfZ3JvdXBfc291cmNlX3BvcnQoZXN3LCBmbG93X2dy b3VwX2luKTsKIAotCWlmICghbWx4NV9lc3dpdGNoX3Zwb3J0X21hdGNoX21ldGFkYXRhX2VuYWJs ZWQoZXN3KSkgewotCQltYXRjaF9jcml0ZXJpYSA9IE1MWDVfQUREUl9PRihjcmVhdGVfZmxvd19n cm91cF9pbiwKLQkJCQkJICAgICAgZmxvd19ncm91cF9pbiwKLQkJCQkJICAgICAgbWF0Y2hfY3Jp dGVyaWEpOworCQlpZiAoIW1seDVfZXN3aXRjaF92cG9ydF9tYXRjaF9tZXRhZGF0YV9lbmFibGVk KGVzdykpIHsKKwkJCW1hdGNoX2NyaXRlcmlhID0gTUxYNV9BRERSX09GKGNyZWF0ZV9mbG93X2dy b3VwX2luLAorCQkJCQkJICAgICAgZmxvd19ncm91cF9pbiwKKwkJCQkJCSAgICAgIG1hdGNoX2Ny aXRlcmlhKTsKIAotCQlNTFg1X1NFVF9UT19PTkVTKGZ0ZV9tYXRjaF9wYXJhbSwgbWF0Y2hfY3Jp dGVyaWEsCi0JCQkJIG1pc2NfcGFyYW1ldGVycy5zb3VyY2VfZXN3aXRjaF9vd25lcl92aGNhX2lk KTsKKwkJCU1MWDVfU0VUX1RPX09ORVMoZnRlX21hdGNoX3BhcmFtLCBtYXRjaF9jcml0ZXJpYSwK KwkJCQkJIG1pc2NfcGFyYW1ldGVycy5zb3VyY2VfZXN3aXRjaF9vd25lcl92aGNhX2lkKTsKIAot CQlNTFg1X1NFVChjcmVhdGVfZmxvd19ncm91cF9pbiwgZmxvd19ncm91cF9pbiwKLQkJCSBzb3Vy Y2VfZXN3aXRjaF9vd25lcl92aGNhX2lkX3ZhbGlkLCAxKTsKLQl9CisJCQlNTFg1X1NFVChjcmVh dGVfZmxvd19ncm91cF9pbiwgZmxvd19ncm91cF9pbiwKKwkJCQkgc291cmNlX2Vzd2l0Y2hfb3du ZXJfdmhjYV9pZF92YWxpZCwgMSk7CisJCX0KIAotCU1MWDVfU0VUKGNyZWF0ZV9mbG93X2dyb3Vw X2luLCBmbG93X2dyb3VwX2luLCBzdGFydF9mbG93X2luZGV4LCBpeCk7Ci0JTUxYNV9TRVQoY3Jl YXRlX2Zsb3dfZ3JvdXBfaW4sIGZsb3dfZ3JvdXBfaW4sIGVuZF9mbG93X2luZGV4LAotCQkgaXgg KyBlc3ctPnRvdGFsX3Zwb3J0cyAtIDEpOwotCWl4ICs9IGVzdy0+dG90YWxfdnBvcnRzOworCQlN TFg1X1NFVChjcmVhdGVfZmxvd19ncm91cF9pbiwgZmxvd19ncm91cF9pbiwgc3RhcnRfZmxvd19p bmRleCwgaXgpOworCQlNTFg1X1NFVChjcmVhdGVfZmxvd19ncm91cF9pbiwgZmxvd19ncm91cF9p biwgZW5kX2Zsb3dfaW5kZXgsCisJCQkgaXggKyBlc3ctPnRvdGFsX3Zwb3J0cyAtIDEpOworCQlp eCArPSBlc3ctPnRvdGFsX3Zwb3J0czsKIAotCWcgPSBtbHg1X2NyZWF0ZV9mbG93X2dyb3VwKGZk YiwgZmxvd19ncm91cF9pbik7Ci0JaWYgKElTX0VSUihnKSkgewotCQllcnIgPSBQVFJfRVJSKGcp OwotCQllc3dfd2FybihkZXYsICJGYWlsZWQgdG8gY3JlYXRlIHBlZXIgbWlzcyBmbG93IGdyb3Vw IGVyciglZClcbiIsIGVycik7Ci0JCWdvdG8gcGVlcl9taXNzX2VycjsKKwkJZyA9IG1seDVfY3Jl YXRlX2Zsb3dfZ3JvdXAoZmRiLCBmbG93X2dyb3VwX2luKTsKKwkJaWYgKElTX0VSUihnKSkgewor CQkJZXJyID0gUFRSX0VSUihnKTsKKwkJCWVzd193YXJuKGRldiwgIkZhaWxlZCB0byBjcmVhdGUg cGVlciBtaXNzIGZsb3cgZ3JvdXAgZXJyKCVkKVxuIiwgZXJyKTsKKwkJCWdvdG8gcGVlcl9taXNz X2VycjsKKwkJfQorCQllc3ctPmZkYl90YWJsZS5vZmZsb2Fkcy5wZWVyX21pc3NfZ3JwID0gZzsK IAl9Ci0JZXN3LT5mZGJfdGFibGUub2ZmbG9hZHMucGVlcl9taXNzX2dycCA9IGc7CiAKIAkvKiBj cmVhdGUgbWlzcyBncm91cCAqLwogCW1lbXNldChmbG93X2dyb3VwX2luLCAwLCBpbmxlbik7CkBA IC0xMjA2LDcgKzEyMDgsOCBAQCBzdGF0aWMgaW50IGVzd19jcmVhdGVfb2ZmbG9hZHNfZmRiX3Rh YmxlcyhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGludCBudnBvcnRzKQogbWlzc19ydWxlX2Vy cjoKIAltbHg1X2Rlc3Ryb3lfZmxvd19ncm91cChlc3ctPmZkYl90YWJsZS5vZmZsb2Fkcy5taXNz X2dycCk7CiBtaXNzX2VycjoKLQltbHg1X2Rlc3Ryb3lfZmxvd19ncm91cChlc3ctPmZkYl90YWJs ZS5vZmZsb2Fkcy5wZWVyX21pc3NfZ3JwKTsKKwlpZiAoTUxYNV9DQVBfRVNXKGVzdy0+ZGV2LCBt ZXJnZWRfZXN3aXRjaCkpCisJCW1seDVfZGVzdHJveV9mbG93X2dyb3VwKGVzdy0+ZmRiX3RhYmxl Lm9mZmxvYWRzLnBlZXJfbWlzc19ncnApOwogcGVlcl9taXNzX2VycjoKIAltbHg1X2Rlc3Ryb3lf Zmxvd19ncm91cChlc3ctPmZkYl90YWJsZS5vZmZsb2Fkcy5zZW5kX3RvX3Zwb3J0X2dycCk7CiBz ZW5kX3Zwb3J0X2VycjoKQEAgLTEyMjksNyArMTIzMiw4IEBAIHN0YXRpYyB2b2lkIGVzd19kZXN0 cm95X29mZmxvYWRzX2ZkYl90YWJsZXMoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KQogCW1seDVf ZGVsX2Zsb3dfcnVsZXMoZXN3LT5mZGJfdGFibGUub2ZmbG9hZHMubWlzc19ydWxlX211bHRpKTsK IAltbHg1X2RlbF9mbG93X3J1bGVzKGVzdy0+ZmRiX3RhYmxlLm9mZmxvYWRzLm1pc3NfcnVsZV91 bmkpOwogCW1seDVfZGVzdHJveV9mbG93X2dyb3VwKGVzdy0+ZmRiX3RhYmxlLm9mZmxvYWRzLnNl bmRfdG9fdnBvcnRfZ3JwKTsKLQltbHg1X2Rlc3Ryb3lfZmxvd19ncm91cChlc3ctPmZkYl90YWJs ZS5vZmZsb2Fkcy5wZWVyX21pc3NfZ3JwKTsKKwlpZiAoTUxYNV9DQVBfRVNXKGVzdy0+ZGV2LCBt ZXJnZWRfZXN3aXRjaCkpCisJCW1seDVfZGVzdHJveV9mbG93X2dyb3VwKGVzdy0+ZmRiX3RhYmxl Lm9mZmxvYWRzLnBlZXJfbWlzc19ncnApOwogCW1seDVfZGVzdHJveV9mbG93X2dyb3VwKGVzdy0+ ZmRiX3RhYmxlLm9mZmxvYWRzLm1pc3NfZ3JwKTsKIAogCW1seDVfZGVzdHJveV9mbG93X3RhYmxl KGVzdy0+ZmRiX3RhYmxlLm9mZmxvYWRzLnNsb3dfZmRiKTsKLS0gCjIuMjYuMgoKCkZyb20gNThk NTA0YWRkMWVhNTAwZmNjYTIxNjBhOTcxYjYxZDAxNGZlNTE3OCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpEYXRlOiBTdW4s IDI4IEp1biAyMDIwIDEzOjA2OjA2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyNi8zNl0gbmV0L21s eDVlOiBUTFMsIERvIG5vdCBleHBvc2UgRlBHQSBUTFMgY291bnRlciBpZiBub3QKIHN1cHBvcnRl ZAoKWyBVcHN0cmVhbSBjb21taXQgOGYwYmNkMTliMWRhM2YyNjQyMjNhYmVhOTg1Yjk0NjJlODVh MzcxOCBdCgpUaGUgc2V0IG9mIFRMUyBUWCBnbG9iYWwgU1cgY291bnRlcnMgaW4gbWx4NWVfdGxz X3N3X3N0YXRzX2Rlc2MKaXMgdXBkYXRlZCBmcm9tIGFsbCByaW5ncyBieSB1c2luZyBhdG9taWMg b3BzLgpUaGlzIHNldCBvZiBzdGF0cyBpcyB1c2VkIG9ubHkgaW4gdGhlIEZQR0EgVExTIHVzZSBj YXNlLCBub3QgaW4KdGhlIENvbm5lY3QtWCBUTFMgb25lLCB3aGVyZSByZWd1bGFyIHBlci1yaW5n IGNvdW50ZXJzIGFyZSB1c2VkLgoKRG8gbm90IGV4cG9zZSB0aGVtIGluIHRoZSBDb25uZWN0LVgg dXNlIGNhc2UsIGFzIHRoaXMgd291bGQgY2F1c2UKY291bnRlciBkdXBsaWNhdGlvbi4gRm9yIGV4 YW1wbGUsIHR4X3Rsc19kcm9wX25vX3N5bmNfZGF0YSB3b3VsZAphcHBlYXIgdHdpY2UgaW4gdGhl IGV0aHRvb2wgc3RhdHMuCgpGaXhlczogZDJlYWQxZjM2MGU4ICgibmV0L21seDVlOiBBZGQga1RM UyBUWCBIVyBvZmZsb2FkIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBUYXJpcSBUb3VrYW4gPHRh cmlxdEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBudmlk aWEuY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG52aWRpYS5jb20+ Ci0tLQogLi4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC90bHNfc3RhdHMu YyB8IDEyICsrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fYWNjZWwvdGxzX3N0YXRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvdGxzX3N0YXRzLmMKaW5kZXggMDE0NjhlYzI3NDQ2Li5i OTQ5YjlhNzUzOGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9hY2NlbC90bHNfc3RhdHMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvdGxzX3N0YXRzLmMKQEAgLTM1LDcgKzM1LDYgQEAK ICNpbmNsdWRlIDxuZXQvc29jay5oPgogCiAjaW5jbHVkZSAiZW4uaCIKLSNpbmNsdWRlICJhY2Nl bC90bHMuaCIKICNpbmNsdWRlICJmcGdhL3Nkay5oIgogI2luY2x1ZGUgImVuX2FjY2VsL3Rscy5o IgogCkBAIC01MSw5ICs1MCwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBt bHg1ZV90bHNfc3dfc3RhdHNfZGVzY1tdID0gewogCiAjZGVmaW5lIE5VTV9UTFNfU1dfQ09VTlRF UlMgQVJSQVlfU0laRShtbHg1ZV90bHNfc3dfc3RhdHNfZGVzYykKIAorc3RhdGljIGJvb2wgaXNf dGxzX2F0b21pY19zdGF0cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKK3sKKwlyZXR1cm4gcHJp di0+dGxzICYmICFtbHg1X2FjY2VsX2lzX2t0bHNfZGV2aWNlKHByaXYtPm1kZXYpOworfQorCiBp bnQgbWx4NWVfdGxzX2dldF9jb3VudChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIHsKLQlpZiAo IXByaXYtPnRscykKKwlpZiAoIWlzX3Rsc19hdG9taWNfc3RhdHMocHJpdikpCiAJCXJldHVybiAw OwogCiAJcmV0dXJuIE5VTV9UTFNfU1dfQ09VTlRFUlM7CkBAIC02Myw3ICs2Nyw3IEBAIGludCBt bHg1ZV90bHNfZ2V0X3N0cmluZ3Moc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHVpbnQ4X3QgKmRh dGEpCiB7CiAJdW5zaWduZWQgaW50IGksIGlkeCA9IDA7CiAKLQlpZiAoIXByaXYtPnRscykKKwlp ZiAoIWlzX3Rsc19hdG9taWNfc3RhdHMocHJpdikpCiAJCXJldHVybiAwOwogCiAJZm9yIChpID0g MDsgaSA8IE5VTV9UTFNfU1dfQ09VTlRFUlM7IGkrKykKQEAgLTc3LDcgKzgxLDcgQEAgaW50IG1s eDVlX3Rsc19nZXRfc3RhdHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU2NCAqZGF0YSkKIHsK IAlpbnQgaSwgaWR4ID0gMDsKIAotCWlmICghcHJpdi0+dGxzKQorCWlmICghaXNfdGxzX2F0b21p Y19zdGF0cyhwcml2KSkKIAkJcmV0dXJuIDA7CiAKIAlmb3IgKGkgPSAwOyBpIDwgTlVNX1RMU19T V19DT1VOVEVSUzsgaSsrKQotLSAKMi4yNi4yCgoKRnJvbSBlMWVkYWUwNDkyZjY4NDMzZTFiZDEy NzcxMDRmMzc0OTEzNTI3NDdiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFZHdpbiBQ ZWVyIDxlZHdpbi5wZWVyQGJyb2FkY29tLmNvbT4KRGF0ZTogU3VuLCAyMCBTZXAgMjAyMCAyMTow ODo1NSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjcvMzZdIGJueHRfZW46IHJldHVybiBwcm9wZXIg ZXJyb3IgY29kZXMgaW4gYm54dF9zaG93X3RlbXAKClsgVXBzdHJlYW0gY29tbWl0IGQ2OTc1M2Zh MWVjYjMyMThiNTZiMDIyNzIyZjdhNTgyMjczNWI4NzYgXQoKUmV0dXJuaW5nICJ1bmtub3duIiBh cyBhIHRlbXBlcmF0dXJlIHZhbHVlIHZpb2xhdGVzIHRoZSBod21vbiBpbnRlcmZhY2UKcnVsZXMu IEFwcHJvcHJpYXRlIGVycm9yIGNvZGVzIHNob3VsZCBiZSByZXR1cm5lZCB2aWEgZGV2aWNlX2F0 dHJpYnV0ZQpzaG93IGluc3RlYWQuIFRoZXNlIHdpbGwgdWx0aW1hdGVseSBiZSBwcm9wYWdhdGVk IHRvIHRoZSB1c2VyIHZpYSB0aGUKZmlsZSBzeXN0ZW0gaW50ZXJmYWNlLgoKSW4gYWRkaXRpb24g dG8gdGhlIGNvcnJlY3RlZCBlcnJvciBoYW5kbGluZywgaXQgaXMgYW4gZXZlbiBiZXR0ZXIgaWRl YSB0bwpub3QgcHJlc2VudCB0aGUgc2Vuc29yIGluIHN5c2ZzIGF0IGFsbCBpZiBpdCBpcyBrbm93 biB0aGF0IHRoZSByZWFkIHdpbGwKZGVmaW5pdGVseSBmYWlsLiBHaXZlbiB0aGF0IHRlbXAxX2lu cHV0IGlzIGN1cnJlbnRseSB0aGUgb25seSBzZW5zb3IKcmVwb3J0ZWQsIGVuc3VyZSBubyBod21v biByZWdpc3RyYXRpb24gaWYgVEVNUF9NT05JVE9SX1FVRVJZIGlzIG5vdApzdXBwb3J0ZWQgb3Ig aWYgaXQgd2lsbCBmYWlsIGR1ZSB0byBhY2Nlc3MgcGVybWlzc2lvbnMuIFNvbWV0aGluZyBzbWFy dGVyCm1heSBiZSBuZWVkZWQgaWYgYW5kIHdoZW4gb3RoZXIgc2Vuc29ycyBhcmUgYWRkZWQuCgpG aXhlczogMTJjY2U5MGI5MzRiICgiYm54dF9lbjogZml4IEhXUk0gZXJyb3Igd2hlbiBxdWVyeWlu ZyBWRiB0ZW1wZXJhdHVyZSIpClNpZ25lZC1vZmYtYnk6IEVkd2luIFBlZXIgPGVkd2luLnBlZXJA YnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBi cm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyB8 IDE5ICsrKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JueHQvYm54dC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0 LmMKaW5kZXggNTkyNTdlZTI1MTY4Li40ZjRmZDgwNzYyNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCkBAIC04OTM5LDE4ICs4OTM5LDE2IEBAIHN0YXRpYyBz c2l6ZV90IGJueHRfc2hvd190ZW1wKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlzdHJ1Y3QgaHdybV90 ZW1wX21vbml0b3JfcXVlcnlfb3V0cHV0ICpyZXNwOwogCXN0cnVjdCBibnh0ICpicCA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOwogCXUzMiBsZW4gPSAwOworCWludCByYzsKIAogCXJlc3AgPSBicC0+ aHdybV9jbWRfcmVzcF9hZGRyOwogCWJueHRfaHdybV9jbWRfaGRyX2luaXQoYnAsICZyZXEsIEhX Uk1fVEVNUF9NT05JVE9SX1FVRVJZLCAtMSwgLTEpOwogCW11dGV4X2xvY2soJmJwLT5od3JtX2Nt ZF9sb2NrKTsKLQlpZiAoIV9od3JtX3NlbmRfbWVzc2FnZV9zaWxlbnQoYnAsICZyZXEsIHNpemVv ZihyZXEpLCBIV1JNX0NNRF9USU1FT1VUKSkKKwlyYyA9IF9od3JtX3NlbmRfbWVzc2FnZShicCwg JnJlcSwgc2l6ZW9mKHJlcSksIEhXUk1fQ01EX1RJTUVPVVQpOworCWlmICghcmMpCiAJCWxlbiA9 IHNwcmludGYoYnVmLCAiJXVcbiIsIHJlc3AtPnRlbXAgKiAxMDAwKTsgLyogZGlzcGxheSBtaWxs aWRlZ3JlZSAqLwogCW11dGV4X3VubG9jaygmYnAtPmh3cm1fY21kX2xvY2spOwotCi0JaWYgKGxl bikKLQkJcmV0dXJuIGxlbjsKLQotCXJldHVybiBzcHJpbnRmKGJ1ZiwgInVua25vd25cbiIpOwor CXJldHVybiByYyA/OiBsZW47CiB9CiBzdGF0aWMgU0VOU09SX0RFVklDRV9BVFRSKHRlbXAxX2lu cHV0LCAwNDQ0LCBibnh0X3Nob3dfdGVtcCwgTlVMTCwgMCk7CiAKQEAgLTg5NzAsNyArODk2OCwx NiBAQCBzdGF0aWMgdm9pZCBibnh0X2h3bW9uX2Nsb3NlKHN0cnVjdCBibnh0ICpicCkKIAogc3Rh dGljIHZvaWQgYm54dF9od21vbl9vcGVuKHN0cnVjdCBibnh0ICpicCkKIHsKKwlzdHJ1Y3QgaHdy bV90ZW1wX21vbml0b3JfcXVlcnlfaW5wdXQgcmVxID0gezB9OwogCXN0cnVjdCBwY2lfZGV2ICpw ZGV2ID0gYnAtPnBkZXY7CisJaW50IHJjOworCisJYm54dF9od3JtX2NtZF9oZHJfaW5pdChicCwg JnJlcSwgSFdSTV9URU1QX01PTklUT1JfUVVFUlksIC0xLCAtMSk7CisJcmMgPSBod3JtX3NlbmRf bWVzc2FnZV9zaWxlbnQoYnAsICZyZXEsIHNpemVvZihyZXEpLCBIV1JNX0NNRF9USU1FT1VUKTsK KwlpZiAocmMgPT0gLUVBQ0NFUyB8fCByYyA9PSAtRU9QTk9UU1VQUCkgeworCQlibnh0X2h3bW9u X2Nsb3NlKGJwKTsKKwkJcmV0dXJuOworCX0KIAogCWlmIChicC0+aHdtb25fZGV2KQogCQlyZXR1 cm47Ci0tIAoyLjI2LjIKCgpGcm9tIGM1MTFmODUxOWFhYzBjNTE4YzViODk1MzdkMDllM2QyY2Zj ZjUwNTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1pY2hhZWwgQ2hhbiA8bWljaGFl bC5jaGFuQGJyb2FkY29tLmNvbT4KRGF0ZTogU3VuLCAyMCBTZXAgMjAyMCAyMTowODo1NiAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggMjgvMzZdIGJueHRfZW46IFByb3RlY3QgYm54dF9zZXRfZWVlKCkg YW5kCiBibnh0X3NldF9wYXVzZXBhcmFtKCkgd2l0aCBtdXRleC4KClsgVXBzdHJlYW0gY29tbWl0 IGE1MzkwNjkwODE0OGQ2NDQyMzM5OGE2MmM0NDM1ZWZiMGQwOTY1MmMgXQoKQWxsIGNoYW5nZXMg cmVsYXRlZCB0byBicC0+bGlua19pbmZvIHJlcXVpcmUgdGhlIHByb3RlY3Rpb24gb2YgdGhlCmxp bmtfbG9jayBtdXRleC4gIEl0J3Mgbm90IHN1ZmZpY2llbnQgdG8gcmVseSBqdXN0IG9uIFJUTkwu CgpGaXhlczogMTYzZTllZjYzNjQxICgiYm54dF9lbjogRml4IHJhY2Ugd2hlbiBtb2RpZnlpbmcg cGF1c2Ugc2V0dGluZ3MuIikKUmV2aWV3ZWQtYnk6IEVkd2luIFBlZXIgPGVkd2luLnBlZXJAYnJv YWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9h ZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9ldGh0b29sLmMg fCAzMSArKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2JueHQvYm54dF9ldGh0b29sLmMKaW5kZXggZmQwMWJjYzhlMjhkLi4xZDE1ZmYwOGYxNzYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9ldGh0b29s LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wu YwpAQCAtMTY2NSw5ICsxNjY1LDEyIEBAIHN0YXRpYyBpbnQgYm54dF9zZXRfcGF1c2VwYXJhbShz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCWlmICghQk5YVF9TSU5HTEVfUEYoYnApKQogCQlyZXR1 cm4gLUVPUE5PVFNVUFA7CiAKKwltdXRleF9sb2NrKCZicC0+bGlua19sb2NrKTsKIAlpZiAoZXBh dXNlLT5hdXRvbmVnKSB7Ci0JCWlmICghKGxpbmtfaW5mby0+YXV0b25lZyAmIEJOWFRfQVVUT05F R19TUEVFRCkpCi0JCQlyZXR1cm4gLUVJTlZBTDsKKwkJaWYgKCEobGlua19pbmZvLT5hdXRvbmVn ICYgQk5YVF9BVVRPTkVHX1NQRUVEKSkgeworCQkJcmMgPSAtRUlOVkFMOworCQkJZ290byBwYXVz ZV9leGl0OworCQl9CiAKIAkJbGlua19pbmZvLT5hdXRvbmVnIHw9IEJOWFRfQVVUT05FR19GTE9X X0NUUkw7CiAJCWlmIChicC0+aHdybV9zcGVjX2NvZGUgPj0gMHgxMDIwMSkKQEAgLTE2ODgsMTEg KzE2OTEsMTEgQEAgc3RhdGljIGludCBibnh0X3NldF9wYXVzZXBhcmFtKHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsCiAJaWYgKGVwYXVzZS0+dHhfcGF1c2UpCiAJCWxpbmtfaW5mby0+cmVxX2Zsb3df Y3RybCB8PSBCTlhUX0xJTktfUEFVU0VfVFg7CiAKLQlpZiAobmV0aWZfcnVubmluZyhkZXYpKSB7 Ci0JCW11dGV4X2xvY2soJmJwLT5saW5rX2xvY2spOworCWlmIChuZXRpZl9ydW5uaW5nKGRldikp CiAJCXJjID0gYm54dF9od3JtX3NldF9wYXVzZShicCk7Ci0JCW11dGV4X3VubG9jaygmYnAtPmxp bmtfbG9jayk7Ci0JfQorCitwYXVzZV9leGl0OgorCW11dGV4X3VubG9jaygmYnAtPmxpbmtfbG9j ayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC0yMzk3LDggKzI0MDAsNyBAQCBzdGF0aWMgaW50IGJu eHRfc2V0X2VlZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF9lZWUgKmVk YXRhKQogCXN0cnVjdCBibnh0ICpicCA9IG5ldGRldl9wcml2KGRldik7CiAJc3RydWN0IGV0aHRv b2xfZWVlICplZWUgPSAmYnAtPmVlZTsKIAlzdHJ1Y3QgYm54dF9saW5rX2luZm8gKmxpbmtfaW5m byA9ICZicC0+bGlua19pbmZvOwotCXUzMiBhZHZlcnRpc2luZyA9Ci0JCSBfYm54dF9md190b19l dGh0b29sX2Fkdl9zcGRzKGxpbmtfaW5mby0+YWR2ZXJ0aXNpbmcsIDApOworCXUzMiBhZHZlcnRp c2luZzsKIAlpbnQgcmMgPSAwOwogCiAJaWYgKCFCTlhUX1NJTkdMRV9QRihicCkpCkBAIC0yNDA3 LDE5ICsyNDA5LDIzIEBAIHN0YXRpYyBpbnQgYm54dF9zZXRfZWVlKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsIHN0cnVjdCBldGh0b29sX2VlZSAqZWRhdGEpCiAJaWYgKCEoYnAtPmZsYWdzICYgQk5Y VF9GTEFHX0VFRV9DQVApKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKKwltdXRleF9sb2NrKCZi cC0+bGlua19sb2NrKTsKKwlhZHZlcnRpc2luZyA9IF9ibnh0X2Z3X3RvX2V0aHRvb2xfYWR2X3Nw ZHMobGlua19pbmZvLT5hZHZlcnRpc2luZywgMCk7CiAJaWYgKCFlZGF0YS0+ZWVlX2VuYWJsZWQp CiAJCWdvdG8gZWVlX29rOwogCiAJaWYgKCEobGlua19pbmZvLT5hdXRvbmVnICYgQk5YVF9BVVRP TkVHX1NQRUVEKSkgewogCQluZXRkZXZfd2FybihkZXYsICJFRUUgcmVxdWlyZXMgYXV0b25lZ1xu Iik7Ci0JCXJldHVybiAtRUlOVkFMOworCQlyYyA9IC1FSU5WQUw7CisJCWdvdG8gZWVlX2V4aXQ7 CiAJfQogCWlmIChlZGF0YS0+dHhfbHBpX2VuYWJsZWQpIHsKIAkJaWYgKGJwLT5scGlfdG1yX2hp ICYmIChlZGF0YS0+dHhfbHBpX3RpbWVyID4gYnAtPmxwaV90bXJfaGkgfHwKIAkJCQkgICAgICAg ZWRhdGEtPnR4X2xwaV90aW1lciA8IGJwLT5scGlfdG1yX2xvKSkgewogCQkJbmV0ZGV2X3dhcm4o ZGV2LCAiVmFsaWQgTFBJIHRpbWVyIHJhbmdlIGlzICVkIGFuZCAlZCBtaWNyb3NlY3NcbiIsCiAJ CQkJICAgIGJwLT5scGlfdG1yX2xvLCBicC0+bHBpX3Rtcl9oaSk7Ci0JCQlyZXR1cm4gLUVJTlZB TDsKKwkJCXJjID0gLUVJTlZBTDsKKwkJCWdvdG8gZWVlX2V4aXQ7CiAJCX0gZWxzZSBpZiAoIWJw LT5scGlfdG1yX2hpKSB7CiAJCQllZGF0YS0+dHhfbHBpX3RpbWVyID0gZWVlLT50eF9scGlfdGlt ZXI7CiAJCX0KQEAgLTI0MjksNyArMjQzNSw4IEBAIHN0YXRpYyBpbnQgYm54dF9zZXRfZWVlKHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX2VlZSAqZWRhdGEpCiAJfSBlbHNl IGlmIChlZGF0YS0+YWR2ZXJ0aXNlZCAmIH5hZHZlcnRpc2luZykgewogCQluZXRkZXZfd2Fybihk ZXYsICJFRUUgYWR2ZXJ0aXNlZCAleCBtdXN0IGJlIGEgc3Vic2V0IG9mIGF1dG9uZWcgYWR2ZXJ0 aXNlZCBzcGVlZHMgJXhcbiIsCiAJCQkgICAgZWRhdGEtPmFkdmVydGlzZWQsIGFkdmVydGlzaW5n KTsKLQkJcmV0dXJuIC1FSU5WQUw7CisJCXJjID0gLUVJTlZBTDsKKwkJZ290byBlZWVfZXhpdDsK IAl9CiAKIAllZWUtPmFkdmVydGlzZWQgPSBlZGF0YS0+YWR2ZXJ0aXNlZDsKQEAgLTI0NDEsNiAr MjQ0OCw4IEBAIHN0YXRpYyBpbnQgYm54dF9zZXRfZWVlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs IHN0cnVjdCBldGh0b29sX2VlZSAqZWRhdGEpCiAJaWYgKG5ldGlmX3J1bm5pbmcoZGV2KSkKIAkJ cmMgPSBibnh0X2h3cm1fc2V0X2xpbmtfc2V0dGluZyhicCwgZmFsc2UsIHRydWUpOwogCitlZWVf ZXhpdDoKKwltdXRleF91bmxvY2soJmJwLT5saW5rX2xvY2spOwogCXJldHVybiByYzsKIH0KIAot LSAKMi4yNi4yCgoKRnJvbSA5ZGIxOTUyYTA0YTRkZWE1MDBmNDcxMDJjYzk3YTM0MjJmNDMyY2I4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXVrZSBNZWhydGVucyA8aGF1a2VAaGF1 a2UtbS5kZT4KRGF0ZTogU2F0LCAxMiBTZXAgMjAyMCAyMTozNjoyNiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMjkvMzZdIG5ldDogbGFudGlxOiBXYWtlIFRYIHF1ZXVlIGFnYWluCgpbIFVwc3RyZWFt IGNvbW1pdCBkZWEzNjYzMWU2ZjE4NmQ0Yjg1M2FmNjdhNGFlZjJlMzVjZmE4YmI3IF0KClRoZSBj YWxsIHRvIG5ldGlmX3dha2VfcXVldWUoKSB3aGVuIHRoZSBUWCBkZXNjcmlwdG9ycyB3ZXJlIGZy ZWVkIHdhcwptaXNzaW5nLiBXaGVuIHRoZXJlIGFyZSBubyBUWCBidWZmZXJzIGF2YWlsYWJsZSB0 aGUgVFggcXVldWUgd2lsbCBiZQpzdG9wcGVkLCBidXQgaXQgd2FzIG5vdCBzdGFydGVkIGFnYWlu IHdoZW4gdGhleSBhcmUgYXZhaWxhYmxlIGFnYWluLAp0aGlzIGlzIGZpeGVkIGluIHRoaXMgcGF0 Y2guCgpGaXhlczogZmUxYTU2NDIwY2YyICgibmV0OiBsYW50aXE6IEFkZCBMYW50aXEgLyBJbnRl bCBWUlgyMDAgRXRoZXJuZXQgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTogSGF1a2UgTWVocnRlbnMg PGhhdWtlQGhhdWtlLW0uZGU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfeHJ4MjAwLmMg fCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV94cngyMDAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2xhbnRpcV94cngyMDAuYwppbmRleCA5MDBhZmZiZGNjMGUuLjFmOTY4ZDA1MzBhMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFudGlxX3hyeDIwMC5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2xhbnRpcV94cngyMDAuYwpAQCAtMjY4LDYgKzI2OCw5IEBAIHN0YXRpYyBp bnQgeHJ4MjAwX3R4X2hvdXNla2VlcGluZyhzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBi dWRnZXQpCiAJbmV0X2Rldi0+c3RhdHMudHhfYnl0ZXMgKz0gYnl0ZXM7CiAJbmV0ZGV2X2NvbXBs ZXRlZF9xdWV1ZShjaC0+cHJpdi0+bmV0X2RldiwgcGt0cywgYnl0ZXMpOwogCisJaWYgKG5ldGlm X3F1ZXVlX3N0b3BwZWQobmV0X2RldikpCisJCW5ldGlmX3dha2VfcXVldWUobmV0X2Rldik7CisK IAlpZiAocGt0cyA8IGJ1ZGdldCkgewogCQluYXBpX2NvbXBsZXRlKCZjaC0+bmFwaSk7CiAJCWx0 cV9kbWFfZW5hYmxlX2lycSgmY2gtPmRtYSk7Ci0tIAoyLjI2LjIKCgpGcm9tIDIwZWU4YzNlMmE3 NjZlYWI1NzhiMzBkMDRhZTY3MzQ4ZjA1YzFkMjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEhhdWtlIE1laHJ0ZW5zIDxoYXVrZUBoYXVrZS1tLmRlPgpEYXRlOiBTYXQsIDEyIFNlcCAy MDIwIDIxOjM2OjI3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMC8zNl0gbmV0OiBsYW50aXE6IHVz ZSBuZXRpZl90eF9uYXBpX2FkZCgpIGZvciBUWCBOQVBJCgpbIFVwc3RyZWFtIGNvbW1pdCA3NGM3 YjgwZTIyMmI1OGQzY2VhNzMxZDMxZTJhMzFhNzdmZWE4MzQ1IF0KCm5ldGlmX3R4X25hcGlfYWRk KCkgc2hvdWxkIGJlIHVzZWQgZm9yIE5BUEkgaW4gdGhlIFRYIGRpcmVjdGlvbiBpbnN0ZWFkCm9m IHRoZSBuZXRpZl9uYXBpX2FkZCgpIGZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogSGF1a2UgTWVo cnRlbnMgPGhhdWtlQGhhdWtlLW0uZGU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfeHJ4 MjAwLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfeHJ4MjAwLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfeHJ4MjAwLmMKaW5kZXggMWY5NjhkMDUzMGExLi42 ZWNmMjY2ZDIyY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV94cngy MDAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfeHJ4MjAwLmMKQEAgLTUwMSw3 ICs1MDEsNyBAQCBzdGF0aWMgaW50IHhyeDIwMF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQogCiAJLyogc2V0dXAgTkFQSSAqLwogCW5ldGlmX25hcGlfYWRkKG5ldF9kZXYsICZw cml2LT5jaGFuX3J4Lm5hcGksIHhyeDIwMF9wb2xsX3J4LCAzMik7Ci0JbmV0aWZfbmFwaV9hZGQo bmV0X2RldiwgJnByaXYtPmNoYW5fdHgubmFwaSwgeHJ4MjAwX3R4X2hvdXNla2VlcGluZywgMzIp OworCW5ldGlmX3R4X25hcGlfYWRkKG5ldF9kZXYsICZwcml2LT5jaGFuX3R4Lm5hcGksIHhyeDIw MF90eF9ob3VzZWtlZXBpbmcsIDMyKTsKIAogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHBy aXYpOwogCi0tIAoyLjI2LjIKCgpGcm9tIDg2MTVhMWI3YTVjODJlYWMxM2QyMDNkYTYzMGY2MzNi NzYyNzExOTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhdWtlIE1laHJ0ZW5zIDxo YXVrZUBoYXVrZS1tLmRlPgpEYXRlOiBTYXQsIDEyIFNlcCAyMDIwIDIxOjM2OjI4ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAzMS8zNl0gbmV0OiBsYW50aXE6IFVzZSBuYXBpX2NvbXBsZXRlX2RvbmUo KQoKWyBVcHN0cmVhbSBjb21taXQgYzU4MmE3ZmVhOWRhZDRkMzA5NDM3ZDFhN2UyMmU2ZDJjYjM4 MGUyZSBdCgpVc2UgbmFwaV9jb21wbGV0ZV9kb25lKCkgYW5kIGFjdGl2YXRlIHRoZSBpbnRlcnJ1 cHRzIHdoZW4gdGhpcyBmdW5jdGlvbgpyZXR1cm5zIHRydWUuIFRoaXMgd2F5IHRoZSBnZW5lcmlj IE5BUEkgY29kZSBjYW4gdGFrZSBjYXJlIG9mIGFjdGl2YXRpbmcKdGhlIGludGVycnVwdHMuCgpT aWduZWQtb2ZmLWJ5OiBIYXVrZSBNZWhydGVucyA8aGF1a2VAaGF1a2UtbS5kZT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L2xhbnRpcV94cngyMDAuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbGFudGlxX3hyeDIwMC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFudGlx X3hyeDIwMC5jCmluZGV4IDZlY2YyNjZkMjJjZS4uZDkzOWIwZTM2NGJjIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfeHJ4MjAwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbGFudGlxX3hyeDIwMC5jCkBAIC0yMzAsOCArMjMwLDggQEAgc3RhdGljIGludCB4cngy MDBfcG9sbF9yeChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAJfQogCiAJ aWYgKHJ4IDwgYnVkZ2V0KSB7Ci0JCW5hcGlfY29tcGxldGUoJmNoLT5uYXBpKTsKLQkJbHRxX2Rt YV9lbmFibGVfaXJxKCZjaC0+ZG1hKTsKKwkJaWYgKG5hcGlfY29tcGxldGVfZG9uZSgmY2gtPm5h cGksIHJ4KSkKKwkJCWx0cV9kbWFfZW5hYmxlX2lycSgmY2gtPmRtYSk7CiAJfQogCiAJcmV0dXJu IHJ4OwpAQCAtMjcyLDggKzI3Miw4IEBAIHN0YXRpYyBpbnQgeHJ4MjAwX3R4X2hvdXNla2VlcGlu ZyhzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAJCW5ldGlmX3dha2VfcXVl dWUobmV0X2Rldik7CiAKIAlpZiAocGt0cyA8IGJ1ZGdldCkgewotCQluYXBpX2NvbXBsZXRlKCZj aC0+bmFwaSk7Ci0JCWx0cV9kbWFfZW5hYmxlX2lycSgmY2gtPmRtYSk7CisJCWlmIChuYXBpX2Nv bXBsZXRlX2RvbmUoJmNoLT5uYXBpLCBwa3RzKSkKKwkJCWx0cV9kbWFfZW5hYmxlX2lycSgmY2gt PmRtYSk7CiAJfQogCiAJcmV0dXJuIHBrdHM7Ci0tIAoyLjI2LjIKCgpGcm9tIGIyNTE2NmRhOWZl MWI2YjkzMzYzOGYxNDAwNmIxZWM1Y2Q3ZWQ2YTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEhhdWtlIE1laHJ0ZW5zIDxoYXVrZUBoYXVrZS1tLmRlPgpEYXRlOiBTYXQsIDEyIFNlcCAy MDIwIDIxOjM2OjI5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMi8zNl0gbmV0OiBsYW50aXE6IERp c2FibGUgSVJRcyBvbmx5IGlmIE5BUEkgZ2V0cyBzY2hlZHVsZWQKClsgVXBzdHJlYW0gY29tbWl0 IDk0MjMzNjFkYTUyMzU2Y2I2ODY0MmRiNWIyNzI5YjZiODVhYWQzMzAgXQoKVGhlIG5hcGlfc2No ZWR1bGUoKSBjYWxsIHdpbGwgb25seSBzY2hlZHVsZSB0aGUgTkFQSSBpZiBpdCBpcyBub3QKYWxy ZWFkeSBydW5uaW5nLiBUbyBtYWtlIHN1cmUgdGhhdCB3ZSBkbyBub3QgZGVhY3RpdmF0ZSBpbnRl cnJ1cHRzCndpdGhvdXQgc2NoZWR1bGluZyBOQVBJIG9ubHkgZGVhY3RpdmF0ZSB0aGUgaW50ZXJy dXB0cyBpbiBjYXNlIE5BUEkgYWxzbwpnZXRzIHNjaGVkdWxlZC4KClNpZ25lZC1vZmYtYnk6IEhh dWtlIE1laHJ0ZW5zIDxoYXVrZUBoYXVrZS1tLmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFu dGlxX3hyeDIwMC5jIHwgOCArKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50 aXFfeHJ4MjAwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfeHJ4MjAwLmMKaW5kZXgg ZDkzOWIwZTM2NGJjLi45Njk0ODI3NmIyYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2xhbnRpcV94cngyMDAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfeHJ4 MjAwLmMKQEAgLTM0NCwxMCArMzQ0LDEyIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB4cngyMDBfZG1h X2lycShpbnQgaXJxLCB2b2lkICpwdHIpCiB7CiAJc3RydWN0IHhyeDIwMF9jaGFuICpjaCA9IHB0 cjsKIAotCWx0cV9kbWFfZGlzYWJsZV9pcnEoJmNoLT5kbWEpOwotCWx0cV9kbWFfYWNrX2lycSgm Y2gtPmRtYSk7CisJaWYgKG5hcGlfc2NoZWR1bGVfcHJlcCgmY2gtPm5hcGkpKSB7CisJCV9fbmFw aV9zY2hlZHVsZSgmY2gtPm5hcGkpOworCQlsdHFfZG1hX2Rpc2FibGVfaXJxKCZjaC0+ZG1hKTsK Kwl9CiAKLQluYXBpX3NjaGVkdWxlKCZjaC0+bmFwaSk7CisJbHRxX2RtYV9hY2tfaXJxKCZjaC0+ ZG1hKTsKIAogCXJldHVybiBJUlFfSEFORExFRDsKIH0KLS0gCjIuMjYuMgoKCkZyb20gMTFkNGVk NDIyZWFmOTNhN2RmYzFiZDUwOTU5ZGZkOTY2OTNjNjNmOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMTYgU2VwIDIwMjAgMjA6NDM6MDkgLTA3MDAKU3ViamVjdDogW1BBVENIIDMzLzM2XSBuZXQ6 IHBoeTogQXZvaWQgTlBEIHVwb24gcGh5X2RldGFjaCgpIHdoZW4gZHJpdmVyIGlzCiB1bmJvdW5k CgpbIFVwc3RyZWFtIGNvbW1pdCBjMmI3MjdkZjdjYWEzMzg3NmU3MDY2YmRlMDkwZjQwMDAxYjZk NjQzIF0KCklmIHdlIGhhdmUgdW5ib3VuZCB0aGUgUEhZIGRyaXZlciBwcmlvciB0byBjYWxsaW5n IHBoeV9kZXRhY2goKSAob2Z0ZW4KdmlhIHBoeV9kaXNjb25uZWN0KCkpIHRoZW4gd2UgY2FuIGNh dXNlIGEgTlVMTCBwb2ludGVyIGRlLXJlZmVyZW5jZQphY2Nlc3NpbmcgdGhlIGRyaXZlciBvd25l ciBtZW1iZXIuIFRoZSBzdGVwcyB0byByZXByb2R1Y2UgYXJlOgoKZWNobyB1bmltYWMtbWRpby0w OjAxID4gL3N5cy9jbGFzcy9uZXQvZXRoMC9waHlkZXYvZHJpdmVyL3VuYmluZAppcCBsaW5rIHNl dCBldGgwIGRvd24KCkZpeGVzOiBjYWZlOGRmOGI5YmMgKCJuZXQ6IHBoeTogRml4IGxhY2sgb2Yg cmVmZXJlbmNlIGNvdW50IG9uIFBIWSBkcml2ZXIiKQpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFuIEZh aW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBMdW5uIDxh bmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMgfCAzICsrLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5X2Rldmlj ZS5jCmluZGV4IDExMDkyNGQ2Mjc0NC4uOWQwYTMwNmYwNTYyIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9waHkvcGh5X2RldmljZS5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMK QEAgLTE0MjEsNyArMTQyMSw4IEBAIHZvaWQgcGh5X2RldGFjaChzdHJ1Y3QgcGh5X2RldmljZSAq cGh5ZGV2KQogCiAJcGh5X2xlZF90cmlnZ2Vyc191bnJlZ2lzdGVyKHBoeWRldik7CiAKLQltb2R1 bGVfcHV0KHBoeWRldi0+bWRpby5kZXYuZHJpdmVyLT5vd25lcik7CisJaWYgKHBoeWRldi0+bWRp by5kZXYuZHJpdmVyKQorCQltb2R1bGVfcHV0KHBoeWRldi0+bWRpby5kZXYuZHJpdmVyLT5vd25l cik7CiAKIAkvKiBJZiB0aGUgZGV2aWNlIGhhZCBubyBzcGVjaWZpYyBkcml2ZXIgYmVmb3JlIChp LmUuIC0gaXQKIAkgKiB3YXMgdXNpbmcgdGhlIGdlbmVyaWMgZHJpdmVyKSwgd2UgdW5iaW5kIHRo ZSBkZXZpY2UKLS0gCjIuMjYuMgoKCkZyb20gMDVjZmQ0MjIyMzUwYmYzYzAzNDg2MjhjYjBlMDk1 YzkxMDQ1ZjA4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxvcmlhbiBGYWluZWxs aSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6NDM6MTAg LTA3MDAKU3ViamVjdDogW1BBVENIIDM0LzM2XSBuZXQ6IHBoeTogRG8gbm90IHdhcm4gaW4gcGh5 X3N0b3AoKSBvbiBQSFlfRE9XTgoKWyBVcHN0cmVhbSBjb21taXQgNTExNmE4YWRlMzMzYjZjMmUx ODA3ODIxMzljOWM1MTZhNDM3YjIxYyBdCgpXaGVuIHBoeV9pc19zdGFydGVkKCkgd2FzIGFkZGVk IHRvIGNhdGNoIGluY29ycmVjdCBQSFkgc3RhdGVzLApwaHlfc3RvcCgpIHdvdWxkIG5vdCBiZSBx dWFsaWZpZWQgYWdhaW5zdCBQSFlfRE9XTi4gSXQgaXMgcG9zc2libGUgdG8KcmVhY2ggdGhhdCBz dGF0ZSB3aGVuIHRoZSBQSFkgZHJpdmVyIGhhcyBiZWVuIHVuYm91bmQgYW5kIHRoZSBuZXR3b3Jr CmRldmljZSBpcyB0aGVuIGJyb3VnaHQgZG93bi4KCkZpeGVzOiAyYjNlODhlYTY1MjggKCJuZXQ6 IHBoeTogaW1wcm92ZSBwaHkgc3RhdGUgY2hlY2tpbmciKQpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFu IEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBMdW5u IDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHkuYyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3BoeS9waHkuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHkuYwppbmRleCA1NGU1ZDRmOTYy MmMuLmI3MThiMTE2MDdmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeS5jCisrKyBi L2RyaXZlcnMvbmV0L3BoeS9waHkuYwpAQCAtODM0LDcgKzgzNCw3IEBAIEVYUE9SVF9TWU1CT0wo cGh5X2ZyZWVfaW50ZXJydXB0KTsKICAqLwogdm9pZCBwaHlfc3RvcChzdHJ1Y3QgcGh5X2Rldmlj ZSAqcGh5ZGV2KQogewotCWlmICghcGh5X2lzX3N0YXJ0ZWQocGh5ZGV2KSkgeworCWlmICghcGh5 X2lzX3N0YXJ0ZWQocGh5ZGV2KSAmJiBwaHlkZXYtPnN0YXRlICE9IFBIWV9ET1dOKSB7CiAJCVdB Uk4oMSwgImNhbGxlZCBmcm9tIHN0YXRlICVzXG4iLAogCQkgICAgIHBoeV9zdGF0ZV90b19zdHIo cGh5ZGV2LT5zdGF0ZSkpOwogCQlyZXR1cm47Ci0tIAoyLjI2LjIKCgpGcm9tIDFkYmE5MDk4NjBi ZmZmYjhiMGJlZTQ0N2Q5Nzc4YTU3MzgzODhhNzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCA5IFNlcCAy MDIwIDAxOjI3OjM5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzNS8zNl0gbmV0OiBxcnRyOiBjaGVj ayBza2JfcHV0X3BhZHRvKCkgcmV0dXJuIHZhbHVlCgpbIFVwc3RyZWFtIGNvbW1pdCAzY2ExYTQy YTUyY2E0YjRmMDIwNjE2ODM4NTE2OTJhZDY1ZmVmYWM4IF0KCklmIHNrYl9wdXRfcGFkdG8oKSBy ZXR1cm5zIGFuIGVycm9yLCBza2IgaGFzIGJlZW4gZnJlZWQuCkJldHRlciBub3QgdG91Y2ggaXQg YW55bW9yZSwgYXMgcmVwb3J0ZWQgYnkgc3l6Ym90IFsxXQoKTm90ZSB0byBxcnRyIG1haW50YWlu ZXJzIDogdGhpcyBzdWdnZXN0cyBxcnRyX3NlbmRtc2coKQpzaG91bGQgYWRqdXN0IHNvY2tfYWxs b2Nfc2VuZF9za2IoKSBzZWNvbmQgcGFyYW1ldGVyCnRvIGFjY291bnQgZm9yIHRoZSBwb3RlbnRp YWwgYWRkZWQgYWxpZ25tZW50IHRvIGF2b2lkCnJlYWxsb2NhdGlvbi4KClsxXQoKQlVHOiBLQVNB TjogdXNlLWFmdGVyLWZyZWUgaW4gX19za2JfaW5zZXJ0IGluY2x1ZGUvbGludXgvc2tidWZmLmg6 MTkwNyBbaW5saW5lXQpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBfX3NrYl9xdWV1ZV9i ZWZvcmUgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDE2IFtpbmxpbmVdCkJVRzogS0FTQU46IHVz ZS1hZnRlci1mcmVlIGluIF9fc2tiX3F1ZXVlX3RhaWwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoy MDQ5IFtpbmxpbmVdCkJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIHNrYl9xdWV1ZV90YWls KzB4NmIvMHgxMjAgbmV0L2NvcmUvc2tidWZmLmM6MzE0NgpXcml0ZSBvZiBzaXplIDggYXQgYWRk ciBmZmZmODg4MDRkOGFiM2MwIGJ5IHRhc2sgc3l6LWV4ZWN1dG9yLjQvNDMxNgoKQ1BVOiAxIFBJ RDogNDMxNiBDb21tOiBzeXotZXhlY3V0b3IuNCBOb3QgdGFpbnRlZCA1LjkuMC1yYzQtc3l6a2Fs bGVyICMwCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xl IENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1 bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQogZHVtcF9zdGFjaysweDFkNi8w eDI5ZSBsaWIvZHVtcF9zdGFjay5jOjExOAogcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisweDY2 LzB4NjIwIG1tL2thc2FuL3JlcG9ydC5jOjM4MwogX19rYXNhbl9yZXBvcnQgbW0va2FzYW4vcmVw b3J0LmM6NTEzIFtpbmxpbmVdCiBrYXNhbl9yZXBvcnQrMHgxMzIvMHgxZDAgbW0va2FzYW4vcmVw b3J0LmM6NTMwCiBfX3NrYl9pbnNlcnQgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoxOTA3IFtpbmxp bmVdCiBfX3NrYl9xdWV1ZV9iZWZvcmUgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDE2IFtpbmxp bmVdCiBfX3NrYl9xdWV1ZV90YWlsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA0OSBbaW5saW5l XQogc2tiX3F1ZXVlX3RhaWwrMHg2Yi8weDEyMCBuZXQvY29yZS9za2J1ZmYuYzozMTQ2CiBxcnRy X3R1bl9zZW5kKzB4MWEvMHg0MCBuZXQvcXJ0ci90dW4uYzoyMwogcXJ0cl9ub2RlX2VucXVldWUr MHg0NGYvMHhjMDAgbmV0L3FydHIvcXJ0ci5jOjM2NAogcXJ0cl9iY2FzdF9lbnF1ZXVlKzB4YmUv MHgxNDAgbmV0L3FydHIvcXJ0ci5jOjg2MQogcXJ0cl9zZW5kbXNnKzB4NjgwLzB4OWMwIG5ldC9x cnRyL3FydHIuYzo5NjAKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6NjUxIFtpbmxp bmVdCiBzb2NrX3NlbmRtc2cgbmV0L3NvY2tldC5jOjY3MSBbaW5saW5lXQogc29ja193cml0ZV9p dGVyKzB4MzE3LzB4NDcwIG5ldC9zb2NrZXQuYzo5OTgKIGNhbGxfd3JpdGVfaXRlciBpbmNsdWRl L2xpbnV4L2ZzLmg6MTg4MiBbaW5saW5lXQogbmV3X3N5bmNfd3JpdGUgZnMvcmVhZF93cml0ZS5j OjUwMyBbaW5saW5lXQogdmZzX3dyaXRlKzB4YTk2LzB4ZDEwIGZzL3JlYWRfd3JpdGUuYzo1NzgK IGtzeXNfd3JpdGUrMHgxMWIvMHgyMjAgZnMvcmVhZF93cml0ZS5jOjYzMQogZG9fc3lzY2FsbF82 NCsweDMxLzB4NzAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6NDYKIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKUklQOiAwMDMzOjB4NDVkNWI5CkNvZGU6IDVkIGI0IGZi IGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDY2IDkwIDQ4IDg5IGY4IDQ4IDg5 IGY3IDQ4IDg5IGQ2IDQ4IDg5IGNhIDRkIDg5IGMyIDRkIDg5IGM4IDRjIDhiIDRjIDI0IDA4IDBm IDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgMGYgODMgMmIgYjQgZmIgZmYgYzMgNjYgMmUgMGYgMWYg ODQgMDAgMDAgMDAgMDAKUlNQOiAwMDJiOjAwMDA3Zjg0YjViODFjNzggRUZMQUdTOiAwMDAwMDI0 NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAwMQpSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAw MDAwMDAwMDAwMDM4YjQwIFJDWDogMDAwMDAwMDAwMDQ1ZDViOQpSRFg6IDAwMDAwMDAwMDAwMDAw NTUgUlNJOiAwMDAwMDAwMDIwMDAxMjQwIFJESTogMDAwMDAwMDAwMDAwMDAwMwpSQlA6IDAwMDA3 Zjg0YjViODFjYTAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApS MTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAw MDAwMDAwZgpSMTM6IDAwMDA3ZmZjYmJmODZkYWYgUjE0OiAwMDAwN2Y4NGI1YjgyOWMwIFIxNTog MDAwMDAwMDAwMTE4Y2Y0YwoKQWxsb2NhdGVkIGJ5IHRhc2sgNDMxNjoKIGthc2FuX3NhdmVfc3Rh Y2sgbW0va2FzYW4vY29tbW9uLmM6NDggW2lubGluZV0KIGthc2FuX3NldF90cmFjayBtbS9rYXNh bi9jb21tb24uYzo1NiBbaW5saW5lXQogX19rYXNhbl9rbWFsbG9jKzB4MTAwLzB4MTMwIG1tL2th c2FuL2NvbW1vbi5jOjQ2MQogc2xhYl9wb3N0X2FsbG9jX2hvb2srMHgzZS8weDI5MCBtbS9zbGFi Lmg6NTE4CiBzbGFiX2FsbG9jIG1tL3NsYWIuYzozMzEyIFtpbmxpbmVdCiBrbWVtX2NhY2hlX2Fs bG9jKzB4MWMxLzB4MmQwIG1tL3NsYWIuYzozNDgyCiBza2JfY2xvbmUrMHgxYjIvMHgzNzAgbmV0 L2NvcmUvc2tidWZmLmM6MTQ0OQogcXJ0cl9iY2FzdF9lbnF1ZXVlKzB4NmQvMHgxNDAgbmV0L3Fy dHIvcXJ0ci5jOjg1NwogcXJ0cl9zZW5kbXNnKzB4NjgwLzB4OWMwIG5ldC9xcnRyL3FydHIuYzo5 NjAKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6NjUxIFtpbmxpbmVdCiBzb2NrX3Nl bmRtc2cgbmV0L3NvY2tldC5jOjY3MSBbaW5saW5lXQogc29ja193cml0ZV9pdGVyKzB4MzE3LzB4 NDcwIG5ldC9zb2NrZXQuYzo5OTgKIGNhbGxfd3JpdGVfaXRlciBpbmNsdWRlL2xpbnV4L2ZzLmg6 MTg4MiBbaW5saW5lXQogbmV3X3N5bmNfd3JpdGUgZnMvcmVhZF93cml0ZS5jOjUwMyBbaW5saW5l XQogdmZzX3dyaXRlKzB4YTk2LzB4ZDEwIGZzL3JlYWRfd3JpdGUuYzo1NzgKIGtzeXNfd3JpdGUr MHgxMWIvMHgyMjAgZnMvcmVhZF93cml0ZS5jOjYzMQogZG9fc3lzY2FsbF82NCsweDMxLzB4NzAg YXJjaC94ODYvZW50cnkvY29tbW9uLmM6NDYKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFt ZSsweDQ0LzB4YTkKCkZyZWVkIGJ5IHRhc2sgNDMxNjoKIGthc2FuX3NhdmVfc3RhY2sgbW0va2Fz YW4vY29tbW9uLmM6NDggW2lubGluZV0KIGthc2FuX3NldF90cmFjaysweDNkLzB4NzAgbW0va2Fz YW4vY29tbW9uLmM6NTYKIGthc2FuX3NldF9mcmVlX2luZm8rMHgxNy8weDMwIG1tL2thc2FuL2dl bmVyaWMuYzozNTUKIF9fa2FzYW5fc2xhYl9mcmVlKzB4ZGQvMHgxMTAgbW0va2FzYW4vY29tbW9u LmM6NDIyCiBfX2NhY2hlX2ZyZWUgbW0vc2xhYi5jOjM0MTggW2lubGluZV0KIGttZW1fY2FjaGVf ZnJlZSsweDgyLzB4ZjAgbW0vc2xhYi5jOjM2OTMKIF9fc2tiX3BhZCsweDNmNS8weDVhMCBuZXQv Y29yZS9za2J1ZmYuYzoxODIzCiBfX3NrYl9wdXRfcGFkdG8gaW5jbHVkZS9saW51eC9za2J1ZmYu aDozMjMzIFtpbmxpbmVdCiBza2JfcHV0X3BhZHRvIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MzI1 MiBbaW5saW5lXQogcXJ0cl9ub2RlX2VucXVldWUrMHg2MmYvMHhjMDAgbmV0L3FydHIvcXJ0ci5j OjM2MAogcXJ0cl9iY2FzdF9lbnF1ZXVlKzB4YmUvMHgxNDAgbmV0L3FydHIvcXJ0ci5jOjg2MQog cXJ0cl9zZW5kbXNnKzB4NjgwLzB4OWMwIG5ldC9xcnRyL3FydHIuYzo5NjAKIHNvY2tfc2VuZG1z Z19ub3NlYyBuZXQvc29ja2V0LmM6NjUxIFtpbmxpbmVdCiBzb2NrX3NlbmRtc2cgbmV0L3NvY2tl dC5jOjY3MSBbaW5saW5lXQogc29ja193cml0ZV9pdGVyKzB4MzE3LzB4NDcwIG5ldC9zb2NrZXQu Yzo5OTgKIGNhbGxfd3JpdGVfaXRlciBpbmNsdWRlL2xpbnV4L2ZzLmg6MTg4MiBbaW5saW5lXQog bmV3X3N5bmNfd3JpdGUgZnMvcmVhZF93cml0ZS5jOjUwMyBbaW5saW5lXQogdmZzX3dyaXRlKzB4 YTk2LzB4ZDEwIGZzL3JlYWRfd3JpdGUuYzo1NzgKIGtzeXNfd3JpdGUrMHgxMWIvMHgyMjAgZnMv cmVhZF93cml0ZS5jOjYzMQogZG9fc3lzY2FsbF82NCsweDMxLzB4NzAgYXJjaC94ODYvZW50cnkv Y29tbW9uLmM6NDYKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKClRo ZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIG9iamVjdCBhdCBmZmZmODg4MDRkOGFiM2Mw CiB3aGljaCBiZWxvbmdzIHRvIHRoZSBjYWNoZSBza2J1ZmZfaGVhZF9jYWNoZSBvZiBzaXplIDIy NApUaGUgYnVnZ3kgYWRkcmVzcyBpcyBsb2NhdGVkIDAgYnl0ZXMgaW5zaWRlIG9mCiAyMjQtYnl0 ZSByZWdpb24gW2ZmZmY4ODgwNGQ4YWIzYzAsIGZmZmY4ODgwNGQ4YWI0YTApClRoZSBidWdneSBh ZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBhZ2U6CnBhZ2U6MDAwMDAwMDBlYThjY2NmYiByZWZjb3Vu dDoxIG1hcGNvdW50OjAgbWFwcGluZzowMDAwMDAwMDAwMDAwMDAwIGluZGV4OjB4ZmZmZjg4ODA0 ZDhhYmI0MCBwZm46MHg0ZDhhYgpmbGFnczogMHhmZmZlMDAwMDAwMDIwMChzbGFiKQpyYXc6IDAw ZmZmZTAwMDAwMDAyMDAgZmZmZmVhMDAwMjIzN2VjOCBmZmZmZWEwMDAyOWIzMzg4IGZmZmY4ODgy MWJiNjY4MDAKcmF3OiBmZmZmODg4MDRkOGFiYjQwIGZmZmY4ODgwNGQ4YWIwMDAgMDAwMDAwMDEw MDAwMDAwYiAwMDAwMDAwMDAwMDAwMDAwCnBhZ2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBiYWQg YWNjZXNzIGRldGVjdGVkCgpGaXhlczogY2U1Nzc4NWJmOTFiICgibmV0OiBxcnRyOiBmaXggbGVu IG9mIHNrYl9wdXRfcGFkdG8gaW4gcXJ0cl9ub2RlX2VucXVldWUiKQpTaWduZWQtb2ZmLWJ5OiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5 emthbGxlckBnb29nbGVncm91cHMuY29tPgpDYzogQ2FybCBIdWFuZyA8Y2podWFuZ0Bjb2RlYXVy b3JhLm9yZz4KQ2M6IFdlbiBHb25nIDx3Z29uZ0Bjb2RlYXVyb3JhLm9yZz4KQ2M6IEJqb3JuIEFu ZGVyc3NvbiA8Ympvcm4uYW5kZXJzc29uQGxpbmFyby5vcmc+CkNjOiBNYW5pdmFubmFuIFNhZGhh c2l2YW0gPG1hbml2YW5uYW4uc2FkaGFzaXZhbUBsaW5hcm8ub3JnPgpBY2tlZC1ieTogTWFuaXZh bm5hbiBTYWRoYXNpdmFtIDxtYW5pdmFubmFuLnNhZGhhc2l2YW1AbGluYXJvLm9yZz4KUmV2aWV3 ZWQtYnk6IEJqb3JuIEFuZGVyc3NvbiA8Ympvcm4uYW5kZXJzc29uQGxpbmFyby5vcmc+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv cXJ0ci9xcnRyLmMgfCAyMCArKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEx IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3FydHIvcXJ0 ci5jIGIvbmV0L3FydHIvcXJ0ci5jCmluZGV4IGE2OTllMzE4YjlhMC4uZDZkMjczNmVjOTI3IDEw MDY0NAotLS0gYS9uZXQvcXJ0ci9xcnRyLmMKKysrIGIvbmV0L3FydHIvcXJ0ci5jCkBAIC0xNzgs NyArMTc4LDcgQEAgc3RhdGljIGludCBxcnRyX25vZGVfZW5xdWV1ZShzdHJ1Y3QgcXJ0cl9ub2Rl ICpub2RlLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogewogCXN0cnVjdCBxcnRyX2hkcl92MSAqaGRy OwogCXNpemVfdCBsZW4gPSBza2ItPmxlbjsKLQlpbnQgcmMgPSAtRU5PREVWOworCWludCByYzsK IAogCWhkciA9IHNrYl9wdXNoKHNrYiwgc2l6ZW9mKCpoZHIpKTsKIAloZHItPnZlcnNpb24gPSBj cHVfdG9fbGUzMihRUlRSX1BST1RPX1ZFUl8xKTsKQEAgLTE5NiwxNSArMTk2LDE3IEBAIHN0YXRp YyBpbnQgcXJ0cl9ub2RlX2VucXVldWUoc3RydWN0IHFydHJfbm9kZSAqbm9kZSwgc3RydWN0IHNr X2J1ZmYgKnNrYiwKIAloZHItPnNpemUgPSBjcHVfdG9fbGUzMihsZW4pOwogCWhkci0+Y29uZmly bV9yeCA9IDA7CiAKLQlza2JfcHV0X3BhZHRvKHNrYiwgQUxJR04obGVuLCA0KSArIHNpemVvZigq aGRyKSk7Ci0KLQltdXRleF9sb2NrKCZub2RlLT5lcF9sb2NrKTsKLQlpZiAobm9kZS0+ZXApCi0J CXJjID0gbm9kZS0+ZXAtPnhtaXQobm9kZS0+ZXAsIHNrYik7Ci0JZWxzZQotCQlrZnJlZV9za2Io c2tiKTsKLQltdXRleF91bmxvY2soJm5vZGUtPmVwX2xvY2spOworCXJjID0gc2tiX3B1dF9wYWR0 byhza2IsIEFMSUdOKGxlbiwgNCkgKyBzaXplb2YoKmhkcikpOwogCisJaWYgKCFyYykgeworCQlt dXRleF9sb2NrKCZub2RlLT5lcF9sb2NrKTsKKwkJcmMgPSAtRU5PREVWOworCQlpZiAobm9kZS0+ ZXApCisJCQlyYyA9IG5vZGUtPmVwLT54bWl0KG5vZGUtPmVwLCBza2IpOworCQllbHNlCisJCQlr ZnJlZV9za2Ioc2tiKTsKKwkJbXV0ZXhfdW5sb2NrKCZub2RlLT5lcF9sb2NrKTsKKwl9CiAJcmV0 dXJuIHJjOwogfQogCi0tIAoyLjI2LjIKCgpGcm9tIGFlN2EzNzNmZDQ5NzFkYjJlNmU0NWJjNWEx OTg4NDhiM2I3ZDE2NTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCA5IFNlcCAyMDIwIDAxOjI3OjQwIC0w NzAwClN1YmplY3Q6IFtQQVRDSCAzNi8zNl0gbmV0OiBhZGQgX19tdXN0X2NoZWNrIHRvIHNrYl9w dXRfcGFkdG8oKQoKWyBVcHN0cmVhbSBjb21taXQgNGEwMDljYjA0YWVjYTBkZTYwYjczZjM3YjEw MjU3MzM1NDIxNGI1MiBdCgpza2JfcHV0X3BhZHRvKCkgYW5kIF9fc2tiX3B1dF9wYWR0bygpIGNh bGxlcnMKbXVzdCBjaGVjayByZXR1cm4gdmFsdWVzIG9yIHJpc2sgdXNlLWFmdGVyLWZyZWUuCgpT aWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRl L2xpbnV4L3NrYnVmZi5oIHwgNyArKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2tidWZmLmgg Yi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCmluZGV4IDk1NWUxMzcwZjAzMy4uYTYyODg5YzhiZWQ3 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCisrKyBiL2luY2x1ZGUvbGludXgv c2tidWZmLmgKQEAgLTMxODUsOCArMzE4NSw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IHNrYl9wYWR0 byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgbGVuKQogICoJaXMgdW50b3VjaGVk LiBPdGhlcndpc2UgaXQgaXMgZXh0ZW5kZWQuIFJldHVybnMgemVybyBvbgogICoJc3VjY2Vzcy4g VGhlIHNrYiBpcyBmcmVlZCBvbiBlcnJvciBpZiBAZnJlZV9vbl9lcnJvciBpcyB0cnVlLgogICov Ci1zdGF0aWMgaW5saW5lIGludCBfX3NrYl9wdXRfcGFkdG8oc3RydWN0IHNrX2J1ZmYgKnNrYiwg dW5zaWduZWQgaW50IGxlbiwKLQkJCQkgIGJvb2wgZnJlZV9vbl9lcnJvcikKK3N0YXRpYyBpbmxp bmUgaW50IF9fbXVzdF9jaGVjayBfX3NrYl9wdXRfcGFkdG8oc3RydWN0IHNrX2J1ZmYgKnNrYiwK KwkJCQkJICAgICAgIHVuc2lnbmVkIGludCBsZW4sCisJCQkJCSAgICAgICBib29sIGZyZWVfb25f ZXJyb3IpCiB7CiAJdW5zaWduZWQgaW50IHNpemUgPSBza2ItPmxlbjsKIApAQCAtMzIwOSw3ICsz MjEwLDcgQEAgc3RhdGljIGlubGluZSBpbnQgX19za2JfcHV0X3BhZHRvKHN0cnVjdCBza19idWZm ICpza2IsIHVuc2lnbmVkIGludCBsZW4sCiAgKglpcyB1bnRvdWNoZWQuIE90aGVyd2lzZSBpdCBp cyBleHRlbmRlZC4gUmV0dXJucyB6ZXJvIG9uCiAgKglzdWNjZXNzLiBUaGUgc2tiIGlzIGZyZWVk IG9uIGVycm9yLgogICovCi1zdGF0aWMgaW5saW5lIGludCBza2JfcHV0X3BhZHRvKHN0cnVjdCBz a19idWZmICpza2IsIHVuc2lnbmVkIGludCBsZW4pCitzdGF0aWMgaW5saW5lIGludCBfX211c3Rf Y2hlY2sgc2tiX3B1dF9wYWR0byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgbGVu KQogewogCXJldHVybiBfX3NrYl9wdXRfcGFkdG8oc2tiLCBsZW4sIHRydWUpOwogfQotLSAKMi4y Ni4yCgo= ----Next_Part(Thu_Sep_24_14_40_01_2020_771)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_58.mbox" RnJvbSA3NjliOTRmZmZhYjljMjhkNTZmMTlmYmU0YWZlNTg1M2Q0ZGMwNTQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCAzIFNlcCAyMDIwIDE5OjEwOjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMS81 NF0gYWN0X2lmZTogbG9hZCBtZXRhIG1vZHVsZXMgYmVmb3JlIHRjZl9pZHJfY2hlY2tfYWxsb2Mo KQoKWyBVcHN0cmVhbSBjb21taXQgY2M4ZTU4ZjgzMjVjZGYxNGI5NTE2YjYxYzM4NGNkZmQwMmE0 ZjQwOCBdCgpUaGUgZm9sbG93aW5nIGRlYWRsb2NrIHNjZW5hcmlvIGlzIHRyaWdnZXJlZCBieSBz eXpib3Q6CgpUaHJlYWQgQToJCQkJVGhyZWFkIEI6CnRjZl9pZHJfY2hlY2tfYWxsb2MoKQouLi4K cG9wdWxhdGVfbWV0YWxpc3QoKQogIHJ0bmxfdW5sb2NrKCkKCQkJCQlydG5sX2xvY2soKQoJCQkJ CS4uLgogIHJlcXVlc3RfbW9kdWxlKCkJCQl0Y2ZfaWRyX2NoZWNrX2FsbG9jKCkKICBydG5sX2xv Y2soKQoKQXQgdGhpcyBwb2ludCwgdGhyZWFkIEEgaXMgd2FpdGluZyBmb3IgdGhyZWFkIEIgdG8g cmVsZWFzZSBSVE5MCmxvY2ssIHdoaWxlIHRocmVhZCBCIGlzIHdhaXRpbmcgZm9yIHRocmVhZCBB IHRvIGNvbW1pdCB0aGUgSURSCmNoYW5nZSB3aXRoIHRjZl9pZHJfaW5zZXJ0KCkgbGF0ZXIuCgpC cmVhayB0aGlzIGRlYWRsb2NrIHNpdHVhdGlvbiBieSBwcmVsb2FkaW5nIGlmZSBtb2R1bGVzIGVh cmxpZXIsCmJlZm9yZSB0Y2ZfaWRyX2NoZWNrX2FsbG9jKCksIHRoaXMgaXMgZmluZSBiZWNhdXNl IHdlIG9ubHkgbmVlZAp0byBsb2FkIG1vZHVsZXMgd2UgbmVlZCBwb3RlbnRpYWxseS4KClJlcG9y dGVkLWFuZC10ZXN0ZWQtYnk6IHN5emJvdCs4MGUzMmI1ZDFmOTkyM2Y4YWNlNkBzeXprYWxsZXIu YXBwc3BvdG1haWwuY29tCkZpeGVzOiAwMTkwYzFkNDUyYTkgKCJuZXQ6IHNjaGVkOiBhdG9taWNh bGx5IGNoZWNrLWFsbG9jYXRlIGFjdGlvbiIpCkNjOiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9q YXRhdHUuY29tPgpDYzogVmxhZCBCdXNsb3YgPHZsYWRidUBtZWxsYW5veC5jb20+CkNjOiBKaXJp IFBpcmtvIDxqaXJpQHJlc251bGxpLnVzPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91 Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFA a2VybmVsLm9yZz4KLS0tCiBuZXQvc2NoZWQvYWN0X2lmZS5jIHwgNDQgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRp b25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X2lmZS5j IGIvbmV0L3NjaGVkL2FjdF9pZmUuYwppbmRleCBjMWZjZDg1NzE5ZDYuLjVjNTY4NzU3NjQzYiAx MDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9pZmUuYworKysgYi9uZXQvc2NoZWQvYWN0X2lmZS5j CkBAIC00MzYsNiArNDM2LDI1IEBAIHN0YXRpYyB2b2lkIHRjZl9pZmVfY2xlYW51cChzdHJ1Y3Qg dGNfYWN0aW9uICphKQogCQlrZnJlZV9yY3UocCwgcmN1KTsKIH0KIAorc3RhdGljIGludCBsb2Fk X21ldGFsaXN0KHN0cnVjdCBubGF0dHIgKip0YiwgYm9vbCBydG5sX2hlbGQpCit7CisJaW50IGk7 CisKKwlmb3IgKGkgPSAxOyBpIDwgbWF4X21ldGFjbnQ7IGkrKykgeworCQlpZiAodGJbaV0pIHsK KwkJCXZvaWQgKnZhbCA9IG5sYV9kYXRhKHRiW2ldKTsKKwkJCWludCBsZW4gPSBubGFfbGVuKHRi W2ldKTsKKwkJCWludCByYzsKKworCQkJcmMgPSBsb2FkX21ldGFvcHNfYW5kX3ZldChpLCB2YWws IGxlbiwgcnRubF9oZWxkKTsKKwkJCWlmIChyYyAhPSAwKQorCQkJCXJldHVybiByYzsKKwkJfQor CX0KKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHBvcHVsYXRlX21ldGFsaXN0KHN0cnVj dCB0Y2ZfaWZlX2luZm8gKmlmZSwgc3RydWN0IG5sYXR0ciAqKnRiLAogCQkJICAgICBib29sIGV4 aXN0cywgYm9vbCBydG5sX2hlbGQpCiB7CkBAIC00NDksMTAgKzQ2OCw2IEBAIHN0YXRpYyBpbnQg cG9wdWxhdGVfbWV0YWxpc3Qoc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLCBzdHJ1Y3QgbmxhdHRy ICoqdGIsCiAJCQl2YWwgPSBubGFfZGF0YSh0YltpXSk7CiAJCQlsZW4gPSBubGFfbGVuKHRiW2ld KTsKIAotCQkJcmMgPSBsb2FkX21ldGFvcHNfYW5kX3ZldChpLCB2YWwsIGxlbiwgcnRubF9oZWxk KTsKLQkJCWlmIChyYyAhPSAwKQotCQkJCXJldHVybiByYzsKLQogCQkJcmMgPSBhZGRfbWV0YWlu Zm8oaWZlLCBpLCB2YWwsIGxlbiwgZXhpc3RzKTsKIAkJCWlmIChyYykKIAkJCQlyZXR1cm4gcmM7 CkBAIC01MDksNiArNTI0LDIxIEBAIHN0YXRpYyBpbnQgdGNmX2lmZV9pbml0KHN0cnVjdCBuZXQg Km5ldCwgc3RydWN0IG5sYXR0ciAqbmxhLAogCWlmICghcCkKIAkJcmV0dXJuIC1FTk9NRU07CiAK KwlpZiAodGJbVENBX0lGRV9NRVRBTFNUXSkgeworCQllcnIgPSBubGFfcGFyc2VfbmVzdGVkX2Rl cHJlY2F0ZWQodGIyLCBJRkVfTUVUQV9NQVgsCisJCQkJCQkgIHRiW1RDQV9JRkVfTUVUQUxTVF0s IE5VTEwsCisJCQkJCQkgIE5VTEwpOworCQlpZiAoZXJyKSB7CisJCQlrZnJlZShwKTsKKwkJCXJl dHVybiBlcnI7CisJCX0KKwkJZXJyID0gbG9hZF9tZXRhbGlzdCh0YjIsIHJ0bmxfaGVsZCk7CisJ CWlmIChlcnIpIHsKKwkJCWtmcmVlKHApOworCQkJcmV0dXJuIGVycjsKKwkJfQorCX0KKwogCWlu ZGV4ID0gcGFybS0+aW5kZXg7CiAJZXJyID0gdGNmX2lkcl9jaGVja19hbGxvYyh0biwgJmluZGV4 LCBhLCBiaW5kKTsKIAlpZiAoZXJyIDwgMCkgewpAQCAtNTcwLDE1ICs2MDAsOSBAQCBzdGF0aWMg aW50IHRjZl9pZmVfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAl9 CiAKIAlpZiAodGJbVENBX0lGRV9NRVRBTFNUXSkgewotCQllcnIgPSBubGFfcGFyc2VfbmVzdGVk X2RlcHJlY2F0ZWQodGIyLCBJRkVfTUVUQV9NQVgsCi0JCQkJCQkgIHRiW1RDQV9JRkVfTUVUQUxT VF0sIE5VTEwsCi0JCQkJCQkgIE5VTEwpOwotCQlpZiAoZXJyKQotCQkJZ290byBtZXRhZGF0YV9w YXJzZV9lcnI7CiAJCWVyciA9IHBvcHVsYXRlX21ldGFsaXN0KGlmZSwgdGIyLCBleGlzdHMsIHJ0 bmxfaGVsZCk7CiAJCWlmIChlcnIpCiAJCQlnb3RvIG1ldGFkYXRhX3BhcnNlX2VycjsKLQogCX0g ZWxzZSB7CiAJCS8qIGlmIG5vIHBhc3NlZCBtZXRhZGF0YSBhbGxvdyBsaXN0IG9yIHBhc3NlZCBh bGxvdy1hbGwKIAkJICogdGhlbiBoZXJlIHdlIHByb2Nlc3MgYnkgYWRkaW5nIGFzIG1hbnkgc3Vw cG9ydGVkIG1ldGFkYXR1bQotLSAKMi4yNi4yCgoKRnJvbSBlMGJlMDdjN2Q3OTlhNjU0YjFmNDAw ODNkOTc5YmQ1Y2E4M2Y2ZWJjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWYXN1bmRo YXJhIFZvbGFtIDx2YXN1bmRoYXJhLXYudm9sYW1AYnJvYWRjb20uY29tPgpEYXRlOiBTYXQsIDUg U2VwIDIwMjAgMjI6NTU6MzYgLTA0MDAKU3ViamVjdDogW1BBVENIIDAyLzU0XSBibnh0X2VuOiBB dm9pZCBzZW5kaW5nIGZpcm13YXJlIG1lc3NhZ2VzIHdoZW4gQUVSIGVycm9yCiBpcyBkZXRlY3Rl ZC4KClsgVXBzdHJlYW0gY29tbWl0IGIzNDBkYzY4MGVkNDhkY2MwNWI1NmUxZWJlMWI5NTM1ODEz YzNlZTAgXQoKV2hlbiB0aGUgZHJpdmVyIGdvZXMgdGhyb3VnaCBQQ0llIEFFUiByZXNldCBpbiBl cnJvciBzdGF0ZSwgYWxsCmZpcm13YXJlIG1lc3NhZ2VzIHdpbGwgdGltZW91dCBiZWNhdXNlIHRo ZSBQQ0llIGJ1cyBpcyBubyBsb25nZXIKYWNjZXNzaWJsZS4gIFRoaXMgY2FuIGxlYWQgdG8gQUVS IHJlc2V0IHRha2luZyBtYW55IG1pbnV0ZXMgdG8KY29tcGxldGUgYXMgZWFjaCBmaXJtd2FyZSBj b21tYW5kIHRha2VzIHRpbWUgdG8gdGltZW91dC4KCkRlZmluZSBhIG5ldyBtYWNybyBCTlhUX05P X0ZXX0FDQ0VTUygpIHRvIHNraXAgdGhlc2UgZmlybXdhcmUgbWVzc2FnZXMKd2hlbiBlaXRoZXIg ZmlybXdhcmUgaXMgaW4gZmF0YWwgZXJyb3Igc3RhdGUgb3Igd2hlbgpwY2lfY2hhbm5lbF9vZmZs aW5lKCkgaXMgdHJ1ZS4gIEl0IG5vdyB0YWtlcyBhIG1vcmUgcmVhc29uYWJsZSAyMCB0bwozMCBz ZWNvbmRzIHRvIGNvbXBsZXRlIEFFUiByZWNvdmVyeS4KCkZpeGVzOiBiNGZmZjIwNzlkMTAgKCJi bnh0X2VuOiBEbyBub3Qgc2VuZCBmaXJtd2FyZSBtZXNzYWdlcyBpZiBmaXJtd2FyZSBpcyBpbiBl cnJvciBzdGF0ZS4iKQpTaWduZWQtb2ZmLWJ5OiBWYXN1bmRoYXJhIFZvbGFtIDx2YXN1bmRoYXJh LXYudm9sYW1AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hh ZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJh QGtlcm5lbC5vcmc+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0 LmMgfCA2ICsrKy0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0Lmgg fCA0ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKaW5kZXggY2Q1Yzdh MTQxMmM2Li41OGY4ZjA1ZDRhNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2JueHQvYm54dC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2Ju eHQvYm54dC5jCkBAIC00MTk4LDcgKzQxOTgsNyBAQCBzdGF0aWMgaW50IGJueHRfaHdybV9kb19z ZW5kX21zZyhzdHJ1Y3QgYm54dCAqYnAsIHZvaWQgKm1zZywgdTMyIG1zZ19sZW4sCiAJdTMyIGJh cl9vZmZzZXQgPSBCTlhUX0dSQ1BGX1JFR19DSElNUF9DT01NOwogCXUxNiBkc3QgPSBCTlhUX0hX Uk1fQ0hOTF9DSElNUDsKIAotCWlmICh0ZXN0X2JpdChCTlhUX1NUQVRFX0ZXX0ZBVEFMX0NPTkQs ICZicC0+c3RhdGUpKQorCWlmIChCTlhUX05PX0ZXX0FDQ0VTUyhicCkpCiAJCXJldHVybiAtRUJV U1k7CiAKIAlpZiAobXNnX2xlbiA+IEJOWFRfSFdSTV9NQVhfUkVRX0xFTikgewpAQCAtNTUzMCw3 ICs1NTMwLDcgQEAgc3RhdGljIGludCBod3JtX3JpbmdfZnJlZV9zZW5kX21zZyhzdHJ1Y3QgYm54 dCAqYnAsCiAJc3RydWN0IGh3cm1fcmluZ19mcmVlX291dHB1dCAqcmVzcCA9IGJwLT5od3JtX2Nt ZF9yZXNwX2FkZHI7CiAJdTE2IGVycm9yX2NvZGU7CiAKLQlpZiAodGVzdF9iaXQoQk5YVF9TVEFU RV9GV19GQVRBTF9DT05ELCAmYnAtPnN0YXRlKSkKKwlpZiAoQk5YVF9OT19GV19BQ0NFU1MoYnAp KQogCQlyZXR1cm4gMDsKIAogCWJueHRfaHdybV9jbWRfaGRyX2luaXQoYnAsICZyZXEsIEhXUk1f UklOR19GUkVFLCBjbXBsX3JpbmdfaWQsIC0xKTsKQEAgLTc1MDIsNyArNzUwMiw3IEBAIHN0YXRp YyBpbnQgYm54dF9zZXRfdHBhKHN0cnVjdCBibnh0ICpicCwgYm9vbCBzZXRfdHBhKQogCiAJaWYg KHNldF90cGEpCiAJCXRwYV9mbGFncyA9IGJwLT5mbGFncyAmIEJOWFRfRkxBR19UUEE7Ci0JZWxz ZSBpZiAodGVzdF9iaXQoQk5YVF9TVEFURV9GV19GQVRBTF9DT05ELCAmYnAtPnN0YXRlKSkKKwll bHNlIGlmIChCTlhUX05PX0ZXX0FDQ0VTUyhicCkpCiAJCXJldHVybiAwOwogCWZvciAoaSA9IDA7 IGkgPCBicC0+bnJfdm5pY3M7IGkrKykgewogCQlyYyA9IGJueHRfaHdybV92bmljX3NldF90cGEo YnAsIGksIHRwYV9mbGFncyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibnh0L2JueHQuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54 dC5oCmluZGV4IDc4ZTJmZDYzYWMzZC4uNDQwYjQzYzgwNjhmIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuaAorKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9ibnh0L2JueHQuaApAQCAtMTY3Myw2ICsxNjczLDEwIEBAIHN0cnVjdCBi bnh0IHsKICNkZWZpbmUgQk5YVF9TVEFURV9GV19GQVRBTF9DT05ECTYKICNkZWZpbmUgQk5YVF9T VEFURV9EUlZfUkVHSVNURVJFRAk3CiAKKyNkZWZpbmUgQk5YVF9OT19GV19BQ0NFU1MoYnApCQkJ CQlcCisJKHRlc3RfYml0KEJOWFRfU1RBVEVfRldfRkFUQUxfQ09ORCwgJihicCktPnN0YXRlKSB8 fAlcCisJIHBjaV9jaGFubmVsX29mZmxpbmUoKGJwKS0+cGRldikpCisKIAlzdHJ1Y3QgYm54dF9p cnEJKmlycV90Ymw7CiAJaW50CQkJdG90YWxfaXJxczsKIAl1OAkJCW1hY19hZGRyW0VUSF9BTEVO XTsKLS0gCjIuMjYuMgoKCkZyb20gYzNlOWRhYzNmODVhNGUzZGRjODkzZTQ3OGY4Y2MxYTQ1NDI5 NWNiYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmFzdW5kaGFyYSBWb2xhbSA8dmFz dW5kaGFyYS12LnZvbGFtQGJyb2FkY29tLmNvbT4KRGF0ZTogU2F0LCA1IFNlcCAyMDIwIDIyOjU1 OjM3IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwMy81NF0gYm54dF9lbjogRml4IE5VTEwgcHRyIGRl cmVmZXJlbmNlIGNyYXNoIGluCiBibnh0X2Z3X3Jlc2V0X3Rhc2soKQoKWyBVcHN0cmVhbSBjb21t aXQgYjE2OTM5YjU5Y2MwMDIzMWE3NWQyMjRmZDA1OGQyMmM5ZDA2NDk3NiBdCgpibnh0X2Z3X3Jl c2V0X3Rhc2soKSB3aGljaCBydW5zIGZyb20gYSB3b3JrcXVldWUgY2FuIHJhY2Ugd2l0aApibnh0 X3JlbW92ZV9vbmUoKS4gIEZvciBleGFtcGxlLCBpZiBmaXJtd2FyZSByZXNldCBhbmQgVkYgRkxS IGFyZQpoYXBwZW5pbmcgYXQgYWJvdXQgdGhlIHNhbWUgdGltZS4KCmJueHRfcmVtb3ZlX29uZSgp IGFscmVhZHkgY2FuY2VscyB0aGUgd29ya3F1ZXVlIGFuZCB3YWl0cyBmb3IgaXQKdG8gZmluaXNo LCBidXQgd2UgbmVlZCB0byBkbyB0aGlzIGVhcmxpZXIgYmVmb3JlIHRoZSBkZXZsaW5rCnJlcG9y dGVycyBhcmUgZGVzdHJveWVkLiAgVGhpcyB3aWxsIGd1YXJhbnRlZSB0aGF0CnRoZSBkZXZsaW5r IHJlcG9ydGVycyB3aWxsIGFsd2F5cyBiZSB2YWxpZCB3aGVuIGJueHRfZndfcmVzZXRfdGFzaygp CmlzIHN0aWxsIHJ1bm5pbmcuCgpGaXhlczogYjE0OGJiMjM4YzAyICgiYm54dF9lbjogRml4IHBv c3NpYmxlIGNyYXNoIGluIGJueHRfZndfcmVzZXRfdGFzaygpLiIpClJldmlld2VkLWJ5OiBFZHdp biBQZWVyIDxlZHdpbi5wZWVyQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogVmFzdW5kaGFy YSBWb2xhbSA8dmFzdW5kaGFyYS12LnZvbGFtQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTog TWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBK YWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2JueHQvYm54dC5jIHwgNyArKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JueHQvYm54dC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20v Ym54dC9ibnh0LmMKaW5kZXggNThmOGYwNWQ0YTY2Li4zNjEyMDM5ZTc0MzkgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCkBAIC0xMTQ5OCw2ICsxMTQ5OCwxMCBA QCBzdGF0aWMgdm9pZCBibnh0X3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJaWYg KEJOWFRfUEYoYnApKQogCQlibnh0X3NyaW92X2Rpc2FibGUoYnApOwogCisJY2xlYXJfYml0KEJO WFRfU1RBVEVfSU5fRldfUkVTRVQsICZicC0+c3RhdGUpOworCWJueHRfY2FuY2VsX3NwX3dvcmso YnApOworCWJwLT5zcF9ldmVudCA9IDA7CisKIAlibnh0X2RsX2Z3X3JlcG9ydGVyc19kZXN0cm95 KGJwLCB0cnVlKTsKIAlpZiAoQk5YVF9QRihicCkpCiAJCWRldmxpbmtfcG9ydF90eXBlX2NsZWFy KCZicC0+ZGxfcG9ydCk7CkBAIC0xMTUwNSw5ICsxMTUwOSw2IEBAIHN0YXRpYyB2b2lkIGJueHRf cmVtb3ZlX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAl1bnJlZ2lzdGVyX25ldGRldihkZXYp OwogCWJueHRfZGxfdW5yZWdpc3RlcihicCk7CiAJYm54dF9zaHV0ZG93bl90YyhicCk7Ci0JY2xl YXJfYml0KEJOWFRfU1RBVEVfSU5fRldfUkVTRVQsICZicC0+c3RhdGUpOwotCWJueHRfY2FuY2Vs X3NwX3dvcmsoYnApOwotCWJwLT5zcF9ldmVudCA9IDA7CiAKIAlibnh0X2NsZWFyX2ludF9tb2Rl KGJwKTsKIAlibnh0X2h3cm1fZnVuY19kcnZfdW5yZ3RyKGJwKTsKLS0gCjIuMjYuMgoKCkZyb20g MTYzNDU4YzBhZGI3YmU2MjQwODY5MDU3MTE3ZWRkM2Y0MGJiM2UwMSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogUmFqdSBSYW5nb2p1IDxyYWp1ckBjaGVsc2lvLmNvbT4KRGF0ZTogV2Vk LCAxNiBTZXAgMjAyMCAyMTo1MDozOSArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMDQvNTRdIGN4Z2I0 OiBmaXggbWVtb3J5IGxlYWsgZHVyaW5nIG1vZHVsZSB1bmxvYWQKClsgVXBzdHJlYW0gY29tbWl0 IGY0YTI2YTliMzExZDdmZjlkYjQ2MTI3OGZhZjI4NjlkMDY0OTZlZjggXQoKRml4IHRoZSBtZW1v cnkgbGVhayBpbiBtcHMgZHVyaW5nIG1vZHVsZSB1bmxvYWQKcGF0aCBieSBmcmVlaW5nIG1wcyBy ZWZlcmVuY2UgZW50cmllcyBpZiB0aGUgbGlzdAphZHB0ZXItPm1wc19yZWYgaXMgbm90IGFscmVh ZHkgZW1wdHkKCkZpeGVzOiAyOGIzODcwNTc4ZWYgKCJjeGdiNDogUmUtd29yayB0aGUgbG9naWMg Zm9yIG1wcyByZWZjb3VudGluZyIpClNpZ25lZC1vZmYtYnk6IFJhanUgUmFuZ29qdSA8cmFqdXJA Y2hlbHNpby5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21w cy5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9t cHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbXBzLmMKaW5k ZXggYjFhMDczZWVhNjBiLi5hMDIwZTg0OTA2ODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbXBzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tcHMuYwpAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgY3hn YjRfZnJlZV9tcHNfcmVmX2VudHJpZXMoc3RydWN0IGFkYXB0ZXIgKmFkYXApCiB7CiAJc3RydWN0 IG1wc19lbnRyaWVzX3JlZiAqbXBzX2VudHJ5LCAqdG1wOwogCi0JaWYgKCFsaXN0X2VtcHR5KCZh ZGFwLT5tcHNfcmVmKSkKKwlpZiAobGlzdF9lbXB0eSgmYWRhcC0+bXBzX3JlZikpCiAJCXJldHVy bjsKIAogCXNwaW5fbG9jaygmYWRhcC0+bXBzX3JlZl9sb2NrKTsKLS0gCjIuMjYuMgoKCkZyb20g YzBkZTMwNmU2ZTMwNjY2Zjk5YThjMTljYWNlNTFkNjE4ZjRlNThhYiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogR2FuamkgQXJhdmluZCA8Z2FuamkuYXJhdmluZEBjaGVsc2lvLmNvbT4K RGF0ZTogRnJpLCA0IFNlcCAyMDIwIDE1OjU4OjE4ICswNTMwClN1YmplY3Q6IFtQQVRDSCAwNS81 NF0gY3hnYjQ6IEZpeCBvZmZzZXQgd2hlbiBjbGVhcmluZyBmaWx0ZXIgYnl0ZSBjb3VudGVycwoK WyBVcHN0cmVhbSBjb21taXQgOTRjYzI0MmEwNjdhODY5YzI5ODAwYWE3ODlkMzhiNzY3NjEzNmU1 MCBdCgpQYXNzIHRoZSBjb3JyZWN0IG9mZnNldCB0byBjbGVhciB0aGUgc3RhbGUgZmlsdGVyIGhp dApieXRlcyBjb3VudGVyLiBPdGhlcndpc2UsIHRoZSBjb3VudGVyIHN0YXJ0cyBpbmNyZW1lbnRp bmcKZnJvbSB0aGUgc3RhbGUgaW5mb3JtYXRpb24sIGluc3RlYWQgb2YgMC4KCkZpeGVzOiAxMmIy NzZmYmY2ZTAgKCJjeGdiNDogYWRkIHN1cHBvcnQgdG8gY3JlYXRlIGhhc2ggZmlsdGVycyIpClNp Z25lZC1vZmYtYnk6IEdhbmppIEFyYXZpbmQgPGdhbmppLmFyYXZpbmRAY2hlbHNpby5jb20+ClNp Z25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9maWx0ZXIuYyB8IDkgKysrKysrLS0t CiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZmlsdGVyLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2ZpbHRlci5jCmluZGV4 IGQwMmQzNDY2MjliMy4uZmYwZDgyZTI1MzVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2ZpbHRlci5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZmlsdGVyLmMKQEAgLTE5MDYsMTMgKzE5MDYsMTYgQEAg aW50IGN4Z2I0X2RlbF9maWx0ZXIoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGZpbHRlcl9p ZCwKIHN0YXRpYyBpbnQgY29uZmlndXJlX2ZpbHRlcl90Y2Ioc3RydWN0IGFkYXB0ZXIgKmFkYXAs IHVuc2lnbmVkIGludCB0aWQsCiAJCQkJc3RydWN0IGZpbHRlcl9lbnRyeSAqZikKIHsKLQlpZiAo Zi0+ZnMuaGl0Y250cykKKwlpZiAoZi0+ZnMuaGl0Y250cykgewogCQlzZXRfdGNiX2ZpZWxkKGFk YXAsIGYsIHRpZCwgVENCX1RJTUVTVEFNUF9XLAotCQkJICAgICAgVENCX1RJTUVTVEFNUF9WKFRD Ql9USU1FU1RBTVBfTSkgfAorCQkJICAgICAgVENCX1RJTUVTVEFNUF9WKFRDQl9USU1FU1RBTVBf TSksCisJCQkgICAgICBUQ0JfVElNRVNUQU1QX1YoMFVMTCksCisJCQkgICAgICAxKTsKKwkJc2V0 X3RjYl9maWVsZChhZGFwLCBmLCB0aWQsIFRDQl9SVFRfVFNfUkVDRU5UX0FHRV9XLAogCQkJICAg ICAgVENCX1JUVF9UU19SRUNFTlRfQUdFX1YoVENCX1JUVF9UU19SRUNFTlRfQUdFX00pLAotCQkJ ICAgICAgVENCX1RJTUVTVEFNUF9WKDBVTEwpIHwKIAkJCSAgICAgIFRDQl9SVFRfVFNfUkVDRU5U X0FHRV9WKDBVTEwpLAogCQkJICAgICAgMSk7CisJfQogCiAJaWYgKGYtPmZzLm5ld2RtYWMpCiAJ CXNldF90Y2JfdGZsYWcoYWRhcCwgZiwgdGlkLCBURl9DQ1RSTF9FQ0VfUywgMSwKLS0gCjIuMjYu MgoKCkZyb20gMDk4NzQxZWM5OTZmY2YwN2UyOTUwNWQ5ZDBhZTMwN2E2NDQ0NDBjOCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyayBHcmF5IDxtYXJrLmQuZ3JheUByZWRoYXQuY29t PgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDA1OjE5OjM1IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAw Ni81NF0gZ2VuZXZlOiBhZGQgdHJhbnNwb3J0IHBvcnRzIGluIHJvdXRlIGxvb2t1cCBmb3IgZ2Vu ZXZlCgpbIFVwc3RyZWFtIGNvbW1pdCAzNGJlYjIxNTk0NTE5Y2U2NGE1NWE0OThjMmZlN2Q1Njdi YzFjYTIwIF0KClRoaXMgcGF0Y2ggYWRkcyB0cmFuc3BvcnQgcG9ydHMgaW5mb3JtYXRpb24gZm9y IHJvdXRlIGxvb2t1cCBzbyB0aGF0CklQc2VjIGNhbiBzZWxlY3QgR2VuZXZlIHR1bm5lbCB0cmFm ZmljIHRvIGRvIGVuY3J5cHRpb24uIFRoaXMgaXMKbmVlZGVkIGZvciBPVlMvT1ZOIElQc2VjIHdp dGggZW5jcnlwdGVkIEdlbmV2ZSB0dW5uZWxzLgoKVGhpcyBjYW4gYmUgdGVzdGVkIGJ5IGNvbmZp Z3VyaW5nIGEgaG9zdC1ob3N0IFZQTiB1c2luZyBhbiBJS0UKZGFlbW9uIGFuZCBzcGVjaWZ5aW5n IHBvcnQgbnVtYmVycy4gRm9yIGV4YW1wbGUsIGZvciBhbgpPcGVuc3dhbi10eXBlIGNvbmZpZ3Vy YXRpb24sIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBzaG91bGQgYmUKY29uZmlndXJlZCBvbiBi b3RoIGhvc3RzIGFuZCBJUHNlYyBzZXQgdXAgYXMtcGVyIG5vcm1hbDoKCiQgY2F0IC9ldGMvaXBz ZWMuY29uZgoKY29ubiBpbgouLi4KbGVmdD0kSVAxCnJpZ2h0PSRJUDIKLi4uCmxlZnRwcm90b3Bv cnQ9dWRwLzYwODEKcmlnaHRwcm90b3BvcnQ9dWRwCi4uLgpjb25uIG91dAouLi4KbGVmdD0kSVAx CnJpZ2h0PSRJUDIKLi4uCmxlZnRwcm90b3BvcnQ9dWRwCnJpZ2h0cHJvdG9wb3J0PXVkcC82MDgx Ci4uLgoKVGhlIHR1bm5lbCBjYW4gdGhlbiBiZSBzZXR1cCB1c2luZyAiaXAiIG9uIGJvdGggaG9z dHMgKGJ1dApjaGFuZ2luZyB0aGUgcmVsZXZhbnQgSVAgYWRkcmVzc2VzKToKCiQgaXAgbGluayBh ZGQgdHVuIHR5cGUgZ2VuZXZlIGlkIDEwMDAgcmVtb3RlICRJUDIKJCBpcCBhZGRyIGFkZCAxOTIu MTY4LjAuMS8yNCBkZXYgdHVuCiQgaXAgbGluayBzZXQgdHVuIHVwCgpUaGlzIGNhbiB0aGVuIGJl IHRlc3RlZCBieSBwaW5naW5nIGZyb20gJElQMToKCiQgcGluZyAxOTIuMTY4LjAuMgoKV2l0aG91 dCB0aGlzIHBhdGNoIHRoZSB0cmFmZmljIGlzIHVuZW5jcnlwdGVkIG9uIHRoZSB3aXJlLgoKRml4 ZXM6IDJkMDdkYzc5ZmUwNCAoImdlbmV2ZTogYWRkIGluaXRpYWwgbmV0ZGV2IGRyaXZlciBmb3Ig R0VORVZFIHR1bm5lbHMiKQpTaWduZWQtb2ZmLWJ5OiBRaXV5dSBYaWFvIDxxaXV5dS54aWFvLnF5 eEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hcmsgR3JheSA8bWFyay5kLmdyYXlAcmVkaGF0 LmNvbT4KUmV2aWV3ZWQtYnk6IEdyZWcgUm9zZSA8Z3Zyb3NlODE5MkBnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC9nZW5ldmUuYyB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9nZW5ldmUuYyBiL2RyaXZlcnMvbmV0L2dlbmV2ZS5jCmlu ZGV4IGRlYzUyYjc2M2Q1MC4uZGVlZGU5MmIxN2ZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9n ZW5ldmUuYworKysgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwpAQCAtNzczLDcgKzc3Myw4IEBAIHN0 YXRpYyBzdHJ1Y3QgcnRhYmxlICpnZW5ldmVfZ2V0X3Y0X3J0KHN0cnVjdCBza19idWZmICpza2Is CiAJCQkJICAgICAgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkJICAgICAgIHN0cnVjdCBn ZW5ldmVfc29jayAqZ3M0LAogCQkJCSAgICAgICBzdHJ1Y3QgZmxvd2k0ICpmbDQsCi0JCQkJICAg ICAgIGNvbnN0IHN0cnVjdCBpcF90dW5uZWxfaW5mbyAqaW5mbykKKwkJCQkgICAgICAgY29uc3Qg c3RydWN0IGlwX3R1bm5lbF9pbmZvICppbmZvLAorCQkJCSAgICAgICBfX2JlMTYgZHBvcnQsIF9f YmUxNiBzcG9ydCkKIHsKIAlib29sIHVzZV9jYWNoZSA9IGlwX3R1bm5lbF9kc3RfY2FjaGVfdXNh YmxlKHNrYiwgaW5mbyk7CiAJc3RydWN0IGdlbmV2ZV9kZXYgKmdlbmV2ZSA9IG5ldGRldl9wcml2 KGRldik7CkBAIC03ODksNiArNzkwLDggQEAgc3RhdGljIHN0cnVjdCBydGFibGUgKmdlbmV2ZV9n ZXRfdjRfcnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlmbDQtPmZsb3dpNF9wcm90byA9IElQUFJP VE9fVURQOwogCWZsNC0+ZGFkZHIgPSBpbmZvLT5rZXkudS5pcHY0LmRzdDsKIAlmbDQtPnNhZGRy ID0gaW5mby0+a2V5LnUuaXB2NC5zcmM7CisJZmw0LT5mbDRfZHBvcnQgPSBkcG9ydDsKKwlmbDQt PmZsNF9zcG9ydCA9IHNwb3J0OwogCiAJdG9zID0gaW5mby0+a2V5LnRvczsKIAlpZiAoKHRvcyA9 PSAxKSAmJiAhZ2VuZXZlLT5jb2xsZWN0X21kKSB7CkBAIC04MjMsNyArODI2LDggQEAgc3RhdGlj IHN0cnVjdCBkc3RfZW50cnkgKmdlbmV2ZV9nZXRfdjZfZHN0KHN0cnVjdCBza19idWZmICpza2Is CiAJCQkJCSAgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkJCSAgIHN0cnVjdCBnZW5ldmVf c29jayAqZ3M2LAogCQkJCQkgICBzdHJ1Y3QgZmxvd2k2ICpmbDYsCi0JCQkJCSAgIGNvbnN0IHN0 cnVjdCBpcF90dW5uZWxfaW5mbyAqaW5mbykKKwkJCQkJICAgY29uc3Qgc3RydWN0IGlwX3R1bm5l bF9pbmZvICppbmZvLAorCQkJCQkgICBfX2JlMTYgZHBvcnQsIF9fYmUxNiBzcG9ydCkKIHsKIAli b29sIHVzZV9jYWNoZSA9IGlwX3R1bm5lbF9kc3RfY2FjaGVfdXNhYmxlKHNrYiwgaW5mbyk7CiAJ c3RydWN0IGdlbmV2ZV9kZXYgKmdlbmV2ZSA9IG5ldGRldl9wcml2KGRldik7CkBAIC04MzksNiAr ODQzLDkgQEAgc3RhdGljIHN0cnVjdCBkc3RfZW50cnkgKmdlbmV2ZV9nZXRfdjZfZHN0KHN0cnVj dCBza19idWZmICpza2IsCiAJZmw2LT5mbG93aTZfcHJvdG8gPSBJUFBST1RPX1VEUDsKIAlmbDYt PmRhZGRyID0gaW5mby0+a2V5LnUuaXB2Ni5kc3Q7CiAJZmw2LT5zYWRkciA9IGluZm8tPmtleS51 LmlwdjYuc3JjOworCWZsNi0+Zmw2X2Rwb3J0ID0gZHBvcnQ7CisJZmw2LT5mbDZfc3BvcnQgPSBz cG9ydDsKKwogCXByaW8gPSBpbmZvLT5rZXkudG9zOwogCWlmICgocHJpbyA9PSAxKSAmJiAhZ2Vu ZXZlLT5jb2xsZWN0X21kKSB7CiAJCXByaW8gPSBpcF90dW5uZWxfZ2V0X2RzZmllbGQoaXBfaGRy KHNrYiksIHNrYik7CkBAIC04ODUsMTQgKzg5MiwxNSBAQCBzdGF0aWMgaW50IGdlbmV2ZV94bWl0 X3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCV9fYmUx NiBzcG9ydDsKIAlpbnQgZXJyOwogCi0JcnQgPSBnZW5ldmVfZ2V0X3Y0X3J0KHNrYiwgZGV2LCBn czQsICZmbDQsIGluZm8pOworCXNwb3J0ID0gdWRwX2Zsb3dfc3JjX3BvcnQoZ2VuZXZlLT5uZXQs IHNrYiwgMSwgVVNIUlRfTUFYLCB0cnVlKTsKKwlydCA9IGdlbmV2ZV9nZXRfdjRfcnQoc2tiLCBk ZXYsIGdzNCwgJmZsNCwgaW5mbywKKwkJCSAgICAgIGdlbmV2ZS0+aW5mby5rZXkudHBfZHN0LCBz cG9ydCk7CiAJaWYgKElTX0VSUihydCkpCiAJCXJldHVybiBQVFJfRVJSKHJ0KTsKIAogCXNrYl90 dW5uZWxfY2hlY2tfcG10dShza2IsICZydC0+ZHN0LAogCQkJICAgICAgR0VORVZFX0lQVjRfSExF TiArIGluZm8tPm9wdGlvbnNfbGVuKTsKIAotCXNwb3J0ID0gdWRwX2Zsb3dfc3JjX3BvcnQoZ2Vu ZXZlLT5uZXQsIHNrYiwgMSwgVVNIUlRfTUFYLCB0cnVlKTsKIAlpZiAoZ2VuZXZlLT5jb2xsZWN0 X21kKSB7CiAJCXRvcyA9IGlwX3R1bm5lbF9lY25fZW5jYXAoa2V5LT50b3MsIGlwX2hkcihza2Ip LCBza2IpOwogCQl0dGwgPSBrZXktPnR0bDsKQEAgLTk0NywxMyArOTU1LDE0IEBAIHN0YXRpYyBp bnQgZ2VuZXZlNl94bWl0X3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LAogCV9fYmUxNiBzcG9ydDsKIAlpbnQgZXJyOwogCi0JZHN0ID0gZ2VuZXZlX2dldF92 Nl9kc3Qoc2tiLCBkZXYsIGdzNiwgJmZsNiwgaW5mbyk7CisJc3BvcnQgPSB1ZHBfZmxvd19zcmNf cG9ydChnZW5ldmUtPm5ldCwgc2tiLCAxLCBVU0hSVF9NQVgsIHRydWUpOworCWRzdCA9IGdlbmV2 ZV9nZXRfdjZfZHN0KHNrYiwgZGV2LCBnczYsICZmbDYsIGluZm8sCisJCQkJZ2VuZXZlLT5pbmZv LmtleS50cF9kc3QsIHNwb3J0KTsKIAlpZiAoSVNfRVJSKGRzdCkpCiAJCXJldHVybiBQVFJfRVJS KGRzdCk7CiAKIAlza2JfdHVubmVsX2NoZWNrX3BtdHUoc2tiLCBkc3QsIEdFTkVWRV9JUFY2X0hM RU4gKyBpbmZvLT5vcHRpb25zX2xlbik7CiAKLQlzcG9ydCA9IHVkcF9mbG93X3NyY19wb3J0KGdl bmV2ZS0+bmV0LCBza2IsIDEsIFVTSFJUX01BWCwgdHJ1ZSk7CiAJaWYgKGdlbmV2ZS0+Y29sbGVj dF9tZCkgewogCQlwcmlvID0gaXBfdHVubmVsX2Vjbl9lbmNhcChrZXktPnRvcywgaXBfaGRyKHNr YiksIHNrYik7CiAJCXR0bCA9IGtleS0+dHRsOwpAQCAtMTAzNCwxMyArMTA0MywxOCBAQCBzdGF0 aWMgaW50IGdlbmV2ZV9maWxsX21ldGFkYXRhX2RzdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0cnVjdCBpcF90dW5uZWxfaW5mbyAqaW5mbyA9IHNr Yl90dW5uZWxfaW5mbyhza2IpOwogCXN0cnVjdCBnZW5ldmVfZGV2ICpnZW5ldmUgPSBuZXRkZXZf cHJpdihkZXYpOworCV9fYmUxNiBzcG9ydDsKIAogCWlmIChpcF90dW5uZWxfaW5mb19hZihpbmZv KSA9PSBBRl9JTkVUKSB7CiAJCXN0cnVjdCBydGFibGUgKnJ0OwogCQlzdHJ1Y3QgZmxvd2k0IGZs NDsKKwogCQlzdHJ1Y3QgZ2VuZXZlX3NvY2sgKmdzNCA9IHJjdV9kZXJlZmVyZW5jZShnZW5ldmUt PnNvY2s0KTsKKwkJc3BvcnQgPSB1ZHBfZmxvd19zcmNfcG9ydChnZW5ldmUtPm5ldCwgc2tiLAor CQkJCQkgIDEsIFVTSFJUX01BWCwgdHJ1ZSk7CiAKLQkJcnQgPSBnZW5ldmVfZ2V0X3Y0X3J0KHNr YiwgZGV2LCBnczQsICZmbDQsIGluZm8pOworCQlydCA9IGdlbmV2ZV9nZXRfdjRfcnQoc2tiLCBk ZXYsIGdzNCwgJmZsNCwgaW5mbywKKwkJCQkgICAgICBnZW5ldmUtPmluZm8ua2V5LnRwX2RzdCwg c3BvcnQpOwogCQlpZiAoSVNfRVJSKHJ0KSkKIAkJCXJldHVybiBQVFJfRVJSKHJ0KTsKIApAQCAt MTA1MCw5ICsxMDY0LDEzIEBAIHN0YXRpYyBpbnQgZ2VuZXZlX2ZpbGxfbWV0YWRhdGFfZHN0KHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiAJfSBlbHNlIGlmIChp cF90dW5uZWxfaW5mb19hZihpbmZvKSA9PSBBRl9JTkVUNikgewogCQlzdHJ1Y3QgZHN0X2VudHJ5 ICpkc3Q7CiAJCXN0cnVjdCBmbG93aTYgZmw2OworCiAJCXN0cnVjdCBnZW5ldmVfc29jayAqZ3M2 ID0gcmN1X2RlcmVmZXJlbmNlKGdlbmV2ZS0+c29jazYpOworCQlzcG9ydCA9IHVkcF9mbG93X3Ny Y19wb3J0KGdlbmV2ZS0+bmV0LCBza2IsCisJCQkJCSAgMSwgVVNIUlRfTUFYLCB0cnVlKTsKIAot CQlkc3QgPSBnZW5ldmVfZ2V0X3Y2X2RzdChza2IsIGRldiwgZ3M2LCAmZmw2LCBpbmZvKTsKKwkJ ZHN0ID0gZ2VuZXZlX2dldF92Nl9kc3Qoc2tiLCBkZXYsIGdzNiwgJmZsNiwgaW5mbywKKwkJCQkJ Z2VuZXZlLT5pbmZvLmtleS50cF9kc3QsIHNwb3J0KTsKIAkJaWYgKElTX0VSUihkc3QpKQogCQkJ cmV0dXJuIFBUUl9FUlIoZHN0KTsKIApAQCAtMTA2Myw4ICsxMDgxLDcgQEAgc3RhdGljIGludCBn ZW5ldmVfZmlsbF9tZXRhZGF0YV9kc3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNr X2J1ZmYgKnNrYikKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JaW5mby0+a2V5LnRwX3NyYyA9 IHVkcF9mbG93X3NyY19wb3J0KGdlbmV2ZS0+bmV0LCBza2IsCi0JCQkJCSAgICAgMSwgVVNIUlRf TUFYLCB0cnVlKTsKKwlpbmZvLT5rZXkudHBfc3JjID0gc3BvcnQ7CiAJaW5mby0+a2V5LnRwX2Rz dCA9IGdlbmV2ZS0+aW5mby5rZXkudHBfZHN0OwogCXJldHVybiAwOwogfQotLSAKMi4yNi4yCgoK RnJvbSA1ODFhOTZiYmRhNzM0ZGQ2ZWRlMDk5OTVkM2Y3NjlhZTkzYTcyN2RhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5j b20+CkRhdGU6IFdlZCwgOSBTZXAgMjAyMCAxMjo0Njo0OCArMDMwMApTdWJqZWN0OiBbUEFUQ0gg MDcvNTRdIGhkbGNfcHBwOiBhZGQgcmFuZ2UgY2hlY2tzIGluIHBwcF9jcF9wYXJzZV9jcigpCgpb IFVwc3RyZWFtIGNvbW1pdCA2NmQ0MmVkOGIyNWI2NGViNjMxMTFhMmI4NTgyYzVhZmM4YmYxMTA1 IF0KClRoZXJlIGFyZSBhIGNvdXBsZSBidWdzIGhlcmU6CjEpIElmIG9wdFsxXSBpcyB6ZXJvIHRo ZW4gdGhpcyByZXN1bHRzIGluIGEgZm9yZXZlciBsb29wLiAgSWYgdGhlIHZhbHVlCiAgIGlzIGxl c3MgdGhhbiAyIHRoZW4gaXQgaXMgaW52YWxpZC4KMikgSXQgYXNzdW1lcyB0aGF0ICJsZW4iIGlz IG1vcmUgdGhhbiBzaXplb2YodmFsaWRfYWNjbSkgb3IgNiB3aGljaCBjYW4KICAgcmVzdWx0IGlu IG1lbW9yeSBjb3JydXB0aW9uLgoKSW4gdGhlIGNhc2Ugb2YgTENQX09QVElPTl9BQ0NNLCB0aGVu ICB3ZSBzaG91bGQgY2hlY2sgIm9wdFsxXSIgaW5zdGVhZApvZiAibGVuIiBiZWNhdXNlLCBpZiAi b3B0WzFdIiBpcyBsZXNzIHRoYW4gc2l6ZW9mKHZhbGlkX2FjY20pIHRoZW4KIm5ha19sZW4iIGdl dHMgb3V0IG9mIHN5bmMgYW5kIGl0IGNhbiBsZWFkIHRvIG1lbW9yeSBjb3JydXB0aW9uIGluIHRo ZQpuZXh0IGl0ZXJhdGlvbnMgdGhyb3VnaCB0aGUgbG9vcC4gIEluIGNhc2Ugb2YgTENQX09QVElP Tl9NQUdJQywgdGhlCm9ubHkgdmFsaWQgdmFsdWUgZm9yIG9wdFsxXSBpcyA2LCBidXQgdGhlIGNv ZGUgaXMgdHJ5aW5nIHRvIGxvZyBpbnZhbGlkCmRhdGEgc28gd2Ugc2hvdWxkIG9ubHkgZGlzY2Fy ZCB0aGUgZGF0YSB3aGVuICJsZW4iIGlzIGxlc3MgdGhhbiA2CmJlY2F1c2UgdGhhdCBsZWFkcyB0 byBhIHJlYWQgb3ZlcmZsb3cuCgpSZXBvcnRlZC1ieTogQ2hlbk5hbiBPZiBDaGFpdGluIFNlY3Vy aXR5IFJlc2VhcmNoIExhYiAgPHdodXRjaGVubmFuQGdtYWlsLmNvbT4KRml4ZXM6IGUwMjJjMmYw N2FlNSAoIldBTjogbmV3IHN5bmNocm9ub3VzIFBQUCBpbXBsZW1lbnRhdGlvbiBmb3IgZ2VuZXJp YyBIRExDLiIpClNpZ25lZC1vZmYtYnk6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3Jh Y2xlLmNvbT4KUmV2aWV3ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K UmV2aWV3ZWQtYnk6IEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5v cmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC93YW4vaGRsY19wcHAuYyB8IDE2ICsrKysrKysrKysrLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3dhbi9oZGxjX3BwcC5jIGIvZHJpdmVycy9uZXQvd2FuL2hkbGNfcHBw LmMKaW5kZXggNDhjZWQzOTEyNTc2Li4xNmYzM2QxZmZiZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3dhbi9oZGxjX3BwcC5jCisrKyBiL2RyaXZlcnMvbmV0L3dhbi9oZGxjX3BwcC5jCkBAIC0z ODMsMTEgKzM4Myw4IEBAIHN0YXRpYyB2b2lkIHBwcF9jcF9wYXJzZV9jcihzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LCB1MTYgcGlkLCB1OCBpZCwKIAl9CiAKIAlmb3IgKG9wdCA9IGRhdGE7IGxlbjsg bGVuIC09IG9wdFsxXSwgb3B0ICs9IG9wdFsxXSkgewotCQlpZiAobGVuIDwgMiB8fCBsZW4gPCBv cHRbMV0pIHsKLQkJCWRldi0+c3RhdHMucnhfZXJyb3JzKys7Ci0JCQlrZnJlZShvdXQpOwotCQkJ cmV0dXJuOyAvKiBiYWQgcGFja2V0LCBkcm9wIHNpbGVudGx5ICovCi0JCX0KKwkJaWYgKGxlbiA8 IDIgfHwgb3B0WzFdIDwgMiB8fCBsZW4gPCBvcHRbMV0pCisJCQlnb3RvIGVycl9vdXQ7CiAKIAkJ aWYgKHBpZCA9PSBQSURfTENQKQogCQkJc3dpdGNoIChvcHRbMF0pIHsKQEAgLTM5NSw2ICszOTIs OCBAQCBzdGF0aWMgdm9pZCBwcHBfY3BfcGFyc2VfY3Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg dTE2IHBpZCwgdTggaWQsCiAJCQkJY29udGludWU7IC8qIE1SVSBhbHdheXMgT0sgYW5kID4gMTUw MCBieXRlcz8gKi8KIAogCQkJY2FzZSBMQ1BfT1BUSU9OX0FDQ006IC8qIGFzeW5jIGNvbnRyb2wg Y2hhcmFjdGVyIG1hcCAqLworCQkJCWlmIChvcHRbMV0gPCBzaXplb2YodmFsaWRfYWNjbSkpCisJ CQkJCWdvdG8gZXJyX291dDsKIAkJCQlpZiAoIW1lbWNtcChvcHQsIHZhbGlkX2FjY20sCiAJCQkJ CSAgICBzaXplb2YodmFsaWRfYWNjbSkpKQogCQkJCQljb250aW51ZTsKQEAgLTQwNiw2ICs0MDUs OCBAQCBzdGF0aWMgdm9pZCBwcHBfY3BfcGFyc2VfY3Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg dTE2IHBpZCwgdTggaWQsCiAJCQkJfQogCQkJCWJyZWFrOwogCQkJY2FzZSBMQ1BfT1BUSU9OX01B R0lDOgorCQkJCWlmIChsZW4gPCA2KQorCQkJCQlnb3RvIGVycl9vdXQ7CiAJCQkJaWYgKG9wdFsx XSAhPSA2IHx8ICghb3B0WzJdICYmICFvcHRbM10gJiYKIAkJCQkJCSAgICAhb3B0WzRdICYmICFv cHRbNV0pKQogCQkJCQlicmVhazsgLyogcmVqZWN0IGludmFsaWQgbWFnaWMgbnVtYmVyICovCkBA IC00MjQsNiArNDI1LDExIEBAIHN0YXRpYyB2b2lkIHBwcF9jcF9wYXJzZV9jcihzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LCB1MTYgcGlkLCB1OCBpZCwKIAkJcHBwX2NwX2V2ZW50KGRldiwgcGlkLCBS Q1JfR09PRCwgQ1BfQ09ORl9BQ0ssIGlkLCByZXFfbGVuLCBkYXRhKTsKIAogCWtmcmVlKG91dCk7 CisJcmV0dXJuOworCitlcnJfb3V0OgorCWRldi0+c3RhdHMucnhfZXJyb3JzKys7CisJa2ZyZWUo b3V0KTsKIH0KIAogc3RhdGljIGludCBwcHBfcngoc3RydWN0IHNrX2J1ZmYgKnNrYikKLS0gCjIu MjYuMgoKCkZyb20gMDk3ZDY5ODlhN2Y0ZmExODg3ZjJiNWYzY2EzOTE3MjkyZjQ5OGMyMiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTHVvIGJpbiA8bHVvYmluOUBodWF3ZWkuY29tPgpE YXRlOiBGcmksIDQgU2VwIDIwMjAgMTY6Mzc6MjggKzA4MDAKU3ViamVjdDogW1BBVENIIDA4LzU0 XSBoaW5pYzogYnVtcCB1cCB0aGUgdGltZW91dCBvZiBTRVRfRlVOQ19TVEFURSBjbWQKClsgVXBz dHJlYW0gY29tbWl0IDRlNDI2OWViZTdlMTgwMzhmZmZhY2YxMTNlMmRkNWRlZDZkNDk5NDIgXQoK V2UgZnJlZSBtZW1vcnkgcmVnYXJkbGVzcyBvZiB0aGUgcmV0dXJuIHZhbHVlIG9mIFNFVF9GVU5D X1NUQVRFCmNtZCBpbiBoaW5pY19jbG9zZSBmdW5jdGlvbiB0byBhdm9pZCBtZW1vcnkgbGVhayBh bmQgdGhpcyBjbWQgbWF5CnRpbWVvdXQgd2hlbiBmdyBpcyBidXN5IHdpdGggaGFuZGxpbmcgb3Ro ZXIgY21kcywgc28gd2UgYnVtcCB1cCB0aGUKdGltZW91dCBvZiB0aGlzIGNtZCB0byBlbnN1cmUg aXQgd29uJ3QgcmV0dXJuIGZhaWx1cmUuCgpGaXhlczogMDBlNTdhNmQ0YWQzICgibmV0LW5leHQv aGluaWM6IEFkZCBUeCBvcGVyYXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBMdW8gYmluIDxsdW9iaW45 QGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5v cmc+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMvaGluaWNfaHdfbWdtdC5jICAg IHwgMTYgKysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyks IDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2Vp L2hpbmljL2hpbmljX2h3X21nbXQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5p Yy9oaW5pY19od19tZ210LmMKaW5kZXggZTBmNWE4MWQ4NjIwLi43ZmUzOWExNTViMzIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYy9oaW5pY19od19tZ210LmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljL2hpbmljX2h3X21nbXQuYwpA QCAtNDUsNiArNDUsOCBAQAogCiAjZGVmaW5lIE1HTVRfTVNHX1RJTUVPVVQgICAgICAgICAgICAg ICAgNTAwMAogCisjZGVmaW5lIFNFVF9GVU5DX1BPUlRfTUJPWF9USU1FT1VUCTMwMDAwCisKICNk ZWZpbmUgU0VUX0ZVTkNfUE9SVF9NR01UX1RJTUVPVVQJMjUwMDAKIAogI2RlZmluZSBtZ210X3Rv X3BmaHdkZXYocGZfbWdtdCkgICAgICAgIFwKQEAgLTM1OCwxNiArMzYwLDIwIEBAIGludCBoaW5p Y19tc2dfdG9fbWdtdChzdHJ1Y3QgaGluaWNfcGZfdG9fbWdtdCAqcGZfdG9fbWdtdCwKIAkJcmV0 dXJuIC1FSU5WQUw7CiAJfQogCi0JaWYgKGNtZCA9PSBISU5JQ19QT1JUX0NNRF9TRVRfRlVOQ19T VEFURSkKLQkJdGltZW91dCA9IFNFVF9GVU5DX1BPUlRfTUdNVF9USU1FT1VUOworCWlmIChISU5J Q19JU19WRihod2lmKSkgeworCQlpZiAoY21kID09IEhJTklDX1BPUlRfQ01EX1NFVF9GVU5DX1NU QVRFKQorCQkJdGltZW91dCA9IFNFVF9GVU5DX1BPUlRfTUJPWF9USU1FT1VUOwogCi0JaWYgKEhJ TklDX0lTX1ZGKGh3aWYpKQogCQlyZXR1cm4gaGluaWNfbWJveF90b19wZihwZl90b19tZ210LT5o d2RldiwgbW9kLCBjbWQsIGJ1Zl9pbiwKLQkJCQkJaW5fc2l6ZSwgYnVmX291dCwgb3V0X3NpemUs IDApOwotCWVsc2UKKwkJCQkJaW5fc2l6ZSwgYnVmX291dCwgb3V0X3NpemUsIHRpbWVvdXQpOwor CX0gZWxzZSB7CisJCWlmIChjbWQgPT0gSElOSUNfUE9SVF9DTURfU0VUX0ZVTkNfU1RBVEUpCisJ CQl0aW1lb3V0ID0gU0VUX0ZVTkNfUE9SVF9NR01UX1RJTUVPVVQ7CisKIAkJcmV0dXJuIG1zZ190 b19tZ210X3N5bmMocGZfdG9fbWdtdCwgbW9kLCBjbWQsIGJ1Zl9pbiwgaW5fc2l6ZSwKIAkJCQli dWZfb3V0LCBvdXRfc2l6ZSwgTUdNVF9ESVJFQ1RfU0VORCwKIAkJCQlNU0dfTk9UX1JFU1AsIHRp bWVvdXQpOworCX0KIH0KIAogc3RhdGljIHZvaWQgcmVjdl9tZ210X21zZ193b3JrX2hhbmRsZXIo c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQotLSAKMi4yNi4yCgoKRnJvbSA3NzIwNGFkNDkzYzU4 NWZkZTJhZGJkNjIwNTY1OTRmMjUxNjQ0ZDQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBXZWkgV2FuZyA8d2Vpd2FuQGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgOCBTZXAgMjAyMCAxNDow OTozNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDkvNTRdIGlwOiBmaXggdG9zIHJlZmxlY3Rpb24g aW4gYWNrIGFuZCByZXNldCBwYWNrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCBiYTllMDRhN2RkZjRm MjJhMTBlMDViZjk0MDNkYjZiOTc3NDNjN2JmIF0KCkN1cnJlbnRseSwgaW4gdGNwX3Y0X3JlcXNr X3NlbmRfYWNrKCkgYW5kIHRjcF92NF9zZW5kX3Jlc2V0KCksIHdlCmVjaG8gdGhlIFRPUyB2YWx1 ZSBvZiB0aGUgcmVjZWl2ZWQgcGFja2V0cyBpbiB0aGUgcmVzcG9uc2UuCkhvd2V2ZXIsIHdlIGRv IG5vdCB3YW50IHRvIGVjaG8gdGhlIGxvd2VyIDIgRUNOIGJpdHMgaW4gYWNjb3JkYW5jZQp3aXRo IFJGQyAzMTY4IDYuMS41IHJvYnVzdG5lc3MgcHJpbmNpcGxlcy4KCkZpeGVzOiAxZGExNzdlNGMz ZjQgKCJMaW51eC0yLjYuMTItcmMyIikKClNpZ25lZC1vZmYtYnk6IFdlaSBXYW5nIDx3ZWl3YW5A Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2lwdjQvaXBfb3V0cHV0LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX291dHB1 dC5jIGIvbmV0L2lwdjQvaXBfb3V0cHV0LmMKaW5kZXggMTcyMDY2NzdkNTAzLi5mMDlhMTg4Mzk3 MTYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX291dHB1dC5jCisrKyBiL25ldC9pcHY0L2lwX291 dHB1dC5jCkBAIC03NCw2ICs3NCw3IEBACiAjaW5jbHVkZSA8bmV0L2ljbXAuaD4KICNpbmNsdWRl IDxuZXQvY2hlY2tzdW0uaD4KICNpbmNsdWRlIDxuZXQvaW5ldHBlZXIuaD4KKyNpbmNsdWRlIDxu ZXQvaW5ldF9lY24uaD4KICNpbmNsdWRlIDxuZXQvbHd0dW5uZWwuaD4KICNpbmNsdWRlIDxsaW51 eC9icGYtY2dyb3VwLmg+CiAjaW5jbHVkZSA8bGludXgvaWdtcC5oPgpAQCAtMTY5Nyw3ICsxNjk4 LDcgQEAgdm9pZCBpcF9zZW5kX3VuaWNhc3RfcmVwbHkoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAogCWlmIChJU19FUlIocnQpKQogCQlyZXR1cm47CiAKLQlpbmV0X3NrKHNr KS0+dG9zID0gYXJnLT50b3M7CisJaW5ldF9zayhzayktPnRvcyA9IGFyZy0+dG9zICYgfklORVRf RUNOX01BU0s7CiAKIAlzay0+c2tfcHJvdG9jb2wgPSBpcF9oZHIoc2tiKS0+cHJvdG9jb2w7CiAJ c2stPnNrX2JvdW5kX2Rldl9pZiA9IGFyZy0+Ym91bmRfZGV2X2lmOwotLSAKMi4yNi4yCgoKRnJv bSA2YmRkN2JlYWMyNDgwOTc4NDA4M2YxMDY1NjE0MGZhMTZlYmVhNDk5IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6IFN1 biwgMTMgU2VwIDIwMjAgMTI6NDM6MzkgLTA2MDAKU3ViamVjdDogW1BBVENIIDEwLzU0XSBpcHY0 OiBJbml0aWFsaXplIGZsb3dpNF9tdWx0aXBhdGhfaGFzaCBpbiBkYXRhIHBhdGgKClsgVXBzdHJl YW0gY29tbWl0IDE4NjllMjI2YTdiM2VmNzViNGY3MGVkZTJmMWI3MjI5ZjcxNTdmYTQgXQoKZmxv d2k0X211bHRpcGF0aF9oYXNoIHdhcyBhZGRlZCBieSB0aGUgY29tbWl0IHJlZmVyZW5jZWQgYmVs b3cgZm9yCnR1bm5lbHMuIFVuZm9ydHVuYXRlbHksIHRoZSBwYXRjaCBkaWQgbm90IGluaXRpYWxp emUgdGhlIG5ldyBmaWVsZApmb3Igc2V2ZXJhbCBmYXN0IHBhdGggbG9va3VwcyB0aGF0IGRvIG5v dCBpbml0aWFsaXplIHRoZSBlbnRpcmUgZmxvdwpzdHJ1Y3QgdG8gMC4gRml4IHRob3NlIGxvY2F0 aW9ucy4gQ3VycmVudGx5LCBmbG93aTRfbXVsdGlwYXRoX2hhc2gKaXMgcmFuZG9tIGdhcmJhZ2Ug YW5kIGFmZmVjdHMgdGhlIGhhc2ggdmFsdWUgY29tcHV0ZWQgYnkKZmliX211bHRpcGF0aF9oYXNo IGZvciBtdWx0aXBhdGggc2VsZWN0aW9uLgoKRml4ZXM6IDI0YmExNDQwNmM1YyAoInJvdXRlOiBB ZGQgbXVsdGlwYXRoX2hhc2ggaW4gZmxvd2lfY29tbW9uIHRvIG1ha2UgdXNlci1kZWZpbmUgaGFz aCIpClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KQ2M6IHdl bnh1IDx3ZW54dUB1Y2xvdWQuY24+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9mbG93LmggICAgICB8IDEgKwogbmV0 L2NvcmUvZmlsdGVyLmMgICAgICAgfCAxICsKIG5ldC9pcHY0L2ZpYl9mcm9udGVuZC5jIHwgMSAr CiBuZXQvaXB2NC9yb3V0ZS5jICAgICAgICB8IDEgKwogNCBmaWxlcyBjaGFuZ2VkLCA0IGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9mbG93LmggYi9pbmNsdWRlL25ldC9m bG93LmgKaW5kZXggYTUwZmI3N2EwYjI3Li5kMDU4ZTYzZmI1OWEgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbmV0L2Zsb3cuaAorKysgYi9pbmNsdWRlL25ldC9mbG93LmgKQEAgLTExNiw2ICsxMTYsNyBA QCBzdGF0aWMgaW5saW5lIHZvaWQgZmxvd2k0X2luaXRfb3V0cHV0KHN0cnVjdCBmbG93aTQgKmZs NCwgaW50IG9pZiwKIAlmbDQtPnNhZGRyID0gc2FkZHI7CiAJZmw0LT5mbDRfZHBvcnQgPSBkcG9y dDsKIAlmbDQtPmZsNF9zcG9ydCA9IHNwb3J0OworCWZsNC0+Zmxvd2k0X211bHRpcGF0aF9oYXNo ID0gMDsKIH0KIAogLyogUmVzZXQgc29tZSBpbnB1dCBwYXJhbWV0ZXJzIGFmdGVyIHByZXZpb3Vz IGxvb2t1cCAqLwpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmlsdGVyLmMgYi9uZXQvY29yZS9maWx0 ZXIuYwppbmRleCBhNjllNzkzMjdjMjkuLmQxM2VhMTY0MmI5NyAxMDA2NDQKLS0tIGEvbmV0L2Nv cmUvZmlsdGVyLmMKKysrIGIvbmV0L2NvcmUvZmlsdGVyLmMKQEAgLTQ3NzQsNiArNDc3NCw3IEBA IHN0YXRpYyBpbnQgYnBmX2lwdjRfZmliX2xvb2t1cChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBi cGZfZmliX2xvb2t1cCAqcGFyYW1zLAogCWZsNC5zYWRkciA9IHBhcmFtcy0+aXB2NF9zcmM7CiAJ Zmw0LmZsNF9zcG9ydCA9IHBhcmFtcy0+c3BvcnQ7CiAJZmw0LmZsNF9kcG9ydCA9IHBhcmFtcy0+ ZHBvcnQ7CisJZmw0LmZsb3dpNF9tdWx0aXBhdGhfaGFzaCA9IDA7CiAKIAlpZiAoZmxhZ3MgJiBC UEZfRklCX0xPT0tVUF9ESVJFQ1QpIHsKIAkJdTMyIHRiaWQgPSBsM21kZXZfZmliX3RhYmxlX3Jj dShkZXYpID8gOiBSVF9UQUJMRV9NQUlOOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmliX2Zyb250 ZW5kLmMgYi9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYwppbmRleCA0MTA3OTQ5MGExMTguLjg2YTIz ZTRhNmE1MCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKKysrIGIvbmV0L2lw djQvZmliX2Zyb250ZW5kLmMKQEAgLTM2Miw2ICszNjIsNyBAQCBzdGF0aWMgaW50IF9fZmliX3Zh bGlkYXRlX3NvdXJjZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgc3JjLCBfX2JlMzIgZHN0 LAogCWZsNC5mbG93aTRfdHVuX2tleS50dW5faWQgPSAwOwogCWZsNC5mbG93aTRfZmxhZ3MgPSAw OwogCWZsNC5mbG93aTRfdWlkID0gc29ja19uZXRfdWlkKG5ldCwgTlVMTCk7CisJZmw0LmZsb3dp NF9tdWx0aXBhdGhfaGFzaCA9IDA7CiAKIAlub19hZGRyID0gaWRldi0+aWZhX2xpc3QgPT0gTlVM TDsKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5k ZXggYTAxZWZhMDYyZjZiLi40NjdmMDI5MGRjNTYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRl LmMKKysrIGIvbmV0L2lwdjQvcm91dGUuYwpAQCAtMjE0Miw2ICsyMTQyLDcgQEAgc3RhdGljIGlu dCBpcF9yb3V0ZV9pbnB1dF9zbG93KHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBkYWRkciwg X19iZTMyIHNhZGRyLAogCWZsNC5kYWRkciA9IGRhZGRyOwogCWZsNC5zYWRkciA9IHNhZGRyOwog CWZsNC5mbG93aTRfdWlkID0gc29ja19uZXRfdWlkKG5ldCwgTlVMTCk7CisJZmw0LmZsb3dpNF9t dWx0aXBhdGhfaGFzaCA9IDA7CiAKIAlpZiAoZmliNF9ydWxlc19lYXJseV9mbG93X2Rpc3NlY3Qo bmV0LCBza2IsICZmbDQsICZfZmxrZXlzKSkgewogCQlmbGtleXMgPSAmX2Zsa2V5czsKLS0gCjIu MjYuMgoKCkZyb20gZGYyMDBkYjgyMWVlOTZlMDJiNTYxNDFlMDIyNDEyZGRkOTUwN2I4OSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5Aa2VybmVsLm9y Zz4KRGF0ZTogTW9uLCAxNCBTZXAgMjAyMCAyMTowMzo1NCAtMDYwMApTdWJqZWN0OiBbUEFUQ0gg MTEvNTRdIGlwdjQ6IFVwZGF0ZSBleGNlcHRpb24gaGFuZGxpbmcgZm9yIG11bHRpcGF0aCByb3V0 ZXMKIHZpYSBzYW1lIGRldmljZQoKWyBVcHN0cmVhbSBjb21taXQgMmZiYzZlODliMmYxNDAzMTg5 ZTYyNGNhYmFmNzNlMTg5YzVlNTBjNiBdCgpLZmlyIHJlcG9ydGVkIHRoYXQgcG10dSBleGNlcHRp b25zIGFyZSBub3QgY3JlYXRlZCBwcm9wZXJseSBmb3IKZGVwbG95bWVudHMgd2hlcmUgbXVsdGlw YXRoIHJvdXRlcyB1c2UgdGhlIHNhbWUgZGV2aWNlLgoKQWZ0ZXIgc29tZSBkaWdnaW5nIEkgc2Vl IDIgY29tcG91bmRpbmcgcHJvYmxlbXM6CjEuIGlwX3JvdXRlX291dHB1dF9rZXlfaGFzaF9yY3Ug aXMgdXBkYXRpbmcgdGhlIGZsb3dpNF9vaWYgKmFmdGVyKgogICB0aGUgcm91dGUgbG9va3VwLiBU aGlzIGlzIHRoZSBzZWNvbmQgdXNlIGNhc2Ugd2hlcmUgdGhpcyBoYXMKICAgYmVlbiBhIHByb2Js ZW0gKHRoZSBmaXJzdCBpcyByZWxhdGVkIHRvIHVzZSBvZiB2dGkgZGV2aWNlcyB3aXRoCiAgIFZS RikuIEkgY2FuIG5vdCBmaW5kIGFueSByZWFzb24gZm9yIHRoZSBvaWYgdG8gYmUgY2hhbmdlZCBh ZnRlciB0aGUKICAgbG9va3VwOyB0aGUgY29kZSBnb2VzIGJhY2sgdG8gdGhlIHN0YXJ0IG9mIGdp dC4gSXQgZG9lcyBub3Qgc2VlbQogICBsb2dpY2FsIHNvIHJlbW92ZSBpdC4KCjIuIGZpYl9sb29r dXBzIGZvciBleGNlcHRpb25zIGRvIG5vdCBjYWxsIGZpYl9zZWxlY3RfcGF0aCB0byBoYW5kbGUK ICAgbXVsdGlwYXRoIHJvdXRlIHNlbGVjdGlvbiBiYXNlZCBvbiB0aGUgaGFzaC4KClRoZSBlbmQg cmVzdWx0IGlzIHRoYXQgdGhlIGZpYl9sb29rdXAgdXNlZCB0byBhZGQgdGhlIGV4Y2VwdGlvbgph bHdheXMgY3JlYXRlcyBpdCBiYXNlZCB1c2luZyB0aGUgZmlyc3QgbGVnIG9mIHRoZSByb3V0ZS4K CkFuIGV4YW1wbGUgdG9wb2xvZ3kgc2hvd2luZyB0aGUgcHJvYmxlbToKCiAgICAgICAgICAgICAg ICAgfCAgaG9zdDEKICAgICAgICAgICAgICstLS0tLS0rCiAgICAgICAgICAgICB8IGV0aDAgfCAg LjIwOQogICAgICAgICAgICAgKy0tLS0tLSsKICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAg ICArLS0tLS0tKwogICAgIHN3aXRjaCAgfCBicjAgIHwKICAgICAgICAgICAgICstLS0tLS0rCiAg ICAgICAgICAgICAgICAgfAogICAgICAgKy0tLS0tLS0tLSstLS0tLS0tLS0rCiAgICAgICB8IGhv c3QyICAgICAgICAgICAgIHwgIGhvc3QzCiAgICstLS0tLS0rICAgICAgICAgICAgICstLS0tLS0r CiAgIHwgZXRoMCB8IC4yNTAgICAgICAgIHwgZXRoMCB8IDE5Mi4xNjguMjUyLjI1MgogICArLS0t LS0tKyAgICAgICAgICAgICArLS0tLS0tKwoKICAgKy0tLS0tKyAgICAgICAgICAgICArLS0tLS0r CiAgIHwgdnRpIHwgLjIgICAgICAgICAgfCB2dGkgfCAxOTIuMTY4LjI0Ny4zCiAgICstLS0tLSsg ICAgICAgICAgICAgKy0tLS0tKwogICAgICAgXCAgICAgICAgICAgICAgICAgIC8KID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogdHVubmVscwogICAgICAgICAxOTIuMTY4LjI0Ny4x LzI0Cgpmb3IgaCBpbiBob3N0MSBob3N0MiBob3N0MzsgZG8KICAgICAgICBpcCBuZXRucyBhZGQg JHtofQogICAgICAgIGlwIC1uZXRucyAke2h9IGxpbmsgc2V0IGxvIHVwCiAgICAgICAgaXAgbmV0 bnMgZXhlYyAke2h9IHN5c2N0bCAtd3EgbmV0LmlwdjQuaXBfZm9yd2FyZD0xCmRvbmUKCmlwIG5l dG5zIGFkZCBzd2l0Y2gKaXAgLW5ldG5zIHN3aXRjaCBsaSBzZXQgbG8gdXAKaXAgLW5ldG5zIHN3 aXRjaCBsaW5rIGFkZCBicjAgdHlwZSBicmlkZ2Ugc3RwIDAKaXAgLW5ldG5zIHN3aXRjaCBsaW5r IHNldCBicjAgdXAKCmZvciBuIGluIDEgMiAzOyBkbwogICAgICAgIGlwIC1uZXRucyBzd2l0Y2gg bGluayBhZGQgZXRoLXN3IHR5cGUgdmV0aCBwZWVyIG5hbWUgZXRoLWgke259CiAgICAgICAgaXAg LW5ldG5zIHN3aXRjaCBsaSBzZXQgZXRoLWgke259IG1hc3RlciBicjAgdXAKICAgICAgICBpcCAt bmV0bnMgc3dpdGNoIGxpIHNldCBldGgtc3cgbmV0bnMgaG9zdCR7bn0gbmFtZSBldGgwCmRvbmUK CmlwIC1uZXRucyBob3N0MSBhZGRyIGFkZCAxOTIuMTY4LjI1Mi4yMDkvMjQgZGV2IGV0aDAKaXAg LW5ldG5zIGhvc3QxIGxpbmsgc2V0IGRldiBldGgwIHVwCmlwIC1uZXRucyBob3N0MSByb3V0ZSBh ZGQgMTkyLjE2OC4yNDcuMC8yNCBcCiAgICAgICAgbmV4dGhvcCB2aWEgMTkyLjE2OC4yNTIuMjUw IGRldiBldGgwIG5leHRob3AgdmlhIDE5Mi4xNjguMjUyLjI1MiBkZXYgZXRoMAoKaXAgLW5ldG5z IGhvc3QyIGFkZHIgYWRkIDE5Mi4xNjguMjUyLjI1MC8yNCBkZXYgZXRoMAppcCAtbmV0bnMgaG9z dDIgbGluayBzZXQgZGV2IGV0aDAgdXAKCmlwIC1uZXRucyBob3N0MiBhZGRyIGFkZCAxOTIuMTY4 LjI1Mi4yNTIvMjQgZGV2IGV0aDAKaXAgLW5ldG5zIGhvc3QzIGxpbmsgc2V0IGRldiBldGgwIHVw CgppcCBuZXRucyBhZGQgdHVubmVsCmlwIC1uZXRucyB0dW5uZWwgbGkgc2V0IGxvIHVwCmlwIC1u ZXRucyB0dW5uZWwgbGkgYWRkIGJyMCB0eXBlIGJyaWRnZQppcCAtbmV0bnMgdHVubmVsIGxpIHNl dCBicjAgdXAKZm9yIG4gaW4gJChzZXEgMTEgMjApOyBkbwogICAgICAgIGlwIC1uZXRucyB0dW5u ZWwgYWRkciBhZGQgZGV2IGJyMCAxOTIuMTY4LjI0Ny4ke259LzI0CmRvbmUKCmZvciBuIGluIDIg MwpkbwogICAgICAgIGlwIC1uZXRucyB0dW5uZWwgbGluayBhZGQgdnRpJHtufSB0eXBlIHZldGgg cGVlciBuYW1lIGV0aCR7bn0KICAgICAgICBpcCAtbmV0bnMgdHVubmVsIGxpbmsgc2V0IGV0aCR7 bn0gbXR1IDEzNjAgbWFzdGVyIGJyMCB1cAogICAgICAgIGlwIC1uZXRucyB0dW5uZWwgbGluayBz ZXQgdnRpJHtufSBuZXRucyBob3N0JHtufSBtdHUgMTM2MCB1cAogICAgICAgIGlwIC1uZXRucyBo b3N0JHtufSBhZGRyIGFkZCBkZXYgdnRpJHtufSAxOTIuMTY4LjI0Ny4ke259LzI0CmRvbmUKaXAg LW5ldG5zIHR1bm5lbCBybyBhZGQgZGVmYXVsdCBuZXh0aG9wIHZpYSAxOTIuMTY4LjI0Ny4yIG5l eHRob3AgdmlhIDE5Mi4xNjguMjQ3LjMKCmlwIG5ldG5zIGV4ZWMgaG9zdDEgcGluZyAtTSBkbyAt cyAxNDAwIC1jMyAtSSAxOTIuMTY4LjI1Mi4yMDkgMTkyLjE2OC4yNDcuMTEKaXAgbmV0bnMgZXhl YyBob3N0MSBwaW5nIC1NIGRvIC1zIDE0MDAgLWMzIC1JIDE5Mi4xNjguMjUyLjIwOSAxOTIuMTY4 LjI0Ny4xNQppcCAtbmV0bnMgaG9zdDEgcm8gbHMgY2FjaGUKCkJlZm9yZSB0aGlzIHBhdGNoIHRo ZSBjYWNoZSBhbHdheXMgc2hvd3MgZXhjZXB0aW9ucyBhZ2FpbnN0IHRoZSBmaXJzdApsZWcgaW4g dGhlIG11bHRpcGF0aCByb3V0ZTsgMTkyLjE2OC4yNTIuMjUwIHBlciB0aGlzIGV4YW1wbGUuIFNp bmNlIHRoZQpoYXNoIGhhcyBhbiBpbml0aWFsIHJhbmRvbSBzZWVkLCB5b3UgbWF5IG5lZWQgdG8g dmFyeSB0aGUgZmluYWwgb2N0ZXQKbW9yZSB0aGFuIHdoYXQgaXMgbGlzdGVkLiBJbiBteSB0ZXN0 cywgdXNpbmcgYWRkcmVzc2VzIGJldHdlZW4gMTEgYW5kIDE5CnVzdWFsbHkgZm91bmQgMSB0aGF0 IHVzZWQgYm90aCBsZWdzLgoKV2l0aCB0aGlzIHBhdGNoLCB0aGUgY2FjaGUgd2lsbCBoYXZlIGV4 Y2VwdGlvbnMgZm9yIGJvdGggbGVncy4KCkZpeGVzOiA0ODk1Yzc3MWM3ZjAgKCJpcHY0OiBBZGQg RklCIG5leHRob3AgZXhjZXB0aW9ucyIpClJlcG9ydGVkLWJ5OiBLZmlyIEl0emhhayA8bWFzdGVy dGhla25pZmVAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBr ZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjQvcm91dGUuYyB8IDEzICsrKysrKysrLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXggNDY3ZjAyOTBkYzU2Li4zN2Yx Mjg4ODk0NzQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMKKysrIGIvbmV0L2lwdjQvcm91 dGUuYwpAQCAtNzg2LDggKzc4NiwxMCBAQCBzdGF0aWMgdm9pZCBfX2lwX2RvX3JlZGlyZWN0KHN0 cnVjdCBydGFibGUgKnJ0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZmxvdwogCQkJbmVp Z2hfZXZlbnRfc2VuZChuLCBOVUxMKTsKIAkJfSBlbHNlIHsKIAkJCWlmIChmaWJfbG9va3VwKG5l dCwgZmw0LCAmcmVzLCAwKSA9PSAwKSB7Ci0JCQkJc3RydWN0IGZpYl9uaF9jb21tb24gKm5oYyA9 IEZJQl9SRVNfTkhDKHJlcyk7CisJCQkJc3RydWN0IGZpYl9uaF9jb21tb24gKm5oYzsKIAorCQkJ CWZpYl9zZWxlY3RfcGF0aChuZXQsICZyZXMsIGZsNCwgc2tiKTsKKwkJCQluaGMgPSBGSUJfUkVT X05IQyhyZXMpOwogCQkJCXVwZGF0ZV9vcl9jcmVhdGVfZm5oZShuaGMsIGZsNC0+ZGFkZHIsIG5l d19ndywKIAkJCQkJCTAsIGZhbHNlLAogCQkJCQkJamlmZmllcyArIGlwX3J0X2djX3RpbWVvdXQp OwpAQCAtMTAxMyw2ICsxMDE1LDcgQEAgb3V0OglrZnJlZV9za2Ioc2tiKTsKIHN0YXRpYyB2b2lk IF9faXBfcnRfdXBkYXRlX3BtdHUoc3RydWN0IHJ0YWJsZSAqcnQsIHN0cnVjdCBmbG93aTQgKmZs NCwgdTMyIG10dSkKIHsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QgPSAmcnQtPmRzdDsKKwlzdHJ1 Y3QgbmV0ICpuZXQgPSBkZXZfbmV0KGRzdC0+ZGV2KTsKIAl1MzIgb2xkX210dSA9IGlwdjRfbXR1 KGRzdCk7CiAJc3RydWN0IGZpYl9yZXN1bHQgcmVzOwogCWJvb2wgbG9jayA9IGZhbHNlOwpAQCAt MTAzMyw5ICsxMDM2LDExIEBAIHN0YXRpYyB2b2lkIF9faXBfcnRfdXBkYXRlX3BtdHUoc3RydWN0 IHJ0YWJsZSAqcnQsIHN0cnVjdCBmbG93aTQgKmZsNCwgdTMyIG10dSkKIAkJcmV0dXJuOwogCiAJ cmN1X3JlYWRfbG9jaygpOwotCWlmIChmaWJfbG9va3VwKGRldl9uZXQoZHN0LT5kZXYpLCBmbDQs ICZyZXMsIDApID09IDApIHsKLQkJc3RydWN0IGZpYl9uaF9jb21tb24gKm5oYyA9IEZJQl9SRVNf TkhDKHJlcyk7CisJaWYgKGZpYl9sb29rdXAobmV0LCBmbDQsICZyZXMsIDApID09IDApIHsKKwkJ c3RydWN0IGZpYl9uaF9jb21tb24gKm5oYzsKIAorCQlmaWJfc2VsZWN0X3BhdGgobmV0LCAmcmVz LCBmbDQsIE5VTEwpOworCQluaGMgPSBGSUJfUkVTX05IQyhyZXMpOwogCQl1cGRhdGVfb3JfY3Jl YXRlX2ZuaGUobmhjLCBmbDQtPmRhZGRyLCAwLCBtdHUsIGxvY2ssCiAJCQkJICAgICAgamlmZmll cyArIGlwX3J0X210dV9leHBpcmVzKTsKIAl9CkBAIC0yNjYzLDggKzI2NjgsNiBAQCBzdHJ1Y3Qg cnRhYmxlICppcF9yb3V0ZV9vdXRwdXRfa2V5X2hhc2hfcmN1KHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IGZsb3dpNCAqZmw0LAogCWZpYl9zZWxlY3RfcGF0aChuZXQsIHJlcywgZmw0LCBza2IpOwog CiAJZGV2X291dCA9IEZJQl9SRVNfREVWKCpyZXMpOwotCWZsNC0+Zmxvd2k0X29pZiA9IGRldl9v dXQtPmlmaW5kZXg7Ci0KIAogbWFrZV9yb3V0ZToKIAlydGggPSBfX21rcm91dGVfb3V0cHV0KHJl cywgZmw0LCBvcmlnX29pZiwgZGV2X291dCwgZmxhZ3MpOwotLSAKMi4yNi4yCgoKRnJvbSA5MjMz ZTQ1MmU4Mjk5ODRlODJjMzZiNmExMzAxZDBlNzliMTY5M2I4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwg OCBTZXAgMjAyMCAwMToyMDoyMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTIvNTRdIGlwdjY6IGF2 b2lkIGxvY2tkZXAgaXNzdWUgaW4gZmliNl9kZWwoKQoKWyBVcHN0cmVhbSBjb21taXQgODQzZDky NmIwMDNlYTY5MjQ2OGM4Y2M1YmVhMWY5ZjU4ZGZhOGM3NSBdCgpzeXpib3QgcmVwb3J0ZWQgdHdp Y2UgYSBsb2NrZGVwIGlzc3VlIGluIGZpYjZfZGVsKCkgWzFdCndoaWNoIEkgdGhpbmsgaXMgY2F1 c2VkIGJ5IG5ldC0+aXB2Ni5maWI2X251bGxfZW50cnkKaGF2aW5nIGEgTlVMTCBmaWI2X3RhYmxl IHBvaW50ZXIuCgpmaWI2X2RlbCgpIGFscmVhZHkgY2hlY2tzIGZvciBmaWI2X251bGxfZW50cnkg c3BlY2lhbApjYXNlLCB3ZSBvbmx5IG5lZWQgdG8gcmV0dXJuIGVhcmxpZXIuCgpCdWcgc2VlbXMg dG8gb2NjdXIgdmVyeSByYXJlbHksIEkgaGF2ZSB0aHVzIGNob3NlbgphICdidWcgb3JpZ2luJyB0 aGF0IG1ha2VzIGJhY2twb3J0cyBub3QgdG9vIGNvbXBsZXguCgpbMV0KV0FSTklORzogc3VzcGlj aW91cyBSQ1UgdXNhZ2UKNS45LjAtcmM0LXN5emthbGxlciAjMCBOb3QgdGFpbnRlZAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpuZXQvaXB2Ni9pcDZfZmliLmM6MTk5NiBzdXNwaWNpb3Vz IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoKSB1c2FnZSEKCm90aGVyIGluZm8gdGhhdCBtaWdo dCBoZWxwIHVzIGRlYnVnIHRoaXM6CgpyY3Vfc2NoZWR1bGVyX2FjdGl2ZSA9IDIsIGRlYnVnX2xv Y2tzID0gMQo0IGxvY2tzIGhlbGQgYnkgc3l6LWV4ZWN1dG9yLjUvODA5NToKICMwOiBmZmZmZmZm ZjhhN2VhNzA4IChydG5sX211dGV4KXsrLisufS17MzozfSwgYXQ6IHBwcF9yZWxlYXNlKzB4MTc4 LzB4MjQwIGRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jOjQwMQogIzE6IGZmZmY4ODgwNGM0 MjJkZDggKCZuZXQtPmlwdjYuZmliNl9nY19sb2NrKXsrLi0ufS17MjoyfSwgYXQ6IHNwaW5fdHJ5 bG9ja19iaCBpbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmg6NDE0IFtpbmxpbmVdCiAjMTogZmZmZjg4 ODA0YzQyMmRkOCAoJm5ldC0+aXB2Ni5maWI2X2djX2xvY2speysuLS59LXsyOjJ9LCBhdDogZmli Nl9ydW5fZ2MrMHgyMWIvMHgyZDAgbmV0L2lwdjYvaXA2X2ZpYi5jOjIzMTIKICMyOiBmZmZmZmZm Zjg5YmQ2YTQwIChyY3VfcmVhZF9sb2NrKXsuLi4ufS17MToyfSwgYXQ6IF9fZmliNl9jbGVhbl9h bGwrMHgwLzB4MjkwIG5ldC9pcHY2L2lwNl9maWIuYzoyNjEzCiAjMzogZmZmZjg4ODBhODJlNjQz MCAoJnRiLT50YjZfbG9jayl7Ky4tLn0tezI6Mn0sIGF0OiBzcGluX2xvY2tfYmggaW5jbHVkZS9s aW51eC9zcGlubG9jay5oOjM1OSBbaW5saW5lXQogIzM6IGZmZmY4ODgwYTgyZTY0MzAgKCZ0Yi0+ dGI2X2xvY2speysuLS59LXsyOjJ9LCBhdDogX19maWI2X2NsZWFuX2FsbCsweDEwNy8weDI5MCBu ZXQvaXB2Ni9pcDZfZmliLmM6MjI0NQoKc3RhY2sgYmFja3RyYWNlOgpDUFU6IDEgUElEOiA4MDk1 IENvbW06IHN5ei1leGVjdXRvci41IE5vdCB0YWludGVkIDUuOS4wLXJjNC1zeXprYWxsZXIgIzAK SGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0 ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFj ayBsaWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTk4LzB4MWZkIGxp Yi9kdW1wX3N0YWNrLmM6MTE4CiBmaWI2X2RlbCsweDEyYjQvMHgxNjMwIG5ldC9pcHY2L2lwNl9m aWIuYzoxOTk2CiBmaWI2X2NsZWFuX25vZGUrMHgzOWIvMHg1NzAgbmV0L2lwdjYvaXA2X2ZpYi5j OjIxODAKIGZpYjZfd2Fsa19jb250aW51ZSsweDRhYS8weDhlMCBuZXQvaXB2Ni9pcDZfZmliLmM6 MjEwMgogZmliNl93YWxrKzB4MTgyLzB4MzcwIG5ldC9pcHY2L2lwNl9maWIuYzoyMTUwCiBmaWI2 X2NsZWFuX3RyZWUrMHhkYi8weDEyMCBuZXQvaXB2Ni9pcDZfZmliLmM6MjIzMAogX19maWI2X2Ns ZWFuX2FsbCsweDEyMC8weDI5MCBuZXQvaXB2Ni9pcDZfZmliLmM6MjI0NgogZmliNl9jbGVhbl9h bGwgbmV0L2lwdjYvaXA2X2ZpYi5jOjIyNTcgW2lubGluZV0KIGZpYjZfcnVuX2djKzB4MTEzLzB4 MmQwIG5ldC9pcHY2L2lwNl9maWIuYzoyMzIwCiBuZGlzY19uZXRkZXZfZXZlbnQrMHgyMTcvMHgz NTAgbmV0L2lwdjYvbmRpc2MuYzoxODA1CiBub3RpZmllcl9jYWxsX2NoYWluKzB4YjUvMHgyMDAg a2VybmVsL25vdGlmaWVyLmM6ODMKIGNhbGxfbmV0ZGV2aWNlX25vdGlmaWVyc19pbmZvKzB4YjUv MHgxMzAgbmV0L2NvcmUvZGV2LmM6MjAzMwogY2FsbF9uZXRkZXZpY2Vfbm90aWZpZXJzX2V4dGFj ayBuZXQvY29yZS9kZXYuYzoyMDQ1IFtpbmxpbmVdCiBjYWxsX25ldGRldmljZV9ub3RpZmllcnMg bmV0L2NvcmUvZGV2LmM6MjA1OSBbaW5saW5lXQogZGV2X2Nsb3NlX21hbnkrMHgzMGIvMHg2NTAg bmV0L2NvcmUvZGV2LmM6MTYzNAogcm9sbGJhY2tfcmVnaXN0ZXJlZF9tYW55KzB4M2E4LzB4MTIx MCBuZXQvY29yZS9kZXYuYzo5MjYxCiByb2xsYmFja19yZWdpc3RlcmVkIG5ldC9jb3JlL2Rldi5j OjkzMjkgW2lubGluZV0KIHVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKzB4MmRkLzB4NTcwIG5l dC9jb3JlL2Rldi5jOjEwNDEwCiB1bnJlZ2lzdGVyX25ldGRldmljZSBpbmNsdWRlL2xpbnV4L25l dGRldmljZS5oOjI3NzQgW2lubGluZV0KIHBwcF9yZWxlYXNlKzB4MjE2LzB4MjQwIGRyaXZlcnMv bmV0L3BwcC9wcHBfZ2VuZXJpYy5jOjQwMwogX19mcHV0KzB4Mjg1LzB4OTIwIGZzL2ZpbGVfdGFi bGUuYzoyODEKIHRhc2tfd29ya19ydW4rMHhkZC8weDE5MCBrZXJuZWwvdGFza193b3JrLmM6MTQx CiB0cmFjZWhvb2tfbm90aWZ5X3Jlc3VtZSBpbmNsdWRlL2xpbnV4L3RyYWNlaG9vay5oOjE4OCBb aW5saW5lXQogZXhpdF90b191c2VyX21vZGVfbG9vcCBrZXJuZWwvZW50cnkvY29tbW9uLmM6MTYz IFtpbmxpbmVdCiBleGl0X3RvX3VzZXJfbW9kZV9wcmVwYXJlKzB4MWUxLzB4MjAwIGtlcm5lbC9l bnRyeS9jb21tb24uYzoxOTAKIHN5c2NhbGxfZXhpdF90b191c2VyX21vZGUrMHg3ZS8weDJlMCBr ZXJuZWwvZW50cnkvY29tbW9uLmM6MjY1CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUr MHg0NC8weGE5CgpGaXhlczogNDIxODQyZWRlYWY2ICgibmV0L2lwdjY6IEFkZCBmaWI2X251bGxf ZW50cnkiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ CkNjOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBB aGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfZmliLmMgfCAxMyArKysrKysr KystLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9maWIuYyBiL25ldC9pcHY2L2lwNl9maWIuYwppbmRl eCA0OWVlODliYmNiYTAuLjNjMzJkY2I1ZmQ4ZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2Zp Yi5jCisrKyBiL25ldC9pcHY2L2lwNl9maWIuYwpAQCAtMTk5MiwxNCArMTk5MiwxOSBAQCBzdGF0 aWMgdm9pZCBmaWI2X2RlbF9yb3V0ZShzdHJ1Y3QgZmliNl90YWJsZSAqdGFibGUsIHN0cnVjdCBm aWI2X25vZGUgKmZuLAogLyogTmVlZCB0byBvd24gdGFibGUtPnRiNl9sb2NrICovCiBpbnQgZmli Nl9kZWwoc3RydWN0IGZpYjZfaW5mbyAqcnQsIHN0cnVjdCBubF9pbmZvICppbmZvKQogewotCXN0 cnVjdCBmaWI2X25vZGUgKmZuID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChydC0+ZmliNl9u b2RlLAotCQkJCSAgICBsb2NrZGVwX2lzX2hlbGQoJnJ0LT5maWI2X3RhYmxlLT50YjZfbG9jaykp OwotCXN0cnVjdCBmaWI2X3RhYmxlICp0YWJsZSA9IHJ0LT5maWI2X3RhYmxlOwogCXN0cnVjdCBu ZXQgKm5ldCA9IGluZm8tPm5sX25ldDsKIAlzdHJ1Y3QgZmliNl9pbmZvIF9fcmN1ICoqcnRwOwog CXN0cnVjdCBmaWI2X2luZm8gX19yY3UgKipydHBfbmV4dDsKKwlzdHJ1Y3QgZmliNl90YWJsZSAq dGFibGU7CisJc3RydWN0IGZpYjZfbm9kZSAqZm47CisKKwlpZiAocnQgPT0gbmV0LT5pcHY2LmZp YjZfbnVsbF9lbnRyeSkKKwkJcmV0dXJuIC1FTk9FTlQ7CiAKLQlpZiAoIWZuIHx8IHJ0ID09IG5l dC0+aXB2Ni5maWI2X251bGxfZW50cnkpCisJdGFibGUgPSBydC0+ZmliNl90YWJsZTsKKwlmbiA9 IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQocnQtPmZpYjZfbm9kZSwKKwkJCQkgICAgICAgbG9j a2RlcF9pc19oZWxkKCZ0YWJsZS0+dGI2X2xvY2spKTsKKwlpZiAoIWZuKQogCQlyZXR1cm4gLUVO T0VOVDsKIAogCVdBUk5fT04oIShmbi0+Zm5fZmxhZ3MgJiBSVE5fUlRJTkZPKSk7Ci0tIAoyLjI2 LjIKCgpGcm9tIGQ5MTBjMWYyZDk3MDExYTg1YTE5YTBjYjNiZTBlMzFmZmMxMDQ1NzMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZsYWRpbWlyIE9sdGVhbiA8dmxhZGltaXIub2x0ZWFu QG54cC5jb20+CkRhdGU6IFR1ZSwgMjIgU2VwIDIwMjAgMDE6MDc6MDkgKzAzMDAKU3ViamVjdDog W1BBVENIIDEzLzU0XSBuZXQ6IGJyaWRnZTogYnJfdmxhbl9nZXRfcHZpZF9yY3UoKSBzaG91bGQg ZGVyZWZlcmVuY2UKIHRoZSBWTEFOIGdyb3VwIHVuZGVyIFJDVQoKWyBVcHN0cmVhbSBjb21taXQg OTlmNjJhNzQ2MDY2ZmE0MzZhYTE1ZDQ2MDZhNTM4NTY5NTQwZGIwOCBdCgpXaGVuIGNhbGxpbmcg dGhlIFJDVSBicm90aGVyIG9mIGJyX3ZsYW5fZ2V0X3B2aWQoKSwgbG9ja2RlcCB3YXJuczoKCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CldBUk5JTkc6IHN1c3BpY2lvdXMgUkNVIHVzYWdl CjUuOS4wLXJjMy0wMTYzMS1nMTNjMTdhY2I4ZTM4LWRpcnR5ICM4MTQgTm90IHRhaW50ZWQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KbmV0L2JyaWRnZS9icl9wcml2YXRlLmg6MTA1NCBz dXNwaWNpb3VzIHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoKSB1c2FnZSEKCkNhbGwgdHJhY2U6 CiBsb2NrZGVwX3JjdV9zdXNwaWNpb3VzKzB4ZDQvMHhmOAogX19icl92bGFuX2dldF9wdmlkKzB4 YzAvMHgxMDAKIGJyX3ZsYW5fZ2V0X3B2aWRfcmN1KzB4NzgvMHgxMDgKClRoZSB3YXJuaW5nIGlz IGJlY2F1c2UgYnJfdmxhbl9nZXRfcHZpZF9yY3UoKSBjYWxscyBuYnBfdmxhbl9ncm91cCgpCndo aWNoIGNhbGxzIHJ0bmxfZGVyZWZlcmVuY2UoKSBpbnN0ZWFkIG9mIHJjdV9kZXJlZmVyZW5jZSgp LiBJbiB0dXJuLApydG5sX2RlcmVmZXJlbmNlKCkgY2FsbHMgcmN1X2RlcmVmZXJlbmNlX3Byb3Rl Y3RlZCgpIHdoaWNoIGFzc3VtZXMKb3BlcmF0aW9uIHVuZGVyIGFuIFJDVSB3cml0ZS1zaWRlIGNy aXRpY2FsIHNlY3Rpb24sIHdoaWNoIG9idmlvdXNseSBpcwpub3QgdGhlIGNhc2UgaGVyZS4gU28s IHdoZW4gdGhlIGluY29ycmVjdCBwcmltaXRpdmUgaXMgdXNlZCB0byBhY2Nlc3MKdGhlIFJDVS1w cm90ZWN0ZWQgVkxBTiBncm91cCBwb2ludGVyLCBSRUFEX09OQ0UoKSBpcyBub3QgdXNlZCwgd2hp Y2ggbWF5CmNhdXNlIHZhcmlvdXMgdW5leHBlY3RlZCBwcm9ibGVtcy4KCkknbSBzYWQgdG8gc2F5 IHRoYXQgYnJfdmxhbl9nZXRfcHZpZCgpIGFuZCBicl92bGFuX2dldF9wdmlkX3JjdSgpIGNhbm5v dApzaGFyZSB0aGUgc2FtZSBpbXBsZW1lbnRhdGlvbi4gU28gZml4IHRoZSBidWcgYnkgc3BsaXR0 aW5nIHRoZSAyCmZ1bmN0aW9ucywgYW5kIG1ha2luZyBicl92bGFuX2dldF9wdmlkX3JjdSgpIHJl dHJpZXZlIHRoZSBWTEFOIGdyb3Vwcwp1bmRlciBwcm9wZXIgbG9ja2luZyBhbm5vdGF0aW9ucy4K CkZpeGVzOiA3NTgyZjViNzBmOWEgKCJicmlkZ2U6IGFkZCBicl92bGFuX2dldF9wdmlkX3JjdSgp IikKU2lnbmVkLW9mZi1ieTogVmxhZGltaXIgT2x0ZWFuIDx2bGFkaW1pci5vbHRlYW5AbnhwLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9icmlkZ2UvYnJfdmxhbi5jIHwgMjcgKysrKysrKysrKysrKysrKystLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2JyaWRnZS9icl92bGFuLmMgYi9uZXQvYnJpZGdlL2JyX3ZsYW4uYwppbmRl eCBmOTA5MmM3MTIyNWYuLjYxYzk0Y2VmYTg0MyAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl92 bGFuLmMKKysrIGIvbmV0L2JyaWRnZS9icl92bGFuLmMKQEAgLTEyODgsMTEgKzEyODgsMTMgQEAg dm9pZCBicl92bGFuX2dldF9zdGF0cyhjb25zdCBzdHJ1Y3QgbmV0X2JyaWRnZV92bGFuICp2LAog CX0KIH0KIAotc3RhdGljIGludCBfX2JyX3ZsYW5fZ2V0X3B2aWQoY29uc3Qgc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKLQkJCSAgICAgIHN0cnVjdCBuZXRfYnJpZGdlX3BvcnQgKnAsIHUxNiAqcF9w dmlkKQoraW50IGJyX3ZsYW5fZ2V0X3B2aWQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg dTE2ICpwX3B2aWQpCiB7CiAJc3RydWN0IG5ldF9icmlkZ2Vfdmxhbl9ncm91cCAqdmc7CisJc3Ry dWN0IG5ldF9icmlkZ2VfcG9ydCAqcDsKIAorCUFTU0VSVF9SVE5MKCk7CisJcCA9IGJyX3BvcnRf Z2V0X2NoZWNrX3J0bmwoZGV2KTsKIAlpZiAocCkKIAkJdmcgPSBuYnBfdmxhbl9ncm91cChwKTsK IAllbHNlIGlmIChuZXRpZl9pc19icmlkZ2VfbWFzdGVyKGRldikpCkBAIC0xMzAzLDE4ICsxMzA1 LDIzIEBAIHN0YXRpYyBpbnQgX19icl92bGFuX2dldF9wdmlkKGNvbnN0IHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsCiAJKnBfcHZpZCA9IGJyX2dldF9wdmlkKHZnKTsKIAlyZXR1cm4gMDsKIH0KLQot aW50IGJyX3ZsYW5fZ2V0X3B2aWQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2ICpw X3B2aWQpCi17Ci0JQVNTRVJUX1JUTkwoKTsKLQotCXJldHVybiBfX2JyX3ZsYW5fZ2V0X3B2aWQo ZGV2LCBicl9wb3J0X2dldF9jaGVja19ydG5sKGRldiksIHBfcHZpZCk7Ci19CiBFWFBPUlRfU1lN Qk9MX0dQTChicl92bGFuX2dldF9wdmlkKTsKIAogaW50IGJyX3ZsYW5fZ2V0X3B2aWRfcmN1KGNv bnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUxNiAqcF9wdmlkKQogewotCXJldHVybiBfX2Jy X3ZsYW5fZ2V0X3B2aWQoZGV2LCBicl9wb3J0X2dldF9jaGVja19yY3UoZGV2KSwgcF9wdmlkKTsK KwlzdHJ1Y3QgbmV0X2JyaWRnZV92bGFuX2dyb3VwICp2ZzsKKwlzdHJ1Y3QgbmV0X2JyaWRnZV9w b3J0ICpwOworCisJcCA9IGJyX3BvcnRfZ2V0X2NoZWNrX3JjdShkZXYpOworCWlmIChwKQorCQl2 ZyA9IG5icF92bGFuX2dyb3VwX3JjdShwKTsKKwllbHNlIGlmIChuZXRpZl9pc19icmlkZ2VfbWFz dGVyKGRldikpCisJCXZnID0gYnJfdmxhbl9ncm91cF9yY3UobmV0ZGV2X3ByaXYoZGV2KSk7CisJ ZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKKworCSpwX3B2aWQgPSBicl9nZXRfcHZpZCh2Zyk7CisJ cmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChicl92bGFuX2dldF9wdmlkX3JjdSk7CiAK LS0gCjIuMjYuMgoKCkZyb20gMWE4YTA1OGVjYzc5MDczNzllNzZmOTk3NjI0OTZiMDg2M2NmZTkz ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGV0ciBNYWNoYXRhIDxwZXRybUBudmlk aWEuY29tPgpEYXRlOiBUaHUsIDEwIFNlcCAyMDIwIDE0OjA5OjA1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxNC81NF0gbmV0OiBEQ0I6IFZhbGlkYXRlIERDQl9BVFRSX0RDQl9CVUZGRVIgYXJndW1l bnQKClsgVXBzdHJlYW0gY29tbWl0IDI5N2U3N2U1M2VhZGIzMzJkNTA2MjkxMzQ0N2IxMDRhNzcy ZGMzM2IgXQoKVGhlIHBhcmFtZXRlciBwYXNzZWQgdmlhIERDQl9BVFRSX0RDQl9CVUZGRVIgaXMg YSBzdHJ1Y3QgZGNibmxfYnVmZmVyLiBUaGUKZmllbGQgcHJpbzJidWZmZXIgaXMgYW4gYXJyYXkg b2YgSUVFRV84MDIxUV9NQVhfUFJJT1JJVElFUyBieXRlcywgd2hlcmUKZWFjaCB2YWx1ZSBpcyBh IG51bWJlciBvZiBhIGJ1ZmZlciB0byBkaXJlY3QgdGhhdCBwcmlvcml0eSdzIHRyYWZmaWMgdG8u ClRoYXQgdmFsdWUgaXMgaG93ZXZlciBuZXZlciB2YWxpZGF0ZWQgdG8gbGllIHdpdGhpbiB0aGUg Ym91bmRzIHNldCBieQpEQ0JYX01BWF9CVUZGRVJTLiBUaGUgb25seSBkcml2ZXIgdGhhdCBjdXJy ZW50bHkgaW1wbGVtZW50cyB0aGUgY2FsbGJhY2sgaXMKbWx4NSAobWFpbnRhaW5lcnMgQ0NkKSwg YW5kIHRoYXQgZG9lcyBub3QgZG8gYW55IHZhbGlkYXRpb24gZWl0aGVyLCBpbgpwYXJ0aWN1YWwg YWxsb3dpbmcgaW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gaWYgdGhlIHByaW8yYnVmZmVyIHZhbHVl IGRvZXMKbm90IGZpdCBpbnRvIDQgYml0cy4KCkluc3RlYWQgb2Ygb2ZmbG9hZGluZyB0aGUgbmVl ZCB0byB2YWxpZGF0ZSB0aGUgYnVmZmVyIGluZGV4IHRvIGRyaXZlcnMsIGRvCml0IHJpZ2h0IHRo ZXJlIGluIGNvcmUsIGFuZCBib3VuY2UgdGhlIHJlcXVlc3QgaWYgdGhlIHZhbHVlIGlzIHRvbyBs YXJnZS4KCkNDOiBQYXJhdiBQYW5kaXQgPHBhcmF2QG52aWRpYS5jb20+CkNDOiBTYWVlZCBNYWhh bWVlZCA8c2FlZWRtQG52aWRpYS5jb20+CkZpeGVzOiBlNTQ5ZjZmOWMwOTggKCJuZXQvZGNiOiBB ZGQgZGNibmwgYnVmZmVyIGF0dHJpYnV0ZSIpClNpZ25lZC1vZmYtYnk6IFBldHIgTWFjaGF0YSA8 cGV0cm1AbnZpZGlhLmNvbT4KUmV2aWV3ZWQtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG52aWRp YS5jb20+ClJldmlld2VkLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG52aWRpYS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvZGNi L2RjYm5sLmMgfCA4ICsrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvbmV0L2RjYi9kY2JubC5jIGIvbmV0L2RjYi9kY2JubC5jCmluZGV4IGQyYTQ1 NTNiY2YzOS4uMGZkMWMyYWExMzYxIDEwMDY0NAotLS0gYS9uZXQvZGNiL2RjYm5sLmMKKysrIGIv bmV0L2RjYi9kY2JubC5jCkBAIC0xNDI2LDYgKzE0MjYsNyBAQCBzdGF0aWMgaW50IGRjYm5sX2ll ZWVfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAog ewogCWNvbnN0IHN0cnVjdCBkY2JubF9ydG5sX29wcyAqb3BzID0gbmV0ZGV2LT5kY2JubF9vcHM7 CiAJc3RydWN0IG5sYXR0ciAqaWVlZVtEQ0JfQVRUUl9JRUVFX01BWCArIDFdOworCWludCBwcmlv OwogCWludCBlcnI7CiAKIAlpZiAoIW9wcykKQEAgLTE0NzUsNiArMTQ3NiwxMyBAQCBzdGF0aWMg aW50IGRjYm5sX2llZWVfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHN0cnVjdCBubG1z Z2hkciAqbmxoLAogCQlzdHJ1Y3QgZGNibmxfYnVmZmVyICpidWZmZXIgPQogCQkJbmxhX2RhdGEo aWVlZVtEQ0JfQVRUUl9EQ0JfQlVGRkVSXSk7CiAKKwkJZm9yIChwcmlvID0gMDsgcHJpbyA8IEFS UkFZX1NJWkUoYnVmZmVyLT5wcmlvMmJ1ZmZlcik7IHByaW8rKykgeworCQkJaWYgKGJ1ZmZlci0+ cHJpbzJidWZmZXJbcHJpb10gPj0gRENCWF9NQVhfQlVGRkVSUykgeworCQkJCWVyciA9IC1FSU5W QUw7CisJCQkJZ290byBlcnI7CisJCQl9CisJCX0KKwogCQllcnIgPSBvcHMtPmRjYm5sX3NldGJ1 ZmZlcihuZXRkZXYsIGJ1ZmZlcik7CiAJCWlmIChlcnIpCiAJCQlnb3RvIGVycjsKLS0gCjIuMjYu MgoKCkZyb20gZjRiYjY0YTFiYjkzNjVmNGM3YzNiYWRjOTFlNjExZjAwYTA5YzA1OSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTGludXMgV2FsbGVpaiA8bGludXMud2FsbGVpakBsaW5h cm8ub3JnPgpEYXRlOiBTYXQsIDUgU2VwIDIwMjAgMTI6MzI6MzMgKzAyMDAKU3ViamVjdDogW1BB VENIIDE1LzU0XSBuZXQ6IGRzYTogcnRsODM2NjogUHJvcGVybHkgY2xlYXIgbWVtYmVyIGNvbmZp ZwoKWyBVcHN0cmVhbSBjb21taXQgNGRkY2FmMWViYjVlNGU5OTI0MGYyOWQ1MzFlZTY5ZDQyNDRm ZTQxNiBdCgpXaGVuIHJlbW92aW5nIGEgcG9ydCBmcm9tIGEgVkxBTiB3ZSBhcmUganVzdCBlcmFz aW5nIHRoZQptZW1iZXIgY29uZmlnIGZvciB0aGUgVkxBTiwgd2hpY2ggaXMgd3Jvbmc6IG90aGVy IHBvcnRzCmNhbiBiZSB1c2luZyBpdC4KCkp1c3QgbWFzayBvZmYgdGhlIHBvcnQgYW5kIG9ubHkg emVybyBvdXQgdGhlIHJlc3Qgb2YgdGhlCm1lbWJlciBjb25maWcgb25jZSBwb3J0cyB1c2luZyBv ZiB0aGUgVkxBTiBhcmUgcmVtb3ZlZApmcm9tIGl0LgoKUmVwb3J0ZWQtYnk6IEZsb3JpYW4gRmFp bmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpGaXhlczogZDg2NTI5NTZjZjM3ICgibmV0OiBk c2E6IHJlYWx0ZWstc21pOiBBZGQgUmVhbHRlayBTTUkgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTog TGludXMgV2FsbGVpaiA8bGludXMud2FsbGVpakBsaW5hcm8ub3JnPgpTaWduZWQtb2ZmLWJ5OiBK YWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvbmV0L2RzYS9ydGw4 MzY2LmMgfCAyMCArKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3J0 bDgzNjYuYyBiL2RyaXZlcnMvbmV0L2RzYS9ydGw4MzY2LmMKaW5kZXggMTM2ODgxNmFiYWVkLi45 OWNkYjJmMThmYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9ydGw4MzY2LmMKKysrIGIv ZHJpdmVycy9uZXQvZHNhL3J0bDgzNjYuYwpAQCAtNDUyLDEzICs0NTIsMTkgQEAgaW50IHJ0bDgz NjZfdmxhbl9kZWwoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAkJCQlyZXR1cm4g cmV0OwogCiAJCQlpZiAodmlkID09IHZsYW5tYy52aWQpIHsKLQkJCQkvKiBjbGVhciBWTEFOIG1l bWJlciBjb25maWd1cmF0aW9ucyAqLwotCQkJCXZsYW5tYy52aWQgPSAwOwotCQkJCXZsYW5tYy5w cmlvcml0eSA9IDA7Ci0JCQkJdmxhbm1jLm1lbWJlciA9IDA7Ci0JCQkJdmxhbm1jLnVudGFnID0g MDsKLQkJCQl2bGFubWMuZmlkID0gMDsKLQorCQkJCS8qIFJlbW92ZSB0aGlzIHBvcnQgZnJvbSB0 aGUgVkxBTiAqLworCQkJCXZsYW5tYy5tZW1iZXIgJj0gfkJJVChwb3J0KTsKKwkJCQl2bGFubWMu dW50YWcgJj0gfkJJVChwb3J0KTsKKwkJCQkvKgorCQkJCSAqIElmIG5vIHBvcnRzIGFyZSBtZW1i ZXJzIG9mIHRoaXMgVkxBTgorCQkJCSAqIGFueW1vcmUgdGhlbiBjbGVhciB0aGUgd2hvbGUgbWVt YmVyCisJCQkJICogY29uZmlnIHNvIGl0IGNhbiBiZSByZXVzZWQuCisJCQkJICovCisJCQkJaWYg KCF2bGFubWMubWVtYmVyICYmIHZsYW5tYy51bnRhZykgeworCQkJCQl2bGFubWMudmlkID0gMDsK KwkJCQkJdmxhbm1jLnByaW9yaXR5ID0gMDsKKwkJCQkJdmxhbm1jLmZpZCA9IDA7CisJCQkJfQog CQkJCXJldCA9IHNtaS0+b3BzLT5zZXRfdmxhbl9tYyhzbWksIGksICZ2bGFubWMpOwogCQkJCWlm IChyZXQpIHsKIAkJCQkJZGV2X2VycihzbWktPmRldiwKLS0gCjIuMjYuMgoKCkZyb20gYzk5M2Yx MzY5N2EzZWViNmQ5ZTM4YWRiYzM4ZjIxOTI5MzFjOGI4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbnZpZGlhLmNvbT4KRGF0ZTogVGh1LCAxMCBT ZXAgMjAyMCAxNDowMToyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTYvNTRdIG5ldDogRml4IGJy aWRnZSBlbnNsYXZlbWVudCBmYWlsdXJlCgpbIFVwc3RyZWFtIGNvbW1pdCBlMWI5ZWZlNmJhZWJl NzkwMTlhMjE4MzE3NjY4NmEwZTcwOTM4OGFlIF0KCldoZW4gYSBuZXRkZXYgaXMgZW5zbGF2ZWQg dG8gYSBicmlkZ2UsIGl0cyBwYXJlbnQgaWRlbnRpZmllciBpcyBxdWVyaWVkLgpUaGlzIGlzIGRv bmUgc28gdGhhdCBwYWNrZXRzIHRoYXQgd2VyZSBhbHJlYWR5IGZvcndhcmRlZCBpbiBoYXJkd2Fy ZQp3aWxsIG5vdCBiZSBmb3J3YXJkZWQgYWdhaW4gYnkgdGhlIGJyaWRnZSBkZXZpY2UgYmV0d2Vl biBuZXRkZXZzCmJlbG9uZ2luZyB0byB0aGUgc2FtZSBoYXJkd2FyZSBpbnN0YW5jZS4KClRoZSBv cGVyYXRpb24gZmFpbHMgd2hlbiB0aGUgbmV0ZGV2IGlzIGFuIHVwcGVyIG9mIG5ldGRldnMgd2l0 aApkaWZmZXJlbnQgcGFyZW50IGlkZW50aWZpZXJzLgoKSW5zdGVhZCBvZiBmYWlsaW5nIHRoZSBl bnNsYXZlbWVudCwgaGF2ZSBkZXZfZ2V0X3BvcnRfcGFyZW50X2lkKCkgcmV0dXJuCictRU9QTk9U U1VQUCcgd2hpY2ggd2lsbCBzaWduYWwgdGhlIGJyaWRnZSB0byBza2lwIHRoZSBxdWVyeSBvcGVy YXRpb24uCk90aGVyIGNhbGxlcnMgb2YgdGhlIGZ1bmN0aW9uIGFyZSBub3QgYWZmZWN0ZWQgYnkg dGhpcyBjaGFuZ2UuCgpGaXhlczogN2UxMTQ2ZThjMTBjICgibmV0OiBkZXZsaW5rOiBpbnRyb2R1 Y2UgZGV2bGlua19jb21wYXRfc3dpdGNoX2lkX2dldCgpIGhlbHBlciIpClNpZ25lZC1vZmYtYnk6 IElkbyBTY2hpbW1lbCA8aWRvc2NoQG52aWRpYS5jb20+ClJlcG9ydGVkLWJ5OiBWYXN1bmRoYXJh IFZvbGFtIDx2YXN1bmRoYXJhLXYudm9sYW1AYnJvYWRjb20uY29tPgpSZXZpZXdlZC1ieTogSmly aSBQaXJrbyA8amlyaUBudmlkaWEuY29tPgpSZXZpZXdlZC1ieTogTmlrb2xheSBBbGVrc2FuZHJv diA8bmlrb2xheUBudmlkaWEuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZGV2LmMgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29y ZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5jCmluZGV4IDViZDBiNTUwODkzZi4uMTgxYjEzZTAyYmRj IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtODY0 MSw3ICs4NjQxLDcgQEAgaW50IGRldl9nZXRfcG9ydF9wYXJlbnRfaWQoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwKIAkJaWYgKCFmaXJzdC5pZF9sZW4pCiAJCQlmaXJzdCA9ICpwcGlkOwogCQllbHNl IGlmIChtZW1jbXAoJmZpcnN0LCBwcGlkLCBzaXplb2YoKnBwaWQpKSkKLQkJCXJldHVybiAtRU5P REFUQTsKKwkJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKIAlyZXR1cm4gZXJyOwotLSAKMi4y Ni4yCgoKRnJvbSAyMzBiYjViMjhiZGRiYjY1ZDc1ZjUwZGI0MzA4NmEwMmFkOTBmZjljIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOZWNpcCBGYXppbCBZaWxkaXJhbiA8ZmF6aWx5aWxk aXJhbkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMTk6NDY6NDMgKzAzMDAKU3Vi amVjdDogW1BBVENIIDE3LzU0XSBuZXQ6IGlwdjY6IGZpeCBrY29uZmlnIGRlcGVuZGVuY3kgd2Fy bmluZyBmb3IKIElQVjZfU0VHNl9ITUFDCgpbIFVwc3RyZWFtIGNvbW1pdCBkYjdjZDkxYTRiZTE1 ZTE0ODVkNmI1OGM2YWZjODc2MWM1OWM0ZWZiIF0KCldoZW4gSVBWNl9TRUc2X0hNQUMgaXMgZW5h YmxlZCBhbmQgQ1JZUFRPIGlzIGRpc2FibGVkLCBpdCByZXN1bHRzIGluIHRoZQpmb2xsb3dpbmcg S2J1aWxkIHdhcm5pbmc6CgpXQVJOSU5HOiB1bm1ldCBkaXJlY3QgZGVwZW5kZW5jaWVzIGRldGVj dGVkIGZvciBDUllQVE9fSE1BQwogIERlcGVuZHMgb24gW25dOiBDUllQVE8gWz1uXQogIFNlbGVj dGVkIGJ5IFt5XToKICAtIElQVjZfU0VHNl9ITUFDIFs9eV0gJiYgTkVUIFs9eV0gJiYgSU5FVCBb PXldICYmIElQVjYgWz15XQoKV0FSTklORzogdW5tZXQgZGlyZWN0IGRlcGVuZGVuY2llcyBkZXRl Y3RlZCBmb3IgQ1JZUFRPX1NIQTEKICBEZXBlbmRzIG9uIFtuXTogQ1JZUFRPIFs9bl0KICBTZWxl Y3RlZCBieSBbeV06CiAgLSBJUFY2X1NFRzZfSE1BQyBbPXldICYmIE5FVCBbPXldICYmIElORVQg Wz15XSAmJiBJUFY2IFs9eV0KCldBUk5JTkc6IHVubWV0IGRpcmVjdCBkZXBlbmRlbmNpZXMgZGV0 ZWN0ZWQgZm9yIENSWVBUT19TSEEyNTYKICBEZXBlbmRzIG9uIFtuXTogQ1JZUFRPIFs9bl0KICBT ZWxlY3RlZCBieSBbeV06CiAgLSBJUFY2X1NFRzZfSE1BQyBbPXldICYmIE5FVCBbPXldICYmIElO RVQgWz15XSAmJiBJUFY2IFs9eV0KClRoZSByZWFzb24gaXMgdGhhdCBJUFY2X1NFRzZfSE1BQyBz ZWxlY3RzIENSWVBUT19ITUFDLCBDUllQVE9fU0hBMSwgYW5kCkNSWVBUT19TSEEyNTYgd2l0aG91 dCBkZXBlbmRpbmcgb24gb3Igc2VsZWN0aW5nIENSWVBUTyB3aGlsZSB0aG9zZSBjb25maWdzCmFy ZSBzdWJvcmRpbmF0ZSB0byBDUllQVE8uCgpIb25vciB0aGUga2NvbmZpZyBtZW51IGhpZXJhcmNo eSB0byByZW1vdmUga2NvbmZpZyBkZXBlbmRlbmN5IHdhcm5pbmdzLgoKRml4ZXM6IGJmMzU1Yjhk MmMzMCAoImlwdjY6IHNyOiBhZGQgY29yZSBmaWxlcyBmb3IgU1IgSE1BQyBzdXBwb3J0IikKU2ln bmVkLW9mZi1ieTogTmVjaXAgRmF6aWwgWWlsZGlyYW4gPGZhemlseWlsZGlyYW5AZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjYvS2NvbmZpZyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvS2NvbmZpZyBiL25ldC9pcHY2L0tjb25maWcKaW5kZXgg ZjRmMTllODlhZjVlLi45ZDY2YWY5ZTRjN2YgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L0tjb25maWcK KysrIGIvbmV0L2lwdjYvS2NvbmZpZwpAQCAtMzAzLDYgKzMwMyw3IEBAIGNvbmZpZyBJUFY2X1NF RzZfTFdUVU5ORUwKIGNvbmZpZyBJUFY2X1NFRzZfSE1BQwogCWJvb2wgIklQdjY6IFNlZ21lbnQg Um91dGluZyBITUFDIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBJUFY2CisJc2VsZWN0IENSWVBUTwog CXNlbGVjdCBDUllQVE9fSE1BQwogCXNlbGVjdCBDUllQVE9fU0hBMQogCXNlbGVjdCBDUllQVE9f U0hBMjU2Ci0tIAoyLjI2LjIKCgpGcm9tIGMyMDllMzE0YjI4MmZkY2FmOTc0MWZlYzRhYWZhNGUx YTgxOTJhZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hb3IgR290dGxpZWIgPG1h b3JnQG52aWRpYS5jb20+CkRhdGU6IE1vbiwgMzEgQXVnIDIwMjAgMjA6NTA6NDIgKzAzMDAKU3Vi amVjdDogW1BBVENIIDE4LzU0XSBuZXQvbWx4NTogRml4IEZURSBjbGVhbnVwCgpbIFVwc3RyZWFt IGNvbW1pdCBjZWZjMjM1NTRmYzI1OTExNGU3OGE3YjA5MDhhYWM0NjEwZWUxOGViIF0KCkN1cnJl bnRseSwgd2hlbiBhbiBGVEUgaXMgYWxsb2NhdGVkLCBpdHMgcmVmY291bnQgaXMgZGVjcmVhc2Vk IHRvIDAKd2l0aCB0aGUgcHVycG9zZSBpdCB3aWxsIG5vdCBiZSBhIHN0YW5kIGFsb25lIHN0ZWVy aW5nIG9iamVjdCBhbmQgZXZlcnkKcnVsZSAoZGVzdGluYXRpb24pIG9mIHRoZSBGVEUgd291bGQg aW5jcmVhc2UgdGhlIHJlZmNvdW50LgpXaGVuIG1seDVfY2xlYW51cF9mcyBpcyBjYWxsZWQgd2hp bGUgbm90IGFsbCBydWxlcyB3ZXJlIGRlbGV0ZWQgYnkgdGhlCnN0ZWVyaW5nIHVzZXJzLCBpdCBo aXQgcmVmY291bnQgdW5kZXJmbG93IG9uIHRoZSBGVEUgb25jZSBjbGVhbl90cmVlCmNhbGxzIHRv IHRyZWVfcmVtb3ZlX25vZGUgYWZ0ZXIgdGhlIGRlbGV0ZWQgcnVsZXMgYWxyZWFkeSBkZWNyZWFz ZWQKdGhlIHJlZmNvdW50IHRvIDAuCgpGVEUgaXMgbm8gbG9uZ2VyIGRlc3Ryb3llZCBpbXBsaWNp dGx5IHdoZW4gdGhlIGxhc3QgcnVsZSAoZGVzdGluYXRpb24pCmlzIGRlbGV0ZWQuIG1seDVfZGVs X2Zsb3dfcnVsZXMgYXZvaWRzIGl0IGJ5IGluY3JlYXNpbmcgdGhlIHJlZmNvdW50IG9uCnRoZSBG VEUgYW5kIGRlc3Ryb3kgaXQgZXhwbGljaXRseSBhZnRlciBhbGwgcnVsZXMgd2VyZSBkZWxldGVk LiBTbyB3ZQpjYW4gYXZvaWQgdGhlIHJlZmNvdW50IHVuZGVyZmxvdyBieSBtYWtpbmcgRlRFIGFz IHN0YW5kIGFsb25lIG9iamVjdC4KSW4gYWRkaXRpb24gbmVlZCB0byBzZXQgZGVsX2h3X2Z1bmMg dG8gRlRFIHNvIHRoZSBIVyBvYmplY3Qgd2lsbCBiZQpkZXN0cm95ZWQgd2hlbiB0aGUgRlRFIGlz IGRlbGV0ZWQgZnJvbSB0aGUgY2xlYW51cF90cmVlIGZsb3cuCgpyZWZjb3VudF90OiB1bmRlcmZs b3c7IHVzZS1hZnRlci1mcmVlLgpXQVJOSU5HOiBDUFU6IDIgUElEOiAxNTcxNSBhdCBsaWIvcmVm Y291bnQuYzoyOCByZWZjb3VudF93YXJuX3NhdHVyYXRlKzB4ZDkvMHhlMApIYXJkd2FyZSBuYW1l OiBRRU1VIFN0YW5kYXJkIFBDIChRMzUgKyBJQ0g5LCAyMDA5KSwgQklPUyByZWwtMS4xMy4wLTAt Z2YyMWI1YTRhZWIwMi1wcmVidWlsdC5xZW11Lm9yZyAwNC8wMS8yMDE0CkNhbGwgVHJhY2U6CiB0 cmVlX3B1dF9ub2RlKzB4ZjIvMHgxNDAgW21seDVfY29yZV0KIGNsZWFuX3RyZWUrMHg0ZS8weGYw IFttbHg1X2NvcmVdCiBjbGVhbl90cmVlKzB4NGUvMHhmMCBbbWx4NV9jb3JlXQogY2xlYW5fdHJl ZSsweDRlLzB4ZjAgW21seDVfY29yZV0KIGNsZWFuX3RyZWUrMHg1Zi8weGYwIFttbHg1X2NvcmVd CiBjbGVhbl90cmVlKzB4NGUvMHhmMCBbbWx4NV9jb3JlXQogY2xlYW5fdHJlZSsweDVmLzB4ZjAg W21seDVfY29yZV0KIG1seDVfY2xlYW51cF9mcysweDI2LzB4MjcwIFttbHg1X2NvcmVdCiBtbHg1 X3VubG9hZCsweDJlLzB4YTAgW21seDVfY29yZV0KIG1seDVfdW5sb2FkX29uZSsweDUxLzB4MTIw IFttbHg1X2NvcmVdCiBtbHg1X2RldmxpbmtfcmVsb2FkX2Rvd24rMHg1MS8weDkwIFttbHg1X2Nv cmVdCiBkZXZsaW5rX3JlbG9hZCsweDM5LzB4MTIwCiA/IGRldmxpbmtfbmxfY21kX3JlbG9hZCsw eDQzLzB4MjIwCiBnZW5sX3Jjdl9tc2crMHgxZTQvMHg0MjAKID8gZ2VubF9mYW1pbHlfcmN2X21z Z19hdHRyc19wYXJzZSsweDEwMC8weDEwMAogbmV0bGlua19yY3Zfc2tiKzB4NDcvMHgxMTAKIGdl bmxfcmN2KzB4MjQvMHg0MAogbmV0bGlua191bmljYXN0KzB4MjE3LzB4MmYwCiBuZXRsaW5rX3Nl bmRtc2crMHgzMGYvMHg0MzAKIHNvY2tfc2VuZG1zZysweDMwLzB4NDAKIF9fc3lzX3NlbmR0bysw eDEwZS8weDE0MAogPyBoYW5kbGVfbW1fZmF1bHQrMHhjNC8weDFmMAogPyBkb19wYWdlX2ZhdWx0 KzB4MzNmLzB4NjMwCiBfX3g2NF9zeXNfc2VuZHRvKzB4MjQvMHgzMAogZG9fc3lzY2FsbF82NCsw eDQ4LzB4MTMwCiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpGaXhl czogNzE4Y2U0ZDYwMWRiICgibmV0L21seDU6IENvbnNvbGlkYXRlIHVwZGF0ZSBGVEUgZm9yIGFs bCByZW1vdmFsIGNoYW5nZXMiKQpGaXhlczogYmQ3MWIwOGVjMmVlICgibmV0L21seDU6IFN1cHBv cnQgbXVsdGlwbGUgdXBkYXRlcyBvZiBzdGVlcmluZyBydWxlcyBpbiBwYXJhbGxlbCIpClNpZ25l ZC1vZmYtYnk6IE1hb3IgR290dGxpZWIgPG1hb3JnQG52aWRpYS5jb20+ClJldmlld2VkLWJ5OiBN YXJrIEJsb2NoIDxtYmxvY2hAbnZpZGlhLmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1l ZWQgPHNhZWVkbUBudmlkaWEuY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9mc19jb3JlLmMgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jCmluZGV4IDJlNWY3ZWZiODJhOC4uMWY5NmY5ZWZh M2MxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZnNfY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9m c19jb3JlLmMKQEAgLTY1NSw3ICs2NTUsNyBAQCBzdGF0aWMgc3RydWN0IGZzX2Z0ZSAqYWxsb2Nf ZnRlKHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0LAogCWZ0ZS0+YWN0aW9uID0gKmZsb3dfYWN0 OwogCWZ0ZS0+Zmxvd19jb250ZXh0ID0gc3BlYy0+Zmxvd19jb250ZXh0OwogCi0JdHJlZV9pbml0 X25vZGUoJmZ0ZS0+bm9kZSwgTlVMTCwgZGVsX3N3X2Z0ZSk7CisJdHJlZV9pbml0X25vZGUoJmZ0 ZS0+bm9kZSwgZGVsX2h3X2Z0ZSwgZGVsX3N3X2Z0ZSk7CiAKIAlyZXR1cm4gZnRlOwogfQpAQCAt MTc5Miw3ICsxNzkyLDYgQEAgdHJ5X2FkZF90b19leGlzdGluZ19mZyhzdHJ1Y3QgbWx4NV9mbG93 X3RhYmxlICpmdCwKIAkJdXBfd3JpdGVfcmVmX25vZGUoJmctPm5vZGUsIGZhbHNlKTsKIAkJcnVs ZSA9IGFkZF9ydWxlX2ZnKGcsIHNwZWMsIGZsb3dfYWN0LCBkZXN0LCBkZXN0X251bSwgZnRlKTsK IAkJdXBfd3JpdGVfcmVmX25vZGUoJmZ0ZS0+bm9kZSwgZmFsc2UpOwotCQl0cmVlX3B1dF9ub2Rl KCZmdGUtPm5vZGUsIGZhbHNlKTsKIAkJcmV0dXJuIHJ1bGU7CiAJfQogCXJ1bGUgPSBFUlJfUFRS KC1FTk9FTlQpOwpAQCAtMTg5MSw3ICsxODkwLDYgQEAgX21seDVfYWRkX2Zsb3dfcnVsZXMoc3Ry dWN0IG1seDVfZmxvd190YWJsZSAqZnQsCiAJdXBfd3JpdGVfcmVmX25vZGUoJmctPm5vZGUsIGZh bHNlKTsKIAlydWxlID0gYWRkX3J1bGVfZmcoZywgc3BlYywgZmxvd19hY3QsIGRlc3QsIGRlc3Rf bnVtLCBmdGUpOwogCXVwX3dyaXRlX3JlZl9ub2RlKCZmdGUtPm5vZGUsIGZhbHNlKTsKLQl0cmVl X3B1dF9ub2RlKCZmdGUtPm5vZGUsIGZhbHNlKTsKIAl0cmVlX3B1dF9ub2RlKCZnLT5ub2RlLCBm YWxzZSk7CiAJcmV0dXJuIHJ1bGU7CiAKQEAgLTIwMDEsNyArMTk5OSw5IEBAIHZvaWQgbWx4NV9k ZWxfZmxvd19ydWxlcyhzdHJ1Y3QgbWx4NV9mbG93X2hhbmRsZSAqaGFuZGxlKQogCQl1cF93cml0 ZV9yZWZfbm9kZSgmZnRlLT5ub2RlLCBmYWxzZSk7CiAJfSBlbHNlIHsKIAkJZGVsX2h3X2Z0ZSgm ZnRlLT5ub2RlKTsKLQkJdXBfd3JpdGUoJmZ0ZS0+bm9kZS5sb2NrKTsKKwkJLyogQXZvaWQgZG91 YmxlIGNhbGwgdG8gZGVsX2h3X2Z0ZSAqLworCQlmdGUtPm5vZGUuZGVsX2h3X2Z1bmMgPSBOVUxM OworCQl1cF93cml0ZV9yZWZfbm9kZSgmZnRlLT5ub2RlLCBmYWxzZSk7CiAJCXRyZWVfcHV0X25v ZGUoJmZ0ZS0+bm9kZSwgZmFsc2UpOwogCX0KIAlrZnJlZShoYW5kbGUpOwotLSAKMi4yNi4yCgoK RnJvbSBhY2NjY2VkYjRmMzYxZGM3ZGE0ZjcyMmZiYTY4MDZhZGZkYjMzOTVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZb3NoaWhpcm8gU2hpbW9kYSA8eW9zaGloaXJvLnNoaW1vZGEu dWhAcmVuZXNhcy5jb20+CkRhdGU6IFdlZCwgOSBTZXAgMjAyMCAxNDo0MzoxNCArMDkwMApTdWJq ZWN0OiBbUEFUQ0ggMTkvNTRdIG5ldDogcGh5OiBjYWxsIHBoeV9kaXNhYmxlX2ludGVycnVwdHMo KSBpbgogcGh5X2F0dGFjaF9kaXJlY3QoKSBpbnN0ZWFkCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZDNi YTkzNjBjNmRhYzdjMDc3ZmJkNjYzMWUwOGYzMmVhMmJjZDUzIF0KClNpbmNlIHRoZSBtaWNyZWwg cGh5IGRyaXZlciBjYWxscyBwaHlfaW5pdF9odygpIGFzIGEgd29ya2Fyb3VuZCwKdGhlIGNvbW1p dCA5ODg2YTRkYmQyYWEgKCJuZXQ6IHBoeTogY2FsbCBwaHlfZGlzYWJsZV9pbnRlcnJ1cHRzKCkK aW4gcGh5X2luaXRfaHcoKSIpIGRpc2FibGVzIHRoZSBpbnRlcnJ1cHQgdW5leHBlY3RlZGx5LiBT bywKY2FsbCBwaHlfZGlzYWJsZV9pbnRlcnJ1cHRzKCkgaW4gcGh5X2F0dGFjaF9kaXJlY3QoKSBp bnN0ZWFkLgpPdGhlcndpc2UsIHRoZSBwaHkgY2Fubm90IGxpbmsgdXAgYWZ0ZXIgdGhlIGV0aGVy bmV0IGNhYmxlIHdhcwpkaXNjb25uZWN0ZWQuCgpOb3RlIHRoYXQgb3RoZXIgZHJpdmVycyAobGlr ZSBhdDgwM3guYykgYWxzbyBjYWxscyBwaHlfaW5pdF9odygpLgpTbywgcGVyaGFwcywgdGhlIGRy aXZlciBjYXVzZWQgYSBzaW1pbGFyIGlzc3VlIHRvby4KCkZpeGVzOiA5ODg2YTRkYmQyYWEgKCJu ZXQ6IHBoeTogY2FsbCBwaHlfZGlzYWJsZV9pbnRlcnJ1cHRzKCkgaW4gcGh5X2luaXRfaHcoKSIp ClNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDx5b3NoaWhpcm8uc2hpbW9kYS51aEBy ZW5lc2FzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMgfCA4ICsrKystLS0tCiAx IGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5X2Rl dmljZS5jCmluZGV4IDk4MzY5NDMwYTNiZS4uYWEyM2ZkMGNjYzUzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNl LmMKQEAgLTEwOTIsMTAgKzEwOTIsNiBAQCBpbnQgcGh5X2luaXRfaHcoc3RydWN0IHBoeV9kZXZp Y2UgKnBoeWRldikKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IHBoeV9k aXNhYmxlX2ludGVycnVwdHMocGh5ZGV2KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCiAJ aWYgKHBoeWRldi0+ZHJ2LT5jb25maWdfaW5pdCkKIAkJcmV0ID0gcGh5ZGV2LT5kcnYtPmNvbmZp Z19pbml0KHBoeWRldik7CiAKQEAgLTEzNzIsNiArMTM2OCwxMCBAQCBpbnQgcGh5X2F0dGFjaF9k aXJlY3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwK IAlpZiAoZXJyKQogCQlnb3RvIGVycm9yOwogCisJZXJyID0gcGh5X2Rpc2FibGVfaW50ZXJydXB0 cyhwaHlkZXYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAlwaHlfcmVzdW1lKHBoeWRl dik7CiAJcGh5X2xlZF90cmlnZ2Vyc19yZWdpc3RlcihwaHlkZXYpOwogCi0tIAoyLjI2LjIKCgpG cm9tIDAwOTA4ZTUyZGQ4Njk0OTQ4YWMwMDIyMjI0MDBkNjU3OTRhZmVjNzEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTog U3VuLCAxMyBTZXAgMjAyMCAxOTo0MzowMyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjAvNTRdIG5l dDogc2NoZWQ6IGluaXRpYWxpemUgd2l0aCAwIGJlZm9yZSBzZXR0aW5nIGVyc3BhbgogbWQtPnUK ClsgVXBzdHJlYW0gY29tbWl0IDhlMWIzYWM0Nzg2NjgwYzJkMmI1YTI0ZTM4YTJkNzE0YzNiY2Qx ZWYgXQoKSW4gZmxfc2V0X2Vyc3Bhbl9vcHQoKSwgYWxsIGJpdHMgb2YgZXJzcGFuIG1kIHdhcyBz ZXQgMSwgYXMgdGhpcwpmdW5jdGlvbiBpcyBhbHNvIHVzZWQgdG8gc2V0IG9wdCBNQVNLLiBIb3dl dmVyLCB3aGVuIHNldHRpbmcgZm9yCm1kLT51LmluZGV4IGZvciBvcHQgVkFMVUUsIHRoZSByZXN0 IGJpdHMgb2YgdGhlIHVuaW9uIG1kLT51IHdpbGwKYmUgbGVmdCAxLiBJdCB3b3VsZCBjYXVzZSB0 byBmYWlsIHRoZSBtYXRjaCBvZiB0aGUgd2hvbGUgbWQgd2hlbgp2ZXJzaW9uIGlzIDEgYW5kIG9u bHkgaW5kZXggaXMgc2V0LgoKVGhpcyBwYXRjaCBpcyB0byBmaXggYnkgaW5pdGlhbGl6aW5nIHdp dGggMCBiZWZvcmUgc2V0dGluZyBlcnNwYW4KbWQtPnUuCgpSZXBvcnRlZC1ieTogU2h1YW5nIExp IDxzaHVhbGlAcmVkaGF0LmNvbT4KRml4ZXM6IDc5YjEwMTFjYjMzZCAoIm5ldDogc2NoZWQ6IGFs bG93IGZsb3dlciB0byBtYXRjaCBlcnNwYW4gb3B0aW9ucyIpClNpZ25lZC1vZmYtYnk6IFhpbiBM b25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9jbHNfZmxvd2VyLmMgfCAxICsK IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9j bHNfZmxvd2VyLmMgYi9uZXQvc2NoZWQvY2xzX2Zsb3dlci5jCmluZGV4IGUzMGJkOTY5ZmM0OC4u NWZlMTQ1ZDk3ZjUyIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvY2xzX2Zsb3dlci5jCisrKyBiL25l dC9zY2hlZC9jbHNfZmxvd2VyLmMKQEAgLTEyMTUsNiArMTIxNSw3IEBAIHN0YXRpYyBpbnQgZmxf c2V0X2Vyc3Bhbl9vcHQoY29uc3Qgc3RydWN0IG5sYXR0ciAqbmxhLCBzdHJ1Y3QgZmxfZmxvd19r ZXkgKmtleSwKIAkJfQogCQlpZiAodGJbVENBX0ZMT1dFUl9LRVlfRU5DX09QVF9FUlNQQU5fSU5E RVhdKSB7CiAJCQlubGEgPSB0YltUQ0FfRkxPV0VSX0tFWV9FTkNfT1BUX0VSU1BBTl9JTkRFWF07 CisJCQltZW1zZXQoJm1kLT51LCAweDAwLCBzaXplb2YobWQtPnUpKTsKIAkJCW1kLT51LmluZGV4 ID0gbmxhX2dldF9iZTMyKG5sYSk7CiAJCX0KIAl9IGVsc2UgaWYgKG1kLT52ZXJzaW9uID09IDIp IHsKLS0gCjIuMjYuMgoKCkZyb20gOTg5YWJhZGU4ZDRlYTRlMzMwMTEzYjdkMzI0OTk4ZjY2YzI0 ZmI4MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXVuc2hlbmcgTGluIDxsaW55dW5z aGVuZ0BodWF3ZWkuY29tPgpEYXRlOiBUdWUsIDggU2VwIDIwMjAgMTk6MDI6MzQgKzA4MDAKU3Vi amVjdDogW1BBVENIIDIxLzU0XSBuZXQ6IHNjaF9nZW5lcmljOiBhdmlvZCBjb25jdXJyZW50IHJl c2V0IGFuZCBlbnF1ZXVlIG9wCiBmb3IgbG9ja2xlc3MgcWRpc2MKClsgVXBzdHJlYW0gY29tbWl0 IDJmYjU0MWM4NjJjOTg3ZDAyZGZkZjI4ZjE1NDUwMTZkZWVjZmEwZDUgXQoKQ3VycmVudGx5IHRo ZXJlIGlzIGNvbmN1cnJlbnQgcmVzZXQgYW5kIGVucXVldWUgb3BlcmF0aW9uIGZvciB0aGUKc2Ft ZSBsb2NrbGVzcyBxZGlzYyB3aGVuIHRoZXJlIGlzIG5vIGxvY2sgdG8gc3luY2hyb25pemUgdGhl CnEtPmVucXVldWUoKSBpbiBfX2Rldl94bWl0X3NrYigpIHdpdGggdGhlIHFkaXNjIHJlc2V0IG9w ZXJhdGlvbiBpbgpxZGlzY19kZWFjdGl2YXRlKCkgY2FsbGVkIGJ5IGRldl9kZWFjdGl2YXRlX3F1 ZXVlKCksIHdoaWNoIG1heSBjYXVzZQpvdXQtb2YtYm91bmRzIGFjY2VzcyBmb3IgcHJpdi0+cmlu Z1tdIGluIGhuczMgZHJpdmVyIGlmIHVzZXIgaGFzCnJlcXVlc3RlZCBhIHNtYWxsZXIgcXVldWUg bnVtIHdoZW4gX19kZXZfeG1pdF9za2IoKSBzdGlsbCBlbnF1ZXVlIGEKc2tiIHdpdGggYSBsYXJn ZXIgcXVldWVfbWFwcGluZyBhZnRlciB0aGUgY29ycmVzcG9uZGluZyBxZGlzYyBpcwpyZXNldCwg YW5kIGNhbGwgaG5zM19uaWNfbmV0X3htaXQoKSB3aXRoIHRoYXQgc2tiIGxhdGVyLgoKUmV1c2Vk IHRoZSBleGlzdGluZyBzeW5jaHJvbml6ZV9uZXQoKSBpbiBkZXZfZGVhY3RpdmF0ZV9tYW55KCkg dG8KbWFrZSBzdXJlIHNrYiB3aXRoIGxhcmdlciBxdWV1ZV9tYXBwaW5nIGVucXVldWVkIHRvIG9s ZCBxZGlzYyh3aGljaAppcyBzYXZlZCBpbiBkZXZfcXVldWUtPnFkaXNjX3NsZWVwaW5nKSB3aWxs IGFsd2F5cyBiZSByZXNldCB3aGVuCmRldl9yZXNldF9xdWV1ZSgpIGlzIGNhbGxlZC4KCkZpeGVz OiA2YjNiYTkxNDZmZTYgKCJuZXQ6IHNjaGVkOiBhbGxvdyBxZGlzY3MgdG8gaGFuZGxlIGxvY2tp bmciKQpTaWduZWQtb2ZmLWJ5OiBZdW5zaGVuZyBMaW4gPGxpbnl1bnNoZW5nQGh1YXdlaS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvc2NoZWQvc2NoX2dlbmVyaWMuYyB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMTUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMgYi9uZXQvc2No ZWQvc2NoX2dlbmVyaWMuYwppbmRleCAyNjVhNjFkMDExZGYuLjU0YzQxNzI0NDY0MiAxMDA2NDQK LS0tIGEvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9nZW5lcmlj LmMKQEAgLTExMzEsMjQgKzExMzEsMTAgQEAgRVhQT1JUX1NZTUJPTChkZXZfYWN0aXZhdGUpOwog CiBzdGF0aWMgdm9pZCBxZGlzY19kZWFjdGl2YXRlKHN0cnVjdCBRZGlzYyAqcWRpc2MpCiB7Ci0J Ym9vbCBub2xvY2sgPSBxZGlzYy0+ZmxhZ3MgJiBUQ1FfRl9OT0xPQ0s7Ci0KIAlpZiAocWRpc2Mt PmZsYWdzICYgVENRX0ZfQlVJTFRJTikKIAkJcmV0dXJuOwotCWlmICh0ZXN0X2JpdChfX1FESVND X1NUQVRFX0RFQUNUSVZBVEVELCAmcWRpc2MtPnN0YXRlKSkKLQkJcmV0dXJuOwotCi0JaWYgKG5v bG9jaykKLQkJc3Bpbl9sb2NrX2JoKCZxZGlzYy0+c2VxbG9jayk7Ci0Jc3Bpbl9sb2NrX2JoKHFk aXNjX2xvY2socWRpc2MpKTsKIAogCXNldF9iaXQoX19RRElTQ19TVEFURV9ERUFDVElWQVRFRCwg JnFkaXNjLT5zdGF0ZSk7Ci0KLQlxZGlzY19yZXNldChxZGlzYyk7Ci0KLQlzcGluX3VubG9ja19i aChxZGlzY19sb2NrKHFkaXNjKSk7Ci0JaWYgKG5vbG9jaykKLQkJc3Bpbl91bmxvY2tfYmgoJnFk aXNjLT5zZXFsb2NrKTsKIH0KIAogc3RhdGljIHZvaWQgZGV2X2RlYWN0aXZhdGVfcXVldWUoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwKQEAgLTExNjUsNiArMTE1MSwzMCBAQCBzdGF0aWMgdm9pZCBk ZXZfZGVhY3RpdmF0ZV9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCX0KIH0KIAorc3Rh dGljIHZvaWQgZGV2X3Jlc2V0X3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkgICAg c3RydWN0IG5ldGRldl9xdWV1ZSAqZGV2X3F1ZXVlLAorCQkJICAgIHZvaWQgKl91bnVzZWQpCit7 CisJc3RydWN0IFFkaXNjICpxZGlzYzsKKwlib29sIG5vbG9jazsKKworCXFkaXNjID0gZGV2X3F1 ZXVlLT5xZGlzY19zbGVlcGluZzsKKwlpZiAoIXFkaXNjKQorCQlyZXR1cm47CisKKwlub2xvY2sg PSBxZGlzYy0+ZmxhZ3MgJiBUQ1FfRl9OT0xPQ0s7CisKKwlpZiAobm9sb2NrKQorCQlzcGluX2xv Y2tfYmgoJnFkaXNjLT5zZXFsb2NrKTsKKwlzcGluX2xvY2tfYmgocWRpc2NfbG9jayhxZGlzYykp OworCisJcWRpc2NfcmVzZXQocWRpc2MpOworCisJc3Bpbl91bmxvY2tfYmgocWRpc2NfbG9jayhx ZGlzYykpOworCWlmIChub2xvY2spCisJCXNwaW5fdW5sb2NrX2JoKCZxZGlzYy0+c2VxbG9jayk7 Cit9CisKIHN0YXRpYyBib29sIHNvbWVfcWRpc2NfaXNfYnVzeShzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogewogCXVuc2lnbmVkIGludCBpOwpAQCAtMTIxMywxMiArMTIyMywyMCBAQCB2b2lkIGRl dl9kZWFjdGl2YXRlX21hbnkoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKIAkJZGV2X3dhdGNoZG9n X2Rvd24oZGV2KTsKIAl9CiAKLQkvKiBXYWl0IGZvciBvdXRzdGFuZGluZyBxZGlzYy1sZXNzIGRl dl9xdWV1ZV94bWl0IGNhbGxzLgorCS8qIFdhaXQgZm9yIG91dHN0YW5kaW5nIHFkaXNjLWxlc3Mg ZGV2X3F1ZXVlX3htaXQgY2FsbHMgb3IKKwkgKiBvdXRzdGFuZGluZyBxZGlzYyBlbnF1ZXVpbmcg Y2FsbHMuCiAJICogVGhpcyBpcyBhdm9pZGVkIGlmIGFsbCBkZXZpY2VzIGFyZSBpbiBkaXNtYW50 bGUgcGhhc2UgOgogCSAqIENhbGxlciB3aWxsIGNhbGwgc3luY2hyb25pemVfbmV0KCkgZm9yIHVz CiAJICovCiAJc3luY2hyb25pemVfbmV0KCk7CiAKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwg aGVhZCwgY2xvc2VfbGlzdCkgeworCQluZXRkZXZfZm9yX2VhY2hfdHhfcXVldWUoZGV2LCBkZXZf cmVzZXRfcXVldWUsIE5VTEwpOworCisJCWlmIChkZXZfaW5ncmVzc19xdWV1ZShkZXYpKQorCQkJ ZGV2X3Jlc2V0X3F1ZXVlKGRldiwgZGV2X2luZ3Jlc3NfcXVldWUoZGV2KSwgTlVMTCk7CisJfQor CiAJLyogV2FpdCBmb3Igb3V0c3RhbmRpbmcgcWRpc2NfcnVuIGNhbGxzLiAqLwogCWxpc3RfZm9y X2VhY2hfZW50cnkoZGV2LCBoZWFkLCBjbG9zZV9saXN0KSB7CiAJCXdoaWxlIChzb21lX3FkaXNj X2lzX2J1c3koZGV2KSkgewotLSAKMi4yNi4yCgoKRnJvbSBmZDNlYWM0Mzg5OWQwMjFkOWM2MTAy ZGVlMTFhNGZiYjg4ZTMxOGIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5yeSBQ dGFzaW5za2kgPGhwdGFzaW5za2lAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAxOSBTZXAgMjAyMCAw MDoxMjoxMSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjIvNTRdIG5ldDogc2N0cDogRml4IElQdjYg YW5jZXN0b3Jfc2l6ZSBjYWxjIGluCiBzY3RwX2NvcHlfZGVzY2VuZGFudAoKWyBVcHN0cmVhbSBj b21taXQgZmU4MWQ5ZjYxODJkMTE2MGU2MjU4OTRlZWNiM2Q3ZmYwMjIyY2FjNSBdCgpXaGVuIGNh bGN1bGF0aW5nIGFuY2VzdG9yX3NpemUgd2l0aCBJUHY2IGVuYWJsZWQsIHNpbXBseSB1c2luZwpz aXplb2Yoc3RydWN0IGlwdjZfcGluZm8pIGRvZXNuJ3QgYWNjb3VudCBmb3IgZXh0cmEgYnl0ZXMg bmVlZGVkIGZvcgphbGlnbm1lbnQgaW4gdGhlIHN0cnVjdCBzY3RwNl9zb2NrLiBPbiB4ODYsIHRo ZXJlIGFyZW4ndCBhbnkgZXh0cmEKYnl0ZXMsIGJ1dCBvbiBBUk0gdGhlIGlwdjZfcGluZm8gc3Ry dWN0dXJlIGlzIGFsaWduZWQgb24gYW4gOC1ieXRlCmJvdW5kYXJ5IHNvIHRoZXJlIHdlcmUgNCBw YWQgYnl0ZXMgdGhhdCB3ZXJlIG9taXR0ZWQgZnJvbSB0aGUKYW5jZXN0b3Jfc2l6ZSBjYWxjdWxh dGlvbi4gIFRoaXMgd291bGQgbGVhZCB0byBjb3JydXB0aW9uIG9mIHRoZQpwZF9sb2JieSBwb2lu dGVycywgY2F1c2luZyBhbiBvb3BzIHdoZW4gdHJ5aW5nIHRvIGZyZWUgdGhlIHNjdHAKc3RydWN0 dXJlIG9uIHNvY2tldCBjbG9zZS4KCkZpeGVzOiA2MzZkMjVkNTU3ZDEgKCJzY3RwOiBub3QgY29w eSBzY3RwX3NvY2sgcGRfbG9iYnkgaW4gc2N0cF9jb3B5X2Rlc2NlbmRhbnQiKQpTaWduZWQtb2Zm LWJ5OiBIZW5yeSBQdGFzaW5za2kgPGhwdGFzaW5za2lAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IE1h cmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVk ZS9uZXQvc2N0cC9zdHJ1Y3RzLmggfCA4ICsrKysrLS0tCiBuZXQvc2N0cC9zb2NrZXQuYyAgICAg ICAgICB8IDkgKysrLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaCBiL2lu Y2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5oCmluZGV4IGZiNDJjOTAzNDhkMy4uZjNjNWQ5ZDJmODJk IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaAorKysgYi9pbmNsdWRlL25l dC9zY3RwL3N0cnVjdHMuaApAQCAtMjI2LDEyICsyMjYsMTQgQEAgc3RydWN0IHNjdHBfc29jayB7 CiAJCWRhdGFfcmVhZHlfc2lnbmFsbGVkOjE7CiAKIAlhdG9taWNfdCBwZF9tb2RlOworCisJLyog RmllbGRzIGFmdGVyIHRoaXMgcG9pbnQgd2lsbCBiZSBza2lwcGVkIG9uIGNvcGllcywgbGlrZSBv biBhY2NlcHQKKwkgKiBhbmQgcGVlbG9mZiBvcGVyYXRpb25zCisJICovCisKIAkvKiBSZWNlaXZl IHRvIGhlcmUgd2hpbGUgcGFydGlhbCBkZWxpdmVyeSBpcyBpbiBlZmZlY3QuICovCiAJc3RydWN0 IHNrX2J1ZmZfaGVhZCBwZF9sb2JieTsKIAotCS8qIFRoZXNlIG11c3QgYmUgdGhlIGxhc3QgZmll bGRzLCBhcyB0aGV5IHdpbGwgc2tpcHBlZCBvbiBjb3BpZXMsCi0JICogbGlrZSBvbiBhY2NlcHQg YW5kIHBlZWxvZmYgb3BlcmF0aW9ucwotCSAqLwogCXN0cnVjdCBsaXN0X2hlYWQgYXV0b19hc2Nv bmZfbGlzdDsKIAlpbnQgZG9fYXV0b19hc2NvbmY7CiB9OwpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAv c29ja2V0LmMgYi9uZXQvc2N0cC9zb2NrZXQuYwppbmRleCBmYTIwZTk0NTcwMGUuLjEwMmFlZTRm N2RmZCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0 LmMKQEAgLTk0NTcsMTMgKzk0NTcsMTAgQEAgdm9pZCBzY3RwX2NvcHlfc29jayhzdHJ1Y3Qgc29j ayAqbmV3c2ssIHN0cnVjdCBzb2NrICpzaywKIHN0YXRpYyBpbmxpbmUgdm9pZCBzY3RwX2NvcHlf ZGVzY2VuZGFudChzdHJ1Y3Qgc29jayAqc2tfdG8sCiAJCQkJCWNvbnN0IHN0cnVjdCBzb2NrICpz a19mcm9tKQogewotCWludCBhbmNlc3Rvcl9zaXplID0gc2l6ZW9mKHN0cnVjdCBpbmV0X3NvY2sp ICsKLQkJCSAgICBzaXplb2Yoc3RydWN0IHNjdHBfc29jaykgLQotCQkJICAgIG9mZnNldG9mKHN0 cnVjdCBzY3RwX3NvY2ssIHBkX2xvYmJ5KTsKLQotCWlmIChza19mcm9tLT5za19mYW1pbHkgPT0g UEZfSU5FVDYpCi0JCWFuY2VzdG9yX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBpcHY2X3BpbmZvKTsK KwlzaXplX3QgYW5jZXN0b3Jfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaW5ldF9zb2NrKTsKIAorCWFu Y2VzdG9yX3NpemUgKz0gc2tfZnJvbS0+c2tfcHJvdC0+b2JqX3NpemU7CisJYW5jZXN0b3Jfc2l6 ZSAtPSBvZmZzZXRvZihzdHJ1Y3Qgc2N0cF9zb2NrLCBwZF9sb2JieSk7CiAJX19pbmV0X3NrX2Nv cHlfZGVzY2VuZGFudChza190bywgc2tfZnJvbSwgYW5jZXN0b3Jfc2l6ZSk7CiB9CiAKLS0gCjIu MjYuMgoKCkZyb20gOGNiZTc5YzVkZjk0NjgzNzg0MDBkNTQwNWZlOTI2ZTgzNGU1YTdkMSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9y Zz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAxMDo1Mjo1NyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MjMvNTRdIG5mcDogdXNlIGNvcnJlY3QgZGVmaW5lIHRvIHJldHVybiBOT05FIGZlYwoKWyBVcHN0 cmVhbSBjb21taXQgNWY2ODU3ZTgwOGE4YmQwNzgyOTY1NzViNDE3YzRiOWQxNjBiOTc3OSBdCgpz dHJ1Y3QgZXRodG9vbF9mZWNwYXJhbSBjYXJyaWVzIGJpdG1hc2tzIG5vdCBiaXQgbnVtYmVycy4K V2Ugd2FudCB0byByZXR1cm4gMSAoTk9ORSksIG5vdCAwLgoKRml4ZXM6IDBkMDg3MDkzODMzNyAo Im5mcDogaW1wbGVtZW50IGV0aHRvb2wgRkVDIG1vZGUgc2V0dGluZ3MiKQpTaWduZWQtb2ZmLWJ5 OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpSZXZpZXdlZC1ieTogU2ltb24gSG9y bWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IEplc3NlIEJyYW5k ZWJ1cmcgPGplc3NlLmJyYW5kZWJ1cmdAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv bmV0cm9ub21lL25mcC9uZnBfbmV0X2V0aHRvb2wuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9uZXRfZXRodG9vbC5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfbmV0X2V0aHRvb2wuYwppbmRleCA2ZWI5ZmI5YTE4 MTQuLjljOWFlMzNkODRjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9u b21lL25mcC9uZnBfbmV0X2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRy b25vbWUvbmZwL25mcF9uZXRfZXRodG9vbC5jCkBAIC04MjksOCArODI5LDggQEAgbmZwX3BvcnRf Z2V0X2ZlY3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsCiAJc3RydWN0IG5mcF9ldGhf dGFibGVfcG9ydCAqZXRoX3BvcnQ7CiAJc3RydWN0IG5mcF9wb3J0ICpwb3J0OwogCi0JcGFyYW0t PmFjdGl2ZV9mZWMgPSBFVEhUT09MX0ZFQ19OT05FX0JJVDsKLQlwYXJhbS0+ZmVjID0gRVRIVE9P TF9GRUNfTk9ORV9CSVQ7CisJcGFyYW0tPmFjdGl2ZV9mZWMgPSBFVEhUT09MX0ZFQ19OT05FOwor CXBhcmFtLT5mZWMgPSBFVEhUT09MX0ZFQ19OT05FOwogCiAJcG9ydCA9IG5mcF9wb3J0X2Zyb21f bmV0ZGV2KG5ldGRldik7CiAJZXRoX3BvcnQgPSBuZnBfcG9ydF9nZXRfZXRoX3BvcnQocG9ydCk7 Ci0tIAoyLjI2LjIKCgpGcm9tIGY4OWM1MDNhNmIyNDcwYzAzZGI3YmMyNjc4MjBlZDgzMDI4OTky NTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZpbmljaXVzIENvc3RhIEdvbWVzIDx2 aW5pY2l1cy5nb21lc0BpbnRlbC5jb20+CkRhdGU6IFdlZCwgOSBTZXAgMjAyMCAxNzowMzoxMSAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMjQvNTRdIHRhcHJpbzogRml4IGFsbG93aW5nIHRvbyBzbWFs bCBpbnRlcnZhbHMKClsgVXBzdHJlYW0gY29tbWl0IGI1YjczYjI2YjNjYTM0NTc0MTI0ZWQ3YWU5 YzViYTgzOTFhN2YxNzYgXQoKSXQncyBwb3NzaWJsZSB0aGF0IHRoZSB1c2VyIHNwZWNpZmllcyBh biBpbnRlcnZhbCB0aGF0IGNvdWxkbid0IGFsbG93CmFueSBwYWNrZXQgdG8gYmUgdHJhbnNtaXR0 ZWQuIFRoaXMgYWxzbyBhdm9pZHMgdGhlIGlzc3VlIG9mIHRoZQpocnRpbWVyIGhhbmRsZXIgc3Rh cnZpbmcgdGhlIG90aGVyIHRocmVhZHMgYmVjYXVzZSBpdCdzIHJ1bm5pbmcgdG9vCm9mdGVuLgoK VGhlIHNvbHV0aW9uIGlzIHRvIHJlamVjdCBpbnRlcnZhbCBzaXplcyB0aGF0IGFjY29yZGluZyB0 byB0aGUgY3VycmVudApsaW5rIHNwZWVkIHdvdWxkbid0IGFsbG93IGFueSBwYWNrZXQgdG8gYmUg dHJhbnNtaXR0ZWQuCgpSZXBvcnRlZC1ieTogc3l6Ym90KzgyNjcyNDE2MDlhZThjMjNiMjQ4QHN5 emthbGxlci5hcHBzcG90bWFpbC5jb20KRml4ZXM6IDVhNzgxY2NiZDE5ZSAoInRjOiBBZGQgc3Vw cG9ydCBmb3IgY29uZmlndXJpbmcgdGhlIHRhcHJpbyBzY2hlZHVsZXIiKQpTaWduZWQtb2ZmLWJ5 OiBWaW5pY2l1cyBDb3N0YSBHb21lcyA8dmluaWNpdXMuZ29tZXNAaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Nj aGVkL3NjaF90YXByaW8uYyB8IDI4ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvc2NoZWQvc2NoX3RhcHJpby5jIGIvbmV0L3NjaGVkL3NjaF90YXByaW8uYwppbmRleCA2 YTUwODZlNTg2ZWYuLjJiNzk3YTcxZTliZCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF90YXBy aW8uYworKysgYi9uZXQvc2NoZWQvc2NoX3RhcHJpby5jCkBAIC03NzcsOSArNzc3LDExIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSB0YXByaW9fcG9saWN5W1RDQV9UQVBSSU9fQVRU Ul9NQVggKyAxXSA9IHsKIAlbVENBX1RBUFJJT19BVFRSX1RYVElNRV9ERUxBWV0JCSAgICAgPSB7 IC50eXBlID0gTkxBX1UzMiB9LAogfTsKIAotc3RhdGljIGludCBmaWxsX3NjaGVkX2VudHJ5KHN0 cnVjdCBubGF0dHIgKip0Yiwgc3RydWN0IHNjaGVkX2VudHJ5ICplbnRyeSwKK3N0YXRpYyBpbnQg ZmlsbF9zY2hlZF9lbnRyeShzdHJ1Y3QgdGFwcmlvX3NjaGVkICpxLCBzdHJ1Y3QgbmxhdHRyICoq dGIsCisJCQkgICAgc3RydWN0IHNjaGVkX2VudHJ5ICplbnRyeSwKIAkJCSAgICBzdHJ1Y3QgbmV0 bGlua19leHRfYWNrICpleHRhY2spCiB7CisJaW50IG1pbl9kdXJhdGlvbiA9IGxlbmd0aF90b19k dXJhdGlvbihxLCBFVEhfWkxFTik7CiAJdTMyIGludGVydmFsID0gMDsKIAogCWlmICh0YltUQ0Ff VEFQUklPX1NDSEVEX0VOVFJZX0NNRF0pCkBAIC03OTQsNyArNzk2LDEwIEBAIHN0YXRpYyBpbnQg ZmlsbF9zY2hlZF9lbnRyeShzdHJ1Y3QgbmxhdHRyICoqdGIsIHN0cnVjdCBzY2hlZF9lbnRyeSAq ZW50cnksCiAJCWludGVydmFsID0gbmxhX2dldF91MzIoCiAJCQl0YltUQ0FfVEFQUklPX1NDSEVE X0VOVFJZX0lOVEVSVkFMXSk7CiAKLQlpZiAoaW50ZXJ2YWwgPT0gMCkgeworCS8qIFRoZSBpbnRl cnZhbCBzaG91bGQgYWxsb3cgYXQgbGVhc3QgdGhlIG1pbmltdW0gZXRoZXJuZXQKKwkgKiBmcmFt ZSB0byBnbyBvdXQuCisJICovCisJaWYgKGludGVydmFsIDwgbWluX2R1cmF0aW9uKSB7CiAJCU5M X1NFVF9FUlJfTVNHKGV4dGFjaywgIkludmFsaWQgaW50ZXJ2YWwgZm9yIHNjaGVkdWxlIGVudHJ5 Iik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTgwNCw4ICs4MDksOSBAQCBzdGF0aWMgaW50 IGZpbGxfc2NoZWRfZW50cnkoc3RydWN0IG5sYXR0ciAqKnRiLCBzdHJ1Y3Qgc2NoZWRfZW50cnkg KmVudHJ5LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHBhcnNlX3NjaGVkX2VudHJ5KHN0 cnVjdCBubGF0dHIgKm4sIHN0cnVjdCBzY2hlZF9lbnRyeSAqZW50cnksCi0JCQkgICAgIGludCBp bmRleCwgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQorc3RhdGljIGludCBwYXJzZV9z Y2hlZF9lbnRyeShzdHJ1Y3QgdGFwcmlvX3NjaGVkICpxLCBzdHJ1Y3QgbmxhdHRyICpuLAorCQkJ ICAgICBzdHJ1Y3Qgc2NoZWRfZW50cnkgKmVudHJ5LCBpbnQgaW5kZXgsCisJCQkgICAgIHN0cnVj dCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKIHsKIAlzdHJ1Y3QgbmxhdHRyICp0YltUQ0FfVEFQ UklPX1NDSEVEX0VOVFJZX01BWCArIDFdID0geyB9OwogCWludCBlcnI7CkBAIC04MTksMTAgKzgy NSwxMCBAQCBzdGF0aWMgaW50IHBhcnNlX3NjaGVkX2VudHJ5KHN0cnVjdCBubGF0dHIgKm4sIHN0 cnVjdCBzY2hlZF9lbnRyeSAqZW50cnksCiAKIAllbnRyeS0+aW5kZXggPSBpbmRleDsKIAotCXJl dHVybiBmaWxsX3NjaGVkX2VudHJ5KHRiLCBlbnRyeSwgZXh0YWNrKTsKKwlyZXR1cm4gZmlsbF9z Y2hlZF9lbnRyeShxLCB0YiwgZW50cnksIGV4dGFjayk7CiB9CiAKLXN0YXRpYyBpbnQgcGFyc2Vf c2NoZWRfbGlzdChzdHJ1Y3QgbmxhdHRyICpsaXN0LAorc3RhdGljIGludCBwYXJzZV9zY2hlZF9s aXN0KHN0cnVjdCB0YXByaW9fc2NoZWQgKnEsIHN0cnVjdCBubGF0dHIgKmxpc3QsCiAJCQkgICAg c3RydWN0IHNjaGVkX2dhdGVfbGlzdCAqc2NoZWQsCiAJCQkgICAgc3RydWN0IG5ldGxpbmtfZXh0 X2FjayAqZXh0YWNrKQogewpAQCAtODQ3LDcgKzg1Myw3IEBAIHN0YXRpYyBpbnQgcGFyc2Vfc2No ZWRfbGlzdChzdHJ1Y3QgbmxhdHRyICpsaXN0LAogCQkJcmV0dXJuIC1FTk9NRU07CiAJCX0KIAot CQllcnIgPSBwYXJzZV9zY2hlZF9lbnRyeShuLCBlbnRyeSwgaSwgZXh0YWNrKTsKKwkJZXJyID0g cGFyc2Vfc2NoZWRfZW50cnkocSwgbiwgZW50cnksIGksIGV4dGFjayk7CiAJCWlmIChlcnIgPCAw KSB7CiAJCQlrZnJlZShlbnRyeSk7CiAJCQlyZXR1cm4gZXJyOwpAQCAtODYyLDcgKzg2OCw3IEBA IHN0YXRpYyBpbnQgcGFyc2Vfc2NoZWRfbGlzdChzdHJ1Y3QgbmxhdHRyICpsaXN0LAogCXJldHVy biBpOwogfQogCi1zdGF0aWMgaW50IHBhcnNlX3RhcHJpb19zY2hlZHVsZShzdHJ1Y3QgbmxhdHRy ICoqdGIsCitzdGF0aWMgaW50IHBhcnNlX3RhcHJpb19zY2hlZHVsZShzdHJ1Y3QgdGFwcmlvX3Nj aGVkICpxLCBzdHJ1Y3QgbmxhdHRyICoqdGIsCiAJCQkJIHN0cnVjdCBzY2hlZF9nYXRlX2xpc3Qg Km5ldywKIAkJCQkgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQogewpAQCAtODgzLDgg Kzg4OSw4IEBAIHN0YXRpYyBpbnQgcGFyc2VfdGFwcmlvX3NjaGVkdWxlKHN0cnVjdCBubGF0dHIg Kip0YiwKIAkJbmV3LT5jeWNsZV90aW1lID0gbmxhX2dldF9zNjQodGJbVENBX1RBUFJJT19BVFRS X1NDSEVEX0NZQ0xFX1RJTUVdKTsKIAogCWlmICh0YltUQ0FfVEFQUklPX0FUVFJfU0NIRURfRU5U UllfTElTVF0pCi0JCWVyciA9IHBhcnNlX3NjaGVkX2xpc3QoCi0JCQl0YltUQ0FfVEFQUklPX0FU VFJfU0NIRURfRU5UUllfTElTVF0sIG5ldywgZXh0YWNrKTsKKwkJZXJyID0gcGFyc2Vfc2NoZWRf bGlzdChxLCB0YltUQ0FfVEFQUklPX0FUVFJfU0NIRURfRU5UUllfTElTVF0sCisJCQkJICAgICAg IG5ldywgZXh0YWNrKTsKIAlpZiAoZXJyIDwgMCkKIAkJcmV0dXJuIGVycjsKIApAQCAtMTQ3NCw3 ICsxNDgwLDcgQEAgc3RhdGljIGludCB0YXByaW9fY2hhbmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBz dHJ1Y3QgbmxhdHRyICpvcHQsCiAJCWdvdG8gZnJlZV9zY2hlZDsKIAl9CiAKLQllcnIgPSBwYXJz ZV90YXByaW9fc2NoZWR1bGUodGIsIG5ld19hZG1pbiwgZXh0YWNrKTsKKwllcnIgPSBwYXJzZV90 YXByaW9fc2NoZWR1bGUocSwgdGIsIG5ld19hZG1pbiwgZXh0YWNrKTsKIAlpZiAoZXJyIDwgMCkK IAkJZ290byBmcmVlX3NjaGVkOwogCi0tIAoyLjI2LjIKCgpGcm9tIDc3ZTMyMjdjNDgxMTM5OWI3 NjI2MjhiMWU4YTAwODUwOTA2MGZkYTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBl aWxpbiBZZSA8eWVwZWlsaW4uY3NAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEzIFNlcCAyMDIwIDA0 OjA2OjA1IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAyNS81NF0gdGlwYzogRml4IG1lbW9yeSBsZWFr IGluIHRpcGNfZ3JvdXBfY3JlYXRlX21lbWJlcigpCgpbIFVwc3RyZWFtIGNvbW1pdCBiYjNhNDIw ZDQ3YWIwMGQ3ZTFlNTA4MzI4NmNhYjE1MjM1YTk2NjgwIF0KCnRpcGNfZ3JvdXBfYWRkX3RvX3Ry ZWUoKSByZXR1cm5zIHNpbGVudGx5IGlmIGBrZXlgIG1hdGNoZXMgYG5rZXlgIG9mIGFuCmV4aXN0 aW5nIG5vZGUsIGNhdXNpbmcgdGlwY19ncm91cF9jcmVhdGVfbWVtYmVyKCkgdG8gbGVhayBtZW1v cnkuIExldAp0aXBjX2dyb3VwX2FkZF90b190cmVlKCkgcmV0dXJuIGFuIGVycm9yIGluIHN1Y2gg YSBjYXNlLCBzbyB0aGF0CnRpcGNfZ3JvdXBfY3JlYXRlX21lbWJlcigpIGNhbiBoYW5kbGUgaXQg cHJvcGVybHkuCgpGaXhlczogNzVkYTIxNjNkYmI2ICgidGlwYzogaW50cm9kdWNlIGNvbW11bmlj YXRpb24gZ3JvdXBzIikKUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogc3l6Ym90K2Y5NWQ5MGM0NTQ4 NjRiM2I1YmM5QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KQ2M6IEhpbGxmIERhbnRvbiA8aGRh bnRvbkBzaW5hLmNvbT4KTGluazogaHR0cHM6Ly9zeXprYWxsZXIuYXBwc3BvdC5jb20vYnVnP2lk PTA0ODM5MDYwNGZlMWI2MGRmMzQxNTAyNjU0NzkyMDJmMTBlMTNhZmYKU2lnbmVkLW9mZi1ieTog UGVpbGluIFllIDx5ZXBlaWxpbi5jc0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9ncm91cC5jIHwgMTQg KysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL2dyb3VwLmMgYi9uZXQvdGlwYy9ncm91cC5j CmluZGV4IDg5MjU3ZTJhOTgwZC4uZjUzODcxYmFhNDJlIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9n cm91cC5jCisrKyBiL25ldC90aXBjL2dyb3VwLmMKQEAgLTI3Myw4ICsyNzMsOCBAQCBzdGF0aWMg c3RydWN0IHRpcGNfbWVtYmVyICp0aXBjX2dyb3VwX2ZpbmRfbm9kZShzdHJ1Y3QgdGlwY19ncm91 cCAqZ3JwLAogCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgdm9pZCB0aXBjX2dyb3VwX2FkZF90 b190cmVlKHN0cnVjdCB0aXBjX2dyb3VwICpncnAsCi0JCQkJICAgc3RydWN0IHRpcGNfbWVtYmVy ICptKQorc3RhdGljIGludCB0aXBjX2dyb3VwX2FkZF90b190cmVlKHN0cnVjdCB0aXBjX2dyb3Vw ICpncnAsCisJCQkJICBzdHJ1Y3QgdGlwY19tZW1iZXIgKm0pCiB7CiAJdTY0IG5rZXksIGtleSA9 ICh1NjQpbS0+bm9kZSA8PCAzMiB8IG0tPnBvcnQ7CiAJc3RydWN0IHJiX25vZGUgKipuLCAqcGFy ZW50ID0gTlVMTDsKQEAgLTI5MSwxMCArMjkxLDExIEBAIHN0YXRpYyB2b2lkIHRpcGNfZ3JvdXBf YWRkX3RvX3RyZWUoc3RydWN0IHRpcGNfZ3JvdXAgKmdycCwKIAkJZWxzZSBpZiAoa2V5ID4gbmtl eSkKIAkJCW4gPSAmKCpuKS0+cmJfcmlnaHQ7CiAJCWVsc2UKLQkJCXJldHVybjsKKwkJCXJldHVy biAtRUVYSVNUOwogCX0KIAlyYl9saW5rX25vZGUoJm0tPnRyZWVfbm9kZSwgcGFyZW50LCBuKTsK IAlyYl9pbnNlcnRfY29sb3IoJm0tPnRyZWVfbm9kZSwgJmdycC0+bWVtYmVycyk7CisJcmV0dXJu IDA7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgdGlwY19tZW1iZXIgKnRpcGNfZ3JvdXBfY3JlYXRlX21l bWJlcihzdHJ1Y3QgdGlwY19ncm91cCAqZ3JwLApAQCAtMzAyLDYgKzMwMyw3IEBAIHN0YXRpYyBz dHJ1Y3QgdGlwY19tZW1iZXIgKnRpcGNfZ3JvdXBfY3JlYXRlX21lbWJlcihzdHJ1Y3QgdGlwY19n cm91cCAqZ3JwLAogCQkJCQkJICAgIHUzMiBpbnN0YW5jZSwgaW50IHN0YXRlKQogewogCXN0cnVj dCB0aXBjX21lbWJlciAqbTsKKwlpbnQgcmV0OwogCiAJbSA9IGt6YWxsb2Moc2l6ZW9mKCptKSwg R0ZQX0FUT01JQyk7CiAJaWYgKCFtKQpAQCAtMzE0LDggKzMxNiwxMiBAQCBzdGF0aWMgc3RydWN0 IHRpcGNfbWVtYmVyICp0aXBjX2dyb3VwX2NyZWF0ZV9tZW1iZXIoc3RydWN0IHRpcGNfZ3JvdXAg KmdycCwKIAltLT5wb3J0ID0gcG9ydDsKIAltLT5pbnN0YW5jZSA9IGluc3RhbmNlOwogCW0tPmJj X2Fja2VkID0gZ3JwLT5iY19zbmRfbnh0IC0gMTsKKwlyZXQgPSB0aXBjX2dyb3VwX2FkZF90b190 cmVlKGdycCwgbSk7CisJaWYgKHJldCA8IDApIHsKKwkJa2ZyZWUobSk7CisJCXJldHVybiBOVUxM OworCX0KIAlncnAtPm1lbWJlcl9jbnQrKzsKLQl0aXBjX2dyb3VwX2FkZF90b190cmVlKGdycCwg bSk7CiAJdGlwY19ubGlzdF9hZGQoJmdycC0+ZGVzdHMsIG0tPm5vZGUpOwogCW0tPnN0YXRlID0g c3RhdGU7CiAJcmV0dXJuIG07Ci0tIAoyLjI2LjIKCgpGcm9tIDI0ZjNkNDc1MjlhNDY0Yjg1OWM1 NWUyNTZlOGJhMGI1NTEyNjdhZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRldHN1 byBIYW5kYSA8cGVuZ3Vpbi1rZXJuZWxASS1sb3ZlLlNBS1VSQS5uZS5qcD4KRGF0ZTogU2F0LCA1 IFNlcCAyMDIwIDE1OjE0OjQ3ICswOTAwClN1YmplY3Q6IFtQQVRDSCAyNi81NF0gdGlwYzogZml4 IHNodXRkb3duKCkgb2YgY29ubmVjdGlvbiBvcmllbnRlZCBzb2NrZXQKClsgVXBzdHJlYW0gY29t bWl0IGE0YjVjYzllMTA4MDNlY2JhNjRhN2Q1NGMwZjQ3ZTQ1NjRiNGE5ODAgXQoKSSBjb25maXJt ZWQgdGhhdCB0aGUgcHJvYmxlbSBmaXhlZCBieSBjb21taXQgMmE2Mzg2NmM4YjUxYTNmNyAoInRp cGM6IGZpeApzaHV0ZG93bigpIG9mIGNvbm5lY3Rpb25sZXNzIHNvY2tldCIpIGFsc28gYXBwbGll cyB0byBzdHJlYW0gc29ja2V0LgoKLS0tLS0tLS0tLQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPgoj aW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxzeXMvd2FpdC5oPgoKaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSkKewogICAgICAgIGludCBmZHNbMl0gPSB7IC0xLCAtMSB9OwogICAg ICAgIHNvY2tldHBhaXIoUEZfVElQQywgU09DS19TVFJFQU0gLyogb3IgU09DS19ER1JBTSAqLywg MCwgZmRzKTsKICAgICAgICBpZiAoZm9yaygpID09IDApCiAgICAgICAgICAgICAgICBfZXhpdChy ZWFkKGZkc1swXSwgTlVMTCwgMSkpOwogICAgICAgIHNodXRkb3duKGZkc1swXSwgU0hVVF9SRFdS KTsgLyogVGhpcyBtdXN0IG1ha2UgcmVhZCgpIHJldHVybi4gKi8KICAgICAgICB3YWl0KE5VTEwp OyAvKiBUbyBiZSB3b2tlbiB1cCBieSBfZXhpdCgpLiAqLwogICAgICAgIHJldHVybiAwOwp9Ci0t LS0tLS0tLS0KClNpbmNlIHNodXRkb3duKFNIVVRfUkRXUikgc2hvdWxkIGFmZmVjdCBhbGwgcHJv Y2Vzc2VzIHNoYXJpbmcgdGhhdCBzb2NrZXQsCnVuY29uZGl0aW9uYWxseSBzZXR0aW5nIHNrLT5z a19zaHV0ZG93biB0byBTSFVURE9XTl9NQVNLIHdpbGwgYmUgdGhlIHJpZ2h0CmJlaGF2aW9yLgoK U2lnbmVkLW9mZi1ieTogVGV0c3VvIEhhbmRhIDxwZW5ndWluLWtlcm5lbEBJLWxvdmUuU0FLVVJB Lm5lLmpwPgpBY2tlZC1ieTogWWluZyBYdWUgPHlpbmcueHVlQHdpbmRyaXZlci5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv dGlwYy9zb2NrZXQuYyB8IDUgKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9zb2NrZXQuYyBiL25ldC90aXBj L3NvY2tldC5jCmluZGV4IDc5Y2M4NDM5M2Y5My4uNTljOWU1OTJiMGEyIDEwMDY0NAotLS0gYS9u ZXQvdGlwYy9zb2NrZXQuYworKysgYi9uZXQvdGlwYy9zb2NrZXQuYwpAQCAtMjc3MywxMCArMjc3 Myw3IEBAIHN0YXRpYyBpbnQgdGlwY19zaHV0ZG93bihzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQg aG93KQogCiAJdHJhY2VfdGlwY19za19zaHV0ZG93bihzaywgTlVMTCwgVElQQ19EVU1QX0FMTCwg IiAiKTsKIAlfX3RpcGNfc2h1dGRvd24oc29jaywgVElQQ19DT05OX1NIVVRET1dOKTsKLQlpZiAo dGlwY19za190eXBlX2Nvbm5lY3Rpb25sZXNzKHNrKSkKLQkJc2stPnNrX3NodXRkb3duID0gU0hV VERPV05fTUFTSzsKLQllbHNlCi0JCXNrLT5za19zaHV0ZG93biA9IFNFTkRfU0hVVERPV047CisJ c2stPnNrX3NodXRkb3duID0gU0hVVERPV05fTUFTSzsKIAogCWlmIChzay0+c2tfc3RhdGUgPT0g VElQQ19ESVNDT05ORUNUSU5HKSB7CiAJCS8qIERpc2NhcmQgYW55IHVucmVjZWl2ZWQgbWVzc2Fn ZXMgKi8KLS0gCjIuMjYuMgoKCkZyb20gYTY3NmRlYWJkODlhYjI1YjRlZGVhYTc1NDExZjI0Yjg3 ZTg0ZjFiOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54 aW5AZ21haWwuY29tPgpEYXRlOiBTdW4sIDEzIFNlcCAyMDIwIDE5OjM3OjMxICswODAwClN1Ympl Y3Q6IFtQQVRDSCAyNy81NF0gdGlwYzogdXNlIHNrYl91bnNoYXJlKCkgaW5zdGVhZCBpbiB0aXBj X2J1Zl9hcHBlbmQoKQoKWyBVcHN0cmVhbSBjb21taXQgZmY0OGI2MjIyZTY1ZWJkYmE1YTQwM2Vm MWRlYmE2MjE0ZTc0OTE5MyBdCgpJbiB0aXBjX2J1Zl9hcHBlbmQoKSBpdCBtYXkgY2hhbmdlIHNr YidzIGZyYWdfbGlzdCwgYW5kIGl0IGNhdXNlcwpwcm9ibGVtcyB3aGVuIHRoaXMgc2tiIGlzIGNs b25lZC4gc2tiX3VuY2xvbmUoKSBkb2Vzbid0IHJlYWxseQptYWtlIHRoaXMgc2tiJ3MgZmxhZ19s aXN0IGF2YWlsYWJsZSB0byBjaGFuZ2UuCgpTaHVhbmcgTGkgaGFzIHJlcG9ydGVkIGFuIHVzZS1h ZnRlci1mcmVlIGlzc3VlIGJlY2F1c2Ugb2YgdGhpcwp3aGVuIGNyZWF0aW5nIHF1aXRlIGEgZmV3 IG1hY3ZsYW4gZGV2IG92ZXIgdGhlIHNhbWUgZGV2LCB3aGVyZQp0aGUgYnJvYWRjYXN0IHBhY2tl dHMgd2lsbCBiZSBjbG9uZWQgYW5kIGdvIHVwIHRvIHRoZSBzdGFjazoKCiBbIF0gQlVHOiBLQVNB TjogdXNlLWFmdGVyLWZyZWUgaW4gcHNrYl9leHBhbmRfaGVhZCsweDg2ZC8weGVhMAogWyBdIENh bGwgVHJhY2U6CiBbIF0gIGR1bXBfc3RhY2srMHg3Yy8weGIwCiBbIF0gIHByaW50X2FkZHJlc3Nf ZGVzY3JpcHRpb24uY29uc3Rwcm9wLjcrMHgxYS8weDIyMAogWyBdICBrYXNhbl9yZXBvcnQuY29s ZC4xMCsweDM3LzB4N2MKIFsgXSAgY2hlY2tfbWVtb3J5X3JlZ2lvbisweDE4My8weDFlMAogWyBd ICBwc2tiX2V4cGFuZF9oZWFkKzB4ODZkLzB4ZWEwCiBbIF0gIHByb2Nlc3NfYmFja2xvZysweDFk Zi8weDY2MAogWyBdICBuZXRfcnhfYWN0aW9uKzB4M2I0LzB4YzkwCiBbIF0KIFsgXSBBbGxvY2F0 ZWQgYnkgdGFzayAxNzg2OgogWyBdICBrbWVtX2NhY2hlX2FsbG9jKzB4YmYvMHgyMjAKIFsgXSAg c2tiX2Nsb25lKzB4MTBhLzB4MzAwCiBbIF0gIG1hY3ZsYW5fYnJvYWRjYXN0KzB4MmY2LzB4NTkw IFttYWN2bGFuXQogWyBdICBtYWN2bGFuX3Byb2Nlc3NfYnJvYWRjYXN0KzB4MzdjLzB4NTE2IFtt YWN2bGFuXQogWyBdICBwcm9jZXNzX29uZV93b3JrKzB4NjZhLzB4MTA2MAogWyBdICB3b3JrZXJf dGhyZWFkKzB4ODcvMHhiMTAKIFsgXQogWyBdIEZyZWVkIGJ5IHRhc2sgMzI1MzoKIFsgXSAga21l bV9jYWNoZV9mcmVlKzB4ODIvMHgyYTAKIFsgXSAgc2tiX3JlbGVhc2VfZGF0YSsweDJjMy8weDZl MAogWyBdICBrZnJlZV9za2IrMHg3OC8weDFkMAogWyBdICB0aXBjX3JlY3Ztc2crMHgzYmUvMHhh NDAgW3RpcGNdCgpTbyBmaXggaXQgYnkgdXNpbmcgc2tiX3Vuc2hhcmUoKSBpbnN0ZWFkLCB3aGlj aCB3b3VsZCBjcmVhdGUgYSBuZXcKc2tiIGZvciB0aGUgY2xvbmVkIGZyYWcgYW5kIGl0J2xsIGJl IHNhZmUgdG8gY2hhbmdlIGl0cyBmcmFnX2xpc3QuClRoZSBzaW1pbGFyIHRoaW5ncyB3ZXJlIGFs c28gZG9uZSBpbiBzY3RwX21ha2VfcmVhc3NlbWJsZWRfZXZlbnQoKSwKd2hpY2ggaXMgdXNpbmcg c2tiX2NvcHkoKS4KClJlcG9ydGVkLWJ5OiBTaHVhbmcgTGkgPHNodWFsaUByZWRoYXQuY29tPgpG aXhlczogMzdlMjIxNjRhOGEzICgidGlwYzogcmVuYW1lIGFuZCBtb3ZlIG1lc3NhZ2UgcmVhc3Nl bWJseSBmdW5jdGlvbiIpClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC90aXBjL21zZy5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9tc2cuYyBiL25ldC90 aXBjL21zZy5jCmluZGV4IDAxYjY0ODY5YTE3My4uMjc3NmE0MWUwZGVjIDEwMDY0NAotLS0gYS9u ZXQvdGlwYy9tc2cuYworKysgYi9uZXQvdGlwYy9tc2cuYwpAQCAtMTUwLDcgKzE1MCw4IEBAIGlu dCB0aXBjX2J1Zl9hcHBlbmQoc3RydWN0IHNrX2J1ZmYgKipoZWFkYnVmLCBzdHJ1Y3Qgc2tfYnVm ZiAqKmJ1ZikKIAlpZiAoZnJhZ2lkID09IEZJUlNUX0ZSQUdNRU5UKSB7CiAJCWlmICh1bmxpa2Vs eShoZWFkKSkKIAkJCWdvdG8gZXJyOwotCQlpZiAodW5saWtlbHkoc2tiX3VuY2xvbmUoZnJhZywg R0ZQX0FUT01JQykpKQorCQlmcmFnID0gc2tiX3Vuc2hhcmUoZnJhZywgR0ZQX0FUT01JQyk7CisJ CWlmICh1bmxpa2VseSghZnJhZykpCiAJCQlnb3RvIGVycjsKIAkJaGVhZCA9ICpoZWFkYnVmID0g ZnJhZzsKIAkJKmJ1ZiA9IE5VTEw7Ci0tIAoyLjI2LjIKCgpGcm9tIDYwYzVmYWZjMGFiMTc3N2Fj NjJhMTE1OWMxNmUxYTVkNGEwNDQ4NDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1h b3IgRGlja21hbiA8bWFvcmRAbWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDUgQXVnIDIwMjAgMTc6 NTY6MDQgKzAzMDAKU3ViamVjdDogW1BBVENIIDI4LzU0XSBuZXQvbWx4NWU6IEVuYWJsZSBhZGRp bmcgcGVlciBtaXNzIHJ1bGVzIG9ubHkgaWYgbWVyZ2VkCiBlc3dpdGNoIGlzIHN1cHBvcnRlZAoK WyBVcHN0cmVhbSBjb21taXQgNmNlYzAyMjlhYjE5NTkyNTllNzFlOWE1YmJlNDdjMDQ1Nzc5NTBi MSBdCgpUaGUgY2l0ZWQgY29tbWl0IGNyZWF0ZXMgcGVlciBtaXNzIGdyb3VwIGR1cmluZyBzd2l0 Y2hkZXYgbW9kZQppbml0aWFsaXphdGlvbiBpbiBvcmRlciB0byBoYW5kbGUgbWlzcyBwYWNrZXRz IGNvcnJlY3RseSB3aGlsZSBpbiBWRgpMQUcgbW9kZS4gVGhpcyBpcyBkb25lIHJlZ2FyZGxlc3Mg b2YgRlcgc3VwcG9ydCBvZiBzdWNoIGdyb3VwcyB3aGljaApjb3VsZCBjYXVzZSBydWxlcyBzZXR1 cHMgZmFpbHVyZSBsYXRlciBvbi4KCkZpeCBieSBhZGRpbmcgRlcgY2FwYWJpbGl0eSBjaGVjayBi ZWZvcmUgY3JlYXRpbmcgcGVlciBncm91cHMvcnVsZS4KCkZpeGVzOiBhYzAwNGI4MzIxMjggKCJu ZXQvbWx4NWU6IEUtU3dpdGNoLCBBZGQgcGVlciBtaXNzIHJ1bGVzIikKU2lnbmVkLW9mZi1ieTog TWFvciBEaWNrbWFuIDxtYW9yZEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBSb2kgRGF5YW4g PHJvaWRAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogUmFlZCBTYWxlbSA8cmFlZHNAbWVsbGFu b3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNv bT4KLS0tCiAuLi4vbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYyAgICAgfCA1 MiArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwg MjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMKaW5kZXggZWQ3NTM1M2M1NmI4Li5m MTY2MTBmZWFiODggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYwpAQCAtMTIxOSwzNSArMTIxOSwzNyBA QCBzdGF0aWMgaW50IGVzd19jcmVhdGVfb2ZmbG9hZHNfZmRiX3RhYmxlcyhzdHJ1Y3QgbWx4NV9l c3dpdGNoICplc3csIGludCBudnBvcnRzKQogCX0KIAllc3ctPmZkYl90YWJsZS5vZmZsb2Fkcy5z ZW5kX3RvX3Zwb3J0X2dycCA9IGc7CiAKLQkvKiBjcmVhdGUgcGVlciBlc3cgbWlzcyBncm91cCAq LwotCW1lbXNldChmbG93X2dyb3VwX2luLCAwLCBpbmxlbik7CisJaWYgKE1MWDVfQ0FQX0VTVyhl c3ctPmRldiwgbWVyZ2VkX2Vzd2l0Y2gpKSB7CisJCS8qIGNyZWF0ZSBwZWVyIGVzdyBtaXNzIGdy b3VwICovCisJCW1lbXNldChmbG93X2dyb3VwX2luLCAwLCBpbmxlbik7CiAKLQllc3dfc2V0X2Zs b3dfZ3JvdXBfc291cmNlX3BvcnQoZXN3LCBmbG93X2dyb3VwX2luKTsKKwkJZXN3X3NldF9mbG93 X2dyb3VwX3NvdXJjZV9wb3J0KGVzdywgZmxvd19ncm91cF9pbik7CiAKLQlpZiAoIW1seDVfZXN3 aXRjaF92cG9ydF9tYXRjaF9tZXRhZGF0YV9lbmFibGVkKGVzdykpIHsKLQkJbWF0Y2hfY3JpdGVy aWEgPSBNTFg1X0FERFJfT0YoY3JlYXRlX2Zsb3dfZ3JvdXBfaW4sCi0JCQkJCSAgICAgIGZsb3df Z3JvdXBfaW4sCi0JCQkJCSAgICAgIG1hdGNoX2NyaXRlcmlhKTsKKwkJaWYgKCFtbHg1X2Vzd2l0 Y2hfdnBvcnRfbWF0Y2hfbWV0YWRhdGFfZW5hYmxlZChlc3cpKSB7CisJCQltYXRjaF9jcml0ZXJp YSA9IE1MWDVfQUREUl9PRihjcmVhdGVfZmxvd19ncm91cF9pbiwKKwkJCQkJCSAgICAgIGZsb3df Z3JvdXBfaW4sCisJCQkJCQkgICAgICBtYXRjaF9jcml0ZXJpYSk7CiAKLQkJTUxYNV9TRVRfVE9f T05FUyhmdGVfbWF0Y2hfcGFyYW0sIG1hdGNoX2NyaXRlcmlhLAotCQkJCSBtaXNjX3BhcmFtZXRl cnMuc291cmNlX2Vzd2l0Y2hfb3duZXJfdmhjYV9pZCk7CisJCQlNTFg1X1NFVF9UT19PTkVTKGZ0 ZV9tYXRjaF9wYXJhbSwgbWF0Y2hfY3JpdGVyaWEsCisJCQkJCSBtaXNjX3BhcmFtZXRlcnMuc291 cmNlX2Vzd2l0Y2hfb3duZXJfdmhjYV9pZCk7CiAKLQkJTUxYNV9TRVQoY3JlYXRlX2Zsb3dfZ3Jv dXBfaW4sIGZsb3dfZ3JvdXBfaW4sCi0JCQkgc291cmNlX2Vzd2l0Y2hfb3duZXJfdmhjYV9pZF92 YWxpZCwgMSk7Ci0JfQorCQkJTUxYNV9TRVQoY3JlYXRlX2Zsb3dfZ3JvdXBfaW4sIGZsb3dfZ3Jv dXBfaW4sCisJCQkJIHNvdXJjZV9lc3dpdGNoX293bmVyX3ZoY2FfaWRfdmFsaWQsIDEpOworCQl9 CiAKLQlNTFg1X1NFVChjcmVhdGVfZmxvd19ncm91cF9pbiwgZmxvd19ncm91cF9pbiwgc3RhcnRf Zmxvd19pbmRleCwgaXgpOwotCU1MWDVfU0VUKGNyZWF0ZV9mbG93X2dyb3VwX2luLCBmbG93X2dy b3VwX2luLCBlbmRfZmxvd19pbmRleCwKLQkJIGl4ICsgZXN3LT50b3RhbF92cG9ydHMgLSAxKTsK LQlpeCArPSBlc3ctPnRvdGFsX3Zwb3J0czsKKwkJTUxYNV9TRVQoY3JlYXRlX2Zsb3dfZ3JvdXBf aW4sIGZsb3dfZ3JvdXBfaW4sIHN0YXJ0X2Zsb3dfaW5kZXgsIGl4KTsKKwkJTUxYNV9TRVQoY3Jl YXRlX2Zsb3dfZ3JvdXBfaW4sIGZsb3dfZ3JvdXBfaW4sIGVuZF9mbG93X2luZGV4LAorCQkJIGl4 ICsgZXN3LT50b3RhbF92cG9ydHMgLSAxKTsKKwkJaXggKz0gZXN3LT50b3RhbF92cG9ydHM7CiAK LQlnID0gbWx4NV9jcmVhdGVfZmxvd19ncm91cChmZGIsIGZsb3dfZ3JvdXBfaW4pOwotCWlmIChJ U19FUlIoZykpIHsKLQkJZXJyID0gUFRSX0VSUihnKTsKLQkJZXN3X3dhcm4oZGV2LCAiRmFpbGVk IHRvIGNyZWF0ZSBwZWVyIG1pc3MgZmxvdyBncm91cCBlcnIoJWQpXG4iLCBlcnIpOwotCQlnb3Rv IHBlZXJfbWlzc19lcnI7CisJCWcgPSBtbHg1X2NyZWF0ZV9mbG93X2dyb3VwKGZkYiwgZmxvd19n cm91cF9pbik7CisJCWlmIChJU19FUlIoZykpIHsKKwkJCWVyciA9IFBUUl9FUlIoZyk7CisJCQll c3dfd2FybihkZXYsICJGYWlsZWQgdG8gY3JlYXRlIHBlZXIgbWlzcyBmbG93IGdyb3VwIGVycigl ZClcbiIsIGVycik7CisJCQlnb3RvIHBlZXJfbWlzc19lcnI7CisJCX0KKwkJZXN3LT5mZGJfdGFi bGUub2ZmbG9hZHMucGVlcl9taXNzX2dycCA9IGc7CiAJfQotCWVzdy0+ZmRiX3RhYmxlLm9mZmxv YWRzLnBlZXJfbWlzc19ncnAgPSBnOwogCiAJLyogY3JlYXRlIG1pc3MgZ3JvdXAgKi8KIAltZW1z ZXQoZmxvd19ncm91cF9pbiwgMCwgaW5sZW4pOwpAQCAtMTI4Miw3ICsxMjg0LDggQEAgc3RhdGlj IGludCBlc3dfY3JlYXRlX29mZmxvYWRzX2ZkYl90YWJsZXMoc3RydWN0IG1seDVfZXN3aXRjaCAq ZXN3LCBpbnQgbnZwb3J0cykKIG1pc3NfcnVsZV9lcnI6CiAJbWx4NV9kZXN0cm95X2Zsb3dfZ3Jv dXAoZXN3LT5mZGJfdGFibGUub2ZmbG9hZHMubWlzc19ncnApOwogbWlzc19lcnI6Ci0JbWx4NV9k ZXN0cm95X2Zsb3dfZ3JvdXAoZXN3LT5mZGJfdGFibGUub2ZmbG9hZHMucGVlcl9taXNzX2dycCk7 CisJaWYgKE1MWDVfQ0FQX0VTVyhlc3ctPmRldiwgbWVyZ2VkX2Vzd2l0Y2gpKQorCQltbHg1X2Rl c3Ryb3lfZmxvd19ncm91cChlc3ctPmZkYl90YWJsZS5vZmZsb2Fkcy5wZWVyX21pc3NfZ3JwKTsK IHBlZXJfbWlzc19lcnI6CiAJbWx4NV9kZXN0cm95X2Zsb3dfZ3JvdXAoZXN3LT5mZGJfdGFibGUu b2ZmbG9hZHMuc2VuZF90b192cG9ydF9ncnApOwogc2VuZF92cG9ydF9lcnI6CkBAIC0xMzA2LDcg KzEzMDksOCBAQCBzdGF0aWMgdm9pZCBlc3dfZGVzdHJveV9vZmZsb2Fkc19mZGJfdGFibGVzKHN0 cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdykKIAltbHg1X2RlbF9mbG93X3J1bGVzKGVzdy0+ZmRiX3Rh YmxlLm9mZmxvYWRzLm1pc3NfcnVsZV9tdWx0aSk7CiAJbWx4NV9kZWxfZmxvd19ydWxlcyhlc3ct PmZkYl90YWJsZS5vZmZsb2Fkcy5taXNzX3J1bGVfdW5pKTsKIAltbHg1X2Rlc3Ryb3lfZmxvd19n cm91cChlc3ctPmZkYl90YWJsZS5vZmZsb2Fkcy5zZW5kX3RvX3Zwb3J0X2dycCk7Ci0JbWx4NV9k ZXN0cm95X2Zsb3dfZ3JvdXAoZXN3LT5mZGJfdGFibGUub2ZmbG9hZHMucGVlcl9taXNzX2dycCk7 CisJaWYgKE1MWDVfQ0FQX0VTVyhlc3ctPmRldiwgbWVyZ2VkX2Vzd2l0Y2gpKQorCQltbHg1X2Rl c3Ryb3lfZmxvd19ncm91cChlc3ctPmZkYl90YWJsZS5vZmZsb2Fkcy5wZWVyX21pc3NfZ3JwKTsK IAltbHg1X2Rlc3Ryb3lfZmxvd19ncm91cChlc3ctPmZkYl90YWJsZS5vZmZsb2Fkcy5taXNzX2dy cCk7CiAKIAltbHg1X2Vzd19jaGFpbnNfZGVzdHJveShlc3cpOwotLSAKMi4yNi4yCgoKRnJvbSA0 Njk2OGY1YzQ0YjcyMjNjNjU2ZDRiZjQxMTM0NTZmODRkNTk5M2UwIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+CkRhdGU6IFN1 biwgMjggSnVuIDIwMjAgMTM6MDY6MDYgKzAzMDAKU3ViamVjdDogW1BBVENIIDI5LzU0XSBuZXQv bWx4NWU6IFRMUywgRG8gbm90IGV4cG9zZSBGUEdBIFRMUyBjb3VudGVyIGlmIG5vdAogc3VwcG9y dGVkCgpbIFVwc3RyZWFtIGNvbW1pdCA4ZjBiY2QxOWIxZGEzZjI2NDIyM2FiZWE5ODViOTQ2MmU4 NWEzNzE4IF0KClRoZSBzZXQgb2YgVExTIFRYIGdsb2JhbCBTVyBjb3VudGVycyBpbiBtbHg1ZV90 bHNfc3dfc3RhdHNfZGVzYwppcyB1cGRhdGVkIGZyb20gYWxsIHJpbmdzIGJ5IHVzaW5nIGF0b21p YyBvcHMuClRoaXMgc2V0IG9mIHN0YXRzIGlzIHVzZWQgb25seSBpbiB0aGUgRlBHQSBUTFMgdXNl IGNhc2UsIG5vdCBpbgp0aGUgQ29ubmVjdC1YIFRMUyBvbmUsIHdoZXJlIHJlZ3VsYXIgcGVyLXJp bmcgY291bnRlcnMgYXJlIHVzZWQuCgpEbyBub3QgZXhwb3NlIHRoZW0gaW4gdGhlIENvbm5lY3Qt WCB1c2UgY2FzZSwgYXMgdGhpcyB3b3VsZCBjYXVzZQpjb3VudGVyIGR1cGxpY2F0aW9uLiBGb3Ig ZXhhbXBsZSwgdHhfdGxzX2Ryb3Bfbm9fc3luY19kYXRhIHdvdWxkCmFwcGVhciB0d2ljZSBpbiB0 aGUgZXRodG9vbCBzdGF0cy4KCkZpeGVzOiBkMmVhZDFmMzYwZTggKCJuZXQvbWx4NWU6IEFkZCBr VExTIFRYIEhXIG9mZmxvYWQgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IFRhcmlxIFRvdWthbiA8 dGFyaXF0QG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG52 aWRpYS5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbnZpZGlhLmNv bT4KLS0tCiAuLi4vZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL3Rsc19zdGF0 cy5jIHwgMTIgKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9hY2NlbC90bHNfc3RhdHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbl9hY2NlbC90bHNfc3RhdHMuYwppbmRleCAwMTQ2OGVjMjc0NDYu LmI5NDliOWE3NTM4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX2FjY2VsL3Rsc19zdGF0cy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC90bHNfc3RhdHMuYwpAQCAtMzUsNyArMzUsNiBA QAogI2luY2x1ZGUgPG5ldC9zb2NrLmg+CiAKICNpbmNsdWRlICJlbi5oIgotI2luY2x1ZGUgImFj Y2VsL3Rscy5oIgogI2luY2x1ZGUgImZwZ2Evc2RrLmgiCiAjaW5jbHVkZSAiZW5fYWNjZWwvdGxz LmgiCiAKQEAgLTUxLDkgKzUwLDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNj IG1seDVlX3Rsc19zd19zdGF0c19kZXNjW10gPSB7CiAKICNkZWZpbmUgTlVNX1RMU19TV19DT1VO VEVSUyBBUlJBWV9TSVpFKG1seDVlX3Rsc19zd19zdGF0c19kZXNjKQogCitzdGF0aWMgYm9vbCBp c190bHNfYXRvbWljX3N0YXRzKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQoreworCXJldHVybiBw cml2LT50bHMgJiYgIW1seDVfYWNjZWxfaXNfa3Rsc19kZXZpY2UocHJpdi0+bWRldik7Cit9CisK IGludCBtbHg1ZV90bHNfZ2V0X2NvdW50KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogewotCWlm ICghcHJpdi0+dGxzKQorCWlmICghaXNfdGxzX2F0b21pY19zdGF0cyhwcml2KSkKIAkJcmV0dXJu IDA7CiAKIAlyZXR1cm4gTlVNX1RMU19TV19DT1VOVEVSUzsKQEAgLTYzLDcgKzY3LDcgQEAgaW50 IG1seDVlX3Rsc19nZXRfc3RyaW5ncyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdWludDhfdCAq ZGF0YSkKIHsKIAl1bnNpZ25lZCBpbnQgaSwgaWR4ID0gMDsKIAotCWlmICghcHJpdi0+dGxzKQor CWlmICghaXNfdGxzX2F0b21pY19zdGF0cyhwcml2KSkKIAkJcmV0dXJuIDA7CiAKIAlmb3IgKGkg PSAwOyBpIDwgTlVNX1RMU19TV19DT1VOVEVSUzsgaSsrKQpAQCAtNzcsNyArODEsNyBAQCBpbnQg bWx4NWVfdGxzX2dldF9zdGF0cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdTY0ICpkYXRhKQog ewogCWludCBpLCBpZHggPSAwOwogCi0JaWYgKCFwcml2LT50bHMpCisJaWYgKCFpc190bHNfYXRv bWljX3N0YXRzKHByaXYpKQogCQlyZXR1cm4gMDsKIAogCWZvciAoaSA9IDA7IGkgPCBOVU1fVExT X1NXX0NPVU5URVJTOyBpKyspCi0tIAoyLjI2LjIKCgpGcm9tIDA5MmEyOTczZDBjZjg3N2Y2Zjhi Yzg0NGY1ZDcxOGE4NTIyOTE1ZmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZhc3Vu ZGhhcmEgVm9sYW0gPHZhc3VuZGhhcmEtdi52b2xhbUBicm9hZGNvbS5jb20+CkRhdGU6IFN1biwg MjAgU2VwIDIwMjAgMjE6MDg6NTQgLTA0MDAKU3ViamVjdDogW1BBVENIIDMwLzU0XSBibnh0X2Vu OiBVc2UgbWVtY3B5IHRvIGNvcHkgVlBEIGZpZWxkIGluZm8uCgpbIFVwc3RyZWFtIGNvbW1pdCA0 OTJhZGNmNDgxMjkyNTIxZWU4ZGYxYTQ4MmRjMTJhY2RiMjhhYTE1IF0KClVzaW5nIHN0cmxjcHko KSB0byBjb3B5IGZyb20gVlBEIGlzIG5vdCBjb3JyZWN0IGJlY2F1c2UgVlBEIHN0cmluZ3MKYXJl IG5vdCBuZWNlc3NhcmlseSBOVUxMIHRlcm1pbmF0ZWQuICBVc2UgbWVtY3B5KCkgdG8gY29weSB0 aGUgVlBECmxlbmd0aCB1cCB0byB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHNpemUgLSAxLiAgVGhl IGRlc3RpbmF0aW9uIGlzCnplcm9lZCBtZW1vcnkgc28gaXQgd2lsbCBhbHdheXMgYmUgTlVMTCB0 ZXJtaW5hdGVkLgoKRml4ZXM6IGEwZDBmZDcwZmVkNSAoImJueHRfZW46IFJlYWQgcGFydG5vIGFu ZCBzZXJpYWxubyBvZiB0aGUgYm9hcmQgZnJvbSBWUEQiKQpTaWduZWQtb2ZmLWJ5OiBWYXN1bmRo YXJhIFZvbGFtIDx2YXN1bmRoYXJhLXYudm9sYW1AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5 OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyB8IDggKysrKystLS0KIDEgZmlsZSBjaGFuZ2Vk LCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibnh0L2JueHQuYwppbmRleCAzNjEyMDM5ZTc0MzkuLjRlMjZhOTM1YjI2ZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKQEAgLTExODA3LDcgKzEx ODA3LDcgQEAgc3RhdGljIGludCBibnh0X2luaXRfbWFjX2FkZHIoc3RydWN0IGJueHQgKmJwKQog c3RhdGljIHZvaWQgYm54dF92cGRfcmVhZF9pbmZvKHN0cnVjdCBibnh0ICpicCkKIHsKIAlzdHJ1 Y3QgcGNpX2RldiAqcGRldiA9IGJwLT5wZGV2OwotCWludCBpLCBsZW4sIHBvcywgcm9fc2l6ZTsK KwlpbnQgaSwgbGVuLCBwb3MsIHJvX3NpemUsIHNpemU7CiAJc3NpemVfdCB2cGRfc2l6ZTsKIAl1 OCAqdnBkX2RhdGE7CiAKQEAgLTExODQyLDcgKzExODQyLDggQEAgc3RhdGljIHZvaWQgYm54dF92 cGRfcmVhZF9pbmZvKHN0cnVjdCBibnh0ICpicCkKIAlpZiAobGVuICsgcG9zID4gdnBkX3NpemUp CiAJCWdvdG8gcmVhZF9zbjsKIAotCXN0cmxjcHkoYnAtPmJvYXJkX3BhcnRubywgJnZwZF9kYXRh W3Bvc10sIG1pbihsZW4sIEJOWFRfVlBEX0ZMRF9MRU4pKTsKKwlzaXplID0gbWluKGxlbiwgQk5Y VF9WUERfRkxEX0xFTiAtIDEpOworCW1lbWNweShicC0+Ym9hcmRfcGFydG5vLCAmdnBkX2RhdGFb cG9zXSwgc2l6ZSk7CiAKIHJlYWRfc246CiAJcG9zID0gcGNpX3ZwZF9maW5kX2luZm9fa2V5d29y ZCh2cGRfZGF0YSwgaSwgcm9fc2l6ZSwKQEAgLTExODU1LDcgKzExODU2LDggQEAgc3RhdGljIHZv aWQgYm54dF92cGRfcmVhZF9pbmZvKHN0cnVjdCBibnh0ICpicCkKIAlpZiAobGVuICsgcG9zID4g dnBkX3NpemUpCiAJCWdvdG8gZXhpdDsKIAotCXN0cmxjcHkoYnAtPmJvYXJkX3NlcmlhbG5vLCAm dnBkX2RhdGFbcG9zXSwgbWluKGxlbiwgQk5YVF9WUERfRkxEX0xFTikpOworCXNpemUgPSBtaW4o bGVuLCBCTlhUX1ZQRF9GTERfTEVOIC0gMSk7CisJbWVtY3B5KGJwLT5ib2FyZF9zZXJpYWxubywg JnZwZF9kYXRhW3Bvc10sIHNpemUpOwogZXhpdDoKIAlrZnJlZSh2cGRfZGF0YSk7CiB9Ci0tIAoy LjI2LjIKCgpGcm9tIDViMzI3MzMyZDUxNzMxN2I4ZTgwOTM5OGEyNmQ2NTkwOTZlZTRkZmIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVkd2luIFBlZXIgPGVkd2luLnBlZXJAYnJvYWRj b20uY29tPgpEYXRlOiBTdW4sIDIwIFNlcCAyMDIwIDIxOjA4OjU1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCAzMS81NF0gYm54dF9lbjogcmV0dXJuIHByb3BlciBlcnJvciBjb2RlcyBpbiBibnh0X3No b3dfdGVtcAoKWyBVcHN0cmVhbSBjb21taXQgZDY5NzUzZmExZWNiMzIxOGI1NmIwMjI3MjJmN2E1 ODIyNzM1Yjg3NiBdCgpSZXR1cm5pbmcgInVua25vd24iIGFzIGEgdGVtcGVyYXR1cmUgdmFsdWUg dmlvbGF0ZXMgdGhlIGh3bW9uIGludGVyZmFjZQpydWxlcy4gQXBwcm9wcmlhdGUgZXJyb3IgY29k ZXMgc2hvdWxkIGJlIHJldHVybmVkIHZpYSBkZXZpY2VfYXR0cmlidXRlCnNob3cgaW5zdGVhZC4g VGhlc2Ugd2lsbCB1bHRpbWF0ZWx5IGJlIHByb3BhZ2F0ZWQgdG8gdGhlIHVzZXIgdmlhIHRoZQpm aWxlIHN5c3RlbSBpbnRlcmZhY2UuCgpJbiBhZGRpdGlvbiB0byB0aGUgY29ycmVjdGVkIGVycm9y IGhhbmRsaW5nLCBpdCBpcyBhbiBldmVuIGJldHRlciBpZGVhIHRvCm5vdCBwcmVzZW50IHRoZSBz ZW5zb3IgaW4gc3lzZnMgYXQgYWxsIGlmIGl0IGlzIGtub3duIHRoYXQgdGhlIHJlYWQgd2lsbApk ZWZpbml0ZWx5IGZhaWwuIEdpdmVuIHRoYXQgdGVtcDFfaW5wdXQgaXMgY3VycmVudGx5IHRoZSBv bmx5IHNlbnNvcgpyZXBvcnRlZCwgZW5zdXJlIG5vIGh3bW9uIHJlZ2lzdHJhdGlvbiBpZiBURU1Q X01PTklUT1JfUVVFUlkgaXMgbm90CnN1cHBvcnRlZCBvciBpZiBpdCB3aWxsIGZhaWwgZHVlIHRv IGFjY2VzcyBwZXJtaXNzaW9ucy4gU29tZXRoaW5nIHNtYXJ0ZXIKbWF5IGJlIG5lZWRlZCBpZiBh bmQgd2hlbiBvdGhlciBzZW5zb3JzIGFyZSBhZGRlZC4KCkZpeGVzOiAxMmNjZTkwYjkzNGIgKCJi bnh0X2VuOiBmaXggSFdSTSBlcnJvciB3aGVuIHF1ZXJ5aW5nIFZGIHRlbXBlcmF0dXJlIikKU2ln bmVkLW9mZi1ieTogRWR3aW4gUGVlciA8ZWR3aW4ucGVlckBicm9hZGNvbS5jb20+ClNpZ25lZC1v ZmYtYnk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jIHwgMTkgKysrKysrKysrKysrKy0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwppbmRleCA0ZTI2YTkzNWIyNmYu LmRkMDdkYjY1NmE1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20v Ym54dC9ibnh0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0 LmMKQEAgLTg5OTMsMTggKzg5OTMsMTYgQEAgc3RhdGljIHNzaXplX3QgYm54dF9zaG93X3RlbXAo c3RydWN0IGRldmljZSAqZGV2LAogCXN0cnVjdCBod3JtX3RlbXBfbW9uaXRvcl9xdWVyeV9vdXRw dXQgKnJlc3A7CiAJc3RydWN0IGJueHQgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJdTMy IGxlbiA9IDA7CisJaW50IHJjOwogCiAJcmVzcCA9IGJwLT5od3JtX2NtZF9yZXNwX2FkZHI7CiAJ Ym54dF9od3JtX2NtZF9oZHJfaW5pdChicCwgJnJlcSwgSFdSTV9URU1QX01PTklUT1JfUVVFUlks IC0xLCAtMSk7CiAJbXV0ZXhfbG9jaygmYnAtPmh3cm1fY21kX2xvY2spOwotCWlmICghX2h3cm1f c2VuZF9tZXNzYWdlX3NpbGVudChicCwgJnJlcSwgc2l6ZW9mKHJlcSksIEhXUk1fQ01EX1RJTUVP VVQpKQorCXJjID0gX2h3cm1fc2VuZF9tZXNzYWdlKGJwLCAmcmVxLCBzaXplb2YocmVxKSwgSFdS TV9DTURfVElNRU9VVCk7CisJaWYgKCFyYykKIAkJbGVuID0gc3ByaW50ZihidWYsICIldVxuIiwg cmVzcC0+dGVtcCAqIDEwMDApOyAvKiBkaXNwbGF5IG1pbGxpZGVncmVlICovCiAJbXV0ZXhfdW5s b2NrKCZicC0+aHdybV9jbWRfbG9jayk7Ci0KLQlpZiAobGVuKQotCQlyZXR1cm4gbGVuOwotCi0J cmV0dXJuIHNwcmludGYoYnVmLCAidW5rbm93blxuIik7CisJcmV0dXJuIHJjID86IGxlbjsKIH0K IHN0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFIodGVtcDFfaW5wdXQsIDA0NDQsIGJueHRfc2hvd190 ZW1wLCBOVUxMLCAwKTsKIApAQCAtOTAyNCw3ICs5MDIyLDE2IEBAIHN0YXRpYyB2b2lkIGJueHRf aHdtb25fY2xvc2Uoc3RydWN0IGJueHQgKmJwKQogCiBzdGF0aWMgdm9pZCBibnh0X2h3bW9uX29w ZW4oc3RydWN0IGJueHQgKmJwKQogeworCXN0cnVjdCBod3JtX3RlbXBfbW9uaXRvcl9xdWVyeV9p bnB1dCByZXEgPSB7MH07CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBicC0+cGRldjsKKwlpbnQg cmM7CisKKwlibnh0X2h3cm1fY21kX2hkcl9pbml0KGJwLCAmcmVxLCBIV1JNX1RFTVBfTU9OSVRP Ul9RVUVSWSwgLTEsIC0xKTsKKwlyYyA9IGh3cm1fc2VuZF9tZXNzYWdlX3NpbGVudChicCwgJnJl cSwgc2l6ZW9mKHJlcSksIEhXUk1fQ01EX1RJTUVPVVQpOworCWlmIChyYyA9PSAtRUFDQ0VTIHx8 IHJjID09IC1FT1BOT1RTVVBQKSB7CisJCWJueHRfaHdtb25fY2xvc2UoYnApOworCQlyZXR1cm47 CisJfQogCiAJaWYgKGJwLT5od21vbl9kZXYpCiAJCXJldHVybjsKLS0gCjIuMjYuMgoKCkZyb20g ZWYzMzYwMWNhY2RjZTFhNGZkZDFjZjAyZjU4ZWYyNmVmMTY4ZGU4NSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpE YXRlOiBTdW4sIDIwIFNlcCAyMDIwIDIxOjA4OjU2IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAzMi81 NF0gYm54dF9lbjogUHJvdGVjdCBibnh0X3NldF9lZWUoKSBhbmQKIGJueHRfc2V0X3BhdXNlcGFy YW0oKSB3aXRoIG11dGV4LgoKWyBVcHN0cmVhbSBjb21taXQgYTUzOTA2OTA4MTQ4ZDY0NDIzMzk4 YTYyYzQ0MzVlZmIwZDA5NjUyYyBdCgpBbGwgY2hhbmdlcyByZWxhdGVkIHRvIGJwLT5saW5rX2lu Zm8gcmVxdWlyZSB0aGUgcHJvdGVjdGlvbiBvZiB0aGUKbGlua19sb2NrIG11dGV4LiAgSXQncyBu b3Qgc3VmZmljaWVudCB0byByZWx5IGp1c3Qgb24gUlROTC4KCkZpeGVzOiAxNjNlOWVmNjM2NDEg KCJibnh0X2VuOiBGaXggcmFjZSB3aGVuIG1vZGlmeWluZyBwYXVzZSBzZXR0aW5ncy4iKQpSZXZp ZXdlZC1ieTogRWR3aW4gUGVlciA8ZWR3aW4ucGVlckBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYt Ynk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIC4uLi9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYyB8IDMxICsrKysrKysrKysrKy0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9v bC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYwpp bmRleCBiYzJjNzZmYTU0Y2EuLmY2ZTIzNmE3YmYxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9vbC5jCkBAIC0xNzM1LDkgKzE3MzUsMTIg QEAgc3RhdGljIGludCBibnh0X3NldF9wYXVzZXBhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs CiAJaWYgKCFCTlhUX1BIWV9DRkdfQUJMRShicCkpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAor CW11dGV4X2xvY2soJmJwLT5saW5rX2xvY2spOwogCWlmIChlcGF1c2UtPmF1dG9uZWcpIHsKLQkJ aWYgKCEobGlua19pbmZvLT5hdXRvbmVnICYgQk5YVF9BVVRPTkVHX1NQRUVEKSkKLQkJCXJldHVy biAtRUlOVkFMOworCQlpZiAoIShsaW5rX2luZm8tPmF1dG9uZWcgJiBCTlhUX0FVVE9ORUdfU1BF RUQpKSB7CisJCQlyYyA9IC1FSU5WQUw7CisJCQlnb3RvIHBhdXNlX2V4aXQ7CisJCX0KIAogCQls aW5rX2luZm8tPmF1dG9uZWcgfD0gQk5YVF9BVVRPTkVHX0ZMT1dfQ1RSTDsKIAkJaWYgKGJwLT5o d3JtX3NwZWNfY29kZSA+PSAweDEwMjAxKQpAQCAtMTc1OCwxMSArMTc2MSwxMSBAQCBzdGF0aWMg aW50IGJueHRfc2V0X3BhdXNlcGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlpZiAoZXBh dXNlLT50eF9wYXVzZSkKIAkJbGlua19pbmZvLT5yZXFfZmxvd19jdHJsIHw9IEJOWFRfTElOS19Q QVVTRV9UWDsKIAotCWlmIChuZXRpZl9ydW5uaW5nKGRldikpIHsKLQkJbXV0ZXhfbG9jaygmYnAt PmxpbmtfbG9jayk7CisJaWYgKG5ldGlmX3J1bm5pbmcoZGV2KSkKIAkJcmMgPSBibnh0X2h3cm1f c2V0X3BhdXNlKGJwKTsKLQkJbXV0ZXhfdW5sb2NrKCZicC0+bGlua19sb2NrKTsKLQl9CisKK3Bh dXNlX2V4aXQ6CisJbXV0ZXhfdW5sb2NrKCZicC0+bGlua19sb2NrKTsKIAlyZXR1cm4gcmM7CiB9 CiAKQEAgLTI0OTksOCArMjUwMiw3IEBAIHN0YXRpYyBpbnQgYm54dF9zZXRfZWVlKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX2VlZSAqZWRhdGEpCiAJc3RydWN0IGJueHQg KmJwID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgZXRodG9vbF9lZWUgKmVlZSA9ICZicC0+ ZWVlOwogCXN0cnVjdCBibnh0X2xpbmtfaW5mbyAqbGlua19pbmZvID0gJmJwLT5saW5rX2luZm87 Ci0JdTMyIGFkdmVydGlzaW5nID0KLQkJIF9ibnh0X2Z3X3RvX2V0aHRvb2xfYWR2X3NwZHMobGlu a19pbmZvLT5hZHZlcnRpc2luZywgMCk7CisJdTMyIGFkdmVydGlzaW5nOwogCWludCByYyA9IDA7 CiAKIAlpZiAoIUJOWFRfUEhZX0NGR19BQkxFKGJwKSkKQEAgLTI1MDksMTkgKzI1MTEsMjMgQEAg c3RhdGljIGludCBibnh0X3NldF9lZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0 aHRvb2xfZWVlICplZGF0YSkKIAlpZiAoIShicC0+ZmxhZ3MgJiBCTlhUX0ZMQUdfRUVFX0NBUCkp CiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAorCW11dGV4X2xvY2soJmJwLT5saW5rX2xvY2spOwor CWFkdmVydGlzaW5nID0gX2JueHRfZndfdG9fZXRodG9vbF9hZHZfc3BkcyhsaW5rX2luZm8tPmFk dmVydGlzaW5nLCAwKTsKIAlpZiAoIWVkYXRhLT5lZWVfZW5hYmxlZCkKIAkJZ290byBlZWVfb2s7 CiAKIAlpZiAoIShsaW5rX2luZm8tPmF1dG9uZWcgJiBCTlhUX0FVVE9ORUdfU1BFRUQpKSB7CiAJ CW5ldGRldl93YXJuKGRldiwgIkVFRSByZXF1aXJlcyBhdXRvbmVnXG4iKTsKLQkJcmV0dXJuIC1F SU5WQUw7CisJCXJjID0gLUVJTlZBTDsKKwkJZ290byBlZWVfZXhpdDsKIAl9CiAJaWYgKGVkYXRh LT50eF9scGlfZW5hYmxlZCkgewogCQlpZiAoYnAtPmxwaV90bXJfaGkgJiYgKGVkYXRhLT50eF9s cGlfdGltZXIgPiBicC0+bHBpX3Rtcl9oaSB8fAogCQkJCSAgICAgICBlZGF0YS0+dHhfbHBpX3Rp bWVyIDwgYnAtPmxwaV90bXJfbG8pKSB7CiAJCQluZXRkZXZfd2FybihkZXYsICJWYWxpZCBMUEkg dGltZXIgcmFuZ2UgaXMgJWQgYW5kICVkIG1pY3Jvc2Vjc1xuIiwKIAkJCQkgICAgYnAtPmxwaV90 bXJfbG8sIGJwLT5scGlfdG1yX2hpKTsKLQkJCXJldHVybiAtRUlOVkFMOworCQkJcmMgPSAtRUlO VkFMOworCQkJZ290byBlZWVfZXhpdDsKIAkJfSBlbHNlIGlmICghYnAtPmxwaV90bXJfaGkpIHsK IAkJCWVkYXRhLT50eF9scGlfdGltZXIgPSBlZWUtPnR4X2xwaV90aW1lcjsKIAkJfQpAQCAtMjUz MSw3ICsyNTM3LDggQEAgc3RhdGljIGludCBibnh0X3NldF9lZWUoc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwgc3RydWN0IGV0aHRvb2xfZWVlICplZGF0YSkKIAl9IGVsc2UgaWYgKGVkYXRhLT5hZHZl cnRpc2VkICYgfmFkdmVydGlzaW5nKSB7CiAJCW5ldGRldl93YXJuKGRldiwgIkVFRSBhZHZlcnRp c2VkICV4IG11c3QgYmUgYSBzdWJzZXQgb2YgYXV0b25lZyBhZHZlcnRpc2VkIHNwZWVkcyAleFxu IiwKIAkJCSAgICBlZGF0YS0+YWR2ZXJ0aXNlZCwgYWR2ZXJ0aXNpbmcpOwotCQlyZXR1cm4gLUVJ TlZBTDsKKwkJcmMgPSAtRUlOVkFMOworCQlnb3RvIGVlZV9leGl0OwogCX0KIAogCWVlZS0+YWR2 ZXJ0aXNlZCA9IGVkYXRhLT5hZHZlcnRpc2VkOwpAQCAtMjU0Myw2ICsyNTUwLDggQEAgc3RhdGlj IGludCBibnh0X3NldF9lZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xf ZWVlICplZGF0YSkKIAlpZiAobmV0aWZfcnVubmluZyhkZXYpKQogCQlyYyA9IGJueHRfaHdybV9z ZXRfbGlua19zZXR0aW5nKGJwLCBmYWxzZSwgdHJ1ZSk7CiAKK2VlZV9leGl0OgorCW11dGV4X3Vu bG9jaygmYnAtPmxpbmtfbG9jayk7CiAJcmV0dXJuIHJjOwogfQogCi0tIAoyLjI2LjIKCgpGcm9t IGRlYjM5M2UxMWYwZTU4ZDgxMDk5MDJjM2RkZGYyMDU3NzU0ZjZjNjMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEhhdWtlIE1laHJ0ZW5zIDxoYXVrZUBoYXVrZS1tLmRlPgpEYXRlOiBT YXQsIDEyIFNlcCAyMDIwIDIxOjM2OjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMy81NF0gbmV0 OiBsYW50aXE6IFdha2UgVFggcXVldWUgYWdhaW4KClsgVXBzdHJlYW0gY29tbWl0IGRlYTM2NjMx ZTZmMTg2ZDRiODUzYWY2N2E0YWVmMmUzNWNmYThiYjcgXQoKVGhlIGNhbGwgdG8gbmV0aWZfd2Fr ZV9xdWV1ZSgpIHdoZW4gdGhlIFRYIGRlc2NyaXB0b3JzIHdlcmUgZnJlZWQgd2FzCm1pc3Npbmcu IFdoZW4gdGhlcmUgYXJlIG5vIFRYIGJ1ZmZlcnMgYXZhaWxhYmxlIHRoZSBUWCBxdWV1ZSB3aWxs IGJlCnN0b3BwZWQsIGJ1dCBpdCB3YXMgbm90IHN0YXJ0ZWQgYWdhaW4gd2hlbiB0aGV5IGFyZSBh dmFpbGFibGUgYWdhaW4sCnRoaXMgaXMgZml4ZWQgaW4gdGhpcyBwYXRjaC4KCkZpeGVzOiBmZTFh NTY0MjBjZjIgKCJuZXQ6IGxhbnRpcTogQWRkIExhbnRpcSAvIEludGVsIFZSWDIwMCBFdGhlcm5l dCBkcml2ZXIiKQpTaWduZWQtb2ZmLWJ5OiBIYXVrZSBNZWhydGVucyA8aGF1a2VAaGF1a2UtbS5k ZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV94cngyMDAuYyB8IDMgKysrCiAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbGFudGlxX3hyeDIwMC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFudGlxX3hyeDIwMC5j CmluZGV4IDE2NDVlNGU3ZWJkYi4uMWZlYjlmYzcxMGUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9sYW50aXFfeHJ4MjAwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFu dGlxX3hyeDIwMC5jCkBAIC0yNjgsNiArMjY4LDkgQEAgc3RhdGljIGludCB4cngyMDBfdHhfaG91 c2VrZWVwaW5nKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAluZXRfZGV2 LT5zdGF0cy50eF9ieXRlcyArPSBieXRlczsKIAluZXRkZXZfY29tcGxldGVkX3F1ZXVlKGNoLT5w cml2LT5uZXRfZGV2LCBwa3RzLCBieXRlcyk7CiAKKwlpZiAobmV0aWZfcXVldWVfc3RvcHBlZChu ZXRfZGV2KSkKKwkJbmV0aWZfd2FrZV9xdWV1ZShuZXRfZGV2KTsKKwogCWlmIChwa3RzIDwgYnVk Z2V0KSB7CiAJCW5hcGlfY29tcGxldGUoJmNoLT5uYXBpKTsKIAkJbHRxX2RtYV9lbmFibGVfaXJx KCZjaC0+ZG1hKTsKLS0gCjIuMjYuMgoKCkZyb20gZTljNDFjMTY0MmJmNzA0NmM2Y2RlZDYyYzli NzYyOTY1ZTk2ODM4MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGF1a2UgTWVocnRl bnMgPGhhdWtlQGhhdWtlLW0uZGU+CkRhdGU6IFNhdCwgMTIgU2VwIDIwMjAgMjE6MzY6MjcgKzAy MDAKU3ViamVjdDogW1BBVENIIDM0LzU0XSBuZXQ6IGxhbnRpcTogdXNlIG5ldGlmX3R4X25hcGlf YWRkKCkgZm9yIFRYIE5BUEkKClsgVXBzdHJlYW0gY29tbWl0IDc0YzdiODBlMjIyYjU4ZDNjZWE3 MzFkMzFlMmEzMWE3N2ZlYTgzNDUgXQoKbmV0aWZfdHhfbmFwaV9hZGQoKSBzaG91bGQgYmUgdXNl ZCBmb3IgTkFQSSBpbiB0aGUgVFggZGlyZWN0aW9uIGluc3RlYWQKb2YgdGhlIG5ldGlmX25hcGlf YWRkKCkgZnVuY3Rpb24uCgpTaWduZWQtb2ZmLWJ5OiBIYXVrZSBNZWhydGVucyA8aGF1a2VAaGF1 a2UtbS5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV94cngyMDAuYyB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV94cngyMDAuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2xhbnRpcV94cngyMDAuYwppbmRleCAxZmViOWZjNzEwZTAuLmYzNGU0ZGM4YzY2MSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFudGlxX3hyeDIwMC5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2xhbnRpcV94cngyMDAuYwpAQCAtNTAyLDcgKzUwMiw3IEBAIHN0YXRp YyBpbnQgeHJ4MjAwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAkvKiBz ZXR1cCBOQVBJICovCiAJbmV0aWZfbmFwaV9hZGQobmV0X2RldiwgJnByaXYtPmNoYW5fcngubmFw aSwgeHJ4MjAwX3BvbGxfcngsIDMyKTsKLQluZXRpZl9uYXBpX2FkZChuZXRfZGV2LCAmcHJpdi0+ Y2hhbl90eC5uYXBpLCB4cngyMDBfdHhfaG91c2VrZWVwaW5nLCAzMik7CisJbmV0aWZfdHhfbmFw aV9hZGQobmV0X2RldiwgJnByaXYtPmNoYW5fdHgubmFwaSwgeHJ4MjAwX3R4X2hvdXNla2VlcGlu ZywgMzIpOwogCiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHJpdik7CiAKLS0gCjIuMjYu MgoKCkZyb20gNmExNzdlZDAwYTA3OGMwMmQ0ODQ4ZGI5NGQ1MDFmZjhlMTlmOGQ1NyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGF1a2UgTWVocnRlbnMgPGhhdWtlQGhhdWtlLW0uZGU+ CkRhdGU6IFNhdCwgMTIgU2VwIDIwMjAgMjE6MzY6MjggKzAyMDAKU3ViamVjdDogW1BBVENIIDM1 LzU0XSBuZXQ6IGxhbnRpcTogVXNlIG5hcGlfY29tcGxldGVfZG9uZSgpCgpbIFVwc3RyZWFtIGNv bW1pdCBjNTgyYTdmZWE5ZGFkNGQzMDk0MzdkMWE3ZTIyZTZkMmNiMzgwZTJlIF0KClVzZSBuYXBp X2NvbXBsZXRlX2RvbmUoKSBhbmQgYWN0aXZhdGUgdGhlIGludGVycnVwdHMgd2hlbiB0aGlzIGZ1 bmN0aW9uCnJldHVybnMgdHJ1ZS4gVGhpcyB3YXkgdGhlIGdlbmVyaWMgTkFQSSBjb2RlIGNhbiB0 YWtlIGNhcmUgb2YgYWN0aXZhdGluZwp0aGUgaW50ZXJydXB0cy4KClNpZ25lZC1vZmYtYnk6IEhh dWtlIE1laHJ0ZW5zIDxoYXVrZUBoYXVrZS1tLmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFu dGlxX3hyeDIwMC5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50 aXFfeHJ4MjAwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfeHJ4MjAwLmMKaW5kZXgg ZjM0ZTRkYzhjNjYxLi5hYmVlN2Q2MTA3NGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2xhbnRpcV94cngyMDAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfeHJ4 MjAwLmMKQEAgLTIzMCw4ICsyMzAsOCBAQCBzdGF0aWMgaW50IHhyeDIwMF9wb2xsX3J4KHN0cnVj dCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAl9CiAKIAlpZiAocnggPCBidWRnZXQp IHsKLQkJbmFwaV9jb21wbGV0ZSgmY2gtPm5hcGkpOwotCQlsdHFfZG1hX2VuYWJsZV9pcnEoJmNo LT5kbWEpOworCQlpZiAobmFwaV9jb21wbGV0ZV9kb25lKCZjaC0+bmFwaSwgcngpKQorCQkJbHRx X2RtYV9lbmFibGVfaXJxKCZjaC0+ZG1hKTsKIAl9CiAKIAlyZXR1cm4gcng7CkBAIC0yNzIsOCAr MjcyLDggQEAgc3RhdGljIGludCB4cngyMDBfdHhfaG91c2VrZWVwaW5nKHN0cnVjdCBuYXBpX3N0 cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAkJbmV0aWZfd2FrZV9xdWV1ZShuZXRfZGV2KTsKIAog CWlmIChwa3RzIDwgYnVkZ2V0KSB7Ci0JCW5hcGlfY29tcGxldGUoJmNoLT5uYXBpKTsKLQkJbHRx X2RtYV9lbmFibGVfaXJxKCZjaC0+ZG1hKTsKKwkJaWYgKG5hcGlfY29tcGxldGVfZG9uZSgmY2gt Pm5hcGksIHBrdHMpKQorCQkJbHRxX2RtYV9lbmFibGVfaXJxKCZjaC0+ZG1hKTsKIAl9CiAKIAly ZXR1cm4gcGt0czsKLS0gCjIuMjYuMgoKCkZyb20gODg2Y2U4MjBhYzMwMzQ3MWU5NmYxNDkwZTMw NWI4NDNkYjBmNzlhNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGF1a2UgTWVocnRl bnMgPGhhdWtlQGhhdWtlLW0uZGU+CkRhdGU6IFNhdCwgMTIgU2VwIDIwMjAgMjE6MzY6MjkgKzAy MDAKU3ViamVjdDogW1BBVENIIDM2LzU0XSBuZXQ6IGxhbnRpcTogRGlzYWJsZSBJUlFzIG9ubHkg aWYgTkFQSSBnZXRzIHNjaGVkdWxlZAoKWyBVcHN0cmVhbSBjb21taXQgOTQyMzM2MWRhNTIzNTZj YjY4NjQyZGI1YjI3MjliNmI4NWFhZDMzMCBdCgpUaGUgbmFwaV9zY2hlZHVsZSgpIGNhbGwgd2ls bCBvbmx5IHNjaGVkdWxlIHRoZSBOQVBJIGlmIGl0IGlzIG5vdAphbHJlYWR5IHJ1bm5pbmcuIFRv IG1ha2Ugc3VyZSB0aGF0IHdlIGRvIG5vdCBkZWFjdGl2YXRlIGludGVycnVwdHMKd2l0aG91dCBz Y2hlZHVsaW5nIE5BUEkgb25seSBkZWFjdGl2YXRlIHRoZSBpbnRlcnJ1cHRzIGluIGNhc2UgTkFQ SSBhbHNvCmdldHMgc2NoZWR1bGVkLgoKU2lnbmVkLW9mZi1ieTogSGF1a2UgTWVocnRlbnMgPGhh dWtlQGhhdWtlLW0uZGU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfeHJ4MjAwLmMgfCA4 ICsrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV94cngyMDAuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV94cngyMDAuYwppbmRleCBhYmVlN2Q2MTA3NGMuLjYz NWZmM2E1ZGNmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFudGlxX3hyeDIw MC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV94cngyMDAuYwpAQCAtMzQ1LDEw ICszNDUsMTIgQEAgc3RhdGljIGlycXJldHVybl90IHhyeDIwMF9kbWFfaXJxKGludCBpcnEsIHZv aWQgKnB0cikKIHsKIAlzdHJ1Y3QgeHJ4MjAwX2NoYW4gKmNoID0gcHRyOwogCi0JbHRxX2RtYV9k aXNhYmxlX2lycSgmY2gtPmRtYSk7Ci0JbHRxX2RtYV9hY2tfaXJxKCZjaC0+ZG1hKTsKKwlpZiAo bmFwaV9zY2hlZHVsZV9wcmVwKCZjaC0+bmFwaSkpIHsKKwkJX19uYXBpX3NjaGVkdWxlKCZjaC0+ bmFwaSk7CisJCWx0cV9kbWFfZGlzYWJsZV9pcnEoJmNoLT5kbWEpOworCX0KIAotCW5hcGlfc2No ZWR1bGUoJmNoLT5uYXBpKTsKKwlsdHFfZG1hX2Fja19pcnEoJmNoLT5kbWEpOwogCiAJcmV0dXJu IElSUV9IQU5ETEVEOwogfQotLSAKMi4yNi4yCgoKRnJvbSA5NGEzZWJkYzc3ODI2NWYyZjIxNDFj ZmEyMTdjNzE5Y2U1OWY0OWExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFu IEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxNiBTZXAgMjAyMCAy MDo0MzowOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzcvNTRdIG5ldDogcGh5OiBBdm9pZCBOUEQg dXBvbiBwaHlfZGV0YWNoKCkgd2hlbiBkcml2ZXIgaXMKIHVuYm91bmQKClsgVXBzdHJlYW0gY29t bWl0IGMyYjcyN2RmN2NhYTMzODc2ZTcwNjZiZGUwOTBmNDAwMDFiNmQ2NDMgXQoKSWYgd2UgaGF2 ZSB1bmJvdW5kIHRoZSBQSFkgZHJpdmVyIHByaW9yIHRvIGNhbGxpbmcgcGh5X2RldGFjaCgpIChv ZnRlbgp2aWEgcGh5X2Rpc2Nvbm5lY3QoKSkgdGhlbiB3ZSBjYW4gY2F1c2UgYSBOVUxMIHBvaW50 ZXIgZGUtcmVmZXJlbmNlCmFjY2Vzc2luZyB0aGUgZHJpdmVyIG93bmVyIG1lbWJlci4gVGhlIHN0 ZXBzIHRvIHJlcHJvZHVjZSBhcmU6CgplY2hvIHVuaW1hYy1tZGlvLTA6MDEgPiAvc3lzL2NsYXNz L25ldC9ldGgwL3BoeWRldi9kcml2ZXIvdW5iaW5kCmlwIGxpbmsgc2V0IGV0aDAgZG93bgoKRml4 ZXM6IGNhZmU4ZGY4YjliYyAoIm5ldDogcGh5OiBGaXggbGFjayBvZiByZWZlcmVuY2UgY291bnQg b24gUEhZIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVs bGlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5 L3BoeV9kZXZpY2UuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMKaW5kZXggYWEyM2Zk MGNjYzUzLi4wNjc5MTBkMjQyYWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2 aWNlLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYwpAQCAtMTYzMSw3ICsxNjMx LDggQEAgdm9pZCBwaHlfZGV0YWNoKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiAKIAlwaHlf bGVkX3RyaWdnZXJzX3VucmVnaXN0ZXIocGh5ZGV2KTsKIAotCW1vZHVsZV9wdXQocGh5ZGV2LT5t ZGlvLmRldi5kcml2ZXItPm93bmVyKTsKKwlpZiAocGh5ZGV2LT5tZGlvLmRldi5kcml2ZXIpCisJ CW1vZHVsZV9wdXQocGh5ZGV2LT5tZGlvLmRldi5kcml2ZXItPm93bmVyKTsKIAogCS8qIElmIHRo ZSBkZXZpY2UgaGFkIG5vIHNwZWNpZmljIGRyaXZlciBiZWZvcmUgKGkuZS4gLSBpdAogCSAqIHdh cyB1c2luZyB0aGUgZ2VuZXJpYyBkcml2ZXIpLCB3ZSB1bmJpbmQgdGhlIGRldmljZQotLSAKMi4y Ni4yCgoKRnJvbSBjNTk0NTMxZTYxZjE2OTM2ZTZiMmYxZWVlNzFmNTVkYTRkMzRjNzQ5IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAxNiBTZXAgMjAyMCAyMDo0MzoxMCAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMzgvNTRdIG5ldDogcGh5OiBEbyBub3Qgd2FybiBpbiBwaHlfc3RvcCgpIG9uIFBIWV9E T1dOCgpbIFVwc3RyZWFtIGNvbW1pdCA1MTE2YThhZGUzMzNiNmMyZTE4MDc4MjEzOWM5YzUxNmE0 MzdiMjFjIF0KCldoZW4gcGh5X2lzX3N0YXJ0ZWQoKSB3YXMgYWRkZWQgdG8gY2F0Y2ggaW5jb3Jy ZWN0IFBIWSBzdGF0ZXMsCnBoeV9zdG9wKCkgd291bGQgbm90IGJlIHF1YWxpZmllZCBhZ2FpbnN0 IFBIWV9ET1dOLiBJdCBpcyBwb3NzaWJsZSB0bwpyZWFjaCB0aGF0IHN0YXRlIHdoZW4gdGhlIFBI WSBkcml2ZXIgaGFzIGJlZW4gdW5ib3VuZCBhbmQgdGhlIG5ldHdvcmsKZGV2aWNlIGlzIHRoZW4g YnJvdWdodCBkb3duLgoKRml4ZXM6IDJiM2U4OGVhNjUyOCAoIm5ldDogcGh5OiBpbXByb3ZlIHBo eSBzdGF0ZSBjaGVja2luZyIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFp bmVsbGlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNo PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvcGh5L3BoeS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3BoeS5j IGIvZHJpdmVycy9uZXQvcGh5L3BoeS5jCmluZGV4IDU2Y2ZhZTk1MDQ3Mi4uZjU2MjBmOTFkYmYz IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5LmMKKysrIGIvZHJpdmVycy9uZXQvcGh5 L3BoeS5jCkBAIC05NDgsNyArOTQ4LDcgQEAgdm9pZCBwaHlfc3RvcChzdHJ1Y3QgcGh5X2Rldmlj ZSAqcGh5ZGV2KQogewogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBwaHlkZXYtPmF0dGFjaGVk X2RldjsKIAotCWlmICghcGh5X2lzX3N0YXJ0ZWQocGh5ZGV2KSkgeworCWlmICghcGh5X2lzX3N0 YXJ0ZWQocGh5ZGV2KSAmJiBwaHlkZXYtPnN0YXRlICE9IFBIWV9ET1dOKSB7CiAJCVdBUk4oMSwg ImNhbGxlZCBmcm9tIHN0YXRlICVzXG4iLAogCQkgICAgIHBoeV9zdGF0ZV90b19zdHIocGh5ZGV2 LT5zdGF0ZSkpOwogCQlyZXR1cm47Ci0tIAoyLjI2LjIKCgpGcm9tIGEyMzk4ZTY5NjFmNDcwNTkx Y2NhODY2NGY2MDNlNTZmMDdkMGJiYTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCA5IFNlcCAyMDIwIDAx OjI3OjM5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzOS81NF0gbmV0OiBxcnRyOiBjaGVjayBza2Jf cHV0X3BhZHRvKCkgcmV0dXJuIHZhbHVlCgpbIFVwc3RyZWFtIGNvbW1pdCAzY2ExYTQyYTUyY2E0 YjRmMDIwNjE2ODM4NTE2OTJhZDY1ZmVmYWM4IF0KCklmIHNrYl9wdXRfcGFkdG8oKSByZXR1cm5z IGFuIGVycm9yLCBza2IgaGFzIGJlZW4gZnJlZWQuCkJldHRlciBub3QgdG91Y2ggaXQgYW55bW9y ZSwgYXMgcmVwb3J0ZWQgYnkgc3l6Ym90IFsxXQoKTm90ZSB0byBxcnRyIG1haW50YWluZXJzIDog dGhpcyBzdWdnZXN0cyBxcnRyX3NlbmRtc2coKQpzaG91bGQgYWRqdXN0IHNvY2tfYWxsb2Nfc2Vu ZF9za2IoKSBzZWNvbmQgcGFyYW1ldGVyCnRvIGFjY291bnQgZm9yIHRoZSBwb3RlbnRpYWwgYWRk ZWQgYWxpZ25tZW50IHRvIGF2b2lkCnJlYWxsb2NhdGlvbi4KClsxXQoKQlVHOiBLQVNBTjogdXNl LWFmdGVyLWZyZWUgaW4gX19za2JfaW5zZXJ0IGluY2x1ZGUvbGludXgvc2tidWZmLmg6MTkwNyBb aW5saW5lXQpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBfX3NrYl9xdWV1ZV9iZWZvcmUg aW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDE2IFtpbmxpbmVdCkJVRzogS0FTQU46IHVzZS1hZnRl ci1mcmVlIGluIF9fc2tiX3F1ZXVlX3RhaWwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDQ5IFtp bmxpbmVdCkJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIHNrYl9xdWV1ZV90YWlsKzB4NmIv MHgxMjAgbmV0L2NvcmUvc2tidWZmLmM6MzE0NgpXcml0ZSBvZiBzaXplIDggYXQgYWRkciBmZmZm ODg4MDRkOGFiM2MwIGJ5IHRhc2sgc3l6LWV4ZWN1dG9yLjQvNDMxNgoKQ1BVOiAxIFBJRDogNDMx NiBDb21tOiBzeXotZXhlY3V0b3IuNCBOb3QgdGFpbnRlZCA1LjkuMC1yYzQtc3l6a2FsbGVyICMw CkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1 dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3Rh Y2sgbGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQogZHVtcF9zdGFjaysweDFkNi8weDI5ZSBs aWIvZHVtcF9zdGFjay5jOjExOAogcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisweDY2LzB4NjIw IG1tL2thc2FuL3JlcG9ydC5jOjM4MwogX19rYXNhbl9yZXBvcnQgbW0va2FzYW4vcmVwb3J0LmM6 NTEzIFtpbmxpbmVdCiBrYXNhbl9yZXBvcnQrMHgxMzIvMHgxZDAgbW0va2FzYW4vcmVwb3J0LmM6 NTMwCiBfX3NrYl9pbnNlcnQgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoxOTA3IFtpbmxpbmVdCiBf X3NrYl9xdWV1ZV9iZWZvcmUgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDE2IFtpbmxpbmVdCiBf X3NrYl9xdWV1ZV90YWlsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA0OSBbaW5saW5lXQogc2ti X3F1ZXVlX3RhaWwrMHg2Yi8weDEyMCBuZXQvY29yZS9za2J1ZmYuYzozMTQ2CiBxcnRyX3R1bl9z ZW5kKzB4MWEvMHg0MCBuZXQvcXJ0ci90dW4uYzoyMwogcXJ0cl9ub2RlX2VucXVldWUrMHg0NGYv MHhjMDAgbmV0L3FydHIvcXJ0ci5jOjM2NAogcXJ0cl9iY2FzdF9lbnF1ZXVlKzB4YmUvMHgxNDAg bmV0L3FydHIvcXJ0ci5jOjg2MQogcXJ0cl9zZW5kbXNnKzB4NjgwLzB4OWMwIG5ldC9xcnRyL3Fy dHIuYzo5NjAKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6NjUxIFtpbmxpbmVdCiBz b2NrX3NlbmRtc2cgbmV0L3NvY2tldC5jOjY3MSBbaW5saW5lXQogc29ja193cml0ZV9pdGVyKzB4 MzE3LzB4NDcwIG5ldC9zb2NrZXQuYzo5OTgKIGNhbGxfd3JpdGVfaXRlciBpbmNsdWRlL2xpbnV4 L2ZzLmg6MTg4MiBbaW5saW5lXQogbmV3X3N5bmNfd3JpdGUgZnMvcmVhZF93cml0ZS5jOjUwMyBb aW5saW5lXQogdmZzX3dyaXRlKzB4YTk2LzB4ZDEwIGZzL3JlYWRfd3JpdGUuYzo1NzgKIGtzeXNf d3JpdGUrMHgxMWIvMHgyMjAgZnMvcmVhZF93cml0ZS5jOjYzMQogZG9fc3lzY2FsbF82NCsweDMx LzB4NzAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6NDYKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJf aHdmcmFtZSsweDQ0LzB4YTkKUklQOiAwMDMzOjB4NDVkNWI5CkNvZGU6IDVkIGI0IGZiIGZmIGMz IDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDY2IDkwIDQ4IDg5IGY4IDQ4IDg5IGY3IDQ4 IDg5IGQ2IDQ4IDg5IGNhIDRkIDg5IGMyIDRkIDg5IGM4IDRjIDhiIDRjIDI0IDA4IDBmIDA1IDw0 OD4gM2QgMDEgZjAgZmYgZmYgMGYgODMgMmIgYjQgZmIgZmYgYzMgNjYgMmUgMGYgMWYgODQgMDAg MDAgMDAgMDAKUlNQOiAwMDJiOjAwMDA3Zjg0YjViODFjNzggRUZMQUdTOiAwMDAwMDI0NiBPUklH X1JBWDogMDAwMDAwMDAwMDAwMDAwMQpSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAw MDAwMDM4YjQwIFJDWDogMDAwMDAwMDAwMDQ1ZDViOQpSRFg6IDAwMDAwMDAwMDAwMDAwNTUgUlNJ OiAwMDAwMDAwMDIwMDAxMjQwIFJESTogMDAwMDAwMDAwMDAwMDAwMwpSQlA6IDAwMDA3Zjg0YjVi ODFjYTAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApSMTA6IDAw MDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAwMDAw ZgpSMTM6IDAwMDA3ZmZjYmJmODZkYWYgUjE0OiAwMDAwN2Y4NGI1YjgyOWMwIFIxNTogMDAwMDAw MDAwMTE4Y2Y0YwoKQWxsb2NhdGVkIGJ5IHRhc2sgNDMxNjoKIGthc2FuX3NhdmVfc3RhY2sgbW0v a2FzYW4vY29tbW9uLmM6NDggW2lubGluZV0KIGthc2FuX3NldF90cmFjayBtbS9rYXNhbi9jb21t b24uYzo1NiBbaW5saW5lXQogX19rYXNhbl9rbWFsbG9jKzB4MTAwLzB4MTMwIG1tL2thc2FuL2Nv bW1vbi5jOjQ2MQogc2xhYl9wb3N0X2FsbG9jX2hvb2srMHgzZS8weDI5MCBtbS9zbGFiLmg6NTE4 CiBzbGFiX2FsbG9jIG1tL3NsYWIuYzozMzEyIFtpbmxpbmVdCiBrbWVtX2NhY2hlX2FsbG9jKzB4 MWMxLzB4MmQwIG1tL3NsYWIuYzozNDgyCiBza2JfY2xvbmUrMHgxYjIvMHgzNzAgbmV0L2NvcmUv c2tidWZmLmM6MTQ0OQogcXJ0cl9iY2FzdF9lbnF1ZXVlKzB4NmQvMHgxNDAgbmV0L3FydHIvcXJ0 ci5jOjg1NwogcXJ0cl9zZW5kbXNnKzB4NjgwLzB4OWMwIG5ldC9xcnRyL3FydHIuYzo5NjAKIHNv Y2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6NjUxIFtpbmxpbmVdCiBzb2NrX3NlbmRtc2cg bmV0L3NvY2tldC5jOjY3MSBbaW5saW5lXQogc29ja193cml0ZV9pdGVyKzB4MzE3LzB4NDcwIG5l dC9zb2NrZXQuYzo5OTgKIGNhbGxfd3JpdGVfaXRlciBpbmNsdWRlL2xpbnV4L2ZzLmg6MTg4MiBb aW5saW5lXQogbmV3X3N5bmNfd3JpdGUgZnMvcmVhZF93cml0ZS5jOjUwMyBbaW5saW5lXQogdmZz X3dyaXRlKzB4YTk2LzB4ZDEwIGZzL3JlYWRfd3JpdGUuYzo1NzgKIGtzeXNfd3JpdGUrMHgxMWIv MHgyMjAgZnMvcmVhZF93cml0ZS5jOjYzMQogZG9fc3lzY2FsbF82NCsweDMxLzB4NzAgYXJjaC94 ODYvZW50cnkvY29tbW9uLmM6NDYKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0 LzB4YTkKCkZyZWVkIGJ5IHRhc2sgNDMxNjoKIGthc2FuX3NhdmVfc3RhY2sgbW0va2FzYW4vY29t bW9uLmM6NDggW2lubGluZV0KIGthc2FuX3NldF90cmFjaysweDNkLzB4NzAgbW0va2FzYW4vY29t bW9uLmM6NTYKIGthc2FuX3NldF9mcmVlX2luZm8rMHgxNy8weDMwIG1tL2thc2FuL2dlbmVyaWMu YzozNTUKIF9fa2FzYW5fc2xhYl9mcmVlKzB4ZGQvMHgxMTAgbW0va2FzYW4vY29tbW9uLmM6NDIy CiBfX2NhY2hlX2ZyZWUgbW0vc2xhYi5jOjM0MTggW2lubGluZV0KIGttZW1fY2FjaGVfZnJlZSsw eDgyLzB4ZjAgbW0vc2xhYi5jOjM2OTMKIF9fc2tiX3BhZCsweDNmNS8weDVhMCBuZXQvY29yZS9z a2J1ZmYuYzoxODIzCiBfX3NrYl9wdXRfcGFkdG8gaW5jbHVkZS9saW51eC9za2J1ZmYuaDozMjMz IFtpbmxpbmVdCiBza2JfcHV0X3BhZHRvIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MzI1MiBbaW5s aW5lXQogcXJ0cl9ub2RlX2VucXVldWUrMHg2MmYvMHhjMDAgbmV0L3FydHIvcXJ0ci5jOjM2MAog cXJ0cl9iY2FzdF9lbnF1ZXVlKzB4YmUvMHgxNDAgbmV0L3FydHIvcXJ0ci5jOjg2MQogcXJ0cl9z ZW5kbXNnKzB4NjgwLzB4OWMwIG5ldC9xcnRyL3FydHIuYzo5NjAKIHNvY2tfc2VuZG1zZ19ub3Nl YyBuZXQvc29ja2V0LmM6NjUxIFtpbmxpbmVdCiBzb2NrX3NlbmRtc2cgbmV0L3NvY2tldC5jOjY3 MSBbaW5saW5lXQogc29ja193cml0ZV9pdGVyKzB4MzE3LzB4NDcwIG5ldC9zb2NrZXQuYzo5OTgK IGNhbGxfd3JpdGVfaXRlciBpbmNsdWRlL2xpbnV4L2ZzLmg6MTg4MiBbaW5saW5lXQogbmV3X3N5 bmNfd3JpdGUgZnMvcmVhZF93cml0ZS5jOjUwMyBbaW5saW5lXQogdmZzX3dyaXRlKzB4YTk2LzB4 ZDEwIGZzL3JlYWRfd3JpdGUuYzo1NzgKIGtzeXNfd3JpdGUrMHgxMWIvMHgyMjAgZnMvcmVhZF93 cml0ZS5jOjYzMQogZG9fc3lzY2FsbF82NCsweDMxLzB4NzAgYXJjaC94ODYvZW50cnkvY29tbW9u LmM6NDYKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKClRoZSBidWdn eSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIG9iamVjdCBhdCBmZmZmODg4MDRkOGFiM2MwCiB3aGlj aCBiZWxvbmdzIHRvIHRoZSBjYWNoZSBza2J1ZmZfaGVhZF9jYWNoZSBvZiBzaXplIDIyNApUaGUg YnVnZ3kgYWRkcmVzcyBpcyBsb2NhdGVkIDAgYnl0ZXMgaW5zaWRlIG9mCiAyMjQtYnl0ZSByZWdp b24gW2ZmZmY4ODgwNGQ4YWIzYzAsIGZmZmY4ODgwNGQ4YWI0YTApClRoZSBidWdneSBhZGRyZXNz IGJlbG9uZ3MgdG8gdGhlIHBhZ2U6CnBhZ2U6MDAwMDAwMDBlYThjY2NmYiByZWZjb3VudDoxIG1h cGNvdW50OjAgbWFwcGluZzowMDAwMDAwMDAwMDAwMDAwIGluZGV4OjB4ZmZmZjg4ODA0ZDhhYmI0 MCBwZm46MHg0ZDhhYgpmbGFnczogMHhmZmZlMDAwMDAwMDIwMChzbGFiKQpyYXc6IDAwZmZmZTAw MDAwMDAyMDAgZmZmZmVhMDAwMjIzN2VjOCBmZmZmZWEwMDAyOWIzMzg4IGZmZmY4ODgyMWJiNjY4 MDAKcmF3OiBmZmZmODg4MDRkOGFiYjQwIGZmZmY4ODgwNGQ4YWIwMDAgMDAwMDAwMDEwMDAwMDAw YiAwMDAwMDAwMDAwMDAwMDAwCnBhZ2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBiYWQgYWNjZXNz IGRldGVjdGVkCgpGaXhlczogY2U1Nzc4NWJmOTFiICgibmV0OiBxcnRyOiBmaXggbGVuIG9mIHNr Yl9wdXRfcGFkdG8gaW4gcXJ0cl9ub2RlX2VucXVldWUiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxl ckBnb29nbGVncm91cHMuY29tPgpDYzogQ2FybCBIdWFuZyA8Y2podWFuZ0Bjb2RlYXVyb3JhLm9y Zz4KQ2M6IFdlbiBHb25nIDx3Z29uZ0Bjb2RlYXVyb3JhLm9yZz4KQ2M6IEJqb3JuIEFuZGVyc3Nv biA8Ympvcm4uYW5kZXJzc29uQGxpbmFyby5vcmc+CkNjOiBNYW5pdmFubmFuIFNhZGhhc2l2YW0g PG1hbml2YW5uYW4uc2FkaGFzaXZhbUBsaW5hcm8ub3JnPgpBY2tlZC1ieTogTWFuaXZhbm5hbiBT YWRoYXNpdmFtIDxtYW5pdmFubmFuLnNhZGhhc2l2YW1AbGluYXJvLm9yZz4KUmV2aWV3ZWQtYnk6 IEJqb3JuIEFuZGVyc3NvbiA8Ympvcm4uYW5kZXJzc29uQGxpbmFyby5vcmc+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcXJ0ci9x cnRyLmMgfCAyMSArKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNl cnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcXJ0ci9xcnRyLmMg Yi9uZXQvcXJ0ci9xcnRyLmMKaW5kZXggODVhYjQ1NTlmMDU3Li4wZjc3ZTI0YTUxNTIgMTAwNjQ0 Ci0tLSBhL25ldC9xcnRyL3FydHIuYworKysgYi9uZXQvcXJ0ci9xcnRyLmMKQEAgLTMzMiw4ICsz MzIsNyBAQCBzdGF0aWMgaW50IHFydHJfbm9kZV9lbnF1ZXVlKHN0cnVjdCBxcnRyX25vZGUgKm5v ZGUsIHN0cnVjdCBza19idWZmICpza2IsCiB7CiAJc3RydWN0IHFydHJfaGRyX3YxICpoZHI7CiAJ c2l6ZV90IGxlbiA9IHNrYi0+bGVuOwotCWludCByYyA9IC1FTk9ERVY7Ci0JaW50IGNvbmZpcm1f cng7CisJaW50IHJjLCBjb25maXJtX3J4OwogCiAJY29uZmlybV9yeCA9IHFydHJfdHhfd2FpdChu b2RlLCB0by0+c3Ffbm9kZSwgdG8tPnNxX3BvcnQsIHR5cGUpOwogCWlmIChjb25maXJtX3J4IDwg MCkgewpAQCAtMzU3LDE1ICszNTYsMTcgQEAgc3RhdGljIGludCBxcnRyX25vZGVfZW5xdWV1ZShz dHJ1Y3QgcXJ0cl9ub2RlICpub2RlLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWhkci0+c2l6ZSA9 IGNwdV90b19sZTMyKGxlbik7CiAJaGRyLT5jb25maXJtX3J4ID0gISFjb25maXJtX3J4OwogCi0J c2tiX3B1dF9wYWR0byhza2IsIEFMSUdOKGxlbiwgNCkgKyBzaXplb2YoKmhkcikpOwotCi0JbXV0 ZXhfbG9jaygmbm9kZS0+ZXBfbG9jayk7Ci0JaWYgKG5vZGUtPmVwKQotCQlyYyA9IG5vZGUtPmVw LT54bWl0KG5vZGUtPmVwLCBza2IpOwotCWVsc2UKLQkJa2ZyZWVfc2tiKHNrYik7Ci0JbXV0ZXhf dW5sb2NrKCZub2RlLT5lcF9sb2NrKTsKKwlyYyA9IHNrYl9wdXRfcGFkdG8oc2tiLCBBTElHTihs ZW4sIDQpICsgc2l6ZW9mKCpoZHIpKTsKIAorCWlmICghcmMpIHsKKwkJbXV0ZXhfbG9jaygmbm9k ZS0+ZXBfbG9jayk7CisJCXJjID0gLUVOT0RFVjsKKwkJaWYgKG5vZGUtPmVwKQorCQkJcmMgPSBu b2RlLT5lcC0+eG1pdChub2RlLT5lcCwgc2tiKTsKKwkJZWxzZQorCQkJa2ZyZWVfc2tiKHNrYik7 CisJCW11dGV4X3VubG9jaygmbm9kZS0+ZXBfbG9jayk7CisJfQogCS8qIE5lZWQgdG8gZW5zdXJl IHRoYXQgYSBzdWJzZXF1ZW50IG1lc3NhZ2UgY2FycmllcyB0aGUgb3RoZXJ3aXNlIGxvc3QKIAkg KiBjb25maXJtX3J4IGZsYWcgaWYgd2UgZHJvcHBlZCB0aGlzIG9uZSAqLwogCWlmIChyYyAmJiBj b25maXJtX3J4KQotLSAKMi4yNi4yCgoKRnJvbSAzMTc0OThlNzY3MGM0OTA3OTkzNjk4NTExMmIy YWRkYmZkODdmOWY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgOSBTZXAgMjAyMCAwMToyNzo0MCAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggNDAvNTRdIG5ldDogYWRkIF9fbXVzdF9jaGVjayB0byBza2JfcHV0 X3BhZHRvKCkKClsgVXBzdHJlYW0gY29tbWl0IDRhMDA5Y2IwNGFlY2EwZGU2MGI3M2YzN2IxMDI1 NzMzNTQyMTRiNTIgXQoKc2tiX3B1dF9wYWR0bygpIGFuZCBfX3NrYl9wdXRfcGFkdG8oKSBjYWxs ZXJzCm11c3QgY2hlY2sgcmV0dXJuIHZhbHVlcyBvciByaXNrIHVzZS1hZnRlci1mcmVlLgoKU2ln bmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9s aW51eC9za2J1ZmYuaCB8IDcgKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oIGIv aW5jbHVkZS9saW51eC9za2J1ZmYuaAppbmRleCAwYzAzNzdmYzAwYzIuLjExMTk0NjNjZjI0MiAx MDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaAorKysgYi9pbmNsdWRlL2xpbnV4L3Nr YnVmZi5oCkBAIC0zMjA4LDggKzMyMDgsOSBAQCBzdGF0aWMgaW5saW5lIGludCBza2JfcGFkdG8o c3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IGxlbikKICAqCWlzIHVudG91Y2hlZC4g T3RoZXJ3aXNlIGl0IGlzIGV4dGVuZGVkLiBSZXR1cm5zIHplcm8gb24KICAqCXN1Y2Nlc3MuIFRo ZSBza2IgaXMgZnJlZWQgb24gZXJyb3IgaWYgQGZyZWVfb25fZXJyb3IgaXMgdHJ1ZS4KICAqLwot c3RhdGljIGlubGluZSBpbnQgX19za2JfcHV0X3BhZHRvKHN0cnVjdCBza19idWZmICpza2IsIHVu c2lnbmVkIGludCBsZW4sCi0JCQkJICBib29sIGZyZWVfb25fZXJyb3IpCitzdGF0aWMgaW5saW5l IGludCBfX211c3RfY2hlY2sgX19za2JfcHV0X3BhZHRvKHN0cnVjdCBza19idWZmICpza2IsCisJ CQkJCSAgICAgICB1bnNpZ25lZCBpbnQgbGVuLAorCQkJCQkgICAgICAgYm9vbCBmcmVlX29uX2Vy cm9yKQogewogCXVuc2lnbmVkIGludCBzaXplID0gc2tiLT5sZW47CiAKQEAgLTMyMzIsNyArMzIz Myw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IF9fc2tiX3B1dF9wYWR0byhzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCB1bnNpZ25lZCBpbnQgbGVuLAogICoJaXMgdW50b3VjaGVkLiBPdGhlcndpc2UgaXQgaXMg ZXh0ZW5kZWQuIFJldHVybnMgemVybyBvbgogICoJc3VjY2Vzcy4gVGhlIHNrYiBpcyBmcmVlZCBv biBlcnJvci4KICAqLwotc3RhdGljIGlubGluZSBpbnQgc2tiX3B1dF9wYWR0byhzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgbGVuKQorc3RhdGljIGlubGluZSBpbnQgX19tdXN0X2No ZWNrIHNrYl9wdXRfcGFkdG8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IGxlbikK IHsKIAlyZXR1cm4gX19za2JfcHV0X3BhZHRvKHNrYiwgbGVuLCB0cnVlKTsKIH0KLS0gCjIuMjYu MgoKCkZyb20gZTQ5YTliMDMyMTUzZmQ0OGYyMDczMTNiMTllODAwNGRkMjlkNWM3OSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3J5Z29yaWkgU3RyYXNoa28gPGdyeWdvcmlpLnN0cmFz aGtvQHRpLmNvbT4KRGF0ZTogVGh1LCAxMCBTZXAgMjAyMCAyMzo1MjoyOSArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggNDEvNTRdIG5ldDogZXRoZXJuZXQ6IHRpOiBjcHN3X25ldzogZml4IHN1c3BlbmQv cmVzdW1lCgpbIFVwc3RyZWFtIGNvbW1pdCA1NzYwZDlhY2JlOTUxNGVlYzY4ZWI3MDgyMWQ2ZmE1 NzY0ZjU3MDQyIF0KCkFkZCBtaXNzZWQgc3VzcGVuZC9yZXN1bWUgY2FsbGJhY2tzIHRvIHByb3Bl cmx5IHJlc3RvcmUgbmV0d29ya2luZyBhZnRlcgpzdXNwZW5kL3Jlc3VtZSBjeWNsZS4KCkZpeGVz OiBlZDM1MjVlZGE0YzQgKCJuZXQ6IGV0aGVybmV0OiB0aTogaW50cm9kdWNlIGNwc3cgc3dpdGNo ZGV2IGJhc2VkIGRyaXZlciBwYXJ0IDEgLSBkdWFsLWVtYWMiKQpTaWduZWQtb2ZmLWJ5OiBHcnln b3JpaSBTdHJhc2hrbyA8Z3J5Z29yaWkuc3RyYXNoa29AdGkuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvdGkvY3Bzd19uZXcuYyB8IDUzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC90aS9jcHN3X25ldy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzd19u ZXcuYwppbmRleCA4ZWQ3ODU3N2NkZWQuLjE1NjcyZDBhNGRlNiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvdGkvY3Bzd19uZXcuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC90 aS9jcHN3X25ldy5jCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSA8bGludXgvcGh5Lmg+CiAj aW5jbHVkZSA8bGludXgvcGh5L3BoeS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5j bHVkZSA8bGludXgvcGluY3RybC9jb25zdW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRp bWUuaD4KICNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgv b2YuaD4KQEAgLTIwNzAsOSArMjA3MSw2MSBAQCBzdGF0aWMgaW50IGNwc3dfcmVtb3ZlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgX19t YXliZV91bnVzZWQgY3Bzd19zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3Qg Y3Bzd19jb21tb24gKmNwc3cgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlpbnQgaTsKKworCXJ0 bmxfbG9jaygpOworCisJZm9yIChpID0gMDsgaSA8IGNwc3ctPmRhdGEuc2xhdmVzOyBpKyspIHsK KwkJc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYgPSBjcHN3LT5zbGF2ZXNbaV0ubmRldjsKKworCQlp ZiAoIShuZGV2ICYmIG5ldGlmX3J1bm5pbmcobmRldikpKQorCQkJY29udGludWU7CisKKwkJY3Bz d19uZG9fc3RvcChuZGV2KTsKKwl9CisKKwlydG5sX3VubG9jaygpOworCisJLyogU2VsZWN0IHNs ZWVwIHBpbiBzdGF0ZSAqLworCXBpbmN0cmxfcG1fc2VsZWN0X3NsZWVwX3N0YXRlKGRldik7CisK KwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX21heWJlX3VudXNlZCBjcHN3X3Jlc3VtZShz dHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGNwc3dfY29tbW9uICpjcHN3ID0gZGV2X2dl dF9kcnZkYXRhKGRldik7CisJaW50IGk7CisKKwkvKiBTZWxlY3QgZGVmYXVsdCBwaW4gc3RhdGUg Ki8KKwlwaW5jdHJsX3BtX3NlbGVjdF9kZWZhdWx0X3N0YXRlKGRldik7CisKKwkvKiBzaHV0IHVw IEFTU0VSVF9SVE5MKCkgd2FybmluZyBpbiBuZXRpZl9zZXRfcmVhbF9udW1fdHgvcnhfcXVldWVz ICovCisJcnRubF9sb2NrKCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgY3Bzdy0+ZGF0YS5zbGF2ZXM7 IGkrKykgeworCQlzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiA9IGNwc3ctPnNsYXZlc1tpXS5uZGV2 OworCisJCWlmICghKG5kZXYgJiYgbmV0aWZfcnVubmluZyhuZGV2KSkpCisJCQljb250aW51ZTsK KworCQljcHN3X25kb19vcGVuKG5kZXYpOworCX0KKworCXJ0bmxfdW5sb2NrKCk7CisKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKGNwc3dfcG1fb3BzLCBjcHN3X3N1 c3BlbmQsIGNwc3dfcmVzdW1lKTsKKwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY3Bz d19kcml2ZXIgPSB7CiAJLmRyaXZlciA9IHsKIAkJLm5hbWUJID0gImNwc3ctc3dpdGNoIiwKKwkJ LnBtCSA9ICZjcHN3X3BtX29wcywKIAkJLm9mX21hdGNoX3RhYmxlID0gY3Bzd19vZl9tdGFibGUs CiAJfSwKIAkucHJvYmUgPSBjcHN3X3Byb2JlLAotLSAKMi4yNi4yCgoKRnJvbSBmM2Y2YWI4MGJh OTA3NTViYzlkNDFkY2E3ODRhMDk3ODE0NDU1NzgxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiAiSmFzb24gQS4gRG9uZW5mZWxkIiA8SmFzb25AengyYzQuY29tPgpEYXRlOiBXZWQsIDkg U2VwIDIwMjAgMTM6NTg6MTQgKzAyMDAKU3ViamVjdDogW1BBVENIIDQyLzU0XSB3aXJlZ3VhcmQ6 IG5vaXNlOiB0YWtlIGxvY2sgd2hlbiByZW1vdmluZyBoYW5kc2hha2UKIGVudHJ5IGZyb20gdGFi bGUKClsgVXBzdHJlYW0gY29tbWl0IDkxNzliYTMxMzY3YmNmNDgxYzNjNzliNWYwMjhjOTRmYWFk OWYzMGEgXQoKRXJpYyByZXBvcnRlZCB0aGF0IHN5emthbGxlciBmb3VuZCBhIHJhY2Ugb2YgdGhp cyB2YXJpZXR5OgoKQ1BVIDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD UFUgMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp3Z19pbmRleF9oYXNodGFibGVfcmVwbGFj ZShvbGQsIC4uLikgICAgICAgfAogIGlmIChobGlzdF91bmhhc2hlZCgmb2xkLT5pbmRleF9oYXNo KSkgICAgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB3Z19p bmRleF9oYXNodGFibGVfcmVtb3ZlKG9sZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICBobGlzdF9kZWxfaW5pdF9yY3UoJm9sZC0+aW5kZXhfaGFzaCkKCQkJ CSAgICAgICAgICAgfCAgICAgb2xkLT5pbmRleF9oYXNoLnBwcmV2ID0gTlVMTAogIGhsaXN0X3Jl cGxhY2VfcmN1KCZvbGQtPmluZGV4X2hhc2gsIC4uLikgfAogICAgKm9sZC0+aW5kZXhfaGFzaC5w cHJldiAgICAgICAgICAgICAgICAgfAoKU3l6Ym90IHdhc24ndCBhY3R1YWxseSBhYmxlIHRvIHJl cHJvZHVjZSB0aGlzIG1vcmUgdGhhbiBvbmNlIG9yIGNyZWF0ZSBhCnJlcHJvZHVjZXIsIGJlY2F1 c2UgdGhlIHJhY2Ugd2luZG93IGJldHdlZW4gY2hlY2tpbmcgImhsaXN0X3VuaGFzaGVkIiBhbmQK Y2FsbGluZyAiaGxpc3RfcmVwbGFjZV9yY3UiIGlzIGp1c3Qgc28gc21hbGwuIEFkZGluZyBhbiBt ZGVsYXkoNSkgb3IKc2ltaWxhciB0aGVyZSBoZWxwcyBtYWtlIHRoaXMgZGVtb25zdHJhYmxlIHVz aW5nIHRoaXMgc2ltcGxlIHNjcmlwdDoKCiAgICAjIS9iaW4vYmFzaAogICAgc2V0IC1leAogICAg dHJhcCAna2lsbCAkcGlkMTsga2lsbCAkcGlkMjsgaXAgbGluayBkZWwgd2cwOyBpcCBsaW5rIGRl bCB3ZzEnIEVYSVQKICAgIGlwIGxpbmsgYWRkIHdnMCB0eXBlIHdpcmVndWFyZAogICAgaXAgbGlu ayBhZGQgd2cxIHR5cGUgd2lyZWd1YXJkCiAgICB3ZyBzZXQgd2cwIHByaXZhdGUta2V5IDwod2cg Z2Vua2V5KSBsaXN0ZW4tcG9ydCA5OTk5CiAgICB3ZyBzZXQgd2cxIHByaXZhdGUta2V5IDwod2cg Z2Vua2V5KSBwZWVyICQod2cgc2hvdyB3ZzAgcHVibGljLWtleSkgZW5kcG9pbnQgMTI3LjAuMC4x Ojk5OTkgcGVyc2lzdGVudC1rZWVwYWxpdmUgMQogICAgd2cgc2V0IHdnMCBwZWVyICQod2cgc2hv dyB3ZzEgcHVibGljLWtleSkKICAgIGlwIGxpbmsgc2V0IHdnMCB1cAogICAgeWVzIGxpbmsgc2V0 IHdnMSB1cCB8IGlwIC1mb3JjZSAtYmF0Y2ggLSAmCiAgICBwaWQxPSQhCiAgICB5ZXMgbGluayBz ZXQgd2cxIGRvd24gfCBpcCAtZm9yY2UgLWJhdGNoIC0gJgogICAgcGlkMj0kIQogICAgd2FpdAoK VGhlIGZ1bmR1bWVudGFsIHVuZGVybHlpbmcgcHJvYmxlbSBpcyB0aGF0IHdlIHBlcm1pdCBjYWxs cyB0byB3Z19pbmRleF8KaGFzaHRhYmxlX3JlbW92ZShoYW5kc2hha2UuZW50cnkpIHdpdGhvdXQg cmVxdWlyaW5nIHRoZSBjYWxsZXIgdG8gdGFrZQp0aGUgaGFuZHNoYWtlIG11dGV4IHRoYXQgaXMg aW50ZW5kZWQgdG8gcHJvdGVjdCBtZW1iZXJzIG9mIGhhbmRzaGFrZQpkdXJpbmcgbXV0YXRpb25z LiBUaGlzIGlzIGNvbnNpc3RlbnRseSB0aGUgY2FzZSB3aXRoIGNhbGxzIHRvIHdnX2luZGV4Xwpo YXNodGFibGVfaW5zZXJ0KGhhbmRzaGFrZS5lbnRyeSkgYW5kIHdnX2luZGV4X2hhc2h0YWJsZV9y ZXBsYWNlKApoYW5kc2hha2UuZW50cnkpLCBidXQgaXQncyBtaXNzaW5nIGZyb20gYSBwZXJ0aW5l bnQgY2FsbHNpdGUgb2Ygd2dfCmluZGV4X2hhc2h0YWJsZV9yZW1vdmUoaGFuZHNoYWtlLmVudHJ5 KS4gU28sIHRoaXMgcGF0Y2ggbWFrZXMgc3VyZSB0aGF0Cm11dGV4IGlzIHRha2VuLgoKVGhlIG9y aWdpbmFsIGNvZGUgd2FzIGEgbGl0dGxlIGJpdCBmdW5reSB0aG91Z2gsIGluIHRoZSBmb3JtIG9m OgoKICAgIHJlbW92ZShoYW5kc2hha2UuZW50cnkpCiAgICBsb2NrKCksIG1lbXplcm8oaGFuZHNo YWtlLnNvbWVfbWVtYmVycyksIHVubG9jaygpCiAgICByZW1vdmUoaGFuZHNoYWtlLmVudHJ5KQoK VGhlIG9yaWdpbmFsIGludGVudGlvbiBvZiB0aGF0IGRvdWJsZSByZW1vdmFsIHBhdHRlcm4gb3V0 c2lkZSB0aGUgbG9jawphcHBlYXJzIHRvIGJlIHNvbWUgYXR0ZW1wdCB0byBwcmV2ZW50IGluc2Vy dGlvbnMgdGhhdCBtaWdodCBoYXBwZW4gd2hpbGUKbG9ja3MgYXJlIGRyb3BwZWQgZHVyaW5nIGV4 cGVuc2l2ZSBjcnlwdG8gb3BlcmF0aW9ucywgYnV0IGFjdHVhbGx5LCBhbGwKY2FsbGVycyBvZiB3 Z19pbmRleF9oYXNodGFibGVfaW5zZXJ0KGhhbmRzaGFrZS5lbnRyeSkgdGFrZSB0aGUgd3JpdGUK bG9jayBhbmQgdGhlbiBleHBsaWNpdGx5IGNoZWNrIGhhbmRzaGFrZS5zdGF0ZSwgYXMgdGhleSBz aG91bGQsIHdoaWNoCnRoZSBhZm9yZW1lbnRpb25lZCBtZW16ZXJvIGNsZWFycywgd2hpY2ggbWVh bnMgYW4gaW5zZXJ0aW9uIHNob3VsZAphbHJlYWR5IGJlIGltcG9zc2libGUuIEFuZCByZWdhcmRs ZXNzLCB0aGUgb3JpZ2luYWwgaW50ZW50aW9uIHdhcwpuZWNlc3NhcmlseSByYWN5LCBzaW5jZSBp dCB3YXNuJ3QgZ3VhcmFudGVlZCB0aGF0IHNvbWV0aGluZyBlbHNlIHdvdWxkCnJ1biBhZnRlciB0 aGUgdW5sb2NrKCkgaW5zdGVhZCBvZiBhZnRlciB0aGUgcmVtb3ZlKCkuIFNvLCBmcm9tIGEKc291 bmRuZXNzIHBlcnNwZWN0aXZlLCBpdCBzZWVtcyBwb3NpdGl2ZSB0byByZW1vdmUgd2hhdCBsb29r cyBsaWtlIGEKaGFjayBhdCBiZXN0LgoKVGhlIGNyYXNoIGZyb20gYm90aCBzeXpib3QgYW5kIGZy b20gdGhlIHNjcmlwdCBhYm92ZSBpcyBhcyBmb2xsb3dzOgoKICBnZW5lcmFsIHByb3RlY3Rpb24g ZmF1bHQsIHByb2JhYmx5IGZvciBub24tY2Fub25pY2FsIGFkZHJlc3MgMHhkZmZmZmMwMDAwMDAw MDAwOiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAgS0FTQU4KICBLQVNBTjogbnVsbC1wdHItZGVyZWYg aW4gcmFuZ2UgWzB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDAwMDAwMDAwMDddCiAgQ1BVOiAw IFBJRDogNzM5NSBDb21tOiBrd29ya2VyLzA6MyBOb3QgdGFpbnRlZCA1LjkuMC1yYzQtc3l6a2Fs bGVyICMwCiAgSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29n bGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKICBXb3JrcXVldWU6IHdn LWtleC13ZzEgd2dfcGFja2V0X2hhbmRzaGFrZV9yZWNlaXZlX3dvcmtlcgogIFJJUDogMDAxMDpo bGlzdF9yZXBsYWNlX3JjdSBpbmNsdWRlL2xpbnV4L3JjdWxpc3QuaDo1MDUgW2lubGluZV0KICBS SVA6IDAwMTA6d2dfaW5kZXhfaGFzaHRhYmxlX3JlcGxhY2UrMHgxNzYvMHgzMzAgZHJpdmVycy9u ZXQvd2lyZWd1YXJkL3BlZXJsb29rdXAuYzoxNzQKICBDb2RlOiAwMCBmYyBmZiBkZiA0OCA4OSBm OSA0OCBjMSBlOSAwMyA4MCAzYyAwMSAwMCAwZiA4NSA0NCAwMSAwMCAwMCA0OCBiOSAwMCAwMCAw MCAwMCAwMCBmYyBmZiBkZiA0OCA4YiA0NSAxMCA0OCA4OSBjNiA0OCBjMSBlZSAwMyA8ODA+IDNj IDBlIDAwIDBmIDg1IDA2IDAxIDAwIDAwIDQ4IDg1IGQyIDRjIDg5IDI4IDc0IDQ3IGU4IGEzIDRm IGI1CiAgUlNQOiAwMDE4OmZmZmZjOTAwMDZhOTdiZjggRUZMQUdTOiAwMDAxMDI0NgogIFJBWDog MDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY4ODgwNTBmZmM0ZjggUkNYOiBkZmZmZmMwMDAwMDAw MDAwCiAgUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDAwMCBSREk6IGZm ZmY4ODgwOGUwNGUwMTAKICBSQlA6IGZmZmY4ODgwOGUwNGUwMDAgUjA4OiAwMDAwMDAwMDAwMDAw MDAxIFIwOTogZmZmZjg4ODA1NDNkMDAwMAogIFIxMDogZmZmZmVkMTAwYTg3YTAwMCBSMTE6IDAw MDAwMDAwMDAwMDAxNmUgUjEyOiBmZmZmODg4MDU0M2QwMDAwCiAgUjEzOiBmZmZmODg4MDhlMDRl MDA4IFIxNDogZmZmZjg4ODA1MGZmYzUwOCBSMTU6IGZmZmY4ODgwNTBmZmM1MDAKICBGUzogIDAw MDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZjg4ODBhZTYwMDAwMCgwMDAwKSBrbmxHUzowMDAw MDAwMDAwMDAwMDAwCiAgQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4 MDA1MDAzMwogIENSMjogMDAwMDAwMDBmNTUwNWRiMCBDUjM6IDAwMDAwMDAwOTdjZjcwMDAgQ1I0 OiAwMDAwMDAwMDAwMTUyNmYwCiAgRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAw MDAwMDAwMCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAKICBEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2 OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMAogIENhbGwgVHJhY2U6CiAg d2dfbm9pc2VfaGFuZHNoYWtlX2JlZ2luX3Nlc3Npb24rMHg3NTIvMHhjOWEgZHJpdmVycy9uZXQv d2lyZWd1YXJkL25vaXNlLmM6ODIwCiAgd2dfcmVjZWl2ZV9oYW5kc2hha2VfcGFja2V0IGRyaXZl cnMvbmV0L3dpcmVndWFyZC9yZWNlaXZlLmM6MTgzIFtpbmxpbmVdCiAgd2dfcGFja2V0X2hhbmRz aGFrZV9yZWNlaXZlX3dvcmtlcisweDMzYi8weDczMCBkcml2ZXJzL25ldC93aXJlZ3VhcmQvcmVj ZWl2ZS5jOjIyMAogIHByb2Nlc3Nfb25lX3dvcmsrMHg5NGMvMHgxNjcwIGtlcm5lbC93b3JrcXVl dWUuYzoyMjY5CiAgd29ya2VyX3RocmVhZCsweDY0Yy8weDExMjAga2VybmVsL3dvcmtxdWV1ZS5j OjI0MTUKICBrdGhyZWFkKzB4M2I1LzB4NGEwIGtlcm5lbC9rdGhyZWFkLmM6MjkyCiAgcmV0X2Zy b21fZm9yaysweDFmLzB4MzAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzoyOTQKClJlcG9ydGVk LWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpSZXBvcnRlZC1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpMaW5rOiBodHRwczovL2xvcmUua2VybmVs Lm9yZy93aXJlZ3VhcmQvMjAyMDA5MDgxNDU5MTEuNDA5MDQ4MC0xLWVkdW1hemV0QGdvb2dsZS5j b20vCkZpeGVzOiBlNzA5NmMxMzFlNTEgKCJuZXQ6IFdpcmVHdWFyZCBzZWN1cmUgbmV0d29yayB0 dW5uZWwiKQpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBBLiBEb25lbmZlbGQgPEphc29uQHp4MmM0LmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L3dpcmVndWFyZC9ub2lzZS5jIHwgNSArLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3dpcmVndWFyZC9ub2lzZS5jIGIvZHJpdmVycy9uZXQvd2lyZWd1YXJkL25vaXNlLmMKaW5k ZXggMjAxYTIyNjgxOTQ1Li4yN2NiNTA0NWJlZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dp cmVndWFyZC9ub2lzZS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9ub2lzZS5jCkBAIC04 NywxNSArODcsMTIgQEAgc3RhdGljIHZvaWQgaGFuZHNoYWtlX3plcm8oc3RydWN0IG5vaXNlX2hh bmRzaGFrZSAqaGFuZHNoYWtlKQogCiB2b2lkIHdnX25vaXNlX2hhbmRzaGFrZV9jbGVhcihzdHJ1 Y3Qgbm9pc2VfaGFuZHNoYWtlICpoYW5kc2hha2UpCiB7CisJZG93bl93cml0ZSgmaGFuZHNoYWtl LT5sb2NrKTsKIAl3Z19pbmRleF9oYXNodGFibGVfcmVtb3ZlKAogCQkJaGFuZHNoYWtlLT5lbnRy eS5wZWVyLT5kZXZpY2UtPmluZGV4X2hhc2h0YWJsZSwKIAkJCSZoYW5kc2hha2UtPmVudHJ5KTsK LQlkb3duX3dyaXRlKCZoYW5kc2hha2UtPmxvY2spOwogCWhhbmRzaGFrZV96ZXJvKGhhbmRzaGFr ZSk7CiAJdXBfd3JpdGUoJmhhbmRzaGFrZS0+bG9jayk7Ci0Jd2dfaW5kZXhfaGFzaHRhYmxlX3Jl bW92ZSgKLQkJCWhhbmRzaGFrZS0+ZW50cnkucGVlci0+ZGV2aWNlLT5pbmRleF9oYXNodGFibGUs Ci0JCQkmaGFuZHNoYWtlLT5lbnRyeSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgbm9pc2Vfa2V5cGFp ciAqa2V5cGFpcl9jcmVhdGUoc3RydWN0IHdnX3BlZXIgKnBlZXIpCi0tIAoyLjI2LjIKCgpGcm9t IDA5YzQzZmVmNTY0OWEyNDY0M2YxMGU1M2E5YThjM2IzZDI2YmJiNDMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206ICJKYXNvbiBBLiBEb25lbmZlbGQiIDxKYXNvbkB6eDJjNC5jb20+CkRh dGU6IFdlZCwgOSBTZXAgMjAyMCAxMzo1ODoxNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDMvNTRd IHdpcmVndWFyZDogcGVlcmxvb2t1cDogdGFrZSBsb2NrIGJlZm9yZSBjaGVja2luZyBoYXNoCiBp biByZXBsYWNlIG9wZXJhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgNjE0N2Y3YjFlOTBmZjA5YmQ1 MmFmYzhiOTIwNmE3ZmNkMTMzZGFmNyBdCgpFcmljJ3Mgc3VnZ2VzdGVkIGZpeCBmb3IgdGhlIHBy ZXZpb3VzIGNvbW1pdCdzIG1lbnRpb25lZCByYWNlIGNvbmRpdGlvbgp3YXMgdG8gc2ltcGx5IHRh a2UgdGhlIHRhYmxlLT5sb2NrIGluIHdnX2luZGV4X2hhc2h0YWJsZV9yZXBsYWNlKCkuIFRoZQp0 YWJsZS0+bG9jayBvZiB0aGUgaGFzaCB0YWJsZSBpcyBzdXBwb3NlZCB0byBwcm90ZWN0IHRoZSBi dWNrZXQgaGVhZHMsCm5vdCB0aGUgZW50aXJlcywgYnV0IGFjdHVhbGx5LCBzaW5jZSBhbGwgdGhl IG11dGF0b3IgZnVuY3Rpb25zIGFyZQphbHJlYWR5IHRha2luZyBpdCwgaXQgbWFrZXMgc2Vuc2Ug dG8gdGFrZSBpdCB0b28gZm9yIHRoZSB0ZXN0IHRvCmhsaXN0X3VuaGFzaGVkLCBhcyBhIGRlZmVu c2UgaW4gZGVwdGggbWVhc3VyZSwgc28gdGhhdCBpdCBubyBsb25nZXIKcmFjZXMgd2l0aCBkZWxl dGlvbnMsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBvdGhlciBsb2NrcyBhcmUgcHJvdGVjdGluZwppbmRp dmlkdWFsIGVudHJpZXMuIFRoaXMgaXMgc2Vuc2libGUgZnJvbSBhIHBlcmZvcm1hbmNlIHBlcnNw ZWN0aXZlCmJlY2F1c2UsIGFzIEVyaWMgcG9pbnRlZCBvdXQsIHRoZSBjYXNlIG9mIGJlaW5nIHVu aGFzaGVkIGlzIGFscmVhZHkgdGhlCnVubGlrZWx5IGNhc2UsIHNvIHRoaXMgd29uJ3QgYWRkIGNv bW1vbiBjb250ZW50aW9uLiBBbmQgY29tcGFyaW5nCmluc3RydWN0aW9ucywgdGhpcyBiYXNpY2Fs bHkgZG9lc24ndCBtYWtlIG11Y2ggb2YgYSBkaWZmZXJlbmNlIG90aGVyCnRoYW4gcHVzaGluZyBh bmQgcG9wcGluZyAlcjEzLCB1c2VkIGJ5IHRoZSBuZXcgYGJvb2wgcmV0YC4gTW9yZQpnZW5lcmFs bHksIEkgbGlrZSB0aGUgaWRlYSBvZiBsb2NraW5nIGNvbnNpc3RlbmN5IGFjcm9zcyB0YWJsZSBt dXRhdG9yCmZ1bmN0aW9ucywgYW5kIHRoaXMgbWlnaHQgbGV0IG1lIHJlc3Qgc2xpZ2h0bHkgZWFz aWVyIGF0IG5pZ2h0LgoKU3VnZ2VzdGVkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+Ckxpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3dpcmVndWFyZC8yMDIwMDkwODE0 NTkxMS40MDkwNDgwLTEtZWR1bWF6ZXRAZ29vZ2xlLmNvbS8KRml4ZXM6IGU3MDk2YzEzMWU1MSAo Im5ldDogV2lyZUd1YXJkIHNlY3VyZSBuZXR3b3JrIHR1bm5lbCIpClNpZ25lZC1vZmYtYnk6IEph c29uIEEuIERvbmVuZmVsZCA8SmFzb25AengyYzQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvd2lyZWd1YXJk L3BlZXJsb29rdXAuYyB8IDExICsrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVndWFy ZC9wZWVybG9va3VwLmMgYi9kcml2ZXJzL25ldC93aXJlZ3VhcmQvcGVlcmxvb2t1cC5jCmluZGV4 IGU0ZGViMzMxNDc2Yi4uZjI3ODNhYTdhODhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJl Z3VhcmQvcGVlcmxvb2t1cC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9wZWVybG9va3Vw LmMKQEAgLTE2Nyw5ICsxNjcsMTMgQEAgYm9vbCB3Z19pbmRleF9oYXNodGFibGVfcmVwbGFjZShz dHJ1Y3QgaW5kZXhfaGFzaHRhYmxlICp0YWJsZSwKIAkJCQlzdHJ1Y3QgaW5kZXhfaGFzaHRhYmxl X2VudHJ5ICpvbGQsCiAJCQkJc3RydWN0IGluZGV4X2hhc2h0YWJsZV9lbnRyeSAqbmV3KQogewot CWlmICh1bmxpa2VseShobGlzdF91bmhhc2hlZCgmb2xkLT5pbmRleF9oYXNoKSkpCi0JCXJldHVy biBmYWxzZTsKKwlib29sIHJldDsKKwogCXNwaW5fbG9ja19iaCgmdGFibGUtPmxvY2spOworCXJl dCA9ICFobGlzdF91bmhhc2hlZCgmb2xkLT5pbmRleF9oYXNoKTsKKwlpZiAodW5saWtlbHkoIXJl dCkpCisJCWdvdG8gb3V0OworCiAJbmV3LT5pbmRleCA9IG9sZC0+aW5kZXg7CiAJaGxpc3RfcmVw bGFjZV9yY3UoJm9sZC0+aW5kZXhfaGFzaCwgJm5ldy0+aW5kZXhfaGFzaCk7CiAKQEAgLTE4MCw4 ICsxODQsOSBAQCBib29sIHdnX2luZGV4X2hhc2h0YWJsZV9yZXBsYWNlKHN0cnVjdCBpbmRleF9o YXNodGFibGUgKnRhYmxlLAogCSAqIHNpbXBseSBnZXRzIGRyb3BwZWQsIHdoaWNoIGlzbid0IHRl cnJpYmxlLgogCSAqLwogCUlOSVRfSExJU1RfTk9ERSgmb2xkLT5pbmRleF9oYXNoKTsKK291dDoK IAlzcGluX3VubG9ja19iaCgmdGFibGUtPmxvY2spOwotCXJldHVybiB0cnVlOworCXJldHVybiBy ZXQ7CiB9CiAKIHZvaWQgd2dfaW5kZXhfaGFzaHRhYmxlX3JlbW92ZShzdHJ1Y3QgaW5kZXhfaGFz aHRhYmxlICp0YWJsZSwKLS0gCjIuMjYuMgoKCkZyb20gOWY5OTczNWE3NTM0NDZiNDA0MTA0ZmI0 ZjYxYjYzN2Q5MDlmOGMyZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmFkeW0gS29j aGFuIDx2YWR5bS5rb2NoYW5AcGx2aXNpb24uZXU+CkRhdGU6IFRodSwgMTAgU2VwIDIwMjAgMTg6 NDE6NTIgKzAzMDAKU3ViamVjdDogW1BBVENIIDQ0LzU0XSBuZXQ6IGlwYTogZml4IHUzMl9yZXBs YWNlX2JpdHMgYnkgdTMycF94eHggdmVyc2lvbgoKWyBVcHN0cmVhbSBjb21taXQgYzA0N2RjMWQy NjBmMjU5MzAzNWQ2Mzc0N2Q2MTZjMzUxMmY5ZDZiNiBdCgpMb29rcyBsaWtlIHUzMnBfcmVwbGFj ZV9iaXRzKCkgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZgp1MzJfcmVwbGFjZV9iaXRzKCkgd2hp Y2ggZG9lcyBub3QgbW9kaWZpZXMgdGhlIHZhbHVlIGJ1dCByZXR1cm5zIHRoZQptb2RpZmllZCB2 ZXJzaW9uLgoKRml4ZXM6IDJiOWZlZWYyYjZjMiAoInNvYzogcWNvbTogaXBhOiBmaWx0ZXIgYW5k IHJvdXRpbmcgdGFibGVzIikKU2lnbmVkLW9mZi1ieTogVmFkeW0gS29jaGFuIDx2YWR5bS5rb2No YW5AcGx2aXNpb24uZXU+ClJldmlld2VkLWJ5OiBBbGV4IEVsZGVyIDxlbGRlckBsaW5hcm8ub3Jn PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvaXBhL2lwYV90YWJsZS5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2lwYS9pcGFfdGFibGUuYyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfdGFibGUuYwppbmRleCA5ZGYy YTNlNzhjOTguLmQwOGM2MjZiMmJhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV90 YWJsZS5jCisrKyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfdGFibGUuYwpAQCAtNTIxLDcgKzUyMSw3 IEBAIHN0YXRpYyB2b2lkIGlwYV9maWx0ZXJfdHVwbGVfemVybyhzdHJ1Y3QgaXBhX2VuZHBvaW50 ICplbmRwb2ludCkKIAl2YWwgPSBpb3JlYWQzMihlbmRwb2ludC0+aXBhLT5yZWdfdmlydCArIG9m ZnNldCk7CiAKIAkvKiBaZXJvIGFsbCBmaWx0ZXItcmVsYXRlZCBmaWVsZHMsIHByZXNlcnZpbmcg dGhlIHJlc3QgKi8KLQl1MzJfcmVwbGFjZV9iaXRzKHZhbCwgMCwgSVBBX1JFR19FTkRQX0ZJTFRF Ul9IQVNIX01TS19BTEwpOworCXUzMnBfcmVwbGFjZV9iaXRzKCZ2YWwsIDAsIElQQV9SRUdfRU5E UF9GSUxURVJfSEFTSF9NU0tfQUxMKTsKIAogCWlvd3JpdGUzMih2YWwsIGVuZHBvaW50LT5pcGEt PnJlZ192aXJ0ICsgb2Zmc2V0KTsKIH0KQEAgLTU3Miw3ICs1NzIsNyBAQCBzdGF0aWMgdm9pZCBp cGFfcm91dGVfdHVwbGVfemVybyhzdHJ1Y3QgaXBhICppcGEsIHUzMiByb3V0ZV9pZCkKIAl2YWwg PSBpb3JlYWQzMihpcGEtPnJlZ192aXJ0ICsgb2Zmc2V0KTsKIAogCS8qIFplcm8gYWxsIHJvdXRl LXJlbGF0ZWQgZmllbGRzLCBwcmVzZXJ2aW5nIHRoZSByZXN0ICovCi0JdTMyX3JlcGxhY2VfYml0 cyh2YWwsIDAsIElQQV9SRUdfRU5EUF9ST1VURVJfSEFTSF9NU0tfQUxMKTsKKwl1MzJwX3JlcGxh Y2VfYml0cygmdmFsLCAwLCBJUEFfUkVHX0VORFBfUk9VVEVSX0hBU0hfTVNLX0FMTCk7CiAKIAlp b3dyaXRlMzIodmFsLCBpcGEtPnJlZ192aXJ0ICsgb2Zmc2V0KTsKIH0KLS0gCjIuMjYuMgoKCkZy b20gYmFlNGQ3MGJhMDFlYTQxNzUzYzQxOWJlYjRiZWQyMmJjOGQ1MjFlYiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSmlhbmJvIExpdSA8amlhbmJvbEBtZWxsYW5veC5jb20+CkRhdGU6 IFR1ZSwgNyBKdWwgMjAyMCAwNjoxNjoyNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggNDUvNTRdIG5l dC9tbHg1ZTogRml4IG1lbW9yeSBsZWFrIG9mIHR1bm5lbCBpbmZvIHdoZW4gcnVsZQogdW5kZXIg bXVsdGlwYXRoIG5vdCByZWFkeQoKWyBVcHN0cmVhbSBjb21taXQgMTJhMjQwYTQxNDI3ZDM3YjVl NzA1NzA3MDA3MDRlODRjODI3NDUyZiBdCgpXaGVuIGRlbGV0aW5nIHZ4bGFuIGZsb3cgcnVsZSB1 bmRlciBtdWx0aXBhdGgsIHR1bl9pbmZvIGluIHBhcnNlX2F0dHIgaXMKbm90IGZyZWVkIHdoZW4g dGhlIHJ1bGUgaXMgbm90IHJlYWR5LgoKRml4ZXM6IGVmMDZjOWVlODkzMyAoIm5ldC9tbHg1ZTog QWxsb3cgb25lIGZhaWx1cmUgd2hlbiBvZmZsb2FkaW5nIHRjIGVuY2FwIHJ1bGVzIHVuZGVyIG11 bHRpcGF0aCIpClNpZ25lZC1vZmYtYnk6IEppYW5ibyBMaXUgPGppYW5ib2xAbWVsbGFub3guY29t PgpSZXZpZXdlZC1ieTogUm9pIERheWFuIDxyb2lkQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1i eTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgfCA1ICstLS0tCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwppbmRleCBmY2VkYjViZGNhOWUuLmYx NzAxZWU0NjE5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuX3RjLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX3RjLmMKQEAgLTEzOTksMTEgKzEzOTksOCBAQCBzdGF0aWMgdm9pZCBtbHg1ZV90Y19k ZWxfZmRiX2Zsb3coc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAKIAltbHg1ZV9wdXRfZmxvd190 dW5uZWxfaWQoZmxvdyk7CiAKLQlpZiAoZmxvd19mbGFnX3Rlc3QoZmxvdywgTk9UX1JFQURZKSkg eworCWlmIChmbG93X2ZsYWdfdGVzdChmbG93LCBOT1RfUkVBRFkpKQogCQlyZW1vdmVfdW5yZWFk eV9mbG93KGZsb3cpOwotCQlrdmZyZWUoYXR0ci0+cGFyc2VfYXR0cik7Ci0JCXJldHVybjsKLQl9 CiAKIAlpZiAobWx4NWVfaXNfb2ZmbG9hZGVkX2Zsb3coZmxvdykpIHsKIAkJaWYgKGZsb3dfZmxh Z190ZXN0KGZsb3csIFNMT1cpKQotLSAKMi4yNi4yCgoKRnJvbSAxMzFmMGRkNzk4YTVjNWM5ODMx MjcyNzZlMDJiYzc0MWJhNjZlZGI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMdW8g YmluIDxsdW9iaW45QGh1YXdlaS5jb20+CkRhdGU6IFRodSwgMTAgU2VwIDIwMjAgMjI6MDQ6NDAg KzA4MDAKU3ViamVjdDogW1BBVENIIDQ2LzU0XSBoaW5pYzogZml4IHJld2FraW5nIHR4cSBhZnRl ciBuZXRpZl90eF9kaXNhYmxlCgpbIFVwc3RyZWFtIGNvbW1pdCBhMWI4MGUwMTQzYTFiODc4Zjhl MjFkODJmZDU1ZjNmNDZmMDAxNGJlIF0KCldoZW4gY2FsbGluZyBoaW5pY19jbG9zZSBpbiBoaW5p Y19zZXRfY2hhbm5lbHMsIGFsbCBxdWV1ZXMgYXJlCnN0b3BwZWQgYWZ0ZXIgbmV0aWZfdHhfZGlz YWJsZSwgYnV0IHNvbWUgcXVldWUgbWF5IGJlIHJld2FrZW4gaW4KZnJlZV90eF9wb2xsIGJ5IG1p c3Rha2Ugd2hpbGUgZHJ2IGlzIGhhbmRsaW5nIHR4IGlycS4gSWYgb25lIHF1ZXVlCmlzIHJld2Fr ZW4gY29yZSBtYXkgY2FsbCBoaW5pY194bWl0X2ZyYW1lIHRvIHNlbmQgcGt0IGFmdGVyCm5ldGlm X3R4X2Rpc2FibGUgd2l0aGluIGEgc2hvcnQgdGltZSB3aGljaCBtYXkgcmVzdWx0cyBpbiBhY2Nl c3NpbmcKbWVtb3J5IHRoYXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZCBpbiBoaW5pY19jbG9zZS4g U28gd2UgY2FsbApuYXBpX2Rpc2FibGUgYmVmb3JlIG5ldGlmX3R4X2Rpc2FibGUgaW4gaGluaWNf Y2xvc2UgdG8gZml4IHRoaXMgYnVnLgoKRml4ZXM6IDJlZWQ1YThiNjE0YiAoImhpbmljOiBhZGQg c2V0X2NoYW5uZWxzIGV0aHRvb2xfb3BzIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBMdW8gYmlu IDxsdW9iaW45QGh1YXdlaS5jb20+ClJldmlld2VkLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBr ZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMvaGluaWNfbWFpbi5jICAg IHwgMjQgKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hp bmljL2hpbmljX3R4LmMgIHwgMTggKysrLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjcg aW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvaHVhd2VpL2hpbmljL2hpbmljX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2h1YXdlaS9oaW5pYy9oaW5pY19tYWluLmMKaW5kZXggZTllNmY0YzkzMDlhLi5jOWQ4ODQwNDlm ZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYy9oaW5pY19t YWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljL2hpbmljX21haW4u YwpAQCAtMTY4LDYgKzE2OCwyNCBAQCBzdGF0aWMgaW50IGNyZWF0ZV90eHFzKHN0cnVjdCBoaW5p Y19kZXYgKm5pY19kZXYpCiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIHZvaWQgZW5hYmxlX3R4 cXNfbmFwaShzdHJ1Y3QgaGluaWNfZGV2ICpuaWNfZGV2KQoreworCWludCBudW1fdHhxcyA9IGhp bmljX2h3ZGV2X251bV9xcHMobmljX2Rldi0+aHdkZXYpOworCWludCBpOworCisJZm9yIChpID0g MDsgaSA8IG51bV90eHFzOyBpKyspCisJCW5hcGlfZW5hYmxlKCZuaWNfZGV2LT50eHFzW2ldLm5h cGkpOworfQorCitzdGF0aWMgdm9pZCBkaXNhYmxlX3R4cXNfbmFwaShzdHJ1Y3QgaGluaWNfZGV2 ICpuaWNfZGV2KQoreworCWludCBudW1fdHhxcyA9IGhpbmljX2h3ZGV2X251bV9xcHMobmljX2Rl di0+aHdkZXYpOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG51bV90eHFzOyBpKyspCisJ CW5hcGlfZGlzYWJsZSgmbmljX2Rldi0+dHhxc1tpXS5uYXBpKTsKK30KKwogLyoqCiAgKiBmcmVl X3R4cXMgLSBGcmVlIHRoZSBMb2dpY2FsIFR4IFF1ZXVlcyBvZiBzcGVjaWZpYyBOSUMgZGV2aWNl CiAgKiBAbmljX2RldjogdGhlIHNwZWNpZmljIE5JQyBkZXZpY2UKQEAgLTM5NCw2ICs0MTIsOCBA QCBpbnQgaGluaWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogCQlnb3RvIGVycl9j cmVhdGVfdHhxczsKIAl9CiAKKwllbmFibGVfdHhxc19uYXBpKG5pY19kZXYpOworCiAJZXJyID0g Y3JlYXRlX3J4cXMobmljX2Rldik7CiAJaWYgKGVycikgewogCQluZXRpZl9lcnIobmljX2Rldiwg ZHJ2LCBuZXRkZXYsCkBAIC00NzUsNiArNDk1LDcgQEAgaW50IGhpbmljX29wZW4oc3RydWN0IG5l dF9kZXZpY2UgKm5ldGRldikKIAl9CiAKIGVycl9jcmVhdGVfcnhxczoKKwlkaXNhYmxlX3R4cXNf bmFwaShuaWNfZGV2KTsKIAlmcmVlX3R4cXMobmljX2Rldik7CiAKIGVycl9jcmVhdGVfdHhxczoK QEAgLTQ4OCw2ICs1MDksOSBAQCBpbnQgaGluaWNfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5l dGRldikKIAlzdHJ1Y3QgaGluaWNfZGV2ICpuaWNfZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsK IAl1bnNpZ25lZCBpbnQgZmxhZ3M7CiAKKwkvKiBEaXNhYmxlIHR4cSBuYXBpIGZpcnN0bHkgdG8g YXZpb2QgcmV3YWtpbmcgdHhxIGluIGZyZWVfdHhfcG9sbCAqLworCWRpc2FibGVfdHhxc19uYXBp KG5pY19kZXYpOworCiAJZG93bigmbmljX2Rldi0+bWdtdF9sb2NrKTsKIAogCWZsYWdzID0gbmlj X2Rldi0+ZmxhZ3M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGlu aWMvaGluaWNfdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYy9oaW5pY190 eC5jCmluZGV4IDRjNjZhMGJjMWIyOC4uNzg5YWEyNzg4NTFlIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMvaGluaWNfdHguYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9odWF3ZWkvaGluaWMvaGluaWNfdHguYwpAQCAtNjg0LDE4ICs2ODQsNiBAQCBzdGF0 aWMgaW50IGZyZWVfdHhfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQp CiAJcmV0dXJuIGJ1ZGdldDsKIH0KIAotc3RhdGljIHZvaWQgdHhfbmFwaV9hZGQoc3RydWN0IGhp bmljX3R4cSAqdHhxLCBpbnQgd2VpZ2h0KQotewotCW5ldGlmX25hcGlfYWRkKHR4cS0+bmV0ZGV2 LCAmdHhxLT5uYXBpLCBmcmVlX3R4X3BvbGwsIHdlaWdodCk7Ci0JbmFwaV9lbmFibGUoJnR4cS0+ bmFwaSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHR4X25hcGlfZGVsKHN0cnVjdCBoaW5pY190eHEgKnR4 cSkKLXsKLQluYXBpX2Rpc2FibGUoJnR4cS0+bmFwaSk7Ci0JbmV0aWZfbmFwaV9kZWwoJnR4cS0+ bmFwaSk7Ci19Ci0KIHN0YXRpYyBpcnFyZXR1cm5fdCB0eF9pcnEoaW50IGlycSwgdm9pZCAqZGF0 YSkKIHsKIAlzdHJ1Y3QgaGluaWNfdHhxICp0eHEgPSBkYXRhOwpAQCAtNzI0LDcgKzcxMiw3IEBA IHN0YXRpYyBpbnQgdHhfcmVxdWVzdF9pcnEoc3RydWN0IGhpbmljX3R4cSAqdHhxKQogCXN0cnVj dCBoaW5pY19zcSAqc3EgPSB0eHEtPnNxOwogCWludCBlcnI7CiAKLQl0eF9uYXBpX2FkZCh0eHEs IG5pY19kZXYtPnR4X3dlaWdodCk7CisJbmV0aWZfbmFwaV9hZGQodHhxLT5uZXRkZXYsICZ0eHEt Pm5hcGksIGZyZWVfdHhfcG9sbCwgbmljX2Rldi0+dHhfd2VpZ2h0KTsKIAogCWhpbmljX2h3ZGV2 X21zaXhfc2V0KG5pY19kZXYtPmh3ZGV2LCBzcS0+bXNpeF9lbnRyeSwKIAkJCSAgICAgVFhfSVJR X05PX1BFTkRJTkcsIFRYX0lSUV9OT19DT0FMRVNDLApAQCAtNzM0LDcgKzcyMiw3IEBAIHN0YXRp YyBpbnQgdHhfcmVxdWVzdF9pcnEoc3RydWN0IGhpbmljX3R4cSAqdHhxKQogCWVyciA9IHJlcXVl c3RfaXJxKHNxLT5pcnEsIHR4X2lycSwgMCwgdHhxLT5pcnFfbmFtZSwgdHhxKTsKIAlpZiAoZXJy KSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byByZXF1ZXN0IFR4IGlycVxuIik7 Ci0JCXR4X25hcGlfZGVsKHR4cSk7CisJCW5ldGlmX25hcGlfZGVsKCZ0eHEtPm5hcGkpOwogCQly ZXR1cm4gZXJyOwogCX0KIApAQCAtNzQ2LDcgKzczNCw3IEBAIHN0YXRpYyB2b2lkIHR4X2ZyZWVf aXJxKHN0cnVjdCBoaW5pY190eHEgKnR4cSkKIAlzdHJ1Y3QgaGluaWNfc3EgKnNxID0gdHhxLT5z cTsKIAogCWZyZWVfaXJxKHNxLT5pcnEsIHR4cSk7Ci0JdHhfbmFwaV9kZWwodHhxKTsKKwluZXRp Zl9uYXBpX2RlbCgmdHhxLT5uYXBpKTsKIH0KIAogLyoqCi0tIAoyLjI2LjIKCgpGcm9tIDE3ODAz YjQ2NWE4Y2ExMjVmZjU3ODQ3MGVkMGNlNjgyMGY5NWUwMWUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERleHVhbiBDdWkgPGRlY3VpQG1pY3Jvc29mdC5jb20+CkRhdGU6IE1vbiwgNyBT ZXAgMjAyMCAwMDoxMzozOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNDcvNTRdIGh2X25ldHZzYzog Rml4IGhpYmVybmF0aW9uIGZvciBtbHg1IFZGIGRyaXZlcgoKWyBVcHN0cmVhbSBjb21taXQgMTkx NjJmZDQwNjNhMzIxMTg0M2I5OTdhNDU0YjUwNWVkYjgxZDVjZSBdCgptbHg1X3N1c3BlbmQoKS9y ZXN1bWUoKSBrZWVwIHRoZSBuZXR3b3JrIGludGVyZmFjZSwgc28gZHVyaW5nIGhpYmVybmF0aW9u Cm5ldHZzY191bnJlZ2lzdGVyX3ZmKCkgYW5kIG5ldHZzY19yZWdpc3Rlcl92ZigpIGFyZSBub3Qg Y2FsbGVkLCBhbmQgaGVuY2UKbmV0dnNjX3Jlc3VtZSgpIHNob3VsZCBjYWxsIG5ldHZzY192Zl9j aGFuZ2VkKCkgdG8gc3dpdGNoIHRoZSBkYXRhIHBhdGgKYmFjayB0byB0aGUgVkYgYWZ0ZXIgaGli ZXJuYXRpb24uIE5vdGU6IGFmdGVyIHdlIGNsb3NlIGFuZCByZS1vcGVuIHRoZQp2bWJ1cyBjaGFu bmVsIG9mIHRoZSBuZXR2c2MgTklDIGluIG5ldHZzY19zdXNwZW5kKCkgYW5kIG5ldHZzY19yZXN1 bWUoKSwKdGhlIGRhdGEgcGF0aCBpcyBpbXBsaWNpdGx5IHN3aXRjaGVkIHRvIHRoZSBuZXR2c2Mg TklDLiBTaW1pbGFybHksCm5ldHZzY19zdXNwZW5kKCkgc2hvdWxkIG5vdCBjYWxsIG5ldHZzY191 bnJlZ2lzdGVyX3ZmKCksIG90aGVyd2lzZSB0aGUgVkYKY2FuIG5vIGxvbmdlciBiZSB1c2VkIGFm dGVyIGhpYmVybmF0aW9uLgoKRm9yIG1seDQsIHNpbmNlIHRoZSBWRiBuZXR3b3JrIGludGVyYWZj ZSBpcyBleHBsaWNpdGx5IGRlc3Ryb3llZCBhbmQKcmUtY3JlYXRlZCBkdXJpbmcgaGliZXJuYXRp b24gKHNlZSBtbHg0X3N1c3BlbmQoKS9yZXN1bWUoKSksIGh2X25ldHZzYwphbHJlYWR5IGV4cGxp Y2l0bHkgc3dpdGNoZXMgdGhlIGRhdGEgcGF0aCBmcm9tIGFuZCB0byB0aGUgVkYgYXV0b21hdGlj YWxseQp2aWEgbmV0dnNjX3JlZ2lzdGVyX3ZmKCkgYW5kIG5ldHZzY191bnJlZ2lzdGVyX3ZmKCks IHNvIG1seDQgZG9lc24ndCBuZWVkCnRoaXMgZml4LiBOb3RlOiBtbHg0IGNhbiBzdGlsbCB3b3Jr IHdpdGggdGhlIGZpeCBiZWNhdXNlIGluCm5ldHZzY19zdXNwZW5kKCkvcmVzdW1lKCkgbmRldl9j dHgtPnZmX25ldGRldiBpcyBOVUxMIGZvciBtbHg0LgoKRml4ZXM6IDBlZmVlYTVmYjE1MyAoImh2 X25ldHZzYzogQWRkIHRoZSBzdXBwb3J0IG9mIGhpYmVybmF0aW9uIikKU2lnbmVkLW9mZi1ieTog RGV4dWFuIEN1aSA8ZGVjdWlAbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIgS2lj aW5za2kgPGt1YmFAa2VybmVsLm9yZz4KLS0tCiBkcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Ry di5jIHwgMTYgKysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZz Y19kcnYuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKaW5kZXggNDcxNTliMzFl NmIzLi44MzA5MTk0YjM1MWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2Nf ZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwpAQCAtMjU0NCw4ICsy NTQ0LDggQEAgc3RhdGljIGludCBuZXR2c2NfcmVtb3ZlKHN0cnVjdCBodl9kZXZpY2UgKmRldikK IHN0YXRpYyBpbnQgbmV0dnNjX3N1c3BlbmQoc3RydWN0IGh2X2RldmljZSAqZGV2KQogewogCXN0 cnVjdCBuZXRfZGV2aWNlX2NvbnRleHQgKm5kZXZfY3R4OwotCXN0cnVjdCBuZXRfZGV2aWNlICp2 Zl9uZXRkZXYsICpuZXQ7CiAJc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2OworCXN0cnVjdCBu ZXRfZGV2aWNlICpuZXQ7CiAJaW50IHJldDsKIAogCW5ldCA9IGh2X2dldF9kcnZkYXRhKGRldik7 CkBAIC0yNTYxLDEwICsyNTYxLDYgQEAgc3RhdGljIGludCBuZXR2c2Nfc3VzcGVuZChzdHJ1Y3Qg aHZfZGV2aWNlICpkZXYpCiAJCWdvdG8gb3V0OwogCX0KIAotCXZmX25ldGRldiA9IHJ0bmxfZGVy ZWZlcmVuY2UobmRldl9jdHgtPnZmX25ldGRldik7Ci0JaWYgKHZmX25ldGRldikKLQkJbmV0dnNj X3VucmVnaXN0ZXJfdmYodmZfbmV0ZGV2KTsKLQogCS8qIFNhdmUgdGhlIGN1cnJlbnQgY29uZmln IGluZm8gKi8KIAluZGV2X2N0eC0+c2F2ZWRfbmV0dnNjX2Rldl9pbmZvID0gbmV0dnNjX2Rldmlu Zm9fZ2V0KG52ZGV2KTsKIApAQCAtMjU4MCw2ICsyNTc2LDcgQEAgc3RhdGljIGludCBuZXR2c2Nf cmVzdW1lKHN0cnVjdCBodl9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ID0g aHZfZ2V0X2RydmRhdGEoZGV2KTsKIAlzdHJ1Y3QgbmV0X2RldmljZV9jb250ZXh0ICpuZXRfZGV2 aWNlX2N0eDsKIAlzdHJ1Y3QgbmV0dnNjX2RldmljZV9pbmZvICpkZXZpY2VfaW5mbzsKKwlzdHJ1 Y3QgbmV0X2RldmljZSAqdmZfbmV0ZGV2OwogCWludCByZXQ7CiAKIAlydG5sX2xvY2soKTsKQEAg LTI1OTIsNiArMjU4OSwxNSBAQCBzdGF0aWMgaW50IG5ldHZzY19yZXN1bWUoc3RydWN0IGh2X2Rl dmljZSAqZGV2KQogCW5ldHZzY19kZXZpbmZvX3B1dChkZXZpY2VfaW5mbyk7CiAJbmV0X2Rldmlj ZV9jdHgtPnNhdmVkX25ldHZzY19kZXZfaW5mbyA9IE5VTEw7CiAKKwkvKiBBIE5JQyBkcml2ZXIg KGUuZy4gbWx4NSkgbWF5IGtlZXAgdGhlIFZGIG5ldHdvcmsgaW50ZXJmYWNlIGFjcm9zcworCSAq IGhpYmVybmF0aW9uLCBidXQgaGVyZSB0aGUgZGF0YSBwYXRoIGlzIGltcGxpY2l0bHkgc3dpdGNo ZWQgdG8gdGhlCisJICogbmV0dnNjIE5JQyBzaW5jZSB0aGUgdm1idXMgY2hhbm5lbCBpcyBjbG9z ZWQgYW5kIHJlLW9wZW5lZCwgc28KKwkgKiBuZXR2c2NfdmZfY2hhbmdlZCgpIG11c3QgYmUgdXNl ZCB0byBzd2l0Y2ggdGhlIGRhdGEgcGF0aCB0byB0aGUgVkYuCisJICovCisJdmZfbmV0ZGV2ID0g cnRubF9kZXJlZmVyZW5jZShuZXRfZGV2aWNlX2N0eC0+dmZfbmV0ZGV2KTsKKwlpZiAodmZfbmV0 ZGV2ICYmIG5ldHZzY192Zl9jaGFuZ2VkKHZmX25ldGRldikgIT0gTk9USUZZX09LKQorCQlyZXQg PSAtRUlOVkFMOworCiAJcnRubF91bmxvY2soKTsKIAogCXJldHVybiByZXQ7Ci0tIAoyLjI2LjIK CgpGcm9tIGMzYWIwZGE4ODI5NzFhMTFmMTJkMzU4NzM5NDgwMTMyYmU3NDExYTYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFZsYWRpbWlyIE9sdGVhbiA8b2x0ZWFudkBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgOCBTZXAgMjAyMCAwMjo0ODo0MiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggNDgv NTRdIG5ldDogZHNhOiBsaW5rIGludGVyZmFjZXMgd2l0aCB0aGUgRFNBIG1hc3RlciB0byBnZXQK IHJpZCBvZiBsb2NrZGVwIHdhcm5pbmdzCgpbIFVwc3RyZWFtIGNvbW1pdCAyZjFlOGVhNzI2ZTkw MjBlMDFlOWUyYWUyOWMyZDVlYjExMTMzMDMyIF0KClNpbmNlIGNvbW1pdCA4NDVlMGViYjQ0MDgg KCJuZXQ6IGNoYW5nZSBhZGRyX2xpc3RfbG9jayBiYWNrIHRvIHN0YXRpYwprZXkiKSwgY2FzY2Fk ZWQgRFNBIHNldHVwcyAoRFNBIHN3aXRjaCBwb3J0IGFzIERTQSBtYXN0ZXIgZm9yIGFub3RoZXIK RFNBIHN3aXRjaCBwb3J0KSBhcmUgZW1pdHRpbmcgdGhpcyBsb2NrZGVwIHdhcm5pbmc6Cgo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpXQVJOSU5HOiBwb3NzaWJs ZSByZWN1cnNpdmUgbG9ja2luZyBkZXRlY3RlZAo1LjguMC1yYzEtMDAxMzMtZzkyM2U0YjUwMzJk ZC1kaXJ0eSAjMjA4IE5vdCB0YWludGVkCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCmRoY3BjZC8zMjMgaXMgdHJ5aW5nIHRvIGFjcXVpcmUgbG9jazoKZmZmZjAw MDA2NmRkNDI2OCAoJmRzYV9tYXN0ZXJfYWRkcl9saXN0X2xvY2tfa2V5LzEpeysuLi59LXsyOjJ9 LCBhdDogZGV2X21jX3N5bmMrMHg0NC8weDkwCgpidXQgdGFzayBpcyBhbHJlYWR5IGhvbGRpbmcg bG9jazoKZmZmZjAwMDA2NjA4YzI2OCAoJmRzYV9tYXN0ZXJfYWRkcl9saXN0X2xvY2tfa2V5LzEp eysuLi59LXsyOjJ9LCBhdDogZGV2X21jX3N5bmMrMHg0NC8weDkwCgpvdGhlciBpbmZvIHRoYXQg bWlnaHQgaGVscCB1cyBkZWJ1ZyB0aGlzOgogUG9zc2libGUgdW5zYWZlIGxvY2tpbmcgc2NlbmFy aW86CgogICAgICAgQ1BVMAogICAgICAgLS0tLQogIGxvY2soJmRzYV9tYXN0ZXJfYWRkcl9saXN0 X2xvY2tfa2V5LzEpOwogIGxvY2soJmRzYV9tYXN0ZXJfYWRkcl9saXN0X2xvY2tfa2V5LzEpOwoK ICoqKiBERUFETE9DSyAqKioKCiBNYXkgYmUgZHVlIHRvIG1pc3NpbmcgbG9jayBuZXN0aW5nIG5v dGF0aW9uCgozIGxvY2tzIGhlbGQgYnkgZGhjcGNkLzMyMzoKICMwOiBmZmZmZGJkMTM4MWRkYTE4 IChydG5sX211dGV4KXsrLisufS17MzozfSwgYXQ6IHJ0bmxfbG9jaysweDI0LzB4MzAKICMxOiBm ZmZmMDAwMDY2MTRiMjY4IChfeG1pdF9FVEhFUil7Ky4uLn0tezI6Mn0sIGF0OiBkZXZfc2V0X3J4 X21vZGUrMHgyOC8weDQ4CiAjMjogZmZmZjAwMDA2NjA4YzI2OCAoJmRzYV9tYXN0ZXJfYWRkcl9s aXN0X2xvY2tfa2V5LzEpeysuLi59LXsyOjJ9LCBhdDogZGV2X21jX3N5bmMrMHg0NC8weDkwCgpz dGFjayBiYWNrdHJhY2U6CkNhbGwgdHJhY2U6CiBkdW1wX2JhY2t0cmFjZSsweDAvMHgxZTAKIHNo b3dfc3RhY2srMHgyMC8weDMwCiBkdW1wX3N0YWNrKzB4ZWMvMHgxNTgKIF9fbG9ja19hY3F1aXJl KzB4Y2EwLzB4MjM5OAogbG9ja19hY3F1aXJlKzB4ZTgvMHg0NDAKIF9yYXdfc3Bpbl9sb2NrX25l c3RlZCsweDY0LzB4OTAKIGRldl9tY19zeW5jKzB4NDQvMHg5MAogZHNhX3NsYXZlX3NldF9yeF9t b2RlKzB4MzQvMHg1MAogX19kZXZfc2V0X3J4X21vZGUrMHg2MC8weGEwCiBkZXZfbWNfc3luYysw eDg0LzB4OTAKIGRzYV9zbGF2ZV9zZXRfcnhfbW9kZSsweDM0LzB4NTAKIF9fZGV2X3NldF9yeF9t b2RlKzB4NjAvMHhhMAogZGV2X3NldF9yeF9tb2RlKzB4MzAvMHg0OAogX19kZXZfb3BlbisweDEw Yy8weDE4MAogX19kZXZfY2hhbmdlX2ZsYWdzKzB4MTcwLzB4MWM4CiBkZXZfY2hhbmdlX2ZsYWdz KzB4MmMvMHg3MAogZGV2aW5ldF9pb2N0bCsweDc3NC8weDg3OAogaW5ldF9pb2N0bCsweDM0OC8w eDNiMAogc29ja19kb19pb2N0bCsweDUwLzB4MzEwCiBzb2NrX2lvY3RsKzB4MWY4LzB4NTgwCiBr c3lzX2lvY3RsKzB4YjAvMHhmMAogX19hcm02NF9zeXNfaW9jdGwrMHgyOC8weDM4CiBlbDBfc3Zj X2NvbW1vbi5jb25zdHByb3AuMCsweDdjLzB4MTgwCiBkb19lbDBfc3ZjKzB4MmMvMHg5OAogZWww X3N5bmNfaGFuZGxlcisweDljLzB4MWI4CiBlbDBfc3luYysweDE1OC8weDE4MAoKU2luY2UgRFNB IG5ldmVyIG1hZGUgdXNlIG9mIHRoZSBuZXRkZXYgQVBJIGZvciBkZXNjcmliaW5nIGxpbmtzIGJl dHdlZW4KdXBwZXIgZGV2aWNlcyBhbmQgbG93ZXIgZGV2aWNlcywgdGhlIGRldi0+bG93ZXJfbGV2 ZWwgdmFsdWUgb2YgYSBEU0EKc3dpdGNoIGludGVyZmFjZSB3b3VsZCBiZSAxLCB3aGljaCB3b3Vs ZCB3YXJuIHdoZW4gaXQgaXMgYSBEU0EgbWFzdGVyLgoKV2UgY2FuIHVzZSBuZXRkZXZfdXBwZXJf ZGV2X2xpbmsoKSB0byBkZXNjcmliZSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4KYSBEU0Egc2xh dmUgYW5kIGEgRFNBIG1hc3Rlci4gVG8gYmUgcHJlY2lzZSwgYSBEU0EgInNsYXZlIiAoc3dpdGNo IHBvcnQpCmlzIGFuICJ1cHBlciIgdG8gYSBEU0EgIm1hc3RlciIgKGhvc3QgcG9ydCkuIFRoZSBy ZWxhdGlvbnNoaXAgaXMgIm1hbnkKdXBwZXJzIHRvIG9uZSBsb3dlciIsIGxpa2UgaW4gdGhlIGNh c2Ugb2YgVkxBTi4gU28sIGZvciB0aGF0IHJlYXNvbiwgd2UKdXNlIHRoZSBzYW1lIGZ1bmN0aW9u IGFzIFZMQU4gdXNlcy4KClRoZXJlIG1pZ2h0IGJlIGEgY2hhbmNlIHRoYXQgc29tZWJvZHkgd2ls bCB0cnkgdG8gdGFrZSBob2xkIG9mIHRoaXMKaW50ZXJmYWNlIGFuZCB1c2UgaXQgaW1tZWRpYXRl bHkgYWZ0ZXIgcmVnaXN0ZXJfbmV0ZGV2KCkgYW5kIGJlZm9yZQpuZXRkZXZfdXBwZXJfZGV2X2xp bmsoKS4gVG8gYXZvaWQgdGhhdCwgd2UgZG8gdGhlIHJlZ2lzdHJhdGlvbiBhbmQKbGlua2FnZSB3 aGlsZSBob2xkaW5nIHRoZSBSVE5MLCBhbmQgd2UgdXNlIHRoZSBSVE5MLWxvY2tlZCBjb3VzaW4g b2YKcmVnaXN0ZXJfbmV0ZGV2KCksIHdoaWNoIGlzIHJlZ2lzdGVyX25ldGRldmljZSgpLgoKU2lu Y2UgdGhpcyB3YXJuaW5nIHdhcyBub3QgdGhlcmUgd2hlbiBsb2NrZGVwIHdhcyB1c2luZyBkeW5h bWljIGtleXMgZm9yCmFkZHJfbGlzdF9sb2NrLCB3ZSBhcmUgYmxhbWluZyB0aGUgbG9ja2RlcCBw YXRjaCBpdHNlbGYuIFRoZSBuZXR3b3JrCnN0YWNrIF9oYXNfIGJlZW4gdXNpbmcgc3RhdGljIGxv Y2tkZXAga2V5cyBiZWZvcmUsIGFuZCBpdCBfaXNfIGxpa2VseQp0aGF0IHN0YWNrZWQgRFNBIHNl dHVwcyBoYXZlIGJlZW4gdHJpZ2dlcmluZyB0aGVzZSBsb2NrZGVwIHdhcm5pbmdzCnNpbmNlIGZv cmV2ZXIsIGhvd2V2ZXIgSSBjYW4ndCB0ZXN0IHZlcnkgb2xkIGtlcm5lbHMgb24gdGhpcyBwYXJ0 aWN1bGFyCnN0YWNrZWQgRFNBIHNldHVwLCB0byBlbnN1cmUgSSdtIG5vdCBpbiBmYWN0IGludHJv ZHVjaW5nIHJlZ3Jlc3Npb25zLgoKRml4ZXM6IDg0NWUwZWJiNDQwOCAoIm5ldDogY2hhbmdlIGFk ZHJfbGlzdF9sb2NrIGJhY2sgdG8gc3RhdGljIGtleSIpClN1Z2dlc3RlZC1ieTogQ29uZyBXYW5n IDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IFZsYWRpbWlyIE9sdGVh biA8b2x0ZWFudkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZh aW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9kc2Evc2xhdmUuYyB8IDE4ICsrKysrKysrKysrKysrKyst LQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2RzYS9zbGF2ZS5jIGIvbmV0L2RzYS9zbGF2ZS5jCmluZGV4IDRjN2YwODZh MDQ3Yi4uM2Y3YmU4YzY0YzUwIDEwMDY0NAotLS0gYS9uZXQvZHNhL3NsYXZlLmMKKysrIGIvbmV0 L2RzYS9zbGF2ZS5jCkBAIC0xODAxLDE1ICsxODAxLDI3IEBAIGludCBkc2Ffc2xhdmVfY3JlYXRl KHN0cnVjdCBkc2FfcG9ydCAqcG9ydCkKIAogCWRzYV9zbGF2ZV9ub3RpZnkoc2xhdmVfZGV2LCBE U0FfUE9SVF9SRUdJU1RFUik7CiAKLQlyZXQgPSByZWdpc3Rlcl9uZXRkZXYoc2xhdmVfZGV2KTsK KwlydG5sX2xvY2soKTsKKworCXJldCA9IHJlZ2lzdGVyX25ldGRldmljZShzbGF2ZV9kZXYpOwog CWlmIChyZXQpIHsKIAkJbmV0ZGV2X2VycihtYXN0ZXIsICJlcnJvciAlZCByZWdpc3RlcmluZyBp bnRlcmZhY2UgJXNcbiIsCiAJCQkgICByZXQsIHNsYXZlX2Rldi0+bmFtZSk7CisJCXJ0bmxfdW5s b2NrKCk7CiAJCWdvdG8gb3V0X3BoeTsKIAl9CiAKKwlyZXQgPSBuZXRkZXZfdXBwZXJfZGV2X2xp bmsobWFzdGVyLCBzbGF2ZV9kZXYsIE5VTEwpOworCisJcnRubF91bmxvY2soKTsKKworCWlmIChy ZXQpCisJCWdvdG8gb3V0X3VucmVnaXN0ZXI7CisKIAlyZXR1cm4gMDsKIAorb3V0X3VucmVnaXN0 ZXI6CisJdW5yZWdpc3Rlcl9uZXRkZXYoc2xhdmVfZGV2KTsKIG91dF9waHk6CiAJcnRubF9sb2Nr KCk7CiAJcGh5bGlua19kaXNjb25uZWN0X3BoeShwLT5kcC0+cGwpOwpAQCAtMTgyNiwxNiArMTgz OCwxOCBAQCBpbnQgZHNhX3NsYXZlX2NyZWF0ZShzdHJ1Y3QgZHNhX3BvcnQgKnBvcnQpCiAKIHZv aWQgZHNhX3NsYXZlX2Rlc3Ryb3koc3RydWN0IG5ldF9kZXZpY2UgKnNsYXZlX2RldikKIHsKKwlz dHJ1Y3QgbmV0X2RldmljZSAqbWFzdGVyID0gZHNhX3NsYXZlX3RvX21hc3RlcihzbGF2ZV9kZXYp OwogCXN0cnVjdCBkc2FfcG9ydCAqZHAgPSBkc2Ffc2xhdmVfdG9fcG9ydChzbGF2ZV9kZXYpOwog CXN0cnVjdCBkc2Ffc2xhdmVfcHJpdiAqcCA9IG5ldGRldl9wcml2KHNsYXZlX2Rldik7CiAKIAlu ZXRpZl9jYXJyaWVyX29mZihzbGF2ZV9kZXYpOwogCXJ0bmxfbG9jaygpOworCW5ldGRldl91cHBl cl9kZXZfdW5saW5rKG1hc3Rlciwgc2xhdmVfZGV2KTsKKwl1bnJlZ2lzdGVyX25ldGRldmljZShz bGF2ZV9kZXYpOwogCXBoeWxpbmtfZGlzY29ubmVjdF9waHkoZHAtPnBsKTsKIAlydG5sX3VubG9j aygpOwogCiAJZHNhX3NsYXZlX25vdGlmeShzbGF2ZV9kZXYsIERTQV9QT1JUX1VOUkVHSVNURVIp OwotCXVucmVnaXN0ZXJfbmV0ZGV2KHNsYXZlX2Rldik7CiAJcGh5bGlua19kZXN0cm95KGRwLT5w bCk7CiAJZ3JvX2NlbGxzX2Rlc3Ryb3koJnAtPmdjZWxscyk7CiAJZnJlZV9wZXJjcHUocC0+c3Rh dHM2NCk7Ci0tIAoyLjI2LjIKCgpGcm9tIDY3M2EyMmIxNGIyODgxOTgxMTliOGE3YzZiOWI3YWU1 OGY4ZjU2ZWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hdHRoaWFzIFNjaGlmZmVy IDxtYXR0aGlhcy5zY2hpZmZlckBldy50cS1ncm91cC5jb20+CkRhdGU6IFdlZCwgMTYgU2VwIDIw MjAgMTI6MDg6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIIDQ5LzU0XSBuZXQ6IGRzYTogbWljcm9j aGlwOiBrc3o4Nzk1OiByZWFsbHkgc2V0IHRoZSBjb3JyZWN0CiBudW1iZXIgb2YgcG9ydHMKClsg VXBzdHJlYW0gY29tbWl0IGZkOTQ0ZGMyNDMzNjkyMjY1NmE0OGY0NjA4YmZiNDFhYmRjZGM0YWEg XQoKVGhlIEtTWjk0NzcgYW5kIEtTWjg3OTUgdXNlIHRoZSBwb3J0X2NudCBmaWVsZCBkaWZmZXJl bnRseTogRm9yIHRoZQpLU1o5NDc3LCBpdCBpbmNsdWRlcyB0aGUgQ1BVIHBvcnQocyksIHdoaWxl IGZvciB0aGUgS1NaODc5NSwgaXQgZG9lc24ndC4KCkl0IHdvdWxkIGJlIGEgZ29vZCBjbGVhbnVw IHRvIG1ha2UgdGhlIGhhbmRsaW5nIG9mIGJvdGggZHJpdmVycyBtYXRjaCwKYnV0IGFzIGEgZmly c3Qgc3RlcCwgZml4IHRoZSByZWNlbnRseSBicm9rZW4gYXNzaWdubWVudCBvZiBudW1fcG9ydHMg aW4KdGhlIEtTWjg3OTUgZHJpdmVyICh3aGljaCBjb21wbGV0ZWx5IGJyb2tlIHByb2JpbmcsIGFz IHRoZSBDUFUgcG9ydAppbmRleCB3YXMgYWx3YXlzIGZhaWxpbmcgdGhlIG51bV9wb3J0cyBjaGVj aykuCgpGaXhlczogYWYxOTlhMWE5Y2IwICgibmV0OiBkc2E6IG1pY3JvY2hpcDogc2V0IHRoZSBj b3JyZWN0IG51bWJlciBvZiBwb3J0cyIpClNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIFNjaGlmZmVy IDxtYXR0aGlhcy5zY2hpZmZlckBldy50cS1ncm91cC5jb20+ClJldmlld2VkLWJ5OiBDb2RyaW4g Q2l1Ym90YXJpdSA8Y29kcmluLmNpdWJvdGFyaXVAbWljcm9jaGlwLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2RzYS9taWNyb2NoaXAva3N6ODc5NS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL21pY3Jv Y2hpcC9rc3o4Nzk1LmMgYi9kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejg3OTUuYwppbmRl eCA3YzE3YjBmNzA1ZWMuLjg3ZGI1ODhiY2RkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNh L21pY3JvY2hpcC9rc3o4Nzk1LmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o4 Nzk1LmMKQEAgLTEyNjksNyArMTI2OSw3IEBAIHN0YXRpYyBpbnQga3N6ODc5NV9zd2l0Y2hfaW5p dChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KQogCX0KIAogCS8qIHNldCB0aGUgcmVhbCBudW1iZXIg b2YgcG9ydHMgKi8KLQlkZXYtPmRzLT5udW1fcG9ydHMgPSBkZXYtPnBvcnRfY250OworCWRldi0+ ZHMtPm51bV9wb3J0cyA9IGRldi0+cG9ydF9jbnQgKyAxOwogCiAJcmV0dXJuIDA7CiB9Ci0tIAoy LjI2LjIKCgpGcm9tIGFmYTg1N2M1MjMwOTNiM2NhZmZiZmEzZGJiMzJmZGM1MWNhYWZiYzggTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhcnNodXJhbSBUaG9tYmFyZSA8cHRob21iYXJA Y2FkZW5jZS5jb20+CkRhdGU6IFNhdCwgNSBTZXAgMjAyMCAxMDoyMTozMyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNTAvNTRdIG5ldDogbWFjYjogZml4IGZvciBwYXVzZSBmcmFtZSByZWNlaXZlIGVu YWJsZSBiaXQKClsgVXBzdHJlYW0gY29tbWl0IGQ3NzM5YjBiNmQxNWVmOWFkNWM3OTQyNDczNmI4 ZGVkNWVkM2U5MTMgXQoKUEFFIGJpdCBvZiBOQ0ZHUiByZWdpc3Rlciwgd2hlbiBzZXQsIHBhdXNl cyB0cmFuc21pc3Npb24KaWYgYSBub24temVybyA4MDIuMyBjbGFzc2ljIHBhdXNlIGZyYW1lIGlz IHJlY2VpdmVkLgoKRml4ZXM6IDc4OTdiMDcxYWMzYiAoIm5ldDogbWFjYjogY29udmVydCB0byBw aHlsaW5rIikKU2lnbmVkLW9mZi1ieTogUGFyc2h1cmFtIFRob21iYXJlIDxwdGhvbWJhckBjYWRl bmNlLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4K LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jIHwgMyArLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYwppbmRleCA0YjFiNTkyOGIxMDQuLjU1MzQ3YmNl YTIyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4u YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jCkBAIC02NDcs OCArNjQ3LDcgQEAgc3RhdGljIHZvaWQgbWFjYl9tYWNfbGlua191cChzdHJ1Y3QgcGh5bGlua19j b25maWcgKmNvbmZpZywKIAkJCQljdHJsIHw9IEdFTV9CSVQoR0JFKTsKIAkJfQogCi0JCS8qIFdl IGRvIG5vdCBzdXBwb3J0IE1MT19QQVVTRV9SWCB5ZXQgKi8KLQkJaWYgKHR4X3BhdXNlKQorCQlp ZiAocnhfcGF1c2UpCiAJCQljdHJsIHw9IE1BQ0JfQklUKFBBRSk7CiAKIAkJbWFjYl9zZXRfdHhf Y2xrKGJwLT50eF9jbGssIHNwZWVkLCBuZGV2KTsKLS0gCjIuMjYuMgoKCkZyb20gZmJkOWNhMDc0 Nzg3NGZlMWUzZmUxMWZkNTNkMjkwMWVlNjI2MmU5NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogVGFlaGVlIFlvbyA8YXA0MjAwNzNAZ21haWwuY29tPgpEYXRlOiBNb24sIDcgU2VwIDIw MjAgMTU6NTQ6NDEgKzAwMDAKU3ViamVjdDogW1BBVENIIDUxLzU0XSBSZXZlcnQgIm5ldG5zOiBk b24ndCBkaXNhYmxlIEJIcyB3aGVuIGxvY2tpbmcKICJuc2lkX2xvY2siIgoKWyBVcHN0cmVhbSBj b21taXQgZTFmNDY5Y2Q1ODY2NDk5YWM0MGJmZGNhODc0MTFlMWM1MjVhMTBjNyBdCgpUaGlzIHJl dmVydHMgY29tbWl0IDhkN2U1ZGVlOTcyZjFjZGUyYmE5NmM2MjFmMTU0MWZhMzZlN2Q0ZjQuCgpU byBwcm90ZWN0IG5ldG5zIGlkLCB0aGUgbnNpZF9sb2NrIGlzIHVzZWQgd2hlbiBuZXRucyBpZCBp cyBiZWluZwphbGxvY2F0ZWQgYW5kIHJlbW92ZWQgYnkgcGVlcm5ldDJpZF9hbGxvYygpIGFuZCB1 bmhhc2hfbnNpZCgpLgpUaGUgbnNpZF9sb2NrIGNhbiBiZSB1c2VkIGluIEJIIGNvbnRleHQgYnV0 IG9ubHkgc3Bpbl9sb2NrKCkgaXMgdXNlZAppbiB0aGlzIGNvZGUuClVzaW5nIHNwaW5fbG9jaygp IGluc3RlYWQgb2Ygc3Bpbl9sb2NrX2JoKCkgY2FuIHJlc3VsdCBpbiBhIGRlYWRsb2NrIGluCnRo ZSBmb2xsb3dpbmcgc2NlbmFyaW8gcmVwb3J0ZWQgYnkgdGhlIGxvY2tkZXAuCkluIG9yZGVyIHRv IGF2b2lkIGEgZGVhZGxvY2ssIHRoZSBzcGluX2xvY2tfYmgoKSBzaG91bGQgYmUgdXNlZCBpbnN0 ZWFkCm9mIHNwaW5fbG9jaygpIHRvIGFjcXVpcmUgbnNpZF9sb2NrLgoKVGVzdCBjb21tYW5kczoK ICAgIGlwIG5ldG5zIGRlbCBuc3QKICAgIGlwIG5ldG5zIGFkZCBuc3QKICAgIGlwIGxpbmsgYWRk IHZldGgxIHR5cGUgdmV0aCBwZWVyIG5hbWUgdmV0aDIKICAgIGlwIGxpbmsgc2V0IHZldGgxIG5l dG5zIG5zdAogICAgaXAgbmV0bnMgZXhlYyBuc3QgaXAgbGluayBhZGQgbmFtZSBicjEgdHlwZSBi cmlkZ2Ugdmxhbl9maWx0ZXJpbmcgMQogICAgaXAgbmV0bnMgZXhlYyBuc3QgaXAgbGluayBzZXQg ZGV2IGJyMSB1cAogICAgaXAgbmV0bnMgZXhlYyBuc3QgaXAgbGluayBzZXQgZGV2IHZldGgxIG1h c3RlciBicjEKICAgIGlwIG5ldG5zIGV4ZWMgbnN0IGlwIGxpbmsgc2V0IGRldiB2ZXRoMSB1cAog ICAgaXAgbmV0bnMgZXhlYyBuc3QgaXAgbGluayBhZGQgbWFjdmxhbjAgbGluayBicjEgdXAgdHlw ZSBtYWN2bGFuCgpTcGxhdCBsb29rcyBsaWtlOgpbICAgMzMuNjE1ODYwXVsgIFQ2MDddIFdBUk5J Tkc6IFNPRlRJUlEtc2FmZSAtPiBTT0ZUSVJRLXVuc2FmZSBsb2NrIG9yZGVyIGRldGVjdGVkClsg ICAzMy42MTcxOTRdWyAgVDYwN10gNS45LjAtcmMxKyAjNjY1IE5vdCB0YWludGVkClsgLi4uIF0K WyAgIDMzLjY3MDYxNV1bICBUNjA3XSBDaGFpbiBleGlzdHMgb2Y6ClsgICAzMy42NzA2MTVdWyAg VDYwN10gICAmbWMtPm1jYV9sb2NrIC0tPiAmYnJpZGdlX25ldGRldl9hZGRyX2xvY2tfa2V5IC0t PiAmbmV0LT5uc2lkX2xvY2sKWyAgIDMzLjY3MDYxNV1bICBUNjA3XQpbICAgMzMuNjczMTE4XVsg IFQ2MDddICBQb3NzaWJsZSBpbnRlcnJ1cHQgdW5zYWZlIGxvY2tpbmcgc2NlbmFyaW86ClsgICAz My42NzMxMThdWyAgVDYwN10KWyAgIDMzLjY3NDU5OV1bICBUNjA3XSAgICAgICAgQ1BVMCAgICAg ICAgICAgICAgICAgICAgQ1BVMQpbICAgMzMuNjc1NTU3XVsgIFQ2MDddICAgICAgICAtLS0tICAg ICAgICAgICAgICAgICAgICAtLS0tClsgICAzMy42NzY1MTZdWyAgVDYwN10gICBsb2NrKCZuZXQt Pm5zaWRfbG9jayk7ClsgICAzMy42NzczMDZdWyAgVDYwN10gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7ClsgICAzMy42Nzg1MTddWyAgVDYwN10gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2soJm1jLT5tY2FfbG9jayk7ClsgICAzMy42 Nzk3MjVdWyAgVDYwN10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2soJmJyaWRn ZV9uZXRkZXZfYWRkcl9sb2NrX2tleSk7ClsgICAzMy42ODExNjZdWyAgVDYwN10gICA8SW50ZXJy dXB0PgpbICAgMzMuNjgxNzkxXVsgIFQ2MDddICAgICBsb2NrKCZtYy0+bWNhX2xvY2spOwpbICAg MzMuNjgyNTc5XVsgIFQ2MDddClsgICAzMy42ODI1NzldWyAgVDYwN10gICoqKiBERUFETE9DSyAq KioKWyAuLi4gXQpbICAgMzMuOTIyMDQ2XVsgIFQ2MDddIHN0YWNrIGJhY2t0cmFjZToKWyAgIDMz LjkyMjk5OV1bICBUNjA3XSBDUFU6IDMgUElEOiA2MDcgQ29tbTogaXAgTm90IHRhaW50ZWQgNS45 LjAtcmMxKyAjNjY1ClsgICAzMy45MjQwOTldWyAgVDYwN10gSGFyZHdhcmUgbmFtZTogUUVNVSBT dGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgMS4xMC4yLTF1YnVudHUxIDA0 LzAxLzIwMTQKWyAgIDMzLjkyNTcxNF1bICBUNjA3XSBDYWxsIFRyYWNlOgpbICAgMzMuOTI2MjM4 XVsgIFQ2MDddICBkdW1wX3N0YWNrKzB4NzgvMHhhYgpbICAgMzMuOTI2OTA1XVsgIFQ2MDddICBj aGVja19pcnFfdXNhZ2UrMHg3MGIvMHg3MjAKWyAgIDMzLjkyNzcwOF1bICBUNjA3XSAgPyBpdGVy YXRlX2NoYWluX2tleSsweDYwLzB4NjAKWyAgIDMzLjkyODUwN11bICBUNjA3XSAgPyBjaGVja19w YXRoKzB4MjIvMHg0MApbICAgMzMuOTI5MjAxXVsgIFQ2MDddICA/IGNoZWNrX25vbmNpcmN1bGFy KzB4Y2YvMHgxODAKWyAgIDMzLjkzMDAyNF1bICBUNjA3XSAgPyBfX2xvY2tfYWNxdWlyZSsweDE5 NTIvMHgxZjIwClsgICAzMy45MzA4NjBdWyAgVDYwN10gIF9fbG9ja19hY3F1aXJlKzB4MTk1Mi8w eDFmMjAKWyAgIDMzLjkzMTY2N11bICBUNjA3XSAgbG9ja19hY3F1aXJlKzB4YWYvMHgzYTAKWyAg IDMzLjkzMjM2Nl1bICBUNjA3XSAgPyBwZWVybmV0MmlkX2FsbG9jKzB4M2EvMHgxNzAKWyAgIDMz LjkzMzE0N11bICBUNjA3XSAgPyBicl9wb3J0X2ZpbGxfYXR0cnMrMHg1NGMvMHg2YjAgW2JyaWRn ZV0KWyAgIDMzLjkzNDE0MF1bICBUNjA3XSAgPyBicl9wb3J0X2ZpbGxfYXR0cnMrMHg1ZGUvMHg2 YjAgW2JyaWRnZV0KWyAgIDMzLjkzNTExM11bICBUNjA3XSAgPyBrdm1fc2NoZWRfY2xvY2tfcmVh ZCsweDE0LzB4MzAKWyAgIDMzLjkzNTk3NF1bICBUNjA3XSAgX3Jhd19zcGluX2xvY2srMHgzMC8w eDcwClsgICAzMy45MzY3MjhdWyAgVDYwN10gID8gcGVlcm5ldDJpZF9hbGxvYysweDNhLzB4MTcw ClsgICAzMy45Mzc1MjNdWyAgVDYwN10gIHBlZXJuZXQyaWRfYWxsb2MrMHgzYS8weDE3MApbICAg MzMuOTM4MzEzXVsgIFQ2MDddICBydG5sX2ZpbGxfaWZpbmZvKzB4YjVlLzB4MTQwMApbICAgMzMu OTM5MDkxXVsgIFQ2MDddICBydG1zZ19pZmluZm9fYnVpbGRfc2tiKzB4OGEvMHhmMApbICAgMzMu OTM5OTUzXVsgIFQ2MDddICBydG1zZ19pZmluZm9fZXZlbnQucGFydC4zOSsweDE3LzB4NTAKWyAg IDMzLjk0MDg2M11bICBUNjA3XSAgcnRtc2dfaWZpbmZvKzB4MWYvMHgzMApbICAgMzMuOTQxNTcx XVsgIFQ2MDddICBfX2Rldl9ub3RpZnlfZmxhZ3MrMHhhNS8weGYwClsgICAzMy45NDIzNzZdWyAg VDYwN10gID8gX19pcnFfd29ya19xdWV1ZV9sb2NhbCsweDQ5LzB4NTAKWyAgIDMzLjk0MzI0OV1b ICBUNjA3XSAgPyBpcnFfd29ya19xdWV1ZSsweDFkLzB4MzAKWyAgIDMzLjk0Mzk5M11bICBUNjA3 XSAgPyBfX2Rldl9zZXRfcHJvbWlzY3VpdHkrMHg3Yi8weDFhMApbICAgMzMuOTQ0ODc4XVsgIFQ2 MDddICBfX2Rldl9zZXRfcHJvbWlzY3VpdHkrMHg3Yi8weDFhMApbICAgMzMuOTQ1NzU4XVsgIFQ2 MDddICBkZXZfc2V0X3Byb21pc2N1aXR5KzB4MWUvMHg1MApbICAgMzMuOTQ2NTgyXVsgIFQ2MDdd ICBicl9wb3J0X3NldF9wcm9taXNjKzB4MWYvMHg0MCBbYnJpZGdlXQpbICAgMzMuOTQ3NDg3XVsg IFQ2MDddICBicl9tYW5hZ2VfcHJvbWlzYysweDhiLzB4ZTAgW2JyaWRnZV0KWyAgIDMzLjk0ODM4 OF1bICBUNjA3XSAgX19kZXZfc2V0X3Byb21pc2N1aXR5KzB4MTIzLzB4MWEwClsgICAzMy45NDky NDRdWyAgVDYwN10gIF9fZGV2X3NldF9yeF9tb2RlKzB4NjgvMHg5MApbICAgMzMuOTUwMDIxXVsg IFQ2MDddICBkZXZfdWNfYWRkKzB4NTAvMHg2MApbICAgMzMuOTUwNzIwXVsgIFQ2MDddICBtYWN2 bGFuX29wZW4rMHgxOGUvMHgxZjAgW21hY3ZsYW5dClsgICAzMy45NTE2MDFdWyAgVDYwN10gIF9f ZGV2X29wZW4rMHhkNi8weDE3MApbICAgMzMuOTUyMjY5XVsgIFQ2MDddICBfX2Rldl9jaGFuZ2Vf ZmxhZ3MrMHgxODEvMHgxZDAKWyAgIDMzLjk1MzA1Nl1bICBUNjA3XSAgcnRubF9jb25maWd1cmVf bGluaysweDJmLzB4YTAKWyAgIDMzLjk1Mzg4NF1bICBUNjA3XSAgX19ydG5sX25ld2xpbmsrMHg2 YjkvMHg4ZTAKWyAgIDMzLjk1NDY2NV1bICBUNjA3XSAgPyBfX2xvY2tfYWNxdWlyZSsweDk1ZC8w eDFmMjAKWyAgIDMzLjk1NTQ1MF1bICBUNjA3XSAgPyBsb2NrX2FjcXVpcmUrMHhhZi8weDNhMApb ICAgMzMuOTU2MTkzXVsgIFQ2MDddICA/IGlzX2JwZl90ZXh0X2FkZHJlc3MrMHg1LzB4ZTAKWyAg IDMzLjk1Njk5OV1bICBUNjA3XSAgcnRubF9uZXdsaW5rKzB4NDcvMHg3MAoKQWNrZWQtYnk6IEd1 aWxsYXVtZSBOYXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+CkZpeGVzOiA4ZDdlNWRlZTk3MmYgKCJu ZXRuczogZG9uJ3QgZGlzYWJsZSBCSHMgd2hlbiBsb2NraW5nICJuc2lkX2xvY2siIikKUmVwb3J0 ZWQtYnk6IHN5emJvdCszZjk2MGM2NGExMDRlYWEyYzgxM0BzeXprYWxsZXIuYXBwc3BvdG1haWwu Y29tClNpZ25lZC1vZmYtYnk6IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KLS0tCiBuZXQvY29yZS9u ZXRfbmFtZXNwYWNlLmMgfCAyMiArKysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2Nv cmUvbmV0X25hbWVzcGFjZS5jIGIvbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jCmluZGV4IGRjZDYx YWNhMzQzZS4uOTQ0YWIyMTRlNWFlIDEwMDY0NAotLS0gYS9uZXQvY29yZS9uZXRfbmFtZXNwYWNl LmMKKysrIGIvbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jCkBAIC0yNTEsMTAgKzI1MSwxMCBAQCBp bnQgcGVlcm5ldDJpZF9hbGxvYyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBuZXQgKnBlZXIsIGdm cF90IGdmcCkKIAlpZiAocmVmY291bnRfcmVhZCgmbmV0LT5jb3VudCkgPT0gMCkKIAkJcmV0dXJu IE5FVE5TQV9OU0lEX05PVF9BU1NJR05FRDsKIAotCXNwaW5fbG9jaygmbmV0LT5uc2lkX2xvY2sp OworCXNwaW5fbG9ja19iaCgmbmV0LT5uc2lkX2xvY2spOwogCWlkID0gX19wZWVybmV0MmlkKG5l dCwgcGVlcik7CiAJaWYgKGlkID49IDApIHsKLQkJc3Bpbl91bmxvY2soJm5ldC0+bnNpZF9sb2Nr KTsKKwkJc3Bpbl91bmxvY2tfYmgoJm5ldC0+bnNpZF9sb2NrKTsKIAkJcmV0dXJuIGlkOwogCX0K IApAQCAtMjY0LDEyICsyNjQsMTIgQEAgaW50IHBlZXJuZXQyaWRfYWxsb2Moc3RydWN0IG5ldCAq bmV0LCBzdHJ1Y3QgbmV0ICpwZWVyLCBnZnBfdCBnZnApCiAJICoganVzdCBiZWVuIGlkcl9yZW1v dmUoKSdkIGZyb20gdGhlcmUgaW4gY2xlYW51cF9uZXQoKS4KIAkgKi8KIAlpZiAoIW1heWJlX2dl dF9uZXQocGVlcikpIHsKLQkJc3Bpbl91bmxvY2soJm5ldC0+bnNpZF9sb2NrKTsKKwkJc3Bpbl91 bmxvY2tfYmgoJm5ldC0+bnNpZF9sb2NrKTsKIAkJcmV0dXJuIE5FVE5TQV9OU0lEX05PVF9BU1NJ R05FRDsKIAl9CiAKIAlpZCA9IGFsbG9jX25ldGlkKG5ldCwgcGVlciwgLTEpOwotCXNwaW5fdW5s b2NrKCZuZXQtPm5zaWRfbG9jayk7CisJc3Bpbl91bmxvY2tfYmgoJm5ldC0+bnNpZF9sb2NrKTsK IAogCXB1dF9uZXQocGVlcik7CiAJaWYgKGlkIDwgMCkKQEAgLTUzNCwyMCArNTM0LDIwIEBAIHN0 YXRpYyB2b2lkIHVuaGFzaF9uc2lkKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5ldCAqbGFzdCkK IAlmb3JfZWFjaF9uZXQodG1wKSB7CiAJCWludCBpZDsKIAotCQlzcGluX2xvY2soJnRtcC0+bnNp ZF9sb2NrKTsKKwkJc3Bpbl9sb2NrX2JoKCZ0bXAtPm5zaWRfbG9jayk7CiAJCWlkID0gX19wZWVy bmV0MmlkKHRtcCwgbmV0KTsKIAkJaWYgKGlkID49IDApCiAJCQlpZHJfcmVtb3ZlKCZ0bXAtPm5l dG5zX2lkcywgaWQpOwotCQlzcGluX3VubG9jaygmdG1wLT5uc2lkX2xvY2spOworCQlzcGluX3Vu bG9ja19iaCgmdG1wLT5uc2lkX2xvY2spOwogCQlpZiAoaWQgPj0gMCkKIAkJCXJ0bmxfbmV0X25v dGlmeWlkKHRtcCwgUlRNX0RFTE5TSUQsIGlkLCAwLCBOVUxMLAogCQkJCQkgIEdGUF9LRVJORUwp OwogCQlpZiAodG1wID09IGxhc3QpCiAJCQlicmVhazsKIAl9Ci0Jc3Bpbl9sb2NrKCZuZXQtPm5z aWRfbG9jayk7CisJc3Bpbl9sb2NrX2JoKCZuZXQtPm5zaWRfbG9jayk7CiAJaWRyX2Rlc3Ryb3ko Jm5ldC0+bmV0bnNfaWRzKTsKLQlzcGluX3VubG9jaygmbmV0LT5uc2lkX2xvY2spOworCXNwaW5f dW5sb2NrX2JoKCZuZXQtPm5zaWRfbG9jayk7CiB9CiAKIHN0YXRpYyBMTElTVF9IRUFEKGNsZWFu dXBfbGlzdCk7CkBAIC03NjAsOSArNzYwLDkgQEAgc3RhdGljIGludCBydG5sX25ldF9uZXdpZChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgbmxtc2doZHIgKm5saCwKIAkJcmV0dXJuIFBUUl9F UlIocGVlcik7CiAJfQogCi0Jc3Bpbl9sb2NrKCZuZXQtPm5zaWRfbG9jayk7CisJc3Bpbl9sb2Nr X2JoKCZuZXQtPm5zaWRfbG9jayk7CiAJaWYgKF9fcGVlcm5ldDJpZChuZXQsIHBlZXIpID49IDAp IHsKLQkJc3Bpbl91bmxvY2soJm5ldC0+bnNpZF9sb2NrKTsKKwkJc3Bpbl91bmxvY2tfYmgoJm5l dC0+bnNpZF9sb2NrKTsKIAkJZXJyID0gLUVFWElTVDsKIAkJTkxfU0VUX0JBRF9BVFRSKGV4dGFj aywgbmxhKTsKIAkJTkxfU0VUX0VSUl9NU0coZXh0YWNrLApAQCAtNzcxLDcgKzc3MSw3IEBAIHN0 YXRpYyBpbnQgcnRubF9uZXRfbmV3aWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNn aGRyICpubGgsCiAJfQogCiAJZXJyID0gYWxsb2NfbmV0aWQobmV0LCBwZWVyLCBuc2lkKTsKLQlz cGluX3VubG9jaygmbmV0LT5uc2lkX2xvY2spOworCXNwaW5fdW5sb2NrX2JoKCZuZXQtPm5zaWRf bG9jayk7CiAJaWYgKGVyciA+PSAwKSB7CiAJCXJ0bmxfbmV0X25vdGlmeWlkKG5ldCwgUlRNX05F V05TSUQsIGVyciwgTkVUTElOS19DQihza2IpLnBvcnRpZCwKIAkJCQkgIG5saCwgR0ZQX0tFUk5F TCk7Ci0tIAoyLjI2LjIKCgpGcm9tIGUzNWQyYzU1ZWIyNjRkZGNkNzRhZTk4Mzg5YjE2ZTM4MDUz NWEyYjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1heGltIE1pa2l0eWFuc2tpeSA8 bWF4aW1taUBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwgMTEgSnVuIDIwMjAgMTM6NTU6MTkgKzAz MDAKU3ViamVjdDogW1BBVENIIDUyLzU0XSBuZXQvbWx4NWU6IFVzZSBSQ1UgdG8gcHJvdGVjdCBy cS0+eGRwX3Byb2cKClsgVXBzdHJlYW0gY29tbWl0IGZlNDUzODZhMjA4Mjc3Y2FlNDY0ODEwNjEz M2MwODI0NmVlY2QwMTIgXQoKQ3VycmVudGx5LCB0aGUgUlFzIGFyZSB0ZW1wb3JhcmlseSBkZWFj dGl2YXRlZCB3aGlsZSBob3QtcmVwbGFjaW5nIHRoZQpYRFAgcHJvZ3JhbSwgYW5kIG5hcGlfc3lu Y2hyb25pemUgaXMgdXNlZCB0byBtYWtlIHN1cmUgcnEtPnhkcF9wcm9nIGlzCm5vdCBpbiB1c2Uu IEhvd2V2ZXIsIG5hcGlfc3luY2hyb25pemUgaXMgbm90IGlkZWFsOiBpbnN0ZWFkIG9mIHdhaXRp bmcKdGlsbCB0aGUgZW5kIG9mIGEgTkFQSSBjeWNsZSwgaXQgcG9sbHMgYW5kIHdhaXRzIHVudGls IE5BUEkgaXMgbm90CnJ1bm5pbmcsIHNsZWVwaW5nIGZvciAxbXMgYmV0d2VlbiB0aGUgcGVyaW9k aWMgY2hlY2tzLiBVbmRlciBoZWF2eQp3b3JrbG9hZHMsIHRoaXMgbG9vcCB3aWxsIG5ldmVyIGVu ZCwgd2hpY2ggbWF5IGV2ZW4gbGVhZCB0byBhIGtlcm5lbApwYW5pYyBpZiB0aGUga2VybmVsIGRl dGVjdHMgdGhlIGhhbmd1cC4gU3VjaCB3b3JrbG9hZHMgaW5jbHVkZSBYU0sgVFgKYW5kIHBvc3Np Ymx5IGFsc28gaGVhdnkgUlggKFhTSyBvciBub3JtYWwpLgoKVGhlIGZpeCBpcyBpbnNwaXJlZCBi eSBjb21taXQgMzI2ZmUwMmQxZWQ2ICgibmV0L21seDRfZW46IHByb3RlY3QKcmluZy0+eGRwX3By b2cgd2l0aCByY3VfcmVhZF9sb2NrIikuIEFzIG1seDVlX3hkcF9oYW5kbGUgaXMgYWxyZWFkeQpw cm90ZWN0ZWQgYnkgcmN1X3JlYWRfbG9jaywgYW5kIGJwZl9wcm9nX3B1dCB1c2VzIGNhbGxfcmN1 IHRvIGZyZWUgdGhlCnByb2dyYW0sIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGFkZGl0aW9uYWwgc3lu Y2hyb25pemF0aW9uIGlmIHByb3BlciBSQ1UKZnVuY3Rpb25zIGFyZSB1c2VkIHRvIGFjY2VzcyB0 aGUgcG9pbnRlci4gVGhpcyBwYXRjaCBjb252ZXJ0cyBhbGwKYWNjZXNzZXMgdG8gcnEtPnhkcF9w cm9nIHRvIHVzZSBSQ1UgZnVuY3Rpb25zLgoKRml4ZXM6IDg2OTk0MTU2YzczNiAoIm5ldC9tbHg1 ZTogWERQIGZhc3QgUlggZHJvcCBicGYgcHJvZ3JhbXMgc3VwcG9ydCIpCkZpeGVzOiBkYjA1ODE1 YjM2Y2IgKCJuZXQvbWx4NWU6IEFkZCBYU0sgemVyby1jb3B5IHN1cHBvcnQiKQpTaWduZWQtb2Zm LWJ5OiBNYXhpbSBNaWtpdHlhbnNraXkgPG1heGltbWlAbWVsbGFub3guY29tPgpSZXZpZXdlZC1i eTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVl ZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaCAgfCAgMiArLQogLi4uL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW4veGRwLmMgIHwgIDIgKy0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX21haW4uYyB8IDUzICsrKysrKysrKy0tLS0tLS0tLS0KIDMgZmlsZXMg Y2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmggYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaAppbmRleCA4NDJkYjIwNDkzZGYuLjc2 YjIzYmE3YTQ2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuLmgKQEAgLTYwNCw3ICs2MDQsNyBAQCBzdHJ1Y3QgbWx4NWVfcnEgewogCXN0cnVjdCBkaW0g ICAgICAgICBkaW07IC8qIER5bmFtaWMgSW50ZXJydXB0IE1vZGVyYXRpb24gKi8KIAogCS8qIFhE UCAqLwotCXN0cnVjdCBicGZfcHJvZyAgICAgICAqeGRwX3Byb2c7CisJc3RydWN0IGJwZl9wcm9n IF9fcmN1ICp4ZHBfcHJvZzsKIAlzdHJ1Y3QgbWx4NWVfeGRwc3EgICAgKnhkcHNxOwogCURFQ0xB UkVfQklUTUFQKGZsYWdzLCA4KTsKIAlzdHJ1Y3QgcGFnZV9wb29sICAgICAgKnBhZ2VfcG9vbDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94 ZHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYwpp bmRleCBjOWQzMDhlOTE5NjUuLjc1ZWQ4MjBiMGFkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYwpAQCAtMTIxLDcgKzEyMSw3IEBAIG1s eDVlX3htaXRfeGRwX2J1ZmYoc3RydWN0IG1seDVlX3hkcHNxICpzcSwgc3RydWN0IG1seDVlX3Jx ICpycSwKIGJvb2wgbWx4NWVfeGRwX2hhbmRsZShzdHJ1Y3QgbWx4NWVfcnEgKnJxLCBzdHJ1Y3Qg bWx4NWVfZG1hX2luZm8gKmRpLAogCQkgICAgICB1MzIgKmxlbiwgc3RydWN0IHhkcF9idWZmICp4 ZHApCiB7Ci0Jc3RydWN0IGJwZl9wcm9nICpwcm9nID0gUkVBRF9PTkNFKHJxLT54ZHBfcHJvZyk7 CisJc3RydWN0IGJwZl9wcm9nICpwcm9nID0gcmN1X2RlcmVmZXJlbmNlKHJxLT54ZHBfcHJvZyk7 CiAJdTMyIGFjdDsKIAlpbnQgZXJyOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwppbmRleCAzYjg5MmVjMzAxYjQuLjNlMTQzNGZiMTY2 ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5f bWFpbi5jCkBAIC00MDEsNyArNDAxLDcgQEAgc3RhdGljIGludCBtbHg1ZV9hbGxvY19ycShzdHJ1 Y3QgbWx4NWVfY2hhbm5lbCAqYywKIAogCWlmIChwYXJhbXMtPnhkcF9wcm9nKQogCQlicGZfcHJv Z19pbmMocGFyYW1zLT54ZHBfcHJvZyk7Ci0JcnEtPnhkcF9wcm9nID0gcGFyYW1zLT54ZHBfcHJv ZzsKKwlSQ1VfSU5JVF9QT0lOVEVSKHJxLT54ZHBfcHJvZywgcGFyYW1zLT54ZHBfcHJvZyk7CiAK IAlycV94ZHBfaXggPSBycS0+aXg7CiAJaWYgKHhzaykKQEAgLTQxMCw3ICs0MTAsNyBAQCBzdGF0 aWMgaW50IG1seDVlX2FsbG9jX3JxKHN0cnVjdCBtbHg1ZV9jaGFubmVsICpjLAogCWlmIChlcnIg PCAwKQogCQlnb3RvIGVycl9ycV93cV9kZXN0cm95OwogCi0JcnEtPmJ1ZmYubWFwX2RpciA9IHJx LT54ZHBfcHJvZyA/IERNQV9CSURJUkVDVElPTkFMIDogRE1BX0ZST01fREVWSUNFOworCXJxLT5i dWZmLm1hcF9kaXIgPSBwYXJhbXMtPnhkcF9wcm9nID8gRE1BX0JJRElSRUNUSU9OQUwgOiBETUFf RlJPTV9ERVZJQ0U7CiAJcnEtPmJ1ZmYuaGVhZHJvb20gPSBtbHg1ZV9nZXRfcnFfaGVhZHJvb20o bWRldiwgcGFyYW1zLCB4c2spOwogCXBvb2xfc2l6ZSA9IDEgPDwgcGFyYW1zLT5sb2dfcnFfbXR1 X2ZyYW1lczsKIApAQCAtNjA1LDggKzYwNSw4IEBAIHN0YXRpYyBpbnQgbWx4NWVfYWxsb2NfcnEo c3RydWN0IG1seDVlX2NoYW5uZWwgKmMsCiAJfQogCiBlcnJfcnFfd3FfZGVzdHJveToKLQlpZiAo cnEtPnhkcF9wcm9nKQotCQlicGZfcHJvZ19wdXQocnEtPnhkcF9wcm9nKTsKKwlpZiAocGFyYW1z LT54ZHBfcHJvZykKKwkJYnBmX3Byb2dfcHV0KHBhcmFtcy0+eGRwX3Byb2cpOwogCXhkcF9yeHFf aW5mb191bnJlZygmcnEtPnhkcF9yeHEpOwogCXBhZ2VfcG9vbF9kZXN0cm95KHJxLT5wYWdlX3Bv b2wpOwogCW1seDVfd3FfZGVzdHJveSgmcnEtPndxX2N0cmwpOwpAQCAtNjE2LDEwICs2MTYsMTYg QEAgc3RhdGljIGludCBtbHg1ZV9hbGxvY19ycShzdHJ1Y3QgbWx4NWVfY2hhbm5lbCAqYywKIAog c3RhdGljIHZvaWQgbWx4NWVfZnJlZV9ycShzdHJ1Y3QgbWx4NWVfcnEgKnJxKQogeworCXN0cnVj dCBtbHg1ZV9jaGFubmVsICpjID0gcnEtPmNoYW5uZWw7CisJc3RydWN0IGJwZl9wcm9nICpvbGRf cHJvZyA9IE5VTEw7CiAJaW50IGk7CiAKLQlpZiAocnEtPnhkcF9wcm9nKQotCQlicGZfcHJvZ19w dXQocnEtPnhkcF9wcm9nKTsKKwkvKiBkcm9wX3JxIGhhcyBuZWl0aGVyIGNoYW5uZWwgbm9yIHhk cF9wcm9nLiAqLworCWlmIChjKQorCQlvbGRfcHJvZyA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0 ZWQocnEtPnhkcF9wcm9nLAorCQkJCQkJICAgICBsb2NrZGVwX2lzX2hlbGQoJmMtPnByaXYtPnN0 YXRlX2xvY2spKTsKKwlpZiAob2xkX3Byb2cpCisJCWJwZl9wcm9nX3B1dChvbGRfcHJvZyk7CiAK IAlzd2l0Y2ggKHJxLT53cV90eXBlKSB7CiAJY2FzZSBNTFg1X1dRX1RZUEVfTElOS0VEX0xJU1Rf U1RSSURJTkdfUlE6CkBAIC00NDIzLDYgKzQ0MjksMTYgQEAgc3RhdGljIGludCBtbHg1ZV94ZHBf YWxsb3dlZChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgc3RydWN0IGJwZl9wcm9nICpwcm9nKQog CXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBtbHg1ZV9ycV9yZXBsYWNlX3hkcF9wcm9nKHN0 cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBicGZfcHJvZyAqcHJvZykKK3sKKwlzdHJ1Y3QgYnBm X3Byb2cgKm9sZF9wcm9nOworCisJb2xkX3Byb2cgPSByY3VfcmVwbGFjZV9wb2ludGVyKHJxLT54 ZHBfcHJvZywgcHJvZywKKwkJCQkgICAgICAgbG9ja2RlcF9pc19oZWxkKCZycS0+Y2hhbm5lbC0+ cHJpdi0+c3RhdGVfbG9jaykpOworCWlmIChvbGRfcHJvZykKKwkJYnBmX3Byb2dfcHV0KG9sZF9w cm9nKTsKK30KKwogc3RhdGljIGludCBtbHg1ZV94ZHBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpu ZXRkZXYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZykKIHsKIAlzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJp diA9IG5ldGRldl9wcml2KG5ldGRldik7CkBAIC00NDgxLDI5ICs0NDk3LDEwIEBAIHN0YXRpYyBp bnQgbWx4NWVfeGRwX3NldChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3QgYnBmX3By b2cgKnByb2cpCiAJICovCiAJZm9yIChpID0gMDsgaSA8IHByaXYtPmNoYW5uZWxzLm51bTsgaSsr KSB7CiAJCXN0cnVjdCBtbHg1ZV9jaGFubmVsICpjID0gcHJpdi0+Y2hhbm5lbHMuY1tpXTsKLQkJ Ym9vbCB4c2tfb3BlbiA9IHRlc3RfYml0KE1MWDVFX0NIQU5ORUxfU1RBVEVfWFNLLCBjLT5zdGF0 ZSk7Ci0KLQkJY2xlYXJfYml0KE1MWDVFX1JRX1NUQVRFX0VOQUJMRUQsICZjLT5ycS5zdGF0ZSk7 Ci0JCWlmICh4c2tfb3BlbikKLQkJCWNsZWFyX2JpdChNTFg1RV9SUV9TVEFURV9FTkFCTEVELCAm Yy0+eHNrcnEuc3RhdGUpOwotCQluYXBpX3N5bmNocm9uaXplKCZjLT5uYXBpKTsKLQkJLyogcHJl dmVudCBtbHg1ZV9wb2xsX3J4X2NxIGZyb20gYWNjZXNzaW5nIHJxLT54ZHBfcHJvZyAqLwotCi0J CW9sZF9wcm9nID0geGNoZygmYy0+cnEueGRwX3Byb2csIHByb2cpOwotCQlpZiAob2xkX3Byb2cp Ci0JCQlicGZfcHJvZ19wdXQob2xkX3Byb2cpOwotCi0JCWlmICh4c2tfb3BlbikgewotCQkJb2xk X3Byb2cgPSB4Y2hnKCZjLT54c2tycS54ZHBfcHJvZywgcHJvZyk7Ci0JCQlpZiAob2xkX3Byb2cp Ci0JCQkJYnBmX3Byb2dfcHV0KG9sZF9wcm9nKTsKLQkJfQogCi0JCXNldF9iaXQoTUxYNUVfUlFf U1RBVEVfRU5BQkxFRCwgJmMtPnJxLnN0YXRlKTsKLQkJaWYgKHhza19vcGVuKQotCQkJc2V0X2Jp dChNTFg1RV9SUV9TVEFURV9FTkFCTEVELCAmYy0+eHNrcnEuc3RhdGUpOwotCQkvKiBuYXBpX3Nj aGVkdWxlIGluIGNhc2Ugd2UgaGF2ZSBtaXNzZWQgYW55dGhpbmcgKi8KLQkJbmFwaV9zY2hlZHVs ZSgmYy0+bmFwaSk7CisJCW1seDVlX3JxX3JlcGxhY2VfeGRwX3Byb2coJmMtPnJxLCBwcm9nKTsK KwkJaWYgKHRlc3RfYml0KE1MWDVFX0NIQU5ORUxfU1RBVEVfWFNLLCBjLT5zdGF0ZSkpCisJCQlt bHg1ZV9ycV9yZXBsYWNlX3hkcF9wcm9nKCZjLT54c2tycSwgcHJvZyk7CiAJfQogCiB1bmxvY2s6 Ci0tIAoyLjI2LjIKCgpGcm9tIDBhYzYxYzI4ZjJjOGJiOWRkMTU3YWNiYTlhM2Q3NTY2MDg4YTJl MDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1heGltIE1pa2l0eWFuc2tpeSA8bWF4 aW1taUBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwgMTEgSnVuIDIwMjAgMTQ6MjU6MTkgKzAzMDAK U3ViamVjdDogW1BBVENIIDUzLzU0XSBuZXQvbWx4NWU6IFVzZSBzeW5jaHJvbml6ZV9yY3UgdG8g c3luYyB3aXRoIE5BUEkKClsgVXBzdHJlYW0gY29tbWl0IDljMjVhMjJkZmIwMDI3MDM3MjIyNDcy MWZlZDY0Njk2NTQyMDMyM2EgXQoKQXMgZGVzY3JpYmVkIGluIHRoZSBwcmV2aW91cyBjb21taXQs IG5hcGlfc3luY2hyb25pemUgZG9lc24ndCBxdWl0ZSBmaXQKdGhlIHB1cnBvc2Ugd2hlbiB3ZSBq dXN0IG5lZWQgdG8gd2FpdCB1bnRpbCB0aGUgY3VycmVudGx5IHJ1bm5pbmcgTkFQSQpxdWl0cy4g SXRzIGltcGxlbWVudGF0aW9uIHdhaXRzIHVudGlsIE5BUEkgaXMgbm90IHJ1bm5pbmcgYnkgcG9s bGluZyBhbmQKd2FpdGluZyBmb3IgMW1zIGluIGJldHdlZW4uIEluIGNhc2VzIHdoZXJlIHdlIG5l ZWQgdG8gZGVhY3RpdmF0ZSBvbmUKcXVldWUgKGUuZy4sIHJlY292ZXJ5IGZsb3dzKSBvciB3aGVy ZSB3ZSBkZWFjdGl2YXRlIHRoZW0gb25lLWJ5LW9uZQooZGVhY3RpdmF0ZSBjaGFubmVsIGZsb3cp LCB3ZSBtYXkgZ2V0IHN0dWNrIGluIG5hcGlfc3luY2hyb25pemUgZm9yZXZlcgppZiBvdGhlciBx dWV1ZXMga2VlcCBOQVBJIGFjdGl2ZSwgY2F1c2luZyBhIHNvZnQgbG9ja3VwLiBEZXBlbmRpbmcg b24Ka2VybmVsIGNvbmZpZ3VyYXRpb24gKENPTkZJR19CT09UUEFSQU1fU09GVExPQ0tVUF9QQU5J QyksIGl0IG1heSByZXN1bHQKaW4gYSBrZXJuZWwgcGFuaWMuCgpUbyBmaXggdGhlIGlzc3VlLCB1 c2Ugc3luY2hyb25pemVfcmN1IHRvIHdhaXQgZm9yIE5BUEkgdG8gcXVpdCwgYW5kIHdyYXAKdGhl IHdob2xlIE5BUEkgaW4gcmN1X3JlYWRfbG9jay4KCkZpeGVzOiBhY2M2YzU5NTNhZjEgKCJuZXQv bWx4NWU6IFNwbGl0IG9wZW4vY2xvc2UgY2hhbm5lbHMgdG8gc3RhZ2VzIikKU2lnbmVkLW9mZi1i eTogTWF4aW0gTWlraXR5YW5za2l5IDxtYXhpbW1pQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6 IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQg TWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW4veHNrL3J4LmMgfCAxNCArKy0tLS0tLS0tLS0tLQogLi4uL2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbi94c2svc2V0dXAuYyAgfCAgMyArLS0KIC4uLi9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyAgIHwgMTIgKysrKy0tLS0tLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYyB8IDEyICsr LS0tLS0tLS0tLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5j ICAgfCAxNyArKysrKysrKysrKysrLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25z KCspLCAzNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW4veHNrL3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW4veHNrL3J4LmMKaW5kZXggYTMzYTFmNzYyYzcwLi40MGRiMjdiZjc5 MGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bi94c2svcnguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW4veHNrL3J4LmMKQEAgLTMxLDcgKzMxLDYgQEAgc3RydWN0IHNrX2J1ZmYgKm1seDVlX3hza19z a2JfZnJvbV9jcWVfbXB3cnFfbGluZWFyKHN0cnVjdCBtbHg1ZV9ycSAqcnEsCiB7CiAJc3RydWN0 IHhkcF9idWZmICp4ZHAgPSB3aS0+dW1yLmRtYV9pbmZvW3BhZ2VfaWR4XS54c2s7CiAJdTMyIGNx ZV9iY250MzIgPSBjcWVfYmNudDsKLQlib29sIGNvbnN1bWVkOwogCiAJLyogQ2hlY2sgcGFja2V0 IHNpemUuIE5vdGUgTFJPIGRvZXNuJ3QgdXNlIGxpbmVhciBTS0IgKi8KIAlpZiAodW5saWtlbHko Y3FlX2JjbnQgPiBycS0+aHdfbXR1KSkgewpAQCAtNTEsMTAgKzUwLDYgQEAgc3RydWN0IHNrX2J1 ZmYgKm1seDVlX3hza19za2JfZnJvbV9jcWVfbXB3cnFfbGluZWFyKHN0cnVjdCBtbHg1ZV9ycSAq cnEsCiAJeHNrX2J1ZmZfZG1hX3N5bmNfZm9yX2NwdSh4ZHApOwogCXByZWZldGNoKHhkcC0+ZGF0 YSk7CiAKLQlyY3VfcmVhZF9sb2NrKCk7Ci0JY29uc3VtZWQgPSBtbHg1ZV94ZHBfaGFuZGxlKHJx LCBOVUxMLCAmY3FlX2JjbnQzMiwgeGRwKTsKLQlyY3VfcmVhZF91bmxvY2soKTsKLQogCS8qIFBv c3NpYmxlIGZsb3dzOgogCSAqIC0gWERQX1JFRElSRUNUIHRvIFhTS01BUDoKIAkgKiAgIFRoZSBw YWdlIGlzIG93bmVkIGJ5IHRoZSB1c2Vyc3BhY2UgZnJvbSBub3cuCkBAIC03MCw3ICs2NSw3IEBA IHN0cnVjdCBza19idWZmICptbHg1ZV94c2tfc2tiX2Zyb21fY3FlX21wd3JxX2xpbmVhcihzdHJ1 Y3QgbWx4NWVfcnEgKnJxLAogCSAqIGFsbG9jYXRlZCBmaXJzdCBmcm9tIHRoZSBSZXVzZSBSaW5n LCBzbyBpdCBoYXMgZW5vdWdoIHNwYWNlLgogCSAqLwogCi0JaWYgKGxpa2VseShjb25zdW1lZCkp IHsKKwlpZiAobGlrZWx5KG1seDVlX3hkcF9oYW5kbGUocnEsIE5VTEwsICZjcWVfYmNudDMyLCB4 ZHApKSkgewogCQlpZiAobGlrZWx5KF9fdGVzdF9hbmRfY2xlYXJfYml0KE1MWDVFX1JRX0ZMQUdf WERQX1hNSVQsIHJxLT5mbGFncykpKQogCQkJX19zZXRfYml0KHBhZ2VfaWR4LCB3aS0+eGRwX3ht aXRfYml0bWFwKTsgLyogbm9uLWF0b21pYyAqLwogCQlyZXR1cm4gTlVMTDsgLyogcGFnZS9wYWNr ZXQgd2FzIGNvbnN1bWVkIGJ5IFhEUCAqLwpAQCAtODgsNyArODMsNiBAQCBzdHJ1Y3Qgc2tfYnVm ZiAqbWx4NWVfeHNrX3NrYl9mcm9tX2NxZV9saW5lYXIoc3RydWN0IG1seDVlX3JxICpycSwKIAkJ CQkJICAgICAgdTMyIGNxZV9iY250KQogewogCXN0cnVjdCB4ZHBfYnVmZiAqeGRwID0gd2ktPmRp LT54c2s7Ci0JYm9vbCBjb25zdW1lZDsKIAogCS8qIHdpLT5vZmZzZXQgaXMgbm90IHVzZWQgaW4g dGhpcyBmdW5jdGlvbiwgYmVjYXVzZSB4ZHAtPmRhdGEgYW5kIHRoZQogCSAqIERNQSBhZGRyZXNz IHBvaW50IGRpcmVjdGx5IHRvIHRoZSBuZWNlc3NhcnkgcGxhY2UuIEZ1cnRoZXJtb3JlLCB0aGUK QEAgLTEwNywxMSArMTAxLDcgQEAgc3RydWN0IHNrX2J1ZmYgKm1seDVlX3hza19za2JfZnJvbV9j cWVfbGluZWFyKHN0cnVjdCBtbHg1ZV9ycSAqcnEsCiAJCXJldHVybiBOVUxMOwogCX0KIAotCXJj dV9yZWFkX2xvY2soKTsKLQljb25zdW1lZCA9IG1seDVlX3hkcF9oYW5kbGUocnEsIE5VTEwsICZj cWVfYmNudCwgeGRwKTsKLQlyY3VfcmVhZF91bmxvY2soKTsKLQotCWlmIChsaWtlbHkoY29uc3Vt ZWQpKQorCWlmIChsaWtlbHkobWx4NWVfeGRwX2hhbmRsZShycSwgTlVMTCwgJmNxZV9iY250LCB4 ZHApKSkKIAkJcmV0dXJuIE5VTEw7IC8qIHBhZ2UvcGFja2V0IHdhcyBjb25zdW1lZCBieSBYRFAg Ki8KIAogCS8qIFhEUF9QQVNTOiBjb3B5IHRoZSBkYXRhIGZyb20gdGhlIFVNRU0gdG8gYSBuZXcg U0tCLiBUaGUgZnJhbWUgcmV1c2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbi94c2svc2V0dXAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbi94c2svc2V0dXAuYwppbmRleCAyYzgwMjA1ZGM5MzkuLjMwODFj ZDc0ZDY1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuL3hzay9zZXR1cC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbi94c2svc2V0dXAuYwpAQCAtMTQzLDggKzE0Myw3IEBAIGludCBtbHg1ZV9vcGVu X3hzayhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgc3RydWN0IG1seDVlX3BhcmFtcyAqcGFyYW1z LAogdm9pZCBtbHg1ZV9jbG9zZV94c2soc3RydWN0IG1seDVlX2NoYW5uZWwgKmMpCiB7CiAJY2xl YXJfYml0KE1MWDVFX0NIQU5ORUxfU1RBVEVfWFNLLCBjLT5zdGF0ZSk7Ci0JbmFwaV9zeW5jaHJv bml6ZSgmYy0+bmFwaSk7Ci0Jc3luY2hyb25pemVfcmN1KCk7IC8qIFN5bmMgd2l0aCB0aGUgWFNL IHdha2V1cC4gKi8KKwlzeW5jaHJvbml6ZV9yY3UoKTsgLyogU3luYyB3aXRoIHRoZSBYU0sgd2Fr ZXVwIGFuZCB3aXRoIE5BUEkuICovCiAKIAltbHg1ZV9jbG9zZV9ycSgmYy0+eHNrcnEpOwogCW1s eDVlX2Nsb3NlX2NxKCZjLT54c2tycS5jcSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwppbmRleCAzZTE0MzRmYjE2NmUuLmNjY2Y2NWZj MTE2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fbWFpbi5jCkBAIC05MTEsNyArOTExLDcgQEAgdm9pZCBtbHg1ZV9hY3RpdmF0ZV9ycShzdHJ1 Y3QgbWx4NWVfcnEgKnJxKQogdm9pZCBtbHg1ZV9kZWFjdGl2YXRlX3JxKHN0cnVjdCBtbHg1ZV9y cSAqcnEpCiB7CiAJY2xlYXJfYml0KE1MWDVFX1JRX1NUQVRFX0VOQUJMRUQsICZycS0+c3RhdGUp OwotCW5hcGlfc3luY2hyb25pemUoJnJxLT5jaGFubmVsLT5uYXBpKTsgLyogcHJldmVudCBtbHg1 ZV9wb3N0X3J4X3dxZXMgKi8KKwlzeW5jaHJvbml6ZV9yY3UoKTsgLyogU3luYyB3aXRoIE5BUEkg dG8gcHJldmVudCBtbHg1ZV9wb3N0X3J4X3dxZXMuICovCiB9CiAKIHZvaWQgbWx4NWVfY2xvc2Vf cnEoc3RydWN0IG1seDVlX3JxICpycSkKQEAgLTEzNTYsMTIgKzEzNTYsMTAgQEAgdm9pZCBtbHg1 ZV90eF9kaXNhYmxlX3F1ZXVlKHN0cnVjdCBuZXRkZXZfcXVldWUgKnR4cSkKIAogc3RhdGljIHZv aWQgbWx4NWVfZGVhY3RpdmF0ZV90eHFzcShzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxKQogewotCXN0 cnVjdCBtbHg1ZV9jaGFubmVsICpjID0gc3EtPmNoYW5uZWw7CiAJc3RydWN0IG1seDVfd3FfY3lj ICp3cSA9ICZzcS0+d3E7CiAKIAljbGVhcl9iaXQoTUxYNUVfU1FfU1RBVEVfRU5BQkxFRCwgJnNx LT5zdGF0ZSk7Ci0JLyogcHJldmVudCBuZXRpZl90eF93YWtlX3F1ZXVlICovCi0JbmFwaV9zeW5j aHJvbml6ZSgmYy0+bmFwaSk7CisJc3luY2hyb25pemVfcmN1KCk7IC8qIFN5bmMgd2l0aCBOQVBJ IHRvIHByZXZlbnQgbmV0aWZfdHhfd2FrZV9xdWV1ZS4gKi8KIAogCW1seDVlX3R4X2Rpc2FibGVf cXVldWUoc3EtPnR4cSk7CiAKQEAgLTE0MzYsMTAgKzE0MzQsOCBAQCB2b2lkIG1seDVlX2FjdGl2 YXRlX2ljb3NxKHN0cnVjdCBtbHg1ZV9pY29zcSAqaWNvc3EpCiAKIHZvaWQgbWx4NWVfZGVhY3Rp dmF0ZV9pY29zcShzdHJ1Y3QgbWx4NWVfaWNvc3EgKmljb3NxKQogewotCXN0cnVjdCBtbHg1ZV9j aGFubmVsICpjID0gaWNvc3EtPmNoYW5uZWw7Ci0KIAljbGVhcl9iaXQoTUxYNUVfU1FfU1RBVEVf RU5BQkxFRCwgJmljb3NxLT5zdGF0ZSk7Ci0JbmFwaV9zeW5jaHJvbml6ZSgmYy0+bmFwaSk7CisJ c3luY2hyb25pemVfcmN1KCk7IC8qIFN5bmMgd2l0aCBOQVBJLiAqLwogfQogCiB2b2lkIG1seDVl X2Nsb3NlX2ljb3NxKHN0cnVjdCBtbHg1ZV9pY29zcSAqc3EpCkBAIC0xNTE3LDcgKzE1MTMsNyBA QCB2b2lkIG1seDVlX2Nsb3NlX3hkcHNxKHN0cnVjdCBtbHg1ZV94ZHBzcSAqc3EpCiAJc3RydWN0 IG1seDVlX2NoYW5uZWwgKmMgPSBzcS0+Y2hhbm5lbDsKIAogCWNsZWFyX2JpdChNTFg1RV9TUV9T VEFURV9FTkFCTEVELCAmc3EtPnN0YXRlKTsKLQluYXBpX3N5bmNocm9uaXplKCZjLT5uYXBpKTsK KwlzeW5jaHJvbml6ZV9yY3UoKTsgLyogU3luYyB3aXRoIE5BUEkuICovCiAKIAltbHg1ZV9kZXN0 cm95X3NxKGMtPm1kZXYsIHNxLT5zcW4pOwogCW1seDVlX2ZyZWVfeGRwc3FfZGVzY3Moc3EpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4 LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYwppbmRl eCBkYmIxYzYzMjM5NjcuLjQwOWZlY2JjYzVkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMKQEAgLTEwNzIsNyArMTA3Miw2IEBAIG1seDVl X3NrYl9mcm9tX2NxZV9saW5lYXIoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVfY3Fl NjQgKmNxZSwKIAlzdHJ1Y3QgeGRwX2J1ZmYgeGRwOwogCXN0cnVjdCBza19idWZmICpza2I7CiAJ dm9pZCAqdmEsICpkYXRhOwotCWJvb2wgY29uc3VtZWQ7CiAJdTMyIGZyYWdfc2l6ZTsKIAogCXZh ICAgICAgICAgICAgID0gcGFnZV9hZGRyZXNzKGRpLT5wYWdlKSArIHdpLT5vZmZzZXQ7CkBAIC0x MDg0LDExICsxMDgzLDggQEAgbWx4NWVfc2tiX2Zyb21fY3FlX2xpbmVhcihzdHJ1Y3QgbWx4NWVf cnEgKnJxLCBzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLAogCXByZWZldGNodyh2YSk7IC8qIHhkcF9m cmFtZSBkYXRhIGFyZWEgKi8KIAlwcmVmZXRjaChkYXRhKTsKIAotCXJjdV9yZWFkX2xvY2soKTsK IAltbHg1ZV9maWxsX3hkcF9idWZmKHJxLCB2YSwgcnhfaGVhZHJvb20sIGNxZV9iY250LCAmeGRw KTsKLQljb25zdW1lZCA9IG1seDVlX3hkcF9oYW5kbGUocnEsIGRpLCAmY3FlX2JjbnQsICZ4ZHAp OwotCXJjdV9yZWFkX3VubG9jaygpOwotCWlmIChjb25zdW1lZCkKKwlpZiAobWx4NWVfeGRwX2hh bmRsZShycSwgZGksICZjcWVfYmNudCwgJnhkcCkpCiAJCXJldHVybiBOVUxMOyAvKiBwYWdlL3Bh Y2tldCB3YXMgY29uc3VtZWQgYnkgWERQICovCiAKIAlyeF9oZWFkcm9vbSA9IHhkcC5kYXRhIC0g eGRwLmRhdGFfaGFyZF9zdGFydDsKQEAgLTEzNjksNyArMTM2NSw2IEBAIG1seDVlX3NrYl9mcm9t X2NxZV9tcHdycV9saW5lYXIoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVlX21wd19p bmZvICp3aSwKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwogCXZvaWQgKnZhLCAqZGF0YTsKIAl1MzIg ZnJhZ19zaXplOwotCWJvb2wgY29uc3VtZWQ7CiAKIAkvKiBDaGVjayBwYWNrZXQgc2l6ZS4gTm90 ZSBMUk8gZG9lc24ndCB1c2UgbGluZWFyIFNLQiAqLwogCWlmICh1bmxpa2VseShjcWVfYmNudCA+ IHJxLT5od19tdHUpKSB7CkBAIC0xMzg2LDExICsxMzgxLDggQEAgbWx4NWVfc2tiX2Zyb21fY3Fl X21wd3JxX2xpbmVhcihzdHJ1Y3QgbWx4NWVfcnEgKnJxLCBzdHJ1Y3QgbWx4NWVfbXB3X2luZm8g KndpLAogCXByZWZldGNodyh2YSk7IC8qIHhkcF9mcmFtZSBkYXRhIGFyZWEgKi8KIAlwcmVmZXRj aChkYXRhKTsKIAotCXJjdV9yZWFkX2xvY2soKTsKIAltbHg1ZV9maWxsX3hkcF9idWZmKHJxLCB2 YSwgcnhfaGVhZHJvb20sIGNxZV9iY250MzIsICZ4ZHApOwotCWNvbnN1bWVkID0gbWx4NWVfeGRw X2hhbmRsZShycSwgZGksICZjcWVfYmNudDMyLCAmeGRwKTsKLQlyY3VfcmVhZF91bmxvY2soKTsK LQlpZiAoY29uc3VtZWQpIHsKKwlpZiAobWx4NWVfeGRwX2hhbmRsZShycSwgZGksICZjcWVfYmNu dDMyLCAmeGRwKSkgewogCQlpZiAoX190ZXN0X2FuZF9jbGVhcl9iaXQoTUxYNUVfUlFfRkxBR19Y RFBfWE1JVCwgcnEtPmZsYWdzKSkKIAkJCV9fc2V0X2JpdChwYWdlX2lkeCwgd2ktPnhkcF94bWl0 X2JpdG1hcCk7IC8qIG5vbi1hdG9taWMgKi8KIAkJcmV0dXJuIE5VTEw7IC8qIHBhZ2UvcGFja2V0 IHdhcyBjb25zdW1lZCBieSBYRFAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl90eHJ4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jCmluZGV4IDg0ODAyNzhmMmVlMi4uOTU0YTJmMDUxM2Q2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5f dHhyeC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90 eHJ4LmMKQEAgLTEyMSwxMyArMTIxLDE3IEBAIGludCBtbHg1ZV9uYXBpX3BvbGwoc3RydWN0IG5h cGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQogCXN0cnVjdCBtbHg1ZV94ZHBzcSAqeHNrc3Eg PSAmYy0+eHNrc3E7CiAJc3RydWN0IG1seDVlX3JxICp4c2tycSA9ICZjLT54c2tycTsKIAlzdHJ1 Y3QgbWx4NWVfcnEgKnJxID0gJmMtPnJxOwotCWJvb2wgeHNrX29wZW4gPSB0ZXN0X2JpdChNTFg1 RV9DSEFOTkVMX1NUQVRFX1hTSywgYy0+c3RhdGUpOwogCWJvb2wgYWZmX2NoYW5nZSA9IGZhbHNl OwogCWJvb2wgYnVzeV94c2sgPSBmYWxzZTsKIAlib29sIGJ1c3kgPSBmYWxzZTsKIAlpbnQgd29y a19kb25lID0gMDsKKwlib29sIHhza19vcGVuOwogCWludCBpOwogCisJcmN1X3JlYWRfbG9jaygp OworCisJeHNrX29wZW4gPSB0ZXN0X2JpdChNTFg1RV9DSEFOTkVMX1NUQVRFX1hTSywgYy0+c3Rh dGUpOworCiAJY2hfc3RhdHMtPnBvbGwrKzsKIAogCWZvciAoaSA9IDA7IGkgPCBjLT5udW1fdGM7 IGkrKykKQEAgLTE2Nyw4ICsxNzEsMTAgQEAgaW50IG1seDVlX25hcGlfcG9sbChzdHJ1Y3QgbmFw aV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAJYnVzeSB8PSBidXN5X3hzazsKIAogCWlmIChi dXN5KSB7Ci0JCWlmIChsaWtlbHkobWx4NWVfY2hhbm5lbF9ub19hZmZpbml0eV9jaGFuZ2UoYykp KQotCQkJcmV0dXJuIGJ1ZGdldDsKKwkJaWYgKGxpa2VseShtbHg1ZV9jaGFubmVsX25vX2FmZmlu aXR5X2NoYW5nZShjKSkpIHsKKwkJCXdvcmtfZG9uZSA9IGJ1ZGdldDsKKwkJCWdvdG8gb3V0Owor CQl9CiAJCWNoX3N0YXRzLT5hZmZfY2hhbmdlKys7CiAJCWFmZl9jaGFuZ2UgPSB0cnVlOwogCQlp ZiAoYnVkZ2V0ICYmIHdvcmtfZG9uZSA9PSBidWRnZXQpCkBAIC0xNzYsNyArMTgyLDcgQEAgaW50 IG1seDVlX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAJ fQogCiAJaWYgKHVubGlrZWx5KCFuYXBpX2NvbXBsZXRlX2RvbmUobmFwaSwgd29ya19kb25lKSkp Ci0JCXJldHVybiB3b3JrX2RvbmU7CisJCWdvdG8gb3V0OwogCiAJY2hfc3RhdHMtPmFybSsrOwog CkBAIC0yMDMsNiArMjA5LDkgQEAgaW50IG1seDVlX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1 Y3QgKm5hcGksIGludCBidWRnZXQpCiAJCWNoX3N0YXRzLT5mb3JjZV9pcnErKzsKIAl9CiAKK291 dDoKKwlyY3VfcmVhZF91bmxvY2soKTsKKwogCXJldHVybiB3b3JrX2RvbmU7CiB9CiAKLS0gCjIu MjYuMgoKCkZyb20gZjJjYjM4YWIzZDA5M2JmOWM2YzBlNmE2ZmYxOTE4MzdmOWUyNjk1ZCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFvciBEaWNrbWFuIDxtYW9yZEBudmlkaWEuY29t PgpEYXRlOiBXZWQsIDIgU2VwIDIwMjAgMTY6NDk6NTIgKzAzMDAKU3ViamVjdDogW1BBVENIIDU0 LzU0XSBuZXQvbWx4NWU6IEZpeCBlbmRpYW5uZXNzIHdoZW4gY2FsY3VsYXRpbmcgcGVkaXQgbWFz awogZmlyc3QgYml0CgpbIFVwc3RyZWFtIGNvbW1pdCA4MjE5OGQ4YmNkZWZmMDFkMTkyMTVkNzEy YWE1NTAzMWUyMWJjY2JjIF0KClRoZSBmaWVsZCBtYXNrIHZhbHVlIGlzIHByb3ZpZGVkIGluIG5l dHdvcmsgYnl0ZSBvcmRlciBhbmQgaGFzIHRvCmJlIGNvbnZlcnRlZCB0byBob3N0IGJ5dGUgb3Jk ZXIgYmVmb3JlIGNhbGN1bGF0aW5nIHBlZGl0IG1hc2sKZmlyc3QgYml0LgoKRml4ZXM6IDg4ZjMw YmJjYmFhYSAoIm5ldC9tbHg1ZTogQml0IHNpemVkIGZpZWxkcyByZXdyaXRlIHN1cHBvcnQiKQpT aWduZWQtb2ZmLWJ5OiBNYW9yIERpY2ttYW4gPG1hb3JkQG52aWRpYS5jb20+ClJldmlld2VkLWJ5 OiBSb2kgRGF5YW4gPHJvaWRAbnZpZGlhLmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1l ZWQgPHNhZWVkbUBudmlkaWEuY29tPgotLS0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuX3RjLmMgICB8IDM0ICsrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyMSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jCmluZGV4IGYxNzAxZWU0NjE5Yi4uN2Rh MWU3NDYyZjY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fdGMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fdGMuYwpAQCAtMjczMSw2ICsyNzMxLDIyIEBAIHN0YXRpYyBzdHJ1Y3QgbWx4NV9maWVs ZHMgZmllbGRzW10gPSB7CiAJT0ZGTE9BRChVRFBfRFBPUlQsIDE2LCBVMTZfTUFYLCB1ZHAuZGVz dCwgICAwLCB1ZHBfZHBvcnQpLAogfTsKIAorc3RhdGljIHVuc2lnbmVkIGxvbmcgbWFza190b19s ZSh1bnNpZ25lZCBsb25nIG1hc2ssIGludCBzaXplKQoreworCV9fYmUzMiBtYXNrX2JlMzI7CisJ X19iZTE2IG1hc2tfYmUxNjsKKworCWlmIChzaXplID09IDMyKSB7CisJCW1hc2tfYmUzMiA9IChf X2ZvcmNlIF9fYmUzMikobWFzayk7CisJCW1hc2sgPSAoX19mb3JjZSB1bnNpZ25lZCBsb25nKWNw dV90b19sZTMyKGJlMzJfdG9fY3B1KG1hc2tfYmUzMikpOworCX0gZWxzZSBpZiAoc2l6ZSA9PSAx NikgeworCQltYXNrX2JlMzIgPSAoX19mb3JjZSBfX2JlMzIpKG1hc2spOworCQltYXNrX2JlMTYg PSAqKF9fYmUxNiAqKSZtYXNrX2JlMzI7CisJCW1hc2sgPSAoX19mb3JjZSB1bnNpZ25lZCBsb25n KWNwdV90b19sZTE2KGJlMTZfdG9fY3B1KG1hc2tfYmUxNikpOworCX0KKworCXJldHVybiBtYXNr OworfQogc3RhdGljIGludCBvZmZsb2FkX3BlZGl0X2ZpZWxkcyhzdHJ1Y3QgbWx4NWVfcHJpdiAq cHJpdiwKIAkJCQlpbnQgbmFtZXNwYWNlLAogCQkJCXN0cnVjdCBwZWRpdF9oZWFkZXJzX2FjdGlv biAqaGRycywKQEAgLTI3NDQsOSArMjc2MCw3IEBAIHN0YXRpYyBpbnQgb2ZmbG9hZF9wZWRpdF9m aWVsZHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJdTMyICpzX21hc2tzX3AsICphX21hc2tz X3AsIHNfbWFzaywgYV9tYXNrOwogCXN0cnVjdCBtbHg1ZV90Y19tb2RfaGRyX2FjdHMgKm1vZF9h Y3RzOwogCXN0cnVjdCBtbHg1X2ZpZWxkcyAqZjsKLQl1bnNpZ25lZCBsb25nIG1hc2s7Ci0JX19i ZTMyIG1hc2tfYmUzMjsKLQlfX2JlMTYgbWFza19iZTE2OworCXVuc2lnbmVkIGxvbmcgbWFzaywg ZmllbGRfbWFzazsKIAlpbnQgZXJyOwogCXU4IGNtZDsKIApAQCAtMjgxMiwxNCArMjgyNiw3IEBA IHN0YXRpYyBpbnQgb2ZmbG9hZF9wZWRpdF9maWVsZHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYs CiAJCWlmIChza2lwKQogCQkJY29udGludWU7CiAKLQkJaWYgKGYtPmZpZWxkX2JzaXplID09IDMy KSB7Ci0JCQltYXNrX2JlMzIgPSAoX19mb3JjZSBfX2JlMzIpKG1hc2spOwotCQkJbWFzayA9IChf X2ZvcmNlIHVuc2lnbmVkIGxvbmcpY3B1X3RvX2xlMzIoYmUzMl90b19jcHUobWFza19iZTMyKSk7 Ci0JCX0gZWxzZSBpZiAoZi0+ZmllbGRfYnNpemUgPT0gMTYpIHsKLQkJCW1hc2tfYmUzMiA9IChf X2ZvcmNlIF9fYmUzMikobWFzayk7Ci0JCQltYXNrX2JlMTYgPSAqKF9fYmUxNiAqKSZtYXNrX2Jl MzI7Ci0JCQltYXNrID0gKF9fZm9yY2UgdW5zaWduZWQgbG9uZyljcHVfdG9fbGUxNihiZTE2X3Rv X2NwdShtYXNrX2JlMTYpKTsKLQkJfQorCQltYXNrID0gbWFza190b19sZShtYXNrLCBmLT5maWVs ZF9ic2l6ZSk7CiAKIAkJZmlyc3QgPSBmaW5kX2ZpcnN0X2JpdCgmbWFzaywgZi0+ZmllbGRfYnNp emUpOwogCQluZXh0X3ogPSBmaW5kX25leHRfemVyb19iaXQoJm1hc2ssIGYtPmZpZWxkX2JzaXpl LCBmaXJzdCk7CkBAIC0yODUwLDkgKzI4NTcsMTAgQEAgc3RhdGljIGludCBvZmZsb2FkX3BlZGl0 X2ZpZWxkcyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAkJaWYgKGNtZCA9PSBNTFg1X0FDVElP Tl9UWVBFX1NFVCkgewogCQkJaW50IHN0YXJ0OwogCisJCQlmaWVsZF9tYXNrID0gbWFza190b19s ZShmLT5maWVsZF9tYXNrLCBmLT5maWVsZF9ic2l6ZSk7CisKIAkJCS8qIGlmIGZpZWxkIGlzIGJp dCBzaXplZCBpdCBjYW4gc3RhcnQgbm90IGZyb20gZmlyc3QgYml0ICovCi0JCQlzdGFydCA9IGZp bmRfZmlyc3RfYml0KCh1bnNpZ25lZCBsb25nICopJmYtPmZpZWxkX21hc2ssCi0JCQkJCSAgICAg ICBmLT5maWVsZF9ic2l6ZSk7CisJCQlzdGFydCA9IGZpbmRfZmlyc3RfYml0KCZmaWVsZF9tYXNr LCBmLT5maWVsZF9ic2l6ZSk7CiAKIAkJCU1MWDVfU0VUKHNldF9hY3Rpb25faW4sIGFjdGlvbiwg b2Zmc2V0LCBmaXJzdCAtIHN0YXJ0KTsKIAkJCS8qIGxlbmd0aCBpcyBudW0gb2YgYml0cyB0byBi ZSB3cml0dGVuLCB6ZXJvIG1lYW5zIGxlbmd0aCBvZiAzMiAqLwotLSAKMi4yNi4yCgo= ----Next_Part(Thu_Sep_24_14_40_01_2020_771)----