From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([23.128.96.9]:55074 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725998AbeKUOWc (ORCPT ); Wed, 21 Nov 2018 09:22:32 -0500 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::bf5]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id C0F9C14C7FD97 for ; Tue, 20 Nov 2018 19:49:51 -0800 (PST) Date: Tue, 20 Nov 2018 19:49:49 -0800 (PST) Message-Id: <20181120.194949.1413374523073231899.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(Tue_Nov_20_19_49_49_2018_073)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Tue_Nov_20_19_49_49_2018_073)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.18 and v4.19 -stable, respectively. Thanks! ----Next_Part(Tue_Nov_20_19_49_49_2018_073)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_418.mbox" RnJvbSAwY2RhNGQxOWQ1ZjcwZWVjYWEwODE1ZjUyYzQ2ZTVhNjk1OTFlNDJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUVCPUIwPUIwPUVDPTg0PTlEPUVDPUE3PTg0 Pz0gPHNvdWtqaW4uYmFlQHNhbXN1bmcuY29tPgpEYXRlOiBGcmksIDkgTm92IDIwMTggMTY6NTM6 MDYgLTA4MDAKU3ViamVjdDogW1BBVENIIDAxLzM2XSBmbG93X2Rpc3NlY3RvcjogZG8gbm90IGRp c3NlY3QgbDQgcG9ydHMgZm9yIGZyYWdtZW50cwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog OGJpdAoKWyBVcHN0cmVhbSBjb21taXQgNjIyMzA3MTVmZDI0NTNiM2JhOTQ4YzlkODNjZmIzYWRh OTE2OTE2OSBdCgpPbmx5IGZpcnN0IGZyYWdtZW50IGhhcyB0aGUgc3BvcnQvZHBvcnQgaW5mb3Jt YXRpb24sCm5vdCB0aGUgZm9sbG93aW5nIG9uZXMuCgpJZiB3ZSB3YW50IGNvbnNpc3RlbnQgaGFz aCBmb3IgYWxsIGZyYWdtZW50cywgd2UgbmVlZCB0bwppZ25vcmUgcG9ydHMgZXZlbiBmb3IgZmly c3QgZnJhZ21lbnQuCgpUaGlzIGJ1ZyBpcyB2aXNpYmxlIGZvciBJUHY2IHRyYWZmaWMsIGlmIGlu Y29taW5nIGZyYWdtZW50cwpkbyBub3QgaGF2ZSBhIGZsb3cgbGFiZWwsIHNpbmNlIHNrYl9nZXRf aGFzaCgpIHdpbGwgZ2l2ZQpkaWZmZXJlbnQgcmVzdWx0cyBmb3IgZmlyc3QgZnJhZ21lbnQgYW5k IGZvbGxvd2luZyBvbmVzLgoKSXQgaXMgYWxzbyB2aXNpYmxlIGlmIGFueSByb3V0aW5nIHJ1bGUg d2FudHMgZGlzc2VjdGlvbgphbmQgc3BvcnQgb3IgZHBvcnQuCgpTZWUgY29tbWl0IDVlNWQ2ZmVk Mzc0MSAoImlwdjY6IHJvdXRlOiBkaXNzZWN0IGZsb3cKaW4gaW5wdXQgcGF0aCBpZiBmaWIgcnVs ZXMgbmVlZCBpdCIpIGZvciBkZXRhaWxzLgoKW2VkdW1hemV0XSByZXdyb3RlIHRoZSBjaGFuZ2Vs b2cgY29tcGxldGVseS4KCkZpeGVzOiAwNjYzNWEzNWQxM2QgKCJmbG93X2Rpc3NlY3Q6IHVzZSBw cm9ncmFtYWJsZSBkaXNzZWN0b3IgaW4gc2tiX2Zsb3dfZGlzc2VjdCBhbmQgZnJpZW5kcyIpClNp Z25lZC1vZmYtYnk6IOuwsOyEneynhCA8c291a2ppbi5iYWVAc2Ftc3VuZy5jb20+ClNpZ25lZC1v ZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2Zsb3df ZGlzc2VjdG9yLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmxvd19kaXNzZWN0b3IuYyBiL25l dC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMKaW5kZXggNTNmOTZlNGY3YmY1Li5kNDgwMTZkYTFiNzIg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMKKysrIGIvbmV0L2NvcmUvZmxv d19kaXNzZWN0b3IuYwpAQCAtOTkzLDggKzk5Myw4IEBAIGJvb2wgX19za2JfZmxvd19kaXNzZWN0 KGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAJCWJyZWFrOwogCX0KIAotCWlmIChkaXNzZWN0 b3JfdXNlc19rZXkoZmxvd19kaXNzZWN0b3IsCi0JCQkgICAgICAgRkxPV19ESVNTRUNUT1JfS0VZ X1BPUlRTKSkgeworCWlmIChkaXNzZWN0b3JfdXNlc19rZXkoZmxvd19kaXNzZWN0b3IsIEZMT1df RElTU0VDVE9SX0tFWV9QT1JUUykgJiYKKwkgICAgIShrZXlfY29udHJvbC0+ZmxhZ3MgJiBGTE9X X0RJU19JU19GUkFHTUVOVCkpIHsKIAkJa2V5X3BvcnRzID0gc2tiX2Zsb3dfZGlzc2VjdG9yX3Rh cmdldChmbG93X2Rpc3NlY3RvciwKIAkJCQkJCSAgICAgIEZMT1dfRElTU0VDVE9SX0tFWV9QT1JU UywKIAkJCQkJCSAgICAgIHRhcmdldF9jb250YWluZXIpOwotLSAKMi4xOS4xCgoKRnJvbSAxYzI2 MmI5M2QyZTJlYmVjMDRhN2YwZDEwYTEyYjEzZDg3MTMxMjVlIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/TWljaGE9QzU9ODI9MjBNaXJvcz1DNT04MmF3Pz0gPG1pcnEt bGludXhAcmVyZS5xbXFtLnBsPgpEYXRlOiBXZWQsIDcgTm92IDIwMTggMTc6NTA6NTIgKzAxMDAK U3ViamVjdDogW1BBVENIIDAyLzM2XSBpYm12bmljOiBmaXggYWNjZWxlcmF0ZWQgVkxBTiBoYW5k bGluZwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQg ZTg0YjQ3OTQxZTE1ZTY2NjZhZmI4ZWU4YjIxZDFjM2ZjMWEwMTNhZiBdCgpEb24ndCByZXF1ZXN0 IHRhZyBpbnNlcnRpb24gd2hlbiBpdCBpc24ndCBwcmVzZW50IGluIG91dGdvaW5nIHNrYi4KClNp Z25lZC1vZmYtYnk6IE1pY2hhxYIgTWlyb3PFgmF3IDxtaXJxLWxpbnV4QHJlcmUucW1xbS5wbD4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12bmljLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9pYm0vaWJtdm5pYy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaWJtL2libXZu aWMuYwppbmRleCBkODM0MzA4YWRmOTUuLmI2NzU0Y2M5MjVkYyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvaWJtL2libXZuaWMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9p Ym0vaWJtdm5pYy5jCkBAIC0xNTYzLDcgKzE1NjMsNyBAQCBzdGF0aWMgaW50IGlibXZuaWNfeG1p dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogCXR4X2Ny cS52MS5zZ2VfbGVuID0gY3B1X3RvX2JlMzIoc2tiLT5sZW4pOwogCXR4X2NycS52MS5pb2JhID0g Y3B1X3RvX2JlNjQoZGF0YV9kbWFfYWRkcik7CiAKLQlpZiAoYWRhcHRlci0+dmxhbl9oZWFkZXJf aW5zZXJ0aW9uKSB7CisJaWYgKGFkYXB0ZXItPnZsYW5faGVhZGVyX2luc2VydGlvbiAmJiBza2Jf dmxhbl90YWdfcHJlc2VudChza2IpKSB7CiAJCXR4X2NycS52MS5mbGFnczIgfD0gSUJNVk5JQ19U WF9WTEFOX0lOU0VSVDsKIAkJdHhfY3JxLnYxLnZsYW5faWQgPSBjcHVfdG9fYmUxNihza2ItPnZs YW5fdGNpKTsKIAl9Ci0tIAoyLjE5LjEKCgpGcm9tIDdmNWI4ZmYwYjExNDRlYmUxZTdhZjJiNmQ3 NDNkN2MyZjViOTlmMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNhYnJpbmEgRHVi cm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpEYXRlOiBGcmksIDE2IE5vdiAyMDE4IDE2OjU4OjE5 ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8zNl0gaXBfdHVubmVsOiBkb24ndCBmb3JjZSBERiB3 aGVuIE1UVSBpcyBsb2NrZWQKClsgVXBzdHJlYW0gY29tbWl0IDE2ZjdlYjJiNzdiNTVkYTgxNmM0 ZTIwN2YzZjk0NDBhOGNhZmMwMGEgXQoKVGhlIHZhcmlvdXMgdHlwZXMgb2YgdHVubmVscyBydW5u aW5nIG92ZXIgSVB2NCBjYW4gYXNrIHRvIHNldCB0aGUgREYKYml0IHRvIGRvIFBNVFUgZGlzY292 ZXJ5LiBIb3dldmVyLCBQTVRVIGRpc2NvdmVyeSBpcyBzdWJqZWN0IHRvIHRoZQp0aHJlc2hvbGQg c2V0IGJ5IHRoZSBuZXQuaXB2NC5yb3V0ZS5taW5fcG10dSBzeXNjdGwsIGFuZCBpcyBhbHNvCmRp c2FibGVkIG9uIHJvdXRlcyB3aXRoICJtdHUgbG9jayIuIEluIHRob3NlIGNhc2VzLCB3ZSBzaG91 bGRuJ3Qgc2V0CnRoZSBERiBiaXQuCgpUaGlzIHBhdGNoIG1ha2VzIHNldHRpbmcgdGhlIERGIGJp dCBjb25kaXRpb25hbCBvbiB0aGUgcm91dGUncyBNVFUKbG9ja2luZyBzdGF0ZS4KClRoaXMgaXNz dWUgc2VlbXMgdG8gYmUgb2xkZXIgdGhhbiBnaXQgaGlzdG9yeS4KClNpZ25lZC1vZmYtYnk6IFNh YnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpSZXZpZXdlZC1ieTogU3RlZmFubyBC cml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2lwX3R1bm5lbF9jb3JlLmMgfCAy ICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2NC9pcF90dW5uZWxfY29yZS5jIGIvbmV0L2lwdjQvaXBfdHVubmVsX2Nv cmUuYwppbmRleCBkZGU2NzFlOTc4MjkuLmMyNDhlMGRjY2JlMSAxMDA2NDQKLS0tIGEvbmV0L2lw djQvaXBfdHVubmVsX2NvcmUuYworKysgYi9uZXQvaXB2NC9pcF90dW5uZWxfY29yZS5jCkBAIC04 MCw3ICs4MCw3IEBAIHZvaWQgaXB0dW5uZWxfeG1pdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBy dGFibGUgKnJ0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJaXBoLT52ZXJzaW9uCT0JNDsKIAlp cGgtPmlobAk9CXNpemVvZihzdHJ1Y3QgaXBoZHIpID4+IDI7Ci0JaXBoLT5mcmFnX29mZgk9CWRm OworCWlwaC0+ZnJhZ19vZmYJPQlpcF9tdHVfbG9ja2VkKCZydC0+ZHN0KSA/IDAgOiBkZjsKIAlp cGgtPnByb3RvY29sCT0JcHJvdG87CiAJaXBoLT50b3MJPQl0b3M7CiAJaXBoLT5kYWRkcgk9CWRz dDsKLS0gCjIuMTkuMQoKCkZyb20gOWMzNzhiNmM1MTJhMjljYjMzMWMxNjEyMDI2MzgyMWI0N2Y3 NjFiNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5A Z21haWwuY29tPgpEYXRlOiBXZWQsIDE0IE5vdiAyMDE4IDAwOjQ4OjI4ICswODAwClN1YmplY3Q6 IFtQQVRDSCAwNC8zNl0gaXB2NjogZml4IGEgZHN0IGxlYWsgd2hlbiByZW1vdmluZyBpdHMgZXhj ZXB0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA3NjFmNjAyNjFiNDQwMWFhMzY4ZDcxZDQzMWI0YzIx OGFmMGVmY2VlIF0KClRoZXNlIGlzIG5vIG5lZWQgdG8gaG9sZCBkc3QgYmVmb3JlIGNhbGxpbmcg cnQ2X3JlbW92ZV9leGNlcHRpb25fcnQoKS4KVGhlIGNhbGwgdG8gZHN0X2hvbGRfc2FmZSgpIGlu IGlwNl9saW5rX2ZhaWx1cmUoKSB3YXMgZm9yIGlwNl9kZWxfcnQoKSwKd2hpY2ggaGFzIGJlZW4g cmVtb3ZlZCBpbiBDb21taXQgOTM1MzFjNjc0MzE1ICgibmV0L2lwdjY6IHNlcGFyYXRlCmhhbmRs aW5nIG9mIEZJQiBlbnRyaWVzIGZyb20gZHN0IGJhc2VkIHJvdXRlcyIpLiBPdGhlcndpc2UsIGl0 IHdpbGwKY2F1c2UgYSBkc3QgbGVhay4KClRoaXMgcGF0Y2ggaXMgdG8gc2ltcGx5IHJlbW92ZSB0 aGUgZHN0X2hvbGRfc2FmZSgpIGNhbGwgYmVmb3JlIGNhbGxpbmcKcnQ2X3JlbW92ZV9leGNlcHRp b25fcnQoKSBhbmQgYWxzbyBkbyB0aGUgc2FtZSBpbiBpcDZfZGVsX2NhY2hlZF9ydCgpLgpJdCdz IHNhZmUsIGJlY2F1c2UgdGhlIHJlbW92YWwgb2YgdGhlIGV4Y2VwdGlvbiB0aGF0IGhvbGRzIGl0 cyBkc3QncwpyZWZjbnQgaXMgcHJvdGVjdGVkIGJ5IHJ0Nl9leGNlcHRpb25fbG9jay4KCkZpeGVz OiA5MzUzMWM2NzQzMTUgKCJuZXQvaXB2Njogc2VwYXJhdGUgaGFuZGxpbmcgb2YgRklCIGVudHJp ZXMgZnJvbSBkc3QgYmFzZWQgcm91dGVzIikKRml4ZXM6IDIzZmI5M2E0ZDNmMSAoIm5ldC9pcHY2 OiBDbGVhbnVwIGV4Y2VwdGlvbiBhbmQgY2FjaGUgcm91dGUgaGFuZGxpbmciKQpSZXBvcnRlZC1i eTogTGkgU2h1YW5nIDxzaHVhbGlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcg PGx1Y2llbi54aW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5A Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjYvcm91dGUuYyB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9y b3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCBhMjQzZDUyNDliNTEuLjYwNDVjN2FmMDJi NiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBA IC0yMjU2LDggKzIyNTYsNyBAQCBzdGF0aWMgdm9pZCBpcDZfbGlua19mYWlsdXJlKHN0cnVjdCBz a19idWZmICpza2IpCiAJaWYgKHJ0KSB7CiAJCXJjdV9yZWFkX2xvY2soKTsKIAkJaWYgKHJ0LT5y dDZpX2ZsYWdzICYgUlRGX0NBQ0hFKSB7Ci0JCQlpZiAoZHN0X2hvbGRfc2FmZSgmcnQtPmRzdCkp Ci0JCQkJcnQ2X3JlbW92ZV9leGNlcHRpb25fcnQocnQpOworCQkJcnQ2X3JlbW92ZV9leGNlcHRp b25fcnQocnQpOwogCQl9IGVsc2UgewogCQkJc3RydWN0IGZpYjZfaW5mbyAqZnJvbTsKIAkJCXN0 cnVjdCBmaWI2X25vZGUgKmZuOwpAQCAtMzI1OSw4ICszMjU4LDggQEAgc3RhdGljIGludCBpcDZf ZGVsX2NhY2hlZF9ydChzdHJ1Y3QgcnQ2X2luZm8gKnJ0LCBzdHJ1Y3QgZmliNl9jb25maWcgKmNm ZykKIAlpZiAoY2ZnLT5mY19mbGFncyAmIFJURl9HQVRFV0FZICYmCiAJICAgICFpcHY2X2FkZHJf ZXF1YWwoJmNmZy0+ZmNfZ2F0ZXdheSwgJnJ0LT5ydDZpX2dhdGV3YXkpKQogCQlnb3RvIG91dDsK LQlpZiAoZHN0X2hvbGRfc2FmZSgmcnQtPmRzdCkpCi0JCXJjID0gcnQ2X3JlbW92ZV9leGNlcHRp b25fcnQocnQpOworCisJcmMgPSBydDZfcmVtb3ZlX2V4Y2VwdGlvbl9ydChydCk7CiBvdXQ6CiAJ cmV0dXJuIHJjOwogfQotLSAKMi4xOS4xCgoKRnJvbSBiODdhMDRiMjI5MDI1MWQ1YWVjYzdiNGEy MTQxYTE0ZTFmYWU2N2NlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVy biA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTggTm92IDIwMTggMTA6NDU6MzAgLTA4 MDAKU3ViamVjdDogW1BBVENIIDA1LzM2XSBpcHY2OiBGaXggUE1UVSB1cGRhdGVzIGZvciBVRFAv cmF3IHNvY2tldHMgaW4gcHJlc2VuY2UKIG9mIFZSRgoKWyBVcHN0cmVhbSBjb21taXQgN2RkYWNm YTU2NDg3MGNkZDk3Mjc1ZmQ4N2RlY2I2MTc0YWJjNjM4MCBdCgpQcmVldGhpIHJlcG9ydGVkIHRo YXQgUE1UVSBkaXNjb3ZlcnkgZm9yIFVEUC9yYXcgYXBwbGljYXRpb25zIGlzIG5vdAp3b3JraW5n IGluIHRoZSBwcmVzZW5jZSBvZiBWUkYgd2hlbiB0aGUgc29ja2V0IGlzIG5vdCBib3VuZCB0byBh IGRldmljZS4KVGhlIHByb2JsZW0gaXMgdGhhdCBpcDZfc2tfdXBkYXRlX3BtdHUgZG9lcyBub3Qg Y29uc2lkZXIgdGhlIEwzIGRvbWFpbgpvZiB0aGUgc2tiIGRldmljZSBpZiB0aGUgc29ja2V0IGlz IG5vdCBib3VuZC4gVXBkYXRlIHRoZSBmdW5jdGlvbiB0bwpzZXQgb2lmIHRvIHRoZSBMMyBtYXN0 ZXIgZGV2aWNlIGlmIHJlbGV2YW50LgoKRml4ZXM6IGNhMjU0NDkwYzhkZiAoIm5ldDogQWRkIFZS RiBzdXBwb3J0IHRvIElQdjYgc3RhY2siKQpSZXBvcnRlZC1ieTogUHJlZXRoaSBSYW1hY2hhbmRy YSA8cHJlZXRoaXJAanVuaXBlci5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2Fo ZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3JvdXRlLmMgfCA3ICsrKysrLS0KIDEgZmlsZSBjaGFu Z2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lw djYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggNjA0NWM3YWYwMmI2Li5iMmVkY2Y3 MjRjYjggMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUu YwpAQCAtMjM4NCwxMCArMjM4NCwxMyBAQCBFWFBPUlRfU1lNQk9MX0dQTChpcDZfdXBkYXRlX3Bt dHUpOwogCiB2b2lkIGlwNl9za191cGRhdGVfcG10dShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3Qgc29jayAqc2ssIF9fYmUzMiBtdHUpCiB7CisJaW50IG9pZiA9IHNrLT5za19ib3VuZF9kZXZf aWY7CiAJc3RydWN0IGRzdF9lbnRyeSAqZHN0OwogCi0JaXA2X3VwZGF0ZV9wbXR1KHNrYiwgc29j a19uZXQoc2spLCBtdHUsCi0JCQlzay0+c2tfYm91bmRfZGV2X2lmLCBzay0+c2tfbWFyaywgc2st PnNrX3VpZCk7CisJaWYgKCFvaWYgJiYgc2tiLT5kZXYpCisJCW9pZiA9IGwzbWRldl9tYXN0ZXJf aWZpbmRleChza2ItPmRldik7CisKKwlpcDZfdXBkYXRlX3BtdHUoc2tiLCBzb2NrX25ldChzayks IG10dSwgb2lmLCBzay0+c2tfbWFyaywgc2stPnNrX3VpZCk7CiAKIAlkc3QgPSBfX3NrX2RzdF9n ZXQoc2spOwogCWlmICghZHN0IHx8ICFkc3QtPm9ic29sZXRlIHx8Ci0tIAoyLjE5LjEKCgpGcm9t IDg1M2JlZDIxNmEyZDRhNzgxYzdlM2E4ZTMyMDQwOWVmNjU3MmI4MDMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERvdWcgQmVyZ2VyIDxvcGVuZG1iQGdtYWlsLmNvbT4KRGF0ZTogVGh1 LCAxIE5vdiAyMDE4IDE1OjU1OjM3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNi8zNl0gbmV0OiBi Y21nZW5ldDogcHJvdGVjdCBzdG9wIGZyb20gdGltZW91dAoKQSB0aW1pbmcgaGF6YXJkIGV4aXN0 cyB3aGVuIHRoZSBuZXR3b3JrIGludGVyZmFjZSBpcyBzdG9wcGVkIHRoYXQKYWxsb3dzIGEgd2F0 Y2hkb2cgdGltZW91dCB0byBiZSBwcm9jZXNzZWQgYnkgYSBzZXBhcmF0ZSBjb3JlIGluCnBhcmFs bGVsLiBUaGlzIGNyZWF0ZXMgdGhlIHBvdGVudGlhbCBmb3IgdGhlIHRpbWVvdXQgaGFuZGxlciB0 bwp3YWtlIHRoZSBxdWV1ZXMgd2hpbGUgdGhlIGRyaXZlciBpcyBzaHV0dGluZyBkb3duLCBvciBh Y2Nlc3MKcmVnaXN0ZXJzIGFmdGVyIHRoZWlyIGNsb2NrcyBoYXZlIGJlZW4gcmVtb3ZlZC4KClRo ZSBtb3JlIGNvbW1vbiBjYXNlIGlzIHRoYXQgdGhlIHdhdGNoZG9nIHRpbWVvdXQgd2lsbCBwcm9k dWNlIGEKd2FybmluZyBtZXNzYWdlIHdoaWNoIGRvZXNuJ3QgbGVhZCB0byBhIGNyYXNoLiBUaGUg Y2hhbmNlcyBvZiB0aGlzCmFyZSBncmVhdGx5IGluY3JlYXNlZCBieSB0aGUgZmFjdCB0aGF0IGJj bWdlbmV0X25ldGlmX3N0b3Agc3RvcHMKdGhlIHRyYW5zbWl0IHF1ZXVlcyB3aGljaCBjYW4gZWFz aWx5IHByZWNpcGl0YXRlIGEgd2F0Y2hkb2cgdGltZS0Kb3V0IGJlY2F1c2Ugb2Ygc3RhbGUgdHJh bnNfc3RhcnQgZGF0YSBpbiB0aGUgcXVldWVzLgoKVGhpcyBjb21taXQgY29ycmVjdHMgdGhlIGJl aGF2aW9yIGJ5IGVuc3VyaW5nIHRoYXQgdGhlIHdhdGNoZG9nCnRpbWVvdXQgaXMgZGlzYWJsZWQg YmVmb3JlIGVudGVycmluZyBiY21nZW5ldF9uZXRpZl9zdG9wLiBUaGVyZQphcmUgY3VycmVudGx5 IG9ubHkgdHdvIHVzZXJzIG9mIHRoZSBiY21nZW5ldF9uZXRpZl9zdG9wIGZ1bmN0aW9uOgpjbG9z ZSBhbmQgc3VzcGVuZC4KClRoZSBjbG9zZSBjYXNlIGFscmVhZHkgaGFuZGxlcyB0aGUgaXNzdWUg YnkgZXhpdGluZyB0aGUgUlVOTklORwpzdGF0ZSBiZWZvcmUgaW52b2tpbmcgdGhlIGRyaXZlciBj bG9zZSBzZXJ2aWNlLgoKVGhlIHN1c3BlbmQgY2FzZSBub3cgcGVyZm9ybXMgdGhlIG5ldGlmX2Rl dmljZV9kZXRhY2ggdG8gZXhpdCB0aGUKUFJFU0VOVCBzdGF0ZSBiZWZvcmUgdGhlIGNhbGwgdG8g YmNtZ2VuZXRfbmV0aWZfc3RvcCByYXRoZXIgdGhhbgphZnRlciBpdC4KClRoZXNlIGJlaGF2aW9y cyBwcmV2ZW50IGFueSBmdXR1cmUgc2NoZWR1bGluZyBvZiB0aGUgZHJpdmVyIHRpbWVvdXQKc2Vy dmljZSBkdXJpbmcgdGhlIHdpbmRvdy4gVGhlIG5ldGlmX3R4X3N0b3BfYWxsX3F1ZXVlcyBmdW5j dGlvbgppbiBiY21nZW5ldF9uZXRpZl9zdG9wIGlzIHJlcGxhY2VkIHdpdGggbmV0aWZfdHhfZGlz YWJsZSB0byBlbnN1cmUKc3luY2hyb25pemF0aW9uIHdpdGggYW55IHRyYW5zbWl0IG9yIHRpbWVv dXQgdGhyZWFkcyB0aGF0IG1heQphbHJlYWR5IGJlIGV4ZWN1dGluZyBvbiBvdGhlciBjb3Jlcy4K CkZvciBzeW1tZXRyeSwgdGhlIG5ldGlmX2RldmljZV9hdHRhY2ggY2FsbCB1cG9uIHJlc3VtZSBp cyBtb3ZlZCB0bwphZnRlciB0aGUgY2FsbCB0byBiY21nZW5ldF9uZXRpZl9zdGFydC4gU2luY2Ug aXQgd2FrZXMgdGhlIHRyYW5zbWl0CnF1ZXVlcyBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGludm9r ZSBuZXRpZl90eF9zdGFydF9hbGxfcXVldWVzIGZyb20KYmNtZ2VuZXRfbmV0aWZfc3RhcnQgc28g aXQgaXMgbW92ZWQgaW50byB0aGUgZHJpdmVyIG9wZW4gc2VydmljZS4KClsgVXBzdHJlYW0gY29t bWl0IDA5ZTgwNWQyNTcwYTNhOTRmMTNkZDljOWFkMmJjYWIyM2RhNzZlMDkgXQoKRml4ZXM6IDFj MTAwOGM3OTNmYSAoIm5ldDogYmNtZ2VuZXQ6IGFkZCBtYWluIGRyaXZlciBmaWxlIikKU2lnbmVk LW9mZi1ieTogRG91ZyBCZXJnZXIgPG9wZW5kbWJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBG bG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMgfCAxMyArKysrKysrLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jCmluZGV4IDIwYzE2ODFiYjFhZi4u MmQ2ZjA5MGJmNjQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9n ZW5ldC9iY21nZW5ldC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0 L2JjbWdlbmV0LmMKQEAgLTI4NTUsNyArMjg1NSw2IEBAIHN0YXRpYyB2b2lkIGJjbWdlbmV0X25l dGlmX3N0YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAKIAl1bWFjX2VuYWJsZV9zZXQocHJp diwgQ01EX1RYX0VOIHwgQ01EX1JYX0VOLCB0cnVlKTsKIAotCW5ldGlmX3R4X3N0YXJ0X2FsbF9x dWV1ZXMoZGV2KTsKIAliY21nZW5ldF9lbmFibGVfdHhfbmFwaShwcml2KTsKIAogCS8qIE1vbml0 b3IgbGluayBpbnRlcnJ1cHRzIG5vdyAqLwpAQCAtMjkzNyw2ICsyOTM2LDggQEAgc3RhdGljIGlu dCBiY21nZW5ldF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAKIAliY21nZW5ldF9uZXRp Zl9zdGFydChkZXYpOwogCisJbmV0aWZfdHhfc3RhcnRfYWxsX3F1ZXVlcyhkZXYpOworCiAJcmV0 dXJuIDA7CiAKIGVycl9pcnExOgpAQCAtMjk1OCw3ICsyOTU5LDcgQEAgc3RhdGljIHZvaWQgYmNt Z2VuZXRfbmV0aWZfc3RvcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXN0cnVjdCBiY21nZW5l dF9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAogCWJjbWdlbmV0X2Rpc2FibGVfdHhf bmFwaShwcml2KTsKLQluZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMoZGV2KTsKKwluZXRpZl90eF9k aXNhYmxlKGRldik7CiAKIAkvKiBEaXNhYmxlIE1BQyByZWNlaXZlICovCiAJdW1hY19lbmFibGVf c2V0KHByaXYsIENNRF9SWF9FTiwgZmFsc2UpOwpAQCAtMzYyMCwxMyArMzYyMSwxMyBAQCBzdGF0 aWMgaW50IGJjbWdlbmV0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZCkKIAlpZiAoIW5ldGlmX3J1 bm5pbmcoZGV2KSkKIAkJcmV0dXJuIDA7CiAKKwluZXRpZl9kZXZpY2VfZGV0YWNoKGRldik7CisK IAliY21nZW5ldF9uZXRpZl9zdG9wKGRldik7CiAKIAlpZiAoIWRldmljZV9tYXlfd2FrZXVwKGQp KQogCQlwaHlfc3VzcGVuZChkZXYtPnBoeWRldik7CiAKLQluZXRpZl9kZXZpY2VfZGV0YWNoKGRl dik7Ci0KIAkvKiBQcmVwYXJlIHRoZSBkZXZpY2UgZm9yIFdha2Utb24tTEFOIGFuZCBzd2l0Y2gg dG8gdGhlIHNsb3cgY2xvY2sgKi8KIAlpZiAoZGV2aWNlX21heV93YWtldXAoZCkgJiYgcHJpdi0+ d29sb3B0cykgewogCQlyZXQgPSBiY21nZW5ldF9wb3dlcl9kb3duKHByaXYsIEdFTkVUX1BPV0VS X1dPTF9NQUdJQyk7CkBAIC0zNzAwLDggKzM3MDEsNiBAQCBzdGF0aWMgaW50IGJjbWdlbmV0X3Jl c3VtZShzdHJ1Y3QgZGV2aWNlICpkKQogCS8qIEFsd2F5cyBlbmFibGUgcmluZyAxNiAtIGRlc2Ny aXB0b3IgcmluZyAqLwogCWJjbWdlbmV0X2VuYWJsZV9kbWEocHJpdiwgZG1hX2N0cmwpOwogCi0J bmV0aWZfZGV2aWNlX2F0dGFjaChkZXYpOwotCiAJaWYgKCFkZXZpY2VfbWF5X3dha2V1cChkKSkK IAkJcGh5X3Jlc3VtZShkZXYtPnBoeWRldik7CiAKQEAgLTM3MTAsNiArMzcwOSw4IEBAIHN0YXRp YyBpbnQgYmNtZ2VuZXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmQpCiAKIAliY21nZW5ldF9uZXRp Zl9zdGFydChkZXYpOwogCisJbmV0aWZfZGV2aWNlX2F0dGFjaChkZXYpOworCiAJcmV0dXJuIDA7 CiAKIG91dF9jbGtfZGlzYWJsZToKLS0gCjIuMTkuMQoKCkZyb20gYTVmYzljYTYyMjRkM2NhOTgz MDFkYTRmNTgzNDNlZWVlOTIxZDcyZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBTYXQsIDE3IE5vdiAyMDE4IDIx OjU3OjAyIC0wODAwClN1YmplY3Q6IFtQQVRDSCAwNy8zNl0gbmV0LWdybzogcmVzZXQgc2tiLT5w a3RfdHlwZSBpbiBuYXBpX3JldXNlX3NrYigpCgpbIFVwc3RyZWFtIGNvbW1pdCAzM2Q5YTJjNzJm MDg2Y2JmMTA4N2IyZmQyZDFhMTVhYTlkZjE0YTdmIF0KCmV0aF90eXBlX3RyYW5zKCkgYXNzdW1l cyBpbml0aWFsIHZhbHVlIGZvciBza2ItPnBrdF90eXBlCmlzIFBBQ0tFVF9IT1NULgoKVGhpcyBp cyBpbmRlZWQgdGhlIHZhbHVlIHJpZ2h0IGFmdGVyIGEgZnJlc2ggc2tiIGFsbG9jYXRpb24uCgpI b3dldmVyLCBpdCBpcyBwb3NzaWJsZSB0aGF0IEdSTyBtZXJnZWQgYSBwYWNrZXQgd2l0aCBhIGRp ZmZlcmVudAp2YWx1ZSAobGlrZSBQQUNLRVRfT1RIRVJIT1NUIGluIGNhc2UgbWFjdmxhbiBpcyB1 c2VkKSwgc28Kd2UgbmVlZCB0byBtYWtlIHN1cmUgbmFwaS0+c2tiIHdpbGwgaGF2ZSBwa3RfdHlw ZSBzZXQgYmFjayB0bwpQQUNLRVRfSE9TVC4KCk90aGVyd2lzZSwgdmFsaWQgcGFja2V0cyBtaWdo dCBiZSBkcm9wcGVkIGJ5IHRoZSBzdGFjayBiZWNhdXNlCnRoZWlyIHBrdF90eXBlIGlzIG5vdCBQ QUNLRVRfSE9TVC4KCm5hcGlfcmV1c2Vfc2tiKCkgd2FzIGFkZGVkIGluIGNvbW1pdCA5NmU5M2Vh YjIwMzMgKCJncm86IEFkZAppbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBWTEFOIiksIGJ1dCB0aGlz IGJ1ZyBhbHdheXMgaGFzCmJlZW4gdGhlcmUuCgpGaXhlczogOTZlOTNlYWIyMDMzICgiZ3JvOiBB ZGQgaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgVkxBTiIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgNCArKysrCiAxIGZp bGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMg Yi9uZXQvY29yZS9kZXYuYwppbmRleCBiZjY2OWU3N2Y5ZjMuLjZhY2U4ZDIwMWFiOSAxMDA2NDQK LS0tIGEvbmV0L2NvcmUvZGV2LmMKKysrIGIvbmV0L2NvcmUvZGV2LmMKQEAgLTUxOTUsNiArNTE5 NSwxMCBAQCBzdGF0aWMgdm9pZCBuYXBpX3JldXNlX3NrYihzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5h cGksIHN0cnVjdCBza19idWZmICpza2IpCiAJc2tiLT52bGFuX3RjaSA9IDA7CiAJc2tiLT5kZXYg PSBuYXBpLT5kZXY7CiAJc2tiLT5za2JfaWlmID0gMDsKKworCS8qIGV0aF90eXBlX3RyYW5zKCkg YXNzdW1lcyBwa3RfdHlwZSBpcyBQQUNLRVRfSE9TVCAqLworCXNrYi0+cGt0X3R5cGUgPSBQQUNL RVRfSE9TVDsKKwogCXNrYi0+ZW5jYXBzdWxhdGlvbiA9IDA7CiAJc2tiX3NoaW5mbyhza2IpLT5n c29fdHlwZSA9IDA7CiAJc2tiLT50cnVlc2l6ZSA9IFNLQl9UUlVFU0laRShza2JfZW5kX29mZnNl dChza2IpKTsKLS0gCjIuMTkuMQoKCkZyb20gMDIwZmY1NGI0YTc4YWE3YTY0OTdlMzVhNWVkNGM0 YWUwMGMxNTc2NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2ll bi54aW5AZ21haWwuY29tPgpEYXRlOiBTdW4sIDE4IE5vdiAyMDE4IDE1OjIxOjUzICswODAwClN1 YmplY3Q6IFtQQVRDSCAwOC8zNl0gc2N0cDogbm90IGFsbG93IHRvIHNldCBhc29jIHByc2N0cF9l bmFibGUgYnkgc29ja29wdAoKWyBVcHN0cmVhbSBjb21taXQgY2MzY2NmMjZmMDY0OTA4OWIzYTM0 YTI3ODE5Nzc3NTVlYTM2ZTcyYyBdCgpBcyByZmM3NDk2I3NlY3Rpb240LjUgc2F5cyBhYm91dCBT Q1RQX1BSX1NVUFBPUlRFRDoKCiAgIFRoaXMgc29ja2V0IG9wdGlvbiBhbGxvd3MgdGhlIGVuYWJs aW5nIG9yIGRpc2FibGluZyBvZiB0aGUKICAgbmVnb3RpYXRpb24gb2YgUFItU0NUUCBzdXBwb3J0 IGZvciBmdXR1cmUgYXNzb2NpYXRpb25zLiAgRm9yIGV4aXN0aW5nCiAgIGFzc29jaWF0aW9ucywg aXQgYWxsb3dzIG9uZSB0byBxdWVyeSB3aGV0aGVyIG9yIG5vdCBQUi1TQ1RQIHN1cHBvcnQKICAg d2FzIG5lZ290aWF0ZWQgb24gYSBwYXJ0aWN1bGFyIGFzc29jaWF0aW9uLgoKSXQgbWVhbnMgb25s eSBzY3RwIHNvY2sncyBwcnNjdHBfZW5hYmxlIGNhbiBiZSBzZXQuCgpOb3RlIHRoYXQgZm9yIHRo ZSBsaW1pdGF0aW9uIG9mIFNDVFBfe0NVUlJFTlR8QUxMfV9BU1NPQywgd2Ugd2lsbAphZGQgaXQg d2hlbiBpbnRyb2R1Y2luZyBTQ1RQX3tGVVRVUkV8Q1VSUkVOVHxBTEx9X0FTU09DIGZvciBsaW51 eApzY3RwIGluIGFub3RoZXIgcGF0Y2hzZXQuCgp2MS0+djI6CiAgLSBkcm9wIHRoZSBwYXJhbXMu YXNzb2NfaWQgY2hlY2sgYXMgTmVpbCBzdWdnZXN0ZWQuCgpGaXhlczogMjhhYTRjMjZmY2UyICgi c2N0cDogYWRkIFNDVFBfUFJfU1VQUE9SVEVEIG9uIHNjdHAgc29ja29wdCIpClJlcG9ydGVkLWJ5 OiBZaW5nIFh1IDx5aW54dUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVj aWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9zb2NrZXQuYyB8IDI2ICsrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5j CmluZGV4IDlkOTAzYjg3MDc5MC4uMThmMDllNDMxMzkxIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9z b2NrZXQuYworKysgYi9uZXQvc2N0cC9zb2NrZXQuYwpAQCAtMzg1NSwzMiArMzg1NSwxNiBAQCBz dGF0aWMgaW50IHNjdHBfc2V0c29ja29wdF9wcl9zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLAog CQkJCQl1bnNpZ25lZCBpbnQgb3B0bGVuKQogewogCXN0cnVjdCBzY3RwX2Fzc29jX3ZhbHVlIHBh cmFtczsKLQlzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYzsKLQlpbnQgcmV0dmFsID0gLUVJ TlZBTDsKIAogCWlmIChvcHRsZW4gIT0gc2l6ZW9mKHBhcmFtcykpCi0JCWdvdG8gb3V0OwotCi0J aWYgKGNvcHlfZnJvbV91c2VyKCZwYXJhbXMsIG9wdHZhbCwgb3B0bGVuKSkgewotCQlyZXR2YWwg PSAtRUZBVUxUOwotCQlnb3RvIG91dDsKLQl9Ci0KLQlhc29jID0gc2N0cF9pZDJhc3NvYyhzaywg cGFyYW1zLmFzc29jX2lkKTsKLQlpZiAoYXNvYykgewotCQlhc29jLT5wcnNjdHBfZW5hYmxlID0g ISFwYXJhbXMuYXNzb2NfdmFsdWU7Ci0JfSBlbHNlIGlmICghcGFyYW1zLmFzc29jX2lkKSB7Ci0J CXN0cnVjdCBzY3RwX3NvY2sgKnNwID0gc2N0cF9zayhzayk7CisJCXJldHVybiAtRUlOVkFMOwog Ci0JCXNwLT5lcC0+cHJzY3RwX2VuYWJsZSA9ICEhcGFyYW1zLmFzc29jX3ZhbHVlOwotCX0gZWxz ZSB7Ci0JCWdvdG8gb3V0OwotCX0KKwlpZiAoY29weV9mcm9tX3VzZXIoJnBhcmFtcywgb3B0dmFs LCBvcHRsZW4pKQorCQlyZXR1cm4gLUVGQVVMVDsKIAotCXJldHZhbCA9IDA7CisJc2N0cF9zayhz ayktPmVwLT5wcnNjdHBfZW5hYmxlID0gISFwYXJhbXMuYXNzb2NfdmFsdWU7CiAKLW91dDoKLQly ZXR1cm4gcmV0dmFsOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IHNjdHBfc2V0c29ja29w dF9kZWZhdWx0X3ByaW5mbyhzdHJ1Y3Qgc29jayAqc2ssCi0tIAoyLjE5LjEKCgpGcm9tIDY5OWIx OTA5YTFiMWVlNWU1NGMxZGZkYTQ5MGUxY2IxOWM3YTNiNzIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFN0ZXBoZW4gTWFsbG9uIDxzdGVwaGVuLm1hbGxvbkBzeWRuZXkuZWR1LmF1PgpE YXRlOiBUdWUsIDIwIE5vdiAyMDE4IDE5OjE1OjAyICsxMTAwClN1YmplY3Q6IFtQQVRDSCAwOS8z Nl0gdGNwOiBGaXggU09GX1RJTUVTVEFNUElOR19SWF9IQVJEV0FSRSB0byB1c2UgdGhlIGxhdGVz dAogdGltZXN0YW1wIGR1cmluZyBUQ1AgY29hbGVzY2luZwoKWyBVcHN0cmVhbSBjb21taXQgY2Fk ZjlkZjI3ZTdjZjQwZTM5MGUwNjBhMWM3MWJiODZlY2RlNzk4YiBdCgpEdXJpbmcgdGNwIGNvYWxl c2NpbmcgZW5zdXJlIHRoYXQgdGhlIHNrYiBoYXJkd2FyZSB0aW1lc3RhbXAgcmVmZXJzIHRvIHRo ZQpoaWdoZXN0IHNlcXVlbmNlIG51bWJlciBkYXRhLgpQcmV2aW91c2x5IG9ubHkgdGhlIHNvZnR3 YXJlIHRpbWVzdGFtcCB3YXMgdXBkYXRlZCBkdXJpbmcgY29hbGVzY2luZy4KClNpZ25lZC1vZmYt Ynk6IFN0ZXBoZW4gTWFsbG9uIDxzdGVwaGVuLm1hbGxvbkBzeWRuZXkuZWR1LmF1PgpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3Bf aW5wdXQuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwppbmRleCA4Yjcy OTQ2ODg2MzMuLmZlYTg3NDU2OTljMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lucHV0LmMK KysrIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKQEAgLTQzNjAsNiArNDM2MCw3IEBAIHN0YXRpYyBi b29sIHRjcF90cnlfY29hbGVzY2Uoc3RydWN0IHNvY2sgKnNrLAogCWlmIChUQ1BfU0tCX0NCKGZy b20pLT5oYXNfcnh0c3RhbXApIHsKIAkJVENQX1NLQl9DQih0byktPmhhc19yeHRzdGFtcCA9IHRy dWU7CiAJCXRvLT50c3RhbXAgPSBmcm9tLT50c3RhbXA7CisJCXNrYl9od3RzdGFtcHModG8pLT5o d3RzdGFtcCA9IHNrYl9od3RzdGFtcHMoZnJvbSktPmh3dHN0YW1wOwogCX0KIAogCXJldHVybiB0 cnVlOwotLSAKMi4xOS4xCgoKRnJvbSAzZTVkZWMxYzI3YzJhMzY1YzliZGYxNDEwY2EzNDMyMDk0 NDE1ODcxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaXZhIFJlZGR5IEthbGxhbSA8 c2l2YS5rYWxsYW1AYnJvYWRjb20uY29tPgpEYXRlOiBUdWUsIDIwIE5vdiAyMDE4IDEwOjA0OjA0 ICswNTMwClN1YmplY3Q6IFtQQVRDSCAxMC8zNl0gdGczOiBBZGQgUEhZIHJlc2V0IGZvciA1NzE3 LzU3MTkvNTcyMCBpbiBjaGFuZ2UgcmluZwogYW5kIGZsb3cgY29udHJvbCBwYXRocwoKWyBVcHN0 cmVhbSBjb21taXQgNTk2NjNlNDIxOTljOTNkMWQ3MzE0ZDE0NDZmNjc4MmZjNGIxZWI4MSBdCgpU aGlzIHBhdGNoIGhhcyB0aGUgZml4IHRvIGF2b2lkIFBIWSBsb2NrdXAgd2l0aCA1NzE3LzU3MTkv NTcyMCBpbiBjaGFuZ2UKcmluZyBhbmQgZmxvdyBjb250cm9sIHBhdGhzLiBUaGlzIHBhdGNoIHNv bHZlcyB0aGUgUlggaGFuZyB3aGlsZSBkb2luZwpjb250aW51b3VzIHJpbmcgb3IgZmxvdyBjb250 cm9sIHBhcmFtZXRlcnMgd2l0aCBoZWF2eSB0cmFmZmljIGZyb20gcGVlci4KClNpZ25lZC1vZmYt Ynk6IFNpdmEgUmVkZHkgS2FsbGFtIDxzaXZhLmthbGxhbUBicm9hZGNvbS5jb20+CkFja2VkLWJ5 OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS90ZzMuYyB8IDE4ICsrKysrKysrKysrKysrKystLQogMSBmaWxlIGNo YW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS90ZzMuYwppbmRleCBhYTEzNzRkMGFmOTMuLmMwMzI5NmMyMDRjMiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vdGczLmMKQEAgLTEyNDExLDYgKzEyNDExLDcgQEAgc3RhdGljIGlu dCB0ZzNfc2V0X3JpbmdwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9v bF9yaW5ncGFyYW0gKmUKIHsKIAlzdHJ1Y3QgdGczICp0cCA9IG5ldGRldl9wcml2KGRldik7CiAJ aW50IGksIGlycV9zeW5jID0gMCwgZXJyID0gMDsKKwlib29sIHJlc2V0X3BoeSA9IGZhbHNlOwog CiAJaWYgKChlcmluZy0+cnhfcGVuZGluZyA+IHRwLT5yeF9zdGRfcmluZ19tYXNrKSB8fAogCSAg ICAoZXJpbmctPnJ4X2p1bWJvX3BlbmRpbmcgPiB0cC0+cnhfam1iX3JpbmdfbWFzaykgfHwKQEAg LTEyNDQyLDcgKzEyNDQzLDEzIEBAIHN0YXRpYyBpbnQgdGczX3NldF9yaW5ncGFyYW0oc3RydWN0 IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfcmluZ3BhcmFtICplCiAKIAlpZiAobmV0 aWZfcnVubmluZyhkZXYpKSB7CiAJCXRnM19oYWx0KHRwLCBSRVNFVF9LSU5EX1NIVVRET1dOLCAx KTsKLQkJZXJyID0gdGczX3Jlc3RhcnRfaHcodHAsIGZhbHNlKTsKKwkJLyogUmVzZXQgUEhZIHRv IGF2b2lkIFBIWSBsb2NrIHVwICovCisJCWlmICh0ZzNfYXNpY19yZXYodHApID09IEFTSUNfUkVW XzU3MTcgfHwKKwkJICAgIHRnM19hc2ljX3Jldih0cCkgPT0gQVNJQ19SRVZfNTcxOSB8fAorCQkg ICAgdGczX2FzaWNfcmV2KHRwKSA9PSBBU0lDX1JFVl81NzIwKQorCQkJcmVzZXRfcGh5ID0gdHJ1 ZTsKKworCQllcnIgPSB0ZzNfcmVzdGFydF9odyh0cCwgcmVzZXRfcGh5KTsKIAkJaWYgKCFlcnIp CiAJCQl0ZzNfbmV0aWZfc3RhcnQodHApOwogCX0KQEAgLTEyNDc2LDYgKzEyNDgzLDcgQEAgc3Rh dGljIGludCB0ZzNfc2V0X3BhdXNlcGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0 IGV0aHRvb2xfcGF1c2VwYXJhbQogewogCXN0cnVjdCB0ZzMgKnRwID0gbmV0ZGV2X3ByaXYoZGV2 KTsKIAlpbnQgZXJyID0gMDsKKwlib29sIHJlc2V0X3BoeSA9IGZhbHNlOwogCiAJaWYgKHRwLT5s aW5rX2NvbmZpZy5hdXRvbmVnID09IEFVVE9ORUdfRU5BQkxFKQogCQl0ZzNfd2Fybl9tZ210X2xp bmtfZmxhcCh0cCk7CkBAIC0xMjU2Niw3ICsxMjU3NCwxMyBAQCBzdGF0aWMgaW50IHRnM19zZXRf cGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF9wYXVzZXBh cmFtCiAKIAkJaWYgKG5ldGlmX3J1bm5pbmcoZGV2KSkgewogCQkJdGczX2hhbHQodHAsIFJFU0VU X0tJTkRfU0hVVERPV04sIDEpOwotCQkJZXJyID0gdGczX3Jlc3RhcnRfaHcodHAsIGZhbHNlKTsK KwkJCS8qIFJlc2V0IFBIWSB0byBhdm9pZCBQSFkgbG9jayB1cCAqLworCQkJaWYgKHRnM19hc2lj X3Jldih0cCkgPT0gQVNJQ19SRVZfNTcxNyB8fAorCQkJICAgIHRnM19hc2ljX3Jldih0cCkgPT0g QVNJQ19SRVZfNTcxOSB8fAorCQkJICAgIHRnM19hc2ljX3Jldih0cCkgPT0gQVNJQ19SRVZfNTcy MCkKKwkJCQlyZXNldF9waHkgPSB0cnVlOworCisJCQllcnIgPSB0ZzNfcmVzdGFydF9odyh0cCwg cmVzZXRfcGh5KTsKIAkJCWlmICghZXJyKQogCQkJCXRnM19uZXRpZl9zdGFydCh0cCk7CiAJCX0K LS0gCjIuMTkuMQoKCkZyb20gYzFiYTA2ZGE1OWFiMWVhNjdjMjY1ODg2ZTRiMGEyYmZjMDcxMmQw ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9uIE1hbG95IDxkb25tYWxvOTlAZ21h aWwuY29tPgpEYXRlOiBTYXQsIDE3IE5vdiAyMDE4IDEyOjE3OjA2IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCAxMS8zNl0gdGlwYzogZG9uJ3QgYXNzdW1lIGxpbmVhciBidWZmZXIgd2hlbiByZWFkaW5n IGFuY2lsbGFyeQogZGF0YQoKWyBVcHN0cmVhbSBjb21taXQgMWMxMjc0YTU2OTk5ZmJkZjljZjg0 ZTMzMmIyODQ0OGJiMmQ1NTIyMSBdCgpUaGUgY29kZSBmb3IgcmVhZGluZyBhbmNpbGxhcnkgZGF0 YSBmcm9tIGEgcmVjZWl2ZWQgYnVmZmVyIGlzIGFzc3VtaW5nCnRoZSBidWZmZXIgaXMgbGluZWFy LiBUbyBtYWtlIHRoaXMgYXNzdW1wdGlvbiB0cnVlIHdlIGhhdmUgdG8gbGluZWFyaXplCnRoZSBi dWZmZXIgYmVmb3JlIG1lc3NhZ2UgZGF0YSBpcyByZWFkLgoKU2lnbmVkLW9mZi1ieTogSm9uIE1h bG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvc29ja2V0LmMgfCAxNSArKysr KysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL3NvY2tldC5jIGIvbmV0L3RpcGMvc29ja2V0LmMK aW5kZXggY2RhZjM1MzRlMzczLi5jN2U0YWZmODkzNWYgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL3Nv Y2tldC5jCisrKyBiL25ldC90aXBjL3NvY2tldC5jCkBAIC0xNTQxLDE2ICsxNTQxLDE3IEBAIHN0 YXRpYyB2b2lkIHRpcGNfc2tfc2V0X29yaWdfYWRkcihzdHJ1Y3QgbXNnaGRyICptLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogLyoqCiAgKiB0aXBjX3NrX2FuY19kYXRhX3JlY3YgLSBvcHRpb25hbGx5 IGNhcHR1cmUgYW5jaWxsYXJ5IGRhdGEgZm9yIHJlY2VpdmVkIG1lc3NhZ2UKICAqIEBtOiBkZXNj cmlwdG9yIGZvciBtZXNzYWdlIGluZm8KLSAqIEBtc2c6IHJlY2VpdmVkIG1lc3NhZ2UgaGVhZGVy CisgKiBAc2tiOiByZWNlaXZlZCBtZXNzYWdlIGJ1ZmZlcgogICogQHRzazogVElQQyBwb3J0IGFz c29jaWF0ZWQgd2l0aCBtZXNzYWdlCiAgKgogICogTm90ZTogQW5jaWxsYXJ5IGRhdGEgaXMgbm90 IGNhcHR1cmVkIGlmIG5vdCByZXF1ZXN0ZWQgYnkgcmVjZWl2ZXIuCiAgKgogICogUmV0dXJucyAw IGlmIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBlcnJubwogICovCi1zdGF0aWMgaW50IHRpcGNfc2tf YW5jX2RhdGFfcmVjdihzdHJ1Y3QgbXNnaGRyICptLCBzdHJ1Y3QgdGlwY19tc2cgKm1zZywKK3N0 YXRpYyBpbnQgdGlwY19za19hbmNfZGF0YV9yZWN2KHN0cnVjdCBtc2doZHIgKm0sIHN0cnVjdCBz a19idWZmICpza2IsCiAJCQkJIHN0cnVjdCB0aXBjX3NvY2sgKnRzaykKIHsKKwlzdHJ1Y3QgdGlw Y19tc2cgKm1zZzsKIAl1MzIgYW5jX2RhdGFbM107CiAJdTMyIGVycjsKIAl1MzIgZGVzdF90eXBl OwpAQCAtMTU1OSw2ICsxNTYwLDcgQEAgc3RhdGljIGludCB0aXBjX3NrX2FuY19kYXRhX3JlY3Yo c3RydWN0IG1zZ2hkciAqbSwgc3RydWN0IHRpcGNfbXNnICptc2csCiAKIAlpZiAobGlrZWx5KG0t Pm1zZ19jb250cm9sbGVuID09IDApKQogCQlyZXR1cm4gMDsKKwltc2cgPSBidWZfbXNnKHNrYik7 CiAKIAkvKiBPcHRpb25hbGx5IGNhcHR1cmUgZXJyb3JlZCBtZXNzYWdlIG9iamVjdChzKSAqLwog CWVyciA9IG1zZyA/IG1zZ19lcnJjb2RlKG1zZykgOiAwOwpAQCAtMTU2OSw2ICsxNTcxLDkgQEAg c3RhdGljIGludCB0aXBjX3NrX2FuY19kYXRhX3JlY3Yoc3RydWN0IG1zZ2hkciAqbSwgc3RydWN0 IHRpcGNfbXNnICptc2csCiAJCWlmIChyZXMpCiAJCQlyZXR1cm4gcmVzOwogCQlpZiAoYW5jX2Rh dGFbMV0pIHsKKwkJCWlmIChza2JfbGluZWFyaXplKHNrYikpCisJCQkJcmV0dXJuIC1FTk9NRU07 CisJCQltc2cgPSBidWZfbXNnKHNrYik7CiAJCQlyZXMgPSBwdXRfY21zZyhtLCBTT0xfVElQQywg VElQQ19SRVREQVRBLCBhbmNfZGF0YVsxXSwKIAkJCQkgICAgICAgbXNnX2RhdGEobXNnKSk7CiAJ CQlpZiAocmVzKQpAQCAtMTczMCw5ICsxNzM1LDEwIEBAIHN0YXRpYyBpbnQgdGlwY19yZWN2bXNn KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm0sCiAKIAkvKiBDb2xsZWN0IG1z ZyBtZXRhIGRhdGEsIGluY2x1ZGluZyBlcnJvciBjb2RlIGFuZCByZWplY3RlZCBkYXRhICovCiAJ dGlwY19za19zZXRfb3JpZ19hZGRyKG0sIHNrYik7Ci0JcmMgPSB0aXBjX3NrX2FuY19kYXRhX3Jl Y3YobSwgaGRyLCB0c2spOworCXJjID0gdGlwY19za19hbmNfZGF0YV9yZWN2KG0sIHNrYiwgdHNr KTsKIAlpZiAodW5saWtlbHkocmMpKQogCQlnb3RvIGV4aXQ7CisJaGRyID0gYnVmX21zZyhza2Ip OwogCiAJLyogQ2FwdHVyZSBkYXRhIGlmIG5vbi1lcnJvciBtc2csIG90aGVyd2lzZSBqdXN0IHNl dCByZXR1cm4gdmFsdWUgKi8KIAlpZiAobGlrZWx5KCFlcnIpKSB7CkBAIC0xODQyLDkgKzE4NDgs MTAgQEAgc3RhdGljIGludCB0aXBjX3JlY3ZzdHJlYW0oc3RydWN0IHNvY2tldCAqc29jaywgc3Ry dWN0IG1zZ2hkciAqbSwKIAkJLyogQ29sbGVjdCBtc2cgbWV0YSBkYXRhLCBpbmNsLiBlcnJvciBj b2RlIGFuZCByZWplY3RlZCBkYXRhICovCiAJCWlmICghY29waWVkKSB7CiAJCQl0aXBjX3NrX3Nl dF9vcmlnX2FkZHIobSwgc2tiKTsKLQkJCXJjID0gdGlwY19za19hbmNfZGF0YV9yZWN2KG0sIGhk ciwgdHNrKTsKKwkJCXJjID0gdGlwY19za19hbmNfZGF0YV9yZWN2KG0sIHNrYiwgdHNrKTsKIAkJ CWlmIChyYykKIAkJCQlicmVhazsKKwkJCWhkciA9IGJ1Zl9tc2coc2tiKTsKIAkJfQogCiAJCS8q IENvcHkgZGF0YSBpZiBtc2cgb2ssIG90aGVyd2lzZSByZXR1cm4gZXJyb3IvcGFydGlhbCBkYXRh ICovCi0tIAoyLjE5LjEKCgpGcm9tIGExMGQyMTA1YjM0NmM4ZDNhNzc1YTUxMDY4OGY5ZjVjNzQw NGE2MDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvbiBNYWxveSA8ZG9ubWFsbzk5 QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxNiBOb3YgMjAxOCAxNjo1NTowNCAtMDUwMApTdWJqZWN0 OiBbUEFUQ0ggMTIvMzZdIHRpcGM6IGZpeCBsb2NrZGVwIHdhcm5pbmcgd2hlbiByZWluaXRpbGFp emluZyBzb2NrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCBhZGJhNzViZTBkMjNjY2E5MmEwMjg3NDlk OTJjNjBjODkwOWJiZGIzIF0KCldlIGdldCB0aGUgZm9sbG93aW5nIHdhcm5pbmc6CgpbICAgNDcu OTI2MTQwXSAzMi1iaXQgbm9kZSBhZGRyZXNzIGhhc2ggc2V0IHRvIDIwMTBhMGEKWyAgIDQ3Ljky NzIwMl0KWyAgIDQ3LjkyNzQzM10gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KWyAg IDQ3LjkyODA1MF0gV0FSTklORzogaW5jb25zaXN0ZW50IGxvY2sgc3RhdGUKWyAgIDQ3LjkyODY2 MV0gNC4xOS4wKyAjMzcgVGFpbnRlZDogRyAgICAgICAgICAgIEUKWyAgIDQ3LjkyOTM0Nl0gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KWyAgIDQ3LjkyOTk1NF0gaW5jb25zaXN0ZW50 IHtTT0ZUSVJRLU9OLVd9IC0+IHtJTi1TT0ZUSVJRLVd9IHVzYWdlLgpbICAgNDcuOTMwMTE2XSBz d2FwcGVyLzMvMCBbSEMwWzBdOlNDMVszXTpIRTE6U0UwXSB0YWtlczoKWyAgIDQ3LjkzMDExNl0g MDAwMDAwMDBhZjhiYzMxZSAoJigmaHQtPmxvY2spLT5ybG9jayl7Ky4/Ln0sIGF0OiByaGFzaHRh YmxlX3dhbGtfZW50ZXIrMHgzNi8weGIwClsgICA0Ny45MzAxMTZdIHtTT0ZUSVJRLU9OLVd9IHN0 YXRlIHdhcyByZWdpc3RlcmVkIGF0OgpbICAgNDcuOTMwMTE2XSAgIF9yYXdfc3Bpbl9sb2NrKzB4 MjkvMHg2MApbICAgNDcuOTMwMTE2XSAgIHJodF9kZWZlcnJlZF93b3JrZXIrMHg1NTYvMHg4MTAK WyAgIDQ3LjkzMDExNl0gICBwcm9jZXNzX29uZV93b3JrKzB4MWY1LzB4NTQwClsgICA0Ny45MzAx MTZdICAgd29ya2VyX3RocmVhZCsweDY0LzB4M2UwClsgICA0Ny45MzAxMTZdICAga3RocmVhZCsw eDExMi8weDE1MApbICAgNDcuOTMwMTE2XSAgIHJldF9mcm9tX2ZvcmsrMHgzYS8weDUwClsgICA0 Ny45MzAxMTZdIGlycSBldmVudCBzdGFtcDogMTQwNDQKWyAgIDQ3LjkzMDExNl0gaGFyZGlycXMg bGFzdCAgZW5hYmxlZCBhdCAoMTQwNDQpOiBbPGZmZmZmZmZmOWEwN2ZiYmE+XSBfX2xvY2FsX2Jo X2VuYWJsZV9pcCsweDdhLzB4ZjAKWyAgIDQ3LjkzODExN10gaGFyZGlycXMgbGFzdCBkaXNhYmxl ZCBhdCAoMTQwNDMpOiBbPGZmZmZmZmZmOWEwN2ZiODE+XSBfX2xvY2FsX2JoX2VuYWJsZV9pcCsw eDQxLzB4ZjAKWyAgIDQ3LjkzODExN10gc29mdGlycXMgbGFzdCAgZW5hYmxlZCBhdCAoMTQwMjgp OiBbPGZmZmZmZmZmOWEwODAzZWU+XSBpcnFfZW50ZXIrMHg1ZS8weDYwClsgICA0Ny45MzgxMTdd IHNvZnRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDE0MDI5KTogWzxmZmZmZmZmZjlhMDgwNGE1Pl0g aXJxX2V4aXQrMHhiNS8weGMwClsgICA0Ny45MzgxMTddClsgICA0Ny45MzgxMTddIG90aGVyIGlu Zm8gdGhhdCBtaWdodCBoZWxwIHVzIGRlYnVnIHRoaXM6ClsgICA0Ny45MzgxMTddICBQb3NzaWJs ZSB1bnNhZmUgbG9ja2luZyBzY2VuYXJpbzoKWyAgIDQ3LjkzODExN10KWyAgIDQ3LjkzODExN10g ICAgICAgIENQVTAKWyAgIDQ3LjkzODExN10gICAgICAgIC0tLS0KWyAgIDQ3LjkzODExN10gICBs b2NrKCYoJmh0LT5sb2NrKS0+cmxvY2spOwpbICAgNDcuOTM4MTE3XSAgIDxJbnRlcnJ1cHQ+Clsg ICA0Ny45MzgxMTddICAgICBsb2NrKCYoJmh0LT5sb2NrKS0+cmxvY2spOwpbICAgNDcuOTM4MTE3 XQpbICAgNDcuOTM4MTE3XSAgKioqIERFQURMT0NLICoqKgpbICAgNDcuOTM4MTE3XQpbICAgNDcu OTM4MTE3XSAyIGxvY2tzIGhlbGQgYnkgc3dhcHBlci8zLzA6ClsgICA0Ny45MzgxMTddICAjMDog MDAwMDAwMDA2MmM2NGY5MCAoKCZkLT50aW1lcikpeysuLS59LCBhdDogY2FsbF90aW1lcl9mbisw eDUvMHgyODAKWyAgIDQ3LjkzODExN10gICMxOiAwMDAwMDAwMGVlMzk2MTljICgmKCZkLT5sb2Nr KS0+cmxvY2speysuLS59LCBhdDogdGlwY19kaXNjX3RpbWVvdXQrMHhjOC8weDU0MCBbdGlwY10K WyAgIDQ3LjkzODExN10KWyAgIDQ3LjkzODExN10gc3RhY2sgYmFja3RyYWNlOgpbICAgNDcuOTM4 MTE3XSBDUFU6IDMgUElEOiAwIENvbW06IHN3YXBwZXIvMyBUYWludGVkOiBHICAgICAgICAgICAg RSAgICAgNC4xOS4wKyAjMzcKWyAgIDQ3LjkzODExN10gSGFyZHdhcmUgbmFtZTogQm9jaHMgQm9j aHMsIEJJT1MgQm9jaHMgMDEvMDEvMjAxMQpbICAgNDcuOTM4MTE3XSBDYWxsIFRyYWNlOgpbICAg NDcuOTM4MTE3XSAgPElSUT4KWyAgIDQ3LjkzODExN10gIGR1bXBfc3RhY2srMHg1ZS8weDhiClsg ICA0Ny45MzgxMTddICBwcmludF91c2FnZV9idWcrMHgxZWQvMHgxZmYKWyAgIDQ3LjkzODExN10g IG1hcmtfbG9jaysweDViNS8weDYzMApbICAgNDcuOTM4MTE3XSAgX19sb2NrX2FjcXVpcmUrMHg0 YzAvMHgxOGYwClsgICA0Ny45MzgxMTddICA/IGxvY2tfYWNxdWlyZSsweGE2LzB4MTgwClsgICA0 Ny45MzgxMTddICBsb2NrX2FjcXVpcmUrMHhhNi8weDE4MApbICAgNDcuOTM4MTE3XSAgPyByaGFz aHRhYmxlX3dhbGtfZW50ZXIrMHgzNi8weGIwClsgICA0Ny45MzgxMTddICBfcmF3X3NwaW5fbG9j aysweDI5LzB4NjAKWyAgIDQ3LjkzODExN10gID8gcmhhc2h0YWJsZV93YWxrX2VudGVyKzB4MzYv MHhiMApbICAgNDcuOTM4MTE3XSAgcmhhc2h0YWJsZV93YWxrX2VudGVyKzB4MzYvMHhiMApbICAg NDcuOTM4MTE3XSAgdGlwY19za19yZWluaXQrMHhiMC8weDQxMCBbdGlwY10KWyAgIDQ3LjkzODEx N10gID8gbWFya19oZWxkX2xvY2tzKzB4NmYvMHg5MApbICAgNDcuOTM4MTE3XSAgPyBfX2xvY2Fs X2JoX2VuYWJsZV9pcCsweDdhLzB4ZjAKWyAgIDQ3LjkzODExN10gID8gbG9ja2RlcF9oYXJkaXJx c19vbisweDIwLzB4MWEwClsgICA0Ny45MzgxMTddICB0aXBjX25ldF9maW5hbGl6ZSsweGJmLzB4 MTgwIFt0aXBjXQpbICAgNDcuOTM4MTE3XSAgdGlwY19kaXNjX3RpbWVvdXQrMHg1MDkvMHg1NDAg W3RpcGNdClsgICA0Ny45MzgxMTddICA/IGNhbGxfdGltZXJfZm4rMHg1LzB4MjgwClsgICA0Ny45 MzgxMTddICA/IHRpcGNfZGlzY19tc2dfeG1pdC5pc3JhLjE5KzB4YTAvMHhhMCBbdGlwY10KWyAg IDQ3LjkzODExN10gID8gdGlwY19kaXNjX21zZ194bWl0LmlzcmEuMTkrMHhhMC8weGEwIFt0aXBj XQpbICAgNDcuOTM4MTE3XSAgY2FsbF90aW1lcl9mbisweGExLzB4MjgwClsgICA0Ny45MzgxMTdd ICA/IHRpcGNfZGlzY19tc2dfeG1pdC5pc3JhLjE5KzB4YTAvMHhhMCBbdGlwY10KWyAgIDQ3Ljkz ODExN10gIHJ1bl90aW1lcl9zb2Z0aXJxKzB4MWYyLzB4NGQwClsgICA0Ny45MzgxMTddICBfX2Rv X3NvZnRpcnErMHhmYy8weDQxMwpbICAgNDcuOTM4MTE3XSAgaXJxX2V4aXQrMHhiNS8weGMwClsg ICA0Ny45MzgxMTddICBzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQrMHhhYy8weDIxMApbICAgNDcu OTM4MTE3XSAgYXBpY190aW1lcl9pbnRlcnJ1cHQrMHhmLzB4MjAKWyAgIDQ3LjkzODExN10gIDwv SVJRPgpbICAgNDcuOTM4MTE3XSBSSVA6IDAwMTA6ZGVmYXVsdF9pZGxlKzB4MWMvMHgxNDAKWyAg IDQ3LjkzODExN10gQ29kZTogOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAg OTAgMGYgMWYgNDQgMDAgMDAgNDEgNTQgNTUgNTMgNjUgOGIgMmQgZDggMmIgNzQgNjUgMGYgMWYg NDQgMDAgMDAgZTggYzYgMmMgOGIgZmYgZmIgZjQgPDY1PiA4YiAyZCBjNSAyYiA3NCA2NSAwZiAx ZiA0NCAwMCAwMCA1YiA1ZCA0MSA1YyBjMyA2NSA4YiAwNSBiNCAyYgpbICAgNDcuOTM4MTE3XSBS U1A6IDAwMTg6ZmZmZmFmNmFjMDIwN2VjOCBFRkxBR1M6IDAwMDAwMjA2IE9SSUdfUkFYOiBmZmZm ZmZmZmZmZmZmZjEzClsgICA0Ny45MzgxMTddIFJBWDogZmZmZjhmNWIzNzM1ZTIwMCBSQlg6IDAw MDAwMDAwMDAwMDAwMDMgUkNYOiAwMDAwMDAwMDAwMDAwMDAxClsgICA0Ny45MzgxMTddIFJEWDog MDAwMDAwMDAwMDAwMDAwMSBSU0k6IDAwMDAwMDAwMDAwMDAwMDEgUkRJOiBmZmZmOGY1YjM3MzVl MjAwClsgICA0Ny45MzgxMTddIFJCUDogMDAwMDAwMDAwMDAwMDAwMyBSMDg6IDAwMDAwMDAwMDAw MDAwMDEgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClsgICA0Ny45MzgxMTddIFIxMDogMDAwMDAwMDAw MDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiAwMDAwMDAwMDAwMDAwMDAwClsgICA0 Ny45MzgxMTddIFIxMzogMDAwMDAwMDAwMDAwMDAwMCBSMTQ6IGZmZmY4ZjViMzczNWUyMDAgUjE1 OiBmZmZmOGY1YjM3MzVlMjAwClsgICA0Ny45MzgxMTddICA/IGRlZmF1bHRfaWRsZSsweDFhLzB4 MTQwClsgICA0Ny45MzgxMTddICBkb19pZGxlKzB4MWJjLzB4MjgwClsgICA0Ny45MzgxMTddICBj cHVfc3RhcnR1cF9lbnRyeSsweDE5LzB4MjAKWyAgIDQ3LjkzODExN10gIHN0YXJ0X3NlY29uZGFy eSsweDE4Ny8weDFjMApbICAgNDcuOTM4MTE3XSAgc2Vjb25kYXJ5X3N0YXJ0dXBfNjQrMHhhNC8w eGIwCgpUaGUgcmVhc29uIHNlZW1zIHRvIGJlIHRoYXQgdGlwY19uZXRfZmluYWxpemUoKS0+dGlw Y19za19yZWluaXQoKSBpcwpjYWxsaW5nIHRoZSBmdW5jdGlvbiByaGFzaHRhYmxlX3dhbGtfZW50 ZXIoKSB3aXRoaW4gYSB0aW1lciBpbnRlcnJ1cHQuCldlIGZpeCB0aGlzIGJ5IGV4ZWN1dGluZyB0 aXBjX25ldF9maW5hbGl6ZSgpIGluIHdvcmsgcXVldWUgY29udGV4dC4KCkFja2VkLWJ5OiBZaW5n IFh1ZSA8eWluZy54dWVAd2luZHJpdmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9uIE1hbG95IDxq b24ubWFsb3lAZXJpY3Nzb24uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvZGlzY292ZXIuYyB8IDE5ICsrKysrKysr KystLS0tLS0tLS0KIG5ldC90aXBjL25ldC5jICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIG5ldC90aXBjL25ldC5oICAgICAgfCAgMiArLQog MyBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvdGlwYy9kaXNjb3Zlci5jIGIvbmV0L3RpcGMvZGlzY292ZXIuYwppbmRleCAy ODMwNzA5OTU3YmQuLmMxMzhkNjhlOGE2OSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvZGlzY292ZXIu YworKysgYi9uZXQvdGlwYy9kaXNjb3Zlci5jCkBAIC0xNjYsNyArMTY2LDggQEAgc3RhdGljIGJv b2wgdGlwY19kaXNjX2FkZHJfdHJpYWxfbXNnKHN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIgKmQsCiAK IAkvKiBBcHBseSB0cmlhbCBhZGRyZXNzIGlmIHdlIGp1c3QgbGVmdCB0cmlhbCBwZXJpb2QgKi8K IAlpZiAoIXRyaWFsICYmICFzZWxmKSB7Ci0JCXRpcGNfbmV0X2ZpbmFsaXplKG5ldCwgdG4tPnRy aWFsX2FkZHIpOworCQl0aXBjX3NjaGVkX25ldF9maW5hbGl6ZShuZXQsIHRuLT50cmlhbF9hZGRy KTsKKwkJbXNnX3NldF9wcmV2bm9kZShidWZfbXNnKGQtPnNrYiksIHRuLT50cmlhbF9hZGRyKTsK IAkJbXNnX3NldF90eXBlKGJ1Zl9tc2coZC0+c2tiKSwgRFNDX1JFUV9NU0cpOwogCX0KIApAQCAt MzAwLDE0ICszMDEsMTIgQEAgc3RhdGljIHZvaWQgdGlwY19kaXNjX3RpbWVvdXQoc3RydWN0IHRp bWVyX2xpc3QgKnQpCiAJCWdvdG8gZXhpdDsKIAl9CiAKLQkvKiBUcmlhbCBwZXJpb2Qgb3ZlciA/ ICovCi0JaWYgKCF0aW1lX2JlZm9yZShqaWZmaWVzLCB0bi0+YWRkcl90cmlhbF9lbmQpKSB7Ci0J CS8qIERpZCB3ZSBqdXN0IGxlYXZlIGl0ID8gKi8KLQkJaWYgKCF0aXBjX293bl9hZGRyKG5ldCkp Ci0JCQl0aXBjX25ldF9maW5hbGl6ZShuZXQsIHRuLT50cmlhbF9hZGRyKTsKLQotCQltc2dfc2V0 X3R5cGUoYnVmX21zZyhkLT5za2IpLCBEU0NfUkVRX01TRyk7Ci0JCW1zZ19zZXRfcHJldm5vZGUo YnVmX21zZyhkLT5za2IpLCB0aXBjX293bl9hZGRyKG5ldCkpOworCS8qIERpZCB3ZSBqdXN0IGxl YXZlIHRyaWFsIHBlcmlvZCA/ICovCisJaWYgKCF0aW1lX2JlZm9yZShqaWZmaWVzLCB0bi0+YWRk cl90cmlhbF9lbmQpICYmICF0aXBjX293bl9hZGRyKG5ldCkpIHsKKwkJbW9kX3RpbWVyKCZkLT50 aW1lciwgamlmZmllcyArIFRJUENfRElTQ19JTklUKTsKKwkJc3Bpbl91bmxvY2tfYmgoJmQtPmxv Y2spOworCQl0aXBjX3NjaGVkX25ldF9maW5hbGl6ZShuZXQsIHRuLT50cmlhbF9hZGRyKTsKKwkJ cmV0dXJuOwogCX0KIAogCS8qIEFkanVzdCB0aW1lb3V0IGludGVydmFsIGFjY29yZGluZyB0byBk aXNjb3ZlcnkgcGhhc2UgKi8KQEAgLTMxOSw2ICszMTgsOCBAQCBzdGF0aWMgdm9pZCB0aXBjX2Rp c2NfdGltZW91dChzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKIAkJCWQtPnRpbWVyX2ludHYgPSBUSVBD X0RJU0NfU0xPVzsKIAkJZWxzZSBpZiAoIWQtPm51bV9ub2RlcyAmJiBkLT50aW1lcl9pbnR2ID4g VElQQ19ESVNDX0ZBU1QpCiAJCQlkLT50aW1lcl9pbnR2ID0gVElQQ19ESVNDX0ZBU1Q7CisJCW1z Z19zZXRfdHlwZShidWZfbXNnKGQtPnNrYiksIERTQ19SRVFfTVNHKTsKKwkJbXNnX3NldF9wcmV2 bm9kZShidWZfbXNnKGQtPnNrYiksIHRuLT50cmlhbF9hZGRyKTsKIAl9CiAKIAltb2RfdGltZXIo JmQtPnRpbWVyLCBqaWZmaWVzICsgZC0+dGltZXJfaW50dik7CmRpZmYgLS1naXQgYS9uZXQvdGlw Yy9uZXQuYyBiL25ldC90aXBjL25ldC5jCmluZGV4IDYyMTk5Y2Y1YTU2Yy4uZjA3NmVkYjc0MzM4 IDEwMDY0NAotLS0gYS9uZXQvdGlwYy9uZXQuYworKysgYi9uZXQvdGlwYy9uZXQuYwpAQCAtMTA0 LDYgKzEwNCwxNCBAQAogICogICAgIC0gQSBsb2NhbCBzcGluX2xvY2sgcHJvdGVjdGluZyB0aGUg cXVldWUgb2Ygc3Vic2NyaWJlciBldmVudHMuCiAqLwogCitzdHJ1Y3QgdGlwY19uZXRfd29yayB7 CisJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CisJc3RydWN0IG5ldCAqbmV0OworCXUzMiBhZGRy OworfTsKKworc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0LCB1 MzIgYWRkcik7CisKIGludCB0aXBjX25ldF9pbml0KHN0cnVjdCBuZXQgKm5ldCwgdTggKm5vZGVf aWQsIHUzMiBhZGRyKQogewogCWlmICh0aXBjX293bl9pZChuZXQpKSB7CkBAIC0xMTksMTcgKzEy NywzOCBAQCBpbnQgdGlwY19uZXRfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHU4ICpub2RlX2lkLCB1 MzIgYWRkcikKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCB0aXBjX25ldF9maW5hbGl6ZShzdHJ1Y3Qg bmV0ICpuZXQsIHUzMiBhZGRyKQorc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0 IG5ldCAqbmV0LCB1MzIgYWRkcikKIHsKIAlzdHJ1Y3QgdGlwY19uZXQgKnRuID0gdGlwY19uZXQo bmV0KTsKIAotCWlmICghY21weGNoZygmdG4tPm5vZGVfYWRkciwgMCwgYWRkcikpIHsKLQkJdGlw Y19zZXRfbm9kZV9hZGRyKG5ldCwgYWRkcik7Ci0JCXRpcGNfbmFtZWRfcmVpbml0KG5ldCk7Ci0J CXRpcGNfc2tfcmVpbml0KG5ldCk7Ci0JCXRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgVElQQ19D RkdfU1JWLCBhZGRyLCBhZGRyLAotCQkJCSAgICAgVElQQ19DTFVTVEVSX1NDT1BFLCAwLCBhZGRy KTsKLQl9CisJaWYgKGNtcHhjaGcoJnRuLT5ub2RlX2FkZHIsIDAsIGFkZHIpKQorCQlyZXR1cm47 CisJdGlwY19zZXRfbm9kZV9hZGRyKG5ldCwgYWRkcik7CisJdGlwY19uYW1lZF9yZWluaXQobmV0 KTsKKwl0aXBjX3NrX3JlaW5pdChuZXQpOworCXRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgVElQ Q19DRkdfU1JWLCBhZGRyLCBhZGRyLAorCQkJICAgICBUSVBDX0NMVVNURVJfU0NPUEUsIDAsIGFk ZHIpOworfQorCitzdGF0aWMgdm9pZCB0aXBjX25ldF9maW5hbGl6ZV93b3JrKHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgdGlwY19uZXRfd29yayAqZndvcms7CisKKwlmd29y ayA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdGlwY19uZXRfd29yaywgd29yayk7CisJdGlw Y19uZXRfZmluYWxpemUoZndvcmstPm5ldCwgZndvcmstPmFkZHIpOworCWtmcmVlKGZ3b3JrKTsK K30KKwordm9pZCB0aXBjX3NjaGVkX25ldF9maW5hbGl6ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBh ZGRyKQoreworCXN0cnVjdCB0aXBjX25ldF93b3JrICpmd29yayA9IGt6YWxsb2Moc2l6ZW9mKCpm d29yayksIEdGUF9BVE9NSUMpOworCisJaWYgKCFmd29yaykKKwkJcmV0dXJuOworCUlOSVRfV09S SygmZndvcmstPndvcmssIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmspOworCWZ3b3JrLT5uZXQgPSBu ZXQ7CisJZndvcmstPmFkZHIgPSBhZGRyOworCXNjaGVkdWxlX3dvcmsoJmZ3b3JrLT53b3JrKTsK IH0KIAogdm9pZCB0aXBjX25ldF9zdG9wKHN0cnVjdCBuZXQgKm5ldCkKZGlmZiAtLWdpdCBhL25l dC90aXBjL25ldC5oIGIvbmV0L3RpcGMvbmV0LmgKaW5kZXggMDlhZDAyYjUwYmIxLi5iN2YyZTM2 NGViOTkgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL25ldC5oCisrKyBiL25ldC90aXBjL25ldC5oCkBA IC00Miw3ICs0Miw3IEBACiBleHRlcm4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdGlwY19ubF9u ZXRfcG9saWN5W107CiAKIGludCB0aXBjX25ldF9pbml0KHN0cnVjdCBuZXQgKm5ldCwgdTggKm5v ZGVfaWQsIHUzMiBhZGRyKTsKLXZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0 LCB1MzIgYWRkcik7Cit2b2lkIHRpcGNfc2NoZWRfbmV0X2ZpbmFsaXplKHN0cnVjdCBuZXQgKm5l dCwgdTMyIGFkZHIpOwogdm9pZCB0aXBjX25ldF9zdG9wKHN0cnVjdCBuZXQgKm5ldCk7CiBpbnQg dGlwY19ubF9uZXRfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxs YmFjayAqY2IpOwogaW50IHRpcGNfbmxfbmV0X3NldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgZ2VubF9pbmZvICppbmZvKTsKLS0gCjIuMTkuMQoKCkZyb20gY2NlODM5NGRhOGFiMGRlYWFh MzI3MjI2MzZkOGE5YzJlZTU4ZjQwZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWF0 dGhldyBDb3ZlciA8d2VyZWtyYWtlbkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTggTm92IDIwMTgg MDA6NDY6MDAgLTA3MDAKU3ViamVjdDogW1BBVENIIDEzLzM2XSB0dW50YXA6IGZpeCBtdWx0aXF1 ZXVlIHJ4CgpbIFVwc3RyZWFtIGNvbW1pdCA4ZWJlYmNiYTU1OWExYmZiYWVjN2JiZGE2NGZlYjk4 NzBiOWM1OGRhIF0KCldoZW4gd3JpdGluZyBwYWNrZXRzIHRvIGEgZGVzY3JpcHRvciBhc3NvY2lh dGVkIHdpdGggYSBjb21iaW5lZCBxdWV1ZSwgdGhlCnBhY2tldHMgc2hvdWxkIGVuZCB1cCBvbiB0 aGF0IHF1ZXVlLgoKQmVmb3JlIHRoaXMgY2hhbmdlIGFsbCBwYWNrZXRzIHdyaXR0ZW4gdG8gYW55 IGRlc2NyaXB0b3IgYXNzb2NpYXRlZCB3aXRoIGEKdGFwIGludGVyZmFjZSBlbmQgdXAgb24gcngt MCwgZXZlbiB3aGVuIHRoZSBkZXNjcmlwdG9yIGlzIGFzc29jaWF0ZWQgd2l0aCBhCmRpZmZlcmVu dCBxdWV1ZS4KClRoZSByeCB0cmFmZmljIGNhbiBiZSBnZW5lcmF0ZWQgYnkgZWl0aGVyIG9mIHRo ZSBmb2xsb3dpbmcuCiAgMS4gYSBzaW1wbGUgdGFwIHByb2dyYW0gd2hpY2ggc3BpbnMgdXAgbXVs dGlwbGUgcXVldWVzIGFuZCB3cml0ZXMgcGFja2V0cwogICAgIHRvIGVhY2ggb2YgdGhlIGZpbGUg ZGVzY3JpcHRvcnMKICAyLiB0eCBmcm9tIGEgcWVtdSB2bSB3aXRoIGEgdGFwIG11bHRpcXVldWUg bmV0ZGV2CgpUaGUgcXVldWUgZm9yIHJ4IHRyYWZmaWMgY2FuIGJlIG9ic2VydmVkIGJ5IGVpdGhl ciBvZiB0aGUgZm9sbG93aW5nIChkb25lCm9uIHRoZSBoeXBlcnZpc29yIGluIHRoZSBxZW11IGNh c2UpLgogIDEuIGEgc2ltcGxlIG5ldG1hcCBwcm9ncmFtIHdoaWNoIG9wZW5zIGFuZCByZWFkcyBm cm9tIHBlci1xdWV1ZQogICAgIGRlc2NyaXB0b3JzCiAgMi4gY29uZmlndXJpbmcgUlBTIGFuZCBk b2luZyBwZXItY3B1IGNhcHR1cmVzIHdpdGggcnh0eGNwdQoKQWx0ZXJuYXRpdmVseSwgaWYgeW91 IHByaW50aygpIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2tiX2dldF9yeF9xdWV1ZSgpIGp1c3QKYmVm b3JlIGVhY2ggaW5zdGFuY2Ugb2YgbmV0aWZfcmVjZWl2ZV9za2IoKSBpbiB0dW4uYywgeW91IHdp bGwgZ2V0IDY1NTM1CmZvciBldmVyeSBza2IuCgpDYWxsaW5nIHNrYl9yZWNvcmRfcnhfcXVldWUo KSB0byBzZXQgdGhlIHJ4IHF1ZXVlIHRvIHRoZSBxdWV1ZV9pbmRleCBmaXhlcwp0aGUgYXNzb2Np YXRpb24gYmV0d2VlbiBkZXNjcmlwdG9yIGFuZCByeCBxdWV1ZS4KClNpZ25lZC1vZmYtYnk6IE1h dHRoZXcgQ292ZXIgPG1hdHRoZXcuY292ZXJAc3RhY2twYXRoLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3R1 bi5jIHwgNiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90dW4uYyBiL2RyaXZlcnMvbmV0L3R1bi5j CmluZGV4IDU0NjA4MTk5M2VjZi4uYjY5OTc1YzZkMzA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC90dW4uYworKysgYi9kcml2ZXJzL25ldC90dW4uYwpAQCAtMTU2Nyw2ICsxNTY3LDcgQEAgc3Rh dGljIHZvaWQgdHVuX3J4X2JhdGNoZWQoc3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwgc3RydWN0IHR1 bl9maWxlICp0ZmlsZSwKIAogCWlmICghcnhfYmF0Y2hlZCB8fCAoIW1vcmUgJiYgc2tiX3F1ZXVl X2VtcHR5KHF1ZXVlKSkpIHsKIAkJbG9jYWxfYmhfZGlzYWJsZSgpOworCQlza2JfcmVjb3JkX3J4 X3F1ZXVlKHNrYiwgdGZpbGUtPnF1ZXVlX2luZGV4KTsKIAkJbmV0aWZfcmVjZWl2ZV9za2Ioc2ti KTsKIAkJbG9jYWxfYmhfZW5hYmxlKCk7CiAJCXJldHVybjsKQEAgLTE1ODYsOCArMTU4NywxMSBA QCBzdGF0aWMgdm9pZCB0dW5fcnhfYmF0Y2hlZChzdHJ1Y3QgdHVuX3N0cnVjdCAqdHVuLCBzdHJ1 Y3QgdHVuX2ZpbGUgKnRmaWxlLAogCQlzdHJ1Y3Qgc2tfYnVmZiAqbnNrYjsKIAogCQlsb2NhbF9i aF9kaXNhYmxlKCk7Ci0JCXdoaWxlICgobnNrYiA9IF9fc2tiX2RlcXVldWUoJnByb2Nlc3NfcXVl dWUpKSkKKwkJd2hpbGUgKChuc2tiID0gX19za2JfZGVxdWV1ZSgmcHJvY2Vzc19xdWV1ZSkpKSB7 CisJCQlza2JfcmVjb3JkX3J4X3F1ZXVlKG5za2IsIHRmaWxlLT5xdWV1ZV9pbmRleCk7CiAJCQlu ZXRpZl9yZWNlaXZlX3NrYihuc2tiKTsKKwkJfQorCQlza2JfcmVjb3JkX3J4X3F1ZXVlKHNrYiwg dGZpbGUtPnF1ZXVlX2luZGV4KTsKIAkJbmV0aWZfcmVjZWl2ZV9za2Ioc2tiKTsKIAkJbG9jYWxf YmhfZW5hYmxlKCk7CiAJfQotLSAKMi4xOS4xCgoKRnJvbSA0ZjE0ODI4NjAzNTNiODdhNmY2ODI2 MDEyODY2M2JhMTU0MjQ2YjZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFu IEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxIE5vdiAyMDE4IDE1 OjU1OjM4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNC8zNl0gbmV0OiBzeXN0ZW1wb3J0OiBQcm90 ZWN0IHN0b3AgZnJvbSB0aW1lb3V0CgpbIFVwc3RyZWFtIGNvbW1pdCA3Y2I2YTJhMmM3MmMxZWQ4 ZjQyZmIwMWYxYTY2MTI4MWI1NjhkZWFkIF0KCkEgdGltaW5nIGhhemFyZCBleGlzdHMgd2hlbiB0 aGUgbmV0d29yayBpbnRlcmZhY2UgaXMgc3RvcHBlZCB0aGF0CmFsbG93cyBhIHdhdGNoZG9nIHRp bWVvdXQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGEgc2VwYXJhdGUgY29yZSBpbgpwYXJhbGxlbC4gVGhp cyBjcmVhdGVzIHRoZSBwb3RlbnRpYWwgZm9yIHRoZSB0aW1lb3V0IGhhbmRsZXIgdG8Kd2FrZSB0 aGUgcXVldWVzIHdoaWxlIHRoZSBkcml2ZXIgaXMgc2h1dHRpbmcgZG93biwgb3IgYWNjZXNzCnJl Z2lzdGVycyBhZnRlciB0aGVpciBjbG9ja3MgaGF2ZSBiZWVuIHJlbW92ZWQuCgpUaGUgbW9yZSBj b21tb24gY2FzZSBpcyB0aGF0IHRoZSB3YXRjaGRvZyB0aW1lb3V0IHdpbGwgcHJvZHVjZSBhCndh cm5pbmcgbWVzc2FnZSB3aGljaCBkb2Vzbid0IGxlYWQgdG8gYSBjcmFzaC4gVGhlIGNoYW5jZXMg b2YgdGhpcwphcmUgZ3JlYXRseSBpbmNyZWFzZWQgYnkgdGhlIGZhY3QgdGhhdCBiY21fc3lzcG9y dF9uZXRpZl9zdG9wIHN0b3BzCnRoZSB0cmFuc21pdCBxdWV1ZXMgd2hpY2ggY2FuIGVhc2lseSBw cmVjaXBpdGF0ZSBhIHdhdGNoZG9nIHRpbWUtCm91dCBiZWNhdXNlIG9mIHN0YWxlIHRyYW5zX3N0 YXJ0IGRhdGEgaW4gdGhlIHF1ZXVlcy4KClRoaXMgY29tbWl0IGNvcnJlY3RzIHRoZSBiZWhhdmlv ciBieSBlbnN1cmluZyB0aGF0IHRoZSB3YXRjaGRvZwp0aW1lb3V0IGlzIGRpc2FibGVkIGJlZm9y ZSBlbnRlcnJpbmcgYmNtX3N5c3BvcnRfbmV0aWZfc3RvcC4gVGhlcmUKYXJlIGN1cnJlbnRseSBv bmx5IHR3byB1c2VycyBvZiB0aGUgYmNtX3N5c3BvcnRfbmV0aWZfc3RvcCBmdW5jdGlvbjoKY2xv c2UgYW5kIHN1c3BlbmQuCgpUaGUgY2xvc2UgY2FzZSBhbHJlYWR5IGhhbmRsZXMgdGhlIGlzc3Vl IGJ5IGV4aXRpbmcgdGhlIFJVTk5JTkcKc3RhdGUgYmVmb3JlIGludm9raW5nIHRoZSBkcml2ZXIg Y2xvc2Ugc2VydmljZS4KClRoZSBzdXNwZW5kIGNhc2Ugbm93IHBlcmZvcm1zIHRoZSBuZXRpZl9k ZXZpY2VfZGV0YWNoIHRvIGV4aXQgdGhlClBSRVNFTlQgc3RhdGUgYmVmb3JlIHRoZSBjYWxsIHRv IGJjbV9zeXNwb3J0X25ldGlmX3N0b3AgcmF0aGVyIHRoYW4KYWZ0ZXIgaXQuCgpUaGVzZSBiZWhh dmlvcnMgcHJldmVudCBhbnkgZnV0dXJlIHNjaGVkdWxpbmcgb2YgdGhlIGRyaXZlciB0aW1lb3V0 CnNlcnZpY2UgZHVyaW5nIHRoZSB3aW5kb3cuIFRoZSBuZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMg ZnVuY3Rpb24KaW4gYmNtX3N5c3BvcnRfbmV0aWZfc3RvcCBpcyByZXBsYWNlZCB3aXRoIG5ldGlm X3R4X2Rpc2FibGUgdG8gZW5zdXJlCnN5bmNocm9uaXphdGlvbiB3aXRoIGFueSB0cmFuc21pdCBv ciB0aW1lb3V0IHRocmVhZHMgdGhhdCBtYXkKYWxyZWFkeSBiZSBleGVjdXRpbmcgb24gb3RoZXIg Y29yZXMuCgpGb3Igc3ltbWV0cnksIHRoZSBuZXRpZl9kZXZpY2VfYXR0YWNoIGNhbGwgdXBvbiBy ZXN1bWUgaXMgbW92ZWQgdG8KYWZ0ZXIgdGhlIGNhbGwgdG8gYmNtX3N5c3BvcnRfbmV0aWZfc3Rh cnQuIFNpbmNlIGl0IHdha2VzIHRoZSB0cmFuc21pdApxdWV1ZXMgaXQgaXMgbm90IG5lY2Vzc2Fy eSB0byBpbnZva2UgbmV0aWZfdHhfc3RhcnRfYWxsX3F1ZXVlcyBmcm9tCmJjbV9zeXNwb3J0X25l dGlmX3N0YXJ0IHNvIGl0IGlzIG1vdmVkIGludG8gdGhlIGRyaXZlciBvcGVuIHNlcnZpY2UuCgpG aXhlczogNDA3NTVhMGZjZTE3ICgibmV0OiBzeXN0ZW1wb3J0OiBhZGQgc3VzcGVuZCBhbmQgcmVz dW1lIHN1cHBvcnQiKQpGaXhlczogODAxMDViZWZkYjRiICgibmV0OiBzeXN0ZW1wb3J0OiBhZGQg QnJvYWRjb20gU1lTVEVNUE9SVCBFdGhlcm5ldCBNQUMgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTog RmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMgfCAxNSArKysrKysrLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jCmluZGV4IDdhMDNlZTQ1ODQwZS4uOGZmN2VhMGEy Mzk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0 LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jCkBAIC0x ODY5LDkgKzE4NjksNiBAQCBzdGF0aWMgdm9pZCBiY21fc3lzcG9ydF9uZXRpZl9zdGFydChzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2KQogCQlpbnRybDJfMV9tYXNrX2NsZWFyKHByaXYsIDB4ZmZmZmZm ZmYpOwogCWVsc2UKIAkJaW50cmwyXzBfbWFza19jbGVhcihwcml2LCBJTlRSTDJfMF9URE1BX01C RE9ORV9NQVNLKTsKLQotCS8qIExhc3QgY2FsbCBiZWZvcmUgd2Ugc3RhcnQgdGhlIHJlYWwgYnVz aW5lc3MgKi8KLQluZXRpZl90eF9zdGFydF9hbGxfcXVldWVzKGRldik7CiB9CiAKIHN0YXRpYyB2 b2lkIHJidWZfaW5pdChzdHJ1Y3QgYmNtX3N5c3BvcnRfcHJpdiAqcHJpdikKQEAgLTIwMTcsNiAr MjAxNCw4IEBAIHN0YXRpYyBpbnQgYmNtX3N5c3BvcnRfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogCiAJYmNtX3N5c3BvcnRfbmV0aWZfc3RhcnQoZGV2KTsKIAorCW5ldGlmX3R4X3N0YXJ0 X2FsbF9xdWV1ZXMoZGV2KTsKKwogCXJldHVybiAwOwogCiBvdXRfY2xlYXJfcnhfaW50OgpAQCAt MjA0MCw3ICsyMDM5LDcgQEAgc3RhdGljIHZvaWQgYmNtX3N5c3BvcnRfbmV0aWZfc3RvcChzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2KQogCXN0cnVjdCBiY21fc3lzcG9ydF9wcml2ICpwcml2ID0gbmV0 ZGV2X3ByaXYoZGV2KTsKIAogCS8qIHN0b3AgYWxsIHNvZnR3YXJlIGZyb20gdXBkYXRpbmcgaGFy ZHdhcmUgKi8KLQluZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMoZGV2KTsKKwluZXRpZl90eF9kaXNh YmxlKGRldik7CiAJbmFwaV9kaXNhYmxlKCZwcml2LT5uYXBpKTsKIAljYW5jZWxfd29ya19zeW5j KCZwcml2LT5kaW0uZGltLndvcmspOwogCXBoeV9zdG9wKGRldi0+cGh5ZGV2KTsKQEAgLTI0Nzgs MTIgKzI0NzcsMTIgQEAgc3RhdGljIGludCBiY21fc3lzcG9ydF9zdXNwZW5kKHN0cnVjdCBkZXZp Y2UgKmQpCiAJaWYgKCFuZXRpZl9ydW5uaW5nKGRldikpCiAJCXJldHVybiAwOwogCisJbmV0aWZf ZGV2aWNlX2RldGFjaChkZXYpOworCiAJYmNtX3N5c3BvcnRfbmV0aWZfc3RvcChkZXYpOwogCiAJ cGh5X3N1c3BlbmQoZGV2LT5waHlkZXYpOwogCi0JbmV0aWZfZGV2aWNlX2RldGFjaChkZXYpOwot CiAJLyogRGlzYWJsZSBVbmlNQUMgUlggKi8KIAl1bWFjX2VuYWJsZV9zZXQocHJpdiwgQ01EX1JY X0VOLCAwKTsKIApAQCAtMjU2Nyw4ICsyNTY2LDYgQEAgc3RhdGljIGludCBiY21fc3lzcG9ydF9y ZXN1bWUoc3RydWN0IGRldmljZSAqZCkKIAkJZ290byBvdXRfZnJlZV9yeF9yaW5nOwogCX0KIAot CW5ldGlmX2RldmljZV9hdHRhY2goZGV2KTsKLQogCS8qIFJYIHBpcGUgZW5hYmxlICovCiAJdG9w Y3RybF93cml0ZWwocHJpdiwgMCwgUlhfRkxVU0hfQ05UTCk7CiAKQEAgLTI2MTMsNiArMjYxMCw4 IEBAIHN0YXRpYyBpbnQgYmNtX3N5c3BvcnRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmQpCiAKIAli Y21fc3lzcG9ydF9uZXRpZl9zdGFydChkZXYpOwogCisJbmV0aWZfZGV2aWNlX2F0dGFjaChkZXYp OworCiAJcmV0dXJuIDA7CiAKIG91dF9mcmVlX3J4X3Jpbmc6Ci0tIAoyLjE5LjEKCgpGcm9tIDNk MWE5OTNlMjc2OTI4NDM2ODJhM2NlOTlkOWRlYWNjMDE2ODI2ZWEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAx OCBOb3YgMjAxOCAxNjoxNDo0NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMzZdIFJldmVydCAi c2N0cDogcmVtb3ZlIHNjdHBfdHJhbnNwb3J0X3BtdHVfY2hlY2siCgpbIFVwc3RyZWFtIGNvbW1p dCA2OWZlYzMyNWE2NDM4MzY2N2I4YTM1ZGY1ZDQ4ZDZjZTUyZmIyNzgyIF0KClRoaXMgcmV2ZXJ0 cyBjb21taXQgMjJkN2JlMjY3ZWFhODExNGRjYzI4ZDY2YzFjMzQ3ZjY2N2Q3ODc4YS4KClRoZSBk c3QncyBtdHUgaW4gdHJhbnNwb3J0IGNhbiBiZSB1cGRhdGVkIGJ5IGEgbm9uIHNjdHAgcGxhY2Ug bGlrZQppbiB4ZnJtIHdoZXJlIHRoZSBNVFUgaW5mb3JtYXRpb24gZGlkbid0IGdldCBzeW5jZWQg YmV0d2VlbiBhc29jLAp0cmFuc3BvcnQgYW5kIGRzdCwgc28gaXQgaXMgc3RpbGwgbmVlZGVkIHRv IGRvIHRoZSBwbXR1IGNoZWNrCmluIHNjdHBfcGFja2V0X2NvbmZpZy4KCkFja2VkLWJ5OiBOZWls IEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvc2N0cC9zY3RwLmgg fCAxMiArKysrKysrKysrKysKIG5ldC9zY3RwL291dHB1dC5jICAgICAgIHwgIDMgKysrCiAyIGZp bGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9z Y3RwL3NjdHAuaCBiL2luY2x1ZGUvbmV0L3NjdHAvc2N0cC5oCmluZGV4IDhjMmNhYTM3MGUwZi4u YWI5MjQyZTUxZDllIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY3RwL3NjdHAuaAorKysgYi9p bmNsdWRlL25ldC9zY3RwL3NjdHAuaApAQCAtNjA4LDQgKzYwOCwxNiBAQCBzdGF0aWMgaW5saW5l IF9fdTMyIHNjdHBfZHN0X210dShjb25zdCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpCiAJCQkJIFND VFBfREVGQVVMVF9NSU5TRUdNRU5UKSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBzY3RwX3Ry YW5zcG9ydF9wbXR1X2NoZWNrKHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdCkKK3sKKwlfX3UzMiBw bXR1ID0gc2N0cF9kc3RfbXR1KHQtPmRzdCk7CisKKwlpZiAodC0+cGF0aG10dSA9PSBwbXR1KQor CQlyZXR1cm4gdHJ1ZTsKKworCXQtPnBhdGhtdHUgPSBwbXR1OworCisJcmV0dXJuIGZhbHNlOwor fQorCiAjZW5kaWYgLyogX19uZXRfc2N0cF9oX18gKi8KZGlmZiAtLWdpdCBhL25ldC9zY3RwL291 dHB1dC5jIGIvbmV0L3NjdHAvb3V0cHV0LmMKaW5kZXggN2Y4NDliMDFlYzhlLi4yYjI1OGU1NzM4 NGYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL291dHB1dC5jCisrKyBiL25ldC9zY3RwL291dHB1dC5j CkBAIC0xMTgsNiArMTE4LDkgQEAgdm9pZCBzY3RwX3BhY2tldF9jb25maWcoc3RydWN0IHNjdHBf cGFja2V0ICpwYWNrZXQsIF9fdTMyIHZ0YWcsCiAJCXNjdHBfdHJhbnNwb3J0X3JvdXRlKHRwLCBO VUxMLCBzcCk7CiAJCWlmIChhc29jLT5wYXJhbV9mbGFncyAmIFNQUF9QTVRVRF9FTkFCTEUpCiAJ CQlzY3RwX2Fzc29jX3N5bmNfcG10dShhc29jKTsKKwl9IGVsc2UgaWYgKCFzY3RwX3RyYW5zcG9y dF9wbXR1X2NoZWNrKHRwKSkgeworCQlpZiAoYXNvYy0+cGFyYW1fZmxhZ3MgJiBTUFBfUE1UVURf RU5BQkxFKQorCQkJc2N0cF9hc3NvY19zeW5jX3BtdHUoYXNvYyk7CiAJfQogCiAJLyogSWYgdGhl cmUgYSBpcyBhIHByZXBlbmQgY2h1bmsgc3RpY2sgaXQgb24gdGhlIGxpc3QgYmVmb3JlCi0tIAoy LjE5LjEKCgpGcm9tIGI4M2ZiZTdjYTdkZWM5MjNhYzY2MDNmNzNiODgxZGQwNjIxZjQxZmIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94 LmNvbT4KRGF0ZTogU3VuLCAyOCBPY3QgMjAxOCAxMjoyNzoyOSArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMTYvMzZdIG5ldC9tbHg1ZTogQWx3YXlzIHVzZSB0aGUgbWF0Y2ggbGV2ZWwgZW51bSB3aGVu IHBhcnNpbmcKIFRDIHJ1bGUgbWF0Y2gKClsgVXBzdHJlYW0gY29tbWl0IDgzNjIxYjdkZjZhNjQ2 ZTU1MGZkM2QzNmRiMmUzMDFjZjlhNTA5NmIgXQoKV2UgZ2V0IHRoZSBtYXRjaCBsZXZlbCAobm9u ZSwgbDIsIGwzLCBsNCkgd2hpbGUgZ29pbmcgb3ZlciB0aGUgbWF0Y2gKZGlzc2VjdG9ycyBvZiBh biBvZmZsb2FkZWQgdGMgcnVsZS4gV2hlbiBkb2luZyB0aGlzLCB0aGUgbWF0Y2ggbGV2ZWwKZW51 bSBhbmQgdGhlIG5vdCBtaW4gaW5saW5lIGVudW0gdmFsdWVzIHNob3VsZCBiZSB1c2VkLCBmaXgg dGhhdC4KClRoaXMgd29ya2VkIGFjY2lkZW50YWxseSBiL2MgYm90aCBlbnVtcyBoYXZlIHRoZSBz YW1lIG51bWVyaWNhbCB2YWx1ZXMuCgpGaXhlczogZDcwOGY5MDI5ODliICgnbmV0L21seDVlOiBH ZXQgdGhlIHJlcXVpcmVkIEhXIG1hdGNoIGxldmVsIHdoaWxlIHBhcnNpbmcgVEMgZmxvdyBtYXRj aGVzJykKU2lnbmVkLW9mZi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpS ZXZpZXdlZC1ieTogUm9pIERheWFuIDxyb2lkQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTog U2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwppbmRleCA3MDFhZjVmZmNiYzkuLjY3OTY3 NWE5NjQ1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX3RjLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX3RjLmMKQEAgLTEzODUsMTAgKzEzODUsMTAgQEAgc3RhdGljIGludCBfX3BhcnNlX2Nsc19m bG93ZXIoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAKIAkJCS8qIHRoZSBIVyBkb2Vzbid0IG5l ZWQgTDMgaW5saW5lIHRvIG1hdGNoIG9uIGZyYWc9bm8gKi8KIAkJCWlmICghKGtleS0+ZmxhZ3Mg JiBGTE9XX0RJU19JU19GUkFHTUVOVCkpCi0JCQkJKm1hdGNoX2xldmVsID0gTUxYNV9JTkxJTkVf TU9ERV9MMjsKKwkJCQkqbWF0Y2hfbGV2ZWwgPSBNTFg1X01BVENIX0wyOwogCS8qICoqKiAgTDIg YXR0cmlidXRlcyBwYXJzaW5nIHVwIHRvIGhlcmUgKioqICovCiAJCQllbHNlCi0JCQkJKm1hdGNo X2xldmVsID0gTUxYNV9JTkxJTkVfTU9ERV9JUDsKKwkJCQkqbWF0Y2hfbGV2ZWwgPSBNTFg1X01B VENIX0wzOwogCQl9CiAJfQogCi0tIAoyLjE5LjEKCgpGcm9tIDhmMzc5MGY0NGY3ZjYyZGVlYTAy NTgxMTIyM2NkMTRhNjU0MmY5ZWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZhbGVu dGluZSBGYXRpZXYgPHZhbGVudGluZWZAbWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDE3IE9jdCAy MDE4IDExOjQ1OjA3ICswMzAwClN1YmplY3Q6IFtQQVRDSCAxNy8zNl0gbmV0L21seDVlOiBGaXgg c2VsZnRlc3QgZm9yIHNtYWxsIE1UVXMKClsgVXBzdHJlYW0gY29tbWl0IDIyOGM0Y2QwNGRmZDA2 NjdlZGExODJjOTE1MDRiODNjMTdkOTc1ODQgXQoKTG9vcGJhY2sgdGVzdCBoYWQgZml4ZWQgcGFj a2V0IHNpemUsIHdoaWNoIGNhbiBiZSBiaWdnZXIgdGhhbiBjb25maWd1cmVkCk1UVS4gU2hvcnRl biB0aGUgbG9vcGJhY2sgcGFja2V0IHNpemUgdG8gYmUgYmlnZ2VyIHRoYW4gbWluaW1hbCBNVFUK YWxsb3dlZCBieSB0aGUgZGV2aWNlLiBUZXh0IGZpZWxkIHJlbW92ZWQgZnJvbSBzdHJ1Y3QgJ21s eDVlaGRyJwphcyByZWR1bmRhbnQgdG8gYWxsb3cgc2VuZCBzbWFsbCBwYWNrZXRzIGFzIG1pbmlt YWwgYWxsb3dlZCBNVFUuCgpGaXhlczogZDYwNWQ2NiAoIm5ldC9tbHg1ZTogQWRkIHN1cHBvcnQg Zm9yIGV0aHRvb2wgc2VsZiBkaWFnbm9zdGljcyB0ZXN0IikKU2lnbmVkLW9mZi1ieTogVmFsZW50 aW5lIEZhdGlldiA8dmFsZW50aW5lZkBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBFcmFuIEJl biBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFt ZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIC4uLi9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fc2VsZnRlc3QuYyB8IDI2ICsrKysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAxMCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc2VsZnRlc3QuYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zZWxmdGVzdC5jCmluZGV4IDRk MzE2Y2M5YjAwOC4uNWQ4MjdmY2VkN2MyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc2VsZnRlc3QuYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc2VsZnRlc3QuYwpAQCAtOTgsMTggKzk4LDE3IEBA IHN0YXRpYyBpbnQgbWx4NWVfdGVzdF9saW5rX3NwZWVkKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2 KQogCXJldHVybiAxOwogfQogCi0jaWZkZWYgQ09ORklHX0lORVQKLS8qIGxvb3BiYWNrIHRlc3Qg Ki8KLSNkZWZpbmUgTUxYNUVfVEVTVF9QS1RfU0laRSAoTUxYNUVfUlhfTUFYX0hFQUQgLSBORVRf SVBfQUxJR04pCi1zdGF0aWMgY29uc3QgY2hhciBtbHg1ZV90ZXN0X3RleHRbRVRIX0dTVFJJTkdf TEVOXSA9ICJNTFg1RSBTRUxGIFRFU1QiOwotI2RlZmluZSBNTFg1RV9URVNUX01BR0lDIDB4NUFF RUQxNUMwMDFVTEwKLQogc3RydWN0IG1seDVlaGRyIHsKIAlfX2JlMzIgdmVyc2lvbjsKIAlfX2Jl NjQgbWFnaWM7Ci0JY2hhciAgIHRleHRbRVRIX0dTVFJJTkdfTEVOXTsKIH07CiAKKyNpZmRlZiBD T05GSUdfSU5FVAorLyogbG9vcGJhY2sgdGVzdCAqLworI2RlZmluZSBNTFg1RV9URVNUX1BLVF9T SVpFIChzaXplb2Yoc3RydWN0IGV0aGhkcikgKyBzaXplb2Yoc3RydWN0IGlwaGRyKSArXAorCQkJ ICAgICBzaXplb2Yoc3RydWN0IHVkcGhkcikgKyBzaXplb2Yoc3RydWN0IG1seDVlaGRyKSkKKyNk ZWZpbmUgTUxYNUVfVEVTVF9NQUdJQyAweDVBRUVEMTVDMDAxVUxMCisKIHN0YXRpYyBzdHJ1Y3Qg c2tfYnVmZiAqbWx4NWVfdGVzdF9nZXRfdWRwX3NrYihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikK IHsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gTlVMTDsKQEAgLTExNywxMCArMTE2LDcgQEAgc3Rh dGljIHN0cnVjdCBza19idWZmICptbHg1ZV90ZXN0X2dldF91ZHBfc2tiKHN0cnVjdCBtbHg1ZV9w cml2ICpwcml2KQogCXN0cnVjdCBldGhoZHIgKmV0aGg7CiAJc3RydWN0IHVkcGhkciAqdWRwaDsK IAlzdHJ1Y3QgaXBoZHIgKmlwaDsKLQlpbnQgZGF0YWxlbiwgaXBsZW47Ci0KLQlkYXRhbGVuID0g TUxYNUVfVEVTVF9QS1RfU0laRSAtCi0JCSAgKHNpemVvZigqZXRoaCkgKyBzaXplb2YoKmlwaCkg KyBzaXplb2YoKnVkcGgpKTsKKwlpbnQgICAgaXBsZW47CiAKIAlza2IgPSBuZXRkZXZfYWxsb2Nf c2tiKHByaXYtPm5ldGRldiwgTUxYNUVfVEVTVF9QS1RfU0laRSk7CiAJaWYgKCFza2IpIHsKQEAg LTE0OSw3ICsxNDUsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm1seDVlX3Rlc3RfZ2V0X3Vk cF9za2Ioc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAJLyogRmlsbCBVRFAgaGVhZGVyICovCiAJ dWRwaC0+c291cmNlID0gaHRvbnMoOSk7CiAJdWRwaC0+ZGVzdCA9IGh0b25zKDkpOyAvKiBEaXNj YXJkIFByb3RvY29sICovCi0JdWRwaC0+bGVuID0gaHRvbnMoZGF0YWxlbiArIHNpemVvZihzdHJ1 Y3QgdWRwaGRyKSk7CisJdWRwaC0+bGVuID0gaHRvbnMoc2l6ZW9mKHN0cnVjdCBtbHg1ZWhkcikg KyBzaXplb2Yoc3RydWN0IHVkcGhkcikpOwogCXVkcGgtPmNoZWNrID0gMDsKIAogCS8qIEZpbGwg SVAgaGVhZGVyICovCkBAIC0xNTcsNyArMTUzLDggQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpt bHg1ZV90ZXN0X2dldF91ZHBfc2tiKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogCWlwaC0+dHRs ID0gMzI7CiAJaXBoLT52ZXJzaW9uID0gNDsKIAlpcGgtPnByb3RvY29sID0gSVBQUk9UT19VRFA7 Ci0JaXBsZW4gPSBzaXplb2Yoc3RydWN0IGlwaGRyKSArIHNpemVvZihzdHJ1Y3QgdWRwaGRyKSAr IGRhdGFsZW47CisJaXBsZW4gPSBzaXplb2Yoc3RydWN0IGlwaGRyKSArIHNpemVvZihzdHJ1Y3Qg dWRwaGRyKSArCisJCXNpemVvZihzdHJ1Y3QgbWx4NWVoZHIpOwogCWlwaC0+dG90X2xlbiA9IGh0 b25zKGlwbGVuKTsKIAlpcGgtPmZyYWdfb2ZmID0gMDsKIAlpcGgtPnNhZGRyID0gMDsKQEAgLTE3 MCw5ICsxNjcsNiBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm1seDVlX3Rlc3RfZ2V0X3VkcF9z a2Ioc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAJbWx4aCA9IHNrYl9wdXQoc2tiLCBzaXplb2Yo Km1seGgpKTsKIAltbHhoLT52ZXJzaW9uID0gMDsKIAltbHhoLT5tYWdpYyA9IGNwdV90b19iZTY0 KE1MWDVFX1RFU1RfTUFHSUMpOwotCXN0cmxjcHkobWx4aC0+dGV4dCwgbWx4NWVfdGVzdF90ZXh0 LCBzaXplb2YobWx4aC0+dGV4dCkpOwotCWRhdGFsZW4gLT0gc2l6ZW9mKCptbHhoKTsKLQlza2Jf cHV0X3plcm8oc2tiLCBkYXRhbGVuKTsKIAogCXNrYi0+Y3N1bSA9IDA7CiAJc2tiLT5pcF9zdW1t ZWQgPSBDSEVDS1NVTV9QQVJUSUFMOwotLSAKMi4xOS4xCgoKRnJvbSA3NzE2ZDA4ODdmYzQ3ODBi NDJhY2ZlMjg5Mjg1MThjNzg5MWY5MDhjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBT aGF5IEFncm9za2luIDxzaGF5YWdAbWVsbGFub3guY29tPgpEYXRlOiBTdW4sIDI4IE9jdCAyMDE4 IDA5OjA2OjExICswMjAwClN1YmplY3Q6IFtQQVRDSCAxOC8zNl0gbmV0L21seDVlOiBSZW1vdmVk IHVubmVjZXNzYXJ5IHdhcm5pbmdzIGluIEZFQyBjYXBzCiBxdWVyeQoKWyBVcHN0cmVhbSBjb21t aXQgNjRlMjgzMzQ4NDU4ZTJmZDJmZTQxYjYwZGZiNmMzMGU4OGVlNjk1ZiBdCgpRdWVyeWluZyBp bnRlcmZhY2UgRkVDIGNhcHMgd2l0aCAnZXRodG9vbCBbaW50XScgYWZ0ZXIgbGluayByZXNldAp0 aHJvd3Mgd2FybmluZyByZWdhZGluZyBsaW5rIHNwZWVkLgpUaGlzIHdhcm5pbmcgaXMgbm90IG5l ZWRlZCBhcyB0aGVyZSBpcyBhbHJlYWR5IGFuIGluZGljYXRpb24gaW4KdXNlciBzcGFjZSB0aGF0 IHRoZSBsaW5rIGlzIG5vdCB1cC4KCkZpeGVzOiAwNjk2ZDYwODUzZDUgKCJuZXQvbWx4NWU6IFJl Y2VpdmUgYnVmZmVyIGNvbmZpZ3VyYXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBTaGF5IEFncm9za2lu IDxzaGF5YWdAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2Fl ZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW4vcG9ydC5jICAgICAgICB8IDQgKy0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuL3BvcnRfYnVmZmVyLmMgfCA0ICsrKy0KIDIgZmlsZXMgY2hhbmdl ZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9wb3J0LmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydC5jCmluZGV4IDI0ZTNiNTY0OTY0Zi4u MTJlMTY4MmY5NDBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW4vcG9ydC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbi9wb3J0LmMKQEAgLTg4LDEwICs4OCw4IEBAIGludCBtbHg1ZV9wb3J0X2xpbmtz cGVlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdTMyICpzcGVlZCkKIAogCWV0aF9wcm90 b19vcGVyID0gTUxYNV9HRVQocHR5c19yZWcsIG91dCwgZXRoX3Byb3RvX29wZXIpOwogCSpzcGVl ZCA9IG1seDVlX3BvcnRfcHR5czJzcGVlZChldGhfcHJvdG9fb3Blcik7Ci0JaWYgKCEoKnNwZWVk KSkgewotCQltbHg1X2NvcmVfd2FybihtZGV2LCAiY2Fubm90IGdldCBwb3J0IHNwZWVkXG4iKTsK KwlpZiAoISgqc3BlZWQpKQogCQllcnIgPSAtRUlOVkFMOwotCX0KIAogCXJldHVybiBlcnI7CiB9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4v cG9ydF9idWZmZXIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bi9wb3J0X2J1ZmZlci5jCmluZGV4IGMwNDdkYTg3NTJkYS4uZWFjMjQ1YTkzZjkxIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydF9idWZm ZXIuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9y dF9idWZmZXIuYwpAQCAtMTMwLDggKzEzMCwxMCBAQCBzdGF0aWMgdTMyIGNhbGN1bGF0ZV94b2Zm KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCB1bnNpZ25lZCBpbnQgbXR1KQogCWludCBlcnI7CiAK IAllcnIgPSBtbHg1ZV9wb3J0X2xpbmtzcGVlZChwcml2LT5tZGV2LCAmc3BlZWQpOwotCWlmIChl cnIpCisJaWYgKGVycikgeworCQltbHg1X2NvcmVfd2Fybihwcml2LT5tZGV2LCAiY2Fubm90IGdl dCBwb3J0IHNwZWVkXG4iKTsKIAkJcmV0dXJuIDA7CisJfQogCiAJeG9mZiA9ICgzMDEgKyAyMTYg KiBwcml2LT5kY2J4LmNhYmxlX2xlbiAvIDEwMCkgKiBzcGVlZCAvIDEwMDAgKyAyNzIgKiBtdHUg LyAxMDA7CiAKLS0gCjIuMTkuMQoKCkZyb20gZDQ0MjQ3YTYxZWMyZjBlOWMzODkwZDIyODNkMzhi YTliNGM1NjZjZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDggTm92IDIwMTggMTc6MzQ6MjcgLTA4MDAK U3ViamVjdDogW1BBVENIIDE5LzM2XSBpbmV0OiBmcmFnczogYmV0dGVyIGRlYWwgd2l0aCBzbXAg cmFjZXMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0 IDBkNWI5MzExYmFmMjdiYjU0NWYxODdmMTJlY2ZkNTU4MjIwYzYwN2QgXQoKTXVsdGlwbGUgY3B1 cyBtaWdodCBhdHRlbXB0IHRvIGluc2VydCBhIG5ldyBmcmFnbWVudCBpbiByaGFzaHRhYmxlLApp ZiBmb3IgZXhhbXBsZSBSUFMgaXMgYnVnZ3ksIGFzIHJlcG9ydGVkIGJ5IOuwsOyEneynhCBpbgpo dHRwczovL3BhdGNod29yay5vemxhYnMub3JnL3BhdGNoLzk5NDYwMS8KCldlIHVzZSByaGFzaHRh YmxlX2xvb2t1cF9nZXRfaW5zZXJ0X2tleSgpIGluc3RlYWQgb2YKcmhhc2h0YWJsZV9pbnNlcnRf ZmFzdCgpIHRvIGxldCBjcHVzIGxvc2luZyB0aGUgcmFjZQpmcmVlIHRoZWlyIG93biBpbmV0X2Zy YWdfcXVldWUgYW5kIHVzZSB0aGUgb25lIHRoYXQKd2FzIGluc2VydGVkIGJ5IGFub3RoZXIgY3B1 LgoKRml4ZXM6IDY0ODcwMGY3NmIwMyAoImluZXQ6IGZyYWdzOiB1c2Ugcmhhc2h0YWJsZXMgZm9y IHJlYXNzZW1ibHkgdW5pdHMiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiDrsLDshJ3sp4QgPHNvdWtqaW4uYmFlQHNhbXN1bmcu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jIHwgMjkgKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMgYi9uZXQvaXB2NC9pbmV0 X2ZyYWdtZW50LmMKaW5kZXggMGQ3MDYwOGNjMmUxLi43MzJiMDRmMjBjMTQgMTAwNjQ0Ci0tLSBh L25ldC9pcHY0L2luZXRfZnJhZ21lbnQuYworKysgYi9uZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMK QEAgLTE3MywyMSArMTczLDIyIEBAIHN0YXRpYyBzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICppbmV0 X2ZyYWdfYWxsb2Moc3RydWN0IG5ldG5zX2ZyYWdzICpuZiwKIH0KIAogc3RhdGljIHN0cnVjdCBp bmV0X2ZyYWdfcXVldWUgKmluZXRfZnJhZ19jcmVhdGUoc3RydWN0IG5ldG5zX2ZyYWdzICpuZiwK LQkJCQkJCXZvaWQgKmFyZykKKwkJCQkJCXZvaWQgKmFyZywKKwkJCQkJCXN0cnVjdCBpbmV0X2Zy YWdfcXVldWUgKipwcmV2KQogewogCXN0cnVjdCBpbmV0X2ZyYWdzICpmID0gbmYtPmY7CiAJc3Ry dWN0IGluZXRfZnJhZ19xdWV1ZSAqcTsKLQlpbnQgZXJyOwogCiAJcSA9IGluZXRfZnJhZ19hbGxv YyhuZiwgZiwgYXJnKTsKLQlpZiAoIXEpCisJaWYgKCFxKSB7CisJCSpwcmV2ID0gRVJSX1BUUigt RU5PTUVNKTsKIAkJcmV0dXJuIE5VTEw7Ci0KKwl9CiAJbW9kX3RpbWVyKCZxLT50aW1lciwgamlm ZmllcyArIG5mLT50aW1lb3V0KTsKIAotCWVyciA9IHJoYXNodGFibGVfaW5zZXJ0X2Zhc3QoJm5m LT5yaGFzaHRhYmxlLCAmcS0+bm9kZSwKLQkJCQkgICAgIGYtPnJoYXNoX3BhcmFtcyk7Ci0JaWYg KGVyciA8IDApIHsKKwkqcHJldiA9IHJoYXNodGFibGVfbG9va3VwX2dldF9pbnNlcnRfa2V5KCZu Zi0+cmhhc2h0YWJsZSwgJnEtPmtleSwKKwkJCQkJCSAmcS0+bm9kZSwgZi0+cmhhc2hfcGFyYW1z KTsKKwlpZiAoKnByZXYpIHsKIAkJcS0+ZmxhZ3MgfD0gSU5FVF9GUkFHX0NPTVBMRVRFOwogCQlp bmV0X2ZyYWdfa2lsbChxKTsKIAkJaW5ldF9mcmFnX2Rlc3Ryb3kocSk7CkBAIC0xOTksMjIgKzIw MCwyMiBAQCBzdGF0aWMgc3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqaW5ldF9mcmFnX2NyZWF0ZShz dHJ1Y3QgbmV0bnNfZnJhZ3MgKm5mLAogLyogVE9ETyA6IGNhbGwgZnJvbSByY3VfcmVhZF9sb2Nr KCkgYW5kIG5vIGxvbmdlciB1c2UgcmVmY291bnRfaW5jX25vdF96ZXJvKCkgKi8KIHN0cnVjdCBp bmV0X2ZyYWdfcXVldWUgKmluZXRfZnJhZ19maW5kKHN0cnVjdCBuZXRuc19mcmFncyAqbmYsIHZv aWQgKmtleSkKIHsKLQlzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICpmcTsKKwlzdHJ1Y3QgaW5ldF9m cmFnX3F1ZXVlICpmcSA9IE5VTEwsICpwcmV2OwogCiAJaWYgKCFuZi0+aGlnaF90aHJlc2ggfHwg ZnJhZ19tZW1fbGltaXQobmYpID4gbmYtPmhpZ2hfdGhyZXNoKQogCQlyZXR1cm4gTlVMTDsKIAog CXJjdV9yZWFkX2xvY2soKTsKIAotCWZxID0gcmhhc2h0YWJsZV9sb29rdXAoJm5mLT5yaGFzaHRh YmxlLCBrZXksIG5mLT5mLT5yaGFzaF9wYXJhbXMpOwotCWlmIChmcSkgeworCXByZXYgPSByaGFz aHRhYmxlX2xvb2t1cCgmbmYtPnJoYXNodGFibGUsIGtleSwgbmYtPmYtPnJoYXNoX3BhcmFtcyk7 CisJaWYgKCFwcmV2KQorCQlmcSA9IGluZXRfZnJhZ19jcmVhdGUobmYsIGtleSwgJnByZXYpOwor CWlmIChwcmV2ICYmICFJU19FUlIocHJldikpIHsKKwkJZnEgPSBwcmV2OwogCQlpZiAoIXJlZmNv dW50X2luY19ub3RfemVybygmZnEtPnJlZmNudCkpCiAJCQlmcSA9IE5VTEw7Ci0JCXJjdV9yZWFk X3VubG9jaygpOwotCQlyZXR1cm4gZnE7CiAJfQogCXJjdV9yZWFkX3VubG9jaygpOwotCi0JcmV0 dXJuIGluZXRfZnJhZ19jcmVhdGUobmYsIGtleSk7CisJcmV0dXJuIGZxOwogfQogRVhQT1JUX1NZ TUJPTChpbmV0X2ZyYWdfZmluZCk7Ci0tIAoyLjE5LjEKCgpGcm9tIDJkYmZiMjdjN2JkNmVhMmJk MGEzMjc5NDAzMWEwYmZhMmI0NzIyYjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhp biBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxMyBOb3YgMjAxOCAwMTow ODoyNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMzZdIGwydHA6IGZpeCBhIHNvY2sgcmVmY250 IGxlYWsgaW4gbDJ0cF90dW5uZWxfcmVnaXN0ZXIKClsgVXBzdHJlYW0gY29tbWl0IGY4NTA0ZjRj YTBhMGU5Zjg0NTQ2ZWY4NmUwMGIyNGQyZWE5YTBiZDIgXQoKVGhpcyBpc3N1ZSBoYXBwZW5zIHdo ZW4gdHJ5aW5nIHRvIGFkZCBhbiBleGlzdGVudCB0dW5uZWwuIEl0CmRvZXNuJ3QgY2FsbCBzb2Nr X3B1dCgpIGJlZm9yZSByZXR1cm5pbmcgLUVFWElTVCB0byByZWxlYXNlCnRoZSBzb2NrIHJlZmNu dCB0aGF0IHdhcyBoZWxkIGJ5IGNhbGxpbmcgc29ja19ob2xkKCkgYmVmb3JlCnRoZSBleGlzdGVu Y2UgY2hlY2suCgpUaGlzIHBhdGNoIGlzIHRvIGZpeCBpdCBieSBob2xkaW5nIHRoZSBzb2NrIGFm dGVyIGRvaW5nIHRoZQpleGlzdGVuY2UgY2hlY2suCgpGaXhlczogZjZjZDY1MWIwNTZmICgibDJ0 cDogZml4IHJhY2UgaW4gZHVwbGljYXRlIHR1bm5lbCBkZXRlY3Rpb24iKQpSZXBvcnRlZC1ieTog SmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxs dWNpZW4ueGluQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVs dEBhbHBoYWxpbmsuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbDJ0cC9sMnRwX2NvcmUuYyB8IDkgKysrKy0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9sMnRwL2wydHBfY29yZS5jIGIvbmV0L2wydHAvbDJ0cF9jb3JlLmMKaW5kZXggOGFhZjgx NTdkYTJiLi40YmI4MDJmMmZjY2QgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfY29yZS5jCisr KyBiL25ldC9sMnRwL2wydHBfY29yZS5jCkBAIC0xNTAzLDEyICsxNTAzLDcgQEAgaW50IGwydHBf dHVubmVsX3JlZ2lzdGVyKHN0cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsLCBzdHJ1Y3QgbmV0ICpu ZXQsCiAJCQlnb3RvIGVycl9zb2NrOwogCX0KIAotCXNrID0gc29jay0+c2s7Ci0KLQlzb2NrX2hv bGQoc2spOwotCXR1bm5lbC0+c29jayA9IHNrOwogCXR1bm5lbC0+bDJ0cF9uZXQgPSBuZXQ7Ci0K IAlwbiA9IGwydHBfcGVybmV0KG5ldCk7CiAKIAlzcGluX2xvY2tfYmgoJnBuLT5sMnRwX3R1bm5l bF9saXN0X2xvY2spOwpAQCAtMTUyMyw2ICsxNTE4LDEwIEBAIGludCBsMnRwX3R1bm5lbF9yZWdp c3RlcihzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCwgc3RydWN0IG5ldCAqbmV0LAogCWxpc3Rf YWRkX3JjdSgmdHVubmVsLT5saXN0LCAmcG4tPmwydHBfdHVubmVsX2xpc3QpOwogCXNwaW5fdW5s b2NrX2JoKCZwbi0+bDJ0cF90dW5uZWxfbGlzdF9sb2NrKTsKIAorCXNrID0gc29jay0+c2s7CisJ c29ja19ob2xkKHNrKTsKKwl0dW5uZWwtPnNvY2sgPSBzazsKKwogCWlmICh0dW5uZWwtPmVuY2Fw ID09IEwyVFBfRU5DQVBUWVBFX1VEUCkgewogCQlzdHJ1Y3QgdWRwX3R1bm5lbF9zb2NrX2NmZyB1 ZHBfY2ZnID0gewogCQkJLnNrX3VzZXJfZGF0YSA9IHR1bm5lbCwKLS0gCjIuMTkuMQoKCkZyb20g NGFjMzFjNTAzMzJhMzI2OWQ3MzhkYjE1YzAyMDI5MTUxOGJkNWJkNSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogUmFlZCBTYWxlbSA8cmFlZHNAbWVsbGFub3guY29tPgpEYXRlOiBUaHUs IDE4IE9jdCAyMDE4IDA4OjU1OjIxICswMzAwClN1YmplY3Q6IFtQQVRDSCAyMS8zNl0gbmV0L21s eDU6IElQU2VjLCBGaXggdGhlIFNBIGNvbnRleHQgaGFzaCBrZXkKClsgVXBzdHJlYW0gY29tbWl0 IGYyYjE4NzMyZWU5ODYzYWMwMzY3NTliYWY2MTZmZmEwM2MyNTJlZDUgXQoKVGhlIGNvbW1pdCAi bmV0L21seDU6IFJlZmFjdG9yIGFjY2VsIElQU2VjIGNvZGUiIGludHJvZHVjZWQgYQpidWcgd2hl cmUgYXN5bmNocm9ub3VzIHNob3J0IHRpbWUgY2hhbmdlIGluIGhhc2gga2V5IHZhbHVlCmJ5IGNy ZWF0ZS9yZWxlYXNlIFNBIGNvbnRleHQgbWlnaHQgaGFwcGVuIGR1cmluZyBhbiBhc3luY2hyb25v dXMKaGFzaCByZXNpemUgb3BlcmF0aW9uIHRoaXMgY291bGQgY2F1c2UgYSBzdWJzZXF1ZW50IHJl bW92ZSBTQQpjb250ZXh0IG9wZXJhdGlvbiB0byBmYWlsIGFzIHRoZSBrZXkgdmFsdWUgdXNlZCBk dXJpbmcgcmVzaXplIGlzCm5vdCB0aGUgc2FtZSBrZXkgdmFsdWUgdXNlZCB3aGVuIHJlbW92ZSBT QSBjb250ZXh0IG9wZXJhdGlvbiBpcwppbnZva2VkLgoKVGhpcyBjb21taXQgZml4ZXMgdGhlIGJ1 ZyBieSBkZWZpbmluZyB0aGUgU0EgY29udGV4dCBoYXNoIGtleQpzdWNoIHRoYXQgaXQgaW5jbHVk ZXMgb25seSBmaWVsZHMgdGhhdCBuZXZlciBjaGFuZ2UgZHVyaW5nIHRoZQpsaWZldGltZSBvZiB0 aGUgU0EgY29udGV4dCBvYmplY3QuCgpGaXhlczogZDZjNGYwMjk4Y2VjICgibmV0L21seDU6IFJl ZmFjdG9yIGFjY2VsIElQU2VjIGNvZGUiKQpTaWduZWQtb2ZmLWJ5OiBSYWVkIFNhbGVtIDxyYWVk c0BtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBBdmlhZCBZZWhlemtlbCA8YXZpYWR5ZUBtZWxs YW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3gu Y29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL2lw c2VjLmMgfCAxMCArKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9mcGdhL2lwc2VjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZnBnYS9pcHNlYy5jCmluZGV4IGI4ZWU5MTAxYzUwNi4uYjVhODc2OWE1YmZkIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnBnYS9p cHNlYy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdh L2lwc2VjLmMKQEAgLTgzLDggKzgzLDE0IEBAIHN0cnVjdCBtbHg1X2ZwZ2FfaXBzZWNfcnVsZSB7 CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHJoYXNodGFibGVfcGFyYW1zIHJoYXNoX3NhID0g ewotCS5rZXlfbGVuID0gRklFTERfU0laRU9GKHN0cnVjdCBtbHg1X2ZwZ2FfaXBzZWNfc2FfY3R4 LCBod19zYSksCi0JLmtleV9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgbWx4NV9mcGdhX2lwc2Vj X3NhX2N0eCwgaHdfc2EpLAorCS8qIEtlZXAgb3V0ICJjbWQiIGZpZWxkIGZyb20gdGhlIGtleSBh cyBpdCdzCisJICogdmFsdWUgaXMgbm90IGNvbnN0YW50IGR1cmluZyB0aGUgbGlmZXRpbWUKKwkg KiBvZiB0aGUga2V5IG9iamVjdC4KKwkgKi8KKwkua2V5X2xlbiA9IEZJRUxEX1NJWkVPRihzdHJ1 Y3QgbWx4NV9mcGdhX2lwc2VjX3NhX2N0eCwgaHdfc2EpIC0KKwkJICAgRklFTERfU0laRU9GKHN0 cnVjdCBtbHg1X2lmY19mcGdhX2lwc2VjX3NhX3YxLCBjbWQpLAorCS5rZXlfb2Zmc2V0ID0gb2Zm c2V0b2Yoc3RydWN0IG1seDVfZnBnYV9pcHNlY19zYV9jdHgsIGh3X3NhKSArCisJCSAgICAgIEZJ RUxEX1NJWkVPRihzdHJ1Y3QgbWx4NV9pZmNfZnBnYV9pcHNlY19zYV92MSwgY21kKSwKIAkuaGVh ZF9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgbWx4NV9mcGdhX2lwc2VjX3NhX2N0eCwgaGFzaCks CiAJLmF1dG9tYXRpY19zaHJpbmtpbmcgPSB0cnVlLAogCS5taW5fc2l6ZSA9IDEsCi0tIAoyLjE5 LjEKCgpGcm9tIDhiNmZhM2ZhYTYwZWM3ZWI4NmRkN2JhM2MxMmZiYmM2YmYyNTA2ZGUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERlbmlzIERyb3pkb3YgPGRlbmlzZEBtZWxsYW5veC5j b20+CkRhdGU6IFRodSwgMjcgU2VwIDIwMTggMTQ6MTc6NTQgKzAzMDAKU3ViamVjdDogW1BBVENI IDIyLzM2XSBuZXQvbWx4NWU6IElQb0lCLCBSZXNldCBRUCBhZnRlciBjaGFubmVscyBhcmUgY2xv c2VkCgpbIFVwc3RyZWFtIGNvbW1pdCBhY2YzNzY2YjM2ZDhlNTllY2JjMzA3ODk0YzZkMDU3MDNl ZTQ4MDE0IF0KClRoZSBtbHg1ZSBjaGFubmVscyBzaG91bGQgYmUgY2xvc2VkIGJlZm9yZSBtbHg1 aV91bmluaXRfdW5kZXJsYXlfcXAKcHV0cyB0aGUgUVAgaW50byBSU1QgKHJlc2V0KSBzdGF0ZSBk dXJpbmcgbWx4NWlfY2xvc2UuIEN1cnJlbnRseSBRUApzdGF0ZSBpbmNvcnJlY3RseSBzZXQgdG8g UlNUIGJlZm9yZSBjaGFubmVscyBnb3QgZGVhY3RpdmF0ZWQgYW5kIGNsb3NlZCwKc2luY2UgbWx4 NV9wb3N0X3NlbmQgcmVxdWVzdCBleHBlY3RzIFFQIGluIFJUUyAoUmVhZHkgVG8gU2VuZCkgc3Rh dGUuCgpUaGUgZml4IGlzIHRvIGtlZXAgUVAgaW4gUlRTIHN0YXRlIHVudGlsIG1seDVlIGNoYW5u ZWxzIGdldCBjbG9zZWQKYW5kIHRvIHJlc2V0IFFQIGFmdGVyd2FyZHMuCgpBbHNvIHRoaXMgZml4 IGlzIHNpbXBseSBjb3JyZWN0IGluIG9yZGVyIHRvIGtlZXAgdGhlIG9wZW4vY2xvc2UgZmxvdwpz eW1tZXRyaWMsIGkuZSBtbHg1aV9pbml0X3VuZGVybGF5X3FwKCkgaXMgY2FsbGVkIGZpcnN0IHRo aW5nIGF0IG9wZW4sCnRoZSBjb3JyZWN0IHRoaW5nIHRvIGRvIGlzIHRvIGNhbGwgbWx4NWlfdW5p bml0X3VuZGVybGF5X3FwKCkgbGFzdCB0aGluZwphdCBjbG9zZSwgd2hpY2ggaXMgZXhhY3RseSB3 aGF0IHRoaXMgcGF0Y2ggaXMgZG9pbmcuCgpGaXhlczogZGFlMzc0NTZjOGFjICgibmV0L21seDU6 IFN1cHBvcnQgZm9yIGF0dGFjaGluZyBtdWx0aXBsZSB1bmRlcmxheSBRUHMgdG8gcm9vdCBmbG93 IHRhYmxlIikKU2lnbmVkLW9mZi1ieTogRGVuaXMgRHJvemRvdiA8ZGVuaXNkQG1lbGxhbm94LmNv bT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL2lwb2liLmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIv aXBvaWIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9p cG9pYi5jCmluZGV4IGI3YzIxZWIyMWEyMS4uNDA5N2I5ZWZmMTc5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIvaXBvaWIuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIvaXBvaWIuYwpAQCAt NTAyLDkgKzUwMiw5IEBAIHN0YXRpYyBpbnQgbWx4NWlfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2Ug Km5ldGRldikKIAogCW5ldGlmX2NhcnJpZXJfb2ZmKGVwcml2LT5uZXRkZXYpOwogCW1seDVfZnNf cmVtb3ZlX3J4X3VuZGVybGF5X3FwbihtZGV2LCBpcHJpdi0+cXAucXBuKTsKLQltbHg1aV91bmlu aXRfdW5kZXJsYXlfcXAoZXByaXYpOwogCW1seDVlX2RlYWN0aXZhdGVfcHJpdl9jaGFubmVscyhl cHJpdik7CiAJbWx4NWVfY2xvc2VfY2hhbm5lbHMoJmVwcml2LT5jaGFubmVscyk7CisJbWx4NWlf dW5pbml0X3VuZGVybGF5X3FwKGVwcml2KTsKIHVubG9jazoKIAltdXRleF91bmxvY2soJmVwcml2 LT5zdGF0ZV9sb2NrKTsKIAlyZXR1cm4gMDsKLS0gCjIuMTkuMQoKCkZyb20gMzA0OGE1Mjg2ZjFl OGU4ZWExYzUwYzg4ZTU2NWYyMTgwMThhYjBhZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSmFyb2QgV2lsc29uIDxqYXJvZEByZWRoYXQuY29tPgpEYXRlOiBTdW4sIDQgTm92IDIwMTgg MTQ6NTk6NDYgLTA1MDAKU3ViamVjdDogW1BBVENIIDIzLzM2XSBib25kaW5nLzgwMi4zYWQ6IGZp eCBsaW5rX2ZhaWx1cmVfY291bnQgdHJhY2tpbmcKClsgVXBzdHJlYW0gY29tbWl0IGVhNTNhYmZh Yjk2MDkwOWQ2MjJjYTM3YmNmYjhlMWM1Mzc4ZDIxY2MgXQoKQ29tbWl0IDRkMmMwY2RhMDc0NDhl YTY5ODBmMDAxMDJkYzM5NjRlYjI1ZTI0MWMgc2V0IHNsYXZlLT5saW5rIHRvCkJPTkRfTElOS19E T1dOIGZvciA4MDIuM2FkIGJvbmRzIHdoZW5ldmVyIGludmFsaWQgc3BlZWQvZHVwbGV4IHZhbHVl cwp3ZXJlIHJlYWQsIHRvIGZpeCBhIHByb2JsZW0gd2l0aCBzbGF2ZXMgZ2V0dGluZyBpbnRvIHdl aXJkIHN0YXRlcywgYnV0CmluIHRoZSBwcm9jZXNzLCBicm9rZSB0cmFja2luZyBvZiBsaW5rIGZh aWx1cmVzLCBhcyBnb2luZyBzdHJhaWdodCB0bwpCT05EX0xJTktfRE9XTiB3aGVuIGEgbGluayBp cyBpbmRlZWQgZG93biAoY2FibGUgcHVsbGVkLCBzd2l0Y2ggcmVib290ZWQpCm1lYW5zIHdlIGJy b2tlIG91dCBvZiBib25kX21paW1vbl9pbnNwZWN0KCkncyBCT05EX0xJTktfRE9XTiBjYXNlIGJl Y2F1c2UKIWxpbmtfc3RhdGUgd2FzIGFscmVhZHkgdHJ1ZSwgd2UgbmV2ZXIgaW5jcmVtZW50ZWQg Y29tbWl0LCBhbmQgbmV2ZXIgZ290CmEgY2hhbmNlIHRvIGNhbGwgYm9uZF9taWltb25fY29tbWl0 KCksIHdoZXJlIHNsYXZlLT5saW5rX2ZhaWx1cmVfY291bnQKd291bGQgYmUgaW5jcmVtZW50ZWQu IEkgYmVsaWV2ZSB0aGUgc2ltcGxlIGZpeCBoZXJlIGlzIHRvIG1hcmsgdGhlIHNsYXZlCmFzIEJP TkRfTElOS19GQUlMLCBhbmQgbGV0IGJvbmRfbWlpbW9uX2luc3BlY3QoKSB0cmFuc2l0aW9uIHRo ZSBsaW5rIGZyb20KX0ZBSUwgdG8gZWl0aGVyIF9VUCBvciBfRE9XTiwgYW5kIGluIHRoZSBsYXR0 ZXIgY2FzZSwgd2Ugbm93IGdldCBwcm9wZXIKaW5jcmVtZW50aW5nIG9mIGxpbmtfZmFpbHVyZV9j b3VudCBhZ2Fpbi4KCkZpeGVzOiA0ZDJjMGNkYTA3NDQgKCJib25kaW5nOiBzcGVlZC9kdXBsZXgg dXBkYXRlIGF0IE5FVERFVl9VUCBldmVudCIpCkNDOiBNYWhlc2ggQmFuZGV3YXIgPG1haGVzaGJA Z29vZ2xlLmNvbT4KQ0M6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KQ0M6 IG5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKQ0M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKU2lnbmVk LW9mZi1ieTogSmFyb2QgV2lsc29uIDxqYXJvZEByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvYm9u ZGluZy9ib25kX21haW4uYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRf bWFpbi5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYwppbmRleCAyYjAxMTgwYmU4 MzQuLjI5NjYxZDQ1YzZkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21h aW4uYworKysgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCkBAIC0zMTE4LDEzICsz MTE4LDEzIEBAIHN0YXRpYyBpbnQgYm9uZF9zbGF2ZV9uZXRkZXZfZXZlbnQodW5zaWduZWQgbG9u ZyBldmVudCwKIAljYXNlIE5FVERFVl9DSEFOR0U6CiAJCS8qIEZvciA4MDIuM2FkIG1vZGUgb25s eToKIAkJICogR2V0dGluZyBpbnZhbGlkIFNwZWVkL0R1cGxleCB2YWx1ZXMgaGVyZSB3aWxsIHB1 dCBzbGF2ZQotCQkgKiBpbiB3ZWlyZCBzdGF0ZS4gU28gbWFyayBpdCBhcyBsaW5rLWRvd24gZm9y IHRoZSB0aW1lCisJCSAqIGluIHdlaXJkIHN0YXRlLiBTbyBtYXJrIGl0IGFzIGxpbmstZmFpbCBm b3IgdGhlIHRpbWUKIAkJICogYmVpbmcgYW5kIGxldCBsaW5rLW1vbml0b3JpbmcgKG1paW1vbikg c2V0IGl0IHJpZ2h0IHdoZW4KIAkJICogY29ycmVjdCBzcGVlZHMvZHVwbGV4IGFyZSBhdmFpbGFi bGUuCiAJCSAqLwogCQlpZiAoYm9uZF91cGRhdGVfc3BlZWRfZHVwbGV4KHNsYXZlKSAmJgogCQkg ICAgQk9ORF9NT0RFKGJvbmQpID09IEJPTkRfTU9ERV84MDIzQUQpCi0JCQlzbGF2ZS0+bGluayA9 IEJPTkRfTElOS19ET1dOOworCQkJc2xhdmUtPmxpbmsgPSBCT05EX0xJTktfRkFJTDsKIAogCQlp ZiAoQk9ORF9NT0RFKGJvbmQpID09IEJPTkRfTU9ERV84MDIzQUQpCiAJCQlib25kXzNhZF9hZGFw dGVyX3NwZWVkX2R1cGxleF9jaGFuZ2VkKHNsYXZlKTsKLS0gCjIuMTkuMQoKCkZyb20gYjQ0ZDgx ZmUxNTQ4MjhjYjQzYTBmYzlkMzRkMjFkMTM5NjIwODU1YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpEYXRlOiBTdW4sIDExIE5vdiAy MDE4IDAwOjQxOjEwICswMTAwClN1YmplY3Q6IFtQQVRDSCAyNC8zNl0gbmV0OiBkc2E6IG12ODhl Nnh4eDogRml4IGNsZWFyaW5nIG9mIHN0YXRzIGNvdW50ZXJzCgpbIFVwc3RyZWFtIGNvbW1pdCBh OTA0OWZmOTIxNGRhNjhkZjExNzlhN2Q1ZTM2YjQzNDc5YWJjOWI4IF0KClRoZSBtdjg4ZTYxNjEg d291bGQgc29tZXRpbWUgZmFpbCB0byBwcm9iZSB3aXRoIGEgdGltZW91dCB3YWl0aW5nIGZvcgp0 aGUgc3dpdGNoIHRvIGNvbXBsZXRlIGFuIG9wZXJhdGlvbi4gVGhpcyBvcGVyYXRpb24gaXMgc3Vw cG9zZWQgdG8KY2xlYXIgdGhlIHN0YXRpc3RpY3MgY291bnRlcnMuIEhvd2V2ZXIsIGR1ZSB0byBh IHJlYWQvbW9kaWZ5L3dyaXRlLAp3aXRob3V0IHRoZSBuZWVkZWQgbWFzaywgdGhlIG9wZXJhdGlv biBhY3R1YWxseSBjYXJyaWVkIG91dCB3YXMgbW9yZQpyYW5kb20sIHdpdGggaW52YWxpZCBwYXJh bWV0ZXJzLCByZXN1bHRpbmcgaW4gdGhlIHN3aXRjaCBub3QKcmVzcG9uZGluZy4gV2UgbmVlZCB0 byBwcmVzZXJ2ZSB0aGUgaGlzdG9ncmFtIG1vZGUgYml0cywgc28gYXBwbHkgYQptYXNrIHRvIGtl ZXAgdGhlbS4KClJlcG9ydGVkLWJ5OiBDaHJpcyBIZWFseSA8Q2hyaXMuSGVhbHlAemlpLmFlcm8+ CkZpeGVzOiA0MGNmZjhmY2E5ZTMgKCJuZXQ6IGRzYTogbXY4OGU2eHh4OiBGaXggc3RhdHMgaGlz dG9ncmFtIG1vZGUiKQpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYyB8IDIgKysKIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2 eHh4L2dsb2JhbDEuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jCmluZGV4 IGQ3MjFjY2Y3ZDhiZS4uMzhlMzk5ZTBmMzBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2Ev bXY4OGU2eHh4L2dsb2JhbDEuYworKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2Jh bDEuYwpAQCAtNTY3LDYgKzU2Nyw4IEBAIGludCBtdjg4ZTZ4eHhfZzFfc3RhdHNfY2xlYXIoc3Ry dWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKQogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKKwkv KiBLZWVwIHRoZSBoaXN0b2dyYW0gbW9kZSBiaXRzICovCisJdmFsICY9IE1WODhFNlhYWF9HMV9T VEFUU19PUF9ISVNUX1JYX1RYOwogCXZhbCB8PSBNVjg4RTZYWFhfRzFfU1RBVFNfT1BfQlVTWSB8 IE1WODhFNlhYWF9HMV9TVEFUU19PUF9GTFVTSF9BTEw7CiAKIAllcnIgPSBtdjg4ZTZ4eHhfZzFf d3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX1NUQVRTX09QLCB2YWwpOwotLSAKMi4xOS4xCgoKRnJv bSA3MjRhZTNiYjhhYzIwY2FhOWU1YzQ3MTI3MmRiNDM4ZGEzYmM3N2UwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/SG9sZ2VyPTIwSG9mZnN0PUMzPUE0dHRlPz0gPGhv bGdlckBhcHBsaWVkLWFzeW5jaHJvbnkuY29tPgpEYXRlOiBTdW4sIDQgTm92IDIwMTggMTk6MDI6 NDIgKzAxMDAKU3ViamVjdDogW1BBVENIIDI1LzM2XSBuZXQ6IHBoeTogcmVhbHRlazogZml4IFJU TDgyMDFGIHN5c2ZzIG5hbWUKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBz dHJlYW0gY29tbWl0IDA0MzJlODMzMTkxYWQ0ZDE3YjdmYzIzNjQ5NDFmOTFkYWQ1MWRiMWEgXQoK U2luY2UgNC4xOSB0aGUgZm9sbG93aW5nIGVycm9yIGluIHN5c2ZzIGhhcyBhcHBlYXJlZCB3aGVu IHVzaW5nIHRoZQpyODE2OSBOSUMgZHJpdmVyOgoKJGNkIC9zeXMvbW9kdWxlL3JlYWx0ZWsvZHJp dmVycwokbHMgLWwKbHM6IGNhbm5vdCBhY2Nlc3MgJ21kaW9fYnVzOlJUTDgyMDFGIDEwLzEwME1i cHMgRXRoZXJuZXQnOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5ClsuLmdhcmJsZWQgZGlyIGVu dHJpZXMgZm9sbG93Li5dCgpBcHBhcmVudGx5IHRoZSBmb3J3YXJkIHNsYXNoIGluICIxMC8xMDBN YnBzIEV0aGVybmV0IiBpcyBpbnRlcnByZXRlZAphcyBkaXJlY3Rvcnkgc2VwYXJhdG9yIHRoYXQg bGVhZHMgbm93aGVyZSwgYW5kIHdhcyBpbnRyb2R1Y2VkIGluIGNvbW1pdAo1MTM1ODhkZDQ0YiAo Im5ldDogcGh5OiByZWFsdGVrOiBhZGQgUlRMODIwMUYgcGh5LWlkIGFuZCBmdW5jdGlvbnMiKS4K CkZpeCB0aGlzIGJ5IHJlbW92aW5nIHRoZSBvZmZlbmRpbmcgc2xhc2ggaW4gdGhlIGRyaXZlciBu YW1lLgoKT3RoZXIgZHJpdmVycyBpbiBuZXQvcGh5IHNlZW0gdG8gaGF2ZSB0aGUgc2FtZSBwcm9i bGVtLCBidXQgSSBjYW5ub3QKdGVzdC92ZXJpZnkgdGhlbS4KCkZpeGVzOiA1MTM1ODhkZDQ0YiAo Im5ldDogcGh5OiByZWFsdGVrOiBhZGQgUlRMODIwMUYgcGh5LWlkIGFuZCBmdW5jdGlvbnMiKQpT aWduZWQtb2ZmLWJ5OiBIb2xnZXIgSG9mZnN0w6R0dGUgPGhvbGdlckBhcHBsaWVkLWFzeW5jaHJv bnkuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvcGh5L3JlYWx0ZWsuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9yZWFsdGVrLmMg Yi9kcml2ZXJzL25ldC9waHkvcmVhbHRlay5jCmluZGV4IDA4MmZiNDBjNjU2ZC4uYzI3OGE4NzA0 ODRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvcmVhbHRlay5jCisrKyBiL2RyaXZlcnMv bmV0L3BoeS9yZWFsdGVrLmMKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgc3RydWN0IHBoeV9k cml2ZXIgcmVhbHRla19kcnZzW10gPSB7CiAJCS5mbGFncyAgICAgICAgICA9IFBIWV9IQVNfSU5U RVJSVVBULAogCX0sIHsKIAkJLnBoeV9pZAkJPSAweDAwMWNjODE2LAotCQkubmFtZQkJPSAiUlRM ODIwMUYgMTAvMTAwTWJwcyBFdGhlcm5ldCIsCisJCS5uYW1lCQk9ICJSVEw4MjAxRiBGYXN0IEV0 aGVybmV0IiwKIAkJLnBoeV9pZF9tYXNrCT0gMHgwMDFmZmZmZiwKIAkJLmZlYXR1cmVzCT0gUEhZ X0JBU0lDX0ZFQVRVUkVTLAogCQkuZmxhZ3MJCT0gUEhZX0hBU19JTlRFUlJVUFQsCi0tIAoyLjE5 LjEKCgpGcm9tIGFlNTM1NzJmNWU1ZjdjYWY2YmM0ZDA3ODMxZmJkMDdiMDliNzk4NTMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4K RGF0ZTogU2F0LCAzIE5vdiAyMDE4IDE0OjAxOjMxICswODAwClN1YmplY3Q6IFtQQVRDSCAyNi8z Nl0gc2N0cDogZGVmaW5lIFNDVFBfU1NfREVGQVVMVCBmb3IgU3RyZWFtIHNjaGVkdWxlcnMKClsg VXBzdHJlYW0gY29tbWl0IDEyNDgwZTNiMTY5ODJjNDAyNmRlMTBkZDgxNTU4MjMyMTljZDYzOTEg XQoKQWNjb3JkaW5nIHRvIHJmYzgyNjAjc2VjdGlvbi00LjMuMiwgU0NUUF9TU19ERUZBVUxUIGlz IHJlcXVpcmVkIHRvCmRlZmluZWQgYXMgU0NUUF9TU19GQ0ZTIG9yIFNDVFBfU1NfUlIuCgpTQ1RQ X1NTX0ZDRlMgaXMgdXNlZCBmb3IgU0NUUF9TU19ERUZBVUxUJ3MgdmFsdWUgaW4gdGhpcyBwYXRj aC4KCkZpeGVzOiA1YmJiYmUzMmE0MzEgKCJzY3RwOiBpbnRyb2R1Y2Ugc3RyZWFtIHNjaGVkdWxl ciBmb3VuZGF0aW9ucyIpClJlcG9ydGVkLWJ5OiBKaWFud2VuIEppIDxqaWppQHJlZGhhdC5jb20+ ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUv dWFwaS9saW51eC9zY3RwLmggfCAxICsKIG5ldC9zY3RwL291dHF1ZXVlLmMgICAgICAgfCAyICst CiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9zY3RwLmggYi9pbmNsdWRlL3VhcGkvbGludXgvc2N0 cC5oCmluZGV4IGI2NGQ1ODNiZjA1My4uMTIxNjBiZjRkNGNlIDEwMDY0NAotLS0gYS9pbmNsdWRl L3VhcGkvbGludXgvc2N0cC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9zY3RwLmgKQEAgLTEx NDUsNiArMTE0NSw3IEBAIHN0cnVjdCBzY3RwX2FkZF9zdHJlYW1zIHsKIC8qIFNDVFAgU3RyZWFt IHNjaGVkdWxlcnMgKi8KIGVudW0gc2N0cF9zY2hlZF90eXBlIHsKIAlTQ1RQX1NTX0ZDRlMsCisJ U0NUUF9TU19ERUZBVUxUID0gU0NUUF9TU19GQ0ZTLAogCVNDVFBfU1NfUFJJTywKIAlTQ1RQX1NT X1JSLAogCVNDVFBfU1NfTUFYID0gU0NUUF9TU19SUgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvb3V0 cXVldWUuYyBiL25ldC9zY3RwL291dHF1ZXVlLmMKaW5kZXggZDY4YWEzMzQ4NWE5Li4yYTkzMzQx ODA0M2UgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL291dHF1ZXVlLmMKKysrIGIvbmV0L3NjdHAvb3V0 cXVldWUuYwpAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgc2N0cF9vdXRxX2luaXQoc3RydWN0IHNj dHBfYXNzb2NpYXRpb24gKmFzb2MsIHN0cnVjdCBzY3RwX291dHEgKnEpCiAJSU5JVF9MSVNUX0hF QUQoJnEtPnJldHJhbnNtaXQpOwogCUlOSVRfTElTVF9IRUFEKCZxLT5zYWNrZWQpOwogCUlOSVRf TElTVF9IRUFEKCZxLT5hYmFuZG9uZWQpOwotCXNjdHBfc2NoZWRfc2V0X3NjaGVkKGFzb2MsIFND VFBfU1NfRkNGUyk7CisJc2N0cF9zY2hlZF9zZXRfc2NoZWQoYXNvYywgU0NUUF9TU19ERUZBVUxU KTsKIH0KIAogLyogRnJlZSB0aGUgb3V0cXVldWUgc3RydWN0dXJlIGFuZCBhbnkgcmVsYXRlZCBw ZW5kaW5nIGNodW5rcy4KLS0gCjIuMTkuMQoKCkZyb20gNTRhNGYxYzNjY2M0Y2ZjOTRlNWYzNDFi MGQzMjQ0OTY0NDU4NjQ1OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3ViYXNoIEFi aGlub3YgS2FzaXZpc3dhbmF0aGFuIDxzdWJhc2hhYkBjb2RlYXVyb3JhLm9yZz4KRGF0ZTogRnJp LCA5IE5vdiAyMDE4IDE4OjU2OjI3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNy8zNl0gbmV0OiBx dWFsY29tbTogcm1uZXQ6IEZpeCBpbmNvcnJlY3QgYXNzaWdubWVudCBvZgogcmVhbF9kZXYKClsg VXBzdHJlYW0gY29tbWl0IGQwMjg1NGRjMTk5OWVkM2U3ZmQ3OWVjNzAwYzY0YWMyM2FjMGM0NTgg XQoKQSBudWxsIGRlcmVmZXJlbmNlIHdhcyBvYnNlcnZlZCB3aGVuIGEgc3lzY3RsIHdhcyBiZWlu ZyBzZXQKZnJvbSB1c2Vyc3BhY2UgYW5kIHJtbmV0IHdhcyBzdHVjayB0cnlpbmcgdG8gY29tcGxl dGUgc29tZSBhY3Rpb25zCmluIHRoZSBORVRERVZfUkVHSVNURVIgY2FsbGJhY2suIFRoaXMgaXMg YmVjYXVzZSB0aGUgcmVhbF9kZXYgaXMgc2V0Cm9ubHkgYWZ0ZXIgdGhlIGRldmljZSByZWdpc3Ry YXRpb24gaGFuZGxlciBjb21wbGV0ZXMuCgpzeXNjdGwgY2FsbCBzdGFjayAtCgo8Nj4gVW5hYmxl IHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0CiAgICB2aXJ0dWFs IGFkZHJlc3MgMDAwMDAxMDgKPDI+IHBjIDogcm1uZXRfdm5kX2dldF9pZmxpbmsrMHgxYy8weDI4 CjwyPiBsciA6IGRldl9nZXRfaWZsaW5rKzB4MmMvMHg0MAo8Mj4gIHJtbmV0X3ZuZF9nZXRfaWZs aW5rKzB4MWMvMHgyOAo8Mj4gIGluZXQ2X2ZpbGxfaWZpbmZvKzB4MTVjLzB4MjM0CjwyPiAgaW5l dDZfaWZpbmZvX25vdGlmeSsweDY4LzB4ZDQKPDI+ICBuZGlzY19pZmluZm9fc3lzY3RsX2NoYW5n ZSsweDFiOC8weDIzNAo8Mj4gIHByb2Nfc3lzX2NhbGxfaGFuZGxlcisweGFjLzB4MTAwCjwyPiAg cHJvY19zeXNfd3JpdGUrMHgzYy8weDRjCjwyPiAgX192ZnNfd3JpdGUrMHg1NC8weDE0Ywo8Mj4g IHZmc193cml0ZSsweGNjLzB4MTg4CjwyPiAgU3lTX3dyaXRlKzB4NjAvMHhjMAo8Mj4gIGVsMF9z dmNfbmFrZWQrMHgzNC8weDM4CgpkZXZpY2UgcmVnaXN0ZXIgY2FsbCBzdGFjayAtCgo8Mj4gIG5v dGlmaWVyX2NhbGxfY2hhaW4rMHg4NC8weGJjCjwyPiAgcmF3X25vdGlmaWVyX2NhbGxfY2hhaW4r MHgzOC8weDQ4CjwyPiAgY2FsbF9uZXRkZXZpY2Vfbm90aWZpZXJzX2luZm8rMHg0MC8weDcwCjwy PiAgY2FsbF9uZXRkZXZpY2Vfbm90aWZpZXJzKzB4MzgvMHg2MAo8Mj4gIHJlZ2lzdGVyX25ldGRl dmljZSsweDI5Yy8weDNkOAo8Mj4gIHJtbmV0X3ZuZF9uZXdsaW5rKzB4NjgvMHhlOAo8Mj4gIHJt bmV0X25ld2xpbmsrMHhhMC8weDE2MAo8Mj4gIHJ0bmxfbmV3bGluaysweDU3Yy8weDZjOAo8Mj4g IHJ0bmV0bGlua19yY3ZfbXNnKzB4MWRjLzB4MzI4CjwyPiAgbmV0bGlua19yY3Zfc2tiKzB4YWMv MHgxMTgKPDI+ICBydG5ldGxpbmtfcmN2KzB4MjQvMHgzMAo8Mj4gIG5ldGxpbmtfdW5pY2FzdCsw eDE1OC8weDFmMAo8Mj4gIG5ldGxpbmtfc2VuZG1zZysweDMyYy8weDMzOAo8Mj4gIHNvY2tfc2Vu ZG1zZysweDQ0LzB4NjAKPDI+ICBTeVNfc2VuZHRvKzB4MTUwLzB4MWFjCjwyPiAgZWwwX3N2Y19u YWtlZCsweDM0LzB4MzgKCkZpeGVzOiBiNzUyZWZmNWJlMjQgKCJuZXQ6IHF1YWxjb21tOiBybW5l dDogSW1wbGVtZW50IG5kb19nZXRfaWZsaW5rIikKU2lnbmVkLW9mZi1ieTogU2VhbiBUcmFuY2hl dHRpIDxzdHJhbmNoZUBjb2RlYXVyb3JhLm9yZz4KU2lnbmVkLW9mZi1ieTogU3ViYXNoIEFiaGlu b3YgS2FzaXZpc3dhbmF0aGFuIDxzdWJhc2hhYkBjb2RlYXVyb3JhLm9yZz4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L3F1YWxjb21tL3JtbmV0L3JtbmV0X3ZuZC5jIHwgNiArKystLS0KIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvcXVhbGNvbW0vcm1uZXQvcm1uZXRfdm5kLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9xdWFsY29tbS9ybW5ldC9ybW5ldF92bmQuYwppbmRleCBiOWE3NTQ4ZWM2YTAu LjJlZmRmN2QyZGVjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcXVhbGNvbW0v cm1uZXQvcm1uZXRfdm5kLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcXVhbGNvbW0vcm1u ZXQvcm1uZXRfdm5kLmMKQEAgLTIzNCw3ICsyMzQsNyBAQCBpbnQgcm1uZXRfdm5kX25ld2xpbmso dTggaWQsIHN0cnVjdCBuZXRfZGV2aWNlICpybW5ldF9kZXYsCiAJCSAgICAgIHN0cnVjdCBuZXRf ZGV2aWNlICpyZWFsX2RldiwKIAkJICAgICAgc3RydWN0IHJtbmV0X2VuZHBvaW50ICplcCkKIHsK LQlzdHJ1Y3Qgcm1uZXRfcHJpdiAqcHJpdjsKKwlzdHJ1Y3Qgcm1uZXRfcHJpdiAqcHJpdiA9IG5l dGRldl9wcml2KHJtbmV0X2Rldik7CiAJaW50IHJjOwogCiAJaWYgKGVwLT5lZ3Jlc3NfZGV2KQpA QCAtMjQ3LDYgKzI0Nyw4IEBAIGludCBybW5ldF92bmRfbmV3bGluayh1OCBpZCwgc3RydWN0IG5l dF9kZXZpY2UgKnJtbmV0X2RldiwKIAlybW5ldF9kZXYtPmh3X2ZlYXR1cmVzIHw9IE5FVElGX0Zf SVBfQ1NVTSB8IE5FVElGX0ZfSVBWNl9DU1VNOwogCXJtbmV0X2Rldi0+aHdfZmVhdHVyZXMgfD0g TkVUSUZfRl9TRzsKIAorCXByaXYtPnJlYWxfZGV2ID0gcmVhbF9kZXY7CisKIAlyYyA9IHJlZ2lz dGVyX25ldGRldmljZShybW5ldF9kZXYpOwogCWlmICghcmMpIHsKIAkJZXAtPmVncmVzc19kZXYg PSBybW5ldF9kZXY7CkBAIC0yNTUsOSArMjU3LDcgQEAgaW50IHJtbmV0X3ZuZF9uZXdsaW5rKHU4 IGlkLCBzdHJ1Y3QgbmV0X2RldmljZSAqcm1uZXRfZGV2LAogCiAJCXJtbmV0X2Rldi0+cnRubF9s aW5rX29wcyA9ICZybW5ldF9saW5rX29wczsKIAotCQlwcml2ID0gbmV0ZGV2X3ByaXYocm1uZXRf ZGV2KTsKIAkJcHJpdi0+bXV4X2lkID0gaWQ7Ci0JCXByaXYtPnJlYWxfZGV2ID0gcmVhbF9kZXY7 CiAKIAkJbmV0ZGV2X2RiZyhybW5ldF9kZXYsICJybW5ldCBkZXYgY3JlYXRlZFxuIik7CiAJfQot LSAKMi4xOS4xCgoKRnJvbSAwZmE1NTNhMDg0YjUyNTZjNzgwZDcwZDFhZGU4YWMwMGEzODIzNDNi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUcmlzdHJhbSBIYSA8VHJpc3RyYW0uSGFA bWljcm9jaGlwLmNvbT4KRGF0ZTogRnJpLCAyIE5vdiAyMDE4IDE5OjIzOjQxIC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAyOC8zNl0gbmV0OiBkc2E6IG1pY3JvY2hpcDogaW5pdGlhbGl6ZSBtdXRleCBi ZWZvcmUgdXNlCgpbIFVwc3RyZWFtIGNvbW1pdCAyODRmYjc4ZWQ3NTcyMTE3ODQ2ZjhlMWQxZDhl M2RiZmQxNjg4MGMyIF0KCkluaXRpYWxpemUgbXV0ZXggYmVmb3JlIHVzZS4gIEF2b2lkIGtlcm5l bCBjb21wbGFpbnQgd2hlbgpDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBlbmFibGVkLgoKRml4 ZXM6IGI5ODdlOThlNTBhYjkwZTUgKCJkc2E6IGFkZCBEU0Egc3dpdGNoIGRyaXZlciBmb3IgTWlj cm9jaGlwIEtTWjk0NzciKQpTaWduZWQtb2ZmLWJ5OiBUcmlzdHJhbSBIYSA8VHJpc3RyYW0uSGFA bWljcm9jaGlwLmNvbT4KUmV2aWV3ZWQtYnk6IFBhdmVsIE1hY2hlayA8cGF2ZWxAdWN3LmN6PgpS ZXZpZXdlZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpSZXZpZXdlZC1ieTogRmxv cmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbWlj cm9jaGlwL2tzel9jb21tb24uYyB8IDEwICsrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNh L21pY3JvY2hpcC9rc3pfY29tbW9uLmMgYi9kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9j b21tb24uYwppbmRleCA3MjEwYzQ5Yjc5MjIuLmMzMTAzYmRiNmNmNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmMKKysrIGIvZHJpdmVycy9uZXQvZHNh L21pY3JvY2hpcC9rc3pfY29tbW9uLmMKQEAgLTExMDgsMTEgKzExMDgsNiBAQCBzdGF0aWMgaW50 IGtzel9zd2l0Y2hfaW5pdChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KQogewogCWludCBpOwogCi0J bXV0ZXhfaW5pdCgmZGV2LT5yZWdfbXV0ZXgpOwotCW11dGV4X2luaXQoJmRldi0+c3RhdHNfbXV0 ZXgpOwotCW11dGV4X2luaXQoJmRldi0+YWx1X211dGV4KTsKLQltdXRleF9pbml0KCZkZXYtPnZs YW5fbXV0ZXgpOwotCiAJZGV2LT5kcy0+b3BzID0gJmtzel9zd2l0Y2hfb3BzOwogCiAJZm9yIChp ID0gMDsgaSA8IEFSUkFZX1NJWkUoa3N6X3N3aXRjaF9jaGlwcyk7IGkrKykgewpAQCAtMTE5Nyw2 ICsxMTkyLDExIEBAIGludCBrc3pfc3dpdGNoX3JlZ2lzdGVyKHN0cnVjdCBrc3pfZGV2aWNlICpk ZXYpCiAJaWYgKGRldi0+cGRhdGEpCiAJCWRldi0+Y2hpcF9pZCA9IGRldi0+cGRhdGEtPmNoaXBf aWQ7CiAKKwltdXRleF9pbml0KCZkZXYtPnJlZ19tdXRleCk7CisJbXV0ZXhfaW5pdCgmZGV2LT5z dGF0c19tdXRleCk7CisJbXV0ZXhfaW5pdCgmZGV2LT5hbHVfbXV0ZXgpOworCW11dGV4X2luaXQo JmRldi0+dmxhbl9tdXRleCk7CisKIAlpZiAoa3N6X3N3aXRjaF9kZXRlY3QoZGV2KSkKIAkJcmV0 dXJuIC1FSU5WQUw7CiAKLS0gCjIuMTkuMQoKCkZyb20gNDhjOWE3MTY1NzdjMGQxYTE3MzcyZmY3 NWJkNGE4OWU1Yjg1NjVmZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcg PGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBTYXQsIDMgTm92IDIwMTggMTM6NTk6NDUgKzA4 MDAKU3ViamVjdDogW1BBVENIIDI5LzM2XSBzY3RwOiBmaXggc3RyY2hhbmdlX2ZsYWdzIG5hbWUg Zm9yIFN0cmVhbSBDaGFuZ2UgRXZlbnQKClsgVXBzdHJlYW0gY29tbWl0IGZkODJkNjFiYTE0MmYw YjgzNDYzZTQ3MDY0YmY1NDYwYWFjNTdiNmUgXQoKQXMgZGVmaW5lZCBpbiByZmM2NTI1I3NlY3Rp b24tNi4xLjMsIFNDVFBfU1RSRUFNX0NIQU5HRV9ERU5JRUQKYW5kIFNDVFBfU1RSRUFNX0NIQU5H RV9GQUlMRUQgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZgpTQ1RQX0FTU09DX0NIQU5HRV9ERU5J RUQgYW5kIFNDVFBfQVNTT0NfQ0hBTkdFX0ZBSUxFRC4KClRvIGtlZXAgdGhlIGNvbXBhdGliaWxp dHksIGZpeCBpdCBieSBhZGRpbmcgdHdvIG1hY3Jvcy4KCkZpeGVzOiBiNDQ0MTUzZmI1YTYgKCJz Y3RwOiBhZGQgc3VwcG9ydCBmb3IgZ2VuZXJhdGluZyBhZGQgc3RyZWFtIGNoYW5nZSBldmVudCBu b3RpZmljYXRpb24iKQpSZXBvcnRlZC1ieTogSmlhbndlbiBKaSA8amlqaUByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL3Vh cGkvbGludXgvc2N0cC5oIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9zY3RwLmggYi9pbmNsdWRlL3VhcGkvbGlu dXgvc2N0cC5oCmluZGV4IDEyMTYwYmY0ZDRjZS4uOGQ4NTFjM2FlYmMyIDEwMDY0NAotLS0gYS9p bmNsdWRlL3VhcGkvbGludXgvc2N0cC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9zY3RwLmgK QEAgLTU2Niw2ICs1NjYsOCBAQCBzdHJ1Y3Qgc2N0cF9hc3NvY19yZXNldF9ldmVudCB7CiAKICNk ZWZpbmUgU0NUUF9BU1NPQ19DSEFOR0VfREVOSUVECTB4MDAwNAogI2RlZmluZSBTQ1RQX0FTU09D X0NIQU5HRV9GQUlMRUQJMHgwMDA4CisjZGVmaW5lIFNDVFBfU1RSRUFNX0NIQU5HRV9ERU5JRUQJ U0NUUF9BU1NPQ19DSEFOR0VfREVOSUVECisjZGVmaW5lIFNDVFBfU1RSRUFNX0NIQU5HRV9GQUlM RUQJU0NUUF9BU1NPQ19DSEFOR0VfRkFJTEVECiBzdHJ1Y3Qgc2N0cF9zdHJlYW1fY2hhbmdlX2V2 ZW50IHsKIAlfX3UxNiBzdHJjaGFuZ2VfdHlwZTsKIAlfX3UxNiBzdHJjaGFuZ2VfZmxhZ3M7Ci0t IAoyLjE5LjEKCgpGcm9tIGRiNWE2NWU1NzU0MWI5MzkwNGNmOWI1NmIyYzhhZTU3MzU0ZDE4N2Mg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcnRpbiBTY2hpbGxlciA8bXNAZGV2LnRk dC5kZT4KRGF0ZTogRnJpLCAxNiBOb3YgMjAxOCAwODozODozNiArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMzAvMzZdIG5ldDogcGh5OiBtZGlvLWdwaW86IEZpeCB3b3JraW5nIG92ZXIgc2xvdyBjYW5f c2xlZXAKIEdQSU9zCgpbIFVwc3RyZWFtIGNvbW1pdCBkZjVhOGVjNjRlZWQ3ZmU0NWI1NTZjZmZm NTAzYWNkNjQyOWFiODE3IF0KClVwIHVudGlsIGNvbW1pdCA3ZTVmYmQxZTA3MDAgKCJuZXQ6IG1k aW8tZ3BpbzogQ29udmVydCB0byB1c2UgZ3Bpb2QKZnVuY3Rpb25zIHdoZXJlIHBvc3NpYmxlIiks IHRoZSBfY2Fuc2xlZXAgdmFyaWFudHMgb2YgdGhlIGdwaW9fIEFQSSB3YXMKdXNlZC4gQWZ0ZXIg dGhhdCBjb21taXQgYW5kIHRoZSBjaGFuZ2UgdG8gZ3Bpb2RfIEFQSSwgdGhlIF9jYW5zbGVlcCgp CndhcyBkcm9wcGVkLiBUaGlzIHRoZW4gcmVzdWx0cyBpbiBXQVJOX09OKCkgd2hlbiB1c2VkIHdp dGggR1BJTwpkZXZpY2VzIHdoaWNoIGRvIHNsZWVwLiBBZGQgYmFjayB0aGUgX2NhbnNsZWVwKCkg dG8gYXZvaWQgdGhpcy4KCkZpeGVzOiA3ZTVmYmQxZTA3MDAgKCJuZXQ6IG1kaW8tZ3BpbzogQ29u dmVydCB0byB1c2UgZ3Bpb2QgZnVuY3Rpb25zIHdoZXJlIHBvc3NpYmxlIikKU2lnbmVkLW9mZi1i eTogTWFydGluIFNjaGlsbGVyIDxtc0BkZXYudGR0LmRlPgpSZXZpZXdlZC1ieTogQW5kcmV3IEx1 bm4gPGFuZHJld0BsdW5uLmNoPgpSZXZpZXdlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWlu ZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvbWRpby1ncGlvLmMgfCAxMCArKysrKy0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9tZGlvLWdwaW8uYyBiL2RyaXZlcnMvbmV0L3BoeS9t ZGlvLWdwaW8uYwppbmRleCAzMzI2NTc0N2JmMzkuLjBmYmNlZGNkZjZlMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvcGh5L21kaW8tZ3Bpby5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9tZGlvLWdw aW8uYwpAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgdm9pZCBtZGlvX2RpcihzdHJ1Y3QgbWRpb2Ji X2N0cmwgKmN0cmwsIGludCBkaXIpCiAJCSAqIGFzc3VtZSB0aGUgcGluIHNlcnZlcyBhcyBwdWxs LXVwLiBJZiBkaXJlY3Rpb24gaXMKIAkJICogb3V0cHV0LCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBo aWdoLgogCQkgKi8KLQkJZ3Bpb2Rfc2V0X3ZhbHVlKGJpdGJhbmctPm1kbywgMSk7CisJCWdwaW9k X3NldF92YWx1ZV9jYW5zbGVlcChiaXRiYW5nLT5tZG8sIDEpOwogCQlyZXR1cm47CiAJfQogCkBA IC03OCw3ICs3OCw3IEBAIHN0YXRpYyBpbnQgbWRpb19nZXQoc3RydWN0IG1kaW9iYl9jdHJsICpj dHJsKQogCXN0cnVjdCBtZGlvX2dwaW9faW5mbyAqYml0YmFuZyA9CiAJCWNvbnRhaW5lcl9vZihj dHJsLCBzdHJ1Y3QgbWRpb19ncGlvX2luZm8sIGN0cmwpOwogCi0JcmV0dXJuIGdwaW9kX2dldF92 YWx1ZShiaXRiYW5nLT5tZGlvKTsKKwlyZXR1cm4gZ3Bpb2RfZ2V0X3ZhbHVlX2NhbnNsZWVwKGJp dGJhbmctPm1kaW8pOwogfQogCiBzdGF0aWMgdm9pZCBtZGlvX3NldChzdHJ1Y3QgbWRpb2JiX2N0 cmwgKmN0cmwsIGludCB3aGF0KQpAQCAtODcsOSArODcsOSBAQCBzdGF0aWMgdm9pZCBtZGlvX3Nl dChzdHJ1Y3QgbWRpb2JiX2N0cmwgKmN0cmwsIGludCB3aGF0KQogCQljb250YWluZXJfb2YoY3Ry bCwgc3RydWN0IG1kaW9fZ3Bpb19pbmZvLCBjdHJsKTsKIAogCWlmIChiaXRiYW5nLT5tZG8pCi0J CWdwaW9kX3NldF92YWx1ZShiaXRiYW5nLT5tZG8sIHdoYXQpOworCQlncGlvZF9zZXRfdmFsdWVf Y2Fuc2xlZXAoYml0YmFuZy0+bWRvLCB3aGF0KTsKIAllbHNlCi0JCWdwaW9kX3NldF92YWx1ZShi aXRiYW5nLT5tZGlvLCB3aGF0KTsKKwkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGJpdGJhbmct Pm1kaW8sIHdoYXQpOwogfQogCiBzdGF0aWMgdm9pZCBtZGNfc2V0KHN0cnVjdCBtZGlvYmJfY3Ry bCAqY3RybCwgaW50IHdoYXQpCkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyB2b2lkIG1kY19zZXQo c3RydWN0IG1kaW9iYl9jdHJsICpjdHJsLCBpbnQgd2hhdCkKIAlzdHJ1Y3QgbWRpb19ncGlvX2lu Zm8gKmJpdGJhbmcgPQogCQljb250YWluZXJfb2YoY3RybCwgc3RydWN0IG1kaW9fZ3Bpb19pbmZv LCBjdHJsKTsKIAotCWdwaW9kX3NldF92YWx1ZShiaXRiYW5nLT5tZGMsIHdoYXQpOworCWdwaW9k X3NldF92YWx1ZV9jYW5zbGVlcChiaXRiYW5nLT5tZGMsIHdoYXQpOwogfQogCiBzdGF0aWMgY29u c3Qgc3RydWN0IG1kaW9iYl9vcHMgbWRpb19ncGlvX29wcyA9IHsKLS0gCjIuMTkuMQoKCkZyb20g MTYyNTA0MzQ5ODc0OGEyOTRiNGZjNDNiZGUzNDQzNDgzN2VhODVjMyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBTdW4s IDE4IE5vdiAyMDE4IDIxOjU5OjQ5ICswODAwClN1YmplY3Q6IFtQQVRDSCAzMi8zNl0gc2N0cDog bm90IGluY3JlYXNlIHN0cmVhbSdzIGluY250IGJlZm9yZSBzZW5kaW5nCiBhZGRzdHJtX2luIHJl cXVlc3QKClsgVXBzdHJlYW0gY29tbWl0IGUxZTQ2NDc5ODQ3ZTY2Zjc4Zjc5ZDhjMjRkNTE2OWE1 OTU0YjNmYzIgXQoKRGlmZmVyZW50IGZyb20gcHJvY2Vzc2luZyB0aGUgYWRkc3RybV9vdXQgcmVx dWVzdCwgVGhlIHJlY2VpdmVyIGhhbmRsZXMKYW4gYWRkc3RybV9pbiByZXF1ZXN0IGJ5IHNlbmRp bmcgYmFjayBhbiBhZGRzdHJtX291dCByZXF1ZXN0IHRvIHRoZQpzZW5kZXIgd2hvIHdpbGwgaW5j cmVhc2UgaXRzIHN0cmVhbSdzIGluIGFuZCBpbmNudCBsYXRlci4KCk5vdyBzdHJlYW0tPmluY250 IGhhcyBiZWVuIGluY3JlYXNlZCBzaW5jZSBpdCBzZW50IG91dCB0aGUgYWRkc3RybV9pbgpyZXF1 ZXN0IGluIHNjdHBfc2VuZF9hZGRfc3RyZWFtcygpLCB3aXRoIHRoZSB3cm9uZyBzdHJlYW0tPmlu Y250IHdpbGwKZXZlbiBjYXVzZSBjcmFzaCB3aGVuIGNvcHlpbmcgc3RyZWFtIGluZm8gZnJvbSB0 aGUgb2xkIHN0cmVhbSdzIGluIHRvCnRoZSBuZXcgb25lJ3MgaW4gc2N0cF9wcm9jZXNzX3N0cnJl c2V0X2FkZHN0cm1fb3V0KCkuCgpUaGlzIHBhdGNoIGlzIHRvIGZpeCBpdCBieSBzaW1wbHkgcmVt b3ZpbmcgdGhlIHN0cmVhbS0+aW5jbnQgY2hhbmdlCmZyb20gc2N0cF9zZW5kX2FkZF9zdHJlYW1z KCkuCgpGaXhlczogMjQyYmQyZDUxOWQ3ICgic2N0cDogaW1wbGVtZW50IHNlbmRlci1zaWRlIHBy b2NlZHVyZXMgZm9yIEFkZCBJbmNvbWluZy9PdXRnb2luZyBTdHJlYW1zIFJlcXVlc3QgUGFyYW1l dGVyIikKUmVwb3J0ZWQtYnk6IEppYW53ZW4gSmkgPGppamlAcmVkaGF0LmNvbT4KU2lnbmVkLW9m Zi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvc3RyZWFtLmMg fCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Nj dHAvc3RyZWFtLmMgYi9uZXQvc2N0cC9zdHJlYW0uYwppbmRleCBmMWYxZDFiMjMyYmEuLmZmMjMz ZjZiZDQ2NSAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc3RyZWFtLmMKKysrIGIvbmV0L3NjdHAvc3Ry ZWFtLmMKQEAgLTQ5MSw3ICs0OTEsNiBAQCBpbnQgc2N0cF9zZW5kX2FkZF9zdHJlYW1zKHN0cnVj dCBzY3RwX2Fzc29jaWF0aW9uICphc29jLAogCQlnb3RvIG91dDsKIAl9CiAKLQlzdHJlYW0tPmlu Y250ID0gaW5jbnQ7CiAJc3RyZWFtLT5vdXRjbnQgPSBvdXRjbnQ7CiAKIAlhc29jLT5zdHJyZXNl dF9vdXRzdGFuZGluZyA9ICEhb3V0ICsgISFpbjsKLS0gCjIuMTkuMQoKCkZyb20gMGY3ODg4MTVj M2Q4Nzg1YzI3MWJjOGVkYjIzNDRmNTg5NzIxZGQ3ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogU2hhbG9tIFRvbGVkbyA8c2hhbG9tdEBtZWxsYW5veC5jb20+CkRhdGU6IEZyaSwgMiBO b3YgMjAxOCAxOTo0OToxNSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMzMvMzZdIG1seHN3OiBzcGVj dHJ1bTogRml4IElQMk1FIENQVSBwb2xpY2VyIGNvbmZpZ3VyYXRpb24KClsgVXBzdHJlYW0gY29t bWl0IDk2ODAxNTUyZjg0NjQ2MGZlOWFjMTBmMWIxODk2MDI5OTJmMDA0ZTEgXQoKVGhlIENQVSBw b2xpY2VyIHVzZWQgdG8gcG9saWNlIHBhY2tldHMgYmVpbmcgdHJhcHBlZCB2aWEgYSBsb2NhbCBy b3V0ZQooSVAyTUUpIHdhcyBpbmNvcnJlY3RseSBjb25maWd1cmVkIHRvIHBvbGljZSBiYXNlZCBv biBieXRlcyBwZXIgc2Vjb25kCmluc3RlYWQgb2YgcGFja2V0cyBwZXIgc2Vjb25kLgoKQ2hhbmdl IHRoZSBwb2xpY2VyIHRvIHBvbGljZSBiYXNlZCBvbiBwYWNrZXRzIHBlciBzZWNvbmQgYW5kIGF2 b2lkCnBhY2tldCBsb3NzIHVuZGVyIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcy4KCkZpeGVzOiA5MTQ4 ZTdjZjczY2UgKCJtbHhzdzogc3BlY3RydW06IEFkZCBwb2xpY2VycyBmb3IgdHJhcCBncm91cHMi KQpTaWduZWQtb2ZmLWJ5OiBTaGFsb20gVG9sZWRvIDxzaGFsb210QG1lbGxhbm94LmNvbT4KU2ln bmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYyB8IDEgLQogMSBmaWxlIGNoYW5n ZWQsIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHhzdy9zcGVjdHJ1bS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 c3cvc3BlY3RydW0uYwppbmRleCA5NjhiODhhZjJlZjUuLjkxNzFkMjE1NzZhZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCkBAIC0zNDI5LDcg KzM0MjksNiBAQCBzdGF0aWMgaW50IG1seHN3X3NwX2NwdV9wb2xpY2Vyc19zZXQoc3RydWN0IG1s eHN3X2NvcmUgKm1seHN3X2NvcmUpCiAJCQlidXJzdF9zaXplID0gNzsKIAkJCWJyZWFrOwogCQlj YXNlIE1MWFNXX1JFR19IVEdUX1RSQVBfR1JPVVBfU1BfSVAyTUU6Ci0JCQlpc19ieXRlcyA9IHRy dWU7CiAJCQlyYXRlID0gNCAqIDEwMjQ7CiAJCQlidXJzdF9zaXplID0gNDsKIAkJCWJyZWFrOwot LSAKMi4xOS4xCgoKRnJvbSBiZGZmNTdjZWVjNjUyMTk5NTdhM2VhMjlkNTc5Y2I4MDNjNWJhNDMx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gV2FocmVuIDxzdGVmYW4ud2Fo cmVuQGkyc2UuY29tPgpEYXRlOiBUaHUsIDggTm92IDIwMTggMjA6Mzg6MjYgKzAxMDAKU3ViamVj dDogW1BBVENIIDM0LzM2XSBuZXQ6IHNtc2M5NXh4OiBGaXggTVRVIHJhbmdlCgpbIFVwc3RyZWFt IGNvbW1pdCA4NWIxOGIwMjM3Y2U5OTg2YTgxYTFiOTUzNGI1ZTJlZTExNmY1NTA0IF0KClRoZSBj b21taXQgZjc3ZjBhZWU0ZGE0ICgibmV0OiB1c2UgY29yZSBNVFUgcmFuZ2UgY2hlY2tpbmcgaW4g VVNCIE5JQwpkcml2ZXJzIikgaW50cm9kdWNlIGEgY29tbW9uIE1UVSBoYW5kbGluZyBmb3IgdXNi bmV0LiBCdXQgaXQncyBtaXNzaW5nCnRoZSBuZWNlc3NhcnkgY2hhbmdlcyBmb3Igc21zYzk1eHgu IFNvIHNldCB0aGUgTVRVIHJhbmdlIGFjY29yZGluZ2x5LgoKVGhpcyBwYXRjaCBoYXMgYmVlbiB0 ZXN0ZWQgb24gYSBSYXNwYmVycnkgUGkgMy4KCkZpeGVzOiBmNzdmMGFlZTRkYTQgKCJuZXQ6IHVz ZSBjb3JlIE1UVSByYW5nZSBjaGVja2luZyBpbiBVU0IgTklDIGRyaXZlcnMiKQpTaWduZWQtb2Zm LWJ5OiBTdGVmYW4gV2FocmVuIDxzdGVmYW4ud2FocmVuQGkyc2UuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv dXNiL3Ntc2M5NXh4LmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmMgYi9kcml2ZXJzL25ldC91c2Iv c21zYzk1eHguYwppbmRleCAyNjJlN2EzYzIzY2IuLjU5NzQ0NzhiNWJlNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4 LmMKQEAgLTEzMjEsNiArMTMyMSw4IEBAIHN0YXRpYyBpbnQgc21zYzk1eHhfYmluZChzdHJ1Y3Qg dXNibmV0ICpkZXYsIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKQogCWRldi0+bmV0LT5ldGh0 b29sX29wcyA9ICZzbXNjOTV4eF9ldGh0b29sX29wczsKIAlkZXYtPm5ldC0+ZmxhZ3MgfD0gSUZG X01VTFRJQ0FTVDsKIAlkZXYtPm5ldC0+aGFyZF9oZWFkZXJfbGVuICs9IFNNU0M5NVhYX1RYX09W RVJIRUFEX0NTVU07CisJZGV2LT5uZXQtPm1pbl9tdHUgPSBFVEhfTUlOX01UVTsKKwlkZXYtPm5l dC0+bWF4X210dSA9IEVUSF9EQVRBX0xFTjsKIAlkZXYtPmhhcmRfbXR1ID0gZGV2LT5uZXQtPm10 dSArIGRldi0+bmV0LT5oYXJkX2hlYWRlcl9sZW47CiAKIAlwZGF0YS0+ZGV2ID0gZGV2OwotLSAK Mi4xOS4xCgoKRnJvbSA4N2U0ODExYjk0ZTlkZjRjZDMxYzc4ODQxYzU4YzRlM2U4NTViNDU3IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0ByZWRo YXQuY29tPgpEYXRlOiBUaHUsIDEgTm92IDIwMTggMTM6Mzk6NTMgKzAwMDAKU3ViamVjdDogW1BB VENIIDM1LzM2XSByeHJwYzogRml4IGxvY2t1cCBkdWUgdG8gbm8gZXJyb3IgYmFja29mZiBhZnRl ciBhY2sKIHRyYW5zbWl0IGVycm9yCgpbIFVwc3RyZWFtIGNvbW1pdCBjN2U4NmFjZmNlZTMwNzk0 ZGM5OWEwNzU5OTI0YmY3YjlkNDNmMWNhIF0KCklmIHRoZSBuZXR3b3JrIGJlY29tZXMgKHBhcnRp YWxseSkgdW5hdmFpbGFibGUsIHNheSBieSBkaXNhYmxpbmcgSVB2NiwgdGhlCmJhY2tncm91bmQg QUNLIHRyYW5zbWlzc2lvbiByb3V0aW5lIGNhbiBnZXQgaXRzZWxmIGludG8gYSB0aXp6eSBieQpw cm9wb3NpbmcgaW1tZWRpYXRlIEFDSyByZXRyYW5zbWlzc2lvbi4gIFNpbmNlIHdlJ3JlIGluIHRo ZSBjYWxsIGV2ZW50CnByb2Nlc3NvciwgdGhhdCBoYXBwZW5zIGltbWVkaWF0ZWx5IHdpdGhvdXQg cmV0dXJuaW5nIHRvIHRoZSB3b3JrcXVldWUKbWFuYWdlci4KClRoZSBjb25kaXRpb24gc2hvdWxk IGNsZWFyIGFmdGVyIGEgd2hpbGUgd2hlbiBlaXRoZXIgdGhlIG5ldHdvcmsgY29tZXMgYmFjawpv ciB0aGUgY2FsbCB0aW1lcyBvdXQuCgpGaXggdGhpcyBieToKCiAoMSkgV2hlbiByZS1wcm9wb3Np bmcgYW4gQUNLIG9uIGZhaWxlZCBUeCwgZG9uJ3Qgc2NoZWR1bGUgaXQgaW1tZWRpYXRlbHkuCiAg ICAgVGhpcyB3aWxsIGFsbG93IGEgY2VydGFpbiBhbW91bnQgb2YgdGltZSB0byBlbGFwc2UgYmVm b3JlIHdlIHRyeQogICAgIGFnYWluLgoKICgyKSBFbmZvcmNlIGEgcmV0dXJuIHRvIHRoZSB3b3Jr cXVldWUgbWFuYWdlciBhZnRlciBhIGNlcnRhaW4gbnVtYmVyIG9mCiAgICAgaXRlcmF0aW9ucyBv ZiB0aGUgY2FsbCBwcm9jZXNzaW5nIGxvb3AuCgogKDMpIEFkZCBhIGJhY2tvZmYgZGVsYXkgdGhh dCBpbmNyZWFzZXMgdGhlIGRlbGF5IG9uIGRlZmVycmVkIEFDS3MgYnkgYQogICAgIGppZmZ5IHBl ciBmYWlsZWQgdHJhbnNtaXNzaW9uIHRvIGEgbGltaXQgb2YgSFouICBUaGUgYmFja29mZiBkZWxh eSBpcwogICAgIGNsZWFyZWQgb24gYSBzdWNjZXNzZnVsIHJldHVybiBmcm9tIGtlcm5lbF9zZW5k bXNnKCkuCgogKDQpIENhbmNlbCBjYWxscyBpbW1lZGlhdGVseSBpZiB0aGUgb3BlbmluZyBzZW5k bXNnIGZhaWxzLiAgVGhlIGxheWVyCiAgICAgYWJvdmUgY2FuIGFycmFuZ2UgcmV0cmFuc21pc3Np b24gb3Igcm90YXRlIHRvIGFub3RoZXIgc2VydmVyLgoKRml4ZXM6IDI0OGYyMTljYjhiYyAoInJ4 cnBjOiBSZXdyaXRlIHRoZSBkYXRhIGFuZCBhY2sgaGFuZGxpbmcgY29kZSIpClNpZ25lZC1vZmYt Ynk6IERhdmlkIEhvd2VsbHMgPGRob3dlbGxzQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcnhycGMvYXItaW50 ZXJuYWwuaCB8ICAxICsKIG5ldC9yeHJwYy9jYWxsX2V2ZW50LmMgIHwgMTggKysrKysrKysrKysr KystLS0tCiBuZXQvcnhycGMvb3V0cHV0LmMgICAgICB8IDM1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDcgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3J4cnBjL2FyLWludGVybmFsLmggYi9uZXQvcnhy cGMvYXItaW50ZXJuYWwuaAppbmRleCAzMzAzNzJjMDQ5NDAuLjVmNmM0NjFlZTZhYSAxMDA2NDQK LS0tIGEvbmV0L3J4cnBjL2FyLWludGVybmFsLmgKKysrIGIvbmV0L3J4cnBjL2FyLWludGVybmFs LmgKQEAgLTYxMyw2ICs2MTMsNyBAQCBzdHJ1Y3QgcnhycGNfY2FsbCB7CiAJCQkJCQkgKiBub3Qg aGFyZC1BQ0snZCBwYWNrZXQgZm9sbG93cyB0aGlzLgogCQkJCQkJICovCiAJcnhycGNfc2VxX3QJ CXR4X3RvcDsJCS8qIEhpZ2hlc3QgVHggc2xvdCBhbGxvY2F0ZWQuICovCisJdTE2CQkJdHhfYmFj a29mZjsJLyogRGVsYXkgdG8gaW5zZXJ0IGR1ZSB0byBUeCBmYWlsdXJlICovCiAKIAkvKiBUQ1At c3R5bGUgc2xvdy1zdGFydCBjb25nZXN0aW9uIGNvbnRyb2wgW1JGQzU2ODFdLiAgU2luY2UgdGhl IFNNU1MKIAkgKiBpcyBmaXhlZCwgd2Uga2VlcCB0aGVzZSBudW1iZXJzIGluIHRlcm1zIG9mIHNl Z21lbnRzIChpZS4gREFUQQpkaWZmIC0tZ2l0IGEvbmV0L3J4cnBjL2NhbGxfZXZlbnQuYyBiL25l dC9yeHJwYy9jYWxsX2V2ZW50LmMKaW5kZXggMjAyMTA0MTg5MDRiLi4zY2RjYTA4NWRkYjQgMTAw NjQ0Ci0tLSBhL25ldC9yeHJwYy9jYWxsX2V2ZW50LmMKKysrIGIvbmV0L3J4cnBjL2NhbGxfZXZl bnQuYwpAQCAtMTIzLDYgKzEyMyw3IEBAIHN0YXRpYyB2b2lkIF9fcnhycGNfcHJvcG9zZV9BQ0so c3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwsIHU4IGFja19yZWFzb24sCiAJCWVsc2UKIAkJCWFja19h dCA9IGV4cGlyeTsKIAorCQlhY2tfYXQgKz0gUkVBRF9PTkNFKGNhbGwtPnR4X2JhY2tvZmYpOwog CQlhY2tfYXQgKz0gbm93OwogCQlpZiAodGltZV9iZWZvcmUoYWNrX2F0LCBjYWxsLT5hY2tfYXQp KSB7CiAJCQlXUklURV9PTkNFKGNhbGwtPmFja19hdCwgYWNrX2F0KTsKQEAgLTMxMyw2ICszMTQs NyBAQCB2b2lkIHJ4cnBjX3Byb2Nlc3NfY2FsbChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJ CWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcnhycGNfY2FsbCwgcHJvY2Vzc29yKTsKIAlyeHJw Y19zZXJpYWxfdCAqc2VuZF9hY2s7CiAJdW5zaWduZWQgbG9uZyBub3csIG5leHQsIHQ7CisJdW5z aWduZWQgaW50IGl0ZXJhdGlvbnMgPSAwOwogCiAJcnhycGNfc2VlX2NhbGwoY2FsbCk7CiAKQEAg LTMyMSw2ICszMjMsMTEgQEAgdm9pZCByeHJwY19wcm9jZXNzX2NhbGwoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQogCSAgICAgICBjYWxsLT5kZWJ1Z19pZCwgcnhycGNfY2FsbF9zdGF0ZXNbY2Fs bC0+c3RhdGVdLCBjYWxsLT5ldmVudHMpOwogCiByZWNoZWNrX3N0YXRlOgorCS8qIExpbWl0IHRo ZSBudW1iZXIgb2YgdGltZXMgd2UgZG8gdGhpcyBiZWZvcmUgcmV0dXJuaW5nIHRvIHRoZSBtYW5h Z2VyICovCisJaXRlcmF0aW9ucysrOworCWlmIChpdGVyYXRpb25zID4gNSkKKwkJZ290byByZXF1 ZXVlOworCiAJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChSWFJQQ19DQUxMX0VWX0FCT1JULCAmY2Fs bC0+ZXZlbnRzKSkgewogCQlyeHJwY19zZW5kX2Fib3J0X3BhY2tldChjYWxsKTsKIAkJZ290byBy ZWNoZWNrX3N0YXRlOwpAQCAtNDQ5LDEzICs0NTYsMTYgQEAgdm9pZCByeHJwY19wcm9jZXNzX2Nh bGwoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXJ4cnBjX3JlZHVjZV9jYWxsX3RpbWVyKGNh bGwsIG5leHQsIG5vdywgcnhycGNfdGltZXJfcmVzdGFydCk7CiAKIAkvKiBvdGhlciBldmVudHMg bWF5IGhhdmUgYmVlbiByYWlzZWQgc2luY2Ugd2Ugc3RhcnRlZCBjaGVja2luZyAqLwotCWlmIChj YWxsLT5ldmVudHMgJiYgY2FsbC0+c3RhdGUgPCBSWFJQQ19DQUxMX0NPTVBMRVRFKSB7Ci0JCV9f cnhycGNfcXVldWVfY2FsbChjYWxsKTsKLQkJZ290byBvdXQ7Ci0JfQorCWlmIChjYWxsLT5ldmVu dHMgJiYgY2FsbC0+c3RhdGUgPCBSWFJQQ19DQUxMX0NPTVBMRVRFKQorCQlnb3RvIHJlcXVldWU7 CiAKIG91dF9wdXQ6CiAJcnhycGNfcHV0X2NhbGwoY2FsbCwgcnhycGNfY2FsbF9wdXQpOwogb3V0 OgogCV9sZWF2ZSgiIik7CisJcmV0dXJuOworCityZXF1ZXVlOgorCV9fcnhycGNfcXVldWVfY2Fs bChjYWxsKTsKKwlnb3RvIG91dDsKIH0KZGlmZiAtLWdpdCBhL25ldC9yeHJwYy9vdXRwdXQuYyBi L25ldC9yeHJwYy9vdXRwdXQuYwppbmRleCA2YWMyMWJiMjA3MWQuLjk4MTNhM2ZlNDAyYiAxMDA2 NDQKLS0tIGEvbmV0L3J4cnBjL291dHB1dC5jCisrKyBiL25ldC9yeHJwYy9vdXRwdXQuYwpAQCAt MzQsNiArMzQsMjEgQEAgc3RydWN0IHJ4cnBjX2Fib3J0X2J1ZmZlciB7CiAKIHN0YXRpYyBjb25z dCBjaGFyIHJ4cnBjX2tlZXBhbGl2ZV9zdHJpbmdbXSA9ICIiOwogCisvKgorICogSW5jcmVhc2Ug VHggYmFja29mZiBvbiB0cmFuc21pc3Npb24gZmFpbHVyZSBhbmQgY2xlYXIgaXQgb24gc3VjY2Vz cy4KKyAqLworc3RhdGljIHZvaWQgcnhycGNfdHhfYmFja29mZihzdHJ1Y3QgcnhycGNfY2FsbCAq Y2FsbCwgaW50IHJldCkKK3sKKwlpZiAocmV0IDwgMCkgeworCQl1MTYgdHhfYmFja29mZiA9IFJF QURfT05DRShjYWxsLT50eF9iYWNrb2ZmKTsKKworCQlpZiAodHhfYmFja29mZiA8IEhaKQorCQkJ V1JJVEVfT05DRShjYWxsLT50eF9iYWNrb2ZmLCB0eF9iYWNrb2ZmICsgMSk7CisJfSBlbHNlIHsK KwkJV1JJVEVfT05DRShjYWxsLT50eF9iYWNrb2ZmLCAwKTsKKwl9Cit9CisKIC8qCiAgKiBBcnJh bmdlIGZvciBhIGtlZXBhbGl2ZSBwaW5nIGEgY2VydGFpbiB0aW1lIGFmdGVyIHdlIGxhc3QgdHJh bnNtaXR0ZWQuICBUaGlzCiAgKiBsZXRzIHRoZSBmYXIgc2lkZSBrbm93IHdlJ3JlIHN0aWxsIGlu dGVyZXN0ZWQgaW4gdGhpcyBjYWxsIGFuZCBoZWxwcyBrZWVwCkBAIC0yMDcsNiArMjIyLDcgQEAg aW50IHJ4cnBjX3NlbmRfYWNrX3BhY2tldChzdHJ1Y3QgcnhycGNfY2FsbCAqY2FsbCwgYm9vbCBw aW5nLAogCWlmIChyZXQgPCAwKQogCQl0cmFjZV9yeHJwY190eF9mYWlsKGNhbGwtPmRlYnVnX2lk LCBzZXJpYWwsIHJldCwKIAkJCQkgICAgcnhycGNfdHhfZmFpbF9jYWxsX2Fjayk7CisJcnhycGNf dHhfYmFja29mZihjYWxsLCByZXQpOwogCiAJaWYgKGNhbGwtPnN0YXRlIDwgUlhSUENfQ0FMTF9D T01QTEVURSkgewogCQlpZiAocmV0IDwgMCkgewpAQCAtMjE1LDcgKzIzMSw3IEBAIGludCByeHJw Y19zZW5kX2Fja19wYWNrZXQoc3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwsIGJvb2wgcGluZywKIAkJ CXJ4cnBjX3Byb3Bvc2VfQUNLKGNhbGwsIHBrdC0+YWNrLnJlYXNvbiwKIAkJCQkJICBudG9ocyhw a3QtPmFjay5tYXhTa2V3KSwKIAkJCQkJICBudG9obChwa3QtPmFjay5zZXJpYWwpLAotCQkJCQkg IHRydWUsIHRydWUsCisJCQkJCSAgZmFsc2UsIHRydWUsCiAJCQkJCSAgcnhycGNfcHJvcG9zZV9h Y2tfcmV0cnlfdHgpOwogCQl9IGVsc2UgewogCQkJc3Bpbl9sb2NrX2JoKCZjYWxsLT5sb2NrKTsK QEAgLTI5NSw2ICszMTEsOCBAQCBpbnQgcnhycGNfc2VuZF9hYm9ydF9wYWNrZXQoc3RydWN0IHJ4 cnBjX2NhbGwgKmNhbGwpCiAJCXRyYWNlX3J4cnBjX3R4X2ZhaWwoY2FsbC0+ZGVidWdfaWQsIHNl cmlhbCwgcmV0LAogCQkJCSAgICByeHJwY190eF9mYWlsX2NhbGxfYWJvcnQpOwogCisJcnhycGNf dHhfYmFja29mZihjYWxsLCByZXQpOworCiAKIAlyeHJwY19wdXRfY29ubmVjdGlvbihjb25uKTsK IAlyZXR1cm4gcmV0OwpAQCAtNDAyLDYgKzQyMCw3IEBAIGludCByeHJwY19zZW5kX2RhdGFfcGFj a2V0KHN0cnVjdCByeHJwY19jYWxsICpjYWxsLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWlmIChy ZXQgPCAwKQogCQl0cmFjZV9yeHJwY190eF9mYWlsKGNhbGwtPmRlYnVnX2lkLCBzZXJpYWwsIHJl dCwKIAkJCQkgICAgcnhycGNfdHhfZmFpbF9jYWxsX2RhdGFfbm9mcmFnKTsKKwlyeHJwY190eF9i YWNrb2ZmKGNhbGwsIHJldCk7CiAJaWYgKHJldCA9PSAtRU1TR1NJWkUpCiAJCWdvdG8gc2VuZF9m cmFnbWVudGFibGU7CiAKQEAgLTQzNiw5ICs0NTUsMTggQEAgaW50IHJ4cnBjX3NlbmRfZGF0YV9w YWNrZXQoc3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwsIHN0cnVjdCBza19idWZmICpza2IsCiAJCQly eHJwY19yZWR1Y2VfY2FsbF90aW1lcihjYWxsLCBleHBlY3RfcnhfYnksIG5vd2osCiAJCQkJCQly eHJwY190aW1lcl9zZXRfZm9yX25vcm1hbCk7CiAJCX0KLQl9CiAKLQlyeHJwY19zZXRfa2VlcGFs aXZlKGNhbGwpOworCQlyeHJwY19zZXRfa2VlcGFsaXZlKGNhbGwpOworCX0gZWxzZSB7CisJCS8q IENhbmNlbCB0aGUgY2FsbCBpZiB0aGUgaW5pdGlhbCB0cmFuc21pc3Npb24gZmFpbHMsCisJCSAq IHBhcnRpY3VsYXJseSBpZiB0aGF0J3MgZHVlIHRvIG5ldHdvcmsgcm91dGluZyBpc3N1ZXMgdGhh dAorCQkgKiBhcmVuJ3QgZ29pbmcgYXdheSBhbnl0aW1lIHNvb24uICBUaGUgbGF5ZXIgYWJvdmUg Y2FuIGFycmFuZ2UKKwkJICogdGhlIHJldHJhbnNtaXNzaW9uLgorCQkgKi8KKwkJaWYgKCF0ZXN0 X2FuZF9zZXRfYml0KFJYUlBDX0NBTExfQkVHQU5fUlhfVElNRVIsICZjYWxsLT5mbGFncykpCisJ CQlyeHJwY19zZXRfY2FsbF9jb21wbGV0aW9uKGNhbGwsIFJYUlBDX0NBTExfTE9DQUxfRVJST1Is CisJCQkJCQkgIFJYX1VTRVJfQUJPUlQsIHJldCk7CisJfQogCiAJX2xlYXZlKCIgPSAlZCBbJXVd IiwgcmV0LCBjYWxsLT5wZWVyLT5tYXhkYXRhKTsKIAlyZXR1cm4gcmV0OwpAQCAtNDk0LDYgKzUy Miw3IEBAIGludCByeHJwY19zZW5kX2RhdGFfcGFja2V0KHN0cnVjdCByeHJwY19jYWxsICpjYWxs LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWlmIChyZXQgPCAwKQogCQl0cmFjZV9yeHJwY190eF9m YWlsKGNhbGwtPmRlYnVnX2lkLCBzZXJpYWwsIHJldCwKIAkJCQkgICAgcnhycGNfdHhfZmFpbF9j YWxsX2RhdGFfZnJhZyk7CisJcnhycGNfdHhfYmFja29mZihjYWxsLCByZXQpOwogCiAJdXBfd3Jp dGUoJmNvbm4tPnBhcmFtcy5sb2NhbC0+ZGVmcmFnX3NlbSk7CiAJZ290byBkb25lOwotLSAKMi4x OS4xCgoKRnJvbSBiYjdmMWU2MGVmMzI3MDhjYmFkNTk1ZTM2MTk0YjllYjY1OGJiMzQ0IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGcmllZGVyIFNjaHJlbXBmIDxmcmllZGVyLnNjaHJl bXBmQGtvbnRyb24uZGU+CkRhdGU6IFdlZCwgMzEgT2N0IDIwMTggMjI6NTI6MTkgKzAxMDAKU3Vi amVjdDogW1BBVENIIDM2LzM2XSB1c2JuZXQ6IHNtc2M5NXh4OiBkaXNhYmxlIGNhcnJpZXIgY2hl Y2sgd2hpbGUKIHN1c3BlbmRpbmcKClsgVXBzdHJlYW0gY29tbWl0IDdiOTAwZWFkNmNjNjZiMmVl ODczY2IwNDJkZmJhMTY5YWE2OGI1NmMgXQoKV2UgbmVlZCB0byBtYWtlIHN1cmUsIHRoYXQgdGhl IGNhcnJpZXIgY2hlY2sgcG9sbGluZyBpcyBkaXNhYmxlZAp3aGlsZSBzdXNwZW5kaW5nLiBPdGhl cndpc2Ugd2UgY2FuIGVuZCB1cCB3aXRoIHVzYm5ldF9yZWFkX2NtZCgpCmJlaW5nIGlzc3VlZCB3 aGVuIG9ubHkgdXNibmV0X3JlYWRfY21kX25vcG0oKSBpcyBhbGxvd2VkLiBJZiB0aGlzCmhhcHBl bnMsIHJlYWQgb3BlcmF0aW9ucyBsb2NrIHVwLgoKRml4ZXM6IGQ2OWQxNjk0OTMgKCJ1c2JuZXQ6 IHNtc2M5NXh4OiBmaXggbGluayBkZXRlY3Rpb24gZm9yIGRpc2FibGVkIGF1dG9uZWdvdGlhdGlv biIpClNpZ25lZC1vZmYtYnk6IEZyaWVkZXIgU2NocmVtcGYgPGZyaWVkZXIuc2NocmVtcGZAa29u dHJvbi5kZT4KUmV2aWV3ZWQtYnk6IFJhZ2h1cmFtIENoYXJ5IEogPFJhZ2h1cmFtQ2hhcnkuSmFs bGlwYWxsaUBtaWNyb2NoaXAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmMgfCA3ICsr KysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC91c2Ivc21zYzk1eHguYyBiL2RyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jCmluZGV4 IDU5NzQ0NzhiNWJlNC4uZjJkMDFjYjZmOTU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2Iv c21zYzk1eHguYworKysgYi9kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYwpAQCAtMTYwMCw2ICsx NjAwLDggQEAgc3RhdGljIGludCBzbXNjOTV4eF9zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNl ICppbnRmLCBwbV9tZXNzYWdlX3QgbWVzc2FnZSkKIAkJcmV0dXJuIHJldDsKIAl9CiAKKwljYW5j ZWxfZGVsYXllZF93b3JrX3N5bmMoJnBkYXRhLT5jYXJyaWVyX2NoZWNrKTsKKwogCWlmIChwZGF0 YS0+c3VzcGVuZF9mbGFncykgewogCQluZXRkZXZfd2FybihkZXYtPm5ldCwgImVycm9yIGR1cmlu ZyBsYXN0IHJlc3VtZVxuIik7CiAJCXBkYXRhLT5zdXNwZW5kX2ZsYWdzID0gMDsKQEAgLTE4NDIs NiArMTg0NCwxMSBAQCBzdGF0aWMgaW50IHNtc2M5NXh4X3N1c3BlbmQoc3RydWN0IHVzYl9pbnRl cmZhY2UgKmludGYsIHBtX21lc3NhZ2VfdCBtZXNzYWdlKQogCSAqLwogCWlmIChyZXQgJiYgUE1T R19JU19BVVRPKG1lc3NhZ2UpKQogCQl1c2JuZXRfcmVzdW1lKGludGYpOworCisJaWYgKHJldCkK KwkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZwZGF0YS0+Y2Fycmllcl9jaGVjaywKKwkJCQkgICAg ICBDQVJSSUVSX0NIRUNLX0RFTEFZKTsKKwogCXJldHVybiByZXQ7CiB9CiAKLS0gCjIuMTkuMQoK ----Next_Part(Tue_Nov_20_19_49_49_2018_073)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSAwNjMzNzEzZjJiNDE1ZmVmMDRhZmFhNTBjNTk4ZjAxNTlmM2JhNmI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUVCPUIwPUIwPUVDPTg0PTlEPUVDPUE3PTg0 Pz0gPHNvdWtqaW4uYmFlQHNhbXN1bmcuY29tPgpEYXRlOiBGcmksIDkgTm92IDIwMTggMTY6NTM6 MDYgLTA4MDAKU3ViamVjdDogW1BBVENIIDAxLzQzXSBmbG93X2Rpc3NlY3RvcjogZG8gbm90IGRp c3NlY3QgbDQgcG9ydHMgZm9yIGZyYWdtZW50cwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog OGJpdAoKWyBVcHN0cmVhbSBjb21taXQgNjIyMzA3MTVmZDI0NTNiM2JhOTQ4YzlkODNjZmIzYWRh OTE2OTE2OSBdCgpPbmx5IGZpcnN0IGZyYWdtZW50IGhhcyB0aGUgc3BvcnQvZHBvcnQgaW5mb3Jt YXRpb24sCm5vdCB0aGUgZm9sbG93aW5nIG9uZXMuCgpJZiB3ZSB3YW50IGNvbnNpc3RlbnQgaGFz aCBmb3IgYWxsIGZyYWdtZW50cywgd2UgbmVlZCB0bwppZ25vcmUgcG9ydHMgZXZlbiBmb3IgZmly c3QgZnJhZ21lbnQuCgpUaGlzIGJ1ZyBpcyB2aXNpYmxlIGZvciBJUHY2IHRyYWZmaWMsIGlmIGlu Y29taW5nIGZyYWdtZW50cwpkbyBub3QgaGF2ZSBhIGZsb3cgbGFiZWwsIHNpbmNlIHNrYl9nZXRf aGFzaCgpIHdpbGwgZ2l2ZQpkaWZmZXJlbnQgcmVzdWx0cyBmb3IgZmlyc3QgZnJhZ21lbnQgYW5k IGZvbGxvd2luZyBvbmVzLgoKSXQgaXMgYWxzbyB2aXNpYmxlIGlmIGFueSByb3V0aW5nIHJ1bGUg d2FudHMgZGlzc2VjdGlvbgphbmQgc3BvcnQgb3IgZHBvcnQuCgpTZWUgY29tbWl0IDVlNWQ2ZmVk Mzc0MSAoImlwdjY6IHJvdXRlOiBkaXNzZWN0IGZsb3cKaW4gaW5wdXQgcGF0aCBpZiBmaWIgcnVs ZXMgbmVlZCBpdCIpIGZvciBkZXRhaWxzLgoKW2VkdW1hemV0XSByZXdyb3RlIHRoZSBjaGFuZ2Vs b2cgY29tcGxldGVseS4KCkZpeGVzOiAwNjYzNWEzNWQxM2QgKCJmbG93X2Rpc3NlY3Q6IHVzZSBw cm9ncmFtYWJsZSBkaXNzZWN0b3IgaW4gc2tiX2Zsb3dfZGlzc2VjdCBhbmQgZnJpZW5kcyIpClNp Z25lZC1vZmYtYnk6IOuwsOyEneynhCA8c291a2ppbi5iYWVAc2Ftc3VuZy5jb20+ClNpZ25lZC1v ZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2Zsb3df ZGlzc2VjdG9yLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmxvd19kaXNzZWN0b3IuYyBiL25l dC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMKaW5kZXggY2U5ZWVlYjdjMDI0Li40MTViOTVmNzZiNjYg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMKKysrIGIvbmV0L2NvcmUvZmxv d19kaXNzZWN0b3IuYwpAQCAtMTAyNiw4ICsxMDI2LDggQEAgYm9vbCBfX3NrYl9mbG93X2Rpc3Nl Y3QoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGRpc3Nl Y3Rvcl91c2VzX2tleShmbG93X2Rpc3NlY3RvciwKLQkJCSAgICAgICBGTE9XX0RJU1NFQ1RPUl9L RVlfUE9SVFMpKSB7CisJaWYgKGRpc3NlY3Rvcl91c2VzX2tleShmbG93X2Rpc3NlY3RvciwgRkxP V19ESVNTRUNUT1JfS0VZX1BPUlRTKSAmJgorCSAgICAhKGtleV9jb250cm9sLT5mbGFncyAmIEZM T1dfRElTX0lTX0ZSQUdNRU5UKSkgewogCQlrZXlfcG9ydHMgPSBza2JfZmxvd19kaXNzZWN0b3Jf dGFyZ2V0KGZsb3dfZGlzc2VjdG9yLAogCQkJCQkJICAgICAgRkxPV19ESVNTRUNUT1JfS0VZX1BP UlRTLAogCQkJCQkJICAgICAgdGFyZ2V0X2NvbnRhaW5lcik7Ci0tIAoyLjE5LjEKCgpGcm9tIDFk ZjdjMTNkZGMyNTk3OWM3MjNmZmFmMjgxOTZmYjllYThhMzE1YzggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ID0/VVRGLTg/cT9NaWNoYT1DNT04Mj0yME1pcm9zPUM1PTgyYXc/PSA8bWly cS1saW51eEByZXJlLnFtcW0ucGw+CkRhdGU6IFdlZCwgNyBOb3YgMjAxOCAxNzo1MDo1MiArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMDIvNDNdIGlibXZuaWM6IGZpeCBhY2NlbGVyYXRlZCBWTEFOIGhh bmRsaW5nCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1p dCBlODRiNDc5NDFlMTVlNjY2NmFmYjhlZThiMjFkMWMzZmMxYTAxM2FmIF0KCkRvbid0IHJlcXVl c3QgdGFnIGluc2VydGlvbiB3aGVuIGl0IGlzbid0IHByZXNlbnQgaW4gb3V0Z29pbmcgc2tiLgoK U2lnbmVkLW9mZi1ieTogTWljaGHFgiBNaXJvc8WCYXcgPG1pcnEtbGludXhAcmVyZS5xbXFtLnBs PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaWJtL2libXZuaWMuYyB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2libS9pYm12bmljLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJt dm5pYy5jCmluZGV4IDY5OWVmOTQyYjYxNS4uNzY2MTA2NGM4MTViIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJtdm5pYy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2libS9pYm12bmljLmMKQEAgLTE1NDUsNyArMTU0NSw3IEBAIHN0YXRpYyBpbnQgaWJtdm5pY194 bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJdHhf Y3JxLnYxLnNnZV9sZW4gPSBjcHVfdG9fYmUzMihza2ItPmxlbik7CiAJdHhfY3JxLnYxLmlvYmEg PSBjcHVfdG9fYmU2NChkYXRhX2RtYV9hZGRyKTsKIAotCWlmIChhZGFwdGVyLT52bGFuX2hlYWRl cl9pbnNlcnRpb24pIHsKKwlpZiAoYWRhcHRlci0+dmxhbl9oZWFkZXJfaW5zZXJ0aW9uICYmIHNr Yl92bGFuX3RhZ19wcmVzZW50KHNrYikpIHsKIAkJdHhfY3JxLnYxLmZsYWdzMiB8PSBJQk1WTklD X1RYX1ZMQU5fSU5TRVJUOwogCQl0eF9jcnEudjEudmxhbl9pZCA9IGNwdV90b19iZTE2KHNrYi0+ dmxhbl90Y2kpOwogCX0KLS0gCjIuMTkuMQoKCkZyb20gZjhjNTRjMmZmYjgxNTY2MzMyOGEzNWE2 OWY0OGU1YjU1OTZhYjVkZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2FicmluYSBE dWJyb2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+CkRhdGU6IEZyaSwgMTYgTm92IDIwMTggMTY6NTg6 MTkgKzAxMDAKU3ViamVjdDogW1BBVENIIDAzLzQzXSBpcF90dW5uZWw6IGRvbid0IGZvcmNlIERG IHdoZW4gTVRVIGlzIGxvY2tlZAoKWyBVcHN0cmVhbSBjb21taXQgMTZmN2ViMmI3N2I1NWRhODE2 YzRlMjA3ZjNmOTQ0MGE4Y2FmYzAwYSBdCgpUaGUgdmFyaW91cyB0eXBlcyBvZiB0dW5uZWxzIHJ1 bm5pbmcgb3ZlciBJUHY0IGNhbiBhc2sgdG8gc2V0IHRoZSBERgpiaXQgdG8gZG8gUE1UVSBkaXNj b3ZlcnkuIEhvd2V2ZXIsIFBNVFUgZGlzY292ZXJ5IGlzIHN1YmplY3QgdG8gdGhlCnRocmVzaG9s ZCBzZXQgYnkgdGhlIG5ldC5pcHY0LnJvdXRlLm1pbl9wbXR1IHN5c2N0bCwgYW5kIGlzIGFsc28K ZGlzYWJsZWQgb24gcm91dGVzIHdpdGggIm10dSBsb2NrIi4gSW4gdGhvc2UgY2FzZXMsIHdlIHNo b3VsZG4ndCBzZXQKdGhlIERGIGJpdC4KClRoaXMgcGF0Y2ggbWFrZXMgc2V0dGluZyB0aGUgREYg Yml0IGNvbmRpdGlvbmFsIG9uIHRoZSByb3V0ZSdzIE1UVQpsb2NraW5nIHN0YXRlLgoKVGhpcyBp c3N1ZSBzZWVtcyB0byBiZSBvbGRlciB0aGFuIGdpdCBoaXN0b3J5LgoKU2lnbmVkLW9mZi1ieTog U2FicmluYSBEdWJyb2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+ClJldmlld2VkLWJ5OiBTdGVmYW5v IEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBfdHVubmVsX2NvcmUuYyB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L2lwX3R1bm5lbF9jb3JlLmMgYi9uZXQvaXB2NC9pcF90dW5uZWxf Y29yZS5jCmluZGV4IGRkZTY3MWU5NzgyOS4uYzI0OGUwZGNjYmUxIDEwMDY0NAotLS0gYS9uZXQv aXB2NC9pcF90dW5uZWxfY29yZS5jCisrKyBiL25ldC9pcHY0L2lwX3R1bm5lbF9jb3JlLmMKQEAg LTgwLDcgKzgwLDcgQEAgdm9pZCBpcHR1bm5lbF94bWl0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IHJ0YWJsZSAqcnQsIHN0cnVjdCBza19idWZmICpza2IsCiAKIAlpcGgtPnZlcnNpb24JPQk0Owog CWlwaC0+aWhsCT0Jc2l6ZW9mKHN0cnVjdCBpcGhkcikgPj4gMjsKLQlpcGgtPmZyYWdfb2ZmCT0J ZGY7CisJaXBoLT5mcmFnX29mZgk9CWlwX210dV9sb2NrZWQoJnJ0LT5kc3QpID8gMCA6IGRmOwog CWlwaC0+cHJvdG9jb2wJPQlwcm90bzsKIAlpcGgtPnRvcwk9CXRvczsKIAlpcGgtPmRhZGRyCT0J ZHN0OwotLSAKMi4xOS4xCgoKRnJvbSA1MzRiNDUzNmE0NmRhNzAxOWJiZDQzMDc3YWMxOTRkMzgz MmFjZDRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhp bkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTQgTm92IDIwMTggMDA6NDg6MjggKzA4MDAKU3ViamVj dDogW1BBVENIIDA0LzQzXSBpcHY2OiBmaXggYSBkc3QgbGVhayB3aGVuIHJlbW92aW5nIGl0cyBl eGNlcHRpb24KClsgVXBzdHJlYW0gY29tbWl0IDc2MWY2MDI2MWI0NDAxYWEzNjhkNzFkNDMxYjRj MjE4YWYwZWZjZWUgXQoKVGhlc2UgaXMgbm8gbmVlZCB0byBob2xkIGRzdCBiZWZvcmUgY2FsbGlu ZyBydDZfcmVtb3ZlX2V4Y2VwdGlvbl9ydCgpLgpUaGUgY2FsbCB0byBkc3RfaG9sZF9zYWZlKCkg aW4gaXA2X2xpbmtfZmFpbHVyZSgpIHdhcyBmb3IgaXA2X2RlbF9ydCgpLAp3aGljaCBoYXMgYmVl biByZW1vdmVkIGluIENvbW1pdCA5MzUzMWM2NzQzMTUgKCJuZXQvaXB2Njogc2VwYXJhdGUKaGFu ZGxpbmcgb2YgRklCIGVudHJpZXMgZnJvbSBkc3QgYmFzZWQgcm91dGVzIikuIE90aGVyd2lzZSwg aXQgd2lsbApjYXVzZSBhIGRzdCBsZWFrLgoKVGhpcyBwYXRjaCBpcyB0byBzaW1wbHkgcmVtb3Zl IHRoZSBkc3RfaG9sZF9zYWZlKCkgY2FsbCBiZWZvcmUgY2FsbGluZwpydDZfcmVtb3ZlX2V4Y2Vw dGlvbl9ydCgpIGFuZCBhbHNvIGRvIHRoZSBzYW1lIGluIGlwNl9kZWxfY2FjaGVkX3J0KCkuCkl0 J3Mgc2FmZSwgYmVjYXVzZSB0aGUgcmVtb3ZhbCBvZiB0aGUgZXhjZXB0aW9uIHRoYXQgaG9sZHMg aXRzIGRzdCdzCnJlZmNudCBpcyBwcm90ZWN0ZWQgYnkgcnQ2X2V4Y2VwdGlvbl9sb2NrLgoKRml4 ZXM6IDkzNTMxYzY3NDMxNSAoIm5ldC9pcHY2OiBzZXBhcmF0ZSBoYW5kbGluZyBvZiBGSUIgZW50 cmllcyBmcm9tIGRzdCBiYXNlZCByb3V0ZXMiKQpGaXhlczogMjNmYjkzYTRkM2YxICgibmV0L2lw djY6IENsZWFudXAgZXhjZXB0aW9uIGFuZCBjYWNoZSByb3V0ZSBoYW5kbGluZyIpClJlcG9ydGVk LWJ5OiBMaSBTaHVhbmcgPHNodWFsaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9u ZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVy bkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9yb3V0ZS5jIHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IDFjZjAwZDg1N2ZjMS4uZWQ3MmFlM2M1 NGU3IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yb3V0ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMK QEAgLTIyNjMsOCArMjI2Myw3IEBAIHN0YXRpYyB2b2lkIGlwNl9saW5rX2ZhaWx1cmUoc3RydWN0 IHNrX2J1ZmYgKnNrYikKIAlpZiAocnQpIHsKIAkJcmN1X3JlYWRfbG9jaygpOwogCQlpZiAocnQt PnJ0NmlfZmxhZ3MgJiBSVEZfQ0FDSEUpIHsKLQkJCWlmIChkc3RfaG9sZF9zYWZlKCZydC0+ZHN0 KSkKLQkJCQlydDZfcmVtb3ZlX2V4Y2VwdGlvbl9ydChydCk7CisJCQlydDZfcmVtb3ZlX2V4Y2Vw dGlvbl9ydChydCk7CiAJCX0gZWxzZSB7CiAJCQlzdHJ1Y3QgZmliNl9pbmZvICpmcm9tOwogCQkJ c3RydWN0IGZpYjZfbm9kZSAqZm47CkBAIC0zMjY2LDggKzMyNjUsOCBAQCBzdGF0aWMgaW50IGlw Nl9kZWxfY2FjaGVkX3J0KHN0cnVjdCBydDZfaW5mbyAqcnQsIHN0cnVjdCBmaWI2X2NvbmZpZyAq Y2ZnKQogCWlmIChjZmctPmZjX2ZsYWdzICYgUlRGX0dBVEVXQVkgJiYKIAkgICAgIWlwdjZfYWRk cl9lcXVhbCgmY2ZnLT5mY19nYXRld2F5LCAmcnQtPnJ0NmlfZ2F0ZXdheSkpCiAJCWdvdG8gb3V0 OwotCWlmIChkc3RfaG9sZF9zYWZlKCZydC0+ZHN0KSkKLQkJcmMgPSBydDZfcmVtb3ZlX2V4Y2Vw dGlvbl9ydChydCk7CisKKwlyYyA9IHJ0Nl9yZW1vdmVfZXhjZXB0aW9uX3J0KHJ0KTsKIG91dDoK IAlyZXR1cm4gcmM7CiB9Ci0tIAoyLjE5LjEKCgpGcm9tIGZkMTkwOTIyMWI2MjA2YTE3NTgyMjJl OGIwYWI2NDZmOTVkNDQ0OWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIEFo ZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAxOCBOb3YgMjAxOCAxMDo0NTozMCAt MDgwMApTdWJqZWN0OiBbUEFUQ0ggMDUvNDNdIGlwdjY6IEZpeCBQTVRVIHVwZGF0ZXMgZm9yIFVE UC9yYXcgc29ja2V0cyBpbiBwcmVzZW5jZQogb2YgVlJGCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZGRh Y2ZhNTY0ODcwY2RkOTcyNzVmZDg3ZGVjYjYxNzRhYmM2MzgwIF0KClByZWV0aGkgcmVwb3J0ZWQg dGhhdCBQTVRVIGRpc2NvdmVyeSBmb3IgVURQL3JhdyBhcHBsaWNhdGlvbnMgaXMgbm90Cndvcmtp bmcgaW4gdGhlIHByZXNlbmNlIG9mIFZSRiB3aGVuIHRoZSBzb2NrZXQgaXMgbm90IGJvdW5kIHRv IGEgZGV2aWNlLgpUaGUgcHJvYmxlbSBpcyB0aGF0IGlwNl9za191cGRhdGVfcG10dSBkb2VzIG5v dCBjb25zaWRlciB0aGUgTDMgZG9tYWluCm9mIHRoZSBza2IgZGV2aWNlIGlmIHRoZSBzb2NrZXQg aXMgbm90IGJvdW5kLiBVcGRhdGUgdGhlIGZ1bmN0aW9uIHRvCnNldCBvaWYgdG8gdGhlIEwzIG1h c3RlciBkZXZpY2UgaWYgcmVsZXZhbnQuCgpGaXhlczogY2EyNTQ0OTBjOGRmICgibmV0OiBBZGQg VlJGIHN1cHBvcnQgdG8gSVB2NiBzdGFjayIpClJlcG9ydGVkLWJ5OiBQcmVldGhpIFJhbWFjaGFu ZHJhIDxwcmVldGhpckBqdW5pcGVyLm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRz YWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvcm91dGUuYyB8IDcgKysrKystLQogMSBmaWxlIGNo YW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCBlZDcyYWUzYzU0ZTcuLmEzMzY4 MWRjNDc5NiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0 ZS5jCkBAIC0yMzkxLDEwICsyMzkxLDEzIEBAIEVYUE9SVF9TWU1CT0xfR1BMKGlwNl91cGRhdGVf cG10dSk7CiAKIHZvaWQgaXA2X3NrX3VwZGF0ZV9wbXR1KHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBzb2NrICpzaywgX19iZTMyIG10dSkKIHsKKwlpbnQgb2lmID0gc2stPnNrX2JvdW5kX2Rl dl9pZjsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Q7CiAKLQlpcDZfdXBkYXRlX3BtdHUoc2tiLCBz b2NrX25ldChzayksIG10dSwKLQkJCXNrLT5za19ib3VuZF9kZXZfaWYsIHNrLT5za19tYXJrLCBz ay0+c2tfdWlkKTsKKwlpZiAoIW9pZiAmJiBza2ItPmRldikKKwkJb2lmID0gbDNtZGV2X21hc3Rl cl9pZmluZGV4KHNrYi0+ZGV2KTsKKworCWlwNl91cGRhdGVfcG10dShza2IsIHNvY2tfbmV0KHNr KSwgbXR1LCBvaWYsIHNrLT5za19tYXJrLCBzay0+c2tfdWlkKTsKIAogCWRzdCA9IF9fc2tfZHN0 X2dldChzayk7CiAJaWYgKCFkc3QgfHwgIWRzdC0+b2Jzb2xldGUgfHwKLS0gCjIuMTkuMQoKCkZy b20gZTU5NDA5MDRiZjEzOWY4ZWQ5MGNiZDM0NGNhNGExYmE2ODdlYmUxMCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRG91ZyBCZXJnZXIgPG9wZW5kbWJAZ21haWwuY29tPgpEYXRlOiBU aHUsIDEgTm92IDIwMTggMTU6NTU6MzcgLTA3MDAKU3ViamVjdDogW1BBVENIIDA2LzQzXSBuZXQ6 IGJjbWdlbmV0OiBwcm90ZWN0IHN0b3AgZnJvbSB0aW1lb3V0CgpBIHRpbWluZyBoYXphcmQgZXhp c3RzIHdoZW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIHN0b3BwZWQgdGhhdAphbGxvd3MgYSB3 YXRjaGRvZyB0aW1lb3V0IHRvIGJlIHByb2Nlc3NlZCBieSBhIHNlcGFyYXRlIGNvcmUgaW4KcGFy YWxsZWwuIFRoaXMgY3JlYXRlcyB0aGUgcG90ZW50aWFsIGZvciB0aGUgdGltZW91dCBoYW5kbGVy IHRvCndha2UgdGhlIHF1ZXVlcyB3aGlsZSB0aGUgZHJpdmVyIGlzIHNodXR0aW5nIGRvd24sIG9y IGFjY2VzcwpyZWdpc3RlcnMgYWZ0ZXIgdGhlaXIgY2xvY2tzIGhhdmUgYmVlbiByZW1vdmVkLgoK VGhlIG1vcmUgY29tbW9uIGNhc2UgaXMgdGhhdCB0aGUgd2F0Y2hkb2cgdGltZW91dCB3aWxsIHBy b2R1Y2UgYQp3YXJuaW5nIG1lc3NhZ2Ugd2hpY2ggZG9lc24ndCBsZWFkIHRvIGEgY3Jhc2guIFRo ZSBjaGFuY2VzIG9mIHRoaXMKYXJlIGdyZWF0bHkgaW5jcmVhc2VkIGJ5IHRoZSBmYWN0IHRoYXQg YmNtZ2VuZXRfbmV0aWZfc3RvcCBzdG9wcwp0aGUgdHJhbnNtaXQgcXVldWVzIHdoaWNoIGNhbiBl YXNpbHkgcHJlY2lwaXRhdGUgYSB3YXRjaGRvZyB0aW1lLQpvdXQgYmVjYXVzZSBvZiBzdGFsZSB0 cmFuc19zdGFydCBkYXRhIGluIHRoZSBxdWV1ZXMuCgpUaGlzIGNvbW1pdCBjb3JyZWN0cyB0aGUg YmVoYXZpb3IgYnkgZW5zdXJpbmcgdGhhdCB0aGUgd2F0Y2hkb2cKdGltZW91dCBpcyBkaXNhYmxl ZCBiZWZvcmUgZW50ZXJyaW5nIGJjbWdlbmV0X25ldGlmX3N0b3AuIFRoZXJlCmFyZSBjdXJyZW50 bHkgb25seSB0d28gdXNlcnMgb2YgdGhlIGJjbWdlbmV0X25ldGlmX3N0b3AgZnVuY3Rpb246CmNs b3NlIGFuZCBzdXNwZW5kLgoKVGhlIGNsb3NlIGNhc2UgYWxyZWFkeSBoYW5kbGVzIHRoZSBpc3N1 ZSBieSBleGl0aW5nIHRoZSBSVU5OSU5HCnN0YXRlIGJlZm9yZSBpbnZva2luZyB0aGUgZHJpdmVy IGNsb3NlIHNlcnZpY2UuCgpUaGUgc3VzcGVuZCBjYXNlIG5vdyBwZXJmb3JtcyB0aGUgbmV0aWZf ZGV2aWNlX2RldGFjaCB0byBleGl0IHRoZQpQUkVTRU5UIHN0YXRlIGJlZm9yZSB0aGUgY2FsbCB0 byBiY21nZW5ldF9uZXRpZl9zdG9wIHJhdGhlciB0aGFuCmFmdGVyIGl0LgoKVGhlc2UgYmVoYXZp b3JzIHByZXZlbnQgYW55IGZ1dHVyZSBzY2hlZHVsaW5nIG9mIHRoZSBkcml2ZXIgdGltZW91dApz ZXJ2aWNlIGR1cmluZyB0aGUgd2luZG93LiBUaGUgbmV0aWZfdHhfc3RvcF9hbGxfcXVldWVzIGZ1 bmN0aW9uCmluIGJjbWdlbmV0X25ldGlmX3N0b3AgaXMgcmVwbGFjZWQgd2l0aCBuZXRpZl90eF9k aXNhYmxlIHRvIGVuc3VyZQpzeW5jaHJvbml6YXRpb24gd2l0aCBhbnkgdHJhbnNtaXQgb3IgdGlt ZW91dCB0aHJlYWRzIHRoYXQgbWF5CmFscmVhZHkgYmUgZXhlY3V0aW5nIG9uIG90aGVyIGNvcmVz LgoKRm9yIHN5bW1ldHJ5LCB0aGUgbmV0aWZfZGV2aWNlX2F0dGFjaCBjYWxsIHVwb24gcmVzdW1l IGlzIG1vdmVkIHRvCmFmdGVyIHRoZSBjYWxsIHRvIGJjbWdlbmV0X25ldGlmX3N0YXJ0LiBTaW5j ZSBpdCB3YWtlcyB0aGUgdHJhbnNtaXQKcXVldWVzIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gaW52 b2tlIG5ldGlmX3R4X3N0YXJ0X2FsbF9xdWV1ZXMgZnJvbQpiY21nZW5ldF9uZXRpZl9zdGFydCBz byBpdCBpcyBtb3ZlZCBpbnRvIHRoZSBkcml2ZXIgb3BlbiBzZXJ2aWNlLgoKWyBVcHN0cmVhbSBj b21taXQgMDllODA1ZDI1NzBhM2E5NGYxM2RkOWM5YWQyYmNhYjIzZGE3NmUwOSBdCgpGaXhlczog MWMxMDA4Yzc5M2ZhICgibmV0OiBiY21nZW5ldDogYWRkIG1haW4gZHJpdmVyIGZpbGUiKQpTaWdu ZWQtb2ZmLWJ5OiBEb3VnIEJlcmdlciA8b3BlbmRtYkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYyB8IDEzICsrKysrKystLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMKaW5kZXggMjBjMTY4MWJiMWFm Li4yZDZmMDkwYmY2NDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2dlbmV0L2JjbWdlbmV0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2Vu ZXQvYmNtZ2VuZXQuYwpAQCAtMjg1NSw3ICsyODU1LDYgQEAgc3RhdGljIHZvaWQgYmNtZ2VuZXRf bmV0aWZfc3RhcnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAogCXVtYWNfZW5hYmxlX3NldChw cml2LCBDTURfVFhfRU4gfCBDTURfUlhfRU4sIHRydWUpOwogCi0JbmV0aWZfdHhfc3RhcnRfYWxs X3F1ZXVlcyhkZXYpOwogCWJjbWdlbmV0X2VuYWJsZV90eF9uYXBpKHByaXYpOwogCiAJLyogTW9u aXRvciBsaW5rIGludGVycnVwdHMgbm93ICovCkBAIC0yOTM3LDYgKzI5MzYsOCBAQCBzdGF0aWMg aW50IGJjbWdlbmV0X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAogCWJjbWdlbmV0X25l dGlmX3N0YXJ0KGRldik7CiAKKwluZXRpZl90eF9zdGFydF9hbGxfcXVldWVzKGRldik7CisKIAly ZXR1cm4gMDsKIAogZXJyX2lycTE6CkBAIC0yOTU4LDcgKzI5NTksNyBAQCBzdGF0aWMgdm9pZCBi Y21nZW5ldF9uZXRpZl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJc3RydWN0IGJjbWdl bmV0X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwogCiAJYmNtZ2VuZXRfZGlzYWJsZV90 eF9uYXBpKHByaXYpOwotCW5ldGlmX3R4X3N0b3BfYWxsX3F1ZXVlcyhkZXYpOworCW5ldGlmX3R4 X2Rpc2FibGUoZGV2KTsKIAogCS8qIERpc2FibGUgTUFDIHJlY2VpdmUgKi8KIAl1bWFjX2VuYWJs ZV9zZXQocHJpdiwgQ01EX1JYX0VOLCBmYWxzZSk7CkBAIC0zNjIwLDEzICszNjIxLDEzIEBAIHN0 YXRpYyBpbnQgYmNtZ2VuZXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkKQogCWlmICghbmV0aWZf cnVubmluZyhkZXYpKQogCQlyZXR1cm4gMDsKIAorCW5ldGlmX2RldmljZV9kZXRhY2goZGV2KTsK KwogCWJjbWdlbmV0X25ldGlmX3N0b3AoZGV2KTsKIAogCWlmICghZGV2aWNlX21heV93YWtldXAo ZCkpCiAJCXBoeV9zdXNwZW5kKGRldi0+cGh5ZGV2KTsKIAotCW5ldGlmX2RldmljZV9kZXRhY2go ZGV2KTsKLQogCS8qIFByZXBhcmUgdGhlIGRldmljZSBmb3IgV2FrZS1vbi1MQU4gYW5kIHN3aXRj aCB0byB0aGUgc2xvdyBjbG9jayAqLwogCWlmIChkZXZpY2VfbWF5X3dha2V1cChkKSAmJiBwcml2 LT53b2xvcHRzKSB7CiAJCXJldCA9IGJjbWdlbmV0X3Bvd2VyX2Rvd24ocHJpdiwgR0VORVRfUE9X RVJfV09MX01BR0lDKTsKQEAgLTM3MDAsOCArMzcwMSw2IEBAIHN0YXRpYyBpbnQgYmNtZ2VuZXRf cmVzdW1lKHN0cnVjdCBkZXZpY2UgKmQpCiAJLyogQWx3YXlzIGVuYWJsZSByaW5nIDE2IC0gZGVz Y3JpcHRvciByaW5nICovCiAJYmNtZ2VuZXRfZW5hYmxlX2RtYShwcml2LCBkbWFfY3RybCk7CiAK LQluZXRpZl9kZXZpY2VfYXR0YWNoKGRldik7Ci0KIAlpZiAoIWRldmljZV9tYXlfd2FrZXVwKGQp KQogCQlwaHlfcmVzdW1lKGRldi0+cGh5ZGV2KTsKIApAQCAtMzcxMCw2ICszNzA5LDggQEAgc3Rh dGljIGludCBiY21nZW5ldF9yZXN1bWUoc3RydWN0IGRldmljZSAqZCkKIAogCWJjbWdlbmV0X25l dGlmX3N0YXJ0KGRldik7CiAKKwluZXRpZl9kZXZpY2VfYXR0YWNoKGRldik7CisKIAlyZXR1cm4g MDsKIAogb3V0X2Nsa19kaXNhYmxlOgotLSAKMi4xOS4xCgoKRnJvbSA0Y2M5ZTU3NzAwM2VlMDI1 ZjJiMjM2NTMxZjNkMDNiMjJlMTRjMjMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFNhdCwgMTcgTm92IDIwMTgg MjE6NTc6MDIgLTA4MDAKU3ViamVjdDogW1BBVENIIDA3LzQzXSBuZXQtZ3JvOiByZXNldCBza2It PnBrdF90eXBlIGluIG5hcGlfcmV1c2Vfc2tiKCkKClsgVXBzdHJlYW0gY29tbWl0IDMzZDlhMmM3 MmYwODZjYmYxMDg3YjJmZDJkMWExNWFhOWRmMTRhN2YgXQoKZXRoX3R5cGVfdHJhbnMoKSBhc3N1 bWVzIGluaXRpYWwgdmFsdWUgZm9yIHNrYi0+cGt0X3R5cGUKaXMgUEFDS0VUX0hPU1QuCgpUaGlz IGlzIGluZGVlZCB0aGUgdmFsdWUgcmlnaHQgYWZ0ZXIgYSBmcmVzaCBza2IgYWxsb2NhdGlvbi4K Ckhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRoYXQgR1JPIG1lcmdlZCBhIHBhY2tldCB3aXRoIGEg ZGlmZmVyZW50CnZhbHVlIChsaWtlIFBBQ0tFVF9PVEhFUkhPU1QgaW4gY2FzZSBtYWN2bGFuIGlz IHVzZWQpLCBzbwp3ZSBuZWVkIHRvIG1ha2Ugc3VyZSBuYXBpLT5za2Igd2lsbCBoYXZlIHBrdF90 eXBlIHNldCBiYWNrIHRvClBBQ0tFVF9IT1NULgoKT3RoZXJ3aXNlLCB2YWxpZCBwYWNrZXRzIG1p Z2h0IGJlIGRyb3BwZWQgYnkgdGhlIHN0YWNrIGJlY2F1c2UKdGhlaXIgcGt0X3R5cGUgaXMgbm90 IFBBQ0tFVF9IT1NULgoKbmFwaV9yZXVzZV9za2IoKSB3YXMgYWRkZWQgaW4gY29tbWl0IDk2ZTkz ZWFiMjAzMyAoImdybzogQWRkCmludGVybmFsIGludGVyZmFjZXMgZm9yIFZMQU4iKSwgYnV0IHRo aXMgYnVnIGFsd2F5cyBoYXMKYmVlbiB0aGVyZS4KCkZpeGVzOiA5NmU5M2VhYjIwMzMgKCJncm86 IEFkZCBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBWTEFOIikKU2lnbmVkLW9mZi1ieTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZGV2LmMgfCA0ICsrKysKIDEg ZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYu YyBiL25ldC9jb3JlL2Rldi5jCmluZGV4IGUxNmJhMzYyNTQwMC4uMDk3YzAyMTAxNDUwIDEwMDY0 NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtNTYzMCw2ICs1 NjMwLDEwIEBAIHN0YXRpYyB2b2lkIG5hcGlfcmV1c2Vfc2tiKHN0cnVjdCBuYXBpX3N0cnVjdCAq bmFwaSwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlza2ItPnZsYW5fdGNpID0gMDsKIAlza2ItPmRl diA9IG5hcGktPmRldjsKIAlza2ItPnNrYl9paWYgPSAwOworCisJLyogZXRoX3R5cGVfdHJhbnMo KSBhc3N1bWVzIHBrdF90eXBlIGlzIFBBQ0tFVF9IT1NUICovCisJc2tiLT5wa3RfdHlwZSA9IFBB Q0tFVF9IT1NUOworCiAJc2tiLT5lbmNhcHN1bGF0aW9uID0gMDsKIAlza2Jfc2hpbmZvKHNrYikt Pmdzb190eXBlID0gMDsKIAlza2ItPnRydWVzaXplID0gU0tCX1RSVUVTSVpFKHNrYl9lbmRfb2Zm c2V0KHNrYikpOwotLSAKMi4xOS4xCgoKRnJvbSAwYzBkZmE5NWI2NWYyMTVhZmE3M2MyM2M4YWEz ZDM3OTlmYjBiMTZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVj aWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTggTm92IDIwMTggMTU6MjE6NTMgKzA4MDAK U3ViamVjdDogW1BBVENIIDA4LzQzXSBzY3RwOiBub3QgYWxsb3cgdG8gc2V0IGFzb2MgcHJzY3Rw X2VuYWJsZSBieSBzb2Nrb3B0CgpbIFVwc3RyZWFtIGNvbW1pdCBjYzNjY2YyNmYwNjQ5MDg5YjNh MzRhMjc4MTk3Nzc1NWVhMzZlNzJjIF0KCkFzIHJmYzc0OTYjc2VjdGlvbjQuNSBzYXlzIGFib3V0 IFNDVFBfUFJfU1VQUE9SVEVEOgoKICAgVGhpcyBzb2NrZXQgb3B0aW9uIGFsbG93cyB0aGUgZW5h Ymxpbmcgb3IgZGlzYWJsaW5nIG9mIHRoZQogICBuZWdvdGlhdGlvbiBvZiBQUi1TQ1RQIHN1cHBv cnQgZm9yIGZ1dHVyZSBhc3NvY2lhdGlvbnMuICBGb3IgZXhpc3RpbmcKICAgYXNzb2NpYXRpb25z LCBpdCBhbGxvd3Mgb25lIHRvIHF1ZXJ5IHdoZXRoZXIgb3Igbm90IFBSLVNDVFAgc3VwcG9ydAog ICB3YXMgbmVnb3RpYXRlZCBvbiBhIHBhcnRpY3VsYXIgYXNzb2NpYXRpb24uCgpJdCBtZWFucyBv bmx5IHNjdHAgc29jaydzIHByc2N0cF9lbmFibGUgY2FuIGJlIHNldC4KCk5vdGUgdGhhdCBmb3Ig dGhlIGxpbWl0YXRpb24gb2YgU0NUUF97Q1VSUkVOVHxBTEx9X0FTU09DLCB3ZSB3aWxsCmFkZCBp dCB3aGVuIGludHJvZHVjaW5nIFNDVFBfe0ZVVFVSRXxDVVJSRU5UfEFMTH1fQVNTT0MgZm9yIGxp bnV4CnNjdHAgaW4gYW5vdGhlciBwYXRjaHNldC4KCnYxLT52MjoKICAtIGRyb3AgdGhlIHBhcmFt cy5hc3NvY19pZCBjaGVjayBhcyBOZWlsIHN1Z2dlc3RlZC4KCkZpeGVzOiAyOGFhNGMyNmZjZTIg KCJzY3RwOiBhZGQgU0NUUF9QUl9TVVBQT1JURUQgb24gc2N0cCBzb2Nrb3B0IikKUmVwb3J0ZWQt Ynk6IFlpbmcgWHUgPHlpbnh1QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxs dWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3RwL3NvY2tldC5jIHwgMjYgKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIxIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0 LmMKaW5kZXggYzE2OTNlMjhhZWQ0Li44NzYzOTNjZjVlZDYgMTAwNjQ0Ci0tLSBhL25ldC9zY3Rw L3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC0zOTU4LDMyICszOTU4LDE2IEBA IHN0YXRpYyBpbnQgc2N0cF9zZXRzb2Nrb3B0X3ByX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ss CiAJCQkJCXVuc2lnbmVkIGludCBvcHRsZW4pCiB7CiAJc3RydWN0IHNjdHBfYXNzb2NfdmFsdWUg cGFyYW1zOwotCXN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jOwotCWludCByZXR2YWwgPSAt RUlOVkFMOwogCiAJaWYgKG9wdGxlbiAhPSBzaXplb2YocGFyYW1zKSkKLQkJZ290byBvdXQ7Ci0K LQlpZiAoY29weV9mcm9tX3VzZXIoJnBhcmFtcywgb3B0dmFsLCBvcHRsZW4pKSB7Ci0JCXJldHZh bCA9IC1FRkFVTFQ7Ci0JCWdvdG8gb3V0OwotCX0KLQotCWFzb2MgPSBzY3RwX2lkMmFzc29jKHNr LCBwYXJhbXMuYXNzb2NfaWQpOwotCWlmIChhc29jKSB7Ci0JCWFzb2MtPnByc2N0cF9lbmFibGUg PSAhIXBhcmFtcy5hc3NvY192YWx1ZTsKLQl9IGVsc2UgaWYgKCFwYXJhbXMuYXNzb2NfaWQpIHsK LQkJc3RydWN0IHNjdHBfc29jayAqc3AgPSBzY3RwX3NrKHNrKTsKKwkJcmV0dXJuIC1FSU5WQUw7 CiAKLQkJc3AtPmVwLT5wcnNjdHBfZW5hYmxlID0gISFwYXJhbXMuYXNzb2NfdmFsdWU7Ci0JfSBl bHNlIHsKLQkJZ290byBvdXQ7Ci0JfQorCWlmIChjb3B5X2Zyb21fdXNlcigmcGFyYW1zLCBvcHR2 YWwsIG9wdGxlbikpCisJCXJldHVybiAtRUZBVUxUOwogCi0JcmV0dmFsID0gMDsKKwlzY3RwX3Nr KHNrKS0+ZXAtPnByc2N0cF9lbmFibGUgPSAhIXBhcmFtcy5hc3NvY192YWx1ZTsKIAotb3V0Ogot CXJldHVybiByZXR2YWw7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgc2N0cF9zZXRzb2Nr b3B0X2RlZmF1bHRfcHJpbmZvKHN0cnVjdCBzb2NrICpzaywKLS0gCjIuMTkuMQoKCkZyb20gZDRm NGE5YmEyZWU2NDQ1YWM0M2VmYTBjMDAwYzY0NWEwNTQ0ZmE0MiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogU3RlcGhlbiBNYWxsb24gPHN0ZXBoZW4ubWFsbG9uQHN5ZG5leS5lZHUuYXU+ CkRhdGU6IFR1ZSwgMjAgTm92IDIwMTggMTk6MTU6MDIgKzExMDAKU3ViamVjdDogW1BBVENIIDA5 LzQzXSB0Y3A6IEZpeCBTT0ZfVElNRVNUQU1QSU5HX1JYX0hBUkRXQVJFIHRvIHVzZSB0aGUgbGF0 ZXN0CiB0aW1lc3RhbXAgZHVyaW5nIFRDUCBjb2FsZXNjaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBj YWRmOWRmMjdlN2NmNDBlMzkwZTA2MGExYzcxYmI4NmVjZGU3OThiIF0KCkR1cmluZyB0Y3AgY29h bGVzY2luZyBlbnN1cmUgdGhhdCB0aGUgc2tiIGhhcmR3YXJlIHRpbWVzdGFtcCByZWZlcnMgdG8g dGhlCmhpZ2hlc3Qgc2VxdWVuY2UgbnVtYmVyIGRhdGEuClByZXZpb3VzbHkgb25seSB0aGUgc29m dHdhcmUgdGltZXN0YW1wIHdhcyB1cGRhdGVkIGR1cmluZyBjb2FsZXNjaW5nLgoKU2lnbmVkLW9m Zi1ieTogU3RlcGhlbiBNYWxsb24gPHN0ZXBoZW4ubWFsbG9uQHN5ZG5leS5lZHUuYXU+ClNpZ25l ZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3Rj cF9pbnB1dC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1n aXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCmluZGV4IDQ3 ZTA4YzFiNWJjMy4uNzI4OThjYmVmNDNkIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaW5wdXQu YworKysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpAQCAtNDM3MSw2ICs0MzcxLDcgQEAgc3RhdGlj IGJvb2wgdGNwX3RyeV9jb2FsZXNjZShzdHJ1Y3Qgc29jayAqc2ssCiAJaWYgKFRDUF9TS0JfQ0Io ZnJvbSktPmhhc19yeHRzdGFtcCkgewogCQlUQ1BfU0tCX0NCKHRvKS0+aGFzX3J4dHN0YW1wID0g dHJ1ZTsKIAkJdG8tPnRzdGFtcCA9IGZyb20tPnRzdGFtcDsKKwkJc2tiX2h3dHN0YW1wcyh0bykt Pmh3dHN0YW1wID0gc2tiX2h3dHN0YW1wcyhmcm9tKS0+aHd0c3RhbXA7CiAJfQogCiAJcmV0dXJu IHRydWU7Ci0tIAoyLjE5LjEKCgpGcm9tIDRkZDY0Nzk3N2Q1Y2UxNzk1MWJkNWJiNzE5MmE1MjEz NjY4ZDYzOWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNpdmEgUmVkZHkgS2FsbGFt IDxzaXZhLmthbGxhbUBicm9hZGNvbS5jb20+CkRhdGU6IFR1ZSwgMjAgTm92IDIwMTggMTA6MDQ6 MDQgKzA1MzAKU3ViamVjdDogW1BBVENIIDEwLzQzXSB0ZzM6IEFkZCBQSFkgcmVzZXQgZm9yIDU3 MTcvNTcxOS81NzIwIGluIGNoYW5nZSByaW5nCiBhbmQgZmxvdyBjb250cm9sIHBhdGhzCgpbIFVw c3RyZWFtIGNvbW1pdCA1OTY2M2U0MjE5OWM5M2QxZDczMTRkMTQ0NmY2NzgyZmM0YjFlYjgxIF0K ClRoaXMgcGF0Y2ggaGFzIHRoZSBmaXggdG8gYXZvaWQgUEhZIGxvY2t1cCB3aXRoIDU3MTcvNTcx OS81NzIwIGluIGNoYW5nZQpyaW5nIGFuZCBmbG93IGNvbnRyb2wgcGF0aHMuIFRoaXMgcGF0Y2gg c29sdmVzIHRoZSBSWCBoYW5nIHdoaWxlIGRvaW5nCmNvbnRpbnVvdXMgcmluZyBvciBmbG93IGNv bnRyb2wgcGFyYW1ldGVycyB3aXRoIGhlYXZ5IHRyYWZmaWMgZnJvbSBwZWVyLgoKU2lnbmVkLW9m Zi1ieTogU2l2YSBSZWRkeSBLYWxsYW0gPHNpdmEua2FsbGFtQGJyb2FkY29tLmNvbT4KQWNrZWQt Ynk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jIHwgMTggKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL3RnMy5jCmluZGV4IGU2ZjI4Yzc5NDJhYi4uYTEyOTYyNzAyNjExIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYwpAQCAtMTI0MjYsNiArMTI0MjYsNyBAQCBzdGF0aWMg aW50IHRnM19zZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0 b29sX3JpbmdwYXJhbSAqZQogewogCXN0cnVjdCB0ZzMgKnRwID0gbmV0ZGV2X3ByaXYoZGV2KTsK IAlpbnQgaSwgaXJxX3N5bmMgPSAwLCBlcnIgPSAwOworCWJvb2wgcmVzZXRfcGh5ID0gZmFsc2U7 CiAKIAlpZiAoKGVyaW5nLT5yeF9wZW5kaW5nID4gdHAtPnJ4X3N0ZF9yaW5nX21hc2spIHx8CiAJ ICAgIChlcmluZy0+cnhfanVtYm9fcGVuZGluZyA+IHRwLT5yeF9qbWJfcmluZ19tYXNrKSB8fApA QCAtMTI0NTcsNyArMTI0NTgsMTMgQEAgc3RhdGljIGludCB0ZzNfc2V0X3JpbmdwYXJhbShzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF9yaW5ncGFyYW0gKmUKIAogCWlmIChu ZXRpZl9ydW5uaW5nKGRldikpIHsKIAkJdGczX2hhbHQodHAsIFJFU0VUX0tJTkRfU0hVVERPV04s IDEpOwotCQllcnIgPSB0ZzNfcmVzdGFydF9odyh0cCwgZmFsc2UpOworCQkvKiBSZXNldCBQSFkg dG8gYXZvaWQgUEhZIGxvY2sgdXAgKi8KKwkJaWYgKHRnM19hc2ljX3Jldih0cCkgPT0gQVNJQ19S RVZfNTcxNyB8fAorCQkgICAgdGczX2FzaWNfcmV2KHRwKSA9PSBBU0lDX1JFVl81NzE5IHx8CisJ CSAgICB0ZzNfYXNpY19yZXYodHApID09IEFTSUNfUkVWXzU3MjApCisJCQlyZXNldF9waHkgPSB0 cnVlOworCisJCWVyciA9IHRnM19yZXN0YXJ0X2h3KHRwLCByZXNldF9waHkpOwogCQlpZiAoIWVy cikKIAkJCXRnM19uZXRpZl9zdGFydCh0cCk7CiAJfQpAQCAtMTI0OTEsNiArMTI0OTgsNyBAQCBz dGF0aWMgaW50IHRnM19zZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1 Y3QgZXRodG9vbF9wYXVzZXBhcmFtCiB7CiAJc3RydWN0IHRnMyAqdHAgPSBuZXRkZXZfcHJpdihk ZXYpOwogCWludCBlcnIgPSAwOworCWJvb2wgcmVzZXRfcGh5ID0gZmFsc2U7CiAKIAlpZiAodHAt PmxpbmtfY29uZmlnLmF1dG9uZWcgPT0gQVVUT05FR19FTkFCTEUpCiAJCXRnM193YXJuX21nbXRf bGlua19mbGFwKHRwKTsKQEAgLTEyNTgxLDcgKzEyNTg5LDEzIEBAIHN0YXRpYyBpbnQgdGczX3Nl dF9wYXVzZXBhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX3BhdXNl cGFyYW0KIAogCQlpZiAobmV0aWZfcnVubmluZyhkZXYpKSB7CiAJCQl0ZzNfaGFsdCh0cCwgUkVT RVRfS0lORF9TSFVURE9XTiwgMSk7Ci0JCQllcnIgPSB0ZzNfcmVzdGFydF9odyh0cCwgZmFsc2Up OworCQkJLyogUmVzZXQgUEhZIHRvIGF2b2lkIFBIWSBsb2NrIHVwICovCisJCQlpZiAodGczX2Fz aWNfcmV2KHRwKSA9PSBBU0lDX1JFVl81NzE3IHx8CisJCQkgICAgdGczX2FzaWNfcmV2KHRwKSA9 PSBBU0lDX1JFVl81NzE5IHx8CisJCQkgICAgdGczX2FzaWNfcmV2KHRwKSA9PSBBU0lDX1JFVl81 NzIwKQorCQkJCXJlc2V0X3BoeSA9IHRydWU7CisKKwkJCWVyciA9IHRnM19yZXN0YXJ0X2h3KHRw LCByZXNldF9waHkpOwogCQkJaWYgKCFlcnIpCiAJCQkJdGczX25ldGlmX3N0YXJ0KHRwKTsKIAkJ fQotLSAKMi4xOS4xCgoKRnJvbSAzNmIzMmM1NTA3NzcxNThmMjg5Y2ZhMjYyNWJhMTE2Y2U4NjI1 Yzg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTWFsb3kgPGRvbm1hbG85OUBn bWFpbC5jb20+CkRhdGU6IFNhdCwgMTcgTm92IDIwMTggMTI6MTc6MDYgLTA1MDAKU3ViamVjdDog W1BBVENIIDExLzQzXSB0aXBjOiBkb24ndCBhc3N1bWUgbGluZWFyIGJ1ZmZlciB3aGVuIHJlYWRp bmcgYW5jaWxsYXJ5CiBkYXRhCgpbIFVwc3RyZWFtIGNvbW1pdCAxYzEyNzRhNTY5OTlmYmRmOWNm ODRlMzMyYjI4NDQ4YmIyZDU1MjIxIF0KClRoZSBjb2RlIGZvciByZWFkaW5nIGFuY2lsbGFyeSBk YXRhIGZyb20gYSByZWNlaXZlZCBidWZmZXIgaXMgYXNzdW1pbmcKdGhlIGJ1ZmZlciBpcyBsaW5l YXIuIFRvIG1ha2UgdGhpcyBhc3N1bXB0aW9uIHRydWUgd2UgaGF2ZSB0byBsaW5lYXJpemUKdGhl IGJ1ZmZlciBiZWZvcmUgbWVzc2FnZSBkYXRhIGlzIHJlYWQuCgpTaWduZWQtb2ZmLWJ5OiBKb24g TWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9zb2NrZXQuYyB8IDE1ICsr KysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQu YwppbmRleCAwYmY4YWQ0ODZjNWUuLjM2NmNlMGJmMjY1OCAxMDA2NDQKLS0tIGEvbmV0L3RpcGMv c29ja2V0LmMKKysrIGIvbmV0L3RpcGMvc29ja2V0LmMKQEAgLTE1NDgsMTYgKzE1NDgsMTcgQEAg c3RhdGljIHZvaWQgdGlwY19za19zZXRfb3JpZ19hZGRyKHN0cnVjdCBtc2doZHIgKm0sIHN0cnVj dCBza19idWZmICpza2IpCiAvKioKICAqIHRpcGNfc2tfYW5jX2RhdGFfcmVjdiAtIG9wdGlvbmFs bHkgY2FwdHVyZSBhbmNpbGxhcnkgZGF0YSBmb3IgcmVjZWl2ZWQgbWVzc2FnZQogICogQG06IGRl c2NyaXB0b3IgZm9yIG1lc3NhZ2UgaW5mbwotICogQG1zZzogcmVjZWl2ZWQgbWVzc2FnZSBoZWFk ZXIKKyAqIEBza2I6IHJlY2VpdmVkIG1lc3NhZ2UgYnVmZmVyCiAgKiBAdHNrOiBUSVBDIHBvcnQg YXNzb2NpYXRlZCB3aXRoIG1lc3NhZ2UKICAqCiAgKiBOb3RlOiBBbmNpbGxhcnkgZGF0YSBpcyBu b3QgY2FwdHVyZWQgaWYgbm90IHJlcXVlc3RlZCBieSByZWNlaXZlci4KICAqCiAgKiBSZXR1cm5z IDAgaWYgc3VjY2Vzc2Z1bCwgb3RoZXJ3aXNlIGVycm5vCiAgKi8KLXN0YXRpYyBpbnQgdGlwY19z a19hbmNfZGF0YV9yZWN2KHN0cnVjdCBtc2doZHIgKm0sIHN0cnVjdCB0aXBjX21zZyAqbXNnLAor c3RhdGljIGludCB0aXBjX3NrX2FuY19kYXRhX3JlY3Yoc3RydWN0IG1zZ2hkciAqbSwgc3RydWN0 IHNrX2J1ZmYgKnNrYiwKIAkJCQkgc3RydWN0IHRpcGNfc29jayAqdHNrKQogeworCXN0cnVjdCB0 aXBjX21zZyAqbXNnOwogCXUzMiBhbmNfZGF0YVszXTsKIAl1MzIgZXJyOwogCXUzMiBkZXN0X3R5 cGU7CkBAIC0xNTY2LDYgKzE1NjcsNyBAQCBzdGF0aWMgaW50IHRpcGNfc2tfYW5jX2RhdGFfcmVj dihzdHJ1Y3QgbXNnaGRyICptLCBzdHJ1Y3QgdGlwY19tc2cgKm1zZywKIAogCWlmIChsaWtlbHko bS0+bXNnX2NvbnRyb2xsZW4gPT0gMCkpCiAJCXJldHVybiAwOworCW1zZyA9IGJ1Zl9tc2coc2ti KTsKIAogCS8qIE9wdGlvbmFsbHkgY2FwdHVyZSBlcnJvcmVkIG1lc3NhZ2Ugb2JqZWN0KHMpICov CiAJZXJyID0gbXNnID8gbXNnX2VycmNvZGUobXNnKSA6IDA7CkBAIC0xNTc2LDYgKzE1NzgsOSBA QCBzdGF0aWMgaW50IHRpcGNfc2tfYW5jX2RhdGFfcmVjdihzdHJ1Y3QgbXNnaGRyICptLCBzdHJ1 Y3QgdGlwY19tc2cgKm1zZywKIAkJaWYgKHJlcykKIAkJCXJldHVybiByZXM7CiAJCWlmIChhbmNf ZGF0YVsxXSkgeworCQkJaWYgKHNrYl9saW5lYXJpemUoc2tiKSkKKwkJCQlyZXR1cm4gLUVOT01F TTsKKwkJCW1zZyA9IGJ1Zl9tc2coc2tiKTsKIAkJCXJlcyA9IHB1dF9jbXNnKG0sIFNPTF9USVBD LCBUSVBDX1JFVERBVEEsIGFuY19kYXRhWzFdLAogCQkJCSAgICAgICBtc2dfZGF0YShtc2cpKTsK IAkJCWlmIChyZXMpCkBAIC0xNzM3LDkgKzE3NDIsMTAgQEAgc3RhdGljIGludCB0aXBjX3JlY3Zt c2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbSwKIAogCS8qIENvbGxlY3Qg bXNnIG1ldGEgZGF0YSwgaW5jbHVkaW5nIGVycm9yIGNvZGUgYW5kIHJlamVjdGVkIGRhdGEgKi8K IAl0aXBjX3NrX3NldF9vcmlnX2FkZHIobSwgc2tiKTsKLQlyYyA9IHRpcGNfc2tfYW5jX2RhdGFf cmVjdihtLCBoZHIsIHRzayk7CisJcmMgPSB0aXBjX3NrX2FuY19kYXRhX3JlY3YobSwgc2tiLCB0 c2spOwogCWlmICh1bmxpa2VseShyYykpCiAJCWdvdG8gZXhpdDsKKwloZHIgPSBidWZfbXNnKHNr Yik7CiAKIAkvKiBDYXB0dXJlIGRhdGEgaWYgbm9uLWVycm9yIG1zZywgb3RoZXJ3aXNlIGp1c3Qg c2V0IHJldHVybiB2YWx1ZSAqLwogCWlmIChsaWtlbHkoIWVycikpIHsKQEAgLTE4NDksOSArMTg1 NSwxMCBAQCBzdGF0aWMgaW50IHRpcGNfcmVjdnN0cmVhbShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBz dHJ1Y3QgbXNnaGRyICptLAogCQkvKiBDb2xsZWN0IG1zZyBtZXRhIGRhdGEsIGluY2wuIGVycm9y IGNvZGUgYW5kIHJlamVjdGVkIGRhdGEgKi8KIAkJaWYgKCFjb3BpZWQpIHsKIAkJCXRpcGNfc2tf c2V0X29yaWdfYWRkcihtLCBza2IpOwotCQkJcmMgPSB0aXBjX3NrX2FuY19kYXRhX3JlY3YobSwg aGRyLCB0c2spOworCQkJcmMgPSB0aXBjX3NrX2FuY19kYXRhX3JlY3YobSwgc2tiLCB0c2spOwog CQkJaWYgKHJjKQogCQkJCWJyZWFrOworCQkJaGRyID0gYnVmX21zZyhza2IpOwogCQl9CiAKIAkJ LyogQ29weSBkYXRhIGlmIG1zZyBvaywgb3RoZXJ3aXNlIHJldHVybiBlcnJvci9wYXJ0aWFsIGRh dGEgKi8KLS0gCjIuMTkuMQoKCkZyb20gMjVmYWVkOWRmYTQzMzRkY2NhYzVkZjFkNmVkYWNlNDY0 YWJhNTYyZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9uIE1hbG95IDxkb25tYWxv OTlAZ21haWwuY29tPgpEYXRlOiBGcmksIDE2IE5vdiAyMDE4IDE2OjU1OjA0IC0wNTAwClN1Ympl Y3Q6IFtQQVRDSCAxMi80M10gdGlwYzogZml4IGxvY2tkZXAgd2FybmluZyB3aGVuIHJlaW5pdGls YWl6aW5nIHNvY2tldHMKClsgVXBzdHJlYW0gY29tbWl0IGFkYmE3NWJlMGQyM2NjYTkyYTAyODc0 OWQ5MmM2MGM4OTA5YmJkYjMgXQoKV2UgZ2V0IHRoZSBmb2xsb3dpbmcgd2FybmluZzoKClsgICA0 Ny45MjYxNDBdIDMyLWJpdCBub2RlIGFkZHJlc3MgaGFzaCBzZXQgdG8gMjAxMGEwYQpbICAgNDcu OTI3MjAyXQpbICAgNDcuOTI3NDMzXSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpb ICAgNDcuOTI4MDUwXSBXQVJOSU5HOiBpbmNvbnNpc3RlbnQgbG9jayBzdGF0ZQpbICAgNDcuOTI4 NjYxXSA0LjE5LjArICMzNyBUYWludGVkOiBHICAgICAgICAgICAgRQpbICAgNDcuOTI5MzQ2XSAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpbICAgNDcuOTI5OTU0XSBpbmNvbnNpc3Rl bnQge1NPRlRJUlEtT04tV30gLT4ge0lOLVNPRlRJUlEtV30gdXNhZ2UuClsgICA0Ny45MzAxMTZd IHN3YXBwZXIvMy8wIFtIQzBbMF06U0MxWzNdOkhFMTpTRTBdIHRha2VzOgpbICAgNDcuOTMwMTE2 XSAwMDAwMDAwMGFmOGJjMzFlICgmKCZodC0+bG9jayktPnJsb2NrKXsrLj8ufSwgYXQ6IHJoYXNo dGFibGVfd2Fsa19lbnRlcisweDM2LzB4YjAKWyAgIDQ3LjkzMDExNl0ge1NPRlRJUlEtT04tV30g c3RhdGUgd2FzIHJlZ2lzdGVyZWQgYXQ6ClsgICA0Ny45MzAxMTZdICAgX3Jhd19zcGluX2xvY2sr MHgyOS8weDYwClsgICA0Ny45MzAxMTZdICAgcmh0X2RlZmVycmVkX3dvcmtlcisweDU1Ni8weDgx MApbICAgNDcuOTMwMTE2XSAgIHByb2Nlc3Nfb25lX3dvcmsrMHgxZjUvMHg1NDAKWyAgIDQ3Ljkz MDExNl0gICB3b3JrZXJfdGhyZWFkKzB4NjQvMHgzZTAKWyAgIDQ3LjkzMDExNl0gICBrdGhyZWFk KzB4MTEyLzB4MTUwClsgICA0Ny45MzAxMTZdICAgcmV0X2Zyb21fZm9yaysweDNhLzB4NTAKWyAg IDQ3LjkzMDExNl0gaXJxIGV2ZW50IHN0YW1wOiAxNDA0NApbICAgNDcuOTMwMTE2XSBoYXJkaXJx cyBsYXN0ICBlbmFibGVkIGF0ICgxNDA0NCk6IFs8ZmZmZmZmZmY5YTA3ZmJiYT5dIF9fbG9jYWxf YmhfZW5hYmxlX2lwKzB4N2EvMHhmMApbICAgNDcuOTM4MTE3XSBoYXJkaXJxcyBsYXN0IGRpc2Fi bGVkIGF0ICgxNDA0Myk6IFs8ZmZmZmZmZmY5YTA3ZmI4MT5dIF9fbG9jYWxfYmhfZW5hYmxlX2lw KzB4NDEvMHhmMApbICAgNDcuOTM4MTE3XSBzb2Z0aXJxcyBsYXN0ICBlbmFibGVkIGF0ICgxNDAy OCk6IFs8ZmZmZmZmZmY5YTA4MDNlZT5dIGlycV9lbnRlcisweDVlLzB4NjAKWyAgIDQ3LjkzODEx N10gc29mdGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoMTQwMjkpOiBbPGZmZmZmZmZmOWEwODA0YTU+ XSBpcnFfZXhpdCsweGI1LzB4YzAKWyAgIDQ3LjkzODExN10KWyAgIDQ3LjkzODExN10gb3RoZXIg aW5mbyB0aGF0IG1pZ2h0IGhlbHAgdXMgZGVidWcgdGhpczoKWyAgIDQ3LjkzODExN10gIFBvc3Np YmxlIHVuc2FmZSBsb2NraW5nIHNjZW5hcmlvOgpbICAgNDcuOTM4MTE3XQpbICAgNDcuOTM4MTE3 XSAgICAgICAgQ1BVMApbICAgNDcuOTM4MTE3XSAgICAgICAgLS0tLQpbICAgNDcuOTM4MTE3XSAg IGxvY2soJigmaHQtPmxvY2spLT5ybG9jayk7ClsgICA0Ny45MzgxMTddICAgPEludGVycnVwdD4K WyAgIDQ3LjkzODExN10gICAgIGxvY2soJigmaHQtPmxvY2spLT5ybG9jayk7ClsgICA0Ny45Mzgx MTddClsgICA0Ny45MzgxMTddICAqKiogREVBRExPQ0sgKioqClsgICA0Ny45MzgxMTddClsgICA0 Ny45MzgxMTddIDIgbG9ja3MgaGVsZCBieSBzd2FwcGVyLzMvMDoKWyAgIDQ3LjkzODExN10gICMw OiAwMDAwMDAwMDYyYzY0ZjkwICgoJmQtPnRpbWVyKSl7Ky4tLn0sIGF0OiBjYWxsX3RpbWVyX2Zu KzB4NS8weDI4MApbICAgNDcuOTM4MTE3XSAgIzE6IDAwMDAwMDAwZWUzOTYxOWMgKCYoJmQtPmxv Y2spLT5ybG9jayl7Ky4tLn0sIGF0OiB0aXBjX2Rpc2NfdGltZW91dCsweGM4LzB4NTQwIFt0aXBj XQpbICAgNDcuOTM4MTE3XQpbICAgNDcuOTM4MTE3XSBzdGFjayBiYWNrdHJhY2U6ClsgICA0Ny45 MzgxMTddIENQVTogMyBQSUQ6IDAgQ29tbTogc3dhcHBlci8zIFRhaW50ZWQ6IEcgICAgICAgICAg ICBFICAgICA0LjE5LjArICMzNwpbICAgNDcuOTM4MTE3XSBIYXJkd2FyZSBuYW1lOiBCb2NocyBC b2NocywgQklPUyBCb2NocyAwMS8wMS8yMDExClsgICA0Ny45MzgxMTddIENhbGwgVHJhY2U6Clsg ICA0Ny45MzgxMTddICA8SVJRPgpbICAgNDcuOTM4MTE3XSAgZHVtcF9zdGFjaysweDVlLzB4OGIK WyAgIDQ3LjkzODExN10gIHByaW50X3VzYWdlX2J1ZysweDFlZC8weDFmZgpbICAgNDcuOTM4MTE3 XSAgbWFya19sb2NrKzB4NWI1LzB4NjMwClsgICA0Ny45MzgxMTddICBfX2xvY2tfYWNxdWlyZSsw eDRjMC8weDE4ZjAKWyAgIDQ3LjkzODExN10gID8gbG9ja19hY3F1aXJlKzB4YTYvMHgxODAKWyAg IDQ3LjkzODExN10gIGxvY2tfYWNxdWlyZSsweGE2LzB4MTgwClsgICA0Ny45MzgxMTddICA/IHJo YXNodGFibGVfd2Fsa19lbnRlcisweDM2LzB4YjAKWyAgIDQ3LjkzODExN10gIF9yYXdfc3Bpbl9s b2NrKzB4MjkvMHg2MApbICAgNDcuOTM4MTE3XSAgPyByaGFzaHRhYmxlX3dhbGtfZW50ZXIrMHgz Ni8weGIwClsgICA0Ny45MzgxMTddICByaGFzaHRhYmxlX3dhbGtfZW50ZXIrMHgzNi8weGIwClsg ICA0Ny45MzgxMTddICB0aXBjX3NrX3JlaW5pdCsweGIwLzB4NDEwIFt0aXBjXQpbICAgNDcuOTM4 MTE3XSAgPyBtYXJrX2hlbGRfbG9ja3MrMHg2Zi8weDkwClsgICA0Ny45MzgxMTddICA/IF9fbG9j YWxfYmhfZW5hYmxlX2lwKzB4N2EvMHhmMApbICAgNDcuOTM4MTE3XSAgPyBsb2NrZGVwX2hhcmRp cnFzX29uKzB4MjAvMHgxYTAKWyAgIDQ3LjkzODExN10gIHRpcGNfbmV0X2ZpbmFsaXplKzB4YmYv MHgxODAgW3RpcGNdClsgICA0Ny45MzgxMTddICB0aXBjX2Rpc2NfdGltZW91dCsweDUwOS8weDU0 MCBbdGlwY10KWyAgIDQ3LjkzODExN10gID8gY2FsbF90aW1lcl9mbisweDUvMHgyODAKWyAgIDQ3 LjkzODExN10gID8gdGlwY19kaXNjX21zZ194bWl0LmlzcmEuMTkrMHhhMC8weGEwIFt0aXBjXQpb ICAgNDcuOTM4MTE3XSAgPyB0aXBjX2Rpc2NfbXNnX3htaXQuaXNyYS4xOSsweGEwLzB4YTAgW3Rp cGNdClsgICA0Ny45MzgxMTddICBjYWxsX3RpbWVyX2ZuKzB4YTEvMHgyODAKWyAgIDQ3LjkzODEx N10gID8gdGlwY19kaXNjX21zZ194bWl0LmlzcmEuMTkrMHhhMC8weGEwIFt0aXBjXQpbICAgNDcu OTM4MTE3XSAgcnVuX3RpbWVyX3NvZnRpcnErMHgxZjIvMHg0ZDAKWyAgIDQ3LjkzODExN10gIF9f ZG9fc29mdGlycSsweGZjLzB4NDEzClsgICA0Ny45MzgxMTddICBpcnFfZXhpdCsweGI1LzB4YzAK WyAgIDQ3LjkzODExN10gIHNtcF9hcGljX3RpbWVyX2ludGVycnVwdCsweGFjLzB4MjEwClsgICA0 Ny45MzgxMTddICBhcGljX3RpbWVyX2ludGVycnVwdCsweGYvMHgyMApbICAgNDcuOTM4MTE3XSAg PC9JUlE+ClsgICA0Ny45MzgxMTddIFJJUDogMDAxMDpkZWZhdWx0X2lkbGUrMHgxYy8weDE0MApb ICAgNDcuOTM4MTE3XSBDb2RlOiA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5 MCA5MCAwZiAxZiA0NCAwMCAwMCA0MSA1NCA1NSA1MyA2NSA4YiAyZCBkOCAyYiA3NCA2NSAwZiAx ZiA0NCAwMCAwMCBlOCBjNiAyYyA4YiBmZiBmYiBmNCA8NjU+IDhiIDJkIGM1IDJiIDc0IDY1IDBm IDFmIDQ0IDAwIDAwIDViIDVkIDQxIDVjIGMzIDY1IDhiIDA1IGI0IDJiClsgICA0Ny45MzgxMTdd IFJTUDogMDAxODpmZmZmYWY2YWMwMjA3ZWM4IEVGTEFHUzogMDAwMDAyMDYgT1JJR19SQVg6IGZm ZmZmZmZmZmZmZmZmMTMKWyAgIDQ3LjkzODExN10gUkFYOiBmZmZmOGY1YjM3MzVlMjAwIFJCWDog MDAwMDAwMDAwMDAwMDAwMyBSQ1g6IDAwMDAwMDAwMDAwMDAwMDEKWyAgIDQ3LjkzODExN10gUkRY OiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogMDAwMDAwMDAwMDAwMDAwMSBSREk6IGZmZmY4ZjViMzcz NWUyMDAKWyAgIDQ3LjkzODExN10gUkJQOiAwMDAwMDAwMDAwMDAwMDAzIFIwODogMDAwMDAwMDAw MDAwMDAwMSBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKWyAgIDQ3LjkzODExN10gUjEwOiAwMDAwMDAw MDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IDAwMDAwMDAwMDAwMDAwMDAKWyAg IDQ3LjkzODExN10gUjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogZmZmZjhmNWIzNzM1ZTIwMCBS MTU6IGZmZmY4ZjViMzczNWUyMDAKWyAgIDQ3LjkzODExN10gID8gZGVmYXVsdF9pZGxlKzB4MWEv MHgxNDAKWyAgIDQ3LjkzODExN10gIGRvX2lkbGUrMHgxYmMvMHgyODAKWyAgIDQ3LjkzODExN10g IGNwdV9zdGFydHVwX2VudHJ5KzB4MTkvMHgyMApbICAgNDcuOTM4MTE3XSAgc3RhcnRfc2Vjb25k YXJ5KzB4MTg3LzB4MWMwClsgICA0Ny45MzgxMTddICBzZWNvbmRhcnlfc3RhcnR1cF82NCsweGE0 LzB4YjAKClRoZSByZWFzb24gc2VlbXMgdG8gYmUgdGhhdCB0aXBjX25ldF9maW5hbGl6ZSgpLT50 aXBjX3NrX3JlaW5pdCgpIGlzCmNhbGxpbmcgdGhlIGZ1bmN0aW9uIHJoYXNodGFibGVfd2Fsa19l bnRlcigpIHdpdGhpbiBhIHRpbWVyIGludGVycnVwdC4KV2UgZml4IHRoaXMgYnkgZXhlY3V0aW5n IHRpcGNfbmV0X2ZpbmFsaXplKCkgaW4gd29yayBxdWV1ZSBjb250ZXh0LgoKQWNrZWQtYnk6IFlp bmcgWHVlIDx5aW5nLnh1ZUB3aW5kcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb24gTWFsb3kg PGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9kaXNjb3Zlci5jIHwgMTkgKysrKysr KysrKy0tLS0tLS0tLQogbmV0L3RpcGMvbmV0LmMgICAgICB8IDQ1ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogbmV0L3RpcGMvbmV0LmggICAgICB8ICAyICst CiAzIGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC90aXBjL2Rpc2NvdmVyLmMgYi9uZXQvdGlwYy9kaXNjb3Zlci5jCmluZGV4 IDI4MzA3MDk5NTdiZC4uYzEzOGQ2OGU4YTY5IDEwMDY0NAotLS0gYS9uZXQvdGlwYy9kaXNjb3Zl ci5jCisrKyBiL25ldC90aXBjL2Rpc2NvdmVyLmMKQEAgLTE2Niw3ICsxNjYsOCBAQCBzdGF0aWMg Ym9vbCB0aXBjX2Rpc2NfYWRkcl90cmlhbF9tc2coc3RydWN0IHRpcGNfZGlzY292ZXJlciAqZCwK IAogCS8qIEFwcGx5IHRyaWFsIGFkZHJlc3MgaWYgd2UganVzdCBsZWZ0IHRyaWFsIHBlcmlvZCAq LwogCWlmICghdHJpYWwgJiYgIXNlbGYpIHsKLQkJdGlwY19uZXRfZmluYWxpemUobmV0LCB0bi0+ dHJpYWxfYWRkcik7CisJCXRpcGNfc2NoZWRfbmV0X2ZpbmFsaXplKG5ldCwgdG4tPnRyaWFsX2Fk ZHIpOworCQltc2dfc2V0X3ByZXZub2RlKGJ1Zl9tc2coZC0+c2tiKSwgdG4tPnRyaWFsX2FkZHIp OwogCQltc2dfc2V0X3R5cGUoYnVmX21zZyhkLT5za2IpLCBEU0NfUkVRX01TRyk7CiAJfQogCkBA IC0zMDAsMTQgKzMwMSwxMiBAQCBzdGF0aWMgdm9pZCB0aXBjX2Rpc2NfdGltZW91dChzdHJ1Y3Qg dGltZXJfbGlzdCAqdCkKIAkJZ290byBleGl0OwogCX0KIAotCS8qIFRyaWFsIHBlcmlvZCBvdmVy ID8gKi8KLQlpZiAoIXRpbWVfYmVmb3JlKGppZmZpZXMsIHRuLT5hZGRyX3RyaWFsX2VuZCkpIHsK LQkJLyogRGlkIHdlIGp1c3QgbGVhdmUgaXQgPyAqLwotCQlpZiAoIXRpcGNfb3duX2FkZHIobmV0 KSkKLQkJCXRpcGNfbmV0X2ZpbmFsaXplKG5ldCwgdG4tPnRyaWFsX2FkZHIpOwotCi0JCW1zZ19z ZXRfdHlwZShidWZfbXNnKGQtPnNrYiksIERTQ19SRVFfTVNHKTsKLQkJbXNnX3NldF9wcmV2bm9k ZShidWZfbXNnKGQtPnNrYiksIHRpcGNfb3duX2FkZHIobmV0KSk7CisJLyogRGlkIHdlIGp1c3Qg bGVhdmUgdHJpYWwgcGVyaW9kID8gKi8KKwlpZiAoIXRpbWVfYmVmb3JlKGppZmZpZXMsIHRuLT5h ZGRyX3RyaWFsX2VuZCkgJiYgIXRpcGNfb3duX2FkZHIobmV0KSkgeworCQltb2RfdGltZXIoJmQt PnRpbWVyLCBqaWZmaWVzICsgVElQQ19ESVNDX0lOSVQpOworCQlzcGluX3VubG9ja19iaCgmZC0+ bG9jayk7CisJCXRpcGNfc2NoZWRfbmV0X2ZpbmFsaXplKG5ldCwgdG4tPnRyaWFsX2FkZHIpOwor CQlyZXR1cm47CiAJfQogCiAJLyogQWRqdXN0IHRpbWVvdXQgaW50ZXJ2YWwgYWNjb3JkaW5nIHRv IGRpc2NvdmVyeSBwaGFzZSAqLwpAQCAtMzE5LDYgKzMxOCw4IEBAIHN0YXRpYyB2b2lkIHRpcGNf ZGlzY190aW1lb3V0KHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCQkJZC0+dGltZXJfaW50diA9IFRJ UENfRElTQ19TTE9XOwogCQllbHNlIGlmICghZC0+bnVtX25vZGVzICYmIGQtPnRpbWVyX2ludHYg PiBUSVBDX0RJU0NfRkFTVCkKIAkJCWQtPnRpbWVyX2ludHYgPSBUSVBDX0RJU0NfRkFTVDsKKwkJ bXNnX3NldF90eXBlKGJ1Zl9tc2coZC0+c2tiKSwgRFNDX1JFUV9NU0cpOworCQltc2dfc2V0X3By ZXZub2RlKGJ1Zl9tc2coZC0+c2tiKSwgdG4tPnRyaWFsX2FkZHIpOwogCX0KIAogCW1vZF90aW1l cigmZC0+dGltZXIsIGppZmZpZXMgKyBkLT50aW1lcl9pbnR2KTsKZGlmZiAtLWdpdCBhL25ldC90 aXBjL25ldC5jIGIvbmV0L3RpcGMvbmV0LmMKaW5kZXggNjIxOTljZjVhNTZjLi5mMDc2ZWRiNzQz MzggMTAwNjQ0Ci0tLSBhL25ldC90aXBjL25ldC5jCisrKyBiL25ldC90aXBjL25ldC5jCkBAIC0x MDQsNiArMTA0LDE0IEBACiAgKiAgICAgLSBBIGxvY2FsIHNwaW5fbG9jayBwcm90ZWN0aW5nIHRo ZSBxdWV1ZSBvZiBzdWJzY3JpYmVyIGV2ZW50cy4KICovCiAKK3N0cnVjdCB0aXBjX25ldF93b3Jr IHsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKKwlzdHJ1Y3QgbmV0ICpuZXQ7CisJdTMyIGFk ZHI7Cit9OworCitzdGF0aWMgdm9pZCB0aXBjX25ldF9maW5hbGl6ZShzdHJ1Y3QgbmV0ICpuZXQs IHUzMiBhZGRyKTsKKwogaW50IHRpcGNfbmV0X2luaXQoc3RydWN0IG5ldCAqbmV0LCB1OCAqbm9k ZV9pZCwgdTMyIGFkZHIpCiB7CiAJaWYgKHRpcGNfb3duX2lkKG5ldCkpIHsKQEAgLTExOSwxNyAr MTI3LDM4IEBAIGludCB0aXBjX25ldF9pbml0KHN0cnVjdCBuZXQgKm5ldCwgdTggKm5vZGVfaWQs IHUzMiBhZGRyKQogCXJldHVybiAwOwogfQogCi12b2lkIHRpcGNfbmV0X2ZpbmFsaXplKHN0cnVj dCBuZXQgKm5ldCwgdTMyIGFkZHIpCitzdGF0aWMgdm9pZCB0aXBjX25ldF9maW5hbGl6ZShzdHJ1 Y3QgbmV0ICpuZXQsIHUzMiBhZGRyKQogewogCXN0cnVjdCB0aXBjX25ldCAqdG4gPSB0aXBjX25l dChuZXQpOwogCi0JaWYgKCFjbXB4Y2hnKCZ0bi0+bm9kZV9hZGRyLCAwLCBhZGRyKSkgewotCQl0 aXBjX3NldF9ub2RlX2FkZHIobmV0LCBhZGRyKTsKLQkJdGlwY19uYW1lZF9yZWluaXQobmV0KTsK LQkJdGlwY19za19yZWluaXQobmV0KTsKLQkJdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBUSVBD X0NGR19TUlYsIGFkZHIsIGFkZHIsCi0JCQkJICAgICBUSVBDX0NMVVNURVJfU0NPUEUsIDAsIGFk ZHIpOwotCX0KKwlpZiAoY21weGNoZygmdG4tPm5vZGVfYWRkciwgMCwgYWRkcikpCisJCXJldHVy bjsKKwl0aXBjX3NldF9ub2RlX2FkZHIobmV0LCBhZGRyKTsKKwl0aXBjX25hbWVkX3JlaW5pdChu ZXQpOworCXRpcGNfc2tfcmVpbml0KG5ldCk7CisJdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBU SVBDX0NGR19TUlYsIGFkZHIsIGFkZHIsCisJCQkgICAgIFRJUENfQ0xVU1RFUl9TQ09QRSwgMCwg YWRkcik7Cit9CisKK3N0YXRpYyB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmsoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCB0aXBjX25ldF93b3JrICpmd29yazsKKworCWZ3 b3JrID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB0aXBjX25ldF93b3JrLCB3b3JrKTsKKwl0 aXBjX25ldF9maW5hbGl6ZShmd29yay0+bmV0LCBmd29yay0+YWRkcik7CisJa2ZyZWUoZndvcmsp OworfQorCit2b2lkIHRpcGNfc2NoZWRfbmV0X2ZpbmFsaXplKHN0cnVjdCBuZXQgKm5ldCwgdTMy IGFkZHIpCit7CisJc3RydWN0IHRpcGNfbmV0X3dvcmsgKmZ3b3JrID0ga3phbGxvYyhzaXplb2Yo KmZ3b3JrKSwgR0ZQX0FUT01JQyk7CisKKwlpZiAoIWZ3b3JrKQorCQlyZXR1cm47CisJSU5JVF9X T1JLKCZmd29yay0+d29yaywgdGlwY19uZXRfZmluYWxpemVfd29yayk7CisJZndvcmstPm5ldCA9 IG5ldDsKKwlmd29yay0+YWRkciA9IGFkZHI7CisJc2NoZWR1bGVfd29yaygmZndvcmstPndvcmsp OwogfQogCiB2b2lkIHRpcGNfbmV0X3N0b3Aoc3RydWN0IG5ldCAqbmV0KQpkaWZmIC0tZ2l0IGEv bmV0L3RpcGMvbmV0LmggYi9uZXQvdGlwYy9uZXQuaAppbmRleCAwOWFkMDJiNTBiYjEuLmI3ZjJl MzY0ZWI5OSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbmV0LmgKKysrIGIvbmV0L3RpcGMvbmV0LmgK QEAgLTQyLDcgKzQyLDcgQEAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSB0aXBjX25s X25ldF9wb2xpY3lbXTsKIAogaW50IHRpcGNfbmV0X2luaXQoc3RydWN0IG5ldCAqbmV0LCB1OCAq bm9kZV9pZCwgdTMyIGFkZHIpOwotdm9pZCB0aXBjX25ldF9maW5hbGl6ZShzdHJ1Y3QgbmV0ICpu ZXQsIHUzMiBhZGRyKTsKK3ZvaWQgdGlwY19zY2hlZF9uZXRfZmluYWxpemUoc3RydWN0IG5ldCAq bmV0LCB1MzIgYWRkcik7CiB2b2lkIHRpcGNfbmV0X3N0b3Aoc3RydWN0IG5ldCAqbmV0KTsKIGlu dCB0aXBjX25sX25ldF9kdW1wKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2Nh bGxiYWNrICpjYik7CiBpbnQgdGlwY19ubF9uZXRfc2V0KHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBnZW5sX2luZm8gKmluZm8pOwotLSAKMi4xOS4xCgoKRnJvbSA0YTQ1NjkzMDY4YTZkZTE5 MWFlYTVkYjczOGM4YTEzZGQyYzk5NTczIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBN YXR0aGV3IENvdmVyIDx3ZXJla3Jha2VuQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAxOCBOb3YgMjAx OCAwMDo0NjowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTMvNDNdIHR1bnRhcDogZml4IG11bHRp cXVldWUgcngKClsgVXBzdHJlYW0gY29tbWl0IDhlYmViY2JhNTU5YTFiZmJhZWM3YmJkYTY0ZmVi OTg3MGI5YzU4ZGEgXQoKV2hlbiB3cml0aW5nIHBhY2tldHMgdG8gYSBkZXNjcmlwdG9yIGFzc29j aWF0ZWQgd2l0aCBhIGNvbWJpbmVkIHF1ZXVlLCB0aGUKcGFja2V0cyBzaG91bGQgZW5kIHVwIG9u IHRoYXQgcXVldWUuCgpCZWZvcmUgdGhpcyBjaGFuZ2UgYWxsIHBhY2tldHMgd3JpdHRlbiB0byBh bnkgZGVzY3JpcHRvciBhc3NvY2lhdGVkIHdpdGggYQp0YXAgaW50ZXJmYWNlIGVuZCB1cCBvbiBy eC0wLCBldmVuIHdoZW4gdGhlIGRlc2NyaXB0b3IgaXMgYXNzb2NpYXRlZCB3aXRoIGEKZGlmZmVy ZW50IHF1ZXVlLgoKVGhlIHJ4IHRyYWZmaWMgY2FuIGJlIGdlbmVyYXRlZCBieSBlaXRoZXIgb2Yg dGhlIGZvbGxvd2luZy4KICAxLiBhIHNpbXBsZSB0YXAgcHJvZ3JhbSB3aGljaCBzcGlucyB1cCBt dWx0aXBsZSBxdWV1ZXMgYW5kIHdyaXRlcyBwYWNrZXRzCiAgICAgdG8gZWFjaCBvZiB0aGUgZmls ZSBkZXNjcmlwdG9ycwogIDIuIHR4IGZyb20gYSBxZW11IHZtIHdpdGggYSB0YXAgbXVsdGlxdWV1 ZSBuZXRkZXYKClRoZSBxdWV1ZSBmb3IgcnggdHJhZmZpYyBjYW4gYmUgb2JzZXJ2ZWQgYnkgZWl0 aGVyIG9mIHRoZSBmb2xsb3dpbmcgKGRvbmUKb24gdGhlIGh5cGVydmlzb3IgaW4gdGhlIHFlbXUg Y2FzZSkuCiAgMS4gYSBzaW1wbGUgbmV0bWFwIHByb2dyYW0gd2hpY2ggb3BlbnMgYW5kIHJlYWRz IGZyb20gcGVyLXF1ZXVlCiAgICAgZGVzY3JpcHRvcnMKICAyLiBjb25maWd1cmluZyBSUFMgYW5k IGRvaW5nIHBlci1jcHUgY2FwdHVyZXMgd2l0aCByeHR4Y3B1CgpBbHRlcm5hdGl2ZWx5LCBpZiB5 b3UgcHJpbnRrKCkgdGhlIHJldHVybiB2YWx1ZSBvZiBza2JfZ2V0X3J4X3F1ZXVlKCkganVzdApi ZWZvcmUgZWFjaCBpbnN0YW5jZSBvZiBuZXRpZl9yZWNlaXZlX3NrYigpIGluIHR1bi5jLCB5b3Ug d2lsbCBnZXQgNjU1MzUKZm9yIGV2ZXJ5IHNrYi4KCkNhbGxpbmcgc2tiX3JlY29yZF9yeF9xdWV1 ZSgpIHRvIHNldCB0aGUgcnggcXVldWUgdG8gdGhlIHF1ZXVlX2luZGV4IGZpeGVzCnRoZSBhc3Nv Y2lhdGlvbiBiZXR3ZWVuIGRlc2NyaXB0b3IgYW5kIHJ4IHF1ZXVlLgoKU2lnbmVkLW9mZi1ieTog TWF0dGhldyBDb3ZlciA8bWF0dGhldy5jb3ZlckBzdGFja3BhdGguY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv dHVuLmMgfCA2ICsrKysrLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3R1bi5jIGIvZHJpdmVycy9uZXQvdHVu LmMKaW5kZXggYzUyMjA3YmVlZjg4Li41NzM2MjA3NzExNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3R1bi5jCisrKyBiL2RyaXZlcnMvbmV0L3R1bi5jCkBAIC0xNTI3LDYgKzE1MjcsNyBAQCBz dGF0aWMgdm9pZCB0dW5fcnhfYmF0Y2hlZChzdHJ1Y3QgdHVuX3N0cnVjdCAqdHVuLCBzdHJ1Y3Qg dHVuX2ZpbGUgKnRmaWxlLAogCiAJaWYgKCFyeF9iYXRjaGVkIHx8ICghbW9yZSAmJiBza2JfcXVl dWVfZW1wdHkocXVldWUpKSkgewogCQlsb2NhbF9iaF9kaXNhYmxlKCk7CisJCXNrYl9yZWNvcmRf cnhfcXVldWUoc2tiLCB0ZmlsZS0+cXVldWVfaW5kZXgpOwogCQluZXRpZl9yZWNlaXZlX3NrYihz a2IpOwogCQlsb2NhbF9iaF9lbmFibGUoKTsKIAkJcmV0dXJuOwpAQCAtMTU0Niw4ICsxNTQ3LDEx IEBAIHN0YXRpYyB2b2lkIHR1bl9yeF9iYXRjaGVkKHN0cnVjdCB0dW5fc3RydWN0ICp0dW4sIHN0 cnVjdCB0dW5fZmlsZSAqdGZpbGUsCiAJCXN0cnVjdCBza19idWZmICpuc2tiOwogCiAJCWxvY2Fs X2JoX2Rpc2FibGUoKTsKLQkJd2hpbGUgKChuc2tiID0gX19za2JfZGVxdWV1ZSgmcHJvY2Vzc19x dWV1ZSkpKQorCQl3aGlsZSAoKG5za2IgPSBfX3NrYl9kZXF1ZXVlKCZwcm9jZXNzX3F1ZXVlKSkp IHsKKwkJCXNrYl9yZWNvcmRfcnhfcXVldWUobnNrYiwgdGZpbGUtPnF1ZXVlX2luZGV4KTsKIAkJ CW5ldGlmX3JlY2VpdmVfc2tiKG5za2IpOworCQl9CisJCXNrYl9yZWNvcmRfcnhfcXVldWUoc2ti LCB0ZmlsZS0+cXVldWVfaW5kZXgpOwogCQluZXRpZl9yZWNlaXZlX3NrYihza2IpOwogCQlsb2Nh bF9iaF9lbmFibGUoKTsKIAl9Ci0tIAoyLjE5LjEKCgpGcm9tIDBkMzlkOWUzZGNlMjQ1MmYzOTA2 NGI3MmFkNTYwZTM3M2Q3MGU3YTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3Jp YW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpEYXRlOiBUaHUsIDEgTm92IDIwMTgg MTU6NTU6MzggLTA3MDAKU3ViamVjdDogW1BBVENIIDE0LzQzXSBuZXQ6IHN5c3RlbXBvcnQ6IFBy b3RlY3Qgc3RvcCBmcm9tIHRpbWVvdXQKClsgVXBzdHJlYW0gY29tbWl0IDdjYjZhMmEyYzcyYzFl ZDhmNDJmYjAxZjFhNjYxMjgxYjU2OGRlYWQgXQoKQSB0aW1pbmcgaGF6YXJkIGV4aXN0cyB3aGVu IHRoZSBuZXR3b3JrIGludGVyZmFjZSBpcyBzdG9wcGVkIHRoYXQKYWxsb3dzIGEgd2F0Y2hkb2cg dGltZW91dCB0byBiZSBwcm9jZXNzZWQgYnkgYSBzZXBhcmF0ZSBjb3JlIGluCnBhcmFsbGVsLiBU aGlzIGNyZWF0ZXMgdGhlIHBvdGVudGlhbCBmb3IgdGhlIHRpbWVvdXQgaGFuZGxlciB0bwp3YWtl IHRoZSBxdWV1ZXMgd2hpbGUgdGhlIGRyaXZlciBpcyBzaHV0dGluZyBkb3duLCBvciBhY2Nlc3MK cmVnaXN0ZXJzIGFmdGVyIHRoZWlyIGNsb2NrcyBoYXZlIGJlZW4gcmVtb3ZlZC4KClRoZSBtb3Jl IGNvbW1vbiBjYXNlIGlzIHRoYXQgdGhlIHdhdGNoZG9nIHRpbWVvdXQgd2lsbCBwcm9kdWNlIGEK d2FybmluZyBtZXNzYWdlIHdoaWNoIGRvZXNuJ3QgbGVhZCB0byBhIGNyYXNoLiBUaGUgY2hhbmNl cyBvZiB0aGlzCmFyZSBncmVhdGx5IGluY3JlYXNlZCBieSB0aGUgZmFjdCB0aGF0IGJjbV9zeXNw b3J0X25ldGlmX3N0b3Agc3RvcHMKdGhlIHRyYW5zbWl0IHF1ZXVlcyB3aGljaCBjYW4gZWFzaWx5 IHByZWNpcGl0YXRlIGEgd2F0Y2hkb2cgdGltZS0Kb3V0IGJlY2F1c2Ugb2Ygc3RhbGUgdHJhbnNf c3RhcnQgZGF0YSBpbiB0aGUgcXVldWVzLgoKVGhpcyBjb21taXQgY29ycmVjdHMgdGhlIGJlaGF2 aW9yIGJ5IGVuc3VyaW5nIHRoYXQgdGhlIHdhdGNoZG9nCnRpbWVvdXQgaXMgZGlzYWJsZWQgYmVm b3JlIGVudGVycmluZyBiY21fc3lzcG9ydF9uZXRpZl9zdG9wLiBUaGVyZQphcmUgY3VycmVudGx5 IG9ubHkgdHdvIHVzZXJzIG9mIHRoZSBiY21fc3lzcG9ydF9uZXRpZl9zdG9wIGZ1bmN0aW9uOgpj bG9zZSBhbmQgc3VzcGVuZC4KClRoZSBjbG9zZSBjYXNlIGFscmVhZHkgaGFuZGxlcyB0aGUgaXNz dWUgYnkgZXhpdGluZyB0aGUgUlVOTklORwpzdGF0ZSBiZWZvcmUgaW52b2tpbmcgdGhlIGRyaXZl ciBjbG9zZSBzZXJ2aWNlLgoKVGhlIHN1c3BlbmQgY2FzZSBub3cgcGVyZm9ybXMgdGhlIG5ldGlm X2RldmljZV9kZXRhY2ggdG8gZXhpdCB0aGUKUFJFU0VOVCBzdGF0ZSBiZWZvcmUgdGhlIGNhbGwg dG8gYmNtX3N5c3BvcnRfbmV0aWZfc3RvcCByYXRoZXIgdGhhbgphZnRlciBpdC4KClRoZXNlIGJl aGF2aW9ycyBwcmV2ZW50IGFueSBmdXR1cmUgc2NoZWR1bGluZyBvZiB0aGUgZHJpdmVyIHRpbWVv dXQKc2VydmljZSBkdXJpbmcgdGhlIHdpbmRvdy4gVGhlIG5ldGlmX3R4X3N0b3BfYWxsX3F1ZXVl cyBmdW5jdGlvbgppbiBiY21fc3lzcG9ydF9uZXRpZl9zdG9wIGlzIHJlcGxhY2VkIHdpdGggbmV0 aWZfdHhfZGlzYWJsZSB0byBlbnN1cmUKc3luY2hyb25pemF0aW9uIHdpdGggYW55IHRyYW5zbWl0 IG9yIHRpbWVvdXQgdGhyZWFkcyB0aGF0IG1heQphbHJlYWR5IGJlIGV4ZWN1dGluZyBvbiBvdGhl ciBjb3Jlcy4KCkZvciBzeW1tZXRyeSwgdGhlIG5ldGlmX2RldmljZV9hdHRhY2ggY2FsbCB1cG9u IHJlc3VtZSBpcyBtb3ZlZCB0bwphZnRlciB0aGUgY2FsbCB0byBiY21fc3lzcG9ydF9uZXRpZl9z dGFydC4gU2luY2UgaXQgd2FrZXMgdGhlIHRyYW5zbWl0CnF1ZXVlcyBpdCBpcyBub3QgbmVjZXNz YXJ5IHRvIGludm9rZSBuZXRpZl90eF9zdGFydF9hbGxfcXVldWVzIGZyb20KYmNtX3N5c3BvcnRf bmV0aWZfc3RhcnQgc28gaXQgaXMgbW92ZWQgaW50byB0aGUgZHJpdmVyIG9wZW4gc2VydmljZS4K CkZpeGVzOiA0MDc1NWEwZmNlMTcgKCJuZXQ6IHN5c3RlbXBvcnQ6IGFkZCBzdXNwZW5kIGFuZCBy ZXN1bWUgc3VwcG9ydCIpCkZpeGVzOiA4MDEwNWJlZmRiNGIgKCJuZXQ6IHN5c3RlbXBvcnQ6IGFk ZCBCcm9hZGNvbSBTWVNURU1QT1JUIEV0aGVybmV0IE1BQyBkcml2ZXIiKQpTaWduZWQtb2ZmLWJ5 OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JjbXN5c3BvcnQuYyB8IDE1ICsrKysrKystLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMKaW5kZXggYzU3MjM4ZmNlODYzLi43YjY4NTll NDkyNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbXN5c3Bv cnQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMKQEAg LTE4OTcsOSArMTg5Nyw2IEBAIHN0YXRpYyB2b2lkIGJjbV9zeXNwb3J0X25ldGlmX3N0YXJ0KHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCWludHJsMl8xX21hc2tfY2xlYXIocHJpdiwgMHhmZmZm ZmZmZik7CiAJZWxzZQogCQlpbnRybDJfMF9tYXNrX2NsZWFyKHByaXYsIElOVFJMMl8wX1RETUFf TUJET05FX01BU0spOwotCi0JLyogTGFzdCBjYWxsIGJlZm9yZSB3ZSBzdGFydCB0aGUgcmVhbCBi dXNpbmVzcyAqLwotCW5ldGlmX3R4X3N0YXJ0X2FsbF9xdWV1ZXMoZGV2KTsKIH0KIAogc3RhdGlj IHZvaWQgcmJ1Zl9pbml0KHN0cnVjdCBiY21fc3lzcG9ydF9wcml2ICpwcml2KQpAQCAtMjA0NSw2 ICsyMDQyLDggQEAgc3RhdGljIGludCBiY21fc3lzcG9ydF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpCiAKIAliY21fc3lzcG9ydF9uZXRpZl9zdGFydChkZXYpOwogCisJbmV0aWZfdHhfc3Rh cnRfYWxsX3F1ZXVlcyhkZXYpOworCiAJcmV0dXJuIDA7CiAKIG91dF9jbGVhcl9yeF9pbnQ6CkBA IC0yMDY4LDcgKzIwNjcsNyBAQCBzdGF0aWMgdm9pZCBiY21fc3lzcG9ydF9uZXRpZl9zdG9wKHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJc3RydWN0IGJjbV9zeXNwb3J0X3ByaXYgKnByaXYgPSBu ZXRkZXZfcHJpdihkZXYpOwogCiAJLyogc3RvcCBhbGwgc29mdHdhcmUgZnJvbSB1cGRhdGluZyBo YXJkd2FyZSAqLwotCW5ldGlmX3R4X3N0b3BfYWxsX3F1ZXVlcyhkZXYpOworCW5ldGlmX3R4X2Rp c2FibGUoZGV2KTsKIAluYXBpX2Rpc2FibGUoJnByaXYtPm5hcGkpOwogCWNhbmNlbF93b3JrX3N5 bmMoJnByaXYtPmRpbS5kaW0ud29yayk7CiAJcGh5X3N0b3AoZGV2LT5waHlkZXYpOwpAQCAtMjY1 NCwxMiArMjY1MywxMiBAQCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGJjbV9zeXNwb3J0X3N1 c3BlbmQoc3RydWN0IGRldmljZSAqZCkKIAlpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSkKIAkJcmV0 dXJuIDA7CiAKKwluZXRpZl9kZXZpY2VfZGV0YWNoKGRldik7CisKIAliY21fc3lzcG9ydF9uZXRp Zl9zdG9wKGRldik7CiAKIAlwaHlfc3VzcGVuZChkZXYtPnBoeWRldik7CiAKLQluZXRpZl9kZXZp Y2VfZGV0YWNoKGRldik7Ci0KIAkvKiBEaXNhYmxlIFVuaU1BQyBSWCAqLwogCXVtYWNfZW5hYmxl X3NldChwcml2LCBDTURfUlhfRU4sIDApOwogCkBAIC0yNzQzLDggKzI3NDIsNiBAQCBzdGF0aWMg aW50IF9fbWF5YmVfdW51c2VkIGJjbV9zeXNwb3J0X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkKQog CQlnb3RvIG91dF9mcmVlX3J4X3Jpbmc7CiAJfQogCi0JbmV0aWZfZGV2aWNlX2F0dGFjaChkZXYp OwotCiAJLyogUlggcGlwZSBlbmFibGUgKi8KIAl0b3BjdHJsX3dyaXRlbChwcml2LCAwLCBSWF9G TFVTSF9DTlRMKTsKIApAQCAtMjc4OSw2ICsyNzg2LDggQEAgc3RhdGljIGludCBfX21heWJlX3Vu dXNlZCBiY21fc3lzcG9ydF9yZXN1bWUoc3RydWN0IGRldmljZSAqZCkKIAogCWJjbV9zeXNwb3J0 X25ldGlmX3N0YXJ0KGRldik7CiAKKwluZXRpZl9kZXZpY2VfYXR0YWNoKGRldik7CisKIAlyZXR1 cm4gMDsKIAogb3V0X2ZyZWVfcnhfcmluZzoKLS0gCjIuMTkuMQoKCkZyb20gZDQwZTNkYTM0N2Ji YjNmZWUyZDU0NmI1NzJlNTYxOWIyYmFmYTY3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRpQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwgMTQgTm92 IDIwMTggMTI6MTc6MjUgKzAxMDAKU3ViamVjdDogW1BBVENIIDE1LzQzXSBuZXQvc2NoZWQ6IGFj dF9wZWRpdDogZml4IG1lbW9yeSBsZWFrIHdoZW4gSURSCiBhbGxvY2F0aW9uIGZhaWxzCgpbIFVw c3RyZWFtIGNvbW1pdCAxOWFiNjkxMDdkM2VjZmI3Y2QzZTM4YWQyNjJhODgxYmU0MGMwMWEzIF0K CnRjZl9pZHJfY2hlY2tfYWxsb2MoKSBjYW4gcmV0dXJuIGEgbmVnYXRpdmUgdmFsdWUsIG9uIGFs bG9jYXRpb24gZmFpbHVyZXMKKC1FTk9NRU0pIG9yIElEUiBleGhhdXN0aW9uICgtRU5PU1BDKTog ZG9uJ3QgbGVhayBrZXlzX2V4IGluIHRoZXNlIGNhc2VzLgoKRml4ZXM6IDAxOTBjMWQ0NTJhOSAo Im5ldDogc2NoZWQ6IGF0b21pY2FsbHkgY2hlY2stYWxsb2NhdGUgYWN0aW9uIikKU2lnbmVkLW9m Zi1ieTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRpQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBDb25n IFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfcGVkaXQuYyB8 IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9wZWRpdC5jIGIvbmV0L3NjaGVkL2FjdF9wZWRpdC5j CmluZGV4IGFkOTlhOTlmMTFmNi4uY2E1MzVhODU4NWJjIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQv YWN0X3BlZGl0LmMKKysrIGIvbmV0L3NjaGVkL2FjdF9wZWRpdC5jCkBAIC0yMDEsNyArMjAxLDgg QEAgc3RhdGljIGludCB0Y2ZfcGVkaXRfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0 dHIgKm5sYSwKIAkJCWdvdG8gb3V0X3JlbGVhc2U7CiAJCX0KIAl9IGVsc2UgewotCQlyZXR1cm4g ZXJyOworCQlyZXQgPSBlcnI7CisJCWdvdG8gb3V0X2ZyZWU7CiAJfQogCiAJcCA9IHRvX3BlZGl0 KCphKTsKLS0gCjIuMTkuMQoKCkZyb20gZWE0ZDQ0MzYwMGZiODM0ZTIyNWIxZDAwZTRlODgxOWEw NGI1ZDc3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGph a3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+CkRhdGU6IEZyaSwgOSBOb3YgMjAxOCAyMTowNjoy NiAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTYvNDNdIG5ldDogc2NoZWQ6IGNsc19mbG93ZXI6IHZh bGlkYXRlIG5lc3RlZCBlbmNfb3B0c19wb2xpY3kKIHRvIGF2b2lkIHdhcm5pbmcKTUlNRS1WZXJz aW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDYzYzgyOTk3ZjVjMGYz ZTFiOTE0YWY0M2Q4MmY3MTJhODZiYzVmM2EgXQoKVENBX0ZMT1dFUl9LRVlfRU5DX09QVFMgYW5k IFRDQV9GTE9XRVJfS0VZX0VOQ19PUFRTX01BU0sgY2FuIG9ubHkKY3VycmVudGx5IGNvbnRhaW4g ZnVydGhlciBuZXN0ZWQgYXR0cmlidXRlcywgd2hpY2ggYXJlIHBhcnNlZCBieQpoYW5kLCBzbyB0 aGUgcG9saWN5IGlzIG5ldmVyIGFjdHVhbGx5IHVzZWQgcmVzdWx0aW5nIGluIGEgVz0xCmJ1aWxk IHdhcm5pbmc6CgpuZXQvc2NoZWQvY2xzX2Zsb3dlci5jOjQ5MjoxOiB3YXJuaW5nOiDigJhlbmNf b3B0c19wb2xpY3nigJkgZGVmaW5lZCBidXQgbm90IHVzZWQgWy1XdW51c2VkLWNvbnN0LXZhcmlh YmxlPV0KIGVuY19vcHRzX3BvbGljeVtUQ0FfRkxPV0VSX0tFWV9FTkNfT1BUU19NQVggKyAxXSA9 IHsKCkFkZCB0aGUgdmFsaWRhdGlvbiBhbnl3YXkgdG8gYXZvaWQgcG90ZW50aWFsIGJ1Z3Mgd2hl biBvdGhlcgphdHRyaWJ1dGVzIGFyZSBhZGRlZCBhbmQgdG8gbWFrZSB0aGUgYXR0cmlidXRlIHN0 cnVjdHVyZSBzbGlnaHRseQptb3JlIGNsZWFyLiAgVmFsaWRhdGlvbiB3aWxsIGFsc28gc2V0IGV4 dGFjdCB0byBwb2ludCB0byBiYWQKYXR0cmlidXRlIG9uIGVycm9yLgoKRml4ZXM6IDBhNmU3Nzc4 NGY0OSAoIm5ldC9zY2hlZDogYWxsb3cgZmxvd2VyIHRvIG1hdGNoIHR1bm5lbCBvcHRpb25zIikK U2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5j b20+CkFja2VkLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBuZXRyb25vbWUuY29tPgpB Y2tlZC1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xzX2Zs b3dlci5jIHwgMTQgKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19mbG93ZXIuYyBi L25ldC9zY2hlZC9jbHNfZmxvd2VyLmMKaW5kZXggNmZkOWJkZDkzNzk2Li43ZmFkZTcxMDdmOTUg MTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfZmxvd2VyLmMKKysrIGIvbmV0L3NjaGVkL2Nsc19m bG93ZXIuYwpAQCAtNzA5LDExICs3MDksMjMgQEAgc3RhdGljIGludCBmbF9zZXRfZW5jX29wdChz dHJ1Y3QgbmxhdHRyICoqdGIsIHN0cnVjdCBmbF9mbG93X2tleSAqa2V5LAogCQkJICBzdHJ1Y3Qg bmV0bGlua19leHRfYWNrICpleHRhY2spCiB7CiAJY29uc3Qgc3RydWN0IG5sYXR0ciAqbmxhX2Vu Y19rZXksICpubGFfb3B0X2tleSwgKm5sYV9vcHRfbXNrID0gTlVMTDsKLQlpbnQgb3B0aW9uX2xl biwga2V5X2RlcHRoLCBtc2tfZGVwdGggPSAwOworCWludCBlcnIsIG9wdGlvbl9sZW4sIGtleV9k ZXB0aCwgbXNrX2RlcHRoID0gMDsKKworCWVyciA9IG5sYV92YWxpZGF0ZV9uZXN0ZWQodGJbVENB X0ZMT1dFUl9LRVlfRU5DX09QVFNdLAorCQkJCSAgVENBX0ZMT1dFUl9LRVlfRU5DX09QVFNfTUFY LAorCQkJCSAgZW5jX29wdHNfcG9saWN5LCBleHRhY2spOworCWlmIChlcnIpCisJCXJldHVybiBl cnI7CiAKIAlubGFfZW5jX2tleSA9IG5sYV9kYXRhKHRiW1RDQV9GTE9XRVJfS0VZX0VOQ19PUFRT XSk7CiAKIAlpZiAodGJbVENBX0ZMT1dFUl9LRVlfRU5DX09QVFNfTUFTS10pIHsKKwkJZXJyID0g bmxhX3ZhbGlkYXRlX25lc3RlZCh0YltUQ0FfRkxPV0VSX0tFWV9FTkNfT1BUU19NQVNLXSwKKwkJ CQkJICBUQ0FfRkxPV0VSX0tFWV9FTkNfT1BUU19NQVgsCisJCQkJCSAgZW5jX29wdHNfcG9saWN5 LCBleHRhY2spOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKwogCQlubGFfb3B0X21zayA9 IG5sYV9kYXRhKHRiW1RDQV9GTE9XRVJfS0VZX0VOQ19PUFRTX01BU0tdKTsKIAkJbXNrX2RlcHRo ID0gbmxhX2xlbih0YltUQ0FfRkxPV0VSX0tFWV9FTkNfT1BUU19NQVNLXSk7CiAJfQotLSAKMi4x OS4xCgoKRnJvbSBiZjQzNzY1MTg0ZDc3MTNlNzFlYjljNTdkNjgxNzYwOGJmOTA0MWFlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTWFsb3kgPGRvbm1hbG85OUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMTAgTm92IDIwMTggMTc6MzA6MjQgLTA1MDAKU3ViamVjdDogW1BBVENIIDE3 LzQzXSB0aXBjOiBmaXggbGluayByZS1lc3RhYmxpc2ggZmFpbHVyZQoKWyBVcHN0cmVhbSBjb21t aXQgN2FiNDEyZDMzYjRjN2ZmM2UwMTQ4ZDNkYjI1ZGQ4NjFlZGQxMjgzZCBdCgpXaGVuIGEgbGlu ayBmYWlsdXJlIGlzIGRldGVjdGVkIGxvY2FsbHksIHRoZSBsaW5rIGlzIHJlc2V0LCB0aGUgZmxh ZwpsaW5rLT5pbl9zZXNzaW9uIGlzIHNldCB0byBmYWxzZSwgYW5kIGEgUkVTRVRfTVNHIHdpdGgg dGhlICdzdG9wcGluZycKYml0IHNldCBpcyBzZW50IHRvIHRoZSBwZWVyLgoKVGhlIHB1cnBvc2Ug b2YgdGhpcyBiaXQgaXMgdG8gaW5mb3JtIHRoZSBwZWVyIHRoYXQgdGhpcyBlbmRwb2ludCBqdXN0 CmlzIGdvaW5nIGRvd24sIGFuZCB0aGF0IHRoZSBwZWVyIHNob3VsZCBoYW5kbGUgdGhlIHJlY2Vw dGlvbiBvZiB0aGlzCnBhcnRpY3VsYXIgUkVTRVQgbWVzc2FnZSBhcyBhIGxvY2FsIGZhaWx1cmUu IFRoaXMgZm9yY2VzIHRoZSBwZWVyIHRvCmFjY2VwdCBhbm90aGVyIFJFU0VUIG9yIEFDVElWQVRF IG1lc3NhZ2UgZnJvbSB0aGlzIGVuZHBvaW50IGJlZm9yZSBpdApjYW4gcmUtZXN0YWJsaXNoIHRo ZSBsaW5rLiBUaGlzIGFnYWluIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhhdApsaW5rIHNlc3Np b24gbnVtYmVycyBhcmUgcHJvcGVybHkgZXhjaGFuZ2VkIGJlZm9yZSB0aGUgbGluayBjb21lcyB1 cAphZ2Fpbi4KCklmIGEgZmFpbHVyZSBpcyBkZXRlY3RlZCBsb2NhbGx5IGF0IHRoZSBzYW1lIHRp bWUgYXQgdGhlIHBlZXIgZW5kcG9pbnQKdGhpcyB3aWxsIGRvIHRoZSBzYW1lLCB3aGljaCBpcyBh bHNvIGEgY29ycmVjdCBiZWhhdmlvci4KCkhvd2V2ZXIsIHdoZW4gcmVjZWl2aW5nIHN1Y2ggbWVz c2FnZXMsIHRoZSBlbmRwb2ludHMgd2lsbCBub3QKZGlzdGluZ3Vpc2ggYmV0d2VlbiAnc3RvcHBp bmcnIFJFU0VUcyBhbmQgb3JkaW5hcnkgb25lcyB3aGVuIGl0IGNvbWVzCnRvIHVwZGF0aW5nIHNl c3Npb24gbnVtYmVycy4gQm90aCBlbmRwb2ludHMgd2lsbCBjb3B5IHRoZSByZWNlaXZlZApzZXNz aW9uIG51bWJlciBhbmQgc2V0IHRoZWlyICdpbl9zZXNzaW9uJyBmbGFncyB0byB0cnVlIGF0IHRo ZQpyZWNlcHRpb24sIHdoaWxlIHRoZXkgYXJlIHN0aWxsIGV4cGVjdGluZyBhbm90aGVyIFJFU0VU IGZyb20gdGhlCnBlZXIgYmVmb3JlIHRoZXkgY2FuIGdvIGFoZWFkIGFuZCByZS1lc3RhYmxpc2gu IFRoaXMgaXMgY29udHJhZGljdG9yeSwKc2luY2UsIGFmdGVyIGFwcGx5aW5nIHRoZSB2YWxpZGF0 aW9uIGNoZWNrIHJlZmVycmVkIHRvIGJlbG93LCB0aGUKJ2luX3Nlc3Npb24nIGZsYWcgd2lsbCBj YXVzZSByZWplY3Rpb24gb2YgYWxsIHN1Y2ggbWVzc2FnZXMsIGFuZCB0aGUKbGluayB3aWxsIG5l dmVyIGNvbWUgdXAgYWdhaW4uCgpXZSBub3cgZml4IHRoaXMgYnkgbm90IG9ubHkgaGFuZGxpbmcg cmVjZWl2ZWQgUkVTRVQvU1RPUFBJTkcgbWVzc2FnZXMKYXMgYSBsb2NhbCBmYWlsdXJlLCBidXQg YWxzbyBieSBvbWl0dGluZyB0byBzZXQgYSBuZXcgc2Vzc2lvbiBudW1iZXIKYW5kIHRoZSAnaW5f c2Vzc2lvbicgZmxhZyBpbiBzdWNoIGNhc2VzLgoKRml4ZXM6IDdlYTgxN2Y0ZTgzMiAoInRpcGM6 IGNoZWNrIHNlc3Npb24gbnVtYmVyIGJlZm9yZSBhY2NlcHRpbmcgbGluayBwcm90b2NvbCBtZXNz YWdlcyIpClNpZ25lZC1vZmYtYnk6IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC90aXBjL2xpbmsuYyB8IDExICsrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL2xpbmsuYyBi L25ldC90aXBjL2xpbmsuYwppbmRleCAyMDFjM2I1YmM5NmIuLjgzNjcyN2UzNjNjNCAxMDA2NDQK LS0tIGEvbmV0L3RpcGMvbGluay5jCisrKyBiL25ldC90aXBjL2xpbmsuYwpAQCAtMTU5NCwxNCAr MTU5NCwxNyBAQCBzdGF0aWMgaW50IHRpcGNfbGlua19wcm90b19yY3Yoc3RydWN0IHRpcGNfbGlu ayAqbCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJaWYgKGluX3JhbmdlKHBlZXJzX3ByaW8sIGwt PnByaW9yaXR5ICsgMSwgVElQQ19NQVhfTElOS19QUkkpKQogCQkJbC0+cHJpb3JpdHkgPSBwZWVy c19wcmlvOwogCi0JCS8qIEFDVElWQVRFX01TRyBzZXJ2ZXMgYXMgUEVFUl9SRVNFVCBpZiBsaW5r IGlzIGFscmVhZHkgZG93biAqLwotCQlpZiAobXNnX3BlZXJfc3RvcHBpbmcoaGRyKSkKKwkJLyog SWYgcGVlciBpcyBnb2luZyBkb3duIHdlIHdhbnQgZnVsbCByZS1lc3RhYmxpc2ggY3ljbGUgKi8K KwkJaWYgKG1zZ19wZWVyX3N0b3BwaW5nKGhkcikpIHsKIAkJCXJjID0gdGlwY19saW5rX2ZzbV9l dnQobCwgTElOS19GQUlMVVJFX0VWVCk7Ci0JCWVsc2UgaWYgKChtdHlwID09IFJFU0VUX01TRykg fHwgIWxpbmtfaXNfdXAobCkpCisJCQlicmVhazsKKwkJfQorCQkvKiBBQ1RJVkFURV9NU0cgc2Vy dmVzIGFzIFBFRVJfUkVTRVQgaWYgbGluayBpcyBhbHJlYWR5IGRvd24gKi8KKwkJaWYgKG10eXAg PT0gUkVTRVRfTVNHIHx8ICFsaW5rX2lzX3VwKGwpKQogCQkJcmMgPSB0aXBjX2xpbmtfZnNtX2V2 dChsLCBMSU5LX1BFRVJfUkVTRVRfRVZUKTsKIAogCQkvKiBBQ1RJVkFURV9NU0cgdGFrZXMgdXAg bGluayBpZiBpdCB3YXMgYWxyZWFkeSBsb2NhbGx5IHJlc2V0ICovCi0JCWlmICgobXR5cCA9PSBB Q1RJVkFURV9NU0cpICYmIChsLT5zdGF0ZSA9PSBMSU5LX0VTVEFCTElTSElORykpCisJCWlmICht dHlwID09IEFDVElWQVRFX01TRyAmJiBsLT5zdGF0ZSA9PSBMSU5LX0VTVEFCTElTSElORykKIAkJ CXJjID0gVElQQ19MSU5LX1VQX0VWVDsKIAogCQlsLT5wZWVyX3Nlc3Npb24gPSBtc2dfc2Vzc2lv bihoZHIpOwotLSAKMi4xOS4xCgoKRnJvbSBhNjlkMGYzY2UzYmE5OGIwOTYzM2FhYmNlNjhjMzM3 ZjBlYmU1NzgwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBPciBHZXJsaXR6IDxvZ2Vy bGl0ekBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwgMjUgT2N0IDIwMTggMTU6NDE6NTggKzAwMDAK U3ViamVjdDogW1BBVENIIDE4LzQzXSBuZXQvbWx4NWU6IERvbid0IG1hdGNoIG9uIHZsYW4gbm9u LWV4aXN0ZW5jZSBpZgogZXRoZXJ0eXBlIGlzIHdpbGRjYXJkZWQKClsgVXBzdHJlYW0gY29tbWl0 IGQzYTgwYmI1YTNlYWMzMTFkZGYyODM4NzQwMjU5Mzk3NzU3NDQ2MGQgXQoKRm9yIHRoZSAiYWxs IiBldGhlcnR5cGUgd2Ugc2hvdWxkIG5vdCBjYXJlIHdoZXRoZXIgdGhlIHBhY2tldCBoYXMKdmxh bnMuIEJlc2lkZXMgYmVpbmcgd3JvbmcsIHRoZSB3YXkgd2UgZGlkIGl0IGNhdXNlZCBGVyBlcnJv cgpmb3IgcnVsZXMgc3VjaCBhczoKCnRjIGZpbHRlciBhZGQgZGV2IGV0aDAgcHJvdG9jb2wgYWxs IHBhcmVudCBmZmZmOiBcCglwcmlvIDEgZmxvd2VyIHNraXBfc3cgYWN0aW9uIGRyb3AKCmIvYyB0 aGUgbWF0Y2hpbmcgbWV0YS1kYXRhIChvdXRlciBoZWFkZXJzIGJpdCBpbiBzdHJ1Y3QgbWx4NV9m bG93X3NwZWMpCndhc24ndCBzZXQuIEZpeCB0aGF0IGJ5IG1hdGNoaW5nIG9uIHZsYW4gbm9uLWV4 aXN0ZW5jZSBvbmx5IGlmIHdlIHdlcmUKYWxzbyB0b2xkIHRvIG1hdGNoIG9uIHRoZSBldGhlcnR5 cGUuCgpGaXhlczogY2VlMjY0ODc2MjBiICgnbmV0L21seDVlOiBTZXQgdmxhbiBtYXNrcyBmb3Ig YWxsIG9mZmxvYWRlZCBUQyBydWxlcycpClNpZ25lZC1vZmYtYnk6IE9yIEdlcmxpdHogPG9nZXJs aXR6QG1lbGxhbm94LmNvbT4KUmVwb3J0ZWQtYnk6IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xh dm9AbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogSmlhbmJvIExpdSA8amlhbmJvbEBtZWxsYW5v eC5jb20+ClJldmlld2VkLWJ5OiBSb2kgRGF5YW4gPHJvaWRAbWVsbGFub3guY29tPgpTaWduZWQt b2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiAuLi4vbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jICAgfCA2MyArKysrKysrKysrLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X3RjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwpp bmRleCA4NTc5NjcyNzA5M2UuLmUzZWVjYmIxMWExNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKQEAgLTEzMTAsMzEgKzEzMTAsMjEgQEAg c3RhdGljIGludCBfX3BhcnNlX2Nsc19mbG93ZXIoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJ CQkJCSBpbm5lcl9oZWFkZXJzKTsKIAl9CiAKLQlpZiAoZGlzc2VjdG9yX3VzZXNfa2V5KGYtPmRp c3NlY3RvciwgRkxPV19ESVNTRUNUT1JfS0VZX0VUSF9BRERSUykpIHsKLQkJc3RydWN0IGZsb3df ZGlzc2VjdG9yX2tleV9ldGhfYWRkcnMgKmtleSA9CisJaWYgKGRpc3NlY3Rvcl91c2VzX2tleShm LT5kaXNzZWN0b3IsIEZMT1dfRElTU0VDVE9SX0tFWV9CQVNJQykpIHsKKwkJc3RydWN0IGZsb3df ZGlzc2VjdG9yX2tleV9iYXNpYyAqa2V5ID0KIAkJCXNrYl9mbG93X2Rpc3NlY3Rvcl90YXJnZXQo Zi0+ZGlzc2VjdG9yLAotCQkJCQkJICBGTE9XX0RJU1NFQ1RPUl9LRVlfRVRIX0FERFJTLAorCQkJ CQkJICBGTE9XX0RJU1NFQ1RPUl9LRVlfQkFTSUMsCiAJCQkJCQkgIGYtPmtleSk7Ci0JCXN0cnVj dCBmbG93X2Rpc3NlY3Rvcl9rZXlfZXRoX2FkZHJzICptYXNrID0KKwkJc3RydWN0IGZsb3dfZGlz c2VjdG9yX2tleV9iYXNpYyAqbWFzayA9CiAJCQlza2JfZmxvd19kaXNzZWN0b3JfdGFyZ2V0KGYt PmRpc3NlY3RvciwKLQkJCQkJCSAgRkxPV19ESVNTRUNUT1JfS0VZX0VUSF9BRERSUywKKwkJCQkJ CSAgRkxPV19ESVNTRUNUT1JfS0VZX0JBU0lDLAogCQkJCQkJICBmLT5tYXNrKTsKKwkJTUxYNV9T RVQoZnRlX21hdGNoX3NldF9seXJfMl80LCBoZWFkZXJzX2MsIGV0aGVydHlwZSwKKwkJCSBudG9o cyhtYXNrLT5uX3Byb3RvKSk7CisJCU1MWDVfU0VUKGZ0ZV9tYXRjaF9zZXRfbHlyXzJfNCwgaGVh ZGVyc192LCBldGhlcnR5cGUsCisJCQkgbnRvaHMoa2V5LT5uX3Byb3RvKSk7CiAKLQkJZXRoZXJf YWRkcl9jb3B5KE1MWDVfQUREUl9PRihmdGVfbWF0Y2hfc2V0X2x5cl8yXzQsIGhlYWRlcnNfYywK LQkJCQkJICAgICBkbWFjXzQ3XzE2KSwKLQkJCQltYXNrLT5kc3QpOwotCQlldGhlcl9hZGRyX2Nv cHkoTUxYNV9BRERSX09GKGZ0ZV9tYXRjaF9zZXRfbHlyXzJfNCwgaGVhZGVyc192LAotCQkJCQkg ICAgIGRtYWNfNDdfMTYpLAotCQkJCWtleS0+ZHN0KTsKLQotCQlldGhlcl9hZGRyX2NvcHkoTUxY NV9BRERSX09GKGZ0ZV9tYXRjaF9zZXRfbHlyXzJfNCwgaGVhZGVyc19jLAotCQkJCQkgICAgIHNt YWNfNDdfMTYpLAotCQkJCW1hc2stPnNyYyk7Ci0JCWV0aGVyX2FkZHJfY29weShNTFg1X0FERFJf T0YoZnRlX21hdGNoX3NldF9seXJfMl80LCBoZWFkZXJzX3YsCi0JCQkJCSAgICAgc21hY180N18x NiksCi0JCQkJa2V5LT5zcmMpOwotCi0JCWlmICghaXNfemVyb19ldGhlcl9hZGRyKG1hc2stPnNy YykgfHwgIWlzX3plcm9fZXRoZXJfYWRkcihtYXNrLT5kc3QpKQorCQlpZiAobWFzay0+bl9wcm90 bykKIAkJCSptYXRjaF9sZXZlbCA9IE1MWDVfTUFUQ0hfTDI7CiAJfQogCkBAIC0xMzY4LDkgKzEz NTgsMTAgQEAgc3RhdGljIGludCBfX3BhcnNlX2Nsc19mbG93ZXIoc3RydWN0IG1seDVlX3ByaXYg KnByaXYsCiAKIAkJCSptYXRjaF9sZXZlbCA9IE1MWDVfTUFUQ0hfTDI7CiAJCX0KLQl9IGVsc2Ug eworCX0gZWxzZSBpZiAoKm1hdGNoX2xldmVsICE9IE1MWDVfTUFUQ0hfTk9ORSkgewogCQlNTFg1 X1NFVChmdGVfbWF0Y2hfc2V0X2x5cl8yXzQsIGhlYWRlcnNfYywgc3ZsYW5fdGFnLCAxKTsKIAkJ TUxYNV9TRVQoZnRlX21hdGNoX3NldF9seXJfMl80LCBoZWFkZXJzX2MsIGN2bGFuX3RhZywgMSk7 CisJCSptYXRjaF9sZXZlbCA9IE1MWDVfTUFUQ0hfTDI7CiAJfQogCiAJaWYgKGRpc3NlY3Rvcl91 c2VzX2tleShmLT5kaXNzZWN0b3IsIEZMT1dfRElTU0VDVE9SX0tFWV9DVkxBTikpIHsKQEAgLTE0 MDgsMjEgKzEzOTksMzEgQEAgc3RhdGljIGludCBfX3BhcnNlX2Nsc19mbG93ZXIoc3RydWN0IG1s eDVlX3ByaXYgKnByaXYsCiAJCX0KIAl9CiAKLQlpZiAoZGlzc2VjdG9yX3VzZXNfa2V5KGYtPmRp c3NlY3RvciwgRkxPV19ESVNTRUNUT1JfS0VZX0JBU0lDKSkgewotCQlzdHJ1Y3QgZmxvd19kaXNz ZWN0b3Jfa2V5X2Jhc2ljICprZXkgPQorCWlmIChkaXNzZWN0b3JfdXNlc19rZXkoZi0+ZGlzc2Vj dG9yLCBGTE9XX0RJU1NFQ1RPUl9LRVlfRVRIX0FERFJTKSkgeworCQlzdHJ1Y3QgZmxvd19kaXNz ZWN0b3Jfa2V5X2V0aF9hZGRycyAqa2V5ID0KIAkJCXNrYl9mbG93X2Rpc3NlY3Rvcl90YXJnZXQo Zi0+ZGlzc2VjdG9yLAotCQkJCQkJICBGTE9XX0RJU1NFQ1RPUl9LRVlfQkFTSUMsCisJCQkJCQkg IEZMT1dfRElTU0VDVE9SX0tFWV9FVEhfQUREUlMsCiAJCQkJCQkgIGYtPmtleSk7Ci0JCXN0cnVj dCBmbG93X2Rpc3NlY3Rvcl9rZXlfYmFzaWMgKm1hc2sgPQorCQlzdHJ1Y3QgZmxvd19kaXNzZWN0 b3Jfa2V5X2V0aF9hZGRycyAqbWFzayA9CiAJCQlza2JfZmxvd19kaXNzZWN0b3JfdGFyZ2V0KGYt PmRpc3NlY3RvciwKLQkJCQkJCSAgRkxPV19ESVNTRUNUT1JfS0VZX0JBU0lDLAorCQkJCQkJICBG TE9XX0RJU1NFQ1RPUl9LRVlfRVRIX0FERFJTLAogCQkJCQkJICBmLT5tYXNrKTsKLQkJTUxYNV9T RVQoZnRlX21hdGNoX3NldF9seXJfMl80LCBoZWFkZXJzX2MsIGV0aGVydHlwZSwKLQkJCSBudG9o cyhtYXNrLT5uX3Byb3RvKSk7Ci0JCU1MWDVfU0VUKGZ0ZV9tYXRjaF9zZXRfbHlyXzJfNCwgaGVh ZGVyc192LCBldGhlcnR5cGUsCi0JCQkgbnRvaHMoa2V5LT5uX3Byb3RvKSk7CiAKLQkJaWYgKG1h c2stPm5fcHJvdG8pCisJCWV0aGVyX2FkZHJfY29weShNTFg1X0FERFJfT0YoZnRlX21hdGNoX3Nl dF9seXJfMl80LCBoZWFkZXJzX2MsCisJCQkJCSAgICAgZG1hY180N18xNiksCisJCQkJbWFzay0+ ZHN0KTsKKwkJZXRoZXJfYWRkcl9jb3B5KE1MWDVfQUREUl9PRihmdGVfbWF0Y2hfc2V0X2x5cl8y XzQsIGhlYWRlcnNfdiwKKwkJCQkJICAgICBkbWFjXzQ3XzE2KSwKKwkJCQlrZXktPmRzdCk7CisK KwkJZXRoZXJfYWRkcl9jb3B5KE1MWDVfQUREUl9PRihmdGVfbWF0Y2hfc2V0X2x5cl8yXzQsIGhl YWRlcnNfYywKKwkJCQkJICAgICBzbWFjXzQ3XzE2KSwKKwkJCQltYXNrLT5zcmMpOworCQlldGhl cl9hZGRyX2NvcHkoTUxYNV9BRERSX09GKGZ0ZV9tYXRjaF9zZXRfbHlyXzJfNCwgaGVhZGVyc192 LAorCQkJCQkgICAgIHNtYWNfNDdfMTYpLAorCQkJCWtleS0+c3JjKTsKKworCQlpZiAoIWlzX3pl cm9fZXRoZXJfYWRkcihtYXNrLT5zcmMpIHx8ICFpc196ZXJvX2V0aGVyX2FkZHIobWFzay0+ZHN0 KSkKIAkJCSptYXRjaF9sZXZlbCA9IE1MWDVfTUFUQ0hfTDI7CiAJfQogCi0tIAoyLjE5LjEKCgpG cm9tIDlkZTJhMjE0NDgzZWQxNzUwYWY4YTU4N2IwYTQwNzNmMWY4YmVhYzkgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KRGF0 ZTogVGh1LCAxOCBPY3QgMjAxOCAxMjozMToyNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvNDNd IG5ldC9tbHg1ZTogQ2xhaW0gVEMgaHcgb2ZmbG9hZHMgc3VwcG9ydCBvbmx5IHVuZGVyIGEKIHBy b3BlciBidWlsZCBjb25maWcKClsgVXBzdHJlYW0gY29tbWl0IDA3N2VjZDc4NWQ5MGM2Y2JiYTA4 ZDcxOWZhYTRiZTg1NjFhYTBhMWUgXQoKQ3VycmVudGx5LCB3ZSBhcmUgb25seSBzdXBwb3J0aW5n IHRjIGh3IG9mZmxvYWRzIHdoZW4gdGhlIGVzd2l0Y2gKc3VwcG9ydCBpcyBjb21waWxlZCBpbiwg YnV0IHdlIGFyZSBub3QgZ2F0aW5nIHRoZSBhZGV2ZXJ0aXptZW50Cm9mIHRoZSBORVRJRl9GX0hX X1RDIGZlYXR1cmUgb24gdGhpcyBjb25maWcgYmVpbmcgc2V0LgoKRml4IGl0LCBhbmQgd2hpbGUg ZG9pbmcgdGhhdCwgYWxzbyBhdm9pZCBkZWFsaW5nIHdpdGggdGhlIGZlYXR1cmUKb24gZXRodG9v bCB3aGVuIHRoZSBjb25maWcgaXMgbm90IHNldC4KCkZpeGVzOiBlOGY4ODdhYzZhNDUgKCduZXQv bWx4NWU6IEludHJvZHVjZSB0YyBvZmZsb2FkIHN1cHBvcnQnKQpTaWduZWQtb2ZmLWJ5OiBPciBH ZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBSb2kgRGF5YW4gPHJv aWRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1l bGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fbWFpbi5jIHwgNiArKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFp bi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwpp bmRleCBmMjkxZDFiZjE1NTguLmU1NmYwZjE3ZTVmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCkBAIC0zNTY2LDYgKzM1NjYsNyBA QCBzdGF0aWMgaW50IHNldF9mZWF0dXJlX2N2bGFuX2ZpbHRlcihzdHJ1Y3QgbmV0X2RldmljZSAq bmV0ZGV2LCBib29sIGVuYWJsZSkKIAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIENPTkZJR19NTFg1 X0VTV0lUQ0gKIHN0YXRpYyBpbnQgc2V0X2ZlYXR1cmVfdGNfbnVtX2ZpbHRlcnMoc3RydWN0IG5l dF9kZXZpY2UgKm5ldGRldiwgYm9vbCBlbmFibGUpCiB7CiAJc3RydWN0IG1seDVlX3ByaXYgKnBy aXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpOwpAQCAtMzU3OCw2ICszNTc5LDcgQEAgc3RhdGljIGlu dCBzZXRfZmVhdHVyZV90Y19udW1fZmlsdGVycyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBi b29sIGVuYWJsZSkKIAogCXJldHVybiAwOwogfQorI2VuZGlmCiAKIHN0YXRpYyBpbnQgc2V0X2Zl YXR1cmVfcnhfYWxsKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGJvb2wgZW5hYmxlKQogewpA QCAtMzY3Niw3ICszNjc4LDkgQEAgc3RhdGljIGludCBtbHg1ZV9zZXRfZmVhdHVyZXMoc3RydWN0 IG5ldF9kZXZpY2UgKm5ldGRldiwKIAllcnIgfD0gTUxYNUVfSEFORExFX0ZFQVRVUkUoTkVUSUZf Rl9MUk8sIHNldF9mZWF0dXJlX2xybyk7CiAJZXJyIHw9IE1MWDVFX0hBTkRMRV9GRUFUVVJFKE5F VElGX0ZfSFdfVkxBTl9DVEFHX0ZJTFRFUiwKIAkJCQkgICAgc2V0X2ZlYXR1cmVfY3ZsYW5fZmls dGVyKTsKKyNpZmRlZiBDT05GSUdfTUxYNV9FU1dJVENICiAJZXJyIHw9IE1MWDVFX0hBTkRMRV9G RUFUVVJFKE5FVElGX0ZfSFdfVEMsIHNldF9mZWF0dXJlX3RjX251bV9maWx0ZXJzKTsKKyNlbmRp ZgogCWVyciB8PSBNTFg1RV9IQU5ETEVfRkVBVFVSRShORVRJRl9GX1JYQUxMLCBzZXRfZmVhdHVy ZV9yeF9hbGwpOwogCWVyciB8PSBNTFg1RV9IQU5ETEVfRkVBVFVSRShORVRJRl9GX1JYRkNTLCBz ZXRfZmVhdHVyZV9yeF9mY3MpOwogCWVyciB8PSBNTFg1RV9IQU5ETEVfRkVBVFVSRShORVRJRl9G X0hXX1ZMQU5fQ1RBR19SWCwgc2V0X2ZlYXR1cmVfcnhfdmxhbik7CkBAIC00Njg1LDcgKzQ2ODks OSBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9idWlsZF9uaWNfbmV0ZGV2KHN0cnVjdCBuZXRfZGV2aWNl ICpuZXRkZXYpCiAJICAgIEZUX0NBUChtb2RpZnlfcm9vdCkgJiYKIAkgICAgRlRfQ0FQKGlkZW50 aWZpZWRfbWlzc190YWJsZV9tb2RlKSAmJgogCSAgICBGVF9DQVAoZmxvd190YWJsZV9tb2RpZnkp KSB7CisjaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSAogCQluZXRkZXYtPmh3X2ZlYXR1cmVzICAg ICAgfD0gTkVUSUZfRl9IV19UQzsKKyNlbmRpZgogI2lmZGVmIENPTkZJR19NTFg1X0VOX0FSRlMK IAkJbmV0ZGV2LT5od19mZWF0dXJlcwkgfD0gTkVUSUZfRl9OVFVQTEU7CiAjZW5kaWYKLS0gCjIu MTkuMQoKCkZyb20gOWUwZDY4ZmI0OTAxMTQ2MDZlNjgyYWQwODcwMzZlYTRmNjIxZjIzOSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXV2YWwgQXZuZXJ5IDx5dXZhbGF2QG1lbGxhbm94 LmNvbT4KRGF0ZTogVHVlLCAxNiBPY3QgMjAxOCAxNToyMDoyMCAtMDUwMApTdWJqZWN0OiBbUEFU Q0ggMjAvNDNdIG5ldC9tbHg1ZTogQWRqdXN0IHRvIG1heCBudW1iZXIgb2YgY2hhbm5sZXMgd2hl bgogcmUtYXR0YWNoaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBhMWYyNDBmMTgwMTcyMWY3NmJlZTcz NGM1MGRmMmQ5NTI5ZGE4NmUwIF0KCldoZW4gY29yZSBkcml2ZXIgZW50ZXJzIGRlYXR0YWNoL2F0 dGFjaCBmbG93IGFmdGVyIHBjaSByZXNldCwKTnVtYmVyIG9mIGxvZ2ljYWwgQ1BVcyBtYXkgaGF2 ZSBjaGFuZ2VkLgpBcyBhIHJlc3VsdCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgY3B1IGFmZmlsaWF0 ZWQgcmVzb3VyY2UgdGFibGVzLgoJMS4gaW5kaXJlY3QgcnF0IGxpc3QKCTIuIGVxIHRhYmxlCgpS ZXByb2R1Y3Rpb24gKFBvd2VyUEMpOgoJZWNobyAxMDAwID4gL3N5cy9rZXJuZWwvZGVidWcvcG93 ZXJwYy9lZWhfbWF4X2ZyZWV6ZXMKCXBwYzY0X2NwdSAtLXNtdD1vbgoJIyBSZXN0YXJ0IGRyaXZl cgoJbW9kcHJvYmUgLXIgLi4uIDsgbW9kcHJvYmUgLi4uCgkjIExpbmsgdXAKCWlmY29uZmlnIC4u LgoJIyBPbmx5IHBoeXNpY2FsIENQVXMKCXBwYzY0X2NwdSAtLXNtdD1vZmYKCSMgSW5qZWN0IFBD SSBlcnJvcnMgc28gUENJIHdpbGwgcmVzZXQgLSBjYWxsaW5nIHRoZSBwY2kgZXJyb3IgaGFuZGxl cgoJZWNobyAweDgwMDAwMDAwMDAwMDAwMDAgPiAvc3lzL2tlcm5lbC9kZWJ1Zy9wb3dlcnBjLzxQ Q0kgQlVTPi9lcnJfaW5qY3RfaW5ib3VuZEEKCkNhbGwgdHJhY2Ugd2hlbiB0cnlpbmcgdG8gYWRk IG5vbi1leGlzdGluZyBycXMgdG8gYW4gaW5kaXJlY3QgcnF0OgoJbWx4NWVfcmVkaXJlY3RfcnF0 KzB4ODQvMHgyNjAgW21seDVfY29yZV0gKHVucmVsaWFibGUpCgltbHg1ZV9yZWRpcmVjdF9ycXRz KzB4MTg4LzB4MTkwIFttbHg1X2NvcmVdCgltbHg1ZV9hY3RpdmF0ZV9wcml2X2NoYW5uZWxzKzB4 NDg4LzB4NTcwIFttbHg1X2NvcmVdCgltbHg1ZV9vcGVuX2xvY2tlZCsweGJjLzB4MTQwIFttbHg1 X2NvcmVdCgltbHg1ZV9vcGVuKzB4NTAvMHgxMzAgW21seDVfY29yZV0KCW1seDVlX25pY19lbmFi bGUrMHgxNzQvMHgxYjAgW21seDVfY29yZV0KCW1seDVlX2F0dGFjaF9uZXRkZXYrMHgxNTQvMHgy OTAgW21seDVfY29yZV0KCW1seDVlX2F0dGFjaCsweDg4LzB4ZDAgW21seDVfY29yZV0KCW1seDVf YXR0YWNoX2RldmljZSsweDE2OC8weDFlMCBbbWx4NV9jb3JlXQoJbWx4NV9sb2FkX29uZSsweDEx NDAvMHgxMjEwIFttbHg1X2NvcmVdCgltbHg1X3BjaV9yZXN1bWUrMHg2Yy8weGYwIFttbHg1X2Nv cmVdCgpDcmVhdGUgY3Egd2lsbCBmYWlsIHdoZW4gdHJ5aW5nIHRvIHVzZSBub24tZXhpc3Rpbmcg RVEuCgpGaXhlczogODlkNDRmMGE2YzczICgibmV0L21seDVfY29yZTogQWRkIHBjaSBlcnJvciBo YW5kbGVycyB0byBtbHg1X2NvcmUgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTogWXV2YWwgQXZuZXJ5 IDx5dXZhbGF2QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNh ZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fbWFpbi5jIHwgMjcgKysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIy IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKaW5kZXggZTU2ZjBmMTdlNWZiLi42ZThl ZWFkOGZkZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX21haW4uYwpAQCAtMTYxMCwxMyArMTYxMCwxNSBAQCBzdGF0aWMgaW50IG1seDVlX2Fs bG9jX2NxX2NvbW1vbihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwKIAlpbnQgZXJyOwogCXUz MiBpOwogCisJZXJyID0gbWx4NV92ZWN0b3IyZXFuKG1kZXYsIHBhcmFtLT5lcV9peCwgJmVxbl9u b3RfdXNlZCwgJmlycW4pOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAllcnIgPSBtbHg1 X2Nxd3FfY3JlYXRlKG1kZXYsICZwYXJhbS0+d3EsIHBhcmFtLT5jcWMsICZjcS0+d3EsCiAJCQkg ICAgICAgJmNxLT53cV9jdHJsKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JbWx4NV92 ZWN0b3IyZXFuKG1kZXYsIHBhcmFtLT5lcV9peCwgJmVxbl9ub3RfdXNlZCwgJmlycW4pOwotCiAJ bWNxLT5jcWVfc3ogICAgID0gNjQ7CiAJbWNxLT5zZXRfY2lfZGIgID0gY3EtPndxX2N0cmwuZGIu ZGI7CiAJbWNxLT5hcm1fZGIgICAgID0gY3EtPndxX2N0cmwuZGIuZGIgKyAxOwpAQCAtMTY3NCw2 ICsxNjc2LDEwIEBAIHN0YXRpYyBpbnQgbWx4NWVfY3JlYXRlX2NxKHN0cnVjdCBtbHg1ZV9jcSAq Y3EsIHN0cnVjdCBtbHg1ZV9jcV9wYXJhbSAqcGFyYW0pCiAJaW50IGVxbjsKIAlpbnQgZXJyOwog CisJZXJyID0gbWx4NV92ZWN0b3IyZXFuKG1kZXYsIHBhcmFtLT5lcV9peCwgJmVxbiwgJmlycW5f bm90X3VzZWQpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAlpbmxlbiA9IE1MWDVfU1Rf U1pfQllURVMoY3JlYXRlX2NxX2luKSArCiAJCXNpemVvZih1NjQpICogY3EtPndxX2N0cmwuYnVm Lm5wYWdlczsKIAlpbiA9IGt2emFsbG9jKGlubGVuLCBHRlBfS0VSTkVMKTsKQEAgLTE2ODcsOCAr MTY5Myw2IEBAIHN0YXRpYyBpbnQgbWx4NWVfY3JlYXRlX2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3Es IHN0cnVjdCBtbHg1ZV9jcV9wYXJhbSAqcGFyYW0pCiAJbWx4NV9maWxsX3BhZ2VfZnJhZ19hcnJh eSgmY3EtPndxX2N0cmwuYnVmLAogCQkJCSAgKF9fYmU2NCAqKU1MWDVfQUREUl9PRihjcmVhdGVf Y3FfaW4sIGluLCBwYXMpKTsKIAotCW1seDVfdmVjdG9yMmVxbihtZGV2LCBwYXJhbS0+ZXFfaXgs ICZlcW4sICZpcnFuX25vdF91c2VkKTsKLQogCU1MWDVfU0VUKGNxYywgICBjcWMsIGNxX3Blcmlv ZF9tb2RlLCBwYXJhbS0+Y3FfcGVyaW9kX21vZGUpOwogCU1MWDVfU0VUKGNxYywgICBjcWMsIGNf ZXFuLCAgICAgICAgIGVxbik7CiAJTUxYNV9TRVQoY3FjLCAgIGNxYywgdWFyX3BhZ2UsICAgICAg bWRldi0+cHJpdi51YXItPmluZGV4KTsKQEAgLTE5MDgsNiArMTkxMiwxMCBAQCBzdGF0aWMgaW50 IG1seDVlX29wZW5fY2hhbm5lbChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgaW50IGl4LAogCWlu dCBlcnI7CiAJaW50IGVxbjsKIAorCWVyciA9IG1seDVfdmVjdG9yMmVxbihwcml2LT5tZGV2LCBp eCwgJmVxbiwgJmlycSk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKwogCWMgPSBrdnphbGxv Y19ub2RlKHNpemVvZigqYyksIEdGUF9LRVJORUwsIGNwdV90b19ub2RlKGNwdSkpOwogCWlmICgh YykKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC0xOTI0LDcgKzE5MzIsNiBAQCBzdGF0aWMgaW50IG1s eDVlX29wZW5fY2hhbm5lbChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgaW50IGl4LAogCWMtPnhk cCAgICAgID0gISFwYXJhbXMtPnhkcF9wcm9nOwogCWMtPnN0YXRzICAgID0gJnByaXYtPmNoYW5u ZWxfc3RhdHNbaXhdLmNoOwogCi0JbWx4NV92ZWN0b3IyZXFuKHByaXYtPm1kZXYsIGl4LCAmZXFu LCAmaXJxKTsKIAljLT5pcnFfZGVzYyA9IGlycV90b19kZXNjKGlycSk7CiAKIAluZXRpZl9uYXBp X2FkZChuZXRkZXYsICZjLT5uYXBpLCBtbHg1ZV9uYXBpX3BvbGwsIDY0KTsKQEAgLTQ5NjQsMTEg KzQ5NzEsMjEgQEAgaW50IG1seDVlX2F0dGFjaF9uZXRkZXYoc3RydWN0IG1seDVlX3ByaXYgKnBy aXYpCiB7CiAJc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYgPSBwcml2LT5tZGV2OwogCWNvbnN0 IHN0cnVjdCBtbHg1ZV9wcm9maWxlICpwcm9maWxlOworCWludCBtYXhfbmNoOwogCWludCBlcnI7 CiAKIAlwcm9maWxlID0gcHJpdi0+cHJvZmlsZTsKIAljbGVhcl9iaXQoTUxYNUVfU1RBVEVfREVT VFJPWUlORywgJnByaXYtPnN0YXRlKTsKIAorCS8qIG1heCBudW1iZXIgb2YgY2hhbm5lbHMgbWF5 IGhhdmUgY2hhbmdlZCAqLworCW1heF9uY2ggPSBtbHg1ZV9nZXRfbWF4X251bV9jaGFubmVscyhw cml2LT5tZGV2KTsKKwlpZiAocHJpdi0+Y2hhbm5lbHMucGFyYW1zLm51bV9jaGFubmVscyA+IG1h eF9uY2gpIHsKKwkJbWx4NV9jb3JlX3dhcm4ocHJpdi0+bWRldiwgIk1MWDVFOiBSZWR1Y2luZyBu dW1iZXIgb2YgY2hhbm5lbHMgdG8gJWRcbiIsIG1heF9uY2gpOworCQlwcml2LT5jaGFubmVscy5w YXJhbXMubnVtX2NoYW5uZWxzID0gbWF4X25jaDsKKwkJbWx4NWVfYnVpbGRfZGVmYXVsdF9pbmRp cl9ycXQocHJpdi0+Y2hhbm5lbHMucGFyYW1zLmluZGlyZWN0aW9uX3JxdCwKKwkJCQkJICAgICAg TUxYNUVfSU5ESVJfUlFUX1NJWkUsIG1heF9uY2gpOworCX0KKwogCWVyciA9IHByb2ZpbGUtPmlu aXRfdHgocHJpdik7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7Ci0tIAoyLjE5LjEKCgpGcm9tIGU0 YzNjNjVjYzdjZWQ3NjEyYTM4ZjU1MWVkYmM2MjhkZWMyMGI3ZGMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1 LCAxMSBPY3QgMjAxOCAwNzozMToxMCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjEvNDNdIG5ldC9t bHg1ZTogUlgsIHZlcmlmeSByZWNlaXZlZCBwYWNrZXQgc2l6ZSBpbiBMaW5lYXIKIFN0cmlkaW5n IFJRCgpbIFVwc3RyZWFtIGNvbW1pdCAwMDczYzhmNzI3MzZiNDIzYWFkZThhODE3NTg3YTVmM2U0 ZGY0YWQ4IF0KCkluIGNhc2Ugb2Ygc3RyaWRpbmcgUlEsIHdlIHVzZSAgTVBXUlEgKE11bHRpIFBh Y2tldCBXUUUgUlEpLCB3aGljaCBtZWFucwp0aGF0IFdRRSAoUlggZGVzY3JpcHRvcikgY2FuIGJl IHVzZWQgZm9yIG1hbnkgcGFja2V0cyBhbmQgc28gdGhlIFdRRSBpcwptdWNoIGJpZ2dlciB0aGFu IE1UVS4gIEluIHZpcnR1YWxpemF0aW9uIHNldHVwcyB3aGVyZSB0aGUgcG9ydCBtdHUgY2FuCmJl IGxhcmdlciB0aGFuIHRoZSB2ZiBtdHUsIGlmIHJlY2VpdmVkIHBhY2tldCBpcyBiaWdnZXIgdGhh biBNVFUsIGl0Cndvbid0IGJlIGRyb3BwZWQgYnkgSFcgb24gdG9vIHNtYWxsIHJlY2VpdmUgV1FF LiBJZiB3ZSB1c2UgbGluZWFyIFNLQiBpbgpzdHJpZGluZyBSUSwgc2luY2UgZWFjaCBzdHJpZGUg aGFzIHJvb20gZm9yIG10dSBzaXplIHBheWxvYWQgYW5kIHNrYgppbmZvLCBhbiBvdmVyc2l6ZWQg cGFja2V0IGNhbiBsZWFkIHRvIGNyYXNoIGZvciBjcm9zc2luZyBhbGxvY2F0ZWQgcGFnZQpib3Vu ZGFyeSB1cG9uIHRoZSBjYWxsIHRvIGJ1aWxkX3NrYi4gU28gZHJpdmVyIG5lZWRzIHRvIGNoZWNr IHBhY2tldApzaXplIGFuZCBkcm9wIGl0LgoKSW50cm9kdWNlIG5ldyBTVyByeCBjb3VudGVyLCBy eF9vdmVyc2l6ZV9wa3RzX3N3X2Ryb3AsIHdoaWNoIGNvdW50cyB0aGUKbnVtYmVyIG9mIHBhY2tl dHMgZHJvcHBlZCBieSB0aGUgZHJpdmVyIGZvciBiZWluZyB0b28gbGFyZ2UuCgpBcyBhIG5ldyBm aWVsZCBpcyBhZGRlZCB0byB0aGUgUlEgc3RydWN0LCByZS1vcGVuIHRoZSBjaGFubmVscyB3aGVu ZXZlcgp0aGlzIGZpZWxkIGlzIGJlaW5nIHVzZWQgaW4gZGF0YXBhdGggKGkuZS4sIGluIHRoZSBj YXNlIG9mIGxpbmVhcgpTdHJpZGluZyBSUSkuCgpGaXhlczogNjE5YThmMmE0MmYxICgibmV0L21s eDVlOiBVc2UgbGluZWFyIFNLQiBpbiBTdHJpZGluZyBSUSIpClNpZ25lZC1vZmYtYnk6IE1vc2hl IFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IFRhcmlxIFRvdWthbiA8 dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVk bUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuLmggICAgICAgfCAxICsKIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbl9tYWluLmMgIHwgNCArKystCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fcnguYyAgICB8IDYgKysrKysrCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuYyB8IDMgKysrCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaCB8IDIgKysKIDUgZmlsZXMgY2hhbmdlZCwgMTUg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuLmgKaW5kZXggMGYxODlmODczODU5Li4xNmNlZWIxYjJjOWQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oCkBAIC01NjYs NiArNTY2LDcgQEAgc3RydWN0IG1seDVlX3JxIHsKIAogCXVuc2lnbmVkIGxvbmcgICAgICAgICAg c3RhdGU7CiAJaW50ICAgICAgICAgICAgICAgICAgICBpeDsKKwl1bnNpZ25lZCBpbnQgICAgICAg ICAgIGh3X210dTsKIAogCXN0cnVjdCBuZXRfZGltICAgICAgICAgZGltOyAvKiBEeW5hbWljIElu dGVycnVwdCBNb2RlcmF0aW9uICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCmluZGV4IDZlOGVlYWQ4ZmRlNS4uZmFhODRiNDVlMjBh IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5f bWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9t YWluLmMKQEAgLTQ5Miw2ICs0OTIsNyBAQCBzdGF0aWMgaW50IG1seDVlX2FsbG9jX3JxKHN0cnVj dCBtbHg1ZV9jaGFubmVsICpjLAogCXJxLT5jaGFubmVsID0gYzsKIAlycS0+aXggICAgICA9IGMt Pml4OwogCXJxLT5tZGV2ICAgID0gbWRldjsKKwlycS0+aHdfbXR1ICA9IE1MWDVFX1NXMkhXX01U VShwYXJhbXMsIHBhcmFtcy0+c3dfbXR1KTsKIAlycS0+c3RhdHMgICA9ICZjLT5wcml2LT5jaGFu bmVsX3N0YXRzW2MtPml4XS5ycTsKIAogCXJxLT54ZHBfcHJvZyA9IHBhcmFtcy0+eGRwX3Byb2cg PyBicGZfcHJvZ19pbmMocGFyYW1zLT54ZHBfcHJvZykgOiBOVUxMOwpAQCAtMzc1OCwxMCArMzc1 OSwxMSBAQCBpbnQgbWx4NWVfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBp bnQgbmV3X210dSwKIAl9CiAKIAlpZiAocGFyYW1zLT5ycV93cV90eXBlID09IE1MWDVfV1FfVFlQ RV9MSU5LRURfTElTVF9TVFJJRElOR19SUSkgeworCQlib29sIGlzX2xpbmVhciA9IG1seDVlX3J4 X21wd3FlX2lzX2xpbmVhcl9za2IocHJpdi0+bWRldiwgJm5ld19jaGFubmVscy5wYXJhbXMpOwog CQl1OCBwcHdfb2xkID0gbWx4NWVfbXB3cWVfbG9nX3BrdHNfcGVyX3dxZShwYXJhbXMpOwogCQl1 OCBwcHdfbmV3ID0gbWx4NWVfbXB3cWVfbG9nX3BrdHNfcGVyX3dxZSgmbmV3X2NoYW5uZWxzLnBh cmFtcyk7CiAKLQkJcmVzZXQgPSByZXNldCAmJiAocHB3X29sZCAhPSBwcHdfbmV3KTsKKwkJcmVz ZXQgPSByZXNldCAmJiAoaXNfbGluZWFyIHx8IChwcHdfb2xkICE9IHBwd19uZXcpKTsKIAl9CiAK IAlpZiAoIXJlc2V0KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fcnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbl9yeC5jCmluZGV4IGExNDQxNDZiNzY5Yy4uZDU0M2E1Y2ZmMDQ5IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYwpAQCAtMTA2NCw2 ICsxMDY0LDEyIEBAIG1seDVlX3NrYl9mcm9tX2NxZV9tcHdycV9saW5lYXIoc3RydWN0IG1seDVl X3JxICpycSwgc3RydWN0IG1seDVlX21wd19pbmZvICp3aSwKIAl1MzIgZnJhZ19zaXplOwogCWJv b2wgY29uc3VtZWQ7CiAKKwkvKiBDaGVjayBwYWNrZXQgc2l6ZS4gTm90ZSBMUk8gZG9lc24ndCB1 c2UgbGluZWFyIFNLQiAqLworCWlmICh1bmxpa2VseShjcWVfYmNudCA+IHJxLT5od19tdHUpKSB7 CisJCXJxLT5zdGF0cy0+b3ZlcnNpemVfcGt0c19zd19kcm9wKys7CisJCXJldHVybiBOVUxMOwor CX0KKwogCXZhICAgICAgICAgICAgID0gcGFnZV9hZGRyZXNzKGRpLT5wYWdlKSArIGhlYWRfb2Zm c2V0OwogCWRhdGEgICAgICAgICAgID0gdmEgKyByeF9oZWFkcm9vbTsKIAlmcmFnX3NpemUgICAg ICA9IE1MWDVfU0tCX0ZSQUdfU1oocnhfaGVhZHJvb20gKyBjcWVfYmNudDMyKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmMKaW5kZXgg NjgzOTQ4MWY3Njk3Li5kNTdkNTFjNGU2NTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jCkBAIC04Miw2ICs4Miw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHN3X3N0YXRzX2Rlc2NbXSA9IHsKIAl7IE1MWDVF X0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHJ4X3dxZV9lcnIpIH0sCiAJeyBN TFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCByeF9tcHdxZV9maWxsZXJf Y3FlcykgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHJ4 X21wd3FlX2ZpbGxlcl9zdHJpZGVzKSB9LAorCXsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBt bHg1ZV9zd19zdGF0cywgcnhfb3ZlcnNpemVfcGt0c19zd19kcm9wKSB9LAogCXsgTUxYNUVfREVD TEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgcnhfYnVmZl9hbGxvY19lcnIpIH0sCiAJ eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCByeF9jcWVfY29tcHJl c3NfYmxrcykgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMs IHJ4X2NxZV9jb21wcmVzc19wa3RzKSB9LApAQCAtMTU4LDYgKzE1OSw3IEBAIHZvaWQgbWx4NWVf Z3JwX3N3X3VwZGF0ZV9zdGF0cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIAkJcy0+cnhfd3Fl X2VyciAgICs9IHJxX3N0YXRzLT53cWVfZXJyOwogCQlzLT5yeF9tcHdxZV9maWxsZXJfY3FlcyAg ICArPSBycV9zdGF0cy0+bXB3cWVfZmlsbGVyX2NxZXM7CiAJCXMtPnJ4X21wd3FlX2ZpbGxlcl9z dHJpZGVzICs9IHJxX3N0YXRzLT5tcHdxZV9maWxsZXJfc3RyaWRlczsKKwkJcy0+cnhfb3ZlcnNp emVfcGt0c19zd19kcm9wICs9IHJxX3N0YXRzLT5vdmVyc2l6ZV9wa3RzX3N3X2Ryb3A7CiAJCXMt PnJ4X2J1ZmZfYWxsb2NfZXJyICs9IHJxX3N0YXRzLT5idWZmX2FsbG9jX2VycjsKIAkJcy0+cnhf Y3FlX2NvbXByZXNzX2Jsa3MgKz0gcnFfc3RhdHMtPmNxZV9jb21wcmVzc19ibGtzOwogCQlzLT5y eF9jcWVfY29tcHJlc3NfcGt0cyArPSBycV9zdGF0cy0+Y3FlX2NvbXByZXNzX3BrdHM7CkBAIC0x MTQ4LDYgKzExNTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBycV9zdGF0 c19kZXNjW10gPSB7CiAJeyBNTFg1RV9ERUNMQVJFX1JYX1NUQVQoc3RydWN0IG1seDVlX3JxX3N0 YXRzLCB3cWVfZXJyKSB9LAogCXsgTUxYNUVfREVDTEFSRV9SWF9TVEFUKHN0cnVjdCBtbHg1ZV9y cV9zdGF0cywgbXB3cWVfZmlsbGVyX2NxZXMpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1JYX1NUQVQo c3RydWN0IG1seDVlX3JxX3N0YXRzLCBtcHdxZV9maWxsZXJfc3RyaWRlcykgfSwKKwl7IE1MWDVF X0RFQ0xBUkVfUlhfU1RBVChzdHJ1Y3QgbWx4NWVfcnFfc3RhdHMsIG92ZXJzaXplX3BrdHNfc3df ZHJvcCkgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfUlhfU1RBVChzdHJ1Y3QgbWx4NWVfcnFfc3RhdHMs IGJ1ZmZfYWxsb2NfZXJyKSB9LAogCXsgTUxYNUVfREVDTEFSRV9SWF9TVEFUKHN0cnVjdCBtbHg1 ZV9ycV9zdGF0cywgY3FlX2NvbXByZXNzX2Jsa3MpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1JYX1NU QVQoc3RydWN0IG1seDVlX3JxX3N0YXRzLCBjcWVfY29tcHJlc3NfcGt0cykgfSwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmgKaW5kZXgg YTRjMDM1YWVkZDQ2Li5jMTA2NGFmOWQ1NGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oCkBAIC05NSw2ICs5NSw3IEBAIHN0cnVj dCBtbHg1ZV9zd19zdGF0cyB7CiAJdTY0IHJ4X3dxZV9lcnI7CiAJdTY0IHJ4X21wd3FlX2ZpbGxl cl9jcWVzOwogCXU2NCByeF9tcHdxZV9maWxsZXJfc3RyaWRlczsKKwl1NjQgcnhfb3ZlcnNpemVf cGt0c19zd19kcm9wOwogCXU2NCByeF9idWZmX2FsbG9jX2VycjsKIAl1NjQgcnhfY3FlX2NvbXBy ZXNzX2Jsa3M7CiAJdTY0IHJ4X2NxZV9jb21wcmVzc19wa3RzOwpAQCAtMTkwLDYgKzE5MSw3IEBA IHN0cnVjdCBtbHg1ZV9ycV9zdGF0cyB7CiAJdTY0IHdxZV9lcnI7CiAJdTY0IG1wd3FlX2ZpbGxl cl9jcWVzOwogCXU2NCBtcHdxZV9maWxsZXJfc3RyaWRlczsKKwl1NjQgb3ZlcnNpemVfcGt0c19z d19kcm9wOwogCXU2NCBidWZmX2FsbG9jX2VycjsKIAl1NjQgY3FlX2NvbXByZXNzX2Jsa3M7CiAJ dTY0IGNxZV9jb21wcmVzc19wa3RzOwotLSAKMi4xOS4xCgoKRnJvbSBjNzc5OTdhMDE3ZmMxYzRi ZDM4MDdkYmRlNzI2MmVkZjE4OGI0Njk4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBY aW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTggTm92IDIwMTggMTY6 MTQ6NDcgKzA4MDAKU3ViamVjdDogW1BBVENIIDIyLzQzXSBSZXZlcnQgInNjdHA6IHJlbW92ZSBz Y3RwX3RyYW5zcG9ydF9wbXR1X2NoZWNrIgoKWyBVcHN0cmVhbSBjb21taXQgNjlmZWMzMjVhNjQz ODM2NjdiOGEzNWRmNWQ0OGQ2Y2U1MmZiMjc4MiBdCgpUaGlzIHJldmVydHMgY29tbWl0IDIyZDdi ZTI2N2VhYTgxMTRkY2MyOGQ2NmMxYzM0N2Y2NjdkNzg3OGEuCgpUaGUgZHN0J3MgbXR1IGluIHRy YW5zcG9ydCBjYW4gYmUgdXBkYXRlZCBieSBhIG5vbiBzY3RwIHBsYWNlIGxpa2UKaW4geGZybSB3 aGVyZSB0aGUgTVRVIGluZm9ybWF0aW9uIGRpZG4ndCBnZXQgc3luY2VkIGJldHdlZW4gYXNvYywK dHJhbnNwb3J0IGFuZCBkc3QsIHNvIGl0IGlzIHN0aWxsIG5lZWRlZCB0byBkbyB0aGUgcG10dSBj aGVjawppbiBzY3RwX3BhY2tldF9jb25maWcuCgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3Jt YW5AdHV4ZHJpdmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3NjdHAvc2N0cC5oIHwgMTIgKysrKysrKysr KysrCiBuZXQvc2N0cC9vdXRwdXQuYyAgICAgICB8ICAzICsrKwogMiBmaWxlcyBjaGFuZ2VkLCAx NSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvc2N0cC9zY3RwLmggYi9p bmNsdWRlL25ldC9zY3RwL3NjdHAuaAppbmRleCA4YzJjYWEzNzBlMGYuLmFiOTI0MmU1MWQ5ZSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2N0cC9zY3RwLmgKKysrIGIvaW5jbHVkZS9uZXQvc2N0 cC9zY3RwLmgKQEAgLTYwOCw0ICs2MDgsMTYgQEAgc3RhdGljIGlubGluZSBfX3UzMiBzY3RwX2Rz dF9tdHUoY29uc3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0KQogCQkJCSBTQ1RQX0RFRkFVTFRfTUlO U0VHTUVOVCkpOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgc2N0cF90cmFuc3BvcnRfcG10dV9j aGVjayhzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnQpCit7CisJX191MzIgcG10dSA9IHNjdHBfZHN0 X210dSh0LT5kc3QpOworCisJaWYgKHQtPnBhdGhtdHUgPT0gcG10dSkKKwkJcmV0dXJuIHRydWU7 CisKKwl0LT5wYXRobXR1ID0gcG10dTsKKworCXJldHVybiBmYWxzZTsKK30KKwogI2VuZGlmIC8q IF9fbmV0X3NjdHBfaF9fICovCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9vdXRwdXQuYyBiL25ldC9z Y3RwL291dHB1dC5jCmluZGV4IDY3OTM5YWQ5OWMwMS4uMDg2MDEyMjNiMGJmIDEwMDY0NAotLS0g YS9uZXQvc2N0cC9vdXRwdXQuYworKysgYi9uZXQvc2N0cC9vdXRwdXQuYwpAQCAtMTE4LDYgKzEx OCw5IEBAIHZvaWQgc2N0cF9wYWNrZXRfY29uZmlnKHN0cnVjdCBzY3RwX3BhY2tldCAqcGFja2V0 LCBfX3UzMiB2dGFnLAogCQlzY3RwX3RyYW5zcG9ydF9yb3V0ZSh0cCwgTlVMTCwgc3ApOwogCQlp ZiAoYXNvYy0+cGFyYW1fZmxhZ3MgJiBTUFBfUE1UVURfRU5BQkxFKQogCQkJc2N0cF9hc3NvY19z eW5jX3BtdHUoYXNvYyk7CisJfSBlbHNlIGlmICghc2N0cF90cmFuc3BvcnRfcG10dV9jaGVjayh0 cCkpIHsKKwkJaWYgKGFzb2MtPnBhcmFtX2ZsYWdzICYgU1BQX1BNVFVEX0VOQUJMRSkKKwkJCXNj dHBfYXNzb2Nfc3luY19wbXR1KGFzb2MpOwogCX0KIAogCWlmIChhc29jLT5wbXR1X3BlbmRpbmcp IHsKLS0gCjIuMTkuMQoKCkZyb20gMjFlNGVlZGY5MmMxZGNkZjUzNDk2ZWM4NjVkNzA1NTlkY2Yx YzFiNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogT3IgR2VybGl0eiA8b2dlcmxpdHpA bWVsbGFub3guY29tPgpEYXRlOiBTdW4sIDI4IE9jdCAyMDE4IDEyOjI3OjI5ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAyMy80M10gbmV0L21seDVlOiBBbHdheXMgdXNlIHRoZSBtYXRjaCBsZXZlbCBl bnVtIHdoZW4gcGFyc2luZwogVEMgcnVsZSBtYXRjaAoKWyBVcHN0cmVhbSBjb21taXQgODM2MjFi N2RmNmE2NDZlNTUwZmQzZDM2ZGIyZTMwMWNmOWE1MDk2YiBdCgpXZSBnZXQgdGhlIG1hdGNoIGxl dmVsIChub25lLCBsMiwgbDMsIGw0KSB3aGlsZSBnb2luZyBvdmVyIHRoZSBtYXRjaApkaXNzZWN0 b3JzIG9mIGFuIG9mZmxvYWRlZCB0YyBydWxlLiBXaGVuIGRvaW5nIHRoaXMsIHRoZSBtYXRjaCBs ZXZlbAplbnVtIGFuZCB0aGUgbm90IG1pbiBpbmxpbmUgZW51bSB2YWx1ZXMgc2hvdWxkIGJlIHVz ZWQsIGZpeCB0aGF0LgoKVGhpcyB3b3JrZWQgYWNjaWRlbnRhbGx5IGIvYyBib3RoIGVudW1zIGhh dmUgdGhlIHNhbWUgbnVtZXJpY2FsIHZhbHVlcy4KCkZpeGVzOiBkNzA4ZjkwMjk4OWIgKCduZXQv bWx4NWU6IEdldCB0aGUgcmVxdWlyZWQgSFcgbWF0Y2ggbGV2ZWwgd2hpbGUgcGFyc2luZyBUQyBm bG93IG1hdGNoZXMnKQpTaWduZWQtb2ZmLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5v eC5jb20+ClJldmlld2VkLWJ5OiBSb2kgRGF5YW4gPHJvaWRAbWVsbGFub3guY29tPgpTaWduZWQt b2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYyB8IDQgKystLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jCmluZGV4IGUzZWVjYmIxMWEx NC4uMzA5MmM1OWMwZGM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fdGMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fdGMuYwpAQCAtMTQ1MCwxMCArMTQ1MCwxMCBAQCBzdGF0aWMgaW50IF9fcGFy c2VfY2xzX2Zsb3dlcihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAogCQkJLyogdGhlIEhXIGRv ZXNuJ3QgbmVlZCBMMyBpbmxpbmUgdG8gbWF0Y2ggb24gZnJhZz1ubyAqLwogCQkJaWYgKCEoa2V5 LT5mbGFncyAmIEZMT1dfRElTX0lTX0ZSQUdNRU5UKSkKLQkJCQkqbWF0Y2hfbGV2ZWwgPSBNTFg1 X0lOTElORV9NT0RFX0wyOworCQkJCSptYXRjaF9sZXZlbCA9IE1MWDVfTUFUQ0hfTDI7CiAJLyog KioqICBMMiBhdHRyaWJ1dGVzIHBhcnNpbmcgdXAgdG8gaGVyZSAqKiogKi8KIAkJCWVsc2UKLQkJ CQkqbWF0Y2hfbGV2ZWwgPSBNTFg1X0lOTElORV9NT0RFX0lQOworCQkJCSptYXRjaF9sZXZlbCA9 IE1MWDVfTUFUQ0hfTDM7CiAJCX0KIAl9CiAKLS0gCjIuMTkuMQoKCkZyb20gM2U3MmNiOTQ3NzA4 YmJkN2M2MDhhMzJkMWJjZDkyZDdjMmM1M2IyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogVmFsZW50aW5lIEZhdGlldiA8dmFsZW50aW5lZkBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwg MTcgT2N0IDIwMTggMTE6NDU6MDcgKzAzMDAKU3ViamVjdDogW1BBVENIIDI0LzQzXSBuZXQvbWx4 NWU6IEZpeCBzZWxmdGVzdCBmb3Igc21hbGwgTVRVcwoKWyBVcHN0cmVhbSBjb21taXQgMjI4YzRj ZDA0ZGZkMDY2N2VkYTE4MmM5MTUwNGI4M2MxN2Q5NzU4NCBdCgpMb29wYmFjayB0ZXN0IGhhZCBm aXhlZCBwYWNrZXQgc2l6ZSwgd2hpY2ggY2FuIGJlIGJpZ2dlciB0aGFuIGNvbmZpZ3VyZWQKTVRV LiBTaG9ydGVuIHRoZSBsb29wYmFjayBwYWNrZXQgc2l6ZSB0byBiZSBiaWdnZXIgdGhhbiBtaW5p bWFsIE1UVQphbGxvd2VkIGJ5IHRoZSBkZXZpY2UuIFRleHQgZmllbGQgcmVtb3ZlZCBmcm9tIHN0 cnVjdCAnbWx4NWVoZHInCmFzIHJlZHVuZGFudCB0byBhbGxvdyBzZW5kIHNtYWxsIHBhY2tldHMg YXMgbWluaW1hbCBhbGxvd2VkIE1UVS4KCkZpeGVzOiBkNjA1ZDY2ICgibmV0L21seDVlOiBBZGQg c3VwcG9ydCBmb3IgZXRodG9vbCBzZWxmIGRpYWdub3N0aWNzIHRlc3QiKQpTaWduZWQtb2ZmLWJ5 OiBWYWxlbnRpbmUgRmF0aWV2IDx2YWxlbnRpbmVmQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6 IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2Fl ZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbl9zZWxmdGVzdC5jIHwgMjYgKysrKysrKy0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zZWxmdGVzdC5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3NlbGZ0ZXN0LmMK aW5kZXggMzVkZWQ5MTIwM2Y1Li40MzgyZWY4NTQ4OGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zZWxmdGVzdC5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zZWxmdGVzdC5jCkBAIC05OCwxOCAr OTgsMTcgQEAgc3RhdGljIGludCBtbHg1ZV90ZXN0X2xpbmtfc3BlZWQoc3RydWN0IG1seDVlX3By aXYgKnByaXYpCiAJcmV0dXJuIDE7CiB9CiAKLSNpZmRlZiBDT05GSUdfSU5FVAotLyogbG9vcGJh Y2sgdGVzdCAqLwotI2RlZmluZSBNTFg1RV9URVNUX1BLVF9TSVpFIChNTFg1RV9SWF9NQVhfSEVB RCAtIE5FVF9JUF9BTElHTikKLXN0YXRpYyBjb25zdCBjaGFyIG1seDVlX3Rlc3RfdGV4dFtFVEhf R1NUUklOR19MRU5dID0gIk1MWDVFIFNFTEYgVEVTVCI7Ci0jZGVmaW5lIE1MWDVFX1RFU1RfTUFH SUMgMHg1QUVFRDE1QzAwMVVMTAotCiBzdHJ1Y3QgbWx4NWVoZHIgewogCV9fYmUzMiB2ZXJzaW9u OwogCV9fYmU2NCBtYWdpYzsKLQljaGFyICAgdGV4dFtFVEhfR1NUUklOR19MRU5dOwogfTsKIAor I2lmZGVmIENPTkZJR19JTkVUCisvKiBsb29wYmFjayB0ZXN0ICovCisjZGVmaW5lIE1MWDVFX1RF U1RfUEtUX1NJWkUgKHNpemVvZihzdHJ1Y3QgZXRoaGRyKSArIHNpemVvZihzdHJ1Y3QgaXBoZHIp ICtcCisJCQkgICAgIHNpemVvZihzdHJ1Y3QgdWRwaGRyKSArIHNpemVvZihzdHJ1Y3QgbWx4NWVo ZHIpKQorI2RlZmluZSBNTFg1RV9URVNUX01BR0lDIDB4NUFFRUQxNUMwMDFVTEwKKwogc3RhdGlj IHN0cnVjdCBza19idWZmICptbHg1ZV90ZXN0X2dldF91ZHBfc2tiKHN0cnVjdCBtbHg1ZV9wcml2 ICpwcml2KQogewogCXN0cnVjdCBza19idWZmICpza2IgPSBOVUxMOwpAQCAtMTE3LDEwICsxMTYs NyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm1seDVlX3Rlc3RfZ2V0X3VkcF9za2Ioc3RydWN0 IG1seDVlX3ByaXYgKnByaXYpCiAJc3RydWN0IGV0aGhkciAqZXRoaDsKIAlzdHJ1Y3QgdWRwaGRy ICp1ZHBoOwogCXN0cnVjdCBpcGhkciAqaXBoOwotCWludCBkYXRhbGVuLCBpcGxlbjsKLQotCWRh dGFsZW4gPSBNTFg1RV9URVNUX1BLVF9TSVpFIC0KLQkJICAoc2l6ZW9mKCpldGhoKSArIHNpemVv ZigqaXBoKSArIHNpemVvZigqdWRwaCkpOworCWludCAgICBpcGxlbjsKIAogCXNrYiA9IG5ldGRl dl9hbGxvY19za2IocHJpdi0+bmV0ZGV2LCBNTFg1RV9URVNUX1BLVF9TSVpFKTsKIAlpZiAoIXNr YikgewpAQCAtMTQ5LDcgKzE0NSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbWx4NWVfdGVz dF9nZXRfdWRwX3NrYihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIAkvKiBGaWxsIFVEUCBoZWFk ZXIgKi8KIAl1ZHBoLT5zb3VyY2UgPSBodG9ucyg5KTsKIAl1ZHBoLT5kZXN0ID0gaHRvbnMoOSk7 IC8qIERpc2NhcmQgUHJvdG9jb2wgKi8KLQl1ZHBoLT5sZW4gPSBodG9ucyhkYXRhbGVuICsgc2l6 ZW9mKHN0cnVjdCB1ZHBoZHIpKTsKKwl1ZHBoLT5sZW4gPSBodG9ucyhzaXplb2Yoc3RydWN0IG1s eDVlaGRyKSArIHNpemVvZihzdHJ1Y3QgdWRwaGRyKSk7CiAJdWRwaC0+Y2hlY2sgPSAwOwogCiAJ LyogRmlsbCBJUCBoZWFkZXIgKi8KQEAgLTE1Nyw3ICsxNTMsOCBAQCBzdGF0aWMgc3RydWN0IHNr X2J1ZmYgKm1seDVlX3Rlc3RfZ2V0X3VkcF9za2Ioc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAJ aXBoLT50dGwgPSAzMjsKIAlpcGgtPnZlcnNpb24gPSA0OwogCWlwaC0+cHJvdG9jb2wgPSBJUFBS T1RPX1VEUDsKLQlpcGxlbiA9IHNpemVvZihzdHJ1Y3QgaXBoZHIpICsgc2l6ZW9mKHN0cnVjdCB1 ZHBoZHIpICsgZGF0YWxlbjsKKwlpcGxlbiA9IHNpemVvZihzdHJ1Y3QgaXBoZHIpICsgc2l6ZW9m KHN0cnVjdCB1ZHBoZHIpICsKKwkJc2l6ZW9mKHN0cnVjdCBtbHg1ZWhkcik7CiAJaXBoLT50b3Rf bGVuID0gaHRvbnMoaXBsZW4pOwogCWlwaC0+ZnJhZ19vZmYgPSAwOwogCWlwaC0+c2FkZHIgPSAw OwpAQCAtMTcwLDkgKzE2Nyw2IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbWx4NWVfdGVzdF9n ZXRfdWRwX3NrYihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIAltbHhoID0gc2tiX3B1dChza2Is IHNpemVvZigqbWx4aCkpOwogCW1seGgtPnZlcnNpb24gPSAwOwogCW1seGgtPm1hZ2ljID0gY3B1 X3RvX2JlNjQoTUxYNUVfVEVTVF9NQUdJQyk7Ci0Jc3RybGNweShtbHhoLT50ZXh0LCBtbHg1ZV90 ZXN0X3RleHQsIHNpemVvZihtbHhoLT50ZXh0KSk7Ci0JZGF0YWxlbiAtPSBzaXplb2YoKm1seGgp OwotCXNrYl9wdXRfemVybyhza2IsIGRhdGFsZW4pOwogCiAJc2tiLT5jc3VtID0gMDsKIAlza2It PmlwX3N1bW1lZCA9IENIRUNLU1VNX1BBUlRJQUw7Ci0tIAoyLjE5LjEKCgpGcm9tIGU4OGM0M2M2 N2Y5YjNjMWQ5ZjQxYTE3ODkzMTY4ZDhmZjkxYzM4NjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IFNoYXkgQWdyb3NraW4gPHNoYXlhZ0BtZWxsYW5veC5jb20+CkRhdGU6IFN1biwgMjgg T2N0IDIwMTggMDk6MDY6MTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDI1LzQzXSBuZXQvbWx4NWU6 IFJlbW92ZWQgdW5uZWNlc3Nhcnkgd2FybmluZ3MgaW4gRkVDIGNhcHMKIHF1ZXJ5CgpbIFVwc3Ry ZWFtIGNvbW1pdCA2NGUyODMzNDg0NThlMmZkMmZlNDFiNjBkZmI2YzMwZTg4ZWU2OTVmIF0KClF1 ZXJ5aW5nIGludGVyZmFjZSBGRUMgY2FwcyB3aXRoICdldGh0b29sIFtpbnRdJyBhZnRlciBsaW5r IHJlc2V0CnRocm93cyB3YXJuaW5nIHJlZ2FkaW5nIGxpbmsgc3BlZWQuClRoaXMgd2FybmluZyBp cyBub3QgbmVlZGVkIGFzIHRoZXJlIGlzIGFscmVhZHkgYW4gaW5kaWNhdGlvbiBpbgp1c2VyIHNw YWNlIHRoYXQgdGhlIGxpbmsgaXMgbm90IHVwLgoKRml4ZXM6IDA2OTZkNjA4NTNkNSAoIm5ldC9t bHg1ZTogUmVjZWl2ZSBidWZmZXIgY29uZmlndXJhdGlvbiIpClNpZ25lZC1vZmYtYnk6IFNoYXkg QWdyb3NraW4gPHNoYXlhZ0BtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFt ZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbi9wb3J0LmMgICAgICAgIHwgNCArLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydF9idWZmZXIuYyB8IDQgKysrLQogMiBmaWxl cyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BvcnQuYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9wb3J0LmMKaW5kZXggMjRlM2I1 NjQ5NjRmLi4xMmUxNjgyZjk0MGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbi9wb3J0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuL3BvcnQuYwpAQCAtODgsMTAgKzg4LDggQEAgaW50IG1seDVlX3Bv cnRfbGlua3NwZWVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1MzIgKnNwZWVkKQogCiAJ ZXRoX3Byb3RvX29wZXIgPSBNTFg1X0dFVChwdHlzX3JlZywgb3V0LCBldGhfcHJvdG9fb3Blcik7 CiAJKnNwZWVkID0gbWx4NWVfcG9ydF9wdHlzMnNwZWVkKGV0aF9wcm90b19vcGVyKTsKLQlpZiAo ISgqc3BlZWQpKSB7Ci0JCW1seDVfY29yZV93YXJuKG1kZXYsICJjYW5ub3QgZ2V0IHBvcnQgc3Bl ZWRcbiIpOworCWlmICghKCpzcGVlZCkpCiAJCWVyciA9IC1FSU5WQUw7Ci0JfQogCiAJcmV0dXJu IGVycjsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbi9wb3J0X2J1ZmZlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuL3BvcnRfYnVmZmVyLmMKaW5kZXggYzA0N2RhODc1MmRhLi5lYWMyNDVhOTNmOTEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9w b3J0X2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbi9wb3J0X2J1ZmZlci5jCkBAIC0xMzAsOCArMTMwLDEwIEBAIHN0YXRpYyB1MzIgY2FsY3Vs YXRlX3hvZmYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHVuc2lnbmVkIGludCBtdHUpCiAJaW50 IGVycjsKIAogCWVyciA9IG1seDVlX3BvcnRfbGlua3NwZWVkKHByaXYtPm1kZXYsICZzcGVlZCk7 Ci0JaWYgKGVycikKKwlpZiAoZXJyKSB7CisJCW1seDVfY29yZV93YXJuKHByaXYtPm1kZXYsICJj YW5ub3QgZ2V0IHBvcnQgc3BlZWRcbiIpOwogCQlyZXR1cm4gMDsKKwl9CiAKIAl4b2ZmID0gKDMw MSArIDIxNiAqIHByaXYtPmRjYnguY2FibGVfbGVuIC8gMTAwKSAqIHNwZWVkIC8gMTAwMCArIDI3 MiAqIG10dSAvIDEwMDsKIAotLSAKMi4xOS4xCgoKRnJvbSAwOTBkYjQyYmYxYjI5NzUzZjA4ZDk3 N2Q0MTVmNWNmODdjMDY3YzY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFRodSwgOCBOb3YgMjAxOCAxNzozNDoy NyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjYvNDNdIGluZXQ6IGZyYWdzOiBiZXR0ZXIgZGVhbCB3 aXRoIHNtcCByYWNlcwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47 IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVh bSBjb21taXQgMGQ1YjkzMTFiYWYyN2JiNTQ1ZjE4N2YxMmVjZmQ1NTgyMjBjNjA3ZCBdCgpNdWx0 aXBsZSBjcHVzIG1pZ2h0IGF0dGVtcHQgdG8gaW5zZXJ0IGEgbmV3IGZyYWdtZW50IGluIHJoYXNo dGFibGUsCmlmIGZvciBleGFtcGxlIFJQUyBpcyBidWdneSwgYXMgcmVwb3J0ZWQgYnkg67Cw7ISd 7KeEIGluCmh0dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcGF0Y2gvOTk0NjAxLwoKV2UgdXNl IHJoYXNodGFibGVfbG9va3VwX2dldF9pbnNlcnRfa2V5KCkgaW5zdGVhZCBvZgpyaGFzaHRhYmxl X2luc2VydF9mYXN0KCkgdG8gbGV0IGNwdXMgbG9zaW5nIHRoZSByYWNlCmZyZWUgdGhlaXIgb3du IGluZXRfZnJhZ19xdWV1ZSBhbmQgdXNlIHRoZSBvbmUgdGhhdAp3YXMgaW5zZXJ0ZWQgYnkgYW5v dGhlciBjcHUuCgpGaXhlczogNjQ4NzAwZjc2YjAzICgiaW5ldDogZnJhZ3M6IHVzZSByaGFzaHRh YmxlcyBmb3IgcmVhc3NlbWJseSB1bml0cyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IOuwsOyEneynhCA8c291a2ppbi5iYWVA c2Ftc3VuZy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMgfCAyOSArKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDE0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfZnJhZ21lbnQuYyBiL25ldC9p cHY0L2luZXRfZnJhZ21lbnQuYwppbmRleCBiY2IxMWYzYTI3YzAuLjc2MGE5ZTUyZTAyYiAxMDA2 NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jCisrKyBiL25ldC9pcHY0L2luZXRfZnJh Z21lbnQuYwpAQCAtMTc4LDIxICsxNzgsMjIgQEAgc3RhdGljIHN0cnVjdCBpbmV0X2ZyYWdfcXVl dWUgKmluZXRfZnJhZ19hbGxvYyhzdHJ1Y3QgbmV0bnNfZnJhZ3MgKm5mLAogfQogCiBzdGF0aWMg c3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqaW5ldF9mcmFnX2NyZWF0ZShzdHJ1Y3QgbmV0bnNfZnJh Z3MgKm5mLAotCQkJCQkJdm9pZCAqYXJnKQorCQkJCQkJdm9pZCAqYXJnLAorCQkJCQkJc3RydWN0 IGluZXRfZnJhZ19xdWV1ZSAqKnByZXYpCiB7CiAJc3RydWN0IGluZXRfZnJhZ3MgKmYgPSBuZi0+ ZjsKIAlzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICpxOwotCWludCBlcnI7CiAKIAlxID0gaW5ldF9m cmFnX2FsbG9jKG5mLCBmLCBhcmcpOwotCWlmICghcSkKKwlpZiAoIXEpIHsKKwkJKnByZXYgPSBF UlJfUFRSKC1FTk9NRU0pOwogCQlyZXR1cm4gTlVMTDsKLQorCX0KIAltb2RfdGltZXIoJnEtPnRp bWVyLCBqaWZmaWVzICsgbmYtPnRpbWVvdXQpOwogCi0JZXJyID0gcmhhc2h0YWJsZV9pbnNlcnRf ZmFzdCgmbmYtPnJoYXNodGFibGUsICZxLT5ub2RlLAotCQkJCSAgICAgZi0+cmhhc2hfcGFyYW1z KTsKLQlpZiAoZXJyIDwgMCkgeworCSpwcmV2ID0gcmhhc2h0YWJsZV9sb29rdXBfZ2V0X2luc2Vy dF9rZXkoJm5mLT5yaGFzaHRhYmxlLCAmcS0+a2V5LAorCQkJCQkJICZxLT5ub2RlLCBmLT5yaGFz aF9wYXJhbXMpOworCWlmICgqcHJldikgewogCQlxLT5mbGFncyB8PSBJTkVUX0ZSQUdfQ09NUExF VEU7CiAJCWluZXRfZnJhZ19raWxsKHEpOwogCQlpbmV0X2ZyYWdfZGVzdHJveShxKTsKQEAgLTIw NCwyMiArMjA1LDIyIEBAIHN0YXRpYyBzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICppbmV0X2ZyYWdf Y3JlYXRlKHN0cnVjdCBuZXRuc19mcmFncyAqbmYsCiAvKiBUT0RPIDogY2FsbCBmcm9tIHJjdV9y ZWFkX2xvY2soKSBhbmQgbm8gbG9uZ2VyIHVzZSByZWZjb3VudF9pbmNfbm90X3plcm8oKSAqLwog c3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqaW5ldF9mcmFnX2ZpbmQoc3RydWN0IG5ldG5zX2ZyYWdz ICpuZiwgdm9pZCAqa2V5KQogewotCXN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKmZxOworCXN0cnVj dCBpbmV0X2ZyYWdfcXVldWUgKmZxID0gTlVMTCwgKnByZXY7CiAKIAlpZiAoIW5mLT5oaWdoX3Ro cmVzaCB8fCBmcmFnX21lbV9saW1pdChuZikgPiBuZi0+aGlnaF90aHJlc2gpCiAJCXJldHVybiBO VUxMOwogCiAJcmN1X3JlYWRfbG9jaygpOwogCi0JZnEgPSByaGFzaHRhYmxlX2xvb2t1cCgmbmYt PnJoYXNodGFibGUsIGtleSwgbmYtPmYtPnJoYXNoX3BhcmFtcyk7Ci0JaWYgKGZxKSB7CisJcHJl diA9IHJoYXNodGFibGVfbG9va3VwKCZuZi0+cmhhc2h0YWJsZSwga2V5LCBuZi0+Zi0+cmhhc2hf cGFyYW1zKTsKKwlpZiAoIXByZXYpCisJCWZxID0gaW5ldF9mcmFnX2NyZWF0ZShuZiwga2V5LCAm cHJldik7CisJaWYgKHByZXYgJiYgIUlTX0VSUihwcmV2KSkgeworCQlmcSA9IHByZXY7CiAJCWlm ICghcmVmY291bnRfaW5jX25vdF96ZXJvKCZmcS0+cmVmY250KSkKIAkJCWZxID0gTlVMTDsKLQkJ cmN1X3JlYWRfdW5sb2NrKCk7Ci0JCXJldHVybiBmcTsKIAl9CiAJcmN1X3JlYWRfdW5sb2NrKCk7 Ci0KLQlyZXR1cm4gaW5ldF9mcmFnX2NyZWF0ZShuZiwga2V5KTsKKwlyZXR1cm4gZnE7CiB9CiBF WFBPUlRfU1lNQk9MKGluZXRfZnJhZ19maW5kKTsKLS0gCjIuMTkuMQoKCkZyb20gYmExYTYyYWJj NjhiMzQ4ODc1MmQyN2VkMWMyZmJhZWI1MGM2Mzk4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBUdWUsIDEzIE5vdiAy MDE4IDAxOjA4OjI1ICswODAwClN1YmplY3Q6IFtQQVRDSCAyNy80M10gbDJ0cDogZml4IGEgc29j ayByZWZjbnQgbGVhayBpbiBsMnRwX3R1bm5lbF9yZWdpc3RlcgoKWyBVcHN0cmVhbSBjb21taXQg Zjg1MDRmNGNhMGEwZTlmODQ1NDZlZjg2ZTAwYjI0ZDJlYTlhMGJkMiBdCgpUaGlzIGlzc3VlIGhh cHBlbnMgd2hlbiB0cnlpbmcgdG8gYWRkIGFuIGV4aXN0ZW50IHR1bm5lbC4gSXQKZG9lc24ndCBj YWxsIHNvY2tfcHV0KCkgYmVmb3JlIHJldHVybmluZyAtRUVYSVNUIHRvIHJlbGVhc2UKdGhlIHNv Y2sgcmVmY250IHRoYXQgd2FzIGhlbGQgYnkgY2FsbGluZyBzb2NrX2hvbGQoKSBiZWZvcmUKdGhl IGV4aXN0ZW5jZSBjaGVjay4KClRoaXMgcGF0Y2ggaXMgdG8gZml4IGl0IGJ5IGhvbGRpbmcgdGhl IHNvY2sgYWZ0ZXIgZG9pbmcgdGhlCmV4aXN0ZW5jZSBjaGVjay4KCkZpeGVzOiBmNmNkNjUxYjA1 NmYgKCJsMnRwOiBmaXggcmFjZSBpbiBkdXBsaWNhdGUgdHVubmVsIGRldGVjdGlvbiIpClJlcG9y dGVkLWJ5OiBKaWFubGluIFNoaSA8amlzaGlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGlu IExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogR3VpbGxhdW1lIE5hdWx0 IDxnLm5hdWx0QGFscGhhbGluay5mcj4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9sMnRwL2wydHBfY29yZS5jIHwgOSArKysrLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9jb3JlLmMgYi9uZXQvbDJ0cC9sMnRwX2NvcmUuYwppbmRl eCA4MmNkZjkwMjBiNTMuLjI2ZjFkNDM1Njk2YSAxMDA2NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9j b3JlLmMKKysrIGIvbmV0L2wydHAvbDJ0cF9jb3JlLmMKQEAgLTE0OTAsMTIgKzE0OTAsNyBAQCBp bnQgbDJ0cF90dW5uZWxfcmVnaXN0ZXIoc3RydWN0IGwydHBfdHVubmVsICp0dW5uZWwsIHN0cnVj dCBuZXQgKm5ldCwKIAkJCWdvdG8gZXJyX3NvY2s7CiAJfQogCi0Jc2sgPSBzb2NrLT5zazsKLQot CXNvY2tfaG9sZChzayk7Ci0JdHVubmVsLT5zb2NrID0gc2s7CiAJdHVubmVsLT5sMnRwX25ldCA9 IG5ldDsKLQogCXBuID0gbDJ0cF9wZXJuZXQobmV0KTsKIAogCXNwaW5fbG9ja19iaCgmcG4tPmwy dHBfdHVubmVsX2xpc3RfbG9jayk7CkBAIC0xNTEwLDYgKzE1MDUsMTAgQEAgaW50IGwydHBfdHVu bmVsX3JlZ2lzdGVyKHN0cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsLCBzdHJ1Y3QgbmV0ICpuZXQs CiAJbGlzdF9hZGRfcmN1KCZ0dW5uZWwtPmxpc3QsICZwbi0+bDJ0cF90dW5uZWxfbGlzdCk7CiAJ c3Bpbl91bmxvY2tfYmgoJnBuLT5sMnRwX3R1bm5lbF9saXN0X2xvY2spOwogCisJc2sgPSBzb2Nr LT5zazsKKwlzb2NrX2hvbGQoc2spOworCXR1bm5lbC0+c29jayA9IHNrOworCiAJaWYgKHR1bm5l bC0+ZW5jYXAgPT0gTDJUUF9FTkNBUFRZUEVfVURQKSB7CiAJCXN0cnVjdCB1ZHBfdHVubmVsX3Nv Y2tfY2ZnIHVkcF9jZmcgPSB7CiAJCQkuc2tfdXNlcl9kYXRhID0gdHVubmVsLAotLSAKMi4xOS4x CgoKRnJvbSAyNjljNDcwZGM3YzFiMjg3NzA0ZTA4NzgzNGI3N2VhMmFmZmZhOWM1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSYWVkIFNhbGVtIDxyYWVkc0BtZWxsYW5veC5jb20+CkRh dGU6IFRodSwgMTggT2N0IDIwMTggMDg6NTU6MjEgKzAzMDAKU3ViamVjdDogW1BBVENIIDI4LzQz XSBuZXQvbWx4NTogSVBTZWMsIEZpeCB0aGUgU0EgY29udGV4dCBoYXNoIGtleQoKWyBVcHN0cmVh bSBjb21taXQgZjJiMTg3MzJlZTk4NjNhYzAzNjc1OWJhZjYxNmZmYTAzYzI1MmVkNSBdCgpUaGUg Y29tbWl0ICJuZXQvbWx4NTogUmVmYWN0b3IgYWNjZWwgSVBTZWMgY29kZSIgaW50cm9kdWNlZCBh CmJ1ZyB3aGVyZSBhc3luY2hyb25vdXMgc2hvcnQgdGltZSBjaGFuZ2UgaW4gaGFzaCBrZXkgdmFs dWUKYnkgY3JlYXRlL3JlbGVhc2UgU0EgY29udGV4dCBtaWdodCBoYXBwZW4gZHVyaW5nIGFuIGFz eW5jaHJvbm91cwpoYXNoIHJlc2l6ZSBvcGVyYXRpb24gdGhpcyBjb3VsZCBjYXVzZSBhIHN1YnNl cXVlbnQgcmVtb3ZlIFNBCmNvbnRleHQgb3BlcmF0aW9uIHRvIGZhaWwgYXMgdGhlIGtleSB2YWx1 ZSB1c2VkIGR1cmluZyByZXNpemUgaXMKbm90IHRoZSBzYW1lIGtleSB2YWx1ZSB1c2VkIHdoZW4g cmVtb3ZlIFNBIGNvbnRleHQgb3BlcmF0aW9uIGlzCmludm9rZWQuCgpUaGlzIGNvbW1pdCBmaXhl cyB0aGUgYnVnIGJ5IGRlZmluaW5nIHRoZSBTQSBjb250ZXh0IGhhc2gga2V5CnN1Y2ggdGhhdCBp dCBpbmNsdWRlcyBvbmx5IGZpZWxkcyB0aGF0IG5ldmVyIGNoYW5nZSBkdXJpbmcgdGhlCmxpZmV0 aW1lIG9mIHRoZSBTQSBjb250ZXh0IG9iamVjdC4KCkZpeGVzOiBkNmM0ZjAyOThjZWMgKCJuZXQv bWx4NTogUmVmYWN0b3IgYWNjZWwgSVBTZWMgY29kZSIpClNpZ25lZC1vZmYtYnk6IFJhZWQgU2Fs ZW0gPHJhZWRzQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEF2aWFkIFllaGV6a2VsIDxhdmlh ZHllQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBt ZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2ZwZ2EvaXBzZWMuYyB8IDEwICsrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2ZwZ2EvaXBzZWMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9mcGdhL2lwc2VjLmMKaW5kZXggYjhlZTkxMDFjNTA2Li5iNWE4NzY5 YTViZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9mcGdhL2lwc2VjLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2ZwZ2EvaXBzZWMuYwpAQCAtODMsOCArODMsMTQgQEAgc3RydWN0IG1seDVfZnBnYV9pcHNl Y19ydWxlIHsKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgcmhh c2hfc2EgPSB7Ci0JLmtleV9sZW4gPSBGSUVMRF9TSVpFT0Yoc3RydWN0IG1seDVfZnBnYV9pcHNl Y19zYV9jdHgsIGh3X3NhKSwKLQkua2V5X29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBtbHg1X2Zw Z2FfaXBzZWNfc2FfY3R4LCBod19zYSksCisJLyogS2VlcCBvdXQgImNtZCIgZmllbGQgZnJvbSB0 aGUga2V5IGFzIGl0J3MKKwkgKiB2YWx1ZSBpcyBub3QgY29uc3RhbnQgZHVyaW5nIHRoZSBsaWZl dGltZQorCSAqIG9mIHRoZSBrZXkgb2JqZWN0LgorCSAqLworCS5rZXlfbGVuID0gRklFTERfU0la RU9GKHN0cnVjdCBtbHg1X2ZwZ2FfaXBzZWNfc2FfY3R4LCBod19zYSkgLQorCQkgICBGSUVMRF9T SVpFT0Yoc3RydWN0IG1seDVfaWZjX2ZwZ2FfaXBzZWNfc2FfdjEsIGNtZCksCisJLmtleV9vZmZz ZXQgPSBvZmZzZXRvZihzdHJ1Y3QgbWx4NV9mcGdhX2lwc2VjX3NhX2N0eCwgaHdfc2EpICsKKwkJ ICAgICAgRklFTERfU0laRU9GKHN0cnVjdCBtbHg1X2lmY19mcGdhX2lwc2VjX3NhX3YxLCBjbWQp LAogCS5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBtbHg1X2ZwZ2FfaXBzZWNfc2FfY3R4 LCBoYXNoKSwKIAkuYXV0b21hdGljX3Nocmlua2luZyA9IHRydWUsCiAJLm1pbl9zaXplID0gMSwK LS0gCjIuMTkuMQoKCkZyb20gZTY3MzRiY2FhMjFmZWEyMTE4NDlmNDE0MTk5ZjY3MTJlNTgzZWFk OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGVuaXMgRHJvemRvdiA8ZGVuaXNkQG1l bGxhbm94LmNvbT4KRGF0ZTogVGh1LCAyNyBTZXAgMjAxOCAxNDoxNzo1NCArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMjkvNDNdIG5ldC9tbHg1ZTogSVBvSUIsIFJlc2V0IFFQIGFmdGVyIGNoYW5uZWxz IGFyZSBjbG9zZWQKClsgVXBzdHJlYW0gY29tbWl0IGFjZjM3NjZiMzZkOGU1OWVjYmMzMDc4OTRj NmQwNTcwM2VlNDgwMTQgXQoKVGhlIG1seDVlIGNoYW5uZWxzIHNob3VsZCBiZSBjbG9zZWQgYmVm b3JlIG1seDVpX3VuaW5pdF91bmRlcmxheV9xcApwdXRzIHRoZSBRUCBpbnRvIFJTVCAocmVzZXQp IHN0YXRlIGR1cmluZyBtbHg1aV9jbG9zZS4gQ3VycmVudGx5IFFQCnN0YXRlIGluY29ycmVjdGx5 IHNldCB0byBSU1QgYmVmb3JlIGNoYW5uZWxzIGdvdCBkZWFjdGl2YXRlZCBhbmQgY2xvc2VkLApz aW5jZSBtbHg1X3Bvc3Rfc2VuZCByZXF1ZXN0IGV4cGVjdHMgUVAgaW4gUlRTIChSZWFkeSBUbyBT ZW5kKSBzdGF0ZS4KClRoZSBmaXggaXMgdG8ga2VlcCBRUCBpbiBSVFMgc3RhdGUgdW50aWwgbWx4 NWUgY2hhbm5lbHMgZ2V0IGNsb3NlZAphbmQgdG8gcmVzZXQgUVAgYWZ0ZXJ3YXJkcy4KCkFsc28g dGhpcyBmaXggaXMgc2ltcGx5IGNvcnJlY3QgaW4gb3JkZXIgdG8ga2VlcCB0aGUgb3Blbi9jbG9z ZSBmbG93CnN5bW1ldHJpYywgaS5lIG1seDVpX2luaXRfdW5kZXJsYXlfcXAoKSBpcyBjYWxsZWQg Zmlyc3QgdGhpbmcgYXQgb3BlbiwKdGhlIGNvcnJlY3QgdGhpbmcgdG8gZG8gaXMgdG8gY2FsbCBt bHg1aV91bmluaXRfdW5kZXJsYXlfcXAoKSBsYXN0IHRoaW5nCmF0IGNsb3NlLCB3aGljaCBpcyBl eGFjdGx5IHdoYXQgdGhpcyBwYXRjaCBpcyBkb2luZy4KCkZpeGVzOiBkYWUzNzQ1NmM4YWMgKCJu ZXQvbWx4NTogU3VwcG9ydCBmb3IgYXR0YWNoaW5nIG11bHRpcGxlIHVuZGVybGF5IFFQcyB0byBy b290IGZsb3cgdGFibGUiKQpTaWduZWQtb2ZmLWJ5OiBEZW5pcyBEcm96ZG92IDxkZW5pc2RAbWVs bGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94 LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIv aXBvaWIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9pcG9pYi9pcG9pYi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2lwb2liL2lwb2liLmMKaW5kZXggZTM3OTdhNDRlMDc0Li41YjdmZTgyNjQxNDQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9pYi5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9p Yi5jCkBAIC01MDIsOSArNTAyLDkgQEAgc3RhdGljIGludCBtbHg1aV9jbG9zZShzdHJ1Y3QgbmV0 X2RldmljZSAqbmV0ZGV2KQogCiAJbmV0aWZfY2Fycmllcl9vZmYoZXByaXYtPm5ldGRldik7CiAJ bWx4NV9mc19yZW1vdmVfcnhfdW5kZXJsYXlfcXBuKG1kZXYsIGlwcml2LT5xcC5xcG4pOwotCW1s eDVpX3VuaW5pdF91bmRlcmxheV9xcChlcHJpdik7CiAJbWx4NWVfZGVhY3RpdmF0ZV9wcml2X2No YW5uZWxzKGVwcml2KTsKIAltbHg1ZV9jbG9zZV9jaGFubmVscygmZXByaXYtPmNoYW5uZWxzKTsK KwltbHg1aV91bmluaXRfdW5kZXJsYXlfcXAoZXByaXYpOwogdW5sb2NrOgogCW11dGV4X3VubG9j aygmZXByaXYtPnN0YXRlX2xvY2spOwogCXJldHVybiAwOwotLSAKMi4xOS4xCgoKRnJvbSBiZmY0 YWMzYzY1ZThmODMxNWZjOTMzOGY2ODhlOTI0MDFmOWFlOTEyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBKYXJvZCBXaWxzb24gPGphcm9kQHJlZGhhdC5jb20+CkRhdGU6IFN1biwgNCBO b3YgMjAxOCAxNDo1OTo0NiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMzAvNDNdIGJvbmRpbmcvODAy LjNhZDogZml4IGxpbmtfZmFpbHVyZV9jb3VudCB0cmFja2luZwoKWyBVcHN0cmVhbSBjb21taXQg ZWE1M2FiZmFiOTYwOTA5ZDYyMmNhMzdiY2ZiOGUxYzUzNzhkMjFjYyBdCgpDb21taXQgNGQyYzBj ZGEwNzQ0OGVhNjk4MGYwMDEwMmRjMzk2NGViMjVlMjQxYyBzZXQgc2xhdmUtPmxpbmsgdG8KQk9O RF9MSU5LX0RPV04gZm9yIDgwMi4zYWQgYm9uZHMgd2hlbmV2ZXIgaW52YWxpZCBzcGVlZC9kdXBs ZXggdmFsdWVzCndlcmUgcmVhZCwgdG8gZml4IGEgcHJvYmxlbSB3aXRoIHNsYXZlcyBnZXR0aW5n IGludG8gd2VpcmQgc3RhdGVzLCBidXQKaW4gdGhlIHByb2Nlc3MsIGJyb2tlIHRyYWNraW5nIG9m IGxpbmsgZmFpbHVyZXMsIGFzIGdvaW5nIHN0cmFpZ2h0IHRvCkJPTkRfTElOS19ET1dOIHdoZW4g YSBsaW5rIGlzIGluZGVlZCBkb3duIChjYWJsZSBwdWxsZWQsIHN3aXRjaCByZWJvb3RlZCkKbWVh bnMgd2UgYnJva2Ugb3V0IG9mIGJvbmRfbWlpbW9uX2luc3BlY3QoKSdzIEJPTkRfTElOS19ET1dO IGNhc2UgYmVjYXVzZQohbGlua19zdGF0ZSB3YXMgYWxyZWFkeSB0cnVlLCB3ZSBuZXZlciBpbmNy ZW1lbnRlZCBjb21taXQsIGFuZCBuZXZlciBnb3QKYSBjaGFuY2UgdG8gY2FsbCBib25kX21paW1v bl9jb21taXQoKSwgd2hlcmUgc2xhdmUtPmxpbmtfZmFpbHVyZV9jb3VudAp3b3VsZCBiZSBpbmNy ZW1lbnRlZC4gSSBiZWxpZXZlIHRoZSBzaW1wbGUgZml4IGhlcmUgaXMgdG8gbWFyayB0aGUgc2xh dmUKYXMgQk9ORF9MSU5LX0ZBSUwsIGFuZCBsZXQgYm9uZF9taWltb25faW5zcGVjdCgpIHRyYW5z aXRpb24gdGhlIGxpbmsgZnJvbQpfRkFJTCB0byBlaXRoZXIgX1VQIG9yIF9ET1dOLCBhbmQgaW4g dGhlIGxhdHRlciBjYXNlLCB3ZSBub3cgZ2V0IHByb3BlcgppbmNyZW1lbnRpbmcgb2YgbGlua19m YWlsdXJlX2NvdW50IGFnYWluLgoKRml4ZXM6IDRkMmMwY2RhMDc0NCAoImJvbmRpbmc6IHNwZWVk L2R1cGxleCB1cGRhdGUgYXQgTkVUREVWX1VQIGV2ZW50IikKQ0M6IE1haGVzaCBCYW5kZXdhciA8 bWFoZXNoYkBnb29nbGUuY29tPgpDQzogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgpDQzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZwpDQzogc3RhYmxlQHZnZXIua2VybmVsLm9y ZwpTaWduZWQtb2ZmLWJ5OiBKYXJvZCBXaWxzb24gPGphcm9kQHJlZGhhdC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ib25kaW5nL2JvbmRfbWFpbi5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRp bmcvYm9uZF9tYWluLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCmluZGV4IGVl MjhlYzllMGFiYS4uM2M1OTc1NjljZmFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ib25kaW5n L2JvbmRfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKQEAgLTMx MTEsMTMgKzMxMTEsMTMgQEAgc3RhdGljIGludCBib25kX3NsYXZlX25ldGRldl9ldmVudCh1bnNp Z25lZCBsb25nIGV2ZW50LAogCWNhc2UgTkVUREVWX0NIQU5HRToKIAkJLyogRm9yIDgwMi4zYWQg bW9kZSBvbmx5OgogCQkgKiBHZXR0aW5nIGludmFsaWQgU3BlZWQvRHVwbGV4IHZhbHVlcyBoZXJl IHdpbGwgcHV0IHNsYXZlCi0JCSAqIGluIHdlaXJkIHN0YXRlLiBTbyBtYXJrIGl0IGFzIGxpbmst ZG93biBmb3IgdGhlIHRpbWUKKwkJICogaW4gd2VpcmQgc3RhdGUuIFNvIG1hcmsgaXQgYXMgbGlu ay1mYWlsIGZvciB0aGUgdGltZQogCQkgKiBiZWluZyBhbmQgbGV0IGxpbmstbW9uaXRvcmluZyAo bWlpbW9uKSBzZXQgaXQgcmlnaHQgd2hlbgogCQkgKiBjb3JyZWN0IHNwZWVkcy9kdXBsZXggYXJl IGF2YWlsYWJsZS4KIAkJICovCiAJCWlmIChib25kX3VwZGF0ZV9zcGVlZF9kdXBsZXgoc2xhdmUp ICYmCiAJCSAgICBCT05EX01PREUoYm9uZCkgPT0gQk9ORF9NT0RFXzgwMjNBRCkKLQkJCXNsYXZl LT5saW5rID0gQk9ORF9MSU5LX0RPV047CisJCQlzbGF2ZS0+bGluayA9IEJPTkRfTElOS19GQUlM OwogCiAJCWlmIChCT05EX01PREUoYm9uZCkgPT0gQk9ORF9NT0RFXzgwMjNBRCkKIAkJCWJvbmRf M2FkX2FkYXB0ZXJfc3BlZWRfZHVwbGV4X2NoYW5nZWQoc2xhdmUpOwotLSAKMi4xOS4xCgoKRnJv bSAwNjg0NjNlOTA4NjQxMzJmMjUzOTIyMjMwZTA3MzMwYTFhZjkwMWYwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+CkRhdGU6IFN1biwg MTEgTm92IDIwMTggMDA6NDE6MTAgKzAxMDAKU3ViamVjdDogW1BBVENIIDMxLzQzXSBuZXQ6IGRz YTogbXY4OGU2eHh4OiBGaXggY2xlYXJpbmcgb2Ygc3RhdHMgY291bnRlcnMKClsgVXBzdHJlYW0g Y29tbWl0IGE5MDQ5ZmY5MjE0ZGE2OGRmMTE3OWE3ZDVlMzZiNDM0NzlhYmM5YjggXQoKVGhlIG12 ODhlNjE2MSB3b3VsZCBzb21ldGltZSBmYWlsIHRvIHByb2JlIHdpdGggYSB0aW1lb3V0IHdhaXRp bmcgZm9yCnRoZSBzd2l0Y2ggdG8gY29tcGxldGUgYW4gb3BlcmF0aW9uLiBUaGlzIG9wZXJhdGlv biBpcyBzdXBwb3NlZCB0bwpjbGVhciB0aGUgc3RhdGlzdGljcyBjb3VudGVycy4gSG93ZXZlciwg ZHVlIHRvIGEgcmVhZC9tb2RpZnkvd3JpdGUsCndpdGhvdXQgdGhlIG5lZWRlZCBtYXNrLCB0aGUg b3BlcmF0aW9uIGFjdHVhbGx5IGNhcnJpZWQgb3V0IHdhcyBtb3JlCnJhbmRvbSwgd2l0aCBpbnZh bGlkIHBhcmFtZXRlcnMsIHJlc3VsdGluZyBpbiB0aGUgc3dpdGNoIG5vdApyZXNwb25kaW5nLiBX ZSBuZWVkIHRvIHByZXNlcnZlIHRoZSBoaXN0b2dyYW0gbW9kZSBiaXRzLCBzbyBhcHBseSBhCm1h c2sgdG8ga2VlcCB0aGVtLgoKUmVwb3J0ZWQtYnk6IENocmlzIEhlYWx5IDxDaHJpcy5IZWFseUB6 aWkuYWVybz4KRml4ZXM6IDQwY2ZmOGZjYTllMyAoIm5ldDogZHNhOiBtdjg4ZTZ4eHg6IEZpeCBz dGF0cyBoaXN0b2dyYW0gbW9kZSIpClNpZ25lZC1vZmYtYnk6IEFuZHJldyBMdW5uIDxhbmRyZXdA bHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jIHwgMiArKwogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Rz YS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwx LmMKaW5kZXggZDcyMWNjZjdkOGJlLi4zOGUzOTllMGYzMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4 eHgvZ2xvYmFsMS5jCkBAIC01NjcsNiArNTY3LDggQEAgaW50IG12ODhlNnh4eF9nMV9zdGF0c19j bGVhcihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApCiAJaWYgKGVycikKIAkJcmV0dXJuIGVy cjsKIAorCS8qIEtlZXAgdGhlIGhpc3RvZ3JhbSBtb2RlIGJpdHMgKi8KKwl2YWwgJj0gTVY4OEU2 WFhYX0cxX1NUQVRTX09QX0hJU1RfUlhfVFg7CiAJdmFsIHw9IE1WODhFNlhYWF9HMV9TVEFUU19P UF9CVVNZIHwgTVY4OEU2WFhYX0cxX1NUQVRTX09QX0ZMVVNIX0FMTDsKIAogCWVyciA9IG12ODhl Nnh4eF9nMV93cml0ZShjaGlwLCBNVjg4RTZYWFhfRzFfU1RBVFNfT1AsIHZhbCk7Ci0tIAoyLjE5 LjEKCgpGcm9tIDE4YTZjODI3OTU2MTNkMThjZmJlY2FjZDI1NjZhMDQwZjk1NTQ4MDMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Ib2xnZXI9MjBIb2Zmc3Q9QzM9QTR0 dGU/PSA8aG9sZ2VyQGFwcGxpZWQtYXN5bmNocm9ueS5jb20+CkRhdGU6IFN1biwgNCBOb3YgMjAx OCAxOTowMjo0MiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMzIvNDNdIG5ldDogcGh5OiByZWFsdGVr OiBmaXggUlRMODIwMUYgc3lzZnMgbmFtZQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp dAoKWyBVcHN0cmVhbSBjb21taXQgMDQzMmU4MzMxOTFhZDRkMTdiN2ZjMjM2NDk0MWY5MWRhZDUx ZGIxYSBdCgpTaW5jZSA0LjE5IHRoZSBmb2xsb3dpbmcgZXJyb3IgaW4gc3lzZnMgaGFzIGFwcGVh cmVkIHdoZW4gdXNpbmcgdGhlCnI4MTY5IE5JQyBkcml2ZXI6CgokY2QgL3N5cy9tb2R1bGUvcmVh bHRlay9kcml2ZXJzCiRscyAtbApsczogY2Fubm90IGFjY2VzcyAnbWRpb19idXM6UlRMODIwMUYg MTAvMTAwTWJwcyBFdGhlcm5ldCc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKWy4uZ2FyYmxl ZCBkaXIgZW50cmllcyBmb2xsb3cuLl0KCkFwcGFyZW50bHkgdGhlIGZvcndhcmQgc2xhc2ggaW4g IjEwLzEwME1icHMgRXRoZXJuZXQiIGlzIGludGVycHJldGVkCmFzIGRpcmVjdG9yeSBzZXBhcmF0 b3IgdGhhdCBsZWFkcyBub3doZXJlLCBhbmQgd2FzIGludHJvZHVjZWQgaW4gY29tbWl0CjUxMzU4 OGRkNDRiICgibmV0OiBwaHk6IHJlYWx0ZWs6IGFkZCBSVEw4MjAxRiBwaHktaWQgYW5kIGZ1bmN0 aW9ucyIpLgoKRml4IHRoaXMgYnkgcmVtb3ZpbmcgdGhlIG9mZmVuZGluZyBzbGFzaCBpbiB0aGUg ZHJpdmVyIG5hbWUuCgpPdGhlciBkcml2ZXJzIGluIG5ldC9waHkgc2VlbSB0byBoYXZlIHRoZSBz YW1lIHByb2JsZW0sIGJ1dCBJIGNhbm5vdAp0ZXN0L3ZlcmlmeSB0aGVtLgoKRml4ZXM6IDUxMzU4 OGRkNDRiICgibmV0OiBwaHk6IHJlYWx0ZWs6IGFkZCBSVEw4MjAxRiBwaHktaWQgYW5kIGZ1bmN0 aW9ucyIpClNpZ25lZC1vZmYtYnk6IEhvbGdlciBIb2Zmc3TDpHR0ZSA8aG9sZ2VyQGFwcGxpZWQt YXN5bmNocm9ueS5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL25ldC9waHkvcmVhbHRlay5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3Jl YWx0ZWsuYyBiL2RyaXZlcnMvbmV0L3BoeS9yZWFsdGVrLmMKaW5kZXggN2ZjODUwOGI1MjMxLi4y NzFlOGFkYzM5ZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9yZWFsdGVrLmMKKysrIGIv ZHJpdmVycy9uZXQvcGh5L3JlYWx0ZWsuYwpAQCAtMjIwLDcgKzIyMCw3IEBAIHN0YXRpYyBzdHJ1 Y3QgcGh5X2RyaXZlciByZWFsdGVrX2RydnNbXSA9IHsKIAkJLmZsYWdzICAgICAgICAgID0gUEhZ X0hBU19JTlRFUlJVUFQsCiAJfSwgewogCQkucGh5X2lkCQk9IDB4MDAxY2M4MTYsCi0JCS5uYW1l CQk9ICJSVEw4MjAxRiAxMC8xMDBNYnBzIEV0aGVybmV0IiwKKwkJLm5hbWUJCT0gIlJUTDgyMDFG IEZhc3QgRXRoZXJuZXQiLAogCQkucGh5X2lkX21hc2sJPSAweDAwMWZmZmZmLAogCQkuZmVhdHVy ZXMJPSBQSFlfQkFTSUNfRkVBVFVSRVMsCiAJCS5mbGFncwkJPSBQSFlfSEFTX0lOVEVSUlVQVCwK LS0gCjIuMTkuMQoKCkZyb20gYzk2MTExNzRmMzIxNDE3OWQyM2ZkZjk1MGRhMjRmN2Y4YjFkZWYw YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDMgTm92IDIwMTggMTQ6MDE6MzEgKzA4MDAKU3ViamVjdDogW1BB VENIIDMzLzQzXSBzY3RwOiBkZWZpbmUgU0NUUF9TU19ERUZBVUxUIGZvciBTdHJlYW0gc2NoZWR1 bGVycwoKWyBVcHN0cmVhbSBjb21taXQgMTI0ODBlM2IxNjk4MmM0MDI2ZGUxMGRkODE1NTgyMzIx OWNkNjM5MSBdCgpBY2NvcmRpbmcgdG8gcmZjODI2MCNzZWN0aW9uLTQuMy4yLCBTQ1RQX1NTX0RF RkFVTFQgaXMgcmVxdWlyZWQgdG8KZGVmaW5lZCBhcyBTQ1RQX1NTX0ZDRlMgb3IgU0NUUF9TU19S Ui4KClNDVFBfU1NfRkNGUyBpcyB1c2VkIGZvciBTQ1RQX1NTX0RFRkFVTFQncyB2YWx1ZSBpbiB0 aGlzIHBhdGNoLgoKRml4ZXM6IDViYmJiZTMyYTQzMSAoInNjdHA6IGludHJvZHVjZSBzdHJlYW0g c2NoZWR1bGVyIGZvdW5kYXRpb25zIikKUmVwb3J0ZWQtYnk6IEppYW53ZW4gSmkgPGppamlAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog aW5jbHVkZS91YXBpL2xpbnV4L3NjdHAuaCB8IDEgKwogbmV0L3NjdHAvb3V0cXVldWUuYyAgICAg ICB8IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3NjdHAuaCBiL2luY2x1ZGUvdWFwaS9s aW51eC9zY3RwLmgKaW5kZXggMzRkZDNkNDk3ZjJjLi45YzI3ODBhNjVmYjQgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvdWFwaS9saW51eC9zY3RwLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3NjdHAu aApAQCAtMTE1MSw2ICsxMTUxLDcgQEAgc3RydWN0IHNjdHBfYWRkX3N0cmVhbXMgewogLyogU0NU UCBTdHJlYW0gc2NoZWR1bGVycyAqLwogZW51bSBzY3RwX3NjaGVkX3R5cGUgewogCVNDVFBfU1Nf RkNGUywKKwlTQ1RQX1NTX0RFRkFVTFQgPSBTQ1RQX1NTX0ZDRlMsCiAJU0NUUF9TU19QUklPLAog CVNDVFBfU1NfUlIsCiAJU0NUUF9TU19NQVggPSBTQ1RQX1NTX1JSCmRpZmYgLS1naXQgYS9uZXQv c2N0cC9vdXRxdWV1ZS5jIGIvbmV0L3NjdHAvb3V0cXVldWUuYwppbmRleCA0MjE5MWVkOTkwMmIu LjdiYjhlNTYwMzI5OCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvb3V0cXVldWUuYworKysgYi9uZXQv c2N0cC9vdXRxdWV1ZS5jCkBAIC0yMTIsNyArMjEyLDcgQEAgdm9pZCBzY3RwX291dHFfaW5pdChz dHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywgc3RydWN0IHNjdHBfb3V0cSAqcSkKIAlJTklU X0xJU1RfSEVBRCgmcS0+cmV0cmFuc21pdCk7CiAJSU5JVF9MSVNUX0hFQUQoJnEtPnNhY2tlZCk7 CiAJSU5JVF9MSVNUX0hFQUQoJnEtPmFiYW5kb25lZCk7Ci0Jc2N0cF9zY2hlZF9zZXRfc2NoZWQo YXNvYywgU0NUUF9TU19GQ0ZTKTsKKwlzY3RwX3NjaGVkX3NldF9zY2hlZChhc29jLCBTQ1RQX1NT X0RFRkFVTFQpOwogfQogCiAvKiBGcmVlIHRoZSBvdXRxdWV1ZSBzdHJ1Y3R1cmUgYW5kIGFueSBy ZWxhdGVkIHBlbmRpbmcgY2h1bmtzLgotLSAKMi4xOS4xCgoKRnJvbSAwNmUwOTkxZjQ5NjUxOWQy Nzg5MGI4MmUwZTM5MDVkODI5NWU5OTM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBT dWJhc2ggQWJoaW5vdiBLYXNpdmlzd2FuYXRoYW4gPHN1YmFzaGFiQGNvZGVhdXJvcmEub3JnPgpE YXRlOiBGcmksIDkgTm92IDIwMTggMTg6NTY6MjcgLTA3MDAKU3ViamVjdDogW1BBVENIIDM0LzQz XSBuZXQ6IHF1YWxjb21tOiBybW5ldDogRml4IGluY29ycmVjdCBhc3NpZ25tZW50IG9mCiByZWFs X2RldgoKWyBVcHN0cmVhbSBjb21taXQgZDAyODU0ZGMxOTk5ZWQzZTdmZDc5ZWM3MDBjNjRhYzIz YWMwYzQ1OCBdCgpBIG51bGwgZGVyZWZlcmVuY2Ugd2FzIG9ic2VydmVkIHdoZW4gYSBzeXNjdGwg d2FzIGJlaW5nIHNldApmcm9tIHVzZXJzcGFjZSBhbmQgcm1uZXQgd2FzIHN0dWNrIHRyeWluZyB0 byBjb21wbGV0ZSBzb21lIGFjdGlvbnMKaW4gdGhlIE5FVERFVl9SRUdJU1RFUiBjYWxsYmFjay4g VGhpcyBpcyBiZWNhdXNlIHRoZSByZWFsX2RldiBpcyBzZXQKb25seSBhZnRlciB0aGUgZGV2aWNl IHJlZ2lzdHJhdGlvbiBoYW5kbGVyIGNvbXBsZXRlcy4KCnN5c2N0bCBjYWxsIHN0YWNrIC0KCjw2 PiBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQKICAg IHZpcnR1YWwgYWRkcmVzcyAwMDAwMDEwOAo8Mj4gcGMgOiBybW5ldF92bmRfZ2V0X2lmbGluaysw eDFjLzB4MjgKPDI+IGxyIDogZGV2X2dldF9pZmxpbmsrMHgyYy8weDQwCjwyPiAgcm1uZXRfdm5k X2dldF9pZmxpbmsrMHgxYy8weDI4CjwyPiAgaW5ldDZfZmlsbF9pZmluZm8rMHgxNWMvMHgyMzQK PDI+ICBpbmV0Nl9pZmluZm9fbm90aWZ5KzB4NjgvMHhkNAo8Mj4gIG5kaXNjX2lmaW5mb19zeXNj dGxfY2hhbmdlKzB4MWI4LzB4MjM0CjwyPiAgcHJvY19zeXNfY2FsbF9oYW5kbGVyKzB4YWMvMHgx MDAKPDI+ICBwcm9jX3N5c193cml0ZSsweDNjLzB4NGMKPDI+ICBfX3Zmc193cml0ZSsweDU0LzB4 MTRjCjwyPiAgdmZzX3dyaXRlKzB4Y2MvMHgxODgKPDI+ICBTeVNfd3JpdGUrMHg2MC8weGMwCjwy PiAgZWwwX3N2Y19uYWtlZCsweDM0LzB4MzgKCmRldmljZSByZWdpc3RlciBjYWxsIHN0YWNrIC0K CjwyPiAgbm90aWZpZXJfY2FsbF9jaGFpbisweDg0LzB4YmMKPDI+ICByYXdfbm90aWZpZXJfY2Fs bF9jaGFpbisweDM4LzB4NDgKPDI+ICBjYWxsX25ldGRldmljZV9ub3RpZmllcnNfaW5mbysweDQw LzB4NzAKPDI+ICBjYWxsX25ldGRldmljZV9ub3RpZmllcnMrMHgzOC8weDYwCjwyPiAgcmVnaXN0 ZXJfbmV0ZGV2aWNlKzB4MjljLzB4M2Q4CjwyPiAgcm1uZXRfdm5kX25ld2xpbmsrMHg2OC8weGU4 CjwyPiAgcm1uZXRfbmV3bGluaysweGEwLzB4MTYwCjwyPiAgcnRubF9uZXdsaW5rKzB4NTdjLzB4 NmM4CjwyPiAgcnRuZXRsaW5rX3Jjdl9tc2crMHgxZGMvMHgzMjgKPDI+ICBuZXRsaW5rX3Jjdl9z a2IrMHhhYy8weDExOAo8Mj4gIHJ0bmV0bGlua19yY3YrMHgyNC8weDMwCjwyPiAgbmV0bGlua191 bmljYXN0KzB4MTU4LzB4MWYwCjwyPiAgbmV0bGlua19zZW5kbXNnKzB4MzJjLzB4MzM4CjwyPiAg c29ja19zZW5kbXNnKzB4NDQvMHg2MAo8Mj4gIFN5U19zZW5kdG8rMHgxNTAvMHgxYWMKPDI+ICBl bDBfc3ZjX25ha2VkKzB4MzQvMHgzOAoKRml4ZXM6IGI3NTJlZmY1YmUyNCAoIm5ldDogcXVhbGNv bW06IHJtbmV0OiBJbXBsZW1lbnQgbmRvX2dldF9pZmxpbmsiKQpTaWduZWQtb2ZmLWJ5OiBTZWFu IFRyYW5jaGV0dGkgPHN0cmFuY2hlQGNvZGVhdXJvcmEub3JnPgpTaWduZWQtb2ZmLWJ5OiBTdWJh c2ggQWJoaW5vdiBLYXNpdmlzd2FuYXRoYW4gPHN1YmFzaGFiQGNvZGVhdXJvcmEub3JnPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvcXVhbGNvbW0vcm1uZXQvcm1uZXRfdm5kLmMgfCA2ICsrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xdWFsY29tbS9ybW5ldC9ybW5ldF92bmQuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3F1YWxjb21tL3JtbmV0L3JtbmV0X3ZuZC5jCmluZGV4IDBhZmMz ZDMzNWQ1Ni4uZDExYzE2YWViMTlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9x dWFsY29tbS9ybW5ldC9ybW5ldF92bmQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xdWFs Y29tbS9ybW5ldC9ybW5ldF92bmQuYwpAQCAtMjM0LDcgKzIzNCw3IEBAIGludCBybW5ldF92bmRf bmV3bGluayh1OCBpZCwgc3RydWN0IG5ldF9kZXZpY2UgKnJtbmV0X2RldiwKIAkJICAgICAgc3Ry dWN0IG5ldF9kZXZpY2UgKnJlYWxfZGV2LAogCQkgICAgICBzdHJ1Y3Qgcm1uZXRfZW5kcG9pbnQg KmVwKQogewotCXN0cnVjdCBybW5ldF9wcml2ICpwcml2OworCXN0cnVjdCBybW5ldF9wcml2ICpw cml2ID0gbmV0ZGV2X3ByaXYocm1uZXRfZGV2KTsKIAlpbnQgcmM7CiAKIAlpZiAoZXAtPmVncmVz c19kZXYpCkBAIC0yNDcsNiArMjQ3LDggQEAgaW50IHJtbmV0X3ZuZF9uZXdsaW5rKHU4IGlkLCBz dHJ1Y3QgbmV0X2RldmljZSAqcm1uZXRfZGV2LAogCXJtbmV0X2Rldi0+aHdfZmVhdHVyZXMgfD0g TkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9JUFY2X0NTVU07CiAJcm1uZXRfZGV2LT5od19mZWF0 dXJlcyB8PSBORVRJRl9GX1NHOwogCisJcHJpdi0+cmVhbF9kZXYgPSByZWFsX2RldjsKKwogCXJj ID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKHJtbmV0X2Rldik7CiAJaWYgKCFyYykgewogCQllcC0+ZWdy ZXNzX2RldiA9IHJtbmV0X2RldjsKQEAgLTI1NSw5ICsyNTcsNyBAQCBpbnQgcm1uZXRfdm5kX25l d2xpbmsodTggaWQsIHN0cnVjdCBuZXRfZGV2aWNlICpybW5ldF9kZXYsCiAKIAkJcm1uZXRfZGV2 LT5ydG5sX2xpbmtfb3BzID0gJnJtbmV0X2xpbmtfb3BzOwogCi0JCXByaXYgPSBuZXRkZXZfcHJp dihybW5ldF9kZXYpOwogCQlwcml2LT5tdXhfaWQgPSBpZDsKLQkJcHJpdi0+cmVhbF9kZXYgPSBy ZWFsX2RldjsKIAogCQluZXRkZXZfZGJnKHJtbmV0X2RldiwgInJtbmV0IGRldiBjcmVhdGVkXG4i KTsKIAl9Ci0tIAoyLjE5LjEKCgpGcm9tIGRhYzBmYmM0MDMyN2M2NzgzM2ZkYjE2N2EyNWEwNTM3 YjcwNjJlZjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRyaXN0cmFtIEhhIDxUcmlz dHJhbS5IYUBtaWNyb2NoaXAuY29tPgpEYXRlOiBGcmksIDIgTm92IDIwMTggMTk6MjM6NDEgLTA3 MDAKU3ViamVjdDogW1BBVENIIDM1LzQzXSBuZXQ6IGRzYTogbWljcm9jaGlwOiBpbml0aWFsaXpl IG11dGV4IGJlZm9yZSB1c2UKClsgVXBzdHJlYW0gY29tbWl0IDI4NGZiNzhlZDc1NzIxMTc4NDZm OGUxZDFkOGUzZGJmZDE2ODgwYzIgXQoKSW5pdGlhbGl6ZSBtdXRleCBiZWZvcmUgdXNlLiAgQXZv aWQga2VybmVsIGNvbXBsYWludCB3aGVuCkNPTkZJR19ERUJVR19MT0NLX0FMTE9DIGlzIGVuYWJs ZWQuCgpGaXhlczogYjk4N2U5OGU1MGFiOTBlNSAoImRzYTogYWRkIERTQSBzd2l0Y2ggZHJpdmVy IGZvciBNaWNyb2NoaXAgS1NaOTQ3NyIpClNpZ25lZC1vZmYtYnk6IFRyaXN0cmFtIEhhIDxUcmlz dHJhbS5IYUBtaWNyb2NoaXAuY29tPgpSZXZpZXdlZC1ieTogUGF2ZWwgTWFjaGVrIDxwYXZlbEB1 Y3cuY3o+ClJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClJldmlld2Vk LWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jIHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYyBiL2RyaXZlcnMvbmV0L2RzYS9taWNyb2No aXAva3N6X2NvbW1vbi5jCmluZGV4IDU0ZTBjYTZlZDczMC4uODZiNjQ2NGI0NTI1IDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYworKysgYi9kcml2ZXJz L25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYwpAQCAtMTExNywxMSArMTExNyw2IEBAIHN0 YXRpYyBpbnQga3N6X3N3aXRjaF9pbml0KHN0cnVjdCBrc3pfZGV2aWNlICpkZXYpCiB7CiAJaW50 IGk7CiAKLQltdXRleF9pbml0KCZkZXYtPnJlZ19tdXRleCk7Ci0JbXV0ZXhfaW5pdCgmZGV2LT5z dGF0c19tdXRleCk7Ci0JbXV0ZXhfaW5pdCgmZGV2LT5hbHVfbXV0ZXgpOwotCW11dGV4X2luaXQo JmRldi0+dmxhbl9tdXRleCk7Ci0KIAlkZXYtPmRzLT5vcHMgPSAma3N6X3N3aXRjaF9vcHM7CiAK IAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShrc3pfc3dpdGNoX2NoaXBzKTsgaSsrKSB7CkBA IC0xMjA2LDYgKzEyMDEsMTEgQEAgaW50IGtzel9zd2l0Y2hfcmVnaXN0ZXIoc3RydWN0IGtzel9k ZXZpY2UgKmRldikKIAlpZiAoZGV2LT5wZGF0YSkKIAkJZGV2LT5jaGlwX2lkID0gZGV2LT5wZGF0 YS0+Y2hpcF9pZDsKIAorCW11dGV4X2luaXQoJmRldi0+cmVnX211dGV4KTsKKwltdXRleF9pbml0 KCZkZXYtPnN0YXRzX211dGV4KTsKKwltdXRleF9pbml0KCZkZXYtPmFsdV9tdXRleCk7CisJbXV0 ZXhfaW5pdCgmZGV2LT52bGFuX211dGV4KTsKKwogCWlmIChrc3pfc3dpdGNoX2RldGVjdChkZXYp KQogCQlyZXR1cm4gLUVJTlZBTDsKIAotLSAKMi4xOS4xCgoKRnJvbSA4ODFjZmI3NmUwZjU0NGRm MTYxNTI0MmJjYjg0YTRiOWY3NjUxZDI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBY aW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMyBOb3YgMjAxOCAxMzo1 OTo0NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzYvNDNdIHNjdHA6IGZpeCBzdHJjaGFuZ2VfZmxh Z3MgbmFtZSBmb3IgU3RyZWFtIENoYW5nZSBFdmVudAoKWyBVcHN0cmVhbSBjb21taXQgZmQ4MmQ2 MWJhMTQyZjBiODM0NjNlNDcwNjRiZjU0NjBhYWM1N2I2ZSBdCgpBcyBkZWZpbmVkIGluIHJmYzY1 MjUjc2VjdGlvbi02LjEuMywgU0NUUF9TVFJFQU1fQ0hBTkdFX0RFTklFRAphbmQgU0NUUF9TVFJF QU1fQ0hBTkdFX0ZBSUxFRCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mClNDVFBfQVNTT0NfQ0hB TkdFX0RFTklFRCBhbmQgU0NUUF9BU1NPQ19DSEFOR0VfRkFJTEVELgoKVG8ga2VlcCB0aGUgY29t cGF0aWJpbGl0eSwgZml4IGl0IGJ5IGFkZGluZyB0d28gbWFjcm9zLgoKRml4ZXM6IGI0NDQxNTNm YjVhNiAoInNjdHA6IGFkZCBzdXBwb3J0IGZvciBnZW5lcmF0aW5nIGFkZCBzdHJlYW0gY2hhbmdl IGV2ZW50IG5vdGlmaWNhdGlvbiIpClJlcG9ydGVkLWJ5OiBKaWFud2VuIEppIDxqaWppQHJlZGhh dC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGlu Y2x1ZGUvdWFwaS9saW51eC9zY3RwLmggfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3NjdHAuaCBiL2luY2x1ZGUv dWFwaS9saW51eC9zY3RwLmgKaW5kZXggOWMyNzgwYTY1ZmI0Li5jODFmZWIzNzNkM2UgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9zY3RwLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4 L3NjdHAuaApAQCAtNTY4LDYgKzU2OCw4IEBAIHN0cnVjdCBzY3RwX2Fzc29jX3Jlc2V0X2V2ZW50 IHsKIAogI2RlZmluZSBTQ1RQX0FTU09DX0NIQU5HRV9ERU5JRUQJMHgwMDA0CiAjZGVmaW5lIFND VFBfQVNTT0NfQ0hBTkdFX0ZBSUxFRAkweDAwMDgKKyNkZWZpbmUgU0NUUF9TVFJFQU1fQ0hBTkdF X0RFTklFRAlTQ1RQX0FTU09DX0NIQU5HRV9ERU5JRUQKKyNkZWZpbmUgU0NUUF9TVFJFQU1fQ0hB TkdFX0ZBSUxFRAlTQ1RQX0FTU09DX0NIQU5HRV9GQUlMRUQKIHN0cnVjdCBzY3RwX3N0cmVhbV9j aGFuZ2VfZXZlbnQgewogCV9fdTE2IHN0cmNoYW5nZV90eXBlOwogCV9fdTE2IHN0cmNoYW5nZV9m bGFnczsKLS0gCjIuMTkuMQoKCkZyb20gM2NlMzJhMGU3MTQ2ZjFmNDgyNzk2M2Y2MzM4NzQ5MDY2 NDAwN2NkOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFydGluIFNjaGlsbGVyIDxt c0BkZXYudGR0LmRlPgpEYXRlOiBGcmksIDE2IE5vdiAyMDE4IDA4OjM4OjM2ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAzNy80M10gbmV0OiBwaHk6IG1kaW8tZ3BpbzogRml4IHdvcmtpbmcgb3ZlciBz bG93IGNhbl9zbGVlcAogR1BJT3MKClsgVXBzdHJlYW0gY29tbWl0IGRmNWE4ZWM2NGVlZDdmZTQ1 YjU1NmNmZmY1MDNhY2Q2NDI5YWI4MTcgXQoKVXAgdW50aWwgY29tbWl0IDdlNWZiZDFlMDcwMCAo Im5ldDogbWRpby1ncGlvOiBDb252ZXJ0IHRvIHVzZSBncGlvZApmdW5jdGlvbnMgd2hlcmUgcG9z c2libGUiKSwgdGhlIF9jYW5zbGVlcCB2YXJpYW50cyBvZiB0aGUgZ3Bpb18gQVBJIHdhcwp1c2Vk LiBBZnRlciB0aGF0IGNvbW1pdCBhbmQgdGhlIGNoYW5nZSB0byBncGlvZF8gQVBJLCB0aGUgX2Nh bnNsZWVwKCkKd2FzIGRyb3BwZWQuIFRoaXMgdGhlbiByZXN1bHRzIGluIFdBUk5fT04oKSB3aGVu IHVzZWQgd2l0aCBHUElPCmRldmljZXMgd2hpY2ggZG8gc2xlZXAuIEFkZCBiYWNrIHRoZSBfY2Fu c2xlZXAoKSB0byBhdm9pZCB0aGlzLgoKRml4ZXM6IDdlNWZiZDFlMDcwMCAoIm5ldDogbWRpby1n cGlvOiBDb252ZXJ0IHRvIHVzZSBncGlvZCBmdW5jdGlvbnMgd2hlcmUgcG9zc2libGUiKQpTaWdu ZWQtb2ZmLWJ5OiBNYXJ0aW4gU2NoaWxsZXIgPG1zQGRldi50ZHQuZGU+ClJldmlld2VkLWJ5OiBB bmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxp IDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9tZGlvLWdwaW8uYyB8IDEw ICsrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21kaW8tZ3Bpby5jIGIvZHJpdmVycy9u ZXQvcGh5L21kaW8tZ3Bpby5jCmluZGV4IDMzMjY1NzQ3YmYzOS4uMGZiY2VkY2RmNmUyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9waHkvbWRpby1ncGlvLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5 L21kaW8tZ3Bpby5jCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyB2b2lkIG1kaW9fZGlyKHN0cnVj dCBtZGlvYmJfY3RybCAqY3RybCwgaW50IGRpcikKIAkJICogYXNzdW1lIHRoZSBwaW4gc2VydmVz IGFzIHB1bGwtdXAuIElmIGRpcmVjdGlvbiBpcwogCQkgKiBvdXRwdXQsIHRoZSBkZWZhdWx0IHZh bHVlIGlzIGhpZ2guCiAJCSAqLwotCQlncGlvZF9zZXRfdmFsdWUoYml0YmFuZy0+bWRvLCAxKTsK KwkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGJpdGJhbmctPm1kbywgMSk7CiAJCXJldHVybjsK IAl9CiAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIGludCBtZGlvX2dldChzdHJ1Y3QgbWRpb2Ji X2N0cmwgKmN0cmwpCiAJc3RydWN0IG1kaW9fZ3Bpb19pbmZvICpiaXRiYW5nID0KIAkJY29udGFp bmVyX29mKGN0cmwsIHN0cnVjdCBtZGlvX2dwaW9faW5mbywgY3RybCk7CiAKLQlyZXR1cm4gZ3Bp b2RfZ2V0X3ZhbHVlKGJpdGJhbmctPm1kaW8pOworCXJldHVybiBncGlvZF9nZXRfdmFsdWVfY2Fu c2xlZXAoYml0YmFuZy0+bWRpbyk7CiB9CiAKIHN0YXRpYyB2b2lkIG1kaW9fc2V0KHN0cnVjdCBt ZGlvYmJfY3RybCAqY3RybCwgaW50IHdoYXQpCkBAIC04Nyw5ICs4Nyw5IEBAIHN0YXRpYyB2b2lk IG1kaW9fc2V0KHN0cnVjdCBtZGlvYmJfY3RybCAqY3RybCwgaW50IHdoYXQpCiAJCWNvbnRhaW5l cl9vZihjdHJsLCBzdHJ1Y3QgbWRpb19ncGlvX2luZm8sIGN0cmwpOwogCiAJaWYgKGJpdGJhbmct Pm1kbykKLQkJZ3Bpb2Rfc2V0X3ZhbHVlKGJpdGJhbmctPm1kbywgd2hhdCk7CisJCWdwaW9kX3Nl dF92YWx1ZV9jYW5zbGVlcChiaXRiYW5nLT5tZG8sIHdoYXQpOwogCWVsc2UKLQkJZ3Bpb2Rfc2V0 X3ZhbHVlKGJpdGJhbmctPm1kaW8sIHdoYXQpOworCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAo Yml0YmFuZy0+bWRpbywgd2hhdCk7CiB9CiAKIHN0YXRpYyB2b2lkIG1kY19zZXQoc3RydWN0IG1k aW9iYl9jdHJsICpjdHJsLCBpbnQgd2hhdCkKQEAgLTk3LDcgKzk3LDcgQEAgc3RhdGljIHZvaWQg bWRjX3NldChzdHJ1Y3QgbWRpb2JiX2N0cmwgKmN0cmwsIGludCB3aGF0KQogCXN0cnVjdCBtZGlv X2dwaW9faW5mbyAqYml0YmFuZyA9CiAJCWNvbnRhaW5lcl9vZihjdHJsLCBzdHJ1Y3QgbWRpb19n cGlvX2luZm8sIGN0cmwpOwogCi0JZ3Bpb2Rfc2V0X3ZhbHVlKGJpdGJhbmctPm1kYywgd2hhdCk7 CisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGJpdGJhbmctPm1kYywgd2hhdCk7CiB9CiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgbWRpb2JiX29wcyBtZGlvX2dwaW9fb3BzID0gewotLSAKMi4xOS4x CgoKRnJvbSAxMTkyYTc1NGU4NDdlY2U5ZmM0ODEzNDllM2FhZmE2NWU0MDBjYjUyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRh dGU6IFN1biwgMTggTm92IDIwMTggMjE6NTk6NDkgKzA4MDAKU3ViamVjdDogW1BBVENIIDM5LzQz XSBzY3RwOiBub3QgaW5jcmVhc2Ugc3RyZWFtJ3MgaW5jbnQgYmVmb3JlIHNlbmRpbmcKIGFkZHN0 cm1faW4gcmVxdWVzdAoKWyBVcHN0cmVhbSBjb21taXQgZTFlNDY0Nzk4NDdlNjZmNzhmNzlkOGMy NGQ1MTY5YTU5NTRiM2ZjMiBdCgpEaWZmZXJlbnQgZnJvbSBwcm9jZXNzaW5nIHRoZSBhZGRzdHJt X291dCByZXF1ZXN0LCBUaGUgcmVjZWl2ZXIgaGFuZGxlcwphbiBhZGRzdHJtX2luIHJlcXVlc3Qg Ynkgc2VuZGluZyBiYWNrIGFuIGFkZHN0cm1fb3V0IHJlcXVlc3QgdG8gdGhlCnNlbmRlciB3aG8g d2lsbCBpbmNyZWFzZSBpdHMgc3RyZWFtJ3MgaW4gYW5kIGluY250IGxhdGVyLgoKTm93IHN0cmVh bS0+aW5jbnQgaGFzIGJlZW4gaW5jcmVhc2VkIHNpbmNlIGl0IHNlbnQgb3V0IHRoZSBhZGRzdHJt X2luCnJlcXVlc3QgaW4gc2N0cF9zZW5kX2FkZF9zdHJlYW1zKCksIHdpdGggdGhlIHdyb25nIHN0 cmVhbS0+aW5jbnQgd2lsbApldmVuIGNhdXNlIGNyYXNoIHdoZW4gY29weWluZyBzdHJlYW0gaW5m byBmcm9tIHRoZSBvbGQgc3RyZWFtJ3MgaW4gdG8KdGhlIG5ldyBvbmUncyBpbiBzY3RwX3Byb2Nl c3Nfc3RycmVzZXRfYWRkc3RybV9vdXQoKS4KClRoaXMgcGF0Y2ggaXMgdG8gZml4IGl0IGJ5IHNp bXBseSByZW1vdmluZyB0aGUgc3RyZWFtLT5pbmNudCBjaGFuZ2UKZnJvbSBzY3RwX3NlbmRfYWRk X3N0cmVhbXMoKS4KCkZpeGVzOiAyNDJiZDJkNTE5ZDcgKCJzY3RwOiBpbXBsZW1lbnQgc2VuZGVy LXNpZGUgcHJvY2VkdXJlcyBmb3IgQWRkIEluY29taW5nL091dGdvaW5nIFN0cmVhbXMgUmVxdWVz dCBQYXJhbWV0ZXIiKQpSZXBvcnRlZC1ieTogSmlhbndlbiBKaSA8amlqaUByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9z dHJlYW0uYyB8IDEgLQogMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9uZXQvc2N0cC9zdHJlYW0uYyBiL25ldC9zY3RwL3N0cmVhbS5jCmluZGV4IGZmYjk0MGQzYjU3 Yy4uMzg5MmU3NjMwZjNhIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zdHJlYW0uYworKysgYi9uZXQv c2N0cC9zdHJlYW0uYwpAQCAtNTM1LDcgKzUzNSw2IEBAIGludCBzY3RwX3NlbmRfYWRkX3N0cmVh bXMoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAJCWdvdG8gb3V0OwogCX0KIAotCXN0 cmVhbS0+aW5jbnQgPSBpbmNudDsKIAlzdHJlYW0tPm91dGNudCA9IG91dGNudDsKIAogCWFzb2Mt PnN0cnJlc2V0X291dHN0YW5kaW5nID0gISFvdXQgKyAhIWluOwotLSAKMi4xOS4xCgoKRnJvbSBl ODlhMTA2MGI3OTMyYzJhY2QyZDFiYTAzZjMxZjkzMTc5YjZmZTVjIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTaGFsb20gVG9sZWRvIDxzaGFsb210QG1lbGxhbm94LmNvbT4KRGF0ZTog RnJpLCAyIE5vdiAyMDE4IDE5OjQ5OjE1ICswMDAwClN1YmplY3Q6IFtQQVRDSCA0MC80M10gbWx4 c3c6IHNwZWN0cnVtOiBGaXggSVAyTUUgQ1BVIHBvbGljZXIgY29uZmlndXJhdGlvbgoKWyBVcHN0 cmVhbSBjb21taXQgOTY4MDE1NTJmODQ2NDYwZmU5YWMxMGYxYjE4OTYwMjk5MmYwMDRlMSBdCgpU aGUgQ1BVIHBvbGljZXIgdXNlZCB0byBwb2xpY2UgcGFja2V0cyBiZWluZyB0cmFwcGVkIHZpYSBh IGxvY2FsIHJvdXRlCihJUDJNRSkgd2FzIGluY29ycmVjdGx5IGNvbmZpZ3VyZWQgdG8gcG9saWNl IGJhc2VkIG9uIGJ5dGVzIHBlciBzZWNvbmQKaW5zdGVhZCBvZiBwYWNrZXRzIHBlciBzZWNvbmQu CgpDaGFuZ2UgdGhlIHBvbGljZXIgdG8gcG9saWNlIGJhc2VkIG9uIHBhY2tldHMgcGVyIHNlY29u ZCBhbmQgYXZvaWQKcGFja2V0IGxvc3MgdW5kZXIgY2VydGFpbiBjaXJjdW1zdGFuY2VzLgoKRml4 ZXM6IDkxNDhlN2NmNzNjZSAoIm1seHN3OiBzcGVjdHJ1bTogQWRkIHBvbGljZXJzIGZvciB0cmFw IGdyb3VwcyIpClNpZ25lZC1vZmYtYnk6IFNoYWxvbSBUb2xlZG8gPHNoYWxvbXRAbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jIHwgMSAtCiAxIGZp bGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHhzdy9zcGVjdHJ1bS5jCmluZGV4IDMwYmIyYzUzM2NlYy4uYWRhNjQ0ZDkwMDI5IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMKQEAg LTM1MTksNyArMzUxOSw2IEBAIHN0YXRpYyBpbnQgbWx4c3dfc3BfY3B1X3BvbGljZXJzX3NldChz dHJ1Y3QgbWx4c3dfY29yZSAqbWx4c3dfY29yZSkKIAkJCWJ1cnN0X3NpemUgPSA3OwogCQkJYnJl YWs7CiAJCWNhc2UgTUxYU1dfUkVHX0hUR1RfVFJBUF9HUk9VUF9TUF9JUDJNRToKLQkJCWlzX2J5 dGVzID0gdHJ1ZTsKIAkJCXJhdGUgPSA0ICogMTAyNDsKIAkJCWJ1cnN0X3NpemUgPSA0OwogCQkJ YnJlYWs7Ci0tIAoyLjE5LjEKCgpGcm9tIGExNzJiN2YxYjM0MTkxNjAyMmM0ZjI2MzFiOTI1OWRk ZDhiNWVmMTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBXYWhyZW4gPHN0 ZWZhbi53YWhyZW5AaTJzZS5jb20+CkRhdGU6IFRodSwgOCBOb3YgMjAxOCAyMDozODoyNiArMDEw MApTdWJqZWN0OiBbUEFUQ0ggNDEvNDNdIG5ldDogc21zYzk1eHg6IEZpeCBNVFUgcmFuZ2UKClsg VXBzdHJlYW0gY29tbWl0IDg1YjE4YjAyMzdjZTk5ODZhODFhMWI5NTM0YjVlMmVlMTE2ZjU1MDQg XQoKVGhlIGNvbW1pdCBmNzdmMGFlZTRkYTQgKCJuZXQ6IHVzZSBjb3JlIE1UVSByYW5nZSBjaGVj a2luZyBpbiBVU0IgTklDCmRyaXZlcnMiKSBpbnRyb2R1Y2UgYSBjb21tb24gTVRVIGhhbmRsaW5n IGZvciB1c2JuZXQuIEJ1dCBpdCdzIG1pc3NpbmcKdGhlIG5lY2Vzc2FyeSBjaGFuZ2VzIGZvciBz bXNjOTV4eC4gU28gc2V0IHRoZSBNVFUgcmFuZ2UgYWNjb3JkaW5nbHkuCgpUaGlzIHBhdGNoIGhh cyBiZWVuIHRlc3RlZCBvbiBhIFJhc3BiZXJyeSBQaSAzLgoKRml4ZXM6IGY3N2YwYWVlNGRhNCAo Im5ldDogdXNlIGNvcmUgTVRVIHJhbmdlIGNoZWNraW5nIGluIFVTQiBOSUMgZHJpdmVycyIpClNp Z25lZC1vZmYtYnk6IFN0ZWZhbiBXYWhyZW4gPHN0ZWZhbi53YWhyZW5AaTJzZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC91c2Ivc21zYzk1eHguYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYyBiL2RyaXZlcnMv bmV0L3VzYi9zbXNjOTV4eC5jCmluZGV4IDI2MmU3YTNjMjNjYi4uNTk3NDQ3OGI1YmU0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYworKysgYi9kcml2ZXJzL25ldC91c2Iv c21zYzk1eHguYwpAQCAtMTMyMSw2ICsxMzIxLDggQEAgc3RhdGljIGludCBzbXNjOTV4eF9iaW5k KHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpCiAJZGV2LT5u ZXQtPmV0aHRvb2xfb3BzID0gJnNtc2M5NXh4X2V0aHRvb2xfb3BzOwogCWRldi0+bmV0LT5mbGFn cyB8PSBJRkZfTVVMVElDQVNUOwogCWRldi0+bmV0LT5oYXJkX2hlYWRlcl9sZW4gKz0gU01TQzk1 WFhfVFhfT1ZFUkhFQURfQ1NVTTsKKwlkZXYtPm5ldC0+bWluX210dSA9IEVUSF9NSU5fTVRVOwor CWRldi0+bmV0LT5tYXhfbXR1ID0gRVRIX0RBVEFfTEVOOwogCWRldi0+aGFyZF9tdHUgPSBkZXYt Pm5ldC0+bXR1ICsgZGV2LT5uZXQtPmhhcmRfaGVhZGVyX2xlbjsKIAogCXBkYXRhLT5kZXYgPSBk ZXY7Ci0tIAoyLjE5LjEKCgpGcm9tIGZhMTQwODExOGI1NGMxNGNkYTIwMDI0Y2VjOWMyZTU3N2M0 MzIyYzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIEhvd2VsbHMgPGRob3dl bGxzQHJlZGhhdC5jb20+CkRhdGU6IFRodSwgMSBOb3YgMjAxOCAxMzozOTo1MyArMDAwMApTdWJq ZWN0OiBbUEFUQ0ggNDIvNDNdIHJ4cnBjOiBGaXggbG9ja3VwIGR1ZSB0byBubyBlcnJvciBiYWNr b2ZmIGFmdGVyIGFjawogdHJhbnNtaXQgZXJyb3IKClsgVXBzdHJlYW0gY29tbWl0IGM3ZTg2YWNm Y2VlMzA3OTRkYzk5YTA3NTk5MjRiZjdiOWQ0M2YxY2EgXQoKSWYgdGhlIG5ldHdvcmsgYmVjb21l cyAocGFydGlhbGx5KSB1bmF2YWlsYWJsZSwgc2F5IGJ5IGRpc2FibGluZyBJUHY2LCB0aGUKYmFj a2dyb3VuZCBBQ0sgdHJhbnNtaXNzaW9uIHJvdXRpbmUgY2FuIGdldCBpdHNlbGYgaW50byBhIHRp enp5IGJ5CnByb3Bvc2luZyBpbW1lZGlhdGUgQUNLIHJldHJhbnNtaXNzaW9uLiAgU2luY2Ugd2Un cmUgaW4gdGhlIGNhbGwgZXZlbnQKcHJvY2Vzc29yLCB0aGF0IGhhcHBlbnMgaW1tZWRpYXRlbHkg d2l0aG91dCByZXR1cm5pbmcgdG8gdGhlIHdvcmtxdWV1ZQptYW5hZ2VyLgoKVGhlIGNvbmRpdGlv biBzaG91bGQgY2xlYXIgYWZ0ZXIgYSB3aGlsZSB3aGVuIGVpdGhlciB0aGUgbmV0d29yayBjb21l cyBiYWNrCm9yIHRoZSBjYWxsIHRpbWVzIG91dC4KCkZpeCB0aGlzIGJ5OgoKICgxKSBXaGVuIHJl LXByb3Bvc2luZyBhbiBBQ0sgb24gZmFpbGVkIFR4LCBkb24ndCBzY2hlZHVsZSBpdCBpbW1lZGlh dGVseS4KICAgICBUaGlzIHdpbGwgYWxsb3cgYSBjZXJ0YWluIGFtb3VudCBvZiB0aW1lIHRvIGVs YXBzZSBiZWZvcmUgd2UgdHJ5CiAgICAgYWdhaW4uCgogKDIpIEVuZm9yY2UgYSByZXR1cm4gdG8g dGhlIHdvcmtxdWV1ZSBtYW5hZ2VyIGFmdGVyIGEgY2VydGFpbiBudW1iZXIgb2YKICAgICBpdGVy YXRpb25zIG9mIHRoZSBjYWxsIHByb2Nlc3NpbmcgbG9vcC4KCiAoMykgQWRkIGEgYmFja29mZiBk ZWxheSB0aGF0IGluY3JlYXNlcyB0aGUgZGVsYXkgb24gZGVmZXJyZWQgQUNLcyBieSBhCiAgICAg amlmZnkgcGVyIGZhaWxlZCB0cmFuc21pc3Npb24gdG8gYSBsaW1pdCBvZiBIWi4gIFRoZSBiYWNr b2ZmIGRlbGF5IGlzCiAgICAgY2xlYXJlZCBvbiBhIHN1Y2Nlc3NmdWwgcmV0dXJuIGZyb20ga2Vy bmVsX3NlbmRtc2coKS4KCiAoNCkgQ2FuY2VsIGNhbGxzIGltbWVkaWF0ZWx5IGlmIHRoZSBvcGVu aW5nIHNlbmRtc2cgZmFpbHMuICBUaGUgbGF5ZXIKICAgICBhYm92ZSBjYW4gYXJyYW5nZSByZXRy YW5zbWlzc2lvbiBvciByb3RhdGUgdG8gYW5vdGhlciBzZXJ2ZXIuCgpGaXhlczogMjQ4ZjIxOWNi OGJjICgicnhycGM6IFJld3JpdGUgdGhlIGRhdGEgYW5kIGFjayBoYW5kbGluZyBjb2RlIikKU2ln bmVkLW9mZi1ieTogRGF2aWQgSG93ZWxscyA8ZGhvd2VsbHNAcmVkaGF0LmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9yeHJw Yy9hci1pbnRlcm5hbC5oIHwgIDEgKwogbmV0L3J4cnBjL2NhbGxfZXZlbnQuYyAgfCAxOCArKysr KysrKysrKysrKy0tLS0KIG5ldC9yeHJwYy9vdXRwdXQuYyAgICAgIHwgMzUgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygr KSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcnhycGMvYXItaW50ZXJuYWwuaCBi L25ldC9yeHJwYy9hci1pbnRlcm5hbC5oCmluZGV4IGE2ZTZjYWU4MmMzMC4uMDNlMGZjOGMxODNm IDEwMDY0NAotLS0gYS9uZXQvcnhycGMvYXItaW50ZXJuYWwuaAorKysgYi9uZXQvcnhycGMvYXIt aW50ZXJuYWwuaApAQCAtNjExLDYgKzYxMSw3IEBAIHN0cnVjdCByeHJwY19jYWxsIHsKIAkJCQkJ CSAqIG5vdCBoYXJkLUFDSydkIHBhY2tldCBmb2xsb3dzIHRoaXMuCiAJCQkJCQkgKi8KIAlyeHJw Y19zZXFfdAkJdHhfdG9wOwkJLyogSGlnaGVzdCBUeCBzbG90IGFsbG9jYXRlZC4gKi8KKwl1MTYJ CQl0eF9iYWNrb2ZmOwkvKiBEZWxheSB0byBpbnNlcnQgZHVlIHRvIFR4IGZhaWx1cmUgKi8KIAog CS8qIFRDUC1zdHlsZSBzbG93LXN0YXJ0IGNvbmdlc3Rpb24gY29udHJvbCBbUkZDNTY4MV0uICBT aW5jZSB0aGUgU01TUwogCSAqIGlzIGZpeGVkLCB3ZSBrZWVwIHRoZXNlIG51bWJlcnMgaW4gdGVy bXMgb2Ygc2VnbWVudHMgKGllLiBEQVRBCmRpZmYgLS1naXQgYS9uZXQvcnhycGMvY2FsbF9ldmVu dC5jIGIvbmV0L3J4cnBjL2NhbGxfZXZlbnQuYwppbmRleCA4ZTc0MzRlOTIwOTcuLjQ2OGVmYzM2 NjBjMCAxMDA2NDQKLS0tIGEvbmV0L3J4cnBjL2NhbGxfZXZlbnQuYworKysgYi9uZXQvcnhycGMv Y2FsbF9ldmVudC5jCkBAIC0xMjMsNiArMTIzLDcgQEAgc3RhdGljIHZvaWQgX19yeHJwY19wcm9w b3NlX0FDSyhzdHJ1Y3QgcnhycGNfY2FsbCAqY2FsbCwgdTggYWNrX3JlYXNvbiwKIAkJZWxzZQog CQkJYWNrX2F0ID0gZXhwaXJ5OwogCisJCWFja19hdCArPSBSRUFEX09OQ0UoY2FsbC0+dHhfYmFj a29mZik7CiAJCWFja19hdCArPSBub3c7CiAJCWlmICh0aW1lX2JlZm9yZShhY2tfYXQsIGNhbGwt PmFja19hdCkpIHsKIAkJCVdSSVRFX09OQ0UoY2FsbC0+YWNrX2F0LCBhY2tfYXQpOwpAQCAtMzEx LDYgKzMxMiw3IEBAIHZvaWQgcnhycGNfcHJvY2Vzc19jYWxsKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCByeHJwY19jYWxsLCBwcm9jZXNzb3Ip OwogCXJ4cnBjX3NlcmlhbF90ICpzZW5kX2FjazsKIAl1bnNpZ25lZCBsb25nIG5vdywgbmV4dCwg dDsKKwl1bnNpZ25lZCBpbnQgaXRlcmF0aW9ucyA9IDA7CiAKIAlyeHJwY19zZWVfY2FsbChjYWxs KTsKIApAQCAtMzE5LDYgKzMyMSwxMSBAQCB2b2lkIHJ4cnBjX3Byb2Nlc3NfY2FsbChzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCiAJICAgICAgIGNhbGwtPmRlYnVnX2lkLCByeHJwY19jYWxsX3N0 YXRlc1tjYWxsLT5zdGF0ZV0sIGNhbGwtPmV2ZW50cyk7CiAKIHJlY2hlY2tfc3RhdGU6CisJLyog TGltaXQgdGhlIG51bWJlciBvZiB0aW1lcyB3ZSBkbyB0aGlzIGJlZm9yZSByZXR1cm5pbmcgdG8g dGhlIG1hbmFnZXIgKi8KKwlpdGVyYXRpb25zKys7CisJaWYgKGl0ZXJhdGlvbnMgPiA1KQorCQln b3RvIHJlcXVldWU7CisKIAlpZiAodGVzdF9hbmRfY2xlYXJfYml0KFJYUlBDX0NBTExfRVZfQUJP UlQsICZjYWxsLT5ldmVudHMpKSB7CiAJCXJ4cnBjX3NlbmRfYWJvcnRfcGFja2V0KGNhbGwpOwog CQlnb3RvIHJlY2hlY2tfc3RhdGU7CkBAIC00NDcsMTMgKzQ1NCwxNiBAQCB2b2lkIHJ4cnBjX3By b2Nlc3NfY2FsbChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJcnhycGNfcmVkdWNlX2NhbGxf dGltZXIoY2FsbCwgbmV4dCwgbm93LCByeHJwY190aW1lcl9yZXN0YXJ0KTsKIAogCS8qIG90aGVy IGV2ZW50cyBtYXkgaGF2ZSBiZWVuIHJhaXNlZCBzaW5jZSB3ZSBzdGFydGVkIGNoZWNraW5nICov Ci0JaWYgKGNhbGwtPmV2ZW50cyAmJiBjYWxsLT5zdGF0ZSA8IFJYUlBDX0NBTExfQ09NUExFVEUp IHsKLQkJX19yeHJwY19xdWV1ZV9jYWxsKGNhbGwpOwotCQlnb3RvIG91dDsKLQl9CisJaWYgKGNh bGwtPmV2ZW50cyAmJiBjYWxsLT5zdGF0ZSA8IFJYUlBDX0NBTExfQ09NUExFVEUpCisJCWdvdG8g cmVxdWV1ZTsKIAogb3V0X3B1dDoKIAlyeHJwY19wdXRfY2FsbChjYWxsLCByeHJwY19jYWxsX3B1 dCk7CiBvdXQ6CiAJX2xlYXZlKCIiKTsKKwlyZXR1cm47CisKK3JlcXVldWU6CisJX19yeHJwY19x dWV1ZV9jYWxsKGNhbGwpOworCWdvdG8gb3V0OwogfQpkaWZmIC0tZ2l0IGEvbmV0L3J4cnBjL291 dHB1dC5jIGIvbmV0L3J4cnBjL291dHB1dC5jCmluZGV4IGExNDFlZTNhYjgxMi4uMzQ1ZGMxYzVm ZTcyIDEwMDY0NAotLS0gYS9uZXQvcnhycGMvb3V0cHV0LmMKKysrIGIvbmV0L3J4cnBjL291dHB1 dC5jCkBAIC0zNCw2ICszNCwyMSBAQCBzdHJ1Y3QgcnhycGNfYWJvcnRfYnVmZmVyIHsKIAogc3Rh dGljIGNvbnN0IGNoYXIgcnhycGNfa2VlcGFsaXZlX3N0cmluZ1tdID0gIiI7CiAKKy8qCisgKiBJ bmNyZWFzZSBUeCBiYWNrb2ZmIG9uIHRyYW5zbWlzc2lvbiBmYWlsdXJlIGFuZCBjbGVhciBpdCBv biBzdWNjZXNzLgorICovCitzdGF0aWMgdm9pZCByeHJwY190eF9iYWNrb2ZmKHN0cnVjdCByeHJw Y19jYWxsICpjYWxsLCBpbnQgcmV0KQoreworCWlmIChyZXQgPCAwKSB7CisJCXUxNiB0eF9iYWNr b2ZmID0gUkVBRF9PTkNFKGNhbGwtPnR4X2JhY2tvZmYpOworCisJCWlmICh0eF9iYWNrb2ZmIDwg SFopCisJCQlXUklURV9PTkNFKGNhbGwtPnR4X2JhY2tvZmYsIHR4X2JhY2tvZmYgKyAxKTsKKwl9 IGVsc2UgeworCQlXUklURV9PTkNFKGNhbGwtPnR4X2JhY2tvZmYsIDApOworCX0KK30KKwogLyoK ICAqIEFycmFuZ2UgZm9yIGEga2VlcGFsaXZlIHBpbmcgYSBjZXJ0YWluIHRpbWUgYWZ0ZXIgd2Ug bGFzdCB0cmFuc21pdHRlZC4gIFRoaXMKICAqIGxldHMgdGhlIGZhciBzaWRlIGtub3cgd2UncmUg c3RpbGwgaW50ZXJlc3RlZCBpbiB0aGlzIGNhbGwgYW5kIGhlbHBzIGtlZXAKQEAgLTIxMCw2ICsy MjUsNyBAQCBpbnQgcnhycGNfc2VuZF9hY2tfcGFja2V0KHN0cnVjdCByeHJwY19jYWxsICpjYWxs LCBib29sIHBpbmcsCiAJZWxzZQogCQl0cmFjZV9yeHJwY190eF9wYWNrZXQoY2FsbC0+ZGVidWdf aWQsICZwa3QtPndoZHIsCiAJCQkJICAgICAgcnhycGNfdHhfcG9pbnRfY2FsbF9hY2spOworCXJ4 cnBjX3R4X2JhY2tvZmYoY2FsbCwgcmV0KTsKIAogCWlmIChjYWxsLT5zdGF0ZSA8IFJYUlBDX0NB TExfQ09NUExFVEUpIHsKIAkJaWYgKHJldCA8IDApIHsKQEAgLTIxOCw3ICsyMzQsNyBAQCBpbnQg cnhycGNfc2VuZF9hY2tfcGFja2V0KHN0cnVjdCByeHJwY19jYWxsICpjYWxsLCBib29sIHBpbmcs CiAJCQlyeHJwY19wcm9wb3NlX0FDSyhjYWxsLCBwa3QtPmFjay5yZWFzb24sCiAJCQkJCSAgbnRv aHMocGt0LT5hY2subWF4U2tldyksCiAJCQkJCSAgbnRvaGwocGt0LT5hY2suc2VyaWFsKSwKLQkJ CQkJICB0cnVlLCB0cnVlLAorCQkJCQkgIGZhbHNlLCB0cnVlLAogCQkJCQkgIHJ4cnBjX3Byb3Bv c2VfYWNrX3JldHJ5X3R4KTsKIAkJfSBlbHNlIHsKIAkJCXNwaW5fbG9ja19iaCgmY2FsbC0+bG9j ayk7CkBAIC0zMDAsNyArMzE2LDcgQEAgaW50IHJ4cnBjX3NlbmRfYWJvcnRfcGFja2V0KHN0cnVj dCByeHJwY19jYWxsICpjYWxsKQogCWVsc2UKIAkJdHJhY2VfcnhycGNfdHhfcGFja2V0KGNhbGwt PmRlYnVnX2lkLCAmcGt0LndoZHIsCiAJCQkJICAgICAgcnhycGNfdHhfcG9pbnRfY2FsbF9hYm9y dCk7Ci0KKwlyeHJwY190eF9iYWNrb2ZmKGNhbGwsIHJldCk7CiAKIAlyeHJwY19wdXRfY29ubmVj dGlvbihjb25uKTsKIAlyZXR1cm4gcmV0OwpAQCAtNDExLDYgKzQyNyw3IEBAIGludCByeHJwY19z ZW5kX2RhdGFfcGFja2V0KHN0cnVjdCByeHJwY19jYWxsICpjYWxsLCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLAogCWVsc2UKIAkJdHJhY2VfcnhycGNfdHhfcGFja2V0KGNhbGwtPmRlYnVnX2lkLCAmd2hk ciwKIAkJCQkgICAgICByeHJwY190eF9wb2ludF9jYWxsX2RhdGFfbm9mcmFnKTsKKwlyeHJwY190 eF9iYWNrb2ZmKGNhbGwsIHJldCk7CiAJaWYgKHJldCA9PSAtRU1TR1NJWkUpCiAJCWdvdG8gc2Vu ZF9mcmFnbWVudGFibGU7CiAKQEAgLTQ0NSw5ICs0NjIsMTggQEAgaW50IHJ4cnBjX3NlbmRfZGF0 YV9wYWNrZXQoc3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwsIHN0cnVjdCBza19idWZmICpza2IsCiAJ CQlyeHJwY19yZWR1Y2VfY2FsbF90aW1lcihjYWxsLCBleHBlY3RfcnhfYnksIG5vd2osCiAJCQkJ CQlyeHJwY190aW1lcl9zZXRfZm9yX25vcm1hbCk7CiAJCX0KLQl9CiAKLQlyeHJwY19zZXRfa2Vl cGFsaXZlKGNhbGwpOworCQlyeHJwY19zZXRfa2VlcGFsaXZlKGNhbGwpOworCX0gZWxzZSB7CisJ CS8qIENhbmNlbCB0aGUgY2FsbCBpZiB0aGUgaW5pdGlhbCB0cmFuc21pc3Npb24gZmFpbHMsCisJ CSAqIHBhcnRpY3VsYXJseSBpZiB0aGF0J3MgZHVlIHRvIG5ldHdvcmsgcm91dGluZyBpc3N1ZXMg dGhhdAorCQkgKiBhcmVuJ3QgZ29pbmcgYXdheSBhbnl0aW1lIHNvb24uICBUaGUgbGF5ZXIgYWJv dmUgY2FuIGFycmFuZ2UKKwkJICogdGhlIHJldHJhbnNtaXNzaW9uLgorCQkgKi8KKwkJaWYgKCF0 ZXN0X2FuZF9zZXRfYml0KFJYUlBDX0NBTExfQkVHQU5fUlhfVElNRVIsICZjYWxsLT5mbGFncykp CisJCQlyeHJwY19zZXRfY2FsbF9jb21wbGV0aW9uKGNhbGwsIFJYUlBDX0NBTExfTE9DQUxfRVJS T1IsCisJCQkJCQkgIFJYX1VTRVJfQUJPUlQsIHJldCk7CisJfQogCiAJX2xlYXZlKCIgPSAlZCBb JXVdIiwgcmV0LCBjYWxsLT5wZWVyLT5tYXhkYXRhKTsKIAlyZXR1cm4gcmV0OwpAQCAtNTA2LDYg KzUzMiw3IEBAIGludCByeHJwY19zZW5kX2RhdGFfcGFja2V0KHN0cnVjdCByeHJwY19jYWxsICpj YWxsLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWVsc2UKIAkJdHJhY2VfcnhycGNfdHhfcGFja2V0 KGNhbGwtPmRlYnVnX2lkLCAmd2hkciwKIAkJCQkgICAgICByeHJwY190eF9wb2ludF9jYWxsX2Rh dGFfZnJhZyk7CisJcnhycGNfdHhfYmFja29mZihjYWxsLCByZXQpOwogCiAJdXBfd3JpdGUoJmNv bm4tPnBhcmFtcy5sb2NhbC0+ZGVmcmFnX3NlbSk7CiAJZ290byBkb25lOwotLSAKMi4xOS4xCgoK RnJvbSA2NTUwZGUzMmQyMDYyY2Q2Y2RjNmJlNDljOGM4MjIwNTY0MTIwYTM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmllZGVyIFNjaHJlbXBmIDxmcmllZGVyLnNjaHJlbXBmQGtv bnRyb24uZGU+CkRhdGU6IFdlZCwgMzEgT2N0IDIwMTggMjI6NTI6MTkgKzAxMDAKU3ViamVjdDog W1BBVENIIDQzLzQzXSB1c2JuZXQ6IHNtc2M5NXh4OiBkaXNhYmxlIGNhcnJpZXIgY2hlY2sgd2hp bGUKIHN1c3BlbmRpbmcKClsgVXBzdHJlYW0gY29tbWl0IDdiOTAwZWFkNmNjNjZiMmVlODczY2Iw NDJkZmJhMTY5YWE2OGI1NmMgXQoKV2UgbmVlZCB0byBtYWtlIHN1cmUsIHRoYXQgdGhlIGNhcnJp ZXIgY2hlY2sgcG9sbGluZyBpcyBkaXNhYmxlZAp3aGlsZSBzdXNwZW5kaW5nLiBPdGhlcndpc2Ug d2UgY2FuIGVuZCB1cCB3aXRoIHVzYm5ldF9yZWFkX2NtZCgpCmJlaW5nIGlzc3VlZCB3aGVuIG9u bHkgdXNibmV0X3JlYWRfY21kX25vcG0oKSBpcyBhbGxvd2VkLiBJZiB0aGlzCmhhcHBlbnMsIHJl YWQgb3BlcmF0aW9ucyBsb2NrIHVwLgoKRml4ZXM6IGQ2OWQxNjk0OTMgKCJ1c2JuZXQ6IHNtc2M5 NXh4OiBmaXggbGluayBkZXRlY3Rpb24gZm9yIGRpc2FibGVkIGF1dG9uZWdvdGlhdGlvbiIpClNp Z25lZC1vZmYtYnk6IEZyaWVkZXIgU2NocmVtcGYgPGZyaWVkZXIuc2NocmVtcGZAa29udHJvbi5k ZT4KUmV2aWV3ZWQtYnk6IFJhZ2h1cmFtIENoYXJ5IEogPFJhZ2h1cmFtQ2hhcnkuSmFsbGlwYWxs aUBtaWNyb2NoaXAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmMgfCA3ICsrKysrKysK IDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC91c2Ivc21zYzk1eHguYyBiL2RyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jCmluZGV4IDU5NzQ0 NzhiNWJlNC4uZjJkMDFjYjZmOTU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2Ivc21zYzk1 eHguYworKysgYi9kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYwpAQCAtMTYwMCw2ICsxNjAwLDgg QEAgc3RhdGljIGludCBzbXNjOTV4eF9zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRm LCBwbV9tZXNzYWdlX3QgbWVzc2FnZSkKIAkJcmV0dXJuIHJldDsKIAl9CiAKKwljYW5jZWxfZGVs YXllZF93b3JrX3N5bmMoJnBkYXRhLT5jYXJyaWVyX2NoZWNrKTsKKwogCWlmIChwZGF0YS0+c3Vz cGVuZF9mbGFncykgewogCQluZXRkZXZfd2FybihkZXYtPm5ldCwgImVycm9yIGR1cmluZyBsYXN0 IHJlc3VtZVxuIik7CiAJCXBkYXRhLT5zdXNwZW5kX2ZsYWdzID0gMDsKQEAgLTE4NDIsNiArMTg0 NCwxMSBAQCBzdGF0aWMgaW50IHNtc2M5NXh4X3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2Ug KmludGYsIHBtX21lc3NhZ2VfdCBtZXNzYWdlKQogCSAqLwogCWlmIChyZXQgJiYgUE1TR19JU19B VVRPKG1lc3NhZ2UpKQogCQl1c2JuZXRfcmVzdW1lKGludGYpOworCisJaWYgKHJldCkKKwkJc2No ZWR1bGVfZGVsYXllZF93b3JrKCZwZGF0YS0+Y2Fycmllcl9jaGVjaywKKwkJCQkgICAgICBDQVJS SUVSX0NIRUNLX0RFTEFZKTsKKwogCXJldHVybiByZXQ7CiB9CiAKLS0gCjIuMTkuMQoK ----Next_Part(Tue_Nov_20_19_49_49_2018_073)----