From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonyoung Shim Subject: Re: [PATCH 2/5] drm: add an fb creation ioctl that takes a pixel format Date: Fri, 04 Nov 2011 16:34:22 +0900 Message-ID: <4EB3957E.1040803@samsung.com> References: <1320264203-18715-1-git-send-email-jbarnes@virtuousgeek.org> <1320264203-18715-3-git-send-email-jbarnes@virtuousgeek.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1320264203-18715-3-git-send-email-jbarnes@virtuousgeek.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Jesse Barnes Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, rob.clark@linaro.org List-Id: dri-devel@lists.freedesktop.org MTEvMDMvMjAxMSAwNTowMyBBTSwgSmVzc2UgQmFybmVzIOyTtCDquIA6Cj4gVG8gcHJvcGVybHkg c3VwcG9ydCB0aGUgdmFyaW91cyBwbGFuZSBmb3JtYXRzIHN1cHBvcnRlZCBieSBkaWZmZXJlbnQK PiBoYXJkd2FyZSwgdGhlIGtlcm5lbCBtdXN0IGtub3cgdGhlIHBpeGVsIGZvcm1hdCBvZiBhIGZy YW1lYnVmZmVyIG9iamVjdC4KPiBTbyBhZGQgYSBuZXcgaW9jdGwgdGFraW5nIGEgZm9ybWF0IGFy Z3VtZW50IGNvcnJlc3BvbmRpbmcgdG8gYSBmb3VyY2MKPiBuYW1lIGZyb20gdmlkZW9kZXYyLmgu Cj4KPiBTaWduZWQtb2ZmLWJ5OiBKZXNzZSBCYXJuZXM8amJhcm5lc0B2aXJ0dW91c2dlZWsub3Jn Pgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgICAgICAgICAgICAgICAgfCAg MTA1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gICBkcml2ZXJzL2dwdS9kcm0vZHJt X2NydGNfaGVscGVyLmMgICAgICAgICB8ICAgNTAgKysrKysrKysrKysrKy0KPiAgIGRyaXZlcnMv Z3B1L2RybS9kcm1fZHJ2LmMgICAgICAgICAgICAgICAgIHwgICAgMSArCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICB8ICAgMzQgKysrKystLS0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAgfCAgICAyICstCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYi5jICAgICAgICAgICB8ICAgMTEgKystLQo+ICAgZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMgfCAgICA0ICstCj4gICBkcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMgICB8ICAgIDQgKy0KPiAgIGRyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZiLmMgICAgICAgIHwgICAxOCArKystLQo+ICAgZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW9kZS5oICAgICAgfCAgICAyICstCj4gICBkcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYyAgICAgICB8ICAgIDIgKy0KPiAgIGRyaXZl cnMvc3RhZ2luZy9nbWE1MDAvZnJhbWVidWZmZXIuYyAgICAgIHwgICAgMiArLQo+ICAgaW5jbHVk ZS9kcm0vZHJtLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKPiAgIGluY2x1ZGUv ZHJtL2RybV9jcnRjLmggICAgICAgICAgICAgICAgICAgIHwgICAgNyArKy0KPiAgIGluY2x1ZGUv ZHJtL2RybV9jcnRjX2hlbHBlci5oICAgICAgICAgICAgIHwgICAgNCArLQo+ICAgaW5jbHVkZS9k cm0vZHJtX21vZGUuaCAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKysKPiAgIGluY2x1 ZGUvbGludXgvdmlkZW9kZXYyLmggICAgICAgICAgICAgICAgIHwgICAgMSArCj4gICAxNyBmaWxl cyBjaGFuZ2VkLCAyMzEgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Ny dGMuYwo+IGluZGV4IDBlMTI5YjEuLmZmNDc1NTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+IEBAIC0x ODg5LDYgKzE4ODksNDIgQEAgb3V0Ogo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4KPiArLyogT3Jp Z2luYWwgYWRkZmIgb25seSBzdXBwb3J0ZWQgUkdCIGZvcm1hdHMsIHNvIGZpZ3VyZSBvdXQgd2hp Y2ggb25lICovCj4gK3VpbnQzMl90IGRybV9tb2RlX2xlZ2FjeV9mYl9mb3JtYXQodWludDMyX3Qg YnBwLCB1aW50MzJfdCBkZXB0aCkKPiArewo+ICsJdWludDMyX3QgZm10Owo+ICsKPiArCXN3aXRj aCAoYnBwKSB7Cj4gKwljYXNlIDg6Cj4gKwkJZm10ID0gVjRMMl9QSVhfRk1UX1JHQjMzMjsKPiAr CQlicmVhazsKPiArCWNhc2UgMTY6Cj4gKwkJaWYgKGRlcHRoID09IDE1KQo+ICsJCQlmbXQgPSBW NEwyX1BJWF9GTVRfUkdCNTU1Owo+ICsJCWVsc2UKPiArCQkJZm10ID0gVjRMMl9QSVhfRk1UX1JH QjU2NTsKPiArCQlicmVhazsKPiArCWNhc2UgMjQ6Cj4gKwkJZm10ID0gVjRMMl9QSVhfRk1UX1JH QjI0Owo+ICsJCWJyZWFrOwo+ICsJY2FzZSAzMjoKPiArCQlpZiAoZGVwdGggPT0gMjQpCj4gKwkJ CWZtdCA9IFY0TDJfUElYX0ZNVF9SR0IyNDsKPiArCQllbHNlIGlmIChkZXB0aCA9PSAzMCkKPiAr CQkJZm10ID0gVjRMMl9QSVhfRk1UX0lOVENfUkdCMzA7Cj4gKwkJZWxzZQo+ICsJCQlmbXQgPSBW NEwyX1BJWF9GTVRfUkdCMzI7Cj4gKwkJYnJlYWs7Cj4gKwlkZWZhdWx0Ogo+ICsJCURSTV9FUlJP UigiYmFkIGJwcCwgYXNzdW1pbmcgUkdCMjQgcGl4ZWwgZm9ybWF0XG4iKTsKPiArCQlmbXQgPSBW NEwyX1BJWF9GTVRfUkdCMjQ7Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIGZtdDsK PiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9tb2RlX2xlZ2FjeV9mYl9mb3JtYXQpOwo+ICsKPiAg IC8qKgo+ICAgICogZHJtX21vZGVfYWRkZmIgLSBhZGQgYW4gRkIgdG8gdGhlIGdyYXBoaWNzIGNv bmZpZ3VyYXRpb24KPiAgICAqIEBpbm9kZTogaW5vZGUgZnJvbSB0aGUgaW9jdGwKPiBAQCAtMTkw OSw3ICsxOTQ1LDc0IEBAIG91dDoKPiAgIGludCBkcm1fbW9kZV9hZGRmYihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICAgCQkgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dikKPiAgIHsKPiAtCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQgKnIgPSBkYXRhOwo+ICsJc3RydWN0 IGRybV9tb2RlX2ZiX2NtZCAqb3IgPSBkYXRhOwo+ICsJc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIg cjsKPiArCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9JmRldi0+bW9kZV9jb25maWc7 Cj4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPiArCWludCByZXQgPSAwOwo+ICsKPiAr CS8qIFVzZSBuZXcgc3RydWN0IHdpdGggZm9ybWF0IGludGVybmFsbHkgKi8KPiArCXIuZmJfaWQg PSBvci0+ZmJfaWQ7Cj4gKwlyLndpZHRoID0gb3ItPndpZHRoOwo+ICsJci5oZWlnaHQgPSBvci0+ aGVpZ2h0Owo+ICsJci5waXRjaGVzWzBdID0gb3ItPnBpdGNoOwo+ICsJci5waXhlbF9mb3JtYXQg PSBkcm1fbW9kZV9sZWdhY3lfZmJfZm9ybWF0KG9yLT5icHAsIG9yLT5kZXB0aCk7Cj4gKwlyLmhh bmRsZSA9IG9yLT5oYW5kbGU7Cj4gKwo+ICsJaWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRl diwgRFJJVkVSX01PREVTRVQpKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWlmICgoY29u ZmlnLT5taW5fd2lkdGg+ICByLndpZHRoKSB8fCAoci53aWR0aD4gIGNvbmZpZy0+bWF4X3dpZHRo KSkgewo+ICsJCURSTV9FUlJPUigibW9kZSBuZXcgZnJhbWVidWZmZXIgd2lkdGggbm90IHdpdGhp biBsaW1pdHNcbiIpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsJaWYgKChjb25maWct Pm1pbl9oZWlnaHQ+ICByLmhlaWdodCkgfHwgKHIuaGVpZ2h0PiAgY29uZmlnLT5tYXhfaGVpZ2h0 KSkgewo+ICsJCURSTV9FUlJPUigibW9kZSBuZXcgZnJhbWVidWZmZXIgaGVpZ2h0IG5vdCB3aXRo aW4gbGltaXRzXG4iKTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4gKwltdXRleF9s b2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiArCj4gKwkvKiBUT0RPIGNoZWNrIGJ1ZmZl ciBpcyBzdWZmaWNpZW50bHkgbGFyZ2UgKi8KPiArCS8qIFRPRE8gc2V0dXAgZGVzdHJ1Y3RvciBj YWxsYmFjayAqLwo+ICsKPiArCWZiID0gZGV2LT5tb2RlX2NvbmZpZy5mdW5jcy0+ZmJfY3JlYXRl KGRldiwgZmlsZV9wcml2LCZyKTsKPiArCWlmIChJU19FUlIoZmIpKSB7Cj4gKwkJRFJNX0VSUk9S KCJjb3VsZCBub3QgY3JlYXRlIGZyYW1lYnVmZmVyXG4iKTsKPiArCQlyZXQgPSBQVFJfRVJSKGZi KTsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCj4gKwlvci0+ZmJfaWQgPSBmYi0+YmFzZS5pZDsK PiArCWxpc3RfYWRkKCZmYi0+ZmlscF9oZWFkLCZmaWxlX3ByaXYtPmZicyk7Cj4gKwlEUk1fREVC VUdfS01TKCJbRkI6JWRdXG4iLCBmYi0+YmFzZS5pZCk7Cj4gKwo+ICtvdXQ6Cj4gKwltdXRleF91 bmxvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsK PiArLyoqCj4gKyAqIGRybV9tb2RlX2FkZGZiMiAtIGFkZCBhbiBGQiB0byB0aGUgZ3JhcGhpY3Mg Y29uZmlndXJhdGlvbgo+ICsgKiBAaW5vZGU6IGlub2RlIGZyb20gdGhlIGlvY3RsCj4gKyAqIEBm aWxwOiBmaWxlICogZnJvbSB0aGUgaW9jdGwKPiArICogQGNtZDogY21kIGZyb20gaW9jdGwKPiAr ICogQGFyZzogYXJnIGZyb20gaW9jdGwKPiArICoKPiArICogTE9DS0lORzoKPiArICogVGFrZXMg bW9kZSBjb25maWcgbG9jay4KPiArICoKPiArICogQWRkIGEgbmV3IEZCIHRvIHRoZSBzcGVjaWZp ZWQgQ1JUQywgZ2l2ZW4gYSB1c2VyIHJlcXVlc3Qgd2l0aCBmb3JtYXQuCj4gKyAqCj4gKyAqIENh bGxlZCBieSB0aGUgdXNlciB2aWEgaW9jdGwuCj4gKyAqCj4gKyAqIFJFVFVSTlM6Cj4gKyAqIFpl cm8gb24gc3VjY2VzcywgZXJybm8gb24gZmFpbHVyZS4KPiArICovCj4gK2ludCBkcm1fbW9kZV9h ZGRmYjIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkgICAgdm9pZCAqZGF0YSwgc3RydWN0 IGRybV9maWxlICpmaWxlX3ByaXYpCj4gK3sKPiArCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICpy ID0gZGF0YTsKPiAgIAlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcgPSZkZXYtPm1vZGVf Y29uZmlnOwo+ICAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwo+ICAgCWludCByZXQgPSAw Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMKPiBpbmRleCBmODhhOWIyLi4wNTczZjEyIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwo+IEBAIC04MDUsMTQgKzgwNSw1NiBAQCB2 b2lkIGRybV9oZWxwZXJfY29ubmVjdG9yX2RwbXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwgaW50IG1vZGUpCj4gICB9Cj4gICBFWFBPUlRfU1lNQk9MKGRybV9oZWxwZXJfY29ubmVj dG9yX2RwbXMpOwo+Cj4gKy8qCj4gKyAqIEp1c3QgbmVlZCB0byBzdXBwb3J0IFJHQiBmb3JtYXRz IGhlcmUgZm9yIGNvbXBhdCB3aXRoIGNvZGUgdGhhdCBkb2Vzbid0Cj4gKyAqIHVzZSBwaXhlbCBm b3JtYXRzIGRpcmVjdGx5IHlldC4KPiArICovCj4gK3ZvaWQgZHJtX2hlbHBlcl9nZXRfZmJfYnBw X2RlcHRoKHVpbnQzMl90IGZvcm1hdCwgdW5zaWduZWQgaW50ICpkZXB0aCwKPiArCQkJCSBpbnQg KmJwcCkKPiArewo+ICsJc3dpdGNoIChmb3JtYXQpIHsKPiArCWNhc2UgVjRMMl9QSVhfRk1UX1JH QjMzMjoKPiArCQkqZGVwdGggPSA4Owo+ICsJCSpicHAgPSA4Owo+ICsJCWJyZWFrOwo+ICsJY2Fz ZSBWNEwyX1BJWF9GTVRfUkdCNTU1Ogo+ICsJCSpkZXB0aCA9IDE1Owo+ICsJCSpicHAgPSAxNjsK PiArCQlicmVhazsKPiArCWNhc2UgVjRMMl9QSVhfRk1UX1JHQjU2NToKPiArCQkqZGVwdGggPSAx NjsKPiArCQkqYnBwID0gMTY7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIFY0TDJfUElYX0ZNVF9SR0Iy NDoKPiArCQkqZGVwdGggPSAyNDsKPiArCQkqYnBwID0gMjQ7Cj4gKwkJYnJlYWs7CgpJbiB0aGUg ZGVwdGggPSAyNCBhbmQgYnBwID0gMzIgY2FzZSBhbHNvIHRoZSBwaXhlZF9mb3JtYXQgaXMKVjRM Ml9QSVhfRk1UX1JHQjI0LCBidXQgYWJvdmUgZnVuY3Rpb24gY2Fubm90IGRldGVjdCBpdC4KCgo+ ICsJY2FzZSBWNEwyX1BJWF9GTVRfSU5UQ19SR0IzMDoKPiArCQkqZGVwdGggPSAzMDsKPiArCQkq YnBwID0gMzI7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIFY0TDJfUElYX0ZNVF9SR0IzMjoKPiArCQkq ZGVwdGggPSAzMjsKPiArCQkqYnBwID0gMzI7Cj4gKwkJYnJlYWs7Cj4gKwlkZWZhdWx0Ogo+ICsJ CURSTV9ERUJVR19LTVMoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdFxuIik7Cj4gKwkJKmRlcHRo ID0gMDsKPiArCQkqYnBwID0gMDsKPiArCQlicmVhazsKPiArCX0KPiArfQo+ICtFWFBPUlRfU1lN Qk9MKGRybV9oZWxwZXJfZ2V0X2ZiX2JwcF9kZXB0aCk7Cj4gKwo+ICAgaW50IGRybV9oZWxwZXJf bW9kZV9maWxsX2ZiX3N0cnVjdChzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAtCQkJCSAg IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQgKm1vZGVfY21kKQo+ICsJCQkJICAgc3RydWN0IGRybV9t b2RlX2ZiX2NtZDIgKm1vZGVfY21kKQo+ICAgewo+ICAgCWZiLT53aWR0aCA9IG1vZGVfY21kLT53 aWR0aDsKPiAgIAlmYi0+aGVpZ2h0ID0gbW9kZV9jbWQtPmhlaWdodDsKPiAtCWZiLT5waXRjaCA9 IG1vZGVfY21kLT5waXRjaDsKPiAtCWZiLT5iaXRzX3Blcl9waXhlbCA9IG1vZGVfY21kLT5icHA7 Cj4gLQlmYi0+ZGVwdGggPSBtb2RlX2NtZC0+ZGVwdGg7Cj4gKwlmYi0+cGl0Y2ggPSBtb2RlX2Nt ZC0+cGl0Y2hlc1swXTsKPiArCWRybV9oZWxwZXJfZ2V0X2ZiX2JwcF9kZXB0aChtb2RlX2NtZC0+ cGl4ZWxfZm9ybWF0LCZmYi0+ZGVwdGgsCj4gKwkJCQkmZmItPmJpdHNfcGVyX3BpeGVsKTsKPiAr CWZiLT5waXhlbF9mb3JtYXQgPSBtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0Owo+Cj4gICAJcmV0dXJu IDA7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCj4gaW5kZXggMTVkYTYxOC4uZjI0YjliNiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9kcnYuYwo+IEBAIC0xNTIsNiArMTUyLDcgQEAgc3RhdGljIHN0cnVjdCBkcm1faW9jdGxfZGVz YyBkcm1faW9jdGxzW10gPSB7Cj4gICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRQ Uk9QQkxPQiwgZHJtX21vZGVfZ2V0YmxvYl9pb2N0bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9B TExPV3xEUk1fVU5MT0NLRUQpLAo+ICAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VU RkIsIGRybV9tb2RlX2dldGZiLCBEUk1fTUFTVEVSfERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxP Q0tFRCksCj4gICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9BRERGQiwgZHJtX21vZGVf YWRkZmIsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiArCURS TV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQURERkIyLCBkcm1fbW9kZV9hZGRmYjIsIERSTV9N QVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAgIAlEUk1fSU9DVExfREVG KERSTV9JT0NUTF9NT0RFX1JNRkIsIGRybV9tb2RlX3JtZmIsIERSTV9NQVNURVJ8RFJNX0NPTlRS T0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAgIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RF X1BBR0VfRkxJUCwgZHJtX21vZGVfcGFnZV9mbGlwX2lvY3RsLCBEUk1fTUFTVEVSfERSTV9DT05U Uk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCj4gICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9E RV9ESVJUWUZCLCBkcm1fbW9kZV9kaXJ0eWZiX2lvY3RsLCBEUk1fTUFTVEVSfERSTV9DT05UUk9M X0FMTE9XfERSTV9VTkxPQ0tFRCksCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ IGluZGV4IDk4MWIxZjEuLjA3MjdmYzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gQEAgLTYyNzksNyArNjI3OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSBsb2FkX2RldGVjdF9tb2RlID0gewo+Cj4gICBzdGF0aWMgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqCj4gICBpbnRlbF9mcmFtZWJ1ZmZlcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiAtCQkJIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQgKm1vZGVfY21kLAo+ICsJCQkgc3RydWN0 IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kLAo+ICAgCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopCj4gICB7Cj4gICAJc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9m YjsKPiBAQCAtNjMyMSw3ICs2MzIxLDcgQEAgaW50ZWxfZnJhbWVidWZmZXJfY3JlYXRlX2Zvcl9t b2RlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkJICBpbnQgZGVwdGgsIGludCBicHAp Cj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiAtCXN0cnVjdCBk cm1fbW9kZV9mYl9jbWQgbW9kZV9jbWQ7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiBtb2Rl X2NtZDsKPgo+ICAgCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsCj4gICAJCQkJICAg IGludGVsX2ZyYW1lYnVmZmVyX3NpemVfZm9yX21vZGUobW9kZSwgYnBwKSk7Cj4gQEAgLTYzMzAs OSArNjMzMCw5IEBAIGludGVsX2ZyYW1lYnVmZmVyX2NyZWF0ZV9mb3JfbW9kZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+Cj4gICAJbW9kZV9jbWQud2lkdGggPSBtb2RlLT5oZGlzcGxheTsKPiAg IAltb2RlX2NtZC5oZWlnaHQgPSBtb2RlLT52ZGlzcGxheTsKPiAtCW1vZGVfY21kLmRlcHRoID0g ZGVwdGg7Cj4gLQltb2RlX2NtZC5icHAgPSBicHA7Cj4gLQltb2RlX2NtZC5waXRjaCA9IGludGVs X2ZyYW1lYnVmZmVyX3BpdGNoX2Zvcl93aWR0aChtb2RlX2NtZC53aWR0aCwgYnBwKTsKPiArCW1v ZGVfY21kLnBpdGNoZXNbMF0gPSBpbnRlbF9mcmFtZWJ1ZmZlcl9waXRjaF9mb3Jfd2lkdGgobW9k ZV9jbWQud2lkdGgsCj4gKwkJCQkJCQkJYnBwKTsKPiArCW1vZGVfY21kLnBpeGVsX2Zvcm1hdCA9 IDA7Cj4KPiAgIAlyZXR1cm4gaW50ZWxfZnJhbWVidWZmZXJfY3JlYXRlKGRldiwmbW9kZV9jbWQs IG9iaik7Cj4gICB9Cj4gQEAgLTc1NzMsNyArNzU3Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIGludGVsX2ZiX2Z1bmNzID0gewo+Cj4gICBpbnQgaW50ZWxf ZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQkJICAgc3RydWN0 IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYiwKPiAtCQkJICAgc3RydWN0IGRybV9tb2RlX2Zi X2NtZCAqbW9kZV9jbWQsCj4gKwkJCSAgIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2Nt ZCwKPiAgIAkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gICB7Cj4gICAJ aW50IHJldDsKPiBAQCAtNzU4NCwxOCArNzU4NCwyMCBAQCBpbnQgaW50ZWxfZnJhbWVidWZmZXJf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCWlmIChtb2RlX2NtZC0+cGl0Y2gmICA2 MykKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4KPiAtCXN3aXRjaCAobW9kZV9jbWQtPmJwcCkgewo+ IC0JY2FzZSA4Ogo+IC0JY2FzZSAxNjoKPiAtCQkvKiBPbmx5IHByZS1JTEsgY2FuIGhhbmRsZSA1 OjU6NSAqLwo+IC0JCWlmIChtb2RlX2NtZC0+ZGVwdGggPT0gMTUmJiAgIUhBU19QQ0hfU1BMSVQo ZGV2KSkKPiAtCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwlzd2l0Y2ggKG1vZGVfY21kLT5waXhlbF9m b3JtYXQpIHsKPiArCWNhc2UgVjRMMl9QSVhfRk1UX1JHQjMzMjoKPiArCWNhc2UgVjRMMl9QSVhf Rk1UX1JHQjU2NToKPiArCWNhc2UgVjRMMl9QSVhfRk1UX1JHQjI0Ogo+ICsJY2FzZSBWNEwyX1BJ WF9GTVRfSU5UQ19SR0IzMDoKPiArCQkvKiBSR0IgZm9ybWF0cyBhcmUgY29tbW9uIGFjcm9zcyBj aGlwc2V0cyAqLwo+ICAgCQlicmVhazsKPiAtCj4gLQljYXNlIDI0Ogo+IC0JY2FzZSAzMjoKPiAr CWNhc2UgVjRMMl9QSVhfRk1UX1lVWVY6Cj4gKwljYXNlIFY0TDJfUElYX0ZNVF9VWVZZOgo+ICsJ Y2FzZSBWNEwyX1BJWF9GTVRfWVZZVToKPiArCWNhc2UgVjRMMl9QSVhfRk1UX1ZZVVk6Cj4gICAJ CWJyZWFrOwo+ICAgCWRlZmF1bHQ6Cj4gKwkJRFJNX0VSUk9SKCJ1bnN1cHBvcnRlZCBwaXhlbCBm b3JtYXRcbiIpOwo+ICAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgIAl9Cj4KPiBAQCAtNzYxMyw3ICs3 NjE1LDcgQEAgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICoKPiAgIGludGVsX3VzZXJfZnJh bWVidWZmZXJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkgICAgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbHAsCj4gLQkJCSAgICAgIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQgKm1v ZGVfY21kKQo+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQpCj4g ICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gaW5kZXggYmQ5YTYwNC4uMjNjNTYyMiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gQEAgLTM1OSw3ICszNTksNyBAQCBleHRlcm4gaW50IGludGVsX3Bpbl9h bmRfZmVuY2VfZmJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4KPiAgIGV4dGVybiBpbnQg aW50ZWxfZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQkJCSAg c3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppZmIsCj4gLQkJCQkgIHN0cnVjdCBkcm1fbW9kZV9m Yl9jbWQgKm1vZGVfY21kLAo+ICsJCQkJICBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9j bWQsCj4gICAJCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKPiAgIGV4dGVy biBpbnQgaW50ZWxfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgIGV4dGVy biB2b2lkIGludGVsX2ZiZGV2X2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYi5jCj4gaW5kZXggZWM0OWJhZS4uZGMxZGI0ZiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZmIuYwo+IEBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9jcmVh dGUoc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYsCj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgZmJfaW5mbyAqaW5m bzsKPiAgIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPiAtCXN0cnVjdCBkcm1fbW9kZV9m Yl9jbWQgbW9kZV9jbWQ7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiBtb2RlX2NtZDsKPiAg IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwo+ICAgCXN0cnVjdCBkZXZpY2UgKmRl dmljZSA9JmRldi0+cGRldi0+ZGV2Owo+ICAgCWludCBzaXplLCByZXQ7Cj4gQEAgLTc3LDExICs3 NywxMiBAQCBzdGF0aWMgaW50IGludGVsZmJfY3JlYXRlKHN0cnVjdCBpbnRlbF9mYmRldiAqaWZi ZGV2LAo+ICAgCW1vZGVfY21kLndpZHRoID0gc2l6ZXMtPnN1cmZhY2Vfd2lkdGg7Cj4gICAJbW9k ZV9jbWQuaGVpZ2h0ID0gc2l6ZXMtPnN1cmZhY2VfaGVpZ2h0Owo+Cj4gLQltb2RlX2NtZC5icHAg PSBzaXplcy0+c3VyZmFjZV9icHA7Cj4gLQltb2RlX2NtZC5waXRjaCA9IEFMSUdOKG1vZGVfY21k LndpZHRoICogKChtb2RlX2NtZC5icHAgKyA3KSAvIDgpLCA2NCk7Cj4gLQltb2RlX2NtZC5kZXB0 aCA9IHNpemVzLT5zdXJmYWNlX2RlcHRoOwo+ICsJbW9kZV9jbWQucGl0Y2hlc1swXSA9IEFMSUdO KG1vZGVfY21kLndpZHRoICogKChzaXplcy0+c3VyZmFjZV9icHAgKyA3KSAvCj4gKwkJCQkJCSAg ICAgIDgpLCA2NCk7Cj4gKwltb2RlX2NtZC5waXhlbF9mb3JtYXQgPSBkcm1fbW9kZV9sZWdhY3lf ZmJfZm9ybWF0KHNpemVzLT5zdXJmYWNlX2JwcCwKPiArCQkJCQkJCSAgc2l6ZXMtPnN1cmZhY2Vf ZGVwdGgpOwo+Cj4gLQlzaXplID0gbW9kZV9jbWQucGl0Y2ggKiBtb2RlX2NtZC5oZWlnaHQ7Cj4g KwlzaXplID0gbW9kZV9jbWQucGl0Y2hlc1swXSAqIG1vZGVfY21kLmhlaWdodDsKPiAgIAlzaXpl ID0gQUxJR04oc2l6ZSwgUEFHRV9TSVpFKTsKPiAgIAlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmpl Y3QoZGV2LCBzaXplKTsKPiAgIAlpZiAoIW9iaikgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L25vdXZlYXVfZGlzcGxheS5jCj4gaW5kZXggZGRiYWJlZi4uN2E0MjhhOSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCj4gQEAgLTY0LDcgKzY0LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3Mgbm91dmVhdV9mcmFtZWJ1 ZmZlcl9mdW5jcyA9IHsKPiAgIGludAo+ICAgbm91dmVhdV9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkgc3RydWN0IG5vdXZlYXVfZnJhbWVidWZmZXIgKm52 X2ZiLAo+IC0JCQkgc3RydWN0IGRybV9tb2RlX2ZiX2NtZCAqbW9kZV9jbWQsCj4gKwkJCSBzdHJ1 Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCj4gICAJCQkgc3RydWN0IG5vdXZlYXVfYm8g Km52Ym8pCj4gICB7Cj4gICAJc3RydWN0IGRybV9ub3V2ZWF1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtMTI0LDcgKzEyNCw3IEBAIG5vdXZlYXVfZnJhbWVidWZm ZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgc3RhdGljIHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKgo+ICAgbm91dmVhdV91c2VyX2ZyYW1lYnVmZmVyX2NyZWF0ZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAgCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+IC0JCQkJ c3RydWN0IGRybV9tb2RlX2ZiX2NtZCAqbW9kZV9jbWQpCj4gKwkJCQlzdHJ1Y3QgZHJtX21vZGVf ZmJfY21kMiAqbW9kZV9jbWQpCj4gICB7Cj4gICAJc3RydWN0IG5vdXZlYXVfZnJhbWVidWZmZXIg Km5vdXZlYXVfZmI7Cj4gICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW07Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYwo+IGluZGV4IDZjYzE3ZmIuLmFlODAzZjggMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCj4gQEAgLTExMTMsNyAr MTExMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIHJhZGVv bl9mYl9mdW5jcyA9IHsKPiAgIHZvaWQKPiAgIHJhZGVvbl9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQlzdHJ1Y3QgcmFkZW9uX2ZyYW1lYnVmZmVyICpyZmIs Cj4gLQkJCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQgKm1vZGVfY21kLAo+ICsJCQlzdHJ1Y3QgZHJt X21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCj4gICAJCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aikKPiAgIHsKPiAgIAlyZmItPm9iaiA9IG9iajsKPiBAQCAtMTEyNCw3ICsxMTI0LDcgQEAgcmFk ZW9uX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIHN0YXRpYyBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICoKPiAgIHJhZGVvbl91c2VyX2ZyYW1lYnVmZmVyX2NyZWF0 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2LAo+IC0JCQkgICAgICAgc3RydWN0IGRybV9tb2RlX2ZiX2NtZCAqbW9kZV9jbWQp Cj4gKwkJCSAgICAgICBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQpCj4gICB7Cj4g ICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Cj4gICAJc3RydWN0IHJhZGVvbl9mcmFtZWJ1 ZmZlciAqcmFkZW9uX2ZiOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZmIuYwo+IGluZGV4IDBi N2I0ODYuLmVhMTEwYWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fZmIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZiLmMKPiBAQCAt MTAzLDcgKzEwMyw3IEBAIHN0YXRpYyB2b2lkIHJhZGVvbmZiX2Rlc3Ryb3lfcGlubmVkX29iamVj dChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmopCj4gICB9Cj4KPiAgIHN0YXRpYyBpbnQgcmFk ZW9uZmJfY3JlYXRlX3Bpbm5lZF9vYmplY3Qoc3RydWN0IHJhZGVvbl9mYmRldiAqcmZiZGV2LAo+ IC0JCQkJCSBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kICptb2RlX2NtZCwKPiArCQkJCQkgc3RydWN0 IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kLAo+ICAgCQkJCQkgc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICoqZ29ial9wKQo+ICAgewo+ICAgCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gcmZi ZGV2LT5yZGV2Owo+IEBAIC0xMTQsMTMgKzExNCwxNyBAQCBzdGF0aWMgaW50IHJhZGVvbmZiX2Ny ZWF0ZV9waW5uZWRfb2JqZWN0KHN0cnVjdCByYWRlb25fZmJkZXYgKnJmYmRldiwKPiAgIAlpbnQg cmV0Owo+ICAgCWludCBhbGlnbmVkX3NpemUsIHNpemU7Cj4gICAJaW50IGhlaWdodCA9IG1vZGVf Y21kLT5oZWlnaHQ7Cj4gKwl1MzIgYnBwLCBkZXB0aDsKPiArCj4gKwlkcm1faGVscGVyX2dldF9m Yl9icHBfZGVwdGgobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCwmZGVwdGgsJmJwcCk7Cj4KPiAgIAkv KiBuZWVkIHRvIGFsaWduIHBpdGNoIHdpdGggY3J0YyBsaW1pdHMgKi8KPiAtCW1vZGVfY21kLT5w aXRjaCA9IHJhZGVvbl9hbGlnbl9waXRjaChyZGV2LCBtb2RlX2NtZC0+d2lkdGgsIG1vZGVfY21k LT5icHAsIGZiX3RpbGVkKSAqICgobW9kZV9jbWQtPmJwcCArIDEpIC8gOCk7Cj4gKwltb2RlX2Nt ZC0+cGl0Y2hlc1swXSA9IHJhZGVvbl9hbGlnbl9waXRjaChyZGV2LCBtb2RlX2NtZC0+d2lkdGgs IGJwcCwKPiArCQkJCQkJICBmYl90aWxlZCkgKiAoKGJwcCArIDEpIC8gOCk7Cj4KPiAgIAlpZiAo cmRldi0+ZmFtaWx5Pj0gQ0hJUF9SNjAwKQo+ICAgCQloZWlnaHQgPSBBTElHTihtb2RlX2NtZC0+ aGVpZ2h0LCA4KTsKPiAtCXNpemUgPSBtb2RlX2NtZC0+cGl0Y2ggKiBoZWlnaHQ7Cj4gKwlzaXpl ID0gbW9kZV9jbWQtPnBpdGNoZXNbMF0gKiBoZWlnaHQ7Cj4gICAJYWxpZ25lZF9zaXplID0gQUxJ R04oc2l6ZSwgUEFHRV9TSVpFKTsKPiAgIAlyZXQgPSByYWRlb25fZ2VtX29iamVjdF9jcmVhdGUo cmRldiwgYWxpZ25lZF9zaXplLCAwLAo+ICAgCQkJCSAgICAgICBSQURFT05fR0VNX0RPTUFJTl9W UkFNLAo+IEBAIC0xNTEsNyArMTU1LDcgQEAgc3RhdGljIGludCByYWRlb25mYl9jcmVhdGVfcGlu bmVkX29iamVjdChzdHJ1Y3QgcmFkZW9uX2ZiZGV2ICpyZmJkZXYsCj4gICAJaWYgKHRpbGluZ19m bGFncykgewo+ICAgCQlyZXQgPSByYWRlb25fYm9fc2V0X3RpbGluZ19mbGFncyhyYm8sCj4gICAJ CQkJCQkgdGlsaW5nX2ZsYWdzIHwgUkFERU9OX1RJTElOR19TVVJGQUNFLAo+IC0JCQkJCQkgbW9k ZV9jbWQtPnBpdGNoKTsKPiArCQkJCQkJIG1vZGVfY21kLT5waXRjaGVzWzBdKTsKPiAgIAkJaWYg KHJldCkKPiAgIAkJCWRldl9lcnIocmRldi0+ZGV2LCAiRkIgZmFpbGVkIHRvIHNldCB0aWxpbmcg ZmxhZ3NcbiIpOwo+ICAgCX0KPiBAQCAtMTg3LDcgKzE5MSw3IEBAIHN0YXRpYyBpbnQgcmFkZW9u ZmJfY3JlYXRlKHN0cnVjdCByYWRlb25fZmJkZXYgKnJmYmRldiwKPiAgIAlzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiA9IHJmYmRldi0+cmRldjsKPiAgIAlzdHJ1Y3QgZmJfaW5mbyAqaW5mbzsK PiAgIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IE5VTEw7Cj4gLQlzdHJ1Y3QgZHJtX21v ZGVfZmJfY21kIG1vZGVfY21kOwo+ICsJc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgbW9kZV9jbWQ7 Cj4gICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnb2JqID0gTlVMTDsKPiAgIAlzdHJ1Y3QgcmFk ZW9uX2JvICpyYm8gPSBOVUxMOwo+ICAgCXN0cnVjdCBkZXZpY2UgKmRldmljZSA9JnJkZXYtPnBk ZXYtPmRldjsKPiBAQCAtMjAxLDggKzIwNSw4IEBAIHN0YXRpYyBpbnQgcmFkZW9uZmJfY3JlYXRl KHN0cnVjdCByYWRlb25fZmJkZXYgKnJmYmRldiwKPiAgIAlpZiAoKHNpemVzLT5zdXJmYWNlX2Jw cCA9PSAyNCkmJiAgQVNJQ19JU19BVklWTyhyZGV2KSkKPiAgIAkJc2l6ZXMtPnN1cmZhY2VfYnBw ID0gMzI7Cj4KPiAtCW1vZGVfY21kLmJwcCA9IHNpemVzLT5zdXJmYWNlX2JwcDsKPiAtCW1vZGVf Y21kLmRlcHRoID0gc2l6ZXMtPnN1cmZhY2VfZGVwdGg7Cj4gKwltb2RlX2NtZC5waXhlbF9mb3Jt YXQgPSBkcm1fbW9kZV9sZWdhY3lfZmJfZm9ybWF0KHNpemVzLT5zdXJmYWNlX2JwcCwKPiArCQkJ CQkJCSAgc2l6ZXMtPnN1cmZhY2VfZGVwdGgpOwo+Cj4gICAJcmV0ID0gcmFkZW9uZmJfY3JlYXRl X3Bpbm5lZF9vYmplY3QocmZiZGV2LCZtb2RlX2NtZCwmZ29iaik7Cj4gICAJcmJvID0gZ2VtX3Rv X3JhZGVvbl9ibyhnb2JqKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fbW9kZS5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW9kZS5oCj4gaW5k ZXggNjg4MjBmNS4uMjI3ZjU5NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9tb2RlLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9tb2Rl LmgKPiBAQCAtNjQ0LDcgKzY0NCw3IEBAIGV4dGVybiB2b2lkIHJhZGVvbl9jcnRjX2ZiX2dhbW1h X2dldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUxNiAqcmVkLCB1MTYgKmdyZWVuCj4gICAJCQkJ ICAgICB1MTYgKmJsdWUsIGludCByZWdubyk7Cj4gICB2b2lkIHJhZGVvbl9mcmFtZWJ1ZmZlcl9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkgICAgIHN0cnVjdCByYWRlb25fZnJh bWVidWZmZXIgKnJmYiwKPiAtCQkJICAgICBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kICptb2RlX2Nt ZCwKPiArCQkJICAgICBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCj4gICAJCQkg ICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPgo+ICAgaW50IHJhZGVvbmZiX3JlbW92 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYik7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKPiBpbmRleCAxYTRjODRjLi4yYTFiODAyIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKPiBAQCAtODM5LDcgKzgzOSw3IEBA IG91dF9lcnIxOgo+Cj4gICBzdGF0aWMgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqdm13X2ttc19m Yl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJCQkJCSBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdiwKPiAtCQkJCQkJIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQgKm1vZGVfY21k KQo+ICsJCQkJCQkgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kKQo+ICAgewo+ICAg CXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bXdfcHJpdihkZXYpOwo+ICAgCXN0cnVj dCB0dG1fb2JqZWN0X2ZpbGUgKnRmaWxlID0gdm13X2Zwcml2KGZpbGVfcHJpdiktPnRmaWxlOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvZ21hNTAwL2ZyYW1lYnVmZmVyLmMgYi9kcml2 ZXJzL3N0YWdpbmcvZ21hNTAwL2ZyYW1lYnVmZmVyLmMKPiBpbmRleCBlYmZkZTEzLi44NWY0N2Q1 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9nbWE1MDAvZnJhbWVidWZmZXIuYwo+ICsr KyBiL2RyaXZlcnMvc3RhZ2luZy9nbWE1MDAvZnJhbWVidWZmZXIuYwo+IEBAIC00ODcsNyArNDg3 LDcgQEAgb3V0X2VycjE6Cj4gICAgKi8KPiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpwc2JfdXNlcl9mcmFtZWJ1ZmZlcl9jcmVhdGUKPiAgIAkJCShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHAsCj4gLQkJCSBzdHJ1Y3QgZHJtX21vZGVfZmJfY21k ICpjbWQpCj4gKwkJCSBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqY21kKQo+ICAgewo+ICAgCXN0 cnVjdCBndHRfcmFuZ2UgKnI7Cj4gICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Cj4gZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybS5oIGIvaW5jbHVkZS9kcm0vZHJtLmgKPiBpbmRleCAy ODk3OTY3Li40OWQ5NGVkIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybS5oCj4gKysrIGIv aW5jbHVkZS9kcm0vZHJtLmgKPiBAQCAtNzE3LDYgKzcxNyw3IEBAIHN0cnVjdCBkcm1fZ2V0X2Nh cCB7Cj4gICAjZGVmaW5lIERSTV9JT0NUTF9NT0RFX0dFVFBMQU5FUkVTT1VSQ0VTIERSTV9JT1dS KDB4QjUsIHN0cnVjdCBkcm1fbW9kZV9nZXRfcGxhbmVfcmVzKQo+ICAgI2RlZmluZSBEUk1fSU9D VExfTU9ERV9HRVRQTEFORQlEUk1fSU9XUigweEI2LCBzdHJ1Y3QgZHJtX21vZGVfZ2V0X3BsYW5l KQo+ICAgI2RlZmluZSBEUk1fSU9DVExfTU9ERV9TRVRQTEFORQlEUk1fSU9XUigweEI3LCBzdHJ1 Y3QgZHJtX21vZGVfc2V0X3BsYW5lKQo+ICsjZGVmaW5lIERSTV9JT0NUTF9NT0RFX0FEREZCMgkJ RFJNX0lPV1IoMHhCOCwgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIpCj4KPiAgIC8qKgo+ICAgICog RGV2aWNlIHNwZWNpZmljIGlvY3RscyBzaG91bGQgb25seSBiZSBpbiB0aGVpciByZXNwZWN0aXZl IGhlYWRlcnMKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUv ZHJtL2RybV9jcnRjLmgKPiBpbmRleCBiNDUxOWY4Li5mNjVlYzA4IDEwMDY0NAo+IC0tLSBhL2lu Y2x1ZGUvZHJtL2RybV9jcnRjLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gQEAg LTI5LDYgKzI5LDcgQEAKPiAgICNpbmNsdWRlPGxpbnV4L3NwaW5sb2NrLmg+Cj4gICAjaW5jbHVk ZTxsaW51eC90eXBlcy5oPgo+ICAgI2luY2x1ZGU8bGludXgvaWRyLmg+Cj4gKyNpbmNsdWRlPGxp bnV4L3ZpZGVvZGV2Mi5oPiAgLyogZm9yIHBsYW5lIGZvcm1hdHMgKi8KPgo+ICAgI2luY2x1ZGU8 bGludXgvZmIuaD4KPgo+IEBAIC0yNDYsNiArMjQ3LDcgQEAgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciB7Cj4gICAJdW5zaWduZWQgaW50IGRlcHRoOwo+ICAgCWludCBiaXRzX3Blcl9waXhlbDsKPiAg IAlpbnQgZmxhZ3M7Cj4gKwl1aW50MzJfdCBwaXhlbF9mb3JtYXQ7IC8qIGZvdXJjYyBmb3JtYXQg Ki8KPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIGZpbHBfaGVhZDsKPiAgIAkvKiBpZiB5b3UgYXJlIHVz aW5nIHRoZSBoZWxwZXIgKi8KPiAgIAl2b2lkICpoZWxwZXJfcHJpdmF0ZTsKPiBAQCAtNjIwLDcg KzYyMiw3IEBAIHN0cnVjdCBkcm1fbW9kZV9zZXQgewo+ICAgICogc3RydWN0IGRybV9tb2RlX2Nv bmZpZ19mdW5jcyAtIGNvbmZpZ3VyZSBDUlRDcyBmb3IgYSBnaXZlbiBzY3JlZW4gbGF5b3V0Cj4g ICAgKi8KPiAgIHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3Mgewo+IC0Jc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqKCpmYl9jcmVhdGUpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2LCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kICptb2RlX2NtZCk7Cj4g KwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICooKmZiX2NyZWF0ZSkoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQy ICptb2RlX2NtZCk7Cj4gICAJdm9pZCAoKm91dHB1dF9wb2xsX2NoYW5nZWQpKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwo+ICAgfTsKPgo+IEBAIC04MzgsNiArODQwLDkgQEAgZXh0ZXJuIGludCBk cm1fbW9kZV9jdXJzb3JfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJCQl2b2lk ICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gICBleHRlcm4gaW50IGRybV9t b2RlX2FkZGZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkgIHZvaWQgKmRhdGEsIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiArZXh0ZXJuIGludCBkcm1fbW9kZV9hZGRmYjIo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXYpOwo+ICtleHRlcm4gdWludDMyX3QgZHJtX21vZGVfbGVnYWN5X2ZiX2Zv cm1hdCh1aW50MzJfdCBicHAsIHVpbnQzMl90IGRlcHRoKTsKPiAgIGV4dGVybiBpbnQgZHJtX21v ZGVfcm1mYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQkJIHZvaWQgKmRhdGEsIHN0cnVj dCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiAgIGV4dGVybiBpbnQgZHJtX21vZGVfZ2V0ZmIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGNf aGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Y19oZWxwZXIuaAo+IGluZGV4IDczYjA3MTIu LmI0YWJiMzMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGNfaGVscGVyLmgKPiAr KysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Y19oZWxwZXIuaAo+IEBAIC0xMTYsOCArMTE2LDEwIEBA IGV4dGVybiBib29sIGRybV9oZWxwZXJfZW5jb2Rlcl9pbl91c2Uoc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyKTsKPgo+ICAgZXh0ZXJuIHZvaWQgZHJtX2hlbHBlcl9jb25uZWN0b3JfZHBtcyhz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBpbnQgbW9kZSk7Cj4KPiArZXh0ZXJuIHZv aWQgZHJtX2hlbHBlcl9nZXRfZmJfYnBwX2RlcHRoKHVpbnQzMl90IGZvcm1hdCwgdW5zaWduZWQg aW50ICpkZXB0aCwKPiArCQkJCQlpbnQgKmJwcCk7Cj4gICBleHRlcm4gaW50IGRybV9oZWxwZXJf bW9kZV9maWxsX2ZiX3N0cnVjdChzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAtCQkJCQkg IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQgKm1vZGVfY21kKTsKPiArCQkJCQkgIHN0cnVjdCBkcm1f bW9kZV9mYl9jbWQyICptb2RlX2NtZCk7Cj4KPiAgIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1fY3J0 Y19oZWxwZXJfYWRkKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJCQkgICAgICAgY29uc3Qg c3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyAqZnVuY3MpCj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9tb2RlLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZS5oCj4gaW5kZXggMDc3MTFi MC4uNjlmOGVjZSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZS5oCj4gKysrIGIv aW5jbHVkZS9kcm0vZHJtX21vZGUuaAo+IEBAIC0yNyw2ICsyNyw4IEBACj4gICAjaWZuZGVmIF9E Uk1fTU9ERV9ICj4gICAjZGVmaW5lIF9EUk1fTU9ERV9ICj4KPiArI2luY2x1ZGU8bGludXgvdmlk ZW9kZXYyLmg+Cj4gKwo+ICAgI2RlZmluZSBEUk1fRElTUExBWV9JTkZPX0xFTgkzMgo+ICAgI2Rl ZmluZSBEUk1fQ09OTkVDVE9SX05BTUVfTEVOCTMyCj4gICAjZGVmaW5lIERSTV9ESVNQTEFZX01P REVfTEVOCTMyCj4gQEAgLTI2Miw2ICsyNjQsMzAgQEAgc3RydWN0IGRybV9tb2RlX2ZiX2NtZCB7 Cj4gICAJX191MzIgaGFuZGxlOwo+ICAgfTsKPgo+ICtzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiB7 Cj4gKwlfX3UzMiBmYl9pZDsKPiArCV9fdTMyIHdpZHRoLCBoZWlnaHQ7Cj4gKwlfX3UzMiBwaXhl bF9mb3JtYXQ7IC8qIGZvdXJjYyBjb2RlIGZyb20gdmlkZW9kZXYyLmggKi8KPiArCj4gKwkvKgo+ ICsJICogSW4gY2FzZSBvZiBwbGFuYXIgZm9ybWF0cywgdGhpcyBpb2N0bCBhbGxvd3Mgb25lCj4g KwkgKiBidWZmZXIgb2JqZWN0IHdpdGggb2ZmZXRzIGFuZCBwaXRjaGVzIHBlciBwbGFuZS4KPiAr CSAqIFRoZSBwaXRjaCBhbmQgb2Zmc2V0IG9yZGVyIGlzIGRpY3RhdGVkIGJ5IHRoZSBmb3VyY2Ms Cj4gKwkgKiBlLmcuIE5WMTIgKGh0dHA6Ly9mb3VyY2Mub3JnL3l1di5waHAjTlYxMikgaXMgZGVz Y3JpYmVkIGFzOgo+ICsJICoKPiArCSAqICAgWVVWIDQ6MjowIGltYWdlIHdpdGggYSBwbGFuZSBv ZiA4IGJpdCBZIHNhbXBsZXMKPiArCSAqICAgZm9sbG93ZWQgYnkgYW4gaW50ZXJsZWF2ZWQgVS9W IHBsYW5lIGNvbnRhaW5pbmcKPiArCSAqICAgOCBiaXQgMngyIHN1YnNhbXBsZWQgY29sb3VyIGRp ZmZlcmVuY2Ugc2FtcGxlcy4KPiArCSAqCj4gKwkgKiBTbyBpdCB3b3VsZCBjb25zaXN0IG9mIFkg YXMgb2Zmc2V0WzBdIGFuZCBVViBhcwo+ICsJICogb2ZmZXNldFsxXS4gIE5vdGUgdGhhdCBvZmZz ZXRbMF0gd2lsbCBnZW5lcmFsbHkKPiArCSAqIGJlIDAuCj4gKwkgKi8KPiArCV9fdTMyIGhhbmRs ZTsKPiArCV9fdTMyIHBpdGNoZXNbNF07IC8qIHBpdGNoIGZvciBlYWNoIHBsYW5lICovCj4gKwlf X3UzMiBvZmZzZXRzWzRdOyAvKiBvZmZzZXQgb2YgZWFjaCBwbGFuZSAqLwo+ICt9Owo+ICsKPiAg ICNkZWZpbmUgRFJNX01PREVfRkJfRElSVFlfQU5OT1RBVEVfQ09QWSAweDAxCj4gICAjZGVmaW5l IERSTV9NT0RFX0ZCX0RJUlRZX0FOTk9UQVRFX0ZJTEwgMHgwMgo+ICAgI2RlZmluZSBEUk1fTU9E RV9GQl9ESVJUWV9GTEFHUyAgICAgICAgIDB4MDMKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC92aWRlb2RldjIuaCBiL2luY2x1ZGUvbGludXgvdmlkZW9kZXYyLmgKPiBpbmRleCBmY2EyNGNj Li42ZGE0YWI0IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvdmlkZW9kZXYyLmgKPiArKysg Yi9pbmNsdWRlL2xpbnV4L3ZpZGVvZGV2Mi5oCj4gQEAgLTQxMiw2ICs0MTIsNyBAQCBzdHJ1Y3Qg djRsMl9waXhfZm9ybWF0IHsKPiAgICNkZWZpbmUgVjRMMl9QSVhfRk1UX0tPTklDQTQyMCAgdjRs Ml9mb3VyY2MoJ0snLCAnTycsICdOJywgJ0knKSAvKiBZVVY0MjAgcGxhbmFyIGluIGJsb2NrcyBv ZiAyNTYgcGl4ZWxzICovCj4gICAjZGVmaW5lIFY0TDJfUElYX0ZNVF9KUEdMCXY0bDJfZm91cmNj KCdKJywgJ1AnLCAnRycsICdMJykgLyogSlBFRy1MaXRlICovCj4gICAjZGVmaW5lIFY0TDJfUElY X0ZNVF9TRTQwMSAgICAgIHY0bDJfZm91cmNjKCdTJywgJzQnLCAnMCcsICcxJykgLyogc2U0MDEg amFuZ2d1IGNvbXByZXNzZWQgcmdiICovCj4gKyNkZWZpbmUgVjRMMl9QSVhfRk1UX0lOVENfUkdC MzAJdjRsMl9mb3VyY2MoJ1InLCAnRycsICdCJywgJzAnKSAvKiBSR0IgeDoxMDoxMDoxMCAqLwo+ Cj4gICAvKgo+ICAgICoJRiBPIFIgTSBBIFQgICBFIE4gVSBNIEUgUiBBIFQgSSBPIE4KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==