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 BC041C433F5 for ; Sat, 18 Dec 2021 12:47:55 +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:MIME-Version:In-Reply-To:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=h2gb0WeoIcd3JyGaOGd3dKXLVZZHOYrabtbaBJPRhfE=; b=sNzB2U4KwDuQNFX/8IKzAOX9Pf Kloyz3w1Oeq2BAFJEcVmGxlrQQFZW+aVR7sNDUe9Bi0TrxW35mGA4k8fkv6XBFGfBFWVrvnos+qyV H6efE9EhJcn+ut65cJeRpdMESlU30QO+1HRly+jmzZg7PzNxReWxq6G9ByxqEUG0byDx9ayBzg2tP cjbsoICByMbzi1YrNiN2q/b23OYpZP9+eSw1CnaVxG6PkEEFfZ4KJfhm1T3pWssspbAX4x2ZFWDH1 dwLQYKLwxPVndxoF9U2Q+FG4GAPFNm38XJ68g0Y9wt89RnSJMtEFfRSDLK3JfcV9lAZ/2CoAaMCIu JmdhxkxQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1myZ5V-00DoIX-CN; Sat, 18 Dec 2021 12:45:21 +0000 Received: from mx0a-0064b401.pphosted.com ([205.220.166.238]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1myZ5Q-00DoHR-Gh for linux-arm-kernel@lists.infradead.org; Sat, 18 Dec 2021 12:45:19 +0000 Received: from pps.filterd (m0250809.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1BICj5D4020917; Sat, 18 Dec 2021 04:45:05 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=subject : to : cc : references : from : message-id : date : in-reply-to : content-type : content-transfer-encoding : mime-version; s=PPS06212021; bh=+wjYu7MiA9ygp9tvkYZY06mTBNpqOfHypJr73xXUSGo=; b=Iv4AeZrV4doyNUsdbMbjTT6MumVXV2xoymFE6DMPG7dGwsYSVF27RrmEvelQb/lOT7tM oNW4pnswvcLibUakgJ3Ix22sNjSC9pu/qU6dvTL08WDuMWVAtUJtZmRnlzcbTpDPCH37 TvHvcXNSsYXlV4/OId7UjMZyEPu3ZStKJ/fbhXZMpDCCbZ//pBF9eneCqhzjPBABHFzG H/AMYpLI4cvPG/B/Q2BS2LpFfmkwaMTbHROv/YdMEtUm3D0VXomJ4J7Bxfh2Al1WnWYe 04AZNPK1N4+Z3iIAiEJBN1+sKWFFMlHMqx+IMv0AQ4yqoMlYmyXO0pJlc2JnVGO8bnAn 4w== Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2100.outbound.protection.outlook.com [104.47.70.100]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 3d0xjxghjg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 18 Dec 2021 04:45:04 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GIb0F4SHhUhaRvjibDZYnF0mS9oYDYuxe1NRq+N695b9nKPcc0ShOUs/wByXzuAJteM92ZkOyrzKIWyMAkK1z0SwbuVCPyi61LSajpQv8LOT1smalOdWdsJ93Ukthv0IIvEzXDFidKYMnD6hcR9u4wxVCed9qkYKxxMQub+a6PnJqIm65dfr1tYaTKP8+Ami6rC9HMzCrWyZty3BwXuYCstcWliD81oJp943YytIBnp8s8I3OW8Fd+BKQMX4jcJgtCwlWMZNZgabY2omoBXQtBGCBIBEi6LI8q6a6SVIgeGzoJOTox8b4o8gBI46PWnQzg8qkIwJvL7JmUyujEK7PQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+wjYu7MiA9ygp9tvkYZY06mTBNpqOfHypJr73xXUSGo=; b=HuYqSLnjulw85xZLb8PhfyD77DuV6+dxW03VUNgltNQowkWRenxtMI1n2/8ejSQsK+k7VcjE7l+2vwh7GNbx7ZVz82CkYJ/IrHEqJqUOeiZlXOQN+gVrPl197yNuSeodU6gHJEww+vZ0IwSs5ICPtKGPLzHY0g9+2zdHazDrzika911CBQ92DKPOw1/rgf207A488lO5AGRGpJJh2yGOM8cvzWos366XH40xIE2Gua56BvjXuhWQJsYs0w1jsSv/WqxTJVSb9k1FMZ6CMONFal0e/rS9Ze1b+KP7yN3tdm9/vxprJ9bfLGN5cuBe8MrOZusWn3mShGPHe1LB3o3TMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from PH7PR11MB5819.namprd11.prod.outlook.com (2603:10b6:510:13b::9) by PH0PR11MB5176.namprd11.prod.outlook.com (2603:10b6:510:3f::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4801.15; Sat, 18 Dec 2021 12:45:02 +0000 Received: from PH7PR11MB5819.namprd11.prod.outlook.com ([fe80::3508:ff4c:362d:579c]) by PH7PR11MB5819.namprd11.prod.outlook.com ([fe80::3508:ff4c:362d:579c%5]) with mapi id 15.20.4669.016; Sat, 18 Dec 2021 12:45:02 +0000 Subject: Re: [xilinx-xlnx:xlnx_rebase_v5.10 65/1981] drivers/spi/spi-zynqmp-gqspi.c:968:3-9: preceding lock on line 959 (fwd) To: Julia Lawall Cc: Michal Simek , Amit Kumar Mahapatra , linux-arm-kernel@lists.infradead.org, kbuild-all@lists.01.org References: From: wqyoung Message-ID: Date: Sat, 18 Dec 2021 20:44:45 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 In-Reply-To: Content-Language: en-US X-ClientProxiedBy: HK2PR02CA0202.apcprd02.prod.outlook.com (2603:1096:201:20::14) To PH7PR11MB5819.namprd11.prod.outlook.com (2603:10b6:510:13b::9) MIME-Version: 1.0 Received: from [192.168.0.110] (123.123.41.115) by HK2PR02CA0202.apcprd02.prod.outlook.com (2603:1096:201:20::14) with Microsoft SMTP Server (version=TLS1_2, cipher=) via Frontend Transport; Sat, 18 Dec 2021 12:44:59 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f27e0d12-deb5-419d-afeb-08d9c2243525 X-MS-TrafficTypeDiagnostic: PH0PR11MB5176:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3276; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lZot/vg+p5CcKGlutuL64CYlnvWKkjhkdwqqQDSq33tMiyy+4prrE0xwWwYth64Ys30NoOMTp+2mAkGBvdWrI2e9ebHBmxeA04sS3ERvHGyePjG3raeV1xUcoEzMV9ILNCU3VKciSGQncsDyJkCfnooIRr0uGLv1F3dUEFWSY3QqvRzmH9IJlc8Jli+8YPeXMDHgof5Y94o6HaHw6qcNvjfekQeWHZqGfsR205a8IfiuiLNn8QdOfmeCJc4VjGtLXQ1eprESIU2tL+MuA0wc3byJobAmvU2jdkCzFtdOz25ZDm06DYJcU+lt8v+vORCIdTozYk78tVa6ILu3c+iPWzcCfveQuM5J21KMaweh0nhE0gFaFQb8m5wtLQPLb81doPO5OxQv4lCFL6gCokJQg6oGQ7A/5SDlGho1WRQ/hLEl8q2/sEF8DcvnppnC8haiKj6p3vzHGlzyUAkz9u+hY90dFv0a2xHtH4jBqilJAWQaA2LOShF95GtxGra8JtRHmObfsDLedpCX4oXKOJrBamU9OPevL66UZyceLoaK4W9v4pDDbUPj6oBejgaTBaG2yX6mygimelwSzOAh9p1nDIMDMupjCn6ULbVgStZ0mEE9GjCUQWoIRL0xZr5QszTZSUMP83GHDiWMryoO6QeLfhvlKl1dMrjG3zNH00NRIgX1yO6kYfHlzCPvLkBe6tMtsZsJqBy0zehdEj6W0mNuxUtWSTEhIv2T7tpScebxBIdTt9sBeMiFlqcierlfXh5sNJewXkCp9JWiwvA1//DFdqNTf50jZs1h8qCxbz9bQYx2e/wXQ8RXa4LhORi6kzg/915Q/7ztl3ingUXd7bo/hKiuOIXFHogL9IQe+Ygcz6k6/WyD6MTBTiTFf0Pjh4hqqWMFizHCpL2peygMnx3OXA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR11MB5819.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(5660300002)(31696002)(38100700002)(38350700002)(508600001)(36756003)(6486002)(83380400001)(52116002)(31686004)(54906003)(956004)(2616005)(16576012)(8936002)(2906002)(8676002)(26005)(30864003)(66556008)(6666004)(966005)(86362001)(4001150100001)(66476007)(4326008)(316002)(66946007)(6916009)(186003)(43062005)(9126006)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SUI4QzJwbG5OL0dhOExwOHNsUGQ3YmZZa0pMQmxxSitISWxkNUp0YWp5elNn?= =?utf-8?B?dXFGY0FSQkppeVRjZWo2SWpFZGtTYm5leFJtZ1dsNzVOYXppRVFra3p0aUZo?= =?utf-8?B?KzJ5Mk40VitVYzQveVlTT3JKVEVYejZ3L1N5T2RKRkZheFFObm5VT095U3hu?= =?utf-8?B?M3NYVVJtTTQ0aFFGNEswNkQwYmVqNU5rUnRJbUVRVHNVS3hia2tyU00vblV2?= =?utf-8?B?NVlNcy9zaytkTjFmeDQ3RG5FOFNLaHlycndEYjZTd3d6UXc4MGZSMW9PQ3hZ?= =?utf-8?B?WGlOaTVNejFIQ0VwdzUwb1hYZEliTzcrZkVnSmFJUjRkL29abVNoSWNtT2Js?= =?utf-8?B?TitGS1k4TDU2Lzg1SEdjZGlkK25OcmhETEFlazc3Yy9qR3pQckVZcTI3M25U?= =?utf-8?B?UW5pNng3SGJ6Uzg5UjNpQjR4VGV5dUd3MnNrZ1RFTUJKR0FmelR2WlFRR0pu?= =?utf-8?B?bHE2UU45b1hWemV3ZmJpQ3Jxa2tlREJFMnR3ZGJKdXZnT1VaN0RYQmlpVDNO?= =?utf-8?B?ek8yQ29FRjdQaEcyNGtnRFhnT3E4cFVrTEdVOUlWdEk3dnJwY2xaSU5VRFpM?= =?utf-8?B?S2xIdFdUbUc2QzczOHVTdzd2THl4eUE4YjFKdWp6aWZpaFZlZTdtZno4dmtC?= =?utf-8?B?YXpKSTI1ZWRrd3h3ckdrZ1FVbDZjd1AxblFONVcrdmFISWk5RUk5NVZwS1pi?= =?utf-8?B?aUMxZjRZS3UwYnlqSXg4Y2JwMytFc1hQTTZjeXV6RmZjM3hvUldqUlhJMkI1?= =?utf-8?B?SHM2T2l1cUdIeE9zRUc1eEt0czM5N2NkVmZRdG9GR04yWVFXeFcvNWpmekFL?= =?utf-8?B?NjBPYUF3cmNLdW1lVmRYS2tpdXdBTDYxc3pYNC9OOHdjYVdkaE9NMW44blRO?= =?utf-8?B?STRWUEQrdzBMVWFLS0QzNEE5RTgwNEFBbmtrcHdCc2dqOWg1cW1iZlFzSGtI?= =?utf-8?B?eXdONHlPU1Z0akVNUmJVRTFrUUwxekxhbzF4ZTZrZEtiN0dJTXFZTDR1YnBN?= =?utf-8?B?VzgyOEp5ZnRkQ011UDhwbHF0M0ZpeHVXMkFJcnR0UDdNZ2lxcW5FTVYybkJt?= =?utf-8?B?VHBjOC9QcTRDcW80djF2YkpUb3psZjB0bDQvZ1lCbm8zekVrQUdqbUtRdVF5?= =?utf-8?B?WitFdHF6NVVHTEl6amtqSHdkWFdCYWZPaHZhS21vdzhWaWZYMVBCRlI0T1Jy?= =?utf-8?B?Z0hVeEtWQUQzeWJVRVovVnhYMkhUcEE5TThpYXVISVpOaFFVblZuRjQxbnUy?= =?utf-8?B?L0NURWhuUHdza3FieTVidlNmQlVRZXV1dmlsMFNOL1FaMUlnSWREeXUxR1Ix?= =?utf-8?B?VzJRb00vdUYzQk51Z0N2VnQ0TkJ6cDdrSk5HV1ZrejgrV1BuL1FhN3pzeGtD?= =?utf-8?B?aWhMR1NocTBiTnNJMU11alRjN0tFc1VjM0JnTE50ekp3M1F3TkhZYXp1ME9O?= =?utf-8?B?QVAxaURXUlBZUkVTSFd1QThFSTdwQm1paXRoQk5uVmk1dzJFaWxUMVdEQ3U4?= =?utf-8?B?V05Sby85bHk4bUF0UzBMZTI1TlByWHZWNkp4K2tqTnYxS1pVand2cHFaWXY0?= =?utf-8?B?emlmTVB5SE40S050QnhGbURCRjAxZ1lMTUgyOTNLOUJwWUw1S0k3bSsvLzFC?= =?utf-8?B?emtKek1GbTcxWWRWR3RlZTdQV2cySjFDSGVXVmRwdHJLQytDWnlDMUJScDdJ?= =?utf-8?B?ZjhiRGozTDdhREVGb1UzUGtyTllhYkxvZUx1K0k4YUc5UDRNYlJ0dmFaZFJk?= =?utf-8?B?WHQxaFF4LzFBQmhLeVU5Z0tNOHU5SVJKUDBsUGZ3VlZOei9mOGdpNy9LdE5X?= =?utf-8?B?N2J3a1dsZ0tWT3UyamFGcHQvNFd1Y3BocUp5NDVJakZTZ1p3bEIrcS84RnVG?= =?utf-8?B?UWIwYlZxKzlMQ09ZVERsTk96dDhBdUMrR0lpNzhubDdaL1BCSUJXbE1tWkM4?= =?utf-8?B?RzVwUTNCMXRYL0x3TnFmdjBiM1A4Nm5ETG5MeENNZzAxM1VyUVJ1SW1NMjIw?= =?utf-8?B?am1MZytYaGlqMUE3Rk9QazgxYk0yOTBOa3RuTVhUdktNaHMyYTF6Z2psbFNY?= =?utf-8?B?ZmM4ODhxMmxFUmgzdytyMVZwQTVETGZJL1F1K2RxUTVRQTY1R0FNNjNMdkhN?= =?utf-8?B?aG1vM3RCdEJPZ0xHL3JYRm9VNHF0cTArajQ2Z29Pbnl5ZjNFeWlOaWZlclgx?= =?utf-8?B?R0xKanI0N0tGRUthWGhHbFpleldvVmdZZ3oyS0ZiaWxYbmxUcUZrNG5PY1BN?= =?utf-8?B?OVp3Qyt2MVhEUllaTEQwcnkzVnJ3PT0=?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: f27e0d12-deb5-419d-afeb-08d9c2243525 X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB5819.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2021 12:45:01.9812 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2zU5fKjx/ottcQ17W9sSMvk9XB6kMEEf+bSjPqBNhjGG9WapPciJYqqAsUyKpSRqNOvpPkMcg6UBHph8spyYtmkgayRku5gjcdC+n/oGfXA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5176 X-Proofpoint-GUID: KiiifBFNXR9LNY7T0kv2OcVOJ6vAWAMW X-Proofpoint-ORIG-GUID: KiiifBFNXR9LNY7T0kv2OcVOJ6vAWAMW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.11.62.513 definitions=2021-12-18_04,2021-12-16_01,2021-12-02_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 clxscore=1011 impostorscore=0 bulkscore=0 mlxlogscore=744 phishscore=0 suspectscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112180076 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211218_044516_924982_77D5AF56 X-CRM114-Status: GOOD ( 20.31 ) 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 SGkgSnVsaWEsCgpUaGFuayB5b3UgZm9yIHJlcG9ydGluZyB0aGlzLgpUaGlzIGhhcyBiZWVuIGZp eGVkIGJ5IHRoZSBjb21taXQgZDE1NTI1YWRiNGI1ICgic3BpOiBzcGktenlucW1wLWdxc3BpOiAK Zml4IHVzZS1hZnRlci1mcmVlIGluIHp5bnFtcF9xc3BpX2V4ZWNfb3AiKSB3aGljaCBpcyBpbiAK bGludXgteGxueC9tYXN0ZXIgYnJhbmNoLiBJIGd1ZXNzIGl0IGlzIHdhaXRpbmcgdG8gYmUgbWVy Z2VkIGludG8gNS4xMCAKYnJhbmNoLgoKVGhhbmtzLApRdWFueWFuZwoKT24gMjAyMS8xMi8xOCDk uIvljYg1OjU4LCBKdWxpYSBMYXdhbGwgd3JvdGU6Cj4gSGVsbG8sCj4gCj4gTGluZSA5Njggc2Vl bXMgdG8gbmVlZCBhbiB1bmxvY2suCj4gCj4ganVsaWEKPiAKPiAtLS0tLS0tLS0tIEZvcndhcmRl ZCBtZXNzYWdlIC0tLS0tLS0tLS0KPiBEYXRlOiBTYXQsIDE4IERlYyAyMDIxIDAzOjAxOjM4ICsw ODAwCj4gRnJvbToga2VybmVsIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+Cj4gVG86IGtidWls ZEBsaXN0cy4wMS5vcmcKPiBDYzogbGtwQGludGVsLmNvbSwgSnVsaWEgTGF3YWxsIDxqdWxpYS5s YXdhbGxAbGlwNi5mcj4KPiBTdWJqZWN0OiBbeGlsaW54LXhsbng6eGxueF9yZWJhc2VfdjUuMTAg NjUvMTk4MV0KPiAgICAgIGRyaXZlcnMvc3BpL3NwaS16eW5xbXAtZ3FzcGkuYzo5Njg6My05OiBw cmVjZWRpbmcgbG9jayBvbiBsaW5lIDk1OQo+IAo+IENDOiBrYnVpbGQtYWxsQGxpc3RzLjAxLm9y Zwo+IENDOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBUTzogUXVhbnlh bmcgV2FuZyA8cXVhbnlhbmcud2FuZ0B3aW5kcml2ZXIuY29tPgo+IENDOiBNaWNoYWwgU2ltZWsg PG1vbnN0ckBtb25zdHIuZXU+Cj4gQ0M6IEFtaXQgS3VtYXIgTWFoYXBhdHJhIDxhbWl0Lmt1bWFy LW1haGFwYXRyYUB4aWxpbnguY29tPgo+IAo+IHRyZWU6ICAgaHR0cHM6Ly9naXRodWIuY29tL1hp bGlueC9saW51eC14bG54IHhsbnhfcmViYXNlX3Y1LjEwCj4gaGVhZDogICA4N2VjOWEyZDk4YTdh N2RmYzk4YjU3MzQ4YTBlYzMxMGZkMTcwZTRiCj4gY29tbWl0OiBiYzc1M2RiOWM3NGQ5NDliMzNi YmI4YjA4YTliNjM0MGI1N2E0NDRmIFs2NS8xOTgxXSBzcGk6IHNwaS16eW5xbXAtZ3FzcGk6IGFk ZCBtdXRleCBsb2NraW5nIGZvciBleGVjX29wCj4gOjo6Ojo6IGJyYW5jaCBkYXRlOiAzIGRheXMg YWdvCj4gOjo6Ojo6IGNvbW1pdCBkYXRlOiA5IG1vbnRocyBhZ28KPiBjb25maWc6IHg4Nl82NC1y YW5kY29uZmlnLWMwMDItMjAyMTEyMTYgKGh0dHBzOi8vZG93bmxvYWQuMDEub3JnLzBkYXktY2kv YXJjaGl2ZS8yMDIxMTIxOC8yMDIxMTIxODAyMzguTlVsWGZpTkwtbGtwQGludGVsLmNvbS9jb25m aWcpCj4gY29tcGlsZXI6IGdjYy05IChEZWJpYW4gOS4zLjAtMjIpIDkuMy4wCj4gCj4gSWYgeW91 IGZpeCB0aGUgaXNzdWUsIGtpbmRseSBhZGQgZm9sbG93aW5nIHRhZyBhcyBhcHByb3ByaWF0ZQo+ IFJlcG9ydGVkLWJ5OiBrZXJuZWwgdGVzdCByb2JvdCA8bGtwQGludGVsLmNvbT4KPiBSZXBvcnRl ZC1ieTogSnVsaWEgTGF3YWxsIDxqdWxpYS5sYXdhbGxAbGlwNi5mcj4KPiAKPiAKPiBjb2NjaSB3 YXJuaW5nczogKG5ldyBvbmVzIHByZWZpeGVkIGJ5ID4+KQo+Pj4gZHJpdmVycy9zcGkvc3BpLXp5 bnFtcC1ncXNwaS5jOjk2ODozLTk6IHByZWNlZGluZyBsb2NrIG9uIGxpbmUgOTU5Cj4gCj4gdmlt ICs5NjggZHJpdmVycy9zcGkvc3BpLXp5bnFtcC1ncXNwaS5jCj4gCj4gOWUzYTAwMDM2MmFlY2Ig TmFnYSBTdXJlc2hrdW1hciBSZWxsaSAyMDE4LTAzLTI2ICAgOTM0Cj4gMWMyNjM3MmU1YWE5ZTUg QW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAgOTM1ICAvKioKPiAxYzI2MzcyZTVh YTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgICA5MzYgICAqIHp5bnFtcF9x c3BpX2V4ZWNfb3AoKSAtIEluaXRpYXRlcyB0aGUgUVNQSSB0cmFuc2Zlcgo+IDFjMjYzNzJlNWFh OWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDkzNyAgICogQG1lbTogVGhl IFNQSSBtZW1vcnkKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAt MDktMjQgICA5MzggICAqIEBvcDogVGhlIG1lbW9yeSBvcGVyYXRpb24gdG8gZXhlY3V0ZQo+IDFj MjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDkzOSAgICoK PiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgICA5NDAg ICAqIEV4ZWN1dGVzIGEgbWVtb3J5IG9wZXJhdGlvbi4KPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1 bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgICA5NDEgICAqCj4gMWMyNjM3MmU1YWE5ZTUgQW1p dCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAgOTQyICAgKiBUaGlzIGZ1bmN0aW9uIGZp cnN0IHNlbGVjdHMgdGhlIGNoaXAgYW5kIHN0YXJ0cyB0aGUgbWVtb3J5IG9wZXJhdGlvbi4KPiAx YzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgICA5NDMgICAq Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAgOTQ0 ICAgKiBSZXR1cm46IDAgaW4gY2FzZSBvZiBzdWNjZXNzLCBhIG5lZ2F0aXZlIGVycm9yIGNvZGUg b3RoZXJ3aXNlLgo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0w OS0yNCAgIDk0NSAgICovCj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAy MDIwLTA5LTI0ICAgOTQ2ICBzdGF0aWMgaW50IHp5bnFtcF9xc3BpX2V4ZWNfb3Aoc3RydWN0IHNw aV9tZW0gKm1lbSwKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAt MDktMjQgICA5NDcgIAkJCSAgICAgICBjb25zdCBzdHJ1Y3Qgc3BpX21lbV9vcCAqb3ApCj4gMWMy NjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAgOTQ4ICB7Cj4g MWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAgOTQ5ICAJ c3RydWN0IHp5bnFtcF9xc3BpICp4cXNwaSA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhCj4g MWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAgOTUwICAJ CQkJICAgIChtZW0tPnNwaS0+bWFzdGVyKTsKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1h aGFwYXRyYSAgIDIwMjAtMDktMjQgICA5NTEgIAlpbnQgZXJyID0gMCwgaTsKPiAxYzI2MzcyZTVh YTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgICA5NTIgIAl1OCAqdG1wYnVm Owo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDk1 MyAgCXUzMiBnZW5maWZvZW50cnkgPSAwOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFo YXBhdHJhICAgMjAyMC0wOS0yNCAgIDk1NAo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFo YXBhdHJhICAgMjAyMC0wOS0yNCAgIDk1NSAgCWRldl9kYmcoeHFzcGktPmRldiwgImNtZDolI3gg bW9kZTolZC4lZC4lZC4lZFxuIiwKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRy YSAgIDIwMjAtMDktMjQgICA5NTYgIAkJb3AtPmNtZC5vcGNvZGUsIG9wLT5jbWQuYnVzd2lkdGgs IG9wLT5hZGRyLmJ1c3dpZHRoLAo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJh ICAgMjAyMC0wOS0yNCAgIDk1NyAgCQlvcC0+ZHVtbXkuYnVzd2lkdGgsIG9wLT5kYXRhLmJ1c3dp ZHRoKTsKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQg ICA5NTgKPiBiYzc1M2RiOWM3NGQ5NCBRdWFueWFuZyBXYW5nICAgICAgICAgIDIwMjAtMTEtMTkg IEA5NTkgIAltdXRleF9sb2NrKCZ4cXNwaS0+b3BfbG9jayk7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1p dCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAgOTYwICAJenlucW1wX3FzcGlfY29uZmln X29wKHhxc3BpLCBtZW0tPnNwaSk7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0 cmEgICAyMDIwLTA5LTI0ICAgOTYxICAJenlucW1wX3FzcGlfY2hpcHNlbGVjdChtZW0tPnNwaSwg ZmFsc2UpOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0y NCAgIDk2MiAgCWdlbmZpZm9lbnRyeSB8PSB4cXNwaS0+Z2VuZmlmb2NzOwo+IDFjMjYzNzJlNWFh OWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDk2MyAgCWdlbmZpZm9lbnRy eSB8PSB4cXNwaS0+Z2VuZmlmb2J1czsKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFw YXRyYSAgIDIwMjAtMDktMjQgICA5NjQKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFw YXRyYSAgIDIwMjAtMDktMjQgICA5NjUgIAlpZiAob3AtPmNtZC5vcGNvZGUpIHsKPiAxYzI2Mzcy ZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgICA5NjYgIAkJdG1wYnVm ID0ga3phbGxvYyhvcC0+Y21kLm5ieXRlcywgR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwo+IDFjMjYz NzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDk2NyAgCQlpZiAo IXRtcGJ1ZikKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDkt MjQgIEA5NjggIAkJCXJldHVybiAtRU5PTUVNOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIg TWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDk2OSAgCQl0bXBidWZbMF0gPSBvcC0+Y21kLm9wY29k ZTsKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgICA5 NzAgIAkJcmVpbml0X2NvbXBsZXRpb24oJnhxc3BpLT5kYXRhX2NvbXBsZXRpb24pOwo+IDFjMjYz NzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDk3MSAgCQl4cXNw aS0+dHhidWYgPSB0bXBidWY7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEg ICAyMDIwLTA5LTI0ICAgOTcyICAJCXhxc3BpLT5yeGJ1ZiA9IE5VTEw7Cj4gMWMyNjM3MmU1YWE5 ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAgOTczICAJCXhxc3BpLT5ieXRl c190b190cmFuc2ZlciA9IG9wLT5jbWQubmJ5dGVzOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3Vt YXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDk3NCAgCQl4cXNwaS0+Ynl0ZXNfdG9fcmVjZWl2 ZSA9IDA7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0 ICAgOTc1ICAJCXp5bnFtcF9xc3BpX3dyaXRlX29wKHhxc3BpLCBvcC0+Y21kLmJ1c3dpZHRoLCBn ZW5maWZvZW50cnkpOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAy MC0wOS0yNCAgIDk3NiAgCQl6eW5xbXBfZ3FzcGlfd3JpdGUoeHFzcGksIEdRU1BJX0NPTkZJR19P RlNULAo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAg IDk3NyAgCQkJCSAgIHp5bnFtcF9ncXNwaV9yZWFkKHhxc3BpLCBHUVNQSV9DT05GSUdfT0ZTVCkg fAo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDk3 OCAgCQkJCSAgIEdRU1BJX0NGR19TVEFSVF9HRU5fRklGT19NQVNLKTsKPiAxYzI2MzcyZTVhYTll NSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgICA5NzkgIAkJenlucW1wX2dxc3Bp X3dyaXRlKHhxc3BpLCBHUVNQSV9JRVJfT0ZTVCwKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFy IE1haGFwYXRyYSAgIDIwMjAtMDktMjQgICA5ODAgIAkJCQkgICBHUVNQSV9JRVJfR0VORklGT0VN UFRZX01BU0sgfAo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0w OS0yNCAgIDk4MSAgCQkJCSAgIEdRU1BJX0lFUl9UWE5PVF9GVUxMX01BU0spOwo+IDFjMjYzNzJl NWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDk4MiAgCQlpZiAoIXdh aXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZV90aW1lb3V0Cj4gMWMyNjM3MmU1YWE5ZTUg QW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAgOTgzICAJCSAgICAoJnhxc3BpLT5k YXRhX2NvbXBsZXRpb24sIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpKSB7Cj4gMWMyNjM3MmU1YWE5 ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAgOTg0ICAJCQllcnIgPSAtRVRJ TUVET1VUOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0y NCAgIDk4NSAgCQkJa2ZyZWUodG1wYnVmKTsKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1h aGFwYXRyYSAgIDIwMjAtMDktMjQgICA5ODYgIAkJCWdvdG8gcmV0dXJuX2VycjsKPiAxYzI2Mzcy ZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgICA5ODcgIAkJfQo+IDFj MjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDk4OCAgCQlr ZnJlZSh0bXBidWYpOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAy MC0wOS0yNCAgIDk4OSAgCX0KPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAg IDIwMjAtMDktMjQgICA5OTAKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAg IDIwMjAtMDktMjQgICA5OTEgIAlpZiAob3AtPmFkZHIubmJ5dGVzKSB7Cj4gMWMyNjM3MmU1YWE5 ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAgOTkyICAJCWZvciAoaSA9IDA7 IGkgPCBvcC0+YWRkci5uYnl0ZXM7IGkrKykgewo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIg TWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDk5MyAgCQkJKigoKHU4ICopeHFzcGktPnR4YnVmKSAr IGkpID0gb3AtPmFkZHIudmFsID4+Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0 cmEgICAyMDIwLTA5LTI0ICAgOTk0ICAJCQkJCSg4ICogKG9wLT5hZGRyLm5ieXRlcyAtIGkgLSAx KSk7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAg OTk1ICAJCX0KPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDkt MjQgICA5OTYKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDkt MjQgICA5OTcgIAkJcmVpbml0X2NvbXBsZXRpb24oJnhxc3BpLT5kYXRhX2NvbXBsZXRpb24pOwo+ IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgIDk5OCAg CQl4cXNwaS0+cnhidWYgPSBOVUxMOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBh dHJhICAgMjAyMC0wOS0yNCAgIDk5OSAgCQl4cXNwaS0+Ynl0ZXNfdG9fdHJhbnNmZXIgPSBvcC0+ YWRkci5uYnl0ZXM7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIw LTA5LTI0ICAxMDAwICAJCXhxc3BpLT5ieXRlc190b19yZWNlaXZlID0gMDsKPiAxYzI2MzcyZTVh YTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwMDEgIAkJenlucW1wX3Fz cGlfd3JpdGVfb3AoeHFzcGksIG9wLT5hZGRyLmJ1c3dpZHRoLCBnZW5maWZvZW50cnkpOwo+IDFj MjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTAwMiAgCQl6 eW5xbXBfZ3FzcGlfd3JpdGUoeHFzcGksIEdRU1BJX0NPTkZJR19PRlNULAo+IDFjMjYzNzJlNWFh OWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTAwMyAgCQkJCSAgIHp5bnFt cF9ncXNwaV9yZWFkKHhxc3BpLAo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJh ICAgMjAyMC0wOS0yNCAgMTAwNCAgCQkJCQkJICAgICBHUVNQSV9DT05GSUdfT0ZTVCkgfAo+IDFj MjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTAwNSAgCQkJ CSAgIEdRU1BJX0NGR19TVEFSVF9HRU5fRklGT19NQVNLKTsKPiAxYzI2MzcyZTVhYTllNSBBbWl0 IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwMDYgIAkJenlucW1wX2dxc3BpX3dyaXRl KHhxc3BpLCBHUVNQSV9JRVJfT0ZTVCwKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFw YXRyYSAgIDIwMjAtMDktMjQgIDEwMDcgIAkJCQkgICBHUVNQSV9JRVJfVFhFTVBUWV9NQVNLIHwK PiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwMDgg IAkJCQkgICBHUVNQSV9JRVJfR0VORklGT0VNUFRZX01BU0sgfAo+IDFjMjYzNzJlNWFhOWU1IEFt aXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTAwOSAgCQkJCSAgIEdRU1BJX0lFUl9U WE5PVF9GVUxMX01BU0spOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAg MjAyMC0wOS0yNCAgMTAxMCAgCQlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJs ZV90aW1lb3V0Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5 LTI0ICAxMDExICAJCSAgICAoJnhxc3BpLT5kYXRhX2NvbXBsZXRpb24sIG1zZWNzX3RvX2ppZmZp ZXMoMTAwMCkpKSB7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIw LTA5LTI0ICAxMDEyICAJCQllcnIgPSAtRVRJTUVET1VUOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQg S3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTAxMyAgCQkJZ290byByZXR1cm5fZXJyOwo+ IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTAxNCAg CQl9Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAx MDE1ICAJfQo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0y NCAgMTAxNgo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0y NCAgMTAxNyAgCWlmIChvcC0+ZHVtbXkubmJ5dGVzKSB7Cj4gNWUxOWUzZGRmYTVkNGIgUXVhbnlh bmcgV2FuZyAgICAgICAgICAyMDIwLTExLTE2ICAxMDE4ICAJCXhxc3BpLT50eGJ1ZiA9IE5VTEw7 Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDE5 ICAJCXhxc3BpLT5yeGJ1ZiA9IE5VTEw7Cj4gNWUxOWUzZGRmYTVkNGIgUXVhbnlhbmcgV2FuZyAg ICAgICAgICAyMDIwLTExLTE2ICAxMDIwICAJCS8qCj4gNWUxOWUzZGRmYTVkNGIgUXVhbnlhbmcg V2FuZyAgICAgICAgICAyMDIwLTExLTE2ICAxMDIxICAJCSAqIHhxc3BpLT5ieXRlc190b190cmFu c2ZlciBoZXJlIHJlcHJlc2VudHMgdGhlIGR1bW15IGNpcmNsZXMKPiA1ZTE5ZTNkZGZhNWQ0YiBR dWFueWFuZyBXYW5nICAgICAgICAgIDIwMjAtMTEtMTYgIDEwMjIgIAkJICogcGVyIGRhdGEgbGlu ZS4KPiA1ZTE5ZTNkZGZhNWQ0YiBRdWFueWFuZyBXYW5nICAgICAgICAgIDIwMjAtMTEtMTYgIDEw MjMgIAkJICovCj4gNWUxOWUzZGRmYTVkNGIgUXVhbnlhbmcgV2FuZyAgICAgICAgICAyMDIwLTEx LTE2ICAxMDI0ICAJCXhxc3BpLT5ieXRlc190b190cmFuc2ZlciA9IG9wLT5kdW1teS5uYnl0ZXMg KiA4IC8gb3AtPmR1bW15LmJ1c3dpZHRoOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFo YXBhdHJhICAgMjAyMC0wOS0yNCAgMTAyNSAgCQl4cXNwaS0+Ynl0ZXNfdG9fcmVjZWl2ZSA9IDA7 Cj4gNWUxOWUzZGRmYTVkNGIgUXVhbnlhbmcgV2FuZyAgICAgICAgICAyMDIwLTExLTE2ICAxMDI2 ICAJCS8qCj4gNWUxOWUzZGRmYTVkNGIgUXVhbnlhbmcgV2FuZyAgICAgICAgICAyMDIwLTExLTE2 ICAxMDI3ICAJCSAqIFVzaW5nIG9wLT5kYXRhLmJ1c3dpZHRoIGluc3RlYWQgb2Ygb3AtPmR1bW15 LmJ1c3dpZHRoIHNpbmNlCj4gNWUxOWUzZGRmYTVkNGIgUXVhbnlhbmcgV2FuZyAgICAgICAgICAy MDIwLTExLTE2ICAxMDI4ICAJCSAqIHRoZSBzcGVjaWZpY2F0aW9uIHJlcXVpcmVzIHRoYXQgdGhl IGR1bW15LmJ1c3dpZHRoIHNob3VsZAo+IDVlMTllM2RkZmE1ZDRiIFF1YW55YW5nIFdhbmcgICAg ICAgICAgMjAyMC0xMS0xNiAgMTAyOSAgCQkgKiBiZSB0aGUgc2FtZSBhcyBkYXRhLmJ1c3dpZHRo Lgo+IDVlMTllM2RkZmE1ZDRiIFF1YW55YW5nIFdhbmcgICAgICAgICAgMjAyMC0xMS0xNiAgMTAz MCAgCQkgKi8KPiA1ZTE5ZTNkZGZhNWQ0YiBRdWFueWFuZyBXYW5nICAgICAgICAgIDIwMjAtMTEt MTYgIDEwMzEgIAkJenlucW1wX3FzcGlfd3JpdGVfb3AoeHFzcGksIG9wLT5kYXRhLmJ1c3dpZHRo LAo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTAz MiAgCQkJCSAgICAgZ2VuZmlmb2VudHJ5KTsKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1h aGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwMzMgIAkJenlucW1wX2dxc3BpX3dyaXRlKHhxc3BpLCBH UVNQSV9DT05GSUdfT0ZTVCwKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAg IDIwMjAtMDktMjQgIDEwMzQgIAkJCQkgICB6eW5xbXBfZ3FzcGlfcmVhZCh4cXNwaSwgR1FTUElf Q09ORklHX09GU1QpIHwKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIw MjAtMDktMjQgIDEwMzUgIAkJCQkgICBHUVNQSV9DRkdfU1RBUlRfR0VOX0ZJRk9fTUFTSyk7Cj4g MWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDM2ICAJ fQo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTAz Nwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTAz OCAgCWlmIChvcC0+ZGF0YS5uYnl0ZXMpIHsKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1h aGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwMzkgIAkJcmVpbml0X2NvbXBsZXRpb24oJnhxc3BpLT5k YXRhX2NvbXBsZXRpb24pOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAg MjAyMC0wOS0yNCAgMTA0MCAgCQlpZiAob3AtPmRhdGEuZGlyID09IFNQSV9NRU1fREFUQV9PVVQp IHsKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgIDEw NDEgIAkJCXhxc3BpLT50eGJ1ZiA9ICh1OCAqKW9wLT5kYXRhLmJ1Zi5vdXQ7Cj4gMWMyNjM3MmU1 YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDQyICAJCQl4cXNwaS0+ cnhidWYgPSBOVUxMOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAy MC0wOS0yNCAgMTA0MyAgCQkJeHFzcGktPmJ5dGVzX3RvX3RyYW5zZmVyID0gb3AtPmRhdGEubmJ5 dGVzOwo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAg MTA0NCAgCQkJeHFzcGktPmJ5dGVzX3RvX3JlY2VpdmUgPSAwOwo+IDFjMjYzNzJlNWFhOWU1IEFt aXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTA0NSAgCQkJenlucW1wX3FzcGlfd3Jp dGVfb3AoeHFzcGksIG9wLT5kYXRhLmJ1c3dpZHRoLAo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3Vt YXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTA0NiAgCQkJCQkgICAgIGdlbmZpZm9lbnRyeSk7 Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDQ3 ICAJCQl6eW5xbXBfZ3FzcGlfd3JpdGUoeHFzcGksIEdRU1BJX0NPTkZJR19PRlNULAo+IDFjMjYz NzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTA0OCAgCQkJCQkg ICB6eW5xbXBfZ3FzcGlfcmVhZAo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJh ICAgMjAyMC0wOS0yNCAgMTA0OSAgCQkJCQkgICAoeHFzcGksIEdRU1BJX0NPTkZJR19PRlNUKSB8 Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDUw ICAJCQkJCSAgIEdRU1BJX0NGR19TVEFSVF9HRU5fRklGT19NQVNLKTsKPiAxYzI2MzcyZTVhYTll NSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwNTEgIAkJCXp5bnFtcF9ncXNw aV93cml0ZSh4cXNwaSwgR1FTUElfSUVSX09GU1QsCj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1h ciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDUyICAJCQkJCSAgIEdRU1BJX0lFUl9UWEVNUFRZ X01BU0sgfAo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0y NCAgMTA1MyAgCQkJCQkgICBHUVNQSV9JRVJfR0VORklGT0VNUFRZX01BU0sgfAo+IDFjMjYzNzJl NWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTA1NCAgCQkJCQkgICBH UVNQSV9JRVJfVFhOT1RfRlVMTF9NQVNLKTsKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1h aGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwNTUgIAkJfSBlbHNlIHsKPiAxYzI2MzcyZTVhYTllNSBB bWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwNTYgIAkJCXhxc3BpLT50eGJ1ZiA9 IE5VTEw7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0 ICAxMDU3ICAJCQl4cXNwaS0+cnhidWYgPSAodTggKilvcC0+ZGF0YS5idWYuaW47Cj4gMWMyNjM3 MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDU4ICAJCQl4cXNw aS0+Ynl0ZXNfdG9fcmVjZWl2ZSA9IG9wLT5kYXRhLm5ieXRlczsKPiAxYzI2MzcyZTVhYTllNSBB bWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwNTkgIAkJCXhxc3BpLT5ieXRlc190 b190cmFuc2ZlciA9IDA7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAy MDIwLTA5LTI0ICAxMDYwICAJCQl6eW5xbXBfcXNwaV9yZWFkX29wKHhxc3BpLCBvcC0+ZGF0YS5i dXN3aWR0aCwKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDkt MjQgIDEwNjEgIAkJCQkJICAgIGdlbmZpZm9lbnRyeSk7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBL dW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDYyICAJCQl6eW5xbXBfZ3FzcGlfd3JpdGUo eHFzcGksIEdRU1BJX0NPTkZJR19PRlNULAo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFo YXBhdHJhICAgMjAyMC0wOS0yNCAgMTA2MyAgCQkJCQkgICB6eW5xbXBfZ3FzcGlfcmVhZAo+IDFj MjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTA2NCAgCQkJ CQkgICAoeHFzcGksIEdRU1BJX0NPTkZJR19PRlNUKSB8Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBL dW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDY1ICAJCQkJCSAgIEdRU1BJX0NGR19TVEFS VF9HRU5fRklGT19NQVNLKTsKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAg IDIwMjAtMDktMjQgIDEwNjYgIAkJCWlmICh4cXNwaS0+bW9kZSA9PSBHUVNQSV9NT0RFX0RNQSkg ewo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTA2 NyAgCQkJCXp5bnFtcF9ncXNwaV93cml0ZQo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFo YXBhdHJhICAgMjAyMC0wOS0yNCAgMTA2OCAgCQkJCQkoeHFzcGksIEdRU1BJX1FTUElETUFfRFNU X0lfRU5fT0ZTVCwKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAt MDktMjQgIDEwNjkgIAkJCQkJIEdRU1BJX1FTUElETUFfRFNUX0lfRU5fRE9ORV9NQVNLKTsKPiAx YzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwNzAgIAkJ CX0gZWxzZSB7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5 LTI0ICAxMDcxICAJCQkJenlucW1wX2dxc3BpX3dyaXRlKHhxc3BpLCBHUVNQSV9JRVJfT0ZTVCwK PiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwNzIg IAkJCQkJCSAgIEdRU1BJX0lFUl9HRU5GSUZPRU1QVFlfTUFTSyB8Cj4gMWMyNjM3MmU1YWE5ZTUg QW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDczICAJCQkJCQkgICBHUVNQSV9J RVJfUlhORU1QVFlfTUFTSyB8Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEg ICAyMDIwLTA5LTI0ICAxMDc0ICAJCQkJCQkgICBHUVNQSV9JRVJfUlhFTVBUWV9NQVNLKTsKPiAx YzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgIDEwNzUgIAkJ CX0KPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFwYXRyYSAgIDIwMjAtMDktMjQgIDEw NzYgIAkJfQo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0y NCAgMTA3NyAgCQlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZV90aW1lb3V0 Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDc4 ICAJCSAgICAoJnhxc3BpLT5kYXRhX2NvbXBsZXRpb24sIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkp KQo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTA3 OSAgCQkJZXJyID0gLUVUSU1FRE9VVDsKPiAxYzI2MzcyZTVhYTllNSBBbWl0IEt1bWFyIE1haGFw YXRyYSAgIDIwMjAtMDktMjQgIDEwODAgIAl9Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBN YWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDgxCj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBN YWhhcGF0cmEgICAyMDIwLTA5LTI0ICAxMDgyICByZXR1cm5fZXJyOgo+IDFjMjYzNzJlNWFhOWU1 IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTA4Mwo+IDFjMjYzNzJlNWFhOWU1 IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTA4NCAgCXp5bnFtcF9xc3BpX2No aXBzZWxlY3QobWVtLT5zcGksIHRydWUpOwo+IGJjNzUzZGI5Yzc0ZDk0IFF1YW55YW5nIFdhbmcg ICAgICAgICAgMjAyMC0xMS0xOSAgMTA4NSAgCW11dGV4X3VubG9jaygmeHFzcGktPm9wX2xvY2sp Owo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTA4 Ngo+IDFjMjYzNzJlNWFhOWU1IEFtaXQgS3VtYXIgTWFoYXBhdHJhICAgMjAyMC0wOS0yNCAgMTA4 NyAgCXJldHVybiBlcnI7Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEgICAy MDIwLTA5LTI0ICAxMDg4ICB9Cj4gMWMyNjM3MmU1YWE5ZTUgQW1pdCBLdW1hciBNYWhhcGF0cmEg ICAyMDIwLTA5LTI0ICAxMDg5Cj4gCj4gOjo6Ojo6IFRoZSBjb2RlIGF0IGxpbmUgOTY4IHdhcyBm aXJzdCBpbnRyb2R1Y2VkIGJ5IGNvbW1pdAo+IDo6Ojo6OiAxYzI2MzcyZTVhYTllNTMzOTFhMWY4 ZmUwZGM3Y2Q5M2E3ZTViYTllIHNwaTogc3BpLXp5bnFtcC1ncXNwaTogVXBkYXRlIGRyaXZlciB0 byB1c2Ugc3BpLW1lbSBmcmFtZXdvcmsKPiAKPiA6Ojo6OjogVE86IEFtaXQgS3VtYXIgTWFoYXBh dHJhIDxhbWl0Lmt1bWFyLW1haGFwYXRyYUB4aWxpbnguY29tPgo+IDo6Ojo6OiBDQzogTWFyayBC cm93biA8YnJvb25pZUBrZXJuZWwub3JnPgo+IAo+IC0tLQo+IDAtREFZIENJIEtlcm5lbCBUZXN0 IFNlcnZpY2UsIEludGVsIENvcnBvcmF0aW9uCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvaHlwZXJr aXR0eS9saXN0L2tidWlsZC1hbGxAbGlzdHMuMDEub3JnCj4gCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlz dApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==