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 65E25C77B7D for ; Thu, 18 May 2023 20:09:14 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pzjs0-0000hf-3J; Thu, 18 May 2023 16:05:04 -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 1pzjrO-0008VS-Ft for qemu-devel@nongnu.org; Thu, 18 May 2023 16:04:27 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pzjrH-00056P-MX for qemu-devel@nongnu.org; Thu, 18 May 2023 16:04:26 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34IJuD41024121; Thu, 18 May 2023 20:04:17 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=o+6TrK/ZhrfDRqFdR2CZ4vVbNRuy3T/aBsnK1eDdfcU=; b=YYTFy+bx9+E1kBF1HdZpJOV2K5OyCFt0HtlLHpIUgA/p+2SKbIY0+CroG8fiDeaOpnyY xoSeooeplqk52mum6lXBFSaIuE7hiL9Iz0o4lHf3AHyw+EHqkfjmaEpNHgKsVtjDbUye fGtWpJAA5woeScqtjMahByQANN9kgjE3h7AHtzCtFvy/tENmR/uWir3dKTisuv/7zkRl L3IEEnD+/Y5nIC6JKs8kiAjzlyS/JVUti55RrbsHpKy1ozoKE6+UGMN0rvuJIG8yiCI5 55CMevYPnK1xfa5QtYE4ZGsX5Z+9dYlJgFBV6B7IHIP95PiUGXo5806uGBbRUGi39VGT kg== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3qnb7ha6ny-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 May 2023 20:04:16 +0000 Received: from pps.filterd (NALASPPMTA05.qualcomm.com [127.0.0.1]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 34IK3AIC010099; Thu, 18 May 2023 20:04:14 GMT Received: from pps.reinject (localhost [127.0.0.1]) by NALASPPMTA05.qualcomm.com (PPS) with ESMTPS id 3qj3mmt9yr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 May 2023 20:04:14 +0000 Received: from NALASPPMTA05.qualcomm.com (NALASPPMTA05.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 34IK4ElA012524; Thu, 18 May 2023 20:04:14 GMT Received: from hu-devc-sd-u20-a-1.qualcomm.com (hu-tsimpson-lv.qualcomm.com [10.47.204.221]) by NALASPPMTA05.qualcomm.com (PPS) with ESMTPS id 34IK4DPJ012506 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 May 2023 20:04:14 +0000 Received: by hu-devc-sd-u20-a-1.qualcomm.com (Postfix, from userid 47164) id 559436A9; Thu, 18 May 2023 13:04:13 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: tsimpson@quicinc.com, richard.henderson@linaro.org, philmd@linaro.org, peter.maydell@linaro.org, bcain@quicinc.com, quic_mathbern@quicinc.com, stefanha@redhat.com, ale@rev.ng, anjo@rev.ng, quic_mliebel@quicinc.com Subject: [PULL v2 04/44] Hexagon (target/hexagon) Add v68 HVX instructions Date: Thu, 18 May 2023 13:03:31 -0700 Message-Id: <20230518200411.271148-5-tsimpson@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230518200411.271148-1-tsimpson@quicinc.com> References: <20230518200411.271148-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: bZ1fYbB8dpI0eqkNTH9hgOI5u0RUKFlt X-Proofpoint-GUID: bZ1fYbB8dpI0eqkNTH9hgOI5u0RUKFlt X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-18_14,2023-05-17_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 mlxscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 mlxlogscore=412 adultscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305180165 Received-SPF: pass client-ip=205.220.180.131; envelope-from=tsimpson@qualcomm.com; helo=mx0b-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_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_HELO_TEMPERROR=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 VGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgYXJlIGFkZGVkCiAgICBWNl92Nm1weXZ1YnMxMF92 eHgKICAgIFY2X3Y2bXB5aHViczEwX3Z4eAogICAgVjZfdjZtcHl2dWJzMTAKICAgIFY2X3Y2bXB5 aHViczEwCgpTaWduZWQtb2ZmLWJ5OiBUYXlsb3IgU2ltcHNvbiA8dHNpbXBzb25AcXVpY2luYy5j b20+ClJldmlld2VkLWJ5OiBBbnRvbiBKb2hhbnNzb24gPGFuam9AcmV2Lm5nPgpNZXNzYWdlLUlk OiA8MjAyMzA0MjcyMjQwNTcuMzc2Njk2My01LXRzaW1wc29uQHF1aWNpbmMuY29tPgotLS0KIHRh cmdldC9oZXhhZ29uL21tdmVjL21hY3Jvcy5oICAgICAgICAgICAgICAgIHwgICA5ICstCiB0YXJn ZXQvaGV4YWdvbi9pbXBvcnRlZC9tbXZlYy9lbmNvZGVfZXh0LmRlZiB8ICAgOCArLQogdGFyZ2V0 L2hleGFnb24vaW1wb3J0ZWQvbW12ZWMvZXh0LmlkZWYgICAgICAgfCAyODEgKysrKysrKysrKysr KysrKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAyOTUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9tbXZlYy9tYWNyb3MuaCBiL3RhcmdldC9o ZXhhZ29uL21tdmVjL21hY3Jvcy5oCmluZGV4IDEyMDFkNzc4ZDAuLmE2NTU2MzRmZDEgMTAwNjQ0 Ci0tLSBhL3RhcmdldC9oZXhhZ29uL21tdmVjL21hY3Jvcy5oCisrKyBiL3RhcmdldC9oZXhhZ29u L21tdmVjL21hY3Jvcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQoYykgMjAx OS0yMDIyIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2 ZWQuCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMyBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRl ciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CkBAIC0zNDYsNCArMzQ2LDExIEBACiAjZGVmaW5lIGZVQVJDSF9OT1RFX1BVTVBf MlgoKQogCiAjZGVmaW5lIElWMURFQUQoKQorCisjZGVmaW5lIGZHRVQxMEJJVChDT0UsIFZBTCwg UE9TKSBcCisgICAgZG8geyBcCisgICAgICAgIENPRSA9IChzZXh0cmFjdDMyKFZBTCwgMjQgKyAy ICogUE9TLCAyKSA8PCA4KSB8IFwKKyAgICAgICAgICAgICAgIGV4dHJhY3QzMihWQUwsIFBPUyAq IDgsIDgpOyBcCisgICAgfSB3aGlsZSAoMCk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGFyZ2V0 L2hleGFnb24vaW1wb3J0ZWQvbW12ZWMvZW5jb2RlX2V4dC5kZWYgYi90YXJnZXQvaGV4YWdvbi9p bXBvcnRlZC9tbXZlYy9lbmNvZGVfZXh0LmRlZgppbmRleCA2ZmJiZTJjNDIyLi5iOWI2MmZlZjhk IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9tbXZlYy9lbmNvZGVfZXh0LmRl ZgorKysgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9tbXZlYy9lbmNvZGVfZXh0LmRlZgpAQCAt MSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMSBRdWFsY29tbSBJbm5v dmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogIENvcHlyaWdodChj KSAyMDE5LTIwMjMgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBS ZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtNzMwLDYg KzczMCw4IEBAIERFRl9FTkMoVjZfdm1heGIsICAgICAgICAgSUNMQVNTX0NKIiAxIDExMSAwMDEg dnZ2dnYgUFAgMCB1dXV1dSAxMDEgZGRkZGQiKSAvLwogREVGX0VOQyhWNl92c2F0dXd1aCwgICAg SUNMQVNTX0NKIiAxIDExMSAwMDEgdnZ2dnYgUFAgMCB1dXV1dSAxMTAgZGRkZGQiKSAvLwogREVG X0VOQyhWNl92ZGVhbGI0dywgICAgIElDTEFTU19DSiIgMSAxMTEgMDAxIHZ2dnZ2IFBQIDAgdXV1 dXUgMTExIGRkZGRkIikgLy8KIAorREVGX0VOQyhWNl92Nm1weXZ1YnMxMF92eHgsIAlJQ0xBU1Nf Q0oiIDEgMTExIDAwMSB2dnZ2diBQUCAxIHV1dXV1IDBpaSB4eHh4eCIpCitERUZfRU5DKFY2X3Y2 bXB5aHViczEwX3Z4eCwgCUlDTEFTU19DSiIgMSAxMTEgMDAxIHZ2dnZ2IFBQIDEgdXV1dXUgMWlp IHh4eHh4IikKIAogREVGX0VOQyhWNl92bXB5b3doX3JuZCwgICAgIElDTEFTU19DSiIgMSAxMTEg MDEwIHZ2dnZ2IFBQIDAgdXV1dXUgMDAwIGRkZGRkIikgLy8KIERFRl9FTkMoVjZfdnNodWZmZWIs ICAgICAgSUNMQVNTX0NKIiAxIDExMSAwMTAgdnZ2dnYgUFAgMCB1dXV1dSAwMDEgZGRkZGQiKSAv LwpAQCAtNzQwLDYgKzc0MiwxMCBAQCBERUZfRU5DKFY2X3ZzaHVmb2VoLCAgICAgIElDTEFTU19D SiIgMSAxMTEgMDEwIHZ2dnZ2IFBQIDAgdXV1dXUgMTAxIGRkZGRkIikgLy8KIERFRl9FTkMoVjZf dnNodWZvZWIsICAgICAgSUNMQVNTX0NKIiAxIDExMSAwMTAgdnZ2dnYgUFAgMCB1dXV1dSAxMTAg ZGRkZGQiKSAvLwogREVGX0VOQyhWNl92Y29tYmluZSwgICAgIElDTEFTU19DSiIgMSAxMTEgMDEw IHZ2dnZ2IFBQIDAgdXV1dXUgMTExIGRkZGRkIikgLy8KIAorREVGX0VOQyhWNl92Nm1weXZ1YnMx MCwgIElDTEFTU19DSiIgMSAxMTEgMDEwIHZ2dnZ2IFBQIDEgdXV1dXUgMGlpIGRkZGRkIikKK0RF Rl9FTkMoVjZfdjZtcHlodWJzMTAsICBJQ0xBU1NfQ0oiIDEgMTExIDAxMCB2dnZ2diBQUCAxIHV1 dXV1IDFpaSBkZGRkZCIpCisKKwogREVGX0VOQyhWNl92bXB5aWVvaCwgICAgIElDTEFTU19DSiIg MSAxMTEgMDExIHZ2dnZ2IFBQIDAgdXV1dXUgMDAwIGRkZGRkIikgLy8KIERFRl9FTkMoVjZfdmFk ZHV3c2F0LCAgICAgSUNMQVNTX0NKIiAxIDExMSAwMTEgdnZ2dnYgUFAgMCB1dXV1dSAwMDEgZGRk ZGQiKSAvLwogREVGX0VOQyhWNl92c2F0aHViLCAgICAgSUNMQVNTX0NKIiAxIDExMSAwMTEgdnZ2 dnYgUFAgMCB1dXV1dSAwMTAgZGRkZGQiKSAvLwpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24v aW1wb3J0ZWQvbW12ZWMvZXh0LmlkZWYgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9tbXZlYy9l eHQuaWRlZgppbmRleCA4Y2E1YTYwNmUxLi5jMGQxNjlmZDRmIDEwMDY0NAotLS0gYS90YXJnZXQv aGV4YWdvbi9pbXBvcnRlZC9tbXZlYy9leHQuaWRlZgorKysgYi90YXJnZXQvaGV4YWdvbi9pbXBv cnRlZC9tbXZlYy9leHQuaWRlZgpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0KGMp IDIwMTktMjAyMSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJl c2VydmVkLgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjMgUXVhbGNvbW0gSW5ub3ZhdGlvbiBD ZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAq ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQpAQCAtMTE2LDYgKzExNiwxMCBAQCBJVEVSQVRPUl9JTlNOX01QWV9TTE9U X0xBVEUoV0lEVEgsVEFHLCBTWU5UQVgyLERFU0NSLENPREUpCiBFWFRJTlNOKFY2XyMjVEFHLCBT WU5UQVgsIEFUVFJJQlMoQV9FWFRFTlNJT04sQV9DVkksQV9DVklfVlhfRFYpLCAgXAogREVTQ1Is IERPX0ZPUl9FQUNIX0NPREUoV0lEVEgsIENPREUpKQogCisjZGVmaW5lIElURVJBVE9SX0lOU05f TVBZX1NMT1RfRE9VQkxFX1ZFQ19WWF9GV0QoV0lEVEgsVEFHLFNZTlRBWCxERVNDUixDT0RFKSBc CitFWFRJTlNOKFY2XyMjVEFHLCBTWU5UQVgsIEFUVFJJQlMoQV9FWFRFTlNJT04sQV9DVkksQV9D VklfVlhfRFYpLCAgXAorREVTQ1IsIERPX0ZPUl9FQUNIX0NPREUoV0lEVEgsIENPREUpKQorCiAj ZGVmaW5lIElURVJBVE9SX0lOU04yX01QWV9TTE9UX0RPVUJMRV9WRUMoV0lEVEgsVEFHLFNZTlRB WCxTWU5UQVgyLERFU0NSLENPREUpIFwKIElURVJBVE9SX0lOU05fTVBZX1NMT1RfRE9VQkxFX1ZF QyhXSURUSCxUQUcsU1lOVEFYMixERVNDUixDT0RFKQogCkBAIC0yNTA3LDYgKzI1MTEsMjgxIEBA IEVYVElOU04oVjZfdnNjYXR0ZXJtaHcgLCAidnNjYXR0ZXIoUnQzMixNdTIsVnZ2MzIudykuaD1W dzMyIiwgQVRUUklCUyhBX0VYVEVOU0lPCiB9KQogCiAKK0lURVJBVE9SX0lOU05fTVBZX1NMT1Rf RE9VQkxFX1ZFQ19WWF9GV0QoMzIsIHY2bXB5dnViczEwX3Z4eCwgIlZ4eDMyLncrPXY2bXB5KFZ1 dTMyLnViLFZ2djMyLmIsI3UyKTp2IiwgIiIsCisgICAgZkhJREUoc2l6ZTJzX3QgYzAwOykKKyAg ICBmR0VUMTBCSVQoYzAwLCBWdnZWLnZbMF0udXdbaV0sIDApCisgICAgZkhJREUoc2l6ZTJzX3Qg YzAxOykKKyAgICBmR0VUMTBCSVQoYzAxLCBWdnZWLnZbMF0udXdbaV0sIDEpCisgICAgZkhJREUo c2l6ZTJzX3QgYzAyOykKKyAgICBmR0VUMTBCSVQoYzAyLCBWdnZWLnZbMF0udXdbaV0sIDIpCisK KwlmSElERShzaXplMnNfdCBjMTA7KQorICAgIGZHRVQxMEJJVChjMTAsIFZ2dlYudlsxXS51d1tp XSwgMCkKKyAgICBmSElERShzaXplMnNfdCBjMTE7KQorICAgIGZHRVQxMEJJVChjMTEsIFZ2dlYu dlsxXS51d1tpXSwgMSkKKyAgICBmSElERShzaXplMnNfdCBjMTI7KQorICAgIGZHRVQxMEJJVChj MTIsIFZ2dlYudlsxXS51d1tpXSwgMikKKworICAgIGlmICh1aVYgPT0gMCkgeworICAgICAgICBW eHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdbaV0pLCBj MTApOworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVW LnZbMV0udXdbaV0pLCBjMTEpOworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhm R0VUVUJZVEUoMyxWdXVWLnZbMV0udXdbaV0pLCBjMTIpOworCisgICAgICAgIFZ4eFYudlsxXS53 W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSksIGMwMCk7CisgICAg ICAgIFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgwLFZ1dVYudlsxXS51d1tp XSksIGMwMSk7CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgx LFZ1dVYudlsxXS51d1tpXSksIGMwMik7CisKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1Q WTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzBdLnV3W2ldKSwgYzEwKTsKKyAgICAgICAgVnh4Vi52 WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwgYzExKTsK KyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzFd LnV3W2ldKSwgYzEyKTsKKworICAgIH0gZWxzZSBpZiAodWlWID09IDEpIHsKKyAgICAgICAgVnh4 Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDMsVnV1Vi52WzBdLnV3W2ldKSwgYzAw KTsKKyAgICAgICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIsVnV1Vi52 WzFdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdF VFVCWVRFKDMsVnV1Vi52WzFdLnV3W2ldKSwgYzAyKTsKKworICAgICAgICBWeHhWLnZbMF0ud1tp XSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdbaV0pLCBjMTApOworICAgICAg ICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMV0udXdbaV0p LCBjMTEpOworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxW dXVWLnZbMV0udXdbaV0pLCBjMTIpOworCisgICAgICAgIFZ4eFYudlswXS53W2ldICs9IGZNUFkx NlVTKGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSksIGMwMCk7CisgICAgICAgIFZ4eFYudlsw XS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgwLFZ1dVYudlsxXS51d1tpXSksIGMwMSk7Cisg ICAgICAgIFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlsxXS51 d1tpXSksIGMwMik7CisKKyAgICB9IGVsc2UgaWYgKHVpViA9PSAyKSB7CisgICAgICAgIFZ4eFYu dlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlswXS51d1tpXSksIGMxMCk7 CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlsw XS51d1tpXSksIGMxMSk7CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRV QllURSgyLFZ1dVYudlsxXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVnh4Vi52WzFdLndbaV0g Kz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAg Vnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzBdLnV3W2ldKSwg YzAxKTsKKyAgICAgICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1 Vi52WzFdLnV3W2ldKSwgYzAyKTsKKworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZV UyhmR0VUVUJZVEUoMCxWdXVWLnZbMF0udXdbaV0pLCBjMTApOworICAgICAgICBWeHhWLnZbMF0u d1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMF0udXdbaV0pLCBjMTEpOworICAg ICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZbMV0udXdb aV0pLCBjMTIpOworCisgICAgfSBlbHNlIGlmICh1aVYgPT0gMykgeworICAgICAgICBWeHhWLnZb MV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMF0udXdbaV0pLCBjMDApOwor ICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0u dXdbaV0pLCBjMDEpOworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZ VEUoMixWdXVWLnZbMV0udXdbaV0pLCBjMDIpOworCisgICAgICAgIFZ4eFYudlswXS53W2ldICs9 IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlswXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZ4 eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMx MSk7CisgICAgICAgIFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYu dlsxXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMo ZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVnh4Vi52WzBdLndb aV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzBdLnV3W2ldKSwgYzAxKTsKKyAgICAg ICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ld KSwgYzAyKTsKKyAgICB9CispCitJVEVSQVRPUl9JTlNOX01QWV9TTE9UX0RPVUJMRV9WRUNfVlhf RldEKDMyLCB2Nm1weWh1YnMxMF92eHgsICJWeHgzMi53Kz12Nm1weShWdXUzMi51YixWdnYzMi5i LCN1Mik6aCIsICIiLAorICAgIGZISURFKHNpemUyc190IGMwMDspCisgICAgZkdFVDEwQklUKGMw MCwgVnZ2Vi52WzBdLnV3W2ldLCAwKQorICAgIGZISURFKHNpemUyc190IGMwMTspCisgICAgZkdF VDEwQklUKGMwMSwgVnZ2Vi52WzBdLnV3W2ldLCAxKQorICAgIGZISURFKHNpemUyc190IGMwMjsp CisgICAgZkdFVDEwQklUKGMwMiwgVnZ2Vi52WzBdLnV3W2ldLCAyKQorICAgIGZISURFKHNpemUy c190IGMxMDspCisgICAgZkdFVDEwQklUKGMxMCwgVnZ2Vi52WzFdLnV3W2ldLCAwKQorICAgIGZI SURFKHNpemUyc190IGMxMTspCisgICAgZkdFVDEwQklUKGMxMSwgVnZ2Vi52WzFdLnV3W2ldLCAx KQorICAgIGZISURFKHNpemUyc190IGMxMjspCisgICAgZkdFVDEwQklUKGMxMiwgVnZ2Vi52WzFd LnV3W2ldLCAyKQorCisgICAgaWYgKHVpViA9PSAwKSB7CisgICAgICAgIFZ4eFYudlsxXS53W2ld ICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlsxXS51d1tpXSksIGMxMCk7CisgICAgICAg IFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlsxXS51d1tpXSks IGMxMSk7CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1 dVYudlswXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2 VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzFdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVnh4Vi52WzFd LndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwgYzAxKTsKKyAg ICAgICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzBdLnV3 W2ldKSwgYzAyKTsKKworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZ VEUoMixWdXVWLnZbMV0udXdbaV0pLCBjMTApOworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBm TVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZbMV0udXdbaV0pLCBjMTEpOworICAgICAgICBWeHhW LnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMF0udXdbaV0pLCBjMTIp OworCisgICAgfSBlbHNlIGlmICh1aVYgPT0gMSkgeworICAgICAgICBWeHhWLnZbMV0ud1tpXSAr PSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMV0udXdbaV0pLCBjMDApOworICAgICAgICBW eHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMV0udXdbaV0pLCBj MDEpOworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVW LnZbMF0udXdbaV0pLCBjMDIpOworCisgICAgICAgIFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVT KGZHRVRVQllURSgzLFZ1dVYudlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZ4eFYudlswXS53 W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlsxXS51d1tpXSksIGMxMSk7CisgICAg ICAgIFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tp XSksIGMxMik7CisKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRF KDIsVnV1Vi52WzFdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1Q WTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVnh4Vi52 WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzBdLnV3W2ldKSwgYzAyKTsK KworICAgIH0gIGVsc2UgaWYgKHVpViA9PSAyKSB7CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9 IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZ4 eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMx MSk7CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYu dlswXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMo ZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVnh4Vi52WzFdLndb aV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzBdLnV3W2ldKSwgYzAxKTsKKyAgICAg ICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ld KSwgYzAyKTsKKworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUo MCxWdXVWLnZbMV0udXdbaV0pLCBjMTApOworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZ MTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMF0udXdbaV0pLCBjMTEpOworICAgICAgICBWeHhWLnZb MF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZbMF0udXdbaV0pLCBjMTIpOwor CisgICAgfSBlbHNlIGlmICh1aVYgPT0gMykgeworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBm TVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMV0udXdbaV0pLCBjMDApOworICAgICAgICBWeHhW LnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdbaV0pLCBjMDEp OworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZb MF0udXdbaV0pLCBjMDIpOworCisgICAgICAgIFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZH RVRVQllURSgxLFZ1dVYudlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZ4eFYudlswXS53W2ld ICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMxMSk7CisgICAgICAg IFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSks IGMxMik7CisKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAs VnV1Vi52WzFdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2 VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzBdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVnh4Vi52WzBd LndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAyKTsKKyAg ICB9CispCisKKworSVRFUkFUT1JfSU5TTl9NUFlfU0xPVF9ET1VCTEVfVkVDKDMyLCB2Nm1weXZ1 YnMxMCwgIlZkZDMyLnc9djZtcHkoVnV1MzIudWIsVnZ2MzIuYiwjdTIpOnYiLCAiIiwKKyAgICBm SElERShzaG9ydCBjMDA7KQorICAgIGZHRVQxMEJJVChjMDAsIFZ2dlYudlswXS51d1tpXSwgMCkK KyAgICBmSElERShzaG9ydCBjMDE7KQorICAgIGZHRVQxMEJJVChjMDEsIFZ2dlYudlswXS51d1tp XSwgMSkKKyAgICBmSElERShzaG9ydCBjMDI7KQorICAgIGZHRVQxMEJJVChjMDIsIFZ2dlYudlsw XS51d1tpXSwgMikKKyAgICBmSElERShzaG9ydCBjMTA7KQorICAgIGZHRVQxMEJJVChjMTAsIFZ2 dlYudlsxXS51d1tpXSwgMCkKKyAgICBmSElERShzaG9ydCBjMTE7KQorICAgIGZHRVQxMEJJVChj MTEsIFZ2dlYudlsxXS51d1tpXSwgMSkKKyAgICBmSElERShzaG9ydCBjMTI7KQorICAgIGZHRVQx MEJJVChjMTIsIFZ2dlYudlsxXS51d1tpXSwgMikKKworCisKKyAgICBpZiAodWlWID09IDApIHsK KyAgICAgICAgVmRkVi52WzFdLndbaV0gID0gZk1QWTE2VVMoZkdFVFVCWVRFKDMsVnV1Vi52WzBd LnV3W2ldKSwgYzEwKTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVC WVRFKDIsVnV1Vi52WzFdLnV3W2ldKSwgYzExKTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0g Zk1QWTE2VVMoZkdFVFVCWVRFKDMsVnV1Vi52WzFdLnV3W2ldKSwgYzEyKTsKKworICAgICAgICBW ZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMF0udXdbaV0pLCBj MDApOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVW LnZbMV0udXdbaV0pLCBjMDEpOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhm R0VUVUJZVEUoMSxWdXVWLnZbMV0udXdbaV0pLCBjMDIpOworCisgICAgICAgIFZkZFYudlswXS53 W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSksIGMxMCk7CisgICAg ICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgwLFZ1dVYudlsxXS51d1tp XSksIGMxMSk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgx LFZ1dVYudlsxXS51d1tpXSksIGMxMik7CisKKyAgICB9ICBlbHNlIGlmICh1aVYgPT0gMSkgewor ICAgICAgICBWZGRWLnZbMV0ud1tpXSAgPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0u dXdbaV0pLCBjMDApOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZ VEUoMixWdXVWLnZbMV0udXdbaV0pLCBjMDEpOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBm TVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMV0udXdbaV0pLCBjMDIpOworCisgICAgICAgIFZk ZFYudlswXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMx MCk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYu dlsxXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZH RVRVQllURSgzLFZ1dVYudlsxXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVmRkVi52WzBdLndb aV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzBdLnV3W2ldKSwgYzAwKTsKKyAgICAg ICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ld KSwgYzAxKTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEs VnV1Vi52WzFdLnV3W2ldKSwgYzAyKTsKKworICAgIH0gIGVsc2UgaWYgKHVpViA9PSAyKSB7Cisg ICAgICAgIFZkZFYudlsxXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlswXS51 d1tpXSksIGMxMCk7CisgICAgICAgIFZkZFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllU RSgzLFZ1dVYudlswXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlsxXS53W2ldICs9IGZN UFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlsxXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVmRk Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAw KTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52 WzBdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdF VFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwgYzAyKTsKKworICAgICAgICBWZGRWLnZbMF0ud1tp XSAgPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZbMF0udXdbaV0pLCBjMTApOworICAgICAg ICBWZGRWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMF0udXdbaV0p LCBjMTEpOworICAgICAgICBWZGRWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxW dXVWLnZbMV0udXdbaV0pLCBjMTIpOworCisgICAgfSBlbHNlIGlmICh1aVYgPT0gMykgeworICAg ICAgICBWZGRWLnZbMV0ud1tpXSAgPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMF0udXdb aV0pLCBjMDApOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUo MyxWdXVWLnZbMF0udXdbaV0pLCBjMDEpOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZ MTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMV0udXdbaV0pLCBjMDIpOworCisgICAgICAgIFZkZFYu dlswXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlswXS51d1tpXSksIGMxMCk7 CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlsw XS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRV QllURSgyLFZ1dVYudlsxXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVmRkVi52WzBdLndbaV0g Kz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAg VmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzBdLnV3W2ldKSwg YzAxKTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1 Vi52WzFdLnV3W2ldKSwgYzAyKTsKKyAgICB9CispCisKK0lURVJBVE9SX0lOU05fTVBZX1NMT1Rf RE9VQkxFX1ZFQygzMiwgdjZtcHlodWJzMTAsICJWZGQzMi53PXY2bXB5KFZ1dTMyLnViLFZ2djMy LmIsI3UyKTpoIiwgIiIsCisgICAgZkhJREUoc2hvcnQgYzAwOykKKyAgICBmR0VUMTBCSVQoYzAw LCBWdnZWLnZbMF0udXdbaV0sIDApCisgICAgZkhJREUoc2hvcnQgYzAxOykKKyAgICBmR0VUMTBC SVQoYzAxLCBWdnZWLnZbMF0udXdbaV0sIDEpCisgICAgZkhJREUoc2hvcnQgYzAyOykKKyAgICBm R0VUMTBCSVQoYzAyLCBWdnZWLnZbMF0udXdbaV0sIDIpCisgICAgZkhJREUoc2hvcnQgYzEwOykK KyAgICBmR0VUMTBCSVQoYzEwLCBWdnZWLnZbMV0udXdbaV0sIDApCisgICAgZkhJREUoc2hvcnQg YzExOykKKyAgICBmR0VUMTBCSVQoYzExLCBWdnZWLnZbMV0udXdbaV0sIDEpCisgICAgZkhJREUo c2hvcnQgYzEyOykKKyAgICBmR0VUMTBCSVQoYzEyLCBWdnZWLnZbMV0udXdbaV0sIDIpCisKKyAg ICBpZiAodWlWID09IDApIHsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gID0gZk1QWTE2VVMoZkdF VFVCWVRFKDMsVnV1Vi52WzFdLnV3W2ldKSwgYzEwKTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0g Kz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzFdLnV3W2ldKSwgYzExKTsKKyAgICAgICAg VmRkVi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDMsVnV1Vi52WzBdLnV3W2ldKSwg YzEyKTsKKworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixW dXVWLnZbMV0udXdbaV0pLCBjMDApOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZV UyhmR0VUVUJZVEUoMCxWdXVWLnZbMV0udXdbaV0pLCBjMDEpOworICAgICAgICBWZGRWLnZbMV0u d1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMF0udXdbaV0pLCBjMDIpOworCisg ICAgICAgIFZkZFYudlswXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlsxXS51 d1tpXSksIGMxMCk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllU RSgwLFZ1dVYudlsxXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZN UFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlswXS51d1tpXSksIGMxMik7CisKKyAgICB9ICBlbHNl IGlmICh1aVYgPT0gMSkgeworICAgICAgICBWZGRWLnZbMV0ud1tpXSAgPSBmTVBZMTZVUyhmR0VU VUJZVEUoMyxWdXVWLnZbMV0udXdbaV0pLCBjMDApOworICAgICAgICBWZGRWLnZbMV0ud1tpXSAr PSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMV0udXdbaV0pLCBjMDEpOworICAgICAgICBW ZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdbaV0pLCBj MDIpOworCisgICAgICAgIFZkZFYudlswXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1 dVYudlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVT KGZHRVRVQllURSgxLFZ1dVYudlsxXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlswXS53 W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMxMik7CisKKyAg ICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzFdLnV3 W2ldKSwgYzAwKTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRF KDAsVnV1Vi52WzFdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1Q WTE2VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzBdLnV3W2ldKSwgYzAyKTsKKworICAgIH0gIGVsc2Ug aWYgKHVpViA9PSAyKSB7CisgICAgICAgIFZkZFYudlsxXS53W2ldICA9IGZNUFkxNlVTKGZHRVRV QllURSgxLFZ1dVYudlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZkZFYudlsxXS53W2ldICs9 IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZk ZFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSksIGMx Mik7CisKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1 Vi52WzFdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0gZk1QWTE2VVMo ZkdFVFVCWVRFKDIsVnV1Vi52WzBdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVmRkVi52WzFdLndb aV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAyKTsKKworICAg ICAgICBWZGRWLnZbMF0ud1tpXSAgPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZbMV0udXdb aV0pLCBjMTApOworICAgICAgICBWZGRWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUo MixWdXVWLnZbMF0udXdbaV0pLCBjMTEpOworICAgICAgICBWZGRWLnZbMF0ud1tpXSArPSBmTVBZ MTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZbMF0udXdbaV0pLCBjMTIpOworCisgICAgfSBlbHNlIGlm ICh1aVYgPT0gMykgeworICAgICAgICBWZGRWLnZbMV0ud1tpXSAgPSBmTVBZMTZVUyhmR0VUVUJZ VEUoMSxWdXVWLnZbMV0udXdbaV0pLCBjMDApOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBm TVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdbaV0pLCBjMDEpOworICAgICAgICBWZGRW LnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMF0udXdbaV0pLCBjMDIp OworCisgICAgICAgIFZkZFYudlswXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYu dlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZH RVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlswXS53W2ld ICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSksIGMxMik7CisKKyAgICAg ICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ld KSwgYzAwKTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIs VnV1Vi52WzBdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2 VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAyKTsKKyAgICB9CispCisKIAogRVhU SU5TTihWNl92c2NhdHRlcm1od3EsICAiaWYgKFFzNCkgdnNjYXR0ZXIoUnQzMixNdTIsVnZ2MzIu dykuaD1WdzMyIiwgQVRUUklCUyhBX0VYVEVOU0lPTixBX0NWSSxBX0NWSV9TQ0FUVEVSLEFfQ1ZJ X1ZBX0RWLEFfQ1ZJX1ZNLEFfTUVNTElLRSksICJTY2F0dGVyIGhhbGZ3b3JkcyBjb25kaXRpb25h bCIsCiB7Ci0tIAoyLjI1LjEKCg==