From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: Keep ring->active_list and ring->requests_list consistent Date: Fri, 20 Mar 2015 15:32:52 +0100 Message-ID: <20150320143252.GO1349@phenom.ffwll.local> References: <1426702762-6490-1-git-send-email-chris@chris-wilson.co.uk> <20150319173728.GI31422@phenom.ffwll.local> <20150319221742.GA15445@nuc-i3427.alporthouse.com> <20150320100656.GG1349@phenom.ffwll.local> <20150320130210.GE10812@nuc-i3427.alporthouse.com> <20150320133951.GF10812@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f171.google.com (mail-wi0-f171.google.com [209.85.212.171]) by gabe.freedesktop.org (Postfix) with ESMTP id 627656EC23 for ; Fri, 20 Mar 2015 07:31:41 -0700 (PDT) Received: by wibg7 with SMTP id g7so146082105wib.1 for ; Fri, 20 Mar 2015 07:31:40 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150320133951.GF10812@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Daniel Vetter , intel-gfx@lists.freedesktop.org, John Harrison , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBNYXIgMjAsIDIwMTUgYXQgMDE6Mzk6NTFQTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IE9uIEZyaSwgTWFyIDIwLCAyMDE1IGF0IDAxOjAyOjEwUE0gKzAwMDAsIENocmlzIFdp bHNvbiB3cm90ZToKPiA+IE9uIEZyaSwgTWFyIDIwLCAyMDE1IGF0IDExOjA2OjU3QU0gKzAxMDAs IERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+IE9uIFRodSwgTWFyIDE5LCAyMDE1IGF0IDEwOjE3 OjQyUE0gKzAwMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiA+ID4gPiBPbiBUaHUsIE1hciAxOSwg MjAxNSBhdCAwNjozNzoyOFBNICswMTAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiA+ID4g T24gV2VkLCBNYXIgMTgsIDIwMTUgYXQgMDY6MTk6MjJQTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+ID4gPiA+ID4gPiAJV0FSTklORzogQ1BVOiAwIFBJRDogMTM4MyBhdCBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jOjI3OSBpOTE1X2dlbV9ldmljdF92bSsweDEwYy8w eDE0MCgpCj4gPiA+ID4gPiA+IAlXQVJOX09OKCFsaXN0X2VtcHR5KCZ2bS0+YWN0aXZlX2xpc3Qp KQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBIb3cgZG9lcyB0aGlzIGNvbWUgYWJvdXQgLSB3ZSBjYWxs IGdwdV9pZGxlIGJlZm9yZSB0aGlzIHNlZW1zIHRvIGJsb3cgdXAsCj4gPiA+ID4gPiBzbyBhbGwg cmVxdWVzdHMgc2hvdWxkIGJlIGNvbXBsZXRlZD8KPiA+ID4gPiAKPiA+ID4gPiBIb25lc3RseSwg SSBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0IGVpdGhlci4gSSBoYWQgYW4gZXBpcGhhbnkgd2hlbiBJ IHNhdwo+ID4gPiA+IHRoYXQgd2UgY291bGQgbm93IGhhdmUgYW4gZW1wdHkgcmVxdWVzdCBsaXN0 IGJ1dCBub24tZW1wdHkgYWN0aXZlIGxpc3QKPiA+ID4gPiBhZGRlZCBhIHRlc3QgdG8gZGV0ZWN0 IHdoZW4gdGhhdCBoYXBwZW5zIGFuZCBzaG91dGVkIGV1cmVrYSB3aGVuIHRoZQo+ID4gPiA+IFdB Uk4gZmlyZWQuIEkgY291bGQgdHJpZ2dlciB0aGUgV0FSTiBpbiBldmljdF92bSBwcmV0dHkgcmVs aWFibHksIGJ1dAo+ID4gPiA+IG5vdCBzaW5jZSB0aGlzIHBhdGNoLiBJdCBjb3VsZCBqdXN0IGJl IG1hc2tpbmcgYW5vdGhlciBidWcuCj4gPiA+IAo+ID4gPiBDYW4geW91IHBlcmhhcHMgZG91Ymxl LWNoZWNrIHRoZSB0aGVvcnkgYnkgcHV0dGluZyBhCj4gPiA+IFdBUk5fT04obGlzdF9lbXB0eShh Y3RpdmVfbGlzdCkgIT0gbGlzdF9lbXB5dChyZXF1ZXN0X2xpc3QpKSBpbnRvCj4gPiA+IGdwdV9p ZGxlPyBPZmMgd2l0aCB0aGlzIHBhdGNoIHJldmVydGVkIHNvIHRoYXQgdGhlIGJ1ZyBzdXJmYWNl cyBhZ2Fpbi4KPiA+IAo+ID4gWyA1MjE1LjU2NzU3M10gW2RybTppOTE1X3ZlcmlmeV9saXN0c10g KkVSUk9SKiByZW5kZXIgcmluZzogYWN0aXZlIGxpc3Qgbm90IGVtcHR5LCBidXQgbm8gcmVxdWVz dHMKPiA+IFsgNTIxNS41Njc1ODZdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0t LQo+ID4gWyA1MjE1LjU2NzU5OF0gV0FSTklORzogQ1BVOiAwIFBJRDogMTMwNCBhdCBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jOjMxNjYgaTkxNV9ncHVfaWRsZSsweDg4LzB4OTAoKQo+ ID4gWyA1MjE1LjU2NzYwMl0gV0FSTl9PTihpOTE1X3ZlcmlmeV9saXN0cyhkZXYpKQo+ID4gWyA1 MjE1LjU2NzYwNl0gTW9kdWxlcyBsaW5rZWQgaW46IGN0ciBjY20gYXJjNCBhdGg5ayBhdGg5a19j b21tb24gYXRoOWtfaHcgYm5lcCBhdGggbWFjODAyMTEgcmZjb21tIHNuZF9oZGFfY29kZWNfY29u ZXhhbnQgc25kX2hkYV9jb2RlY19nZW5lcmljIHNuZF9oZGFfaW50ZWwgc25kX2hkYV9jb250cm9s bGVyIHNuZF9oZGFfY29kZWMgdXZjdmlkZW8gc25kX2h3ZGVwIHNuZF9wY20gZ3Bpb19pY2ggdmlk ZW9idWYyX3ZtYWxsb2MgZGVsbF93bWkgY2ZnODAyMTEgdmlkZW9idWYyX21lbW9wcyBzcGFyc2Vf a2V5bWFwIHZpZGVvYnVmMl9jb3JlIGRlbGxfbGFwdG9wIHNuZF9zZXFfbWlkaSB2NGwyX2NvbW1v biBkY2RiYXMgc25kX3NlcV9taWRpX2V2ZW50IGJ0dXNiIHZpZGVvZGV2IGk4ayBzbmRfcmF3bWlk aSBzbmRfc2VxIGhpZF9tdWx0aXRvdWNoIGNvcmV0ZW1wIGJsdWV0b290aCBtaWNyb2NvZGUgc25k X3NlcV9kZXZpY2Ugam95ZGV2IHNuZF90aW1lciBzZXJpb19yYXcgc25kIHNocGNocCBzb3VuZGNv cmUgd21pIGxwY19pY2ggdXNiaGlkIGhpZCBwc21vdXNlIGFoY2kgbGliYWhjaQo+ID4gWyA1MjE1 LjU2NzcwOF0gQ1BVOiAwIFBJRDogMTMwNCBDb21tOiBYb3JnIFRhaW50ZWQ6IEcgICAgICAgIFcg IE9FICAgNC4wLjAtcmM0KyAjMTA4Cj4gPiBbIDUyMTUuNTY3NzEzXSBIYXJkd2FyZSBuYW1lOiBE ZWxsIEluYy4gSW5zcGlyb24gMTA5MC9JbnNwaXJvbiAxMDkwLCBCSU9TIEEwNiAwOC8yMy8yMDEx Cj4gPiBbIDUyMTUuNTY3NzE4XSAgMDAwMDAwMDAgMDAwMDAwMDAgZjQ2ZTFiOTggYzE2YjNlMTkg ZjQ2ZTFiZDggZjQ2ZTFiYzggYzEwNDdmMTcgYzE5MzdlNzgKPiA+IFsgNTIxNS41Njc3MzNdICBm NDZlMWJmNCAwMDAwMDUxOCBjMTkzN2NlYyAwMDAwMGM1ZSBjMTQ0NDFlOCBjMTQ0NDFlOCBlNzMz YmRjOCAwMDAwMDAwMAo+ID4gWyA1MjE1LjU2Nzc0N10gIGY2MzQ2YzAwIGY0NmUxYmUwIGMxMDQ3 ZjgzIDAwMDAwMDA5IGY0NmUxYmQ4IGMxOTM3ZTc4IGY0NmUxYmY0IGY0NmUxYzAwCj4gPiBbIDUy MTUuNTY3NzYyXSBDYWxsIFRyYWNlOgo+ID4gWyA1MjE1LjU2Nzc3Nl0gIFs8YzE2YjNlMTk+XSBk dW1wX3N0YWNrKzB4NDEvMHg1Mgo+ID4gWyA1MjE1LjU2Nzc4OF0gIFs8YzEwNDdmMTc+XSB3YXJu X3Nsb3dwYXRoX2NvbW1vbisweDg3LzB4YzAKPiA+IFsgNTIxNS41Njc3OTddICBbPGMxNDQ0MWU4 Pl0gPyBpOTE1X2dwdV9pZGxlKzB4ODgvMHg5MAo+ID4gWyA1MjE1LjU2NzgwNV0gIFs8YzE0NDQx ZTg+XSA/IGk5MTVfZ3B1X2lkbGUrMHg4OC8weDkwCj4gPiBbIDUyMTUuNTY3ODE1XSAgWzxjMTA0 N2Y4Mz5dIHdhcm5fc2xvd3BhdGhfZm10KzB4MzMvMHg0MAo+ID4gWyA1MjE1LjU2NzgyM10gIFs8 YzE0NDQxZTg+XSBpOTE1X2dwdV9pZGxlKzB4ODgvMHg5MAo+ID4gWyA1MjE1LjU2NzgzM10gIFs8 YzE0Mzk5NDk+XSBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcrMHgyNjkvMHgzMDAKPiA+IFsgNTIx NS41Njc4NDNdICBbPGMxNDQ3NTRmPl0gaTkxNV9nZW1fb2JqZWN0X2RvX3BpbisweDZlZi8weGIy MAo+ID4gWyA1MjE1LjU2Nzg1NF0gIFs8YzE0NDc5YzU+XSBpOTE1X2dlbV9vYmplY3RfcGluKzB4 NDUvMHg1MAo+ID4gWyA1MjE1LjU2Nzg2NF0gIFs8YzE0MzlmMDg+XSBpOTE1X2dlbV9leGVjYnVm ZmVyX3Jlc2VydmVfdm1hLmlzcmEuMTMrMHg3OC8weDE4MAo+ID4gWyA1MjE1LjU2Nzg3NF0gIFs8 YzE0M2EyZTU+XSBpOTE1X2dlbV9leGVjYnVmZmVyX3Jlc2VydmUrMHgyZDUvMHgzMjAKPiA+IFsg NTIxNS41Njc4ODRdICBbPGMxMTU5NGNkPl0gPyBfX2ttYWxsb2MrMHgxNGQvMHgxOTAKPiA+IFsg NTIxNS41Njc4OTRdICBbPGMxNDNiNmQ5Pl0gaTkxNV9nZW1fZG9fZXhlY2J1ZmZlci5pc3JhLjE3 KzB4NWM5LzB4ZGQwCj4gPiBbIDUyMTUuNTY3OTA2XSAgWzxjMTEyZWZkYj5dID8gdm1fbW1hcF9w Z29mZisweDdiLzB4YTAKPiA+IFsgNTIxNS41Njc5MTVdICBbPGMxMTU5NGNkPl0gPyBfX2ttYWxs b2MrMHgxNGQvMHgxOTAKPiA+IFsgNTIxNS41Njc5MjVdICBbPGMxNDNjZmViPl0gaTkxNV9nZW1f ZXhlY2J1ZmZlcjIrMHg4Yi8weDJjMAo+ID4gWyA1MjE1LjU2NzkzNF0gIFs8YzE0M2NmNjA+XSA/ IGk5MTVfZ2VtX2V4ZWNidWZmZXIrMHg0ZTAvMHg0ZTAKPiA+IFsgNTIxNS41Njc5NDRdICBbPGMx NDAxZDY3Pl0gZHJtX2lvY3RsKzB4MWI3LzB4NTEwCj4gPiBbIDUyMTUuNTY3OTU0XSAgWzxjMTEy MGE5YT5dID8gYmFsYW5jZV9kaXJ0eV9wYWdlc19yYXRlbGltaXRlZCsweDFhLzB4NmEwCj4gPiBb IDUyMTUuNTY3OTYzXSAgWzxjMTQzY2Y2MD5dID8gaTkxNV9nZW1fZXhlY2J1ZmZlcisweDRlMC8w eDRlMAo+ID4gWyA1MjE1LjU2Nzk3NV0gIFs8YzExM2NlZjk+XSA/IGhhbmRsZV9tbV9mYXVsdCsw eDMyOS8weDEyNTAKPiA+IFsgNTIxNS41Njc5ODRdICBbPGMxNDAxYmIwPl0gPyBkcm1fZ2V0bWFw KzB4YjAvMHhiMAo+ID4gWyA1MjE1LjU2Nzk5NF0gIFs8YzExN2Q5Y2E+XSBkb192ZnNfaW9jdGwr MHgzMGEvMHg1MzAKPiA+IFsgNTIxNS41NjgwMDVdICBbPGMxMGE5ZTkyPl0gPyBrdGltZV9nZXRf dHM2NCsweDUyLzB4MWEwCj4gPiBbIDUyMTUuNTY4MDk1XSAgWzxjMTE4NWY2Mj5dID8gX19mZ2V0 X2xpZ2h0KzB4MjIvMHg2MAo+ID4gWyA1MjE1LjU2ODEzNl0gIFs8YzExN2RjNTA+XSBTeVNfaW9j dGwrMHg2MC8weDkwCj4gPiBbIDUyMTUuNTY4MTc1XSAgWzxjMTZiOWJjOD5dIHN5c2VudGVyX2Rv X2NhbGwrMHgxMi8weDEyCj4gPiBbIDUyMTUuNTY4MTk4XSAtLS1bIGVuZCB0cmFjZSBhYjNmN2U0 OTUzY2I5ZWI2IF0tLS0KPiA+IFsgNTIxNS41NjgyNzJdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUg XS0tLS0tLS0tLS0tLQo+ID4gWyA1MjE1LjU2ODI4OF0gV0FSTklORzogQ1BVOiAwIFBJRDogMTMw NCBhdCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jOjI4MyBpOTE1X2dlbV9l dmljdF92bSsweDEwYy8weDE0MCgpCj4gPiBbIDUyMTUuNTY4MjkyXSBXQVJOX09OKCFsaXN0X2Vt cHR5KCZ2bS0+YWN0aXZlX2xpc3QpKQo+ID4gWyA1MjE1LjU2ODI5Nl0gTW9kdWxlcyBsaW5rZWQg aW46IGN0ciBjY20gYXJjNCBhdGg5ayBhdGg5a19jb21tb24gYXRoOWtfaHcgYm5lcCBhdGggbWFj ODAyMTEgcmZjb21tIHNuZF9oZGFfY29kZWNfY29uZXhhbnQgc25kX2hkYV9jb2RlY19nZW5lcmlj IHNuZF9oZGFfaW50ZWwgc25kX2hkYV9jb250cm9sbGVyIHNuZF9oZGFfY29kZWMgdXZjdmlkZW8g c25kX2h3ZGVwIHNuZF9wY20gZ3Bpb19pY2ggdmlkZW9idWYyX3ZtYWxsb2MgZGVsbF93bWkgY2Zn ODAyMTEgdmlkZW9idWYyX21lbW9wcyBzcGFyc2Vfa2V5bWFwIHZpZGVvYnVmMl9jb3JlIGRlbGxf bGFwdG9wIHNuZF9zZXFfbWlkaSB2NGwyX2NvbW1vbiBkY2RiYXMgc25kX3NlcV9taWRpX2V2ZW50 IGJ0dXNiIHZpZGVvZGV2IGk4ayBzbmRfcmF3bWlkaSBzbmRfc2VxIGhpZF9tdWx0aXRvdWNoIGNv cmV0ZW1wIGJsdWV0b290aCBtaWNyb2NvZGUgc25kX3NlcV9kZXZpY2Ugam95ZGV2IHNuZF90aW1l ciBzZXJpb19yYXcgc25kIHNocGNocCBzb3VuZGNvcmUgd21pIGxwY19pY2ggdXNiaGlkIGhpZCBw c21vdXNlIGFoY2kgbGliYWhjaQo+ID4gWyA1MjE1LjU2ODM4M10gQ1BVOiAwIFBJRDogMTMwNCBD b21tOiBYb3JnIFRhaW50ZWQ6IEcgICAgICAgIFcgIE9FICAgNC4wLjAtcmM0KyAjMTA4Cj4gPiBb IDUyMTUuNTY4Mzg4XSBIYXJkd2FyZSBuYW1lOiBEZWxsIEluYy4gSW5zcGlyb24gMTA5MC9JbnNw aXJvbiAxMDkwLCBCSU9TIEEwNiAwOC8yMy8yMDExCj4gPiBbIDUyMTUuNTY4MzkzXSAgMDAwMDAw MDAgMDAwMDAwMDAgZjQ2ZTFjYzAgYzE2YjNlMTkgZjQ2ZTFkMDAgZjQ2ZTFjZjAgYzEwNDdmMTcg YzE5MzcxMmMKPiA+IFsgNTIxNS41Njg0MDddICBmNDZlMWQxYyAwMDAwMDUxOCBjMTkzNzBkMCAw MDAwMDExYiBjMTQzOWM2YyBjMTQzOWM2YyBmM2IyMjViMCBlNzMzYzNlYwo+ID4gWyA1MjE1LjU2 ODQyMV0gIDAwMDAwMDAxIGY0NmUxZDA4IGMxMDQ3ZjgzIDAwMDAwMDA5IGY0NmUxZDAwIGMxOTM3 MTJjIGY0NmUxZDFjIGY0NmUxZDI4Cj4gPiBbIDUyMTUuNTY4NDM1XSBDYWxsIFRyYWNlOgo+ID4g WyA1MjE1LjU2ODQ0NV0gIFs8YzE2YjNlMTk+XSBkdW1wX3N0YWNrKzB4NDEvMHg1Mgo+ID4gWyA1 MjE1LjU2ODQ1NV0gIFs8YzEwNDdmMTc+XSB3YXJuX3Nsb3dwYXRoX2NvbW1vbisweDg3LzB4YzAK PiA+IFsgNTIxNS41Njg0NjVdICBbPGMxNDM5YzZjPl0gPyBpOTE1X2dlbV9ldmljdF92bSsweDEw Yy8weDE0MAo+ID4gWyA1MjE1LjU2ODQ3NF0gIFs8YzE0MzljNmM+XSA/IGk5MTVfZ2VtX2V2aWN0 X3ZtKzB4MTBjLzB4MTQwCj4gPiBbIDUyMTUuNTY4NDgzXSAgWzxjMTA0N2Y4Mz5dIHdhcm5fc2xv d3BhdGhfZm10KzB4MzMvMHg0MAo+ID4gWyA1MjE1LjU2ODQ5Ml0gIFs8YzE0MzljNmM+XSBpOTE1 X2dlbV9ldmljdF92bSsweDEwYy8weDE0MAo+ID4gWyA1MjE1LjU2ODUwMl0gIFs8YzE0M2EyMzY+ XSBpOTE1X2dlbV9leGVjYnVmZmVyX3Jlc2VydmUrMHgyMjYvMHgzMjAKPiA+IFsgNTIxNS41Njg1 MTFdICBbPGMxMTU5NGNkPl0gPyBfX2ttYWxsb2MrMHgxNGQvMHgxOTAKPiA+IFsgNTIxNS41Njg1 MjFdICBbPGMxNDNiNmQ5Pl0gaTkxNV9nZW1fZG9fZXhlY2J1ZmZlci5pc3JhLjE3KzB4NWM5LzB4 ZGQwCj4gPiBbIDUyMTUuNTY4NTMyXSAgWzxjMTEyZWZkYj5dID8gdm1fbW1hcF9wZ29mZisweDdi LzB4YTAKPiA+IFsgNTIxNS41Njg1NDFdICBbPGMxMTU5NGNkPl0gPyBfX2ttYWxsb2MrMHgxNGQv MHgxOTAKPiA+IFsgNTIxNS41Njg1NTBdICBbPGMxNDNjZmViPl0gaTkxNV9nZW1fZXhlY2J1ZmZl cjIrMHg4Yi8weDJjMAo+ID4gWyA1MjE1LjU2ODU2MF0gIFs8YzE0M2NmNjA+XSA/IGk5MTVfZ2Vt X2V4ZWNidWZmZXIrMHg0ZTAvMHg0ZTAKPiA+IFsgNTIxNS41Njg1NjhdICBbPGMxNDAxZDY3Pl0g ZHJtX2lvY3RsKzB4MWI3LzB4NTEwCj4gPiBbIDUyMTUuNTY4NTc3XSAgWzxjMTEyMGE5YT5dID8g YmFsYW5jZV9kaXJ0eV9wYWdlc19yYXRlbGltaXRlZCsweDFhLzB4NmEwCj4gPiBbIDUyMTUuNTY4 NTg3XSAgWzxjMTQzY2Y2MD5dID8gaTkxNV9nZW1fZXhlY2J1ZmZlcisweDRlMC8weDRlMAo+ID4g WyA1MjE1LjU2ODU5OV0gIFs8YzExM2NlZjk+XSA/IGhhbmRsZV9tbV9mYXVsdCsweDMyOS8weDEy NTAKPiA+IFsgNTIxNS41Njg2MDddICBbPGMxNDAxYmIwPl0gPyBkcm1fZ2V0bWFwKzB4YjAvMHhi MAo+ID4gWyA1MjE1LjU2ODYxNl0gIFs8YzExN2Q5Y2E+XSBkb192ZnNfaW9jdGwrMHgzMGEvMHg1 MzAKPiA+IFsgNTIxNS41Njg2MjZdICBbPGMxMGE5ZTkyPl0gPyBrdGltZV9nZXRfdHM2NCsweDUy LzB4MWEwCj4gPiBbIDUyMTUuNTY4NjM1XSAgWzxjMTE4NWY2Mj5dID8gX19mZ2V0X2xpZ2h0KzB4 MjIvMHg2MAo+ID4gWyA1MjE1LjU2ODY0NF0gIFs8YzExN2RjNTA+XSBTeVNfaW9jdGwrMHg2MC8w eDkwCj4gPiBbIDUyMTUuNTY4NjUzXSAgWzxjMTZiOWJjOD5dIHN5c2VudGVyX2RvX2NhbGwrMHgx Mi8weDEyCj4gPiBbIDUyMTUuNTY4NjU5XSAtLS1bIGVuZCB0cmFjZSBhYjNmN2U0OTUzY2I5ZWI3 IF0tLS0KCk9rLCBhdCBsZWFzdCB3ZSBoYXZlIGNsZWFyIGV2aWRlbmNlIG5vdyB0aGF0IHRoZSBs aXN0cyBpbmRlZWQgc2VlbSB0byBnZXQKb3V0IG9mIHN5bmMuCgo+IEFoLCBzbyB3aGF0IGl0IGJv aWxzIGRvd24gdG8gaXMgdGhhdCBpOTE1X2dwdV9pZGxlKCkgaXMgYSBuby1vcCBoZXJlIGlzCj4g bGlzdF9lbXB0eShyaW5nLT5yZXF1ZXN0X2xpc3QpKSBbaW50ZWxfcmluZ19pZGxlOjIxNzZdLgo+ IAo+IE1pc3NpbmcgbGluayBkaXNjb3ZlcmVkLCBJIHRoaW5rIHRoZSBidWcgZml4ZWQgYnkgdGhl IHBhdGNoIGlzIGluZGVlZAo+IHRoZSBzYW1lIG9uZSB0aGF0IHRyaWdnZXJlZCB0aGUgZmlyc3Qg V0FSTi4KCkJ1dCBpZiB3ZSBkbyB0aGF0IHNob3J0LWNpcmN1aXRpbmcgaW4gcmluZ19pZGxlIHRo ZSBhbGwgdGhlIHJlcXVlc3RzCl9zaG91bGRfIGJlIGNvbXBsZXRlZC4gV2hpY2ggbWVhbnNlIHJl dGlyZV9yZXF1ZXN0X3Jpbmcgc2hvdWxkIG1vdmUgYWxsCmJ1ZmZlcnMgdG8gdGhlIGluYWN0aXZl IGxpc3QsIGV2ZW4gd2hlbiB3ZSBkbyB0aGF0IGJlZm9yZSByZXRpcmluZwpyZXF1ZXN0cy4KCkkn bSBzdGlsbCBiYWZmbGVkIGFuZCBkb24ndCByZWFsbHkgdW5kZXJzdGFuZCB3aGF0J3MgZ29pbmcg b24gaGVyZSAuLi4KLURhbmllbAotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwg SW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK