From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH 05/15] drm/i915: GuC-specific firmware loader Date: Mon, 06 Jul 2015 17:37:57 +0100 Message-ID: <559AAEE5.5010101@intel.com> References: <1435926637-30892-1-git-send-email-david.s.gordon@intel.com> <1435926637-30892-6-git-send-email-david.s.gordon@intel.com> <20150706142822.GJ2156@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 483836E754 for ; Mon, 6 Jul 2015 09:38:25 -0700 (PDT) In-Reply-To: <20150706142822.GJ2156@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 List-Id: intel-gfx@lists.freedesktop.org T24gMDYvMDcvMTUgMTU6MjgsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gT24gRnJpLCBKdWwgMDMs IDIwMTUgYXQgMDE6MzA6MjdQTSArMDEwMCwgRGF2ZSBHb3Jkb24gd3JvdGU6Cj4+IEZyb206IEFs ZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgo+Pgo+PiBUaGlzIHVzZXMgdGhlIGNvbW1vbiBmaXJt d2FyZSBsb2FkZXIgdG8gZmV0Y2ggdGhlIGZpcm13YXJlIGltYWdlLAo+PiB0aGVuIGxvYWRzIGl0 IGludG8gdGhlIEd1QydzIG1lbW9yeSB2aWEgYSBkZWRpY2F0ZWQgRE1BIGVuZ2luZS4KPj4KPj4g VGhpcyBwYXRjaCBpcyBkZXJpdmVkIGZyb20gR3VDIGxvYWRpbmcgd29yayBvcmlnaW5hbGx5IGRv bmUgYnkKPj4gVmluaXQgQXphZCBhbmQgQmVuIFdpZGF3c2t5LiBJdCBoYXMgYmVlbiByZWNvbnN0 cnVjdGVkIHRvIGFjY29yZAo+PiB3aXRoIHRoZSBjb21tb24gZmlybXdhcmUgbG9hZGluZyBtZWNo YW5pc20gYnkgRGF2ZSBHb3Jkb24gYXMgd2VsbAo+PiBhcyBuZXcgZmlybXdhcmUgbGF5b3V0IGV0 Yy4KPj4KPj4gdjI6Cj4+ICAgICAgVmFyaW91cyBpbXByb3ZlbWVudHMgcGVyIHJldmlldyBjb21t ZW50cyBieSBDaHJpcyBXaWxzb24KPj4KPj4gdjM6Cj4+ICAgICAgUmVtb3ZlZCAnd2FpdCcgcGFy YW1ldGVyIHRvIGludGVsX2d1Y191Y29kZV9sb2FkKCkgYXMgcHJlZmV0Y2gKPj4gICAgICAgICAg aXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCBpbiB0aGUgY29tbW9uIGZpcm13YXJlIGxvYWRlciwgcGVy Cj4+IAlEYW5pZWwgVmV0dGVyJ3MgcmVxdWVzdC4KPj4gICAgICBGL3cgY2hlY2tlciBjYWxsYmFj ayBmbiBub3cgcmV0dXJucyBlcnJubyByYXRoZXIgdGhhbiBib29sLgo+Pgo+PiBJc3N1ZTogVkla LTQ4ODQKPj4gU2lnbmVkLW9mZi1ieTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+Cj4+IFNp Z25lZC1vZmYtYnk6IERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+Cj4+IC0t LQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICB8ICAgMyArCj4+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyAgICAgICAgIHwgICA0ICsKPj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgMTEgKwo+PiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8ICAgOCArCj4+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgIHwgICA0ICstCj4+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjLmggICAgICAgIHwgIDQ5ICsrKysKPj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgfCA0NDggKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPj4gICA3IGZpbGVzIGNoYW5nZWQsIDUyNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2d1Yy5oCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2d1Y19sb2FkZXIuYwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr ZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+PiBpbmRleCBmMWY4MGZjLi42 MmE4YzgzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+PiBAQCAtNDIsNiArNDIsOSBAQCBp OTE1LXkgKz0gaTkxNV9jbWRfcGFyc2VyLm8gXAo+PiAgICMgZ2VuZXJpYyBhbmNpbGxpYXJ5IG1p Y3JvY29udHJvbGxlciBzdXBwb3J0Cj4+ICAgaTkxNS15ICs9IGludGVsX3VjX2xvYWRlci5vCj4+ Cj4+ICsjIGdlbmVyYWwtcHVycG9zZSBtaWNyb2NvbnRyb2xsZXIgKEd1Qykgc3VwcG9ydAo+PiAr aTkxNS15ICs9IGludGVsX2d1Y19sb2FkZXIubwo+PiArCj4+ICAgIyBhdXRvZ2VuZXJhdGVkIG51 bGwgcmVuZGVyIHN0YXRlCj4+ICAgaTkxNS15ICs9IGludGVsX3JlbmRlcnN0YXRlX2dlbjYubyBc Cj4+ICAgCSAgaW50ZWxfcmVuZGVyc3RhdGVfZ2VuNy5vIFwKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rt YS5jCj4+IGluZGV4IGM1MzQ5ZmEuLjczMGQ5MWIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZG1hLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k bWEuYwo+PiBAQCAtNDY5LDYgKzQ2OSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9sb2FkX21vZGVzZXRf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+Pgo+PiAgIGNsZWFudXBfZ2VtOgo+PiAgIAlt dXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4+ICsJaW50ZWxfZ3VjX3Vjb2RlX2Zpbmko ZGV2KTsKPj4gICAJaTkxNV9nZW1fY2xlYW51cF9yaW5nYnVmZmVyKGRldik7Cj4+ICAgCWk5MTVf Z2VtX2NvbnRleHRfZmluaShkZXYpOwo+PiAgIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211 dGV4KTsKPj4gQEAgLTg2Niw2ICs4NjcsOCBAQCBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQo+Pgo+PiAgIAlpbnRlbF91bmNv cmVfaW5pdChkZXYpOwo+Pgo+PiArCWludGVsX2d1Y191Y29kZV9pbml0KGRldik7Cj4+ICsKPj4g ICAJLyogTG9hZCBDU1IgRmlybXdhcmUgZm9yIFNLTCAqLwo+PiAgIAlpbnRlbF9jc3JfdWNvZGVf aW5pdChkZXYpOwo+Pgo+PiBAQCAtMTExNyw2ICsxMTIwLDcgQEAgaW50IGk5MTVfZHJpdmVyX3Vu bG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAlmbHVzaF93b3JrcXVldWUoZGV2X3By aXYtPndxKTsKPj4KPj4gICAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+PiArCWlu dGVsX2d1Y191Y29kZV9maW5pKGRldik7Cj4+ICAgCWk5MTVfZ2VtX2NsZWFudXBfcmluZ2J1ZmZl cihkZXYpOwo+PiAgIAlpOTE1X2dlbV9jb250ZXh0X2ZpbmkoZGV2KTsKPj4gICAJbXV0ZXhfdW5s b2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBpbmRl eCA5NjE4ZjU3Li5hN2NjYWM1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gQEAg LTUwLDYgKzUwLDcgQEAKPj4gICAjaW5jbHVkZSA8bGludXgvaW50ZWwtaW9tbXUuaD4KPj4gICAj aW5jbHVkZSA8bGludXgva3JlZi5oPgo+PiAgICNpbmNsdWRlIDxsaW51eC9wbV9xb3MuaD4KPj4g KyNpbmNsdWRlICJpbnRlbF9ndWMuaCIKPj4KPj4gICAvKiBHZW5lcmFsIGN1c3RvbWl6YXRpb246 Cj4+ICAgICovCj4+IEBAIC0xNjg3LDYgKzE2ODgsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSB7Cj4+Cj4+ICAgCXN0cnVjdCBpOTE1X3ZpcnR1YWxfZ3B1IHZncHU7Cj4+Cj4+ICsJc3RydWN0 IGludGVsX2d1YyBndWM7Cj4+ICsKPj4gICAJc3RydWN0IGludGVsX2NzciBjc3I7Cj4+Cj4+ICAg CS8qIERpc3BsYXkgQ1NSLXJlbGF0ZWQgcHJvdGVjdGlvbiAqLwo+PiBAQCAtMTkzMSw2ICsxOTM0 LDExIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl90b19pOTE1 KHN0cnVjdCBkZXZpY2UgKmRldikKPj4gICAJcmV0dXJuIHRvX2k5MTUoZGV2X2dldF9kcnZkYXRh KGRldikpOwo+PiAgIH0KPj4KPj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmd1Y190b19pOTE1KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPj4gK3sKPj4gKwlyZXR1cm4g Y29udGFpbmVyX29mKGd1Yywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsIGd1Yyk7Cj4+ICt9Cj4+ ICsKPj4gICAvKiBJdGVyYXRlIG92ZXIgaW5pdGlhbGlzZWQgcmluZ3MgKi8KPj4gICAjZGVmaW5l IGZvcl9lYWNoX3JpbmcocmluZ19fLCBkZXZfcHJpdl9fLCBpX18pIFwKPj4gICAJZm9yICgoaV9f KSA9IDA7IChpX18pIDwgSTkxNV9OVU1fUklOR1M7IChpX18pKyspIFwKPj4gQEAgLTI1MzksNiAr MjU0Nyw5IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFibGUgewo+Pgo+PiAgICNkZWZpbmUgSEFT X0NTUihkZXYpCShJU19TS1lMQUtFKGRldikpCj4+Cj4+ICsjZGVmaW5lIEhBU19HVUNfVUNPREUo ZGV2KQkoSVNfR0VOOShkZXYpKQo+PiArI2RlZmluZSBIQVNfR1VDX1NDSEVEKGRldikJKElTX0dF TjkoZGV2KSkKPj4gKwo+PiAgICNkZWZpbmUgSU5URUxfUENIX0RFVklDRV9JRF9NQVNLCQkweGZm MDAKPj4gICAjZGVmaW5lIElOVEVMX1BDSF9JQlhfREVWSUNFX0lEX1RZUEUJCTB4M2IwMAo+PiAg ICNkZWZpbmUgSU5URUxfUENIX0NQVF9ERVZJQ0VfSURfVFlQRQkJMHgxYzAwCj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwo+PiBpbmRleCBhYThmNGMzLi44MGQ3ODkwIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKPj4gQEAgLTUwNzYsNiArNTA3NiwxNCBAQCBpOTE1X2dlbV9pbml0X2h3 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgCQkJZ290byBvdXQ7Cj4+ICAgCX0KPj4KPj4g KwkvKgo+PiArCSAqIFdlIGNhbid0IGVuYWJsZSBjb250ZXh0cyB1bnRpbCBhbGwgZmlybXdhcmUg aXMgbG9hZGVkOyBpZiB0aGlzCj4+ICsJICogZmFpbHMsIGRpc2FibGUgR3VDIHN1Ym1pc3Npb25z IGFuZCBmYWxsIGJhY2sgdG8gZXhlY2xpc3QgbW9kZQo+PiArCSAqLwo+PiArCXJldCA9IGludGVs X2d1Y191Y29kZV9sb2FkKGRldik7Cj4+ICsJaWYgKHJldCkKPj4gKwkJaTkxNS5lbmFibGVfZ3Vj X3N1Ym1pc3Npb24gPSBmYWxzZTsKPgo+IEkgd2FudCBhbiAtRUlPIG9yIHNpbWlsYXIgaGVyZSBz aW5jZSBydW50aW1lIGZhbGxiYWNrcyB0byBvdGhlciBtb2Rlcwo+IHJlYWxseSBhcmVuJ3QgZ3Jl YXQgZnJvbSBhIG1haW50YWluYW5jZSBwZXJzcGVjdGl2ZSwgc2VlIG15IGNvbW1lbnRzIG9uCj4g dGhlIGlycSByb3V0aW5nIGNvZGUuCj4KPiBZZXMgd2UgY2FuIG1ha2UgdGhpcyB3b3JrLCBidXQg Z2l2aW4gb3VyIHN0ZWxsYXIgdHJhY2sgcmVjb3JkIHdpdGgga2VlcGluZwo+IGRpc2FibGVkIGZl YXR1cmVzIHdvcmtpbmcgaXQgd29uJ3Qgd29yayBmb3IgbG9uZy4gQW5kIGl0IHdpbGwgaW1wYWN0 IHVzCj4gd2l0aCBhZGRpdGlvbmFsIGNvbnN0cmFpbnRzIHVudGlsIHdlIGdpdmUgdXAgYW5kIHJp cCBpdCBvdXQgYWdhaW4uIE5vdAo+IHdvcnRoIGl0IGltbyAtIGlmIHdlIGRlY2lkZSB0byB1c2Ug dGhlIGd1YyBvbiBhIGdpdmVuIHBsYXRmb3JtIHdlIHNob3VsZAo+IGltbyByZXF1aXJlIGl0IGFu ZCBzdGljayB0byB0aGF0IGRlY2lzaW9uIGZvciBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZQo+IGRy aXZlciBpcyBsb2FkZWQuIERldmVsb3BlcnMgY2FuIHN0aWxsIGNoYW5nZSB0aGUgb3B0aW9uIHdo ZW4gcmVsb2FkaW5nIHRoZQo+IGRyaXZlciwgdXNlcnMgd29uJ3QgaGF2ZSBhIGNoYW5jZSB0byBj YXVzZSB0cm91YmxlLgo+IC1EYW5pZWwKCkFnYWluLCB0aGlzIGlzbid0IHJlYWxseSAicnVudGlt ZSIgLS0gd2UncmUgc3RpbGwgaW4gdGhlIGRyaXZlciBsb2FkaW5nIApzdGFnZSBoZXJlLiBUaGlz IGlzIGFuYWxvZ291cyB0byB0aGUgdmFyaW91cyAic2FuaXRpemUiIGZ1bmN0aW9ucyB3aGVyZSAK d2UgY3Jvc3MtY2hlY2sgd2hhdCBvcHRpb25zIGhhdmUgYmVlbiBzZXQgYW5kIGRlY2lkZSB3aGlj aCB0byBvdmVycmlkZSwgCmV4Y2VwdCB0aGF0IGhlcmUgd2UgY2FuJ3QgZGV0ZXJtaW5lIHdoZXRo ZXIgd2UncmUgZ29pbmcgdG8gcmVzcGVjdCB0aGUgCmRlZmF1bHQgb3IgdXNlci1zcGVjaWZpZWQg cmVxdWVzdCBmb3IgR3VDIHN1Ym1pc3Npb24gbW9kZSB1bnRpbCB3ZSBrbm93IAp3aGV0aGVyIHdl IGhhdmUgdmFsaWQgZmlybXdhcmUgZm9yIHRoZSBHdUMuCgpBdCB0aGlzIHBvaW50LCB3ZSBoYXZl bid0IHN1Ym1pdHRlZCBhbnkgYmF0Y2hlcywgc28gdGhlIG1haW4gcG9pbnQgb2YgCnVzZSBvZiB0 aGlzIGZsYWcgLS0gaW4gdGhlIHN1Ym1pc3Npb24gcGF0aCwgdG8gc3dpdGNoIGJldHdlZW4gZXhl Y2xpc3QgCmFuZCBHdUMgbW9kZXMgLS0gaGFzIG5ldmVyIHlldCBiZWVuIGV4ZWN1dGVkLiBTbyB0 aGVyZSBzaG91bGQgYmUgbm8gCnByb2JsZW0gd2l0aCBjaGFuZ2luZyB0aGUgdmFsdWUgYmVmb3Jl IGl0J3MgZmlyc3QgdXNlZC4KCkFuZCB0aGlzIGlzIGEgb25lLXdheSBzd2l0Y2g7IHlvdSAob3Ig dGhlIGRlZmF1bHQgY29uZmlnKSBhc2tlZCBmb3IgR3VDIApzdWJtaXNzaW9uLCBidXQgd2UgY2Fu J3Qgc3VwcG9ydCBpdCBzbyB3ZSBkaXNhYmxlIHRoZSBvcHRpb24uIFRoZXJlJ3Mgbm8gCndheSB0 byBzd2l0Y2ggaXQgYmFjayBvbiB3aXRob3V0IHJlbG9hZGluZyB0aGUgZHJpdmVyLiBTbyB0aGlz IC9pcy8gdGhlIApwb2ludCBhdCB3aGljaCB3ZSBkZWNpZGUgdG8gdXNlIHRoZSBHdUMgb24gYSBn aXZlbiBwbGF0Zm9ybSBhbmQgdGhlbiAKc3RpY2sgdG8gdGhhdCBkZWNpc2lvbiBmb3IgYXQgbGVh c3QgYXMgbG9uZyBhcyB0aGUgZHJpdmVyIGlzIGxvYWRlZC4KCldlIGhhdmUgdG8gc3VwcG9ydCBl eGVjbGlzdCBtb2RlIGZvciB0aGUgZm9yZXNlZWFibGUgZnV0dXJlIGFueXdheSwgc28gCnVzaW5n IGl0IG9uIGEgbWFjaGluZSB3aGljaCAod2UgdGhpbmspIG91Z2h0IHRvIGJlIEd1Qy1jYXBhYmxl IGRvZXNuJ3QgCmFkZCAvYW55LyBleHRyYSBtYWludGVuYW5jZSBvdmVyaGVhZCBhdCBhbGwuCgpX aHkgYnJlYWsgdGhlIHVzZXIncyBtYWNoaW5lIHVubmVjZXNzYXJpbHk/IFdpdGggcmVhbCAiZW5k LXVzZXJzIiwgCmVzcGVjaWFsbHkgdGhvc2Ugd2hvIGhhdmUgbmV2ZXIgdXNlZCBMaW51eCBiZWZv cmUsIHlvdSBvbmx5IGdldCBvbmUgCmNoYW5jZS4gU29tZXRpbWVzIEkndmUgaW5zdGFsbGVkIExp bnV4IG9uIGEgKFdpbmRvd3MtdXNpbmcpIGZyaWVuZCdzIAptYWNoaW5lLCBhbmQgaXQgaGFzbid0 IHdvcmtlZCBmaXJzdCB0aW1lLiBUaGVuIEkgc3dpdGNoIHRvIGFub3RoZXIgVlQsIAp0eXBlIHNv bWUgbWFnaWMgaW5jYW50YXRpb25zLCBhbmQgMTAgbWludXRlcyBsYXRlciB3ZSBoYXZlIGEgdXNh YmxlIApsb2dpbiBzY3JlZW4uIFdpbGwgdGhleSBhZG9wdCBMaW51eD8gVW5saWtlbHkgOiggTm8g bWF0dGVyIGhvdyBnb29kIGl0IApsb29rcyB0aGVyZWFmdGVyLCBpZiB0aGUgbWFjaGluZSdzIGhh cmR3YXJlIGRvZXNuJ3Qgd29yayB3aXRoIHRoZSBkaXN0cm8gCnN0cmFpZ2h0IG91dCBvZiB0aGUg Ym94LCB0aGV5J3JlIGp1c3Qgbm90IGdvaW5nIHRvIGJlbGlldmUgaXQncyAKc29tZXRoaW5nIHRo ZXkgY2FuIHVzZS4gU28gaXQncyB2ZXJ5IGltcG9ydGFudCB0aGF0IGV2ZXJ5dGhpbmcgZXNzZW50 aWFsIAp0byB0aGUgZmlyc3QtdGltZSBleHBlcmllbmNlIHdvcmtzIGV2ZW4gd2hlbiBtaXNjb25m aWd1cmVkIC0tIGFuZCAKbm90aGluZyBpcyBtb3JlIGVzc2VudGlhbCB0aGFuIHRoZSBkaXNwbGF5 IGRyaXZlciAobmV0d29ya2luZyBhbmQgd2ktZmkgCmFyZSB0aGUgbmV4dCB0aGluZ3MgdGhhdCB3 aWxsIHB1dCB0aGUgdXNlciBvZmYgaWYgdGhleSBkb24ndCB3b3JrIC0tIGFuZCAKdGhleSdyZSBh bHNvIGRyaXZlcnMgdGhhdCBjb21tb25seSByZWx5IG9uIGZpcm13YXJlIGJsb2JzKS4KCi5EYXZl LgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=