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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D3526C433EF for ; Tue, 15 Mar 2022 23:02:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:References: Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=Y6x44phMOc/tVOazF1hJ5oPM9bXJ7K94nQy9CCc4Rwg=; b=r4lGbhpm+Vcs50dINni8ayr0Qe 4MIP1+HMuddqPjdkE5XuSItPG1Edv2MiXhMkOFNQHTiKsWcpoEPx4cdkdvIuxup//y7P6asEPGsWS pm6ZuepEZ46vKBaDYgx7YRObjLMluzxo+95O35k+3coaAbXsV6O/HwMrsi/an7gJNtrRQnjrReoKN oqPtAiKL3mZlM0+j4PiiLEBuZDhF8fJ13QpAlfwU9fODaFz2ds5Q5NFd7RSM32A9LNkwfHjQmS9k0 l9m0qIHSGexzHW4YHgKYWV03IU/u8cp/fOkrWsA5BPPpKbsrdz5HIuOFtgFhqXbmrrqul3TNaNDoM CJO9kXYw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nUGA8-00Aoet-BF; Tue, 15 Mar 2022 23:01:08 +0000 Received: from mail-yb1-xb4a.google.com ([2607:f8b0:4864:20::b4a]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nUG9s-00AoYc-Og for linux-arm-kernel@lists.infradead.org; Tue, 15 Mar 2022 23:00:55 +0000 Received: by mail-yb1-xb4a.google.com with SMTP id p69-20020a257448000000b006295d07115bso564381ybc.14 for ; Tue, 15 Mar 2022 16:00:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc:content-transfer-encoding; bh=vBaRGjxZsQBFzjNjdJGzoL9DO1naqnkcRgODnqcqk9I=; b=byeiop3Zi8OwyAqCBbHSknU05c8GycG7UN9gLCxa90bOxr0dX3AzpUp1xL+MoBYeVs QEkBL3lq/Yqzx14561gKlu1FBfORWzfGGdo0nJUHAJ+5VD21C9FxKoV93/4wW/ICDFAl RQmmEli91nGyy4Snkjc9ej59h8Ssb0aLE2Tf4x/vP8PCmmTv9XDAsfXSFHevg62tJoQ/ JBrihOmk+BRBUQeRP9rgnzIynLEyKO/gNzj+/xTe3fZDkRvQKWQU6IbVEga6eLoR44BM PilpecZOcdBqLfOYqIF6KgPvVsag97KwRpcxCY2azAFLeuLfzaOYpP4+OgfRN3ySH3+P GjhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=vBaRGjxZsQBFzjNjdJGzoL9DO1naqnkcRgODnqcqk9I=; b=NSOxKCH1au6CU9KrJjt78YEk+Q/XdQTPdicDj2ZBtejpQUJvR0tCzKK9ek1tYZWAJA pxhoS9tZeDgKkjE/zZ2OmNp0lpEA7OVsydOWaNulBaphfpY/o68s2g1YVgYM+/CjJ/2j wWdZVsKTSkvefUDk7IUZsWO7tGXq1rDqSC+6qPCDq6Ihq735xNZqVJV9nEJba7otpy2o jqI/7ruOeN7YETTuvDAJl64EIwNc2n+stVMedX+jLrUp/H9I8mJbuJwavwTW4ve3yDGj 5t2IjStMyaqmFcPVuLrxns4M3ZREh9vlug7ioQC/2M5V8dqbxpX+LqCn+YdLF9k20Vss gYyA== X-Gm-Message-State: AOAM531eL71ZoTvZSbah3wY1Wp3bCRs7SDP8KEpwfkmoiwWvDtTdh2oc CPStVh9av3Xguj8oQPNk+LkkaZTYVg== X-Google-Smtp-Source: ABdhPJzGmlHCue0cW0jlH3wobRDVatxIVXAh9dFPb+BAgeHgAhBv+0hGEWUwD2dFKY6PNhrZTstzs/qNQw== X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a81:4008:0:b0:2dc:9575:158a with SMTP id l8-20020a814008000000b002dc9575158amr26043363ywn.157.1647385250189; Tue, 15 Mar 2022 16:00:50 -0700 (PDT) Date: Tue, 15 Mar 2022 23:00:29 +0000 In-Reply-To: <20220315230035.3792663-1-nhuck@google.com> Message-Id: <20220315230035.3792663-3-nhuck@google.com> Mime-Version: 1.0 References: <20220315230035.3792663-1-nhuck@google.com> X-Mailer: git-send-email 2.35.1.723.g4982287a31-goog Subject: [PATCH v3 2/8] crypto: polyval - Add POLYVAL support From: Nathan Huckleberry To: linux-crypto@vger.kernel.org Cc: Herbert Xu , "David S. Miller" , linux-arm-kernel@lists.infradead.org, Paul Crowley , Eric Biggers , Sami Tolvanen , Ard Biesheuvel , Nathan Huckleberry X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220315_160052_844068_E6216A8A X-CRM114-Status: GOOD ( 28.67 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org QWRkIHN1cHBvcnQgZm9yIFBPTFlWQUwsIGFuIM61Lc6ULXVuaXZlcnNhbCBoYXNoIGZ1bmN0aW9u IHNpbWlsYXIgdG8KR0hBU0guICBQT0xZVkFMIGlzIHVzZWQgYXMgYSBjb21wb25lbnQgdG8gaW1w bGVtZW50IEhDVFIyIG1vZGUuCgpQT0xZVkFMIGlzIGltcGxlbWVudGVkIGFzIGFuIHNoYXNoIGFs Z29yaXRobS4gIFRoZSBpbXBsZW1lbnRhdGlvbiBpcwptb2RpZmllZCBmcm9tIGdoYXNoLWdlbmVy aWMuYy4KCk1vcmUgaW5mb3JtYXRpb24gb24gUE9MWVZBTCBjYW4gYmUgZm91bmQgaW4gdGhlIEhD VFIyIHBhcGVyOgpodHRwczovL2VwcmludC5pYWNyLm9yZy8yMDIxLzE0NDEucGRmCgpTaWduZWQt b2ZmLWJ5OiBOYXRoYW4gSHVja2xlYmVycnkgPG5odWNrQGdvb2dsZS5jb20+Ci0tLQogY3J5cHRv L0tjb25maWcgICAgICAgICAgIHwgICA4ICsrCiBjcnlwdG8vTWFrZWZpbGUgICAgICAgICAgfCAg IDEgKwogY3J5cHRvL3BvbHl2YWwtZ2VuZXJpYy5jIHwgMjA1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogY3J5cHRvL3RjcnlwdC5jICAgICAgICAgIHwgICA0ICsKIGNy eXB0by90ZXN0bWdyLmMgICAgICAgICB8ICAgNiArKwogY3J5cHRvL3Rlc3RtZ3IuaCAgICAgICAg IHwgMTcxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2NyeXB0by9w b2x5dmFsLmggfCAgMTcgKysrKwogNyBmaWxlcyBjaGFuZ2VkLCA0MTIgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGNyeXB0by9wb2x5dmFsLWdlbmVyaWMuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IGluY2x1ZGUvY3J5cHRvL3BvbHl2YWwuaAoKZGlmZiAtLWdpdCBhL2NyeXB0by9LY29u ZmlnIGIvY3J5cHRvL0tjb25maWcKaW5kZXggNDc3NTJhYWExNmZmLi4wMDEzOTg0NWQ3NmQgMTAw NjQ0Ci0tLSBhL2NyeXB0by9LY29uZmlnCisrKyBiL2NyeXB0by9LY29uZmlnCkBAIC03NjgsNiAr NzY4LDE0IEBAIGNvbmZpZyBDUllQVE9fR0hBU0gKIAkgIEdIQVNIIGlzIHRoZSBoYXNoIGZ1bmN0 aW9uIHVzZWQgaW4gR0NNIChHYWxvaXMvQ291bnRlciBNb2RlKS4KIAkgIEl0IGlzIG5vdCBhIGdl bmVyYWwtcHVycG9zZSBjcnlwdG9ncmFwaGljIGhhc2ggZnVuY3Rpb24uCiAKK2NvbmZpZyBDUllQ VE9fUE9MWVZBTAorCXRyaXN0YXRlCisJc2VsZWN0IENSWVBUT19HRjEyOE1VTAorCXNlbGVjdCBD UllQVE9fSEFTSAorCWhlbHAKKwkgIFBPTFlWQUwgaXMgdGhlIGhhc2ggZnVuY3Rpb24gdXNlZCBp biBIQ1RSMi4gIEl0IGlzIG5vdCBhIGdlbmVyYWwtcHVycG9zZQorCSAgY3J5cHRvZ3JhcGhpYyBo YXNoIGZ1bmN0aW9uLgorCiBjb25maWcgQ1JZUFRPX1BPTFkxMzA1CiAJdHJpc3RhdGUgIlBvbHkx MzA1IGF1dGhlbnRpY2F0b3IgYWxnb3JpdGhtIgogCXNlbGVjdCBDUllQVE9fSEFTSApkaWZmIC0t Z2l0IGEvY3J5cHRvL01ha2VmaWxlIGIvY3J5cHRvL01ha2VmaWxlCmluZGV4IDZiM2ZlM2RmMTQ4 OS4uNTYxZjkwMWE5MWQ0IDEwMDY0NAotLS0gYS9jcnlwdG8vTWFrZWZpbGUKKysrIGIvY3J5cHRv L01ha2VmaWxlCkBAIC0xNjksNiArMTY5LDcgQEAgVUJTQU5fU0FOSVRJWkVfaml0dGVyZW50cm9w eS5vID0gbgogaml0dGVyZW50cm9weV9ybmcteSA6PSBqaXR0ZXJlbnRyb3B5Lm8gaml0dGVyZW50 cm9weS1rY2FwaS5vCiBvYmotJChDT05GSUdfQ1JZUFRPX1RFU1QpICs9IHRjcnlwdC5vCiBvYmot JChDT05GSUdfQ1JZUFRPX0dIQVNIKSArPSBnaGFzaC1nZW5lcmljLm8KK29iai0kKENPTkZJR19D UllQVE9fUE9MWVZBTCkgKz0gcG9seXZhbC1nZW5lcmljLm8KIG9iai0kKENPTkZJR19DUllQVE9f VVNFUl9BUEkpICs9IGFmX2FsZy5vCiBvYmotJChDT05GSUdfQ1JZUFRPX1VTRVJfQVBJX0hBU0gp ICs9IGFsZ2lmX2hhc2gubwogb2JqLSQoQ09ORklHX0NSWVBUT19VU0VSX0FQSV9TS0NJUEhFUikg Kz0gYWxnaWZfc2tjaXBoZXIubwpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BvbHl2YWwtZ2VuZXJpYy5j IGIvY3J5cHRvL3BvbHl2YWwtZ2VuZXJpYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uMmRlNThjMzE2YTc5Ci0tLSAvZGV2L251bGwKKysrIGIvY3J5cHRvL3BvbHl2 YWwtZ2VuZXJpYy5jCkBAIC0wLDAgKzEsMjA1IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMC1vbmx5CisvKgorICogUE9MWVZBTDogaGFzaCBmdW5jdGlvbiBmb3IgSENUUjIu CisgKgorICogQ29weXJpZ2h0IChjKSAyMDA3IE5va2lhIFNpZW1lbnMgTmV0d29ya3MgLSBNaWtr byBIZXJyYW5lbiA8bWgxQGlraS5maT4KKyAqIENvcHlyaWdodCAoYykgMjAwOSBJbnRlbCBDb3Jw LgorICogICBBdXRob3I6IEh1YW5nIFlpbmcgPHlpbmcuaHVhbmdAaW50ZWwuY29tPgorICogQ29w eXJpZ2h0IDIwMjEgR29vZ2xlIExMQworICovCisKKy8qCisgKiBDb2RlIGJhc2VkIG9uIGNyeXB0 by9naGFzaC1nZW5lcmljLmMKKyAqCisgKiBQT0xZVkFMIGlzIGEga2V5ZWQgaGFzaCBmdW5jdGlv biBzaW1pbGFyIHRvIEdIQVNILiBQT0xZVkFMIHVzZXMgYQorICogZGlmZmVyZW50IG1vZHVsdXMg Zm9yIGZpbml0ZSBmaWVsZCBtdWx0aXBsaWNhdGlvbiB3aGljaCBtYWtlcyBoYXJkd2FyZQorICog YWNjZWxlcmF0ZWQgaW1wbGVtZW50YXRpb25zIG9uIGxpdHRsZS1lbmRpYW4gbWFjaGluZXMgZmFz dGVyLgorICoKKyAqIExpa2UgR0hBU0gsIFBPTFlWQUwgaXMgbm90IGEgY3J5cHRvZ3JhcGhpYyBo YXNoIGZ1bmN0aW9uIGFuZCBzaG91bGQKKyAqIG5vdCBiZSB1c2VkIG91dHNpZGUgb2YgY3J5cHRv IG1vZGVzIGV4cGxpY2l0bHkgZGVzaWduZWQgdG8gdXNlIFBPTFlWQUwuCisgKgorICogVGhpcyBp bXBsZW1lbnRhdGlvbiB1c2VzIGEgY29udmVuaWVudCB0cmljayBpbnZvbHZpbmcgdGhlIEdIQVNI IGFuZCBQT0xZVkFMCisgKiBmaWVsZHMuIFRoaXMgdHJpY2sgYWxsb3dzIG11bHRpcGxpY2F0aW9u IGluIHRoZSBQT0xZVkFMIGZpZWxkIHRvIGJlCisgKiBpbXBsZW1lbnRlZCBieSB1c2luZyBtdWx0 aXBsaWNhdGlvbiBpbiB0aGUgR0hBU0ggZmllbGQgYXMgYSBzdWJyb3V0aW5lLiBBbgorICogZWxl bWVudCBvZiB0aGUgUE9MWVZBTCBmaWVsZCBjYW4gYmUgY29udmVydGVkIHRvIGFuIGVsZW1lbnQg b2YgdGhlIEdIQVNICisgKiBmaWVsZCBieSBjb21wdXRpbmcgeCpSRVZFUlNFKGEpLCB3aGVyZSBS RVZFUlNFIHJldmVyc2VzIHRoZSBieXRlLW9yZGVyaW5nIG9mCisgKiBhLiBTaW1pbGFybHksIGFu IGVsZW1lbnQgb2YgdGhlIEdIQVNIIGZpZWxkIGNhbiBiZSBjb252ZXJ0ZWQgYmFjayB0byB0aGUK KyAqIFBPTFlWQUwgZmllbGQgYnkgY29tcHV0aW5nIFJFVkVSU0UoeF57LTF9KmEpLgorICoKKyAq IEJ5IHVzaW5nIHRoaXMgdHJpY2ssIHdlIGRvIG5vdCBuZWVkIHRvIGltcGxlbWVudCB0aGUgUE9M WVZBTCBmaWVsZCBmb3IgdGhlCisgKiBnZW5lcmljIGltcGxlbWVudGF0aW9uLgorICoKKyAqIFdh cm5pbmc6IHRoaXMgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgaW50ZW5kZWQgdG8gYmUg dXNlZCBpbiBwcmFjdGljZQorICogYW5kIGlzIG5vdCBjb25zdGFudCB0aW1lLiBGb3IgcHJhY3Rp Y2FsIHVzZSwgYSBoYXJkd2FyZSBhY2NlbGVyYXRlZAorICogaW1wbGVtZW50YXRpb24gb2YgUE9M WVZBTCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkLgorICoKKyAqLworCisjaW5jbHVkZSA8YXNtL3Vu YWxpZ25lZC5oPgorI2luY2x1ZGUgPGNyeXB0by9hbGdhcGkuaD4KKyNpbmNsdWRlIDxjcnlwdG8v Z2YxMjhtdWwuaD4KKyNpbmNsdWRlIDxjcnlwdG8vcG9seXZhbC5oPgorI2luY2x1ZGUgPGNyeXB0 by9pbnRlcm5hbC9oYXNoLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CisjaW5jbHVkZSA8 bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4 L21vZHVsZS5oPgorCitzdHJ1Y3QgcG9seXZhbF90Zm1fY3R4IHsKKwlzdHJ1Y3QgZ2YxMjhtdWxf NGsgKmdmMTI4OworfTsKKworc3RydWN0IHBvbHl2YWxfZGVzY19jdHggeworCXVuaW9uIHsKKwkJ dTggYnVmZmVyW1BPTFlWQUxfQkxPQ0tfU0laRV07CisJCWJlMTI4IGJ1ZmZlcjEyODsKKwl9Owor CXUzMiBieXRlczsKK307CisKK3N0YXRpYyBpbnQgcG9seXZhbF9pbml0KHN0cnVjdCBzaGFzaF9k ZXNjICpkZXNjKQoreworCXN0cnVjdCBwb2x5dmFsX2Rlc2NfY3R4ICpkY3R4ID0gc2hhc2hfZGVz Y19jdHgoZGVzYyk7CisKKwltZW1zZXQoZGN0eCwgMCwgc2l6ZW9mKCpkY3R4KSk7CisKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIHZvaWQgcmV2ZXJzZV9ibG9jayh1OCBibG9ja1tQT0xZVkFMX0JM T0NLX1NJWkVdKQoreworCXU2NCAqcDEgPSAodTY0ICopYmxvY2s7CisJdTY0ICpwMiA9ICh1NjQg KikmYmxvY2tbOF07CisJdTY0IGEgPSBnZXRfdW5hbGlnbmVkKHAxKTsKKwl1NjQgYiA9IGdldF91 bmFsaWduZWQocDIpOworCisJcHV0X3VuYWxpZ25lZChzd2FiNjQoYSksIHAyKTsKKwlwdXRfdW5h bGlnbmVkKHN3YWI2NChiKSwgcDEpOworfQorCitzdGF0aWMgaW50IHBvbHl2YWxfc2V0a2V5KHN0 cnVjdCBjcnlwdG9fc2hhc2ggKnRmbSwKKwkJCWNvbnN0IHU4ICprZXksIHVuc2lnbmVkIGludCBr ZXlsZW4pCit7CisJc3RydWN0IHBvbHl2YWxfdGZtX2N0eCAqY3R4ID0gY3J5cHRvX3NoYXNoX2N0 eCh0Zm0pOworCWJlMTI4IGs7CisKKwlpZiAoa2V5bGVuICE9IFBPTFlWQUxfQkxPQ0tfU0laRSkK KwkJcmV0dXJuIC1FSU5WQUw7CisKKwlnZjEyOG11bF9mcmVlXzRrKGN0eC0+Z2YxMjgpOworCisJ QlVJTERfQlVHX09OKHNpemVvZihrKSAhPSBQT0xZVkFMX0JMT0NLX1NJWkUpOworCS8vIGF2b2lk IHZpb2xhdGluZyBhbGlnbm1lbnQgcnVsZXMKKwltZW1jcHkoJmssIGtleSwgUE9MWVZBTF9CTE9D S19TSVpFKTsKKworCXJldmVyc2VfYmxvY2soKHU4ICopJmspOworCWdmMTI4bXVsX3hfbGxlKCZr LCAmayk7CisKKwljdHgtPmdmMTI4ID0gZ2YxMjhtdWxfaW5pdF80a19sbGUoJmspOworCW1lbXpl cm9fZXhwbGljaXQoJmssIFBPTFlWQUxfQkxPQ0tfU0laRSk7CisKKwlpZiAoIWN0eC0+Z2YxMjgp CisJCXJldHVybiAtRU5PTUVNOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcG9seXZh bF91cGRhdGUoc3RydWN0IHNoYXNoX2Rlc2MgKmRlc2MsCisJCQkgY29uc3QgdTggKnNyYywgdW5z aWduZWQgaW50IHNyY2xlbikKK3sKKwlzdHJ1Y3QgcG9seXZhbF9kZXNjX2N0eCAqZGN0eCA9IHNo YXNoX2Rlc2NfY3R4KGRlc2MpOworCWNvbnN0IHN0cnVjdCBwb2x5dmFsX3RmbV9jdHggKmN0eCA9 IGNyeXB0b19zaGFzaF9jdHgoZGVzYy0+dGZtKTsKKwl1OCAqcG9zOworCXU4IHRtcFtQT0xZVkFM X0JMT0NLX1NJWkVdOworCWludCBuOworCisJaWYgKGRjdHgtPmJ5dGVzKSB7CisJCW4gPSBtaW4o c3JjbGVuLCBkY3R4LT5ieXRlcyk7CisJCXBvcyA9IGRjdHgtPmJ1ZmZlciArIGRjdHgtPmJ5dGVz IC0gMTsKKworCQlkY3R4LT5ieXRlcyAtPSBuOworCQlzcmNsZW4gLT0gbjsKKworCQl3aGlsZSAo bi0tKQorCQkJKnBvcy0tIF49ICpzcmMrKzsKKworCQlpZiAoIWRjdHgtPmJ5dGVzKQorCQkJZ2Yx MjhtdWxfNGtfbGxlKCZkY3R4LT5idWZmZXIxMjgsIGN0eC0+Z2YxMjgpOworCX0KKworCXdoaWxl IChzcmNsZW4gPj0gUE9MWVZBTF9CTE9DS19TSVpFKSB7CisJCW1lbWNweSh0bXAsIHNyYywgUE9M WVZBTF9CTE9DS19TSVpFKTsKKwkJcmV2ZXJzZV9ibG9jayh0bXApOworCQljcnlwdG9feG9yKGRj dHgtPmJ1ZmZlciwgdG1wLCBQT0xZVkFMX0JMT0NLX1NJWkUpOworCQlnZjEyOG11bF80a19sbGUo JmRjdHgtPmJ1ZmZlcjEyOCwgY3R4LT5nZjEyOCk7CisJCXNyYyArPSBQT0xZVkFMX0JMT0NLX1NJ WkU7CisJCXNyY2xlbiAtPSBQT0xZVkFMX0JMT0NLX1NJWkU7CisJfQorCisJaWYgKHNyY2xlbikg eworCQlkY3R4LT5ieXRlcyA9IFBPTFlWQUxfQkxPQ0tfU0laRSAtIHNyY2xlbjsKKwkJcG9zID0g ZGN0eC0+YnVmZmVyICsgUE9MWVZBTF9CTE9DS19TSVpFIC0gMTsKKwkJd2hpbGUgKHNyY2xlbi0t KQorCQkJKnBvcy0tIF49ICpzcmMrKzsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlu dCBwb2x5dmFsX2ZpbmFsKHN0cnVjdCBzaGFzaF9kZXNjICpkZXNjLCB1OCAqZHN0KQoreworCXN0 cnVjdCBwb2x5dmFsX2Rlc2NfY3R4ICpkY3R4ID0gc2hhc2hfZGVzY19jdHgoZGVzYyk7CisJY29u c3Qgc3RydWN0IHBvbHl2YWxfdGZtX2N0eCAqY3R4ID0gY3J5cHRvX3NoYXNoX2N0eChkZXNjLT50 Zm0pOworCisJaWYgKGRjdHgtPmJ5dGVzKQorCQlnZjEyOG11bF80a19sbGUoJmRjdHgtPmJ1ZmZl cjEyOCwgY3R4LT5nZjEyOCk7CisJZGN0eC0+Ynl0ZXMgPSAwOworCisJcmV2ZXJzZV9ibG9jayhk Y3R4LT5idWZmZXIpOworCW1lbWNweShkc3QsIGRjdHgtPmJ1ZmZlciwgUE9MWVZBTF9CTE9DS19T SVpFKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBwb2x5dmFsX2V4aXRfdGZtKHN0 cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IHBvbHl2YWxfdGZtX2N0eCAqY3R4ID0g Y3J5cHRvX3RmbV9jdHgodGZtKTsKKworCWdmMTI4bXVsX2ZyZWVfNGsoY3R4LT5nZjEyOCk7Cit9 CisKK3N0YXRpYyBzdHJ1Y3Qgc2hhc2hfYWxnIHBvbHl2YWxfYWxnID0geworCS5kaWdlc3RzaXpl CT0gUE9MWVZBTF9ESUdFU1RfU0laRSwKKwkuaW5pdAkJPSBwb2x5dmFsX2luaXQsCisJLnVwZGF0 ZQkJPSBwb2x5dmFsX3VwZGF0ZSwKKwkuZmluYWwJCT0gcG9seXZhbF9maW5hbCwKKwkuc2V0a2V5 CQk9IHBvbHl2YWxfc2V0a2V5LAorCS5kZXNjc2l6ZQk9IHNpemVvZihzdHJ1Y3QgcG9seXZhbF9k ZXNjX2N0eCksCisJLmJhc2UJCT0geworCQkuY3JhX25hbWUJCT0gInBvbHl2YWwiLAorCQkuY3Jh X2RyaXZlcl9uYW1lCT0gInBvbHl2YWwtZ2VuZXJpYyIsCisJCS5jcmFfcHJpb3JpdHkJCT0gMTAw LAorCQkuY3JhX2Jsb2Nrc2l6ZQkJPSBQT0xZVkFMX0JMT0NLX1NJWkUsCisJCS5jcmFfY3R4c2l6 ZQkJPSBzaXplb2Yoc3RydWN0IHBvbHl2YWxfdGZtX2N0eCksCisJCS5jcmFfbW9kdWxlCQk9IFRI SVNfTU9EVUxFLAorCQkuY3JhX2V4aXQJCT0gcG9seXZhbF9leGl0X3RmbSwKKwl9LAorfTsKKwor c3RhdGljIGludCBfX2luaXQgcG9seXZhbF9tb2RfaW5pdCh2b2lkKQoreworCXJldHVybiBjcnlw dG9fcmVnaXN0ZXJfc2hhc2goJnBvbHl2YWxfYWxnKTsKK30KKworc3RhdGljIHZvaWQgX19leGl0 IHBvbHl2YWxfbW9kX2V4aXQodm9pZCkKK3sKKwljcnlwdG9fdW5yZWdpc3Rlcl9zaGFzaCgmcG9s eXZhbF9hbGcpOworfQorCitzdWJzeXNfaW5pdGNhbGwocG9seXZhbF9tb2RfaW5pdCk7Cittb2R1 bGVfZXhpdChwb2x5dmFsX21vZF9leGl0KTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9E VUxFX0RFU0NSSVBUSU9OKCJQT0xZVkFMIGhhc2ggZnVuY3Rpb24iKTsKK01PRFVMRV9BTElBU19D UllQVE8oInBvbHl2YWwiKTsKK01PRFVMRV9BTElBU19DUllQVE8oInBvbHl2YWwtZ2VuZXJpYyIp OwpkaWZmIC0tZ2l0IGEvY3J5cHRvL3RjcnlwdC5jIGIvY3J5cHRvL3RjcnlwdC5jCmluZGV4IGZk NjcxZDBlMjAxMi4uZGQ5Y2YyMTYwMjliIDEwMDY0NAotLS0gYS9jcnlwdG8vdGNyeXB0LmMKKysr IGIvY3J5cHRvL3RjcnlwdC5jCkBAIC0xNzMwLDYgKzE3MzAsMTAgQEAgc3RhdGljIGludCBkb190 ZXN0KGNvbnN0IGNoYXIgKmFsZywgdTMyIHR5cGUsIHUzMiBtYXNrLCBpbnQgbSwgdTMyIG51bV9t YikKIAkJcmV0ICs9IHRjcnlwdF90ZXN0KCJjY20oc200KSIpOwogCQlicmVhazsKIAorCWNhc2Ug NTc6CisJCXJldCArPSB0Y3J5cHRfdGVzdCgicG9seXZhbCIpOworCQlicmVhazsKKwogCWNhc2Ug MTAwOgogCQlyZXQgKz0gdGNyeXB0X3Rlc3QoImhtYWMobWQ1KSIpOwogCQlicmVhazsKZGlmZiAt LWdpdCBhL2NyeXB0by90ZXN0bWdyLmMgYi9jcnlwdG8vdGVzdG1nci5jCmluZGV4IGZiYjEyZDdk NzhhZi4uZDgwN2IyMDBlZGY2IDEwMDY0NAotLS0gYS9jcnlwdG8vdGVzdG1nci5jCisrKyBiL2Ny eXB0by90ZXN0bWdyLmMKQEAgLTUyODQsNiArNTI4NCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGFsZ190ZXN0X2Rlc2MgYWxnX3Rlc3RfZGVzY3NbXSA9IHsKIAkJLnN1aXRlID0gewogCQkJLmhh c2ggPSBfX1ZFQ1MocG9seTEzMDVfdHZfdGVtcGxhdGUpCiAJCX0KKwl9LCB7CisJCS5hbGcgPSAi cG9seXZhbCIsCisJCS50ZXN0ID0gYWxnX3Rlc3RfaGFzaCwKKwkJLnN1aXRlID0geworCQkJLmhh c2ggPSBfX1ZFQ1MocG9seXZhbF90dl90ZW1wbGF0ZSkKKwkJfQogCX0sIHsKIAkJLmFsZyA9ICJy ZmMzNjg2KGN0cihhZXMpKSIsCiAJCS50ZXN0ID0gYWxnX3Rlc3Rfc2tjaXBoZXIsCmRpZmYgLS1n aXQgYS9jcnlwdG8vdGVzdG1nci5oIGIvY3J5cHRvL3Rlc3RtZ3IuaAppbmRleCBiZjRmZjk3ZWVi MzcuLmM1ODFlNTQwNTkxNiAxMDA2NDQKLS0tIGEvY3J5cHRvL3Rlc3RtZ3IuaAorKysgYi9jcnlw dG8vdGVzdG1nci5oCkBAIC0zNDkyOSw0ICszNDkyOSwxNzUgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBjaXBoZXJfdGVzdHZlYyBhZXNfeGN0cl90dl90ZW1wbGF0ZVtdID0gewogCiB9OwogCisvKgor ICogVGVzdCB2ZWN0b3JzIGdlbmVyYXRlZCB1c2luZyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xl L2hjdHIyCisgKgorICogVG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCBSRkMgODQ1Miwgc29t ZSB0ZXN0cyB3ZXJlIHNvdXJjZWQgZnJvbQorICogaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9y Zy9kb2MvaHRtbC9yZmM4NDUyCisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaGFzaF90ZXN0dmVj IHBvbHl2YWxfdHZfdGVtcGxhdGVbXSA9IHsKKwl7IC8vIEZyb20gUkZDIDg0NTIKKwkJLmtleQk9 ICJceDMxXHgwN1x4MjhceGQ5XHg5MVx4MWZceDFmXHgzOCIKKwkJCSAgIlx4MzdceGIyXHg0M1x4 MTZceGMzXHhmYVx4YjlceGEwIiwKKwkJLnBsYWludGV4dAk9ICJceDY1XHg3OFx4NjFceDZkXHg3 MFx4NmNceDY1XHgwMCIKKwkJCSAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgor CQkJICAiXHg0OFx4NjVceDZjXHg2Y1x4NmZceDIwXHg3N1x4NmYiCisJCQkgICJceDcyXHg2Y1x4 NjRceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAgIlx4MzhceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwIgorCQkJICAiXHg1OFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiLAorCQkuZGln ZXN0CT0gIlx4YWRceDdmXHhjZlx4MGJceDUxXHg2OVx4ODVceDE2IgorCQkJICAiXHg2Mlx4Njdc eDJmXHgzY1x4NWZceDk1XHgxM1x4OGYiLAorCQkucHNpemUJPSA0OCwKKwkJLmtzaXplCT0gMTYs CisJfSwKKwl7IC8vIEZyb20gUkZDIDg0NTIKKwkJLmtleQk9ICJceGQ5XHhiM1x4NjBceDI3XHg5 Nlx4OTRceDk0XHgxYSIKKwkJCSAgIlx4YzVceGRiXHhjNlx4OThceDdhXHhkYVx4NzNceDc3IiwK KwkJLnBsYWludGV4dAk9ICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAg Ilx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIiwKKwkJLmRpZ2VzdAk9ICJceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwIiwKKwkJLnBzaXplCT0gMTYsCisJCS5rc2l6ZQk9IDE2LAorCX0sCisJeyAvLyBG cm9tIFJGQyA4NDUyCisJCS5rZXkJPSAiXHhkOVx4YjNceDYwXHgyN1x4OTZceDk0XHg5NFx4MWEi CisJCQkgICJceGM1XHhkYlx4YzZceDk4XHg3YVx4ZGFceDczXHg3NyIsCisJCS5wbGFpbnRleHQJ PSAiXHgwMVx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisJCQkgICJceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwIgorCQkJICAiXHg0MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiLAorCQkuZGlnZXN0 CT0gIlx4ZWJceDkzXHhiN1x4NzRceDA5XHg2Mlx4YzVceGU0IgorCQkJICAiXHg5ZFx4MmFceDkw XHhhN1x4ZGNceDVjXHhlY1x4NzQiLAorCQkucHNpemUJPSAzMiwKKwkJLmtzaXplCT0gMTYsCisJ fSwKKwl7IC8vIEZyb20gUkZDIDg0NTIKKwkJLmtleQk9ICJceGQ5XHhiM1x4NjBceDI3XHg5Nlx4 OTRceDk0XHgxYSIKKwkJCSAgIlx4YzVceGRiXHhjNlx4OThceDdhXHhkYVx4NzNceDc3IiwKKwkJ LnBsYWludGV4dAk9ICJceDAxXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAgIlx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorCQkJICAiXHgwMlx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDAiCisJCQkgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIK KwkJCSAgIlx4MDNceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorCQkJICAiXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisJCQkgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMCIKKwkJCSAgIlx4ODBceDAxXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIiwKKwkJLmRp Z2VzdAk9ICJceDgxXHgzOFx4ODdceDQ2XHhiY1x4MjJceGQyXHg2YiIKKwkJCSAgIlx4MmFceGJj XHgzZFx4Y2JceDE1XHg3NVx4NDJceDIyIiwKKwkJLnBzaXplCT0gNjQsCisJCS5rc2l6ZQk9IDE2 LAorCX0sCisJeyAvLyBGcm9tIFJGQyA4NDUyCisJCS5rZXkJPSAiXHhkOVx4YjNceDYwXHgyN1x4 OTZceDk0XHg5NFx4MWEiCisJCQkgICJceGM1XHhkYlx4YzZceDk4XHg3YVx4ZGFceDczXHg3NyIs CisJCS5wbGFpbnRleHQJPSAiXHgwMVx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisJCQkg ICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAgIlx4MDJceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwIgorCQkJICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDAiCisJCQkgICJceDAzXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAgIlx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorCQkJICAiXHgwNFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDAiCisJCQkgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJ CSAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorCQkJICAiXHgwMFx4MDJceDAw XHgwMFx4MDBceDAwXHgwMFx4MDAiLAorCQkuZGlnZXN0CT0gIlx4MWVceDM5XHhiNlx4ZDNceDM0 XHg0ZFx4MzRceDhmIgorCQkJICAiXHg2MFx4NDRceGY4XHg5OVx4MzVceGQxXHhjZlx4NzgiLAor CQkucHNpemUJPSA4MCwKKwkJLmtzaXplCT0gMTYsCisJfSwKKwl7IC8vIEZyb20gUkZDIDg0NTIK KwkJLmtleQk9ICJceGQ5XHhiM1x4NjBceDI3XHg5Nlx4OTRceDk0XHgxYSIKKwkJCSAgIlx4YzVc eGRiXHhjNlx4OThceDdhXHhkYVx4NzNceDc3IiwKKwkJLnBsYWludGV4dAk9ICJceDAxXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwIgorCQkJICAiXHgwMlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisJCQkgICJc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAgIlx4MDNceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwIgorCQkJICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAi CisJCQkgICJceDA0XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAgIlx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorCQkJICAiXHgwNVx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDAiCisJCQkgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAg Ilx4MDhceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorCQkJICAiXHgwMFx4MDJceDAwXHgw MFx4MDBceDAwXHgwMFx4MDAiLAorCQkuZGlnZXN0CT0gIlx4ZmZceGNkXHgwNVx4ZDVceDc3XHgw Zlx4MzRceGFkIgorCQkJICAiXHg5Mlx4NjdceGYwXHhhNVx4OTlceDk0XHhiMVx4NWEiLAorCQku cHNpemUJPSA5NiwKKwkJLmtzaXplCT0gMTYsCisJfSwKKwl7IC8vIFJhbmRvbSAoIDEpCisJCS5r ZXkJPSAiXHg5MFx4Y2NceGFjXHhlZVx4YmFceGQ3XHhkNFx4NjgiCisJCQkgICJceDk4XHhhNlx4 NzlceDcwXHhkZlx4NjZceDE1XHg2YyIsCisJCS5wbGFpbnRleHQJPSAiIiwKKwkJLmRpZ2VzdAk9 ICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKwkJCSAgIlx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwIiwKKwkJLnBzaXplCT0gMCwKKwkJLmtzaXplCT0gMTYsCisJfSwK Kwl7IC8vIFJhbmRvbSAoIDEpCisJCS5rZXkJPSAiXHhjMVx4NDVceDcxXHhmMFx4MzBceDA3XHg5 NFx4ZTciCisJCQkgICJceDNhXHhkZFx4ZTRceGM2XHgxOVx4MmRceDAyXHhhMiIsCisJCS5wbGFp bnRleHQJPSAiXHhjMVx4NWRceDQ3XHhjN1x4NGNceDdjXHg1ZVx4MDciCisJCQkgICJceDg1XHgx NFx4OGZceDc5XHhjY1x4NzNceDgzXHhmNyIKKwkJCSAgIlx4MzVceGI4XHhjYlx4NzNceDYxXHhm MFx4NTNceDMxIgorCQkJICAiXHhiZlx4ODRceGRlXHhiNlx4ZGVceGFmXHhiMFx4YjgiCisJCQkg ICJceGI3XHhkOVx4MTFceDkxXHg4OVx4ZmRceDFlXHg0YyIKKwkJCSAgIlx4ODRceDRhXHgxZlx4 MmFceDg3XHhhNFx4YWZceDYyIgorCQkJICAiXHg4ZFx4N2RceDU4XHhmNlx4NDNceDM1XHhmY1x4 NTMiCisJCQkgICJceDhmXHgxYVx4ZjZceDEyXHhlMVx4MTNceDNmXHg2NiIKKwkJCSAgIlx4OTFc eDRiXHgxM1x4ZDZceDQ1XHhmYlx4YjBceDdhIgorCQkJICAiXHhlMFx4OGJceDhlXHg5OVx4Zjdc eDg2XHg0Nlx4MzciCisJCQkgICJceGQxXHgyMlx4OWVceDUyXHhmM1x4M2ZceGQ5XHg3NSIKKwkJ CSAgIlx4MmNceDJjXHhjNlx4YmJceDBlXHgwOFx4MTRceDI5IgorCQkJICAiXHhlOFx4NTBceDJm XHhkOFx4YmVceGY0XHhlOVx4NjkiCisJCQkgICJceDRhXHhlZVx4ZjdceGFlXHgxNVx4NjVceDM1 XHgxZSIsCisJCS5kaWdlc3QJPSAiXHgwMFx4NGZceDVkXHhlOVx4M2JceGMwXHhkNlx4NTAiCisJ CQkgICJceDNlXHgzOFx4NzNceDg2XHhjNlx4ZGFceGNhXHg3ZiIsCisJCS5wc2l6ZQk9IDExMiwK KwkJLmtzaXplCT0gMTYsCisJfSwKKwl7IC8vIFJhbmRvbSAoIDEpCisJCS5rZXkJPSAiXHgzN1x4 YmVceDY4XHgxNlx4NTBceGI5XHg0ZVx4YjAiCisJCQkgICJceDQ3XHhkZVx4ZTJceGJkXHhkZVx4 ZTRceDQ4XHgwOSIsCisJCS5wbGFpbnRleHQJPSAiXHg4N1x4ZmNceDY4XHg5Zlx4ZmZceGYyXHg0 YVx4MWUiCisJCQkgICJceDgyXHgzYlx4NzNceDhmXHhjMVx4YjJceDFiXHg3YSIKKwkJCSAgIlx4 NmNceDRmXHg4MVx4YmNceDg4XHg5Ylx4NmNceGEzIgorCQkJICAiXHg5Y1x4YzJceGE1XHhiY1x4 MTRceDcwXHg0Y1x4OWIiCisJCQkgICJceDBjXHg5Zlx4NTlceDkyXHgxNlx4NGJceDkxXHgzZCIK KwkJCSAgIlx4MThceDU1XHgyMlx4NjhceDEyXHg4Y1x4NjNceGIyIgorCQkJICAiXHg1MVx4Y2Jc eDg1XHg0Ylx4ZDJceGFlXHgwYlx4MWMiCisJCQkgICJceDVkXHgyOFx4OWRceDFkXHhiMVx4Yzhc eGYwXHg3NyIKKwkJCSAgIlx4ZTlceGI1XHgwN1x4NGVceDA2XHhjOFx4ZWVceGY4IgorCQkJICAi XHgxYlx4ZWRceDcyXHgyYVx4NTVceDdkXHgxNlx4YzkiCisJCQkgICJceGYyXHg1NFx4ZTdceGU5 XHhlMFx4NDRceDViXHgzMyIKKwkJCSAgIlx4YjFceDQ5XHhlZVx4ZmZceDQzXHhmYlx4ODJceGNk IgorCQkJICAiXHg0YVx4NzBceDc4XHg4MVx4YTRceDM0XHgzNlx4ZTgiCisJCQkgICJceDRjXHgy OFx4NTRceGE2XHg2Y1x4YzNceDZiXHg3OCIKKwkJCSAgIlx4ZTdceGMwXHg1ZFx4YzZceDVkXHg4 MVx4YWJceDcwIgorCQkJICAiXHgwOFx4ODZceGExXHhmZFx4ZjRceDc3XHg1NVx4ZmQiCisJCQkg ICJceGEzXHhlOVx4ZTJceDFiXHhkZlx4OTlceGI3XHg4MCIKKwkJCSAgIlx4ZjlceDBhXHg0Zlx4 NzJceDRhXHhkM1x4YWZceGJiIgorCQkJICAiXHhiM1x4M2JceGViXHgwOFx4NThceDBmXHg3OVx4 Y2UiCisJCQkgICJceGE1XHg5OVx4MDVceDEyXHgzNFx4ZDRceGY0XHg4NiIKKwkJCSAgIlx4Mzdc eDIzXHgxZFx4YzhceDQ5XHhjMFx4OTJceGFlIgorCQkJICAiXHhhNlx4YWNceDliXHgzMVx4NTVc eGVkXHgxNVx4YzYiCisJCQkgICJceDA1XHgxN1x4MzdceDhkXHg5MFx4NDJceGU0XHg4NyIKKwkJ CSAgIlx4ODlceDYyXHg4OFx4NjlceDFjXHg2YVx4ZmRceGUzIgorCQkJICAiXHgwMFx4MmJceDQ3 XHgxYVx4NzNceGMxXHg1MVx4YzIiCisJCQkgICJceGMwXHg2Mlx4NzRceDZhXHg5ZVx4YjJceGU1 XHgyMSIKKwkJCSAgIlx4YmVceDkwXHhiNVx4YjBceDUwXHhjYVx4ODhceDY4IgorCQkJICAiXHhl MVx4OWRceDdhXHhkZlx4NmNceGI3XHhiOVx4OTgiCisJCQkgICJceGVlXHgyOFx4NjJceDYxXHg4 Ylx4ZDFceDQ3XHhmOSIKKwkJCSAgIlx4MDRceDdhXHgwYlx4NWRceGNkXHgyYlx4NjVceGY1Igor CQkJICAiXHgxMlx4YTNceGZlXHgxYVx4YWFceDJjXHg3OFx4NDIiCisJCQkgICJceGI4XHhiZVx4 N2RceDc0XHhlYlx4NTlceGJhXHhiYSIsCisJCS5kaWdlc3QJPSAiXHhhZVx4MTFceGQ0XHg2MFx4 MmFceDVmXHg5ZVx4NDIiCisJCQkgICJceDg5XHgwNFx4YzJceDM0XHg4ZFx4NTVceDk0XHgwYSIs CisJCS5wc2l6ZQk9IDI1NiwKKwkJLmtzaXplCT0gMTYsCisJfSwKKworfTsKKwogI2VuZGlmCS8q IF9DUllQVE9fVEVTVE1HUl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NyeXB0by9wb2x5dmFs LmggYi9pbmNsdWRlL2NyeXB0by9wb2x5dmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5iMTRjMzhhYTkxNjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2Ny eXB0by9wb2x5dmFsLmgKQEAgLTAsMCArMSwxNyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAgKi8KKy8qCisgKiBDb21tb24gdmFsdWVzIGZvciB0aGUgUG9seXZhbCBoYXNo IGFsZ29yaXRobQorICoKKyAqIENvcHlyaWdodCAyMDIxIEdvb2dsZSBMTEMKKyAqLworCisjaWZu ZGVmIF9DUllQVE9fUE9MWVZBTF9ICisjZGVmaW5lIF9DUllQVE9fUE9MWVZBTF9ICisKKyNpbmNs dWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorCisjZGVmaW5l IFBPTFlWQUxfQkxPQ0tfU0laRQkxNgorI2RlZmluZSBQT0xZVkFMX0RJR0VTVF9TSVpFCTE2CisK KyNlbmRpZgotLSAKMi4zNS4xLjcyMy5nNDk4MjI4N2EzMS1nb29nCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5n IGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=