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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id DACC7C77B7C for ; Thu, 27 Apr 2023 22:42:22 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1psAIk-0001wX-Jb; Thu, 27 Apr 2023 18:41:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1psAIj-0001wO-Aa for qemu-devel@nongnu.org; Thu, 27 Apr 2023 18:41:21 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1psAIT-0005MJ-V8 for qemu-devel@nongnu.org; Thu, 27 Apr 2023 18:41:18 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33RMQScB004743; Thu, 27 Apr 2023 22:41:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=qcppdkim1; bh=79jspRJ9gGQ8cjhus008LwfSfZPCBHgOSAyBVpEXn5o=; b=kxhhuimwJTayMFTlgFOiANeQGusWqjQml8J7iAQO1Ed4gzFsFwOGcvpGKvogiUpVRB2G TfmRhIlTruCMLZYRW69LD4Qkr4q2tF/Pf+txHG1xmVMWYPKlcx11pIsO7ZicahzrxzSx u4jERCYifEuBuRFDNtFqCVCpABBAJRW3MZZVoxyQQ7YwN4cXNLF3FZlQ7Xl/xEE2VCp2 zHKYx+2nsfiH1GtN50LhMOkRkP8P02ha8k8DJ0/GikbAEc9DyqtaLUrGZ9kYT23M91Si d6n7R9wgLscyfYuA60i0pYjRHI2izgpq5qXuHl5PtSix2WqS6g0EjMhcOPR6nH5jVqyt UA== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3q7dh2jw8d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 27 Apr 2023 22:41:02 +0000 Received: from pps.filterd (NALASPPMTA04.qualcomm.com [127.0.0.1]) by NALASPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 33RMf1RM027759; Thu, 27 Apr 2023 22:41:01 GMT Received: from pps.reinject (localhost [127.0.0.1]) by NALASPPMTA04.qualcomm.com (PPS) with ESMTPS id 3q48nmj5f4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 27 Apr 2023 22:41:01 +0000 Received: from NALASPPMTA04.qualcomm.com (NALASPPMTA04.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 33RMf1iI027744; Thu, 27 Apr 2023 22:41:01 GMT Received: from hu-devc-sd-u20-a-1.qualcomm.com (hu-tsimpson-lv.qualcomm.com [10.47.204.221]) by NALASPPMTA04.qualcomm.com (PPS) with ESMTPS id 33RMf0jh027717 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 27 Apr 2023 22:41:01 +0000 Received: by hu-devc-sd-u20-a-1.qualcomm.com (Postfix, from userid 47164) id DC1D56A2; Thu, 27 Apr 2023 15:40:59 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: tsimpson@quicinc.com, richard.henderson@linaro.org, philmd@linaro.org, ale@rev.ng, anjo@rev.ng, bcain@quicinc.com, quic_mathbern@quicinc.com Subject: [PATCH v2 7/9] Hexagon (tests/tcg/hexagon) Add v69 HVX tests Date: Thu, 27 Apr 2023 15:40:55 -0700 Message-Id: <20230427224057.3766963-8-tsimpson@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230427224057.3766963-1-tsimpson@quicinc.com> References: <20230427224057.3766963-1-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: VNF5QQmyTsdi27dguk6XqMHAIat3QDu- X-Proofpoint-GUID: VNF5QQmyTsdi27dguk6XqMHAIat3QDu- X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-27_09,2023-04-27_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 spamscore=0 adultscore=0 priorityscore=1501 phishscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304270200 Received-SPF: pass client-ip=205.220.168.131; envelope-from=tsimpson@qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org VGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgYXJlIHRlc3RlZAogICAgVjZfdmFzcnZ1aHVicm5k c2F0CiAgICBWNl92YXNydnVodWJzYXQKICAgIFY2X3Zhc3J2d3Vocm5kc2F0CiAgICBWNl92YXNy dnd1aHNhdAogICAgVjZfdmFzc2lnbl90bXAKICAgIFY2X3Zjb21iaW5lX3RtcAogICAgVjZfdm1w eXVodnMKClNpZ25lZC1vZmYtYnk6IFRheWxvciBTaW1wc29uIDx0c2ltcHNvbkBxdWljaW5jLmNv bT4KUmV2aWV3ZWQtYnk6IEFudG9uIEpvaGFuc3NvbiA8YW5qb0ByZXYubmc+Ci0tLQogdGVzdHMv dGNnL2hleGFnb24vdjY5X2h2eC5jICAgICAgIHwgMzE4ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogdGVzdHMvdGNnL2hleGFnb24vTWFrZWZpbGUudGFyZ2V0IHwgICAzICsKIDIgZmls ZXMgY2hhbmdlZCwgMzIxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy90 Y2cvaGV4YWdvbi92NjlfaHZ4LmMKCmRpZmYgLS1naXQgYS90ZXN0cy90Y2cvaGV4YWdvbi92Njlf aHZ4LmMgYi90ZXN0cy90Y2cvaGV4YWdvbi92NjlfaHZ4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMC4uYTBkNTY3ZDE0MgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3Rj Zy9oZXhhZ29uL3Y2OV9odnguYwpAQCAtMCwwICsxLDMxOCBAQAorLyoKKyAqICBDb3B5cmlnaHQo YykgMjAyMyBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy dmVkLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IK KyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKwor I2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkYm9v bC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorCitpbnQgZXJy OworCisjaW5jbHVkZSAiaHZ4X21pc2MuaCIKKworI2RlZmluZSBmVlJPVU5EKFZBTCwgU0hBTVQp IFwKKyAgICAoKFZBTCkgKyAoKChTSEFNVCkgPiAwKSA/ICgxTEwgPDwgKChTSEFNVCkgLSAxKSkg OiAwKSkKKworI2RlZmluZSBmVlNBVFVCKFZBTCkgXAorICAgICgoKChWQUwpICYgMHhmZkxMKSA9 PSAoVkFMKSkgPyBcCisgICAgICAgIChWQUwpIDogXAorICAgICAgICAoKCgoaW50MzJfdCkoVkFM KSkgPCAwKSA/IDAgOiAweGZmKSkKKworI2RlZmluZSBmVlNBVFVIKFZBTCkgXAorICAgICgoKChW QUwpICYgMHhmZmZmTEwpID09IChWQUwpKSA/IFwKKyAgICAgICAgKFZBTCkgOiBcCisgICAgICAg ICgoKChpbnQzMl90KShWQUwpKSA8IDApID8gMCA6IDB4ZmZmZikpCisKK3N0YXRpYyB2b2lkIHRl c3RfdmFzcnZ1aHVicm5kc2F0KHZvaWQpCit7CisgICAgdm9pZCAqcDAgPSBidWZmZXIwOworICAg IHZvaWQgKnAxID0gYnVmZmVyMTsKKyAgICB2b2lkICpwb3V0ID0gb3V0cHV0OworCisgICAgbWVt c2V0KGV4cGVjdCwgMHhhYSwgc2l6ZW9mKGV4cGVjdCkpOworICAgIG1lbXNldChvdXRwdXQsIDB4 YmIsIHNpemVvZihvdXRwdXQpKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQlVGU0laRSAv IDI7IGkrKykgeworICAgICAgICBhc20oInY0ID0gdm1lbSglMCArICMwKVxuXHQiCisgICAgICAg ICAgICAidjUgPSB2bWVtKCUwICsgIzEpXG5cdCIKKyAgICAgICAgICAgICJ2NiA9IHZtZW0oJTEg KyAjMClcblx0IgorICAgICAgICAgICAgInY1LnViID0gdmFzcih2NTo0LnVoLCB2Ni51Yik6cm5k OnNhdFxuXHQiCisgICAgICAgICAgICAidm1lbSglMikgPSB2NVxuXHQiCisgICAgICAgICAgICA6 IDogInIiKHAwKSwgInIiKHAxKSwgInIiKHBvdXQpCisgICAgICAgICAgICA6ICJ2NCIsICJ2NSIs ICJ2NiIsICJtZW1vcnkiKTsKKyAgICAgICAgcDAgKz0gc2l6ZW9mKE1NVmVjdG9yKSAqIDI7Cisg ICAgICAgIHAxICs9IHNpemVvZihNTVZlY3Rvcik7CisgICAgICAgIHBvdXQgKz0gc2l6ZW9mKE1N VmVjdG9yKTsKKworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE1BWF9WRUNfU0laRV9CWVRF UyAvIDI7IGorKykgeworICAgICAgICAgICAgaW50IHNoYW10OworICAgICAgICAgICAgdWludDhf dCBieXRlMDsKKyAgICAgICAgICAgIHVpbnQ4X3QgYnl0ZTE7CisKKyAgICAgICAgICAgIHNoYW10 ID0gYnVmZmVyMVtpXS51YlsyICogaiArIDBdICYgMHg3OworICAgICAgICAgICAgYnl0ZTAgPSBm VlNBVFVCKGZWUk9VTkQoYnVmZmVyMFsyICogaSArIDBdLnVoW2pdLCBzaGFtdCkgPj4gc2hhbXQp OworICAgICAgICAgICAgc2hhbXQgPSBidWZmZXIxW2ldLnViWzIgKiBqICsgMV0gJiAweDc7Cisg ICAgICAgICAgICBieXRlMSA9IGZWU0FUVUIoZlZST1VORChidWZmZXIwWzIgKiBpICsgMV0udWhb al0sIHNoYW10KSA+PiBzaGFtdCk7CisgICAgICAgICAgICBleHBlY3RbaV0udWhbal0gPSAoYnl0 ZTEgPDwgOCkgfCAoYnl0ZTAgJiAweGZmKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNoZWNr X291dHB1dF9oKF9fTElORV9fLCBCVUZTSVpFIC8gMik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rf dmFzcnZ1aHVic2F0KHZvaWQpCit7CisgICAgdm9pZCAqcDAgPSBidWZmZXIwOworICAgIHZvaWQg KnAxID0gYnVmZmVyMTsKKyAgICB2b2lkICpwb3V0ID0gb3V0cHV0OworCisgICAgbWVtc2V0KGV4 cGVjdCwgMHhhYSwgc2l6ZW9mKGV4cGVjdCkpOworICAgIG1lbXNldChvdXRwdXQsIDB4YmIsIHNp emVvZihvdXRwdXQpKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQlVGU0laRSAvIDI7IGkr KykgeworICAgICAgICBhc20oInY0ID0gdm1lbSglMCArICMwKVxuXHQiCisgICAgICAgICAgICAi djUgPSB2bWVtKCUwICsgIzEpXG5cdCIKKyAgICAgICAgICAgICJ2NiA9IHZtZW0oJTEgKyAjMClc blx0IgorICAgICAgICAgICAgInY1LnViID0gdmFzcih2NTo0LnVoLCB2Ni51Yik6c2F0XG5cdCIK KyAgICAgICAgICAgICJ2bWVtKCUyKSA9IHY1XG5cdCIKKyAgICAgICAgICAgIDogOiAiciIocDAp LCAiciIocDEpLCAiciIocG91dCkKKyAgICAgICAgICAgIDogInY0IiwgInY1IiwgInY2IiwgIm1l bW9yeSIpOworICAgICAgICBwMCArPSBzaXplb2YoTU1WZWN0b3IpICogMjsKKyAgICAgICAgcDEg Kz0gc2l6ZW9mKE1NVmVjdG9yKTsKKyAgICAgICAgcG91dCArPSBzaXplb2YoTU1WZWN0b3IpOwor CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMjsgaisr KSB7CisgICAgICAgICAgICBpbnQgc2hhbXQ7CisgICAgICAgICAgICB1aW50OF90IGJ5dGUwOwor ICAgICAgICAgICAgdWludDhfdCBieXRlMTsKKworICAgICAgICAgICAgc2hhbXQgPSBidWZmZXIx W2ldLnViWzIgKiBqICsgMF0gJiAweDc7CisgICAgICAgICAgICBieXRlMCA9IGZWU0FUVUIoYnVm ZmVyMFsyICogaSArIDBdLnVoW2pdID4+IHNoYW10KTsKKyAgICAgICAgICAgIHNoYW10ID0gYnVm ZmVyMVtpXS51YlsyICogaiArIDFdICYgMHg3OworICAgICAgICAgICAgYnl0ZTEgPSBmVlNBVFVC KGJ1ZmZlcjBbMiAqIGkgKyAxXS51aFtqXSA+PiBzaGFtdCk7CisgICAgICAgICAgICBleHBlY3Rb aV0udWhbal0gPSAoYnl0ZTEgPDwgOCkgfCAoYnl0ZTAgJiAweGZmKTsKKyAgICAgICAgfQorICAg IH0KKworICAgIGNoZWNrX291dHB1dF9oKF9fTElORV9fLCBCVUZTSVpFIC8gMik7Cit9CisKK3N0 YXRpYyB2b2lkIHRlc3RfdmFzcnZ3dWhybmRzYXQodm9pZCkKK3sKKyAgICB2b2lkICpwMCA9IGJ1 ZmZlcjA7CisgICAgdm9pZCAqcDEgPSBidWZmZXIxOworICAgIHZvaWQgKnBvdXQgPSBvdXRwdXQ7 CisKKyAgICBtZW1zZXQoZXhwZWN0LCAweGFhLCBzaXplb2YoZXhwZWN0KSk7CisgICAgbWVtc2V0 KG91dHB1dCwgMHhiYiwgc2l6ZW9mKG91dHB1dCkpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBCVUZTSVpFIC8gMjsgaSsrKSB7CisgICAgICAgIGFzbSgidjQgPSB2bWVtKCUwICsgIzApXG5c dCIKKyAgICAgICAgICAgICJ2NSA9IHZtZW0oJTAgKyAjMSlcblx0IgorICAgICAgICAgICAgInY2 ID0gdm1lbSglMSArICMwKVxuXHQiCisgICAgICAgICAgICAidjUudWggPSB2YXNyKHY1OjQudywg djYudWgpOnJuZDpzYXRcblx0IgorICAgICAgICAgICAgInZtZW0oJTIpID0gdjVcblx0IgorICAg ICAgICAgICAgOiA6ICJyIihwMCksICJyIihwMSksICJyIihwb3V0KQorICAgICAgICAgICAgOiAi djQiLCAidjUiLCAidjYiLCAibWVtb3J5Iik7CisgICAgICAgIHAwICs9IHNpemVvZihNTVZlY3Rv cikgKiAyOworICAgICAgICBwMSArPSBzaXplb2YoTU1WZWN0b3IpOworICAgICAgICBwb3V0ICs9 IHNpemVvZihNTVZlY3Rvcik7CisKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBNQVhfVkVD X1NJWkVfQllURVMgLyA0OyBqKyspIHsKKyAgICAgICAgICAgIGludCBzaGFtdDsKKyAgICAgICAg ICAgIHVpbnQxNl90IGhhbGYwOworICAgICAgICAgICAgdWludDE2X3QgaGFsZjE7CisKKyAgICAg ICAgICAgIHNoYW10ID0gYnVmZmVyMVtpXS51aFsyICogaiArIDBdICYgMHhmOworICAgICAgICAg ICAgaGFsZjAgPSBmVlNBVFVIKGZWUk9VTkQoYnVmZmVyMFsyICogaSArIDBdLndbal0sIHNoYW10 KSA+PiBzaGFtdCk7CisgICAgICAgICAgICBzaGFtdCA9IGJ1ZmZlcjFbaV0udWhbMiAqIGogKyAx XSAmIDB4ZjsKKyAgICAgICAgICAgIGhhbGYxID0gZlZTQVRVSChmVlJPVU5EKGJ1ZmZlcjBbMiAq IGkgKyAxXS53W2pdLCBzaGFtdCkgPj4gc2hhbXQpOworICAgICAgICAgICAgZXhwZWN0W2ldLndb al0gPSAoaGFsZjEgPDwgMTYpIHwgKGhhbGYwICYgMHhmZmZmKTsKKyAgICAgICAgfQorICAgIH0K KworICAgIGNoZWNrX291dHB1dF93KF9fTElORV9fLCBCVUZTSVpFIC8gMik7Cit9CisKK3N0YXRp YyB2b2lkIHRlc3RfdmFzcnZ3dWhzYXQodm9pZCkKK3sKKyAgICB2b2lkICpwMCA9IGJ1ZmZlcjA7 CisgICAgdm9pZCAqcDEgPSBidWZmZXIxOworICAgIHZvaWQgKnBvdXQgPSBvdXRwdXQ7CisKKyAg ICBtZW1zZXQoZXhwZWN0LCAweGFhLCBzaXplb2YoZXhwZWN0KSk7CisgICAgbWVtc2V0KG91dHB1 dCwgMHhiYiwgc2l6ZW9mKG91dHB1dCkpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBCVUZT SVpFIC8gMjsgaSsrKSB7CisgICAgICAgIGFzbSgidjQgPSB2bWVtKCUwICsgIzApXG5cdCIKKyAg ICAgICAgICAgICJ2NSA9IHZtZW0oJTAgKyAjMSlcblx0IgorICAgICAgICAgICAgInY2ID0gdm1l bSglMSArICMwKVxuXHQiCisgICAgICAgICAgICAidjUudWggPSB2YXNyKHY1OjQudywgdjYudWgp OnNhdFxuXHQiCisgICAgICAgICAgICAidm1lbSglMikgPSB2NVxuXHQiCisgICAgICAgICAgICA6 IDogInIiKHAwKSwgInIiKHAxKSwgInIiKHBvdXQpCisgICAgICAgICAgICA6ICJ2NCIsICJ2NSIs ICJ2NiIsICJtZW1vcnkiKTsKKyAgICAgICAgcDAgKz0gc2l6ZW9mKE1NVmVjdG9yKSAqIDI7Cisg ICAgICAgIHAxICs9IHNpemVvZihNTVZlY3Rvcik7CisgICAgICAgIHBvdXQgKz0gc2l6ZW9mKE1N VmVjdG9yKTsKKworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE1BWF9WRUNfU0laRV9CWVRF UyAvIDQ7IGorKykgeworICAgICAgICAgICAgaW50IHNoYW10OworICAgICAgICAgICAgdWludDE2 X3QgaGFsZjA7CisgICAgICAgICAgICB1aW50MTZfdCBoYWxmMTsKKworICAgICAgICAgICAgc2hh bXQgPSBidWZmZXIxW2ldLnVoWzIgKiBqICsgMF0gJiAweGY7CisgICAgICAgICAgICBoYWxmMCA9 IGZWU0FUVUgoYnVmZmVyMFsyICogaSArIDBdLndbal0gPj4gc2hhbXQpOworICAgICAgICAgICAg c2hhbXQgPSBidWZmZXIxW2ldLnVoWzIgKiBqICsgMV0gJiAweGY7CisgICAgICAgICAgICBoYWxm MSA9IGZWU0FUVUgoYnVmZmVyMFsyICogaSArIDFdLndbal0gPj4gc2hhbXQpOworICAgICAgICAg ICAgZXhwZWN0W2ldLndbal0gPSAoaGFsZjEgPDwgMTYpIHwgKGhhbGYwICYgMHhmZmZmKTsKKyAg ICAgICAgfQorICAgIH0KKworICAgIGNoZWNrX291dHB1dF93KF9fTElORV9fLCBCVUZTSVpFIC8g Mik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfdmFzc2lnbl90bXAodm9pZCkKK3sKKyAgICB2b2lk ICpwMCA9IGJ1ZmZlcjA7CisgICAgdm9pZCAqcG91dCA9IG91dHB1dDsKKworICAgIG1lbXNldChl eHBlY3QsIDB4YWEsIHNpemVvZihleHBlY3QpKTsKKyAgICBtZW1zZXQob3V0cHV0LCAweGJiLCBz aXplb2Yob3V0cHV0KSk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IEJVRlNJWkU7IGkrKykg eworICAgICAgICAvKgorICAgICAgICAgKiBBc3NpZ24gaW50byB2MTIgYXMgLnRtcCwgdGhlbiB1 c2UgaXQgaW4gdGhlIG5leHQgcGFja2V0CisgICAgICAgICAqIFNob3VsZCBnZXQgdGhlIG5ldyB2 YWx1ZSB3aXRoaW4gdGhlIHNhbWUgcGFja2V0IGFuZAorICAgICAgICAgKiB0aGUgb2xkIHZhbHVl IGluIHRoZSBuZXh0IHBhY2tldAorICAgICAgICAgKi8KKyAgICAgICAgYXNtKCJ2MyA9IHZtZW0o JTAgKyAjMClcblx0IgorICAgICAgICAgICAgInIxID0gIzFcblx0IgorICAgICAgICAgICAgInYx MiA9IHZzcGxhdChyMSlcblx0IgorICAgICAgICAgICAgInIxID0gIzJcblx0IgorICAgICAgICAg ICAgInYxMyA9IHZzcGxhdChyMSlcblx0IgorICAgICAgICAgICAgIntcblx0IgorICAgICAgICAg ICAgIiAgICB2MTIudG1wID0gdjEzXG5cdCIKKyAgICAgICAgICAgICIgICAgdjQudyA9IHZhZGQo djEyLncsIHYzLncpXG5cdCIKKyAgICAgICAgICAgICJ9XG5cdCIKKyAgICAgICAgICAgICJ2NC53 ID0gdmFkZCh2NC53LCB2MTIudylcblx0IgorICAgICAgICAgICAgInZtZW0oJTEgKyAjMCkgPSB2 NFxuXHQiCisgICAgICAgICAgICA6IDogInIiKHAwKSwgInIiKHBvdXQpCisgICAgICAgICAgICA6 ICJyMSIsICJ2MyIsICJ2NCIsICJ2MTIiLCAidjEzIiwgIm1lbW9yeSIpOworICAgICAgICBwMCAr PSBzaXplb2YoTU1WZWN0b3IpOworICAgICAgICBwb3V0ICs9IHNpemVvZihNTVZlY3Rvcik7CisK KyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBNQVhfVkVDX1NJWkVfQllURVMgLyA0OyBqKysp IHsKKyAgICAgICAgICAgIGV4cGVjdFtpXS53W2pdID0gYnVmZmVyMFtpXS53W2pdICsgMzsKKyAg ICAgICAgfQorICAgIH0KKworICAgIGNoZWNrX291dHB1dF93KF9fTElORV9fLCBCVUZTSVpFKTsK K30KKworc3RhdGljIHZvaWQgdGVzdF92Y29tYmluZV90bXAodm9pZCkKK3sKKyAgICB2b2lkICpw MCA9IGJ1ZmZlcjA7CisgICAgdm9pZCAqcDEgPSBidWZmZXIxOworICAgIHZvaWQgKnBvdXQgPSBv dXRwdXQ7CisKKyAgICBtZW1zZXQoZXhwZWN0LCAweGFhLCBzaXplb2YoZXhwZWN0KSk7CisgICAg bWVtc2V0KG91dHB1dCwgMHhiYiwgc2l6ZW9mKG91dHB1dCkpOworCisgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBCVUZTSVpFOyBpKyspIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogQ29tYmluZSBp bnRvIHYxMzoxMiBhcyAudG1wLCB0aGVuIHVzZSBpdCBpbiB0aGUgbmV4dCBwYWNrZXQKKyAgICAg ICAgICogU2hvdWxkIGdldCB0aGUgbmV3IHZhbHVlIHdpdGhpbiB0aGUgc2FtZSBwYWNrZXQgYW5k CisgICAgICAgICAqIHRoZSBvbGQgdmFsdWUgaW4gdGhlIG5leHQgcGFja2V0CisgICAgICAgICAq LworICAgICAgICBhc20oInYzID0gdm1lbSglMCArICMwKVxuXHQiCisgICAgICAgICAgICAicjEg PSAjMVxuXHQiCisgICAgICAgICAgICAidjEyID0gdnNwbGF0KHIxKVxuXHQiCisgICAgICAgICAg ICAicjEgPSAjMlxuXHQiCisgICAgICAgICAgICAidjEzID0gdnNwbGF0KHIxKVxuXHQiCisgICAg ICAgICAgICAicjEgPSAjM1xuXHQiCisgICAgICAgICAgICAidjE0ID0gdnNwbGF0KHIxKVxuXHQi CisgICAgICAgICAgICAicjEgPSAjNFxuXHQiCisgICAgICAgICAgICAidjE1ID0gdnNwbGF0KHIx KVxuXHQiCisgICAgICAgICAgICAie1xuXHQiCisgICAgICAgICAgICAiICAgIHYxMzoxMi50bXAg PSB2Y29tYmluZSh2MTUsIHYxNClcblx0IgorICAgICAgICAgICAgIiAgICB2NC53ID0gdmFkZCh2 MTIudywgdjMudylcblx0IgorICAgICAgICAgICAgIiAgICB2MTYgPSB2MTNcblx0IgorICAgICAg ICAgICAgIn1cblx0IgorICAgICAgICAgICAgInY0LncgPSB2YWRkKHY0LncsIHYxMi53KVxuXHQi CisgICAgICAgICAgICAidjQudyA9IHZhZGQodjQudywgdjEzLncpXG5cdCIKKyAgICAgICAgICAg ICJ2NC53ID0gdmFkZCh2NC53LCB2MTYudylcblx0IgorICAgICAgICAgICAgInZtZW0oJTIgKyAj MCkgPSB2NFxuXHQiCisgICAgICAgICAgICA6IDogInIiKHAwKSwgInIiKHAxKSwgInIiKHBvdXQp CisgICAgICAgICAgICA6ICJyMSIsICJ2MyIsICJ2NCIsICJ2MTIiLCAidjEzIiwgInYxNCIsICJ2 MTUiLCAidjE2IiwgIm1lbW9yeSIpOworICAgICAgICBwMCArPSBzaXplb2YoTU1WZWN0b3IpOwor ICAgICAgICBwMSArPSBzaXplb2YoTU1WZWN0b3IpOworICAgICAgICBwb3V0ICs9IHNpemVvZihN TVZlY3Rvcik7CisKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBNQVhfVkVDX1NJWkVfQllU RVMgLyA0OyBqKyspIHsKKyAgICAgICAgICAgIGV4cGVjdFtpXS53W2pdID0gYnVmZmVyMFtpXS53 W2pdICsgMTA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjaGVja19vdXRwdXRfdyhfX0xJTkVf XywgQlVGU0laRSk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfdm1weXVodnModm9pZCkKK3sKKyAg ICB2b2lkICpwMCA9IGJ1ZmZlcjA7CisgICAgdm9pZCAqcDEgPSBidWZmZXIxOworICAgIHZvaWQg KnBvdXQgPSBvdXRwdXQ7CisKKyAgICBtZW1zZXQoZXhwZWN0LCAweGFhLCBzaXplb2YoZXhwZWN0 KSk7CisgICAgbWVtc2V0KG91dHB1dCwgMHhiYiwgc2l6ZW9mKG91dHB1dCkpOworCisgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBCVUZTSVpFOyBpKyspIHsKKyAgICAgICAgYXNtKCJ2NCA9IHZtZW0o JTAgKyAjMClcblx0IgorICAgICAgICAgICAgInY1ID0gdm1lbSglMSArICMwKVxuXHQiCisgICAg ICAgICAgICAidjQudWggPSB2bXB5KFY0LnVoLCB2NS51aCk6Pj4xNlxuXHQiCisgICAgICAgICAg ICAidm1lbSglMikgPSB2NFxuXHQiCisgICAgICAgICAgICA6IDogInIiKHAwKSwgInIiKHAxKSwg InIiKHBvdXQpCisgICAgICAgICAgICA6ICJ2NCIsICJ2NSIsICJtZW1vcnkiKTsKKyAgICAgICAg cDAgKz0gc2l6ZW9mKE1NVmVjdG9yKTsKKyAgICAgICAgcDEgKz0gc2l6ZW9mKE1NVmVjdG9yKTsK KyAgICAgICAgcG91dCArPSBzaXplb2YoTU1WZWN0b3IpOworCisgICAgICAgIGZvciAoaW50IGog PSAwOyBqIDwgTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMjsgaisrKSB7CisgICAgICAgICAgICBleHBl Y3RbaV0udWhbal0gPSAoYnVmZmVyMFtpXS51aFtqXSAqIGJ1ZmZlcjFbaV0udWhbal0pID4+IDE2 OworICAgICAgICB9CisgICAgfQorCisgICAgY2hlY2tfb3V0cHV0X2goX19MSU5FX18sIEJVRlNJ WkUpOworfQorCitpbnQgbWFpbigpCit7CisgICAgaW5pdF9idWZmZXJzKCk7CisKKyAgICB0ZXN0 X3Zhc3J2dWh1YnJuZHNhdCgpOworICAgIHRlc3RfdmFzcnZ1aHVic2F0KCk7CisgICAgdGVzdF92 YXNydnd1aHJuZHNhdCgpOworICAgIHRlc3RfdmFzcnZ3dWhzYXQoKTsKKworICAgIHRlc3RfdmFz c2lnbl90bXAoKTsKKyAgICB0ZXN0X3Zjb21iaW5lX3RtcCgpOworCisgICAgdGVzdF92bXB5dWh2 cygpOworCisgICAgcHV0cyhlcnIgPyAiRkFJTCIgOiAiUEFTUyIpOworICAgIHJldHVybiBlcnIg PyAxIDogMDsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3RjZy9oZXhhZ29uL01ha2VmaWxlLnRhcmdl dCBiL3Rlc3RzL3RjZy9oZXhhZ29uL01ha2VmaWxlLnRhcmdldAppbmRleCAyZWU5MzBjZjFmLi41 NThjMDU2MTQ4IDEwMDY0NAotLS0gYS90ZXN0cy90Y2cvaGV4YWdvbi9NYWtlZmlsZS50YXJnZXQK KysrIGIvdGVzdHMvdGNnL2hleGFnb24vTWFrZWZpbGUudGFyZ2V0CkBAIC03OCw2ICs3OCw3IEBA IEhFWF9URVNUUyArPSB0ZXN0X3ZzcGxpY2ViCiAKIEhFWF9URVNUUyArPSB2Njhfc2NhbGFyCiBI RVhfVEVTVFMgKz0gdjY4X2h2eAorSEVYX1RFU1RTICs9IHY2OV9odngKIAogVEVTVFMgKz0gJChI RVhfVEVTVFMpCiAKQEAgLTk1LDYgKzk2LDggQEAgaHZ4X21pc2M6IENGTEFHUyArPSAtbWh2eAog aHZ4X2hpc3RvZ3JhbTogQ0ZMQUdTICs9IC1taHZ4IC1Xbm8tZ251LWZvbGRpbmctY29uc3RhbnQK IHY2OF9odng6IHY2OF9odnguYyBodnhfbWlzYy5oIHY2bXB5X3JlZi5jLmluYwogdjY4X2h2eDog Q0ZMQUdTICs9IC1taHZ4IC1Xbm8tdW51c2VkLWZ1bmN0aW9uCit2NjlfaHZ4OiB2NjlfaHZ4LmMg aHZ4X21pc2MuaAordjY5X2h2eDogQ0ZMQUdTICs9IC1taHZ4IC1Xbm8tdW51c2VkLWZ1bmN0aW9u CiAKIGh2eF9oaXN0b2dyYW06IGh2eF9oaXN0b2dyYW0uYyBodnhfaGlzdG9ncmFtX3Jvdy5TCiAJ JChDQykgJChDRkxBR1MpICQoQ1JPU1NfQ0NfR1VFU1RfQ0ZMQUdTKSAkXiAtbyAkQCAkKExERkxB R1MpCi0tIAoyLjI1LjEKCg==