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 1D148C4332F for ; Mon, 7 Nov 2022 13:56:36 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=brn17I5YerP3IARrpRWOGrji3RDgEGPQm/cItw/FMUc=; b=QQ6Tb9SKKTq2ft hkNjWPtErI+1DjhKXAAQOj6vDoyAXwGr1TAV6JdHibRoteulfnCkQjXg33SMSvx37kt9CxA+Bk22p zQiYSoiJzNMO7RmKyNQl9H0237Fbf4qFH/aLzV4EDV+ySpXOgOa5vaZJ7LkCXymYuRADAI41RALrZ gKttfE4zFSG5ZD76u7MLWA21gzXRcDvqx4tZI1J9739uqFgZ97es5enPQbjUzlDn4Bd4hutmcZQnH 7lF44KPZFml6GN3savAGsVLUDkAeisKWsbuVRKX04lrH79xcuL+YJSoFkJzbga0h366bGe8o3e16r tZ4cOqDQrYcXiYhRV6OA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1os2by-00F68V-21; Mon, 07 Nov 2022 13:56:26 +0000 Received: from relay1-d.mail.gandi.net ([217.70.183.193]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1os2bt-00F67F-Os for linux-mtd@lists.infradead.org; Mon, 07 Nov 2022 13:56:25 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id C3AA824000B; Mon, 7 Nov 2022 13:56:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1667829374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iMytcfkuDCi69L8AzT1h4PJtiynVGqX8ib6Xprsqhdc=; b=C0l3ARnSKl1WnulMS825H1L4JBkwG+B9MwJOjNDdaa8QglHmFwEGazn0/0zYQFGkKmLC1n LDLlxqrTCqS6BeBa471KRsfidKynyFFj8oi0/DI9KbO/GDoNsbmmVYJEkSFVcjKbC0Sd3a LLNOsjkx8uth2qYrV3Et5I0ThPKZN84Qr+XVqdeiO2R6/rO65fkZOAR1VfVa7icBZD9kXR XkOb6qRu6XQExUUkn95aNRVISD1XCYvuw7MdVsC7pzCM+8GHBOGWKoGuqUvkwJeAYSIb9y lqXhGMU2YRQOWdSZdTEDjJElJG5Y33Kt5dEGKkyhvWNHPo/tdJAnZNw3rPV6Cw== Date: Mon, 7 Nov 2022 14:56:10 +0100 From: Miquel Raynal To: JaimeLiao Cc: linux-mtd@lists.infradead.org, richard@nod.at, jaimeliao@mxic.com.tw, Leo Yu , Julien Su Subject: Re: [PATCH v2 1/1] mtd: rawnand: Cache read sequential Message-ID: <20221107145610.2d4f5cff@xps-13> In-Reply-To: <20220829072452.15342-2-jaimeliao.tw@gmail.com> References: <20220829072452.15342-1-jaimeliao.tw@gmail.com> <20220829072452.15342-2-jaimeliao.tw@gmail.com> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221107_055622_279304_35232240 X-CRM114-Status: GOOD ( 52.04 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGkgSmFpbWUsCgpTb3JyeSBmb3IgdGhlIGxvbmcgd2FpdC4KCmphaW1lbGlhby50d0BnbWFpbC5j b20gd3JvdGUgb24gTW9uLCAyOSBBdWcgMjAyMiAxNToyNDo1MiArMDgwMDoKCj4gRm9yIHJlZHVj aW5nIGluc3RydWN0aW9uIGluIGNvbW1hbmQgb3BlcmF0aW9uIGFuZCB0aW1lIG9mIHJlYWQgc2Vx dWVuY2UKPiB3aGljaCBhZGRyZXNzIGFyZSBjb250aW51b3VzLgo+IEFkZGluZyBjYWNoZSByZWFk IHNlcXVlbnRpYWwgZmVhdHVyZSBzdXBwb3J0IGluIHJhdyBuYW5kIGV4aXN0aW5nIGFyY2hpdGVj dHVyZS4KCldoYXQgYWJvdXQgOgoKIgpBZGQgc3VwcG9ydCBmb3Igc2VxdWVudGlhbCBjYWNoZSBy ZWFkcy4KClNlcXVlbnRpYWwgcmVhZHMgbWF5IHJlZHVjZSB0aGUgb3ZlcmhlYWQgd2hlbiBhY2Nl c3NpbmcgcGh5c2ljYWxseQpjb250aW51b3VzIGRhdGEgYnkgbG9hZGluZyBpbiBjYWNoZSB0aGUg bmV4dCBwYWdlIHdoaWxlIHRoZSBwcmV2aW91cwpwYWdlIGdldHMgc2VudCBvdXQgb24gdGhlIE5B TkQgYnVzLgoKVGhlIE9ORkkgc3BlY2lmaWNhdGlvbiBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGFk ZGl0aW9uYWwgY29tbWFuZHMgdG8KaGFuZGxlIHNlcXVlbnRpYWwgY2FjaGVkIHJlYWRzOgoKKiAw eDMxIC0gUkVBRCBDQUNIRSBTRVFVRU5USUFMOgogIFJlcXVpcmVzIHRoZSBOQU5EIGNoaXAgdG8g bG9hZCB0aGUgbmV4dCBwYWdlIGludG8gY2FjaGUgd2hpbGUga2VlcGluZwogIHRoZSBjdXJyZW50 IGNhY2hlIGF2YWlsYWJsZSBmb3IgaG9zdCByZWFkcy4KKiAweDNGIC0gUkVBRCBDQUNIRSBFTkQ6 CiAgVGVsbHMgdGhlIE5BTkQgY2hpcCB0aGlzIGlzIHRoZSBlbmQgb2YgdGhlIHNlcXVlbnRpYWwg Y2FjaGUgcmVhZCwgdGhlCiAgY3VycmVudCBjYWNoZSBzaGFsbCByZW1haW4gYWNjZXNzaWJsZSBm b3IgdGhlIGhvc3QgYnV0IG5vIG1vcmUKICBpbnRlcm5hbCBjYWNoZSBsb2FkaW5nIG9wZXJhdGlv biBpcyByZXF1aXJlZC4KCk9uIHRoZSBidXMsIGEgbXVsdGkgcGFnZSByZWFkIG9wZXJhdGlvbiBp cyBjdXJyZW50bHkgaGFuZGxlZCBsaWtlIHRoaXM6CgoJMDAgLS0gQUREUjEgLS0gMzAgLS0gV0FJ VF9SRFkgKHRSK3RSUikgLS0gREFUQTFfSU4KCTAwIC0tIEFERFIyIC0tIDMwIC0tIFdBSVRfUkRZ ICh0Uit0UlIpIC0tIERBVEEyX0lOCgkwMCAtLSBBRERSMyAtLSAzMCAtLSBXQUlUX1JEWSAodFIr dFJSKSAtLSBEQVRBM19JTgoKU2VxdWVudGlhbCBjYWNoZWQgcmVhZHMgbWF5IGluc3RlYWQgYmUg YWNoaWV2ZWQgd2l0aDoKCgkwMCAtLSBBRERSMSAtLSAzMCAtLSBXQUlUX1JEWSAodFIpIC0tIFwK CQkgICAgICAgMzEgLS0gV0FJVF9SRFkgKHRSQ0JTWSt0UlIpIC0tIERBVEExX0lOIFwKCQkgICAg ICAgMzEgLS0gV0FJVF9SRFkgKHRSQ0JTWSt0UlIpIC0tIERBVEEyX0lOIFwKCQkgICAgICAgM0Yg LS0gV0FJVF9SRFkgKHRSQ0JTWSt0UlIpIC0tIERBVEEzX0lOCiIKCj4gQ3JlYXRpbmcgbmFuZF9l eGVjX2NvbnRpbnVlX3JlYWRfcGFnZV9vcCBmdW5jdGlvbiBmb3IgcmVhZCBjb21tYW5kIGV4dGVu ZC4KPiBBZGRpbmcgY29tbWFuZCBzZWxlY3QgaW4gbmFuZF9scF9leGVjX3JlYWRfcGFnZV9vcCBh bmQgdGFraW5nIHJlYWRsZW4gdG8KPiBqdWRnZSB0aGUgbGFzdCBwYWdlIGZvciByZWFkLgo+IENv bW1hbmQgb2YgcmVhZCBjYWNoZSBzZXF1ZW50aWFsIGNhbiBiZSBzZXBhcmF0ZSAzIHBhcnRzLgo+ IAo+IEZpcnN0IHBhcnQgaXMgMDAtQUREUi0zMC0zMS1EQVRBX0lOLCBpdCBtZWFucyByZWFkIGNh Y2hlIHNlcXVlbnRpYWwgZW5hYmxlZCBhbmQgbmV4dAo+IHBhZ2UgZGF0YSBjYW4gYmUgcHJlcGFy ZSB3aGlsZSBjYWNoZSBkYXRhIHJlYWRpbmcuCj4gCj4gU2Vjb25kIHBhcnQgaXMgMzEtREFUQV9J TiwgbWVhbnMgZmxhc2ggd2lsbCBwcmVwYXJlIG5leHQgcGFnZSBkYXRhIGZvciByZWR1Y2luZwo+ IHRpbWUgY29zdC4KPiAKPiBMYXN0IHBhcnQgaXMgM0YtREFUQV9JTiwgbWVhbnMgdGhlIGxhc3Qg Y2FjaGUgcmVhZCBhbmQgZmxhc2ggZG9uJ3QgbmVlZCB0byBwcmVwYXJlCj4gbmV4dCBwYWdlIGRh dGEuCj4gCj4gRXhhbXBsZSBmb3IgMiBwYWdlIHJlYWQgb3BlcmF0aW9uLCBhcyBiZWxvdyBpcyB0 aGUgTkFORCBvcGVyYXRpb24gaW5zdHJ1Y3Rpb25zOgo+IE5vcm1hbCByZWFkIG1vZGU6Cj4gICAg ICAgICAwMCAtLSBBRERSMSAtLSAzMCAtLSBXQUlUX1JEWSh0Uit0UlIpIC0tIERBVEExX0lOCj4g ICAgICAgICAwMCAtLSBBRERSMiAtLSAzMCAtLSBXQUlUX1JEWSh0Uit0UlIpIC0tIERBVEEyX0lO Cj4gCj4gQ2FjaGUgcmVhZCBzZXF1ZW50aWFsIG1vZGU6Cj4gICAgICAgICAwMCAtLSBBRERSMSAt LSAzMCAtLSBXQUlUX1JEWSh0UikgLS0gMzEgLS0gV0FJVF9SRFkodFJDQlNZK3RSUikgLS0gREFU QTFfSU4KPiAgICAgICAgIDNGIC0tIFdBSVRfUkRZKHRSQ0JTWSt0UlIpIC0tIERBVEEyX0lOCj4g Cj4gdFIgICAgIGlzIGFib3V0IDIwIG1pY3Jvc2Vjb25kCj4gdFJDQlNZIGlzIGFib3V0IDUgbWlj cm9zZWNvbmQKPiB0UlIgICAgaXMgYWJvdXQgMjAgbmFub3NlY29uZAo+IAo+IEFzIGJlbG93IGlz IG10ZF9zcGVlZHRlc3QgcmVzdWx0IGJldHdlZW4gbm9ybWFsZSByZWFkIGFuZCBjYWNoZSByZWFk Cj4gc2VxdWVudGlhbCBvbiBOWFAgaS5NWDYgVkFSLVNPTS1TT0xPIG1hcHBpbmcgbW9kZS4KCkJl bG93IGFyZSB0aGUgcmVhZCBzcGVlZCB0ZXN0IHJlc3VsdHMgd2l0aCByZWd1bGFyIHJlYWRzIGFu ZApzZXF1ZW50aWFsIGNhY2hlZCByZWFkcywgb24gTlhQIGkuTVg2IFZBUi1TT00tU09MTyBpbiBt YXBwaW5nIG1vZGUgd2l0aAphIE5BTkQgY2hpcCBjaGFyYWN0ZXJpemVkIHdpdGggdGhlIGZvbGxv d2luZyB0aW1pbmdzOgoqIHRSIGlzIGFib3V0IDIwwrVzCiogdFJDQlNZIGlzIGFib3V0IDXCtXMK KiB0UlIgaXMgYWJvdXQgMjDCtXMKCj4gCj4gPT09PT09PT09PT09PT09Tm9ybWFsIHJlYWQgMzNN PT09PT09PT09PT09PT09PT09PQo+IG10ZF9zcGVlZHRlc3Q6IE1URCBkZXZpY2U6IDAKPiBtdGRf c3BlZWR0ZXN0OiBNVEQgZGV2aWNlIHNpemUgMjA5NzE1MiwgZXJhc2VibG9jayBzaXplIDEzMTA3 MiwgcGFnZSBzaXplIDIwNDgsCj4gY291bnQgb2YgZXJhc2VibG9ja3MgMTYsIHBhZ2VzIHBlciBl cmFzZWJsb2NrIDY0LCBPT0Igc2l6ZSA2NAo+IG10ZF90ZXN0OiBzY2FubmluZyBmb3IgYmFkIGVy YXNlYmxvY2tzCj4gbXRkX3Rlc3Q6IHNjYW5uZWQgMTYgZXJhc2VibG9ja3MsIDAgYXJlIGJhZAo+ IG10ZF9zcGVlZHRlc3Q6IHRlc3RpbmcgZXJhc2VibG9jayB3cml0ZSBzcGVlZAo+IG10ZF9zcGVl ZHRlc3Q6IGVyYXNlYmxvY2sgd3JpdGUgc3BlZWQgaXMgMzg2NCBLaUIvcwo+IG10ZF9zcGVlZHRl c3Q6IHRlc3RpbmcgZXJhc2VibG9jayByZWFkIHNwZWVkCj4gbXRkX3NwZWVkdGVzdDogZXJhc2Vi bG9jayByZWFkIHNwZWVkIGlzIDE1NjMzIEtpQi9zCgpNYXliZSBpbiBib3RoIGNhc2VzIHlvdSBj YW4ganVzdCBrZWVwIHRoZSBpbnRlcmVzdGluZyBsaW5lcyB3aXRoIHRoZQp2YXJpb3VzIHJlYWQg c3BlZWRzLgoKPiBtdGRfc3BlZWR0ZXN0OiB0ZXN0aW5nIHBhZ2Ugd3JpdGUgc3BlZWQKPiBtdGRf c3BlZWR0ZXN0OiBwYWdlIHdyaXRlIHNwZWVkIGlzIDM1NjEgS2lCL3MKPiBtdGRfc3BlZWR0ZXN0 OiB0ZXN0aW5nIHBhZ2UgcmVhZCBzcGVlZAo+IG10ZF9zcGVlZHRlc3Q6IHBhZ2UgcmVhZCBzcGVl ZCBpcyAxNTUxNSBLaUIvcwo+IG10ZF9zcGVlZHRlc3Q6IHRlc3RpbmcgMiBwYWdlIHdyaXRlIHNw ZWVkCj4gbXRkX3NwZWVkdGVzdDogMiBwYWdlIHdyaXRlIHNwZWVkIGlzIDM2OTAgS2lCL3MKPiBt dGRfc3BlZWR0ZXN0OiB0ZXN0aW5nIDIgcGFnZSByZWFkIHNwZWVkCj4gbXRkX3NwZWVkdGVzdDog MiBwYWdlIHJlYWQgc3BlZWQgaXMgMTUzOTggS2lCL3MKPiBtdGRfc3BlZWR0ZXN0OiBUZXN0aW5n IGVyYXNlIHNwZWVkCj4gbXRkX3NwZWVkdGVzdDogZXJhc2Ugc3BlZWQgaXMgMjI3NTU1IEtpQi9z Cj4gbXRkX3NwZWVkdGVzdDogVGVzdGluZyAyeCBtdWx0aS1ibG9jayBlcmFzZSBzcGVlZAo+IG10 ZF9zcGVlZHRlc3Q6IDJ4IG11bHRpLWJsb2NrIGVyYXNlIHNwZWVkIGlzIDIwNDgwMCBLaUIvcwo+ IG10ZF9zcGVlZHRlc3Q6IFRlc3RpbmcgNHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQKPiBtdGRf c3BlZWR0ZXN0OiA0eCBtdWx0aS1ibG9jayBlcmFzZSBzcGVlZCBpcyAyMDQ4MDAgS2lCL3MKPiBt dGRfc3BlZWR0ZXN0OiBUZXN0aW5nIDh4IG11bHRpLWJsb2NrIGVyYXNlIHNwZWVkCj4gbXRkX3Nw ZWVkdGVzdDogOHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMgMjA0ODAwIEtpQi9zCj4gbXRk X3NwZWVkdGVzdDogVGVzdGluZyAxNnggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQKPiBtdGRfc3Bl ZWR0ZXN0OiAxNnggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMgMjA0ODAwIEtpQi9zCj4gbXRk X3NwZWVkdGVzdDogVGVzdGluZyAzMnggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQKPiBtdGRfc3Bl ZWR0ZXN0OiAzMnggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMgMjA0ODAwIEtpQi9zCj4gbXRk X3NwZWVkdGVzdDogVGVzdGluZyA2NHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQKPiBtdGRfc3Bl ZWR0ZXN0OiA2NHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMgMjI3NTU1IEtpQi9zCj4gbXRk X3NwZWVkdGVzdDogZmluaXNoZWQKPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4gCj4gPT09PT09PT09PT09Q2FjaGUgcmVhZGUgU2VxdWVudGlhbCAz M01Iej09PT09PT09PT09Cj4gbXRkX3NwZWVkdGVzdDogTVREIGRldmljZTogMAo+IG10ZF9zcGVl ZHRlc3Q6IE1URCBkZXZpY2Ugc2l6ZSAyMDk3MTUyLCBlcmFzZWJsb2NrIHNpemUgMTMxMDcyLCBw YWdlIHNpemUgMjA0OCwKPiBjb3VudCBvZiBlcmFzZWJsb2NrcyAxNiwgcGFnZXMgcGVyIGVyYXNl YmxvY2sgNjQsIE9PQiBzaXplIDY0Cj4gbXRkX3Rlc3Q6IHNjYW5uaW5nIGZvciBiYWQgZXJhc2Vi bG9ja3MKPiBtdGRfdGVzdDogc2Nhbm5lZCAxNiBlcmFzZWJsb2NrcywgMCBhcmUgYmFkCj4gbXRk X3NwZWVkdGVzdDogdGVzdGluZyBlcmFzZWJsb2NrIHdyaXRlIHNwZWVkCj4gbXRkX3NwZWVkdGVz dDogZXJhc2VibG9jayB3cml0ZSBzcGVlZCBpcyA0MTIwIEtpQi9zCj4gbXRkX3NwZWVkdGVzdDog dGVzdGluZyBlcmFzZWJsb2NrIHJlYWQgc3BlZWQKPiBtdGRfc3BlZWR0ZXN0OiBlcmFzZWJsb2Nr IHJlYWQgc3BlZWQgaXMgMTgyODUgS2lCL3MKPiBtdGRfc3BlZWR0ZXN0OiB0ZXN0aW5nIHBhZ2Ug d3JpdGUgc3BlZWQKPiBtdGRfc3BlZWR0ZXN0OiBwYWdlIHdyaXRlIHNwZWVkIGlzIDQwMzEgS2lC L3MKPiBtdGRfc3BlZWR0ZXN0OiB0ZXN0aW5nIHBhZ2UgcmVhZCBzcGVlZAo+IG10ZF9zcGVlZHRl c3Q6IHBhZ2UgcmVhZCBzcGVlZCBpcyAxNTg3NSBLaUIvcwo+IG10ZF9zcGVlZHRlc3Q6IHRlc3Rp bmcgMiBwYWdlIHdyaXRlIHNwZWVkCj4gbXRkX3NwZWVkdGVzdDogMiBwYWdlIHdyaXRlIHNwZWVk IGlzIDM5NDYgS2lCL3MKPiBtdGRfc3BlZWR0ZXN0OiB0ZXN0aW5nIDIgcGFnZSByZWFkIHNwZWVk Cj4gbXRkX3NwZWVkdGVzdDogMiBwYWdlIHJlYWQgc3BlZWQgaXMgMTYyNTMgS2lCL3MKPiBtdGRf c3BlZWR0ZXN0OiBUZXN0aW5nIGVyYXNlIHNwZWVkCj4gbXRkX3NwZWVkdGVzdDogZXJhc2Ugc3Bl ZWQgaXMgMjI3NTU1IEtpQi9zCj4gbXRkX3NwZWVkdGVzdDogVGVzdGluZyAyeCBtdWx0aS1ibG9j ayBlcmFzZSBzcGVlZAo+IG10ZF9zcGVlZHRlc3Q6IDJ4IG11bHRpLWJsb2NrIGVyYXNlIHNwZWVk IGlzIDIyNzU1NSBLaUIvcwo+IG10ZF9zcGVlZHRlc3Q6IFRlc3RpbmcgNHggbXVsdGktYmxvY2sg ZXJhc2Ugc3BlZWQKPiBtdGRfc3BlZWR0ZXN0OiA0eCBtdWx0aS1ibG9jayBlcmFzZSBzcGVlZCBp cyAyMDQ4MDAgS2lCL3MKPiBtdGRfc3BlZWR0ZXN0OiBUZXN0aW5nIDh4IG11bHRpLWJsb2NrIGVy YXNlIHNwZWVkCj4gbXRkX3NwZWVkdGVzdDogOHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMg MjA0ODAwIEtpQi9zCj4gbXRkX3NwZWVkdGVzdDogVGVzdGluZyAxNnggbXVsdGktYmxvY2sgZXJh c2Ugc3BlZWQKPiBtdGRfc3BlZWR0ZXN0OiAxNnggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMg MjI3NTU1IEtpQi9zCj4gbXRkX3NwZWVkdGVzdDogVGVzdGluZyAzMnggbXVsdGktYmxvY2sgZXJh c2Ugc3BlZWQKPiBtdGRfc3BlZWR0ZXN0OiAzMnggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMg MjA0ODAwIEtpQi9zCj4gbXRkX3NwZWVkdGVzdDogVGVzdGluZyA2NHggbXVsdGktYmxvY2sgZXJh c2Ugc3BlZWQKPiBtdGRfc3BlZWR0ZXN0OiA2NHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMg MjA0ODAwIEtpQi9zCj4gbXRkX3NwZWVkdGVzdDogZmluaXNoZWQKPiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gCj4gVGhlIHJlc3VsdCBjb3VsZCBo YXZlIGFib3V0IDUlIGltcHJvdmVtZW50IGJldHdlZW4gMiBtb2RlcyB3aGVuIDIgcGFnZXMgcmVh ZC4KCldlIG9ic2VydmUgYW4gb3ZlcmFsbCBpbXByb3ZlbWVudCBvZiB4JSB3aGVuIHJlYWRpbmcg MiBwYWdlcywgeSUgd2hlbgpyZWFkaW5nIGEgYmxvY2suCgo+IFNpZ25lZC1vZmYtYnk6IEphaW1l TGlhbyA8amFpbWVsaWFvLnR3QGdtYWlsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9tdGQvbmFuZC9y YXcvbmFuZF9iYXNlLmMgICAgfCA5NiArKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+ICBk cml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX3RpbWluZ3MuYyB8IDEyICsrKysKPiAgaW5jbHVkZS9s aW51eC9tdGQvcmF3bmFuZC5oICAgICAgICAgfCAgNyArKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCAx MTAgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tdGQvbmFuZC9yYXcvbmFuZF9iYXNlLmMgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2Jh c2UuYwo+IGluZGV4IDNkNmM2ZTg4MDUyMC4uNzQwMDgxNmYwNjI3IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvbXRkL25hbmQvcmF3L25hbmRfYmFzZS5jCj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9y YXcvbmFuZF9iYXNlLmMKPiBAQCAtMTE3Niw2ICsxMTc2LDM5IEBAIHN0YXRpYyBpbnQgbmFuZF9s cF9leGVjX3JlYWRfcGFnZV9vcChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCB1bnNpZ25lZCBpbnQg cGFnZSwKPiAgCWNvbnN0IHN0cnVjdCBuYW5kX2ludGVyZmFjZV9jb25maWcgKmNvbmYgPQo+ICAJ CW5hbmRfZ2V0X2ludGVyZmFjZV9jb25maWcoY2hpcCk7Cj4gIAl1OCBhZGRyc1s1XTsKPiArCj4g KwkvKiBDb21tYW5kIHNlcXVlbmNlIHNlbGVjdCB0byAwMC0zMC0zMSB3aGVuIHJlYWQgY2FjaGUg c2VxdWVudGlhbCBpcyBlbmFibGVkICovCj4gKwlpZiAoY2hpcC0+b3BzLmNvbnRpX3JlYWRfcmVx dWlyZSkgewo+ICsJCXN0cnVjdCBuYW5kX29wX2luc3RyIGluc3Ryc1tdID0gewo+ICsJCQlOQU5E X09QX0NNRChOQU5EX0NNRF9SRUFEMCwgMCksCj4gKwkJCU5BTkRfT1BfQUREUig0LCBhZGRycywg MCksCj4gKwkJCU5BTkRfT1BfQ01EKE5BTkRfQ01EX1JFQURTVEFSVCwgTkFORF9DT01NT05fVElN SU5HX05TKGNvbmYsIHRXQl9tYXgpKSwKPiArCQkJTkFORF9PUF9XQUlUX1JEWShOQU5EX0NPTU1P Tl9USU1JTkdfTVMoY29uZiwgdFJfbWF4KSwgMCksCj4gKwkJCU5BTkRfT1BfQ01EKE5BTkRfQ01E X1JFQURDT05USSwgTkFORF9DT01NT05fVElNSU5HX05TKGNvbmYsIHRXQl9tYXgpKSwKPiArCQkJ TkFORF9PUF9XQUlUX1JEWShOQU5EX0NPTU1PTl9USU1JTkdfTVMoY29uZiwgdFJDQlNZX21pbiks Cj4gKwkJCQkJIE5BTkRfQ09NTU9OX1RJTUlOR19OUyhjb25mLCB0UlJfbWluKSksCj4gKwkJCU5B TkRfT1BfREFUQV9JTihsZW4sIGJ1ZiwgMCksCj4gKwkJfTsKPiArCQlzdHJ1Y3QgbmFuZF9vcGVy YXRpb24gb3AgPSBOQU5EX09QRVJBVElPTihjaGlwLT5jdXJfY3MsIGluc3Rycyk7Cj4gKwkJaW50 IHJldDsKPiArCj4gKwkJaWYgKCFsZW4pCj4gKwkJCW9wLm5pbnN0cnMtLTsKPiArCj4gKwkJcmV0 ID0gbmFuZF9maWxsX2NvbHVtbl9jeWNsZXMoY2hpcCwgYWRkcnMsIG9mZnNldF9pbl9wYWdlKTsK PiArCQlpZiAocmV0IDwgMCkKPiArCQkJcmV0dXJuIHJldDsKPiArCj4gKwkJYWRkcnNbMl0gPSBw YWdlOwo+ICsJCWFkZHJzWzNdID0gcGFnZSA+PiA4Owo+ICsKPiArCQlpZiAoY2hpcC0+b3B0aW9u cyAmIE5BTkRfUk9XX0FERFJfMykgewo+ICsJCQlhZGRyc1s0XSA9IHBhZ2UgPj4gMTY7Cj4gKwkJ CWluc3Ryc1sxXS5jdHguYWRkci5uYWRkcnMrKzsKPiArCQl9Cj4gKwo+ICsJCXJldHVybiBuYW5k X2V4ZWNfb3AoY2hpcCwgJm9wKTsKPiArCX0KClBsZWFzZSBjcmVhdGUgYSBkZWRpY2F0ZWQgZnVu Y3Rpb24gZm9yIGNvbnRpbnVvdXMgcmVhZHMsIGxldCdzIGF2b2lkCm1lc3Npbmcgd2l0aCB0aGUg cmVndWxhciBwYXRoLgoKSSB3b3VsZCBncmVhdGx5IGFwcHJlY2lhdGUgYWRkaXRpb25hbCBwYXJh bWV0ZXJzIAoKPiAgCXN0cnVjdCBuYW5kX29wX2luc3RyIGluc3Ryc1tdID0gewo+ICAJCU5BTkRf T1BfQ01EKE5BTkRfQ01EX1JFQUQwLCAwKSwKPiAgCQlOQU5EX09QX0FERFIoNCwgYWRkcnMsIDAp LAo+IEBAIC0xMjA2LDYgKzEyMzksMzIgQEAgc3RhdGljIGludCBuYW5kX2xwX2V4ZWNfcmVhZF9w YWdlX29wKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsIHVuc2lnbmVkIGludCBwYWdlLAo+ICAJcmV0 dXJuIG5hbmRfZXhlY19vcChjaGlwLCAmb3ApOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IG5hbmRf ZXhlY19jb250aW51ZV9yZWFkX3BhZ2Vfb3Aoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwKPiArCQkJ CQkgICAgdm9pZCAqYnVmLCB1bnNpZ25lZCBpbnQgbGVuKQo+ICt7Cj4gKwlzdHJ1Y3QgbXRkX2lu Zm8gKm10ZCA9IG5hbmRfdG9fbXRkKGNoaXApOwo+ICsJYm9vbCBjb250aV9yZWFkX2xhc3QgPSBm YWxzZTsKPiArCWNvbnN0IHN0cnVjdCBuYW5kX2ludGVyZmFjZV9jb25maWcgKmNvbmYgPQo+ICsJ CW5hbmRfZ2V0X2ludGVyZmFjZV9jb25maWcoY2hpcCk7Cj4gKwkvKiBTZXQgY29udGlfcmVhZF9s YXN0IHRydWUgYmVmb3JlIHRoZSBsYXN0IGFsaWduZWQgcGFnZSByZWFkaW5nICovCj4gKwlpZiAo Y2hpcC0+b3BzLmNvbnRpX3JlYWRsZW4gPj0gbXRkLT53cml0ZXNpemUgJiYgY2hpcC0+b3BzLmNv bnRpX3JlYWRsZW4gPCAyKm10ZC0+d3JpdGVzaXplKQo+ICsJCWNvbnRpX3JlYWRfbGFzdCA9IHRy dWU7Cj4gKwlzdHJ1Y3QgbmFuZF9vcF9pbnN0ciBpbnN0cnNbXSA9IHsKPiArCQlOQU5EX09QX0NN RChjb250aV9yZWFkX2xhc3Q/TkFORF9DTURfUkVBRExBU1Q6TkFORF9DTURfUkVBRENPTlRJLAo+ ICsJCQkJCSAgICBOQU5EX0NPTU1PTl9USU1JTkdfTlMoY29uZiwgdFdCX21heCkpLAoKUGxlYXNl IHJ1biBjaGVja3BhdGNoLnBsIGFuZCBmaXggdGhlIHN0eWxlLgoKPiArCQlOQU5EX09QX1dBSVRf UkRZKE5BTkRfQ09NTU9OX1RJTUlOR19NUyhjb25mLCB0UkNCU1lfbWluKSwKPiArCQkJCSBOQU5E X0NPTU1PTl9USU1JTkdfTlMoY29uZiwgdFJSX21pbikpLAo+ICsJCU5BTkRfT1BfREFUQV9JTihs ZW4sIGJ1ZiwgMCksCj4gKwl9Owo+ICsJc3RydWN0IG5hbmRfb3BlcmF0aW9uIG9wID0gTkFORF9P UEVSQVRJT04oY2hpcC0+Y3VyX2NzLCBpbnN0cnMpOwo+ICsKPiArCS8qIERyb3AgdGhlIERBVEFf SU4gaW5zdHJ1Y3Rpb24gaWYgbGVuIGlzIHNldCB0byAwLiAqLwo+ICsJaWYgKCFsZW4pCj4gKwkJ b3Aubmluc3Rycy0tOwo+ICsKPiArCXJldHVybiBuYW5kX2V4ZWNfb3AoY2hpcCwgJm9wKTsKPiAr fQo+ICsKPiAgLyoqCj4gICAqIG5hbmRfcmVhZF9wYWdlX29wIC0gRG8gYSBSRUFEIFBBR0Ugb3Bl cmF0aW9uCj4gICAqIEBjaGlwOiBUaGUgTkFORCBjaGlwCj4gQEAgLTEyMzEsMTAgKzEyOTAsMTUg QEAgaW50IG5hbmRfcmVhZF9wYWdlX29wKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsIHVuc2lnbmVk IGludCBwYWdlLAo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAKPiAgCWlmIChuYW5kX2hhc19leGVj X29wKGNoaXApKSB7Cj4gLQkJaWYgKG10ZC0+d3JpdGVzaXplID4gNTEyKQo+IC0JCQlyZXR1cm4g bmFuZF9scF9leGVjX3JlYWRfcGFnZV9vcChjaGlwLCBwYWdlLAo+IC0JCQkJCQkJIG9mZnNldF9p bl9wYWdlLCBidWYsCj4gLQkJCQkJCQkgbGVuKTsKPiArCQlpZiAobXRkLT53cml0ZXNpemUgPiA1 MTIpIHsKPiArCQkJLyogU2VsZWN0aW5nIHJlYWQgY29tbWFuZCBzZXF1ZW5jZSAgKi8KPiArCQkJ aWYgKCFjaGlwLT5vcHMuY29udGlfcmVhZF9maXJzdF9wYWdlICYmIGNoaXAtPm9wcy5jb250aV9y ZWFkX3JlcXVpcmUpCj4gKwkJCQlyZXR1cm4gbmFuZF9leGVjX2NvbnRpbnVlX3JlYWRfcGFnZV9v cChjaGlwLCBidWYsIGxlbik7Cj4gKwkJCWVsc2UKPiArCQkJCXJldHVybiBuYW5kX2xwX2V4ZWNf cmVhZF9wYWdlX29wKGNoaXAsIHBhZ2UsCj4gKwkJCQkJCQkJIG9mZnNldF9pbl9wYWdlLCBidWYs Cj4gKwkJCQkJCQkJIGxlbik7Cj4gKwkJfQoKRVogTkFORCBkbyBub3Qgc3VwcG9ydCBzZXF1ZW50 aWFsIGNhY2hlIHJlYWRzLCBwbGVhc2UgYWRkIHRoZSBuZWNlc3NhcnkKZmxhZ3MgdG8gYXZvaWQg dHJ5aW5nIGNvbnRpbnVvdXMgcmVhZHMgb24gdGhlbS4KCkFsc28sIGFzIHNhaWQgYWJvdmUsIEkg d291bGQgY3JlYXRlIGFuIGVudGlyZWx5IG5ldyBoZWxwZXIgbGlrZSB0aGlzOgoKbmFuZF9scF9l eGVjX2NvbnRfcmVhZF9wYWdlX29wKGNoaXAsIHBhZ2UsIGJ1ZiwgbGVuKQp7CglpZiAoY2hpcC0+ Y29udF9yZWFkX2ZpcnN0X3BhZ2UgPT0gcGFnZSkKCQlzdGFydF9jb250aW51b3VzX3JlYWQoKTsK CWVsc2UgaWYgKGNoaXAtPmNvbnRfcmVhZF9sYXN0X3BhZ2UgPT0gcGFnZSkKCQllbmRfY29udGlu dW91c19yZWFkKCk7CgllbHNlCgkJY29udGludW91c19yZWFkKCk7Cn0KCj4gIAo+ICAJCXJldHVy biBuYW5kX3NwX2V4ZWNfcmVhZF9wYWdlX29wKGNoaXAsIHBhZ2UsIG9mZnNldF9pbl9wYWdlLAo+ ICAJCQkJCQkgYnVmLCBsZW4pOwo+IEBAIC0zMzYyLDcgKzM0MjYsNiBAQCBzdGF0aWMgaW50IG5h bmRfZG9fcmVhZF9vcHMoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgbG9mZl90IGZyb20sCj4gIAo+ ICAJCWJ5dGVzID0gbWluKG10ZC0+d3JpdGVzaXplIC0gY29sLCByZWFkbGVuKTsKPiAgCQlhbGln bmVkID0gKGJ5dGVzID09IG10ZC0+d3JpdGVzaXplKTsKPiAtCgpVbnJlbGF0ZWQgY2hhbmdlLCBw bGVhc2UgZHJvcAoKPiAgCQlpZiAoIWFsaWduZWQpCj4gIAkJCXVzZV9ib3VuY2VfYnVmID0gMTsK PiAgCQllbHNlIGlmIChjaGlwLT5vcHRpb25zICYgTkFORF9VU0VTX0RNQSkKPiBAQCAtMzM4MSw2 ICszNDQ0LDI1IEBAIHN0YXRpYyBpbnQgbmFuZF9kb19yZWFkX29wcyhzdHJ1Y3QgbmFuZF9jaGlw ICpjaGlwLCBsb2ZmX3QgZnJvbSwKPiAgCQkJCQkJIF9fZnVuY19fLCBidWYpOwo+ICAKPiAgcmVh ZF9yZXRyeToKCkkgYmVsaWV2ZSByZWFkIHJldHJpZXMgY2Fubm90IGJlIHVzZWQgd2l0aCBzZXF1 ZW50aWFsIGNhY2hlIHJlYWRzLApiZWNhdXNlIHRoZSB3aG9sZSBwb2ludCBvZiByZXRyaWVzIGlz IHRvIHJlYWQgZnJvbSB0aGUgTkFORCBhcnJheSBpbnRvCmNhY2hlIGFnYWluLCB3aGljaCBpcyBl eGFjdGx5IHdoYXQgd2UgYXJlIHRyeWluZyB0byBhdm9pZC4gQW0gSSByaWdodD8KSWYgeWVzLCB0 aGVuIHdlIHNob3VsZCBkaXNhYmxlIGNvbnRpbnVvdXMgcmVhZHMgd2hlbiBhIHJldHJ5IGlzCnJl cXVpcmVkLgoKPiArCQkJLyoKPiArCQkJICogUmVhZCBjYWNoZSBzZXF1ZW50aWFsIGNvbW1hbmQg Y2FuIGJlIHNlcGFyYXRlIDMgcGFydHMuCj4gKwkJCSAqIEZvciBkaXN0aW5ndWlzaGluZyB0aGF0 IGZsYXNoIGRyaXZlciBzZXQgdmFsdWUgdG8KPiArCQkJICogY29udGlfcmVhZF9maXJzdF9wYWdl IGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBmaXJzdCBwYWdlCj4gKwkJCSAqIGFuZCBzZXQgY29u dGlfcmVhZF9yZXF1aXJlIHRvIHNlbGVjdCBjb21tYW5kIHNlcXVlbmNlLgo+ICsJCQkgKiBBbmQg dGFrZSByZWFkbGVuIHRvIGNvbnRpX3JlYWRsZW4gZm9yIGNoZWNraW5nIHdoZXRoZXIgdGhlCj4g KwkJCSAqIGxhc3QgcGFnZSBvciBub3QuCgpNYXliZSB5b3UgY291bGQgdXNlIHRoZSByZXdvcmRl ZCBjb21taXQgbG9nIEkgcHJvcG9zZWQgdG8gZXhwbGFpbiB0aGUKZGlmZmVyZW50IGNhc2VzLgoK PiArCQkJICovCj4gKwkJCWlmICghY29sICYmIHJlYWRsZW4gPj0gKDIqbXRkLT53cml0ZXNpemUp KSB7Cj4gKwkJCQlpZiAoY2hpcC0+b3BzLmNvbnRpX3JlYWRfcmVxdWlyZSA9PSAwKQo+ICsJCQkJ CWNoaXAtPm9wcy5jb250aV9yZWFkX2ZpcnN0X3BhZ2UgPSAxOwo+ICsJCQkJZWxzZQo+ICsJCQkJ CWNoaXAtPm9wcy5jb250aV9yZWFkX2ZpcnN0X3BhZ2UgPSAwOwo+ICsJCQkJY2hpcC0+b3BzLmNv bnRpX3JlYWRfcmVxdWlyZSA9IDE7Cj4gKwkJCQljaGlwLT5vcHMuY29udGlfcmVhZGxlbiA9IHJl YWRsZW47Cj4gKwkJCX0gZWxzZSBpZiAoY2hpcC0+b3BzLmNvbnRpX3JlYWRfcmVxdWlyZSkgewo+ ICsJCQkJY2hpcC0+b3BzLmNvbnRpX3JlYWRfZmlyc3RfcGFnZSA9IDA7Cj4gKwkJCQljaGlwLT5v cHMuY29udGlfcmVhZGxlbiA9IHJlYWRsZW47Cj4gKwkJCX0KCkkgd291bGQgY3JlYXRlIGEgaGVs cGVyIGZvciB0aGF0LgoKSXQgc2hvdWxkIGxvb2sgYXQgdGhlIGVudGlyZSBvcGVyYXRpb24gYW5k IGp1c3Qgc2V0IGEgbnVtYmVyIG9mCnZhcmlhYmxlcyBzdG9yZWQgaW50byBzdHJ1Y3QgbmFuZF9j aGlwIChldmVuIHRob3VnaCBJJ20gbm90IGEgYmlnIGZhbgpvZiB0aGUgaWRlYSwgSSBkb24ndCBz ZWUgaG93IHRvIGRvIGl0IGRpZmZlcmVudGx5KS4gVGhlIGZlYXR1cmUgc2hvdWxkCmJlIGRpc2Fi bGVkIGlmIHRoZXkgY2Fubm90IGJlIGZ1bGx5IHVzZWQsIGxldCdzIHN1cHBvcnQgdGhlIHNpbXBs ZXN0CmNhc2VzIG9ubHkuIEkgd291bGQgbGlrZSB0byBzZWUgYSBzaW5nbGUgcGFyYW1ldGVyIHdo aWNoIHRlbGxzIHRoZSBjb3JlOgp1c2Ugb3IgZG8gbm90IHVzZSBjb250aW51b3VzIHJlYWQgb24g dGhpcyBvcGVyYXRpb24uIFRoZW4sIEkgd291bGQKcHJlZmVyIHN0b3JpbmcgZWcuIHRoZSBhZGRy ZXNzIG9mIHRoZSBmaXJzdCBhbmQgbGFzdCBwYWdlcyB0byByZWFkIHNvCnRoYXQgYSBkdW1iIHJl YWQgaGVscGVyIChsaWtlIGFib3ZlKSBjYW4ganVzdCBsb29rIGF0IHRoZSBwYWdlIGFkZHJlc3MK YW5kIHBlcmZvcm0gdGhlIHJpZ2h0IGNhbGwuCgo+ICAJCQkvKgo+ICAJCQkgKiBOb3cgcmVhZCB0 aGUgcGFnZSBpbnRvIHRoZSBidWZmZXIuICBBYnNlbnQgYW4gZXJyb3IsCj4gIAkJCSAqIHRoZSBy ZWFkIG1ldGhvZHMgcmV0dXJuIG1heCBiaXRmbGlwcyBwZXIgZWNjIHN0ZXAuCj4gQEAgLTM0Njgs NiArMzU1MCwxMCBAQCBzdGF0aWMgaW50IG5hbmRfZG9fcmVhZF9vcHMoc3RydWN0IG5hbmRfY2hp cCAqY2hpcCwgbG9mZl90IGZyb20sCj4gIAkJCXJldHJ5X21vZGUgPSAwOwo+ICAJCX0KPiAgCj4g KwkJLyogc2V0IGNvbnRpX3JlYWRfcmVxdWlyZSAwIHdoZW4gZmluaXNoIHRoZSBsYXN0IGFsaWdu ZWQgcGFnZSByZWFkICovCj4gKwkJaWYgKHJlYWRsZW4gPCBtdGQtPndyaXRlc2l6ZSkKPiArCQkJ Y2hpcC0+b3BzLmNvbnRpX3JlYWRfcmVxdWlyZSA9IDA7Cj4gKwo+ICAJCWlmICghcmVhZGxlbikK PiAgCQkJYnJlYWs7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5k X3RpbWluZ3MuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfdGltaW5ncy5jCj4gaW5kZXgg N2I0MWFmYzM3MmQyLi5jZWM1ZDllNTI2ZmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tdGQvbmFu ZC9yYXcvbmFuZF90aW1pbmdzLmMKPiArKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX3Rp bWluZ3MuYwoKTWF5YmUgdGhlIHRpbWluZyBhZGRpdGlvbnMgY2FuIGJlIGRvbmUgaW4gYSBzZXBh cmF0ZWQgcGF0Y2guCgo+IEBAIC0yNyw2ICsyNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmFu ZF9pbnRlcmZhY2VfY29uZmlnIG9uZmlfc2RyX3RpbWluZ3NbXSA9IHsKPiAgCQkudGltaW5ncy5z ZHIgPSB7Cj4gIAkJCS50Q0NTX21pbiA9IDUwMDAwMCwKPiAgCQkJLnRSX21heCA9IDIwMDAwMDAw MCwKPiArCQkJLnRSQ0JTWV9taW4gPSA0MDAwMDAwMCwKPiAgCQkJLnRQUk9HX21heCA9IDEwMDAw MDBVTEwgKiBPTkZJX0RZTl9USU1JTkdfTUFYLAo+ICAJCQkudEJFUlNfbWF4ID0gMTAwMDAwMFVM TCAqIE9ORklfRFlOX1RJTUlOR19NQVgsCj4gIAkJCS50QURMX21pbiA9IDQwMDAwMCwKPiBAQCAt NzIsNiArNzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5hbmRfaW50ZXJmYWNlX2NvbmZpZyBv bmZpX3Nkcl90aW1pbmdzW10gPSB7Cj4gIAkJLnRpbWluZ3Muc2RyID0gewo+ICAJCQkudENDU19t aW4gPSA1MDAwMDAsCj4gIAkJCS50Ul9tYXggPSAyMDAwMDAwMDAsCj4gKwkJCS50UkNCU1lfbWlu ID0gNDAwMDAwMDAsCj4gIAkJCS50UFJPR19tYXggPSAxMDAwMDAwVUxMICogT05GSV9EWU5fVElN SU5HX01BWCwKPiAgCQkJLnRCRVJTX21heCA9IDEwMDAwMDBVTEwgKiBPTkZJX0RZTl9USU1JTkdf TUFYLAo+ICAJCQkudEFETF9taW4gPSA0MDAwMDAsCj4gQEAgLTExNyw2ICsxMTksNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IG5hbmRfaW50ZXJmYWNlX2NvbmZpZyBvbmZpX3Nkcl90aW1pbmdzW10g PSB7Cj4gIAkJLnRpbWluZ3Muc2RyID0gewo+ICAJCQkudENDU19taW4gPSA1MDAwMDAsCj4gIAkJ CS50Ul9tYXggPSAyMDAwMDAwMDAsCj4gKwkJCS50UkNCU1lfbWluID0gNDAwMDAwMDAsCj4gIAkJ CS50UFJPR19tYXggPSAxMDAwMDAwVUxMICogT05GSV9EWU5fVElNSU5HX01BWCwKPiAgCQkJLnRC RVJTX21heCA9IDEwMDAwMDBVTEwgKiBPTkZJX0RZTl9USU1JTkdfTUFYLAo+ICAJCQkudEFETF9t aW4gPSA0MDAwMDAsCj4gQEAgLTE2Miw2ICsxNjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5h bmRfaW50ZXJmYWNlX2NvbmZpZyBvbmZpX3Nkcl90aW1pbmdzW10gPSB7Cj4gIAkJLnRpbWluZ3Mu c2RyID0gewo+ICAJCQkudENDU19taW4gPSA1MDAwMDAsCj4gIAkJCS50Ul9tYXggPSAyMDAwMDAw MDAsCj4gKwkJCS50UkNCU1lfbWluID0gNDAwMDAwMDAsCj4gIAkJCS50UFJPR19tYXggPSAxMDAw MDAwVUxMICogT05GSV9EWU5fVElNSU5HX01BWCwKPiAgCQkJLnRCRVJTX21heCA9IDEwMDAwMDBV TEwgKiBPTkZJX0RZTl9USU1JTkdfTUFYLAo+ICAJCQkudEFETF9taW4gPSA0MDAwMDAsCj4gQEAg LTIwNyw2ICsyMTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5hbmRfaW50ZXJmYWNlX2NvbmZp ZyBvbmZpX3Nkcl90aW1pbmdzW10gPSB7Cj4gIAkJLnRpbWluZ3Muc2RyID0gewo+ICAJCQkudEND U19taW4gPSA1MDAwMDAsCj4gIAkJCS50Ul9tYXggPSAyMDAwMDAwMDAsCj4gKwkJCS50UkNCU1lf bWluID0gNDAwMDAwMDAsCj4gIAkJCS50UFJPR19tYXggPSAxMDAwMDAwVUxMICogT05GSV9EWU5f VElNSU5HX01BWCwKPiAgCQkJLnRCRVJTX21heCA9IDEwMDAwMDBVTEwgKiBPTkZJX0RZTl9USU1J TkdfTUFYLAo+ICAJCQkudEFETF9taW4gPSA0MDAwMDAsCj4gQEAgLTI1Miw2ICsyNTcsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IG5hbmRfaW50ZXJmYWNlX2NvbmZpZyBvbmZpX3Nkcl90aW1pbmdz W10gPSB7Cj4gIAkJLnRpbWluZ3Muc2RyID0gewo+ICAJCQkudENDU19taW4gPSA1MDAwMDAsCj4g IAkJCS50Ul9tYXggPSAyMDAwMDAwMDAsCj4gKwkJCS50UkNCU1lfbWluID0gNDAwMDAwMDAsCj4g IAkJCS50UFJPR19tYXggPSAxMDAwMDAwVUxMICogT05GSV9EWU5fVElNSU5HX01BWCwKPiAgCQkJ LnRCRVJTX21heCA9IDEwMDAwMDBVTEwgKiBPTkZJX0RZTl9USU1JTkdfTUFYLAo+ICAJCQkudEFE TF9taW4gPSA0MDAwMDAsCj4gQEAgLTMwMCw2ICszMDYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IG5hbmRfaW50ZXJmYWNlX2NvbmZpZyBvbmZpX252ZGRyX3RpbWluZ3NbXSA9IHsKPiAgCQkudGlt aW5ncy5udmRkciA9IHsKPiAgCQkJLnRDQ1NfbWluID0gNTAwMDAwLAo+ICAJCQkudFJfbWF4ID0g MjAwMDAwMDAwLAo+ICsJCQkudFJDQlNZX21pbiA9IDQwMDAwMDAwLAo+ICAJCQkudFBST0dfbWF4 ID0gMTAwMDAwMFVMTCAqIE9ORklfRFlOX1RJTUlOR19NQVgsCj4gIAkJCS50QkVSU19tYXggPSAx MDAwMDAwVUxMICogT05GSV9EWU5fVElNSU5HX01BWCwKPiAgCQkJLnRBQ19taW4gPSAzMDAwLAo+ IEBAIC0zNDIsNiArMzQ5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuYW5kX2ludGVyZmFjZV9j b25maWcgb25maV9udmRkcl90aW1pbmdzW10gPSB7Cj4gIAkJLnRpbWluZ3MubnZkZHIgPSB7Cj4g IAkJCS50Q0NTX21pbiA9IDUwMDAwMCwKPiAgCQkJLnRSX21heCA9IDIwMDAwMDAwMCwKPiArCQkJ LnRSQ0JTWV9taW4gPSA0MDAwMDAwMCwKPiAgCQkJLnRQUk9HX21heCA9IDEwMDAwMDBVTEwgKiBP TkZJX0RZTl9USU1JTkdfTUFYLAo+ICAJCQkudEJFUlNfbWF4ID0gMTAwMDAwMFVMTCAqIE9ORklf RFlOX1RJTUlOR19NQVgsCj4gIAkJCS50QUNfbWluID0gMzAwMCwKPiBAQCAtMzg0LDYgKzM5Miw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmFuZF9pbnRlcmZhY2VfY29uZmlnIG9uZmlfbnZkZHJf dGltaW5nc1tdID0gewo+ICAJCS50aW1pbmdzLm52ZGRyID0gewo+ICAJCQkudENDU19taW4gPSA1 MDAwMDAsCj4gIAkJCS50Ul9tYXggPSAyMDAwMDAwMDAsCj4gKwkJCS50UkNCU1lfbWluID0gNDAw MDAwMDAsCj4gIAkJCS50UFJPR19tYXggPSAxMDAwMDAwVUxMICogT05GSV9EWU5fVElNSU5HX01B WCwKPiAgCQkJLnRCRVJTX21heCA9IDEwMDAwMDBVTEwgKiBPTkZJX0RZTl9USU1JTkdfTUFYLAo+ ICAJCQkudEFDX21pbiA9IDMwMDAsCj4gQEAgLTQyNiw2ICs0MzUsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IG5hbmRfaW50ZXJmYWNlX2NvbmZpZyBvbmZpX252ZGRyX3RpbWluZ3NbXSA9IHsKPiAg CQkudGltaW5ncy5udmRkciA9IHsKPiAgCQkJLnRDQ1NfbWluID0gNTAwMDAwLAo+ICAJCQkudFJf bWF4ID0gMjAwMDAwMDAwLAo+ICsJCQkudFJDQlNZX21pbiA9IDQwMDAwMDAwLAo+ICAJCQkudFBS T0dfbWF4ID0gMTAwMDAwMFVMTCAqIE9ORklfRFlOX1RJTUlOR19NQVgsCj4gIAkJCS50QkVSU19t YXggPSAxMDAwMDAwVUxMICogT05GSV9EWU5fVElNSU5HX01BWCwKPiAgCQkJLnRBQ19taW4gPSAz MDAwLAo+IEBAIC00NjgsNiArNDc4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuYW5kX2ludGVy ZmFjZV9jb25maWcgb25maV9udmRkcl90aW1pbmdzW10gPSB7Cj4gIAkJLnRpbWluZ3MubnZkZHIg PSB7Cj4gIAkJCS50Q0NTX21pbiA9IDUwMDAwMCwKPiAgCQkJLnRSX21heCA9IDIwMDAwMDAwMCwK PiArCQkJLnRSQ0JTWV9taW4gPSA0MDAwMDAwMCwKPiAgCQkJLnRQUk9HX21heCA9IDEwMDAwMDBV TEwgKiBPTkZJX0RZTl9USU1JTkdfTUFYLAo+ICAJCQkudEJFUlNfbWF4ID0gMTAwMDAwMFVMTCAq IE9ORklfRFlOX1RJTUlOR19NQVgsCj4gIAkJCS50QUNfbWluID0gMzAwMCwKPiBAQCAtNTEwLDYg KzUyMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmFuZF9pbnRlcmZhY2VfY29uZmlnIG9uZmlf bnZkZHJfdGltaW5nc1tdID0gewo+ICAJCS50aW1pbmdzLm52ZGRyID0gewo+ICAJCQkudENDU19t aW4gPSA1MDAwMDAsCj4gIAkJCS50Ul9tYXggPSAyMDAwMDAwMDAsCj4gKwkJCS50UkNCU1lfbWlu ID0gNDAwMDAwMDAsCj4gIAkJCS50UFJPR19tYXggPSAxMDAwMDAwVUxMICogT05GSV9EWU5fVElN SU5HX01BWCwKPiAgCQkJLnRCRVJTX21heCA9IDEwMDAwMDBVTEwgKiBPTkZJX0RZTl9USU1JTkdf TUFYLAo+ICAJCQkudEFDX21pbiA9IDMwMDAsCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv bXRkL3Jhd25hbmQuaCBiL2luY2x1ZGUvbGludXgvbXRkL3Jhd25hbmQuaAo+IGluZGV4IGIyZjlk ZDNjYmQ2OS4uNDlmMTI0OWJhODUyIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvbXRkL3Jh d25hbmQuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvbXRkL3Jhd25hbmQuaAo+IEBAIC02Nyw2ICs2 Nyw4IEBAIHN0cnVjdCBncGlvX2Rlc2M7Cj4gIAo+ICAvKiBFeHRlbmRlZCBjb21tYW5kcyBmb3Ig bGFyZ2UgcGFnZSBkZXZpY2VzICovCj4gICNkZWZpbmUgTkFORF9DTURfUkVBRFNUQVJUCTB4MzAK PiArI2RlZmluZSBOQU5EX0NNRF9SRUFEQ09OVEkgICAgIDB4MzEKPiArI2RlZmluZSBOQU5EX0NN RF9SRUFETEFTVCAgICAgIDB4M2YKPiAgI2RlZmluZSBOQU5EX0NNRF9STkRPVVRTVEFSVAkweEUw Cj4gICNkZWZpbmUgTkFORF9DTURfQ0FDSEVEUFJPRwkweDE1Cj4gIAo+IEBAIC00MzYsNiArNDM4 LDcgQEAgc3RydWN0IG5hbmRfc2RyX3RpbWluZ3Mgewo+ICAJdTMyIHRDQ1NfbWluOwo+ICAJdTY0 IHRQUk9HX21heDsKPiAgCXU2NCB0Ul9tYXg7Cj4gKwl1NjQgdFJDQlNZX21pbjsKPiAgCXUzMiB0 QUxIX21pbjsKPiAgCXUzMiB0QURMX21pbjsKPiAgCXUzMiB0QUxTX21pbjsKPiBAQCAtNTI1LDYg KzUyOCw3IEBAIHN0cnVjdCBuYW5kX252ZGRyX3RpbWluZ3Mgewo+ICAJdTMyIHRDQ1NfbWluOwo+ ICAJdTY0IHRQUk9HX21heDsKPiAgCXU2NCB0Ul9tYXg7Cj4gKwl1NjQgdFJDQlNZX21pbjsKPiAg CXUzMiB0QUNfbWluOwo+ICAJdTMyIHRBQ19tYXg7Cj4gIAl1MzIgdEFETF9taW47Cj4gQEAgLTEx NzMsNiArMTE3Nyw5IEBAIHN0cnVjdCBuYW5kX2NoaXBfb3BzIHsKPiAgCWludCAoKnNldHVwX3Jl YWRfcmV0cnkpKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsIGludCByZXRyeV9tb2RlKTsKPiAgCWlu dCAoKmNob29zZV9pbnRlcmZhY2VfY29uZmlnKShzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLAo+ICAJ CQkJICAgICAgIHN0cnVjdCBuYW5kX2ludGVyZmFjZV9jb25maWcgKmlmYWNlKTsKPiArCWJvb2wg Y29udGlfcmVhZF9yZXF1aXJlOwo+ICsJYm9vbCBjb250aV9yZWFkX2ZpcnN0X3BhZ2U7Cj4gKwlp bnQgY29udGlfcmVhZGxlbjsKCkkgd291bGQgcmF0aGVyIHByZWZlciB0aGUgY29udF8gcHJlZml4 IHJhdGhlciB0aGFuIGNvbnRpXy4KCkFuZCB3aHkgZG8gd2UgaGF2ZSB0aGVzZSBpbmZvcm1hdGlv biB1bmRlciAibmFuZF9jaGlwX29wcyIgcmF0aGVyIHRoYW4KbmFuZF9jaGlwPwoKVGhhbmtzLApN aXF1w6hsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo=