From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 11/18] drm/i915: Return the mask of enabled infoframes from ->inforame_enabled() Date: Mon, 1 Oct 2018 22:29:03 +0300 Message-ID: <20181001192903.GO9144@intel.com> References: <20180920185145.1912-1-ville.syrjala@linux.intel.com> <20180920185145.1912-12-ville.syrjala@linux.intel.com> <20180924155116.GX11082@phenom.ffwll.local> <20180924163608.GR5565@intel.com> <20181001065551.GF11082@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: <20181001065551.GF11082@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBPY3QgMDEsIDIwMTggYXQgMDg6NTU6NTFBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBNb24sIFNlcCAyNCwgMjAxOCBhdCAwNzozNjowOFBNICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBNb24sIFNlcCAyNCwgMjAxOCBhdCAwNTo1MToxNlBNICsw MjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiBPbiBUaHUsIFNlcCAyMCwgMjAxOCBhdCAw OTo1MTozOFBNICswMzAwLCBWaWxsZSBTeXJqYWxhIHdyb3RlOgo+ID4gPiA+IEZyb206IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gCj4gPiA+ ID4gV2Ugd2FudCB0byBzdGFydCB0cmFja2luZyB3aGljaCBpbmZvZnJhbWVzIGFyZSBlbmFibGVk LCBzbyBsZXQncyByZXBsYWNlCj4gPiA+ID4gdGhlIGJvb2xlYW4gZmxhZyB3aXRoIGEgYml0bWFz ay4KPiA+ID4gPiAKPiA+ID4gPiBXZSdsbCBhYnN0cmFjdCB0aGUgYml0bWFzayBzbyB0aGF0IGl0 J3Mgbm90IHBsYXRmb3JtIGRlcGVuZGVudC4gVGhhdAo+ID4gPiA+IHdpbGwgYWxsb3cgdXMgdG8g ZXhhbWluZSB0aGUgYml0bWFzayBsYXRlciBpbiBwbGF0Zm9ybSBpbmRlcGVuZGVudCBjb2RlLgo+ ID4gPiA+IAo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RkaS5jICB8ICAyICstCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oICB8ICA0ICstCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYyB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+ID4g PiA+ICAzIGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQo+ ID4gPiA+IAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiA+ID4gaW5kZXggMDg2 ZTNmOTQwNTg2Li4wOThhMGU0ZWRmMmEgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+ID4gPiA+IEBAIC0zMzkwLDcgKzMzOTAsNyBAQCB2b2lkIGludGVsX2RkaV9n ZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ICAJCXBpcGVf Y29uZmlnLT5oYXNfaGRtaV9zaW5rID0gdHJ1ZTsKPiA+ID4gPiAgCQlpbnRlbF9kaWdfcG9ydCA9 IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gPiA+ID4gIAo+ID4gPiA+IC0JCWlm IChpbnRlbF9kaWdfcG9ydC0+aW5mb2ZyYW1lX2VuYWJsZWQoZW5jb2RlciwgcGlwZV9jb25maWcp KQo+ID4gPiA+ICsJCWlmIChpbnRlbF9oZG1pX2luZm9mcmFtZXNfZW5hYmxlZChlbmNvZGVyLCBw aXBlX2NvbmZpZykpCj4gPiA+ID4gIAkJCXBpcGVfY29uZmlnLT5oYXNfaW5mb2ZyYW1lID0gdHJ1 ZTsKPiA+ID4gPiAgCj4gPiA+ID4gIAkJaWYgKCh0ZW1wICYgVFJBTlNfRERJX0hETUlfU0NSQU1C TElOR19NQVNLKSA9PQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ID4gaW5k ZXggZTBmM2E3OWZjNzVlLi42ODE1YzY5YWFjMmYgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+IEBAIC0xMTgxLDcgKzExODEsNyBAQCBzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0IHsKPiA+ID4gPiAgCQkJICAgICAgIGJvb2wgZW5hYmxlLAo+ID4gPiA+ ICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4g PiA+ID4gIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dGF0ZSk7Cj4gPiA+ID4gLQlib29sICgqaW5mb2ZyYW1lX2VuYWJsZWQpKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ICsJdTMyICgqaW5mb2ZyYW1lc19lbmFibGVkKShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gPiAgCQkJCSAgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKPiA+ID4gPiAgfTsKPiA+ID4gPiAgCj4gPiA+ ID4gQEAgLTE4NTYsNiArMTg1Niw4IEBAIGJvb2wgaW50ZWxfaGRtaV9oYW5kbGVfc2lua19zY3Jh bWJsaW5nKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ICAJCQkJICAgICAg IGJvb2wgc2NyYW1ibGluZyk7Cj4gPiA+ID4gIHZvaWQgaW50ZWxfZHBfZHVhbF9tb2RlX3NldF90 bWRzX291dHB1dChzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSwgYm9vbCBlbmFibGUpOwo+ID4gPiA+ ICB2b2lkIGludGVsX2luZm9mcmFtZV9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmlu dGVsX2RpZ19wb3J0KTsKPiA+ID4gPiArdTMyIGludGVsX2hkbWlfaW5mb2ZyYW1lc19lbmFibGVk KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ICsJCQkJICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gPiA+ID4gIAo+ID4gPiA+ICAKPiA+ ID4gPiAgLyogaW50ZWxfbHZkcy5jICovCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWku Ywo+ID4gPiA+IGluZGV4IGMzYzJhNjM4ZDA2Mi4uYThmY2RkYjE5OWFlIDEwMDY0NAo+ID4gPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gPiA+IEBAIC0xMDAsMTAgKzEwMCwx NCBAQCBzdGF0aWMgdTMyIGc0eF9pbmZvZnJhbWVfaW5kZXgodW5zaWduZWQgaW50IHR5cGUpCj4g PiA+ID4gIHN0YXRpYyB1MzIgZzR4X2luZm9mcmFtZV9lbmFibGUodW5zaWduZWQgaW50IHR5cGUp Cj4gPiA+ID4gIHsKPiA+ID4gPiAgCXN3aXRjaCAodHlwZSkgewo+ID4gPiA+ICsJY2FzZSBIRE1J X1BBQ0tFVF9UWVBFX05VTEw6Cj4gPiA+ID4gKwkJcmV0dXJuIFZJREVPX0RJUF9FTkFCTEU7IC8q IHNsaWdodCBsaWUgKi8KPiA+ID4gCj4gPiA+IE5vdCBleGFjdGx5IHN1cmUgd2h5IHdlJ3JlIHRy YWNraW5nIHRoaXMgb25lIGhlcmUsIGJ1dCBub3QgZm9yIGhzdy4KPiA+IAo+ID4gSFNXKyBkb2Vz bid0IGhhdmUgYSBESVAgZW5hYmxlIGJpdCBsaWtlIHRoaXMuIEl0IG9ubHkgaGFzIHRoZQo+ID4g Yml0cyB0byBlbmFibGUgc3BlY2lmaWMgaW5mb2ZyYW1lcy4KPiA+IAo+ID4gPiBTaG91bGRuJ3Qg d2UgaW5jbHVkZSB0aGF0IG9uZSBpZiB0aGUgRERJIHBvcnQgaXMgaW4gaGRtaSBtb2RlPyBXb3Vs ZCBiZQo+ID4gPiBtb3JlIGNvbnNpc3RlbnQgSSB0aGluay4KPiA+IAo+ID4gWWVzIHRoYXQgd291 bGQgc2VlbSBsaWtlIHRoZSBtb3JlIGNvcnJlY3QgdGhpbmcuIEkgdGhpbmsgdGhlIHJlYXNvbgo+ ID4gSSBkaWQgdGhpcyBoZXJlIHdhcyBzbyB0aGF0IEkgY291bGQgbWFwIHRoZSBESVBfRU5BQkxF IGJpdCB0bwo+ID4gc29tZXRoaW5nIHVuaXF1ZS4gV291bGQgYWxsb3cgdXMgdG8gZGlmZmVyZW50 aWF0ZSBiZXR3ZWVuIHRoZQo+ID4gIkRJUCBlbmFibGVkIHdpdGggbm8gaW5mb2ZyYW1lcyBlbmFi bGVkIiB2cy4gIkRJUCBlbmFibGVkIHdpdGgKPiA+IHNvbWUgaW5mb2ZyYW1lcyBlbmFibGVkIiBj YXNlcy4gQnV0IHNlZWluZyBhcyB3ZSBhbHdheXMgZW5hYmxlIHNvbWUKPiA+IGluZm9mcmFtZXMg SSBndWVzcyB0aGlzIGRvZXNuJ3QgcmVhbGx5IHByb3ZpZGUgdXMgd2l0aCBhbnl0aGluZwo+ID4g cGFydGljdWxhcmx5IHVzZWZ1bC4KPiA+IAo+ID4gVGhhdCBzYWlkLCBJJ20gYWN0dWFsbHkgbm90 IHN1cmUgd2hldGhlciB0aGUgaHcgd2lsbCBzZW5kIHRoZSBudWxsCj4gPiBwYWNrZXRzIGlmIHdl IGRvbid0IGVuYWJsZSB0aGUgRElQLiBXb3VsZCByZXF1aXJlIGEgSERNSSBhbmFseXplcgo+ID4g dG8gY29uZmlybS4KPiA+IAo+ID4gSG1tLiBBY3R1YWxseSBnZW40IGJzcGVjIHRlbGxzIG1lOgo+ ID4gIklmIERJUCBpcyBlbmFibGVkIGJ1dCBESVAgdHlwZXMgYXJlIGFsbCBkaXNhYmxlZCwgbm8g RElQIGlzIHNlbnQuCj4gPiAgSG93ZXZlciwgYSBzaW5nbGUgTnVsbCBESVAgd2lsbCBiZSBzZW50 IGF0IHRoZSBzYW1lIHBvaW50IGluIHRoZQo+ID4gIHN0cmVhbSB0aGF0IERJUCBwYWNrZXRzIHdv dWxkIGhhdmUgYmVlbiBzZW50LiBUaGlzIGlzIGRvbmUgdG8KPiA+ICBrZWVwIHRoZSBwb3J0IGlu IEhETUkgbW9kZSwgb3RoZXJ3aXNlIGl0IHdvdWxkIHJldmVydCB0byBEVkkgbW9kZS4KPiA+ICBU aGUgIk51bGwgcGFja2V0cyBlbmFibGVkIGR1cmluZyB2c3luYyIgbW9kZSAoYml0ICM5IG9mIHBv cnQKPiA+ICBjb250cm9sIHJlZ2lzdGVyKSBvdmVycmlkZXMgdGhpcyBiZWhhdmlvci4iCj4gPiAK PiA+IFNvIEkgZ3Vlc3MgbWFwcGluZyB0aGUgbnVsbCBwYWNrZXQgdG8gdGhlIERJUCBlbmFibGUg Yml0IGlzIG1vcmUgb3IKPiA+IGxlc3MgY29ycmVjdC4gQWx0aG91Z2ggdGhlIHNwZWMgZG9lc24n dCBxdWl0ZSBzYXkgd2hldGhlciB0aGUgbnVsbAo+ID4gcGFja2V0IGlzIGFsc28gc2VudCB3aGVu IHNvbWUgRElQIHR5cGVzIGFyZSBhbHNvIGVuYWJsZWQsIG9yIGlmIGl0Cj4gPiBpcyBvbmx5IHNl bmQgd2hlbiBubyBESVAgdHlwZXMgYXJlIGVuYWJsZWQuCj4gPiAKPiA+IFNvIHRvIG1hdGNoIHRo ZSBodyBJIGd1ZXNzIHRoZSByZWFkb3V0IHNob3VsZCByZWFsbHkgZG8gc29tZXRoaW5nCj4gPiBs aWtlOgo+ID4gCj4gPiBpZiAoaGRtaSAmIEhETUlfTU9ERSB8fCBkaXBfY3RsICYgRElQX0VOQUJM RSkKPiA+IAlpbmZvZnJhbWVzIHw9IFRZUEVfTlVMTDsKPiA+IAo+ID4gYnV0IHRoYXQgd291bGQg YWdhaW4gbWVhbiB0aGF0IHdlIGNhbid0IHRlbGwgdGhlIHR3byBjYXNlcwo+ID4gYXBhcnQuCj4g Cj4gPkZyb20gYSBmdW5jdGlvbmFsaXR5IHBvdiwgZG8gd2UgYWN0dWFsbHkgY2FyZSBhYm91dCB0 aGUgbnVsbCBESVA/IEhETUkKPiBtb2RlIHkvbiBmb3Igc3VyZSwgYnV0IHdlIHRyYWNrIHRoYXQg YWxyZWFkeS4gRmVlbHMgbGlrZSBqdXN0IG5ldmVyCj4gcmVhZGluZyBvdXQgdGhlIG51bGwgcGFj a2V0IHN0YXRlIGFuZCBuZXZlciBzZXR0aW5nIGl0IGluIHRoZSBzdGF0ZQo+IHN0cnVjdHVyZSBp cyB0aGUgY2hlYXAgd2F5IG91dCBoZXJlLCBhbmQgYWxzbyB0aGUgbGVhc3QgY29uZnVzaW5nIHdh eSBvdXQKPiBoZXJlLiBUcnlpbmcgdG8gc2Vjb25kIGd1ZXNzIHdoYXQgdGhlIGh3IGRvZXMgZm9y IHNvbWV0aGluZyB0aGF0IGRvZXNuJ3QKPiBzZWVtIHRvIG1hdHRlciBmZWVscyBhIGJpdCBzaWxs eS4KCkkgc3VwcG9zZS4gSSBqdXN0IGxpa2VkIHRoZSBpZGVhIG9mIHRoZSBiaXRtYXNrIHJlZmxl Y3RpbmcgcmVhbGl0eSwgYW5kCnRoZSBmYWN0IHRoYXQgaXQgZ2F2ZSBvbmUgZXh0cmEgc2FuaXR5 IGNoZWNrIGZvciBmcmVlIHNlZW1lZCBsaWtlIGEgbmljZQpib251cy4gQnV0IHRoZSBwcmFjdGlj YWwgYmVuZWZpdCBpcyBsaWtlbHkgbmVhciB6ZXJvIHNvIEkgZG9uJ3Qgc2VlIGEKcHJvYmxlbSBs ZWF2aW5nIGl0IGJlaGluZC4gSSdsbCBnbyByaXAgaXQgb3V0LgoKCj4gLURhbmllbAo+IAo+ID4g Cj4gPiA+IAo+ID4gPiBBc2lkZSBmcm9tIHRoYXQgbGd0bSwgaGFzIG15Cj4gPiA+IAo+ID4gPiBS ZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ID4g Cj4gPiA+IG9uY2Ugd2UgZmlndXJlZCB0aGUgVFlQRV9OVUxMIHRoaW5nIG91dC4KPiA+ID4gLURh bmllbAo+ID4gPiAKPiA+ID4gPiAgCWNhc2UgSERNSV9QQUNLRVRfVFlQRV9HRU5FUkFMX0NPTlRS T0w6Cj4gPiA+ID4gIAkJcmV0dXJuIFZJREVPX0RJUF9FTkFCTEVfR0NQOwo+ID4gPiA+ICAJY2Fz ZSBIRE1JX1BBQ0tFVF9UWVBFX0dBTVVUX01FVEFEQVRBOgo+ID4gPiA+ICAJCXJldHVybiBWSURF T19ESVBfRU5BQkxFX0dBTVVUOwo+ID4gPiA+ICsJY2FzZSBEUF9TRFBfVlNDOgo+ID4gPiA+ICsJ CXJldHVybiAwOwo+ID4gPiA+ICAJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FWSToKPiA+ID4g PiAgCQlyZXR1cm4gVklERU9fRElQX0VOQUJMRV9BVkk7Cj4gPiA+ID4gIAljYXNlIEhETUlfSU5G T0ZSQU1FX1RZUEVfU1BEOgo+ID4gPiA+IEBAIC0xMTksNiArMTIzLDggQEAgc3RhdGljIHUzMiBn NHhfaW5mb2ZyYW1lX2VuYWJsZSh1bnNpZ25lZCBpbnQgdHlwZSkKPiA+ID4gPiAgc3RhdGljIHUz MiBoc3dfaW5mb2ZyYW1lX2VuYWJsZSh1bnNpZ25lZCBpbnQgdHlwZSkKPiA+ID4gPiAgewo+ID4g PiA+ICAJc3dpdGNoICh0eXBlKSB7Cj4gPiA+ID4gKwljYXNlIEhETUlfUEFDS0VUX1RZUEVfTlVM TDoKPiA+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gPiAgCWNhc2UgSERNSV9QQUNLRVRfVFlQRV9H RU5FUkFMX0NPTlRST0w6Cj4gPiA+ID4gIAkJcmV0dXJuIFZJREVPX0RJUF9FTkFCTEVfR0NQX0hT VzsKPiA+ID4gPiAgCWNhc2UgSERNSV9QQUNLRVRfVFlQRV9HQU1VVF9NRVRBREFUQToKPiA+ID4g PiBAQCAtMTk3LDE5ICsyMDMsMTkgQEAgc3RhdGljIHZvaWQgZzR4X3dyaXRlX2luZm9mcmFtZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gPiAgCVBPU1RJTkdfUkVBRChWSURF T19ESVBfQ1RMKTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiAtc3RhdGljIGJvb2wgZzR4 X2luZm9mcmFtZV9lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ ICtzdGF0aWMgdTMyIGc0eF9pbmZvZnJhbWVzX2VuYWJsZWQoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gPiA+ID4gIAkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKPiA+ID4gPiAgewo+ID4gPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gPiA+ID4gIAl1MzIgdmFs ID0gSTkxNV9SRUFEKFZJREVPX0RJUF9DVEwpOwo+ID4gPiA+ICAKPiA+ID4gPiAgCWlmICgodmFs ICYgVklERU9fRElQX0VOQUJMRSkgPT0gMCkKPiA+ID4gPiAtCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJaWYgKCh2YWwgJiBWSURFT19ESVBf UE9SVF9NQVNLKSAhPSBWSURFT19ESVBfUE9SVChlbmNvZGVyLT5wb3J0KSkKPiA+ID4gPiAtCQly ZXR1cm4gZmFsc2U7Cj4gPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ID4gIAo+ID4gPiA+IC0JcmV0 dXJuIHZhbCAmIChWSURFT19ESVBfRU5BQkxFX0FWSSB8Cj4gPiA+ID4gKwlyZXR1cm4gdmFsICYg KFZJREVPX0RJUF9FTkFCTEUgfCBWSURFT19ESVBfRU5BQkxFX0FWSSB8Cj4gPiA+ID4gIAkJICAg ICAgVklERU9fRElQX0VOQUJMRV9WRU5ET1IgfCBWSURFT19ESVBfRU5BQkxFX1NQRCk7Cj4gPiA+ ID4gIH0KPiA+ID4gPiAgCj4gPiA+ID4gQEAgLTI1Miw3ICsyNTgsNyBAQCBzdGF0aWMgdm9pZCBp Ynhfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ ICAJUE9TVElOR19SRUFEKHJlZyk7Cj4gPiA+ID4gIH0KPiA+ID4gPiAgCj4gPiA+ID4gLXN0YXRp YyBib29sIGlieF9pbmZvZnJhbWVfZW5hYmxlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiA+ID4gPiArc3RhdGljIHUzMiBpYnhfaW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ICAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gPiA+ID4gIHsKPiA+ID4gPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gPiA+ IEBAIC0yNjEsMTIgKzI2NywxMiBAQCBzdGF0aWMgYm9vbCBpYnhfaW5mb2ZyYW1lX2VuYWJsZWQo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiA+ID4gIAl1MzIgdmFsID0gSTkxNV9S RUFEKHJlZyk7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJaWYgKCh2YWwgJiBWSURFT19ESVBfRU5BQkxF KSA9PSAwKQo+ID4gPiA+IC0JCXJldHVybiBmYWxzZTsKPiA+ID4gPiArCQlyZXR1cm4gMDsKPiA+ ID4gPiAgCj4gPiA+ID4gIAlpZiAoKHZhbCAmIFZJREVPX0RJUF9QT1JUX01BU0spICE9IFZJREVP X0RJUF9QT1JUKGVuY29kZXItPnBvcnQpKQo+ID4gPiA+IC0JCXJldHVybiBmYWxzZTsKPiA+ID4g PiArCQlyZXR1cm4gMDsKPiA+ID4gPiAgCj4gPiA+ID4gLQlyZXR1cm4gdmFsICYgKFZJREVPX0RJ UF9FTkFCTEVfQVZJIHwKPiA+ID4gPiArCXJldHVybiB2YWwgJiAoVklERU9fRElQX0VOQUJMRSB8 IFZJREVPX0RJUF9FTkFCTEVfQVZJIHwKPiA+ID4gPiAgCQkgICAgICBWSURFT19ESVBfRU5BQkxF X1ZFTkRPUiB8IFZJREVPX0RJUF9FTkFCTEVfR0FNVVQgfAo+ID4gPiA+ICAJCSAgICAgIFZJREVP X0RJUF9FTkFCTEVfU1BEIHwgVklERU9fRElQX0VOQUJMRV9HQ1ApOwo+ID4gPiA+ICB9Cj4gPiA+ ID4gQEAgLTMxMyw3ICszMTksNyBAQCBzdGF0aWMgdm9pZCBjcHRfd3JpdGVfaW5mb2ZyYW1lKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ICAJUE9TVElOR19SRUFEKHJlZyk7 Cj4gPiA+ID4gIH0KPiA+ID4gPiAgCj4gPiA+ID4gLXN0YXRpYyBib29sIGNwdF9pbmZvZnJhbWVf ZW5hYmxlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gPiArc3RhdGljIHUz MiBjcHRfaW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ID4gPiA+ICAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcp Cj4gPiA+ID4gIHsKPiA+ID4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gPiA+IEBAIC0zMjEsOSArMzI3LDkgQEAg c3RhdGljIGJvb2wgY3B0X2luZm9mcmFtZV9lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ID4gPiA+ICAJdTMyIHZhbCA9IEk5MTVfUkVBRChUVklERU9fRElQX0NUTChwaXBl KSk7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJaWYgKCh2YWwgJiBWSURFT19ESVBfRU5BQkxFKSA9PSAw KQo+ID4gPiA+IC0JCXJldHVybiBmYWxzZTsKPiA+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gPiAg Cj4gPiA+ID4gLQlyZXR1cm4gdmFsICYgKFZJREVPX0RJUF9FTkFCTEVfQVZJIHwKPiA+ID4gPiAr CXJldHVybiB2YWwgJiAoVklERU9fRElQX0VOQUJMRSB8IFZJREVPX0RJUF9FTkFCTEVfQVZJIHwK PiA+ID4gPiAgCQkgICAgICBWSURFT19ESVBfRU5BQkxFX1ZFTkRPUiB8IFZJREVPX0RJUF9FTkFC TEVfR0FNVVQgfAo+ID4gPiA+ICAJCSAgICAgIFZJREVPX0RJUF9FTkFCTEVfU1BEIHwgVklERU9f RElQX0VOQUJMRV9HQ1ApOwo+ID4gPiA+ICB9Cj4gPiA+ID4gQEAgLTM2Nyw3ICszNzMsNyBAQCBz dGF0aWMgdm9pZCB2bHZfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ID4gPiA+ICAJUE9TVElOR19SRUFEKHJlZyk7Cj4gPiA+ID4gIH0KPiA+ID4gPiAgCj4g PiA+ID4gLXN0YXRpYyBib29sIHZsdl9pbmZvZnJhbWVfZW5hYmxlZChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ID4gPiArc3RhdGljIHUzMiB2bHZfaW5mb2ZyYW1lc19lbmFibGVk KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ICAJCQkJICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gPiA+ID4gIHsKPiA+ID4gPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOwo+ID4gPiA+IEBAIC0zNzUsMTIgKzM4MSwxMiBAQCBzdGF0aWMgYm9vbCB2bHZfaW5mb2Zy YW1lX2VuYWJsZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiA+ID4gIAl1MzIg dmFsID0gSTkxNV9SRUFEKFZMVl9UVklERU9fRElQX0NUTChwaXBlKSk7Cj4gPiA+ID4gIAo+ID4g PiA+ICAJaWYgKCh2YWwgJiBWSURFT19ESVBfRU5BQkxFKSA9PSAwKQo+ID4gPiA+IC0JCXJldHVy biBmYWxzZTsKPiA+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gPiAgCj4gPiA+ID4gIAlpZiAoKHZh bCAmIFZJREVPX0RJUF9QT1JUX01BU0spICE9IFZJREVPX0RJUF9QT1JUKGVuY29kZXItPnBvcnQp KQo+ID4gPiA+IC0JCXJldHVybiBmYWxzZTsKPiA+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gPiAg Cj4gPiA+ID4gLQlyZXR1cm4gdmFsICYgKFZJREVPX0RJUF9FTkFCTEVfQVZJIHwKPiA+ID4gPiAr CXJldHVybiB2YWwgJiAoVklERU9fRElQX0VOQUJMRSB8IFZJREVPX0RJUF9FTkFCTEVfQVZJIHwK PiA+ID4gPiAgCQkgICAgICBWSURFT19ESVBfRU5BQkxFX1ZFTkRPUiB8IFZJREVPX0RJUF9FTkFC TEVfR0FNVVQgfAo+ID4gPiA+ICAJCSAgICAgIFZJREVPX0RJUF9FTkFCTEVfU1BEIHwgVklERU9f RElQX0VOQUJMRV9HQ1ApOwo+ID4gPiA+ICB9Cj4gPiA+ID4gQEAgLTQxOSw3ICs0MjUsNyBAQCBz dGF0aWMgdm9pZCBoc3dfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ID4gPiA+ICAJUE9TVElOR19SRUFEKGN0bF9yZWcpOwo+ID4gPiA+ICB9Cj4gPiA+ID4g IAo+ID4gPiA+IC1zdGF0aWMgYm9vbCBoc3dfaW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gPiA+ID4gK3N0YXRpYyB1MzIgaHN3X2luZm9mcmFtZXNfZW5h YmxlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gPiAgCQkJCSAgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ID4gPiA+ICB7Cj4gPiA+ID4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJh c2UuZGV2KTsKPiA+ID4gPiBAQCAtNDMwLDYgKzQzNiw0MiBAQCBzdGF0aWMgYm9vbCBoc3dfaW5m b2ZyYW1lX2VuYWJsZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiA+ID4gIAkJ ICAgICAgVklERU9fRElQX0VOQUJMRV9HTVBfSFNXIHwgVklERU9fRElQX0VOQUJMRV9TUERfSFNX KTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiArc3RhdGljIGNvbnN0IHU4IGluZm9mcmFt ZV90eXBlX3RvX2lkeFtdID0gewo+ID4gPiA+ICsJSERNSV9QQUNLRVRfVFlQRV9OVUxMLAo+ID4g PiA+ICsJSERNSV9QQUNLRVRfVFlQRV9HRU5FUkFMX0NPTlRST0wsCj4gPiA+ID4gKwlIRE1JX1BB Q0tFVF9UWVBFX0dBTVVUX01FVEFEQVRBLAo+ID4gPiA+ICsJRFBfU0RQX1ZTQywKPiA+ID4gPiAr CUhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJLAo+ID4gPiA+ICsJSERNSV9JTkZPRlJBTUVfVFlQRV9T UEQsCj4gPiA+ID4gKwlIRE1JX0lORk9GUkFNRV9UWVBFX1ZFTkRPUiwKPiA+ID4gPiArfTsKPiA+ ID4gPiArCj4gPiA+ID4gK3UzMiBpbnRlbF9oZG1pX2luZm9mcmFtZXNfZW5hYmxlZChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gPiArCQkJCSAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ID4gK3sKPiA+ID4gPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4g PiA+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3Bv cnQoJmVuY29kZXItPmJhc2UpOwo+ID4gPiA+ICsJdTMyIHZhbCwgcmV0ID0gMDsKPiA+ID4gPiAr CWludCBpOwo+ID4gPiA+ICsKPiA+ID4gPiArCXZhbCA9IGRpZ19wb3J0LT5pbmZvZnJhbWVzX2Vu YWJsZWQoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJLyogbWFwIGZy b20gaGFyZHdhcmUgYml0cyB0byBkaXAgaWR4ICovCj4gPiA+ID4gKwlmb3IgKGkgPSAwOyBpIDwg QVJSQVlfU0laRShpbmZvZnJhbWVfdHlwZV90b19pZHgpOyBpKyspIHsKPiA+ID4gPiArCQl1bnNp Z25lZCBpbnQgdHlwZSA9IGluZm9mcmFtZV90eXBlX3RvX2lkeFtpXTsKPiA+ID4gPiArCj4gPiA+ ID4gKwkJaWYgKEhBU19EREkoZGV2X3ByaXYpKSB7Cj4gPiA+ID4gKwkJCWlmICh2YWwgJiBoc3df aW5mb2ZyYW1lX2VuYWJsZSh0eXBlKSkKPiA+ID4gPiArCQkJCXJldCB8PSBCSVQoaSk7Cj4gPiA+ ID4gKwkJfSBlbHNlIHsKPiA+ID4gPiArCQkJaWYgKHZhbCAmIGc0eF9pbmZvZnJhbWVfZW5hYmxl KHR5cGUpKQo+ID4gPiA+ICsJCQkJcmV0IHw9IEJJVChpKTsKPiA+ID4gPiArCQl9Cj4gPiA+ID4g Kwl9Cj4gPiA+ID4gKwo+ID4gPiA+ICsJcmV0dXJuIHJldDsKPiA+ID4gPiArfQo+ID4gPiA+ICsK PiA+ID4gPiAgLyoKPiA+ID4gPiAgICogVGhlIGRhdGEgd2Ugd3JpdGUgdG8gdGhlIERJUCBkYXRh IGJ1ZmZlciByZWdpc3RlcnMgaXMgMSBieXRlIGJpZ2dlciB0aGFuIHRoZQo+ID4gPiA+ICAgKiBI RE1JIGluZm9mcmFtZSBzaXplIGJlY2F1c2Ugb2YgYW4gRUNDL3Jlc2VydmVkIGJ5dGUgYXQgcG9z aXRpb24gMyAoc3RhcnRpbmcKPiA+ID4gPiBAQCAtMTIwMCw3ICsxMjQyLDYgQEAgc3RhdGljIHZv aWQgaW50ZWxfaGRtaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ID4gPiA+ICAJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gPiA+ ID4gIHsKPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2lu dGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwo+ID4gPiA+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBoZG1pX3RvX2RpZ19wb3J0KGludGVsX2hkbWkpOwo+ID4g PiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ID4gPiA+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4g PiA+ICAJdTMyIHRtcCwgZmxhZ3MgPSAwOwo+ID4gPiA+IEBAIC0xMjIzLDcgKzEyNjQsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9oZG1pX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gPiA+ID4gIAlpZiAodG1wICYgSERNSV9NT0RFX1NFTEVDVF9IRE1JKQo+ID4gPiA+ ICAJCXBpcGVfY29uZmlnLT5oYXNfaGRtaV9zaW5rID0gdHJ1ZTsKPiA+ID4gPiAgCj4gPiA+ID4g LQlpZiAoaW50ZWxfZGlnX3BvcnQtPmluZm9mcmFtZV9lbmFibGVkKGVuY29kZXIsIHBpcGVfY29u ZmlnKSkKPiA+ID4gPiArCWlmIChpbnRlbF9oZG1pX2luZm9mcmFtZXNfZW5hYmxlZChlbmNvZGVy LCBwaXBlX2NvbmZpZykpCj4gPiA+ID4gIAkJcGlwZV9jb25maWctPmhhc19pbmZvZnJhbWUgPSB0 cnVlOwo+ID4gPiA+ICAKPiA+ID4gPiAgCWlmICh0bXAgJiBTRFZPX0FVRElPX0VOQUJMRSkKPiA+ ID4gPiBAQCAtMjMyNSwyMyArMjM2NiwyMyBAQCB2b2lkIGludGVsX2luZm9mcmFtZV9pbml0KHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQo+ID4gPiA+ICAJaWYgKElT X1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gPiA+ ID4gIAkJaW50ZWxfZGlnX3BvcnQtPndyaXRlX2luZm9mcmFtZSA9IHZsdl93cml0ZV9pbmZvZnJh bWU7Cj4gPiA+ID4gIAkJaW50ZWxfZGlnX3BvcnQtPnNldF9pbmZvZnJhbWVzID0gdmx2X3NldF9p bmZvZnJhbWVzOwo+ID4gPiA+IC0JCWludGVsX2RpZ19wb3J0LT5pbmZvZnJhbWVfZW5hYmxlZCA9 IHZsdl9pbmZvZnJhbWVfZW5hYmxlZDsKPiA+ID4gPiArCQlpbnRlbF9kaWdfcG9ydC0+aW5mb2Zy YW1lc19lbmFibGVkID0gdmx2X2luZm9mcmFtZXNfZW5hYmxlZDsKPiA+ID4gPiAgCX0gZWxzZSBp ZiAoSVNfRzRYKGRldl9wcml2KSkgewo+ID4gPiA+ICAJCWludGVsX2RpZ19wb3J0LT53cml0ZV9p bmZvZnJhbWUgPSBnNHhfd3JpdGVfaW5mb2ZyYW1lOwo+ID4gPiA+ICAJCWludGVsX2RpZ19wb3J0 LT5zZXRfaW5mb2ZyYW1lcyA9IGc0eF9zZXRfaW5mb2ZyYW1lczsKPiA+ID4gPiAtCQlpbnRlbF9k aWdfcG9ydC0+aW5mb2ZyYW1lX2VuYWJsZWQgPSBnNHhfaW5mb2ZyYW1lX2VuYWJsZWQ7Cj4gPiA+ ID4gKwkJaW50ZWxfZGlnX3BvcnQtPmluZm9mcmFtZXNfZW5hYmxlZCA9IGc0eF9pbmZvZnJhbWVz X2VuYWJsZWQ7Cj4gPiA+ID4gIAl9IGVsc2UgaWYgKEhBU19EREkoZGV2X3ByaXYpKSB7Cj4gPiA+ ID4gIAkJaW50ZWxfZGlnX3BvcnQtPndyaXRlX2luZm9mcmFtZSA9IGhzd193cml0ZV9pbmZvZnJh bWU7Cj4gPiA+ID4gIAkJaW50ZWxfZGlnX3BvcnQtPnNldF9pbmZvZnJhbWVzID0gaHN3X3NldF9p bmZvZnJhbWVzOwo+ID4gPiA+IC0JCWludGVsX2RpZ19wb3J0LT5pbmZvZnJhbWVfZW5hYmxlZCA9 IGhzd19pbmZvZnJhbWVfZW5hYmxlZDsKPiA+ID4gPiArCQlpbnRlbF9kaWdfcG9ydC0+aW5mb2Zy YW1lc19lbmFibGVkID0gaHN3X2luZm9mcmFtZXNfZW5hYmxlZDsKPiA+ID4gPiAgCX0gZWxzZSBp ZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYpKSB7Cj4gPiA+ID4gIAkJaW50ZWxfZGlnX3BvcnQtPndy aXRlX2luZm9mcmFtZSA9IGlieF93cml0ZV9pbmZvZnJhbWU7Cj4gPiA+ID4gIAkJaW50ZWxfZGln X3BvcnQtPnNldF9pbmZvZnJhbWVzID0gaWJ4X3NldF9pbmZvZnJhbWVzOwo+ID4gPiA+IC0JCWlu dGVsX2RpZ19wb3J0LT5pbmZvZnJhbWVfZW5hYmxlZCA9IGlieF9pbmZvZnJhbWVfZW5hYmxlZDsK PiA+ID4gPiArCQlpbnRlbF9kaWdfcG9ydC0+aW5mb2ZyYW1lc19lbmFibGVkID0gaWJ4X2luZm9m cmFtZXNfZW5hYmxlZDsKPiA+ID4gPiAgCX0gZWxzZSB7Cj4gPiA+ID4gIAkJaW50ZWxfZGlnX3Bv cnQtPndyaXRlX2luZm9mcmFtZSA9IGNwdF93cml0ZV9pbmZvZnJhbWU7Cj4gPiA+ID4gIAkJaW50 ZWxfZGlnX3BvcnQtPnNldF9pbmZvZnJhbWVzID0gY3B0X3NldF9pbmZvZnJhbWVzOwo+ID4gPiA+ IC0JCWludGVsX2RpZ19wb3J0LT5pbmZvZnJhbWVfZW5hYmxlZCA9IGNwdF9pbmZvZnJhbWVfZW5h YmxlZDsKPiA+ID4gPiArCQlpbnRlbF9kaWdfcG9ydC0+aW5mb2ZyYW1lc19lbmFibGVkID0gY3B0 X2luZm9mcmFtZXNfZW5hYmxlZDsKPiA+ID4gPiAgCX0KPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ ID4gPiAtLSAKPiA+ID4gPiAyLjE2LjQKPiA+ID4gPiAKPiA+ID4gPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gPiA+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiA+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ID4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiA+ ID4gCj4gPiA+IC0tIAo+ID4gPiBEYW5pZWwgVmV0dGVyCj4gPiA+IFNvZnR3YXJlIEVuZ2luZWVy LCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ID4gCj4gPiAt LSAKPiA+IFZpbGxlIFN5cmrDpGzDpAo+ID4gSW50ZWwKPiAKPiAtLSAKPiBEYW5pZWwgVmV0dGVy Cj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gaHR0cDovL2Jsb2cuZmZ3 bGwuY2gKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==