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 picard.linux.it (picard.linux.it [213.254.12.146]) (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 3C6D1C43458 for ; Tue, 7 Jul 2026 16:00:54 +0000 (UTC) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id CA0BD3E5D2F for ; Tue, 7 Jul 2026 18:00:52 +0200 (CEST) Received: from in-6.smtp.seeweb.it (in-6.smtp.seeweb.it [217.194.8.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 0865C3E1775 for ; Tue, 7 Jul 2026 18:00:37 +0200 (CEST) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-6.smtp.seeweb.it (Postfix) with ESMTPS id 1CD501400138 for ; Tue, 7 Jul 2026 18:00:35 +0200 (CEST) Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 667Fmnmp4187890; Tue, 7 Jul 2026 16:00:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=pp1; bh=nwP+yUnJl4456XOYpVy+sUMzCck3 SBj21fTq+PAn4AE=; b=GOMmH3VB+ynFSEpAPIVMU/d1h2UJKGrnOhk7jXhvsWiV SdPhrBzW1umfSYcljJimaUfnY/VygVX9+z0ysXOu8UO/imgbtPmcQTVh7RYZ/ean 2J9ZyuBNSkgk5ClZbHf6WP3f9esmXwXiDNAFpd7+OIoY9k38XNTKJxcod+de8LDT eCI6qztvWxyUCXIHfCxUnitqBUSOjj0cGlC93Vy5g7p9fZi/HgD4sbBZkwIZkm8n ftJiMgzBfuhujGCCPT3ce2LUK82awM4PyNm32uS8JEYkh01/RPdDTmO/7UXShYjS +YDDTR59zJG8RmslcqLnBloBhvDSBqA0Dqv68UndXQ== Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4f6sp3r588-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Jul 2026 16:00:32 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 667Fnawb006252; Tue, 7 Jul 2026 16:00:31 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4f7dgk3jej-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Jul 2026 16:00:31 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 667G0T9461014434 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Jul 2026 16:00:29 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5273E2004B; Tue, 7 Jul 2026 16:00:29 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id F3BDE20040; Tue, 7 Jul 2026 16:00:28 +0000 (GMT) Received: from li-276bd24c-2dcc-11b2-a85c-945b6f05615c.ibm.com.com (unknown [9.111.59.117]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 7 Jul 2026 16:00:28 +0000 (GMT) From: Jan Polensky To: ltp@lists.linux.it Date: Tue, 7 Jul 2026 18:00:22 +0200 Message-ID: <20260707160024.216347-1-japo@linux.ibm.com> X-Mailer: git-send-email 2.54.0 MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=KsJ9H2WN c=1 sm=1 tr=0 ts=6a4d22a0 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=KwZSMpnHVXeReWkHAeAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDE1NSBTYWx0ZWRfX/kf4lAnWpW/U OQClJJrK7wkNEpfQHhRM14k4zTgERNinmWS0XkDOFw7ShRulaTpUWArdUlu9URbnZm+YUWAv9By 6KFhvKKYVw65U4J1voGYPs8ueEOd7Wc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDE1NSBTYWx0ZWRfX1rMU/GWWsh/J 0+3+ilOB8RQlvuudOS7HLmSWtVuympI4H2Px04JtQFj//A2kF1QejPmvk/3KKLtLGGpjDsTT4yW PCAwIM3YruibvqupLGbw4KSUZ5kdvbpYkg0MzKP88IjTJy33Pp27VCW+GX4zjndRzxc9QsZOvzv Hgs6691/OekAFak6XcTKtwZSq6ikTzRAQcaaWUY5xeEBAJAL11jIdmo4bNmvMYPfIO3YAYc/b7J seP6tCYhg5juRg2gnI8E6NDoqbP6x4Sp5rkCA3vrZ9ZrzR5kqc5QuJm2KkZA/TtwOdhrv2qztZ7 Fefja1XDvn1jbTunqMTSmDy5+9i7zNEw1bj86UfZMT0WMB517VGbv9AQOdnwFfzZ73ZqMs/KsIR AQaXrdRG4mos7hwyr+X3tMiF6S84MId+giuEkCBaWomKS5XMs2+aNzIeC+lFywWVh/+XF7Gq1AB +MuiScRQrCrrSj8mIIw== X-Proofpoint-ORIG-GUID: afNHOwknuvtt_TQM21vAaG-iuRf1ssvp X-Proofpoint-GUID: afNHOwknuvtt_TQM21vAaG-iuRf1ssvp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-07_04,2026-07-06_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 spamscore=0 adultscore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070155 X-Virus-Scanned: clamav-milter 1.0.9 at in-6.smtp.seeweb.it X-Virus-Status: Clean Subject: [LTP] [PATCH v4 1/1] thp04: Add ptrace support for CONFIG_PROC_MEM_FORCE_PTRACE=y X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Li Wang Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ltp-bounces+ltp=archiver.kernel.org@lists.linux.it Sender: "ltp" V2hlbiBDT05GSUdfUFJPQ19NRU1fRk9SQ0VfUFRSQUNFPXkgaXMgc2V0LCBkaXJlY3Qgd3JpdGVz IHRvCi9wcm9jL3NlbGYvbWVtIGFyZSBkaXNhYmxlZCBhbmQgcmVxdWlyZSBwdHJhY2UgYXR0YWNo bWVudC4gVGhpcyBwYXRjaAphZGRzIHN1cHBvcnQgZm9yIHRoaXMgY29uZmlndXJhdGlvbiBieSBp bXBsZW1lbnRpbmcgYSBwdHJhY2UtYmFzZWQgdGVzdAptb2RlIHRoYXQgd3JpdGVzIHRvIC9wcm9j L3BpZC9tZW0gd2hpbGUgdGhlIHRyYWNlZSBpcyBzdG9wcGVkLgoKVGhlIGltcGxlbWVudGF0aW9u IHVzZXMgYSB3cml0ZS1zdG9wLWNvbnRpbnVlIGN5Y2xlIHdoZXJlIHRoZSBwYXJlbnQKd3JpdGVz IHRvIC9wcm9jL3BpZC9tZW0gd2hpbGUgdGhlIHRyYWNlZSBpcyBzdG9wcGVkLCB0aGVuIGNvbnRp bnVlcwp0aGUgdHJhY2VlIHRvIHJ1biBtYWR2aXNlIG9wZXJhdGlvbnMuIFRoaXMgc2VyaWFsaXph dGlvbiBpcyByZXF1aXJlZApiZWNhdXNlIC9wcm9jL3BpZC9tZW0gd3JpdGVzIG5lZWQgUFRSQUNF X01PREVfQVRUQUNIICh0cmFjZWUgbXVzdCBiZQppbiBzdG9wcGVkIHN0YXRlKS4KCkhvd2V2ZXIs IHRoaXMgc2VyaWFsaXphdGlvbiBlbGltaW5hdGVzIHRoZSBjb25jdXJyZW50IGV4ZWN1dGlvbiB3 aW5kb3cKdGhhdCBDVkUtMjAxNy0xMDAwNDA1IGV4cGxvaXRzLiBUaGUgcHRyYWNlIG1vZGUgdGVz dHMga2VybmVsIGhhbmRsaW5nCm9mIHdyaXRlcyB0byBzdG9wcGVkIHByb2Nlc3NlcywgYnV0IGRv ZXMgbm90IHRlc3QgdGhlIGFjdHVhbCByYWNlCmNvbmRpdGlvbiBiZXR3ZWVuIGNvbmN1cnJlbnQg d3JpdGVzIGFuZCBNQURWX0RPTlRORUVEIG9wZXJhdGlvbnMuCgpUaGUgdGVzdCBub3c6Ci0gUHJv YmVzIC9wcm9jL3NlbGYvbWVtIHdyaXRlIGNhcGFiaWxpdHkgYXQgc2V0dXAKLSBGYWxscyBiYWNr IHRvIHB0cmFjZSBtb2RlIGlmIGRpcmVjdCB3cml0ZXMgZmFpbCB3aXRoIEVJTwotIFJlc3BlY3Rz IHByb2NfbWVtLmZvcmNlX292ZXJyaWRlIGtlcm5lbCBjbWRsaW5lIHBhcmFtZXRlcgotIERvY3Vt ZW50cyB0aGUgcmFjZSBsaW1pdGF0aW9uIGluIGJvdGggbW9kZXMKLSBTdXBwb3J0cyByZS1pbnZv Y2F0aW9uIHdpdGggLWkgTiBieSBzcGF3bmluZyBmcmVzaCB0cmFjZWUgcGVyIHJ1bigpCi0gUmVz dG9yZXMgbGFwaS9tbWFwLmggZm9yIE1BRFZfKiBmYWxsYmFjayBkZWZpbml0aW9ucwoKU2lnbmVk LW9mZi1ieTogSmFuIFBvbGVuc2t5IDxqYXBvQGxpbnV4LmlibS5jb20+Ci0tLQpMaW5rOiBodHRw czovL2xvcmUua2VybmVsLm9yZy9hbGwvMjAyNjA3MDExMTEyNDIuOTc1MjAtMS1qYXBvQGxpbnV4 LmlibS5jb20vCgpDaGFuZ2VzIHNpbmNlIHYzOgotIFJlc3RvcmUgbGFwaS9tbWFwLmggaW5jbHVk ZSBmb3IgTUFEVl8qIGZhbGxiYWNrIGRlZmluaXRpb25zIChBbmRyZWEgQ2VydmVzYXRvKQotIE1v dmUgdHJhY2VlIGxpZmVjeWNsZSBpbnRvIHJ1bigpIHRvIHN1cHBvcnQgcmUtaW52b2NhdGlvbiB3 aXRoIC1pIE4gKEFuZHJlYSBDZXJ2ZXNhdG8pCiAgKiBFYWNoIHJ1bigpIGludm9jYXRpb24gc3Bh d25zIGZyZXNoIHRyYWNlZSB2aWEgc2V0dXBfcHRyYWNlX3RyYWNlZSgpCiAgKiBUcmFjZWUgcnVu cyBpbmZpbml0ZSBsb29wLCBwYXJlbnQgY29udHJvbHMgdGVybWluYXRpb24KICAqIEFmdGVyIDEw MDAgaXRlcmF0aW9uczogUFRSQUNFX0RFVEFDSCDihpIgU0lHS0lMTCDihpIgU0FGRV9XQUlUUElE CiAgKiBjbGVhbnVwKCkgb25seSBoYW5kbGVzIGVycm9yIGNhc2VzICh1c2VzIHRzdF9yZWFwX2No aWxkcmVuKCkpCi0gVmFsaWRhdGVkIG9uIHMzOTB4IHdpdGggLWkgMiBhbmQgLWkgNSAoYm90aCBQ QVNTKQoKQ2hhbmdlcyBzaW5jZSB2MjoKLSBBZGRlZCBkb2N1bWVudGF0aW9uIGNsYXJpZnlpbmcg dGhhdCBwdHJhY2UgbW9kZSBzZXJpYWxpemF0aW9uIGVsaW1pbmF0ZXMgdGhlIENWRSByYWNlCi0g Rml4ZWQgbWlzc2luZyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0gQWRkcmVzc2VkIHJldmlldyBm ZWVkYmFjayBvbiByYWNlIGNvbmRpdGlvbiB0ZXN0aW5nIGxpbWl0YXRpb25zCgpDaGFuZ2VzIHNp bmNlIHYxOgotIGRldGVjdCBwcm9jX21lbS5mb3JjZV9vdmVycmlkZSAvIGtlcm5lbCBjb25maWcg aW5zdGVhZCBvZiByZWx5aW5nIG9ubHkgb24gYSBwcm9iZSB3cml0ZQotIGZpeCBrZXJuZWwgcGFy YW1ldGVyIG5hbWluZyBwZXIgcmV2aWV3Ci0gYWRkcmVzcyBmZWVkYmFjayBmcm9tIEN5cmlsIEhy dWJpcyBpbiBwcmV2aW91cyB0aHJlYWQKCiB0ZXN0Y2FzZXMva2VybmVsL21lbS90aHAvdGhwMDQu YyB8IDM3NSArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MzIzIGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RjYXNl cy9rZXJuZWwvbWVtL3RocC90aHAwNC5jIGIvdGVzdGNhc2VzL2tlcm5lbC9tZW0vdGhwL3RocDA0 LmMKaW5kZXggMTZkNzY2YzM0OWI3Li5kNTIwYzBmNjMwZDIgMTAwNjQ0Ci0tLSBhL3Rlc3RjYXNl cy9rZXJuZWwvbWVtL3RocC90aHAwNC5jCisrKyBiL3Rlc3RjYXNlcy9rZXJuZWwvbWVtL3RocC90 aHAwNC5jCkBAIC0yMSwyNyArMjEsNjcgQEAKICAqIE9uIG9sZCBrZXJuZWwgc3VjaCBhcyA0Ljks IGl0IGhhcyBmaXhlZCB0aGUgRGlydHkgQ293IGJ1ZyBidXQgYSBzaW1pbGFyIGNoZWNrCiAgKiBp biBodWdlX21lbW9yeS5jIHdhcyBmb3Jnb3R0ZW4uICBBcyBhIHJlc3VsdCwgcmVtb3RlIG1lbW9y eSB3cml0ZXMgdG8gcm8gcmVnaW9ucwogICogb2YgbWVtb3J5IGJhY2tlZCBieSB0cmFuc3BhcmVu dCBodWdlIHBhZ2VzIGNhdXNlIGFuIGluZmluaXRlIGxvb3AgaW4gdGhlIGtlcm5lbC4KLSAqIFdo aWxlIGluIHRoaXMgc3RhdGUgdGhlIHByb2Nlc3MgaXMgc3RpbCBTSUdLSUxMYWJsZSwgYnV0IGxp dHRsZSBlbHNlIHdvcmtzLgorICogV2hpbGUgaW4gdGhpcyBzdGF0ZSB0aGUgcHJvY2VzcyBpcyBz dGlsbCBTSUdLSUxMYWJsZSwgYnV0IGxpdHRsZSBlbHNlIHdvcmtzLgogICogSXQgaXMgYWxzbyBh IHJlZ3Jlc3Npb24gdGVzdCBhYm91dCBrZXJuZWwKICAqIGNvbW1pdCA4MzEwZDQ4YjEyNWQoImh1 Z2VfbWVtb3J5LmM6IHJlc3BlY3QgRk9MTF9GT1JDRS9GT0xMX0NPVyBmb3IgdGhwIikuCisgKgor ICogVGVzdCBNb2RlczoKKyAqCisgKiBQUk9DX01FTV9BTFdBWVM6IERpcmVjdCB3cml0ZXMgdG8g L3Byb2Mvc2VsZi9tZW0gKGRlZmF1bHQgb24gbW9zdCBzeXN0ZW1zKQorICogICAtIENoaWxkIHBy b2Nlc3Mgd3JpdGVzIHRvIGl0cyBvd24gbWVtb3J5IHZpYSAvcHJvYy9zZWxmL21lbQorICogICAt IENvbmN1cnJlbnQgZXhlY3V0aW9uOiB3cml0ZXMgcmFjZSB3aXRoIG1hZHZpc2UoKSBjYWxscwor ICogICAtIFVzZXMgZnV6enktc3luYyB0byBtYXhpbWl6ZSByYWNlIHdpbmRvdworICoKKyAqIFBS T0NfTUVNX1BUUkFDRTogUHRyYWNlLWJhc2VkIHdyaXRlcyB0byAvcHJvYy9waWQvbWVtIChDT05G SUdfUFJPQ19NRU1fRk9SQ0VfUFRSQUNFPXkpCisgKiAgIC0gUGFyZW50IHdyaXRlcyB0byB0cmFj ZWUncyBtZW1vcnkgdmlhIC9wcm9jL3BpZC9tZW0KKyAqICAgLSBXcml0ZS1zdG9wLWNvbnRpbnVl IGN5Y2xlOiB0cmFjZWUgbXVzdCBiZSBTVE9QUEVEIGZvciB3cml0ZXMgdG8gc3VjY2VlZAorICog ICAtIEFsdGVybmF0aW5nIGV4ZWN1dGlvbjogcGFyZW50IHdyaXRlcyDihpIgdHJhY2VlIHJ1bnMg bWFkdmlzZSDihpIgdHJhY2VlIHN0b3BzIOKGkiByZXBlYXQKKyAqICAgLSBSZXF1aXJlZCBiZWNh dXNlIC9wcm9jL3BpZC9tZW0gd3JpdGVzIG5lZWQgUFRSQUNFX01PREVfQVRUQUNIIChzdG9wcGVk IHN0YXRlKQorICogICAtIE5vdGU6IFNlcmlhbGl6YXRpb24gZWxpbWluYXRlcyB0aGUgcmFjZTsg dGVzdHMgd3JpdGUgZnVuY3Rpb25hbGl0eSwgbm90IHRoZSBDVkUgcmFjZQogICovCgotI2luY2x1 ZGUgInRzdF90ZXN0LmgiCisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3lzL3B0cmFj ZS5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisKICNpbmNsdWRlICJsYXBpL21tYXAuaCIKKwor LyogUFRSQUNFIG1vZGUgaXMgc2VyaWFsaXplZCBhbmQgdGhlcmVmb3JlIHVzZXMgZmV3ZXIgaXRl cmF0aW9ucy4gKi8KKyNkZWZpbmUgUFRSQUNFX1RFU1RfSVRFUkFUSU9OUyAxMDAwCisjaW5jbHVk ZSAidHN0X2NoZWNrcG9pbnQuaCIKICNpbmNsdWRlICJ0c3RfZnV6enlfc3luYy5oIgorI2luY2x1 ZGUgInRzdF9rY29uZmlnLmgiCisjaW5jbHVkZSAidHN0X3Rlc3QuaCIKCi1zdGF0aWMgY2hhciAq d3JpdGVfdGhwLCAqcmVhZF90aHA7Ci1zdGF0aWMgaW50ICp3cml0ZV9wdHIsICpyZWFkX3B0cjsK LXN0YXRpYyBzaXplX3QgdGhwX3NpemU7Ci1zdGF0aWMgaW50IHdyaXRlZmQgPSAtMSwgcmVhZGZk ID0gLTE7Ci1zdGF0aWMgc3RydWN0IHRzdF9menN5bmNfcGFpciBmenN5bmNfcGFpcjsKK2VudW0g cHJvY19tZW1fbW9kZSB7CisJUFJPQ19NRU1fQUxXQVlTLAorCVBST0NfTUVNX1BUUkFDRSwKKwlQ Uk9DX01FTV9ORVZFUiwKK307Cgotc3RhdGljIHZvaWQgKmFsbG9jX3plcm9fcGFnZSh2b2lkICpi YXNlYWRkcikKK3N0cnVjdCBjaGlsZF9zdGF0ZSB7CisJY2hhciAqd3JpdGVfdGhwOworCWNoYXIg KnJlYWRfdGhwOworCWludCAqd3JpdGVfcHRyOworCWludCAqcmVhZF9wdHI7CisJc2l6ZV90IHRo cF9zaXplOworCWludCB3cml0ZWZkOworCWludCByZWFkZmQ7CisJc3RydWN0IHRzdF9menN5bmNf cGFpciBmenN5bmNfcGFpcjsKK307CisKK3N0YXRpYyBwaWRfdCB0cmFjZWVfcGlkOworLyogTW9k ZSByZXF1ZXN0ZWQgYnkga2VybmVsIGNvbW1hbmQgbGluZSBwYXJzaW5nLiBEbyBub3QgbXV0YXRl IGR1cmluZyBwcm9iaW5nLiAqLworc3RhdGljIGVudW0gcHJvY19tZW1fbW9kZSB1c2VyX21vZGUg PSBQUk9DX01FTV9BTFdBWVM7CisvKiBSdW50aW1lIG1vZGUgc2VsZWN0ZWQgYWZ0ZXIgY2hlY2tp bmcgd2hldGhlciBkaXJlY3QgL3Byb2Mvc2VsZi9tZW0gd3JpdGVzIHdvcmsuICovCitzdGF0aWMg ZW51bSBwcm9jX21lbV9tb2RlIGVmZmVjdGl2ZV9tb2RlID0gUFJPQ19NRU1fQUxXQVlTOworc3Rh dGljIHN0cnVjdCBjaGlsZF9zdGF0ZSAqY2hpbGQ7CisKK3N0YXRpYyB2b2lkICphbGxvY196ZXJv X3BhZ2Uodm9pZCAqYmFzZWFkZHIsIHNpemVfdCB0aHBfc2l6ZSkKIHsKIAlpbnQgaTsKIAl2b2lk ICpyZXQ7CgotCS8qIEZpbmQgYWxpZ25lZCBjaHVuayBvZiBhZGRyZXNzIHNwYWNlLiBNQVBfSFVH RVRMQiBkb2Vzbid0IHdvcmsuICovCiAJZm9yIChpID0gMDsgaSA8IDE2OyBpKyssIGJhc2VhZGRy ICs9IHRocF9zaXplKSB7CiAJCXJldCA9IG1tYXAoYmFzZWFkZHIsIHRocF9zaXplLCBQUk9UX1JF QUQsCiAJCQlNQVBfUFJJVkFURSB8IE1BUF9BTk9OWU1PVVMsIC0xLCAwKTsKQEAgLTY3LDQ3ICsx MDcsNzggQEAgc3RhdGljIHZvaWQgKmFsbG9jX3plcm9fcGFnZSh2b2lkICpiYXNlYWRkcikKIAl9 CgogCXRzdF9icmsoVEJST0ssICJDYW5ub3QgbWFwIGh1Z2UgemVybyBwYWdlIG5lYXIgdGhlIHNw ZWNpZmllZCBhZGRyZXNzIik7Ci0JcmV0dXJuIE5VTEw7CS8qIFNpbGVuY2UgY29tcGlsZXIgd2Fy bmluZyAqLworCXJldHVybiBOVUxMOwogfQoKLXN0YXRpYyB2b2lkIHNldHVwKHZvaWQpCitzdGF0 aWMgdm9pZCBjaGlsZF9jbGVhbnVwKHZvaWQpCit7CisJaWYgKCFjaGlsZCkKKwkJcmV0dXJuOwor CisJaWYgKGVmZmVjdGl2ZV9tb2RlID09IFBST0NfTUVNX0FMV0FZUykKKwkJdHN0X2Z6c3luY19w YWlyX2NsZWFudXAoJmNoaWxkLT5menN5bmNfcGFpcik7CisKKwlpZiAoY2hpbGQtPnJlYWRmZCA+ PSAwKQorCQlTQUZFX0NMT1NFKGNoaWxkLT5yZWFkZmQpOworCisJaWYgKGNoaWxkLT53cml0ZWZk ID49IDApCisJCVNBRkVfQ0xPU0UoY2hpbGQtPndyaXRlZmQpOworCisJaWYgKGNoaWxkLT5yZWFk X3RocCkKKwkJU0FGRV9NVU5NQVAoY2hpbGQtPnJlYWRfdGhwLCBjaGlsZC0+dGhwX3NpemUpOwor CisJaWYgKGNoaWxkLT53cml0ZV90aHApCisJCVNBRkVfTVVOTUFQKGNoaWxkLT53cml0ZV90aHAs IGNoaWxkLT50aHBfc2l6ZSk7Cit9CisKK3N0YXRpYyB2b2lkIGNoaWxkX3NldHVwKHZvaWQpCiB7 CiAJc2l6ZV90IGk7CgotCXRocF9zaXplID0gdHN0X2dldF9odWdlcGFnZV9zaXplKCk7CisJY2hp bGQtPnRocF9zaXplID0gdHN0X2dldF9odWdlcGFnZV9zaXplKCk7CgotCWlmICghdGhwX3NpemUp CisJaWYgKCFjaGlsZC0+dGhwX3NpemUpCiAJCXRzdF9icmsoVENPTkYsICJLZXJuZWwgZG9lcyBu b3Qgc3VwcG9ydCBodWdlIHBhZ2VzIik7CgotCXdyaXRlX3RocCA9IGFsbG9jX3plcm9fcGFnZSgo dm9pZCAqKXRocF9zaXplKTsKKwljaGlsZC0+d3JpdGVfdGhwID0gYWxsb2NfemVyb19wYWdlKCh2 b2lkICopY2hpbGQtPnRocF9zaXplLAorCQljaGlsZC0+dGhwX3NpemUpOwoKLQlmb3IgKGkgPSAw OyBpIDwgdGhwX3NpemU7IGkrKykgewotCQlpZiAod3JpdGVfdGhwW2ldKQorCWZvciAoaSA9IDA7 IGkgPCBjaGlsZC0+dGhwX3NpemU7IGkrKykgeworCQlpZiAoY2hpbGQtPndyaXRlX3RocFtpXSkK IAkJCXRzdF9icmsoVENPTkYsICJIdWdlIHplcm8gcGFnZSBpcyBwcmUtcG9sbHV0ZWQiKTsKIAl9 CgotCS8qIGxlYXZlIGEgaG9sZSBiZXR3ZWVuIHJlYWQgYW5kIHdyaXRlIFRIUCB0byBwcmV2ZW50 IG1lcmdlICovCi0JcmVhZF90aHAgPSBhbGxvY196ZXJvX3BhZ2Uod3JpdGVfdGhwICsgMiAqIHRo cF9zaXplKTsKLQl3cml0ZV9wdHIgPSAoaW50ICopKHdyaXRlX3RocCArIHRocF9zaXplIC0gc2l6 ZW9mKGludCkpOwotCXJlYWRfcHRyID0gKGludCAqKShyZWFkX3RocCArIHRocF9zaXplIC0gc2l6 ZW9mKGludCkpOwotCXdyaXRlZmQgPSBTQUZFX09QRU4oIi9wcm9jL3NlbGYvbWVtIiwgT19SRFdS KTsKLQlyZWFkZmQgPSBTQUZFX09QRU4oIi9wcm9jL3NlbGYvbWVtIiwgT19SRFdSKTsKKwljaGls ZC0+cmVhZF90aHAgPSBhbGxvY196ZXJvX3BhZ2UoY2hpbGQtPndyaXRlX3RocCArIDIgKiBjaGls ZC0+dGhwX3NpemUsCisJCWNoaWxkLT50aHBfc2l6ZSk7CisJLyogd3JpdGVfcHRyIHBvaW50cyB0 byBsYXN0IGludCBpbiB3cml0ZV90aHAgcGFnZSAqLworCWNoaWxkLT53cml0ZV9wdHIgPSAoaW50 ICopKGNoaWxkLT53cml0ZV90aHAgKyBjaGlsZC0+dGhwX3NpemUgLSBzaXplb2YoaW50KSk7CisJ LyogcmVhZF9wdHIgcG9pbnRzIHRvIGxhc3QgaW50IGluIHJlYWRfdGhwIHBhZ2UgKi8KKwljaGls ZC0+cmVhZF9wdHIgPSAoaW50ICopKGNoaWxkLT5yZWFkX3RocCArIGNoaWxkLT50aHBfc2l6ZSAt IHNpemVvZihpbnQpKTsKCi0JZnpzeW5jX3BhaXIuZXhlY19sb29wcyA9IDEwMDAwMDsKLQl0c3Rf ZnpzeW5jX3BhaXJfaW5pdCgmZnpzeW5jX3BhaXIpOworCS8qIEluIHB0cmFjZSBtb2RlLCBwYXJl bnQgb3BlbnMgL3Byb2MvPHBpZD4vbWVtLCBub3QgY2hpbGQgKi8KKwlpZiAoZWZmZWN0aXZlX21v ZGUgPT0gUFJPQ19NRU1fQUxXQVlTKSB7CisJCWNoaWxkLT53cml0ZWZkID0gU0FGRV9PUEVOKCIv cHJvYy9zZWxmL21lbSIsIE9fUkRXUik7CisJCWNoaWxkLT5yZWFkZmQgPSBTQUZFX09QRU4oIi9w cm9jL3NlbGYvbWVtIiwgT19SRFdSKTsKKwkJY2hpbGQtPmZ6c3luY19wYWlyLmV4ZWNfbG9vcHMg PSAxMDAwMDA7CisJCXRzdF9menN5bmNfcGFpcl9pbml0KCZjaGlsZC0+ZnpzeW5jX3BhaXIpOwor CX0gZWxzZSB7CisJCWNoaWxkLT53cml0ZWZkID0gLTE7CisJCWNoaWxkLT5yZWFkZmQgPSAtMTsK Kwl9CiB9Cgotc3RhdGljIHZvaWQgKnRocmVhZF9ydW4odm9pZCAqYXJnKQorLyogUHJlc2VydmUg dGhlIG9yaWdpbmFsIGZ1enp5LXN5bmMgcmFjZTogdGhpcyBpcyB0aGUgYWN0dWFsIENWRSB0cmln Z2VyIG1lY2hhbmlzbS4gKi8KK3N0YXRpYyB2b2lkICp0aHJlYWRfcnVuX2Fsd2F5cyh2b2lkICph cmcpCiB7CiAJaW50IGM7CgotCXdoaWxlICh0c3RfZnpzeW5jX3J1bl9iKCZmenN5bmNfcGFpcikp IHsKLQkJdHN0X2Z6c3luY19zdGFydF9yYWNlX2IoJmZ6c3luY19wYWlyKTsKLQkJbWFkdmlzZSh3 cml0ZV90aHAsIHRocF9zaXplLCBNQURWX0RPTlRORUVEKTsKLQkJbWVtY3B5KCZjLCB3cml0ZV9w dHIsIHNpemVvZihjKSk7Ci0JCVNBRkVfTFNFRUsocmVhZGZkLCAob2ZmX3Qpd3JpdGVfcHRyLCBT RUVLX1NFVCk7Ci0JCVNBRkVfUkVBRCgxLCByZWFkZmQsICZjLCBzaXplb2YoaW50KSk7Ci0JCXRz dF9menN5bmNfZW5kX3JhY2VfYigmZnpzeW5jX3BhaXIpOworCXdoaWxlICh0c3RfZnpzeW5jX3J1 bl9iKCZjaGlsZC0+ZnpzeW5jX3BhaXIpKSB7CisJCXRzdF9menN5bmNfc3RhcnRfcmFjZV9iKCZj aGlsZC0+ZnpzeW5jX3BhaXIpOworCQltYWR2aXNlKGNoaWxkLT53cml0ZV90aHAsIGNoaWxkLT50 aHBfc2l6ZSwgTUFEVl9ET05UTkVFRCk7CisJCW1lbWNweSgmYywgY2hpbGQtPndyaXRlX3B0ciwg c2l6ZW9mKGMpKTsKKwkJU0FGRV9MU0VFSyhjaGlsZC0+cmVhZGZkLCAob2ZmX3QpY2hpbGQtPndy aXRlX3B0ciwgU0VFS19TRVQpOworCQlTQUZFX1JFQUQoMSwgY2hpbGQtPnJlYWRmZCwgJmMsIHNp emVvZihpbnQpKTsKKwkJdHN0X2Z6c3luY19lbmRfcmFjZV9iKCZjaGlsZC0+ZnpzeW5jX3BhaXIp OwogCQkvKiBXYWl0IGZvciBkaXJ0eSBwYWdlIGhhbmRsaW5nIGJlZm9yZSBuZXh0IG1hZHZpc2Uo KSAqLwogCQl1c2xlZXAoMTApOwogCX0KQEAgLTExNSwyNCArMTg2LDI0IEBAIHN0YXRpYyB2b2lk ICp0aHJlYWRfcnVuKHZvaWQgKmFyZykKIAlyZXR1cm4gYXJnOwogfQoKLXN0YXRpYyB2b2lkIHJ1 bih2b2lkKQorc3RhdGljIHZvaWQgcnVuX3Byb2NfbWVtX2Fsd2F5c19yYWNlKHZvaWQpCiB7CiAJ aW50IGMgPSAweGRlYWRiZWVmOwoKLQl0c3RfZnpzeW5jX3BhaXJfcmVzZXQoJmZ6c3luY19wYWly LCB0aHJlYWRfcnVuKTsKKwl0c3RfZnpzeW5jX3BhaXJfcmVzZXQoJmNoaWxkLT5menN5bmNfcGFp ciwgdGhyZWFkX3J1bl9hbHdheXMpOwoKLQl3aGlsZSAodHN0X2Z6c3luY19ydW5fYSgmZnpzeW5j X3BhaXIpKSB7CisJd2hpbGUgKHRzdF9menN5bmNfcnVuX2EoJmNoaWxkLT5menN5bmNfcGFpcikp IHsKIAkJLyogV3JpdGUgaW50byB0aGUgbWFpbiBodWdlIHBhZ2UgKi8KLQkJdHN0X2Z6c3luY19z dGFydF9yYWNlX2EoJmZ6c3luY19wYWlyKTsKLQkJU0FGRV9MU0VFSyh3cml0ZWZkLCAob2ZmX3Qp d3JpdGVfcHRyLCBTRUVLX1NFVCk7Ci0JCW1hZHZpc2Uod3JpdGVfdGhwLCB0aHBfc2l6ZSwgTUFE Vl9ET05UTkVFRCk7Ci0JCVNBRkVfV1JJVEUoU0FGRV9XUklURV9BTEwsIHdyaXRlZmQsICZjLCBz aXplb2YoaW50KSk7Ci0JCXRzdF9menN5bmNfZW5kX3JhY2VfYSgmZnpzeW5jX3BhaXIpOworCQl0 c3RfZnpzeW5jX3N0YXJ0X3JhY2VfYSgmY2hpbGQtPmZ6c3luY19wYWlyKTsKKwkJU0FGRV9MU0VF SyhjaGlsZC0+d3JpdGVmZCwgKG9mZl90KWNoaWxkLT53cml0ZV9wdHIsIFNFRUtfU0VUKTsKKwkJ bWFkdmlzZShjaGlsZC0+d3JpdGVfdGhwLCBjaGlsZC0+dGhwX3NpemUsIE1BRFZfRE9OVE5FRUQp OworCQlTQUZFX1dSSVRFKFNBRkVfV1JJVEVfQUxMLCBjaGlsZC0+d3JpdGVmZCwgJmMsIHNpemVv ZihpbnQpKTsKKwkJdHN0X2Z6c3luY19lbmRfcmFjZV9hKCZjaGlsZC0+ZnpzeW5jX3BhaXIpOwoK IAkJLyogQ2hlY2sgdGhlIG90aGVyIGh1Z2UgemVybyBwYWdlIGZvciBwb2xsdXRpb24gKi8KLQkJ bWFkdmlzZShyZWFkX3RocCwgdGhwX3NpemUsIE1BRFZfRE9OVE5FRUQpOworCQltYWR2aXNlKGNo aWxkLT5yZWFkX3RocCwgY2hpbGQtPnRocF9zaXplLCBNQURWX0RPTlRORUVEKTsKCi0JCWlmICgq cmVhZF9wdHIgIT0gMCkgeworCQlpZiAoKmNoaWxkLT5yZWFkX3B0ciAhPSAwKSB7CiAJCQl0c3Rf cmVzKFRGQUlMLCAiSHVnZSB6ZXJvIHBhZ2Ugd2FzIHBvbGx1dGVkIik7CiAJCQlyZXR1cm47CiAJ CX0KQEAgLTE0MSwyMCArMjEyLDIxOCBAQCBzdGF0aWMgdm9pZCBydW4odm9pZCkKIAl0c3RfcmVz KFRQQVNTLCAiSHVnZSB6ZXJvIHBhZ2UgaXMgc3RpbGwgY2xlYW4iKTsKIH0KCitzdGF0aWMgdm9p ZCB0cmFjZWVfbWFpbih2b2lkKQoreworCS8qIGNoaWxkIHN0cnVjdCBpcyBhbHJlYWR5IG1hcHBl ZCBieSBwYXJlbnQgYmVmb3JlIGZvcmsgKi8KKwljaGlsZC0+d3JpdGVmZCA9IC0xOworCWNoaWxk LT5yZWFkZmQgPSAtMTsKKworCWNoaWxkX3NldHVwKCk7CisKKwlUU1RfQ0hFQ0tQT0lOVF9XQUtF KDApOworCisJLyogUGFyZW50IHdpbGwgUFRSQUNFX0NPTlQgdXMgd2hlbiByZWFkeSAtIG5vIGNo ZWNrcG9pbnQgbmVlZGVkICovCisKKwkvKgorCSAqIFB0cmFjZSBtb2RlOiB3cml0ZXMgYW5kIG1h ZHZpc2UgYXJlIHNlcmlhbGl6ZWQgKG5vIHJhY2UpLgorCSAqIFRlc3RzIGtlcm5lbCBoYW5kbGlu ZyBvZiB3cml0ZXMgdG8gc3RvcHBlZCBwcm9jZXNzZXMsIG5vdCB0aGUgQ1ZFIHJhY2UuCisJICog VGhlIHN0b3AvY29udGludWUgY3ljbGUgaXMgcmVxdWlyZWQgYmVjYXVzZSAvcHJvYy9waWQvbWVt IHdyaXRlcyBuZWVkCisJICogUFRSQUNFX01PREVfQVRUQUNIICh0cmFjZWUgbXVzdCBiZSBpbiBz dG9wcGVkIHN0YXRlKS4KKwkgKgorCSAqIFJ1biBpbmRlZmluaXRlbHkgLSBwYXJlbnQgY29udHJv bHMgdGVybWluYXRpb24gdmlhIFBUUkFDRV9ERVRBQ0guCisJICovCisJZm9yICg7OykgeworCQlt YWR2aXNlKGNoaWxkLT53cml0ZV90aHAsIGNoaWxkLT50aHBfc2l6ZSwgTUFEVl9ET05UTkVFRCk7 CisJCW1hZHZpc2UoY2hpbGQtPnJlYWRfdGhwLCBjaGlsZC0+dGhwX3NpemUsIE1BRFZfRE9OVE5F RUQpOworCisJCWlmICgqY2hpbGQtPnJlYWRfcHRyICE9IDApIHsKKwkJCXRzdF9yZXMoVEZBSUws ICJIdWdlIHplcm8gcGFnZSB3YXMgcG9sbHV0ZWQiKTsKKwkJCWNoaWxkX2NsZWFudXAoKTsKKwkJ CWV4aXQoMSk7CisJCX0KKworCQkvKiBTdG9wIHNlbGYgdG8gbGV0IHBhcmVudCB3cml0ZSBuZXh0 IGl0ZXJhdGlvbiAqLworCQlyYWlzZShTSUdTVE9QKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNl dHVwX3B0cmFjZV90cmFjZWUodm9pZCkKK3sKKwlpbnQgc3RhdHVzOworCisJLyogVGVzdC1sb29w IHN0YXRlIGlzIGluaXRpYWxpemVkIG9uY2UgYW5kIHJlYWQtb25seSBhZnRlcndhcmRzLiAqLwor CWNoaWxkID0gU0FGRV9NTUFQKE5VTEwsIHNpemVvZigqY2hpbGQpLCBQUk9UX1JFQUQgfCBQUk9U X1dSSVRFLAorCQlNQVBfU0hBUkVEIHwgTUFQX0FOT05ZTU9VUywgLTEsIDApOworCW1lbXNldChj aGlsZCwgMCwgc2l6ZW9mKCpjaGlsZCkpOworCWNoaWxkLT53cml0ZWZkID0gLTE7CisJY2hpbGQt PnJlYWRmZCA9IC0xOworCisJdHJhY2VlX3BpZCA9IFNBRkVfRk9SSygpOworCWlmICghdHJhY2Vl X3BpZCkgeworCQl0cmFjZWVfbWFpbigpOworCQlleGl0KDApOworCX0KKworCVRTVF9DSEVDS1BP SU5UX1dBSVQoMCk7CisKKwlTQUZFX1BUUkFDRShQVFJBQ0VfU0VJWkUsIHRyYWNlZV9waWQsIE5V TEwsIE5VTEwpOworCisJLyoKKwkgKiBUcmFjZWUgd2lsbCBydW4gZmlyc3QgaXRlcmF0aW9uICht YWR2aXNlICsgY2hlY2spIGFuZCBzZWxmLXN0b3Agd2l0aCByYWlzZShTSUdTVE9QKS4KKwkgKiBX YWl0IGZvciB0aGF0IFNJR1NUT1AgLSB0aGlzIGlzIGl0ZXJhdGlvbiAwLgorCSAqLworCVNBRkVf V0FJVFBJRCh0cmFjZWVfcGlkLCAmc3RhdHVzLCAwKTsKKworCWlmICghV0lGU1RPUFBFRChzdGF0 dXMpIHx8IFdTVE9QU0lHKHN0YXR1cykgIT0gU0lHU1RPUCkKKwkJdHN0X2JyayhUQlJPSywgIlRy YWNlZSBkaWQgbm90IHNlbGYtc3RvcCB3aXRoIFNJR1NUT1A6ICVzIiwKKwkJCXRzdF9zdHJzdGF0 dXMoc3RhdHVzKSk7Cit9CisKK3N0YXRpYyB2b2lkIHNldHVwKHZvaWQpCit7CisJaW50IHRlc3Rf dmFsID0gMDsKKwlpbnQgZXhwbGljaXRfbW9kZSA9IDA7CisKKwlzdGF0aWMgc3RydWN0IHRzdF9r Y21kbGluZV92YXIgcGFyYW1zW10gPSB7CisJCVRTVF9LQ01ETElORV9JTklUKCJwcm9jX21lbS5m b3JjZV9vdmVycmlkZSIpLAorCX07CisKKwl0c3Rfa2NtZGxpbmVfcGFyc2UocGFyYW1zLCBBUlJB WV9TSVpFKHBhcmFtcykpOworCisJaWYgKHBhcmFtc1swXS5mb3VuZCkgeworCQlleHBsaWNpdF9t b2RlID0gMTsKKworCQlpZiAoIXN0cmNtcChwYXJhbXNbMF0udmFsdWUsICJhbHdheXMiKSkgewor CQkJdXNlcl9tb2RlID0gUFJPQ19NRU1fQUxXQVlTOworCQl9IGVsc2UgaWYgKCFzdHJjbXAocGFy YW1zWzBdLnZhbHVlLCAicHRyYWNlIikpIHsKKwkJCXVzZXJfbW9kZSA9IFBST0NfTUVNX1BUUkFD RTsKKwkJfSBlbHNlIHsKKwkJCXVzZXJfbW9kZSA9IFBST0NfTUVNX05FVkVSOworCQkJdHN0X2Jy ayhUQ09ORiwKKwkJCQkiV3JpdGVzIHRvIC9wcm9jL3NlbGYvbWVtIGRpc2FibGVkIG9uIGtlcm5l bCBjbWRsaW5lIik7CisJCX0KKwl9CisKKwllZmZlY3RpdmVfbW9kZSA9IHVzZXJfbW9kZTsKKwor CS8qIFByb2JlIGRpcmVjdCAvcHJvYy9zZWxmL21lbSB3cml0ZXMgb25seSBpZiBub3QgZXhwbGlj aXRseSBzZXQgdG8gcHRyYWNlICovCisJaWYgKCFleHBsaWNpdF9tb2RlIHx8IHVzZXJfbW9kZSA9 PSBQUk9DX01FTV9BTFdBWVMpIHsKKwkJY2hpbGQgPSBTQUZFX01NQVAoTlVMTCwgc2l6ZW9mKCpj aGlsZCksIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCisJCQlNQVBfU0hBUkVEIHwgTUFQX0FOT05Z TU9VUywgLTEsIDApOworCQltZW1zZXQoY2hpbGQsIDAsIHNpemVvZigqY2hpbGQpKTsKKwkJY2hp bGQtPndyaXRlZmQgPSAtMTsKKwkJY2hpbGQtPnJlYWRmZCA9IC0xOworCisJCWNoaWxkX3NldHVw KCk7CisKKwkJVEVTVChsc2VlayhjaGlsZC0+d3JpdGVmZCwgKG9mZl90KWNoaWxkLT53cml0ZV9w dHIsIFNFRUtfU0VUKSk7CisJCWlmIChUU1RfUkVUID09IC0xKQorCQkJdHN0X2JyayhUQlJPSyB8 IFRURVJSTk8sICJsc2VlayBvbiAvcHJvYy9zZWxmL21lbSBmYWlsZWQiKTsKKworCQlURVNUKHdy aXRlKGNoaWxkLT53cml0ZWZkLCAmdGVzdF92YWwsIHNpemVvZih0ZXN0X3ZhbCkpKTsKKworCQlp ZiAoVFNUX1JFVCA9PSBzaXplb2YodGVzdF92YWwpKSB7CisJCQkvKiBEaXJlY3Qgd3JpdGUgc3Vj Y2VlZGVkICovCisJCQllZmZlY3RpdmVfbW9kZSA9IFBST0NfTUVNX0FMV0FZUzsKKwkJCXJldHVy bjsKKwkJfQorCisJCWlmIChUU1RfUkVUID09IC0xICYmIFRTVF9FUlIgIT0gRUlPKQorCQkJdHN0 X2JyayhUQlJPSyB8IFRURVJSTk8sICJ0ZXN0IHdyaXRlIHRvIC9wcm9jL3NlbGYvbWVtIGZhaWxl ZCIpOworCisJCS8qIC9wcm9jL3NlbGYvbWVtIHdyaXRlIGZhaWxlZCwgY2xlYW51cCBhbmQgdHJ5 IHB0cmFjZSBtb2RlICovCisJCWNoaWxkX2NsZWFudXAoKTsKKwkJU0FGRV9NVU5NQVAoY2hpbGQs IHNpemVvZigqY2hpbGQpKTsKKwkJY2hpbGQgPSBOVUxMOworCisJCWlmIChleHBsaWNpdF9tb2Rl ICYmIHVzZXJfbW9kZSA9PSBQUk9DX01FTV9BTFdBWVMpCisJCQl0c3RfYnJrKFRDT05GLAorCQkJ CSJXcml0ZXMgdG8gL3Byb2Mvc2VsZi9tZW0gZGlzYWJsZWQgZGVzcGl0ZSBhbHdheXMgbW9kZSIp OworCisJCWVmZmVjdGl2ZV9tb2RlID0gUFJPQ19NRU1fUFRSQUNFOworCX0KKworCS8qIFB0cmFj ZSBtb2RlOiB0cmFjZWUgd2lsbCBiZSBzcGF3bmVkIGluIHJ1bigpIGZvciBlYWNoIGl0ZXJhdGlv biAqLworCWlmIChlZmZlY3RpdmVfbW9kZSA9PSBQUk9DX01FTV9QVFJBQ0UpCisJCXJldHVybjsK KworCXRzdF9icmsoVENPTkYsICJXcml0ZXMgdG8gL3Byb2Mvc2VsZi9tZW0gZGlzYWJsZWQgaW4g a2VybmVsIHBvbGljeSIpOworfQorCitzdGF0aWMgdm9pZCBydW5fcHJvY19tZW1fcHRyYWNlX3Jh Y2Uodm9pZCkKK3sKKwljaGFyIHBhdGhbNjRdOworCWludCB3cml0ZWZkOworCWludCBjID0gMHhk ZWFkYmVlZjsKKwlpbnQgaTsKKwlpbnQgc3RhdHVzOworCisJc25wcmludGYocGF0aCwgc2l6ZW9m KHBhdGgpLCAiL3Byb2MvJWQvbWVtIiwgdHJhY2VlX3BpZCk7CisJd3JpdGVmZCA9IFNBRkVfT1BF TihwYXRoLCBPX1JEV1IpOworCisJLyoKKwkgKiBUcmFjZWUgaXMgYWxyZWFkeSBpbiBTSUdTVE9Q IHN0YXRlIGZyb20gc2V0dXBfcHRyYWNlX3RyYWNlZSgpLgorCSAqIFdyaXRlLXN0b3AtY29udGlu dWUgY3ljbGU6IHRyYWNlZSBpcyBzdG9wcGVkLCByZWFkeSBmb3Igd3JpdGVzLgorCSAqLworCWZv ciAoaSA9IDA7IGkgPCBQVFJBQ0VfVEVTVF9JVEVSQVRJT05TOyBpKyspIHsKKwkJLyogV3JpdGUg dG8gL3Byb2MvcGlkL21lbSB3aGlsZSB0cmFjZWUgaXMgc3RvcHBlZCAqLworCQlTQUZFX0xTRUVL KHdyaXRlZmQsIChvZmZfdCljaGlsZC0+d3JpdGVfcHRyLCBTRUVLX1NFVCk7CisJCVNBRkVfV1JJ VEUoU0FGRV9XUklURV9BTEwsIHdyaXRlZmQsICZjLCBzaXplb2YoaW50KSk7CisKKwkJLyogTGV0 IHRyYWNlZSBydW4gb25lIGl0ZXJhdGlvbiAobWFkdmlzZSArIGNoZWNrICsgcmFpc2UoU0lHU1RP UCkpICovCisJCVNBRkVfUFRSQUNFKFBUUkFDRV9DT05ULCB0cmFjZWVfcGlkLCBOVUxMLCBOVUxM KTsKKworCQkvKiBXYWl0IGZvciB0cmFjZWUgdG8gc3RvcCBpdHNlbGYgd2l0aCByYWlzZShTSUdT VE9QKSAqLworCQlTQUZFX1dBSVRQSUQodHJhY2VlX3BpZCwgJnN0YXR1cywgMCk7CisKKwkJaWYg KCFXSUZTVE9QUEVEKHN0YXR1cykgfHwgV1NUT1BTSUcoc3RhdHVzKSAhPSBTSUdTVE9QKQorCQkJ dHN0X2JyayhUQlJPSywgIlRyYWNlZSBkaWQgbm90IHN0b3Agd2l0aCBTSUdTVE9QOiAlcyIsCisJ CQkJdHN0X3N0cnN0YXR1cyhzdGF0dXMpKTsKKwl9CisKKwlTQUZFX0NMT1NFKHdyaXRlZmQpOwor CisJLyogVGVzdCBwYXNzZWQgLSBodWdlIHplcm8gcGFnZSByZW1haW5lZCBjbGVhbiB0aHJvdWdo IFBUUkFDRV9URVNUX0lURVJBVElPTlMgaXRlcmF0aW9ucyAqLworCXRzdF9yZXMoVFBBU1MsICJI dWdlIHplcm8gcGFnZSBpcyBzdGlsbCBjbGVhbiIpOworCisJLyogRGV0YWNoIGFuZCB0ZXJtaW5h dGUgdHJhY2VlICovCisJU0FGRV9QVFJBQ0UoUFRSQUNFX0RFVEFDSCwgdHJhY2VlX3BpZCwgTlVM TCwgTlVMTCk7CisJU0FGRV9XQUlUUElEKHRyYWNlZV9waWQsICZzdGF0dXMsIFdOT0hBTkcpOwor CVNBRkVfS0lMTCh0cmFjZWVfcGlkLCBTSUdLSUxMKTsKKwlTQUZFX1dBSVRQSUQodHJhY2VlX3Bp ZCwgJnN0YXR1cywgMCk7CisJdHJhY2VlX3BpZCA9IDA7Cit9CisKK3N0YXRpYyB2b2lkIHJ1bih2 b2lkKQoreworCWlmIChlZmZlY3RpdmVfbW9kZSA9PSBQUk9DX01FTV9BTFdBWVMpIHsKKwkJcnVu X3Byb2NfbWVtX2Fsd2F5c19yYWNlKCk7CisJfSBlbHNlIGlmIChlZmZlY3RpdmVfbW9kZSA9PSBQ Uk9DX01FTV9QVFJBQ0UpIHsKKwkJLyogU3Bhd24gZnJlc2ggdHJhY2VlIGZvciBlYWNoIGl0ZXJh dGlvbiAqLworCQlzZXR1cF9wdHJhY2VfdHJhY2VlKCk7CisJCXJ1bl9wcm9jX21lbV9wdHJhY2Vf cmFjZSgpOworCX0gZWxzZSB7CisJCXRzdF9icmsoVEJST0ssICJVbmtub3duIHByb2MgbWVtIG1v ZGUiKTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIGNsZWFudXAodm9pZCkKIHsKLQl0c3RfZnpzeW5j X3BhaXJfY2xlYW51cCgmZnpzeW5jX3BhaXIpOworCWlmICh0cmFjZWVfcGlkID4gMCkgeworCQkv KgorCQkgKiBUcmFjZWUgaXMgbm9ybWFsbHkgcmVhcGVkIGluIHJ1bl9wcm9jX21lbV9wdHJhY2Vf cmFjZSgpLgorCQkgKiBPbmx5IGtpbGwgaWYgc3RpbGwgYWxpdmUgKGUuZy4sIHRlc3QgYWJvcnRl ZCB3aXRoIFRCUk9LKS4KKwkJICovCisJCWlmIChraWxsKHRyYWNlZV9waWQsIDApID09IDApIHsK KwkJCVNBRkVfS0lMTCh0cmFjZWVfcGlkLCBTSUdLSUxMKTsKKwkJCXRzdF9yZWFwX2NoaWxkcmVu KCk7CisJCX0KKwl9CgotCWlmIChyZWFkZmQgPj0gMCkKLQkJU0FGRV9DTE9TRShyZWFkZmQpOwor CWNoaWxkX2NsZWFudXAoKTsKCi0JaWYgKHdyaXRlZmQgPj0gMCkKLQkJU0FGRV9DTE9TRSh3cml0 ZWZkKTsKLQotCWlmIChyZWFkX3RocCkKLQkJU0FGRV9NVU5NQVAocmVhZF90aHAsIHRocF9zaXpl KTsKLQlpZiAod3JpdGVfdGhwKQotCQlTQUZFX01VTk1BUCh3cml0ZV90aHAsIHRocF9zaXplKTsK KwlpZiAoY2hpbGQpCisJCVNBRkVfTVVOTUFQKGNoaWxkLCBzaXplb2YoKmNoaWxkKSk7CiB9Cgog c3RhdGljIHN0cnVjdCB0c3RfdGVzdCB0ZXN0ID0gewpAQCAtMTYyLDYgKzQzMSw4IEBAIHN0YXRp YyBzdHJ1Y3QgdHN0X3Rlc3QgdGVzdCA9IHsKIAkuc2V0dXAgPSBzZXR1cCwKIAkuY2xlYW51cCA9 IGNsZWFudXAsCiAJLnJ1bnRpbWUgPSAxNTAsCisJLmZvcmtzX2NoaWxkID0gMSwKKwkubmVlZHNf Y2hlY2twb2ludHMgPSAxLAogCS50YWdzID0gKGNvbnN0IHN0cnVjdCB0c3RfdGFnW10pIHsKIAkJ eyJsaW51eC1naXQiLCAiYThmOTczNjY0NTJlIn0sCiAJCXsibGludXgtZ2l0IiwgIjgzMTBkNDhi MTI1ZCJ9LAotLQoyLjU0LjAKCgotLSAKTWFpbGluZyBsaXN0IGluZm86IGh0dHBzOi8vbGlzdHMu bGludXguaXQvbGlzdGluZm8vbHRwCg==