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=-12.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F1581C433DF for ; Tue, 18 Aug 2020 16:02:18 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A5355207D3 for ; Tue, 18 Aug 2020 16:02:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="Wsb5j+tI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A5355207D3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:46168 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k8441-0001FP-Q1 for qemu-devel@archiver.kernel.org; Tue, 18 Aug 2020 12:02:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60868) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k83tQ-0006x3-UU for qemu-devel@nongnu.org; Tue, 18 Aug 2020 11:51:20 -0400 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:55147) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1k83tL-0005r3-Ez for qemu-devel@nongnu.org; Tue, 18 Aug 2020 11:51:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1597765875; x=1629301875; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3r8ydJDJU6xDQg5s9w2EyVvOvZcvCKoGcaGlXGo30Qo=; b=Wsb5j+tIkoNpyI6ob1SmUssUKEysnZo/52rL7+l8aqrtM82/hHHd+AyS YYUkwOFKjQo4k+g8EF8y+vqOB351L1CgC7+QbVa2dX4hw5RZXAy7JBOx0 K45tkV9nZHqPL20g2fskyLQPw3FEtgtL5xUTIevwJgc7qsF6GJIRAiSxZ 0=; Received: from unknown (HELO ironmsg05-sd.qualcomm.com) ([10.53.140.145]) by alexa-out-sd-01.qualcomm.com with ESMTP; 18 Aug 2020 08:50:59 -0700 Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg05-sd.qualcomm.com with ESMTP; 18 Aug 2020 08:50:58 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 5C8007BD; Tue, 18 Aug 2020 10:50:58 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [RFC PATCH v3 26/34] Hexagon (target/hexagon) macros referenced in instruction semantics Date: Tue, 18 Aug 2020 10:50:39 -0500 Message-Id: <1597765847-16637-27-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1597765847-16637-1-git-send-email-tsimpson@quicinc.com> References: <1597765847-16637-1-git-send-email-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=199.106.114.38; envelope-from=tsimpson@qualcomm.com; helo=alexa-out-sd-01.qualcomm.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/18 11:48:34 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Spam_score_int: -32 X-Spam_score: -3.3 X-Spam_bar: --- X-Spam_report: (-3.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ale@rev.ng, riku.voipio@iki.fi, richard.henderson@linaro.org, laurent@vivier.eu, tsimpson@quicinc.com, philmd@redhat.com, aleksandar.m.mail@gmail.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" U2lnbmVkLW9mZi1ieTogVGF5bG9yIFNpbXBzb24gPHRzaW1wc29uQHF1aWNpbmMuY29tPgotLS0K IHRhcmdldC9oZXhhZ29uL21hY3Jvcy5oICAgIHwgNjIwICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQogdGFyZ2V0L2hleGFnb24vb3BfaGVscGVyLmMgfCAgMjEg LS0KIDIgZmlsZXMgY2hhbmdlZCwgNjE5IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL21hY3Jvcy5oIGIvdGFyZ2V0L2hleGFnb24vbWFj cm9zLmgKaW5kZXggNTU4MmRjYi4uOTY2NWJjOSAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24v bWFjcm9zLmgKKysrIGIvdGFyZ2V0L2hleGFnb24vbWFjcm9zLmgKQEAgLTE4LDYgKzE4LDggQEAK ICNpZm5kZWYgSEVYQUdPTl9NQUNST1NfSAogI2RlZmluZSBIRVhBR09OX01BQ1JPU19ICiAKKyNp bmNsdWRlICJxZW11L29zZGVwLmgiCisjaW5jbHVkZSAicWVtdS9ob3N0LXV0aWxzLmgiCiAjaW5j bHVkZSAicWVtdS5oIgogI2luY2x1ZGUgImNwdS5oIgogI2luY2x1ZGUgImhleF9yZWdzLmgiCkBA IC0yNDEsNyArMjQzLDYgQEAKICAgICAgICAgdGNnX3RlbXBfZnJlZShwYXJ0MSk7IFwKICAgICB9 IHdoaWxlICgwKQogCi0jZGVmaW5lIE1BUktfTEFURV9QUkVEX1dSSVRFKFJOVU0pIC8qIE5vdCBt b2RlbGxlZCBpbiBxZW11ICovCiAKICNkZWZpbmUgUkVHTk8oTlVNKSAoaW5zbi0+cmVnbm9bTlVN XSkKICNkZWZpbmUgSU1NTk8oTlVNKSAoaW5zbi0+aW1tZWRbTlVNXSkKQEAgLTM2MiwzICszNjMs NjIwIEBACiAjZGVmaW5lIFdSSVRFX1JSRUdfeXkoTlVNLCBWQUwpICAgICAgICAgIFdSSVRFX1JF R19QQUlSKE5VTSwgVkFMKQogI2VuZGlmCiAKKyNkZWZpbmUgUENBTElHTiA0CisjZGVmaW5lIFBD QUxJR05fTUFTSyAoUENBTElHTiAtIDEpCisKKyNkZWZpbmUgR0VUX0ZJRUxEKEZJRUxELCBSRUdJ TikgXAorICAgIGZFWFRSQUNUVV9CSVRTKFJFR0lOLCByZWdfZmllbGRfaW5mb1tGSUVMRF0ud2lk dGgsIFwKKyAgICAgICAgICAgICAgICAgICByZWdfZmllbGRfaW5mb1tGSUVMRF0ub2Zmc2V0KQor CisjZGVmaW5lIEdFVF9VU1JfRklFTEQoRklFTEQpIFwKKyAgICBmRVhUUkFDVFVfQklUUyhlbnYt PmdwcltIRVhfUkVHX1VTUl0sIHJlZ19maWVsZF9pbmZvW0ZJRUxEXS53aWR0aCwgXAorICAgICAg ICAgICAgICAgICAgIHJlZ19maWVsZF9pbmZvW0ZJRUxEXS5vZmZzZXQpCisKKyNkZWZpbmUgU0VU X1VTUl9GSUVMRChGSUVMRCwgVkFMKSBcCisgICAgZklOU0VSVF9CSVRTKGVudi0+Z3ByW0hFWF9S RUdfVVNSXSwgcmVnX2ZpZWxkX2luZm9bRklFTERdLndpZHRoLCBcCisgICAgICAgICAgICAgICAg IHJlZ19maWVsZF9pbmZvW0ZJRUxEXS5vZmZzZXQsIChWQUwpKQorCisjaWZkZWYgUUVNVV9HRU5F UkFURQorLyoKKyAqIFNlY3Rpb24gNS41IG9mIHRoZSBIZXhhZ29uIFY2NyBQcm9ncmFtbWVyJ3Mg UmVmZXJlbmNlIE1hbnVhbAorICoKKyAqIFNsb3QgMSBzdG9yZSB3aXRoIHNsb3QgMCBsb2FkCisg KiBBIHNsb3QgMSBzdG9yZSBvcGVyYXRpb24gd2l0aCBhIHNsb3QgMCBsb2FkIG9wZXJhdGlvbiBj YW4gYXBwZWFyIGluIGEgcGFja2V0LgorICogVGhlIHBhY2tldCBhdHRyaWJ1dGUgOm1lbV9ub3No dWYgaW5oaWJpdHMgdGhlIGluc3RydWN0aW9uIHJlb3JkZXJpbmcgdGhhdAorICogd291bGQgb3Ro ZXJ3aXNlIGJlIGRvbmUgYnkgdGhlIGFzc2VtYmxlci4gRm9yIGV4YW1wbGU6CisgKiAgICAgewor ICogICAgICAgICBtZW13KFI1KSA9IFIyIC8vIHNsb3QgMSBzdG9yZQorICogICAgICAgICBSMyA9 IG1lbWgoUjYpIC8vIHNsb3QgMCBsb2FkCisgKiAgICAgfTptZW1fbm9zaHVmCisgKiBVbmxpa2Ug bW9zdCBwYWNrZXRpemVkIG9wZXJhdGlvbnMsIHRoZXNlIG1lbW9yeSBvcGVyYXRpb25zIGFyZSBu b3QgZXhlY3V0ZWQKKyAqIGluIHBhcmFsbGVsIChTZWN0aW9uIDMuMy4xKS4gSW5zdGVhZCwgdGhl IHN0b3JlIGluc3RydWN0aW9uIGluIFNsb3QgMQorICogZWZmZWN0aXZlbHkgZXhlY3V0ZXMgZmly c3QsIGZvbGxvd2VkIGJ5IHRoZSBsb2FkIGluc3RydWN0aW9uIGluIFNsb3QgMC4gSWYKKyAqIHRo ZSBhZGRyZXNzZXMgb2YgdGhlIHR3byBvcGVyYXRpb25zIGFyZSBvdmVybGFwcGluZywgdGhlIGxv YWQgd2lsbCByZWNlaXZlCisgKiB0aGUgbmV3bHkgc3RvcmVkIGRhdGEuIFRoaXMgZmVhdHVyZSBp cyBzdXBwb3J0ZWQgaW4gcHJvY2Vzc29yIHZlcnNpb25zCisgKiBWNjUgb3IgZ3JlYXRlci4KKyAq CisgKgorICogRm9yIHFlbXUsIHdlIGxvb2sgZm9yIGEgbG9hZCBpbiBzbG90IDAgd2hlbiB0aGVy ZSBpcyAgYSBzdG9yZSBpbiBzbG90IDEKKyAqIGluIHRoZSBzYW1lIHBhY2tldC4gIFdoZW4gd2Ug c2VlIHRoaXMsIHdlIGNhbGwgYSBoZWxwZXIgdGhhdCBtZXJnZXMgdGhlCisgKiBieXRlcyBmcm9t IHRoZSBzdG9yZSBidWZmZXIgd2l0aCB0aGUgdmFsdWUgbG9hZGVkIGZyb20gbWVtb3J5LgorICov CisjZGVmaW5lIENIRUNLX05PU0hVRihEU1QsIFZBLCBTWiwgU0lHTikgXAorICAgIGRvIHsgXAor ICAgICAgICBpZiAoaW5zbi0+c2xvdCA9PSAwICYmIHBrdC0+cGt0X2hhc19zdG9yZV9zMSkgeyBc CisgICAgICAgICAgICBnZW5faGVscGVyX21lcmdlX2luZmxpZ2h0X3N0b3JlIyNTWiMjU0lHTihE U1QsIGNwdV9lbnYsIFZBLCBEU1QpOyBcCisgICAgICAgIH0gXAorICAgIH0gd2hpbGUgKDApCisK KyNkZWZpbmUgTUVNX0xPQUQxcyhEU1QsIFZBKSBcCisgICAgZG8geyBcCisgICAgICAgIHRjZ19n ZW5fcWVtdV9sZDhzKERTVCwgVkEsIGN0eC0+bWVtX2lkeCk7IFwKKyAgICAgICAgQ0hFQ0tfTk9T SFVGKERTVCwgVkEsIDEsIHMpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgTUVNX0xPQUQx dShEU1QsIFZBKSBcCisgICAgZG8geyBcCisgICAgICAgIHRjZ19nZW5fcWVtdV9sZDh1KERTVCwg VkEsIGN0eC0+bWVtX2lkeCk7IFwKKyAgICAgICAgQ0hFQ0tfTk9TSFVGKERTVCwgVkEsIDEsIHUp OyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgTUVNX0xPQUQycyhEU1QsIFZBKSBcCisgICAg ZG8geyBcCisgICAgICAgIHRjZ19nZW5fcWVtdV9sZDE2cyhEU1QsIFZBLCBjdHgtPm1lbV9pZHgp OyBcCisgICAgICAgIENIRUNLX05PU0hVRihEU1QsIFZBLCAyLCBzKTsgXAorICAgIH0gd2hpbGUg KDApCisjZGVmaW5lIE1FTV9MT0FEMnUoRFNULCBWQSkgXAorICAgIGRvIHsgXAorICAgICAgICB0 Y2dfZ2VuX3FlbXVfbGQxNnUoRFNULCBWQSwgY3R4LT5tZW1faWR4KTsgXAorICAgICAgICBDSEVD S19OT1NIVUYoRFNULCBWQSwgMiwgdSk7IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBNRU1f TE9BRDRzKERTVCwgVkEpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgdGNnX2dlbl9xZW11X2xkMzJz KERTVCwgVkEsIGN0eC0+bWVtX2lkeCk7IFwKKyAgICAgICAgQ0hFQ0tfTk9TSFVGKERTVCwgVkEs IDQsIHMpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgTUVNX0xPQUQ0dShEU1QsIFZBKSBc CisgICAgZG8geyBcCisgICAgICAgIHRjZ19nZW5fcWVtdV9sZDMycyhEU1QsIFZBLCBjdHgtPm1l bV9pZHgpOyBcCisgICAgICAgIENIRUNLX05PU0hVRihEU1QsIFZBLCA0LCB1KTsgXAorICAgIH0g d2hpbGUgKDApCisjZGVmaW5lIE1FTV9MT0FEOHUoRFNULCBWQSkgXAorICAgIGRvIHsgXAorICAg ICAgICB0Y2dfZ2VuX3FlbXVfbGQ2NChEU1QsIFZBLCBjdHgtPm1lbV9pZHgpOyBcCisgICAgICAg IENIRUNLX05PU0hVRihEU1QsIFZBLCA4LCB1KTsgXAorICAgIH0gd2hpbGUgKDApCisjZWxzZQor I2RlZmluZSBNRU1fTE9BRDFzKFZBKSAoKHNpemUxc190KW1lbV9sb2FkMShlbnYsIHNsb3QsIFZB KSkKKyNkZWZpbmUgTUVNX0xPQUQxdShWQSkgKChzaXplMXVfdCltZW1fbG9hZDEoZW52LCBzbG90 LCBWQSkpCisjZGVmaW5lIE1FTV9MT0FEMnMoVkEpICgoc2l6ZTJzX3QpbWVtX2xvYWQyKGVudiwg c2xvdCwgVkEpKQorI2RlZmluZSBNRU1fTE9BRDJ1KFZBKSAoKHNpemUydV90KW1lbV9sb2FkMihl bnYsIHNsb3QsIFZBKSkKKyNkZWZpbmUgTUVNX0xPQUQ0cyhWQSkgKChzaXplNHNfdCltZW1fbG9h ZDQoZW52LCBzbG90LCBWQSkpCisjZGVmaW5lIE1FTV9MT0FENHUoVkEpICgoc2l6ZTR1X3QpbWVt X2xvYWQ0KGVudiwgc2xvdCwgVkEpKQorI2RlZmluZSBNRU1fTE9BRDhzKFZBKSAoKHNpemU4c190 KW1lbV9sb2FkOChlbnYsIHNsb3QsIFZBKSkKKyNkZWZpbmUgTUVNX0xPQUQ4dShWQSkgKChzaXpl OHVfdCltZW1fbG9hZDgoZW52LCBzbG90LCBWQSkpCisKKyNkZWZpbmUgTUVNX1NUT1JFMShWQSwg REFUQSwgU0xPVCkgbG9nX3N0b3JlMzIoZW52LCBWQSwgREFUQSwgMSwgU0xPVCkKKyNkZWZpbmUg TUVNX1NUT1JFMihWQSwgREFUQSwgU0xPVCkgbG9nX3N0b3JlMzIoZW52LCBWQSwgREFUQSwgMiwg U0xPVCkKKyNkZWZpbmUgTUVNX1NUT1JFNChWQSwgREFUQSwgU0xPVCkgbG9nX3N0b3JlMzIoZW52 LCBWQSwgREFUQSwgNCwgU0xPVCkKKyNkZWZpbmUgTUVNX1NUT1JFOChWQSwgREFUQSwgU0xPVCkg bG9nX3N0b3JlNjQoZW52LCBWQSwgREFUQSwgOCwgU0xPVCkKKyNlbmRpZgorCisjZGVmaW5lIENB TkNFTCBjYW5jZWxfc2xvdChlbnYsIHNsb3QpCisKKyNkZWZpbmUgTE9BRF9DQU5DRUwoRUEpIGRv IHsgQ0FOQ0VMOyB9IHdoaWxlICgwKQorCisjaWZkZWYgUUVNVV9HRU5FUkFURQorc3RhdGljIGlu bGluZSB2b2lkIGdlbl9wcmVkX2NhbmNlbChUQ0d2IHByZWQsIGludCBzbG90X251bSkKKyB7Cisg ICAgVENHdiBzbG90X21hc2sgPSB0Y2dfY29uc3RfdGwoMSA8PCBzbG90X251bSk7CisgICAgVENH diB0bXAgPSB0Y2dfdGVtcF9uZXcoKTsKKyAgICBUQ0d2IHplcm8gPSB0Y2dfY29uc3RfdGwoMCk7 CisgICAgVENHdiBvbmUgPSB0Y2dfY29uc3RfdGwoMSk7CisgICAgdGNnX2dlbl9vcl90bChzbG90 X21hc2ssIGhleF9zbG90X2NhbmNlbGxlZCwgc2xvdF9tYXNrKTsKKyAgICB0Y2dfZ2VuX2FuZGlf dGwodG1wLCBwcmVkLCAxKTsKKyAgICB0Y2dfZ2VuX21vdmNvbmRfdGwoVENHX0NPTkRfRVEsIGhl eF9zbG90X2NhbmNlbGxlZCwgdG1wLCB6ZXJvLAorICAgICAgICAgICAgICAgICAgICAgICBzbG90 X21hc2ssIGhleF9zbG90X2NhbmNlbGxlZCk7CisgICAgdGNnX3RlbXBfZnJlZShzbG90X21hc2sp OworICAgIHRjZ190ZW1wX2ZyZWUodG1wKTsKKyAgICB0Y2dfdGVtcF9mcmVlKHplcm8pOworICAg IHRjZ190ZW1wX2ZyZWUob25lKTsKK30KKyNkZWZpbmUgUFJFRF9MT0FEX0NBTkNFTChQUkVELCBF QSkgXAorICAgIGdlbl9wcmVkX2NhbmNlbChQUkVELCBpbnNuLT5pc19lbmRsb29wID8gNCA6IGlu c24tPnNsb3QpCisjZW5kaWYKKworI2RlZmluZSBTVE9SRV9DQU5DRUwoRUEpIHsgZW52LT5zbG90 X2NhbmNlbGxlZCB8PSAoMSA8PCBzbG90KTsgfQorCisjZGVmaW5lIGZNQVgoQSwgQikgKCgoQSkg PiAoQikpID8gKEEpIDogKEIpKQorCisjZGVmaW5lIGZNSU4oQSwgQikgKCgoQSkgPCAoQikpID8g KEEpIDogKEIpKQorCisjZGVmaW5lIGZBQlMoQSkgKCgoQSkgPCAwKSA/ICgtKEEpKSA6IChBKSkK KyNkZWZpbmUgZklOU0VSVF9CSVRTKFJFRywgV0lEVEgsIE9GRlNFVCwgSU5WQUwpIFwKKyAgICBk byB7IFwKKyAgICAgICAgUkVHID0gKChSRUcpICYgfigoKGZDT05TVExMKDEpIDw8IChXSURUSCkp IC0gMSkgPDwgKE9GRlNFVCkpKSB8IFwKKyAgICAgICAgICAgKCgoSU5WQUwpICYgKChmQ09OU1RM TCgxKSA8PCAoV0lEVEgpKSAtIDEpKSA8PCAoT0ZGU0VUKSk7IFwKKyAgICB9IHdoaWxlICgwKQor I2RlZmluZSBmRVhUUkFDVFVfQklUUyhJTlJFRywgV0lEVEgsIE9GRlNFVCkgXAorICAgIChmWlhU TihXSURUSCwgMzIsIChJTlJFRyA+PiBPRkZTRVQpKSkKKyNkZWZpbmUgZkVYVFJBQ1RVX0JJRElS KElOUkVHLCBXSURUSCwgT0ZGU0VUKSBcCisgICAgKGZaWFROKFdJRFRILCAzMiwgZkJJRElSX0xT SElGVFIoKElOUkVHKSwgKE9GRlNFVCksIDRfOCkpKQorI2RlZmluZSBmRVhUUkFDVFVfUkFOR0Uo SU5SRUcsIEhJQklULCBMT1dCSVQpIFwKKyAgICAoZlpYVE4oKEhJQklUIC0gTE9XQklUICsgMSks IDMyLCAoSU5SRUcgPj4gTE9XQklUKSkpCisKKyNkZWZpbmUgZjhCSVRTT0YoVkFMKSAoKFZBTCkg PyAweGZmIDogMHgwMCkKKworI2lmZGVmIFFFTVVfR0VORVJBVEUKKyNkZWZpbmUgZkxTQk9MRChW QUwpIHRjZ19nZW5fYW5kaV90bChMU0IsIChWQUwpLCAxKQorI2Vsc2UKKyNkZWZpbmUgZkxTQk9M RChWQUwpICAoKFZBTCkgJiAxKQorI2VuZGlmCisKKyNpZmRlZiBRRU1VX0dFTkVSQVRFCisjZGVm aW5lIGZMU0JORVcoUFZBTCkgICB0Y2dfZ2VuX21vdl90bChMU0IsIChQVkFMKSkKKyNkZWZpbmUg ZkxTQk5FVzAgICAgICAgIGZMU0JORVcoMCkKKyNkZWZpbmUgZkxTQk5FVzEgICAgICAgIGZMU0JO RVcoMSkKKyNlbHNlCisjZGVmaW5lIGZMU0JORVcoUFZBTCkgICAoUFZBTCkKKyNkZWZpbmUgZkxT Qk5FVzAgICAgICAgIG5ld19wcmVkX3ZhbHVlKGVudiwgMCkKKyNkZWZpbmUgZkxTQk5FVzEgICAg ICAgIG5ld19wcmVkX3ZhbHVlKGVudiwgMSkKKyNlbmRpZgorCisjaWZkZWYgUUVNVV9HRU5FUkFU RQorc3RhdGljIGlubGluZSB2b2lkIGdlbl9sb2dpY2FsX25vdChUQ0d2IGRlc3QsIFRDR3Ygc3Jj KQoreworICAgIFRDR3Ygb25lID0gdGNnX2NvbnN0X3RsKDEpOworICAgIFRDR3YgemVybyA9IHRj Z19jb25zdF90bCgwKTsKKworICAgIHRjZ19nZW5fbW92Y29uZF90bChUQ0dfQ09ORF9ORSwgZGVz dCwgc3JjLCB6ZXJvLCB6ZXJvLCBvbmUpOworCisgICAgdGNnX3RlbXBfZnJlZShvbmUpOworICAg IHRjZ190ZW1wX2ZyZWUoemVybyk7Cit9CisjZGVmaW5lIGZMU0JPTEROT1QoVkFMKSBcCisgICAg ZG8geyBcCisgICAgICAgIHRjZ19nZW5fYW5kaV90bChMU0IsIChWQUwpLCAxKTsgXAorICAgICAg ICB0Y2dfZ2VuX3hvcmlfdGwoTFNCLCBMU0IsIDEpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZp bmUgZkxTQk5FV05PVChQTlVNKSBcCisgICAgZ2VuX2xvZ2ljYWxfbm90KExTQiwgKFBOVU0pKQor I2Vsc2UKKyNkZWZpbmUgZkxTQk5FV05PVChQTlVNKSAoIWZMU0JORVcoUE5VTSkpCisjZGVmaW5l IGZMU0JPTEROT1QoVkFMKSAoIWZMU0JPTEQoVkFMKSkKKyNkZWZpbmUgZkxTQk5FVzBOT1QgKCFm TFNCTkVXMCkKKyNkZWZpbmUgZkxTQk5FVzFOT1QgKCFmTFNCTkVXMSkKKyNlbmRpZgorCisjZGVm aW5lIGZORVdSRUcoUk5VTSkgKChpbnQzMl90KShlbnYtPm5ld192YWx1ZVsoUk5VTSldKSkKKwor I2RlZmluZSBmTkVXUkVHX1NUKFJOVU0pIChlbnYtPm5ld192YWx1ZVsoUk5VTSldKQorCisjZGVm aW5lIGZTQVRVVkFMTihOLCBWQUwpIFwKKyAgICAoeyBcCisgICAgICAgIGZTRVRfT1ZFUkZMT1co KTsgXAorICAgICAgICAoKFZBTCkgPCAwKSA/IDAgOiAoKDFMTCA8PCAoTikpIC0gMSk7IFwKKyAg ICB9KQorI2RlZmluZSBmU0FUVkFMTihOLCBWQUwpIFwKKyAgICAoeyBcCisgICAgICAgIGZTRVRf T1ZFUkZMT1coKTsgXAorICAgICAgICAoKFZBTCkgPCAwKSA/ICgtKDFMTCA8PCAoKE4pIC0gMSkp KSA6ICgoMUxMIDw8ICgoTikgLSAxKSkgLSAxKTsgXAorICAgIH0pCisjZGVmaW5lIGZaWFROKE4s IE0sIFZBTCkgKChWQUwpICYgKCgxTEwgPDwgKE4pKSAtIDEpKQorI2RlZmluZSBmU1hUTihOLCBN LCBWQUwpIFwKKyAgICAoKGZaWFROKE4sIE0sIFZBTCkgXiAoMUxMIDw8ICgoTikgLSAxKSkpIC0g KDFMTCA8PCAoKE4pIC0gMSkpKQorI2RlZmluZSBmU0FUTihOLCBWQUwpIFwKKyAgICAoKGZTWFRO KE4sIDY0LCBWQUwpID09IChWQUwpKSA/IChWQUwpIDogZlNBVFZBTE4oTiwgVkFMKSkKKyNkZWZp bmUgZkFERFNBVDY0KERTVCwgQSwgQikgXAorICAgIGRvIHsgXAorICAgICAgICBzaXplOHVfdCBf X2EgPSBmQ0FTVDh1KEEpOyBcCisgICAgICAgIHNpemU4dV90IF9fYiA9IGZDQVNUOHUoQik7IFwK KyAgICAgICAgc2l6ZTh1X3QgX19zdW0gPSBfX2EgKyBfX2I7IFwKKyAgICAgICAgc2l6ZTh1X3Qg X194b3IgPSBfX2EgXiBfX2I7IFwKKyAgICAgICAgY29uc3Qgc2l6ZTh1X3QgX19tYXNrID0gMHg4 MDAwMDAwMDAwMDAwMDAwVUxMOyBcCisgICAgICAgIGlmIChfX3hvciAmIF9fbWFzaykgeyBcCisg ICAgICAgICAgICBEU1QgPSBfX3N1bTsgXAorICAgICAgICB9IFwKKyAgICAgICAgZWxzZSBpZiAo KF9fYSBeIF9fc3VtKSAmIF9fbWFzaykgeyBcCisgICAgICAgICAgICBpZiAoX19zdW0gJiBfX21h c2spIHsgXAorICAgICAgICAgICAgICAgIERTVCA9IDB4N0ZGRkZGRkZGRkZGRkZGRkxMOyBcCisg ICAgICAgICAgICAgICAgZlNFVF9PVkVSRkxPVygpOyBcCisgICAgICAgICAgICB9IGVsc2UgeyBc CisgICAgICAgICAgICAgICAgRFNUID0gMHg4MDAwMDAwMDAwMDAwMDAwTEw7IFwKKyAgICAgICAg ICAgICAgICBmU0VUX09WRVJGTE9XKCk7IFwKKyAgICAgICAgICAgIH0gXAorICAgICAgICB9IGVs c2UgeyBcCisgICAgICAgICAgICBEU1QgPSBfX3N1bTsgXAorICAgICAgICB9IFwKKyAgICB9IHdo aWxlICgwKQorI2RlZmluZSBmU0FUVU4oTiwgVkFMKSBcCisgICAgKChmWlhUTihOLCA2NCwgVkFM KSA9PSAoVkFMKSkgPyAoVkFMKSA6IGZTQVRVVkFMTihOLCBWQUwpKQorI2RlZmluZSBmU0FUSChW QUwpIChmU0FUTigxNiwgVkFMKSkKKyNkZWZpbmUgZlNBVFVIKFZBTCkgKGZTQVRVTigxNiwgVkFM KSkKKyNkZWZpbmUgZlNBVFVCKFZBTCkgKGZTQVRVTig4LCBWQUwpKQorI2RlZmluZSBmU0FUQihW QUwpIChmU0FUTig4LCBWQUwpKQorI2RlZmluZSBmSU1NRVhUKElNTSkgKElNTSA9IElNTSkKKyNk ZWZpbmUgZk1VU1RfSU1NRVhUKElNTSkgZklNTUVYVChJTU0pCisKKyNkZWZpbmUgZlBDQUxJR04o SU1NKSBJTU0gPSAoSU1NICYgflBDQUxJR05fTUFTSykKKworI2RlZmluZSBmUkVBRF9MUigpIChS RUFEX1JFRyhIRVhfUkVHX0xSKSkKKworI2RlZmluZSBmV1JJVEVfTFIoQSkgV1JJVEVfUlJFRyhI RVhfUkVHX0xSLCBBKQorI2RlZmluZSBmV1JJVEVfRlAoQSkgV1JJVEVfUlJFRyhIRVhfUkVHX0ZQ LCBBKQorI2RlZmluZSBmV1JJVEVfU1AoQSkgV1JJVEVfUlJFRyhIRVhfUkVHX1NQLCBBKQorCisj ZGVmaW5lIGZSRUFEX1NQKCkgKFJFQURfUkVHKEhFWF9SRUdfU1ApKQorI2RlZmluZSBmUkVBRF9M QzAgKFJFQURfUkVHKEhFWF9SRUdfTEMwKSkKKyNkZWZpbmUgZlJFQURfTEMxIChSRUFEX1JFRyhI RVhfUkVHX0xDMSkpCisjZGVmaW5lIGZSRUFEX1NBMCAoUkVBRF9SRUcoSEVYX1JFR19TQTApKQor I2RlZmluZSBmUkVBRF9TQTEgKFJFQURfUkVHKEhFWF9SRUdfU0ExKSkKKyNkZWZpbmUgZlJFQURf RlAoKSAoUkVBRF9SRUcoSEVYX1JFR19GUCkpCisjaWZkZWYgRklYTUUKKy8qIEZpZ3VyZSBvdXQg aG93IHRvIGdldCBpbnNuLT5leHRlbnNpb25fdmFsaWQgdG8gaGVscGVyICovCisjZGVmaW5lIGZS RUFEX0dQKCkgXAorICAgIChpbnNuLT5leHRlbnNpb25fdmFsaWQgPyAwIDogUkVBRF9SRUcoSEVY X1JFR19HUCkpCisjZWxzZQorI2RlZmluZSBmUkVBRF9HUCgpIFJFQURfUkVHKEhFWF9SRUdfR1Ap CisjZW5kaWYKKyNkZWZpbmUgZlJFQURfUEMoKSAoUkVBRF9SRUcoSEVYX1JFR19QQykpCisKKyNk ZWZpbmUgZlJFQURfTlBDKCkgKGVudi0+bmV4dF9QQyAmICgweGZmZmZmZmZlKSkKKworI2RlZmlu ZSBmUkVBRF9QMCgpIChSRUFEX1BSRUcoMCkpCisjZGVmaW5lIGZSRUFEX1AzKCkgKFJFQURfUFJF RygzKSkKKworI2RlZmluZSBmQ0hFQ0tfUENBTElHTihBKQorCisjZGVmaW5lIGZXUklURV9OUEMo QSkgd3JpdGVfbmV3X3BjKGVudiwgQSkKKworI2RlZmluZSBmQlJBTkNIKExPQywgVFlQRSkgICAg ICAgICAgZldSSVRFX05QQyhMT0MpCisjZGVmaW5lIGZKVU1QUihSRUdOTywgVEFSR0VULCBUWVBF KSBmQlJBTkNIKFRBUkdFVCwgQ09GX1RZUEVfSlVNUFIpCisjZGVmaW5lIGZISU5USlIoVEFSR0VU KSB7IC8qIE5vdCBtb2RlbGxlZCBpbiBxZW11ICovfQorI2RlZmluZSBmQ0FMTChBKSBcCisgICAg ZG8geyBcCisgICAgICAgIGZXUklURV9MUihmUkVBRF9OUEMoKSk7IFwKKyAgICAgICAgZkJSQU5D SChBLCBDT0ZfVFlQRV9DQUxMKTsgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZDQUxMUihB KSBcCisgICAgZG8geyBcCisgICAgICAgIGZXUklURV9MUihmUkVBRF9OUEMoKSk7IFwKKyAgICAg ICAgZkJSQU5DSChBLCBDT0ZfVFlQRV9DQUxMUik7IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmlu ZSBmV1JJVEVfTE9PUF9SRUdTMChTVEFSVCwgQ09VTlQpIFwKKyAgICBkbyB7IFwKKyAgICAgICAg V1JJVEVfUlJFRyhIRVhfUkVHX0xDMCwgQ09VTlQpOyAgXAorICAgICAgICBXUklURV9SUkVHKEhF WF9SRUdfU0EwLCBTVEFSVCk7IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBmV1JJVEVfTE9P UF9SRUdTMShTVEFSVCwgQ09VTlQpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgV1JJVEVfUlJFRyhI RVhfUkVHX0xDMSwgQ09VTlQpOyAgXAorICAgICAgICBXUklURV9SUkVHKEhFWF9SRUdfU0ExLCBT VEFSVCk7XAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZXUklURV9MQzAoVkFMKSBXUklURV9S UkVHKEhFWF9SRUdfTEMwLCBWQUwpCisjZGVmaW5lIGZXUklURV9MQzEoVkFMKSBXUklURV9SUkVH KEhFWF9SRUdfTEMxLCBWQUwpCisKKyNkZWZpbmUgZkNBUlJZX0ZST01fQUREKEEsIEIsIEMpIGNh cnJ5X2Zyb21fYWRkNjQoQSwgQiwgQykKKworI2RlZmluZSBmU0VUX09WRVJGTE9XKCkgU0VUX1VT Ul9GSUVMRChVU1JfT1ZGLCAxKQorI2RlZmluZSBmU0VUX0xQQ0ZHKFZBTCkgU0VUX1VTUl9GSUVM RChVU1JfTFBDRkcsIChWQUwpKQorI2RlZmluZSBmR0VUX0xQQ0ZHIChHRVRfVVNSX0ZJRUxEKFVT Ul9MUENGRykpCisjZGVmaW5lIGZXUklURV9QMChWQUwpIFdSSVRFX1BSRUcoMCwgVkFMKQorI2Rl ZmluZSBmV1JJVEVfUDEoVkFMKSBXUklURV9QUkVHKDEsIFZBTCkKKyNkZWZpbmUgZldSSVRFX1Ay KFZBTCkgV1JJVEVfUFJFRygyLCBWQUwpCisjZGVmaW5lIGZXUklURV9QMyhWQUwpIFdSSVRFX1BS RUcoMywgVkFMKQorI2RlZmluZSBmUEFSVDEoV09SSykgaWYgKHBhcnQxKSB7IFdPUks7IHJldHVy bjsgfQorI2RlZmluZSBmQ0FTVDR1KEEpICgoc2l6ZTR1X3QpKEEpKQorI2RlZmluZSBmQ0FTVDRz KEEpICgoc2l6ZTRzX3QpKEEpKQorI2RlZmluZSBmQ0FTVDh1KEEpICgoc2l6ZTh1X3QpKEEpKQor I2RlZmluZSBmQ0FTVDhzKEEpICgoc2l6ZThzX3QpKEEpKQorI2RlZmluZSBmQ0FTVDRfNHMoQSkg KChzaXplNHNfdCkoQSkpCisjZGVmaW5lIGZDQVNUNF80dShBKSAoKHNpemU0dV90KShBKSkKKyNk ZWZpbmUgZkNBU1Q0XzhzKEEpICgoc2l6ZThzX3QpKChzaXplNHNfdCkoQSkpKQorI2RlZmluZSBm Q0FTVDRfOHUoQSkgKChzaXplOHVfdCkoKHNpemU0dV90KShBKSkpCisjZGVmaW5lIGZDQVNUOF84 cyhBKSAoKHNpemU4c190KShBKSkKKyNkZWZpbmUgZkNBU1Q4Xzh1KEEpICgoc2l6ZTh1X3QpKEEp KQorI2RlZmluZSBmQ0FTVDJfOHMoQSkgKChzaXplOHNfdCkoKHNpemUyc190KShBKSkpCisjZGVm aW5lIGZDQVNUMl84dShBKSAoKHNpemU4dV90KSgoc2l6ZTJ1X3QpKEEpKSkKKyNkZWZpbmUgZlpF OF8xNihBKSAoKHNpemUyc190KSgoc2l6ZTF1X3QpKEEpKSkKKyNkZWZpbmUgZlNFOF8xNihBKSAo KHNpemUyc190KSgoc2l6ZTFzX3QpKEEpKSkKKyNkZWZpbmUgZlNFMTZfMzIoQSkgKChzaXplNHNf dCkoKHNpemUyc190KShBKSkpCisjZGVmaW5lIGZaRTE2XzMyKEEpICgoc2l6ZTR1X3QpKChzaXpl MnVfdCkoQSkpKQorI2RlZmluZSBmU0UzMl82NChBKSAoKHNpemU4c190KSgoc2l6ZTRzX3QpKEEp KSkKKyNkZWZpbmUgZlpFMzJfNjQoQSkgKChzaXplOHVfdCkoKHNpemU0dV90KShBKSkpCisjZGVm aW5lIGZTRThfMzIoQSkgKChzaXplNHNfdCkoKHNpemUxc190KShBKSkpCisjZGVmaW5lIGZaRThf MzIoQSkgKChzaXplNHNfdCkoKHNpemUxdV90KShBKSkpCisjZGVmaW5lIGZNUFk4VVUoQSwgQikg KGludCkoZlpFOF8xNihBKSAqIGZaRThfMTYoQikpCisjZGVmaW5lIGZNUFk4VVMoQSwgQikgKGlu dCkoZlpFOF8xNihBKSAqIGZTRThfMTYoQikpCisjZGVmaW5lIGZNUFk4U1UoQSwgQikgKGludCko ZlNFOF8xNihBKSAqIGZaRThfMTYoQikpCisjZGVmaW5lIGZNUFk4U1MoQSwgQikgKGludCkoKHNo b3J0KShBKSAqIChzaG9ydCkoQikpCisjZGVmaW5lIGZNUFkxNlNTKEEsIEIpIGZTRTMyXzY0KGZT RTE2XzMyKEEpICogZlNFMTZfMzIoQikpCisjZGVmaW5lIGZNUFkxNlVVKEEsIEIpIGZaRTMyXzY0 KGZaRTE2XzMyKEEpICogZlpFMTZfMzIoQikpCisjZGVmaW5lIGZNUFkxNlNVKEEsIEIpIGZTRTMy XzY0KGZTRTE2XzMyKEEpICogZlpFMTZfMzIoQikpCisjZGVmaW5lIGZNUFkxNlVTKEEsIEIpIGZN UFkxNlNVKEIsIEEpCisjZGVmaW5lIGZNUFkzMlNTKEEsIEIpIChmU0UzMl82NChBKSAqIGZTRTMy XzY0KEIpKQorI2RlZmluZSBmTVBZMzJVVShBLCBCKSAoZlpFMzJfNjQoQSkgKiBmWkUzMl82NChC KSkKKyNkZWZpbmUgZk1QWTMyU1UoQSwgQikgKGZTRTMyXzY0KEEpICogZlpFMzJfNjQoQikpCisj ZGVmaW5lIGZNUFkzMjE2U1MoQSwgQikgKGZTRTMyXzY0KEEpICogZlNYVE4oMTYsIDY0LCBCKSkK KyNkZWZpbmUgZk1QWTMyMTZTVShBLCBCKSAoZlNFMzJfNjQoQSkgKiBmWlhUTigxNiwgNjQsIEIp KQorI2RlZmluZSBmUk9VTkQoQSkgKEEgKyAweDgwMDApCisjZGVmaW5lIGZDTElQKERTVCwgU1JD LCBVKSBcCisgICAgZG8geyBcCisgICAgICAgIHNpemU0c190IG1heHYgPSAoMSA8PCBVKSAtIDE7 IFwKKyAgICAgICAgc2l6ZTRzX3QgbWludiA9IC0oMSA8PCBVKTsgXAorICAgICAgICBEU1QgPSBm TUlOKG1heHYsIGZNQVgoU1JDLCBtaW52KSk7IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBm Q1JORChBKSAoKCgoQSkgJiAweDMpID09IDB4MykgPyAoKEEpICsgMSkgOiAoKEEpKSkKKyNkZWZp bmUgZlJORE4oQSwgTikgKCgoKE4pID09IDApID8gKEEpIDogKCgoZlNFMzJfNjQoQSkpICsgKDEg PDwgKChOKSAtIDEpKSkpKSkKKyNkZWZpbmUgZkNSTkROKEEsIE4pIChjb252X3JvdW5kKEEsIE4p KQorI2RlZmluZSBmQUREMTI4KEEsIEIpIChhZGQxMjgoQSwgQikpCisjZGVmaW5lIGZTVUIxMjgo QSwgQikgKHN1YjEyOChBLCBCKSkKKyNkZWZpbmUgZlNISUZUUjEyOChBLCBCKSAoc2hpZnRyMTI4 KEEsIEIpKQorI2RlZmluZSBmU0hJRlRMMTI4KEEsIEIpIChzaGlmdGwxMjgoQSwgQikpCisjZGVm aW5lIGZBTkQxMjgoQSwgQikgKGFuZDEyOChBLCBCKSkKKyNkZWZpbmUgZkNBU1Q4U18xNlMoQSkg KGNhc3Q4c190b18xNnMoQSkpCisjZGVmaW5lIGZDQVNUMTZTXzhTKEEpIChjYXN0MTZzX3RvXzhz KEEpKQorCisjZGVmaW5lIGZFQV9SSShSRUcsIElNTSkgXAorICAgIGRvIHsgXAorICAgICAgICBF QSA9IFJFRyArIElNTTsgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZFQV9SUnMoUkVHLCBS RUcyLCBTQ0FMRSkgXAorICAgIGRvIHsgXAorICAgICAgICBFQSA9IFJFRyArIChSRUcyIDw8IFND QUxFKTsgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZFQV9JUnMoSU1NLCBSRUcsIFNDQUxF KSBcCisgICAgZG8geyBcCisgICAgICAgIEVBID0gSU1NICsgKFJFRyA8PCBTQ0FMRSk7IFwKKyAg ICB9IHdoaWxlICgwKQorCisjaWZkZWYgUUVNVV9HRU5FUkFURQorI2RlZmluZSBmRUFfSU1NKElN TSkgICAgICAgIHRjZ19nZW5fbW92aV90bChFQSwgKElNTSkpCisjZGVmaW5lIGZFQV9SRUcoUkVH KSAgICAgICAgdGNnX2dlbl9tb3ZfdGwoRUEsIFJFRykKKyNkZWZpbmUgZlBNX0koUkVHLCBJTU0p ICAgICB0Y2dfZ2VuX2FkZGlfdGwoUkVHLCBSRUcsIChJTU0pKQorI2RlZmluZSBmUE1fTShSRUcs IE1WQUwpICAgIHRjZ19nZW5fYWRkX3RsKFJFRywgUkVHLCBNVkFMKQorI2Vsc2UKKyNkZWZpbmUg ZkVBX0lNTShJTU0pICAgICAgICBkbyB7IEVBID0gKElNTSk7IH0gd2hpbGUgKDApCisjZGVmaW5l IGZFQV9SRUcoUkVHKSAgICAgICAgZG8geyBFQSA9IChSRUcpOyB9IHdoaWxlICgwKQorI2RlZmlu ZSBmRUFfR1BJKElNTSkgICAgICAgIGRvIHsgRUEgPSBmUkVBRF9HUCgpICsgKElNTSk7IH0gd2hp bGUgKDApCisjZGVmaW5lIGZQTV9JKFJFRywgSU1NKSAgICAgZG8geyBSRUcgPSBSRUcgKyAoSU1N KTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgZlBNX00oUkVHLCBNVkFMKSAgICBkbyB7IFJFRyA9IFJF RyArIChNVkFMKTsgfSB3aGlsZSAoMCkKKyNlbmRpZgorI2RlZmluZSBmU0NBTEUoTiwgQSkgKCgo c2l6ZThzX3QpKEEpKSA8PCBOKQorI2RlZmluZSBmU0FUVyhBKSBmU0FUTigzMiwgKChsb25nIGxv bmcpQSkpCisjZGVmaW5lIGZTQVQoQSkgZlNBVE4oMzIsIChBKSkKKyNkZWZpbmUgZlNBVF9PUklH X1NITChBLCBPUklHX1JFRykgXAorICAgICgoKChzaXplNHNfdCkoKGZTQVQoQSkpIF4gKChzaXpl NHNfdCkoT1JJR19SRUcpKSkpIDwgMCkgXAorICAgICAgICA/IGZTQVRWQUxOKDMyLCAoKHNpemU0 c190KShPUklHX1JFRykpKSBcCisgICAgICAgIDogKCgoKE9SSUdfUkVHKSA+IDApICYmICgoQSkg PT0gMCkpID8gZlNBVFZBTE4oMzIsIChPUklHX1JFRykpIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOiBmU0FUKEEpKSkKKyNkZWZpbmUgZlBBU1MoQSkgQQor I2RlZmluZSBmUk5EKEEpICgoKEEpICsgMSkgPj4gMSkKKyNkZWZpbmUgZkJJRElSX1NISUZUTChT UkMsIFNIQU1ULCBSRUdTVFlQRSkgXAorICAgICgoKFNIQU1UKSA8IDApID8gKChmQ0FTVCMjUkVH U1RZUEUoU1JDKSA+PiAoKC0oU0hBTVQpKSAtIDEpKSA+PiAxKSBcCisgICAgICAgICAgICAgICAg ICAgOiAoZkNBU1QjI1JFR1NUWVBFKFNSQykgPDwgKFNIQU1UKSkpCisjZGVmaW5lIGZCSURJUl9B U0hJRlRMKFNSQywgU0hBTVQsIFJFR1NUWVBFKSBcCisgICAgZkJJRElSX1NISUZUTChTUkMsIFNI QU1ULCBSRUdTVFlQRSMjcykKKyNkZWZpbmUgZkJJRElSX0xTSElGVEwoU1JDLCBTSEFNVCwgUkVH U1RZUEUpIFwKKyAgICBmQklESVJfU0hJRlRMKFNSQywgU0hBTVQsIFJFR1NUWVBFIyN1KQorI2Rl ZmluZSBmQklESVJfQVNISUZUTF9TQVQoU1JDLCBTSEFNVCwgUkVHU1RZUEUpIFwKKyAgICAoKChT SEFNVCkgPCAwKSA/ICgoZkNBU1QjI1JFR1NUWVBFIyNzKFNSQykgPj4gKCgtKFNIQU1UKSkgLSAx KSkgPj4gMSkgXAorICAgICAgICAgICAgICAgICAgIDogZlNBVF9PUklHX1NITChmQ0FTVCMjUkVH U1RZUEUjI3MoU1JDKSA8PCAoU0hBTVQpLCAoU1JDKSkpCisjZGVmaW5lIGZCSURJUl9TSElGVFIo U1JDLCBTSEFNVCwgUkVHU1RZUEUpIFwKKyAgICAoKChTSEFNVCkgPCAwKSA/ICgoZkNBU1QjI1JF R1NUWVBFKFNSQykgPDwgKCgtKFNIQU1UKSkgLSAxKSkgPDwgMSkgXAorICAgICAgICAgICAgICAg ICAgIDogKGZDQVNUIyNSRUdTVFlQRShTUkMpID4+IChTSEFNVCkpKQorI2RlZmluZSBmQklESVJf QVNISUZUUihTUkMsIFNIQU1ULCBSRUdTVFlQRSkgXAorICAgIGZCSURJUl9TSElGVFIoU1JDLCBT SEFNVCwgUkVHU1RZUEUjI3MpCisjZGVmaW5lIGZCSURJUl9MU0hJRlRSKFNSQywgU0hBTVQsIFJF R1NUWVBFKSBcCisgICAgZkJJRElSX1NISUZUUihTUkMsIFNIQU1ULCBSRUdTVFlQRSMjdSkKKyNk ZWZpbmUgZkJJRElSX0FTSElGVFJfU0FUKFNSQywgU0hBTVQsIFJFR1NUWVBFKSBcCisgICAgKCgo U0hBTVQpIDwgMCkgPyBmU0FUX09SSUdfU0hMKChmQ0FTVCMjUkVHU1RZUEUjI3MoU1JDKSBcCisg ICAgICAgICAgICAgICAgICAgICAgICA8PCAoKC0oU0hBTVQpKSAtIDEpKSA8PCAxLCAoU1JDKSkg XAorICAgICAgICAgICAgICAgICAgIDogKGZDQVNUIyNSRUdTVFlQRSMjcyhTUkMpID4+IChTSEFN VCkpKQorI2RlZmluZSBmQVNISUZUUihTUkMsIFNIQU1ULCBSRUdTVFlQRSkgKGZDQVNUIyNSRUdT VFlQRSMjcyhTUkMpID4+IChTSEFNVCkpCisjZGVmaW5lIGZMU0hJRlRSKFNSQywgU0hBTVQsIFJF R1NUWVBFKSBcCisgICAgKCgoU0hBTVQpID49IDY0KSA/IDAgOiAoZkNBU1QjI1JFR1NUWVBFIyN1 KFNSQykgPj4gKFNIQU1UKSkpCisjZGVmaW5lIGZST1RMKFNSQywgU0hBTVQsIFJFR1NUWVBFKSBc CisgICAgKCgoU0hBTVQpID09IDApID8gKFNSQykgOiAoKGZDQVNUIyNSRUdTVFlQRSMjdShTUkMp IDw8IChTSEFNVCkpIHwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChmQ0FTVCMj UkVHU1RZUEUjI3UoU1JDKSA+PiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo KHNpemVvZihTUkMpICogOCkgLSAoU0hBTVQpKSkpKSkKKyNkZWZpbmUgZlJPVFIoU1JDLCBTSEFN VCwgUkVHU1RZUEUpIFwKKyAgICAoKChTSEFNVCkgPT0gMCkgPyAoU1JDKSA6ICgoZkNBU1QjI1JF R1NUWVBFIyN1KFNSQykgPj4gKFNIQU1UKSkgfCBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoKGZDQVNUIyNSRUdTVFlQRSMjdShTUkMpIDw8IFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgoc2l6ZW9mKFNSQykgKiA4KSAtIChTSEFNVCkpKSkpKQorI2RlZmluZSBm QVNISUZUTChTUkMsIFNIQU1ULCBSRUdTVFlQRSkgXAorICAgICgoKFNIQU1UKSA+PSA2NCkgPyAw IDogKGZDQVNUIyNSRUdTVFlQRSMjcyhTUkMpIDw8IChTSEFNVCkpKQorI2RlZmluZSBmRkxPQVQo QSkgXAorICAgICh7IHVuaW9uIHsgZmxvYXQgZjsgc2l6ZTR1X3QgaTsgfSBfZmlwdW47IF9maXB1 bi5pID0gKEEpOyBfZmlwdW4uZjsgfSkKKyNkZWZpbmUgZlVORkxPQVQoQSkgXAorICAgICh7IHVu aW9uIHsgZmxvYXQgZjsgc2l6ZTR1X3QgaTsgfSBfZmlwdW47IFwKKyAgICAgX2ZpcHVuLmYgPSAo QSk7IGlzbmFuKF9maXB1bi5mKSA/IDB4RkZGRkZGRkZVIDogX2ZpcHVuLmk7IH0pCisjZGVmaW5l IGZTRk5BTlZBTCgpIDB4ZmZmZmZmZmYKKyNkZWZpbmUgZlNGSU5GVkFMKEEpICgoKEEpICYgMHg4 MDAwMDAwMCkgfCAweDdmODAwMDAwKQorI2RlZmluZSBmU0ZPTkVWQUwoQSkgKCgoQSkgJiAweDgw MDAwMDAwKSB8IGZVTkZMT0FUKDEuMCkpCisjZGVmaW5lIGZDSEVDS1NGTkFOKERTVCwgQSkgXAor ICAgIGRvIHsgXAorICAgICAgICBpZiAoaXNuYW4oZkZMT0FUKEEpKSkgeyBcCisgICAgICAgICAg ICBpZiAoKGZHRVRCSVQoMjIsIEEpKSA9PSAwKSB7IFwKKyAgICAgICAgICAgICAgICBmUkFJU0VG TEFHUyhGRV9JTlZBTElEKTsgXAorICAgICAgICAgICAgfSBcCisgICAgICAgICAgICBEU1QgPSBm U0ZOQU5WQUwoKTsgXAorICAgICAgICB9IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBmQ0hF Q0tTRk5BTjMoRFNULCBBLCBCLCBDKSBcCisgICAgZG8geyBcCisgICAgICAgIGZDSEVDS1NGTkFO KERTVCwgQSk7IFwKKyAgICAgICAgZkNIRUNLU0ZOQU4oRFNULCBCKTsgXAorICAgICAgICBmQ0hF Q0tTRk5BTihEU1QsIEMpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgZlNGX0JJQVMoKSAx MjcKKyNkZWZpbmUgZlNGX01BTlRCSVRTKCkgMjMKKyNkZWZpbmUgZlNGX01VTF9QT1cyKEEsIEIp IFwKKyAgICAoZlVORkxPQVQoZkZMT0FUKEEpICogZkZMT0FUKChmU0ZfQklBUygpICsgKEIpKSA8 PCBmU0ZfTUFOVEJJVFMoKSkpKQorI2RlZmluZSBmU0ZfR0VURVhQKEEpICgoKEEpID4+IGZTRl9N QU5UQklUUygpKSAmIDB4ZmYpCisjZGVmaW5lIGZTRl9NQVhFWFAoKSAoMjU0KQorI2RlZmluZSBm U0ZfUkVDSVBfQ09NTU9OKE4sIEQsIE8sIEEpIGFyY2hfc2ZfcmVjaXBfY29tbW9uKCZOLCAmRCwg Jk8sICZBKQorI2RlZmluZSBmU0ZfSU5WU1FSVF9DT01NT04oTiwgTywgQSkgYXJjaF9zZl9pbnZz cXJ0X2NvbW1vbigmTiwgJk8sICZBKQorI2RlZmluZSBmRk1BRlgoQSwgQiwgQywgQURKKSBpbnRl cm5hbF9mbWFmeChBLCBCLCBDLCBmU1hUTig4LCA2NCwgQURKKSkKKyNkZWZpbmUgZkZNQUYoQSwg QiwgQykgaW50ZXJuYWxfZm1hZngoQSwgQiwgQywgMCkKKyNkZWZpbmUgZlNGTVBZKEEsIEIpIGlu dGVybmFsX21weWYoQSwgQikKKyNkZWZpbmUgZk1BS0VTRihTSUdOLCBFWFAsIE1BTlQpIFwKKyAg ICAoKCgoU0lHTikgJiAxKSA8PCAzMSkgfCBcCisgICAgICgoKEVYUCkgJiAweGZmKSA8PCBmU0Zf TUFOVEJJVFMoKSkgfCBcCisgICAgICgoTUFOVCkgJiAoKDEgPDwgZlNGX01BTlRCSVRTKCkpIC0g MSkpKQorI2RlZmluZSBmRE9VQkxFKEEpIFwKKyAgICAoeyB1bmlvbiB7IGRvdWJsZSBmOyBzaXpl OHVfdCBpOyB9IF9maXB1bjsgX2ZpcHVuLmkgPSAoQSk7IF9maXB1bi5mOyB9KQorI2RlZmluZSBm VU5ET1VCTEUoQSkgXAorICAgICh7IHVuaW9uIHsgZG91YmxlIGY7IHNpemU4dV90IGk7IH0gX2Zp cHVuOyBcCisgICAgIF9maXB1bi5mID0gKEEpOyBcCisgICAgIGlzbmFuKF9maXB1bi5mKSA/IDB4 RkZGRkZGRkZGRkZGRkZGRlVMTCA6IF9maXB1bi5pOyB9KQorI2RlZmluZSBmREZOQU5WQUwoKSAw eGZmZmZmZmZmZmZmZmZmZmZVTEwKKyNkZWZpbmUgZkRGX0lTTk9STUFMKFgpIChmcGNsYXNzaWZ5 KGZET1VCTEUoWCkpID09IEZQX05PUk1BTCkKKyNkZWZpbmUgZkRGX0lTREVOT1JNKFgpIChmcGNs YXNzaWZ5KGZET1VCTEUoWCkpID09IEZQX1NVQk5PUk1BTCkKKyNkZWZpbmUgZkRGX0lTQklHKFgp IChmREZfR0VURVhQKFgpID49IDUxMikKKyNkZWZpbmUgZkRGX01BTlRCSVRTKCkgNTIKKyNkZWZp bmUgZkRGX0dFVEVYUChBKSAoKChBKSA+PiBmREZfTUFOVEJJVFMoKSkgJiAweDdmZikKKyNkZWZp bmUgZkZNQShBLCBCLCBDKSBpbnRlcm5hbF9mbWEoQSwgQiwgQykKKyNkZWZpbmUgZkRGX01QWV9I SChBLCBCLCBBQ0MpIGludGVybmFsX21weWhoKEEsIEIsIEFDQykKKworI2lmZGVmIFFFTVVfR0VO RVJBVEUKKy8qIFRoZXNlIHdpbGwgYmUgbmVlZGVkIGlmIHdlIHdyaXRlIGFueSBGUCBpbnN0cnVj dGlvbnMgd2l0aCBUQ0cgKi8KKyNkZWZpbmUgZkZQT1BfU1RBUlQoKSAgICAgIC8qIG5vdGhpbmcg Ki8KKyNkZWZpbmUgZkZQT1BfRU5EKCkgICAgICAgIC8qIG5vdGhpbmcgKi8KKyNlbHNlCisjZGVm aW5lIGZGUE9QX1NUQVJUKCkgYXJjaF9mcG9wX3N0YXJ0KGVudikKKyNkZWZpbmUgZkZQT1BfRU5E KCkgYXJjaF9mcG9wX2VuZChlbnYpCisjZW5kaWYKKworI2RlZmluZSBmRlBTRVRST1VORF9ORUFS RVNUKCkgZmVzZXRyb3VuZChGRV9UT05FQVJFU1QpCisjZGVmaW5lIGZGUFNFVFJPVU5EX0NIT1Ao KSBmZXNldHJvdW5kKEZFX1RPV0FSRFpFUk8pCisjZGVmaW5lIGZGUENBTkNFTEZMQUdTKCkgZmVj bGVhcmV4Y2VwdChGRV9BTExfRVhDRVBUKQorI2RlZmluZSBmSVNJTkZQUk9EKEEsIEIpIFwKKyAg ICAoKGlzaW5mKEEpICYmIGlzaW5mKEIpKSB8fCBcCisgICAgIChpc2luZihBKSAmJiBpc2Zpbml0 ZShCKSAmJiAoKEIpICE9IDAuMCkpIHx8IFwKKyAgICAgKGlzaW5mKEIpICYmIGlzZmluaXRlKEEp ICYmICgoQSkgIT0gMC4wKSkpCisjZGVmaW5lIGZJU1pFUk9QUk9EKEEsIEIpIFwKKyAgICAoKCgo QSkgPT0gMC4wKSAmJiBpc2Zpbml0ZShCKSkgfHwgKCgoQikgPT0gMC4wKSAmJiBpc2Zpbml0ZShB KSkpCisjZGVmaW5lIGZSQUlTRUZMQUdTKEEpIGFyY2hfcmFpc2VfZnBmbGFnKEEpCisjZGVmaW5l IGZERl9NQVgoQSwgQikgXAorICAgICgoKEEpID09IChCKSkgPyBmRE9VQkxFKGZVTkRPVUJMRShB KSAmIGZVTkRPVUJMRShCKSkgOiBmbWF4KEEsIEIpKQorI2RlZmluZSBmREZfTUlOKEEsIEIpIFwK KyAgICAoKChBKSA9PSAoQikpID8gZkRPVUJMRShmVU5ET1VCTEUoQSkgfCBmVU5ET1VCTEUoQikp IDogZm1pbihBLCBCKSkKKyNkZWZpbmUgZlNGX01BWChBLCBCKSBcCisgICAgKCgoQSkgPT0gKEIp KSA/IGZGTE9BVChmVU5GTE9BVChBKSAmIGZVTkZMT0FUKEIpKSA6IGZtYXhmKEEsIEIpKQorI2Rl ZmluZSBmU0ZfTUlOKEEsIEIpIFwKKyAgICAoKChBKSA9PSAoQikpID8gZkZMT0FUKGZVTkZMT0FU KEEpIHwgZlVORkxPQVQoQikpIDogZm1pbmYoQSwgQikpCisKKyNpZmRlZiBRRU1VX0dFTkVSQVRF CisjZGVmaW5lIGZMT0FEKE5VTSwgU0laRSwgU0lHTiwgRUEsIERTVCkgTUVNX0xPQUQjI1NJWkUj I1NJR04oRFNULCBFQSkKKyNlbHNlCisjZGVmaW5lIGZMT0FEKE5VTSwgU0laRSwgU0lHTiwgRUEs IERTVCkgXAorICAgIERTVCA9IChzaXplIyNTSVpFIyNTSUdOIyNfdClNRU1fTE9BRCMjU0laRSMj U0lHTihFQSkKKyNlbmRpZgorCisjZGVmaW5lIGZNRU1PUChOVU0sIFNJWkUsIFNJR04sIEVBLCBG TlRZUEUsIFZBTFVFKQorCisjZGVmaW5lIGZHRVRfRlJBTUVLRVkoKSBSRUFEX1JFRyhIRVhfUkVH X0ZSQU1FS0VZKQorI2RlZmluZSBmRlJBTUVfU0NSQU1CTEUoVkFMKSAoKFZBTCkgXiAoZkNBU1Q4 dShmR0VUX0ZSQU1FS0VZKCkpIDw8IDMyKSkKKyNkZWZpbmUgZkZSQU1FX1VOU0NSQU1CTEUoVkFM KSBmRlJBTUVfU0NSQU1CTEUoVkFMKQorCisjaWZkZWYgQ09ORklHX1VTRVJfT05MWQorI2RlZmlu ZSBmRlJBTUVDSEVDSyhBRERSLCBFQSkgZG8geyB9IHdoaWxlICgwKSAvKiBOb3QgbW9kZWxsZWQg aW4gbGludXgtdXNlciAqLworI2Vsc2UKKy8qIFN5c3RlbSBtb2RlIG5vdCBpbXBsZW1lbnRlZCB5 ZXQgKi8KKyNkZWZpbmUgZkZSQU1FQ0hFQ0soQUREUiwgRUEpICBnX2Fzc2VydF9ub3RfcmVhY2hl ZCgpOworI2VuZGlmCisKKyNpZmRlZiBRRU1VX0dFTkVSQVRFCisjZGVmaW5lIGZMT0FEX0xPQ0tF RChOVU0sIFNJWkUsIFNJR04sIEVBLCBEU1QpIFwKKyAgICBnZW5fbG9hZF9sb2NrZWQjI1NJWkUj I1NJR04oRFNULCBFQSwgY3R4LT5tZW1faWR4KTsKKyNlbmRpZgorCisjZGVmaW5lIGZTVE9SRShO VU0sIFNJWkUsIEVBLCBTUkMpIE1FTV9TVE9SRSMjU0laRShFQSwgU1JDLCBzbG90KQorCisjaWZk ZWYgUUVNVV9HRU5FUkFURQorI2RlZmluZSBmU1RPUkVfTE9DS0VEKE5VTSwgU0laRSwgRUEsIFNS QywgUFJFRCkgXAorICAgIGdlbl9zdG9yZV9jb25kaXRpb25hbCMjU0laRShlbnYsIGN0eCwgUGRO LCBQUkVELCBFQSwgU1JDKTsKKyNlbmRpZgorCisjZGVmaW5lIGZHRVRCWVRFKE4sIFNSQykgKChz aXplMXNfdCkoKFNSQyA+PiAoKE4pICogOCkpICYgMHhmZikpCisjZGVmaW5lIGZHRVRVQllURShO LCBTUkMpICgoc2l6ZTF1X3QpKChTUkMgPj4gKChOKSAqIDgpKSAmIDB4ZmYpKQorCisjZGVmaW5l IGZTRVRCWVRFKE4sIERTVCwgVkFMKSBcCisgICAgZG8geyBcCisgICAgICAgIERTVCA9IChEU1Qg JiB+KDB4MGZmTEwgPDwgKChOKSAqIDgpKSkgfCBcCisgICAgICAgICgoKHNpemU4dV90KSgoVkFM KSAmIDB4MGZmTEwpKSA8PCAoKE4pICogOCkpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUg ZkdFVEhBTEYoTiwgU1JDKSAoKHNpemUyc190KSgoU1JDID4+ICgoTikgKiAxNikpICYgMHhmZmZm KSkKKyNkZWZpbmUgZkdFVFVIQUxGKE4sIFNSQykgKChzaXplMnVfdCkoKFNSQyA+PiAoKE4pICog MTYpKSAmIDB4ZmZmZikpCisjZGVmaW5lIGZTRVRIQUxGKE4sIERTVCwgVkFMKSBcCisgICAgZG8g eyBcCisgICAgICAgIERTVCA9IChEU1QgJiB+KDB4MGZmZmZMTCA8PCAoKE4pICogMTYpKSkgfCBc CisgICAgICAgICgoKHNpemU4dV90KSgoVkFMKSAmIDB4MGZmZmYpKSA8PCAoKE4pICogMTYpKTsg XAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZTRVRIQUxGdyBmU0VUSEFMRgorI2RlZmluZSBm U0VUSEFMRmQgZlNFVEhBTEYKKworI2RlZmluZSBmR0VUV09SRChOLCBTUkMpIFwKKyAgICAoKHNp emU4c190KSgoc2l6ZTRzX3QpKChTUkMgPj4gKChOKSAqIDMyKSkgJiAweDBmZmZmZmZmZkxMKSkp CisjZGVmaW5lIGZHRVRVV09SRChOLCBTUkMpIFwKKyAgICAoKHNpemU4dV90KSgoc2l6ZTR1X3Qp KChTUkMgPj4gKChOKSAqIDMyKSkgJiAweDBmZmZmZmZmZkxMKSkpCisKKyNkZWZpbmUgZlNFVFdP UkQoTiwgRFNULCBWQUwpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgRFNUID0gKERTVCAmIH4oMHgw ZmZmZmZmZmZMTCA8PCAoKE4pICogMzIpKSkgfCBcCisgICAgICAgICAgICAgICgoKFZBTCkgJiAw eDBmZmZmZmZmZkxMKSA8PCAoKE4pICogMzIpKTsgXAorICAgIH0gd2hpbGUgKDApCisKKyNkZWZp bmUgZlNFVEJJVChOLCBEU1QsIFZBTCkgXAorICAgIGRvIHsgXAorICAgICAgICBEU1QgPSAoRFNU ICYgfigxVUxMIDw8IChOKSkpIHwgKCgoc2l6ZTh1X3QpKFZBTCkpIDw8IChOKSk7IFwKKyAgICB9 IHdoaWxlICgwKQorCisjZGVmaW5lIGZHRVRCSVQoTiwgU1JDKSAoKChTUkMpID4+IE4pICYgMSkK KyNkZWZpbmUgZlNFVEJJVFMoSEksIExPLCBEU1QsIFZBTCkgXAorICAgIGRvIHsgXAorICAgICAg ICBpbnQgajsgXAorICAgICAgICBmb3IgKGogPSBMTzsgaiA8PSBISTsgaisrKSB7IFwKKyAgICAg ICAgICAgIGZTRVRCSVQoaiwgRFNULCBWQUwpOyBcCisgICAgICAgIH0gXAorICAgIH0gd2hpbGUg KDApCisjZGVmaW5lIGZDT1VOVE9ORVNfNChWQUwpIGN0cG9wMzIoVkFMKQorI2RlZmluZSBmQ09V TlRPTkVTXzgoVkFMKSBjdHBvcDY0KFZBTCkKKyNkZWZpbmUgZkJSRVZfOChWQUwpIHJldmJpdDY0 KFZBTCkKKyNkZWZpbmUgZkJSRVZfNChWQUwpIHJldmJpdDMyKFZBTCkKKyNkZWZpbmUgZkNMMV84 KFZBTCkgY2xvNjQoVkFMKQorI2RlZmluZSBmQ0wxXzQoVkFMKSBjbG8zMihWQUwpCisjZGVmaW5l IGZJTlRFUkxFQVZFKE9ERCwgRVZFTikgaW50ZXJsZWF2ZShPREQsIEVWRU4pCisjZGVmaW5lIGZE RUlOVEVSTEVBVkUoTUlYRUQpIGRlaW50ZXJsZWF2ZShNSVhFRCkKKyNkZWZpbmUgZkhJREUoQSkg QQorI2RlZmluZSBmQ09OU1RMTChBKSBBIyNMTAorI2RlZmluZSBmRUNITyhBKSAoQSkKKworI2Rl ZmluZSBmVFJBUChUUkFQVFlQRSwgSU1NKSBoZWxwZXJfcmFpc2VfZXhjZXB0aW9uKGVudiwgSEVY X0VYQ1BfVFJBUDApCisKKyNkZWZpbmUgZkFMSUdOX1JFR19GSUVMRF9WQUxVRShGSUVMRCwgVkFM KSBcCisgICAgKChWQUwpIDw8IHJlZ19maWVsZF9pbmZvW0ZJRUxEXS5vZmZzZXQpCisjZGVmaW5l IGZHRVRfUkVHX0ZJRUxEX01BU0soRklFTEQpIFwKKyAgICAoKCgxIDw8IHJlZ19maWVsZF9pbmZv W0ZJRUxEXS53aWR0aCkgLSAxKSA8PCByZWdfZmllbGRfaW5mb1tGSUVMRF0ub2Zmc2V0KQorI2Rl ZmluZSBmUkVBRF9SRUdfRklFTEQoUkVHLCBGSUVMRCkgXAorICAgIGZFWFRSQUNUVV9CSVRTKGVu di0+Z3ByW0hFWF9SRUdfIyNSRUddLCBcCisgICAgICAgICAgICAgICAgICAgcmVnX2ZpZWxkX2lu Zm9bRklFTERdLndpZHRoLCBcCisgICAgICAgICAgICAgICAgICAgcmVnX2ZpZWxkX2luZm9bRklF TERdLm9mZnNldCkKKyNkZWZpbmUgZkdFVF9GSUVMRChWQUwsIEZJRUxEKQorI2RlZmluZSBmU0VU X0ZJRUxEKFZBTCwgRklFTEQsIE5FV1ZBTCkKKyNkZWZpbmUgZkJBUlJJRVIoKQorI2RlZmluZSBm U1lOQ0goKQorI2RlZmluZSBmSVNZTkMoKQorI2RlZmluZSBmRENGRVRDSChSRUcpIGRvIHsgUkVH ID0gUkVHOyB9IHdoaWxlICgwKSAvKiBOb3RoaW5nIHRvIGRvIGluIHFlbXUgKi8KKyNkZWZpbmUg ZklDSU5WQShSRUcpIGRvIHsgUkVHID0gUkVHOyB9IHdoaWxlICgwKSAvKiBOb3RoaW5nIHRvIGRv IGluIHFlbXUgKi8KKyNkZWZpbmUgZkwyRkVUQ0goQUREUiwgSEVJR0hULCBXSURUSCwgU1RSSURF LCBGTEFHUykKKyNkZWZpbmUgZkRDQ0xFQU5BKFJFRykgZG8geyBSRUcgPSBSRUc7IH0gd2hpbGUg KDApIC8qIE5vdGhpbmcgdG8gZG8gaW4gcWVtdSAqLworI2RlZmluZSBmRENDTEVBTklOVkEoUkVH KSBcCisgICAgZG8geyBSRUcgPSBSRUc7IH0gd2hpbGUgKDApIC8qIE5vdGhpbmcgdG8gZG8gaW4g cWVtdSAqLworCisjZGVmaW5lIGZEQ1pFUk9BKFJFRykgZG8geyBlbnYtPmRjemVyb19hZGRyID0g KFJFRyk7IH0gd2hpbGUgKDApCisKKyNkZWZpbmUgZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoRE9U TkVXVkFMLCBKVU1QX0NPTkQsIFNQRUNfRElSLCBISU5UQklUTlVNLCBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNUUkJJVE5VTSkgLyogTm90aGluZyAqLworCisKKyNlbmRpZgpk aWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vb3BfaGVscGVyLmMgYi90YXJnZXQvaGV4YWdvbi9v cF9oZWxwZXIuYwppbmRleCBmODZkNDViLi4yZWE0ZTcwIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4 YWdvbi9vcF9oZWxwZXIuYworKysgYi90YXJnZXQvaGV4YWdvbi9vcF9oZWxwZXIuYwpAQCAtODgs MjcgKzg4LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGxvZ19wcmVkX3dyaXRlKENQVUhleGFnb25T dGF0ZSAqZW52LCBpbnQgcG51bSwKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBsb2df c3RvcmUzMihDUFVIZXhhZ29uU3RhdGUgKmVudiwgdGFyZ2V0X3Vsb25nIGFkZHIsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3Vsb25nIHZhbCwgaW50IHdpZHRoLCBpbnQg c2xvdCkKLXsKLSAgICBIRVhfREVCVUdfTE9HKCJsb2dfc3RvcmUlZCgweCIgVEFSR0VUX0ZNVF9s eCAiLCAiIFRBUkdFVF9GTVRfbGQKLSAgICAgICAgICAgICAgICAgICIgWzB4IiBUQVJHRVRfRk1U X2x4ICJdKVxuIiwKLSAgICAgICAgICAgICAgICAgIHdpZHRoLCBhZGRyLCB2YWwsIHZhbCk7Ci0g ICAgZW52LT5tZW1fbG9nX3N0b3Jlc1tzbG90XS52YSA9IGFkZHI7Ci0gICAgZW52LT5tZW1fbG9n X3N0b3Jlc1tzbG90XS53aWR0aCA9IHdpZHRoOwotICAgIGVudi0+bWVtX2xvZ19zdG9yZXNbc2xv dF0uZGF0YTMyID0gdmFsOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgbG9nX3N0b3JlNjQoQ1BV SGV4YWdvblN0YXRlICplbnYsIHRhcmdldF91bG9uZyBhZGRyLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludDY0X3QgdmFsLCBpbnQgd2lkdGgsIGludCBzbG90KQotewotICAgIEhF WF9ERUJVR19MT0coImxvZ19zdG9yZSVkKDB4IiBUQVJHRVRfRk1UX2x4ICIsICVsZCBbMHglbHhd KVxuIiwKLSAgICAgICAgICAgICAgICAgICB3aWR0aCwgYWRkciwgdmFsLCB2YWwpOwotICAgIGVu di0+bWVtX2xvZ19zdG9yZXNbc2xvdF0udmEgPSBhZGRyOwotICAgIGVudi0+bWVtX2xvZ19zdG9y ZXNbc2xvdF0ud2lkdGggPSB3aWR0aDsKLSAgICBlbnYtPm1lbV9sb2dfc3RvcmVzW3Nsb3RdLmRh dGE2NCA9IHZhbDsKLX0KLQogc3RhdGljIGlubGluZSB2b2lkIHdyaXRlX25ld19wYyhDUFVIZXhh Z29uU3RhdGUgKmVudiwgdGFyZ2V0X3Vsb25nIGFkZHIpCiB7CiAgICAgSEVYX0RFQlVHX0xPRygi d3JpdGVfbmV3X3BjKDB4IiBUQVJHRVRfRk1UX2x4ICIpXG4iLCBhZGRyKTsKLS0gCjIuNy40Cgo=