From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: Regression: Re: [PATCH 2/3] drm/amdgpu: fix amdgpu_ttm_bind Date: Sat, 2 Sep 2017 09:52:02 +0200 Message-ID: <3960afa2-50af-81b5-dc7a-ad9776c43727@amd.com> References: <1503478972-1533-1-git-send-email-deathsimple@vodafone.de> <1503478972-1533-2-git-send-email-deathsimple@vodafone.de> <2d026de1-3bf1-e6ca-9767-917845e5b241@vodafone.de> <41325db2-fbd4-6ca6-a8ad-13055ed2912b@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US 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: Felix Kuehling , =?UTF-8?Q?Christian_K=c3=b6nig?= , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: "Deucher, Alexander" , "Russell, Kent" QWgsIGNyYXAgeWVhaCB0aGF0IHdvbid0IHdvcmsuCgpZZWFoLCB3ZSBzaG91bGQgYmxvY2sgdXNl cnB0ciBCT3MgaW4gYW1kZ3B1X3R0bV9iaW5kKCkgZm9yIG5vdy4KCj4gVGhlcmUgaXMgc29tZXRo aW5nIGVsc2Ugc3RpbGwgYnJva2VuIGluIG91ciBJUEMgdGVzdCBmb3Igc3lzdGVtIG1lbW9yeQo+ IGFsc28sIGJ1dCBJJ2xsIGhhdmUgdG8gcmV3cml0ZSB0aGF0IGFueXdheSB0byB3b3JrIGZvciBs YXJnZSBCT3Mgd2l0aCBhCj4gc21hbGwgR0FSVC4KSHVpPyBXZWxsIHVzZXJwdHIgQk9zIGNhbid0 IGJlIHVzZWQgZm9yIElQQywgc28gaG93IGRvIHlvdSBydW4gaW50byB0aGlzIAppc3N1ZT8KClJl Z2FyZHMsCkNocmlzdGlhbi4KCkFtIDAyLjA5LjIwMTcgdW0gMDE6NDYgc2NocmllYiBGZWxpeCBL dWVobGluZzoKPiBBY3R1YWxseSwgSSByZWFkIHRoYXQgd3JvbmcuIEl0IGRvZXMgR0FSVCBiaW5k IHVzZXJwdHIgQk9zLiBCdXQgaXQgYWxzbwo+IHVucGlucyBhbmQgcmVwaW5zIHRoZW0gYWNjaWRl bnRhbGx5IGluIHRoZSBwcm9jZXNzLCBzaW5jZQo+IHR0bV9ib19tb3ZlX3R0bSBjYWxscyBiYWNr ZW5kX3VuYmluZCBhbmQgYmFja2VuZF9iaW5kIGNhbGxiYWNrcy4gQW5kCj4gZW5kcyB1cCBjb3Jy dXB0aW5nIHNvbWUga2VybmVsIHBhZ2Ugc3RhdGUsIGJlY2F1c2Ugd2UgaGFkIHRvIG1vdmUgdGhl Cj4gcGlubmluZyBvZiB1c2VyIHBhZ2VzIG91dCBvZiBiYWNrZW5kX2JpbmQuCj4KPiBNYXliZSBh bWRncHVfYmluZCBzaG91bGRuJ3QgYmUgdXNlZCBmb3IgdXNlciBtb2RlIEJPcyBhdCBhbGwgYW55 IG1vcmU/Cj4gT3IgZG9lcyBpdCBuZWVkIHNvbWUgc2FmZWd1YXJkcyBmb3IgdXNlcnB0ciBCT3M/ Cj4KPiBSZWdhcmRzLAo+ICAgIEZlbGl4Cj4KPgo+IE9uIDIwMTctMDktMDEgMDc6MzUgUE0sIEZl bGl4IEt1ZWhsaW5nIHdyb3RlOgo+PiBJdCBhbHNvIHNlZW1zIHRvIGJyZWFrIEdBUlQgYmluZGlu ZyBvZiB1c2VycHRyIEJPcy4gU2luY2UgYmFja2VuZF9iaW5kCj4+IGRvZXNuJ3QgZG8gR0FSVCBi aW5kaW5nIGZvciB1c2VycHRyIEJPcywgdGhleSBub3cgZG9uJ3QgZ2V0IEdBUlQgYm91bmQKPj4g YXQgYWxsLgo+Pgo+PiBUaGVyZSBpcyBzb21ldGhpbmcgZWxzZSBzdGlsbCBicm9rZW4gaW4gb3Vy IElQQyB0ZXN0IGZvciBzeXN0ZW0gbWVtb3J5Cj4+IGFsc28sIGJ1dCBJJ2xsIGhhdmUgdG8gcmV3 cml0ZSB0aGF0IGFueXdheSB0byB3b3JrIGZvciBsYXJnZSBCT3Mgd2l0aCBhCj4+IHNtYWxsIEdB UlQuCj4+Cj4+IFJlZ2FyZHMsCj4+ICAgIEZlbGl4Cj4+Cj4+Cj4+IE9uIDIwMTctMDktMDEgMDM6 MTcgQU0sIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+PiBZZWFoLCB0aGUgYnVnIGlzIHJlYWxs eSBvYnZpb3VzIGFmdGVyIHlvdSBwb2ludGVkIGl0IG91dC4gV2UganVzdCBuZWVkCj4+PiB0byBr ZWVwIHRoZSBwbGFjZW1lbnQgZmxhZ3MuCj4+Pgo+Pj4gR29pbmcgdG8gc2VuZCBhIGZpeCB0byB0 aGUgbGlzdCBpbiBhIG1pbnV0ZSwKPj4+IENocmlzdGlhbi4KPj4+Cj4+PiBBbSAwMS4wOS4yMDE3 IHVtIDAwOjUwIHNjaHJpZWIgRmVsaXggS3VlaGxpbmc6Cj4+Pj4gSSBiZWxpZXZlIHRoaXMgcGF0 Y2ggYnJlYWtzIHBpbm5lZCBHVFQgQk9zLiBJdCB0cmlwcyBLRkQgdGVzdHMgdGhhdAo+Pj4+IGFw cGx5IGEgbG90IG9mIG1lbW9yeSBwcmVzc3VyZSBvbiBvbmUgb2Ygb3VyIHRlc3Qgc3lzdGVtcy4K Pj4+Pgo+Pj4+IEkgdW5kZXJzdGFuZCB0aGUgY2F1c2Ugb2YgdGhlIHByb2JsZW0gKHNlZSBteSBh bmFseXNpcyBiZWxvdyksIGJ1dCBJJ20KPj4+PiBub3Qgc3VyZSBob3cgdG8gc29sdmUgaXQsIHdp dGhvdXQgcmV2ZXJ0aW5nIHRoZSBwYXRjaC4gQ2hyaXN0aWFuLCBkbyB5b3UKPj4+PiBoYXZlIGFu eSBpZGVhcz8gU2hvdWxkIHdlIGF0IGxlYXN0IHJldmVydCB0aGlzIGFzIGEgc2hvcnQtdGVybSBm aXg/Cj4+Pj4KPj4+PiBJIGFkZGVkIHNvbWUgV0FSTnMgaW4gdGhlIGNvZGUgdG8gdW5kZXJzdGFu ZCB3aGF0J3MgaGFwcGVuaW5nOgo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X29iamVjdC5jCj4+Pj4gaW5kZXggNzJhZDA0NS4uM2VhZDE1NSAxMDA2NDQK Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPj4+PiBA QCAtOTMwLDYgKzkzMCw3IEBAIHZvaWQgYW1kZ3B1X2JvX21vdmVfbm90aWZ5KHN0cnVjdAo+Pj4+ IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+PiAgICAgICAgICAgICAgICAgICByZXR1cm47Cj4+ Pj4gICAgICAgICAgICAgYWJvID0gY29udGFpbmVyX29mKGJvLCBzdHJ1Y3QgYW1kZ3B1X2JvLCB0 Ym8pOwo+Pj4+ICsgICAgICAgIFdBUk4oYWJvLT5waW5fY291bnQsICJNb3ZpbmcgcGlubmVkIGJv Iik7Cj4+Pj4gICAgICAgICAgIGFtZGdwdV92bV9ib19pbnZhbGlkYXRlKGFkZXYsIGFibyk7Cj4+ Pj4gICAgICAgICAgICAgYW1kZ3B1X2JvX2t1bm1hcChhYm8pOwo+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPj4+PiBiL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvX3V0aWwuYwo+Pj4+IGluZGV4IGM5MzRhZDUuLmFmOWY0MGUgMTAwNjQ0Cj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCj4+Pj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCj4+Pj4gQEAgLTYzLDYgKzYzLDcgQEAgaW50IHR0 bV9ib19tb3ZlX3R0bShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4+ICAgICAgICAg ICAgICAgICAgICAgdHRtX3R0X3VuYmluZCh0dG0pOwo+Pj4+ICAgICAgICAgICAgICAgICAgIHR0 bV9ib19mcmVlX29sZF9ub2RlKGJvKTsKPj4+PiArICAgICAgICAgICAgICAgIFdBUk4ob2xkX21l bS0+cGxhY2VtZW50ICYgVFRNX1BMX0ZMQUdfTk9fRVZJQ1QsCj4+Pj4gIlN0cmlwcGluZyBOT19F VklDVCBmbGFnIGZyb20gQk8iKTsKPj4+PiAgICAgICAgICAgICAgICAgICB0dG1fZmxhZ19tYXNr ZWQoJm9sZF9tZW0tPnBsYWNlbWVudCwKPj4+PiBUVE1fUExfRkxBR19TWVNURU0sCj4+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRUTV9QTF9NQVNLX01FTSk7Cj4+Pj4gICAg ICAgICAgICAgICAgICAgb2xkX21lbS0+bWVtX3R5cGUgPSBUVE1fUExfU1lTVEVNOwo+Pj4+Cj4+ Pj4gV2l0aCB0aGF0IEkgc2VlIHRoZSBmb2xsb3dpbmcgc2NlbmFyaW8gdW5mb2xkIGluIG15IGtl cm5lbCBsb2csIHdoZXJlCj4+Pj4gcGlubmVkIEdUVCBCT3MgYXJlIHN3YXBwZWQgb3V0IGFuZCBr dW5tYXBwZWQgdW5kZXIgbWVtb3J5IHByZXNzdXJlLgo+Pj4+IEV2ZW50dWFsbHkgdGhpcyBsZWFk cyB0byBtZW1vcnkgYWNjZXNzIGZhdWx0cyB3aGlsZSBhY2Nlc3NpbmcgcmluZwo+Pj4+IGJ1ZmZl cnMgb3IgSUJzOgo+Pj4+Cj4+Pj4gWyAgICA4LjQ3NTQ1M10gU3RyaXBwaW5nIE5PX0VWSUNUIGZs YWcgZnJvbSBCTwo+Pj4+IFsgICAgOC40NzU0NjFdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0t LS0tLS0tLS0tLQo+Pj4+IFsgICAgOC40NzU0NjVdIFdBUk5JTkc6IENQVTogNSBQSUQ6IDIxODYg YXQKPj4+PiAvaG9tZS9ma3VlaGxpbi9jb21wdXRlL2tlcm5lbC9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9ib191dGlsLmM6NjYKPj4+PiB0dG1fYm9fbW92ZV90dG0rMHgxNGEvMHgxNjAgW3R0bV0K Pj4+PiBbICAgIDguNDc1NDY2XSBNb2R1bGVzIGxpbmtlZCBpbjogYW1ka2ZkKEUpIGFtZF9pb21t dV92MihFKQo+Pj4+IGFtZGdwdShFKykgcmFkZW9uKEUpIHR0bShFKQo+Pj4+IFsgICAgOC40NzU0 NzJdIENQVTogNSBQSUQ6IDIxODYgQ29tbTogc3lzdGVtZC11ZGV2ZCBUYWludGVkOiBHCj4+Pj4g VyAgIEUgICA0LjEyLjAta2ZkLWZrdWVobGluICMxCj4+Pj4gWyAgICA4LjQ3NTQ3M10gSGFyZHdh cmUgbmFtZTogQVNVUyBBbGwgU2VyaWVzL1g5OS1FIFdTL1VTQiAzLjEsIEJJT1MKPj4+PiAyMDA2 IDA0LzA3LzIwMTYKPj4+PiBbICAgIDguNDc1NDc0XSB0YXNrOiBmZmZmOTFiZjEyYTgyZTAwIHRh c2suc3RhY2s6IGZmZmZiOGJkNDM2MDAwMDAKPj4+PiBbICAgIDguNDc1NDc3XSBSSVA6IDAwMTA6 dHRtX2JvX21vdmVfdHRtKzB4MTRhLzB4MTYwIFt0dG1dCj4+Pj4gWyAgICA4LjQ3NTQ3OF0gUlNQ OiAwMDE4OmZmZmZiOGJkNDM2MDM3ODAgRUZMQUdTOiAwMDAxMDI4Mgo+Pj4+IFsgICAgOC40NzU0 ODBdIFJBWDogMDAwMDAwMDAwMDAwMDAxZiBSQlg6IGZmZmY5MWJmMGIwZWUwNTggUkNYOgo+Pj4+ IDAwMDAwMDAwMDAwMDAwMDYKPj4+PiBbICAgIDguNDc1NDgxXSBSRFg6IDAwMDAwMDAwMDAwMDAw MDYgUlNJOiBmZmZmOTFiZjEyYTgzNjc4IFJESToKPj4+PiAwMDAwMDAwMDAwMDAwMjAyCj4+Pj4g WyAgICA4LjQ3NTQ4Ml0gUkJQOiBmZmZmYjhiZDQzNjAzN2EwIFIwODogMDAwMDAwMDAwMDAwMDAw MSBSMDk6Cj4+Pj4gMDAwMDAwMDAwMDAwMDAwMAo+Pj4+IFsgICAgOC40NzU0ODNdIFIxMDogMDAw MDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOgo+Pj4+IGZmZmZiOGJkNDM2 MDM3ZTgKPj4+PiBbICAgIDguNDc1NDg0XSBSMTM6IDAwMDAwMDAwMDAwMDAwMDAgUjE0OiBmZmZm OTFiZjEyYzFiZjAwIFIxNToKPj4+PiBmZmZmOTFiZjBiMGVlMDAwCj4+Pj4gWyAgICA4LjQ3NTQ4 NV0gRlM6ICAwMDAwN2Y3MWIzODFiOGMwKDAwMDApIEdTOmZmZmY5MWJmMTczNDAwMDAoMDAwMCkK Pj4+PiBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCj4+Pj4gWyAgICA4LjQ3NTQ4Nl0gQ1M6ICAwMDEw IERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwo+Pj4+IFsgICAgOC40NzU0 ODddIENSMjogMDAwMDU1N2UyYWQ2M2EyOCBDUjM6IDAwMDAwMDA2MGQxNTMwMDAgQ1I0Ogo+Pj4+ IDAwMDAwMDAwMDAxNDA2ZTAKPj4+PiBbICAgIDguNDc1NDg4XSBDYWxsIFRyYWNlOgo+Pj4+IFsg ICAgOC40NzU1MTRdICBhbWRncHVfdHRtX2JpbmQrMHgxMjkvMHgxYTAgW2FtZGdwdV0KPj4+PiBb ICAgIDguNDc1NTE4XSAgPyB0dG1fYm9fbWVtX2NvbXBhdCsweDIwLzB4NTAgW3R0bV0KPj4+PiBb ICAgIDguNDc1NTIyXSAgPyBzcGFyc2VfYWRkX29uZV9zZWN0aW9uKzB4MTY2LzB4MTY3Cj4+Pj4g WyAgICA4LjQ3NTU0N10gIGFtZGdwdV9ib19waW5fcmVzdHJpY3RlZCsweDFjYS8weDJmMCBbYW1k Z3B1XQo+Pj4+IFsgICAgOC40NzU1NzVdICBhbWRncHVfYm9fY3JlYXRlX3Jlc2VydmVkKzB4OTUv MHgyMjAgW2FtZGdwdV0KPj4+PiBbICAgIDguNDc1NjAyXSAgYW1kZ3B1X2JvX2NyZWF0ZV9rZXJu ZWwrMHgxMC8weDcwIFthbWRncHVdCj4+Pj4gWyAgICA4LjQ3NTYzMl0gIGFtZGdwdV9nZnhfY29t cHV0ZV9tcWRfc3dfaW5pdCsweGYyLzB4MTcwIFthbWRncHVdCj4+Pj4gWyAgICA4LjQ3NTY2M10g IGdmeF92OF8wX3N3X2luaXQrMHhjYTgvMHgxNWQwIFthbWRncHVdCj4+Pj4gWyAgICA4LjQ3NTY5 MF0gIGFtZGdwdV9kZXZpY2VfaW5pdCsweGU2Zi8weDE2MjAgW2FtZGdwdV0KPj4+PiBbICAgIDgu NDc1NzE3XSAgYW1kZ3B1X2RyaXZlcl9sb2FkX2ttcysweDYzLzB4MjAwIFthbWRncHVdCj4+Pj4g WyAgICA4LjQ3NTcyMF0gIGRybV9kZXZfcmVnaXN0ZXIrMHgxNDMvMHgxZDAKPj4+PiBbICAgIDgu NDc1NzQ0XSAgYW1kZ3B1X3BjaV9wcm9iZSsweDExMC8weDE0MCBbYW1kZ3B1XQo+Pj4+IFsgICAg OC40NzU3NDddICBsb2NhbF9wY2lfcHJvYmUrMHg0MC8weGEwCj4+Pj4gWyAgICA4LjQ3NTc0OV0g ID8gcGNpX21hdGNoX2RldmljZSsweGRiLzB4MTAwCj4+Pj4gWyAgICA4LjQ3NTc1Ml0gIHBjaV9k ZXZpY2VfcHJvYmUrMHgxMzYvMHgxNjAKPj4+PiBbICAgIDguNDc1NzU1XSAgZHJpdmVyX3Byb2Jl X2RldmljZSsweDI5OS8weDQ0MAo+Pj4+IFsgICAgOC40NzU3NTddICBfX2RyaXZlcl9hdHRhY2gr MHhkZS8weGUwCj4+Pj4gWyAgICA4LjQ3NTc1OV0gID8gZHJpdmVyX3Byb2JlX2RldmljZSsweDQ0 MC8weDQ0MAo+Pj4+IFsgICAgOC40NzU3NjFdICBidXNfZm9yX2VhY2hfZGV2KzB4NjEvMHhhMAo+ Pj4+IFsgICAgOC40NzU3NjNdICBkcml2ZXJfYXR0YWNoKzB4MTkvMHgyMAo+Pj4+IFsgICAgOC40 NzU3NjRdICBidXNfYWRkX2RyaXZlcisweDFmNi8weDI3MAo+Pj4+IFsgICAgOC40NzU3NjZdICA/ IDB4ZmZmZmZmZmZjMDgzOTAwMAo+Pj4+IFsgICAgOC40NzU3NjhdICBkcml2ZXJfcmVnaXN0ZXIr MHg1Yi8weGQwCj4+Pj4gWyAgICA4LjQ3NTc2OV0gID8gMHhmZmZmZmZmZmMwODM5MDAwCj4+Pj4g WyAgICA4LjQ3NTc3MV0gIF9fcGNpX3JlZ2lzdGVyX2RyaXZlcisweDViLzB4NjAKPj4+PiBbICAg IDguNDc1Nzk5XSAgYW1kZ3B1X2luaXQrMHg4YS8weDEwMDAgW2FtZGdwdV0KPj4+PiBbICAgIDgu NDc1ODAxXSAgZG9fb25lX2luaXRjYWxsKzB4NGUvMHgxOTAKPj4+PiBbICAgIDguNDc1ODA0XSAg PyBrbWVtX2NhY2hlX2FsbG9jKzB4ZDgvMHgxNzAKPj4+PiBbICAgIDguNDc1ODA3XSAgZG9faW5p dF9tb2R1bGUrMHg1NS8weDFlOQo+Pj4+IFsgICAgOC40NzU4MTBdICBsb2FkX21vZHVsZSsweDI3 NzEvMHgyOWMwCj4+Pj4gWyAgICA4LjQ3NTgxN10gIFNZU0NfZmluaXRfbW9kdWxlKzB4YmMvMHhm MAo+Pj4+IFsgICAgOC40NzU4MTldICA/IFNZU0NfZmluaXRfbW9kdWxlKzB4YmMvMHhmMAo+Pj4+ IFsgICAgOC40NzU4MjNdICBTeVNfZmluaXRfbW9kdWxlKzB4OS8weDEwCj4+Pj4gWyAgICA4LjQ3 NTgyNV0gIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxZi8weGJlCj4+Pj4gWy4uLl0KPj4+ PiBbICAyNzguNjkzNzkwXSBNb3ZpbmcgcGlubmVkIGJvICh0aGlzIGt1bm1hcHMgdGhlIEJPKQo+ Pj4+IFsgIDI3OC42OTM4MDJdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQo+ Pj4+IFsgIDI3OC42OTM4MzNdIFdBUk5JTkc6IENQVTogMTEgUElEOiAyMTQ1IGF0Cj4+Pj4gL2hv bWUvZmt1ZWhsaW4vY29tcHV0ZS9rZXJuZWwvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X29iamVjdC5jOjkzMwo+Pj4+IGFtZGdwdV9ib19tb3ZlX25vdGlmeSsweDdjLzB4OTAgW2Ft ZGdwdV0KPj4+PiBbICAyNzguNjkzODM0XSBNb2R1bGVzIGxpbmtlZCBpbjogZnVzZShFKSB4ODZf cGtnX3RlbXBfdGhlcm1hbChFKQo+Pj4+IGFtZGtmZChFKSBhbWRfaW9tbXVfdjIoRSkgYW1kZ3B1 KEUpIHJhZGVvbihFKSB0dG0oRSkKPj4+PiBbICAyNzguNjkzODQzXSBDUFU6IDExIFBJRDogMjE0 NSBDb21tOiBrd29ya2VyLzExOjIgVGFpbnRlZDogRwo+Pj4+IFcgICBFICAgNC4xMi4wLWtmZC1m a3VlaGxpbiAjMQo+Pj4+IFsgIDI3OC42OTM4NDVdIEhhcmR3YXJlIG5hbWU6IEFTVVMgQWxsIFNl cmllcy9YOTktRSBXUy9VU0IgMy4xLCBCSU9TCj4+Pj4gMjAwNiAwNC8wNy8yMDE2Cj4+Pj4gWyAg Mjc4LjY5Mzg1MV0gV29ya3F1ZXVlOiBrZmRfcHJvY2Vzc193cSBrZmRfcHJvY2Vzc193cV9yZWxl YXNlIFthbWRrZmRdCj4+Pj4gWyAgMjc4LjY5Mzg1M10gdGFzazogZmZmZjkxYmYwZGFiMTcwMCB0 YXNrLnN0YWNrOiBmZmZmYjhiZDQ0OTVjMDAwCj4+Pj4gWyAgMjc4LjY5Mzg4MF0gUklQOiAwMDEw OmFtZGdwdV9ib19tb3ZlX25vdGlmeSsweDdjLzB4OTAgW2FtZGdwdV0KPj4+PiBbICAyNzguNjkz ODgyXSBSU1A6IDAwMTg6ZmZmZmI4YmQ0NDk1ZmMyMCBFRkxBR1M6IDAwMDEwMjgyCj4+Pj4gWyAg Mjc4LjY5Mzg4NF0gUkFYOiAwMDAwMDAwMDAwMDAwMDEwIFJCWDogZmZmZjkxYmYwYmVjNzA1OCBS Q1g6Cj4+Pj4gMDAwMDAwMDAwMDAwMDAwNgo+Pj4+IFsgIDI3OC42OTM4ODVdIFJEWDogMDAwMDAw MDAwMDAwMDAwNiBSU0k6IGZmZmY5MWJmMGRhYjFmNTAgUkRJOgo+Pj4+IDAwMDAwMDAwMDAwMDAy MDIKPj4+PiBbICAyNzguNjkzODg2XSBSQlA6IGZmZmZiOGJkNDQ5NWZjNDAgUjA4OiAwMDAwMDAw MDAwMDAwMDAxIFIwOToKPj4+PiAwMDAwMDAwMDAwMDAwMDAwCj4+Pj4gWyAgMjc4LjY5Mzg4N10g UjEwOiBmZmZmYjhiZDQ0OTVmYjk4IFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6Cj4+Pj4gZmZm ZjkxYmYwYjBjMmE2OAo+Pj4+IFsgIDI3OC42OTM4ODldIFIxMzogMDAwMDAwMDAwMDAwMDAwMCBS MTQ6IGZmZmY5MWJmMGJlYzcwOGMgUjE1Ogo+Pj4+IGZmZmY5MWJmMTA0YmIwMDAKPj4+PiBbICAy NzguNjkzODkwXSBGUzogIDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZjkxYmYxNzRjMDAw MCgwMDAwKQo+Pj4+IGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKPj4+PiBbICAyNzguNjkzODkxXSBD UzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCj4+Pj4gWyAg Mjc4LjY5Mzg5Ml0gQ1IyOiAwMDAwMDAwMDA0MTk5MDAwIENSMzogMDAwMDAwMDFmM2UwZjAwMCBD UjQ6Cj4+Pj4gMDAwMDAwMDAwMDE0MDZlMAo+Pj4+IFsgIDI3OC42OTM4OTNdIENhbGwgVHJhY2U6 Cj4+Pj4gWyAgMjc4LjY5Mzg5OF0gIHR0bV9ib19jbGVhbnVwX21lbXR5cGVfdXNlKzB4MWYvMHg3 MCBbdHRtXQo+Pj4+IFsgIDI3OC42OTM5MDJdICB0dG1fYm9fdW5yZWYrMHgzODgvMHg0NzAgW3R0 bV0KPj4+PiBbICAyNzguNjkzOTMxXSAgYW1kZ3B1X2JvX3VucmVmKzB4MjUvMHg0MCBbYW1kZ3B1 XQo+Pj4+IFsgIDI3OC42OTM5NjJdICBhbWRncHVfYW1ka2ZkX2dwdXZtX2ZyZWVfbWVtb3J5X29m X2dwdSsweDFiNS8weDI2MAo+Pj4+IFthbWRncHVdCj4+Pj4gWyAgMjc4LjY5Mzk3NF0gIGtmZF9w cm9jZXNzX2ZyZWVfb3V0c3RhbmRpbmdfa2ZkX2JvcysweGFiLzB4ZTAgW2FtZGtmZF0KPj4+PiBb ICAyNzguNjkzOTgwXSAga2ZkX3Byb2Nlc3Nfd3FfcmVsZWFzZSsweDU2LzB4MTEwIFthbWRrZmRd Cj4+Pj4gWyAgMjc4LjY5Mzk4M10gIHByb2Nlc3Nfb25lX3dvcmsrMHgxOTAvMHg0MzAKPj4+PiBb ICAyNzguNjkzOTg0XSAgPyBwcm9jZXNzX29uZV93b3JrKzB4MTMzLzB4NDMwCj4+Pj4gWyAgMjc4 LjY5Mzk4OF0gIHdvcmtlcl90aHJlYWQrMHg0Ni8weDQwMAo+Pj4+IFsgIDI3OC42OTM5OTFdICBr dGhyZWFkKzB4MTBhLzB4MTQwCj4+Pj4gWyAgMjc4LjY5Mzk5M10gID8gcHJvY2Vzc19vbmVfd29y aysweDQzMC8weDQzMAo+Pj4+IFsgIDI3OC42OTM5OTVdICA/IGt0aHJlYWRfY3JlYXRlX29uX25v ZGUrMHg0MC8weDQwCj4+Pj4gWyAgMjc4LjY5Mzk5Nl0gID8gdW1oX2NvbXBsZXRlKzB4NDAvMHg0 MAo+Pj4+IFsgIDI3OC42OTM5OThdICA/IGNhbGxfdXNlcm1vZGVoZWxwZXJfZXhlY19hc3luYysw eDEzNy8weDE0MAo+Pj4+IFsgIDI3OC42OTQwMDBdICByZXRfZnJvbV9mb3JrKzB4MmEvMHg0MAo+ Pj4+IFsuLi5dCj4+Pj4gWyAgNjk0Ljc0MDIzMl0gQlVHOiB1bmFibGUgdG8gaGFuZGxlIGtlcm5l bCBwYWdpbmcgcmVxdWVzdCBhdAo+Pj4+IGZmZmZiOGJkNDM1NGQ1NDAKPj4+PiBbICA2OTQuNzQw Mzg3XSBJUDogc2RtYV92M18wX3Jpbmdfc2V0X3dwdHIrMHg2NC8weDgwIFthbWRncHVdCj4+Pj4g WyAgNjk0Ljc0MDQzMF0gUEdEIDYxNmMyMzA2Nwo+Pj4+IFsgIDY5NC43NDA0MzJdIFA0RCA2MTZj MjMwNjcKPj4+PiBbICA2OTQuNzQwNDU0XSBQVUQgNjE2YzI0MDY3Cj4+Pj4gWyAgNjk0Ljc0MDQ3 Nl0gUE1EIDYxMzcwNDA2Nwo+Pj4+IFsgIDY5NC43NDA0OThdIFBURSAwCj4+Pj4KPj4+PiBbICA2 OTQuNzQwNTUxXSBPb3BzOiAwMDAyIFsjMV0gU01QCj4+Pj4gWyAgNjk0Ljc0MDU3Nl0gTW9kdWxl cyBsaW5rZWQgaW46IGZ1c2UoRSkgeDg2X3BrZ190ZW1wX3RoZXJtYWwoRSkKPj4+PiBhbWRrZmQo RSkgYW1kX2lvbW11X3YyKEUpIGFtZGdwdShFKSByYWRlb24oRSkgdHRtKEUpCj4+Pj4gWyAgNjk0 Ljc0MDY2N10gQ1BVOiAxMCBQSUQ6IDIyMTMgQ29tbTogc2RtYTAgVGFpbnRlZDogRyAgICAgICAg Vwo+Pj4+IEUgICA0LjEyLjAta2ZkLWZrdWVobGluICMxCj4+Pj4gWyAgNjk0Ljc0MDcyN10gSGFy ZHdhcmUgbmFtZTogQVNVUyBBbGwgU2VyaWVzL1g5OS1FIFdTL1VTQiAzLjEsIEJJT1MKPj4+PiAy MDA2IDA0LzA3LzIwMTYKPj4+PiBbICA2OTQuNzQwNzgyXSB0YXNrOiBmZmZmOTFiZjBkOTg5NzAw IHRhc2suc3RhY2s6IGZmZmZiOGJkNDM3MzAwMDAKPj4+PiBbICA2OTQuNzQwODk1XSBSSVA6IDAw MTA6c2RtYV92M18wX3Jpbmdfc2V0X3dwdHIrMHg2NC8weDgwIFthbWRncHVdCj4+Pj4gWyAgNjk0 Ljc0MDk0MV0gUlNQOiAwMDE4OmZmZmZiOGJkNDM3MzNkYzAgRUZMQUdTOiAwMDAxMDIwMgo+Pj4+ IFsgIDY5NC43NDA5ODJdIFJBWDogZmZmZjkxYmYwYjBjNzc3MCBSQlg6IGZmZmY5MWJmMGIwYzc3 NzAgUkNYOgo+Pj4+IGZmZmZiOGJkNDM1NGQ1NDAKPj4+PiBbICA2OTQuNzQxMDM1XSBSRFg6IDAw MDAwMDAwMDAwMDFhYzAgUlNJOiAwMDAwMDAwMDAwMDAwNmIwIFJESToKPj4+PiBmZmZmOTFiZjBi MGMwMDAwCj4+Pj4gWyAgNjk0Ljc0MTA4N10gUkJQOiBmZmZmYjhiZDQzNzMzZGMwIFIwODogZmZm ZmZmZmZjMDcyYmQ2MCBSMDk6Cj4+Pj4gMDAwMDAwMDAwMDAwMDAwMAo+Pj4+IFsgIDY5NC43NDEx NDBdIFIxMDogZmZmZjkxYmYwYjBjMDAwMCBSMTE6IGZmZmZmZmZmYzA2NGVmNDcgUjEyOgo+Pj4+ IGZmZmY5MWJlZjYxNjYwMDAKPj4+PiBbICA2OTQuNzQxMTkyXSBSMTM6IGZmZmY5MWJlZjYxNjYz NjggUjE0OiAwMDAwMDAwMDAwMDAwMDAxIFIxNToKPj4+PiBmZmZmOTFiZjBiMGM3NzcwCj4+Pj4g WyAgNjk0Ljc0MTI0Nl0gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY5MWJmMTc0 ODAwMDAoMDAwMCkKPj4+PiBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCj4+Pj4gWyAgNjk0Ljc0MTMw NV0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwo+Pj4+ IFsgIDY5NC43NDEzNDldIENSMjogZmZmZmI4YmQ0MzU0ZDU0MCBDUjM6IDAwMDAwMDA2MGU0YTYw MDAgQ1I0Ogo+Pj4+IDAwMDAwMDAwMDAxNDA2ZTAKPj4+PiBbICA2OTQuNzQxNDAxXSBDYWxsIFRy YWNlOgo+Pj4+IFsgIDY5NC43NDE0ODBdICBhbWRncHVfcmluZ19jb21taXQrMHgzYS8weDYwIFth bWRncHVdCj4+Pj4gWyAgNjk0Ljc0MTU3NV0gIGFtZGdwdV9pYl9zY2hlZHVsZSsweDJjNy8weDQ1 MCBbYW1kZ3B1XQo+Pj4+IFsgIDY5NC43NDE2ODddICBhbWRncHVfam9iX3J1bisweDcyLzB4MTEw IFthbWRncHVdCj4+Pj4gWyAgNjk0Ljc0MTc5M10gIGFtZF9zY2hlZF9tYWluKzB4MzQzLzB4NDcw IFthbWRncHVdCj4+Pj4gWyAgNjk0Ljc0MTgzOF0gID8gd2FrZV9hdG9taWNfdF9mdW5jdGlvbisw eDYwLzB4NjAKPj4+PiBbICA2OTQuNzQxODc2XSAga3RocmVhZCsweDEwYS8weDE0MAo+Pj4+IFsg IDY5NC43NDE5NjldICA/IGFtZF9zY2hlZF9wcm9jZXNzX2pvYisweDYwLzB4NjAgW2FtZGdwdV0K Pj4+PiBbICA2OTQuNzQyMDEwXSAgPyBrdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKzB4NDAvMHg0MAo+ Pj4+IFsgIDY5NC43NDIwNDhdICByZXRfZnJvbV9mb3JrKzB4MmEvMHg0MAo+Pj4+Cj4+Pj4KPj4+ Pgo+Pj4+IE9uIDIwMTctMDgtMjMgMDU6MDIgQU0sIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+ Pj4+IEZyb206IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4+ Pj4KPj4+Pj4gVXNlIHR0bV9ib19tZW1fc3BhY2UgaW5zdGVhZCBvZiBtYW51YWxseSBhbGxvY2F0 aW5nIEdBUlQgc3BhY2UuCj4+Pj4+Cj4+Pj4+IFRoaXMgYWxsb3dzIHVzIHRvIGV2aWN0IEJPcyB3 aGVuIHRoZXJlIGlzbid0IGVub3VnaHQgR0FSVCBzcGFjZSBhbnkKPj4+Pj4gbW9yZS4KPj4+Pj4K Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0Bh bWQuY29tPgo+Pj4+PiAtLS0KPj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2d0dF9tZ3IuYyB8IDE0ICsrKysrLS0tLS0tLS0KPj4+Pj4gICAgZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jICAgICB8IDMxCj4+Pj4+ICsrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tCj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90 dG0uaCAgICAgfCAgNCAtLS0tCj4+Pj4+ICAgIDMgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9u cygrKSwgMTkgZGVsZXRpb25zKC0pCj4+Pj4+Cj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ3R0X21nci5jCj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2d0dF9tZ3IuYwo+Pj4+PiBpbmRleCA5ZTA1ZTI1Li4wZDE1ZWI3 IDEwMDY0NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ3R0 X21nci5jCj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9ndHRf bWdyLmMKPj4+Pj4gQEAgLTEwOCwxMCArMTA4LDEwIEBAIGJvb2wgYW1kZ3B1X2d0dF9tZ3JfaXNf YWxsb2NhdGVkKHN0cnVjdAo+Pj4+PiB0dG1fbWVtX3JlZyAqbWVtKQo+Pj4+PiAgICAgKgo+Pj4+ PiAgICAgKiBBbGxvY2F0ZSB0aGUgYWRkcmVzcyBzcGFjZSBmb3IgYSBub2RlLgo+Pj4+PiAgICAg Ki8KPj4+Pj4gLWludCBhbWRncHVfZ3R0X21ncl9hbGxvYyhzdHJ1Y3QgdHRtX21lbV90eXBlX21h bmFnZXIgKm1hbiwKPj4+Pj4gLSAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KnRibywKPj4+Pj4gLSAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwK Pj4+Pj4gLSAgICAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPj4+Pj4gK3N0YXRp YyBpbnQgYW1kZ3B1X2d0dF9tZ3JfYWxsb2Moc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICpt YW4sCj4+Pj4+ICsgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8s Cj4+Pj4+ICsgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4+ Pj4+ICsgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4+Pj4+ICAgIHsK Pj4+Pj4gICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gYW1kZ3B1X3R0bV9hZGV2 KG1hbi0+YmRldik7Cj4+Pj4+ICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2d0dF9tZ3IgKm1nciA9IG1h bi0+cHJpdjsKPj4+Pj4gQEAgLTE0MywxMiArMTQzLDggQEAgaW50IGFtZGdwdV9ndHRfbWdyX2Fs bG9jKHN0cnVjdAo+Pj4+PiB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+Pj4+PiAgICAgICAg ICAgICAgICAgICAgICAgIGZwZm4sIGxwZm4sIG1vZGUpOwo+Pj4+PiAgICAgICAgc3Bpbl91bmxv Y2soJm1nci0+bG9jayk7Cj4+Pj4+ICAgIC0gICAgaWYgKCFyKSB7Cj4+Pj4+ICsgICAgaWYgKCFy KQo+Pj4+PiAgICAgICAgICAgIG1lbS0+c3RhcnQgPSBub2RlLT5zdGFydDsKPj4+Pj4gLSAgICAg ICAgaWYgKCZ0Ym8tPm1lbSA9PSBtZW0pCj4+Pj4+IC0gICAgICAgICAgICB0Ym8tPm9mZnNldCA9 ICh0Ym8tPm1lbS5zdGFydCA8PCBQQUdFX1NISUZUKSArCj4+Pj4+IC0gICAgICAgICAgICAgICAg dGJvLT5iZGV2LT5tYW5bdGJvLT5tZW0ubWVtX3R5cGVdLmdwdV9vZmZzZXQ7Cj4+Pj4+IC0gICAg fQo+Pj4+PiAgICAgICAgICByZXR1cm4gcjsKPj4+Pj4gICAgfQo+Pj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCj4+Pj4+IGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCj4+Pj4+IGluZGV4IDM4ZDI2YTcuLmFhMGI3 ZjUgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90 dG0uYwo+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMK Pj4+Pj4gQEAgLTgwOSwyMCArODA5LDM5IEBAIGJvb2wgYW1kZ3B1X3R0bV9pc19ib3VuZChzdHJ1 Y3QgdHRtX3R0ICp0dG0pCj4+Pj4+ICAgICAgaW50IGFtZGdwdV90dG1fYmluZChzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QKPj4+Pj4gdHRtX21lbV9yZWcgKmJvX21lbSkKPj4+ Pj4gICAgewo+Pj4+PiArICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gYW1kZ3B1X3R0 bV9hZGV2KGJvLT5iZGV2KTsKPj4+Pj4gICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSA9IGJvLT50 dG07Cj4+Pj4+ICsgICAgc3RydWN0IHR0bV9tZW1fcmVnIHRtcDsKPj4+Pj4gKwo+Pj4+PiArICAg IHN0cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKPj4+Pj4gKyAgICBzdHJ1Y3QgdHRtX3Bs YWNlIHBsYWNlbWVudHM7Cj4+Pj4+ICAgICAgICBpbnQgcjsKPj4+Pj4gICAgICAgICAgaWYgKCF0 dG0gfHwgYW1kZ3B1X3R0bV9pc19ib3VuZCh0dG0pKQo+Pj4+PiAgICAgICAgICAgIHJldHVybiAw Owo+Pj4+PiAgICAtICAgIHIgPSBhbWRncHVfZ3R0X21ncl9hbGxvYygmYm8tPmJkZXYtPm1hbltU VE1fUExfVFRdLCBibywKPj4+Pj4gLSAgICAgICAgICAgICAgICAgTlVMTCwgYm9fbWVtKTsKPj4+ Pj4gLSAgICBpZiAocikgewo+Pj4+PiAtICAgICAgICBEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxv Y2F0ZSBHVFQgYWRkcmVzcyBzcGFjZSAoJWQpXG4iLCByKTsKPj4+Pj4gKyAgICB0bXAgPSBiby0+ bWVtOwo+Pj4+PiArICAgIHRtcC5tbV9ub2RlID0gTlVMTDsKPj4+Pj4gKyAgICBwbGFjZW1lbnQu bnVtX3BsYWNlbWVudCA9IDE7Cj4+Pj4+ICsgICAgcGxhY2VtZW50LnBsYWNlbWVudCA9ICZwbGFj ZW1lbnRzOwo+Pj4+PiArICAgIHBsYWNlbWVudC5udW1fYnVzeV9wbGFjZW1lbnQgPSAxOwo+Pj4+ PiArICAgIHBsYWNlbWVudC5idXN5X3BsYWNlbWVudCA9ICZwbGFjZW1lbnRzOwo+Pj4+PiArICAg IHBsYWNlbWVudHMuZnBmbiA9IDA7Cj4+Pj4+ICsgICAgcGxhY2VtZW50cy5scGZuID0gYWRldi0+ bWMuZ2FydF9zaXplID4+IFBBR0VfU0hJRlQ7Cj4+Pj4+ICsgICAgcGxhY2VtZW50cy5mbGFncyA9 IFRUTV9QTF9NQVNLX0NBQ0hJTkcgfCBUVE1fUExfRkxBR19UVDsKPj4+Pj4gKwo+Pj4+PiArICAg IHIgPSB0dG1fYm9fbWVtX3NwYWNlKGJvLCAmcGxhY2VtZW50LCAmdG1wLCB0cnVlLCBmYWxzZSk7 Cj4+Pj4+ICsgICAgaWYgKHVubGlrZWx5KHIpKQo+Pj4+PiAgICAgICAgICAgIHJldHVybiByOwo+ Pj4+PiAtICAgIH0KPj4+Pj4gICAgLSAgICByZXR1cm4gYW1kZ3B1X3R0bV9kb19iaW5kKHR0bSwg Ym9fbWVtKTsKPj4+Pj4gKyAgICByID0gdHRtX2JvX21vdmVfdHRtKGJvLCB0cnVlLCBmYWxzZSwg JnRtcCk7Cj4+Pj4+ICsgICAgaWYgKHVubGlrZWx5KHIpKQo+Pj4+PiArICAgICAgICB0dG1fYm9f bWVtX3B1dChibywgJnRtcCk7Cj4+Pj4+ICsgICAgZWxzZQo+Pj4+PiArICAgICAgICBiby0+b2Zm c2V0ID0gKGJvLT5tZW0uc3RhcnQgPDwgUEFHRV9TSElGVCkgKwo+Pj4+PiArICAgICAgICAgICAg Ym8tPmJkZXYtPm1hbltiby0+bWVtLm1lbV90eXBlXS5ncHVfb2Zmc2V0Owo+Pj4+PiArCj4+Pj4+ ICsgICAgcmV0dXJuIHI7Cj4+Pj4+ICAgIH0KPj4+Pj4gICAgICBpbnQgYW1kZ3B1X3R0bV9yZWNv dmVyX2dhcnQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKPj4+Pj4gYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKPj4+Pj4gaW5kZXggZjIyYTQ3NS4uNDMwOTNi ZiAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5oCj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+ Pj4+PiBAQCAtNjIsMTAgKzYyLDYgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlcl9mdW5jCj4+Pj4+IGFtZGdwdV9ndHRfbWdyX2Z1bmM7Cj4+Pj4+ICAgIGV4dGVybiBj b25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyBhbWRncHVfdnJhbV9tZ3JfZnVu YzsKPj4+Pj4gICAgICBib29sIGFtZGdwdV9ndHRfbWdyX2lzX2FsbG9jYXRlZChzdHJ1Y3QgdHRt X21lbV9yZWcgKm1lbSk7Cj4+Pj4+IC1pbnQgYW1kZ3B1X2d0dF9tZ3JfYWxsb2Moc3RydWN0IHR0 bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4+Pj4+IC0gICAgICAgICAgICAgc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICp0Ym8sCj4+Pj4+IC0gICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9w bGFjZSAqcGxhY2UsCj4+Pj4+IC0gICAgICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0p Owo+Pj4+PiAgICB1aW50NjRfdCBhbWRncHVfZ3R0X21ncl91c2FnZShzdHJ1Y3QgdHRtX21lbV90 eXBlX21hbmFnZXIgKm1hbik7Cj4+Pj4+ICAgICAgdWludDY0X3QgYW1kZ3B1X3ZyYW1fbWdyX3Vz YWdlKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKTsKPj4+PiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+IGFtZC1nZnggbWFpbGluZyBs aXN0Cj4+Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+PiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKPj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gYW1kLWdmeCBtYWlsaW5nIGxp c3QKPj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4CgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==