From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 49841C32771 for ; Sat, 24 Sep 2022 11:45:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:CC:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=V9mceEsQ5enozeRS7JUF597KQS0JpEngG8HUAmaBsUg=; b=ATdr+dECJI0SYg Fv8igmtagzAbWnrKxtqyhk6/flNTaYD+EbHUIt6vWzQ/hxb+K7w4ksuJgUKgtL3z1GGpetRD754Hv TX/bFTZfPJNaEiHnn4nCuGsrnlHJom3EPyuYdfwwdcB898AALXvcwj8VXzFcR/hf4AzTV3GsesHrI k+HM2yQ4WYl8mmhA1+5E8UUoZS3dRp+no/JMfJMhfk3pbZ+KNvim859So8LNAjZPNGTVlWmm+79wc Qh2QF9bfT5kEiqvNAH++d7WJqD1veeQgEBvfGPa1KcRsOv8JcOgRHqfZLJlssswlyzXiCueaQaxpP LCwKKC0r8rR+h3zZshmg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oc3aU-0070lI-Ru; Sat, 24 Sep 2022 11:44:51 +0000 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oc3aR-0070kK-49 for linux-arm-kernel@lists.infradead.org; Sat, 24 Sep 2022 11:44:49 +0000 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 28OBiORQ003689; Sat, 24 Sep 2022 11:44:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=qcppdkim1; bh=3N1VaLpXUDkXxS9kSOW/35TYj4yY7CtvK57VDScUYOE=; b=Q2wGJMTuP0svRfVDj4EGI97TmocbPgs4sj7oGS39R42NC6s9QqMwtCocsUkOgjLqqcM4 9B5gGx3NP25kwFGgh6FqlE6Z/42hkUJ+rrPzTteqY6QPARIidav3kOEOQFw4ZmGLmcGD E1tk7W4YneIRUqGcXo9HPGCMEzA+4bgtKekxSzxOf06nad1dZShViq9OzOjkuqxBg3qb KANZuVO+KiBN9uv21ag69jUjY9swJznhyL7TUADxlZ1QmN9pdBPnmLrCVYF9s8C6cWmL dY0Cwn+rzA1x8j3DagQDQjKNMHIVWGdb/H5oYshuH/zULv3XKZoaDXRUvMvXKcmjKnkJ Bw== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3jsu6frje4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 24 Sep 2022 11:44:36 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 28OBiZHD015936 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 24 Sep 2022 11:44:35 GMT Received: from [10.110.112.23] (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Sat, 24 Sep 2022 04:44:30 -0700 Message-ID: <9cba3c3d-c489-d99b-0bf1-81113fd6186f@quicinc.com> Date: Sat, 24 Sep 2022 17:14:26 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: Re: [PATCH V13 2/7] soc: qcom: dcc: Add driver support for Data Capture and Compare unit(DCC) Content-Language: en-US To: Krzysztof Kozlowski , Andy Gross , Bjorn Andersson , Rob Herring , Alex Elder CC: , , , , "Sai Prakash Ranjan" , Sibi Sankar , Rajendra Nayak , References: <44ca04316e8b67f1662d304d8535236d82710bda.1663642052.git.quic_schowdhu@quicinc.com> From: Souradeep Chowdhury In-Reply-To: X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: D1ViNZuXCqshm-L8q8dUw0YAmA6WaEZk X-Proofpoint-ORIG-GUID: D1ViNZuXCqshm-L8q8dUw0YAmA6WaEZk X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1 definitions=2022-09-24_04,2022-09-22_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 clxscore=1015 bulkscore=0 suspectscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2209240088 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220924_044447_198902_9946B663 X-CRM114-Status: GOOD ( 36.53 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Ck9uIDkvMjQvMjAyMiAxOjEyIEFNLCBLcnp5c3p0b2YgS296bG93c2tpIHdyb3RlOgo+IE9uIDIw LzA5LzIwMjIgMDU6NTYsIFNvdXJhZGVlcCBDaG93ZGh1cnkgd3JvdGU6Cj4+IFRoZSBEQ0MgaXMg YSBETUEgRW5naW5lIGRlc2lnbmVkIHRvIGNhcHR1cmUgYW5kIHN0b3JlIGRhdGEKPj4gZHVyaW5n IHN5c3RlbSBjcmFzaCBvciBzb2Z0d2FyZSB0cmlnZ2Vycy4gVGhlIERDQyBvcGVyYXRlcwo+PiBi YXNlZCBvbiB1c2VyIGlucHV0cyB2aWEgdGhlIGRlYnVnZnMgaW50ZXJmYWNlLiBUaGUgdXNlciBn aXZlcwo+PiBhZGRyZXNzZXMgYXMgaW5wdXRzIGFuZCB0aGVzZSBhZGRyZXNzZXMgYXJlIHN0b3Jl ZCBpbiB0aGUKPiAoLi4uKQo+Cj4+ICsKPj4gKyNkZWZpbmUgRENDX1JEX01PRF9XUl9BRERSICAg ICAgICAgICAgICAweEMxMDVFCj4+ICsKPj4gKy8qRENDIGRlYnVnZnMgZGlyZWN0b3J5Ki8KPj4g K3N0YXRpYyBzdHJ1Y3QgZGVudHJ5CSpkY2NfZGJnOwo+PiArCj4+ICtlbnVtIGRjY19kZXNjcmlw dG9yX3R5cGUgewo+PiArCURDQ19SRUFEX1RZUEUsCj4+ICsJRENDX0xPT1BfVFlQRSwKPj4gKwlE Q0NfUkVBRF9XUklURV9UWVBFLAo+PiArCURDQ19XUklURV9UWVBFCj4+ICt9Owo+PiArCj4+ICtz dHJ1Y3QgZGNjX2NvbmZpZ19lbnRyeSB7Cj4+ICsJdTMyCQkJCWJhc2U7Cj4+ICsJdTMyCQkJCW9m ZnNldDsKPj4gKwl1MzIJCQkJbGVuOwo+PiArCXUzMgkJCQlsb29wX2NudDsKPj4gKwl1MzIJCQkJ d3JpdGVfdmFsOwo+PiArCXUzMgkJCQltYXNrOwo+PiArCWJvb2wJCQkJYXBiX2J1czsKPj4gKwll bnVtIGRjY19kZXNjcmlwdG9yX3R5cGUJZGVzY190eXBlOwo+PiArCXN0cnVjdCBsaXN0X2hlYWQJ CWxpc3Q7Cj4+ICt9Owo+PiArCj4+ICsvKioKPj4gKyAqIHN0cnVjdCBkY2NfZHJ2ZGF0YSAtIGNv bmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gcmVsYXRlZCB0byBhIGRjYyBkZXZpY2UKPj4gKyAqIEBi YXNlOgkgICAgICBCYXNlIEFkZHJlc3Mgb2YgdGhlIGRjYyBkZXZpY2UKPj4gKyAqIEBkZXY6CSAg ICAgIFRoZSBkZXZpY2UgYXR0YWNoZWQgdG8gdGhlIGRyaXZlciBkYXRhCj4+ICsgKiBAbXV0ZXg6 CSAgICAgIExvY2sgdG8gcHJvdGVjdCBhY2Nlc3MgYW5kIG1hbmlwdWxhdGlvbiBvZiBkY2NfZHJ2 ZGF0YQo+PiArICogQHJhbV9iYXNlOiAgICAgICAgIEJhc2UgYWRkcmVzcyBmb3IgdGhlIFNSQU0g ZGVkaWNhdGVkIGZvciB0aGUgZGNjIGRldmljZQo+PiArICogQHJhbV9zaXplOiAgICAgICAgIFRv dGFsIHNpemUgb2YgdGhlIFNSQU0gZGVkaWNhdGVkIGZvciB0aGUgZGNjIGRldmljZQo+PiArICog QHJhbV9vZmZzZXQ6ICAgICAgIE9mZnNldCB0byB0aGUgU1JBTSBkZWRpY2F0ZWQgZm9yIGRjYyBk ZXZpY2UKPj4gKyAqIEBtZW1fbWFwX3ZlcjogICAgICBNZW1vcnkgbWFwIHZlcnNpb24gb2YgREND IGhhcmR3YXJlCj4+ICsgKiBAcmFtX2NmZzogICAgICAgICAgVXNlZCBmb3IgYWRkcmVzcyBsaW1p dCBjYWxjdWxhdGlvbiBmb3IgZGNjCj4+ICsgKiBAcmFtX3N0YXJ0OiAgICAgICAgU3RhcnRpbmcg YWRkcmVzcyBvZiBEQ0MgU1JBTQo+PiArICogQHNyYW1fZGV2OgkgICAgICBNaWNlbGxhbmVvdXMg ZGV2aWNlIGVxdWl2YWxlbnQgb2YgZGNjIFNSQU0KPj4gKyAqIEBjZmdfaGVhZDoJICAgICAgUG9p bnRzIHRvIHRoZSBoZWFkIG9mIHRoZSBsaW5rZWQgbGlzdCBvZiBhZGRyZXNzZXMKPj4gKyAqIEBk YmdfZGlyOiAgICAgICAgICBUaGUgZGNjIGRlYnVnZnMgZGlyZWN0b3J5IHVuZGVyIHdoaWNoIGFs bCB0aGUgZGVidWdmcyBmaWxlcyBhcmUgcGxhY2VkCj4+ICsgKiBAbnJfbGlua19saXN0OiAgICAg VG90YWwgbnVtYmVyIG9mIGxpbmtlZGxpc3RzIHN1cHBvcnRlZCBieSB0aGUgRENDIGNvbmZpZ3Vy YXRpb24KPj4gKyAqIEBsb29wb2ZmOiAgICAgICAgICBMb29wIG9mZnNldCBiaXRzIHJhbmdlIGZv ciB0aGUgYWRkcmVzc2VzCj4gQWxsIHRoZXNlIGVudHJlcyBoYXZlIG1lc3NlZCB1cCBzcGFjaW5n LgpBY2sKPgo+PiArICogQGVuYWJsZTogICAgICAgICAgIFRoaXMgY29udGFpbnMgYW4gYXJyYXkg b2YgbGlua2VkbGlzdCBlbmFibGUgZmxhZ3MKPiBObywgdGhpcyBpcyBub3QgYW4gYXJyYXkgb2Yg bGlua2VkIGxpc3RzLi4uIEl0J3MgYSBwb2ludGVyIHRvIGJvb2wuIFRoaXMKPiBpcyBub3Qgd2F5 IHRvIHN0b3JlIGxpbmtlZCBsaXN0cy4KQWNrCj4KPgo+PiArCj4+ICtzdGF0aWMgaW50IGRjY19w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+PiArewo+PiArCXUzMiB2YWw7Cj4+ ICsJaW50IHJldCA9IDAsIGksIHNpemU7Cj4+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYt PmRldjsKPj4gKwlzdHJ1Y3QgZGNjX2RydmRhdGEgKmRjYzsKPj4gKwlzdHJ1Y3QgcmVzb3VyY2Ug KnJlczsKPj4gKwo+PiArCWRjYyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZGNjKSwgR0ZQ X0tFUk5FTCk7Cj4+ICsJaWYgKCFkY2MpCj4+ICsJCXJldHVybiAtRU5PTUVNOwo+PiArCj4+ICsJ ZGNjLT5kZXYgPSAmcGRldi0+ZGV2Owo+PiArCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRj Yyk7Cj4+ICsKPj4gKwlkY2MtPmJhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2Uo cGRldiwgMCk7Cj4+ICsJaWYgKElTX0VSUihkY2MtPmJhc2UpKQo+PiArCQlyZXR1cm4gUFRSX0VS UihkY2MtPmJhc2UpOwo+PiArCj4+ICsJZGNjLT5yYW1fYmFzZSA9IGRldm1fcGxhdGZvcm1fZ2V0 X2FuZF9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDEsICZyZXMpOwo+PiArCWlmIChJU19FUlIoZGNj LT5yYW1fYmFzZSkpCj4+ICsJCXJldHVybiBQVFJfRVJSKGRjYy0+cmFtX2Jhc2UpOwo+PiArCj4+ ICsJZGNjLT5yYW1fc2l6ZSA9IHJlc291cmNlX3NpemUocmVzKTsKPj4gKwo+PiArCWRjYy0+cmFt X29mZnNldCA9IChzaXplX3Qpb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOwo+ PiArCj4+ICsJdmFsID0gZGNjX3JlYWRsKGRjYywgRENDX0hXX0lORk8pOwo+PiArCj4+ICsJaWYg KEZJRUxEX0dFVChEQ0NfVkVSX0lORk9fTUFTSywgdmFsKSkgewo+PiArCQlkY2MtPm1lbV9tYXBf dmVyID0gMzsKPj4gKwkJZGNjLT5ucl9saW5rX2xpc3QgPSBkY2NfcmVhZGwoZGNjLCBEQ0NfTExf TlVNX0lORk8pOwo+PiArCQlpZiAoZGNjLT5ucl9saW5rX2xpc3QgPT0gMCkKPj4gKwkJCXJldHVy bgktRUlOVkFMOwo+PiArCX0gZWxzZSBpZiAoKHZhbCAmIERDQ19WRVJfTUFTSzIpID09IERDQ19W RVJfTUFTSzIpIHsKPj4gKwkJZGNjLT5tZW1fbWFwX3ZlciA9IDI7Cj4+ICsJCWRjYy0+bnJfbGlu a19saXN0ID0gZGNjX3JlYWRsKGRjYywgRENDX0xMX05VTV9JTkZPKTsKPj4gKwkJaWYgKGRjYy0+ bnJfbGlua19saXN0ID09IDApCj4+ICsJCQlyZXR1cm4JLUVJTlZBTDsKPj4gKwl9IGVsc2Ugewo+ PiArCQlkY2MtPm1lbV9tYXBfdmVyID0gMTsKPj4gKwkJZGNjLT5ucl9saW5rX2xpc3QgPSBEQ0Nf TUFYX0xJTktfTElTVDsKPj4gKwl9Cj4+ICsKPj4gKwkvKiBFaXRoZXIgc2V0IHRoZSBmaXhlZCBs b29wIG9mZnNldCBvciBjYWxjdWxhdGUgaXQKPiBTdGFydCB3aXRoIC8qCj4gKHNlZSBjb2Rpbmcg c3R5bGUpCkFjawo+Cj4+ICsJICogZnJvbSByYW1fc2l6ZS5NYXggY29uc2VjdXRpdmUgYWRkcmVz c2VzIHRoZQo+PiArCSAqIGRjYyBjYW4gbG9vcCBpcyBlcXVpdmFsZW50IHRvIHRoZSByYW0gc2l6 ZQo+PiArCSAqLwo+PiArCWlmICh2YWwgJiBEQ0NfTE9PUF9PRkZTRVRfTUFTSykKPj4gKwkJZGNj LT5sb29wb2ZmID0gRENDX0ZJWF9MT09QX09GRlNFVDsKPj4gKwllbHNlCj4+ICsJCWRjYy0+bG9v cG9mZiA9IGdldF9iaXRtYXNrX29yZGVyKChkY2MtPnJhbV9zaXplICsKPj4gKwkJCQlkY2MtPnJh bV9vZmZzZXQpIC8gNCAtIDEpOwo+PiArCj4+ICsJbXV0ZXhfaW5pdCgmZGNjLT5tdXRleCk7Cj4+ ICsJLyogQWxsb2NhdGUgc3BhY2UgZm9yIGFsbCBlbnRyaWVzIGF0IG9uY2UgKi8KPj4gKwlzaXpl ID0gc2l6ZW9mKCpkY2MtPmVuYWJsZSkgKyBzaXplb2YoKmRjYy0+Y2ZnX2hlYWQpOwo+IFRoaXMg aXMgcXVpdGUgY29uZnVzaW5nIHdheSBvZiBoYW5kbGluZyBsaXN0cyAtIHNvbWUgcGFydHMgb2Yg ZHJ2ZGF0YQo+IGFyZSBsaXN0LCBzb21lIGFyZSBub3QuCgpXZSBhcmUgdXNpbmcgdGhyZWUgdGhp bmdzIGZvciBsaXN0cyBoZXJlLsKgIEEgY2ZnX2hlYWQgd2hpY2ggcG9pbnRzIHRvIAp0aGUgaGVh ZCBvZiB0aGUKCmluZGl2aWR1YWwgbGlua2VkbGlzdCBvZiBhZGRyZXNzZXMuIGEgbnJfbGlua2Vk X2xpc3QgdG8gc3RvcmUgdGhlIHRvdGFsIApudW1iZXIgb2YgbGlzdHMKCnN1cHBvcnRlZCBieSBk Y2MgYW5kIGFuIGFycmF5IG9mIGJvb2xlYW4gdG8gc3RvcmUgdGhlIGVuYWJsZWQgc3RhdHVzIG9m IAplYWNoIGluZGl2aWR1YWwgbGlzdHMKCj4+ICsKPj4gKwlkY2MtPmVuYWJsZSA9IGRldm1fa2Nh bGxvYyhkZXYsIGRjYy0+bnJfbGlua19saXN0LCBzaXplLCBHRlBfS0VSTkVMKTsKPj4gKwlpZiAo IWRjYy0+ZW5hYmxlKQo+PiArCQlyZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArCWRjYy0+Y2ZnX2hl YWQgPSAoc3RydWN0IGxpc3RfaGVhZCAqKShkY2MtPmVuYWJsZSArIGRjYy0+bnJfbGlua19saXN0 KTsKPiBUaGF0J3MgdW51c3VhbCB3YXkgdG8gaXRlcmF0ZSBvdmVyIGxpc3QuLi4KSGVyZSB3ZSBh cmUgaW5zdGFudGlhdGluZyB0aGUgaGVhZCBvZiBlYWNoIGluZGl2aWR1YWwgbGlua2VkIGxpc3Rz IGluIAp0aGUgYXJyYXkgdGhhdCBzdG9yZXMgdGhlIGxpc3QuCj4KPj4gKwo+PiArCWZvciAoaSA9 IDA7IGkgPCBkY2MtPm5yX2xpbmtfbGlzdDsgaSsrKQo+PiArCQlJTklUX0xJU1RfSEVBRCgmZGNj LT5jZmdfaGVhZFtpXSk7Cj4+ICsKPj4gKwlyZXQgPSBkY2Nfc3JhbV9kZXZfaW5pdChkY2MpOwo+ PiArCWlmIChyZXQpIHsKPj4gKwkJZGV2X2VycihkY2MtPmRldiwgIkRDQzogc3JhbSBub2RlIG5v dCByZWdpc3RlcmVkLlxuIik7Cj4+ICsJCXJldHVybiByZXQ7Cj4+ICsJfQo+PiArCj4+ICsJcmV0 ID0gZGNjX2NyZWF0ZV9kZWJ1Z19kaXIoZGNjKTsKPj4gKwlpZiAocmV0KSB7Cj4+ICsJCWRldl9l cnIoZGNjLT5kZXYsICJEQ0M6IGRlYnVnZnMgZmlsZXMgbm90IGNyZWF0ZWQuXG4iKTsKPiBkZWJ1 Z2ZzIGZhaWx1cmVzIGFyZSBub3QgcmVhc29ucyB0byBmYWlsIHByb2JlLiBBbHNvIG5vIG5lZWQg dG8gcHJpbnQKPiBlcnJvcnMuCgpUaGUgdG90YWwgZnVuY3Rpb25hbGl0eSBvZiB0aGlzIGRyaXZl ciBpcyBkZXBlbmRlbnQgb24gdGhlIGRlYnVnZnMgCmZpbGVzLiBUaGF0IGlzIHdoeQoKdGhlIHBy b2JlIGlmIGZhaWxlZCB3aXRoIGVycm9yIG1lc3NhZ2UgaWYgaXQgaXMgbm90IGNyZWF0ZWQuIFRo aXMgaXMgCmRvbmUgYXMgcGVyIEFsZXgncwoKY29tbWVudCBvbiB2ZXJzaW9uIDggb2YgdGhlIHBh dGNoLgoKPj4gKwkJZGNjX3NyYW1fZGV2X2V4aXQoZGNjKTsKPj4gKwkJcmV0dXJuIHJldDsKPj4g Kwl9Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBkY2NfcmVt b3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4+ICt7Cj4+ICsJc3RydWN0IGRjY19k cnZkYXRhICpkcnZkYXRhID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7Cj4+ICsKPj4gKwlk Y2NfZGVsZXRlX2RlYnVnX2RpcihkcnZkYXRhKTsKPj4gKwo+PiArCWRjY19zcmFtX2Rldl9leGl0 KGRydmRhdGEpOwo+PiArCj4gTm8gbmVlZCBmb3IgYmxhbmsgbGluZXMgYmV0d2VlbiBlYWNoIGNh bGxzLgpBY2sKPgo+PiArCWRjY19jb25maWdfcmVzZXQoZHJ2ZGF0YSk7Cj4+ICsKPj4gKwlyZXR1 cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZGNj X21hdGNoX3RhYmxlW10gPSB7Cj4+ICsJeyAuY29tcGF0aWJsZSA9ICJxY29tLHNtODE1MC1kY2Mi LCAuZGF0YSA9ICh2b2lkICopMHg1MDAwIH0sCj4+ICsJeyAuY29tcGF0aWJsZSA9ICJxY29tLHNj NzI4MC1kY2MiLCAuZGF0YSA9ICh2b2lkICopMHgxMjAwMCB9LAo+PiArCXsgLmNvbXBhdGlibGUg PSAicWNvbSxzYzcxODAtZGNjIiwgLmRhdGEgPSAodm9pZCAqKTB4NjAwMCB9LAo+PiArCXsgLmNv bXBhdGlibGUgPSAicWNvbSxzZG04NDUtZGNjIiwgLmRhdGEgPSAodm9pZCAqKTB4NjAwMCB9LAo+ PiArCXsgfQo+PiArfTsKPj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGRjY19tYXRjaF90YWJs ZSk7Cj4+ICsKPj4gK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGRjY19kcml2ZXIgPSB7 Cj4+ICsJLnByb2JlID0gZGNjX3Byb2JlLAo+PiArCS5yZW1vdmUJPSBkY2NfcmVtb3ZlLAo+PiAr CS5kcml2ZXIJPSB7Cj4+ICsJCS5uYW1lID0gInFjb20tZGNjIiwKPj4gKwkJLm9mX21hdGNoX3Rh YmxlCT0gZGNjX21hdGNoX3RhYmxlLAo+PiArCX0sCj4+ICt9Owo+PiArCj4+ICttb2R1bGVfcGxh dGZvcm1fZHJpdmVyKGRjY19kcml2ZXIpOwo+PiArCj4+ICtNT0RVTEVfTElDRU5TRSgiR1BMIik7 Cj4+ICtNT0RVTEVfREVTQ1JJUFRJT04oIlF1YWxjb21tIFRlY2hub2xvZ2llcyBJbmMuIERDQyBk cml2ZXIiKTsKPj4gKwo+IEJlc3QgcmVnYXJkcywKPiBLcnp5c3p0b2YKPgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=