From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: =?gbk?Q?=B4=F0=B8=B4=3A_=B4=F0=B8=B4=3A_=5BPATCH=5D_vg?= =?gbk?Q?aswitchroo=3A_set_audio_client_id_according_to_bou?= =?gbk?Q?nd_gpu_client_id?= Date: Fri, 29 Jun 2018 16:54:29 +0800 Message-ID: <5B35F3C5.8060709@amd.com> References: <1530166933-21655-1-git-send-email-Jim.Qu@amd.com> <5B359F5E.5080502@amd.com>, , <5B35E25E.9020708@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Qu, Jim" , Alex Deucher Cc: "Deucher, Alexander" , amd-gfx list T24gMDYvMjkvMjAxOCAwNDowNiBQTSwgUXUsIEppbSB3cm90ZToKPiBJIG1lYW4gaWYgdGhlIFZH QV9PVEhFUiBpcyBvbmx5IGZvciBoZWFkbGVzcywgYW5kIHRoZXJlIGlzIG5vIGF1ZGlvIG9uIHRo ZSBoZWFkbGVzcyBHRlguIHRoZXJlZm9yZSwgdGhlIFBDSV9DTEFTU19ESVNQTEFZX09USEVSIGlz IHVubmVjZXNzYXJ5IGluIGdldF9ib3VuZF9ncHUoKSBvbiB0aGlzIGNhc2UuCj4KPiBUaGUgS2V5 IHBvaW50ZXIgaXMgdGhlIHByb2JsZW06IGRvZXMgaXQgZXhpc3QgdGhlIEdGWCBkZXZpY2UgaXMg ZGVmaW5lZCBhcyBQQ0lfQ0xBU1NfRElTUExBWV9PVEhFUiB3aXRoIGF1ZGlvIGNvZGVjLgoKSW4g bXkgdmlldywgaGVhZGxlc3MgaXMgbGlrZWx5IHRvIGhhdmUgbm8gYXVkaW8sCndoaWxlIGRHUFUg d2l0aCBkaXNwbGF5IGNvdWxkIGJlIHJlZ2lzdGVyZWQgYXMgT1RIRVIsIGluIHRoaXMgY2FzZSwg YXVkaW8gaXMgY29udHJvbGxlZCBieSBIREEgZHJpdmVyLgoKVG8gbXkgdW5kZXJzdGFuZGluZywg dGhpcyBpc3N1ZSBpcyBhYm91dCB0aGUgZEdQVSBoYXMgYXVkaW8gY29kZWMgcmVnaXN0ZXJlZCBh cyBPVEhFUiwgcmlnaHQ/CgpKZXJyeQoKPgo+IFRoYW5rcwo+IEppbVF1Cj4KPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g5Y+R5Lu25Lq6OiBhbWQtZ2Z4IDxhbWQt Z2Z4LWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPiDku6PooaggWmhhbmcsIEplcnJ5IChK dW53ZWkpIDxKZXJyeS5aaGFuZ0BhbWQuY29tPgo+IOWPkemAgeaXtumXtDogMjAxOOW5tDbmnIgy OeaXpSAxNTo0MDoxNAo+IOaUtuS7tuS6ujogUXUsIEppbTsgQWxleCBEZXVjaGVyCj4g5oqE6YCB OiBEZXVjaGVyLCBBbGV4YW5kZXI7IGFtZC1nZnggbGlzdAo+IOS4u+mimDogUmU6IOetlOWkjTog W1BBVENIXSB2Z2Fzd2l0Y2hyb286IHNldCBhdWRpbyBjbGllbnQgaWQgYWNjb3JkaW5nIHRvIGJv dW5kIGdwdSBjbGllbnQgaWQKPgo+IE9uIDA2LzI5LzIwMTggMDE6NTkgUE0sIFF1LCBKaW0gd3Jv dGU6Cj4+IElmIHRoZSBHRlggaXMgaGVhZGxlc3MsIHRoZSBhdWRpbyBjb2RlYyBzaG91bGQgYmUg ZGlzYWJsZWQgb24gUENJRSBidXMuIHRoZSB0aGUgSERBIGRyaXZlciB3aWxsIG5ldmVyIHByb2Jl IHRoZSBhdWRpby4gcmlnaHQ/Cj4KPiBBZnRlciBjaGVja2luZyB0aGUgSERBIGEgbGl0dGxlLCBs b29rcyBIREEgY291bGQgYWxzbyBoYW5kbGUgbWFueSBvdGhlciBhdWRpbyBkZXZpY2VzLgo+IElu IHRoaXMgY2FzZSwgSERBIG1heSBwcm9iZSBvdGhlciBhdWRpbyBkZXZpY2UsIGUuZy4gZnJvbSBC cmFzd2VsbC4KPgo+IEp1c3QgYSBndWVzcy4KPgo+IEplcnJ5Cj4KPj4KPj4gVGhhbmtzCj4+IEpp bVF1Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4g5Y+R 5Lu25Lq6OiBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVyQGdtYWlsLmNvbT4KPj4g5Y+R6YCB5pe2 6Ze0OiAyMDE45bm0NuaciDI55pelIDEyOjAxCj4+IOaUtuS7tuS6ujogWmhhbmcsIEplcnJ5Cj4+ IOaKhOmAgTogUXUsIEppbTsgYW1kLWdmeCBsaXN0OyBEZXVjaGVyLCBBbGV4YW5kZXIKPj4g5Li7 6aKYOiBSZTogW1BBVENIXSB2Z2Fzd2l0Y2hyb286IHNldCBhdWRpbyBjbGllbnQgaWQgYWNjb3Jk aW5nIHRvIGJvdW5kIGdwdSBjbGllbnQgaWQKPj4KPj4gT24gVGh1LCBKdW4gMjgsIDIwMTggYXQg MTA6NTQgUE0sIFpoYW5nLCBKZXJyeSAoSnVud2VpKQo+PiA8SmVycnkuWmhhbmdAYW1kLmNvbT4g d3JvdGU6Cj4+PiBPbiAwNi8yOC8yMDE4IDAyOjIyIFBNLCBKaW0gUXUgd3JvdGU6Cj4+Pj4KPj4+ PiBPbiBtb2Rlcm4gbGFwdG9wLCB0aGVyZSBhcmUgbW9yZSBhbmQgbW9yZSBwbGF0Zm9ybXMKPj4+ PiBoYXZlIHR3byBHUFVzLCBhbmQgZWFjaCBvZiB0aGVtIG1heWJlIGhhdmUgYXVkaW8gY29kZWMK Pj4+PiBmb3IgSERNUC9EUCBvdXRwdXQuIEZvciBzb21lIGRHUFUgd2hpY2ggaXMgbm8gb3V0cHV0 LAo+Pj4+IGF1ZGlvIGNvZGVjIHVzdWFsbHkgaXMgZGlzYWJsZWQuCj4+Pj4KPj4+PiBJbiBjdXJy ZWN0IEhEQSBhdWRpbyBkcml2ZXIsIGl0IHdpbGwgc2V0IGFsbCBjb2RlYyBhcwo+Pj4+IFZHQV9T V0lUQ0hFUk9PX0RJUywgc28gaWYgc3lzdGVtIHJ1bnRpbWUgcG0gaXMgZW5hYmxlZCwKPj4+PiB0 aGUgYXVkaW8gd2hpY2ggaXMgYmluZGVkIHRvIFVNQSB3aWxsIGJlIHN1c3BlbmRlZC4KPj4+Pgo+ Pj4+IEluIEhEQSBkcml2ZXIgc2lkZSwgaXQgaXMgZGlmZmljdWx0IHRvIGtub3cgd2hpY2ggR1BV Cj4+Pj4gdGhlIGF1ZGlvIGhhcyBiaW5kZWQgdG8uIFNvIHNldCB0aGUgYm91bmQgZ3B1IHBjaSBk ZXYKPj4+PiB0byB2Z2Fzd2l0Y2hyb28sIGxldCB2Z2Fzd2l0Y2hyb28gbWFrZSBkZWNpc2lvbi4K Pj4+Pgo+Pj4+IE5ld2VyIGRHUFVzIHVzZSBQQ0lfQ0xBU1NfRElTUExBWV9PVEhFUiByYXRoZXIg dGhhbgo+Pj4+IFBDSV9DTEFTU19ESVNQTEFZX1ZHQS4gIE1ha2Ugc3VyZSB3ZSBjaGVjayBmb3Ig Ym90aCB3aGVuCj4+Pj4gY2hlY2tpbmcgZm9yIHRoZSBkR1BVIGluIGdldF9ib3VuZF92Z2EoKQo+ Pj4KPj4+Cj4+PiBJSVJDLCBWR0EgaXMgZm9yIGlHUFUsIE9USEVSIGlzIGZvciBkR1BVLgo+Pj4g aWYgbm90LCBwbGVhc2UgY29ycmVjdCBtZS4KPj4KPj4gSSB0aGluayB0aGUgZEdQVSBjYW4gYmUg ZWl0aGVyIFZHQSBvciBPVEhFUiBkZXBlbmRpbmcgb24gd2hldGhlciB0aGVyZQo+PiBhcmUgZGlz cGxheXMgd2lyZWQgdG8gaXQuICBFLmcuLCBpY2VsYW5kIGFuZCBoYWluYW4gZG9uJ3QgZXZlbiBo YXZlCj4+IFZHQSBodyBvbiB0aGVtIHNpbmNlIHRoZXkgYXJlIGhlYWRsZXNzLgo+Pgo+PiBBbGV4 Cj4+Cj4+Pgo+Pj4KPj4+Pgo+Pj4+IFRoZSBwYXRjaCBhbHNvIGNvbWJpbmUgdGhlIEhEQSBjaGFu Z2UgdG8gYXZvaWQgYnJlYWsKPj4+PiBidWlsZGluZy4KPj4+Pgo+Pj4+IENoYW5nZS1JZDogSTk5 MDZjMWJkNGRkNWIzNjEwOGQ3MTMzYmIxY2Y3MjRkMTNmMWNkNmQKPj4+PiBTaWduZWQtb2ZmLWJ5 OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Cj4+Pj4gU2lnbmVkLW9m Zi1ieTogSmltIFF1IDxKaW0uUXVAYW1kLmNvbT4KPj4+PiAtLS0KPj4+PiAgICAgZHJpdmVycy9n cHUvdmdhL3ZnYV9zd2l0Y2hlcm9vLmMgfCAxMSArKysrKysrKystLQo+Pj4+ICAgICBpbmNsdWRl L2xpbnV4L3ZnYV9zd2l0Y2hlcm9vLmggICB8ICA0ICsrLS0KPj4+PiAgICAgc291bmQvcGNpL2hk YS9oZGFfaW50ZWwuYyAgICAgICAgfCAxNSArKysrKysrKystLS0tLS0KPj4+PiAgICAgMyBmaWxl cyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKPj4+Pgo+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS92Z2EvdmdhX3N3aXRjaGVyb28uYwo+Pj4+IGIvZHJpdmVy cy9ncHUvdmdhL3ZnYV9zd2l0Y2hlcm9vLmMKPj4+PiBpbmRleCBmYzRhZGYzLi43YjdiMGZkIDEw MDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L3ZnYS92Z2Ffc3dpdGNoZXJvby5jCj4+Pj4gKysr IGIvZHJpdmVycy9ncHUvdmdhL3ZnYV9zd2l0Y2hlcm9vLmMKPj4+PiBAQCAtMzI5LDcgKzMyOSw3 IEBAIEVYUE9SVF9TWU1CT0wodmdhX3N3aXRjaGVyb29fcmVnaXN0ZXJfY2xpZW50KTsKPj4+PiAg ICAgICogdmdhX3N3aXRjaGVyb29fcmVnaXN0ZXJfYXVkaW9fY2xpZW50IC0gcmVnaXN0ZXIgYXVk aW8gY2xpZW50Cj4+Pj4gICAgICAqIEBwZGV2OiBjbGllbnQgcGNpIGRldmljZQo+Pj4+ICAgICAg KiBAb3BzOiBjbGllbnQgY2FsbGJhY2tzCj4+Pj4gLSAqIEBpZDogY2xpZW50IGlkZW50aWZpZXIK Pj4+PiArICogQGJvdW5kX3ZnYTogY2xpZW50IGJvdW5kIHZnYSBwY2kgZGV2aWNlCj4+Pj4gICAg ICAqCj4+Pj4gICAgICAqIFJlZ2lzdGVyIGF1ZGlvIGNsaWVudCAoYXVkaW8gZGV2aWNlIG9uIGEg R1BVKS4gVGhlIGNsaWVudCBpcyBhc3N1bWVkCj4+Pj4gICAgICAqIHRvIHVzZSBydW50aW1lIFBN LiBCZWZvcmVoYW5kLCB2Z2Ffc3dpdGNoZXJvb19jbGllbnRfcHJvYmVfZGVmZXIoKQo+Pj4+IEBA IC0zMzksOCArMzM5LDE1IEBAIEVYUE9SVF9TWU1CT0wodmdhX3N3aXRjaGVyb29fcmVnaXN0ZXJf Y2xpZW50KTsKPj4+PiAgICAgICovCj4+Pj4gICAgIGludCB2Z2Ffc3dpdGNoZXJvb19yZWdpc3Rl cl9hdWRpb19jbGllbnQoc3RydWN0IHBjaV9kZXYgKnBkZXYsCj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmdhX3N3aXRjaGVyb29fY2xpZW50X29wcyAqb3BzLAo+ Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGVudW0gdmdhX3N3aXRjaGVyb29fY2xpZW50X2lk IGlkKQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwY2lfZGV2ICpib3VuZF92 Z2EpCj4+Pj4gICAgIHsKPj4+PiArICAgICAgIGVudW0gdmdhX3N3aXRjaGVyb29fY2xpZW50X2lk IGlkID0gVkdBX1NXSVRDSEVST09fRElTOwo+Pj4+ICsKPj4+PiArICAgICAgIGlmIChib3VuZF92 Z2EpIHsKPj4+PiArICAgICAgICAgICAgICAgaWYgKHZnYXNyX3ByaXYuaGFuZGxlci0+Z2V0X2Ns aWVudF9pZCkKPj4+Cj4+Pgo+Pj4gV2UgbWF5IGNvbWJpbmUgMiAiaWYiIHRvZ2V0aGVyLgo+Pj4K Pj4+IEFueXdheSwgdGhlIHBhdGNoIGxvb2tzIGZpbmUgZm9yIG1lLgo+Pj4KPj4+IFJldmlld2Vk LWJ5OiBKdW53ZWkgWmhhbmcgPEplcnJ5LlpoYW5nQGFtZC5jb20+Cj4+Pgo+Pj4gQWRkaXRpb25h bGx5LCBiZXR0ZXIgdG8gaW5jbHVkZXMgSW50ZWwgZ3V5cyBtYWlsIGxpc3QgYW5kIHNvdW5kIG1h aWwgbGlzdCBpZgo+Pj4gYW55Lgo+Pj4KPj4+IEplcnJ5Cj4+Pgo+Pj4KPj4+PiArICAgICAgICAg ICAgICAgICAgICAgICBpZCA9IHZnYXNyX3ByaXYuaGFuZGxlci0+Z2V0X2NsaWVudF9pZChib3Vu ZF92Z2EpOwo+Pj4+ICsgICAgICAgfQo+Pj4+ICsKPj4+PiAgICAgICAgICAgcmV0dXJuIHJlZ2lz dGVyX2NsaWVudChwZGV2LCBvcHMsIGlkIHwgSURfQklUX0FVRElPLCBmYWxzZSwgdHJ1ZSk7Cj4+ Pj4gICAgIH0KPj4+PiAgICAgRVhQT1JUX1NZTUJPTCh2Z2Ffc3dpdGNoZXJvb19yZWdpc3Rlcl9h dWRpb19jbGllbnQpOwo+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3ZnYV9zd2l0Y2hl cm9vLmgKPj4+PiBiL2luY2x1ZGUvbGludXgvdmdhX3N3aXRjaGVyb28uaAo+Pj4+IGluZGV4IDc3 ZjBmMGEuLmEwYzdiODYgMTAwNjQ0Cj4+Pj4gLS0tIGEvaW5jbHVkZS9saW51eC92Z2Ffc3dpdGNo ZXJvby5oCj4+Pj4gKysrIGIvaW5jbHVkZS9saW51eC92Z2Ffc3dpdGNoZXJvby5oCj4+Pj4gQEAg LTE1MSw3ICsxNTEsNyBAQCBpbnQgdmdhX3N3aXRjaGVyb29fcmVnaXN0ZXJfY2xpZW50KHN0cnVj dCBwY2lfZGV2Cj4+Pj4gKmRldiwKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCBkcml2ZXJfcG93ZXJfY29udHJvbCk7Cj4+Pj4gICAgIGludCB2Z2Ffc3dpdGNo ZXJvb19yZWdpc3Rlcl9hdWRpb19jbGllbnQoc3RydWN0IHBjaV9kZXYgKnBkZXYsCj4+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdAo+Pj4+ IHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9vcHMgKm9wcywKPj4+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVudW0gdmdhX3N3aXRjaGVyb29fY2xpZW50X2lkCj4+Pj4g aWQpOwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHBjaV9kZXYgKmJvdW5kX3ZnYSk7Cj4+Pj4KPj4+PiAgICAgdm9pZCB2Z2Ffc3dpdGNoZXJvb19j bGllbnRfZmJfc2V0KHN0cnVjdCBwY2lfZGV2ICpkZXYsCj4+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGZiX2luZm8gKmluZm8pOwo+Pj4+IEBAIC0xODAsNyAr MTgwLDcgQEAgc3RhdGljIGlubGluZSBpbnQKPj4+PiB2Z2Ffc3dpdGNoZXJvb19yZWdpc3Rlcl9o YW5kbGVyKGNvbnN0IHN0cnVjdCB2Z2Ffc3dpdGNoZXJvb19oYQo+Pj4+ICAgICAgICAgICAgICAg ICAgIGVudW0gdmdhX3N3aXRjaGVyb29faGFuZGxlcl9mbGFnc190IGhhbmRsZXJfZmxhZ3MpIHsK Pj4+PiByZXR1cm4gMDsgfQo+Pj4+ICAgICBzdGF0aWMgaW5saW5lIGludCB2Z2Ffc3dpdGNoZXJv b19yZWdpc3Rlcl9hdWRpb19jbGllbnQoc3RydWN0IHBjaV9kZXYKPj4+PiAqcGRldiwKPj4+PiAg ICAgICAgICAgY29uc3Qgc3RydWN0IHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9vcHMgKm9wcywKPj4+ PiAtICAgICAgIGVudW0gdmdhX3N3aXRjaGVyb29fY2xpZW50X2lkIGlkKSB7IHJldHVybiAwOyB9 Cj4+Pj4gKyAgICAgICBzdHJ1Y3QgcGNpX2RldiAqYm91bmRfdmdhKSB7IHJldHVybiAwOyB9Cj4+ Pj4gICAgIHN0YXRpYyBpbmxpbmUgdm9pZCB2Z2Ffc3dpdGNoZXJvb191bnJlZ2lzdGVyX2hhbmRs ZXIodm9pZCkge30KPj4+PiAgICAgc3RhdGljIGlubGluZSBlbnVtIHZnYV9zd2l0Y2hlcm9vX2hh bmRsZXJfZmxhZ3NfdAo+Pj4+IHZnYV9zd2l0Y2hlcm9vX2hhbmRsZXJfZmxhZ3Modm9pZCkgeyBy ZXR1cm4gMDsgfQo+Pj4+ICAgICBzdGF0aWMgaW5saW5lIGludCB2Z2Ffc3dpdGNoZXJvb19sb2Nr X2RkYyhzdHJ1Y3QgcGNpX2RldiAqcGRldikgeyByZXR1cm4KPj4+PiAtRU5PREVWOyB9Cj4+Pj4g ZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvaGRhX2ludGVsLmMgYi9zb3VuZC9wY2kvaGRhL2hk YV9pbnRlbC5jCj4+Pj4gaW5kZXggMWFlMTg1MC4uOGY5OTJlNiAxMDA2NDQKPj4+PiAtLS0gYS9z b3VuZC9wY2kvaGRhL2hkYV9pbnRlbC5jCj4+Pj4gKysrIGIvc291bmQvcGNpL2hkYS9oZGFfaW50 ZWwuYwo+Pj4+IEBAIC0xMzE5LDE1ICsxMzE5LDE3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdmdh X3N3aXRjaGVyb29fY2xpZW50X29wcwo+Pj4+IGF6eF92c19vcHMgPSB7Cj4+Pj4gICAgIHN0YXRp YyBpbnQgcmVnaXN0ZXJfdmdhX3N3aXRjaGVyb28oc3RydWN0IGF6eCAqY2hpcCkKPj4+PiAgICAg ewo+Pj4+ICAgICAgICAgICBzdHJ1Y3QgaGRhX2ludGVsICpoZGEgPSBjb250YWluZXJfb2YoY2hp cCwgc3RydWN0IGhkYV9pbnRlbCwKPj4+PiBjaGlwKTsKPj4+PiArICAgICAgIHN0cnVjdCBwY2lf ZGV2ICpwOwo+Pj4+ICAgICAgICAgICBpbnQgZXJyOwo+Pj4+Cj4+Pj4gICAgICAgICAgIGlmICgh aGRhLT51c2VfdmdhX3N3aXRjaGVyb28pCj4+Pj4gICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7 Cj4+Pj4gLSAgICAgICAvKiBGSVhNRTogY3VycmVudGx5IG9ubHkgaGFuZGxpbmcgRElTIGNvbnRy b2xsZXIKPj4+PiAtICAgICAgICAqIGlzIHRoZXJlIGFueSBtYWNoaW5lIHdpdGggdHdvIHN3aXRj aGFibGUgSERNSSBhdWRpbwo+Pj4+IGNvbnRyb2xsZXJzPwo+Pj4+IC0gICAgICAgICovCj4+Pj4g LSAgICAgICBlcnIgPSB2Z2Ffc3dpdGNoZXJvb19yZWdpc3Rlcl9hdWRpb19jbGllbnQoY2hpcC0+ cGNpLCAmYXp4X3ZzX29wcywKPj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBWR0FfU1dJVENIRVJPT19ESVMpOwo+Pj4+ICsKPj4+PiArICAgICAg IHAgPSBnZXRfYm91bmRfdmdhKGNoaXAtPnBjaSk7Cj4+Pj4gKyAgICAgICBlcnIgPSB2Z2Ffc3dp dGNoZXJvb19yZWdpc3Rlcl9hdWRpb19jbGllbnQoY2hpcC0+cGNpLCAmYXp4X3ZzX29wcywKPj4+ PiBwKTsKPj4+PiArCj4+Pj4gKyAgICAgICBpZiAocCkKPj4+PiArICAgICAgICAgICAgICAgcGNp X2Rldl9wdXQocCk7Cj4+Pj4gICAgICAgICAgIGlmIChlcnIgPCAwKQo+Pj4+ICAgICAgICAgICAg ICAgICAgIHJldHVybiBlcnI7Cj4+Pj4gICAgICAgICAgIGhkYS0+dmdhX3N3aXRjaGVyb29fcmVn aXN0ZXJlZCA9IDE7Cj4+Pj4gQEAgLTE0MjksNyArMTQzMSw4IEBAIHN0YXRpYyBzdHJ1Y3QgcGNp X2RldiAqZ2V0X2JvdW5kX3ZnYShzdHJ1Y3QgcGNpX2Rldgo+Pj4+ICpwY2kpCj4+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICBwID0KPj4+PiBwY2lfZ2V0X2RvbWFpbl9idXNfYW5kX3Nsb3Qo cGNpX2RvbWFpbl9ucihwY2ktPmJ1cyksCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaS0+YnVzLT5udW1iZXIsCj4+Pj4gMCk7 Cj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocCkgewo+Pj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKChwLT5jbGFzcyA+PiA4KSA9PQo+Pj4+IFBDSV9DTEFT U19ESVNQTEFZX1ZHQSkKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgo cC0+Y2xhc3MgPj4gOCkgPT0KPj4+PiBQQ0lfQ0xBU1NfRElTUExBWV9WR0EgfHwKPj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwLT5jbGFzcyA+PiA4KSA9PQo+Pj4+IFBDSV9D TEFTU19ESVNQTEFZX09USEVSKQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBwOwo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwY2lfZGV2X3B1dChwKTsKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KPj4+Pgo+ Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+IGFt ZC1nZnggbWFpbGluZyBsaXN0Cj4+PiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4g aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBhbWQtZ2Z4 IG1haWxpbmcgbGlzdAo+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxp c3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==