From mboxrd@z Thu Jan 1 00:00:00 1970 From: "james qian wang (Arm Technology China)" Subject: Re: [PATCH] drm/komeda: Adds VRR support Date: Fri, 5 Jul 2019 12:40:03 +0000 Message-ID: <20190705123955.GA17590@jamwan02-TSP300> References: <1562138723-29546-1-git-send-email-lowry.li@arm.com> <20190703100149.GF15868@phenom.ffwll.local> <20190704105653.GB9747@jamwan02-TSP300> <20190704154136.gib3puo7dzivnasu@DESKTOP-E1NTVVP.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50071.outbound.protection.outlook.com [40.107.5.71]) by gabe.freedesktop.org (Postfix) with ESMTPS id DF2A96E102 for ; Fri, 5 Jul 2019 12:40:05 +0000 (UTC) In-Reply-To: Content-Language: en-US Content-ID: <7C0BD6DBE1C0A84FA0AEF301BB241E52@eurprd08.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: nd , "airlied@linux.ie" , "Jonathan Chai (Arm Technology China)" , Liviu Dudau , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "Julien Yin (Arm Technology China)" , "seanpaul@chromium.org" , "Lowry Li (Arm Technology China)" , Ayan Halder List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBKdWwgMDUsIDIwMTkgYXQgMDk6MjM6MjBBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIEp1bCA0LCAyMDE5IGF0IDU6NDEgUE0gQnJpYW4gU3RhcmtleSA8QnJp YW4uU3RhcmtleUBhcm0uY29tPiB3cm90ZToKPiA+Cj4gPiBIaSwKPiA+Cj4gPiBPbiBUaHUsIEp1 bCAwNCwgMjAxOSBhdCAxMTo1NzowMEFNICswMTAwLCBqYW1lcyBxaWFuIHdhbmcgKEFybSBUZWNo bm9sb2d5IENoaW5hKSB3cm90ZToKPiA+ID4gT24gV2VkLCBKdWwgMDMsIDIwMTkgYXQgMTI6MDE6 NDlQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ID4gPgo+ID4gPiA+IFVoLCB3aGF0 IGV4YWN0bHkgYXJlIHlvdSBkb2luZyByZWludmVudGluZyB1YXBpIHByb3BlcnRpZXMgdGhhdCB3 ZSBhbHJlYWR5Cj4gPiA+ID4gc3RhbmRhcmRpemVkPwo+ID4gPiA+Cj4gPiA+Cj4gPiA+IFNvcnJ5 LCBXaWxsIHVzZSB0aGUgbW9kZV9jb25maWctPlZSUl9FTkFCTEVECj4gPgo+ID4gTGV0J3MgaGF2 ZSBhIGNoYXQgYWJvdXQgd2hhdCB5b3UncmUgcGxhbm5pbmcgaGVyZS4gVGhlIHVwc3RyZWFtIFZS Ugo+ID4gcHJvcGVydGllcyBhcmVuJ3QgYSBkaXJlY3QgbWF0Y2ggZm9yIG91ciBIVyAod2hpY2gg d2UgZGlzY3Vzc2VkCj4gPiBiZWZvcmUpIC0gc28gZWl0aGVyIHdlIG5lZWQgdG8gaGlkZSB0aGF0 IGluIHRoZSBrZXJuZWwgd2l0aCBzb21lIGZyYW1lCj4gPiB0aW1pbmcgaGV1cmlzdGljcywgb3Ig d2Ugc2hvdWxkbid0IGV4cG9zZSBvdXIgZmVhdHVyZSB2aWEgdGhlIGV4aXN0aW5nCj4gPiBwcm9w ZXJ0aWVzLgo+ID4KPiA+IElNTywgaXQncyBiZXR0ZXIgZm9yIEtvbWVkYSB0byBqdXN0IGFsbG93 IHNldHRpbmcgYSBuZXcgQ1JUQyBtb2RlIHRvCj4gPiBvbmUgd2l0aCBhIGRpZmZlcmVudCBWRlAg KGJ1dCBldmVyeXRoaW5nIGVsc2UgdGhlIHNhbWUpIHdpdGhvdXQgYSBmdWxsCj4gPiBtb2Rlc2V0 Lgo+ID4KPiA+IFlvdSBjb3VsZCB0cnkgYW5kIGltcGxlbWVudCB0aGUgdXBzdHJlYW0gVlJSIHBy b3BlcnRpZXMgdG9vIC0gYnV0IHlvdQo+ID4gY2FuIGdldCB0aGUgZnVuY3Rpb25hbGl0eSBhZGRl ZCBieSB0aGlzIHBhdGNoIHdpdGhvdXQgY2hhbmdpbmcgYW55Cj4gPiBVQVBJLgo+ID4KPiA+IChO b3RlIHRoZSBvbmx5IHJlYXNvbiB3ZSBldmVyIGFkZGVkIHRoZSBpZGVhIG9mIHBhc3NpbmcgaW4g VkZQIGJ5Cj4gPiBpdHNlbGYgaXMgYmVjYXVzZSBpbiBBREYsIG1vZGVzZXQgd2FzIGEgc2VwYXJh dGUgaW9jdGwgZW50aXJlbHksIHNvIHdlCj4gPiBjb3VsZG4ndCBkbyBpdCBhdG9taWNhbGx5KQo+ IAo+IElmIHlvdSB3YW50IHRvIHNlZSBhbiBleGFtcGxlIG9mIGhvdyB0byBkbyBjaGFuZ2VzIGlu IHRoZSBkaXNwbGF5IG1vZGUKPiAobGlrZSByZWZyZXNoIHJhdGUsIEkgaGF2ZSBubyBpZGVhIHdo YXQgeW91IG1lYW4gd2l0aCBWRlAsIGp1c3QKPiBndWVzc2luZykgbG9vayBhdCBpOTE1LiBXZSBj bGVhciBkcm1fY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkIGlmIGl0J3MKPiBhIG1vZGUgY2hhbmdl IHdlIGNhbiBoYW5kbGUgd2l0aG91dCBhIGZ1bGwgbW9kZXNldC4gVGhhdCBnaXZlcyB5b3UKPiB1 c2Vyc3BhY2UtY29udHJvbGxlZCB2YXJpYWJsZSByZWZyZXNoIHJhdGUuCj4gCj4gVGhlIFZSUiBw cm9wZXJ0aWVzIGFyZSBmb3IgdHJ1ZSBWUlIsIGkuZS4gdGhlIGh3ICh3aXRoIG9yIHdpdGhvdXQg aGVscAo+IG9mIHRoZSBrZXJuZWwpIGRlY2lkZXMgaG93IGxvbmcgdG8gbWFrZSBlYWNoIHZibGFu ayBmb3IgZXZlcnkgZnJhbWUKPiBpbmRpdmlkdWFsbHksIHdpdGhpbiBjZXJ0YWluIGxpbWl0YXRz IHNldCBieSB0aGUgbW9uaXRvciBpbiBpdHMgRURJRAo+IChvciBmb3IgcGFuZWxzIG1heWJlIGlu IERUKS4KPiAKPiA+ID4gd2UgdXNlIHRoaXMgcHJpdmF0ZSBwcm9wZXJ0eSBiZWNhdXNlIHdlJ3Jl IHN3aXRjaGluZyB0byBpbi10cmVlLCBiZWZvcmUKPiA+ID4gZmluaXNoIHRoZSBzd2l0Y2gsIHdl IHN0aWxsIG5lZWQgdG8gbWFpbnRhaW4gb3VyIG91dC1vZi10cmVlIGRyaXZlciB3aGljaAo+ID4g PiBkZXBlbmQgb24gYSBvbGRlciBhbmQgZG9lc24ndCBoYXZlIHRoZSBWUlJfRU5BQkxFRCBwcm9w ZXJ0eS4gZm9yIGF2b2lkCj4gPiA+IGRpdmVyZ2luZyB0aGUgdHdvIGJyYW5jaC4gbXkgb2xkIHBs YW4gaXMgZmlyc3Qgc3dpdGNoIHRvIGluLXRyZWUsIHRoZW4gZHJvcAo+ID4gPiB0aGUgb3V0LW9m LXRyZWUgZHJpdmVyIGFuZCB0aGVuIHVuaWZ5IHRoZSB1c2FnZS4KPiA+ID4KPiA+ID4gPiA+ICsg aWYgKCFwcm9wKQo+ID4gPiA+ID4gKyAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ID4gPiA+ID4g Kwo+ID4gPiA+ID4gKyBkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZSwgcHJv cCwgMCk7Cj4gPiA+ID4gPiArIGtjcnRjLT52cnJfZW5hYmxlX3Byb3BlcnR5ID0gcHJvcDsKPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ICsgcmV0dXJuIDA7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5lICoKPiA+ID4gPiA+ICBnZXRfY3J0Y19w cmltYXJ5KHN0cnVjdCBrb21lZGFfa21zX2RldiAqa21zLCBzdHJ1Y3Qga29tZWRhX2NydGMgKmNy dGMpCj4gPiA+ID4gPiAgewo+ID4gPiA+ID4gQEAgLTY1OSw2ICs3MTcsMTAgQEAgc3RhdGljIGlu dCBrb21lZGFfY3J0Y19hZGQoc3RydWN0IGtvbWVkYV9rbXNfZGV2ICprbXMsCj4gPiA+ID4gPiAg IGlmIChlcnIpCj4gPiA+ID4gPiAgICAgICAgICAgcmV0dXJuIGVycjsKPiA+ID4gPiA+Cj4gPiA+ ID4gPiArIGVyciA9IGtvbWVkYV9jcnRjX2NyZWF0ZV92cnJfcHJvcGVydHkoa2NydGMpOwo+ID4g PiA+ID4gKyBpZiAoZXJyKQo+ID4gPiA+ID4gKyAgICAgICAgIHJldHVybiBlcnI7Cj4gPiA+ID4g PiArCj4gPiA+ID4gPiAgIHJldHVybiBlcnI7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4KPiA+ID4g PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVk YV9rbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5o Cj4gPiA+ID4gPiBpbmRleCBkYzFkNDM2Li5kMGNmODM4IDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmgKPiA+ID4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5oCj4g PiA+ID4gPiBAQCAtOTgsNiArOTgsMTIgQEAgc3RydWN0IGtvbWVkYV9jcnRjIHsKPiA+ID4gPiA+ Cj4gPiA+ID4gPiAgIC8qKiBAc2xhdmVfcGxhbmVzX3Byb3BlcnR5OiBwcm9wZXJ0eSBmb3Igc2xh dmVzIG9mIHRoZSBwbGFuZXMgKi8KPiA+ID4gPiA+ICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqc2xh dmVfcGxhbmVzX3Byb3BlcnR5Owo+ID4gPiA+Cj4gPiA+ID4gQW5kIHRoaXMgc2VlbXMgdG8gbm90 IGJlIHRoZSBmaXJzdCB0aW1lIHRoaXMgaGFwcGVuZWQuIExvb2tpbmcgYXQga29tZWRhCj4gPiA+ ID4gd2l0aCBhIHF1aWNrIGdpdCBncmVwIG9uIHByb3BlcnRpZXMgeW91J3ZlIGFjdHVhbGx5IGFj Y3VtdWxhdGVkIHF1aXRlIGEKPiA+ID4gPiBwaWxlIG9mIHN1Y2ggZHJpdmVyIHByb3BlcnRpZXMg YWxyZWFkeS4gV2hlcmUncyB0aGUgdXNlcnNwYWNlIGZvciB0aGlzPwo+ID4gPiA+IFdoZXJlJ3Mg dGhlIHVhcGkgZGlzY3Vzc2lvbnMgZm9yIHRoaXMgc3R1ZmY/IFdoZXJlJ3MgdGhlIGlndCB0ZXN0 cyBmb3IKPiA+ID4gPiB0aGlzICh5ZXMgYSBidW5jaCBhcmUgYWZ0ZXIgd2UgYWdyZWVkIHRvIGhh dmUgdGVzdGNhc2VzIGZvciB0aGlzKS4KPiA+ID4gPgo+ID4gPiA+IEkga25vdyB0aGF0IGluIHRo ZSBwYXN0IHdlJ3ZlIGJlZW4gc29tZXdoYXQgc2xvcHB5IHByb3BlcnRpZXMsIGJ1dCB0aGF0Cj4g PiA+ID4gd2FzIGEgbWlzdGFrZSBhbmQgd2UndmUgY3JhbmtlZCBkb3duIG9uIHRoaXMgaGFyZC4g UHJvYmFibHkgbmVlZCB0byBmaXgKPiA+ID4gPiB0aGlzIHdpdGggYSBwaWxlIG9mIHJldmVydHMg YW5kIHN0YXJ0IG92ZXIuCj4gPiA+ID4gLURhbmllbAo+ID4gPgo+ID4gPiBTb3JyeSBhZ2Fpbi4K PiA+ID4KPiA+ID4gRmlyc3QgSSdsbCBzZW5kIHNvbWUgcGF0Y2hlcyB0byByZW1vdmUgdGhlc2Ug cHJpdmF0ZSBwcm9wZXJ0aWVzLgo+ID4gPgo+ID4gPiBhbmQgdGhlbiBkaXNjdXNzIGZvciBob3cg dG8gaW1wZWxlbWVudCB0aGVtLgo+ID4gPgo+ID4gPiBUaGUgY3VycmVudCBrb21lZGEgcHJpdmF0 ZXMgYXJlOgo+ID4gPgo+ID4gPiBjcnRjOgo+ID4gPiAgICBjbG9ja19yYXRpbwo+ID4gPiAgICBz bGF2ZV9wbGFuZXMKPiA+ID4KPiA+ID4gcGxhbmU6Cj4gPiA+ICAgIGltZ19lbmhhbmNlbWVudAo+ ID4gPiAgICBsYXllcl9zcGxpdAo+ID4gPgo+ID4gPiBMYXllcl9zcGxpdDogaXQgY2FuIGJlIGRl bGV0ZWQgYW5kIGNvbXB1dGVkIGluIGtlcm5lbC4KPiA+ID4KPiA+ID4gaW1nX2VuaGFuY2VtZW50 Ogo+ID4gPiAgIGl0IGlzIGZvciBpbWFnZSBlbmhhbmNlbWVudCwgY2FuIGJlIHJlbW92ZWQgYW5k IGNvbXB1dGVkIGluIGtlcm5lbC4KPiA+ID4gICBidXQgSSdkIGxpa2UgdG8gaGF2ZSBpdCwgc2lu Y2UgaXQncyBhIHNlcGVyYXRlZCBmdW5jdGlvbiAoTk9UIG9ubHkKPiA+ID4gICBmb3Igc2NhbGlu ZyBvciBZVVYgZm9ybWF0KSwgSSB0aGluayBvbmx5IHVzZXIgY2FuIHJlYWwga25vdyBpZiBuZWVk Cj4gPiA+ICAgdG8gZW5hYmxlIGl0Lgo+ID4gPgo+ID4gPgo+ID4gPiBpbWdfZW5oYW5jZW1lbnQ6 Cj4gPiA+ICAgaXQgaXMgZm9yIGltYWdlIGVuaGFuY2VtZW50LCBjYW4gYmUgcmVtb3ZlZCBhbmQg Y29tcHV0ZWQgaW4ga2VybmVsLgo+ID4gPiAgIGJ1dCBJJ2QgbGlrZSB0byBoYXZlIGl0LCBzaW5j ZSBpdCdzIGEgc2VwZXJhdGVkIGZ1bmN0aW9uIChOT1Qgb25seQo+ID4gPiAgIGZvciBzY2FsaW5n IG9yIFlVViBmb3JtYXQpLCBJIHRoaW5rIG9ubHkgdXNlciBjYW4gcmVhbCBrbm93IGlmIG5lZWQK PiA+ID4gICB0byBlbmFibGUgaXQuCj4gPiA+ICAgSSB0aGluayBtYXliZSB3ZSBjYW4gYWRkIGl0 IENPUkUgYXMgYW4gb3B0aW9uYWwgZHJtX3BsYW5lIHByb3BlcnR5Lgo+ID4KPiA+IEkgcmVhbGx5 IGRvbid0IHRoaW5rIHdlIHNob3VsZCBiZSBleHBvc2luZyB0aGlzLiBJdCdzIHB1cmVseSB0aGVy ZSB0bwo+ID4gaGVscCBpbXByb3ZlIGFuIGltYWdlIGFmdGVyIHNjYWxpbmcgKGVmZmVjdGl2ZWx5 LCBzaGFycGVuaW5nKS4gSXQncwo+ID4gbm90IGEgZ2VuZXJhbCBwdXJwb3NlICJpbWFnZSBlbmhh bmNlciIuIEV4cG9zaW5nIGEgcHJvcGVydHkgd2hpY2ggc2F5cwo+ID4gImltYWdlIGVuaGFuY2Vt ZW50IiBpc24ndCB1c2VmdWwgdG8gYW55IGFwcGxpY2F0aW9uIC0gd2hhdCBraW5kIG9mCj4gPiBl bmhhbmNlbWVudCBpcyBpdCBkb2luZz8KPiA+Cj4gPiA+Cj4gPiA+IGNsb2NrX3JhdGlvOgo+ID4g PiAgIEl0J3MgdGhlIGNsb2NrIHJhdGlvIG9mIChtYWluIGVuZ2luZSBsb2NrL291dHB1dCBwaXhl bCBjbGspIGZvcgo+ID4gPiAgIGtvbWVkYSBIVydzIGRvd25zY2FsaW5nIHJlc3RyaWN0aW9uLCBh cyBiZWxvdzoKPiA+ID4KPiA+ID4gICBENzEgZG93bnNjYWxpbmcgbXVzdCBzYXRpc2Z5IHRoZSBm b2xsb3dpbmcgZXF1YXRpb24KPiA+ID4KPiA+ID4gICBNQ0xLICAgICAgICAgICAgICAgICAgIGhf aW4gKiB2X2luCj4gPiA+ICAtLS0tLS0tID49IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQo+ID4gPiAgUFhMQ0xLICAgICAoaF90b3RhbCAtICgxICsgMiAqIHZf aW4gLyB2X291dCkpICogdl9vdXQKPiA+ID4KPiA+ID4gIEluIG9ubHkgaG9yaXpvbnRhbCBkb3du c2NhbGluZyBzaXR1YXRpb24sIHRoZSByaWdodCBzaWRlIHNob3VsZCBiZQo+ID4gPiAgbXVsdGlw bGllZCBieSAoaF90b3RhbCAtIDMpIC8gKGhfYWN0aXZlIC0gMyksIHRoZW4gZXF1YXRpb24gYmVj b21lcwo+ID4gPgo+ID4gPiAgIE1DTEsgICAgICAgICAgaF9pbgo+ID4gPiAgLS0tLS0tLSA+PSAt LS0tLS0tLS0tLS0tLS0tCj4gPiA+ICAgUFhMQ0xLICAgICAoaF9hY3RpdmUgLSAzKQo+ID4gPgo+ ID4gPiBzbGF2ZV9wbGFuZXM6Cj4gPiA+ICAgaXQncyBub3Qgb25seSBmb3IgdGhlIHpwb3MsIGJ1 dCBtb3N0IGltcG9ydGFudGx5IGZvciBub3RpZnkgdGhlIHVzZXIKPiA+ID4gICB0byBncm91cCB0 aGUgcGxhbmVzIHRvIHR3byByZXNvdXJjZSBzZXRzIChwaXBlbGluZS0wIHJlc291cmNlcyBhbmQg cGlwZWxpbmUxKS4KPiA+ID4gICBQZXIgb3VyIEhXIGRlc2lnbiB0aGUgdHdvIHBpcGVsaW5lcyBj YW4gYmUgZHluYW1pYyBhc3NpZ25lZCB0byBDUlRDCj4gPiA+ICAgYWNjb3JkaW5nIHRvIHRoZSB1 c2FnZS4KPiA+ID4gICAtIGxpa2UgdXNlciBvbmx5IGVuYWJsZSBvbmUgQ1JUQyB3aGljaCBjYW4g dXNlIGFsbCB0d28gcGlwZWxpbmVzCj4gPiA+ICAgICAodHdvIHJlc291cmNlIHJlc291cmNlIHNl dHMpCj4gPiA+ICAgLSBidXQgaWYgZW5hYmxlZCB0d28gQ1JUQ3MsIG9ubHkgb25lIHJlc291cmNl IHNldCBhdmFpbGFibGUgZm9yCj4gPiA+ICAgICBlYWNoIENSVEMuCj4gPiA+Cj4gPiA+IGtvbWVk YSB1c2VyIG5lZWQgdG8ga25vd24gdGhlIGNsb2NrX3JhdGlvIGFuZCBzbGF2ZV9wbGFuZXMsIGJ1 dCBob3cKPiA+ID4gdG8gZXhwb3NlIHRoZW06IHByaXZhdGVfcHJvcGVydHksIHN5c2ZzIG9yIG90 aGVyIHdheXMsIHNlZW1zIHdlIG5lZWQKPiA+ID4gdG8gZGlzc2N1c3MuIDopCj4gPgo+ID4gQERh bmllbCwKPiA+Cj4gPiBUaGVzZSB0d28gYXJlIGEgc3ltcHRvbSBvZiBhIGZ1bmRhbWVudGFsIGlt cGVkYW5jZSBtaXNtYXRjaCBiZXR3ZWVuCj4gPiBob3cgS01TIHdvcmtzIGFuZCBhY3R1YWxseSBt YWtpbmcgb3B0aW1hbCB1c2Ugb2YgSFcgKG9yOiBob3cgQW5kcm9pZAo+ID4gd29ya3MpLgo+ID4K PiA+IEhXQ29tcG9zZXIgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBnb29kIGtub3dsZWRnZSBvZiBob3cg dGhlIHVuZGVybHlpbmcgSFcKPiA+IG9wZXJhdGVzLCBzbyB0aGF0IGl0IGNhbiBlZmZlY3RpdmVs eSBzY2hlZHVsZSBhIHNjZW5lLiAiVEVTVF9PTkxZIHRpbAo+ID4gaXQgd29ya3MiIGlzbid0IGEg dmlhYmxlIHN0cmF0ZWd5LCBhbmQgaXQgYWJzb2x1dGVseSBzaG91bGRuJ3QgYmUKPiA+IG5lZWRl ZCBmb3IgYSBwaWVjZSBvZiBjb2RlIHdoaWNoIGhhcyBiZWVuIHdyaXR0ZW4gX3NwZWNpZmljYWxs eV8gdG8KPiA+IGRyaXZlIGtvbWVkYS4KPiA+Cj4gPiBJdCdzIGFja25vd2xlZGdlZCB0aGF0IEhX LXNwZWNpZmljIHBsYW5uZXJzIG1heSBiZSBuZWVkZWQgZXZlbiBpbgo+ID4gZHJtLWh3Y29tcG9z ZXIsIGFuZCB0aG9zZSBwbGFubmVycyBhcmUgZ29pbmcgdG8gbmVlZCB0byBnZXQgdG9sZCBzb21l Cj4gPiBzdHVmZiBhYm91dCB0aGUgSFcuIFdoZXRoZXIgdGhhdCBpbmZvIHNob3VsZCBnbyB0aHJv dWdoIGF0b21pYwo+ID4gcHJvcGVydGllcyBvciBub3QgaXMgdXAgZm9yIGRlYmF0ZSAoYWRkaW5n IHByb3BlcnRpZXMgd2l0aG91dAo+ID4gZm9sbG93aW5nIHRoZSBydWxlcyBub3R3aXRoc3RhbmRp bmcpLgo+ID4KPiA+IFdoYXQncyBjZXJ0YWluIGlzIHRoYXQgZGVidWdmcyBpcyBub3Qgd29ya2Fi bGUsIGJlY2F1c2UgaXQncyBub3QKPiA+IGF2YWlsYWJsZSBpbiBhIHByb2R1Y3Rpb24gQW5kcm9p ZCBkZXZpY2UgKG5vciBzaG91bGQgaXQgYmUpLgo+ID4KPiA+IEFuZCBvZiBjb3Vyc2UsIHRoZXJl J3Mgcm9vbSBmb3IgbWFraW5nIHRoZSBpbmZvcm1hdGlvbiBtb3JlIGdlbmVyaWMgYXMKPiA+IGZh ciBhcyBwb3NzaWJsZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBtaWdodCBiZSBiZXR0ZXIgY2FuZGlk YXRlcyBmb3IKPiA+IERSTSBVQVBJLgo+IAo+IElmIHlvdSB3cml0ZSBhIHNwZWNpZmljIHVzZXJz cGFjZSwgeW91IGNhbiBqdXN0IGhhcmRjb2RlIGFzc3VtcHRpb25zCj4gYWJvdXQgd2hhdCB0aGUg a2VybmVsL2h3IGNhbi9jYW5ub3QgZG8uIFRoYXQncyBlc3NlbnRpYWxseSB3aGF0IGFsbAo+IHRo ZSBnbCBkcml2ZXJzIGRvIGJldHdlZW4ga2VybmVsL3VzZXJzcGFjZTogVGhleSBqdXN0IGtub3cg d2hhdCB0aGUKPiBvdGhlciBzaWRlIGV4cGVjdHMuCj4gCj4gV3J0IG1ha2luZyB0aGlzIG1vcmUg Z2VuZXJpY2FsbHkgdXNlZnVsIGFzIGhpbnRzOiBJJ3ZlIHNoYXJlZCBhIHBhdGNoCj4gc2VyaWVz IHdpdGggTGl2aXUgYWJvdXQgd2hhdCBJIHRoaW5rIHNob3VsZCBiZSBkb25lIGhlcmUgaW5zdGVh ZDoKPiAKPiBodHRwczovL2NnaXQuZnJlZWRlc2t0b3Aub3JnL35kYW52ZXQvZHJtL2xvZy8/aD1m b3ItbmFzaHBhCgpIaSBEYW5pZWw6CgpJIGFsc28gc2VudCB0d28gbW9yZSBwYXRjaGVzIGJhc2Vk IG9uIHlvdXIgcmVtb3ZhbCBwYXRjaGVzOgoKMS4gZm9yIERpc2FibGUgc2xhdmUgcGlwZWxpbmUg c3VwcG9ydAogICBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMzE1ODYw LwoyLiBDb21wdXRpbmcgbGF5ZXJfc3BsaXQgYW5kIGltYWdlX2VuaGFuY2VyIGludGVybmFsbHkK ICAgaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzMxNTg2MS8KCkNhbiB5 b3UgbWVyZ2UgdGhlbSB0b2dldGhlciB3aXRoIHByb3BlcnRpZXMgcmVtb3ZhbCBwYXRjaGVzLgoK VGhhbmtzCmphbWVzCgo+IENvbW1pdCBtZXNzYWdlIGVhY2ggaGF2ZSBhIGJ1bmNoIG9mIHRob3Vn aHRzLiBCdXQgZnVuZGFtZW50YWxseSBhdG9taWMKPiBpcyBtZWFudCB0byBiZSB1c2VkIHRvZ2V0 aGVyIHdpdGggVEVTVF9PTkxZIGFuZCBmb2xsb3dpbmcgaGludHMgZnJvbQo+IHRoZSBkcml2ZXIu IFNvIGlmIHlvdSBuZXZlciB3YW50IHRvIHVzZSBURVNUX09OTFkgKGl0J3Mgb25seSBuZWVkZWQK PiBmb3IgdHJhbnNpdGlvbnMsIG5vdCBmb3IgZXZlcnkgZnJhbWUpIGluIHlvdXIgc3RhY2ssIHRo ZW4gbGlmZSBpcwo+IGdvaW5nIHRvIGJlIHZlcnkgcGFpbmZ1bCBpbmRlZWQuCj4gLURhbmllbAo+ IAo+ID4gVGhhbmtzLAo+ID4gLUJyaWFuCj4gPgo+ID4gPgo+ID4gPiBUaGFua3MKPiA+ID4gSmFt ZXMKPiA+ID4KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsgLyoqIEB2cnJfcHJvcGVydHk6IHByb3Bl cnR5IGZvciB2YXJpYWJsZSByZWZyZXNoIHJhdGUgKi8KPiA+ID4gPiA+ICsgc3RydWN0IGRybV9w cm9wZXJ0eSAqdnJyX3Byb3BlcnR5Owo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAvKiogQHZycl9l bmFibGVfcHJvcGVydHk6IHByb3BlcnR5IGZvciBlbmFibGUvZGlzYWJsZSB0aGUgdnJyICovCj4g PiA+ID4gPiArIHN0cnVjdCBkcm1fcHJvcGVydHkgKnZycl9lbmFibGVfcHJvcGVydHk7Cj4gPiA+ ID4gPiAgfTsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgLyoqCj4gPiA+ID4gPiBAQCAtMTI2LDYgKzEz MiwxMiBAQCBzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgewo+ID4gPiA+ID4KPiA+ID4gPiA+ICAg LyoqIEBtYXhfc2xhdmVfem9yZGVyOiB0aGUgbWF4aW11bSBvZiBzbGF2ZSB6b3JkZXIgKi8KPiA+ ID4gPiA+ICAgdTMyIG1heF9zbGF2ZV96b3JkZXI7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArIC8q KiBAdmZwOiB0aGUgdmFsdWUgb2YgdmVydGljYWwgZnJvbnQgcG9yY2ggKi8KPiA+ID4gPiA+ICsg dTMyIHZmcDsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsgLyoqIEBlbl92cnI6IGVuYWJsZSBzdGF0 dXMgb2YgdmFyaWFibGUgcmVmcmVzaCByYXRlICovCj4gPiA+ID4gPiArIHU4IGVuX3ZyciA6IDE7 Cj4gPiA+ID4gPiAgfTsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgLyoqIHN0cnVjdCBrb21lZGFfa21z X2RldiAtIGZvciBnYXRoZXIgS01TIHJlbGF0ZWQgdGhpbmdzICovCj4gPiA+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUu aCBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgK PiA+ID4gPiA+IGluZGV4IDAwZTgwODMuLjY2ZDc2NjQgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5oCj4gPiA+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBl bGluZS5oCj4gPiA+ID4gPiBAQCAtMzM2LDcgKzMzNiw5IEBAIHN0cnVjdCBrb21lZGFfaW1wcm9j X3N0YXRlIHsKPiA+ID4gPiA+ICAvKiBkaXNwbGF5IHRpbWluZyBjb250cm9sbGVyICovCj4gPiA+ ID4gPiAgc3RydWN0IGtvbWVkYV90aW1pbmdfY3RybHIgewo+ID4gPiA+ID4gICBzdHJ1Y3Qga29t ZWRhX2NvbXBvbmVudCBiYXNlOwo+ID4gPiA+ID4gLSB1OCBzdXBwb3J0c19kdWFsX2xpbmsgOiAx Owo+ID4gPiA+ID4gKyB1OCBzdXBwb3J0c19kdWFsX2xpbmsgOiAxLAo+ID4gPiA+ID4gKyAgICBz dXBwb3J0c192cnIgOiAxOwo+ID4gPiA+ID4gKyBzdHJ1Y3QgbWFsaWRwX3JhbmdlIHZmcF9yYW5n ZTsKPiA+ID4gPiA+ICB9Owo+ID4gPiA+ID4KPiA+ID4gPiA+ICBzdHJ1Y3Qga29tZWRhX3RpbWlu Z19jdHJscl9zdGF0ZSB7Cj4gPiA+ID4gPiAtLQo+ID4gPiA+ID4gMS45LjEKPiA+ID4gPiA+Cj4g PiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ ID4gPiA+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gPiA+ID4gZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiA+ID4gPgo+ID4gPiA+IC0tCj4gPiA+ID4gRGFu aWVsIFZldHRlcgo+ID4gPiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ ID4gPiA+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiAKPiAKPiAKPiAtLSAKPiBEYW5pZWwg VmV0dGVyCj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gKzQxICgwKSA3 OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWw=