From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:51350 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752111AbdLLPot (ORCPT ); Tue, 12 Dec 2017 10:44:49 -0500 Received: from localhost (unknown [38.140.131.194]) (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 AD045123DF2F0 for ; Tue, 12 Dec 2017 07:44:47 -0800 (PST) Date: Tue, 12 Dec 2017 10:44:45 -0500 (EST) Message-Id: <20171212.104445.447207142997489386.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_Dec_12_10_44_45_2017_308)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Tue_Dec_12_10_44_45_2017_308)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.9 and v4.14 -stable, respectively. Thank you! ----Next_Part(Tue_Dec_12_10_44_45_2017_308)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_49.mbox" RnJvbSBhNGFiZDAwNjRhNjg1NGEzM2M0M2YzNDAxNTI4YTE5OWFkZDUwY2IyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTZWJhc3RpYW4gU2pvaG9sbSA8c3Nqb2hvbG1AbWFjLmNvbT4K RGF0ZTogTW9uLCAyMCBOb3YgMjAxNyAxOTowNToxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDEv MTVdIG5ldDogcW1pX3d3YW46IGFkZCBRdWVjdGVsIEJHOTYgMmM3YzowMjk2Ck1JTUUtVmVyc2lv bjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBmOTQwOWU3ZjA4NmZhNmM0 NjIzNzY5YjRiMmY0ZjE3YTAyNGQ4MTQzIF0KClF1ZWN0ZWwgQkc5NiBpcyBhbiBRdWFsY29tbSBN RE05MjA2IGJhc2VkIElvVCBtb2RlbSwgc3VwcG9ydGluZyBib3RoCkNBVC1NIGFuZCBOQi1Jb1Qu IFRlc3RlZCBoYXJkd2FyZSBpcyBCRzk2IG1vdW50ZWQgb24gUXVlY3RlbCBkZXZlbG9wbWVudApi b2FyZCAoRVZCKS4gVGhlIFVTQiBpZCBpcyBhZGRlZCB0byBxbWlfd3dhbi5jIHRvIGFsbG93IFFN SQpjb21tdW5pY2F0aW9uIHdpdGggdGhlIEJHOTYuCgpTaWduZWQtb2ZmLWJ5OiBTZWJhc3RpYW4g U2pvaG9sbSA8c3Nqb2hvbG1AbWFjLmNvbT4KQWNrZWQtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBt b3JrLm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5j IGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKaW5kZXggOWNmMTFjODM5OTNhLi45N2ExNmUy M2MxOWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCisrKyBiL2RyaXZl cnMvbmV0L3VzYi9xbWlfd3dhbi5jCkBAIC05MzYsNiArOTM2LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1Y3RzW10gPSB7CiAJe1FNSV9GSVhFRF9JTlRGKDB4MWUw ZSwgMHg5MDAxLCA1KX0sCS8qIFNJTUNvbSA3MjMwRSAqLwogCXtRTUlfUVVJUktfU0VUX0RUUigw eDJjN2MsIDB4MDEyNSwgNCl9LAkvKiBRdWVjdGVsIEVDMjUsIEVDMjAgUjIuMCAgTWluaSBQQ0ll ICovCiAJe1FNSV9RVUlSS19TRVRfRFRSKDB4MmM3YywgMHgwMTIxLCA0KX0sCS8qIFF1ZWN0ZWwg RUMyMSBNaW5pIFBDSWUgKi8KKwl7UU1JX0ZJWEVEX0lOVEYoMHgyYzdjLCAweDAyOTYsIDQpfSwJ LyogUXVlY3RlbCBCRzk2ICovCiAKIAkvKiA0LiBHb2JpIDEwMDAgZGV2aWNlcyAqLwogCXtRTUlf R09CSTFLX0RFVklDRSgweDA1YzYsIDB4OTIxMil9LAkvKiBBY2VyIEdvYmkgTW9kZW0gRGV2aWNl ICovCi0tIAoyLjE0LjMKCgpGcm9tIGE5ZTIwNDA0MzBiODQ5MTQ2ZDhlYzIzMTQ4NmNhNTQwMTYy NDE1YjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBXaWVkbWFubiA8andp QGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogV2VkLCAxOCBPY3QgMjAxNyAxNzo0MDoxNyArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDIvMTVdIHMzOTAvcWV0aDogZml4IGVhcmx5IGV4aXQgZnJvbSBl cnJvciBwYXRoCgpbIFVwc3RyZWFtIGNvbW1pdCA4M2NmNzlhMmZlYzNjZjQ5OWViNmNiOWViNjA4 NjU2ZmMyYTgyNzc2IF0KCldoZW4gdGhlIGFsbG9jYXRpb24gb2YgdGhlIGFkZHIgYnVmZmVyIGZh aWxzLCB3ZSBuZWVkIHRvIGZyZWUKb3VyIHJlZmNvdW50IG9uIHRoZSBpbmV0ZGV2aWNlIGJlZm9y ZSByZXR1cm5pbmcuCgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52 bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jIHwgNiArKysrLS0K IDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQv cWV0aF9sM19tYWluLmMKaW5kZXggMDNhMjYxOTE2NmNhLi4yMDRlZGIwYjY5YTUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25l dC9xZXRoX2wzX21haW4uYwpAQCAtMTU5Myw3ICsxNTkzLDcgQEAgc3RhdGljIHZvaWQgcWV0aF9s M19mcmVlX3ZsYW5fYWRkcmVzc2VzNChzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkLAogCiAJYWRkciA9 IHFldGhfbDNfZ2V0X2FkZHJfYnVmZmVyKFFFVEhfUFJPVF9JUFY0KTsKIAlpZiAoIWFkZHIpCi0J CXJldHVybjsKKwkJZ290byBvdXQ7CiAKIAlzcGluX2xvY2tfYmgoJmNhcmQtPmlwX2xvY2spOwog CkBAIC0xNjA3LDYgKzE2MDcsNyBAQCBzdGF0aWMgdm9pZCBxZXRoX2wzX2ZyZWVfdmxhbl9hZGRy ZXNzZXM0KHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsCiAJc3Bpbl91bmxvY2tfYmgoJmNhcmQtPmlw X2xvY2spOwogCiAJa2ZyZWUoYWRkcik7CitvdXQ6CiAJaW5fZGV2X3B1dChpbl9kZXYpOwogfQog CkBAIC0xNjMxLDcgKzE2MzIsNyBAQCBzdGF0aWMgdm9pZCBxZXRoX2wzX2ZyZWVfdmxhbl9hZGRy ZXNzZXM2KHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsCiAKIAlhZGRyID0gcWV0aF9sM19nZXRfYWRk cl9idWZmZXIoUUVUSF9QUk9UX0lQVjYpOwogCWlmICghYWRkcikKLQkJcmV0dXJuOworCQlnb3Rv IG91dDsKIAogCXNwaW5fbG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CiAKQEAgLTE2NDYsNiArMTY0 Nyw3IEBAIHN0YXRpYyB2b2lkIHFldGhfbDNfZnJlZV92bGFuX2FkZHJlc3NlczYoc3RydWN0IHFl dGhfY2FyZCAqY2FyZCwKIAlzcGluX3VubG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CiAKIAlrZnJl ZShhZGRyKTsKK291dDoKIAlpbjZfZGV2X3B1dChpbjZfZGV2KTsKICNlbmRpZiAvKiBDT05GSUdf UUVUSF9JUFY2ICovCiB9Ci0tIAoyLjE0LjMKCgpGcm9tIDI5NjI1M2E4NmY1MjFlMWRjMjY5ZGIw MTRlN2UzMjFiY2ZmODU4MzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvbiBNYWxv eSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KRGF0ZTogTW9uLCA0IERlYyAyMDE3IDIyOjAwOjIw ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8xNV0gdGlwYzogZml4IG1lbW9yeSBsZWFrIGluIHRp cGNfYWNjZXB0X2Zyb21fc29jaygpCgpbIFVwc3RyZWFtIGNvbW1pdCBhN2Q1ZjEwN2I0OTc4ZTA4 ZWVhYjU5OWVlNzQ0OWFmMzRkMDM0MDUzIF0KCldoZW4gdGhlIGZ1bmN0aW9uIHRpcGNfYWNjZXB0 X2Zyb21fc29jaygpIGZhaWxzIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZgpzdHJ1Y3QgdGlwY19z dWJzY3JpYmVyIGl0IG9taXRzIHRvIGZyZWUgdGhlIGFscmVhZHkgY3JlYXRlZCBpbnN0YW5jZSBv ZgpzdHJ1Y3QgdGlwY19jb25uIGluc3RhbmNlIGJlZm9yZSBpdCByZXR1cm5zLgoKV2UgZml4IHRo YXQgd2l0aCB0aGlzIGNvbW1pdC4KClJlcG9ydGVkLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+ClNpZ25lZC1vZmYtYnk6IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNz c29uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC90aXBjL3NlcnZlci5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9zZXJ2ZXIuYyBiL25ldC90aXBjL3NlcnZl ci5jCmluZGV4IDNjZDY0MDJlODEyYy4uZjRjMWIxOGM1ZmIwIDEwMDY0NAotLS0gYS9uZXQvdGlw Yy9zZXJ2ZXIuYworKysgYi9uZXQvdGlwYy9zZXJ2ZXIuYwpAQCAtMzEzLDYgKzMxMyw3IEBAIHN0 YXRpYyBpbnQgdGlwY19hY2NlcHRfZnJvbV9zb2NrKHN0cnVjdCB0aXBjX2Nvbm4gKmNvbikKIAlu ZXdjb24tPnVzcl9kYXRhID0gcy0+dGlwY19jb25uX25ldyhuZXdjb24tPmNvbmlkKTsKIAlpZiAo IW5ld2Nvbi0+dXNyX2RhdGEpIHsKIAkJc29ja19yZWxlYXNlKG5ld3NvY2spOworCQljb25uX3B1 dChuZXdjb24pOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKLS0gCjIuMTQuMwoKCkZyb20gNTQ1 NmYwMzBjYzQ1NjRkNzU1ODA2NGY0NTIzMWRkMzI0MTNlN2U1YiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogPT9VVEYtOD9xP0g9QzM9QTVrb249MjBCdWdnZT89IDxIYWFrb24uQnVnZ2VA b3JhY2xlLmNvbT4KRGF0ZTogV2VkLCA2IERlYyAyMDE3IDE3OjE4OjI4ICswMTAwClN1YmplY3Q6 IFtQQVRDSCAwNC8xNV0gcmRzOiBGaXggTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIF9fcmRz X3JkbWFfbWFwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNv bW1pdCBmMzA2OWM2ZDMzZjZhZTYzYTE2Njg3MzdiYzc4YWFhYTUxYmZmN2NhIF0KClRoaXMgaXMg YSBmaXggZm9yIHN5emthbGxlcjcxOTU2OSwgd2hlcmUgbWVtb3J5IHJlZ2lzdHJhdGlvbiB3YXMK YXR0ZW1wdGVkIHdpdGhvdXQgYW55IHVuZGVybHlpbmcgdHJhbnNwb3J0IGJlaW5nIGxvYWRlZC4K CkFuYWx5c2lzIG9mIHRoZSBjYXNlIHJldmVhbHMgdGhhdCBpdCBpcyB0aGUgc2V0c29ja29wdCgp IFJEU19HRVRfTVIKKDIpIGFuZCBSRFNfR0VUX01SX0ZPUl9ERVNUICg3KSB0aGF0IGFyZSB2dWxu ZXJhYmxlLgoKSGVyZSBpcyBhbiBleGFtcGxlIHN0YWNrIHRyYWNlIHdoZW4gdGhlIGJ1ZyBpcyBo aXQ6CgpCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5j ZSBhdCAwMDAwMDAwMDAwMDAwMGMwCklQOiBfX3Jkc19yZG1hX21hcCsweDM2LzB4NDQwIFtyZHNd ClBHRCAyZjkzZDAzMDY3IFA0RCAyZjkzZDAzMDY3IFBVRCAyZjkzZDAyMDY3IFBNRCAwCk9vcHM6 IDAwMDAgWyMxXSBTTVAKTW9kdWxlcyBsaW5rZWQgaW46IGJyaWRnZSBzdHAgbGxjIHR1biBycGNz ZWNfZ3NzX2tyYjUgbmZzdjQKZG5zX3Jlc29sdmVyIG5mcyBmc2NhY2hlIHJkcyBiaW5mbXRfbWlz YyBzYl9lZGFjIGludGVsX3Bvd2VyY2xhbXAKY29yZXRlbXAga3ZtX2ludGVsIGt2bSBpcnFieXBh c3MgY3JjdDEwZGlmX3BjbG11bCBjIHJjMzJfcGNsbXVsCmdoYXNoX2NsbXVsbmlfaW50ZWwgcGNi YyBhZXNuaV9pbnRlbCBjcnlwdG9fc2ltZCBnbHVlX2hlbHBlciBjcnlwdGQKaVRDT193ZHQgbWVp X21lIHNnIGlUQ09fdmVuZG9yX3N1cHBvcnQgaXBtaV9zaSBtZWkgaXBtaV9kZXZpbnRmIG5mc2QK c2hwY2hwIHBjc3BrciBpMmNfaTgwMSBpb2F0ZCBtYSBpcG1pX21zZ2hhbmRsZXIgd21pIGxwY19p Y2ggbWZkX2NvcmUKYXV0aF9ycGNnc3MgbmZzX2FjbCBsb2NrZCBncmFjZSBzdW5ycGMgaXBfdGFi bGVzIGV4dDQgbWJjYWNoZSBqYmQyCm1nYWcyMDAgaTJjX2FsZ29fYml0IGRybV9rbXNfaGVscGVy IGl4Z2JlIHN5c2NvcHlhcmVhIGFoY2kgc3lzZmlsbHJlY3QKc3lzaW1nYmx0IGxpYmFoY2kgbWRp byBmYl9zeXNfZm9wcyB0dG0gcHRwIGxpYmF0YSBzZF9tb2QgbWx4NF9jb3JlIGRybQpjcmMzMmNf aW50ZWwgcHBzX2NvcmUgbWVnYXJhaWRfc2FzIGkyY19jb3JlIGRjYSBkbV9taXJyb3IKZG1fcmVn aW9uX2hhc2ggZG1fbG9nIGRtX21vZApDUFU6IDQ4IFBJRDogNDU3ODcgQ29tbTogcmVwcm9fc2V0 MiBOb3QgdGFpbnRlZCA0LjE0LjItMy5lbDd1ZWsueDg2XzY0ICMyCkhhcmR3YXJlIG5hbWU6IE9y YWNsZSBDb3Jwb3JhdGlvbiBPUkFDTEUgU0VSVkVSIFg1LTJML0FTTSxNT0JPIFRSQVksMlUsIEJJ T1MgMzExMTAwMDAgMDMvMDMvMjAxNwp0YXNrOiBmZmZmODgyZjkxOTBkYjAwIHRhc2suc3RhY2s6 IGZmZmZjOTAwMmI5OTQwMDAKUklQOiAwMDEwOl9fcmRzX3JkbWFfbWFwKzB4MzYvMHg0NDAgW3Jk c10KUlNQOiAwMDE4OmZmZmZjOTAwMmI5OTdkZjAgRUZMQUdTOiAwMDAxMDIwMgpSQVg6IDAwMDAw MDAwMDAwMDAwMDAgUkJYOiBmZmZmODgyZmEyMTgyNTgwIFJDWDogMDAwMDAwMDAwMDAwMDAwMApS RFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiBmZmZmYzkwMDJiOTk3ZTQwIFJESTogZmZmZjg4MmZh MjE4MjU4MApSQlA6IGZmZmZjOTAwMmI5OTdlMzAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTog MDAwMDAwMDAwMDAwMDAwMgpSMTA6IGZmZmY4ODVmYjI5ZTM4MzggUjExOiAwMDAwMDAwMDAwMDAw MDAwIFIxMjogZmZmZjg4MmZhMjE4MjU4MApSMTM6IGZmZmY4ODJmYTIxODI1ODAgUjE0OiAwMDAw MDAwMDAwMDAwMDAyIFIxNTogMDAwMDAwMDAyMDAwMGZmYwpGUzogIDAwMDA3ZmJmZmEyMGI3MDAo MDAwMCkgR1M6ZmZmZjg4MmZiZmI4MDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCkNT OiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKQ1IyOiAwMDAw MDAwMDAwMDAwMGMwIENSMzogMDAwMDAwMmY5OGE2NjAwNiBDUjQ6IDAwMDAwMDAwMDAxNjA2ZTAK Q2FsbCBUcmFjZToKIHJkc19nZXRfbXIrMHg1Ni8weDgwIFtyZHNdCiByZHNfc2V0c29ja29wdCsw eDE3Mi8weDM0MCBbcmRzXQogPyBfX2ZnZXRfbGlnaHQrMHgyNS8weDYwCiA/IF9fZmRnZXQrMHgx My8weDIwCiBTeVNfc2V0c29ja29wdCsweDgwLzB4ZTAKIGRvX3N5c2NhbGxfNjQrMHg2Ny8weDFi MAogZW50cnlfU1lTQ0FMTDY0X3Nsb3dfcGF0aCsweDI1LzB4MjUKUklQOiAwMDMzOjB4N2ZiZmY5 YjExN2Y5ClJTUDogMDAyYjowMDAwN2ZiZmZhMjBhZWQ4IEVGTEFHUzogMDAwMDAyOTMgT1JJR19S QVg6IDAwMDAwMDAwMDAwMDAwMzYKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAw MDBjODRhNCBSQ1g6IDAwMDA3ZmJmZjliMTE3ZjkKUkRYOiAwMDAwMDAwMDAwMDAwMDAyIFJTSTog MDAwMDQwMDAwMDAwMDExNCBSREk6IDAwMDAwMDAwMDAwMDEwOWIKUkJQOiAwMDAwN2ZiZmZhMjBh ZjEwIFIwODogMDAwMDAwMDAwMDAwMDAyMCBSMDk6IDAwMDA3ZmJmZjlkZDc4NjAKUjEwOiAwMDAw MDAwMDIwMDAwZmZjIFIxMTogMDAwMDAwMDAwMDAwMDI5MyBSMTI6IDAwMDAwMDAwMDAwMDAwMDAK UjEzOiAwMDAwN2ZiZmZhMjBiOWMwIFIxNDogMDAwMDdmYmZmYTIwYjcwMCBSMTU6IDAwMDAwMDAw MDAwMDAwMjEKCkNvZGU6IDQxIDU2IDQxIDU1IDQ5IDg5IGZkIDQxIDU0IDUzIDQ4IDgzIGVjIDE4 IDhiIDg3IGYwIDAyIDAwIDAwIDQ4Cjg5IDU1IGQwIDQ4IDg5IDRkIGM4IDg1IGMwIDBmIDg0IDJk IDAzIDAwIDAwIDQ4IDhiIDg3IDAwIDAzIDAwIDAwIDw0OD4KODMgYjggYzAgMDAgMDAgMDAgMDAg MGYgODQgMjUgMDMgMDAgMCAwIDQ4IDhiIDA2IDQ4IDhiIDU2IDA4CgpUaGUgZml4IGlzIHRvIGNo ZWNrIHRoZSBleGlzdGVuY2Ugb2YgYW4gdW5kZXJseWluZyB0cmFuc3BvcnQgaW4KX19yZHNfcmRt YV9tYXAoKS4KClNpZ25lZC1vZmYtYnk6IEjDpWtvbiBCdWdnZSA8aGFha29uLmJ1Z2dlQG9yYWNs ZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpB Y2tlZC1ieTogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRvc2guc2hpbGlta2FyQG9yYWNsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvcmRzL3JkbWEuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9yZHMvcmRtYS5jIGIvbmV0L3Jkcy9yZG1h LmMKaW5kZXggNjBlOTBmNzYxODM4Li5kZTg0OTZlNjA3MzUgMTAwNjQ0Ci0tLSBhL25ldC9yZHMv cmRtYS5jCisrKyBiL25ldC9yZHMvcmRtYS5jCkBAIC0xODMsNyArMTgzLDcgQEAgc3RhdGljIGlu dCBfX3Jkc19yZG1hX21hcChzdHJ1Y3QgcmRzX3NvY2sgKnJzLCBzdHJ1Y3QgcmRzX2dldF9tcl9h cmdzICphcmdzLAogCWxvbmcgaTsKIAlpbnQgcmV0OwogCi0JaWYgKHJzLT5yc19ib3VuZF9hZGRy ID09IDApIHsKKwlpZiAocnMtPnJzX2JvdW5kX2FkZHIgPT0gMCB8fCAhcnMtPnJzX3RyYW5zcG9y dCkgewogCQlyZXQgPSAtRU5PVENPTk47IC8qIFhYWCBub3QgYSBncmVhdCBlcnJubyAqLwogCQln b3RvIG91dDsKIAl9Ci0tIAoyLjE0LjMKCgpGcm9tIDQ1YjVhZTZlMGZjYzJjYzUxMDIyZWY4MzJi NjExY2JhMzhlNTQ4ODAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1 IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAzMCBOb3YgMjAxNyAxMDo0MToxNCAr MDgwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMTVdIHNpdDogdXBkYXRlIGZyYWdfb2ZmIGluZm8KClsg VXBzdHJlYW0gY29tbWl0IGY4NTliNGFmMWM1MjQ5M2VjMjExNzNjY2M3M2QwYjYwMDI5YjViODgg XQoKQWZ0ZXIgcGFyc2luZyB0aGUgc2l0IG5ldGxpbmsgY2hhbmdlIGluZm8sIHdlIGZvcmdldCB0 byB1cGRhdGUgZnJhZ19vZmYgaW4KaXBpcDZfdHVubmVsX3VwZGF0ZSgpLiBGaXggaXQgYnkgYXNz aWduaW5nIGZyYWdfb2ZmIHdpdGggbmV3IHZhbHVlLgoKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hp IDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2Jp bkBnbWFpbC5jb20+CkFja2VkLWJ5OiBOaWNvbGFzIERpY2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2 d2luZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2Ni9zaXQuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2l0LmMgYi9uZXQvaXB2Ni9zaXQuYwppbmRl eCA0MGQ3NDA1NzIzNTQuLmRiNmQ0MzcwMDJhNiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvc2l0LmMK KysrIGIvbmV0L2lwdjYvc2l0LmMKQEAgLTEwODUsNiArMTA4NSw3IEBAIHN0YXRpYyB2b2lkIGlw aXA2X3R1bm5lbF91cGRhdGUoc3RydWN0IGlwX3R1bm5lbCAqdCwgc3RydWN0IGlwX3R1bm5lbF9w YXJtICpwKQogCWlwaXA2X3R1bm5lbF9saW5rKHNpdG4sIHQpOwogCXQtPnBhcm1zLmlwaC50dGwg PSBwLT5pcGgudHRsOwogCXQtPnBhcm1zLmlwaC50b3MgPSBwLT5pcGgudG9zOworCXQtPnBhcm1z LmlwaC5mcmFnX29mZiA9IHAtPmlwaC5mcmFnX29mZjsKIAlpZiAodC0+cGFybXMubGluayAhPSBw LT5saW5rKSB7CiAJCXQtPnBhcm1zLmxpbmsgPSBwLT5saW5rOwogCQlpcGlwNl90dW5uZWxfYmlu ZF9kZXYodC0+ZGV2KTsKLS0gCjIuMTQuMwoKCkZyb20gOTJjOGI0N2EwNjA3NDcxMTRiNDcwNDRj NDNmZWIwM2EwODAzMTIzNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWlrZSBNYWxv bmV5IDxtYWxvbmV5QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMjggTm92IDIwMTcgMTA6NDQ6Mjkg LTA1MDAKU3ViamVjdDogW1BBVENIIDA2LzE1XSBwYWNrZXQ6IGZpeCBjcmFzaCBpbiBmYW5vdXRf ZGVtdXhfcm9sbG92ZXIoKQoKc3l6a2FsbGVyIGZvdW5kIGEgcmFjZSBjb25kaXRpb24gZmFub3V0 X2RlbXV4X3JvbGxvdmVyKCkgd2hpbGUgcmVtb3ZpbmcKYSBwYWNrZXQgc29ja2V0IGZyb20gYSBm YW5vdXQgZ3JvdXAuCgpwby0+cm9sbG92ZXIgaXMgcmVhZCBhbmQgb3BlcmF0ZWQgb24gZHVyaW5n IHBhY2tldF9yY3ZfZmFub3V0KCksIHZpYQpmYW5vdXRfZGVtdXhfcm9sbG92ZXIoKSwgYnV0IHRo ZSBwb2ludGVyIGlzIGN1cnJlbnRseSBjbGVhcmVkIGJlZm9yZSB0aGUKc3luY2hyb25pemF0aW9u IGluIHBhY2tldF9yZWxlYXNlKCkuICAgSXQgaXMgc2FmZXIgdG8gZGVsYXkgdGhlIGNsZWFudXAK dW50aWwgYWZ0ZXIgc3luY2hyb25pemVfbmV0KCkgaGFzIGJlZW4gY2FsbGVkLCBlbnN1cmluZyBh bGwgY2FsbHMgdG8KcGFja2V0X3Jjdl9mYW5vdXQoKSBmb3IgdGhpcyBzb2NrZXQgaGF2ZSBmaW5p c2hlZC4KClRvIGZ1cnRoZXIgc2ltcGxpZnkgc3luY2hyb25pemF0aW9uIGFyb3VuZCB0aGUgcm9s bG92ZXIgc3RydWN0dXJlLCBzZXQKcG8tPnJvbGxvdmVyIGluIGZhbm91dF9hZGQoKSBvbmx5IGlm IHRoZXJlIGFyZSBubyBlcnJvcnMuICBUaGlzIHJlbW92ZXMKdGhlIG5lZWQgZm9yIHJjdSBpbiB0 aGUgc3RydWN0IGFuZCBpbiB0aGUgY2FsbCB0bwpwYWNrZXRfZ2V0c29ja29wdCguLi4sIFBBQ0tF VF9ST0xMT1ZFUl9TVEFUUywgLi4uKS4KCkNyYXNoaW5nIHN0YWNrIHRyYWNlOgogZmFub3V0X2Rl bXV4X3JvbGxvdmVyKzB4YjYvMHg0ZDAgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzoxMzkyCiBwYWNr ZXRfcmN2X2Zhbm91dCsweDY0OS8weDdjOCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjE0ODcKIGRl dl9xdWV1ZV94bWl0X25pdCsweDgzNS8weGMxMCBuZXQvY29yZS9kZXYuYzoxOTUzCiB4bWl0X29u ZSBuZXQvY29yZS9kZXYuYzoyOTc1IFtpbmxpbmVdCiBkZXZfaGFyZF9zdGFydF94bWl0KzB4MTZi LzB4YWMwIG5ldC9jb3JlL2Rldi5jOjI5OTUKIF9fZGV2X3F1ZXVlX3htaXQrMHgxN2E0LzB4MjA1 MCBuZXQvY29yZS9kZXYuYzozNDc2CiBkZXZfcXVldWVfeG1pdCsweDE3LzB4MjAgbmV0L2NvcmUv ZGV2LmM6MzUwOQogbmVpZ2hfY29ubmVjdGVkX291dHB1dCsweDQ4OS8weDcyMCBuZXQvY29yZS9u ZWlnaGJvdXIuYzoxMzc5CiBuZWlnaF9vdXRwdXQgaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmg6NDgy IFtpbmxpbmVdCiBpcDZfZmluaXNoX291dHB1dDIrMHhhZDEvMHgyMmEwIG5ldC9pcHY2L2lwNl9v dXRwdXQuYzoxMjAKIGlwNl9maW5pc2hfb3V0cHV0KzB4MmY5LzB4OTIwIG5ldC9pcHY2L2lwNl9v dXRwdXQuYzoxNDYKIE5GX0hPT0tfQ09ORCBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjIzOSBb aW5saW5lXQogaXA2X291dHB1dCsweDFmNC8weDg1MCBuZXQvaXB2Ni9pcDZfb3V0cHV0LmM6MTYz CiBkc3Rfb3V0cHV0IGluY2x1ZGUvbmV0L2RzdC5oOjQ1OSBbaW5saW5lXQogTkZfSE9PSy5jb25z dHByb3AuMzUrMHhmZi8weDYzMCBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI1MAogbWxkX3Nl bmRwYWNrKzB4NmE4LzB4Y2MwIG5ldC9pcHY2L21jYXN0LmM6MTY2MAogbWxkX3NlbmRfaW5pdGlh bF9jci5wYXJ0LjI0KzB4MTAzLzB4MTUwIG5ldC9pcHY2L21jYXN0LmM6MjA3MgogbWxkX3NlbmRf aW5pdGlhbF9jciBuZXQvaXB2Ni9tY2FzdC5jOjIwNTYgW2lubGluZV0KIGlwdjZfbWNfZGFkX2Nv bXBsZXRlKzB4OTkvMHgxMzAgbmV0L2lwdjYvbWNhc3QuYzoyMDc5CiBhZGRyY29uZl9kYWRfY29t cGxldGVkKzB4NTk1LzB4OTcwIG5ldC9pcHY2L2FkZHJjb25mLmM6NDAzOQogYWRkcmNvbmZfZGFk X3dvcmsrMHhhYzkvMHgxMTYwIG5ldC9pcHY2L2FkZHJjb25mLmM6Mzk3MQogcHJvY2Vzc19vbmVf d29yaysweGJmMC8weDFiYzAga2VybmVsL3dvcmtxdWV1ZS5jOjIxMTMKIHdvcmtlcl90aHJlYWQr MHgyMjMvMHgxOTkwIGtlcm5lbC93b3JrcXVldWUuYzoyMjQ3CiBrdGhyZWFkKzB4MzVlLzB4NDMw IGtlcm5lbC9rdGhyZWFkLmM6MjMxCiByZXRfZnJvbV9mb3JrKzB4MmEvMHg0MCBhcmNoL3g4Ni9l bnRyeS9lbnRyeV82NC5TOjQzMgoKRml4ZXM6IDA2NDhhYjcwYWZlNiAoInBhY2tldDogcm9sbG92 ZXIgcHJlcGFyZTogcGVyLXNvY2tldCBzdGF0ZSIpCkZpeGVzOiA1MDljN2ExZWNjODYwICgicGFj a2V0OiBhdm9pZCBwYW5pYyBpbiBwYWNrZXRfZ2V0c29ja29wdCgpIikKUmVwb3J0ZWQtYnk6IHN5 emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ClNpZ25lZC1vZmYtYnk6IE1pa2UgTWFs b25leSA8bWFsb25leUBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDMyICsrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBuZXQvcGFja2V0L2ludGVybmFsLmggIHwgIDEgLQogMiBm aWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRl eCBlN2Y2NjU3MjY5ZTAuLjAzNmQ3N2E2OTU5NSAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9w YWNrZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBAIC0xNjYxLDcgKzE2NjEsNiBA QCBzdGF0aWMgaW50IGZhbm91dF9hZGQoc3RydWN0IHNvY2sgKnNrLCB1MTYgaWQsIHUxNiB0eXBl X2ZsYWdzKQogCQlhdG9taWNfbG9uZ19zZXQoJnJvbGxvdmVyLT5udW0sIDApOwogCQlhdG9taWNf bG9uZ19zZXQoJnJvbGxvdmVyLT5udW1faHVnZSwgMCk7CiAJCWF0b21pY19sb25nX3NldCgmcm9s bG92ZXItPm51bV9mYWlsZWQsIDApOwotCQlwby0+cm9sbG92ZXIgPSByb2xsb3ZlcjsKIAl9CiAK IAltYXRjaCA9IE5VTEw7CkBAIC0xNzA2LDYgKzE3MDUsOCBAQCBzdGF0aWMgaW50IGZhbm91dF9h ZGQoc3RydWN0IHNvY2sgKnNrLCB1MTYgaWQsIHUxNiB0eXBlX2ZsYWdzKQogCQlpZiAoYXRvbWlj X3JlYWQoJm1hdGNoLT5za19yZWYpIDwgUEFDS0VUX0ZBTk9VVF9NQVgpIHsKIAkJCV9fZGV2X3Jl bW92ZV9wYWNrKCZwby0+cHJvdF9ob29rKTsKIAkJCXBvLT5mYW5vdXQgPSBtYXRjaDsKKwkJCXBv LT5yb2xsb3ZlciA9IHJvbGxvdmVyOworCQkJcm9sbG92ZXIgPSBOVUxMOwogCQkJYXRvbWljX2lu YygmbWF0Y2gtPnNrX3JlZik7CiAJCQlfX2Zhbm91dF9saW5rKHNrLCBwbyk7CiAJCQllcnIgPSAw OwpAQCAtMTcxOSwxMCArMTcyMCw3IEBAIHN0YXRpYyBpbnQgZmFub3V0X2FkZChzdHJ1Y3Qgc29j ayAqc2ssIHUxNiBpZCwgdTE2IHR5cGVfZmxhZ3MpCiAJfQogCiBvdXQ6Ci0JaWYgKGVyciAmJiBy b2xsb3ZlcikgewotCQlrZnJlZV9yY3Uocm9sbG92ZXIsIHJjdSk7Ci0JCXBvLT5yb2xsb3ZlciA9 IE5VTEw7Ci0JfQorCWtmcmVlKHJvbGxvdmVyKTsKIAltdXRleF91bmxvY2soJmZhbm91dF9tdXRl eCk7CiAJcmV0dXJuIGVycjsKIH0KQEAgLTE3NDYsMTEgKzE3NDQsNiBAQCBzdGF0aWMgc3RydWN0 IHBhY2tldF9mYW5vdXQgKmZhbm91dF9yZWxlYXNlKHN0cnVjdCBzb2NrICpzaykKIAkJCWxpc3Rf ZGVsKCZmLT5saXN0KTsKIAkJZWxzZQogCQkJZiA9IE5VTEw7Ci0KLQkJaWYgKHBvLT5yb2xsb3Zl cikgewotCQkJa2ZyZWVfcmN1KHBvLT5yb2xsb3ZlciwgcmN1KTsKLQkJCXBvLT5yb2xsb3ZlciA9 IE5VTEw7Ci0JCX0KIAl9CiAJbXV0ZXhfdW5sb2NrKCZmYW5vdXRfbXV0ZXgpOwogCkBAIC0zMDM5 LDYgKzMwMzIsNyBAQCBzdGF0aWMgaW50IHBhY2tldF9yZWxlYXNlKHN0cnVjdCBzb2NrZXQgKnNv Y2spCiAJc3luY2hyb25pemVfbmV0KCk7CiAKIAlpZiAoZikgeworCQlrZnJlZShwby0+cm9sbG92 ZXIpOwogCQlmYW5vdXRfcmVsZWFzZV9kYXRhKGYpOwogCQlrZnJlZShmKTsKIAl9CkBAIC0zODUz LDcgKzM4NDcsNiBAQCBzdGF0aWMgaW50IHBhY2tldF9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrZXQg KnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJdm9pZCAqZGF0YSA9ICZ2YWw7CiAJdW5p b24gdHBhY2tldF9zdGF0c191IHN0OwogCXN0cnVjdCB0cGFja2V0X3JvbGxvdmVyX3N0YXRzIHJz dGF0czsKLQlzdHJ1Y3QgcGFja2V0X3JvbGxvdmVyICpyb2xsb3ZlcjsKIAogCWlmIChsZXZlbCAh PSBTT0xfUEFDS0VUKQogCQlyZXR1cm4gLUVOT1BST1RPT1BUOwpAQCAtMzkzMiwxOCArMzkyNSwx MyBAQCBzdGF0aWMgaW50IHBhY2tldF9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIGlu dCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJCSAgICAgICAwKTsKIAkJYnJlYWs7CiAJY2FzZSBQQUNL RVRfUk9MTE9WRVJfU1RBVFM6Ci0JCXJjdV9yZWFkX2xvY2soKTsKLQkJcm9sbG92ZXIgPSByY3Vf ZGVyZWZlcmVuY2UocG8tPnJvbGxvdmVyKTsKLQkJaWYgKHJvbGxvdmVyKSB7Ci0JCQlyc3RhdHMu dHBfYWxsID0gYXRvbWljX2xvbmdfcmVhZCgmcm9sbG92ZXItPm51bSk7Ci0JCQlyc3RhdHMudHBf aHVnZSA9IGF0b21pY19sb25nX3JlYWQoJnJvbGxvdmVyLT5udW1faHVnZSk7Ci0JCQlyc3RhdHMu dHBfZmFpbGVkID0gYXRvbWljX2xvbmdfcmVhZCgmcm9sbG92ZXItPm51bV9mYWlsZWQpOwotCQkJ ZGF0YSA9ICZyc3RhdHM7Ci0JCQlsdiA9IHNpemVvZihyc3RhdHMpOwotCQl9Ci0JCXJjdV9yZWFk X3VubG9jaygpOwotCQlpZiAoIXJvbGxvdmVyKQorCQlpZiAoIXBvLT5yb2xsb3ZlcikKIAkJCXJl dHVybiAtRUlOVkFMOworCQlyc3RhdHMudHBfYWxsID0gYXRvbWljX2xvbmdfcmVhZCgmcG8tPnJv bGxvdmVyLT5udW0pOworCQlyc3RhdHMudHBfaHVnZSA9IGF0b21pY19sb25nX3JlYWQoJnBvLT5y b2xsb3Zlci0+bnVtX2h1Z2UpOworCQlyc3RhdHMudHBfZmFpbGVkID0gYXRvbWljX2xvbmdfcmVh ZCgmcG8tPnJvbGxvdmVyLT5udW1fZmFpbGVkKTsKKwkJZGF0YSA9ICZyc3RhdHM7CisJCWx2ID0g c2l6ZW9mKHJzdGF0cyk7CiAJCWJyZWFrOwogCWNhc2UgUEFDS0VUX1RYX0hBU19PRkY6CiAJCXZh bCA9IHBvLT50cF90eF9oYXNfb2ZmOwpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9pbnRlcm5hbC5o IGIvbmV0L3BhY2tldC9pbnRlcm5hbC5oCmluZGV4IDllZTQ2MzE0YjdkNy4uZDU1YmZjMzRkNmIz IDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2ludGVybmFsLmgKKysrIGIvbmV0L3BhY2tldC9pbnRl cm5hbC5oCkBAIC05Miw3ICs5Miw2IEBAIHN0cnVjdCBwYWNrZXRfZmFub3V0IHsKIAogc3RydWN0 IHBhY2tldF9yb2xsb3ZlciB7CiAJaW50CQkJc29jazsKLQlzdHJ1Y3QgcmN1X2hlYWQJCXJjdTsK IAlhdG9taWNfbG9uZ190CQludW07CiAJYXRvbWljX2xvbmdfdAkJbnVtX2h1Z2U7CiAJYXRvbWlj X2xvbmdfdAkJbnVtX2ZhaWxlZDsKLS0gCjIuMTQuMwoKCkZyb20gYzRhYWNhMWMyOTQ3NjgzYjMy NThmMDhhZjc1YTMzYmVjNzhhZDU1OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDA4 OjAzOjMwIC0wODAwClN1YmplY3Q6IFtQQVRDSCAwNy8xNV0gbmV0L3BhY2tldDogZml4IGEgcmFj ZSBpbiBwYWNrZXRfYmluZCgpIGFuZAogcGFja2V0X25vdGlmaWVyKCkKClsgVXBzdHJlYW0gY29t bWl0IDE1ZmUwNzZlZGVhNzg3ODA3YTdjZGMxNjhkZjgzMjU0NGI1OGViYTYgXQoKc3l6Ym90IHJl cG9ydGVkIGNyYXNoZXMgWzFdIGFuZCBwcm92aWRlZCBhIEMgcmVwcm8gZWFzaW5nIGJ1ZyBodW50 aW5nLgoKV2hlbi9pZiBwYWNrZXRfZG9fYmluZCgpIGNhbGxzIF9fdW5yZWdpc3Rlcl9wcm90X2hv b2soKSBhbmQgcmVsZWFzZXMKcG8tPmJpbmRfbG9jaywgYW5vdGhlciB0aHJlYWQgY2FuIHJ1biBw YWNrZXRfbm90aWZpZXIoKSBhbmQgcHJvY2VzcyBhbgpORVRERVZfVVAgZXZlbnQuCgpUaGlzIGNh bGxzIHJlZ2lzdGVyX3Byb3RfaG9vaygpIGFuZCBob29rcyBhZ2FpbiB0aGUgc29ja2V0IHJpZ2h0 IGJlZm9yZQpmaXJzdCB0aHJlYWQgaXMgYWJsZSB0byBncmFiIGFnYWluIHBvLT5iaW5kX2xvY2su CgpGaXhlcyB0aGlzIGlzc3VlIGJ5IHRlbXBvcmFyaWx5IHNldHRpbmcgcG8tPm51bSB0byAwLCBh cyBzdWdnZXN0ZWQgYnkKRGF2aWQgTWlsbGVyLgoKWzFdCmRldl9yZW1vdmVfcGFjazogZmZmZjg4 MDFiZjE2ZmE4MCBub3QgZm91bmQKLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0t Cmtlcm5lbCBCVUcgYXQgbmV0L2NvcmUvZGV2LmM6Nzk0NSEgICggQlVHX09OKCFsaXN0X2VtcHR5 KCZkZXYtPnB0eXBlX2FsbCkpOyApCmludmFsaWQgb3Bjb2RlOiAwMDAwIFsjMV0gU01QIEtBU0FO CkR1bXBpbmcgZnRyYWNlIGJ1ZmZlcjoKICAgKGZ0cmFjZSBidWZmZXIgZW1wdHkpCk1vZHVsZXMg bGlua2VkIGluOgpkZXZpY2Ugc3l6MCBlbnRlcmVkIHByb21pc2N1b3VzIG1vZGUKQ1BVOiAwIFBJ RDogMzE2MSBDb21tOiBzeXprYWxsZXI0MDQxMDggTm90IHRhaW50ZWQgNC4xNC4wKyAjMTkwCkhh cmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUg RW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCnRhc2s6IGZmZmY4ODAxY2M1N2E1MDAgdGFz ay5zdGFjazogZmZmZjg4MDFjYzU4ODAwMApSSVA6IDAwMTA6bmV0ZGV2X3J1bl90b2RvKzB4Nzcy LzB4YWUwIG5ldC9jb3JlL2Rldi5jOjc5NDUKUlNQOiAwMDE4OmZmZmY4ODAxY2M1OGY1OTggRUZM QUdTOiAwMDAxMDI5MwpSQVg6IGZmZmY4ODAxY2M1N2E1MDAgUkJYOiBkZmZmZmMwMDAwMDAwMDAw IFJDWDogZmZmZmZmZmY4NDFmNzViMgpSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAxZmZmZjEw MDM5OGIxZWRlIFJESTogZmZmZjg4MDFiZjFmODgxMApkZXZpY2Ugc3l6MCBlbnRlcmVkIHByb21p c2N1b3VzIG1vZGUKUkJQOiBmZmZmODgwMWNjNThmODk4IFIwODogMDAwMDAwMDAwMDAwMDAwMSBS MDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAw MDAwMDAwMCBSMTI6IGZmZmY4ODAxYmYxZjhjZDgKUjEzOiBmZmZmODgwMWNjNThmODcwIFIxNDog ZmZmZjg4MDFiZjFmODc4MCBSMTU6IGZmZmY4ODAxY2M1OGY3ZjAKRlM6ICAwMDAwMDAwMDAxNzE2 ODgwKDAwMDApIEdTOmZmZmY4ODAxZGI0MDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAw MApDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjog MDAwMDAwMDAyMGIxMzAwMCBDUjM6IDAwMDAwMDAwMDVlMjUwMDAgQ1I0OiAwMDAwMDAwMDAwMTQw NmYwCkRSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAw MDAwMDAwMDAwMDAwCkRSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAg RFI3OiAwMDAwMDAwMDAwMDAwNDAwCkNhbGwgVHJhY2U6CiBydG5sX3VubG9jaysweGUvMHgxMCBu ZXQvY29yZS9ydG5ldGxpbmsuYzoxMDYKIHR1bl9kZXRhY2ggZHJpdmVycy9uZXQvdHVuLmM6Njcw IFtpbmxpbmVdCiB0dW5fY2hyX2Nsb3NlKzB4NDkvMHg2MCBkcml2ZXJzL25ldC90dW4uYzoyODQ1 CiBfX2ZwdXQrMHgzMzMvMHg3ZjAgZnMvZmlsZV90YWJsZS5jOjIxMAogX19fX2ZwdXQrMHgxNS8w eDIwIGZzL2ZpbGVfdGFibGUuYzoyNDQKIHRhc2tfd29ya19ydW4rMHgxOTkvMHgyNzAga2VybmVs L3Rhc2tfd29yay5jOjExMwogZXhpdF90YXNrX3dvcmsgaW5jbHVkZS9saW51eC90YXNrX3dvcmsu aDoyMiBbaW5saW5lXQogZG9fZXhpdCsweDliYi8weDFhZTAga2VybmVsL2V4aXQuYzo4NjUKIGRv X2dyb3VwX2V4aXQrMHgxNDkvMHg0MDAga2VybmVsL2V4aXQuYzo5NjgKIFNZU0NfZXhpdF9ncm91 cCBrZXJuZWwvZXhpdC5jOjk3OSBbaW5saW5lXQogU3lTX2V4aXRfZ3JvdXArMHgxZC8weDIwIGtl cm5lbC9leGl0LmM6OTc3CiBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWYvMHg5NgpSSVA6 IDAwMzM6MHg0NGFkMTkKCkZpeGVzOiAzMGY3ZWExYzJiNWYgKCJwYWNrZXQ6IHJhY2UgY29uZGl0 aW9uIGluIHBhY2tldF9iaW5kIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBz LmNvbT4KQ2M6IEZyYW5jZXNjbyBSdWdnZXJpIDxmcnVnZ2VyaUBhcmlzdGFuZXR3b3Jrcy5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFj a2V0L2FmX3BhY2tldC5jCmluZGV4IDAzNmQ3N2E2OTU5NS4uMjY3ZGIwZDYwM2JjIDEwMDY0NAot LS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMK QEAgLTMxMDEsNiArMzEwMSwxMCBAQCBzdGF0aWMgaW50IHBhY2tldF9kb19iaW5kKHN0cnVjdCBz b2NrICpzaywgY29uc3QgY2hhciAqbmFtZSwgaW50IGlmaW5kZXgsCiAJaWYgKG5lZWRfcmVob29r KSB7CiAJCWlmIChwby0+cnVubmluZykgewogCQkJcmN1X3JlYWRfdW5sb2NrKCk7CisJCQkvKiBw cmV2ZW50cyBwYWNrZXRfbm90aWZpZXIoKSBmcm9tIGNhbGxpbmcKKwkJCSAqIHJlZ2lzdGVyX3By b3RfaG9vaygpCisJCQkgKi8KKwkJCXBvLT5udW0gPSAwOwogCQkJX191bnJlZ2lzdGVyX3Byb3Rf aG9vayhzaywgdHJ1ZSk7CiAJCQlyY3VfcmVhZF9sb2NrKCk7CiAJCQlkZXZfY3VyciA9IHBvLT5w cm90X2hvb2suZGV2OwpAQCAtMzEwOSw2ICszMTEzLDcgQEAgc3RhdGljIGludCBwYWNrZXRfZG9f YmluZChzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IGNoYXIgKm5hbWUsIGludCBpZmluZGV4LAogCQkJ CQkJCQkgZGV2LT5pZmluZGV4KTsKIAkJfQogCisJCUJVR19PTihwby0+cnVubmluZyk7CiAJCXBv LT5udW0gPSBwcm90bzsKIAkJcG8tPnByb3RfaG9vay50eXBlID0gcHJvdG87CiAKLS0gCjIuMTQu MwoKCkZyb20gMGZiZmE1ZjJhMDUxNDYxZTEwNjk2MDQ3MTk0ZDcxYjU5YWJhNDA5NiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0JqPUMzPUI4cm49MjBNb3JrPz0gPGJq b3JuQG1vcmsubm8+CkRhdGU6IFdlZCwgNiBEZWMgMjAxNyAyMDoyMToyNCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMDgvMTVdIHVzYm5ldDogZml4IGFsaWdubWVudCBmb3IgZnJhbWVzIHdpdGggbm8g ZXRoZXJuZXQKIGhlYWRlcgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0 cmVhbSBjb21taXQgYTRhYmQ3YTgwYWRkYjRhOTU0N2Y3ZGZjNzgxMjU2NmI2MGVjNTA1YyBdCgpU aGUgcW1pX3d3YW4gbWluaWRyaXZlciBzdXBwb3J0IGEgJ3Jhdy1pcCcgbW9kZSB3aGVyZSBmcmFt ZXMgYXJlCnJlY2VpdmVkIHdpdGhvdXQgYW55IGV0aGVybmV0IGhlYWRlci4gVGhpcyBjYXVzZXMg YWxpZ25tZW50IGlzc3VlcwpiZWNhdXNlIHRoZSBza2JzIGFsbG9jYXRlZCBieSB1c2JuZXQgYXJl ICJJUCBhbGlnbmVkIi4KCkZpeCBieSBhbGxvd2luZyBtaW5pZHJpdmVycyB0byBkaXNhYmxlIHRo ZSBhZGRpdGlvbmFsIGFsaWdubWVudApvZmZzZXQuIFRoaXMgaXMgaW1wbGVtZW50ZWQgdXNpbmcg YSBwZXItZGV2aWNlIGZsYWcsIHNpbmNlIHRoZSBzYW1lCm1pbmlkcml2ZXIgYWxzbyBzdXBwb3J0 cyAnZXRoZXJuZXQnIG1vZGUuCgpGaXhlczogMzJmN2FkZjYzM2I5ICgibmV0OiBxbWlfd3dhbjog c3VwcG9ydCAicmF3IElQIiBtb2RlIikKUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogSmF5IEZvc3Rl ciA8amF5QHN5c3RlY2guY29tPgpTaWduZWQtb2ZmLWJ5OiBCasO4cm4gTW9yayA8Ympvcm5AbW9y ay5ubz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIHwgMiArKwogZHJpdmVycy9uZXQvdXNi L3VzYm5ldC5jICAgfCA1ICsrKystCiBpbmNsdWRlL2xpbnV4L3VzYi91c2JuZXQuaCB8IDEgKwog MyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dh bi5jCmluZGV4IDk3YTE2ZTIzYzE5YS4uNjI3MjU2NTVkOGU0IDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC91c2IvcW1pX3d3YW4uYworKysgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwpAQCAt NzQsOSArNzQsMTEgQEAgc3RhdGljIHZvaWQgcW1pX3d3YW5fbmV0ZGV2X3NldHVwKHN0cnVjdCBu ZXRfZGV2aWNlICpuZXQpCiAJCW5ldC0+aGFyZF9oZWFkZXJfbGVuID0gMDsKIAkJbmV0LT5hZGRy X2xlbiAgICAgICAgPSAwOwogCQluZXQtPmZsYWdzICAgICAgICAgICA9IElGRl9QT0lOVE9QT0lO VCB8IElGRl9OT0FSUCB8IElGRl9NVUxUSUNBU1Q7CisJCXNldF9iaXQoRVZFTlRfTk9fSVBfQUxJ R04sICZkZXYtPmZsYWdzKTsKIAkJbmV0ZGV2X2RiZyhuZXQsICJtb2RlOiByYXcgSVBcbiIpOwog CX0gZWxzZSBpZiAoIW5ldC0+aGVhZGVyX29wcykgeyAvKiBkb24ndCBib3RoZXIgaWYgYWxyZWFk eSBzZXQgKi8KIAkJZXRoZXJfc2V0dXAobmV0KTsKKwkJY2xlYXJfYml0KEVWRU5UX05PX0lQX0FM SUdOLCAmZGV2LT5mbGFncyk7CiAJCW5ldGRldl9kYmcobmV0LCAibW9kZTogRXRoZXJuZXRcbiIp OwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3VzYm5ldC5jIGIvZHJpdmVycy9u ZXQvdXNiL3VzYm5ldC5jCmluZGV4IGQ1MDcxZTM2NGQ0MC4uNGFiODJiOTk4YTBmIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC91c2IvdXNibmV0LmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL3VzYm5l dC5jCkBAIC00ODUsNyArNDg1LDEwIEBAIHN0YXRpYyBpbnQgcnhfc3VibWl0IChzdHJ1Y3QgdXNi bmV0ICpkZXYsIHN0cnVjdCB1cmIgKnVyYiwgZ2ZwX3QgZmxhZ3MpCiAJCXJldHVybiAtRU5PTElO SzsKIAl9CiAKLQlza2IgPSBfX25ldGRldl9hbGxvY19za2JfaXBfYWxpZ24oZGV2LT5uZXQsIHNp emUsIGZsYWdzKTsKKwlpZiAodGVzdF9iaXQoRVZFTlRfTk9fSVBfQUxJR04sICZkZXYtPmZsYWdz KSkKKwkJc2tiID0gX19uZXRkZXZfYWxsb2Nfc2tiKGRldi0+bmV0LCBzaXplLCBmbGFncyk7CisJ ZWxzZQorCQlza2IgPSBfX25ldGRldl9hbGxvY19za2JfaXBfYWxpZ24oZGV2LT5uZXQsIHNpemUs IGZsYWdzKTsKIAlpZiAoIXNrYikgewogCQluZXRpZl9kYmcoZGV2LCByeF9lcnIsIGRldi0+bmV0 LCAibm8gcnggc2tiXG4iKTsKIAkJdXNibmV0X2RlZmVyX2tldmVudCAoZGV2LCBFVkVOVF9SWF9N RU1PUlkpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC91c2IvdXNibmV0LmggYi9pbmNsdWRl L2xpbnV4L3VzYi91c2JuZXQuaAppbmRleCA2ZTBjZThjN2I4Y2IuLmZkZTc1NTA3NTRkZiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9saW51eC91c2IvdXNibmV0LmgKKysrIGIvaW5jbHVkZS9saW51eC91 c2IvdXNibmV0LmgKQEAgLTc5LDYgKzc5LDcgQEAgc3RydWN0IHVzYm5ldCB7CiAjCQlkZWZpbmUg RVZFTlRfUlhfS0lMTAkxMAogIwkJZGVmaW5lIEVWRU5UX0xJTktfQ0hBTkdFCTExCiAjCQlkZWZp bmUgRVZFTlRfU0VUX1JYX01PREUJMTIKKyMJCWRlZmluZSBFVkVOVF9OT19JUF9BTElHTgkxMwog fTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdXNiX2RyaXZlciAqZHJpdmVyX29mKHN0cnVjdCB1 c2JfaW50ZXJmYWNlICppbnRmKQotLSAKMi4xNC4zCgoKRnJvbSBkMTliZThjMTExZTA5ZTE3OTgw NWIwYzNkNWEyZjk2ZGQ2MzAzOWYzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgNSBEZWMgMjAxNyAxMjo0 NTo1NiAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMTVdIG5ldDogcmVtb3ZlIGhsaXN0X251bGxz X2FkZF90YWlsX3JjdSgpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3Ry ZWFtIGNvbW1pdCBkN2VmYzZjMTFiMjc3ZDlkODBiOTliMTMzNGE3OGJmZTdkN2VkZjEwIF0KCkFs ZXhhbmRlciBQb3RhcGVua28gcmVwb3J0ZWQgdXNlIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IFsx XQoKVGhpcyBoYXBwZW5zIHdoZW4gaW5zZXJ0aW5nIGEgcmVxdWVzdCBzb2NrZXQgaW50byBUQ1Ag ZWhhc2gsCmluIF9fc2tfbnVsbHNfYWRkX25vZGVfcmN1KCksIHNpbmNlIHNrX3JldXNlcG9ydCBp cyBub3QgaW5pdGlhbGl6ZWQuCgpCdWcgd2FzIGFkZGVkIGJ5IGNvbW1pdCBkODk0YmExOGQ0ZTQg KCJzb3JldXNlcG9ydDogZml4IG9yZGVyaW5nIGZvcgptaXhlZCB2NC92NiBzb2NrZXRzIikKCk5v dGUgdGhhdCBkMjk2YmE2MGQ4ZTIgKCJzb3JldXNlcG9ydDogUmVzb2x2ZSBtZXJnZSBjb25mbGlj dCBmb3IgdjQvdjYKb3JkZXJpbmcgZml4IikgbWlzc2VkIHRoZSBvcHBvcnR1bml0eSB0byBnZXQg cmlkIG9mCmhsaXN0X251bGxzX2FkZF90YWlsX3JjdSgpIDoKCkJvdGggVURQIHNvY2tldHMgYW5k IFRDUC9EQ0NQIGxpc3RlbmVycyBubyBsb25nZXIgdXNlCl9fc2tfbnVsbHNfYWRkX25vZGVfcmN1 KCkgZm9yIHRoZWlyIGhhc2ggaW5zZXJ0aW9uLgoKU2luY2UgYWxsIG90aGVyIHNvY2tldHMgaGF2 ZSB1bmlxdWUgNC10dXBsZSwgdGhlIHJldXNlcG9ydCBzdGF0dXMKaGFzIG5vIHNwZWNpYWwgbWVh bmluZywgc28gd2UgY2FuIGFsd2F5cyB1c2UgaGxpc3RfbnVsbHNfYWRkX2hlYWRfcmN1KCkKZm9y IHRoZW0gYW5kIHNhdmUgZmV3IGN5Y2xlcy9pbnN0cnVjdGlvbnMuCgpbMV0KCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpC VUc6IEtNU0FOOiB1c2Ugb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgaW4gaW5ldF9laGFzaF9pbnNl cnQrMHhkNDAvMHgxMDUwCkNQVTogMCBQSUQ6IDAgQ29tbTogc3dhcHBlci8wIE5vdCB0YWludGVk IDQuMTMuMCsgIzMyODgKSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsg UElJWCwgMTk5NiksIEJJT1MgQm9jaHMgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgrCoDxJUlE+CsKg X19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6MTYKwqBkdW1wX3N0YWNrKzB4MTg1LzB4MWQw IGxpYi9kdW1wX3N0YWNrLmM6NTIKwqBrbXNhbl9yZXBvcnQrMHgxM2YvMHgxYzAgbW0va21zYW4v a21zYW4uYzoxMDE2CsKgX19tc2FuX3dhcm5pbmdfMzIrMHg2OS8weGIwIG1tL2ttc2FuL2ttc2Fu X2luc3RyLmM6NzY2CsKgX19za19udWxsc19hZGRfbm9kZV9yY3UgLi9pbmNsdWRlL25ldC9zb2Nr Lmg6Njg0CsKgaW5ldF9laGFzaF9pbnNlcnQrMHhkNDAvMHgxMDUwIG5ldC9pcHY0L2luZXRfaGFz aHRhYmxlcy5jOjQxMwrCoHJlcXNrX3F1ZXVlX2hhc2hfcmVxIG5ldC9pcHY0L2luZXRfY29ubmVj dGlvbl9zb2NrLmM6NzU0CsKgaW5ldF9jc2tfcmVxc2tfcXVldWVfaGFzaF9hZGQrMHgxY2MvMHgz MDAgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYzo3NjUKwqB0Y3BfY29ubl9yZXF1ZXN0 KzB4MzFlNy8weDM2ZjAgbmV0L2lwdjQvdGNwX2lucHV0LmM6NjQxNArCoHRjcF92NF9jb25uX3Jl cXVlc3QrMHgxNmQvMHgyMjAgbmV0L2lwdjQvdGNwX2lwdjQuYzoxMzE0CsKgdGNwX3Jjdl9zdGF0 ZV9wcm9jZXNzKzB4NDJhLzB4NzIxMCBuZXQvaXB2NC90Y3BfaW5wdXQuYzo1OTE3CsKgdGNwX3Y0 X2RvX3JjdisweGE2YS8weGNkMCBuZXQvaXB2NC90Y3BfaXB2NC5jOjE0ODMKwqB0Y3BfdjRfcmN2 KzB4M2RlMC8weDRhYjAgbmV0L2lwdjQvdGNwX2lwdjQuYzoxNzYzCsKgaXBfbG9jYWxfZGVsaXZl cl9maW5pc2grMHg2YmIvMHhjYjAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyMTYKwqBORl9IT09LIC4v aW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyNDgKwqBpcF9sb2NhbF9kZWxpdmVyKzB4M2ZhLzB4 NDgwIG5ldC9pcHY0L2lwX2lucHV0LmM6MjU3CsKgZHN0X2lucHV0IC4vaW5jbHVkZS9uZXQvZHN0 Lmg6NDc3CsKgaXBfcmN2X2ZpbmlzaCsweDZmYi8weDE1NDAgbmV0L2lwdjQvaXBfaW5wdXQuYzoz OTcKwqBORl9IT09LIC4vaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyNDgKwqBpcF9yY3YrMHgx MGY2LzB4MTVjMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjQ4OArCoF9fbmV0aWZfcmVjZWl2ZV9za2Jf Y29yZSsweDM2ZjYvMHgzZjYwIG5ldC9jb3JlL2Rldi5jOjQyOTgKwqBfX25ldGlmX3JlY2VpdmVf c2tiIG5ldC9jb3JlL2Rldi5jOjQzMzYKwqBuZXRpZl9yZWNlaXZlX3NrYl9pbnRlcm5hbCsweDYz Yy8weDE5YzAgbmV0L2NvcmUvZGV2LmM6NDQ5NwrCoG5hcGlfc2tiX2ZpbmlzaCBuZXQvY29yZS9k ZXYuYzo0ODU4CsKgbmFwaV9ncm9fcmVjZWl2ZSsweDYyOS8weGE1MCBuZXQvY29yZS9kZXYuYzo0 ODg5CsKgZTEwMDBfcmVjZWl2ZV9za2IgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvZTEwMDAv ZTEwMDBfbWFpbi5jOjQwMTgKwqBlMTAwMF9jbGVhbl9yeF9pcnErMHgxNDkyLzB4MWQzMApkcml2 ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9lMTAwMC9lMTAwMF9tYWluLmM6NDQ3NArCoGUxMDAwX2Ns ZWFuKzB4NDNhYS8weDU5NzAgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvZTEwMDAvZTEwMDBf bWFpbi5jOjM4MTkKwqBuYXBpX3BvbGwgbmV0L2NvcmUvZGV2LmM6NTUwMArCoG5ldF9yeF9hY3Rp b24rMHg3M2MvMHgxODIwIG5ldC9jb3JlL2Rldi5jOjU1NjYKwqBfX2RvX3NvZnRpcnErMHg0YjQv MHg4ZGQga2VybmVsL3NvZnRpcnEuYzoyODQKwqBpbnZva2Vfc29mdGlycSBrZXJuZWwvc29mdGly cS5jOjM2NArCoGlycV9leGl0KzB4MjAzLzB4MjQwIGtlcm5lbC9zb2Z0aXJxLmM6NDA1CsKgZXhp dGluZ19pcnErMHhlLzB4MTAgLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljLmg6NjM4CsKgZG9f SVJRKzB4MTVlLzB4MWEwIGFyY2gveDg2L2tlcm5lbC9pcnEuYzoyNjMKwqBjb21tb25faW50ZXJy dXB0KzB4ODYvMHg4NgoKRml4ZXM6IGQ4OTRiYTE4ZDRlNCAoInNvcmV1c2Vwb3J0OiBmaXggb3Jk ZXJpbmcgZm9yIG1peGVkIHY0L3Y2IHNvY2tldHMiKQpGaXhlczogZDI5NmJhNjBkOGUyICgic29y ZXVzZXBvcnQ6IFJlc29sdmUgbWVyZ2UgY29uZmxpY3QgZm9yIHY0L3Y2IG9yZGVyaW5nIGZpeCIp ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0 ZWQtYnk6IEFsZXhhbmRlciBQb3RhcGVua28gPGdsaWRlckBnb29nbGUuY29tPgpBY2tlZC1ieTog Q3JhaWcgR2FsbGVrIDxrcmFpZ0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9yY3VsaXN0X251 bGxzLmggfCAzOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogaW5jbHVk ZS9uZXQvc29jay5oICAgICAgICAgICAgfCAgNiArLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv cmN1bGlzdF9udWxscy5oIGIvaW5jbHVkZS9saW51eC9yY3VsaXN0X251bGxzLmgKaW5kZXggNGFl OTVmN2U4NTk3Li42MjI0YTBhYjBiMWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcmN1bGlz dF9udWxscy5oCisrKyBiL2luY2x1ZGUvbGludXgvcmN1bGlzdF9udWxscy5oCkBAIC05OSw0NCAr OTksNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaGxpc3RfbnVsbHNfYWRkX2hlYWRfcmN1KHN0cnVj dCBobGlzdF9udWxsc19ub2RlICpuLAogCQlmaXJzdC0+cHByZXYgPSAmbi0+bmV4dDsKIH0KIAot LyoqCi0gKiBobGlzdF9udWxsc19hZGRfdGFpbF9yY3UKLSAqIEBuOiB0aGUgZWxlbWVudCB0byBh ZGQgdG8gdGhlIGhhc2ggbGlzdC4KLSAqIEBoOiB0aGUgbGlzdCB0byBhZGQgdG8uCi0gKgotICog RGVzY3JpcHRpb246Ci0gKiBBZGRzIHRoZSBzcGVjaWZpZWQgZWxlbWVudCB0byB0aGUgZW5kIG9m IHRoZSBzcGVjaWZpZWQgaGxpc3RfbnVsbHMsCi0gKiB3aGlsZSBwZXJtaXR0aW5nIHJhY2luZyB0 cmF2ZXJzYWxzLiAgTk9URTogdGFpbCBpbnNlcnRpb24gcmVxdWlyZXMKLSAqIGxpc3QgdHJhdmVy c2FsLgotICoKLSAqIFRoZSBjYWxsZXIgbXVzdCB0YWtlIHdoYXRldmVyIHByZWNhdXRpb25zIGFy ZSBuZWNlc3NhcnkKLSAqIChzdWNoIGFzIGhvbGRpbmcgYXBwcm9wcmlhdGUgbG9ja3MpIHRvIGF2 b2lkIHJhY2luZwotICogd2l0aCBhbm90aGVyIGxpc3QtbXV0YXRpb24gcHJpbWl0aXZlLCBzdWNo IGFzIGhsaXN0X251bGxzX2FkZF9oZWFkX3JjdSgpCi0gKiBvciBobGlzdF9udWxsc19kZWxfcmN1 KCksIHJ1bm5pbmcgb24gdGhpcyBzYW1lIGxpc3QuCi0gKiBIb3dldmVyLCBpdCBpcyBwZXJmZWN0 bHkgbGVnYWwgdG8gcnVuIGNvbmN1cnJlbnRseSB3aXRoCi0gKiB0aGUgX3JjdSBsaXN0LXRyYXZl cnNhbCBwcmltaXRpdmVzLCBzdWNoIGFzCi0gKiBobGlzdF9udWxsc19mb3JfZWFjaF9lbnRyeV9y Y3UoKSwgdXNlZCB0byBwcmV2ZW50IG1lbW9yeS1jb25zaXN0ZW5jeQotICogcHJvYmxlbXMgb24g QWxwaGEgQ1BVcy4gIFJlZ2FyZGxlc3Mgb2YgdGhlIHR5cGUgb2YgQ1BVLCB0aGUKLSAqIGxpc3Qt dHJhdmVyc2FsIHByaW1pdGl2ZSBtdXN0IGJlIGd1YXJkZWQgYnkgcmN1X3JlYWRfbG9jaygpLgot ICovCi1zdGF0aWMgaW5saW5lIHZvaWQgaGxpc3RfbnVsbHNfYWRkX3RhaWxfcmN1KHN0cnVjdCBo bGlzdF9udWxsc19ub2RlICpuLAotCQkJCQlzdHJ1Y3QgaGxpc3RfbnVsbHNfaGVhZCAqaCkKLXsK LQlzdHJ1Y3QgaGxpc3RfbnVsbHNfbm9kZSAqaSwgKmxhc3QgPSBOVUxMOwotCi0JZm9yIChpID0g aGxpc3RfbnVsbHNfZmlyc3RfcmN1KGgpOyAhaXNfYV9udWxscyhpKTsKLQkgICAgIGkgPSBobGlz dF9udWxsc19uZXh0X3JjdShpKSkKLQkJbGFzdCA9IGk7Ci0KLQlpZiAobGFzdCkgewotCQluLT5u ZXh0ID0gbGFzdC0+bmV4dDsKLQkJbi0+cHByZXYgPSAmbGFzdC0+bmV4dDsKLQkJcmN1X2Fzc2ln bl9wb2ludGVyKGhsaXN0X251bGxzX25leHRfcmN1KGxhc3QpLCBuKTsKLQl9IGVsc2UgewotCQlo bGlzdF9udWxsc19hZGRfaGVhZF9yY3UobiwgaCk7Ci0JfQotfQotCiAvKioKICAqIGhsaXN0X251 bGxzX2Zvcl9lYWNoX2VudHJ5X3JjdSAtIGl0ZXJhdGUgb3ZlciByY3UgbGlzdCBvZiBnaXZlbiB0 eXBlCiAgKiBAdHBvczoJdGhlIHR5cGUgKiB0byB1c2UgYXMgYSBsb29wIGN1cnNvci4KZGlmZiAt LWdpdCBhL2luY2x1ZGUvbmV0L3NvY2suaCBiL2luY2x1ZGUvbmV0L3NvY2suaAppbmRleCA5MmIy Njk3MDliOWEuLjZkNDJlZDg4M2JmOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc29jay5oCisr KyBiL2luY2x1ZGUvbmV0L3NvY2suaApAQCAtNjQ4LDExICs2NDgsNyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgc2tfYWRkX25vZGVfcmN1KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGhsaXN0X2hlYWQg Kmxpc3QpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3NrX251bGxzX2FkZF9ub2RlX3JjdShzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBobGlzdF9udWxsc19oZWFkICpsaXN0KQogewotCWlmIChJU19F TkFCTEVEKENPTkZJR19JUFY2KSAmJiBzay0+c2tfcmV1c2Vwb3J0ICYmCi0JICAgIHNrLT5za19m YW1pbHkgPT0gQUZfSU5FVDYpCi0JCWhsaXN0X251bGxzX2FkZF90YWlsX3JjdSgmc2stPnNrX251 bGxzX25vZGUsIGxpc3QpOwotCWVsc2UKLQkJaGxpc3RfbnVsbHNfYWRkX2hlYWRfcmN1KCZzay0+ c2tfbnVsbHNfbm9kZSwgbGlzdCk7CisJaGxpc3RfbnVsbHNfYWRkX2hlYWRfcmN1KCZzay0+c2tf bnVsbHNfbm9kZSwgbGlzdCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBza19udWxsc19hZGRf bm9kZV9yY3Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaGxpc3RfbnVsbHNfaGVhZCAqbGlzdCkK LS0gCjIuMTQuMwoKCkZyb20gZmU3YmJiYzA4OWI2OWE0YWYyNTZkMzYzZTk0YjQ3MTNmMDY3ZTQx YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTGFycyBQZXJzc29uIDxsYXJzLnBlcnNz b25AYXhpcy5jb20+CkRhdGU6IEZyaSwgMSBEZWMgMjAxNyAxMToxMjo0NCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMTAvMTVdIHN0bW1hYzogcmVzZXQgbGFzdCBUU08gc2VnbWVudCBzaXplIGFmdGVy IGRldmljZSBvcGVuCgpbIFVwc3RyZWFtIGNvbW1pdCA0NWFiNGIxM2U0NjMyNWQwMGY0YWNkYjM2 NWQ0MDZlOTQxYTE1ZjgxIF0KClRoZSBtc3MgdmFyaWFibGUgdHJhY2tzIHRoZSBsYXN0IG1heCBz ZWdtZW50IHNpemUgc2VudCB0byB0aGUgVFNPCmVuZ2luZS4gV2UgZG8gbm90IHVwZGF0ZSB0aGUg aGFyZHdhcmUgYXMgbG9uZyBhcyB3ZSByZWNlaXZlIHNrYjpzIHdpdGgKdGhlIHNhbWUgdmFsdWUg aW4gZ3NvX3NpemUuCgpEdXJpbmcgYSBuZXR3b3JrIGRldmljZSBkb3duL3VwIGN5Y2xlIChtYXBw ZWQgdG8gc3RtbWFjX3JlbGVhc2UoKSBhbmQKc3RtbWFjX29wZW4oKSBjYWxsYmFja3MpIHdlIGlz c3VlIGEgcmVzZXQgdG8gdGhlIGhhcmR3YXJlIGFuZCBpdApmb3JnZXRzIHRoZSBzZXR0aW5nIGZv ciBtc3MuIEhvd2V2ZXIgd2UgZGlkIG5vdCB6ZXJvIG91dCBvdXIgbXNzCnZhcmlhYmxlIHNvIHRo ZSBuZXh0IHRyYW5zbWlzc2lvbiBvZiBhIGdzbyBwYWNrZXQgaGFwcGVucyB3aXRoIGFuCnVuZGVm aW5lZCBoYXJkd2FyZSBzZXR0aW5nLgoKVGhpcyB0cmlnZ2VycyBhIGhhbmcgaW4gdGhlIFRTTyBl bmdpbmUgYW5kIGV2ZW50dWVsbHkgdGhlIG5ldGRldgp3YXRjaGRvZyB3aWxsIGJhcmsuCgpGaXhl czogZjc0OGJlNTMxZDcwICgic3RtbWFjOiBzdXBwb3J0IG5ldyBHTUFDNCIpClNpZ25lZC1vZmYt Ynk6IExhcnMgUGVyc3NvbiA8bGFycGVyQGF4aXMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv c3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0 bW1hY19tYWluLmMKaW5kZXggZWY2YmZmODIwY2Y2Li5hZGY2MWE3YjFiMDEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwpAQCAtMTc5 NSw2ICsxNzk1LDcgQEAgc3RhdGljIGludCBzdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogCiAJcHJpdi0+ZG1hX2J1Zl9zeiA9IFNUTU1BQ19BTElHTihidWZfc3opOwogCXByaXYt PnJ4X2NvcHlicmVhayA9IFNUTU1BQ19SWF9DT1BZQlJFQUs7CisJcHJpdi0+bXNzID0gMDsKIAog CXJldCA9IGFsbG9jX2RtYV9kZXNjX3Jlc291cmNlcyhwcml2KTsKIAlpZiAocmV0IDwgMCkgewot LSAKMi4xNC4zCgoKRnJvbSBkM2FhOGE5ZTM2OTI1MDc1YTk4OGI2MjI3ZThjOWMwMWE0MmE2Zjkw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IEZyaSwgMSBEZWMgMjAxNyAxMDowNjo1NiAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTEvMTVdIHRjcC9kY2NwOiBibG9jayBiaCBiZWZvcmUgYXJtaW5nIHRpbWVfd2FpdCB0 aW1lcgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQg Y2ZhYzdmODM2YTcxNWI5MWYwOGM4NTFkZjkxNWQ0MDFhNGQ1Mjc4MyBdCgpNYWNpZWogxbtlbmN6 eWtvd3NraSByZXBvcnRlZCBzb21lIHBhbmljcyBpbiB0Y3BfdHdza19kZXN0cnVjdG9yKCkKdGhh dCBtaWdodCBiZSBjYXVzZWQgYnkgdGhlIGZvbGxvd2luZyBidWcuCgp0aW1ld2FpdCB0aW1lciBp cyBwaW5uZWQgdG8gdGhlIGNwdSwgYmVjYXVzZSB3ZSB3YW50IHRvIHRyYW5zaXRpb24KdGltd2V3 YWl0IHJlZmNvdW50IGZyb20gMCB0byA0IGluIG9uZSBnbywgb25jZSBldmVyeXRoaW5nIGhhcyBi ZWVuCmluaXRpYWxpemVkLgoKQXQgdGhlIHRpbWUgY29tbWl0IGVkMmU5MjM5NDU4OSAoInRjcC9k Y2NwOiBmaXggdGltZXdhaXQgcmFjZXMgaW4gdGltZXIKaGFuZGxpbmciKSB3YXMgbWVyZ2VkLCBU Q1Agd2FzIGFsd2F5cyBydW5uaW5nIGZyb20gQkggaGFiZGxlci4KCkFmdGVyIGNvbW1pdCA1NDEz ZDFiYWJlOGYgKCJuZXQ6IGRvIG5vdCBibG9jayBCSCB3aGlsZSBwcm9jZXNzaW5nCnNvY2tldCBi YWNrbG9nIikgd2UgZGVmaW5pdGVseSBjYW4gcnVuIHRjcF90aW1lX3dhaXQoKSBmcm9tIHByb2Nl c3MKY29udGV4dC4KCldlIG5lZWQgdG8gYmxvY2sgQkggaW4gdGhlIGNyaXRpY2FsIHNlY3Rpb24g c28gdGhhdCB0aGUgcGlubmVkIHRpbWVyCmhhcyBzdGlsbCBpdHMgcHVycG9zZS4KClRoaXMgYnVn IGlzIG1vcmUgbGlrZWx5IHRvIGhhcHBlbiB1bmRlciBzdHJlc3MgYW5kIHdoZW4gdmVyeSBzbWFs bCBSVE8KYXJlIHVzZWQgaW4gZGF0YWNlbnRlciBmbG93cy4KCkZpeGVzOiA1NDEzZDFiYWJlOGYg KCJuZXQ6IGRvIG5vdCBibG9jayBCSCB3aGlsZSBwcm9jZXNzaW5nIHNvY2tldCBiYWNrbG9nIikK U2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRl ZC1ieTogTWFjaWVqIMW7ZW5jenlrb3dza2kgPG1hemVAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IE1h Y2llaiDFu2VuY3p5a293c2tpIDxtYXplQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvZGNjcC9taW5pc29ja3Mu YyAgICAgfCA2ICsrKysrKwogbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jIHwgNiArKysrKysKIDIg ZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9kY2NwL21p bmlzb2Nrcy5jIGIvbmV0L2RjY3AvbWluaXNvY2tzLmMKaW5kZXggMzllN2UyYmNhOGRiLi42MjUy MmI4ZDJmOTcgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL21pbmlzb2Nrcy5jCisrKyBiL25ldC9kY2Nw L21pbmlzb2Nrcy5jCkBAIC01NywxMCArNTcsMTYgQEAgdm9pZCBkY2NwX3RpbWVfd2FpdChzdHJ1 Y3Qgc29jayAqc2ssIGludCBzdGF0ZSwgaW50IHRpbWVvKQogCQlpZiAoc3RhdGUgPT0gRENDUF9U SU1FX1dBSVQpCiAJCQl0aW1lbyA9IERDQ1BfVElNRVdBSVRfTEVOOwogCisJCS8qIHR3X3RpbWVy IGlzIHBpbm5lZCwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgQkggYXJlIGRpc2FibGVkCisJCSAq IGluIGZvbGxvd2luZyBzZWN0aW9uLCBvdGhlcndpc2UgdGltZXIgaGFuZGxlciBjb3VsZCBydW4g YmVmb3JlCisJCSAqIHdlIGNvbXBsZXRlIHRoZSBpbml0aWFsaXphdGlvbi4KKwkJICovCisJCWxv Y2FsX2JoX2Rpc2FibGUoKTsKIAkJaW5ldF90d3NrX3NjaGVkdWxlKHR3LCB0aW1lbyk7CiAJCS8q IExpbmthZ2UgdXBkYXRlcy4gKi8KIAkJX19pbmV0X3R3c2tfaGFzaGRhbmNlKHR3LCBzaywgJmRj Y3BfaGFzaGluZm8pOwogCQlpbmV0X3R3c2tfcHV0KHR3KTsKKwkJbG9jYWxfYmhfZW5hYmxlKCk7 CiAJfSBlbHNlIHsKIAkJLyogU29ycnksIGlmIHdlJ3JlIG91dCBvZiBtZW1vcnksIGp1c3QgQ0xP U0UgdGhpcwogCQkgKiBzb2NrZXQgdXAuICBXZSd2ZSBnb3QgYmlnZ2VyIHByb2JsZW1zIHRoYW4K ZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYyBiL25ldC9pcHY0L3RjcF9taW5p c29ja3MuYwppbmRleCA2NGUxYmE0OWMzZTIuLjgzMGE1NjQ1ZDhjMSAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvdGNwX21pbmlzb2Nrcy5jCisrKyBiL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYwpAQCAt MzI4LDEwICszMjgsMTYgQEAgdm9pZCB0Y3BfdGltZV93YWl0KHN0cnVjdCBzb2NrICpzaywgaW50 IHN0YXRlLCBpbnQgdGltZW8pCiAJCQkJdGltZW8gPSBUQ1BfVElNRVdBSVRfTEVOOwogCQl9CiAK KwkJLyogdHdfdGltZXIgaXMgcGlubmVkLCBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSBCSCBhcmUg ZGlzYWJsZWQKKwkJICogaW4gZm9sbG93aW5nIHNlY3Rpb24sIG90aGVyd2lzZSB0aW1lciBoYW5k bGVyIGNvdWxkIHJ1biBiZWZvcmUKKwkJICogd2UgY29tcGxldGUgdGhlIGluaXRpYWxpemF0aW9u LgorCQkgKi8KKwkJbG9jYWxfYmhfZGlzYWJsZSgpOwogCQlpbmV0X3R3c2tfc2NoZWR1bGUodHcs IHRpbWVvKTsKIAkJLyogTGlua2FnZSB1cGRhdGVzLiAqLwogCQlfX2luZXRfdHdza19oYXNoZGFu Y2UodHcsIHNrLCAmdGNwX2hhc2hpbmZvKTsKIAkJaW5ldF90d3NrX3B1dCh0dyk7CisJCWxvY2Fs X2JoX2VuYWJsZSgpOwogCX0gZWxzZSB7CiAJCS8qIFNvcnJ5LCBpZiB3ZSdyZSBvdXQgb2YgbWVt b3J5LCBqdXN0IENMT1NFIHRoaXMKIAkJICogc29ja2V0IHVwLiAgV2UndmUgZ290IGJpZ2dlciBw cm9ibGVtcyB0aGFuCi0tIAoyLjE0LjMKCgpGcm9tIDI0YWMzZjQ2YjdkY2EwYmIwMGRiZjNjYTgx MDhjYWJiYzk0MTZiYWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBXaWVk bWFubiA8andpQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogRnJpLCAxIERlYyAyMDE3IDEwOjE0 OjUxICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMi8xNV0gczM5MC9xZXRoOiBidWlsZCBtYXggc2l6 ZSBHU08gc2ticyBvbiBMMiBkZXZpY2VzCgpbIFVwc3RyZWFtIGNvbW1pdCAwY2JmZjZkNDU0NjYx MzMzMGExYzVmMTM5ZjVjMzY4ZTRjZTMzY2ExIF0KClRoZSBjdXJyZW50IEdTTyBza2Igc2l6ZSBs aW1pdCB3YXMgY29weSZwYXN0ZWQgb3ZlciBmcm9tIHRoZSBMMyBwYXRoLAp3aGVyZSBpdCBpcyBu ZWVkZWQgZHVlIHRvIGEgVFNPIGxpbWl0YXRpb24uCkFzIEwyIGRldmljZXMgZG9uJ3Qgb2ZmZXIg VFNPIHN1cHBvcnQgKGFuZCB0aHVzIGFsbCBHU08gc2ticyBhcmUKc2VnbWVudGVkIGJlZm9yZSB0 aGV5IHJlYWNoIHRoZSBkcml2ZXIpLCB0aGVyZSdzIG5vIHJlYXNvbiB0byByZXN0cmljdAp0aGUg c3RhY2sgaW4gaG93IGxhcmdlIGl0IG1heSBidWlsZCB0aGUgR1NPIHNrYnMuCgpGaXhlczogZDUy YWVjOTdlNWJjICgicWV0aDogZW5hYmxlIHNjYXR0ZXIvZ2F0aGVyIGluIGxheWVyIDIgbW9kZSIp ClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJtLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMgfCAyIC0tCiBkcml2ZXJzL3MzOTAvbmV0 L3FldGhfbDNfbWFpbi5jIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJf bWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wyX21haW4uYwppbmRleCA4NTMwNDc3Y2Fh YjguLjhhYzc2MDc0YzllYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wyX21h aW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jCkBAIC0xMTQwLDggKzEx NDAsNiBAQCBzdGF0aWMgaW50IHFldGhfbDJfc2V0dXBfbmV0ZGV2KHN0cnVjdCBxZXRoX2NhcmQg KmNhcmQpCiAJfQogCWNhcmQtPmluZm8uYnJvYWRjYXN0X2NhcGFibGUgPSAxOwogCXFldGhfbDJf cmVxdWVzdF9pbml0aWFsX21hYyhjYXJkKTsKLQljYXJkLT5kZXYtPmdzb19tYXhfc2l6ZSA9IChR RVRIX01BWF9CVUZGRVJfRUxFTUVOVFMoY2FyZCkgLSAxKSAqCi0JCQkJICBQQUdFX1NJWkU7CiAJ U0VUX05FVERFVl9ERVYoY2FyZC0+ZGV2LCAmY2FyZC0+Z2Rldi0+ZGV2KTsKIAluZXRpZl9uYXBp X2FkZChjYXJkLT5kZXYsICZjYXJkLT5uYXBpLCBxZXRoX2wyX3BvbGwsIFFFVEhfTkFQSV9XRUlH SFQpOwogCW5ldGlmX2NhcnJpZXJfb2ZmKGNhcmQtPmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJz L3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4u YwppbmRleCAyMDRlZGIwYjY5YTUuLjUwYTJkZGE1M2I4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9z MzkwL25ldC9xZXRoX2wzX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFp bi5jCkBAIC0zMTQ3LDggKzMxNDcsOCBAQCBzdGF0aWMgaW50IHFldGhfbDNfc2V0dXBfbmV0ZGV2 KHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQpCiAJCQkJTkVUSUZfRl9IV19WTEFOX0NUQUdfUlggfAog CQkJCU5FVElGX0ZfSFdfVkxBTl9DVEFHX0ZJTFRFUjsKIAluZXRpZl9rZWVwX2RzdChjYXJkLT5k ZXYpOwotCWNhcmQtPmRldi0+Z3NvX21heF9zaXplID0gKFFFVEhfTUFYX0JVRkZFUl9FTEVNRU5U UyhjYXJkKSAtIDEpICoKLQkJCQkgIFBBR0VfU0laRTsKKwluZXRpZl9zZXRfZ3NvX21heF9zaXpl KGNhcmQtPmRldiwgKFFFVEhfTUFYX0JVRkZFUl9FTEVNRU5UUyhjYXJkKSAtIDEpICoKKwkJCQkJ ICBQQUdFX1NJWkUpOwogCiAJU0VUX05FVERFVl9ERVYoY2FyZC0+ZGV2LCAmY2FyZC0+Z2Rldi0+ ZGV2KTsKIAluZXRpZl9uYXBpX2FkZChjYXJkLT5kZXYsICZjYXJkLT5uYXBpLCBxZXRoX2wzX3Bv bGwsIFFFVEhfTkFQSV9XRUlHSFQpOwotLSAKMi4xNC4zCgoKRnJvbSAxNDZlYjdlNTQxNDc1Y2Nj ZWZiMWI2MWVlMzQ3NjNjNzk0OTlmNGQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK dWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6IEZyaSwgMSBEZWMg MjAxNyAxMDoxNDo1MCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMTVdIHMzOTAvcWV0aDogZml4 IEdTTyB0aHJvdWdocHV0IHJlZ3Jlc3Npb24KClsgVXBzdHJlYW0gY29tbWl0IDZkNjliMWYxZWI3 YTJlZGY4YTM1NDdmMzYxYzYxZjI1MzhlMDU0YmIgXQoKVXNpbmcgR1NPIHdpdGggc21hbGwgTVRV cyBjdXJyZW50bHkgcmVzdWx0cyBpbiBhIHN1YnN0YW50aWFsIHRocm91Z2hwdXQKcmVncmVzc2lv biAtIHdoaWNoIGlzIGNhdXNlZCBieSBob3cgcWV0aCBuZWVkcyB0byBtYXAgbm9uLWxpbmVhciBz a2JzCmludG8gaXRzIElPIGJ1ZmZlciBlbGVtZW50czoKY29tcGFyZWQgdG8gYSBsaW5lYXIgc2ti LCBlYWNoIEdTTy1zZWdtZW50ZWQgc2tiIGVmZmVjdGl2ZWx5IGNvbnN1bWVzCnR3aWNlIGFzIG1h bnkgYnVmZmVyIGVsZW1lbnRzIChpZSB0d28gaW5zdGVhZCBvZiBvbmUpIGR1ZSB0byB0aGUKYWRk aXRpb25hbCBoZWFkZXItb25seSBwYXJ0LiBUaGlzIGNhdXNlcyB0aGUgT3V0cHV0IFF1ZXVlIHRv IGJlCmNvbmdlc3RlZCB3aXRoIGxvdy11dGlsaXplZCBJTyBidWZmZXJzLgoKRml4IHRoaXMgYXMg Zm9sbG93czoKSWYgdGhlIE1TUyBpcyBsb3cgZW5vdWdoIHNvIHRoYXQgYSBub24tU0cgR1NPIHNl Z21lbnRhdGlvbiBwcm9kdWNlcwpvcmRlci0wIHNrYnMgKGN1cnJlbnRseSB+MzUwMCBieXRlKSwg b3B0IG91dCBmcm9tIE5FVElGX0ZfU0cuIFRoaXMgaXMKd2hlcmUgd2UgYW50aWNpcGF0ZSB0aGUg YmlnZ2VzdCBzYXZpbmdzLCBzaW5jZSBhbiBTRy1lbmFibGVkCkdTTyBzZWdtZW50YXRpb24gcHJv ZHVjZXMgc2ticyB0aGF0IGFsd2F5cyBjb25zdW1lIGF0IGxlYXN0IHR3bwpidWZmZXIgZWxlbWVu dHMuCgpMYXJnZXIgTVNTIHZhbHVlcyBjb250aW51ZSB0byBnZXQgYSBTRy1lbmFibGVkIEdTTyBz ZWdtZW50YXRpb24sIHNpbmNlCjEpIHRoZSByZWxhdGl2ZSBvdmVyaGVhZCBvZiB0aGUgYWRkaXRp b25hbCBoZWFkZXItb25seSBidWZmZXIgZWxlbWVudApiZWNvbWVzIGxlc3Mgbm90aWNlYWJsZSwg YW5kCjIpIHRoZSBsaW5lYXJpemF0aW9uIG92ZXJoZWFkIGluY3JlYXNlcy4KCldpdGggdGhlIHRo cm91Z2hwdXQgcmVncmVzc2lvbiBmaXhlZCwgcmUtZW5hYmxlIE5FVElGX0ZfU0cgYnkgZGVmYXVs dCB0bwpyZWFwIHRoZSBzaWduaWZpY2FudCBDUFUgc2F2aW5ncyBvZiBHU08uCgpGaXhlczogNTcy Mjk2M2E4ZTgzICgicWV0aDogZG8gbm90IHR1cm4gb24gU0cgcGVyIGRlZmF1bHQiKQpSZXBvcnRl ZC1ieTogTmlscyBIb3BwbWFubiA8bmlob0BkZS5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBKdWxp YW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3Fl dGhfY29yZS5oICAgICAgfCAgMyArKysKIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4u YyB8IDMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvczM5MC9uZXQv cWV0aF9sMl9tYWluLmMgICB8ICAyICsrCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5j ICAgfCAgMiArKwogNCBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmUuaCBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9j b3JlLmgKaW5kZXggZDU1ZTY0MzhiYjVlLi5lMmJkMmFkMDFiMTUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvczM5MC9uZXQvcWV0aF9jb3JlLmgKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmUu aApAQCAtMTAwNCw2ICsxMDA0LDkgQEAgc3RydWN0IHFldGhfY21kX2J1ZmZlciAqcWV0aF9nZXRf c2V0YXNzcGFybXNfY21kKHN0cnVjdCBxZXRoX2NhcmQgKiwKIGludCBxZXRoX3NldF9mZWF0dXJl cyhzdHJ1Y3QgbmV0X2RldmljZSAqLCBuZXRkZXZfZmVhdHVyZXNfdCk7CiBpbnQgcWV0aF9yZWNv dmVyX2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICopOwogbmV0ZGV2X2ZlYXR1cmVzX3QgcWV0 aF9maXhfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKiwgbmV0ZGV2X2ZlYXR1cmVzX3QpOwor bmV0ZGV2X2ZlYXR1cmVzX3QgcWV0aF9mZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2ti LAorCQkJCSAgICAgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkJICAgICAgbmV0ZGV2X2Zl YXR1cmVzX3QgZmVhdHVyZXMpOwogCiAvKiBleHBvcnRzIGZvciBPU04gKi8KIGludCBxZXRoX29z bl9hc3Npc3Qoc3RydWN0IG5ldF9kZXZpY2UgKiwgdm9pZCAqLCBpbnQpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRo X2NvcmVfbWFpbi5jCmluZGV4IDIxZWY4MDIzNDMwZi4uYjVmYTZiYjU2YjI5IDEwMDY0NAotLS0g YS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25l dC9xZXRoX2NvcmVfbWFpbi5jCkBAIC0xOSw2ICsxOSwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L21p aS5oPgogI2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+ CisjaW5jbHVkZSA8bGludXgvaWZfdmxhbi5oPgorI2luY2x1ZGUgPGxpbnV4L25ldGRldmljZS5o PgorI2luY2x1ZGUgPGxpbnV4L25ldGRldl9mZWF0dXJlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3Nr YnVmZi5oPgorCiAjaW5jbHVkZSA8bmV0L2l1Y3YvYWZfaXVjdi5oPgogI2luY2x1ZGUgPG5ldC9k c2ZpZWxkLmg+CiAKQEAgLTYyNDAsNiArNjI0NSwzMiBAQCBuZXRkZXZfZmVhdHVyZXNfdCBxZXRo X2ZpeF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogfQogRVhQT1JUX1NZTUJPTF9H UEwocWV0aF9maXhfZmVhdHVyZXMpOwogCituZXRkZXZfZmVhdHVyZXNfdCBxZXRoX2ZlYXR1cmVz X2NoZWNrKHN0cnVjdCBza19idWZmICpza2IsCisJCQkJICAgICAgc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwKKwkJCQkgICAgICBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcykKK3sKKwkvKiBHU08g c2VnbWVudGF0aW9uIGJ1aWxkcyBza2JzIHdpdGgKKwkgKglhIChzbWFsbCkgbGluZWFyIHBhcnQg Zm9yIHRoZSBoZWFkZXJzLCBhbmQKKwkgKglwYWdlIGZyYWdzIGZvciB0aGUgZGF0YS4KKwkgKiBD b21wYXJlZCB0byBhIGxpbmVhciBza2IsIHRoZSBoZWFkZXItb25seSBwYXJ0IGNvbnN1bWVzIGFu CisJICogYWRkaXRpb25hbCBidWZmZXIgZWxlbWVudC4gVGhpcyByZWR1Y2VzIGJ1ZmZlciB1dGls aXphdGlvbiwgYW5kCisJICogaHVydHMgdGhyb3VnaHB1dC4gU28gY29tcHJlc3Mgc21hbGwgc2Vn bWVudHMgaW50byBvbmUgZWxlbWVudC4KKwkgKi8KKwlpZiAobmV0aWZfbmVlZHNfZ3NvKHNrYiwg ZmVhdHVyZXMpKSB7CisJCS8qIG1hdGNoIHNrYl9zZWdtZW50KCk6ICovCisJCXVuc2lnbmVkIGlu dCBkb2Zmc2V0ID0gc2tiLT5kYXRhIC0gc2tiX21hY19oZWFkZXIoc2tiKTsKKwkJdW5zaWduZWQg aW50IGhzaXplID0gc2tiX3NoaW5mbyhza2IpLT5nc29fc2l6ZTsKKwkJdW5zaWduZWQgaW50IGhy b29tID0gc2tiX2hlYWRyb29tKHNrYik7CisKKwkJLyogbGluZWFyaXplIG9ubHkgaWYgcmVzdWx0 aW5nIHNrYiBhbGxvY2F0aW9ucyBhcmUgb3JkZXItMDogKi8KKwkJaWYgKFNLQl9EQVRBX0FMSUdO KGhyb29tICsgZG9mZnNldCArIGhzaXplKSA8PSBTS0JfTUFYX0hFQUQoMCkpCisJCQlmZWF0dXJl cyAmPSB+TkVUSUZfRl9TRzsKKwl9CisKKwlyZXR1cm4gdmxhbl9mZWF0dXJlc19jaGVjayhza2Is IGZlYXR1cmVzKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHFldGhfZmVhdHVyZXNfY2hlY2spOwor CiBzdGF0aWMgaW50IF9faW5pdCBxZXRoX2NvcmVfaW5pdCh2b2lkKQogewogCWludCByYzsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMgYi9kcml2ZXJzL3MzOTAv bmV0L3FldGhfbDJfbWFpbi5jCmluZGV4IDhhYzc2MDc0YzllYy4uYWMzM2Y2Yzk5OWIxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5 MC9uZXQvcWV0aF9sMl9tYWluLmMKQEAgLTEwODQsNiArMTA4NCw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgbmV0X2RldmljZV9vcHMgcWV0aF9sMl9uZXRkZXZfb3BzID0gewogCS5uZG9fc3RvcAkJ PSBxZXRoX2wyX3N0b3AsCiAJLm5kb19nZXRfc3RhdHMJCT0gcWV0aF9nZXRfc3RhdHMsCiAJLm5k b19zdGFydF94bWl0CQk9IHFldGhfbDJfaGFyZF9zdGFydF94bWl0LAorCS5uZG9fZmVhdHVyZXNf Y2hlY2sJPSBxZXRoX2ZlYXR1cmVzX2NoZWNrLAogCS5uZG9fdmFsaWRhdGVfYWRkcgk9IGV0aF92 YWxpZGF0ZV9hZGRyLAogCS5uZG9fc2V0X3J4X21vZGUJPSBxZXRoX2wyX3NldF9yeF9tb2RlLAog CS5uZG9fZG9faW9jdGwJICAgCT0gcWV0aF9sMl9kb19pb2N0bCwKQEAgLTExMjgsNiArMTEyOSw3 IEBAIHN0YXRpYyBpbnQgcWV0aF9sMl9zZXR1cF9uZXRkZXYoc3RydWN0IHFldGhfY2FyZCAqY2Fy ZCkKIAlpZiAoY2FyZC0+aW5mby50eXBlID09IFFFVEhfQ0FSRF9UWVBFX09TRCAmJiAhY2FyZC0+ aW5mby5ndWVzdGxhbikgewogCQljYXJkLT5kZXYtPmh3X2ZlYXR1cmVzID0gTkVUSUZfRl9TRzsK IAkJY2FyZC0+ZGV2LT52bGFuX2ZlYXR1cmVzID0gTkVUSUZfRl9TRzsKKwkJY2FyZC0+ZGV2LT5m ZWF0dXJlcyB8PSBORVRJRl9GX1NHOwogCQkvKiBPU0EgM1MgYW5kIGVhcmxpZXIgaGFzIG5vIFJY L1RYIHN1cHBvcnQgKi8KIAkJaWYgKHFldGhfaXNfc3VwcG9ydGVkKGNhcmQsIElQQV9PVVRCT1VO RF9DSEVDS1NVTSkpIHsKIAkJCWNhcmQtPmRldi0+aHdfZmVhdHVyZXMgfD0gTkVUSUZfRl9JUF9D U1VNOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYyBiL2RyaXZl cnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKaW5kZXggNTBhMmRkYTUzYjhhLi4wNzU1NWEyNGZh ZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKKysrIGIvZHJp dmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwpAQCAtMzA2Niw2ICszMDY2LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBxZXRoX2wzX25ldGRldl9vcHMgPSB7CiAJLm5k b19zdG9wCQk9IHFldGhfbDNfc3RvcCwKIAkubmRvX2dldF9zdGF0cwkJPSBxZXRoX2dldF9zdGF0 cywKIAkubmRvX3N0YXJ0X3htaXQJCT0gcWV0aF9sM19oYXJkX3N0YXJ0X3htaXQsCisJLm5kb19m ZWF0dXJlc19jaGVjawk9IHFldGhfZmVhdHVyZXNfY2hlY2ssCiAJLm5kb192YWxpZGF0ZV9hZGRy CT0gZXRoX3ZhbGlkYXRlX2FkZHIsCiAJLm5kb19zZXRfcnhfbW9kZQk9IHFldGhfbDNfc2V0X211 bHRpY2FzdF9saXN0LAogCS5uZG9fZG9faW9jdGwJCT0gcWV0aF9sM19kb19pb2N0bCwKQEAgLTMx MjIsNiArMzEyMyw3IEBAIHN0YXRpYyBpbnQgcWV0aF9sM19zZXR1cF9uZXRkZXYoc3RydWN0IHFl dGhfY2FyZCAqY2FyZCkKIAkJCQljYXJkLT5kZXYtPnZsYW5fZmVhdHVyZXMgPSBORVRJRl9GX1NH IHwKIAkJCQkJTkVUSUZfRl9SWENTVU0gfCBORVRJRl9GX0lQX0NTVU0gfAogCQkJCQlORVRJRl9G X1RTTzsKKwkJCQljYXJkLT5kZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfU0c7CiAJCQl9CiAJCX0K IAl9IGVsc2UgaWYgKGNhcmQtPmluZm8udHlwZSA9PSBRRVRIX0NBUkRfVFlQRV9JUUQpIHsKLS0g CjIuMTQuMwoKCkZyb20gNjMwNzJjZmU2NzE2ZDk3Y2JhY2E1NWFhZDE0NzJhMjVjNWZkMDlmMiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXgu dm5ldC5pYm0uY29tPgpEYXRlOiBGcmksIDEgRGVjIDIwMTcgMTA6MTQ6NDkgKzAxMDAKU3ViamVj dDogW1BBVENIIDE0LzE1XSBzMzkwL3FldGg6IGZpeCB0aGlua28gaW4gSVB2NCBtdWx0aWNhc3Qg YWRkcmVzcwogdHJhY2tpbmcKClsgVXBzdGVhbSBjb21taXQgYmMzYWI3MDU4NDY5NmNiNzk4Yjll MWUwYWM4ZTZjZWQ1ZmQ0YzNiOCBdCgpDb21taXQgNWY3OGUyOWNlZWJmICgicWV0aDogb3B0aW1p emUgSVAgaGFuZGxpbmcgaW4gcnhfbW9kZSBjYWxsYmFjayIpCnJld29ya2VkIGhvdyBzZWNvbmRh cnkgYWRkcmVzc2VzIGFyZSBtYW5hZ2VkIGZvciBxZXRoIGRldmljZXMuCkluc3RlYWQgb2YgZHJv cHBpbmcgJiBzdWJzZXF1ZW50bHkgcmUtYWRkaW5nIGFsbCBhZGRyZXNzZXMgb24gZXZlcnkKbmRv X3NldF9yeF9tb2RlKCkgY2FsbCwgcWV0aCBub3cga2VlcHMgdHJhY2sgb2YgdGhlIGFkZHJlc3Nl cyB0aGF0IGFyZQpjdXJyZW50bHkgcmVnaXN0ZXJlZCB3aXRoIHRoZSBIVy4KT24gYSBuZG9fc2V0 X3J4X21vZGUoKSwgd2UgdGh1cyBvbmx5IG5lZWQgdG8gZG8gKGRlLSlyZWdpc3RyYXRpb24KcmVx dWVzdHMgZm9yIHRoZSBhZGRyZXNzZXMgdGhhdCBoYXZlIGFjdHVhbGx5IGNoYW5nZWQuCgpPbiBM MyBkZXZpY2VzLCB0aGUgbG9va3VwIGZvciBJUHY0IE11bHRpY2FzdCBhZGRyZXNzZXMgY2hlY2tz IHRoZSB3cm9uZwpoYXNodGFibGUgLSBhbmQgdGh1cyBuZXZlciBmaW5kcyBhIG1hdGNoLiBBcyBh IHJlc3VsdCwgd2UgZmlyc3QgZGVsZXRlCiphbGwqIHN1Y2ggYWRkcmVzc2VzLCBhbmQgdGhlbiBy ZS1hZGQgdGhlbSBhZ2Fpbi4gU28gZWFjaCBzZXRfcnhfbW9kZSgpCmNhdXNlcyBhIHNob3J0IHBl cmlvZCB3aGVyZSB0aGUgSVB2NCBNdWx0aWNhc3QgYWRkcmVzc2VzIGFyZSBub3QKcmVnaXN0ZXJl ZCwgYW5kIHRoZSBjYXJkIHN0b3BzIGZvcndhcmRpbmcgaW5ib3VuZCB0cmFmZmljIGZvciB0aGVt LgoKRml4IHRoaXMgYnkgc2V0dGluZyB0aGUgLT5pc19tdWx0aWNhc3QgZmxhZyBvbiB0aGUgbG9v a3VwIG9iamVjdCwgdGh1cwplbmFibGluZyBxZXRoX2wzX2lwX2Zyb21faGFzaCgpIHRvIHNlYXJj aCB0aGUgY29ycmVjdCBoYXNodGFibGUgYW5kCmZpbmQgYSBtYXRjaCB0aGVyZS4KCkZpeGVzOiA1 Zjc4ZTI5Y2VlYmYgKCJxZXRoOiBvcHRpbWl6ZSBJUCBoYW5kbGluZyBpbiByeF9tb2RlIGNhbGxi YWNrIikKU2lnbmVkLW9mZi1ieTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXgudm5ldC5pYm0u Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYyB8IDEgKwogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wz X21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKaW5kZXggMDc1NTVhMjRm YWRlLi41NzM1ZmMzYmU2YzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19t YWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwpAQCAtMTQxNiw2ICsx NDE2LDcgQEAgcWV0aF9sM19hZGRfbWNfdG9faGFzaChzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkLCBz dHJ1Y3QgaW5fZGV2aWNlICppbjRfZGV2KQogCiAJCXRtcC0+dS5hNC5hZGRyID0gaW00LT5tdWx0 aWFkZHI7CiAJCW1lbWNweSh0bXAtPm1hYywgYnVmLCBzaXplb2YodG1wLT5tYWMpKTsKKwkJdG1w LT5pc19tdWx0aWNhc3QgPSAxOwogCiAJCWlwbSA9IHFldGhfbDNfaXBfZnJvbV9oYXNoKGNhcmQs IHRtcCk7CiAJCWlmIChpcG0pIHsKLS0gCjIuMTQuMwoKCkZyb20gNGYwMzJiZGQ3ZTQ3YWE2OTYw NTA3YThkZTQxNDM4NWNmNWMxZTgzYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9t bWkgUmFudGFsYSA8dG9tbWkudC5yYW50YWxhQG5va2lhLmNvbT4KRGF0ZTogV2VkLCAyOSBOb3Yg MjAxNyAxMjo0ODo0MiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMTVdIHRpcGM6IGNhbGwgdGlw Y19yY3YoKSBvbmx5IGlmIGJlYXJlciBpcyB1cCBpbgogdGlwY191ZHBfcmVjdigpCgpbIFVwc3Ry ZWFtIGNvbW1pdCBjNzc5OWMwNjdjMmFlMzNlMzQ4NTA4YzhhZmVjMzU0ZjMyNTdmZjI1IF0KClJl bW92ZSB0aGUgc2Vjb25kIHRpcGNfcmN2KCkgY2FsbCBpbiB0aXBjX3VkcF9yZWN2KCkuIFdlIGhh dmUganVzdApjaGVja2VkIHRoYXQgdGhlIGJlYXJlciBpcyBub3QgdXAsIGFuZCBjYWxsaW5nIHRp cGNfcmN2KCkgd2l0aCBhIGJlYXJlcgp0aGF0IGlzIG5vdCB1cCBsZWFkcyB0byBhIFRJUEMgZGl2 LWJ5LXplcm8gY3Jhc2ggaW4KdGlwY19ub2RlX2NhbGN1bGF0ZV90aW1lcigpLiBUaGUgY3Jhc2gg aXMgcmFyZSBpbiBwcmFjdGljZSwgYnV0IGNhbgpoYXBwZW4gbGlrZSB0aGlzOgoKICBXZSdyZSBl bmFibGluZyBhIGJlYXJlciwgYnV0IGl0J3Mgbm90IHlldCB1cCBhbmQgZnVsbHkgaW5pdGlhbGl6 ZWQuCiAgQXQgdGhlIHNhbWUgdGltZSB3ZSByZWNlaXZlIGEgZGlzY292ZXJ5IHBhY2tldCwgYW5k IGluIHRpcGNfdWRwX3JlY3YoKQogIHdlIGVuZCB1cCBjYWxsaW5nIHRpcGNfcmN2KCkgd2l0aCB0 aGUgbm90LXlldC1pbml0aWFsaXplZCBiZWFyZXIsCiAgY2F1c2luZyBsYXRlciB0aGUgZGl2LWJ5 LXplcm8gY3Jhc2ggaW4gdGlwY19ub2RlX2NhbGN1bGF0ZV90aW1lcigpLgoKSm9uIE1hbG95IGV4 cGxhaW5zIHRoZSBpbXBhY3Qgb2YgcmVtb3ZpbmcgdGhlIHNlY29uZCB0aXBjX3JjdigpIGNhbGw6 CiAgImxpbmsgc2V0dXAgaW4gdGhlIHdvcnN0IGNhc2Ugd2lsbCBiZSBkZWxheWVkIHVudGlsIHRo ZSBuZXh0IGFycml2aW5nCiAgIGRpc2NvdmVyeSBtZXNzYWdlcywgMSBzZWMgbGF0ZXIsIGFuZCB0 aGlzIGlzIGFuIGFjY2VwdGFibGUgZGVsYXkuIgoKQXMgdGhlIHRpcGNfcmN2KCkgY2FsbCBpcyBy ZW1vdmVkLCBqdXN0IGxlYXZlIHRoZSBmdW5jdGlvbiB2aWEgdGhlCnJjdV9vdXQgbGFiZWwsIHNv IHRoYXQgd2Ugd2lsbCBrZnJlZV9za2IoKS4KClsgICAxMi41OTA0NTBdIE93biBub2RlIGFkZHJl c3MgPDEuMS4xPiwgbmV0d29yayBpZGVudGl0eSAxClsgICAxMi42NjgwODhdIGRpdmlkZSBlcnJv cjogMDAwMCBbIzFdIFNNUApbICAgMTIuNjc2OTUyXSBDUFU6IDIgUElEOiAwIENvbW06IHN3YXBw ZXIvMiBOb3QgdGFpbnRlZCA0LjE0LjItZGlydHkgIzEKWyAgIDEyLjY3OTIyNV0gSGFyZHdhcmUg bmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgMS4xMC4y LTIuZmMyNyAwNC8wMS8yMDE0ClsgICAxMi42ODIwOTVdIHRhc2s6IGZmZmY4YzJhNzYxZWRiODAg dGFzay5zdGFjazogZmZmZmE0MWNjMGNhYzAwMApbICAgMTIuNjg0MDg3XSBSSVA6IDAwMTA6dGlw Y19ub2RlX2NhbGN1bGF0ZV90aW1lci5pc3JhLjEyKzB4NDUvMHg2MCBbdGlwY10KWyAgIDEyLjY4 NjQ4Nl0gUlNQOiAwMDE4OmZmZmY4YzJhN2ZjODM4YTAgRUZMQUdTOiAwMDAxMDI0NgpbICAgMTIu Njg4NDUxXSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmOGMyYTViMzgyNjAwIFJDWDog MDAwMDAwMDAwMDAwMDAwMApbICAgMTIuNjkxMTk3XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJ OiBmZmZmOGMyYTViMzgyNjAwIFJESTogZmZmZjhjMmE1YjM4MjYwMApbICAgMTIuNjkzOTQ1XSBS QlA6IGZmZmY4YzJhN2ZjODM4YjAgUjA4OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTogMDAwMDAwMDAw MDAwMDAwMQpbICAgMTIuNjk2NjMyXSBSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAw MDAwMDAwMDAwIFIxMjogZmZmZjhjMmE1ZDg5NDlkOApbICAgMTIuNjk5NDkxXSBSMTM6IGZmZmZm ZmZmOTVlZGU0MDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogZmZmZjhjMmE1ZDg5NDgwMApb ICAgMTIuNzAyMzM4XSBGUzogIDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZjhjMmE3ZmM4 MDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgICAxMi43MDUwOTldIENTOiAgMDAx MCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAgIDEyLjcwNjc3Nl0g Q1IyOiAwMDAwMDAwMDAxYmI5NDQwIENSMzogMDAwMDAwMDBiZDAwOTAwMSBDUjQ6IDAwMDAwMDAw MDAzNjA2ZTAKWyAgIDEyLjcwODg0N10gRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAw MDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAKWyAgIDEyLjcxMTAxNl0gRFIzOiAwMDAw MDAwMDAwMDAwMDAwIERSNjogMDAwMDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAK WyAgIDEyLjcxMjYyN10gQ2FsbCBUcmFjZToKWyAgIDEyLjcxMzM5MF0gIDxJUlE+ClsgICAxMi43 MTQwMTFdICB0aXBjX25vZGVfY2hlY2tfZGVzdCsweDJlOC8weDM1MCBbdGlwY10KWyAgIDEyLjcx NTI4Nl0gIHRpcGNfZGlzY19yY3YrMHgxNGQvMHgxZDAgW3RpcGNdClsgICAxMi43MTYzNzBdICB0 aXBjX3JjdisweDhiMC8weGQ0MCBbdGlwY10KWyAgIDEyLjcxNzM5Nl0gID8gbWlubWF4X3J1bm5p bmdfbWluKzB4MmYvMHg2MApbICAgMTIuNzE4MjQ4XSAgPyBkc3RfYWxsb2MrMHg0Yy8weGEwClsg ICAxMi43MTg5NjRdICA/IHRjcF9hY2srMHhhZjEvMHgxMGIwClsgICAxMi43MTk2NThdICA/IHRp cGNfdWRwX2lzX2tub3duX3BlZXIrMHhhMC8weGEwIFt0aXBjXQpbICAgMTIuNzIwNjM0XSAgdGlw Y191ZHBfcmVjdisweDcxLzB4MWQwIFt0aXBjXQpbICAgMTIuNzIxNDU5XSAgPyBkc3RfYWxsb2Mr MHg0Yy8weGEwClsgICAxMi43MjIxMzBdICB1ZHBfcXVldWVfcmN2X3NrYisweDI2NC8weDQ5MApb ICAgMTIuNzIyOTI0XSAgX191ZHA0X2xpYl9yY3YrMHgyMWUvMHg5OTAKWyAgIDEyLjcyMzY3MF0g ID8gaXBfcm91dGVfaW5wdXRfcmN1KzB4MmRkLzB4YmYwClsgICAxMi43MjQ0NDJdICA/IHRjcF92 NF9yY3YrMHg5NTgvMHhhNDAKWyAgIDEyLjcyNTAzOV0gIHVkcF9yY3YrMHgxYS8weDIwClsgICAx Mi43MjU1ODddICBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweDk3LzB4MWQwClsgICAxMi43MjYz MjNdICBpcF9sb2NhbF9kZWxpdmVyKzB4YWYvMHhjMApbICAgMTIuNzI2OTU5XSAgPyBpcF9yb3V0 ZV9pbnB1dF9ub3JlZisweDE5LzB4MjAKWyAgIDEyLjcyNzY4OV0gIGlwX3Jjdl9maW5pc2grMHhk ZC8weDNiMApbICAgMTIuNzI4MzA3XSAgaXBfcmN2KzB4MmFjLzB4MzYwClsgICAxMi43Mjg4Mzld ICBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHg2ZmIvMHhhOTAKWyAgIDEyLjcyOTU4MF0gID8g dWRwNF9ncm9fcmVjZWl2ZSsweDFhNy8weDJjMApbICAgMTIuNzMwMjc0XSAgX19uZXRpZl9yZWNl aXZlX3NrYisweDFkLzB4NjAKWyAgIDEyLjczMDk1M10gID8gX19uZXRpZl9yZWNlaXZlX3NrYisw eDFkLzB4NjAKWyAgIDEyLjczMTYzN10gIG5ldGlmX3JlY2VpdmVfc2tiX2ludGVybmFsKzB4Mzcv MHhkMApbICAgMTIuNzMyMzcxXSAgbmFwaV9ncm9fcmVjZWl2ZSsweGM3LzB4ZjAKWyAgIDEyLjcz MjkyMF0gIHJlY2VpdmVfYnVmKzB4M2MzLzB4ZDQwClsgICAxMi43MzM0NDFdICB2aXJ0bmV0X3Bv bGwrMHhiMS8weDI1MApbICAgMTIuNzMzOTQ0XSAgbmV0X3J4X2FjdGlvbisweDIzZS8weDM3MApb ICAgMTIuNzM0NDc2XSAgX19kb19zb2Z0aXJxKzB4YzUvMHgyZjgKWyAgIDEyLjczNDkyMl0gIGly cV9leGl0KzB4ZmEvMHgxMDAKWyAgIDEyLjczNTMxNV0gIGRvX0lSUSsweDRmLzB4ZDAKWyAgIDEy LjczNTY4MF0gIGNvbW1vbl9pbnRlcnJ1cHQrMHhhMi8weGEyClsgICAxMi43MzYxMjZdICA8L0lS UT4KWyAgIDEyLjczNjQxNl0gUklQOiAwMDEwOm5hdGl2ZV9zYWZlX2hhbHQrMHg2LzB4MTAKWyAg IDEyLjczNjkyNV0gUlNQOiAwMDE4OmZmZmZhNDFjYzBjYWZlOTAgRUZMQUdTOiAwMDAwMDI0NiBP UklHX1JBWDogZmZmZmZmZmZmZmZmZmY0ZApbICAgMTIuNzM3NzU2XSBSQVg6IDAwMDAwMDAwMDAw MDAwMDAgUkJYOiBmZmZmOGMyYTc2MWVkYjgwIFJDWDogMDAwMDAwMDAwMDAwMDAwMApbICAgMTIu NzM4NTA0XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwMDAwMDAwMDAwMDAwIFJESTog MDAwMDAwMDAwMDAwMDAwMApbICAgMTIuNzM5MjU4XSBSQlA6IGZmZmZhNDFjYzBjYWZlOTAgUjA4 OiAwMDAwMDE0YjViOTc5NWU1IFIwOTogZmZmZmE0MWNjMTJjN2U4OApbICAgMTIuNzQwMTE4XSBS MTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMDAwIFIxMjogMDAwMDAwMDAw MDAwMDAwMgpbICAgMTIuNzQwOTY0XSBSMTM6IGZmZmY4YzJhNzYxZWRiODAgUjE0OiAwMDAwMDAw MDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMApbICAgMTIuNzQxODMxXSAgZGVmYXVsdF9p ZGxlKzB4MmEvMHgxMDAKWyAgIDEyLjc0MjMyM10gIGFyY2hfY3B1X2lkbGUrMHhmLzB4MjAKWyAg IDEyLjc0Mjc5Nl0gIGRlZmF1bHRfaWRsZV9jYWxsKzB4MjgvMHg0MApbICAgMTIuNzQzMzEyXSAg ZG9faWRsZSsweDE3OS8weDFmMApbICAgMTIuNzQzNzYxXSAgY3B1X3N0YXJ0dXBfZW50cnkrMHgx ZC8weDIwClsgICAxMi43NDQyOTFdICBzdGFydF9zZWNvbmRhcnkrMHgxMTIvMHgxMjAKWyAgIDEy Ljc0NDgxNl0gIHNlY29uZGFyeV9zdGFydHVwXzY0KzB4YTUvMHhhNQpbICAgMTIuNzQ1MzY3XSBD b2RlOiBiOSBmNCAwMSAwMCAwMCA0OCA4OSBjMiA0OCBjMSBlYSAwMiA0OCAzZCBkMyAwNyAwMAow MCA0OCAwZiA0NyBkMSA0OSA4YiAwYyAyNCA0OCAzOSBkMSA3NiAwNyA0OSA4OSAxNCAyNCA0OCA4 OSBkMSAzMSBkMiA0OAo4OSBkZiA8NDg+IGY3IGYxIDg5IGM2IGU4IDgxIDZlIGZmIGZmIDViIDQx IDVjIDVkIGMzIDY2IDkwIDY2IDJlIDBmIDFmClsgICAxMi43NDc1MjddIFJJUDogdGlwY19ub2Rl X2NhbGN1bGF0ZV90aW1lci5pc3JhLjEyKzB4NDUvMHg2MCBbdGlwY10gUlNQOiBmZmZmOGMyYTdm YzgzOGEwClsgICAxMi43NDg1NTVdIC0tLVsgZW5kIHRyYWNlIDEzOTlhYjgzMzkwNjUwZmQgXS0t LQpbICAgMTIuNzQ5Mjk2XSBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogRmF0YWwgZXhjZXB0 aW9uIGluIGludGVycnVwdApbICAgMTIuNzUwMTIzXSBLZXJuZWwgT2Zmc2V0OiAweDEzMjAwMDAw IGZyb20gMHhmZmZmZmZmZjgyMDAwMDAwCihyZWxvY2F0aW9uIHJhbmdlOiAweGZmZmZmZmZmODAw MDAwMDAtMHhmZmZmZmZmZmJmZmZmZmZmKQpbICAgMTIuNzUxMjE1XSBSZWJvb3RpbmcgaW4gNjAg c2Vjb25kcy4uCgpGaXhlczogYzliNjRkNDkyYjFmICgidGlwYzogYWRkIHJlcGxpY2FzdCBwZWVy IGRpc2NvdmVyeSIpClNpZ25lZC1vZmYtYnk6IFRvbW1pIFJhbnRhbGEgPHRvbW1pLnQucmFudGFs YUBub2tpYS5jb20+CkNjOiBKb24gTWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv dGlwYy91ZHBfbWVkaWEuYyB8IDQgLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvdWRwX21lZGlhLmMgYi9uZXQvdGlwYy91ZHBfbWVkaWEu YwppbmRleCBiNThkYzk1ZjNkMzUuLjEwNzM3NWQ4MGM3MCAxMDA2NDQKLS0tIGEvbmV0L3RpcGMv dWRwX21lZGlhLmMKKysrIGIvbmV0L3RpcGMvdWRwX21lZGlhLmMKQEAgLTM3MSwxMCArMzcxLDYg QEAgc3RhdGljIGludCB0aXBjX3VkcF9yZWN2KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1 ZmYgKnNrYikKIAkJCWdvdG8gcmN1X291dDsKIAl9CiAKLQl0aXBjX3Jjdihzb2NrX25ldChzayks IHNrYiwgYik7Ci0JcmN1X3JlYWRfdW5sb2NrKCk7Ci0JcmV0dXJuIDA7Ci0KIHJjdV9vdXQ6CiAJ cmN1X3JlYWRfdW5sb2NrKCk7CiBvdXQ6Ci0tIAoyLjE0LjMKCg== ----Next_Part(Tue_Dec_12_10_44_45_2017_308)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_414.mbox" RnJvbSA2NGI0ZDJmMTI3MjVkZGE4NjQ2NWFhYTNkYmZkOWEzMzdjYjBhZGI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTZWJhc3RpYW4gU2pvaG9sbSA8c3Nqb2hvbG1AbWFjLmNvbT4K RGF0ZTogTW9uLCAyMCBOb3YgMjAxNyAxOTowNToxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDEv MzNdIG5ldDogcW1pX3d3YW46IGFkZCBRdWVjdGVsIEJHOTYgMmM3YzowMjk2Ck1JTUUtVmVyc2lv bjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBmOTQwOWU3ZjA4NmZhNmM0 NjIzNzY5YjRiMmY0ZjE3YTAyNGQ4MTQzIF0KClF1ZWN0ZWwgQkc5NiBpcyBhbiBRdWFsY29tbSBN RE05MjA2IGJhc2VkIElvVCBtb2RlbSwgc3VwcG9ydGluZyBib3RoCkNBVC1NIGFuZCBOQi1Jb1Qu IFRlc3RlZCBoYXJkd2FyZSBpcyBCRzk2IG1vdW50ZWQgb24gUXVlY3RlbCBkZXZlbG9wbWVudApi b2FyZCAoRVZCKS4gVGhlIFVTQiBpZCBpcyBhZGRlZCB0byBxbWlfd3dhbi5jIHRvIGFsbG93IFFN SQpjb21tdW5pY2F0aW9uIHdpdGggdGhlIEJHOTYuCgpTaWduZWQtb2ZmLWJ5OiBTZWJhc3RpYW4g U2pvaG9sbSA8c3Nqb2hvbG1AbWFjLmNvbT4KQWNrZWQtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBt b3JrLm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5j IGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKaW5kZXggOGQ0YTZmN2NiYTYxLi5mNGVkNTUz OTI5ZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCisrKyBiL2RyaXZl cnMvbmV0L3VzYi9xbWlfd3dhbi5jCkBAIC0xMjM5LDYgKzEyMzksNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHVzYl9kZXZpY2VfaWQgcHJvZHVjdHNbXSA9IHsKIAl7UU1JX0ZJWEVEX0lOVEYoMHgx ZTBlLCAweDkwMDEsIDUpfSwJLyogU0lNQ29tIDcyMzBFICovCiAJe1FNSV9RVUlSS19TRVRfRFRS KDB4MmM3YywgMHgwMTI1LCA0KX0sCS8qIFF1ZWN0ZWwgRUMyNSwgRUMyMCBSMi4wICBNaW5pIFBD SWUgKi8KIAl7UU1JX1FVSVJLX1NFVF9EVFIoMHgyYzdjLCAweDAxMjEsIDQpfSwJLyogUXVlY3Rl bCBFQzIxIE1pbmkgUENJZSAqLworCXtRTUlfRklYRURfSU5URigweDJjN2MsIDB4MDI5NiwgNCl9 LAkvKiBRdWVjdGVsIEJHOTYgKi8KIAogCS8qIDQuIEdvYmkgMTAwMCBkZXZpY2VzICovCiAJe1FN SV9HT0JJMUtfREVWSUNFKDB4MDVjNiwgMHg5MjEyKX0sCS8qIEFjZXIgR29iaSBNb2RlbSBEZXZp Y2UgKi8KLS0gCjIuMTQuMwoKCkZyb20gYzk3YjIwN2E5ZTc0ZmU1NDM3NDQxOWE2NTE0MDcxZjFl ZWQ5MTZhNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3VuaWwgR291dGhhbSA8c2dv dXRoYW1AY2F2aXVtLmNvbT4KRGF0ZTogVGh1LCAyMyBOb3YgMjAxNyAyMjozNDozMSArMDMwMApT dWJqZWN0OiBbUEFUQ0ggMDIvMzNdIG5ldDogdGh1bmRlcng6IEZpeCBUQ1AvVURQIGNoZWNrc3Vt IG9mZmxvYWQgZm9yIElQdjYKIHBrdHMKClsgVXBzdHJlYW0gY29tbWl0IGZhNmQ3Y2I1ZDc2Y2Yw NDY3YzYxNDIwZmM5MjM4MDQ1YWVkZmQzNzkgXQoKRG9uJ3Qgb2ZmbG9hZCBJUCBoZWFkZXIgY2hl Y2tzdW0gdG8gTklDLgoKVGhpcyBmaXhlcyBhIHByZXZpb3VzIHBhdGNoIHdoaWNoIGVuYWJsZWQg Y2hlY2tzdW0gb2ZmbG9hZGluZwpmb3IgYm90aCBJUHY0IGFuZCBJUHY2IHBhY2tldHMuICBTbyBM MyBjaGVja3N1bSBvZmZsb2FkIHdhcwpnZXR0aW5nIGVuYWJsZWQgZm9yIElQdjYgcGt0cy4gIEFu ZCBIVyBpcyBkcm9wcGluZyB0aGVzZSBwa3RzCmFzIGl0IGFzc3VtZXMgdGhlIHBrdCBpcyBJUHY0 IHdoZW4gSVAgY3N1bSBvZmZsb2FkIGlzIHNldAppbiB0aGUgU1EgZGVzY3JpcHRvci4KCkZpeGVz OiAgM2E5MDI0ZjUyYzJlICgibmV0OiB0aHVuZGVyeDogRW5hYmxlIFRTTyBhbmQgY2hlY2tzdW0g b2ZmbG9hZHMgZm9yIGlwdjYiKQpTaWduZWQtb2ZmLWJ5OiBTdW5pbCBHb3V0aGFtIDxzZ291dGhh bUBjYXZpdW0uY29tPgpTaWduZWQtb2ZmLWJ5OiBBbGVrc2V5IE1ha2Fyb3YgPGFsZWtzZXkubWFr YXJvdkBhdXJpZ2EuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvbmljdmZfcXVldWVz LmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvbmljdmZfcXVldWVzLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9xdWV1ZXMuYwppbmRleCBkNDQ5NmU5 YWZjZGYuLjhiMmMzMWUyYTJiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2 aXVtL3RodW5kZXIvbmljdmZfcXVldWVzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2 aXVtL3RodW5kZXIvbmljdmZfcXVldWVzLmMKQEAgLTEzNTUsNyArMTM1NSw2IEBAIG5pY3ZmX3Nx X2FkZF9oZHJfc3ViZGVzYyhzdHJ1Y3QgbmljdmYgKm5pYywgc3RydWN0IHNuZF9xdWV1ZSAqc3Es IGludCBxZW50cnksCiAKIAkvKiBPZmZsb2FkIGNoZWNrc3VtIGNhbGN1bGF0aW9uIHRvIEhXICov CiAJaWYgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VNX1BBUlRJQUwpIHsKLQkJaGRyLT5jc3Vt X2wzID0gMTsgLyogRW5hYmxlIElQIGNzdW0gY2FsY3VsYXRpb24gKi8KIAkJaGRyLT5sM19vZmZz ZXQgPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTsKIAkJaGRyLT5sNF9vZmZzZXQgPSBza2JfdHJh bnNwb3J0X29mZnNldChza2IpOwogCi0tIAoyLjE0LjMKCgpGcm9tIGVlZjM3NTkyOWJiMzUwYmJm ZjViMzc3N2ZjNzMwN2YwYjI3ZDM5MWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZs b3JpYW4gV2VzdHBoYWwgPGZ3QHN0cmxlbi5kZT4KRGF0ZTogV2VkLCA2IERlYyAyMDE3IDAxOjA0 OjUwICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8zM10gbmV0OiB0aHVuZGVyeDogRml4IFRDUC9V RFAgY2hlY2tzdW0gb2ZmbG9hZCBmb3IgSVB2NAogcGt0cwoKWyBVcHN0cmVhbSBjb21taXQgMTM0 MDU5ZmQyNzc1YmU3OWUyNmMyZGZmODdkMjVjYzJmNmVhNTYyNiBdCgpPZmZsb2FkIElQIGhlYWRl ciBjaGVja3N1bSB0byBOSUMuCgpUaGlzIGZpeGVzIGEgcHJldmlvdXMgcGF0Y2ggd2hpY2ggZGlz YWJsZWQgY2hlY2tzdW0gb2ZmbG9hZGluZwpmb3IgYm90aCBJUHY0IGFuZCBJUHY2IHBhY2tldHMu ICBTbyBMMyBjaGVja3N1bSBvZmZsb2FkIHdhcwpnZXR0aW5nIGRpc2FibGVkIGZvciBJUHY0IHBr dHMuICBBbmQgSFcgaXMgZHJvcHBpbmcgdGhlc2UgcGt0cwpmb3Igc29tZSByZWFzb24uCgpXaXRo b3V0IHRoaXMgcGF0Y2gsIElQdjQgVFNPIGFwcGVhcnMgdG8gYmUgYnJva2VuOgoKV0l0aG91dCB0 aGlzIHBhdGNoIEkgZ2V0IH4xNmtieXRlL3MsIHdpdGggcGF0Y2ggY2xvc2UgdG8gMm1ieXRlL3MK d2hlbiBjb3B5aW5nIGZpbGVzIHZpYSBzY3AgZnJvbSB0ZXN0IGJveCB0byBteSBob21lIHdvcmtz dGF0aW9uLgoKTG9va2luZyBhdCB0Y3BkdW1wIG9uIHNlbmRlciBpdCBsb29rcyBsaWtlIGhhcmR3 YXJlIGRyb3BzIElQdjQgVFNPIHNrYnMuClRoaXMgcGF0Y2ggcmVzdG9yZXMgcGVyZm9ybWFuY2Ug Zm9yIG1lLCBpcHY2IGxvb2tzIGdvb2QgdG9vLgoKRml4ZXM6IGZhNmQ3Y2I1ZDc2YyAoIm5ldDog dGh1bmRlcng6IEZpeCBUQ1AvVURQIGNoZWNrc3VtIG9mZmxvYWQgZm9yIElQdjYgcGt0cyIpCkNj OiBTdW5pbCBHb3V0aGFtIDxzZ291dGhhbUBjYXZpdW0uY29tPgpDYzogQWxla3NleSBNYWthcm92 IDxhbGVrc2V5Lm1ha2Fyb3ZAYXVyaWdhLmNvbT4KQ2M6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBXZXN0cGhhbCA8ZndAc3RybGVuLmRl PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvbmljdmZfcXVldWVzLmMgfCAy ICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvbmljdmZfcXVldWVzLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9xdWV1ZXMuYwppbmRleCA4YjJjMzFlMmEy YjAuLmEzZDEyZGJkZTk1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVt L3RodW5kZXIvbmljdmZfcXVldWVzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVt L3RodW5kZXIvbmljdmZfcXVldWVzLmMKQEAgLTEzNTUsNiArMTM1NSw4IEBAIG5pY3ZmX3NxX2Fk ZF9oZHJfc3ViZGVzYyhzdHJ1Y3QgbmljdmYgKm5pYywgc3RydWN0IHNuZF9xdWV1ZSAqc3EsIGlu dCBxZW50cnksCiAKIAkvKiBPZmZsb2FkIGNoZWNrc3VtIGNhbGN1bGF0aW9uIHRvIEhXICovCiAJ aWYgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VNX1BBUlRJQUwpIHsKKwkJaWYgKGlwLnY0LT52 ZXJzaW9uID09IDQpCisJCQloZHItPmNzdW1fbDMgPSAxOyAvKiBFbmFibGUgSVAgY3N1bSBjYWxj dWxhdGlvbiAqLwogCQloZHItPmwzX29mZnNldCA9IHNrYl9uZXR3b3JrX29mZnNldChza2IpOwog CQloZHItPmw0X29mZnNldCA9IHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYik7CiAKLS0gCjIuMTQu MwoKCkZyb20gYzAyZjQ5YmVlODI4ODllMGZhYzJlNzg5MDU0YjA1NWY3Y2QyMDBhNCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9iaWFzIEpha29iaSA8dGpha29iaUBtYXRoLnVuaS1i aWVsZWZlbGQuZGU+CkRhdGU6IFR1ZSwgMjEgTm92IDIwMTcgMTY6MTU6NTcgKzAxMDAKU3ViamVj dDogW1BBVENIIDA0LzMzXSBuZXQ6IHJlYWx0ZWs6IHI4MTY5OiBpbXBsZW1lbnQgc2V0X2xpbmtf a3NldHRpbmdzKCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBj aGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0g Y29tbWl0IDllNzdkN2E1NTQ5ZGM0ZDQ5OTlhNjA2NzYzNzNhYjNmZDFkYWU0ZGIgXQoKQ29tbWl0 IDZmYTFiYTYxNTIwNTc2Y2YxMzQ2YzRmZjA5YTA1NmYyOTUwY2IzYmYgcGFydGlhbGx5CmltcGxl bWVudGVkIHRoZSBuZXcgZXRodG9vbCBBUEksIGJ5IHJlcGxhY2luZyBnZXRfc2V0dGluZ3MoKQp3 aXRoIGdldF9saW5rX2tzZXR0aW5ncygpLiBUaGlzIGJyZWFrcyBldGh0b29sLCBzaW5jZSB0aGUK dXNlcnNwYWNlIHRvb2wgKGFjY29yZGluZyB0byB0aGUgbmV3IEFQSSBzcGVjcykgbmV2ZXIgdHJp ZXMKdGhlIGxlZ2FjeSBzZXQoKSBjYWxsLCB3aGVuIHRoZSBuZXcgZ2V0KCkgY2FsbCBzdWNjZWVk cy4KCkFsbCBhdHRlbXB0cyB0byBjaGFuY2Ugc29tZSBzZXR0aW5nIGZyb20gdXNlcnNwYWNlIHJl c3VsdCBpbjoKPiBDYW5ub3Qgc2V0IG5ldyBzZXR0aW5nczogT3BlcmF0aW9uIG5vdCBzdXBwb3J0 ZWQKCkltcGxlbWVudCB0aGUgbWlzc2luZyBzZXQoKSBjYWxsLgoKU2lnbmVkLW9mZi1ieTogVG9i aWFzIEpha29iaSA8dGpha29iaUBtYXRoLnVuaS1iaWVsZWZlbGQuZGU+ClRlc3RlZC1ieTogSG9s Z2VyIEhvZmZzdMOkdHRlIDxob2xnZXJAYXBwbGllZC1hc3luY2hyb255LmNvbT4KUmV2aWV3ZWQt Ynk6IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3Jl YWx0ZWsvcjgxNjkuYyB8IDM4ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwppbmRleCBhM2M5NDllYTdkMWEuLjk1NDE0NjVlNDNl OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwpAQCAtMjAyNSwyMSArMjAyNSw2 IEBAIHN0YXRpYyBpbnQgcnRsODE2OV9zZXRfc3BlZWQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwK IAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHJ0bDgxNjlfc2V0X3NldHRpbmdzKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX2NtZCAqY21kKQotewotCXN0cnVjdCBy dGw4MTY5X3ByaXZhdGUgKnRwID0gbmV0ZGV2X3ByaXYoZGV2KTsKLQlpbnQgcmV0OwotCi0JZGVs X3RpbWVyX3N5bmMoJnRwLT50aW1lcik7Ci0KLQlydGxfbG9ja193b3JrKHRwKTsKLQlyZXQgPSBy dGw4MTY5X3NldF9zcGVlZChkZXYsIGNtZC0+YXV0b25lZywgZXRodG9vbF9jbWRfc3BlZWQoY21k KSwKLQkJCQljbWQtPmR1cGxleCwgY21kLT5hZHZlcnRpc2luZyk7Ci0JcnRsX3VubG9ja193b3Jr KHRwKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KIHN0YXRpYyBuZXRkZXZfZmVhdHVyZXNfdCBydGw4 MTY5X2ZpeF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCW5ldGRldl9mZWF0dXJl c190IGZlYXR1cmVzKQogewpAQCAtMjE2Niw2ICsyMTUxLDI3IEBAIHN0YXRpYyBpbnQgcnRsODE2 OV9nZXRfbGlua19rc2V0dGluZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlyZXR1cm4gcmM7 CiB9CiAKK3N0YXRpYyBpbnQgcnRsODE2OV9zZXRfbGlua19rc2V0dGluZ3Moc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKKwkJCQkgICAgICBjb25zdCBzdHJ1Y3QgZXRodG9vbF9saW5rX2tzZXR0aW5n cyAqY21kKQoreworCXN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwID0gbmV0ZGV2X3ByaXYoZGV2 KTsKKwlpbnQgcmM7CisJdTMyIGFkdmVydGlzaW5nOworCisJaWYgKCFldGh0b29sX2NvbnZlcnRf bGlua19tb2RlX3RvX2xlZ2FjeV91MzIoJmFkdmVydGlzaW5nLAorCSAgICBjbWQtPmxpbmtfbW9k ZXMuYWR2ZXJ0aXNpbmcpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWRlbF90aW1lcl9zeW5jKCZ0 cC0+dGltZXIpOworCisJcnRsX2xvY2tfd29yayh0cCk7CisJcmMgPSBydGw4MTY5X3NldF9zcGVl ZChkZXYsIGNtZC0+YmFzZS5hdXRvbmVnLCBjbWQtPmJhc2Uuc3BlZWQsCisJCQkgICAgICAgY21k LT5iYXNlLmR1cGxleCwgYWR2ZXJ0aXNpbmcpOworCXJ0bF91bmxvY2tfd29yayh0cCk7CisKKwly ZXR1cm4gcmM7Cit9CisKIHN0YXRpYyB2b2lkIHJ0bDgxNjlfZ2V0X3JlZ3Moc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfcmVncyAqcmVncywKIAkJCSAgICAgdm9pZCAqcCkK IHsKQEAgLTIzNjcsNyArMjM3Myw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMg cnRsODE2OV9ldGh0b29sX29wcyA9IHsKIAkuZ2V0X2RydmluZm8JCT0gcnRsODE2OV9nZXRfZHJ2 aW5mbywKIAkuZ2V0X3JlZ3NfbGVuCQk9IHJ0bDgxNjlfZ2V0X3JlZ3NfbGVuLAogCS5nZXRfbGlu awkJPSBldGh0b29sX29wX2dldF9saW5rLAotCS5zZXRfc2V0dGluZ3MJCT0gcnRsODE2OV9zZXRf c2V0dGluZ3MsCiAJLmdldF9tc2dsZXZlbAkJPSBydGw4MTY5X2dldF9tc2dsZXZlbCwKIAkuc2V0 X21zZ2xldmVsCQk9IHJ0bDgxNjlfc2V0X21zZ2xldmVsLAogCS5nZXRfcmVncwkJPSBydGw4MTY5 X2dldF9yZWdzLApAQCAtMjM3OSw2ICsyMzg0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBldGh0 b29sX29wcyBydGw4MTY5X2V0aHRvb2xfb3BzID0gewogCS5nZXRfdHNfaW5mbwkJPSBldGh0b29s X29wX2dldF90c19pbmZvLAogCS5ud2F5X3Jlc2V0CQk9IHJ0bDgxNjlfbndheV9yZXNldCwKIAku Z2V0X2xpbmtfa3NldHRpbmdzCT0gcnRsODE2OV9nZXRfbGlua19rc2V0dGluZ3MsCisJLnNldF9s aW5rX2tzZXR0aW5ncwk9IHJ0bDgxNjlfc2V0X2xpbmtfa3NldHRpbmdzLAogfTsKIAogc3RhdGlj IHZvaWQgcnRsODE2OV9nZXRfbWFjX3ZlcnNpb24oc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHAs Ci0tIAoyLjE0LjMKCgpGcm9tIDM3MWIzYjI5NDNlYTM5ODkwMGNhNGQ4YjNlNTgwMWI4ZDEwNjcy MjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBXaWVkbWFubiA8andpQGxp bnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogV2VkLCAxOCBPY3QgMjAxNyAxNzo0MDoxNyArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDUvMzNdIHMzOTAvcWV0aDogZml4IGVhcmx5IGV4aXQgZnJvbSBlcnJv ciBwYXRoCgpbIFVwc3RyZWFtIGNvbW1pdCA4M2NmNzlhMmZlYzNjZjQ5OWViNmNiOWViNjA4NjU2 ZmMyYTgyNzc2IF0KCldoZW4gdGhlIGFsbG9jYXRpb24gb2YgdGhlIGFkZHIgYnVmZmVyIGZhaWxz LCB3ZSBuZWVkIHRvIGZyZWUKb3VyIHJlZmNvdW50IG9uIHRoZSBpbmV0ZGV2aWNlIGJlZm9yZSBy ZXR1cm5pbmcuCgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0 LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jIHwgNiArKysrLS0KIDEg ZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0 aF9sM19tYWluLmMKaW5kZXggYWI2NjFhNDMxZjdjLi4xZDhjMzE3NTUzYmEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9x ZXRoX2wzX21haW4uYwpAQCAtMTU1Myw3ICsxNTUzLDcgQEAgc3RhdGljIHZvaWQgcWV0aF9sM19m cmVlX3ZsYW5fYWRkcmVzc2VzNChzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkLAogCiAJYWRkciA9IHFl dGhfbDNfZ2V0X2FkZHJfYnVmZmVyKFFFVEhfUFJPVF9JUFY0KTsKIAlpZiAoIWFkZHIpCi0JCXJl dHVybjsKKwkJZ290byBvdXQ7CiAKIAlzcGluX2xvY2tfYmgoJmNhcmQtPmlwX2xvY2spOwogCkBA IC0xNTY3LDYgKzE1NjcsNyBAQCBzdGF0aWMgdm9pZCBxZXRoX2wzX2ZyZWVfdmxhbl9hZGRyZXNz ZXM0KHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsCiAJc3Bpbl91bmxvY2tfYmgoJmNhcmQtPmlwX2xv Y2spOwogCiAJa2ZyZWUoYWRkcik7CitvdXQ6CiAJaW5fZGV2X3B1dChpbl9kZXYpOwogfQogCkBA IC0xNTkxLDcgKzE1OTIsNyBAQCBzdGF0aWMgdm9pZCBxZXRoX2wzX2ZyZWVfdmxhbl9hZGRyZXNz ZXM2KHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsCiAKIAlhZGRyID0gcWV0aF9sM19nZXRfYWRkcl9i dWZmZXIoUUVUSF9QUk9UX0lQVjYpOwogCWlmICghYWRkcikKLQkJcmV0dXJuOworCQlnb3RvIG91 dDsKIAogCXNwaW5fbG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CiAKQEAgLTE2MDYsNiArMTYwNyw3 IEBAIHN0YXRpYyB2b2lkIHFldGhfbDNfZnJlZV92bGFuX2FkZHJlc3NlczYoc3RydWN0IHFldGhf Y2FyZCAqY2FyZCwKIAlzcGluX3VubG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CiAKIAlrZnJlZShh ZGRyKTsKK291dDoKIAlpbjZfZGV2X3B1dChpbjZfZGV2KTsKICNlbmRpZiAvKiBDT05GSUdfUUVU SF9JUFY2ICovCiB9Ci0tIAoyLjE0LjMKCgpGcm9tIDUxZjgxZmNjMDA1NGJkNTRjMTlhMGU1M2Jj MWQxYjMyNjAxYmNmYWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvbiBNYWxveSA8 am9uLm1hbG95QGVyaWNzc29uLmNvbT4KRGF0ZTogTW9uLCA0IERlYyAyMDE3IDIyOjAwOjIwICsw MTAwClN1YmplY3Q6IFtQQVRDSCAwNi8zM10gdGlwYzogZml4IG1lbW9yeSBsZWFrIGluIHRpcGNf YWNjZXB0X2Zyb21fc29jaygpCgpbIFVwc3RyZWFtIGNvbW1pdCBhN2Q1ZjEwN2I0OTc4ZTA4ZWVh YjU5OWVlNzQ0OWFmMzRkMDM0MDUzIF0KCldoZW4gdGhlIGZ1bmN0aW9uIHRpcGNfYWNjZXB0X2Zy b21fc29jaygpIGZhaWxzIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZgpzdHJ1Y3QgdGlwY19zdWJz Y3JpYmVyIGl0IG9taXRzIHRvIGZyZWUgdGhlIGFscmVhZHkgY3JlYXRlZCBpbnN0YW5jZSBvZgpz dHJ1Y3QgdGlwY19jb25uIGluc3RhbmNlIGJlZm9yZSBpdCByZXR1cm5zLgoKV2UgZml4IHRoYXQg d2l0aCB0aGlzIGNvbW1pdC4KClJlcG9ydGVkLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+ClNpZ25lZC1vZmYtYnk6IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29u LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC90aXBjL3NlcnZlci5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKykKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9zZXJ2ZXIuYyBiL25ldC90aXBjL3NlcnZlci5j CmluZGV4IDNjZDY0MDJlODEyYy4uZjRjMWIxOGM1ZmIwIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9z ZXJ2ZXIuYworKysgYi9uZXQvdGlwYy9zZXJ2ZXIuYwpAQCAtMzEzLDYgKzMxMyw3IEBAIHN0YXRp YyBpbnQgdGlwY19hY2NlcHRfZnJvbV9zb2NrKHN0cnVjdCB0aXBjX2Nvbm4gKmNvbikKIAluZXdj b24tPnVzcl9kYXRhID0gcy0+dGlwY19jb25uX25ldyhuZXdjb24tPmNvbmlkKTsKIAlpZiAoIW5l d2Nvbi0+dXNyX2RhdGEpIHsKIAkJc29ja19yZWxlYXNlKG5ld3NvY2spOworCQljb25uX3B1dChu ZXdjb24pOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKLS0gCjIuMTQuMwoKCkZyb20gYTE2ZDEy MjZlYmZkNjQ3YjRhZDQ5Y2VmMmJjMzRjYTdjYzVkNTg3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogV2VpIFh1IDx3ZXh1QHJlZGhhdC5jb20+CkRhdGU6IEZyaSwgMSBEZWMgMjAxNyAw NToxMDozNiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMzNdIHZob3N0OiBmaXggc2tiIGxlYWsg aW4gaGFuZGxlX3J4KCkKClsgVXBzdHJlYW0gY29tbWl0IDZlNDc0MDgzZjNkYWYzYTM1NDY3Mzdm NWQ3ZDUwMmFkMTJlYjI1N2MgXQoKTWF0dGhldyBmb3VuZCBhIHJvdWdobHkgNDAlIHRjcCB0aHJv dWdocHV0IHJlZ3Jlc3Npb24gd2l0aCBjb21taXQKYzY3ZGYxMWYodmhvc3RfbmV0OiB0cnkgYmF0 Y2ggZGVxdWluZyBmcm9tIHNrYiBhcnJheSkgYXMgZGlzY3Vzc2VkCmluIHRoZSBmb2xsb3dpbmcg dGhyZWFkOgpodHRwczovL3d3dy5tYWlsLWFyY2hpdmUuY29tL25ldGRldkB2Z2VyLmtlcm5lbC5v cmcvbXNnMTg3OTM2Lmh0bWwKCkV2ZW50dWFsbHkgd2UgZmlndXJlZCBvdXQgdGhhdCBpdCB3YXMg YSBza2IgbGVhayBpbiBoYW5kbGVfcngoKQp3aGVuIHNlbmRpbmcgcGFja2V0cyB0byB0aGUgVk0u IFRoaXMgdXN1YWxseSBoYXBwZW5zIHdoZW4gYSBndWVzdApjYW4gbm90IGRyYWluIG91dCB2cSBh cyBmYXN0IGFzIHZob3N0IGZpbGxzIGluLCBhZnRlcndhcmRzIGl0IHNldHMKb2ZmIHRoZSB0cmFm ZmljIGphbSBhbmQgbGVha3Mgc2tiKHMpIHdoaWNoIG9jY3VycyBhcyBubyBoZWFkY291bnQKdG8g c2VuZCBvbiB0aGUgdnEgZnJvbSB2aG9zdCBzaWRlLgoKVGhpcyBjYW4gYmUgYXZvaWRlZCBieSBt YWtpbmcgc3VyZSB3ZSBoYXZlIGdvdCBlbm91Z2ggaGVhZGNvdW50CmJlZm9yZSBhY3R1YWxseSBj b25zdW1pbmcgYSBza2IgZnJvbSB0aGUgYmF0Y2hlZCByeCBhcnJheSB3aGlsZQp0cmFuc21pdHRp bmcsIHdoaWNoIGlzIHNpbXBseSBkb25lIGJ5IG1vdmluZyBjaGVja2luZyB0aGUgemVybwpoZWFk Y291bnQgYSBiaXQgYWhlYWQuCgpTaWduZWQtb2ZmLWJ5OiBXZWkgWHUgPHdleHVAcmVkaGF0LmNv bT4KUmVwb3J0ZWQtYnk6IE1hdHRoZXcgUm9zYXRvIDxtanJvc2F0b0BsaW51eC52bmV0LmlibS5j b20+CkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy92aG9zdC9uZXQuYyB8IDIwICsrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MTAgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aG9zdC9uZXQuYyBiL2RyaXZlcnMvdmhvc3QvbmV0LmMKaW5kZXggNTg1ODVlYzg2OTllLi5iZDE1 MzA5YWM1ZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmhvc3QvbmV0LmMKKysrIGIvZHJpdmVycy92 aG9zdC9uZXQuYwpAQCAtNzgyLDE2ICs3ODIsNiBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfcngoc3Ry dWN0IHZob3N0X25ldCAqbmV0KQogCQkvKiBPbiBlcnJvciwgc3RvcCBoYW5kbGluZyB1bnRpbCB0 aGUgbmV4dCBraWNrLiAqLwogCQlpZiAodW5saWtlbHkoaGVhZGNvdW50IDwgMCkpCiAJCQlnb3Rv IG91dDsKLQkJaWYgKG52cS0+cnhfYXJyYXkpCi0JCQltc2cubXNnX2NvbnRyb2wgPSB2aG9zdF9u ZXRfYnVmX2NvbnN1bWUoJm52cS0+cnhxKTsKLQkJLyogT24gb3ZlcnJ1biwgdHJ1bmNhdGUgYW5k IGRpc2NhcmQgKi8KLQkJaWYgKHVubGlrZWx5KGhlYWRjb3VudCA+IFVJT19NQVhJT1YpKSB7Ci0J CQlpb3ZfaXRlcl9pbml0KCZtc2cubXNnX2l0ZXIsIFJFQUQsIHZxLT5pb3YsIDEsIDEpOwotCQkJ ZXJyID0gc29jay0+b3BzLT5yZWN2bXNnKHNvY2ssICZtc2csCi0JCQkJCQkgMSwgTVNHX0RPTlRX QUlUIHwgTVNHX1RSVU5DKTsKLQkJCXByX2RlYnVnKCJEaXNjYXJkZWQgcnggcGFja2V0OiBsZW4g JXpkXG4iLCBzb2NrX2xlbik7Ci0JCQljb250aW51ZTsKLQkJfQogCQkvKiBPSywgbm93IHdlIG5l ZWQgdG8ga25vdyBhYm91dCBhZGRlZCBkZXNjcmlwdG9ycy4gKi8KIAkJaWYgKCFoZWFkY291bnQp IHsKIAkJCWlmICh1bmxpa2VseSh2aG9zdF9lbmFibGVfbm90aWZ5KCZuZXQtPmRldiwgdnEpKSkg ewpAQCAtODA0LDYgKzc5NCwxNiBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfcngoc3RydWN0IHZob3N0 X25ldCAqbmV0KQogCQkJICogdGhleSByZWZpbGxlZC4gKi8KIAkJCWdvdG8gb3V0OwogCQl9CisJ CWlmIChudnEtPnJ4X2FycmF5KQorCQkJbXNnLm1zZ19jb250cm9sID0gdmhvc3RfbmV0X2J1Zl9j b25zdW1lKCZudnEtPnJ4cSk7CisJCS8qIE9uIG92ZXJydW4sIHRydW5jYXRlIGFuZCBkaXNjYXJk ICovCisJCWlmICh1bmxpa2VseShoZWFkY291bnQgPiBVSU9fTUFYSU9WKSkgeworCQkJaW92X2l0 ZXJfaW5pdCgmbXNnLm1zZ19pdGVyLCBSRUFELCB2cS0+aW92LCAxLCAxKTsKKwkJCWVyciA9IHNv Y2stPm9wcy0+cmVjdm1zZyhzb2NrLCAmbXNnLAorCQkJCQkJIDEsIE1TR19ET05UV0FJVCB8IE1T R19UUlVOQyk7CisJCQlwcl9kZWJ1ZygiRGlzY2FyZGVkIHJ4IHBhY2tldDogbGVuICV6ZFxuIiwg c29ja19sZW4pOworCQkJY29udGludWU7CisJCX0KIAkJLyogV2UgZG9uJ3QgbmVlZCB0byBiZSBu b3RpZmllZCBhZ2Fpbi4gKi8KIAkJaW92X2l0ZXJfaW5pdCgmbXNnLm1zZ19pdGVyLCBSRUFELCB2 cS0+aW92LCBpbiwgdmhvc3RfbGVuKTsKIAkJZml4dXAgPSBtc2cubXNnX2l0ZXI7Ci0tIAoyLjE0 LjMKCgpGcm9tIDc1YjAxOGQzMmZlOThhZDg4NWRhMWEzOTMxN2JhZTJkMWYyMTIzNTUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9IPUMzPUE1a29uPTIwQnVnZ2U/PSA8 SGFha29uLkJ1Z2dlQG9yYWNsZS5jb20+CkRhdGU6IFdlZCwgNiBEZWMgMjAxNyAxNzoxODoyOCAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMzNdIHJkczogRml4IE5VTEwgcG9pbnRlciBkZXJlZmVy ZW5jZSBpbiBfX3Jkc19yZG1hX21hcApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRl eHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoK WyBVcHN0cmVhbSBjb21taXQgZjMwNjljNmQzM2Y2YWU2M2ExNjY4NzM3YmM3OGFhYWE1MWJmZjdj YSBdCgpUaGlzIGlzIGEgZml4IGZvciBzeXprYWxsZXI3MTk1NjksIHdoZXJlIG1lbW9yeSByZWdp c3RyYXRpb24gd2FzCmF0dGVtcHRlZCB3aXRob3V0IGFueSB1bmRlcmx5aW5nIHRyYW5zcG9ydCBi ZWluZyBsb2FkZWQuCgpBbmFseXNpcyBvZiB0aGUgY2FzZSByZXZlYWxzIHRoYXQgaXQgaXMgdGhl IHNldHNvY2tvcHQoKSBSRFNfR0VUX01SCigyKSBhbmQgUkRTX0dFVF9NUl9GT1JfREVTVCAoNykg dGhhdCBhcmUgdnVsbmVyYWJsZS4KCkhlcmUgaXMgYW4gZXhhbXBsZSBzdGFjayB0cmFjZSB3aGVu IHRoZSBidWcgaXMgaGl0OgoKQlVHOiB1bmFibGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50 ZXIgZGVyZWZlcmVuY2UgYXQgMDAwMDAwMDAwMDAwMDBjMApJUDogX19yZHNfcmRtYV9tYXArMHgz Ni8weDQ0MCBbcmRzXQpQR0QgMmY5M2QwMzA2NyBQNEQgMmY5M2QwMzA2NyBQVUQgMmY5M2QwMjA2 NyBQTUQgMApPb3BzOiAwMDAwIFsjMV0gU01QCk1vZHVsZXMgbGlua2VkIGluOiBicmlkZ2Ugc3Rw IGxsYyB0dW4gcnBjc2VjX2dzc19rcmI1IG5mc3Y0CmRuc19yZXNvbHZlciBuZnMgZnNjYWNoZSBy ZHMgYmluZm10X21pc2Mgc2JfZWRhYyBpbnRlbF9wb3dlcmNsYW1wCmNvcmV0ZW1wIGt2bV9pbnRl bCBrdm0gaXJxYnlwYXNzIGNyY3QxMGRpZl9wY2xtdWwgYyByYzMyX3BjbG11bApnaGFzaF9jbG11 bG5pX2ludGVsIHBjYmMgYWVzbmlfaW50ZWwgY3J5cHRvX3NpbWQgZ2x1ZV9oZWxwZXIgY3J5cHRk CmlUQ09fd2R0IG1laV9tZSBzZyBpVENPX3ZlbmRvcl9zdXBwb3J0IGlwbWlfc2kgbWVpIGlwbWlf ZGV2aW50ZiBuZnNkCnNocGNocCBwY3Nwa3IgaTJjX2k4MDEgaW9hdGQgbWEgaXBtaV9tc2doYW5k bGVyIHdtaSBscGNfaWNoIG1mZF9jb3JlCmF1dGhfcnBjZ3NzIG5mc19hY2wgbG9ja2QgZ3JhY2Ug c3VucnBjIGlwX3RhYmxlcyBleHQ0IG1iY2FjaGUgamJkMgptZ2FnMjAwIGkyY19hbGdvX2JpdCBk cm1fa21zX2hlbHBlciBpeGdiZSBzeXNjb3B5YXJlYSBhaGNpIHN5c2ZpbGxyZWN0CnN5c2ltZ2Js dCBsaWJhaGNpIG1kaW8gZmJfc3lzX2ZvcHMgdHRtIHB0cCBsaWJhdGEgc2RfbW9kIG1seDRfY29y ZSBkcm0KY3JjMzJjX2ludGVsIHBwc19jb3JlIG1lZ2FyYWlkX3NhcyBpMmNfY29yZSBkY2EgZG1f bWlycm9yCmRtX3JlZ2lvbl9oYXNoIGRtX2xvZyBkbV9tb2QKQ1BVOiA0OCBQSUQ6IDQ1Nzg3IENv bW06IHJlcHJvX3NldDIgTm90IHRhaW50ZWQgNC4xNC4yLTMuZWw3dWVrLng4Nl82NCAjMgpIYXJk d2FyZSBuYW1lOiBPcmFjbGUgQ29ycG9yYXRpb24gT1JBQ0xFIFNFUlZFUiBYNS0yTC9BU00sTU9C TyBUUkFZLDJVLCBCSU9TIDMxMTEwMDAwIDAzLzAzLzIwMTcKdGFzazogZmZmZjg4MmY5MTkwZGIw MCB0YXNrLnN0YWNrOiBmZmZmYzkwMDJiOTk0MDAwClJJUDogMDAxMDpfX3Jkc19yZG1hX21hcCsw eDM2LzB4NDQwIFtyZHNdClJTUDogMDAxODpmZmZmYzkwMDJiOTk3ZGYwIEVGTEFHUzogMDAwMTAy MDIKUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogZmZmZjg4MmZhMjE4MjU4MCBSQ1g6IDAwMDAw MDAwMDAwMDAwMDAKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogZmZmZmM5MDAyYjk5N2U0MCBS REk6IGZmZmY4ODJmYTIxODI1ODAKUkJQOiBmZmZmYzkwMDJiOTk3ZTMwIFIwODogMDAwMDAwMDAw MDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDIKUjEwOiBmZmZmODg1ZmIyOWUzODM4IFIxMTog MDAwMDAwMDAwMDAwMDAwMCBSMTI6IGZmZmY4ODJmYTIxODI1ODAKUjEzOiBmZmZmODgyZmEyMTgy NTgwIFIxNDogMDAwMDAwMDAwMDAwMDAwMiBSMTU6IDAwMDAwMDAwMjAwMDBmZmMKRlM6ICAwMDAw N2ZiZmZhMjBiNzAwKDAwMDApIEdTOmZmZmY4ODJmYmZiODAwMDAoMDAwMCkga25sR1M6MDAwMDAw MDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUw MDMzCkNSMjogMDAwMDAwMDAwMDAwMDBjMCBDUjM6IDAwMDAwMDJmOThhNjYwMDYgQ1I0OiAwMDAw MDAwMDAwMTYwNmUwCkNhbGwgVHJhY2U6CiByZHNfZ2V0X21yKzB4NTYvMHg4MCBbcmRzXQogcmRz X3NldHNvY2tvcHQrMHgxNzIvMHgzNDAgW3Jkc10KID8gX19mZ2V0X2xpZ2h0KzB4MjUvMHg2MAog PyBfX2ZkZ2V0KzB4MTMvMHgyMAogU3lTX3NldHNvY2tvcHQrMHg4MC8weGUwCiBkb19zeXNjYWxs XzY0KzB4NjcvMHgxYjAKIGVudHJ5X1NZU0NBTEw2NF9zbG93X3BhdGgrMHgyNS8weDI1ClJJUDog MDAzMzoweDdmYmZmOWIxMTdmOQpSU1A6IDAwMmI6MDAwMDdmYmZmYTIwYWVkOCBFRkxBR1M6IDAw MDAwMjkzIE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDM2ClJBWDogZmZmZmZmZmZmZmZmZmZkYSBS Qlg6IDAwMDAwMDAwMDAwYzg0YTQgUkNYOiAwMDAwN2ZiZmY5YjExN2Y5ClJEWDogMDAwMDAwMDAw MDAwMDAwMiBSU0k6IDAwMDA0MDAwMDAwMDAxMTQgUkRJOiAwMDAwMDAwMDAwMDAxMDliClJCUDog MDAwMDdmYmZmYTIwYWYxMCBSMDg6IDAwMDAwMDAwMDAwMDAwMjAgUjA5OiAwMDAwN2ZiZmY5ZGQ3 ODYwClIxMDogMDAwMDAwMDAyMDAwMGZmYyBSMTE6IDAwMDAwMDAwMDAwMDAyOTMgUjEyOiAwMDAw MDAwMDAwMDAwMDAwClIxMzogMDAwMDdmYmZmYTIwYjljMCBSMTQ6IDAwMDA3ZmJmZmEyMGI3MDAg UjE1OiAwMDAwMDAwMDAwMDAwMDIxCgpDb2RlOiA0MSA1NiA0MSA1NSA0OSA4OSBmZCA0MSA1NCA1 MyA0OCA4MyBlYyAxOCA4YiA4NyBmMCAwMiAwMCAwMCA0OAo4OSA1NSBkMCA0OCA4OSA0ZCBjOCA4 NSBjMCAwZiA4NCAyZCAwMyAwMCAwMCA0OCA4YiA4NyAwMCAwMyAwMCAwMCA8NDg+CjgzIGI4IGMw IDAwIDAwIDAwIDAwIDBmIDg0IDI1IDAzIDAwIDAgMCA0OCA4YiAwNiA0OCA4YiA1NiAwOAoKVGhl IGZpeCBpcyB0byBjaGVjayB0aGUgZXhpc3RlbmNlIG9mIGFuIHVuZGVybHlpbmcgdHJhbnNwb3J0 IGluCl9fcmRzX3JkbWFfbWFwKCkuCgpTaWduZWQtb2ZmLWJ5OiBIw6Vrb24gQnVnZ2UgPGhhYWtv bi5idWdnZUBvcmFjbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xl Z3JvdXBzLmNvbT4KQWNrZWQtYnk6IFNhbnRvc2ggU2hpbGlta2FyIDxzYW50b3NoLnNoaWxpbWth ckBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3Jkcy9yZG1hLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcmRzL3JkbWEuYyBi L25ldC9yZHMvcmRtYS5jCmluZGV4IDg4ODZmMTVhYmU5MC4uYmMyZjFlMDk3N2Q2IDEwMDY0NAot LS0gYS9uZXQvcmRzL3JkbWEuYworKysgYi9uZXQvcmRzL3JkbWEuYwpAQCAtMTgzLDcgKzE4Myw3 IEBAIHN0YXRpYyBpbnQgX19yZHNfcmRtYV9tYXAoc3RydWN0IHJkc19zb2NrICpycywgc3RydWN0 IHJkc19nZXRfbXJfYXJncyAqYXJncywKIAlsb25nIGk7CiAJaW50IHJldDsKIAotCWlmIChycy0+ cnNfYm91bmRfYWRkciA9PSAwKSB7CisJaWYgKHJzLT5yc19ib3VuZF9hZGRyID09IDAgfHwgIXJz LT5yc190cmFuc3BvcnQpIHsKIAkJcmV0ID0gLUVOT1RDT05OOyAvKiBYWFggbm90IGEgZ3JlYXQg ZXJybm8gKi8KIAkJZ290byBvdXQ7CiAJfQotLSAKMi4xNC4zCgoKRnJvbSA1Njc2ZjkxZDVkNTgw NTFhMjFiNzk5YzE2YTg0ODg3ZmYzYTYxYzdjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMzAgTm92IDIw MTcgMTA6NDE6MTQgKzA4MDAKU3ViamVjdDogW1BBVENIIDA5LzMzXSBzaXQ6IHVwZGF0ZSBmcmFn X29mZiBpbmZvCgpbIFVwc3RyZWFtIGNvbW1pdCBmODU5YjRhZjFjNTI0OTNlYzIxMTczY2NjNzNk MGI2MDAyOWI1Yjg4IF0KCkFmdGVyIHBhcnNpbmcgdGhlIHNpdCBuZXRsaW5rIGNoYW5nZSBpbmZv LCB3ZSBmb3JnZXQgdG8gdXBkYXRlIGZyYWdfb2ZmIGluCmlwaXA2X3R1bm5lbF91cGRhdGUoKS4g Rml4IGl0IGJ5IGFzc2lnbmluZyBmcmFnX29mZiB3aXRoIG5ldyB2YWx1ZS4KClJlcG9ydGVkLWJ5 OiBKaWFubGluIFNoaSA8amlzaGlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBM aXUgPGxpdWhhbmdiaW5AZ21haWwuY29tPgpBY2tlZC1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNv bGFzLmRpY2h0ZWxANndpbmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvc2l0LmMgfCAxICsKIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3NpdC5jIGIvbmV0L2lw djYvc2l0LmMKaW5kZXggYWM5MTJiYjIxNzQ3Li5lNzk4NTRjYzU3OTAgMTAwNjQ0Ci0tLSBhL25l dC9pcHY2L3NpdC5jCisrKyBiL25ldC9pcHY2L3NpdC5jCkBAIC0xMDg3LDYgKzEwODcsNyBAQCBz dGF0aWMgdm9pZCBpcGlwNl90dW5uZWxfdXBkYXRlKHN0cnVjdCBpcF90dW5uZWwgKnQsIHN0cnVj dCBpcF90dW5uZWxfcGFybSAqcCwKIAlpcGlwNl90dW5uZWxfbGluayhzaXRuLCB0KTsKIAl0LT5w YXJtcy5pcGgudHRsID0gcC0+aXBoLnR0bDsKIAl0LT5wYXJtcy5pcGgudG9zID0gcC0+aXBoLnRv czsKKwl0LT5wYXJtcy5pcGguZnJhZ19vZmYgPSBwLT5pcGguZnJhZ19vZmY7CiAJaWYgKHQtPnBh cm1zLmxpbmsgIT0gcC0+bGluayB8fCB0LT5md21hcmsgIT0gZndtYXJrKSB7CiAJCXQtPnBhcm1z LmxpbmsgPSBwLT5saW5rOwogCQl0LT5md21hcmsgPSBmd21hcms7Ci0tIAoyLjE0LjMKCgpGcm9t IDYxNmI4YTk1OWRiNTQ0YjEwYmE3MDZiY2JkNmRjMDY3MGZhNmYyNTUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTog U3VuLCAzIERlYyAyMDE3IDA5OjMyOjU5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxMC8zM10gdGNw OiBhZGQgdGNwX3Y0X2ZpbGxfY2IoKS90Y3BfdjRfcmVzdG9yZV9jYigpCgpbIFVwc3RyZWFtIGNv bW1pdCBlZWVhMTBiODNhMTM5NDUxMTMwZGYxNTk0ZjI2NzEwYzhmYTM5MGM4IF0KCkphbWVzIE1v cnJpcyByZXBvcnRlZCBrZXJuZWwgc3RhY2sgY29ycnVwdGlvbiBidWcgWzFdIHdoaWxlCnJ1bm5p bmcgdGhlIFNFTGludXggdGVzdHN1aXRlLCBhbmQgYmlzZWN0ZWQgdG8gYSByZWNlbnQKY29tbWl0 IGJmZmE3MmNmN2Y5ZCAoIm5ldDogc2tfYnVmZiByYm5vZGUgcmVvcmciKQoKV2UgYmVsaWV2ZSB0 aGlzIGNvbW1pdCBpcyBmaW5lLCBidXQgZXhwb3NlcyBhbiBvbGRlciBidWcuCgpTRUxpbnV4IGNv ZGUgcnVucyBmcm9tIHRjcF9maWx0ZXIoKSBhbmQgbWlnaHQgc2VuZCBhbiBJQ01QLApleHBlY3Rp bmcgSVAgb3B0aW9ucyB0byBiZSBmb3VuZCBpbiBza2ItPmNiW10gdXNpbmcgcmVndWxhciBJUENC IHBsYWNlbWVudC4KCldlIG5lZWQgdG8gZGVmZXIgVENQIG1hbmdsaW5nIG9mIHNrYi0+Y2JbXSBh ZnRlciB0Y3BfZmlsdGVyKCkgY2FsbHMuCgpUaGlzIHBhdGNoIGFkZHMgdGNwX3Y0X2ZpbGxfY2Io KS90Y3BfdjRfcmVzdG9yZV9jYigpIGluIGEgdmVyeQpzaW1pbGFyIHdheSB3ZSBhZGRlZCB0aGVt IGZvciBJUHY2LgoKWzFdClsgIDMzOS44MDYwMjRdIFNFTGludXg6IGZhaWx1cmUgaW4gc2VsaW51 eF9wYXJzZV9za2IoKSwgdW5hYmxlIHRvIHBhcnNlIHBhY2tldApbICAzMzkuODIyNTA1XSBLZXJu ZWwgcGFuaWMgLSBub3Qgc3luY2luZzogc3RhY2stcHJvdGVjdG9yOiBLZXJuZWwgc3RhY2sgaXMg Y29ycnVwdGVkIGluOiBmZmZmZmZmZjgxNzQ1YWY1ClsgIDMzOS44MjI1MDVdClsgIDMzOS44NTIy NTBdIENQVTogNCBQSUQ6IDM2NDIgQ29tbTogY2xpZW50IE5vdCB0YWludGVkIDQuMTUuMC1yYzEt dGVzdCAjMTUKWyAgMzM5Ljg2ODQ5OF0gSGFyZHdhcmUgbmFtZTogTEVOT1ZPIDEwRkdTMFZBMUwv MzBCQywgQklPUyBGV0tUNjhBICAgMDEvMTkvMjAxNwpbICAzMzkuODg1MDYwXSBDYWxsIFRyYWNl OgpbICAzMzkuODk2ODc1XSAgPElSUT4KWyAgMzM5LjkwODEwM10gIGR1bXBfc3RhY2srMHg2My8w eDg3ClsgIDMzOS45MjA2NDVdICBwYW5pYysweGU4LzB4MjQ4ClsgIDMzOS45MzI2NjhdICA/IGlw X3B1c2hfcGVuZGluZ19mcmFtZXMrMHgzMy8weDQwClsgIDMzOS45NDYzMjhdICA/IGljbXBfc2Vu ZCsweDUyNS8weDUzMApbICAzMzkuOTU4ODYxXSAgPyBrZnJlZV9za2JtZW0rMHg2MC8weDcwClsg IDMzOS45NzE0MzFdICBfX3N0YWNrX2Noa19mYWlsKzB4MWIvMHgyMApbICAzMzkuOTg0MDQ5XSAg aWNtcF9zZW5kKzB4NTI1LzB4NTMwClsgIDMzOS45OTYyMDVdICA/IG5ldGxibF9za2J1ZmZfZXJy KzB4MzYvMHg0MApbICAzNDAuMDA4OTk3XSAgPyBzZWxpbnV4X25ldGxibF9lcnIrMHgxMS8weDIw ClsgIDM0MC4wMjE4MTZdICA/IHNlbGludXhfc29ja2V0X3NvY2tfcmN2X3NrYisweDIxMS8weDIz MApbICAzNDAuMDM1NTI5XSAgPyBzZWN1cml0eV9zb2NrX3Jjdl9za2IrMHgzYi8weDUwClsgIDM0 MC4wNDg0NzFdICA/IHNrX2ZpbHRlcl90cmltX2NhcCsweDQ0LzB4MWMwClsgIDM0MC4wNjEyNDZd ICA/IHRjcF92NF9pbmJvdW5kX21kNV9oYXNoKzB4NjkvMHgxYjAKWyAgMzQwLjA3NDU2Ml0gID8g dGNwX2ZpbHRlcisweDJjLzB4NDAKWyAgMzQwLjA4NjQwMF0gID8gdGNwX3Y0X3JjdisweDgyMC8w eGEyMApbICAzNDAuMDk4MzI5XSAgPyBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweDcxLzB4MWEw ClsgIDM0MC4xMTEyNzldICA/IGlwX2xvY2FsX2RlbGl2ZXIrMHg2Zi8weGUwClsgIDM0MC4xMjM1 MzVdICA/IGlwX3Jjdl9maW5pc2grMHgzYTAvMHgzYTAKWyAgMzQwLjEzNTUyM10gID8gaXBfcmN2 X2ZpbmlzaCsweGRiLzB4M2EwClsgIDM0MC4xNDc0NDJdICA/IGlwX3JjdisweDI3Yy8weDNjMApb ICAzNDAuMTU4NjY4XSAgPyBpbmV0X2RlbF9vZmZsb2FkKzB4NDAvMHg0MApbICAzNDAuMTcwNTgw XSAgPyBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHg0YWMvMHg5MDAKWyAgMzQwLjE4MzI4NV0g ID8gcmN1X2FjY2VsZXJhdGVfY2JzKzB4NWIvMHg4MApbICAzNDAuMTk1MjgyXSAgPyBfX25ldGlm X3JlY2VpdmVfc2tiKzB4MTgvMHg2MApbICAzNDAuMjA3Mjg4XSAgPyBwcm9jZXNzX2JhY2tsb2cr MHg5NS8weDE0MApbICAzNDAuMjE4OTQ4XSAgPyBuZXRfcnhfYWN0aW9uKzB4MjZjLzB4M2IwClsg IDM0MC4yMzA0MTZdICA/IF9fZG9fc29mdGlycSsweGM5LzB4MjZhClsgIDM0MC4yNDE2MjVdICA/ IGRvX3NvZnRpcnFfb3duX3N0YWNrKzB4MmEvMHg0MApbICAzNDAuMjUzMzY4XSAgPC9JUlE+Clsg IDM0MC4yNjI2NzNdICA/IGRvX3NvZnRpcnErMHg1MC8weDYwClsgIDM0MC4yNzM0NTBdICA/IF9f bG9jYWxfYmhfZW5hYmxlX2lwKzB4NTcvMHg2MApbICAzNDAuMjg1MDQ1XSAgPyBpcF9maW5pc2hf b3V0cHV0MisweDE3NS8weDM1MApbICAzNDAuMjk2NDAzXSAgPyBpcF9maW5pc2hfb3V0cHV0KzB4 MTI3LzB4MWQwClsgIDM0MC4zMDc2NjVdICA/IG5mX2hvb2tfc2xvdysweDNjLzB4YjAKWyAgMzQw LjMxODIzMF0gID8gaXBfb3V0cHV0KzB4NzIvMHhlMApbICAzNDAuMzI4NTI0XSAgPyBpcF9mcmFn bWVudC5jb25zdHByb3AuNTQrMHg4MC8weDgwClsgIDM0MC4zNDAwNzBdICA/IGlwX2xvY2FsX291 dCsweDM1LzB4NDAKWyAgMzQwLjM1MDQ5N10gID8gaXBfcXVldWVfeG1pdCsweDE1Yy8weDNmMApb ICAzNDAuMzYxMDYwXSAgPyBfX2ttYWxsb2NfcmVzZXJ2ZS5pc3JhLjQwKzB4MzEvMHg5MApbICAz NDAuMzcyNDg0XSAgPyBfX3NrYl9jbG9uZSsweDJlLzB4MTMwClsgIDM0MC4zODI2MzNdICA/IHRj cF90cmFuc21pdF9za2IrMHg1NTgvMHhhMTAKWyAgMzQwLjM5MzI2Ml0gID8gdGNwX2Nvbm5lY3Qr MHg5MzgvMHhhZDAKWyAgMzQwLjQwMzM3MF0gID8ga3RpbWVfZ2V0X3dpdGhfb2Zmc2V0KzB4NGMv MHhiMApbICAzNDAuNDE0MjA2XSAgPyB0Y3BfdjRfY29ubmVjdCsweDQ1Ny8weDRlMApbICAzNDAu NDI0NDcxXSAgPyBfX2luZXRfc3RyZWFtX2Nvbm5lY3QrMHhiMy8weDMwMApbICAzNDAuNDM1MTk1 XSAgPyBpbmV0X3N0cmVhbV9jb25uZWN0KzB4M2IvMHg2MApbICAzNDAuNDQ1NjA3XSAgPyBTWVND X2Nvbm5lY3QrMHhkOS8weDExMApbICAzNDAuNDU1NDU1XSAgPyBfX2F1ZGl0X3N5c2NhbGxfZW50 cnkrMHhhZi8weDEwMApbICAzNDAuNDY2MTEyXSAgPyBzeXNjYWxsX3RyYWNlX2VudGVyKzB4MWQw LzB4MmIwClsgIDM0MC40NzY2MzZdICA/IF9fYXVkaXRfc3lzY2FsbF9leGl0KzB4MjA5LzB4Mjkw ClsgIDM0MC40ODcxNTFdICA/IFN5U19jb25uZWN0KzB4ZS8weDEwClsgIDM0MC40OTY0NTNdICA/ IGRvX3N5c2NhbGxfNjQrMHg2Ny8weDFiMApbICAzNDAuNTA2MDc4XSAgPyBlbnRyeV9TWVNDQUxM NjRfc2xvd19wYXRoKzB4MjUvMHgyNQoKRml4ZXM6IDk3MWYxMGVjYTE4NiAoInRjcDogYmV0dGVy IFRDUF9TS0JfQ0IgbGF5b3V0IHRvIHJlZHVjZSBjYWNoZSBsaW5lIG1pc3NlcyIpClNpZ25lZC1v ZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IEph bWVzIE1vcnJpcyA8amFtZXMubC5tb3JyaXNAb3JhY2xlLmNvbT4KVGVzdGVkLWJ5OiBKYW1lcyBN b3JyaXMgPGphbWVzLmwubW9ycmlzQG9yYWNsZS5jb20+ClRlc3RlZC1ieTogQ2FzZXkgU2NoYXVm bGVyIDxjYXNleUBzY2hhdWZsZXItY2EuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2lwdjQuYyB8IDU5ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBuZXQv aXB2Ni90Y3BfaXB2Ni5jIHwgMTAgKysrKystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2Vy dGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pcHY0 LmMgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCmluZGV4IDViMDI3YzY5Y2JjNS4uNWE1ZWQ0ZjE0Njc4 IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaXB2NC5jCisrKyBiL25ldC9pcHY0L3RjcF9pcHY0 LmMKQEAgLTE1ODcsNiArMTU4NywzNCBAQCBpbnQgdGNwX2ZpbHRlcihzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBza19idWZmICpza2IpCiB9CiBFWFBPUlRfU1lNQk9MKHRjcF9maWx0ZXIpOwogCitz dGF0aWMgdm9pZCB0Y3BfdjRfcmVzdG9yZV9jYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCW1l bW1vdmUoSVBDQihza2IpLCAmVENQX1NLQl9DQihza2IpLT5oZWFkZXIuaDQsCisJCXNpemVvZihz dHJ1Y3QgaW5ldF9za2JfcGFybSkpOworfQorCitzdGF0aWMgdm9pZCB0Y3BfdjRfZmlsbF9jYihz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgaXBoZHIgKmlwaCwKKwkJCSAgIGNvbnN0 IHN0cnVjdCB0Y3BoZHIgKnRoKQoreworCS8qIFRoaXMgaXMgdHJpY2t5IDogV2UgbW92ZSBJUENC IGF0IGl0cyBjb3JyZWN0IGxvY2F0aW9uIGludG8gVENQX1NLQl9DQigpCisJICogYmFycmllcigp IG1ha2VzIHN1cmUgY29tcGlsZXIgd29udCBwbGF5IGZvb2xeV2FsaWFzaW5nIGdhbWVzLgorCSAq LworCW1lbW1vdmUoJlRDUF9TS0JfQ0Ioc2tiKS0+aGVhZGVyLmg0LCBJUENCKHNrYiksCisJCXNp emVvZihzdHJ1Y3QgaW5ldF9za2JfcGFybSkpOworCWJhcnJpZXIoKTsKKworCVRDUF9TS0JfQ0Io c2tiKS0+c2VxID0gbnRvaGwodGgtPnNlcSk7CisJVENQX1NLQl9DQihza2IpLT5lbmRfc2VxID0g KFRDUF9TS0JfQ0Ioc2tiKS0+c2VxICsgdGgtPnN5biArIHRoLT5maW4gKworCQkJCSAgICBza2It PmxlbiAtIHRoLT5kb2ZmICogNCk7CisJVENQX1NLQl9DQihza2IpLT5hY2tfc2VxID0gbnRvaGwo dGgtPmFja19zZXEpOworCVRDUF9TS0JfQ0Ioc2tiKS0+dGNwX2ZsYWdzID0gdGNwX2ZsYWdfYnl0 ZSh0aCk7CisJVENQX1NLQl9DQihza2IpLT50Y3BfdHdfaXNuID0gMDsKKwlUQ1BfU0tCX0NCKHNr YiktPmlwX2RzZmllbGQgPSBpcHY0X2dldF9kc2ZpZWxkKGlwaCk7CisJVENQX1NLQl9DQihza2Ip LT5zYWNrZWQJID0gMDsKKwlUQ1BfU0tCX0NCKHNrYiktPmhhc19yeHRzdGFtcCA9CisJCQlza2It PnRzdGFtcCB8fCBza2JfaHd0c3RhbXBzKHNrYiktPmh3dHN0YW1wOworfQorCiAvKgogICoJRnJv bSB0Y3BfaW5wdXQuYwogICovCkBAIC0xNjI3LDI0ICsxNjU1LDYgQEAgaW50IHRjcF92NF9yY3Yo c3RydWN0IHNrX2J1ZmYgKnNrYikKIAogCXRoID0gKGNvbnN0IHN0cnVjdCB0Y3BoZHIgKilza2It PmRhdGE7CiAJaXBoID0gaXBfaGRyKHNrYik7Ci0JLyogVGhpcyBpcyB0cmlja3kgOiBXZSBtb3Zl IElQQ0IgYXQgaXRzIGNvcnJlY3QgbG9jYXRpb24gaW50byBUQ1BfU0tCX0NCKCkKLQkgKiBiYXJy aWVyKCkgbWFrZXMgc3VyZSBjb21waWxlciB3b250IHBsYXkgZm9vbF5XYWxpYXNpbmcgZ2FtZXMu Ci0JICovCi0JbWVtbW92ZSgmVENQX1NLQl9DQihza2IpLT5oZWFkZXIuaDQsIElQQ0Ioc2tiKSwK LQkJc2l6ZW9mKHN0cnVjdCBpbmV0X3NrYl9wYXJtKSk7Ci0JYmFycmllcigpOwotCi0JVENQX1NL Ql9DQihza2IpLT5zZXEgPSBudG9obCh0aC0+c2VxKTsKLQlUQ1BfU0tCX0NCKHNrYiktPmVuZF9z ZXEgPSAoVENQX1NLQl9DQihza2IpLT5zZXEgKyB0aC0+c3luICsgdGgtPmZpbiArCi0JCQkJICAg IHNrYi0+bGVuIC0gdGgtPmRvZmYgKiA0KTsKLQlUQ1BfU0tCX0NCKHNrYiktPmFja19zZXEgPSBu dG9obCh0aC0+YWNrX3NlcSk7Ci0JVENQX1NLQl9DQihza2IpLT50Y3BfZmxhZ3MgPSB0Y3BfZmxh Z19ieXRlKHRoKTsKLQlUQ1BfU0tCX0NCKHNrYiktPnRjcF90d19pc24gPSAwOwotCVRDUF9TS0Jf Q0Ioc2tiKS0+aXBfZHNmaWVsZCA9IGlwdjRfZ2V0X2RzZmllbGQoaXBoKTsKLQlUQ1BfU0tCX0NC KHNrYiktPnNhY2tlZAkgPSAwOwotCVRDUF9TS0JfQ0Ioc2tiKS0+aGFzX3J4dHN0YW1wID0KLQkJ CXNrYi0+dHN0YW1wIHx8IHNrYl9od3RzdGFtcHMoc2tiKS0+aHd0c3RhbXA7Ci0KIGxvb2t1cDoK IAlzayA9IF9faW5ldF9sb29rdXBfc2tiKCZ0Y3BfaGFzaGluZm8sIHNrYiwgX190Y3BfaGRybGVu KHRoKSwgdGgtPnNvdXJjZSwKIAkJCSAgICAgICB0aC0+ZGVzdCwgc2RpZiwgJnJlZmNvdW50ZWQp OwpAQCAtMTY3NSwxNCArMTY4NSwxOSBAQCBpbnQgdGNwX3Y0X3JjdihzdHJ1Y3Qgc2tfYnVmZiAq c2tiKQogCQlzb2NrX2hvbGQoc2spOwogCQlyZWZjb3VudGVkID0gdHJ1ZTsKIAkJbnNrID0gTlVM TDsKLQkJaWYgKCF0Y3BfZmlsdGVyKHNrLCBza2IpKQorCQlpZiAoIXRjcF9maWx0ZXIoc2ssIHNr YikpIHsKKwkJCXRoID0gKGNvbnN0IHN0cnVjdCB0Y3BoZHIgKilza2ItPmRhdGE7CisJCQlpcGgg PSBpcF9oZHIoc2tiKTsKKwkJCXRjcF92NF9maWxsX2NiKHNrYiwgaXBoLCB0aCk7CiAJCQluc2sg PSB0Y3BfY2hlY2tfcmVxKHNrLCBza2IsIHJlcSwgZmFsc2UpOworCQl9CiAJCWlmICghbnNrKSB7 CiAJCQlyZXFza19wdXQocmVxKTsKIAkJCWdvdG8gZGlzY2FyZF9hbmRfcmVsc2U7CiAJCX0KIAkJ aWYgKG5zayA9PSBzaykgewogCQkJcmVxc2tfcHV0KHJlcSk7CisJCQl0Y3BfdjRfcmVzdG9yZV9j Yihza2IpOwogCQl9IGVsc2UgaWYgKHRjcF9jaGlsZF9wcm9jZXNzKHNrLCBuc2ssIHNrYikpIHsK IAkJCXRjcF92NF9zZW5kX3Jlc2V0KG5zaywgc2tiKTsKIAkJCWdvdG8gZGlzY2FyZF9hbmRfcmVs c2U7CkBAIC0xNzA4LDYgKzE3MjMsNyBAQCBpbnQgdGNwX3Y0X3JjdihzdHJ1Y3Qgc2tfYnVmZiAq c2tiKQogCQlnb3RvIGRpc2NhcmRfYW5kX3JlbHNlOwogCXRoID0gKGNvbnN0IHN0cnVjdCB0Y3Bo ZHIgKilza2ItPmRhdGE7CiAJaXBoID0gaXBfaGRyKHNrYik7CisJdGNwX3Y0X2ZpbGxfY2Ioc2ti LCBpcGgsIHRoKTsKIAogCXNrYi0+ZGV2ID0gTlVMTDsKIApAQCAtMTczOCw2ICsxNzU0LDggQEAg aW50IHRjcF92NF9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlpZiAoIXhmcm00X3BvbGljeV9j aGVjayhOVUxMLCBYRlJNX1BPTElDWV9JTiwgc2tiKSkKIAkJZ290byBkaXNjYXJkX2l0OwogCisJ dGNwX3Y0X2ZpbGxfY2Ioc2tiLCBpcGgsIHRoKTsKKwogCWlmICh0Y3BfY2hlY2tzdW1fY29tcGxl dGUoc2tiKSkgewogY3N1bV9lcnJvcjoKIAkJX19UQ1BfSU5DX1NUQVRTKG5ldCwgVENQX01JQl9D U1VNRVJST1JTKTsKQEAgLTE3NjQsNiArMTc4Miw4IEBAIGludCB0Y3BfdjRfcmN2KHN0cnVjdCBz a19idWZmICpza2IpCiAJCWdvdG8gZGlzY2FyZF9pdDsKIAl9CiAKKwl0Y3BfdjRfZmlsbF9jYihz a2IsIGlwaCwgdGgpOworCiAJaWYgKHRjcF9jaGVja3N1bV9jb21wbGV0ZShza2IpKSB7CiAJCWlu ZXRfdHdza19wdXQoaW5ldF90d3NrKHNrKSk7CiAJCWdvdG8gY3N1bV9lcnJvcjsKQEAgLTE3ODAs NiArMTgwMCw3IEBAIGludCB0Y3BfdjRfcmN2KHN0cnVjdCBza19idWZmICpza2IpCiAJCWlmIChz azIpIHsKIAkJCWluZXRfdHdza19kZXNjaGVkdWxlX3B1dChpbmV0X3R3c2soc2spKTsKIAkJCXNr ID0gc2syOworCQkJdGNwX3Y0X3Jlc3RvcmVfY2Ioc2tiKTsKIAkJCXJlZmNvdW50ZWQgPSBmYWxz ZTsKIAkJCWdvdG8gcHJvY2VzczsKIAkJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYu YyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKaW5kZXggNjRkOTRhZmE0MjdmLi4wNjczNTBhYzg0M2Eg MTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3RjcF9pcHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYu YwpAQCAtMTQ0OCw3ICsxNDQ4LDYgQEAgc3RhdGljIGludCB0Y3BfdjZfcmN2KHN0cnVjdCBza19i dWZmICpza2IpCiAJCXN0cnVjdCBzb2NrICpuc2s7CiAKIAkJc2sgPSByZXEtPnJza19saXN0ZW5l cjsKLQkJdGNwX3Y2X2ZpbGxfY2Ioc2tiLCBoZHIsIHRoKTsKIAkJaWYgKHRjcF92Nl9pbmJvdW5k X21kNV9oYXNoKHNrLCBza2IpKSB7CiAJCQlza19kcm9wc19hZGQoc2ssIHNrYik7CiAJCQlyZXFz a19wdXQocmVxKTsKQEAgLTE0NjEsOCArMTQ2MCwxMiBAQCBzdGF0aWMgaW50IHRjcF92Nl9yY3Yo c3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJc29ja19ob2xkKHNrKTsKIAkJcmVmY291bnRlZCA9IHRy dWU7CiAJCW5zayA9IE5VTEw7Ci0JCWlmICghdGNwX2ZpbHRlcihzaywgc2tiKSkKKwkJaWYgKCF0 Y3BfZmlsdGVyKHNrLCBza2IpKSB7CisJCQl0aCA9IChjb25zdCBzdHJ1Y3QgdGNwaGRyICopc2ti LT5kYXRhOworCQkJaGRyID0gaXB2Nl9oZHIoc2tiKTsKKwkJCXRjcF92Nl9maWxsX2NiKHNrYiwg aGRyLCB0aCk7CiAJCQluc2sgPSB0Y3BfY2hlY2tfcmVxKHNrLCBza2IsIHJlcSwgZmFsc2UpOwor CQl9CiAJCWlmICghbnNrKSB7CiAJCQlyZXFza19wdXQocmVxKTsKIAkJCWdvdG8gZGlzY2FyZF9h bmRfcmVsc2U7CkBAIC0xNDg2LDggKzE0ODksNiBAQCBzdGF0aWMgaW50IHRjcF92Nl9yY3Yoc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAlpZiAoIXhmcm02X3BvbGljeV9jaGVjayhzaywgWEZSTV9QT0xJ Q1lfSU4sIHNrYikpCiAJCWdvdG8gZGlzY2FyZF9hbmRfcmVsc2U7CiAKLQl0Y3BfdjZfZmlsbF9j Yihza2IsIGhkciwgdGgpOwotCiAJaWYgKHRjcF92Nl9pbmJvdW5kX21kNV9oYXNoKHNrLCBza2Ip KQogCQlnb3RvIGRpc2NhcmRfYW5kX3JlbHNlOwogCkBAIC0xNDk1LDYgKzE0OTYsNyBAQCBzdGF0 aWMgaW50IHRjcF92Nl9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJZ290byBkaXNjYXJkX2Fu ZF9yZWxzZTsKIAl0aCA9IChjb25zdCBzdHJ1Y3QgdGNwaGRyICopc2tiLT5kYXRhOwogCWhkciA9 IGlwdjZfaGRyKHNrYik7CisJdGNwX3Y2X2ZpbGxfY2Ioc2tiLCBoZHIsIHRoKTsKIAogCXNrYi0+ ZGV2ID0gTlVMTDsKIAotLSAKMi4xNC4zCgoKRnJvbSA0MzYyYmM1NjQ1NWJjOTA2Njk2YjZiZTg2 ZWU5MTcyY2I1OTI0MDkxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWtlIE1hbG9u ZXkgPG1hbG9uZXlAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAxMDo0NDoyOSAt MDUwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMzNdIHBhY2tldDogZml4IGNyYXNoIGluIGZhbm91dF9k ZW11eF9yb2xsb3ZlcigpCgpzeXprYWxsZXIgZm91bmQgYSByYWNlIGNvbmRpdGlvbiBmYW5vdXRf ZGVtdXhfcm9sbG92ZXIoKSB3aGlsZSByZW1vdmluZwphIHBhY2tldCBzb2NrZXQgZnJvbSBhIGZh bm91dCBncm91cC4KCnBvLT5yb2xsb3ZlciBpcyByZWFkIGFuZCBvcGVyYXRlZCBvbiBkdXJpbmcg cGFja2V0X3Jjdl9mYW5vdXQoKSwgdmlhCmZhbm91dF9kZW11eF9yb2xsb3ZlcigpLCBidXQgdGhl IHBvaW50ZXIgaXMgY3VycmVudGx5IGNsZWFyZWQgYmVmb3JlIHRoZQpzeW5jaHJvbml6YXRpb24g aW4gcGFja2V0X3JlbGVhc2UoKS4gICBJdCBpcyBzYWZlciB0byBkZWxheSB0aGUgY2xlYW51cAp1 bnRpbCBhZnRlciBzeW5jaHJvbml6ZV9uZXQoKSBoYXMgYmVlbiBjYWxsZWQsIGVuc3VyaW5nIGFs bCBjYWxscyB0bwpwYWNrZXRfcmN2X2Zhbm91dCgpIGZvciB0aGlzIHNvY2tldCBoYXZlIGZpbmlz aGVkLgoKVG8gZnVydGhlciBzaW1wbGlmeSBzeW5jaHJvbml6YXRpb24gYXJvdW5kIHRoZSByb2xs b3ZlciBzdHJ1Y3R1cmUsIHNldApwby0+cm9sbG92ZXIgaW4gZmFub3V0X2FkZCgpIG9ubHkgaWYg dGhlcmUgYXJlIG5vIGVycm9ycy4gIFRoaXMgcmVtb3Zlcwp0aGUgbmVlZCBmb3IgcmN1IGluIHRo ZSBzdHJ1Y3QgYW5kIGluIHRoZSBjYWxsIHRvCnBhY2tldF9nZXRzb2Nrb3B0KC4uLiwgUEFDS0VU X1JPTExPVkVSX1NUQVRTLCAuLi4pLgoKQ3Jhc2hpbmcgc3RhY2sgdHJhY2U6CiBmYW5vdXRfZGVt dXhfcm9sbG92ZXIrMHhiNi8weDRkMCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjEzOTIKIHBhY2tl dF9yY3ZfZmFub3V0KzB4NjQ5LzB4N2M4IG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6MTQ4NwogZGV2 X3F1ZXVlX3htaXRfbml0KzB4ODM1LzB4YzEwIG5ldC9jb3JlL2Rldi5jOjE5NTMKIHhtaXRfb25l IG5ldC9jb3JlL2Rldi5jOjI5NzUgW2lubGluZV0KIGRldl9oYXJkX3N0YXJ0X3htaXQrMHgxNmIv MHhhYzAgbmV0L2NvcmUvZGV2LmM6Mjk5NQogX19kZXZfcXVldWVfeG1pdCsweDE3YTQvMHgyMDUw IG5ldC9jb3JlL2Rldi5jOjM0NzYKIGRldl9xdWV1ZV94bWl0KzB4MTcvMHgyMCBuZXQvY29yZS9k ZXYuYzozNTA5CiBuZWlnaF9jb25uZWN0ZWRfb3V0cHV0KzB4NDg5LzB4NzIwIG5ldC9jb3JlL25l aWdoYm91ci5jOjEzNzkKIG5laWdoX291dHB1dCBpbmNsdWRlL25ldC9uZWlnaGJvdXIuaDo0ODIg W2lubGluZV0KIGlwNl9maW5pc2hfb3V0cHV0MisweGFkMS8weDIyYTAgbmV0L2lwdjYvaXA2X291 dHB1dC5jOjEyMAogaXA2X2ZpbmlzaF9vdXRwdXQrMHgyZjkvMHg5MjAgbmV0L2lwdjYvaXA2X291 dHB1dC5jOjE0NgogTkZfSE9PS19DT05EIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MjM5IFtp bmxpbmVdCiBpcDZfb3V0cHV0KzB4MWY0LzB4ODUwIG5ldC9pcHY2L2lwNl9vdXRwdXQuYzoxNjMK IGRzdF9vdXRwdXQgaW5jbHVkZS9uZXQvZHN0Lmg6NDU5IFtpbmxpbmVdCiBORl9IT09LLmNvbnN0 cHJvcC4zNSsweGZmLzB4NjMwIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MjUwCiBtbGRfc2Vu ZHBhY2srMHg2YTgvMHhjYzAgbmV0L2lwdjYvbWNhc3QuYzoxNjYwCiBtbGRfc2VuZF9pbml0aWFs X2NyLnBhcnQuMjQrMHgxMDMvMHgxNTAgbmV0L2lwdjYvbWNhc3QuYzoyMDcyCiBtbGRfc2VuZF9p bml0aWFsX2NyIG5ldC9pcHY2L21jYXN0LmM6MjA1NiBbaW5saW5lXQogaXB2Nl9tY19kYWRfY29t cGxldGUrMHg5OS8weDEzMCBuZXQvaXB2Ni9tY2FzdC5jOjIwNzkKIGFkZHJjb25mX2RhZF9jb21w bGV0ZWQrMHg1OTUvMHg5NzAgbmV0L2lwdjYvYWRkcmNvbmYuYzo0MDM5CiBhZGRyY29uZl9kYWRf d29yaysweGFjOS8weDExNjAgbmV0L2lwdjYvYWRkcmNvbmYuYzozOTcxCiBwcm9jZXNzX29uZV93 b3JrKzB4YmYwLzB4MWJjMCBrZXJuZWwvd29ya3F1ZXVlLmM6MjExMwogd29ya2VyX3RocmVhZCsw eDIyMy8weDE5OTAga2VybmVsL3dvcmtxdWV1ZS5jOjIyNDcKIGt0aHJlYWQrMHgzNWUvMHg0MzAg a2VybmVsL2t0aHJlYWQuYzoyMzEKIHJldF9mcm9tX2ZvcmsrMHgyYS8weDQwIGFyY2gveDg2L2Vu dHJ5L2VudHJ5XzY0LlM6NDMyCgpGaXhlczogMDY0OGFiNzBhZmU2ICgicGFja2V0OiByb2xsb3Zl ciBwcmVwYXJlOiBwZXItc29ja2V0IHN0YXRlIikKRml4ZXM6IDUwOWM3YTFlY2M4NjAgKCJwYWNr ZXQ6IGF2b2lkIHBhbmljIGluIHBhY2tldF9nZXRzb2Nrb3B0KCkiKQpSZXBvcnRlZC1ieTogc3l6 Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KU2lnbmVkLW9mZi1ieTogTWlrZSBNYWxv bmV5IDxtYWxvbmV5QGdvb2dsZS5jb20+ClJldmlld2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgMzIgKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIG5ldC9wYWNrZXQvaW50ZXJuYWwuaCAgfCAgMSAtCiAyIGZp bGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCmluZGV4 IDI5ODY5NDExNjRiMS4uMmViNGYxZTViODYxIDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3Bh Y2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTE2OTcsNyArMTY5Nyw2IEBA IHN0YXRpYyBpbnQgZmFub3V0X2FkZChzdHJ1Y3Qgc29jayAqc2ssIHUxNiBpZCwgdTE2IHR5cGVf ZmxhZ3MpCiAJCWF0b21pY19sb25nX3NldCgmcm9sbG92ZXItPm51bSwgMCk7CiAJCWF0b21pY19s b25nX3NldCgmcm9sbG92ZXItPm51bV9odWdlLCAwKTsKIAkJYXRvbWljX2xvbmdfc2V0KCZyb2xs b3Zlci0+bnVtX2ZhaWxlZCwgMCk7Ci0JCXBvLT5yb2xsb3ZlciA9IHJvbGxvdmVyOwogCX0KIAog CWlmICh0eXBlX2ZsYWdzICYgUEFDS0VUX0ZBTk9VVF9GTEFHX1VOSVFVRUlEKSB7CkBAIC0xNzU1 LDYgKzE3NTQsOCBAQCBzdGF0aWMgaW50IGZhbm91dF9hZGQoc3RydWN0IHNvY2sgKnNrLCB1MTYg aWQsIHUxNiB0eXBlX2ZsYWdzKQogCQlpZiAocmVmY291bnRfcmVhZCgmbWF0Y2gtPnNrX3JlZikg PCBQQUNLRVRfRkFOT1VUX01BWCkgewogCQkJX19kZXZfcmVtb3ZlX3BhY2soJnBvLT5wcm90X2hv b2spOwogCQkJcG8tPmZhbm91dCA9IG1hdGNoOworCQkJcG8tPnJvbGxvdmVyID0gcm9sbG92ZXI7 CisJCQlyb2xsb3ZlciA9IE5VTEw7CiAJCQlyZWZjb3VudF9zZXQoJm1hdGNoLT5za19yZWYsIHJl ZmNvdW50X3JlYWQoJm1hdGNoLT5za19yZWYpICsgMSk7CiAJCQlfX2Zhbm91dF9saW5rKHNrLCBw byk7CiAJCQllcnIgPSAwOwpAQCAtMTc2OCwxMCArMTc2OSw3IEBAIHN0YXRpYyBpbnQgZmFub3V0 X2FkZChzdHJ1Y3Qgc29jayAqc2ssIHUxNiBpZCwgdTE2IHR5cGVfZmxhZ3MpCiAJfQogCiBvdXQ6 Ci0JaWYgKGVyciAmJiByb2xsb3ZlcikgewotCQlrZnJlZV9yY3Uocm9sbG92ZXIsIHJjdSk7Ci0J CXBvLT5yb2xsb3ZlciA9IE5VTEw7Ci0JfQorCWtmcmVlKHJvbGxvdmVyKTsKIAltdXRleF91bmxv Y2soJmZhbm91dF9tdXRleCk7CiAJcmV0dXJuIGVycjsKIH0KQEAgLTE3OTUsMTEgKzE3OTMsNiBA QCBzdGF0aWMgc3RydWN0IHBhY2tldF9mYW5vdXQgKmZhbm91dF9yZWxlYXNlKHN0cnVjdCBzb2Nr ICpzaykKIAkJCWxpc3RfZGVsKCZmLT5saXN0KTsKIAkJZWxzZQogCQkJZiA9IE5VTEw7Ci0KLQkJ aWYgKHBvLT5yb2xsb3ZlcikgewotCQkJa2ZyZWVfcmN1KHBvLT5yb2xsb3ZlciwgcmN1KTsKLQkJ CXBvLT5yb2xsb3ZlciA9IE5VTEw7Ci0JCX0KIAl9CiAJbXV0ZXhfdW5sb2NrKCZmYW5vdXRfbXV0 ZXgpOwogCkBAIC0zMDM5LDYgKzMwMzIsNyBAQCBzdGF0aWMgaW50IHBhY2tldF9yZWxlYXNlKHN0 cnVjdCBzb2NrZXQgKnNvY2spCiAJc3luY2hyb25pemVfbmV0KCk7CiAKIAlpZiAoZikgeworCQlr ZnJlZShwby0+cm9sbG92ZXIpOwogCQlmYW5vdXRfcmVsZWFzZV9kYXRhKGYpOwogCQlrZnJlZShm KTsKIAl9CkBAIC0zODUzLDcgKzM4NDcsNiBAQCBzdGF0aWMgaW50IHBhY2tldF9nZXRzb2Nrb3B0 KHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJdm9pZCAqZGF0 YSA9ICZ2YWw7CiAJdW5pb24gdHBhY2tldF9zdGF0c191IHN0OwogCXN0cnVjdCB0cGFja2V0X3Jv bGxvdmVyX3N0YXRzIHJzdGF0czsKLQlzdHJ1Y3QgcGFja2V0X3JvbGxvdmVyICpyb2xsb3ZlcjsK IAogCWlmIChsZXZlbCAhPSBTT0xfUEFDS0VUKQogCQlyZXR1cm4gLUVOT1BST1RPT1BUOwpAQCAt MzkzMiwxOCArMzkyNSwxMyBAQCBzdGF0aWMgaW50IHBhY2tldF9nZXRzb2Nrb3B0KHN0cnVjdCBz b2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJCSAgICAgICAwKTsKIAkJYnJl YWs7CiAJY2FzZSBQQUNLRVRfUk9MTE9WRVJfU1RBVFM6Ci0JCXJjdV9yZWFkX2xvY2soKTsKLQkJ cm9sbG92ZXIgPSByY3VfZGVyZWZlcmVuY2UocG8tPnJvbGxvdmVyKTsKLQkJaWYgKHJvbGxvdmVy KSB7Ci0JCQlyc3RhdHMudHBfYWxsID0gYXRvbWljX2xvbmdfcmVhZCgmcm9sbG92ZXItPm51bSk7 Ci0JCQlyc3RhdHMudHBfaHVnZSA9IGF0b21pY19sb25nX3JlYWQoJnJvbGxvdmVyLT5udW1faHVn ZSk7Ci0JCQlyc3RhdHMudHBfZmFpbGVkID0gYXRvbWljX2xvbmdfcmVhZCgmcm9sbG92ZXItPm51 bV9mYWlsZWQpOwotCQkJZGF0YSA9ICZyc3RhdHM7Ci0JCQlsdiA9IHNpemVvZihyc3RhdHMpOwot CQl9Ci0JCXJjdV9yZWFkX3VubG9jaygpOwotCQlpZiAoIXJvbGxvdmVyKQorCQlpZiAoIXBvLT5y b2xsb3ZlcikKIAkJCXJldHVybiAtRUlOVkFMOworCQlyc3RhdHMudHBfYWxsID0gYXRvbWljX2xv bmdfcmVhZCgmcG8tPnJvbGxvdmVyLT5udW0pOworCQlyc3RhdHMudHBfaHVnZSA9IGF0b21pY19s b25nX3JlYWQoJnBvLT5yb2xsb3Zlci0+bnVtX2h1Z2UpOworCQlyc3RhdHMudHBfZmFpbGVkID0g YXRvbWljX2xvbmdfcmVhZCgmcG8tPnJvbGxvdmVyLT5udW1fZmFpbGVkKTsKKwkJZGF0YSA9ICZy c3RhdHM7CisJCWx2ID0gc2l6ZW9mKHJzdGF0cyk7CiAJCWJyZWFrOwogCWNhc2UgUEFDS0VUX1RY X0hBU19PRkY6CiAJCXZhbCA9IHBvLT50cF90eF9oYXNfb2ZmOwpkaWZmIC0tZ2l0IGEvbmV0L3Bh Y2tldC9pbnRlcm5hbC5oIGIvbmV0L3BhY2tldC9pbnRlcm5hbC5oCmluZGV4IDU2MmZiYzE1NTAw Ni4uYTFkMmIyMzE5YWU5IDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2ludGVybmFsLmgKKysrIGIv bmV0L3BhY2tldC9pbnRlcm5hbC5oCkBAIC05NSw3ICs5NSw2IEBAIHN0cnVjdCBwYWNrZXRfZmFu b3V0IHsKIAogc3RydWN0IHBhY2tldF9yb2xsb3ZlciB7CiAJaW50CQkJc29jazsKLQlzdHJ1Y3Qg cmN1X2hlYWQJCXJjdTsKIAlhdG9taWNfbG9uZ190CQludW07CiAJYXRvbWljX2xvbmdfdAkJbnVt X2h1Z2U7CiAJYXRvbWljX2xvbmdfdAkJbnVtX2ZhaWxlZDsKLS0gCjIuMTQuMwoKCkZyb20gZmY4 MGM3NjBjNzU4NDViZDJjNjc4OTY3NzAxZTcxMTk4OTI4NTkxZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUs IDI4IE5vdiAyMDE3IDA4OjAzOjMwIC0wODAwClN1YmplY3Q6IFtQQVRDSCAxMi8zM10gbmV0L3Bh Y2tldDogZml4IGEgcmFjZSBpbiBwYWNrZXRfYmluZCgpIGFuZAogcGFja2V0X25vdGlmaWVyKCkK ClsgVXBzdHJlYW0gY29tbWl0IDE1ZmUwNzZlZGVhNzg3ODA3YTdjZGMxNjhkZjgzMjU0NGI1OGVi YTYgXQoKc3l6Ym90IHJlcG9ydGVkIGNyYXNoZXMgWzFdIGFuZCBwcm92aWRlZCBhIEMgcmVwcm8g ZWFzaW5nIGJ1ZyBodW50aW5nLgoKV2hlbi9pZiBwYWNrZXRfZG9fYmluZCgpIGNhbGxzIF9fdW5y ZWdpc3Rlcl9wcm90X2hvb2soKSBhbmQgcmVsZWFzZXMKcG8tPmJpbmRfbG9jaywgYW5vdGhlciB0 aHJlYWQgY2FuIHJ1biBwYWNrZXRfbm90aWZpZXIoKSBhbmQgcHJvY2VzcyBhbgpORVRERVZfVVAg ZXZlbnQuCgpUaGlzIGNhbGxzIHJlZ2lzdGVyX3Byb3RfaG9vaygpIGFuZCBob29rcyBhZ2FpbiB0 aGUgc29ja2V0IHJpZ2h0IGJlZm9yZQpmaXJzdCB0aHJlYWQgaXMgYWJsZSB0byBncmFiIGFnYWlu IHBvLT5iaW5kX2xvY2suCgpGaXhlcyB0aGlzIGlzc3VlIGJ5IHRlbXBvcmFyaWx5IHNldHRpbmcg cG8tPm51bSB0byAwLCBhcyBzdWdnZXN0ZWQgYnkKRGF2aWQgTWlsbGVyLgoKWzFdCmRldl9yZW1v dmVfcGFjazogZmZmZjg4MDFiZjE2ZmE4MCBub3QgZm91bmQKLS0tLS0tLS0tLS0tWyBjdXQgaGVy ZSBdLS0tLS0tLS0tLS0tCmtlcm5lbCBCVUcgYXQgbmV0L2NvcmUvZGV2LmM6Nzk0NSEgICggQlVH X09OKCFsaXN0X2VtcHR5KCZkZXYtPnB0eXBlX2FsbCkpOyApCmludmFsaWQgb3Bjb2RlOiAwMDAw IFsjMV0gU01QIEtBU0FOCkR1bXBpbmcgZnRyYWNlIGJ1ZmZlcjoKICAgKGZ0cmFjZSBidWZmZXIg ZW1wdHkpCk1vZHVsZXMgbGlua2VkIGluOgpkZXZpY2Ugc3l6MCBlbnRlcmVkIHByb21pc2N1b3Vz IG1vZGUKQ1BVOiAwIFBJRDogMzE2MSBDb21tOiBzeXprYWxsZXI0MDQxMDggTm90IHRhaW50ZWQg NC4xNC4wKyAjMTkwCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUv R29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCnRhc2s6IGZmZmY4 ODAxY2M1N2E1MDAgdGFzay5zdGFjazogZmZmZjg4MDFjYzU4ODAwMApSSVA6IDAwMTA6bmV0ZGV2 X3J1bl90b2RvKzB4NzcyLzB4YWUwIG5ldC9jb3JlL2Rldi5jOjc5NDUKUlNQOiAwMDE4OmZmZmY4 ODAxY2M1OGY1OTggRUZMQUdTOiAwMDAxMDI5MwpSQVg6IGZmZmY4ODAxY2M1N2E1MDAgUkJYOiBk ZmZmZmMwMDAwMDAwMDAwIFJDWDogZmZmZmZmZmY4NDFmNzViMgpSRFg6IDAwMDAwMDAwMDAwMDAw MDAgUlNJOiAxZmZmZjEwMDM5OGIxZWRlIFJESTogZmZmZjg4MDFiZjFmODgxMApkZXZpY2Ugc3l6 MCBlbnRlcmVkIHByb21pc2N1b3VzIG1vZGUKUkJQOiBmZmZmODgwMWNjNThmODk4IFIwODogMDAw MDAwMDAwMDAwMDAwMSBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAw IFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IGZmZmY4ODAxYmYxZjhjZDgKUjEzOiBmZmZmODgw MWNjNThmODcwIFIxNDogZmZmZjg4MDFiZjFmODc4MCBSMTU6IGZmZmY4ODAxY2M1OGY3ZjAKRlM6 ICAwMDAwMDAwMDAxNzE2ODgwKDAwMDApIEdTOmZmZmY4ODAxZGI0MDAwMDAoMDAwMCkga25sR1M6 MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAw MDgwMDUwMDMzCkNSMjogMDAwMDAwMDAyMGIxMzAwMCBDUjM6IDAwMDAwMDAwMDVlMjUwMDAgQ1I0 OiAwMDAwMDAwMDAwMTQwNmYwCkRSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAw MDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwCkRSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAw MDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAwCkNhbGwgVHJhY2U6CiBydG5sX3Vu bG9jaysweGUvMHgxMCBuZXQvY29yZS9ydG5ldGxpbmsuYzoxMDYKIHR1bl9kZXRhY2ggZHJpdmVy cy9uZXQvdHVuLmM6NjcwIFtpbmxpbmVdCiB0dW5fY2hyX2Nsb3NlKzB4NDkvMHg2MCBkcml2ZXJz L25ldC90dW4uYzoyODQ1CiBfX2ZwdXQrMHgzMzMvMHg3ZjAgZnMvZmlsZV90YWJsZS5jOjIxMAog X19fX2ZwdXQrMHgxNS8weDIwIGZzL2ZpbGVfdGFibGUuYzoyNDQKIHRhc2tfd29ya19ydW4rMHgx OTkvMHgyNzAga2VybmVsL3Rhc2tfd29yay5jOjExMwogZXhpdF90YXNrX3dvcmsgaW5jbHVkZS9s aW51eC90YXNrX3dvcmsuaDoyMiBbaW5saW5lXQogZG9fZXhpdCsweDliYi8weDFhZTAga2VybmVs L2V4aXQuYzo4NjUKIGRvX2dyb3VwX2V4aXQrMHgxNDkvMHg0MDAga2VybmVsL2V4aXQuYzo5NjgK IFNZU0NfZXhpdF9ncm91cCBrZXJuZWwvZXhpdC5jOjk3OSBbaW5saW5lXQogU3lTX2V4aXRfZ3Jv dXArMHgxZC8weDIwIGtlcm5lbC9leGl0LmM6OTc3CiBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRo KzB4MWYvMHg5NgpSSVA6IDAwMzM6MHg0NGFkMTkKCkZpeGVzOiAzMGY3ZWExYzJiNWYgKCJwYWNr ZXQ6IHJhY2UgY29uZGl0aW9uIGluIHBhY2tldF9iaW5kIikKU2lnbmVkLW9mZi1ieTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxs ZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KQ2M6IEZyYW5jZXNjbyBSdWdnZXJpIDxmcnVnZ2VyaUBhcmlz dGFuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgNSArKysrKwogMSBmaWxl IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFj a2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCmluZGV4IDJlYjRmMWU1Yjg2MS4uZjRhMDU4 N2I3ZDVlIDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNr ZXQvYWZfcGFja2V0LmMKQEAgLTMxMDEsNiArMzEwMSwxMCBAQCBzdGF0aWMgaW50IHBhY2tldF9k b19iaW5kKHN0cnVjdCBzb2NrICpzaywgY29uc3QgY2hhciAqbmFtZSwgaW50IGlmaW5kZXgsCiAJ aWYgKG5lZWRfcmVob29rKSB7CiAJCWlmIChwby0+cnVubmluZykgewogCQkJcmN1X3JlYWRfdW5s b2NrKCk7CisJCQkvKiBwcmV2ZW50cyBwYWNrZXRfbm90aWZpZXIoKSBmcm9tIGNhbGxpbmcKKwkJ CSAqIHJlZ2lzdGVyX3Byb3RfaG9vaygpCisJCQkgKi8KKwkJCXBvLT5udW0gPSAwOwogCQkJX191 bnJlZ2lzdGVyX3Byb3RfaG9vayhzaywgdHJ1ZSk7CiAJCQlyY3VfcmVhZF9sb2NrKCk7CiAJCQlk ZXZfY3VyciA9IHBvLT5wcm90X2hvb2suZGV2OwpAQCAtMzEwOSw2ICszMTEzLDcgQEAgc3RhdGlj IGludCBwYWNrZXRfZG9fYmluZChzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IGNoYXIgKm5hbWUsIGlu dCBpZmluZGV4LAogCQkJCQkJCQkgZGV2LT5pZmluZGV4KTsKIAkJfQogCisJCUJVR19PTihwby0+ cnVubmluZyk7CiAJCXBvLT5udW0gPSBwcm90bzsKIAkJcG8tPnByb3RfaG9vay50eXBlID0gcHJv dG87CiAKLS0gCjIuMTQuMwoKCkZyb20gNGZiODc5MjA4NGM5YTNhODJjN2ZmODlkMTAwY2Y4ZWEz NTAwNzUwMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDI5IE5vdiAyMDE3IDE3OjQzOjU3IC0wODAwClN1 YmplY3Q6IFtQQVRDSCAxMy8zM10gdGNwOiByZW1vdmUgYnVnZ3kgY2FsbCB0byB0Y3BfdjZfcmVz dG9yZV9jYigpCgpbIFVwc3RyZWFtIGNvbW1pdCAzMDE2ZGFkNzViNDgyNzllNTc5MTE3ZWUzZWQ1 NjZiYTkwYTNiMDIzIF0KCnRjcF92Nl9zZW5kX3Jlc2V0KCkgZXhwZWN0cyB0byByZWNlaXZlIGFu IHNrYiB3aXRoIHNrYi0+Y2JbXSBsYXlvdXQgYXMKdXNlZCBpbiBUQ1Agc3RhY2suCk1ENSBsb29r dXAgdXNlcyB0Y3BfdjZfaWlmKCkgYW5kIHRjcF92Nl9zZGlmKCkgYW5kIHRodXMKVENQX1NLQl9D Qihza2IpLT5oZWFkZXIuaDYKClRoaXMgcGF0Y2ggcHJvYmFibHkgZml4ZXMgUlNUIHBhY2tldHMg c2VudCBvbiBiZWhhbGYgb2YgYSB0aW1ld2FpdCBtZDUKaXB2NiBzb2NrZXQuCgpCZWZvcmUgRmxv cmlhbiBwYXRjaCwgdGNwX3Y2X3Jlc3RvcmVfY2IoKSB3YXMgbmVlZGVkIGJlZm9yZSBqdW1waW5n IHRvCm5vX3RjcF9zb2NrZXQgbGFiZWwuCgpGaXhlczogMjcxYzNiOWI3YmRhICgidGNwOiBob25v dXIgU09fQklORFRPREVWSUNFIGZvciBUV19SU1QgY2FzZSB0b28iKQpTaWduZWQtb2ZmLWJ5OiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBGbG9yaWFuIFdlc3RwaGFsIDxm d0BzdHJsZW4uZGU+CkFja2VkLWJ5OiBGbG9yaWFuIFdlc3RwaGFsIDxmd0BzdHJsZW4uZGU+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvaXB2Ni90Y3BfaXB2Ni5jIHwgMSAtCiAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL25ldC9pcHY2L3RjcF9pcHY2LmMgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCmlu ZGV4IDA2NzM1MGFjODQzYS4uMzJkZWQzMDA2MzNkIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni90Y3Bf aXB2Ni5jCisrKyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKQEAgLTE1ODUsNyArMTU4NSw2IEBAIHN0 YXRpYyBpbnQgdGNwX3Y2X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQl0Y3BfdjZfdGltZXdh aXRfYWNrKHNrLCBza2IpOwogCQlicmVhazsKIAljYXNlIFRDUF9UV19SU1Q6Ci0JCXRjcF92Nl9y ZXN0b3JlX2NiKHNrYik7CiAJCXRjcF92Nl9zZW5kX3Jlc2V0KHNrLCBza2IpOwogCQlpbmV0X3R3 c2tfZGVzY2hlZHVsZV9wdXQoaW5ldF90d3NrKHNrKSk7CiAJCWdvdG8gZGlzY2FyZF9pdDsKLS0g CjIuMTQuMwoKCkZyb20gZTA3YmZjM2U1OGE4MjMzZDY0MjM2YzIxYWQ3ZTBlNzhlYjViZTRlNSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0JqPUMzPUI4cm49MjBNb3Jr Pz0gPGJqb3JuQG1vcmsubm8+CkRhdGU6IFdlZCwgNiBEZWMgMjAxNyAyMDoyMToyNCArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTQvMzNdIHVzYm5ldDogZml4IGFsaWdubWVudCBmb3IgZnJhbWVzIHdp dGggbm8gZXRoZXJuZXQKIGhlYWRlcgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRl eHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoK WyBVcHN0cmVhbSBjb21taXQgYTRhYmQ3YTgwYWRkYjRhOTU0N2Y3ZGZjNzgxMjU2NmI2MGVjNTA1 YyBdCgpUaGUgcW1pX3d3YW4gbWluaWRyaXZlciBzdXBwb3J0IGEgJ3Jhdy1pcCcgbW9kZSB3aGVy ZSBmcmFtZXMgYXJlCnJlY2VpdmVkIHdpdGhvdXQgYW55IGV0aGVybmV0IGhlYWRlci4gVGhpcyBj YXVzZXMgYWxpZ25tZW50IGlzc3VlcwpiZWNhdXNlIHRoZSBza2JzIGFsbG9jYXRlZCBieSB1c2Ju ZXQgYXJlICJJUCBhbGlnbmVkIi4KCkZpeCBieSBhbGxvd2luZyBtaW5pZHJpdmVycyB0byBkaXNh YmxlIHRoZSBhZGRpdGlvbmFsIGFsaWdubWVudApvZmZzZXQuIFRoaXMgaXMgaW1wbGVtZW50ZWQg dXNpbmcgYSBwZXItZGV2aWNlIGZsYWcsIHNpbmNlIHRoZSBzYW1lCm1pbmlkcml2ZXIgYWxzbyBz dXBwb3J0cyAnZXRoZXJuZXQnIG1vZGUuCgpGaXhlczogMzJmN2FkZjYzM2I5ICgibmV0OiBxbWlf d3dhbjogc3VwcG9ydCAicmF3IElQIiBtb2RlIikKUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogSmF5 IEZvc3RlciA8amF5QHN5c3RlY2guY29tPgpTaWduZWQtb2ZmLWJ5OiBCasO4cm4gTW9yayA8Ympv cm5AbW9yay5ubz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIHwgMiArKwogZHJpdmVycy9u ZXQvdXNiL3VzYm5ldC5jICAgfCA1ICsrKystCiBpbmNsdWRlL2xpbnV4L3VzYi91c2JuZXQuaCB8 IDEgKwogMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyBiL2RyaXZlcnMvbmV0L3VzYi9x bWlfd3dhbi5jCmluZGV4IGY0ZWQ1NTM5MjlmMC4uODEzOTRhNGIyODAzIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYworKysgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4u YwpAQCAtMjYxLDkgKzI2MSwxMSBAQCBzdGF0aWMgdm9pZCBxbWlfd3dhbl9uZXRkZXZfc2V0dXAo c3RydWN0IG5ldF9kZXZpY2UgKm5ldCkKIAkJbmV0LT5oYXJkX2hlYWRlcl9sZW4gPSAwOwogCQlu ZXQtPmFkZHJfbGVuICAgICAgICA9IDA7CiAJCW5ldC0+ZmxhZ3MgICAgICAgICAgID0gSUZGX1BP SU5UT1BPSU5UIHwgSUZGX05PQVJQIHwgSUZGX01VTFRJQ0FTVDsKKwkJc2V0X2JpdChFVkVOVF9O T19JUF9BTElHTiwgJmRldi0+ZmxhZ3MpOwogCQluZXRkZXZfZGJnKG5ldCwgIm1vZGU6IHJhdyBJ UFxuIik7CiAJfSBlbHNlIGlmICghbmV0LT5oZWFkZXJfb3BzKSB7IC8qIGRvbid0IGJvdGhlciBp ZiBhbHJlYWR5IHNldCAqLwogCQlldGhlcl9zZXR1cChuZXQpOworCQljbGVhcl9iaXQoRVZFTlRf Tk9fSVBfQUxJR04sICZkZXYtPmZsYWdzKTsKIAkJbmV0ZGV2X2RiZyhuZXQsICJtb2RlOiBFdGhl cm5ldFxuIik7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvdXNibmV0LmMgYi9k cml2ZXJzL25ldC91c2IvdXNibmV0LmMKaW5kZXggNjUxMGU1Y2MxODE3Li40MmJhYWQxMjVhN2Qg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi91c2JuZXQuYworKysgYi9kcml2ZXJzL25ldC91 c2IvdXNibmV0LmMKQEAgLTQ4NCw3ICs0ODQsMTAgQEAgc3RhdGljIGludCByeF9zdWJtaXQgKHN0 cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVyYiAqdXJiLCBnZnBfdCBmbGFncykKIAkJcmV0dXJu IC1FTk9MSU5LOwogCX0KIAotCXNrYiA9IF9fbmV0ZGV2X2FsbG9jX3NrYl9pcF9hbGlnbihkZXYt Pm5ldCwgc2l6ZSwgZmxhZ3MpOworCWlmICh0ZXN0X2JpdChFVkVOVF9OT19JUF9BTElHTiwgJmRl di0+ZmxhZ3MpKQorCQlza2IgPSBfX25ldGRldl9hbGxvY19za2IoZGV2LT5uZXQsIHNpemUsIGZs YWdzKTsKKwllbHNlCisJCXNrYiA9IF9fbmV0ZGV2X2FsbG9jX3NrYl9pcF9hbGlnbihkZXYtPm5l dCwgc2l6ZSwgZmxhZ3MpOwogCWlmICghc2tiKSB7CiAJCW5ldGlmX2RiZyhkZXYsIHJ4X2Vyciwg ZGV2LT5uZXQsICJubyByeCBza2JcbiIpOwogCQl1c2JuZXRfZGVmZXJfa2V2ZW50IChkZXYsIEVW RU5UX1JYX01FTU9SWSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3VzYi91c2JuZXQuaCBi L2luY2x1ZGUvbGludXgvdXNiL3VzYm5ldC5oCmluZGV4IDk3MTE2Mzc5ZGI1Zi4uZTg3YTgwNWNi ZmVmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3VzYi91c2JuZXQuaAorKysgYi9pbmNsdWRl L2xpbnV4L3VzYi91c2JuZXQuaApAQCAtODEsNiArODEsNyBAQCBzdHJ1Y3QgdXNibmV0IHsKICMJ CWRlZmluZSBFVkVOVF9SWF9LSUxMCTEwCiAjCQlkZWZpbmUgRVZFTlRfTElOS19DSEFOR0UJMTEK ICMJCWRlZmluZSBFVkVOVF9TRVRfUlhfTU9ERQkxMgorIwkJZGVmaW5lIEVWRU5UX05PX0lQX0FM SUdOCTEzCiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB1c2JfZHJpdmVyICpkcml2ZXJfb2Yo c3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpCi0tIAoyLjE0LjMKCgpGcm9tIGM2ZmMyNzk3MDZk MWI4YTJmZjAzYzJlNWMwOTUzZWI2ZjA5MjU0NWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCA1IERlYyAy MDE3IDEyOjQ1OjU2IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxNS8zM10gbmV0OiByZW1vdmUgaGxp c3RfbnVsbHNfYWRkX3RhaWxfcmN1KCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQK ClsgVXBzdHJlYW0gY29tbWl0IGQ3ZWZjNmMxMWIyNzdkOWQ4MGI5OWIxMzM0YTc4YmZlN2Q3ZWRm MTAgXQoKQWxleGFuZGVyIFBvdGFwZW5rbyByZXBvcnRlZCB1c2Ugb2YgdW5pbml0aWFsaXplZCBt ZW1vcnkgWzFdCgpUaGlzIGhhcHBlbnMgd2hlbiBpbnNlcnRpbmcgYSByZXF1ZXN0IHNvY2tldCBp bnRvIFRDUCBlaGFzaCwKaW4gX19za19udWxsc19hZGRfbm9kZV9yY3UoKSwgc2luY2Ugc2tfcmV1 c2Vwb3J0IGlzIG5vdCBpbml0aWFsaXplZC4KCkJ1ZyB3YXMgYWRkZWQgYnkgY29tbWl0IGQ4OTRi YTE4ZDRlNCAoInNvcmV1c2Vwb3J0OiBmaXggb3JkZXJpbmcgZm9yCm1peGVkIHY0L3Y2IHNvY2tl dHMiKQoKTm90ZSB0aGF0IGQyOTZiYTYwZDhlMiAoInNvcmV1c2Vwb3J0OiBSZXNvbHZlIG1lcmdl IGNvbmZsaWN0IGZvciB2NC92NgpvcmRlcmluZyBmaXgiKSBtaXNzZWQgdGhlIG9wcG9ydHVuaXR5 IHRvIGdldCByaWQgb2YKaGxpc3RfbnVsbHNfYWRkX3RhaWxfcmN1KCkgOgoKQm90aCBVRFAgc29j a2V0cyBhbmQgVENQL0RDQ1AgbGlzdGVuZXJzIG5vIGxvbmdlciB1c2UKX19za19udWxsc19hZGRf bm9kZV9yY3UoKSBmb3IgdGhlaXIgaGFzaCBpbnNlcnRpb24uCgpTaW5jZSBhbGwgb3RoZXIgc29j a2V0cyBoYXZlIHVuaXF1ZSA0LXR1cGxlLCB0aGUgcmV1c2Vwb3J0IHN0YXR1cwpoYXMgbm8gc3Bl Y2lhbCBtZWFuaW5nLCBzbyB3ZSBjYW4gYWx3YXlzIHVzZSBobGlzdF9udWxsc19hZGRfaGVhZF9y Y3UoKQpmb3IgdGhlbSBhbmQgc2F2ZSBmZXcgY3ljbGVzL2luc3RydWN0aW9ucy4KClsxXQoKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CkJVRzogS01TQU46IHVzZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSBpbiBpbmV0X2Vo YXNoX2luc2VydCsweGQ0MC8weDEwNTAKQ1BVOiAwIFBJRDogMCBDb21tOiBzd2FwcGVyLzAgTm90 IHRhaW50ZWQgNC4xMy4wKyAjMzI4OApIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChp NDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyBCb2NocyAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CsKg PElSUT4KwqBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzoxNgrCoGR1bXBfc3RhY2srMHgx ODUvMHgxZDAgbGliL2R1bXBfc3RhY2suYzo1MgrCoGttc2FuX3JlcG9ydCsweDEzZi8weDFjMCBt bS9rbXNhbi9rbXNhbi5jOjEwMTYKwqBfX21zYW5fd2FybmluZ18zMisweDY5LzB4YjAgbW0va21z YW4va21zYW5faW5zdHIuYzo3NjYKwqBfX3NrX251bGxzX2FkZF9ub2RlX3JjdSAuL2luY2x1ZGUv bmV0L3NvY2suaDo2ODQKwqBpbmV0X2VoYXNoX2luc2VydCsweGQ0MC8weDEwNTAgbmV0L2lwdjQv aW5ldF9oYXNodGFibGVzLmM6NDEzCsKgcmVxc2tfcXVldWVfaGFzaF9yZXEgbmV0L2lwdjQvaW5l dF9jb25uZWN0aW9uX3NvY2suYzo3NTQKwqBpbmV0X2Nza19yZXFza19xdWV1ZV9oYXNoX2FkZCsw eDFjYy8weDMwMCBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjc2NQrCoHRjcF9jb25u X3JlcXVlc3QrMHgzMWU3LzB4MzZmMCBuZXQvaXB2NC90Y3BfaW5wdXQuYzo2NDE0CsKgdGNwX3Y0 X2Nvbm5fcmVxdWVzdCsweDE2ZC8weDIyMCBuZXQvaXB2NC90Y3BfaXB2NC5jOjEzMTQKwqB0Y3Bf cmN2X3N0YXRlX3Byb2Nlc3MrMHg0MmEvMHg3MjEwIG5ldC9pcHY0L3RjcF9pbnB1dC5jOjU5MTcK wqB0Y3BfdjRfZG9fcmN2KzB4YTZhLzB4Y2QwIG5ldC9pcHY0L3RjcF9pcHY0LmM6MTQ4MwrCoHRj cF92NF9yY3YrMHgzZGUwLzB4NGFiMCBuZXQvaXB2NC90Y3BfaXB2NC5jOjE3NjMKwqBpcF9sb2Nh bF9kZWxpdmVyX2ZpbmlzaCsweDZiYi8weGNiMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjIxNgrCoE5G X0hPT0sgLi9pbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI0OArCoGlwX2xvY2FsX2RlbGl2ZXIr MHgzZmEvMHg0ODAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyNTcKwqBkc3RfaW5wdXQgLi9pbmNsdWRl L25ldC9kc3QuaDo0NzcKwqBpcF9yY3ZfZmluaXNoKzB4NmZiLzB4MTU0MCBuZXQvaXB2NC9pcF9p bnB1dC5jOjM5NwrCoE5GX0hPT0sgLi9pbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI0OArCoGlw X3JjdisweDEwZjYvMHgxNWMwIG5ldC9pcHY0L2lwX2lucHV0LmM6NDg4CsKgX19uZXRpZl9yZWNl aXZlX3NrYl9jb3JlKzB4MzZmNi8weDNmNjAgbmV0L2NvcmUvZGV2LmM6NDI5OArCoF9fbmV0aWZf cmVjZWl2ZV9za2IgbmV0L2NvcmUvZGV2LmM6NDMzNgrCoG5ldGlmX3JlY2VpdmVfc2tiX2ludGVy bmFsKzB4NjNjLzB4MTljMCBuZXQvY29yZS9kZXYuYzo0NDk3CsKgbmFwaV9za2JfZmluaXNoIG5l dC9jb3JlL2Rldi5jOjQ4NTgKwqBuYXBpX2dyb19yZWNlaXZlKzB4NjI5LzB4YTUwIG5ldC9jb3Jl L2Rldi5jOjQ4ODkKwqBlMTAwMF9yZWNlaXZlX3NrYiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRl bC9lMTAwMC9lMTAwMF9tYWluLmM6NDAxOArCoGUxMDAwX2NsZWFuX3J4X2lycSsweDE0OTIvMHgx ZDMwCmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2UxMDAwL2UxMDAwX21haW4uYzo0NDc0CsKg ZTEwMDBfY2xlYW4rMHg0M2FhLzB4NTk3MCBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9lMTAw MC9lMTAwMF9tYWluLmM6MzgxOQrCoG5hcGlfcG9sbCBuZXQvY29yZS9kZXYuYzo1NTAwCsKgbmV0 X3J4X2FjdGlvbisweDczYy8weDE4MjAgbmV0L2NvcmUvZGV2LmM6NTU2NgrCoF9fZG9fc29mdGly cSsweDRiNC8weDhkZCBrZXJuZWwvc29mdGlycS5jOjI4NArCoGludm9rZV9zb2Z0aXJxIGtlcm5l bC9zb2Z0aXJxLmM6MzY0CsKgaXJxX2V4aXQrMHgyMDMvMHgyNDAga2VybmVsL3NvZnRpcnEuYzo0 MDUKwqBleGl0aW5nX2lycSsweGUvMHgxMCAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMuaDo2 MzgKwqBkb19JUlErMHgxNWUvMHgxYTAgYXJjaC94ODYva2VybmVsL2lycS5jOjI2MwrCoGNvbW1v bl9pbnRlcnJ1cHQrMHg4Ni8weDg2CgpGaXhlczogZDg5NGJhMThkNGU0ICgic29yZXVzZXBvcnQ6 IGZpeCBvcmRlcmluZyBmb3IgbWl4ZWQgdjQvdjYgc29ja2V0cyIpCkZpeGVzOiBkMjk2YmE2MGQ4 ZTIgKCJzb3JldXNlcG9ydDogUmVzb2x2ZSBtZXJnZSBjb25mbGljdCBmb3IgdjQvdjYgb3JkZXJp bmcgZml4IikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpSZXBvcnRlZC1ieTogQWxleGFuZGVyIFBvdGFwZW5rbyA8Z2xpZGVyQGdvb2dsZS5jb20+CkFj a2VkLWJ5OiBDcmFpZyBHYWxsZWsgPGtyYWlnQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3Jj dWxpc3RfbnVsbHMuaCB8IDM4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiBpbmNsdWRlL25ldC9zb2NrLmggICAgICAgICAgICB8ICA2ICstLS0tLQogMiBmaWxlcyBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgNDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9yY3VsaXN0X251bGxzLmggYi9pbmNsdWRlL2xpbnV4L3JjdWxpc3RfbnVsbHMuaApp bmRleCBhMzI4ZTgxODFlNDkuLmU0YjI1N2ZmODgxYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51 eC9yY3VsaXN0X251bGxzLmgKKysrIGIvaW5jbHVkZS9saW51eC9yY3VsaXN0X251bGxzLmgKQEAg LTEwMCw0NCArMTAwLDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGhsaXN0X251bGxzX2FkZF9oZWFk X3JjdShzdHJ1Y3QgaGxpc3RfbnVsbHNfbm9kZSAqbiwKIAkJZmlyc3QtPnBwcmV2ID0gJm4tPm5l eHQ7CiB9CiAKLS8qKgotICogaGxpc3RfbnVsbHNfYWRkX3RhaWxfcmN1Ci0gKiBAbjogdGhlIGVs ZW1lbnQgdG8gYWRkIHRvIHRoZSBoYXNoIGxpc3QuCi0gKiBAaDogdGhlIGxpc3QgdG8gYWRkIHRv LgotICoKLSAqIERlc2NyaXB0aW9uOgotICogQWRkcyB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgdG8g dGhlIGVuZCBvZiB0aGUgc3BlY2lmaWVkIGhsaXN0X251bGxzLAotICogd2hpbGUgcGVybWl0dGlu ZyByYWNpbmcgdHJhdmVyc2Fscy4gIE5PVEU6IHRhaWwgaW5zZXJ0aW9uIHJlcXVpcmVzCi0gKiBs aXN0IHRyYXZlcnNhbC4KLSAqCi0gKiBUaGUgY2FsbGVyIG11c3QgdGFrZSB3aGF0ZXZlciBwcmVj YXV0aW9ucyBhcmUgbmVjZXNzYXJ5Ci0gKiAoc3VjaCBhcyBob2xkaW5nIGFwcHJvcHJpYXRlIGxv Y2tzKSB0byBhdm9pZCByYWNpbmcKLSAqIHdpdGggYW5vdGhlciBsaXN0LW11dGF0aW9uIHByaW1p dGl2ZSwgc3VjaCBhcyBobGlzdF9udWxsc19hZGRfaGVhZF9yY3UoKQotICogb3IgaGxpc3RfbnVs bHNfZGVsX3JjdSgpLCBydW5uaW5nIG9uIHRoaXMgc2FtZSBsaXN0LgotICogSG93ZXZlciwgaXQg aXMgcGVyZmVjdGx5IGxlZ2FsIHRvIHJ1biBjb25jdXJyZW50bHkgd2l0aAotICogdGhlIF9yY3Ug bGlzdC10cmF2ZXJzYWwgcHJpbWl0aXZlcywgc3VjaCBhcwotICogaGxpc3RfbnVsbHNfZm9yX2Vh Y2hfZW50cnlfcmN1KCksIHVzZWQgdG8gcHJldmVudCBtZW1vcnktY29uc2lzdGVuY3kKLSAqIHBy b2JsZW1zIG9uIEFscGhhIENQVXMuICBSZWdhcmRsZXNzIG9mIHRoZSB0eXBlIG9mIENQVSwgdGhl Ci0gKiBsaXN0LXRyYXZlcnNhbCBwcmltaXRpdmUgbXVzdCBiZSBndWFyZGVkIGJ5IHJjdV9yZWFk X2xvY2soKS4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkIGhsaXN0X251bGxzX2FkZF90YWlsX3Jj dShzdHJ1Y3QgaGxpc3RfbnVsbHNfbm9kZSAqbiwKLQkJCQkJc3RydWN0IGhsaXN0X251bGxzX2hl YWQgKmgpCi17Ci0Jc3RydWN0IGhsaXN0X251bGxzX25vZGUgKmksICpsYXN0ID0gTlVMTDsKLQot CWZvciAoaSA9IGhsaXN0X251bGxzX2ZpcnN0X3JjdShoKTsgIWlzX2FfbnVsbHMoaSk7Ci0JICAg ICBpID0gaGxpc3RfbnVsbHNfbmV4dF9yY3UoaSkpCi0JCWxhc3QgPSBpOwotCi0JaWYgKGxhc3Qp IHsKLQkJbi0+bmV4dCA9IGxhc3QtPm5leHQ7Ci0JCW4tPnBwcmV2ID0gJmxhc3QtPm5leHQ7Ci0J CXJjdV9hc3NpZ25fcG9pbnRlcihobGlzdF9udWxsc19uZXh0X3JjdShsYXN0KSwgbik7Ci0JfSBl bHNlIHsKLQkJaGxpc3RfbnVsbHNfYWRkX2hlYWRfcmN1KG4sIGgpOwotCX0KLX0KLQogLyoqCiAg KiBobGlzdF9udWxsc19mb3JfZWFjaF9lbnRyeV9yY3UgLSBpdGVyYXRlIG92ZXIgcmN1IGxpc3Qg b2YgZ2l2ZW4gdHlwZQogICogQHRwb3M6CXRoZSB0eXBlICogdG8gdXNlIGFzIGEgbG9vcCBjdXJz b3IuCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zb2NrLmggYi9pbmNsdWRlL25ldC9zb2NrLmgK aW5kZXggYTZiOWE4ZDFhNmRmLi4wMDY1ODAxNTVhODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0 L3NvY2suaAorKysgYi9pbmNsdWRlL25ldC9zb2NrLmgKQEAgLTY4MywxMSArNjgzLDcgQEAgc3Rh dGljIGlubGluZSB2b2lkIHNrX2FkZF9ub2RlX3JjdShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBo bGlzdF9oZWFkICpsaXN0KQogCiBzdGF0aWMgaW5saW5lIHZvaWQgX19za19udWxsc19hZGRfbm9k ZV9yY3Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaGxpc3RfbnVsbHNfaGVhZCAqbGlzdCkKIHsK LQlpZiAoSVNfRU5BQkxFRChDT05GSUdfSVBWNikgJiYgc2stPnNrX3JldXNlcG9ydCAmJgotCSAg ICBzay0+c2tfZmFtaWx5ID09IEFGX0lORVQ2KQotCQlobGlzdF9udWxsc19hZGRfdGFpbF9yY3Uo JnNrLT5za19udWxsc19ub2RlLCBsaXN0KTsKLQllbHNlCi0JCWhsaXN0X251bGxzX2FkZF9oZWFk X3JjdSgmc2stPnNrX251bGxzX25vZGUsIGxpc3QpOworCWhsaXN0X251bGxzX2FkZF9oZWFkX3Jj dSgmc2stPnNrX251bGxzX25vZGUsIGxpc3QpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2tf bnVsbHNfYWRkX25vZGVfcmN1KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGhsaXN0X251bGxzX2hl YWQgKmxpc3QpCi0tIAoyLjE0LjMKCgpGcm9tIGM4ODk4NTZhNjE1MTMxODI1Zjg4NDY3ZTkxZDgw ODk1OTBjZDAxMjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExhcnMgUGVyc3NvbiA8 bGFycy5wZXJzc29uQGF4aXMuY29tPgpEYXRlOiBGcmksIDEgRGVjIDIwMTcgMTE6MTI6NDQgKzAx MDAKU3ViamVjdDogW1BBVENIIDE2LzMzXSBzdG1tYWM6IHJlc2V0IGxhc3QgVFNPIHNlZ21lbnQg c2l6ZSBhZnRlciBkZXZpY2Ugb3BlbgoKWyBVcHN0cmVhbSBjb21taXQgNDVhYjRiMTNlNDYzMjVk MDBmNGFjZGIzNjVkNDA2ZTk0MWExNWY4MSBdCgpUaGUgbXNzIHZhcmlhYmxlIHRyYWNrcyB0aGUg bGFzdCBtYXggc2VnbWVudCBzaXplIHNlbnQgdG8gdGhlIFRTTwplbmdpbmUuIFdlIGRvIG5vdCB1 cGRhdGUgdGhlIGhhcmR3YXJlIGFzIGxvbmcgYXMgd2UgcmVjZWl2ZSBza2I6cyB3aXRoCnRoZSBz YW1lIHZhbHVlIGluIGdzb19zaXplLgoKRHVyaW5nIGEgbmV0d29yayBkZXZpY2UgZG93bi91cCBj eWNsZSAobWFwcGVkIHRvIHN0bW1hY19yZWxlYXNlKCkgYW5kCnN0bW1hY19vcGVuKCkgY2FsbGJh Y2tzKSB3ZSBpc3N1ZSBhIHJlc2V0IHRvIHRoZSBoYXJkd2FyZSBhbmQgaXQKZm9yZ2V0cyB0aGUg c2V0dGluZyBmb3IgbXNzLiBIb3dldmVyIHdlIGRpZCBub3QgemVybyBvdXQgb3VyIG1zcwp2YXJp YWJsZSBzbyB0aGUgbmV4dCB0cmFuc21pc3Npb24gb2YgYSBnc28gcGFja2V0IGhhcHBlbnMgd2l0 aCBhbgp1bmRlZmluZWQgaGFyZHdhcmUgc2V0dGluZy4KClRoaXMgdHJpZ2dlcnMgYSBoYW5nIGlu IHRoZSBUU08gZW5naW5lIGFuZCBldmVudHVlbGx5IHRoZSBuZXRkZXYKd2F0Y2hkb2cgd2lsbCBi YXJrLgoKRml4ZXM6IGY3NDhiZTUzMWQ3MCAoInN0bW1hYzogc3VwcG9ydCBuZXcgR01BQzQiKQpT aWduZWQtb2ZmLWJ5OiBMYXJzIFBlcnNzb24gPGxhcnBlckBheGlzLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgfCAxICsKIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0 bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3Jv L3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IDE2YmQ1MDkyOTA4NC4uMjhjNGQ2ZmEwOTZjIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFp bi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWlu LmMKQEAgLTI1NjQsNiArMjU2NCw3IEBAIHN0YXRpYyBpbnQgc3RtbWFjX29wZW4oc3RydWN0IG5l dF9kZXZpY2UgKmRldikKIAogCXByaXYtPmRtYV9idWZfc3ogPSBTVE1NQUNfQUxJR04oYnVmX3N6 KTsKIAlwcml2LT5yeF9jb3B5YnJlYWsgPSBTVE1NQUNfUlhfQ09QWUJSRUFLOworCXByaXYtPm1z cyA9IDA7CiAKIAlyZXQgPSBhbGxvY19kbWFfZGVzY19yZXNvdXJjZXMocHJpdik7CiAJaWYgKHJl dCA8IDApIHsKLS0gCjIuMTQuMwoKCkZyb20gYTY1OGY2OWViOTM3NDJlM2Y1ZTAxMDlkNWYyMTJl YjNiYzNlMTU4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBGcmksIDEgRGVjIDIwMTcgMTA6MDY6NTYgLTA4MDAK U3ViamVjdDogW1BBVENIIDE3LzMzXSB0Y3AvZGNjcDogYmxvY2sgYmggYmVmb3JlIGFybWluZyB0 aW1lX3dhaXQgdGltZXIKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJl YW0gY29tbWl0IGNmYWM3ZjgzNmE3MTViOTFmMDhjODUxZGY5MTVkNDAxYTRkNTI3ODMgXQoKTWFj aWVqIMW7ZW5jenlrb3dza2kgcmVwb3J0ZWQgc29tZSBwYW5pY3MgaW4gdGNwX3R3c2tfZGVzdHJ1 Y3RvcigpCnRoYXQgbWlnaHQgYmUgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgYnVnLgoKdGltZXdh aXQgdGltZXIgaXMgcGlubmVkIHRvIHRoZSBjcHUsIGJlY2F1c2Ugd2Ugd2FudCB0byB0cmFuc2l0 aW9uCnRpbXdld2FpdCByZWZjb3VudCBmcm9tIDAgdG8gNCBpbiBvbmUgZ28sIG9uY2UgZXZlcnl0 aGluZyBoYXMgYmVlbgppbml0aWFsaXplZC4KCkF0IHRoZSB0aW1lIGNvbW1pdCBlZDJlOTIzOTQ1 ODkgKCJ0Y3AvZGNjcDogZml4IHRpbWV3YWl0IHJhY2VzIGluIHRpbWVyCmhhbmRsaW5nIikgd2Fz IG1lcmdlZCwgVENQIHdhcyBhbHdheXMgcnVubmluZyBmcm9tIEJIIGhhYmRsZXIuCgpBZnRlciBj b21taXQgNTQxM2QxYmFiZThmICgibmV0OiBkbyBub3QgYmxvY2sgQkggd2hpbGUgcHJvY2Vzc2lu Zwpzb2NrZXQgYmFja2xvZyIpIHdlIGRlZmluaXRlbHkgY2FuIHJ1biB0Y3BfdGltZV93YWl0KCkg ZnJvbSBwcm9jZXNzCmNvbnRleHQuCgpXZSBuZWVkIHRvIGJsb2NrIEJIIGluIHRoZSBjcml0aWNh bCBzZWN0aW9uIHNvIHRoYXQgdGhlIHBpbm5lZCB0aW1lcgpoYXMgc3RpbGwgaXRzIHB1cnBvc2Uu CgpUaGlzIGJ1ZyBpcyBtb3JlIGxpa2VseSB0byBoYXBwZW4gdW5kZXIgc3RyZXNzIGFuZCB3aGVu IHZlcnkgc21hbGwgUlRPCmFyZSB1c2VkIGluIGRhdGFjZW50ZXIgZmxvd3MuCgpGaXhlczogNTQx M2QxYmFiZThmICgibmV0OiBkbyBub3QgYmxvY2sgQkggd2hpbGUgcHJvY2Vzc2luZyBzb2NrZXQg YmFja2xvZyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KUmVwb3J0ZWQtYnk6IE1hY2llaiDFu2VuY3p5a293c2tpIDxtYXplQGdvb2dsZS5jb20+CkFj a2VkLWJ5OiBNYWNpZWogxbtlbmN6eWtvd3NraSA8bWF6ZUBnb29nbGUuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RjY3Av bWluaXNvY2tzLmMgICAgIHwgNiArKysrKysKIG5ldC9pcHY0L3RjcF9taW5pc29ja3MuYyB8IDYg KysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9u ZXQvZGNjcC9taW5pc29ja3MuYyBiL25ldC9kY2NwL21pbmlzb2Nrcy5jCmluZGV4IGFiZDA3YTQ0 MzIxOS4uMTc4YmI5ODMzMzExIDEwMDY0NAotLS0gYS9uZXQvZGNjcC9taW5pc29ja3MuYworKysg Yi9uZXQvZGNjcC9taW5pc29ja3MuYwpAQCAtNTcsMTAgKzU3LDE2IEBAIHZvaWQgZGNjcF90aW1l X3dhaXQoc3RydWN0IHNvY2sgKnNrLCBpbnQgc3RhdGUsIGludCB0aW1lbykKIAkJaWYgKHN0YXRl ID09IERDQ1BfVElNRV9XQUlUKQogCQkJdGltZW8gPSBEQ0NQX1RJTUVXQUlUX0xFTjsKIAorCQkv KiB0d190aW1lciBpcyBwaW5uZWQsIHNvIHdlIG5lZWQgdG8gbWFrZSBzdXJlIEJIIGFyZSBkaXNh YmxlZAorCQkgKiBpbiBmb2xsb3dpbmcgc2VjdGlvbiwgb3RoZXJ3aXNlIHRpbWVyIGhhbmRsZXIg Y291bGQgcnVuIGJlZm9yZQorCQkgKiB3ZSBjb21wbGV0ZSB0aGUgaW5pdGlhbGl6YXRpb24uCisJ CSAqLworCQlsb2NhbF9iaF9kaXNhYmxlKCk7CiAJCWluZXRfdHdza19zY2hlZHVsZSh0dywgdGlt ZW8pOwogCQkvKiBMaW5rYWdlIHVwZGF0ZXMuICovCiAJCV9faW5ldF90d3NrX2hhc2hkYW5jZSh0 dywgc2ssICZkY2NwX2hhc2hpbmZvKTsKIAkJaW5ldF90d3NrX3B1dCh0dyk7CisJCWxvY2FsX2Jo X2VuYWJsZSgpOwogCX0gZWxzZSB7CiAJCS8qIFNvcnJ5LCBpZiB3ZSdyZSBvdXQgb2YgbWVtb3J5 LCBqdXN0IENMT1NFIHRoaXMKIAkJICogc29ja2V0IHVwLiAgV2UndmUgZ290IGJpZ2dlciBwcm9i bGVtcyB0aGFuCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfbWluaXNvY2tzLmMgYi9uZXQvaXB2 NC90Y3BfbWluaXNvY2tzLmMKaW5kZXggMTg4YTZmMzEzNTZkLi40MjBmZWNiYjk4ZmUgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYworKysgYi9uZXQvaXB2NC90Y3BfbWluaXNv Y2tzLmMKQEAgLTMxMiwxMCArMzEyLDE2IEBAIHZvaWQgdGNwX3RpbWVfd2FpdChzdHJ1Y3Qgc29j ayAqc2ssIGludCBzdGF0ZSwgaW50IHRpbWVvKQogCQlpZiAoc3RhdGUgPT0gVENQX1RJTUVfV0FJ VCkKIAkJCXRpbWVvID0gVENQX1RJTUVXQUlUX0xFTjsKIAorCQkvKiB0d190aW1lciBpcyBwaW5u ZWQsIHNvIHdlIG5lZWQgdG8gbWFrZSBzdXJlIEJIIGFyZSBkaXNhYmxlZAorCQkgKiBpbiBmb2xs b3dpbmcgc2VjdGlvbiwgb3RoZXJ3aXNlIHRpbWVyIGhhbmRsZXIgY291bGQgcnVuIGJlZm9yZQor CQkgKiB3ZSBjb21wbGV0ZSB0aGUgaW5pdGlhbGl6YXRpb24uCisJCSAqLworCQlsb2NhbF9iaF9k aXNhYmxlKCk7CiAJCWluZXRfdHdza19zY2hlZHVsZSh0dywgdGltZW8pOwogCQkvKiBMaW5rYWdl IHVwZGF0ZXMuICovCiAJCV9faW5ldF90d3NrX2hhc2hkYW5jZSh0dywgc2ssICZ0Y3BfaGFzaGlu Zm8pOwogCQlpbmV0X3R3c2tfcHV0KHR3KTsKKwkJbG9jYWxfYmhfZW5hYmxlKCk7CiAJfSBlbHNl IHsKIAkJLyogU29ycnksIGlmIHdlJ3JlIG91dCBvZiBtZW1vcnksIGp1c3QgQ0xPU0UgdGhpcwog CQkgKiBzb2NrZXQgdXAuICBXZSd2ZSBnb3QgYmlnZ2VyIHByb2JsZW1zIHRoYW4KLS0gCjIuMTQu MwoKCkZyb20gOWJkMjNkMzg2YjE2ZGYwNDhiOTI4YTVjOTdlYWUzYTQ0NDRjM2FjNCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXgudm5ldC5p Ym0uY29tPgpEYXRlOiBGcmksIDEgRGVjIDIwMTcgMTA6MTQ6NTEgKzAxMDAKU3ViamVjdDogW1BB VENIIDE4LzMzXSBzMzkwL3FldGg6IGJ1aWxkIG1heCBzaXplIEdTTyBza2JzIG9uIEwyIGRldmlj ZXMKClsgVXBzdHJlYW0gY29tbWl0IDBjYmZmNmQ0NTQ2NjEzMzMwYTFjNWYxMzlmNWMzNjhlNGNl MzNjYTEgXQoKVGhlIGN1cnJlbnQgR1NPIHNrYiBzaXplIGxpbWl0IHdhcyBjb3B5JnBhc3RlZCBv dmVyIGZyb20gdGhlIEwzIHBhdGgsCndoZXJlIGl0IGlzIG5lZWRlZCBkdWUgdG8gYSBUU08gbGlt aXRhdGlvbi4KQXMgTDIgZGV2aWNlcyBkb24ndCBvZmZlciBUU08gc3VwcG9ydCAoYW5kIHRodXMg YWxsIEdTTyBza2JzIGFyZQpzZWdtZW50ZWQgYmVmb3JlIHRoZXkgcmVhY2ggdGhlIGRyaXZlciks IHRoZXJlJ3Mgbm8gcmVhc29uIHRvIHJlc3RyaWN0CnRoZSBzdGFjayBpbiBob3cgbGFyZ2UgaXQg bWF5IGJ1aWxkIHRoZSBHU08gc2ticy4KCkZpeGVzOiBkNTJhZWM5N2U1YmMgKCJxZXRoOiBlbmFi bGUgc2NhdHRlci9nYXRoZXIgaW4gbGF5ZXIgMiBtb2RlIikKU2lnbmVkLW9mZi1ieTogSnVsaWFu IFdpZWRtYW5uIDxqd2lAbGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9zMzkwL25ldC9xZXRo X2wyX21haW4uYyB8IDIgLS0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMgfCA0ICsr LS0KIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMgYi9kcml2ZXJzL3MzOTAv bmV0L3FldGhfbDJfbWFpbi5jCmluZGV4IDc2MGIwMjNlYWU5NS4uMWM5NzdhYjEwYWE3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5 MC9uZXQvcWV0aF9sMl9tYWluLmMKQEAgLTEwMjcsOCArMTAyNyw2IEBAIHN0YXRpYyBpbnQgcWV0 aF9sMl9zZXR1cF9uZXRkZXYoc3RydWN0IHFldGhfY2FyZCAqY2FyZCkKIAogCWNhcmQtPmluZm8u YnJvYWRjYXN0X2NhcGFibGUgPSAxOwogCXFldGhfbDJfcmVxdWVzdF9pbml0aWFsX21hYyhjYXJk KTsKLQljYXJkLT5kZXYtPmdzb19tYXhfc2l6ZSA9IChRRVRIX01BWF9CVUZGRVJfRUxFTUVOVFMo Y2FyZCkgLSAxKSAqCi0JCQkJICBQQUdFX1NJWkU7CiAJU0VUX05FVERFVl9ERVYoY2FyZC0+ZGV2 LCAmY2FyZC0+Z2Rldi0+ZGV2KTsKIAluZXRpZl9uYXBpX2FkZChjYXJkLT5kZXYsICZjYXJkLT5u YXBpLCBxZXRoX3BvbGwsIFFFVEhfTkFQSV9XRUlHSFQpOwogCW5ldGlmX2NhcnJpZXJfb2ZmKGNh cmQtPmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jIGIv ZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwppbmRleCAxZDhjMzE3NTUzYmEuLjc1MDA1 YmJkODBiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYworKysg Yi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCkBAIC0yOTg5LDggKzI5ODksOCBAQCBz dGF0aWMgaW50IHFldGhfbDNfc2V0dXBfbmV0ZGV2KHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQpCiAJ CQkJTkVUSUZfRl9IV19WTEFOX0NUQUdfUlggfAogCQkJCU5FVElGX0ZfSFdfVkxBTl9DVEFHX0ZJ TFRFUjsKIAluZXRpZl9rZWVwX2RzdChjYXJkLT5kZXYpOwotCWNhcmQtPmRldi0+Z3NvX21heF9z aXplID0gKFFFVEhfTUFYX0JVRkZFUl9FTEVNRU5UUyhjYXJkKSAtIDEpICoKLQkJCQkgIFBBR0Vf U0laRTsKKwluZXRpZl9zZXRfZ3NvX21heF9zaXplKGNhcmQtPmRldiwgKFFFVEhfTUFYX0JVRkZF Ul9FTEVNRU5UUyhjYXJkKSAtIDEpICoKKwkJCQkJICBQQUdFX1NJWkUpOwogCiAJU0VUX05FVERF Vl9ERVYoY2FyZC0+ZGV2LCAmY2FyZC0+Z2Rldi0+ZGV2KTsKIAluZXRpZl9uYXBpX2FkZChjYXJk LT5kZXYsICZjYXJkLT5uYXBpLCBxZXRoX3BvbGwsIFFFVEhfTkFQSV9XRUlHSFQpOwotLSAKMi4x NC4zCgoKRnJvbSBkNWEzOTBjYTg5OTQ0N2JmZjYzYmI1MTBjNDdiYWUxOTRkYmIxOTI1IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0 LmlibS5jb20+CkRhdGU6IEZyaSwgMSBEZWMgMjAxNyAxMDoxNDo0OSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMTkvMzNdIHMzOTAvcWV0aDogZml4IHRoaW5rbyBpbiBJUHY0IG11bHRpY2FzdCBhZGRy ZXNzCiB0cmFja2luZwoKWyBVcHN0ZWFtIGNvbW1pdCBiYzNhYjcwNTg0Njk2Y2I3OThiOWUxZTBh YzhlNmNlZDVmZDRjM2I4IF0KCkNvbW1pdCA1Zjc4ZTI5Y2VlYmYgKCJxZXRoOiBvcHRpbWl6ZSBJ UCBoYW5kbGluZyBpbiByeF9tb2RlIGNhbGxiYWNrIikKcmV3b3JrZWQgaG93IHNlY29uZGFyeSBh ZGRyZXNzZXMgYXJlIG1hbmFnZWQgZm9yIHFldGggZGV2aWNlcy4KSW5zdGVhZCBvZiBkcm9wcGlu ZyAmIHN1YnNlcXVlbnRseSByZS1hZGRpbmcgYWxsIGFkZHJlc3NlcyBvbiBldmVyeQpuZG9fc2V0 X3J4X21vZGUoKSBjYWxsLCBxZXRoIG5vdyBrZWVwcyB0cmFjayBvZiB0aGUgYWRkcmVzc2VzIHRo YXQgYXJlCmN1cnJlbnRseSByZWdpc3RlcmVkIHdpdGggdGhlIEhXLgpPbiBhIG5kb19zZXRfcnhf bW9kZSgpLCB3ZSB0aHVzIG9ubHkgbmVlZCB0byBkbyAoZGUtKXJlZ2lzdHJhdGlvbgpyZXF1ZXN0 cyBmb3IgdGhlIGFkZHJlc3NlcyB0aGF0IGhhdmUgYWN0dWFsbHkgY2hhbmdlZC4KCk9uIEwzIGRl dmljZXMsIHRoZSBsb29rdXAgZm9yIElQdjQgTXVsdGljYXN0IGFkZHJlc3NlcyBjaGVja3MgdGhl IHdyb25nCmhhc2h0YWJsZSAtIGFuZCB0aHVzIG5ldmVyIGZpbmRzIGEgbWF0Y2guIEFzIGEgcmVz dWx0LCB3ZSBmaXJzdCBkZWxldGUKKmFsbCogc3VjaCBhZGRyZXNzZXMsIGFuZCB0aGVuIHJlLWFk ZCB0aGVtIGFnYWluLiBTbyBlYWNoIHNldF9yeF9tb2RlKCkKY2F1c2VzIGEgc2hvcnQgcGVyaW9k IHdoZXJlIHRoZSBJUHY0IE11bHRpY2FzdCBhZGRyZXNzZXMgYXJlIG5vdApyZWdpc3RlcmVkLCBh bmQgdGhlIGNhcmQgc3RvcHMgZm9yd2FyZGluZyBpbmJvdW5kIHRyYWZmaWMgZm9yIHRoZW0uCgpG aXggdGhpcyBieSBzZXR0aW5nIHRoZSAtPmlzX211bHRpY2FzdCBmbGFnIG9uIHRoZSBsb29rdXAg b2JqZWN0LCB0aHVzCmVuYWJsaW5nIHFldGhfbDNfaXBfZnJvbV9oYXNoKCkgdG8gc2VhcmNoIHRo ZSBjb3JyZWN0IGhhc2h0YWJsZSBhbmQKZmluZCBhIG1hdGNoIHRoZXJlLgoKRml4ZXM6IDVmNzhl MjljZWViZiAoInFldGg6IG9wdGltaXplIElQIGhhbmRsaW5nIGluIHJ4X21vZGUgY2FsbGJhY2si KQpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFp bi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwppbmRleCA3NTAwNWJiZDgwYjku LjExZjY1Yjg3OTMyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4u YworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCkBAIC0xMzc2LDYgKzEzNzYs NyBAQCBxZXRoX2wzX2FkZF9tY190b19oYXNoKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsIHN0cnVj dCBpbl9kZXZpY2UgKmluNF9kZXYpCiAKIAkJdG1wLT51LmE0LmFkZHIgPSBiZTMyX3RvX2NwdShp bTQtPm11bHRpYWRkcik7CiAJCW1lbWNweSh0bXAtPm1hYywgYnVmLCBzaXplb2YodG1wLT5tYWMp KTsKKwkJdG1wLT5pc19tdWx0aWNhc3QgPSAxOwogCiAJCWlwbSA9IHFldGhfbDNfaXBfZnJvbV9o YXNoKGNhcmQsIHRtcCk7CiAJCWlmIChpcG0pIHsKLS0gCjIuMTQuMwoKCkZyb20gNzI4YjllM2U2 MzRiNjYzNzRhZTNiZWVkYWExM2Y4YTA1Y2NiYzUzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBGcmks IDEgRGVjIDIwMTcgMTA6MTQ6NTAgKzAxMDAKU3ViamVjdDogW1BBVENIIDIwLzMzXSBzMzkwL3Fl dGg6IGZpeCBHU08gdGhyb3VnaHB1dCByZWdyZXNzaW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA2ZDY5 YjFmMWViN2EyZWRmOGEzNTQ3ZjM2MWM2MWYyNTM4ZTA1NGJiIF0KClVzaW5nIEdTTyB3aXRoIHNt YWxsIE1UVXMgY3VycmVudGx5IHJlc3VsdHMgaW4gYSBzdWJzdGFudGlhbCB0aHJvdWdocHV0CnJl Z3Jlc3Npb24gLSB3aGljaCBpcyBjYXVzZWQgYnkgaG93IHFldGggbmVlZHMgdG8gbWFwIG5vbi1s aW5lYXIgc2ticwppbnRvIGl0cyBJTyBidWZmZXIgZWxlbWVudHM6CmNvbXBhcmVkIHRvIGEgbGlu ZWFyIHNrYiwgZWFjaCBHU08tc2VnbWVudGVkIHNrYiBlZmZlY3RpdmVseSBjb25zdW1lcwp0d2lj ZSBhcyBtYW55IGJ1ZmZlciBlbGVtZW50cyAoaWUgdHdvIGluc3RlYWQgb2Ygb25lKSBkdWUgdG8g dGhlCmFkZGl0aW9uYWwgaGVhZGVyLW9ubHkgcGFydC4gVGhpcyBjYXVzZXMgdGhlIE91dHB1dCBR dWV1ZSB0byBiZQpjb25nZXN0ZWQgd2l0aCBsb3ctdXRpbGl6ZWQgSU8gYnVmZmVycy4KCkZpeCB0 aGlzIGFzIGZvbGxvd3M6CklmIHRoZSBNU1MgaXMgbG93IGVub3VnaCBzbyB0aGF0IGEgbm9uLVNH IEdTTyBzZWdtZW50YXRpb24gcHJvZHVjZXMKb3JkZXItMCBza2JzIChjdXJyZW50bHkgfjM1MDAg Ynl0ZSksIG9wdCBvdXQgZnJvbSBORVRJRl9GX1NHLiBUaGlzIGlzCndoZXJlIHdlIGFudGljaXBh dGUgdGhlIGJpZ2dlc3Qgc2F2aW5ncywgc2luY2UgYW4gU0ctZW5hYmxlZApHU08gc2VnbWVudGF0 aW9uIHByb2R1Y2VzIHNrYnMgdGhhdCBhbHdheXMgY29uc3VtZSBhdCBsZWFzdCB0d28KYnVmZmVy IGVsZW1lbnRzLgoKTGFyZ2VyIE1TUyB2YWx1ZXMgY29udGludWUgdG8gZ2V0IGEgU0ctZW5hYmxl ZCBHU08gc2VnbWVudGF0aW9uLCBzaW5jZQoxKSB0aGUgcmVsYXRpdmUgb3ZlcmhlYWQgb2YgdGhl IGFkZGl0aW9uYWwgaGVhZGVyLW9ubHkgYnVmZmVyIGVsZW1lbnQKYmVjb21lcyBsZXNzIG5vdGlj ZWFibGUsIGFuZAoyKSB0aGUgbGluZWFyaXphdGlvbiBvdmVyaGVhZCBpbmNyZWFzZXMuCgpXaXRo IHRoZSB0aHJvdWdocHV0IHJlZ3Jlc3Npb24gZml4ZWQsIHJlLWVuYWJsZSBORVRJRl9GX1NHIGJ5 IGRlZmF1bHQgdG8KcmVhcCB0aGUgc2lnbmlmaWNhbnQgQ1BVIHNhdmluZ3Mgb2YgR1NPLgoKRml4 ZXM6IDU3MjI5NjNhOGU4MyAoInFldGg6IGRvIG5vdCB0dXJuIG9uIFNHIHBlciBkZWZhdWx0IikK UmVwb3J0ZWQtYnk6IE5pbHMgSG9wcG1hbm4gPG5paG9AZGUuaWJtLmNvbT4KU2lnbmVkLW9mZi1i eTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9zMzkw L25ldC9xZXRoX2NvcmUuaCAgICAgIHwgIDMgKysrCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfY29y ZV9tYWluLmMgfCAzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL3Mz OTAvbmV0L3FldGhfbDJfbWFpbi5jICAgfCAgMiArKwogZHJpdmVycy9zMzkwL25ldC9xZXRoX2wz X21haW4uYyAgIHwgIDIgKysKIDQgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmggYi9kcml2ZXJzL3MzOTAvbmV0 L3FldGhfY29yZS5oCmluZGV4IDQ3YTEzYzU3MjNjNi4uNTM0MGVmYzY3M2E5IDEwMDY0NAotLS0g YS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZS5oCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0 aF9jb3JlLmgKQEAgLTk4NSw2ICs5ODUsOSBAQCBzdHJ1Y3QgcWV0aF9jbWRfYnVmZmVyICpxZXRo X2dldF9zZXRhc3NwYXJtc19jbWQoc3RydWN0IHFldGhfY2FyZCAqLAogaW50IHFldGhfc2V0X2Zl YXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICosIG5ldGRldl9mZWF0dXJlc190KTsKIGludCBxZXRo X3JlY292ZXJfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKik7CiBuZXRkZXZfZmVhdHVyZXNf dCBxZXRoX2ZpeF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqLCBuZXRkZXZfZmVhdHVyZXNf dCk7CituZXRkZXZfZmVhdHVyZXNfdCBxZXRoX2ZlYXR1cmVzX2NoZWNrKHN0cnVjdCBza19idWZm ICpza2IsCisJCQkJICAgICAgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCQkgICAgICBuZXRk ZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyk7CiBpbnQgcWV0aF92bV9yZXF1ZXN0X21hYyhzdHJ1Y3Qg cWV0aF9jYXJkICpjYXJkKTsKIGludCBxZXRoX3B1c2hfaGRyKHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCBxZXRoX2hkciAqKmhkciwgdW5zaWduZWQgaW50IGxlbik7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0 aF9jb3JlX21haW4uYwppbmRleCBiYWU3NDQwYWJjMDEuLjMzMGU1ZDNkYWRmMyAxMDA2NDQKLS0t IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9u ZXQvcWV0aF9jb3JlX21haW4uYwpAQCAtMTksNiArMTksMTEgQEAKICNpbmNsdWRlIDxsaW51eC9t aWkuaD4KICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5o PgorI2luY2x1ZGUgPGxpbnV4L2lmX3ZsYW4uaD4KKyNpbmNsdWRlIDxsaW51eC9uZXRkZXZpY2Uu aD4KKyNpbmNsdWRlIDxsaW51eC9uZXRkZXZfZmVhdHVyZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9z a2J1ZmYuaD4KKwogI2luY2x1ZGUgPG5ldC9pdWN2L2FmX2l1Y3YuaD4KICNpbmNsdWRlIDxuZXQv ZHNmaWVsZC5oPgogCkBAIC02NTA1LDYgKzY1MTAsMzIgQEAgbmV0ZGV2X2ZlYXR1cmVzX3QgcWV0 aF9maXhfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIH0KIEVYUE9SVF9TWU1CT0xf R1BMKHFldGhfZml4X2ZlYXR1cmVzKTsKIAorbmV0ZGV2X2ZlYXR1cmVzX3QgcWV0aF9mZWF0dXJl c19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCSAgICAgIHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsCisJCQkJICAgICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpCit7CisJLyogR1NP IHNlZ21lbnRhdGlvbiBidWlsZHMgc2ticyB3aXRoCisJICoJYSAoc21hbGwpIGxpbmVhciBwYXJ0 IGZvciB0aGUgaGVhZGVycywgYW5kCisJICoJcGFnZSBmcmFncyBmb3IgdGhlIGRhdGEuCisJICog Q29tcGFyZWQgdG8gYSBsaW5lYXIgc2tiLCB0aGUgaGVhZGVyLW9ubHkgcGFydCBjb25zdW1lcyBh bgorCSAqIGFkZGl0aW9uYWwgYnVmZmVyIGVsZW1lbnQuIFRoaXMgcmVkdWNlcyBidWZmZXIgdXRp bGl6YXRpb24sIGFuZAorCSAqIGh1cnRzIHRocm91Z2hwdXQuIFNvIGNvbXByZXNzIHNtYWxsIHNl Z21lbnRzIGludG8gb25lIGVsZW1lbnQuCisJICovCisJaWYgKG5ldGlmX25lZWRzX2dzbyhza2Is IGZlYXR1cmVzKSkgeworCQkvKiBtYXRjaCBza2Jfc2VnbWVudCgpOiAqLworCQl1bnNpZ25lZCBp bnQgZG9mZnNldCA9IHNrYi0+ZGF0YSAtIHNrYl9tYWNfaGVhZGVyKHNrYik7CisJCXVuc2lnbmVk IGludCBoc2l6ZSA9IHNrYl9zaGluZm8oc2tiKS0+Z3NvX3NpemU7CisJCXVuc2lnbmVkIGludCBo cm9vbSA9IHNrYl9oZWFkcm9vbShza2IpOworCisJCS8qIGxpbmVhcml6ZSBvbmx5IGlmIHJlc3Vs dGluZyBza2IgYWxsb2NhdGlvbnMgYXJlIG9yZGVyLTA6ICovCisJCWlmIChTS0JfREFUQV9BTElH Tihocm9vbSArIGRvZmZzZXQgKyBoc2l6ZSkgPD0gU0tCX01BWF9IRUFEKDApKQorCQkJZmVhdHVy ZXMgJj0gfk5FVElGX0ZfU0c7CisJfQorCisJcmV0dXJuIHZsYW5fZmVhdHVyZXNfY2hlY2soc2ti LCBmZWF0dXJlcyk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChxZXRoX2ZlYXR1cmVzX2NoZWNrKTsK Kwogc3RhdGljIGludCBfX2luaXQgcWV0aF9jb3JlX2luaXQodm9pZCkKIHsKIAlpbnQgcmM7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jIGIvZHJpdmVycy9zMzkw L25ldC9xZXRoX2wyX21haW4uYwppbmRleCAxYzk3N2FiMTBhYTcuLjVhOTczZWJjYjEzYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wyX21haW4uYworKysgYi9kcml2ZXJzL3Mz OTAvbmV0L3FldGhfbDJfbWFpbi5jCkBAIC05NjMsNiArOTYzLDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBuZXRfZGV2aWNlX29wcyBxZXRoX2wyX25ldGRldl9vcHMgPSB7CiAJLm5kb19zdG9wCQk9 IHFldGhfbDJfc3RvcCwKIAkubmRvX2dldF9zdGF0cwkJPSBxZXRoX2dldF9zdGF0cywKIAkubmRv X3N0YXJ0X3htaXQJCT0gcWV0aF9sMl9oYXJkX3N0YXJ0X3htaXQsCisJLm5kb19mZWF0dXJlc19j aGVjawk9IHFldGhfZmVhdHVyZXNfY2hlY2ssCiAJLm5kb192YWxpZGF0ZV9hZGRyCT0gZXRoX3Zh bGlkYXRlX2FkZHIsCiAJLm5kb19zZXRfcnhfbW9kZQk9IHFldGhfbDJfc2V0X3J4X21vZGUsCiAJ Lm5kb19kb19pb2N0bAkJPSBxZXRoX2RvX2lvY3RsLApAQCAtMTAwOSw2ICsxMDEwLDcgQEAgc3Rh dGljIGludCBxZXRoX2wyX3NldHVwX25ldGRldihzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkKQogCWlm IChjYXJkLT5pbmZvLnR5cGUgPT0gUUVUSF9DQVJEX1RZUEVfT1NEICYmICFjYXJkLT5pbmZvLmd1 ZXN0bGFuKSB7CiAJCWNhcmQtPmRldi0+aHdfZmVhdHVyZXMgPSBORVRJRl9GX1NHOwogCQljYXJk LT5kZXYtPnZsYW5fZmVhdHVyZXMgPSBORVRJRl9GX1NHOworCQljYXJkLT5kZXYtPmZlYXR1cmVz IHw9IE5FVElGX0ZfU0c7CiAJCS8qIE9TQSAzUyBhbmQgZWFybGllciBoYXMgbm8gUlgvVFggc3Vw cG9ydCAqLwogCQlpZiAocWV0aF9pc19zdXBwb3J0ZWQoY2FyZCwgSVBBX09VVEJPVU5EX0NIRUNL U1VNKSkgewogCQkJY2FyZC0+ZGV2LT5od19mZWF0dXJlcyB8PSBORVRJRl9GX0lQX0NTVU07CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jIGIvZHJpdmVycy9zMzkw L25ldC9xZXRoX2wzX21haW4uYwppbmRleCAxMWY2NWI4NzkzMjIuLjI3MTg1YWIzODEzNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYworKysgYi9kcml2ZXJzL3Mz OTAvbmV0L3FldGhfbDNfbWFpbi5jCkBAIC0yOTIzLDYgKzI5MjMsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IG5ldF9kZXZpY2Vfb3BzIHFldGhfbDNfb3NhX25ldGRldl9vcHMgPSB7CiAJLm5kb19z dG9wCQk9IHFldGhfbDNfc3RvcCwKIAkubmRvX2dldF9zdGF0cwkJPSBxZXRoX2dldF9zdGF0cywK IAkubmRvX3N0YXJ0X3htaXQJCT0gcWV0aF9sM19oYXJkX3N0YXJ0X3htaXQsCisJLm5kb19mZWF0 dXJlc19jaGVjawk9IHFldGhfZmVhdHVyZXNfY2hlY2ssCiAJLm5kb192YWxpZGF0ZV9hZGRyCT0g ZXRoX3ZhbGlkYXRlX2FkZHIsCiAJLm5kb19zZXRfcnhfbW9kZQk9IHFldGhfbDNfc2V0X211bHRp Y2FzdF9saXN0LAogCS5uZG9fZG9faW9jdGwJCT0gcWV0aF9kb19pb2N0bCwKQEAgLTI5NjMsNiAr Mjk2NCw3IEBAIHN0YXRpYyBpbnQgcWV0aF9sM19zZXR1cF9uZXRkZXYoc3RydWN0IHFldGhfY2Fy ZCAqY2FyZCkKIAkJCQljYXJkLT5kZXYtPnZsYW5fZmVhdHVyZXMgPSBORVRJRl9GX1NHIHwKIAkJ CQkJTkVUSUZfRl9SWENTVU0gfCBORVRJRl9GX0lQX0NTVU0gfAogCQkJCQlORVRJRl9GX1RTTzsK KwkJCQljYXJkLT5kZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfU0c7CiAJCQl9CiAJCX0KIAl9IGVs c2UgaWYgKGNhcmQtPmluZm8udHlwZSA9PSBRRVRIX0NBUkRfVFlQRV9JUUQpIHsKLS0gCjIuMTQu MwoKCkZyb20gNTZlZDA3YWEyZDBkZGI5YzY3ZGM1MDVhOTdjMTdmMjFlZjE0NmRhZSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpE YXRlOiBTdW4sIDMgRGVjIDIwMTcgMDk6MzM6MDAgLTA4MDAKU3ViamVjdDogW1BBVENIIDIxLzMz XSB0Y3A6IHVzZSBJUENCIGluc3RlYWQgb2YgVENQX1NLQl9DQiBpbgogaW5ldF9leGFjdF9kaWZf bWF0Y2goKQoKWyBVc3B0cmVhbSBjb21taXQgYjRkMTYwNWE4ZWE2MDhmZDdkYzQ1YjkyNmEwNWQ3 NWQzNDBiZGU0YiBdCgpBZnRlciB0aGlzIGZpeCA6ICgidGNwOiBhZGQgdGNwX3Y0X2ZpbGxfY2Io KS90Y3BfdjRfcmVzdG9yZV9jYigpIiksCnNvY2tldCBsb29rdXBzIGhhcHBlbiB3aGlsZSBza2It PmNiW10gaGFzIG5vdCBiZWVuIG1hbmdsZWQgeWV0IGJ5IFRDUC4KCkZpeGVzOiBhMDRhNDgwZDQz OTIgKCJuZXQ6IFJlcXVpcmUgZXhhY3QgbWF0Y2ggZm9yIFRDUCBzb2NrZXQgbG9va3VwcyBpZiBk aWYgaXMgbDNtZGV2IikKU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBp bmNsdWRlL25ldC90Y3AuaCB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRl L25ldC90Y3AuaAppbmRleCBlNmQwMDAyYTFiMGIuLjVkZmM5MmZmOWZmZCAxMDA2NDQKLS0tIGEv aW5jbHVkZS9uZXQvdGNwLmgKKysrIGIvaW5jbHVkZS9uZXQvdGNwLmgKQEAgLTg3NCwxMiArODc0 LDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IHRjcF92Nl9zZGlmKGNvbnN0IHN0cnVjdCBza19idWZm ICpza2IpCiB9CiAjZW5kaWYKIAotLyogVENQX1NLQl9DQiByZWZlcmVuY2UgbWVhbnMgdGhpcyBj YW4gbm90IGJlIHVzZWQgZnJvbSBlYXJseSBkZW11eCAqLwogc3RhdGljIGlubGluZSBib29sIGlu ZXRfZXhhY3RfZGlmX21hdGNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYikK IHsKICNpZiBJU19FTkFCTEVEKENPTkZJR19ORVRfTDNfTUFTVEVSX0RFVikKIAlpZiAoIW5ldC0+ aXB2NC5zeXNjdGxfdGNwX2wzbWRldl9hY2NlcHQgJiYKLQkgICAgc2tiICYmIGlwdjRfbDNtZGV2 X3NrYihUQ1BfU0tCX0NCKHNrYiktPmhlYWRlci5oNC5mbGFncykpCisJICAgIHNrYiAmJiBpcHY0 X2wzbWRldl9za2IoSVBDQihza2IpLT5mbGFncykpCiAJCXJldHVybiB0cnVlOwogI2VuZGlmCiAJ cmV0dXJuIGZhbHNlOwotLSAKMi4xNC4zCgoKRnJvbSAxMmMzMDVjNzk2MDQ2ZDQxZGZjZjIyNDdl YzM4MGYzMmJiNWNhYzQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21taSBSYW50 YWxhIDx0b21taS50LnJhbnRhbGFAbm9raWEuY29tPgpEYXRlOiBXZWQsIDI5IE5vdiAyMDE3IDEy OjQ4OjQyICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMi8zM10gdGlwYzogY2FsbCB0aXBjX3Jjdigp IG9ubHkgaWYgYmVhcmVyIGlzIHVwIGluCiB0aXBjX3VkcF9yZWN2KCkKClsgVXBzdHJlYW0gY29t bWl0IGM3Nzk5YzA2N2MyYWUzM2UzNDg1MDhjOGFmZWMzNTRmMzI1N2ZmMjUgXQoKUmVtb3ZlIHRo ZSBzZWNvbmQgdGlwY19yY3YoKSBjYWxsIGluIHRpcGNfdWRwX3JlY3YoKS4gV2UgaGF2ZSBqdXN0 CmNoZWNrZWQgdGhhdCB0aGUgYmVhcmVyIGlzIG5vdCB1cCwgYW5kIGNhbGxpbmcgdGlwY19yY3Yo KSB3aXRoIGEgYmVhcmVyCnRoYXQgaXMgbm90IHVwIGxlYWRzIHRvIGEgVElQQyBkaXYtYnktemVy byBjcmFzaCBpbgp0aXBjX25vZGVfY2FsY3VsYXRlX3RpbWVyKCkuIFRoZSBjcmFzaCBpcyByYXJl IGluIHByYWN0aWNlLCBidXQgY2FuCmhhcHBlbiBsaWtlIHRoaXM6CgogIFdlJ3JlIGVuYWJsaW5n IGEgYmVhcmVyLCBidXQgaXQncyBub3QgeWV0IHVwIGFuZCBmdWxseSBpbml0aWFsaXplZC4KICBB dCB0aGUgc2FtZSB0aW1lIHdlIHJlY2VpdmUgYSBkaXNjb3ZlcnkgcGFja2V0LCBhbmQgaW4gdGlw Y191ZHBfcmVjdigpCiAgd2UgZW5kIHVwIGNhbGxpbmcgdGlwY19yY3YoKSB3aXRoIHRoZSBub3Qt eWV0LWluaXRpYWxpemVkIGJlYXJlciwKICBjYXVzaW5nIGxhdGVyIHRoZSBkaXYtYnktemVybyBj cmFzaCBpbiB0aXBjX25vZGVfY2FsY3VsYXRlX3RpbWVyKCkuCgpKb24gTWFsb3kgZXhwbGFpbnMg dGhlIGltcGFjdCBvZiByZW1vdmluZyB0aGUgc2Vjb25kIHRpcGNfcmN2KCkgY2FsbDoKICAibGlu ayBzZXR1cCBpbiB0aGUgd29yc3QgY2FzZSB3aWxsIGJlIGRlbGF5ZWQgdW50aWwgdGhlIG5leHQg YXJyaXZpbmcKICAgZGlzY292ZXJ5IG1lc3NhZ2VzLCAxIHNlYyBsYXRlciwgYW5kIHRoaXMgaXMg YW4gYWNjZXB0YWJsZSBkZWxheS4iCgpBcyB0aGUgdGlwY19yY3YoKSBjYWxsIGlzIHJlbW92ZWQs IGp1c3QgbGVhdmUgdGhlIGZ1bmN0aW9uIHZpYSB0aGUKcmN1X291dCBsYWJlbCwgc28gdGhhdCB3 ZSB3aWxsIGtmcmVlX3NrYigpLgoKWyAgIDEyLjU5MDQ1MF0gT3duIG5vZGUgYWRkcmVzcyA8MS4x LjE+LCBuZXR3b3JrIGlkZW50aXR5IDEKWyAgIDEyLjY2ODA4OF0gZGl2aWRlIGVycm9yOiAwMDAw IFsjMV0gU01QClsgICAxMi42NzY5NTJdIENQVTogMiBQSUQ6IDAgQ29tbTogc3dhcHBlci8yIE5v dCB0YWludGVkIDQuMTQuMi1kaXJ0eSAjMQpbICAgMTIuNjc5MjI1XSBIYXJkd2FyZSBuYW1lOiBR RU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyAxLjEwLjItMi5mYzI3 IDA0LzAxLzIwMTQKWyAgIDEyLjY4MjA5NV0gdGFzazogZmZmZjhjMmE3NjFlZGI4MCB0YXNrLnN0 YWNrOiBmZmZmYTQxY2MwY2FjMDAwClsgICAxMi42ODQwODddIFJJUDogMDAxMDp0aXBjX25vZGVf Y2FsY3VsYXRlX3RpbWVyLmlzcmEuMTIrMHg0NS8weDYwIFt0aXBjXQpbICAgMTIuNjg2NDg2XSBS U1A6IDAwMTg6ZmZmZjhjMmE3ZmM4MzhhMCBFRkxBR1M6IDAwMDEwMjQ2ClsgICAxMi42ODg0NTFd IFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY4YzJhNWIzODI2MDAgUkNYOiAwMDAwMDAw MDAwMDAwMDAwClsgICAxMi42OTExOTddIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IGZmZmY4 YzJhNWIzODI2MDAgUkRJOiBmZmZmOGMyYTViMzgyNjAwClsgICAxMi42OTM5NDVdIFJCUDogZmZm ZjhjMmE3ZmM4MzhiMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDEgUjA5OiAwMDAwMDAwMDAwMDAwMDAx ClsgICAxMi42OTY2MzJdIFIxMDogMDAwMDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAw MDAgUjEyOiBmZmZmOGMyYTVkODk0OWQ4ClsgICAxMi42OTk0OTFdIFIxMzogZmZmZmZmZmY5NWVk ZTQwMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiBmZmZmOGMyYTVkODk0ODAwClsgICAxMi43 MDIzMzhdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmOGMyYTdmYzgwMDAwKDAw MDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgIDEyLjcwNTA5OV0gQ1M6ICAwMDEwIERTOiAw MDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICAgMTIuNzA2Nzc2XSBDUjI6IDAw MDAwMDAwMDFiYjk0NDAgQ1IzOiAwMDAwMDAwMGJkMDA5MDAxIENSNDogMDAwMDAwMDAwMDM2MDZl MApbICAgMTIuNzA4ODQ3XSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAw MDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApbICAgMTIuNzExMDE2XSBEUjM6IDAwMDAwMDAwMDAw MDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApbICAgMTIu NzEyNjI3XSBDYWxsIFRyYWNlOgpbICAgMTIuNzEzMzkwXSAgPElSUT4KWyAgIDEyLjcxNDAxMV0g IHRpcGNfbm9kZV9jaGVja19kZXN0KzB4MmU4LzB4MzUwIFt0aXBjXQpbICAgMTIuNzE1Mjg2XSAg dGlwY19kaXNjX3JjdisweDE0ZC8weDFkMCBbdGlwY10KWyAgIDEyLjcxNjM3MF0gIHRpcGNfcmN2 KzB4OGIwLzB4ZDQwIFt0aXBjXQpbICAgMTIuNzE3Mzk2XSAgPyBtaW5tYXhfcnVubmluZ19taW4r MHgyZi8weDYwClsgICAxMi43MTgyNDhdICA/IGRzdF9hbGxvYysweDRjLzB4YTAKWyAgIDEyLjcx ODk2NF0gID8gdGNwX2FjaysweGFmMS8weDEwYjAKWyAgIDEyLjcxOTY1OF0gID8gdGlwY191ZHBf aXNfa25vd25fcGVlcisweGEwLzB4YTAgW3RpcGNdClsgICAxMi43MjA2MzRdICB0aXBjX3VkcF9y ZWN2KzB4NzEvMHgxZDAgW3RpcGNdClsgICAxMi43MjE0NTldICA/IGRzdF9hbGxvYysweDRjLzB4 YTAKWyAgIDEyLjcyMjEzMF0gIHVkcF9xdWV1ZV9yY3Zfc2tiKzB4MjY0LzB4NDkwClsgICAxMi43 MjI5MjRdICBfX3VkcDRfbGliX3JjdisweDIxZS8weDk5MApbICAgMTIuNzIzNjcwXSAgPyBpcF9y b3V0ZV9pbnB1dF9yY3UrMHgyZGQvMHhiZjAKWyAgIDEyLjcyNDQ0Ml0gID8gdGNwX3Y0X3Jjdisw eDk1OC8weGE0MApbICAgMTIuNzI1MDM5XSAgdWRwX3JjdisweDFhLzB4MjAKWyAgIDEyLjcyNTU4 N10gIGlwX2xvY2FsX2RlbGl2ZXJfZmluaXNoKzB4OTcvMHgxZDAKWyAgIDEyLjcyNjMyM10gIGlw X2xvY2FsX2RlbGl2ZXIrMHhhZi8weGMwClsgICAxMi43MjY5NTldICA/IGlwX3JvdXRlX2lucHV0 X25vcmVmKzB4MTkvMHgyMApbICAgMTIuNzI3Njg5XSAgaXBfcmN2X2ZpbmlzaCsweGRkLzB4M2Iw ClsgICAxMi43MjgzMDddICBpcF9yY3YrMHgyYWMvMHgzNjAKWyAgIDEyLjcyODgzOV0gIF9fbmV0 aWZfcmVjZWl2ZV9za2JfY29yZSsweDZmYi8weGE5MApbICAgMTIuNzI5NTgwXSAgPyB1ZHA0X2dy b19yZWNlaXZlKzB4MWE3LzB4MmMwClsgICAxMi43MzAyNzRdICBfX25ldGlmX3JlY2VpdmVfc2ti KzB4MWQvMHg2MApbICAgMTIuNzMwOTUzXSAgPyBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MWQvMHg2 MApbICAgMTIuNzMxNjM3XSAgbmV0aWZfcmVjZWl2ZV9za2JfaW50ZXJuYWwrMHgzNy8weGQwClsg ICAxMi43MzIzNzFdICBuYXBpX2dyb19yZWNlaXZlKzB4YzcvMHhmMApbICAgMTIuNzMyOTIwXSAg cmVjZWl2ZV9idWYrMHgzYzMvMHhkNDAKWyAgIDEyLjczMzQ0MV0gIHZpcnRuZXRfcG9sbCsweGIx LzB4MjUwClsgICAxMi43MzM5NDRdICBuZXRfcnhfYWN0aW9uKzB4MjNlLzB4MzcwClsgICAxMi43 MzQ0NzZdICBfX2RvX3NvZnRpcnErMHhjNS8weDJmOApbICAgMTIuNzM0OTIyXSAgaXJxX2V4aXQr MHhmYS8weDEwMApbICAgMTIuNzM1MzE1XSAgZG9fSVJRKzB4NGYvMHhkMApbICAgMTIuNzM1Njgw XSAgY29tbW9uX2ludGVycnVwdCsweGEyLzB4YTIKWyAgIDEyLjczNjEyNl0gIDwvSVJRPgpbICAg MTIuNzM2NDE2XSBSSVA6IDAwMTA6bmF0aXZlX3NhZmVfaGFsdCsweDYvMHgxMApbICAgMTIuNzM2 OTI1XSBSU1A6IDAwMTg6ZmZmZmE0MWNjMGNhZmU5MCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFY OiBmZmZmZmZmZmZmZmZmZjRkClsgICAxMi43Mzc3NTZdIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBS Qlg6IGZmZmY4YzJhNzYxZWRiODAgUkNYOiAwMDAwMDAwMDAwMDAwMDAwClsgICAxMi43Mzg1MDRd IFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAwMDAgUkRJOiAwMDAwMDAw MDAwMDAwMDAwClsgICAxMi43MzkyNThdIFJCUDogZmZmZmE0MWNjMGNhZmU5MCBSMDg6IDAwMDAw MTRiNWI5Nzk1ZTUgUjA5OiBmZmZmYTQxY2MxMmM3ZTg4ClsgICAxMi43NDAxMThdIFIxMDogMDAw MDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiAwMDAwMDAwMDAwMDAwMDAy ClsgICAxMi43NDA5NjRdIFIxMzogZmZmZjhjMmE3NjFlZGI4MCBSMTQ6IDAwMDAwMDAwMDAwMDAw MDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwClsgICAxMi43NDE4MzFdICBkZWZhdWx0X2lkbGUrMHgy YS8weDEwMApbICAgMTIuNzQyMzIzXSAgYXJjaF9jcHVfaWRsZSsweGYvMHgyMApbICAgMTIuNzQy Nzk2XSAgZGVmYXVsdF9pZGxlX2NhbGwrMHgyOC8weDQwClsgICAxMi43NDMzMTJdICBkb19pZGxl KzB4MTc5LzB4MWYwClsgICAxMi43NDM3NjFdICBjcHVfc3RhcnR1cF9lbnRyeSsweDFkLzB4MjAK WyAgIDEyLjc0NDI5MV0gIHN0YXJ0X3NlY29uZGFyeSsweDExMi8weDEyMApbICAgMTIuNzQ0ODE2 XSAgc2Vjb25kYXJ5X3N0YXJ0dXBfNjQrMHhhNS8weGE1ClsgICAxMi43NDUzNjddIENvZGU6IGI5 IGY0IDAxIDAwIDAwIDQ4IDg5IGMyIDQ4IGMxIGVhIDAyIDQ4IDNkIGQzIDA3IDAwCjAwIDQ4IDBm IDQ3IGQxIDQ5IDhiIDBjIDI0IDQ4IDM5IGQxIDc2IDA3IDQ5IDg5IDE0IDI0IDQ4IDg5IGQxIDMx IGQyIDQ4Cjg5IGRmIDw0OD4gZjcgZjEgODkgYzYgZTggODEgNmUgZmYgZmYgNWIgNDEgNWMgNWQg YzMgNjYgOTAgNjYgMmUgMGYgMWYKWyAgIDEyLjc0NzUyN10gUklQOiB0aXBjX25vZGVfY2FsY3Vs YXRlX3RpbWVyLmlzcmEuMTIrMHg0NS8weDYwIFt0aXBjXSBSU1A6IGZmZmY4YzJhN2ZjODM4YTAK WyAgIDEyLjc0ODU1NV0gLS0tWyBlbmQgdHJhY2UgMTM5OWFiODMzOTA2NTBmZCBdLS0tClsgICAx Mi43NDkyOTZdIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBGYXRhbCBleGNlcHRpb24gaW4g aW50ZXJydXB0ClsgICAxMi43NTAxMjNdIEtlcm5lbCBPZmZzZXQ6IDB4MTMyMDAwMDAgZnJvbSAw eGZmZmZmZmZmODIwMDAwMDAKKHJlbG9jYXRpb24gcmFuZ2U6IDB4ZmZmZmZmZmY4MDAwMDAwMC0w eGZmZmZmZmZmYmZmZmZmZmYpClsgICAxMi43NTEyMTVdIFJlYm9vdGluZyBpbiA2MCBzZWNvbmRz Li4KCkZpeGVzOiBjOWI2NGQ0OTJiMWYgKCJ0aXBjOiBhZGQgcmVwbGljYXN0IHBlZXIgZGlzY292 ZXJ5IikKU2lnbmVkLW9mZi1ieTogVG9tbWkgUmFudGFsYSA8dG9tbWkudC5yYW50YWxhQG5va2lh LmNvbT4KQ2M6IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL3Vk cF9tZWRpYS5jIHwgNCAtLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvdGlwYy91ZHBfbWVkaWEuYyBiL25ldC90aXBjL3VkcF9tZWRpYS5jCmluZGV4 IGVjY2E2NGZjNmE2Zi4uM2RlYWJjYWI0ODgyIDEwMDY0NAotLS0gYS9uZXQvdGlwYy91ZHBfbWVk aWEuYworKysgYi9uZXQvdGlwYy91ZHBfbWVkaWEuYwpAQCAtMzcxLDEwICszNzEsNiBAQCBzdGF0 aWMgaW50IHRpcGNfdWRwX3JlY3Yoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogCQkJZ290byByY3Vfb3V0OwogCX0KIAotCXRpcGNfcmN2KHNvY2tfbmV0KHNrKSwgc2tiLCBi KTsKLQlyY3VfcmVhZF91bmxvY2soKTsKLQlyZXR1cm4gMDsKLQogcmN1X291dDoKIAlyY3VfcmVh ZF91bmxvY2soKTsKIG91dDoKLS0gCjIuMTQuMwoKCkZyb20gOWQ4M2RhZDQwMzc0YTdlNDkwZTc4 N2Q3ZGRkZTJmMTExMTY2MmEyMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDYgRGVjIDIwMTcgMTE6MDg6 MTkgLTA4MDAKU3ViamVjdDogW1BBVENIIDIzLzMzXSB0Y3A6IHVzZSBjdXJyZW50IHRpbWUgaW4g dGNwX3Jjdl9zcGFjZV9hZGp1c3QoKQoKWyBVcHN0cmVhbSBjb21taXQgODYzMjM4NTAyMmYyYjA1 YTZjYTBiOWUwZjk1NTc1ODY1ZGUwZTJjZSBdCgpXaGVuIEkgc3dpdGNoZWQgcmN2X3J0dF9lc3Qg dG8gaGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcHMsIEkgZm9yZ290CnRoYXQgdHAtPnRjcF9tc3Rh bXAgbmVlZGVkIHRvIGJlIHJlZnJlc2hlZCBpbiB0Y3BfcmN2X3NwYWNlX2FkanVzdCgpCgpVc2lu ZyBhbiBvbGQgdGltZXN0YW1wIGxlYWRzIHRvIGF1dG90dW5pbmcgbGFncy4KCkZpeGVzOiA2NDVm NGM2ZjJlYmQgKCJ0Y3A6IHN3aXRjaCByY3ZfcnR0X2VzdCBhbmQgcmN2cV9zcGFjZSB0byBoaWdo IHJlc29sdXRpb24gdGltZXN0YW1wcyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFdlaSBXYW5nIDx3ZWl3YW5AZ29vZ2xlLmNvbT4KQ2M6IE5l YWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpDYzogWXVjaHVuZyBDaGVuZyA8eWNo ZW5nQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcHY0L3RjcF9pbnB1dC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3Rj cF9pbnB1dC5jCmluZGV4IGI2YmIzY2RmYWQwOS4uNGIxMGU3OTIxMGFhIDEwMDY0NAotLS0gYS9u ZXQvaXB2NC90Y3BfaW5wdXQuYworKysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpAQCAtNTkyLDYg KzU5Miw3IEBAIHZvaWQgdGNwX3Jjdl9zcGFjZV9hZGp1c3Qoc3RydWN0IHNvY2sgKnNrKQogCWlu dCB0aW1lOwogCWludCBjb3BpZWQ7CiAKKwl0Y3BfbXN0YW1wX3JlZnJlc2godHApOwogCXRpbWUg PSB0Y3Bfc3RhbXBfdXNfZGVsdGEodHAtPnRjcF9tc3RhbXAsIHRwLT5yY3ZxX3NwYWNlLnRpbWUp OwogCWlmICh0aW1lIDwgKHRwLT5yY3ZfcnR0X2VzdC5ydHRfdXMgPj4gMykgfHwgdHAtPnJjdl9y dHRfZXN0LnJ0dF91cyA9PSAwKQogCQlyZXR1cm47Ci0tIAoyLjE0LjMKCgpGcm9tIDU3NmVhNTJj YWM0ZTQ0NmQwNTY4NTM4MmY2MjllMmRlOWY5YzJiM2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDI3IE5vdiAy MDE3IDE4OjM3OjIxICswMTAwClN1YmplY3Q6IFtQQVRDSCAyNC8zM10gbmV0OiBzY2hlZDogY2Jx OiBjcmVhdGUgYmxvY2sgZm9yIHEtPmxpbmsuYmxvY2sKClsgVXBzdHJlYW0gY29tbWl0IGQ1MWFh ZTY4YjE0MmY0ODIzMjI1N2U5NmNlMzE3ZGIyNTQ0NTQxOGQgXQoKcS0+bGluay5ibG9jayBpcyBu b3QgaW5pdGlhbGl6ZWQsIHRoYXQgbGVhZHMgdG8gRUlOVkFMIHdoZW4gb25lIHRyaWVzIHRvCmFk ZCBmaWx0ZXIgdGhlcmUuIFNvIGluaXRpYWxpemUgaXQgcHJvcGVybHkuCgpUaGlzIGNhbiBiZSBy ZXByb2R1Y2VkIGJ5OgokIHRjIHFkaXNjIGFkZCBkZXYgZXRoMCByb290IGhhbmRsZSAxOiBjYnEg YXZwa3QgMTAwMCByYXRlIDEwMDBNYml0IGJhbmR3aWR0aCAxMDAwTWJpdAokIHRjIGZpbHRlciBh ZGQgZGV2IGV0aDAgcGFyZW50IDE6IHByb3RvY29sIGlwIHByaW8gMTAwIHUzMiBtYXRjaCBpcCBw cm90b2NvbCAwIDB4MDAgZmxvd2lkIDE6MQoKUmVwb3J0ZWQtYnk6IEphcm9zbGF2IEFzdGVyIDxq YXN0ZXJAcmVkaGF0LmNvbT4KUmVwb3J0ZWQtYnk6IEl2YW4gVmVjZXJhIDxpdmVjZXJhQHJlZGhh dC5jb20+CkZpeGVzOiA2NTI5ZWFiYTMzZjAgKCJuZXQ6IHNjaGVkOiBpbnRyb2R1Y2UgdGNmIGJs b2NrIGluZnJhY3RydWN0dXJlIikKU2lnbmVkLW9mZi1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxs YW5veC5jb20+CkFja2VkLWJ5OiBFZWxjbyBDaGF1ZHJvbiA8ZWNoYXVkcm9AcmVkaGF0LmNvbT4K UmV2aWV3ZWQtYnk6IEl2YW4gVmVjZXJhIDxpdmVjZXJhQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQv c2NoX2NicS5jIHwgOSArKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2NicS5jIGIvbmV0L3Nj aGVkL3NjaF9jYnEuYwppbmRleCBkY2VmOTdmYTgwNDcuLmFlZmZhMzIwNDI5ZCAxMDA2NDQKLS0t IGEvbmV0L3NjaGVkL3NjaF9jYnEuYworKysgYi9uZXQvc2NoZWQvc2NoX2NicS5jCkBAIC0xMTU3 LDkgKzExNTcsMTMgQEAgc3RhdGljIGludCBjYnFfaW5pdChzdHJ1Y3QgUWRpc2MgKnNjaCwgc3Ry dWN0IG5sYXR0ciAqb3B0KQogCWlmICgocS0+bGluay5SX3RhYiA9IHFkaXNjX2dldF9ydGFiKHIs IHRiW1RDQV9DQlFfUlRBQl0pKSA9PSBOVUxMKQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCWVyciA9 IHRjZl9ibG9ja19nZXQoJnEtPmxpbmsuYmxvY2ssICZxLT5saW5rLmZpbHRlcl9saXN0KTsKKwlp ZiAoZXJyKQorCQlnb3RvIHB1dF9ydGFiOworCiAJZXJyID0gcWRpc2NfY2xhc3NfaGFzaF9pbml0 KCZxLT5jbGhhc2gpOwogCWlmIChlcnIgPCAwKQotCQlnb3RvIHB1dF9ydGFiOworCQlnb3RvIHB1 dF9ibG9jazsKIAogCXEtPmxpbmsuc2libGluZyA9ICZxLT5saW5rOwogCXEtPmxpbmsuY29tbW9u LmNsYXNzaWQgPSBzY2gtPmhhbmRsZTsKQEAgLTExOTMsNiArMTE5Nyw5IEBAIHN0YXRpYyBpbnQg Y2JxX2luaXQoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAljYnFfYWRk cHJpbyhxLCAmcS0+bGluayk7CiAJcmV0dXJuIDA7CiAKK3B1dF9ibG9jazoKKwl0Y2ZfYmxvY2tf cHV0KHEtPmxpbmsuYmxvY2spOworCiBwdXRfcnRhYjoKIAlxZGlzY19wdXRfcnRhYihxLT5saW5r LlJfdGFiKTsKIAlyZXR1cm4gZXJyOwotLSAKMi4xNC4zCgoKRnJvbSAyMzU5YzM3OTk4NzI3YmVi MzU4YzBkODk2ZDBhYjQ1MmZlMTY5OWJhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBX ZWkgWHUgPHdleHVAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAxIERlYyAyMDE3IDA1OjEwOjM4IC0w NTAwClN1YmplY3Q6IFtQQVRDSCAyNS8zM10gdGFwOiBmcmVlIHNrYiBpZiBmbGFncyBlcnJvcgoK WyBVcHN0cmVhbSBjb21taXQgNjFkNzg1Mzc4NDNlNjc2ZTdmNTZhYzZkYjMzM2RiMGMwNTI5Yjg5 MiBdCgp0YXBfcmVjdm1zZygpIHN1cHBvcnRzIGFjY2VwdGluZyBza2IgYnkgbXNnX2NvbnRyb2wg YWZ0ZXIKY29tbWl0IDNiNGJhMDRhY2NhOCAoInRhcDogc3VwcG9ydCByZWNlaXZpbmcgc2tiIGZy b20gbXNnX2NvbnRyb2wiKSwKdGhlIHNrYiBpZiBwcmVzZW50ZWQgc2hvdWxkIGJlIGZyZWVkIHdp dGhpbiB0aGUgZnVuY3Rpb24sIG90aGVyd2lzZQppdCB3b3VsZCBiZSBsZWFrZWQuCgpTaWduZWQt b2ZmLWJ5OiBXZWkgWHUgPHdleHVAcmVkaGF0LmNvbT4KUmVwb3J0ZWQtYnk6IE1hdHRoZXcgUm9z YXRvIDxtanJvc2F0b0BsaW51eC52bmV0LmlibS5jb20+CkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRz aXJraW4gPG1zdEByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdGFwLmMgfCAxNCArKysrKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdGFwLmMgYi9kcml2ZXJzL25ldC90YXAuYwppbmRleCA2 YzBjODRjMzNlMWYuLmU0YzZjNzhmYWIzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdGFwLmMK KysrIGIvZHJpdmVycy9uZXQvdGFwLmMKQEAgLTgyOSw4ICs4MjksMTEgQEAgc3RhdGljIHNzaXpl X3QgdGFwX2RvX3JlYWQoc3RydWN0IHRhcF9xdWV1ZSAqcSwKIAlERUZJTkVfV0FJVCh3YWl0KTsK IAlzc2l6ZV90IHJldCA9IDA7CiAKLQlpZiAoIWlvdl9pdGVyX2NvdW50KHRvKSkKKwlpZiAoIWlv dl9pdGVyX2NvdW50KHRvKSkgeworCQlpZiAoc2tiKQorCQkJa2ZyZWVfc2tiKHNrYik7CiAJCXJl dHVybiAwOworCX0KIAogCWlmIChza2IpCiAJCWdvdG8gcHV0OwpAQCAtMTE1NCwxMSArMTE1Nywx NCBAQCBzdGF0aWMgaW50IHRhcF9yZWN2bXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBt c2doZHIgKm0sCiAJCSAgICAgICBzaXplX3QgdG90YWxfbGVuLCBpbnQgZmxhZ3MpCiB7CiAJc3Ry dWN0IHRhcF9xdWV1ZSAqcSA9IGNvbnRhaW5lcl9vZihzb2NrLCBzdHJ1Y3QgdGFwX3F1ZXVlLCBz b2NrKTsKKwlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gbS0+bXNnX2NvbnRyb2w7CiAJaW50IHJldDsK LQlpZiAoZmxhZ3MgJiB+KE1TR19ET05UV0FJVHxNU0dfVFJVTkMpKQorCWlmIChmbGFncyAmIH4o TVNHX0RPTlRXQUlUfE1TR19UUlVOQykpIHsKKwkJaWYgKHNrYikKKwkJCWtmcmVlX3NrYihza2Ip OwogCQlyZXR1cm4gLUVJTlZBTDsKLQlyZXQgPSB0YXBfZG9fcmVhZChxLCAmbS0+bXNnX2l0ZXIs IGZsYWdzICYgTVNHX0RPTlRXQUlULAotCQkJICBtLT5tc2dfY29udHJvbCk7CisJfQorCXJldCA9 IHRhcF9kb19yZWFkKHEsICZtLT5tc2dfaXRlciwgZmxhZ3MgJiBNU0dfRE9OVFdBSVQsIHNrYik7 CiAJaWYgKHJldCA+IHRvdGFsX2xlbikgewogCQltLT5tc2dfZmxhZ3MgfD0gTVNHX1RSVU5DOwog CQlyZXQgPSBmbGFncyAmIE1TR19UUlVOQyA/IHJldCA6IHRvdGFsX2xlbjsKLS0gCjIuMTQuMwoK CkZyb20gZGNjMjQ4Y2YwOTliMWRkMzg0OGFmZTc2ZGQ2MzQyN2E0N2YxZGQ5MCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ CkRhdGU6IEZyaSwgMTcgTm92IDIwMTcgMjE6MDY6MTQgLTA1MDAKU3ViamVjdDogW1BBVENIIDI2 LzMzXSB0Y3A6IHdoZW4gc2NoZWR1bGluZyBUTFAsIHRpbWUgb2YgUlRPIHNob3VsZCBhY2NvdW50 CiBmb3IgY3VycmVudCBBQ0sKClsgVXBzdHJlYW0gY29tbWl0IGVkNjZkZmFmMjM2YzA0ZDQxNGRl MWQyMTg0NDEyOTZlNTdmYjJiZDIgXQoKRml4IHRoZSBUTFAgc2NoZWR1bGluZyBsb2dpYyBzbyB0 aGF0IHdoZW4gc2NoZWR1bGluZyBhIFRMUCBwcm9iZSwgd2UKZW5zdXJlIHRoYXQgdGhlIGVzdGlt YXRlZCB0aW1lIGF0IHdoaWNoIGFuIFJUTyB3b3VsZCBmaXJlIGFjY291bnRzIGZvcgp0aGUgZmFj dCB0aGF0IEFDS3MgaW5kaWNhdGluZyBmb3J3YXJkIHByb2dyZXNzIHNob3VsZCBwdXNoIGJhY2sg UlRPCnRpbWVzLgoKQWZ0ZXIgdGhlIGZvbGxvd2luZyBmaXg6CgpkZjkyYzgzOTRlNmUgKCJ0Y3A6 IGZpeCB4bWl0IHRpbWVyIHRvIG9ubHkgYmUgcmVzZXQgaWYgZGF0YSBBQ0tlZC9TQUNLZWQiKQoK d2UgaGFkIGFuIHVuaW50ZW50aW9uYWwgYmVoYXZpb3IgY2hhbmdlIGluIHRoZSBmb2xsb3dpbmcg a2luZCBvZgpzY2VuYXJpbzogc3VwcG9zZSB0aGUgUlRUIHZhcmlhbmNlIGhhcyBiZWVuIHZlcnkg bG93IHJlY2VudGx5LiBUaGVuCnN1cHBvc2Ugd2Ugc2VuZCBvdXQgYSBmbGlnaHQgb2YgTiBwYWNr ZXRzIGFuZCBvdXIgUlRUIGlzIDEwMG1zOgoKdD0wOiBzZW5kIGEgZmxpZ2h0IG9mIE4gcGFja2V0 cwp0PTEwMG1zOiByZWNlaXZlIGFuIEFDSyBmb3IgTi0xIHBhY2tldHMKClRoZSByZXNwb25zZSBi ZWZvcmUgZGY5MmM4Mzk0ZTZlIHRoYXQgd2FzOgogIC0+IHNjaGVkdWxlIGEgVExQIGZvciBub3cg KyBSVE9faW50ZXJ2YWwKClRoZSByZXNwb25zZSBhZnRlciBkZjkyYzgzOTRlNmUgaXM6CiAgLT4g c2NoZWR1bGUgYSBUTFAgZm9yIHQ9MCArIFJUT19pbnRlcnZhbAoKU2luY2UgUlRPX2ludGVydmFs ID0gc3J0dCArIFJUVF92YXJpYW5jZSwgdGhpcyBtZWFucyB0aGF0IHdlIGhhdmUKc2NoZWR1bGVk IGEgVExQIHRpbWVyIGF0IGEgcG9pbnQgaW4gdGhlIGZ1dHVyZSB0aGF0IG9ubHkgYWNjb3VudHMg Zm9yClJUVF92YXJpYW5jZS4gSWYgdGhlIFJUVF92YXJpYW5jZSB0ZXJtIGlzIHNtYWxsLCB0aGlz IG1lYW5zIHRoYXQgdGhlCnRpbWVyIGZpcmVzIHNvb24uCgpCZWZvcmUgZGY5MmM4Mzk0ZTZlIHRo aXMgd291bGQgbm90IGhhcHBlbiwgYmVjYXVzZSBpbiB0aGF0IGNvZGUsIHdoZW4Kd2UgcmVjZWl2 ZSBhbiBBQ0sgZm9yIGEgcHJlZml4IG9mIGZsaWdodCwgd2UgZGlkOgoKICAgIDEpIE5lYXIgdGhl IHRvcCBvZiB0Y3BfYWNrKCksIHN3aXRjaCBmcm9tIFRMUCB0aW1lciB0byBSVE8KICAgICAgIGF0 IHdyaXRlX3F1ZXVlX2hlYWQtPnBha2V0X3R4X3RpbWUgKyBSVE9faW50ZXJ2YWw6CiAgICAgICAg ICAgIGlmIChpY3NrLT5pY3NrX3BlbmRpbmcgPT0gSUNTS19USU1FX0xPU1NfUFJPQkUpCiAgICAg ICAgICAgICAgICAgICB0Y3BfcmVhcm1fcnRvKHNrKTsKCiAgICAyKSBJbiB0Y3BfY2xlYW5fcnR4 X3F1ZXVlKCksIHVwZGF0ZSB0aGUgUlRPIHRvIG5vdyArIFJUT19pbnRlcnZhbDoKICAgICAgICAg ICAgaWYgKGZsYWcgJiBGTEFHX0FDS0VEKSB7CiAgICAgICAgICAgICAgICAgICB0Y3BfcmVhcm1f cnRvKHNrKTsKCiAgICAzKSBJbiB0Y3BfYWNrKCkgYWZ0ZXIgdGNwX2Zhc3RyZXRyYW5zX2FsZXJ0 KCkgc3dpdGNoIGZyb20gUlRPCiAgICAgICB0byBUTFAgYXQgbm93ICsgUlRPX2ludGVydmFsOgog ICAgICAgICAgICBpZiAoaWNzay0+aWNza19wZW5kaW5nID09IElDU0tfVElNRV9SRVRSQU5TKQog ICAgICAgICAgICAgICAgICAgdGNwX3NjaGVkdWxlX2xvc3NfcHJvYmUoc2spOwoKSW4gZGY5MmM4 Mzk0ZTZlIHdlIHJlbW92ZWQgdGhhdCAzLXBoYXNlIGRhbmNlLCBhbmQgaW5zdGVhZCBkaXJlY3Rs eQpzZXQgdGhlIFRMUCB0aW1lciBvbmNlOiB3ZSBzZXQgdGhlIFRMUCB0aW1lciBpbiBjYXNlcyBs aWtlIHRoaXMgdG8Kd3JpdGVfcXVldWVfaGVhZC0+cGFja2V0X3R4X3RpbWUgKyBSVE9faW50ZXJ2 YWwuIFNvIGlmIHRoZSBSVFQKdmFyaWFuY2UgaXMgc21hbGwsIHRoZW4gdGhpcyBtZWFucyB0aGF0 IHRoaXMgaXMgc2V0dGluZyB0aGUgVExQIHRpbWVyCnRvIGZpcmUgcXVpdGUgc29vbi4gVGhpcyBt ZWFucyBpZiB0aGUgQUNLIGZvciB0aGUgdGFpbCBvZiB0aGUgZmxpZ2h0CnRha2VzIGxvbmdlciB0 aGFuIGFuIFJUVCB0byBhcnJpdmUgKG9mdGVuIGR1ZSB0byBkZWxheWVkIEFDS3MpLCB0aGVuCnRo ZSBUTFAgdGltZXIgZmlyZXMgdG9vIHF1aWNrbHkuCgpGaXhlczogZGY5MmM4Mzk0ZTZlICgidGNw OiBmaXggeG1pdCB0aW1lciB0byBvbmx5IGJlIHJlc2V0IGlmIGRhdGEgQUNLZWQvU0FDS2VkIikK U2lnbmVkLW9mZi1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBTb2hlaWwgSGFz c2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvdGNwLmggICAgIHwg MiArLQogbmV0L2lwdjQvdGNwX2lucHV0LmMgIHwgMiArLQogbmV0L2lwdjQvdGNwX291dHB1dC5j IHwgOCArKysrKy0tLQogMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3Au aAppbmRleCA1ZGZjOTJmZjlmZmQuLjZjZWQ2OTk0MGY1YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9u ZXQvdGNwLmgKKysrIGIvaW5jbHVkZS9uZXQvdGNwLmgKQEAgLTU2Myw3ICs1NjMsNyBAQCB2b2lk IHRjcF9wdXNoX29uZShzdHJ1Y3Qgc29jayAqLCB1bnNpZ25lZCBpbnQgbXNzX25vdyk7CiB2b2lk IHRjcF9zZW5kX2FjayhzdHJ1Y3Qgc29jayAqc2spOwogdm9pZCB0Y3Bfc2VuZF9kZWxheWVkX2Fj ayhzdHJ1Y3Qgc29jayAqc2spOwogdm9pZCB0Y3Bfc2VuZF9sb3NzX3Byb2JlKHN0cnVjdCBzb2Nr ICpzayk7Ci1ib29sIHRjcF9zY2hlZHVsZV9sb3NzX3Byb2JlKHN0cnVjdCBzb2NrICpzayk7Citi b29sIHRjcF9zY2hlZHVsZV9sb3NzX3Byb2JlKHN0cnVjdCBzb2NrICpzaywgYm9vbCBhZHZhbmNp bmdfcnRvKTsKIHZvaWQgdGNwX3NrYl9jb2xsYXBzZV90c3RhbXAoc3RydWN0IHNrX2J1ZmYgKnNr YiwKIAkJCSAgICAgY29uc3Qgc3RydWN0IHNrX2J1ZmYgKm5leHRfc2tiKTsKIApkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwppbmRleCA0YjEw ZTc5MjEwYWEuLmM1NDQ3YjlmODUxNyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lucHV0LmMK KysrIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZvaWQgdGNw X3JlYXJtX3J0byhzdHJ1Y3Qgc29jayAqc2spCiAvKiBUcnkgdG8gc2NoZWR1bGUgYSBsb3NzIHBy b2JlOyBpZiB0aGF0IGRvZXNuJ3Qgd29yaywgdGhlbiBzY2hlZHVsZSBhbiBSVE8uICovCiBzdGF0 aWMgdm9pZCB0Y3Bfc2V0X3htaXRfdGltZXIoc3RydWN0IHNvY2sgKnNrKQogewotCWlmICghdGNw X3NjaGVkdWxlX2xvc3NfcHJvYmUoc2spKQorCWlmICghdGNwX3NjaGVkdWxlX2xvc3NfcHJvYmUo c2ssIHRydWUpKQogCQl0Y3BfcmVhcm1fcnRvKHNrKTsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2lw djQvdGNwX291dHB1dC5jIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCmluZGV4IDQ3ODkwOWY0Njk0 ZC4uY2QzZDYwYmI3Y2M4IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKKysrIGIv bmV0L2lwdjQvdGNwX291dHB1dC5jCkBAIC0yMzM3LDcgKzIzMzcsNyBAQCBzdGF0aWMgYm9vbCB0 Y3Bfd3JpdGVfeG1pdChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGludCBtc3Nfbm93LCBpbnQg bm9uYWdsZSwKIAogCQkvKiBTZW5kIG9uZSBsb3NzIHByb2JlIHBlciB0YWlsIGxvc3MgZXBpc29k ZS4gKi8KIAkJaWYgKHB1c2hfb25lICE9IDIpCi0JCQl0Y3Bfc2NoZWR1bGVfbG9zc19wcm9iZShz ayk7CisJCQl0Y3Bfc2NoZWR1bGVfbG9zc19wcm9iZShzaywgZmFsc2UpOwogCQlpc19jd25kX2xp bWl0ZWQgfD0gKHRjcF9wYWNrZXRzX2luX2ZsaWdodCh0cCkgPj0gdHAtPnNuZF9jd25kKTsKIAkJ dGNwX2N3bmRfdmFsaWRhdGUoc2ssIGlzX2N3bmRfbGltaXRlZCk7CiAJCXJldHVybiBmYWxzZTsK QEAgLTIzNDUsNyArMjM0NSw3IEBAIHN0YXRpYyBib29sIHRjcF93cml0ZV94bWl0KHN0cnVjdCBz b2NrICpzaywgdW5zaWduZWQgaW50IG1zc19ub3csIGludCBub25hZ2xlLAogCXJldHVybiAhdHAt PnBhY2tldHNfb3V0ICYmIHRjcF9zZW5kX2hlYWQoc2spOwogfQogCi1ib29sIHRjcF9zY2hlZHVs ZV9sb3NzX3Byb2JlKHN0cnVjdCBzb2NrICpzaykKK2Jvb2wgdGNwX3NjaGVkdWxlX2xvc3NfcHJv YmUoc3RydWN0IHNvY2sgKnNrLCBib29sIGFkdmFuY2luZ19ydG8pCiB7CiAJc3RydWN0IGluZXRf Y29ubmVjdGlvbl9zb2NrICppY3NrID0gaW5ldF9jc2soc2spOwogCXN0cnVjdCB0Y3Bfc29jayAq dHAgPSB0Y3Bfc2soc2spOwpAQCAtMjM4NCw3ICsyMzg0LDkgQEAgYm9vbCB0Y3Bfc2NoZWR1bGVf bG9zc19wcm9iZShzdHJ1Y3Qgc29jayAqc2spCiAJfQogCiAJLyogSWYgdGhlIFJUTyBmb3JtdWxh IHlpZWxkcyBhbiBlYXJsaWVyIHRpbWUsIHRoZW4gdXNlIHRoYXQgdGltZS4gKi8KLQlydG9fZGVs dGFfdXMgPSB0Y3BfcnRvX2RlbHRhX3VzKHNrKTsgIC8qIEhvdyBmYXIgaW4gZnV0dXJlIGlzIFJU Tz8gKi8KKwlydG9fZGVsdGFfdXMgPSBhZHZhbmNpbmdfcnRvID8KKwkJCWppZmZpZXNfdG9fdXNl Y3MoaW5ldF9jc2soc2spLT5pY3NrX3J0bykgOgorCQkJdGNwX3J0b19kZWx0YV91cyhzayk7ICAv KiBIb3cgZmFyIGluIGZ1dHVyZSBpcyBSVE8/ICovCiAJaWYgKHJ0b19kZWx0YV91cyA+IDApCiAJ CXRpbWVvdXQgPSBtaW5fdCh1MzIsIHRpbWVvdXQsIHVzZWNzX3RvX2ppZmZpZXMocnRvX2RlbHRh X3VzKSk7CiAKLS0gCjIuMTQuMwoKCkZyb20gNjAyMDhkNmM3YjI2ZWRmNzE5ZTViMjA3ZmY2YWI3 MTU5Zjc1N2IwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2VpIFh1IDx3ZXh1QHJl ZGhhdC5jb20+CkRhdGU6IEZyaSwgMSBEZWMgMjAxNyAwNToxMDozNyAtMDUwMApTdWJqZWN0OiBb UEFUQ0ggMjcvMzNdIHR1bjogZnJlZSBza2IgaW4gZWFybHkgZXJyb3JzCgpbIFVwc3RyZWFtIGNv bW1pdCBjMzNlZTE1YjM4MjBhMDNjZjgyMjliYTk0MTUwODQxOTdiODI3ZjhjIF0KCnR1bl9yZWN2 bXNnKCkgc3VwcG9ydHMgYWNjZXB0aW5nIHNrYiBieSBtc2dfY29udHJvbCBhZnRlcgpjb21taXQg YWM3N2NmZDQyNThmICgidHVuOiBzdXBwb3J0IHJlY2VpdmluZyBza2IgdGhyb3VnaCBtc2dfY29u dHJvbCIpLAp0aGUgc2tiIGlmIHByZXNlbnRlZCBzaG91bGQgYmUgZnJlZWQgbm8gbWF0dGVyIGhv dyBmYXIgaXQgY2FuIGdvCmFsb25nLCBvdGhlcndpc2UgaXQgd291bGQgYmUgbGVha2VkLgoKVGhp cyBwYXRjaCBmaXhlcyBzZXZlcmFsIG1pc3NlZCBjYXNlcy4KClNpZ25lZC1vZmYtYnk6IFdlaSBY dSA8d2V4dUByZWRoYXQuY29tPgpSZXBvcnRlZC1ieTogTWF0dGhldyBSb3NhdG8gPG1qcm9zYXRv QGxpbnV4LnZuZXQuaWJtLmNvbT4KQWNrZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJl ZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90dW4uYyB8IDI0ICsrKysrKysrKysrKysrKysrKy0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdHVuLmMgYi9kcml2ZXJzL25ldC90dW4uYwppbmRleCA0MmJi ODIwYTU2YzkuLmE1YzQ3ZGI5NDg0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHVuLmMKKysr IGIvZHJpdmVycy9uZXQvdHVuLmMKQEAgLTE3MzQsOCArMTczNCwxMSBAQCBzdGF0aWMgc3NpemVf dCB0dW5fZG9fcmVhZChzdHJ1Y3QgdHVuX3N0cnVjdCAqdHVuLCBzdHJ1Y3QgdHVuX2ZpbGUgKnRm aWxlLAogCiAJdHVuX2RlYnVnKEtFUk5fSU5GTywgdHVuLCAidHVuX2RvX3JlYWRcbiIpOwogCi0J aWYgKCFpb3ZfaXRlcl9jb3VudCh0bykpCisJaWYgKCFpb3ZfaXRlcl9jb3VudCh0bykpIHsKKwkJ aWYgKHNrYikKKwkJCWtmcmVlX3NrYihza2IpOwogCQlyZXR1cm4gMDsKKwl9CiAKIAlpZiAoIXNr YikgewogCQkvKiBSZWFkIGZyYW1lcyBmcm9tIHJpbmcgKi8KQEAgLTE4NTEsMjIgKzE4NTQsMjQg QEAgc3RhdGljIGludCB0dW5fcmVjdm1zZyhzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNn aGRyICptLCBzaXplX3QgdG90YWxfbGVuLAogewogCXN0cnVjdCB0dW5fZmlsZSAqdGZpbGUgPSBj b250YWluZXJfb2Yoc29jaywgc3RydWN0IHR1bl9maWxlLCBzb2NrZXQpOwogCXN0cnVjdCB0dW5f c3RydWN0ICp0dW4gPSBfX3R1bl9nZXQodGZpbGUpOworCXN0cnVjdCBza19idWZmICpza2IgPSBt LT5tc2dfY29udHJvbDsKIAlpbnQgcmV0OwogCi0JaWYgKCF0dW4pCi0JCXJldHVybiAtRUJBREZE OworCWlmICghdHVuKSB7CisJCXJldCA9IC1FQkFERkQ7CisJCWdvdG8gb3V0X2ZyZWVfc2tiOwor CX0KIAogCWlmIChmbGFncyAmIH4oTVNHX0RPTlRXQUlUfE1TR19UUlVOQ3xNU0dfRVJSUVVFVUUp KSB7CiAJCXJldCA9IC1FSU5WQUw7Ci0JCWdvdG8gb3V0OworCQlnb3RvIG91dF9wdXRfdHVuOwog CX0KIAlpZiAoZmxhZ3MgJiBNU0dfRVJSUVVFVUUpIHsKIAkJcmV0ID0gc29ja19yZWN2X2VycnF1 ZXVlKHNvY2stPnNrLCBtLCB0b3RhbF9sZW4sCiAJCQkJCSBTT0xfUEFDS0VULCBUVU5fVFhfVElN RVNUQU1QKTsKIAkJZ290byBvdXQ7CiAJfQotCXJldCA9IHR1bl9kb19yZWFkKHR1biwgdGZpbGUs ICZtLT5tc2dfaXRlciwgZmxhZ3MgJiBNU0dfRE9OVFdBSVQsCi0JCQkgIG0tPm1zZ19jb250cm9s KTsKKwlyZXQgPSB0dW5fZG9fcmVhZCh0dW4sIHRmaWxlLCAmbS0+bXNnX2l0ZXIsIGZsYWdzICYg TVNHX0RPTlRXQUlULCBza2IpOwogCWlmIChyZXQgPiAoc3NpemVfdCl0b3RhbF9sZW4pIHsKIAkJ bS0+bXNnX2ZsYWdzIHw9IE1TR19UUlVOQzsKIAkJcmV0ID0gZmxhZ3MgJiBNU0dfVFJVTkMgPyBy ZXQgOiB0b3RhbF9sZW47CkBAIC0xODc0LDYgKzE4NzksMTMgQEAgc3RhdGljIGludCB0dW5fcmVj dm1zZyhzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptLCBzaXplX3QgdG90YWxf bGVuLAogb3V0OgogCXR1bl9wdXQodHVuKTsKIAlyZXR1cm4gcmV0OworCitvdXRfcHV0X3R1bjoK Kwl0dW5fcHV0KHR1bik7CitvdXRfZnJlZV9za2I6CisJaWYgKHNrYikKKwkJa2ZyZWVfc2tiKHNr Yik7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCB0dW5fcGVla19sZW4oc3RydWN0IHNv Y2tldCAqc29jaykKLS0gCjIuMTQuMwoKCkZyb20gMWIxMjIxNTdkZTA4MjliN2MxYTdmN2NiYTU3 NzVkMzYxMzhiYTUwMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQWhlcm4g PGRzYWhlcm5AZ21haWwuY29tPgpEYXRlOiBUdWUsIDIxIE5vdiAyMDE3IDA3OjA4OjU3IC0wODAw ClN1YmplY3Q6IFtQQVRDSCAyOC8zM10gbmV0OiBpcHY2OiBGaXh1cCBkZXZpY2UgZm9yIGFueWNh c3Qgcm91dGVzIGR1cmluZyBjb3B5CgpbIFVwc3RyZWFtIGNvbW1pdCA5OGQxMTI5MWQxODljYjVh ZGY0OTY5NGQwYWQxYjk3MWMwMjEyNjk3IF0KCkZsb3JpYW4gcmVwb3J0ZWQgYSBicmVha2FnZSB3 aXRoIGFueWNhc3Qgcm91dGVzIGR1ZSB0byBjb21taXQKNDgzMmMzMGQ1NDU4ICgibmV0OiBpcHY2 OiBwdXQgaG9zdCBhbmQgYW55Y2FzdCByb3V0ZXMgb24gZGV2aWNlIHdpdGgKYWRkcmVzcyIpLiBQ cmlvciB0byB0aGlzIGNvbW1pdCBhbnljYXN0IHJvdXRlcyB3ZXJlIGFkZGVkIGFnYWluc3QgdGhl Cmxvb3BiYWNrIGRldmljZSBjYXVzaW5nIHJlcGV0aXRpdmUgcm91dGUgZW50cmllcyB3aXRoIG5v IGluc2lnaHQgaW50bwp3aHkgdGhleSBleGlzdGVkLiBlLmcuOgogICQgaXAgLTYgcm8gbHMgIHRh YmxlIGxvY2FsIHR5cGUgYW55Y2FzdAogIGFueWNhc3QgMjAwMTpkYjg6MTo6IGRldiBsbyBwcm90 byBrZXJuZWwgbWV0cmljIDAgcHJlZiBtZWRpdW0KICBhbnljYXN0IDIwMDE6ZGI4OjI6OiBkZXYg bG8gcHJvdG8ga2VybmVsIG1ldHJpYyAwIHByZWYgbWVkaXVtCiAgYW55Y2FzdCBmZTgwOjogZGV2 IGxvIHByb3RvIGtlcm5lbCBtZXRyaWMgMCBwcmVmIG1lZGl1bQogIGFueWNhc3QgZmU4MDo6IGRl diBsbyBwcm90byBrZXJuZWwgbWV0cmljIDAgcHJlZiBtZWRpdW0KClRoZSBwb2ludCBvZiBjb21t aXQgNDgzMmMzMGQ1NDU4IGlzIHRvIGFkZCB0aGUgcm91dGVzIHVzaW5nIHRoZSBkZXZpY2UKd2l0 aCB0aGUgYWRkcmVzcyB3aGljaCBpcyBjYXVzaW5nIHRoZSByb3V0ZSB0byBiZSBhZGRlZC4gZS5n Liw6CiAgJCBpcCAtNiBybyBscyAgdGFibGUgbG9jYWwgdHlwZSBhbnljYXN0CiAgYW55Y2FzdCAy MDAxOmRiODoxOjogZGV2IGV0aDEgcHJvdG8ga2VybmVsIG1ldHJpYyAwIHByZWYgbWVkaXVtCiAg YW55Y2FzdCAyMDAxOmRiODoyOjogZGV2IGV0aDIgcHJvdG8ga2VybmVsIG1ldHJpYyAwIHByZWYg bWVkaXVtCiAgYW55Y2FzdCBmZTgwOjogZGV2IGV0aDIgcHJvdG8ga2VybmVsIG1ldHJpYyAwIHBy ZWYgbWVkaXVtCiAgYW55Y2FzdCBmZTgwOjogZGV2IGV0aDEgcHJvdG8ga2VybmVsIG1ldHJpYyAw IHByZWYgbWVkaXVtCgpGb3IgdHJhZmZpYyB0byB3b3JrIGFzIGl0IGRpZCBiZWZvcmUsIHRoZSBk c3QgZGV2aWNlIG5lZWRzIHRvIGJlIHN3aXRjaGVkCnRvIHRoZSBsb29wYmFjayB3aGVuIHRoZSBj b3B5IGlzIGNyZWF0ZWQgc2ltaWxhciB0byBsb2NhbCByb3V0ZXMuCgpGaXhlczogNDgzMmMzMGQ1 NDU4ICgibmV0OiBpcHY2OiBwdXQgaG9zdCBhbmQgYW55Y2FzdCByb3V0ZXMgb24gZGV2aWNlIHdp dGggYWRkcmVzcyIpClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY2L3JvdXRlLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yb3V0ZS5jIGIvbmV0L2lw djYvcm91dGUuYwppbmRleCBhOTZkNWIzODVkOGYuLjU5OGVmYThjZmUyNSAxMDA2NDQKLS0tIGEv bmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBAIC05NjAsNyArOTYwLDcg QEAgc3RhdGljIHN0cnVjdCBuZXRfZGV2aWNlICppcDZfcnRfZ2V0X2Rldl9yY3Uoc3RydWN0IHJ0 Nl9pbmZvICpydCkKIHsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gcnQtPmRzdC5kZXY7CiAK LQlpZiAocnQtPnJ0NmlfZmxhZ3MgJiBSVEZfTE9DQUwpIHsKKwlpZiAocnQtPnJ0NmlfZmxhZ3Mg JiAoUlRGX0xPQ0FMIHwgUlRGX0FOWUNBU1QpKSB7CiAJCS8qIGZvciBjb3BpZXMgb2YgbG9jYWwg cm91dGVzLCBkc3QtPmRldiBuZWVkcyB0byBiZSB0aGUKIAkJICogZGV2aWNlIGlmIGl0IGlzIGEg bWFzdGVyIGRldmljZSwgdGhlIG1hc3RlciBkZXZpY2UgaWYKIAkJICogZGV2aWNlIGlzIGVuc2xh dmVkLCBhbmQgdGhlIGxvb3BiYWNrIGFzIHRoZSBkZWZhdWx0Ci0tIAoyLjE0LjMKCgpGcm9tIDE3 MWNiNWVkYTI4MjhkM2FjMzBhYTgxM2M5YjU3MWYzNWUwNTA0ZWUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAx OSBOb3YgMjAxNyAxOTozMTowNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjkvMzNdIHR1bjogZml4 IHJjdV9yZWFkX2xvY2sgaW1iYWxhbmNlIGluIHR1bl9idWlsZF9za2IKClsgVXBzdHJlYW0gY29t bWl0IDY1NGQ1NzM4NDVmMzUwMTdkYzM5Nzg0MGZhMDM2MTBmZWYzZDA4YjAgXQoKcmN1X3JlYWRf bG9jayBpbiB0dW5fYnVpbGRfc2tiIGlzIHVzZWQgdG8gcmN1X2RlcmVmZXJlbmNlIHR1bi0+eGRw X3Byb2cKc2FmZWx5LCByY3VfcmVhZF91bmxvY2sgc2hvdWxkIGJlIGRvbmUgaW4gZXZlcnkgcmV0 dXJuIHBhdGguCgpOb3cgSSBjb3VsZCBzZWUgb25lIHBsYWNlIG1pc3NpbmcgaXQsIHdoZXJlIGl0 IHJldHVybnMgTlVMTCBpbiBzd2l0Y2gtY2FzZQpYRFBfUkVESVJFQ1QsICBhbm90aGVyIHBhbGNl IHVzaW5nIHJjdV9yZWFkX2xvY2sgd3JvbmdseSwgd2hlcmUgaXQgcmV0dXJucwpOVUxMIGluIGlm ICh4ZHBfeG1pdCkgY2h1bmsuCgpTbyBmaXggYm90aCBpbiB0aGlzIHBhdGNoLgoKRml4ZXM6IDc2 MTg3NmM4NTdjYiAoInRhcDogWERQIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8 bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90dW4uYyB8IDMgKystCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvdHVuLmMgYi9kcml2ZXJzL25ldC90dW4uYwppbmRleCBhNWM0N2RiOTQ4NDYuLmQw NmY4ODMxMmUxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHVuLmMKKysrIGIvZHJpdmVycy9u ZXQvdHVuLmMKQEAgLTEzMjYsNiArMTMyNiw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqdHVu X2J1aWxkX3NrYihzdHJ1Y3QgdHVuX3N0cnVjdCAqdHVuLAogCQkJZXJyID0geGRwX2RvX3JlZGly ZWN0KHR1bi0+ZGV2LCAmeGRwLCB4ZHBfcHJvZyk7CiAJCQlpZiAoZXJyKQogCQkJCWdvdG8gZXJy X3JlZGlyZWN0OworCQkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCQlyZXR1cm4gTlVMTDsKIAkJY2Fz ZSBYRFBfVFg6CiAJCQl4ZHBfeG1pdCA9IHRydWU7CkBAIC0xMzU4LDcgKzEzNTksNyBAQCBzdGF0 aWMgc3RydWN0IHNrX2J1ZmYgKnR1bl9idWlsZF9za2Ioc3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwK IAlpZiAoeGRwX3htaXQpIHsKIAkJc2tiLT5kZXYgPSB0dW4tPmRldjsKIAkJZ2VuZXJpY194ZHBf dHgoc2tiLCB4ZHBfcHJvZyk7Ci0JCXJjdV9yZWFkX2xvY2soKTsKKwkJcmN1X3JlYWRfdW5sb2Nr KCk7CiAJCXJldHVybiBOVUxMOwogCX0KIAotLSAKMi4xNC4zCgoKRnJvbSBhMjliNGY0ZGYwZGFj NGM2NGYxNWQxMThlMzExNjYzOGY4NmNkNjQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMjEgTm92 IDIwMTcgMTA6MjI6MjUgLTA1MDAKU3ViamVjdDogW1BBVENIIDMwLzMzXSBuZXQ6IGFjY2VwdCBV Rk8gZGF0YWdyYW1zIGZyb20gdHVudGFwIGFuZCBwYWNrZXQKClsgVXBzdHJlYW0gY29tbWl0IDBj MTlmODQ2ZDU4MmFmOTE5ZGI2NmE1OTE0YTAxODlmOWY5MmM5MzYgXQoKVHVudGFwIGFuZCBzaW1p bGFyIGRldmljZXMgY2FuIGluamVjdCBHU08gcGFja2V0cy4gQWNjZXB0IHR5cGUKVklSVElPX05F VF9IRFJfR1NPX1VEUCwgZXZlbiB0aG91Z2ggbm90IGdlbmVyYXRpbmcgVUZPIG5hdGl2ZWx5LgoK UHJvY2Vzc2VzIGFyZSBleHBlY3RlZCB0byB1c2UgZmVhdHVyZSBuZWdvdGlhdGlvbiBzdWNoIGFz IFRVTlNFVE9GRkxPQUQKdG8gZGV0ZWN0IHN1cHBvcnRlZCBvZmZsb2FkIHR5cGVzIGFuZCByZWZy YWluIGZyb20gaW5qZWN0aW5nIG90aGVyCnBhY2tldHMuIFRoaXMgcHJvY2VzcyBicmVha3MgZG93 biB3aXRoIGxpdmUgbWlncmF0aW9uOiBndWVzdCBrZXJuZWxzCmRvIG5vdCByZW5lZ290aWF0ZSBm bGFncywgc28gZGVzdGluYXRpb24gaG9zdHMgbmVlZCB0byBleHBvc2UgYWxsCmZlYXR1cmVzIHRo YXQgdGhlIHNvdXJjZSBob3N0IGRvZXMuCgpQYXJ0aWFsbHkgcmV2ZXJ0IHRoZSBVRk8gcmVtb3Zh bCBmcm9tIDE4MmUwYjZiNTg0Nn4xLi5kOWQzMGFkZjU2NzcuClRoaXMgcGF0Y2ggaW50cm9kdWNl cyBuZWFybHkoKikgbm8gbmV3IGNvZGUgdG8gc2ltcGxpZnkgdmVyaWZpY2F0aW9uLgpJdCBicmlu Z3MgYmFjayB2ZXJiYXRpbSB0dW50YXAgVUZPIG5lZ290aWF0aW9uLCBWSVJUSU9fTkVUX0hEUl9H U09fVURQCmluc2VydGlvbiBhbmQgc29mdHdhcmUgVUZPIHNlZ21lbnRhdGlvbi4KCkl0IGRvZXMg bm90IHJlaW5zdGF0ZSBwcm90b2NvbCBzdGFjayBzdXBwb3J0LCBoYXJkd2FyZSBvZmZsb2FkCihO RVRJRl9GX1VGTyksIFNLQl9HU09fVURQIHR1bm5lbGluZyBpbiBTS0JfR1NPX1NPRlRXQVJFIG9y IHJlY2VwdGlvbgpvZiBWSVJUSU9fTkVUX0hEUl9HU09fVURQIHBhY2tldHMgaW4gdHVudGFwLgoK VG8gc3VwcG9ydCBTS0JfR1NPX1VEUCByZWFwcGVhcmluZyBpbiB0aGUgc3RhY2ssIGFsc28gcmVp bnN0YXRlCmxvZ2ljIGluIGFjdF9jc3VtIGFuZCBvcGVudnN3aXRjaC4gQWNoaWV2ZSBlcXVpdmFs ZW5jZSB3aXRoIHY0LjEzIEhFQUQKYnkgc3F1YXNoaW5nIGluIGNvbW1pdCA5Mzk5MTIyMTZmYTgg KCJuZXQ6IHNrYl9uZWVkc19jaGVjaygpIHJlbW92ZXMKQ0hFQ0tTVU1fVU5ORUNFU1NBUlkgY2hl Y2sgZm9yIHR4LiIpIGFuZCByZXZlcnRpbmcgY29tbWl0IDhkNjNiZWU2NDNmMQooIm5ldDogYXZv aWQgc2tiX3dhcm5fYmFkX29mZmxvYWQgZmFsc2UgcG9zaXRpdmVzIG9uIFVGTyIpLgoKKCopIFRv IGF2b2lkIGhhdmluZyB0byBicmluZyBiYWNrIHNrYl9zaGluZm8oc2tiKS0+aXA2X2ZyYWdfaWQs CmlwdjZfcHJveHlfc2VsZWN0X2lkZW50IGlzIGNoYW5nZWQgdG8gcmV0dXJuIGEgX19iZTMyIGFu ZCB0aGlzIGlzCmFzc2lnbmVkIGRpcmVjdGx5IHRvIHRoZSBmcmFnX2hkci4gQWxzbywgU0tCX0dT T19VRFAgaXMgaW5zZXJ0ZWQKYXQgdGhlIGVuZCBvZiB0aGUgZW51bSB0byBtaW5pbWl6ZSBjb2Rl IGNodXJuLgoKVGVzdGVkCiAgQm9vdGVkIGEgdjQuMTMgZ3Vlc3Qga2VybmVsIHdpdGggUUVNVS4g T24gYSBob3N0IGtlcm5lbCBiZWZvcmUgdGhpcwogIHBhdGNoIGBldGh0b29sIC1rIGV0aDBgIHNo b3dzIFVGTyBkaXNhYmxlZC4gQWZ0ZXIgdGhlIHBhdGNoLCBpdCBpcwogIGVuYWJsZWQsIHNhbWUg YXMgb24gYSB2NC4xMyBob3N0IGtlcm5lbC4KCiAgQSBVRk8gcGFja2V0IHNlbnQgZnJvbSB0aGUg Z3Vlc3QgYXBwZWFycyBvbiB0aGUgdGFwIGRldmljZToKICAgIGhvc3Q6CiAgICAgIG5jIC1sIC1w IC11IDgwMDAgJgogICAgICB0Y3BkdW1wIC1uIC1pIHRhcDAKCiAgICBndWVzdDoKICAgICAgZGQg aWY9L2Rldi96ZXJvIG9mPXBheWxvYWQudHh0IGJzPTEgY291bnQ9MjAwMAogICAgICBuYyAtdSAx OTIuMTYuMS4xIDgwMDAgPCBwYXlsb2FkLnR4dAoKICBEaXJlY3QgdGFwIHRvIHRhcCB0cmFuc21p c3Npb24gb2YgVklSVElPX05FVF9IRFJfR1NPX1VEUCBzdWNjZWVkcywKICBwYWNrZXRzIGFycml2 aW5nIGZyYWdtZW50ZWQ6CgogICAgLi93aXRoX3RhcF9wYWlyLnNoIC4vdGFwX3NlbmRfdWZvIHRh cDAgdGFwMQogICAgKGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3dkZWJydWlqL2tlcm5lbHRvb2xz L3RyZWUvbWFzdGVyL3Rlc3RzKQoKQ2hhbmdlcwogIHYxIC0+IHYyCiAgICAtIHNpbXBsaWZpZWQg c2V0X29mZmxvYWQgY2hhbmdlIChyZXZpZXcgY29tbWVudCkKICAgIC0gZG9jdW1lbnRlZCB0ZXN0 IHByb2NlZHVyZQoKTGluazogaHR0cDovL2xrbWwua2VybmVsLm9yZy9yLzxDQUY9eUQtTHVVZUR1 TDlZV1BKRDl5a09aMFFDak5lem5QRHI2d2hxWjlOR01ORjEyTXdAbWFpbC5nbWFpbC5jb20+CkZp eGVzOiBmYjY1MmZkZmU4MzcgKCJtYWN2bGFuL21hY3Z0YXA6IFJlbW92ZSBORVRJRl9GX1VGTyBh ZHZlcnRpc2VtZW50LiIpClJlcG9ydGVkLWJ5OiBNaWNoYWwgS3ViZWNlayA8bWt1YmVjZWtAc3Vz ZS5jej4KU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29t PgpBY2tlZC1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L3RhcC5jICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9uZXQvdHVuLmMgICAgICAgICAg ICAgICB8ICAyICsKIGluY2x1ZGUvbGludXgvbmV0ZGV2X2ZlYXR1cmVzLmggfCAgNCArLQogaW5j bHVkZS9saW51eC9uZXRkZXZpY2UuaCAgICAgICB8ICAxICsKIGluY2x1ZGUvbGludXgvc2tidWZm LmggICAgICAgICAgfCAgMiArCiBpbmNsdWRlL2xpbnV4L3ZpcnRpb19uZXQuaCAgICAgIHwgIDUg KystCiBpbmNsdWRlL25ldC9pcHY2LmggICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9jb3JlL2Rl di5jICAgICAgICAgICAgICAgICAgfCAgMyArLQogbmV0L2lwdjQvYWZfaW5ldC5jICAgICAgICAg ICAgICB8IDEyICsrKysrLQogbmV0L2lwdjQvdWRwX29mZmxvYWQuYyAgICAgICAgICB8IDQ5ICsr KysrKysrKysrKysrKysrKysrKystLQogbmV0L2lwdjYvb3V0cHV0X2NvcmUuYyAgICAgICAgICB8 ICA2ICstLQogbmV0L2lwdjYvdWRwX29mZmxvYWQuYyAgICAgICAgICB8IDg1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBuZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGgu YyAgICAgIHwgMTQgKysrKysrKwogbmV0L29wZW52c3dpdGNoL2Zsb3cuYyAgICAgICAgICB8ICA2 ICsrLQogbmV0L3NjaGVkL2FjdF9jc3VtLmMgICAgICAgICAgICB8ICA2ICsrKwogMTUgZmlsZXMg Y2hhbmdlZCwgMTgxIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3RhcC5jIGIvZHJpdmVycy9uZXQvdGFwLmMKaW5kZXggZTRjNmM3OGZhYjNi Li5iZmQ0ZGVkMGE1M2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RhcC5jCisrKyBiL2RyaXZl cnMvbmV0L3RhcC5jCkBAIC0xMDgwLDcgKzEwODAsNyBAQCBzdGF0aWMgbG9uZyB0YXBfaW9jdGwo c3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCiAJY2FzZSBUVU5TRVRPRkZMT0FE OgogCQkvKiBsZXQgdGhlIHVzZXIgY2hlY2sgZm9yIGZ1dHVyZSBmbGFncyAqLwogCQlpZiAoYXJn ICYgfihUVU5fRl9DU1VNIHwgVFVOX0ZfVFNPNCB8IFRVTl9GX1RTTzYgfAotCQkJICAgIFRVTl9G X1RTT19FQ04pKQorCQkJICAgIFRVTl9GX1RTT19FQ04gfCBUVU5fRl9VRk8pKQogCQkJcmV0dXJu IC1FSU5WQUw7CiAKIAkJcnRubF9sb2NrKCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90dW4u YyBiL2RyaXZlcnMvbmV0L3R1bi5jCmluZGV4IGQwNmY4ODMxMmUxZS4uYzkxYjExMGYyMTY5IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC90dW4uYworKysgYi9kcml2ZXJzL25ldC90dW4uYwpAQCAt MjE1Nyw2ICsyMTU3LDggQEAgc3RhdGljIGludCBzZXRfb2ZmbG9hZChzdHJ1Y3QgdHVuX3N0cnVj dCAqdHVuLCB1bnNpZ25lZCBsb25nIGFyZykKIAkJCQlmZWF0dXJlcyB8PSBORVRJRl9GX1RTTzY7 CiAJCQlhcmcgJj0gfihUVU5fRl9UU080fFRVTl9GX1RTTzYpOwogCQl9CisKKwkJYXJnICY9IH5U VU5fRl9VRk87CiAJfQogCiAJLyogVGhpcyBnaXZlcyB0aGUgdXNlciBhIHdheSB0byB0ZXN0IGZv ciBuZXcgZmVhdHVyZXMgaW4gZnV0dXJlIGJ5CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25l dGRldl9mZWF0dXJlcy5oIGIvaW5jbHVkZS9saW51eC9uZXRkZXZfZmVhdHVyZXMuaAppbmRleCBk YzhiNDg5NmI3N2IuLmIxYjBjYTdjY2IyYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRk ZXZfZmVhdHVyZXMuaAorKysgYi9pbmNsdWRlL2xpbnV4L25ldGRldl9mZWF0dXJlcy5oCkBAIC01 NCw4ICs1NCw5IEBAIGVudW0gewogCU5FVElGX0ZfR1NPX1RVTk5FTF9SRU1DU1VNX0JJVCwgLyog Li4uIFRVTk5FTCB3aXRoIFRTTyAmIFJFTUNTVU0gKi8KIAlORVRJRl9GX0dTT19TQ1RQX0JJVCwJ CS8qIC4uLiBTQ1RQIGZyYWdtZW50YXRpb24gKi8KIAlORVRJRl9GX0dTT19FU1BfQklULAkJLyog Li4uIEVTUCB3aXRoIFRTTyAqLworCU5FVElGX0ZfR1NPX1VEUF9CSVQsCQkvKiAuLi4gVUZPLCBk ZXByZWNhdGVkIGV4Y2VwdCB0dW50YXAgKi8KIAkvKiovTkVUSUZfRl9HU09fTEFTVCA9CQkvKiBs YXN0IGJpdCwgc2VlIEdTT19NQVNLICovCi0JCU5FVElGX0ZfR1NPX0VTUF9CSVQsCisJCU5FVElG X0ZfR1NPX1VEUF9CSVQsCiAKIAlORVRJRl9GX0ZDT0VfQ1JDX0JJVCwJCS8qIEZDb0UgQ1JDMzIg Ki8KIAlORVRJRl9GX1NDVFBfQ1JDX0JJVCwJCS8qIFNDVFAgY2hlY2tzdW0gb2ZmbG9hZCAqLwpA QCAtMTMyLDYgKzEzMyw3IEBAIGVudW0gewogI2RlZmluZSBORVRJRl9GX0dTT19UVU5ORUxfUkVN Q1NVTSBfX05FVElGX0YoR1NPX1RVTk5FTF9SRU1DU1VNKQogI2RlZmluZSBORVRJRl9GX0dTT19T Q1RQCV9fTkVUSUZfRihHU09fU0NUUCkKICNkZWZpbmUgTkVUSUZfRl9HU09fRVNQCQlfX05FVElG X0YoR1NPX0VTUCkKKyNkZWZpbmUgTkVUSUZfRl9HU09fVURQCQlfX05FVElGX0YoR1NPX1VEUCkK ICNkZWZpbmUgTkVUSUZfRl9IV19WTEFOX1NUQUdfRklMVEVSIF9fTkVUSUZfRihIV19WTEFOX1NU QUdfRklMVEVSKQogI2RlZmluZSBORVRJRl9GX0hXX1ZMQU5fU1RBR19SWAlfX05FVElGX0YoSFdf VkxBTl9TVEFHX1JYKQogI2RlZmluZSBORVRJRl9GX0hXX1ZMQU5fU1RBR19UWAlfX05FVElGX0Yo SFdfVkxBTl9TVEFHX1RYKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaCBi L2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKaW5kZXggMmVhYWM3ZDc1YWY0Li40NmJmN2NjN2Q1 ZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKKysrIGIvaW5jbHVkZS9s aW51eC9uZXRkZXZpY2UuaApAQCAtNDEwMSw2ICs0MTAxLDcgQEAgc3RhdGljIGlubGluZSBib29s IG5ldF9nc29fb2sobmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMsIGludCBnc29fdHlwZSkKIAlC VUlMRF9CVUdfT04oU0tCX0dTT19UVU5ORUxfUkVNQ1NVTSAhPSAoTkVUSUZfRl9HU09fVFVOTkVM X1JFTUNTVU0gPj4gTkVUSUZfRl9HU09fU0hJRlQpKTsKIAlCVUlMRF9CVUdfT04oU0tCX0dTT19T Q1RQICAgICE9IChORVRJRl9GX0dTT19TQ1RQID4+IE5FVElGX0ZfR1NPX1NISUZUKSk7CiAJQlVJ TERfQlVHX09OKFNLQl9HU09fRVNQICE9IChORVRJRl9GX0dTT19FU1AgPj4gTkVUSUZfRl9HU09f U0hJRlQpKTsKKwlCVUlMRF9CVUdfT04oU0tCX0dTT19VRFAgIT0gKE5FVElGX0ZfR1NPX1VEUCA+ PiBORVRJRl9GX0dTT19TSElGVCkpOwogCiAJcmV0dXJuIChmZWF0dXJlcyAmIGZlYXR1cmUpID09 IGZlYXR1cmU7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oIGIvaW5jbHVk ZS9saW51eC9za2J1ZmYuaAppbmRleCBkNDQ4YTQ4MDRhZWEuLjA1MWUwOTM5ZWMxOSAxMDA2NDQK LS0tIGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5o CkBAIC01NjksNiArNTY5LDggQEAgZW51bSB7CiAJU0tCX0dTT19TQ1RQID0gMSA8PCAxNCwKIAog CVNLQl9HU09fRVNQID0gMSA8PCAxNSwKKworCVNLQl9HU09fVURQID0gMSA8PCAxNiwKIH07CiAK ICNpZiBCSVRTX1BFUl9MT05HID4gMzIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdmlydGlv X25ldC5oIGIvaW5jbHVkZS9saW51eC92aXJ0aW9fbmV0LmgKaW5kZXggMjEwMDM0Yzg5NmUzLi5m MTQ0MjE2ZmViYzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdmlydGlvX25ldC5oCisrKyBi L2luY2x1ZGUvbGludXgvdmlydGlvX25ldC5oCkBAIC05LDcgKzksNyBAQCBzdGF0aWMgaW5saW5l IGludCB2aXJ0aW9fbmV0X2hkcl90b19za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJY29u c3Qgc3RydWN0IHZpcnRpb19uZXRfaGRyICpoZHIsCiAJCQkJCWJvb2wgbGl0dGxlX2VuZGlhbikK IHsKLQl1bnNpZ25lZCBzaG9ydCBnc29fdHlwZSA9IDA7CisJdW5zaWduZWQgaW50IGdzb190eXBl ID0gMDsKIAogCWlmIChoZHItPmdzb190eXBlICE9IFZJUlRJT19ORVRfSERSX0dTT19OT05FKSB7 CiAJCXN3aXRjaCAoaGRyLT5nc29fdHlwZSAmIH5WSVJUSU9fTkVUX0hEUl9HU09fRUNOKSB7CkBA IC0xOSw2ICsxOSw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IHZpcnRpb19uZXRfaGRyX3RvX3NrYihz dHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQljYXNlIFZJUlRJT19ORVRfSERSX0dTT19UQ1BWNjoKIAkJ CWdzb190eXBlID0gU0tCX0dTT19UQ1BWNjsKIAkJCWJyZWFrOworCQljYXNlIFZJUlRJT19ORVRf SERSX0dTT19VRFA6CisJCQlnc29fdHlwZSA9IFNLQl9HU09fVURQOworCQkJYnJlYWs7CiAJCWRl ZmF1bHQ6CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQv aXB2Ni5oIGIvaW5jbHVkZS9uZXQvaXB2Ni5oCmluZGV4IDZlYWM1Y2Y4ZjFlNi4uMzVlOWRkMmQx OGJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcHY2LmgKKysrIGIvaW5jbHVkZS9uZXQvaXB2 Ni5oCkBAIC03MjcsNyArNzI3LDcgQEAgc3RhdGljIGlubGluZSBpbnQgaXB2Nl9hZGRyX2RpZmYo Y29uc3Qgc3RydWN0IGluNl9hZGRyICphMSwgY29uc3Qgc3RydWN0IGluNl9hZGQKIF9fYmUzMiBp cHY2X3NlbGVjdF9pZGVudChzdHJ1Y3QgbmV0ICpuZXQsCiAJCQkgY29uc3Qgc3RydWN0IGluNl9h ZGRyICpkYWRkciwKIAkJCSBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKnNhZGRyKTsKLXZvaWQgaXB2 Nl9wcm94eV9zZWxlY3RfaWRlbnQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KTsKK19fYmUzMiBpcHY2X3Byb3h5X3NlbGVjdF9pZGVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBza19idWZmICpza2IpOwogCiBpbnQgaXA2X2RzdF9ob3BsaW1pdChzdHJ1Y3QgZHN0X2VudHJ5 ICpkc3QpOwogCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5jCmlu ZGV4IDExNTk2YTMwMmEyNi4uMjczNTdmYzE3MzBiIDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYu YworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtMjczNSw3ICsyNzM1LDggQEAgRVhQT1JUX1NZTUJP TChza2JfbWFjX2dzb19zZWdtZW50KTsKIHN0YXRpYyBpbmxpbmUgYm9vbCBza2JfbmVlZHNfY2hl Y2soc3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCB0eF9wYXRoKQogewogCWlmICh0eF9wYXRoKQot CQlyZXR1cm4gc2tiLT5pcF9zdW1tZWQgIT0gQ0hFQ0tTVU1fUEFSVElBTDsKKwkJcmV0dXJuIHNr Yi0+aXBfc3VtbWVkICE9IENIRUNLU1VNX1BBUlRJQUwgJiYKKwkJICAgICAgIHNrYi0+aXBfc3Vt bWVkICE9IENIRUNLU1VNX1VOTkVDRVNTQVJZOwogCiAJcmV0dXJuIHNrYi0+aXBfc3VtbWVkID09 IENIRUNLU1VNX05PTkU7CiB9CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9hZl9pbmV0LmMgYi9uZXQv aXB2NC9hZl9pbmV0LmMKaW5kZXggZTMxMTA4ZTVlZjc5Li5iOWQ5YTJiODc5MmMgMTAwNjQ0Ci0t LSBhL25ldC9pcHY0L2FmX2luZXQuYworKysgYi9uZXQvaXB2NC9hZl9pbmV0LmMKQEAgLTEyMjEs OSArMTIyMSwxMCBAQCBFWFBPUlRfU1lNQk9MKGluZXRfc2tfcmVidWlsZF9oZWFkZXIpOwogc3Ry dWN0IHNrX2J1ZmYgKmluZXRfZ3NvX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkg bmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpCiB7Ci0JYm9vbCBmaXhlZGlkID0gZmFsc2UsIGdz b19wYXJ0aWFsLCBlbmNhcDsKKwlib29sIHVkcGZyYWcgPSBmYWxzZSwgZml4ZWRpZCA9IGZhbHNl LCBnc29fcGFydGlhbCwgZW5jYXA7CiAJc3RydWN0IHNrX2J1ZmYgKnNlZ3MgPSBFUlJfUFRSKC1F SU5WQUwpOwogCWNvbnN0IHN0cnVjdCBuZXRfb2ZmbG9hZCAqb3BzOworCXVuc2lnbmVkIGludCBv ZmZzZXQgPSAwOwogCXN0cnVjdCBpcGhkciAqaXBoOwogCWludCBwcm90bywgdG90X2xlbjsKIAlp bnQgbmhvZmY7CkBAIC0xMjU4LDYgKzEyNTksNyBAQCBzdHJ1Y3Qgc2tfYnVmZiAqaW5ldF9nc29f c2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXNlZ3MgPSBFUlJfUFRSKC1FUFJPVE9OT1NV UFBPUlQpOwogCiAJaWYgKCFza2ItPmVuY2Fwc3VsYXRpb24gfHwgZW5jYXApIHsKKwkJdWRwZnJh ZyA9ICEhKHNrYl9zaGluZm8oc2tiKS0+Z3NvX3R5cGUgJiBTS0JfR1NPX1VEUCk7CiAJCWZpeGVk aWQgPSAhIShza2Jfc2hpbmZvKHNrYiktPmdzb190eXBlICYgU0tCX0dTT19UQ1BfRklYRURJRCk7 CiAKIAkJLyogZml4ZWQgSUQgaXMgaW52YWxpZCBpZiBERiBiaXQgaXMgbm90IHNldCAqLwpAQCAt MTI3Nyw3ICsxMjc5LDEzIEBAIHN0cnVjdCBza19idWZmICppbmV0X2dzb19zZWdtZW50KHN0cnVj dCBza19idWZmICpza2IsCiAJc2tiID0gc2VnczsKIAlkbyB7CiAJCWlwaCA9IChzdHJ1Y3QgaXBo ZHIgKikoc2tiX21hY19oZWFkZXIoc2tiKSArIG5ob2ZmKTsKLQkJaWYgKHNrYl9pc19nc28oc2ti KSkgeworCQlpZiAodWRwZnJhZykgeworCQkJaXBoLT5mcmFnX29mZiA9IGh0b25zKG9mZnNldCA+ PiAzKTsKKwkJCWlmIChza2ItPm5leHQpCisJCQkJaXBoLT5mcmFnX29mZiB8PSBodG9ucyhJUF9N Rik7CisJCQlvZmZzZXQgKz0gc2tiLT5sZW4gLSBuaG9mZiAtIGlobDsKKwkJCXRvdF9sZW4gPSBz a2ItPmxlbiAtIG5ob2ZmOworCQl9IGVsc2UgaWYgKHNrYl9pc19nc28oc2tiKSkgewogCQkJaWYg KCFmaXhlZGlkKSB7CiAJCQkJaXBoLT5pZCA9IGh0b25zKGlkKTsKIAkJCQlpZCArPSBza2Jfc2hp bmZvKHNrYiktPmdzb19zZWdzOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwX29mZmxvYWQuYyBi L25ldC9pcHY0L3VkcF9vZmZsb2FkLmMKaW5kZXggZTM2MGQ1NWJlNTU1Li4wMTgwMWI3N2JkMGQg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcF9vZmZsb2FkLmMKKysrIGIvbmV0L2lwdjQvdWRwX29m ZmxvYWQuYwpAQCAtMTg3LDE2ICsxODcsNTcgQEAgc3RydWN0IHNrX2J1ZmYgKnNrYl91ZHBfdHVu bmVsX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIH0KIEVYUE9SVF9TWU1CT0woc2tiX3Vk cF90dW5uZWxfc2VnbWVudCk7CiAKLXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqdWRwNF90dW5uZWxf c2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotCQkJCQkgICBuZXRkZXZfZmVhdHVyZXNfdCBm ZWF0dXJlcykKK3N0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqdWRwNF91Zm9fZnJhZ21lbnQoc3RydWN0 IHNrX2J1ZmYgKnNrYiwKKwkJCQkJIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKQogewogCXN0 cnVjdCBza19idWZmICpzZWdzID0gRVJSX1BUUigtRUlOVkFMKTsKKwl1bnNpZ25lZCBpbnQgbXNz OworCV9fd3N1bSBjc3VtOworCXN0cnVjdCB1ZHBoZHIgKnVoOworCXN0cnVjdCBpcGhkciAqaXBo OwogCiAJaWYgKHNrYi0+ZW5jYXBzdWxhdGlvbiAmJgogCSAgICAoc2tiX3NoaW5mbyhza2IpLT5n c29fdHlwZSAmCi0JICAgICAoU0tCX0dTT19VRFBfVFVOTkVMfFNLQl9HU09fVURQX1RVTk5FTF9D U1VNKSkpCisJICAgICAoU0tCX0dTT19VRFBfVFVOTkVMfFNLQl9HU09fVURQX1RVTk5FTF9DU1VN KSkpIHsKIAkJc2VncyA9IHNrYl91ZHBfdHVubmVsX3NlZ21lbnQoc2tiLCBmZWF0dXJlcywgZmFs c2UpOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yo c3RydWN0IHVkcGhkcikpKQorCQlnb3RvIG91dDsKKworCW1zcyA9IHNrYl9zaGluZm8oc2tiKS0+ Z3NvX3NpemU7CisJaWYgKHVubGlrZWx5KHNrYi0+bGVuIDw9IG1zcykpCisJCWdvdG8gb3V0Owor CisJLyogRG8gc29mdHdhcmUgVUZPLiBDb21wbGV0ZSBhbmQgZmlsbCBpbiB0aGUgVURQIGNoZWNr c3VtIGFzCisJICogSFcgY2Fubm90IGRvIGNoZWNrc3VtIG9mIFVEUCBwYWNrZXRzIHNlbnQgYXMg bXVsdGlwbGUKKwkgKiBJUCBmcmFnbWVudHMuCisJICovCiAKKwl1aCA9IHVkcF9oZHIoc2tiKTsK KwlpcGggPSBpcF9oZHIoc2tiKTsKKworCXVoLT5jaGVjayA9IDA7CisJY3N1bSA9IHNrYl9jaGVj a3N1bShza2IsIDAsIHNrYi0+bGVuLCAwKTsKKwl1aC0+Y2hlY2sgPSB1ZHBfdjRfY2hlY2soc2ti LT5sZW4sIGlwaC0+c2FkZHIsIGlwaC0+ZGFkZHIsIGNzdW0pOworCWlmICh1aC0+Y2hlY2sgPT0g MCkKKwkJdWgtPmNoZWNrID0gQ1NVTV9NQU5HTEVEXzA7CisKKwlza2ItPmlwX3N1bW1lZCA9IENI RUNLU1VNX1VOTkVDRVNTQVJZOworCisJLyogSWYgdGhlcmUgaXMgbm8gb3V0ZXIgaGVhZGVyIHdl IGNhbiBmYWtlIGEgY2hlY2tzdW0gb2ZmbG9hZAorCSAqIGR1ZSB0byB0aGUgZmFjdCB0aGF0IHdl IGhhdmUgYWxyZWFkeSBkb25lIHRoZSBjaGVja3N1bSBpbgorCSAqIHNvZnR3YXJlIHByaW9yIHRv IHNlZ21lbnRpbmcgdGhlIGZyYW1lLgorCSAqLworCWlmICghc2tiLT5lbmNhcF9oZHJfY3N1bSkK KwkJZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19DU1VNOworCisJLyogRnJhZ21lbnQgdGhlIHNrYi4g SVAgaGVhZGVycyBvZiB0aGUgZnJhZ21lbnRzIGFyZSB1cGRhdGVkIGluCisJICogaW5ldF9nc29f c2VnbWVudCgpCisJICovCisJc2VncyA9IHNrYl9zZWdtZW50KHNrYiwgZmVhdHVyZXMpOworb3V0 OgogCXJldHVybiBzZWdzOwogfQogCkBAIC0zMzAsNyArMzcxLDcgQEAgc3RhdGljIGludCB1ZHA0 X2dyb19jb21wbGV0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmhvZmYpCiAKIHN0YXRpYyBj b25zdCBzdHJ1Y3QgbmV0X29mZmxvYWQgdWRwdjRfb2ZmbG9hZCA9IHsKIAkuY2FsbGJhY2tzID0g ewotCQkuZ3NvX3NlZ21lbnQgPSB1ZHA0X3R1bm5lbF9zZWdtZW50LAorCQkuZ3NvX3NlZ21lbnQg PSB1ZHA0X3Vmb19mcmFnbWVudCwKIAkJLmdyb19yZWNlaXZlICA9CXVkcDRfZ3JvX3JlY2VpdmUs CiAJCS5ncm9fY29tcGxldGUgPQl1ZHA0X2dyb19jb21wbGV0ZSwKIAl9LApkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvb3V0cHV0X2NvcmUuYyBiL25ldC9pcHY2L291dHB1dF9jb3JlLmMKaW5kZXggYTMz OGJiYzMzY2YzLi40ZmU3YzkwOTYyZGQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L291dHB1dF9jb3Jl LmMKKysrIGIvbmV0L2lwdjYvb3V0cHV0X2NvcmUuYwpAQCAtMzksNyArMzksNyBAQCBzdGF0aWMg dTMyIF9faXB2Nl9zZWxlY3RfaWRlbnQoc3RydWN0IG5ldCAqbmV0LCB1MzIgaGFzaHJuZCwKICAq CiAgKiBUaGUgbmV0d29yayBoZWFkZXIgbXVzdCBiZSBzZXQgYmVmb3JlIGNhbGxpbmcgdGhpcy4K ICAqLwotdm9pZCBpcHY2X3Byb3h5X3NlbGVjdF9pZGVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBza19idWZmICpza2IpCitfX2JlMzIgaXB2Nl9wcm94eV9zZWxlY3RfaWRlbnQoc3RydWN0IG5l dCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0YXRpYyB1MzIgaXA2X3Byb3h5X2lk ZW50c19oYXNocm5kIF9fcmVhZF9tb3N0bHk7CiAJc3RydWN0IGluNl9hZGRyIGJ1ZlsyXTsKQEAg LTUxLDE0ICs1MSwxNCBAQCB2b2lkIGlwdjZfcHJveHlfc2VsZWN0X2lkZW50KHN0cnVjdCBuZXQg Km5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCQkgICBvZmZzZXRvZihzdHJ1Y3QgaXB2Nmhk ciwgc2FkZHIpLAogCQkJCSAgIHNpemVvZihidWYpLCBidWYpOwogCWlmICghYWRkcnMpCi0JCXJl dHVybjsKKwkJcmV0dXJuIDA7CiAKIAluZXRfZ2V0X3JhbmRvbV9vbmNlKCZpcDZfcHJveHlfaWRl bnRzX2hhc2hybmQsCiAJCQkgICAgc2l6ZW9mKGlwNl9wcm94eV9pZGVudHNfaGFzaHJuZCkpOwog CiAJaWQgPSBfX2lwdjZfc2VsZWN0X2lkZW50KG5ldCwgaXA2X3Byb3h5X2lkZW50c19oYXNocm5k LAogCQkJCSAmYWRkcnNbMV0sICZhZGRyc1swXSk7Ci0Jc2tiX3NoaW5mbyhza2IpLT5pcDZfZnJh Z19pZCA9IGh0b25sKGlkKTsKKwlyZXR1cm4gaHRvbmwoaWQpOwogfQogRVhQT1JUX1NZTUJPTF9H UEwoaXB2Nl9wcm94eV9zZWxlY3RfaWRlbnQpOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHBf b2ZmbG9hZC5jIGIvbmV0L2lwdjYvdWRwX29mZmxvYWQuYwppbmRleCA0NTVmZDRlMzkzMzMuLmEw Zjg5YWQ3NmY5ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvdWRwX29mZmxvYWQuYworKysgYi9uZXQv aXB2Ni91ZHBfb2ZmbG9hZC5jCkBAIC0xNywxNSArMTcsOTQgQEAKICNpbmNsdWRlIDxuZXQvaXA2 X2NoZWNrc3VtLmg+CiAjaW5jbHVkZSAiaXA2X29mZmxvYWQuaCIKIAotc3RhdGljIHN0cnVjdCBz a19idWZmICp1ZHA2X3R1bm5lbF9zZWdtZW50KHN0cnVjdCBza19idWZmICpza2IsCi0JCQkJCSAg IG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKQorc3RhdGljIHN0cnVjdCBza19idWZmICp1ZHA2 X3Vmb19mcmFnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCQkgbmV0ZGV2X2ZlYXR1cmVz X3QgZmVhdHVyZXMpCiB7CiAJc3RydWN0IHNrX2J1ZmYgKnNlZ3MgPSBFUlJfUFRSKC1FSU5WQUwp OworCXVuc2lnbmVkIGludCBtc3M7CisJdW5zaWduZWQgaW50IHVuZnJhZ19pcDZobGVuLCB1bmZy YWdfbGVuOworCXN0cnVjdCBmcmFnX2hkciAqZnB0cjsKKwl1OCAqcGFja2V0X3N0YXJ0LCAqcHJl dmhkcjsKKwl1OCBuZXh0aGRyOworCXU4IGZyYWdfaGRyX3N6ID0gc2l6ZW9mKHN0cnVjdCBmcmFn X2hkcik7CisJX193c3VtIGNzdW07CisJaW50IHRubF9obGVuOworCWludCBlcnI7CisKKwltc3Mg PSBza2Jfc2hpbmZvKHNrYiktPmdzb19zaXplOworCWlmICh1bmxpa2VseShza2ItPmxlbiA8PSBt c3MpKQorCQlnb3RvIG91dDsKIAogCWlmIChza2ItPmVuY2Fwc3VsYXRpb24gJiYgc2tiX3NoaW5m byhza2IpLT5nc29fdHlwZSAmCiAJICAgIChTS0JfR1NPX1VEUF9UVU5ORUx8U0tCX0dTT19VRFBf VFVOTkVMX0NTVU0pKQogCQlzZWdzID0gc2tiX3VkcF90dW5uZWxfc2VnbWVudChza2IsIGZlYXR1 cmVzLCB0cnVlKTsKKwllbHNlIHsKKwkJY29uc3Qgc3RydWN0IGlwdjZoZHIgKmlwdjZoOworCQlz dHJ1Y3QgdWRwaGRyICp1aDsKKworCQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3Ry dWN0IHVkcGhkcikpKQorCQkJZ290byBvdXQ7CisKKwkJLyogRG8gc29mdHdhcmUgVUZPLiBDb21w bGV0ZSBhbmQgZmlsbCBpbiB0aGUgVURQIGNoZWNrc3VtIGFzIEhXIGNhbm5vdAorCQkgKiBkbyBj aGVja3N1bSBvZiBVRFAgcGFja2V0cyBzZW50IGFzIG11bHRpcGxlIElQIGZyYWdtZW50cy4KKwkJ ICovCisKKwkJdWggPSB1ZHBfaGRyKHNrYik7CisJCWlwdjZoID0gaXB2Nl9oZHIoc2tiKTsKKwor CQl1aC0+Y2hlY2sgPSAwOworCQljc3VtID0gc2tiX2NoZWNrc3VtKHNrYiwgMCwgc2tiLT5sZW4s IDApOworCQl1aC0+Y2hlY2sgPSB1ZHBfdjZfY2hlY2soc2tiLT5sZW4sICZpcHY2aC0+c2FkZHIs CisJCQkJCSAgJmlwdjZoLT5kYWRkciwgY3N1bSk7CisJCWlmICh1aC0+Y2hlY2sgPT0gMCkKKwkJ CXVoLT5jaGVjayA9IENTVU1fTUFOR0xFRF8wOworCisJCXNrYi0+aXBfc3VtbWVkID0gQ0hFQ0tT VU1fVU5ORUNFU1NBUlk7CisKKwkJLyogSWYgdGhlcmUgaXMgbm8gb3V0ZXIgaGVhZGVyIHdlIGNh biBmYWtlIGEgY2hlY2tzdW0gb2ZmbG9hZAorCQkgKiBkdWUgdG8gdGhlIGZhY3QgdGhhdCB3ZSBo YXZlIGFscmVhZHkgZG9uZSB0aGUgY2hlY2tzdW0gaW4KKwkJICogc29mdHdhcmUgcHJpb3IgdG8g c2VnbWVudGluZyB0aGUgZnJhbWUuCisJCSAqLworCQlpZiAoIXNrYi0+ZW5jYXBfaGRyX2NzdW0p CisJCQlmZWF0dXJlcyB8PSBORVRJRl9GX0hXX0NTVU07CisKKwkJLyogQ2hlY2sgaWYgdGhlcmUg aXMgZW5vdWdoIGhlYWRyb29tIHRvIGluc2VydCBmcmFnbWVudCBoZWFkZXIuICovCisJCXRubF9o bGVuID0gc2tiX3RubF9oZWFkZXJfbGVuKHNrYik7CisJCWlmIChza2ItPm1hY19oZWFkZXIgPCAo dG5sX2hsZW4gKyBmcmFnX2hkcl9zeikpIHsKKwkJCWlmIChnc29fcHNrYl9leHBhbmRfaGVhZChz a2IsIHRubF9obGVuICsgZnJhZ19oZHJfc3opKQorCQkJCWdvdG8gb3V0OworCQl9CisKKwkJLyog RmluZCB0aGUgdW5mcmFnbWVudGFibGUgaGVhZGVyIGFuZCBzaGlmdCBpdCBsZWZ0IGJ5IGZyYWdf aGRyX3N6CisJCSAqIGJ5dGVzIHRvIGluc2VydCBmcmFnbWVudCBoZWFkZXIuCisJCSAqLworCQll cnIgPSBpcDZfZmluZF8xc3RmcmFnb3B0KHNrYiwgJnByZXZoZHIpOworCQlpZiAoZXJyIDwgMCkK KwkJCXJldHVybiBFUlJfUFRSKGVycik7CisJCXVuZnJhZ19pcDZobGVuID0gZXJyOworCQluZXh0 aGRyID0gKnByZXZoZHI7CisJCSpwcmV2aGRyID0gTkVYVEhEUl9GUkFHTUVOVDsKKwkJdW5mcmFn X2xlbiA9IChza2JfbmV0d29ya19oZWFkZXIoc2tiKSAtIHNrYl9tYWNfaGVhZGVyKHNrYikpICsK KwkJCSAgICAgdW5mcmFnX2lwNmhsZW4gKyB0bmxfaGxlbjsKKwkJcGFja2V0X3N0YXJ0ID0gKHU4 ICopIHNrYi0+aGVhZCArIFNLQl9HU09fQ0Ioc2tiKS0+bWFjX29mZnNldDsKKwkJbWVtbW92ZShw YWNrZXRfc3RhcnQtZnJhZ19oZHJfc3osIHBhY2tldF9zdGFydCwgdW5mcmFnX2xlbik7CisKKwkJ U0tCX0dTT19DQihza2IpLT5tYWNfb2Zmc2V0IC09IGZyYWdfaGRyX3N6OworCQlza2ItPm1hY19o ZWFkZXIgLT0gZnJhZ19oZHJfc3o7CisJCXNrYi0+bmV0d29ya19oZWFkZXIgLT0gZnJhZ19oZHJf c3o7CisKKwkJZnB0ciA9IChzdHJ1Y3QgZnJhZ19oZHIgKikoc2tiX25ldHdvcmtfaGVhZGVyKHNr YikgKyB1bmZyYWdfaXA2aGxlbik7CisJCWZwdHItPm5leHRoZHIgPSBuZXh0aGRyOworCQlmcHRy LT5yZXNlcnZlZCA9IDA7CisJCWZwdHItPmlkZW50aWZpY2F0aW9uID0gaXB2Nl9wcm94eV9zZWxl Y3RfaWRlbnQoZGV2X25ldChza2ItPmRldiksIHNrYik7CisKKwkJLyogRnJhZ21lbnQgdGhlIHNr Yi4gaXB2NiBoZWFkZXIgYW5kIHRoZSByZW1haW5pbmcgZmllbGRzIG9mIHRoZQorCQkgKiBmcmFn bWVudCBoZWFkZXIgYXJlIHVwZGF0ZWQgaW4gaXB2Nl9nc29fc2VnbWVudCgpCisJCSAqLworCQlz ZWdzID0gc2tiX3NlZ21lbnQoc2tiLCBmZWF0dXJlcyk7CisJfQogCitvdXQ6CiAJcmV0dXJuIHNl Z3M7CiB9CiAKQEAgLTc1LDcgKzE1NCw3IEBAIHN0YXRpYyBpbnQgdWRwNl9ncm9fY29tcGxldGUo c3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5ob2ZmKQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG5l dF9vZmZsb2FkIHVkcHY2X29mZmxvYWQgPSB7CiAJLmNhbGxiYWNrcyA9IHsKLQkJLmdzb19zZWdt ZW50CT0JdWRwNl90dW5uZWxfc2VnbWVudCwKKwkJLmdzb19zZWdtZW50CT0JdWRwNl91Zm9fZnJh Z21lbnQsCiAJCS5ncm9fcmVjZWl2ZQk9CXVkcDZfZ3JvX3JlY2VpdmUsCiAJCS5ncm9fY29tcGxl dGUJPQl1ZHA2X2dyb19jb21wbGV0ZSwKIAl9LApkaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNo L2RhdGFwYXRoLmMgYi9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYwppbmRleCBjM2FlYzYyMjdj OTEuLjI5NDQ0NGJiMDc1YyAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMK KysrIGIvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMKQEAgLTMzNSw2ICszMzUsOCBAQCBzdGF0 aWMgaW50IHF1ZXVlX2dzb19wYWNrZXRzKHN0cnVjdCBkYXRhcGF0aCAqZHAsIHN0cnVjdCBza19i dWZmICpza2IsCiAJCQkgICAgIGNvbnN0IHN0cnVjdCBkcF91cGNhbGxfaW5mbyAqdXBjYWxsX2lu Zm8sCiAJCQkJIHVpbnQzMl90IGN1dGxlbikKIHsKKwl1bnNpZ25lZCBzaG9ydCBnc29fdHlwZSA9 IHNrYl9zaGluZm8oc2tiKS0+Z3NvX3R5cGU7CisJc3RydWN0IHN3X2Zsb3dfa2V5IGxhdGVyX2tl eTsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2VncywgKm5za2I7CiAJaW50IGVycjsKIApAQCAtMzQ1LDkg KzM0NywyMSBAQCBzdGF0aWMgaW50IHF1ZXVlX2dzb19wYWNrZXRzKHN0cnVjdCBkYXRhcGF0aCAq ZHAsIHN0cnVjdCBza19idWZmICpza2IsCiAJaWYgKHNlZ3MgPT0gTlVMTCkKIAkJcmV0dXJuIC1F SU5WQUw7CiAKKwlpZiAoZ3NvX3R5cGUgJiBTS0JfR1NPX1VEUCkgeworCQkvKiBUaGUgaW5pdGlh bCBmbG93IGtleSBleHRyYWN0ZWQgYnkgb3ZzX2Zsb3dfa2V5X2V4dHJhY3QoKQorCQkgKiBpbiB0 aGlzIGNhc2UgaXMgZm9yIGEgZmlyc3QgZnJhZ21lbnQsIHNvIHdlIG5lZWQgdG8KKwkJICogcHJv cGVybHkgbWFyayBsYXRlciBmcmFnbWVudHMuCisJCSAqLworCQlsYXRlcl9rZXkgPSAqa2V5Owor CQlsYXRlcl9rZXkuaXAuZnJhZyA9IE9WU19GUkFHX1RZUEVfTEFURVI7CisJfQorCiAJLyogUXVl dWUgYWxsIG9mIHRoZSBzZWdtZW50cy4gKi8KIAlza2IgPSBzZWdzOwogCWRvIHsKKwkJaWYgKGdz b190eXBlICYgU0tCX0dTT19VRFAgJiYgc2tiICE9IHNlZ3MpCisJCQlrZXkgPSAmbGF0ZXJfa2V5 OworCiAJCWVyciA9IHF1ZXVlX3VzZXJzcGFjZV9wYWNrZXQoZHAsIHNrYiwga2V5LCB1cGNhbGxf aW5mbywgY3V0bGVuKTsKIAkJaWYgKGVycikKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvbmV0L29w ZW52c3dpdGNoL2Zsb3cuYyBiL25ldC9vcGVudnN3aXRjaC9mbG93LmMKaW5kZXggOGM5NGNlZjI1 YTcyLi5jZmI2NTJhNGUwMDcgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC9mbG93LmMKKysr IGIvbmV0L29wZW52c3dpdGNoL2Zsb3cuYwpAQCAtNTg0LDcgKzU4NCw4IEBAIHN0YXRpYyBpbnQg a2V5X2V4dHJhY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkp CiAJCQlrZXktPmlwLmZyYWcgPSBPVlNfRlJBR19UWVBFX0xBVEVSOwogCQkJcmV0dXJuIDA7CiAJ CX0KLQkJaWYgKG5oLT5mcmFnX29mZiAmIGh0b25zKElQX01GKSkKKwkJaWYgKG5oLT5mcmFnX29m ZiAmIGh0b25zKElQX01GKSB8fAorCQkJc2tiX3NoaW5mbyhza2IpLT5nc29fdHlwZSAmIFNLQl9H U09fVURQKQogCQkJa2V5LT5pcC5mcmFnID0gT1ZTX0ZSQUdfVFlQRV9GSVJTVDsKIAkJZWxzZQog CQkJa2V5LT5pcC5mcmFnID0gT1ZTX0ZSQUdfVFlQRV9OT05FOwpAQCAtNzAwLDYgKzcwMSw5IEBA IHN0YXRpYyBpbnQga2V5X2V4dHJhY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zs b3dfa2V5ICprZXkpCiAKIAkJaWYgKGtleS0+aXAuZnJhZyA9PSBPVlNfRlJBR19UWVBFX0xBVEVS KQogCQkJcmV0dXJuIDA7CisJCWlmIChza2Jfc2hpbmZvKHNrYiktPmdzb190eXBlICYgU0tCX0dT T19VRFApCisJCQlrZXktPmlwLmZyYWcgPSBPVlNfRlJBR19UWVBFX0ZJUlNUOworCiAJCS8qIFRy YW5zcG9ydCBsYXllci4gKi8KIAkJaWYgKGtleS0+aXAucHJvdG8gPT0gTkVYVEhEUl9UQ1ApIHsK IAkJCWlmICh0Y3BoZHJfb2soc2tiKSkgewpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9jc3Vt LmMgYi9uZXQvc2NoZWQvYWN0X2NzdW0uYwppbmRleCAxYzQwY2FhZGNmZjkuLmQ4MzZmOTk4MTE3 YiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9jc3VtLmMKKysrIGIvbmV0L3NjaGVkL2FjdF9j c3VtLmMKQEAgLTIyOSw2ICsyMjksOSBAQCBzdGF0aWMgaW50IHRjZl9jc3VtX2lwdjRfdWRwKHN0 cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVkIGludCBpaGwsCiAJY29uc3Qgc3RydWN0IGlwaGRy ICppcGg7CiAJdTE2IHVsOwogCisJaWYgKHNrYl9pc19nc28oc2tiKSAmJiBza2Jfc2hpbmZvKHNr YiktPmdzb190eXBlICYgU0tCX0dTT19VRFApCisJCXJldHVybiAxOworCiAJLyoKIAkgKiBTdXBw b3J0IGJvdGggVURQIGFuZCBVRFBMSVRFIGNoZWNrc3VtIGFsZ29yaXRobXMsIERvbid0IHVzZQog CSAqIHVkcGgtPmxlbiB0byBnZXQgdGhlIHJlYWwgbGVuZ3RoIHdpdGhvdXQgYW55IHByb3RvY29s IGNoZWNrLApAQCAtMjgyLDYgKzI4NSw5IEBAIHN0YXRpYyBpbnQgdGNmX2NzdW1faXB2Nl91ZHAo c3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IGlobCwKIAljb25zdCBzdHJ1Y3QgaXB2 NmhkciAqaXA2aDsKIAl1MTYgdWw7CiAKKwlpZiAoc2tiX2lzX2dzbyhza2IpICYmIHNrYl9zaGlu Zm8oc2tiKS0+Z3NvX3R5cGUgJiBTS0JfR1NPX1VEUCkKKwkJcmV0dXJuIDE7CisKIAkvKgogCSAq IFN1cHBvcnQgYm90aCBVRFAgYW5kIFVEUExJVEUgY2hlY2tzdW0gYWxnb3JpdGhtcywgRG9uJ3Qg dXNlCiAJICogdWRwaC0+bGVuIHRvIGdldCB0aGUgcmVhbCBsZW5ndGggd2l0aG91dCBhbnkgcHJv dG9jb2wgY2hlY2ssCi0tIAoyLjE0LjMKCgpGcm9tIGNlY2JlYzU1NmNjN2QzNmY4NmJhNTE4MTYz MzYwNGFhOTg2OWY4MGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJHdXN0YXZvIEEu IFIuIFNpbHZhIiA8Z2Fyc2lsdmFAZW1iZWRkZWRvci5jb20+CkRhdGU6IFNhdCwgMjUgTm92IDIw MTcgMTM6MTQ6NDAgLTA2MDAKU3ViamVjdDogW1BBVENIIDMxLzMzXSBuZXQ6IG9wZW52c3dpdGNo OiBkYXRhcGF0aDogZml4IGRhdGEgdHlwZSBpbgogcXVldWVfZ3NvX3BhY2tldHMKClsgVXBzdHJl YW0gY29tbWl0IDI3MzQxNjZlODk2MzljOTczYzZlMTI1YWM4YmNmYzJkOWRiNzJiNzAgXQoKZ3Nv X3R5cGUgaXMgYmVpbmcgdXNlZCBpbiBiaW5hcnkgQU5EIG9wZXJhdGlvbnMgdG9nZXRoZXIgd2l0 aCBTS0JfR1NPX1VEUC4KVGhlIGlzc3VlIGlzIHRoYXQgdmFyaWFibGUgZ3NvX3R5cGUgaXMgb2Yg dHlwZSB1bnNpZ25lZCBzaG9ydCBhbmQKU0tCX0dTT19VRFAgZXhwYW5kcyB0byBtb3JlIHRoYW4g MTYgYml0czoKClNLQl9HU09fVURQID0gMSA8PCAxNgoKdGhpcyBtYWtlcyBhbnkgYmluYXJ5IEFO RCBvcGVyYXRpb24gYmV0d2VlbiBnc29fdHlwZSBhbmQgU0tCX0dTT19VRFAgdG8KYmUgYWx3YXlz IHplcm8sIGhlbmNlIG1ha2luZyBzb21lIGNvZGUgdW5yZWFjaGFibGUgYW5kIGxpa2VseSBjYXVz aW5nCnVuZGVzaXJlZCBiZWhhdmlvci4KCkZpeCB0aGlzIGJ5IGNoYW5naW5nIHRoZSBkYXRhIHR5 cGUgb2YgdmFyaWFibGUgZ3NvX3R5cGUgdG8gdW5zaWduZWQgaW50LgoKQWRkcmVzc2VzLUNvdmVy aXR5LUlEOiAxNDYyMjIzCkZpeGVzOiAwYzE5Zjg0NmQ1ODIgKCJuZXQ6IGFjY2VwdCBVRk8gZGF0 YWdyYW1zIGZyb20gdHVudGFwIGFuZCBwYWNrZXQiKQpTaWduZWQtb2ZmLWJ5OiBHdXN0YXZvIEEu IFIuIFNpbHZhIDxnYXJzaWx2YUBlbWJlZGRlZG9yLmNvbT4KQWNrZWQtYnk6IFdpbGxlbSBkZSBC cnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMgYi9uZXQvb3BlbnZzd2l0Y2gvZGF0 YXBhdGguYwppbmRleCAyOTQ0NDRiYjA3NWMuLjM2M2RkOTA0NzMzZCAxMDA2NDQKLS0tIGEvbmV0 L29wZW52c3dpdGNoL2RhdGFwYXRoLmMKKysrIGIvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMK QEAgLTMzNSw3ICszMzUsNyBAQCBzdGF0aWMgaW50IHF1ZXVlX2dzb19wYWNrZXRzKHN0cnVjdCBk YXRhcGF0aCAqZHAsIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkgICAgIGNvbnN0IHN0cnVjdCBk cF91cGNhbGxfaW5mbyAqdXBjYWxsX2luZm8sCiAJCQkJIHVpbnQzMl90IGN1dGxlbikKIHsKLQl1 bnNpZ25lZCBzaG9ydCBnc29fdHlwZSA9IHNrYl9zaGluZm8oc2tiKS0+Z3NvX3R5cGU7CisJdW5z aWduZWQgaW50IGdzb190eXBlID0gc2tiX3NoaW5mbyhza2IpLT5nc29fdHlwZTsKIAlzdHJ1Y3Qg c3dfZmxvd19rZXkgbGF0ZXJfa2V5OwogCXN0cnVjdCBza19idWZmICpzZWdzLCAqbnNrYjsKIAlp bnQgZXJyOwotLSAKMi4xNC4zCgoKRnJvbSAxOTRhYjIwNTVmNjI2MjY3MjY1NmI0M2ZiMjNjMmQ0 NjU2NTdhODJjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8 amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KRGF0ZTogTW9uLCAyNyBOb3YgMjAxNyAxMTox MTo0MSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzIvMzNdIGNsc19icGY6IGRvbid0IGRlY3JlbWVu dCBuZXQncyByZWZjb3VudCB3aGVuIG9mZmxvYWQKIGZhaWxzCgpbIFVwc3RyZWFtIGNvbW1pdCAy NTQxNWNlYzUwMmExMjMyYjE5ZmZmYzg1NDY1ODgyYjE5YTkwNDE1IF0KCldoZW4gY2xzX2JwZiBv ZmZsb2FkIHdhcyBhZGRlZCBpdCBzZWVtZWQgbGlrZSBhIGdvb2QgaWRlYSB0bwpjYWxsIGNsc19i cGZfZGVsZXRlX3Byb2coKSBpbnN0ZWFkIG9mIGV4dGVuZGluZyB0aGUgZXJyb3IKaGFuZGxpbmcg cGF0aCwgc2luY2UgdGhlIHNvZnR3YXJlIHN0YXRlIGlzIGZ1bGx5IGluaXRpYWxpemVkCmF0IHRo YXQgcG9pbnQuICBUaGlzIGhhbmRsaW5nIG9mIGVycm9ycyB3aXRob3V0IGp1bXBpbmcgdG8KdGhl IGVuZCBvZiB0aGUgZnVuY3Rpb24gaXMgZXJyb3IgcHJvbmUsIGFzIHByb3ZlbiBieSBsYXRlcgpj b21taXQgbWlzc2luZyB0aGF0IGV4dHJhIGNhbGwgdG8gX19jbHNfYnBmX2RlbGV0ZV9wcm9nKCku CgpfX2Nsc19icGZfZGVsZXRlX3Byb2coKSBpcyBub3cgZXhwZWN0ZWQgdG8gYmUgaW52b2tlZCB3 aXRoCmEgcmVmZXJlbmNlIG9uIGV4dHMtPm5ldCBvciB0aGUgZmllbGQgemVyb2VkIG91dC4gIFRo ZSBjYWxsCm9uIHRoZSBvZmZsb2FkJ3MgZXJyb3IgcGF0Y2ggZG9lcyBub3QgZnVsbGZpbCB0aGlz IHJlcXVpcmVtZW50LApsZWFkaW5nIHRvIGVhY2ggZXJyb3Igc3RlYWxpbmcgYSByZWZlcmVuY2Ug b24gbmV0IG5hbWVzcGFjZS4KCkNyZWF0ZSBhIGZ1bmN0aW9uIHVuZG9pbmcgd2hhdCBjbHNfYnBm X3NldF9wYXJtcygpIGRpZCBhbmQKdXNlIGl0IGZyb20gX19jbHNfYnBmX2RlbGV0ZV9wcm9nKCkg YW5kIHRoZSBlcnJvciBwYXRoLgoKRml4ZXM6IGFhZTJjMzVlYzg5MiAoImNsc19icGY6IHVzZSB0 Y2ZfZXh0c19nZXRfbmV0KCkgYmVmb3JlIGNhbGxfcmN1KCkiKQpTaWduZWQtb2ZmLWJ5OiBKYWt1 YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNp bW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9tZS5jb20+CkFja2VkLWJ5OiBEYW5pZWwg Qm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlv dS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xzX2JwZi5jIHwgMjEgKysrKysrKysr KysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xzX2JwZi5jIGIvbmV0L3NjaGVkL2Nsc19i cGYuYwppbmRleCA5OTBlYjRkOTFkNTQuLjNhNDk5NTMwZjMyMSAxMDA2NDQKLS0tIGEvbmV0L3Nj aGVkL2Nsc19icGYuYworKysgYi9uZXQvc2NoZWQvY2xzX2JwZi5jCkBAIC0yNDYsMTEgKzI0Niw4 IEBAIHN0YXRpYyBpbnQgY2xzX2JwZl9pbml0KHN0cnVjdCB0Y2ZfcHJvdG8gKnRwKQogCXJldHVy biAwOwogfQogCi1zdGF0aWMgdm9pZCBfX2Nsc19icGZfZGVsZXRlX3Byb2coc3RydWN0IGNsc19i cGZfcHJvZyAqcHJvZykKK3N0YXRpYyB2b2lkIGNsc19icGZfZnJlZV9wYXJtcyhzdHJ1Y3QgY2xz X2JwZl9wcm9nICpwcm9nKQogewotCXRjZl9leHRzX2Rlc3Ryb3koJnByb2ctPmV4dHMpOwotCXRj Zl9leHRzX3B1dF9uZXQoJnByb2ctPmV4dHMpOwotCiAJaWYgKGNsc19icGZfaXNfZWJwZihwcm9n KSkKIAkJYnBmX3Byb2dfcHV0KHByb2ctPmZpbHRlcik7CiAJZWxzZQpAQCAtMjU4LDYgKzI1NSwx NCBAQCBzdGF0aWMgdm9pZCBfX2Nsc19icGZfZGVsZXRlX3Byb2coc3RydWN0IGNsc19icGZfcHJv ZyAqcHJvZykKIAogCWtmcmVlKHByb2ctPmJwZl9uYW1lKTsKIAlrZnJlZShwcm9nLT5icGZfb3Bz KTsKK30KKworc3RhdGljIHZvaWQgX19jbHNfYnBmX2RlbGV0ZV9wcm9nKHN0cnVjdCBjbHNfYnBm X3Byb2cgKnByb2cpCit7CisJdGNmX2V4dHNfZGVzdHJveSgmcHJvZy0+ZXh0cyk7CisJdGNmX2V4 dHNfcHV0X25ldCgmcHJvZy0+ZXh0cyk7CisKKwljbHNfYnBmX2ZyZWVfcGFybXMocHJvZyk7CiAJ a2ZyZWUocHJvZyk7CiB9CiAKQEAgLTUwOSwxMCArNTE0LDggQEAgc3RhdGljIGludCBjbHNfYnBm X2NoYW5nZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICppbl9za2IsCiAJCWdvdG8g ZXJyb3V0OwogCiAJcmV0ID0gY2xzX2JwZl9vZmZsb2FkKHRwLCBwcm9nLCBvbGRwcm9nKTsKLQlp ZiAocmV0KSB7Ci0JCV9fY2xzX2JwZl9kZWxldGVfcHJvZyhwcm9nKTsKLQkJcmV0dXJuIHJldDsK LQl9CisJaWYgKHJldCkKKwkJZ290byBlcnJvdXRfcGFybXM7CiAKIAlpZiAoIXRjX2luX2h3KHBy b2ctPmdlbl9mbGFncykpCiAJCXByb2ctPmdlbl9mbGFncyB8PSBUQ0FfQ0xTX0ZMQUdTX05PVF9J Tl9IVzsKQEAgLTUyOSw2ICs1MzIsOCBAQCBzdGF0aWMgaW50IGNsc19icGZfY2hhbmdlKHN0cnVj dCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwKIAkqYXJnID0gcHJvZzsKIAlyZXR1 cm4gMDsKIAorZXJyb3V0X3Bhcm1zOgorCWNsc19icGZfZnJlZV9wYXJtcyhwcm9nKTsKIGVycm91 dDoKIAl0Y2ZfZXh0c19kZXN0cm95KCZwcm9nLT5leHRzKTsKIAlrZnJlZShwcm9nKTsKLS0gCjIu MTQuMwoKCkZyb20gMjU3MTgxZTA3MGQ0ZjM4MGE0NTJmYWNjY2NiNGFiNDM0OTE0MDc3ZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29t PgpEYXRlOiBTdW4sIDI2IE5vdiAyMDE3IDIwOjU2OjA3ICswODAwClN1YmplY3Q6IFtQQVRDSCAz My8zM10gc2N0cDogdXNlIHJpZ2h0IG1lbWJlciBhcyB0aGUgcGFyYW0gb2YKIGxpc3RfZm9yX2Vh Y2hfZW50cnkKClsgVXBzdHJlYW0gY29tbWl0IGE4ZGQzOTc5MDNhNmU1NzE1N2Y2MjY1OTExZjdk MzU2ODEzNjQ0MjcgXQoKQ29tbWl0IGQwNGFkZjFiMzU1MSAoInNjdHA6IHJlc2V0IG93bmVyIHNr IGZvciBkYXRhIGNodW5rcyBvbiBvdXQgcXVldWVzCndoZW4gbWlncmF0aW5nIGEgc29jayIpIG1h ZGUgYSBtaXN0YWtlIHRoYXQgdXNpbmcgJ2xpc3QnIGFzIHRoZSBwYXJhbSBvZgpsaXN0X2Zvcl9l YWNoX2VudHJ5IHRvIHRyYXZlcnNlIHRoZSByZXRyYW5zbWl0LCBzYWNrZWQgYW5kIGFiYW5kb25l ZApxdWV1ZXMsIHdoaWxlIGNodW5rcyBhcmUgdXNpbmcgJ3RyYW5zbWl0dGVkX2xpc3QnIHRvIGxp bmsgaW50byB0aGVzZQpxdWV1ZXMuCgpJdCBjb3VsZCBjYXVzZSBOVUxMIGRlcmVmZXJlbmNlIHBh bmljIGlmIHRoZXJlIGFyZSBjaHVua3MgaW4gYW55IG9mIHRoZXNlCnF1ZXVlcyB3aGVuIHBlZWxp bmcgb2ZmIG9uZSBhc29jLgoKU28gdXNlIHRoZSBjaHVuayBtZW1iZXIgJ3RyYW5zbWl0dGVkX2xp c3QnIGluc3RlYWQgaW4gdGhpcyBwYXRjaC4KCkZpeGVzOiBkMDRhZGYxYjM1NTEgKCJzY3RwOiBy ZXNldCBvd25lciBzayBmb3IgZGF0YSBjaHVua3Mgb24gb3V0IHF1ZXVlcyB3aGVuIG1pZ3JhdGlu ZyBhIHNvY2siKQpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ CkFja2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWls LmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv c2N0cC9zb2NrZXQuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3Nj dHAvc29ja2V0LmMKaW5kZXggNmY0NWQxNzEzNDUyLi5mNDc1NzExZWJjNjEgMTAwNjQ0Ci0tLSBh L25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC0xODcsMTMgKzE4 NywxMyBAQCBzdGF0aWMgdm9pZCBzY3RwX2Zvcl9lYWNoX3R4X2RhdGFjaHVuayhzdHJ1Y3Qgc2N0 cF9hc3NvY2lhdGlvbiAqYXNvYywKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShjaHVuaywgJnQtPnRy YW5zbWl0dGVkLCB0cmFuc21pdHRlZF9saXN0KQogCQkJY2IoY2h1bmspOwogCi0JbGlzdF9mb3Jf ZWFjaF9lbnRyeShjaHVuaywgJnEtPnJldHJhbnNtaXQsIGxpc3QpCisJbGlzdF9mb3JfZWFjaF9l bnRyeShjaHVuaywgJnEtPnJldHJhbnNtaXQsIHRyYW5zbWl0dGVkX2xpc3QpCiAJCWNiKGNodW5r KTsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkoY2h1bmssICZxLT5zYWNrZWQsIGxpc3QpCisJbGlz dF9mb3JfZWFjaF9lbnRyeShjaHVuaywgJnEtPnNhY2tlZCwgdHJhbnNtaXR0ZWRfbGlzdCkKIAkJ Y2IoY2h1bmspOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjaHVuaywgJnEtPmFiYW5kb25lZCwg bGlzdCkKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNodW5rLCAmcS0+YWJhbmRvbmVkLCB0cmFuc21p dHRlZF9saXN0KQogCQljYihjaHVuayk7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNodW5rLCAm cS0+b3V0X2NodW5rX2xpc3QsIGxpc3QpCi0tIAoyLjE0LjMKCg== ----Next_Part(Tue_Dec_12_10_44_45_2017_308)----