From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([149.20.54.216]:36209 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754409AbcEPQfT (ORCPT ); Mon, 16 May 2016 12:35:19 -0400 Received: from localhost (unknown [38.140.131.194]) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 94BB65B626A for ; Mon, 16 May 2016 09:35:15 -0700 (PDT) Date: Mon, 16 May 2016 12:35:13 -0400 (EDT) Message-Id: <20160516.123513.47488366801521954.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_May_16_12_35_13_2016_545)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Mon_May_16_12_35_13_2016_545)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for 4.1.x, 4.4.x, and 4.5.x -stable, respectively. Thanks! ----Next_Part(Mon_May_16_12_35_13_2016_545)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_41.mbox" RnJvbSBmZGQ3MDExNWM0NzdkNDNiMjE2ODkwNjAxNGVmMWY1OWM2Y2QxNzM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkRhdGU6 IEZyaSwgMTMgTWF5IDIwMTYgMTg6MzM6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDAxLzI2XSBu ZXQvcm91dGU6IGVuZm9yY2UgaG9wbGltaXQgbWF4IHZhbHVlCgpbIFVwc3RyZWFtIGNvbW1pdCA2 MjZhYmQ1OWU1MWQ0ZDhjNjM2N2UwM2FhZTI1MmE4YWE3NTlhYzc4IF0KCkN1cnJlbnRseSwgd2hl biBjcmVhdGluZyBvciB1cGRhdGluZyBhIHJvdXRlLCBubyBjaGVjayBpcyBwZXJmb3JtZWQKaW4g Ym90aCBpcHY0IGFuZCBpcHY2IGNvZGUgdG8gdGhlIGhvcGxpbWl0IHZhbHVlLgoKVGhlIGNhbGxl ciBjYW4gaS5lLiBzZXQgaG9wbGltaXQgdG8gMjU2LCBhbmQgd2hlbiBzdWNoIHJvdXRlIHdpbGwK IGJlIHVzZWQsIHBhY2tldHMgd2lsbCBiZSBzZW50IHdpdGggaG9wbGltaXQvdHRsIGVxdWFsIHRv IDAuCgpUaGlzIGNvbW1pdCBhZGRzIGNoZWNrcyBmb3IgdGhlIFJUQVhfSE9QTElNSVQgdmFsdWUs IGluIGJvdGggaXB2NAppcHY2IHJvdXRlIGNvZGUsIHN1YnN0aXR1dGluZyBhbnkgdmFsdWUgZ3Jl YXRlciB0aGFuIDI1NSB3aXRoIDI1NS4KClRoaXMgaXMgY29uc2lzdGVudCB3aXRoIHdoYXQgaXMg Y3VycmVudGx5IGRvbmUgZm9yIEFEVk1TUyBhbmQgTVRVCmluIHRoZSBpcHY0IGNvZGUuCgpTaWdu ZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9maWJf c2VtYW50aWNzLmMgfCAyICsrCiBuZXQvaXB2Ni9yb3V0ZS5jICAgICAgICAgfCAyICsrCiAyIGZp bGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl9z ZW1hbnRpY3MuYyBiL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYwppbmRleCA4ZDY5NWI2Li45YWI0 ZDAyIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKKysrIGIvbmV0L2lwdjQv ZmliX3NlbWFudGljcy5jCkBAIC04NTUsNiArODU1LDggQEAgc3RydWN0IGZpYl9pbmZvICpmaWJf Y3JlYXRlX2luZm8oc3RydWN0IGZpYl9jb25maWcgKmNmZykKIAkJCQkJdmFsID0gNjU1MzUgLSA0 MDsKIAkJCQlpZiAodHlwZSA9PSBSVEFYX01UVSAmJiB2YWwgPiA2NTUzNSAtIDE1KQogCQkJCQl2 YWwgPSA2NTUzNSAtIDE1OworCQkJCWlmICh0eXBlID09IFJUQVhfSE9QTElNSVQgJiYgdmFsID4g MjU1KQorCQkJCQl2YWwgPSAyNTU7CiAJCQkJZmktPmZpYl9tZXRyaWNzW3R5cGUgLSAxXSA9IHZh bDsKIAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3Jv dXRlLmMKaW5kZXggZmU3MGJkNi4uYTk2MGZmZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUu YworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBAIC0xNDk5LDYgKzE0OTksOCBAQCBzdGF0aWMgaW50 IGlwNl9jb252ZXJ0X21ldHJpY3Moc3RydWN0IG14Nl9jb25maWcgKm14YywKIAkJCX0gZWxzZSB7 CiAJCQkJdmFsID0gbmxhX2dldF91MzIobmxhKTsKIAkJCX0KKwkJCWlmICh0eXBlID09IFJUQVhf SE9QTElNSVQgJiYgdmFsID4gMjU1KQorCQkJCXZhbCA9IDI1NTsKIAogCQkJbXBbdHlwZSAtIDFd ID0gdmFsOwogCQkJX19zZXRfYml0KHR5cGUgLSAxLCBteGMtPm14X3ZhbGlkKTsKLS0gCjIuNC4x CgoKRnJvbSA5ZDUzMGIzZThhNzRlMWZkOTlkOWQxMzM1Mzk2MzgyM2M2NTJjNDZkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgUy4gTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KRGF0ZTogU3VuLCAxMCBBcHIgMjAxNiAyMzowMTozMCAtMDQwMApTdWJqZWN0OiBbUEFU Q0ggMDIvMjZdIGRlY25ldDogRG8gbm90IGJ1aWxkIHJvdXRlcyB0byBkZXZpY2VzIHdpdGhvdXQg ZGVjbmV0CiBwcml2YXRlIGRhdGEuCgpbIFVwc3RyZWFtIGNvbW1pdCBhMzZhMGQ0MDA4NDg4ZmE1 NDVjNzQ0NDVkNjllYWY1NjM3N2Q1ZDRlIF0KCkluIHBhcnRpY3VsYXIsIG1ha2Ugc3VyZSB3ZSBj aGVjayBmb3IgZGVjbmV0IHByaXZhdGUgcHJlc2VuY2UKZm9yIGxvb3BiYWNrIGRldmljZXMuCgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2RlY25ldC9kbl9yb3V0ZS5jIHwgOSArKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA4IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvZGVjbmV0L2RuX3Jv dXRlLmMgYi9uZXQvZGVjbmV0L2RuX3JvdXRlLmMKaW5kZXggMDMyMjdmZi4uNzZkM2JmNzAgMTAw NjQ0Ci0tLSBhL25ldC9kZWNuZXQvZG5fcm91dGUuYworKysgYi9uZXQvZGVjbmV0L2RuX3JvdXRl LmMKQEAgLTEwMzYsMTAgKzEwMzYsMTMgQEAgc291cmNlX29rOgogCWlmICghZmxkLmRhZGRyKSB7 CiAJCWZsZC5kYWRkciA9IGZsZC5zYWRkcjsKIAotCQllcnIgPSAtRUFERFJOT1RBVkFJTDsKIAkJ aWYgKGRldl9vdXQpCiAJCQlkZXZfcHV0KGRldl9vdXQpOworCQllcnIgPSAtRUlOVkFMOwogCQlk ZXZfb3V0ID0gaW5pdF9uZXQubG9vcGJhY2tfZGV2OworCQlpZiAoIWRldl9vdXQtPmRuX3B0cikK KwkJCWdvdG8gb3V0OworCQllcnIgPSAtRUFERFJOT1RBVkFJTDsKIAkJZGV2X2hvbGQoZGV2X291 dCk7CiAJCWlmICghZmxkLmRhZGRyKSB7CiAJCQlmbGQuZGFkZHIgPQpAQCAtMTExMiw2ICsxMTE1 LDggQEAgc291cmNlX29rOgogCQlpZiAoZGV2X291dCA9PSBOVUxMKQogCQkJZ290byBvdXQ7CiAJ CWRuX2RiID0gcmN1X2RlcmVmZXJlbmNlX3JhdyhkZXZfb3V0LT5kbl9wdHIpOworCQlpZiAoIWRu X2RiKQorCQkJZ290byBlX2ludmFsOwogCQkvKiBQb3NzaWJsZSBpbXByb3ZlbWVudCAtIGNoZWNr IGFsbCBkZXZpY2VzIGZvciBsb2NhbCBhZGRyICovCiAJCWlmIChkbl9kZXZfaXNsb2NhbChkZXZf b3V0LCBmbGQuZGFkZHIpKSB7CiAJCQlkZXZfcHV0KGRldl9vdXQpOwpAQCAtMTE1Myw2ICsxMTU4 LDggQEAgc2VsZWN0X3NvdXJjZToKIAkJCWRldl9wdXQoZGV2X291dCk7CiAJCWRldl9vdXQgPSBp bml0X25ldC5sb29wYmFja19kZXY7CiAJCWRldl9ob2xkKGRldl9vdXQpOworCQlpZiAoIWRldl9v dXQtPmRuX3B0cikKKwkJCWdvdG8gZV9pbnZhbDsKIAkJZmxkLmZsb3dpZG5fb2lmID0gZGV2X291 dC0+aWZpbmRleDsKIAkJaWYgKHJlcy5maSkKIAkJCWRuX2ZpYl9pbmZvX3B1dChyZXMuZmkpOwot LSAKMi40LjEKCgpGcm9tIGE1MDU4ZDdmMWM3Zjc4NWRiNDk1NTRlMDI2NWUxNzkyYzkzNzI4N2Mg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENocmlzIEZyaWVzZW4gPGNocmlzLmZyaWVz ZW5Ad2luZHJpdmVyLmNvbT4KRGF0ZTogRnJpLCA4IEFwciAyMDE2IDE1OjIxOjMwIC0wNjAwClN1 YmplY3Q6IFtQQVRDSCAwMy8yNl0gcm91dGU6IGRvIG5vdCBjYWNoZSBmaWIgcm91dGUgaW5mbyBv biBsb2NhbCByb3V0ZXMgd2l0aAogb2lmCgpbIFVwc3RyZWFtIGNvbW1pdCBkNmQ1ZTk5OWU1ZGY2 N2Y4ZWMyMGI2YmU0NWUyMjI5NDU1ZWUzNjk5IF0KCkZvciBsb2NhbCByb3V0ZXMgdGhhdCByZXF1 aXJlIGEgcGFydGljdWxhciBvdXRwdXQgaW50ZXJmYWNlIHdlIGRvIG5vdCB3YW50CnRvIGNhY2hl IHRoZSByZXN1bHQuICBDYWNoaW5nIHRoZSByZXN1bHQgY2F1c2VzIGluY29ycmVjdCBiZWhhdmlv dXIgd2hlbgp0aGVyZSBhcmUgbXVsdGlwbGUgc291cmNlIGFkZHJlc3NlcyBvbiB0aGUgaW50ZXJm YWNlLiAgVGhlIGVuZCByZXN1bHQKYmVpbmcgdGhhdCBpZiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50 IGlzIHdhaXRpbmcgb24gdGhhdCBpbnRlcmZhY2UgZm9yIHRoZQpwYWNrZXQgaGUgd29uJ3QgcmVj ZWl2ZSBpdCBiZWNhdXNlIGl0IHdpbGwgYmUgZGVsaXZlcmVkIG9uIHRoZSBsb29wYmFjawppbnRl cmZhY2UgYW5kIHRoZSBJUF9QS1RJTkZPIGlwaV9pZmluZGV4IHdpbGwgYmUgc2V0IHRvIHRoZSBs b29wYmFjawppbnRlcmZhY2UgYXMgd2VsbC4KClRoaXMgY2FuIGJlIHRlc3RlZCBieSBydW5uaW5n IGEgcHJvZ3JhbSBzdWNoIGFzICJkaGNwX3JlbGVhc2UiIHdoaWNoCmF0dGVtcHRzIHRvIGluamVj dCBhIHBhY2tldCBvbiBhIHBhcnRpY3VsYXIgaW50ZXJmYWNlIHNvIHRoYXQgaXQgaXMKcmVjZWl2 ZWQgYnkgYW5vdGhlciBwcm9ncmFtIG9uIHRoZSBzYW1lIGJvYXJkLiAgVGhlIHJlY2VpdmluZyBw cm9jZXNzCnNob3VsZCBzZWUgYW4gSVBfUEtUSU5GTyBpcGlfaWZuZGV4IHZhbHVlIG9mIHRoZSBz b3VyY2UgaW50ZXJmYWNlCihlLmcuLCBldGgxKSBpbnN0ZWFkIG9mIHRoZSBsb29wYmFjayBpbnRl cmZhY2UgKGUuZy4sIGxvKS4gIFRoZSBwYWNrZXQKd2lsbCBzdGlsbCBhcHBlYXIgb24gdGhlIGxv b3BiYWNrIGludGVyZmFjZSBpbiB0Y3BkdW1wIGJ1dCB0aGUgaW1wb3J0YW50CmFzcGVjdCBpcyB0 aGF0IHRoZSBDTVNHIGluZm8gaXMgY29ycmVjdC4KClNhbXBsZSBkaGNwX3JlbGVhc2UgY29tbWFu ZCBsaW5lOgoKICAgZGhjcF9yZWxlYXNlIGV0aDEgMTkyLjE2OC4yMDQuMjIyIDAyOjExOjMzOjIy OjQ0OjY2CgpTaWduZWQtb2ZmLWJ5OiBBbGxhaW4gTGVnYWN5IDxhbGxhaW4ubGVnYWN5QHdpbmRy aXZlci5jb20+ClNpZ25lZCBvZmYtYnk6IENocmlzIEZyaWVzZW4gPGNocmlzLmZyaWVzZW5Ad2lu ZHJpdmVyLmNvbT4KUmV2aWV3ZWQtYnk6IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5iZz4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9pcHY0L3JvdXRlLmMgfCAxMiArKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRl LmMKaW5kZXggMWQzY2RiNGQuLmViMWQ5ODMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMK KysrIGIvbmV0L2lwdjQvcm91dGUuYwpAQCAtMTk3Niw2ICsxOTc2LDE4IEBAIHN0YXRpYyBzdHJ1 Y3QgcnRhYmxlICpfX21rcm91dGVfb3V0cHV0KGNvbnN0IHN0cnVjdCBmaWJfcmVzdWx0ICpyZXMs CiAJCSAqLwogCQlpZiAoZmkgJiYgcmVzLT5wcmVmaXhsZW4gPCA0KQogCQkJZmkgPSBOVUxMOwor CX0gZWxzZSBpZiAoKHR5cGUgPT0gUlROX0xPQ0FMKSAmJiAob3JpZ19vaWYgIT0gMCkgJiYKKwkJ ICAgKG9yaWdfb2lmICE9IGRldl9vdXQtPmlmaW5kZXgpKSB7CisJCS8qIEZvciBsb2NhbCByb3V0 ZXMgdGhhdCByZXF1aXJlIGEgcGFydGljdWxhciBvdXRwdXQgaW50ZXJmYWNlCisJCSAqIHdlIGRv IG5vdCB3YW50IHRvIGNhY2hlIHRoZSByZXN1bHQuICBDYWNoaW5nIHRoZSByZXN1bHQKKwkJICog Y2F1c2VzIGluY29ycmVjdCBiZWhhdmlvdXIgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgc291cmNl CisJCSAqIGFkZHJlc3NlcyBvbiB0aGUgaW50ZXJmYWNlLCB0aGUgZW5kIHJlc3VsdCBiZWluZyB0 aGF0IGlmIHRoZQorCQkgKiBpbnRlbmRlZCByZWNpcGllbnQgaXMgd2FpdGluZyBvbiB0aGF0IGlu dGVyZmFjZSBmb3IgdGhlCisJCSAqIHBhY2tldCBoZSB3b24ndCByZWNlaXZlIGl0IGJlY2F1c2Ug aXQgd2lsbCBiZSBkZWxpdmVyZWQgb24KKwkJICogdGhlIGxvb3BiYWNrIGludGVyZmFjZSBhbmQg dGhlIElQX1BLVElORk8gaXBpX2lmaW5kZXggd2lsbAorCQkgKiBiZSBzZXQgdG8gdGhlIGxvb3Bi YWNrIGludGVyZmFjZSBhcyB3ZWxsLgorCQkgKi8KKwkJZmkgPSBOVUxMOwogCX0KIAogCWZuaGUg PSBOVUxMOwotLSAKMi40LjEKCgpGcm9tIDFhYWQ2NzMxYTMzNjg2MTVjYTgxZmE0MTkxMzg1ZWRk NGEyZGRjZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hdGhpYXMgS3JhdXNlIDxt aW5pcGxpQGdvb2dsZW1haWwuY29tPgpEYXRlOiBTdW4sIDEwIEFwciAyMDE2IDEyOjUyOjI4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwNC8yNl0gcGFja2V0OiBmaXggaGVhcCBpbmZvIGxlYWsgaW4g UEFDS0VUX0RJQUdfTUNMSVNUCiBzb2NrX2RpYWcgaW50ZXJmYWNlCgpbIFVwc3RyZWFtIGNvbW1p dCAzMDljZjM3ZmUyYTc4MTI3OWI3Njc1ZDRiYjcxNzMxOThlNTMyODY3IF0KCkJlY2F1c2Ugd2Ug bWlzcyB0byB3aXBlIHRoZSByZW1haW5kZXIgb2YgaS0+YWRkcltdIGluIHBhY2tldF9tY19hZGQo KSwKcGRpYWdfcHV0X21jbGlzdCgpIGxlYWtzIHVuaW5pdGlhbGl6ZWQgaGVhcCBieXRlcyB2aWEg dGhlClBBQ0tFVF9ESUFHX01DTElTVCBuZXRsaW5rIGF0dHJpYnV0ZS4KCkZpeCB0aGlzIGJ5IGV4 cGxpY2l0bHkgbWVtc2V0KDApaW5nIHRoZSByZW1haW5pbmcgYnl0ZXMgaW4gaS0+YWRkcltdLgoK Rml4ZXM6IGVlYTY4ZTJmMWEwMCAoInBhY2tldDogUmVwb3J0IHNvY2tldCBtY2xpc3QgaW5mbyB2 aWEgZGlhZyBtb2R1bGUiKQpTaWduZWQtb2ZmLWJ5OiBNYXRoaWFzIEtyYXVzZSA8bWluaXBsaUBn b29nbGVtYWlsLmNvbT4KQ2M6IEVyaWMgVy4gQmllZGVybWFuIDxlYmllZGVybUB4bWlzc2lvbi5j b20+CkNjOiBQYXZlbCBFbWVseWFub3YgPHhlbXVsQHBhcmFsbGVscy5jb20+CkFja2VkLWJ5OiBQ YXZlbCBFbWVseWFub3YgPHhlbXVsQHZpcnR1b3p6by5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tl dC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9u ZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCBlYmMz OWU2Li42NmM5NWU2IDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25l dC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTMyMTIsNiArMzIxMiw3IEBAIHN0YXRpYyBpbnQgcGFj a2V0X21jX2FkZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBwYWNrZXRfbXJlcV9tYXggKm1yZXEp CiAJaS0+aWZpbmRleCA9IG1yZXEtPm1yX2lmaW5kZXg7CiAJaS0+YWxlbiA9IG1yZXEtPm1yX2Fs ZW47CiAJbWVtY3B5KGktPmFkZHIsIG1yZXEtPm1yX2FkZHJlc3MsIGktPmFsZW4pOworCW1lbXNl dChpLT5hZGRyICsgaS0+YWxlbiwgMCwgc2l6ZW9mKGktPmFkZHIpIC0gaS0+YWxlbik7CiAJaS0+ Y291bnQgPSAxOwogCWktPm5leHQgPSBwby0+bWNsaXN0OwogCXBvLT5tY2xpc3QgPSBpOwotLSAK Mi40LjEKCgpGcm9tIDdjN2UzMDdjM2FjMDA0YWUxMWYxMDM0M2ZiMjBiNzI4ZWI0MGU4N2MgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExhcnMgUGVyc3NvbiA8bGFycy5wZXJzc29uQGF4 aXMuY29tPgpEYXRlOiBUdWUsIDEyIEFwciAyMDE2IDA4OjQ1OjUyICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNS8yNl0gbmV0OiBzY2hlZDogZG8gbm90IHJlcXVldWUgYSBOVUxMIHNrYgoKWyBVcHN0 cmVhbSBjb21taXQgM2RjZDQ5M2ZiZWJmZDYzMTkxM2RmNmUyNzczY2MyOTVkM2JmN2QyMiBdCgpB IGZhaWx1cmUgaW4gdmFsaWRhdGVfeG1pdF9za2JfbGlzdCgpIHRyaWdnZXJlZCBhbiB1bmNvbmRp dGlvbmFsIGNhbGwKdG8gZGV2X3JlcXVldWVfc2tiIHdpdGggc2tiPU5VTEwuIFRoaXMgc2xvd2x5 IGdyb3dzIHRoZSBxdWV1ZQpkaXNjaXBsaW5lJ3MgcWxlbiBjb3VudCB1bnRpbCBhbGwgdHJhZmZp YyB0aHJvdWdoIHRoZSBxdWV1ZSBzdG9wcy4KCldlIHRha2UgdGhlIG9wdGltaXN0aWMgYXBwcm9h Y2ggYW5kIGNvbnRpbnVlIHJ1bm5pbmcgdGhlIHF1ZXVlIGFmdGVyIGEKZmFpbHVyZSBzaW5jZSBp dCBpcyB1bmtub3duIGlmIGxhdGVyIHBhY2tldHMgYWxzbyB3aWxsIGZhaWwgaW4gdGhlCnZhbGlk YXRlIHBhdGguCgpGaXhlczogNTVhOTNiM2VhNzgwICgicWRpc2M6IHZhbGlkYXRlIHNrYiB3aXRo b3V0IGhvbGRpbmcgbG9jayIpClNpZ25lZC1vZmYtYnk6IExhcnMgUGVyc3NvbiA8bGFycGVyQGF4 aXMuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L3NjaGVkL3NjaF9nZW5lcmljLmMgfCA1ICsrKystCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9nZW5lcmlj LmMgYi9uZXQvc2NoZWQvc2NoX2dlbmVyaWMuYwppbmRleCAzYzZmNmI3Ny4uOTgyMWU2ZCAxMDA2 NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9nZW5l cmljLmMKQEAgLTE1OSwxMiArMTU5LDE1IEBAIGludCBzY2hfZGlyZWN0X3htaXQoc3RydWN0IHNr X2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpxLAogCWlmICh2YWxpZGF0ZSkKIAkJc2tiID0gdmFs aWRhdGVfeG1pdF9za2JfbGlzdChza2IsIGRldik7CiAKLQlpZiAoc2tiKSB7CisJaWYgKGxpa2Vs eShza2IpKSB7CiAJCUhBUkRfVFhfTE9DSyhkZXYsIHR4cSwgc21wX3Byb2Nlc3Nvcl9pZCgpKTsK IAkJaWYgKCFuZXRpZl94bWl0X2Zyb3plbl9vcl9zdG9wcGVkKHR4cSkpCiAJCQlza2IgPSBkZXZf aGFyZF9zdGFydF94bWl0KHNrYiwgZGV2LCB0eHEsICZyZXQpOwogCiAJCUhBUkRfVFhfVU5MT0NL KGRldiwgdHhxKTsKKwl9IGVsc2UgeworCQlzcGluX2xvY2socm9vdF9sb2NrKTsKKwkJcmV0dXJu IHFkaXNjX3FsZW4ocSk7CiAJfQogCXNwaW5fbG9jayhyb290X2xvY2spOwogCi0tIAoyLjQuMQoK CkZyb20gMmYzODI3MDI0MTA1M2NiODliMzM1YTYyZDE5ODQ4MzBjMGIwMDc2MSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAZmIuY29tPgpEYXRl OiBUdWUsIDEyIEFwciAyMDE2IDEwOjI2OjE5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNi8yNl0g YnBmL3ZlcmlmaWVyOiByZWplY3QgaW52YWxpZCBMRF9BQlMgfCBCUEZfRFcKIGluc3RydWN0aW9u CgpbIFVwc3RyZWFtIGNvbW1pdCBkODJiY2NjNjkwNDFhNTFmN2I3YjliNGEzNmRiMDc3MmY0Y2Ri YTIxIF0KCnZlcmlmaWVyIG11c3QgY2hlY2sgZm9yIHJlc2VydmVkIHNpemUgYml0cyBpbiBpbnN0 cnVjdGlvbiBvcGNvZGUgYW5kCnJlamVjdCBCUEZfTEQgfCBCUEZfQUJTIHwgQlBGX0RXIGFuZCBC UEZfTEQgfCBCUEZfSU5EIHwgQlBGX0RXIGluc3RydWN0aW9ucywKb3RoZXJ3aXNlIGludGVycHJl dGVyIHdpbGwgV0FSTl9SQVRFTElNSVQgb24gdGhlbSBkdXJpbmcgZXhlY3V0aW9uLgoKRml4ZXM6 IGRkZDg3MmJjMzA5OCAoImJwZjogdmVyaWZpZXI6IGFkZCBjaGVja3MgZm9yIEJQRl9BQlMgfCBC UEZfSU5EIGluc3RydWN0aW9ucyIpClNpZ25lZC1vZmYtYnk6IEFsZXhlaSBTdGFyb3ZvaXRvdiA8 YXN0QGtlcm5lbC5vcmc+CkFja2VkLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJi b3gubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQoga2VybmVsL2JwZi92ZXJpZmllci5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwv YnBmL3ZlcmlmaWVyLmMKaW5kZXggNjU4MjQxMC4uZGQxNmQxOSAxMDA2NDQKLS0tIGEva2VybmVs L2JwZi92ZXJpZmllci5jCisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwpAQCAtMTIyNyw2ICsx MjI3LDcgQEAgc3RhdGljIGludCBjaGVja19sZF9hYnMoc3RydWN0IHZlcmlmaWVyX2VudiAqZW52 LCBzdHJ1Y3QgYnBmX2luc24gKmluc24pCiAJfQogCiAJaWYgKGluc24tPmRzdF9yZWcgIT0gQlBG X1JFR18wIHx8IGluc24tPm9mZiAhPSAwIHx8CisJICAgIEJQRl9TSVpFKGluc24tPmNvZGUpID09 IEJQRl9EVyB8fAogCSAgICAobW9kZSA9PSBCUEZfQUJTICYmIGluc24tPnNyY19yZWcgIT0gQlBG X1JFR18wKSkgewogCQl2ZXJib3NlKCJCUEZfTERfQUJTIHVzZXMgcmVzZXJ2ZWQgZmllbGRzXG4i KTsKIAkJcmV0dXJuIC1FSU5WQUw7Ci0tIAoyLjQuMQoKCkZyb20gNTVlMjhjZTUzMzBlM2E3YWVl OGVkYmE4YTRlYTliMmVkYmE5NmY1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KRGF0ZTogU2F0LCAyMCBGZWIgMjAx NiAwMDoyOTozMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjZdIG5ldDogdXNlIHNrYl9wb3N0 cHVzaF9yY3N1bSBpbnN0ZWFkIG9mIG93bgogaW1wbGVtZW50YXRpb25zCgpbIFVwc3RyZWFtIGNv bW1pdCA2YjgzZDI4YTU1YTg5MWE5ZDcwZmM2MWNjYjFjMTM4ZTQ3ZGNiZTc0LAogIHNrYl9wb3N0 cHVzaF9yY3N1bSgpIGFkZGVkIGZyb20gY29tbWl0CiAgZjhmZmFkNjljOWY4YjhkZmIwYjYzMzQy NWQ0ZWY0ZDI0OTNiYTYxYSBdCgpSZXBsYWNlIGluZGl2aWR1YWwgaW1wbGVtZW50YXRpb25zIHdp dGggdGhlIHJlY2VudGx5IGludHJvZHVjZWQKc2tiX3Bvc3RwdXNoX3Jjc3VtKCkgaGVscGVyLgoK U2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KQWNr ZWQtYnk6IFRvbSBIZXJiZXJ0IDx0b21AaGVyYmVydGxhbmQuY29tPgpBY2tlZC1ieTogQWxleGVp IFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvc2tidWZmLmggICAg ICAgICB8IDE3ICsrKysrKysrKysrKysrKysrCiBuZXQvY29yZS9za2J1ZmYuYyAgICAgICAgICAg ICAgfCAgNCArLS0tCiBuZXQvaXB2Ni9yZWFzc2VtYmx5LmMgICAgICAgICAgfCAgNiArKy0tLS0K IG5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMgICAgICB8ICA2ICsrLS0tLQogbmV0L29wZW52c3dp dGNoL3Zwb3J0LW5ldGRldi5jIHwgIDIgKy0KIG5ldC9vcGVudnN3aXRjaC92cG9ydC5oICAgICAg ICB8ICA3IC0tLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMTkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaCBiL2luY2x1ZGUv bGludXgvc2tidWZmLmgKaW5kZXggNjYzM2IwYy4uZTA1NWZhMCAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9saW51eC9za2J1ZmYuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCkBAIC0yNTk2LDYg KzI1OTYsMjMgQEAgc3RhdGljIGlubGluZSB2b2lkIHNrYl9wb3N0cHVsbF9yY3N1bShzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAogCiB1bnNpZ25lZCBjaGFyICpza2JfcHVsbF9yY3N1bShzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgbGVuKTsKIAorc3RhdGljIGlubGluZSB2b2lkIHNrYl9w b3N0cHVzaF9yY3N1bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCSAgICAgIGNvbnN0IHZvaWQg KnN0YXJ0LCB1bnNpZ25lZCBpbnQgbGVuKQoreworCS8qIEZvciBwZXJmb3JtaW5nIHRoZSByZXZl cnNlIG9wZXJhdGlvbiB0byBza2JfcG9zdHB1bGxfcmNzdW0oKSwKKwkgKiB3ZSBjYW4gaW5zdGVh ZCBvZiAuLi4KKwkgKgorCSAqICAgc2tiLT5jc3VtID0gY3N1bV9hZGQoc2tiLT5jc3VtLCBjc3Vt X3BhcnRpYWwoc3RhcnQsIGxlbiwgMCkpOworCSAqCisJICogLi4uIGp1c3QgdXNlIHRoaXMgZXF1 aXZhbGVudCB2ZXJzaW9uIGhlcmUgdG8gc2F2ZSBhIGZldworCSAqIGluc3RydWN0aW9ucy4gRmVl ZGluZyBjc3VtIG9mIDAgaW4gY3N1bV9wYXJ0aWFsKCkgYW5kIGxhdGVyCisJICogb24gYWRkaW5n IHNrYi0+Y3N1bSBpcyBlcXVpdmFsZW50IHRvIGZlZWQgc2tiLT5jc3VtIGluIHRoZQorCSAqIGZp cnN0IHBsYWNlLgorCSAqLworCWlmIChza2ItPmlwX3N1bW1lZCA9PSBDSEVDS1NVTV9DT01QTEVU RSkKKwkJc2tiLT5jc3VtID0gY3N1bV9wYXJ0aWFsKHN0YXJ0LCBsZW4sIHNrYi0+Y3N1bSk7Cit9 CisKIC8qKgogICoJcHNrYl90cmltX3Jjc3VtIC0gdHJpbSByZWNlaXZlZCBza2IgYW5kIHVwZGF0 ZSBjaGVja3N1bQogICoJQHNrYjogYnVmZmVyIHRvIHRyaW0KZGlmZiAtLWdpdCBhL25ldC9jb3Jl L3NrYnVmZi5jIGIvbmV0L2NvcmUvc2tidWZmLmMKaW5kZXggYzk3OTNjNi4uNjA1Njc0YSAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTQz NDcsOSArNDM0Nyw3IEBAIGludCBza2Jfdmxhbl9wdXNoKHN0cnVjdCBza19idWZmICpza2IsIF9f YmUxNiB2bGFuX3Byb3RvLCB1MTYgdmxhbl90Y2kpCiAJCXNrYi0+bWFjX2xlbiArPSBWTEFOX0hM RU47CiAJCV9fc2tiX3B1bGwoc2tiLCBvZmZzZXQpOwogCi0JCWlmIChza2ItPmlwX3N1bW1lZCA9 PSBDSEVDS1NVTV9DT01QTEVURSkKLQkJCXNrYi0+Y3N1bSA9IGNzdW1fYWRkKHNrYi0+Y3N1bSwg Y3N1bV9wYXJ0aWFsKHNrYi0+ZGF0YQotCQkJCQkrICgyICogRVRIX0FMRU4pLCBWTEFOX0hMRU4s IDApKTsKKwkJc2tiX3Bvc3RwdXNoX3Jjc3VtKHNrYiwgc2tiLT5kYXRhICsgKDIgKiBFVEhfQUxF TiksIFZMQU5fSExFTik7CiAJfQogCV9fdmxhbl9od2FjY2VsX3B1dF90YWcoc2tiLCB2bGFuX3By b3RvLCB2bGFuX3RjaSk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yZWFzc2Vt Ymx5LmMgYi9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMKaW5kZXggOWQxZjZhMi4uY2Y4MjlmNCAxMDA2 NDQKLS0tIGEvbmV0L2lwdjYvcmVhc3NlbWJseS5jCisrKyBiL25ldC9pcHY2L3JlYXNzZW1ibHku YwpAQCAtNDk2LDEwICs0OTYsOCBAQCBzdGF0aWMgaW50IGlwNl9mcmFnX3JlYXNtKHN0cnVjdCBm cmFnX3F1ZXVlICpmcSwgc3RydWN0IHNrX2J1ZmYgKnByZXYsCiAJSVA2Q0IoaGVhZCktPmZsYWdz IHw9IElQNlNLQl9GUkFHTUVOVEVEOwogCiAJLyogWWVzLCBhbmQgZm9sZCByZWR1bmRhbnQgY2hl Y2tzdW0gYmFjay4gOCkgKi8KLQlpZiAoaGVhZC0+aXBfc3VtbWVkID09IENIRUNLU1VNX0NPTVBM RVRFKQotCQloZWFkLT5jc3VtID0gY3N1bV9wYXJ0aWFsKHNrYl9uZXR3b3JrX2hlYWRlcihoZWFk KSwKLQkJCQkJICBza2JfbmV0d29ya19oZWFkZXJfbGVuKGhlYWQpLAotCQkJCQkgIGhlYWQtPmNz dW0pOworCXNrYl9wb3N0cHVzaF9yY3N1bShoZWFkLCBza2JfbmV0d29ya19oZWFkZXIoaGVhZCks CisJCQkgICBza2JfbmV0d29ya19oZWFkZXJfbGVuKGhlYWQpKTsKIAogCXJjdV9yZWFkX2xvY2so KTsKIAlJUDZfSU5DX1NUQVRTX0JIKG5ldCwgX19pbjZfZGV2X2dldChkZXYpLCBJUFNUQVRTX01J Ql9SRUFTTU9LUyk7CmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jIGIvbmV0 L29wZW52c3dpdGNoL2FjdGlvbnMuYwppbmRleCBiNDkxYzFjLi5hYTgwNzJiIDEwMDY0NAotLS0g YS9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCisrKyBiL25ldC9vcGVudnN3aXRjaC9hY3Rpb25z LmMKQEAgLTE0MCw5ICsxNDAsNyBAQCBzdGF0aWMgaW50IHB1c2hfbXBscyhzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSwKIAluZXdfbXBsc19sc2UgPSAoX19iZTMy ICopc2tiX21wbHNfaGVhZGVyKHNrYik7CiAJKm5ld19tcGxzX2xzZSA9IG1wbHMtPm1wbHNfbHNl OwogCi0JaWYgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VNX0NPTVBMRVRFKQotCQlza2ItPmNz dW0gPSBjc3VtX2FkZChza2ItPmNzdW0sIGNzdW1fcGFydGlhbChuZXdfbXBsc19sc2UsCi0JCQkJ CQkJICAgICBNUExTX0hMRU4sIDApKTsKKwlza2JfcG9zdHB1c2hfcmNzdW0oc2tiLCBuZXdfbXBs c19sc2UsIE1QTFNfSExFTik7CiAKIAloZHIgPSBldGhfaGRyKHNrYik7CiAJaGRyLT5oX3Byb3Rv ID0gbXBscy0+bXBsc19ldGhlcnR5cGU7CkBAIC0yNjYsNyArMjY0LDcgQEAgc3RhdGljIGludCBz ZXRfZXRoX2FkZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICpmbG93 X2tleSwKIAlldGhlcl9hZGRyX2NvcHlfbWFza2VkKGV0aF9oZHIoc2tiKS0+aF9kZXN0LCBrZXkt PmV0aF9kc3QsCiAJCQkgICAgICAgbWFzay0+ZXRoX2RzdCk7CiAKLQlvdnNfc2tiX3Bvc3RwdXNo X3Jjc3VtKHNrYiwgZXRoX2hkcihza2IpLCBFVEhfQUxFTiAqIDIpOworCXNrYl9wb3N0cHVzaF9y Y3N1bShza2IsIGV0aF9oZHIoc2tiKSwgRVRIX0FMRU4gKiAyKTsKIAogCWV0aGVyX2FkZHJfY29w eShmbG93X2tleS0+ZXRoLnNyYywgZXRoX2hkcihza2IpLT5oX3NvdXJjZSk7CiAJZXRoZXJfYWRk cl9jb3B5KGZsb3dfa2V5LT5ldGguZHN0LCBldGhfaGRyKHNrYiktPmhfZGVzdCk7CmRpZmYgLS1n aXQgYS9uZXQvb3BlbnZzd2l0Y2gvdnBvcnQtbmV0ZGV2LmMgYi9uZXQvb3BlbnZzd2l0Y2gvdnBv cnQtbmV0ZGV2LmMKaW5kZXggMzNlNmQ2ZS4uZWVjZTcxZCAxMDA2NDQKLS0tIGEvbmV0L29wZW52 c3dpdGNoL3Zwb3J0LW5ldGRldi5jCisrKyBiL25ldC9vcGVudnN3aXRjaC92cG9ydC1uZXRkZXYu YwpAQCAtNTIsNyArNTIsNyBAQCBzdGF0aWMgdm9pZCBuZXRkZXZfcG9ydF9yZWNlaXZlKHN0cnVj dCB2cG9ydCAqdnBvcnQsIHN0cnVjdCBza19idWZmICpza2IpCiAJCXJldHVybjsKIAogCXNrYl9w dXNoKHNrYiwgRVRIX0hMRU4pOwotCW92c19za2JfcG9zdHB1c2hfcmNzdW0oc2tiLCBza2ItPmRh dGEsIEVUSF9ITEVOKTsKKwlza2JfcG9zdHB1c2hfcmNzdW0oc2tiLCBza2ItPmRhdGEsIEVUSF9I TEVOKTsKIAogCW92c192cG9ydF9yZWNlaXZlKHZwb3J0LCBza2IsIE5VTEwpOwogCXJldHVybjsK ZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC92cG9ydC5oIGIvbmV0L29wZW52c3dpdGNoL3Zw b3J0LmgKaW5kZXggYmM4NTMzMS4uY2I0Y2QxMiAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNo L3Zwb3J0LmgKKysrIGIvbmV0L29wZW52c3dpdGNoL3Zwb3J0LmgKQEAgLTIyOCwxMyArMjI4LDYg QEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgdnBvcnQgKnZwb3J0X2Zyb21fcHJpdih2b2lkICpwcml2 KQogdm9pZCBvdnNfdnBvcnRfcmVjZWl2ZShzdHJ1Y3QgdnBvcnQgKiwgc3RydWN0IHNrX2J1ZmYg KiwKIAkJICAgICAgIGNvbnN0IHN0cnVjdCBvdnNfdHVubmVsX2luZm8gKik7CiAKLXN0YXRpYyBp bmxpbmUgdm9pZCBvdnNfc2tiX3Bvc3RwdXNoX3Jjc3VtKHN0cnVjdCBza19idWZmICpza2IsCi0J CQkJICAgICAgY29uc3Qgdm9pZCAqc3RhcnQsIHVuc2lnbmVkIGludCBsZW4pCi17Ci0JaWYgKHNr Yi0+aXBfc3VtbWVkID09IENIRUNLU1VNX0NPTVBMRVRFKQotCQlza2ItPmNzdW0gPSBjc3VtX2Fk ZChza2ItPmNzdW0sIGNzdW1fcGFydGlhbChzdGFydCwgbGVuLCAwKSk7Ci19Ci0KIGludCBvdnNf dnBvcnRfb3BzX3JlZ2lzdGVyKHN0cnVjdCB2cG9ydF9vcHMgKm9wcyk7CiB2b2lkIG92c192cG9y dF9vcHNfdW5yZWdpc3RlcihzdHJ1Y3QgdnBvcnRfb3BzICpvcHMpOwogCi0tIAoyLjQuMQoKCkZy b20gOWE3ZGFhOGIwOGViYzg4ZTkzMDJjMWQ4YWZhN2Y0ZTYzYmYwMzkwYSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4K RGF0ZTogU2F0LCAxNiBBcHIgMjAxNiAwMjoyNzo1OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgv MjZdIHZsYW46IHB1bGwgb24gX192bGFuX2luc2VydF90YWcgZXJyb3IgcGF0aCBhbmQgZml4IGNz dW0KIGNvcnJlY3Rpb24KClsgVXBzdHJlYW0gY29tbWl0IDkyNDFlMmRmNGZiYzY0OGE5MmVhMDc1 MjkxOGUwNWMyNjI1NTY0OWUgXQoKV2hlbiBfX3ZsYW5faW5zZXJ0X3RhZygpIGZhaWxzIGZyb20g c2tiX3ZsYW5fcHVzaCgpIHBhdGggZHVlIHRvIHRoZQpza2JfY293X2hlYWQoKSwgd2UgbmVlZCB0 byB1bmRvIHRoZSBfX3NrYl9wdXNoKCkgaW4gdGhlIGVycm9yIHBhdGgKYXMgd2VsbCB0aGF0IHdh cyBkb25lIGVhcmxpZXIgdG8gbW92ZSBza2ItPmRhdGEgcG9pbnRlciB0byBtYWMgaGVhZGVyLgoK TW9yZW92ZXIsIEkgbm90aWNlZCB0aGF0IHdoZW4gaW4gdGhlIG5vbi1lcnJvciBwYXRoIHRoZSBf X3NrYl9wdWxsKCkKaXMgZG9uZSBhbmQgdGhlIG9yaWdpbmFsIG9mZnNldCB0byBtYWMgaGVhZGVy IHdhcyBub24temVybywgd2UgZml4dXAKZnJvbSBhIHdyb25nIHNrYi0+ZGF0YSBvZmZzZXQgaW4g dGhlIGNoZWNrc3VtIGNvbXBsZXRlIHByb2Nlc3NpbmcuCgpTbyB0aGUgc2tiX3Bvc3RwdXNoX3Jj c3VtKCkgcmVhbGx5IG5lZWRzIHRvIGJlIGRvbmUgYmVmb3JlIF9fc2tiX3B1bGwoKQp3aGVyZSBz a2ItPmRhdGEgc3RpbGwgcG9pbnRzIHRvIHRoZSBtYWMgaGVhZGVyIHN0YXJ0IGFuZCB0aHVzIG9w ZXJhdGVzCnVuZGVyIHRoZSBzYW1lIGNvbmRpdGlvbnMgYXMgaW4gX192bGFuX2luc2VydF90YWco KS4KCkZpeGVzOiA5MzUxNWQ1M2IxMzMgKCJuZXQ6IG1vdmUgdmxhbiBwb3AvcHVzaCBmdW5jdGlv bnMgaW50byBjb21tb24gY29kZSIpClNpZ25lZC1vZmYtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFu aWVsQGlvZ2VhcmJveC5uZXQ+ClJldmlld2VkLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94 LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9jb3JlL3NrYnVmZi5jIHwgNyArKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNSBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NrYnVm Zi5jIGIvbmV0L2NvcmUvc2tidWZmLmMKaW5kZXggNjA1Njc0YS4uMGQ4OTBkMCAxMDA2NDQKLS0t IGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTQzNDEsMTMg KzQzNDEsMTYgQEAgaW50IHNrYl92bGFuX3B1c2goc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTE2 IHZsYW5fcHJvdG8sIHUxNiB2bGFuX3RjaSkKIAkJX19za2JfcHVzaChza2IsIG9mZnNldCk7CiAJ CWVyciA9IF9fdmxhbl9pbnNlcnRfdGFnKHNrYiwgc2tiLT52bGFuX3Byb3RvLAogCQkJCQlza2Jf dmxhbl90YWdfZ2V0KHNrYikpOwotCQlpZiAoZXJyKQorCQlpZiAoZXJyKSB7CisJCQlfX3NrYl9w dWxsKHNrYiwgb2Zmc2V0KTsKIAkJCXJldHVybiBlcnI7CisJCX0KKwogCQlza2ItPnByb3RvY29s ID0gc2tiLT52bGFuX3Byb3RvOwogCQlza2ItPm1hY19sZW4gKz0gVkxBTl9ITEVOOwotCQlfX3Nr Yl9wdWxsKHNrYiwgb2Zmc2V0KTsKIAogCQlza2JfcG9zdHB1c2hfcmNzdW0oc2tiLCBza2ItPmRh dGEgKyAoMiAqIEVUSF9BTEVOKSwgVkxBTl9ITEVOKTsKKwkJX19za2JfcHVsbChza2IsIG9mZnNl dCk7CiAJfQogCV9fdmxhbl9od2FjY2VsX3B1dF90YWcoc2tiLCB2bGFuX3Byb3RvLCB2bGFuX3Rj aSk7CiAJcmV0dXJuIDA7Ci0tIAoyLjQuMQoKCkZyb20gZjBlZDI2N2EyOThiZWY0NDQwZWFhYWE3 MGU1MzU4MjZiYWQwMDdjYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQmVuIEh1dGNo aW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KRGF0ZTogV2VkLCAyMCBBcHIgMjAxNiAyMzoyMzow OCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMjZdIGF0bDI6IERpc2FibGUgdW5pbXBsZW1lbnRl ZCBzY2F0dGVyL2dhdGhlciBmZWF0dXJlCgpbIFVwc3RyZWFtIGNvbW1pdCBmNDNiZmFlZGRjNzll ZmZiZjNkMGZjYjUzY2E0NzdjY2E2NmYzZGI4IF0KCmF0bDIgaW5jbHVkZXMgTkVUSUZfRl9TRyBp biBod19mZWF0dXJlcyBldmVuIHRob3VnaCBpdCBoYXMgbm8gc3VwcG9ydApmb3Igbm9uLWxpbmVh ciBza2JzLiAgVGhpcyBidWcgd2FzIG9yaWdpbmFsbHkgaGFybWxlc3Mgc2luY2UgdGhlCmRyaXZl ciBkb2VzIG5vdCBjbGFpbSB0byBpbXBsZW1lbnQgY2hlY2tzdW0gb2ZmbG9hZCBhbmQgdGhhdCB1 c2VkIHRvCmJlIGEgcmVxdWlyZW1lbnQgZm9yIFNHLgoKTm93IHRoYXQgU0cgYW5kIGNoZWNrc3Vt IG9mZmxvYWQgYXJlIGluZGVwZW5kZW50IGZlYXR1cmVzLCBpZiB5b3UKZXhwbGljaXRseSBlbmFi bGUgU0cgKmFuZCogdXNlIG9uZSBvZiB0aGUgcmFyZSBwcm90b2NvbHMgdGhhdCBjYW4gdXNlClNH IHdpdGhvdXQgY2hlY2t1c20gb2ZmbG9hZCwgdGhpcyBwb3RlbnRpYWxseSBsZWFrcyBzZW5zaXRp dmUKaW5mb3JtYXRpb24gKGJlZm9yZSB5b3Ugbm90aWNlIHRoYXQgaXQganVzdCBpc24ndCB3b3Jr aW5nKS4gIFRoZXJlZm9yZQp0aGlzIG9ic2N1cmUgYnVnIGhhcyBiZWVuIGRlc2lnbmF0ZWQgQ1ZF LTIwMTYtMjExNy4KClJlcG9ydGVkLWJ5OiBKdXN0aW4gWWFja29za2kgPGp5YWNrb3NraUBjcnlw dG8tbml0ZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbkBkZWNhZGVudC5v cmcudWs+CkZpeGVzOiBlYzVmMDYxNTY0MjMgKCJuZXQ6IEtpbGwgbGluayBiZXR3ZWVuIENTVU0g YW5kIFNHIGZlYXR1cmVzLiIpClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2F0bHgvYXRs Mi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hdGx4L2F0bDIuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYXRseC9hdGwyLmMKaW5kZXggNDZhNTM1My4u OTcyZWU2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hdGx4L2F0 bDIuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2F0bHgvYXRsMi5jCkBAIC0x NDEyLDcgKzE0MTIsNyBAQCBzdGF0aWMgaW50IGF0bDJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBk ZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAKIAllcnIgPSAtRUlPOwogCi0J bmV0ZGV2LT5od19mZWF0dXJlcyA9IE5FVElGX0ZfU0cgfCBORVRJRl9GX0hXX1ZMQU5fQ1RBR19S WDsKKwluZXRkZXYtPmh3X2ZlYXR1cmVzID0gTkVUSUZfRl9IV19WTEFOX0NUQUdfUlg7CiAJbmV0 ZGV2LT5mZWF0dXJlcyB8PSAoTkVUSUZfRl9IV19WTEFOX0NUQUdfVFggfCBORVRJRl9GX0hXX1ZM QU5fQ1RBR19SWCk7CiAKIAkvKiBJbml0IFBIWSBhcyBlYXJseSBhcyBwb3NzaWJsZSBkdWUgdG8g cG93ZXIgc2F2aW5nIGlzc3VlICAqLwotLSAKMi40LjEKCgpGcm9tIGRiY2I5YTcyNWNjNWI3ODVj MDVjY2JlOGQwMTk3NjYwMmU0Nzk5NWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNp bW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9tZS5jb20+CkRhdGU6IFRodSwgMjEgQXBy IDIwMTYgMTE6NDk6MTUgKzEwMDAKU3ViamVjdDogW1BBVENIIDEwLzI2XSBvcGVudnN3aXRjaDog dXNlIGZsb3cgcHJvdG9jb2wgd2hlbiByZWNhbGN1bGF0aW5nIGlwdjYKIGNoZWNrc3VtcwoKWyBV cHN0cmVhbSBjb21taXQgYjRmNzA1MjdmMDUyYjBjMDBiZTRkN2NhYzU2MmJhYTc1YjIxMmRmNSBd CgpXaGVuIHVzaW5nIG1hc2tlZCBhY3Rpb25zIHRoZSBpcHY2X3Byb3RvIGZpZWxkIG9mIGFuIGFj dGlvbgp0byBzZXQgSVB2NiBmaWVsZHMgbWF5IGJlIHplcm8gcmF0aGVyIHRoYW4gdGhlIHByZXZh aWxpbmcgcHJvdG9jb2wKd2hpY2ggd2lsbCByZXN1bHQgaW4gc2tpcHBpbmcgY2hlY2tzdW0gcmVj YWxjdWxhdGlvbi4KClRoaXMgcGF0Y2ggcmVzb2x2ZXMgdGhlIHByb2JsZW0gYnkgcmVseWluZyBv biB0aGUgcHJvdG9jb2wKaW4gdGhlIGZsb3cga2V5IHJhdGhlciB0aGFuIHRoYXQgaW4gdGhlIHNl dCBmaWVsZCBhY3Rpb24uCgpGaXhlczogODNkMmI5YmExYWJjICgibmV0OiBvcGVudnN3aXRjaDog U3VwcG9ydCBtYXNrZWQgc2V0IGFjdGlvbnMuIikKQ2M6IEphcm5vIFJhamFoYWxtZSA8anJhamFo YWxtZUBuaWNpcmEuY29tPgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1h bkBuZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYyB8IDQgKystLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jIGIvbmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYwpp bmRleCBhYTgwNzJiLi44MDExNDA0IDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9u cy5jCisrKyBiL25ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMKQEAgLTQzOSw3ICs0MzksNyBAQCBz dGF0aWMgaW50IHNldF9pcHY2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tl eSAqZmxvd19rZXksCiAJCW1hc2tfaXB2Nl9hZGRyKHNhZGRyLCBrZXktPmlwdjZfc3JjLCBtYXNr LT5pcHY2X3NyYywgbWFza2VkKTsKIAogCQlpZiAodW5saWtlbHkobWVtY21wKHNhZGRyLCBtYXNr ZWQsIHNpemVvZihtYXNrZWQpKSkpIHsKLQkJCXNldF9pcHY2X2FkZHIoc2tiLCBrZXktPmlwdjZf cHJvdG8sIHNhZGRyLCBtYXNrZWQsCisJCQlzZXRfaXB2Nl9hZGRyKHNrYiwgZmxvd19rZXktPmlw LnByb3RvLCBzYWRkciwgbWFza2VkLAogCQkJCSAgICAgIHRydWUpOwogCQkJbWVtY3B5KCZmbG93 X2tleS0+aXB2Ni5hZGRyLnNyYywgbWFza2VkLAogCQkJICAgICAgIHNpemVvZihmbG93X2tleS0+ aXB2Ni5hZGRyLnNyYykpOwpAQCAtNDYxLDcgKzQ2MSw3IEBAIHN0YXRpYyBpbnQgc2V0X2lwdjYo c3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICpmbG93X2tleSwKIAkJCQkJ CQkgICAgIE5VTEwsICZmbGFncykKIAkJCQkJICAgICAgICE9IE5FWFRIRFJfUk9VVElORyk7CiAK LQkJCXNldF9pcHY2X2FkZHIoc2tiLCBrZXktPmlwdjZfcHJvdG8sIGRhZGRyLCBtYXNrZWQsCisJ CQlzZXRfaXB2Nl9hZGRyKHNrYiwgZmxvd19rZXktPmlwLnByb3RvLCBkYWRkciwgbWFza2VkLAog CQkJCSAgICAgIHJlY2FsY19jc3VtKTsKIAkJCW1lbWNweSgmZmxvd19rZXktPmlwdjYuYWRkci5k c3QsIG1hc2tlZCwKIAkJCSAgICAgICBzaXplb2YoZmxvd19rZXktPmlwdjYuYWRkci5kc3QpKTsK LS0gCjIuNC4xCgoKRnJvbSAzODQxNWQ0NmRlODg3NjkxZWY3M2NmMTJmMWViYjc5NWVmMWVjNzA3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhh dC5jb20+CkRhdGU6IFRodSwgMjEgQXByIDIwMTYgMjI6MjM6MzEgKzAyMDAKU3ViamVjdDogW1BB VENIIDExLzI2XSBpcHY0L2ZpYjogZG9uJ3Qgd2FybiB3aGVuIHByaW1hcnkgYWRkcmVzcyBpcyBt aXNzaW5nIGlmCiBpbl9kZXYgaXMgZGVhZAoKWyBVcHN0cmVhbSBjb21taXQgMzkxYTIwMzMzYjgz OTNlZjJlMTMwMTRlNmU1OWQxOTJjNTU5NDQ3MSBdCgpBZnRlciBjb21taXQgZmJkNDBlYTAxODBh ICgiaXB2NDogRG9uJ3QgZG8gZXhwZW5zaXZlIHVzZWxlc3Mgd29yawpkdXJpbmcgaW5ldGRldiBk ZXN0cm95LiIpIHdoZW4gZGVsZXRpbmcgYW4gaW50ZXJmYWNlLApmaWJfZGVsX2lmYWRkcigpIGNh biBiZSBleGVjdXRlZCB3aXRob3V0IGFueSBwcmltYXJ5IGFkZHJlc3MKcHJlc2VudCBvbiB0aGUg ZGVhZCBpbnRlcmZhY2UuCgpUaGUgYWJvdmUgaXMgc2FmZSwgYnV0IHRyaWdnZXJzIHNvbWUgImJ1 ZzogcHJpbSA9PSBOVUxMIiB3YXJuaW5ncy4KClRoaXMgY29tbWl0IGF2b2lkcyB3YXJuaW5nIGlm IHRoZSBpbl9kZXYgaXMgZGVhZAoKU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkgPHBhYmVuaUBy ZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMgfCA2ICsrKysrLQogMSBmaWxlIGNo YW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2ZpYl9mcm9udGVuZC5jIGIvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKaW5kZXggODcyNDk0 ZS4uODAwOTRmOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKKysrIGIvbmV0 L2lwdjQvZmliX2Zyb250ZW5kLmMKQEAgLTg2MSw3ICs4NjEsMTEgQEAgdm9pZCBmaWJfZGVsX2lm YWRkcihzdHJ1Y3QgaW5faWZhZGRyICppZmEsIHN0cnVjdCBpbl9pZmFkZHIgKmlwcmltKQogCWlm IChpZmEtPmlmYV9mbGFncyAmIElGQV9GX1NFQ09OREFSWSkgewogCQlwcmltID0gaW5ldF9pZmFf YnlwcmVmaXgoaW5fZGV2LCBhbnksIGlmYS0+aWZhX21hc2spOwogCQlpZiAoIXByaW0pIHsKLQkJ CXByX3dhcm4oIiVzOiBidWc6IHByaW0gPT0gTlVMTFxuIiwgX19mdW5jX18pOworCQkJLyogaWYg dGhlIGRldmljZSBoYXMgYmVlbiBkZWxldGVkLCB3ZSBkb24ndCBwZXJmb3JtCisJCQkgKiBhZGRy ZXNzIHByb21vdGlvbgorCQkJICovCisJCQlpZiAoIWluX2Rldi0+ZGVhZCkKKwkJCQlwcl93YXJu KCIlczogYnVnOiBwcmltID09IE5VTExcbiIsIF9fZnVuY19fKTsKIAkJCXJldHVybjsKIAkJfQog CQlpZiAoaXByaW0gJiYgaXByaW0gIT0gcHJpbSkgewotLSAKMi40LjEKCgpGcm9tIDA4YzE5YjU2 M2RjMDg4ZDliNjllN2Q1NzJjMjVlMjQ2M2U4NWI1ZGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAyMyBB cHIgMjAxNiAxMTozNTo0NiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjZdIG5ldC9tbHg0X2Vu OiBmaXggc3B1cmlvdXMgdGltZXN0YW1waW5nIGNhbGxiYWNrcwoKWyBVcHN0cmVhbSBjb21taXQg ZmM5NjI1NmM5MDYzNjJlODQ1ZDg0OGQwZjZhNjM1NDQ1MDA1OWU4MSBdCgpXaGVuIG11bHRpcGxl IHNrYiBhcmUgVFgtY29tcGxldGVkIGluIGEgcm93LCB3ZSBtaWdodCBpbmNvcnJlY3RseSBrZWVw CmEgdGltZXN0YW1wIG9mIGEgcHJpb3Igc2tiIGFuZCBjYXVzZSBleHRyYSB3b3JrLgoKRml4ZXM6 IGVjNjkzZDQ3MDEwZTggKCJuZXQvbWx4NF9lbjogQWRkIEhXIHRpbWVzdGFtcGluZyAoVFMpIHN1 cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ CkNjOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClJldmlld2VkLWJ5OiBF cmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg0L2VuX3R4LmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg0L2VuX3R4LmMKaW5kZXggYzEwZDk4Zi4uYTFiNDMwMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDQvZW5fdHguYwpAQCAtNDAwLDcgKzQwMCw2IEBAIHN0YXRpYyBi b29sIG1seDRfZW5fcHJvY2Vzc190eF9jcShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCXUzMiBw YWNrZXRzID0gMDsKIAl1MzIgYnl0ZXMgPSAwOwogCWludCBmYWN0b3IgPSBwcml2LT5jcWVfZmFj dG9yOwotCXU2NCB0aW1lc3RhbXAgPSAwOwogCWludCBkb25lID0gMDsKIAlpbnQgYnVkZ2V0ID0g cHJpdi0+dHhfd29ya19saW1pdDsKIAl1MzIgbGFzdF9ucl90eGJiOwpAQCAtNDQwLDkgKzQzOSwx MiBAQCBzdGF0aWMgYm9vbCBtbHg0X2VuX3Byb2Nlc3NfdHhfY3Eoc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwKIAkJbmV3X2luZGV4ID0gYmUxNl90b19jcHUoY3FlLT53cWVfaW5kZXgpICYgc2l6ZV9t YXNrOwogCiAJCWRvIHsKKwkJCXU2NCB0aW1lc3RhbXAgPSAwOworCiAJCQl0eGJic19za2lwcGVk ICs9IGxhc3RfbnJfdHhiYjsKIAkJCXJpbmdfaW5kZXggPSAocmluZ19pbmRleCArIGxhc3RfbnJf dHhiYikgJiBzaXplX21hc2s7Ci0JCQlpZiAocmluZy0+dHhfaW5mb1tyaW5nX2luZGV4XS50c19y ZXF1ZXN0ZWQpCisKKwkJCWlmICh1bmxpa2VseShyaW5nLT50eF9pbmZvW3JpbmdfaW5kZXhdLnRz X3JlcXVlc3RlZCkpCiAJCQkJdGltZXN0YW1wID0gbWx4NF9lbl9nZXRfY3FlX3RzKGNxZSk7CiAK IAkJCS8qIGZyZWUgbmV4dCBkZXNjcmlwdG9yICovCi0tIAoyLjQuMQoKCkZyb20gZmQ0N2M4NDY3 NmVmNTdhYjM0MjBhNGVkN2RhNDA2Y2NiM2UxNDAyMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSmFubiBIb3JuIDxqYW5uaEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDI2IEFwciAyMDE2 IDIyOjI2OjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMy8yNl0gYnBmOiBmaXggZG91YmxlLWZk cHV0IGluIHJlcGxhY2VfbWFwX2ZkX3dpdGhfbWFwX3B0cigpCgpbIFVwc3RyZWFtIGNvbW1pdCA4 MzU4YjAyYmY2N2QzYTVkOGE4MjUwNzBlMWFhNzNmMjVmYjJlNGM3IF0KCldoZW4gYnBmKEJQRl9Q Uk9HX0xPQUQsIC4uLikgd2FzIGludm9rZWQgd2l0aCBhIEJQRiBwcm9ncmFtIHdob3NlIGJ5dGVj b2RlCnJlZmVyZW5jZXMgYSBub24tbWFwIGZpbGUgZGVzY3JpcHRvciBhcyBhIG1hcCBmaWxlIGRl c2NyaXB0b3IsIHRoZSBlcnJvcgpoYW5kbGluZyBjb2RlIGNhbGxlZCBmZHB1dCgpIHR3aWNlIGlu c3RlYWQgb2Ygb25jZSAoaW4gX19icGZfbWFwX2dldCgpIGFuZAppbiByZXBsYWNlX21hcF9mZF93 aXRoX21hcF9wdHIoKSkuIElmIHRoZSBmaWxlIGRlc2NyaXB0b3IgdGFibGUgb2YgdGhlCmN1cnJl bnQgdGFzayBpcyBzaGFyZWQsIHRoaXMgY2F1c2VzIGZfY291bnQgdG8gYmUgZGVjcmVtZW50ZWQg dG9vIG11Y2gsCmFsbG93aW5nIHRoZSBzdHJ1Y3QgZmlsZSB0byBiZSBmcmVlZCB3aGlsZSBpdCBp cyBzdGlsbCBpbiB1c2UKKHVzZS1hZnRlci1mcmVlKS4gVGhpcyBjYW4gYmUgZXhwbG9pdGVkIHRv IGdhaW4gcm9vdCBwcml2aWxlZ2VzIGJ5IGFuCnVucHJpdmlsZWdlZCB1c2VyLgoKVGhpcyBidWcg d2FzIGludHJvZHVjZWQgaW4KY29tbWl0IDAyNDZlNjRkOWE1ZiAoImJwZjogaGFuZGxlIHBzZXVk byBCUEZfTERfSU1NNjQgaW5zbiIpLCBidXQgaXMgb25seQpleHBsb2l0YWJsZSBzaW5jZQpjb21t aXQgMWJlN2Y3NWQxNjY4ICgiYnBmOiBlbmFibGUgbm9uLXJvb3QgZUJQRiBwcm9ncmFtcyIpIGJl Y2F1c2UKcHJldmlvdXNseSwgQ0FQX1NZU19BRE1JTiB3YXMgcmVxdWlyZWQgdG8gcmVhY2ggdGhl IHZ1bG5lcmFibGUgY29kZS4KCihwb3N0ZWQgcHVibGljbHkgYWNjb3JkaW5nIHRvIHJlcXVlc3Qg YnkgbWFpbnRhaW5lcikKClNpZ25lZC1vZmYtYnk6IEphbm4gSG9ybiA8amFubmhAZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRp b24ub3JnPgpBY2tlZC1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4KQWNr ZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBrZXJuZWwvYnBm L3ZlcmlmaWVyLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4 IGRkMTZkMTkuLmVmZDE0M2QgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYworKysg Yi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTE4NjUsNyArMTg2NSw2IEBAIHN0YXRpYyBpbnQg cmVwbGFjZV9tYXBfZmRfd2l0aF9tYXBfcHRyKHN0cnVjdCB2ZXJpZmllcl9lbnYgKmVudikKIAkJ CWlmIChJU19FUlIobWFwKSkgewogCQkJCXZlcmJvc2UoImZkICVkIGlzIG5vdCBwb2ludGluZyB0 byB2YWxpZCBicGZfbWFwXG4iLAogCQkJCQlpbnNuLT5pbW0pOwotCQkJCWZkcHV0KGYpOwogCQkJ CXJldHVybiBQVFJfRVJSKG1hcCk7CiAJCQl9CiAKLS0gCjIuNC4xCgoKRnJvbSBmYTU3M2VlNmM4 YTJjYTdiMzRhZGNjZTkwMjNlY2MzMmRjMTc4NzFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBXQU5HIENvbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyNSBG ZWIgMjAxNiAxNDo1NTowMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjZdIG5ldF9zY2hlZDog aW50cm9kdWNlIHFkaXNjX3JlcGxhY2UoKSBoZWxwZXIKClsgVXBzdHJlYW0gY29tbWl0IDg2YTc5 OTZjYzhhMDc4NzkzNjcwZDgyZWQ5N2Q1YTk5YmI0ZTg0OTYgXQoKUmVtb3ZlIG5lYXJseSBkdXBs aWNhdGVkIGNvZGUgYW5kIHByZXBhcmUgZm9yIHRoZSBmb2xsb3dpbmcgcGF0Y2guCgpDYzogSmFt YWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQWNrZWQtYnk6IEphbWFsIEhhZGkgU2Fs aW0gPGpoc0Btb2phdGF0dS5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2Fu Z2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaCB8IDE3ICsrKysrKysr KysrKysrKysrCiBuZXQvc2NoZWQvc2NoX2NicS5jICAgICAgIHwgIDcgKy0tLS0tLQogbmV0L3Nj aGVkL3NjaF9kcnIuYyAgICAgICB8ICA2ICstLS0tLQogbmV0L3NjaGVkL3NjaF9kc21hcmsuYyAg ICB8ICA4ICstLS0tLS0tCiBuZXQvc2NoZWQvc2NoX2hmc2MuYyAgICAgIHwgIDYgKy0tLS0tCiBu ZXQvc2NoZWQvc2NoX2h0Yi5jICAgICAgIHwgIDkgKy0tLS0tLS0tCiBuZXQvc2NoZWQvc2NoX211 bHRpcS5jICAgIHwgIDggKy0tLS0tLS0KIG5ldC9zY2hlZC9zY2hfbmV0ZW0uYyAgICAgfCAxMCAr LS0tLS0tLS0tCiBuZXQvc2NoZWQvc2NoX3ByaW8uYyAgICAgIHwgIDggKy0tLS0tLS0KIG5ldC9z Y2hlZC9zY2hfcWZxLmMgICAgICAgfCAgNiArLS0tLS0KIG5ldC9zY2hlZC9zY2hfcmVkLmMgICAg ICAgfCAgNyArLS0tLS0tCiBuZXQvc2NoZWQvc2NoX3NmYi5jICAgICAgIHwgIDcgKy0tLS0tLQog bmV0L3NjaGVkL3NjaF90YmYuYyAgICAgICB8ICA4ICstLS0tLS0tCiAxMyBmaWxlcyBjaGFuZ2Vk LCAyOSBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRl L25ldC9zY2hfZ2VuZXJpYy5oIGIvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaAppbmRleCAwODBi NjU3Li4xZmI4YTViIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oCisrKyBi L2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmgKQEAgLTY5MSw2ICs2OTEsMjMgQEAgc3RhdGljIGlu bGluZSB2b2lkIHFkaXNjX3Jlc2V0X3F1ZXVlKHN0cnVjdCBRZGlzYyAqc2NoKQogCXNjaC0+cXN0 YXRzLmJhY2tsb2cgPSAwOwogfQogCitzdGF0aWMgaW5saW5lIHN0cnVjdCBRZGlzYyAqcWRpc2Nf cmVwbGFjZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IFFkaXNjICpuZXcsCisJCQkJCSAgc3Ry dWN0IFFkaXNjICoqcG9sZCkKK3sKKwlzdHJ1Y3QgUWRpc2MgKm9sZDsKKworCXNjaF90cmVlX2xv Y2soc2NoKTsKKwlvbGQgPSAqcG9sZDsKKwkqcG9sZCA9IG5ldzsKKwlpZiAob2xkICE9IE5VTEwp IHsKKwkJcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKG9sZCwgb2xkLT5xLnFsZW4pOworCQlxZGlz Y19yZXNldChvbGQpOworCX0KKwlzY2hfdHJlZV91bmxvY2soc2NoKTsKKworCXJldHVybiBvbGQ7 Cit9CisKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IF9fcWRpc2NfcXVldWVfZHJvcChzdHJ1 Y3QgUWRpc2MgKnNjaCwKIAkJCQkJICAgICAgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCkKIHsK ZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2JxLmMgYi9uZXQvc2NoZWQvc2NoX2NicS5jCmlu ZGV4IGJlZWI3NWYuLjE3YWQ3OWUgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY2JxLmMKKysr IGIvbmV0L3NjaGVkL3NjaF9jYnEuYwpAQCAtMTYyNCwxMyArMTYyNCw4IEBAIHN0YXRpYyBpbnQg Y2JxX2dyYWZ0KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGFyZywgc3RydWN0IFFk aXNjICpuZXcsCiAJCQluZXctPnJlc2hhcGVfZmFpbCA9IGNicV9yZXNoYXBlX2ZhaWw7CiAjZW5k aWYKIAl9Ci0Jc2NoX3RyZWVfbG9jayhzY2gpOwotCSpvbGQgPSBjbC0+cTsKLQljbC0+cSA9IG5l dzsKLQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oKm9sZCwgKCpvbGQpLT5xLnFsZW4pOwotCXFk aXNjX3Jlc2V0KCpvbGQpOwotCXNjaF90cmVlX3VubG9jayhzY2gpOwogCisJKm9sZCA9IHFkaXNj X3JlcGxhY2Uoc2NoLCBuZXcsICZjbC0+cSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBh L25ldC9zY2hlZC9zY2hfZHJyLmMgYi9uZXQvc2NoZWQvc2NoX2Ryci5jCmluZGV4IDMzODcwNjAu LmQ0YjNmODIgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZHJyLmMKKysrIGIvbmV0L3NjaGVk L3NjaF9kcnIuYwpAQCAtMjI2LDExICsyMjYsNyBAQCBzdGF0aWMgaW50IGRycl9ncmFmdF9jbGFz cyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBhcmcsCiAJCQluZXcgPSAmbm9vcF9x ZGlzYzsKIAl9CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JZHJyX3B1cmdlX3F1ZXVlKGNsKTsK LQkqb2xkID0gY2wtPnFkaXNjOwotCWNsLT5xZGlzYyA9IG5ldzsKLQlzY2hfdHJlZV91bmxvY2so c2NoKTsKKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJmNsLT5xZGlzYyk7CiAJcmV0 dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMgYi9uZXQvc2No ZWQvc2NoX2RzbWFyay5jCmluZGV4IDY2NzAwYTYuLmQyMDg0ZTcgMTAwNjQ0Ci0tLSBhL25ldC9z Y2hlZC9zY2hfZHNtYXJrLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9kc21hcmsuYwpAQCAtNjcsMTMg KzY3LDcgQEAgc3RhdGljIGludCBkc21hcmtfZ3JhZnQoc3RydWN0IFFkaXNjICpzY2gsIHVuc2ln bmVkIGxvbmcgYXJnLAogCQkJbmV3ID0gJm5vb3BfcWRpc2M7CiAJfQogCi0Jc2NoX3RyZWVfbG9j ayhzY2gpOwotCSpvbGQgPSBwLT5xOwotCXAtPnEgPSBuZXc7Ci0JcWRpc2NfdHJlZV9kZWNyZWFz ZV9xbGVuKCpvbGQsICgqb2xkKS0+cS5xbGVuKTsKLQlxZGlzY19yZXNldCgqb2xkKTsKLQlzY2hf dHJlZV91bmxvY2soc2NoKTsKLQorCSpvbGQgPSBxZGlzY19yZXBsYWNlKHNjaCwgbmV3LCAmcC0+ cSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfaGZzYy5jIGIv bmV0L3NjaGVkL3NjaF9oZnNjLmMKaW5kZXggZTZjNzQxNi4uMTM0ZjdkMiAxMDA2NDQKLS0tIGEv bmV0L3NjaGVkL3NjaF9oZnNjLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9oZnNjLmMKQEAgLTEyMTUs MTEgKzEyMTUsNyBAQCBoZnNjX2dyYWZ0X2NsYXNzKHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25l ZCBsb25nIGFyZywgc3RydWN0IFFkaXNjICpuZXcsCiAJCQluZXcgPSAmbm9vcF9xZGlzYzsKIAl9 CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JaGZzY19wdXJnZV9xdWV1ZShzY2gsIGNsKTsKLQkq b2xkID0gY2wtPnFkaXNjOwotCWNsLT5xZGlzYyA9IG5ldzsKLQlzY2hfdHJlZV91bmxvY2soc2No KTsKKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJmNsLT5xZGlzYyk7CiAJcmV0dXJu IDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfaHRiLmMgYi9uZXQvc2NoZWQvc2No X2h0Yi5jCmluZGV4IGYxYWNiMGYuLjUyMGZmZTkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hf aHRiLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9odGIuYwpAQCAtMTE2NSwxNCArMTE2NSw3IEBAIHN0 YXRpYyBpbnQgaHRiX2dyYWZ0KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGFyZywg c3RydWN0IFFkaXNjICpuZXcsCiAJCQkJICAgICBjbC0+Y29tbW9uLmNsYXNzaWQpKSA9PSBOVUxM KQogCQlyZXR1cm4gLUVOT0JVRlM7CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JKm9sZCA9IGNs LT51bi5sZWFmLnE7Ci0JY2wtPnVuLmxlYWYucSA9IG5ldzsKLQlpZiAoKm9sZCAhPSBOVUxMKSB7 Ci0JCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigqb2xkLCAoKm9sZCktPnEucWxlbik7Ci0JCXFk aXNjX3Jlc2V0KCpvbGQpOwotCX0KLQlzY2hfdHJlZV91bmxvY2soc2NoKTsKKwkqb2xkID0gcWRp c2NfcmVwbGFjZShzY2gsIG5ldywgJmNsLT51bi5sZWFmLnEpOwogCXJldHVybiAwOwogfQogCmRp ZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX211bHRpcS5jIGIvbmV0L3NjaGVkL3NjaF9tdWx0aXEu YwppbmRleCA0MmRkMjE4Li5mMzZmZjgzIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX211bHRp cS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbXVsdGlxLmMKQEAgLTMwMywxMyArMzAzLDcgQEAgc3Rh dGljIGludCBtdWx0aXFfZ3JhZnQoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgYXJn LCBzdHJ1Y3QgUWRpc2MgKm5ldywKIAlpZiAobmV3ID09IE5VTEwpCiAJCW5ldyA9ICZub29wX3Fk aXNjOwogCi0Jc2NoX3RyZWVfbG9jayhzY2gpOwotCSpvbGQgPSBxLT5xdWV1ZXNbYmFuZF07Ci0J cS0+cXVldWVzW2JhbmRdID0gbmV3OwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigqb2xkLCAo Km9sZCktPnEucWxlbik7Ci0JcWRpc2NfcmVzZXQoKm9sZCk7Ci0Jc2NoX3RyZWVfdW5sb2NrKHNj aCk7Ci0KKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJnEtPnF1ZXVlc1tiYW5kXSk7 CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfbmV0ZW0uYyBiL25l dC9zY2hlZC9zY2hfbmV0ZW0uYwppbmRleCA5NTZlYWQyLi44ZDU2MDE2IDEwMDY0NAotLS0gYS9u ZXQvc2NoZWQvc2NoX25ldGVtLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9uZXRlbS5jCkBAIC0xMDM3 LDE1ICsxMDM3LDcgQEAgc3RhdGljIGludCBuZXRlbV9ncmFmdChzdHJ1Y3QgUWRpc2MgKnNjaCwg dW5zaWduZWQgbG9uZyBhcmcsIHN0cnVjdCBRZGlzYyAqbmV3LAogewogCXN0cnVjdCBuZXRlbV9z Y2hlZF9kYXRhICpxID0gcWRpc2NfcHJpdihzY2gpOwogCi0Jc2NoX3RyZWVfbG9jayhzY2gpOwot CSpvbGQgPSBxLT5xZGlzYzsKLQlxLT5xZGlzYyA9IG5ldzsKLQlpZiAoKm9sZCkgewotCQlxZGlz Y190cmVlX2RlY3JlYXNlX3FsZW4oKm9sZCwgKCpvbGQpLT5xLnFsZW4pOwotCQlxZGlzY19yZXNl dCgqb2xkKTsKLQl9Ci0Jc2NoX3RyZWVfdW5sb2NrKHNjaCk7Ci0KKwkqb2xkID0gcWRpc2NfcmVw bGFjZShzY2gsIG5ldywgJnEtPnFkaXNjKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEv bmV0L3NjaGVkL3NjaF9wcmlvLmMgYi9uZXQvc2NoZWQvc2NoX3ByaW8uYwppbmRleCA4ZTVjZDM0 Li5hNjc3ZjU0M2EgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfcHJpby5jCisrKyBiL25ldC9z Y2hlZC9zY2hfcHJpby5jCkBAIC0yNjgsMTMgKzI2OCw3IEBAIHN0YXRpYyBpbnQgcHJpb19ncmFm dChzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBhcmcsIHN0cnVjdCBRZGlzYyAqbmV3 LAogCWlmIChuZXcgPT0gTlVMTCkKIAkJbmV3ID0gJm5vb3BfcWRpc2M7CiAKLQlzY2hfdHJlZV9s b2NrKHNjaCk7Ci0JKm9sZCA9IHEtPnF1ZXVlc1tiYW5kXTsKLQlxLT5xdWV1ZXNbYmFuZF0gPSBu ZXc7Ci0JcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKCpvbGQsICgqb2xkKS0+cS5xbGVuKTsKLQlx ZGlzY19yZXNldCgqb2xkKTsKLQlzY2hfdHJlZV91bmxvY2soc2NoKTsKLQorCSpvbGQgPSBxZGlz Y19yZXBsYWNlKHNjaCwgbmV3LCAmcS0+cXVldWVzW2JhbmRdKTsKIAlyZXR1cm4gMDsKIH0KIApk aWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9xZnEuYyBiL25ldC9zY2hlZC9zY2hfcWZxLmMKaW5k ZXggM2VjN2U4OC4uNmZlYTMyMCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9xZnEuYworKysg Yi9uZXQvc2NoZWQvc2NoX3FmcS5jCkBAIC02MTksMTEgKzYxOSw3IEBAIHN0YXRpYyBpbnQgcWZx X2dyYWZ0X2NsYXNzKHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGFyZywKIAkJCW5l dyA9ICZub29wX3FkaXNjOwogCX0KIAotCXNjaF90cmVlX2xvY2soc2NoKTsKLQlxZnFfcHVyZ2Vf cXVldWUoY2wpOwotCSpvbGQgPSBjbC0+cWRpc2M7Ci0JY2wtPnFkaXNjID0gbmV3OwotCXNjaF90 cmVlX3VubG9jayhzY2gpOworCSpvbGQgPSBxZGlzY19yZXBsYWNlKHNjaCwgbmV3LCAmY2wtPnFk aXNjKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9yZWQuYyBi L25ldC9zY2hlZC9zY2hfcmVkLmMKaW5kZXggNmMwNTM0Yy4uZDVhYmNlZSAxMDA2NDQKLS0tIGEv bmV0L3NjaGVkL3NjaF9yZWQuYworKysgYi9uZXQvc2NoZWQvc2NoX3JlZC5jCkBAIC0zMTMsMTIg KzMxMyw3IEBAIHN0YXRpYyBpbnQgcmVkX2dyYWZ0KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25l ZCBsb25nIGFyZywgc3RydWN0IFFkaXNjICpuZXcsCiAJaWYgKG5ldyA9PSBOVUxMKQogCQluZXcg PSAmbm9vcF9xZGlzYzsKIAotCXNjaF90cmVlX2xvY2soc2NoKTsKLQkqb2xkID0gcS0+cWRpc2M7 Ci0JcS0+cWRpc2MgPSBuZXc7Ci0JcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKCpvbGQsICgqb2xk KS0+cS5xbGVuKTsKLQlxZGlzY19yZXNldCgqb2xkKTsKLQlzY2hfdHJlZV91bmxvY2soc2NoKTsK Kwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJnEtPnFkaXNjKTsKIAlyZXR1cm4gMDsK IH0KIApkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9zZmIuYyBiL25ldC9zY2hlZC9zY2hfc2Zi LmMKaW5kZXggNTgxOWRkOC4uZmE3ZjBhMyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9zZmIu YworKysgYi9uZXQvc2NoZWQvc2NoX3NmYi5jCkBAIC02MTQsMTIgKzYxNCw3IEBAIHN0YXRpYyBp bnQgc2ZiX2dyYWZ0KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGFyZywgc3RydWN0 IFFkaXNjICpuZXcsCiAJaWYgKG5ldyA9PSBOVUxMKQogCQluZXcgPSAmbm9vcF9xZGlzYzsKIAot CXNjaF90cmVlX2xvY2soc2NoKTsKLQkqb2xkID0gcS0+cWRpc2M7Ci0JcS0+cWRpc2MgPSBuZXc7 Ci0JcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKCpvbGQsICgqb2xkKS0+cS5xbGVuKTsKLQlxZGlz Y19yZXNldCgqb2xkKTsKLQlzY2hfdHJlZV91bmxvY2soc2NoKTsKKwkqb2xkID0gcWRpc2NfcmVw bGFjZShzY2gsIG5ldywgJnEtPnFkaXNjKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEv bmV0L3NjaGVkL3NjaF90YmYuYyBiL25ldC9zY2hlZC9zY2hfdGJmLmMKaW5kZXggYTRhZmRlMS4u NTZhMWFlZiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF90YmYuYworKysgYi9uZXQvc2NoZWQv c2NoX3RiZi5jCkBAIC01MDIsMTMgKzUwMiw3IEBAIHN0YXRpYyBpbnQgdGJmX2dyYWZ0KHN0cnVj dCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGFyZywgc3RydWN0IFFkaXNjICpuZXcsCiAJaWYg KG5ldyA9PSBOVUxMKQogCQluZXcgPSAmbm9vcF9xZGlzYzsKIAotCXNjaF90cmVlX2xvY2soc2No KTsKLQkqb2xkID0gcS0+cWRpc2M7Ci0JcS0+cWRpc2MgPSBuZXc7Ci0JcWRpc2NfdHJlZV9kZWNy ZWFzZV9xbGVuKCpvbGQsICgqb2xkKS0+cS5xbGVuKTsKLQlxZGlzY19yZXNldCgqb2xkKTsKLQlz Y2hfdHJlZV91bmxvY2soc2NoKTsKLQorCSpvbGQgPSBxZGlzY19yZXBsYWNlKHNjaCwgbmV3LCAm cS0+cWRpc2MpOwogCXJldHVybiAwOwogfQogCi0tIAoyLjQuMQoKCkZyb20gYWJhNWNmNmZlNWU4 NTNkZjRhZjRiNzkxNWE5NGI0OGM2Yzk2ZjViZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMjUgRmVi IDIwMTYgMTQ6NTU6MDEgLTA4MDAKU3ViamVjdDogW1BBVENIIDE1LzI2XSBuZXRfc2NoZWQ6IHVw ZGF0ZSBoaWVyYXJjaGljYWwgYmFja2xvZyB0b28KClsgVXBzdHJlYW0gY29tbWl0IDJjY2NjZjVm YjQzZmY2MmIyYjk2Y2M1OGQ5NWZjMGIzNTk2NTE2ZTQgXQoKV2hlbiB0aGUgYm90dG9tIHFkaXNj IGRlY2lkZXMgdG8sIGZvciBleGFtcGxlLCBkcm9wIHNvbWUgcGFja2V0LAppdCBjYWxscyBxZGlz Y190cmVlX2RlY3JlYXNlX3FsZW4oKSB0byB1cGRhdGUgdGhlIHF1ZXVlIGxlbmd0aApmb3IgYWxs IGl0cyBhbmNlc3RvcnMsIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBiYWNrbG9nIHRvbyB0bwprZWVw IHRoZSBzdGF0cyBvbiByb290IHFkaXNjIGFjY3VyYXRlLgoKQ2M6IEphbWFsIEhhZGkgU2FsaW0g PGpoc0Btb2phdGF0dS5jb20+CkFja2VkLWJ5OiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRh dHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGluY2x1ZGUvbmV0L2NvZGVsLmggICAgICAgfCAgNCArKysrCiBpbmNsdWRlL25ldC9zY2hf Z2VuZXJpYy5oIHwgIDUgKysrLS0KIG5ldC9zY2hlZC9zY2hfYXBpLmMgICAgICAgfCAgOCArKysr Ky0tLQogbmV0L3NjaGVkL3NjaF9jYnEuYyAgICAgICB8ICA1ICsrKy0tCiBuZXQvc2NoZWQvc2No X2Nob2tlLmMgICAgIHwgIDYgKysrKy0tCiBuZXQvc2NoZWQvc2NoX2NvZGVsLmMgICAgIHwgMTAg KysrKysrLS0tLQogbmV0L3NjaGVkL3NjaF9kcnIuYyAgICAgICB8ICAzICsrLQogbmV0L3NjaGVk L3NjaF9mcS5jICAgICAgICB8ICA0ICsrKy0KIG5ldC9zY2hlZC9zY2hfZnFfY29kZWwuYyAgfCAx NyArKysrKysrKysrKystLS0tLQogbmV0L3NjaGVkL3NjaF9oZnNjLmMgICAgICB8ICAzICsrLQog bmV0L3NjaGVkL3NjaF9oaGYuYyAgICAgICB8IDEwICsrKysrKystLS0KIG5ldC9zY2hlZC9zY2hf aHRiLmMgICAgICAgfCAxMCArKysrKystLS0tCiBuZXQvc2NoZWQvc2NoX211bHRpcS5jICAgIHwg IDggKysrKystLS0KIG5ldC9zY2hlZC9zY2hfbmV0ZW0uYyAgICAgfCAgMyArKy0KIG5ldC9zY2hl ZC9zY2hfcGllLmMgICAgICAgfCAgNSArKystLQogbmV0L3NjaGVkL3NjaF9wcmlvLmMgICAgICB8 ICA3ICsrKystLS0KIG5ldC9zY2hlZC9zY2hfcWZxLmMgICAgICAgfCAgMyArKy0KIG5ldC9zY2hl ZC9zY2hfcmVkLmMgICAgICAgfCAgMyArKy0KIG5ldC9zY2hlZC9zY2hfc2ZiLmMgICAgICAgfCAg MyArKy0KIG5ldC9zY2hlZC9zY2hfc2ZxLmMgICAgICAgfCAxNiArKysrKysrKystLS0tLS0tCiBu ZXQvc2NoZWQvc2NoX3RiZi5jICAgICAgIHwgIDcgKysrKystLQogMjEgZmlsZXMgY2hhbmdlZCwg OTEgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9u ZXQvY29kZWwuaCBiL2luY2x1ZGUvbmV0L2NvZGVsLmgKaW5kZXggMWUxODAwNS4uMGVlNzYxMCAx MDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvY29kZWwuaAorKysgYi9pbmNsdWRlL25ldC9jb2RlbC5o CkBAIC0xNjAsMTEgKzE2MCwxMyBAQCBzdHJ1Y3QgY29kZWxfdmFycyB7CiAgKiBzdHJ1Y3QgY29k ZWxfc3RhdHMgLSBjb250YWlucyBjb2RlbCBzaGFyZWQgdmFyaWFibGVzIGFuZCBzdGF0cwogICog QG1heHBhY2tldDoJbGFyZ2VzdCBwYWNrZXQgd2UndmUgc2VlbiBzbyBmYXIKICAqIEBkcm9wX2Nv dW50Ogl0ZW1wIGNvdW50IG9mIGRyb3BwZWQgcGFja2V0cyBpbiBkZXF1ZXVlKCkKKyAqIEBkcm9w X2xlbjoJYnl0ZXMgb2YgZHJvcHBlZCBwYWNrZXRzIGluIGRlcXVldWUoKQogICogZWNuX21hcms6 CW51bWJlciBvZiBwYWNrZXRzIHdlIEVDTiBtYXJrZWQgaW5zdGVhZCBvZiBkcm9wcGluZwogICov CiBzdHJ1Y3QgY29kZWxfc3RhdHMgewogCXUzMgkJbWF4cGFja2V0OwogCXUzMgkJZHJvcF9jb3Vu dDsKKwl1MzIJCWRyb3BfbGVuOwogCXUzMgkJZWNuX21hcms7CiB9OwogCkBAIC0zMDEsNiArMzAz LDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpjb2RlbF9kZXF1ZXVlKHN0cnVjdCBRZGlzYyAq c2NoLAogCQkJCQkJCQkgIHZhcnMtPnJlY19pbnZfc3FydCk7CiAJCQkJCWdvdG8gZW5kOwogCQkJ CX0KKwkJCQlzdGF0cy0+ZHJvcF9sZW4gKz0gcWRpc2NfcGt0X2xlbihza2IpOwogCQkJCXFkaXNj X2Ryb3Aoc2tiLCBzY2gpOwogCQkJCXN0YXRzLT5kcm9wX2NvdW50Kys7CiAJCQkJc2tiID0gZGVx dWV1ZV9mdW5jKHZhcnMsIHNjaCk7CkBAIC0zMjMsNiArMzI2LDcgQEAgc3RhdGljIHN0cnVjdCBz a19idWZmICpjb2RlbF9kZXF1ZXVlKHN0cnVjdCBRZGlzYyAqc2NoLAogCQlpZiAocGFyYW1zLT5l Y24gJiYgSU5FVF9FQ05fc2V0X2NlKHNrYikpIHsKIAkJCXN0YXRzLT5lY25fbWFyaysrOwogCQl9 IGVsc2UgeworCQkJc3RhdHMtPmRyb3BfbGVuICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJCXFk aXNjX2Ryb3Aoc2tiLCBzY2gpOwogCQkJc3RhdHMtPmRyb3BfY291bnQrKzsKIApkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaCBiL2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmgK aW5kZXggMWZiOGE1Yi4uNTMwYmRjYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2NoX2dlbmVy aWMuaAorKysgYi9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oCkBAIC0zOTUsNyArMzk1LDggQEAg c3RydWN0IFFkaXNjICpkZXZfZ3JhZnRfcWRpc2Moc3RydWN0IG5ldGRldl9xdWV1ZSAqZGV2X3F1 ZXVlLAogCQkJICAgICAgc3RydWN0IFFkaXNjICpxZGlzYyk7CiB2b2lkIHFkaXNjX3Jlc2V0KHN0 cnVjdCBRZGlzYyAqcWRpc2MpOwogdm9pZCBxZGlzY19kZXN0cm95KHN0cnVjdCBRZGlzYyAqcWRp c2MpOwotdm9pZCBxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc3RydWN0IFFkaXNjICpxZGlzYywg dW5zaWduZWQgaW50IG4pOwordm9pZCBxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHN0cnVjdCBR ZGlzYyAqcWRpc2MsIHVuc2lnbmVkIGludCBuLAorCQkJICAgICAgIHVuc2lnbmVkIGludCBsZW4p Owogc3RydWN0IFFkaXNjICpxZGlzY19hbGxvYyhzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpkZXZfcXVl dWUsCiAJCQkgIGNvbnN0IHN0cnVjdCBRZGlzY19vcHMgKm9wcyk7CiBzdHJ1Y3QgUWRpc2MgKnFk aXNjX2NyZWF0ZV9kZmx0KHN0cnVjdCBuZXRkZXZfcXVldWUgKmRldl9xdWV1ZSwKQEAgLTcwMCw3 ICs3MDEsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBRZGlzYyAqcWRpc2NfcmVwbGFjZShzdHJ1 Y3QgUWRpc2MgKnNjaCwgc3RydWN0IFFkaXNjICpuZXcsCiAJb2xkID0gKnBvbGQ7CiAJKnBvbGQg PSBuZXc7CiAJaWYgKG9sZCAhPSBOVUxMKSB7Ci0JCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihv bGQsIG9sZC0+cS5xbGVuKTsKKwkJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhvbGQsIG9sZC0+ cS5xbGVuLCBvbGQtPnFzdGF0cy5iYWNrbG9nKTsKIAkJcWRpc2NfcmVzZXQob2xkKTsKIAl9CiAJ c2NoX3RyZWVfdW5sb2NrKHNjaCk7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2FwaS5jIGIv bmV0L3NjaGVkL3NjaF9hcGkuYwppbmRleCA2OGM1OTlhLi5jMjQ0YTQ5IDEwMDY0NAotLS0gYS9u ZXQvc2NoZWQvc2NoX2FwaS5jCisrKyBiL25ldC9zY2hlZC9zY2hfYXBpLmMKQEAgLTc0NCwxNCAr NzQ0LDE1IEBAIHN0YXRpYyB1MzIgcWRpc2NfYWxsb2NfaGFuZGxlKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKHN0 cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBpbnQgbikKK3ZvaWQgcWRpc2NfdHJlZV9yZWR1Y2Vf YmFja2xvZyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgaW50IG4sCisJCQkgICAgICAgdW5z aWduZWQgaW50IGxlbikKIHsKIAljb25zdCBzdHJ1Y3QgUWRpc2NfY2xhc3Nfb3BzICpjb3BzOwog CXVuc2lnbmVkIGxvbmcgY2w7CiAJdTMyIHBhcmVudGlkOwogCWludCBkcm9wczsKIAotCWlmIChu ID09IDApCisJaWYgKG4gPT0gMCAmJiBsZW4gPT0gMCkKIAkJcmV0dXJuOwogCWRyb3BzID0gbWF4 X3QoaW50LCBuLCAwKTsKIAlyY3VfcmVhZF9sb2NrKCk7CkBAIC03NzQsMTEgKzc3NSwxMiBAQCB2 b2lkIHFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQg aW50IG4pCiAJCQljb3BzLT5wdXQoc2NoLCBjbCk7CiAJCX0KIAkJc2NoLT5xLnFsZW4gLT0gbjsK KwkJc2NoLT5xc3RhdHMuYmFja2xvZyAtPSBsZW47CiAJCV9fcWRpc2NfcXN0YXRzX2Ryb3Aoc2No LCBkcm9wcyk7CiAJfQogCXJjdV9yZWFkX3VubG9jaygpOwogfQotRVhQT1JUX1NZTUJPTChxZGlz Y190cmVlX2RlY3JlYXNlX3FsZW4pOworRVhQT1JUX1NZTUJPTChxZGlzY190cmVlX3JlZHVjZV9i YWNrbG9nKTsKIAogc3RhdGljIHZvaWQgbm90aWZ5X2FuZF9kZXN0cm95KHN0cnVjdCBuZXQgKm5l dCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCSAgICAgICBzdHJ1Y3Qgbmxtc2doZHIgKm4sIHUz MiBjbGlkLApkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9jYnEuYyBiL25ldC9zY2hlZC9zY2hf Y2JxLmMKaW5kZXggMTdhZDc5ZS4uZjZlN2E2MCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9j YnEuYworKysgYi9uZXQvc2NoZWQvc2NoX2NicS5jCkBAIC0xOTA5LDcgKzE5MDksNyBAQCBzdGF0 aWMgaW50IGNicV9kZWxldGUoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgYXJnKQog ewogCXN0cnVjdCBjYnFfc2NoZWRfZGF0YSAqcSA9IHFkaXNjX3ByaXYoc2NoKTsKIAlzdHJ1Y3Qg Y2JxX2NsYXNzICpjbCA9IChzdHJ1Y3QgY2JxX2NsYXNzICopYXJnOwotCXVuc2lnbmVkIGludCBx bGVuOworCXVuc2lnbmVkIGludCBxbGVuLCBiYWNrbG9nOwogCiAJaWYgKGNsLT5maWx0ZXJzIHx8 IGNsLT5jaGlsZHJlbiB8fCBjbCA9PSAmcS0+bGluaykKIAkJcmV0dXJuIC1FQlVTWTsKQEAgLTE5 MTcsOCArMTkxNyw5IEBAIHN0YXRpYyBpbnQgY2JxX2RlbGV0ZShzdHJ1Y3QgUWRpc2MgKnNjaCwg dW5zaWduZWQgbG9uZyBhcmcpCiAJc2NoX3RyZWVfbG9jayhzY2gpOwogCiAJcWxlbiA9IGNsLT5x LT5xLnFsZW47CisJYmFja2xvZyA9IGNsLT5xLT5xc3RhdHMuYmFja2xvZzsKIAlxZGlzY19yZXNl dChjbC0+cSk7Ci0JcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKGNsLT5xLCBxbGVuKTsKKwlxZGlz Y190cmVlX3JlZHVjZV9iYWNrbG9nKGNsLT5xLCBxbGVuLCBiYWNrbG9nKTsKIAogCWlmIChjbC0+ bmV4dF9hbGl2ZSkKIAkJY2JxX2RlYWN0aXZhdGVfY2xhc3MoY2wpOwpkaWZmIC0tZ2l0IGEvbmV0 L3NjaGVkL3NjaF9jaG9rZS5jIGIvbmV0L3NjaGVkL3NjaF9jaG9rZS5jCmluZGV4IGMwMDllYjku LjNmNjQzN2QgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY2hva2UuYworKysgYi9uZXQvc2No ZWQvc2NoX2Nob2tlLmMKQEAgLTEyOCw4ICsxMjgsOCBAQCBzdGF0aWMgdm9pZCBjaG9rZV9kcm9w X2J5X2lkeChzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgaW50IGlkeCkKIAkJY2hva2VfemFw X3RhaWxfaG9sZXMocSk7CiAKIAlxZGlzY19xc3RhdHNfYmFja2xvZ19kZWMoc2NoLCBza2IpOwor CXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCAxLCBxZGlzY19wa3RfbGVuKHNrYikpOwog CXFkaXNjX2Ryb3Aoc2tiLCBzY2gpOwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihzY2gsIDEp OwogCS0tc2NoLT5xLnFsZW47CiB9CiAKQEAgLTQ0OSw2ICs0NDksNyBAQCBzdGF0aWMgaW50IGNo b2tlX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCQlvbGQg PSBxLT50YWI7CiAJCWlmIChvbGQpIHsKIAkJCXVuc2lnbmVkIGludCBvcWxlbiA9IHNjaC0+cS5x bGVuLCB0YWlsID0gMDsKKwkJCXVuc2lnbmVkIGRyb3BwZWQgPSAwOwogCiAJCQl3aGlsZSAocS0+ aGVhZCAhPSBxLT50YWlsKSB7CiAJCQkJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IHEtPnRhYltxLT5o ZWFkXTsKQEAgLTQ2MCwxMSArNDYxLDEyIEBAIHN0YXRpYyBpbnQgY2hva2VfY2hhbmdlKHN0cnVj dCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAJCQkJCW50YWJbdGFpbCsrXSA9IHNr YjsKIAkJCQkJY29udGludWU7CiAJCQkJfQorCQkJCWRyb3BwZWQgKz0gcWRpc2NfcGt0X2xlbihz a2IpOwogCQkJCXFkaXNjX3FzdGF0c19iYWNrbG9nX2RlYyhzY2gsIHNrYik7CiAJCQkJLS1zY2gt PnEucWxlbjsKIAkJCQlxZGlzY19kcm9wKHNrYiwgc2NoKTsKIAkJCX0KLQkJCXFkaXNjX3RyZWVf ZGVjcmVhc2VfcWxlbihzY2gsIG9xbGVuIC0gc2NoLT5xLnFsZW4pOworCQkJcWRpc2NfdHJlZV9y ZWR1Y2VfYmFja2xvZyhzY2gsIG9xbGVuIC0gc2NoLT5xLnFsZW4sIGRyb3BwZWQpOwogCQkJcS0+ aGVhZCA9IDA7CiAJCQlxLT50YWlsID0gdGFpbDsKIAkJfQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVk L3NjaF9jb2RlbC5jIGIvbmV0L3NjaGVkL3NjaF9jb2RlbC5jCmluZGV4IDdhMGJkYjEuLjlhOTA2 OGQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY29kZWwuYworKysgYi9uZXQvc2NoZWQvc2No X2NvZGVsLmMKQEAgLTc5LDEyICs3OSwxMyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmNvZGVs X3FkaXNjX2RlcXVldWUoc3RydWN0IFFkaXNjICpzY2gpCiAKIAlza2IgPSBjb2RlbF9kZXF1ZXVl KHNjaCwgJnEtPnBhcmFtcywgJnEtPnZhcnMsICZxLT5zdGF0cywgZGVxdWV1ZSk7CiAKLQkvKiBX ZSBjYW50IGNhbGwgcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKCkgaWYgb3VyIHFsZW4gaXMgMCwK KwkvKiBXZSBjYW50IGNhbGwgcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZygpIGlmIG91ciBxbGVu IGlzIDAsCiAJICogb3IgSFRCIGNyYXNoZXMuIERlZmVyIGl0IGZvciBuZXh0IHJvdW5kLgogCSAq LwogCWlmIChxLT5zdGF0cy5kcm9wX2NvdW50ICYmIHNjaC0+cS5xbGVuKSB7Ci0JCXFkaXNjX3Ry ZWVfZGVjcmVhc2VfcWxlbihzY2gsIHEtPnN0YXRzLmRyb3BfY291bnQpOworCQlxZGlzY190cmVl X3JlZHVjZV9iYWNrbG9nKHNjaCwgcS0+c3RhdHMuZHJvcF9jb3VudCwgcS0+c3RhdHMuZHJvcF9s ZW4pOwogCQlxLT5zdGF0cy5kcm9wX2NvdW50ID0gMDsKKwkJcS0+c3RhdHMuZHJvcF9sZW4gPSAw OwogCX0KIAlpZiAoc2tiKQogCQlxZGlzY19ic3RhdHNfdXBkYXRlKHNjaCwgc2tiKTsKQEAgLTEx NSw3ICsxMTYsNyBAQCBzdGF0aWMgaW50IGNvZGVsX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwg c3RydWN0IG5sYXR0ciAqb3B0KQogewogCXN0cnVjdCBjb2RlbF9zY2hlZF9kYXRhICpxID0gcWRp c2NfcHJpdihzY2gpOwogCXN0cnVjdCBubGF0dHIgKnRiW1RDQV9DT0RFTF9NQVggKyAxXTsKLQl1 bnNpZ25lZCBpbnQgcWxlbjsKKwl1bnNpZ25lZCBpbnQgcWxlbiwgZHJvcHBlZCA9IDA7CiAJaW50 IGVycjsKIAogCWlmICghb3B0KQpAQCAtMTQ5LDEwICsxNTAsMTEgQEAgc3RhdGljIGludCBjb2Rl bF9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAl3aGlsZSAo c2NoLT5xLnFsZW4gPiBzY2gtPmxpbWl0KSB7CiAJCXN0cnVjdCBza19idWZmICpza2IgPSBfX3Nr Yl9kZXF1ZXVlKCZzY2gtPnEpOwogCisJCWRyb3BwZWQgKz0gcWRpc2NfcGt0X2xlbihza2IpOwog CQlxZGlzY19xc3RhdHNfYmFja2xvZ19kZWMoc2NoLCBza2IpOwogCQlxZGlzY19kcm9wKHNrYiwg c2NoKTsKIAl9Ci0JcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKHNjaCwgcWxlbiAtIHNjaC0+cS5x bGVuKTsKKwlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgcWxlbiAtIHNjaC0+cS5xbGVu LCBkcm9wcGVkKTsKIAogCXNjaF90cmVlX3VubG9jayhzY2gpOwogCXJldHVybiAwOwpkaWZmIC0t Z2l0IGEvbmV0L3NjaGVkL3NjaF9kcnIuYyBiL25ldC9zY2hlZC9zY2hfZHJyLmMKaW5kZXggZDRi M2Y4Mi4uZTU5OTgwMyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9kcnIuYworKysgYi9uZXQv c2NoZWQvc2NoX2Ryci5jCkBAIC01Myw5ICs1MywxMCBAQCBzdGF0aWMgc3RydWN0IGRycl9jbGFz cyAqZHJyX2ZpbmRfY2xhc3Moc3RydWN0IFFkaXNjICpzY2gsIHUzMiBjbGFzc2lkKQogc3RhdGlj IHZvaWQgZHJyX3B1cmdlX3F1ZXVlKHN0cnVjdCBkcnJfY2xhc3MgKmNsKQogewogCXVuc2lnbmVk IGludCBsZW4gPSBjbC0+cWRpc2MtPnEucWxlbjsKKwl1bnNpZ25lZCBpbnQgYmFja2xvZyA9IGNs LT5xZGlzYy0+cXN0YXRzLmJhY2tsb2c7CiAKIAlxZGlzY19yZXNldChjbC0+cWRpc2MpOwotCXFk aXNjX3RyZWVfZGVjcmVhc2VfcWxlbihjbC0+cWRpc2MsIGxlbik7CisJcWRpc2NfdHJlZV9yZWR1 Y2VfYmFja2xvZyhjbC0+cWRpc2MsIGxlbiwgYmFja2xvZyk7CiB9CiAKIHN0YXRpYyBjb25zdCBz dHJ1Y3QgbmxhX3BvbGljeSBkcnJfcG9saWN5W1RDQV9EUlJfTUFYICsgMV0gPSB7CmRpZmYgLS1n aXQgYS9uZXQvc2NoZWQvc2NoX2ZxLmMgYi9uZXQvc2NoZWQvc2NoX2ZxLmMKaW5kZXggZjM3Nzcw Mi4uNDgxNjc3OCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9mcS5jCisrKyBiL25ldC9zY2hl ZC9zY2hfZnEuYwpAQCAtNjU5LDYgKzY1OSw3IEBAIHN0YXRpYyBpbnQgZnFfY2hhbmdlKHN0cnVj dCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAJc3RydWN0IGZxX3NjaGVkX2RhdGEg KnEgPSBxZGlzY19wcml2KHNjaCk7CiAJc3RydWN0IG5sYXR0ciAqdGJbVENBX0ZRX01BWCArIDFd OwogCWludCBlcnIsIGRyb3BfY291bnQgPSAwOworCXVuc2lnbmVkIGRyb3BfbGVuID0gMDsKIAl1 MzIgZnFfbG9nOwogCiAJaWYgKCFvcHQpCkBAIC03MzMsMTAgKzczNCwxMSBAQCBzdGF0aWMgaW50 IGZxX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCiAJCWlm ICghc2tiKQogCQkJYnJlYWs7CisJCWRyb3BfbGVuICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJ a2ZyZWVfc2tiKHNrYik7CiAJCWRyb3BfY291bnQrKzsKIAl9Ci0JcWRpc2NfdHJlZV9kZWNyZWFz ZV9xbGVuKHNjaCwgZHJvcF9jb3VudCk7CisJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhzY2gs IGRyb3BfY291bnQsIGRyb3BfbGVuKTsKIAogCXNjaF90cmVlX3VubG9jayhzY2gpOwogCXJldHVy biBlcnI7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMgYi9uZXQvc2NoZWQv c2NoX2ZxX2NvZGVsLmMKaW5kZXggOTI5MTU5OC4uOTY5NzFjNyAxMDA2NDQKLS0tIGEvbmV0L3Nj aGVkL3NjaF9mcV9jb2RlbC5jCisrKyBiL25ldC9zY2hlZC9zY2hfZnFfY29kZWwuYwpAQCAtMTcz LDcgKzE3Myw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZnFfY29kZWxfZHJvcChzdHJ1Y3QgUWRp c2MgKnNjaCkKIHN0YXRpYyBpbnQgZnFfY29kZWxfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIHsKIAlzdHJ1Y3QgZnFfY29kZWxfc2NoZWRfZGF0YSAqcSA9 IHFkaXNjX3ByaXYoc2NoKTsKLQl1bnNpZ25lZCBpbnQgaWR4OworCXVuc2lnbmVkIGludCBpZHgs IHByZXZfYmFja2xvZzsKIAlzdHJ1Y3QgZnFfY29kZWxfZmxvdyAqZmxvdzsKIAlpbnQgdW5pbml0 aWFsaXplZF92YXIocmV0KTsKIApAQCAtMjAxLDYgKzIwMSw3IEBAIHN0YXRpYyBpbnQgZnFfY29k ZWxfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAlpZiAo KytzY2gtPnEucWxlbiA8PSBzY2gtPmxpbWl0KQogCQlyZXR1cm4gTkVUX1hNSVRfU1VDQ0VTUzsK IAorCXByZXZfYmFja2xvZyA9IHNjaC0+cXN0YXRzLmJhY2tsb2c7CiAJcS0+ZHJvcF9vdmVybGlt aXQrKzsKIAkvKiBSZXR1cm4gQ29uZ2VzdGlvbiBOb3RpZmljYXRpb24gb25seSBpZiB3ZSBkcm9w cGVkIGEgcGFja2V0CiAJICogZnJvbSB0aGlzIGZsb3cuCkBAIC0yMDksNyArMjEwLDcgQEAgc3Rh dGljIGludCBmcV9jb2RlbF9lbnF1ZXVlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBRZGlz YyAqc2NoKQogCQlyZXR1cm4gTkVUX1hNSVRfQ047CiAKIAkvKiBBcyB3ZSBkcm9wcGVkIGEgcGFj a2V0LCBiZXR0ZXIgbGV0IHVwcGVyIHN0YWNrIGtub3cgdGhpcyAqLwotCXFkaXNjX3RyZWVfZGVj cmVhc2VfcWxlbihzY2gsIDEpOworCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCAxLCBw cmV2X2JhY2tsb2cgLSBzY2gtPnFzdGF0cy5iYWNrbG9nKTsKIAlyZXR1cm4gTkVUX1hNSVRfU1VD Q0VTUzsKIH0KIApAQCAtMjM5LDYgKzI0MCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZnFf Y29kZWxfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCkKIAlzdHJ1Y3QgZnFfY29kZWxfZmxvdyAq ZmxvdzsKIAlzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkOwogCXUzMiBwcmV2X2Ryb3BfY291bnQsIHBy ZXZfZWNuX21hcms7CisJdW5zaWduZWQgaW50IHByZXZfYmFja2xvZzsKIAogYmVnaW46CiAJaGVh ZCA9ICZxLT5uZXdfZmxvd3M7CkBAIC0yNTcsNiArMjU5LDcgQEAgYmVnaW46CiAKIAlwcmV2X2Ry b3BfY291bnQgPSBxLT5jc3RhdHMuZHJvcF9jb3VudDsKIAlwcmV2X2Vjbl9tYXJrID0gcS0+Y3N0 YXRzLmVjbl9tYXJrOworCXByZXZfYmFja2xvZyA9IHNjaC0+cXN0YXRzLmJhY2tsb2c7CiAKIAlz a2IgPSBjb2RlbF9kZXF1ZXVlKHNjaCwgJnEtPmNwYXJhbXMsICZmbG93LT5jdmFycywgJnEtPmNz dGF0cywKIAkJCSAgICBkZXF1ZXVlKTsKQEAgLTI3NCwxMiArMjc3LDE0IEBAIGJlZ2luOgogCX0K IAlxZGlzY19ic3RhdHNfdXBkYXRlKHNjaCwgc2tiKTsKIAlmbG93LT5kZWZpY2l0IC09IHFkaXNj X3BrdF9sZW4oc2tiKTsKLQkvKiBXZSBjYW50IGNhbGwgcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVu KCkgaWYgb3VyIHFsZW4gaXMgMCwKKwkvKiBXZSBjYW50IGNhbGwgcWRpc2NfdHJlZV9yZWR1Y2Vf YmFja2xvZygpIGlmIG91ciBxbGVuIGlzIDAsCiAJICogb3IgSFRCIGNyYXNoZXMuIERlZmVyIGl0 IGZvciBuZXh0IHJvdW5kLgogCSAqLwogCWlmIChxLT5jc3RhdHMuZHJvcF9jb3VudCAmJiBzY2gt PnEucWxlbikgewotCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCBxLT5jc3RhdHMuZHJv cF9jb3VudCk7CisJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCBxLT5jc3RhdHMuZHJv cF9jb3VudCwKKwkJCQkJICBxLT5jc3RhdHMuZHJvcF9sZW4pOwogCQlxLT5jc3RhdHMuZHJvcF9j b3VudCA9IDA7CisJCXEtPmNzdGF0cy5kcm9wX2xlbiA9IDA7CiAJfQogCXJldHVybiBza2I7CiB9 CkBAIC0zNDcsMTEgKzM1MiwxMyBAQCBzdGF0aWMgaW50IGZxX2NvZGVsX2NoYW5nZShzdHJ1Y3Qg UWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCXdoaWxlIChzY2gtPnEucWxlbiA+IHNj aC0+bGltaXQpIHsKIAkJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IGZxX2NvZGVsX2RlcXVldWUoc2No KTsKIAorCQlxLT5jc3RhdHMuZHJvcF9sZW4gKz0gcWRpc2NfcGt0X2xlbihza2IpOwogCQlrZnJl ZV9za2Ioc2tiKTsKIAkJcS0+Y3N0YXRzLmRyb3BfY291bnQrKzsKIAl9Ci0JcWRpc2NfdHJlZV9k ZWNyZWFzZV9xbGVuKHNjaCwgcS0+Y3N0YXRzLmRyb3BfY291bnQpOworCXFkaXNjX3RyZWVfcmVk dWNlX2JhY2tsb2coc2NoLCBxLT5jc3RhdHMuZHJvcF9jb3VudCwgcS0+Y3N0YXRzLmRyb3BfbGVu KTsKIAlxLT5jc3RhdHMuZHJvcF9jb3VudCA9IDA7CisJcS0+Y3N0YXRzLmRyb3BfbGVuID0gMDsK IAogCXNjaF90cmVlX3VubG9jayhzY2gpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbmV0L3Nj aGVkL3NjaF9oZnNjLmMgYi9uZXQvc2NoZWQvc2NoX2hmc2MuYwppbmRleCAxMzRmN2QyLi5kM2Uy MWRhIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2hmc2MuYworKysgYi9uZXQvc2NoZWQvc2No X2hmc2MuYwpAQCAtODk1LDkgKzg5NSwxMCBAQCBzdGF0aWMgdm9pZAogaGZzY19wdXJnZV9xdWV1 ZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IGhmc2NfY2xhc3MgKmNsKQogewogCXVuc2lnbmVk IGludCBsZW4gPSBjbC0+cWRpc2MtPnEucWxlbjsKKwl1bnNpZ25lZCBpbnQgYmFja2xvZyA9IGNs LT5xZGlzYy0+cXN0YXRzLmJhY2tsb2c7CiAKIAlxZGlzY19yZXNldChjbC0+cWRpc2MpOwotCXFk aXNjX3RyZWVfZGVjcmVhc2VfcWxlbihjbC0+cWRpc2MsIGxlbik7CisJcWRpc2NfdHJlZV9yZWR1 Y2VfYmFja2xvZyhjbC0+cWRpc2MsIGxlbiwgYmFja2xvZyk7CiB9CiAKIHN0YXRpYyB2b2lkCmRp ZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2hoZi5jIGIvbmV0L3NjaGVkL3NjaF9oaGYuYwppbmRl eCAxNWQzYWFiLi43OTJjNmYzIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2hoZi5jCisrKyBi L25ldC9zY2hlZC9zY2hfaGhmLmMKQEAgLTM5MCw2ICszOTAsNyBAQCBzdGF0aWMgaW50IGhoZl9l bnF1ZXVlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoKQogCXN0cnVjdCBo aGZfc2NoZWRfZGF0YSAqcSA9IHFkaXNjX3ByaXYoc2NoKTsKIAllbnVtIHdkcnJfYnVja2V0X2lk eCBpZHg7CiAJc3RydWN0IHdkcnJfYnVja2V0ICpidWNrZXQ7CisJdW5zaWduZWQgaW50IHByZXZf YmFja2xvZzsKIAogCWlkeCA9IGhoZl9jbGFzc2lmeShza2IsIHNjaCk7CiAKQEAgLTQxNyw2ICs0 MTgsNyBAQCBzdGF0aWMgaW50IGhoZl9lbnF1ZXVlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVj dCBRZGlzYyAqc2NoKQogCWlmICgrK3NjaC0+cS5xbGVuIDw9IHNjaC0+bGltaXQpCiAJCXJldHVy biBORVRfWE1JVF9TVUNDRVNTOwogCisJcHJldl9iYWNrbG9nID0gc2NoLT5xc3RhdHMuYmFja2xv ZzsKIAlxLT5kcm9wX292ZXJsaW1pdCsrOwogCS8qIFJldHVybiBDb25nZXN0aW9uIE5vdGlmaWNh dGlvbiBvbmx5IGlmIHdlIGRyb3BwZWQgYSBwYWNrZXQgZnJvbSB0aGlzCiAJICogYnVja2V0LgpA QCAtNDI1LDcgKzQyNyw3IEBAIHN0YXRpYyBpbnQgaGhmX2VucXVldWUoc3RydWN0IHNrX2J1ZmYg KnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJCXJldHVybiBORVRfWE1JVF9DTjsKIAogCS8qIEFz IHdlIGRyb3BwZWQgYSBwYWNrZXQsIGJldHRlciBsZXQgdXBwZXIgc3RhY2sga25vdyB0aGlzLiAq LwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihzY2gsIDEpOworCXFkaXNjX3RyZWVfcmVkdWNl X2JhY2tsb2coc2NoLCAxLCBwcmV2X2JhY2tsb2cgLSBzY2gtPnFzdGF0cy5iYWNrbG9nKTsKIAly ZXR1cm4gTkVUX1hNSVRfU1VDQ0VTUzsKIH0KIApAQCAtNTM1LDcgKzUzNyw3IEBAIHN0YXRpYyBp bnQgaGhmX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogewog CXN0cnVjdCBoaGZfc2NoZWRfZGF0YSAqcSA9IHFkaXNjX3ByaXYoc2NoKTsKIAlzdHJ1Y3Qgbmxh dHRyICp0YltUQ0FfSEhGX01BWCArIDFdOwotCXVuc2lnbmVkIGludCBxbGVuOworCXVuc2lnbmVk IGludCBxbGVuLCBwcmV2X2JhY2tsb2c7CiAJaW50IGVycjsKIAl1NjQgbm9uX2hoX3F1YW50dW07 CiAJdTMyIG5ld19xdWFudHVtID0gcS0+cXVhbnR1bTsKQEAgLTU4NSwxMiArNTg3LDE0IEBAIHN0 YXRpYyBpbnQgaGhmX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0 KQogCX0KIAogCXFsZW4gPSBzY2gtPnEucWxlbjsKKwlwcmV2X2JhY2tsb2cgPSBzY2gtPnFzdGF0 cy5iYWNrbG9nOwogCXdoaWxlIChzY2gtPnEucWxlbiA+IHNjaC0+bGltaXQpIHsKIAkJc3RydWN0 IHNrX2J1ZmYgKnNrYiA9IGhoZl9kZXF1ZXVlKHNjaCk7CiAKIAkJa2ZyZWVfc2tiKHNrYik7CiAJ fQotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihzY2gsIHFsZW4gLSBzY2gtPnEucWxlbik7CisJ cWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhzY2gsIHFsZW4gLSBzY2gtPnEucWxlbiwKKwkJCQkg IHByZXZfYmFja2xvZyAtIHNjaC0+cXN0YXRzLmJhY2tsb2cpOwogCiAJc2NoX3RyZWVfdW5sb2Nr KHNjaCk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2h0Yi5jIGIvbmV0 L3NjaGVkL3NjaF9odGIuYwppbmRleCA1MjBmZmU5Li42YjExOGIxIDEwMDY0NAotLS0gYS9uZXQv c2NoZWQvc2NoX2h0Yi5jCisrKyBiL25ldC9zY2hlZC9zY2hfaHRiLmMKQEAgLTEyNjcsNyArMTI2 Nyw2IEBAIHN0YXRpYyBpbnQgaHRiX2RlbGV0ZShzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQg bG9uZyBhcmcpCiB7CiAJc3RydWN0IGh0Yl9zY2hlZCAqcSA9IHFkaXNjX3ByaXYoc2NoKTsKIAlz dHJ1Y3QgaHRiX2NsYXNzICpjbCA9IChzdHJ1Y3QgaHRiX2NsYXNzICopYXJnOwotCXVuc2lnbmVk IGludCBxbGVuOwogCXN0cnVjdCBRZGlzYyAqbmV3X3EgPSBOVUxMOwogCWludCBsYXN0X2NoaWxk ID0gMDsKIApAQCAtMTI4Nyw5ICsxMjg2LDExIEBAIHN0YXRpYyBpbnQgaHRiX2RlbGV0ZShzdHJ1 Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJc2NoX3RyZWVfbG9jayhzY2gpOwog CiAJaWYgKCFjbC0+bGV2ZWwpIHsKLQkJcWxlbiA9IGNsLT51bi5sZWFmLnEtPnEucWxlbjsKKwkJ dW5zaWduZWQgaW50IHFsZW4gPSBjbC0+dW4ubGVhZi5xLT5xLnFsZW47CisJCXVuc2lnbmVkIGlu dCBiYWNrbG9nID0gY2wtPnVuLmxlYWYucS0+cXN0YXRzLmJhY2tsb2c7CisKIAkJcWRpc2NfcmVz ZXQoY2wtPnVuLmxlYWYucSk7Ci0JCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihjbC0+dW4ubGVh Zi5xLCBxbGVuKTsKKwkJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhjbC0+dW4ubGVhZi5xLCBx bGVuLCBiYWNrbG9nKTsKIAl9CiAKIAkvKiBkZWxldGUgZnJvbSBoYXNoIGFuZCBhY3RpdmU7IHJl bWFpbmRlciBpbiBkZXN0cm95X2NsYXNzICovCkBAIC0xNDIzLDEwICsxNDI0LDExIEBAIHN0YXRp YyBpbnQgaHRiX2NoYW5nZV9jbGFzcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdTMyIGNsYXNzaWQsCiAJ CXNjaF90cmVlX2xvY2soc2NoKTsKIAkJaWYgKHBhcmVudCAmJiAhcGFyZW50LT5sZXZlbCkgewog CQkJdW5zaWduZWQgaW50IHFsZW4gPSBwYXJlbnQtPnVuLmxlYWYucS0+cS5xbGVuOworCQkJdW5z aWduZWQgaW50IGJhY2tsb2cgPSBwYXJlbnQtPnVuLmxlYWYucS0+cXN0YXRzLmJhY2tsb2c7CiAK IAkJCS8qIHR1cm4gcGFyZW50IGludG8gaW5uZXIgbm9kZSAqLwogCQkJcWRpc2NfcmVzZXQocGFy ZW50LT51bi5sZWFmLnEpOwotCQkJcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKHBhcmVudC0+dW4u bGVhZi5xLCBxbGVuKTsKKwkJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2cocGFyZW50LT51bi5s ZWFmLnEsIHFsZW4sIGJhY2tsb2cpOwogCQkJcWRpc2NfZGVzdHJveShwYXJlbnQtPnVuLmxlYWYu cSk7CiAJCQlpZiAocGFyZW50LT5wcmlvX2FjdGl2aXR5KQogCQkJCWh0Yl9kZWFjdGl2YXRlKHEs IHBhcmVudCk7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX211bHRpcS5jIGIvbmV0L3NjaGVk L3NjaF9tdWx0aXEuYwppbmRleCBmMzZmZjgzLi4yMzQzN2Q2IDEwMDY0NAotLS0gYS9uZXQvc2No ZWQvc2NoX211bHRpcS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbXVsdGlxLmMKQEAgLTIxOCw3ICsy MTgsOCBAQCBzdGF0aWMgaW50IG11bHRpcV90dW5lKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3Qg bmxhdHRyICpvcHQpCiAJCWlmIChxLT5xdWV1ZXNbaV0gIT0gJm5vb3BfcWRpc2MpIHsKIAkJCXN0 cnVjdCBRZGlzYyAqY2hpbGQgPSBxLT5xdWV1ZXNbaV07CiAJCQlxLT5xdWV1ZXNbaV0gPSAmbm9v cF9xZGlzYzsKLQkJCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihjaGlsZCwgY2hpbGQtPnEucWxl bik7CisJCQlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKGNoaWxkLCBjaGlsZC0+cS5xbGVuLAor CQkJCQkJICBjaGlsZC0+cXN0YXRzLmJhY2tsb2cpOwogCQkJcWRpc2NfZGVzdHJveShjaGlsZCk7 CiAJCX0KIAl9CkBAIC0yMzgsOCArMjM5LDkgQEAgc3RhdGljIGludCBtdWx0aXFfdHVuZShzdHJ1 Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCQkJCXEtPnF1ZXVlc1tpXSA9IGNo aWxkOwogCiAJCQkJaWYgKG9sZCAhPSAmbm9vcF9xZGlzYykgewotCQkJCQlxZGlzY190cmVlX2Rl Y3JlYXNlX3FsZW4ob2xkLAotCQkJCQkJCQkgb2xkLT5xLnFsZW4pOworCQkJCQlxZGlzY190cmVl X3JlZHVjZV9iYWNrbG9nKG9sZCwKKwkJCQkJCQkJICBvbGQtPnEucWxlbiwKKwkJCQkJCQkJICBv bGQtPnFzdGF0cy5iYWNrbG9nKTsKIAkJCQkJcWRpc2NfZGVzdHJveShvbGQpOwogCQkJCX0KIAkJ CQlzY2hfdHJlZV91bmxvY2soc2NoKTsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfbmV0ZW0u YyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0uYwppbmRleCA4ZDU2MDE2Li5jYzAwMzI5IDEwMDY0NAot LS0gYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9uZXRlbS5jCkBA IC01OTgsNyArNTk4LDggQEAgZGVsaXZlcjoKIAkJCQlpZiAodW5saWtlbHkoZXJyICE9IE5FVF9Y TUlUX1NVQ0NFU1MpKSB7CiAJCQkJCWlmIChuZXRfeG1pdF9kcm9wX2NvdW50KGVycikpIHsKIAkJ CQkJCXFkaXNjX3FzdGF0c19kcm9wKHNjaCk7Ci0JCQkJCQlxZGlzY190cmVlX2RlY3JlYXNlX3Fs ZW4oc2NoLCAxKTsKKwkJCQkJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCAxLAorCQkJ CQkJCQkJICBxZGlzY19wa3RfbGVuKHNrYikpOwogCQkJCQl9CiAJCQkJfQogCQkJCWdvdG8gdGZp Zm9fZGVxdWV1ZTsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfcGllLmMgYi9uZXQvc2NoZWQv c2NoX3BpZS5jCmluZGV4IGI3ODNhNDQuLjcxYWUzYjkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9z Y2hfcGllLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9waWUuYwpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0 YXRpYyBpbnQgcGllX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0 KQogewogCXN0cnVjdCBwaWVfc2NoZWRfZGF0YSAqcSA9IHFkaXNjX3ByaXYoc2NoKTsKIAlzdHJ1 Y3QgbmxhdHRyICp0YltUQ0FfUElFX01BWCArIDFdOwotCXVuc2lnbmVkIGludCBxbGVuOworCXVu c2lnbmVkIGludCBxbGVuLCBkcm9wcGVkID0gMDsKIAlpbnQgZXJyOwogCiAJaWYgKCFvcHQpCkBA IC0yMzIsMTAgKzIzMiwxMSBAQCBzdGF0aWMgaW50IHBpZV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpz Y2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAl3aGlsZSAoc2NoLT5xLnFsZW4gPiBzY2gtPmxpbWl0 KSB7CiAJCXN0cnVjdCBza19idWZmICpza2IgPSBfX3NrYl9kZXF1ZXVlKCZzY2gtPnEpOwogCisJ CWRyb3BwZWQgKz0gcWRpc2NfcGt0X2xlbihza2IpOwogCQlxZGlzY19xc3RhdHNfYmFja2xvZ19k ZWMoc2NoLCBza2IpOwogCQlxZGlzY19kcm9wKHNrYiwgc2NoKTsKIAl9Ci0JcWRpc2NfdHJlZV9k ZWNyZWFzZV9xbGVuKHNjaCwgcWxlbiAtIHNjaC0+cS5xbGVuKTsKKwlxZGlzY190cmVlX3JlZHVj ZV9iYWNrbG9nKHNjaCwgcWxlbiAtIHNjaC0+cS5xbGVuLCBkcm9wcGVkKTsKIAogCXNjaF90cmVl X3VubG9jayhzY2gpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9wcmlv LmMgYi9uZXQvc2NoZWQvc2NoX3ByaW8uYwppbmRleCBhNjc3ZjU0M2EuLmU2NzFiMWEgMTAwNjQ0 Ci0tLSBhL25ldC9zY2hlZC9zY2hfcHJpby5jCisrKyBiL25ldC9zY2hlZC9zY2hfcHJpby5jCkBA IC0xOTEsNyArMTkxLDcgQEAgc3RhdGljIGludCBwcmlvX3R1bmUoc3RydWN0IFFkaXNjICpzY2gs IHN0cnVjdCBubGF0dHIgKm9wdCkKIAkJc3RydWN0IFFkaXNjICpjaGlsZCA9IHEtPnF1ZXVlc1tp XTsKIAkJcS0+cXVldWVzW2ldID0gJm5vb3BfcWRpc2M7CiAJCWlmIChjaGlsZCAhPSAmbm9vcF9x ZGlzYykgewotCQkJcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKGNoaWxkLCBjaGlsZC0+cS5xbGVu KTsKKwkJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coY2hpbGQsIGNoaWxkLT5xLnFsZW4sIGNo aWxkLT5xc3RhdHMuYmFja2xvZyk7CiAJCQlxZGlzY19kZXN0cm95KGNoaWxkKTsKIAkJfQogCX0K QEAgLTIxMCw4ICsyMTAsOSBAQCBzdGF0aWMgaW50IHByaW9fdHVuZShzdHJ1Y3QgUWRpc2MgKnNj aCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCQkJCXEtPnF1ZXVlc1tpXSA9IGNoaWxkOwogCiAJCQkJ aWYgKG9sZCAhPSAmbm9vcF9xZGlzYykgewotCQkJCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4o b2xkLAotCQkJCQkJCQkgb2xkLT5xLnFsZW4pOworCQkJCQlxZGlzY190cmVlX3JlZHVjZV9iYWNr bG9nKG9sZCwKKwkJCQkJCQkJICBvbGQtPnEucWxlbiwKKwkJCQkJCQkJICBvbGQtPnFzdGF0cy5i YWNrbG9nKTsKIAkJCQkJcWRpc2NfZGVzdHJveShvbGQpOwogCQkJCX0KIAkJCQlzY2hfdHJlZV91 bmxvY2soc2NoKTsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfcWZxLmMgYi9uZXQvc2NoZWQv c2NoX3FmcS5jCmluZGV4IDZmZWEzMjAuLmUyYjhmZDQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9z Y2hfcWZxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9xZnEuYwpAQCAtMjIxLDkgKzIyMSwxMCBAQCBz dGF0aWMgc3RydWN0IHFmcV9jbGFzcyAqcWZxX2ZpbmRfY2xhc3Moc3RydWN0IFFkaXNjICpzY2gs IHUzMiBjbGFzc2lkKQogc3RhdGljIHZvaWQgcWZxX3B1cmdlX3F1ZXVlKHN0cnVjdCBxZnFfY2xh c3MgKmNsKQogewogCXVuc2lnbmVkIGludCBsZW4gPSBjbC0+cWRpc2MtPnEucWxlbjsKKwl1bnNp Z25lZCBpbnQgYmFja2xvZyA9IGNsLT5xZGlzYy0+cXN0YXRzLmJhY2tsb2c7CiAKIAlxZGlzY19y ZXNldChjbC0+cWRpc2MpOwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihjbC0+cWRpc2MsIGxl bik7CisJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhjbC0+cWRpc2MsIGxlbiwgYmFja2xvZyk7 CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBxZnFfcG9saWN5W1RDQV9RRlFf TUFYICsgMV0gPSB7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX3JlZC5jIGIvbmV0L3NjaGVk L3NjaF9yZWQuYwppbmRleCBkNWFiY2VlLi44YzA1MDhjIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQv c2NoX3JlZC5jCisrKyBiL25ldC9zY2hlZC9zY2hfcmVkLmMKQEAgLTIxMCw3ICsyMTAsOCBAQCBz dGF0aWMgaW50IHJlZF9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9w dCkKIAlxLT5mbGFncyA9IGN0bC0+ZmxhZ3M7CiAJcS0+bGltaXQgPSBjdGwtPmxpbWl0OwogCWlm IChjaGlsZCkgewotCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4ocS0+cWRpc2MsIHEtPnFkaXNj LT5xLnFsZW4pOworCQlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHEtPnFkaXNjLCBxLT5xZGlz Yy0+cS5xbGVuLAorCQkJCQkgIHEtPnFkaXNjLT5xc3RhdHMuYmFja2xvZyk7CiAJCXFkaXNjX2Rl c3Ryb3kocS0+cWRpc2MpOwogCQlxLT5xZGlzYyA9IGNoaWxkOwogCX0KZGlmZiAtLWdpdCBhL25l dC9zY2hlZC9zY2hfc2ZiLmMgYi9uZXQvc2NoZWQvc2NoX3NmYi5jCmluZGV4IGZhN2YwYTMuLmUx ZDYzNGUgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfc2ZiLmMKKysrIGIvbmV0L3NjaGVkL3Nj aF9zZmIuYwpAQCAtNTE4LDcgKzUxOCw4IEBAIHN0YXRpYyBpbnQgc2ZiX2NoYW5nZShzdHJ1Y3Qg UWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCiAJc2NoX3RyZWVfbG9jayhzY2gpOwog Ci0JcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKHEtPnFkaXNjLCBxLT5xZGlzYy0+cS5xbGVuKTsK KwlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHEtPnFkaXNjLCBxLT5xZGlzYy0+cS5xbGVuLAor CQkJCSAgcS0+cWRpc2MtPnFzdGF0cy5iYWNrbG9nKTsKIAlxZGlzY19kZXN0cm95KHEtPnFkaXNj KTsKIAlxLT5xZGlzYyA9IGNoaWxkOwogCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX3NmcS5j IGIvbmV0L3NjaGVkL3NjaF9zZnEuYwppbmRleCBiODc3MTQwLi40NDE3ZmIyIDEwMDY0NAotLS0g YS9uZXQvc2NoZWQvc2NoX3NmcS5jCisrKyBiL25ldC9zY2hlZC9zY2hfc2ZxLmMKQEAgLTM2OSw3 ICszNjksNyBAQCBzdGF0aWMgaW50CiBzZnFfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgUWRpc2MgKnNjaCkKIHsKIAlzdHJ1Y3Qgc2ZxX3NjaGVkX2RhdGEgKnEgPSBxZGlzY19w cml2KHNjaCk7Ci0JdW5zaWduZWQgaW50IGhhc2g7CisJdW5zaWduZWQgaW50IGhhc2gsIGRyb3Bw ZWQ7CiAJc2ZxX2luZGV4IHgsIHFsZW47CiAJc3RydWN0IHNmcV9zbG90ICpzbG90OwogCWludCB1 bmluaXRpYWxpemVkX3ZhcihyZXQpOwpAQCAtNDg0LDcgKzQ4NCw3IEBAIGVucXVldWU6CiAJCXJl dHVybiBORVRfWE1JVF9TVUNDRVNTOwogCiAJcWxlbiA9IHNsb3QtPnFsZW47Ci0Jc2ZxX2Ryb3Ao c2NoKTsKKwlkcm9wcGVkID0gc2ZxX2Ryb3Aoc2NoKTsKIAkvKiBSZXR1cm4gQ29uZ2VzdGlvbiBO b3RpZmljYXRpb24gb25seSBpZiB3ZSBkcm9wcGVkIGEgcGFja2V0CiAJICogZnJvbSB0aGlzIGZs b3cuCiAJICovCkBAIC00OTIsNyArNDkyLDcgQEAgZW5xdWV1ZToKIAkJcmV0dXJuIE5FVF9YTUlU X0NOOwogCiAJLyogQXMgd2UgZHJvcHBlZCBhIHBhY2tldCwgYmV0dGVyIGxldCB1cHBlciBzdGFj ayBrbm93IHRoaXMgKi8KLQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCAxKTsKKwlxZGlz Y190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgMSwgZHJvcHBlZCk7CiAJcmV0dXJuIE5FVF9YTUlU X1NVQ0NFU1M7CiB9CiAKQEAgLTU2MCw2ICs1NjAsNyBAQCBzdGF0aWMgdm9pZCBzZnFfcmVoYXNo KHN0cnVjdCBRZGlzYyAqc2NoKQogCXN0cnVjdCBzZnFfc2xvdCAqc2xvdDsKIAlzdHJ1Y3Qgc2tf YnVmZl9oZWFkIGxpc3Q7CiAJaW50IGRyb3BwZWQgPSAwOworCXVuc2lnbmVkIGludCBkcm9wX2xl biA9IDA7CiAKIAlfX3NrYl9xdWV1ZV9oZWFkX2luaXQoJmxpc3QpOwogCkBAIC01ODgsNiArNTg5 LDcgQEAgc3RhdGljIHZvaWQgc2ZxX3JlaGFzaChzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJCWlmICh4 ID49IFNGUV9NQVhfRkxPV1MpIHsKIGRyb3A6CiAJCQkJcWRpc2NfcXN0YXRzX2JhY2tsb2dfZGVj KHNjaCwgc2tiKTsKKwkJCQlkcm9wX2xlbiArPSBxZGlzY19wa3RfbGVuKHNrYik7CiAJCQkJa2Zy ZWVfc2tiKHNrYik7CiAJCQkJZHJvcHBlZCsrOwogCQkJCWNvbnRpbnVlOwpAQCAtNjE3LDcgKzYx OSw3IEBAIGRyb3A6CiAJCX0KIAl9CiAJc2NoLT5xLnFsZW4gLT0gZHJvcHBlZDsKLQlxZGlzY190 cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCBkcm9wcGVkKTsKKwlxZGlzY190cmVlX3JlZHVjZV9iYWNr bG9nKHNjaCwgZHJvcHBlZCwgZHJvcF9sZW4pOwogfQogCiBzdGF0aWMgdm9pZCBzZnFfcGVydHVy YmF0aW9uKHVuc2lnbmVkIGxvbmcgYXJnKQpAQCAtNjQxLDcgKzY0Myw3IEBAIHN0YXRpYyBpbnQg c2ZxX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCXN0cnVj dCBzZnFfc2NoZWRfZGF0YSAqcSA9IHFkaXNjX3ByaXYoc2NoKTsKIAlzdHJ1Y3QgdGNfc2ZxX3Fv cHQgKmN0bCA9IG5sYV9kYXRhKG9wdCk7CiAJc3RydWN0IHRjX3NmcV9xb3B0X3YxICpjdGxfdjEg PSBOVUxMOwotCXVuc2lnbmVkIGludCBxbGVuOworCXVuc2lnbmVkIGludCBxbGVuLCBkcm9wcGVk ID0gMDsKIAlzdHJ1Y3QgcmVkX3Bhcm1zICpwID0gTlVMTDsKIAogCWlmIChvcHQtPm5sYV9sZW4g PCBubGFfYXR0cl9zaXplKHNpemVvZigqY3RsKSkpCkBAIC02OTAsOCArNjkyLDggQEAgc3RhdGlj IGludCBzZnFfY2hhbmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAK IAlxbGVuID0gc2NoLT5xLnFsZW47CiAJd2hpbGUgKHNjaC0+cS5xbGVuID4gcS0+bGltaXQpCi0J CXNmcV9kcm9wKHNjaCk7Ci0JcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKHNjaCwgcWxlbiAtIHNj aC0+cS5xbGVuKTsKKwkJZHJvcHBlZCArPSBzZnFfZHJvcChzY2gpOworCXFkaXNjX3RyZWVfcmVk dWNlX2JhY2tsb2coc2NoLCBxbGVuIC0gc2NoLT5xLnFsZW4sIGRyb3BwZWQpOwogCiAJZGVsX3Rp bWVyKCZxLT5wZXJ0dXJiX3RpbWVyKTsKIAlpZiAocS0+cGVydHVyYl9wZXJpb2QpIHsKZGlmZiAt LWdpdCBhL25ldC9zY2hlZC9zY2hfdGJmLmMgYi9uZXQvc2NoZWQvc2NoX3RiZi5jCmluZGV4IDU2 YTFhZWYuLmMyZmJkZTcgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfdGJmLmMKKysrIGIvbmV0 L3NjaGVkL3NjaF90YmYuYwpAQCAtMTYwLDYgKzE2MCw3IEBAIHN0YXRpYyBpbnQgdGJmX3NlZ21l bnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJc3RydWN0IHRiZl9z Y2hlZF9kYXRhICpxID0gcWRpc2NfcHJpdihzY2gpOwogCXN0cnVjdCBza19idWZmICpzZWdzLCAq bnNrYjsKIAluZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyA9IG5ldGlmX3NrYl9mZWF0dXJlcyhz a2IpOworCXVuc2lnbmVkIGludCBsZW4gPSAwLCBwcmV2X2xlbiA9IHFkaXNjX3BrdF9sZW4oc2ti KTsKIAlpbnQgcmV0LCBuYjsKIAogCXNlZ3MgPSBza2JfZ3NvX3NlZ21lbnQoc2tiLCBmZWF0dXJl cyAmIH5ORVRJRl9GX0dTT19NQVNLKTsKQEAgLTE3Miw2ICsxNzMsNyBAQCBzdGF0aWMgaW50IHRi Zl9zZWdtZW50KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoKQogCQluc2ti ID0gc2Vncy0+bmV4dDsKIAkJc2Vncy0+bmV4dCA9IE5VTEw7CiAJCXFkaXNjX3NrYl9jYihzZWdz KS0+cGt0X2xlbiA9IHNlZ3MtPmxlbjsKKwkJbGVuICs9IHNlZ3MtPmxlbjsKIAkJcmV0ID0gcWRp c2NfZW5xdWV1ZShzZWdzLCBxLT5xZGlzYyk7CiAJCWlmIChyZXQgIT0gTkVUX1hNSVRfU1VDQ0VT UykgewogCQkJaWYgKG5ldF94bWl0X2Ryb3BfY291bnQocmV0KSkKQEAgLTE4Myw3ICsxODUsNyBA QCBzdGF0aWMgaW50IHRiZl9zZWdtZW50KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBRZGlz YyAqc2NoKQogCX0KIAlzY2gtPnEucWxlbiArPSBuYjsKIAlpZiAobmIgPiAxKQotCQlxZGlzY190 cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCAxIC0gbmIpOworCQlxZGlzY190cmVlX3JlZHVjZV9iYWNr bG9nKHNjaCwgMSAtIG5iLCBwcmV2X2xlbiAtIGxlbik7CiAJY29uc3VtZV9za2Ioc2tiKTsKIAly ZXR1cm4gbmIgPiAwID8gTkVUX1hNSVRfU1VDQ0VTUyA6IE5FVF9YTUlUX0RST1A7CiB9CkBAIC0z OTksNyArNDAxLDggQEAgc3RhdGljIGludCB0YmZfY2hhbmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBz dHJ1Y3QgbmxhdHRyICpvcHQpCiAKIAlzY2hfdHJlZV9sb2NrKHNjaCk7CiAJaWYgKGNoaWxkKSB7 Ci0JCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihxLT5xZGlzYywgcS0+cWRpc2MtPnEucWxlbik7 CisJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2cocS0+cWRpc2MsIHEtPnFkaXNjLT5xLnFsZW4s CisJCQkJCSAgcS0+cWRpc2MtPnFzdGF0cy5iYWNrbG9nKTsKIAkJcWRpc2NfZGVzdHJveShxLT5x ZGlzYyk7CiAJCXEtPnFkaXNjID0gY2hpbGQ7CiAJfQotLSAKMi40LjEKCgpGcm9tIGQ5Y2Y2MzM1 Mjc1ZWI4NzhkNTQ0MGY1Yzg3MWI2ZjEwN2IwNmRjZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IFdBTkcgQ29uZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUaHUsIDI1 IEZlYiAyMDE2IDE0OjU1OjAyIC0wODAwClN1YmplY3Q6IFtQQVRDSCAxNi8yNl0gc2NoX2h0Yjog dXBkYXRlIGJhY2tsb2cgYXMgd2VsbAoKWyBVcHN0cmVhbSBjb21taXQgNDMxZTNhOGUzNmEwNWEz NzEyNmYzNGI0MWFhM2E1YTY0NTZhZjA0ZSBdCgpXZSBzYXcgcWxlbiE9MCBidXQgYmFja2xvZz09 MCBvbiBvdXIgcHJvZHVjdGlvbiBtYWNoaW5lOgoKcWRpc2MgaHRiIDE6IGRldiBldGgwIHJvb3Qg cmVmY250IDIgcjJxIDEwIGRlZmF1bHQgMSBkaXJlY3RfcGFja2V0c19zdGF0IDAgdmVyIDMuMTcK IFNlbnQgMTcyNjgwNDU3MzU2IGJ5dGVzIDIyMjQ2OTQ0OSBwa3QgKGRyb3BwZWQgMCwgb3Zlcmxp bWl0cyAxMjM1NzU4MzQgcmVxdWV1ZXMgMCkKIGJhY2tsb2cgMGIgNzJwIHJlcXVldWVzIDAKClRo ZSBwcm9ibGVtIGlzIHdlIG9ubHkgY291bnQgcWxlbiBmb3IgSFRCIHFkaXNjIGJ1dCBub3QgYmFj a2xvZy4KV2UgbmVlZCB0byB1cGRhdGUgYmFja2xvZyB0b28gd2hlbiB3ZSB1cGRhdGUgcWxlbiwg c28gdGhhdCB3ZQpjYW4gYXQgbGVhc3Qga25vdyB0aGUgYXZlcmFnZSBwYWNrZXQgbGVuZ3RoLgoK Q2M6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkFja2VkLWJ5OiBKYW1hbCBI YWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhp eW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfaHRiLmMgfCA1ICsrKystCiAx IGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L3NjaGVkL3NjaF9odGIuYyBiL25ldC9zY2hlZC9zY2hfaHRiLmMKaW5kZXggNmIxMThi MS4uY2NmZjAwNiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9odGIuYworKysgYi9uZXQvc2No ZWQvc2NoX2h0Yi5jCkBAIC02MDAsNiArNjAwLDcgQEAgc3RhdGljIGludCBodGJfZW5xdWV1ZShz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJaHRiX2FjdGl2YXRlKHEs IGNsKTsKIAl9CiAKKwlxZGlzY19xc3RhdHNfYmFja2xvZ19pbmMoc2NoLCBza2IpOwogCXNjaC0+ cS5xbGVuKys7CiAJcmV0dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CiB9CkBAIC04ODksNiArODkwLDcg QEAgc3RhdGljIHN0cnVjdCBza19idWZmICpodGJfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCkK IG9rOgogCQlxZGlzY19ic3RhdHNfdXBkYXRlKHNjaCwgc2tiKTsKIAkJcWRpc2NfdW50aHJvdHRs ZWQoc2NoKTsKKwkJcWRpc2NfcXN0YXRzX2JhY2tsb2dfZGVjKHNjaCwgc2tiKTsKIAkJc2NoLT5x LnFsZW4tLTsKIAkJcmV0dXJuIHNrYjsKIAl9CkBAIC05NTUsNiArOTU3LDcgQEAgc3RhdGljIHVu c2lnbmVkIGludCBodGJfZHJvcChzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJCXVuc2lnbmVkIGludCBs ZW47CiAJCQlpZiAoY2wtPnVuLmxlYWYucS0+b3BzLT5kcm9wICYmCiAJCQkgICAgKGxlbiA9IGNs LT51bi5sZWFmLnEtPm9wcy0+ZHJvcChjbC0+dW4ubGVhZi5xKSkpIHsKKwkJCQlzY2gtPnFzdGF0 cy5iYWNrbG9nIC09IGxlbjsKIAkJCQlzY2gtPnEucWxlbi0tOwogCQkJCWlmICghY2wtPnVuLmxl YWYucS0+cS5xbGVuKQogCQkJCQlodGJfZGVhY3RpdmF0ZShxLCBjbCk7CkBAIC05ODQsMTIgKzk4 NywxMiBAQCBzdGF0aWMgdm9pZCBodGJfcmVzZXQoc3RydWN0IFFkaXNjICpzY2gpCiAJCQl9CiAJ CQljbC0+cHJpb19hY3Rpdml0eSA9IDA7CiAJCQljbC0+Y21vZGUgPSBIVEJfQ0FOX1NFTkQ7Ci0K IAkJfQogCX0KIAlxZGlzY193YXRjaGRvZ19jYW5jZWwoJnEtPndhdGNoZG9nKTsKIAlfX3NrYl9x dWV1ZV9wdXJnZSgmcS0+ZGlyZWN0X3F1ZXVlKTsKIAlzY2gtPnEucWxlbiA9IDA7CisJc2NoLT5x c3RhdHMuYmFja2xvZyA9IDA7CiAJbWVtc2V0KHEtPmhsZXZlbCwgMCwgc2l6ZW9mKHEtPmhsZXZl bCkpOwogCW1lbXNldChxLT5yb3dfbWFzaywgMCwgc2l6ZW9mKHEtPnJvd19tYXNrKSk7CiAJZm9y IChpID0gMDsgaSA8IFRDX0hUQl9OVU1QUklPOyBpKyspCi0tIAoyLjQuMQoKCkZyb20gNjRiOWM2 YjFjMGQ5NGJkODI3NmQ0NWZlNTkxYTFjOGE1YjVlMjMxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFRodSwg MjUgRmViIDIwMTYgMTQ6NTU6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIIDE3LzI2XSBzY2hfZHNt YXJrOiB1cGRhdGUgYmFja2xvZyBhcyB3ZWxsCgpbIFVwc3RyZWFtIGNvbW1pdCBiZGYxNzY2MWY2 M2E3OWMzY2I0MjA5Yjk3MGIxY2MzOWUzNGY3NTQzIF0KClNpbWlsYXJseSwgd2UgbmVlZCB0byB1 cGRhdGUgYmFja2xvZyB0b28gd2hlbiB3ZSB1cGRhdGUgcWxlbi4KCkNjOiBKYW1hbCBIYWRpIFNh bGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndh bmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfZHNtYXJrLmMgfCAzICsrKwogMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfZHNt YXJrLmMgYi9uZXQvc2NoZWQvc2NoX2RzbWFyay5jCmluZGV4IGQyMDg0ZTcuLjcyODhkZGEgMTAw NjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9kc21h cmsuYwpAQCAtMjU2LDYgKzI1Niw3IEBAIHN0YXRpYyBpbnQgZHNtYXJrX2VucXVldWUoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJCXJldHVybiBlcnI7CiAJfQogCisJ cWRpc2NfcXN0YXRzX2JhY2tsb2dfaW5jKHNjaCwgc2tiKTsKIAlzY2gtPnEucWxlbisrOwogCiAJ cmV0dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CkBAIC0yNzgsNiArMjc5LDcgQEAgc3RhdGljIHN0cnVj dCBza19idWZmICpkc21hcmtfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJcmV0dXJuIE5V TEw7CiAKIAlxZGlzY19ic3RhdHNfdXBkYXRlKHNjaCwgc2tiKTsKKwlxZGlzY19xc3RhdHNfYmFj a2xvZ19kZWMoc2NoLCBza2IpOwogCXNjaC0+cS5xbGVuLS07CiAKIAlpbmRleCA9IHNrYi0+dGNf aW5kZXggJiAocC0+aW5kaWNlcyAtIDEpOwpAQCAtMzkzLDYgKzM5NSw3IEBAIHN0YXRpYyB2b2lk IGRzbWFya19yZXNldChzdHJ1Y3QgUWRpc2MgKnNjaCkKIAogCXByX2RlYnVnKCIlcyhzY2ggJXAs W3FkaXNjICVwXSlcbiIsIF9fZnVuY19fLCBzY2gsIHApOwogCXFkaXNjX3Jlc2V0KHAtPnEpOwor CXNjaC0+cXN0YXRzLmJhY2tsb2cgPSAwOwogCXNjaC0+cS5xbGVuID0gMDsKIH0KIAotLSAKMi40 LjEKCgpGcm9tIDE5ZjkzNGZlMDdhYTNjYWIyOTBkMzA0NTE1Y2YyZjAwMTMxMDcyODAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5j b20+CkRhdGU6IE1vbiwgMiBNYXkgMjAxNiAxMjoyMDoxNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg MTgvMjZdIG5ldGVtOiBTZWdtZW50IEdTTyBwYWNrZXRzIG9uIGVucXVldWUKClsgVXBzdHJlYW0g Y29tbWl0IDYwNzFiZDFhYTEzZWQ5ZTQxODI0YmFmYWQ4NDViN2I3ZjRkZjVjZmQgXQoKVGhpcyB3 YXMgcmVjZW50bHkgcmVwb3J0ZWQgdG8gbWUsIGFuZCByZXByb2R1Y2VkIG9uIHRoZSBsYXRlc3Qg bmV0IGtlcm5lbCwKd2hlbiBhdHRlbXB0aW5nIHRvIHJ1biBuZXRwZXJmIGZyb20gYSBob3N0IHRo YXQgaGFkIGEgbmV0ZW0gcWRpc2MgYXR0YWNoZWQKdG8gdGhlIGVncmVzcyBpbnRlcmZhY2U6Cgpb ICA3ODguMDczNzcxXSAtLS0tLS0tLS0tLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KWyAgNzg4LjA5NjcxNl0gV0FSTklORzogYXQgbmV0L2NvcmUvZGV2 LmM6MjI1MyBza2Jfd2Fybl9iYWRfb2ZmbG9hZCsweGNkLzB4ZGEoKQpbICA3ODguMTI5NTIxXSBi bngyOiBjYXBzPSgweDAwMDAwMDAxODAxOTQ5YjMsIDB4MDAwMDAwMDAwMDAwMDAwMCkgbGVuPTI5 NjIKZGF0YV9sZW49MCBnc29fc2l6ZT0xNDQ4IGdzb190eXBlPTEgaXBfc3VtbWVkPTMKWyAgNzg4 LjE4MjE1MF0gTW9kdWxlcyBsaW5rZWQgaW46IHNjaF9uZXRlbSBrdm1fYW1kIGt2bSBjcmMzMl9w Y2xtdWwgaXBtaV9zc2lmCmdoYXNoX2NsbXVsbmlfaW50ZWwgc3A1MTAwX3RjbyBhbWQ2NF9lZGFj X21vZCBhZXNuaV9pbnRlbCBscncgZ2YxMjhtdWwKZ2x1ZV9oZWxwZXIgYWJsa19oZWxwZXIgZWRh Y19tY2VfYW1kIGNyeXB0ZCBwY3Nwa3Igc2cgZWRhY19jb3JlIGhwaWxvIGlwbWlfc2kKaTJjX3Bp aXg0IGsxMHRlbXAgZmFtMTVoX3Bvd2VyIGhwd2R0IGlwbWlfbXNnaGFuZGxlciBzaHBjaHAgYWNw aV9wb3dlcl9tZXRlcgpwY2NfY3B1ZnJlcSBuZnNkIGF1dGhfcnBjZ3NzIG5mc19hY2wgbG9ja2Qg Z3JhY2Ugc3VucnBjIGlwX3RhYmxlcyB4ZnMgbGliY3JjMzJjCnNkX21vZCBjcmNfdDEwZGlmIGNy Y3QxMGRpZl9nZW5lcmljIG1nYWcyMDAgc3lzY29weWFyZWEgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0 CmkyY19hbGdvX2JpdCBkcm1fa21zX2hlbHBlciBhaGNpIGF0YV9nZW5lcmljIHBhdGFfYWNwaSB0 dG0gbGliYWhjaQpjcmN0MTBkaWZfcGNsbXVsIHBhdGFfYXRpaXhwIHRnMyBsaWJhdGEgY3JjdDEw ZGlmX2NvbW1vbiBkcm0gY3JjMzJjX2ludGVsIHB0cApzZXJpb19yYXcgYm54MiByODE2OSBocHNh IHBwc19jb3JlIGkyY19jb3JlIG1paSBkbV9taXJyb3IgZG1fcmVnaW9uX2hhc2ggZG1fbG9nCmRt X21vZApbICA3ODguNDY1Mjk0XSBDUFU6IDE2IFBJRDogMCBDb21tOiBzd2FwcGVyLzE2IFRhaW50 ZWQ6IEcgICAgICAgIFcKLS0tLS0tLS0tLS0tICAgMy4xMC4wLTMyNy5lbDcueDg2XzY0ICMxClsg IDc4OC41MTE1MjFdIEhhcmR3YXJlIG5hbWU6IEhQIFByb0xpYW50IERMMzg1cCBHZW44LCBCSU9T IEEyOCAxMi8xNy8yMDEyClsgIDc4OC41NDIyNjBdICBmZmZmODgwNDM3YzAzNmI4IGY3YWZjNTY1 MzJhNTNkYjkgZmZmZjg4MDQzN2MwMzY3MApmZmZmZmZmZjgxNjM1MWYxClsgIDc4OC41NzYzMzJd ICBmZmZmODgwNDM3YzAzNmE4IGZmZmZmZmZmODEwN2IyMDAgZmZmZjg4MDYzM2U3NDIwMApmZmZm ODgwMjMxNjc0MDAwClsgIDc4OC42MTE5NDNdICAwMDAwMDAwMDAwMDAwMDAxIDAwMDAwMDAwMDAw MDAwMDMgMDAwMDAwMDAwMDAwMDAwMApmZmZmODgwNDM3YzAzNzEwClsgIDc4OC42NDcyNDFdIENh bGwgVHJhY2U6ClsgIDc4OC42NTg4MTddICA8SVJRPiAgWzxmZmZmZmZmZjgxNjM1MWYxPl0gZHVt cF9zdGFjaysweDE5LzB4MWIKWyAgNzg4LjY4NjE5M10gIFs8ZmZmZmZmZmY4MTA3YjIwMD5dIHdh cm5fc2xvd3BhdGhfY29tbW9uKzB4NzAvMHhiMApbICA3ODguNzEzODAzXSAgWzxmZmZmZmZmZjgx MDdiMjljPl0gd2Fybl9zbG93cGF0aF9mbXQrMHg1Yy8weDgwClsgIDc4OC43NDEzMTRdICBbPGZm ZmZmZmZmODEyZjkyZjM+XSA/IF9fX3JhdGVsaW1pdCsweDkzLzB4MTAwClsgIDc4OC43NjcwMThd ICBbPGZmZmZmZmZmODE2MzdmNDk+XSBza2Jfd2Fybl9iYWRfb2ZmbG9hZCsweGNkLzB4ZGEKWyAg Nzg4Ljc5NjExN10gIFs8ZmZmZmZmZmY4MTUyOTUwYz5dIHNrYl9jaGVja3N1bV9oZWxwKzB4MTdj LzB4MTkwClsgIDc4OC44MjMzOTJdICBbPGZmZmZmZmZmYTAxNDYzYTE+XSBuZXRlbV9lbnF1ZXVl KzB4NzQxLzB4N2MwIFtzY2hfbmV0ZW1dClsgIDc4OC44NTQ0ODddICBbPGZmZmZmZmZmODE1MmNi NTg+XSBkZXZfcXVldWVfeG1pdCsweDJhOC8weDU3MApbICA3ODguODgwODcwXSAgWzxmZmZmZmZm ZjgxNTZhZTFkPl0gaXBfZmluaXNoX291dHB1dCsweDUzZC8weDdkMAouLi4KClRoZSBwcm9ibGVt IG9jY3VycyBiZWNhdXNlIG5ldGVtIGlzIG5vdCBwcmVwYXJlZCB0byBoYW5kbGUgR1NPIHBhY2tl dHMgKGFzIGl0CnVzZXMgc2tiX2NoZWNrc3VtX2hlbHAgaW4gaXRzIGVucXVldWUgcGF0aCwgd2hp Y2ggY2Fubm90IG1hbmlwdWxhdGUgdGhlc2UKZnJhbWVzKS4KClRoZSBzb2x1dGlvbiBJIHRoaW5r IGlzIHRvIHNpbXBseSBzZWdtZW50IHRoZSBza2IgaW4gYSBzaW1taWxhciBmYXNoaW9uIHRvIHRo ZQp3YXkgd2UgZG8gaW4gX19kZXZfcXVldWVfeG1pdCAodmlhIHZhbGlkYXRlX3htaXRfc2tiKSwg d2l0aCBzb21lIG1pbm9yIGNoYW5nZXMuCldoZW4gd2UgZGVjaWRlIHRvIGNvcnJ1cHQgYW4gc2ti LCBpZiB0aGUgZnJhbWUgaXMgR1NPLCB3ZSBzZWdtZW50IGl0LCBjb3JydXB0CnRoZSBmaXJzdCBz ZWdtZW50LCBhbmQgZW5xdWV1ZSB0aGUgcmVtYWluaW5nIG9uZXMuCgp0ZXN0ZWQgc3VjY2Vzc2Z1 bGx5IGJ5IG15c2VsZiBvbiB0aGUgbGF0ZXN0IG5ldCBrZXJuZWwsIHRvIHdoaWNoIHRoaXMgYXBw bGllcwoKU2lnbmVkLW9mZi1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4K Q0M6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNDOiAiRGF2aWQgUy4gTWls bGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KQ0M6IG5ldGVtQGxpc3RzLmxpbnV4LWZvdW5kYXRp b24ub3JnCkNDOiBlcmljLmR1bWF6ZXRAZ21haWwuY29tCkNDOiBzdGVwaGVuQG5ldHdvcmtwbHVt YmVyLm9yZwpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L3NjaGVkL3NjaF9uZXRlbS5jIHwgNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMgYi9uZXQvc2No ZWQvc2NoX25ldGVtLmMKaW5kZXggY2MwMDMyOS4uODAxMjRjMSAxMDA2NDQKLS0tIGEvbmV0L3Nj aGVkL3NjaF9uZXRlbS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0uYwpAQCAtMzk1LDYgKzM5 NSwyNSBAQCBzdGF0aWMgdm9pZCB0Zmlmb19lbnF1ZXVlKHN0cnVjdCBza19idWZmICpuc2tiLCBz dHJ1Y3QgUWRpc2MgKnNjaCkKIAlzY2gtPnEucWxlbisrOwogfQogCisvKiBuZXRlbSBjYW4ndCBw cm9wZXJseSBjb3JydXB0IGEgbWVnYXBhY2tldCAobGlrZSB3ZSBnZXQgZnJvbSBHU08pLCBzbyBp bnN0ZWFkCisgKiB3aGVuIHdlIHN0YXRpc3RpY2FsbHkgY2hvb3NlIHRvIGNvcnJ1cHQgb25lLCB3 ZSBpbnN0ZWFkIHNlZ21lbnQgaXQsIHJldHVybmluZworICogdGhlIGZpcnN0IHBhY2tldCB0byBi ZSBjb3JydXB0ZWQsIGFuZCByZS1lbnF1ZXVlIHRoZSByZW1haW5pbmcgZnJhbWVzCisgKi8KK3N0 YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbmV0ZW1fc2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgUWRpc2MgKnNjaCkKK3sKKwlzdHJ1Y3Qgc2tfYnVmZiAqc2VnczsKKwluZXRkZXZfZmVh dHVyZXNfdCBmZWF0dXJlcyA9IG5ldGlmX3NrYl9mZWF0dXJlcyhza2IpOworCisJc2VncyA9IHNr Yl9nc29fc2VnbWVudChza2IsIGZlYXR1cmVzICYgfk5FVElGX0ZfR1NPX01BU0spOworCisJaWYg KElTX0VSUl9PUl9OVUxMKHNlZ3MpKSB7CisJCXFkaXNjX3Jlc2hhcGVfZmFpbChza2IsIHNjaCk7 CisJCXJldHVybiBOVUxMOworCX0KKwljb25zdW1lX3NrYihza2IpOworCXJldHVybiBzZWdzOwor fQorCiAvKgogICogSW5zZXJ0IG9uZSBza2IgaW50byBxZGlzYy4KICAqIE5vdGU6IHBhcmVudCBk ZXBlbmRzIG9uIHJldHVybiB2YWx1ZSB0byBhY2NvdW50IGZvciBxdWV1ZSBsZW5ndGguCkBAIC00 MDcsNyArNDI2LDExIEBAIHN0YXRpYyBpbnQgbmV0ZW1fZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkvKiBXZSBkb24ndCBmaWxsIGNiIG5vdyBhcyBza2Jf dW5zaGFyZSgpIG1heSBpbnZhbGlkYXRlIGl0ICovCiAJc3RydWN0IG5ldGVtX3NrYl9jYiAqY2I7 CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjI7CisJc3RydWN0IHNrX2J1ZmYgKnNlZ3MgPSBOVUxMOwor CXVuc2lnbmVkIGludCBsZW4gPSAwLCBsYXN0X2xlbiwgcHJldl9sZW4gPSBxZGlzY19wa3RfbGVu KHNrYik7CisJaW50IG5iID0gMDsKIAlpbnQgY291bnQgPSAxOworCWludCByYyA9IE5FVF9YTUlU X1NVQ0NFU1M7CiAKIAkvKiBSYW5kb20gZHVwbGljYXRpb24gKi8KIAlpZiAocS0+ZHVwbGljYXRl ICYmIHEtPmR1cGxpY2F0ZSA+PSBnZXRfY3JhbmRvbSgmcS0+ZHVwX2NvcikpCkBAIC00NTMsMTAg KzQ3NiwyMyBAQCBzdGF0aWMgaW50IG5ldGVtX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IFFkaXNjICpzY2gpCiAJICogZG8gaXQgbm93IGluIHNvZnR3YXJlIGJlZm9yZSB3ZSBt YW5nbGUgaXQuCiAJICovCiAJaWYgKHEtPmNvcnJ1cHQgJiYgcS0+Y29ycnVwdCA+PSBnZXRfY3Jh bmRvbSgmcS0+Y29ycnVwdF9jb3IpKSB7CisJCWlmIChza2JfaXNfZ3NvKHNrYikpIHsKKwkJCXNl Z3MgPSBuZXRlbV9zZWdtZW50KHNrYiwgc2NoKTsKKwkJCWlmICghc2VncykKKwkJCQlyZXR1cm4g TkVUX1hNSVRfRFJPUDsKKwkJfSBlbHNlIHsKKwkJCXNlZ3MgPSBza2I7CisJCX0KKworCQlza2Ig PSBzZWdzOworCQlzZWdzID0gc2Vncy0+bmV4dDsKKwogCQlpZiAoIShza2IgPSBza2JfdW5zaGFy ZShza2IsIEdGUF9BVE9NSUMpKSB8fAogCQkgICAgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VN X1BBUlRJQUwgJiYKLQkJICAgICBza2JfY2hlY2tzdW1faGVscChza2IpKSkKLQkJCXJldHVybiBx ZGlzY19kcm9wKHNrYiwgc2NoKTsKKwkJICAgICBza2JfY2hlY2tzdW1faGVscChza2IpKSkgewor CQkJcmMgPSBxZGlzY19kcm9wKHNrYiwgc2NoKTsKKwkJCWdvdG8gZmluaXNoX3NlZ3M7CisJCX0K IAogCQlza2ItPmRhdGFbcHJhbmRvbV91MzIoKSAlIHNrYl9oZWFkbGVuKHNrYildIF49CiAJCQkx PDwocHJhbmRvbV91MzIoKSAlIDgpOwpAQCAtNTE2LDYgKzU1MiwyNyBAQCBzdGF0aWMgaW50IG5l dGVtX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJCXNj aC0+cXN0YXRzLnJlcXVldWVzKys7CiAJfQogCitmaW5pc2hfc2VnczoKKwlpZiAoc2Vncykgewor CQl3aGlsZSAoc2VncykgeworCQkJc2tiMiA9IHNlZ3MtPm5leHQ7CisJCQlzZWdzLT5uZXh0ID0g TlVMTDsKKwkJCXFkaXNjX3NrYl9jYihzZWdzKS0+cGt0X2xlbiA9IHNlZ3MtPmxlbjsKKwkJCWxh c3RfbGVuID0gc2Vncy0+bGVuOworCQkJcmMgPSBxZGlzY19lbnF1ZXVlKHNlZ3MsIHNjaCk7CisJ CQlpZiAocmMgIT0gTkVUX1hNSVRfU1VDQ0VTUykgeworCQkJCWlmIChuZXRfeG1pdF9kcm9wX2Nv dW50KHJjKSkKKwkJCQkJcWRpc2NfcXN0YXRzX2Ryb3Aoc2NoKTsKKwkJCX0gZWxzZSB7CisJCQkJ bmIrKzsKKwkJCQlsZW4gKz0gbGFzdF9sZW47CisJCQl9CisJCQlzZWdzID0gc2tiMjsKKwkJfQor CQlzY2gtPnEucWxlbiArPSBuYjsKKwkJaWYgKG5iID4gMSkKKwkJCXFkaXNjX3RyZWVfcmVkdWNl X2JhY2tsb2coc2NoLCAxIC0gbmIsIHByZXZfbGVuIC0gbGVuKTsKKwl9CiAJcmV0dXJuIE5FVF9Y TUlUX1NVQ0NFU1M7CiB9CiAKLS0gCjIuNC4xCgoKRnJvbSAwOGI5YzczYjdkOGUwNmNjOWYwOGEy NDJmN2I1NTVhYTVkOGU4YjZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04 P3E/VXdlPTIwS2xlaW5lLUs9QzM9QjZuaWc/PSA8dS5rbGVpbmUta29lbmlnQHBlbmd1dHJvbml4 LmRlPgpEYXRlOiBUdWUsIDMgTWF5IDIwMTYgMTY6Mzg6NTMgKzAyMDAKU3ViamVjdDogW1BBVENI IDE5LzI2XSBuZXQ6IGZlYzogb25seSBjbGVhciBhIHF1ZXVlJ3Mgd29yayBiaXQgaWYgdGhlIHF1 ZXVlCiB3YXMgZW1wdGllZApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0 cmVhbSBjb21taXQgMWMwMjFiYjcxN2E3MGFhZWFhNGIyNWM5MWY0M2MyYWVkZGQ5MjJkZSBdCgpJ biB0aGUgcmVjZWl2ZSBwYXRoIGEgcXVldWUncyB3b3JrIGJpdCB3YXMgY2xlYXJlZCB1bmNvbmRp dGlvbmFsbHkgZXZlbgppZiBmZWNfZW5ldF9yeF9xdWV1ZSBvbmx5IHJlYWQgb3V0IGEgcGFydCBv ZiB0aGUgYXZhaWxhYmxlIHBhY2tldHMgZnJvbQp0aGUgaGFyZHdhcmUuIFRoaXMgcmVzdWx0ZWQg aW4gbm90IHJlYWRpbmcgYW55IHBhY2tldHMgaW4gdGhlIG5leHQgbmFwaQp0dXJuIGFuZCBzbyBw YWNrZXRzIHdlcmUgZGVsYXllZCBvciBsb3N0LgoKVGhlIG9idmlvdXMgZml4IGlzIHRvIG9ubHkg Y2xlYXIgYSBxdWV1ZSdzIGJpdCB3aGVuIHRoZSBxdWV1ZSB3YXMKZW1wdGllZC4KCkZpeGVzOiA0 ZDQ5NGNkYzkyYjMgKCJuZXQ6IGZlYzogY2hhbmdlIGRhdGEgc3RydWN0dXJlIHRvIHN1cHBvcnQg bXVsdGlxdWV1ZSIpClNpZ25lZC1vZmYtYnk6IFV3ZSBLbGVpbmUtS8O2bmlnIDx1LmtsZWluZS1r b2VuaWdAcGVuZ3V0cm9uaXguZGU+ClJldmlld2VkLWJ5OiBMdWNhcyBTdGFjaCA8bC5zdGFjaEBw ZW5ndXRyb25peC5kZT4KVGVzdGVkLWJ5OiBGdWdhbmcgRHVhbiA8ZnVnYW5nLmR1YW5AbnhwLmNv bT4KQWNrZWQtYnk6IEZ1Z2FuZyBEdWFuIDxmdWdhbmcuZHVhbkBueHAuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMgfCAxMCArKysrKysrKy0tCiAxIGZpbGUg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKaW5kZXggNTcwMzkwYi4uNjdhZWMxOCAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKQEAgLTE1NDYsOSArMTU0Niwx NSBAQCBmZWNfZW5ldF9yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgaW50IGJ1ZGdldCkKIAlz dHJ1Y3QgZmVjX2VuZXRfcHJpdmF0ZSAqZmVwID0gbmV0ZGV2X3ByaXYobmRldik7CiAKIAlmb3Jf ZWFjaF9zZXRfYml0KHF1ZXVlX2lkLCAmZmVwLT53b3JrX3J4LCBGRUNfRU5FVF9NQVhfUlhfUVMp IHsKLQkJY2xlYXJfYml0KHF1ZXVlX2lkLCAmZmVwLT53b3JrX3J4KTsKLQkJcGt0X3JlY2VpdmVk ICs9IGZlY19lbmV0X3J4X3F1ZXVlKG5kZXYsCisJCWludCByZXQ7CisKKwkJcmV0ID0gZmVjX2Vu ZXRfcnhfcXVldWUobmRldiwKIAkJCQkJYnVkZ2V0IC0gcGt0X3JlY2VpdmVkLCBxdWV1ZV9pZCk7 CisKKwkJaWYgKHJldCA8IGJ1ZGdldCAtIHBrdF9yZWNlaXZlZCkKKwkJCWNsZWFyX2JpdChxdWV1 ZV9pZCwgJmZlcC0+d29ya19yeCk7CisKKwkJcGt0X3JlY2VpdmVkICs9IHJldDsKIAl9CiAJcmV0 dXJuIHBrdF9yZWNlaXZlZDsKIH0KLS0gCjIuNC4xCgoKRnJvbSBlOGYwOTY2ZGE3NTAwODk0MDk3 MGYwNWU1M2U5Y2Q4MzZhYTUzNTk2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLYW5n amllIEx1IDxrYW5namllbHVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDMgTWF5IDIwMTYgMTY6MzU6 MDUgLTA0MDAKU3ViamVjdDogW1BBVENIIDIwLzI2XSBuZXQ6IGZpeCBpbmZvbGVhayBpbiBsbGMK TUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGI4Njcw YzA5ZjM3YmRmMjg0N2NjNDRmMzY1MTFhNTNhZmM2MTYxZmQgXQoKVGhlIHN0YWNrIG9iamVjdCDi gJxpbmZv4oCdIGhhcyBhIHRvdGFsIHNpemUgb2YgMTIgYnl0ZXMuIEl0cyBsYXN0IGJ5dGUKaXMg cGFkZGluZyB3aGljaCBpcyBub3QgaW5pdGlhbGl6ZWQgYW5kIGxlYWtlZCB2aWEg4oCccHV0X2Nt c2figJ0uCgpTaWduZWQtb2ZmLWJ5OiBLYW5namllIEx1IDxramx1QGdhdGVjaC5lZHU+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv bGxjL2FmX2xsYy5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYg LS1naXQgYS9uZXQvbGxjL2FmX2xsYy5jIGIvbmV0L2xsYy9hZl9sbGMuYwppbmRleCAxN2E4ZGZm Li5jNThmMjQyIDEwMDY0NAotLS0gYS9uZXQvbGxjL2FmX2xsYy5jCisrKyBiL25ldC9sbGMvYWZf bGxjLmMKQEAgLTYyNiw2ICs2MjYsNyBAQCBzdGF0aWMgdm9pZCBsbGNfY21zZ19yY3Yoc3RydWN0 IG1zZ2hkciAqbXNnLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCWlmIChsbGMtPmNtc2dfZmxhZ3Mg JiBMTENfQ01TR19QS1RJTkZPKSB7CiAJCXN0cnVjdCBsbGNfcGt0aW5mbyBpbmZvOwogCisJCW1l bXNldCgmaW5mbywgMCwgc2l6ZW9mKGluZm8pKTsKIAkJaW5mby5scGlfaWZpbmRleCA9IGxsY19z ayhza2ItPnNrKS0+ZGV2LT5pZmluZGV4OwogCQlsbGNfcGR1X2RlY29kZV9kc2FwKHNrYiwgJmlu Zm8ubHBpX3NhcCk7CiAJCWxsY19wZHVfZGVjb2RlX2RhKHNrYiwgaW5mby5scGlfbWFjKTsKLS0g CjIuNC4xCgoKRnJvbSA0Y2QyM2I3MjllNjc1ZjQzN2IyMjU3OTFhMTA0ODcwY2Y0OTVkM2I5IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLYW5namllIEx1IDxrYW5namllbHVAZ21haWwu Y29tPgpEYXRlOiBUdWUsIDMgTWF5IDIwMTYgMTY6NDY6MjQgLTA0MDAKU3ViamVjdDogW1BBVENI IDIxLzI2XSBuZXQ6IGZpeCBpbmZvbGVhayBpbiBydG5ldGxpbmsKTUlNRS1WZXJzaW9uOiAxLjAK Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXIt RW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDVmOGU0NDc0MWY5ZjIxNmUzMzczNmVh NGVjNjVjYTlhYzAzMDM2ZTYgXQoKVGhlIHN0YWNrIG9iamVjdCDigJxtYXDigJ0gaGFzIGEgdG90 YWwgc2l6ZSBvZiAzMiBieXRlcy4gSXRzIGxhc3QgNApieXRlcyBhcmUgcGFkZGluZyBnZW5lcmF0 ZWQgYnkgY29tcGlsZXIuIFRoZXNlIHBhZGRpbmcgYnl0ZXMgYXJlCm5vdCBpbml0aWFsaXplZCBh bmQgc2VudCBvdXQgdmlhIOKAnG5sYV9wdXTigJ0uCgpTaWduZWQtb2ZmLWJ5OiBLYW5namllIEx1 IDxramx1QGdhdGVjaC5lZHU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9ydG5ldGxpbmsuYyB8IDE4ICsrKysrKysrKyst LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMgYi9uZXQvY29yZS9ydG5ldGxpbmsu YwppbmRleCBmZTk1Y2I3Li5hODgwNGM0IDEwMDY0NAotLS0gYS9uZXQvY29yZS9ydG5ldGxpbmsu YworKysgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwpAQCAtMTA3MCwxNCArMTA3MCwxNiBAQCBzdGF0 aWMgaW50IHJ0bmxfZmlsbF9pZmluZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKIAkJZ290byBubGFfcHV0X2ZhaWx1cmU7CiAKIAlpZiAoMSkgewotCQlzdHJ1 Y3QgcnRubF9saW5rX2lmbWFwIG1hcCA9IHsKLQkJCS5tZW1fc3RhcnQgICA9IGRldi0+bWVtX3N0 YXJ0LAotCQkJLm1lbV9lbmQgICAgID0gZGV2LT5tZW1fZW5kLAotCQkJLmJhc2VfYWRkciAgID0g ZGV2LT5iYXNlX2FkZHIsCi0JCQkuaXJxICAgICAgICAgPSBkZXYtPmlycSwKLQkJCS5kbWEgICAg ICAgICA9IGRldi0+ZG1hLAotCQkJLnBvcnQgICAgICAgID0gZGV2LT5pZl9wb3J0LAotCQl9Owor CQlzdHJ1Y3QgcnRubF9saW5rX2lmbWFwIG1hcDsKKworCQltZW1zZXQoJm1hcCwgMCwgc2l6ZW9m KG1hcCkpOworCQltYXAubWVtX3N0YXJ0ICAgPSBkZXYtPm1lbV9zdGFydDsKKwkJbWFwLm1lbV9l bmQgICAgID0gZGV2LT5tZW1fZW5kOworCQltYXAuYmFzZV9hZGRyICAgPSBkZXYtPmJhc2VfYWRk cjsKKwkJbWFwLmlycSAgICAgICAgID0gZGV2LT5pcnE7CisJCW1hcC5kbWEgICAgICAgICA9IGRl di0+ZG1hOworCQltYXAucG9ydCAgICAgICAgPSBkZXYtPmlmX3BvcnQ7CisKIAkJaWYgKG5sYV9w dXQoc2tiLCBJRkxBX01BUCwgc2l6ZW9mKG1hcCksICZtYXApKQogCQkJZ290byBubGFfcHV0X2Zh aWx1cmU7CiAJfQotLSAKMi40LjEKCgpGcm9tIDVlNTVlNmE1ZjYwYzA1NTc0YzI5MDM5NGQ0MzM3 MGM1NzE0MTczZDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBKdXJnZW5z IDxkYW5pZWxqQG1lbGxhbm94LmNvbT4KRGF0ZTogV2VkLCA0IE1heSAyMDE2IDE1OjAwOjMzICsw MzAwClN1YmplY3Q6IFtQQVRDSCAyMi8yNl0gbmV0L21seDRfZW46IEZpeCBlbmRpYW5uZXNzIGJ1 ZyBpbiBJUFY2IGNzdW0KIGNhbGN1bGF0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA4MmQ2OTIwM2Rm NjM0YjRkZmE3NjVjOTRmNjBjZTk0ODJiY2M0NGQ2IF0KClVzZSBodG9ucyBpbnN0ZWFkIG9mIHVu Y29uZGl0aW9uYWxseSBieXRlIHN3YXBwaW5nIG5leHRoZHIuICBPbiBhIGxpdHRsZQplbmRpYW4g c3lzdGVtcyBzaGlmdGluZyB0aGUgYnl0ZSBpcyBjb3JyZWN0IGJlaGF2aW9yLCBidXQgaXQgcmVz dWx0cyBpbgppbmNvcnJlY3QgY3N1bXMgb24gYmlnIGVuZGlhbiBhcmNoaXRlY3R1cmVzLgoKRml4 ZXM6IGY4YzY0NTViYjA0YiAoJ25ldC9tbHg0X2VuOiBFeHRlbmQgY2hlY2tzdW0gb2ZmbG9hZGlu ZyBieSBDSEVDS1NVTSBDT01QTEVURScpClNpZ25lZC1vZmYtYnk6IERhbmllbCBKdXJnZW5zIDxk YW5pZWxqQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IENhcm9sIFNvdG8gPGNsc290b0B1cy5p Ym0uY29tPgpUZXN0ZWQtYnk6IENhcm9sIFNvdG8gPGNsc290b0B1cy5pYm0uY29tPgpTaWduZWQt b2ZmLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg0L2VuX3J4LmMKaW5kZXggODBhYWMyMC4uZjYwOTVkMiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYwpAQCAtNzEwLDcgKzcxMCw3IEBAIHN0YXRpYyBp bnQgZ2V0X2ZpeGVkX2lwdjZfY3N1bShfX3dzdW0gaHdfY2hlY2tzdW0sIHN0cnVjdCBza19idWZm ICpza2IsCiAKIAlpZiAoaXB2NmgtPm5leHRoZHIgPT0gSVBQUk9UT19GUkFHTUVOVCB8fCBpcHY2 aC0+bmV4dGhkciA9PSBJUFBST1RPX0hPUE9QVFMpCiAJCXJldHVybiAtMTsKLQlod19jaGVja3N1 bSA9IGNzdW1fYWRkKGh3X2NoZWNrc3VtLCAoX19mb3JjZSBfX3dzdW0pKGlwdjZoLT5uZXh0aGRy IDw8IDgpKTsKKwlod19jaGVja3N1bSA9IGNzdW1fYWRkKGh3X2NoZWNrc3VtLCAoX19mb3JjZSBf X3dzdW0paHRvbnMoaXB2NmgtPm5leHRoZHIpKTsKIAogCWNzdW1fcHNldWRvX2hkciA9IGNzdW1f cGFydGlhbCgmaXB2NmgtPnNhZGRyLAogCQkJCSAgICAgICBzaXplb2YoaXB2NmgtPnNhZGRyKSAr IHNpemVvZihpcHY2aC0+ZGFkZHIpLCAwKTsKLS0gCjIuNC4xCgoKRnJvbSBiZDQwNDNmNWY5YmQ4 YjQ3YzE4Mzk3MzhhM2FmYTAxNjc1ODQ5M2FhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBkb2NrZXIuY29tPgpEYXRlOiBXZWQsIDQgTWF5 IDIwMTYgMTQ6MjE6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDIzLzI2XSBWU09DSzogZG8gbm90 IGRpc2Nvbm5lY3Qgc29ja2V0IHdoZW4gcGVlciBoYXMgc2h1dGRvd24KIFNFTkQgb25seQoKWyBV cHN0cmVhbSBjb21taXQgZGVkYzU4ZTA2N2Q4YzM3OWExNWE4YTE4M2M1ZGIzMTgyMDEyOTViYiBd CgpUaGUgcGVlciBtYXkgYmUgZXhwZWN0aW5nIGEgcmVwbHkgaGF2aW5nIHNlbnQgYSByZXF1ZXN0 IGFuZCB0aGVuIGRvbmUgYQpzaHV0ZG93bihTSFVUX1dSKSwgc28gdGVhcmluZyBkb3duIHRoZSB3 aG9sZSBzb2NrZXQgYXQgdGhpcyBwb2ludCBzZWVtcwp3cm9uZyBhbmQgYnJlYWtzIGZvciBtZSB3 aXRoIGEgY2xpZW50IHdoaWNoIGRvZXMgYSBTSFVUX1dSLgoKTG9va2luZyBhdCBvdGhlciBzb2Nr ZXQgZmFtaWx5J3Mgc3RyZWFtX3JlY3Ztc2cgY2FsbGJhY2tzIGRvaW5nIGEgc2h1dGRvd24KaGVy ZSBkb2VzIG5vdCBzZWVtIHRvIGJlIHRoZSBub3JtIGFuZCByZW1vdmluZyBpdCBkb2VzIG5vdCBz ZWVtIHRvIGhhdmUKaGFkIGFueSBhZHZlcnNlIGVmZmVjdHMgdGhhdCBJIGNhbiBzZWUuCgpJJ20g dXNpbmcgU3RlZmFuJ3MgUkZDIHZpcnRpbyB0cmFuc3BvcnQgcGF0Y2hlcywgSSdtIHVuc3VyZSBv ZiB0aGUgaW1wYWN0Cm9uIHRoZSB2bWNpIHRyYW5zcG9ydC4KClNpZ25lZC1vZmYtYnk6IElhbiBD YW1wYmVsbCA8aWFuLmNhbXBiZWxsQGRvY2tlci5jb20+CkNjOiAiRGF2aWQgUy4gTWlsbGVyIiA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KQ2M6IFN0ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAcmVkaGF0 LmNvbT4KQ2M6IENsYXVkaW8gSW1icmVuZGEgPGltYnJlbmRhQGxpbnV4LnZuZXQuaWJtLmNvbT4K Q2M6IEFuZHkgS2luZyA8YWNraW5nQHZtd2FyZS5jb20+CkNjOiBEbWl0cnkgVG9yb2tob3YgPGR0 b3JAdm13YXJlLmNvbT4KQ2M6IEpvcmdlbiBIYW5zZW4gPGpoYW5zZW5Adm13YXJlLmNvbT4KQ2M6 IEFkaXQgUmFuYWRpdmUgPGFkaXRyQHZtd2FyZS5jb20+CkNjOiBuZXRkZXZAdmdlci5rZXJuZWwu b3JnClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvdm13X3Zzb2NrL2FmX3Zzb2NrLmMgfCAyMSArLS0tLS0tLS0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L3Ztd192c29jay9hZl92c29jay5jIGIvbmV0L3Ztd192c29jay9hZl92c29jay5j CmluZGV4IDJlYzg2ZTYuLmUxYzY5YjIgMTAwNjQ0Ci0tLSBhL25ldC92bXdfdnNvY2svYWZfdnNv Y2suYworKysgYi9uZXQvdm13X3Zzb2NrL2FmX3Zzb2NrLmMKQEAgLTE3OTQsMjcgKzE3OTQsOCBA QCB2c29ja19zdHJlYW1fcmVjdm1zZyhzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRy ICptc2csIHNpemVfdCBsZW4sCiAJZWxzZSBpZiAoc2stPnNrX3NodXRkb3duICYgUkNWX1NIVVRE T1dOKQogCQllcnIgPSAwOwogCi0JaWYgKGNvcGllZCA+IDApIHsKLQkJLyogV2Ugb25seSBkbyB0 aGVzZSBhZGRpdGlvbmFsIGJvb2trZWVwaW5nL25vdGlmaWNhdGlvbiBzdGVwcwotCQkgKiBpZiB3 ZSBhY3R1YWxseSBjb3BpZWQgc29tZXRoaW5nIG91dCBvZiB0aGUgcXVldWUgcGFpcgotCQkgKiBp bnN0ZWFkIG9mIGp1c3QgcGVla2luZyBhaGVhZC4KLQkJICovCi0KLQkJaWYgKCEoZmxhZ3MgJiBN U0dfUEVFSykpIHsKLQkJCS8qIElmIHRoZSBvdGhlciBzaWRlIGhhcyBzaHV0ZG93biBmb3Igc2Vu ZGluZyBhbmQgdGhlcmUKLQkJCSAqIGlzIG5vdGhpbmcgbW9yZSB0byByZWFkLCB0aGVuIG1vZGlm eSB0aGUgc29ja2V0Ci0JCQkgKiBzdGF0ZS4KLQkJCSAqLwotCQkJaWYgKHZzay0+cGVlcl9zaHV0 ZG93biAmIFNFTkRfU0hVVERPV04pIHsKLQkJCQlpZiAodnNvY2tfc3RyZWFtX2hhc19kYXRhKHZz aykgPD0gMCkgewotCQkJCQlzay0+c2tfc3RhdGUgPSBTU19VTkNPTk5FQ1RFRDsKLQkJCQkJc29j a19zZXRfZmxhZyhzaywgU09DS19ET05FKTsKLQkJCQkJc2stPnNrX3N0YXRlX2NoYW5nZShzayk7 Ci0JCQkJfQotCQkJfQotCQl9CisJaWYgKGNvcGllZCA+IDApCiAJCWVyciA9IGNvcGllZDsKLQl9 CiAKIG91dF93YWl0OgogCWZpbmlzaF93YWl0KHNrX3NsZWVwKHNrKSwgJndhaXQpOwotLSAKMi40 LjEKCgpGcm9tIGZiZjMxMjFkODI4MjBiZDAwMjVhMWIwYzk4ZjM0ZjZhMWMxNjFlYzUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3Vt dWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogV2VkLCA0IE1heSAyMDE2IDE2OjE4OjQ1ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAyNC8yNl0gbmV0OiBicmlkZ2U6IGZpeCBvbGQgaW9jdGwgdW5sb2NrZWQg bmV0IGRldmljZSB3YWxrCgpbIFVwc3RyZWFtIGNvbW1pdCAzMWNhMDQ1OGE2MWE1MDJhZGI3ZWQx OTJiZjk3MTZjNmQwNTc5MWE1IF0KCmdldF9icmlkZ2VfaWZpbmRpY2VzKCkgaXMgdXNlZCBmcm9t IHRoZSBvbGQgImRldmljZWxlc3MiIGJyaWRnZSBpb2N0bApjYWxscyB3aGljaCBhcmVuJ3QgY2Fs bGVkIHdpdGggcnRubCBoZWxkLiBUaGUgY29tbWVudCBhYm92ZSBzYXlzIHRoYXQgaXQgaXMKY2Fs bGVkIHdpdGggcnRubCBidXQgdGhhdCBpcyBub3QgcmVhbGx5IHRoZSBjYXNlLgpIZXJlJ3MgYSBz YW1wbGUgb3V0cHV0IGZyb20gYSB0ZXN0IEFTU0VSVF9SVE5MKCkgd2hpY2ggSSBwdXQgaW4KZ2V0 X2JyaWRnZV9pZmluZGljZXMgYW5kIGV4ZWN1dGVkICJicmN0bCBzaG93IjoKWyAgOTU3LjQyMjcy Nl0gUlROTDogYXNzZXJ0aW9uIGZhaWxlZCBhdCBuZXQvYnJpZGdlLy9icl9pb2N0bC5jICgzMCkK WyAgOTU3LjQyMjkyNV0gQ1BVOiAwIFBJRDogMTg2MiBDb21tOiBicmN0bCBUYWludGVkOiBHICAg ICAgICBXICBPCjQuNi4wLXJjNCsgIzE1NwpbICA5NTcuNDIzMDA5XSBIYXJkd2FyZSBuYW1lOiBR RU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwKQklPUyAxLjguMS0yMDE1MDMx OF8xODMzNTgtIDA0LzAxLzIwMTQKWyAgOTU3LjQyMzAwOV0gIDAwMDAwMDAwMDAwMDAwMDAgZmZm Zjg4MDA1OGFkZmRmMCBmZmZmZmZmZjgxMzhkZWM1CjAwMDAwMDAwMDAwMDA0MDAKWyAgOTU3LjQy MzAwOV0gIGZmZmZmZmZmODFjZTgzODAgZmZmZjg4MDA1OGFkZmU1OCBmZmZmZmZmZmEwNWVhZDMy CjAwMDAwMDAwMDAwMDAwMDEKWyAgOTU3LjQyMzAwOV0gIDAwMDA3ZmZlYzFhNDQ0YjAgMDAwMDAw MDAwMDAwMDQwMCBmZmZmODgwMDUzYzE5MTMwCjAwMDAwMDAwMDAwMDg5NDAKWyAgOTU3LjQyMzAw OV0gQ2FsbCBUcmFjZToKWyAgOTU3LjQyMzAwOV0gIFs8ZmZmZmZmZmY4MTM4ZGVjNT5dIGR1bXBf c3RhY2srMHg4NS8weGMwClsgIDk1Ny40MjMwMDldICBbPGZmZmZmZmZmYTA1ZWFkMzI+XQpicl9p b2N0bF9kZXZpY2VsZXNzX3N0dWIrMHgyMTIvMHgyZTAgW2JyaWRnZV0KWyAgOTU3LjQyMzAwOV0g IFs8ZmZmZmZmZmY4MTUxNWJlYj5dIHNvY2tfaW9jdGwrMHgyMmIvMHgyOTAKWyAgOTU3LjQyMzAw OV0gIFs8ZmZmZmZmZmY4MTI2YmE3NT5dIGRvX3Zmc19pb2N0bCsweDk1LzB4NzAwClsgIDk1Ny40 MjMwMDldICBbPGZmZmZmZmZmODEyNmMxNTk+XSBTeVNfaW9jdGwrMHg3OS8weDkwClsgIDk1Ny40 MjMwMDldICBbPGZmZmZmZmZmODE2M2E0YzA+XSBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4 MjMvMHhjMQoKU2luY2UgaXQgb25seSByZWFkcyBicmlkZ2UgaWZpbmRpY2VzLCB3ZSBjYW4gdXNl IHJjdSB0byBzYWZlbHkgd2FsayB0aGUgbmV0CmRldmljZSBsaXN0LiBBbHNvIHJlbW92ZSB0aGUg d3JvbmcgcnRubCBjb21tZW50IGFib3ZlLgoKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2Fu ZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9pb2N0bC5j IHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX2lvY3RsLmMgYi9uZXQvYnJpZGdlL2JyX2lv Y3RsLmMKaW5kZXggOGQ0MjNiYy4uZjg3NmY3MCAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9p b2N0bC5jCisrKyBiL25ldC9icmlkZ2UvYnJfaW9jdGwuYwpAQCAtMjEsMTggKzIxLDE5IEBACiAj aW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlICJicl9wcml2YXRlLmgiCiAKLS8qIGNh bGxlZCB3aXRoIFJUTkwgKi8KIHN0YXRpYyBpbnQgZ2V0X2JyaWRnZV9pZmluZGljZXMoc3RydWN0 IG5ldCAqbmV0LCBpbnQgKmluZGljZXMsIGludCBudW0pCiB7CiAJc3RydWN0IG5ldF9kZXZpY2Ug KmRldjsKIAlpbnQgaSA9IDA7CiAKLQlmb3JfZWFjaF9uZXRkZXYobmV0LCBkZXYpIHsKKwlyY3Vf cmVhZF9sb2NrKCk7CisJZm9yX2VhY2hfbmV0ZGV2X3JjdShuZXQsIGRldikgewogCQlpZiAoaSA+ PSBudW0pCiAJCQlicmVhazsKIAkJaWYgKGRldi0+cHJpdl9mbGFncyAmIElGRl9FQlJJREdFKQog CQkJaW5kaWNlc1tpKytdID0gZGV2LT5pZmluZGV4OwogCX0KKwlyY3VfcmVhZF91bmxvY2soKTsK IAogCXJldHVybiBpOwogfQotLSAKMi40LjEKCgpGcm9tIGI5NDkzOTE1MmE2YzZjYjhjOWRkNmJl ZjFiMWY5NzFiMmMxYmZjMmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEthbmdqaWUg THUgPGthbmdqaWVsdUBnbWFpbC5jb20+CkRhdGU6IFN1biwgOCBNYXkgMjAxNiAxMjoxMDoxNCAt MDQwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMjZdIG5ldDogZml4IGEga2VybmVsIGluZm9sZWFrIGlu IHgyNSBtb2R1bGUKClsgVXBzdHJlYW0gY29tbWl0IDc5ZTQ4NjUwMzIwZTZmYmE0ODM2OWZjY2Yx M2ZkMDQ1MzE1YjE5YjggXQoKU3RhY2sgb2JqZWN0ICJkdGVfZmFjaWxpdGllcyIgaXMgYWxsb2Nh dGVkIGluIHgyNV9yeF9jYWxsX3JlcXVlc3QoKSwKd2hpY2ggaXMgc3VwcG9zZWQgdG8gYmUgaW5p dGlhbGl6ZWQgaW4geDI1X25lZ290aWF0ZV9mYWNpbGl0aWVzLgpIb3dldmVyLCA1IGZpZWxkcyAo OCBieXRlcyBpbiB0b3RhbCkgYXJlIG5vdCBpbml0aWFsaXplZC4gVGhpcwpvYmplY3QgaXMgdGhl biBjb3BpZWQgdG8gdXNlcmxhbmQgdmlhIGNvcHlfdG9fdXNlciwgdGh1cyBpbmZvbGVhawpvY2N1 cnMuCgpTaWduZWQtb2ZmLWJ5OiBLYW5namllIEx1IDxramx1QGdhdGVjaC5lZHU+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQveDI1 L3gyNV9mYWNpbGl0aWVzLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoK ZGlmZiAtLWdpdCBhL25ldC94MjUveDI1X2ZhY2lsaXRpZXMuYyBiL25ldC94MjUveDI1X2ZhY2ls aXRpZXMuYwppbmRleCA3ZWNkMDRjLi45OTdmZjdiIDEwMDY0NAotLS0gYS9uZXQveDI1L3gyNV9m YWNpbGl0aWVzLmMKKysrIGIvbmV0L3gyNS94MjVfZmFjaWxpdGllcy5jCkBAIC0yNzcsNiArMjc3 LDcgQEAgaW50IHgyNV9uZWdvdGlhdGVfZmFjaWxpdGllcyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3Qgc29jayAqc2ssCiAKIAltZW1zZXQoJnRoZWlycywgMCwgc2l6ZW9mKHRoZWlycykpOwog CW1lbWNweShuZXcsIG91cnMsIHNpemVvZigqbmV3KSk7CisJbWVtc2V0KGR0ZSwgMCwgc2l6ZW9m KCpkdGUpKTsKIAogCWxlbiA9IHgyNV9wYXJzZV9mYWNpbGl0aWVzKHNrYiwgJnRoZWlycywgZHRl LCAmeDI1LT52Y19mYWNpbF9tYXNrKTsKIAlpZiAobGVuIDwgMCkKLS0gCjIuNC4xCgoKRnJvbSAy NzQ2ZGNjZDViNzJiYmY0MWE0OTM4ZTNkNDRkNGJhODcxMjgyNmFkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1v biwgOSBNYXkgMjAxNiAyMDo1NToxNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMjZdIHRjcDog cmVmcmVzaCBza2IgdGltZXN0YW1wIGF0IHJldHJhbnNtaXQgdGltZQoKWyBVcHN0cmVhbSBjb21t aXQgMTBhODE5ODBmYzQ3ZTY0ZmZhYzI2YTA3MzEzOTgxM2QzZjY5N2I2NCBdCgpJbiB0aGUgdmVy eSB1bmxpa2VseSBjYXNlIF9fdGNwX3JldHJhbnNtaXRfc2tiKCkgY2FuIG5vdCB1c2UgdGhlIGNs b25pbmcKZG9uZSBpbiB0Y3BfdHJhbnNtaXRfc2tiKCksIHdlIG5lZWQgdG8gcmVmcmVzaCBza2Jf bXN0YW1wIGJlZm9yZSBkb2luZwp0aGUgY29weSBhbmQgdHJhbnNtaXQsIG90aGVyd2lzZSBUQ1Ag VFMgdmFsIHdpbGwgYmUgYW4gZXhhY3QgY29weSBvZgpvcmlnaW5hbCB0cmFuc21pdC4KCkZpeGVz OiA3ZmFlZTVjMGQ1MTQgKCJ0Y3A6IHJlbW92ZSBUQ1BfU0tCX0NCKHNrYiktPndoZW4iKQpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBZdWNodW5n IENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVu Z0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX291dHB1dC5jIHwgNiArKysrLS0KIDEgZmlsZSBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvdGNwX291dHB1dC5jIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCmluZGV4IDFlYTQzMjIu LmFlNjZjODQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQvaXB2 NC90Y3Bfb3V0cHV0LmMKQEAgLTI2MjcsOCArMjYyNywxMCBAQCBpbnQgX190Y3BfcmV0cmFuc21p dF9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCSAqLwogCWlmICh1 bmxpa2VseSgoTkVUX0lQX0FMSUdOICYmICgodW5zaWduZWQgbG9uZylza2ItPmRhdGEgJiAzKSkg fHwKIAkJICAgICBza2JfaGVhZHJvb20oc2tiKSA+PSAweEZGRkYpKSB7Ci0JCXN0cnVjdCBza19i dWZmICpuc2tiID0gX19wc2tiX2NvcHkoc2tiLCBNQVhfVENQX0hFQURFUiwKLQkJCQkJCSAgIEdG UF9BVE9NSUMpOworCQlzdHJ1Y3Qgc2tfYnVmZiAqbnNrYjsKKworCQlza2JfbXN0YW1wX2dldCgm c2tiLT5za2JfbXN0YW1wKTsKKwkJbnNrYiA9IF9fcHNrYl9jb3B5KHNrYiwgTUFYX1RDUF9IRUFE RVIsIEdGUF9BVE9NSUMpOwogCQllcnIgPSBuc2tiID8gdGNwX3RyYW5zbWl0X3NrYihzaywgbnNr YiwgMCwgR0ZQX0FUT01JQykgOgogCQkJICAgICAtRU5PQlVGUzsKIAl9IGVsc2UgewotLSAKMi40 LjEKCg== ----Next_Part(Mon_May_16_12_35_13_2016_545)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_44.mbox" RnJvbSBjYjc2ZmUwMTY4YzQxZWYzNGJhNmVjY2E4MTA3YTVhYTE2ODkwY2JmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgUy4gTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KRGF0ZTogU3VuLCAxMCBBcHIgMjAxNiAyMzowMTozMCAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg MDEvMzhdIGRlY25ldDogRG8gbm90IGJ1aWxkIHJvdXRlcyB0byBkZXZpY2VzIHdpdGhvdXQgZGVj bmV0CiBwcml2YXRlIGRhdGEuCgpbIFVwc3RyZWFtIGNvbW1pdCBhMzZhMGQ0MDA4NDg4ZmE1NDVj NzQ0NDVkNjllYWY1NjM3N2Q1ZDRlIF0KCkluIHBhcnRpY3VsYXIsIG1ha2Ugc3VyZSB3ZSBjaGVj ayBmb3IgZGVjbmV0IHByaXZhdGUgcHJlc2VuY2UKZm9yIGxvb3BiYWNrIGRldmljZXMuCgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2RlY25ldC9kbl9yb3V0ZS5jIHwgOSArKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvZGVjbmV0L2RuX3JvdXRl LmMgYi9uZXQvZGVjbmV0L2RuX3JvdXRlLmMKaW5kZXggNjA3YTE0Zi4uYjFkYzA5NiAxMDA2NDQK LS0tIGEvbmV0L2RlY25ldC9kbl9yb3V0ZS5jCisrKyBiL25ldC9kZWNuZXQvZG5fcm91dGUuYwpA QCAtMTAzNCwxMCArMTAzNCwxMyBAQCBzb3VyY2Vfb2s6CiAJaWYgKCFmbGQuZGFkZHIpIHsKIAkJ ZmxkLmRhZGRyID0gZmxkLnNhZGRyOwogCi0JCWVyciA9IC1FQUREUk5PVEFWQUlMOwogCQlpZiAo ZGV2X291dCkKIAkJCWRldl9wdXQoZGV2X291dCk7CisJCWVyciA9IC1FSU5WQUw7CiAJCWRldl9v dXQgPSBpbml0X25ldC5sb29wYmFja19kZXY7CisJCWlmICghZGV2X291dC0+ZG5fcHRyKQorCQkJ Z290byBvdXQ7CisJCWVyciA9IC1FQUREUk5PVEFWQUlMOwogCQlkZXZfaG9sZChkZXZfb3V0KTsK IAkJaWYgKCFmbGQuZGFkZHIpIHsKIAkJCWZsZC5kYWRkciA9CkBAIC0xMTEwLDYgKzExMTMsOCBA QCBzb3VyY2Vfb2s6CiAJCWlmIChkZXZfb3V0ID09IE5VTEwpCiAJCQlnb3RvIG91dDsKIAkJZG5f ZGIgPSByY3VfZGVyZWZlcmVuY2VfcmF3KGRldl9vdXQtPmRuX3B0cik7CisJCWlmICghZG5fZGIp CisJCQlnb3RvIGVfaW52YWw7CiAJCS8qIFBvc3NpYmxlIGltcHJvdmVtZW50IC0gY2hlY2sgYWxs IGRldmljZXMgZm9yIGxvY2FsIGFkZHIgKi8KIAkJaWYgKGRuX2Rldl9pc2xvY2FsKGRldl9vdXQs IGZsZC5kYWRkcikpIHsKIAkJCWRldl9wdXQoZGV2X291dCk7CkBAIC0xMTUxLDYgKzExNTYsOCBA QCBzZWxlY3Rfc291cmNlOgogCQkJZGV2X3B1dChkZXZfb3V0KTsKIAkJZGV2X291dCA9IGluaXRf bmV0Lmxvb3BiYWNrX2RldjsKIAkJZGV2X2hvbGQoZGV2X291dCk7CisJCWlmICghZGV2X291dC0+ ZG5fcHRyKQorCQkJZ290byBlX2ludmFsOwogCQlmbGQuZmxvd2lkbl9vaWYgPSBkZXZfb3V0LT5p ZmluZGV4OwogCQlpZiAocmVzLmZpKQogCQkJZG5fZmliX2luZm9fcHV0KHJlcy5maSk7Ci0tIAoy LjEuMAoKCkZyb20gMGI1NTRlOWM1M2Q1YTQ0ZjdiNWQwNmU5NDY5YzE1NjY2MjFmNDZhZiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hyaXMgRnJpZXNlbiA8Y2hyaXMuZnJpZXNlbkB3 aW5kcml2ZXIuY29tPgpEYXRlOiBGcmksIDggQXByIDIwMTYgMTU6MjE6MzAgLTA2MDAKU3ViamVj dDogW1BBVENIIDAyLzM4XSByb3V0ZTogZG8gbm90IGNhY2hlIGZpYiByb3V0ZSBpbmZvIG9uIGxv Y2FsIHJvdXRlcyB3aXRoCiBvaWYKClsgVXBzdHJlYW0gY29tbWl0IGQ2ZDVlOTk5ZTVkZjY3Zjhl YzIwYjZiZTQ1ZTIyMjk0NTVlZTM2OTkgXQoKRm9yIGxvY2FsIHJvdXRlcyB0aGF0IHJlcXVpcmUg YSBwYXJ0aWN1bGFyIG91dHB1dCBpbnRlcmZhY2Ugd2UgZG8gbm90IHdhbnQKdG8gY2FjaGUgdGhl IHJlc3VsdC4gIENhY2hpbmcgdGhlIHJlc3VsdCBjYXVzZXMgaW5jb3JyZWN0IGJlaGF2aW91ciB3 aGVuCnRoZXJlIGFyZSBtdWx0aXBsZSBzb3VyY2UgYWRkcmVzc2VzIG9uIHRoZSBpbnRlcmZhY2Uu ICBUaGUgZW5kIHJlc3VsdApiZWluZyB0aGF0IGlmIHRoZSBpbnRlbmRlZCByZWNpcGllbnQgaXMg d2FpdGluZyBvbiB0aGF0IGludGVyZmFjZSBmb3IgdGhlCnBhY2tldCBoZSB3b24ndCByZWNlaXZl IGl0IGJlY2F1c2UgaXQgd2lsbCBiZSBkZWxpdmVyZWQgb24gdGhlIGxvb3BiYWNrCmludGVyZmFj ZSBhbmQgdGhlIElQX1BLVElORk8gaXBpX2lmaW5kZXggd2lsbCBiZSBzZXQgdG8gdGhlIGxvb3Bi YWNrCmludGVyZmFjZSBhcyB3ZWxsLgoKVGhpcyBjYW4gYmUgdGVzdGVkIGJ5IHJ1bm5pbmcgYSBw cm9ncmFtIHN1Y2ggYXMgImRoY3BfcmVsZWFzZSIgd2hpY2gKYXR0ZW1wdHMgdG8gaW5qZWN0IGEg cGFja2V0IG9uIGEgcGFydGljdWxhciBpbnRlcmZhY2Ugc28gdGhhdCBpdCBpcwpyZWNlaXZlZCBi eSBhbm90aGVyIHByb2dyYW0gb24gdGhlIHNhbWUgYm9hcmQuICBUaGUgcmVjZWl2aW5nIHByb2Nl c3MKc2hvdWxkIHNlZSBhbiBJUF9QS1RJTkZPIGlwaV9pZm5kZXggdmFsdWUgb2YgdGhlIHNvdXJj ZSBpbnRlcmZhY2UKKGUuZy4sIGV0aDEpIGluc3RlYWQgb2YgdGhlIGxvb3BiYWNrIGludGVyZmFj ZSAoZS5nLiwgbG8pLiAgVGhlIHBhY2tldAp3aWxsIHN0aWxsIGFwcGVhciBvbiB0aGUgbG9vcGJh Y2sgaW50ZXJmYWNlIGluIHRjcGR1bXAgYnV0IHRoZSBpbXBvcnRhbnQKYXNwZWN0IGlzIHRoYXQg dGhlIENNU0cgaW5mbyBpcyBjb3JyZWN0LgoKU2FtcGxlIGRoY3BfcmVsZWFzZSBjb21tYW5kIGxp bmU6CgogICBkaGNwX3JlbGVhc2UgZXRoMSAxOTIuMTY4LjIwNC4yMjIgMDI6MTE6MzM6MjI6NDQ6 NjYKClNpZ25lZC1vZmYtYnk6IEFsbGFpbiBMZWdhY3kgPGFsbGFpbi5sZWdhY3lAd2luZHJpdmVy LmNvbT4KU2lnbmVkIG9mZi1ieTogQ2hyaXMgRnJpZXNlbiA8Y2hyaXMuZnJpZXNlbkB3aW5kcml2 ZXIuY29tPgpSZXZpZXdlZC1ieTogSnVsaWFuIEFuYXN0YXNvdiA8amFAc3NpLmJnPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lw djQvcm91dGUuYyB8IDEyICsrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwpp bmRleCAwMmM2MjI5Li5iMDUwY2Y5IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yb3V0ZS5jCisrKyBi L25ldC9pcHY0L3JvdXRlLmMKQEAgLTIwNDUsNiArMjA0NSwxOCBAQCBzdGF0aWMgc3RydWN0IHJ0 YWJsZSAqX19ta3JvdXRlX291dHB1dChjb25zdCBzdHJ1Y3QgZmliX3Jlc3VsdCAqcmVzLAogCQkg Ki8KIAkJaWYgKGZpICYmIHJlcy0+cHJlZml4bGVuIDwgNCkKIAkJCWZpID0gTlVMTDsKKwl9IGVs c2UgaWYgKCh0eXBlID09IFJUTl9MT0NBTCkgJiYgKG9yaWdfb2lmICE9IDApICYmCisJCSAgIChv cmlnX29pZiAhPSBkZXZfb3V0LT5pZmluZGV4KSkgeworCQkvKiBGb3IgbG9jYWwgcm91dGVzIHRo YXQgcmVxdWlyZSBhIHBhcnRpY3VsYXIgb3V0cHV0IGludGVyZmFjZQorCQkgKiB3ZSBkbyBub3Qg d2FudCB0byBjYWNoZSB0aGUgcmVzdWx0LiAgQ2FjaGluZyB0aGUgcmVzdWx0CisJCSAqIGNhdXNl cyBpbmNvcnJlY3QgYmVoYXZpb3VyIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIHNvdXJjZQorCQkg KiBhZGRyZXNzZXMgb24gdGhlIGludGVyZmFjZSwgdGhlIGVuZCByZXN1bHQgYmVpbmcgdGhhdCBp ZiB0aGUKKwkJICogaW50ZW5kZWQgcmVjaXBpZW50IGlzIHdhaXRpbmcgb24gdGhhdCBpbnRlcmZh Y2UgZm9yIHRoZQorCQkgKiBwYWNrZXQgaGUgd29uJ3QgcmVjZWl2ZSBpdCBiZWNhdXNlIGl0IHdp bGwgYmUgZGVsaXZlcmVkIG9uCisJCSAqIHRoZSBsb29wYmFjayBpbnRlcmZhY2UgYW5kIHRoZSBJ UF9QS1RJTkZPIGlwaV9pZmluZGV4IHdpbGwKKwkJICogYmUgc2V0IHRvIHRoZSBsb29wYmFjayBp bnRlcmZhY2UgYXMgd2VsbC4KKwkJICovCisJCWZpID0gTlVMTDsKIAl9CiAKIAlmbmhlID0gTlVM TDsKLS0gCjIuMS4wCgoKRnJvbSAwZGU4NzAxMWY1NjZmY2EzMTEyZGZjYjc2MjlhZTBmYWRhMWI4 NDI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoaWFzIEtyYXVzZSA8bWluaXBs aUBnb29nbGVtYWlsLmNvbT4KRGF0ZTogU3VuLCAxMCBBcHIgMjAxNiAxMjo1MjoyOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDMvMzhdIHBhY2tldDogZml4IGhlYXAgaW5mbyBsZWFrIGluIFBBQ0tF VF9ESUFHX01DTElTVAogc29ja19kaWFnIGludGVyZmFjZQoKWyBVcHN0cmVhbSBjb21taXQgMzA5 Y2YzN2ZlMmE3ODEyNzliNzY3NWQ0YmI3MTczMTk4ZTUzMjg2NyBdCgpCZWNhdXNlIHdlIG1pc3Mg dG8gd2lwZSB0aGUgcmVtYWluZGVyIG9mIGktPmFkZHJbXSBpbiBwYWNrZXRfbWNfYWRkKCksCnBk aWFnX3B1dF9tY2xpc3QoKSBsZWFrcyB1bmluaXRpYWxpemVkIGhlYXAgYnl0ZXMgdmlhIHRoZQpQ QUNLRVRfRElBR19NQ0xJU1QgbmV0bGluayBhdHRyaWJ1dGUuCgpGaXggdGhpcyBieSBleHBsaWNp dGx5IG1lbXNldCgwKWluZyB0aGUgcmVtYWluaW5nIGJ5dGVzIGluIGktPmFkZHJbXS4KCkZpeGVz OiBlZWE2OGUyZjFhMDAgKCJwYWNrZXQ6IFJlcG9ydCBzb2NrZXQgbWNsaXN0IGluZm8gdmlhIGRp YWcgbW9kdWxlIikKU2lnbmVkLW9mZi1ieTogTWF0aGlhcyBLcmF1c2UgPG1pbmlwbGlAZ29vZ2xl bWFpbC5jb20+CkNjOiBFcmljIFcuIEJpZWRlcm1hbiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpD YzogUGF2ZWwgRW1lbHlhbm92IDx4ZW11bEBwYXJhbGxlbHMuY29tPgpBY2tlZC1ieTogUGF2ZWwg RW1lbHlhbm92IDx4ZW11bEB2aXJ0dW96em8uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8 IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5kZXggZGExYWUwZTEu LjljYzdiNTEgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYwpAQCAtMzQzNiw2ICszNDM2LDcgQEAgc3RhdGljIGludCBwYWNrZXRf bWNfYWRkKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHBhY2tldF9tcmVxX21heCAqbXJlcSkKIAlp LT5pZmluZGV4ID0gbXJlcS0+bXJfaWZpbmRleDsKIAlpLT5hbGVuID0gbXJlcS0+bXJfYWxlbjsK IAltZW1jcHkoaS0+YWRkciwgbXJlcS0+bXJfYWRkcmVzcywgaS0+YWxlbik7CisJbWVtc2V0KGkt PmFkZHIgKyBpLT5hbGVuLCAwLCBzaXplb2YoaS0+YWRkcikgLSBpLT5hbGVuKTsKIAlpLT5jb3Vu dCA9IDE7CiAJaS0+bmV4dCA9IHBvLT5tY2xpc3Q7CiAJcG8tPm1jbGlzdCA9IGk7Ci0tIAoyLjEu MAoKCkZyb20gOGYyZmExNjMwZDZmMGVmMjRlMmVjOGJkYTRhNDE5NDhhMjJlNGZlZiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTGFycyBQZXJzc29uIDxsYXJzLnBlcnNzb25AYXhpcy5j b20+CkRhdGU6IFR1ZSwgMTIgQXByIDIwMTYgMDg6NDU6NTIgKzAyMDAKU3ViamVjdDogW1BBVENI IDA0LzM4XSBuZXQ6IHNjaGVkOiBkbyBub3QgcmVxdWV1ZSBhIE5VTEwgc2tiCgpbIFVwc3RyZWFt IGNvbW1pdCAzZGNkNDkzZmJlYmZkNjMxOTEzZGY2ZTI3NzNjYzI5NWQzYmY3ZDIyIF0KCkEgZmFp bHVyZSBpbiB2YWxpZGF0ZV94bWl0X3NrYl9saXN0KCkgdHJpZ2dlcmVkIGFuIHVuY29uZGl0aW9u YWwgY2FsbAp0byBkZXZfcmVxdWV1ZV9za2Igd2l0aCBza2I9TlVMTC4gVGhpcyBzbG93bHkgZ3Jv d3MgdGhlIHF1ZXVlCmRpc2NpcGxpbmUncyBxbGVuIGNvdW50IHVudGlsIGFsbCB0cmFmZmljIHRo cm91Z2ggdGhlIHF1ZXVlIHN0b3BzLgoKV2UgdGFrZSB0aGUgb3B0aW1pc3RpYyBhcHByb2FjaCBh bmQgY29udGludWUgcnVubmluZyB0aGUgcXVldWUgYWZ0ZXIgYQpmYWlsdXJlIHNpbmNlIGl0IGlz IHVua25vd24gaWYgbGF0ZXIgcGFja2V0cyBhbHNvIHdpbGwgZmFpbCBpbiB0aGUKdmFsaWRhdGUg cGF0aC4KCkZpeGVzOiA1NWE5M2IzZWE3ODAgKCJxZGlzYzogdmFsaWRhdGUgc2tiIHdpdGhvdXQg aG9sZGluZyBsb2NrIikKU2lnbmVkLW9mZi1ieTogTGFycyBQZXJzc29uIDxsYXJwZXJAYXhpcy5j b20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2No ZWQvc2NoX2dlbmVyaWMuYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2dlbmVyaWMuYyBi L25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jCmluZGV4IDE2YmM4M2IuLmFhNDcyNTAgMTAwNjQ0Ci0t LSBhL25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jCisrKyBiL25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5j CkBAIC0xNTksMTIgKzE1OSwxNSBAQCBpbnQgc2NoX2RpcmVjdF94bWl0KHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBRZGlzYyAqcSwKIAlpZiAodmFsaWRhdGUpCiAJCXNrYiA9IHZhbGlkYXRl X3htaXRfc2tiX2xpc3Qoc2tiLCBkZXYpOwogCi0JaWYgKHNrYikgeworCWlmIChsaWtlbHkoc2ti KSkgewogCQlIQVJEX1RYX0xPQ0soZGV2LCB0eHEsIHNtcF9wcm9jZXNzb3JfaWQoKSk7CiAJCWlm ICghbmV0aWZfeG1pdF9mcm96ZW5fb3Jfc3RvcHBlZCh0eHEpKQogCQkJc2tiID0gZGV2X2hhcmRf c3RhcnRfeG1pdChza2IsIGRldiwgdHhxLCAmcmV0KTsKIAogCQlIQVJEX1RYX1VOTE9DSyhkZXYs IHR4cSk7CisJfSBlbHNlIHsKKwkJc3Bpbl9sb2NrKHJvb3RfbG9jayk7CisJCXJldHVybiBxZGlz Y19xbGVuKHEpOwogCX0KIAlzcGluX2xvY2socm9vdF9sb2NrKTsKIAotLSAKMi4xLjAKCgpGcm9t IDViM2Y0MmNhMTE0MTM3MGEzZDA5MzljZTI1M2M3ZTVjYzhlNDVjNTcgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGZiLmNvbT4KRGF0ZTogVHVl LCAxMiBBcHIgMjAxNiAxMDoyNjoxOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMzhdIGJwZi92 ZXJpZmllcjogcmVqZWN0IGludmFsaWQgTERfQUJTIHwgQlBGX0RXCiBpbnN0cnVjdGlvbgoKWyBV cHN0cmVhbSBjb21taXQgZDgyYmNjYzY5MDQxYTUxZjdiN2I5YjRhMzZkYjA3NzJmNGNkYmEyMSBd Cgp2ZXJpZmllciBtdXN0IGNoZWNrIGZvciByZXNlcnZlZCBzaXplIGJpdHMgaW4gaW5zdHJ1Y3Rp b24gb3Bjb2RlIGFuZApyZWplY3QgQlBGX0xEIHwgQlBGX0FCUyB8IEJQRl9EVyBhbmQgQlBGX0xE IHwgQlBGX0lORCB8IEJQRl9EVyBpbnN0cnVjdGlvbnMsCm90aGVyd2lzZSBpbnRlcnByZXRlciB3 aWxsIFdBUk5fUkFURUxJTUlUIG9uIHRoZW0gZHVyaW5nIGV4ZWN1dGlvbi4KCkZpeGVzOiBkZGQ4 NzJiYzMwOTggKCJicGY6IHZlcmlmaWVyOiBhZGQgY2hlY2tzIGZvciBCUEZfQUJTIHwgQlBGX0lO RCBpbnN0cnVjdGlvbnMiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBr ZXJuZWwub3JnPgpBY2tlZC1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5l dD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGtlcm5lbC9icGYvdmVyaWZpZXIuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspCgpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92 ZXJpZmllci5jCmluZGV4IDJlN2Y3YWIuLmMyMWNiMTQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYv dmVyaWZpZXIuYworKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTEzNDgsNiArMTM0OCw3 IEBAIHN0YXRpYyBpbnQgY2hlY2tfbGRfYWJzKHN0cnVjdCB2ZXJpZmllcl9lbnYgKmVudiwgc3Ry dWN0IGJwZl9pbnNuICppbnNuKQogCX0KIAogCWlmIChpbnNuLT5kc3RfcmVnICE9IEJQRl9SRUdf MCB8fCBpbnNuLT5vZmYgIT0gMCB8fAorCSAgICBCUEZfU0laRShpbnNuLT5jb2RlKSA9PSBCUEZf RFcgfHwKIAkgICAgKG1vZGUgPT0gQlBGX0FCUyAmJiBpbnNuLT5zcmNfcmVnICE9IEJQRl9SRUdf MCkpIHsKIAkJdmVyYm9zZSgiQlBGX0xEX0FCUyB1c2VzIHJlc2VydmVkIGZpZWxkc1xuIik7CiAJ CXJldHVybiAtRUlOVkFMOwotLSAKMi4xLjAKCgpGcm9tIDBkMjE1MDc5ZDhlMjcyN2EwYjE1ZDU1 NWJjNDA2YzE5YWY2MzFkM2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/ cT9Caj1DMz1COHJuPTIwTW9yaz89IDxiam9ybkBtb3JrLm5vPgpEYXRlOiBUdWUsIDEyIEFwciAy MDE2IDE2OjExOjEyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8zOF0gY2RjX21iaW06IGFwcGx5 ICJORFAgdG8gZW5kIiBxdWlyayB0byBhbGwgSHVhd2VpCiBkZXZpY2VzCk1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBjNWI1MzQzY2ZiYzlmNDZhZjY1 MDMzZmE0ZjQwN2Q3YjdkOTgzNzFkIF0KCldlIG5vdyBoYXZlIGEgcG9zaXRpdmUgcmVwb3J0IG9m IGFub3RoZXIgSHVhd2VpIGRldmljZSBuZWVkaW5nCnRoaXMgcXVpcms6IFRoZSBNRTkwNnMtMTU4 ICgxMmQxOjE1YzEpLiAgVGhpcyBpcyBhbiBtLjIgZm9ybQpmYWN0b3IgbW9kZW0gd2l0aCBubyBv YnZpb3VzIHJlbGF0aW9uc2hpcCB0byB0aGUgRTMzNzIgKDEyZDE6MTU3ZCkKd2UgYWxyZWFkeSBo YXZlIGEgcXVpcmsgZW50cnkgZm9yLiAgVGhpcyBpcyByZWFzb24gZW5vdWdoIHRvCmJlbGlldmUg dGhlIHF1aXJrIG1pZ2h0IGJlIG5lY2Vzc2FyeSBmb3IgYW55IG51bWJlciBvZiBjdXJyZW50CmFu ZCBmdXR1cmUgSHVhd2VpIGRldmljZXMuCgpBcHBseWluZyB0aGUgcXVpcmsgdG8gYWxsIEh1YXdl aSBkZXZpY2VzLCBzaW5jZSBpdCBpcyBjcnVjaWFsCnRvIGFueSBkZXZpY2UgYWZmZWN0ZWQgYnkg dGhlIGZpcm13YXJlIGJ1Zywgd2hpbGUgdGhlIGltcGFjdApvbiBub24tYWZmZWN0ZWQgZGV2aWNl cyBpcyBuZWdsaWdpYmxlLgoKVGhlIHF1aXJrIGNhbiBpZiBuZWNlc3NhcnkgYmUgZGlzYWJsZWQg cGVyLWRldmljZSBieSB3cml0aW5nCk4gdG8gL3N5cy9jbGFzcy9uZXQvPGlmYWNlPi9jZGNfbmNt L25kcF90b19lbmQKClJlcG9ydGVkLWJ5OiBBbmRyZWFzIEZldHQgPGFuZHJlYXMuZmV0dEBzZWN1 bmV0LmNvbT4KU2lnbmVkLW9mZi1ieTogQmrDuHJuIE1vcmsgPGJqb3JuQG1vcmsubm8+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC91c2IvY2RjX21iaW0uYyB8IDkgKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Vz Yi9jZGNfbWJpbS5jIGIvZHJpdmVycy9uZXQvdXNiL2NkY19tYmltLmMKaW5kZXggYmRkODNkOS4u OTZhNTAyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL2NkY19tYmltLmMKKysrIGIvZHJp dmVycy9uZXQvdXNiL2NkY19tYmltLmMKQEAgLTYxNyw4ICs2MTcsMTMgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG1iaW1fZGV2c1tdID0gewogCXsgVVNCX1ZFTkRPUl9BTkRf SU5URVJGQUNFX0lORk8oMHgwYmRiLCBVU0JfQ0xBU1NfQ09NTSwgVVNCX0NEQ19TVUJDTEFTU19N QklNLCBVU0JfQ0RDX1BST1RPX05PTkUpLAogCSAgLmRyaXZlcl9pbmZvID0gKHVuc2lnbmVkIGxv bmcpJmNkY19tYmltX2luZm8sCiAJfSwKLQkvKiBIdWF3ZWkgRTMzNzIgZmFpbHMgdW5sZXNzIE5E UCBjb21lcyBhZnRlciB0aGUgSVAgcGFja2V0cyAqLwotCXsgVVNCX0RFVklDRV9BTkRfSU5URVJG QUNFX0lORk8oMHgxMmQxLCAweDE1N2QsIFVTQl9DTEFTU19DT01NLCBVU0JfQ0RDX1NVQkNMQVNT X01CSU0sIFVTQl9DRENfUFJPVE9fTk9ORSksCisKKwkvKiBTb21lIEh1YXdlaSBkZXZpY2VzLCBN RTkwNnMtMTU4ICgxMmQxOjE1YzEpIGFuZCBFMzM3MgorCSAqICgxMmQxOjE1N2QpLCBhcmUga25v d24gdG8gZmFpbCB1bmxlc3MgdGhlIE5EUCBpcyBwbGFjZWQKKwkgKiBhZnRlciB0aGUgSVAgcGFj a2V0cy4gIEFwcGx5aW5nIHRoZSBxdWlyayB0byBhbGwgSHVhd2VpCisJICogZGV2aWNlcyBpcyBi cm9hZGVyIHRoYW4gbmVjZXNzYXJ5LCBidXQgaGFybWxlc3MuCisJICovCisJeyBVU0JfVkVORE9S X0FORF9JTlRFUkZBQ0VfSU5GTygweDEyZDEsIFVTQl9DTEFTU19DT01NLCBVU0JfQ0RDX1NVQkNM QVNTX01CSU0sIFVTQl9DRENfUFJPVE9fTk9ORSksCiAJICAuZHJpdmVyX2luZm8gPSAodW5zaWdu ZWQgbG9uZykmY2RjX21iaW1faW5mb19uZHBfdG9fZW5kLAogCX0sCiAJLyogZGVmYXVsdCBlbnRy eSAqLwotLSAKMi4xLjAKCgpGcm9tIDcwODk4Yzk2NzYxMzMyZWJiNTMzNjQxMjU1ZTA2NDgwYjM1 ZTk0MWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENyYWlnIEdhbGxlayA8a3JhaWdA Z29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAxMiBBcHIgMjAxNiAxMzoxMToyNSAtMDQwMApTdWJqZWN0 OiBbUEFUQ0ggMDcvMzhdIHNvcmV1c2Vwb3J0OiBmaXggb3JkZXJpbmcgZm9yIG1peGVkIHY0L3Y2 IHNvY2tldHMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29t bWl0IGQ4OTRiYTE4ZDRlNDQ5YjNhN2Y2ZWI0OTFmMTZjOWUwMjkzMzczNmUgXQoKV2l0aCB0aGUg U09fUkVVU0VQT1JUIHNvY2tldCBvcHRpb24sIGl0IGlzIHBvc3NpYmxlIHRvIGNyZWF0ZSBzb2Nr ZXRzCmluIHRoZSBBRl9JTkVUIGFuZCBBRl9JTkVUNiBkb21haW5zIHdoaWNoIGFyZSBib3VuZCB0 byB0aGUgc2FtZSBJUHY0IGFkZHJlc3MuClRoaXMgaXMgb25seSBwb3NzaWJsZSB3aXRoIFNPX1JF VVNFUE9SVCBhbmQgd2hlbiBub3QgdXNpbmcgSVBWNl9WNk9OTFkgb24KdGhlIEFGX0lORVQ2IHNv Y2tldHMuCgpQcmlvciB0byB0aGUgY29tbWl0cyByZWZlcmVuY2VkIGJlbG93LCBhbiBpbmNvbWlu ZyBJUHY0IHBhY2tldCB3b3VsZAphbHdheXMgYmUgcm91dGVkIHRvIGEgc29ja2V0IG9mIHR5cGUg QUZfSU5FVCB3aGVuIHRoaXMgbWl4ZWQtbW9kZSB3YXMgdXNlZC4KQWZ0ZXIgdGhvc2UgY2hhbmdl cywgdGhlIHNhbWUgcGFja2V0IHdvdWxkIGJlIHJvdXRlZCB0byB0aGUgbW9zdCByZWNlbnRseQpi b3VuZCBzb2NrZXQgKGlmIHRoaXMgaGFwcGVuZWQgdG8gYmUgYW4gQUZfSU5FVDYgc29ja2V0LCBp dCB3b3VsZApoYXZlIGFuIElQdjQgbWFwcGVkIElQdjYgYWRkcmVzcykuCgpUaGUgY2hhbmdlIGlu IGJlaGF2aW9yIG9jY3VycmVkIGJlY2F1c2UgdGhlIHJlY2VudCBTT19SRVVTRVBPUlQgb3B0aW1p emF0aW9ucwpzaG9ydC1jaXJjdWl0IHRoZSBzb2NrZXQgc2NvcmluZyBsb2dpYyBhcyBzb29uIGFz IHRoZXkgZmluZCBhIG1hdGNoLiAgVGhleQpkaWQgbm90IHRha2UgaW50byBhY2NvdW50IHRoZSBz Y29yaW5nIGxvZ2ljIHRoYXQgZmF2b3JzIEFGX0lORVQgc29ja2V0cwpvdmVyIEFGX0lORVQ2IHNv Y2tldHMgaW4gdGhlIGV2ZW50IG9mIGEgdGllLgoKVG8gZml4IHRoaXMgcHJvYmxlbSwgdGhpcyBw YXRjaCBjaGFuZ2VzIHRoZSBpbnNlcnRpb24gb3JkZXIgb2YgQUZfSU5FVAphbmQgQUZfSU5FVDYg YWRkcmVzc2VzIGluIHRoZSBUQ1AgYW5kIFVEUCBzb2NrZXQgbGlzdHMgd2hlbiB0aGUgc29ja2V0 cwpoYXZlIFNPX1JFVVNFUE9SVCBzZXQuICBBRl9JTkVUIHNvY2tldHMgd2lsbCBiZSBpbnNlcnRl ZCBhdCB0aGUgaGVhZCBvZiB0aGUKbGlzdCBhbmQgQUZfSU5FVDYgc29ja2V0cyB3aXRoIFNPX1JF VVNFUE9SVCBzZXQgd2lsbCBhbHdheXMgYmUgaW5zZXJ0ZWQgYXQKdGhlIHRhaWwgb2YgdGhlIGxp c3QuICBUaGlzIHdpbGwgZm9yY2UgQUZfSU5FVCBzb2NrZXRzIHRvIGFsd2F5cyBiZQpjb25zaWRl cmVkIGZpcnN0LgoKRml4ZXM6IGUzMmVhN2U3NDcyNyAoInNvcmV1c2Vwb3J0OiBmYXN0IHJldXNl cG9ydCBVRFAgc29ja2V0IHNlbGVjdGlvbiIpCkZpeGVzOiAxMjVlODBiODg2ODcgKCJzb3JldXNl cG9ydDogZmFzdCByZXVzZXBvcnQgVENQIHNvY2tldCBzZWxlY3Rpb24iKQoKUmVwb3J0ZWQtYnk6 IE1hY2llaiDFu2VuY3p5a293c2tpIDxtYXplQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IENy YWlnIEdhbGxlayA8a3JhaWdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9yY3VsaXN0X251bGxzLmggfCAz OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvbmV0L3Nv Y2suaCAgICAgICAgICAgIHwgIDYgKysrKystCiBuZXQvaXB2NC91ZHAuYyAgICAgICAgICAgICAg ICB8ICA5ICsrKysrKystLQogMyBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcmN1bGlzdF9udWxscy5oIGIv aW5jbHVkZS9saW51eC9yY3VsaXN0X251bGxzLmgKaW5kZXggMWMzM2RkNy4uNGFlOTVmNyAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9saW51eC9yY3VsaXN0X251bGxzLmgKKysrIGIvaW5jbHVkZS9saW51 eC9yY3VsaXN0X251bGxzLmgKQEAgLTk4LDYgKzk4LDQ1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBo bGlzdF9udWxsc19hZGRfaGVhZF9yY3Uoc3RydWN0IGhsaXN0X251bGxzX25vZGUgKm4sCiAJaWYg KCFpc19hX251bGxzKGZpcnN0KSkKIAkJZmlyc3QtPnBwcmV2ID0gJm4tPm5leHQ7CiB9CisKKy8q KgorICogaGxpc3RfbnVsbHNfYWRkX3RhaWxfcmN1CisgKiBAbjogdGhlIGVsZW1lbnQgdG8gYWRk IHRvIHRoZSBoYXNoIGxpc3QuCisgKiBAaDogdGhlIGxpc3QgdG8gYWRkIHRvLgorICoKKyAqIERl c2NyaXB0aW9uOgorICogQWRkcyB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgdG8gdGhlIGVuZCBvZiB0 aGUgc3BlY2lmaWVkIGhsaXN0X251bGxzLAorICogd2hpbGUgcGVybWl0dGluZyByYWNpbmcgdHJh dmVyc2Fscy4gIE5PVEU6IHRhaWwgaW5zZXJ0aW9uIHJlcXVpcmVzCisgKiBsaXN0IHRyYXZlcnNh bC4KKyAqCisgKiBUaGUgY2FsbGVyIG11c3QgdGFrZSB3aGF0ZXZlciBwcmVjYXV0aW9ucyBhcmUg bmVjZXNzYXJ5CisgKiAoc3VjaCBhcyBob2xkaW5nIGFwcHJvcHJpYXRlIGxvY2tzKSB0byBhdm9p ZCByYWNpbmcKKyAqIHdpdGggYW5vdGhlciBsaXN0LW11dGF0aW9uIHByaW1pdGl2ZSwgc3VjaCBh cyBobGlzdF9udWxsc19hZGRfaGVhZF9yY3UoKQorICogb3IgaGxpc3RfbnVsbHNfZGVsX3JjdSgp LCBydW5uaW5nIG9uIHRoaXMgc2FtZSBsaXN0LgorICogSG93ZXZlciwgaXQgaXMgcGVyZmVjdGx5 IGxlZ2FsIHRvIHJ1biBjb25jdXJyZW50bHkgd2l0aAorICogdGhlIF9yY3UgbGlzdC10cmF2ZXJz YWwgcHJpbWl0aXZlcywgc3VjaCBhcworICogaGxpc3RfbnVsbHNfZm9yX2VhY2hfZW50cnlfcmN1 KCksIHVzZWQgdG8gcHJldmVudCBtZW1vcnktY29uc2lzdGVuY3kKKyAqIHByb2JsZW1zIG9uIEFs cGhhIENQVXMuICBSZWdhcmRsZXNzIG9mIHRoZSB0eXBlIG9mIENQVSwgdGhlCisgKiBsaXN0LXRy YXZlcnNhbCBwcmltaXRpdmUgbXVzdCBiZSBndWFyZGVkIGJ5IHJjdV9yZWFkX2xvY2soKS4KKyAq Lworc3RhdGljIGlubGluZSB2b2lkIGhsaXN0X251bGxzX2FkZF90YWlsX3JjdShzdHJ1Y3QgaGxp c3RfbnVsbHNfbm9kZSAqbiwKKwkJCQkJc3RydWN0IGhsaXN0X251bGxzX2hlYWQgKmgpCit7CisJ c3RydWN0IGhsaXN0X251bGxzX25vZGUgKmksICpsYXN0ID0gTlVMTDsKKworCWZvciAoaSA9IGhs aXN0X251bGxzX2ZpcnN0X3JjdShoKTsgIWlzX2FfbnVsbHMoaSk7CisJICAgICBpID0gaGxpc3Rf bnVsbHNfbmV4dF9yY3UoaSkpCisJCWxhc3QgPSBpOworCisJaWYgKGxhc3QpIHsKKwkJbi0+bmV4 dCA9IGxhc3QtPm5leHQ7CisJCW4tPnBwcmV2ID0gJmxhc3QtPm5leHQ7CisJCXJjdV9hc3NpZ25f cG9pbnRlcihobGlzdF9udWxsc19uZXh0X3JjdShsYXN0KSwgbik7CisJfSBlbHNlIHsKKwkJaGxp c3RfbnVsbHNfYWRkX2hlYWRfcmN1KG4sIGgpOworCX0KK30KKwogLyoqCiAgKiBobGlzdF9udWxs c19mb3JfZWFjaF9lbnRyeV9yY3UgLSBpdGVyYXRlIG92ZXIgcmN1IGxpc3Qgb2YgZ2l2ZW4gdHlw ZQogICogQHRwb3M6CXRoZSB0eXBlICogdG8gdXNlIGFzIGEgbG9vcCBjdXJzb3IuCmRpZmYgLS1n aXQgYS9pbmNsdWRlL25ldC9zb2NrLmggYi9pbmNsdWRlL25ldC9zb2NrLmgKaW5kZXggMTRkM2Mw Ny4uN2EwOTE0MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc29jay5oCisrKyBiL2luY2x1ZGUv bmV0L3NvY2suaApAQCAtNjQ5LDcgKzY0OSwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2tfYWRk X25vZGVfcmN1KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGhsaXN0X2hlYWQgKmxpc3QpCiAKIHN0 YXRpYyBpbmxpbmUgdm9pZCBfX3NrX251bGxzX2FkZF9ub2RlX3JjdShzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBobGlzdF9udWxsc19oZWFkICpsaXN0KQogewotCWhsaXN0X251bGxzX2FkZF9oZWFk X3JjdSgmc2stPnNrX251bGxzX25vZGUsIGxpc3QpOworCWlmIChJU19FTkFCTEVEKENPTkZJR19J UFY2KSAmJiBzay0+c2tfcmV1c2Vwb3J0ICYmCisJICAgIHNrLT5za19mYW1pbHkgPT0gQUZfSU5F VDYpCisJCWhsaXN0X251bGxzX2FkZF90YWlsX3JjdSgmc2stPnNrX251bGxzX25vZGUsIGxpc3Qp OworCWVsc2UKKwkJaGxpc3RfbnVsbHNfYWRkX2hlYWRfcmN1KCZzay0+c2tfbnVsbHNfbm9kZSwg bGlzdCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBza19udWxsc19hZGRfbm9kZV9yY3Uoc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaGxpc3RfbnVsbHNfaGVhZCAqbGlzdCkKZGlmZiAtLWdpdCBh L25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXggMjFmYmI1NC4uNzY4M2YxZSAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQvdWRwLmMKQEAgLTI5Niw4 ICsyOTYsMTMgQEAgZm91bmQ6CiAKIAkJaHNsb3QyID0gdWRwX2hhc2hzbG90Mih1ZHB0YWJsZSwg dWRwX3NrKHNrKS0+dWRwX3BvcnRhZGRyX2hhc2gpOwogCQlzcGluX2xvY2soJmhzbG90Mi0+bG9j ayk7Ci0JCWhsaXN0X251bGxzX2FkZF9oZWFkX3JjdSgmdWRwX3NrKHNrKS0+dWRwX3BvcnRhZGRy X25vZGUsCi0JCQkJCSAmaHNsb3QyLT5oZWFkKTsKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX0lQ VjYpICYmIHNrLT5za19yZXVzZXBvcnQgJiYKKwkJCXNrLT5za19mYW1pbHkgPT0gQUZfSU5FVDYp CisJCQlobGlzdF9udWxsc19hZGRfdGFpbF9yY3UoJnVkcF9zayhzayktPnVkcF9wb3J0YWRkcl9u b2RlLAorCQkJCQkJICZoc2xvdDItPmhlYWQpOworCQllbHNlCisJCQlobGlzdF9udWxsc19hZGRf aGVhZF9yY3UoJnVkcF9zayhzayktPnVkcF9wb3J0YWRkcl9ub2RlLAorCQkJCQkJICZoc2xvdDIt PmhlYWQpOwogCQloc2xvdDItPmNvdW50Kys7CiAJCXNwaW5fdW5sb2NrKCZoc2xvdDItPmxvY2sp OwogCX0KLS0gCjIuMS4wCgoKRnJvbSAwMTMzYjIyYmIzNDI4Y2FmZjdhMWJhMjg5NzBjODdmYWQz MjBjNjQ1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQm9ya21hbm4gPGRh bmllbEBpb2dlYXJib3gubmV0PgpEYXRlOiBTYXQsIDIwIEZlYiAyMDE2IDAwOjI5OjMwICswMTAw ClN1YmplY3Q6IFtQQVRDSCAwOC8zOF0gbmV0OiB1c2Ugc2tiX3Bvc3RwdXNoX3Jjc3VtIGluc3Rl YWQgb2Ygb3duCiBpbXBsZW1lbnRhdGlvbnMKClsgVXBzdHJlYW0gY29tbWl0IDZiODNkMjhhNTVh ODkxYTlkNzBmYzYxY2NiMWMxMzhlNDdkY2JlNzQgXQoKUmVwbGFjZSBpbmRpdmlkdWFsIGltcGxl bWVudGF0aW9ucyB3aXRoIHRoZSByZWNlbnRseSBpbnRyb2R1Y2VkCnNrYl9wb3N0cHVzaF9yY3N1 bSgpIGhlbHBlci4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2Vh cmJveC5uZXQ+CkFja2VkLWJ5OiBUb20gSGVyYmVydCA8dG9tQGhlcmJlcnRsYW5kLmNvbT4KQWNr ZWQtYnk6IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9za2J1 ZmYuYyAgICAgICAgICAgICAgfCA0ICstLS0KIG5ldC9pcHY2L3JlYXNzZW1ibHkuYyAgICAgICAg ICB8IDYgKystLS0tCiBuZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jICAgICAgfCA4ICsrKy0tLS0t CiBuZXQvb3BlbnZzd2l0Y2gvdnBvcnQtbmV0ZGV2LmMgfCAyICstCiBuZXQvb3BlbnZzd2l0Y2gv dnBvcnQuaCAgICAgICAgfCA3IC0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25z KCspLCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9za2J1ZmYuYyBiL25l dC9jb3JlL3NrYnVmZi5jCmluZGV4IDg2MTZkMTEuLjc4YWJlMTEgMTAwNjQ0Ci0tLSBhL25ldC9j b3JlL3NrYnVmZi5jCisrKyBiL25ldC9jb3JlL3NrYnVmZi5jCkBAIC00NDMzLDkgKzQ0MzMsNyBA QCBpbnQgc2tiX3ZsYW5fcHVzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMTYgdmxhbl9wcm90 bywgdTE2IHZsYW5fdGNpKQogCQlza2ItPm1hY19sZW4gKz0gVkxBTl9ITEVOOwogCQlfX3NrYl9w dWxsKHNrYiwgb2Zmc2V0KTsKIAotCQlpZiAoc2tiLT5pcF9zdW1tZWQgPT0gQ0hFQ0tTVU1fQ09N UExFVEUpCi0JCQlza2ItPmNzdW0gPSBjc3VtX2FkZChza2ItPmNzdW0sIGNzdW1fcGFydGlhbChz a2ItPmRhdGEKLQkJCQkJKyAoMiAqIEVUSF9BTEVOKSwgVkxBTl9ITEVOLCAwKSk7CisJCXNrYl9w b3N0cHVzaF9yY3N1bShza2IsIHNrYi0+ZGF0YSArICgyICogRVRIX0FMRU4pLCBWTEFOX0hMRU4p OwogCX0KIAlfX3ZsYW5faHdhY2NlbF9wdXRfdGFnKHNrYiwgdmxhbl9wcm90bywgdmxhbl90Y2kp OwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcmVhc3NlbWJseS5jIGIvbmV0L2lw djYvcmVhc3NlbWJseS5jCmluZGV4IDQ1ZjVhZTUuLmEyMzQ1NTIgMTAwNjQ0Ci0tLSBhL25ldC9p cHY2L3JlYXNzZW1ibHkuYworKysgYi9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMKQEAgLTQ5NiwxMCAr NDk2LDggQEAgc3RhdGljIGludCBpcDZfZnJhZ19yZWFzbShzdHJ1Y3QgZnJhZ19xdWV1ZSAqZnEs IHN0cnVjdCBza19idWZmICpwcmV2LAogCUlQNkNCKGhlYWQpLT5mbGFncyB8PSBJUDZTS0JfRlJB R01FTlRFRDsKIAogCS8qIFllcywgYW5kIGZvbGQgcmVkdW5kYW50IGNoZWNrc3VtIGJhY2suIDgp ICovCi0JaWYgKGhlYWQtPmlwX3N1bW1lZCA9PSBDSEVDS1NVTV9DT01QTEVURSkKLQkJaGVhZC0+ Y3N1bSA9IGNzdW1fcGFydGlhbChza2JfbmV0d29ya19oZWFkZXIoaGVhZCksCi0JCQkJCSAgc2ti X25ldHdvcmtfaGVhZGVyX2xlbihoZWFkKSwKLQkJCQkJICBoZWFkLT5jc3VtKTsKKwlza2JfcG9z dHB1c2hfcmNzdW0oaGVhZCwgc2tiX25ldHdvcmtfaGVhZGVyKGhlYWQpLAorCQkJICAgc2tiX25l dHdvcmtfaGVhZGVyX2xlbihoZWFkKSk7CiAKIAlyY3VfcmVhZF9sb2NrKCk7CiAJSVA2X0lOQ19T VEFUU19CSChuZXQsIF9faW42X2Rldl9nZXQoZGV2KSwgSVBTVEFUU19NSUJfUkVBU01PS1MpOwpk aWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYyBiL25ldC9vcGVudnN3aXRjaC9h Y3Rpb25zLmMKaW5kZXggYzg4ZDBmMi4uN2FlZjBjOCAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dp dGNoL2FjdGlvbnMuYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCkBAIC0xNTgsOSAr MTU4LDcgQEAgc3RhdGljIGludCBwdXNoX21wbHMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IHN3X2Zsb3dfa2V5ICprZXksCiAJbmV3X21wbHNfbHNlID0gKF9fYmUzMiAqKXNrYl9tcGxzX2hl YWRlcihza2IpOwogCSpuZXdfbXBsc19sc2UgPSBtcGxzLT5tcGxzX2xzZTsKIAotCWlmIChza2It PmlwX3N1bW1lZCA9PSBDSEVDS1NVTV9DT01QTEVURSkKLQkJc2tiLT5jc3VtID0gY3N1bV9hZGQo c2tiLT5jc3VtLCBjc3VtX3BhcnRpYWwobmV3X21wbHNfbHNlLAotCQkJCQkJCSAgICAgTVBMU19I TEVOLCAwKSk7CisJc2tiX3Bvc3RwdXNoX3Jjc3VtKHNrYiwgbmV3X21wbHNfbHNlLCBNUExTX0hM RU4pOwogCiAJaGRyID0gZXRoX2hkcihza2IpOwogCWhkci0+aF9wcm90byA9IG1wbHMtPm1wbHNf ZXRoZXJ0eXBlOwpAQCAtMjgwLDcgKzI3OCw3IEBAIHN0YXRpYyBpbnQgc2V0X2V0aF9hZGRyKHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqZmxvd19rZXksCiAJZXRoZXJf YWRkcl9jb3B5X21hc2tlZChldGhfaGRyKHNrYiktPmhfZGVzdCwga2V5LT5ldGhfZHN0LAogCQkJ ICAgICAgIG1hc2stPmV0aF9kc3QpOwogCi0Jb3ZzX3NrYl9wb3N0cHVzaF9yY3N1bShza2IsIGV0 aF9oZHIoc2tiKSwgRVRIX0FMRU4gKiAyKTsKKwlza2JfcG9zdHB1c2hfcmNzdW0oc2tiLCBldGhf aGRyKHNrYiksIEVUSF9BTEVOICogMik7CiAKIAlldGhlcl9hZGRyX2NvcHkoZmxvd19rZXktPmV0 aC5zcmMsIGV0aF9oZHIoc2tiKS0+aF9zb3VyY2UpOwogCWV0aGVyX2FkZHJfY29weShmbG93X2tl eS0+ZXRoLmRzdCwgZXRoX2hkcihza2IpLT5oX2Rlc3QpOwpAQCAtNjM5LDcgKzYzNyw3IEBAIHN0 YXRpYyBpbnQgb3ZzX3Zwb3J0X291dHB1dChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHNrX2J1ZmYgKnNrCiAJLyogUmVjb25zdHJ1Y3QgdGhlIE1BQyBoZWFkZXIuICAq LwogCXNrYl9wdXNoKHNrYiwgZGF0YS0+bDJfbGVuKTsKIAltZW1jcHkoc2tiLT5kYXRhLCAmZGF0 YS0+bDJfZGF0YSwgZGF0YS0+bDJfbGVuKTsKLQlvdnNfc2tiX3Bvc3RwdXNoX3Jjc3VtKHNrYiwg c2tiLT5kYXRhLCBkYXRhLT5sMl9sZW4pOworCXNrYl9wb3N0cHVzaF9yY3N1bShza2IsIHNrYi0+ ZGF0YSwgZGF0YS0+bDJfbGVuKTsKIAlza2JfcmVzZXRfbWFjX2hlYWRlcihza2IpOwogCiAJb3Zz X3Zwb3J0X3NlbmQodnBvcnQsIHNrYik7CmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvdnBv cnQtbmV0ZGV2LmMgYi9uZXQvb3BlbnZzd2l0Y2gvdnBvcnQtbmV0ZGV2LmMKaW5kZXggNmIwMTkw Yi4uNzZmY2FmMSAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL3Zwb3J0LW5ldGRldi5jCisr KyBiL25ldC9vcGVudnN3aXRjaC92cG9ydC1uZXRkZXYuYwpAQCAtNTgsNyArNTgsNyBAQCBzdGF0 aWMgdm9pZCBuZXRkZXZfcG9ydF9yZWNlaXZlKHN0cnVjdCBza19idWZmICpza2IpCiAJCXJldHVy bjsKIAogCXNrYl9wdXNoKHNrYiwgRVRIX0hMRU4pOwotCW92c19za2JfcG9zdHB1c2hfcmNzdW0o c2tiLCBza2ItPmRhdGEsIEVUSF9ITEVOKTsKKwlza2JfcG9zdHB1c2hfcmNzdW0oc2tiLCBza2It PmRhdGEsIEVUSF9ITEVOKTsKIAlvdnNfdnBvcnRfcmVjZWl2ZSh2cG9ydCwgc2tiLCBza2JfdHVu bmVsX2luZm8oc2tiKSk7CiAJcmV0dXJuOwogZXJyb3I6CmRpZmYgLS1naXQgYS9uZXQvb3BlbnZz d2l0Y2gvdnBvcnQuaCBiL25ldC9vcGVudnN3aXRjaC92cG9ydC5oCmluZGV4IDhlYTNhOTYuLjZl MmI2MmYgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC92cG9ydC5oCisrKyBiL25ldC9vcGVu dnN3aXRjaC92cG9ydC5oCkBAIC0xODQsMTMgKzE4NCw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0 IHZwb3J0ICp2cG9ydF9mcm9tX3ByaXYodm9pZCAqcHJpdikKIGludCBvdnNfdnBvcnRfcmVjZWl2 ZShzdHJ1Y3QgdnBvcnQgKiwgc3RydWN0IHNrX2J1ZmYgKiwKIAkJICAgICAgY29uc3Qgc3RydWN0 IGlwX3R1bm5lbF9pbmZvICopOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgb3ZzX3NrYl9wb3N0cHVz aF9yY3N1bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotCQkJCSAgICAgIGNvbnN0IHZvaWQgKnN0YXJ0 LCB1bnNpZ25lZCBpbnQgbGVuKQotewotCWlmIChza2ItPmlwX3N1bW1lZCA9PSBDSEVDS1NVTV9D T01QTEVURSkKLQkJc2tiLT5jc3VtID0gY3N1bV9hZGQoc2tiLT5jc3VtLCBjc3VtX3BhcnRpYWwo c3RhcnQsIGxlbiwgMCkpOwotfQotCiBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKm92c192cG9y dF9uYW1lKHN0cnVjdCB2cG9ydCAqdnBvcnQpCiB7CiAJcmV0dXJuIHZwb3J0LT5kZXYtPm5hbWU7 Ci0tIAoyLjEuMAoKCkZyb20gODczZTZhYWJkNmMyNDkxOTgxY2JjYjEwZmI2OTFlYWVkMDdiNzIz YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxA aW9nZWFyYm94Lm5ldD4KRGF0ZTogU2F0LCAxNiBBcHIgMjAxNiAwMjoyNzo1OCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDkvMzhdIHZsYW46IHB1bGwgb24gX192bGFuX2luc2VydF90YWcgZXJyb3Ig cGF0aCBhbmQgZml4IGNzdW0KIGNvcnJlY3Rpb24KClsgVXBzdHJlYW0gY29tbWl0IDkyNDFlMmRm NGZiYzY0OGE5MmVhMDc1MjkxOGUwNWMyNjI1NTY0OWUgXQoKV2hlbiBfX3ZsYW5faW5zZXJ0X3Rh ZygpIGZhaWxzIGZyb20gc2tiX3ZsYW5fcHVzaCgpIHBhdGggZHVlIHRvIHRoZQpza2JfY293X2hl YWQoKSwgd2UgbmVlZCB0byB1bmRvIHRoZSBfX3NrYl9wdXNoKCkgaW4gdGhlIGVycm9yIHBhdGgK YXMgd2VsbCB0aGF0IHdhcyBkb25lIGVhcmxpZXIgdG8gbW92ZSBza2ItPmRhdGEgcG9pbnRlciB0 byBtYWMgaGVhZGVyLgoKTW9yZW92ZXIsIEkgbm90aWNlZCB0aGF0IHdoZW4gaW4gdGhlIG5vbi1l cnJvciBwYXRoIHRoZSBfX3NrYl9wdWxsKCkKaXMgZG9uZSBhbmQgdGhlIG9yaWdpbmFsIG9mZnNl dCB0byBtYWMgaGVhZGVyIHdhcyBub24temVybywgd2UgZml4dXAKZnJvbSBhIHdyb25nIHNrYi0+ ZGF0YSBvZmZzZXQgaW4gdGhlIGNoZWNrc3VtIGNvbXBsZXRlIHByb2Nlc3NpbmcuCgpTbyB0aGUg c2tiX3Bvc3RwdXNoX3Jjc3VtKCkgcmVhbGx5IG5lZWRzIHRvIGJlIGRvbmUgYmVmb3JlIF9fc2ti X3B1bGwoKQp3aGVyZSBza2ItPmRhdGEgc3RpbGwgcG9pbnRzIHRvIHRoZSBtYWMgaGVhZGVyIHN0 YXJ0IGFuZCB0aHVzIG9wZXJhdGVzCnVuZGVyIHRoZSBzYW1lIGNvbmRpdGlvbnMgYXMgaW4gX192 bGFuX2luc2VydF90YWcoKS4KCkZpeGVzOiA5MzUxNWQ1M2IxMzMgKCJuZXQ6IG1vdmUgdmxhbiBw b3AvcHVzaCBmdW5jdGlvbnMgaW50byBjb21tb24gY29kZSIpClNpZ25lZC1vZmYtYnk6IERhbmll bCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClJldmlld2VkLWJ5OiBKaXJpIFBpcmtv IDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3NrYnVmZi5jIHwgNyArKysrKy0tCiAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9jb3JlL3NrYnVmZi5jIGIvbmV0L2NvcmUvc2tidWZmLmMKaW5kZXggNzhhYmUxMS4uOTgz NWQ5YSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZm LmMKQEAgLTQ0MjcsMTMgKzQ0MjcsMTYgQEAgaW50IHNrYl92bGFuX3B1c2goc3RydWN0IHNrX2J1 ZmYgKnNrYiwgX19iZTE2IHZsYW5fcHJvdG8sIHUxNiB2bGFuX3RjaSkKIAkJX19za2JfcHVzaChz a2IsIG9mZnNldCk7CiAJCWVyciA9IF9fdmxhbl9pbnNlcnRfdGFnKHNrYiwgc2tiLT52bGFuX3By b3RvLAogCQkJCQlza2Jfdmxhbl90YWdfZ2V0KHNrYikpOwotCQlpZiAoZXJyKQorCQlpZiAoZXJy KSB7CisJCQlfX3NrYl9wdWxsKHNrYiwgb2Zmc2V0KTsKIAkJCXJldHVybiBlcnI7CisJCX0KKwog CQlza2ItPnByb3RvY29sID0gc2tiLT52bGFuX3Byb3RvOwogCQlza2ItPm1hY19sZW4gKz0gVkxB Tl9ITEVOOwotCQlfX3NrYl9wdWxsKHNrYiwgb2Zmc2V0KTsKIAogCQlza2JfcG9zdHB1c2hfcmNz dW0oc2tiLCBza2ItPmRhdGEgKyAoMiAqIEVUSF9BTEVOKSwgVkxBTl9ITEVOKTsKKwkJX19za2Jf cHVsbChza2IsIG9mZnNldCk7CiAJfQogCV9fdmxhbl9od2FjY2VsX3B1dF90YWcoc2tiLCB2bGFu X3Byb3RvLCB2bGFuX3RjaSk7CiAJcmV0dXJuIDA7Ci0tIAoyLjEuMAoKCkZyb20gODBhNzIxNWVi ZWYwNjcyZjJiNTk5NjFhNGZkYzk4YjA5Y2Q2YjNmMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KRGF0ZTogV2VkLCAyMCBB cHIgMjAxNiAyMzoyMzowOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMzhdIGF0bDI6IERpc2Fi bGUgdW5pbXBsZW1lbnRlZCBzY2F0dGVyL2dhdGhlciBmZWF0dXJlCgpbIFVwc3RyZWFtIGNvbW1p dCBmNDNiZmFlZGRjNzllZmZiZjNkMGZjYjUzY2E0NzdjY2E2NmYzZGI4IF0KCmF0bDIgaW5jbHVk ZXMgTkVUSUZfRl9TRyBpbiBod19mZWF0dXJlcyBldmVuIHRob3VnaCBpdCBoYXMgbm8gc3VwcG9y dApmb3Igbm9uLWxpbmVhciBza2JzLiAgVGhpcyBidWcgd2FzIG9yaWdpbmFsbHkgaGFybWxlc3Mg c2luY2UgdGhlCmRyaXZlciBkb2VzIG5vdCBjbGFpbSB0byBpbXBsZW1lbnQgY2hlY2tzdW0gb2Zm bG9hZCBhbmQgdGhhdCB1c2VkIHRvCmJlIGEgcmVxdWlyZW1lbnQgZm9yIFNHLgoKTm93IHRoYXQg U0cgYW5kIGNoZWNrc3VtIG9mZmxvYWQgYXJlIGluZGVwZW5kZW50IGZlYXR1cmVzLCBpZiB5b3UK ZXhwbGljaXRseSBlbmFibGUgU0cgKmFuZCogdXNlIG9uZSBvZiB0aGUgcmFyZSBwcm90b2NvbHMg dGhhdCBjYW4gdXNlClNHIHdpdGhvdXQgY2hlY2t1c20gb2ZmbG9hZCwgdGhpcyBwb3RlbnRpYWxs eSBsZWFrcyBzZW5zaXRpdmUKaW5mb3JtYXRpb24gKGJlZm9yZSB5b3Ugbm90aWNlIHRoYXQgaXQg anVzdCBpc24ndCB3b3JraW5nKS4gIFRoZXJlZm9yZQp0aGlzIG9ic2N1cmUgYnVnIGhhcyBiZWVu IGRlc2lnbmF0ZWQgQ1ZFLTIwMTYtMjExNy4KClJlcG9ydGVkLWJ5OiBKdXN0aW4gWWFja29za2kg PGp5YWNrb3NraUBjcnlwdG8tbml0ZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3Mg PGJlbkBkZWNhZGVudC5vcmcudWs+CkZpeGVzOiBlYzVmMDYxNTY0MjMgKCJuZXQ6IEtpbGwgbGlu ayBiZXR3ZWVuIENTVU0gYW5kIFNHIGZlYXR1cmVzLiIpClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9h dGhlcm9zL2F0bHgvYXRsMi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJv cy9hdGx4L2F0bDIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYXRseC9hdGwyLmMK aW5kZXggOGY3NmY0NS4uMmZmNDY1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YXRoZXJvcy9hdGx4L2F0bDIuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2F0 bHgvYXRsMi5jCkBAIC0xNDEyLDcgKzE0MTIsNyBAQCBzdGF0aWMgaW50IGF0bDJfcHJvYmUoc3Ry dWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAKIAll cnIgPSAtRUlPOwogCi0JbmV0ZGV2LT5od19mZWF0dXJlcyA9IE5FVElGX0ZfU0cgfCBORVRJRl9G X0hXX1ZMQU5fQ1RBR19SWDsKKwluZXRkZXYtPmh3X2ZlYXR1cmVzID0gTkVUSUZfRl9IV19WTEFO X0NUQUdfUlg7CiAJbmV0ZGV2LT5mZWF0dXJlcyB8PSAoTkVUSUZfRl9IV19WTEFOX0NUQUdfVFgg fCBORVRJRl9GX0hXX1ZMQU5fQ1RBR19SWCk7CiAKIAkvKiBJbml0IFBIWSBhcyBlYXJseSBhcyBw b3NzaWJsZSBkdWUgdG8gcG93ZXIgc2F2aW5nIGlzc3VlICAqLwotLSAKMi4xLjAKCgpGcm9tIDI0 NmQzNmM1NGRkZWQ3MDQwMTNiMmNiY2MyZGU3MDk2ZjUxN2I3MTIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9tZS5jb20+CkRh dGU6IFRodSwgMjEgQXByIDIwMTYgMTE6NDk6MTUgKzEwMDAKU3ViamVjdDogW1BBVENIIDExLzM4 XSBvcGVudnN3aXRjaDogdXNlIGZsb3cgcHJvdG9jb2wgd2hlbiByZWNhbGN1bGF0aW5nIGlwdjYK IGNoZWNrc3VtcwoKWyBVcHN0cmVhbSBjb21taXQgYjRmNzA1MjdmMDUyYjBjMDBiZTRkN2NhYzU2 MmJhYTc1YjIxMmRmNSBdCgpXaGVuIHVzaW5nIG1hc2tlZCBhY3Rpb25zIHRoZSBpcHY2X3Byb3Rv IGZpZWxkIG9mIGFuIGFjdGlvbgp0byBzZXQgSVB2NiBmaWVsZHMgbWF5IGJlIHplcm8gcmF0aGVy IHRoYW4gdGhlIHByZXZhaWxpbmcgcHJvdG9jb2wKd2hpY2ggd2lsbCByZXN1bHQgaW4gc2tpcHBp bmcgY2hlY2tzdW0gcmVjYWxjdWxhdGlvbi4KClRoaXMgcGF0Y2ggcmVzb2x2ZXMgdGhlIHByb2Js ZW0gYnkgcmVseWluZyBvbiB0aGUgcHJvdG9jb2wKaW4gdGhlIGZsb3cga2V5IHJhdGhlciB0aGFu IHRoYXQgaW4gdGhlIHNldCBmaWVsZCBhY3Rpb24uCgpGaXhlczogODNkMmI5YmExYWJjICgibmV0 OiBvcGVudnN3aXRjaDogU3VwcG9ydCBtYXNrZWQgc2V0IGFjdGlvbnMuIikKQ2M6IEphcm5vIFJh amFoYWxtZSA8anJhamFoYWxtZUBuaWNpcmEuY29tPgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBIb3Jt YW4gPHNpbW9uLmhvcm1hbkBuZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L29wZW52c3dpdGNoL2FjdGlvbnMu YyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jIGIvbmV0L29wZW52c3dp dGNoL2FjdGlvbnMuYwppbmRleCA3YWVmMGM4Li43Y2I4MTg0IDEwMDY0NAotLS0gYS9uZXQvb3Bl bnZzd2l0Y2gvYWN0aW9ucy5jCisrKyBiL25ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMKQEAgLTQ2 MSw3ICs0NjEsNyBAQCBzdGF0aWMgaW50IHNldF9pcHY2KHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBzd19mbG93X2tleSAqZmxvd19rZXksCiAJCW1hc2tfaXB2Nl9hZGRyKHNhZGRyLCBrZXkt PmlwdjZfc3JjLCBtYXNrLT5pcHY2X3NyYywgbWFza2VkKTsKIAogCQlpZiAodW5saWtlbHkobWVt Y21wKHNhZGRyLCBtYXNrZWQsIHNpemVvZihtYXNrZWQpKSkpIHsKLQkJCXNldF9pcHY2X2FkZHIo c2tiLCBrZXktPmlwdjZfcHJvdG8sIHNhZGRyLCBtYXNrZWQsCisJCQlzZXRfaXB2Nl9hZGRyKHNr YiwgZmxvd19rZXktPmlwLnByb3RvLCBzYWRkciwgbWFza2VkLAogCQkJCSAgICAgIHRydWUpOwog CQkJbWVtY3B5KCZmbG93X2tleS0+aXB2Ni5hZGRyLnNyYywgbWFza2VkLAogCQkJICAgICAgIHNp emVvZihmbG93X2tleS0+aXB2Ni5hZGRyLnNyYykpOwpAQCAtNDgzLDcgKzQ4Myw3IEBAIHN0YXRp YyBpbnQgc2V0X2lwdjYoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICpm bG93X2tleSwKIAkJCQkJCQkgICAgIE5VTEwsICZmbGFncykKIAkJCQkJICAgICAgICE9IE5FWFRI RFJfUk9VVElORyk7CiAKLQkJCXNldF9pcHY2X2FkZHIoc2tiLCBrZXktPmlwdjZfcHJvdG8sIGRh ZGRyLCBtYXNrZWQsCisJCQlzZXRfaXB2Nl9hZGRyKHNrYiwgZmxvd19rZXktPmlwLnByb3RvLCBk YWRkciwgbWFza2VkLAogCQkJCSAgICAgIHJlY2FsY19jc3VtKTsKIAkJCW1lbWNweSgmZmxvd19r ZXktPmlwdjYuYWRkci5kc3QsIG1hc2tlZCwKIAkJCSAgICAgICBzaXplb2YoZmxvd19rZXktPmlw djYuYWRkci5kc3QpKTsKLS0gCjIuMS4wCgoKRnJvbSBkNjU4NWM1YTY5MzRhMWNlMGIzNTNhNGQ1 NTJkMGFhNmRjMjdlMmM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWVlZCBNYWhh bWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KRGF0ZTogRnJpLCAyMiBBcHIgMjAxNiAwMDozMzow MyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzhdIG5ldC9tbHg1ZTogRGV2aWNlJ3MgbXR1IGZp ZWxkIGlzIHUxNiBhbmQgbm90IGludAoKWyBVcHN0cmVhbSBjb21taXQgMDQ2MzM5ZWFhYjI2ODA0 ZjUyZjY2MDQ4NzdmNTY3NGY3MDgxNWIyNiBdCgpGb3Igc2V0L3F1ZXJ5IE1UVSBwb3J0IGZpcm13 YXJlIGNvbW1hbmRzIHRoZSBNVFUgZmllbGQKaXMgMTYgYml0cywgaGVyZSBJIGNoYW5nZWQgYWxs IHRoZSAiaW50IG10dSIgcGFyYW1ldGVycwpvZiB0aGUgZnVuY3Rpb25zIHdyYXBwaW5nIHRob3Nl IGZpcm13YXJlIGNvbW1hbmRzIHRvIGJlIHUxNi4KClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFt ZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFp bi5jICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbl9tYWluLmMgfCAgNCArKy0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvcG9ydC5jICAgIHwgMTAgKysrKystLS0tLQogaW5jbHVkZS9saW51 eC9tbHg1L2RyaXZlci5oICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogNCBmaWxl cyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMgYi9kcml2ZXJzL2luZmluaWJhbmQv aHcvbWx4NS9tYWluLmMKaW5kZXggNzIxZDYzZi4uZmQxNzQ0MyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9t bHg1L21haW4uYwpAQCAtNDA1LDggKzQwNSw4IEBAIHN0YXRpYyBpbnQgbWx4NV9xdWVyeV9oY2Ff cG9ydChzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwgdTggcG9ydCwKIAlzdHJ1Y3QgbWx4NV9pYl9k ZXYgKmRldiA9IHRvX21kZXYoaWJkZXYpOwogCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2ID0g ZGV2LT5tZGV2OwogCXN0cnVjdCBtbHg1X2hjYV92cG9ydF9jb250ZXh0ICpyZXA7Ci0JaW50IG1h eF9tdHU7Ci0JaW50IG9wZXJfbXR1OworCXUxNiBtYXhfbXR1OworCXUxNiBvcGVyX210dTsKIAlp bnQgZXJyOwogCXU4IGliX2xpbmtfd2lkdGhfb3BlcjsKIAl1OCB2bF9od19jYXA7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwppbmRleCAx MjAzZDg5Li5kNmE3MjEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9tYWluLmMKQEAgLTEzNzIsNyArMTM3Miw3IEBAIHN0YXRpYyBpbnQgbWx4 NWVfc2V0X2Rldl9wb3J0X210dShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogewogCXN0cnVj dCBtbHg1ZV9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAlzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqbWRldiA9IHByaXYtPm1kZXY7Ci0JaW50IGh3X210dTsKKwl1MTYgaHdfbXR1Owog CWludCBlcnI7CiAKIAllcnIgPSBtbHg1X3NldF9wb3J0X210dShtZGV2LCBNTFg1RV9TVzJIV19N VFUobmV0ZGV2LT5tdHUpLCAxKTsKQEAgLTE4OTYsNyArMTg5Niw3IEBAIHN0YXRpYyBpbnQgbWx4 NWVfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgbmV3X210dSkKIAlz dHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5ldGRldik7CiAJc3RydWN0IG1s eDVfY29yZV9kZXYgKm1kZXYgPSBwcml2LT5tZGV2OwogCWJvb2wgd2FzX29wZW5lZDsKLQlpbnQg bWF4X210dTsKKwl1MTYgbWF4X210dTsKIAlpbnQgZXJyID0gMDsKIAogCW1seDVfcXVlcnlfcG9y dF9tYXhfbXR1KG1kZXYsICZtYXhfbXR1LCAxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9wb3J0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvcG9ydC5jCmluZGV4IGE4N2U3NzMuLjUzYTc5M2IgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9wb3J0LmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3BvcnQuYwpAQCAtMjQ2LDgg KzI0Niw4IEBAIGludCBtbHg1X3F1ZXJ5X3BvcnRfYWRtaW5fc3RhdHVzKHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYsCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3F1ZXJ5X3BvcnRfYWRtaW5f c3RhdHVzKTsKIAotc3RhdGljIHZvaWQgbWx4NV9xdWVyeV9wb3J0X210dShzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqZGV2LCBpbnQgKmFkbWluX210dSwKLQkJCQlpbnQgKm1heF9tdHUsIGludCAqb3Bl cl9tdHUsIHU4IHBvcnQpCitzdGF0aWMgdm9pZCBtbHg1X3F1ZXJ5X3BvcnRfbXR1KHN0cnVjdCBt bHg1X2NvcmVfZGV2ICpkZXYsIHUxNiAqYWRtaW5fbXR1LAorCQkJCXUxNiAqbWF4X210dSwgdTE2 ICpvcGVyX210dSwgdTggcG9ydCkKIHsKIAl1MzIgaW5bTUxYNV9TVF9TWl9EVyhwbXR1X3JlZyld OwogCXUzMiBvdXRbTUxYNV9TVF9TWl9EVyhwbXR1X3JlZyldOwpAQCAtMjY3LDcgKzI2Nyw3IEBA IHN0YXRpYyB2b2lkIG1seDVfcXVlcnlfcG9ydF9tdHUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRl diwgaW50ICphZG1pbl9tdHUsCiAJCSphZG1pbl9tdHUgPSBNTFg1X0dFVChwbXR1X3JlZywgb3V0 LCBhZG1pbl9tdHUpOwogfQogCi1pbnQgbWx4NV9zZXRfcG9ydF9tdHUoc3RydWN0IG1seDVfY29y ZV9kZXYgKmRldiwgaW50IG10dSwgdTggcG9ydCkKK2ludCBtbHg1X3NldF9wb3J0X210dShzdHJ1 Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgbXR1LCB1OCBwb3J0KQogewogCXUzMiBpbltNTFg1 X1NUX1NaX0RXKHBtdHVfcmVnKV07CiAJdTMyIG91dFtNTFg1X1NUX1NaX0RXKHBtdHVfcmVnKV07 CkBAIC0yODIsMTQgKzI4MiwxNCBAQCBpbnQgbWx4NV9zZXRfcG9ydF9tdHUoc3RydWN0IG1seDVf Y29yZV9kZXYgKmRldiwgaW50IG10dSwgdTggcG9ydCkKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKG1s eDVfc2V0X3BvcnRfbXR1KTsKIAotdm9pZCBtbHg1X3F1ZXJ5X3BvcnRfbWF4X210dShzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgKm1heF9tdHUsCit2b2lkIG1seDVfcXVlcnlfcG9ydF9t YXhfbXR1KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiAqbWF4X210dSwKIAkJCSAgICAg dTggcG9ydCkKIHsKIAltbHg1X3F1ZXJ5X3BvcnRfbXR1KGRldiwgTlVMTCwgbWF4X210dSwgTlVM TCwgcG9ydCk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3F1ZXJ5X3BvcnRfbWF4X210dSk7 CiAKLXZvaWQgbWx4NV9xdWVyeV9wb3J0X29wZXJfbXR1KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpk ZXYsIGludCAqb3Blcl9tdHUsCit2b2lkIG1seDVfcXVlcnlfcG9ydF9vcGVyX210dShzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgKm9wZXJfbXR1LAogCQkJICAgICAgdTggcG9ydCkKIHsK IAltbHg1X3F1ZXJ5X3BvcnRfbXR1KGRldiwgTlVMTCwgTlVMTCwgb3Blcl9tdHUsIHBvcnQpOwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oIGIvaW5jbHVkZS9saW51eC9t bHg1L2RyaXZlci5oCmluZGV4IGFmM2VmZDkuLjQxMmFhOTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bGludXgvbWx4NS9kcml2ZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKQEAg LTc5Miw5ICs3OTIsOSBAQCBpbnQgbWx4NV9zZXRfcG9ydF9hZG1pbl9zdGF0dXMoc3RydWN0IG1s eDVfY29yZV9kZXYgKmRldiwKIGludCBtbHg1X3F1ZXJ5X3BvcnRfYWRtaW5fc3RhdHVzKHN0cnVj dCBtbHg1X2NvcmVfZGV2ICpkZXYsCiAJCQkJIGVudW0gbWx4NV9wb3J0X3N0YXR1cyAqc3RhdHVz KTsKIAotaW50IG1seDVfc2V0X3BvcnRfbXR1KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGlu dCBtdHUsIHU4IHBvcnQpOwotdm9pZCBtbHg1X3F1ZXJ5X3BvcnRfbWF4X210dShzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2LCBpbnQgKm1heF9tdHUsIHU4IHBvcnQpOwotdm9pZCBtbHg1X3F1ZXJ5 X3BvcnRfb3Blcl9tdHUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50ICpvcGVyX210dSwK K2ludCBtbHg1X3NldF9wb3J0X210dShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgbXR1 LCB1OCBwb3J0KTsKK3ZvaWQgbWx4NV9xdWVyeV9wb3J0X21heF9tdHUoc3RydWN0IG1seDVfY29y ZV9kZXYgKmRldiwgdTE2ICptYXhfbXR1LCB1OCBwb3J0KTsKK3ZvaWQgbWx4NV9xdWVyeV9wb3J0 X29wZXJfbXR1KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiAqb3Blcl9tdHUsCiAJCQkg ICAgICB1OCBwb3J0KTsKIAogaW50IG1seDVfcXVlcnlfcG9ydF92bF9od19jYXAoc3RydWN0IG1s eDVfY29yZV9kZXYgKmRldiwKLS0gCjIuMS4wCgoKRnJvbSAxMTUyMDllYmFiNzQ0Zjc1NjFiNzUz NjgyZGFlNmQ1ODRhOTA4ZjFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWVlZCBN YWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KRGF0ZTogRnJpLCAyMiBBcHIgMjAxNiAwMDoz MzowNCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMzhdIG5ldC9tbHg1ZTogRml4IG1pbmltdW0g TVRVCgpbIFVwc3RyZWFtIGNvbW1pdCBkOGVkZDI0NjlhY2U1NTBkYjcwNzc5ODE4MGQxYzg0ZDgx ZjkzYmNhIF0KCk1pbmltdW0gTVRVIHRoYXQgY2FuIGJlIHNldCBpbiBDb25uZWN0eDQgZGV2aWNl IGlzIDY4LgoKVGhpcyBmaXhlcyB0aGUgY2FzZSB3aGVyZSBhIHVzZXIgd2FudHMgdG8gc2V0IGlu dmFsaWQgTVRVLAp0aGUgZHJpdmVyIHdpbGwgZmFpbCB0byBzYXRpc2Z5IHRoaXMgcmVxdWVzdCBh bmQgdGhlIGludGVyZmFjZQp3aWxsIHN0YXkgZG93bi4KCkl0IGlzIGJldHRlciB0byByZXBvcnQg YW4gZXJyb3IgYW5kIGNvbnRpbnVlIHdvcmtpbmcgd2l0aCBvbGQKbXR1LgoKU2lnbmVkLW9mZi1i eTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIHwgMTEgKysrKysrKystLS0KIDEgZmls ZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKaW5kZXggZDZhNzIx My4uY2JkMTdlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fbWFpbi5jCkBAIC0xODkxLDIyICsxODkxLDI3IEBAIHN0YXRpYyBpbnQgbWx4NWVf c2V0X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsCiAJcmV0dXJuIGVycjsKIH0K IAorI2RlZmluZSBNWEw1X0hXX01JTl9NVFUgNjQKKyNkZWZpbmUgTVhMNUVfTUlOX01UVSAoTVhM NV9IV19NSU5fTVRVICsgRVRIX0ZDU19MRU4pCisKIHN0YXRpYyBpbnQgbWx4NWVfY2hhbmdlX210 dShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgbmV3X210dSkKIHsKIAlzdHJ1Y3QgbWx4 NWVfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5ldGRldik7CiAJc3RydWN0IG1seDVfY29yZV9k ZXYgKm1kZXYgPSBwcml2LT5tZGV2OwogCWJvb2wgd2FzX29wZW5lZDsKIAl1MTYgbWF4X210dTsK Kwl1MTYgbWluX210dTsKIAlpbnQgZXJyID0gMDsKIAogCW1seDVfcXVlcnlfcG9ydF9tYXhfbXR1 KG1kZXYsICZtYXhfbXR1LCAxKTsKIAogCW1heF9tdHUgPSBNTFg1RV9IVzJTV19NVFUobWF4X210 dSk7CisJbWluX210dSA9IE1MWDVFX0hXMlNXX01UVShNWEw1RV9NSU5fTVRVKTsKIAotCWlmIChu ZXdfbXR1ID4gbWF4X210dSkgeworCWlmIChuZXdfbXR1ID4gbWF4X210dSB8fCBuZXdfbXR1IDwg bWluX210dSkgewogCQluZXRkZXZfZXJyKG5ldGRldiwKLQkJCSAgICIlczogQmFkIE1UVSAoJWQp ID4gKCVkKSBNYXhcbiIsCi0JCQkgICBfX2Z1bmNfXywgbmV3X210dSwgbWF4X210dSk7CisJCQkg ICAiJXM6IEJhZCBNVFUgKCVkKSwgdmFsaWQgcmFuZ2UgaXM6IFslZC4uJWRdXG4iLAorCQkJICAg X19mdW5jX18sIG5ld19tdHUsIG1pbl9tdHUsIG1heF9tdHUpOwogCQlyZXR1cm4gLUVJTlZBTDsK IAl9CiAKLS0gCjIuMS4wCgoKRnJvbSBjMTkwZjU2NjY0MzVmNzUyMThlYWJlNTgxMzE1MTFkZDM4 ODcwYzM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5p QHJlZGhhdC5jb20+CkRhdGU6IFRodSwgMjEgQXByIDIwMTYgMjI6MjM6MzEgKzAyMDAKU3ViamVj dDogW1BBVENIIDE0LzM4XSBpcHY0L2ZpYjogZG9uJ3Qgd2FybiB3aGVuIHByaW1hcnkgYWRkcmVz cyBpcyBtaXNzaW5nIGlmCiBpbl9kZXYgaXMgZGVhZAoKWyBVcHN0cmVhbSBjb21taXQgMzkxYTIw MzMzYjgzOTNlZjJlMTMwMTRlNmU1OWQxOTJjNTU5NDQ3MSBdCgpBZnRlciBjb21taXQgZmJkNDBl YTAxODBhICgiaXB2NDogRG9uJ3QgZG8gZXhwZW5zaXZlIHVzZWxlc3Mgd29yawpkdXJpbmcgaW5l dGRldiBkZXN0cm95LiIpIHdoZW4gZGVsZXRpbmcgYW4gaW50ZXJmYWNlLApmaWJfZGVsX2lmYWRk cigpIGNhbiBiZSBleGVjdXRlZCB3aXRob3V0IGFueSBwcmltYXJ5IGFkZHJlc3MKcHJlc2VudCBv biB0aGUgZGVhZCBpbnRlcmZhY2UuCgpUaGUgYWJvdmUgaXMgc2FmZSwgYnV0IHRyaWdnZXJzIHNv bWUgImJ1ZzogcHJpbSA9PSBOVUxMIiB3YXJuaW5ncy4KClRoaXMgY29tbWl0IGF2b2lkcyB3YXJu aW5nIGlmIHRoZSBpbl9kZXYgaXMgZGVhZAoKU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkgPHBh YmVuaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMgfCA2ICsrKysrLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jIGIvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKaW5kZXgg OGE5MjQ2ZC4uNjM1NjZlYyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKKysr IGIvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKQEAgLTkwNCw3ICs5MDQsMTEgQEAgdm9pZCBmaWJf ZGVsX2lmYWRkcihzdHJ1Y3QgaW5faWZhZGRyICppZmEsIHN0cnVjdCBpbl9pZmFkZHIgKmlwcmlt KQogCWlmIChpZmEtPmlmYV9mbGFncyAmIElGQV9GX1NFQ09OREFSWSkgewogCQlwcmltID0gaW5l dF9pZmFfYnlwcmVmaXgoaW5fZGV2LCBhbnksIGlmYS0+aWZhX21hc2spOwogCQlpZiAoIXByaW0p IHsKLQkJCXByX3dhcm4oIiVzOiBidWc6IHByaW0gPT0gTlVMTFxuIiwgX19mdW5jX18pOworCQkJ LyogaWYgdGhlIGRldmljZSBoYXMgYmVlbiBkZWxldGVkLCB3ZSBkb24ndCBwZXJmb3JtCisJCQkg KiBhZGRyZXNzIHByb21vdGlvbgorCQkJICovCisJCQlpZiAoIWluX2Rldi0+ZGVhZCkKKwkJCQlw cl93YXJuKCIlczogYnVnOiBwcmltID09IE5VTExcbiIsIF9fZnVuY19fKTsKIAkJCXJldHVybjsK IAkJfQogCQlpZiAoaXByaW0gJiYgaXByaW0gIT0gcHJpbSkgewotLSAKMi4xLjAKCgpGcm9tIDQ5 YzEwY2E2YzAxYTE2NTM4YjY5OTEzZGU1ZjI4ZTY2NzYxZDIyZWMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0 LCAyMyBBcHIgMjAxNiAxMTozNTo0NiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMzhdIG5ldC9t bHg0X2VuOiBmaXggc3B1cmlvdXMgdGltZXN0YW1waW5nIGNhbGxiYWNrcwoKWyBVcHN0cmVhbSBj b21taXQgZmM5NjI1NmM5MDYzNjJlODQ1ZDg0OGQwZjZhNjM1NDQ1MDA1OWU4MSBdCgpXaGVuIG11 bHRpcGxlIHNrYiBhcmUgVFgtY29tcGxldGVkIGluIGEgcm93LCB3ZSBtaWdodCBpbmNvcnJlY3Rs eSBrZWVwCmEgdGltZXN0YW1wIG9mIGEgcHJpb3Igc2tiIGFuZCBjYXVzZSBleHRyYSB3b3JrLgoK Rml4ZXM6IGVjNjkzZDQ3MDEwZTggKCJuZXQvbWx4NF9lbjogQWRkIEhXIHRpbWVzdGFtcGluZyAo VFMpIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+CkNjOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClJldmlld2Vk LWJ5OiBFcmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg0L2VuX3R4LmMKaW5kZXggNDQyMWJmNS4uZTQwMTlhOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fdHguYwpAQCAtNDAwLDcgKzQwMCw2IEBAIHN0 YXRpYyBib29sIG1seDRfZW5fcHJvY2Vzc190eF9jcShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAog CXUzMiBwYWNrZXRzID0gMDsKIAl1MzIgYnl0ZXMgPSAwOwogCWludCBmYWN0b3IgPSBwcml2LT5j cWVfZmFjdG9yOwotCXU2NCB0aW1lc3RhbXAgPSAwOwogCWludCBkb25lID0gMDsKIAlpbnQgYnVk Z2V0ID0gcHJpdi0+dHhfd29ya19saW1pdDsKIAl1MzIgbGFzdF9ucl90eGJiOwpAQCAtNDQwLDkg KzQzOSwxMiBAQCBzdGF0aWMgYm9vbCBtbHg0X2VuX3Byb2Nlc3NfdHhfY3Eoc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKIAkJbmV3X2luZGV4ID0gYmUxNl90b19jcHUoY3FlLT53cWVfaW5kZXgpICYg c2l6ZV9tYXNrOwogCiAJCWRvIHsKKwkJCXU2NCB0aW1lc3RhbXAgPSAwOworCiAJCQl0eGJic19z a2lwcGVkICs9IGxhc3RfbnJfdHhiYjsKIAkJCXJpbmdfaW5kZXggPSAocmluZ19pbmRleCArIGxh c3RfbnJfdHhiYikgJiBzaXplX21hc2s7Ci0JCQlpZiAocmluZy0+dHhfaW5mb1tyaW5nX2luZGV4 XS50c19yZXF1ZXN0ZWQpCisKKwkJCWlmICh1bmxpa2VseShyaW5nLT50eF9pbmZvW3JpbmdfaW5k ZXhdLnRzX3JlcXVlc3RlZCkpCiAJCQkJdGltZXN0YW1wID0gbWx4NF9lbl9nZXRfY3FlX3RzKGNx ZSk7CiAKIAkJCS8qIGZyZWUgbmV4dCBkZXNjcmlwdG9yICovCi0tIAoyLjEuMAoKCkZyb20gODE5 Zjg4ODIxZjQ1NzM4ZjI3YzliMzk0NjhjMTg3MzdmYjUxZTAwYSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSmFubiBIb3JuIDxqYW5uaEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDI2IEFw ciAyMDE2IDIyOjI2OjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNi8zOF0gYnBmOiBmaXggZG91 YmxlLWZkcHV0IGluIHJlcGxhY2VfbWFwX2ZkX3dpdGhfbWFwX3B0cigpCgpbIFVwc3RyZWFtIGNv bW1pdCA4MzU4YjAyYmY2N2QzYTVkOGE4MjUwNzBlMWFhNzNmMjVmYjJlNGM3IF0KCldoZW4gYnBm KEJQRl9QUk9HX0xPQUQsIC4uLikgd2FzIGludm9rZWQgd2l0aCBhIEJQRiBwcm9ncmFtIHdob3Nl IGJ5dGVjb2RlCnJlZmVyZW5jZXMgYSBub24tbWFwIGZpbGUgZGVzY3JpcHRvciBhcyBhIG1hcCBm aWxlIGRlc2NyaXB0b3IsIHRoZSBlcnJvcgpoYW5kbGluZyBjb2RlIGNhbGxlZCBmZHB1dCgpIHR3 aWNlIGluc3RlYWQgb2Ygb25jZSAoaW4gX19icGZfbWFwX2dldCgpIGFuZAppbiByZXBsYWNlX21h cF9mZF93aXRoX21hcF9wdHIoKSkuIElmIHRoZSBmaWxlIGRlc2NyaXB0b3IgdGFibGUgb2YgdGhl CmN1cnJlbnQgdGFzayBpcyBzaGFyZWQsIHRoaXMgY2F1c2VzIGZfY291bnQgdG8gYmUgZGVjcmVt ZW50ZWQgdG9vIG11Y2gsCmFsbG93aW5nIHRoZSBzdHJ1Y3QgZmlsZSB0byBiZSBmcmVlZCB3aGls ZSBpdCBpcyBzdGlsbCBpbiB1c2UKKHVzZS1hZnRlci1mcmVlKS4gVGhpcyBjYW4gYmUgZXhwbG9p dGVkIHRvIGdhaW4gcm9vdCBwcml2aWxlZ2VzIGJ5IGFuCnVucHJpdmlsZWdlZCB1c2VyLgoKVGhp cyBidWcgd2FzIGludHJvZHVjZWQgaW4KY29tbWl0IDAyNDZlNjRkOWE1ZiAoImJwZjogaGFuZGxl IHBzZXVkbyBCUEZfTERfSU1NNjQgaW5zbiIpLCBidXQgaXMgb25seQpleHBsb2l0YWJsZSBzaW5j ZQpjb21taXQgMWJlN2Y3NWQxNjY4ICgiYnBmOiBlbmFibGUgbm9uLXJvb3QgZUJQRiBwcm9ncmFt cyIpIGJlY2F1c2UKcHJldmlvdXNseSwgQ0FQX1NZU19BRE1JTiB3YXMgcmVxdWlyZWQgdG8gcmVh Y2ggdGhlIHZ1bG5lcmFibGUgY29kZS4KCihwb3N0ZWQgcHVibGljbHkgYWNjb3JkaW5nIHRvIHJl cXVlc3QgYnkgbWFpbnRhaW5lcikKClNpZ25lZC1vZmYtYnk6IEphbm4gSG9ybiA8amFubmhAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZv dW5kYXRpb24ub3JnPgpBY2tlZC1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9y Zz4KQWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBrZXJu ZWwvYnBmL3ZlcmlmaWVyLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5j CmluZGV4IGMyMWNiMTQuLmUzNzk4Y2YgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIu YworKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTIwMDQsNyArMjAwNCw2IEBAIHN0YXRp YyBpbnQgcmVwbGFjZV9tYXBfZmRfd2l0aF9tYXBfcHRyKHN0cnVjdCB2ZXJpZmllcl9lbnYgKmVu dikKIAkJCWlmIChJU19FUlIobWFwKSkgewogCQkJCXZlcmJvc2UoImZkICVkIGlzIG5vdCBwb2lu dGluZyB0byB2YWxpZCBicGZfbWFwXG4iLAogCQkJCQlpbnNuLT5pbW0pOwotCQkJCWZkcHV0KGYp OwogCQkJCXJldHVybiBQVFJfRVJSKG1hcCk7CiAJCQl9CiAKLS0gCjIuMS4wCgoKRnJvbSA3OGJm MTJmOWM2OGY0YmE5YzkwMzgwN2RkODljNmYxNWYyMDNjMjIwIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBmYi5jb20+CkRhdGU6IFdlZCwgMjcg QXByIDIwMTYgMTg6NTY6MjAgLTA3MDAKU3ViamVjdDogW1BBVENIIDE3LzM4XSBicGY6IGZpeCBy ZWZjbnQgb3ZlcmZsb3cKClsgVXBzdHJlYW0gY29tbWl0IDkyMTE3ZDg0NDNiYzVhZmFjYzhkNWJh ODJlNTQxOTQ2MzEwZjEwNmUgXQoKT24gYSBzeXN0ZW0gd2l0aCA+MzJHYnl0ZSBvZiBwaHlpc2Nh bCBtZW1vcnkgYW5kIGluZmluaXRlIFJMSU1JVF9NRU1MT0NLLAp0aGUgbWFsaWNpb3VzIGFwcGxp Y2F0aW9uIG1heSBvdmVyZmxvdyAzMi1iaXQgYnBmIHByb2dyYW0gcmVmY250LgpJdCdzIGFsc28g cG9zc2libGUgdG8gb3ZlcmZsb3cgbWFwIHJlZmNudCBvbiAxVGIgc3lzdGVtLgpJbXBvc2UgMzJr IGhhcmQgbGltaXQgd2hpY2ggbWVhbnMgdGhhdCB0aGUgc2FtZSBicGYgcHJvZ3JhbSBvcgptYXAg Y2Fubm90IGJlIHNoYXJlZCBieSBtb3JlIHRoYW4gMzJrIHByb2Nlc3Nlcy4KCkZpeGVzOiAxYmU3 Zjc1ZDE2NjggKCJicGY6IGVuYWJsZSBub24tcm9vdCBlQlBGIHByb2dyYW1zIikKUmVwb3J0ZWQt Ynk6IEphbm4gSG9ybiA8amFubmhAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogQWxleGVpIFN0 YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4KQWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFu aWVsQGlvZ2VhcmJveC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L2JwZi5oICAgfCAgMyArKy0KIGtlcm5l bC9icGYvaW5vZGUuYyAgICB8ICA3ICsrKystLS0KIGtlcm5lbC9icGYvc3lzY2FsbC5jICB8IDI0 ICsrKysrKysrKysrKysrKysrKysrLS0tLQoga2VybmVsL2JwZi92ZXJpZmllci5jIHwgMTEgKysr KysrKy0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYuaCBiL2luY2x1ZGUvbGludXgvYnBm LmgKaW5kZXggODNkMTkyNi4uNjdiYzJkYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9icGYu aAorKysgYi9pbmNsdWRlL2xpbnV4L2JwZi5oCkBAIC0xNjUsMTIgKzE2NSwxMyBAQCB2b2lkIGJw Zl9yZWdpc3Rlcl9wcm9nX3R5cGUoc3RydWN0IGJwZl9wcm9nX3R5cGVfbGlzdCAqdGwpOwogdm9p ZCBicGZfcmVnaXN0ZXJfbWFwX3R5cGUoc3RydWN0IGJwZl9tYXBfdHlwZV9saXN0ICp0bCk7CiAK IHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2dfZ2V0KHUzMiB1ZmQpOworc3RydWN0IGJwZl9wcm9n ICpicGZfcHJvZ19pbmMoc3RydWN0IGJwZl9wcm9nICpwcm9nKTsKIHZvaWQgYnBmX3Byb2dfcHV0 KHN0cnVjdCBicGZfcHJvZyAqcHJvZyk7CiB2b2lkIGJwZl9wcm9nX3B1dF9yY3Uoc3RydWN0IGJw Zl9wcm9nICpwcm9nKTsKIAogc3RydWN0IGJwZl9tYXAgKmJwZl9tYXBfZ2V0X3dpdGhfdXJlZih1 MzIgdWZkKTsKIHN0cnVjdCBicGZfbWFwICpfX2JwZl9tYXBfZ2V0KHN0cnVjdCBmZCBmKTsKLXZv aWQgYnBmX21hcF9pbmMoc3RydWN0IGJwZl9tYXAgKm1hcCwgYm9vbCB1cmVmKTsKK3N0cnVjdCBi cGZfbWFwICpicGZfbWFwX2luYyhzdHJ1Y3QgYnBmX21hcCAqbWFwLCBib29sIHVyZWYpOwogdm9p ZCBicGZfbWFwX3B1dF93aXRoX3VyZWYoc3RydWN0IGJwZl9tYXAgKm1hcCk7CiB2b2lkIGJwZl9t YXBfcHV0KHN0cnVjdCBicGZfbWFwICptYXApOwogCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2lu b2RlLmMgYi9rZXJuZWwvYnBmL2lub2RlLmMKaW5kZXggNWE4YTc5Ny4uZDFhNzY0NiAxMDA2NDQK LS0tIGEva2VybmVsL2JwZi9pbm9kZS5jCisrKyBiL2tlcm5lbC9icGYvaW5vZGUuYwpAQCAtMzEs MTAgKzMxLDEwIEBAIHN0YXRpYyB2b2lkICpicGZfYW55X2dldCh2b2lkICpyYXcsIGVudW0gYnBm X3R5cGUgdHlwZSkKIHsKIAlzd2l0Y2ggKHR5cGUpIHsKIAljYXNlIEJQRl9UWVBFX1BST0c6Ci0J CWF0b21pY19pbmMoJigoc3RydWN0IGJwZl9wcm9nICopcmF3KS0+YXV4LT5yZWZjbnQpOworCQly YXcgPSBicGZfcHJvZ19pbmMocmF3KTsKIAkJYnJlYWs7CiAJY2FzZSBCUEZfVFlQRV9NQVA6Ci0J CWJwZl9tYXBfaW5jKHJhdywgdHJ1ZSk7CisJCXJhdyA9IGJwZl9tYXBfaW5jKHJhdywgdHJ1ZSk7 CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCVdBUk5fT05fT05DRSgxKTsKQEAgLTI3Nyw3ICsyNzcs OCBAQCBzdGF0aWMgdm9pZCAqYnBmX29ial9kb19nZXQoY29uc3Qgc3RydWN0IGZpbGVuYW1lICpw YXRobmFtZSwKIAkJZ290byBvdXQ7CiAKIAlyYXcgPSBicGZfYW55X2dldChpbm9kZS0+aV9wcml2 YXRlLCAqdHlwZSk7Ci0JdG91Y2hfYXRpbWUoJnBhdGgpOworCWlmICghSVNfRVJSKHJhdykpCisJ CXRvdWNoX2F0aW1lKCZwYXRoKTsKIAogCXBhdGhfcHV0KCZwYXRoKTsKIAlyZXR1cm4gcmF3Owpk aWZmIC0tZ2l0IGEva2VybmVsL2JwZi9zeXNjYWxsLmMgYi9rZXJuZWwvYnBmL3N5c2NhbGwuYwpp bmRleCAzYjM5NTUwLi40ZTMyY2M5IDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL3N5c2NhbGwuYwor KysgYi9rZXJuZWwvYnBmL3N5c2NhbGwuYwpAQCAtMTgxLDExICsxODEsMTggQEAgc3RydWN0IGJw Zl9tYXAgKl9fYnBmX21hcF9nZXQoc3RydWN0IGZkIGYpCiAJcmV0dXJuIGYuZmlsZS0+cHJpdmF0 ZV9kYXRhOwogfQogCi12b2lkIGJwZl9tYXBfaW5jKHN0cnVjdCBicGZfbWFwICptYXAsIGJvb2wg dXJlZikKKy8qIHByb2cncyBhbmQgbWFwJ3MgcmVmY250IGxpbWl0ICovCisjZGVmaW5lIEJQRl9N QVhfUkVGQ05UIDMyNzY4CisKK3N0cnVjdCBicGZfbWFwICpicGZfbWFwX2luYyhzdHJ1Y3QgYnBm X21hcCAqbWFwLCBib29sIHVyZWYpCiB7Ci0JYXRvbWljX2luYygmbWFwLT5yZWZjbnQpOworCWlm IChhdG9taWNfaW5jX3JldHVybigmbWFwLT5yZWZjbnQpID4gQlBGX01BWF9SRUZDTlQpIHsKKwkJ YXRvbWljX2RlYygmbWFwLT5yZWZjbnQpOworCQlyZXR1cm4gRVJSX1BUUigtRUJVU1kpOworCX0K IAlpZiAodXJlZikKIAkJYXRvbWljX2luYygmbWFwLT51c2VyY250KTsKKwlyZXR1cm4gbWFwOwog fQogCiBzdHJ1Y3QgYnBmX21hcCAqYnBmX21hcF9nZXRfd2l0aF91cmVmKHUzMiB1ZmQpCkBAIC0x OTcsNyArMjA0LDcgQEAgc3RydWN0IGJwZl9tYXAgKmJwZl9tYXBfZ2V0X3dpdGhfdXJlZih1MzIg dWZkKQogCWlmIChJU19FUlIobWFwKSkKIAkJcmV0dXJuIG1hcDsKIAotCWJwZl9tYXBfaW5jKG1h cCwgdHJ1ZSk7CisJbWFwID0gYnBmX21hcF9pbmMobWFwLCB0cnVlKTsKIAlmZHB1dChmKTsKIAog CXJldHVybiBtYXA7CkBAIC01ODAsNiArNTg3LDE1IEBAIHN0YXRpYyBzdHJ1Y3QgYnBmX3Byb2cg Kl9fYnBmX3Byb2dfZ2V0KHN0cnVjdCBmZCBmKQogCXJldHVybiBmLmZpbGUtPnByaXZhdGVfZGF0 YTsKIH0KIAorc3RydWN0IGJwZl9wcm9nICpicGZfcHJvZ19pbmMoc3RydWN0IGJwZl9wcm9nICpw cm9nKQoreworCWlmIChhdG9taWNfaW5jX3JldHVybigmcHJvZy0+YXV4LT5yZWZjbnQpID4gQlBG X01BWF9SRUZDTlQpIHsKKwkJYXRvbWljX2RlYygmcHJvZy0+YXV4LT5yZWZjbnQpOworCQlyZXR1 cm4gRVJSX1BUUigtRUJVU1kpOworCX0KKwlyZXR1cm4gcHJvZzsKK30KKwogLyogY2FsbGVkIGJ5 IHNvY2tldHMvdHJhY2luZy9zZWNjb21wIGJlZm9yZSBhdHRhY2hpbmcgcHJvZ3JhbSB0byBhbiBl dmVudAogICogcGFpcnMgd2l0aCBicGZfcHJvZ19wdXQoKQogICovCkBAIC01OTIsNyArNjA4LDcg QEAgc3RydWN0IGJwZl9wcm9nICpicGZfcHJvZ19nZXQodTMyIHVmZCkKIAlpZiAoSVNfRVJSKHBy b2cpKQogCQlyZXR1cm4gcHJvZzsKIAotCWF0b21pY19pbmMoJnByb2ctPmF1eC0+cmVmY250KTsK Kwlwcm9nID0gYnBmX3Byb2dfaW5jKHByb2cpOwogCWZkcHV0KGYpOwogCiAJcmV0dXJuIHByb2c7 CmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVy LmMKaW5kZXggZTM3OThjZi4uNWE2MTVjMTggMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZp ZXIuYworKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTIwMjMsMTUgKzIwMjMsMTggQEAg c3RhdGljIGludCByZXBsYWNlX21hcF9mZF93aXRoX21hcF9wdHIoc3RydWN0IHZlcmlmaWVyX2Vu diAqZW52KQogCQkJCXJldHVybiAtRTJCSUc7CiAJCQl9CiAKLQkJCS8qIHJlbWVtYmVyIHRoaXMg bWFwICovCi0JCQllbnYtPnVzZWRfbWFwc1tlbnYtPnVzZWRfbWFwX2NudCsrXSA9IG1hcDsKLQog CQkJLyogaG9sZCB0aGUgbWFwLiBJZiB0aGUgcHJvZ3JhbSBpcyByZWplY3RlZCBieSB2ZXJpZmll ciwKIAkJCSAqIHRoZSBtYXAgd2lsbCBiZSByZWxlYXNlZCBieSByZWxlYXNlX21hcHMoKSBvciBp dAogCQkJICogd2lsbCBiZSB1c2VkIGJ5IHRoZSB2YWxpZCBwcm9ncmFtIHVudGlsIGl0J3MgdW5s b2FkZWQKIAkJCSAqIGFuZCBhbGwgbWFwcyBhcmUgcmVsZWFzZWQgaW4gZnJlZV9icGZfcHJvZ19p bmZvKCkKIAkJCSAqLwotCQkJYnBmX21hcF9pbmMobWFwLCBmYWxzZSk7CisJCQltYXAgPSBicGZf bWFwX2luYyhtYXAsIGZhbHNlKTsKKwkJCWlmIChJU19FUlIobWFwKSkgeworCQkJCWZkcHV0KGYp OworCQkJCXJldHVybiBQVFJfRVJSKG1hcCk7CisJCQl9CisJCQllbnYtPnVzZWRfbWFwc1tlbnYt PnVzZWRfbWFwX2NudCsrXSA9IG1hcDsKKwogCQkJZmRwdXQoZik7CiBuZXh0X2luc246CiAJCQlp bnNuKys7Ci0tIAoyLjEuMAoKCkZyb20gNGVkNGY2NTE0NDYyOWIwMjdlZTdlNzhiZTc4ZmNmOGY3 OGRjYTgxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGVpIFN0YXJvdm9pdG92 IDxhc3RAZmIuY29tPgpEYXRlOiBXZWQsIDI3IEFwciAyMDE2IDE4OjU2OjIxIC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAxOC8zOF0gYnBmOiBmaXggY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eSBs b2dpYwoKWyBVcHN0cmVhbSBjb21taXQgNmFmZjY3Yzg1YzllNWE0YmM5OWU1MjExYzFiYWM1NDc5 MzY2MjZjYSBdCgpUaGUgY29tbWl0IDM1NTc4ZDc5ODQwMCAoImJwZjogSW1wbGVtZW50IGZ1bmN0 aW9uIGJwZl9wZXJmX2V2ZW50X3JlYWQoKSB0aGF0IGdldCB0aGUgc2VsZWN0ZWQgaGFyZHdhcmUg UE1VIGNvbnV0ZXIiKQppbnRyb2R1Y2VkIGNsZXZlciB3YXkgdG8gY2hlY2sgYnBmX2hlbHBlcjwt Pm1hcF90eXBlIGNvbXBhdGliaWxpdHkuCkxhdGVyIG9uIGNvbW1pdCBhNDNlZWMzMDQyNTkgKCJi cGY6IGludHJvZHVjZSBicGZfcGVyZl9ldmVudF9vdXRwdXQoKSBoZWxwZXIiKSBhZGp1c3RlZAp0 aGUgbG9naWMgYW5kIGluYWR2ZXJ0ZW50bHkgYnJva2UgaXQuCkdldCByaWQgb2YgdGhlIGNsZXZl ciBib29sIGNvbXBhcmUgYW5kIGdvIGJhY2sgdG8gdHdvLXdheSBjaGVjawpmcm9tIG1hcCBhbmQg ZnJvbSBoZWxwZXIgcGVyc3BlY3RpdmUuCgpGaXhlczogYTQzZWVjMzA0MjU5ICgiYnBmOiBpbnRy b2R1Y2UgYnBmX3BlcmZfZXZlbnRfb3V0cHV0KCkgaGVscGVyIikKUmVwb3J0ZWQtYnk6IEphbm4g SG9ybiA8amFubmhAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogQWxleGVpIFN0YXJvdm9pdG92 IDxhc3RAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxA aW9nZWFyYm94Lm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGtlcm5lbC9icGYvdmVyaWZpZXIuYyB8IDUzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMy IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYv dmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCA1YTYxNWMxOC4uMmNiZmJh NyAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jCisrKyBiL2tlcm5lbC9icGYvdmVy aWZpZXIuYwpAQCAtMjM5LDE1ICsyMzksNiBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHJl Z190eXBlX3N0cltdID0gewogCVtDT05TVF9JTU1dCQk9ICJpbW0iLAogfTsKIAotc3RhdGljIGNv bnN0IHN0cnVjdCB7Ci0JaW50IG1hcF90eXBlOwotCWludCBmdW5jX2lkOwotfSBmdW5jX2xpbWl0 W10gPSB7Ci0Je0JQRl9NQVBfVFlQRV9QUk9HX0FSUkFZLCBCUEZfRlVOQ190YWlsX2NhbGx9LAot CXtCUEZfTUFQX1RZUEVfUEVSRl9FVkVOVF9BUlJBWSwgQlBGX0ZVTkNfcGVyZl9ldmVudF9yZWFk fSwKLQl7QlBGX01BUF9UWVBFX1BFUkZfRVZFTlRfQVJSQVksIEJQRl9GVU5DX3BlcmZfZXZlbnRf b3V0cHV0fSwKLX07Ci0KIHN0YXRpYyB2b2lkIHByaW50X3ZlcmlmaWVyX3N0YXRlKHN0cnVjdCB2 ZXJpZmllcl9lbnYgKmVudikKIHsKIAllbnVtIGJwZl9yZWdfdHlwZSB0OwpAQCAtODk4LDI0ICs4 ODksNDQgQEAgc3RhdGljIGludCBjaGVja19mdW5jX2FyZyhzdHJ1Y3QgdmVyaWZpZXJfZW52ICpl bnYsIHUzMiByZWdubywKIAogc3RhdGljIGludCBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5 KHN0cnVjdCBicGZfbWFwICptYXAsIGludCBmdW5jX2lkKQogewotCWJvb2wgYm9vbF9tYXAsIGJv b2xfZnVuYzsKLQlpbnQgaTsKLQogCWlmICghbWFwKQogCQlyZXR1cm4gMDsKIAotCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKGZ1bmNfbGltaXQpOyBpKyspIHsKLQkJYm9vbF9tYXAgPSAobWFw LT5tYXBfdHlwZSA9PSBmdW5jX2xpbWl0W2ldLm1hcF90eXBlKTsKLQkJYm9vbF9mdW5jID0gKGZ1 bmNfaWQgPT0gZnVuY19saW1pdFtpXS5mdW5jX2lkKTsKLQkJLyogb25seSB3aGVuIG1hcCAmIGZ1 bmMgcGFpciBtYXRjaCBpdCBjYW4gY29udGludWUuCi0JCSAqIGRvbid0IGFsbG93IGFueSBvdGhl ciBtYXAgdHlwZSB0byBiZSBwYXNzZWQgaW50bwotCQkgKiB0aGUgc3BlY2lhbCBmdW5jOwotCQkg Ki8KLQkJaWYgKGJvb2xfZnVuYyAmJiBib29sX21hcCAhPSBib29sX2Z1bmMpCi0JCQlyZXR1cm4g LUVJTlZBTDsKKwkvKiBXZSBuZWVkIGEgdHdvIHdheSBjaGVjaywgZmlyc3QgaXMgZnJvbSBtYXAg cGVyc3BlY3RpdmUgLi4uICovCisJc3dpdGNoIChtYXAtPm1hcF90eXBlKSB7CisJY2FzZSBCUEZf TUFQX1RZUEVfUFJPR19BUlJBWToKKwkJaWYgKGZ1bmNfaWQgIT0gQlBGX0ZVTkNfdGFpbF9jYWxs KQorCQkJZ290byBlcnJvcjsKKwkJYnJlYWs7CisJY2FzZSBCUEZfTUFQX1RZUEVfUEVSRl9FVkVO VF9BUlJBWToKKwkJaWYgKGZ1bmNfaWQgIT0gQlBGX0ZVTkNfcGVyZl9ldmVudF9yZWFkICYmCisJ CSAgICBmdW5jX2lkICE9IEJQRl9GVU5DX3BlcmZfZXZlbnRfb3V0cHV0KQorCQkJZ290byBlcnJv cjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJLyogLi4uIGFuZCBzZWNv bmQgZnJvbSB0aGUgZnVuY3Rpb24gaXRzZWxmLiAqLworCXN3aXRjaCAoZnVuY19pZCkgeworCWNh c2UgQlBGX0ZVTkNfdGFpbF9jYWxsOgorCQlpZiAobWFwLT5tYXBfdHlwZSAhPSBCUEZfTUFQX1RZ UEVfUFJPR19BUlJBWSkKKwkJCWdvdG8gZXJyb3I7CisJCWJyZWFrOworCWNhc2UgQlBGX0ZVTkNf cGVyZl9ldmVudF9yZWFkOgorCWNhc2UgQlBGX0ZVTkNfcGVyZl9ldmVudF9vdXRwdXQ6CisJCWlm IChtYXAtPm1hcF90eXBlICE9IEJQRl9NQVBfVFlQRV9QRVJGX0VWRU5UX0FSUkFZKQorCQkJZ290 byBlcnJvcjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CiAJfQogCiAJcmV0dXJuIDA7 CitlcnJvcjoKKwl2ZXJib3NlKCJjYW5ub3QgcGFzcyBtYXBfdHlwZSAlZCBpbnRvIGZ1bmMgJWRc biIsCisJCW1hcC0+bWFwX3R5cGUsIGZ1bmNfaWQpOworCXJldHVybiAtRUlOVkFMOwogfQogCiBz dGF0aWMgaW50IGNoZWNrX2NhbGwoc3RydWN0IHZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19p ZCkKLS0gCjIuMS4wCgoKRnJvbSA2OGNlNDM1MjVlYzU4ZWU1OGVkOWE0Mzc2ZWY5NTYzYWI2ZmQ0 NTQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFz dEBmYi5jb20+CkRhdGU6IFdlZCwgMjcgQXByIDIwMTYgMTg6NTY6MjIgLTA3MDAKU3ViamVjdDog W1BBVENIIDE5LzM4XSBzYW1wbGVzL2JwZjogZml4IHRyYWNlX291dHB1dCBleGFtcGxlCgpbIFVw c3RyZWFtIGNvbW1pdCA1NjljYzM5ZDM5Mzg1YTc0YjIzMTQ1NDk2YmNhMmRmNWFjOGIyZmI4IF0K Cmxsdm0gY2Fubm90IGFsd2F5cyByZWNvZ25pemUgbWVtc2V0IGFzIGJ1aWx0aW4gZnVuY3Rpb24g YW5kIG9wdGltaXplCml0IGF3YXksIHNvIGp1c3QgZGVsZXRlIGl0LiBJdCB3YXMgYSBsZWZ0b3Zl ciBmcm9tIHRlc3RpbmcKb2YgYnBmX3BlcmZfZXZlbnRfb3V0cHV0KCkgd2l0aCBsYXJnZSBkYXRh IHN0cnVjdHVyZXMuCgpGaXhlczogMzkxMTE2OTViMWI4ICgic2FtcGxlczogYnBmOiBhZGQgYnBm X3BlcmZfZXZlbnRfb3V0cHV0IGV4YW1wbGUiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZWkgU3Rhcm92 b2l0b3YgPGFzdEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogc2FtcGxlcy9icGYvdHJhY2Vfb3V0cHV0X2tlcm4uYyB8 IDEgLQogMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zYW1wbGVz L2JwZi90cmFjZV9vdXRwdXRfa2Vybi5jIGIvc2FtcGxlcy9icGYvdHJhY2Vfb3V0cHV0X2tlcm4u YwppbmRleCA4ZDhkMWVjLi45Yjk2ZjRmIDEwMDY0NAotLS0gYS9zYW1wbGVzL2JwZi90cmFjZV9v dXRwdXRfa2Vybi5jCisrKyBiL3NhbXBsZXMvYnBmL3RyYWNlX291dHB1dF9rZXJuLmMKQEAgLTE4 LDcgKzE4LDYgQEAgaW50IGJwZl9wcm9nMShzdHJ1Y3QgcHRfcmVncyAqY3R4KQogCQl1NjQgY29v a2llOwogCX0gZGF0YTsKIAotCW1lbXNldCgmZGF0YSwgMCwgc2l6ZW9mKGRhdGEpKTsKIAlkYXRh LnBpZCA9IGJwZl9nZXRfY3VycmVudF9waWRfdGdpZCgpOwogCWRhdGEuY29va2llID0gMHgxMjM0 NTY3ODsKIAotLSAKMi4xLjAKCgpGcm9tIDM5YTY4ZGNiNjFmOTZhZjFhMmVhZjVjNTIxM2M1OTUy NGQ4Y2YzNGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRpbSBCaW5naGFtIDx0Ymlu Z2hhbUBha2FtYWkuY29tPgpEYXRlOiBGcmksIDI5IEFwciAyMDE2IDEzOjMwOjIzIC0wNDAwClN1 YmplY3Q6IFtQQVRDSCAyMC8zOF0gbmV0OiBJbXBsZW1lbnQgbmV0X2RiZ19yYXRlbGltaXRlZCgp IGZvcgogQ09ORklHX0RZTkFNSUNfREVCVUcgY2FzZQoKWyBVcHN0cmVhbSBjb21taXQgMmM5NGI1 MzczODU0OWQ4MWRjNzQ2NGEzMjExN2QxZjUxMTJjNjRkMyBdCgpQcmlvciB0byBjb21taXQgZDky Y2ZmODlhMGM4ICgibmV0X2RiZ19yYXRlbGltaXRlZDogdHVybiBpbnRvIG5vLW9wCndoZW4gIURF QlVHIikgdGhlIGltcGxlbWVudGF0aW9uIG9mIG5ldF9kYmdfcmF0ZWxpbWl0ZWQoKSB3YXMgYnVn Z3kKZm9yIGJvdGggdGhlIERFQlVHIGFuZCBDT05GSUdfRFlOQU1JQ19ERUJVRyBjYXNlcy4KClRo ZSBidWcgd2FzIHRoYXQgbmV0X3JhdGVsaW1pdCgpIHdhcyBiZWluZyBjYWxsZWQgYW5kLCBkZXNw aXRlCnJldHVybmluZyB0cnVlLCBub3RoaW5nIHdhcyBiZWluZyBwcmludGVkIHRvIHRoZSBjb25z b2xlLiBUaGlzCnJlc3VsdGVkIGluIG1lc3NhZ2VzIGxpa2UgdGhlIGZvbGxvd2luZyAtCgoibmV0 X3JhdGVsaW1pdDogJWQgY2FsbGJhY2tzIHN1cHByZXNzZWQiCgp3aXRoIG5vIG90aGVyIG91dHB1 dCBuZWFyYnkuCgpBZnRlciBjb21taXQgZDkyY2ZmODlhMGM4ICgibmV0X2RiZ19yYXRlbGltaXRl ZDogdHVybiBpbnRvIG5vLW9wIHdoZW4KIURFQlVHIikgdGhlIGJ1ZyBpcyBmaXhlZCBmb3IgdGhl IERFQlVHIGNhc2UuIEhvd2V2ZXIsIHRoZXJlJ3Mgbm8Kb3V0cHV0IGF0IGFsbCBmb3IgQ09ORklH X0RZTkFNSUNfREVCVUcgY2FzZS4KClRoaXMgcGF0Y2ggcmVzdG9yZXMgZGVidWcgb3V0cHV0IChp ZiBlbmFibGVkKSBmb3IgdGhlCkNPTkZJR19EWU5BTUlDX0RFQlVHIGNhc2UuCgpBZGQgYSBkZWZp bml0aW9uIG9mIG5ldF9kYmdfcmF0ZWxpbWl0ZWQoKSBmb3IgdGhlIENPTkZJR19EWU5BTUlDX0RF QlVHCmNhc2UuIFRoZSBpbXBsZW1lbnRhdGlvbiB0YWtlcyBjYXJlIHRvIGNoZWNrIHRoYXQgZHlu YW1pYyBkZWJ1Z2dpbmcgaXMKZW5hYmxlZCBiZWZvcmUgY2FsbGluZyBuZXRfcmF0ZWxpbWl0KCku CgpGaXhlczogZDkyY2ZmODlhMGM4ICgibmV0X2RiZ19yYXRlbGltaXRlZDogdHVybiBpbnRvIG5v LW9wIHdoZW4gIURFQlVHIikKU2lnbmVkLW9mZi1ieTogVGltIEJpbmdoYW0gPHRiaW5naGFtQGFr YW1haS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L25ldC5oIHwgMTAgKysrKysrKysrLQogMSBmaWxlIGNo YW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvbmV0LmggYi9pbmNsdWRlL2xpbnV4L25ldC5oCmluZGV4IDBiNGFjN2QuLjI1ZWY2 MzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0LmgKKysrIGIvaW5jbHVkZS9saW51eC9u ZXQuaApAQCAtMjQ1LDcgKzI0NSwxNSBAQCBkbyB7CQkJCQkJCQlcCiAJbmV0X3JhdGVsaW1pdGVk X2Z1bmN0aW9uKHByX3dhcm4sIGZtdCwgIyNfX1ZBX0FSR1NfXykKICNkZWZpbmUgbmV0X2luZm9f cmF0ZWxpbWl0ZWQoZm10LCAuLi4pCQkJCVwKIAluZXRfcmF0ZWxpbWl0ZWRfZnVuY3Rpb24ocHJf aW5mbywgZm10LCAjI19fVkFfQVJHU19fKQotI2lmIGRlZmluZWQoREVCVUcpCisjaWYgZGVmaW5l ZChDT05GSUdfRFlOQU1JQ19ERUJVRykKKyNkZWZpbmUgbmV0X2RiZ19yYXRlbGltaXRlZChmbXQs IC4uLikJCQkJCVwKK2RvIHsJCQkJCQkJCQlcCisJREVGSU5FX0RZTkFNSUNfREVCVUdfTUVUQURB VEEoZGVzY3JpcHRvciwgZm10KTsJCQlcCisJaWYgKHVubGlrZWx5KGRlc2NyaXB0b3IuZmxhZ3Mg JiBfRFBSSU5US19GTEFHU19QUklOVCkgJiYJXAorCSAgICBuZXRfcmF0ZWxpbWl0KCkpCQkJCQkJ XAorCQlfX2R5bmFtaWNfcHJfZGVidWcoJmRlc2NyaXB0b3IsIGZtdCwgIyNfX1ZBX0FSR1NfXyk7 CVwKK30gd2hpbGUgKDApCisjZWxpZiBkZWZpbmVkKERFQlVHKQogI2RlZmluZSBuZXRfZGJnX3Jh dGVsaW1pdGVkKGZtdCwgLi4uKQkJCQlcCiAJbmV0X3JhdGVsaW1pdGVkX2Z1bmN0aW9uKHByX2Rl YnVnLCBmbXQsICMjX19WQV9BUkdTX18pCiAjZWxzZQotLSAKMi4xLjAKCgpGcm9tIDYzMDdjMDIx NDFkZmViNjRmOTZiMjEzYzE5MDgzY2M2NDI1MzJmMTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEppcmkgQmVuYyA8amJlbmNAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAyOSBBcHIgMjAx NiAyMzozMTozMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMzhdIGdyZTogZG8gbm90IHB1bGwg aGVhZGVyIGluIElDTVAgZXJyb3IgcHJvY2Vzc2luZwoKWyBVcHN0cmVhbSBjb21taXQgYjdmOGZl MjUxZTQ2MDllMmE0MzdiZDJjMmRlYTAxZTYxZGI2ODQ5YyBdCgppcHR1bm5lbF9wdWxsX2hlYWRl ciBleHBlY3RzIHRoYXQgSVAgaGVhZGVyIHdhcyBhbHJlYWR5IHB1bGxlZDsgd2l0aCB0aGlzCmV4 cGVjdGF0aW9uLCBpdCBwdWxscyB0aGUgdHVubmVsIGhlYWRlci4gVGhpcyBpcyBub3QgdHJ1ZSBp biBncmVfZXJyLgpGdXJ0aGVybW9yZSwgaXB2NF91cGRhdGVfcG10dSBhbmQgaXB2NF9yZWRpcmVj dCBleHBlY3QgdGhhdCBza2ItPmRhdGEgcG9pbnRzCnRvIHRoZSBJUCBoZWFkZXIuCgpXZSBjYW5u b3QgcHVsbCB0aGUgdHVubmVsIGhlYWRlciBpbiB0aGlzIHBhdGguIEl0J3MganVzdCBhIG1hdHRl ciBvZiBub3QKY2FsbGluZyBpcHR1bm5lbF9wdWxsX2hlYWRlciAtIHdlIGRvbid0IG5lZWQgYW55 IG9mIGl0cyBlZmZlY3RzLgoKRml4ZXM6IGJkYTdiYjQ2MzQzNiAoImdyZTogQWxsb3cgbXVsdGlw bGUgcHJvdG9jb2wgbGlzdGVuZXIgZm9yIGdyZSBwcm90b2NvbC4iKQpTaWduZWQtb2ZmLWJ5OiBK aXJpIEJlbmMgPGpiZW5jQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pcF9ncmUuYyB8IDExICsrKysr KysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2dyZS5jIGIvbmV0L2lwdjQvaXBfZ3JlLmMKaW5kZXgg NjE0NTIxNC4uN2RjOTYyYiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZ3JlLmMKKysrIGIvbmV0 L2lwdjQvaXBfZ3JlLmMKQEAgLTE4MCw2ICsxODAsNyBAQCBzdGF0aWMgX19iZTE2IHRubF9mbGFn c190b19ncmVfZmxhZ3MoX19iZTE2IHRmbGFncykKIAlyZXR1cm4gZmxhZ3M7CiB9CiAKKy8qIEZp bGxzIGluIHRwaSBhbmQgcmV0dXJucyBoZWFkZXIgbGVuZ3RoIHRvIGJlIHB1bGxlZC4gKi8KIHN0 YXRpYyBpbnQgcGFyc2VfZ3JlX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdG5s X3B0a19pbmZvICp0cGksCiAJCQkgICAgYm9vbCAqY3N1bV9lcnIpCiB7CkBAIC0yMzksNyArMjQw LDcgQEAgc3RhdGljIGludCBwYXJzZV9ncmVfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCB0bmxfcHRrX2luZm8gKnRwaSwKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCX0KLQly ZXR1cm4gaXB0dW5uZWxfcHVsbF9oZWFkZXIoc2tiLCBoZHJfbGVuLCB0cGktPnByb3RvKTsKKwly ZXR1cm4gaGRyX2xlbjsKIH0KIAogc3RhdGljIHZvaWQgaXBncmVfZXJyKHN0cnVjdCBza19idWZm ICpza2IsIHUzMiBpbmZvLApAQCAtMzQyLDcgKzM0Myw3IEBAIHN0YXRpYyB2b2lkIGdyZV9lcnIo c3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIGluZm8pCiAJc3RydWN0IHRubF9wdGtfaW5mbyB0cGk7 CiAJYm9vbCBjc3VtX2VyciA9IGZhbHNlOwogCi0JaWYgKHBhcnNlX2dyZV9oZWFkZXIoc2tiLCAm dHBpLCAmY3N1bV9lcnIpKSB7CisJaWYgKHBhcnNlX2dyZV9oZWFkZXIoc2tiLCAmdHBpLCAmY3N1 bV9lcnIpIDwgMCkgewogCQlpZiAoIWNzdW1fZXJyKQkJLyogaWdub3JlIGNzdW0gZXJyb3JzLiAq LwogCQkJcmV0dXJuOwogCX0KQEAgLTQyMCw2ICs0MjEsNyBAQCBzdGF0aWMgaW50IGdyZV9yY3Yo c3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlzdHJ1Y3QgdG5sX3B0a19pbmZvIHRwaTsKIAlib29s IGNzdW1fZXJyID0gZmFsc2U7CisJaW50IGhkcl9sZW47CiAKICNpZmRlZiBDT05GSUdfTkVUX0lQ R1JFX0JST0FEQ0FTVAogCWlmIChpcHY0X2lzX211bHRpY2FzdChpcF9oZHIoc2tiKS0+ZGFkZHIp KSB7CkBAIC00MjksNyArNDMxLDEwIEBAIHN0YXRpYyBpbnQgZ3JlX3JjdihzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQogCX0KICNlbmRpZgogCi0JaWYgKHBhcnNlX2dyZV9oZWFkZXIoc2tiLCAmdHBpLCAm Y3N1bV9lcnIpIDwgMCkKKwloZHJfbGVuID0gcGFyc2VfZ3JlX2hlYWRlcihza2IsICZ0cGksICZj c3VtX2Vycik7CisJaWYgKGhkcl9sZW4gPCAwKQorCQlnb3RvIGRyb3A7CisJaWYgKGlwdHVubmVs X3B1bGxfaGVhZGVyKHNrYiwgaGRyX2xlbiwgdHBpLnByb3RvKSA8IDApCiAJCWdvdG8gZHJvcDsK IAogCWlmIChpcGdyZV9yY3Yoc2tiLCAmdHBpKSA9PSBQQUNLRVRfUkNWRCkKLS0gCjIuMS4wCgoK RnJvbSBiZTgxZGI2ODM2NGMxMDE4MDUxNzlhMTE1YTkyMGMxYTE0NGFiYWU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBXQU5HIENvbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCAyNSBGZWIgMjAxNiAxNDo1NTowMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjIv MzhdIG5ldF9zY2hlZDogaW50cm9kdWNlIHFkaXNjX3JlcGxhY2UoKSBoZWxwZXIKClsgVXBzdHJl YW0gY29tbWl0IDg2YTc5OTZjYzhhMDc4NzkzNjcwZDgyZWQ5N2Q1YTk5YmI0ZTg0OTYgXQoKUmVt b3ZlIG5lYXJseSBkdXBsaWNhdGVkIGNvZGUgYW5kIHByZXBhcmUgZm9yIHRoZSBmb2xsb3dpbmcg cGF0Y2guCgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQWNrZWQtYnk6 IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcg V2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMu aCB8IDE3ICsrKysrKysrKysrKysrKysrCiBuZXQvc2NoZWQvc2NoX2NicS5jICAgICAgIHwgIDcg Ky0tLS0tLQogbmV0L3NjaGVkL3NjaF9kcnIuYyAgICAgICB8ICA2ICstLS0tLQogbmV0L3NjaGVk L3NjaF9kc21hcmsuYyAgICB8ICA4ICstLS0tLS0tCiBuZXQvc2NoZWQvc2NoX2hmc2MuYyAgICAg IHwgIDYgKy0tLS0tCiBuZXQvc2NoZWQvc2NoX2h0Yi5jICAgICAgIHwgIDkgKy0tLS0tLS0tCiBu ZXQvc2NoZWQvc2NoX211bHRpcS5jICAgIHwgIDggKy0tLS0tLS0KIG5ldC9zY2hlZC9zY2hfbmV0 ZW0uYyAgICAgfCAxMCArLS0tLS0tLS0tCiBuZXQvc2NoZWQvc2NoX3ByaW8uYyAgICAgIHwgIDgg Ky0tLS0tLS0KIG5ldC9zY2hlZC9zY2hfcWZxLmMgICAgICAgfCAgNiArLS0tLS0KIG5ldC9zY2hl ZC9zY2hfcmVkLmMgICAgICAgfCAgNyArLS0tLS0tCiBuZXQvc2NoZWQvc2NoX3NmYi5jICAgICAg IHwgIDcgKy0tLS0tLQogbmV0L3NjaGVkL3NjaF90YmYuYyAgICAgICB8ICA4ICstLS0tLS0tCiAx MyBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oIGIvaW5jbHVkZS9uZXQvc2NoX2dlbmVy aWMuaAppbmRleCBiMmE4ZTYzLi40ZGJhMjY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY2hf Z2VuZXJpYy5oCisrKyBiL2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmgKQEAgLTY5OCw2ICs2OTgs MjMgQEAgc3RhdGljIGlubGluZSB2b2lkIHFkaXNjX3Jlc2V0X3F1ZXVlKHN0cnVjdCBRZGlzYyAq c2NoKQogCXNjaC0+cXN0YXRzLmJhY2tsb2cgPSAwOwogfQogCitzdGF0aWMgaW5saW5lIHN0cnVj dCBRZGlzYyAqcWRpc2NfcmVwbGFjZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IFFkaXNjICpu ZXcsCisJCQkJCSAgc3RydWN0IFFkaXNjICoqcG9sZCkKK3sKKwlzdHJ1Y3QgUWRpc2MgKm9sZDsK KworCXNjaF90cmVlX2xvY2soc2NoKTsKKwlvbGQgPSAqcG9sZDsKKwkqcG9sZCA9IG5ldzsKKwlp ZiAob2xkICE9IE5VTEwpIHsKKwkJcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKG9sZCwgb2xkLT5x LnFsZW4pOworCQlxZGlzY19yZXNldChvbGQpOworCX0KKwlzY2hfdHJlZV91bmxvY2soc2NoKTsK KworCXJldHVybiBvbGQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IF9fcWRpc2Nf cXVldWVfZHJvcChzdHJ1Y3QgUWRpc2MgKnNjaCwKIAkJCQkJICAgICAgc3RydWN0IHNrX2J1ZmZf aGVhZCAqbGlzdCkKIHsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2JxLmMgYi9uZXQvc2No ZWQvc2NoX2NicS5jCmluZGV4IGM1MzhkOWUuLjdmODQ3NGMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hl ZC9zY2hfY2JxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9jYnEuYwpAQCAtMTYyNCwxMyArMTYyNCw4 IEBAIHN0YXRpYyBpbnQgY2JxX2dyYWZ0KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25n IGFyZywgc3RydWN0IFFkaXNjICpuZXcsCiAJCQluZXctPnJlc2hhcGVfZmFpbCA9IGNicV9yZXNo YXBlX2ZhaWw7CiAjZW5kaWYKIAl9Ci0Jc2NoX3RyZWVfbG9jayhzY2gpOwotCSpvbGQgPSBjbC0+ cTsKLQljbC0+cSA9IG5ldzsKLQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oKm9sZCwgKCpvbGQp LT5xLnFsZW4pOwotCXFkaXNjX3Jlc2V0KCpvbGQpOwotCXNjaF90cmVlX3VubG9jayhzY2gpOwog CisJKm9sZCA9IHFkaXNjX3JlcGxhY2Uoc2NoLCBuZXcsICZjbC0+cSk7CiAJcmV0dXJuIDA7CiB9 CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfZHJyLmMgYi9uZXQvc2NoZWQvc2NoX2Ryci5j CmluZGV4IGYyNmJkZWEuLmM3NmNkZDQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZHJyLmMK KysrIGIvbmV0L3NjaGVkL3NjaF9kcnIuYwpAQCAtMjI2LDExICsyMjYsNyBAQCBzdGF0aWMgaW50 IGRycl9ncmFmdF9jbGFzcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBhcmcsCiAJ CQluZXcgPSAmbm9vcF9xZGlzYzsKIAl9CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JZHJyX3B1 cmdlX3F1ZXVlKGNsKTsKLQkqb2xkID0gY2wtPnFkaXNjOwotCWNsLT5xZGlzYyA9IG5ldzsKLQlz Y2hfdHJlZV91bmxvY2soc2NoKTsKKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJmNs LT5xZGlzYyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfZHNt YXJrLmMgYi9uZXQvc2NoZWQvc2NoX2RzbWFyay5jCmluZGV4IGYzNTdmMzQuLmNmZGRiMWMgMTAw NjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9kc21h cmsuYwpAQCAtNzMsMTMgKzczLDcgQEAgc3RhdGljIGludCBkc21hcmtfZ3JhZnQoc3RydWN0IFFk aXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgYXJnLAogCQkJbmV3ID0gJm5vb3BfcWRpc2M7CiAJfQog Ci0Jc2NoX3RyZWVfbG9jayhzY2gpOwotCSpvbGQgPSBwLT5xOwotCXAtPnEgPSBuZXc7Ci0JcWRp c2NfdHJlZV9kZWNyZWFzZV9xbGVuKCpvbGQsICgqb2xkKS0+cS5xbGVuKTsKLQlxZGlzY19yZXNl dCgqb2xkKTsKLQlzY2hfdHJlZV91bmxvY2soc2NoKTsKLQorCSpvbGQgPSBxZGlzY19yZXBsYWNl KHNjaCwgbmV3LCAmcC0+cSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hl ZC9zY2hfaGZzYy5jIGIvbmV0L3NjaGVkL3NjaF9oZnNjLmMKaW5kZXggYjdlYmUyYy4uMDg5ZjNi NiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9oZnNjLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9o ZnNjLmMKQEAgLTEyMTUsMTEgKzEyMTUsNyBAQCBoZnNjX2dyYWZ0X2NsYXNzKHN0cnVjdCBRZGlz YyAqc2NoLCB1bnNpZ25lZCBsb25nIGFyZywgc3RydWN0IFFkaXNjICpuZXcsCiAJCQluZXcgPSAm bm9vcF9xZGlzYzsKIAl9CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JaGZzY19wdXJnZV9xdWV1 ZShzY2gsIGNsKTsKLQkqb2xkID0gY2wtPnFkaXNjOwotCWNsLT5xZGlzYyA9IG5ldzsKLQlzY2hf dHJlZV91bmxvY2soc2NoKTsKKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJmNsLT5x ZGlzYyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfaHRiLmMg Yi9uZXQvc2NoZWQvc2NoX2h0Yi5jCmluZGV4IDE1Y2NkN2YuLjBlZmJjZjMgMTAwNjQ0Ci0tLSBh L25ldC9zY2hlZC9zY2hfaHRiLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9odGIuYwpAQCAtMTE2Mywx NCArMTE2Myw3IEBAIHN0YXRpYyBpbnQgaHRiX2dyYWZ0KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNp Z25lZCBsb25nIGFyZywgc3RydWN0IFFkaXNjICpuZXcsCiAJCQkJICAgICBjbC0+Y29tbW9uLmNs YXNzaWQpKSA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT0JVRlM7CiAKLQlzY2hfdHJlZV9sb2NrKHNj aCk7Ci0JKm9sZCA9IGNsLT51bi5sZWFmLnE7Ci0JY2wtPnVuLmxlYWYucSA9IG5ldzsKLQlpZiAo Km9sZCAhPSBOVUxMKSB7Ci0JCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigqb2xkLCAoKm9sZCkt PnEucWxlbik7Ci0JCXFkaXNjX3Jlc2V0KCpvbGQpOwotCX0KLQlzY2hfdHJlZV91bmxvY2soc2No KTsKKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJmNsLT51bi5sZWFmLnEpOwogCXJl dHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX211bHRpcS5jIGIvbmV0L3Nj aGVkL3NjaF9tdWx0aXEuYwppbmRleCA0ZTkwNGNhLi5hMDEwM2ExIDEwMDY0NAotLS0gYS9uZXQv c2NoZWQvc2NoX211bHRpcS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbXVsdGlxLmMKQEAgLTMwMywx MyArMzAzLDcgQEAgc3RhdGljIGludCBtdWx0aXFfZ3JhZnQoc3RydWN0IFFkaXNjICpzY2gsIHVu c2lnbmVkIGxvbmcgYXJnLCBzdHJ1Y3QgUWRpc2MgKm5ldywKIAlpZiAobmV3ID09IE5VTEwpCiAJ CW5ldyA9ICZub29wX3FkaXNjOwogCi0Jc2NoX3RyZWVfbG9jayhzY2gpOwotCSpvbGQgPSBxLT5x dWV1ZXNbYmFuZF07Ci0JcS0+cXVldWVzW2JhbmRdID0gbmV3OwotCXFkaXNjX3RyZWVfZGVjcmVh c2VfcWxlbigqb2xkLCAoKm9sZCktPnEucWxlbik7Ci0JcWRpc2NfcmVzZXQoKm9sZCk7Ci0Jc2No X3RyZWVfdW5sb2NrKHNjaCk7Ci0KKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJnEt PnF1ZXVlc1tiYW5kXSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9z Y2hfbmV0ZW0uYyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0uYwppbmRleCA1YWJkMWQ5Li4wYTZkZGFm IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9u ZXRlbS5jCkBAIC0xMDM3LDE1ICsxMDM3LDcgQEAgc3RhdGljIGludCBuZXRlbV9ncmFmdChzdHJ1 Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBhcmcsIHN0cnVjdCBRZGlzYyAqbmV3LAogewog CXN0cnVjdCBuZXRlbV9zY2hlZF9kYXRhICpxID0gcWRpc2NfcHJpdihzY2gpOwogCi0Jc2NoX3Ry ZWVfbG9jayhzY2gpOwotCSpvbGQgPSBxLT5xZGlzYzsKLQlxLT5xZGlzYyA9IG5ldzsKLQlpZiAo Km9sZCkgewotCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oKm9sZCwgKCpvbGQpLT5xLnFsZW4p OwotCQlxZGlzY19yZXNldCgqb2xkKTsKLQl9Ci0Jc2NoX3RyZWVfdW5sb2NrKHNjaCk7Ci0KKwkq b2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJnEtPnFkaXNjKTsKIAlyZXR1cm4gMDsKIH0K IApkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9wcmlvLmMgYi9uZXQvc2NoZWQvc2NoX3ByaW8u YwppbmRleCBiYTY0ODdmLi4xYjRhYWVjIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX3ByaW8u YworKysgYi9uZXQvc2NoZWQvc2NoX3ByaW8uYwpAQCAtMjY4LDEzICsyNjgsNyBAQCBzdGF0aWMg aW50IHByaW9fZ3JhZnQoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgYXJnLCBzdHJ1 Y3QgUWRpc2MgKm5ldywKIAlpZiAobmV3ID09IE5VTEwpCiAJCW5ldyA9ICZub29wX3FkaXNjOwog Ci0Jc2NoX3RyZWVfbG9jayhzY2gpOwotCSpvbGQgPSBxLT5xdWV1ZXNbYmFuZF07Ci0JcS0+cXVl dWVzW2JhbmRdID0gbmV3OwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigqb2xkLCAoKm9sZCkt PnEucWxlbik7Ci0JcWRpc2NfcmVzZXQoKm9sZCk7Ci0Jc2NoX3RyZWVfdW5sb2NrKHNjaCk7Ci0K Kwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJnEtPnF1ZXVlc1tiYW5kXSk7CiAJcmV0 dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfcWZxLmMgYi9uZXQvc2NoZWQv c2NoX3FmcS5jCmluZGV4IDNkYzNhNmUuLmI1YzUyY2EgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9z Y2hfcWZxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9xZnEuYwpAQCAtNjE3LDExICs2MTcsNyBAQCBz dGF0aWMgaW50IHFmcV9ncmFmdF9jbGFzcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9u ZyBhcmcsCiAJCQluZXcgPSAmbm9vcF9xZGlzYzsKIAl9CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7 Ci0JcWZxX3B1cmdlX3F1ZXVlKGNsKTsKLQkqb2xkID0gY2wtPnFkaXNjOwotCWNsLT5xZGlzYyA9 IG5ldzsKLQlzY2hfdHJlZV91bmxvY2soc2NoKTsKKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gs IG5ldywgJmNsLT5xZGlzYyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hl ZC9zY2hfcmVkLmMgYi9uZXQvc2NoZWQvc2NoX3JlZC5jCmluZGV4IDZjMDUzNGMuLmQ1YWJjZWUg MTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfcmVkLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9yZWQu YwpAQCAtMzEzLDEyICszMTMsNyBAQCBzdGF0aWMgaW50IHJlZF9ncmFmdChzdHJ1Y3QgUWRpc2Mg KnNjaCwgdW5zaWduZWQgbG9uZyBhcmcsIHN0cnVjdCBRZGlzYyAqbmV3LAogCWlmIChuZXcgPT0g TlVMTCkKIAkJbmV3ID0gJm5vb3BfcWRpc2M7CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JKm9s ZCA9IHEtPnFkaXNjOwotCXEtPnFkaXNjID0gbmV3OwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxl bigqb2xkLCAoKm9sZCktPnEucWxlbik7Ci0JcWRpc2NfcmVzZXQoKm9sZCk7Ci0Jc2NoX3RyZWVf dW5sb2NrKHNjaCk7CisJKm9sZCA9IHFkaXNjX3JlcGxhY2Uoc2NoLCBuZXcsICZxLT5xZGlzYyk7 CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfc2ZiLmMgYi9uZXQv c2NoZWQvc2NoX3NmYi5jCmluZGV4IDViYmI2MzMuLjBlNzRlNTUgMTAwNjQ0Ci0tLSBhL25ldC9z Y2hlZC9zY2hfc2ZiLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9zZmIuYwpAQCAtNjA2LDEyICs2MDYs NyBAQCBzdGF0aWMgaW50IHNmYl9ncmFmdChzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9u ZyBhcmcsIHN0cnVjdCBRZGlzYyAqbmV3LAogCWlmIChuZXcgPT0gTlVMTCkKIAkJbmV3ID0gJm5v b3BfcWRpc2M7CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JKm9sZCA9IHEtPnFkaXNjOwotCXEt PnFkaXNjID0gbmV3OwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigqb2xkLCAoKm9sZCktPnEu cWxlbik7Ci0JcWRpc2NfcmVzZXQoKm9sZCk7Ci0Jc2NoX3RyZWVfdW5sb2NrKHNjaCk7CisJKm9s ZCA9IHFkaXNjX3JlcGxhY2Uoc2NoLCBuZXcsICZxLT5xZGlzYyk7CiAJcmV0dXJuIDA7CiB9CiAK ZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfdGJmLmMgYi9uZXQvc2NoZWQvc2NoX3RiZi5jCmlu ZGV4IGE0YWZkZTEuLjU2YTFhZWYgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfdGJmLmMKKysr IGIvbmV0L3NjaGVkL3NjaF90YmYuYwpAQCAtNTAyLDEzICs1MDIsNyBAQCBzdGF0aWMgaW50IHRi Zl9ncmFmdChzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBhcmcsIHN0cnVjdCBRZGlz YyAqbmV3LAogCWlmIChuZXcgPT0gTlVMTCkKIAkJbmV3ID0gJm5vb3BfcWRpc2M7CiAKLQlzY2hf dHJlZV9sb2NrKHNjaCk7Ci0JKm9sZCA9IHEtPnFkaXNjOwotCXEtPnFkaXNjID0gbmV3OwotCXFk aXNjX3RyZWVfZGVjcmVhc2VfcWxlbigqb2xkLCAoKm9sZCktPnEucWxlbik7Ci0JcWRpc2NfcmVz ZXQoKm9sZCk7Ci0Jc2NoX3RyZWVfdW5sb2NrKHNjaCk7Ci0KKwkqb2xkID0gcWRpc2NfcmVwbGFj ZShzY2gsIG5ldywgJnEtPnFkaXNjKTsKIAlyZXR1cm4gMDsKIH0KIAotLSAKMi4xLjAKCgpGcm9t IDkyZjAzNzMyNzQ0YWY5NzAzNmM1ODNhNmUwZjJhYjUxOWZmODRiYjIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRl OiBUaHUsIDI1IEZlYiAyMDE2IDE0OjU1OjAxIC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMy8zOF0g bmV0X3NjaGVkOiB1cGRhdGUgaGllcmFyY2hpY2FsIGJhY2tsb2cgdG9vCgpbIFVwc3RyZWFtIGNv bW1pdCAyY2NjY2Y1ZmI0M2ZmNjJiMmI5NmNjNThkOTVmYzBiMzU5NjUxNmU0IF0KCldoZW4gdGhl IGJvdHRvbSBxZGlzYyBkZWNpZGVzIHRvLCBmb3IgZXhhbXBsZSwgZHJvcCBzb21lIHBhY2tldCwK aXQgY2FsbHMgcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKCkgdG8gdXBkYXRlIHRoZSBxdWV1ZSBs ZW5ndGgKZm9yIGFsbCBpdHMgYW5jZXN0b3JzLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgYmFja2xv ZyB0b28gdG8Ka2VlcCB0aGUgc3RhdHMgb24gcm9vdCBxZGlzYyBhY2N1cmF0ZS4KCkNjOiBKYW1h bCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpBY2tlZC1ieTogSmFtYWwgSGFkaSBTYWxp bSA8amhzQG1vamF0YXR1LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5n Y29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9jb2RlbC5oICAgICAgIHwgIDQgKysrKwogaW5j bHVkZS9uZXQvc2NoX2dlbmVyaWMuaCB8ICA1ICsrKy0tCiBuZXQvc2NoZWQvc2NoX2FwaS5jICAg ICAgIHwgIDggKysrKystLS0KIG5ldC9zY2hlZC9zY2hfY2JxLmMgICAgICAgfCAgNSArKystLQog bmV0L3NjaGVkL3NjaF9jaG9rZS5jICAgICB8ICA2ICsrKystLQogbmV0L3NjaGVkL3NjaF9jb2Rl bC5jICAgICB8IDEwICsrKysrKy0tLS0KIG5ldC9zY2hlZC9zY2hfZHJyLmMgICAgICAgfCAgMyAr Ky0KIG5ldC9zY2hlZC9zY2hfZnEuYyAgICAgICAgfCAgNCArKystCiBuZXQvc2NoZWQvc2NoX2Zx X2NvZGVsLmMgIHwgMTcgKysrKysrKysrKysrLS0tLS0KIG5ldC9zY2hlZC9zY2hfaGZzYy5jICAg ICAgfCAgMyArKy0KIG5ldC9zY2hlZC9zY2hfaGhmLmMgICAgICAgfCAxMCArKysrKysrLS0tCiBu ZXQvc2NoZWQvc2NoX2h0Yi5jICAgICAgIHwgMTAgKysrKysrLS0tLQogbmV0L3NjaGVkL3NjaF9t dWx0aXEuYyAgICB8ICA4ICsrKysrLS0tCiBuZXQvc2NoZWQvc2NoX25ldGVtLmMgICAgIHwgIDMg KystCiBuZXQvc2NoZWQvc2NoX3BpZS5jICAgICAgIHwgIDUgKysrLS0KIG5ldC9zY2hlZC9zY2hf cHJpby5jICAgICAgfCAgNyArKysrLS0tCiBuZXQvc2NoZWQvc2NoX3FmcS5jICAgICAgIHwgIDMg KystCiBuZXQvc2NoZWQvc2NoX3JlZC5jICAgICAgIHwgIDMgKystCiBuZXQvc2NoZWQvc2NoX3Nm Yi5jICAgICAgIHwgIDMgKystCiBuZXQvc2NoZWQvc2NoX3NmcS5jICAgICAgIHwgMTYgKysrKysr KysrLS0tLS0tLQogbmV0L3NjaGVkL3NjaF90YmYuYyAgICAgICB8ICA3ICsrKysrLS0KIDIxIGZp bGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2luY2x1ZGUvbmV0L2NvZGVsLmggYi9pbmNsdWRlL25ldC9jb2RlbC5oCmluZGV4IDI2N2U3 MDIuLmQxNjhhY2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2NvZGVsLmgKKysrIGIvaW5jbHVk ZS9uZXQvY29kZWwuaApAQCAtMTYyLDEyICsxNjIsMTQgQEAgc3RydWN0IGNvZGVsX3ZhcnMgewog ICogc3RydWN0IGNvZGVsX3N0YXRzIC0gY29udGFpbnMgY29kZWwgc2hhcmVkIHZhcmlhYmxlcyBh bmQgc3RhdHMKICAqIEBtYXhwYWNrZXQ6CWxhcmdlc3QgcGFja2V0IHdlJ3ZlIHNlZW4gc28gZmFy CiAgKiBAZHJvcF9jb3VudDoJdGVtcCBjb3VudCBvZiBkcm9wcGVkIHBhY2tldHMgaW4gZGVxdWV1 ZSgpCisgKiBAZHJvcF9sZW46CWJ5dGVzIG9mIGRyb3BwZWQgcGFja2V0cyBpbiBkZXF1ZXVlKCkK ICAqIGVjbl9tYXJrOgludW1iZXIgb2YgcGFja2V0cyB3ZSBFQ04gbWFya2VkIGluc3RlYWQgb2Yg ZHJvcHBpbmcKICAqIGNlX21hcms6CW51bWJlciBvZiBwYWNrZXRzIENFIG1hcmtlZCBiZWNhdXNl IHNvam91cm4gdGltZSB3YXMgYWJvdmUgY2VfdGhyZXNob2xkCiAgKi8KIHN0cnVjdCBjb2RlbF9z dGF0cyB7CiAJdTMyCQltYXhwYWNrZXQ7CiAJdTMyCQlkcm9wX2NvdW50OworCXUzMgkJZHJvcF9s ZW47CiAJdTMyCQllY25fbWFyazsKIAl1MzIJCWNlX21hcms7CiB9OwpAQCAtMzA4LDYgKzMxMCw3 IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqY29kZWxfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNj aCwKIAkJCQkJCQkJICB2YXJzLT5yZWNfaW52X3NxcnQpOwogCQkJCQlnb3RvIGVuZDsKIAkJCQl9 CisJCQkJc3RhdHMtPmRyb3BfbGVuICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJCQlxZGlzY19k cm9wKHNrYiwgc2NoKTsKIAkJCQlzdGF0cy0+ZHJvcF9jb3VudCsrOwogCQkJCXNrYiA9IGRlcXVl dWVfZnVuYyh2YXJzLCBzY2gpOwpAQCAtMzMwLDYgKzMzMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tf YnVmZiAqY29kZWxfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCwKIAkJaWYgKHBhcmFtcy0+ZWNu ICYmIElORVRfRUNOX3NldF9jZShza2IpKSB7CiAJCQlzdGF0cy0+ZWNuX21hcmsrKzsKIAkJfSBl bHNlIHsKKwkJCXN0YXRzLT5kcm9wX2xlbiArPSBxZGlzY19wa3RfbGVuKHNrYik7CiAJCQlxZGlz Y19kcm9wKHNrYiwgc2NoKTsKIAkJCXN0YXRzLT5kcm9wX2NvdW50Kys7CiAKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmggYi9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oCmlu ZGV4IDRkYmEyNjYuLjg2ZGYwODMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjaF9nZW5lcmlj LmgKKysrIGIvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaApAQCAtMzk2LDcgKzM5Niw4IEBAIHN0 cnVjdCBRZGlzYyAqZGV2X2dyYWZ0X3FkaXNjKHN0cnVjdCBuZXRkZXZfcXVldWUgKmRldl9xdWV1 ZSwKIAkJCSAgICAgIHN0cnVjdCBRZGlzYyAqcWRpc2MpOwogdm9pZCBxZGlzY19yZXNldChzdHJ1 Y3QgUWRpc2MgKnFkaXNjKTsKIHZvaWQgcWRpc2NfZGVzdHJveShzdHJ1Y3QgUWRpc2MgKnFkaXNj KTsKLXZvaWQgcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKHN0cnVjdCBRZGlzYyAqcWRpc2MsIHVu c2lnbmVkIGludCBuKTsKK3ZvaWQgcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhzdHJ1Y3QgUWRp c2MgKnFkaXNjLCB1bnNpZ25lZCBpbnQgbiwKKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgbGVuKTsK IHN0cnVjdCBRZGlzYyAqcWRpc2NfYWxsb2Moc3RydWN0IG5ldGRldl9xdWV1ZSAqZGV2X3F1ZXVl LAogCQkJICBjb25zdCBzdHJ1Y3QgUWRpc2Nfb3BzICpvcHMpOwogc3RydWN0IFFkaXNjICpxZGlz Y19jcmVhdGVfZGZsdChzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpkZXZfcXVldWUsCkBAIC03MDcsNyAr NzA4LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgUWRpc2MgKnFkaXNjX3JlcGxhY2Uoc3RydWN0 IFFkaXNjICpzY2gsIHN0cnVjdCBRZGlzYyAqbmV3LAogCW9sZCA9ICpwb2xkOwogCSpwb2xkID0g bmV3OwogCWlmIChvbGQgIT0gTlVMTCkgewotCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4ob2xk LCBvbGQtPnEucWxlbik7CisJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2cob2xkLCBvbGQtPnEu cWxlbiwgb2xkLT5xc3RhdHMuYmFja2xvZyk7CiAJCXFkaXNjX3Jlc2V0KG9sZCk7CiAJfQogCXNj aF90cmVlX3VubG9jayhzY2gpOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9hcGkuYyBiL25l dC9zY2hlZC9zY2hfYXBpLmMKaW5kZXggYWYxYWNmMC4uOTViNTYwZiAxMDA2NDQKLS0tIGEvbmV0 L3NjaGVkL3NjaF9hcGkuYworKysgYi9uZXQvc2NoZWQvc2NoX2FwaS5jCkBAIC03NDQsMTQgKzc0 NCwxNSBAQCBzdGF0aWMgdTMyIHFkaXNjX2FsbG9jX2hhbmRsZShzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogCXJldHVybiAwOwogfQogCi12b2lkIHFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihzdHJ1 Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgaW50IG4pCit2b2lkIHFkaXNjX3RyZWVfcmVkdWNlX2Jh Y2tsb2coc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGludCBuLAorCQkJICAgICAgIHVuc2ln bmVkIGludCBsZW4pCiB7CiAJY29uc3Qgc3RydWN0IFFkaXNjX2NsYXNzX29wcyAqY29wczsKIAl1 bnNpZ25lZCBsb25nIGNsOwogCXUzMiBwYXJlbnRpZDsKIAlpbnQgZHJvcHM7CiAKLQlpZiAobiA9 PSAwKQorCWlmIChuID09IDAgJiYgbGVuID09IDApCiAJCXJldHVybjsKIAlkcm9wcyA9IG1heF90 KGludCwgbiwgMCk7CiAJcmN1X3JlYWRfbG9jaygpOwpAQCAtNzc0LDExICs3NzUsMTIgQEAgdm9p ZCBxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGlu dCBuKQogCQkJY29wcy0+cHV0KHNjaCwgY2wpOwogCQl9CiAJCXNjaC0+cS5xbGVuIC09IG47CisJ CXNjaC0+cXN0YXRzLmJhY2tsb2cgLT0gbGVuOwogCQlfX3FkaXNjX3FzdGF0c19kcm9wKHNjaCwg ZHJvcHMpOwogCX0KIAlyY3VfcmVhZF91bmxvY2soKTsKIH0KLUVYUE9SVF9TWU1CT0wocWRpc2Nf dHJlZV9kZWNyZWFzZV9xbGVuKTsKK0VYUE9SVF9TWU1CT0wocWRpc2NfdHJlZV9yZWR1Y2VfYmFj a2xvZyk7CiAKIHN0YXRpYyB2b2lkIG5vdGlmeV9hbmRfZGVzdHJveShzdHJ1Y3QgbmV0ICpuZXQs IHN0cnVjdCBza19idWZmICpza2IsCiAJCQkgICAgICAgc3RydWN0IG5sbXNnaGRyICpuLCB1MzIg Y2xpZCwKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2JxLmMgYi9uZXQvc2NoZWQvc2NoX2Ni cS5jCmluZGV4IDdmODQ3NGMuLmJhYWZkZGYgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY2Jx LmMKKysrIGIvbmV0L3NjaGVkL3NjaF9jYnEuYwpAQCAtMTkwOSw3ICsxOTA5LDcgQEAgc3RhdGlj IGludCBjYnFfZGVsZXRlKHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGFyZykKIHsK IAlzdHJ1Y3QgY2JxX3NjaGVkX2RhdGEgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAJc3RydWN0IGNi cV9jbGFzcyAqY2wgPSAoc3RydWN0IGNicV9jbGFzcyAqKWFyZzsKLQl1bnNpZ25lZCBpbnQgcWxl bjsKKwl1bnNpZ25lZCBpbnQgcWxlbiwgYmFja2xvZzsKIAogCWlmIChjbC0+ZmlsdGVycyB8fCBj bC0+Y2hpbGRyZW4gfHwgY2wgPT0gJnEtPmxpbmspCiAJCXJldHVybiAtRUJVU1k7CkBAIC0xOTE3 LDggKzE5MTcsOSBAQCBzdGF0aWMgaW50IGNicV9kZWxldGUoc3RydWN0IFFkaXNjICpzY2gsIHVu c2lnbmVkIGxvbmcgYXJnKQogCXNjaF90cmVlX2xvY2soc2NoKTsKIAogCXFsZW4gPSBjbC0+cS0+ cS5xbGVuOworCWJhY2tsb2cgPSBjbC0+cS0+cXN0YXRzLmJhY2tsb2c7CiAJcWRpc2NfcmVzZXQo Y2wtPnEpOwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihjbC0+cSwgcWxlbik7CisJcWRpc2Nf dHJlZV9yZWR1Y2VfYmFja2xvZyhjbC0+cSwgcWxlbiwgYmFja2xvZyk7CiAKIAlpZiAoY2wtPm5l eHRfYWxpdmUpCiAJCWNicV9kZWFjdGl2YXRlX2NsYXNzKGNsKTsKZGlmZiAtLWdpdCBhL25ldC9z Y2hlZC9zY2hfY2hva2UuYyBiL25ldC9zY2hlZC9zY2hfY2hva2UuYwppbmRleCA1ZmZiOGI4Li4w YTA4Yzg2IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2Nob2tlLmMKKysrIGIvbmV0L3NjaGVk L3NjaF9jaG9rZS5jCkBAIC0xMjgsOCArMTI4LDggQEAgc3RhdGljIHZvaWQgY2hva2VfZHJvcF9i eV9pZHgoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGludCBpZHgpCiAJCWNob2tlX3phcF90 YWlsX2hvbGVzKHEpOwogCiAJcWRpc2NfcXN0YXRzX2JhY2tsb2dfZGVjKHNjaCwgc2tiKTsKKwlx ZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgMSwgcWRpc2NfcGt0X2xlbihza2IpKTsKIAlx ZGlzY19kcm9wKHNrYiwgc2NoKTsKLQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCAxKTsK IAktLXNjaC0+cS5xbGVuOwogfQogCkBAIC00NTYsNiArNDU2LDcgQEAgc3RhdGljIGludCBjaG9r ZV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAkJb2xkID0g cS0+dGFiOwogCQlpZiAob2xkKSB7CiAJCQl1bnNpZ25lZCBpbnQgb3FsZW4gPSBzY2gtPnEucWxl biwgdGFpbCA9IDA7CisJCQl1bnNpZ25lZCBkcm9wcGVkID0gMDsKIAogCQkJd2hpbGUgKHEtPmhl YWQgIT0gcS0+dGFpbCkgewogCQkJCXN0cnVjdCBza19idWZmICpza2IgPSBxLT50YWJbcS0+aGVh ZF07CkBAIC00NjcsMTEgKzQ2OCwxMiBAQCBzdGF0aWMgaW50IGNob2tlX2NoYW5nZShzdHJ1Y3Qg UWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCQkJCQludGFiW3RhaWwrK10gPSBza2I7 CiAJCQkJCWNvbnRpbnVlOwogCQkJCX0KKwkJCQlkcm9wcGVkICs9IHFkaXNjX3BrdF9sZW4oc2ti KTsKIAkJCQlxZGlzY19xc3RhdHNfYmFja2xvZ19kZWMoc2NoLCBza2IpOwogCQkJCS0tc2NoLT5x LnFsZW47CiAJCQkJcWRpc2NfZHJvcChza2IsIHNjaCk7CiAJCQl9Ci0JCQlxZGlzY190cmVlX2Rl Y3JlYXNlX3FsZW4oc2NoLCBvcWxlbiAtIHNjaC0+cS5xbGVuKTsKKwkJCXFkaXNjX3RyZWVfcmVk dWNlX2JhY2tsb2coc2NoLCBvcWxlbiAtIHNjaC0+cS5xbGVuLCBkcm9wcGVkKTsKIAkJCXEtPmhl YWQgPSAwOwogCQkJcS0+dGFpbCA9IHRhaWw7CiAJCX0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9z Y2hfY29kZWwuYyBiL25ldC9zY2hlZC9zY2hfY29kZWwuYwppbmRleCA1MzUwMDdkLi45YjdlMjk4 IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2NvZGVsLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9j b2RlbC5jCkBAIC03OSwxMiArNzksMTMgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpjb2RlbF9x ZGlzY19kZXF1ZXVlKHN0cnVjdCBRZGlzYyAqc2NoKQogCiAJc2tiID0gY29kZWxfZGVxdWV1ZShz Y2gsICZxLT5wYXJhbXMsICZxLT52YXJzLCAmcS0+c3RhdHMsIGRlcXVldWUpOwogCi0JLyogV2Ug Y2FudCBjYWxsIHFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigpIGlmIG91ciBxbGVuIGlzIDAsCisJ LyogV2UgY2FudCBjYWxsIHFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coKSBpZiBvdXIgcWxlbiBp cyAwLAogCSAqIG9yIEhUQiBjcmFzaGVzLiBEZWZlciBpdCBmb3IgbmV4dCByb3VuZC4KIAkgKi8K IAlpZiAocS0+c3RhdHMuZHJvcF9jb3VudCAmJiBzY2gtPnEucWxlbikgewotCQlxZGlzY190cmVl X2RlY3JlYXNlX3FsZW4oc2NoLCBxLT5zdGF0cy5kcm9wX2NvdW50KTsKKwkJcWRpc2NfdHJlZV9y ZWR1Y2VfYmFja2xvZyhzY2gsIHEtPnN0YXRzLmRyb3BfY291bnQsIHEtPnN0YXRzLmRyb3BfbGVu KTsKIAkJcS0+c3RhdHMuZHJvcF9jb3VudCA9IDA7CisJCXEtPnN0YXRzLmRyb3BfbGVuID0gMDsK IAl9CiAJaWYgKHNrYikKIAkJcWRpc2NfYnN0YXRzX3VwZGF0ZShzY2gsIHNrYik7CkBAIC0xMTYs NyArMTE3LDcgQEAgc3RhdGljIGludCBjb2RlbF9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0 cnVjdCBubGF0dHIgKm9wdCkKIHsKIAlzdHJ1Y3QgY29kZWxfc2NoZWRfZGF0YSAqcSA9IHFkaXNj X3ByaXYoc2NoKTsKIAlzdHJ1Y3QgbmxhdHRyICp0YltUQ0FfQ09ERUxfTUFYICsgMV07Ci0JdW5z aWduZWQgaW50IHFsZW47CisJdW5zaWduZWQgaW50IHFsZW4sIGRyb3BwZWQgPSAwOwogCWludCBl cnI7CiAKIAlpZiAoIW9wdCkKQEAgLTE1NiwxMCArMTU3LDExIEBAIHN0YXRpYyBpbnQgY29kZWxf Y2hhbmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAJd2hpbGUgKHNj aC0+cS5xbGVuID4gc2NoLT5saW1pdCkgewogCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gX19za2Jf ZGVxdWV1ZSgmc2NoLT5xKTsKIAorCQlkcm9wcGVkICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJ cWRpc2NfcXN0YXRzX2JhY2tsb2dfZGVjKHNjaCwgc2tiKTsKIAkJcWRpc2NfZHJvcChza2IsIHNj aCk7CiAJfQotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihzY2gsIHFsZW4gLSBzY2gtPnEucWxl bik7CisJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhzY2gsIHFsZW4gLSBzY2gtPnEucWxlbiwg ZHJvcHBlZCk7CiAKIAlzY2hfdHJlZV91bmxvY2soc2NoKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdp dCBhL25ldC9zY2hlZC9zY2hfZHJyLmMgYi9uZXQvc2NoZWQvc2NoX2Ryci5jCmluZGV4IGM3NmNk ZDQuLmQ2ZTNhZDQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZHJyLmMKKysrIGIvbmV0L3Nj aGVkL3NjaF9kcnIuYwpAQCAtNTMsOSArNTMsMTAgQEAgc3RhdGljIHN0cnVjdCBkcnJfY2xhc3Mg KmRycl9maW5kX2NsYXNzKHN0cnVjdCBRZGlzYyAqc2NoLCB1MzIgY2xhc3NpZCkKIHN0YXRpYyB2 b2lkIGRycl9wdXJnZV9xdWV1ZShzdHJ1Y3QgZHJyX2NsYXNzICpjbCkKIHsKIAl1bnNpZ25lZCBp bnQgbGVuID0gY2wtPnFkaXNjLT5xLnFsZW47CisJdW5zaWduZWQgaW50IGJhY2tsb2cgPSBjbC0+ cWRpc2MtPnFzdGF0cy5iYWNrbG9nOwogCiAJcWRpc2NfcmVzZXQoY2wtPnFkaXNjKTsKLQlxZGlz Y190cmVlX2RlY3JlYXNlX3FsZW4oY2wtPnFkaXNjLCBsZW4pOworCXFkaXNjX3RyZWVfcmVkdWNl X2JhY2tsb2coY2wtPnFkaXNjLCBsZW4sIGJhY2tsb2cpOwogfQogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IG5sYV9wb2xpY3kgZHJyX3BvbGljeVtUQ0FfRFJSX01BWCArIDFdID0gewpkaWZmIC0tZ2l0 IGEvbmV0L3NjaGVkL3NjaF9mcS5jIGIvbmV0L3NjaGVkL3NjaF9mcS5jCmluZGV4IDEwOWIyMzIu LjNjNmE0N2QgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZnEuYworKysgYi9uZXQvc2NoZWQv c2NoX2ZxLmMKQEAgLTY2Miw2ICs2NjIsNyBAQCBzdGF0aWMgaW50IGZxX2NoYW5nZShzdHJ1Y3Qg UWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCXN0cnVjdCBmcV9zY2hlZF9kYXRhICpx ID0gcWRpc2NfcHJpdihzY2gpOwogCXN0cnVjdCBubGF0dHIgKnRiW1RDQV9GUV9NQVggKyAxXTsK IAlpbnQgZXJyLCBkcm9wX2NvdW50ID0gMDsKKwl1bnNpZ25lZCBkcm9wX2xlbiA9IDA7CiAJdTMy IGZxX2xvZzsKIAogCWlmICghb3B0KQpAQCAtNzM2LDEwICs3MzcsMTEgQEAgc3RhdGljIGludCBm cV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAogCQlpZiAo IXNrYikKIAkJCWJyZWFrOworCQlkcm9wX2xlbiArPSBxZGlzY19wa3RfbGVuKHNrYik7CiAJCWtm cmVlX3NrYihza2IpOwogCQlkcm9wX2NvdW50Kys7CiAJfQotCXFkaXNjX3RyZWVfZGVjcmVhc2Vf cWxlbihzY2gsIGRyb3BfY291bnQpOworCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCBk cm9wX2NvdW50LCBkcm9wX2xlbik7CiAKIAlzY2hfdHJlZV91bmxvY2soc2NoKTsKIAlyZXR1cm4g ZXJyOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9mcV9jb2RlbC5jIGIvbmV0L3NjaGVkL3Nj aF9mcV9jb2RlbC5jCmluZGV4IDRjODM0ZTkuLmQzZmM4ZjkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hl ZC9zY2hfZnFfY29kZWwuYworKysgYi9uZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMKQEAgLTE3NSw3 ICsxNzUsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGZxX2NvZGVsX3FkaXNjX2Ryb3Aoc3RydWN0 IFFkaXNjICpzY2gpCiBzdGF0aWMgaW50IGZxX2NvZGVsX2VucXVldWUoc3RydWN0IHNrX2J1ZmYg KnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiB7CiAJc3RydWN0IGZxX2NvZGVsX3NjaGVkX2RhdGEg KnEgPSBxZGlzY19wcml2KHNjaCk7Ci0JdW5zaWduZWQgaW50IGlkeDsKKwl1bnNpZ25lZCBpbnQg aWR4LCBwcmV2X2JhY2tsb2c7CiAJc3RydWN0IGZxX2NvZGVsX2Zsb3cgKmZsb3c7CiAJaW50IHVu aW5pdGlhbGl6ZWRfdmFyKHJldCk7CiAKQEAgLTIwMyw2ICsyMDMsNyBAQCBzdGF0aWMgaW50IGZx X2NvZGVsX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJ aWYgKCsrc2NoLT5xLnFsZW4gPD0gc2NoLT5saW1pdCkKIAkJcmV0dXJuIE5FVF9YTUlUX1NVQ0NF U1M7CiAKKwlwcmV2X2JhY2tsb2cgPSBzY2gtPnFzdGF0cy5iYWNrbG9nOwogCXEtPmRyb3Bfb3Zl cmxpbWl0Kys7CiAJLyogUmV0dXJuIENvbmdlc3Rpb24gTm90aWZpY2F0aW9uIG9ubHkgaWYgd2Ug ZHJvcHBlZCBhIHBhY2tldAogCSAqIGZyb20gdGhpcyBmbG93LgpAQCAtMjExLDcgKzIxMiw3IEBA IHN0YXRpYyBpbnQgZnFfY29kZWxfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg UWRpc2MgKnNjaCkKIAkJcmV0dXJuIE5FVF9YTUlUX0NOOwogCiAJLyogQXMgd2UgZHJvcHBlZCBh IHBhY2tldCwgYmV0dGVyIGxldCB1cHBlciBzdGFjayBrbm93IHRoaXMgKi8KLQlxZGlzY190cmVl X2RlY3JlYXNlX3FsZW4oc2NoLCAxKTsKKwlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwg MSwgcHJldl9iYWNrbG9nIC0gc2NoLT5xc3RhdHMuYmFja2xvZyk7CiAJcmV0dXJuIE5FVF9YTUlU X1NVQ0NFU1M7CiB9CiAKQEAgLTI0MSw2ICsyNDIsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYg KmZxX2NvZGVsX2RlcXVldWUoc3RydWN0IFFkaXNjICpzY2gpCiAJc3RydWN0IGZxX2NvZGVsX2Zs b3cgKmZsb3c7CiAJc3RydWN0IGxpc3RfaGVhZCAqaGVhZDsKIAl1MzIgcHJldl9kcm9wX2NvdW50 LCBwcmV2X2Vjbl9tYXJrOworCXVuc2lnbmVkIGludCBwcmV2X2JhY2tsb2c7CiAKIGJlZ2luOgog CWhlYWQgPSAmcS0+bmV3X2Zsb3dzOwpAQCAtMjU5LDYgKzI2MSw3IEBAIGJlZ2luOgogCiAJcHJl dl9kcm9wX2NvdW50ID0gcS0+Y3N0YXRzLmRyb3BfY291bnQ7CiAJcHJldl9lY25fbWFyayA9IHEt PmNzdGF0cy5lY25fbWFyazsKKwlwcmV2X2JhY2tsb2cgPSBzY2gtPnFzdGF0cy5iYWNrbG9nOwog CiAJc2tiID0gY29kZWxfZGVxdWV1ZShzY2gsICZxLT5jcGFyYW1zLCAmZmxvdy0+Y3ZhcnMsICZx LT5jc3RhdHMsCiAJCQkgICAgZGVxdWV1ZSk7CkBAIC0yNzYsMTIgKzI3OSwxNCBAQCBiZWdpbjoK IAl9CiAJcWRpc2NfYnN0YXRzX3VwZGF0ZShzY2gsIHNrYik7CiAJZmxvdy0+ZGVmaWNpdCAtPSBx ZGlzY19wa3RfbGVuKHNrYik7Ci0JLyogV2UgY2FudCBjYWxsIHFkaXNjX3RyZWVfZGVjcmVhc2Vf cWxlbigpIGlmIG91ciBxbGVuIGlzIDAsCisJLyogV2UgY2FudCBjYWxsIHFkaXNjX3RyZWVfcmVk dWNlX2JhY2tsb2coKSBpZiBvdXIgcWxlbiBpcyAwLAogCSAqIG9yIEhUQiBjcmFzaGVzLiBEZWZl ciBpdCBmb3IgbmV4dCByb3VuZC4KIAkgKi8KIAlpZiAocS0+Y3N0YXRzLmRyb3BfY291bnQgJiYg c2NoLT5xLnFsZW4pIHsKLQkJcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKHNjaCwgcS0+Y3N0YXRz LmRyb3BfY291bnQpOworCQlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgcS0+Y3N0YXRz LmRyb3BfY291bnQsCisJCQkJCSAgcS0+Y3N0YXRzLmRyb3BfbGVuKTsKIAkJcS0+Y3N0YXRzLmRy b3BfY291bnQgPSAwOworCQlxLT5jc3RhdHMuZHJvcF9sZW4gPSAwOwogCX0KIAlyZXR1cm4gc2ti OwogfQpAQCAtMzcyLDExICszNzcsMTMgQEAgc3RhdGljIGludCBmcV9jb2RlbF9jaGFuZ2Uoc3Ry dWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAl3aGlsZSAoc2NoLT5xLnFsZW4g PiBzY2gtPmxpbWl0KSB7CiAJCXN0cnVjdCBza19idWZmICpza2IgPSBmcV9jb2RlbF9kZXF1ZXVl KHNjaCk7CiAKKwkJcS0+Y3N0YXRzLmRyb3BfbGVuICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJ a2ZyZWVfc2tiKHNrYik7CiAJCXEtPmNzdGF0cy5kcm9wX2NvdW50Kys7CiAJfQotCXFkaXNjX3Ry ZWVfZGVjcmVhc2VfcWxlbihzY2gsIHEtPmNzdGF0cy5kcm9wX2NvdW50KTsKKwlxZGlzY190cmVl X3JlZHVjZV9iYWNrbG9nKHNjaCwgcS0+Y3N0YXRzLmRyb3BfY291bnQsIHEtPmNzdGF0cy5kcm9w X2xlbik7CiAJcS0+Y3N0YXRzLmRyb3BfY291bnQgPSAwOworCXEtPmNzdGF0cy5kcm9wX2xlbiA9 IDA7CiAKIAlzY2hfdHJlZV91bmxvY2soc2NoKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25l dC9zY2hlZC9zY2hfaGZzYy5jIGIvbmV0L3NjaGVkL3NjaF9oZnNjLmMKaW5kZXggMDg5ZjNiNi4u ZDc4M2Q3YyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9oZnNjLmMKKysrIGIvbmV0L3NjaGVk L3NjaF9oZnNjLmMKQEAgLTg5NSw5ICs4OTUsMTAgQEAgc3RhdGljIHZvaWQKIGhmc2NfcHVyZ2Vf cXVldWUoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBoZnNjX2NsYXNzICpjbCkKIHsKIAl1bnNp Z25lZCBpbnQgbGVuID0gY2wtPnFkaXNjLT5xLnFsZW47CisJdW5zaWduZWQgaW50IGJhY2tsb2cg PSBjbC0+cWRpc2MtPnFzdGF0cy5iYWNrbG9nOwogCiAJcWRpc2NfcmVzZXQoY2wtPnFkaXNjKTsK LQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oY2wtPnFkaXNjLCBsZW4pOworCXFkaXNjX3RyZWVf cmVkdWNlX2JhY2tsb2coY2wtPnFkaXNjLCBsZW4sIGJhY2tsb2cpOwogfQogCiBzdGF0aWMgdm9p ZApkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9oaGYuYyBiL25ldC9zY2hlZC9zY2hfaGhmLmMK aW5kZXggODZiMDRlMy4uMTNkNmY4MyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9oaGYuYwor KysgYi9uZXQvc2NoZWQvc2NoX2hoZi5jCkBAIC0zODIsNiArMzgyLDcgQEAgc3RhdGljIGludCBo aGZfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAlzdHJ1 Y3QgaGhmX3NjaGVkX2RhdGEgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAJZW51bSB3ZHJyX2J1Y2tl dF9pZHggaWR4OwogCXN0cnVjdCB3ZHJyX2J1Y2tldCAqYnVja2V0OworCXVuc2lnbmVkIGludCBw cmV2X2JhY2tsb2c7CiAKIAlpZHggPSBoaGZfY2xhc3NpZnkoc2tiLCBzY2gpOwogCkBAIC00MDks NiArNDEwLDcgQEAgc3RhdGljIGludCBoaGZfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgUWRpc2MgKnNjaCkKIAlpZiAoKytzY2gtPnEucWxlbiA8PSBzY2gtPmxpbWl0KQogCQly ZXR1cm4gTkVUX1hNSVRfU1VDQ0VTUzsKIAorCXByZXZfYmFja2xvZyA9IHNjaC0+cXN0YXRzLmJh Y2tsb2c7CiAJcS0+ZHJvcF9vdmVybGltaXQrKzsKIAkvKiBSZXR1cm4gQ29uZ2VzdGlvbiBOb3Rp ZmljYXRpb24gb25seSBpZiB3ZSBkcm9wcGVkIGEgcGFja2V0IGZyb20gdGhpcwogCSAqIGJ1Y2tl dC4KQEAgLTQxNyw3ICs0MTksNyBAQCBzdGF0aWMgaW50IGhoZl9lbnF1ZXVlKHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoKQogCQlyZXR1cm4gTkVUX1hNSVRfQ047CiAKIAkv KiBBcyB3ZSBkcm9wcGVkIGEgcGFja2V0LCBiZXR0ZXIgbGV0IHVwcGVyIHN0YWNrIGtub3cgdGhp cy4gKi8KLQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCAxKTsKKwlxZGlzY190cmVlX3Jl ZHVjZV9iYWNrbG9nKHNjaCwgMSwgcHJldl9iYWNrbG9nIC0gc2NoLT5xc3RhdHMuYmFja2xvZyk7 CiAJcmV0dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CiB9CiAKQEAgLTUyNyw3ICs1MjksNyBAQCBzdGF0 aWMgaW50IGhoZl9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkK IHsKIAlzdHJ1Y3QgaGhmX3NjaGVkX2RhdGEgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAJc3RydWN0 IG5sYXR0ciAqdGJbVENBX0hIRl9NQVggKyAxXTsKLQl1bnNpZ25lZCBpbnQgcWxlbjsKKwl1bnNp Z25lZCBpbnQgcWxlbiwgcHJldl9iYWNrbG9nOwogCWludCBlcnI7CiAJdTY0IG5vbl9oaF9xdWFu dHVtOwogCXUzMiBuZXdfcXVhbnR1bSA9IHEtPnF1YW50dW07CkBAIC01NzcsMTIgKzU3OSwxNCBA QCBzdGF0aWMgaW50IGhoZl9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIg Km9wdCkKIAl9CiAKIAlxbGVuID0gc2NoLT5xLnFsZW47CisJcHJldl9iYWNrbG9nID0gc2NoLT5x c3RhdHMuYmFja2xvZzsKIAl3aGlsZSAoc2NoLT5xLnFsZW4gPiBzY2gtPmxpbWl0KSB7CiAJCXN0 cnVjdCBza19idWZmICpza2IgPSBoaGZfZGVxdWV1ZShzY2gpOwogCiAJCWtmcmVlX3NrYihza2Ip OwogCX0KLQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCBxbGVuIC0gc2NoLT5xLnFsZW4p OworCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCBxbGVuIC0gc2NoLT5xLnFsZW4sCisJ CQkJICBwcmV2X2JhY2tsb2cgLSBzY2gtPnFzdGF0cy5iYWNrbG9nKTsKIAogCXNjaF90cmVlX3Vu bG9jayhzY2gpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9odGIuYyBi L25ldC9zY2hlZC9zY2hfaHRiLmMKaW5kZXggMGVmYmNmMy4uODQ2YTdmOSAxMDA2NDQKLS0tIGEv bmV0L3NjaGVkL3NjaF9odGIuYworKysgYi9uZXQvc2NoZWQvc2NoX2h0Yi5jCkBAIC0xMjY1LDcg KzEyNjUsNiBAQCBzdGF0aWMgaW50IGh0Yl9kZWxldGUoc3RydWN0IFFkaXNjICpzY2gsIHVuc2ln bmVkIGxvbmcgYXJnKQogewogCXN0cnVjdCBodGJfc2NoZWQgKnEgPSBxZGlzY19wcml2KHNjaCk7 CiAJc3RydWN0IGh0Yl9jbGFzcyAqY2wgPSAoc3RydWN0IGh0Yl9jbGFzcyAqKWFyZzsKLQl1bnNp Z25lZCBpbnQgcWxlbjsKIAlzdHJ1Y3QgUWRpc2MgKm5ld19xID0gTlVMTDsKIAlpbnQgbGFzdF9j aGlsZCA9IDA7CiAKQEAgLTEyODUsOSArMTI4NCwxMSBAQCBzdGF0aWMgaW50IGh0Yl9kZWxldGUo c3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgYXJnKQogCXNjaF90cmVlX2xvY2soc2No KTsKIAogCWlmICghY2wtPmxldmVsKSB7Ci0JCXFsZW4gPSBjbC0+dW4ubGVhZi5xLT5xLnFsZW47 CisJCXVuc2lnbmVkIGludCBxbGVuID0gY2wtPnVuLmxlYWYucS0+cS5xbGVuOworCQl1bnNpZ25l ZCBpbnQgYmFja2xvZyA9IGNsLT51bi5sZWFmLnEtPnFzdGF0cy5iYWNrbG9nOworCiAJCXFkaXNj X3Jlc2V0KGNsLT51bi5sZWFmLnEpOwotCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oY2wtPnVu LmxlYWYucSwgcWxlbik7CisJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coY2wtPnVuLmxlYWYu cSwgcWxlbiwgYmFja2xvZyk7CiAJfQogCiAJLyogZGVsZXRlIGZyb20gaGFzaCBhbmQgYWN0aXZl OyByZW1haW5kZXIgaW4gZGVzdHJveV9jbGFzcyAqLwpAQCAtMTQyMSwxMCArMTQyMiwxMSBAQCBz dGF0aWMgaW50IGh0Yl9jaGFuZ2VfY2xhc3Moc3RydWN0IFFkaXNjICpzY2gsIHUzMiBjbGFzc2lk LAogCQlzY2hfdHJlZV9sb2NrKHNjaCk7CiAJCWlmIChwYXJlbnQgJiYgIXBhcmVudC0+bGV2ZWwp IHsKIAkJCXVuc2lnbmVkIGludCBxbGVuID0gcGFyZW50LT51bi5sZWFmLnEtPnEucWxlbjsKKwkJ CXVuc2lnbmVkIGludCBiYWNrbG9nID0gcGFyZW50LT51bi5sZWFmLnEtPnFzdGF0cy5iYWNrbG9n OwogCiAJCQkvKiB0dXJuIHBhcmVudCBpbnRvIGlubmVyIG5vZGUgKi8KIAkJCXFkaXNjX3Jlc2V0 KHBhcmVudC0+dW4ubGVhZi5xKTsKLQkJCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihwYXJlbnQt PnVuLmxlYWYucSwgcWxlbik7CisJCQlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHBhcmVudC0+ dW4ubGVhZi5xLCBxbGVuLCBiYWNrbG9nKTsKIAkJCXFkaXNjX2Rlc3Ryb3kocGFyZW50LT51bi5s ZWFmLnEpOwogCQkJaWYgKHBhcmVudC0+cHJpb19hY3Rpdml0eSkKIAkJCQlodGJfZGVhY3RpdmF0 ZShxLCBwYXJlbnQpOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9tdWx0aXEuYyBiL25ldC9z Y2hlZC9zY2hfbXVsdGlxLmMKaW5kZXggYTAxMDNhMS4uYmNkZDU0YiAxMDA2NDQKLS0tIGEvbmV0 L3NjaGVkL3NjaF9tdWx0aXEuYworKysgYi9uZXQvc2NoZWQvc2NoX211bHRpcS5jCkBAIC0yMTgs NyArMjE4LDggQEAgc3RhdGljIGludCBtdWx0aXFfdHVuZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3Ry dWN0IG5sYXR0ciAqb3B0KQogCQlpZiAocS0+cXVldWVzW2ldICE9ICZub29wX3FkaXNjKSB7CiAJ CQlzdHJ1Y3QgUWRpc2MgKmNoaWxkID0gcS0+cXVldWVzW2ldOwogCQkJcS0+cXVldWVzW2ldID0g Jm5vb3BfcWRpc2M7Ci0JCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oY2hpbGQsIGNoaWxkLT5x LnFsZW4pOworCQkJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhjaGlsZCwgY2hpbGQtPnEucWxl biwKKwkJCQkJCSAgY2hpbGQtPnFzdGF0cy5iYWNrbG9nKTsKIAkJCXFkaXNjX2Rlc3Ryb3koY2hp bGQpOwogCQl9CiAJfQpAQCAtMjM4LDggKzIzOSw5IEBAIHN0YXRpYyBpbnQgbXVsdGlxX3R1bmUo c3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAkJCQlxLT5xdWV1ZXNbaV0g PSBjaGlsZDsKIAogCQkJCWlmIChvbGQgIT0gJm5vb3BfcWRpc2MpIHsKLQkJCQkJcWRpc2NfdHJl ZV9kZWNyZWFzZV9xbGVuKG9sZCwKLQkJCQkJCQkJIG9sZC0+cS5xbGVuKTsKKwkJCQkJcWRpc2Nf dHJlZV9yZWR1Y2VfYmFja2xvZyhvbGQsCisJCQkJCQkJCSAgb2xkLT5xLnFsZW4sCisJCQkJCQkJ CSAgb2xkLT5xc3RhdHMuYmFja2xvZyk7CiAJCQkJCXFkaXNjX2Rlc3Ryb3kob2xkKTsKIAkJCQl9 CiAJCQkJc2NoX3RyZWVfdW5sb2NrKHNjaCk7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX25l dGVtLmMgYi9uZXQvc2NoZWQvc2NoX25ldGVtLmMKaW5kZXggMGE2ZGRhZi4uOTY0MGJiMyAxMDA2 NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9uZXRlbS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0u YwpAQCAtNTk4LDcgKzU5OCw4IEBAIGRlbGl2ZXI6CiAJCQkJaWYgKHVubGlrZWx5KGVyciAhPSBO RVRfWE1JVF9TVUNDRVNTKSkgewogCQkJCQlpZiAobmV0X3htaXRfZHJvcF9jb3VudChlcnIpKSB7 CiAJCQkJCQlxZGlzY19xc3RhdHNfZHJvcChzY2gpOwotCQkJCQkJcWRpc2NfdHJlZV9kZWNyZWFz ZV9xbGVuKHNjaCwgMSk7CisJCQkJCQlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgMSwK KwkJCQkJCQkJCSAgcWRpc2NfcGt0X2xlbihza2IpKTsKIAkJCQkJfQogCQkJCX0KIAkJCQlnb3Rv IHRmaWZvX2RlcXVldWU7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX3BpZS5jIGIvbmV0L3Nj aGVkL3NjaF9waWUuYwppbmRleCBiNzgzYTQ0Li43MWFlM2I5IDEwMDY0NAotLS0gYS9uZXQvc2No ZWQvc2NoX3BpZS5jCisrKyBiL25ldC9zY2hlZC9zY2hfcGllLmMKQEAgLTE4Myw3ICsxODMsNyBA QCBzdGF0aWMgaW50IHBpZV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIg Km9wdCkKIHsKIAlzdHJ1Y3QgcGllX3NjaGVkX2RhdGEgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAJ c3RydWN0IG5sYXR0ciAqdGJbVENBX1BJRV9NQVggKyAxXTsKLQl1bnNpZ25lZCBpbnQgcWxlbjsK Kwl1bnNpZ25lZCBpbnQgcWxlbiwgZHJvcHBlZCA9IDA7CiAJaW50IGVycjsKIAogCWlmICghb3B0 KQpAQCAtMjMyLDEwICsyMzIsMTEgQEAgc3RhdGljIGludCBwaWVfY2hhbmdlKHN0cnVjdCBRZGlz YyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAJd2hpbGUgKHNjaC0+cS5xbGVuID4gc2NoLT5s aW1pdCkgewogCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gX19za2JfZGVxdWV1ZSgmc2NoLT5xKTsK IAorCQlkcm9wcGVkICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJcWRpc2NfcXN0YXRzX2JhY2ts b2dfZGVjKHNjaCwgc2tiKTsKIAkJcWRpc2NfZHJvcChza2IsIHNjaCk7CiAJfQotCXFkaXNjX3Ry ZWVfZGVjcmVhc2VfcWxlbihzY2gsIHFsZW4gLSBzY2gtPnEucWxlbik7CisJcWRpc2NfdHJlZV9y ZWR1Y2VfYmFja2xvZyhzY2gsIHFsZW4gLSBzY2gtPnEucWxlbiwgZHJvcHBlZCk7CiAKIAlzY2hf dHJlZV91bmxvY2soc2NoKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hf cHJpby5jIGIvbmV0L3NjaGVkL3NjaF9wcmlvLmMKaW5kZXggMWI0YWFlYy4uZmVlMWIxNSAxMDA2 NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9wcmlvLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9wcmlvLmMK QEAgLTE5MSw3ICsxOTEsNyBAQCBzdGF0aWMgaW50IHByaW9fdHVuZShzdHJ1Y3QgUWRpc2MgKnNj aCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCQlzdHJ1Y3QgUWRpc2MgKmNoaWxkID0gcS0+cXVldWVz W2ldOwogCQlxLT5xdWV1ZXNbaV0gPSAmbm9vcF9xZGlzYzsKIAkJaWYgKGNoaWxkICE9ICZub29w X3FkaXNjKSB7Ci0JCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oY2hpbGQsIGNoaWxkLT5xLnFs ZW4pOworCQkJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhjaGlsZCwgY2hpbGQtPnEucWxlbiwg Y2hpbGQtPnFzdGF0cy5iYWNrbG9nKTsKIAkJCXFkaXNjX2Rlc3Ryb3koY2hpbGQpOwogCQl9CiAJ fQpAQCAtMjEwLDggKzIxMCw5IEBAIHN0YXRpYyBpbnQgcHJpb190dW5lKHN0cnVjdCBRZGlzYyAq c2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAJCQkJcS0+cXVldWVzW2ldID0gY2hpbGQ7CiAKIAkJ CQlpZiAob2xkICE9ICZub29wX3FkaXNjKSB7Ci0JCQkJCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxl bihvbGQsCi0JCQkJCQkJCSBvbGQtPnEucWxlbik7CisJCQkJCXFkaXNjX3RyZWVfcmVkdWNlX2Jh Y2tsb2cob2xkLAorCQkJCQkJCQkgIG9sZC0+cS5xbGVuLAorCQkJCQkJCQkgIG9sZC0+cXN0YXRz LmJhY2tsb2cpOwogCQkJCQlxZGlzY19kZXN0cm95KG9sZCk7CiAJCQkJfQogCQkJCXNjaF90cmVl X3VubG9jayhzY2gpOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9xZnEuYyBiL25ldC9zY2hl ZC9zY2hfcWZxLmMKaW5kZXggYjVjNTJjYS4uOGQyZDhkOSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVk L3NjaF9xZnEuYworKysgYi9uZXQvc2NoZWQvc2NoX3FmcS5jCkBAIC0yMjAsOSArMjIwLDEwIEBA IHN0YXRpYyBzdHJ1Y3QgcWZxX2NsYXNzICpxZnFfZmluZF9jbGFzcyhzdHJ1Y3QgUWRpc2MgKnNj aCwgdTMyIGNsYXNzaWQpCiBzdGF0aWMgdm9pZCBxZnFfcHVyZ2VfcXVldWUoc3RydWN0IHFmcV9j bGFzcyAqY2wpCiB7CiAJdW5zaWduZWQgaW50IGxlbiA9IGNsLT5xZGlzYy0+cS5xbGVuOworCXVu c2lnbmVkIGludCBiYWNrbG9nID0gY2wtPnFkaXNjLT5xc3RhdHMuYmFja2xvZzsKIAogCXFkaXNj X3Jlc2V0KGNsLT5xZGlzYyk7Ci0JcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKGNsLT5xZGlzYywg bGVuKTsKKwlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKGNsLT5xZGlzYywgbGVuLCBiYWNrbG9n KTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IHFmcV9wb2xpY3lbVENBX1FG UV9NQVggKyAxXSA9IHsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfcmVkLmMgYi9uZXQvc2No ZWQvc2NoX3JlZC5jCmluZGV4IGQ1YWJjZWUuLjhjMDUwOGMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hl ZC9zY2hfcmVkLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9yZWQuYwpAQCAtMjEwLDcgKzIxMCw4IEBA IHN0YXRpYyBpbnQgcmVkX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAq b3B0KQogCXEtPmZsYWdzID0gY3RsLT5mbGFnczsKIAlxLT5saW1pdCA9IGN0bC0+bGltaXQ7CiAJ aWYgKGNoaWxkKSB7Ci0JCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihxLT5xZGlzYywgcS0+cWRp c2MtPnEucWxlbik7CisJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2cocS0+cWRpc2MsIHEtPnFk aXNjLT5xLnFsZW4sCisJCQkJCSAgcS0+cWRpc2MtPnFzdGF0cy5iYWNrbG9nKTsKIAkJcWRpc2Nf ZGVzdHJveShxLT5xZGlzYyk7CiAJCXEtPnFkaXNjID0gY2hpbGQ7CiAJfQpkaWZmIC0tZ2l0IGEv bmV0L3NjaGVkL3NjaF9zZmIuYyBiL25ldC9zY2hlZC9zY2hfc2ZiLmMKaW5kZXggMGU3NGU1NS4u YzY5NjExNiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9zZmIuYworKysgYi9uZXQvc2NoZWQv c2NoX3NmYi5jCkBAIC01MTAsNyArNTEwLDggQEAgc3RhdGljIGludCBzZmJfY2hhbmdlKHN0cnVj dCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAKIAlzY2hfdHJlZV9sb2NrKHNjaCk7 CiAKLQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4ocS0+cWRpc2MsIHEtPnFkaXNjLT5xLnFsZW4p OworCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2cocS0+cWRpc2MsIHEtPnFkaXNjLT5xLnFsZW4s CisJCQkJICBxLT5xZGlzYy0+cXN0YXRzLmJhY2tsb2cpOwogCXFkaXNjX2Rlc3Ryb3kocS0+cWRp c2MpOwogCXEtPnFkaXNjID0gY2hpbGQ7CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfc2Zx LmMgYi9uZXQvc2NoZWQvc2NoX3NmcS5jCmluZGV4IDNhYmFiNTMuLjQ5OGYwYTIgMTAwNjQ0Ci0t LSBhL25ldC9zY2hlZC9zY2hfc2ZxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9zZnEuYwpAQCAtMzQ2 LDcgKzM0Niw3IEBAIHN0YXRpYyBpbnQKIHNmcV9lbnF1ZXVlKHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCBRZGlzYyAqc2NoKQogewogCXN0cnVjdCBzZnFfc2NoZWRfZGF0YSAqcSA9IHFkaXNj X3ByaXYoc2NoKTsKLQl1bnNpZ25lZCBpbnQgaGFzaDsKKwl1bnNpZ25lZCBpbnQgaGFzaCwgZHJv cHBlZDsKIAlzZnFfaW5kZXggeCwgcWxlbjsKIAlzdHJ1Y3Qgc2ZxX3Nsb3QgKnNsb3Q7CiAJaW50 IHVuaW5pdGlhbGl6ZWRfdmFyKHJldCk7CkBAIC00NjEsNyArNDYxLDcgQEAgZW5xdWV1ZToKIAkJ cmV0dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CiAKIAlxbGVuID0gc2xvdC0+cWxlbjsKLQlzZnFfZHJv cChzY2gpOworCWRyb3BwZWQgPSBzZnFfZHJvcChzY2gpOwogCS8qIFJldHVybiBDb25nZXN0aW9u IE5vdGlmaWNhdGlvbiBvbmx5IGlmIHdlIGRyb3BwZWQgYSBwYWNrZXQKIAkgKiBmcm9tIHRoaXMg Zmxvdy4KIAkgKi8KQEAgLTQ2OSw3ICs0NjksNyBAQCBlbnF1ZXVlOgogCQlyZXR1cm4gTkVUX1hN SVRfQ047CiAKIAkvKiBBcyB3ZSBkcm9wcGVkIGEgcGFja2V0LCBiZXR0ZXIgbGV0IHVwcGVyIHN0 YWNrIGtub3cgdGhpcyAqLwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihzY2gsIDEpOworCXFk aXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCAxLCBkcm9wcGVkKTsKIAlyZXR1cm4gTkVUX1hN SVRfU1VDQ0VTUzsKIH0KIApAQCAtNTM3LDYgKzUzNyw3IEBAIHN0YXRpYyB2b2lkIHNmcV9yZWhh c2goc3RydWN0IFFkaXNjICpzY2gpCiAJc3RydWN0IHNmcV9zbG90ICpzbG90OwogCXN0cnVjdCBz a19idWZmX2hlYWQgbGlzdDsKIAlpbnQgZHJvcHBlZCA9IDA7CisJdW5zaWduZWQgaW50IGRyb3Bf bGVuID0gMDsKIAogCV9fc2tiX3F1ZXVlX2hlYWRfaW5pdCgmbGlzdCk7CiAKQEAgLTU2NSw2ICs1 NjYsNyBAQCBzdGF0aWMgdm9pZCBzZnFfcmVoYXNoKHN0cnVjdCBRZGlzYyAqc2NoKQogCQkJaWYg KHggPj0gU0ZRX01BWF9GTE9XUykgewogZHJvcDoKIAkJCQlxZGlzY19xc3RhdHNfYmFja2xvZ19k ZWMoc2NoLCBza2IpOworCQkJCWRyb3BfbGVuICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJCQlr ZnJlZV9za2Ioc2tiKTsKIAkJCQlkcm9wcGVkKys7CiAJCQkJY29udGludWU7CkBAIC01OTQsNyAr NTk2LDcgQEAgZHJvcDoKIAkJfQogCX0KIAlzY2gtPnEucWxlbiAtPSBkcm9wcGVkOwotCXFkaXNj X3RyZWVfZGVjcmVhc2VfcWxlbihzY2gsIGRyb3BwZWQpOworCXFkaXNjX3RyZWVfcmVkdWNlX2Jh Y2tsb2coc2NoLCBkcm9wcGVkLCBkcm9wX2xlbik7CiB9CiAKIHN0YXRpYyB2b2lkIHNmcV9wZXJ0 dXJiYXRpb24odW5zaWduZWQgbG9uZyBhcmcpCkBAIC02MTgsNyArNjIwLDcgQEAgc3RhdGljIGlu dCBzZnFfY2hhbmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAJc3Ry dWN0IHNmcV9zY2hlZF9kYXRhICpxID0gcWRpc2NfcHJpdihzY2gpOwogCXN0cnVjdCB0Y19zZnFf cW9wdCAqY3RsID0gbmxhX2RhdGEob3B0KTsKIAlzdHJ1Y3QgdGNfc2ZxX3FvcHRfdjEgKmN0bF92 MSA9IE5VTEw7Ci0JdW5zaWduZWQgaW50IHFsZW47CisJdW5zaWduZWQgaW50IHFsZW4sIGRyb3Bw ZWQgPSAwOwogCXN0cnVjdCByZWRfcGFybXMgKnAgPSBOVUxMOwogCiAJaWYgKG9wdC0+bmxhX2xl biA8IG5sYV9hdHRyX3NpemUoc2l6ZW9mKCpjdGwpKSkKQEAgLTY2Nyw4ICs2NjksOCBAQCBzdGF0 aWMgaW50IHNmcV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkK IAogCXFsZW4gPSBzY2gtPnEucWxlbjsKIAl3aGlsZSAoc2NoLT5xLnFsZW4gPiBxLT5saW1pdCkK LQkJc2ZxX2Ryb3Aoc2NoKTsKLQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCBxbGVuIC0g c2NoLT5xLnFsZW4pOworCQlkcm9wcGVkICs9IHNmcV9kcm9wKHNjaCk7CisJcWRpc2NfdHJlZV9y ZWR1Y2VfYmFja2xvZyhzY2gsIHFsZW4gLSBzY2gtPnEucWxlbiwgZHJvcHBlZCk7CiAKIAlkZWxf dGltZXIoJnEtPnBlcnR1cmJfdGltZXIpOwogCWlmIChxLT5wZXJ0dXJiX3BlcmlvZCkgewpkaWZm IC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF90YmYuYyBiL25ldC9zY2hlZC9zY2hfdGJmLmMKaW5kZXgg NTZhMWFlZi4uYzJmYmRlNyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF90YmYuYworKysgYi9u ZXQvc2NoZWQvc2NoX3RiZi5jCkBAIC0xNjAsNiArMTYwLDcgQEAgc3RhdGljIGludCB0YmZfc2Vn bWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAlzdHJ1Y3QgdGJm X3NjaGVkX2RhdGEgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAJc3RydWN0IHNrX2J1ZmYgKnNlZ3Ms ICpuc2tiOwogCW5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzID0gbmV0aWZfc2tiX2ZlYXR1cmVz KHNrYik7CisJdW5zaWduZWQgaW50IGxlbiA9IDAsIHByZXZfbGVuID0gcWRpc2NfcGt0X2xlbihz a2IpOwogCWludCByZXQsIG5iOwogCiAJc2VncyA9IHNrYl9nc29fc2VnbWVudChza2IsIGZlYXR1 cmVzICYgfk5FVElGX0ZfR1NPX01BU0spOwpAQCAtMTcyLDYgKzE3Myw3IEBAIHN0YXRpYyBpbnQg dGJmX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJCW5z a2IgPSBzZWdzLT5uZXh0OwogCQlzZWdzLT5uZXh0ID0gTlVMTDsKIAkJcWRpc2Nfc2tiX2NiKHNl Z3MpLT5wa3RfbGVuID0gc2Vncy0+bGVuOworCQlsZW4gKz0gc2Vncy0+bGVuOwogCQlyZXQgPSBx ZGlzY19lbnF1ZXVlKHNlZ3MsIHEtPnFkaXNjKTsKIAkJaWYgKHJldCAhPSBORVRfWE1JVF9TVUND RVNTKSB7CiAJCQlpZiAobmV0X3htaXRfZHJvcF9jb3VudChyZXQpKQpAQCAtMTgzLDcgKzE4NSw3 IEBAIHN0YXRpYyBpbnQgdGJmX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFk aXNjICpzY2gpCiAJfQogCXNjaC0+cS5xbGVuICs9IG5iOwogCWlmIChuYiA+IDEpCi0JCXFkaXNj X3RyZWVfZGVjcmVhc2VfcWxlbihzY2gsIDEgLSBuYik7CisJCXFkaXNjX3RyZWVfcmVkdWNlX2Jh Y2tsb2coc2NoLCAxIC0gbmIsIHByZXZfbGVuIC0gbGVuKTsKIAljb25zdW1lX3NrYihza2IpOwog CXJldHVybiBuYiA+IDAgPyBORVRfWE1JVF9TVUNDRVNTIDogTkVUX1hNSVRfRFJPUDsKIH0KQEAg LTM5OSw3ICs0MDEsOCBAQCBzdGF0aWMgaW50IHRiZl9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gs IHN0cnVjdCBubGF0dHIgKm9wdCkKIAogCXNjaF90cmVlX2xvY2soc2NoKTsKIAlpZiAoY2hpbGQp IHsKLQkJcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKHEtPnFkaXNjLCBxLT5xZGlzYy0+cS5xbGVu KTsKKwkJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhxLT5xZGlzYywgcS0+cWRpc2MtPnEucWxl biwKKwkJCQkJICBxLT5xZGlzYy0+cXN0YXRzLmJhY2tsb2cpOwogCQlxZGlzY19kZXN0cm95KHEt PnFkaXNjKTsKIAkJcS0+cWRpc2MgPSBjaGlsZDsKIAl9Ci0tIAoyLjEuMAoKCkZyb20gMmU1MWQ0 Nzg4MjM5M2MyZGM1NGEyNzYzMjRkNmFhOTU4MmRkZjlkNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFRodSwg MjUgRmViIDIwMTYgMTQ6NTU6MDIgLTA4MDAKU3ViamVjdDogW1BBVENIIDI0LzM4XSBzY2hfaHRi OiB1cGRhdGUgYmFja2xvZyBhcyB3ZWxsCgpbIFVwc3RyZWFtIGNvbW1pdCA0MzFlM2E4ZTM2YTA1 YTM3MTI2ZjM0YjQxYWEzYTVhNjQ1NmFmMDRlIF0KCldlIHNhdyBxbGVuIT0wIGJ1dCBiYWNrbG9n PT0wIG9uIG91ciBwcm9kdWN0aW9uIG1hY2hpbmU6CgpxZGlzYyBodGIgMTogZGV2IGV0aDAgcm9v dCByZWZjbnQgMiByMnEgMTAgZGVmYXVsdCAxIGRpcmVjdF9wYWNrZXRzX3N0YXQgMCB2ZXIgMy4x NwogU2VudCAxNzI2ODA0NTczNTYgYnl0ZXMgMjIyNDY5NDQ5IHBrdCAoZHJvcHBlZCAwLCBvdmVy bGltaXRzIDEyMzU3NTgzNCByZXF1ZXVlcyAwKQogYmFja2xvZyAwYiA3MnAgcmVxdWV1ZXMgMAoK VGhlIHByb2JsZW0gaXMgd2Ugb25seSBjb3VudCBxbGVuIGZvciBIVEIgcWRpc2MgYnV0IG5vdCBi YWNrbG9nLgpXZSBuZWVkIHRvIHVwZGF0ZSBiYWNrbG9nIHRvbyB3aGVuIHdlIHVwZGF0ZSBxbGVu LCBzbyB0aGF0IHdlCmNhbiBhdCBsZWFzdCBrbm93IHRoZSBhdmVyYWdlIHBhY2tldCBsZW5ndGgu CgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQWNrZWQtYnk6IEphbWFs IEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8 eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9odGIuYyB8IDUgKysrKy0K IDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvc2NoZWQvc2NoX2h0Yi5jIGIvbmV0L3NjaGVkL3NjaF9odGIuYwppbmRleCA4NDZh N2Y5Li44N2IwMmVkMyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9odGIuYworKysgYi9uZXQv c2NoZWQvc2NoX2h0Yi5jCkBAIC02MDAsNiArNjAwLDcgQEAgc3RhdGljIGludCBodGJfZW5xdWV1 ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJaHRiX2FjdGl2YXRl KHEsIGNsKTsKIAl9CiAKKwlxZGlzY19xc3RhdHNfYmFja2xvZ19pbmMoc2NoLCBza2IpOwogCXNj aC0+cS5xbGVuKys7CiAJcmV0dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CiB9CkBAIC04ODksNiArODkw LDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpodGJfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNj aCkKIG9rOgogCQlxZGlzY19ic3RhdHNfdXBkYXRlKHNjaCwgc2tiKTsKIAkJcWRpc2NfdW50aHJv dHRsZWQoc2NoKTsKKwkJcWRpc2NfcXN0YXRzX2JhY2tsb2dfZGVjKHNjaCwgc2tiKTsKIAkJc2No LT5xLnFsZW4tLTsKIAkJcmV0dXJuIHNrYjsKIAl9CkBAIC05NTUsNiArOTU3LDcgQEAgc3RhdGlj IHVuc2lnbmVkIGludCBodGJfZHJvcChzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJCXVuc2lnbmVkIGlu dCBsZW47CiAJCQlpZiAoY2wtPnVuLmxlYWYucS0+b3BzLT5kcm9wICYmCiAJCQkgICAgKGxlbiA9 IGNsLT51bi5sZWFmLnEtPm9wcy0+ZHJvcChjbC0+dW4ubGVhZi5xKSkpIHsKKwkJCQlzY2gtPnFz dGF0cy5iYWNrbG9nIC09IGxlbjsKIAkJCQlzY2gtPnEucWxlbi0tOwogCQkJCWlmICghY2wtPnVu LmxlYWYucS0+cS5xbGVuKQogCQkJCQlodGJfZGVhY3RpdmF0ZShxLCBjbCk7CkBAIC05ODQsMTIg Kzk4NywxMiBAQCBzdGF0aWMgdm9pZCBodGJfcmVzZXQoc3RydWN0IFFkaXNjICpzY2gpCiAJCQl9 CiAJCQljbC0+cHJpb19hY3Rpdml0eSA9IDA7CiAJCQljbC0+Y21vZGUgPSBIVEJfQ0FOX1NFTkQ7 Ci0KIAkJfQogCX0KIAlxZGlzY193YXRjaGRvZ19jYW5jZWwoJnEtPndhdGNoZG9nKTsKIAlfX3Nr Yl9xdWV1ZV9wdXJnZSgmcS0+ZGlyZWN0X3F1ZXVlKTsKIAlzY2gtPnEucWxlbiA9IDA7CisJc2No LT5xc3RhdHMuYmFja2xvZyA9IDA7CiAJbWVtc2V0KHEtPmhsZXZlbCwgMCwgc2l6ZW9mKHEtPmhs ZXZlbCkpOwogCW1lbXNldChxLT5yb3dfbWFzaywgMCwgc2l6ZW9mKHEtPnJvd19tYXNrKSk7CiAJ Zm9yIChpID0gMDsgaSA8IFRDX0hUQl9OVU1QUklPOyBpKyspCi0tIAoyLjEuMAoKCkZyb20gOGQw YTExMjA2NzM0NjMwN2Y4NWZhN2YyMjU2ODQ4NmM1ZDc0YTI2ZiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjUgRmViIDIwMTYgMTQ6NTU6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIIDI1LzM4XSBzY2hf ZHNtYXJrOiB1cGRhdGUgYmFja2xvZyBhcyB3ZWxsCgpbIFVwc3RyZWFtIGNvbW1pdCBiZGYxNzY2 MWY2M2E3OWMzY2I0MjA5Yjk3MGIxY2MzOWUzNGY3NTQzIF0KClNpbWlsYXJseSwgd2UgbmVlZCB0 byB1cGRhdGUgYmFja2xvZyB0b28gd2hlbiB3ZSB1cGRhdGUgcWxlbi4KCkNjOiBKYW1hbCBIYWRp IFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91 Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfZHNtYXJrLmMgfCAzICsrKwogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hf ZHNtYXJrLmMgYi9uZXQvc2NoZWQvc2NoX2RzbWFyay5jCmluZGV4IGNmZGRiMWMuLmQwZGZmMGMg MTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9k c21hcmsuYwpAQCAtMjU4LDYgKzI1OCw3IEBAIHN0YXRpYyBpbnQgZHNtYXJrX2VucXVldWUoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJCXJldHVybiBlcnI7CiAJfQog CisJcWRpc2NfcXN0YXRzX2JhY2tsb2dfaW5jKHNjaCwgc2tiKTsKIAlzY2gtPnEucWxlbisrOwog CiAJcmV0dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CkBAIC0yODAsNiArMjgxLDcgQEAgc3RhdGljIHN0 cnVjdCBza19idWZmICpkc21hcmtfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJcmV0dXJu IE5VTEw7CiAKIAlxZGlzY19ic3RhdHNfdXBkYXRlKHNjaCwgc2tiKTsKKwlxZGlzY19xc3RhdHNf YmFja2xvZ19kZWMoc2NoLCBza2IpOwogCXNjaC0+cS5xbGVuLS07CiAKIAlpbmRleCA9IHNrYi0+ dGNfaW5kZXggJiAocC0+aW5kaWNlcyAtIDEpOwpAQCAtMzk1LDYgKzM5Nyw3IEBAIHN0YXRpYyB2 b2lkIGRzbWFya19yZXNldChzdHJ1Y3QgUWRpc2MgKnNjaCkKIAogCXByX2RlYnVnKCIlcyhzY2gg JXAsW3FkaXNjICVwXSlcbiIsIF9fZnVuY19fLCBzY2gsIHApOwogCXFkaXNjX3Jlc2V0KHAtPnEp OworCXNjaC0+cXN0YXRzLmJhY2tsb2cgPSAwOwogCXNjaC0+cS5xbGVuID0gMDsKIH0KIAotLSAK Mi4xLjAKCgpGcm9tIGMxYzdlNWI3MzY0NDkwYTE5ZTY3N2QyNTA0YmQ3MzRlNDI3YmE2M2UgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZl ci5jb20+CkRhdGU6IE1vbiwgMiBNYXkgMjAxNiAxMjoyMDoxNSAtMDQwMApTdWJqZWN0OiBbUEFU Q0ggMjYvMzhdIG5ldGVtOiBTZWdtZW50IEdTTyBwYWNrZXRzIG9uIGVucXVldWUKClsgVXBzdHJl YW0gY29tbWl0IDYwNzFiZDFhYTEzZWQ5ZTQxODI0YmFmYWQ4NDViN2I3ZjRkZjVjZmQgXQoKVGhp cyB3YXMgcmVjZW50bHkgcmVwb3J0ZWQgdG8gbWUsIGFuZCByZXByb2R1Y2VkIG9uIHRoZSBsYXRl c3QgbmV0IGtlcm5lbCwKd2hlbiBhdHRlbXB0aW5nIHRvIHJ1biBuZXRwZXJmIGZyb20gYSBob3N0 IHRoYXQgaGFkIGEgbmV0ZW0gcWRpc2MgYXR0YWNoZWQKdG8gdGhlIGVncmVzcyBpbnRlcmZhY2U6 CgpbICA3ODguMDczNzcxXSAtLS0tLS0tLS0tLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KWyAgNzg4LjA5NjcxNl0gV0FSTklORzogYXQgbmV0L2NvcmUv ZGV2LmM6MjI1MyBza2Jfd2Fybl9iYWRfb2ZmbG9hZCsweGNkLzB4ZGEoKQpbICA3ODguMTI5NTIx XSBibngyOiBjYXBzPSgweDAwMDAwMDAxODAxOTQ5YjMsIDB4MDAwMDAwMDAwMDAwMDAwMCkgbGVu PTI5NjIKZGF0YV9sZW49MCBnc29fc2l6ZT0xNDQ4IGdzb190eXBlPTEgaXBfc3VtbWVkPTMKWyAg Nzg4LjE4MjE1MF0gTW9kdWxlcyBsaW5rZWQgaW46IHNjaF9uZXRlbSBrdm1fYW1kIGt2bSBjcmMz Ml9wY2xtdWwgaXBtaV9zc2lmCmdoYXNoX2NsbXVsbmlfaW50ZWwgc3A1MTAwX3RjbyBhbWQ2NF9l ZGFjX21vZCBhZXNuaV9pbnRlbCBscncgZ2YxMjhtdWwKZ2x1ZV9oZWxwZXIgYWJsa19oZWxwZXIg ZWRhY19tY2VfYW1kIGNyeXB0ZCBwY3Nwa3Igc2cgZWRhY19jb3JlIGhwaWxvIGlwbWlfc2kKaTJj X3BpaXg0IGsxMHRlbXAgZmFtMTVoX3Bvd2VyIGhwd2R0IGlwbWlfbXNnaGFuZGxlciBzaHBjaHAg YWNwaV9wb3dlcl9tZXRlcgpwY2NfY3B1ZnJlcSBuZnNkIGF1dGhfcnBjZ3NzIG5mc19hY2wgbG9j a2QgZ3JhY2Ugc3VucnBjIGlwX3RhYmxlcyB4ZnMgbGliY3JjMzJjCnNkX21vZCBjcmNfdDEwZGlm IGNyY3QxMGRpZl9nZW5lcmljIG1nYWcyMDAgc3lzY29weWFyZWEgc3lzZmlsbHJlY3Qgc3lzaW1n Ymx0CmkyY19hbGdvX2JpdCBkcm1fa21zX2hlbHBlciBhaGNpIGF0YV9nZW5lcmljIHBhdGFfYWNw aSB0dG0gbGliYWhjaQpjcmN0MTBkaWZfcGNsbXVsIHBhdGFfYXRpaXhwIHRnMyBsaWJhdGEgY3Jj dDEwZGlmX2NvbW1vbiBkcm0gY3JjMzJjX2ludGVsIHB0cApzZXJpb19yYXcgYm54MiByODE2OSBo cHNhIHBwc19jb3JlIGkyY19jb3JlIG1paSBkbV9taXJyb3IgZG1fcmVnaW9uX2hhc2ggZG1fbG9n CmRtX21vZApbICA3ODguNDY1Mjk0XSBDUFU6IDE2IFBJRDogMCBDb21tOiBzd2FwcGVyLzE2IFRh aW50ZWQ6IEcgICAgICAgIFcKLS0tLS0tLS0tLS0tICAgMy4xMC4wLTMyNy5lbDcueDg2XzY0ICMx ClsgIDc4OC41MTE1MjFdIEhhcmR3YXJlIG5hbWU6IEhQIFByb0xpYW50IERMMzg1cCBHZW44LCBC SU9TIEEyOCAxMi8xNy8yMDEyClsgIDc4OC41NDIyNjBdICBmZmZmODgwNDM3YzAzNmI4IGY3YWZj NTY1MzJhNTNkYjkgZmZmZjg4MDQzN2MwMzY3MApmZmZmZmZmZjgxNjM1MWYxClsgIDc4OC41NzYz MzJdICBmZmZmODgwNDM3YzAzNmE4IGZmZmZmZmZmODEwN2IyMDAgZmZmZjg4MDYzM2U3NDIwMApm ZmZmODgwMjMxNjc0MDAwClsgIDc4OC42MTE5NDNdICAwMDAwMDAwMDAwMDAwMDAxIDAwMDAwMDAw MDAwMDAwMDMgMDAwMDAwMDAwMDAwMDAwMApmZmZmODgwNDM3YzAzNzEwClsgIDc4OC42NDcyNDFd IENhbGwgVHJhY2U6ClsgIDc4OC42NTg4MTddICA8SVJRPiAgWzxmZmZmZmZmZjgxNjM1MWYxPl0g ZHVtcF9zdGFjaysweDE5LzB4MWIKWyAgNzg4LjY4NjE5M10gIFs8ZmZmZmZmZmY4MTA3YjIwMD5d IHdhcm5fc2xvd3BhdGhfY29tbW9uKzB4NzAvMHhiMApbICA3ODguNzEzODAzXSAgWzxmZmZmZmZm ZjgxMDdiMjljPl0gd2Fybl9zbG93cGF0aF9mbXQrMHg1Yy8weDgwClsgIDc4OC43NDEzMTRdICBb PGZmZmZmZmZmODEyZjkyZjM+XSA/IF9fX3JhdGVsaW1pdCsweDkzLzB4MTAwClsgIDc4OC43Njcw MThdICBbPGZmZmZmZmZmODE2MzdmNDk+XSBza2Jfd2Fybl9iYWRfb2ZmbG9hZCsweGNkLzB4ZGEK WyAgNzg4Ljc5NjExN10gIFs8ZmZmZmZmZmY4MTUyOTUwYz5dIHNrYl9jaGVja3N1bV9oZWxwKzB4 MTdjLzB4MTkwClsgIDc4OC44MjMzOTJdICBbPGZmZmZmZmZmYTAxNDYzYTE+XSBuZXRlbV9lbnF1 ZXVlKzB4NzQxLzB4N2MwIFtzY2hfbmV0ZW1dClsgIDc4OC44NTQ0ODddICBbPGZmZmZmZmZmODE1 MmNiNTg+XSBkZXZfcXVldWVfeG1pdCsweDJhOC8weDU3MApbICA3ODguODgwODcwXSAgWzxmZmZm ZmZmZjgxNTZhZTFkPl0gaXBfZmluaXNoX291dHB1dCsweDUzZC8weDdkMAouLi4KClRoZSBwcm9i bGVtIG9jY3VycyBiZWNhdXNlIG5ldGVtIGlzIG5vdCBwcmVwYXJlZCB0byBoYW5kbGUgR1NPIHBh Y2tldHMgKGFzIGl0CnVzZXMgc2tiX2NoZWNrc3VtX2hlbHAgaW4gaXRzIGVucXVldWUgcGF0aCwg d2hpY2ggY2Fubm90IG1hbmlwdWxhdGUgdGhlc2UKZnJhbWVzKS4KClRoZSBzb2x1dGlvbiBJIHRo aW5rIGlzIHRvIHNpbXBseSBzZWdtZW50IHRoZSBza2IgaW4gYSBzaW1taWxhciBmYXNoaW9uIHRv IHRoZQp3YXkgd2UgZG8gaW4gX19kZXZfcXVldWVfeG1pdCAodmlhIHZhbGlkYXRlX3htaXRfc2ti KSwgd2l0aCBzb21lIG1pbm9yIGNoYW5nZXMuCldoZW4gd2UgZGVjaWRlIHRvIGNvcnJ1cHQgYW4g c2tiLCBpZiB0aGUgZnJhbWUgaXMgR1NPLCB3ZSBzZWdtZW50IGl0LCBjb3JydXB0CnRoZSBmaXJz dCBzZWdtZW50LCBhbmQgZW5xdWV1ZSB0aGUgcmVtYWluaW5nIG9uZXMuCgp0ZXN0ZWQgc3VjY2Vz c2Z1bGx5IGJ5IG15c2VsZiBvbiB0aGUgbGF0ZXN0IG5ldCBrZXJuZWwsIHRvIHdoaWNoIHRoaXMg YXBwbGllcwoKU2lnbmVkLW9mZi1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNv bT4KQ0M6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNDOiAiRGF2aWQgUy4g TWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KQ0M6IG5ldGVtQGxpc3RzLmxpbnV4LWZvdW5k YXRpb24ub3JnCkNDOiBlcmljLmR1bWF6ZXRAZ21haWwuY29tCkNDOiBzdGVwaGVuQG5ldHdvcmtw bHVtYmVyLm9yZwpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L3NjaGVkL3NjaF9uZXRlbS5jIHwgNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMgYi9uZXQv c2NoZWQvc2NoX25ldGVtLmMKaW5kZXggOTY0MGJiMy4uNGJlZmU5NyAxMDA2NDQKLS0tIGEvbmV0 L3NjaGVkL3NjaF9uZXRlbS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0uYwpAQCAtMzk1LDYg KzM5NSwyNSBAQCBzdGF0aWMgdm9pZCB0Zmlmb19lbnF1ZXVlKHN0cnVjdCBza19idWZmICpuc2ti LCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAlzY2gtPnEucWxlbisrOwogfQogCisvKiBuZXRlbSBjYW4n dCBwcm9wZXJseSBjb3JydXB0IGEgbWVnYXBhY2tldCAobGlrZSB3ZSBnZXQgZnJvbSBHU08pLCBz byBpbnN0ZWFkCisgKiB3aGVuIHdlIHN0YXRpc3RpY2FsbHkgY2hvb3NlIHRvIGNvcnJ1cHQgb25l LCB3ZSBpbnN0ZWFkIHNlZ21lbnQgaXQsIHJldHVybmluZworICogdGhlIGZpcnN0IHBhY2tldCB0 byBiZSBjb3JydXB0ZWQsIGFuZCByZS1lbnF1ZXVlIHRoZSByZW1haW5pbmcgZnJhbWVzCisgKi8K K3N0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbmV0ZW1fc2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgUWRpc2MgKnNjaCkKK3sKKwlzdHJ1Y3Qgc2tfYnVmZiAqc2VnczsKKwluZXRkZXZf ZmVhdHVyZXNfdCBmZWF0dXJlcyA9IG5ldGlmX3NrYl9mZWF0dXJlcyhza2IpOworCisJc2VncyA9 IHNrYl9nc29fc2VnbWVudChza2IsIGZlYXR1cmVzICYgfk5FVElGX0ZfR1NPX01BU0spOworCisJ aWYgKElTX0VSUl9PUl9OVUxMKHNlZ3MpKSB7CisJCXFkaXNjX3Jlc2hhcGVfZmFpbChza2IsIHNj aCk7CisJCXJldHVybiBOVUxMOworCX0KKwljb25zdW1lX3NrYihza2IpOworCXJldHVybiBzZWdz OworfQorCiAvKgogICogSW5zZXJ0IG9uZSBza2IgaW50byBxZGlzYy4KICAqIE5vdGU6IHBhcmVu dCBkZXBlbmRzIG9uIHJldHVybiB2YWx1ZSB0byBhY2NvdW50IGZvciBxdWV1ZSBsZW5ndGguCkBA IC00MDcsNyArNDI2LDExIEBAIHN0YXRpYyBpbnQgbmV0ZW1fZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkvKiBXZSBkb24ndCBmaWxsIGNiIG5vdyBhcyBz a2JfdW5zaGFyZSgpIG1heSBpbnZhbGlkYXRlIGl0ICovCiAJc3RydWN0IG5ldGVtX3NrYl9jYiAq Y2I7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjI7CisJc3RydWN0IHNrX2J1ZmYgKnNlZ3MgPSBOVUxM OworCXVuc2lnbmVkIGludCBsZW4gPSAwLCBsYXN0X2xlbiwgcHJldl9sZW4gPSBxZGlzY19wa3Rf bGVuKHNrYik7CisJaW50IG5iID0gMDsKIAlpbnQgY291bnQgPSAxOworCWludCByYyA9IE5FVF9Y TUlUX1NVQ0NFU1M7CiAKIAkvKiBSYW5kb20gZHVwbGljYXRpb24gKi8KIAlpZiAocS0+ZHVwbGlj YXRlICYmIHEtPmR1cGxpY2F0ZSA+PSBnZXRfY3JhbmRvbSgmcS0+ZHVwX2NvcikpCkBAIC00NTMs MTAgKzQ3NiwyMyBAQCBzdGF0aWMgaW50IG5ldGVtX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IFFkaXNjICpzY2gpCiAJICogZG8gaXQgbm93IGluIHNvZnR3YXJlIGJlZm9yZSB3 ZSBtYW5nbGUgaXQuCiAJICovCiAJaWYgKHEtPmNvcnJ1cHQgJiYgcS0+Y29ycnVwdCA+PSBnZXRf Y3JhbmRvbSgmcS0+Y29ycnVwdF9jb3IpKSB7CisJCWlmIChza2JfaXNfZ3NvKHNrYikpIHsKKwkJ CXNlZ3MgPSBuZXRlbV9zZWdtZW50KHNrYiwgc2NoKTsKKwkJCWlmICghc2VncykKKwkJCQlyZXR1 cm4gTkVUX1hNSVRfRFJPUDsKKwkJfSBlbHNlIHsKKwkJCXNlZ3MgPSBza2I7CisJCX0KKworCQlz a2IgPSBzZWdzOworCQlzZWdzID0gc2Vncy0+bmV4dDsKKwogCQlpZiAoIShza2IgPSBza2JfdW5z aGFyZShza2IsIEdGUF9BVE9NSUMpKSB8fAogCQkgICAgKHNrYi0+aXBfc3VtbWVkID09IENIRUNL U1VNX1BBUlRJQUwgJiYKLQkJICAgICBza2JfY2hlY2tzdW1faGVscChza2IpKSkKLQkJCXJldHVy biBxZGlzY19kcm9wKHNrYiwgc2NoKTsKKwkJICAgICBza2JfY2hlY2tzdW1faGVscChza2IpKSkg eworCQkJcmMgPSBxZGlzY19kcm9wKHNrYiwgc2NoKTsKKwkJCWdvdG8gZmluaXNoX3NlZ3M7CisJ CX0KIAogCQlza2ItPmRhdGFbcHJhbmRvbV91MzIoKSAlIHNrYl9oZWFkbGVuKHNrYildIF49CiAJ CQkxPDwocHJhbmRvbV91MzIoKSAlIDgpOwpAQCAtNTE2LDYgKzU1MiwyNyBAQCBzdGF0aWMgaW50 IG5ldGVtX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJ CXNjaC0+cXN0YXRzLnJlcXVldWVzKys7CiAJfQogCitmaW5pc2hfc2VnczoKKwlpZiAoc2Vncykg eworCQl3aGlsZSAoc2VncykgeworCQkJc2tiMiA9IHNlZ3MtPm5leHQ7CisJCQlzZWdzLT5uZXh0 ID0gTlVMTDsKKwkJCXFkaXNjX3NrYl9jYihzZWdzKS0+cGt0X2xlbiA9IHNlZ3MtPmxlbjsKKwkJ CWxhc3RfbGVuID0gc2Vncy0+bGVuOworCQkJcmMgPSBxZGlzY19lbnF1ZXVlKHNlZ3MsIHNjaCk7 CisJCQlpZiAocmMgIT0gTkVUX1hNSVRfU1VDQ0VTUykgeworCQkJCWlmIChuZXRfeG1pdF9kcm9w X2NvdW50KHJjKSkKKwkJCQkJcWRpc2NfcXN0YXRzX2Ryb3Aoc2NoKTsKKwkJCX0gZWxzZSB7CisJ CQkJbmIrKzsKKwkJCQlsZW4gKz0gbGFzdF9sZW47CisJCQl9CisJCQlzZWdzID0gc2tiMjsKKwkJ fQorCQlzY2gtPnEucWxlbiArPSBuYjsKKwkJaWYgKG5iID4gMSkKKwkJCXFkaXNjX3RyZWVfcmVk dWNlX2JhY2tsb2coc2NoLCAxIC0gbmIsIHByZXZfbGVuIC0gbGVuKTsKKwl9CiAJcmV0dXJuIE5F VF9YTUlUX1NVQ0NFU1M7CiB9CiAKLS0gCjIuMS4wCgoKRnJvbSA1MWExODFjNjFjMWQ2OWEzNzJi Yjc3MTE2NTAxZmRhYzdlMTk3YWUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VU Ri04P3E/VXdlPTIwS2xlaW5lLUs9QzM9QjZuaWc/PSA8dS5rbGVpbmUta29lbmlnQHBlbmd1dHJv bml4LmRlPgpEYXRlOiBUdWUsIDMgTWF5IDIwMTYgMTY6Mzg6NTMgKzAyMDAKU3ViamVjdDogW1BB VENIIDI3LzM4XSBuZXQ6IGZlYzogb25seSBjbGVhciBhIHF1ZXVlJ3Mgd29yayBiaXQgaWYgdGhl IHF1ZXVlCiB3YXMgZW1wdGllZApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQv cGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBV cHN0cmVhbSBjb21taXQgMWMwMjFiYjcxN2E3MGFhZWFhNGIyNWM5MWY0M2MyYWVkZGQ5MjJkZSBd CgpJbiB0aGUgcmVjZWl2ZSBwYXRoIGEgcXVldWUncyB3b3JrIGJpdCB3YXMgY2xlYXJlZCB1bmNv bmRpdGlvbmFsbHkgZXZlbgppZiBmZWNfZW5ldF9yeF9xdWV1ZSBvbmx5IHJlYWQgb3V0IGEgcGFy dCBvZiB0aGUgYXZhaWxhYmxlIHBhY2tldHMgZnJvbQp0aGUgaGFyZHdhcmUuIFRoaXMgcmVzdWx0 ZWQgaW4gbm90IHJlYWRpbmcgYW55IHBhY2tldHMgaW4gdGhlIG5leHQgbmFwaQp0dXJuIGFuZCBz byBwYWNrZXRzIHdlcmUgZGVsYXllZCBvciBsb3N0LgoKVGhlIG9idmlvdXMgZml4IGlzIHRvIG9u bHkgY2xlYXIgYSBxdWV1ZSdzIGJpdCB3aGVuIHRoZSBxdWV1ZSB3YXMKZW1wdGllZC4KCkZpeGVz OiA0ZDQ5NGNkYzkyYjMgKCJuZXQ6IGZlYzogY2hhbmdlIGRhdGEgc3RydWN0dXJlIHRvIHN1cHBv cnQgbXVsdGlxdWV1ZSIpClNpZ25lZC1vZmYtYnk6IFV3ZSBLbGVpbmUtS8O2bmlnIDx1LmtsZWlu ZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+ClJldmlld2VkLWJ5OiBMdWNhcyBTdGFjaCA8bC5zdGFj aEBwZW5ndXRyb25peC5kZT4KVGVzdGVkLWJ5OiBGdWdhbmcgRHVhbiA8ZnVnYW5nLmR1YW5Abnhw LmNvbT4KQWNrZWQtYnk6IEZ1Z2FuZyBEdWFuIDxmdWdhbmcuZHVhbkBueHAuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMgfCAxMCArKysrKysrKy0tCiAxIGZp bGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKaW5kZXggYjJhMzIyMC4uZjYxNDdmZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKQEAgLTE1NTcsOSArMTU1 NywxNSBAQCBmZWNfZW5ldF9yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgaW50IGJ1ZGdldCkK IAlzdHJ1Y3QgZmVjX2VuZXRfcHJpdmF0ZSAqZmVwID0gbmV0ZGV2X3ByaXYobmRldik7CiAKIAlm b3JfZWFjaF9zZXRfYml0KHF1ZXVlX2lkLCAmZmVwLT53b3JrX3J4LCBGRUNfRU5FVF9NQVhfUlhf UVMpIHsKLQkJY2xlYXJfYml0KHF1ZXVlX2lkLCAmZmVwLT53b3JrX3J4KTsKLQkJcGt0X3JlY2Vp dmVkICs9IGZlY19lbmV0X3J4X3F1ZXVlKG5kZXYsCisJCWludCByZXQ7CisKKwkJcmV0ID0gZmVj X2VuZXRfcnhfcXVldWUobmRldiwKIAkJCQkJYnVkZ2V0IC0gcGt0X3JlY2VpdmVkLCBxdWV1ZV9p ZCk7CisKKwkJaWYgKHJldCA8IGJ1ZGdldCAtIHBrdF9yZWNlaXZlZCkKKwkJCWNsZWFyX2JpdChx dWV1ZV9pZCwgJmZlcC0+d29ya19yeCk7CisKKwkJcGt0X3JlY2VpdmVkICs9IHJldDsKIAl9CiAJ cmV0dXJuIHBrdF9yZWNlaXZlZDsKIH0KLS0gCjIuMS4wCgoKRnJvbSAyNTMyNjVmODFmYmIwZTg2 ZDJhNzE4YjIxZWVkNDJlYTVlNGU1MTI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBL YW5namllIEx1IDxrYW5namllbHVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDMgTWF5IDIwMTYgMTY6 MzU6MDUgLTA0MDAKU3ViamVjdDogW1BBVENIIDI4LzM4XSBuZXQ6IGZpeCBpbmZvbGVhayBpbiBs bGMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGI4 NjcwYzA5ZjM3YmRmMjg0N2NjNDRmMzY1MTFhNTNhZmM2MTYxZmQgXQoKVGhlIHN0YWNrIG9iamVj dCDigJxpbmZv4oCdIGhhcyBhIHRvdGFsIHNpemUgb2YgMTIgYnl0ZXMuIEl0cyBsYXN0IGJ5dGUK aXMgcGFkZGluZyB3aGljaCBpcyBub3QgaW5pdGlhbGl6ZWQgYW5kIGxlYWtlZCB2aWEg4oCccHV0 X2Ntc2figJ0uCgpTaWduZWQtb2ZmLWJ5OiBLYW5namllIEx1IDxramx1QGdhdGVjaC5lZHU+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvbGxjL2FmX2xsYy5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRp ZmYgLS1naXQgYS9uZXQvbGxjL2FmX2xsYy5jIGIvbmV0L2xsYy9hZl9sbGMuYwppbmRleCA4ZGFi NGU1Li5iYjhlZGI5IDEwMDY0NAotLS0gYS9uZXQvbGxjL2FmX2xsYy5jCisrKyBiL25ldC9sbGMv YWZfbGxjLmMKQEAgLTYyNiw2ICs2MjYsNyBAQCBzdGF0aWMgdm9pZCBsbGNfY21zZ19yY3Yoc3Ry dWN0IG1zZ2hkciAqbXNnLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCWlmIChsbGMtPmNtc2dfZmxh Z3MgJiBMTENfQ01TR19QS1RJTkZPKSB7CiAJCXN0cnVjdCBsbGNfcGt0aW5mbyBpbmZvOwogCisJ CW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKGluZm8pKTsKIAkJaW5mby5scGlfaWZpbmRleCA9IGxs Y19zayhza2ItPnNrKS0+ZGV2LT5pZmluZGV4OwogCQlsbGNfcGR1X2RlY29kZV9kc2FwKHNrYiwg JmluZm8ubHBpX3NhcCk7CiAJCWxsY19wZHVfZGVjb2RlX2RhKHNrYiwgaW5mby5scGlfbWFjKTsK LS0gCjIuMS4wCgoKRnJvbSA0ZTFhMmE0YTBkNjZhYmY4MjRiNzZmN2Y0ZWEzNWYxMDM4YjVjNDEy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLYW5namllIEx1IDxrYW5namllbHVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDMgTWF5IDIwMTYgMTY6NDY6MjQgLTA0MDAKU3ViamVjdDogW1BB VENIIDI5LzM4XSBuZXQ6IGZpeCBpbmZvbGVhayBpbiBydG5ldGxpbmsKTUlNRS1WZXJzaW9uOiAx LjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNm ZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDVmOGU0NDc0MWY5ZjIxNmUzMzcz NmVhNGVjNjVjYTlhYzAzMDM2ZTYgXQoKVGhlIHN0YWNrIG9iamVjdCDigJxtYXDigJ0gaGFzIGEg dG90YWwgc2l6ZSBvZiAzMiBieXRlcy4gSXRzIGxhc3QgNApieXRlcyBhcmUgcGFkZGluZyBnZW5l cmF0ZWQgYnkgY29tcGlsZXIuIFRoZXNlIHBhZGRpbmcgYnl0ZXMgYXJlCm5vdCBpbml0aWFsaXpl ZCBhbmQgc2VudCBvdXQgdmlhIOKAnG5sYV9wdXTigJ0uCgpTaWduZWQtb2ZmLWJ5OiBLYW5namll IEx1IDxramx1QGdhdGVjaC5lZHU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9ydG5ldGxpbmsuYyB8IDE4ICsrKysrKysr KystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMgYi9uZXQvY29yZS9ydG5ldGxp bmsuYwppbmRleCBjYTk2NmY3Li44N2I5MWZmIDEwMDY0NAotLS0gYS9uZXQvY29yZS9ydG5ldGxp bmsuYworKysgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwpAQCAtMTE3NSwxNCArMTE3NSwxNiBAQCBz dGF0aWMgbm9pbmxpbmVfZm9yX3N0YWNrIGludCBydG5sX2ZpbGxfdmZpbmZvKHN0cnVjdCBza19i dWZmICpza2IsCiAKIHN0YXRpYyBpbnQgcnRubF9maWxsX2xpbmtfaWZtYXAoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgcnRubF9saW5rX2lm bWFwIG1hcCA9IHsKLQkJLm1lbV9zdGFydCAgID0gZGV2LT5tZW1fc3RhcnQsCi0JCS5tZW1fZW5k ICAgICA9IGRldi0+bWVtX2VuZCwKLQkJLmJhc2VfYWRkciAgID0gZGV2LT5iYXNlX2FkZHIsCi0J CS5pcnEgICAgICAgICA9IGRldi0+aXJxLAotCQkuZG1hICAgICAgICAgPSBkZXYtPmRtYSwKLQkJ LnBvcnQgICAgICAgID0gZGV2LT5pZl9wb3J0LAotCX07CisJc3RydWN0IHJ0bmxfbGlua19pZm1h cCBtYXA7CisKKwltZW1zZXQoJm1hcCwgMCwgc2l6ZW9mKG1hcCkpOworCW1hcC5tZW1fc3RhcnQg ICA9IGRldi0+bWVtX3N0YXJ0OworCW1hcC5tZW1fZW5kICAgICA9IGRldi0+bWVtX2VuZDsKKwlt YXAuYmFzZV9hZGRyICAgPSBkZXYtPmJhc2VfYWRkcjsKKwltYXAuaXJxICAgICAgICAgPSBkZXYt PmlycTsKKwltYXAuZG1hICAgICAgICAgPSBkZXYtPmRtYTsKKwltYXAucG9ydCAgICAgICAgPSBk ZXYtPmlmX3BvcnQ7CisKIAlpZiAobmxhX3B1dChza2IsIElGTEFfTUFQLCBzaXplb2YobWFwKSwg Jm1hcCkpCiAJCXJldHVybiAtRU1TR1NJWkU7CiAKLS0gCjIuMS4wCgoKRnJvbSBjOWFmYzI4Zjll ODNmZjNhMWYzYzA4Nzk0MDZjYmM3MTQxYmI3MjQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgSnVyZ2VucyA8ZGFuaWVsakBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgNCBN YXkgMjAxNiAxNTowMDozMyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzAvMzhdIG5ldC9tbHg0X2Vu OiBGaXggZW5kaWFubmVzcyBidWcgaW4gSVBWNiBjc3VtCiBjYWxjdWxhdGlvbgoKWyBVcHN0cmVh bSBjb21taXQgODJkNjkyMDNkZjYzNGI0ZGZhNzY1Yzk0ZjYwY2U5NDgyYmNjNDRkNiBdCgpVc2Ug aHRvbnMgaW5zdGVhZCBvZiB1bmNvbmRpdGlvbmFsbHkgYnl0ZSBzd2FwcGluZyBuZXh0aGRyLiAg T24gYSBsaXR0bGUKZW5kaWFuIHN5c3RlbXMgc2hpZnRpbmcgdGhlIGJ5dGUgaXMgY29ycmVjdCBi ZWhhdmlvciwgYnV0IGl0IHJlc3VsdHMgaW4KaW5jb3JyZWN0IGNzdW1zIG9uIGJpZyBlbmRpYW4g YXJjaGl0ZWN0dXJlcy4KCkZpeGVzOiBmOGM2NDU1YmIwNGIgKCduZXQvbWx4NF9lbjogRXh0ZW5k IGNoZWNrc3VtIG9mZmxvYWRpbmcgYnkgQ0hFQ0tTVU0gQ09NUExFVEUnKQpTaWduZWQtb2ZmLWJ5 OiBEYW5pZWwgSnVyZ2VucyA8ZGFuaWVsakBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBDYXJv bCBTb3RvIDxjbHNvdG9AdXMuaWJtLmNvbT4KVGVzdGVkLWJ5OiBDYXJvbCBTb3RvIDxjbHNvdG9A dXMuaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jCmluZGV4IGU3YTUwMDAuLmJiZmY4ZWMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMKQEAgLTcwNCw3 ICs3MDQsNyBAQCBzdGF0aWMgaW50IGdldF9maXhlZF9pcHY2X2NzdW0oX193c3VtIGh3X2NoZWNr c3VtLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJaWYgKGlwdjZoLT5uZXh0aGRyID09IElQUFJP VE9fRlJBR01FTlQgfHwgaXB2NmgtPm5leHRoZHIgPT0gSVBQUk9UT19IT1BPUFRTKQogCQlyZXR1 cm4gLTE7Ci0JaHdfY2hlY2tzdW0gPSBjc3VtX2FkZChod19jaGVja3N1bSwgKF9fZm9yY2UgX193 c3VtKShpcHY2aC0+bmV4dGhkciA8PCA4KSk7CisJaHdfY2hlY2tzdW0gPSBjc3VtX2FkZChod19j aGVja3N1bSwgKF9fZm9yY2UgX193c3VtKWh0b25zKGlwdjZoLT5uZXh0aGRyKSk7CiAKIAljc3Vt X3BzZXVkb19oZHIgPSBjc3VtX3BhcnRpYWwoJmlwdjZoLT5zYWRkciwKIAkJCQkgICAgICAgc2l6 ZW9mKGlwdjZoLT5zYWRkcikgKyBzaXplb2YoaXB2NmgtPmRhZGRyKSwgMCk7Ci0tIAoyLjEuMAoK CkZyb20gN2E3NDdkN2YyNDcwYzY0NzI2MzVjYmFiMzY5YjA5NTRjNGM1Mjc2NSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSWFuIENhbXBiZWxsIDxpYW4uY2FtcGJlbGxAZG9ja2VyLmNv bT4KRGF0ZTogV2VkLCA0IE1heSAyMDE2IDE0OjIxOjUzICswMTAwClN1YmplY3Q6IFtQQVRDSCAz MS8zOF0gVlNPQ0s6IGRvIG5vdCBkaXNjb25uZWN0IHNvY2tldCB3aGVuIHBlZXIgaGFzIHNodXRk b3duCiBTRU5EIG9ubHkKClsgVXBzdHJlYW0gY29tbWl0IGRlZGM1OGUwNjdkOGMzNzlhMTVhOGEx ODNjNWRiMzE4MjAxMjk1YmIgXQoKVGhlIHBlZXIgbWF5IGJlIGV4cGVjdGluZyBhIHJlcGx5IGhh dmluZyBzZW50IGEgcmVxdWVzdCBhbmQgdGhlbiBkb25lIGEKc2h1dGRvd24oU0hVVF9XUiksIHNv IHRlYXJpbmcgZG93biB0aGUgd2hvbGUgc29ja2V0IGF0IHRoaXMgcG9pbnQgc2VlbXMKd3Jvbmcg YW5kIGJyZWFrcyBmb3IgbWUgd2l0aCBhIGNsaWVudCB3aGljaCBkb2VzIGEgU0hVVF9XUi4KCkxv b2tpbmcgYXQgb3RoZXIgc29ja2V0IGZhbWlseSdzIHN0cmVhbV9yZWN2bXNnIGNhbGxiYWNrcyBk b2luZyBhIHNodXRkb3duCmhlcmUgZG9lcyBub3Qgc2VlbSB0byBiZSB0aGUgbm9ybSBhbmQgcmVt b3ZpbmcgaXQgZG9lcyBub3Qgc2VlbSB0byBoYXZlCmhhZCBhbnkgYWR2ZXJzZSBlZmZlY3RzIHRo YXQgSSBjYW4gc2VlLgoKSSdtIHVzaW5nIFN0ZWZhbidzIFJGQyB2aXJ0aW8gdHJhbnNwb3J0IHBh dGNoZXMsIEknbSB1bnN1cmUgb2YgdGhlIGltcGFjdApvbiB0aGUgdm1jaSB0cmFuc3BvcnQuCgpT aWduZWQtb2ZmLWJ5OiBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBkb2NrZXIuY29tPgpDYzog IkRhdmlkIFMuIE1pbGxlciIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CkNjOiBTdGVmYW4gSGFqbm9j emkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+CkNjOiBDbGF1ZGlvIEltYnJlbmRhIDxpbWJyZW5kYUBs aW51eC52bmV0LmlibS5jb20+CkNjOiBBbmR5IEtpbmcgPGFja2luZ0B2bXdhcmUuY29tPgpDYzog RG1pdHJ5IFRvcm9raG92IDxkdG9yQHZtd2FyZS5jb20+CkNjOiBKb3JnZW4gSGFuc2VuIDxqaGFu c2VuQHZtd2FyZS5jb20+CkNjOiBBZGl0IFJhbmFkaXZlIDxhZGl0ckB2bXdhcmUuY29tPgpDYzog bmV0ZGV2QHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Ztd192c29jay9hZl92c29jay5jIHwgMjEgKy0t LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIwIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC92bXdfdnNvY2svYWZfdnNvY2suYyBiL25ldC92 bXdfdnNvY2svYWZfdnNvY2suYwppbmRleCA3ZmQxMjIwLi45YjViZDZkIDEwMDY0NAotLS0gYS9u ZXQvdm13X3Zzb2NrL2FmX3Zzb2NrLmMKKysrIGIvbmV0L3Ztd192c29jay9hZl92c29jay5jCkBA IC0xNzk0LDI3ICsxNzk0LDggQEAgdnNvY2tfc3RyZWFtX3JlY3Ztc2coc3RydWN0IHNvY2tldCAq c29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuLAogCWVsc2UgaWYgKHNrLT5za19z aHV0ZG93biAmIFJDVl9TSFVURE9XTikKIAkJZXJyID0gMDsKIAotCWlmIChjb3BpZWQgPiAwKSB7 Ci0JCS8qIFdlIG9ubHkgZG8gdGhlc2UgYWRkaXRpb25hbCBib29ra2VlcGluZy9ub3RpZmljYXRp b24gc3RlcHMKLQkJICogaWYgd2UgYWN0dWFsbHkgY29waWVkIHNvbWV0aGluZyBvdXQgb2YgdGhl IHF1ZXVlIHBhaXIKLQkJICogaW5zdGVhZCBvZiBqdXN0IHBlZWtpbmcgYWhlYWQuCi0JCSAqLwot Ci0JCWlmICghKGZsYWdzICYgTVNHX1BFRUspKSB7Ci0JCQkvKiBJZiB0aGUgb3RoZXIgc2lkZSBo YXMgc2h1dGRvd24gZm9yIHNlbmRpbmcgYW5kIHRoZXJlCi0JCQkgKiBpcyBub3RoaW5nIG1vcmUg dG8gcmVhZCwgdGhlbiBtb2RpZnkgdGhlIHNvY2tldAotCQkJICogc3RhdGUuCi0JCQkgKi8KLQkJ CWlmICh2c2stPnBlZXJfc2h1dGRvd24gJiBTRU5EX1NIVVRET1dOKSB7Ci0JCQkJaWYgKHZzb2Nr X3N0cmVhbV9oYXNfZGF0YSh2c2spIDw9IDApIHsKLQkJCQkJc2stPnNrX3N0YXRlID0gU1NfVU5D T05ORUNURUQ7Ci0JCQkJCXNvY2tfc2V0X2ZsYWcoc2ssIFNPQ0tfRE9ORSk7Ci0JCQkJCXNrLT5z a19zdGF0ZV9jaGFuZ2Uoc2spOwotCQkJCX0KLQkJCX0KLQkJfQorCWlmIChjb3BpZWQgPiAwKQog CQllcnIgPSBjb3BpZWQ7Ci0JfQogCiBvdXRfd2FpdDoKIAlmaW5pc2hfd2FpdChza19zbGVlcChz ayksICZ3YWl0KTsKLS0gCjIuMS4wCgoKRnJvbSA4YjhjY2EzNDljMGNkYWRmY2YzNzhhYmEyODFm ZmQ1ODNlNmE2ZTE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtz YW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFdlZCwgNCBNYXkgMjAx NiAxNjoxODo0NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzIvMzhdIG5ldDogYnJpZGdlOiBmaXgg b2xkIGlvY3RsIHVubG9ja2VkIG5ldCBkZXZpY2Ugd2FsawoKWyBVcHN0cmVhbSBjb21taXQgMzFj YTA0NThhNjFhNTAyYWRiN2VkMTkyYmY5NzE2YzZkMDU3OTFhNSBdCgpnZXRfYnJpZGdlX2lmaW5k aWNlcygpIGlzIHVzZWQgZnJvbSB0aGUgb2xkICJkZXZpY2VsZXNzIiBicmlkZ2UgaW9jdGwKY2Fs bHMgd2hpY2ggYXJlbid0IGNhbGxlZCB3aXRoIHJ0bmwgaGVsZC4gVGhlIGNvbW1lbnQgYWJvdmUg c2F5cyB0aGF0IGl0IGlzCmNhbGxlZCB3aXRoIHJ0bmwgYnV0IHRoYXQgaXMgbm90IHJlYWxseSB0 aGUgY2FzZS4KSGVyZSdzIGEgc2FtcGxlIG91dHB1dCBmcm9tIGEgdGVzdCBBU1NFUlRfUlROTCgp IHdoaWNoIEkgcHV0IGluCmdldF9icmlkZ2VfaWZpbmRpY2VzIGFuZCBleGVjdXRlZCAiYnJjdGwg c2hvdyI6ClsgIDk1Ny40MjI3MjZdIFJUTkw6IGFzc2VydGlvbiBmYWlsZWQgYXQgbmV0L2JyaWRn ZS8vYnJfaW9jdGwuYyAoMzApClsgIDk1Ny40MjI5MjVdIENQVTogMCBQSUQ6IDE4NjIgQ29tbTog YnJjdGwgVGFpbnRlZDogRyAgICAgICAgVyAgTwo0LjYuMC1yYzQrICMxNTcKWyAgOTU3LjQyMzAw OV0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5Niks CkJJT1MgMS44LjEtMjAxNTAzMThfMTgzMzU4LSAwNC8wMS8yMDE0ClsgIDk1Ny40MjMwMDldICAw MDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAwNThhZGZkZjAgZmZmZmZmZmY4MTM4ZGVjNQowMDAwMDAw MDAwMDAwNDAwClsgIDk1Ny40MjMwMDldICBmZmZmZmZmZjgxY2U4MzgwIGZmZmY4ODAwNThhZGZl NTggZmZmZmZmZmZhMDVlYWQzMgowMDAwMDAwMDAwMDAwMDAxClsgIDk1Ny40MjMwMDldICAwMDAw N2ZmZWMxYTQ0NGIwIDAwMDAwMDAwMDAwMDA0MDAgZmZmZjg4MDA1M2MxOTEzMAowMDAwMDAwMDAw MDA4OTQwClsgIDk1Ny40MjMwMDldIENhbGwgVHJhY2U6ClsgIDk1Ny40MjMwMDldICBbPGZmZmZm ZmZmODEzOGRlYzU+XSBkdW1wX3N0YWNrKzB4ODUvMHhjMApbICA5NTcuNDIzMDA5XSAgWzxmZmZm ZmZmZmEwNWVhZDMyPl0KYnJfaW9jdGxfZGV2aWNlbGVzc19zdHViKzB4MjEyLzB4MmUwIFticmlk Z2VdClsgIDk1Ny40MjMwMDldICBbPGZmZmZmZmZmODE1MTViZWI+XSBzb2NrX2lvY3RsKzB4MjJi LzB4MjkwClsgIDk1Ny40MjMwMDldICBbPGZmZmZmZmZmODEyNmJhNzU+XSBkb192ZnNfaW9jdGwr MHg5NS8weDcwMApbICA5NTcuNDIzMDA5XSAgWzxmZmZmZmZmZjgxMjZjMTU5Pl0gU3lTX2lvY3Rs KzB4NzkvMHg5MApbICA5NTcuNDIzMDA5XSAgWzxmZmZmZmZmZjgxNjNhNGMwPl0gZW50cnlfU1lT Q0FMTF82NF9mYXN0cGF0aCsweDIzLzB4YzEKClNpbmNlIGl0IG9ubHkgcmVhZHMgYnJpZGdlIGlm aW5kaWNlcywgd2UgY2FuIHVzZSByY3UgdG8gc2FmZWx5IHdhbGsgdGhlIG5ldApkZXZpY2UgbGlz dC4gQWxzbyByZW1vdmUgdGhlIHdyb25nIHJ0bmwgY29tbWVudCBhYm92ZS4KClNpZ25lZC1vZmYt Ynk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9icmlkZ2UvYnJfaW9jdGwuYyB8IDUgKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9pb2N0bC5j IGIvbmV0L2JyaWRnZS9icl9pb2N0bC5jCmluZGV4IDI2M2I0ZGUuLjYwYTNkYmYgMTAwNjQ0Ci0t LSBhL25ldC9icmlkZ2UvYnJfaW9jdGwuYworKysgYi9uZXQvYnJpZGdlL2JyX2lvY3RsLmMKQEAg LTIxLDE4ICsyMSwxOSBAQAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSAiYnJf cHJpdmF0ZS5oIgogCi0vKiBjYWxsZWQgd2l0aCBSVE5MICovCiBzdGF0aWMgaW50IGdldF9icmlk Z2VfaWZpbmRpY2VzKHN0cnVjdCBuZXQgKm5ldCwgaW50ICppbmRpY2VzLCBpbnQgbnVtKQogewog CXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7CiAJaW50IGkgPSAwOwogCi0JZm9yX2VhY2hfbmV0ZGV2 KG5ldCwgZGV2KSB7CisJcmN1X3JlYWRfbG9jaygpOworCWZvcl9lYWNoX25ldGRldl9yY3UobmV0 LCBkZXYpIHsKIAkJaWYgKGkgPj0gbnVtKQogCQkJYnJlYWs7CiAJCWlmIChkZXYtPnByaXZfZmxh Z3MgJiBJRkZfRUJSSURHRSkKIAkJCWluZGljZXNbaSsrXSA9IGRldi0+aWZpbmRleDsKIAl9CisJ cmN1X3JlYWRfdW5sb2NrKCk7CiAKIAlyZXR1cm4gaTsKIH0KLS0gCjIuMS4wCgoKRnJvbSBiODY0 MmNjMGEwZDYyNmEzYmVjMmM0YjdlMGM1NDI1ZDI4NzQ4YWE0IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/TGludXM9MjBMPUMzPUJDc3Npbmc/PSA8bGludXMubHVlc3Np bmdAYzBkMy5ibHVlPgpEYXRlOiBXZWQsIDQgTWF5IDIwMTYgMTc6MjU6MDIgKzAyMDAKU3ViamVj dDogW1BBVENIIDMzLzM4XSBicmlkZ2U6IGZpeCBpZ21wIC8gbWxkIHF1ZXJ5IHBhcnNpbmcKTUlN RS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNv bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDg1NmNlNWQw ODNlMTQ1NzFkMDUxMzAxZmUzYzY1YjMyYjhjYmUzMjEgXQoKV2l0aCB0aGUgbmV3bHkgaW50cm9k dWNlZCBoZWxwZXIgZnVuY3Rpb25zIHRoZSBza2IgcHVsbGluZyBpcyBoaWRkZW4KaW4gdGhlIGNo ZWNrc3VtbWluZyBmdW5jdGlvbiAtIGFuZCB1bmRvbmUgYmVmb3JlIHJldHVybmluZyB0byB0aGUK Y2FsbGVyLgoKVGhlIElHTVAgYW5kIE1MRCBxdWVyeSBwYXJzaW5nIGZ1bmN0aW9ucyBpbiB0aGUg YnJpZGdlIHN0aWxsCmFzc3VtZWQgdGhhdCB0aGUgc2tiIGlzIHBvaW50aW5nIHRvIHRoZSBiZWdp bm5pbmcgb2YgdGhlIElHTVAvTUxECm1lc3NhZ2Ugd2hpbGUgaXQgaXMgbm93IGtlcHQgYXQgdGhl IGJlZ2lubmluZyBvZiB0aGUgSVB2NC82IGhlYWRlci4KCklmIHRoZXJlIGlzIGEgcXVlcmllciBz b21ld2hlcmUgZWxzZSwgdGhlbiB0aGlzIGVpdGhlciBjYXVzZXMKdGhlIG11bHRpY2FzdCBzbm9v cGluZyB0byBzdGF5IGRpc2FibGVkIGV2ZW4gdGhvdWdoIGl0IGNvdWxkIGJlCmVuYWJsZWQuIE9y LCBpZiB3ZSBoYXZlIHRoZSBxdWVyaWVyIGVuYWJsZWQgdG9vLCB0aGVuIHRoaXMgY2FuCmNyZWF0 ZSB1bm5lY2Vzc2FyeSBJR01QIC8gTUxEIHF1ZXJ5IG1lc3NhZ2VzIG9uIHRoZSBsaW5rLgoKRml4 aW5nIHRoaXMgYnkgdGFraW5nIHRoZSBvZmZzZXQgYmV0d2VlbiBJUCBhbmQgSUdNUC9NTEQgaGVh ZGVyIGludG8KYWNjb3VudCwgdG9vLgoKRml4ZXM6IDlhZmQ4NWM5ZTQ1NSAoIm5ldDogRXhwb3J0 IElHTVAvTUxEIG1lc3NhZ2UgdmFsaWRhdGlvbiBjb2RlIikKUmVwb3J0ZWQtYnk6IFNpbW9uIFd1 bmRlcmxpY2ggPHN3QHNpbW9ud3VuZGVybGljaC5kZT4KU2lnbmVkLW9mZi1ieTogTGludXMgTMO8 c3NpbmcgPGxpbnVzLmx1ZXNzaW5nQGMwZDMuYmx1ZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2UvYnJfbXVsdGljYXN0 LmMgfCAxMiArKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyBiL25l dC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKaW5kZXggMDM2NjFkOS4uZWE5ODkzNyAxMDA2NDQKLS0t IGEvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYworKysgYi9uZXQvYnJpZGdlL2JyX211bHRpY2Fz dC5jCkBAIC0xMjcwLDYgKzEyNzAsNyBAQCBzdGF0aWMgaW50IGJyX2lwNF9tdWx0aWNhc3RfcXVl cnkoc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCXN0cnVjdCBicl9pcCBzYWRkcjsKIAl1bnNpZ25l ZCBsb25nIG1heF9kZWxheTsKIAl1bnNpZ25lZCBsb25nIG5vdyA9IGppZmZpZXM7CisJdW5zaWdu ZWQgaW50IG9mZnNldCA9IHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYik7CiAJX19iZTMyIGdyb3Vw OwogCWludCBlcnIgPSAwOwogCkBAIC0xMjgwLDE0ICsxMjgxLDE0IEBAIHN0YXRpYyBpbnQgYnJf aXA0X211bHRpY2FzdF9xdWVyeShzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiAKIAlncm91cCA9IGlo LT5ncm91cDsKIAotCWlmIChza2ItPmxlbiA9PSBzaXplb2YoKmloKSkgeworCWlmIChza2ItPmxl biA9PSBvZmZzZXQgKyBzaXplb2YoKmloKSkgewogCQltYXhfZGVsYXkgPSBpaC0+Y29kZSAqIChI WiAvIElHTVBfVElNRVJfU0NBTEUpOwogCiAJCWlmICghbWF4X2RlbGF5KSB7CiAJCQltYXhfZGVs YXkgPSAxMCAqIEhaOwogCQkJZ3JvdXAgPSAwOwogCQl9Ci0JfSBlbHNlIGlmIChza2ItPmxlbiA+ PSBzaXplb2YoKmloMykpIHsKKwl9IGVsc2UgaWYgKHNrYi0+bGVuID49IG9mZnNldCArIHNpemVv ZigqaWgzKSkgewogCQlpaDMgPSBpZ21wdjNfcXVlcnlfaGRyKHNrYik7CiAJCWlmIChpaDMtPm5z cmNzKQogCQkJZ290byBvdXQ7CkBAIC0xMzQ4LDYgKzEzNDksNyBAQCBzdGF0aWMgaW50IGJyX2lw Nl9tdWx0aWNhc3RfcXVlcnkoc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCXN0cnVjdCBicl9pcCBz YWRkcjsKIAl1bnNpZ25lZCBsb25nIG1heF9kZWxheTsKIAl1bnNpZ25lZCBsb25nIG5vdyA9IGpp ZmZpZXM7CisJdW5zaWduZWQgaW50IG9mZnNldCA9IHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYik7 CiAJY29uc3Qgc3RydWN0IGluNl9hZGRyICpncm91cCA9IE5VTEw7CiAJYm9vbCBpc19nZW5lcmFs X3F1ZXJ5OwogCWludCBlcnIgPSAwOwpAQCAtMTM1Nyw4ICsxMzU5LDggQEAgc3RhdGljIGludCBi cl9pcDZfbXVsdGljYXN0X3F1ZXJ5KHN0cnVjdCBuZXRfYnJpZGdlICpiciwKIAkgICAgKHBvcnQg JiYgcG9ydC0+c3RhdGUgPT0gQlJfU1RBVEVfRElTQUJMRUQpKQogCQlnb3RvIG91dDsKIAotCWlm IChza2ItPmxlbiA9PSBzaXplb2YoKm1sZCkpIHsKLQkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwg c2l6ZW9mKCptbGQpKSkgeworCWlmIChza2ItPmxlbiA9PSBvZmZzZXQgKyBzaXplb2YoKm1sZCkp IHsKKwkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgb2Zmc2V0ICsgc2l6ZW9mKCptbGQpKSkgewog CQkJZXJyID0gLUVJTlZBTDsKIAkJCWdvdG8gb3V0OwogCQl9CkBAIC0xMzY3LDcgKzEzNjksNyBA QCBzdGF0aWMgaW50IGJyX2lwNl9tdWx0aWNhc3RfcXVlcnkoc3RydWN0IG5ldF9icmlkZ2UgKmJy LAogCQlpZiAobWF4X2RlbGF5KQogCQkJZ3JvdXAgPSAmbWxkLT5tbGRfbWNhOwogCX0gZWxzZSB7 Ci0JCWlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZigqbWxkMnEpKSkgeworCQlpZiAoIXBz a2JfbWF5X3B1bGwoc2tiLCBvZmZzZXQgKyBzaXplb2YoKm1sZDJxKSkpIHsKIAkJCWVyciA9IC1F SU5WQUw7CiAJCQlnb3RvIG91dDsKIAkJfQotLSAKMi4xLjAKCgpGcm9tIDczMGM0OGExZmJlNzg2 Mjg5ODE1ZmNhYjA3YzZkOTZhMzZkYjE0YTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IE1pa2tvIFJhcGVsaSA8bWlra28ucmFwZWxpQGlraS5maT4KRGF0ZTogU3VuLCAyNCBBcHIgMjAx NiAxNzo0NTowMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzQvMzhdIHVhcGkgZ2xpYmMgY29tcGF0 OiBmaXggY29tcGlsZSBlcnJvcnMgd2hlbiBnbGliYwogbmV0L2lmLmggaW5jbHVkZWQgYmVmb3Jl IGxpbnV4L2lmLmgKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBj aGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0g Y29tbWl0IDRhOTFjYjYxYmI5OTVlNTU3MTA5ODE4ODA5MmUyOTYxOTIzMDljNzcgXQoKZ2xpYmMn cyBuZXQvaWYuaCBjb250YWlucyBjb3BpZXMgb2YgZGVmaW5pdGlvbnMgZnJvbSBsaW51eC9pZi5o IGFuZCB0aGVzZQpjb25mbGljdCBhbmQgY2F1c2UgYnVpbGQgZmFpbHVyZXMgaWYgYm90aCBmaWxl cyBhcmUgaW5jbHVkZWQgYnkgYXBwbGljYXRpb24Kc291cmNlIGNvZGUuIENoYW5nZXMgaW4gdWFw aSBoZWFkZXJzLCB3aGljaCBmaXhlZCBoZWFkZXIgZmlsZSBkZXBlbmRlbmNpZXMgdG8KaW5jbHVk ZSBsaW51eC9pZi5oIHdoZW4gaXQgd2FzIG5lZWRlZCwgZS5nLiBjb21taXQgMWZmYWQ4M2QsIG1h ZGUgdGhlCm5ldC9pZi5oIGFuZCBsaW51eC9pZi5oIGluY29tcGF0aWJpbGl0aWVzIHZpc2libGUg YXMgYnVpbGQgZmFpbHVyZXMgZm9yCnVzZXJzcGFjZSBhcHBsaWNhdGlvbnMgbGlrZSBpcHJvdXRl MiBhbmQgeHRhYmxlcy1hZGRvbnMuCgpUaGlzIHBhdGNoIGZpeGVzIGNvbXBpbGUgZXJyb3JzIHdo ZW4gZ2xpYmMgbmV0L2lmLmggaXMgaW5jbHVkZWQgYmVmb3JlCmxpbnV4L2lmLmg6CgouL2xpbnV4 L2lmLmg6OTk6MjE6IGVycm9yOiByZWRlY2xhcmF0aW9uIG9mIGVudW1lcmF0b3Ig4oCYSUZGX05P QVJQ4oCZCi4vbGludXgvaWYuaDo5ODoyMzogZXJyb3I6IHJlZGVjbGFyYXRpb24gb2YgZW51bWVy YXRvciDigJhJRkZfUlVOTklOR+KAmQouL2xpbnV4L2lmLmg6OTc6MjY6IGVycm9yOiByZWRlY2xh cmF0aW9uIG9mIGVudW1lcmF0b3Ig4oCYSUZGX05PVFJBSUxFUlPigJkKLi9saW51eC9pZi5oOjk2 OjI3OiBlcnJvcjogcmVkZWNsYXJhdGlvbiBvZiBlbnVtZXJhdG9yIOKAmElGRl9QT0lOVE9QT0lO VOKAmQouL2xpbnV4L2lmLmg6OTU6MjQ6IGVycm9yOiByZWRlY2xhcmF0aW9uIG9mIGVudW1lcmF0 b3Ig4oCYSUZGX0xPT1BCQUNL4oCZCi4vbGludXgvaWYuaDo5NDoyMTogZXJyb3I6IHJlZGVjbGFy YXRpb24gb2YgZW51bWVyYXRvciDigJhJRkZfREVCVUfigJkKLi9saW51eC9pZi5oOjkzOjI1OiBl cnJvcjogcmVkZWNsYXJhdGlvbiBvZiBlbnVtZXJhdG9yIOKAmElGRl9CUk9BRENBU1TigJkKLi9s aW51eC9pZi5oOjkyOjE5OiBlcnJvcjogcmVkZWNsYXJhdGlvbiBvZiBlbnVtZXJhdG9yIOKAmElG Rl9VUOKAmQouL2xpbnV4L2lmLmg6MjUyOjg6IGVycm9yOiByZWRlZmluaXRpb24gb2Yg4oCYc3Ry dWN0IGlmY29uZuKAmQouL2xpbnV4L2lmLmg6MjAzOjg6IGVycm9yOiByZWRlZmluaXRpb24gb2Yg 4oCYc3RydWN0IGlmcmVx4oCZCi4vbGludXgvaWYuaDoxNjk6ODogZXJyb3I6IHJlZGVmaW5pdGlv biBvZiDigJhzdHJ1Y3QgaWZtYXDigJkKLi9saW51eC9pZi5oOjEwNzoyMzogZXJyb3I6IHJlZGVj bGFyYXRpb24gb2YgZW51bWVyYXRvciDigJhJRkZfRFlOQU1JQ+KAmQouL2xpbnV4L2lmLmg6MTA2 OjI1OiBlcnJvcjogcmVkZWNsYXJhdGlvbiBvZiBlbnVtZXJhdG9yIOKAmElGRl9BVVRPTUVESUHi gJkKLi9saW51eC9pZi5oOjEwNToyMzogZXJyb3I6IHJlZGVjbGFyYXRpb24gb2YgZW51bWVyYXRv ciDigJhJRkZfUE9SVFNFTOKAmQouL2xpbnV4L2lmLmg6MTA0OjI1OiBlcnJvcjogcmVkZWNsYXJh dGlvbiBvZiBlbnVtZXJhdG9yIOKAmElGRl9NVUxUSUNBU1TigJkKLi9saW51eC9pZi5oOjEwMzoy MTogZXJyb3I6IHJlZGVjbGFyYXRpb24gb2YgZW51bWVyYXRvciDigJhJRkZfU0xBVkXigJkKLi9s aW51eC9pZi5oOjEwMjoyMjogZXJyb3I6IHJlZGVjbGFyYXRpb24gb2YgZW51bWVyYXRvciDigJhJ RkZfTUFTVEVS4oCZCi4vbGludXgvaWYuaDoxMDE6MjQ6IGVycm9yOiByZWRlY2xhcmF0aW9uIG9m IGVudW1lcmF0b3Ig4oCYSUZGX0FMTE1VTFRJ4oCZCi4vbGludXgvaWYuaDoxMDA6MjM6IGVycm9y OiByZWRlY2xhcmF0aW9uIG9mIGVudW1lcmF0b3Ig4oCYSUZGX1BST01JU0PigJkKClRoZSBjYXNl cyB3aGVyZSBsaW51eC9pZi5oIGlzIGluY2x1ZGVkIGJlZm9yZSBuZXQvaWYuaCBuZWVkIGEgc2lt aWxhciBmaXggaW4KdGhlIGdsaWJjIHNpZGUsIG9yIHRoZSBvcmRlciBvZiBpbmNsdWRlIGZpbGVz IGNhbiBiZSBjaGFuZ2VkIHVzZXJzcGFjZQpjb2RlIGFzIGEgd29ya2Fyb3VuZC4KClRoaXMgY2hh bmdlIHdhcyB0ZXN0ZWQgaW4geDg2IHVzZXJzcGFjZSBvbiBEZWJpYW4gdW5zdGFibGUgd2l0aApz Y3JpcHRzL2hlYWRlcnNfY29tcGlsZV90ZXN0LnNoOgoKJCBtYWtlIGhlYWRlcnNfaW5zdGFsbCAm JiBcCiAgY2QgdXNyL2luY2x1ZGUgJiYgLi4vLi4vc2NyaXB0cy9oZWFkZXJzX2NvbXBpbGVfdGVz dC5zaCAtbCAtawouLi4KY2MgLVdhbGwgLWMgLW5vc3RkaW5jIC1JIC91c3IvbGliL2djYy9pNTg2 LWxpbnV4LWdudS81L2luY2x1ZGUgLUkgL3Vzci9saWIvZ2NjL2k1ODYtbGludXgtZ251LzUvaW5j bHVkZS1maXhlZCAtSSAuIC1JIC9ob21lL21jZnJpc2svc3JjL2xpbnV4LTIuNi91c3IvaGVhZGVy c19jb21waWxlX3Rlc3RfaW5jbHVkZS4ydVgyekggLUkgL2hvbWUvbWNmcmlzay9zcmMvbGludXgt Mi42L3Vzci9oZWFkZXJzX2NvbXBpbGVfdGVzdF9pbmNsdWRlLjJ1WDJ6SC9pNTg2LWxpbnV4LWdu dSAtbyAvZGV2L251bGwgLi9saW51eC9pZi5oX2xpYmNfYmVmb3JlX2tlcm5lbC5oClBBU1NFRCBs aWJjIGJlZm9yZSBrZXJuZWwgdGVzdDogLi9saW51eC9pZi5oCgpSZXBvcnRlZC1ieTogSmFuIEVu Z2VsaGFyZHQgPGplbmdlbGhAaW5haS5kZT4KUmVwb3J0ZWQtYnk6IEpvc2ggQm95ZXIgPGp3Ym95 ZXJAZmVkb3JhcHJvamVjdC5vcmc+ClJlcG9ydGVkLWJ5OiBTdGVwaGVuIEhlbW1pbmdlciA8c2hl bW1pbmdAYnJvY2FkZS5jb20+ClJlcG9ydGVkLWJ5OiBXYWxkZW1hciBCcm9ka29yYiA8bWFpbEB3 YWxkZW1hci1icm9ka29yYi5kZT4KQ2M6IEdhYnJpZWwgTGFza2FyIDxnYWJyaWVsQGxzZS5lcGl0 YS5mcj4KU2lnbmVkLW9mZi1ieTogTWlra28gUmFwZWxpIDxtaWtrby5yYXBlbGlAaWtpLmZpPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog aW5jbHVkZS91YXBpL2xpbnV4L2lmLmggICAgICAgICAgfCAyOCArKysrKysrKysrKysrKysrKysr KysrKysrCiBpbmNsdWRlL3VhcGkvbGludXgvbGliYy1jb21wYXQuaCB8IDQ0ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNzIgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pZi5oIGIvaW5jbHVkZS91 YXBpL2xpbnV4L2lmLmgKaW5kZXggOWNmMjM5NC4uNzUyZjVkYyAxMDA2NDQKLS0tIGEvaW5jbHVk ZS91YXBpL2xpbnV4L2lmLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lmLmgKQEAgLTE5LDE0 ICsxOSwyMCBAQAogI2lmbmRlZiBfTElOVVhfSUZfSAogI2RlZmluZSBfTElOVVhfSUZfSAogCisj aW5jbHVkZSA8bGludXgvbGliYy1jb21wYXQuaD4gICAgICAgICAgLyogZm9yIGNvbXBhdGliaWxp dHkgd2l0aCBnbGliYyAqLwogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CQkvKiBmb3IgIl9fa2Vy bmVsX2NhZGRyX3QiIGV0IGFsCSovCiAjaW5jbHVkZSA8bGludXgvc29ja2V0Lmg+CQkvKiBmb3Ig InN0cnVjdCBzb2NrYWRkciIgZXQgYWwJKi8KICNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgkJ LyogZm9yICJfX3VzZXIiIGV0IGFsICAgICAgICAgICAqLwogCisjaWYgX19VQVBJX0RFRl9JRl9J Rk5BTVNJWgogI2RlZmluZQlJRk5BTVNJWgkxNgorI2VuZGlmIC8qIF9fVUFQSV9ERUZfSUZfSUZO QU1TSVogKi8KICNkZWZpbmUJSUZBTElBU1oJMjU2CiAjaW5jbHVkZSA8bGludXgvaGRsYy9pb2N0 bC5oPgogCisvKiBGb3IgZ2xpYmMgY29tcGF0aWJpbGl0eS4gQW4gZW1wdHkgZW51bSBkb2VzIG5v dCBjb21waWxlLiAqLworI2lmIF9fVUFQSV9ERUZfSUZfTkVUX0RFVklDRV9GTEFHU19MT1dFUl9V UF9ET1JNQU5UX0VDSE8gIT0gMCAmJiBcCisgICAgX19VQVBJX0RFRl9JRl9ORVRfREVWSUNFX0ZM QUdTICE9IDAKIC8qKgogICogZW51bSBuZXRfZGV2aWNlX2ZsYWdzIC0gJnN0cnVjdCBuZXRfZGV2 aWNlIGZsYWdzCiAgKgpAQCAtNjgsNiArNzQsOCBAQAogICogQElGRl9FQ0hPOiBlY2hvIHNlbnQg cGFja2V0cy4gVm9sYXRpbGUuCiAgKi8KIGVudW0gbmV0X2RldmljZV9mbGFncyB7CisvKiBmb3Ig Y29tcGF0aWJpbGl0eSB3aXRoIGdsaWJjIG5ldC9pZi5oICovCisjaWYgX19VQVBJX0RFRl9JRl9O RVRfREVWSUNFX0ZMQUdTCiAJSUZGX1VQCQkJCT0gMTw8MCwgIC8qIHN5c2ZzICovCiAJSUZGX0JS T0FEQ0FTVAkJCT0gMTw8MSwgIC8qIHZvbGF0aWxlICovCiAJSUZGX0RFQlVHCQkJPSAxPDwyLCAg Lyogc3lzZnMgKi8KQEAgLTg0LDExICs5MiwxNyBAQCBlbnVtIG5ldF9kZXZpY2VfZmxhZ3Mgewog CUlGRl9QT1JUU0VMCQkJPSAxPDwxMywgLyogc3lzZnMgKi8KIAlJRkZfQVVUT01FRElBCQkJPSAx PDwxNCwgLyogc3lzZnMgKi8KIAlJRkZfRFlOQU1JQwkJCT0gMTw8MTUsIC8qIHN5c2ZzICovCisj ZW5kaWYgLyogX19VQVBJX0RFRl9JRl9ORVRfREVWSUNFX0ZMQUdTICovCisjaWYgX19VQVBJX0RF Rl9JRl9ORVRfREVWSUNFX0ZMQUdTX0xPV0VSX1VQX0RPUk1BTlRfRUNITwogCUlGRl9MT1dFUl9V UAkJCT0gMTw8MTYsIC8qIHZvbGF0aWxlICovCiAJSUZGX0RPUk1BTlQJCQk9IDE8PDE3LCAvKiB2 b2xhdGlsZSAqLwogCUlGRl9FQ0hPCQkJPSAxPDwxOCwgLyogdm9sYXRpbGUgKi8KKyNlbmRpZiAv KiBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0VfRkxBR1NfTE9XRVJfVVBfRE9STUFOVF9FQ0hPICov CiB9OworI2VuZGlmIC8qIF9fVUFQSV9ERUZfSUZfTkVUX0RFVklDRV9GTEFHU19MT1dFUl9VUF9E T1JNQU5UX0VDSE8gIT0gMCAmJiBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0VfRkxBR1MgIT0gMCAq LwogCisvKiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGdsaWJjIG5ldC9pZi5oICovCisjaWYgX19V QVBJX0RFRl9JRl9ORVRfREVWSUNFX0ZMQUdTCiAjZGVmaW5lIElGRl9VUAkJCQlJRkZfVVAKICNk ZWZpbmUgSUZGX0JST0FEQ0FTVAkJCUlGRl9CUk9BRENBU1QKICNkZWZpbmUgSUZGX0RFQlVHCQkJ SUZGX0RFQlVHCkBAIC0xMDUsOSArMTE5LDEzIEBAIGVudW0gbmV0X2RldmljZV9mbGFncyB7CiAj ZGVmaW5lIElGRl9QT1JUU0VMCQkJSUZGX1BPUlRTRUwKICNkZWZpbmUgSUZGX0FVVE9NRURJQQkJ CUlGRl9BVVRPTUVESUEKICNkZWZpbmUgSUZGX0RZTkFNSUMJCQlJRkZfRFlOQU1JQworI2VuZGlm IC8qIF9fVUFQSV9ERUZfSUZfTkVUX0RFVklDRV9GTEFHUyAqLworCisjaWYgX19VQVBJX0RFRl9J Rl9ORVRfREVWSUNFX0ZMQUdTX0xPV0VSX1VQX0RPUk1BTlRfRUNITwogI2RlZmluZSBJRkZfTE9X RVJfVVAJCQlJRkZfTE9XRVJfVVAKICNkZWZpbmUgSUZGX0RPUk1BTlQJCQlJRkZfRE9STUFOVAog I2RlZmluZSBJRkZfRUNITwkJCUlGRl9FQ0hPCisjZW5kaWYgLyogX19VQVBJX0RFRl9JRl9ORVRf REVWSUNFX0ZMQUdTX0xPV0VSX1VQX0RPUk1BTlRfRUNITyAqLwogCiAjZGVmaW5lIElGRl9WT0xB VElMRQkoSUZGX0xPT1BCQUNLfElGRl9QT0lOVE9QT0lOVHxJRkZfQlJPQURDQVNUfElGRl9FQ0hP fFwKIAkJSUZGX01BU1RFUnxJRkZfU0xBVkV8SUZGX1JVTk5JTkd8SUZGX0xPV0VSX1VQfElGRl9E T1JNQU5UKQpAQCAtMTY2LDYgKzE4NCw4IEBAIGVudW0gewogICoJYmVpbmcgdmVyeSBzbWFsbCBt aWdodCBiZSB3b3J0aCBrZWVwaW5nIGZvciBjbGVhbiBjb25maWd1cmF0aW9uLgogICovCiAKKy8q IGZvciBjb21wYXRpYmlsaXR5IHdpdGggZ2xpYmMgbmV0L2lmLmggKi8KKyNpZiBfX1VBUElfREVG X0lGX0lGTUFQCiBzdHJ1Y3QgaWZtYXAgewogCXVuc2lnbmVkIGxvbmcgbWVtX3N0YXJ0OwogCXVu c2lnbmVkIGxvbmcgbWVtX2VuZDsKQEAgLTE3NSw2ICsxOTUsNyBAQCBzdHJ1Y3QgaWZtYXAgewog CXVuc2lnbmVkIGNoYXIgcG9ydDsKIAkvKiAzIGJ5dGVzIHNwYXJlICovCiB9OworI2VuZGlmIC8q IF9fVUFQSV9ERUZfSUZfSUZNQVAgKi8KIAogc3RydWN0IGlmX3NldHRpbmdzIHsKIAl1bnNpZ25l ZCBpbnQgdHlwZTsJLyogVHlwZSBvZiBwaHlzaWNhbCBkZXZpY2Ugb3IgcHJvdG9jb2wgKi8KQEAg LTIwMCw2ICsyMjEsOCBAQCBzdHJ1Y3QgaWZfc2V0dGluZ3MgewogICogcmVtYWluZGVyIG1heSBi ZSBpbnRlcmZhY2Ugc3BlY2lmaWMuCiAgKi8KIAorLyogZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBn bGliYyBuZXQvaWYuaCAqLworI2lmIF9fVUFQSV9ERUZfSUZfSUZSRVEKIHN0cnVjdCBpZnJlcSB7 CiAjZGVmaW5lIElGSFdBRERSTEVOCTYKIAl1bmlvbgpAQCAtMjIzLDYgKzI0Niw3IEBAIHN0cnVj dCBpZnJlcSB7CiAJCXN0cnVjdAlpZl9zZXR0aW5ncyBpZnJ1X3NldHRpbmdzOwogCX0gaWZyX2lm cnU7CiB9OworI2VuZGlmIC8qIF9fVUFQSV9ERUZfSUZfSUZSRVEgKi8KIAogI2RlZmluZSBpZnJf bmFtZQlpZnJfaWZybi5pZnJuX25hbWUJLyogaW50ZXJmYWNlIG5hbWUgCSovCiAjZGVmaW5lIGlm cl9od2FkZHIJaWZyX2lmcnUuaWZydV9od2FkZHIJLyogTUFDIGFkZHJlc3MgCQkqLwpAQCAtMjQ5 LDYgKzI3Myw4IEBAIHN0cnVjdCBpZnJlcSB7CiAgKiBtdXN0IGtub3cgYWxsIG5ldHdvcmtzIGFj Y2Vzc2libGUpLgogICovCiAKKy8qIGZvciBjb21wYXRpYmlsaXR5IHdpdGggZ2xpYmMgbmV0L2lm LmggKi8KKyNpZiBfX1VBUElfREVGX0lGX0lGQ09ORgogc3RydWN0IGlmY29uZiAgewogCWludAlp ZmNfbGVuOwkJCS8qIHNpemUgb2YgYnVmZmVyCSovCiAJdW5pb24gewpAQCAtMjU2LDYgKzI4Miw4 IEBAIHN0cnVjdCBpZmNvbmYgIHsKIAkJc3RydWN0IGlmcmVxIF9fdXNlciAqaWZjdV9yZXE7CiAJ fSBpZmNfaWZjdTsKIH07CisjZW5kaWYgLyogX19VQVBJX0RFRl9JRl9JRkNPTkYgKi8KKwogI2Rl ZmluZQlpZmNfYnVmCWlmY19pZmN1LmlmY3VfYnVmCQkvKiBidWZmZXIgYWRkcmVzcwkqLwogI2Rl ZmluZQlpZmNfcmVxCWlmY19pZmN1LmlmY3VfcmVxCQkvKiBhcnJheSBvZiBzdHJ1Y3R1cmVzCSov CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9saWJjLWNvbXBhdC5oIGIvaW5jbHVk ZS91YXBpL2xpbnV4L2xpYmMtY29tcGF0LmgKaW5kZXggN2QwMjRjZS4uZDVlMzhjNyAxMDA2NDQK LS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2xpYmMtY29tcGF0LmgKKysrIGIvaW5jbHVkZS91YXBp L2xpbnV4L2xpYmMtY29tcGF0LmgKQEAgLTUxLDYgKzUxLDQwIEBACiAvKiBXZSBoYXZlIGluY2x1 ZGVkIGdsaWJjIGhlYWRlcnMuLi4gKi8KICNpZiBkZWZpbmVkKF9fR0xJQkNfXykKIAorLyogQ29v cmRpbmF0ZSB3aXRoIGdsaWJjIG5ldC9pZi5oIGhlYWRlci4gKi8KKyNpZiBkZWZpbmVkKF9ORVRf SUZfSCkKKworLyogR0xJQkMgaGVhZGVycyBpbmNsdWRlZCBmaXJzdCBzbyBkb24ndCBkZWZpbmUg YW55dGhpbmcKKyAqIHRoYXQgd291bGQgYWxyZWFkeSBiZSBkZWZpbmVkLiAqLworCisjZGVmaW5l IF9fVUFQSV9ERUZfSUZfSUZDT05GIDAKKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9JRk1BUCAwCisj ZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZOQU1TSVogMAorI2RlZmluZSBfX1VBUElfREVGX0lGX0lG UkVRIDAKKy8qIEV2ZXJ5dGhpbmcgdXAgdG8gSUZGX0RZTkFNSUMsIG1hdGNoZXMgbmV0L2lmLmgg dW50aWwgZ2xpYmMgMi4yMyAqLworI2RlZmluZSBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0VfRkxB R1MgMAorLyogRm9yIHRoZSBmdXR1cmUgaWYgZ2xpYmMgYWRkcyBJRkZfTE9XRVJfVVAsIElGRl9E T1JNQU5UIGFuZCBJRkZfRUNITyAqLworI2lmbmRlZiBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0Vf RkxBR1NfTE9XRVJfVVBfRE9STUFOVF9FQ0hPCisjZGVmaW5lIF9fVUFQSV9ERUZfSUZfTkVUX0RF VklDRV9GTEFHU19MT1dFUl9VUF9ET1JNQU5UX0VDSE8gMQorI2VuZGlmIC8qIF9fVUFQSV9ERUZf SUZfTkVUX0RFVklDRV9GTEFHU19MT1dFUl9VUF9ET1JNQU5UX0VDSE8gKi8KKworI2Vsc2UgLyog X05FVF9JRl9IICovCisKKy8qIExpbnV4IGhlYWRlcnMgaW5jbHVkZWQgZmlyc3QsIGFuZCB3ZSBt dXN0IGRlZmluZSBldmVyeXRoaW5nCisgKiB3ZSBuZWVkLiBUaGUgZXhwZWN0YXRpb24gaXMgdGhh dCBnbGliYyB3aWxsIGNoZWNrIHRoZQorICogX19VQVBJX0RFRl8qIGRlZmluZXMgYW5kIGFkanVz dCBhcHByb3ByaWF0ZWx5LiAqLworCisjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZDT05GIDEKKyNk ZWZpbmUgX19VQVBJX0RFRl9JRl9JRk1BUCAxCisjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZOQU1T SVogMQorI2RlZmluZSBfX1VBUElfREVGX0lGX0lGUkVRIDEKKy8qIEV2ZXJ5dGhpbmcgdXAgdG8g SUZGX0RZTkFNSUMsIG1hdGNoZXMgbmV0L2lmLmggdW50aWwgZ2xpYmMgMi4yMyAqLworI2RlZmlu ZSBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0VfRkxBR1MgMQorLyogRm9yIHRoZSBmdXR1cmUgaWYg Z2xpYmMgYWRkcyBJRkZfTE9XRVJfVVAsIElGRl9ET1JNQU5UIGFuZCBJRkZfRUNITyAqLworI2Rl ZmluZSBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0VfRkxBR1NfTE9XRVJfVVBfRE9STUFOVF9FQ0hP IDEKKworI2VuZGlmIC8qIF9ORVRfSUZfSCAqLworCiAvKiBDb29yZGluYXRlIHdpdGggZ2xpYmMg bmV0aW5ldC9pbi5oIGhlYWRlci4gKi8KICNpZiBkZWZpbmVkKF9ORVRJTkVUX0lOX0gpCiAKQEAg LTExNyw2ICsxNTEsMTYgQEAKICAqIHRoYXQgd2UgbmVlZC4gKi8KICNlbHNlIC8qICFkZWZpbmVk KF9fR0xJQkNfXykgKi8KIAorLyogRGVmaW5pdGlvbnMgZm9yIGlmLmggKi8KKyNkZWZpbmUgX19V QVBJX0RFRl9JRl9JRkNPTkYgMQorI2RlZmluZSBfX1VBUElfREVGX0lGX0lGTUFQIDEKKyNkZWZp bmUgX19VQVBJX0RFRl9JRl9JRk5BTVNJWiAxCisjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZSRVEg MQorLyogRXZlcnl0aGluZyB1cCB0byBJRkZfRFlOQU1JQywgbWF0Y2hlcyBuZXQvaWYuaCB1bnRp bCBnbGliYyAyLjIzICovCisjZGVmaW5lIF9fVUFQSV9ERUZfSUZfTkVUX0RFVklDRV9GTEFHUyAx CisvKiBGb3IgdGhlIGZ1dHVyZSBpZiBnbGliYyBhZGRzIElGRl9MT1dFUl9VUCwgSUZGX0RPUk1B TlQgYW5kIElGRl9FQ0hPICovCisjZGVmaW5lIF9fVUFQSV9ERUZfSUZfTkVUX0RFVklDRV9GTEFH U19MT1dFUl9VUF9ET1JNQU5UX0VDSE8gMQorCiAvKiBEZWZpbml0aW9ucyBmb3IgaW4uaCAqLwog I2RlZmluZSBfX1VBUElfREVGX0lOX0FERFIJCTEKICNkZWZpbmUgX19VQVBJX0RFRl9JTl9JUFBS T1RPCQkxCi0tIAoyLjEuMAoKCkZyb20gZDY3NDQ1YTAwMzM4NjhkZjQzMmZiMTA2YTA5OTNmMzUx ZDA0YjBjYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS2FuZ2ppZSBMdSA8a2FuZ2pp ZWx1QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA4IE1heSAyMDE2IDEyOjEwOjE0IC0wNDAwClN1Ympl Y3Q6IFtQQVRDSCAzNS8zOF0gbmV0OiBmaXggYSBrZXJuZWwgaW5mb2xlYWsgaW4geDI1IG1vZHVs ZQoKWyBVcHN0cmVhbSBjb21taXQgNzllNDg2NTAzMjBlNmZiYTQ4MzY5ZmNjZjEzZmQwNDUzMTVi MTliOCBdCgpTdGFjayBvYmplY3QgImR0ZV9mYWNpbGl0aWVzIiBpcyBhbGxvY2F0ZWQgaW4geDI1 X3J4X2NhbGxfcmVxdWVzdCgpLAp3aGljaCBpcyBzdXBwb3NlZCB0byBiZSBpbml0aWFsaXplZCBp biB4MjVfbmVnb3RpYXRlX2ZhY2lsaXRpZXMuCkhvd2V2ZXIsIDUgZmllbGRzICg4IGJ5dGVzIGlu IHRvdGFsKSBhcmUgbm90IGluaXRpYWxpemVkLiBUaGlzCm9iamVjdCBpcyB0aGVuIGNvcGllZCB0 byB1c2VybGFuZCB2aWEgY29weV90b191c2VyLCB0aHVzIGluZm9sZWFrCm9jY3Vycy4KClNpZ25l ZC1vZmYtYnk6IEthbmdqaWUgTHUgPGtqbHVAZ2F0ZWNoLmVkdT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC94MjUveDI1X2ZhY2ls aXRpZXMuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0 IGEvbmV0L3gyNS94MjVfZmFjaWxpdGllcy5jIGIvbmV0L3gyNS94MjVfZmFjaWxpdGllcy5jCmlu ZGV4IDdlY2QwNGMuLjk5N2ZmN2IgMTAwNjQ0Ci0tLSBhL25ldC94MjUveDI1X2ZhY2lsaXRpZXMu YworKysgYi9uZXQveDI1L3gyNV9mYWNpbGl0aWVzLmMKQEAgLTI3Nyw2ICsyNzcsNyBAQCBpbnQg eDI1X25lZ290aWF0ZV9mYWNpbGl0aWVzKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzb2Nr ICpzaywKIAogCW1lbXNldCgmdGhlaXJzLCAwLCBzaXplb2YodGhlaXJzKSk7CiAJbWVtY3B5KG5l dywgb3Vycywgc2l6ZW9mKCpuZXcpKTsKKwltZW1zZXQoZHRlLCAwLCBzaXplb2YoKmR0ZSkpOwog CiAJbGVuID0geDI1X3BhcnNlX2ZhY2lsaXRpZXMoc2tiLCAmdGhlaXJzLCBkdGUsICZ4MjUtPnZj X2ZhY2lsX21hc2spOwogCWlmIChsZW4gPCAwKQotLSAKMi4xLjAKCgpGcm9tIDAxNmMzN2IyYzQ2 Y2ZmMjc3MjM4YzMyYzA1OGJmZGJhYzMwYTJhYjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206ICJ4eXByb24uZ2xwa0BnbXguZGUiIDx4eXByb24uZ2xwa0BnbXguZGU+CkRhdGU6IE1vbiwg OSBNYXkgMjAxNiAwMDo0NjoxOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzYvMzhdIG5ldDogdGh1 bmRlcng6IGF2b2lkIGV4cG9zaW5nIGtlcm5lbCBzdGFjawoKWyBVcHN0cmVhbSBjb21taXQgMTYx ZGUyY2FmNjhjNTQ5YzI2NmU1NzFmZmJhOGUyMTYzODg2ZmIxMCBdCgpSZXNlcnZlZCBmaWVsZHMg c2hvdWxkIGJlIHNldCB0byB6ZXJvIHRvIGF2b2lkIGV4cG9zaW5nCmJpdHMgZnJvbSB0aGUga2Vy bmVsIHN0YWNrLgoKU2lnbmVkLW9mZi1ieTogSGVpbnJpY2ggU2NodWNoYXJkdCA8eHlwcm9uLmds cGtAZ214LmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvbmljdmZfcXVl dWVzLmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9xdWV1ZXMuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX3F1ZXVlcy5jCmluZGV4 IDIwNmI2YTcuLmQxYzIxN2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1 bS90aHVuZGVyL25pY3ZmX3F1ZXVlcy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1 bS90aHVuZGVyL25pY3ZmX3F1ZXVlcy5jCkBAIC01NTAsNiArNTUwLDcgQEAgc3RhdGljIHZvaWQg bmljdmZfcmN2X3F1ZXVlX2NvbmZpZyhzdHJ1Y3QgbmljdmYgKm5pYywgc3RydWN0IHF1ZXVlX3Nl dCAqcXMsCiAJCW5pY3ZmX2NvbmZpZ192bGFuX3N0cmlwcGluZyhuaWMsIG5pYy0+bmV0ZGV2LT5m ZWF0dXJlcyk7CiAKIAkvKiBFbmFibGUgUmVjZWl2ZSBxdWV1ZSAqLworCW1lbXNldCgmcnFfY2Zn LCAwLCBzaXplb2Yoc3RydWN0IHJxX2NmZykpOwogCXJxX2NmZy5lbmEgPSAxOwogCXJxX2NmZy50 Y3BfZW5hID0gMDsKIAluaWN2Zl9xdWV1ZV9yZWdfd3JpdGUobmljLCBOSUNfUVNFVF9SUV8wXzdf Q0ZHLCBxaWR4LCAqKHU2NCAqKSZycV9jZmcpOwpAQCAtNTgyLDYgKzU4Myw3IEBAIHZvaWQgbmlj dmZfY21wX3F1ZXVlX2NvbmZpZyhzdHJ1Y3QgbmljdmYgKm5pYywgc3RydWN0IHF1ZXVlX3NldCAq cXMsCiAJCQkgICAgICBxaWR4LCAodTY0KShjcS0+ZG1lbS5waHlzX2Jhc2UpKTsKIAogCS8qIEVu YWJsZSBDb21wbGV0aW9uIHF1ZXVlICovCisJbWVtc2V0KCZjcV9jZmcsIDAsIHNpemVvZihzdHJ1 Y3QgY3FfY2ZnKSk7CiAJY3FfY2ZnLmVuYSA9IDE7CiAJY3FfY2ZnLnJlc2V0ID0gMDsKIAljcV9j ZmcuY2FjaGluZyA9IDA7CkBAIC02MzAsNiArNjMyLDcgQEAgc3RhdGljIHZvaWQgbmljdmZfc25k X3F1ZXVlX2NvbmZpZyhzdHJ1Y3QgbmljdmYgKm5pYywgc3RydWN0IHF1ZXVlX3NldCAqcXMsCiAJ CQkgICAgICBxaWR4LCAodTY0KShzcS0+ZG1lbS5waHlzX2Jhc2UpKTsKIAogCS8qIEVuYWJsZSBz ZW5kIHF1ZXVlICAmIHNldCBxdWV1ZSBzaXplICovCisJbWVtc2V0KCZzcV9jZmcsIDAsIHNpemVv ZihzdHJ1Y3Qgc3FfY2ZnKSk7CiAJc3FfY2ZnLmVuYSA9IDE7CiAJc3FfY2ZnLnJlc2V0ID0gMDsK IAlzcV9jZmcubGR3YiA9IDA7CkBAIC02NjYsNiArNjY5LDcgQEAgc3RhdGljIHZvaWQgbmljdmZf cmJkcl9jb25maWcoc3RydWN0IG5pY3ZmICpuaWMsIHN0cnVjdCBxdWV1ZV9zZXQgKnFzLAogCiAJ LyogRW5hYmxlIFJCRFIgICYgc2V0IHF1ZXVlIHNpemUgKi8KIAkvKiBCdWZmZXIgc2l6ZSBzaG91 bGQgYmUgaW4gbXVsdGlwbGVzIG9mIDEyOCBieXRlcyAqLworCW1lbXNldCgmcmJkcl9jZmcsIDAs IHNpemVvZihzdHJ1Y3QgcmJkcl9jZmcpKTsKIAlyYmRyX2NmZy5lbmEgPSAxOwogCXJiZHJfY2Zn LnJlc2V0ID0gMDsKIAlyYmRyX2NmZy5sZHdiID0gMDsKLS0gCjIuMS4wCgoKRnJvbSBjYTZhZDc0 MjgzZTcwNGYwNDFjZWViYjRlOWVhODAxZjFhNGU2MTUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgOSBN YXkgMjAxNiAyMDo1NToxNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzcvMzhdIHRjcDogcmVmcmVz aCBza2IgdGltZXN0YW1wIGF0IHJldHJhbnNtaXQgdGltZQoKWyBVcHN0cmVhbSBjb21taXQgMTBh ODE5ODBmYzQ3ZTY0ZmZhYzI2YTA3MzEzOTgxM2QzZjY5N2I2NCBdCgpJbiB0aGUgdmVyeSB1bmxp a2VseSBjYXNlIF9fdGNwX3JldHJhbnNtaXRfc2tiKCkgY2FuIG5vdCB1c2UgdGhlIGNsb25pbmcK ZG9uZSBpbiB0Y3BfdHJhbnNtaXRfc2tiKCksIHdlIG5lZWQgdG8gcmVmcmVzaCBza2JfbXN0YW1w IGJlZm9yZSBkb2luZwp0aGUgY29weSBhbmQgdHJhbnNtaXQsIG90aGVyd2lzZSBUQ1AgVFMgdmFs IHdpbGwgYmUgYW4gZXhhY3QgY29weSBvZgpvcmlnaW5hbCB0cmFuc21pdC4KCkZpeGVzOiA3ZmFl ZTVjMGQ1MTQgKCJ0Y3A6IHJlbW92ZSBUQ1BfU0tCX0NCKHNrYiktPndoZW4iKQpTaWduZWQtb2Zm LWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBZdWNodW5nIENoZW5n IDx5Y2hlbmdAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX291dHB1dC5jIHwgNiArKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQv dGNwX291dHB1dC5jIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCmluZGV4IDliZmMzOWYuLjdjOTg4 M2EgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQvaXB2NC90Y3Bf b3V0cHV0LmMKQEAgLTI2MjUsOCArMjYyNSwxMCBAQCBpbnQgX190Y3BfcmV0cmFuc21pdF9za2Io c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCSAqLwogCWlmICh1bmxpa2Vs eSgoTkVUX0lQX0FMSUdOICYmICgodW5zaWduZWQgbG9uZylza2ItPmRhdGEgJiAzKSkgfHwKIAkJ ICAgICBza2JfaGVhZHJvb20oc2tiKSA+PSAweEZGRkYpKSB7Ci0JCXN0cnVjdCBza19idWZmICpu c2tiID0gX19wc2tiX2NvcHkoc2tiLCBNQVhfVENQX0hFQURFUiwKLQkJCQkJCSAgIEdGUF9BVE9N SUMpOworCQlzdHJ1Y3Qgc2tfYnVmZiAqbnNrYjsKKworCQlza2JfbXN0YW1wX2dldCgmc2tiLT5z a2JfbXN0YW1wKTsKKwkJbnNrYiA9IF9fcHNrYl9jb3B5KHNrYiwgTUFYX1RDUF9IRUFERVIsIEdG UF9BVE9NSUMpOwogCQllcnIgPSBuc2tiID8gdGNwX3RyYW5zbWl0X3NrYihzaywgbnNrYiwgMCwg R0ZQX0FUT01JQykgOgogCQkJICAgICAtRU5PQlVGUzsKIAl9IGVsc2UgewotLSAKMi4xLjAKCgpG cm9tIDUzZWNmNDg4YWIzN2QyMDk1ODFmMzk4N2ZhYzI5Y2IyZGFjNTA0ZWYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTog RnJpLCAxMyBNYXkgMjAxNiAxODozMzo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzgvMzhdIG5l dC9yb3V0ZTogZW5mb3JjZSBob3BsaW1pdCBtYXggdmFsdWUKClsgVXBzdHJlYW0gY29tbWl0IDYy NmFiZDU5ZTUxZDRkOGM2MzY3ZTAzYWFlMjUyYThhYTc1OWFjNzggXQoKQ3VycmVudGx5LCB3aGVu IGNyZWF0aW5nIG9yIHVwZGF0aW5nIGEgcm91dGUsIG5vIGNoZWNrIGlzIHBlcmZvcm1lZAppbiBi b3RoIGlwdjQgYW5kIGlwdjYgY29kZSB0byB0aGUgaG9wbGltaXQgdmFsdWUuCgpUaGUgY2FsbGVy IGNhbiBpLmUuIHNldCBob3BsaW1pdCB0byAyNTYsIGFuZCB3aGVuIHN1Y2ggcm91dGUgd2lsbAog YmUgdXNlZCwgcGFja2V0cyB3aWxsIGJlIHNlbnQgd2l0aCBob3BsaW1pdC90dGwgZXF1YWwgdG8g MC4KClRoaXMgY29tbWl0IGFkZHMgY2hlY2tzIGZvciB0aGUgUlRBWF9IT1BMSU1JVCB2YWx1ZSwg aW4gYm90aCBpcHY0CmlwdjYgcm91dGUgY29kZSwgc3Vic3RpdHV0aW5nIGFueSB2YWx1ZSBncmVh dGVyIHRoYW4gMjU1IHdpdGggMjU1LgoKVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggd2hhdCBpcyBj dXJyZW50bHkgZG9uZSBmb3IgQURWTVNTIGFuZCBNVFUKaW4gdGhlIGlwdjQgY29kZS4KClNpZ25l ZC1vZmYtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2ZpYl9z ZW1hbnRpY3MuYyB8IDIgKysKIG5ldC9pcHY2L3JvdXRlLmMgICAgICAgICB8IDIgKysKIDIgZmls ZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmliX3Nl bWFudGljcy5jIGIvbmV0L2lwdjQvZmliX3NlbWFudGljcy5jCmluZGV4IGQ5NzI2OGUuLjJiNjg0 MTggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYworKysgYi9uZXQvaXB2NC9m aWJfc2VtYW50aWNzLmMKQEAgLTk3NSw2ICs5NzUsOCBAQCBmaWJfY29udmVydF9tZXRyaWNzKHN0 cnVjdCBmaWJfaW5mbyAqZmksIGNvbnN0IHN0cnVjdCBmaWJfY29uZmlnICpjZmcpCiAJCQl2YWwg PSA2NTUzNSAtIDQwOwogCQlpZiAodHlwZSA9PSBSVEFYX01UVSAmJiB2YWwgPiA2NTUzNSAtIDE1 KQogCQkJdmFsID0gNjU1MzUgLSAxNTsKKwkJaWYgKHR5cGUgPT0gUlRBWF9IT1BMSU1JVCAmJiB2 YWwgPiAyNTUpCisJCQl2YWwgPSAyNTU7CiAJCWlmICh0eXBlID09IFJUQVhfRkVBVFVSRVMgJiYg KHZhbCAmIH5SVEFYX0ZFQVRVUkVfTUFTSykpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJZmktPmZp Yl9tZXRyaWNzW3R5cGUgLSAxXSA9IHZhbDsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMg Yi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IDNmMTY0ZDMuLjVhZjJjY2EgMTAwNjQ0Ci0tLSBhL25l dC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtMTcyNyw2ICsxNzI3LDgg QEAgc3RhdGljIGludCBpcDZfY29udmVydF9tZXRyaWNzKHN0cnVjdCBteDZfY29uZmlnICpteGMs CiAJCX0gZWxzZSB7CiAJCQl2YWwgPSBubGFfZ2V0X3UzMihubGEpOwogCQl9CisJCWlmICh0eXBl ID09IFJUQVhfSE9QTElNSVQgJiYgdmFsID4gMjU1KQorCQkJdmFsID0gMjU1OwogCQlpZiAodHlw ZSA9PSBSVEFYX0ZFQVRVUkVTICYmICh2YWwgJiB+UlRBWF9GRUFUVVJFX01BU0spKQogCQkJZ290 byBlcnI7CiAKLS0gCjIuMS4wCgo= ----Next_Part(Mon_May_16_12_35_13_2016_545)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_45.mbox" RnJvbSAzMTZhNTRmMjgzYmZkZDE0ZWEzNTM2Zjg0NWRiZGQ3MzYwYTkyZGZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgUy4gTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KRGF0ZTogU3VuLCAxMCBBcHIgMjAxNiAyMzowMTozMCAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg MDEvNDJdIGRlY25ldDogRG8gbm90IGJ1aWxkIHJvdXRlcyB0byBkZXZpY2VzIHdpdGhvdXQgZGVj bmV0CiBwcml2YXRlIGRhdGEuCgpbIFVwc3RyZWFtIGNvbW1pdCBhMzZhMGQ0MDA4NDg4ZmE1NDVj NzQ0NDVkNjllYWY1NjM3N2Q1ZDRlIF0KCkluIHBhcnRpY3VsYXIsIG1ha2Ugc3VyZSB3ZSBjaGVj ayBmb3IgZGVjbmV0IHByaXZhdGUgcHJlc2VuY2UKZm9yIGxvb3BiYWNrIGRldmljZXMuCgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2RlY25ldC9kbl9yb3V0ZS5jIHwgOSArKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvZGVjbmV0L2RuX3JvdXRl LmMgYi9uZXQvZGVjbmV0L2RuX3JvdXRlLmMKaW5kZXggNjA3YTE0Zi4uYjFkYzA5NiAxMDA2NDQK LS0tIGEvbmV0L2RlY25ldC9kbl9yb3V0ZS5jCisrKyBiL25ldC9kZWNuZXQvZG5fcm91dGUuYwpA QCAtMTAzNCwxMCArMTAzNCwxMyBAQCBzb3VyY2Vfb2s6CiAJaWYgKCFmbGQuZGFkZHIpIHsKIAkJ ZmxkLmRhZGRyID0gZmxkLnNhZGRyOwogCi0JCWVyciA9IC1FQUREUk5PVEFWQUlMOwogCQlpZiAo ZGV2X291dCkKIAkJCWRldl9wdXQoZGV2X291dCk7CisJCWVyciA9IC1FSU5WQUw7CiAJCWRldl9v dXQgPSBpbml0X25ldC5sb29wYmFja19kZXY7CisJCWlmICghZGV2X291dC0+ZG5fcHRyKQorCQkJ Z290byBvdXQ7CisJCWVyciA9IC1FQUREUk5PVEFWQUlMOwogCQlkZXZfaG9sZChkZXZfb3V0KTsK IAkJaWYgKCFmbGQuZGFkZHIpIHsKIAkJCWZsZC5kYWRkciA9CkBAIC0xMTEwLDYgKzExMTMsOCBA QCBzb3VyY2Vfb2s6CiAJCWlmIChkZXZfb3V0ID09IE5VTEwpCiAJCQlnb3RvIG91dDsKIAkJZG5f ZGIgPSByY3VfZGVyZWZlcmVuY2VfcmF3KGRldl9vdXQtPmRuX3B0cik7CisJCWlmICghZG5fZGIp CisJCQlnb3RvIGVfaW52YWw7CiAJCS8qIFBvc3NpYmxlIGltcHJvdmVtZW50IC0gY2hlY2sgYWxs IGRldmljZXMgZm9yIGxvY2FsIGFkZHIgKi8KIAkJaWYgKGRuX2Rldl9pc2xvY2FsKGRldl9vdXQs IGZsZC5kYWRkcikpIHsKIAkJCWRldl9wdXQoZGV2X291dCk7CkBAIC0xMTUxLDYgKzExNTYsOCBA QCBzZWxlY3Rfc291cmNlOgogCQkJZGV2X3B1dChkZXZfb3V0KTsKIAkJZGV2X291dCA9IGluaXRf bmV0Lmxvb3BiYWNrX2RldjsKIAkJZGV2X2hvbGQoZGV2X291dCk7CisJCWlmICghZGV2X291dC0+ ZG5fcHRyKQorCQkJZ290byBlX2ludmFsOwogCQlmbGQuZmxvd2lkbl9vaWYgPSBkZXZfb3V0LT5p ZmluZGV4OwogCQlpZiAocmVzLmZpKQogCQkJZG5fZmliX2luZm9fcHV0KHJlcy5maSk7Ci0tIAoy LjEuMAoKCkZyb20gZGNkMjEyNTZjN2Y4ZDBmNjg5ZjM2MTE1MzAxYjUwNDdmYzI4YzcyMyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hyaXMgRnJpZXNlbiA8Y2hyaXMuZnJpZXNlbkB3 aW5kcml2ZXIuY29tPgpEYXRlOiBGcmksIDggQXByIDIwMTYgMTU6MjE6MzAgLTA2MDAKU3ViamVj dDogW1BBVENIIDAyLzQyXSByb3V0ZTogZG8gbm90IGNhY2hlIGZpYiByb3V0ZSBpbmZvIG9uIGxv Y2FsIHJvdXRlcyB3aXRoCiBvaWYKClsgVXBzdHJlYW0gY29tbWl0IGQ2ZDVlOTk5ZTVkZjY3Zjhl YzIwYjZiZTQ1ZTIyMjk0NTVlZTM2OTkgXQoKRm9yIGxvY2FsIHJvdXRlcyB0aGF0IHJlcXVpcmUg YSBwYXJ0aWN1bGFyIG91dHB1dCBpbnRlcmZhY2Ugd2UgZG8gbm90IHdhbnQKdG8gY2FjaGUgdGhl IHJlc3VsdC4gIENhY2hpbmcgdGhlIHJlc3VsdCBjYXVzZXMgaW5jb3JyZWN0IGJlaGF2aW91ciB3 aGVuCnRoZXJlIGFyZSBtdWx0aXBsZSBzb3VyY2UgYWRkcmVzc2VzIG9uIHRoZSBpbnRlcmZhY2Uu ICBUaGUgZW5kIHJlc3VsdApiZWluZyB0aGF0IGlmIHRoZSBpbnRlbmRlZCByZWNpcGllbnQgaXMg d2FpdGluZyBvbiB0aGF0IGludGVyZmFjZSBmb3IgdGhlCnBhY2tldCBoZSB3b24ndCByZWNlaXZl IGl0IGJlY2F1c2UgaXQgd2lsbCBiZSBkZWxpdmVyZWQgb24gdGhlIGxvb3BiYWNrCmludGVyZmFj ZSBhbmQgdGhlIElQX1BLVElORk8gaXBpX2lmaW5kZXggd2lsbCBiZSBzZXQgdG8gdGhlIGxvb3Bi YWNrCmludGVyZmFjZSBhcyB3ZWxsLgoKVGhpcyBjYW4gYmUgdGVzdGVkIGJ5IHJ1bm5pbmcgYSBw cm9ncmFtIHN1Y2ggYXMgImRoY3BfcmVsZWFzZSIgd2hpY2gKYXR0ZW1wdHMgdG8gaW5qZWN0IGEg cGFja2V0IG9uIGEgcGFydGljdWxhciBpbnRlcmZhY2Ugc28gdGhhdCBpdCBpcwpyZWNlaXZlZCBi eSBhbm90aGVyIHByb2dyYW0gb24gdGhlIHNhbWUgYm9hcmQuICBUaGUgcmVjZWl2aW5nIHByb2Nl c3MKc2hvdWxkIHNlZSBhbiBJUF9QS1RJTkZPIGlwaV9pZm5kZXggdmFsdWUgb2YgdGhlIHNvdXJj ZSBpbnRlcmZhY2UKKGUuZy4sIGV0aDEpIGluc3RlYWQgb2YgdGhlIGxvb3BiYWNrIGludGVyZmFj ZSAoZS5nLiwgbG8pLiAgVGhlIHBhY2tldAp3aWxsIHN0aWxsIGFwcGVhciBvbiB0aGUgbG9vcGJh Y2sgaW50ZXJmYWNlIGluIHRjcGR1bXAgYnV0IHRoZSBpbXBvcnRhbnQKYXNwZWN0IGlzIHRoYXQg dGhlIENNU0cgaW5mbyBpcyBjb3JyZWN0LgoKU2FtcGxlIGRoY3BfcmVsZWFzZSBjb21tYW5kIGxp bmU6CgogICBkaGNwX3JlbGVhc2UgZXRoMSAxOTIuMTY4LjIwNC4yMjIgMDI6MTE6MzM6MjI6NDQ6 NjYKClNpZ25lZC1vZmYtYnk6IEFsbGFpbiBMZWdhY3kgPGFsbGFpbi5sZWdhY3lAd2luZHJpdmVy LmNvbT4KU2lnbmVkIG9mZi1ieTogQ2hyaXMgRnJpZXNlbiA8Y2hyaXMuZnJpZXNlbkB3aW5kcml2 ZXIuY29tPgpSZXZpZXdlZC1ieTogSnVsaWFuIEFuYXN0YXNvdiA8amFAc3NpLmJnPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lw djQvcm91dGUuYyB8IDEyICsrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwpp bmRleCAwMmM2MjI5Li5iMDUwY2Y5IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yb3V0ZS5jCisrKyBi L25ldC9pcHY0L3JvdXRlLmMKQEAgLTIwNDUsNiArMjA0NSwxOCBAQCBzdGF0aWMgc3RydWN0IHJ0 YWJsZSAqX19ta3JvdXRlX291dHB1dChjb25zdCBzdHJ1Y3QgZmliX3Jlc3VsdCAqcmVzLAogCQkg Ki8KIAkJaWYgKGZpICYmIHJlcy0+cHJlZml4bGVuIDwgNCkKIAkJCWZpID0gTlVMTDsKKwl9IGVs c2UgaWYgKCh0eXBlID09IFJUTl9MT0NBTCkgJiYgKG9yaWdfb2lmICE9IDApICYmCisJCSAgIChv cmlnX29pZiAhPSBkZXZfb3V0LT5pZmluZGV4KSkgeworCQkvKiBGb3IgbG9jYWwgcm91dGVzIHRo YXQgcmVxdWlyZSBhIHBhcnRpY3VsYXIgb3V0cHV0IGludGVyZmFjZQorCQkgKiB3ZSBkbyBub3Qg d2FudCB0byBjYWNoZSB0aGUgcmVzdWx0LiAgQ2FjaGluZyB0aGUgcmVzdWx0CisJCSAqIGNhdXNl cyBpbmNvcnJlY3QgYmVoYXZpb3VyIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIHNvdXJjZQorCQkg KiBhZGRyZXNzZXMgb24gdGhlIGludGVyZmFjZSwgdGhlIGVuZCByZXN1bHQgYmVpbmcgdGhhdCBp ZiB0aGUKKwkJICogaW50ZW5kZWQgcmVjaXBpZW50IGlzIHdhaXRpbmcgb24gdGhhdCBpbnRlcmZh Y2UgZm9yIHRoZQorCQkgKiBwYWNrZXQgaGUgd29uJ3QgcmVjZWl2ZSBpdCBiZWNhdXNlIGl0IHdp bGwgYmUgZGVsaXZlcmVkIG9uCisJCSAqIHRoZSBsb29wYmFjayBpbnRlcmZhY2UgYW5kIHRoZSBJ UF9QS1RJTkZPIGlwaV9pZmluZGV4IHdpbGwKKwkJICogYmUgc2V0IHRvIHRoZSBsb29wYmFjayBp bnRlcmZhY2UgYXMgd2VsbC4KKwkJICovCisJCWZpID0gTlVMTDsKIAl9CiAKIAlmbmhlID0gTlVM TDsKLS0gCjIuMS4wCgoKRnJvbSA4NTRlN2NiY2E0MTY4MWFhZGM5MjNhODBlYWQ3ZTRhNzZmMmQx YzlkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoaWFzIEtyYXVzZSA8bWluaXBs aUBnb29nbGVtYWlsLmNvbT4KRGF0ZTogU3VuLCAxMCBBcHIgMjAxNiAxMjo1MjoyOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDMvNDJdIHBhY2tldDogZml4IGhlYXAgaW5mbyBsZWFrIGluIFBBQ0tF VF9ESUFHX01DTElTVAogc29ja19kaWFnIGludGVyZmFjZQoKWyBVcHN0cmVhbSBjb21taXQgMzA5 Y2YzN2ZlMmE3ODEyNzliNzY3NWQ0YmI3MTczMTk4ZTUzMjg2NyBdCgpCZWNhdXNlIHdlIG1pc3Mg dG8gd2lwZSB0aGUgcmVtYWluZGVyIG9mIGktPmFkZHJbXSBpbiBwYWNrZXRfbWNfYWRkKCksCnBk aWFnX3B1dF9tY2xpc3QoKSBsZWFrcyB1bmluaXRpYWxpemVkIGhlYXAgYnl0ZXMgdmlhIHRoZQpQ QUNLRVRfRElBR19NQ0xJU1QgbmV0bGluayBhdHRyaWJ1dGUuCgpGaXggdGhpcyBieSBleHBsaWNp dGx5IG1lbXNldCgwKWluZyB0aGUgcmVtYWluaW5nIGJ5dGVzIGluIGktPmFkZHJbXS4KCkZpeGVz OiBlZWE2OGUyZjFhMDAgKCJwYWNrZXQ6IFJlcG9ydCBzb2NrZXQgbWNsaXN0IGluZm8gdmlhIGRp YWcgbW9kdWxlIikKU2lnbmVkLW9mZi1ieTogTWF0aGlhcyBLcmF1c2UgPG1pbmlwbGlAZ29vZ2xl bWFpbC5jb20+CkNjOiBFcmljIFcuIEJpZWRlcm1hbiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpD YzogUGF2ZWwgRW1lbHlhbm92IDx4ZW11bEBwYXJhbGxlbHMuY29tPgpBY2tlZC1ieTogUGF2ZWwg RW1lbHlhbm92IDx4ZW11bEB2aXJ0dW96em8uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8 IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5kZXggZGExYWUwZTEu LjljYzdiNTEgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYwpAQCAtMzQzNiw2ICszNDM2LDcgQEAgc3RhdGljIGludCBwYWNrZXRf bWNfYWRkKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHBhY2tldF9tcmVxX21heCAqbXJlcSkKIAlp LT5pZmluZGV4ID0gbXJlcS0+bXJfaWZpbmRleDsKIAlpLT5hbGVuID0gbXJlcS0+bXJfYWxlbjsK IAltZW1jcHkoaS0+YWRkciwgbXJlcS0+bXJfYWRkcmVzcywgaS0+YWxlbik7CisJbWVtc2V0KGkt PmFkZHIgKyBpLT5hbGVuLCAwLCBzaXplb2YoaS0+YWRkcikgLSBpLT5hbGVuKTsKIAlpLT5jb3Vu dCA9IDE7CiAJaS0+bmV4dCA9IHBvLT5tY2xpc3Q7CiAJcG8tPm1jbGlzdCA9IGk7Ci0tIAoyLjEu MAoKCkZyb20gODcwNzg1MzU3ZTUyODRjOTU2MDhmYWU4NzRiZTk5YzBjMDI1YmNmOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTGFycyBQZXJzc29uIDxsYXJzLnBlcnNzb25AYXhpcy5j b20+CkRhdGU6IFR1ZSwgMTIgQXByIDIwMTYgMDg6NDU6NTIgKzAyMDAKU3ViamVjdDogW1BBVENI IDA0LzQyXSBuZXQ6IHNjaGVkOiBkbyBub3QgcmVxdWV1ZSBhIE5VTEwgc2tiCgpbIFVwc3RyZWFt IGNvbW1pdCAzZGNkNDkzZmJlYmZkNjMxOTEzZGY2ZTI3NzNjYzI5NWQzYmY3ZDIyIF0KCkEgZmFp bHVyZSBpbiB2YWxpZGF0ZV94bWl0X3NrYl9saXN0KCkgdHJpZ2dlcmVkIGFuIHVuY29uZGl0aW9u YWwgY2FsbAp0byBkZXZfcmVxdWV1ZV9za2Igd2l0aCBza2I9TlVMTC4gVGhpcyBzbG93bHkgZ3Jv d3MgdGhlIHF1ZXVlCmRpc2NpcGxpbmUncyBxbGVuIGNvdW50IHVudGlsIGFsbCB0cmFmZmljIHRo cm91Z2ggdGhlIHF1ZXVlIHN0b3BzLgoKV2UgdGFrZSB0aGUgb3B0aW1pc3RpYyBhcHByb2FjaCBh bmQgY29udGludWUgcnVubmluZyB0aGUgcXVldWUgYWZ0ZXIgYQpmYWlsdXJlIHNpbmNlIGl0IGlz IHVua25vd24gaWYgbGF0ZXIgcGFja2V0cyBhbHNvIHdpbGwgZmFpbCBpbiB0aGUKdmFsaWRhdGUg cGF0aC4KCkZpeGVzOiA1NWE5M2IzZWE3ODAgKCJxZGlzYzogdmFsaWRhdGUgc2tiIHdpdGhvdXQg aG9sZGluZyBsb2NrIikKU2lnbmVkLW9mZi1ieTogTGFycyBQZXJzc29uIDxsYXJwZXJAYXhpcy5j b20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2No ZWQvc2NoX2dlbmVyaWMuYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2dlbmVyaWMuYyBi L25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jCmluZGV4IDE2YmM4M2IuLmFhNDcyNTAgMTAwNjQ0Ci0t LSBhL25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jCisrKyBiL25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5j CkBAIC0xNTksMTIgKzE1OSwxNSBAQCBpbnQgc2NoX2RpcmVjdF94bWl0KHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBRZGlzYyAqcSwKIAlpZiAodmFsaWRhdGUpCiAJCXNrYiA9IHZhbGlkYXRl X3htaXRfc2tiX2xpc3Qoc2tiLCBkZXYpOwogCi0JaWYgKHNrYikgeworCWlmIChsaWtlbHkoc2ti KSkgewogCQlIQVJEX1RYX0xPQ0soZGV2LCB0eHEsIHNtcF9wcm9jZXNzb3JfaWQoKSk7CiAJCWlm ICghbmV0aWZfeG1pdF9mcm96ZW5fb3Jfc3RvcHBlZCh0eHEpKQogCQkJc2tiID0gZGV2X2hhcmRf c3RhcnRfeG1pdChza2IsIGRldiwgdHhxLCAmcmV0KTsKIAogCQlIQVJEX1RYX1VOTE9DSyhkZXYs IHR4cSk7CisJfSBlbHNlIHsKKwkJc3Bpbl9sb2NrKHJvb3RfbG9jayk7CisJCXJldHVybiBxZGlz Y19xbGVuKHEpOwogCX0KIAlzcGluX2xvY2socm9vdF9sb2NrKTsKIAotLSAKMi4xLjAKCgpGcm9t IDVhNmQ3OTVjMWI5N2RmMTA3OTAzYzZkN2NmYTQ4OWZjNjIxNzdmNzggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGZiLmNvbT4KRGF0ZTogVHVl LCAxMiBBcHIgMjAxNiAxMDoyNjoxOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDUvNDJdIGJwZi92 ZXJpZmllcjogcmVqZWN0IGludmFsaWQgTERfQUJTIHwgQlBGX0RXCiBpbnN0cnVjdGlvbgoKWyBV cHN0cmVhbSBjb21taXQgZDgyYmNjYzY5MDQxYTUxZjdiN2I5YjRhMzZkYjA3NzJmNGNkYmEyMSBd Cgp2ZXJpZmllciBtdXN0IGNoZWNrIGZvciByZXNlcnZlZCBzaXplIGJpdHMgaW4gaW5zdHJ1Y3Rp b24gb3Bjb2RlIGFuZApyZWplY3QgQlBGX0xEIHwgQlBGX0FCUyB8IEJQRl9EVyBhbmQgQlBGX0xE IHwgQlBGX0lORCB8IEJQRl9EVyBpbnN0cnVjdGlvbnMsCm90aGVyd2lzZSBpbnRlcnByZXRlciB3 aWxsIFdBUk5fUkFURUxJTUlUIG9uIHRoZW0gZHVyaW5nIGV4ZWN1dGlvbi4KCkZpeGVzOiBkZGQ4 NzJiYzMwOTggKCJicGY6IHZlcmlmaWVyOiBhZGQgY2hlY2tzIGZvciBCUEZfQUJTIHwgQlBGX0lO RCBpbnN0cnVjdGlvbnMiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBr ZXJuZWwub3JnPgpBY2tlZC1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5l dD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGtlcm5lbC9icGYvdmVyaWZpZXIuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspCgpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92 ZXJpZmllci5jCmluZGV4IDJlN2Y3YWIuLmMyMWNiMTQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYv dmVyaWZpZXIuYworKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTEzNDgsNiArMTM0OCw3 IEBAIHN0YXRpYyBpbnQgY2hlY2tfbGRfYWJzKHN0cnVjdCB2ZXJpZmllcl9lbnYgKmVudiwgc3Ry dWN0IGJwZl9pbnNuICppbnNuKQogCX0KIAogCWlmIChpbnNuLT5kc3RfcmVnICE9IEJQRl9SRUdf MCB8fCBpbnNuLT5vZmYgIT0gMCB8fAorCSAgICBCUEZfU0laRShpbnNuLT5jb2RlKSA9PSBCUEZf RFcgfHwKIAkgICAgKG1vZGUgPT0gQlBGX0FCUyAmJiBpbnNuLT5zcmNfcmVnICE9IEJQRl9SRUdf MCkpIHsKIAkJdmVyYm9zZSgiQlBGX0xEX0FCUyB1c2VzIHJlc2VydmVkIGZpZWxkc1xuIik7CiAJ CXJldHVybiAtRUlOVkFMOwotLSAKMi4xLjAKCgpGcm9tIDVjNjVhNDlhODcwNzcwYzhiNTI0ODkx NTkyNmNkMGNkMWNiMzhkNjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/ cT9Caj1DMz1COHJuPTIwTW9yaz89IDxiam9ybkBtb3JrLm5vPgpEYXRlOiBUdWUsIDEyIEFwciAy MDE2IDE2OjExOjEyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi80Ml0gY2RjX21iaW06IGFwcGx5 ICJORFAgdG8gZW5kIiBxdWlyayB0byBhbGwgSHVhd2VpCiBkZXZpY2VzCk1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBjNWI1MzQzY2ZiYzlmNDZhZjY1 MDMzZmE0ZjQwN2Q3YjdkOTgzNzFkIF0KCldlIG5vdyBoYXZlIGEgcG9zaXRpdmUgcmVwb3J0IG9m IGFub3RoZXIgSHVhd2VpIGRldmljZSBuZWVkaW5nCnRoaXMgcXVpcms6IFRoZSBNRTkwNnMtMTU4 ICgxMmQxOjE1YzEpLiAgVGhpcyBpcyBhbiBtLjIgZm9ybQpmYWN0b3IgbW9kZW0gd2l0aCBubyBv YnZpb3VzIHJlbGF0aW9uc2hpcCB0byB0aGUgRTMzNzIgKDEyZDE6MTU3ZCkKd2UgYWxyZWFkeSBo YXZlIGEgcXVpcmsgZW50cnkgZm9yLiAgVGhpcyBpcyByZWFzb24gZW5vdWdoIHRvCmJlbGlldmUg dGhlIHF1aXJrIG1pZ2h0IGJlIG5lY2Vzc2FyeSBmb3IgYW55IG51bWJlciBvZiBjdXJyZW50CmFu ZCBmdXR1cmUgSHVhd2VpIGRldmljZXMuCgpBcHBseWluZyB0aGUgcXVpcmsgdG8gYWxsIEh1YXdl aSBkZXZpY2VzLCBzaW5jZSBpdCBpcyBjcnVjaWFsCnRvIGFueSBkZXZpY2UgYWZmZWN0ZWQgYnkg dGhlIGZpcm13YXJlIGJ1Zywgd2hpbGUgdGhlIGltcGFjdApvbiBub24tYWZmZWN0ZWQgZGV2aWNl cyBpcyBuZWdsaWdpYmxlLgoKVGhlIHF1aXJrIGNhbiBpZiBuZWNlc3NhcnkgYmUgZGlzYWJsZWQg cGVyLWRldmljZSBieSB3cml0aW5nCk4gdG8gL3N5cy9jbGFzcy9uZXQvPGlmYWNlPi9jZGNfbmNt L25kcF90b19lbmQKClJlcG9ydGVkLWJ5OiBBbmRyZWFzIEZldHQgPGFuZHJlYXMuZmV0dEBzZWN1 bmV0LmNvbT4KU2lnbmVkLW9mZi1ieTogQmrDuHJuIE1vcmsgPGJqb3JuQG1vcmsubm8+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC91c2IvY2RjX21iaW0uYyB8IDkgKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Vz Yi9jZGNfbWJpbS5jIGIvZHJpdmVycy9uZXQvdXNiL2NkY19tYmltLmMKaW5kZXggYmRkODNkOS4u OTZhNTAyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL2NkY19tYmltLmMKKysrIGIvZHJp dmVycy9uZXQvdXNiL2NkY19tYmltLmMKQEAgLTYxNyw4ICs2MTcsMTMgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG1iaW1fZGV2c1tdID0gewogCXsgVVNCX1ZFTkRPUl9BTkRf SU5URVJGQUNFX0lORk8oMHgwYmRiLCBVU0JfQ0xBU1NfQ09NTSwgVVNCX0NEQ19TVUJDTEFTU19N QklNLCBVU0JfQ0RDX1BST1RPX05PTkUpLAogCSAgLmRyaXZlcl9pbmZvID0gKHVuc2lnbmVkIGxv bmcpJmNkY19tYmltX2luZm8sCiAJfSwKLQkvKiBIdWF3ZWkgRTMzNzIgZmFpbHMgdW5sZXNzIE5E UCBjb21lcyBhZnRlciB0aGUgSVAgcGFja2V0cyAqLwotCXsgVVNCX0RFVklDRV9BTkRfSU5URVJG QUNFX0lORk8oMHgxMmQxLCAweDE1N2QsIFVTQl9DTEFTU19DT01NLCBVU0JfQ0RDX1NVQkNMQVNT X01CSU0sIFVTQl9DRENfUFJPVE9fTk9ORSksCisKKwkvKiBTb21lIEh1YXdlaSBkZXZpY2VzLCBN RTkwNnMtMTU4ICgxMmQxOjE1YzEpIGFuZCBFMzM3MgorCSAqICgxMmQxOjE1N2QpLCBhcmUga25v d24gdG8gZmFpbCB1bmxlc3MgdGhlIE5EUCBpcyBwbGFjZWQKKwkgKiBhZnRlciB0aGUgSVAgcGFj a2V0cy4gIEFwcGx5aW5nIHRoZSBxdWlyayB0byBhbGwgSHVhd2VpCisJICogZGV2aWNlcyBpcyBi cm9hZGVyIHRoYW4gbmVjZXNzYXJ5LCBidXQgaGFybWxlc3MuCisJICovCisJeyBVU0JfVkVORE9S X0FORF9JTlRFUkZBQ0VfSU5GTygweDEyZDEsIFVTQl9DTEFTU19DT01NLCBVU0JfQ0RDX1NVQkNM QVNTX01CSU0sIFVTQl9DRENfUFJPVE9fTk9ORSksCiAJICAuZHJpdmVyX2luZm8gPSAodW5zaWdu ZWQgbG9uZykmY2RjX21iaW1faW5mb19uZHBfdG9fZW5kLAogCX0sCiAJLyogZGVmYXVsdCBlbnRy eSAqLwotLSAKMi4xLjAKCgpGcm9tIDI4MDIyZDFkNzIyZDk5MTdiMjRiZjI0ZTdiYjE2ZjI0YjBk NjI2YWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENyYWlnIEdhbGxlayA8a3JhaWdA Z29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAxMiBBcHIgMjAxNiAxMzoxMToyNSAtMDQwMApTdWJqZWN0 OiBbUEFUQ0ggMDcvNDJdIHNvcmV1c2Vwb3J0OiBmaXggb3JkZXJpbmcgZm9yIG1peGVkIHY0L3Y2 IHNvY2tldHMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29t bWl0IGQ4OTRiYTE4ZDRlNDQ5YjNhN2Y2ZWI0OTFmMTZjOWUwMjkzMzczNmUgXQoKV2l0aCB0aGUg U09fUkVVU0VQT1JUIHNvY2tldCBvcHRpb24sIGl0IGlzIHBvc3NpYmxlIHRvIGNyZWF0ZSBzb2Nr ZXRzCmluIHRoZSBBRl9JTkVUIGFuZCBBRl9JTkVUNiBkb21haW5zIHdoaWNoIGFyZSBib3VuZCB0 byB0aGUgc2FtZSBJUHY0IGFkZHJlc3MuClRoaXMgaXMgb25seSBwb3NzaWJsZSB3aXRoIFNPX1JF VVNFUE9SVCBhbmQgd2hlbiBub3QgdXNpbmcgSVBWNl9WNk9OTFkgb24KdGhlIEFGX0lORVQ2IHNv Y2tldHMuCgpQcmlvciB0byB0aGUgY29tbWl0cyByZWZlcmVuY2VkIGJlbG93LCBhbiBpbmNvbWlu ZyBJUHY0IHBhY2tldCB3b3VsZAphbHdheXMgYmUgcm91dGVkIHRvIGEgc29ja2V0IG9mIHR5cGUg QUZfSU5FVCB3aGVuIHRoaXMgbWl4ZWQtbW9kZSB3YXMgdXNlZC4KQWZ0ZXIgdGhvc2UgY2hhbmdl cywgdGhlIHNhbWUgcGFja2V0IHdvdWxkIGJlIHJvdXRlZCB0byB0aGUgbW9zdCByZWNlbnRseQpi b3VuZCBzb2NrZXQgKGlmIHRoaXMgaGFwcGVuZWQgdG8gYmUgYW4gQUZfSU5FVDYgc29ja2V0LCBp dCB3b3VsZApoYXZlIGFuIElQdjQgbWFwcGVkIElQdjYgYWRkcmVzcykuCgpUaGUgY2hhbmdlIGlu IGJlaGF2aW9yIG9jY3VycmVkIGJlY2F1c2UgdGhlIHJlY2VudCBTT19SRVVTRVBPUlQgb3B0aW1p emF0aW9ucwpzaG9ydC1jaXJjdWl0IHRoZSBzb2NrZXQgc2NvcmluZyBsb2dpYyBhcyBzb29uIGFz IHRoZXkgZmluZCBhIG1hdGNoLiAgVGhleQpkaWQgbm90IHRha2UgaW50byBhY2NvdW50IHRoZSBz Y29yaW5nIGxvZ2ljIHRoYXQgZmF2b3JzIEFGX0lORVQgc29ja2V0cwpvdmVyIEFGX0lORVQ2IHNv Y2tldHMgaW4gdGhlIGV2ZW50IG9mIGEgdGllLgoKVG8gZml4IHRoaXMgcHJvYmxlbSwgdGhpcyBw YXRjaCBjaGFuZ2VzIHRoZSBpbnNlcnRpb24gb3JkZXIgb2YgQUZfSU5FVAphbmQgQUZfSU5FVDYg YWRkcmVzc2VzIGluIHRoZSBUQ1AgYW5kIFVEUCBzb2NrZXQgbGlzdHMgd2hlbiB0aGUgc29ja2V0 cwpoYXZlIFNPX1JFVVNFUE9SVCBzZXQuICBBRl9JTkVUIHNvY2tldHMgd2lsbCBiZSBpbnNlcnRl ZCBhdCB0aGUgaGVhZCBvZiB0aGUKbGlzdCBhbmQgQUZfSU5FVDYgc29ja2V0cyB3aXRoIFNPX1JF VVNFUE9SVCBzZXQgd2lsbCBhbHdheXMgYmUgaW5zZXJ0ZWQgYXQKdGhlIHRhaWwgb2YgdGhlIGxp c3QuICBUaGlzIHdpbGwgZm9yY2UgQUZfSU5FVCBzb2NrZXRzIHRvIGFsd2F5cyBiZQpjb25zaWRl cmVkIGZpcnN0LgoKRml4ZXM6IGUzMmVhN2U3NDcyNyAoInNvcmV1c2Vwb3J0OiBmYXN0IHJldXNl cG9ydCBVRFAgc29ja2V0IHNlbGVjdGlvbiIpCkZpeGVzOiAxMjVlODBiODg2ODcgKCJzb3JldXNl cG9ydDogZmFzdCByZXVzZXBvcnQgVENQIHNvY2tldCBzZWxlY3Rpb24iKQoKUmVwb3J0ZWQtYnk6 IE1hY2llaiDFu2VuY3p5a293c2tpIDxtYXplQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IENy YWlnIEdhbGxlayA8a3JhaWdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9yY3VsaXN0X251bGxzLmggfCAz OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvbmV0L3Nv Y2suaCAgICAgICAgICAgIHwgIDYgKysrKystCiBuZXQvaXB2NC91ZHAuYyAgICAgICAgICAgICAg ICB8ICA5ICsrKysrKystLQogMyBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcmN1bGlzdF9udWxscy5oIGIv aW5jbHVkZS9saW51eC9yY3VsaXN0X251bGxzLmgKaW5kZXggMWMzM2RkNy4uNGFlOTVmNyAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9saW51eC9yY3VsaXN0X251bGxzLmgKKysrIGIvaW5jbHVkZS9saW51 eC9yY3VsaXN0X251bGxzLmgKQEAgLTk4LDYgKzk4LDQ1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBo bGlzdF9udWxsc19hZGRfaGVhZF9yY3Uoc3RydWN0IGhsaXN0X251bGxzX25vZGUgKm4sCiAJaWYg KCFpc19hX251bGxzKGZpcnN0KSkKIAkJZmlyc3QtPnBwcmV2ID0gJm4tPm5leHQ7CiB9CisKKy8q KgorICogaGxpc3RfbnVsbHNfYWRkX3RhaWxfcmN1CisgKiBAbjogdGhlIGVsZW1lbnQgdG8gYWRk IHRvIHRoZSBoYXNoIGxpc3QuCisgKiBAaDogdGhlIGxpc3QgdG8gYWRkIHRvLgorICoKKyAqIERl c2NyaXB0aW9uOgorICogQWRkcyB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgdG8gdGhlIGVuZCBvZiB0 aGUgc3BlY2lmaWVkIGhsaXN0X251bGxzLAorICogd2hpbGUgcGVybWl0dGluZyByYWNpbmcgdHJh dmVyc2Fscy4gIE5PVEU6IHRhaWwgaW5zZXJ0aW9uIHJlcXVpcmVzCisgKiBsaXN0IHRyYXZlcnNh bC4KKyAqCisgKiBUaGUgY2FsbGVyIG11c3QgdGFrZSB3aGF0ZXZlciBwcmVjYXV0aW9ucyBhcmUg bmVjZXNzYXJ5CisgKiAoc3VjaCBhcyBob2xkaW5nIGFwcHJvcHJpYXRlIGxvY2tzKSB0byBhdm9p ZCByYWNpbmcKKyAqIHdpdGggYW5vdGhlciBsaXN0LW11dGF0aW9uIHByaW1pdGl2ZSwgc3VjaCBh cyBobGlzdF9udWxsc19hZGRfaGVhZF9yY3UoKQorICogb3IgaGxpc3RfbnVsbHNfZGVsX3JjdSgp LCBydW5uaW5nIG9uIHRoaXMgc2FtZSBsaXN0LgorICogSG93ZXZlciwgaXQgaXMgcGVyZmVjdGx5 IGxlZ2FsIHRvIHJ1biBjb25jdXJyZW50bHkgd2l0aAorICogdGhlIF9yY3UgbGlzdC10cmF2ZXJz YWwgcHJpbWl0aXZlcywgc3VjaCBhcworICogaGxpc3RfbnVsbHNfZm9yX2VhY2hfZW50cnlfcmN1 KCksIHVzZWQgdG8gcHJldmVudCBtZW1vcnktY29uc2lzdGVuY3kKKyAqIHByb2JsZW1zIG9uIEFs cGhhIENQVXMuICBSZWdhcmRsZXNzIG9mIHRoZSB0eXBlIG9mIENQVSwgdGhlCisgKiBsaXN0LXRy YXZlcnNhbCBwcmltaXRpdmUgbXVzdCBiZSBndWFyZGVkIGJ5IHJjdV9yZWFkX2xvY2soKS4KKyAq Lworc3RhdGljIGlubGluZSB2b2lkIGhsaXN0X251bGxzX2FkZF90YWlsX3JjdShzdHJ1Y3QgaGxp c3RfbnVsbHNfbm9kZSAqbiwKKwkJCQkJc3RydWN0IGhsaXN0X251bGxzX2hlYWQgKmgpCit7CisJ c3RydWN0IGhsaXN0X251bGxzX25vZGUgKmksICpsYXN0ID0gTlVMTDsKKworCWZvciAoaSA9IGhs aXN0X251bGxzX2ZpcnN0X3JjdShoKTsgIWlzX2FfbnVsbHMoaSk7CisJICAgICBpID0gaGxpc3Rf bnVsbHNfbmV4dF9yY3UoaSkpCisJCWxhc3QgPSBpOworCisJaWYgKGxhc3QpIHsKKwkJbi0+bmV4 dCA9IGxhc3QtPm5leHQ7CisJCW4tPnBwcmV2ID0gJmxhc3QtPm5leHQ7CisJCXJjdV9hc3NpZ25f cG9pbnRlcihobGlzdF9udWxsc19uZXh0X3JjdShsYXN0KSwgbik7CisJfSBlbHNlIHsKKwkJaGxp c3RfbnVsbHNfYWRkX2hlYWRfcmN1KG4sIGgpOworCX0KK30KKwogLyoqCiAgKiBobGlzdF9udWxs c19mb3JfZWFjaF9lbnRyeV9yY3UgLSBpdGVyYXRlIG92ZXIgcmN1IGxpc3Qgb2YgZ2l2ZW4gdHlw ZQogICogQHRwb3M6CXRoZSB0eXBlICogdG8gdXNlIGFzIGEgbG9vcCBjdXJzb3IuCmRpZmYgLS1n aXQgYS9pbmNsdWRlL25ldC9zb2NrLmggYi9pbmNsdWRlL25ldC9zb2NrLmgKaW5kZXggZjVlYTE0 OC4uM2M2ODhjYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc29jay5oCisrKyBiL2luY2x1ZGUv bmV0L3NvY2suaApAQCAtNjMwLDcgKzYzMCwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2tfYWRk X25vZGVfcmN1KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGhsaXN0X2hlYWQgKmxpc3QpCiAKIHN0 YXRpYyBpbmxpbmUgdm9pZCBfX3NrX251bGxzX2FkZF9ub2RlX3JjdShzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBobGlzdF9udWxsc19oZWFkICpsaXN0KQogewotCWhsaXN0X251bGxzX2FkZF9oZWFk X3JjdSgmc2stPnNrX251bGxzX25vZGUsIGxpc3QpOworCWlmIChJU19FTkFCTEVEKENPTkZJR19J UFY2KSAmJiBzay0+c2tfcmV1c2Vwb3J0ICYmCisJICAgIHNrLT5za19mYW1pbHkgPT0gQUZfSU5F VDYpCisJCWhsaXN0X251bGxzX2FkZF90YWlsX3JjdSgmc2stPnNrX251bGxzX25vZGUsIGxpc3Qp OworCWVsc2UKKwkJaGxpc3RfbnVsbHNfYWRkX2hlYWRfcmN1KCZzay0+c2tfbnVsbHNfbm9kZSwg bGlzdCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBza19udWxsc19hZGRfbm9kZV9yY3Uoc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaGxpc3RfbnVsbHNfaGVhZCAqbGlzdCkKZGlmZiAtLWdpdCBh L25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXggZWI4OTMzYi4uNTYyMThmZiAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQvdWRwLmMKQEAgLTMzOSw4 ICszMzksMTMgQEAgZm91bmQ6CiAKIAkJaHNsb3QyID0gdWRwX2hhc2hzbG90Mih1ZHB0YWJsZSwg dWRwX3NrKHNrKS0+dWRwX3BvcnRhZGRyX2hhc2gpOwogCQlzcGluX2xvY2soJmhzbG90Mi0+bG9j ayk7Ci0JCWhsaXN0X251bGxzX2FkZF9oZWFkX3JjdSgmdWRwX3NrKHNrKS0+dWRwX3BvcnRhZGRy X25vZGUsCi0JCQkJCSAmaHNsb3QyLT5oZWFkKTsKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX0lQ VjYpICYmIHNrLT5za19yZXVzZXBvcnQgJiYKKwkJCXNrLT5za19mYW1pbHkgPT0gQUZfSU5FVDYp CisJCQlobGlzdF9udWxsc19hZGRfdGFpbF9yY3UoJnVkcF9zayhzayktPnVkcF9wb3J0YWRkcl9u b2RlLAorCQkJCQkJICZoc2xvdDItPmhlYWQpOworCQllbHNlCisJCQlobGlzdF9udWxsc19hZGRf aGVhZF9yY3UoJnVkcF9zayhzayktPnVkcF9wb3J0YWRkcl9ub2RlLAorCQkJCQkJICZoc2xvdDIt PmhlYWQpOwogCQloc2xvdDItPmNvdW50Kys7CiAJCXNwaW5fdW5sb2NrKCZoc2xvdDItPmxvY2sp OwogCX0KLS0gCjIuMS4wCgoKRnJvbSBjZmZkYTgxZDVkMDM1NWUxZjhjOGQ5MjQyNWIxNDM4ZGRk YmU4MmJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQm9ya21hbm4gPGRh bmllbEBpb2dlYXJib3gubmV0PgpEYXRlOiBTYXQsIDIwIEZlYiAyMDE2IDAwOjI5OjMwICswMTAw ClN1YmplY3Q6IFtQQVRDSCAwOC80Ml0gbmV0OiB1c2Ugc2tiX3Bvc3RwdXNoX3Jjc3VtIGluc3Rl YWQgb2Ygb3duCiBpbXBsZW1lbnRhdGlvbnMKClsgVXBzdHJlYW0gY29tbWl0IDZiODNkMjhhNTVh ODkxYTlkNzBmYzYxY2NiMWMxMzhlNDdkY2JlNzQgXQoKUmVwbGFjZSBpbmRpdmlkdWFsIGltcGxl bWVudGF0aW9ucyB3aXRoIHRoZSByZWNlbnRseSBpbnRyb2R1Y2VkCnNrYl9wb3N0cHVzaF9yY3N1 bSgpIGhlbHBlci4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2Vh cmJveC5uZXQ+CkFja2VkLWJ5OiBUb20gSGVyYmVydCA8dG9tQGhlcmJlcnRsYW5kLmNvbT4KQWNr ZWQtYnk6IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9za2J1 ZmYuYyAgICAgICAgICAgICAgfCA0ICstLS0KIG5ldC9pcHY2L3JlYXNzZW1ibHkuYyAgICAgICAg ICB8IDYgKystLS0tCiBuZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jICAgICAgfCA4ICsrKy0tLS0t CiBuZXQvb3BlbnZzd2l0Y2gvdnBvcnQtbmV0ZGV2LmMgfCAyICstCiBuZXQvb3BlbnZzd2l0Y2gv dnBvcnQuaCAgICAgICAgfCA3IC0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25z KCspLCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9za2J1ZmYuYyBiL25l dC9jb3JlL3NrYnVmZi5jCmluZGV4IDg2MTZkMTEuLjc4YWJlMTEgMTAwNjQ0Ci0tLSBhL25ldC9j b3JlL3NrYnVmZi5jCisrKyBiL25ldC9jb3JlL3NrYnVmZi5jCkBAIC00NDMzLDkgKzQ0MzMsNyBA QCBpbnQgc2tiX3ZsYW5fcHVzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMTYgdmxhbl9wcm90 bywgdTE2IHZsYW5fdGNpKQogCQlza2ItPm1hY19sZW4gKz0gVkxBTl9ITEVOOwogCQlfX3NrYl9w dWxsKHNrYiwgb2Zmc2V0KTsKIAotCQlpZiAoc2tiLT5pcF9zdW1tZWQgPT0gQ0hFQ0tTVU1fQ09N UExFVEUpCi0JCQlza2ItPmNzdW0gPSBjc3VtX2FkZChza2ItPmNzdW0sIGNzdW1fcGFydGlhbChz a2ItPmRhdGEKLQkJCQkJKyAoMiAqIEVUSF9BTEVOKSwgVkxBTl9ITEVOLCAwKSk7CisJCXNrYl9w b3N0cHVzaF9yY3N1bShza2IsIHNrYi0+ZGF0YSArICgyICogRVRIX0FMRU4pLCBWTEFOX0hMRU4p OwogCX0KIAlfX3ZsYW5faHdhY2NlbF9wdXRfdGFnKHNrYiwgdmxhbl9wcm90bywgdmxhbl90Y2kp OwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcmVhc3NlbWJseS5jIGIvbmV0L2lw djYvcmVhc3NlbWJseS5jCmluZGV4IDE4ZjM0OTguLmUyZWEzMTEgMTAwNjQ0Ci0tLSBhL25ldC9p cHY2L3JlYXNzZW1ibHkuYworKysgYi9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMKQEAgLTQ5NiwxMCAr NDk2LDggQEAgc3RhdGljIGludCBpcDZfZnJhZ19yZWFzbShzdHJ1Y3QgZnJhZ19xdWV1ZSAqZnEs IHN0cnVjdCBza19idWZmICpwcmV2LAogCUlQNkNCKGhlYWQpLT5mbGFncyB8PSBJUDZTS0JfRlJB R01FTlRFRDsKIAogCS8qIFllcywgYW5kIGZvbGQgcmVkdW5kYW50IGNoZWNrc3VtIGJhY2suIDgp ICovCi0JaWYgKGhlYWQtPmlwX3N1bW1lZCA9PSBDSEVDS1NVTV9DT01QTEVURSkKLQkJaGVhZC0+ Y3N1bSA9IGNzdW1fcGFydGlhbChza2JfbmV0d29ya19oZWFkZXIoaGVhZCksCi0JCQkJCSAgc2ti X25ldHdvcmtfaGVhZGVyX2xlbihoZWFkKSwKLQkJCQkJICBoZWFkLT5jc3VtKTsKKwlza2JfcG9z dHB1c2hfcmNzdW0oaGVhZCwgc2tiX25ldHdvcmtfaGVhZGVyKGhlYWQpLAorCQkJICAgc2tiX25l dHdvcmtfaGVhZGVyX2xlbihoZWFkKSk7CiAKIAlyY3VfcmVhZF9sb2NrKCk7CiAJSVA2X0lOQ19T VEFUU19CSChuZXQsIF9faW42X2Rldl9nZXQoZGV2KSwgSVBTVEFUU19NSUJfUkVBU01PS1MpOwpk aWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYyBiL25ldC9vcGVudnN3aXRjaC9h Y3Rpb25zLmMKaW5kZXggMmQ1OWRmNS4uZTlkZDQ3YiAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dp dGNoL2FjdGlvbnMuYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCkBAIC0xNTgsOSAr MTU4LDcgQEAgc3RhdGljIGludCBwdXNoX21wbHMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IHN3X2Zsb3dfa2V5ICprZXksCiAJbmV3X21wbHNfbHNlID0gKF9fYmUzMiAqKXNrYl9tcGxzX2hl YWRlcihza2IpOwogCSpuZXdfbXBsc19sc2UgPSBtcGxzLT5tcGxzX2xzZTsKIAotCWlmIChza2It PmlwX3N1bW1lZCA9PSBDSEVDS1NVTV9DT01QTEVURSkKLQkJc2tiLT5jc3VtID0gY3N1bV9hZGQo c2tiLT5jc3VtLCBjc3VtX3BhcnRpYWwobmV3X21wbHNfbHNlLAotCQkJCQkJCSAgICAgTVBMU19I TEVOLCAwKSk7CisJc2tiX3Bvc3RwdXNoX3Jjc3VtKHNrYiwgbmV3X21wbHNfbHNlLCBNUExTX0hM RU4pOwogCiAJaGRyID0gZXRoX2hkcihza2IpOwogCWhkci0+aF9wcm90byA9IG1wbHMtPm1wbHNf ZXRoZXJ0eXBlOwpAQCAtMjgwLDcgKzI3OCw3IEBAIHN0YXRpYyBpbnQgc2V0X2V0aF9hZGRyKHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqZmxvd19rZXksCiAJZXRoZXJf YWRkcl9jb3B5X21hc2tlZChldGhfaGRyKHNrYiktPmhfZGVzdCwga2V5LT5ldGhfZHN0LAogCQkJ ICAgICAgIG1hc2stPmV0aF9kc3QpOwogCi0Jb3ZzX3NrYl9wb3N0cHVzaF9yY3N1bShza2IsIGV0 aF9oZHIoc2tiKSwgRVRIX0FMRU4gKiAyKTsKKwlza2JfcG9zdHB1c2hfcmNzdW0oc2tiLCBldGhf aGRyKHNrYiksIEVUSF9BTEVOICogMik7CiAKIAlldGhlcl9hZGRyX2NvcHkoZmxvd19rZXktPmV0 aC5zcmMsIGV0aF9oZHIoc2tiKS0+aF9zb3VyY2UpOwogCWV0aGVyX2FkZHJfY29weShmbG93X2tl eS0+ZXRoLmRzdCwgZXRoX2hkcihza2IpLT5oX2Rlc3QpOwpAQCAtNjM5LDcgKzYzNyw3IEBAIHN0 YXRpYyBpbnQgb3ZzX3Zwb3J0X291dHB1dChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHNrX2J1ZmYgKnNrCiAJLyogUmVjb25zdHJ1Y3QgdGhlIE1BQyBoZWFkZXIuICAq LwogCXNrYl9wdXNoKHNrYiwgZGF0YS0+bDJfbGVuKTsKIAltZW1jcHkoc2tiLT5kYXRhLCAmZGF0 YS0+bDJfZGF0YSwgZGF0YS0+bDJfbGVuKTsKLQlvdnNfc2tiX3Bvc3RwdXNoX3Jjc3VtKHNrYiwg c2tiLT5kYXRhLCBkYXRhLT5sMl9sZW4pOworCXNrYl9wb3N0cHVzaF9yY3N1bShza2IsIHNrYi0+ ZGF0YSwgZGF0YS0+bDJfbGVuKTsKIAlza2JfcmVzZXRfbWFjX2hlYWRlcihza2IpOwogCiAJb3Zz X3Zwb3J0X3NlbmQodnBvcnQsIHNrYik7CmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvdnBv cnQtbmV0ZGV2LmMgYi9uZXQvb3BlbnZzd2l0Y2gvdnBvcnQtbmV0ZGV2LmMKaW5kZXggNmE2YWRm My4uNGUzOTcyMyAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL3Zwb3J0LW5ldGRldi5jCisr KyBiL25ldC9vcGVudnN3aXRjaC92cG9ydC1uZXRkZXYuYwpAQCAtNTgsNyArNTgsNyBAQCBzdGF0 aWMgdm9pZCBuZXRkZXZfcG9ydF9yZWNlaXZlKHN0cnVjdCBza19idWZmICpza2IpCiAJCXJldHVy bjsKIAogCXNrYl9wdXNoKHNrYiwgRVRIX0hMRU4pOwotCW92c19za2JfcG9zdHB1c2hfcmNzdW0o c2tiLCBza2ItPmRhdGEsIEVUSF9ITEVOKTsKKwlza2JfcG9zdHB1c2hfcmNzdW0oc2tiLCBza2It PmRhdGEsIEVUSF9ITEVOKTsKIAlvdnNfdnBvcnRfcmVjZWl2ZSh2cG9ydCwgc2tiLCBza2JfdHVu bmVsX2luZm8oc2tiKSk7CiAJcmV0dXJuOwogZXJyb3I6CmRpZmYgLS1naXQgYS9uZXQvb3BlbnZz d2l0Y2gvdnBvcnQuaCBiL25ldC9vcGVudnN3aXRjaC92cG9ydC5oCmluZGV4IGMxMDg5OWNiLi5m MDFmMjhhIDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gvdnBvcnQuaAorKysgYi9uZXQvb3Bl bnZzd2l0Y2gvdnBvcnQuaApAQCAtMTg1LDEzICsxODUsNiBAQCBzdGF0aWMgaW5saW5lIHN0cnVj dCB2cG9ydCAqdnBvcnRfZnJvbV9wcml2KHZvaWQgKnByaXYpCiBpbnQgb3ZzX3Zwb3J0X3JlY2Vp dmUoc3RydWN0IHZwb3J0ICosIHN0cnVjdCBza19idWZmICosCiAJCSAgICAgIGNvbnN0IHN0cnVj dCBpcF90dW5uZWxfaW5mbyAqKTsKIAotc3RhdGljIGlubGluZSB2b2lkIG92c19za2JfcG9zdHB1 c2hfcmNzdW0oc3RydWN0IHNrX2J1ZmYgKnNrYiwKLQkJCQkgICAgICBjb25zdCB2b2lkICpzdGFy dCwgdW5zaWduZWQgaW50IGxlbikKLXsKLQlpZiAoc2tiLT5pcF9zdW1tZWQgPT0gQ0hFQ0tTVU1f Q09NUExFVEUpCi0JCXNrYi0+Y3N1bSA9IGNzdW1fYWRkKHNrYi0+Y3N1bSwgY3N1bV9wYXJ0aWFs KHN0YXJ0LCBsZW4sIDApKTsKLX0KLQogc3RhdGljIGlubGluZSBjb25zdCBjaGFyICpvdnNfdnBv cnRfbmFtZShzdHJ1Y3QgdnBvcnQgKnZwb3J0KQogewogCXJldHVybiB2cG9ydC0+ZGV2LT5uYW1l OwotLSAKMi4xLjAKCgpGcm9tIDQwZTk1OWQ1ZjNkOGI4NmQ5OTc4NzRiY2QxY2NmMmM2YjNmOWY5 OTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVs QGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFNhdCwgMTYgQXByIDIwMTYgMDI6Mjc6NTggKzAyMDAKU3Vi amVjdDogW1BBVENIIDA5LzQyXSB2bGFuOiBwdWxsIG9uIF9fdmxhbl9pbnNlcnRfdGFnIGVycm9y IHBhdGggYW5kIGZpeCBjc3VtCiBjb3JyZWN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA5MjQxZTJk ZjRmYmM2NDhhOTJlYTA3NTI5MThlMDVjMjYyNTU2NDllIF0KCldoZW4gX192bGFuX2luc2VydF90 YWcoKSBmYWlscyBmcm9tIHNrYl92bGFuX3B1c2goKSBwYXRoIGR1ZSB0byB0aGUKc2tiX2Nvd19o ZWFkKCksIHdlIG5lZWQgdG8gdW5kbyB0aGUgX19za2JfcHVzaCgpIGluIHRoZSBlcnJvciBwYXRo CmFzIHdlbGwgdGhhdCB3YXMgZG9uZSBlYXJsaWVyIHRvIG1vdmUgc2tiLT5kYXRhIHBvaW50ZXIg dG8gbWFjIGhlYWRlci4KCk1vcmVvdmVyLCBJIG5vdGljZWQgdGhhdCB3aGVuIGluIHRoZSBub24t ZXJyb3IgcGF0aCB0aGUgX19za2JfcHVsbCgpCmlzIGRvbmUgYW5kIHRoZSBvcmlnaW5hbCBvZmZz ZXQgdG8gbWFjIGhlYWRlciB3YXMgbm9uLXplcm8sIHdlIGZpeHVwCmZyb20gYSB3cm9uZyBza2It PmRhdGEgb2Zmc2V0IGluIHRoZSBjaGVja3N1bSBjb21wbGV0ZSBwcm9jZXNzaW5nLgoKU28gdGhl IHNrYl9wb3N0cHVzaF9yY3N1bSgpIHJlYWxseSBuZWVkcyB0byBiZSBkb25lIGJlZm9yZSBfX3Nr Yl9wdWxsKCkKd2hlcmUgc2tiLT5kYXRhIHN0aWxsIHBvaW50cyB0byB0aGUgbWFjIGhlYWRlciBz dGFydCBhbmQgdGh1cyBvcGVyYXRlcwp1bmRlciB0aGUgc2FtZSBjb25kaXRpb25zIGFzIGluIF9f dmxhbl9pbnNlcnRfdGFnKCkuCgpGaXhlczogOTM1MTVkNTNiMTMzICgibmV0OiBtb3ZlIHZsYW4g cG9wL3B1c2ggZnVuY3Rpb25zIGludG8gY29tbW9uIGNvZGUiKQpTaWduZWQtb2ZmLWJ5OiBEYW5p ZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpSZXZpZXdlZC1ieTogSmlyaSBQaXJr byA8amlyaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9za2J1ZmYuYyB8IDcgKysrKystLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvY29yZS9za2J1ZmYuYyBiL25ldC9jb3JlL3NrYnVmZi5jCmluZGV4IDc4YWJlMTEuLjk4 MzVkOWEgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NrYnVmZi5jCisrKyBiL25ldC9jb3JlL3NrYnVm Zi5jCkBAIC00NDI3LDEzICs0NDI3LDE2IEBAIGludCBza2Jfdmxhbl9wdXNoKHN0cnVjdCBza19i dWZmICpza2IsIF9fYmUxNiB2bGFuX3Byb3RvLCB1MTYgdmxhbl90Y2kpCiAJCV9fc2tiX3B1c2go c2tiLCBvZmZzZXQpOwogCQllcnIgPSBfX3ZsYW5faW5zZXJ0X3RhZyhza2IsIHNrYi0+dmxhbl9w cm90bywKIAkJCQkJc2tiX3ZsYW5fdGFnX2dldChza2IpKTsKLQkJaWYgKGVycikKKwkJaWYgKGVy cikgeworCQkJX19za2JfcHVsbChza2IsIG9mZnNldCk7CiAJCQlyZXR1cm4gZXJyOworCQl9CisK IAkJc2tiLT5wcm90b2NvbCA9IHNrYi0+dmxhbl9wcm90bzsKIAkJc2tiLT5tYWNfbGVuICs9IFZM QU5fSExFTjsKLQkJX19za2JfcHVsbChza2IsIG9mZnNldCk7CiAKIAkJc2tiX3Bvc3RwdXNoX3Jj c3VtKHNrYiwgc2tiLT5kYXRhICsgKDIgKiBFVEhfQUxFTiksIFZMQU5fSExFTik7CisJCV9fc2ti X3B1bGwoc2tiLCBvZmZzZXQpOwogCX0KIAlfX3ZsYW5faHdhY2NlbF9wdXRfdGFnKHNrYiwgdmxh bl9wcm90bywgdmxhbl90Y2kpOwogCXJldHVybiAwOwotLSAKMi4xLjAKCgpGcm9tIGM0MzcyMjhl NGRhOGMxYjYxZDBmMzBkMjM2OTdkOTMzNjFjYzAxYWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEpvZSBTdHJpbmdlciA8am9lQG92bi5vcmc+CkRhdGU6IE1vbiwgMTggQXByIDIwMTYg MTQ6NTE6NDcgLTA3MDAKU3ViamVjdDogW1BBVENIIDEwLzQyXSBvcGVudnN3aXRjaDogT3JwaGFu IHNrYnMgYmVmb3JlIElQdjYgZGVmcmFnCgpbIFVwc3RyZWFtIGNvbW1pdCA0OWUyNjFhOGEyMWUw OTYwYTNmN2ZmMTg3YTQ1M2JhMWMxMTQ5MDUzIF0KClRoaXMgaXMgdGhlIElQdjYgY291bnRlcnBh cnQgdG8gY29tbWl0IDgyODJmMjc0NDliZiAoImluZXQ6IGZyYWc6IEFsd2F5cwpvcnBoYW4gc2ti cyBpbnNpZGUgaXBfZGVmcmFnKCkiKS4KClByaW9yIHRvIGNvbW1pdCAwMjlmN2YzYjg3MDEgKCJu ZXRmaWx0ZXI6IGlwdjY6IG5mX2RlZnJhZzogYXZvaWQvZnJlZQpjbG9uZSBvcGVyYXRpb25zIiks IGlwdjYgZnJhZ21lbnRzIHNlbnQgdG8gbmZfY3RfZnJhZzZfZ2F0aGVyKCkgd291bGQgYmUKY2xv bmVkIChpbXBsaWNpdGx5IG9ycGhhbmluZykgcHJpb3IgdG8gcXVldWVpbmcgZm9yIHJlYXNzZW1i bHkuIEFzIHN1Y2gsCndoZW4gdGhlIElQdjYgbWVzc2FnZSBpcyBldmVudHVhbGx5IHJlYXNzZW1i bGVkLCB0aGUgc2tiLT5zayBmb3IgYWxsCmZyYWdtZW50cyB3b3VsZCBiZSBOVUxMLiBBZnRlciB0 aGF0IGNvbW1pdCB3YXMgaW50cm9kdWNlZCwgcmF0aGVyIHRoYW4KY2xvbmluZywgdGhlIG9yaWdp bmFsIHNrYnMgd2VyZSBxdWV1ZWQgZGlyZWN0bHkgd2l0aG91dCBvcnBoYW5pbmcuIFRoZQplbmQg cmVzdWx0IGlzIHRoYXQgYWxsIGZyYWdzIGV4Y2VwdCBmb3IgdGhlIGZpcnN0IGFuZCBsYXN0IG1h eSBoYXZlIGEKc29ja2V0IGF0dGFjaGVkLgoKVGhpcyBjb21taXQgZXhwbGljaXRseSBvcnBoYW5z IHN1Y2ggc2ticyBkdXJpbmcgbmZfY3RfZnJhZzZfZ2F0aGVyKCkgdG8KcHJldmVudCBCVUdfT04o c2tiLT5zaykgZHVyaW5nIGEgbGF0ZXIgY2FsbCB0byBpcDZfZnJhZ21lbnQoKS4KCmtlcm5lbCBC VUcgYXQgbmV0L2lwdjYvaXA2X291dHB1dC5jOjYzMSEKWy4uLl0KQ2FsbCBUcmFjZToKIDxJUlE+ CiBbPGZmZmZmZmZmODEwYmU4Zjc+XSA/IF9fbG9ja19hY3F1aXJlKzB4OTI3LzB4MjBhMAogWzxm ZmZmZmZmZmEwNDJjN2MwPl0gPyBkb19vdXRwdXQuaXNyYS4yOCsweDFiMC8weDFiMCBbb3BlbnZz d2l0Y2hdCiBbPGZmZmZmZmZmODEwYmI4YTI+XSA/IF9fbG9ja19pc19oZWxkKzB4NTIvMHg3MAog WzxmZmZmZmZmZmEwNDJjNTg3Pl0gb3ZzX2ZyYWdtZW50KzB4MWY3LzB4MjgwIFtvcGVudnN3aXRj aF0KIFs8ZmZmZmZmZmY4MTBiZGFiNT5dID8gbWFya19oZWxkX2xvY2tzKzB4NzUvMHhhMAogWzxm ZmZmZmZmZjgxN2JlNDE2Pl0gPyBfcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHgzNi8weDUw CiBbPGZmZmZmZmZmODE2OTdlYTA+XSA/IGRzdF9kaXNjYXJkX291dCsweDIwLzB4MjAKIFs8ZmZm ZmZmZmY4MTY5N2U4MD5dID8gZHN0X2lmZG93bisweDgwLzB4ODAKIFs8ZmZmZmZmZmZhMDQyYzcw Mz5dIGRvX291dHB1dC5pc3JhLjI4KzB4ZjMvMHgxYjAgW29wZW52c3dpdGNoXQogWzxmZmZmZmZm ZmEwNDJkMjc5Pl0gZG9fZXhlY3V0ZV9hY3Rpb25zKzB4NzA5LzB4MTJjMCBbb3BlbnZzd2l0Y2hd CiBbPGZmZmZmZmZmYTA0MzQwYTQ+XSA/IG92c19mbG93X3N0YXRzX3VwZGF0ZSsweDc0LzB4MWUw IFtvcGVudnN3aXRjaF0KIFs8ZmZmZmZmZmZhMDQzNDBkMT5dID8gb3ZzX2Zsb3dfc3RhdHNfdXBk YXRlKzB4YTEvMHgxZTAgW29wZW52c3dpdGNoXQogWzxmZmZmZmZmZjgxN2JlMzg3Pl0gPyBfcmF3 X3NwaW5fdW5sb2NrKzB4MjcvMHg0MAogWzxmZmZmZmZmZmEwNDJkZTc1Pl0gb3ZzX2V4ZWN1dGVf YWN0aW9ucysweDQ1LzB4MTIwIFtvcGVudnN3aXRjaF0KIFs8ZmZmZmZmZmZhMDQzMmQ2NT5dIG92 c19kcF9wcm9jZXNzX3BhY2tldCsweDg1LzB4MTUwIFtvcGVudnN3aXRjaF0KIFs8ZmZmZmZmZmY4 MTdiZTM4Nz5dID8gX3Jhd19zcGluX3VubG9jaysweDI3LzB4NDAKIFs8ZmZmZmZmZmZhMDQyZGVm ND5dIG92c19leGVjdXRlX2FjdGlvbnMrMHhjNC8weDEyMCBbb3BlbnZzd2l0Y2hdCiBbPGZmZmZm ZmZmYTA0MzJkNjU+XSBvdnNfZHBfcHJvY2Vzc19wYWNrZXQrMHg4NS8weDE1MCBbb3BlbnZzd2l0 Y2hdCiBbPGZmZmZmZmZmYTA0MzM3ZjI+XSA/IGtleV9leHRyYWN0KzB4NDQyLzB4YzEwIFtvcGVu dnN3aXRjaF0KIFs8ZmZmZmZmZmZhMDQzYjI2ZD5dIG92c192cG9ydF9yZWNlaXZlKzB4NWQvMHhi MCBbb3BlbnZzd2l0Y2hdCiBbPGZmZmZmZmZmODEwYmU4Zjc+XSA/IF9fbG9ja19hY3F1aXJlKzB4 OTI3LzB4MjBhMAogWzxmZmZmZmZmZjgxMGJlOGY3Pl0gPyBfX2xvY2tfYWNxdWlyZSsweDkyNy8w eDIwYTAKIFs8ZmZmZmZmZmY4MTBiZThmNz5dID8gX19sb2NrX2FjcXVpcmUrMHg5MjcvMHgyMGEw CiBbPGZmZmZmZmZmODE3YmU0MTY+XSA/IF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSsweDM2 LzB4NTAKIFs8ZmZmZmZmZmZhMDQzYzExZD5dIGludGVybmFsX2Rldl94bWl0KzB4NmQvMHgxNTAg W29wZW52c3dpdGNoXQogWzxmZmZmZmZmZmEwNDNjMGI1Pl0gPyBpbnRlcm5hbF9kZXZfeG1pdCsw eDUvMHgxNTAgW29wZW52c3dpdGNoXQogWzxmZmZmZmZmZjgxNjhmYjVmPl0gZGV2X2hhcmRfc3Rh cnRfeG1pdCsweDJkZi8weDY2MAogWzxmZmZmZmZmZjgxNjhmNWVhPl0gPyB2YWxpZGF0ZV94bWl0 X3NrYi5pc3JhLjEwNS5wYXJ0LjEwNisweDFhLzB4MmIwCiBbPGZmZmZmZmZmODE2OTA5MjU+XSBf X2Rldl9xdWV1ZV94bWl0KzB4OGY1LzB4OTUwCiBbPGZmZmZmZmZmODE2OTAwODA+XSA/IF9fZGV2 X3F1ZXVlX3htaXQrMHg1MC8weDk1MAogWzxmZmZmZmZmZjgxMGJkYWI1Pl0gPyBtYXJrX2hlbGRf bG9ja3MrMHg3NS8weGEwCiBbPGZmZmZmZmZmODE2OTA5OTA+XSBkZXZfcXVldWVfeG1pdCsweDEw LzB4MjAKIFs8ZmZmZmZmZmY4MTY5YTQxOD5dIG5laWdoX3Jlc29sdmVfb3V0cHV0KzB4MTc4LzB4 MjIwCiBbPGZmZmZmZmZmODE3NTI3NTk+XSA/IGlwNl9maW5pc2hfb3V0cHV0MisweDIxOS8weDdi MAogWzxmZmZmZmZmZjgxNzUyNzU5Pl0gaXA2X2ZpbmlzaF9vdXRwdXQyKzB4MjE5LzB4N2IwCiBb PGZmZmZmZmZmODE3NTI1YTU+XSA/IGlwNl9maW5pc2hfb3V0cHV0MisweDY1LzB4N2IwCiBbPGZm ZmZmZmZmODE2Y2RlMmI+XSA/IGlwX2lkZW50c19yZXNlcnZlKzB4NmIvMHg4MAogWzxmZmZmZmZm ZjgxNzU0ODhmPl0gPyBpcDZfZnJhZ21lbnQrMHg5M2YvMHhjNTAKIFs8ZmZmZmZmZmY4MTc1NGFm MT5dIGlwNl9mcmFnbWVudCsweGJhMS8weGM1MAogWzxmZmZmZmZmZjgxNzUyNTQwPl0gPyBpcDZf Zmx1c2hfcGVuZGluZ19mcmFtZXMrMHg0MC8weDQwCiBbPGZmZmZmZmZmODE3NTRjNmI+XSBpcDZf ZmluaXNoX291dHB1dCsweGNiLzB4MWQwCiBbPGZmZmZmZmZmODE3NTRkY2Y+XSBpcDZfb3V0cHV0 KzB4NWYvMHgxYTAKIFs8ZmZmZmZmZmY4MTc1NGJhMD5dID8gaXA2X2ZyYWdtZW50KzB4YzUwLzB4 YzUwCiBbPGZmZmZmZmZmODE3OTdmYmQ+XSBpcDZfbG9jYWxfb3V0KzB4M2QvMHg4MAogWzxmZmZm ZmZmZjgxNzU1NGRmPl0gaXA2X3NlbmRfc2tiKzB4MmYvMHhjMAogWzxmZmZmZmZmZjgxNzU1NWJk Pl0gaXA2X3B1c2hfcGVuZGluZ19mcmFtZXMrMHg0ZC8weDUwCiBbPGZmZmZmZmZmODE3Nzk2Y2M+ XSBpY21wdjZfcHVzaF9wZW5kaW5nX2ZyYW1lcysweGFjLzB4ZTAKIFs8ZmZmZmZmZmY4MTc3YTRi ZT5dIGljbXB2Nl9lY2hvX3JlcGx5KzB4NDJlLzB4NTAwCiBbPGZmZmZmZmZmODE3N2FjYmY+XSBp Y21wdjZfcmN2KzB4NGNmLzB4NTgwCiBbPGZmZmZmZmZmODE3NTVhYzc+XSBpcDZfaW5wdXRfZmlu aXNoKzB4MWE3LzB4NjkwCiBbPGZmZmZmZmZmODE3NTU5MjU+XSA/IGlwNl9pbnB1dF9maW5pc2gr MHg1LzB4NjkwCiBbPGZmZmZmZmZmODE3NTY3YTA+XSBpcDZfaW5wdXQrMHgzMC8weGEwCiBbPGZm ZmZmZmZmODE3NTU5MjA+XSA/IGlwNl9yY3ZfZmluaXNoKzB4MWEwLzB4MWEwCiBbPGZmZmZmZmZm ODE3NTU3Y2U+XSBpcDZfcmN2X2ZpbmlzaCsweDRlLzB4MWEwCiBbPGZmZmZmZmZmODE3NTY0MGY+ XSBpcHY2X3JjdisweDQ1Zi8weDdjMAogWzxmZmZmZmZmZjgxNzU1ZmU2Pl0gPyBpcHY2X3Jjdisw eDM2LzB4N2MwCiBbPGZmZmZmZmZmODE3NTU3ODA+XSA/IGlwNl9tYWtlX3NrYisweDFjMC8weDFj MAogWzxmZmZmZmZmZjgxNjhiNjQ5Pl0gX19uZXRpZl9yZWNlaXZlX3NrYl9jb3JlKzB4MjI5LzB4 YjgwCiBbPGZmZmZmZmZmODEwYmRhYjU+XSA/IG1hcmtfaGVsZF9sb2NrcysweDc1LzB4YTAKIFs8 ZmZmZmZmZmY4MTY4YzA3Zj5dID8gcHJvY2Vzc19iYWNrbG9nKzB4NmYvMHgyMzAKIFs8ZmZmZmZm ZmY4MTY4YmZiNj5dIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgxNi8weDcwCiBbPGZmZmZmZmZmODE2 OGMwODg+XSBwcm9jZXNzX2JhY2tsb2crMHg3OC8weDIzMAogWzxmZmZmZmZmZjgxNjhjMGVkPl0g PyBwcm9jZXNzX2JhY2tsb2crMHhkZC8weDIzMAogWzxmZmZmZmZmZjgxNjhkYjQzPl0gbmV0X3J4 X2FjdGlvbisweDIwMy8weDQ4MAogWzxmZmZmZmZmZjgxMGJkYWI1Pl0gPyBtYXJrX2hlbGRfbG9j a3MrMHg3NS8weGEwCiBbPGZmZmZmZmZmODE3YzE1NmU+XSBfX2RvX3NvZnRpcnErMHhkZS8weDQ5 ZgogWzxmZmZmZmZmZjgxNzUyNzY4Pl0gPyBpcDZfZmluaXNoX291dHB1dDIrMHgyMjgvMHg3YjAK IFs8ZmZmZmZmZmY4MTdjMDcwYz5dIGRvX3NvZnRpcnFfb3duX3N0YWNrKzB4MWMvMHgzMAogPEVP ST4KIFs8ZmZmZmZmZmY4MTA2Zjg4Yj5dIGRvX3NvZnRpcnEucGFydC4xOCsweDNiLzB4NDAKIFs8 ZmZmZmZmZmY4MTA2Zjk0Nj5dIF9fbG9jYWxfYmhfZW5hYmxlX2lwKzB4YjYvMHhjMAogWzxmZmZm ZmZmZjgxNzUyNzkxPl0gaXA2X2ZpbmlzaF9vdXRwdXQyKzB4MjUxLzB4N2IwCiBbPGZmZmZmZmZm ODE3NTRhZjE+XSA/IGlwNl9mcmFnbWVudCsweGJhMS8weGM1MAogWzxmZmZmZmZmZjgxNmNkZTJi Pl0gPyBpcF9pZGVudHNfcmVzZXJ2ZSsweDZiLzB4ODAKIFs8ZmZmZmZmZmY4MTc1NDg4Zj5dID8g aXA2X2ZyYWdtZW50KzB4OTNmLzB4YzUwCiBbPGZmZmZmZmZmODE3NTRhZjE+XSBpcDZfZnJhZ21l bnQrMHhiYTEvMHhjNTAKIFs8ZmZmZmZmZmY4MTc1MjU0MD5dID8gaXA2X2ZsdXNoX3BlbmRpbmdf ZnJhbWVzKzB4NDAvMHg0MAogWzxmZmZmZmZmZjgxNzU0YzZiPl0gaXA2X2ZpbmlzaF9vdXRwdXQr MHhjYi8weDFkMAogWzxmZmZmZmZmZjgxNzU0ZGNmPl0gaXA2X291dHB1dCsweDVmLzB4MWEwCiBb PGZmZmZmZmZmODE3NTRiYTA+XSA/IGlwNl9mcmFnbWVudCsweGM1MC8weGM1MAogWzxmZmZmZmZm ZjgxNzk3ZmJkPl0gaXA2X2xvY2FsX291dCsweDNkLzB4ODAKIFs8ZmZmZmZmZmY4MTc1NTRkZj5d IGlwNl9zZW5kX3NrYisweDJmLzB4YzAKIFs8ZmZmZmZmZmY4MTc1NTViZD5dIGlwNl9wdXNoX3Bl bmRpbmdfZnJhbWVzKzB4NGQvMHg1MAogWzxmZmZmZmZmZjgxNzc4NTU4Pl0gcmF3djZfc2VuZG1z ZysweGEyOC8weGUzMAogWzxmZmZmZmZmZjgxNzE5MDk3Pl0gPyBpbmV0X3NlbmRtc2crMHhjNy8w eDFkMAogWzxmZmZmZmZmZjgxNzE5MGQ2Pl0gaW5ldF9zZW5kbXNnKzB4MTA2LzB4MWQwCiBbPGZm ZmZmZmZmODE3MThmZDU+XSA/IGluZXRfc2VuZG1zZysweDUvMHgxZDAKIFs8ZmZmZmZmZmY4MTY2 ZDA3OD5dIHNvY2tfc2VuZG1zZysweDM4LzB4NTAKIFs8ZmZmZmZmZmY4MTY2ZDRkNj5dIFNZU0Nf c2VuZHRvKzB4ZjYvMHgxNzAKIFs8ZmZmZmZmZmY4MTAwMjAxYj5dID8gdHJhY2VfaGFyZGlycXNf b25fdGh1bmsrMHgxYi8weDFkCiBbPGZmZmZmZmZmODE2NmUzOGU+XSBTeVNfc2VuZHRvKzB4ZS8w eDEwCiBbPGZmZmZmZmZmODE3YmViZTU+XSBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MTgv MHhhOApDb2RlOiAwNiA0OCA4MyAzZiAwMCA3NSAyNiA0OCA4YiA4NyBkOCAwMCAwMCAwMCAyYiA4 NyBkMCAwMCAwMCAwMCA0OCAzOSBkMCA3MiAxNCA4YiA4NyBlNCAwMCAwMCAwMCA4MyBmOCAwMSA3 NSAwOSA0OCA4MyA3ZiAxOCAwMCA3NCA5YSA8MGY+IDBiIDQxIDhiIDg2IGNjIDAwIDAwIDAwIDQ5 IDgjClJJUCAgWzxmZmZmZmZmZjgxNzU0NjhhPl0gaXA2X2ZyYWdtZW50KzB4NzNhLzB4YzUwCiBS U1AgPGZmZmY4ODAwNzI4MDMxMjA+CgpGaXhlczogMDI5ZjdmM2I4NzAxICgibmV0ZmlsdGVyOiBp cHY2OiBuZl9kZWZyYWc6IGF2b2lkL2ZyZWUgY2xvbmUKb3BlcmF0aW9ucyIpClJlcG9ydGVkLWJ5 OiBEYW5pZWxlIERpIFByb2lldHRvIDxkaXByb2lldHRvZEB2bXdhcmUuY29tPgpTaWduZWQtb2Zm LWJ5OiBKb2UgU3RyaW5nZXIgPGpvZUBvdm4ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L29wZW52c3dpdGNoL2Nvbm50cmFj ay5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9u ZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMgYi9uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMK aW5kZXggZWU2ZmY4Zi4uOWU1YjlmYyAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2Nvbm50 cmFjay5jCisrKyBiL25ldC9vcGVudnN3aXRjaC9jb25udHJhY2suYwpAQCAtMzIwLDYgKzMyMCw3 IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2ZyYWdtZW50cyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBz d19mbG93X2tleSAqa2V5LAogCX0gZWxzZSBpZiAoa2V5LT5ldGgudHlwZSA9PSBodG9ucyhFVEhf UF9JUFY2KSkgewogCQllbnVtIGlwNl9kZWZyYWdfdXNlcnMgdXNlciA9IElQNl9ERUZSQUdfQ09O TlRSQUNLX0lOICsgem9uZTsKIAorCQlza2Jfb3JwaGFuKHNrYik7CiAJCW1lbXNldChJUDZDQihz a2IpLCAwLCBzaXplb2Yoc3RydWN0IGluZXQ2X3NrYl9wYXJtKSk7CiAJCWVyciA9IG5mX2N0X2Zy YWc2X2dhdGhlcihuZXQsIHNrYiwgdXNlcik7CiAJCWlmIChlcnIpCi0tIAoyLjEuMAoKCkZyb20g ZDRkYjU1MDUxNWY2OGM4ODIxYzBhYTAzZmU3MzlkM2VlMzc2NzI5MiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KRGF0ZTog V2VkLCAyMCBBcHIgMjAxNiAyMzoyMzowOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTEvNDJdIGF0 bDI6IERpc2FibGUgdW5pbXBsZW1lbnRlZCBzY2F0dGVyL2dhdGhlciBmZWF0dXJlCgpbIFVwc3Ry ZWFtIGNvbW1pdCBmNDNiZmFlZGRjNzllZmZiZjNkMGZjYjUzY2E0NzdjY2E2NmYzZGI4IF0KCmF0 bDIgaW5jbHVkZXMgTkVUSUZfRl9TRyBpbiBod19mZWF0dXJlcyBldmVuIHRob3VnaCBpdCBoYXMg bm8gc3VwcG9ydApmb3Igbm9uLWxpbmVhciBza2JzLiAgVGhpcyBidWcgd2FzIG9yaWdpbmFsbHkg aGFybWxlc3Mgc2luY2UgdGhlCmRyaXZlciBkb2VzIG5vdCBjbGFpbSB0byBpbXBsZW1lbnQgY2hl Y2tzdW0gb2ZmbG9hZCBhbmQgdGhhdCB1c2VkIHRvCmJlIGEgcmVxdWlyZW1lbnQgZm9yIFNHLgoK Tm93IHRoYXQgU0cgYW5kIGNoZWNrc3VtIG9mZmxvYWQgYXJlIGluZGVwZW5kZW50IGZlYXR1cmVz LCBpZiB5b3UKZXhwbGljaXRseSBlbmFibGUgU0cgKmFuZCogdXNlIG9uZSBvZiB0aGUgcmFyZSBw cm90b2NvbHMgdGhhdCBjYW4gdXNlClNHIHdpdGhvdXQgY2hlY2t1c20gb2ZmbG9hZCwgdGhpcyBw b3RlbnRpYWxseSBsZWFrcyBzZW5zaXRpdmUKaW5mb3JtYXRpb24gKGJlZm9yZSB5b3Ugbm90aWNl IHRoYXQgaXQganVzdCBpc24ndCB3b3JraW5nKS4gIFRoZXJlZm9yZQp0aGlzIG9ic2N1cmUgYnVn IGhhcyBiZWVuIGRlc2lnbmF0ZWQgQ1ZFLTIwMTYtMjExNy4KClJlcG9ydGVkLWJ5OiBKdXN0aW4g WWFja29za2kgPGp5YWNrb3NraUBjcnlwdG8tbml0ZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBI dXRjaGluZ3MgPGJlbkBkZWNhZGVudC5vcmcudWs+CkZpeGVzOiBlYzVmMDYxNTY0MjMgKCJuZXQ6 IEtpbGwgbGluayBiZXR3ZWVuIENTVU0gYW5kIFNHIGZlYXR1cmVzLiIpClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9hdGhlcm9zL2F0bHgvYXRsMi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYXRoZXJvcy9hdGx4L2F0bDIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYXRs eC9hdGwyLmMKaW5kZXggOGY3NmY0NS4uMmZmNDY1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYXRoZXJvcy9hdGx4L2F0bDIuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9h dGhlcm9zL2F0bHgvYXRsMi5jCkBAIC0xNDEyLDcgKzE0MTIsNyBAQCBzdGF0aWMgaW50IGF0bDJf cHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpl bnQpCiAKIAllcnIgPSAtRUlPOwogCi0JbmV0ZGV2LT5od19mZWF0dXJlcyA9IE5FVElGX0ZfU0cg fCBORVRJRl9GX0hXX1ZMQU5fQ1RBR19SWDsKKwluZXRkZXYtPmh3X2ZlYXR1cmVzID0gTkVUSUZf Rl9IV19WTEFOX0NUQUdfUlg7CiAJbmV0ZGV2LT5mZWF0dXJlcyB8PSAoTkVUSUZfRl9IV19WTEFO X0NUQUdfVFggfCBORVRJRl9GX0hXX1ZMQU5fQ1RBR19SWCk7CiAKIAkvKiBJbml0IFBIWSBhcyBl YXJseSBhcyBwb3NzaWJsZSBkdWUgdG8gcG93ZXIgc2F2aW5nIGlzc3VlICAqLwotLSAKMi4xLjAK CgpGcm9tIDNhNWRhOWRiZTE1ZDM2NWZlY2M5ZTc1MzQ4OGEyYjZjMzRlODA0MzEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9t ZS5jb20+CkRhdGU6IFRodSwgMjEgQXByIDIwMTYgMTE6NDk6MTUgKzEwMDAKU3ViamVjdDogW1BB VENIIDEyLzQyXSBvcGVudnN3aXRjaDogdXNlIGZsb3cgcHJvdG9jb2wgd2hlbiByZWNhbGN1bGF0 aW5nIGlwdjYKIGNoZWNrc3VtcwoKWyBVcHN0cmVhbSBjb21taXQgYjRmNzA1MjdmMDUyYjBjMDBi ZTRkN2NhYzU2MmJhYTc1YjIxMmRmNSBdCgpXaGVuIHVzaW5nIG1hc2tlZCBhY3Rpb25zIHRoZSBp cHY2X3Byb3RvIGZpZWxkIG9mIGFuIGFjdGlvbgp0byBzZXQgSVB2NiBmaWVsZHMgbWF5IGJlIHpl cm8gcmF0aGVyIHRoYW4gdGhlIHByZXZhaWxpbmcgcHJvdG9jb2wKd2hpY2ggd2lsbCByZXN1bHQg aW4gc2tpcHBpbmcgY2hlY2tzdW0gcmVjYWxjdWxhdGlvbi4KClRoaXMgcGF0Y2ggcmVzb2x2ZXMg dGhlIHByb2JsZW0gYnkgcmVseWluZyBvbiB0aGUgcHJvdG9jb2wKaW4gdGhlIGZsb3cga2V5IHJh dGhlciB0aGFuIHRoYXQgaW4gdGhlIHNldCBmaWVsZCBhY3Rpb24uCgpGaXhlczogODNkMmI5YmEx YWJjICgibmV0OiBvcGVudnN3aXRjaDogU3VwcG9ydCBtYXNrZWQgc2V0IGFjdGlvbnMuIikKQ2M6 IEphcm5vIFJhamFoYWxtZSA8anJhamFoYWxtZUBuaWNpcmEuY29tPgpTaWduZWQtb2ZmLWJ5OiBT aW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBuZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L29wZW52c3dpdGNo L2FjdGlvbnMuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jIGIvbmV0 L29wZW52c3dpdGNoL2FjdGlvbnMuYwppbmRleCBlOWRkNDdiLi44NzkxODVmIDEwMDY0NAotLS0g YS9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCisrKyBiL25ldC9vcGVudnN3aXRjaC9hY3Rpb25z LmMKQEAgLTQ2MSw3ICs0NjEsNyBAQCBzdGF0aWMgaW50IHNldF9pcHY2KHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqZmxvd19rZXksCiAJCW1hc2tfaXB2Nl9hZGRyKHNh ZGRyLCBrZXktPmlwdjZfc3JjLCBtYXNrLT5pcHY2X3NyYywgbWFza2VkKTsKIAogCQlpZiAodW5s aWtlbHkobWVtY21wKHNhZGRyLCBtYXNrZWQsIHNpemVvZihtYXNrZWQpKSkpIHsKLQkJCXNldF9p cHY2X2FkZHIoc2tiLCBrZXktPmlwdjZfcHJvdG8sIHNhZGRyLCBtYXNrZWQsCisJCQlzZXRfaXB2 Nl9hZGRyKHNrYiwgZmxvd19rZXktPmlwLnByb3RvLCBzYWRkciwgbWFza2VkLAogCQkJCSAgICAg IHRydWUpOwogCQkJbWVtY3B5KCZmbG93X2tleS0+aXB2Ni5hZGRyLnNyYywgbWFza2VkLAogCQkJ ICAgICAgIHNpemVvZihmbG93X2tleS0+aXB2Ni5hZGRyLnNyYykpOwpAQCAtNDgzLDcgKzQ4Myw3 IEBAIHN0YXRpYyBpbnQgc2V0X2lwdjYoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zs b3dfa2V5ICpmbG93X2tleSwKIAkJCQkJCQkgICAgIE5VTEwsICZmbGFncykKIAkJCQkJICAgICAg ICE9IE5FWFRIRFJfUk9VVElORyk7CiAKLQkJCXNldF9pcHY2X2FkZHIoc2tiLCBrZXktPmlwdjZf cHJvdG8sIGRhZGRyLCBtYXNrZWQsCisJCQlzZXRfaXB2Nl9hZGRyKHNrYiwgZmxvd19rZXktPmlw LnByb3RvLCBkYWRkciwgbWFza2VkLAogCQkJCSAgICAgIHJlY2FsY19jc3VtKTsKIAkJCW1lbWNw eSgmZmxvd19rZXktPmlwdjYuYWRkci5kc3QsIG1hc2tlZCwKIAkJCSAgICAgICBzaXplb2YoZmxv d19rZXktPmlwdjYuYWRkci5kc3QpKTsKLS0gCjIuMS4wCgoKRnJvbSAzYmUwODZmMjBiNDZkY2My NTdlODFkN2E4NTE2MmQ0ZDYxZDNkNGJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBN YW9yIEdvdHRsaWViIDxtYW9yZ0BtZWxsYW5veC5jb20+CkRhdGU6IEZyaSwgMjIgQXByIDIwMTYg MDA6MzM6MDAgKzAzMDAKU3ViamVjdDogW1BBVENIIDEzLzQyXSBuZXQvbWx4NV9jb3JlOiBGaXgg c29mdCBsb2NrdXAgaW4gc3RlZXJpbmcgZXJyb3IgZmxvdwoKWyBVcHN0cmVhbSBjb21taXQgYzNm OWJmNjI4YmM3ZWRkYTI5ODg5N2Q5NTJmNWU3NjExMzcyMjljOSBdCgpJbiB0aGUgZXJyb3IgZmxv dyBvZiBhZGRpbmcgZmxvdyBydWxlIHRvIGF1dG8tZ3JvdXBlZCBmbG93CnRhYmxlLCB3ZSBjYWxs IHRvIHRyZWVfcmVtb3ZlX25vZGUuCgp0cmVlX3JlbW92ZV9ub2RlIGxvY2tzIHRoZSBub2RlJ3Mg cGFyZW50LCBob3dldmVyIHRoZSBub2RlJ3MgcGFyZW50CmlzIGFscmVhZHkgbG9ja2VkIGJ5IG1s eDVfYWRkX2Zsb3dfcnVsZSBhbmQgdGhpcyBjYXVzZXMgYSBkZWFkbG9jay4KQWZ0ZXIgdGhpcyBw YXRjaCwgaWYgd2UgZmFpbGVkIHRvIGFkZCB0aGUgZmxvdyBydWxlLCB3ZSB1bmxvY2sgdGhlCmZs b3cgdGFibGUgYmVmb3JlIGNhbGxpbmcgdG8gdHJlZV9yZW1vdmVfbm9kZS4KCmZpeGVzOiBmMGQy MmQxODc0NzMgKCduZXQvbWx4NV9jb3JlOiBJbnRyb2R1Y2UgZmxvdyBzdGVlcmluZyBhdXRvZ3Jv dXBlZApmbG93IHRhYmxlJykKU2lnbmVkLW9mZi1ieTogTWFvciBHb3R0bGllYiA8bWFvcmdAbWVs bGFub3guY29tPgpSZXBvcnRlZC1ieTogQW1pciBWYWRhaSA8YW1pckB2YWRhaS5tZT4KU2lnbmVk LW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jIHwgNDYgKysrKysrKysrLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZnNfY29yZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Zz X2NvcmUuYwppbmRleCA2ZjY4ZGJhLi5jYzkwMTg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMKQEAgLTk1NywzMyArOTU3LDYgQEAg dW5sb2NrX2ZnOgogCXJldHVybiBydWxlOwogfQogCi1zdGF0aWMgc3RydWN0IG1seDVfZmxvd19y dWxlICphZGRfcnVsZV90b19hdXRvX2ZnKHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0LAotCQkJ CQkJICB1OCBtYXRjaF9jcml0ZXJpYV9lbmFibGUsCi0JCQkJCQkgIHUzMiAqbWF0Y2hfY3JpdGVy aWEsCi0JCQkJCQkgIHUzMiAqbWF0Y2hfdmFsdWUsCi0JCQkJCQkgIHU4IGFjdGlvbiwKLQkJCQkJ CSAgdTMyIGZsb3dfdGFnLAotCQkJCQkJICBzdHJ1Y3QgbWx4NV9mbG93X2Rlc3RpbmF0aW9uICpk ZXN0KQotewotCXN0cnVjdCBtbHg1X2Zsb3dfcnVsZSAqcnVsZTsKLQlzdHJ1Y3QgbWx4NV9mbG93 X2dyb3VwICpnOwotCi0JZyA9IGNyZWF0ZV9hdXRvZ3JvdXAoZnQsIG1hdGNoX2NyaXRlcmlhX2Vu YWJsZSwgbWF0Y2hfY3JpdGVyaWEpOwotCWlmIChJU19FUlIoZykpCi0JCXJldHVybiAodm9pZCAq KWc7Ci0KLQlydWxlID0gYWRkX3J1bGVfZmcoZywgbWF0Y2hfdmFsdWUsCi0JCQkgICBhY3Rpb24s IGZsb3dfdGFnLCBkZXN0KTsKLQlpZiAoSVNfRVJSKHJ1bGUpKSB7Ci0JCS8qIFJlbW92ZSBhc3N1 bWVzIHJlZmNvdW50ID4gMCBhbmQgYXV0b2dyb3VwIGNyZWF0ZXMgYSBncm91cAotCQkgKiB3aXRo IGEgcmVmY291bnQgPSAwLgotCQkgKi8KLQkJdHJlZV9nZXRfbm9kZSgmZy0+bm9kZSk7Ci0JCXRy ZWVfcmVtb3ZlX25vZGUoJmctPm5vZGUpOwotCX0KLQlyZXR1cm4gcnVsZTsKLX0KLQogc3RydWN0 IG1seDVfZmxvd19ydWxlICoKIG1seDVfYWRkX2Zsb3dfcnVsZShzdHJ1Y3QgbWx4NV9mbG93X3Rh YmxlICpmdCwKIAkJICAgdTggbWF0Y2hfY3JpdGVyaWFfZW5hYmxlLApAQCAtMTAwOCw4ICs5ODEs MjMgQEAgbWx4NV9hZGRfZmxvd19ydWxlKHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0LAogCQkJ CWdvdG8gdW5sb2NrOwogCQl9CiAKLQlydWxlID0gYWRkX3J1bGVfdG9fYXV0b19mZyhmdCwgbWF0 Y2hfY3JpdGVyaWFfZW5hYmxlLCBtYXRjaF9jcml0ZXJpYSwKLQkJCQkgICBtYXRjaF92YWx1ZSwg YWN0aW9uLCBmbG93X3RhZywgZGVzdCk7CisJZyA9IGNyZWF0ZV9hdXRvZ3JvdXAoZnQsIG1hdGNo X2NyaXRlcmlhX2VuYWJsZSwgbWF0Y2hfY3JpdGVyaWEpOworCWlmIChJU19FUlIoZykpIHsKKwkJ cnVsZSA9ICh2b2lkICopZzsKKwkJZ290byB1bmxvY2s7CisJfQorCisJcnVsZSA9IGFkZF9ydWxl X2ZnKGcsIG1hdGNoX3ZhbHVlLAorCQkJICAgYWN0aW9uLCBmbG93X3RhZywgZGVzdCk7CisJaWYg KElTX0VSUihydWxlKSkgeworCQkvKiBSZW1vdmUgYXNzdW1lcyByZWZjb3VudCA+IDAgYW5kIGF1 dG9ncm91cCBjcmVhdGVzIGEgZ3JvdXAKKwkJICogd2l0aCBhIHJlZmNvdW50ID0gMC4KKwkJICov CisJCXVubG9ja19yZWZfbm9kZSgmZnQtPm5vZGUpOworCQl0cmVlX2dldF9ub2RlKCZnLT5ub2Rl KTsKKwkJdHJlZV9yZW1vdmVfbm9kZSgmZy0+bm9kZSk7CisJCXJldHVybiBydWxlOworCX0KIHVu bG9jazoKIAl1bmxvY2tfcmVmX25vZGUoJmZ0LT5ub2RlKTsKIAlyZXR1cm4gcnVsZTsKLS0gCjIu MS4wCgoKRnJvbSBjMDk4MWU5ZmJjMGNkNzY0YjhjOWJjNjQzNGVmY2NjNzliYTJlM2VkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94 LmNvbT4KRGF0ZTogRnJpLCAyMiBBcHIgMjAxNiAwMDozMzowMyArMDMwMApTdWJqZWN0OiBbUEFU Q0ggMTQvNDJdIG5ldC9tbHg1ZTogRGV2aWNlJ3MgbXR1IGZpZWxkIGlzIHUxNiBhbmQgbm90IGlu dAoKWyBVcHN0cmVhbSBjb21taXQgMDQ2MzM5ZWFhYjI2ODA0ZjUyZjY2MDQ4NzdmNTY3NGY3MDgx NWIyNiBdCgpGb3Igc2V0L3F1ZXJ5IE1UVSBwb3J0IGZpcm13YXJlIGNvbW1hbmRzIHRoZSBNVFUg ZmllbGQKaXMgMTYgYml0cywgaGVyZSBJIGNoYW5nZWQgYWxsIHRoZSAiaW50IG10dSIgcGFyYW1l dGVycwpvZiB0aGUgZnVuY3Rpb25zIHdyYXBwaW5nIHRob3NlIGZpcm13YXJlIGNvbW1hbmRzIHRv IGJlIHUxNi4KClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jICAgICAgICAgICAgICAgICB8 ICA0ICsrLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWlu LmMgfCAgNCArKy0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvcG9y dC5jICAgIHwgMTAgKysrKystLS0tLQogaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oICAgICAg ICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRp b25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQv aHcvbWx4NS9tYWluLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMKaW5kZXgg ZWQ5Y2VmYS4uZWFlZDMxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUv bWFpbi5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYwpAQCAtNjU0LDgg KzY1NCw4IEBAIHN0YXRpYyBpbnQgbWx4NV9xdWVyeV9oY2FfcG9ydChzdHJ1Y3QgaWJfZGV2aWNl ICppYmRldiwgdTggcG9ydCwKIAlzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiA9IHRvX21kZXYoaWJk ZXYpOwogCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2ID0gZGV2LT5tZGV2OwogCXN0cnVjdCBt bHg1X2hjYV92cG9ydF9jb250ZXh0ICpyZXA7Ci0JaW50IG1heF9tdHU7Ci0JaW50IG9wZXJfbXR1 OworCXUxNiBtYXhfbXR1OworCXUxNiBvcGVyX210dTsKIAlpbnQgZXJyOwogCXU4IGliX2xpbmtf d2lkdGhfb3BlcjsKIAl1OCB2bF9od19jYXA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwppbmRleCA0MDI5OTRiLi5iZTY4OTk2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMK QEAgLTEzOTMsNyArMTM5Myw3IEBAIHN0YXRpYyBpbnQgbWx4NWVfc2V0X2Rldl9wb3J0X210dShz dHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogewogCXN0cnVjdCBtbHg1ZV9wcml2ICpwcml2ID0g bmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAlzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiA9IHByaXYt Pm1kZXY7Ci0JaW50IGh3X210dTsKKwl1MTYgaHdfbXR1OwogCWludCBlcnI7CiAKIAllcnIgPSBt bHg1X3NldF9wb3J0X210dShtZGV2LCBNTFg1RV9TVzJIV19NVFUobmV0ZGV2LT5tdHUpLCAxKTsK QEAgLTE5MTEsNyArMTkxMSw3IEBAIHN0YXRpYyBpbnQgbWx4NWVfY2hhbmdlX210dShzdHJ1Y3Qg bmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgbmV3X210dSkKIAlzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJp diA9IG5ldGRldl9wcml2KG5ldGRldik7CiAJc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYgPSBw cml2LT5tZGV2OwogCWJvb2wgd2FzX29wZW5lZDsKLQlpbnQgbWF4X210dTsKKwl1MTYgbWF4X210 dTsKIAlpbnQgZXJyID0gMDsKIAogCW1seDVfcXVlcnlfcG9ydF9tYXhfbXR1KG1kZXYsICZtYXhf bXR1LCAxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9wb3J0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvcG9y dC5jCmluZGV4IGE4N2U3NzMuLjUzYTc5M2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9wb3J0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL3BvcnQuYwpAQCAtMjQ2LDggKzI0Niw4IEBAIGludCBtbHg1X3F1 ZXJ5X3BvcnRfYWRtaW5fc3RhdHVzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsCiB9CiBFWFBP UlRfU1lNQk9MX0dQTChtbHg1X3F1ZXJ5X3BvcnRfYWRtaW5fc3RhdHVzKTsKIAotc3RhdGljIHZv aWQgbWx4NV9xdWVyeV9wb3J0X210dShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgKmFk bWluX210dSwKLQkJCQlpbnQgKm1heF9tdHUsIGludCAqb3Blcl9tdHUsIHU4IHBvcnQpCitzdGF0 aWMgdm9pZCBtbHg1X3F1ZXJ5X3BvcnRfbXR1KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUx NiAqYWRtaW5fbXR1LAorCQkJCXUxNiAqbWF4X210dSwgdTE2ICpvcGVyX210dSwgdTggcG9ydCkK IHsKIAl1MzIgaW5bTUxYNV9TVF9TWl9EVyhwbXR1X3JlZyldOwogCXUzMiBvdXRbTUxYNV9TVF9T Wl9EVyhwbXR1X3JlZyldOwpAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0YXRpYyB2b2lkIG1seDVfcXVl cnlfcG9ydF9tdHUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50ICphZG1pbl9tdHUsCiAJ CSphZG1pbl9tdHUgPSBNTFg1X0dFVChwbXR1X3JlZywgb3V0LCBhZG1pbl9tdHUpOwogfQogCi1p bnQgbWx4NV9zZXRfcG9ydF9tdHUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG10dSwg dTggcG9ydCkKK2ludCBtbHg1X3NldF9wb3J0X210dShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2 LCB1MTYgbXR1LCB1OCBwb3J0KQogewogCXUzMiBpbltNTFg1X1NUX1NaX0RXKHBtdHVfcmVnKV07 CiAJdTMyIG91dFtNTFg1X1NUX1NaX0RXKHBtdHVfcmVnKV07CkBAIC0yODIsMTQgKzI4MiwxNCBA QCBpbnQgbWx4NV9zZXRfcG9ydF9tdHUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG10 dSwgdTggcG9ydCkKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKG1seDVfc2V0X3BvcnRfbXR1KTsKIAot dm9pZCBtbHg1X3F1ZXJ5X3BvcnRfbWF4X210dShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBp bnQgKm1heF9tdHUsCit2b2lkIG1seDVfcXVlcnlfcG9ydF9tYXhfbXR1KHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYsIHUxNiAqbWF4X210dSwKIAkJCSAgICAgdTggcG9ydCkKIHsKIAltbHg1X3F1 ZXJ5X3BvcnRfbXR1KGRldiwgTlVMTCwgbWF4X210dSwgTlVMTCwgcG9ydCk7CiB9CiBFWFBPUlRf U1lNQk9MX0dQTChtbHg1X3F1ZXJ5X3BvcnRfbWF4X210dSk7CiAKLXZvaWQgbWx4NV9xdWVyeV9w b3J0X29wZXJfbXR1KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCAqb3Blcl9tdHUsCit2 b2lkIG1seDVfcXVlcnlfcG9ydF9vcGVyX210dShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1 MTYgKm9wZXJfbXR1LAogCQkJICAgICAgdTggcG9ydCkKIHsKIAltbHg1X3F1ZXJ5X3BvcnRfbXR1 KGRldiwgTlVMTCwgTlVMTCwgb3Blcl9tdHUsIHBvcnQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9tbHg1L2RyaXZlci5oIGIvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oCmluZGV4IDFl MzAwNmQuLjQ2ZGQ4OGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaAor KysgYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKQEAgLTgxMyw5ICs4MTMsOSBAQCBpbnQg bWx4NV9zZXRfcG9ydF9hZG1pbl9zdGF0dXMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKIGlu dCBtbHg1X3F1ZXJ5X3BvcnRfYWRtaW5fc3RhdHVzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYs CiAJCQkJIGVudW0gbWx4NV9wb3J0X3N0YXR1cyAqc3RhdHVzKTsKIAotaW50IG1seDVfc2V0X3Bv cnRfbXR1KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBtdHUsIHU4IHBvcnQpOwotdm9p ZCBtbHg1X3F1ZXJ5X3BvcnRfbWF4X210dShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQg Km1heF9tdHUsIHU4IHBvcnQpOwotdm9pZCBtbHg1X3F1ZXJ5X3BvcnRfb3Blcl9tdHUoc3RydWN0 IG1seDVfY29yZV9kZXYgKmRldiwgaW50ICpvcGVyX210dSwKK2ludCBtbHg1X3NldF9wb3J0X210 dShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgbXR1LCB1OCBwb3J0KTsKK3ZvaWQgbWx4 NV9xdWVyeV9wb3J0X21heF9tdHUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2ICptYXhf bXR1LCB1OCBwb3J0KTsKK3ZvaWQgbWx4NV9xdWVyeV9wb3J0X29wZXJfbXR1KHN0cnVjdCBtbHg1 X2NvcmVfZGV2ICpkZXYsIHUxNiAqb3Blcl9tdHUsCiAJCQkgICAgICB1OCBwb3J0KTsKIAogaW50 IG1seDVfcXVlcnlfcG9ydF92bF9od19jYXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKLS0g CjIuMS4wCgoKRnJvbSAzZjA2YjFlZjQ1ZWJhMDY4MDA2ZjIyZDlmMzUxMTQ2YzU0ODBiYzNjIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxh bm94LmNvbT4KRGF0ZTogRnJpLCAyMiBBcHIgMjAxNiAwMDozMzowNCArMDMwMApTdWJqZWN0OiBb UEFUQ0ggMTUvNDJdIG5ldC9tbHg1ZTogRml4IG1pbmltdW0gTVRVCgpbIFVwc3RyZWFtIGNvbW1p dCBkOGVkZDI0NjlhY2U1NTBkYjcwNzc5ODE4MGQxYzg0ZDgxZjkzYmNhIF0KCk1pbmltdW0gTVRV IHRoYXQgY2FuIGJlIHNldCBpbiBDb25uZWN0eDQgZGV2aWNlIGlzIDY4LgoKVGhpcyBmaXhlcyB0 aGUgY2FzZSB3aGVyZSBhIHVzZXIgd2FudHMgdG8gc2V0IGludmFsaWQgTVRVLAp0aGUgZHJpdmVy IHdpbGwgZmFpbCB0byBzYXRpc2Z5IHRoaXMgcmVxdWVzdCBhbmQgdGhlIGludGVyZmFjZQp3aWxs IHN0YXkgZG93bi4KCkl0IGlzIGJldHRlciB0byByZXBvcnQgYW4gZXJyb3IgYW5kIGNvbnRpbnVl IHdvcmtpbmcgd2l0aCBvbGQKbXR1LgoKU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNh ZWVkbUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fbWFpbi5jIHwgMTEgKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbl9tYWluLmMKaW5kZXggYmU2ODk5Ni4uMTMyMzJlNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCkBAIC0x OTA2LDIyICsxOTA2LDI3IEBAIHN0YXRpYyBpbnQgbWx4NWVfc2V0X2ZlYXR1cmVzKHN0cnVjdCBu ZXRfZGV2aWNlICpuZXRkZXYsCiAJcmV0dXJuIGVycjsKIH0KIAorI2RlZmluZSBNWEw1X0hXX01J Tl9NVFUgNjQKKyNkZWZpbmUgTVhMNUVfTUlOX01UVSAoTVhMNV9IV19NSU5fTVRVICsgRVRIX0ZD U19MRU4pCisKIHN0YXRpYyBpbnQgbWx4NWVfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAq bmV0ZGV2LCBpbnQgbmV3X210dSkKIHsKIAlzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiA9IG5ldGRl dl9wcml2KG5ldGRldik7CiAJc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYgPSBwcml2LT5tZGV2 OwogCWJvb2wgd2FzX29wZW5lZDsKIAl1MTYgbWF4X210dTsKKwl1MTYgbWluX210dTsKIAlpbnQg ZXJyID0gMDsKIAogCW1seDVfcXVlcnlfcG9ydF9tYXhfbXR1KG1kZXYsICZtYXhfbXR1LCAxKTsK IAogCW1heF9tdHUgPSBNTFg1RV9IVzJTV19NVFUobWF4X210dSk7CisJbWluX210dSA9IE1MWDVF X0hXMlNXX01UVShNWEw1RV9NSU5fTVRVKTsKIAotCWlmIChuZXdfbXR1ID4gbWF4X210dSkgewor CWlmIChuZXdfbXR1ID4gbWF4X210dSB8fCBuZXdfbXR1IDwgbWluX210dSkgewogCQluZXRkZXZf ZXJyKG5ldGRldiwKLQkJCSAgICIlczogQmFkIE1UVSAoJWQpID4gKCVkKSBNYXhcbiIsCi0JCQkg ICBfX2Z1bmNfXywgbmV3X210dSwgbWF4X210dSk7CisJCQkgICAiJXM6IEJhZCBNVFUgKCVkKSwg dmFsaWQgcmFuZ2UgaXM6IFslZC4uJWRdXG4iLAorCQkJICAgX19mdW5jX18sIG5ld19tdHUsIG1p bl9tdHUsIG1heF9tdHUpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLS0gCjIuMS4wCgoKRnJv bSBiN2YwZWUxNjkxYWU5MzRlMTQ1NDJkZWI1MTRmY2RmZWY5ODFjNmQyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KRGF0 ZTogRnJpLCAyMiBBcHIgMjAxNiAwMDozMzowNSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTYvNDJd IG5ldC9tbHg1ZTogVXNlIHZwb3J0IE1UVSByYXRoZXIgdGhhbiBwaHlzaWNhbCBwb3J0IE1UVQoK WyBVcHN0cmVhbSBjb21taXQgY2QyNTVlZmZmOWJhYWRkNjU0ZDYxNjBlNTJkMTdhZTdjNTY4Yzlk MyBdCgpTZXQgYW5kIHJlcG9ydCB2cG9ydCBNVFUgcmF0aGVyIHRoYW4gcGh5c2ljYWwgTVRVLApE cml2ZXIgd2lsbCBzZXQgYm90aCB2cG9ydCBhbmQgcGh5c2ljYWwgcG9ydCBtdHUgYW5kIHdpbGwK cmVseSBvbiB0aGUgcXVlcnkgb2YgdnBvcnQgbXR1LgoKU1JJT1YgVkZzIGhhdmUgdG8gcmVwb3J0 IHRoZWlyIE1UVSB0byB0aGVpciB2cG9ydCBtYW5hZ2VyIChQRiksCmFuZCB0aGlzIHdpbGwgYWxs b3cgdGhlbSB0byB3b3JrIHdpdGggYW55IE1UVSB0aGV5IG5lZWQKd2l0aG91dCBmYWlsaW5nIHRo ZSByZXF1ZXN0LgoKQWxzbyBmb3Igc29tZSBjYXNlcyB3aGVyZSB0aGUgUEYgaXMgbm90IGEgcG9y dCBvd25lciwgUEYgY2FuCndvcmsgd2l0aCBNVFUgbGVzcyB0aGFuIHRoZSBwaHlzaWNhbCBwb3J0 IG10dSBpZiBzZXQgcGh5c2ljYWwKcG9ydCBtdHUgZGlkbid0IHRha2UgZWZmZWN0LgoKU2lnbmVk LW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIHwgNDQgKysrKysrKysrKysr KysrKysrLS0tLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS92cG9y dC5jICAgfCA0MCArKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvbGludXgvbWx4NS92cG9y dC5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArKwogMyBmaWxlcyBjaGFuZ2VkLCA3NyBp bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCmluZGV4IDEzMjMyZTUuLmUyOTNhMmUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWlu LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4u YwpAQCAtMTM4OSwyNCArMTM4OSw1MCBAQCBzdGF0aWMgaW50IG1seDVlX3JlZnJlc2hfdGlyc19z ZWxmX2xvb3BiYWNrX2VuYWJsZShzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIGludCBtbHg1ZV9zZXRfZGV2X3BvcnRfbXR1KHN0cnVjdCBuZXRfZGV2aWNl ICpuZXRkZXYpCitzdGF0aWMgaW50IG1seDVlX3NldF9tdHUoc3RydWN0IG1seDVlX3ByaXYgKnBy aXYsIHUxNiBtdHUpCiB7Ci0Jc3RydWN0IG1seDVlX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihu ZXRkZXYpOwogCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2ID0gcHJpdi0+bWRldjsKLQl1MTYg aHdfbXR1OworCXUxNiBod19tdHUgPSBNTFg1RV9TVzJIV19NVFUobXR1KTsKIAlpbnQgZXJyOwog Ci0JZXJyID0gbWx4NV9zZXRfcG9ydF9tdHUobWRldiwgTUxYNUVfU1cySFdfTVRVKG5ldGRldi0+ bXR1KSwgMSk7CisJZXJyID0gbWx4NV9zZXRfcG9ydF9tdHUobWRldiwgaHdfbXR1LCAxKTsKIAlp ZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JbWx4NV9xdWVyeV9wb3J0X29wZXJfbXR1KG1kZXYs ICZod19tdHUsIDEpOworCS8qIFVwZGF0ZSB2cG9ydCBjb250ZXh0IE1UVSAqLworCW1seDVfbW9k aWZ5X25pY192cG9ydF9tdHUobWRldiwgaHdfbXR1KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IHZvaWQgbWx4NWVfcXVlcnlfbXR1KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCB1MTYgKm10dSkK K3sKKwlzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiA9IHByaXYtPm1kZXY7CisJdTE2IGh3X210 dSA9IDA7CisJaW50IGVycjsKKworCWVyciA9IG1seDVfcXVlcnlfbmljX3Zwb3J0X210dShtZGV2 LCAmaHdfbXR1KTsKKwlpZiAoZXJyIHx8ICFod19tdHUpIC8qIGZhbGxiYWNrIHRvIHBvcnQgb3Bl ciBtdHUgKi8KKwkJbWx4NV9xdWVyeV9wb3J0X29wZXJfbXR1KG1kZXYsICZod19tdHUsIDEpOwor CisJKm10dSA9IE1MWDVFX0hXMlNXX01UVShod19tdHUpOworfQorCitzdGF0aWMgaW50IG1seDVl X3NldF9kZXZfcG9ydF9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKK3sKKwlzdHJ1Y3Qg bWx4NWVfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5ldGRldik7CisJdTE2IG10dTsKKwlpbnQg ZXJyOworCisJZXJyID0gbWx4NWVfc2V0X210dShwcml2LCBuZXRkZXYtPm10dSk7CisJaWYgKGVy cikKKwkJcmV0dXJuIGVycjsKIAotCWlmIChNTFg1RV9IVzJTV19NVFUoaHdfbXR1KSAhPSBuZXRk ZXYtPm10dSkKLQkJbmV0ZGV2X3dhcm4obmV0ZGV2LCAiJXM6IFBvcnQgTVRVICVkIGlzIGRpZmZl cmVudCB0aGFuIG5ldGRldiBtdHUgJWRcbiIsCi0JCQkgICAgX19mdW5jX18sIE1MWDVFX0hXMlNX X01UVShod19tdHUpLCBuZXRkZXYtPm10dSk7CisJbWx4NWVfcXVlcnlfbXR1KHByaXYsICZtdHUp OworCWlmIChtdHUgIT0gbmV0ZGV2LT5tdHUpCisJCW5ldGRldl93YXJuKG5ldGRldiwgIiVzOiBW UG9ydCBNVFUgJWQgaXMgZGlmZmVyZW50IHRoYW4gbmV0ZGV2IG10dSAlZFxuIiwKKwkJCSAgICBf X2Z1bmNfXywgbXR1LCBuZXRkZXYtPm10dSk7CiAKLQluZXRkZXYtPm10dSA9IE1MWDVFX0hXMlNX X01UVShod19tdHUpOworCW5ldGRldi0+bXR1ID0gbXR1OwogCXJldHVybiAwOwogfQogCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvdnBvcnQuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS92cG9ydC5jCmluZGV4IGM3 Mzk4YjkuLjZkNWY1NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS92cG9ydC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS92cG9ydC5jCkBAIC0xOTYsNiArMTk2LDQ2IEBAIGludCBtbHg1X21vZGlmeV9uaWNf dnBvcnRfbWFjX2FkZHJlc3Moc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsCiB9CiBFWFBPUlRf U1lNQk9MX0dQTChtbHg1X21vZGlmeV9uaWNfdnBvcnRfbWFjX2FkZHJlc3MpOwogCitpbnQgbWx4 NV9xdWVyeV9uaWNfdnBvcnRfbXR1KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1MTYgKm10 dSkKK3sKKwlpbnQgb3V0bGVuID0gTUxYNV9TVF9TWl9CWVRFUyhxdWVyeV9uaWNfdnBvcnRfY29u dGV4dF9vdXQpOworCXUzMiAqb3V0OworCWludCBlcnI7CisKKwlvdXQgPSBtbHg1X3Z6YWxsb2Mo b3V0bGVuKTsKKwlpZiAoIW91dCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwllcnIgPSBtbHg1X3F1 ZXJ5X25pY192cG9ydF9jb250ZXh0KG1kZXYsIDAsIG91dCwgb3V0bGVuKTsKKwlpZiAoIWVycikK KwkJKm10dSA9IE1MWDVfR0VUKHF1ZXJ5X25pY192cG9ydF9jb250ZXh0X291dCwgb3V0LAorCQkJ CW5pY192cG9ydF9jb250ZXh0Lm10dSk7CisKKwlrdmZyZWUob3V0KTsKKwlyZXR1cm4gZXJyOwor fQorRVhQT1JUX1NZTUJPTF9HUEwobWx4NV9xdWVyeV9uaWNfdnBvcnRfbXR1KTsKKworaW50IG1s eDVfbW9kaWZ5X25pY192cG9ydF9tdHUoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHUxNiBt dHUpCit7CisJaW50IGlubGVuID0gTUxYNV9TVF9TWl9CWVRFUyhtb2RpZnlfbmljX3Zwb3J0X2Nv bnRleHRfaW4pOworCXZvaWQgKmluOworCWludCBlcnI7CisKKwlpbiA9IG1seDVfdnphbGxvYyhp bmxlbik7CisJaWYgKCFpbikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlNTFg1X1NFVChtb2RpZnlf bmljX3Zwb3J0X2NvbnRleHRfaW4sIGluLCBmaWVsZF9zZWxlY3QubXR1LCAxKTsKKwlNTFg1X1NF VChtb2RpZnlfbmljX3Zwb3J0X2NvbnRleHRfaW4sIGluLCBuaWNfdnBvcnRfY29udGV4dC5tdHUs IG10dSk7CisKKwllcnIgPSBtbHg1X21vZGlmeV9uaWNfdnBvcnRfY29udGV4dChtZGV2LCBpbiwg aW5sZW4pOworCisJa3ZmcmVlKGluKTsKKwlyZXR1cm4gZXJyOworfQorRVhQT1JUX1NZTUJPTF9H UEwobWx4NV9tb2RpZnlfbmljX3Zwb3J0X210dSk7CisKIGludCBtbHg1X3F1ZXJ5X25pY192cG9y dF9tYWNfbGlzdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LAogCQkJCSAgdTMyIHZwb3J0LAog CQkJCSAgZW51bSBtbHg1X2xpc3RfdHlwZSBsaXN0X3R5cGUsCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L21seDUvdnBvcnQuaCBiL2luY2x1ZGUvbGludXgvbWx4NS92cG9ydC5oCmluZGV4IDEy Mzc3MTAuLmEzZjNjNzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS92cG9ydC5oCisr KyBiL2luY2x1ZGUvbGludXgvbWx4NS92cG9ydC5oCkBAIC00NSw2ICs0NSw4IEBAIGludCBtbHg1 X3F1ZXJ5X25pY192cG9ydF9tYWNfYWRkcmVzcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwK IAkJCQkgICAgIHUxNiB2cG9ydCwgdTggKmFkZHIpOwogaW50IG1seDVfbW9kaWZ5X25pY192cG9y dF9tYWNfYWRkcmVzcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LAogCQkJCSAgICAgIHUxNiB2 cG9ydCwgdTggKmFkZHIpOworaW50IG1seDVfcXVlcnlfbmljX3Zwb3J0X210dShzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqbWRldiwgdTE2ICptdHUpOworaW50IG1seDVfbW9kaWZ5X25pY192cG9ydF9t dHUoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHUxNiBtdHUpOwogaW50IG1seDVfcXVlcnlf bmljX3Zwb3J0X3N5c3RlbV9pbWFnZV9ndWlkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAog CQkJCQkgICB1NjQgKnN5c3RlbV9pbWFnZV9ndWlkKTsKIGludCBtbHg1X3F1ZXJ5X25pY192cG9y dF9ub2RlX2d1aWQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHU2NCAqbm9kZV9ndWlkKTsK LS0gCjIuMS4wCgoKRnJvbSBjYjNkZGVhNTVjZTAyNGYwMzJhZmZlMDI4MGU0YjEwMDlmYjk4Mjcy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhh dC5jb20+CkRhdGU6IFRodSwgMjEgQXByIDIwMTYgMjI6MjM6MzEgKzAyMDAKU3ViamVjdDogW1BB VENIIDE3LzQyXSBpcHY0L2ZpYjogZG9uJ3Qgd2FybiB3aGVuIHByaW1hcnkgYWRkcmVzcyBpcyBt aXNzaW5nIGlmCiBpbl9kZXYgaXMgZGVhZAoKWyBVcHN0cmVhbSBjb21taXQgMzkxYTIwMzMzYjgz OTNlZjJlMTMwMTRlNmU1OWQxOTJjNTU5NDQ3MSBdCgpBZnRlciBjb21taXQgZmJkNDBlYTAxODBh ICgiaXB2NDogRG9uJ3QgZG8gZXhwZW5zaXZlIHVzZWxlc3Mgd29yawpkdXJpbmcgaW5ldGRldiBk ZXN0cm95LiIpIHdoZW4gZGVsZXRpbmcgYW4gaW50ZXJmYWNlLApmaWJfZGVsX2lmYWRkcigpIGNh biBiZSBleGVjdXRlZCB3aXRob3V0IGFueSBwcmltYXJ5IGFkZHJlc3MKcHJlc2VudCBvbiB0aGUg ZGVhZCBpbnRlcmZhY2UuCgpUaGUgYWJvdmUgaXMgc2FmZSwgYnV0IHRyaWdnZXJzIHNvbWUgImJ1 ZzogcHJpbSA9PSBOVUxMIiB3YXJuaW5ncy4KClRoaXMgY29tbWl0IGF2b2lkcyB3YXJuaW5nIGlm IHRoZSBpbl9kZXYgaXMgZGVhZAoKU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkgPHBhYmVuaUBy ZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMgfCA2ICsrKysrLQogMSBmaWxlIGNo YW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2ZpYl9mcm9udGVuZC5jIGIvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKaW5kZXggOGE5MjQ2 ZC4uNjM1NjZlYyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKKysrIGIvbmV0 L2lwdjQvZmliX2Zyb250ZW5kLmMKQEAgLTkwNCw3ICs5MDQsMTEgQEAgdm9pZCBmaWJfZGVsX2lm YWRkcihzdHJ1Y3QgaW5faWZhZGRyICppZmEsIHN0cnVjdCBpbl9pZmFkZHIgKmlwcmltKQogCWlm IChpZmEtPmlmYV9mbGFncyAmIElGQV9GX1NFQ09OREFSWSkgewogCQlwcmltID0gaW5ldF9pZmFf YnlwcmVmaXgoaW5fZGV2LCBhbnksIGlmYS0+aWZhX21hc2spOwogCQlpZiAoIXByaW0pIHsKLQkJ CXByX3dhcm4oIiVzOiBidWc6IHByaW0gPT0gTlVMTFxuIiwgX19mdW5jX18pOworCQkJLyogaWYg dGhlIGRldmljZSBoYXMgYmVlbiBkZWxldGVkLCB3ZSBkb24ndCBwZXJmb3JtCisJCQkgKiBhZGRy ZXNzIHByb21vdGlvbgorCQkJICovCisJCQlpZiAoIWluX2Rldi0+ZGVhZCkKKwkJCQlwcl93YXJu KCIlczogYnVnOiBwcmltID09IE5VTExcbiIsIF9fZnVuY19fKTsKIAkJCXJldHVybjsKIAkJfQog CQlpZiAoaXByaW0gJiYgaXByaW0gIT0gcHJpbSkgewotLSAKMi4xLjAKCgpGcm9tIDFkMGExMTA1 Y2M0Mzk5OTcwNjM4Yzk5ZDFiMzEzODg2YzRkOTdlOTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAyMyBB cHIgMjAxNiAxMTozNTo0NiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTgvNDJdIG5ldC9tbHg0X2Vu OiBmaXggc3B1cmlvdXMgdGltZXN0YW1waW5nIGNhbGxiYWNrcwoKWyBVcHN0cmVhbSBjb21taXQg ZmM5NjI1NmM5MDYzNjJlODQ1ZDg0OGQwZjZhNjM1NDQ1MDA1OWU4MSBdCgpXaGVuIG11bHRpcGxl IHNrYiBhcmUgVFgtY29tcGxldGVkIGluIGEgcm93LCB3ZSBtaWdodCBpbmNvcnJlY3RseSBrZWVw CmEgdGltZXN0YW1wIG9mIGEgcHJpb3Igc2tiIGFuZCBjYXVzZSBleHRyYSB3b3JrLgoKRml4ZXM6 IGVjNjkzZDQ3MDEwZTggKCJuZXQvbWx4NF9lbjogQWRkIEhXIHRpbWVzdGFtcGluZyAoVFMpIHN1 cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ CkNjOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClJldmlld2VkLWJ5OiBF cmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg0L2VuX3R4LmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg0L2VuX3R4LmMKaW5kZXggZTA5NDZhYi4uMGRlYmI2MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDQvZW5fdHguYwpAQCAtNDAyLDcgKzQwMiw2IEBAIHN0YXRpYyBi b29sIG1seDRfZW5fcHJvY2Vzc190eF9jcShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCXUzMiBw YWNrZXRzID0gMDsKIAl1MzIgYnl0ZXMgPSAwOwogCWludCBmYWN0b3IgPSBwcml2LT5jcWVfZmFj dG9yOwotCXU2NCB0aW1lc3RhbXAgPSAwOwogCWludCBkb25lID0gMDsKIAlpbnQgYnVkZ2V0ID0g cHJpdi0+dHhfd29ya19saW1pdDsKIAl1MzIgbGFzdF9ucl90eGJiOwpAQCAtNDQyLDkgKzQ0MSwx MiBAQCBzdGF0aWMgYm9vbCBtbHg0X2VuX3Byb2Nlc3NfdHhfY3Eoc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwKIAkJbmV3X2luZGV4ID0gYmUxNl90b19jcHUoY3FlLT53cWVfaW5kZXgpICYgc2l6ZV9t YXNrOwogCiAJCWRvIHsKKwkJCXU2NCB0aW1lc3RhbXAgPSAwOworCiAJCQl0eGJic19za2lwcGVk ICs9IGxhc3RfbnJfdHhiYjsKIAkJCXJpbmdfaW5kZXggPSAocmluZ19pbmRleCArIGxhc3RfbnJf dHhiYikgJiBzaXplX21hc2s7Ci0JCQlpZiAocmluZy0+dHhfaW5mb1tyaW5nX2luZGV4XS50c19y ZXF1ZXN0ZWQpCisKKwkJCWlmICh1bmxpa2VseShyaW5nLT50eF9pbmZvW3JpbmdfaW5kZXhdLnRz X3JlcXVlc3RlZCkpCiAJCQkJdGltZXN0YW1wID0gbWx4NF9lbl9nZXRfY3FlX3RzKGNxZSk7CiAK IAkJCS8qIGZyZWUgbmV4dCBkZXNjcmlwdG9yICovCi0tIAoyLjEuMAoKCkZyb20gMzc2YzhlMDhl NGU2ZWYyNmU1YTEzMDU0MjFhMDBiNjRlNTczMzNlNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSmFubiBIb3JuIDxqYW5uaEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDI2IEFwciAyMDE2 IDIyOjI2OjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxOS80Ml0gYnBmOiBmaXggZG91YmxlLWZk cHV0IGluIHJlcGxhY2VfbWFwX2ZkX3dpdGhfbWFwX3B0cigpCgpbIFVwc3RyZWFtIGNvbW1pdCA4 MzU4YjAyYmY2N2QzYTVkOGE4MjUwNzBlMWFhNzNmMjVmYjJlNGM3IF0KCldoZW4gYnBmKEJQRl9Q Uk9HX0xPQUQsIC4uLikgd2FzIGludm9rZWQgd2l0aCBhIEJQRiBwcm9ncmFtIHdob3NlIGJ5dGVj b2RlCnJlZmVyZW5jZXMgYSBub24tbWFwIGZpbGUgZGVzY3JpcHRvciBhcyBhIG1hcCBmaWxlIGRl c2NyaXB0b3IsIHRoZSBlcnJvcgpoYW5kbGluZyBjb2RlIGNhbGxlZCBmZHB1dCgpIHR3aWNlIGlu c3RlYWQgb2Ygb25jZSAoaW4gX19icGZfbWFwX2dldCgpIGFuZAppbiByZXBsYWNlX21hcF9mZF93 aXRoX21hcF9wdHIoKSkuIElmIHRoZSBmaWxlIGRlc2NyaXB0b3IgdGFibGUgb2YgdGhlCmN1cnJl bnQgdGFzayBpcyBzaGFyZWQsIHRoaXMgY2F1c2VzIGZfY291bnQgdG8gYmUgZGVjcmVtZW50ZWQg dG9vIG11Y2gsCmFsbG93aW5nIHRoZSBzdHJ1Y3QgZmlsZSB0byBiZSBmcmVlZCB3aGlsZSBpdCBp cyBzdGlsbCBpbiB1c2UKKHVzZS1hZnRlci1mcmVlKS4gVGhpcyBjYW4gYmUgZXhwbG9pdGVkIHRv IGdhaW4gcm9vdCBwcml2aWxlZ2VzIGJ5IGFuCnVucHJpdmlsZWdlZCB1c2VyLgoKVGhpcyBidWcg d2FzIGludHJvZHVjZWQgaW4KY29tbWl0IDAyNDZlNjRkOWE1ZiAoImJwZjogaGFuZGxlIHBzZXVk byBCUEZfTERfSU1NNjQgaW5zbiIpLCBidXQgaXMgb25seQpleHBsb2l0YWJsZSBzaW5jZQpjb21t aXQgMWJlN2Y3NWQxNjY4ICgiYnBmOiBlbmFibGUgbm9uLXJvb3QgZUJQRiBwcm9ncmFtcyIpIGJl Y2F1c2UKcHJldmlvdXNseSwgQ0FQX1NZU19BRE1JTiB3YXMgcmVxdWlyZWQgdG8gcmVhY2ggdGhl IHZ1bG5lcmFibGUgY29kZS4KCihwb3N0ZWQgcHVibGljbHkgYWNjb3JkaW5nIHRvIHJlcXVlc3Qg YnkgbWFpbnRhaW5lcikKClNpZ25lZC1vZmYtYnk6IEphbm4gSG9ybiA8amFubmhAZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRp b24ub3JnPgpBY2tlZC1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4KQWNr ZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBrZXJuZWwvYnBm L3ZlcmlmaWVyLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4 IGMyMWNiMTQuLmUzNzk4Y2YgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYworKysg Yi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTIwMDQsNyArMjAwNCw2IEBAIHN0YXRpYyBpbnQg cmVwbGFjZV9tYXBfZmRfd2l0aF9tYXBfcHRyKHN0cnVjdCB2ZXJpZmllcl9lbnYgKmVudikKIAkJ CWlmIChJU19FUlIobWFwKSkgewogCQkJCXZlcmJvc2UoImZkICVkIGlzIG5vdCBwb2ludGluZyB0 byB2YWxpZCBicGZfbWFwXG4iLAogCQkJCQlpbnNuLT5pbW0pOwotCQkJCWZkcHV0KGYpOwogCQkJ CXJldHVybiBQVFJfRVJSKG1hcCk7CiAJCQl9CiAKLS0gCjIuMS4wCgoKRnJvbSBhMzMwZTI4ZGIz OWQ1ODRjZTA1ZmRhNTJkOTZkNGMxNWM3ZTQ1MjU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBmYi5jb20+CkRhdGU6IFdlZCwgMjcgQXByIDIw MTYgMTg6NTY6MjAgLTA3MDAKU3ViamVjdDogW1BBVENIIDIwLzQyXSBicGY6IGZpeCByZWZjbnQg b3ZlcmZsb3cKClsgVXBzdHJlYW0gY29tbWl0IDkyMTE3ZDg0NDNiYzVhZmFjYzhkNWJhODJlNTQx OTQ2MzEwZjEwNmUgXQoKT24gYSBzeXN0ZW0gd2l0aCA+MzJHYnl0ZSBvZiBwaHlpc2NhbCBtZW1v cnkgYW5kIGluZmluaXRlIFJMSU1JVF9NRU1MT0NLLAp0aGUgbWFsaWNpb3VzIGFwcGxpY2F0aW9u IG1heSBvdmVyZmxvdyAzMi1iaXQgYnBmIHByb2dyYW0gcmVmY250LgpJdCdzIGFsc28gcG9zc2li bGUgdG8gb3ZlcmZsb3cgbWFwIHJlZmNudCBvbiAxVGIgc3lzdGVtLgpJbXBvc2UgMzJrIGhhcmQg bGltaXQgd2hpY2ggbWVhbnMgdGhhdCB0aGUgc2FtZSBicGYgcHJvZ3JhbSBvcgptYXAgY2Fubm90 IGJlIHNoYXJlZCBieSBtb3JlIHRoYW4gMzJrIHByb2Nlc3Nlcy4KCkZpeGVzOiAxYmU3Zjc1ZDE2 NjggKCJicGY6IGVuYWJsZSBub24tcm9vdCBlQlBGIHByb2dyYW1zIikKUmVwb3J0ZWQtYnk6IEph bm4gSG9ybiA8amFubmhAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogQWxleGVpIFN0YXJvdm9p dG92IDxhc3RAa2VybmVsLm9yZz4KQWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlv Z2VhcmJveC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L2JwZi5oICAgfCAgMyArKy0KIGtlcm5lbC9icGYv aW5vZGUuYyAgICB8ICA3ICsrKystLS0KIGtlcm5lbC9icGYvc3lzY2FsbC5jICB8IDI0ICsrKysr KysrKysrKysrKysrKysrLS0tLQoga2VybmVsL2JwZi92ZXJpZmllci5jIHwgMTEgKysrKysrKy0t LS0KIDQgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYuaCBiL2luY2x1ZGUvbGludXgvYnBmLmgKaW5k ZXggODNkMTkyNi4uNjdiYzJkYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9icGYuaAorKysg Yi9pbmNsdWRlL2xpbnV4L2JwZi5oCkBAIC0xNjUsMTIgKzE2NSwxMyBAQCB2b2lkIGJwZl9yZWdp c3Rlcl9wcm9nX3R5cGUoc3RydWN0IGJwZl9wcm9nX3R5cGVfbGlzdCAqdGwpOwogdm9pZCBicGZf cmVnaXN0ZXJfbWFwX3R5cGUoc3RydWN0IGJwZl9tYXBfdHlwZV9saXN0ICp0bCk7CiAKIHN0cnVj dCBicGZfcHJvZyAqYnBmX3Byb2dfZ2V0KHUzMiB1ZmQpOworc3RydWN0IGJwZl9wcm9nICpicGZf cHJvZ19pbmMoc3RydWN0IGJwZl9wcm9nICpwcm9nKTsKIHZvaWQgYnBmX3Byb2dfcHV0KHN0cnVj dCBicGZfcHJvZyAqcHJvZyk7CiB2b2lkIGJwZl9wcm9nX3B1dF9yY3Uoc3RydWN0IGJwZl9wcm9n ICpwcm9nKTsKIAogc3RydWN0IGJwZl9tYXAgKmJwZl9tYXBfZ2V0X3dpdGhfdXJlZih1MzIgdWZk KTsKIHN0cnVjdCBicGZfbWFwICpfX2JwZl9tYXBfZ2V0KHN0cnVjdCBmZCBmKTsKLXZvaWQgYnBm X21hcF9pbmMoc3RydWN0IGJwZl9tYXAgKm1hcCwgYm9vbCB1cmVmKTsKK3N0cnVjdCBicGZfbWFw ICpicGZfbWFwX2luYyhzdHJ1Y3QgYnBmX21hcCAqbWFwLCBib29sIHVyZWYpOwogdm9pZCBicGZf bWFwX3B1dF93aXRoX3VyZWYoc3RydWN0IGJwZl9tYXAgKm1hcCk7CiB2b2lkIGJwZl9tYXBfcHV0 KHN0cnVjdCBicGZfbWFwICptYXApOwogCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2lub2RlLmMg Yi9rZXJuZWwvYnBmL2lub2RlLmMKaW5kZXggZjJlY2UzYy4uOGY5NGNhMSAxMDA2NDQKLS0tIGEv a2VybmVsL2JwZi9pbm9kZS5jCisrKyBiL2tlcm5lbC9icGYvaW5vZGUuYwpAQCAtMzEsMTAgKzMx LDEwIEBAIHN0YXRpYyB2b2lkICpicGZfYW55X2dldCh2b2lkICpyYXcsIGVudW0gYnBmX3R5cGUg dHlwZSkKIHsKIAlzd2l0Y2ggKHR5cGUpIHsKIAljYXNlIEJQRl9UWVBFX1BST0c6Ci0JCWF0b21p Y19pbmMoJigoc3RydWN0IGJwZl9wcm9nICopcmF3KS0+YXV4LT5yZWZjbnQpOworCQlyYXcgPSBi cGZfcHJvZ19pbmMocmF3KTsKIAkJYnJlYWs7CiAJY2FzZSBCUEZfVFlQRV9NQVA6Ci0JCWJwZl9t YXBfaW5jKHJhdywgdHJ1ZSk7CisJCXJhdyA9IGJwZl9tYXBfaW5jKHJhdywgdHJ1ZSk7CiAJCWJy ZWFrOwogCWRlZmF1bHQ6CiAJCVdBUk5fT05fT05DRSgxKTsKQEAgLTI5Nyw3ICsyOTcsOCBAQCBz dGF0aWMgdm9pZCAqYnBmX29ial9kb19nZXQoY29uc3Qgc3RydWN0IGZpbGVuYW1lICpwYXRobmFt ZSwKIAkJZ290byBvdXQ7CiAKIAlyYXcgPSBicGZfYW55X2dldChpbm9kZS0+aV9wcml2YXRlLCAq dHlwZSk7Ci0JdG91Y2hfYXRpbWUoJnBhdGgpOworCWlmICghSVNfRVJSKHJhdykpCisJCXRvdWNo X2F0aW1lKCZwYXRoKTsKIAogCXBhdGhfcHV0KCZwYXRoKTsKIAlyZXR1cm4gcmF3OwpkaWZmIC0t Z2l0IGEva2VybmVsL2JwZi9zeXNjYWxsLmMgYi9rZXJuZWwvYnBmL3N5c2NhbGwuYwppbmRleCA2 MzczOTcwLi5hYTVmMzk3IDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL3N5c2NhbGwuYworKysgYi9r ZXJuZWwvYnBmL3N5c2NhbGwuYwpAQCAtMjAxLDExICsyMDEsMTggQEAgc3RydWN0IGJwZl9tYXAg Kl9fYnBmX21hcF9nZXQoc3RydWN0IGZkIGYpCiAJcmV0dXJuIGYuZmlsZS0+cHJpdmF0ZV9kYXRh OwogfQogCi12b2lkIGJwZl9tYXBfaW5jKHN0cnVjdCBicGZfbWFwICptYXAsIGJvb2wgdXJlZikK Ky8qIHByb2cncyBhbmQgbWFwJ3MgcmVmY250IGxpbWl0ICovCisjZGVmaW5lIEJQRl9NQVhfUkVG Q05UIDMyNzY4CisKK3N0cnVjdCBicGZfbWFwICpicGZfbWFwX2luYyhzdHJ1Y3QgYnBmX21hcCAq bWFwLCBib29sIHVyZWYpCiB7Ci0JYXRvbWljX2luYygmbWFwLT5yZWZjbnQpOworCWlmIChhdG9t aWNfaW5jX3JldHVybigmbWFwLT5yZWZjbnQpID4gQlBGX01BWF9SRUZDTlQpIHsKKwkJYXRvbWlj X2RlYygmbWFwLT5yZWZjbnQpOworCQlyZXR1cm4gRVJSX1BUUigtRUJVU1kpOworCX0KIAlpZiAo dXJlZikKIAkJYXRvbWljX2luYygmbWFwLT51c2VyY250KTsKKwlyZXR1cm4gbWFwOwogfQogCiBz dHJ1Y3QgYnBmX21hcCAqYnBmX21hcF9nZXRfd2l0aF91cmVmKHUzMiB1ZmQpCkBAIC0yMTcsNyAr MjI0LDcgQEAgc3RydWN0IGJwZl9tYXAgKmJwZl9tYXBfZ2V0X3dpdGhfdXJlZih1MzIgdWZkKQog CWlmIChJU19FUlIobWFwKSkKIAkJcmV0dXJuIG1hcDsKIAotCWJwZl9tYXBfaW5jKG1hcCwgdHJ1 ZSk7CisJbWFwID0gYnBmX21hcF9pbmMobWFwLCB0cnVlKTsKIAlmZHB1dChmKTsKIAogCXJldHVy biBtYXA7CkBAIC02MDAsNiArNjA3LDE1IEBAIHN0YXRpYyBzdHJ1Y3QgYnBmX3Byb2cgKl9fYnBm X3Byb2dfZ2V0KHN0cnVjdCBmZCBmKQogCXJldHVybiBmLmZpbGUtPnByaXZhdGVfZGF0YTsKIH0K IAorc3RydWN0IGJwZl9wcm9nICpicGZfcHJvZ19pbmMoc3RydWN0IGJwZl9wcm9nICpwcm9nKQor eworCWlmIChhdG9taWNfaW5jX3JldHVybigmcHJvZy0+YXV4LT5yZWZjbnQpID4gQlBGX01BWF9S RUZDTlQpIHsKKwkJYXRvbWljX2RlYygmcHJvZy0+YXV4LT5yZWZjbnQpOworCQlyZXR1cm4gRVJS X1BUUigtRUJVU1kpOworCX0KKwlyZXR1cm4gcHJvZzsKK30KKwogLyogY2FsbGVkIGJ5IHNvY2tl dHMvdHJhY2luZy9zZWNjb21wIGJlZm9yZSBhdHRhY2hpbmcgcHJvZ3JhbSB0byBhbiBldmVudAog ICogcGFpcnMgd2l0aCBicGZfcHJvZ19wdXQoKQogICovCkBAIC02MTIsNyArNjI4LDcgQEAgc3Ry dWN0IGJwZl9wcm9nICpicGZfcHJvZ19nZXQodTMyIHVmZCkKIAlpZiAoSVNfRVJSKHByb2cpKQog CQlyZXR1cm4gcHJvZzsKIAotCWF0b21pY19pbmMoJnByb2ctPmF1eC0+cmVmY250KTsKKwlwcm9n ID0gYnBmX3Byb2dfaW5jKHByb2cpOwogCWZkcHV0KGYpOwogCiAJcmV0dXJuIHByb2c7CmRpZmYg LS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKaW5k ZXggZTM3OThjZi4uNWE2MTVjMTggMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYwor KysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTIwMjMsMTUgKzIwMjMsMTggQEAgc3RhdGlj IGludCByZXBsYWNlX21hcF9mZF93aXRoX21hcF9wdHIoc3RydWN0IHZlcmlmaWVyX2VudiAqZW52 KQogCQkJCXJldHVybiAtRTJCSUc7CiAJCQl9CiAKLQkJCS8qIHJlbWVtYmVyIHRoaXMgbWFwICov Ci0JCQllbnYtPnVzZWRfbWFwc1tlbnYtPnVzZWRfbWFwX2NudCsrXSA9IG1hcDsKLQogCQkJLyog aG9sZCB0aGUgbWFwLiBJZiB0aGUgcHJvZ3JhbSBpcyByZWplY3RlZCBieSB2ZXJpZmllciwKIAkJ CSAqIHRoZSBtYXAgd2lsbCBiZSByZWxlYXNlZCBieSByZWxlYXNlX21hcHMoKSBvciBpdAogCQkJ ICogd2lsbCBiZSB1c2VkIGJ5IHRoZSB2YWxpZCBwcm9ncmFtIHVudGlsIGl0J3MgdW5sb2FkZWQK IAkJCSAqIGFuZCBhbGwgbWFwcyBhcmUgcmVsZWFzZWQgaW4gZnJlZV9icGZfcHJvZ19pbmZvKCkK IAkJCSAqLwotCQkJYnBmX21hcF9pbmMobWFwLCBmYWxzZSk7CisJCQltYXAgPSBicGZfbWFwX2lu YyhtYXAsIGZhbHNlKTsKKwkJCWlmIChJU19FUlIobWFwKSkgeworCQkJCWZkcHV0KGYpOworCQkJ CXJldHVybiBQVFJfRVJSKG1hcCk7CisJCQl9CisJCQllbnYtPnVzZWRfbWFwc1tlbnYtPnVzZWRf bWFwX2NudCsrXSA9IG1hcDsKKwogCQkJZmRwdXQoZik7CiBuZXh0X2luc246CiAJCQlpbnNuKys7 Ci0tIAoyLjEuMAoKCkZyb20gOGE4YTE1MGY2ZGExMzVhYTU1NDhmYTM1MjU2N2FhODFkYmRmMGYz MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RA ZmIuY29tPgpEYXRlOiBXZWQsIDI3IEFwciAyMDE2IDE4OjU2OjIxIC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAyMS80Ml0gYnBmOiBmaXggY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eSBsb2dpYwoK WyBVcHN0cmVhbSBjb21taXQgNmFmZjY3Yzg1YzllNWE0YmM5OWU1MjExYzFiYWM1NDc5MzY2MjZj YSBdCgpUaGUgY29tbWl0IDM1NTc4ZDc5ODQwMCAoImJwZjogSW1wbGVtZW50IGZ1bmN0aW9uIGJw Zl9wZXJmX2V2ZW50X3JlYWQoKSB0aGF0IGdldCB0aGUgc2VsZWN0ZWQgaGFyZHdhcmUgUE1VIGNv bnV0ZXIiKQppbnRyb2R1Y2VkIGNsZXZlciB3YXkgdG8gY2hlY2sgYnBmX2hlbHBlcjwtPm1hcF90 eXBlIGNvbXBhdGliaWxpdHkuCkxhdGVyIG9uIGNvbW1pdCBhNDNlZWMzMDQyNTkgKCJicGY6IGlu dHJvZHVjZSBicGZfcGVyZl9ldmVudF9vdXRwdXQoKSBoZWxwZXIiKSBhZGp1c3RlZAp0aGUgbG9n aWMgYW5kIGluYWR2ZXJ0ZW50bHkgYnJva2UgaXQuCkdldCByaWQgb2YgdGhlIGNsZXZlciBib29s IGNvbXBhcmUgYW5kIGdvIGJhY2sgdG8gdHdvLXdheSBjaGVjawpmcm9tIG1hcCBhbmQgZnJvbSBo ZWxwZXIgcGVyc3BlY3RpdmUuCgpGaXhlczogYTQzZWVjMzA0MjU5ICgiYnBmOiBpbnRyb2R1Y2Ug YnBmX3BlcmZfZXZlbnRfb3V0cHV0KCkgaGVscGVyIikKUmVwb3J0ZWQtYnk6IEphbm4gSG9ybiA8 amFubmhAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RA a2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFy Ym94Lm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGtlcm5lbC9icGYvdmVyaWZpZXIuYyB8IDUzICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMyIGluc2Vy dGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZp ZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCA1YTYxNWMxOC4uMmNiZmJhNyAxMDA2 NDQKLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jCisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIu YwpAQCAtMjM5LDE1ICsyMzksNiBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHJlZ190eXBl X3N0cltdID0gewogCVtDT05TVF9JTU1dCQk9ICJpbW0iLAogfTsKIAotc3RhdGljIGNvbnN0IHN0 cnVjdCB7Ci0JaW50IG1hcF90eXBlOwotCWludCBmdW5jX2lkOwotfSBmdW5jX2xpbWl0W10gPSB7 Ci0Je0JQRl9NQVBfVFlQRV9QUk9HX0FSUkFZLCBCUEZfRlVOQ190YWlsX2NhbGx9LAotCXtCUEZf TUFQX1RZUEVfUEVSRl9FVkVOVF9BUlJBWSwgQlBGX0ZVTkNfcGVyZl9ldmVudF9yZWFkfSwKLQl7 QlBGX01BUF9UWVBFX1BFUkZfRVZFTlRfQVJSQVksIEJQRl9GVU5DX3BlcmZfZXZlbnRfb3V0cHV0 fSwKLX07Ci0KIHN0YXRpYyB2b2lkIHByaW50X3ZlcmlmaWVyX3N0YXRlKHN0cnVjdCB2ZXJpZmll cl9lbnYgKmVudikKIHsKIAllbnVtIGJwZl9yZWdfdHlwZSB0OwpAQCAtODk4LDI0ICs4ODksNDQg QEAgc3RhdGljIGludCBjaGVja19mdW5jX2FyZyhzdHJ1Y3QgdmVyaWZpZXJfZW52ICplbnYsIHUz MiByZWdubywKIAogc3RhdGljIGludCBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5KHN0cnVj dCBicGZfbWFwICptYXAsIGludCBmdW5jX2lkKQogewotCWJvb2wgYm9vbF9tYXAsIGJvb2xfZnVu YzsKLQlpbnQgaTsKLQogCWlmICghbWFwKQogCQlyZXR1cm4gMDsKIAotCWZvciAoaSA9IDA7IGkg PCBBUlJBWV9TSVpFKGZ1bmNfbGltaXQpOyBpKyspIHsKLQkJYm9vbF9tYXAgPSAobWFwLT5tYXBf dHlwZSA9PSBmdW5jX2xpbWl0W2ldLm1hcF90eXBlKTsKLQkJYm9vbF9mdW5jID0gKGZ1bmNfaWQg PT0gZnVuY19saW1pdFtpXS5mdW5jX2lkKTsKLQkJLyogb25seSB3aGVuIG1hcCAmIGZ1bmMgcGFp ciBtYXRjaCBpdCBjYW4gY29udGludWUuCi0JCSAqIGRvbid0IGFsbG93IGFueSBvdGhlciBtYXAg dHlwZSB0byBiZSBwYXNzZWQgaW50bwotCQkgKiB0aGUgc3BlY2lhbCBmdW5jOwotCQkgKi8KLQkJ aWYgKGJvb2xfZnVuYyAmJiBib29sX21hcCAhPSBib29sX2Z1bmMpCi0JCQlyZXR1cm4gLUVJTlZB TDsKKwkvKiBXZSBuZWVkIGEgdHdvIHdheSBjaGVjaywgZmlyc3QgaXMgZnJvbSBtYXAgcGVyc3Bl Y3RpdmUgLi4uICovCisJc3dpdGNoIChtYXAtPm1hcF90eXBlKSB7CisJY2FzZSBCUEZfTUFQX1RZ UEVfUFJPR19BUlJBWToKKwkJaWYgKGZ1bmNfaWQgIT0gQlBGX0ZVTkNfdGFpbF9jYWxsKQorCQkJ Z290byBlcnJvcjsKKwkJYnJlYWs7CisJY2FzZSBCUEZfTUFQX1RZUEVfUEVSRl9FVkVOVF9BUlJB WToKKwkJaWYgKGZ1bmNfaWQgIT0gQlBGX0ZVTkNfcGVyZl9ldmVudF9yZWFkICYmCisJCSAgICBm dW5jX2lkICE9IEJQRl9GVU5DX3BlcmZfZXZlbnRfb3V0cHV0KQorCQkJZ290byBlcnJvcjsKKwkJ YnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJLyogLi4uIGFuZCBzZWNvbmQgZnJv bSB0aGUgZnVuY3Rpb24gaXRzZWxmLiAqLworCXN3aXRjaCAoZnVuY19pZCkgeworCWNhc2UgQlBG X0ZVTkNfdGFpbF9jYWxsOgorCQlpZiAobWFwLT5tYXBfdHlwZSAhPSBCUEZfTUFQX1RZUEVfUFJP R19BUlJBWSkKKwkJCWdvdG8gZXJyb3I7CisJCWJyZWFrOworCWNhc2UgQlBGX0ZVTkNfcGVyZl9l dmVudF9yZWFkOgorCWNhc2UgQlBGX0ZVTkNfcGVyZl9ldmVudF9vdXRwdXQ6CisJCWlmIChtYXAt Pm1hcF90eXBlICE9IEJQRl9NQVBfVFlQRV9QRVJGX0VWRU5UX0FSUkFZKQorCQkJZ290byBlcnJv cjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CiAJfQogCiAJcmV0dXJuIDA7CitlcnJv cjoKKwl2ZXJib3NlKCJjYW5ub3QgcGFzcyBtYXBfdHlwZSAlZCBpbnRvIGZ1bmMgJWRcbiIsCisJ CW1hcC0+bWFwX3R5cGUsIGZ1bmNfaWQpOworCXJldHVybiAtRUlOVkFMOwogfQogCiBzdGF0aWMg aW50IGNoZWNrX2NhbGwoc3RydWN0IHZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19pZCkKLS0g CjIuMS4wCgoKRnJvbSBlMTY4NTVmOTMwNDAyNmIxMjkwNWI5M2U4YmVhYzdlZWM2MDhiYmRlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBmYi5j b20+CkRhdGU6IFdlZCwgMjcgQXByIDIwMTYgMTg6NTY6MjIgLTA3MDAKU3ViamVjdDogW1BBVENI IDIyLzQyXSBzYW1wbGVzL2JwZjogZml4IHRyYWNlX291dHB1dCBleGFtcGxlCgpbIFVwc3RyZWFt IGNvbW1pdCA1NjljYzM5ZDM5Mzg1YTc0YjIzMTQ1NDk2YmNhMmRmNWFjOGIyZmI4IF0KCmxsdm0g Y2Fubm90IGFsd2F5cyByZWNvZ25pemUgbWVtc2V0IGFzIGJ1aWx0aW4gZnVuY3Rpb24gYW5kIG9w dGltaXplCml0IGF3YXksIHNvIGp1c3QgZGVsZXRlIGl0LiBJdCB3YXMgYSBsZWZ0b3ZlciBmcm9t IHRlc3RpbmcKb2YgYnBmX3BlcmZfZXZlbnRfb3V0cHV0KCkgd2l0aCBsYXJnZSBkYXRhIHN0cnVj dHVyZXMuCgpGaXhlczogMzkxMTE2OTViMWI4ICgic2FtcGxlczogYnBmOiBhZGQgYnBmX3BlcmZf ZXZlbnRfb3V0cHV0IGV4YW1wbGUiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3Yg PGFzdEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogc2FtcGxlcy9icGYvdHJhY2Vfb3V0cHV0X2tlcm4uYyB8IDEgLQog MSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zYW1wbGVzL2JwZi90 cmFjZV9vdXRwdXRfa2Vybi5jIGIvc2FtcGxlcy9icGYvdHJhY2Vfb3V0cHV0X2tlcm4uYwppbmRl eCA4ZDhkMWVjLi45Yjk2ZjRmIDEwMDY0NAotLS0gYS9zYW1wbGVzL2JwZi90cmFjZV9vdXRwdXRf a2Vybi5jCisrKyBiL3NhbXBsZXMvYnBmL3RyYWNlX291dHB1dF9rZXJuLmMKQEAgLTE4LDcgKzE4 LDYgQEAgaW50IGJwZl9wcm9nMShzdHJ1Y3QgcHRfcmVncyAqY3R4KQogCQl1NjQgY29va2llOwog CX0gZGF0YTsKIAotCW1lbXNldCgmZGF0YSwgMCwgc2l6ZW9mKGRhdGEpKTsKIAlkYXRhLnBpZCA9 IGJwZl9nZXRfY3VycmVudF9waWRfdGdpZCgpOwogCWRhdGEuY29va2llID0gMHgxMjM0NTY3ODsK IAotLSAKMi4xLjAKCgpGcm9tIGVlMzkyZDczNDA0MjAzN2YwZmI1NDczMTY4OTFmNTg0YjgyMDE2 ZWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRpbSBCaW5naGFtIDx0YmluZ2hhbUBh a2FtYWkuY29tPgpEYXRlOiBGcmksIDI5IEFwciAyMDE2IDEzOjMwOjIzIC0wNDAwClN1YmplY3Q6 IFtQQVRDSCAyMy80Ml0gbmV0OiBJbXBsZW1lbnQgbmV0X2RiZ19yYXRlbGltaXRlZCgpIGZvcgog Q09ORklHX0RZTkFNSUNfREVCVUcgY2FzZQoKWyBVcHN0cmVhbSBjb21taXQgMmM5NGI1MzczODU0 OWQ4MWRjNzQ2NGEzMjExN2QxZjUxMTJjNjRkMyBdCgpQcmlvciB0byBjb21taXQgZDkyY2ZmODlh MGM4ICgibmV0X2RiZ19yYXRlbGltaXRlZDogdHVybiBpbnRvIG5vLW9wCndoZW4gIURFQlVHIikg dGhlIGltcGxlbWVudGF0aW9uIG9mIG5ldF9kYmdfcmF0ZWxpbWl0ZWQoKSB3YXMgYnVnZ3kKZm9y IGJvdGggdGhlIERFQlVHIGFuZCBDT05GSUdfRFlOQU1JQ19ERUJVRyBjYXNlcy4KClRoZSBidWcg d2FzIHRoYXQgbmV0X3JhdGVsaW1pdCgpIHdhcyBiZWluZyBjYWxsZWQgYW5kLCBkZXNwaXRlCnJl dHVybmluZyB0cnVlLCBub3RoaW5nIHdhcyBiZWluZyBwcmludGVkIHRvIHRoZSBjb25zb2xlLiBU aGlzCnJlc3VsdGVkIGluIG1lc3NhZ2VzIGxpa2UgdGhlIGZvbGxvd2luZyAtCgoibmV0X3JhdGVs aW1pdDogJWQgY2FsbGJhY2tzIHN1cHByZXNzZWQiCgp3aXRoIG5vIG90aGVyIG91dHB1dCBuZWFy YnkuCgpBZnRlciBjb21taXQgZDkyY2ZmODlhMGM4ICgibmV0X2RiZ19yYXRlbGltaXRlZDogdHVy biBpbnRvIG5vLW9wIHdoZW4KIURFQlVHIikgdGhlIGJ1ZyBpcyBmaXhlZCBmb3IgdGhlIERFQlVH IGNhc2UuIEhvd2V2ZXIsIHRoZXJlJ3Mgbm8Kb3V0cHV0IGF0IGFsbCBmb3IgQ09ORklHX0RZTkFN SUNfREVCVUcgY2FzZS4KClRoaXMgcGF0Y2ggcmVzdG9yZXMgZGVidWcgb3V0cHV0IChpZiBlbmFi bGVkKSBmb3IgdGhlCkNPTkZJR19EWU5BTUlDX0RFQlVHIGNhc2UuCgpBZGQgYSBkZWZpbml0aW9u IG9mIG5ldF9kYmdfcmF0ZWxpbWl0ZWQoKSBmb3IgdGhlIENPTkZJR19EWU5BTUlDX0RFQlVHCmNh c2UuIFRoZSBpbXBsZW1lbnRhdGlvbiB0YWtlcyBjYXJlIHRvIGNoZWNrIHRoYXQgZHluYW1pYyBk ZWJ1Z2dpbmcgaXMKZW5hYmxlZCBiZWZvcmUgY2FsbGluZyBuZXRfcmF0ZWxpbWl0KCkuCgpGaXhl czogZDkyY2ZmODlhMGM4ICgibmV0X2RiZ19yYXRlbGltaXRlZDogdHVybiBpbnRvIG5vLW9wIHdo ZW4gIURFQlVHIikKU2lnbmVkLW9mZi1ieTogVGltIEJpbmdoYW0gPHRiaW5naGFtQGFrYW1haS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBpbmNsdWRlL2xpbnV4L25ldC5oIHwgMTAgKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQs IDkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvbmV0LmggYi9pbmNsdWRlL2xpbnV4L25ldC5oCmluZGV4IDBiNGFjN2QuLjI1ZWY2MzAgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0LmgKKysrIGIvaW5jbHVkZS9saW51eC9uZXQuaApA QCAtMjQ1LDcgKzI0NSwxNSBAQCBkbyB7CQkJCQkJCQlcCiAJbmV0X3JhdGVsaW1pdGVkX2Z1bmN0 aW9uKHByX3dhcm4sIGZtdCwgIyNfX1ZBX0FSR1NfXykKICNkZWZpbmUgbmV0X2luZm9fcmF0ZWxp bWl0ZWQoZm10LCAuLi4pCQkJCVwKIAluZXRfcmF0ZWxpbWl0ZWRfZnVuY3Rpb24ocHJfaW5mbywg Zm10LCAjI19fVkFfQVJHU19fKQotI2lmIGRlZmluZWQoREVCVUcpCisjaWYgZGVmaW5lZChDT05G SUdfRFlOQU1JQ19ERUJVRykKKyNkZWZpbmUgbmV0X2RiZ19yYXRlbGltaXRlZChmbXQsIC4uLikJ CQkJCVwKK2RvIHsJCQkJCQkJCQlcCisJREVGSU5FX0RZTkFNSUNfREVCVUdfTUVUQURBVEEoZGVz Y3JpcHRvciwgZm10KTsJCQlcCisJaWYgKHVubGlrZWx5KGRlc2NyaXB0b3IuZmxhZ3MgJiBfRFBS SU5US19GTEFHU19QUklOVCkgJiYJXAorCSAgICBuZXRfcmF0ZWxpbWl0KCkpCQkJCQkJXAorCQlf X2R5bmFtaWNfcHJfZGVidWcoJmRlc2NyaXB0b3IsIGZtdCwgIyNfX1ZBX0FSR1NfXyk7CVwKK30g d2hpbGUgKDApCisjZWxpZiBkZWZpbmVkKERFQlVHKQogI2RlZmluZSBuZXRfZGJnX3JhdGVsaW1p dGVkKGZtdCwgLi4uKQkJCQlcCiAJbmV0X3JhdGVsaW1pdGVkX2Z1bmN0aW9uKHByX2RlYnVnLCBm bXQsICMjX19WQV9BUkdTX18pCiAjZWxzZQotLSAKMi4xLjAKCgpGcm9tIDJhZTY5MThjYmQwMjNj NWZjYjhjMzIyN2MxYTRmOTk1ZWUyMTQ1MGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEppcmkgQmVuYyA8amJlbmNAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAyOSBBcHIgMjAxNiAyMzoz MTozMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjQvNDJdIGdyZTogZG8gbm90IHB1bGwgaGVhZGVy IGluIElDTVAgZXJyb3IgcHJvY2Vzc2luZwoKWyBVcHN0cmVhbSBjb21taXQgYjdmOGZlMjUxZTQ2 MDllMmE0MzdiZDJjMmRlYTAxZTYxZGI2ODQ5YyBdCgppcHR1bm5lbF9wdWxsX2hlYWRlciBleHBl Y3RzIHRoYXQgSVAgaGVhZGVyIHdhcyBhbHJlYWR5IHB1bGxlZDsgd2l0aCB0aGlzCmV4cGVjdGF0 aW9uLCBpdCBwdWxscyB0aGUgdHVubmVsIGhlYWRlci4gVGhpcyBpcyBub3QgdHJ1ZSBpbiBncmVf ZXJyLgpGdXJ0aGVybW9yZSwgaXB2NF91cGRhdGVfcG10dSBhbmQgaXB2NF9yZWRpcmVjdCBleHBl Y3QgdGhhdCBza2ItPmRhdGEgcG9pbnRzCnRvIHRoZSBJUCBoZWFkZXIuCgpXZSBjYW5ub3QgcHVs bCB0aGUgdHVubmVsIGhlYWRlciBpbiB0aGlzIHBhdGguIEl0J3MganVzdCBhIG1hdHRlciBvZiBu b3QKY2FsbGluZyBpcHR1bm5lbF9wdWxsX2hlYWRlciAtIHdlIGRvbid0IG5lZWQgYW55IG9mIGl0 cyBlZmZlY3RzLgoKRml4ZXM6IGJkYTdiYjQ2MzQzNiAoImdyZTogQWxsb3cgbXVsdGlwbGUgcHJv dG9jb2wgbGlzdGVuZXIgZm9yIGdyZSBwcm90b2NvbC4iKQpTaWduZWQtb2ZmLWJ5OiBKaXJpIEJl bmMgPGpiZW5jQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pcF9ncmUuYyB8IDExICsrKysrKysrLS0t CiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2lwX2dyZS5jIGIvbmV0L2lwdjQvaXBfZ3JlLmMKaW5kZXggNDFiYTY4 ZC4uZDBjMWU3NyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZ3JlLmMKKysrIGIvbmV0L2lwdjQv aXBfZ3JlLmMKQEAgLTE3OSw2ICsxNzksNyBAQCBzdGF0aWMgX19iZTE2IHRubF9mbGFnc190b19n cmVfZmxhZ3MoX19iZTE2IHRmbGFncykKIAlyZXR1cm4gZmxhZ3M7CiB9CiAKKy8qIEZpbGxzIGlu IHRwaSBhbmQgcmV0dXJucyBoZWFkZXIgbGVuZ3RoIHRvIGJlIHB1bGxlZC4gKi8KIHN0YXRpYyBp bnQgcGFyc2VfZ3JlX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdG5sX3B0a19p bmZvICp0cGksCiAJCQkgICAgYm9vbCAqY3N1bV9lcnIpCiB7CkBAIC0yMzgsNyArMjM5LDcgQEAg c3RhdGljIGludCBwYXJzZV9ncmVfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0 bmxfcHRrX2luZm8gKnRwaSwKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCX0KLQlyZXR1cm4g aXB0dW5uZWxfcHVsbF9oZWFkZXIoc2tiLCBoZHJfbGVuLCB0cGktPnByb3RvKTsKKwlyZXR1cm4g aGRyX2xlbjsKIH0KIAogc3RhdGljIHZvaWQgaXBncmVfZXJyKHN0cnVjdCBza19idWZmICpza2Is IHUzMiBpbmZvLApAQCAtMzQxLDcgKzM0Miw3IEBAIHN0YXRpYyB2b2lkIGdyZV9lcnIoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgdTMyIGluZm8pCiAJc3RydWN0IHRubF9wdGtfaW5mbyB0cGk7CiAJYm9v bCBjc3VtX2VyciA9IGZhbHNlOwogCi0JaWYgKHBhcnNlX2dyZV9oZWFkZXIoc2tiLCAmdHBpLCAm Y3N1bV9lcnIpKSB7CisJaWYgKHBhcnNlX2dyZV9oZWFkZXIoc2tiLCAmdHBpLCAmY3N1bV9lcnIp IDwgMCkgewogCQlpZiAoIWNzdW1fZXJyKQkJLyogaWdub3JlIGNzdW0gZXJyb3JzLiAqLwogCQkJ cmV0dXJuOwogCX0KQEAgLTQxOSw2ICs0MjAsNyBAQCBzdGF0aWMgaW50IGdyZV9yY3Yoc3RydWN0 IHNrX2J1ZmYgKnNrYikKIHsKIAlzdHJ1Y3QgdG5sX3B0a19pbmZvIHRwaTsKIAlib29sIGNzdW1f ZXJyID0gZmFsc2U7CisJaW50IGhkcl9sZW47CiAKICNpZmRlZiBDT05GSUdfTkVUX0lQR1JFX0JS T0FEQ0FTVAogCWlmIChpcHY0X2lzX211bHRpY2FzdChpcF9oZHIoc2tiKS0+ZGFkZHIpKSB7CkBA IC00MjgsNyArNDMwLDEwIEBAIHN0YXRpYyBpbnQgZ3JlX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogCX0KICNlbmRpZgogCi0JaWYgKHBhcnNlX2dyZV9oZWFkZXIoc2tiLCAmdHBpLCAmY3N1bV9l cnIpIDwgMCkKKwloZHJfbGVuID0gcGFyc2VfZ3JlX2hlYWRlcihza2IsICZ0cGksICZjc3VtX2Vy cik7CisJaWYgKGhkcl9sZW4gPCAwKQorCQlnb3RvIGRyb3A7CisJaWYgKGlwdHVubmVsX3B1bGxf aGVhZGVyKHNrYiwgaGRyX2xlbiwgdHBpLnByb3RvKSA8IDApCiAJCWdvdG8gZHJvcDsKIAogCWlm IChpcGdyZV9yY3Yoc2tiLCAmdHBpKSA9PSBQQUNLRVRfUkNWRCkKLS0gCjIuMS4wCgoKRnJvbSA3 NzVjMTAxODI0Njg3NDc5Y2MxNWY1OTQ1N2UwYzg0NzhhM2Q0OTI1IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBXQU5HIENvbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAyNSBGZWIgMjAxNiAxNDo1NTowMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjUvNDJdIG5l dF9zY2hlZDogaW50cm9kdWNlIHFkaXNjX3JlcGxhY2UoKSBoZWxwZXIKClsgVXBzdHJlYW0gY29t bWl0IDg2YTc5OTZjYzhhMDc4NzkzNjcwZDgyZWQ5N2Q1YTk5YmI0ZTg0OTYgXQoKUmVtb3ZlIG5l YXJseSBkdXBsaWNhdGVkIGNvZGUgYW5kIHByZXBhcmUgZm9yIHRoZSBmb2xsb3dpbmcgcGF0Y2gu CgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQWNrZWQtYnk6IEphbWFs IEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8 eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaCB8IDE3 ICsrKysrKysrKysrKysrKysrCiBuZXQvc2NoZWQvc2NoX2NicS5jICAgICAgIHwgIDcgKy0tLS0t LQogbmV0L3NjaGVkL3NjaF9kcnIuYyAgICAgICB8ICA2ICstLS0tLQogbmV0L3NjaGVkL3NjaF9k c21hcmsuYyAgICB8ICA4ICstLS0tLS0tCiBuZXQvc2NoZWQvc2NoX2hmc2MuYyAgICAgIHwgIDYg Ky0tLS0tCiBuZXQvc2NoZWQvc2NoX2h0Yi5jICAgICAgIHwgIDkgKy0tLS0tLS0tCiBuZXQvc2No ZWQvc2NoX211bHRpcS5jICAgIHwgIDggKy0tLS0tLS0KIG5ldC9zY2hlZC9zY2hfbmV0ZW0uYyAg ICAgfCAxMCArLS0tLS0tLS0tCiBuZXQvc2NoZWQvc2NoX3ByaW8uYyAgICAgIHwgIDggKy0tLS0t LS0KIG5ldC9zY2hlZC9zY2hfcWZxLmMgICAgICAgfCAgNiArLS0tLS0KIG5ldC9zY2hlZC9zY2hf cmVkLmMgICAgICAgfCAgNyArLS0tLS0tCiBuZXQvc2NoZWQvc2NoX3NmYi5jICAgICAgIHwgIDcg Ky0tLS0tLQogbmV0L3NjaGVkL3NjaF90YmYuYyAgICAgICB8ICA4ICstLS0tLS0tCiAxMyBmaWxl cyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oIGIvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaApp bmRleCA2MzZhMzYyLi44ZmRhZDlmIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJp Yy5oCisrKyBiL2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmgKQEAgLTcwNyw2ICs3MDcsMjMgQEAg c3RhdGljIGlubGluZSB2b2lkIHFkaXNjX3Jlc2V0X3F1ZXVlKHN0cnVjdCBRZGlzYyAqc2NoKQog CXNjaC0+cXN0YXRzLmJhY2tsb2cgPSAwOwogfQogCitzdGF0aWMgaW5saW5lIHN0cnVjdCBRZGlz YyAqcWRpc2NfcmVwbGFjZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IFFkaXNjICpuZXcsCisJ CQkJCSAgc3RydWN0IFFkaXNjICoqcG9sZCkKK3sKKwlzdHJ1Y3QgUWRpc2MgKm9sZDsKKworCXNj aF90cmVlX2xvY2soc2NoKTsKKwlvbGQgPSAqcG9sZDsKKwkqcG9sZCA9IG5ldzsKKwlpZiAob2xk ICE9IE5VTEwpIHsKKwkJcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKG9sZCwgb2xkLT5xLnFsZW4p OworCQlxZGlzY19yZXNldChvbGQpOworCX0KKwlzY2hfdHJlZV91bmxvY2soc2NoKTsKKworCXJl dHVybiBvbGQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IF9fcWRpc2NfcXVldWVf ZHJvcChzdHJ1Y3QgUWRpc2MgKnNjaCwKIAkJCQkJICAgICAgc3RydWN0IHNrX2J1ZmZfaGVhZCAq bGlzdCkKIHsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2JxLmMgYi9uZXQvc2NoZWQvc2No X2NicS5jCmluZGV4IGM1MzhkOWUuLjdmODQ3NGMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hf Y2JxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9jYnEuYwpAQCAtMTYyNCwxMyArMTYyNCw4IEBAIHN0 YXRpYyBpbnQgY2JxX2dyYWZ0KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGFyZywg c3RydWN0IFFkaXNjICpuZXcsCiAJCQluZXctPnJlc2hhcGVfZmFpbCA9IGNicV9yZXNoYXBlX2Zh aWw7CiAjZW5kaWYKIAl9Ci0Jc2NoX3RyZWVfbG9jayhzY2gpOwotCSpvbGQgPSBjbC0+cTsKLQlj bC0+cSA9IG5ldzsKLQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oKm9sZCwgKCpvbGQpLT5xLnFs ZW4pOwotCXFkaXNjX3Jlc2V0KCpvbGQpOwotCXNjaF90cmVlX3VubG9jayhzY2gpOwogCisJKm9s ZCA9IHFkaXNjX3JlcGxhY2Uoc2NoLCBuZXcsICZjbC0+cSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlm ZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfZHJyLmMgYi9uZXQvc2NoZWQvc2NoX2Ryci5jCmluZGV4 IGExY2Q3NzguLmI5NmM5YTggMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZHJyLmMKKysrIGIv bmV0L3NjaGVkL3NjaF9kcnIuYwpAQCAtMjI2LDExICsyMjYsNyBAQCBzdGF0aWMgaW50IGRycl9n cmFmdF9jbGFzcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBhcmcsCiAJCQluZXcg PSAmbm9vcF9xZGlzYzsKIAl9CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JZHJyX3B1cmdlX3F1 ZXVlKGNsKTsKLQkqb2xkID0gY2wtPnFkaXNjOwotCWNsLT5xZGlzYyA9IG5ldzsKLQlzY2hfdHJl ZV91bmxvY2soc2NoKTsKKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJmNsLT5xZGlz Yyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMg Yi9uZXQvc2NoZWQvc2NoX2RzbWFyay5jCmluZGV4IGYzNTdmMzQuLmNmZGRiMWMgMTAwNjQ0Ci0t LSBhL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9kc21hcmsuYwpA QCAtNzMsMTMgKzczLDcgQEAgc3RhdGljIGludCBkc21hcmtfZ3JhZnQoc3RydWN0IFFkaXNjICpz Y2gsIHVuc2lnbmVkIGxvbmcgYXJnLAogCQkJbmV3ID0gJm5vb3BfcWRpc2M7CiAJfQogCi0Jc2No X3RyZWVfbG9jayhzY2gpOwotCSpvbGQgPSBwLT5xOwotCXAtPnEgPSBuZXc7Ci0JcWRpc2NfdHJl ZV9kZWNyZWFzZV9xbGVuKCpvbGQsICgqb2xkKS0+cS5xbGVuKTsKLQlxZGlzY19yZXNldCgqb2xk KTsKLQlzY2hfdHJlZV91bmxvY2soc2NoKTsKLQorCSpvbGQgPSBxZGlzY19yZXBsYWNlKHNjaCwg bmV3LCAmcC0+cSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hf aGZzYy5jIGIvbmV0L3NjaGVkL3NjaF9oZnNjLmMKaW5kZXggYjdlYmUyYy4uMDg5ZjNiNiAxMDA2 NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9oZnNjLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9oZnNjLmMK QEAgLTEyMTUsMTEgKzEyMTUsNyBAQCBoZnNjX2dyYWZ0X2NsYXNzKHN0cnVjdCBRZGlzYyAqc2No LCB1bnNpZ25lZCBsb25nIGFyZywgc3RydWN0IFFkaXNjICpuZXcsCiAJCQluZXcgPSAmbm9vcF9x ZGlzYzsKIAl9CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JaGZzY19wdXJnZV9xdWV1ZShzY2gs IGNsKTsKLQkqb2xkID0gY2wtPnFkaXNjOwotCWNsLT5xZGlzYyA9IG5ldzsKLQlzY2hfdHJlZV91 bmxvY2soc2NoKTsKKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJmNsLT5xZGlzYyk7 CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfaHRiLmMgYi9uZXQv c2NoZWQvc2NoX2h0Yi5jCmluZGV4IDE1Y2NkN2YuLjBlZmJjZjMgMTAwNjQ0Ci0tLSBhL25ldC9z Y2hlZC9zY2hfaHRiLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9odGIuYwpAQCAtMTE2MywxNCArMTE2 Myw3IEBAIHN0YXRpYyBpbnQgaHRiX2dyYWZ0KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBs b25nIGFyZywgc3RydWN0IFFkaXNjICpuZXcsCiAJCQkJICAgICBjbC0+Y29tbW9uLmNsYXNzaWQp KSA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT0JVRlM7CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0J Km9sZCA9IGNsLT51bi5sZWFmLnE7Ci0JY2wtPnVuLmxlYWYucSA9IG5ldzsKLQlpZiAoKm9sZCAh PSBOVUxMKSB7Ci0JCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigqb2xkLCAoKm9sZCktPnEucWxl bik7Ci0JCXFkaXNjX3Jlc2V0KCpvbGQpOwotCX0KLQlzY2hfdHJlZV91bmxvY2soc2NoKTsKKwkq b2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJmNsLT51bi5sZWFmLnEpOwogCXJldHVybiAw OwogfQogCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX211bHRpcS5jIGIvbmV0L3NjaGVkL3Nj aF9tdWx0aXEuYwppbmRleCA0ZTkwNGNhLi5hMDEwM2ExIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQv c2NoX211bHRpcS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbXVsdGlxLmMKQEAgLTMwMywxMyArMzAz LDcgQEAgc3RhdGljIGludCBtdWx0aXFfZ3JhZnQoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVk IGxvbmcgYXJnLCBzdHJ1Y3QgUWRpc2MgKm5ldywKIAlpZiAobmV3ID09IE5VTEwpCiAJCW5ldyA9 ICZub29wX3FkaXNjOwogCi0Jc2NoX3RyZWVfbG9jayhzY2gpOwotCSpvbGQgPSBxLT5xdWV1ZXNb YmFuZF07Ci0JcS0+cXVldWVzW2JhbmRdID0gbmV3OwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxl bigqb2xkLCAoKm9sZCktPnEucWxlbik7Ci0JcWRpc2NfcmVzZXQoKm9sZCk7Ci0Jc2NoX3RyZWVf dW5sb2NrKHNjaCk7Ci0KKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJnEtPnF1ZXVl c1tiYW5kXSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfbmV0 ZW0uYyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0uYwppbmRleCA1YWJkMWQ5Li4wYTZkZGFmIDEwMDY0 NAotLS0gYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9uZXRlbS5j CkBAIC0xMDM3LDE1ICsxMDM3LDcgQEAgc3RhdGljIGludCBuZXRlbV9ncmFmdChzdHJ1Y3QgUWRp c2MgKnNjaCwgdW5zaWduZWQgbG9uZyBhcmcsIHN0cnVjdCBRZGlzYyAqbmV3LAogewogCXN0cnVj dCBuZXRlbV9zY2hlZF9kYXRhICpxID0gcWRpc2NfcHJpdihzY2gpOwogCi0Jc2NoX3RyZWVfbG9j ayhzY2gpOwotCSpvbGQgPSBxLT5xZGlzYzsKLQlxLT5xZGlzYyA9IG5ldzsKLQlpZiAoKm9sZCkg ewotCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oKm9sZCwgKCpvbGQpLT5xLnFsZW4pOwotCQlx ZGlzY19yZXNldCgqb2xkKTsKLQl9Ci0Jc2NoX3RyZWVfdW5sb2NrKHNjaCk7Ci0KKwkqb2xkID0g cWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJnEtPnFkaXNjKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZm IC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9wcmlvLmMgYi9uZXQvc2NoZWQvc2NoX3ByaW8uYwppbmRl eCBiYTY0ODdmLi4xYjRhYWVjIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX3ByaW8uYworKysg Yi9uZXQvc2NoZWQvc2NoX3ByaW8uYwpAQCAtMjY4LDEzICsyNjgsNyBAQCBzdGF0aWMgaW50IHBy aW9fZ3JhZnQoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgYXJnLCBzdHJ1Y3QgUWRp c2MgKm5ldywKIAlpZiAobmV3ID09IE5VTEwpCiAJCW5ldyA9ICZub29wX3FkaXNjOwogCi0Jc2No X3RyZWVfbG9jayhzY2gpOwotCSpvbGQgPSBxLT5xdWV1ZXNbYmFuZF07Ci0JcS0+cXVldWVzW2Jh bmRdID0gbmV3OwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigqb2xkLCAoKm9sZCktPnEucWxl bik7Ci0JcWRpc2NfcmVzZXQoKm9sZCk7Ci0Jc2NoX3RyZWVfdW5sb2NrKHNjaCk7Ci0KKwkqb2xk ID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywgJnEtPnF1ZXVlc1tiYW5kXSk7CiAJcmV0dXJuIDA7 CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfcWZxLmMgYi9uZXQvc2NoZWQvc2NoX3Fm cS5jCmluZGV4IDNkYzNhNmUuLmI1YzUyY2EgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfcWZx LmMKKysrIGIvbmV0L3NjaGVkL3NjaF9xZnEuYwpAQCAtNjE3LDExICs2MTcsNyBAQCBzdGF0aWMg aW50IHFmcV9ncmFmdF9jbGFzcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBhcmcs CiAJCQluZXcgPSAmbm9vcF9xZGlzYzsKIAl9CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JcWZx X3B1cmdlX3F1ZXVlKGNsKTsKLQkqb2xkID0gY2wtPnFkaXNjOwotCWNsLT5xZGlzYyA9IG5ldzsK LQlzY2hfdHJlZV91bmxvY2soc2NoKTsKKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gsIG5ldywg JmNsLT5xZGlzYyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hf cmVkLmMgYi9uZXQvc2NoZWQvc2NoX3JlZC5jCmluZGV4IDZjMDUzNGMuLmQ1YWJjZWUgMTAwNjQ0 Ci0tLSBhL25ldC9zY2hlZC9zY2hfcmVkLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9yZWQuYwpAQCAt MzEzLDEyICszMTMsNyBAQCBzdGF0aWMgaW50IHJlZF9ncmFmdChzdHJ1Y3QgUWRpc2MgKnNjaCwg dW5zaWduZWQgbG9uZyBhcmcsIHN0cnVjdCBRZGlzYyAqbmV3LAogCWlmIChuZXcgPT0gTlVMTCkK IAkJbmV3ID0gJm5vb3BfcWRpc2M7CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JKm9sZCA9IHEt PnFkaXNjOwotCXEtPnFkaXNjID0gbmV3OwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigqb2xk LCAoKm9sZCktPnEucWxlbik7Ci0JcWRpc2NfcmVzZXQoKm9sZCk7Ci0Jc2NoX3RyZWVfdW5sb2Nr KHNjaCk7CisJKm9sZCA9IHFkaXNjX3JlcGxhY2Uoc2NoLCBuZXcsICZxLT5xZGlzYyk7CiAJcmV0 dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfc2ZiLmMgYi9uZXQvc2NoZWQv c2NoX3NmYi5jCmluZGV4IDViYmI2MzMuLjBlNzRlNTUgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9z Y2hfc2ZiLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9zZmIuYwpAQCAtNjA2LDEyICs2MDYsNyBAQCBz dGF0aWMgaW50IHNmYl9ncmFmdChzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBhcmcs IHN0cnVjdCBRZGlzYyAqbmV3LAogCWlmIChuZXcgPT0gTlVMTCkKIAkJbmV3ID0gJm5vb3BfcWRp c2M7CiAKLQlzY2hfdHJlZV9sb2NrKHNjaCk7Ci0JKm9sZCA9IHEtPnFkaXNjOwotCXEtPnFkaXNj ID0gbmV3OwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigqb2xkLCAoKm9sZCktPnEucWxlbik7 Ci0JcWRpc2NfcmVzZXQoKm9sZCk7Ci0Jc2NoX3RyZWVfdW5sb2NrKHNjaCk7CisJKm9sZCA9IHFk aXNjX3JlcGxhY2Uoc2NoLCBuZXcsICZxLT5xZGlzYyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAt LWdpdCBhL25ldC9zY2hlZC9zY2hfdGJmLmMgYi9uZXQvc2NoZWQvc2NoX3RiZi5jCmluZGV4IGE0 YWZkZTEuLjU2YTFhZWYgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfdGJmLmMKKysrIGIvbmV0 L3NjaGVkL3NjaF90YmYuYwpAQCAtNTAyLDEzICs1MDIsNyBAQCBzdGF0aWMgaW50IHRiZl9ncmFm dChzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBhcmcsIHN0cnVjdCBRZGlzYyAqbmV3 LAogCWlmIChuZXcgPT0gTlVMTCkKIAkJbmV3ID0gJm5vb3BfcWRpc2M7CiAKLQlzY2hfdHJlZV9s b2NrKHNjaCk7Ci0JKm9sZCA9IHEtPnFkaXNjOwotCXEtPnFkaXNjID0gbmV3OwotCXFkaXNjX3Ry ZWVfZGVjcmVhc2VfcWxlbigqb2xkLCAoKm9sZCktPnEucWxlbik7Ci0JcWRpc2NfcmVzZXQoKm9s ZCk7Ci0Jc2NoX3RyZWVfdW5sb2NrKHNjaCk7Ci0KKwkqb2xkID0gcWRpc2NfcmVwbGFjZShzY2gs IG5ldywgJnEtPnFkaXNjKTsKIAlyZXR1cm4gMDsKIH0KIAotLSAKMi4xLjAKCgpGcm9tIDI2ZmY5 ZGY5OGI2YjU4MDBmYzgzYThhZmM0N2U1ZTE3YmM5MDYwYzYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFdBTkcgQ29uZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUaHUs IDI1IEZlYiAyMDE2IDE0OjU1OjAxIC0wODAwClN1YmplY3Q6IFtQQVRDSCAyNi80Ml0gbmV0X3Nj aGVkOiB1cGRhdGUgaGllcmFyY2hpY2FsIGJhY2tsb2cgdG9vCgpbIFVwc3RyZWFtIGNvbW1pdCAy Y2NjY2Y1ZmI0M2ZmNjJiMmI5NmNjNThkOTVmYzBiMzU5NjUxNmU0IF0KCldoZW4gdGhlIGJvdHRv bSBxZGlzYyBkZWNpZGVzIHRvLCBmb3IgZXhhbXBsZSwgZHJvcCBzb21lIHBhY2tldCwKaXQgY2Fs bHMgcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKCkgdG8gdXBkYXRlIHRoZSBxdWV1ZSBsZW5ndGgK Zm9yIGFsbCBpdHMgYW5jZXN0b3JzLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgYmFja2xvZyB0b28g dG8Ka2VlcCB0aGUgc3RhdHMgb24gcm9vdCBxZGlzYyBhY2N1cmF0ZS4KCkNjOiBKYW1hbCBIYWRp IFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpBY2tlZC1ieTogSmFtYWwgSGFkaSBTYWxpbSA8amhz QG1vamF0YXR1LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0Bn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9jb2RlbC5oICAgICAgIHwgIDQgKysrKwogaW5jbHVkZS9u ZXQvc2NoX2dlbmVyaWMuaCB8ICA1ICsrKy0tCiBuZXQvc2NoZWQvc2NoX2FwaS5jICAgICAgIHwg IDggKysrKystLS0KIG5ldC9zY2hlZC9zY2hfY2JxLmMgICAgICAgfCAgNSArKystLQogbmV0L3Nj aGVkL3NjaF9jaG9rZS5jICAgICB8ICA2ICsrKystLQogbmV0L3NjaGVkL3NjaF9jb2RlbC5jICAg ICB8IDEwICsrKysrKy0tLS0KIG5ldC9zY2hlZC9zY2hfZHJyLmMgICAgICAgfCAgMyArKy0KIG5l dC9zY2hlZC9zY2hfZnEuYyAgICAgICAgfCAgNCArKystCiBuZXQvc2NoZWQvc2NoX2ZxX2NvZGVs LmMgIHwgMTcgKysrKysrKysrKysrLS0tLS0KIG5ldC9zY2hlZC9zY2hfaGZzYy5jICAgICAgfCAg MyArKy0KIG5ldC9zY2hlZC9zY2hfaGhmLmMgICAgICAgfCAxMCArKysrKysrLS0tCiBuZXQvc2No ZWQvc2NoX2h0Yi5jICAgICAgIHwgMTAgKysrKysrLS0tLQogbmV0L3NjaGVkL3NjaF9tdWx0aXEu YyAgICB8ICA4ICsrKysrLS0tCiBuZXQvc2NoZWQvc2NoX25ldGVtLmMgICAgIHwgIDMgKystCiBu ZXQvc2NoZWQvc2NoX3BpZS5jICAgICAgIHwgIDUgKysrLS0KIG5ldC9zY2hlZC9zY2hfcHJpby5j ICAgICAgfCAgNyArKysrLS0tCiBuZXQvc2NoZWQvc2NoX3FmcS5jICAgICAgIHwgIDMgKystCiBu ZXQvc2NoZWQvc2NoX3JlZC5jICAgICAgIHwgIDMgKystCiBuZXQvc2NoZWQvc2NoX3NmYi5jICAg ICAgIHwgIDMgKystCiBuZXQvc2NoZWQvc2NoX3NmcS5jICAgICAgIHwgMTYgKysrKysrKysrLS0t LS0tLQogbmV0L3NjaGVkL3NjaF90YmYuYyAgICAgICB8ICA3ICsrKysrLS0KIDIxIGZpbGVzIGNo YW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbmV0L2NvZGVsLmggYi9pbmNsdWRlL25ldC9jb2RlbC5oCmluZGV4IDI2N2U3MDIuLmQx NjhhY2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2NvZGVsLmgKKysrIGIvaW5jbHVkZS9uZXQv Y29kZWwuaApAQCAtMTYyLDEyICsxNjIsMTQgQEAgc3RydWN0IGNvZGVsX3ZhcnMgewogICogc3Ry dWN0IGNvZGVsX3N0YXRzIC0gY29udGFpbnMgY29kZWwgc2hhcmVkIHZhcmlhYmxlcyBhbmQgc3Rh dHMKICAqIEBtYXhwYWNrZXQ6CWxhcmdlc3QgcGFja2V0IHdlJ3ZlIHNlZW4gc28gZmFyCiAgKiBA ZHJvcF9jb3VudDoJdGVtcCBjb3VudCBvZiBkcm9wcGVkIHBhY2tldHMgaW4gZGVxdWV1ZSgpCisg KiBAZHJvcF9sZW46CWJ5dGVzIG9mIGRyb3BwZWQgcGFja2V0cyBpbiBkZXF1ZXVlKCkKICAqIGVj bl9tYXJrOgludW1iZXIgb2YgcGFja2V0cyB3ZSBFQ04gbWFya2VkIGluc3RlYWQgb2YgZHJvcHBp bmcKICAqIGNlX21hcms6CW51bWJlciBvZiBwYWNrZXRzIENFIG1hcmtlZCBiZWNhdXNlIHNvam91 cm4gdGltZSB3YXMgYWJvdmUgY2VfdGhyZXNob2xkCiAgKi8KIHN0cnVjdCBjb2RlbF9zdGF0cyB7 CiAJdTMyCQltYXhwYWNrZXQ7CiAJdTMyCQlkcm9wX2NvdW50OworCXUzMgkJZHJvcF9sZW47CiAJ dTMyCQllY25fbWFyazsKIAl1MzIJCWNlX21hcms7CiB9OwpAQCAtMzA4LDYgKzMxMCw3IEBAIHN0 YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqY29kZWxfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCwKIAkJ CQkJCQkJICB2YXJzLT5yZWNfaW52X3NxcnQpOwogCQkJCQlnb3RvIGVuZDsKIAkJCQl9CisJCQkJ c3RhdHMtPmRyb3BfbGVuICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJCQlxZGlzY19kcm9wKHNr Yiwgc2NoKTsKIAkJCQlzdGF0cy0+ZHJvcF9jb3VudCsrOwogCQkJCXNrYiA9IGRlcXVldWVfZnVu Yyh2YXJzLCBzY2gpOwpAQCAtMzMwLDYgKzMzMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAq Y29kZWxfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCwKIAkJaWYgKHBhcmFtcy0+ZWNuICYmIElO RVRfRUNOX3NldF9jZShza2IpKSB7CiAJCQlzdGF0cy0+ZWNuX21hcmsrKzsKIAkJfSBlbHNlIHsK KwkJCXN0YXRzLT5kcm9wX2xlbiArPSBxZGlzY19wa3RfbGVuKHNrYik7CiAJCQlxZGlzY19kcm9w KHNrYiwgc2NoKTsKIAkJCXN0YXRzLT5kcm9wX2NvdW50Kys7CiAKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbmV0L3NjaF9nZW5lcmljLmggYi9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oCmluZGV4IDhm ZGFkOWYuLmU1YmJhODkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmgKKysr IGIvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaApAQCAtMzk2LDcgKzM5Niw4IEBAIHN0cnVjdCBR ZGlzYyAqZGV2X2dyYWZ0X3FkaXNjKHN0cnVjdCBuZXRkZXZfcXVldWUgKmRldl9xdWV1ZSwKIAkJ CSAgICAgIHN0cnVjdCBRZGlzYyAqcWRpc2MpOwogdm9pZCBxZGlzY19yZXNldChzdHJ1Y3QgUWRp c2MgKnFkaXNjKTsKIHZvaWQgcWRpc2NfZGVzdHJveShzdHJ1Y3QgUWRpc2MgKnFkaXNjKTsKLXZv aWQgcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKHN0cnVjdCBRZGlzYyAqcWRpc2MsIHVuc2lnbmVk IGludCBuKTsKK3ZvaWQgcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhzdHJ1Y3QgUWRpc2MgKnFk aXNjLCB1bnNpZ25lZCBpbnQgbiwKKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgbGVuKTsKIHN0cnVj dCBRZGlzYyAqcWRpc2NfYWxsb2Moc3RydWN0IG5ldGRldl9xdWV1ZSAqZGV2X3F1ZXVlLAogCQkJ ICBjb25zdCBzdHJ1Y3QgUWRpc2Nfb3BzICpvcHMpOwogc3RydWN0IFFkaXNjICpxZGlzY19jcmVh dGVfZGZsdChzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpkZXZfcXVldWUsCkBAIC03MTYsNyArNzE3LDcg QEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgUWRpc2MgKnFkaXNjX3JlcGxhY2Uoc3RydWN0IFFkaXNj ICpzY2gsIHN0cnVjdCBRZGlzYyAqbmV3LAogCW9sZCA9ICpwb2xkOwogCSpwb2xkID0gbmV3Owog CWlmIChvbGQgIT0gTlVMTCkgewotCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4ob2xkLCBvbGQt PnEucWxlbik7CisJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2cob2xkLCBvbGQtPnEucWxlbiwg b2xkLT5xc3RhdHMuYmFja2xvZyk7CiAJCXFkaXNjX3Jlc2V0KG9sZCk7CiAJfQogCXNjaF90cmVl X3VubG9jayhzY2gpOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9hcGkuYyBiL25ldC9zY2hl ZC9zY2hfYXBpLmMKaW5kZXggYWYxYWNmMC4uOTViNTYwZiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVk L3NjaF9hcGkuYworKysgYi9uZXQvc2NoZWQvc2NoX2FwaS5jCkBAIC03NDQsMTQgKzc0NCwxNSBA QCBzdGF0aWMgdTMyIHFkaXNjX2FsbG9jX2hhbmRsZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQog CXJldHVybiAwOwogfQogCi12b2lkIHFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihzdHJ1Y3QgUWRp c2MgKnNjaCwgdW5zaWduZWQgaW50IG4pCit2b2lkIHFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2co c3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGludCBuLAorCQkJICAgICAgIHVuc2lnbmVkIGlu dCBsZW4pCiB7CiAJY29uc3Qgc3RydWN0IFFkaXNjX2NsYXNzX29wcyAqY29wczsKIAl1bnNpZ25l ZCBsb25nIGNsOwogCXUzMiBwYXJlbnRpZDsKIAlpbnQgZHJvcHM7CiAKLQlpZiAobiA9PSAwKQor CWlmIChuID09IDAgJiYgbGVuID09IDApCiAJCXJldHVybjsKIAlkcm9wcyA9IG1heF90KGludCwg biwgMCk7CiAJcmN1X3JlYWRfbG9jaygpOwpAQCAtNzc0LDExICs3NzUsMTIgQEAgdm9pZCBxZGlz Y190cmVlX2RlY3JlYXNlX3FsZW4oc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGludCBuKQog CQkJY29wcy0+cHV0KHNjaCwgY2wpOwogCQl9CiAJCXNjaC0+cS5xbGVuIC09IG47CisJCXNjaC0+ cXN0YXRzLmJhY2tsb2cgLT0gbGVuOwogCQlfX3FkaXNjX3FzdGF0c19kcm9wKHNjaCwgZHJvcHMp OwogCX0KIAlyY3VfcmVhZF91bmxvY2soKTsKIH0KLUVYUE9SVF9TWU1CT0wocWRpc2NfdHJlZV9k ZWNyZWFzZV9xbGVuKTsKK0VYUE9SVF9TWU1CT0wocWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyk7 CiAKIHN0YXRpYyB2b2lkIG5vdGlmeV9hbmRfZGVzdHJveShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBza19idWZmICpza2IsCiAJCQkgICAgICAgc3RydWN0IG5sbXNnaGRyICpuLCB1MzIgY2xpZCwK ZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2JxLmMgYi9uZXQvc2NoZWQvc2NoX2NicS5jCmlu ZGV4IDdmODQ3NGMuLmJhYWZkZGYgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY2JxLmMKKysr IGIvbmV0L3NjaGVkL3NjaF9jYnEuYwpAQCAtMTkwOSw3ICsxOTA5LDcgQEAgc3RhdGljIGludCBj YnFfZGVsZXRlKHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGFyZykKIHsKIAlzdHJ1 Y3QgY2JxX3NjaGVkX2RhdGEgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAJc3RydWN0IGNicV9jbGFz cyAqY2wgPSAoc3RydWN0IGNicV9jbGFzcyAqKWFyZzsKLQl1bnNpZ25lZCBpbnQgcWxlbjsKKwl1 bnNpZ25lZCBpbnQgcWxlbiwgYmFja2xvZzsKIAogCWlmIChjbC0+ZmlsdGVycyB8fCBjbC0+Y2hp bGRyZW4gfHwgY2wgPT0gJnEtPmxpbmspCiAJCXJldHVybiAtRUJVU1k7CkBAIC0xOTE3LDggKzE5 MTcsOSBAQCBzdGF0aWMgaW50IGNicV9kZWxldGUoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVk IGxvbmcgYXJnKQogCXNjaF90cmVlX2xvY2soc2NoKTsKIAogCXFsZW4gPSBjbC0+cS0+cS5xbGVu OworCWJhY2tsb2cgPSBjbC0+cS0+cXN0YXRzLmJhY2tsb2c7CiAJcWRpc2NfcmVzZXQoY2wtPnEp OwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihjbC0+cSwgcWxlbik7CisJcWRpc2NfdHJlZV9y ZWR1Y2VfYmFja2xvZyhjbC0+cSwgcWxlbiwgYmFja2xvZyk7CiAKIAlpZiAoY2wtPm5leHRfYWxp dmUpCiAJCWNicV9kZWFjdGl2YXRlX2NsYXNzKGNsKTsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9z Y2hfY2hva2UuYyBiL25ldC9zY2hlZC9zY2hfY2hva2UuYwppbmRleCA1ZmZiOGI4Li4wYTA4Yzg2 IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2Nob2tlLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9j aG9rZS5jCkBAIC0xMjgsOCArMTI4LDggQEAgc3RhdGljIHZvaWQgY2hva2VfZHJvcF9ieV9pZHgo c3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGludCBpZHgpCiAJCWNob2tlX3phcF90YWlsX2hv bGVzKHEpOwogCiAJcWRpc2NfcXN0YXRzX2JhY2tsb2dfZGVjKHNjaCwgc2tiKTsKKwlxZGlzY190 cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgMSwgcWRpc2NfcGt0X2xlbihza2IpKTsKIAlxZGlzY19k cm9wKHNrYiwgc2NoKTsKLQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCAxKTsKIAktLXNj aC0+cS5xbGVuOwogfQogCkBAIC00NTYsNiArNDU2LDcgQEAgc3RhdGljIGludCBjaG9rZV9jaGFu Z2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAkJb2xkID0gcS0+dGFi OwogCQlpZiAob2xkKSB7CiAJCQl1bnNpZ25lZCBpbnQgb3FsZW4gPSBzY2gtPnEucWxlbiwgdGFp bCA9IDA7CisJCQl1bnNpZ25lZCBkcm9wcGVkID0gMDsKIAogCQkJd2hpbGUgKHEtPmhlYWQgIT0g cS0+dGFpbCkgewogCQkJCXN0cnVjdCBza19idWZmICpza2IgPSBxLT50YWJbcS0+aGVhZF07CkBA IC00NjcsMTEgKzQ2OCwxMiBAQCBzdGF0aWMgaW50IGNob2tlX2NoYW5nZShzdHJ1Y3QgUWRpc2Mg KnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCQkJCQludGFiW3RhaWwrK10gPSBza2I7CiAJCQkJ CWNvbnRpbnVlOwogCQkJCX0KKwkJCQlkcm9wcGVkICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJ CQlxZGlzY19xc3RhdHNfYmFja2xvZ19kZWMoc2NoLCBza2IpOwogCQkJCS0tc2NoLT5xLnFsZW47 CiAJCQkJcWRpc2NfZHJvcChza2IsIHNjaCk7CiAJCQl9Ci0JCQlxZGlzY190cmVlX2RlY3JlYXNl X3FsZW4oc2NoLCBvcWxlbiAtIHNjaC0+cS5xbGVuKTsKKwkJCXFkaXNjX3RyZWVfcmVkdWNlX2Jh Y2tsb2coc2NoLCBvcWxlbiAtIHNjaC0+cS5xbGVuLCBkcm9wcGVkKTsKIAkJCXEtPmhlYWQgPSAw OwogCQkJcS0+dGFpbCA9IHRhaWw7CiAJCX0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY29k ZWwuYyBiL25ldC9zY2hlZC9zY2hfY29kZWwuYwppbmRleCA1MzUwMDdkLi45YjdlMjk4IDEwMDY0 NAotLS0gYS9uZXQvc2NoZWQvc2NoX2NvZGVsLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9jb2RlbC5j CkBAIC03OSwxMiArNzksMTMgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpjb2RlbF9xZGlzY19k ZXF1ZXVlKHN0cnVjdCBRZGlzYyAqc2NoKQogCiAJc2tiID0gY29kZWxfZGVxdWV1ZShzY2gsICZx LT5wYXJhbXMsICZxLT52YXJzLCAmcS0+c3RhdHMsIGRlcXVldWUpOwogCi0JLyogV2UgY2FudCBj YWxsIHFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigpIGlmIG91ciBxbGVuIGlzIDAsCisJLyogV2Ug Y2FudCBjYWxsIHFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coKSBpZiBvdXIgcWxlbiBpcyAwLAog CSAqIG9yIEhUQiBjcmFzaGVzLiBEZWZlciBpdCBmb3IgbmV4dCByb3VuZC4KIAkgKi8KIAlpZiAo cS0+c3RhdHMuZHJvcF9jb3VudCAmJiBzY2gtPnEucWxlbikgewotCQlxZGlzY190cmVlX2RlY3Jl YXNlX3FsZW4oc2NoLCBxLT5zdGF0cy5kcm9wX2NvdW50KTsKKwkJcWRpc2NfdHJlZV9yZWR1Y2Vf YmFja2xvZyhzY2gsIHEtPnN0YXRzLmRyb3BfY291bnQsIHEtPnN0YXRzLmRyb3BfbGVuKTsKIAkJ cS0+c3RhdHMuZHJvcF9jb3VudCA9IDA7CisJCXEtPnN0YXRzLmRyb3BfbGVuID0gMDsKIAl9CiAJ aWYgKHNrYikKIAkJcWRpc2NfYnN0YXRzX3VwZGF0ZShzY2gsIHNrYik7CkBAIC0xMTYsNyArMTE3 LDcgQEAgc3RhdGljIGludCBjb2RlbF9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBu bGF0dHIgKm9wdCkKIHsKIAlzdHJ1Y3QgY29kZWxfc2NoZWRfZGF0YSAqcSA9IHFkaXNjX3ByaXYo c2NoKTsKIAlzdHJ1Y3QgbmxhdHRyICp0YltUQ0FfQ09ERUxfTUFYICsgMV07Ci0JdW5zaWduZWQg aW50IHFsZW47CisJdW5zaWduZWQgaW50IHFsZW4sIGRyb3BwZWQgPSAwOwogCWludCBlcnI7CiAK IAlpZiAoIW9wdCkKQEAgLTE1NiwxMCArMTU3LDExIEBAIHN0YXRpYyBpbnQgY29kZWxfY2hhbmdl KHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAJd2hpbGUgKHNjaC0+cS5x bGVuID4gc2NoLT5saW1pdCkgewogCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gX19za2JfZGVxdWV1 ZSgmc2NoLT5xKTsKIAorCQlkcm9wcGVkICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJcWRpc2Nf cXN0YXRzX2JhY2tsb2dfZGVjKHNjaCwgc2tiKTsKIAkJcWRpc2NfZHJvcChza2IsIHNjaCk7CiAJ fQotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihzY2gsIHFsZW4gLSBzY2gtPnEucWxlbik7CisJ cWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhzY2gsIHFsZW4gLSBzY2gtPnEucWxlbiwgZHJvcHBl ZCk7CiAKIAlzY2hfdHJlZV91bmxvY2soc2NoKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25l dC9zY2hlZC9zY2hfZHJyLmMgYi9uZXQvc2NoZWQvc2NoX2Ryci5jCmluZGV4IGI5NmM5YTguLmE2 M2U4NzkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZHJyLmMKKysrIGIvbmV0L3NjaGVkL3Nj aF9kcnIuYwpAQCAtNTMsOSArNTMsMTAgQEAgc3RhdGljIHN0cnVjdCBkcnJfY2xhc3MgKmRycl9m aW5kX2NsYXNzKHN0cnVjdCBRZGlzYyAqc2NoLCB1MzIgY2xhc3NpZCkKIHN0YXRpYyB2b2lkIGRy cl9wdXJnZV9xdWV1ZShzdHJ1Y3QgZHJyX2NsYXNzICpjbCkKIHsKIAl1bnNpZ25lZCBpbnQgbGVu ID0gY2wtPnFkaXNjLT5xLnFsZW47CisJdW5zaWduZWQgaW50IGJhY2tsb2cgPSBjbC0+cWRpc2Mt PnFzdGF0cy5iYWNrbG9nOwogCiAJcWRpc2NfcmVzZXQoY2wtPnFkaXNjKTsKLQlxZGlzY190cmVl X2RlY3JlYXNlX3FsZW4oY2wtPnFkaXNjLCBsZW4pOworCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2ts b2coY2wtPnFkaXNjLCBsZW4sIGJhY2tsb2cpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG5s YV9wb2xpY3kgZHJyX3BvbGljeVtUQ0FfRFJSX01BWCArIDFdID0gewpkaWZmIC0tZ2l0IGEvbmV0 L3NjaGVkL3NjaF9mcS5jIGIvbmV0L3NjaGVkL3NjaF9mcS5jCmluZGV4IDEwOWIyMzIuLjNjNmE0 N2QgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZnEuYworKysgYi9uZXQvc2NoZWQvc2NoX2Zx LmMKQEAgLTY2Miw2ICs2NjIsNyBAQCBzdGF0aWMgaW50IGZxX2NoYW5nZShzdHJ1Y3QgUWRpc2Mg KnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCXN0cnVjdCBmcV9zY2hlZF9kYXRhICpxID0gcWRp c2NfcHJpdihzY2gpOwogCXN0cnVjdCBubGF0dHIgKnRiW1RDQV9GUV9NQVggKyAxXTsKIAlpbnQg ZXJyLCBkcm9wX2NvdW50ID0gMDsKKwl1bnNpZ25lZCBkcm9wX2xlbiA9IDA7CiAJdTMyIGZxX2xv ZzsKIAogCWlmICghb3B0KQpAQCAtNzM2LDEwICs3MzcsMTEgQEAgc3RhdGljIGludCBmcV9jaGFu Z2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAogCQlpZiAoIXNrYikK IAkJCWJyZWFrOworCQlkcm9wX2xlbiArPSBxZGlzY19wa3RfbGVuKHNrYik7CiAJCWtmcmVlX3Nr Yihza2IpOwogCQlkcm9wX2NvdW50Kys7CiAJfQotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihz Y2gsIGRyb3BfY291bnQpOworCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCBkcm9wX2Nv dW50LCBkcm9wX2xlbik7CiAKIAlzY2hfdHJlZV91bmxvY2soc2NoKTsKIAlyZXR1cm4gZXJyOwpk aWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9mcV9jb2RlbC5jIGIvbmV0L3NjaGVkL3NjaF9mcV9j b2RlbC5jCmluZGV4IDRjODM0ZTkuLmQzZmM4ZjkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hf ZnFfY29kZWwuYworKysgYi9uZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMKQEAgLTE3NSw3ICsxNzUs NyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGZxX2NvZGVsX3FkaXNjX2Ryb3Aoc3RydWN0IFFkaXNj ICpzY2gpCiBzdGF0aWMgaW50IGZxX2NvZGVsX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IFFkaXNjICpzY2gpCiB7CiAJc3RydWN0IGZxX2NvZGVsX3NjaGVkX2RhdGEgKnEgPSBx ZGlzY19wcml2KHNjaCk7Ci0JdW5zaWduZWQgaW50IGlkeDsKKwl1bnNpZ25lZCBpbnQgaWR4LCBw cmV2X2JhY2tsb2c7CiAJc3RydWN0IGZxX2NvZGVsX2Zsb3cgKmZsb3c7CiAJaW50IHVuaW5pdGlh bGl6ZWRfdmFyKHJldCk7CiAKQEAgLTIwMyw2ICsyMDMsNyBAQCBzdGF0aWMgaW50IGZxX2NvZGVs X2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJaWYgKCsr c2NoLT5xLnFsZW4gPD0gc2NoLT5saW1pdCkKIAkJcmV0dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CiAK KwlwcmV2X2JhY2tsb2cgPSBzY2gtPnFzdGF0cy5iYWNrbG9nOwogCXEtPmRyb3Bfb3ZlcmxpbWl0 Kys7CiAJLyogUmV0dXJuIENvbmdlc3Rpb24gTm90aWZpY2F0aW9uIG9ubHkgaWYgd2UgZHJvcHBl ZCBhIHBhY2tldAogCSAqIGZyb20gdGhpcyBmbG93LgpAQCAtMjExLDcgKzIxMiw3IEBAIHN0YXRp YyBpbnQgZnFfY29kZWxfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2Mg KnNjaCkKIAkJcmV0dXJuIE5FVF9YTUlUX0NOOwogCiAJLyogQXMgd2UgZHJvcHBlZCBhIHBhY2tl dCwgYmV0dGVyIGxldCB1cHBlciBzdGFjayBrbm93IHRoaXMgKi8KLQlxZGlzY190cmVlX2RlY3Jl YXNlX3FsZW4oc2NoLCAxKTsKKwlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgMSwgcHJl dl9iYWNrbG9nIC0gc2NoLT5xc3RhdHMuYmFja2xvZyk7CiAJcmV0dXJuIE5FVF9YTUlUX1NVQ0NF U1M7CiB9CiAKQEAgLTI0MSw2ICsyNDIsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmZxX2Nv ZGVsX2RlcXVldWUoc3RydWN0IFFkaXNjICpzY2gpCiAJc3RydWN0IGZxX2NvZGVsX2Zsb3cgKmZs b3c7CiAJc3RydWN0IGxpc3RfaGVhZCAqaGVhZDsKIAl1MzIgcHJldl9kcm9wX2NvdW50LCBwcmV2 X2Vjbl9tYXJrOworCXVuc2lnbmVkIGludCBwcmV2X2JhY2tsb2c7CiAKIGJlZ2luOgogCWhlYWQg PSAmcS0+bmV3X2Zsb3dzOwpAQCAtMjU5LDYgKzI2MSw3IEBAIGJlZ2luOgogCiAJcHJldl9kcm9w X2NvdW50ID0gcS0+Y3N0YXRzLmRyb3BfY291bnQ7CiAJcHJldl9lY25fbWFyayA9IHEtPmNzdGF0 cy5lY25fbWFyazsKKwlwcmV2X2JhY2tsb2cgPSBzY2gtPnFzdGF0cy5iYWNrbG9nOwogCiAJc2ti ID0gY29kZWxfZGVxdWV1ZShzY2gsICZxLT5jcGFyYW1zLCAmZmxvdy0+Y3ZhcnMsICZxLT5jc3Rh dHMsCiAJCQkgICAgZGVxdWV1ZSk7CkBAIC0yNzYsMTIgKzI3OSwxNCBAQCBiZWdpbjoKIAl9CiAJ cWRpc2NfYnN0YXRzX3VwZGF0ZShzY2gsIHNrYik7CiAJZmxvdy0+ZGVmaWNpdCAtPSBxZGlzY19w a3RfbGVuKHNrYik7Ci0JLyogV2UgY2FudCBjYWxsIHFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbigp IGlmIG91ciBxbGVuIGlzIDAsCisJLyogV2UgY2FudCBjYWxsIHFkaXNjX3RyZWVfcmVkdWNlX2Jh Y2tsb2coKSBpZiBvdXIgcWxlbiBpcyAwLAogCSAqIG9yIEhUQiBjcmFzaGVzLiBEZWZlciBpdCBm b3IgbmV4dCByb3VuZC4KIAkgKi8KIAlpZiAocS0+Y3N0YXRzLmRyb3BfY291bnQgJiYgc2NoLT5x LnFsZW4pIHsKLQkJcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKHNjaCwgcS0+Y3N0YXRzLmRyb3Bf Y291bnQpOworCQlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgcS0+Y3N0YXRzLmRyb3Bf Y291bnQsCisJCQkJCSAgcS0+Y3N0YXRzLmRyb3BfbGVuKTsKIAkJcS0+Y3N0YXRzLmRyb3BfY291 bnQgPSAwOworCQlxLT5jc3RhdHMuZHJvcF9sZW4gPSAwOwogCX0KIAlyZXR1cm4gc2tiOwogfQpA QCAtMzcyLDExICszNzcsMTMgQEAgc3RhdGljIGludCBmcV9jb2RlbF9jaGFuZ2Uoc3RydWN0IFFk aXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAl3aGlsZSAoc2NoLT5xLnFsZW4gPiBzY2gt PmxpbWl0KSB7CiAJCXN0cnVjdCBza19idWZmICpza2IgPSBmcV9jb2RlbF9kZXF1ZXVlKHNjaCk7 CiAKKwkJcS0+Y3N0YXRzLmRyb3BfbGVuICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJa2ZyZWVf c2tiKHNrYik7CiAJCXEtPmNzdGF0cy5kcm9wX2NvdW50Kys7CiAJfQotCXFkaXNjX3RyZWVfZGVj cmVhc2VfcWxlbihzY2gsIHEtPmNzdGF0cy5kcm9wX2NvdW50KTsKKwlxZGlzY190cmVlX3JlZHVj ZV9iYWNrbG9nKHNjaCwgcS0+Y3N0YXRzLmRyb3BfY291bnQsIHEtPmNzdGF0cy5kcm9wX2xlbik7 CiAJcS0+Y3N0YXRzLmRyb3BfY291bnQgPSAwOworCXEtPmNzdGF0cy5kcm9wX2xlbiA9IDA7CiAK IAlzY2hfdHJlZV91bmxvY2soc2NoKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25ldC9zY2hl ZC9zY2hfaGZzYy5jIGIvbmV0L3NjaGVkL3NjaF9oZnNjLmMKaW5kZXggMDg5ZjNiNi4uZDc4M2Q3 YyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9oZnNjLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9o ZnNjLmMKQEAgLTg5NSw5ICs4OTUsMTAgQEAgc3RhdGljIHZvaWQKIGhmc2NfcHVyZ2VfcXVldWUo c3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBoZnNjX2NsYXNzICpjbCkKIHsKIAl1bnNpZ25lZCBp bnQgbGVuID0gY2wtPnFkaXNjLT5xLnFsZW47CisJdW5zaWduZWQgaW50IGJhY2tsb2cgPSBjbC0+ cWRpc2MtPnFzdGF0cy5iYWNrbG9nOwogCiAJcWRpc2NfcmVzZXQoY2wtPnFkaXNjKTsKLQlxZGlz Y190cmVlX2RlY3JlYXNlX3FsZW4oY2wtPnFkaXNjLCBsZW4pOworCXFkaXNjX3RyZWVfcmVkdWNl X2JhY2tsb2coY2wtPnFkaXNjLCBsZW4sIGJhY2tsb2cpOwogfQogCiBzdGF0aWMgdm9pZApkaWZm IC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9oaGYuYyBiL25ldC9zY2hlZC9zY2hfaGhmLmMKaW5kZXgg ODZiMDRlMy4uMTNkNmY4MyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9oaGYuYworKysgYi9u ZXQvc2NoZWQvc2NoX2hoZi5jCkBAIC0zODIsNiArMzgyLDcgQEAgc3RhdGljIGludCBoaGZfZW5x dWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAlzdHJ1Y3QgaGhm X3NjaGVkX2RhdGEgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAJZW51bSB3ZHJyX2J1Y2tldF9pZHgg aWR4OwogCXN0cnVjdCB3ZHJyX2J1Y2tldCAqYnVja2V0OworCXVuc2lnbmVkIGludCBwcmV2X2Jh Y2tsb2c7CiAKIAlpZHggPSBoaGZfY2xhc3NpZnkoc2tiLCBzY2gpOwogCkBAIC00MDksNiArNDEw LDcgQEAgc3RhdGljIGludCBoaGZfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg UWRpc2MgKnNjaCkKIAlpZiAoKytzY2gtPnEucWxlbiA8PSBzY2gtPmxpbWl0KQogCQlyZXR1cm4g TkVUX1hNSVRfU1VDQ0VTUzsKIAorCXByZXZfYmFja2xvZyA9IHNjaC0+cXN0YXRzLmJhY2tsb2c7 CiAJcS0+ZHJvcF9vdmVybGltaXQrKzsKIAkvKiBSZXR1cm4gQ29uZ2VzdGlvbiBOb3RpZmljYXRp b24gb25seSBpZiB3ZSBkcm9wcGVkIGEgcGFja2V0IGZyb20gdGhpcwogCSAqIGJ1Y2tldC4KQEAg LTQxNyw3ICs0MTksNyBAQCBzdGF0aWMgaW50IGhoZl9lbnF1ZXVlKHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBRZGlzYyAqc2NoKQogCQlyZXR1cm4gTkVUX1hNSVRfQ047CiAKIAkvKiBBcyB3 ZSBkcm9wcGVkIGEgcGFja2V0LCBiZXR0ZXIgbGV0IHVwcGVyIHN0YWNrIGtub3cgdGhpcy4gKi8K LQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCAxKTsKKwlxZGlzY190cmVlX3JlZHVjZV9i YWNrbG9nKHNjaCwgMSwgcHJldl9iYWNrbG9nIC0gc2NoLT5xc3RhdHMuYmFja2xvZyk7CiAJcmV0 dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CiB9CiAKQEAgLTUyNyw3ICs1MjksNyBAQCBzdGF0aWMgaW50 IGhoZl9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIHsKIAlz dHJ1Y3QgaGhmX3NjaGVkX2RhdGEgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAJc3RydWN0IG5sYXR0 ciAqdGJbVENBX0hIRl9NQVggKyAxXTsKLQl1bnNpZ25lZCBpbnQgcWxlbjsKKwl1bnNpZ25lZCBp bnQgcWxlbiwgcHJldl9iYWNrbG9nOwogCWludCBlcnI7CiAJdTY0IG5vbl9oaF9xdWFudHVtOwog CXUzMiBuZXdfcXVhbnR1bSA9IHEtPnF1YW50dW07CkBAIC01NzcsMTIgKzU3OSwxNCBAQCBzdGF0 aWMgaW50IGhoZl9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkK IAl9CiAKIAlxbGVuID0gc2NoLT5xLnFsZW47CisJcHJldl9iYWNrbG9nID0gc2NoLT5xc3RhdHMu YmFja2xvZzsKIAl3aGlsZSAoc2NoLT5xLnFsZW4gPiBzY2gtPmxpbWl0KSB7CiAJCXN0cnVjdCBz a19idWZmICpza2IgPSBoaGZfZGVxdWV1ZShzY2gpOwogCiAJCWtmcmVlX3NrYihza2IpOwogCX0K LQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCBxbGVuIC0gc2NoLT5xLnFsZW4pOworCXFk aXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCBxbGVuIC0gc2NoLT5xLnFsZW4sCisJCQkJICBw cmV2X2JhY2tsb2cgLSBzY2gtPnFzdGF0cy5iYWNrbG9nKTsKIAogCXNjaF90cmVlX3VubG9jayhz Y2gpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9odGIuYyBiL25ldC9z Y2hlZC9zY2hfaHRiLmMKaW5kZXggMGVmYmNmMy4uODQ2YTdmOSAxMDA2NDQKLS0tIGEvbmV0L3Nj aGVkL3NjaF9odGIuYworKysgYi9uZXQvc2NoZWQvc2NoX2h0Yi5jCkBAIC0xMjY1LDcgKzEyNjUs NiBAQCBzdGF0aWMgaW50IGh0Yl9kZWxldGUoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxv bmcgYXJnKQogewogCXN0cnVjdCBodGJfc2NoZWQgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAJc3Ry dWN0IGh0Yl9jbGFzcyAqY2wgPSAoc3RydWN0IGh0Yl9jbGFzcyAqKWFyZzsKLQl1bnNpZ25lZCBp bnQgcWxlbjsKIAlzdHJ1Y3QgUWRpc2MgKm5ld19xID0gTlVMTDsKIAlpbnQgbGFzdF9jaGlsZCA9 IDA7CiAKQEAgLTEyODUsOSArMTI4NCwxMSBAQCBzdGF0aWMgaW50IGh0Yl9kZWxldGUoc3RydWN0 IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgYXJnKQogCXNjaF90cmVlX2xvY2soc2NoKTsKIAog CWlmICghY2wtPmxldmVsKSB7Ci0JCXFsZW4gPSBjbC0+dW4ubGVhZi5xLT5xLnFsZW47CisJCXVu c2lnbmVkIGludCBxbGVuID0gY2wtPnVuLmxlYWYucS0+cS5xbGVuOworCQl1bnNpZ25lZCBpbnQg YmFja2xvZyA9IGNsLT51bi5sZWFmLnEtPnFzdGF0cy5iYWNrbG9nOworCiAJCXFkaXNjX3Jlc2V0 KGNsLT51bi5sZWFmLnEpOwotCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oY2wtPnVuLmxlYWYu cSwgcWxlbik7CisJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coY2wtPnVuLmxlYWYucSwgcWxl biwgYmFja2xvZyk7CiAJfQogCiAJLyogZGVsZXRlIGZyb20gaGFzaCBhbmQgYWN0aXZlOyByZW1h aW5kZXIgaW4gZGVzdHJveV9jbGFzcyAqLwpAQCAtMTQyMSwxMCArMTQyMiwxMSBAQCBzdGF0aWMg aW50IGh0Yl9jaGFuZ2VfY2xhc3Moc3RydWN0IFFkaXNjICpzY2gsIHUzMiBjbGFzc2lkLAogCQlz Y2hfdHJlZV9sb2NrKHNjaCk7CiAJCWlmIChwYXJlbnQgJiYgIXBhcmVudC0+bGV2ZWwpIHsKIAkJ CXVuc2lnbmVkIGludCBxbGVuID0gcGFyZW50LT51bi5sZWFmLnEtPnEucWxlbjsKKwkJCXVuc2ln bmVkIGludCBiYWNrbG9nID0gcGFyZW50LT51bi5sZWFmLnEtPnFzdGF0cy5iYWNrbG9nOwogCiAJ CQkvKiB0dXJuIHBhcmVudCBpbnRvIGlubmVyIG5vZGUgKi8KIAkJCXFkaXNjX3Jlc2V0KHBhcmVu dC0+dW4ubGVhZi5xKTsKLQkJCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihwYXJlbnQtPnVuLmxl YWYucSwgcWxlbik7CisJCQlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHBhcmVudC0+dW4ubGVh Zi5xLCBxbGVuLCBiYWNrbG9nKTsKIAkJCXFkaXNjX2Rlc3Ryb3kocGFyZW50LT51bi5sZWFmLnEp OwogCQkJaWYgKHBhcmVudC0+cHJpb19hY3Rpdml0eSkKIAkJCQlodGJfZGVhY3RpdmF0ZShxLCBw YXJlbnQpOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9tdWx0aXEuYyBiL25ldC9zY2hlZC9z Y2hfbXVsdGlxLmMKaW5kZXggYTAxMDNhMS4uYmNkZDU0YiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVk L3NjaF9tdWx0aXEuYworKysgYi9uZXQvc2NoZWQvc2NoX211bHRpcS5jCkBAIC0yMTgsNyArMjE4 LDggQEAgc3RhdGljIGludCBtdWx0aXFfdHVuZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5s YXR0ciAqb3B0KQogCQlpZiAocS0+cXVldWVzW2ldICE9ICZub29wX3FkaXNjKSB7CiAJCQlzdHJ1 Y3QgUWRpc2MgKmNoaWxkID0gcS0+cXVldWVzW2ldOwogCQkJcS0+cXVldWVzW2ldID0gJm5vb3Bf cWRpc2M7Ci0JCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oY2hpbGQsIGNoaWxkLT5xLnFsZW4p OworCQkJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhjaGlsZCwgY2hpbGQtPnEucWxlbiwKKwkJ CQkJCSAgY2hpbGQtPnFzdGF0cy5iYWNrbG9nKTsKIAkJCXFkaXNjX2Rlc3Ryb3koY2hpbGQpOwog CQl9CiAJfQpAQCAtMjM4LDggKzIzOSw5IEBAIHN0YXRpYyBpbnQgbXVsdGlxX3R1bmUoc3RydWN0 IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAkJCQlxLT5xdWV1ZXNbaV0gPSBjaGls ZDsKIAogCQkJCWlmIChvbGQgIT0gJm5vb3BfcWRpc2MpIHsKLQkJCQkJcWRpc2NfdHJlZV9kZWNy ZWFzZV9xbGVuKG9sZCwKLQkJCQkJCQkJIG9sZC0+cS5xbGVuKTsKKwkJCQkJcWRpc2NfdHJlZV9y ZWR1Y2VfYmFja2xvZyhvbGQsCisJCQkJCQkJCSAgb2xkLT5xLnFsZW4sCisJCQkJCQkJCSAgb2xk LT5xc3RhdHMuYmFja2xvZyk7CiAJCQkJCXFkaXNjX2Rlc3Ryb3kob2xkKTsKIAkJCQl9CiAJCQkJ c2NoX3RyZWVfdW5sb2NrKHNjaCk7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMg Yi9uZXQvc2NoZWQvc2NoX25ldGVtLmMKaW5kZXggMGE2ZGRhZi4uOTY0MGJiMyAxMDA2NDQKLS0t IGEvbmV0L3NjaGVkL3NjaF9uZXRlbS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0uYwpAQCAt NTk4LDcgKzU5OCw4IEBAIGRlbGl2ZXI6CiAJCQkJaWYgKHVubGlrZWx5KGVyciAhPSBORVRfWE1J VF9TVUNDRVNTKSkgewogCQkJCQlpZiAobmV0X3htaXRfZHJvcF9jb3VudChlcnIpKSB7CiAJCQkJ CQlxZGlzY19xc3RhdHNfZHJvcChzY2gpOwotCQkJCQkJcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVu KHNjaCwgMSk7CisJCQkJCQlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgMSwKKwkJCQkJ CQkJCSAgcWRpc2NfcGt0X2xlbihza2IpKTsKIAkJCQkJfQogCQkJCX0KIAkJCQlnb3RvIHRmaWZv X2RlcXVldWU7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX3BpZS5jIGIvbmV0L3NjaGVkL3Nj aF9waWUuYwppbmRleCBiNzgzYTQ0Li43MWFlM2I5IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2No X3BpZS5jCisrKyBiL25ldC9zY2hlZC9zY2hfcGllLmMKQEAgLTE4Myw3ICsxODMsNyBAQCBzdGF0 aWMgaW50IHBpZV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkK IHsKIAlzdHJ1Y3QgcGllX3NjaGVkX2RhdGEgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAJc3RydWN0 IG5sYXR0ciAqdGJbVENBX1BJRV9NQVggKyAxXTsKLQl1bnNpZ25lZCBpbnQgcWxlbjsKKwl1bnNp Z25lZCBpbnQgcWxlbiwgZHJvcHBlZCA9IDA7CiAJaW50IGVycjsKIAogCWlmICghb3B0KQpAQCAt MjMyLDEwICsyMzIsMTEgQEAgc3RhdGljIGludCBwaWVfY2hhbmdlKHN0cnVjdCBRZGlzYyAqc2No LCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAJd2hpbGUgKHNjaC0+cS5xbGVuID4gc2NoLT5saW1pdCkg ewogCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gX19za2JfZGVxdWV1ZSgmc2NoLT5xKTsKIAorCQlk cm9wcGVkICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJcWRpc2NfcXN0YXRzX2JhY2tsb2dfZGVj KHNjaCwgc2tiKTsKIAkJcWRpc2NfZHJvcChza2IsIHNjaCk7CiAJfQotCXFkaXNjX3RyZWVfZGVj cmVhc2VfcWxlbihzY2gsIHFsZW4gLSBzY2gtPnEucWxlbik7CisJcWRpc2NfdHJlZV9yZWR1Y2Vf YmFja2xvZyhzY2gsIHFsZW4gLSBzY2gtPnEucWxlbiwgZHJvcHBlZCk7CiAKIAlzY2hfdHJlZV91 bmxvY2soc2NoKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfcHJpby5j IGIvbmV0L3NjaGVkL3NjaF9wcmlvLmMKaW5kZXggMWI0YWFlYy4uZmVlMWIxNSAxMDA2NDQKLS0t IGEvbmV0L3NjaGVkL3NjaF9wcmlvLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9wcmlvLmMKQEAgLTE5 MSw3ICsxOTEsNyBAQCBzdGF0aWMgaW50IHByaW9fdHVuZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3Ry dWN0IG5sYXR0ciAqb3B0KQogCQlzdHJ1Y3QgUWRpc2MgKmNoaWxkID0gcS0+cXVldWVzW2ldOwog CQlxLT5xdWV1ZXNbaV0gPSAmbm9vcF9xZGlzYzsKIAkJaWYgKGNoaWxkICE9ICZub29wX3FkaXNj KSB7Ci0JCQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oY2hpbGQsIGNoaWxkLT5xLnFsZW4pOwor CQkJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhjaGlsZCwgY2hpbGQtPnEucWxlbiwgY2hpbGQt PnFzdGF0cy5iYWNrbG9nKTsKIAkJCXFkaXNjX2Rlc3Ryb3koY2hpbGQpOwogCQl9CiAJfQpAQCAt MjEwLDggKzIxMCw5IEBAIHN0YXRpYyBpbnQgcHJpb190dW5lKHN0cnVjdCBRZGlzYyAqc2NoLCBz dHJ1Y3QgbmxhdHRyICpvcHQpCiAJCQkJcS0+cXVldWVzW2ldID0gY2hpbGQ7CiAKIAkJCQlpZiAo b2xkICE9ICZub29wX3FkaXNjKSB7Ci0JCQkJCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihvbGQs Ci0JCQkJCQkJCSBvbGQtPnEucWxlbik7CisJCQkJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2co b2xkLAorCQkJCQkJCQkgIG9sZC0+cS5xbGVuLAorCQkJCQkJCQkgIG9sZC0+cXN0YXRzLmJhY2ts b2cpOwogCQkJCQlxZGlzY19kZXN0cm95KG9sZCk7CiAJCQkJfQogCQkJCXNjaF90cmVlX3VubG9j ayhzY2gpOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9xZnEuYyBiL25ldC9zY2hlZC9zY2hf cWZxLmMKaW5kZXggYjVjNTJjYS4uOGQyZDhkOSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9x ZnEuYworKysgYi9uZXQvc2NoZWQvc2NoX3FmcS5jCkBAIC0yMjAsOSArMjIwLDEwIEBAIHN0YXRp YyBzdHJ1Y3QgcWZxX2NsYXNzICpxZnFfZmluZF9jbGFzcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdTMy IGNsYXNzaWQpCiBzdGF0aWMgdm9pZCBxZnFfcHVyZ2VfcXVldWUoc3RydWN0IHFmcV9jbGFzcyAq Y2wpCiB7CiAJdW5zaWduZWQgaW50IGxlbiA9IGNsLT5xZGlzYy0+cS5xbGVuOworCXVuc2lnbmVk IGludCBiYWNrbG9nID0gY2wtPnFkaXNjLT5xc3RhdHMuYmFja2xvZzsKIAogCXFkaXNjX3Jlc2V0 KGNsLT5xZGlzYyk7Ci0JcWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKGNsLT5xZGlzYywgbGVuKTsK KwlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKGNsLT5xZGlzYywgbGVuLCBiYWNrbG9nKTsKIH0K IAogc3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IHFmcV9wb2xpY3lbVENBX1FGUV9NQVgg KyAxXSA9IHsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfcmVkLmMgYi9uZXQvc2NoZWQvc2No X3JlZC5jCmluZGV4IGQ1YWJjZWUuLjhjMDUwOGMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hf cmVkLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9yZWQuYwpAQCAtMjEwLDcgKzIxMCw4IEBAIHN0YXRp YyBpbnQgcmVkX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQog CXEtPmZsYWdzID0gY3RsLT5mbGFnczsKIAlxLT5saW1pdCA9IGN0bC0+bGltaXQ7CiAJaWYgKGNo aWxkKSB7Ci0JCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihxLT5xZGlzYywgcS0+cWRpc2MtPnEu cWxlbik7CisJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2cocS0+cWRpc2MsIHEtPnFkaXNjLT5x LnFsZW4sCisJCQkJCSAgcS0+cWRpc2MtPnFzdGF0cy5iYWNrbG9nKTsKIAkJcWRpc2NfZGVzdHJv eShxLT5xZGlzYyk7CiAJCXEtPnFkaXNjID0gY2hpbGQ7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L3Nj aGVkL3NjaF9zZmIuYyBiL25ldC9zY2hlZC9zY2hfc2ZiLmMKaW5kZXggMGU3NGU1NS4uYzY5NjEx NiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9zZmIuYworKysgYi9uZXQvc2NoZWQvc2NoX3Nm Yi5jCkBAIC01MTAsNyArNTEwLDggQEAgc3RhdGljIGludCBzZmJfY2hhbmdlKHN0cnVjdCBRZGlz YyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAKIAlzY2hfdHJlZV9sb2NrKHNjaCk7CiAKLQlx ZGlzY190cmVlX2RlY3JlYXNlX3FsZW4ocS0+cWRpc2MsIHEtPnFkaXNjLT5xLnFsZW4pOworCXFk aXNjX3RyZWVfcmVkdWNlX2JhY2tsb2cocS0+cWRpc2MsIHEtPnFkaXNjLT5xLnFsZW4sCisJCQkJ ICBxLT5xZGlzYy0+cXN0YXRzLmJhY2tsb2cpOwogCXFkaXNjX2Rlc3Ryb3kocS0+cWRpc2MpOwog CXEtPnFkaXNjID0gY2hpbGQ7CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfc2ZxLmMgYi9u ZXQvc2NoZWQvc2NoX3NmcS5jCmluZGV4IDNhYmFiNTMuLjQ5OGYwYTIgMTAwNjQ0Ci0tLSBhL25l dC9zY2hlZC9zY2hfc2ZxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9zZnEuYwpAQCAtMzQ2LDcgKzM0 Niw3IEBAIHN0YXRpYyBpbnQKIHNmcV9lbnF1ZXVlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVj dCBRZGlzYyAqc2NoKQogewogCXN0cnVjdCBzZnFfc2NoZWRfZGF0YSAqcSA9IHFkaXNjX3ByaXYo c2NoKTsKLQl1bnNpZ25lZCBpbnQgaGFzaDsKKwl1bnNpZ25lZCBpbnQgaGFzaCwgZHJvcHBlZDsK IAlzZnFfaW5kZXggeCwgcWxlbjsKIAlzdHJ1Y3Qgc2ZxX3Nsb3QgKnNsb3Q7CiAJaW50IHVuaW5p dGlhbGl6ZWRfdmFyKHJldCk7CkBAIC00NjEsNyArNDYxLDcgQEAgZW5xdWV1ZToKIAkJcmV0dXJu IE5FVF9YTUlUX1NVQ0NFU1M7CiAKIAlxbGVuID0gc2xvdC0+cWxlbjsKLQlzZnFfZHJvcChzY2gp OworCWRyb3BwZWQgPSBzZnFfZHJvcChzY2gpOwogCS8qIFJldHVybiBDb25nZXN0aW9uIE5vdGlm aWNhdGlvbiBvbmx5IGlmIHdlIGRyb3BwZWQgYSBwYWNrZXQKIAkgKiBmcm9tIHRoaXMgZmxvdy4K IAkgKi8KQEAgLTQ2OSw3ICs0NjksNyBAQCBlbnF1ZXVlOgogCQlyZXR1cm4gTkVUX1hNSVRfQ047 CiAKIAkvKiBBcyB3ZSBkcm9wcGVkIGEgcGFja2V0LCBiZXR0ZXIgbGV0IHVwcGVyIHN0YWNrIGtu b3cgdGhpcyAqLwotCXFkaXNjX3RyZWVfZGVjcmVhc2VfcWxlbihzY2gsIDEpOworCXFkaXNjX3Ry ZWVfcmVkdWNlX2JhY2tsb2coc2NoLCAxLCBkcm9wcGVkKTsKIAlyZXR1cm4gTkVUX1hNSVRfU1VD Q0VTUzsKIH0KIApAQCAtNTM3LDYgKzUzNyw3IEBAIHN0YXRpYyB2b2lkIHNmcV9yZWhhc2goc3Ry dWN0IFFkaXNjICpzY2gpCiAJc3RydWN0IHNmcV9zbG90ICpzbG90OwogCXN0cnVjdCBza19idWZm X2hlYWQgbGlzdDsKIAlpbnQgZHJvcHBlZCA9IDA7CisJdW5zaWduZWQgaW50IGRyb3BfbGVuID0g MDsKIAogCV9fc2tiX3F1ZXVlX2hlYWRfaW5pdCgmbGlzdCk7CiAKQEAgLTU2NSw2ICs1NjYsNyBA QCBzdGF0aWMgdm9pZCBzZnFfcmVoYXNoKHN0cnVjdCBRZGlzYyAqc2NoKQogCQkJaWYgKHggPj0g U0ZRX01BWF9GTE9XUykgewogZHJvcDoKIAkJCQlxZGlzY19xc3RhdHNfYmFja2xvZ19kZWMoc2No LCBza2IpOworCQkJCWRyb3BfbGVuICs9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJCQlrZnJlZV9z a2Ioc2tiKTsKIAkJCQlkcm9wcGVkKys7CiAJCQkJY29udGludWU7CkBAIC01OTQsNyArNTk2LDcg QEAgZHJvcDoKIAkJfQogCX0KIAlzY2gtPnEucWxlbiAtPSBkcm9wcGVkOwotCXFkaXNjX3RyZWVf ZGVjcmVhc2VfcWxlbihzY2gsIGRyb3BwZWQpOworCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2co c2NoLCBkcm9wcGVkLCBkcm9wX2xlbik7CiB9CiAKIHN0YXRpYyB2b2lkIHNmcV9wZXJ0dXJiYXRp b24odW5zaWduZWQgbG9uZyBhcmcpCkBAIC02MTgsNyArNjIwLDcgQEAgc3RhdGljIGludCBzZnFf Y2hhbmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAJc3RydWN0IHNm cV9zY2hlZF9kYXRhICpxID0gcWRpc2NfcHJpdihzY2gpOwogCXN0cnVjdCB0Y19zZnFfcW9wdCAq Y3RsID0gbmxhX2RhdGEob3B0KTsKIAlzdHJ1Y3QgdGNfc2ZxX3FvcHRfdjEgKmN0bF92MSA9IE5V TEw7Ci0JdW5zaWduZWQgaW50IHFsZW47CisJdW5zaWduZWQgaW50IHFsZW4sIGRyb3BwZWQgPSAw OwogCXN0cnVjdCByZWRfcGFybXMgKnAgPSBOVUxMOwogCiAJaWYgKG9wdC0+bmxhX2xlbiA8IG5s YV9hdHRyX3NpemUoc2l6ZW9mKCpjdGwpKSkKQEAgLTY2Nyw4ICs2NjksOCBAQCBzdGF0aWMgaW50 IHNmcV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAogCXFs ZW4gPSBzY2gtPnEucWxlbjsKIAl3aGlsZSAoc2NoLT5xLnFsZW4gPiBxLT5saW1pdCkKLQkJc2Zx X2Ryb3Aoc2NoKTsKLQlxZGlzY190cmVlX2RlY3JlYXNlX3FsZW4oc2NoLCBxbGVuIC0gc2NoLT5x LnFsZW4pOworCQlkcm9wcGVkICs9IHNmcV9kcm9wKHNjaCk7CisJcWRpc2NfdHJlZV9yZWR1Y2Vf YmFja2xvZyhzY2gsIHFsZW4gLSBzY2gtPnEucWxlbiwgZHJvcHBlZCk7CiAKIAlkZWxfdGltZXIo JnEtPnBlcnR1cmJfdGltZXIpOwogCWlmIChxLT5wZXJ0dXJiX3BlcmlvZCkgewpkaWZmIC0tZ2l0 IGEvbmV0L3NjaGVkL3NjaF90YmYuYyBiL25ldC9zY2hlZC9zY2hfdGJmLmMKaW5kZXggNTZhMWFl Zi4uYzJmYmRlNyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF90YmYuYworKysgYi9uZXQvc2No ZWQvc2NoX3RiZi5jCkBAIC0xNjAsNiArMTYwLDcgQEAgc3RhdGljIGludCB0YmZfc2VnbWVudChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAlzdHJ1Y3QgdGJmX3NjaGVk X2RhdGEgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAJc3RydWN0IHNrX2J1ZmYgKnNlZ3MsICpuc2ti OwogCW5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzID0gbmV0aWZfc2tiX2ZlYXR1cmVzKHNrYik7 CisJdW5zaWduZWQgaW50IGxlbiA9IDAsIHByZXZfbGVuID0gcWRpc2NfcGt0X2xlbihza2IpOwog CWludCByZXQsIG5iOwogCiAJc2VncyA9IHNrYl9nc29fc2VnbWVudChza2IsIGZlYXR1cmVzICYg fk5FVElGX0ZfR1NPX01BU0spOwpAQCAtMTcyLDYgKzE3Myw3IEBAIHN0YXRpYyBpbnQgdGJmX3Nl Z21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJCW5za2IgPSBz ZWdzLT5uZXh0OwogCQlzZWdzLT5uZXh0ID0gTlVMTDsKIAkJcWRpc2Nfc2tiX2NiKHNlZ3MpLT5w a3RfbGVuID0gc2Vncy0+bGVuOworCQlsZW4gKz0gc2Vncy0+bGVuOwogCQlyZXQgPSBxZGlzY19l bnF1ZXVlKHNlZ3MsIHEtPnFkaXNjKTsKIAkJaWYgKHJldCAhPSBORVRfWE1JVF9TVUNDRVNTKSB7 CiAJCQlpZiAobmV0X3htaXRfZHJvcF9jb3VudChyZXQpKQpAQCAtMTgzLDcgKzE4NSw3IEBAIHN0 YXRpYyBpbnQgdGJmX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpz Y2gpCiAJfQogCXNjaC0+cS5xbGVuICs9IG5iOwogCWlmIChuYiA+IDEpCi0JCXFkaXNjX3RyZWVf ZGVjcmVhc2VfcWxlbihzY2gsIDEgLSBuYik7CisJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2co c2NoLCAxIC0gbmIsIHByZXZfbGVuIC0gbGVuKTsKIAljb25zdW1lX3NrYihza2IpOwogCXJldHVy biBuYiA+IDAgPyBORVRfWE1JVF9TVUNDRVNTIDogTkVUX1hNSVRfRFJPUDsKIH0KQEAgLTM5OSw3 ICs0MDEsOCBAQCBzdGF0aWMgaW50IHRiZl9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVj dCBubGF0dHIgKm9wdCkKIAogCXNjaF90cmVlX2xvY2soc2NoKTsKIAlpZiAoY2hpbGQpIHsKLQkJ cWRpc2NfdHJlZV9kZWNyZWFzZV9xbGVuKHEtPnFkaXNjLCBxLT5xZGlzYy0+cS5xbGVuKTsKKwkJ cWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhxLT5xZGlzYywgcS0+cWRpc2MtPnEucWxlbiwKKwkJ CQkJICBxLT5xZGlzYy0+cXN0YXRzLmJhY2tsb2cpOwogCQlxZGlzY19kZXN0cm95KHEtPnFkaXNj KTsKIAkJcS0+cWRpc2MgPSBjaGlsZDsKIAl9Ci0tIAoyLjEuMAoKCkZyb20gMzUzNTQwOGY3ODQw MjhmNThlZmRlODg1YjQwZmZjZTkxMWZlM2E5ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMjUgRmVi IDIwMTYgMTQ6NTU6MDIgLTA4MDAKU3ViamVjdDogW1BBVENIIDI3LzQyXSBzY2hfaHRiOiB1cGRh dGUgYmFja2xvZyBhcyB3ZWxsCgpbIFVwc3RyZWFtIGNvbW1pdCA0MzFlM2E4ZTM2YTA1YTM3MTI2 ZjM0YjQxYWEzYTVhNjQ1NmFmMDRlIF0KCldlIHNhdyBxbGVuIT0wIGJ1dCBiYWNrbG9nPT0wIG9u IG91ciBwcm9kdWN0aW9uIG1hY2hpbmU6CgpxZGlzYyBodGIgMTogZGV2IGV0aDAgcm9vdCByZWZj bnQgMiByMnEgMTAgZGVmYXVsdCAxIGRpcmVjdF9wYWNrZXRzX3N0YXQgMCB2ZXIgMy4xNwogU2Vu dCAxNzI2ODA0NTczNTYgYnl0ZXMgMjIyNDY5NDQ5IHBrdCAoZHJvcHBlZCAwLCBvdmVybGltaXRz IDEyMzU3NTgzNCByZXF1ZXVlcyAwKQogYmFja2xvZyAwYiA3MnAgcmVxdWV1ZXMgMAoKVGhlIHBy b2JsZW0gaXMgd2Ugb25seSBjb3VudCBxbGVuIGZvciBIVEIgcWRpc2MgYnV0IG5vdCBiYWNrbG9n LgpXZSBuZWVkIHRvIHVwZGF0ZSBiYWNrbG9nIHRvbyB3aGVuIHdlIHVwZGF0ZSBxbGVuLCBzbyB0 aGF0IHdlCmNhbiBhdCBsZWFzdCBrbm93IHRoZSBhdmVyYWdlIHBhY2tldCBsZW5ndGguCgpDYzog SmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQWNrZWQtYnk6IEphbWFsIEhhZGkg U2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uu d2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9odGIuYyB8IDUgKysrKy0KIDEgZmls ZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9u ZXQvc2NoZWQvc2NoX2h0Yi5jIGIvbmV0L3NjaGVkL3NjaF9odGIuYwppbmRleCA4NDZhN2Y5Li44 N2IwMmVkMyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9odGIuYworKysgYi9uZXQvc2NoZWQv c2NoX2h0Yi5jCkBAIC02MDAsNiArNjAwLDcgQEAgc3RhdGljIGludCBodGJfZW5xdWV1ZShzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJaHRiX2FjdGl2YXRlKHEsIGNs KTsKIAl9CiAKKwlxZGlzY19xc3RhdHNfYmFja2xvZ19pbmMoc2NoLCBza2IpOwogCXNjaC0+cS5x bGVuKys7CiAJcmV0dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CiB9CkBAIC04ODksNiArODkwLDcgQEAg c3RhdGljIHN0cnVjdCBza19idWZmICpodGJfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCkKIG9r OgogCQlxZGlzY19ic3RhdHNfdXBkYXRlKHNjaCwgc2tiKTsKIAkJcWRpc2NfdW50aHJvdHRsZWQo c2NoKTsKKwkJcWRpc2NfcXN0YXRzX2JhY2tsb2dfZGVjKHNjaCwgc2tiKTsKIAkJc2NoLT5xLnFs ZW4tLTsKIAkJcmV0dXJuIHNrYjsKIAl9CkBAIC05NTUsNiArOTU3LDcgQEAgc3RhdGljIHVuc2ln bmVkIGludCBodGJfZHJvcChzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJCXVuc2lnbmVkIGludCBsZW47 CiAJCQlpZiAoY2wtPnVuLmxlYWYucS0+b3BzLT5kcm9wICYmCiAJCQkgICAgKGxlbiA9IGNsLT51 bi5sZWFmLnEtPm9wcy0+ZHJvcChjbC0+dW4ubGVhZi5xKSkpIHsKKwkJCQlzY2gtPnFzdGF0cy5i YWNrbG9nIC09IGxlbjsKIAkJCQlzY2gtPnEucWxlbi0tOwogCQkJCWlmICghY2wtPnVuLmxlYWYu cS0+cS5xbGVuKQogCQkJCQlodGJfZGVhY3RpdmF0ZShxLCBjbCk7CkBAIC05ODQsMTIgKzk4Nywx MiBAQCBzdGF0aWMgdm9pZCBodGJfcmVzZXQoc3RydWN0IFFkaXNjICpzY2gpCiAJCQl9CiAJCQlj bC0+cHJpb19hY3Rpdml0eSA9IDA7CiAJCQljbC0+Y21vZGUgPSBIVEJfQ0FOX1NFTkQ7Ci0KIAkJ fQogCX0KIAlxZGlzY193YXRjaGRvZ19jYW5jZWwoJnEtPndhdGNoZG9nKTsKIAlfX3NrYl9xdWV1 ZV9wdXJnZSgmcS0+ZGlyZWN0X3F1ZXVlKTsKIAlzY2gtPnEucWxlbiA9IDA7CisJc2NoLT5xc3Rh dHMuYmFja2xvZyA9IDA7CiAJbWVtc2V0KHEtPmhsZXZlbCwgMCwgc2l6ZW9mKHEtPmhsZXZlbCkp OwogCW1lbXNldChxLT5yb3dfbWFzaywgMCwgc2l6ZW9mKHEtPnJvd19tYXNrKSk7CiAJZm9yIChp ID0gMDsgaSA8IFRDX0hUQl9OVU1QUklPOyBpKyspCi0tIAoyLjEuMAoKCkZyb20gMjE1MDYzMWUz YjdmNWQ0ODkwNTJhYmZhZDFkN2E0NDYyNGYwZGM0YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMjUg RmViIDIwMTYgMTQ6NTU6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIIDI4LzQyXSBzY2hfZHNtYXJr OiB1cGRhdGUgYmFja2xvZyBhcyB3ZWxsCgpbIFVwc3RyZWFtIGNvbW1pdCBiZGYxNzY2MWY2M2E3 OWMzY2I0MjA5Yjk3MGIxY2MzOWUzNGY3NTQzIF0KClNpbWlsYXJseSwgd2UgbmVlZCB0byB1cGRh dGUgYmFja2xvZyB0b28gd2hlbiB3ZSB1cGRhdGUgcWxlbi4KCkNjOiBKYW1hbCBIYWRpIFNhbGlt IDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdj b25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfZHNtYXJrLmMgfCAzICsrKwogMSBmaWxlIGNo YW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfZHNtYXJr LmMgYi9uZXQvc2NoZWQvc2NoX2RzbWFyay5jCmluZGV4IGNmZGRiMWMuLmQwZGZmMGMgMTAwNjQ0 Ci0tLSBhL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9kc21hcmsu YwpAQCAtMjU4LDYgKzI1OCw3IEBAIHN0YXRpYyBpbnQgZHNtYXJrX2VucXVldWUoc3RydWN0IHNr X2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJCXJldHVybiBlcnI7CiAJfQogCisJcWRp c2NfcXN0YXRzX2JhY2tsb2dfaW5jKHNjaCwgc2tiKTsKIAlzY2gtPnEucWxlbisrOwogCiAJcmV0 dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CkBAIC0yODAsNiArMjgxLDcgQEAgc3RhdGljIHN0cnVjdCBz a19idWZmICpkc21hcmtfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJcmV0dXJuIE5VTEw7 CiAKIAlxZGlzY19ic3RhdHNfdXBkYXRlKHNjaCwgc2tiKTsKKwlxZGlzY19xc3RhdHNfYmFja2xv Z19kZWMoc2NoLCBza2IpOwogCXNjaC0+cS5xbGVuLS07CiAKIAlpbmRleCA9IHNrYi0+dGNfaW5k ZXggJiAocC0+aW5kaWNlcyAtIDEpOwpAQCAtMzk1LDYgKzM5Nyw3IEBAIHN0YXRpYyB2b2lkIGRz bWFya19yZXNldChzdHJ1Y3QgUWRpc2MgKnNjaCkKIAogCXByX2RlYnVnKCIlcyhzY2ggJXAsW3Fk aXNjICVwXSlcbiIsIF9fZnVuY19fLCBzY2gsIHApOwogCXFkaXNjX3Jlc2V0KHAtPnEpOworCXNj aC0+cXN0YXRzLmJhY2tsb2cgPSAwOwogCXNjaC0+cS5xbGVuID0gMDsKIH0KIAotLSAKMi4xLjAK CgpGcm9tIGU4YzNjZTc3ZGU5N2JkYzExNzJhOWJmMGRlOTdiNWEzZmVkMmYxY2YgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+ CkRhdGU6IE1vbiwgMiBNYXkgMjAxNiAxMjoyMDoxNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjkv NDJdIG5ldGVtOiBTZWdtZW50IEdTTyBwYWNrZXRzIG9uIGVucXVldWUKClsgVXBzdHJlYW0gY29t bWl0IDYwNzFiZDFhYTEzZWQ5ZTQxODI0YmFmYWQ4NDViN2I3ZjRkZjVjZmQgXQoKVGhpcyB3YXMg cmVjZW50bHkgcmVwb3J0ZWQgdG8gbWUsIGFuZCByZXByb2R1Y2VkIG9uIHRoZSBsYXRlc3QgbmV0 IGtlcm5lbCwKd2hlbiBhdHRlbXB0aW5nIHRvIHJ1biBuZXRwZXJmIGZyb20gYSBob3N0IHRoYXQg aGFkIGEgbmV0ZW0gcWRpc2MgYXR0YWNoZWQKdG8gdGhlIGVncmVzcyBpbnRlcmZhY2U6CgpbICA3 ODguMDczNzcxXSAtLS0tLS0tLS0tLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KWyAgNzg4LjA5NjcxNl0gV0FSTklORzogYXQgbmV0L2NvcmUvZGV2LmM6 MjI1MyBza2Jfd2Fybl9iYWRfb2ZmbG9hZCsweGNkLzB4ZGEoKQpbICA3ODguMTI5NTIxXSBibngy OiBjYXBzPSgweDAwMDAwMDAxODAxOTQ5YjMsIDB4MDAwMDAwMDAwMDAwMDAwMCkgbGVuPTI5NjIK ZGF0YV9sZW49MCBnc29fc2l6ZT0xNDQ4IGdzb190eXBlPTEgaXBfc3VtbWVkPTMKWyAgNzg4LjE4 MjE1MF0gTW9kdWxlcyBsaW5rZWQgaW46IHNjaF9uZXRlbSBrdm1fYW1kIGt2bSBjcmMzMl9wY2xt dWwgaXBtaV9zc2lmCmdoYXNoX2NsbXVsbmlfaW50ZWwgc3A1MTAwX3RjbyBhbWQ2NF9lZGFjX21v ZCBhZXNuaV9pbnRlbCBscncgZ2YxMjhtdWwKZ2x1ZV9oZWxwZXIgYWJsa19oZWxwZXIgZWRhY19t Y2VfYW1kIGNyeXB0ZCBwY3Nwa3Igc2cgZWRhY19jb3JlIGhwaWxvIGlwbWlfc2kKaTJjX3BpaXg0 IGsxMHRlbXAgZmFtMTVoX3Bvd2VyIGhwd2R0IGlwbWlfbXNnaGFuZGxlciBzaHBjaHAgYWNwaV9w b3dlcl9tZXRlcgpwY2NfY3B1ZnJlcSBuZnNkIGF1dGhfcnBjZ3NzIG5mc19hY2wgbG9ja2QgZ3Jh Y2Ugc3VucnBjIGlwX3RhYmxlcyB4ZnMgbGliY3JjMzJjCnNkX21vZCBjcmNfdDEwZGlmIGNyY3Qx MGRpZl9nZW5lcmljIG1nYWcyMDAgc3lzY29weWFyZWEgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0Cmky Y19hbGdvX2JpdCBkcm1fa21zX2hlbHBlciBhaGNpIGF0YV9nZW5lcmljIHBhdGFfYWNwaSB0dG0g bGliYWhjaQpjcmN0MTBkaWZfcGNsbXVsIHBhdGFfYXRpaXhwIHRnMyBsaWJhdGEgY3JjdDEwZGlm X2NvbW1vbiBkcm0gY3JjMzJjX2ludGVsIHB0cApzZXJpb19yYXcgYm54MiByODE2OSBocHNhIHBw c19jb3JlIGkyY19jb3JlIG1paSBkbV9taXJyb3IgZG1fcmVnaW9uX2hhc2ggZG1fbG9nCmRtX21v ZApbICA3ODguNDY1Mjk0XSBDUFU6IDE2IFBJRDogMCBDb21tOiBzd2FwcGVyLzE2IFRhaW50ZWQ6 IEcgICAgICAgIFcKLS0tLS0tLS0tLS0tICAgMy4xMC4wLTMyNy5lbDcueDg2XzY0ICMxClsgIDc4 OC41MTE1MjFdIEhhcmR3YXJlIG5hbWU6IEhQIFByb0xpYW50IERMMzg1cCBHZW44LCBCSU9TIEEy OCAxMi8xNy8yMDEyClsgIDc4OC41NDIyNjBdICBmZmZmODgwNDM3YzAzNmI4IGY3YWZjNTY1MzJh NTNkYjkgZmZmZjg4MDQzN2MwMzY3MApmZmZmZmZmZjgxNjM1MWYxClsgIDc4OC41NzYzMzJdICBm ZmZmODgwNDM3YzAzNmE4IGZmZmZmZmZmODEwN2IyMDAgZmZmZjg4MDYzM2U3NDIwMApmZmZmODgw MjMxNjc0MDAwClsgIDc4OC42MTE5NDNdICAwMDAwMDAwMDAwMDAwMDAxIDAwMDAwMDAwMDAwMDAw MDMgMDAwMDAwMDAwMDAwMDAwMApmZmZmODgwNDM3YzAzNzEwClsgIDc4OC42NDcyNDFdIENhbGwg VHJhY2U6ClsgIDc4OC42NTg4MTddICA8SVJRPiAgWzxmZmZmZmZmZjgxNjM1MWYxPl0gZHVtcF9z dGFjaysweDE5LzB4MWIKWyAgNzg4LjY4NjE5M10gIFs8ZmZmZmZmZmY4MTA3YjIwMD5dIHdhcm5f c2xvd3BhdGhfY29tbW9uKzB4NzAvMHhiMApbICA3ODguNzEzODAzXSAgWzxmZmZmZmZmZjgxMDdi MjljPl0gd2Fybl9zbG93cGF0aF9mbXQrMHg1Yy8weDgwClsgIDc4OC43NDEzMTRdICBbPGZmZmZm ZmZmODEyZjkyZjM+XSA/IF9fX3JhdGVsaW1pdCsweDkzLzB4MTAwClsgIDc4OC43NjcwMThdICBb PGZmZmZmZmZmODE2MzdmNDk+XSBza2Jfd2Fybl9iYWRfb2ZmbG9hZCsweGNkLzB4ZGEKWyAgNzg4 Ljc5NjExN10gIFs8ZmZmZmZmZmY4MTUyOTUwYz5dIHNrYl9jaGVja3N1bV9oZWxwKzB4MTdjLzB4 MTkwClsgIDc4OC44MjMzOTJdICBbPGZmZmZmZmZmYTAxNDYzYTE+XSBuZXRlbV9lbnF1ZXVlKzB4 NzQxLzB4N2MwIFtzY2hfbmV0ZW1dClsgIDc4OC44NTQ0ODddICBbPGZmZmZmZmZmODE1MmNiNTg+ XSBkZXZfcXVldWVfeG1pdCsweDJhOC8weDU3MApbICA3ODguODgwODcwXSAgWzxmZmZmZmZmZjgx NTZhZTFkPl0gaXBfZmluaXNoX291dHB1dCsweDUzZC8weDdkMAouLi4KClRoZSBwcm9ibGVtIG9j Y3VycyBiZWNhdXNlIG5ldGVtIGlzIG5vdCBwcmVwYXJlZCB0byBoYW5kbGUgR1NPIHBhY2tldHMg KGFzIGl0CnVzZXMgc2tiX2NoZWNrc3VtX2hlbHAgaW4gaXRzIGVucXVldWUgcGF0aCwgd2hpY2gg Y2Fubm90IG1hbmlwdWxhdGUgdGhlc2UKZnJhbWVzKS4KClRoZSBzb2x1dGlvbiBJIHRoaW5rIGlz IHRvIHNpbXBseSBzZWdtZW50IHRoZSBza2IgaW4gYSBzaW1taWxhciBmYXNoaW9uIHRvIHRoZQp3 YXkgd2UgZG8gaW4gX19kZXZfcXVldWVfeG1pdCAodmlhIHZhbGlkYXRlX3htaXRfc2tiKSwgd2l0 aCBzb21lIG1pbm9yIGNoYW5nZXMuCldoZW4gd2UgZGVjaWRlIHRvIGNvcnJ1cHQgYW4gc2tiLCBp ZiB0aGUgZnJhbWUgaXMgR1NPLCB3ZSBzZWdtZW50IGl0LCBjb3JydXB0CnRoZSBmaXJzdCBzZWdt ZW50LCBhbmQgZW5xdWV1ZSB0aGUgcmVtYWluaW5nIG9uZXMuCgp0ZXN0ZWQgc3VjY2Vzc2Z1bGx5 IGJ5IG15c2VsZiBvbiB0aGUgbGF0ZXN0IG5ldCBrZXJuZWwsIHRvIHdoaWNoIHRoaXMgYXBwbGll cwoKU2lnbmVkLW9mZi1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KQ0M6 IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNDOiAiRGF2aWQgUy4gTWlsbGVy IiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KQ0M6IG5ldGVtQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24u b3JnCkNDOiBlcmljLmR1bWF6ZXRAZ21haWwuY29tCkNDOiBzdGVwaGVuQG5ldHdvcmtwbHVtYmVy Lm9yZwpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Nj aGVkL3NjaF9uZXRlbS5jIHwgNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMgYi9uZXQvc2NoZWQv c2NoX25ldGVtLmMKaW5kZXggOTY0MGJiMy4uNGJlZmU5NyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVk L3NjaF9uZXRlbS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0uYwpAQCAtMzk1LDYgKzM5NSwy NSBAQCBzdGF0aWMgdm9pZCB0Zmlmb19lbnF1ZXVlKHN0cnVjdCBza19idWZmICpuc2tiLCBzdHJ1 Y3QgUWRpc2MgKnNjaCkKIAlzY2gtPnEucWxlbisrOwogfQogCisvKiBuZXRlbSBjYW4ndCBwcm9w ZXJseSBjb3JydXB0IGEgbWVnYXBhY2tldCAobGlrZSB3ZSBnZXQgZnJvbSBHU08pLCBzbyBpbnN0 ZWFkCisgKiB3aGVuIHdlIHN0YXRpc3RpY2FsbHkgY2hvb3NlIHRvIGNvcnJ1cHQgb25lLCB3ZSBp bnN0ZWFkIHNlZ21lbnQgaXQsIHJldHVybmluZworICogdGhlIGZpcnN0IHBhY2tldCB0byBiZSBj b3JydXB0ZWQsIGFuZCByZS1lbnF1ZXVlIHRoZSByZW1haW5pbmcgZnJhbWVzCisgKi8KK3N0YXRp YyBzdHJ1Y3Qgc2tfYnVmZiAqbmV0ZW1fc2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgUWRpc2MgKnNjaCkKK3sKKwlzdHJ1Y3Qgc2tfYnVmZiAqc2VnczsKKwluZXRkZXZfZmVhdHVy ZXNfdCBmZWF0dXJlcyA9IG5ldGlmX3NrYl9mZWF0dXJlcyhza2IpOworCisJc2VncyA9IHNrYl9n c29fc2VnbWVudChza2IsIGZlYXR1cmVzICYgfk5FVElGX0ZfR1NPX01BU0spOworCisJaWYgKElT X0VSUl9PUl9OVUxMKHNlZ3MpKSB7CisJCXFkaXNjX3Jlc2hhcGVfZmFpbChza2IsIHNjaCk7CisJ CXJldHVybiBOVUxMOworCX0KKwljb25zdW1lX3NrYihza2IpOworCXJldHVybiBzZWdzOworfQor CiAvKgogICogSW5zZXJ0IG9uZSBza2IgaW50byBxZGlzYy4KICAqIE5vdGU6IHBhcmVudCBkZXBl bmRzIG9uIHJldHVybiB2YWx1ZSB0byBhY2NvdW50IGZvciBxdWV1ZSBsZW5ndGguCkBAIC00MDcs NyArNDI2LDExIEBAIHN0YXRpYyBpbnQgbmV0ZW1fZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkvKiBXZSBkb24ndCBmaWxsIGNiIG5vdyBhcyBza2JfdW5z aGFyZSgpIG1heSBpbnZhbGlkYXRlIGl0ICovCiAJc3RydWN0IG5ldGVtX3NrYl9jYiAqY2I7CiAJ c3RydWN0IHNrX2J1ZmYgKnNrYjI7CisJc3RydWN0IHNrX2J1ZmYgKnNlZ3MgPSBOVUxMOworCXVu c2lnbmVkIGludCBsZW4gPSAwLCBsYXN0X2xlbiwgcHJldl9sZW4gPSBxZGlzY19wa3RfbGVuKHNr Yik7CisJaW50IG5iID0gMDsKIAlpbnQgY291bnQgPSAxOworCWludCByYyA9IE5FVF9YTUlUX1NV Q0NFU1M7CiAKIAkvKiBSYW5kb20gZHVwbGljYXRpb24gKi8KIAlpZiAocS0+ZHVwbGljYXRlICYm IHEtPmR1cGxpY2F0ZSA+PSBnZXRfY3JhbmRvbSgmcS0+ZHVwX2NvcikpCkBAIC00NTMsMTAgKzQ3 NiwyMyBAQCBzdGF0aWMgaW50IG5ldGVtX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IFFkaXNjICpzY2gpCiAJICogZG8gaXQgbm93IGluIHNvZnR3YXJlIGJlZm9yZSB3ZSBtYW5n bGUgaXQuCiAJICovCiAJaWYgKHEtPmNvcnJ1cHQgJiYgcS0+Y29ycnVwdCA+PSBnZXRfY3JhbmRv bSgmcS0+Y29ycnVwdF9jb3IpKSB7CisJCWlmIChza2JfaXNfZ3NvKHNrYikpIHsKKwkJCXNlZ3Mg PSBuZXRlbV9zZWdtZW50KHNrYiwgc2NoKTsKKwkJCWlmICghc2VncykKKwkJCQlyZXR1cm4gTkVU X1hNSVRfRFJPUDsKKwkJfSBlbHNlIHsKKwkJCXNlZ3MgPSBza2I7CisJCX0KKworCQlza2IgPSBz ZWdzOworCQlzZWdzID0gc2Vncy0+bmV4dDsKKwogCQlpZiAoIShza2IgPSBza2JfdW5zaGFyZShz a2IsIEdGUF9BVE9NSUMpKSB8fAogCQkgICAgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VNX1BB UlRJQUwgJiYKLQkJICAgICBza2JfY2hlY2tzdW1faGVscChza2IpKSkKLQkJCXJldHVybiBxZGlz Y19kcm9wKHNrYiwgc2NoKTsKKwkJICAgICBza2JfY2hlY2tzdW1faGVscChza2IpKSkgeworCQkJ cmMgPSBxZGlzY19kcm9wKHNrYiwgc2NoKTsKKwkJCWdvdG8gZmluaXNoX3NlZ3M7CisJCX0KIAog CQlza2ItPmRhdGFbcHJhbmRvbV91MzIoKSAlIHNrYl9oZWFkbGVuKHNrYildIF49CiAJCQkxPDwo cHJhbmRvbV91MzIoKSAlIDgpOwpAQCAtNTE2LDYgKzU1MiwyNyBAQCBzdGF0aWMgaW50IG5ldGVt X2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiAJCXNjaC0+ cXN0YXRzLnJlcXVldWVzKys7CiAJfQogCitmaW5pc2hfc2VnczoKKwlpZiAoc2VncykgeworCQl3 aGlsZSAoc2VncykgeworCQkJc2tiMiA9IHNlZ3MtPm5leHQ7CisJCQlzZWdzLT5uZXh0ID0gTlVM TDsKKwkJCXFkaXNjX3NrYl9jYihzZWdzKS0+cGt0X2xlbiA9IHNlZ3MtPmxlbjsKKwkJCWxhc3Rf bGVuID0gc2Vncy0+bGVuOworCQkJcmMgPSBxZGlzY19lbnF1ZXVlKHNlZ3MsIHNjaCk7CisJCQlp ZiAocmMgIT0gTkVUX1hNSVRfU1VDQ0VTUykgeworCQkJCWlmIChuZXRfeG1pdF9kcm9wX2NvdW50 KHJjKSkKKwkJCQkJcWRpc2NfcXN0YXRzX2Ryb3Aoc2NoKTsKKwkJCX0gZWxzZSB7CisJCQkJbmIr KzsKKwkJCQlsZW4gKz0gbGFzdF9sZW47CisJCQl9CisJCQlzZWdzID0gc2tiMjsKKwkJfQorCQlz Y2gtPnEucWxlbiArPSBuYjsKKwkJaWYgKG5iID4gMSkKKwkJCXFkaXNjX3RyZWVfcmVkdWNlX2Jh Y2tsb2coc2NoLCAxIC0gbmIsIHByZXZfbGVuIC0gbGVuKTsKKwl9CiAJcmV0dXJuIE5FVF9YTUlU X1NVQ0NFU1M7CiB9CiAKLS0gCjIuMS4wCgoKRnJvbSBlNjAyZjlmZjJlNjFlMDU4OWYzODFmZjhk NDg3MWIxZjBlODc3NTY5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGFzIERp Y2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+CkRhdGU6IFR1ZSwgMyBNYXkgMjAxNiAw OTo1ODoyNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzAvNDJdIGlwdjYvaWxhOiBmaXggbmxzaXpl IGNhbGN1bGF0aW9uIGZvciBsd3R1bm5lbAoKWyBVcHN0cmVhbSBjb21taXQgNzllOGRjOGI4MGJm ZjBiYzViYmI5MGNhNWU3MzA0NGJmMjA3YzhhYyBdCgpUaGUgaGFuZGxlciAnaWxhX2ZpbGxfZW5j YXBfaW5mbycgYWRkcyBvbmUgYXR0cmlidXRlOiBJTEFfQVRUUl9MT0NBVE9SLgoKRml4ZXM6IDY1 ZDdhYjhkZTU4MiAoIm5ldDogSWRlbnRpZmllciBMb2NhdG9yIEFkZHJlc3NpbmcgbW9kdWxlIikK Q0M6IFRvbSBIZXJiZXJ0IDx0b21AaGVyYmVydGxhbmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBOaWNv bGFzIERpY2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pbGEvaWxh X2x3dC5jIHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pbGEvaWxhX2x3dC5jIGIvbmV0L2lwdjYvaWxh L2lsYV9sd3QuYwppbmRleCAyYWUzYzRmLi40MWYxOGRlIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9p bGEvaWxhX2x3dC5jCisrKyBiL25ldC9pcHY2L2lsYS9pbGFfbHd0LmMKQEAgLTEyMCw4ICsxMjAs NyBAQCBubGFfcHV0X2ZhaWx1cmU6CiAKIHN0YXRpYyBpbnQgaWxhX2VuY2FwX25sc2l6ZShzdHJ1 Y3QgbHd0dW5uZWxfc3RhdGUgKmx3dHN0YXRlKQogewotCS8qIE5vIGVuY2Fwc3VsYXRpb24gb3Zl cmhlYWQgKi8KLQlyZXR1cm4gMDsKKwlyZXR1cm4gbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkp OyAvKiBJTEFfQVRUUl9MT0NBVE9SICovCiB9CiAKIHN0YXRpYyBpbnQgaWxhX2VuY2FwX2NtcChz dHJ1Y3QgbHd0dW5uZWxfc3RhdGUgKmEsIHN0cnVjdCBsd3R1bm5lbF9zdGF0ZSAqYikKLS0gCjIu MS4wCgoKRnJvbSA2MGVmYzVhYzE1NDY3NjY1MThiZWM1YjM2YzhjZmUwZWMzNzBiNTJkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VXdlPTIwS2xlaW5lLUs9QzM9QjZu aWc/PSA8dS5rbGVpbmUta29lbmlnQHBlbmd1dHJvbml4LmRlPgpEYXRlOiBUdWUsIDMgTWF5IDIw MTYgMTY6Mzg6NTMgKzAyMDAKU3ViamVjdDogW1BBVENIIDMxLzQyXSBuZXQ6IGZlYzogb25seSBj bGVhciBhIHF1ZXVlJ3Mgd29yayBiaXQgaWYgdGhlIHF1ZXVlCiB3YXMgZW1wdGllZApNSU1FLVZl cnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgMWMwMjFiYjcxN2E3 MGFhZWFhNGIyNWM5MWY0M2MyYWVkZGQ5MjJkZSBdCgpJbiB0aGUgcmVjZWl2ZSBwYXRoIGEgcXVl dWUncyB3b3JrIGJpdCB3YXMgY2xlYXJlZCB1bmNvbmRpdGlvbmFsbHkgZXZlbgppZiBmZWNfZW5l dF9yeF9xdWV1ZSBvbmx5IHJlYWQgb3V0IGEgcGFydCBvZiB0aGUgYXZhaWxhYmxlIHBhY2tldHMg ZnJvbQp0aGUgaGFyZHdhcmUuIFRoaXMgcmVzdWx0ZWQgaW4gbm90IHJlYWRpbmcgYW55IHBhY2tl dHMgaW4gdGhlIG5leHQgbmFwaQp0dXJuIGFuZCBzbyBwYWNrZXRzIHdlcmUgZGVsYXllZCBvciBs b3N0LgoKVGhlIG9idmlvdXMgZml4IGlzIHRvIG9ubHkgY2xlYXIgYSBxdWV1ZSdzIGJpdCB3aGVu IHRoZSBxdWV1ZSB3YXMKZW1wdGllZC4KCkZpeGVzOiA0ZDQ5NGNkYzkyYjMgKCJuZXQ6IGZlYzog Y2hhbmdlIGRhdGEgc3RydWN0dXJlIHRvIHN1cHBvcnQgbXVsdGlxdWV1ZSIpClNpZ25lZC1vZmYt Ynk6IFV3ZSBLbGVpbmUtS8O2bmlnIDx1LmtsZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+ClJl dmlld2VkLWJ5OiBMdWNhcyBTdGFjaCA8bC5zdGFjaEBwZW5ndXRyb25peC5kZT4KVGVzdGVkLWJ5 OiBGdWdhbmcgRHVhbiA8ZnVnYW5nLmR1YW5AbnhwLmNvbT4KQWNrZWQtYnk6IEZ1Z2FuZyBEdWFu IDxmdWdhbmcuZHVhbkBueHAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2Zl Y19tYWluLmMgfCAxMCArKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVz Y2FsZS9mZWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWlu LmMKaW5kZXggNDFjODFmNi4uMGQ2ZThjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNj YWxlL2ZlY19tYWluLmMKQEAgLTE1NjYsOSArMTU2NiwxNSBAQCBmZWNfZW5ldF9yeChzdHJ1Y3Qg bmV0X2RldmljZSAqbmRldiwgaW50IGJ1ZGdldCkKIAlzdHJ1Y3QgZmVjX2VuZXRfcHJpdmF0ZSAq ZmVwID0gbmV0ZGV2X3ByaXYobmRldik7CiAKIAlmb3JfZWFjaF9zZXRfYml0KHF1ZXVlX2lkLCAm ZmVwLT53b3JrX3J4LCBGRUNfRU5FVF9NQVhfUlhfUVMpIHsKLQkJY2xlYXJfYml0KHF1ZXVlX2lk LCAmZmVwLT53b3JrX3J4KTsKLQkJcGt0X3JlY2VpdmVkICs9IGZlY19lbmV0X3J4X3F1ZXVlKG5k ZXYsCisJCWludCByZXQ7CisKKwkJcmV0ID0gZmVjX2VuZXRfcnhfcXVldWUobmRldiwKIAkJCQkJ YnVkZ2V0IC0gcGt0X3JlY2VpdmVkLCBxdWV1ZV9pZCk7CisKKwkJaWYgKHJldCA8IGJ1ZGdldCAt IHBrdF9yZWNlaXZlZCkKKwkJCWNsZWFyX2JpdChxdWV1ZV9pZCwgJmZlcC0+d29ya19yeCk7CisK KwkJcGt0X3JlY2VpdmVkICs9IHJldDsKIAl9CiAJcmV0dXJuIHBrdF9yZWNlaXZlZDsKIH0KLS0g CjIuMS4wCgoKRnJvbSA3YjIxMjgwNTc3YWNiOTc0NmE0M2IzYjEwNGZkNzQ1MWJkMTY0MjFmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLYW5namllIEx1IDxrYW5namllbHVAZ21haWwu Y29tPgpEYXRlOiBUdWUsIDMgTWF5IDIwMTYgMTY6MzU6MDUgLTA0MDAKU3ViamVjdDogW1BBVENI IDMyLzQyXSBuZXQ6IGZpeCBpbmZvbGVhayBpbiBsbGMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVu dC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rp bmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGI4NjcwYzA5ZjM3YmRmMjg0N2NjNDRmMzY1MTFh NTNhZmM2MTYxZmQgXQoKVGhlIHN0YWNrIG9iamVjdCDigJxpbmZv4oCdIGhhcyBhIHRvdGFsIHNp emUgb2YgMTIgYnl0ZXMuIEl0cyBsYXN0IGJ5dGUKaXMgcGFkZGluZyB3aGljaCBpcyBub3QgaW5p dGlhbGl6ZWQgYW5kIGxlYWtlZCB2aWEg4oCccHV0X2Ntc2figJ0uCgpTaWduZWQtb2ZmLWJ5OiBL YW5namllIEx1IDxramx1QGdhdGVjaC5lZHU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbGxjL2FmX2xsYy5jIHwgMSArCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvbGxjL2FmX2xsYy5j IGIvbmV0L2xsYy9hZl9sbGMuYwppbmRleCA4ZGFiNGU1Li5iYjhlZGI5IDEwMDY0NAotLS0gYS9u ZXQvbGxjL2FmX2xsYy5jCisrKyBiL25ldC9sbGMvYWZfbGxjLmMKQEAgLTYyNiw2ICs2MjYsNyBA QCBzdGF0aWMgdm9pZCBsbGNfY21zZ19yY3Yoc3RydWN0IG1zZ2hkciAqbXNnLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiKQogCWlmIChsbGMtPmNtc2dfZmxhZ3MgJiBMTENfQ01TR19QS1RJTkZPKSB7CiAJ CXN0cnVjdCBsbGNfcGt0aW5mbyBpbmZvOwogCisJCW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKGlu Zm8pKTsKIAkJaW5mby5scGlfaWZpbmRleCA9IGxsY19zayhza2ItPnNrKS0+ZGV2LT5pZmluZGV4 OwogCQlsbGNfcGR1X2RlY29kZV9kc2FwKHNrYiwgJmluZm8ubHBpX3NhcCk7CiAJCWxsY19wZHVf ZGVjb2RlX2RhKHNrYiwgaW5mby5scGlfbWFjKTsKLS0gCjIuMS4wCgoKRnJvbSA4NDNlMzFhOWI2 YTFmZDQyMGNhMmU4MTFiYTEwNmJjOGEyMjI2MTI3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBLYW5namllIEx1IDxrYW5namllbHVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDMgTWF5IDIw MTYgMTY6NDY6MjQgLTA0MDAKU3ViamVjdDogW1BBVENIIDMzLzQyXSBuZXQ6IGZpeCBpbmZvbGVh ayBpbiBydG5ldGxpbmsKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJl YW0gY29tbWl0IDVmOGU0NDc0MWY5ZjIxNmUzMzczNmVhNGVjNjVjYTlhYzAzMDM2ZTYgXQoKVGhl IHN0YWNrIG9iamVjdCDigJxtYXDigJ0gaGFzIGEgdG90YWwgc2l6ZSBvZiAzMiBieXRlcy4gSXRz IGxhc3QgNApieXRlcyBhcmUgcGFkZGluZyBnZW5lcmF0ZWQgYnkgY29tcGlsZXIuIFRoZXNlIHBh ZGRpbmcgYnl0ZXMgYXJlCm5vdCBpbml0aWFsaXplZCBhbmQgc2VudCBvdXQgdmlhIOKAnG5sYV9w dXTigJ0uCgpTaWduZWQtb2ZmLWJ5OiBLYW5namllIEx1IDxramx1QGdhdGVjaC5lZHU+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv Y29yZS9ydG5ldGxpbmsuYyB8IDE4ICsrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDEwIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUv cnRuZXRsaW5rLmMgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwppbmRleCAyMTVlNjEzLi40ODJjMzcx IDEwMDY0NAotLS0gYS9uZXQvY29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQvY29yZS9ydG5ldGxp bmsuYwpAQCAtMTE3NiwxNCArMTE3NiwxNiBAQCBzdGF0aWMgbm9pbmxpbmVfZm9yX3N0YWNrIGlu dCBydG5sX2ZpbGxfdmZpbmZvKHN0cnVjdCBza19idWZmICpza2IsCiAKIHN0YXRpYyBpbnQgcnRu bF9maWxsX2xpbmtfaWZtYXAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2Ug KmRldikKIHsKLQlzdHJ1Y3QgcnRubF9saW5rX2lmbWFwIG1hcCA9IHsKLQkJLm1lbV9zdGFydCAg ID0gZGV2LT5tZW1fc3RhcnQsCi0JCS5tZW1fZW5kICAgICA9IGRldi0+bWVtX2VuZCwKLQkJLmJh c2VfYWRkciAgID0gZGV2LT5iYXNlX2FkZHIsCi0JCS5pcnEgICAgICAgICA9IGRldi0+aXJxLAot CQkuZG1hICAgICAgICAgPSBkZXYtPmRtYSwKLQkJLnBvcnQgICAgICAgID0gZGV2LT5pZl9wb3J0 LAotCX07CisJc3RydWN0IHJ0bmxfbGlua19pZm1hcCBtYXA7CisKKwltZW1zZXQoJm1hcCwgMCwg c2l6ZW9mKG1hcCkpOworCW1hcC5tZW1fc3RhcnQgICA9IGRldi0+bWVtX3N0YXJ0OworCW1hcC5t ZW1fZW5kICAgICA9IGRldi0+bWVtX2VuZDsKKwltYXAuYmFzZV9hZGRyICAgPSBkZXYtPmJhc2Vf YWRkcjsKKwltYXAuaXJxICAgICAgICAgPSBkZXYtPmlycTsKKwltYXAuZG1hICAgICAgICAgPSBk ZXYtPmRtYTsKKwltYXAucG9ydCAgICAgICAgPSBkZXYtPmlmX3BvcnQ7CisKIAlpZiAobmxhX3B1 dChza2IsIElGTEFfTUFQLCBzaXplb2YobWFwKSwgJm1hcCkpCiAJCXJldHVybiAtRU1TR1NJWkU7 CiAKLS0gCjIuMS4wCgoKRnJvbSBiYzYxY2I5NjYyM2FmYWNlMjQxNmFjMmMxNDVlOTA3ZTI2Njg4 MzY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgSnVyZ2VucyA8ZGFuaWVs akBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgNCBNYXkgMjAxNiAxNTowMDozMyArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMzQvNDJdIG5ldC9tbHg0X2VuOiBGaXggZW5kaWFubmVzcyBidWcgaW4gSVBW NiBjc3VtCiBjYWxjdWxhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgODJkNjkyMDNkZjYzNGI0ZGZh NzY1Yzk0ZjYwY2U5NDgyYmNjNDRkNiBdCgpVc2UgaHRvbnMgaW5zdGVhZCBvZiB1bmNvbmRpdGlv bmFsbHkgYnl0ZSBzd2FwcGluZyBuZXh0aGRyLiAgT24gYSBsaXR0bGUKZW5kaWFuIHN5c3RlbXMg c2hpZnRpbmcgdGhlIGJ5dGUgaXMgY29ycmVjdCBiZWhhdmlvciwgYnV0IGl0IHJlc3VsdHMgaW4K aW5jb3JyZWN0IGNzdW1zIG9uIGJpZyBlbmRpYW4gYXJjaGl0ZWN0dXJlcy4KCkZpeGVzOiBmOGM2 NDU1YmIwNGIgKCduZXQvbWx4NF9lbjogRXh0ZW5kIGNoZWNrc3VtIG9mZmxvYWRpbmcgYnkgQ0hF Q0tTVU0gQ09NUExFVEUnKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSnVyZ2VucyA8ZGFuaWVsakBt ZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBDYXJvbCBTb3RvIDxjbHNvdG9AdXMuaWJtLmNvbT4K VGVzdGVkLWJ5OiBDYXJvbCBTb3RvIDxjbHNvdG9AdXMuaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTog VGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NC9lbl9yeC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NC9lbl9yeC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9l bl9yeC5jCmluZGV4IDQxNDQwYjIuLjAzZWY5YWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg0L2VuX3J4LmMKQEAgLTcwNCw3ICs3MDQsNyBAQCBzdGF0aWMgaW50IGdldF9m aXhlZF9pcHY2X2NzdW0oX193c3VtIGh3X2NoZWNrc3VtLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAog CiAJaWYgKGlwdjZoLT5uZXh0aGRyID09IElQUFJPVE9fRlJBR01FTlQgfHwgaXB2NmgtPm5leHRo ZHIgPT0gSVBQUk9UT19IT1BPUFRTKQogCQlyZXR1cm4gLTE7Ci0JaHdfY2hlY2tzdW0gPSBjc3Vt X2FkZChod19jaGVja3N1bSwgKF9fZm9yY2UgX193c3VtKShpcHY2aC0+bmV4dGhkciA8PCA4KSk7 CisJaHdfY2hlY2tzdW0gPSBjc3VtX2FkZChod19jaGVja3N1bSwgKF9fZm9yY2UgX193c3VtKWh0 b25zKGlwdjZoLT5uZXh0aGRyKSk7CiAKIAljc3VtX3BzZXVkb19oZHIgPSBjc3VtX3BhcnRpYWwo JmlwdjZoLT5zYWRkciwKIAkJCQkgICAgICAgc2l6ZW9mKGlwdjZoLT5zYWRkcikgKyBzaXplb2Yo aXB2NmgtPmRhZGRyKSwgMCk7Ci0tIAoyLjEuMAoKCkZyb20gZTc1NWRiZTM1NDM0YTMzMjk4NmIw YWNjZTE2ODI3OGYxNTFiODMzYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWFuIENh bXBiZWxsIDxpYW4uY2FtcGJlbGxAZG9ja2VyLmNvbT4KRGF0ZTogV2VkLCA0IE1heSAyMDE2IDE0 OjIxOjUzICswMTAwClN1YmplY3Q6IFtQQVRDSCAzNS80Ml0gVlNPQ0s6IGRvIG5vdCBkaXNjb25u ZWN0IHNvY2tldCB3aGVuIHBlZXIgaGFzIHNodXRkb3duCiBTRU5EIG9ubHkKClsgVXBzdHJlYW0g Y29tbWl0IGRlZGM1OGUwNjdkOGMzNzlhMTVhOGExODNjNWRiMzE4MjAxMjk1YmIgXQoKVGhlIHBl ZXIgbWF5IGJlIGV4cGVjdGluZyBhIHJlcGx5IGhhdmluZyBzZW50IGEgcmVxdWVzdCBhbmQgdGhl biBkb25lIGEKc2h1dGRvd24oU0hVVF9XUiksIHNvIHRlYXJpbmcgZG93biB0aGUgd2hvbGUgc29j a2V0IGF0IHRoaXMgcG9pbnQgc2VlbXMKd3JvbmcgYW5kIGJyZWFrcyBmb3IgbWUgd2l0aCBhIGNs aWVudCB3aGljaCBkb2VzIGEgU0hVVF9XUi4KCkxvb2tpbmcgYXQgb3RoZXIgc29ja2V0IGZhbWls eSdzIHN0cmVhbV9yZWN2bXNnIGNhbGxiYWNrcyBkb2luZyBhIHNodXRkb3duCmhlcmUgZG9lcyBu b3Qgc2VlbSB0byBiZSB0aGUgbm9ybSBhbmQgcmVtb3ZpbmcgaXQgZG9lcyBub3Qgc2VlbSB0byBo YXZlCmhhZCBhbnkgYWR2ZXJzZSBlZmZlY3RzIHRoYXQgSSBjYW4gc2VlLgoKSSdtIHVzaW5nIFN0 ZWZhbidzIFJGQyB2aXJ0aW8gdHJhbnNwb3J0IHBhdGNoZXMsIEknbSB1bnN1cmUgb2YgdGhlIGlt cGFjdApvbiB0aGUgdm1jaSB0cmFuc3BvcnQuCgpTaWduZWQtb2ZmLWJ5OiBJYW4gQ2FtcGJlbGwg PGlhbi5jYW1wYmVsbEBkb2NrZXIuY29tPgpDYzogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+CkNjOiBTdGVmYW4gSGFqbm9jemkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+CkNj OiBDbGF1ZGlvIEltYnJlbmRhIDxpbWJyZW5kYUBsaW51eC52bmV0LmlibS5jb20+CkNjOiBBbmR5 IEtpbmcgPGFja2luZ0B2bXdhcmUuY29tPgpDYzogRG1pdHJ5IFRvcm9raG92IDxkdG9yQHZtd2Fy ZS5jb20+CkNjOiBKb3JnZW4gSGFuc2VuIDxqaGFuc2VuQHZtd2FyZS5jb20+CkNjOiBBZGl0IFJh bmFkaXZlIDxhZGl0ckB2bXdhcmUuY29tPgpDYzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZwpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L3Ztd192c29jay9hZl92c29jay5jIHwgMjEgKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC92bXdfdnNvY2svYWZfdnNvY2suYyBiL25ldC92bXdfdnNvY2svYWZfdnNvY2suYwppbmRleCBi YmU2NWRjLi5jOTNlNjdiIDEwMDY0NAotLS0gYS9uZXQvdm13X3Zzb2NrL2FmX3Zzb2NrLmMKKysr IGIvbmV0L3Ztd192c29jay9hZl92c29jay5jCkBAIC0xNzg5LDI3ICsxNzg5LDggQEAgdnNvY2tf c3RyZWFtX3JlY3Ztc2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBz aXplX3QgbGVuLAogCWVsc2UgaWYgKHNrLT5za19zaHV0ZG93biAmIFJDVl9TSFVURE9XTikKIAkJ ZXJyID0gMDsKIAotCWlmIChjb3BpZWQgPiAwKSB7Ci0JCS8qIFdlIG9ubHkgZG8gdGhlc2UgYWRk aXRpb25hbCBib29ra2VlcGluZy9ub3RpZmljYXRpb24gc3RlcHMKLQkJICogaWYgd2UgYWN0dWFs bHkgY29waWVkIHNvbWV0aGluZyBvdXQgb2YgdGhlIHF1ZXVlIHBhaXIKLQkJICogaW5zdGVhZCBv ZiBqdXN0IHBlZWtpbmcgYWhlYWQuCi0JCSAqLwotCi0JCWlmICghKGZsYWdzICYgTVNHX1BFRUsp KSB7Ci0JCQkvKiBJZiB0aGUgb3RoZXIgc2lkZSBoYXMgc2h1dGRvd24gZm9yIHNlbmRpbmcgYW5k IHRoZXJlCi0JCQkgKiBpcyBub3RoaW5nIG1vcmUgdG8gcmVhZCwgdGhlbiBtb2RpZnkgdGhlIHNv Y2tldAotCQkJICogc3RhdGUuCi0JCQkgKi8KLQkJCWlmICh2c2stPnBlZXJfc2h1dGRvd24gJiBT RU5EX1NIVVRET1dOKSB7Ci0JCQkJaWYgKHZzb2NrX3N0cmVhbV9oYXNfZGF0YSh2c2spIDw9IDAp IHsKLQkJCQkJc2stPnNrX3N0YXRlID0gU1NfVU5DT05ORUNURUQ7Ci0JCQkJCXNvY2tfc2V0X2Zs YWcoc2ssIFNPQ0tfRE9ORSk7Ci0JCQkJCXNrLT5za19zdGF0ZV9jaGFuZ2Uoc2spOwotCQkJCX0K LQkJCX0KLQkJfQorCWlmIChjb3BpZWQgPiAwKQogCQllcnIgPSBjb3BpZWQ7Ci0JfQogCiBvdXQ6 CiAJcmVsZWFzZV9zb2NrKHNrKTsKLS0gCjIuMS4wCgoKRnJvbSBlYWZiY2UyMGEyNDk2YzUzOGM5 MGEzODI1NzEyZjIxNGQ0MGZmNTlhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtv bGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFdlZCwg NCBNYXkgMjAxNiAxNjoxODo0NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzYvNDJdIG5ldDogYnJp ZGdlOiBmaXggb2xkIGlvY3RsIHVubG9ja2VkIG5ldCBkZXZpY2Ugd2FsawoKWyBVcHN0cmVhbSBj b21taXQgMzFjYTA0NThhNjFhNTAyYWRiN2VkMTkyYmY5NzE2YzZkMDU3OTFhNSBdCgpnZXRfYnJp ZGdlX2lmaW5kaWNlcygpIGlzIHVzZWQgZnJvbSB0aGUgb2xkICJkZXZpY2VsZXNzIiBicmlkZ2Ug aW9jdGwKY2FsbHMgd2hpY2ggYXJlbid0IGNhbGxlZCB3aXRoIHJ0bmwgaGVsZC4gVGhlIGNvbW1l bnQgYWJvdmUgc2F5cyB0aGF0IGl0IGlzCmNhbGxlZCB3aXRoIHJ0bmwgYnV0IHRoYXQgaXMgbm90 IHJlYWxseSB0aGUgY2FzZS4KSGVyZSdzIGEgc2FtcGxlIG91dHB1dCBmcm9tIGEgdGVzdCBBU1NF UlRfUlROTCgpIHdoaWNoIEkgcHV0IGluCmdldF9icmlkZ2VfaWZpbmRpY2VzIGFuZCBleGVjdXRl ZCAiYnJjdGwgc2hvdyI6ClsgIDk1Ny40MjI3MjZdIFJUTkw6IGFzc2VydGlvbiBmYWlsZWQgYXQg bmV0L2JyaWRnZS8vYnJfaW9jdGwuYyAoMzApClsgIDk1Ny40MjI5MjVdIENQVTogMCBQSUQ6IDE4 NjIgQ29tbTogYnJjdGwgVGFpbnRlZDogRyAgICAgICAgVyAgTwo0LjYuMC1yYzQrICMxNTcKWyAg OTU3LjQyMzAwOV0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJ WCwgMTk5NiksCkJJT1MgMS44LjEtMjAxNTAzMThfMTgzMzU4LSAwNC8wMS8yMDE0ClsgIDk1Ny40 MjMwMDldICAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAwNThhZGZkZjAgZmZmZmZmZmY4MTM4ZGVj NQowMDAwMDAwMDAwMDAwNDAwClsgIDk1Ny40MjMwMDldICBmZmZmZmZmZjgxY2U4MzgwIGZmZmY4 ODAwNThhZGZlNTggZmZmZmZmZmZhMDVlYWQzMgowMDAwMDAwMDAwMDAwMDAxClsgIDk1Ny40MjMw MDldICAwMDAwN2ZmZWMxYTQ0NGIwIDAwMDAwMDAwMDAwMDA0MDAgZmZmZjg4MDA1M2MxOTEzMAow MDAwMDAwMDAwMDA4OTQwClsgIDk1Ny40MjMwMDldIENhbGwgVHJhY2U6ClsgIDk1Ny40MjMwMDld ICBbPGZmZmZmZmZmODEzOGRlYzU+XSBkdW1wX3N0YWNrKzB4ODUvMHhjMApbICA5NTcuNDIzMDA5 XSAgWzxmZmZmZmZmZmEwNWVhZDMyPl0KYnJfaW9jdGxfZGV2aWNlbGVzc19zdHViKzB4MjEyLzB4 MmUwIFticmlkZ2VdClsgIDk1Ny40MjMwMDldICBbPGZmZmZmZmZmODE1MTViZWI+XSBzb2NrX2lv Y3RsKzB4MjJiLzB4MjkwClsgIDk1Ny40MjMwMDldICBbPGZmZmZmZmZmODEyNmJhNzU+XSBkb192 ZnNfaW9jdGwrMHg5NS8weDcwMApbICA5NTcuNDIzMDA5XSAgWzxmZmZmZmZmZjgxMjZjMTU5Pl0g U3lTX2lvY3RsKzB4NzkvMHg5MApbICA5NTcuNDIzMDA5XSAgWzxmZmZmZmZmZjgxNjNhNGMwPl0g ZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDIzLzB4YzEKClNpbmNlIGl0IG9ubHkgcmVhZHMg YnJpZGdlIGlmaW5kaWNlcywgd2UgY2FuIHVzZSByY3UgdG8gc2FmZWx5IHdhbGsgdGhlIG5ldApk ZXZpY2UgbGlzdC4gQWxzbyByZW1vdmUgdGhlIHdyb25nIHJ0bmwgY29tbWVudCBhYm92ZS4KClNp Z25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtz LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9icmlkZ2UvYnJfaW9jdGwuYyB8IDUgKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9i cl9pb2N0bC5jIGIvbmV0L2JyaWRnZS9icl9pb2N0bC5jCmluZGV4IDI2M2I0ZGUuLjYwYTNkYmYg MTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfaW9jdGwuYworKysgYi9uZXQvYnJpZGdlL2JyX2lv Y3RsLmMKQEAgLTIxLDE4ICsyMSwxOSBAQAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5j bHVkZSAiYnJfcHJpdmF0ZS5oIgogCi0vKiBjYWxsZWQgd2l0aCBSVE5MICovCiBzdGF0aWMgaW50 IGdldF9icmlkZ2VfaWZpbmRpY2VzKHN0cnVjdCBuZXQgKm5ldCwgaW50ICppbmRpY2VzLCBpbnQg bnVtKQogewogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7CiAJaW50IGkgPSAwOwogCi0JZm9yX2Vh Y2hfbmV0ZGV2KG5ldCwgZGV2KSB7CisJcmN1X3JlYWRfbG9jaygpOworCWZvcl9lYWNoX25ldGRl dl9yY3UobmV0LCBkZXYpIHsKIAkJaWYgKGkgPj0gbnVtKQogCQkJYnJlYWs7CiAJCWlmIChkZXYt PnByaXZfZmxhZ3MgJiBJRkZfRUJSSURHRSkKIAkJCWluZGljZXNbaSsrXSA9IGRldi0+aWZpbmRl eDsKIAl9CisJcmN1X3JlYWRfdW5sb2NrKCk7CiAKIAlyZXR1cm4gaTsKIH0KLS0gCjIuMS4wCgoK RnJvbSBjYjdiMGMxNTI5YmZkNTVjZjA2MDBiMjk4YzU0NjdkYjQyYTY3ZGJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TGludXM9MjBMPUMzPUJDc3Npbmc/PSA8bGlu dXMubHVlc3NpbmdAYzBkMy5ibHVlPgpEYXRlOiBXZWQsIDQgTWF5IDIwMTYgMTc6MjU6MDIgKzAy MDAKU3ViamVjdDogW1BBVENIIDM3LzQyXSBicmlkZ2U6IGZpeCBpZ21wIC8gbWxkIHF1ZXJ5IHBh cnNpbmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0 IDg1NmNlNWQwODNlMTQ1NzFkMDUxMzAxZmUzYzY1YjMyYjhjYmUzMjEgXQoKV2l0aCB0aGUgbmV3 bHkgaW50cm9kdWNlZCBoZWxwZXIgZnVuY3Rpb25zIHRoZSBza2IgcHVsbGluZyBpcyBoaWRkZW4K aW4gdGhlIGNoZWNrc3VtbWluZyBmdW5jdGlvbiAtIGFuZCB1bmRvbmUgYmVmb3JlIHJldHVybmlu ZyB0byB0aGUKY2FsbGVyLgoKVGhlIElHTVAgYW5kIE1MRCBxdWVyeSBwYXJzaW5nIGZ1bmN0aW9u cyBpbiB0aGUgYnJpZGdlIHN0aWxsCmFzc3VtZWQgdGhhdCB0aGUgc2tiIGlzIHBvaW50aW5nIHRv IHRoZSBiZWdpbm5pbmcgb2YgdGhlIElHTVAvTUxECm1lc3NhZ2Ugd2hpbGUgaXQgaXMgbm93IGtl cHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgSVB2NC82IGhlYWRlci4KCklmIHRoZXJlIGlzIGEg cXVlcmllciBzb21ld2hlcmUgZWxzZSwgdGhlbiB0aGlzIGVpdGhlciBjYXVzZXMKdGhlIG11bHRp Y2FzdCBzbm9vcGluZyB0byBzdGF5IGRpc2FibGVkIGV2ZW4gdGhvdWdoIGl0IGNvdWxkIGJlCmVu YWJsZWQuIE9yLCBpZiB3ZSBoYXZlIHRoZSBxdWVyaWVyIGVuYWJsZWQgdG9vLCB0aGVuIHRoaXMg Y2FuCmNyZWF0ZSB1bm5lY2Vzc2FyeSBJR01QIC8gTUxEIHF1ZXJ5IG1lc3NhZ2VzIG9uIHRoZSBs aW5rLgoKRml4aW5nIHRoaXMgYnkgdGFraW5nIHRoZSBvZmZzZXQgYmV0d2VlbiBJUCBhbmQgSUdN UC9NTEQgaGVhZGVyIGludG8KYWNjb3VudCwgdG9vLgoKRml4ZXM6IDlhZmQ4NWM5ZTQ1NSAoIm5l dDogRXhwb3J0IElHTVAvTUxEIG1lc3NhZ2UgdmFsaWRhdGlvbiBjb2RlIikKUmVwb3J0ZWQtYnk6 IFNpbW9uIFd1bmRlcmxpY2ggPHN3QHNpbW9ud3VuZGVybGljaC5kZT4KU2lnbmVkLW9mZi1ieTog TGludXMgTMO8c3NpbmcgPGxpbnVzLmx1ZXNzaW5nQGMwZDMuYmx1ZT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2UvYnJf bXVsdGljYXN0LmMgfCAxMiArKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9tdWx0aWNh c3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKaW5kZXggMDM2NjFkOS4uZWE5ODkzNyAx MDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYworKysgYi9uZXQvYnJpZGdlL2Jy X211bHRpY2FzdC5jCkBAIC0xMjcwLDYgKzEyNzAsNyBAQCBzdGF0aWMgaW50IGJyX2lwNF9tdWx0 aWNhc3RfcXVlcnkoc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCXN0cnVjdCBicl9pcCBzYWRkcjsK IAl1bnNpZ25lZCBsb25nIG1heF9kZWxheTsKIAl1bnNpZ25lZCBsb25nIG5vdyA9IGppZmZpZXM7 CisJdW5zaWduZWQgaW50IG9mZnNldCA9IHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYik7CiAJX19i ZTMyIGdyb3VwOwogCWludCBlcnIgPSAwOwogCkBAIC0xMjgwLDE0ICsxMjgxLDE0IEBAIHN0YXRp YyBpbnQgYnJfaXA0X211bHRpY2FzdF9xdWVyeShzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiAKIAln cm91cCA9IGloLT5ncm91cDsKIAotCWlmIChza2ItPmxlbiA9PSBzaXplb2YoKmloKSkgeworCWlm IChza2ItPmxlbiA9PSBvZmZzZXQgKyBzaXplb2YoKmloKSkgewogCQltYXhfZGVsYXkgPSBpaC0+ Y29kZSAqIChIWiAvIElHTVBfVElNRVJfU0NBTEUpOwogCiAJCWlmICghbWF4X2RlbGF5KSB7CiAJ CQltYXhfZGVsYXkgPSAxMCAqIEhaOwogCQkJZ3JvdXAgPSAwOwogCQl9Ci0JfSBlbHNlIGlmIChz a2ItPmxlbiA+PSBzaXplb2YoKmloMykpIHsKKwl9IGVsc2UgaWYgKHNrYi0+bGVuID49IG9mZnNl dCArIHNpemVvZigqaWgzKSkgewogCQlpaDMgPSBpZ21wdjNfcXVlcnlfaGRyKHNrYik7CiAJCWlm IChpaDMtPm5zcmNzKQogCQkJZ290byBvdXQ7CkBAIC0xMzQ4LDYgKzEzNDksNyBAQCBzdGF0aWMg aW50IGJyX2lwNl9tdWx0aWNhc3RfcXVlcnkoc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCXN0cnVj dCBicl9pcCBzYWRkcjsKIAl1bnNpZ25lZCBsb25nIG1heF9kZWxheTsKIAl1bnNpZ25lZCBsb25n IG5vdyA9IGppZmZpZXM7CisJdW5zaWduZWQgaW50IG9mZnNldCA9IHNrYl90cmFuc3BvcnRfb2Zm c2V0KHNrYik7CiAJY29uc3Qgc3RydWN0IGluNl9hZGRyICpncm91cCA9IE5VTEw7CiAJYm9vbCBp c19nZW5lcmFsX3F1ZXJ5OwogCWludCBlcnIgPSAwOwpAQCAtMTM1Nyw4ICsxMzU5LDggQEAgc3Rh dGljIGludCBicl9pcDZfbXVsdGljYXN0X3F1ZXJ5KHN0cnVjdCBuZXRfYnJpZGdlICpiciwKIAkg ICAgKHBvcnQgJiYgcG9ydC0+c3RhdGUgPT0gQlJfU1RBVEVfRElTQUJMRUQpKQogCQlnb3RvIG91 dDsKIAotCWlmIChza2ItPmxlbiA9PSBzaXplb2YoKm1sZCkpIHsKLQkJaWYgKCFwc2tiX21heV9w dWxsKHNrYiwgc2l6ZW9mKCptbGQpKSkgeworCWlmIChza2ItPmxlbiA9PSBvZmZzZXQgKyBzaXpl b2YoKm1sZCkpIHsKKwkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgb2Zmc2V0ICsgc2l6ZW9mKCpt bGQpKSkgewogCQkJZXJyID0gLUVJTlZBTDsKIAkJCWdvdG8gb3V0OwogCQl9CkBAIC0xMzY3LDcg KzEzNjksNyBAQCBzdGF0aWMgaW50IGJyX2lwNl9tdWx0aWNhc3RfcXVlcnkoc3RydWN0IG5ldF9i cmlkZ2UgKmJyLAogCQlpZiAobWF4X2RlbGF5KQogCQkJZ3JvdXAgPSAmbWxkLT5tbGRfbWNhOwog CX0gZWxzZSB7Ci0JCWlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZigqbWxkMnEpKSkgewor CQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBvZmZzZXQgKyBzaXplb2YoKm1sZDJxKSkpIHsKIAkJ CWVyciA9IC1FSU5WQUw7CiAJCQlnb3RvIG91dDsKIAkJfQotLSAKMi4xLjAKCgpGcm9tIDJkMDVm OWJkODRkYTIyZWRjNzdkMmNkYzVhZjdiNTZmMmM1NDA3NzQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IE1pa2tvIFJhcGVsaSA8bWlra28ucmFwZWxpQGlraS5maT4KRGF0ZTogU3VuLCAy NCBBcHIgMjAxNiAxNzo0NTowMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzgvNDJdIHVhcGkgZ2xp YmMgY29tcGF0OiBmaXggY29tcGlsZSBlcnJvcnMgd2hlbiBnbGliYwogbmV0L2lmLmggaW5jbHVk ZWQgYmVmb3JlIGxpbnV4L2lmLmgKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsg VXBzdHJlYW0gY29tbWl0IDRhOTFjYjYxYmI5OTVlNTU3MTA5ODE4ODA5MmUyOTYxOTIzMDljNzcg XQoKZ2xpYmMncyBuZXQvaWYuaCBjb250YWlucyBjb3BpZXMgb2YgZGVmaW5pdGlvbnMgZnJvbSBs aW51eC9pZi5oIGFuZCB0aGVzZQpjb25mbGljdCBhbmQgY2F1c2UgYnVpbGQgZmFpbHVyZXMgaWYg Ym90aCBmaWxlcyBhcmUgaW5jbHVkZWQgYnkgYXBwbGljYXRpb24Kc291cmNlIGNvZGUuIENoYW5n ZXMgaW4gdWFwaSBoZWFkZXJzLCB3aGljaCBmaXhlZCBoZWFkZXIgZmlsZSBkZXBlbmRlbmNpZXMg dG8KaW5jbHVkZSBsaW51eC9pZi5oIHdoZW4gaXQgd2FzIG5lZWRlZCwgZS5nLiBjb21taXQgMWZm YWQ4M2QsIG1hZGUgdGhlCm5ldC9pZi5oIGFuZCBsaW51eC9pZi5oIGluY29tcGF0aWJpbGl0aWVz IHZpc2libGUgYXMgYnVpbGQgZmFpbHVyZXMgZm9yCnVzZXJzcGFjZSBhcHBsaWNhdGlvbnMgbGlr ZSBpcHJvdXRlMiBhbmQgeHRhYmxlcy1hZGRvbnMuCgpUaGlzIHBhdGNoIGZpeGVzIGNvbXBpbGUg ZXJyb3JzIHdoZW4gZ2xpYmMgbmV0L2lmLmggaXMgaW5jbHVkZWQgYmVmb3JlCmxpbnV4L2lmLmg6 CgouL2xpbnV4L2lmLmg6OTk6MjE6IGVycm9yOiByZWRlY2xhcmF0aW9uIG9mIGVudW1lcmF0b3Ig 4oCYSUZGX05PQVJQ4oCZCi4vbGludXgvaWYuaDo5ODoyMzogZXJyb3I6IHJlZGVjbGFyYXRpb24g b2YgZW51bWVyYXRvciDigJhJRkZfUlVOTklOR+KAmQouL2xpbnV4L2lmLmg6OTc6MjY6IGVycm9y OiByZWRlY2xhcmF0aW9uIG9mIGVudW1lcmF0b3Ig4oCYSUZGX05PVFJBSUxFUlPigJkKLi9saW51 eC9pZi5oOjk2OjI3OiBlcnJvcjogcmVkZWNsYXJhdGlvbiBvZiBlbnVtZXJhdG9yIOKAmElGRl9Q T0lOVE9QT0lOVOKAmQouL2xpbnV4L2lmLmg6OTU6MjQ6IGVycm9yOiByZWRlY2xhcmF0aW9uIG9m IGVudW1lcmF0b3Ig4oCYSUZGX0xPT1BCQUNL4oCZCi4vbGludXgvaWYuaDo5NDoyMTogZXJyb3I6 IHJlZGVjbGFyYXRpb24gb2YgZW51bWVyYXRvciDigJhJRkZfREVCVUfigJkKLi9saW51eC9pZi5o OjkzOjI1OiBlcnJvcjogcmVkZWNsYXJhdGlvbiBvZiBlbnVtZXJhdG9yIOKAmElGRl9CUk9BRENB U1TigJkKLi9saW51eC9pZi5oOjkyOjE5OiBlcnJvcjogcmVkZWNsYXJhdGlvbiBvZiBlbnVtZXJh dG9yIOKAmElGRl9VUOKAmQouL2xpbnV4L2lmLmg6MjUyOjg6IGVycm9yOiByZWRlZmluaXRpb24g b2Yg4oCYc3RydWN0IGlmY29uZuKAmQouL2xpbnV4L2lmLmg6MjAzOjg6IGVycm9yOiByZWRlZmlu aXRpb24gb2Yg4oCYc3RydWN0IGlmcmVx4oCZCi4vbGludXgvaWYuaDoxNjk6ODogZXJyb3I6IHJl ZGVmaW5pdGlvbiBvZiDigJhzdHJ1Y3QgaWZtYXDigJkKLi9saW51eC9pZi5oOjEwNzoyMzogZXJy b3I6IHJlZGVjbGFyYXRpb24gb2YgZW51bWVyYXRvciDigJhJRkZfRFlOQU1JQ+KAmQouL2xpbnV4 L2lmLmg6MTA2OjI1OiBlcnJvcjogcmVkZWNsYXJhdGlvbiBvZiBlbnVtZXJhdG9yIOKAmElGRl9B VVRPTUVESUHigJkKLi9saW51eC9pZi5oOjEwNToyMzogZXJyb3I6IHJlZGVjbGFyYXRpb24gb2Yg ZW51bWVyYXRvciDigJhJRkZfUE9SVFNFTOKAmQouL2xpbnV4L2lmLmg6MTA0OjI1OiBlcnJvcjog cmVkZWNsYXJhdGlvbiBvZiBlbnVtZXJhdG9yIOKAmElGRl9NVUxUSUNBU1TigJkKLi9saW51eC9p Zi5oOjEwMzoyMTogZXJyb3I6IHJlZGVjbGFyYXRpb24gb2YgZW51bWVyYXRvciDigJhJRkZfU0xB VkXigJkKLi9saW51eC9pZi5oOjEwMjoyMjogZXJyb3I6IHJlZGVjbGFyYXRpb24gb2YgZW51bWVy YXRvciDigJhJRkZfTUFTVEVS4oCZCi4vbGludXgvaWYuaDoxMDE6MjQ6IGVycm9yOiByZWRlY2xh cmF0aW9uIG9mIGVudW1lcmF0b3Ig4oCYSUZGX0FMTE1VTFRJ4oCZCi4vbGludXgvaWYuaDoxMDA6 MjM6IGVycm9yOiByZWRlY2xhcmF0aW9uIG9mIGVudW1lcmF0b3Ig4oCYSUZGX1BST01JU0PigJkK ClRoZSBjYXNlcyB3aGVyZSBsaW51eC9pZi5oIGlzIGluY2x1ZGVkIGJlZm9yZSBuZXQvaWYuaCBu ZWVkIGEgc2ltaWxhciBmaXggaW4KdGhlIGdsaWJjIHNpZGUsIG9yIHRoZSBvcmRlciBvZiBpbmNs dWRlIGZpbGVzIGNhbiBiZSBjaGFuZ2VkIHVzZXJzcGFjZQpjb2RlIGFzIGEgd29ya2Fyb3VuZC4K ClRoaXMgY2hhbmdlIHdhcyB0ZXN0ZWQgaW4geDg2IHVzZXJzcGFjZSBvbiBEZWJpYW4gdW5zdGFi bGUgd2l0aApzY3JpcHRzL2hlYWRlcnNfY29tcGlsZV90ZXN0LnNoOgoKJCBtYWtlIGhlYWRlcnNf aW5zdGFsbCAmJiBcCiAgY2QgdXNyL2luY2x1ZGUgJiYgLi4vLi4vc2NyaXB0cy9oZWFkZXJzX2Nv bXBpbGVfdGVzdC5zaCAtbCAtawouLi4KY2MgLVdhbGwgLWMgLW5vc3RkaW5jIC1JIC91c3IvbGli L2djYy9pNTg2LWxpbnV4LWdudS81L2luY2x1ZGUgLUkgL3Vzci9saWIvZ2NjL2k1ODYtbGludXgt Z251LzUvaW5jbHVkZS1maXhlZCAtSSAuIC1JIC9ob21lL21jZnJpc2svc3JjL2xpbnV4LTIuNi91 c3IvaGVhZGVyc19jb21waWxlX3Rlc3RfaW5jbHVkZS4ydVgyekggLUkgL2hvbWUvbWNmcmlzay9z cmMvbGludXgtMi42L3Vzci9oZWFkZXJzX2NvbXBpbGVfdGVzdF9pbmNsdWRlLjJ1WDJ6SC9pNTg2 LWxpbnV4LWdudSAtbyAvZGV2L251bGwgLi9saW51eC9pZi5oX2xpYmNfYmVmb3JlX2tlcm5lbC5o ClBBU1NFRCBsaWJjIGJlZm9yZSBrZXJuZWwgdGVzdDogLi9saW51eC9pZi5oCgpSZXBvcnRlZC1i eTogSmFuIEVuZ2VsaGFyZHQgPGplbmdlbGhAaW5haS5kZT4KUmVwb3J0ZWQtYnk6IEpvc2ggQm95 ZXIgPGp3Ym95ZXJAZmVkb3JhcHJvamVjdC5vcmc+ClJlcG9ydGVkLWJ5OiBTdGVwaGVuIEhlbW1p bmdlciA8c2hlbW1pbmdAYnJvY2FkZS5jb20+ClJlcG9ydGVkLWJ5OiBXYWxkZW1hciBCcm9ka29y YiA8bWFpbEB3YWxkZW1hci1icm9ka29yYi5kZT4KQ2M6IEdhYnJpZWwgTGFza2FyIDxnYWJyaWVs QGxzZS5lcGl0YS5mcj4KU2lnbmVkLW9mZi1ieTogTWlra28gUmFwZWxpIDxtaWtrby5yYXBlbGlA aWtpLmZpPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogaW5jbHVkZS91YXBpL2xpbnV4L2lmLmggICAgICAgICAgfCAyOCArKysrKysrKysr KysrKysrKysrKysrKysrCiBpbmNsdWRlL3VhcGkvbGludXgvbGliYy1jb21wYXQuaCB8IDQ0ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwg NzIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pZi5oIGIv aW5jbHVkZS91YXBpL2xpbnV4L2lmLmgKaW5kZXggOWNmMjM5NC4uNzUyZjVkYyAxMDA2NDQKLS0t IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lmLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lmLmgK QEAgLTE5LDE0ICsxOSwyMCBAQAogI2lmbmRlZiBfTElOVVhfSUZfSAogI2RlZmluZSBfTElOVVhf SUZfSAogCisjaW5jbHVkZSA8bGludXgvbGliYy1jb21wYXQuaD4gICAgICAgICAgLyogZm9yIGNv bXBhdGliaWxpdHkgd2l0aCBnbGliYyAqLwogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CQkvKiBm b3IgIl9fa2VybmVsX2NhZGRyX3QiIGV0IGFsCSovCiAjaW5jbHVkZSA8bGludXgvc29ja2V0Lmg+ CQkvKiBmb3IgInN0cnVjdCBzb2NrYWRkciIgZXQgYWwJKi8KICNpbmNsdWRlIDxsaW51eC9jb21w aWxlci5oPgkJLyogZm9yICJfX3VzZXIiIGV0IGFsICAgICAgICAgICAqLwogCisjaWYgX19VQVBJ X0RFRl9JRl9JRk5BTVNJWgogI2RlZmluZQlJRk5BTVNJWgkxNgorI2VuZGlmIC8qIF9fVUFQSV9E RUZfSUZfSUZOQU1TSVogKi8KICNkZWZpbmUJSUZBTElBU1oJMjU2CiAjaW5jbHVkZSA8bGludXgv aGRsYy9pb2N0bC5oPgogCisvKiBGb3IgZ2xpYmMgY29tcGF0aWJpbGl0eS4gQW4gZW1wdHkgZW51 bSBkb2VzIG5vdCBjb21waWxlLiAqLworI2lmIF9fVUFQSV9ERUZfSUZfTkVUX0RFVklDRV9GTEFH U19MT1dFUl9VUF9ET1JNQU5UX0VDSE8gIT0gMCAmJiBcCisgICAgX19VQVBJX0RFRl9JRl9ORVRf REVWSUNFX0ZMQUdTICE9IDAKIC8qKgogICogZW51bSBuZXRfZGV2aWNlX2ZsYWdzIC0gJnN0cnVj dCBuZXRfZGV2aWNlIGZsYWdzCiAgKgpAQCAtNjgsNiArNzQsOCBAQAogICogQElGRl9FQ0hPOiBl Y2hvIHNlbnQgcGFja2V0cy4gVm9sYXRpbGUuCiAgKi8KIGVudW0gbmV0X2RldmljZV9mbGFncyB7 CisvKiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGdsaWJjIG5ldC9pZi5oICovCisjaWYgX19VQVBJ X0RFRl9JRl9ORVRfREVWSUNFX0ZMQUdTCiAJSUZGX1VQCQkJCT0gMTw8MCwgIC8qIHN5c2ZzICov CiAJSUZGX0JST0FEQ0FTVAkJCT0gMTw8MSwgIC8qIHZvbGF0aWxlICovCiAJSUZGX0RFQlVHCQkJ PSAxPDwyLCAgLyogc3lzZnMgKi8KQEAgLTg0LDExICs5MiwxNyBAQCBlbnVtIG5ldF9kZXZpY2Vf ZmxhZ3MgewogCUlGRl9QT1JUU0VMCQkJPSAxPDwxMywgLyogc3lzZnMgKi8KIAlJRkZfQVVUT01F RElBCQkJPSAxPDwxNCwgLyogc3lzZnMgKi8KIAlJRkZfRFlOQU1JQwkJCT0gMTw8MTUsIC8qIHN5 c2ZzICovCisjZW5kaWYgLyogX19VQVBJX0RFRl9JRl9ORVRfREVWSUNFX0ZMQUdTICovCisjaWYg X19VQVBJX0RFRl9JRl9ORVRfREVWSUNFX0ZMQUdTX0xPV0VSX1VQX0RPUk1BTlRfRUNITwogCUlG Rl9MT1dFUl9VUAkJCT0gMTw8MTYsIC8qIHZvbGF0aWxlICovCiAJSUZGX0RPUk1BTlQJCQk9IDE8 PDE3LCAvKiB2b2xhdGlsZSAqLwogCUlGRl9FQ0hPCQkJPSAxPDwxOCwgLyogdm9sYXRpbGUgKi8K KyNlbmRpZiAvKiBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0VfRkxBR1NfTE9XRVJfVVBfRE9STUFO VF9FQ0hPICovCiB9OworI2VuZGlmIC8qIF9fVUFQSV9ERUZfSUZfTkVUX0RFVklDRV9GTEFHU19M T1dFUl9VUF9ET1JNQU5UX0VDSE8gIT0gMCAmJiBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0VfRkxB R1MgIT0gMCAqLwogCisvKiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGdsaWJjIG5ldC9pZi5oICov CisjaWYgX19VQVBJX0RFRl9JRl9ORVRfREVWSUNFX0ZMQUdTCiAjZGVmaW5lIElGRl9VUAkJCQlJ RkZfVVAKICNkZWZpbmUgSUZGX0JST0FEQ0FTVAkJCUlGRl9CUk9BRENBU1QKICNkZWZpbmUgSUZG X0RFQlVHCQkJSUZGX0RFQlVHCkBAIC0xMDUsOSArMTE5LDEzIEBAIGVudW0gbmV0X2RldmljZV9m bGFncyB7CiAjZGVmaW5lIElGRl9QT1JUU0VMCQkJSUZGX1BPUlRTRUwKICNkZWZpbmUgSUZGX0FV VE9NRURJQQkJCUlGRl9BVVRPTUVESUEKICNkZWZpbmUgSUZGX0RZTkFNSUMJCQlJRkZfRFlOQU1J QworI2VuZGlmIC8qIF9fVUFQSV9ERUZfSUZfTkVUX0RFVklDRV9GTEFHUyAqLworCisjaWYgX19V QVBJX0RFRl9JRl9ORVRfREVWSUNFX0ZMQUdTX0xPV0VSX1VQX0RPUk1BTlRfRUNITwogI2RlZmlu ZSBJRkZfTE9XRVJfVVAJCQlJRkZfTE9XRVJfVVAKICNkZWZpbmUgSUZGX0RPUk1BTlQJCQlJRkZf RE9STUFOVAogI2RlZmluZSBJRkZfRUNITwkJCUlGRl9FQ0hPCisjZW5kaWYgLyogX19VQVBJX0RF Rl9JRl9ORVRfREVWSUNFX0ZMQUdTX0xPV0VSX1VQX0RPUk1BTlRfRUNITyAqLwogCiAjZGVmaW5l IElGRl9WT0xBVElMRQkoSUZGX0xPT1BCQUNLfElGRl9QT0lOVE9QT0lOVHxJRkZfQlJPQURDQVNU fElGRl9FQ0hPfFwKIAkJSUZGX01BU1RFUnxJRkZfU0xBVkV8SUZGX1JVTk5JTkd8SUZGX0xPV0VS X1VQfElGRl9ET1JNQU5UKQpAQCAtMTY2LDYgKzE4NCw4IEBAIGVudW0gewogICoJYmVpbmcgdmVy eSBzbWFsbCBtaWdodCBiZSB3b3J0aCBrZWVwaW5nIGZvciBjbGVhbiBjb25maWd1cmF0aW9uLgog ICovCiAKKy8qIGZvciBjb21wYXRpYmlsaXR5IHdpdGggZ2xpYmMgbmV0L2lmLmggKi8KKyNpZiBf X1VBUElfREVGX0lGX0lGTUFQCiBzdHJ1Y3QgaWZtYXAgewogCXVuc2lnbmVkIGxvbmcgbWVtX3N0 YXJ0OwogCXVuc2lnbmVkIGxvbmcgbWVtX2VuZDsKQEAgLTE3NSw2ICsxOTUsNyBAQCBzdHJ1Y3Qg aWZtYXAgewogCXVuc2lnbmVkIGNoYXIgcG9ydDsKIAkvKiAzIGJ5dGVzIHNwYXJlICovCiB9Owor I2VuZGlmIC8qIF9fVUFQSV9ERUZfSUZfSUZNQVAgKi8KIAogc3RydWN0IGlmX3NldHRpbmdzIHsK IAl1bnNpZ25lZCBpbnQgdHlwZTsJLyogVHlwZSBvZiBwaHlzaWNhbCBkZXZpY2Ugb3IgcHJvdG9j b2wgKi8KQEAgLTIwMCw2ICsyMjEsOCBAQCBzdHJ1Y3QgaWZfc2V0dGluZ3MgewogICogcmVtYWlu ZGVyIG1heSBiZSBpbnRlcmZhY2Ugc3BlY2lmaWMuCiAgKi8KIAorLyogZm9yIGNvbXBhdGliaWxp dHkgd2l0aCBnbGliYyBuZXQvaWYuaCAqLworI2lmIF9fVUFQSV9ERUZfSUZfSUZSRVEKIHN0cnVj dCBpZnJlcSB7CiAjZGVmaW5lIElGSFdBRERSTEVOCTYKIAl1bmlvbgpAQCAtMjIzLDYgKzI0Niw3 IEBAIHN0cnVjdCBpZnJlcSB7CiAJCXN0cnVjdAlpZl9zZXR0aW5ncyBpZnJ1X3NldHRpbmdzOwog CX0gaWZyX2lmcnU7CiB9OworI2VuZGlmIC8qIF9fVUFQSV9ERUZfSUZfSUZSRVEgKi8KIAogI2Rl ZmluZSBpZnJfbmFtZQlpZnJfaWZybi5pZnJuX25hbWUJLyogaW50ZXJmYWNlIG5hbWUgCSovCiAj ZGVmaW5lIGlmcl9od2FkZHIJaWZyX2lmcnUuaWZydV9od2FkZHIJLyogTUFDIGFkZHJlc3MgCQkq LwpAQCAtMjQ5LDYgKzI3Myw4IEBAIHN0cnVjdCBpZnJlcSB7CiAgKiBtdXN0IGtub3cgYWxsIG5l dHdvcmtzIGFjY2Vzc2libGUpLgogICovCiAKKy8qIGZvciBjb21wYXRpYmlsaXR5IHdpdGggZ2xp YmMgbmV0L2lmLmggKi8KKyNpZiBfX1VBUElfREVGX0lGX0lGQ09ORgogc3RydWN0IGlmY29uZiAg ewogCWludAlpZmNfbGVuOwkJCS8qIHNpemUgb2YgYnVmZmVyCSovCiAJdW5pb24gewpAQCAtMjU2 LDYgKzI4Miw4IEBAIHN0cnVjdCBpZmNvbmYgIHsKIAkJc3RydWN0IGlmcmVxIF9fdXNlciAqaWZj dV9yZXE7CiAJfSBpZmNfaWZjdTsKIH07CisjZW5kaWYgLyogX19VQVBJX0RFRl9JRl9JRkNPTkYg Ki8KKwogI2RlZmluZQlpZmNfYnVmCWlmY19pZmN1LmlmY3VfYnVmCQkvKiBidWZmZXIgYWRkcmVz cwkqLwogI2RlZmluZQlpZmNfcmVxCWlmY19pZmN1LmlmY3VfcmVxCQkvKiBhcnJheSBvZiBzdHJ1 Y3R1cmVzCSovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9saWJjLWNvbXBhdC5o IGIvaW5jbHVkZS91YXBpL2xpbnV4L2xpYmMtY29tcGF0LmgKaW5kZXggN2QwMjRjZS4uZDVlMzhj NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2xpYmMtY29tcGF0LmgKKysrIGIvaW5j bHVkZS91YXBpL2xpbnV4L2xpYmMtY29tcGF0LmgKQEAgLTUxLDYgKzUxLDQwIEBACiAvKiBXZSBo YXZlIGluY2x1ZGVkIGdsaWJjIGhlYWRlcnMuLi4gKi8KICNpZiBkZWZpbmVkKF9fR0xJQkNfXykK IAorLyogQ29vcmRpbmF0ZSB3aXRoIGdsaWJjIG5ldC9pZi5oIGhlYWRlci4gKi8KKyNpZiBkZWZp bmVkKF9ORVRfSUZfSCkKKworLyogR0xJQkMgaGVhZGVycyBpbmNsdWRlZCBmaXJzdCBzbyBkb24n dCBkZWZpbmUgYW55dGhpbmcKKyAqIHRoYXQgd291bGQgYWxyZWFkeSBiZSBkZWZpbmVkLiAqLwor CisjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZDT05GIDAKKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9J Rk1BUCAwCisjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZOQU1TSVogMAorI2RlZmluZSBfX1VBUElf REVGX0lGX0lGUkVRIDAKKy8qIEV2ZXJ5dGhpbmcgdXAgdG8gSUZGX0RZTkFNSUMsIG1hdGNoZXMg bmV0L2lmLmggdW50aWwgZ2xpYmMgMi4yMyAqLworI2RlZmluZSBfX1VBUElfREVGX0lGX05FVF9E RVZJQ0VfRkxBR1MgMAorLyogRm9yIHRoZSBmdXR1cmUgaWYgZ2xpYmMgYWRkcyBJRkZfTE9XRVJf VVAsIElGRl9ET1JNQU5UIGFuZCBJRkZfRUNITyAqLworI2lmbmRlZiBfX1VBUElfREVGX0lGX05F VF9ERVZJQ0VfRkxBR1NfTE9XRVJfVVBfRE9STUFOVF9FQ0hPCisjZGVmaW5lIF9fVUFQSV9ERUZf SUZfTkVUX0RFVklDRV9GTEFHU19MT1dFUl9VUF9ET1JNQU5UX0VDSE8gMQorI2VuZGlmIC8qIF9f VUFQSV9ERUZfSUZfTkVUX0RFVklDRV9GTEFHU19MT1dFUl9VUF9ET1JNQU5UX0VDSE8gKi8KKwor I2Vsc2UgLyogX05FVF9JRl9IICovCisKKy8qIExpbnV4IGhlYWRlcnMgaW5jbHVkZWQgZmlyc3Qs IGFuZCB3ZSBtdXN0IGRlZmluZSBldmVyeXRoaW5nCisgKiB3ZSBuZWVkLiBUaGUgZXhwZWN0YXRp b24gaXMgdGhhdCBnbGliYyB3aWxsIGNoZWNrIHRoZQorICogX19VQVBJX0RFRl8qIGRlZmluZXMg YW5kIGFkanVzdCBhcHByb3ByaWF0ZWx5LiAqLworCisjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZD T05GIDEKKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9JRk1BUCAxCisjZGVmaW5lIF9fVUFQSV9ERUZf SUZfSUZOQU1TSVogMQorI2RlZmluZSBfX1VBUElfREVGX0lGX0lGUkVRIDEKKy8qIEV2ZXJ5dGhp bmcgdXAgdG8gSUZGX0RZTkFNSUMsIG1hdGNoZXMgbmV0L2lmLmggdW50aWwgZ2xpYmMgMi4yMyAq LworI2RlZmluZSBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0VfRkxBR1MgMQorLyogRm9yIHRoZSBm dXR1cmUgaWYgZ2xpYmMgYWRkcyBJRkZfTE9XRVJfVVAsIElGRl9ET1JNQU5UIGFuZCBJRkZfRUNI TyAqLworI2RlZmluZSBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0VfRkxBR1NfTE9XRVJfVVBfRE9S TUFOVF9FQ0hPIDEKKworI2VuZGlmIC8qIF9ORVRfSUZfSCAqLworCiAvKiBDb29yZGluYXRlIHdp dGggZ2xpYmMgbmV0aW5ldC9pbi5oIGhlYWRlci4gKi8KICNpZiBkZWZpbmVkKF9ORVRJTkVUX0lO X0gpCiAKQEAgLTExNyw2ICsxNTEsMTYgQEAKICAqIHRoYXQgd2UgbmVlZC4gKi8KICNlbHNlIC8q ICFkZWZpbmVkKF9fR0xJQkNfXykgKi8KIAorLyogRGVmaW5pdGlvbnMgZm9yIGlmLmggKi8KKyNk ZWZpbmUgX19VQVBJX0RFRl9JRl9JRkNPTkYgMQorI2RlZmluZSBfX1VBUElfREVGX0lGX0lGTUFQ IDEKKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9JRk5BTVNJWiAxCisjZGVmaW5lIF9fVUFQSV9ERUZf SUZfSUZSRVEgMQorLyogRXZlcnl0aGluZyB1cCB0byBJRkZfRFlOQU1JQywgbWF0Y2hlcyBuZXQv aWYuaCB1bnRpbCBnbGliYyAyLjIzICovCisjZGVmaW5lIF9fVUFQSV9ERUZfSUZfTkVUX0RFVklD RV9GTEFHUyAxCisvKiBGb3IgdGhlIGZ1dHVyZSBpZiBnbGliYyBhZGRzIElGRl9MT1dFUl9VUCwg SUZGX0RPUk1BTlQgYW5kIElGRl9FQ0hPICovCisjZGVmaW5lIF9fVUFQSV9ERUZfSUZfTkVUX0RF VklDRV9GTEFHU19MT1dFUl9VUF9ET1JNQU5UX0VDSE8gMQorCiAvKiBEZWZpbml0aW9ucyBmb3Ig aW4uaCAqLwogI2RlZmluZSBfX1VBUElfREVGX0lOX0FERFIJCTEKICNkZWZpbmUgX19VQVBJX0RF Rl9JTl9JUFBST1RPCQkxCi0tIAoyLjEuMAoKCkZyb20gOWI3MzY2OTY0ZTYxMTJkMGQwNWQ3ZDM0 Y2I0ODliZDcwOWFiNDMxOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS2FuZ2ppZSBM dSA8a2FuZ2ppZWx1QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA4IE1heSAyMDE2IDEyOjEwOjE0IC0w NDAwClN1YmplY3Q6IFtQQVRDSCAzOS80Ml0gbmV0OiBmaXggYSBrZXJuZWwgaW5mb2xlYWsgaW4g eDI1IG1vZHVsZQoKWyBVcHN0cmVhbSBjb21taXQgNzllNDg2NTAzMjBlNmZiYTQ4MzY5ZmNjZjEz ZmQwNDUzMTViMTliOCBdCgpTdGFjayBvYmplY3QgImR0ZV9mYWNpbGl0aWVzIiBpcyBhbGxvY2F0 ZWQgaW4geDI1X3J4X2NhbGxfcmVxdWVzdCgpLAp3aGljaCBpcyBzdXBwb3NlZCB0byBiZSBpbml0 aWFsaXplZCBpbiB4MjVfbmVnb3RpYXRlX2ZhY2lsaXRpZXMuCkhvd2V2ZXIsIDUgZmllbGRzICg4 IGJ5dGVzIGluIHRvdGFsKSBhcmUgbm90IGluaXRpYWxpemVkLiBUaGlzCm9iamVjdCBpcyB0aGVu IGNvcGllZCB0byB1c2VybGFuZCB2aWEgY29weV90b191c2VyLCB0aHVzIGluZm9sZWFrCm9jY3Vy cy4KClNpZ25lZC1vZmYtYnk6IEthbmdqaWUgTHUgPGtqbHVAZ2F0ZWNoLmVkdT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC94MjUv eDI1X2ZhY2lsaXRpZXMuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpk aWZmIC0tZ2l0IGEvbmV0L3gyNS94MjVfZmFjaWxpdGllcy5jIGIvbmV0L3gyNS94MjVfZmFjaWxp dGllcy5jCmluZGV4IDdlY2QwNGMuLjk5N2ZmN2IgMTAwNjQ0Ci0tLSBhL25ldC94MjUveDI1X2Zh Y2lsaXRpZXMuYworKysgYi9uZXQveDI1L3gyNV9mYWNpbGl0aWVzLmMKQEAgLTI3Nyw2ICsyNzcs NyBAQCBpbnQgeDI1X25lZ290aWF0ZV9mYWNpbGl0aWVzKHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBzb2NrICpzaywKIAogCW1lbXNldCgmdGhlaXJzLCAwLCBzaXplb2YodGhlaXJzKSk7CiAJ bWVtY3B5KG5ldywgb3Vycywgc2l6ZW9mKCpuZXcpKTsKKwltZW1zZXQoZHRlLCAwLCBzaXplb2Yo KmR0ZSkpOwogCiAJbGVuID0geDI1X3BhcnNlX2ZhY2lsaXRpZXMoc2tiLCAmdGhlaXJzLCBkdGUs ICZ4MjUtPnZjX2ZhY2lsX21hc2spOwogCWlmIChsZW4gPCAwKQotLSAKMi4xLjAKCgpGcm9tIDEx MjM5OTIzMGVkMzczZGU1Y2NkNzVhNjg3NjU4NzViMmM3ODRiMTcgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ICJ4eXByb24uZ2xwa0BnbXguZGUiIDx4eXByb24uZ2xwa0BnbXguZGU+CkRh dGU6IE1vbiwgOSBNYXkgMjAxNiAwMDo0NjoxOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDAvNDJd IG5ldDogdGh1bmRlcng6IGF2b2lkIGV4cG9zaW5nIGtlcm5lbCBzdGFjawoKWyBVcHN0cmVhbSBj b21taXQgMTYxZGUyY2FmNjhjNTQ5YzI2NmU1NzFmZmJhOGUyMTYzODg2ZmIxMCBdCgpSZXNlcnZl ZCBmaWVsZHMgc2hvdWxkIGJlIHNldCB0byB6ZXJvIHRvIGF2b2lkIGV4cG9zaW5nCmJpdHMgZnJv bSB0aGUga2VybmVsIHN0YWNrLgoKU2lnbmVkLW9mZi1ieTogSGVpbnJpY2ggU2NodWNoYXJkdCA8 eHlwcm9uLmdscGtAZ214LmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIv bmljdmZfcXVldWVzLmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9x dWV1ZXMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX3F1ZXVl cy5jCmluZGV4IDc2NzM0N2IuLmY1MGJkYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX3F1ZXVlcy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX3F1ZXVlcy5jCkBAIC01MTksNiArNTE5LDcgQEAgc3Rh dGljIHZvaWQgbmljdmZfcmN2X3F1ZXVlX2NvbmZpZyhzdHJ1Y3QgbmljdmYgKm5pYywgc3RydWN0 IHF1ZXVlX3NldCAqcXMsCiAJCW5pY3ZmX2NvbmZpZ192bGFuX3N0cmlwcGluZyhuaWMsIG5pYy0+ bmV0ZGV2LT5mZWF0dXJlcyk7CiAKIAkvKiBFbmFibGUgUmVjZWl2ZSBxdWV1ZSAqLworCW1lbXNl dCgmcnFfY2ZnLCAwLCBzaXplb2Yoc3RydWN0IHJxX2NmZykpOwogCXJxX2NmZy5lbmEgPSAxOwog CXJxX2NmZy50Y3BfZW5hID0gMDsKIAluaWN2Zl9xdWV1ZV9yZWdfd3JpdGUobmljLCBOSUNfUVNF VF9SUV8wXzdfQ0ZHLCBxaWR4LCAqKHU2NCAqKSZycV9jZmcpOwpAQCAtNTUxLDYgKzU1Miw3IEBA IHZvaWQgbmljdmZfY21wX3F1ZXVlX2NvbmZpZyhzdHJ1Y3QgbmljdmYgKm5pYywgc3RydWN0IHF1 ZXVlX3NldCAqcXMsCiAJCQkgICAgICBxaWR4LCAodTY0KShjcS0+ZG1lbS5waHlzX2Jhc2UpKTsK IAogCS8qIEVuYWJsZSBDb21wbGV0aW9uIHF1ZXVlICovCisJbWVtc2V0KCZjcV9jZmcsIDAsIHNp emVvZihzdHJ1Y3QgY3FfY2ZnKSk7CiAJY3FfY2ZnLmVuYSA9IDE7CiAJY3FfY2ZnLnJlc2V0ID0g MDsKIAljcV9jZmcuY2FjaGluZyA9IDA7CkBAIC01OTksNiArNjAxLDcgQEAgc3RhdGljIHZvaWQg bmljdmZfc25kX3F1ZXVlX2NvbmZpZyhzdHJ1Y3QgbmljdmYgKm5pYywgc3RydWN0IHF1ZXVlX3Nl dCAqcXMsCiAJCQkgICAgICBxaWR4LCAodTY0KShzcS0+ZG1lbS5waHlzX2Jhc2UpKTsKIAogCS8q IEVuYWJsZSBzZW5kIHF1ZXVlICAmIHNldCBxdWV1ZSBzaXplICovCisJbWVtc2V0KCZzcV9jZmcs IDAsIHNpemVvZihzdHJ1Y3Qgc3FfY2ZnKSk7CiAJc3FfY2ZnLmVuYSA9IDE7CiAJc3FfY2ZnLnJl c2V0ID0gMDsKIAlzcV9jZmcubGR3YiA9IDA7CkBAIC02MzUsNiArNjM4LDcgQEAgc3RhdGljIHZv aWQgbmljdmZfcmJkcl9jb25maWcoc3RydWN0IG5pY3ZmICpuaWMsIHN0cnVjdCBxdWV1ZV9zZXQg KnFzLAogCiAJLyogRW5hYmxlIFJCRFIgICYgc2V0IHF1ZXVlIHNpemUgKi8KIAkvKiBCdWZmZXIg c2l6ZSBzaG91bGQgYmUgaW4gbXVsdGlwbGVzIG9mIDEyOCBieXRlcyAqLworCW1lbXNldCgmcmJk cl9jZmcsIDAsIHNpemVvZihzdHJ1Y3QgcmJkcl9jZmcpKTsKIAlyYmRyX2NmZy5lbmEgPSAxOwog CXJiZHJfY2ZnLnJlc2V0ID0gMDsKIAlyYmRyX2NmZy5sZHdiID0gMDsKLS0gCjIuMS4wCgoKRnJv bSBjM2Y4YTM5YTJlZTAwNjNkMTYyZGRjMzhmNGFhNTg1MzU2YzQ3MzIxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6 IE1vbiwgOSBNYXkgMjAxNiAyMDo1NToxNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNDEvNDJdIHRj cDogcmVmcmVzaCBza2IgdGltZXN0YW1wIGF0IHJldHJhbnNtaXQgdGltZQoKWyBVcHN0cmVhbSBj b21taXQgMTBhODE5ODBmYzQ3ZTY0ZmZhYzI2YTA3MzEzOTgxM2QzZjY5N2I2NCBdCgpJbiB0aGUg dmVyeSB1bmxpa2VseSBjYXNlIF9fdGNwX3JldHJhbnNtaXRfc2tiKCkgY2FuIG5vdCB1c2UgdGhl IGNsb25pbmcKZG9uZSBpbiB0Y3BfdHJhbnNtaXRfc2tiKCksIHdlIG5lZWQgdG8gcmVmcmVzaCBz a2JfbXN0YW1wIGJlZm9yZSBkb2luZwp0aGUgY29weSBhbmQgdHJhbnNtaXQsIG90aGVyd2lzZSBU Q1AgVFMgdmFsIHdpbGwgYmUgYW4gZXhhY3QgY29weSBvZgpvcmlnaW5hbCB0cmFuc21pdC4KCkZp eGVzOiA3ZmFlZTVjMGQ1MTQgKCJ0Y3A6IHJlbW92ZSBUQ1BfU0tCX0NCKHNrYiktPndoZW4iKQpT aWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBZdWNo dW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFl1Y2h1bmcgQ2hlbmcgPHlj aGVuZ0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX291dHB1dC5jIHwgNiArKysrLS0KIDEgZmls ZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvdGNwX291dHB1dC5jIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCmluZGV4IGZkYTM3 OWMuLmI2ODc2ZjIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQv aXB2NC90Y3Bfb3V0cHV0LmMKQEAgLTI2MjUsOCArMjYyNSwxMCBAQCBpbnQgX190Y3BfcmV0cmFu c21pdF9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCSAqLwogCWlm ICh1bmxpa2VseSgoTkVUX0lQX0FMSUdOICYmICgodW5zaWduZWQgbG9uZylza2ItPmRhdGEgJiAz KSkgfHwKIAkJICAgICBza2JfaGVhZHJvb20oc2tiKSA+PSAweEZGRkYpKSB7Ci0JCXN0cnVjdCBz a19idWZmICpuc2tiID0gX19wc2tiX2NvcHkoc2tiLCBNQVhfVENQX0hFQURFUiwKLQkJCQkJCSAg IEdGUF9BVE9NSUMpOworCQlzdHJ1Y3Qgc2tfYnVmZiAqbnNrYjsKKworCQlza2JfbXN0YW1wX2dl dCgmc2tiLT5za2JfbXN0YW1wKTsKKwkJbnNrYiA9IF9fcHNrYl9jb3B5KHNrYiwgTUFYX1RDUF9I RUFERVIsIEdGUF9BVE9NSUMpOwogCQllcnIgPSBuc2tiID8gdGNwX3RyYW5zbWl0X3NrYihzaywg bnNrYiwgMCwgR0ZQX0FUT01JQykgOgogCQkJICAgICAtRU5PQlVGUzsKIAl9IGVsc2UgewotLSAK Mi4xLjAKCgpGcm9tIGRmYWJiNWQwZjBmYmI2ZGE4MzdkNzkzYTljYWJlNzEyNzQxNjQ0NDMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNv bT4KRGF0ZTogRnJpLCAxMyBNYXkgMjAxNiAxODozMzo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg NDIvNDJdIG5ldC9yb3V0ZTogZW5mb3JjZSBob3BsaW1pdCBtYXggdmFsdWUKClsgVXBzdHJlYW0g Y29tbWl0IDYyNmFiZDU5ZTUxZDRkOGM2MzY3ZTAzYWFlMjUyYThhYTc1OWFjNzggXQoKQ3VycmVu dGx5LCB3aGVuIGNyZWF0aW5nIG9yIHVwZGF0aW5nIGEgcm91dGUsIG5vIGNoZWNrIGlzIHBlcmZv cm1lZAppbiBib3RoIGlwdjQgYW5kIGlwdjYgY29kZSB0byB0aGUgaG9wbGltaXQgdmFsdWUuCgpU aGUgY2FsbGVyIGNhbiBpLmUuIHNldCBob3BsaW1pdCB0byAyNTYsIGFuZCB3aGVuIHN1Y2ggcm91 dGUgd2lsbAogYmUgdXNlZCwgcGFja2V0cyB3aWxsIGJlIHNlbnQgd2l0aCBob3BsaW1pdC90dGwg ZXF1YWwgdG8gMC4KClRoaXMgY29tbWl0IGFkZHMgY2hlY2tzIGZvciB0aGUgUlRBWF9IT1BMSU1J VCB2YWx1ZSwgaW4gYm90aCBpcHY0CmlwdjYgcm91dGUgY29kZSwgc3Vic3RpdHV0aW5nIGFueSB2 YWx1ZSBncmVhdGVyIHRoYW4gMjU1IHdpdGggMjU1LgoKVGhpcyBpcyBjb25zaXN0ZW50IHdpdGgg d2hhdCBpcyBjdXJyZW50bHkgZG9uZSBmb3IgQURWTVNTIGFuZCBNVFUKaW4gdGhlIGlwdjQgY29k ZS4KClNpZ25lZC1vZmYtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY0L2ZpYl9zZW1hbnRpY3MuYyB8IDIgKysKIG5ldC9pcHY2L3JvdXRlLmMgICAgICAgICB8IDIg KysKIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lw djQvZmliX3NlbWFudGljcy5jIGIvbmV0L2lwdjQvZmliX3NlbWFudGljcy5jCmluZGV4IGQ5NzI2 OGUuLjJiNjg0MTggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYworKysgYi9u ZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKQEAgLTk3NSw2ICs5NzUsOCBAQCBmaWJfY29udmVydF9t ZXRyaWNzKHN0cnVjdCBmaWJfaW5mbyAqZmksIGNvbnN0IHN0cnVjdCBmaWJfY29uZmlnICpjZmcp CiAJCQl2YWwgPSA2NTUzNSAtIDQwOwogCQlpZiAodHlwZSA9PSBSVEFYX01UVSAmJiB2YWwgPiA2 NTUzNSAtIDE1KQogCQkJdmFsID0gNjU1MzUgLSAxNTsKKwkJaWYgKHR5cGUgPT0gUlRBWF9IT1BM SU1JVCAmJiB2YWwgPiAyNTUpCisJCQl2YWwgPSAyNTU7CiAJCWlmICh0eXBlID09IFJUQVhfRkVB VFVSRVMgJiYgKHZhbCAmIH5SVEFYX0ZFQVRVUkVfTUFTSykpCiAJCQlyZXR1cm4gLUVJTlZBTDsK IAkJZmktPmZpYl9tZXRyaWNzW3R5cGUgLSAxXSA9IHZhbDsKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IGVkNDQ2NjMuLjE4ZTI5ZTIgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtMTczNyw2 ICsxNzM3LDggQEAgc3RhdGljIGludCBpcDZfY29udmVydF9tZXRyaWNzKHN0cnVjdCBteDZfY29u ZmlnICpteGMsCiAJCX0gZWxzZSB7CiAJCQl2YWwgPSBubGFfZ2V0X3UzMihubGEpOwogCQl9CisJ CWlmICh0eXBlID09IFJUQVhfSE9QTElNSVQgJiYgdmFsID4gMjU1KQorCQkJdmFsID0gMjU1Owog CQlpZiAodHlwZSA9PSBSVEFYX0ZFQVRVUkVTICYmICh2YWwgJiB+UlRBWF9GRUFUVVJFX01BU0sp KQogCQkJZ290byBlcnI7CiAKLS0gCjIuMS4wCgo= ----Next_Part(Mon_May_16_12_35_13_2016_545)----