From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC PATCH] mesa: Export BOs in RW mode Date: Wed, 3 Jul 2019 17:49:52 +0200 Message-ID: <20190703154952.GK15868@phenom.ffwll.local> References: <20190703133357.10217-1-boris.brezillon@collabora.com> <20190703154724.GJ15868@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190703154724.GJ15868@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: mesa-dev-bounces@lists.freedesktop.org Sender: "mesa-dev" To: Rob Herring Cc: ML mesa-dev , Boris Brezillon , Alyssa Rosenzweig , dri-devel , Steven Price List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKdWwgMDMsIDIwMTkgYXQgMDU6NDc6MjRQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIEp1bCAwMywgMjAxOSBhdCAwNzo0NTozMkFNIC0wNjAwLCBSb2IgSGVy cmluZyB3cm90ZToKPiA+IE9uIFdlZCwgSnVsIDMsIDIwMTkgYXQgNzozNCBBTSBCb3JpcyBCcmV6 aWxsb24KPiA+IDxib3Jpcy5icmV6aWxsb25AY29sbGFib3JhLmNvbT4gd3JvdGU6Cj4gPiA+Cj4g PiA+IEV4cG9ydGVkIEJPcyBtaWdodCBiZSBpbXBvcnRlZCBiYWNrLCB0aGVuIG1tYXAoKS1lZCB0 byBiZSB3cml0dGVuCj4gPiA+IHRvby4gTW9zdCBkcml2ZXJzIGhhbmRsZSB0aGF0IGJ5IG1tYXAo KS1pbmcgdGhlIEdFTSBoYW5kbGUgYWZ0ZXIgaXQncwo+ID4gPiBiZWVuIGltcG9ydGVkLCBidXQs IGFjY29yZGluZyB0byBbMV0sIHRoaXMgaXMgaWxsZWdhbC4KPiA+IAo+ID4gSXQncyBub3QgaWxs ZWdhbCwgYnV0IGlzIHN1cHBvc2VkIHRvIGdvIHRocnUgdGhlIGRtYWJ1ZiBtbWFwCj4gPiBmdW5j dGlvbnMuIEhvd2V2ZXIsIG5vbmUgb2YgdGhlIGRyaXZlciBJJ3ZlIGxvb2tlZCBhdCAoZXRuYXZp diwgbXNtLAo+ID4gdjNkLCB2Z2VtKSBkbyB0aGF0LiBJdCBwcm9iYWJseSB3b3JrcyBiZWNhdXNl IGl0J3MgdGhlIHNhbWUgZHJpdmVyCj4gPiBkb2luZyB0aGUgaW1wb3J0IGFuZCBleHBvcnQgb3Ig Ym90aCBkcml2ZXJzIGhhdmUgZXNzZW50aWFsbHkgdGhlIHNhbWUKPiA+IGltcGxlbWVudGF0aW9u cy4KPiAKPiBGb3Igc2VsZi1pbXBvcnQgd2Ugc2hvcnQtY2lyY3VpdCBvdXQgdGhlIHVuZGVybHlp bmcgZG1hLWJ1ZiBhbmQgZGlyZWN0bHkKPiBnbyB0byB0aGUgZ2VtX2JvIGFnYWluLgo+IAo+ID4g PiBUaGUgcGFuZnJvc3QKPiA+ID4gZHJpdmVyIGhhcyByZWNlbnRseSBzd2l0Y2hlZCB0byB0aGlz IGdlbmVyaWMgaGVscGVyICh3aGljaCB3YXMgcmVuYW1lZAo+ID4gPiBpbnRvIGRybV9nZW1fbWFw X29mZnNldCgpIGluIHRoZSBtZWFudGltZSkgWzJdLCBhbmQgbW1hcCgpLWluZwo+ID4gPiBvZiBp bXBvcnRlZCBCT3Mgbm93IGZhaWxzLgo+ID4gCj4gPiBJIHRoaW5rIEknbSBnb2luZyB0byByZXZl cnQgdGhpcy4KPiAKPiBDYW4ndCB3ZSBjaGFuZ2UgdGhlIGhlbHBlciB0byBmb3JjZSB0aGUgcncg bW9kZSB0byBtYWtlIHRoaXMgd29yaz8KPiAKPiBBc2lkZTogVGhlIHJlYXNvbiBJJ20gbm90IGEg aHVnZSBmYW4gb2YgZm9yd2FyZGluZyBnZW0gbW1hcCB0byBkbWEtYnVmCj4gbW1hcCBpcyB0aGF0 IGdlbmVyYWxseSB0aGUgYmVnaW4vZW5kX2NwdV9hY2Nlc3Mgc3R1ZmYgZ2V0cyBsb3RzIG9uIHRo ZSB3YXkKPiB0aGVyZS4gV2hpY2ggbW9zdGx5IGRvZXNuJ3QgbWF0dGVyIHNpbmNlIGV2ZXJ5b25l IHByZWZlcnMgdG8gc2hhcmUKPiBjb2hlcmVudCBidWZmZXJzLCBleGNlcHQgd2hlbiBpdCB0b3Rh bGx5IGRvZXMgbWF0dGVyLiBTbyBieSBmb3J3YXJkaW5nCj4gbW1hcCBhbmQgcHJldGVuZGluZyBp dCBhbGwga2VlcHMgd29ya2luZyBhcy1pcyB3ZSdyZSBkaWdnaW5nIG91cnNlbHZlcyBhCj4gYml0 IGludG8gYSBob2xlIEkgdGhpbmsgOi0vCj4gCj4gU2luY2UgdGhlIHNhbWUgZGlzY3Vzc2lvbiBp cyBoYXBwZW5pbmcgd2l0aCBldG5hdml2OiBXaHkgZXhhY3RseSBkb2VzIG1lc2EKPiBuZWVkIHRv IG1tYXAgaW1wb3J0ZWQgYnVmZmVycz8KCkFsc28sIGZvciBkdW1iIG1tYXAgSSB2ZXJ5IG11Y2gg d2FudCB0byBrZWVwIHRoaXMgcmVxdWlyZW1lbnQuIElmIHlvdQppbXBvcnQgYSBkbWEtYnVmIGFu ZCB0aGVuIG1tYXAgaXQgdGhyb3VnaCB0aGUgZHVtYiBidWZmZXIgaW50ZXJmYWNlcywKeW91J3Jl IGp1c3QgZG9pbmcgYWxsIHRoZSB0aGluZ3Mgd3JvbmcgOi0pCi1EYW5pZWwKCj4gLURhbmllbAo+ IAo+ID4gCj4gPiA+IE5vdyBJJ20gd29uZGVyaW5nIGhvdyB0aGlzIHNob3VsZCBiZSBzb2x2ZWQu IEkgZ3Vlc3MgdGhlIGZpcnN0IHF1ZXN0aW9uCj4gPiA+IGlzLCBpcyBtbWFwKCktaW5nIG9mIGlt cG9ydGVkIEJPcyByZWFsbHkgZm9yYmlkZGVuIGZvciBhbGwgQk9zPyBJIGd1ZXNzCj4gPiA+IGNh bGxpbmcgbW1hcCgpIG9uIGEgYnVmZmVyIHRoYXQncyBiZWVuIGV4cG9ydGVkIGJ5IHRoZSBEUk0g ZHJpdmVyIGl0c2VsZgo+ID4gPiB0aGVuIHJlLWltcG9ydGVkIHNob3VsZG4ndCBodXJ0LCBzbyBt YXliZSB3ZSBjYW4gY2hlY2sgdGhhdCBiZWZvcmUKPiA+ID4gZmFpbGluZy4KPiA+ID4KPiA+ID4g Tm93LCBpZiB3ZSByZWFsbHkgd2FudCB0byBmb3JiaWQgbW1hcCgpIG9uIGltcG9ydGVkIEJPcywg dGhhdCBtZWFucyB3ZQo+ID4gPiBuZWVkIGEgc29sdXRpb24gdG8gbW1hcCgpIHRoZSBkbWFidWYg b2JqZWN0IGRpcmVjdGx5LCBhbmQgc29tZXRpbWVzIHRoaXMKPiA+ID4gbWFwcGluZyB3aWxsIHJl cXVlc3QgUlcgcGVybWlzc2lvbnMuIFRoZSBwcm9ibGVtIGlzLCBhbGwgZnVuY3Rpb24KPiA+ID4g ZXhwb3J0aW5nIEJPcyBpbiBtZXNhIGFyZSBleHBvcnRpbmcgdGhlbSBpbiBSTy1tb2RlIChyZXN1 bHRpbmcgRkQgaXMKPiA+ID4gT19SRUFEKSwgdGh1cyBwcmV2ZW50aW5nIG1tYXAoKXMgaW4gUlcg bW9kZS4KPiA+ID4KPiA+ID4gVGhpcyBwYXRjaCBtb2RpZmllcyBhbGwKPiA+ID4gZHJtUHJpbWVI YW5kbGVUb0ZEKCkvaW9jdGwoRFJNX0lPQ1RMX1BSSU1FX0hBTkRMRV9UT19GRCkgY2FsbCBzaXRl cwo+ID4gPiB0byBwYXNzIHRoZSBEUk1fUkRXUiBmbGFnIHNvIHRoYXQgd2hhdCdzIGRlc2NyaWJl ZCBhYm92ZSBiZWNvbWVzCj4gPiA+IHBvc3NpYmxlLgo+ID4gPgo+ID4gPiBJJ20gbm90IHNheWlu ZyB0aGlzIGlzIHdoYXQgd2Ugc2hvdWxkIGRvLCBpdCdzIG1vcmUgYSB3YXkgdG8gc3RhcnQgdGhl Cj4gPiA+IGRpc2N1c3Npb24uIEZlZWwgZnJlZSB0byBwcm9wb3NlIGFsdGVybml2ZXMgdG8gdGhp cyBzb2x1dGlvbi4KPiA+ID4KPiA+ID4gWzFdaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2Nt L2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0L3RyZWUvZHJpdmVycy9ncHUvZHJt L2RybV9nZW0uYz9oPXY1LjItcmM3I24zMTgKPiA+ID4gWzJdaHR0cHM6Ly9jZ2l0LmZyZWVkZXNr dG9wLm9yZy9kcm0vZHJtLW1pc2MvY29tbWl0L2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdD9pZD01 ODNiYmY0NjEzM2M3MjZiYWUyNzdlOGY0ZTMyYmZiYTJhNTI4YzdmCj4gPiA+Cj4gPiA+IFNpZ25l ZC1vZmYtYnk6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGNvbGxhYm9yYS5jb20+ Cj4gPiA+IENjOiA8ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4KPiA+ID4gQ2M6IDxt ZXNhLWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmc+Cj4gPiA+IENjOiBTdGV2ZW4gUHJpY2UgPHN0 ZXZlbi5wcmljZUBhcm0uY29tPgo+ID4gPiBDYzogUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9y Zz4KPiA+ID4gLS0tCj4gPiA+IENjLWluZyBkcmktZGV2ZWwgaXMgbm90IGEgbWlzdGFrZSwgSSBy ZWFsbHkgdG8gaGF2ZSBmZWVkYmFjayBmcm9tIHRoZSBEUk0KPiA+ID4gbWFpbnRhaW5lcnMsIHNp bmNlIHRoaXMgc3RhcnRlZCB3aXRoIGEga2VybmVsLXNpZGUgY2hhbmdlLgo+ID4gPiAtLS0KPiA+ ID4gIHNyYy9ldG5hdml2L2RybS9ldG5hdml2X2JvLmMgICAgICAgICAgICAgICAgICAgICAgfCA0 ICsrLS0KPiA+ID4gIHNyYy9mcmVlZHJlbm8vZHJtL2ZyZWVkcmVub19iby5jICAgICAgICAgICAg ICAgICAgfCA0ICsrLS0KPiA+ID4gIHNyYy9mcmVlZHJlbm8vdnVsa2FuL3R1X2RybS5jICAgICAg ICAgICAgICAgICAgICAgfCAyICstCj4gPiA+ICBzcmMvZ2FsbGl1bS9hdXhpbGlhcnkvcmVuZGVy b25seS9yZW5kZXJvbmx5LmMgICAgIHwgMiArLQo+ID4gPiAgc3JjL2dhbGxpdW0vZHJpdmVycy9p cmlzL2lyaXNfYnVmbWdyLmMgICAgICAgICAgICB8IDIgKy0KPiA+ID4gIHNyYy9nYWxsaXVtL2Ry aXZlcnMvbGltYS9saW1hX2JvLmMgICAgICAgICAgICAgICAgfCAyICstCj4gPiA+ICBzcmMvZ2Fs bGl1bS9kcml2ZXJzL3BhbmZyb3N0L3Bhbl9kcm0uYyAgICAgICAgICAgIHwgMiArLQo+ID4gPiAg c3JjL2dhbGxpdW0vZHJpdmVycy92M2QvdjNkX2J1Zm1nci5jICAgICAgICAgICAgICB8IDIgKy0K PiA+ID4gIHNyYy9nYWxsaXVtL2RyaXZlcnMvdmM0L3ZjNF9idWZtZ3IuYyAgICAgICAgICAgICAg fCAyICstCj4gPiA+ICBzcmMvZ2FsbGl1bS93aW5zeXMvcmFkZW9uL2RybS9yYWRlb25fZHJtX2Jv LmMgICAgIHwgMyArKy0KPiA+ID4gIHNyYy9nYWxsaXVtL3dpbnN5cy9zdmdhL2RybS92bXdfc2Ny ZWVuX2RyaS5jICAgICAgfCA1ICsrKy0tCj4gPiA+ICBzcmMvZ2FsbGl1bS93aW5zeXMvc3cva21z LWRyaS9rbXNfZHJpX3N3X3dpbnN5cy5jIHwgMiArLQo+ID4gPiAgc3JjL2dhbGxpdW0vd2luc3lz L3ZpcmdsL2RybS92aXJnbF9kcm1fd2luc3lzLmMgICB8IDMgKystCj4gPiA+ICBzcmMvaW50ZWwv dnVsa2FuL2Fudl9nZW0uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gPiAgc3Jj L21lc2EvZHJpdmVycy9kcmkvaTk2NS9icndfYnVmbWdyLmMgICAgICAgICAgICB8IDIgKy0KPiA+ ID4gIDE1IGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQo+ ID4gPgo+ID4gPiBkaWZmIC0tZ2l0IGEvc3JjL2V0bmF2aXYvZHJtL2V0bmF2aXZfYm8uYyBiL3Ny Yy9ldG5hdml2L2RybS9ldG5hdml2X2JvLmMKPiA+ID4gaW5kZXggNmU5NTJmYTQ3ODU4Li45MjYz NDE0MWI1ODAgMTAwNjQ0Cj4gPiA+IC0tLSBhL3NyYy9ldG5hdml2L2RybS9ldG5hdml2X2JvLmMK PiA+ID4gKysrIGIvc3JjL2V0bmF2aXYvZHJtL2V0bmF2aXZfYm8uYwo+ID4gPiBAQCAtMjk0LDgg KzI5NCw4IEBAIGludCBldG5hX2JvX2RtYWJ1ZihzdHJ1Y3QgZXRuYV9ibyAqYm8pCj4gPiA+ICB7 Cj4gPiA+ICAgICAgICAgaW50IHJldCwgcHJpbWVfZmQ7Cj4gPiA+Cj4gPiA+IC0gICAgICAgcmV0 ID0gZHJtUHJpbWVIYW5kbGVUb0ZEKGJvLT5kZXYtPmZkLCBiby0+aGFuZGxlLCBEUk1fQ0xPRVhF QywKPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpbWVfZmQpOwo+ID4g PiArICAgICAgIHJldCA9IGRybVByaW1lSGFuZGxlVG9GRChiby0+ZGV2LT5mZCwgYm8tPmhhbmRs ZSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJNX0NMT0VYRUMgfCBE Uk1fUkRXUiwgJnByaW1lX2ZkKTsKPiA+ID4gICAgICAgICBpZiAocmV0KSB7Cj4gPiA+ICAgICAg ICAgICAgICAgICBFUlJPUl9NU0coImZhaWxlZCB0byBnZXQgZG1hYnVmIGZkOiAlZCIsIHJldCk7 Cj4gPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiBkaWZmIC0tZ2l0IGEvc3Jj L2ZyZWVkcmVuby9kcm0vZnJlZWRyZW5vX2JvLmMgYi9zcmMvZnJlZWRyZW5vL2RybS9mcmVlZHJl bm9fYm8uYwo+ID4gPiBpbmRleCA3NDQ5MTYwZjEzNzEuLmJhMTliMDhkN2M1NCAxMDA2NDQKPiA+ ID4gLS0tIGEvc3JjL2ZyZWVkcmVuby9kcm0vZnJlZWRyZW5vX2JvLmMKPiA+ID4gKysrIGIvc3Jj L2ZyZWVkcmVuby9kcm0vZnJlZWRyZW5vX2JvLmMKPiA+ID4gQEAgLTMxOCw4ICszMTgsOCBAQCBp bnQgZmRfYm9fZG1hYnVmKHN0cnVjdCBmZF9ibyAqYm8pCj4gPiA+ICB7Cj4gPiA+ICAgICAgICAg aW50IHJldCwgcHJpbWVfZmQ7Cj4gPiA+Cj4gPiA+IC0gICAgICAgcmV0ID0gZHJtUHJpbWVIYW5k bGVUb0ZEKGJvLT5kZXYtPmZkLCBiby0+aGFuZGxlLCBEUk1fQ0xPRVhFQywKPiA+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgJnByaW1lX2ZkKTsKPiA+ID4gKyAgICAgICByZXQgPSBkcm1Qcmlt ZUhhbmRsZVRvRkQoYm8tPmRldi0+ZmQsIGJvLT5oYW5kbGUsCj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERSTV9DTE9FWEVDIHwgRFJNX1JEV1IsICZwcmltZV9mZCk7Cj4g PiA+ICAgICAgICAgaWYgKHJldCkgewo+ID4gPiAgICAgICAgICAgICAgICAgRVJST1JfTVNHKCJm YWlsZWQgdG8gZ2V0IGRtYWJ1ZiBmZDogJWQiLCByZXQpOwo+ID4gPiAgICAgICAgICAgICAgICAg cmV0dXJuIHJldDsKPiA+ID4gZGlmZiAtLWdpdCBhL3NyYy9mcmVlZHJlbm8vdnVsa2FuL3R1X2Ry bS5jIGIvc3JjL2ZyZWVkcmVuby92dWxrYW4vdHVfZHJtLmMKPiA+ID4gaW5kZXggOWIyZTZmNzg4 NzllLi42YmVmMzAxMmRkYjUgMTAwNjQ0Cj4gPiA+IC0tLSBhL3NyYy9mcmVlZHJlbm8vdnVsa2Fu L3R1X2RybS5jCj4gPiA+ICsrKyBiL3NyYy9mcmVlZHJlbm8vdnVsa2FuL3R1X2RybS5jCj4gPiA+ IEBAIC0xNDcsNyArMTQ3LDcgQEAgdHVfZ2VtX2V4cG9ydF9kbWFidWYoY29uc3Qgc3RydWN0IHR1 X2RldmljZSAqZGV2LCB1aW50MzJfdCBnZW1faGFuZGxlKQo+ID4gPiAgewo+ID4gPiAgICAgaW50 IHByaW1lX2ZkOwo+ID4gPiAgICAgaW50IHJldCA9IGRybVByaW1lSGFuZGxlVG9GRChkZXYtPnBo eXNpY2FsX2RldmljZS0+bG9jYWxfZmQsIGdlbV9oYW5kbGUsCj4gPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERSTV9DTE9FWEVDLCAmcHJpbWVfZmQpOwo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fQ0xPRVhFQyB8IERSTV9SRFdSLCAmcHJpbWVf ZmQpOwo+ID4gPgo+ID4gPiAgICAgcmV0dXJuIHJldCA9PSAwID8gcHJpbWVfZmQgOiAtMTsKPiA+ ID4gIH0KPiA+ID4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2F1eGlsaWFyeS9yZW5kZXJvbmx5 L3JlbmRlcm9ubHkuYyBiL3NyYy9nYWxsaXVtL2F1eGlsaWFyeS9yZW5kZXJvbmx5L3JlbmRlcm9u bHkuYwo+ID4gPiBpbmRleCBkNmEzNDQwMDkzNzguLmMxY2MzMTExNTEwNSAxMDA2NDQKPiA+ID4g LS0tIGEvc3JjL2dhbGxpdW0vYXV4aWxpYXJ5L3JlbmRlcm9ubHkvcmVuZGVyb25seS5jCj4gPiA+ ICsrKyBiL3NyYy9nYWxsaXVtL2F1eGlsaWFyeS9yZW5kZXJvbmx5L3JlbmRlcm9ubHkuYwo+ID4g PiBAQCAtMTAxLDcgKzEwMSw3IEBAIHJlbmRlcm9ubHlfY3JlYXRlX2ttc19kdW1iX2J1ZmZlcl9m b3JfcmVzb3VyY2Uoc3RydWN0IHBpcGVfcmVzb3VyY2UgKnJzYywKPiA+ID4gICAgIG91dF9oYW5k bGUtPnR5cGUgPSBXSU5TWVNfSEFORExFX1RZUEVfRkQ7Cj4gPiA+ICAgICBvdXRfaGFuZGxlLT5z dHJpZGUgPSBjcmVhdGVfZHVtYi5waXRjaDsKPiA+ID4KPiA+ID4gLSAgIGVyciA9IGRybVByaW1l SGFuZGxlVG9GRChyby0+a21zX2ZkLCBjcmVhdGVfZHVtYi5oYW5kbGUsIE9fQ0xPRVhFQywKPiA+ ID4gKyAgIGVyciA9IGRybVByaW1lSGFuZGxlVG9GRChyby0+a21zX2ZkLCBjcmVhdGVfZHVtYi5o YW5kbGUsIE9fQ0xPRVhFQyB8IE9fUkRXUiwKPiA+ID4gICAgICAgICAgIChpbnQgKikmb3V0X2hh bmRsZS0+aGFuZGxlKTsKPiA+ID4gICAgIGlmIChlcnIgPCAwKSB7Cj4gPiA+ICAgICAgICBmcHJp bnRmKHN0ZGVyciwgImZhaWxlZCB0byBleHBvcnQgZHVtYiBidWZmZXI6ICVzXG4iLCBzdHJlcnJv cihlcnJubykpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vZHJpdmVycy9pcmlzL2ly aXNfYnVmbWdyLmMgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL2lyaXMvaXJpc19idWZtZ3IuYwo+ID4g PiBpbmRleCBkODA5NDU4MjQwOTguLjY4ZTVkOGE4YmIxMyAxMDA2NDQKPiA+ID4gLS0tIGEvc3Jj L2dhbGxpdW0vZHJpdmVycy9pcmlzL2lyaXNfYnVmbWdyLmMKPiA+ID4gKysrIGIvc3JjL2dhbGxp dW0vZHJpdmVycy9pcmlzL2lyaXNfYnVmbWdyLmMKPiA+ID4gQEAgLTEzNjksNyArMTM2OSw3IEBA IGlyaXNfYm9fZXhwb3J0X2RtYWJ1ZihzdHJ1Y3QgaXJpc19ibyAqYm8sIGludCAqcHJpbWVfZmQp Cj4gPiA+ICAgICBpcmlzX2JvX21ha2VfZXh0ZXJuYWwoYm8pOwo+ID4gPgo+ID4gPiAgICAgaWYg KGRybVByaW1lSGFuZGxlVG9GRChidWZtZ3ItPmZkLCBiby0+Z2VtX2hhbmRsZSwKPiA+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgRFJNX0NMT0VYRUMsIHByaW1lX2ZkKSAhPSAwKQo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fQ0xPRVhFQyB8IERSTV9SRFdSLCBwcmlt ZV9mZCkgIT0gMCkKPiA+ID4gICAgICAgIHJldHVybiAtZXJybm87Cj4gPiA+Cj4gPiA+ICAgICBi by0+cmV1c2FibGUgPSBmYWxzZTsKPiA+ID4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2RyaXZl cnMvbGltYS9saW1hX2JvLmMgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL2xpbWEvbGltYV9iby5jCj4g PiA+IGluZGV4IDFkNmRkNzIwNjAyYS4uZGYwMTE0ZmM2N2VkIDEwMDY0NAo+ID4gPiAtLS0gYS9z cmMvZ2FsbGl1bS9kcml2ZXJzL2xpbWEvbGltYV9iby5jCj4gPiA+ICsrKyBiL3NyYy9nYWxsaXVt L2RyaXZlcnMvbGltYS9saW1hX2JvLmMKPiA+ID4gQEAgLTIwNSw3ICsyMDUsNyBAQCBib29sIGxp bWFfYm9fZXhwb3J0KHN0cnVjdCBsaW1hX2JvICpibywgc3RydWN0IHdpbnN5c19oYW5kbGUgKmhh bmRsZSkKPiA+ID4gICAgICAgIHJldHVybiB0cnVlOwo+ID4gPgo+ID4gPiAgICAgY2FzZSBXSU5T WVNfSEFORExFX1RZUEVfRkQ6Cj4gPiA+IC0gICAgICBpZiAoZHJtUHJpbWVIYW5kbGVUb0ZEKHNj cmVlbi0+ZmQsIGJvLT5oYW5kbGUsIERSTV9DTE9FWEVDLAo+ID4gPiArICAgICAgaWYgKGRybVBy aW1lSGFuZGxlVG9GRChzY3JlZW4tPmZkLCBiby0+aGFuZGxlLCBEUk1fQ0xPRVhFQyB8IERSTV9S RFdSLAo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KikmaGFuZGxlLT5o YW5kbGUpKQo+ID4gPiAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ID4gPgo+ID4gPiBkaWZmIC0t Z2l0IGEvc3JjL2dhbGxpdW0vZHJpdmVycy9wYW5mcm9zdC9wYW5fZHJtLmMgYi9zcmMvZ2FsbGl1 bS9kcml2ZXJzL3BhbmZyb3N0L3Bhbl9kcm0uYwo+ID4gPiBpbmRleCA4ZGU0ZjQ4MzQzNWMuLmEw ODY1NzVjNDUzYSAxMDA2NDQKPiA+ID4gLS0tIGEvc3JjL2dhbGxpdW0vZHJpdmVycy9wYW5mcm9z dC9wYW5fZHJtLmMKPiA+ID4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9wYW5mcm9zdC9wYW5f ZHJtLmMKPiA+ID4gQEAgLTE4MSw3ICsxODEsNyBAQCBwYW5mcm9zdF9kcm1fZXhwb3J0X2JvKHN0 cnVjdCBwYW5mcm9zdF9zY3JlZW4gKnNjcmVlbiwgY29uc3Qgc3RydWN0IHBhbmZyb3N0X2JvCj4g PiA+ICB7Cj4gPiA+ICAgICAgICAgIHN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlIGFyZ3MgPSB7Cj4g PiA+ICAgICAgICAgICAgICAgICAgLmhhbmRsZSA9IGJvLT5nZW1faGFuZGxlLAo+ID4gPiAtICAg ICAgICAgICAgICAgIC5mbGFncyA9IERSTV9DTE9FWEVDLAo+ID4gPiArICAgICAgICAgICAgICAg IC5mbGFncyA9IERSTV9DTE9FWEVDIHwgRFJNX1JEV1IsCj4gPiA+ICAgICAgICAgIH07Cj4gPiA+ Cj4gPiA+ICAgICAgICAgIGludCByZXQgPSBkcm1Jb2N0bChzY3JlZW4tPmZkLCBEUk1fSU9DVExf UFJJTUVfSEFORExFX1RPX0ZELCAmYXJncyk7Cj4gPiA+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1 bS9kcml2ZXJzL3YzZC92M2RfYnVmbWdyLmMgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL3YzZC92M2Rf YnVmbWdyLmMKPiA+ID4gaW5kZXggZjBkZjFiOTgzNzM3Li4wYzc4OTk0ZDg5OWYgMTAwNjQ0Cj4g PiA+IC0tLSBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvdjNkL3YzZF9idWZtZ3IuYwo+ID4gPiArKysg Yi9zcmMvZ2FsbGl1bS9kcml2ZXJzL3YzZC92M2RfYnVmbWdyLmMKPiA+ID4gQEAgLTQyNCw3ICs0 MjQsNyBAQCB2M2RfYm9fZ2V0X2RtYWJ1ZihzdHJ1Y3QgdjNkX2JvICpibykKPiA+ID4gIHsKPiA+ ID4gICAgICAgICAgaW50IGZkOwo+ID4gPiAgICAgICAgICBpbnQgcmV0ID0gZHJtUHJpbWVIYW5k bGVUb0ZEKGJvLT5zY3JlZW4tPmZkLCBiby0+aGFuZGxlLAo+ID4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE9fQ0xPRVhFQywgJmZkKTsKPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fQ0xPRVhFQyB8IERSTV9SRFdSLCAmZmQpOwo+ ID4gPiAgICAgICAgICBpZiAocmV0ICE9IDApIHsKPiA+ID4gICAgICAgICAgICAgICAgICBmcHJp bnRmKHN0ZGVyciwgIkZhaWxlZCB0byBleHBvcnQgZ2VtIGJvICVkIHRvIGRtYWJ1ZlxuIiwKPiA+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvLT5oYW5kbGUpOwo+ID4gPiBkaWZmIC0tZ2l0 IGEvc3JjL2dhbGxpdW0vZHJpdmVycy92YzQvdmM0X2J1Zm1nci5jIGIvc3JjL2dhbGxpdW0vZHJp dmVycy92YzQvdmM0X2J1Zm1nci5jCj4gPiA+IGluZGV4IDcxNmNhNTBlYTA2OS4uYzdlODliNmE1 MTdlIDEwMDY0NAo+ID4gPiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL3ZjNC92YzRfYnVmbWdy LmMKPiA+ID4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy92YzQvdmM0X2J1Zm1nci5jCj4gPiA+ IEBAIC00NjIsNyArNDYyLDcgQEAgdmM0X2JvX2dldF9kbWFidWYoc3RydWN0IHZjNF9ibyAqYm8p Cj4gPiA+ICB7Cj4gPiA+ICAgICAgICAgIGludCBmZDsKPiA+ID4gICAgICAgICAgaW50IHJldCA9 IGRybVByaW1lSGFuZGxlVG9GRChiby0+c2NyZWVuLT5mZCwgYm8tPmhhbmRsZSwKPiA+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPX0NMT0VYRUMsICZmZCk7Cj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJNX0NMT0VYRUMgfCBEUk1f UkRXUiwgJmZkKTsKPiA+ID4gICAgICAgICAgaWYgKHJldCAhPSAwKSB7Cj4gPiA+ICAgICAgICAg ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gZXhwb3J0IGdlbSBibyAlZCB0byBk bWFidWZcbiIsCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICBiby0+aGFuZGxlKTsKPiA+ ID4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL3dpbnN5cy9yYWRlb24vZHJtL3JhZGVvbl9kcm1f Ym8uYyBiL3NyYy9nYWxsaXVtL3dpbnN5cy9yYWRlb24vZHJtL3JhZGVvbl9kcm1fYm8uYwo+ID4g PiBpbmRleCBkMWUyYTg2ODViYTkuLmFlNzk1OGE4Yjg5MiAxMDA2NDQKPiA+ID4gLS0tIGEvc3Jj L2dhbGxpdW0vd2luc3lzL3JhZGVvbi9kcm0vcmFkZW9uX2RybV9iby5jCj4gPiA+ICsrKyBiL3Ny Yy9nYWxsaXVtL3dpbnN5cy9yYWRlb24vZHJtL3JhZGVvbl9kcm1fYm8uYwo+ID4gPiBAQCAtMTMy MCw3ICsxMzIwLDggQEAgc3RhdGljIGJvb2wgcmFkZW9uX3dpbnN5c19ib19nZXRfaGFuZGxlKHN0 cnVjdCBwYl9idWZmZXIgKmJ1ZmZlciwKPiA+ID4gICAgICB9IGVsc2UgaWYgKHdoYW5kbGUtPnR5 cGUgPT0gV0lOU1lTX0hBTkRMRV9UWVBFX0tNUykgewo+ID4gPiAgICAgICAgICB3aGFuZGxlLT5o YW5kbGUgPSBiby0+aGFuZGxlOwo+ID4gPiAgICAgIH0gZWxzZSBpZiAod2hhbmRsZS0+dHlwZSA9 PSBXSU5TWVNfSEFORExFX1RZUEVfRkQpIHsKPiA+ID4gLSAgICAgICAgaWYgKGRybVByaW1lSGFu ZGxlVG9GRCh3cy0+ZmQsIGJvLT5oYW5kbGUsIERSTV9DTE9FWEVDLCAoaW50Kikmd2hhbmRsZS0+ aGFuZGxlKSkKPiA+ID4gKyAgICAgICAgaWYgKGRybVByaW1lSGFuZGxlVG9GRCh3cy0+ZmQsIGJv LT5oYW5kbGUsIERSTV9DTE9FWEVDIHwgRFJNX1JEV1IsCj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGludCopJndoYW5kbGUtPmhhbmRsZSkpCj4gPiA+ICAgICAgICAgICAg ICByZXR1cm4gZmFsc2U7Cj4gPiA+ICAgICAgfQo+ID4gPgo+ID4gPiBkaWZmIC0tZ2l0IGEvc3Jj L2dhbGxpdW0vd2luc3lzL3N2Z2EvZHJtL3Ztd19zY3JlZW5fZHJpLmMgYi9zcmMvZ2FsbGl1bS93 aW5zeXMvc3ZnYS9kcm0vdm13X3NjcmVlbl9kcmkuYwo+ID4gPiBpbmRleCBhODVlZTE4ZTQ1Yjku LjI0ZjZkZGFjMDg5MCAxMDA2NDQKPiA+ID4gLS0tIGEvc3JjL2dhbGxpdW0vd2luc3lzL3N2Z2Ev ZHJtL3Ztd19zY3JlZW5fZHJpLmMKPiA+ID4gKysrIGIvc3JjL2dhbGxpdW0vd2luc3lzL3N2Z2Ev ZHJtL3Ztd19zY3JlZW5fZHJpLmMKPiA+ID4gQEAgLTM0NSw4ICszNDUsOSBAQCB2bXdfZHJtX3N1 cmZhY2VfZ2V0X2hhbmRsZShzdHJ1Y3Qgc3ZnYV93aW5zeXNfc2NyZWVuICpzd3MsCj4gPiA+ICAg ICAgICAgd2hhbmRsZS0+aGFuZGxlID0gdnNyZi0+c2lkOwo+ID4gPiAgICAgICAgIGJyZWFrOwo+ ID4gPiAgICAgIGNhc2UgV0lOU1lTX0hBTkRMRV9UWVBFX0ZEOgo+ID4gPiAtICAgICAgIHJldCA9 IGRybVByaW1lSGFuZGxlVG9GRCh2d3MtPmlvY3RsLmRybV9mZCwgdnNyZi0+c2lkLCBEUk1fQ0xP RVhFQywKPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ICopJndoYW5k bGUtPmhhbmRsZSk7Cj4gPiA+ICsgICAgICAgcmV0ID0gZHJtUHJpbWVIYW5kbGVUb0ZEKHZ3cy0+ aW9jdGwuZHJtX2ZkLCB2c3JmLT5zaWQsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERSTV9DTE9FWEVDIHwgRFJNX1JEV1IsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChpbnQgKikmd2hhbmRsZS0+aGFuZGxlKTsKPiA+ID4gICAgICAgICBpZiAo cmV0KSB7Cj4gPiA+ICAgICAgICAgICB2bXdfZXJyb3IoIkZhaWxlZCB0byBnZXQgZmlsZSBkZXNj cmlwdG9yIGZyb20gcHJpbWUuXG4iKTsKPiA+ID4gICAgICAgICAgIHJldHVybiBGQUxTRTsKPiA+ ID4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL3dpbnN5cy9zdy9rbXMtZHJpL2ttc19kcmlfc3df d2luc3lzLmMgYi9zcmMvZ2FsbGl1bS93aW5zeXMvc3cva21zLWRyaS9rbXNfZHJpX3N3X3dpbnN5 cy5jCj4gPiA+IGluZGV4IGQ5YjQxN2RjNGRhZC4uY2U0N2U2NmFiMWU1IDEwMDY0NAo+ID4gPiAt LS0gYS9zcmMvZ2FsbGl1bS93aW5zeXMvc3cva21zLWRyaS9rbXNfZHJpX3N3X3dpbnN5cy5jCj4g PiA+ICsrKyBiL3NyYy9nYWxsaXVtL3dpbnN5cy9zdy9rbXMtZHJpL2ttc19kcmlfc3dfd2luc3lz LmMKPiA+ID4gQEAgLTQ0Niw3ICs0NDYsNyBAQCBrbXNfc3dfZGlzcGxheXRhcmdldF9nZXRfaGFu ZGxlKHN0cnVjdCBzd193aW5zeXMgKndpbnN5cywKPiA+ID4gICAgICAgIHJldHVybiBUUlVFOwo+ ID4gPiAgICAgY2FzZSBXSU5TWVNfSEFORExFX1RZUEVfRkQ6Cj4gPiA+ICAgICAgICBpZiAoIWRy bVByaW1lSGFuZGxlVG9GRChrbXNfc3ctPmZkLCBrbXNfc3dfZHQtPmhhbmRsZSwKPiA+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJNX0NMT0VYRUMsIChpbnQqKSZ3aGFuZGxlLT5o YW5kbGUpKSB7Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9DTE9FWEVD IHwgRFJNX1JEV1IsIChpbnQqKSZ3aGFuZGxlLT5oYW5kbGUpKSB7Cj4gPiA+ICAgICAgICAgICB3 aGFuZGxlLT5zdHJpZGUgPSBwbGFuZS0+c3RyaWRlOwo+ID4gPiAgICAgICAgICAgd2hhbmRsZS0+ b2Zmc2V0ID0gcGxhbmUtPm9mZnNldDsKPiA+ID4gICAgICAgICAgIHJldHVybiBUUlVFOwo+ID4g PiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vd2luc3lzL3ZpcmdsL2RybS92aXJnbF9kcm1fd2lu c3lzLmMgYi9zcmMvZ2FsbGl1bS93aW5zeXMvdmlyZ2wvZHJtL3ZpcmdsX2RybV93aW5zeXMuYwo+ ID4gPiBpbmRleCA5ZWVjOTJmNTczNjMuLjA3ZmFiMjczNWUyNSAxMDA2NDQKPiA+ID4gLS0tIGEv c3JjL2dhbGxpdW0vd2luc3lzL3ZpcmdsL2RybS92aXJnbF9kcm1fd2luc3lzLmMKPiA+ID4gKysr IGIvc3JjL2dhbGxpdW0vd2luc3lzL3ZpcmdsL2RybS92aXJnbF9kcm1fd2luc3lzLmMKPiA+ID4g QEAgLTQxOCw3ICs0MTgsOCBAQCBzdGF0aWMgYm9vbGVhbiB2aXJnbF9kcm1fd2luc3lzX3Jlc291 cmNlX2dldF9oYW5kbGUoc3RydWN0IHZpcmdsX3dpbnN5cyAqcXdzLAo+ID4gPiAgICAgfSBlbHNl IGlmICh3aGFuZGxlLT50eXBlID09IFdJTlNZU19IQU5ETEVfVFlQRV9LTVMpIHsKPiA+ID4gICAg ICAgIHdoYW5kbGUtPmhhbmRsZSA9IHJlcy0+Ym9faGFuZGxlOwo+ID4gPiAgICAgfSBlbHNlIGlm ICh3aGFuZGxlLT50eXBlID09IFdJTlNZU19IQU5ETEVfVFlQRV9GRCkgewo+ID4gPiAtICAgICAg aWYgKGRybVByaW1lSGFuZGxlVG9GRChxZHdzLT5mZCwgcmVzLT5ib19oYW5kbGUsIERSTV9DTE9F WEVDLCAoaW50Kikmd2hhbmRsZS0+aGFuZGxlKSkKPiA+ID4gKyAgICAgIGlmIChkcm1QcmltZUhh bmRsZVRvRkQocWR3cy0+ZmQsIHJlcy0+Ym9faGFuZGxlLCBEUk1fQ0xPRVhFQyB8IERSTV9SRFdS LAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50Kikmd2hhbmRsZS0+aGFu ZGxlKSkKPiA+ID4gICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKPiA+ID4gICAgICAgIG10eF9s b2NrKCZxZHdzLT5ib19oYW5kbGVzX211dGV4KTsKPiA+ID4gICAgICAgIHV0aWxfaGFzaF90YWJs ZV9zZXQocWR3cy0+Ym9faGFuZGxlcywgKHZvaWQgKikodWludHB0cl90KXJlcy0+Ym9faGFuZGxl LCByZXMpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvc3JjL2ludGVsL3Z1bGthbi9hbnZfZ2VtLmMgYi9z cmMvaW50ZWwvdnVsa2FuL2Fudl9nZW0uYwo+ID4gPiBpbmRleCAxYmRmMDQwYzFhMzcuLjhmMDc5 Mjg2MzhjZSAxMDA2NDQKPiA+ID4gLS0tIGEvc3JjL2ludGVsL3Z1bGthbi9hbnZfZ2VtLmMKPiA+ ID4gKysrIGIvc3JjL2ludGVsL3Z1bGthbi9hbnZfZ2VtLmMKPiA+ID4gQEAgLTM5OSw3ICszOTks NyBAQCBhbnZfZ2VtX2hhbmRsZV90b19mZChzdHJ1Y3QgYW52X2RldmljZSAqZGV2aWNlLCB1aW50 MzJfdCBnZW1faGFuZGxlKQo+ID4gPiAgewo+ID4gPiAgICAgc3RydWN0IGRybV9wcmltZV9oYW5k bGUgYXJncyA9IHsKPiA+ID4gICAgICAgIC5oYW5kbGUgPSBnZW1faGFuZGxlLAo+ID4gPiAtICAg ICAgLmZsYWdzID0gRFJNX0NMT0VYRUMsCj4gPiA+ICsgICAgICAuZmxhZ3MgPSBEUk1fQ0xPRVhF QyB8IERSTV9SRFdSLAo+ID4gPiAgICAgfTsKPiA+ID4KPiA+ID4gICAgIGludCByZXQgPSBhbnZf aW9jdGwoZGV2aWNlLT5mZCwgRFJNX0lPQ1RMX1BSSU1FX0hBTkRMRV9UT19GRCwgJmFyZ3MpOwo+ ID4gPiBkaWZmIC0tZ2l0IGEvc3JjL21lc2EvZHJpdmVycy9kcmkvaTk2NS9icndfYnVmbWdyLmMg Yi9zcmMvbWVzYS9kcml2ZXJzL2RyaS9pOTY1L2Jyd19idWZtZ3IuYwo+ID4gPiBpbmRleCBhN2M2 ODQwNjMxNTguLmVlNjM5ZDJjZjIzYSAxMDA2NDQKPiA+ID4gLS0tIGEvc3JjL21lc2EvZHJpdmVy cy9kcmkvaTk2NS9icndfYnVmbWdyLmMKPiA+ID4gKysrIGIvc3JjL21lc2EvZHJpdmVycy9kcmkv aTk2NS9icndfYnVmbWdyLmMKPiA+ID4gQEAgLTE0ODksNyArMTQ4OSw3IEBAIGJyd19ib19nZW1f ZXhwb3J0X3RvX3ByaW1lKHN0cnVjdCBicndfYm8gKmJvLCBpbnQgKnByaW1lX2ZkKQo+ID4gPiAg ICAgYnJ3X2JvX21ha2VfZXh0ZXJuYWwoYm8pOwo+ID4gPgo+ID4gPiAgICAgaWYgKGRybVByaW1l SGFuZGxlVG9GRChidWZtZ3ItPmZkLCBiby0+Z2VtX2hhbmRsZSwKPiA+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgRFJNX0NMT0VYRUMsIHByaW1lX2ZkKSAhPSAwKQo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICBEUk1fQ0xPRVhFQyB8IERSTV9SRFdSLCBwcmltZV9mZCkgIT0g MCkKPiA+ID4gICAgICAgIHJldHVybiAtZXJybm87Cj4gPiA+Cj4gPiA+ICAgICBiby0+cmV1c2Fi bGUgPSBmYWxzZTsKPiA+ID4gLS0KPiA+ID4gMi4yMS4wCj4gPiA+Cj4gPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gZHJpLWRldmVsIG1haWxpbmcg bGlzdAo+ID4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiAKPiAtLSAKPiBE YW5pZWwgVmV0dGVyCj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gaHR0 cDovL2Jsb2cuZmZ3bGwuY2gKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJ bnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwptZXNhLWRldiBtYWlsaW5nIGxpc3QKbWVzYS1k ZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vbWVzYS1kZXY=