From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([23.128.96.9]:43536 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726353AbeIKLM4 (ORCPT ); Tue, 11 Sep 2018 07:12:56 -0400 Received: from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net [74.93.104.98]) (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 E9844145BF3F7 for ; Mon, 10 Sep 2018 23:15:10 -0700 (PDT) Date: Mon, 10 Sep 2018 23:15:08 -0700 (PDT) Message-Id: <20180910.231508.1509937455618590033.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_Sep_10_23_15_08_2018_191)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Mon_Sep_10_23_15_08_2018_191)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.17 and v4.18 -stable, respectively. Thanks! ----Next_Part(Mon_Sep_10_23_15_08_2018_191)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_417.mbox" RnJvbSAzZTM3MmI3OTY1OWU2ZmY3NmMzMTkwOWFlYmY3ZWFhMDJiOGU5YzBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4K RGF0ZTogTW9uLCAzIFNlcCAyMDE4IDExOjA4OjE1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMS8y OV0gYWN0X2lmZTogZml4IGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlCgpbIFVwc3RyZWFtIGNv bW1pdCA2ZDc4NGYxNjI1ZWE2ODc4M2NjMWZiMTdkZThmNmNkM2UxNjYwYzNmIF0KCkltbWVkaWF0 ZWx5IGFmdGVyIG1vZHVsZV9wdXQoKSwgdXNlciBjb3VsZCBkZWxldGUgdGhpcwptb2R1bGUsIHNv IGUtPm9wcyBjb3VsZCBiZSBhbHJlYWR5IGZyZWVkIGJlZm9yZSB3ZSBjYWxsCmUtPm9wcy0+cmVs ZWFzZSgpLgoKRml4IHRoaXMgYnkgbW92aW5nIG1vZHVsZV9wdXQoKSBhZnRlciBvcHMtPnJlbGVh c2UoKS4KCkZpeGVzOiBlZjY5ODBiNmJlY2IgKCJpbnRyb2R1Y2UgSUZFIGFjdGlvbiIpCkNjOiBK YW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdh bmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfaWZlLmMgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvc2NoZWQvYWN0X2lmZS5jIGIvbmV0L3NjaGVkL2FjdF9pZmUuYwppbmRleCAyMGQ3 ZDM2YjJmYzkuLjIwMWU1OTliYWVkOSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9pZmUuYwor KysgYi9uZXQvc2NoZWQvYWN0X2lmZS5jCkBAIC0zOTMsNyArMzkzLDYgQEAgc3RhdGljIHZvaWQg X3RjZl9pZmVfY2xlYW51cChzdHJ1Y3QgdGNfYWN0aW9uICphKQogCXN0cnVjdCB0Y2ZfbWV0YV9p bmZvICplLCAqbjsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShlLCBuLCAmaWZlLT5tZXRh bGlzdCwgbWV0YWxpc3QpIHsKLQkJbW9kdWxlX3B1dChlLT5vcHMtPm93bmVyKTsKIAkJbGlzdF9k ZWwoJmUtPm1ldGFsaXN0KTsKIAkJaWYgKGUtPm1ldGF2YWwpIHsKIAkJCWlmIChlLT5vcHMtPnJl bGVhc2UpCkBAIC00MDEsNiArNDAwLDcgQEAgc3RhdGljIHZvaWQgX3RjZl9pZmVfY2xlYW51cChz dHJ1Y3QgdGNfYWN0aW9uICphKQogCQkJZWxzZQogCQkJCWtmcmVlKGUtPm1ldGF2YWwpOwogCQl9 CisJCW1vZHVsZV9wdXQoZS0+b3BzLT5vd25lcik7CiAJCWtmcmVlKGUpOwogCX0KIH0KLS0gCjIu MTMuNgoKCkZyb20gNDYxYThhMmRkZDg3NzM5ZjVkMjAzMTE0ZDY3OWRiMTQ1OTRiNDNhYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpEYXRlOiBXZWQsIDIyIEF1ZyAyMDE4IDEzOjMwOjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwMi8yOV0gaXB2NDogdGNwOiBzZW5kIHplcm8gSVBJRCBmb3IgUlNUIGFuZCBBQ0sgc2VudCBp bgogU1lOLVJFQ1YgYW5kIFRJTUUtV0FJVCBzdGF0ZQoKWyBVcHN0cmVhbSBjb21taXQgNDMxMjgw ZWViZWQ5ZjUwNzk1NTNkYWYwMDMwMTEwOTc3NjNlNzFmZCBdCgp0Y3AgdXNlcyBwZXItY3B1IChh bmQgcGVyIG5hbWVzcGFjZSkgc29ja2V0cyAobmV0LT5pcHY0LnRjcF9zaykgaW50ZXJuYWxseQp0 byBzZW5kIHNvbWUgY29udHJvbCBwYWNrZXRzLgoKMSkgUlNUIHBhY2tldHMsIHRocm91Z2ggdGNw X3Y0X3NlbmRfcmVzZXQoKQoyKSBBQ0sgcGFja2V0cyBpbiBTWU4tUkVDViBhbmQgVElNRS1XQUlU IHN0YXRlLCB0aHJvdWdoIHRjcF92NF9zZW5kX2FjaygpCgpUaGVzZSBwYWNrZXRzIGFzc2VydCBJ UF9ERiwgYW5kIGFsc28gdXNlIHRoZSBoYXNoZWQgSVAgaWRlbnQgZ2VuZXJhdG9yCnRvIHByb3Zp ZGUgYW4gSVB2NCBJRCBudW1iZXIuCgpHZW9mZiBBbGV4YW5kZXIgcmVwb3J0ZWQgdGhpcyBjb3Vs ZCBiZSB1c2VkIHRvIGJ1aWxkIG9mZi1wYXRoIGF0dGFja3MuCgpUaGVzZSBwYWNrZXRzIHNob3Vs ZCBub3QgYmUgZnJhZ21lbnRlZCwgc2luY2UgdGhlaXIgc2l6ZSBpcyBzbWFsbGVyIHRoYW4KSVBW NF9NSU5fTVRVLiBPbmx5IHNvbWUgdHVubmVsZWQgcGF0aHMgY291bGQgZXZlbnR1YWxseSBoYXZl IHRvIGZyYWdtZW50LApyZWdhcmRsZXNzIG9mIGlubmVyIElQSUQuCgpXZSByZWFsbHkgY2FuIHVz ZSB6ZXJvIElQSUQsIHRvIGFkZHJlc3MgdGhlIGZsYXcsIGFuZCBhcyBhIGJvbnVzLAphdm9pZCBh IGNvdXBsZSBvZiBhdG9taWMgb3BlcmF0aW9ucyBpbiBpcF9pZGVudHNfcmVzZXJ2ZSgpCgpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5 OiBHZW9mZiBBbGV4YW5kZXIgPGFsZXhhbmRnQGNzLnVubS5lZHU+ClRlc3RlZC1ieTogR2VvZmYg QWxleGFuZGVyIDxhbGV4YW5kZ0Bjcy51bm0uZWR1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2lwdjQuYyB8IDYg KysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvdGNwX2lwdjQuYyBiL25ldC9pcHY0L3RjcF9pcHY0LmMKaW5kZXggZWY4Y2QwZjdkYjg5 Li43YWM3ZGM1NGI4MDAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pcHY0LmMKKysrIGIvbmV0 L2lwdjQvdGNwX2lwdjQuYwpAQCAtMjQ5OCw2ICsyNDk4LDEyIEBAIHN0YXRpYyBpbnQgX19uZXRf aW5pdCB0Y3Bfc2tfaW5pdChzdHJ1Y3QgbmV0ICpuZXQpCiAJCWlmIChyZXMpCiAJCQlnb3RvIGZh aWw7CiAJCXNvY2tfc2V0X2ZsYWcoc2ssIFNPQ0tfVVNFX1dSSVRFX1FVRVVFKTsKKworCQkvKiBQ bGVhc2UgZW5mb3JjZSBJUF9ERiBhbmQgSVBJRD09MCBmb3IgUlNUIGFuZAorCQkgKiBBQ0sgc2Vu dCBpbiBTWU4tUkVDViBhbmQgVElNRS1XQUlUIHN0YXRlLgorCQkgKi8KKwkJaW5ldF9zayhzaykt PnBtdHVkaXNjID0gSVBfUE1UVURJU0NfRE87CisKIAkJKnBlcl9jcHVfcHRyKG5ldC0+aXB2NC50 Y3Bfc2ssIGNwdSkgPSBzazsKIAl9CiAKLS0gCjIuMTMuNgoKCkZyb20gNmViMDkxYjJhMmY0ZjNh Nzc4OWI3ZmUwNTRkODBjMzNjZWM2N2U5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RG91ZyBCZXJnZXIgPG9wZW5kbWJAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI4IEF1ZyAyMDE4IDEy OjMzOjE1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMy8yOV0gbmV0OiBiY21nZW5ldDogdXNlIE1B QyBsaW5rIHN0YXR1cyBmb3IgZml4ZWQgcGh5CgpbIFVwc3RyZWFtIGNvbW1pdCBjM2MzOTdjMWYx NmM1MTYwMWEzZmFjNGZlMGM2M2FkOGFhODVhOTA0IF0KCldoZW4gdXNpbmcgdGhlIGZpeGVkIFBI WSB3aXRoIEdFTkVUIChlLmcuIE1PQ0EpIHRoZSBQSFkgbGluawpzdGF0dXMgY2FuIGJlIGRldGVy bWluZWQgZnJvbSB0aGUgaW50ZXJuYWwgbGluayBzdGF0dXMgY2FwdHVyZWQKYnkgdGhlIE1BQy4g VGhpcyBhbGxvd3MgdGhlIFBIWSBzdGF0ZSBtYWNoaW5lIHRvIHVzZSB0aGUgY29ycmVjdApsaW5r IHN0YXRlIHdpdGggdGhlIGZpeGVkIFBIWSBldmVuIGlmIE1BQyBsaW5rIGV2ZW50IGludGVycnVw dHMKYXJlIG1pc3NlZCB3aGVuIHRoZSBuZXQgZGV2aWNlIGlzIG9wZW5lZC4KCkZpeGVzOiA4ZDg4 YzZlYmIzNGMgKCJuZXQ6IGJjbWdlbmV0OiBlbmFibGUgTW9DQSBsaW5rIHN0YXRlIGNoYW5nZSBk ZXRlY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBEb3VnIEJlcmdlciA8b3BlbmRtYkBnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmggfCAgMyArKysKIGRy aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jICAgfCAxMCArKysrKysr Ky0tCiAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQu aCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmgKaW5kZXgg Yjc3M2JjMDdlZGY3Li4xNGI0OTYxMmFhODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuaApAQCAtMTg2LDYgKzE4Niw5IEBAIHN0cnVjdCBiY21n ZW5ldF9taWJfY291bnRlcnMgewogI2RlZmluZSBVTUFDX01BQzEJCQkweDAxMAogI2RlZmluZSBV TUFDX01BWF9GUkFNRV9MRU4JCTB4MDE0CiAKKyNkZWZpbmUgVU1BQ19NT0RFCQkJMHg0NAorI2Rl ZmluZSAgTU9ERV9MSU5LX1NUQVRVUwkJKDEgPDwgNSkKKwogI2RlZmluZSBVTUFDX0VFRV9DVFJM CQkJMHgwNjQKICNkZWZpbmUgIEVOX0xQSV9SWF9QQVVTRQkJKDEgPDwgMCkKICNkZWZpbmUgIEVO X0xQSV9UWF9QRkMJCQkoMSA8PCAxKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9n ZW5ldC9iY21taWkuYwppbmRleCA1MzMzMjc0YTI4M2MuLjQyNDFhZTkyOGQ0YSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMKQEAgLTExNSw4ICsxMTUs MTQgQEAgdm9pZCBiY21nZW5ldF9taWlfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHN0 YXRpYyBpbnQgYmNtZ2VuZXRfZml4ZWRfcGh5X2xpbmtfdXBkYXRlKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsCiAJCQkJCSAgc3RydWN0IGZpeGVkX3BoeV9zdGF0dXMgKnN0YXR1cykKIHsKLQlpZiAo ZGV2ICYmIGRldi0+cGh5ZGV2ICYmIHN0YXR1cykKLQkJc3RhdHVzLT5saW5rID0gZGV2LT5waHlk ZXYtPmxpbms7CisJc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXY7CisJdTMyIHJlZzsKKworCWlm IChkZXYgJiYgZGV2LT5waHlkZXYgJiYgc3RhdHVzKSB7CisJCXByaXYgPSBuZXRkZXZfcHJpdihk ZXYpOworCQlyZWcgPSBiY21nZW5ldF91bWFjX3JlYWRsKHByaXYsIFVNQUNfTU9ERSk7CisJCXN0 YXR1cy0+bGluayA9ICEhKHJlZyAmIE1PREVfTElOS19TVEFUVVMpOworCX0KIAogCXJldHVybiAw OwogfQotLSAKMi4xMy42CgoKRnJvbSBkOTZkNzIzYTE0MWNhODU5MmIzMzc3ZGIxNDA4YzUxYWQy NjE2ZmM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbnNzaSBIYW5udWxhIDxhbnNz aS5oYW5udWxhQGJpdHdpc2UuZmk+CkRhdGU6IFRodSwgMjMgQXVnIDIwMTggMTA6NDU6MjIgKzAz MDAKU3ViamVjdDogW1BBVENIIDA0LzI5XSBuZXQ6IG1hY2I6IGRvIG5vdCBkaXNhYmxlIE1ESU8g YnVzIGF0IG9wZW4vY2xvc2UgdGltZQoKWyBVcHN0cmVhbSBjb21taXQgMGRhNzBmODA4MDI5NDc2 MDAxMTA5YjZjYjA3NjczN2JjMDRjZWEyZSBdCgptYWNiX3Jlc2V0X2h3KCkgaXMgY2FsbGVkIGZy b20gbWFjYl9jbG9zZSgpIGFuZCBpbmRpcmVjdGx5IGZyb20KbWFjYl9vcGVuKCkuIG1hY2JfcmVz ZXRfaHcoKSB6ZXJvZXMgdGhlIE5DUiByZWdpc3RlciwgaW5jbHVkaW5nIHRoZSBNUEUKKE1hbmFn ZW1lbnQgUG9ydCBFbmFibGUpIGJpdC4KClRoaXMgd2lsbCBwcmV2ZW50IGFjY2Vzc2luZyBhbnkg b3RoZXIgUEhZcyBmb3Igb3RoZXIgRXRoZXJuZXQgTUFDcyBvbgp0aGUgTURJTyBidXMsIHdoaWNo IHJlbWFpbnMgcmVnaXN0ZXJlZCBhdCBtYWNiX3Jlc2V0X2h3KCkgdGltZSwgdW50aWwKbWFjYl9p bml0X2h3KCkgaXMgY2FsbGVkIGZyb20gbWFjYl9vcGVuKCkgd2hpY2ggc2V0cyB0aGUgTVBFIGJp dCBhZ2Fpbi4KCkkuZS4gY3VycmVudGx5IHRoZSBNRElPIGJ1cyBoYXMgYSBzaG9ydCBkaXNydXB0 aW9uIGF0IG9wZW4gdGltZSBhbmQgaXMKZGlzYWJsZWQgYXQgY2xvc2UgdGltZSB1bnRpbCB0aGUg aW50ZXJmYWNlIGlzIG9wZW5lZCBhZ2Fpbi4KCkZpeCB0aGF0IGJ5IG9ubHkgdG91Y2hpbmcgdGhl IFJFIGFuZCBURSBiaXRzIHdoZW4gZW5hYmxpbmcgYW5kIGRpc2FibGluZwpSWC9UWC4KCnYyOiBN YWtlIG1hY2JfaW5pdF9odygpIE5DUiB3cml0ZSBhIHNpbmdsZSBzdGF0ZW1lbnQuCgpGaXhlczog NmMzNmE3MDc0NDM2ICgibWFjYjogVXNlIGdlbmVyaWMgUEhZIGxheWVyIikKU2lnbmVkLW9mZi1i eTogQW5zc2kgSGFubnVsYSA8YW5zc2kuaGFubnVsYUBiaXR3aXNlLmZpPgpSZXZpZXdlZC1ieTog Q2xhdWRpdSBCZXpuZWEgPGNsYXVkaXUuYmV6bmVhQG1pY3JvY2hpcC5jb20+ClRlc3RlZC1ieTog Q2xhdWRpdSBCZXpuZWEgPGNsYXVkaXUuYmV6bmVhQG1pY3JvY2hpcC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jIHwgOSArKysrKystLS0KIDEgZmlsZSBjaGFu Z2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2NhZGVuY2UvbWFjYl9tYWluLmMKaW5kZXggMDEwMzJmMzdhMzA4Li42MjYzMDAzYWFmZWYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYwpAQCAtMTk2MCwxNCArMTk2 MCwxNyBAQCBzdGF0aWMgdm9pZCBtYWNiX3Jlc2V0X2h3KHN0cnVjdCBtYWNiICpicCkKIHsKIAlz dHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWU7CiAJdW5zaWduZWQgaW50IHE7CisJdTMyIGN0cmwgPSBt YWNiX3JlYWRsKGJwLCBOQ1IpOwogCiAJLyogRGlzYWJsZSBSWCBhbmQgVFggKFhYWDogU2hvdWxk IHdlIGhhbHQgdGhlIHRyYW5zbWlzc2lvbgogCSAqIG1vcmUgZ3JhY2VmdWxseT8pCiAJICovCi0J bWFjYl93cml0ZWwoYnAsIE5DUiwgMCk7CisJY3RybCAmPSB+KE1BQ0JfQklUKFJFKSB8IE1BQ0Jf QklUKFRFKSk7CiAKIAkvKiBDbGVhciB0aGUgc3RhdHMgcmVnaXN0ZXJzIChYWFg6IFVwZGF0ZSBz dGF0cyBmaXJzdD8pICovCi0JbWFjYl93cml0ZWwoYnAsIE5DUiwgTUFDQl9CSVQoQ0xSU1RBVCkp OworCWN0cmwgfD0gTUFDQl9CSVQoQ0xSU1RBVCk7CisKKwltYWNiX3dyaXRlbChicCwgTkNSLCBj dHJsKTsKIAogCS8qIENsZWFyIGFsbCBzdGF0dXMgZmxhZ3MgKi8KIAltYWNiX3dyaXRlbChicCwg VFNSLCAtMSk7CkBAIC0yMTU1LDcgKzIxNTgsNyBAQCBzdGF0aWMgdm9pZCBtYWNiX2luaXRfaHco c3RydWN0IG1hY2IgKmJwKQogCX0KIAogCS8qIEVuYWJsZSBUWCBhbmQgUlggKi8KLQltYWNiX3dy aXRlbChicCwgTkNSLCBNQUNCX0JJVChSRSkgfCBNQUNCX0JJVChURSkgfCBNQUNCX0JJVChNUEUp KTsKKwltYWNiX3dyaXRlbChicCwgTkNSLCBtYWNiX3JlYWRsKGJwLCBOQ1IpIHwgTUFDQl9CSVQo UkUpIHwgTUFDQl9CSVQoVEUpKTsKIH0KIAogLyogVGhlIGhhc2ggYWRkcmVzcyByZWdpc3RlciBp cyA2NCBiaXRzIGxvbmcgYW5kIHRha2VzIHVwIHR3bwotLSAKMi4xMy42CgoKRnJvbSA4ODRjZTg4 OTZjNGUzOThmNDQ2ZWJjOWY2YThlODdjNzJkMjg5MmE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4KRGF0ZTogU2F0LCAyNSBB dWcgMjAxOCAyMjo1ODowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjldIG5ldDogc2NoZWQ6 IEZpeCBtZW1vcnkgZXhwb3N1cmUgZnJvbSBzaG9ydCBUQ0FfVTMyX1NFTAoKWyBVcHN0cmVhbSBj b21taXQgOThjOGYxMjVmZDhhNjI0MGVhMzQzYzFhYTUwYTFiZTkwNDc3OTFiOCBdCgpWaWEgdTMy X2NoYW5nZSgpLCBUQ0FfVTMyX1NFTCBoYXMgYW4gdW5zcGVjaWZpZWQgdHlwZSBpbiB0aGUgbmV0 bGluawpwb2xpY3ksIHNvIG1heCBsZW5ndGggaXNuJ3QgZW5mb3JjZWQsIG9ubHkgbWluaW11bS4g VGhpcyBtZWFucyBua2V5cwooZnJvbSB1c2Vyc3BhY2UpIHdhcyBiZWluZyB0cnVzdGVkIHdpdGhv dXQgY2hlY2tpbmcgdGhlIGFjdHVhbCBzaXplIG9mCm5sYV9sZW4oKSwgd2hpY2ggY291bGQgbGVh ZCB0byBhIG1lbW9yeSBvdmVyLXJlYWQsIGFuZCB1bHRpbWF0ZWx5IGFuCmV4cG9zdXJlIHZpYSBh IGNhbGwgdG8gdTMyX2R1bXAoKS4gUmVhY2hhYmlsaXR5IGlzIENBUF9ORVRfQURNSU4gd2l0aGlu CmEgbmFtZXNwYWNlLgoKUmVwb3J0ZWQtYnk6IEFsIFZpcm8gPHZpcm9AemVuaXYubGludXgub3Jn LnVrPgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQ2M6IENvbmcgV2Fu ZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpDYzogSmlyaSBQaXJrbyA8amlyaUByZXNudWxs aS51cz4KQ2M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpDYzogbmV0 ZGV2QHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBLZWVzIENvb2sgPGtlZXNjb29rQGNo cm9taXVtLm9yZz4KQWNrZWQtYnk6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvc2NoZWQvY2xzX3UzMi5jIHwgMTAgKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDgg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xz X3UzMi5jIGIvbmV0L3NjaGVkL2Nsc191MzIuYwppbmRleCBiYWM0N2I1ZDE4ZmQuLjc1MDkyYTNi ZWM1OSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc191MzIuYworKysgYi9uZXQvc2NoZWQvY2xz X3UzMi5jCkBAIC05MjksNiArOTI5LDcgQEAgc3RhdGljIGludCB1MzJfY2hhbmdlKHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwKIAlzdHJ1Y3QgbmxhdHRyICpvcHQgPSB0 Y2FbVENBX09QVElPTlNdOwogCXN0cnVjdCBubGF0dHIgKnRiW1RDQV9VMzJfTUFYICsgMV07CiAJ dTMyIGh0aWQsIGZsYWdzID0gMDsKKwlzaXplX3Qgc2VsX3NpemU7CiAJaW50IGVycjsKICNpZmRl ZiBDT05GSUdfQ0xTX1UzMl9QRVJGCiAJc2l6ZV90IHNpemU7CkBAIC0xMDkxLDggKzEwOTIsMTMg QEAgc3RhdGljIGludCB1MzJfY2hhbmdlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYg KmluX3NrYiwKIAl9CiAKIAlzID0gbmxhX2RhdGEodGJbVENBX1UzMl9TRUxdKTsKKwlzZWxfc2l6 ZSA9IHNpemVvZigqcykgKyBzaXplb2YoKnMtPmtleXMpICogcy0+bmtleXM7CisJaWYgKG5sYV9s ZW4odGJbVENBX1UzMl9TRUxdKSA8IHNlbF9zaXplKSB7CisJCWVyciA9IC1FSU5WQUw7CisJCWdv dG8gZXJyaWRyOworCX0KIAotCW4gPSBremFsbG9jKHNpemVvZigqbikgKyBzLT5ua2V5cypzaXpl b2Yoc3RydWN0IHRjX3UzMl9rZXkpLCBHRlBfS0VSTkVMKTsKKwluID0ga3phbGxvYyhvZmZzZXRv Zih0eXBlb2YoKm4pLCBzZWwpICsgc2VsX3NpemUsIEdGUF9LRVJORUwpOwogCWlmIChuID09IE5V TEwpIHsKIAkJZXJyID0gLUVOT0JVRlM7CiAJCWdvdG8gZXJyaWRyOwpAQCAtMTEwNyw3ICsxMTEz LDcgQEAgc3RhdGljIGludCB1MzJfY2hhbmdlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1 ZmYgKmluX3NrYiwKIAl9CiAjZW5kaWYKIAotCW1lbWNweSgmbi0+c2VsLCBzLCBzaXplb2YoKnMp ICsgcy0+bmtleXMqc2l6ZW9mKHN0cnVjdCB0Y191MzJfa2V5KSk7CisJbWVtY3B5KCZuLT5zZWws IHMsIHNlbF9zaXplKTsKIAlSQ1VfSU5JVF9QT0lOVEVSKG4tPmh0X3VwLCBodCk7CiAJbi0+aGFu ZGxlID0gaGFuZGxlOwogCW4tPmZzaGlmdCA9IHMtPmhtYXNrID8gZmZzKG50b2hsKHMtPmhtYXNr KSkgLSAxIDogMDsKLS0gCjIuMTMuNgoKCkZyb20gNTc4OGY1MDkxOGI0OTRjNzA2MTAyZTU1ZjBi Y2Q4MzQ0ODFjZTc3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFuaXNoIENob3By YSA8bWFuaXNoLmNob3ByYUBjYXZpdW0uY29tPgpEYXRlOiBUaHUsIDIzIEF1ZyAyMDE4IDEzOjIw OjUyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNi8yOV0gcWxnZTogRml4IG5ldGRldiBmZWF0dXJl cyBjb25maWd1cmF0aW9uLgoKWyBVcHN0cmVhbSBjb21taXQgNjc1MGM4NzA3NGM1YjUzNGQ4MmZk YWFiYjFkZWI0NWI4ZjFmNTdkZSBdCgpxbGdlX2ZpeF9mZWF0dXJlcygpIGlzIG5vdCBzdXBwb3Nl ZCB0byBtb2RpZnkgaGFyZHdhcmUgb3IKZHJpdmVyIHN0YXRlLCByYXRoZXIgaXQgaXMgc3VwcG9z ZWQgdG8gb25seSBmaXggcmVxdWVzdGVkCmZldHVyZXMgYml0cy4gQ3VycmVudGx5IHFsZ2VfZml4 X2ZlYXR1cmVzKCkgYWxzbyBnb2VzIGZvcgppbnRlcmZhY2UgZG93biBhbmQgdXAgdW5uZWNlc3Nh cmlseSBpZiB0aGVyZSBpcyBub3QgZXZlbgphbnkgY2hhbmdlIGluIGZlYXR1cmVzIHNldC4KClRo aXMgcGF0Y2ggY2hhbmdlcy9maXhlcyBmb2xsb3dpbmcgLQoKMSkgTW92ZSByZWxvYWQgb2YgaW50 ZXJmYWNlIG9yIGRldmljZSByZS1jb25maWcgZnJvbQogICBxbGdlX2ZpeF9mZWF0dXJlcygpIHRv IHFsZ2Vfc2V0X2ZlYXR1cmVzKCkuCjIpIFJlbG9hZCBvZiBpbnRlcmZhY2UgaW4gcWxnZV9zZXRf ZmVhdHVyZXMoKSBvbmx5IGlmCiAgIHJlbGV2YW50IGZlYXR1cmUgYml0IChORVRJRl9GX0hXX1ZM QU5fQ1RBR19SWCkgaXMgY2hhbmdlZC4KMykgR2V0IHJpZCBvZiBxbGdlX2ZpeF9mZWF0dXJlcygp IHNpbmNlIGRyaXZlciBpcyBub3QgcmVhbGx5CiAgIHJlcXVpcmVkIHRvIGZpeCBhbnkgZmVhdHVy ZXMgYml0LgoKU2lnbmVkLW9mZi1ieTogTWFuaXNoIDxtYW5pc2guY2hvcHJhQGNhdml1bS5jb20+ ClJldmlld2VkLWJ5OiBCZW5qYW1pbiBQb2lyaWVyIDxicG9pcmllckBzdXNlLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xbGdlL3FsZ2VfbWFpbi5jIHwgMjMgKysrKysrKystLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xbGdlL3FsZ2Vf bWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FsZ2UvcWxnZV9tYWluLmMKaW5k ZXggODI5M2MyMDI4MDAyLi5lZTk5NmFjYjM5YTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3Fsb2dpYy9xbGdlL3FsZ2VfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3Fsb2dpYy9xbGdlL3FsZ2VfbWFpbi5jCkBAIC0yMzg0LDI2ICsyMzg0LDIwIEBAIHN0YXRpYyBp bnQgcWxnZV91cGRhdGVfaHdfdmxhbl9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwK IAlyZXR1cm4gc3RhdHVzOwogfQogCi1zdGF0aWMgbmV0ZGV2X2ZlYXR1cmVzX3QgcWxnZV9maXhf ZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsCi0JbmV0ZGV2X2ZlYXR1cmVzX3QgZmVh dHVyZXMpCi17Ci0JaW50IGVycjsKLQotCS8qIFVwZGF0ZSB0aGUgYmVoYXZpb3Igb2YgdmxhbiBh Y2NlbCBpbiB0aGUgYWRhcHRlciAqLwotCWVyciA9IHFsZ2VfdXBkYXRlX2h3X3ZsYW5fZmVhdHVy ZXMobmRldiwgZmVhdHVyZXMpOwotCWlmIChlcnIpCi0JCXJldHVybiBlcnI7Ci0KLQlyZXR1cm4g ZmVhdHVyZXM7Ci19Ci0KIHN0YXRpYyBpbnQgcWxnZV9zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9k ZXZpY2UgKm5kZXYsCiAJbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpCiB7CiAJbmV0ZGV2X2Zl YXR1cmVzX3QgY2hhbmdlZCA9IG5kZXYtPmZlYXR1cmVzIF4gZmVhdHVyZXM7CisJaW50IGVycjsK KworCWlmIChjaGFuZ2VkICYgTkVUSUZfRl9IV19WTEFOX0NUQUdfUlgpIHsKKwkJLyogVXBkYXRl IHRoZSBiZWhhdmlvciBvZiB2bGFuIGFjY2VsIGluIHRoZSBhZGFwdGVyICovCisJCWVyciA9IHFs Z2VfdXBkYXRlX2h3X3ZsYW5fZmVhdHVyZXMobmRldiwgZmVhdHVyZXMpOworCQlpZiAoZXJyKQor CQkJcmV0dXJuIGVycjsKIAotCWlmIChjaGFuZ2VkICYgTkVUSUZfRl9IV19WTEFOX0NUQUdfUlgp CiAJCXFsZ2Vfdmxhbl9tb2RlKG5kZXYsIGZlYXR1cmVzKTsKKwl9CiAKIAlyZXR1cm4gMDsKIH0K QEAgLTQ3MTgsNyArNDcxMiw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMg cWxnZV9uZXRkZXZfb3BzID0gewogCS5uZG9fc2V0X21hY19hZGRyZXNzCT0gcWxnZV9zZXRfbWFj X2FkZHJlc3MsCiAJLm5kb192YWxpZGF0ZV9hZGRyCT0gZXRoX3ZhbGlkYXRlX2FkZHIsCiAJLm5k b190eF90aW1lb3V0CQk9IHFsZ2VfdHhfdGltZW91dCwKLQkubmRvX2ZpeF9mZWF0dXJlcwk9IHFs Z2VfZml4X2ZlYXR1cmVzLAogCS5uZG9fc2V0X2ZlYXR1cmVzCT0gcWxnZV9zZXRfZmVhdHVyZXMs CiAJLm5kb192bGFuX3J4X2FkZF92aWQJPSBxbGdlX3ZsYW5fcnhfYWRkX3ZpZCwKIAkubmRvX3Zs YW5fcnhfa2lsbF92aWQJPSBxbGdlX3ZsYW5fcnhfa2lsbF92aWQsCi0tIAoyLjEzLjYKCgpGcm9t IDhmMjRlN2Q3ZjVjMzU5ZmNhZDQ5ZGZmMDJmYjI0NjBkM2RmNTkzODAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEthaS1IZW5nIEZlbmcgPGthaS5oZW5nLmZlbmdAY2Fub25pY2FsLmNv bT4KRGF0ZTogTW9uLCAyMCBBdWcgMjAxOCAxMjo0Mzo1MSArMDgwMApTdWJqZWN0OiBbUEFUQ0gg MDcvMjldIHI4MTUyOiBkaXNhYmxlIFJYIGFnZ3JlZ2F0aW9uIG9uIG5ldyBEZWxsIFRCMTYgZG9j awoKWyBVcHN0cmVhbSBjb21taXQgMTc2ZWI2MTRiMTE4Yzk2ZTc3OTdmNWRkZWZkMTA3MDhjMzE2 ZjYyMSBdCgpUaGVyZSdzIGEgbmV3IERlbGwgVEIxNiBkb2NrIHdpdGggYSBkaWZmZXJlbnQgaVNl cmlhbE51bWJlci4KCkFwcGx5IHRoZSBzYW1lIGZpeCBmcm9tIGNvbW1pdCAwYjE2NTUxNDNkZjAg KCJyODE1MjogZGlzYWJsZSBSWAphZ2dyZWdhdGlvbiBvbiBEZWxsIFRCMTYgZG9jayIpIHRvIHRo aXMgbW9kZWwuCgpCdWdMaW5rOiBodHRwczovL2J1Z3MubGF1bmNocGFkLm5ldC9idWdzLzE3ODU3 ODAKU2lnbmVkLW9mZi1ieTogS2FpLUhlbmcgRmVuZyA8a2FpLmhlbmcuZmVuZ0BjYW5vbmljYWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvdXNiL3I4MTUyLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv dXNiL3I4MTUyLmMgYi9kcml2ZXJzL25ldC91c2IvcjgxNTIuYwppbmRleCAyYTU4NjA3YTZhZWEu LjFiMDdiYjVlMTEwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL3I4MTUyLmMKKysrIGIv ZHJpdmVycy9uZXQvdXNiL3I4MTUyLmMKQEAgLTUyMTQsOCArNTIxNCw4IEBAIHN0YXRpYyBpbnQg cnRsODE1Ml9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKIAkJbmV0ZGV2LT5od19m ZWF0dXJlcyAmPSB+TkVUSUZfRl9SWENTVU07CiAJfQogCi0JaWYgKGxlMTZfdG9fY3B1KHVkZXYt PmRlc2NyaXB0b3IuYmNkRGV2aWNlKSA9PSAweDMwMTEgJiYKLQkgICAgdWRldi0+c2VyaWFsICYm ICFzdHJjbXAodWRldi0+c2VyaWFsLCAiMDAwMDAxMDAwMDAwIikpIHsKKwlpZiAobGUxNl90b19j cHUodWRldi0+ZGVzY3JpcHRvci5iY2REZXZpY2UpID09IDB4MzAxMSAmJiB1ZGV2LT5zZXJpYWwg JiYKKwkgICAgKCFzdHJjbXAodWRldi0+c2VyaWFsLCAiMDAwMDAxMDAwMDAwIikgfHwgIXN0cmNt cCh1ZGV2LT5zZXJpYWwsICIwMDAwMDIwMDAwMDAiKSkpIHsKIAkJZGV2X2luZm8oJnVkZXYtPmRl diwgIkRlbGwgVEIxNiBEb2NrLCBkaXNhYmxlIFJYIGFnZ3JlZ2F0aW9uIik7CiAJCXNldF9iaXQo REVMTF9UQl9SWF9BR0dfQlVHLCAmdHAtPmZsYWdzKTsKIAl9Ci0tIAoyLjEzLjYKCgpGcm9tIGQ1 MDM5MTIxZTkxZmM2MzA1Mjc5N2U2OGFlOTNmZmRjMmEzMWU4ZTEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEFudGhvbnkgV29uZyA8YW50aG9ueS53b25nQHVidW50dS5jb20+CkRhdGU6 IEZyaSwgMzEgQXVnIDIwMTggMjA6MDY6NDIgKzA4MDAKU3ViamVjdDogW1BBVENIIDA4LzI5XSBy ODE2OTogYWRkIHN1cHBvcnQgZm9yIE5DdWJlIDgxNjggbmV0d29yayBjYXJkCgpbIFVwc3RyZWFt IGNvbW1pdCA5ZmQwZTA5YTRlODY0OTk2Mzk2NTMyNDNlZGZjYjQxN2EwNWM1YzQ2IF0KClRoaXMg Y2FyZCBpZGVudGlmaWVzIGl0c2VsZiBhczoKICBFdGhlcm5ldCBjb250cm9sbGVyIFswMjAwXTog TkN1YmUgRGV2aWNlIFsxMGZmOjgxNjhdIChyZXYgMDYpCiAgU3Vic3lzdGVtOiBUUC1MSU5LIFRl Y2hub2xvZ2llcyBDby4sIEx0ZC4gRGV2aWNlIFs3NDcwOjM0NjhdCgpBZGRpbmcgYSBuZXcgZW50 cnkgdG8gcnRsODE2OV9wY2lfdGJsIG1ha2VzIHRoZSBjYXJkIHdvcmsuCgpMaW5rOiBodHRwOi8v bGF1bmNocGFkLm5ldC9idWdzLzE3ODg3MzAKU2lnbmVkLW9mZi1ieTogQW50aG9ueSBXb25nIDxh bnRob255LndvbmdAdWJ1bnR1LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgx NjkuYyB8IDEgKwogaW5jbHVkZS9saW51eC9wY2lfaWRzLmggICAgICAgICAgICAgIHwgMiArKwog MiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVr L3I4MTY5LmMKaW5kZXggMDdjYzcxY2M5Yjc2Li5lNTA2MDRlYmJmNTcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9yZWFsdGVrL3I4MTY5LmMKQEAgLTMyOSw2ICszMjksNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHBjaV9kZXZpY2VfaWQgcnRsODE2OV9wY2lfdGJsW10gPSB7CiAJeyBQQ0lfREVWSUNFKFBD SV9WRU5ET1JfSURfUkVBTFRFSywJMHg4MTYxKSwgMCwgMCwgUlRMX0NGR18xIH0sCiAJeyBQQ0lf REVWSUNFKFBDSV9WRU5ET1JfSURfUkVBTFRFSywJMHg4MTY3KSwgMCwgMCwgUlRMX0NGR18wIH0s CiAJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfUkVBTFRFSywJMHg4MTY4KSwgMCwgMCwgUlRM X0NGR18xIH0sCisJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTkNVQkUsCTB4ODE2OCksIDAs IDAsIFJUTF9DRkdfMSB9LAogCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX1JFQUxURUssCTB4 ODE2OSksIDAsIDAsIFJUTF9DRkdfMCB9LAogCXsgUENJX1ZFTkRPUl9JRF9ETElOSywJCQkweDQz MDAsCiAJCVBDSV9WRU5ET1JfSURfRExJTkssIDB4NGIxMCwJCSAwLCAwLCBSVExfQ0ZHXzEgfSwK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oIGIvaW5jbHVkZS9saW51eC9wY2lf aWRzLmgKaW5kZXggY2M2MDhmYzU1MzM0Li42ZWZiMTQyMmI2MGUgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbGludXgvcGNpX2lkcy5oCisrKyBiL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oCkBAIC0zMDcz LDQgKzMwNzMsNiBAQAogCiAjZGVmaW5lIFBDSV9WRU5ET1JfSURfT0NaCQkweDFiODUKIAorI2Rl ZmluZSBQQ0lfVkVORE9SX0lEX05DVUJFCQkweDEwZmYKKwogI2VuZGlmIC8qIF9MSU5VWF9QQ0lf SURTX0ggKi8KLS0gCjIuMTMuNgoKCkZyb20gMDIyNWRmZDNhYWZkMWEzOGMzMWVlM2MwMDRhODU0 OGZkNWExMDVlOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxvcmlhbiBXZXN0cGhh bCA8ZndAc3RybGVuLmRlPgpEYXRlOiBUaHUsIDMwIEF1ZyAyMDE4IDE0OjI0OjI5ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwOS8yOV0gdGNwOiBkbyBub3QgcmVzdGFydCB0aW1ld2FpdCB0aW1lciBv biByc3QgcmVjZXB0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA2M2NjMzU3ZjdiYmE2NzI5ODY5NTY1 YTEyZGYwODQ0MWE1OTk1ZDlhIF0KClJGQyAxMzM3IHNheXM6CiAnJ0lnbm9yZSBSU1Qgc2VnbWVu dHMgaW4gVElNRS1XQUlUIHN0YXRlLgogICBJZiB0aGUgMiBtaW51dGUgTVNMIGlzIGVuZm9yY2Vk LCB0aGlzIGZpeCBhdm9pZHMgYWxsIHRocmVlIGhhemFyZHMuJycKClNvIHdpdGggbmV0LmlwdjQu dGNwX3JmYzEzMzc9MSwgZXhwZWN0ZWQgYmVoYXZpb3VyIGlzIHRvIGhhdmUgVElNRS1XQUlUIHNr CmV4cGlyZSByYXRoZXIgdGhhbiByZW1vdmluZyBpdCBpbnN0YW50bHkgd2hlbiBhIHJlc2V0IGlz IHJlY2VpdmVkLgoKSG93ZXZlciwgTGludXggd2lsbCBhbHNvIHJlLXN0YXJ0IHRoZSBUSU1FLVdB SVQgdGltZXIuCgpUaGlzIGNhdXNlcyBjb25uZWN0IHRvIGZhaWwgd2hlbiB0eWluZyB0byByZS11 c2UgcG9ydHMgb3IgdmVyeSBsb25nCmRlbGF5cyAodW50aWwgc3luIHJldHJ5IGludGVydmFsIGV4 Y2VlZHMgTVNMKS4KCnBhY2tldGRyaWxsIHRlc3QgY2FzZToKLy8gRGVtb25zdHJhdGUgYm9ndXMg cmVhcm1pbmcgb2YgVElNRS1XQUlUIHRpbWVyIGluIHJmYzEzMzcgbW9kZS4KYHN5c2N0bCBuZXQu aXB2NC50Y3BfcmZjMTMzNz0xYAoKMC4wMDAgc29ja2V0KC4uLiwgU09DS19TVFJFQU0sIElQUFJP VE9fVENQKSA9IDMKMC4wMDAgc2V0c29ja29wdCgzLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIs IFsxXSwgNCkgPSAwCjAuMDAwIGJpbmQoMywgLi4uLCAuLi4pID0gMAowLjAwMCBsaXN0ZW4oMywg MSkgPSAwCgowLjEwMCA8IFMgMDowKDApIHdpbiAyOTIwMCA8bXNzIDE0NjAsbm9wLG5vcCxzYWNr T0ssbm9wLHdzY2FsZSA3PgowLjEwMCA+IFMuIDA6MCgwKSBhY2sgMSA8bXNzIDE0NjAsbm9wLG5v cCxzYWNrT0ssbm9wLHdzY2FsZSA3PgowLjIwMCA8IC4gMToxKDApIGFjayAxIHdpbiAyNTcKMC4y MDAgYWNjZXB0KDMsIC4uLiwgLi4uKSA9IDQKCi8vIFJlY2VpdmUgZmlyc3Qgc2VnbWVudAowLjMx MCA8IFAuIDE6MTAwMSgxMDAwKSBhY2sgMSB3aW4gNDYKCi8vIFNlbmQgb25lIEFDSwowLjMxMCA+ IC4gMToxKDApIGFjayAxMDAxCgovLyByZWFkIDEwMDAgYnl0ZQowLjMxMCByZWFkKDQsIC4uLiwg MTAwMCkgPSAxMDAwCgovLyBBcHBsaWNhdGlvbiB3cml0ZXMgMTAwIGJ5dGVzCjAuMzUwIHdyaXRl KDQsIC4uLiwgMTAwKSA9IDEwMAowLjM1MCA+IFAuIDE6MTAxKDEwMCkgYWNrIDEwMDEKCi8vIEFD SwowLjUwMCA8IC4gMTAwMToxMDAxKDApIGFjayAxMDEgd2luIDI1NwoKLy8gY2xvc2UgdGhlIGNv bm5lY3Rpb24KMC42MDAgY2xvc2UoNCkgPSAwCjAuNjAwID4gRi4gMTAxOjEwMSgwKSBhY2sgMTAw MSB3aW4gMjQ0CgovLyBPdXIgc2lkZSBpcyBpbiBGSU5fV0FJVF8xICYgd2FpdHMgZm9yIGFjayB0 byBmaW4KMC43IDwgLiAxMDAxOjEwMDEoMCkgYWNrIDEwMiB3aW4gMjQ0CgovLyBPdXIgc2lkZSBp cyBpbiBGSU5fV0FJVF8yIHdpdGggbm8gb3V0c3RhbmRpbmcgZGF0YS4KMC44IDwgRi4gMTAwMTox MDAxKDApIGFjayAxMDIgd2luIDI0NAowLjggPiAuIDEwMjoxMDIoMCkgYWNrIDEwMDIgd2luIDI0 NAoKLy8gT3VyIHNpZGUgaXMgbm93IGluIFRJTUVfV0FJVCBzdGF0ZSwgc2VuZCBhY2sgZm9yIGZp bi4KMC45IDwgRi4gMTAwMjoxMDAyKDApIGFjayAxMDIgd2luIDI0NAowLjkgPiAuIDEwMjoxMDIo MCkgYWNrIDEwMDIgd2luIDI0NAoKLy8gUGVlciByZW9wZW5zIHdpdGggaW4td2luZG93IFNZTjoK MS4wMDAgPCBTIDEwMDA6MTAwMCgwKSB3aW4gOTIwMCA8bXNzIDE0NjAsbm9wLG5vcCxzYWNrT0ss bm9wLHdzY2FsZSA3PgoKLy8gVGhlcmVmb3JlLCByZXBseSB3aXRoIEFDSy4KMS4wMDAgPiAuIDEw MjoxMDIoMCkgYWNrIDEwMDIgd2luIDI0NAoKLy8gUGVlciBzZW5kcyBSU1QgZm9yIHRoaXMgQUNL LiAgTm9ybWFsbHkgdGhpcyBSU1QgcmVzdWx0cwovLyBpbiB0dyBzb2NrZXQgcmVtb3ZhbCwgYnV0 IHJmYzEzMzc9MSBzZXR0aW5nIHByZXZlbnRzIHRoaXMuCjEuMTAwIDwgUiAxMDAyOjEwMDIoMCkg d2luIDI0NAoKLy8gc2Vjb25kIHN5bi4gRHVlIHRvIHJmYzEzMzc9MSBleHBlY3QgYW5vdGhlciBw dXJlIEFDSy4KMzEuMCA8IFMgMTAwMDoxMDAwKDApIHdpbiA5MjAwIDxtc3MgMTQ2MCxub3Asbm9w LHNhY2tPSyxub3Asd3NjYWxlIDc+CjMxLjAgPiAuIDEwMjoxMDIoMCkgYWNrIDEwMDIgd2luIDI0 NAoKLy8gLi4gYW5kIGFub3RoZXIgUlNUIGZyb20gcGVlci4KMzEuMSA8IFIgMTAwMjoxMDAyKDAp IHdpbiAyNDQKMzEuMiBgZWNobyBubyB0aW1lciByZXN0YXJ0O3NzIC1tIC1lIC1hIC1pIC1uIC10 IC1vIHN0YXRlIFRJTUUtV0FJVGAKCi8vIHRoaXJkIHN5biBhZnRlciBvbmUgbWludXRlLiAgVGlt ZS1XYWl0IHNvY2tldCBzaG91bGQgaGF2ZSBleHBpcmVkIGJ5IG5vdy4KNjMuMCA8IFMgMTAwMDox MDAwKDApIHdpbiA5MjAwIDxtc3MgMTQ2MCxub3Asbm9wLHNhY2tPSyxub3Asd3NjYWxlIDc+Cgov LyBzbyB3ZSBleHBlY3QgYSBzeW4tYWNrICYgM3docyB0byBwcm9jZWVkIGZyb20gaGVyZSBvbi4K NjMuMCA+IFMuIDA6MCgwKSBhY2sgMSA8bXNzIDE0NjAsbm9wLG5vcCxzYWNrT0ssbm9wLHdzY2Fs ZSA3PgoKV2l0aG91dCB0aGlzIHBhdGNoLCAnc3MnIHNob3dzIHJlc3RhcnRzIG9mIHR3IHRpbWVy IGFuZCBsYXN0IHBhY2tldCBpcwp0aHVzIGp1c3QgYW5vdGhlciBwdXJlIGFjaywgbW9yZSB0aGFu IG9uZSBtaW51dGUgbGF0ZXIuCgpUaGlzIHJlc3RvcmVzIHRoZSBvcmlnaW5hbCBjb2RlIGZyb20g Y29tbWl0IDI4M2ZkNmNmMGJlNjkwYTgzCigiTWVyZ2UgaW4gQU5LIG5ldHdvcmtpbmcganVtYm8g cGF0Y2giKSBpbiBuZXRkZXYtdmdlci1jdnMuZ2l0IC4KCkZvciBzb21lIHJlYXNvbiB0aGUgZWxz ZSBicmFuY2ggd2FzIHJlbW92ZWQvbG9zdCBpbiAxZjI4YjY4MzMzOWY3CigiTWVyZ2UgaW4gVENQ L1VEUCBvcHRpbWl6YXRpb25zIGFuZCBbLi5dIikgYW5kIHRpbWVyIHJlc3RhcnQgYmVjYW1lCnVu Y29uZGl0aW9uYWwuCgpSZXBvcnRlZC1ieTogTWljaGFsIFRlc2FyIDxtdGVzYXJAcmVkaGF0LmNv bT4KU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBXZXN0cGhhbCA8ZndAc3RybGVuLmRlPgpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3Bf bWluaXNvY2tzLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYyBiL25ldC9p cHY0L3RjcF9taW5pc29ja3MuYwppbmRleCA1N2I1NDY4YjUxMzkuLjc5ZTFiNzdiY2Q3MSAxMDA2 NDQKLS0tIGEvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jCisrKyBiL25ldC9pcHY0L3RjcF9taW5p c29ja3MuYwpAQCAtMTg0LDggKzE4NCw5IEBAIHRjcF90aW1ld2FpdF9zdGF0ZV9wcm9jZXNzKHN0 cnVjdCBpbmV0X3RpbWV3YWl0X3NvY2sgKnR3LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCWlu ZXRfdHdza19kZXNjaGVkdWxlX3B1dCh0dyk7CiAJCQkJcmV0dXJuIFRDUF9UV19TVUNDRVNTOwog CQkJfQorCQl9IGVsc2UgeworCQkJaW5ldF90d3NrX3Jlc2NoZWR1bGUodHcsIFRDUF9USU1FV0FJ VF9MRU4pOwogCQl9Ci0JCWluZXRfdHdza19yZXNjaGVkdWxlKHR3LCBUQ1BfVElNRVdBSVRfTEVO KTsKIAogCQlpZiAodG1wX29wdC5zYXdfdHN0YW1wKSB7CiAJCQl0Y3B0dy0+dHdfdHNfcmVjZW50 CSAgPSB0bXBfb3B0LnJjdl90c3ZhbDsKLS0gCjIuMTMuNgoKCkZyb20gNzk4ZmY4OTY0MzgyYTFk MDhmNGUwMTY0ODM2NzA5MjcwMWExNTcyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QWxleGV5IEtvZGFuZXYgPGFsZXhleS5rb2RhbmV2QG9yYWNsZS5jb20+CkRhdGU6IFRodSwgMjMg QXVnIDIwMTggMTk6NDk6NTQgKzAzMDAKU3ViamVjdDogW1BBVENIIDEwLzI5XSB2dGk2OiByZW1v dmUgIXNrYi0+aWdub3JlX2RmIGNoZWNrIGZyb20gdnRpNl94bWl0KCkKClsgVXBzdHJlYW0gY29t bWl0IDlmMjg5NTQ2MTQzOWZkYTI4MDFhNzkwNmZiNGM1ZmIzZGJiMzdhMGEgXQoKQmVmb3JlIHRo ZSBjb21taXQgZDY5OTA5NzZhZjdjICgidnRpNjogZml4IFBNVFUgY2FjaGluZyBhbmQgcmVwb3J0 aW5nCm9uIHhtaXQiKSAnIXNrYi0+aWdub3JlX2RmJyBjaGVjayB3YXMgYWx3YXlzIHRydWUgYmVj YXVzZSB0aGUgZnVuY3Rpb24Kc2tiX3NjcnViX3BhY2tldCgpIHdhcyBjYWxsZWQgYmVmb3JlIGl0 LCByZXNldHRpbmcgaWdub3JlX2RmIHRvIHplcm8uCgpJbiB0aGUgY29tbWl0LCBza2Jfc2NydWJf cGFja2V0KCkgd2FzIG1vdmVkIGJlbG93LCBhbmQgbm93IHRoaXMgY2hlY2sKY2FuIGJlIGZhbHNl IGZvciB0aGUgcGFja2V0LCBlLmcuIHdoZW4gc2VuZGluZyBpdCBpbiB0aGUgdHdvIGZyYWdtZW50 cywKdGhpcyBwcmV2ZW50cyBzdWNjZXNzZnVsIFBNVFUgdXBkYXRlcyBpbiBzdWNoIGNhc2UuIFRo ZSBuZXh0IGF0dGVtcHRzCnRvIHNlbmQgdGhlIHBhY2tldCBsZWFkIHRvIHRoZSBzYW1lIHR4IGVy cm9yLiBNb3Jlb3ZlciwgdnRpNiBpbml0aWFsCk1UVSB2YWx1ZSByZWxpZXMgb24gUE1UVSBhZGp1 c3RtZW50cy4KClRoaXMgaXNzdWUgY2FuIGJlIHJlcHJvZHVjZWQgd2l0aCB0aGUgZm9sbG93aW5n IExUUCB0ZXN0IHNjcmlwdDoKICAgIHVkcF9pcHNlY192dGkuc2ggLTYgLXAgYWggLW0gdHVubmVs IC1zIDIwMDAKCkZpeGVzOiBjY2Q3NDBjYmM2ZTAgKCJ2dGk2OiBBZGQgcG10dSBoYW5kbGluZyB0 byB2dGk2X3htaXQuIikKU2lnbmVkLW9mZi1ieTogQWxleGV5IEtvZGFuZXYgPGFsZXhleS5rb2Rh bmV2QG9yYWNsZS5jb20+CkFja2VkLWJ5OiBTdGVmZmVuIEtsYXNzZXJ0IDxzdGVmZmVuLmtsYXNz ZXJ0QHNlY3VuZXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X3Z0aS5jIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYv aXA2X3Z0aS5jIGIvbmV0L2lwdjYvaXA2X3Z0aS5jCmluZGV4IGNhOTU3ZGQ5M2EyOS4uMDFkZWEy YmZjNTlmIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfdnRpLmMKKysrIGIvbmV0L2lwdjYvaXA2 X3Z0aS5jCkBAIC00ODUsNyArNDg1LDcgQEAgdnRpNl94bWl0KHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBmbG93aSAqZmwpCiAJc2tiLT5kZXYgPSBz a2JfZHN0KHNrYiktPmRldjsKIAogCW10dSA9IGRzdF9tdHUoZHN0KTsKLQlpZiAoIXNrYi0+aWdu b3JlX2RmICYmIHNrYi0+bGVuID4gbXR1KSB7CisJaWYgKHNrYi0+bGVuID4gbXR1KSB7CiAJCXNr Yl9kc3RfdXBkYXRlX3BtdHUoc2tiLCBtdHUpOwogCiAJCWlmIChza2ItPnByb3RvY29sID09IGh0 b25zKEVUSF9QX0lQVjYpKSB7Ci0tIAoyLjEzLjYKCgpGcm9tIDdhNTU5OGM0MTAxZTAxOTM0NDE2 ZDM3YjY2NTI5ODA5MDI2NDljODkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbmcg V2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBTdW4sIDE5IEF1ZyAyMDE4IDEy OjIyOjEyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMS8yOV0gYWN0X2lmZTogbW92ZSB0Y2ZhX2xv Y2sgZG93biB0byB3aGVyZSBuZWNlc3NhcnkKClsgVXBzdHJlYW0gY29tbWl0IDRlNDA3ZmY1Y2Q2 N2VjNzZlZWVlYTFkZWVjMjI3Yjc5ODJkYzdmNjYgXQoKVGhlIG9ubHkgdGltZSB3ZSBuZWVkIHRv IHRha2UgdGNmYV9sb2NrIGlzIHdoZW4gYWRkaW5nCmEgbmV3IG1ldGFpbmZvIHRvIGFuIGV4aXN0 aW5nIGlmZS0+bWV0YWxpc3QuIFdlIGRvbid0IG5lZWQKdG8gdGFrZSB0Y2ZhX2xvY2sgc28gZWFy bHkgYW5kIHNvIGJyb2FkbHkgaW4gdGNmX2lmZV9pbml0KCkuCgpUaGlzIG1lYW5zIHdlIGNhbiBh bHdheXMgdGFrZSBpZmVfbW9kX2xvY2sgZmlyc3QsIGF2b2lkIHRoZQpyZXZlcnNlIGxvY2tpbmcg b3JkZXJpbmcgd2FybmluZyBhcyByZXBvcnRlZCBieSBWbGFkLgoKUmVwb3J0ZWQtYnk6IFZsYWQg QnVzbG92IDx2bGFkYnVAbWVsbGFub3guY29tPgpUZXN0ZWQtYnk6IFZsYWQgQnVzbG92IDx2bGFk YnVAbWVsbGFub3guY29tPgpDYzogVmxhZCBCdXNsb3YgPHZsYWRidUBtZWxsYW5veC5jb20+CkNj OiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25n IFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfaWZlLmMgfCAz NiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAx MyBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQv YWN0X2lmZS5jIGIvbmV0L3NjaGVkL2FjdF9pZmUuYwppbmRleCAyMDFlNTk5YmFlZDkuLmZjNGI2 ZTE4Y2QyZCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9pZmUuYworKysgYi9uZXQvc2NoZWQv YWN0X2lmZS5jCkBAIC0yNjUsMTAgKzI2NSw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICppZmVfbWV0 YV9pZDJuYW1lKHUzMiBtZXRhaWQpCiAjZW5kaWYKIAogLyogY2FsbGVkIHdoZW4gYWRkaW5nIG5l dyBtZXRhIGluZm9ybWF0aW9uCi0gKiB1bmRlciBpZmUtPnRjZl9sb2NrIGZvciBleGlzdGluZyBh Y3Rpb24KICovCi1zdGF0aWMgaW50IGxvYWRfbWV0YW9wc19hbmRfdmV0KHN0cnVjdCB0Y2ZfaWZl X2luZm8gKmlmZSwgdTMyIG1ldGFpZCwKLQkJCQl2b2lkICp2YWwsIGludCBsZW4sIGJvb2wgZXhp c3RzKQorc3RhdGljIGludCBsb2FkX21ldGFvcHNfYW5kX3ZldCh1MzIgbWV0YWlkLCB2b2lkICp2 YWwsIGludCBsZW4pCiB7CiAJc3RydWN0IHRjZl9tZXRhX29wcyAqb3BzID0gZmluZF9pZmVfb3Bs aXN0KG1ldGFpZCk7CiAJaW50IHJldCA9IDA7CkBAIC0yNzYsMTMgKzI3NCw5IEBAIHN0YXRpYyBp bnQgbG9hZF9tZXRhb3BzX2FuZF92ZXQoc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLCB1MzIgbWV0 YWlkLAogCWlmICghb3BzKSB7CiAJCXJldCA9IC1FTk9FTlQ7CiAjaWZkZWYgQ09ORklHX01PRFVM RVMKLQkJaWYgKGV4aXN0cykKLQkJCXNwaW5fdW5sb2NrX2JoKCZpZmUtPnRjZl9sb2NrKTsKIAkJ cnRubF91bmxvY2soKTsKIAkJcmVxdWVzdF9tb2R1bGUoImlmZS1tZXRhLSVzIiwgaWZlX21ldGFf aWQybmFtZShtZXRhaWQpKTsKIAkJcnRubF9sb2NrKCk7Ci0JCWlmIChleGlzdHMpCi0JCQlzcGlu X2xvY2tfYmgoJmlmZS0+dGNmX2xvY2spOwogCQlvcHMgPSBmaW5kX2lmZV9vcGxpc3QobWV0YWlk KTsKICNlbmRpZgogCX0KQEAgLTI5OSwxMCArMjkzLDkgQEAgc3RhdGljIGludCBsb2FkX21ldGFv cHNfYW5kX3ZldChzdHJ1Y3QgdGNmX2lmZV9pbmZvICppZmUsIHUzMiBtZXRhaWQsCiB9CiAKIC8q IGNhbGxlZCB3aGVuIGFkZGluZyBuZXcgbWV0YSBpbmZvcm1hdGlvbgotICogdW5kZXIgaWZlLT50 Y2ZfbG9jayBmb3IgZXhpc3RpbmcgYWN0aW9uCiAqLwogc3RhdGljIGludCBhZGRfbWV0YWluZm8o c3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLCB1MzIgbWV0YWlkLCB2b2lkICptZXRhdmFsLAotCQkJ aW50IGxlbiwgYm9vbCBhdG9taWMpCisJCQlpbnQgbGVuLCBib29sIGF0b21pYywgYm9vbCBleGlz dHMpCiB7CiAJc3RydWN0IHRjZl9tZXRhX2luZm8gKm1pID0gTlVMTDsKIAlzdHJ1Y3QgdGNmX21l dGFfb3BzICpvcHMgPSBmaW5kX2lmZV9vcGxpc3QobWV0YWlkKTsKQEAgLTMyOSwxMiArMzIyLDE2 IEBAIHN0YXRpYyBpbnQgYWRkX21ldGFpbmZvKHN0cnVjdCB0Y2ZfaWZlX2luZm8gKmlmZSwgdTMy IG1ldGFpZCwgdm9pZCAqbWV0YXZhbCwKIAkJfQogCX0KIAorCWlmIChleGlzdHMpCisJCXNwaW5f bG9ja19iaCgmaWZlLT50Y2ZfbG9jayk7CiAJbGlzdF9hZGRfdGFpbCgmbWktPm1ldGFsaXN0LCAm aWZlLT5tZXRhbGlzdCk7CisJaWYgKGV4aXN0cykKKwkJc3Bpbl91bmxvY2tfYmgoJmlmZS0+dGNm X2xvY2spOwogCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCB1c2VfYWxsX21ldGFkYXRh KHN0cnVjdCB0Y2ZfaWZlX2luZm8gKmlmZSkKK3N0YXRpYyBpbnQgdXNlX2FsbF9tZXRhZGF0YShz dHJ1Y3QgdGNmX2lmZV9pbmZvICppZmUsIGJvb2wgZXhpc3RzKQogewogCXN0cnVjdCB0Y2ZfbWV0 YV9vcHMgKm87CiAJaW50IHJjID0gMDsKQEAgLTM0Miw3ICszMzksNyBAQCBzdGF0aWMgaW50IHVz ZV9hbGxfbWV0YWRhdGEoc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlKQogCiAJcmVhZF9sb2NrKCZp ZmVfbW9kX2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnkobywgJmlmZW9wbGlzdCwgbGlzdCkg ewotCQlyYyA9IGFkZF9tZXRhaW5mbyhpZmUsIG8tPm1ldGFpZCwgTlVMTCwgMCwgdHJ1ZSk7CisJ CXJjID0gYWRkX21ldGFpbmZvKGlmZSwgby0+bWV0YWlkLCBOVUxMLCAwLCB0cnVlLCBleGlzdHMp OwogCQlpZiAocmMgPT0gMCkKIAkJCWluc3RhbGxlZCArPSAxOwogCX0KQEAgLTQxOSw3ICs0MTYs NiBAQCBzdGF0aWMgdm9pZCB0Y2ZfaWZlX2NsZWFudXAoc3RydWN0IHRjX2FjdGlvbiAqYSkKIAkJ a2ZyZWVfcmN1KHAsIHJjdSk7CiB9CiAKLS8qIHVuZGVyIGlmZS0+dGNmX2xvY2sgZm9yIGV4aXN0 aW5nIGFjdGlvbiAqLwogc3RhdGljIGludCBwb3B1bGF0ZV9tZXRhbGlzdChzdHJ1Y3QgdGNmX2lm ZV9pbmZvICppZmUsIHN0cnVjdCBubGF0dHIgKip0YiwKIAkJCSAgICAgYm9vbCBleGlzdHMpCiB7 CkBAIC00MzMsMTEgKzQyOSwxMSBAQCBzdGF0aWMgaW50IHBvcHVsYXRlX21ldGFsaXN0KHN0cnVj dCB0Y2ZfaWZlX2luZm8gKmlmZSwgc3RydWN0IG5sYXR0ciAqKnRiLAogCQkJdmFsID0gbmxhX2Rh dGEodGJbaV0pOwogCQkJbGVuID0gbmxhX2xlbih0YltpXSk7CiAKLQkJCXJjID0gbG9hZF9tZXRh b3BzX2FuZF92ZXQoaWZlLCBpLCB2YWwsIGxlbiwgZXhpc3RzKTsKKwkJCXJjID0gbG9hZF9tZXRh b3BzX2FuZF92ZXQoaSwgdmFsLCBsZW4pOwogCQkJaWYgKHJjICE9IDApCiAJCQkJcmV0dXJuIHJj OwogCi0JCQlyYyA9IGFkZF9tZXRhaW5mbyhpZmUsIGksIHZhbCwgbGVuLCBleGlzdHMpOworCQkJ cmMgPSBhZGRfbWV0YWluZm8oaWZlLCBpLCB2YWwsIGxlbiwgZmFsc2UsIGV4aXN0cyk7CiAJCQlp ZiAocmMpCiAJCQkJcmV0dXJuIHJjOwogCQl9CkBAIC01MzEsOCArNTI3LDYgQEAgc3RhdGljIGlu dCB0Y2ZfaWZlX2luaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICpubGEsCiAJCXAt PmV0aF90eXBlID0gaWZlX3R5cGU7CiAJfQogCi0JaWYgKGV4aXN0cykKLQkJc3Bpbl9sb2NrX2Jo KCZpZmUtPnRjZl9sb2NrKTsKIAogCWlmIChyZXQgPT0gQUNUX1BfQ1JFQVRFRCkKIAkJSU5JVF9M SVNUX0hFQUQoJmlmZS0+bWV0YWxpc3QpOwpAQCAtNTQ0LDkgKzUzOCw2IEBAIHN0YXRpYyBpbnQg dGNmX2lmZV9pbml0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqbmxhLAogbWV0YWRh dGFfcGFyc2VfZXJyOgogCQkJaWYgKHJldCA9PSBBQ1RfUF9DUkVBVEVEKQogCQkJCXRjZl9pZHJf cmVsZWFzZSgqYSwgYmluZCk7Ci0KLQkJCWlmIChleGlzdHMpCi0JCQkJc3Bpbl91bmxvY2tfYmgo JmlmZS0+dGNmX2xvY2spOwogCQkJa2ZyZWUocCk7CiAJCQlyZXR1cm4gZXJyOwogCQl9CkBAIC01 NjEsMTggKzU1MiwxNyBAQCBzdGF0aWMgaW50IHRjZl9pZmVfaW5pdChzdHJ1Y3QgbmV0ICpuZXQs IHN0cnVjdCBubGF0dHIgKm5sYSwKIAkJICogYXMgd2UgY2FuLiBZb3UgYmV0dGVyIGhhdmUgYXQg bGVhc3Qgb25lIGVsc2Ugd2UgYXJlCiAJCSAqIGdvaW5nIHRvIGJhaWwgb3V0CiAJCSAqLwotCQll cnIgPSB1c2VfYWxsX21ldGFkYXRhKGlmZSk7CisJCWVyciA9IHVzZV9hbGxfbWV0YWRhdGEoaWZl LCBleGlzdHMpOwogCQlpZiAoZXJyKSB7CiAJCQlpZiAocmV0ID09IEFDVF9QX0NSRUFURUQpCiAJ CQkJdGNmX2lkcl9yZWxlYXNlKCphLCBiaW5kKTsKLQotCQkJaWYgKGV4aXN0cykKLQkJCQlzcGlu X3VubG9ja19iaCgmaWZlLT50Y2ZfbG9jayk7CiAJCQlrZnJlZShwKTsKIAkJCXJldHVybiBlcnI7 CiAJCX0KIAl9CiAKKwlpZiAoZXhpc3RzKQorCQlzcGluX2xvY2tfYmgoJmlmZS0+dGNmX2xvY2sp OwogCWlmZS0+dGNmX2FjdGlvbiA9IHBhcm0tPmFjdGlvbjsKIAlpZiAoZXhpc3RzKQogCQlzcGlu X3VubG9ja19iaCgmaWZlLT50Y2ZfbG9jayk7Ci0tIAoyLjEzLjYKCgpGcm9tIGQwODIwYWIwNWU0 OTczMDNiNThiNTc3ODE2YWQ4MzJlYjc2NmU2ZDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBTdW4sIDE5IEF1 ZyAyMDE4IDEyOjIyOjEzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMi8yOV0gYWN0X2lmZTogZml4 IGEgcG90ZW50aWFsIGRlYWRsb2NrCgpbIFVwc3RyZWFtIGNvbW1pdCA1ZmZlNTdkYTI5YjM4MDJi YWVkZGFhNDA5MDk2ODJiYmI0Y2I0ZDQ4IF0KCnVzZV9hbGxfbWV0YWRhdGEoKSBhY3F1aXJlcyBy ZWFkX2xvY2soJmlmZV9tb2RfbG9jayksIHRoZW4gY2FsbHMKYWRkX21ldGFpbmZvKCkgd2hpY2gg Y2FsbHMgZmluZF9pZmVfb3BsaXN0KCkgd2hpY2ggYWNxdWlyZXMgdGhlIHNhbWUKbG9jayBhZ2Fp bi4gRGVhZGxvY2shCgpJbnRyb2R1Y2UgX19hZGRfbWV0YWluZm8oKSB3aGljaCBhY2NlcHRzIHN0 cnVjdCB0Y2ZfbWV0YV9vcHMgKm9wcwphcyBhbiBhZGRpdGlvbmFsIHBhcmFtZXRlciBhbmQgbGV0 IGl0cyBjYWxsZXJzIHRvIGRlY2lkZSBob3cKdG8gZmluZCBpdC4gRm9yIHVzZV9hbGxfbWV0YWRh dGEoKSwgaXQgYWxyZWFkeSBoYXMgb3BzLCBubwpuZWVkIHRvIGZpbmQgaXQgYWdhaW4sIGp1c3Qg Y2FsbCBfX2FkZF9tZXRhaW5mbygpIGRpcmVjdGx5LgoKQW5kLCBhcyBpZmVfbW9kX2xvY2sgaXMg b25seSBuZWVkZWQgZm9yIGZpbmRfaWZlX29wbGlzdCgpLAp0aGlzIG1lYW5zIHdlIGNhbiBtYWtl IG5vbi1hdG9taWMgYWxsb2NhdGlvbiBmb3IgcG9wdWxhdGVfbWV0YWxpc3QoKQpub3cuCgpGaXhl czogODE3ZTlmMmM1YzI2ICgiYWN0X2lmZTogYWNxdWlyZSBpZmVfbW9kX2xvY2sgYmVmb3JlIHJl YWRpbmcgaWZlb3BsaXN0IikKQ2M6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L3NjaGVkL2FjdF9pZmUuYyB8IDM0ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvc2NoZWQvYWN0X2lmZS5jIGIvbmV0L3NjaGVkL2FjdF9pZmUuYwppbmRleCBm YzRiNmUxOGNkMmQuLjQzY2EwNGViNjEwOCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9pZmUu YworKysgYi9uZXQvc2NoZWQvYWN0X2lmZS5jCkBAIC0yOTQsMjIgKzI5NCwxNiBAQCBzdGF0aWMg aW50IGxvYWRfbWV0YW9wc19hbmRfdmV0KHUzMiBtZXRhaWQsIHZvaWQgKnZhbCwgaW50IGxlbikK IAogLyogY2FsbGVkIHdoZW4gYWRkaW5nIG5ldyBtZXRhIGluZm9ybWF0aW9uCiAqLwotc3RhdGlj IGludCBhZGRfbWV0YWluZm8oc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLCB1MzIgbWV0YWlkLCB2 b2lkICptZXRhdmFsLAotCQkJaW50IGxlbiwgYm9vbCBhdG9taWMsIGJvb2wgZXhpc3RzKQorc3Rh dGljIGludCBfX2FkZF9tZXRhaW5mbyhjb25zdCBzdHJ1Y3QgdGNmX21ldGFfb3BzICpvcHMsCisJ CQkgIHN0cnVjdCB0Y2ZfaWZlX2luZm8gKmlmZSwgdTMyIG1ldGFpZCwgdm9pZCAqbWV0YXZhbCwK KwkJCSAgaW50IGxlbiwgYm9vbCBhdG9taWMsIGJvb2wgZXhpc3RzKQogewogCXN0cnVjdCB0Y2Zf bWV0YV9pbmZvICptaSA9IE5VTEw7Ci0Jc3RydWN0IHRjZl9tZXRhX29wcyAqb3BzID0gZmluZF9p ZmVfb3BsaXN0KG1ldGFpZCk7CiAJaW50IHJldCA9IDA7CiAKLQlpZiAoIW9wcykKLQkJcmV0dXJu IC1FTk9FTlQ7Ci0KIAltaSA9IGt6YWxsb2Moc2l6ZW9mKCptaSksIGF0b21pYyA/IEdGUF9BVE9N SUMgOiBHRlBfS0VSTkVMKTsKLQlpZiAoIW1pKSB7Ci0JCS8qcHV0IGJhY2sgd2hhdCBmaW5kX2lm ZV9vcGxpc3QgdG9vayAqLwotCQltb2R1bGVfcHV0KG9wcy0+b3duZXIpOworCWlmICghbWkpCiAJ CXJldHVybiAtRU5PTUVNOwotCX0KIAogCW1pLT5tZXRhaWQgPSBtZXRhaWQ7CiAJbWktPm9wcyA9 IG9wczsKQEAgLTMxNyw3ICszMTEsNiBAQCBzdGF0aWMgaW50IGFkZF9tZXRhaW5mbyhzdHJ1Y3Qg dGNmX2lmZV9pbmZvICppZmUsIHUzMiBtZXRhaWQsIHZvaWQgKm1ldGF2YWwsCiAJCXJldCA9IG9w cy0+YWxsb2MobWksIG1ldGF2YWwsIGF0b21pYyA/IEdGUF9BVE9NSUMgOiBHRlBfS0VSTkVMKTsK IAkJaWYgKHJldCAhPSAwKSB7CiAJCQlrZnJlZShtaSk7Ci0JCQltb2R1bGVfcHV0KG9wcy0+b3du ZXIpOwogCQkJcmV0dXJuIHJldDsKIAkJfQogCX0KQEAgLTMzMSw2ICszMjQsMjEgQEAgc3RhdGlj IGludCBhZGRfbWV0YWluZm8oc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLCB1MzIgbWV0YWlkLCB2 b2lkICptZXRhdmFsLAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgYWRkX21ldGFpbmZv KHN0cnVjdCB0Y2ZfaWZlX2luZm8gKmlmZSwgdTMyIG1ldGFpZCwgdm9pZCAqbWV0YXZhbCwKKwkJ CWludCBsZW4sIGJvb2wgZXhpc3RzKQoreworCWNvbnN0IHN0cnVjdCB0Y2ZfbWV0YV9vcHMgKm9w cyA9IGZpbmRfaWZlX29wbGlzdChtZXRhaWQpOworCWludCByZXQ7CisKKwlpZiAoIW9wcykKKwkJ cmV0dXJuIC1FTk9FTlQ7CisJcmV0ID0gX19hZGRfbWV0YWluZm8ob3BzLCBpZmUsIG1ldGFpZCwg bWV0YXZhbCwgbGVuLCBmYWxzZSwgZXhpc3RzKTsKKwlpZiAocmV0KQorCQkvKnB1dCBiYWNrIHdo YXQgZmluZF9pZmVfb3BsaXN0IHRvb2sgKi8KKwkJbW9kdWxlX3B1dChvcHMtPm93bmVyKTsKKwly ZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW50IHVzZV9hbGxfbWV0YWRhdGEoc3RydWN0IHRjZl9p ZmVfaW5mbyAqaWZlLCBib29sIGV4aXN0cykKIHsKIAlzdHJ1Y3QgdGNmX21ldGFfb3BzICpvOwpA QCAtMzM5LDcgKzM0Nyw3IEBAIHN0YXRpYyBpbnQgdXNlX2FsbF9tZXRhZGF0YShzdHJ1Y3QgdGNm X2lmZV9pbmZvICppZmUsIGJvb2wgZXhpc3RzKQogCiAJcmVhZF9sb2NrKCZpZmVfbW9kX2xvY2sp OwogCWxpc3RfZm9yX2VhY2hfZW50cnkobywgJmlmZW9wbGlzdCwgbGlzdCkgewotCQlyYyA9IGFk ZF9tZXRhaW5mbyhpZmUsIG8tPm1ldGFpZCwgTlVMTCwgMCwgdHJ1ZSwgZXhpc3RzKTsKKwkJcmMg PSBfX2FkZF9tZXRhaW5mbyhvLCBpZmUsIG8tPm1ldGFpZCwgTlVMTCwgMCwgdHJ1ZSwgZXhpc3Rz KTsKIAkJaWYgKHJjID09IDApCiAJCQlpbnN0YWxsZWQgKz0gMTsKIAl9CkBAIC00MzMsNyArNDQx LDcgQEAgc3RhdGljIGludCBwb3B1bGF0ZV9tZXRhbGlzdChzdHJ1Y3QgdGNmX2lmZV9pbmZvICpp ZmUsIHN0cnVjdCBubGF0dHIgKip0YiwKIAkJCWlmIChyYyAhPSAwKQogCQkJCXJldHVybiByYzsK IAotCQkJcmMgPSBhZGRfbWV0YWluZm8oaWZlLCBpLCB2YWwsIGxlbiwgZmFsc2UsIGV4aXN0cyk7 CisJCQlyYyA9IGFkZF9tZXRhaW5mbyhpZmUsIGksIHZhbCwgbGVuLCBleGlzdHMpOwogCQkJaWYg KHJjKQogCQkJCXJldHVybiByYzsKIAkJfQotLSAKMi4xMy42CgoKRnJvbSBjY2Q1NTIyMDhkMjQx MjQ4NDI2OGNkZTM1ZDkzZGIxNDEwYmI2OWY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBWbGFkIEJ1c2xvdiA8dmxhZGJ1QG1lbGxhbm94LmNvbT4KRGF0ZTogVHVlLCA0IFNlcCAyMDE4 IDAwOjQ0OjQyICswMzAwClN1YmplY3Q6IFtQQVRDSCAxMy8yOV0gbmV0OiBzY2hlZDogYWN0aW9u X2lmZTogdGFrZSByZWZlcmVuY2UgdG8gbWV0YSBtb2R1bGUKClsgVXBzdHJlYW0gY29tbWl0IDg0 Y2I4ZWIyNmNiOWNlM2M3OTkyODA5NDk2MmE0NzVhOWQ4NTBhNTMgXQoKUmVjZW50IHJlZmFjdG9y aW5nIG9mIGFkZF9tZXRhaW5mbygpIGNhdXNlZCB1c2VfYWxsX21ldGFkYXRhKCkgdG8gYWRkCm1l dGFpbmZvIHRvIGlmZSBhY3Rpb24gbWV0YWxpc3Qgd2l0aG91dCB0YWtpbmcgcmVmZXJlbmNlIHRv IG1vZHVsZS4gVGhpcwpjYXVzZXMgd2FybmluZyBpbiBtb2R1bGVfcHV0IGNhbGxlZCBmcm9tIGlm ZSBhY3Rpb24gY2xlYW51cCBmdW5jdGlvbi4KCkltcGxlbWVudCBhZGRfbWV0YWluZm9fYW5kX2dl dF9vcHMoKSBmdW5jdGlvbiB0aGF0IHJldHVybnMgd2l0aCByZWZlcmVuY2UKdG8gbW9kdWxlIHRh a2VuIGlmIG1ldGFpbmZvIHdhcyBhZGRlZCBzdWNjZXNzZnVsbHksIGFuZCBjYWxsIGl0IGZyb20K dXNlX2FsbF9tZXRhZGF0YSgpLCBpbnN0ZWFkIG9mIGNhbGxpbmcgX19hZGRfbWV0YWluZm8oKSBk aXJlY3RseS4KCkV4YW1wbGUgd2FybmluZzoKClsgIDY0Ni4zNDQzOTNdIFdBUk5JTkc6IENQVTog MSBQSUQ6IDIyNzggYXQga2VybmVsL21vZHVsZS5jOjExMzkgbW9kdWxlX3B1dCsweDFjYi8weDIz MApbICA2NDYuMzUyNDM3XSBNb2R1bGVzIGxpbmtlZCBpbjogYWN0X21ldGFfc2tidGNpbmRleCBh Y3RfbWV0YV9tYXJrIGFjdF9tZXRhX3NrYnByaW8gYWN0X2lmZSBpZmUgdmV0aCBuZnN2MyBuZnMg ZnNjYWNoZSB4dF9DSEVDS1NVTSBpcHRhYmxlX21hbmdsZSBpcHRfTUFTUVVFUkFERSBpcHRhYmxl X25hdCBuZl9uYXRfaXB2NCBuZl9uYXQgeHRfY29ubnRyYWNrIG5mX2Nvbm50cmFjayBuZl9kZWZy YWdfaXB2NiBuZl9kZWZyYWdfaXB2NCBsaWJjcmMzMmMgdHVuIGVidGFibGVfZmlsdGVyIGVidGFi bGVzIGlwNnRhYmxlX2ZpbHRlciBpcDZfdGFibGVzIGJyaWRnZSBzdHAgbGxjIG1seDVfaWIgaWJf dXZlcmJzIGliX2NvcmUgaW50ZWxfcmFwbCBzYl9lZGFjIHg4Nl9wa2dfdGVtcF90aGVybWFsIG1s eDVfY29yZSBjb3JldGVtcCBrdm1faW50ZWwga3ZtIG5mc2QgaWdiIGlycWJ5cGFzcyBjcmN0MTBk aWZfcGNsbXVsIGRldmxpbmsgY3JjMzJfcGNsbXVsIG1laV9tZSBqb3lkZXYgc2VzIGNyYzMyY19p bnRlbCBlbmNsb3N1cmUgYXV0aF9ycGNnc3MgaTJjX2FsZ29fYml0IGlvYXRkbWEgcHRwIG1laSBw cHNfY29yZSBnaGFzaF9jbG11bG5pX2ludGVsIGlUQ09fd2R0IGlUQ09fdmVuZG9yX3N1cHBvcnQg cGNzcGtyIGRjYSBpcG1pX3NzaWYgbHBjX2ljaCB0YXJnZXRfY29yZV9tb2QgaTJjX2k4MDEgaXBt aV9zaSBpcG1pX2RldmludGYgcGNjX2NwdWZyZXEgd21pIGlwbWlfbXNnaGFuZGxlciBuZnNfYWNs IGxvY2tkIGFjcGlfcGFkIGFjcGlfcG93ZXJfbWV0ZXIgZ3JhY2Ugc3VucnBjIG1wdDNzYXMgcmFp ZF9jbGFzcyBzY3NpX3RyYW5zcG9ydF9zYXMKWyAgNjQ2LjQyNTYzMV0gQ1BVOiAxIFBJRDogMjI3 OCBDb21tOiB0YyBOb3QgdGFpbnRlZCA0LjE5LjAtcmMxKyAjNzk5ClsgIDY0Ni40MzIxODddIEhh cmR3YXJlIG5hbWU6IFN1cGVybWljcm8gU1lTLTIwMjhUUC1ERUNSL1gxMERSVC1QLCBCSU9TIDIu MGIgMDMvMzAvMjAxNwpbICA2NDYuNDQwNTk1XSBSSVA6IDAwMTA6bW9kdWxlX3B1dCsweDFjYi8w eDIzMApbICA2NDYuNDQ1MjM4XSBDb2RlOiBmMyA2NiA5NCAwMiBlOCAyNiBmZiBmYSBmZiA4NSBj MCA3NCAxMSAwZiBiNiAxZCA1MSAzMCA5NCAwMiA4MCBmYiAwMSA3NyA2MCA4MyBlMyAwMSA3NCAx MyA2NSBmZiAwZCAzYSA4MyBkYiA3MyBlOSAyYiBmZiBmZiBmZiA8MGY+IDBiIGU5IDAwIGZmIGZm IGZmIGU4IDU5IDAxIGZiIGZmIDg1IGMwIDc1IGU0IDQ4IGM3IGMyIDIwIDYyIDZiClsgIDY0Ni40 NjQ5OTddIFJTUDogMDAxODpmZmZmODgwMzU0ZDM3MDY4IEVGTEFHUzogMDAwMTAyODYKWyAgNjQ2 LjQ3MDU5OV0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogZmZmZmZmZmZjMGE1MjUxOCBSQ1g6 IGZmZmZmZmZmOGMyNjY4ZGIKWyAgNjQ2LjQ3ODExOF0gUkRYOiAwMDAwMDAwMDAwMDAwMDAzIFJT STogZGZmZmZjMDAwMDAwMDAwMCBSREk6IGZmZmZmZmZmYzBhNTI1MTgKWyAgNjQ2LjQ4NTY0MV0g UkJQOiBmZmZmZmZmZmMwYTUyMTgwIFIwODogZmZmZmZiZmZmODE0YTRhNCBSMDk6IGZmZmZmYmZm ZjgxNGE0YTMKWyAgNjQ2LjQ5MzE2NF0gUjEwOiBmZmZmZmZmZmMwYTUyNTFiIFIxMTogZmZmZmZi ZmZmODE0YTRhNCBSMTI6IDFmZmZmMTAwNmE5YTZlMGQKWyAgNjQ2LjUwMDY4N10gUjEzOiAwMDAw MDAwMGZmZmZmZmZmIFIxNDogZmZmZjg4MDM2MmJhYjg5MCBSMTU6IGRlYWQwMDAwMDAwMDAxMDAK WyAgNjQ2LjUwODIxM10gRlM6ICAwMDAwN2Y0MTY0Yzk5ODAwKDAwMDApIEdTOmZmZmY4ODAzNmZl NDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICA2NDYuNTE2OTYxXSBDUzogIDAw MTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDY0Ni41MjMwODBd IENSMjogMDAwMDdmNDE2MzhiODQyMCBDUjM6IDAwMDAwMDAzNTFkZjAwMDQgQ1I0OiAwMDAwMDAw MDAwMTYwNmUwClsgIDY0Ni41MzA1OTVdIENhbGwgVHJhY2U6ClsgIDY0Ni41MzM0MDhdICA/IGZp bmRfc3ltYm9sX2luX3NlY3Rpb24rMHgyNjAvMHgyNjAKWyAgNjQ2LjUzODUwOV0gIHRjZl9pZmVf Y2xlYW51cCsweDExYi8weDIwMCBbYWN0X2lmZV0KWyAgNjQ2LjU0MzY5NV0gIHRjZl9hY3Rpb25f Y2xlYW51cCsweDI5LzB4YTAKWyAgNjQ2LjU0ODA3OF0gIF9fdGNmX2FjdGlvbl9wdXQrMHg1YS8w eGIwClsgIDY0Ni41NTIyODldICA/IG5sYV9wdXQrMHg2NS8weGUwClsgIDY0Ni41NTU4ODldICBf X3RjZl9pZHJfcmVsZWFzZSsweDQ4LzB4NjAKWyAgNjQ2LjU2MDE4N10gIHRjZl9nZW5lcmljX3dh bGtlcisweDQ0OC8weDZiMApbICA2NDYuNTY0NzY0XSAgPyB0Y2ZfYWN0aW9uX2R1bXBfMSsweDQ1 MC8weDQ1MApbICA2NDYuNTY5NDExXSAgPyBfX2xvY2tfaXNfaGVsZCsweDg0LzB4MTEwClsgIDY0 Ni41NzM3MjBdICA/IHRjZl9pZmVfd2Fsa2VyKzB4MTBjLzB4MjBmIFthY3RfaWZlXQpbICA2NDYu NTc4OTgyXSAgdGNhX2FjdGlvbl9nZCsweDk3Mi8weGM0MApbICA2NDYuNTgzMTI5XSAgPyB0Y2Ff Z2V0X2ZpbGwuY29uc3Rwcm9wLjE3KzB4MjUwLzB4MjUwClsgIDY0Ni41ODg0NzFdICA/IG1hcmtf bG9jaysweGNmLzB4OTgwClsgIDY0Ni41OTIzMjRdICA/IGNoZWNrX2NoYWluX2tleSsweDE0MC8w eDFmMApbICA2NDYuNTk2ODMyXSAgPyBkZWJ1Z19zaG93X2FsbF9sb2NrcysweDI0MC8weDI0MApb ICA2NDYuNjAxODM5XSAgPyBtZW1zZXQrMHgxZi8weDQwClsgIDY0Ni42MDUzNTBdICA/IG5sYV9w YXJzZSsweGNhLzB4MWEwClsgIDY0Ni42MDkyMTddICB0Y19jdGxfYWN0aW9uKzB4MjE1LzB4MjMw ClsgIDY0Ni42MTMzMzldICA/IHRjZl9hY3Rpb25fYWRkKzB4MjIwLzB4MjIwClsgIDY0Ni42MTc3 NDhdICBydG5ldGxpbmtfcmN2X21zZysweDU2YS8weDZkMApbICA2NDYuNjIyMjI3XSAgPyBydG5s X2ZkYl9kZWwrMHgzZjAvMHgzZjAKWyAgNjQ2LjYyNjQ2Nl0gIG5ldGxpbmtfcmN2X3NrYisweDE4 ZC8weDIwMApbICA2NDYuNjMwNzUyXSAgPyBydG5sX2ZkYl9kZWwrMHgzZjAvMHgzZjAKWyAgNjQ2 LjYzNDk1OV0gID8gbmV0bGlua19hY2srMHg1MDAvMHg1MDAKWyAgNjQ2LjYzOTEwNl0gIG5ldGxp bmtfdW5pY2FzdCsweDJkMC8weDM3MApbICA2NDYuNjQzNDA5XSAgPyBuZXRsaW5rX2F0dGFjaHNr YisweDM0MC8weDM0MApbICA2NDYuNjQ4MDUwXSAgPyBfY29weV9mcm9tX2l0ZXJfZnVsbCsweGU5 LzB4M2UwClsgIDY0Ni42NTI4NzBdICA/IGltcG9ydF9pb3ZlYysweDExZS8weDFjMApbICA2NDYu NjU3MDgzXSAgbmV0bGlua19zZW5kbXNnKzB4M2I5LzB4NmEwClsgIDY0Ni42NjEzODhdICA/IG5l dGxpbmtfdW5pY2FzdCsweDM3MC8weDM3MApbICA2NDYuNjY1ODc3XSAgPyBuZXRsaW5rX3VuaWNh c3QrMHgzNzAvMHgzNzAKWyAgNjQ2LjY3MDM1MV0gIHNvY2tfc2VuZG1zZysweDZiLzB4ODAKWyAg NjQ2LjY3NDIxMl0gIF9fX3N5c19zZW5kbXNnKzB4NGExLzB4NTIwClsgIDY0Ni42Nzg0NDNdICA/ IGNvcHlfbXNnaGRyX2Zyb21fdXNlcisweDIxMC8weDIxMApbICA2NDYuNjgzNDYzXSAgPyBsb2Nr X2Rvd25ncmFkZSsweDMyMC8weDMyMApbICA2NDYuNjg3ODQ5XSAgPyBkZWJ1Z19zaG93X2FsbF9s b2NrcysweDI0MC8weDI0MApbICA2NDYuNjkyNzYwXSAgPyBkb19yYXdfc3Bpbl91bmxvY2srMHhh Mi8weDEzMApbICA2NDYuNjk3NDE4XSAgPyBfcmF3X3NwaW5fdW5sb2NrKzB4MjQvMHgzMApbICA2 NDYuNzAxNzk4XSAgPyBfX2hhbmRsZV9tbV9mYXVsdCsweDE4MTkvMHgxYzEwClsgIDY0Ni43MDY2 MTldICA/IF9fcG1kX2FsbG9jKzB4MzIwLzB4MzIwClsgIDY0Ni43MTA3MzhdICA/IGRlYnVnX3No b3dfYWxsX2xvY2tzKzB4MjQwLzB4MjQwClsgIDY0Ni43MTU2NDldICA/IHJlc3RvcmVfbmFtZWlk YXRhKzB4N2IvMHhhMApbICA2NDYuNzIwMTE3XSAgPyBjaGVja19jaGFpbl9rZXkrMHgxNDAvMHgx ZjAKWyAgNjQ2LjcyNDU5MF0gID8gY2hlY2tfY2hhaW5fa2V5KzB4MTQwLzB4MWYwClsgIDY0Ni43 MjkwNzBdICA/IF9fZmdldF9saWdodCsweGJjLzB4ZDAKWyAgNjQ2LjczMzEyMV0gID8gX19zeXNf c2VuZG1zZysweGQ3LzB4MTUwClsgIDY0Ni43MzczMjldICBfX3N5c19zZW5kbXNnKzB4ZDcvMHgx NTAKWyAgNjQ2Ljc0MTM1OV0gID8gX19pYTMyX3N5c19zaHV0ZG93bisweDMwLzB4MzAKWyAgNjQ2 Ljc0NjAwM10gID8gdXBfcmVhZCsweDUzLzB4OTAKWyAgNjQ2Ljc0OTYwMV0gID8gX19kb19wYWdl X2ZhdWx0KzB4NDg0LzB4NzgwClsgIDY0Ni43NTQxMDVdICA/IGRvX3N5c2NhbGxfNjQrMHgxZS8w eDJjMApbICA2NDYuNzU4MzIwXSAgZG9fc3lzY2FsbF82NCsweDcyLzB4MmMwClsgIDY0Ni43NjIz NTNdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlClsgIDY0Ni43Njc3 NzZdIFJJUDogMDAzMzoweDdmNDE2Mzg3MjE1MApbICA2NDYuNzcxNzEzXSBDb2RlOiA4YiAxNSAz YyA3ZCAyYiAwMCBmNyBkOCA2NCA4OSAwMiA0OCBjNyBjMCBmZiBmZiBmZiBmZiBlYiBjZCA2NiAw ZiAxZiA0NCAwMCAwMCA4MyAzZCBiOSBkNSAyYiAwMCAwMCA3NSAxMCBiOCAyZSAwMCAwMCAwMCAw ZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDczIDMxIGMzIDQ4IDgzIGVjIDA4IGU4IGJlIGNkIDAw IDAwIDQ4IDg5IDA0IDI0ClsgIDY0Ni43OTE0NzRdIFJTUDogMDAyYjowMDAwN2ZmZGVmN2Q2YjU4 IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMmUKWyAgNjQ2Ljc5OTcy MV0gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAyNCBSQ1g6IDAwMDA3 ZjQxNjM4NzIxNTAKWyAgNjQ2LjgwNzI0MF0gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAw MDdmZmRlZjdkNmJkMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKWyAgNjQ2LjgxNDc2MF0gUkJQOiAw MDAwMDAwMDViOGI5NDgyIFIwODogMDAwMDAwMDAwMDAwMDAwMSBSMDk6IDAwMDAwMDAwMDAwMDAw MDAKWyAgNjQ2LjgyMjI4Nl0gUjEwOiAwMDAwMDAwMDAwMDAwNWU3IFIxMTogMDAwMDAwMDAwMDAw MDI0NiBSMTI6IDAwMDA3ZmZkZWY3ZGFkMjAKWyAgNjQ2LjgyOTgwN10gUjEzOiAwMDAwMDAwMDAw MDAwMDAwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDA2NzliYzAKWyAgNjQ2 LjgzNzM2MF0gaXJxIGV2ZW50IHN0YW1wOiA2MDgzClsgIDY0Ni44NDEwNDNdIGhhcmRpcnFzIGxh c3QgIGVuYWJsZWQgYXQgKDYwODEpOiBbPGZmZmZmZmZmOGMyMjBhN2Q+XSBfX2NhbGxfcmN1KzB4 MTdkLzB4NTAwClsgIDY0Ni44NDk4ODJdIGhhcmRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDYwODMp OiBbPGZmZmZmZmZmOGMwMDRmMDY+XSB0cmFjZV9oYXJkaXJxc19vZmZfdGh1bmsrMHgxYS8weDFj ClsgIDY0Ni44NTk3NzVdIHNvZnRpcnFzIGxhc3QgIGVuYWJsZWQgYXQgKDU5NjgpOiBbPGZmZmZm ZmZmOGQ0MDA0YTE+XSBfX2RvX3NvZnRpcnErMHg0YTEvMHg2ZWUKWyAgNjQ2Ljg2ODc4NF0gc29m dGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoNjA4Mik6IFs8ZmZmZmZmZmZjMGE3ODc1OT5dIHRjZl9p ZmVfY2xlYW51cCsweDM5LzB4MjAwIFthY3RfaWZlXQpbICA2NDYuODc4ODQ1XSAtLS1bIGVuZCB0 cmFjZSBiMWI4YzEyZmZlNTFlNjU3IF0tLS0KCkZpeGVzOiA1ZmZlNTdkYTI5YjMgKCJhY3RfaWZl OiBmaXggYSBwb3RlbnRpYWwgZGVhZGxvY2siKQpTaWduZWQtb2ZmLWJ5OiBWbGFkIEJ1c2xvdiA8 dmxhZGJ1QG1lbGxhbm94LmNvbT4KQWNrZWQtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdA Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2FjdF9pZmUuYyB8IDE2ICsrKysrKysrKysrKysrKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L3NjaGVkL2FjdF9pZmUuYyBiL25ldC9zY2hlZC9hY3RfaWZlLmMKaW5kZXggNDNjYTA0 ZWI2MTA4Li4wMDVjYjIxMzQ4YzkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfaWZlLmMKKysr IGIvbmV0L3NjaGVkL2FjdF9pZmUuYwpAQCAtMzI0LDYgKzMyNCwyMCBAQCBzdGF0aWMgaW50IF9f YWRkX21ldGFpbmZvKGNvbnN0IHN0cnVjdCB0Y2ZfbWV0YV9vcHMgKm9wcywKIAlyZXR1cm4gcmV0 OwogfQogCitzdGF0aWMgaW50IGFkZF9tZXRhaW5mb19hbmRfZ2V0X29wcyhjb25zdCBzdHJ1Y3Qg dGNmX21ldGFfb3BzICpvcHMsCisJCQkJICAgIHN0cnVjdCB0Y2ZfaWZlX2luZm8gKmlmZSwgdTMy IG1ldGFpZCwKKwkJCQkgICAgYm9vbCBleGlzdHMpCit7CisJaW50IHJldDsKKworCWlmICghdHJ5 X21vZHVsZV9nZXQob3BzLT5vd25lcikpCisJCXJldHVybiAtRU5PRU5UOworCXJldCA9IF9fYWRk X21ldGFpbmZvKG9wcywgaWZlLCBtZXRhaWQsIE5VTEwsIDAsIHRydWUsIGV4aXN0cyk7CisJaWYg KHJldCkKKwkJbW9kdWxlX3B1dChvcHMtPm93bmVyKTsKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0 aWMgaW50IGFkZF9tZXRhaW5mbyhzdHJ1Y3QgdGNmX2lmZV9pbmZvICppZmUsIHUzMiBtZXRhaWQs IHZvaWQgKm1ldGF2YWwsCiAJCQlpbnQgbGVuLCBib29sIGV4aXN0cykKIHsKQEAgLTM0Nyw3ICsz NjEsNyBAQCBzdGF0aWMgaW50IHVzZV9hbGxfbWV0YWRhdGEoc3RydWN0IHRjZl9pZmVfaW5mbyAq aWZlLCBib29sIGV4aXN0cykKIAogCXJlYWRfbG9jaygmaWZlX21vZF9sb2NrKTsKIAlsaXN0X2Zv cl9lYWNoX2VudHJ5KG8sICZpZmVvcGxpc3QsIGxpc3QpIHsKLQkJcmMgPSBfX2FkZF9tZXRhaW5m byhvLCBpZmUsIG8tPm1ldGFpZCwgTlVMTCwgMCwgdHJ1ZSwgZXhpc3RzKTsKKwkJcmMgPSBhZGRf bWV0YWluZm9fYW5kX2dldF9vcHMobywgaWZlLCBvLT5tZXRhaWQsIGV4aXN0cyk7CiAJCWlmIChy YyA9PSAwKQogCQkJaW5zdGFsbGVkICs9IDE7CiAJfQotLSAKMi4xMy42CgoKRnJvbSA1OWQwMWRm YWU2OTM3NGRlYjU4ZTQ3NmZhZDk1ZTU4NTNlZDgzZWRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+CkRhdGU6IE1v biwgMyBTZXAgMjAxOCAwNDoyMzoxOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjldIGJueHRf ZW46IENsZWFuIHVwIHVudXNlZCBmdW5jdGlvbnMuCgpbIFVwc3RyZWFtIGNvbW1pdCBhZDk1YzI3 YmRiOTMwMTA1ZjNlZWEwMjYyMWJkYTE1N2NhZjI4NjJkIF0KClJlbW92ZSB1bnVzZWQgYm54dF9z dWJ0cmFjdF91bHBfcmVzb3VyY2VzKCkuICBDaGFuZ2UKYm54dF9nZXRfbWF4X2Z1bmNfaXJxcygp IHRvIHN0YXRpYyBzaW5jZSBpdCBpcyBvbmx5IGxvY2FsbHkgdXNlZC4KClNpZ25lZC1vZmYtYnk6 IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jICAgICB8ICAyICstCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9ibnh0L2JueHQuaCAgICAgfCAgMSAtCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9ibnh0L2JueHRfdWxwLmMgfCAxNSAtLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF91bHAuaCB8ICAxIC0KIDQgZmlsZXMgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKaW5kZXggY2IwMjZlNTAwMTI3Li5lOTRkZWFkNzZhZjMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCkBAIC01OTA4LDcg KzU5MDgsNyBAQCB2b2lkIGJueHRfc2V0X21heF9mdW5jX2NwX3JpbmdzKHN0cnVjdCBibnh0ICpi cCwgdW5zaWduZWQgaW50IG1heCkKIAlicC0+aHdfcmVzYy5tYXhfY3BfcmluZ3MgPSBtYXg7CiB9 CiAKLXVuc2lnbmVkIGludCBibnh0X2dldF9tYXhfZnVuY19pcnFzKHN0cnVjdCBibnh0ICpicCkK K3N0YXRpYyB1bnNpZ25lZCBpbnQgYm54dF9nZXRfbWF4X2Z1bmNfaXJxcyhzdHJ1Y3QgYm54dCAq YnApCiB7CiAJc3RydWN0IGJueHRfaHdfcmVzYyAqaHdfcmVzYyA9ICZicC0+aHdfcmVzYzsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmggYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuaAppbmRleCA3OWJjZTVkY2Y3 ZmUuLmMxOWEwMTIzZGNmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYm54dC9ibnh0LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9i bnh0LmgKQEAgLTE0NTQsNyArMTQ1NCw2IEBAIHVuc2lnbmVkIGludCBibnh0X2dldF9tYXhfZnVu Y19zdGF0X2N0eHMoc3RydWN0IGJueHQgKmJwKTsKIHZvaWQgYm54dF9zZXRfbWF4X2Z1bmNfc3Rh dF9jdHhzKHN0cnVjdCBibnh0ICpicCwgdW5zaWduZWQgaW50IG1heCk7CiB1bnNpZ25lZCBpbnQg Ym54dF9nZXRfbWF4X2Z1bmNfY3BfcmluZ3Moc3RydWN0IGJueHQgKmJwKTsKIHZvaWQgYm54dF9z ZXRfbWF4X2Z1bmNfY3BfcmluZ3Moc3RydWN0IGJueHQgKmJwLCB1bnNpZ25lZCBpbnQgbWF4KTsK LXVuc2lnbmVkIGludCBibnh0X2dldF9tYXhfZnVuY19pcnFzKHN0cnVjdCBibnh0ICpicCk7CiBp bnQgYm54dF9nZXRfYXZhaWxfbXNpeChzdHJ1Y3QgYm54dCAqYnAsIGludCBudW0pOwogaW50IGJu eHRfcmVzZXJ2ZV9yaW5ncyhzdHJ1Y3QgYm54dCAqYnApOwogdm9pZCBibnh0X3R4X2Rpc2FibGUo c3RydWN0IGJueHQgKmJwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JueHQvYm54dF91bHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQv Ym54dF91bHAuYwppbmRleCA4NDBmNmU1MDVmNzMuLmJhOGY4ZTZhZjM2MyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3VscC5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF91bHAuYwpAQCAtMjIwLDIxICsyMjAs NiBAQCBpbnQgYm54dF9nZXRfdWxwX21zaXhfYmFzZShzdHJ1Y3QgYm54dCAqYnApCiAJcmV0dXJu IDA7CiB9CiAKLXZvaWQgYm54dF9zdWJ0cmFjdF91bHBfcmVzb3VyY2VzKHN0cnVjdCBibnh0ICpi cCwgaW50IHVscF9pZCkKLXsKLQlBU1NFUlRfUlROTCgpOwotCWlmIChibnh0X3VscF9yZWdpc3Rl cmVkKGJwLT5lZGV2LCB1bHBfaWQpKSB7Ci0JCXN0cnVjdCBibnh0X2VuX2RldiAqZWRldiA9IGJw LT5lZGV2OwotCQl1bnNpZ25lZCBpbnQgbXNpeF9yZXEsIG1heDsKLQotCQltc2l4X3JlcSA9IGVk ZXYtPnVscF90YmxbdWxwX2lkXS5tc2l4X3JlcXVlc3RlZDsKLQkJbWF4ID0gYm54dF9nZXRfbWF4 X2Z1bmNfY3BfcmluZ3MoYnApOwotCQlibnh0X3NldF9tYXhfZnVuY19jcF9yaW5ncyhicCwgbWF4 IC0gbXNpeF9yZXEpOwotCQltYXggPSBibnh0X2dldF9tYXhfZnVuY19zdGF0X2N0eHMoYnApOwot CQlibnh0X3NldF9tYXhfZnVuY19zdGF0X2N0eHMoYnAsIG1heCAtIDEpOwotCX0KLX0KLQogc3Rh dGljIGludCBibnh0X3NlbmRfbXNnKHN0cnVjdCBibnh0X2VuX2RldiAqZWRldiwgaW50IHVscF9p ZCwKIAkJCSBzdHJ1Y3QgYm54dF9md19tc2cgKmZ3X21zZykKIHsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF91bHAuaCBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF91bHAuaAppbmRleCBkZjQ4YWM3MTcyOWYuLmQ5YmVh MzdjZDIxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9i bnh0X3VscC5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF91 bHAuaApAQCAtOTAsNyArOTAsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYm54dF91bHBfcmVnaXN0 ZXJlZChzdHJ1Y3QgYm54dF9lbl9kZXYgKmVkZXYsIGludCB1bHBfaWQpCiAKIGludCBibnh0X2dl dF91bHBfbXNpeF9udW0oc3RydWN0IGJueHQgKmJwKTsKIGludCBibnh0X2dldF91bHBfbXNpeF9i YXNlKHN0cnVjdCBibnh0ICpicCk7Ci12b2lkIGJueHRfc3VidHJhY3RfdWxwX3Jlc291cmNlcyhz dHJ1Y3QgYm54dCAqYnAsIGludCB1bHBfaWQpOwogdm9pZCBibnh0X3VscF9zdG9wKHN0cnVjdCBi bnh0ICpicCk7CiB2b2lkIGJueHRfdWxwX3N0YXJ0KHN0cnVjdCBibnh0ICpicCk7CiB2b2lkIGJu eHRfdWxwX3NyaW92X2NmZyhzdHJ1Y3QgYm54dCAqYnAsIGludCBudW1fdmZzKTsKLS0gCjIuMTMu NgoKCkZyb20gNzIzZDBiYjg3NGUyYmE5OGI2NDg1ODdkY2QwN2YwMTE0NjZhYzY2MSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRj b20uY29tPgpEYXRlOiBNb24sIDMgU2VwIDIwMTggMDQ6MjM6MTkgLTA0MDAKU3ViamVjdDogW1BB VENIIDE1LzI5XSBibnh0X2VuOiBEbyBub3QgYWRqdXN0IG1heF9jcF9yaW5ncyBieSB0aGUgb25l cyB1c2VkIGJ5CiBSRE1BLgoKWyBVcHN0cmVhbSBjb21taXQgMDBmZTljMzI2ZDIwMjdmMjQzN2Rl YTM4ZWYwZTgyZjlkMDJkOTRjMCBdCgpDdXJyZW50bHksIHRoZSBkcml2ZXIgYWRqdXN0cyB0aGUg YnAtPmh3X3Jlc2MubWF4X2NwX3JpbmdzIGJ5IHRoZSBudW1iZXIKb2YgTVNJWCB2ZWN0b3JzIHVz ZWQgYnkgUkRNQS4gIFRoZXJlIGlzIG9uZSBjb2RlIHBhdGggaW4gb3BlbiB0aGF0IG5lZWRzCnRv IGNoZWNrIHRoZSB0cnVlIG1heF9jcF9yaW5ncyBpbmNsdWRpbmcgYW55IHVzZWQgYnkgUkRNQS4g IFRoaXMgY29kZQppcyBub3cgY2hlY2tpbmcgZm9yIHRoZSByZWR1Y2VkIG1heF9jcF9yaW5ncyB3 aGljaCB3aWxsIGZhaWwgd2hlbiB0aGUKbnVtYmVyIG9mIGNwIHJpbmdzIGlzIHZlcnkgc21hbGwu CgpUbyBmaXggdGhpcyBpbiBhIGNsZWFuIHdheSwgd2UgZG9uJ3QgYWRqdXN0IG1heF9jcF9yaW5n cyBhbnltb3JlLgpJbnN0ZWFkLCB3ZSBhZGQgYSBoZWxwZXIgYm54dF9nZXRfbWF4X2Z1bmNfY3Bf cmluZ3NfZm9yX2VuKCkgdG8gZ2V0IHRoZQpyZWR1Y2VkIG1heF9jcF9yaW5ncyB3aGVuIGFwcHJv cHJpYXRlLgoKRml4ZXM6IGVjODZmMTRlYTUwNiAoImJueHRfZW46IEFkZCBVTFAgY2FsbHMgdG8g c3RvcCBhbmQgcmVzdGFydCBJUlFzLiIpClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQ2hhbiA8bWlj aGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2Ju eHQvYm54dC5jICAgICAgIHwgNyArKysrLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9ibnh0L2JueHQuaCAgICAgICB8IDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2JueHQvYm54dF9zcmlvdi5jIHwgNyArKysrLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibnh0L2JueHRfdWxwLmMgICB8IDUgLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgOSBpbnNl cnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2JueHQvYm54dC5jCmluZGV4IGU5NGRlYWQ3NmFmMy4uY2ZiYTIwZDcyOTM1IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwpAQCAtNTkwMyw5ICs1OTAzLDkgQEAg dW5zaWduZWQgaW50IGJueHRfZ2V0X21heF9mdW5jX2NwX3JpbmdzKHN0cnVjdCBibnh0ICpicCkK IAlyZXR1cm4gYnAtPmh3X3Jlc2MubWF4X2NwX3JpbmdzOwogfQogCi12b2lkIGJueHRfc2V0X21h eF9mdW5jX2NwX3JpbmdzKHN0cnVjdCBibnh0ICpicCwgdW5zaWduZWQgaW50IG1heCkKK3Vuc2ln bmVkIGludCBibnh0X2dldF9tYXhfZnVuY19jcF9yaW5nc19mb3JfZW4oc3RydWN0IGJueHQgKmJw KQogewotCWJwLT5od19yZXNjLm1heF9jcF9yaW5ncyA9IG1heDsKKwlyZXR1cm4gYnAtPmh3X3Jl c2MubWF4X2NwX3JpbmdzIC0gYm54dF9nZXRfdWxwX21zaXhfbnVtKGJwKTsKIH0KIAogc3RhdGlj IHVuc2lnbmVkIGludCBibnh0X2dldF9tYXhfZnVuY19pcnFzKHN0cnVjdCBibnh0ICpicCkKQEAg LTg0NTIsNyArODQ1Miw4IEBAIHN0YXRpYyB2b2lkIF9ibnh0X2dldF9tYXhfcmluZ3Moc3RydWN0 IGJueHQgKmJwLCBpbnQgKm1heF9yeCwgaW50ICptYXhfdHgsCiAKIAkqbWF4X3R4ID0gaHdfcmVz Yy0+bWF4X3R4X3JpbmdzOwogCSptYXhfcnggPSBod19yZXNjLT5tYXhfcnhfcmluZ3M7Ci0JKm1h eF9jcCA9IG1pbl90KGludCwgaHdfcmVzYy0+bWF4X2lycXMsIGh3X3Jlc2MtPm1heF9jcF9yaW5n cyk7CisJKm1heF9jcCA9IG1pbl90KGludCwgYm54dF9nZXRfbWF4X2Z1bmNfY3BfcmluZ3NfZm9y X2VuKGJwKSwKKwkJCWh3X3Jlc2MtPm1heF9pcnFzKTsKIAkqbWF4X2NwID0gbWluX3QoaW50LCAq bWF4X2NwLCBod19yZXNjLT5tYXhfc3RhdF9jdHhzKTsKIAltYXhfcmluZ19ncnBzID0gaHdfcmVz Yy0+bWF4X2h3X3JpbmdfZ3JwczsKIAlpZiAoQk5YVF9DSElQX1RZUEVfTklUUk9fQTAoYnApICYm IEJOWFRfUEYoYnApKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9ibnh0L2JueHQuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5o CmluZGV4IGMxOWEwMTIzZGNmNy4uZGFkNDE4ZmYwY2E0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9ibnh0L2JueHQuaApAQCAtMTQ1Myw3ICsxNDUzLDcgQEAgaW50IGJueHRfaHdy bV9zZXRfY29hbChzdHJ1Y3QgYm54dCAqKTsKIHVuc2lnbmVkIGludCBibnh0X2dldF9tYXhfZnVu Y19zdGF0X2N0eHMoc3RydWN0IGJueHQgKmJwKTsKIHZvaWQgYm54dF9zZXRfbWF4X2Z1bmNfc3Rh dF9jdHhzKHN0cnVjdCBibnh0ICpicCwgdW5zaWduZWQgaW50IG1heCk7CiB1bnNpZ25lZCBpbnQg Ym54dF9nZXRfbWF4X2Z1bmNfY3BfcmluZ3Moc3RydWN0IGJueHQgKmJwKTsKLXZvaWQgYm54dF9z ZXRfbWF4X2Z1bmNfY3BfcmluZ3Moc3RydWN0IGJueHQgKmJwLCB1bnNpZ25lZCBpbnQgbWF4KTsK K3Vuc2lnbmVkIGludCBibnh0X2dldF9tYXhfZnVuY19jcF9yaW5nc19mb3JfZW4oc3RydWN0IGJu eHQgKmJwKTsKIGludCBibnh0X2dldF9hdmFpbF9tc2l4KHN0cnVjdCBibnh0ICpicCwgaW50IG51 bSk7CiBpbnQgYm54dF9yZXNlcnZlX3JpbmdzKHN0cnVjdCBibnh0ICpicCk7CiB2b2lkIGJueHRf dHhfZGlzYWJsZShzdHJ1Y3QgYm54dCAqYnApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3NyaW92LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibnh0L2JueHRfc3Jpb3YuYwppbmRleCBlMWYwMjViMmE2YmMuLjMxMzQ2YjdjMDRh OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3Ny aW92LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3NyaW92 LmMKQEAgLTQ1MSw3ICs0NTEsNyBAQCBzdGF0aWMgaW50IGJueHRfaHdybV9mdW5jX3ZmX3Jlc2Nf Y2ZnKHN0cnVjdCBibnh0ICpicCwgaW50IG51bV92ZnMpCiAKIAlibnh0X2h3cm1fY21kX2hkcl9p bml0KGJwLCAmcmVxLCBIV1JNX0ZVTkNfVkZfUkVTT1VSQ0VfQ0ZHLCAtMSwgLTEpOwogCi0JdmZf Y3BfcmluZ3MgPSBod19yZXNjLT5tYXhfY3BfcmluZ3MgLSBicC0+Y3BfbnJfcmluZ3M7CisJdmZf Y3BfcmluZ3MgPSBibnh0X2dldF9tYXhfZnVuY19jcF9yaW5nc19mb3JfZW4oYnApIC0gYnAtPmNw X25yX3JpbmdzOwogCXZmX3N0YXRfY3R4ID0gaHdfcmVzYy0+bWF4X3N0YXRfY3R4cyAtIGJwLT5u dW1fc3RhdF9jdHhzOwogCWlmIChicC0+ZmxhZ3MgJiBCTlhUX0ZMQUdfQUdHX1JJTkdTKQogCQl2 Zl9yeF9yaW5ncyA9IGh3X3Jlc2MtPm1heF9yeF9yaW5ncyAtIGJwLT5yeF9ucl9yaW5ncyAqIDI7 CkBAIC01NDQsNyArNTQ0LDggQEAgc3RhdGljIGludCBibnh0X2h3cm1fZnVuY19jZmcoc3RydWN0 IGJueHQgKmJwLCBpbnQgbnVtX3ZmcykKIAltYXhfc3RhdF9jdHhzID0gaHdfcmVzYy0+bWF4X3N0 YXRfY3R4czsKIAogCS8qIFJlbWFpbmluZyByaW5ncyBhcmUgZGlzdHJpYnV0ZWQgZXF1YWxseSBh bW9uZ3MgVkYncyBmb3Igbm93ICovCi0JdmZfY3BfcmluZ3MgPSAoaHdfcmVzYy0+bWF4X2NwX3Jp bmdzIC0gYnAtPmNwX25yX3JpbmdzKSAvIG51bV92ZnM7CisJdmZfY3BfcmluZ3MgPSAoYm54dF9n ZXRfbWF4X2Z1bmNfY3BfcmluZ3NfZm9yX2VuKGJwKSAtCisJCSAgICAgICBicC0+Y3BfbnJfcmlu Z3MpIC8gbnVtX3ZmczsKIAl2Zl9zdGF0X2N0eCA9IChtYXhfc3RhdF9jdHhzIC0gYnAtPm51bV9z dGF0X2N0eHMpIC8gbnVtX3ZmczsKIAlpZiAoYnAtPmZsYWdzICYgQk5YVF9GTEFHX0FHR19SSU5H UykKIAkJdmZfcnhfcmluZ3MgPSAoaHdfcmVzYy0+bWF4X3J4X3JpbmdzIC0gYnAtPnJ4X25yX3Jp bmdzICogMikgLwpAQCAtNjM4LDcgKzYzOSw3IEBAIHN0YXRpYyBpbnQgYm54dF9zcmlvdl9lbmFi bGUoc3RydWN0IGJueHQgKmJwLCBpbnQgKm51bV92ZnMpCiAJICovCiAJdmZzX3N1cHBvcnRlZCA9 ICpudW1fdmZzOwogCi0JYXZhaWxfY3AgPSBod19yZXNjLT5tYXhfY3BfcmluZ3MgLSBicC0+Y3Bf bnJfcmluZ3M7CisJYXZhaWxfY3AgPSBibnh0X2dldF9tYXhfZnVuY19jcF9yaW5nc19mb3JfZW4o YnApIC0gYnAtPmNwX25yX3JpbmdzOwogCWF2YWlsX3N0YXQgPSBod19yZXNjLT5tYXhfc3RhdF9j dHhzIC0gYnAtPm51bV9zdGF0X2N0eHM7CiAJYXZhaWxfY3AgPSBtaW5fdChpbnQsIGF2YWlsX2Nw LCBhdmFpbF9zdGF0KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYm54dC9ibnh0X3VscC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9i bnh0X3VscC5jCmluZGV4IGJhOGY4ZTZhZjM2My4uNDIwOWNmZDczOTcxIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfdWxwLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3VscC5jCkBAIC0xNjksNyArMTY5LDYg QEAgc3RhdGljIGludCBibnh0X3JlcV9tc2l4X3ZlY3Moc3RydWN0IGJueHRfZW5fZGV2ICplZGV2 LCBpbnQgdWxwX2lkLAogCQllZGV2LT51bHBfdGJsW3VscF9pZF0ubXNpeF9yZXF1ZXN0ZWQgPSBh dmFpbF9tc2l4OwogCX0KIAlibnh0X2ZpbGxfbXNpeF92ZWNzKGJwLCBlbnQpOwotCWJueHRfc2V0 X21heF9mdW5jX2NwX3JpbmdzKGJwLCBtYXhfY3BfcmluZ3MgLSBhdmFpbF9tc2l4KTsKIAllZGV2 LT5mbGFncyB8PSBCTlhUX0VOX0ZMQUdfTVNJWF9SRVFVRVNURUQ7CiAJcmV0dXJuIGF2YWlsX21z aXg7CiB9CkBAIC0xNzgsNyArMTc3LDYgQEAgc3RhdGljIGludCBibnh0X2ZyZWVfbXNpeF92ZWNz KHN0cnVjdCBibnh0X2VuX2RldiAqZWRldiwgaW50IHVscF9pZCkKIHsKIAlzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2ID0gZWRldi0+bmV0OwogCXN0cnVjdCBibnh0ICpicCA9IG5ldGRldl9wcml2KGRl dik7Ci0JaW50IG1heF9jcF9yaW5ncywgbXNpeF9yZXF1ZXN0ZWQ7CiAKIAlBU1NFUlRfUlROTCgp OwogCWlmICh1bHBfaWQgIT0gQk5YVF9ST0NFX1VMUCkKQEAgLTE4Nyw5ICsxODUsNiBAQCBzdGF0 aWMgaW50IGJueHRfZnJlZV9tc2l4X3ZlY3Moc3RydWN0IGJueHRfZW5fZGV2ICplZGV2LCBpbnQg dWxwX2lkKQogCWlmICghKGVkZXYtPmZsYWdzICYgQk5YVF9FTl9GTEFHX01TSVhfUkVRVUVTVEVE KSkKIAkJcmV0dXJuIDA7CiAKLQltYXhfY3BfcmluZ3MgPSBibnh0X2dldF9tYXhfZnVuY19jcF9y aW5ncyhicCk7Ci0JbXNpeF9yZXF1ZXN0ZWQgPSBlZGV2LT51bHBfdGJsW3VscF9pZF0ubXNpeF9y ZXF1ZXN0ZWQ7Ci0JYm54dF9zZXRfbWF4X2Z1bmNfY3BfcmluZ3MoYnAsIG1heF9jcF9yaW5ncyAr IG1zaXhfcmVxdWVzdGVkKTsKIAllZGV2LT51bHBfdGJsW3VscF9pZF0ubXNpeF9yZXF1ZXN0ZWQg PSAwOwogCWVkZXYtPmZsYWdzICY9IH5CTlhUX0VOX0ZMQUdfTVNJWF9SRVFVRVNURUQ7CiAJaWYg KG5ldGlmX3J1bm5pbmcoZGV2KSkgewotLSAKMi4xMy42CgoKRnJvbSBlNGI1Mjg2NTQ5NzlkMWVj NzkxZmI0NDk1YzFjZmZiZGExOTc2ZjI3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YXZpZGUgQ2FyYXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KRGF0ZTogTW9uLCAyNyBBdWcgMjAx OCAyMjo1NjoyMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMjldIG5ldC9zY2hlZDogYWN0X3Bl ZGl0OiBmaXggZHVtcCBvZiBleHRlbmRlZCBsYXllcmVkIG9wCgpbIFVwc3RyZWFtIGNvbW1pdCA4 NWViOWFmMTgyMjQzY2U5YThiNzI0MTBkNTMyMWM0NDBhYzVmOGQ3IF0KCmluIHRoZSAocmFyZSkg Y2FzZSBvZiBmYWlsdXJlIGluIG5sYV9uZXN0X3N0YXJ0KCksIG1pc3NpbmcgTlVMTCBjaGVja3Mg aW4KdGNmX3BlZGl0X2tleV9leF9kdW1wKCkgY2FuIG1ha2UgdGhlIGZvbGxvd2luZyBjb21tYW5k CgogIyB0YyBhY3Rpb24gYWRkIGFjdGlvbiBwZWRpdCBleCBtdW5nZSBpcCB0dGwgc2V0IDY0Cgpk ZXJlZmVyZW5jZSBhIE5VTEwgcG9pbnRlcjoKCiBCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVs IE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAwMDAwCiBQR0QgODAwMDAw MDA3ZDFjZDA2NyBQNEQgODAwMDAwMDA3ZDFjZDA2NyBQVUQgN2FjZDMwNjcgUE1EIDAKIE9vcHM6 IDAwMDIgWyMxXSBTTVAgUFRJCiBDUFU6IDAgUElEOiAzMzM2IENvbW06IHRjIFRhaW50ZWQ6IEcg ICAgICAgICAgICBFICAgICA0LjE4LjAucGVkaXQrICM0MjUKIEhhcmR3YXJlIG5hbWU6IFJlZCBI YXQgS1ZNLCBCSU9TIDAuNS4xIDAxLzAxLzIwMTEKIFJJUDogMDAxMDp0Y2ZfcGVkaXRfZHVtcCsw eDE5ZC8weDM1OCBbYWN0X3BlZGl0XQogQ29kZTogYmUgMDIgMDAgMDAgMDAgNDggODkgZGYgNjYg ODkgNDQgMjQgMjAgZTggOWIgYjEgZmQgZTAgODUgYzAgNzUgNDYgOGIgODMgYzggMDAgMDAgMDAg NDkgODMgYzUgMDggNDggMDMgODMgZDAgMDAgMDAgMDAgNGQgMzkgZjUgPDY2PiA4OSAwNCAyNSAw MCAwMCAwMCAwMCAwZiA4NCA4MSAwMSAwMCAwMCA0MSA4YiA0NSAwMCA0OCA4ZCA0YyAyNAogUlNQ OiAwMDE4OmZmZmZiNWQ0MDA0NDc4YTggRUZMQUdTOiAwMDAxMDI0NgogUkFYOiBmZmZmODg4MGZj ZGEyMDcwIFJCWDogZmZmZjg4ODBmYWRkMjkwMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAKIFJEWDog MDAwMDAwMDAwMDAwMDAwMiBSU0k6IGZmZmZiNWQ0MDA0NDc4Y2EgUkRJOiBmZmZmODg4MGZjZGEy MDZlCiBSQlA6IGZmZmY4ODgwZmI5Y2I5MDAgUjA4OiAwMDAwMDAwMDAwMDAwMDA4IFIwOTogZmZm Zjg4ODBmY2RhMjA2ZQogUjEwOiBmZmZmODg4MGZhZGQyOTAwIFIxMTogMDAwMDAwMDAwMDAwMDAw MCBSMTI6IGZmZmY4ODgwZmQyNmNmNDAKIFIxMzogZmZmZjg4ODBmYzk1NzQzMCBSMTQ6IGZmZmY4 ODgwZmM5NTc0MzAgUjE1OiBmZmZmODg4MGZiOWNiOTg4CiBGUzogIDAwMDA3Zjc1YTUzN2E3NDAo MDAwMCkgR1M6ZmZmZjg4ODBmZGEwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCiBD UzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCiBDUjI6IDAw MDAwMDAwMDAwMDAwMDAgQ1IzOiAwMDAwMDAwMDdhMmZhMDA1IENSNDogMDAwMDAwMDAwMDE2MDZm MAogQ2FsbCBUcmFjZToKICA/IF9fbmxhX3Jlc2VydmUrMHgzOC8weDUwCiAgdGNmX2FjdGlvbl9k dW1wXzErMHhkMi8weDEzMAogIHRjZl9hY3Rpb25fZHVtcCsweDZhLzB4ZjAKICB0Y2FfZ2V0X2Zp bGwuY29uc3Rwcm9wLjMxKzB4YTMvMHgxMjAKICB0Y2ZfYWN0aW9uX2FkZCsweGQxLzB4MTcwCiAg dGNfY3RsX2FjdGlvbisweDEzNy8weDE1MAogIHJ0bmV0bGlua19yY3ZfbXNnKzB4MjYzLzB4MmQw CiAgPyBfY29uZF9yZXNjaGVkKzB4MTUvMHg0MAogID8gcnRubF9jYWxjaXQuaXNyYS4zMCsweDEx MC8weDExMAogIG5ldGxpbmtfcmN2X3NrYisweDRkLzB4MTMwCiAgbmV0bGlua191bmljYXN0KzB4 MWEzLzB4MjUwCiAgbmV0bGlua19zZW5kbXNnKzB4MmFlLzB4M2EwCiAgc29ja19zZW5kbXNnKzB4 MzYvMHg0MAogIF9fX3N5c19zZW5kbXNnKzB4MjZmLzB4MmQwCiAgPyBkb193cF9wYWdlKzB4OGUv MHg1ZjAKICA/IGhhbmRsZV9wdGVfZmF1bHQrMHg2YzMvMHhmNTAKICA/IF9faGFuZGxlX21tX2Zh dWx0KzB4MzhlLzB4NTIwCiAgPyBfX3N5c19zZW5kbXNnKzB4NWUvMHhhMAogIF9fc3lzX3NlbmRt c2crMHg1ZS8weGEwCiAgZG9fc3lzY2FsbF82NCsweDViLzB4MTgwCiAgZW50cnlfU1lTQ0FMTF82 NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQogUklQOiAwMDMzOjB4N2Y3NWE0NTgzYmEwCiBDb2Rl OiBjMyA0OCA4YiAwNSBmMiA2MiAyYyAwMCBmNyBkYiA2NCA4OSAxOCA0OCA4MyBjYiBmZiBlYiBk ZCAwZiAxZiA4MCAwMCAwMCAwMCAwMCA4MyAzZCBmZCBjMyAyYyAwMCAwMCA3NSAxMCBiOCAyZSAw MCAwMCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDczIDMxIGMzIDQ4IDgzIGVjIDA4IGU4 IGFlIGNjIDAwIDAwIDQ4IDg5IDA0IDI0CiBSU1A6IDAwMmI6MDAwMDdmZmY2MGVlNzQxOCBFRkxB R1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDJlCiBSQVg6IGZmZmZmZmZmZmZm ZmZmZGEgUkJYOiAwMDAwN2ZmZjYwZWU3NTQwIFJDWDogMDAwMDdmNzVhNDU4M2JhMAogUkRYOiAw MDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDdmZmY2MGVlNzQ5MCBSREk6IDAwMDAwMDAwMDAwMDAw MDMKIFJCUDogMDAwMDAwMDA1Yjg0MmQzZSBSMDg6IDAwMDAwMDAwMDAwMDAwMDIgUjA5OiAwMDAw MDAwMDAwMDAwMDAwCiBSMTA6IDAwMDA3ZmZmNjBlZTZlYTAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2 IFIxMjogMDAwMDAwMDAwMDAwMDAwMAogUjEzOiAwMDAwN2ZmZjYwZWU3NTU0IFIxNDogMDAwMDAw MDAwMDAwMDAwMSBSMTU6IDAwMDAwMDAwMDA2NmMxMDAKIE1vZHVsZXMgbGlua2VkIGluOiBhY3Rf cGVkaXQoRSkgaXA2dGFibGVfZmlsdGVyIGlwNl90YWJsZXMgaXB0YWJsZV9maWx0ZXIgYmluZm10 X21pc2MgY3JjdDEwZGlmX3BjbG11bCBleHQ0IGNyYzMyX3BjbG11bCBtYmNhY2hlIGdoYXNoX2Ns bXVsbmlfaW50ZWwgamJkMiBwY2JjIHNuZF9oZGFfY29kZWNfZ2VuZXJpYyBzbmRfaGRhX2ludGVs IHNuZF9oZGFfY29kZWMgc25kX2hkYV9jb3JlIHNuZF9od2RlcCBzbmRfc2VxIHNuZF9zZXFfZGV2 aWNlIHNuZF9wY20gYWVzbmlfaW50ZWwgY3J5cHRvX3NpbWQgc25kX3RpbWVyIGNyeXB0ZCBnbHVl X2hlbHBlciBzbmQgam95ZGV2IHBjc3BrciBzb3VuZGNvcmUgdmlydGlvX2JhbGxvb24gaTJjX3Bp aXg0IG5mc2QgYXV0aF9ycGNnc3MgbmZzX2FjbCBsb2NrZCBncmFjZSBzdW5ycGMgaXBfdGFibGVz IHhmcyBsaWJjcmMzMmMgYXRhX2dlbmVyaWMgcGF0YV9hY3BpIHZpcnRpb19uZXQgbmV0X2ZhaWxv dmVyIHZpcnRpb19ibGsgdmlydGlvX2NvbnNvbGUgZmFpbG92ZXIgcXhsIGNyYzMyY19pbnRlbCBk cm1fa21zX2hlbHBlciBzeXNjb3B5YXJlYSBzZXJpb19yYXcgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0 IGZiX3N5c19mb3BzIHR0bSBkcm0gYXRhX3BpaXggdmlydGlvX3BjaSBsaWJhdGEgdmlydGlvX3Jp bmcgaTJjX2NvcmUgdmlydGlvIGZsb3BweSBkbV9taXJyb3IgZG1fcmVnaW9uX2hhc2ggZG1fbG9n IGRtX21vZCBbbGFzdCB1bmxvYWRlZDogYWN0X3BlZGl0XQogQ1IyOiAwMDAwMDAwMDAwMDAwMDAw CgpMaWtlIGl0J3MgZG9uZSBmb3Igb3RoZXIgVEMgYWN0aW9ucywgZ2l2ZSB1cCBkdW1waW5nIHBl ZGl0IHJ1bGVzIGFuZCByZXR1cm4KYW4gZXJyb3IgaWYgbmxhX25lc3Rfc3RhcnQoKSByZXR1cm5z IE5VTEwuCgpGaXhlczogNzFkMGVkNzA3OWRmICgibmV0L2FjdF9wZWRpdDogU3VwcG9ydCB1c2lu ZyBvZmZzZXQgcmVsYXRpdmUgdG8gdGhlIGNvbnZlbnRpb25hbCBuZXR3b3JrIGhlYWRlcnMiKQpT aWduZWQtb2ZmLWJ5OiBEYXZpZGUgQ2FyYXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KQWNrZWQt Ynk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2FjdF9w ZWRpdC5jIHwgMTggKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X3BlZGl0 LmMgYi9uZXQvc2NoZWQvYWN0X3BlZGl0LmMKaW5kZXggOGE5MjVjNzJkYjVmLi5iYWQ0NzVjODc2 ODggMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfcGVkaXQuYworKysgYi9uZXQvc2NoZWQvYWN0 X3BlZGl0LmMKQEAgLTEwOSwxNiArMTA5LDE4IEBAIHN0YXRpYyBpbnQgdGNmX3BlZGl0X2tleV9l eF9kdW1wKHN0cnVjdCBza19idWZmICpza2IsCiB7CiAJc3RydWN0IG5sYXR0ciAqa2V5c19zdGFy dCA9IG5sYV9uZXN0X3N0YXJ0KHNrYiwgVENBX1BFRElUX0tFWVNfRVgpOwogCisJaWYgKCFrZXlz X3N0YXJ0KQorCQlnb3RvIG5sYV9mYWlsdXJlOwogCWZvciAoOyBuID4gMDsgbi0tKSB7CiAJCXN0 cnVjdCBubGF0dHIgKmtleV9zdGFydDsKIAogCQlrZXlfc3RhcnQgPSBubGFfbmVzdF9zdGFydChz a2IsIFRDQV9QRURJVF9LRVlfRVgpOworCQlpZiAoIWtleV9zdGFydCkKKwkJCWdvdG8gbmxhX2Zh aWx1cmU7CiAKIAkJaWYgKG5sYV9wdXRfdTE2KHNrYiwgVENBX1BFRElUX0tFWV9FWF9IVFlQRSwg a2V5c19leC0+aHR5cGUpIHx8Ci0JCSAgICBubGFfcHV0X3UxNihza2IsIFRDQV9QRURJVF9LRVlf RVhfQ01ELCBrZXlzX2V4LT5jbWQpKSB7Ci0JCQlubG1zZ190cmltKHNrYiwga2V5c19zdGFydCk7 Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQorCQkgICAgbmxhX3B1dF91MTYoc2tiLCBUQ0FfUEVE SVRfS0VZX0VYX0NNRCwga2V5c19leC0+Y21kKSkKKwkJCWdvdG8gbmxhX2ZhaWx1cmU7CiAKIAkJ bmxhX25lc3RfZW5kKHNrYiwga2V5X3N0YXJ0KTsKIApAQCAtMTI4LDYgKzEzMCw5IEBAIHN0YXRp YyBpbnQgdGNmX3BlZGl0X2tleV9leF9kdW1wKHN0cnVjdCBza19idWZmICpza2IsCiAJbmxhX25l c3RfZW5kKHNrYiwga2V5c19zdGFydCk7CiAKIAlyZXR1cm4gMDsKK25sYV9mYWlsdXJlOgorCW5s YV9uZXN0X2NhbmNlbChza2IsIGtleXNfc3RhcnQpOworCXJldHVybiAtRUlOVkFMOwogfQogCiBz dGF0aWMgaW50IHRjZl9wZWRpdF9pbml0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAq bmxhLApAQCAtMzk1LDcgKzQwMCwxMCBAQCBzdGF0aWMgaW50IHRjZl9wZWRpdF9kdW1wKHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCB0Y19hY3Rpb24gKmEsCiAJb3B0LT5iaW5kY250ID0gcC0+ dGNmX2JpbmRjbnQgLSBiaW5kOwogCiAJaWYgKHAtPnRjZnBfa2V5c19leCkgewotCQl0Y2ZfcGVk aXRfa2V5X2V4X2R1bXAoc2tiLCBwLT50Y2ZwX2tleXNfZXgsIHAtPnRjZnBfbmtleXMpOworCQlp ZiAodGNmX3BlZGl0X2tleV9leF9kdW1wKHNrYiwKKwkJCQkJICBwLT50Y2ZwX2tleXNfZXgsCisJ CQkJCSAgcC0+dGNmcF9ua2V5cykpCisJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKIAogCQlpZiAo bmxhX3B1dChza2IsIFRDQV9QRURJVF9QQVJNU19FWCwgcywgb3B0KSkKIAkJCWdvdG8gbmxhX3B1 dF9mYWlsdXJlOwotLSAKMi4xMy42CgoKRnJvbSA1MjRjZTNkOGVjZTJhNGU3MTNmYWVlMGY1MDQ2 MGNmZTUzMTFlNDYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhp eW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyMyBBdWcgMjAxOCAxNjoxOTo0NCAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjldIHRpcGM6IGZpeCBhIG1pc3Npbmcgcmhhc2h0YWJs ZV93YWxrX2V4aXQoKQoKWyBVcHN0cmVhbSBjb21taXQgYmQ1ODNmZTMwNDI3NTAwYTJkMGFiZTI1 NzI0MDI1YjFjYjVlMjYzNiBdCgpyaGFzaHRhYmxlX3dhbGtfZXhpdCgpIG11c3QgYmUgcGFpcmVk IHdpdGggcmhhc2h0YWJsZV93YWxrX2VudGVyKCkuCgpGaXhlczogNDBmOWY0Mzk3MDYwICgidGlw YzogRml4IHRpcGNfc2tfcmVpbml0IHJhY2UgY29uZGl0aW9ucyIpCkNjOiBIZXJiZXJ0IFh1IDxo ZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkNjOiBZaW5nIFh1ZSA8eWluZy54dWVAd2luZHJp dmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvdGlwYy9zb2NrZXQuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9zb2NrZXQuYyBiL25ldC90aXBjL3NvY2tldC5j CmluZGV4IDZiZTIxNTc1NTAzYS4uZGFjZDM1NjE4NmY4IDEwMDY0NAotLS0gYS9uZXQvdGlwYy9z b2NrZXQuYworKysgYi9uZXQvdGlwYy9zb2NrZXQuYwpAQCAtMjY3NSw2ICsyNjc1LDggQEAgdm9p ZCB0aXBjX3NrX3JlaW5pdChzdHJ1Y3QgbmV0ICpuZXQpCiAKIAkJcmhhc2h0YWJsZV93YWxrX3N0 b3AoJml0ZXIpOwogCX0gd2hpbGUgKHRzayA9PSBFUlJfUFRSKC1FQUdBSU4pKTsKKworCXJoYXNo dGFibGVfd2Fsa19leGl0KCZpdGVyKTsKIH0KIAogc3RhdGljIHN0cnVjdCB0aXBjX3NvY2sgKnRp cGNfc2tfbG9va3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIHBvcnRpZCkKLS0gCjIuMTMuNgoKCkZy b20gNWU0M2U3MGM4NzhhMzBhZDk5Yjg2NzgyZDU4YTRiNjEwZTI4NGU2ZiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9t ZS5jb20+CkRhdGU6IFdlZCwgMjkgQXVnIDIwMTggMTI6NDY6MDggLTA3MDAKU3ViamVjdDogW1BB VENIIDE4LzI5XSBuZnA6IHdhaXQgZm9yIHBvc3RlZCByZWNvbmZpZ3Mgd2hlbiBkaXNhYmxpbmcg dGhlCiBkZXZpY2UKClsgVXBzdHJlYW0gY29tbWl0IDlhZDcxNmI5NWZkNmM2YmU0NmE0ZjJkNTkz NmU1MTRiNWJjZDc0NGQgXQoKVG8gYXZvaWQgbGVha2luZyBhIHJ1bm5pbmcgdGltZXIgd2UgbmVl ZCB0byB3YWl0IGZvciB0aGUKcG9zdGVkIHJlY29uZmlncyBhZnRlciBuZXRkZXYgaXMgdW5yZWdp c3RlcmVkLiAgSW4gY29tbW9uCmNhc2UgdGhlIHByb2Nlc3Mgb2YgZGVpbml0aWFsaXppbmcgdGhl IGRldmljZSB3aWxsIHBlcmZvcm0Kc3luY2hyb25vdXMgcmVjb25maWdzIHdoaWNoIHdhaXQgZm9y IHBvc3RlZCByZXF1ZXN0cywgYnV0CmVzcGVjaWFsbHkgd2l0aCBWWExBTiBwb3J0cyBiZWluZyBh Y3RpdmVseSBhZGRlZCBhbmQgcmVtb3ZlZAp0aGVyZSBjYW4gYmUgYSByYWNlIGNvbmRpdGlvbiBs ZWF2aW5nIGEgdGltZXIgcnVubmluZyBhZnRlcgphZGFwdGVyIHN0cnVjdHVyZSBpcyBmcmVlZCBs ZWFkaW5nIHRvIGEgY3Jhc2guCgpBZGQgYW4gZXhwbGljaXQgZmx1c2ggYWZ0ZXIgZGVyZWdpc3Rl cmluZyBhbmQgZm9yIGEgZ29vZAptZWFzdXJlIGEgd2FybmluZyB0byBjaGVjayBpZiB0aW1lciBp cyBydW5uaW5nIGp1c3QgYmVmb3JlCnN0cnVjdHVyZXMgYXJlIGZyZWVkLgoKRml4ZXM6IDNkNzgw YjkyNmExMiAoIm5mcDogYWRkIGFzeW5jIHJlY29uZmlndXJhdGlvbiBtZWNoYW5pc20iKQpTaWdu ZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4K UmV2aWV3ZWQtYnk6IERpcmsgdmFuIGRlciBNZXJ3ZSA8ZGlyay52YW5kZXJtZXJ3ZUBuZXRyb25v bWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9uZXRfY29tbW9uLmMg ICAgfCA0OCArKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0 aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbmV0cm9ub21lL25mcC9uZnBfbmV0X2NvbW1vbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bmV0cm9ub21lL25mcC9uZnBfbmV0X2NvbW1vbi5jCmluZGV4IDFlYjY1NDlmMmE1NC4uNDdiNzdm ZWU4NDE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25m cF9uZXRfY29tbW9uLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9u ZnBfbmV0X2NvbW1vbi5jCkBAIC0yMjcsMjkgKzIyNywxNiBAQCBzdGF0aWMgdm9pZCBuZnBfbmV0 X3JlY29uZmlnX3Bvc3Qoc3RydWN0IG5mcF9uZXQgKm5uLCB1MzIgdXBkYXRlKQogCXNwaW5fdW5s b2NrX2JoKCZubi0+cmVjb25maWdfbG9jayk7CiB9CiAKLS8qKgotICogbmZwX25ldF9yZWNvbmZp ZygpIC0gUmVjb25maWd1cmUgdGhlIGZpcm13YXJlCi0gKiBAbm46ICAgICAgTkZQIE5ldCBkZXZp Y2UgdG8gcmVjb25maWd1cmUKLSAqIEB1cGRhdGU6ICBUaGUgdmFsdWUgZm9yIHRoZSB1cGRhdGUg ZmllbGQgaW4gdGhlIEJBUiBjb25maWcKLSAqCi0gKiBXcml0ZSB0aGUgdXBkYXRlIHdvcmQgdG8g dGhlIEJBUiBhbmQgcGluZyB0aGUgcmVjb25maWcgcXVldWUuICBUaGUKLSAqIHBvbGwgdW50aWwg dGhlIGZpcm13YXJlIGhhcyBhY2tub3dsZWRnZWQgdGhlIHVwZGF0ZSBieSB6ZXJvaW5nIHRoZQot ICogdXBkYXRlIHdvcmQuCi0gKgotICogUmV0dXJuOiBOZWdhdGl2ZSBlcnJubyBvbiBlcnJvciwg MCBvbiBzdWNjZXNzCi0gKi8KLWludCBuZnBfbmV0X3JlY29uZmlnKHN0cnVjdCBuZnBfbmV0ICpu biwgdTMyIHVwZGF0ZSkKK3N0YXRpYyB2b2lkIG5mcF9uZXRfcmVjb25maWdfc3luY19lbnRlcihz dHJ1Y3QgbmZwX25ldCAqbm4pCiB7CiAJYm9vbCBjYW5jZWxsZWRfdGltZXIgPSBmYWxzZTsKIAl1 MzIgcHJlX3Bvc3RlZF9yZXF1ZXN0czsKLQlpbnQgcmV0OwogCiAJc3Bpbl9sb2NrX2JoKCZubi0+ cmVjb25maWdfbG9jayk7CiAKIAlubi0+cmVjb25maWdfc3luY19wcmVzZW50ID0gdHJ1ZTsKIAog CWlmIChubi0+cmVjb25maWdfdGltZXJfYWN0aXZlKSB7Ci0JCWRlbF90aW1lcigmbm4tPnJlY29u ZmlnX3RpbWVyKTsKIAkJbm4tPnJlY29uZmlnX3RpbWVyX2FjdGl2ZSA9IGZhbHNlOwogCQljYW5j ZWxsZWRfdGltZXIgPSB0cnVlOwogCX0KQEAgLTI1OCwxNCArMjQ1LDQzIEBAIGludCBuZnBfbmV0 X3JlY29uZmlnKHN0cnVjdCBuZnBfbmV0ICpubiwgdTMyIHVwZGF0ZSkKIAogCXNwaW5fdW5sb2Nr X2JoKCZubi0+cmVjb25maWdfbG9jayk7CiAKLQlpZiAoY2FuY2VsbGVkX3RpbWVyKQorCWlmIChj YW5jZWxsZWRfdGltZXIpIHsKKwkJZGVsX3RpbWVyX3N5bmMoJm5uLT5yZWNvbmZpZ190aW1lcik7 CiAJCW5mcF9uZXRfcmVjb25maWdfd2FpdChubiwgbm4tPnJlY29uZmlnX3RpbWVyLmV4cGlyZXMp OworCX0KIAogCS8qIFJ1biB0aGUgcG9zdGVkIHJlY29uZmlncyB3aGljaCB3ZXJlIGlzc3VlZCBi ZWZvcmUgd2Ugc3RhcnRlZCAqLwogCWlmIChwcmVfcG9zdGVkX3JlcXVlc3RzKSB7CiAJCW5mcF9u ZXRfcmVjb25maWdfc3RhcnQobm4sIHByZV9wb3N0ZWRfcmVxdWVzdHMpOwogCQluZnBfbmV0X3Jl Y29uZmlnX3dhaXQobm4sIGppZmZpZXMgKyBIWiAqIE5GUF9ORVRfUE9MTF9USU1FT1VUKTsKIAl9 Cit9CisKK3N0YXRpYyB2b2lkIG5mcF9uZXRfcmVjb25maWdfd2FpdF9wb3N0ZWQoc3RydWN0IG5m cF9uZXQgKm5uKQoreworCW5mcF9uZXRfcmVjb25maWdfc3luY19lbnRlcihubik7CisKKwlzcGlu X2xvY2tfYmgoJm5uLT5yZWNvbmZpZ19sb2NrKTsKKwlubi0+cmVjb25maWdfc3luY19wcmVzZW50 ID0gZmFsc2U7CisJc3Bpbl91bmxvY2tfYmgoJm5uLT5yZWNvbmZpZ19sb2NrKTsKK30KKworLyoq CisgKiBuZnBfbmV0X3JlY29uZmlnKCkgLSBSZWNvbmZpZ3VyZSB0aGUgZmlybXdhcmUKKyAqIEBu bjogICAgICBORlAgTmV0IGRldmljZSB0byByZWNvbmZpZ3VyZQorICogQHVwZGF0ZTogIFRoZSB2 YWx1ZSBmb3IgdGhlIHVwZGF0ZSBmaWVsZCBpbiB0aGUgQkFSIGNvbmZpZworICoKKyAqIFdyaXRl IHRoZSB1cGRhdGUgd29yZCB0byB0aGUgQkFSIGFuZCBwaW5nIHRoZSByZWNvbmZpZyBxdWV1ZS4g IFRoZQorICogcG9sbCB1bnRpbCB0aGUgZmlybXdhcmUgaGFzIGFja25vd2xlZGdlZCB0aGUgdXBk YXRlIGJ5IHplcm9pbmcgdGhlCisgKiB1cGRhdGUgd29yZC4KKyAqCisgKiBSZXR1cm46IE5lZ2F0 aXZlIGVycm5vIG9uIGVycm9yLCAwIG9uIHN1Y2Nlc3MKKyAqLworaW50IG5mcF9uZXRfcmVjb25m aWcoc3RydWN0IG5mcF9uZXQgKm5uLCB1MzIgdXBkYXRlKQoreworCWludCByZXQ7CisKKwluZnBf bmV0X3JlY29uZmlnX3N5bmNfZW50ZXIobm4pOwogCiAJbmZwX25ldF9yZWNvbmZpZ19zdGFydChu biwgdXBkYXRlKTsKIAlyZXQgPSBuZnBfbmV0X3JlY29uZmlnX3dhaXQobm4sIGppZmZpZXMgKyBI WiAqIE5GUF9ORVRfUE9MTF9USU1FT1VUKTsKQEAgLTM1OTAsNiArMzYwNiw3IEBAIHN0cnVjdCBu ZnBfbmV0ICpuZnBfbmV0X2FsbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBib29sIG5lZWRzX25l dGRldiwKICAqLwogdm9pZCBuZnBfbmV0X2ZyZWUoc3RydWN0IG5mcF9uZXQgKm5uKQogeworCVdB Uk5fT04odGltZXJfcGVuZGluZygmbm4tPnJlY29uZmlnX3RpbWVyKSB8fCBubi0+cmVjb25maWdf cG9zdGVkKTsKIAlpZiAobm4tPmRwLm5ldGRldikKIAkJZnJlZV9uZXRkZXYobm4tPmRwLm5ldGRl dik7CiAJZWxzZQpAQCAtMzg3NCw0ICszODkxLDUgQEAgdm9pZCBuZnBfbmV0X2NsZWFuKHN0cnVj dCBuZnBfbmV0ICpubikKIAkJcmV0dXJuOwogCiAJdW5yZWdpc3Rlcl9uZXRkZXYobm4tPmRwLm5l dGRldik7CisJbmZwX25ldF9yZWNvbmZpZ193YWl0X3Bvc3RlZChubik7CiB9Ci0tIAoyLjEzLjYK CgpGcm9tIGRmNDczMjI5YmVhZWFmM2QzNTkzN2FkZmIzYTE1NmI3Njk3YmJjODkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0 ZTogTW9uLCAyNyBBdWcgMjAxOCAxODozODozMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMjld IHNjdHA6IGhvbGQgdHJhbnNwb3J0IGJlZm9yZSBhY2Nlc3NpbmcgaXRzIGFzb2MgaW4KIHNjdHBf dHJhbnNwb3J0X2dldF9uZXh0CgpbIFVwc3RyZWFtIGNvbW1pdCBiYWIxYmU3OWE1MTY5YWM3NDhk ODI5MmIyMGM4NmQ4NzQwMjJkN2JhIF0KCkFzIE1hcmNlbG8gbm90aWNlZCwgaW4gc2N0cF90cmFu c3BvcnRfZ2V0X25leHQsIGl0IGlzIGl0ZXJhdGluZyBvdmVyCnRyYW5zcG9ydHMgYnV0IHRoZW4g YWxzbyBhY2Nlc3NpbmcgdGhlIGFzc29jaWF0aW9uIGRpcmVjdGx5LCB3aXRob3V0CmNoZWNraW5n IGFueSByZWZjbnRzIGJlZm9yZSB0aGF0LCB3aGljaCBjYW4gY2F1c2UgYW4gdXNlLWFmdGVyLWZy ZWUKUmVhZC4KClNvIGZpeCBpdCBieSBob2xkaW5nIHRyYW5zcG9ydCBiZWZvcmUgYWNjZXNzaW5n IHRoZSBhc3NvY2lhdGlvbi4gV2l0aAp0aGF0LCBzY3RwX3RyYW5zcG9ydF9ob2xkIGNhbGxzIGNh biBiZSByZW1vdmVkIGluIHRoZSBsYXRlciBwbGFjZXMuCgpGaXhlczogNjI2ZDE2ZjUwZjM5ICgi c2N0cDogZXhwb3J0IHNvbWUgYXBpcyBvciB2YXJpYWJsZXMgZm9yIHNjdHBfZGlhZyBhbmQgcmV1 c2Ugc29tZSBmb3IgcHJvYyIpClJlcG9ydGVkLWJ5OiBzeXpib3QrZmU2MmEwYzlhYTZhODVjNmRl MTZAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVj aWVuLnhpbkBnbWFpbC5jb20+CkFja2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2 ZXIuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5l ckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9wcm9jLmMgICB8ICA0IC0tLS0KIG5ldC9zY3RwL3NvY2tl dC5jIHwgMjIgKysrKysrKysrKysrKysrLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNl cnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9wcm9jLmMg Yi9uZXQvc2N0cC9wcm9jLmMKaW5kZXggMWQ5Y2NjNmRhYjJiLi42NWM5MTg5ZjhmNmIgMTAwNjQ0 Ci0tLSBhL25ldC9zY3RwL3Byb2MuYworKysgYi9uZXQvc2N0cC9wcm9jLmMKQEAgLTI5Miw4ICsy OTIsNiBAQCBzdGF0aWMgaW50IHNjdHBfYXNzb2NzX3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAq c2VxLCB2b2lkICp2KQogCX0KIAogCXRyYW5zcG9ydCA9IChzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQg Kil2OwotCWlmICghc2N0cF90cmFuc3BvcnRfaG9sZCh0cmFuc3BvcnQpKQotCQlyZXR1cm4gMDsK IAlhc3NvYyA9IHRyYW5zcG9ydC0+YXNvYzsKIAllcGIgPSAmYXNzb2MtPmJhc2U7CiAJc2sgPSBl cGItPnNrOwpAQCAtMzY0LDggKzM2Miw2IEBAIHN0YXRpYyBpbnQgc2N0cF9yZW1hZGRyX3NlcV9z aG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KQogCX0KIAogCXRyYW5zcG9ydCA9IChz dHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKil2OwotCWlmICghc2N0cF90cmFuc3BvcnRfaG9sZCh0cmFu c3BvcnQpKQotCQlyZXR1cm4gMDsKIAlhc3NvYyA9IHRyYW5zcG9ydC0+YXNvYzsKIAogCWxpc3Rf Zm9yX2VhY2hfZW50cnlfcmN1KHRzcCwgJmFzc29jLT5wZWVyLnRyYW5zcG9ydF9hZGRyX2xpc3Qs CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4 IGFlN2U3YzYwNmY3Mi4uZDQyZjIyNDJmMWIxIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zb2NrZXQu YworKysgYi9uZXQvc2N0cC9zb2NrZXQuYwpAQCAtNDg4Niw5ICs0ODg2LDE0IEBAIHN0cnVjdCBz Y3RwX3RyYW5zcG9ydCAqc2N0cF90cmFuc3BvcnRfZ2V0X25leHQoc3RydWN0IG5ldCAqbmV0LAog CQkJYnJlYWs7CiAJCX0KIAorCQlpZiAoIXNjdHBfdHJhbnNwb3J0X2hvbGQodCkpCisJCQljb250 aW51ZTsKKwogCQlpZiAobmV0X2VxKHNvY2tfbmV0KHQtPmFzb2MtPmJhc2Uuc2spLCBuZXQpICYm CiAJCSAgICB0LT5hc29jLT5wZWVyLnByaW1hcnlfcGF0aCA9PSB0KQogCQkJYnJlYWs7CisKKwkJ c2N0cF90cmFuc3BvcnRfcHV0KHQpOwogCX0KIAogCXJldHVybiB0OwpAQCAtNDg5OCwxMyArNDkw MywxOCBAQCBzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnNjdHBfdHJhbnNwb3J0X2dldF9pZHgoc3Ry dWN0IG5ldCAqbmV0LAogCQkJCQkgICAgICBzdHJ1Y3Qgcmhhc2h0YWJsZV9pdGVyICppdGVyLAog CQkJCQkgICAgICBpbnQgcG9zKQogewotCXZvaWQgKm9iaiA9IFNFUV9TVEFSVF9UT0tFTjsKKwlz dHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnQ7CiAKLQl3aGlsZSAocG9zICYmIChvYmogPSBzY3RwX3Ry YW5zcG9ydF9nZXRfbmV4dChuZXQsIGl0ZXIpKSAmJgotCSAgICAgICAhSVNfRVJSKG9iaikpCi0J CXBvcy0tOworCWlmICghcG9zKQorCQlyZXR1cm4gU0VRX1NUQVJUX1RPS0VOOwogCi0JcmV0dXJu IG9iajsKKwl3aGlsZSAoKHQgPSBzY3RwX3RyYW5zcG9ydF9nZXRfbmV4dChuZXQsIGl0ZXIpKSAm JiAhSVNfRVJSKHQpKSB7CisJCWlmICghLS1wb3MpCisJCQlicmVhazsKKwkJc2N0cF90cmFuc3Bv cnRfcHV0KHQpOworCX0KKworCXJldHVybiB0OwogfQogCiBpbnQgc2N0cF9mb3JfZWFjaF9lbmRw b2ludChpbnQgKCpjYikoc3RydWN0IHNjdHBfZW5kcG9pbnQgKiwgdm9pZCAqKSwKQEAgLTQ5NjMs OCArNDk3Myw2IEBAIGludCBzY3RwX2Zvcl9lYWNoX3RyYW5zcG9ydChpbnQgKCpjYikoc3RydWN0 IHNjdHBfdHJhbnNwb3J0ICosIHZvaWQgKiksCiAKIAl0c3AgPSBzY3RwX3RyYW5zcG9ydF9nZXRf aWR4KG5ldCwgJmh0aSwgKnBvcyArIDEpOwogCWZvciAoOyAhSVNfRVJSX09SX05VTEwodHNwKTsg dHNwID0gc2N0cF90cmFuc3BvcnRfZ2V0X25leHQobmV0LCAmaHRpKSkgewotCQlpZiAoIXNjdHBf dHJhbnNwb3J0X2hvbGQodHNwKSkKLQkJCWNvbnRpbnVlOwogCQlyZXQgPSBjYih0c3AsIHApOwog CQlpZiAocmV0KQogCQkJYnJlYWs7Ci0tIAoyLjEzLjYKCgpGcm9tIGMxM2U0ZGM0Yjg4ODJjN2Yy OTRkMjViZGYwNGRjM2Y3ZjcyZTQ0ZWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElk byBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KRGF0ZTogRnJpLCAyNCBBdWcgMjAxOCAx NTo0MTozNSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMjldIG1seHN3OiBzcGVjdHJ1bV9zd2l0 Y2hkZXY6IERvIG5vdCBsZWFrIFJJRnMgd2hlbgogcmVtb3ZpbmcgYnJpZGdlCgpbIFVwc3RyZWFt IGNvbW1pdCA2MDJiNzRlZGE4MTMxMWRiZGI1ZGJhYjA4YzMwZjc4OWY2NDhlYmRjIF0KCldoZW4g YSBicmlkZ2UgZGV2aWNlIGlzIHJlbW92ZWQsIHRoZSBWTEFOcyBhcmUgZmx1c2hlZCBmcm9tIGVh Y2gKY29uZmlndXJlZCBwb3J0LiBUaGlzIGNhdXNlcyB0aGUgcG9ydHMgdG8gZGVjcmVtZW50IHRo ZSByZWZlcmVuY2UgY291bnQKb24gdGhlIGFzc29jaWF0ZWQgRklEcyAoZmlsdGVyaW5nIGlkZW50 aWZpZXIpLiBJZiB0aGUgcmVmZXJlbmNlIGNvdW50IG9mCmEgRklEIGlzIDEgYW5kIGl0IGhhcyBh IFJJRiAocm91dGVyIGludGVyZmFjZSksIHRoZW4gdGhpcyBSSUYgaXMKZGVzdHJveWVkLgoKSG93 ZXZlciwgaWYgbm8gcG9ydCBpcyBtZW1iZXIgaW4gdGhlIFZMQU4gZm9yIHdoaWNoIGEgUklGIGV4 aXN0cywgdGhlbgp0aGUgUklGIHdpbGwgY29udGludWUgdG8gZXhpc3QgYWZ0ZXIgdGhlIHJlbW92 YWwgb2YgdGhlIGJyaWRnZS4gVG8KcmVwcm9kdWNlOgoKIyBpcCBsaW5rIGFkZCBuYW1lIGJyMCB0 eXBlIGJyaWRnZSB2bGFuX2ZpbHRlcmluZyAxCiMgaXAgbGluayBzZXQgZGV2IHN3cDEgbWFzdGVy IGJyMAojIGlwIGxpbmsgYWRkIGxpbmsgYnIwIG5hbWUgYnIwLjEwIHR5cGUgdmxhbiBpZCAxMAoj IGlwIGFkZHJlc3MgYWRkIDE5Mi4wLjIuMC8yNCBkZXYgYnIwLjEwCiMgaXAgbGluayBkZWwgZGV2 IGJyMAoKVGhlIFJJRiBhc3NvY2lhdGVkIHdpdGggYnIwLjEwIGNvbnRpbnVlcyB0byBleGlzdC4K CkZpeCB0aGlzIGJ5IGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgYnJpZGdlIGRldmljZSB1cHBlcnMg d2hlbiBpdCBpcwpkZXN0cm95ZWQgYW5kIHRha2UgY2FyZSBvZiBkZXN0cm95aW5nIHRoZWlyIFJJ RnMuCgpGaXhlczogOTlmNDRiYjM1MjdiICgibWx4c3c6IHNwZWN0cnVtOiBFbmFibGUgTDMgaW50 ZXJmYWNlcyBvbiB0b3Agb2YgYnJpZGdlIGRldmljZXMiKQpTaWduZWQtb2ZmLWJ5OiBJZG8gU2No aW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBQZXRyIE1hY2hhdGEgPHBl dHJtQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3Nw ZWN0cnVtLmggICAgICAgfCAgMiArKwogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9z cGVjdHJ1bV9yb3V0ZXIuYyAgICB8IDExICsrKysrKysrKysrCiAuLi4vbmV0L2V0aGVybmV0L21l bGxhbm94L21seHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jIHwgMjAgKysrKysrKysrKysrKysrKysr KysKIDMgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmggYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5oCmluZGV4IDgwNGQ0ZDJjODAzMS4uNjgy ODg5NWVjMDFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhz dy9zcGVjdHJ1bS5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3Nw ZWN0cnVtLmgKQEAgLTQzMiw2ICs0MzIsOCBAQCBtbHhzd19zcF9uZXRkZXZpY2VfaXBpcF91bF9l dmVudChzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwLAogdm9pZAogbWx4c3dfc3BfcG9ydF92bGFu X3JvdXRlcl9sZWF2ZShzdHJ1Y3QgbWx4c3dfc3BfcG9ydF92bGFuICptbHhzd19zcF9wb3J0X3Zs YW4pOwogdm9pZCBtbHhzd19zcF9yaWZfZGVzdHJveShzdHJ1Y3QgbWx4c3dfc3BfcmlmICpyaWYp Owordm9pZCBtbHhzd19zcF9yaWZfZGVzdHJveV9ieV9kZXYoc3RydWN0IG1seHN3X3NwICptbHhz d19zcCwKKwkJCQkgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiAKIC8qIHNwZWN0cnVtX2t2ZGwu YyAqLwogaW50IG1seHN3X3NwX2t2ZGxfaW5pdChzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVt X3JvdXRlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1f cm91dGVyLmMKaW5kZXggNjkyODU1MTgzMTg3Li40MGZhNzUwOGUyNmUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jCkBA IC02MjE5LDYgKzYyMTksMTcgQEAgdm9pZCBtbHhzd19zcF9yaWZfZGVzdHJveShzdHJ1Y3QgbWx4 c3dfc3BfcmlmICpyaWYpCiAJbWx4c3dfc3BfdnJfcHV0KG1seHN3X3NwLCB2cik7CiB9CiAKK3Zv aWQgbWx4c3dfc3BfcmlmX2Rlc3Ryb3lfYnlfZGV2KHN0cnVjdCBtbHhzd19zcCAqbWx4c3dfc3As CisJCQkJIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IG1seHN3X3NwX3JpZiAq cmlmOworCisJcmlmID0gbWx4c3dfc3BfcmlmX2ZpbmRfYnlfZGV2KG1seHN3X3NwLCBkZXYpOwor CWlmICghcmlmKQorCQlyZXR1cm47CisJbWx4c3dfc3BfcmlmX2Rlc3Ryb3kocmlmKTsKK30KKwog c3RhdGljIHZvaWQKIG1seHN3X3NwX3JpZl9zdWJwb3J0X3BhcmFtc19pbml0KHN0cnVjdCBtbHhz d19zcF9yaWZfcGFyYW1zICpwYXJhbXMsCiAJCQkJIHN0cnVjdCBtbHhzd19zcF9wb3J0X3ZsYW4g Km1seHN3X3NwX3BvcnRfdmxhbikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMKaW5kZXggMGFlMmRhOWQwOGM3Li4y MDAwYmUxNTk4YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jCkBAIC0xNTgsNiArMTU4LDI0IEBAIGJvb2wg bWx4c3dfc3BfYnJpZGdlX2RldmljZV9pc19vZmZsb2FkZWQoY29uc3Qgc3RydWN0IG1seHN3X3Nw ICptbHhzd19zcCwKIAlyZXR1cm4gISFtbHhzd19zcF9icmlkZ2VfZGV2aWNlX2ZpbmQobWx4c3df c3AtPmJyaWRnZSwgYnJfZGV2KTsKIH0KIAorc3RhdGljIGludCBtbHhzd19zcF9icmlkZ2VfZGV2 aWNlX3VwcGVyX3JpZl9kZXN0cm95KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkJCQkgICAg dm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwID0gZGF0YTsKKworCW1s eHN3X3NwX3JpZl9kZXN0cm95X2J5X2RldihtbHhzd19zcCwgZGV2KTsKKwlyZXR1cm4gMDsKK30K Kworc3RhdGljIHZvaWQgbWx4c3dfc3BfYnJpZGdlX2RldmljZV9yaWZzX2Rlc3Ryb3koc3RydWN0 IG1seHN3X3NwICptbHhzd19zcCwKKwkJCQkJCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJ bWx4c3dfc3BfcmlmX2Rlc3Ryb3lfYnlfZGV2KG1seHN3X3NwLCBkZXYpOworCW5ldGRldl93YWxr X2FsbF91cHBlcl9kZXZfcmN1KGRldiwKKwkJCQkgICAgICBtbHhzd19zcF9icmlkZ2VfZGV2aWNl X3VwcGVyX3JpZl9kZXN0cm95LAorCQkJCSAgICAgIG1seHN3X3NwKTsKK30KKwogc3RhdGljIHN0 cnVjdCBtbHhzd19zcF9icmlkZ2VfZGV2aWNlICoKIG1seHN3X3NwX2JyaWRnZV9kZXZpY2VfY3Jl YXRlKHN0cnVjdCBtbHhzd19zcF9icmlkZ2UgKmJyaWRnZSwKIAkJCSAgICAgIHN0cnVjdCBuZXRf ZGV2aWNlICpicl9kZXYpCkBAIC0xOTYsNiArMjE0LDggQEAgc3RhdGljIHZvaWQKIG1seHN3X3Nw X2JyaWRnZV9kZXZpY2VfZGVzdHJveShzdHJ1Y3QgbWx4c3dfc3BfYnJpZGdlICpicmlkZ2UsCiAJ CQkgICAgICAgc3RydWN0IG1seHN3X3NwX2JyaWRnZV9kZXZpY2UgKmJyaWRnZV9kZXZpY2UpCiB7 CisJbWx4c3dfc3BfYnJpZGdlX2RldmljZV9yaWZzX2Rlc3Ryb3koYnJpZGdlLT5tbHhzd19zcCwK KwkJCQkJICAgIGJyaWRnZV9kZXZpY2UtPmRldik7CiAJbGlzdF9kZWwoJmJyaWRnZV9kZXZpY2Ut Pmxpc3QpOwogCWlmIChicmlkZ2VfZGV2aWNlLT52bGFuX2VuYWJsZWQpCiAJCWJyaWRnZS0+dmxh bl9lbmFibGVkX2V4aXN0cyA9IGZhbHNlOwotLSAKMi4xMy42CgoKRnJvbSAwNTVlNDNhNGY0NzAy ZWYzMjNiMWU1MTA1NGQxZDI3NzFiZWNiYjc3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpEYXRlOiBGcmksIDI0IEF1ZyAyMDE4 IDE2OjUzOjEzICswODAwClN1YmplY3Q6IFtQQVRDSCAyMS8yOV0gdmhvc3Q6IGNvcnJlY3RseSBj aGVjayB0aGUgaW92YSByYW5nZSB3aGVuIHdha2luZwogdmlydHF1ZXVlCgpbIFVwc3RyZWFtIGNv bW1pdCAyZDY2Zjk5N2YwNTQ1YzhmN2ZjNWNmMGI0OWFmMWRlY2IzNTE3MGU3IF0KCldlIGRvbid0 IHdha2V1cCB0aGUgdmlydHF1ZXVlIGlmIHRoZSBmaXJzdCBieXRlIG9mIHBlbmRpbmcgaW92YSBy YW5nZQppcyB0aGUgbGFzdCBieXRlIG9mIHRoZSByYW5nZSB3ZSBqdXN0IGdvdCB1cGRhdGVkLiBU aGlzIHdpbGwgbGVhZCBhCnZpcnRxdWV1ZSB0byB3YWl0IGZvciBJT1RMQiB1cGRhdGluZyBmb3Jl dmVyLiBGaXhpbmcgYnkgY29ycmVjdCB0aGUKY2hlY2sgYW5kIHdha2UgdXAgdGhlIHZpcnRxdWV1 ZSBpbiB0aGlzIGNhc2UuCgpGaXhlczogNmIxZTZjYzc4NTViICgidmhvc3Q6IG5ldyBkZXZpY2Ug SU9UTEIgQVBJIikKUmVwb3J0ZWQtYnk6IFBldGVyIFh1IDxwZXRlcnhAcmVkaGF0LmNvbT4KU2ln bmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6 IFBldGVyIFh1IDxwZXRlcnhAcmVkaGF0LmNvbT4KVGVzdGVkLWJ5OiBQZXRlciBYdSA8cGV0ZXJ4 QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy92aG9zdC92aG9zdC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aG9zdC92aG9zdC5j IGIvZHJpdmVycy92aG9zdC92aG9zdC5jCmluZGV4IGQxZGUyY2IxM2ZkNi4uOWViN2I3NWRhOTU4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zob3N0L3Zob3N0LmMKKysrIGIvZHJpdmVycy92aG9zdC92 aG9zdC5jCkBAIC05NDgsNyArOTQ4LDcgQEAgc3RhdGljIHZvaWQgdmhvc3RfaW90bGJfbm90aWZ5 X3ZxKHN0cnVjdCB2aG9zdF9kZXYgKmQsCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG5vZGUs IG4sICZkLT5wZW5kaW5nX2xpc3QsIG5vZGUpIHsKIAkJc3RydWN0IHZob3N0X2lvdGxiX21zZyAq dnFfbXNnID0gJm5vZGUtPm1zZy5pb3RsYjsKIAkJaWYgKG1zZy0+aW92YSA8PSB2cV9tc2ctPmlv dmEgJiYKLQkJICAgIG1zZy0+aW92YSArIG1zZy0+c2l6ZSAtIDEgPiB2cV9tc2ctPmlvdmEgJiYK KwkJICAgIG1zZy0+aW92YSArIG1zZy0+c2l6ZSAtIDEgPj0gdnFfbXNnLT5pb3ZhICYmCiAJCSAg ICB2cV9tc2ctPnR5cGUgPT0gVkhPU1RfSU9UTEJfTUlTUykgewogCQkJdmhvc3RfcG9sbF9xdWV1 ZSgmbm9kZS0+dnEtPnBvbGwpOwogCQkJbGlzdF9kZWwoJm5vZGUtPm5vZGUpOwotLSAKMi4xMy42 CgoKRnJvbSA5ZWE5OWI5ZTU5MDdlNWI3MWJjOWJjYjNkNTI3Y2MyZDdmZjQ3YmJlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3Jr cGx1bWJlci5vcmc+CkRhdGU6IFR1ZSwgMjEgQXVnIDIwMTggMTA6NDA6MzggLTA3MDAKU3ViamVj dDogW1BBVENIIDIyLzI5XSBodl9uZXR2c2M6IGlnbm9yZSBkZXZpY2VzIHRoYXQgYXJlIG5vdCBQ Q0kKClsgVXBzdHJlYW0gY29tbWl0IGI5M2MxYjVhYzg2NDNjYzA4YmI3NGZhOGFlMjFkNmM2M2Rm Y2IyM2QgXQoKUmVnaXN0ZXJpbmcgYW5vdGhlciBkZXZpY2Ugd2l0aCBzYW1lIE1BQyBhZGRyZXNz IChzdWNoIGFzIFRBUCwgVlBOIG9yCkRQREsgS05JKSB3aWxsIGNvbmZ1c2UgdGhlIFZGIGF1dG9i aW5kaW5nIGxvZ2ljLiAgUmVzdHJpY3QgdGhlIHNlYXJjaAp0byBvbmx5IHJ1biBpZiB0aGUgZGV2 aWNlIGlzIGtub3duIHRvIGJlIGEgUENJIGF0dGFjaGVkIFZGLgoKRml4ZXM6IGU4ZmY0MGQ0YmZm MSAoImh2X25ldHZzYzogaW1wcm92ZSBWRiBkZXZpY2UgbWF0Y2hpbmciKQpTaWduZWQtb2ZmLWJ5 OiBTdGVwaGVuIEhlbW1pbmdlciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2h5cGVydi9uZXR2c2NfZHJ2LmMgfCA1ICsrKysrCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYyBiL2Ry aXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKaW5kZXggYWRjMTc2OTQzZDk0Li5lZWQ1NTky MmY1NTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKKysrIGIv ZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1 ZGUgPGxpbnV4L25ldGRldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luZXRkZXZpY2UuaD4KICNp bmNsdWRlIDxsaW51eC9ldGhlcmRldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2lu Y2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgogI2luY2x1ZGUgPGxpbnV4L2lmX3ZsYW4uaD4KICNpbmNs dWRlIDxsaW51eC9pbi5oPgpAQCAtMTkyNSwxMSArMTkyNiwxNSBAQCBzdGF0aWMgaW50IG5ldHZz Y19yZWdpc3Rlcl92ZihzdHJ1Y3QgbmV0X2RldmljZSAqdmZfbmV0ZGV2KQogewogCXN0cnVjdCBu ZXRfZGV2aWNlICpuZGV2OwogCXN0cnVjdCBuZXRfZGV2aWNlX2NvbnRleHQgKm5ldF9kZXZpY2Vf Y3R4OworCXN0cnVjdCBkZXZpY2UgKnBkZXYgPSB2Zl9uZXRkZXYtPmRldi5wYXJlbnQ7CiAJc3Ry dWN0IG5ldHZzY19kZXZpY2UgKm5ldHZzY19kZXY7CiAKIAlpZiAodmZfbmV0ZGV2LT5hZGRyX2xl biAhPSBFVEhfQUxFTikKIAkJcmV0dXJuIE5PVElGWV9ET05FOwogCisJaWYgKCFwZGV2IHx8ICFk ZXZfaXNfcGNpKHBkZXYpIHx8IGRldl9pc19wZihwZGV2KSkKKwkJcmV0dXJuIE5PVElGWV9ET05F OworCiAJLyoKIAkgKiBXZSB3aWxsIHVzZSB0aGUgTUFDIGFkZHJlc3MgdG8gbG9jYXRlIHRoZSBz eW50aGV0aWMgaW50ZXJmYWNlIHRvCiAJICogYXNzb2NpYXRlIHdpdGggdGhlIFZGIGludGVyZmFj ZS4gSWYgd2UgZG9uJ3QgZmluZCBhIG1hdGNoaW5nCi0tIAoyLjEzLjYKCgpGcm9tIGZhMWU0NThl OTE2M2MxY2I5MjE4ZWU4M2M1OTJlOWUxNzRlM2M2Y2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERleHVhbiBDdWkgPGRlY3VpQG1pY3Jvc29mdC5jb20+CkRhdGU6IFRodSwgMzAgQXVn IDIwMTggMDU6NDI6MTMgKzAwMDAKU3ViamVjdDogW1BBVENIIDIzLzI5XSBodl9uZXR2c2M6IEZp eCBhIGRlYWRsb2NrIGJ5IGdldHRpbmcgcnRubCBsb2NrIGVhcmxpZXIKIGluIG5ldHZzY19wcm9i ZSgpCgpbIFVwc3RyZWFtIGNvbW1pdCBlMDRlN2E3YmJkNGJiYWJlZjRlMWE1ODM2N2U1ZmM5YjJl ZGMzYjEwIF0KClRoaXMgcGF0Y2ggZml4ZXMgdGhlIHJhY2UgYmV0d2VlbiBuZXR2c2NfcHJvYmUo KSBhbmQKcm5kaXNfc2V0X3N1YmNoYW5uZWwoKSwgd2hpY2ggY2FuIGNhdXNlIGEgZGVhZGxvY2su CgpUaGVzZSBhcmUgdGhlIHJlbGF0ZWQgMyBwYXRocyB3aGljaCBzaG93IHRoZSBkZWFkbG9jazoK CnBhdGggIzE6CiAgICBXb3JrcXVldWU6IGh2X3ZtYnVzX2NvbiB2bWJ1c19vbm1lc3NhZ2Vfd29y ayBbaHZfdm1idXNdCiAgICBDYWxsIFRyYWNlOgogICAgIHNjaGVkdWxlCiAgICAgc2NoZWR1bGVf cHJlZW1wdF9kaXNhYmxlZAogICAgIF9fbXV0ZXhfbG9jawogICAgIF9fZGV2aWNlX2F0dGFjaAog ICAgIGJ1c19wcm9iZV9kZXZpY2UKICAgICBkZXZpY2VfYWRkCiAgICAgdm1idXNfZGV2aWNlX3Jl Z2lzdGVyCiAgICAgdm1idXNfb25vZmZlcgogICAgIHZtYnVzX29ubWVzc2FnZV93b3JrCiAgICAg cHJvY2Vzc19vbmVfd29yawogICAgIHdvcmtlcl90aHJlYWQKICAgICBrdGhyZWFkCiAgICAgcmV0 X2Zyb21fZm9yawoKcGF0aCAjMjoKICAgIHNjaGVkdWxlCiAgICAgc2NoZWR1bGVfcHJlZW1wdF9k aXNhYmxlZAogICAgIF9fbXV0ZXhfbG9jawogICAgIG5ldHZzY19wcm9iZQogICAgIHZtYnVzX3By b2JlCiAgICAgcmVhbGx5X3Byb2JlCiAgICAgX19kcml2ZXJfYXR0YWNoCiAgICAgYnVzX2Zvcl9l YWNoX2RldgogICAgIGRyaXZlcl9hdHRhY2hfYXN5bmMKICAgICBhc3luY19ydW5fZW50cnlfZm4K ICAgICBwcm9jZXNzX29uZV93b3JrCiAgICAgd29ya2VyX3RocmVhZAogICAgIGt0aHJlYWQKICAg ICByZXRfZnJvbV9mb3JrCgpwYXRoICMzOgogICAgV29ya3F1ZXVlOiBldmVudHMgbmV0dnNjX3N1 YmNoYW5fd29yayBbaHZfbmV0dnNjXQogICAgQ2FsbCBUcmFjZToKICAgICBzY2hlZHVsZQogICAg IHJuZGlzX3NldF9zdWJjaGFubmVsCiAgICAgbmV0dnNjX3N1YmNoYW5fd29yawogICAgIHByb2Nl c3Nfb25lX3dvcmsKICAgICB3b3JrZXJfdGhyZWFkCiAgICAga3RocmVhZAogICAgIHJldF9mcm9t X2ZvcmsKCkJlZm9yZSBwYXRoICMxIGZpbmlzaGVzLCBwYXRoICMyIGNhbiBzdGFydCB0byBydW4s IGJlY2F1c2UganVzdCBiZWZvcmUKdGhlICJidXNfcHJvYmVfZGV2aWNlKGRldik7IiBpbiBkZXZp Y2VfYWRkKCkgaW4gcGF0aCAjMSwgdGhlcmUgaXMgYSBsaW5lCiJvYmplY3RfdWV2ZW50KCZkZXYt PmtvYmosIEtPQkpfQUREKTsiLCBzbyBzeXN0ZW1kLXVkZXZkIGNhbgppbW1lZGlhdGVseSB0cnkg dG8gbG9hZCBodl9uZXR2c2MgYW5kIGhlbmNlIHBhdGggIzIgY2FuIHN0YXJ0IHRvIHJ1bi4KCk5l eHQsIHBhdGggIzIgb2ZmbG9hZHMgdGhlIHN1YmNoYW5uYWwncyBpbml0aWFsaXphdGlvbiB0byBh IHdvcmtxdWV1ZSwKaS5lLiBwYXRoICMzLCBzbyB3ZSBjYW4gZW5kIHVwIGluIGEgZGVhZGxvY2sg c2l0dWF0aW9uIGxpa2UgdGhpczoKClBhdGggIzIgZ2V0cyB0aGUgZGV2aWNlIGxvY2ssIGFuZCBp cyB0cnlpbmcgdG8gZ2V0IHRoZSBydG5sIGxvY2s7ClBhdGggIzMgZ2V0cyB0aGUgcnRubCBsb2Nr IGFuZCBpcyB3YWl0aW5nIGZvciBhbGwgdGhlIHN1YmNoYW5uZWwgbWVzc2FnZXMKdG8gYmUgcHJv Y2Vzc2VkOwpQYXRoICMxIGlzIHRyeWluZyB0byBnZXQgdGhlIGRldmljZSBsb2NrLCBidXQgc2lu Y2UgIzIgaXMgbm90IHJlbGVhc2luZwp0aGUgZGV2aWNlIGxvY2ssIHBhdGggIzEgaGFzIHRvIHNs ZWVwOyBzaW5jZSB0aGUgVk1CdXMgbWVzc2FnZXMgYXJlCnByb2Nlc3NlZCBvbmUgYnkgb25lLCB0 aGlzIG1lYW5zIHRoZSBzdWItY2hhbm5lbCBtZXNzYWdlcyBjYW4ndCBiZQpwcm9jZWRkZWQsIHNv ICMzIGhhcyB0byBzbGVlcCB3aXRoIHRoZSBydG5sIGxvY2sgaGVsZCwgYW5kIGZpbmFsbHkgIzIK aGFzIHRvIHNsZWVwLi4uIE5vdyBhbGwgdGhlIDMgcGF0aHMgYXJlIHNsZWVwaW5nIGFuZCB3ZSBo aXQgdGhlIGRlYWRsb2NrLgoKV2l0aCB0aGUgcGF0Y2gsIHdlIGNhbiBtYWtlIHN1cmUgIzIgZ2V0 cyBib3RoIHRoZSBkZXZpY2UgbG9jayBhbmQgdGhlCnJ0bmwgbG9jayB0b2dldGhlciwgZ2V0cyBp dHMgam9iIGRvbmUsIGFuZCByZWxlYXNlcyB0aGUgbG9ja3MsIHNvICMxCmFuZCAjMyB3aWxsIG5v dCBiZSBibG9ja2VkIGZvciBldmVyLgoKRml4ZXM6IDgxOTViMTM5NmVjOCAoImh2X25ldHZzYzog Zml4IGRlYWRsb2NrIG9uIGhvdHBsdWciKQpTaWduZWQtb2ZmLWJ5OiBEZXh1YW4gQ3VpIDxkZWN1 aUBtaWNyb3NvZnQuY29tPgpDYzogU3RlcGhlbiBIZW1taW5nZXIgPHN0aGVtbWluQG1pY3Jvc29m dC5jb20+CkNjOiBLLiBZLiBTcmluaXZhc2FuIDxreXNAbWljcm9zb2Z0LmNvbT4KQ2M6IEhhaXlh bmcgWmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9oeXBlcnYvbmV0 dnNjX2Rydi5jIHwgMTEgKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZz Y19kcnYuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKaW5kZXggZWVkNTU5MjJm NTUzLi5lMjY2OGRjNmIwNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2Nf ZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwpAQCAtMjA3Myw2ICsy MDczLDE2IEBAIHN0YXRpYyBpbnQgbmV0dnNjX3Byb2JlKHN0cnVjdCBodl9kZXZpY2UgKmRldiwK IAogCW1lbWNweShuZXQtPmRldl9hZGRyLCBkZXZpY2VfaW5mby5tYWNfYWRyLCBFVEhfQUxFTik7 CiAKKwkvKiBXZSBtdXN0IGdldCBydG5sIGxvY2sgYmVmb3JlIHNjaGVkdWxpbmcgbnZkZXYtPnN1 YmNoYW5fd29yaywKKwkgKiBvdGhlcndpc2UgbmV0dnNjX3N1YmNoYW5fd29yaygpIGNhbiBnZXQg cnRubCBsb2NrIGZpcnN0IGFuZCB3YWl0CisJICogYWxsIHN1YmNoYW5uZWxzIHRvIHNob3cgdXAs IGJ1dCB0aGF0IG1heSBub3QgaGFwcGVuIGJlY2F1c2UKKwkgKiBuZXR2c2NfcHJvYmUoKSBjYW4n dCBnZXQgcnRubCBsb2NrIGFuZCBhcyBhIHJlc3VsdCB2bWJ1c19vbm9mZmVyKCkKKwkgKiAtPiAu Li4gLT4gZGV2aWNlX2FkZCgpIC0+IC4uLiAtPiBfX2RldmljZV9hdHRhY2goKSBjYW4ndCBnZXQK KwkgKiB0aGUgZGV2aWNlIGxvY2ssIHNvIGFsbCB0aGUgc3ViY2hhbm5lbHMgY2FuJ3QgYmUgcHJv Y2Vzc2VkIC0tCisJICogZmluYWxseSBuZXR2c2Nfc3ViY2hhbl93b3JrKCkgaGFuZ3MgZm9yIGV2 ZXIuCisJICovCisJcnRubF9sb2NrKCk7CisKIAlpZiAobnZkZXYtPm51bV9jaG4gPiAxKQogCQlz Y2hlZHVsZV93b3JrKCZudmRldi0+c3ViY2hhbl93b3JrKTsKIApAQCAtMjA5MSw3ICsyMTAxLDYg QEAgc3RhdGljIGludCBuZXR2c2NfcHJvYmUoc3RydWN0IGh2X2RldmljZSAqZGV2LAogCWVsc2UK IAkJbmV0LT5tYXhfbXR1ID0gRVRIX0RBVEFfTEVOOwogCi0JcnRubF9sb2NrKCk7CiAJcmV0ID0g cmVnaXN0ZXJfbmV0ZGV2aWNlKG5ldCk7CiAJaWYgKHJldCAhPSAwKSB7CiAJCXByX2VycigiVW5h YmxlIHRvIHJlZ2lzdGVyIG5ldGRldi5cbiIpOwotLSAKMi4xMy42CgoKRnJvbSAyYzE5NTM1YjY1 MjcxOGYwM2Y0YjM0NDIxYjJlNGQ4NDFjMTc1ZTM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBIYWlxaW5nIEJhaSA8SGFpcWluZy5CYWlAd2luZHJpdmVyLmNvbT4KRGF0ZTogTW9uLCAy NyBBdWcgMjAxOCAwOTozMjoyNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMjldIHRpcGM6IGZp eCB0aGUgYmlnL2xpdHRsZSBlbmRpYW4gaXNzdWUgaW4gdGlwY19kZXN0CgpbIFVwc3RyZWFtIGNv bW1pdCAzMDkzNTE5OGI3ZDBiZTEyYjFjNDVjMzI4YjY2YTdmZGVmYjE2MjU2IF0KCkluIGZ1bmN0 aW9uIHRpcGNfZGVzdF9wdXNoLCB0aGUgMzJiaXQgdmFyaWFibGVzICdub2RlJyBhbmQgJ3BvcnQn CmFyZSBzdG9yZWQgc2VwYXJhdGVseSBpbiB1cHBwZXIgYW5kIGxvd2VyIHBhcnQgb2YgNjRiaXQg J3ZhbHVlJy4KVGhlbiB0aGlzIHZhbHVlIGlzIGFzc2lnbmVkIHRvIGRzdC0+dmFsdWUgd2hpY2gg aXMgYSB1bmlvbiBsaWtlOgp1bmlvbgp7CiAgc3RydWN0IHsKICAgIHUzMiBwb3J0OwogICAgdTMy IG5vZGU7CiAgfTsKICB1NjQgdmFsdWU7Cn0KVGhpcyB3b3JrcyBvbiBsaXR0bGUtZW5kaWFuIG1h Y2hpbmVzIGxpa2UgeDg2IGJ1dCBmYWlscyBvbiBiaWctZW5kaWFuCm1hY2hpbmVzLgoKVGhlIGZp eCByZW1vdmUgdGhlICd2YWx1ZScgc3RhY2sgcGFyYW1ldGVyIGFuZCBldmVuIHRoZSAndmFsdWUn Cm1lbWJlciBvZiB0aGUgdW5pb24gaW4gdGlwY19kZXN0LCBhc3NpZ24gdGhlICdub2RlJyBhbmQg J3BvcnQnIG1lbWJlcgpkaXJlY3RseSB3aXRoIHRoZSBpbnB1dCBwYXJhbWV0ZXIgdG8gYXZvaWQg dGhlIGVuZGlhbiBpc3N1ZS4KCkZpeGVzOiBhODBhZTUzMDZhNzMgKCJ0aXBjOiBpbXByb3ZlIGRl c3RpbmF0aW9uIGxpbmtlZCBsaXN0IikKU2lnbmVkLW9mZi1ieTogWmhlbmJvIEdhbyA8emhlbmJv Lmdhb0B3aW5kcml2ZXIuY29tPgpBY2tlZC1ieTogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nz b24uY29tPgpTaWduZWQtb2ZmLWJ5OiBIYWlxaW5nIEJhaSA8SGFpcWluZy5CYWlAd2luZHJpdmVy LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC90aXBjL25hbWVfdGFibGUuYyB8IDEwICsrKystLS0tLS0KIG5ldC90aXBjL25h bWVfdGFibGUuaCB8ICA5ICsrLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMo KyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL25hbWVfdGFibGUuYyBi L25ldC90aXBjL25hbWVfdGFibGUuYwppbmRleCBkZDFjNGZhMmViNzguLmZmM2YyZDgyN2YzMiAx MDA2NDQKLS0tIGEvbmV0L3RpcGMvbmFtZV90YWJsZS5jCisrKyBiL25ldC90aXBjL25hbWVfdGFi bGUuYwpAQCAtOTc3LDIwICs5NzcsMTcgQEAgaW50IHRpcGNfbmxfbmFtZV90YWJsZV9kdW1wKHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAogc3RydWN0 IHRpcGNfZGVzdCAqdGlwY19kZXN0X2ZpbmQoc3RydWN0IGxpc3RfaGVhZCAqbCwgdTMyIG5vZGUs IHUzMiBwb3J0KQogewotCXU2NCB2YWx1ZSA9ICh1NjQpbm9kZSA8PCAzMiB8IHBvcnQ7CiAJc3Ry dWN0IHRpcGNfZGVzdCAqZHN0OwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShkc3QsIGwsIGxpc3Qp IHsKLQkJaWYgKGRzdC0+dmFsdWUgIT0gdmFsdWUpCi0JCQljb250aW51ZTsKLQkJcmV0dXJuIGRz dDsKKwkJaWYgKGRzdC0+bm9kZSA9PSBub2RlICYmIGRzdC0+cG9ydCA9PSBwb3J0KQorCQkJcmV0 dXJuIGRzdDsKIAl9CiAJcmV0dXJuIE5VTEw7CiB9CiAKIGJvb2wgdGlwY19kZXN0X3B1c2goc3Ry dWN0IGxpc3RfaGVhZCAqbCwgdTMyIG5vZGUsIHUzMiBwb3J0KQogewotCXU2NCB2YWx1ZSA9ICh1 NjQpbm9kZSA8PCAzMiB8IHBvcnQ7CiAJc3RydWN0IHRpcGNfZGVzdCAqZHN0OwogCiAJaWYgKHRp cGNfZGVzdF9maW5kKGwsIG5vZGUsIHBvcnQpKQpAQCAtOTk5LDcgKzk5Niw4IEBAIGJvb2wgdGlw Y19kZXN0X3B1c2goc3RydWN0IGxpc3RfaGVhZCAqbCwgdTMyIG5vZGUsIHUzMiBwb3J0KQogCWRz dCA9IGttYWxsb2Moc2l6ZW9mKCpkc3QpLCBHRlBfQVRPTUlDKTsKIAlpZiAodW5saWtlbHkoIWRz dCkpCiAJCXJldHVybiBmYWxzZTsKLQlkc3QtPnZhbHVlID0gdmFsdWU7CisJZHN0LT5ub2RlID0g bm9kZTsKKwlkc3QtPnBvcnQgPSBwb3J0OwogCWxpc3RfYWRkKCZkc3QtPmxpc3QsIGwpOwogCXJl dHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmFtZV90YWJsZS5oIGIvbmV0L3Rp cGMvbmFtZV90YWJsZS5oCmluZGV4IDBmZWJiYTQxZGE4Ni4uODkyYmQ3NTBiODVmIDEwMDY0NAot LS0gYS9uZXQvdGlwYy9uYW1lX3RhYmxlLmgKKysrIGIvbmV0L3RpcGMvbmFtZV90YWJsZS5oCkBA IC0xMzMsMTMgKzEzMyw4IEBAIHZvaWQgdGlwY19uYW1ldGJsX3N0b3Aoc3RydWN0IG5ldCAqbmV0 KTsKIAogc3RydWN0IHRpcGNfZGVzdCB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwotCXVuaW9u IHsKLQkJc3RydWN0IHsKLQkJCXUzMiBwb3J0OwotCQkJdTMyIG5vZGU7Ci0JCX07Ci0JCXU2NCB2 YWx1ZTsKLQl9OworCXUzMiBwb3J0OworCXUzMiBub2RlOwogfTsKIAogc3RydWN0IHRpcGNfZGVz dCAqdGlwY19kZXN0X2ZpbmQoc3RydWN0IGxpc3RfaGVhZCAqbCwgdTMyIG5vZGUsIHUzMiBwb3J0 KTsKLS0gCjIuMTMuNgoKCkZyb20gNGZiZjcxYzNjY2FmYTU4OTZkY2JmODEwNjkyZjI3NmJkZDRl MzI2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5A Z21haWwuY29tPgpEYXRlOiBNb24sIDI3IEF1ZyAyMDE4IDE4OjQwOjE4ICswODAwClN1YmplY3Q6 IFtQQVRDSCAyNS8yOV0gc2N0cDogcmVtb3ZlIHVzZWxlc3Mgc3RhcnRfZmFpbCBmcm9tIHNjdHBf aHRfaXRlciBpbgogcHJvYwoKWyBVcHN0cmVhbSBjb21taXQgODM0NTM5ZTY5YTVmZTJhYWIzM2Nj Nzc3Y2NmZDRhNGZjYzViOTc3MCBdCgpBZnRlciBjaGFuZ2luZyByaGFzaHRhYmxlX3dhbGtfc3Rh cnQgdG8gcmV0dXJuIHZvaWQsIHN0YXJ0X2ZhaWwgd291bGQKbmV2ZXIgYmUgc2V0IG90aGVyIHZh bHVlIHRoYW4gMCwgYW5kIHRoZSBjaGVja2luZyBmb3Igc3RhcnRfZmFpbCBpcwpwb2ludGxlc3Ms IHNvIHJlbW92ZSBpdC4KCkZpeGVzOiA5N2E2ZWM0YWMwMjEgKCJyaGFzaHRhYmxlOiBDaGFuZ2Ug cmhhc2h0YWJsZV93YWxrX3N0YXJ0IHRvIHJldHVybiB2b2lkIikKU2lnbmVkLW9mZi1ieTogWGlu IExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3Jt YW5AdHV4ZHJpdmVyLmNvbT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJj ZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvcHJvYy5jIHwgNCAtLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9wcm9jLmMgYi9u ZXQvc2N0cC9wcm9jLmMKaW5kZXggNjVjOTE4OWY4ZjZiLi4xZThlNWI0NzNiMDYgMTAwNjQ0Ci0t LSBhL25ldC9zY3RwL3Byb2MuYworKysgYi9uZXQvc2N0cC9wcm9jLmMKQEAgLTI0Myw3ICsyNDMs NiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBzY3RwX2Vwc19zZXFfZm9w cyA9IHsKIHN0cnVjdCBzY3RwX2h0X2l0ZXIgewogCXN0cnVjdCBzZXFfbmV0X3ByaXZhdGUgcDsK IAlzdHJ1Y3Qgcmhhc2h0YWJsZV9pdGVyIGh0aTsKLQlpbnQgc3RhcnRfZmFpbDsKIH07CiAKIHN0 YXRpYyB2b2lkICpzY3RwX3RyYW5zcG9ydF9zZXFfc3RhcnQoc3RydWN0IHNlcV9maWxlICpzZXEs IGxvZmZfdCAqcG9zKQpAQCAtMjUyLDcgKzI1MSw2IEBAIHN0YXRpYyB2b2lkICpzY3RwX3RyYW5z cG9ydF9zZXFfc3RhcnQoc3RydWN0IHNlcV9maWxlICpzZXEsIGxvZmZfdCAqcG9zKQogCiAJc2N0 cF90cmFuc3BvcnRfd2Fsa19zdGFydCgmaXRlci0+aHRpKTsKIAotCWl0ZXItPnN0YXJ0X2ZhaWwg PSAwOwogCXJldHVybiBzY3RwX3RyYW5zcG9ydF9nZXRfaWR4KHNlcV9maWxlX25ldChzZXEpLCAm aXRlci0+aHRpLCAqcG9zKTsKIH0KIApAQCAtMjYwLDggKzI1OCw2IEBAIHN0YXRpYyB2b2lkIHNj dHBfdHJhbnNwb3J0X3NlcV9zdG9wKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KQogewog CXN0cnVjdCBzY3RwX2h0X2l0ZXIgKml0ZXIgPSBzZXEtPnByaXZhdGU7CiAKLQlpZiAoaXRlci0+ c3RhcnRfZmFpbCkKLQkJcmV0dXJuOwogCXNjdHBfdHJhbnNwb3J0X3dhbGtfc3RvcCgmaXRlci0+ aHRpKTsKIH0KIAotLSAKMi4xMy42CgoKRnJvbSAxMjgxOGM4ODViNDc1ZDZmYWNkZWQxZTJiZWVm NjBlNTZlYTY3MWY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVj aWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjcgQXVnIDIwMTggMTg6NDE6MzIgKzA4MDAK U3ViamVjdDogW1BBVENIIDI2LzI5XSBlcnNwYW46IHNldCBlcnNwYW5fdmVyIHRvIDEgYnkgZGVm YXVsdCB3aGVuIGFkZGluZyBhbgogZXJzcGFuIGRldgoKWyBVcHN0cmVhbSBjb21taXQgODQ1ODFi ZGFlOTU4NzAyM2NlYTFkMTM5NTIzZjBlZjBmMjhiZDg4ZCBdCgpBZnRlciBlcnNwYW5fdmVyIGlz IGludHJvdWRjZWQsIGlmIGVyc3Bhbl92ZXIgaXMgbm90IHNldCBpbiBpcHJvdXRlLCBpdHMKdmFs dWUgd2lsbCBiZSBsZWZ0IDAgYnkgZGVmYXVsdC4gU2luY2UgQ29tbWl0IDAyZjk5ZGYxODc1YyAo ImVyc3BhbjogZml4CmludmFsaWQgZXJzcGFuIHZlcnNpb24uIiksIGl0IGhhcyBicm9rZW4gdGhl IHRyYWZmaWMgZHVlIHRvIHRoZSB2ZXJzaW9uCmNoZWNrIGluIGVyc3Bhbl94bWl0IGlmIHVzZXJz IGFyZSBub3QgYXdhcmUgb2YgJ2Vyc3Bhbl92ZXInIHBhcmFtLCBsaWtlCnVzaW5nIGFuIG9sZCB2 ZXJzaW9uIG9mIGlwcm91dGUuCgpUbyBmaXggdGhpcyBjb21wYXRpYmlsaXR5IHByb2JsZW0sIGl0 IHNldHMgZXJzcGFuX3ZlciB0byAxIGJ5IGRlZmF1bHQKd2hlbiBhZGRpbmcgYW4gZXJzcGFuIGRl diBpbiBlcnNwYW5fc2V0dXAuIE5vdGUgdGhhdCB3ZSBjYW4ndCBkbyBpdCBpbgppcGdyZV9uZXRs aW5rX3Bhcm1zLCBhcyB0aGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNlZCBieSBpcGdyZV9jaGFuZ2Vs aW5rLgoKRml4ZXM6IDAyZjk5ZGYxODc1YyAoImVyc3BhbjogZml4IGludmFsaWQgZXJzcGFuIHZl cnNpb24uIikKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pcF9n cmUuYyAgfCAzICsrKwogbmV0L2lwdjYvaXA2X2dyZS5jIHwgMSArCiAyIGZpbGVzIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2dyZS5jIGIvbmV0L2lw djQvaXBfZ3JlLmMKaW5kZXggZjIwMGIzMDRmNzZjLi5jMmMxZjU3NjZkNjggMTAwNjQ0Ci0tLSBh L25ldC9pcHY0L2lwX2dyZS5jCisrKyBiL25ldC9pcHY0L2lwX2dyZS5jCkBAIC0xNDk5LDExICsx NDk5LDE0IEBAIHN0YXRpYyBpbnQgaXBncmVfZmlsbF9pbmZvKHN0cnVjdCBza19idWZmICpza2Is IGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAKIHN0YXRpYyB2b2lkIGVyc3Bhbl9zZXR1 cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogeworCXN0cnVjdCBpcF90dW5uZWwgKnQgPSBuZXRk ZXZfcHJpdihkZXYpOworCiAJZXRoZXJfc2V0dXAoZGV2KTsKIAlkZXYtPm5ldGRldl9vcHMgPSAm ZXJzcGFuX25ldGRldl9vcHM7CiAJZGV2LT5wcml2X2ZsYWdzICY9IH5JRkZfVFhfU0tCX1NIQVJJ Tkc7CiAJZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9MSVZFX0FERFJfQ0hBTkdFOwogCWlwX3R1bm5l bF9zZXR1cChkZXYsIGVyc3Bhbl9uZXRfaWQpOworCXQtPmVyc3Bhbl92ZXIgPSAxOwogfQogCiBz dGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgaXBncmVfcG9saWN5W0lGTEFfR1JFX01BWCAr IDFdID0gewpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X2dyZS5jIGIvbmV0L2lwdjYvaXA2X2dy ZS5jCmluZGV4IDFhNGQ2ODk3ZDE3Zi4uMzIwMTY0YzkxZGViIDEwMDY0NAotLS0gYS9uZXQvaXB2 Ni9pcDZfZ3JlLmMKKysrIGIvbmV0L2lwdjYvaXA2X2dyZS5jCkBAIC0xNzU1LDYgKzE3NTUsNyBA QCBzdGF0aWMgdm9pZCBpcDZncmVfbmV0bGlua19wYXJtcyhzdHJ1Y3QgbmxhdHRyICpkYXRhW10s CiAJaWYgKGRhdGFbSUZMQV9HUkVfQ09MTEVDVF9NRVRBREFUQV0pCiAJCXBhcm1zLT5jb2xsZWN0 X21kID0gdHJ1ZTsKIAorCXBhcm1zLT5lcnNwYW5fdmVyID0gMTsKIAlpZiAoZGF0YVtJRkxBX0dS RV9FUlNQQU5fVkVSXSkKIAkJcGFybXMtPmVyc3Bhbl92ZXIgPSBubGFfZ2V0X3U4KGRhdGFbSUZM QV9HUkVfRVJTUEFOX1ZFUl0pOwogCi0tIAoyLjEzLjYKCgpGcm9tIGMwM2I4OTUwMjFjMTdjYjUx YzNhMTJlYWM1YzA1ZDBmNTg0YzFlOTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFo bWFkIEZhdG91bSA8YS5mYXRvdW1AcGVuZ3V0cm9uaXguZGU+CkRhdGU6IFR1ZSwgMjEgQXVnIDIw MTggMTc6MzU6NDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI3LzI5XSBuZXQ6IG1hY2I6IEZpeCBy ZWdyZXNzaW9uIGJyZWFraW5nIG5vbi1NRElPIGZpeGVkLWxpbmsKIFBIWXMKClsgVXBzdHJlYW0g Y29tbWl0IGFiNWYxMTA1NWZkZjhkZmMzZGRiZDg5ZThlM2NjNTUwZGU0MWQxZDMgXQoKY29tbWl0 IDczOWRlOWExNTYzYSAoIm5ldDogbWFjYjogUmVvcmdhbml6ZSBtYWNiX21paSBicmluZ3VwIikg YnJva2UKaW5pdGlhbGl6aW5nIG1hY2Igb24gdGhlIEVWQi1LU1o5NDc3IGV2YWwgYm9hcmQuClRo ZXJlLCBvZl9tZGlvYnVzX3JlZ2lzdGVyIHdhcyBjYWxsZWQgZXZlbiBmb3IgdGhlIGZpeGVkLWxp bmsgcmVwcmVzZW50aW5nCnRoZSBSR01JSS1saW5rIHRvIHRoZSBzd2l0Y2ggd2l0aCB0aGUgcmVz dWx0IHRoYXQgdGhlIGRyaXZlciBhdHRlbXB0cyB0bwplbnVtZXJhdGUgUEhZcyBvbiBhIG5vbi1l eGlzdGVudCBNRElPIGJ1czoKCglsaWJwaHk6IE1BQ0JfbWlpX2J1czogcHJvYmVkCgltZGlvX2J1 cyBmMDAyODAwMC5ldGhlcm5ldC1mZmZmZmZmZjogZml4ZWQtbGluayBoYXMgaW52YWxpZCBQSFkg YWRkcmVzcwoJbWRpb19idXMgZjAwMjgwMDAuZXRoZXJuZXQtZmZmZmZmZmY6IHNjYW4gcGh5IGZp eGVkLWxpbmsgYXQgYWRkcmVzcyAwCiAgICAgICAgW3NuaXBdCgltZGlvX2J1cyBmMDAyODAwMC5l dGhlcm5ldC1mZmZmZmZmZjogc2NhbiBwaHkgZml4ZWQtbGluayBhdCBhZGRyZXNzIDMxCgpUaGUg Ik1ESU8iIGJ1cyByZWdpc3RyYXRpb24gc3VjY2VlZHMgcmVnYXJkbGVzcywgaGF2aW5nIGNsYWlt ZWQgdGhlIHJlc2V0IEdQSU8sCmFuZCBjYWxsaW5nIG9mX3BoeV9yZWdpc3Rlcl9maXhlZF9saW5r IGxhdGVyIG9uIGZhaWxzIGJlY2F1c2UgaXQgdHJpZXMKdG8gY2xhaW0gdGhlIHNhbWUgR1BJTzoK CgltYWNiIGYwMDI4MDAwLmV0aGVybmV0OiBicm9rZW4gZml4ZWQtbGluayBzcGVjaWZpY2F0aW9u CgpGaXggdGhpcyBieSByZWdpc3RlcmluZyB0aGUgZml4ZWQtbGluayBiZWZvcmUgY2FsbGluZyBt ZGlvYnVzX3JlZ2lzdGVyLgoKRml4ZXM6IDczOWRlOWExNTYzYSAoIm5ldDogbWFjYjogUmVvcmdh bml6ZSBtYWNiX21paSBicmluZ3VwIikKU2lnbmVkLW9mZi1ieTogQWhtYWQgRmF0b3VtIDxhLmZh dG91bUBwZW5ndXRyb25peC5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9t YWluLmMgfCAyMiArKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5z ZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2Uv bWFjYl9tYWluLmMKaW5kZXggNjI2MzAwM2FhZmVmLi45MGVlMjA2MWRhYTggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYwpAQCAtNDgxLDExICs0ODEsNiBAQCBzdGF0 aWMgaW50IG1hY2JfbWlpX3Byb2JlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAKIAlpZiAobnAp IHsKIAkJaWYgKG9mX3BoeV9pc19maXhlZF9saW5rKG5wKSkgewotCQkJaWYgKG9mX3BoeV9yZWdp c3Rlcl9maXhlZF9saW5rKG5wKSA8IDApIHsKLQkJCQlkZXZfZXJyKCZicC0+cGRldi0+ZGV2LAot CQkJCQkiYnJva2VuIGZpeGVkLWxpbmsgc3BlY2lmaWNhdGlvblxuIik7Ci0JCQkJcmV0dXJuIC1F Tk9ERVY7Ci0JCQl9CiAJCQlicC0+cGh5X25vZGUgPSBvZl9ub2RlX2dldChucCk7CiAJCX0gZWxz ZSB7CiAJCQlicC0+cGh5X25vZGUgPSBvZl9wYXJzZV9waGFuZGxlKG5wLCAicGh5LWhhbmRsZSIs IDApOwpAQCAtNTY4LDcgKzU2Myw3IEBAIHN0YXRpYyBpbnQgbWFjYl9taWlfaW5pdChzdHJ1Y3Qg bWFjYiAqYnApCiB7CiAJc3RydWN0IG1hY2JfcGxhdGZvcm1fZGF0YSAqcGRhdGE7CiAJc3RydWN0 IGRldmljZV9ub2RlICpucDsKLQlpbnQgZXJyOworCWludCBlcnIgPSAtRU5YSU87CiAKIAkvKiBF bmFibGUgbWFuYWdlbWVudCBwb3J0ICovCiAJbWFjYl93cml0ZWwoYnAsIE5DUiwgTUFDQl9CSVQo TVBFKSk7CkBAIC01OTIsMTcgKzU4NywyMyBAQCBzdGF0aWMgaW50IG1hY2JfbWlpX2luaXQoc3Ry dWN0IG1hY2IgKmJwKQogCiAJbnAgPSBicC0+cGRldi0+ZGV2Lm9mX25vZGU7CiAKLQlpZiAobnAp IHsKLQkJZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihicC0+bWlpX2J1cywgbnApOworCWlmIChu cCAmJiBvZl9waHlfaXNfZml4ZWRfbGluayhucCkpIHsKKwkJaWYgKG9mX3BoeV9yZWdpc3Rlcl9m aXhlZF9saW5rKG5wKSA8IDApIHsKKwkJCWRldl9lcnIoJmJwLT5wZGV2LT5kZXYsCisJCQkJImJy b2tlbiBmaXhlZC1saW5rIHNwZWNpZmljYXRpb24gJXBPRlxuIiwgbnApOworCQkJZ290byBlcnJf b3V0X2ZyZWVfbWRpb2J1czsKKwkJfQorCisJCWVyciA9IG1kaW9idXNfcmVnaXN0ZXIoYnAtPm1p aV9idXMpOwogCX0gZWxzZSB7CiAJCWlmIChwZGF0YSkKIAkJCWJwLT5taWlfYnVzLT5waHlfbWFz ayA9IHBkYXRhLT5waHlfbWFzazsKIAotCQllcnIgPSBtZGlvYnVzX3JlZ2lzdGVyKGJwLT5taWlf YnVzKTsKKwkJZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihicC0+bWlpX2J1cywgbnApOwogCX0K IAogCWlmIChlcnIpCi0JCWdvdG8gZXJyX291dF9mcmVlX21kaW9idXM7CisJCWdvdG8gZXJyX291 dF9mcmVlX2ZpeGVkX2xpbms7CiAKIAllcnIgPSBtYWNiX21paV9wcm9iZShicC0+ZGV2KTsKIAlp ZiAoZXJyKQpAQCAtNjEyLDYgKzYxMyw3IEBAIHN0YXRpYyBpbnQgbWFjYl9taWlfaW5pdChzdHJ1 Y3QgbWFjYiAqYnApCiAKIGVycl9vdXRfdW5yZWdpc3Rlcl9idXM6CiAJbWRpb2J1c191bnJlZ2lz dGVyKGJwLT5taWlfYnVzKTsKK2Vycl9vdXRfZnJlZV9maXhlZF9saW5rOgogCWlmIChucCAmJiBv Zl9waHlfaXNfZml4ZWRfbGluayhucCkpCiAJCW9mX3BoeV9kZXJlZ2lzdGVyX2ZpeGVkX2xpbmso bnApOwogZXJyX291dF9mcmVlX21kaW9idXM6Ci0tIAoyLjEzLjYKCgpGcm9tIDJkODQ0OTQ5ZjYw YTNjYTU5ZTljMmJlODcyY2M5NDBmMDdiYjQ4NjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEhhaXNodWFuZyBZYW4gPHlhbmhhaXNodWFuZ0BjbXNzLmNoaW5hbW9iaWxlLmNvbT4KRGF0 ZTogU3VuLCAxOSBBdWcgMjAxOCAxNTowNTowNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMjld IGlwNl92dGk6IGZpeCBjcmVhdGluZyBmYWxsYmFjayB0dW5uZWwgZGV2aWNlIGZvciB2dGk2Cgpb IFVwc3RyZWFtIGNvbW1pdCBlMjk0OGU1YWY4ZWViNmM5NDUwMDA3NzJiNzYxM2IwMzIzYTBhMjAz IF0KCldoZW4gc2V0IGZiX3R1bm5lbHNfb25seV9mb3JfaW5pdF9uZXQgdG8gMSwgZG9uJ3QgY3Jl YXRlIGZhbGxiYWNrIHR1bm5lbApkZXZpY2UgZm9yIHZ0aTYgd2hlbiBhIG5ldyBuYW1lc3BhY2Ug aXMgY3JlYXRlZC4KClRlc3RlZDoKW3Jvb3RAYnVpbGRlcjIgfl0jIG1vZHByb2JlIGlwNl90dW5u ZWwKW3Jvb3RAYnVpbGRlcjIgfl0jIG1vZHByb2JlIGlwNl92dGkKW3Jvb3RAYnVpbGRlcjIgfl0j IGVjaG8gMSA+IC9wcm9jL3N5cy9uZXQvY29yZS9mYl90dW5uZWxzX29ubHlfZm9yX2luaXRfbmV0 Cltyb290QGJ1aWxkZXIyIH5dIyB1bnNoYXJlIC1uCltyb290QGJ1aWxkZXIyIH5dIyBpcCBsaW5r CjE6IGxvOiA8TE9PUEJBQ0s+IG10dSA2NTUzNiBxZGlzYyBub29wIHN0YXRlIERPV04gbW9kZSBE RUZBVUxUIGdyb3VwCmRlZmF1bHQgcWxlbiAxMDAwCiAgICBsaW5rL2xvb3BiYWNrIDAwOjAwOjAw OjAwOjAwOjAwIGJyZCAwMDowMDowMDowMDowMDowMAoKU2lnbmVkLW9mZi1ieTogSGFpc2h1YW5n IFlhbiA8eWFuaGFpc2h1YW5nQGNtc3MuY2hpbmFtb2JpbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X3Z0 aS5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L25ldC9pcHY2L2lwNl92dGkuYyBiL25ldC9pcHY2L2lwNl92dGkuYwppbmRleCAwMWRlYTJiZmM1 OWYuLjA0MjAwY2ViZGRkNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3Z0aS5jCisrKyBiL25l dC9pcHY2L2lwNl92dGkuYwpAQCAtMTExMyw2ICsxMTEzLDggQEAgc3RhdGljIGludCBfX25ldF9p bml0IHZ0aTZfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQogCWlwNm4tPnRubHNbMF0gPSBpcDZu LT50bmxzX3djOwogCWlwNm4tPnRubHNbMV0gPSBpcDZuLT50bmxzX3JfbDsKIAorCWlmICghbmV0 X2hhc19mYWxsYmFja190dW5uZWxzKG5ldCkpCisJCXJldHVybiAwOwogCWVyciA9IC1FTk9NRU07 CiAJaXA2bi0+ZmJfdG5sX2RldiA9IGFsbG9jX25ldGRldihzaXplb2Yoc3RydWN0IGlwNl90bmwp LCAiaXA2X3Z0aTAiLAogCQkJCQlORVRfTkFNRV9VTktOT1dOLCB2dGk2X2Rldl9zZXR1cCk7Ci0t IAoyLjEzLjYKCgpGcm9tIDZmZWNhZGM4YjZlMWU3OWM0Njk1MTk1NmYwMmJmMzUxZmRiZDE0NmYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhaXNodWFuZyBZYW4gPHlhbmhhaXNodWFu Z0BjbXNzLmNoaW5hbW9iaWxlLmNvbT4KRGF0ZTogTW9uLCAyMCBBdWcgMjAxOCAxMDo1MTowNSAr MDgwMApTdWJqZWN0OiBbUEFUQ0ggMjkvMjldIGlwNl92dGk6IGZpeCBhIG51bGwgcG9pbnRlciBk ZWZlcmVuY2Ugd2hlbiBkZXN0cm95IHZ0aTYKIHR1bm5lbAoKWyBVcHN0cmVhbSBjb21taXQgOWM4 NjMzNmMxNWRiMWM0OGNiYWRkZmY1NmNhZjJiZTBhOTMwZTk5MSBdCgpJZiBsb2FkIGlwNl92dGkg bW9kdWxlIGFuZCBjcmVhdGUgYSBuZXR3b3JrIG5hbWVzcGFjZSB3aGVuIHNldApmYl90dW5uZWxz X29ubHlfZm9yX2luaXRfbmV0IHRvIDEsIHRoZW4gZXhpdCB0aGUgbmFtZXNwYWNlIHdpbGwKY2F1 c2UgZm9sbG93aW5nIGNyYXNoOgoKWyA2NjAxLjY3NzAzNl0gQlVHOiB1bmFibGUgdG8gaGFuZGxl IGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgMDAwMDAwMDAwMDAwMDAwOApbIDY2 MDEuNjc5MDU3XSBQR0QgODAwMDAwMDQyNWVjYTA2NyBQNEQgODAwMDAwMDQyNWVjYTA2NyBQVUQg NDI0MjkyMDY3IFBNRCAwClsgNjYwMS42ODA0ODNdIE9vcHM6IDAwMDAgWyMxXSBTTVAgUFRJClsg NjYwMS42ODEyMjNdIENQVTogNyBQSUQ6IDkzIENvbW06IGt3b3JrZXIvdTE2OjEgS2R1bXA6IGxv YWRlZCBUYWludGVkOiBHICAgICAgICAgICAgRSAgICAgNC4xOC4wKyAjMwpbIDY2MDEuNjgzMTUz XSBIYXJkd2FyZSBuYW1lOiBGZWRvcmEgUHJvamVjdCBPcGVuU3RhY2sgTm92YSwgQklPUyBzZWFi aW9zLTEuNy41LTExLmVsNyAwNC8wMS8yMDE0ClsgNjYwMS42ODQ5MTldIFdvcmtxdWV1ZTogbmV0 bnMgY2xlYW51cF9uZXQKWyA2NjAxLjY4NTc0Ml0gUklQOiAwMDEwOnZ0aTZfZXhpdF9iYXRjaF9u ZXQrMHg4Ny8weGQwIFtpcDZfdnRpXQpbIDY2MDEuNjg2OTMyXSBDb2RlOiA3YiAwOCA0OCA4OSBl NiBlOCBiOSBlYSBkMyBkZCA0OCA4YiAxYiA0OCA4NSBkYiA3NSBlYyA0OCA4MyBjNSAwOCA0OCA4 MSBmZCAwMCAwMSAwMCAwMCA3NSBkNSA0OSA4YiA4NCAyNCAwOCAwMSAwMCAwMCA0OCA4OSBlNiA8 NDg+IDhiIDc4IDA4IGU4IDkwIGVhIGQzIGRkIDQ5IDhiIDQ1IDI4IDQ5IDM5IGM2IDRjIDhkIDY4 IGQ4IDc1IGExClsgNjYwMS42OTA3MzVdIFJTUDogMDAxODpmZmZmYTg5N2MyNzM3ZGUwIEVGTEFH UzogMDAwMTAyNDYKWyA2NjAxLjY5MTg0Nl0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogMDAw MDAwMDAwMDAwMDAwMCBSQ1g6IGRlYWQwMDAwMDAwMDAyMDAKWyA2NjAxLjY5MzMyNF0gUkRYOiAw MDAwMDAwMDAwMDAwMDE1IFJTSTogZmZmZmE4OTdjMjczN2RlMCBSREk6IGZmZmZmZmZmOWYyZWE5 ZTAKWyA2NjAxLjY5NDgyNF0gUkJQOiAwMDAwMDAwMDAwMDAwMTAwIFIwODogMDAwMDAwMDAwMDAw MDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKWyA2NjAxLjY5NjMxNF0gUjEwOiAwMDAwMDAwMDAw MDAwMDAxIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IGZmZmY4ZGMzMjNjMDdlMDAKWyA2NjAx LjY5NzgxMl0gUjEzOiBmZmZmOGRjMzI0YTYzMTAwIFIxNDogZmZmZmE4OTdjMjczN2UzMCBSMTU6 IGZmZmZhODk3YzI3MzdlMzAKWyA2NjAxLjY5OTM0NV0gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAw MDApIEdTOmZmZmY4ZGMzM2ZkYzAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbIDY2 MDEuNzAxMDY4XSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUw MDMzClsgNjYwMS43MDIyODJdIENSMjogMDAwMDAwMDAwMDAwMDAwOCBDUjM6IDAwMDAwMDA0MjQ5 NjYwMDIgQ1I0OiAwMDAwMDAwMDAwMTYwNmUwClsgNjYwMS43MDM3OTFdIENhbGwgVHJhY2U6Clsg NjYwMS43MDQzMjldICBjbGVhbnVwX25ldCsweDFiNC8weDJjMApbIDY2MDEuNzA1MjY4XSAgcHJv Y2Vzc19vbmVfd29yaysweDE2Yy8weDM3MApbIDY2MDEuNzA2MTQ1XSAgd29ya2VyX3RocmVhZCsw eDQ5LzB4M2UwClsgNjYwMS43MDY5NDJdICBrdGhyZWFkKzB4ZjgvMHgxMzAKWyA2NjAxLjcwNzYy Nl0gID8gcmVzY3Vlcl90aHJlYWQrMHgzNDAvMHgzNDAKWyA2NjAxLjcwODQ3Nl0gID8ga3RocmVh ZF9iaW5kKzB4MTAvMHgxMApbIDY2MDEuNzA5MjY2XSAgcmV0X2Zyb21fZm9yaysweDM1LzB4NDAK ClJlcHJvZHVjZToKbW9kcHJvYmUgaXA2X3Z0aQplY2hvIDEgPiAvcHJvYy9zeXMvbmV0L2NvcmUv ZmJfdHVubmVsc19vbmx5X2Zvcl9pbml0X25ldAp1bnNoYXJlIC1uCmV4aXQKClRoaXMgYmVjYXVz ZSBpcDZuLT50bmxzX3djWzBdIHBvaW50IHRvIGZhbGxiYWNrIGRldmljZSBpbiBkZWZhdWx0LCBi dXQKaW4gbm9uLWRlZmF1bHQgbmFtZXNwYWNlLCBpcDZuLT50bmxzX3djWzBdIHdpbGwgYmUgTlVM TCwgc28gYWRkIHRoZSBOVUxMCmNoZWNrIGNvbXBhcmF0aXZlbHkuCgpGaXhlczogZTI5NDhlNWFm OGVlICgiaXA2X3Z0aTogZml4IGNyZWF0aW5nIGZhbGxiYWNrIHR1bm5lbCBkZXZpY2UgZm9yIHZ0 aTYiKQpTaWduZWQtb2ZmLWJ5OiBIYWlzaHVhbmcgWWFuIDx5YW5oYWlzaHVhbmdAY21zcy5jaGlu YW1vYmlsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfdnRpLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lw Nl92dGkuYyBiL25ldC9pcHY2L2lwNl92dGkuYwppbmRleCAwNDIwMGNlYmRkZDUuLjcyN2E4NDQ4 Y2ZlZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3Z0aS5jCisrKyBiL25ldC9pcHY2L2lwNl92 dGkuYwpAQCAtMTEwMSw3ICsxMTAxLDggQEAgc3RhdGljIHZvaWQgX19uZXRfZXhpdCB2dGk2X2Rl c3Ryb3lfdHVubmVscyhzdHJ1Y3QgdnRpNl9uZXQgKmlwNm4sCiAJfQogCiAJdCA9IHJ0bmxfZGVy ZWZlcmVuY2UoaXA2bi0+dG5sc193Y1swXSk7Ci0JdW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUo dC0+ZGV2LCBsaXN0KTsKKwlpZiAodCkKKwkJdW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUodC0+ ZGV2LCBsaXN0KTsKIH0KIAogc3RhdGljIGludCBfX25ldF9pbml0IHZ0aTZfaW5pdF9uZXQoc3Ry dWN0IG5ldCAqbmV0KQotLSAKMi4xMy42Cgo= ----Next_Part(Mon_Sep_10_23_15_08_2018_191)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_418.mbox" RnJvbSA5MmVkODNmODIxZjM5MDA5YjIzZTM2NTJmNjY0Njk5MGEyNGRmZjg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4K RGF0ZTogTW9uLCAzIFNlcCAyMDE4IDExOjA4OjE1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMS8z Nl0gYWN0X2lmZTogZml4IGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlCgpbIFVwc3RyZWFtIGNv bW1pdCA2ZDc4NGYxNjI1ZWE2ODc4M2NjMWZiMTdkZThmNmNkM2UxNjYwYzNmIF0KCkltbWVkaWF0 ZWx5IGFmdGVyIG1vZHVsZV9wdXQoKSwgdXNlciBjb3VsZCBkZWxldGUgdGhpcwptb2R1bGUsIHNv IGUtPm9wcyBjb3VsZCBiZSBhbHJlYWR5IGZyZWVkIGJlZm9yZSB3ZSBjYWxsCmUtPm9wcy0+cmVs ZWFzZSgpLgoKRml4IHRoaXMgYnkgbW92aW5nIG1vZHVsZV9wdXQoKSBhZnRlciBvcHMtPnJlbGVh c2UoKS4KCkZpeGVzOiBlZjY5ODBiNmJlY2IgKCJpbnRyb2R1Y2UgSUZFIGFjdGlvbiIpCkNjOiBK YW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdh bmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfaWZlLmMgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvc2NoZWQvYWN0X2lmZS5jIGIvbmV0L3NjaGVkL2FjdF9pZmUuYwppbmRleCAyMGQ3 ZDM2YjJmYzkuLjIwMWU1OTliYWVkOSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9pZmUuYwor KysgYi9uZXQvc2NoZWQvYWN0X2lmZS5jCkBAIC0zOTMsNyArMzkzLDYgQEAgc3RhdGljIHZvaWQg X3RjZl9pZmVfY2xlYW51cChzdHJ1Y3QgdGNfYWN0aW9uICphKQogCXN0cnVjdCB0Y2ZfbWV0YV9p bmZvICplLCAqbjsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShlLCBuLCAmaWZlLT5tZXRh bGlzdCwgbWV0YWxpc3QpIHsKLQkJbW9kdWxlX3B1dChlLT5vcHMtPm93bmVyKTsKIAkJbGlzdF9k ZWwoJmUtPm1ldGFsaXN0KTsKIAkJaWYgKGUtPm1ldGF2YWwpIHsKIAkJCWlmIChlLT5vcHMtPnJl bGVhc2UpCkBAIC00MDEsNiArNDAwLDcgQEAgc3RhdGljIHZvaWQgX3RjZl9pZmVfY2xlYW51cChz dHJ1Y3QgdGNfYWN0aW9uICphKQogCQkJZWxzZQogCQkJCWtmcmVlKGUtPm1ldGF2YWwpOwogCQl9 CisJCW1vZHVsZV9wdXQoZS0+b3BzLT5vd25lcik7CiAJCWtmcmVlKGUpOwogCX0KIH0KLS0gCjIu MTMuNgoKCkZyb20gMDhhOTU2YTNkMDNkZTM5YzlmZGJmNWZjZDVmNzRlZWRlMmExMDRiOCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpEYXRlOiBXZWQsIDIyIEF1ZyAyMDE4IDEzOjMwOjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwMi8zNl0gaXB2NDogdGNwOiBzZW5kIHplcm8gSVBJRCBmb3IgUlNUIGFuZCBBQ0sgc2VudCBp bgogU1lOLVJFQ1YgYW5kIFRJTUUtV0FJVCBzdGF0ZQoKWyBVcHN0cmVhbSBjb21taXQgNDMxMjgw ZWViZWQ5ZjUwNzk1NTNkYWYwMDMwMTEwOTc3NjNlNzFmZCBdCgp0Y3AgdXNlcyBwZXItY3B1IChh bmQgcGVyIG5hbWVzcGFjZSkgc29ja2V0cyAobmV0LT5pcHY0LnRjcF9zaykgaW50ZXJuYWxseQp0 byBzZW5kIHNvbWUgY29udHJvbCBwYWNrZXRzLgoKMSkgUlNUIHBhY2tldHMsIHRocm91Z2ggdGNw X3Y0X3NlbmRfcmVzZXQoKQoyKSBBQ0sgcGFja2V0cyBpbiBTWU4tUkVDViBhbmQgVElNRS1XQUlU IHN0YXRlLCB0aHJvdWdoIHRjcF92NF9zZW5kX2FjaygpCgpUaGVzZSBwYWNrZXRzIGFzc2VydCBJ UF9ERiwgYW5kIGFsc28gdXNlIHRoZSBoYXNoZWQgSVAgaWRlbnQgZ2VuZXJhdG9yCnRvIHByb3Zp ZGUgYW4gSVB2NCBJRCBudW1iZXIuCgpHZW9mZiBBbGV4YW5kZXIgcmVwb3J0ZWQgdGhpcyBjb3Vs ZCBiZSB1c2VkIHRvIGJ1aWxkIG9mZi1wYXRoIGF0dGFja3MuCgpUaGVzZSBwYWNrZXRzIHNob3Vs ZCBub3QgYmUgZnJhZ21lbnRlZCwgc2luY2UgdGhlaXIgc2l6ZSBpcyBzbWFsbGVyIHRoYW4KSVBW NF9NSU5fTVRVLiBPbmx5IHNvbWUgdHVubmVsZWQgcGF0aHMgY291bGQgZXZlbnR1YWxseSBoYXZl IHRvIGZyYWdtZW50LApyZWdhcmRsZXNzIG9mIGlubmVyIElQSUQuCgpXZSByZWFsbHkgY2FuIHVz ZSB6ZXJvIElQSUQsIHRvIGFkZHJlc3MgdGhlIGZsYXcsIGFuZCBhcyBhIGJvbnVzLAphdm9pZCBh IGNvdXBsZSBvZiBhdG9taWMgb3BlcmF0aW9ucyBpbiBpcF9pZGVudHNfcmVzZXJ2ZSgpCgpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5 OiBHZW9mZiBBbGV4YW5kZXIgPGFsZXhhbmRnQGNzLnVubS5lZHU+ClRlc3RlZC1ieTogR2VvZmYg QWxleGFuZGVyIDxhbGV4YW5kZ0Bjcy51bm0uZWR1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2lwdjQuYyB8IDYg KysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvdGNwX2lwdjQuYyBiL25ldC9pcHY0L3RjcF9pcHY0LmMKaW5kZXggM2IyNzExZTMzZTRj Li40ODhiMjAxODUxZDcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pcHY0LmMKKysrIGIvbmV0 L2lwdjQvdGNwX2lwdjQuYwpAQCAtMjUxNiw2ICsyNTE2LDEyIEBAIHN0YXRpYyBpbnQgX19uZXRf aW5pdCB0Y3Bfc2tfaW5pdChzdHJ1Y3QgbmV0ICpuZXQpCiAJCWlmIChyZXMpCiAJCQlnb3RvIGZh aWw7CiAJCXNvY2tfc2V0X2ZsYWcoc2ssIFNPQ0tfVVNFX1dSSVRFX1FVRVVFKTsKKworCQkvKiBQ bGVhc2UgZW5mb3JjZSBJUF9ERiBhbmQgSVBJRD09MCBmb3IgUlNUIGFuZAorCQkgKiBBQ0sgc2Vu dCBpbiBTWU4tUkVDViBhbmQgVElNRS1XQUlUIHN0YXRlLgorCQkgKi8KKwkJaW5ldF9zayhzaykt PnBtdHVkaXNjID0gSVBfUE1UVURJU0NfRE87CisKIAkJKnBlcl9jcHVfcHRyKG5ldC0+aXB2NC50 Y3Bfc2ssIGNwdSkgPSBzazsKIAl9CiAKLS0gCjIuMTMuNgoKCkZyb20gM2I5OGE3Mjc0MDQyNTk2 YmNlZGJkM2U2Njk0NzQ2Y2QyMWRjNmI5NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RG91ZyBCZXJnZXIgPG9wZW5kbWJAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI4IEF1ZyAyMDE4IDEy OjMzOjE1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMy8zNl0gbmV0OiBiY21nZW5ldDogdXNlIE1B QyBsaW5rIHN0YXR1cyBmb3IgZml4ZWQgcGh5CgpbIFVwc3RyZWFtIGNvbW1pdCBjM2MzOTdjMWYx NmM1MTYwMWEzZmFjNGZlMGM2M2FkOGFhODVhOTA0IF0KCldoZW4gdXNpbmcgdGhlIGZpeGVkIFBI WSB3aXRoIEdFTkVUIChlLmcuIE1PQ0EpIHRoZSBQSFkgbGluawpzdGF0dXMgY2FuIGJlIGRldGVy bWluZWQgZnJvbSB0aGUgaW50ZXJuYWwgbGluayBzdGF0dXMgY2FwdHVyZWQKYnkgdGhlIE1BQy4g VGhpcyBhbGxvd3MgdGhlIFBIWSBzdGF0ZSBtYWNoaW5lIHRvIHVzZSB0aGUgY29ycmVjdApsaW5r IHN0YXRlIHdpdGggdGhlIGZpeGVkIFBIWSBldmVuIGlmIE1BQyBsaW5rIGV2ZW50IGludGVycnVw dHMKYXJlIG1pc3NlZCB3aGVuIHRoZSBuZXQgZGV2aWNlIGlzIG9wZW5lZC4KCkZpeGVzOiA4ZDg4 YzZlYmIzNGMgKCJuZXQ6IGJjbWdlbmV0OiBlbmFibGUgTW9DQSBsaW5rIHN0YXRlIGNoYW5nZSBk ZXRlY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBEb3VnIEJlcmdlciA8b3BlbmRtYkBnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmggfCAgMyArKysKIGRy aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jICAgfCAxMCArKysrKysr Ky0tCiAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQu aCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmgKaW5kZXgg Yjc3M2JjMDdlZGY3Li4xNGI0OTYxMmFhODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuaApAQCAtMTg2LDYgKzE4Niw5IEBAIHN0cnVjdCBiY21n ZW5ldF9taWJfY291bnRlcnMgewogI2RlZmluZSBVTUFDX01BQzEJCQkweDAxMAogI2RlZmluZSBV TUFDX01BWF9GUkFNRV9MRU4JCTB4MDE0CiAKKyNkZWZpbmUgVU1BQ19NT0RFCQkJMHg0NAorI2Rl ZmluZSAgTU9ERV9MSU5LX1NUQVRVUwkJKDEgPDwgNSkKKwogI2RlZmluZSBVTUFDX0VFRV9DVFJM CQkJMHgwNjQKICNkZWZpbmUgIEVOX0xQSV9SWF9QQVVTRQkJKDEgPDwgMCkKICNkZWZpbmUgIEVO X0xQSV9UWF9QRkMJCQkoMSA8PCAxKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9n ZW5ldC9iY21taWkuYwppbmRleCA1MzMzMjc0YTI4M2MuLjQyNDFhZTkyOGQ0YSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMKQEAgLTExNSw4ICsxMTUs MTQgQEAgdm9pZCBiY21nZW5ldF9taWlfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHN0 YXRpYyBpbnQgYmNtZ2VuZXRfZml4ZWRfcGh5X2xpbmtfdXBkYXRlKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsCiAJCQkJCSAgc3RydWN0IGZpeGVkX3BoeV9zdGF0dXMgKnN0YXR1cykKIHsKLQlpZiAo ZGV2ICYmIGRldi0+cGh5ZGV2ICYmIHN0YXR1cykKLQkJc3RhdHVzLT5saW5rID0gZGV2LT5waHlk ZXYtPmxpbms7CisJc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXY7CisJdTMyIHJlZzsKKworCWlm IChkZXYgJiYgZGV2LT5waHlkZXYgJiYgc3RhdHVzKSB7CisJCXByaXYgPSBuZXRkZXZfcHJpdihk ZXYpOworCQlyZWcgPSBiY21nZW5ldF91bWFjX3JlYWRsKHByaXYsIFVNQUNfTU9ERSk7CisJCXN0 YXR1cy0+bGluayA9ICEhKHJlZyAmIE1PREVfTElOS19TVEFUVVMpOworCX0KIAogCXJldHVybiAw OwogfQotLSAKMi4xMy42CgoKRnJvbSA3MzQxMjNkMzdlYmNkYzc2NWNjMGU3ZGVlZjk0ZmYwMmNh ODg3NDgwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbnNzaSBIYW5udWxhIDxhbnNz aS5oYW5udWxhQGJpdHdpc2UuZmk+CkRhdGU6IFRodSwgMjMgQXVnIDIwMTggMTA6NDU6MjIgKzAz MDAKU3ViamVjdDogW1BBVENIIDA0LzM2XSBuZXQ6IG1hY2I6IGRvIG5vdCBkaXNhYmxlIE1ESU8g YnVzIGF0IG9wZW4vY2xvc2UgdGltZQoKWyBVcHN0cmVhbSBjb21taXQgMGRhNzBmODA4MDI5NDc2 MDAxMTA5YjZjYjA3NjczN2JjMDRjZWEyZSBdCgptYWNiX3Jlc2V0X2h3KCkgaXMgY2FsbGVkIGZy b20gbWFjYl9jbG9zZSgpIGFuZCBpbmRpcmVjdGx5IGZyb20KbWFjYl9vcGVuKCkuIG1hY2JfcmVz ZXRfaHcoKSB6ZXJvZXMgdGhlIE5DUiByZWdpc3RlciwgaW5jbHVkaW5nIHRoZSBNUEUKKE1hbmFn ZW1lbnQgUG9ydCBFbmFibGUpIGJpdC4KClRoaXMgd2lsbCBwcmV2ZW50IGFjY2Vzc2luZyBhbnkg b3RoZXIgUEhZcyBmb3Igb3RoZXIgRXRoZXJuZXQgTUFDcyBvbgp0aGUgTURJTyBidXMsIHdoaWNo IHJlbWFpbnMgcmVnaXN0ZXJlZCBhdCBtYWNiX3Jlc2V0X2h3KCkgdGltZSwgdW50aWwKbWFjYl9p bml0X2h3KCkgaXMgY2FsbGVkIGZyb20gbWFjYl9vcGVuKCkgd2hpY2ggc2V0cyB0aGUgTVBFIGJp dCBhZ2Fpbi4KCkkuZS4gY3VycmVudGx5IHRoZSBNRElPIGJ1cyBoYXMgYSBzaG9ydCBkaXNydXB0 aW9uIGF0IG9wZW4gdGltZSBhbmQgaXMKZGlzYWJsZWQgYXQgY2xvc2UgdGltZSB1bnRpbCB0aGUg aW50ZXJmYWNlIGlzIG9wZW5lZCBhZ2Fpbi4KCkZpeCB0aGF0IGJ5IG9ubHkgdG91Y2hpbmcgdGhl IFJFIGFuZCBURSBiaXRzIHdoZW4gZW5hYmxpbmcgYW5kIGRpc2FibGluZwpSWC9UWC4KCnYyOiBN YWtlIG1hY2JfaW5pdF9odygpIE5DUiB3cml0ZSBhIHNpbmdsZSBzdGF0ZW1lbnQuCgpGaXhlczog NmMzNmE3MDc0NDM2ICgibWFjYjogVXNlIGdlbmVyaWMgUEhZIGxheWVyIikKU2lnbmVkLW9mZi1i eTogQW5zc2kgSGFubnVsYSA8YW5zc2kuaGFubnVsYUBiaXR3aXNlLmZpPgpSZXZpZXdlZC1ieTog Q2xhdWRpdSBCZXpuZWEgPGNsYXVkaXUuYmV6bmVhQG1pY3JvY2hpcC5jb20+ClRlc3RlZC1ieTog Q2xhdWRpdSBCZXpuZWEgPGNsYXVkaXUuYmV6bmVhQG1pY3JvY2hpcC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jIHwgOSArKysrKystLS0KIDEgZmlsZSBjaGFu Z2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2NhZGVuY2UvbWFjYl9tYWluLmMKaW5kZXggYTZjOTExYmI1Y2UyLi5lNGI0YTZhODc5YmUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYwpAQCAtMTk1NywxNCArMTk1 NywxNyBAQCBzdGF0aWMgdm9pZCBtYWNiX3Jlc2V0X2h3KHN0cnVjdCBtYWNiICpicCkKIHsKIAlz dHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWU7CiAJdW5zaWduZWQgaW50IHE7CisJdTMyIGN0cmwgPSBt YWNiX3JlYWRsKGJwLCBOQ1IpOwogCiAJLyogRGlzYWJsZSBSWCBhbmQgVFggKFhYWDogU2hvdWxk IHdlIGhhbHQgdGhlIHRyYW5zbWlzc2lvbgogCSAqIG1vcmUgZ3JhY2VmdWxseT8pCiAJICovCi0J bWFjYl93cml0ZWwoYnAsIE5DUiwgMCk7CisJY3RybCAmPSB+KE1BQ0JfQklUKFJFKSB8IE1BQ0Jf QklUKFRFKSk7CiAKIAkvKiBDbGVhciB0aGUgc3RhdHMgcmVnaXN0ZXJzIChYWFg6IFVwZGF0ZSBz dGF0cyBmaXJzdD8pICovCi0JbWFjYl93cml0ZWwoYnAsIE5DUiwgTUFDQl9CSVQoQ0xSU1RBVCkp OworCWN0cmwgfD0gTUFDQl9CSVQoQ0xSU1RBVCk7CisKKwltYWNiX3dyaXRlbChicCwgTkNSLCBj dHJsKTsKIAogCS8qIENsZWFyIGFsbCBzdGF0dXMgZmxhZ3MgKi8KIAltYWNiX3dyaXRlbChicCwg VFNSLCAtMSk7CkBAIC0yMTUyLDcgKzIxNTUsNyBAQCBzdGF0aWMgdm9pZCBtYWNiX2luaXRfaHco c3RydWN0IG1hY2IgKmJwKQogCX0KIAogCS8qIEVuYWJsZSBUWCBhbmQgUlggKi8KLQltYWNiX3dy aXRlbChicCwgTkNSLCBNQUNCX0JJVChSRSkgfCBNQUNCX0JJVChURSkgfCBNQUNCX0JJVChNUEUp KTsKKwltYWNiX3dyaXRlbChicCwgTkNSLCBtYWNiX3JlYWRsKGJwLCBOQ1IpIHwgTUFDQl9CSVQo UkUpIHwgTUFDQl9CSVQoVEUpKTsKIH0KIAogLyogVGhlIGhhc2ggYWRkcmVzcyByZWdpc3RlciBp cyA2NCBiaXRzIGxvbmcgYW5kIHRha2VzIHVwIHR3bwotLSAKMi4xMy42CgoKRnJvbSAzMjY3OGU5 YWQ5NDUzNGYyYTI4MGJiNDI3Y2I0NDUxYTIwMjVkMzI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4KRGF0ZTogU2F0LCAyNSBB dWcgMjAxOCAyMjo1ODowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMzZdIG5ldDogc2NoZWQ6 IEZpeCBtZW1vcnkgZXhwb3N1cmUgZnJvbSBzaG9ydCBUQ0FfVTMyX1NFTAoKWyBVcHN0cmVhbSBj b21taXQgOThjOGYxMjVmZDhhNjI0MGVhMzQzYzFhYTUwYTFiZTkwNDc3OTFiOCBdCgpWaWEgdTMy X2NoYW5nZSgpLCBUQ0FfVTMyX1NFTCBoYXMgYW4gdW5zcGVjaWZpZWQgdHlwZSBpbiB0aGUgbmV0 bGluawpwb2xpY3ksIHNvIG1heCBsZW5ndGggaXNuJ3QgZW5mb3JjZWQsIG9ubHkgbWluaW11bS4g VGhpcyBtZWFucyBua2V5cwooZnJvbSB1c2Vyc3BhY2UpIHdhcyBiZWluZyB0cnVzdGVkIHdpdGhv dXQgY2hlY2tpbmcgdGhlIGFjdHVhbCBzaXplIG9mCm5sYV9sZW4oKSwgd2hpY2ggY291bGQgbGVh ZCB0byBhIG1lbW9yeSBvdmVyLXJlYWQsIGFuZCB1bHRpbWF0ZWx5IGFuCmV4cG9zdXJlIHZpYSBh IGNhbGwgdG8gdTMyX2R1bXAoKS4gUmVhY2hhYmlsaXR5IGlzIENBUF9ORVRfQURNSU4gd2l0aGlu CmEgbmFtZXNwYWNlLgoKUmVwb3J0ZWQtYnk6IEFsIFZpcm8gPHZpcm9AemVuaXYubGludXgub3Jn LnVrPgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQ2M6IENvbmcgV2Fu ZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpDYzogSmlyaSBQaXJrbyA8amlyaUByZXNudWxs aS51cz4KQ2M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpDYzogbmV0 ZGV2QHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBLZWVzIENvb2sgPGtlZXNjb29rQGNo cm9taXVtLm9yZz4KQWNrZWQtYnk6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvc2NoZWQvY2xzX3UzMi5jIHwgMTAgKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDgg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xz X3UzMi5jIGIvbmV0L3NjaGVkL2Nsc191MzIuYwppbmRleCBmYjg2MWY5MGZkZTYuLjI2MDc0OTk1 NmVmMyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc191MzIuYworKysgYi9uZXQvc2NoZWQvY2xz X3UzMi5jCkBAIC05MTIsNiArOTEyLDcgQEAgc3RhdGljIGludCB1MzJfY2hhbmdlKHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwKIAlzdHJ1Y3QgbmxhdHRyICpvcHQgPSB0 Y2FbVENBX09QVElPTlNdOwogCXN0cnVjdCBubGF0dHIgKnRiW1RDQV9VMzJfTUFYICsgMV07CiAJ dTMyIGh0aWQsIGZsYWdzID0gMDsKKwlzaXplX3Qgc2VsX3NpemU7CiAJaW50IGVycjsKICNpZmRl ZiBDT05GSUdfQ0xTX1UzMl9QRVJGCiAJc2l6ZV90IHNpemU7CkBAIC0xMDc0LDggKzEwNzUsMTMg QEAgc3RhdGljIGludCB1MzJfY2hhbmdlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYg KmluX3NrYiwKIAl9CiAKIAlzID0gbmxhX2RhdGEodGJbVENBX1UzMl9TRUxdKTsKKwlzZWxfc2l6 ZSA9IHN0cnVjdF9zaXplKHMsIGtleXMsIHMtPm5rZXlzKTsKKwlpZiAobmxhX2xlbih0YltUQ0Ff VTMyX1NFTF0pIDwgc2VsX3NpemUpIHsKKwkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBlcnJpZHI7 CisJfQogCi0JbiA9IGt6YWxsb2Moc2l6ZW9mKCpuKSArIHMtPm5rZXlzKnNpemVvZihzdHJ1Y3Qg dGNfdTMyX2tleSksIEdGUF9LRVJORUwpOworCW4gPSBremFsbG9jKG9mZnNldG9mKHR5cGVvZigq biksIHNlbCkgKyBzZWxfc2l6ZSwgR0ZQX0tFUk5FTCk7CiAJaWYgKG4gPT0gTlVMTCkgewogCQll cnIgPSAtRU5PQlVGUzsKIAkJZ290byBlcnJpZHI7CkBAIC0xMDkwLDcgKzEwOTYsNyBAQCBzdGF0 aWMgaW50IHUzMl9jaGFuZ2Uoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqaW5fc2ti LAogCX0KICNlbmRpZgogCi0JbWVtY3B5KCZuLT5zZWwsIHMsIHNpemVvZigqcykgKyBzLT5ua2V5 cypzaXplb2Yoc3RydWN0IHRjX3UzMl9rZXkpKTsKKwltZW1jcHkoJm4tPnNlbCwgcywgc2VsX3Np emUpOwogCVJDVV9JTklUX1BPSU5URVIobi0+aHRfdXAsIGh0KTsKIAluLT5oYW5kbGUgPSBoYW5k bGU7CiAJbi0+ZnNoaWZ0ID0gcy0+aG1hc2sgPyBmZnMobnRvaGwocy0+aG1hc2spKSAtIDEgOiAw OwotLSAKMi4xMy42CgoKRnJvbSAyMDZjZjA1M2RlYmQwMGM1ZTY0MDdjYzFiMTE1MzdhYzY3ODM0 NjQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYW5pc2ggQ2hvcHJhIDxtYW5pc2gu Y2hvcHJhQGNhdml1bS5jb20+CkRhdGU6IFRodSwgMjMgQXVnIDIwMTggMTM6MjA6NTIgLTA3MDAK U3ViamVjdDogW1BBVENIIDA2LzM2XSBxbGdlOiBGaXggbmV0ZGV2IGZlYXR1cmVzIGNvbmZpZ3Vy YXRpb24uCgpbIFVwc3RyZWFtIGNvbW1pdCA2NzUwYzg3MDc0YzViNTM0ZDgyZmRhYWJiMWRlYjQ1 YjhmMWY1N2RlIF0KCnFsZ2VfZml4X2ZlYXR1cmVzKCkgaXMgbm90IHN1cHBvc2VkIHRvIG1vZGlm eSBoYXJkd2FyZSBvcgpkcml2ZXIgc3RhdGUsIHJhdGhlciBpdCBpcyBzdXBwb3NlZCB0byBvbmx5 IGZpeCByZXF1ZXN0ZWQKZmV0dXJlcyBiaXRzLiBDdXJyZW50bHkgcWxnZV9maXhfZmVhdHVyZXMo KSBhbHNvIGdvZXMgZm9yCmludGVyZmFjZSBkb3duIGFuZCB1cCB1bm5lY2Vzc2FyaWx5IGlmIHRo ZXJlIGlzIG5vdCBldmVuCmFueSBjaGFuZ2UgaW4gZmVhdHVyZXMgc2V0LgoKVGhpcyBwYXRjaCBj aGFuZ2VzL2ZpeGVzIGZvbGxvd2luZyAtCgoxKSBNb3ZlIHJlbG9hZCBvZiBpbnRlcmZhY2Ugb3Ig ZGV2aWNlIHJlLWNvbmZpZyBmcm9tCiAgIHFsZ2VfZml4X2ZlYXR1cmVzKCkgdG8gcWxnZV9zZXRf ZmVhdHVyZXMoKS4KMikgUmVsb2FkIG9mIGludGVyZmFjZSBpbiBxbGdlX3NldF9mZWF0dXJlcygp IG9ubHkgaWYKICAgcmVsZXZhbnQgZmVhdHVyZSBiaXQgKE5FVElGX0ZfSFdfVkxBTl9DVEFHX1JY KSBpcyBjaGFuZ2VkLgozKSBHZXQgcmlkIG9mIHFsZ2VfZml4X2ZlYXR1cmVzKCkgc2luY2UgZHJp dmVyIGlzIG5vdCByZWFsbHkKICAgcmVxdWlyZWQgdG8gZml4IGFueSBmZWF0dXJlcyBiaXQuCgpT aWduZWQtb2ZmLWJ5OiBNYW5pc2ggPG1hbmlzaC5jaG9wcmFAY2F2aXVtLmNvbT4KUmV2aWV3ZWQt Ynk6IEJlbmphbWluIFBvaXJpZXIgPGJwb2lyaWVyQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvcWxvZ2ljL3FsZ2UvcWxnZV9tYWluLmMgfCAyMyArKysrKysrKy0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FsZ2UvcWxnZV9tYWluLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWxnZS9xbGdlX21haW4uYwppbmRleCAzNTNmMWMx MjlhZjEuLjA1OWJhOTQyOWU1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxv Z2ljL3FsZ2UvcWxnZV9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3Fs Z2UvcWxnZV9tYWluLmMKQEAgLTIzODQsMjYgKzIzODQsMjAgQEAgc3RhdGljIGludCBxbGdlX3Vw ZGF0ZV9od192bGFuX2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LAogCXJldHVybiBz dGF0dXM7CiB9CiAKLXN0YXRpYyBuZXRkZXZfZmVhdHVyZXNfdCBxbGdlX2ZpeF9mZWF0dXJlcyhz dHJ1Y3QgbmV0X2RldmljZSAqbmRldiwKLQluZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcykKLXsK LQlpbnQgZXJyOwotCi0JLyogVXBkYXRlIHRoZSBiZWhhdmlvciBvZiB2bGFuIGFjY2VsIGluIHRo ZSBhZGFwdGVyICovCi0JZXJyID0gcWxnZV91cGRhdGVfaHdfdmxhbl9mZWF0dXJlcyhuZGV2LCBm ZWF0dXJlcyk7Ci0JaWYgKGVycikKLQkJcmV0dXJuIGVycjsKLQotCXJldHVybiBmZWF0dXJlczsK LX0KLQogc3RhdGljIGludCBxbGdlX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRl diwKIAluZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcykKIHsKIAluZXRkZXZfZmVhdHVyZXNfdCBj aGFuZ2VkID0gbmRldi0+ZmVhdHVyZXMgXiBmZWF0dXJlczsKKwlpbnQgZXJyOworCisJaWYgKGNo YW5nZWQgJiBORVRJRl9GX0hXX1ZMQU5fQ1RBR19SWCkgeworCQkvKiBVcGRhdGUgdGhlIGJlaGF2 aW9yIG9mIHZsYW4gYWNjZWwgaW4gdGhlIGFkYXB0ZXIgKi8KKwkJZXJyID0gcWxnZV91cGRhdGVf aHdfdmxhbl9mZWF0dXJlcyhuZGV2LCBmZWF0dXJlcyk7CisJCWlmIChlcnIpCisJCQlyZXR1cm4g ZXJyOwogCi0JaWYgKGNoYW5nZWQgJiBORVRJRl9GX0hXX1ZMQU5fQ1RBR19SWCkKIAkJcWxnZV92 bGFuX21vZGUobmRldiwgZmVhdHVyZXMpOworCX0KIAogCXJldHVybiAwOwogfQpAQCAtNDcxOSw3 ICs0NzEzLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBxbGdlX25ldGRl dl9vcHMgPSB7CiAJLm5kb19zZXRfbWFjX2FkZHJlc3MJPSBxbGdlX3NldF9tYWNfYWRkcmVzcywK IAkubmRvX3ZhbGlkYXRlX2FkZHIJPSBldGhfdmFsaWRhdGVfYWRkciwKIAkubmRvX3R4X3RpbWVv dXQJCT0gcWxnZV90eF90aW1lb3V0LAotCS5uZG9fZml4X2ZlYXR1cmVzCT0gcWxnZV9maXhfZmVh dHVyZXMsCiAJLm5kb19zZXRfZmVhdHVyZXMJPSBxbGdlX3NldF9mZWF0dXJlcywKIAkubmRvX3Zs YW5fcnhfYWRkX3ZpZAk9IHFsZ2Vfdmxhbl9yeF9hZGRfdmlkLAogCS5uZG9fdmxhbl9yeF9raWxs X3ZpZAk9IHFsZ2Vfdmxhbl9yeF9raWxsX3ZpZCwKLS0gCjIuMTMuNgoKCkZyb20gMDY4YmU2M2Y2 YWEyMWEyNjQxMmIwMmE1ZjU2YThlMWFmYTMzMzBlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogS2FpLUhlbmcgRmVuZyA8a2FpLmhlbmcuZmVuZ0BjYW5vbmljYWwuY29tPgpEYXRlOiBN b24sIDIwIEF1ZyAyMDE4IDEyOjQzOjUxICswODAwClN1YmplY3Q6IFtQQVRDSCAwNy8zNl0gcjgx NTI6IGRpc2FibGUgUlggYWdncmVnYXRpb24gb24gbmV3IERlbGwgVEIxNiBkb2NrCgpbIFVwc3Ry ZWFtIGNvbW1pdCAxNzZlYjYxNGIxMThjOTZlNzc5N2Y1ZGRlZmQxMDcwOGMzMTZmNjIxIF0KClRo ZXJlJ3MgYSBuZXcgRGVsbCBUQjE2IGRvY2sgd2l0aCBhIGRpZmZlcmVudCBpU2VyaWFsTnVtYmVy LgoKQXBwbHkgdGhlIHNhbWUgZml4IGZyb20gY29tbWl0IDBiMTY1NTE0M2RmMCAoInI4MTUyOiBk aXNhYmxlIFJYCmFnZ3JlZ2F0aW9uIG9uIERlbGwgVEIxNiBkb2NrIikgdG8gdGhpcyBtb2RlbC4K CkJ1Z0xpbms6IGh0dHBzOi8vYnVncy5sYXVuY2hwYWQubmV0L2J1Z3MvMTc4NTc4MApTaWduZWQt b2ZmLWJ5OiBLYWktSGVuZyBGZW5nIDxrYWkuaGVuZy5mZW5nQGNhbm9uaWNhbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC91c2IvcjgxNTIuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvcjgxNTIu YyBiL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jCmluZGV4IDJhNTg2MDdhNmFlYS4uMWIwN2JiNWUx MTBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvcjgxNTIuYworKysgYi9kcml2ZXJzL25l dC91c2IvcjgxNTIuYwpAQCAtNTIxNCw4ICs1MjE0LDggQEAgc3RhdGljIGludCBydGw4MTUyX3By b2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAogCQluZXRkZXYtPmh3X2ZlYXR1cmVzICY9 IH5ORVRJRl9GX1JYQ1NVTTsKIAl9CiAKLQlpZiAobGUxNl90b19jcHUodWRldi0+ZGVzY3JpcHRv ci5iY2REZXZpY2UpID09IDB4MzAxMSAmJgotCSAgICB1ZGV2LT5zZXJpYWwgJiYgIXN0cmNtcCh1 ZGV2LT5zZXJpYWwsICIwMDAwMDEwMDAwMDAiKSkgeworCWlmIChsZTE2X3RvX2NwdSh1ZGV2LT5k ZXNjcmlwdG9yLmJjZERldmljZSkgPT0gMHgzMDExICYmIHVkZXYtPnNlcmlhbCAmJgorCSAgICAo IXN0cmNtcCh1ZGV2LT5zZXJpYWwsICIwMDAwMDEwMDAwMDAiKSB8fCAhc3RyY21wKHVkZXYtPnNl cmlhbCwgIjAwMDAwMjAwMDAwMCIpKSkgewogCQlkZXZfaW5mbygmdWRldi0+ZGV2LCAiRGVsbCBU QjE2IERvY2ssIGRpc2FibGUgUlggYWdncmVnYXRpb24iKTsKIAkJc2V0X2JpdChERUxMX1RCX1JY X0FHR19CVUcsICZ0cC0+ZmxhZ3MpOwogCX0KLS0gCjIuMTMuNgoKCkZyb20gMWU0MTQ5ZjZjOTg3 MGViMTBkN2VjMjZkMGZlMmEzMDZlZGY2Y2UxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQW50aG9ueSBXb25nIDxhbnRob255LndvbmdAdWJ1bnR1LmNvbT4KRGF0ZTogRnJpLCAzMSBB dWcgMjAxOCAyMDowNjo0MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMzZdIHI4MTY5OiBhZGQg c3VwcG9ydCBmb3IgTkN1YmUgODE2OCBuZXR3b3JrIGNhcmQKClsgVXBzdHJlYW0gY29tbWl0IDlm ZDBlMDlhNGU4NjQ5OTYzOTY1MzI0M2VkZmNiNDE3YTA1YzVjNDYgXQoKVGhpcyBjYXJkIGlkZW50 aWZpZXMgaXRzZWxmIGFzOgogIEV0aGVybmV0IGNvbnRyb2xsZXIgWzAyMDBdOiBOQ3ViZSBEZXZp Y2UgWzEwZmY6ODE2OF0gKHJldiAwNikKICBTdWJzeXN0ZW06IFRQLUxJTksgVGVjaG5vbG9naWVz IENvLiwgTHRkLiBEZXZpY2UgWzc0NzA6MzQ2OF0KCkFkZGluZyBhIG5ldyBlbnRyeSB0byBydGw4 MTY5X3BjaV90YmwgbWFrZXMgdGhlIGNhcmQgd29yay4KCkxpbms6IGh0dHA6Ly9sYXVuY2hwYWQu bmV0L2J1Z3MvMTc4ODczMApTaWduZWQtb2ZmLWJ5OiBBbnRob255IFdvbmcgPGFudGhvbnkud29u Z0B1YnVudHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jIHwgMSAr CiBpbmNsdWRlL2xpbnV4L3BjaV9pZHMuaCAgICAgICAgICAgICAgfCAyICsrCiAyIGZpbGVzIGNo YW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3JlYWx0ZWsvcjgxNjkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwpp bmRleCA5Y2ViMzRiYWMzYTkuLjY1ZTRlMzkyNzc0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0 ZWsvcjgxNjkuYwpAQCAtMzAzLDYgKzMwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2Rl dmljZV9pZCBydGw4MTY5X3BjaV90YmxbXSA9IHsKIAl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9J RF9SRUFMVEVLLAkweDgxNjEpLCAwLCAwLCBSVExfQ0ZHXzEgfSwKIAl7IFBDSV9ERVZJQ0UoUENJ X1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxNjcpLCAwLCAwLCBSVExfQ0ZHXzAgfSwKIAl7IFBDSV9E RVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxNjgpLCAwLCAwLCBSVExfQ0ZHXzEgfSwK Kwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9OQ1VCRSwJMHg4MTY4KSwgMCwgMCwgUlRMX0NG R18xIH0sCiAJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfUkVBTFRFSywJMHg4MTY5KSwgMCwg MCwgUlRMX0NGR18wIH0sCiAJeyBQQ0lfVkVORE9SX0lEX0RMSU5LLAkJCTB4NDMwMCwKIAkJUENJ X1ZFTkRPUl9JRF9ETElOSywgMHg0YjEwLAkJIDAsIDAsIFJUTF9DRkdfMSB9LApkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9wY2lfaWRzLmggYi9pbmNsdWRlL2xpbnV4L3BjaV9pZHMuaAppbmRl eCAyOTUwMjIzOGU1MTAuLmJmODVlMTUyYWYwNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9w Y2lfaWRzLmgKKysrIGIvaW5jbHVkZS9saW51eC9wY2lfaWRzLmgKQEAgLTMwODIsNCArMzA4Miw2 IEBACiAKICNkZWZpbmUgUENJX1ZFTkRPUl9JRF9PQ1oJCTB4MWI4NQogCisjZGVmaW5lIFBDSV9W RU5ET1JfSURfTkNVQkUJCTB4MTBmZgorCiAjZW5kaWYgLyogX0xJTlVYX1BDSV9JRFNfSCAqLwot LSAKMi4xMy42CgoKRnJvbSA0ODRmMTJhYTBhMDJmMGJkODExNTNkNzM4Y2YyZGU4YmNmYjU2Mjhh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIFdlc3RwaGFsIDxmd0BzdHJs ZW4uZGU+CkRhdGU6IFRodSwgMzAgQXVnIDIwMTggMTQ6MjQ6MjkgKzAyMDAKU3ViamVjdDogW1BB VENIIDA5LzM2XSB0Y3A6IGRvIG5vdCByZXN0YXJ0IHRpbWV3YWl0IHRpbWVyIG9uIHJzdCByZWNl cHRpb24KClsgVXBzdHJlYW0gY29tbWl0IDYzY2MzNTdmN2JiYTY3Mjk4Njk1NjVhMTJkZjA4NDQx YTU5OTVkOWEgXQoKUkZDIDEzMzcgc2F5czoKICcnSWdub3JlIFJTVCBzZWdtZW50cyBpbiBUSU1F LVdBSVQgc3RhdGUuCiAgIElmIHRoZSAyIG1pbnV0ZSBNU0wgaXMgZW5mb3JjZWQsIHRoaXMgZml4 IGF2b2lkcyBhbGwgdGhyZWUgaGF6YXJkcy4nJwoKU28gd2l0aCBuZXQuaXB2NC50Y3BfcmZjMTMz Nz0xLCBleHBlY3RlZCBiZWhhdmlvdXIgaXMgdG8gaGF2ZSBUSU1FLVdBSVQgc2sKZXhwaXJlIHJh dGhlciB0aGFuIHJlbW92aW5nIGl0IGluc3RhbnRseSB3aGVuIGEgcmVzZXQgaXMgcmVjZWl2ZWQu CgpIb3dldmVyLCBMaW51eCB3aWxsIGFsc28gcmUtc3RhcnQgdGhlIFRJTUUtV0FJVCB0aW1lci4K ClRoaXMgY2F1c2VzIGNvbm5lY3QgdG8gZmFpbCB3aGVuIHR5aW5nIHRvIHJlLXVzZSBwb3J0cyBv ciB2ZXJ5IGxvbmcKZGVsYXlzICh1bnRpbCBzeW4gcmV0cnkgaW50ZXJ2YWwgZXhjZWVkcyBNU0wp LgoKcGFja2V0ZHJpbGwgdGVzdCBjYXNlOgovLyBEZW1vbnN0cmF0ZSBib2d1cyByZWFybWluZyBv ZiBUSU1FLVdBSVQgdGltZXIgaW4gcmZjMTMzNyBtb2RlLgpgc3lzY3RsIG5ldC5pcHY0LnRjcF9y ZmMxMzM3PTFgCgowLjAwMCBzb2NrZXQoLi4uLCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApID0g MwowLjAwMCBzZXRzb2Nrb3B0KDMsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgWzFdLCA0KSA9 IDAKMC4wMDAgYmluZCgzLCAuLi4sIC4uLikgPSAwCjAuMDAwIGxpc3RlbigzLCAxKSA9IDAKCjAu MTAwIDwgUyAwOjAoMCkgd2luIDI5MjAwIDxtc3MgMTQ2MCxub3Asbm9wLHNhY2tPSyxub3Asd3Nj YWxlIDc+CjAuMTAwID4gUy4gMDowKDApIGFjayAxIDxtc3MgMTQ2MCxub3Asbm9wLHNhY2tPSyxu b3Asd3NjYWxlIDc+CjAuMjAwIDwgLiAxOjEoMCkgYWNrIDEgd2luIDI1NwowLjIwMCBhY2NlcHQo MywgLi4uLCAuLi4pID0gNAoKLy8gUmVjZWl2ZSBmaXJzdCBzZWdtZW50CjAuMzEwIDwgUC4gMTox MDAxKDEwMDApIGFjayAxIHdpbiA0NgoKLy8gU2VuZCBvbmUgQUNLCjAuMzEwID4gLiAxOjEoMCkg YWNrIDEwMDEKCi8vIHJlYWQgMTAwMCBieXRlCjAuMzEwIHJlYWQoNCwgLi4uLCAxMDAwKSA9IDEw MDAKCi8vIEFwcGxpY2F0aW9uIHdyaXRlcyAxMDAgYnl0ZXMKMC4zNTAgd3JpdGUoNCwgLi4uLCAx MDApID0gMTAwCjAuMzUwID4gUC4gMToxMDEoMTAwKSBhY2sgMTAwMQoKLy8gQUNLCjAuNTAwIDwg LiAxMDAxOjEwMDEoMCkgYWNrIDEwMSB3aW4gMjU3CgovLyBjbG9zZSB0aGUgY29ubmVjdGlvbgow LjYwMCBjbG9zZSg0KSA9IDAKMC42MDAgPiBGLiAxMDE6MTAxKDApIGFjayAxMDAxIHdpbiAyNDQK Ci8vIE91ciBzaWRlIGlzIGluIEZJTl9XQUlUXzEgJiB3YWl0cyBmb3IgYWNrIHRvIGZpbgowLjcg PCAuIDEwMDE6MTAwMSgwKSBhY2sgMTAyIHdpbiAyNDQKCi8vIE91ciBzaWRlIGlzIGluIEZJTl9X QUlUXzIgd2l0aCBubyBvdXRzdGFuZGluZyBkYXRhLgowLjggPCBGLiAxMDAxOjEwMDEoMCkgYWNr IDEwMiB3aW4gMjQ0CjAuOCA+IC4gMTAyOjEwMigwKSBhY2sgMTAwMiB3aW4gMjQ0CgovLyBPdXIg c2lkZSBpcyBub3cgaW4gVElNRV9XQUlUIHN0YXRlLCBzZW5kIGFjayBmb3IgZmluLgowLjkgPCBG LiAxMDAyOjEwMDIoMCkgYWNrIDEwMiB3aW4gMjQ0CjAuOSA+IC4gMTAyOjEwMigwKSBhY2sgMTAw MiB3aW4gMjQ0CgovLyBQZWVyIHJlb3BlbnMgd2l0aCBpbi13aW5kb3cgU1lOOgoxLjAwMCA8IFMg MTAwMDoxMDAwKDApIHdpbiA5MjAwIDxtc3MgMTQ2MCxub3Asbm9wLHNhY2tPSyxub3Asd3NjYWxl IDc+CgovLyBUaGVyZWZvcmUsIHJlcGx5IHdpdGggQUNLLgoxLjAwMCA+IC4gMTAyOjEwMigwKSBh Y2sgMTAwMiB3aW4gMjQ0CgovLyBQZWVyIHNlbmRzIFJTVCBmb3IgdGhpcyBBQ0suICBOb3JtYWxs eSB0aGlzIFJTVCByZXN1bHRzCi8vIGluIHR3IHNvY2tldCByZW1vdmFsLCBidXQgcmZjMTMzNz0x IHNldHRpbmcgcHJldmVudHMgdGhpcy4KMS4xMDAgPCBSIDEwMDI6MTAwMigwKSB3aW4gMjQ0Cgov LyBzZWNvbmQgc3luLiBEdWUgdG8gcmZjMTMzNz0xIGV4cGVjdCBhbm90aGVyIHB1cmUgQUNLLgoz MS4wIDwgUyAxMDAwOjEwMDAoMCkgd2luIDkyMDAgPG1zcyAxNDYwLG5vcCxub3Asc2Fja09LLG5v cCx3c2NhbGUgNz4KMzEuMCA+IC4gMTAyOjEwMigwKSBhY2sgMTAwMiB3aW4gMjQ0CgovLyAuLiBh bmQgYW5vdGhlciBSU1QgZnJvbSBwZWVyLgozMS4xIDwgUiAxMDAyOjEwMDIoMCkgd2luIDI0NAoz MS4yIGBlY2hvIG5vIHRpbWVyIHJlc3RhcnQ7c3MgLW0gLWUgLWEgLWkgLW4gLXQgLW8gc3RhdGUg VElNRS1XQUlUYAoKLy8gdGhpcmQgc3luIGFmdGVyIG9uZSBtaW51dGUuICBUaW1lLVdhaXQgc29j a2V0IHNob3VsZCBoYXZlIGV4cGlyZWQgYnkgbm93Lgo2My4wIDwgUyAxMDAwOjEwMDAoMCkgd2lu IDkyMDAgPG1zcyAxNDYwLG5vcCxub3Asc2Fja09LLG5vcCx3c2NhbGUgNz4KCi8vIHNvIHdlIGV4 cGVjdCBhIHN5bi1hY2sgJiAzd2hzIHRvIHByb2NlZWQgZnJvbSBoZXJlIG9uLgo2My4wID4gUy4g MDowKDApIGFjayAxIDxtc3MgMTQ2MCxub3Asbm9wLHNhY2tPSyxub3Asd3NjYWxlIDc+CgpXaXRo b3V0IHRoaXMgcGF0Y2gsICdzcycgc2hvd3MgcmVzdGFydHMgb2YgdHcgdGltZXIgYW5kIGxhc3Qg cGFja2V0IGlzCnRodXMganVzdCBhbm90aGVyIHB1cmUgYWNrLCBtb3JlIHRoYW4gb25lIG1pbnV0 ZSBsYXRlci4KClRoaXMgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIGNvZGUgZnJvbSBjb21taXQgMjgz ZmQ2Y2YwYmU2OTBhODMKKCJNZXJnZSBpbiBBTksgbmV0d29ya2luZyBqdW1ibyBwYXRjaCIpIGlu IG5ldGRldi12Z2VyLWN2cy5naXQgLgoKRm9yIHNvbWUgcmVhc29uIHRoZSBlbHNlIGJyYW5jaCB3 YXMgcmVtb3ZlZC9sb3N0IGluIDFmMjhiNjgzMzM5ZjcKKCJNZXJnZSBpbiBUQ1AvVURQIG9wdGlt aXphdGlvbnMgYW5kIFsuLl0iKSBhbmQgdGltZXIgcmVzdGFydCBiZWNhbWUKdW5jb25kaXRpb25h bC4KClJlcG9ydGVkLWJ5OiBNaWNoYWwgVGVzYXIgPG10ZXNhckByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBGbG9yaWFuIFdlc3RwaGFsIDxmd0BzdHJsZW4uZGU+ClNpZ25lZC1vZmYtYnk6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9taW5pc29ja3Mu YyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jIGIvbmV0L2lwdjQvdGNwX21p bmlzb2Nrcy5jCmluZGV4IDFkZGExMzQxYTIyMy4uYjY5MDEzMmY1ZGEyIDEwMDY0NAotLS0gYS9u ZXQvaXB2NC90Y3BfbWluaXNvY2tzLmMKKysrIGIvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jCkBA IC0xODQsOCArMTg0LDkgQEAgdGNwX3RpbWV3YWl0X3N0YXRlX3Byb2Nlc3Moc3RydWN0IGluZXRf dGltZXdhaXRfc29jayAqdHcsIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJaW5ldF90d3NrX2Rl c2NoZWR1bGVfcHV0KHR3KTsKIAkJCQlyZXR1cm4gVENQX1RXX1NVQ0NFU1M7CiAJCQl9CisJCX0g ZWxzZSB7CisJCQlpbmV0X3R3c2tfcmVzY2hlZHVsZSh0dywgVENQX1RJTUVXQUlUX0xFTik7CiAJ CX0KLQkJaW5ldF90d3NrX3Jlc2NoZWR1bGUodHcsIFRDUF9USU1FV0FJVF9MRU4pOwogCiAJCWlm ICh0bXBfb3B0LnNhd190c3RhbXApIHsKIAkJCXRjcHR3LT50d190c19yZWNlbnQJICA9IHRtcF9v cHQucmN2X3RzdmFsOwotLSAKMi4xMy42CgoKRnJvbSBhMzliYTRkZGZiZjk0N2FhNzE3ZWMzZTQ5 NmNhNTMxMjg3NjNlZTljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgS29k YW5ldiA8YWxleGV5LmtvZGFuZXZAb3JhY2xlLmNvbT4KRGF0ZTogVGh1LCAyMyBBdWcgMjAxOCAx OTo0OTo1NCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMzZdIHZ0aTY6IHJlbW92ZSAhc2tiLT5p Z25vcmVfZGYgY2hlY2sgZnJvbSB2dGk2X3htaXQoKQoKWyBVcHN0cmVhbSBjb21taXQgOWYyODk1 NDYxNDM5ZmRhMjgwMWE3OTA2ZmI0YzVmYjNkYmIzN2EwYSBdCgpCZWZvcmUgdGhlIGNvbW1pdCBk Njk5MDk3NmFmN2MgKCJ2dGk2OiBmaXggUE1UVSBjYWNoaW5nIGFuZCByZXBvcnRpbmcKb24geG1p dCIpICchc2tiLT5pZ25vcmVfZGYnIGNoZWNrIHdhcyBhbHdheXMgdHJ1ZSBiZWNhdXNlIHRoZSBm dW5jdGlvbgpza2Jfc2NydWJfcGFja2V0KCkgd2FzIGNhbGxlZCBiZWZvcmUgaXQsIHJlc2V0dGlu ZyBpZ25vcmVfZGYgdG8gemVyby4KCkluIHRoZSBjb21taXQsIHNrYl9zY3J1Yl9wYWNrZXQoKSB3 YXMgbW92ZWQgYmVsb3csIGFuZCBub3cgdGhpcyBjaGVjawpjYW4gYmUgZmFsc2UgZm9yIHRoZSBw YWNrZXQsIGUuZy4gd2hlbiBzZW5kaW5nIGl0IGluIHRoZSB0d28gZnJhZ21lbnRzLAp0aGlzIHBy ZXZlbnRzIHN1Y2Nlc3NmdWwgUE1UVSB1cGRhdGVzIGluIHN1Y2ggY2FzZS4gVGhlIG5leHQgYXR0 ZW1wdHMKdG8gc2VuZCB0aGUgcGFja2V0IGxlYWQgdG8gdGhlIHNhbWUgdHggZXJyb3IuIE1vcmVv dmVyLCB2dGk2IGluaXRpYWwKTVRVIHZhbHVlIHJlbGllcyBvbiBQTVRVIGFkanVzdG1lbnRzLgoK VGhpcyBpc3N1ZSBjYW4gYmUgcmVwcm9kdWNlZCB3aXRoIHRoZSBmb2xsb3dpbmcgTFRQIHRlc3Qg c2NyaXB0OgogICAgdWRwX2lwc2VjX3Z0aS5zaCAtNiAtcCBhaCAtbSB0dW5uZWwgLXMgMjAwMAoK Rml4ZXM6IGNjZDc0MGNiYzZlMCAoInZ0aTY6IEFkZCBwbXR1IGhhbmRsaW5nIHRvIHZ0aTZfeG1p dC4iKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgS29kYW5ldiA8YWxleGV5LmtvZGFuZXZAb3JhY2xl LmNvbT4KQWNrZWQtYnk6IFN0ZWZmZW4gS2xhc3NlcnQgPHN0ZWZmZW4ua2xhc3NlcnRAc2VjdW5l dC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2Ni9pcDZfdnRpLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfdnRpLmMg Yi9uZXQvaXB2Ni9pcDZfdnRpLmMKaW5kZXggYzcyYWUzYTRmZTA5Li5mYmQzNzUyZWE1ODcgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl92dGkuYworKysgYi9uZXQvaXB2Ni9pcDZfdnRpLmMKQEAg LTQ4MSw3ICs0ODEsNyBAQCB2dGk2X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgc3RydWN0IGZsb3dpICpmbCkKIAl9CiAKIAltdHUgPSBkc3RfbXR1KGRz dCk7Ci0JaWYgKCFza2ItPmlnbm9yZV9kZiAmJiBza2ItPmxlbiA+IG10dSkgeworCWlmIChza2It PmxlbiA+IG10dSkgewogCQlza2JfZHN0X3VwZGF0ZV9wbXR1KHNrYiwgbXR1KTsKIAogCQlpZiAo c2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUFY2KSkgewotLSAKMi4xMy42CgoKRnJvbSBj NmFmOWVmNWQ4YzgwNzdmNjUzNWYzYjMxM2YyM2QyNTBiZDQzOGE5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTog U3VuLCAxOSBBdWcgMjAxOCAxMjoyMjoxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMzZdIGFj dF9pZmU6IG1vdmUgdGNmYV9sb2NrIGRvd24gdG8gd2hlcmUgbmVjZXNzYXJ5CgpbIFVwc3RyZWFt IGNvbW1pdCA0ZTQwN2ZmNWNkNjdlYzc2ZWVlZWExZGVlYzIyN2I3OTgyZGM3ZjY2IF0KClRoZSBv bmx5IHRpbWUgd2UgbmVlZCB0byB0YWtlIHRjZmFfbG9jayBpcyB3aGVuIGFkZGluZwphIG5ldyBt ZXRhaW5mbyB0byBhbiBleGlzdGluZyBpZmUtPm1ldGFsaXN0LiBXZSBkb24ndCBuZWVkCnRvIHRh a2UgdGNmYV9sb2NrIHNvIGVhcmx5IGFuZCBzbyBicm9hZGx5IGluIHRjZl9pZmVfaW5pdCgpLgoK VGhpcyBtZWFucyB3ZSBjYW4gYWx3YXlzIHRha2UgaWZlX21vZF9sb2NrIGZpcnN0LCBhdm9pZCB0 aGUKcmV2ZXJzZSBsb2NraW5nIG9yZGVyaW5nIHdhcm5pbmcgYXMgcmVwb3J0ZWQgYnkgVmxhZC4K ClJlcG9ydGVkLWJ5OiBWbGFkIEJ1c2xvdiA8dmxhZGJ1QG1lbGxhbm94LmNvbT4KVGVzdGVkLWJ5 OiBWbGFkIEJ1c2xvdiA8dmxhZGJ1QG1lbGxhbm94LmNvbT4KQ2M6IFZsYWQgQnVzbG92IDx2bGFk YnVAbWVsbGFub3guY29tPgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4K U2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv c2NoZWQvYWN0X2lmZS5jIHwgMzYgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9pZmUuYyBiL25ldC9zY2hlZC9hY3RfaWZlLmMKaW5kZXgg MjAxZTU5OWJhZWQ5Li5mYzRiNmUxOGNkMmQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfaWZl LmMKKysrIGIvbmV0L3NjaGVkL2FjdF9pZmUuYwpAQCAtMjY1LDEwICsyNjUsOCBAQCBzdGF0aWMg Y29uc3QgY2hhciAqaWZlX21ldGFfaWQybmFtZSh1MzIgbWV0YWlkKQogI2VuZGlmCiAKIC8qIGNh bGxlZCB3aGVuIGFkZGluZyBuZXcgbWV0YSBpbmZvcm1hdGlvbgotICogdW5kZXIgaWZlLT50Y2Zf bG9jayBmb3IgZXhpc3RpbmcgYWN0aW9uCiAqLwotc3RhdGljIGludCBsb2FkX21ldGFvcHNfYW5k X3ZldChzdHJ1Y3QgdGNmX2lmZV9pbmZvICppZmUsIHUzMiBtZXRhaWQsCi0JCQkJdm9pZCAqdmFs LCBpbnQgbGVuLCBib29sIGV4aXN0cykKK3N0YXRpYyBpbnQgbG9hZF9tZXRhb3BzX2FuZF92ZXQo dTMyIG1ldGFpZCwgdm9pZCAqdmFsLCBpbnQgbGVuKQogewogCXN0cnVjdCB0Y2ZfbWV0YV9vcHMg Km9wcyA9IGZpbmRfaWZlX29wbGlzdChtZXRhaWQpOwogCWludCByZXQgPSAwOwpAQCAtMjc2LDEz ICsyNzQsOSBAQCBzdGF0aWMgaW50IGxvYWRfbWV0YW9wc19hbmRfdmV0KHN0cnVjdCB0Y2ZfaWZl X2luZm8gKmlmZSwgdTMyIG1ldGFpZCwKIAlpZiAoIW9wcykgewogCQlyZXQgPSAtRU5PRU5UOwog I2lmZGVmIENPTkZJR19NT0RVTEVTCi0JCWlmIChleGlzdHMpCi0JCQlzcGluX3VubG9ja19iaCgm aWZlLT50Y2ZfbG9jayk7CiAJCXJ0bmxfdW5sb2NrKCk7CiAJCXJlcXVlc3RfbW9kdWxlKCJpZmUt bWV0YS0lcyIsIGlmZV9tZXRhX2lkMm5hbWUobWV0YWlkKSk7CiAJCXJ0bmxfbG9jaygpOwotCQlp ZiAoZXhpc3RzKQotCQkJc3Bpbl9sb2NrX2JoKCZpZmUtPnRjZl9sb2NrKTsKIAkJb3BzID0gZmlu ZF9pZmVfb3BsaXN0KG1ldGFpZCk7CiAjZW5kaWYKIAl9CkBAIC0yOTksMTAgKzI5Myw5IEBAIHN0 YXRpYyBpbnQgbG9hZF9tZXRhb3BzX2FuZF92ZXQoc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLCB1 MzIgbWV0YWlkLAogfQogCiAvKiBjYWxsZWQgd2hlbiBhZGRpbmcgbmV3IG1ldGEgaW5mb3JtYXRp b24KLSAqIHVuZGVyIGlmZS0+dGNmX2xvY2sgZm9yIGV4aXN0aW5nIGFjdGlvbgogKi8KIHN0YXRp YyBpbnQgYWRkX21ldGFpbmZvKHN0cnVjdCB0Y2ZfaWZlX2luZm8gKmlmZSwgdTMyIG1ldGFpZCwg dm9pZCAqbWV0YXZhbCwKLQkJCWludCBsZW4sIGJvb2wgYXRvbWljKQorCQkJaW50IGxlbiwgYm9v bCBhdG9taWMsIGJvb2wgZXhpc3RzKQogewogCXN0cnVjdCB0Y2ZfbWV0YV9pbmZvICptaSA9IE5V TEw7CiAJc3RydWN0IHRjZl9tZXRhX29wcyAqb3BzID0gZmluZF9pZmVfb3BsaXN0KG1ldGFpZCk7 CkBAIC0zMjksMTIgKzMyMiwxNiBAQCBzdGF0aWMgaW50IGFkZF9tZXRhaW5mbyhzdHJ1Y3QgdGNm X2lmZV9pbmZvICppZmUsIHUzMiBtZXRhaWQsIHZvaWQgKm1ldGF2YWwsCiAJCX0KIAl9CiAKKwlp ZiAoZXhpc3RzKQorCQlzcGluX2xvY2tfYmgoJmlmZS0+dGNmX2xvY2spOwogCWxpc3RfYWRkX3Rh aWwoJm1pLT5tZXRhbGlzdCwgJmlmZS0+bWV0YWxpc3QpOworCWlmIChleGlzdHMpCisJCXNwaW5f dW5sb2NrX2JoKCZpZmUtPnRjZl9sb2NrKTsKIAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBp bnQgdXNlX2FsbF9tZXRhZGF0YShzdHJ1Y3QgdGNmX2lmZV9pbmZvICppZmUpCitzdGF0aWMgaW50 IHVzZV9hbGxfbWV0YWRhdGEoc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLCBib29sIGV4aXN0cykK IHsKIAlzdHJ1Y3QgdGNmX21ldGFfb3BzICpvOwogCWludCByYyA9IDA7CkBAIC0zNDIsNyArMzM5 LDcgQEAgc3RhdGljIGludCB1c2VfYWxsX21ldGFkYXRhKHN0cnVjdCB0Y2ZfaWZlX2luZm8gKmlm ZSkKIAogCXJlYWRfbG9jaygmaWZlX21vZF9sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG8s ICZpZmVvcGxpc3QsIGxpc3QpIHsKLQkJcmMgPSBhZGRfbWV0YWluZm8oaWZlLCBvLT5tZXRhaWQs IE5VTEwsIDAsIHRydWUpOworCQlyYyA9IGFkZF9tZXRhaW5mbyhpZmUsIG8tPm1ldGFpZCwgTlVM TCwgMCwgdHJ1ZSwgZXhpc3RzKTsKIAkJaWYgKHJjID09IDApCiAJCQlpbnN0YWxsZWQgKz0gMTsK IAl9CkBAIC00MTksNyArNDE2LDYgQEAgc3RhdGljIHZvaWQgdGNmX2lmZV9jbGVhbnVwKHN0cnVj dCB0Y19hY3Rpb24gKmEpCiAJCWtmcmVlX3JjdShwLCByY3UpOwogfQogCi0vKiB1bmRlciBpZmUt PnRjZl9sb2NrIGZvciBleGlzdGluZyBhY3Rpb24gKi8KIHN0YXRpYyBpbnQgcG9wdWxhdGVfbWV0 YWxpc3Qoc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLCBzdHJ1Y3QgbmxhdHRyICoqdGIsCiAJCQkg ICAgIGJvb2wgZXhpc3RzKQogewpAQCAtNDMzLDExICs0MjksMTEgQEAgc3RhdGljIGludCBwb3B1 bGF0ZV9tZXRhbGlzdChzdHJ1Y3QgdGNmX2lmZV9pbmZvICppZmUsIHN0cnVjdCBubGF0dHIgKip0 YiwKIAkJCXZhbCA9IG5sYV9kYXRhKHRiW2ldKTsKIAkJCWxlbiA9IG5sYV9sZW4odGJbaV0pOwog Ci0JCQlyYyA9IGxvYWRfbWV0YW9wc19hbmRfdmV0KGlmZSwgaSwgdmFsLCBsZW4sIGV4aXN0cyk7 CisJCQlyYyA9IGxvYWRfbWV0YW9wc19hbmRfdmV0KGksIHZhbCwgbGVuKTsKIAkJCWlmIChyYyAh PSAwKQogCQkJCXJldHVybiByYzsKIAotCQkJcmMgPSBhZGRfbWV0YWluZm8oaWZlLCBpLCB2YWws IGxlbiwgZXhpc3RzKTsKKwkJCXJjID0gYWRkX21ldGFpbmZvKGlmZSwgaSwgdmFsLCBsZW4sIGZh bHNlLCBleGlzdHMpOwogCQkJaWYgKHJjKQogCQkJCXJldHVybiByYzsKIAkJfQpAQCAtNTMxLDgg KzUyNyw2IEBAIHN0YXRpYyBpbnQgdGNmX2lmZV9pbml0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0 IG5sYXR0ciAqbmxhLAogCQlwLT5ldGhfdHlwZSA9IGlmZV90eXBlOwogCX0KIAotCWlmIChleGlz dHMpCi0JCXNwaW5fbG9ja19iaCgmaWZlLT50Y2ZfbG9jayk7CiAKIAlpZiAocmV0ID09IEFDVF9Q X0NSRUFURUQpCiAJCUlOSVRfTElTVF9IRUFEKCZpZmUtPm1ldGFsaXN0KTsKQEAgLTU0NCw5ICs1 MzgsNiBAQCBzdGF0aWMgaW50IHRjZl9pZmVfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBu bGF0dHIgKm5sYSwKIG1ldGFkYXRhX3BhcnNlX2VycjoKIAkJCWlmIChyZXQgPT0gQUNUX1BfQ1JF QVRFRCkKIAkJCQl0Y2ZfaWRyX3JlbGVhc2UoKmEsIGJpbmQpOwotCi0JCQlpZiAoZXhpc3RzKQot CQkJCXNwaW5fdW5sb2NrX2JoKCZpZmUtPnRjZl9sb2NrKTsKIAkJCWtmcmVlKHApOwogCQkJcmV0 dXJuIGVycjsKIAkJfQpAQCAtNTYxLDE4ICs1NTIsMTcgQEAgc3RhdGljIGludCB0Y2ZfaWZlX2lu aXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICpubGEsCiAJCSAqIGFzIHdlIGNhbi4g WW91IGJldHRlciBoYXZlIGF0IGxlYXN0IG9uZSBlbHNlIHdlIGFyZQogCQkgKiBnb2luZyB0byBi YWlsIG91dAogCQkgKi8KLQkJZXJyID0gdXNlX2FsbF9tZXRhZGF0YShpZmUpOworCQllcnIgPSB1 c2VfYWxsX21ldGFkYXRhKGlmZSwgZXhpc3RzKTsKIAkJaWYgKGVycikgewogCQkJaWYgKHJldCA9 PSBBQ1RfUF9DUkVBVEVEKQogCQkJCXRjZl9pZHJfcmVsZWFzZSgqYSwgYmluZCk7Ci0KLQkJCWlm IChleGlzdHMpCi0JCQkJc3Bpbl91bmxvY2tfYmgoJmlmZS0+dGNmX2xvY2spOwogCQkJa2ZyZWUo cCk7CiAJCQlyZXR1cm4gZXJyOwogCQl9CiAJfQogCisJaWYgKGV4aXN0cykKKwkJc3Bpbl9sb2Nr X2JoKCZpZmUtPnRjZl9sb2NrKTsKIAlpZmUtPnRjZl9hY3Rpb24gPSBwYXJtLT5hY3Rpb247CiAJ aWYgKGV4aXN0cykKIAkJc3Bpbl91bmxvY2tfYmgoJmlmZS0+dGNmX2xvY2spOwotLSAKMi4xMy42 CgoKRnJvbSBkYWYyMTc3MTdiOWJlYTJjMmZlYzg1NDc1ZTU0NWU0OWQwNjNhMjNmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KRGF0ZTogU3VuLCAxOSBBdWcgMjAxOCAxMjoyMjoxMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MTIvMzZdIGFjdF9pZmU6IGZpeCBhIHBvdGVudGlhbCBkZWFkbG9jawoKWyBVcHN0cmVhbSBjb21t aXQgNWZmZTU3ZGEyOWIzODAyYmFlZGRhYTQwOTA5NjgyYmJiNGNiNGQ0OCBdCgp1c2VfYWxsX21l dGFkYXRhKCkgYWNxdWlyZXMgcmVhZF9sb2NrKCZpZmVfbW9kX2xvY2spLCB0aGVuIGNhbGxzCmFk ZF9tZXRhaW5mbygpIHdoaWNoIGNhbGxzIGZpbmRfaWZlX29wbGlzdCgpIHdoaWNoIGFjcXVpcmVz IHRoZSBzYW1lCmxvY2sgYWdhaW4uIERlYWRsb2NrIQoKSW50cm9kdWNlIF9fYWRkX21ldGFpbmZv KCkgd2hpY2ggYWNjZXB0cyBzdHJ1Y3QgdGNmX21ldGFfb3BzICpvcHMKYXMgYW4gYWRkaXRpb25h bCBwYXJhbWV0ZXIgYW5kIGxldCBpdHMgY2FsbGVycyB0byBkZWNpZGUgaG93CnRvIGZpbmQgaXQu IEZvciB1c2VfYWxsX21ldGFkYXRhKCksIGl0IGFscmVhZHkgaGFzIG9wcywgbm8KbmVlZCB0byBm aW5kIGl0IGFnYWluLCBqdXN0IGNhbGwgX19hZGRfbWV0YWluZm8oKSBkaXJlY3RseS4KCkFuZCwg YXMgaWZlX21vZF9sb2NrIGlzIG9ubHkgbmVlZGVkIGZvciBmaW5kX2lmZV9vcGxpc3QoKSwKdGhp cyBtZWFucyB3ZSBjYW4gbWFrZSBub24tYXRvbWljIGFsbG9jYXRpb24gZm9yIHBvcHVsYXRlX21l dGFsaXN0KCkKbm93LgoKRml4ZXM6IDgxN2U5ZjJjNWMyNiAoImFjdF9pZmU6IGFjcXVpcmUgaWZl X21vZF9sb2NrIGJlZm9yZSByZWFkaW5nIGlmZW9wbGlzdCIpCkNjOiBKYW1hbCBIYWRpIFNhbGlt IDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdj b25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfaWZlLmMgfCAzNCArKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMTMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9pZmUuYyBiL25ldC9zY2hl ZC9hY3RfaWZlLmMKaW5kZXggZmM0YjZlMThjZDJkLi40M2NhMDRlYjYxMDggMTAwNjQ0Ci0tLSBh L25ldC9zY2hlZC9hY3RfaWZlLmMKKysrIGIvbmV0L3NjaGVkL2FjdF9pZmUuYwpAQCAtMjk0LDIy ICsyOTQsMTYgQEAgc3RhdGljIGludCBsb2FkX21ldGFvcHNfYW5kX3ZldCh1MzIgbWV0YWlkLCB2 b2lkICp2YWwsIGludCBsZW4pCiAKIC8qIGNhbGxlZCB3aGVuIGFkZGluZyBuZXcgbWV0YSBpbmZv cm1hdGlvbgogKi8KLXN0YXRpYyBpbnQgYWRkX21ldGFpbmZvKHN0cnVjdCB0Y2ZfaWZlX2luZm8g KmlmZSwgdTMyIG1ldGFpZCwgdm9pZCAqbWV0YXZhbCwKLQkJCWludCBsZW4sIGJvb2wgYXRvbWlj LCBib29sIGV4aXN0cykKK3N0YXRpYyBpbnQgX19hZGRfbWV0YWluZm8oY29uc3Qgc3RydWN0IHRj Zl9tZXRhX29wcyAqb3BzLAorCQkJICBzdHJ1Y3QgdGNmX2lmZV9pbmZvICppZmUsIHUzMiBtZXRh aWQsIHZvaWQgKm1ldGF2YWwsCisJCQkgIGludCBsZW4sIGJvb2wgYXRvbWljLCBib29sIGV4aXN0 cykKIHsKIAlzdHJ1Y3QgdGNmX21ldGFfaW5mbyAqbWkgPSBOVUxMOwotCXN0cnVjdCB0Y2ZfbWV0 YV9vcHMgKm9wcyA9IGZpbmRfaWZlX29wbGlzdChtZXRhaWQpOwogCWludCByZXQgPSAwOwogCi0J aWYgKCFvcHMpCi0JCXJldHVybiAtRU5PRU5UOwotCiAJbWkgPSBremFsbG9jKHNpemVvZigqbWkp LCBhdG9taWMgPyBHRlBfQVRPTUlDIDogR0ZQX0tFUk5FTCk7Ci0JaWYgKCFtaSkgewotCQkvKnB1 dCBiYWNrIHdoYXQgZmluZF9pZmVfb3BsaXN0IHRvb2sgKi8KLQkJbW9kdWxlX3B1dChvcHMtPm93 bmVyKTsKKwlpZiAoIW1pKQogCQlyZXR1cm4gLUVOT01FTTsKLQl9CiAKIAltaS0+bWV0YWlkID0g bWV0YWlkOwogCW1pLT5vcHMgPSBvcHM7CkBAIC0zMTcsNyArMzExLDYgQEAgc3RhdGljIGludCBh ZGRfbWV0YWluZm8oc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLCB1MzIgbWV0YWlkLCB2b2lkICpt ZXRhdmFsLAogCQlyZXQgPSBvcHMtPmFsbG9jKG1pLCBtZXRhdmFsLCBhdG9taWMgPyBHRlBfQVRP TUlDIDogR0ZQX0tFUk5FTCk7CiAJCWlmIChyZXQgIT0gMCkgewogCQkJa2ZyZWUobWkpOwotCQkJ bW9kdWxlX3B1dChvcHMtPm93bmVyKTsKIAkJCXJldHVybiByZXQ7CiAJCX0KIAl9CkBAIC0zMzEs NiArMzI0LDIxIEBAIHN0YXRpYyBpbnQgYWRkX21ldGFpbmZvKHN0cnVjdCB0Y2ZfaWZlX2luZm8g KmlmZSwgdTMyIG1ldGFpZCwgdm9pZCAqbWV0YXZhbCwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0 aWMgaW50IGFkZF9tZXRhaW5mbyhzdHJ1Y3QgdGNmX2lmZV9pbmZvICppZmUsIHUzMiBtZXRhaWQs IHZvaWQgKm1ldGF2YWwsCisJCQlpbnQgbGVuLCBib29sIGV4aXN0cykKK3sKKwljb25zdCBzdHJ1 Y3QgdGNmX21ldGFfb3BzICpvcHMgPSBmaW5kX2lmZV9vcGxpc3QobWV0YWlkKTsKKwlpbnQgcmV0 OworCisJaWYgKCFvcHMpCisJCXJldHVybiAtRU5PRU5UOworCXJldCA9IF9fYWRkX21ldGFpbmZv KG9wcywgaWZlLCBtZXRhaWQsIG1ldGF2YWwsIGxlbiwgZmFsc2UsIGV4aXN0cyk7CisJaWYgKHJl dCkKKwkJLypwdXQgYmFjayB3aGF0IGZpbmRfaWZlX29wbGlzdCB0b29rICovCisJCW1vZHVsZV9w dXQob3BzLT5vd25lcik7CisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGludCB1c2VfYWxsX21l dGFkYXRhKHN0cnVjdCB0Y2ZfaWZlX2luZm8gKmlmZSwgYm9vbCBleGlzdHMpCiB7CiAJc3RydWN0 IHRjZl9tZXRhX29wcyAqbzsKQEAgLTMzOSw3ICszNDcsNyBAQCBzdGF0aWMgaW50IHVzZV9hbGxf bWV0YWRhdGEoc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLCBib29sIGV4aXN0cykKIAogCXJlYWRf bG9jaygmaWZlX21vZF9sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG8sICZpZmVvcGxpc3Qs IGxpc3QpIHsKLQkJcmMgPSBhZGRfbWV0YWluZm8oaWZlLCBvLT5tZXRhaWQsIE5VTEwsIDAsIHRy dWUsIGV4aXN0cyk7CisJCXJjID0gX19hZGRfbWV0YWluZm8obywgaWZlLCBvLT5tZXRhaWQsIE5V TEwsIDAsIHRydWUsIGV4aXN0cyk7CiAJCWlmIChyYyA9PSAwKQogCQkJaW5zdGFsbGVkICs9IDE7 CiAJfQpAQCAtNDMzLDcgKzQ0MSw3IEBAIHN0YXRpYyBpbnQgcG9wdWxhdGVfbWV0YWxpc3Qoc3Ry dWN0IHRjZl9pZmVfaW5mbyAqaWZlLCBzdHJ1Y3QgbmxhdHRyICoqdGIsCiAJCQlpZiAocmMgIT0g MCkKIAkJCQlyZXR1cm4gcmM7CiAKLQkJCXJjID0gYWRkX21ldGFpbmZvKGlmZSwgaSwgdmFsLCBs ZW4sIGZhbHNlLCBleGlzdHMpOworCQkJcmMgPSBhZGRfbWV0YWluZm8oaWZlLCBpLCB2YWwsIGxl biwgZXhpc3RzKTsKIAkJCWlmIChyYykKIAkJCQlyZXR1cm4gcmM7CiAJCX0KLS0gCjIuMTMuNgoK CkZyb20gMzNmOWRkZmEzNGNjZjcxZTg3Njc3OWM5ZjVjYWYxMDA0MzYzMzZmYSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogVmxhZCBCdXNsb3YgPHZsYWRidUBtZWxsYW5veC5jb20+CkRh dGU6IFR1ZSwgNCBTZXAgMjAxOCAwMDo0NDo0MiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMzZd IG5ldDogc2NoZWQ6IGFjdGlvbl9pZmU6IHRha2UgcmVmZXJlbmNlIHRvIG1ldGEgbW9kdWxlCgpb IFVwc3RyZWFtIGNvbW1pdCA4NGNiOGViMjZjYjljZTNjNzk5MjgwOTQ5NjJhNDc1YTlkODUwYTUz IF0KClJlY2VudCByZWZhY3RvcmluZyBvZiBhZGRfbWV0YWluZm8oKSBjYXVzZWQgdXNlX2FsbF9t ZXRhZGF0YSgpIHRvIGFkZAptZXRhaW5mbyB0byBpZmUgYWN0aW9uIG1ldGFsaXN0IHdpdGhvdXQg dGFraW5nIHJlZmVyZW5jZSB0byBtb2R1bGUuIFRoaXMKY2F1c2VzIHdhcm5pbmcgaW4gbW9kdWxl X3B1dCBjYWxsZWQgZnJvbSBpZmUgYWN0aW9uIGNsZWFudXAgZnVuY3Rpb24uCgpJbXBsZW1lbnQg YWRkX21ldGFpbmZvX2FuZF9nZXRfb3BzKCkgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHdpdGggcmVm ZXJlbmNlCnRvIG1vZHVsZSB0YWtlbiBpZiBtZXRhaW5mbyB3YXMgYWRkZWQgc3VjY2Vzc2Z1bGx5 LCBhbmQgY2FsbCBpdCBmcm9tCnVzZV9hbGxfbWV0YWRhdGEoKSwgaW5zdGVhZCBvZiBjYWxsaW5n IF9fYWRkX21ldGFpbmZvKCkgZGlyZWN0bHkuCgpFeGFtcGxlIHdhcm5pbmc6CgpbICA2NDYuMzQ0 MzkzXSBXQVJOSU5HOiBDUFU6IDEgUElEOiAyMjc4IGF0IGtlcm5lbC9tb2R1bGUuYzoxMTM5IG1v ZHVsZV9wdXQrMHgxY2IvMHgyMzAKWyAgNjQ2LjM1MjQzN10gTW9kdWxlcyBsaW5rZWQgaW46IGFj dF9tZXRhX3NrYnRjaW5kZXggYWN0X21ldGFfbWFyayBhY3RfbWV0YV9za2JwcmlvIGFjdF9pZmUg aWZlIHZldGggbmZzdjMgbmZzIGZzY2FjaGUgeHRfQ0hFQ0tTVU0gaXB0YWJsZV9tYW5nbGUgaXB0 X01BU1FVRVJBREUgaXB0YWJsZV9uYXQgbmZfbmF0X2lwdjQgbmZfbmF0IHh0X2Nvbm50cmFjayBu Zl9jb25udHJhY2sgbmZfZGVmcmFnX2lwdjYgbmZfZGVmcmFnX2lwdjQgbGliY3JjMzJjIHR1biBl YnRhYmxlX2ZpbHRlciBlYnRhYmxlcyBpcDZ0YWJsZV9maWx0ZXIgaXA2X3RhYmxlcyBicmlkZ2Ug c3RwIGxsYyBtbHg1X2liIGliX3V2ZXJicyBpYl9jb3JlIGludGVsX3JhcGwgc2JfZWRhYyB4ODZf cGtnX3RlbXBfdGhlcm1hbCBtbHg1X2NvcmUgY29yZXRlbXAga3ZtX2ludGVsIGt2bSBuZnNkIGln YiBpcnFieXBhc3MgY3JjdDEwZGlmX3BjbG11bCBkZXZsaW5rIGNyYzMyX3BjbG11bCBtZWlfbWUg am95ZGV2IHNlcyBjcmMzMmNfaW50ZWwgZW5jbG9zdXJlIGF1dGhfcnBjZ3NzIGkyY19hbGdvX2Jp dCBpb2F0ZG1hIHB0cCBtZWkgcHBzX2NvcmUgZ2hhc2hfY2xtdWxuaV9pbnRlbCBpVENPX3dkdCBp VENPX3ZlbmRvcl9zdXBwb3J0IHBjc3BrciBkY2EgaXBtaV9zc2lmIGxwY19pY2ggdGFyZ2V0X2Nv cmVfbW9kIGkyY19pODAxIGlwbWlfc2kgaXBtaV9kZXZpbnRmIHBjY19jcHVmcmVxIHdtaSBpcG1p X21zZ2hhbmRsZXIgbmZzX2FjbCBsb2NrZCBhY3BpX3BhZCBhY3BpX3Bvd2VyX21ldGVyIGdyYWNl IHN1bnJwYyBtcHQzc2FzIHJhaWRfY2xhc3Mgc2NzaV90cmFuc3BvcnRfc2FzClsgIDY0Ni40MjU2 MzFdIENQVTogMSBQSUQ6IDIyNzggQ29tbTogdGMgTm90IHRhaW50ZWQgNC4xOS4wLXJjMSsgIzc5 OQpbICA2NDYuNDMyMTg3XSBIYXJkd2FyZSBuYW1lOiBTdXBlcm1pY3JvIFNZUy0yMDI4VFAtREVD Ui9YMTBEUlQtUCwgQklPUyAyLjBiIDAzLzMwLzIwMTcKWyAgNjQ2LjQ0MDU5NV0gUklQOiAwMDEw Om1vZHVsZV9wdXQrMHgxY2IvMHgyMzAKWyAgNjQ2LjQ0NTIzOF0gQ29kZTogZjMgNjYgOTQgMDIg ZTggMjYgZmYgZmEgZmYgODUgYzAgNzQgMTEgMGYgYjYgMWQgNTEgMzAgOTQgMDIgODAgZmIgMDEg NzcgNjAgODMgZTMgMDEgNzQgMTMgNjUgZmYgMGQgM2EgODMgZGIgNzMgZTkgMmIgZmYgZmYgZmYg PDBmPiAwYiBlOSAwMCBmZiBmZiBmZiBlOCA1OSAwMSBmYiBmZiA4NSBjMCA3NSBlNCA0OCBjNyBj MiAyMCA2MiA2YgpbICA2NDYuNDY0OTk3XSBSU1A6IDAwMTg6ZmZmZjg4MDM1NGQzNzA2OCBFRkxB R1M6IDAwMDEwMjg2ClsgIDY0Ni40NzA1OTldIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZm ZmZmZmZmYzBhNTI1MTggUkNYOiBmZmZmZmZmZjhjMjY2OGRiClsgIDY0Ni40NzgxMThdIFJEWDog MDAwMDAwMDAwMDAwMDAwMyBSU0k6IGRmZmZmYzAwMDAwMDAwMDAgUkRJOiBmZmZmZmZmZmMwYTUy NTE4ClsgIDY0Ni40ODU2NDFdIFJCUDogZmZmZmZmZmZjMGE1MjE4MCBSMDg6IGZmZmZmYmZmZjgx NGE0YTQgUjA5OiBmZmZmZmJmZmY4MTRhNGEzClsgIDY0Ni40OTMxNjRdIFIxMDogZmZmZmZmZmZj MGE1MjUxYiBSMTE6IGZmZmZmYmZmZjgxNGE0YTQgUjEyOiAxZmZmZjEwMDZhOWE2ZTBkClsgIDY0 Ni41MDA2ODddIFIxMzogMDAwMDAwMDBmZmZmZmZmZiBSMTQ6IGZmZmY4ODAzNjJiYWI4OTAgUjE1 OiBkZWFkMDAwMDAwMDAwMTAwClsgIDY0Ni41MDgyMTNdIEZTOiAgMDAwMDdmNDE2NGM5OTgwMCgw MDAwKSBHUzpmZmZmODgwMzZmZTQwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAg NjQ2LjUxNjk2MV0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1 MDAzMwpbICA2NDYuNTIzMDgwXSBDUjI6IDAwMDA3ZjQxNjM4Yjg0MjAgQ1IzOiAwMDAwMDAwMzUx ZGYwMDA0IENSNDogMDAwMDAwMDAwMDE2MDZlMApbICA2NDYuNTMwNTk1XSBDYWxsIFRyYWNlOgpb ICA2NDYuNTMzNDA4XSAgPyBmaW5kX3N5bWJvbF9pbl9zZWN0aW9uKzB4MjYwLzB4MjYwClsgIDY0 Ni41Mzg1MDldICB0Y2ZfaWZlX2NsZWFudXArMHgxMWIvMHgyMDAgW2FjdF9pZmVdClsgIDY0Ni41 NDM2OTVdICB0Y2ZfYWN0aW9uX2NsZWFudXArMHgyOS8weGEwClsgIDY0Ni41NDgwNzhdICBfX3Rj Zl9hY3Rpb25fcHV0KzB4NWEvMHhiMApbICA2NDYuNTUyMjg5XSAgPyBubGFfcHV0KzB4NjUvMHhl MApbICA2NDYuNTU1ODg5XSAgX190Y2ZfaWRyX3JlbGVhc2UrMHg0OC8weDYwClsgIDY0Ni41NjAx ODddICB0Y2ZfZ2VuZXJpY193YWxrZXIrMHg0NDgvMHg2YjAKWyAgNjQ2LjU2NDc2NF0gID8gdGNm X2FjdGlvbl9kdW1wXzErMHg0NTAvMHg0NTAKWyAgNjQ2LjU2OTQxMV0gID8gX19sb2NrX2lzX2hl bGQrMHg4NC8weDExMApbICA2NDYuNTczNzIwXSAgPyB0Y2ZfaWZlX3dhbGtlcisweDEwYy8weDIw ZiBbYWN0X2lmZV0KWyAgNjQ2LjU3ODk4Ml0gIHRjYV9hY3Rpb25fZ2QrMHg5NzIvMHhjNDAKWyAg NjQ2LjU4MzEyOV0gID8gdGNhX2dldF9maWxsLmNvbnN0cHJvcC4xNysweDI1MC8weDI1MApbICA2 NDYuNTg4NDcxXSAgPyBtYXJrX2xvY2srMHhjZi8weDk4MApbICA2NDYuNTkyMzI0XSAgPyBjaGVj a19jaGFpbl9rZXkrMHgxNDAvMHgxZjAKWyAgNjQ2LjU5NjgzMl0gID8gZGVidWdfc2hvd19hbGxf bG9ja3MrMHgyNDAvMHgyNDAKWyAgNjQ2LjYwMTgzOV0gID8gbWVtc2V0KzB4MWYvMHg0MApbICA2 NDYuNjA1MzUwXSAgPyBubGFfcGFyc2UrMHhjYS8weDFhMApbICA2NDYuNjA5MjE3XSAgdGNfY3Rs X2FjdGlvbisweDIxNS8weDIzMApbICA2NDYuNjEzMzM5XSAgPyB0Y2ZfYWN0aW9uX2FkZCsweDIy MC8weDIyMApbICA2NDYuNjE3NzQ4XSAgcnRuZXRsaW5rX3Jjdl9tc2crMHg1NmEvMHg2ZDAKWyAg NjQ2LjYyMjIyN10gID8gcnRubF9mZGJfZGVsKzB4M2YwLzB4M2YwClsgIDY0Ni42MjY0NjZdICBu ZXRsaW5rX3Jjdl9za2IrMHgxOGQvMHgyMDAKWyAgNjQ2LjYzMDc1Ml0gID8gcnRubF9mZGJfZGVs KzB4M2YwLzB4M2YwClsgIDY0Ni42MzQ5NTldICA/IG5ldGxpbmtfYWNrKzB4NTAwLzB4NTAwClsg IDY0Ni42MzkxMDZdICBuZXRsaW5rX3VuaWNhc3QrMHgyZDAvMHgzNzAKWyAgNjQ2LjY0MzQwOV0g ID8gbmV0bGlua19hdHRhY2hza2IrMHgzNDAvMHgzNDAKWyAgNjQ2LjY0ODA1MF0gID8gX2NvcHlf ZnJvbV9pdGVyX2Z1bGwrMHhlOS8weDNlMApbICA2NDYuNjUyODcwXSAgPyBpbXBvcnRfaW92ZWMr MHgxMWUvMHgxYzAKWyAgNjQ2LjY1NzA4M10gIG5ldGxpbmtfc2VuZG1zZysweDNiOS8weDZhMApb ICA2NDYuNjYxMzg4XSAgPyBuZXRsaW5rX3VuaWNhc3QrMHgzNzAvMHgzNzAKWyAgNjQ2LjY2NTg3 N10gID8gbmV0bGlua191bmljYXN0KzB4MzcwLzB4MzcwClsgIDY0Ni42NzAzNTFdICBzb2NrX3Nl bmRtc2crMHg2Yi8weDgwClsgIDY0Ni42NzQyMTJdICBfX19zeXNfc2VuZG1zZysweDRhMS8weDUy MApbICA2NDYuNjc4NDQzXSAgPyBjb3B5X21zZ2hkcl9mcm9tX3VzZXIrMHgyMTAvMHgyMTAKWyAg NjQ2LjY4MzQ2M10gID8gbG9ja19kb3duZ3JhZGUrMHgzMjAvMHgzMjAKWyAgNjQ2LjY4Nzg0OV0g ID8gZGVidWdfc2hvd19hbGxfbG9ja3MrMHgyNDAvMHgyNDAKWyAgNjQ2LjY5Mjc2MF0gID8gZG9f cmF3X3NwaW5fdW5sb2NrKzB4YTIvMHgxMzAKWyAgNjQ2LjY5NzQxOF0gID8gX3Jhd19zcGluX3Vu bG9jaysweDI0LzB4MzAKWyAgNjQ2LjcwMTc5OF0gID8gX19oYW5kbGVfbW1fZmF1bHQrMHgxODE5 LzB4MWMxMApbICA2NDYuNzA2NjE5XSAgPyBfX3BtZF9hbGxvYysweDMyMC8weDMyMApbICA2NDYu NzEwNzM4XSAgPyBkZWJ1Z19zaG93X2FsbF9sb2NrcysweDI0MC8weDI0MApbICA2NDYuNzE1NjQ5 XSAgPyByZXN0b3JlX25hbWVpZGF0YSsweDdiLzB4YTAKWyAgNjQ2LjcyMDExN10gID8gY2hlY2tf Y2hhaW5fa2V5KzB4MTQwLzB4MWYwClsgIDY0Ni43MjQ1OTBdICA/IGNoZWNrX2NoYWluX2tleSsw eDE0MC8weDFmMApbICA2NDYuNzI5MDcwXSAgPyBfX2ZnZXRfbGlnaHQrMHhiYy8weGQwClsgIDY0 Ni43MzMxMjFdICA/IF9fc3lzX3NlbmRtc2crMHhkNy8weDE1MApbICA2NDYuNzM3MzI5XSAgX19z eXNfc2VuZG1zZysweGQ3LzB4MTUwClsgIDY0Ni43NDEzNTldICA/IF9faWEzMl9zeXNfc2h1dGRv d24rMHgzMC8weDMwClsgIDY0Ni43NDYwMDNdICA/IHVwX3JlYWQrMHg1My8weDkwClsgIDY0Ni43 NDk2MDFdICA/IF9fZG9fcGFnZV9mYXVsdCsweDQ4NC8weDc4MApbICA2NDYuNzU0MTA1XSAgPyBk b19zeXNjYWxsXzY0KzB4MWUvMHgyYzAKWyAgNjQ2Ljc1ODMyMF0gIGRvX3N5c2NhbGxfNjQrMHg3 Mi8weDJjMApbICA2NDYuNzYyMzUzXSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4 NDkvMHhiZQpbICA2NDYuNzY3Nzc2XSBSSVA6IDAwMzM6MHg3ZjQxNjM4NzIxNTAKWyAgNjQ2Ljc3 MTcxM10gQ29kZTogOGIgMTUgM2MgN2QgMmIgMDAgZjcgZDggNjQgODkgMDIgNDggYzcgYzAgZmYg ZmYgZmYgZmYgZWIgY2QgNjYgMGYgMWYgNDQgMDAgMDAgODMgM2QgYjkgZDUgMmIgMDAgMDAgNzUg MTAgYjggMmUgMDAgMDAgMDAgMGYgMDUgPDQ4PiAzZCAwMSBmMCBmZiBmZiA3MyAzMSBjMyA0OCA4 MyBlYyAwOCBlOCBiZSBjZCAwMCAwMCA0OCA4OSAwNCAyNApbICA2NDYuNzkxNDc0XSBSU1A6IDAw MmI6MDAwMDdmZmRlZjdkNmI1OCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAw MDAwMDJlClsgIDY0Ni43OTk3MjFdIFJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAw MDAwMDAwMjQgUkNYOiAwMDAwN2Y0MTYzODcyMTUwClsgIDY0Ni44MDcyNDBdIFJEWDogMDAwMDAw MDAwMDAwMDAwMCBSU0k6IDAwMDA3ZmZkZWY3ZDZiZDAgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClsg IDY0Ni44MTQ3NjBdIFJCUDogMDAwMDAwMDA1YjhiOTQ4MiBSMDg6IDAwMDAwMDAwMDAwMDAwMDEg UjA5OiAwMDAwMDAwMDAwMDAwMDAwClsgIDY0Ni44MjIyODZdIFIxMDogMDAwMDAwMDAwMDAwMDVl NyBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwN2ZmZGVmN2RhZDIwClsgIDY0Ni44Mjk4 MDddIFIxMzogMDAwMDAwMDAwMDAwMDAwMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAw MDAwMDAwNjc5YmMwClsgIDY0Ni44MzczNjBdIGlycSBldmVudCBzdGFtcDogNjA4MwpbICA2NDYu ODQxMDQzXSBoYXJkaXJxcyBsYXN0ICBlbmFibGVkIGF0ICg2MDgxKTogWzxmZmZmZmZmZjhjMjIw YTdkPl0gX19jYWxsX3JjdSsweDE3ZC8weDUwMApbICA2NDYuODQ5ODgyXSBoYXJkaXJxcyBsYXN0 IGRpc2FibGVkIGF0ICg2MDgzKTogWzxmZmZmZmZmZjhjMDA0ZjA2Pl0gdHJhY2VfaGFyZGlycXNf b2ZmX3RodW5rKzB4MWEvMHgxYwpbICA2NDYuODU5Nzc1XSBzb2Z0aXJxcyBsYXN0ICBlbmFibGVk IGF0ICg1OTY4KTogWzxmZmZmZmZmZjhkNDAwNGExPl0gX19kb19zb2Z0aXJxKzB4NGExLzB4NmVl ClsgIDY0Ni44Njg3ODRdIHNvZnRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDYwODIpOiBbPGZmZmZm ZmZmYzBhNzg3NTk+XSB0Y2ZfaWZlX2NsZWFudXArMHgzOS8weDIwMCBbYWN0X2lmZV0KWyAgNjQ2 Ljg3ODg0NV0gLS0tWyBlbmQgdHJhY2UgYjFiOGMxMmZmZTUxZTY1NyBdLS0tCgpGaXhlczogNWZm ZTU3ZGEyOWIzICgiYWN0X2lmZTogZml4IGEgcG90ZW50aWFsIGRlYWRsb2NrIikKU2lnbmVkLW9m Zi1ieTogVmxhZCBCdXNsb3YgPHZsYWRidUBtZWxsYW5veC5jb20+CkFja2VkLWJ5OiBDb25nIFdh bmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfaWZlLmMgfCAxNiAr KysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9hY3RfaWZlLmMgYi9uZXQvc2NoZWQvYWN0 X2lmZS5jCmluZGV4IDQzY2EwNGViNjEwOC4uMDA1Y2IyMTM0OGM5IDEwMDY0NAotLS0gYS9uZXQv c2NoZWQvYWN0X2lmZS5jCisrKyBiL25ldC9zY2hlZC9hY3RfaWZlLmMKQEAgLTMyNCw2ICszMjQs MjAgQEAgc3RhdGljIGludCBfX2FkZF9tZXRhaW5mbyhjb25zdCBzdHJ1Y3QgdGNmX21ldGFfb3Bz ICpvcHMsCiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBhZGRfbWV0YWluZm9fYW5kX2dl dF9vcHMoY29uc3Qgc3RydWN0IHRjZl9tZXRhX29wcyAqb3BzLAorCQkJCSAgICBzdHJ1Y3QgdGNm X2lmZV9pbmZvICppZmUsIHUzMiBtZXRhaWQsCisJCQkJICAgIGJvb2wgZXhpc3RzKQoreworCWlu dCByZXQ7CisKKwlpZiAoIXRyeV9tb2R1bGVfZ2V0KG9wcy0+b3duZXIpKQorCQlyZXR1cm4gLUVO T0VOVDsKKwlyZXQgPSBfX2FkZF9tZXRhaW5mbyhvcHMsIGlmZSwgbWV0YWlkLCBOVUxMLCAwLCB0 cnVlLCBleGlzdHMpOworCWlmIChyZXQpCisJCW1vZHVsZV9wdXQob3BzLT5vd25lcik7CisJcmV0 dXJuIHJldDsKK30KKwogc3RhdGljIGludCBhZGRfbWV0YWluZm8oc3RydWN0IHRjZl9pZmVfaW5m byAqaWZlLCB1MzIgbWV0YWlkLCB2b2lkICptZXRhdmFsLAogCQkJaW50IGxlbiwgYm9vbCBleGlz dHMpCiB7CkBAIC0zNDcsNyArMzYxLDcgQEAgc3RhdGljIGludCB1c2VfYWxsX21ldGFkYXRhKHN0 cnVjdCB0Y2ZfaWZlX2luZm8gKmlmZSwgYm9vbCBleGlzdHMpCiAKIAlyZWFkX2xvY2soJmlmZV9t b2RfbG9jayk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShvLCAmaWZlb3BsaXN0LCBsaXN0KSB7Ci0J CXJjID0gX19hZGRfbWV0YWluZm8obywgaWZlLCBvLT5tZXRhaWQsIE5VTEwsIDAsIHRydWUsIGV4 aXN0cyk7CisJCXJjID0gYWRkX21ldGFpbmZvX2FuZF9nZXRfb3BzKG8sIGlmZSwgby0+bWV0YWlk LCBleGlzdHMpOwogCQlpZiAocmMgPT0gMCkKIAkJCWluc3RhbGxlZCArPSAxOwogCX0KLS0gCjIu MTMuNgoKCkZyb20gNTQxNmE5OGMzNWQyYjNiYzJkYTJhY2NlYzJiMzIxN2MzOWIzMmExNSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJv YWRjb20uY29tPgpEYXRlOiBNb24sIDMgU2VwIDIwMTggMDQ6MjM6MTggLTA0MDAKU3ViamVjdDog W1BBVENIIDE0LzM2XSBibnh0X2VuOiBDbGVhbiB1cCB1bnVzZWQgZnVuY3Rpb25zLgoKWyBVcHN0 cmVhbSBjb21taXQgYWQ5NWMyN2JkYjkzMDEwNWYzZWVhMDI2MjFiZGExNTdjYWYyODYyZCBdCgpS ZW1vdmUgdW51c2VkIGJueHRfc3VidHJhY3RfdWxwX3Jlc291cmNlcygpLiAgQ2hhbmdlCmJueHRf Z2V0X21heF9mdW5jX2lycXMoKSB0byBzdGF0aWMgc2luY2UgaXQgaXMgb25seSBsb2NhbGx5IHVz ZWQuCgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyAgICAgfCAgMiAr LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmggICAgIHwgIDEgLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3VscC5jIHwgMTUgLS0tLS0t LS0tLS0tLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfdWxwLmgg fCAgMSAtCiA0IGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCmluZGV4IDQzOTRjMTE2 MmJlNC4uN2ZhMWRjYmQ2MzhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibnh0L2JueHQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0 L2JueHQuYwpAQCAtNTkxMiw3ICs1OTEyLDcgQEAgdm9pZCBibnh0X3NldF9tYXhfZnVuY19jcF9y aW5ncyhzdHJ1Y3QgYm54dCAqYnAsIHVuc2lnbmVkIGludCBtYXgpCiAJYnAtPmh3X3Jlc2MubWF4 X2NwX3JpbmdzID0gbWF4OwogfQogCi11bnNpZ25lZCBpbnQgYm54dF9nZXRfbWF4X2Z1bmNfaXJx cyhzdHJ1Y3QgYm54dCAqYnApCitzdGF0aWMgdW5zaWduZWQgaW50IGJueHRfZ2V0X21heF9mdW5j X2lycXMoc3RydWN0IGJueHQgKmJwKQogewogCXN0cnVjdCBibnh0X2h3X3Jlc2MgKmh3X3Jlc2Mg PSAmYnAtPmh3X3Jlc2M7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JueHQvYm54dC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0 LmgKaW5kZXggOTE1NzVlZjk3YzhjLi5jYTliYjI0YmMyNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JueHQvYm54dC5oCkBAIC0xNDY5LDcgKzE0NjksNiBAQCB1bnNpZ25lZCBp bnQgYm54dF9nZXRfbWF4X2Z1bmNfc3RhdF9jdHhzKHN0cnVjdCBibnh0ICpicCk7CiB2b2lkIGJu eHRfc2V0X21heF9mdW5jX3N0YXRfY3R4cyhzdHJ1Y3QgYm54dCAqYnAsIHVuc2lnbmVkIGludCBt YXgpOwogdW5zaWduZWQgaW50IGJueHRfZ2V0X21heF9mdW5jX2NwX3JpbmdzKHN0cnVjdCBibnh0 ICpicCk7CiB2b2lkIGJueHRfc2V0X21heF9mdW5jX2NwX3JpbmdzKHN0cnVjdCBibnh0ICpicCwg dW5zaWduZWQgaW50IG1heCk7Ci11bnNpZ25lZCBpbnQgYm54dF9nZXRfbWF4X2Z1bmNfaXJxcyhz dHJ1Y3QgYm54dCAqYnApOwogaW50IGJueHRfZ2V0X2F2YWlsX21zaXgoc3RydWN0IGJueHQgKmJw LCBpbnQgbnVtKTsKIGludCBibnh0X3Jlc2VydmVfcmluZ3Moc3RydWN0IGJueHQgKmJwKTsKIHZv aWQgYm54dF90eF9kaXNhYmxlKHN0cnVjdCBibnh0ICpicCk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfdWxwLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9ibnh0L2JueHRfdWxwLmMKaW5kZXggODQwZjZlNTA1ZjczLi5iYThmOGU2 YWYzNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54 dF91bHAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfdWxw LmMKQEAgLTIyMCwyMSArMjIwLDYgQEAgaW50IGJueHRfZ2V0X3VscF9tc2l4X2Jhc2Uoc3RydWN0 IGJueHQgKmJwKQogCXJldHVybiAwOwogfQogCi12b2lkIGJueHRfc3VidHJhY3RfdWxwX3Jlc291 cmNlcyhzdHJ1Y3QgYm54dCAqYnAsIGludCB1bHBfaWQpCi17Ci0JQVNTRVJUX1JUTkwoKTsKLQlp ZiAoYm54dF91bHBfcmVnaXN0ZXJlZChicC0+ZWRldiwgdWxwX2lkKSkgewotCQlzdHJ1Y3QgYm54 dF9lbl9kZXYgKmVkZXYgPSBicC0+ZWRldjsKLQkJdW5zaWduZWQgaW50IG1zaXhfcmVxLCBtYXg7 Ci0KLQkJbXNpeF9yZXEgPSBlZGV2LT51bHBfdGJsW3VscF9pZF0ubXNpeF9yZXF1ZXN0ZWQ7Ci0J CW1heCA9IGJueHRfZ2V0X21heF9mdW5jX2NwX3JpbmdzKGJwKTsKLQkJYm54dF9zZXRfbWF4X2Z1 bmNfY3BfcmluZ3MoYnAsIG1heCAtIG1zaXhfcmVxKTsKLQkJbWF4ID0gYm54dF9nZXRfbWF4X2Z1 bmNfc3RhdF9jdHhzKGJwKTsKLQkJYm54dF9zZXRfbWF4X2Z1bmNfc3RhdF9jdHhzKGJwLCBtYXgg LSAxKTsKLQl9Ci19Ci0KIHN0YXRpYyBpbnQgYm54dF9zZW5kX21zZyhzdHJ1Y3QgYm54dF9lbl9k ZXYgKmVkZXYsIGludCB1bHBfaWQsCiAJCQkgc3RydWN0IGJueHRfZndfbXNnICpmd19tc2cpCiB7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfdWxw LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfdWxwLmgKaW5kZXgg ZGY0OGFjNzE3MjlmLi5kOWJlYTM3Y2QyMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JueHQvYm54dF91bHAuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibnh0L2JueHRfdWxwLmgKQEAgLTkwLDcgKzkwLDYgQEAgc3RhdGljIGlubGluZSBi b29sIGJueHRfdWxwX3JlZ2lzdGVyZWQoc3RydWN0IGJueHRfZW5fZGV2ICplZGV2LCBpbnQgdWxw X2lkKQogCiBpbnQgYm54dF9nZXRfdWxwX21zaXhfbnVtKHN0cnVjdCBibnh0ICpicCk7CiBpbnQg Ym54dF9nZXRfdWxwX21zaXhfYmFzZShzdHJ1Y3QgYm54dCAqYnApOwotdm9pZCBibnh0X3N1YnRy YWN0X3VscF9yZXNvdXJjZXMoc3RydWN0IGJueHQgKmJwLCBpbnQgdWxwX2lkKTsKIHZvaWQgYm54 dF91bHBfc3RvcChzdHJ1Y3QgYm54dCAqYnApOwogdm9pZCBibnh0X3VscF9zdGFydChzdHJ1Y3Qg Ym54dCAqYnApOwogdm9pZCBibnh0X3VscF9zcmlvdl9jZmcoc3RydWN0IGJueHQgKmJwLCBpbnQg bnVtX3Zmcyk7Ci0tIAoyLjEzLjYKCgpGcm9tIGQyNmU5NGI0NWIyNDQ2ZTI3ZjU2OTJhN2MxMWZi MjBlODZkZDhlYjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1pY2hhZWwgQ2hhbiA8 bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KRGF0ZTogTW9uLCAzIFNlcCAyMDE4IDA0OjIzOjE5 IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxNS8zNl0gYm54dF9lbjogRG8gbm90IGFkanVzdCBtYXhf Y3BfcmluZ3MgYnkgdGhlIG9uZXMgdXNlZCBieQogUkRNQS4KClsgVXBzdHJlYW0gY29tbWl0IDAw ZmU5YzMyNmQyMDI3ZjI0MzdkZWEzOGVmMGU4MmY5ZDAyZDk0YzAgXQoKQ3VycmVudGx5LCB0aGUg ZHJpdmVyIGFkanVzdHMgdGhlIGJwLT5od19yZXNjLm1heF9jcF9yaW5ncyBieSB0aGUgbnVtYmVy Cm9mIE1TSVggdmVjdG9ycyB1c2VkIGJ5IFJETUEuICBUaGVyZSBpcyBvbmUgY29kZSBwYXRoIGlu IG9wZW4gdGhhdCBuZWVkcwp0byBjaGVjayB0aGUgdHJ1ZSBtYXhfY3BfcmluZ3MgaW5jbHVkaW5n IGFueSB1c2VkIGJ5IFJETUEuICBUaGlzIGNvZGUKaXMgbm93IGNoZWNraW5nIGZvciB0aGUgcmVk dWNlZCBtYXhfY3BfcmluZ3Mgd2hpY2ggd2lsbCBmYWlsIHdoZW4gdGhlCm51bWJlciBvZiBjcCBy aW5ncyBpcyB2ZXJ5IHNtYWxsLgoKVG8gZml4IHRoaXMgaW4gYSBjbGVhbiB3YXksIHdlIGRvbid0 IGFkanVzdCBtYXhfY3BfcmluZ3MgYW55bW9yZS4KSW5zdGVhZCwgd2UgYWRkIGEgaGVscGVyIGJu eHRfZ2V0X21heF9mdW5jX2NwX3JpbmdzX2Zvcl9lbigpIHRvIGdldCB0aGUKcmVkdWNlZCBtYXhf Y3BfcmluZ3Mgd2hlbiBhcHByb3ByaWF0ZS4KCkZpeGVzOiBlYzg2ZjE0ZWE1MDYgKCJibnh0X2Vu OiBBZGQgVUxQIGNhbGxzIHRvIHN0b3AgYW5kIHJlc3RhcnQgSVJRcy4iKQpTaWduZWQtb2ZmLWJ5 OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyAgICAgICB8IDcgKysrKy0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmggICAgICAgfCAyICstCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfc3Jpb3YuYyB8IDcgKysrKy0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3VscC5jICAgfCA1IC0tLS0tCiA0IGZp bGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwppbmRleCA3ZmExZGNiZDYzOGYuLjRmZGYz ZDMzYWE1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9i bnh0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKQEAg LTU5MDcsOSArNTkwNyw5IEBAIHVuc2lnbmVkIGludCBibnh0X2dldF9tYXhfZnVuY19jcF9yaW5n cyhzdHJ1Y3QgYm54dCAqYnApCiAJcmV0dXJuIGJwLT5od19yZXNjLm1heF9jcF9yaW5nczsKIH0K IAotdm9pZCBibnh0X3NldF9tYXhfZnVuY19jcF9yaW5ncyhzdHJ1Y3QgYm54dCAqYnAsIHVuc2ln bmVkIGludCBtYXgpCit1bnNpZ25lZCBpbnQgYm54dF9nZXRfbWF4X2Z1bmNfY3BfcmluZ3NfZm9y X2VuKHN0cnVjdCBibnh0ICpicCkKIHsKLQlicC0+aHdfcmVzYy5tYXhfY3BfcmluZ3MgPSBtYXg7 CisJcmV0dXJuIGJwLT5od19yZXNjLm1heF9jcF9yaW5ncyAtIGJueHRfZ2V0X3VscF9tc2l4X251 bShicCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgYm54dF9nZXRfbWF4X2Z1bmNfaXJxcyhz dHJ1Y3QgYm54dCAqYnApCkBAIC04NDkyLDcgKzg0OTIsOCBAQCBzdGF0aWMgdm9pZCBfYm54dF9n ZXRfbWF4X3JpbmdzKHN0cnVjdCBibnh0ICpicCwgaW50ICptYXhfcngsIGludCAqbWF4X3R4LAog CiAJKm1heF90eCA9IGh3X3Jlc2MtPm1heF90eF9yaW5nczsKIAkqbWF4X3J4ID0gaHdfcmVzYy0+ bWF4X3J4X3JpbmdzOwotCSptYXhfY3AgPSBtaW5fdChpbnQsIGh3X3Jlc2MtPm1heF9pcnFzLCBo d19yZXNjLT5tYXhfY3BfcmluZ3MpOworCSptYXhfY3AgPSBtaW5fdChpbnQsIGJueHRfZ2V0X21h eF9mdW5jX2NwX3JpbmdzX2Zvcl9lbihicCksCisJCQlod19yZXNjLT5tYXhfaXJxcyk7CiAJKm1h eF9jcCA9IG1pbl90KGludCwgKm1heF9jcCwgaHdfcmVzYy0+bWF4X3N0YXRfY3R4cyk7CiAJbWF4 X3JpbmdfZ3JwcyA9IGh3X3Jlc2MtPm1heF9od19yaW5nX2dycHM7CiAJaWYgKEJOWFRfQ0hJUF9U WVBFX05JVFJPX0EwKGJwKSAmJiBCTlhUX1BGKGJwKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibnh0L2JueHQuaAppbmRleCBjYTliYjI0YmMyNjUuLmVhMTI0NmE5NGIzOCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmgKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmgKQEAgLTE0NjgsNyArMTQ2 OCw3IEBAIGludCBibnh0X2h3cm1fc2V0X2NvYWwoc3RydWN0IGJueHQgKik7CiB1bnNpZ25lZCBp bnQgYm54dF9nZXRfbWF4X2Z1bmNfc3RhdF9jdHhzKHN0cnVjdCBibnh0ICpicCk7CiB2b2lkIGJu eHRfc2V0X21heF9mdW5jX3N0YXRfY3R4cyhzdHJ1Y3QgYm54dCAqYnAsIHVuc2lnbmVkIGludCBt YXgpOwogdW5zaWduZWQgaW50IGJueHRfZ2V0X21heF9mdW5jX2NwX3JpbmdzKHN0cnVjdCBibnh0 ICpicCk7Ci12b2lkIGJueHRfc2V0X21heF9mdW5jX2NwX3JpbmdzKHN0cnVjdCBibnh0ICpicCwg dW5zaWduZWQgaW50IG1heCk7Cit1bnNpZ25lZCBpbnQgYm54dF9nZXRfbWF4X2Z1bmNfY3Bfcmlu Z3NfZm9yX2VuKHN0cnVjdCBibnh0ICpicCk7CiBpbnQgYm54dF9nZXRfYXZhaWxfbXNpeChzdHJ1 Y3QgYm54dCAqYnAsIGludCBudW0pOwogaW50IGJueHRfcmVzZXJ2ZV9yaW5ncyhzdHJ1Y3QgYm54 dCAqYnApOwogdm9pZCBibnh0X3R4X2Rpc2FibGUoc3RydWN0IGJueHQgKmJwKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9zcmlvdi5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3NyaW92LmMKaW5kZXggYTY0OTEw ODkyYzI1Li4yYzc3MDA0YTAyMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2JueHQvYm54dF9zcmlvdi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JueHQvYm54dF9zcmlvdi5jCkBAIC00NTEsNyArNDUxLDcgQEAgc3RhdGljIGludCBibnh0 X2h3cm1fZnVuY192Zl9yZXNjX2NmZyhzdHJ1Y3QgYm54dCAqYnAsIGludCBudW1fdmZzKQogCiAJ Ym54dF9od3JtX2NtZF9oZHJfaW5pdChicCwgJnJlcSwgSFdSTV9GVU5DX1ZGX1JFU09VUkNFX0NG RywgLTEsIC0xKTsKIAotCXZmX2NwX3JpbmdzID0gaHdfcmVzYy0+bWF4X2NwX3JpbmdzIC0gYnAt PmNwX25yX3JpbmdzOworCXZmX2NwX3JpbmdzID0gYm54dF9nZXRfbWF4X2Z1bmNfY3BfcmluZ3Nf Zm9yX2VuKGJwKSAtIGJwLT5jcF9ucl9yaW5nczsKIAl2Zl9zdGF0X2N0eCA9IGh3X3Jlc2MtPm1h eF9zdGF0X2N0eHMgLSBicC0+bnVtX3N0YXRfY3R4czsKIAlpZiAoYnAtPmZsYWdzICYgQk5YVF9G TEFHX0FHR19SSU5HUykKIAkJdmZfcnhfcmluZ3MgPSBod19yZXNjLT5tYXhfcnhfcmluZ3MgLSBi cC0+cnhfbnJfcmluZ3MgKiAyOwpAQCAtNTQ0LDcgKzU0NCw4IEBAIHN0YXRpYyBpbnQgYm54dF9o d3JtX2Z1bmNfY2ZnKHN0cnVjdCBibnh0ICpicCwgaW50IG51bV92ZnMpCiAJbWF4X3N0YXRfY3R4 cyA9IGh3X3Jlc2MtPm1heF9zdGF0X2N0eHM7CiAKIAkvKiBSZW1haW5pbmcgcmluZ3MgYXJlIGRp c3RyaWJ1dGVkIGVxdWFsbHkgYW1vbmdzIFZGJ3MgZm9yIG5vdyAqLwotCXZmX2NwX3JpbmdzID0g KGh3X3Jlc2MtPm1heF9jcF9yaW5ncyAtIGJwLT5jcF9ucl9yaW5ncykgLyBudW1fdmZzOworCXZm X2NwX3JpbmdzID0gKGJueHRfZ2V0X21heF9mdW5jX2NwX3JpbmdzX2Zvcl9lbihicCkgLQorCQkg ICAgICAgYnAtPmNwX25yX3JpbmdzKSAvIG51bV92ZnM7CiAJdmZfc3RhdF9jdHggPSAobWF4X3N0 YXRfY3R4cyAtIGJwLT5udW1fc3RhdF9jdHhzKSAvIG51bV92ZnM7CiAJaWYgKGJwLT5mbGFncyAm IEJOWFRfRkxBR19BR0dfUklOR1MpCiAJCXZmX3J4X3JpbmdzID0gKGh3X3Jlc2MtPm1heF9yeF9y aW5ncyAtIGJwLT5yeF9ucl9yaW5ncyAqIDIpIC8KQEAgLTYzOCw3ICs2MzksNyBAQCBzdGF0aWMg aW50IGJueHRfc3Jpb3ZfZW5hYmxlKHN0cnVjdCBibnh0ICpicCwgaW50ICpudW1fdmZzKQogCSAq LwogCXZmc19zdXBwb3J0ZWQgPSAqbnVtX3ZmczsKIAotCWF2YWlsX2NwID0gaHdfcmVzYy0+bWF4 X2NwX3JpbmdzIC0gYnAtPmNwX25yX3JpbmdzOworCWF2YWlsX2NwID0gYm54dF9nZXRfbWF4X2Z1 bmNfY3BfcmluZ3NfZm9yX2VuKGJwKSAtIGJwLT5jcF9ucl9yaW5nczsKIAlhdmFpbF9zdGF0ID0g aHdfcmVzYy0+bWF4X3N0YXRfY3R4cyAtIGJwLT5udW1fc3RhdF9jdHhzOwogCWF2YWlsX2NwID0g bWluX3QoaW50LCBhdmFpbF9jcCwgYXZhaWxfc3RhdCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF91bHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JueHQvYm54dF91bHAuYwppbmRleCBiYThmOGU2YWYzNjMuLjQyMDljZmQ3 Mzk3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0 X3VscC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF91bHAu YwpAQCAtMTY5LDcgKzE2OSw2IEBAIHN0YXRpYyBpbnQgYm54dF9yZXFfbXNpeF92ZWNzKHN0cnVj dCBibnh0X2VuX2RldiAqZWRldiwgaW50IHVscF9pZCwKIAkJZWRldi0+dWxwX3RibFt1bHBfaWRd Lm1zaXhfcmVxdWVzdGVkID0gYXZhaWxfbXNpeDsKIAl9CiAJYm54dF9maWxsX21zaXhfdmVjcyhi cCwgZW50KTsKLQlibnh0X3NldF9tYXhfZnVuY19jcF9yaW5ncyhicCwgbWF4X2NwX3JpbmdzIC0g YXZhaWxfbXNpeCk7CiAJZWRldi0+ZmxhZ3MgfD0gQk5YVF9FTl9GTEFHX01TSVhfUkVRVUVTVEVE OwogCXJldHVybiBhdmFpbF9tc2l4OwogfQpAQCAtMTc4LDcgKzE3Nyw2IEBAIHN0YXRpYyBpbnQg Ym54dF9mcmVlX21zaXhfdmVjcyhzdHJ1Y3QgYm54dF9lbl9kZXYgKmVkZXYsIGludCB1bHBfaWQp CiB7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IGVkZXYtPm5ldDsKIAlzdHJ1Y3QgYm54dCAq YnAgPSBuZXRkZXZfcHJpdihkZXYpOwotCWludCBtYXhfY3BfcmluZ3MsIG1zaXhfcmVxdWVzdGVk OwogCiAJQVNTRVJUX1JUTkwoKTsKIAlpZiAodWxwX2lkICE9IEJOWFRfUk9DRV9VTFApCkBAIC0x ODcsOSArMTg1LDYgQEAgc3RhdGljIGludCBibnh0X2ZyZWVfbXNpeF92ZWNzKHN0cnVjdCBibnh0 X2VuX2RldiAqZWRldiwgaW50IHVscF9pZCkKIAlpZiAoIShlZGV2LT5mbGFncyAmIEJOWFRfRU5f RkxBR19NU0lYX1JFUVVFU1RFRCkpCiAJCXJldHVybiAwOwogCi0JbWF4X2NwX3JpbmdzID0gYm54 dF9nZXRfbWF4X2Z1bmNfY3BfcmluZ3MoYnApOwotCW1zaXhfcmVxdWVzdGVkID0gZWRldi0+dWxw X3RibFt1bHBfaWRdLm1zaXhfcmVxdWVzdGVkOwotCWJueHRfc2V0X21heF9mdW5jX2NwX3Jpbmdz KGJwLCBtYXhfY3BfcmluZ3MgKyBtc2l4X3JlcXVlc3RlZCk7CiAJZWRldi0+dWxwX3RibFt1bHBf aWRdLm1zaXhfcmVxdWVzdGVkID0gMDsKIAllZGV2LT5mbGFncyAmPSB+Qk5YVF9FTl9GTEFHX01T SVhfUkVRVUVTVEVEOwogCWlmIChuZXRpZl9ydW5uaW5nKGRldikpIHsKLS0gCjIuMTMuNgoKCkZy b20gNzllODYzZTgxMTg0Y2I3YzNiODM5NTU4ZDVjNTgwZWZjMjQ0OTUzNCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRpQHJlZGhhdC5jb20+CkRh dGU6IE1vbiwgMjcgQXVnIDIwMTggMjI6NTY6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIDE2LzM2 XSBuZXQvc2NoZWQ6IGFjdF9wZWRpdDogZml4IGR1bXAgb2YgZXh0ZW5kZWQgbGF5ZXJlZCBvcAoK WyBVcHN0cmVhbSBjb21taXQgODVlYjlhZjE4MjI0M2NlOWE4YjcyNDEwZDUzMjFjNDQwYWM1Zjhk NyBdCgppbiB0aGUgKHJhcmUpIGNhc2Ugb2YgZmFpbHVyZSBpbiBubGFfbmVzdF9zdGFydCgpLCBt aXNzaW5nIE5VTEwgY2hlY2tzIGluCnRjZl9wZWRpdF9rZXlfZXhfZHVtcCgpIGNhbiBtYWtlIHRo ZSBmb2xsb3dpbmcgY29tbWFuZAoKICMgdGMgYWN0aW9uIGFkZCBhY3Rpb24gcGVkaXQgZXggbXVu Z2UgaXAgdHRsIHNldCA2NAoKZGVyZWZlcmVuY2UgYSBOVUxMIHBvaW50ZXI6CgogQlVHOiB1bmFi bGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgMDAwMDAwMDAw MDAwMDAwMAogUEdEIDgwMDAwMDAwN2QxY2QwNjcgUDREIDgwMDAwMDAwN2QxY2QwNjcgUFVEIDdh Y2QzMDY3IFBNRCAwCiBPb3BzOiAwMDAyIFsjMV0gU01QIFBUSQogQ1BVOiAwIFBJRDogMzMzNiBD b21tOiB0YyBUYWludGVkOiBHICAgICAgICAgICAgRSAgICAgNC4xOC4wLnBlZGl0KyAjNDI1CiBI YXJkd2FyZSBuYW1lOiBSZWQgSGF0IEtWTSwgQklPUyAwLjUuMSAwMS8wMS8yMDExCiBSSVA6IDAw MTA6dGNmX3BlZGl0X2R1bXArMHgxOWQvMHgzNTggW2FjdF9wZWRpdF0KIENvZGU6IGJlIDAyIDAw IDAwIDAwIDQ4IDg5IGRmIDY2IDg5IDQ0IDI0IDIwIGU4IDliIGIxIGZkIGUwIDg1IGMwIDc1IDQ2 IDhiIDgzIGM4IDAwIDAwIDAwIDQ5IDgzIGM1IDA4IDQ4IDAzIDgzIGQwIDAwIDAwIDAwIDRkIDM5 IGY1IDw2Nj4gODkgMDQgMjUgMDAgMDAgMDAgMDAgMGYgODQgODEgMDEgMDAgMDAgNDEgOGIgNDUg MDAgNDggOGQgNGMgMjQKIFJTUDogMDAxODpmZmZmYjVkNDAwNDQ3OGE4IEVGTEFHUzogMDAwMTAy NDYKIFJBWDogZmZmZjg4ODBmY2RhMjA3MCBSQlg6IGZmZmY4ODgwZmFkZDI5MDAgUkNYOiAwMDAw MDAwMDAwMDAwMDAwCiBSRFg6IDAwMDAwMDAwMDAwMDAwMDIgUlNJOiBmZmZmYjVkNDAwNDQ3OGNh IFJESTogZmZmZjg4ODBmY2RhMjA2ZQogUkJQOiBmZmZmODg4MGZiOWNiOTAwIFIwODogMDAwMDAw MDAwMDAwMDAwOCBSMDk6IGZmZmY4ODgwZmNkYTIwNmUKIFIxMDogZmZmZjg4ODBmYWRkMjkwMCBS MTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiBmZmZmODg4MGZkMjZjZjQwCiBSMTM6IGZmZmY4ODgw ZmM5NTc0MzAgUjE0OiBmZmZmODg4MGZjOTU3NDMwIFIxNTogZmZmZjg4ODBmYjljYjk4OAogRlM6 ICAwMDAwN2Y3NWE1MzdhNzQwKDAwMDApIEdTOmZmZmY4ODgwZmRhMDAwMDAoMDAwMCkga25sR1M6 MDAwMDAwMDAwMDAwMDAwMAogQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAw MDA4MDA1MDAzMwogQ1IyOiAwMDAwMDAwMDAwMDAwMDAwIENSMzogMDAwMDAwMDA3YTJmYTAwNSBD UjQ6IDAwMDAwMDAwMDAxNjA2ZjAKIENhbGwgVHJhY2U6CiAgPyBfX25sYV9yZXNlcnZlKzB4Mzgv MHg1MAogIHRjZl9hY3Rpb25fZHVtcF8xKzB4ZDIvMHgxMzAKICB0Y2ZfYWN0aW9uX2R1bXArMHg2 YS8weGYwCiAgdGNhX2dldF9maWxsLmNvbnN0cHJvcC4zMSsweGEzLzB4MTIwCiAgdGNmX2FjdGlv bl9hZGQrMHhkMS8weDE3MAogIHRjX2N0bF9hY3Rpb24rMHgxMzcvMHgxNTAKICBydG5ldGxpbmtf cmN2X21zZysweDI2My8weDJkMAogID8gX2NvbmRfcmVzY2hlZCsweDE1LzB4NDAKICA/IHJ0bmxf Y2FsY2l0LmlzcmEuMzArMHgxMTAvMHgxMTAKICBuZXRsaW5rX3Jjdl9za2IrMHg0ZC8weDEzMAog IG5ldGxpbmtfdW5pY2FzdCsweDFhMy8weDI1MAogIG5ldGxpbmtfc2VuZG1zZysweDJhZS8weDNh MAogIHNvY2tfc2VuZG1zZysweDM2LzB4NDAKICBfX19zeXNfc2VuZG1zZysweDI2Zi8weDJkMAog ID8gZG9fd3BfcGFnZSsweDhlLzB4NWYwCiAgPyBoYW5kbGVfcHRlX2ZhdWx0KzB4NmMzLzB4ZjUw CiAgPyBfX2hhbmRsZV9tbV9mYXVsdCsweDM4ZS8weDUyMAogID8gX19zeXNfc2VuZG1zZysweDVl LzB4YTAKICBfX3N5c19zZW5kbXNnKzB4NWUvMHhhMAogIGRvX3N5c2NhbGxfNjQrMHg1Yi8weDE4 MAogIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKIFJJUDogMDAzMzow eDdmNzVhNDU4M2JhMAogQ29kZTogYzMgNDggOGIgMDUgZjIgNjIgMmMgMDAgZjcgZGIgNjQgODkg MTggNDggODMgY2IgZmYgZWIgZGQgMGYgMWYgODAgMDAgMDAgMDAgMDAgODMgM2QgZmQgYzMgMmMg MDAgMDAgNzUgMTAgYjggMmUgMDAgMDAgMDAgMGYgMDUgPDQ4PiAzZCAwMSBmMCBmZiBmZiA3MyAz MSBjMyA0OCA4MyBlYyAwOCBlOCBhZSBjYyAwMCAwMCA0OCA4OSAwNCAyNAogUlNQOiAwMDJiOjAw MDA3ZmZmNjBlZTc0MTggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAy ZQogUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDdmZmY2MGVlNzU0MCBSQ1g6IDAwMDA3 Zjc1YTQ1ODNiYTAKIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDA3ZmZmNjBlZTc0OTAg UkRJOiAwMDAwMDAwMDAwMDAwMDAzCiBSQlA6IDAwMDAwMDAwNWI4NDJkM2UgUjA4OiAwMDAwMDAw MDAwMDAwMDAyIFIwOTogMDAwMDAwMDAwMDAwMDAwMAogUjEwOiAwMDAwN2ZmZjYwZWU2ZWEwIFIx MTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwMDAwMDAwMDAKIFIxMzogMDAwMDdmZmY2 MGVlNzU1NCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDEgUjE1OiAwMDAwMDAwMDAwNjZjMTAwCiBNb2R1 bGVzIGxpbmtlZCBpbjogYWN0X3BlZGl0KEUpIGlwNnRhYmxlX2ZpbHRlciBpcDZfdGFibGVzIGlw dGFibGVfZmlsdGVyIGJpbmZtdF9taXNjIGNyY3QxMGRpZl9wY2xtdWwgZXh0NCBjcmMzMl9wY2xt dWwgbWJjYWNoZSBnaGFzaF9jbG11bG5pX2ludGVsIGpiZDIgcGNiYyBzbmRfaGRhX2NvZGVjX2dl bmVyaWMgc25kX2hkYV9pbnRlbCBzbmRfaGRhX2NvZGVjIHNuZF9oZGFfY29yZSBzbmRfaHdkZXAg c25kX3NlcSBzbmRfc2VxX2RldmljZSBzbmRfcGNtIGFlc25pX2ludGVsIGNyeXB0b19zaW1kIHNu ZF90aW1lciBjcnlwdGQgZ2x1ZV9oZWxwZXIgc25kIGpveWRldiBwY3Nwa3Igc291bmRjb3JlIHZp cnRpb19iYWxsb29uIGkyY19waWl4NCBuZnNkIGF1dGhfcnBjZ3NzIG5mc19hY2wgbG9ja2QgZ3Jh Y2Ugc3VucnBjIGlwX3RhYmxlcyB4ZnMgbGliY3JjMzJjIGF0YV9nZW5lcmljIHBhdGFfYWNwaSB2 aXJ0aW9fbmV0IG5ldF9mYWlsb3ZlciB2aXJ0aW9fYmxrIHZpcnRpb19jb25zb2xlIGZhaWxvdmVy IHF4bCBjcmMzMmNfaW50ZWwgZHJtX2ttc19oZWxwZXIgc3lzY29weWFyZWEgc2VyaW9fcmF3IHN5 c2ZpbGxyZWN0IHN5c2ltZ2JsdCBmYl9zeXNfZm9wcyB0dG0gZHJtIGF0YV9waWl4IHZpcnRpb19w Y2kgbGliYXRhIHZpcnRpb19yaW5nIGkyY19jb3JlIHZpcnRpbyBmbG9wcHkgZG1fbWlycm9yIGRt X3JlZ2lvbl9oYXNoIGRtX2xvZyBkbV9tb2QgW2xhc3QgdW5sb2FkZWQ6IGFjdF9wZWRpdF0KIENS MjogMDAwMDAwMDAwMDAwMDAwMAoKTGlrZSBpdCdzIGRvbmUgZm9yIG90aGVyIFRDIGFjdGlvbnMs IGdpdmUgdXAgZHVtcGluZyBwZWRpdCBydWxlcyBhbmQgcmV0dXJuCmFuIGVycm9yIGlmIG5sYV9u ZXN0X3N0YXJ0KCkgcmV0dXJucyBOVUxMLgoKRml4ZXM6IDcxZDBlZDcwNzlkZiAoIm5ldC9hY3Rf cGVkaXQ6IFN1cHBvcnQgdXNpbmcgb2Zmc2V0IHJlbGF0aXZlIHRvIHRoZSBjb252ZW50aW9uYWwg bmV0d29yayBoZWFkZXJzIikKU2lnbmVkLW9mZi1ieTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRp QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9zY2hlZC9hY3RfcGVkaXQuYyB8IDE4ICsrKysrKysrKysrKystLS0tLQogMSBmaWxl IGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L3NjaGVkL2FjdF9wZWRpdC5jIGIvbmV0L3NjaGVkL2FjdF9wZWRpdC5jCmluZGV4IDhhOTI1 YzcyZGI1Zi4uYmFkNDc1Yzg3Njg4IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvYWN0X3BlZGl0LmMK KysrIGIvbmV0L3NjaGVkL2FjdF9wZWRpdC5jCkBAIC0xMDksMTYgKzEwOSwxOCBAQCBzdGF0aWMg aW50IHRjZl9wZWRpdF9rZXlfZXhfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogewogCXN0cnVj dCBubGF0dHIgKmtleXNfc3RhcnQgPSBubGFfbmVzdF9zdGFydChza2IsIFRDQV9QRURJVF9LRVlT X0VYKTsKIAorCWlmICgha2V5c19zdGFydCkKKwkJZ290byBubGFfZmFpbHVyZTsKIAlmb3IgKDsg biA+IDA7IG4tLSkgewogCQlzdHJ1Y3QgbmxhdHRyICprZXlfc3RhcnQ7CiAKIAkJa2V5X3N0YXJ0 ID0gbmxhX25lc3Rfc3RhcnQoc2tiLCBUQ0FfUEVESVRfS0VZX0VYKTsKKwkJaWYgKCFrZXlfc3Rh cnQpCisJCQlnb3RvIG5sYV9mYWlsdXJlOwogCiAJCWlmIChubGFfcHV0X3UxNihza2IsIFRDQV9Q RURJVF9LRVlfRVhfSFRZUEUsIGtleXNfZXgtPmh0eXBlKSB8fAotCQkgICAgbmxhX3B1dF91MTYo c2tiLCBUQ0FfUEVESVRfS0VZX0VYX0NNRCwga2V5c19leC0+Y21kKSkgewotCQkJbmxtc2dfdHJp bShza2IsIGtleXNfc3RhcnQpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KKwkJICAgIG5sYV9w dXRfdTE2KHNrYiwgVENBX1BFRElUX0tFWV9FWF9DTUQsIGtleXNfZXgtPmNtZCkpCisJCQlnb3Rv IG5sYV9mYWlsdXJlOwogCiAJCW5sYV9uZXN0X2VuZChza2IsIGtleV9zdGFydCk7CiAKQEAgLTEy OCw2ICsxMzAsOSBAQCBzdGF0aWMgaW50IHRjZl9wZWRpdF9rZXlfZXhfZHVtcChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLAogCW5sYV9uZXN0X2VuZChza2IsIGtleXNfc3RhcnQpOwogCiAJcmV0dXJuIDA7 CitubGFfZmFpbHVyZToKKwlubGFfbmVzdF9jYW5jZWwoc2tiLCBrZXlzX3N0YXJ0KTsKKwlyZXR1 cm4gLUVJTlZBTDsKIH0KIAogc3RhdGljIGludCB0Y2ZfcGVkaXRfaW5pdChzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKQEAgLTM5NSw3ICs0MDAsMTAgQEAgc3RhdGljIGludCB0 Y2ZfcGVkaXRfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdGNfYWN0aW9uICphLAog CW9wdC0+YmluZGNudCA9IHAtPnRjZl9iaW5kY250IC0gYmluZDsKIAogCWlmIChwLT50Y2ZwX2tl eXNfZXgpIHsKLQkJdGNmX3BlZGl0X2tleV9leF9kdW1wKHNrYiwgcC0+dGNmcF9rZXlzX2V4LCBw LT50Y2ZwX25rZXlzKTsKKwkJaWYgKHRjZl9wZWRpdF9rZXlfZXhfZHVtcChza2IsCisJCQkJCSAg cC0+dGNmcF9rZXlzX2V4LAorCQkJCQkgIHAtPnRjZnBfbmtleXMpKQorCQkJZ290byBubGFfcHV0 X2ZhaWx1cmU7CiAKIAkJaWYgKG5sYV9wdXQoc2tiLCBUQ0FfUEVESVRfUEFSTVNfRVgsIHMsIG9w dCkpCiAJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKLS0gCjIuMTMuNgoKCkZyb20gMTU1Mjg0OTEw YjZjNTE5NTNjZTRjZmFhN2RlNTM1YzBkYmJiNzZkOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMjMg QXVnIDIwMTggMTY6MTk6NDQgLTA3MDAKU3ViamVjdDogW1BBVENIIDE3LzM2XSB0aXBjOiBmaXgg YSBtaXNzaW5nIHJoYXNodGFibGVfd2Fsa19leGl0KCkKClsgVXBzdHJlYW0gY29tbWl0IGJkNTgz ZmUzMDQyNzUwMGEyZDBhYmUyNTcyNDAyNWIxY2I1ZTI2MzYgXQoKcmhhc2h0YWJsZV93YWxrX2V4 aXQoKSBtdXN0IGJlIHBhaXJlZCB3aXRoIHJoYXNodGFibGVfd2Fsa19lbnRlcigpLgoKRml4ZXM6 IDQwZjlmNDM5NzA2MCAoInRpcGM6IEZpeCB0aXBjX3NrX3JlaW5pdCByYWNlIGNvbmRpdGlvbnMi KQpDYzogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpDYzogWWluZyBY dWUgPHlpbmcueHVlQHdpbmRyaXZlci5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5 b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvc29ja2V0LmMgfCAyICsrCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMg Yi9uZXQvdGlwYy9zb2NrZXQuYwppbmRleCA5MzA4NTJjNTRkN2EuLjBhNWZhMzQ3MTM1ZSAxMDA2 NDQKLS0tIGEvbmV0L3RpcGMvc29ja2V0LmMKKysrIGIvbmV0L3RpcGMvc29ja2V0LmMKQEAgLTI2 NzUsNiArMjY3NSw4IEBAIHZvaWQgdGlwY19za19yZWluaXQoc3RydWN0IG5ldCAqbmV0KQogCiAJ CXJoYXNodGFibGVfd2Fsa19zdG9wKCZpdGVyKTsKIAl9IHdoaWxlICh0c2sgPT0gRVJSX1BUUigt RUFHQUlOKSk7CisKKwlyaGFzaHRhYmxlX3dhbGtfZXhpdCgmaXRlcik7CiB9CiAKIHN0YXRpYyBz dHJ1Y3QgdGlwY19zb2NrICp0aXBjX3NrX2xvb2t1cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBwb3J0 aWQpCi0tIAoyLjEzLjYKCgpGcm9tIDI2ZjhkYTg3MzU5ZWM2MmFmYjE0NmI0ZGVmYjQ0YjUwMTVi NzNlY2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERleHVhbiBDdWkgPGRlY3VpQG1p Y3Jvc29mdC5jb20+CkRhdGU6IFRodSwgMzAgQXVnIDIwMTggMDU6NDI6MTMgKzAwMDAKU3ViamVj dDogW1BBVENIIDE4LzM2XSBodl9uZXR2c2M6IEZpeCBhIGRlYWRsb2NrIGJ5IGdldHRpbmcgcnRu bCBsb2NrIGVhcmxpZXIKIGluIG5ldHZzY19wcm9iZSgpCgpbIFVwc3RyZWFtIGNvbW1pdCBlMDRl N2E3YmJkNGJiYWJlZjRlMWE1ODM2N2U1ZmM5YjJlZGMzYjEwIF0KClRoaXMgcGF0Y2ggZml4ZXMg dGhlIHJhY2UgYmV0d2VlbiBuZXR2c2NfcHJvYmUoKSBhbmQKcm5kaXNfc2V0X3N1YmNoYW5uZWwo KSwgd2hpY2ggY2FuIGNhdXNlIGEgZGVhZGxvY2suCgpUaGVzZSBhcmUgdGhlIHJlbGF0ZWQgMyBw YXRocyB3aGljaCBzaG93IHRoZSBkZWFkbG9jazoKCnBhdGggIzE6CiAgICBXb3JrcXVldWU6IGh2 X3ZtYnVzX2NvbiB2bWJ1c19vbm1lc3NhZ2Vfd29yayBbaHZfdm1idXNdCiAgICBDYWxsIFRyYWNl OgogICAgIHNjaGVkdWxlCiAgICAgc2NoZWR1bGVfcHJlZW1wdF9kaXNhYmxlZAogICAgIF9fbXV0 ZXhfbG9jawogICAgIF9fZGV2aWNlX2F0dGFjaAogICAgIGJ1c19wcm9iZV9kZXZpY2UKICAgICBk ZXZpY2VfYWRkCiAgICAgdm1idXNfZGV2aWNlX3JlZ2lzdGVyCiAgICAgdm1idXNfb25vZmZlcgog ICAgIHZtYnVzX29ubWVzc2FnZV93b3JrCiAgICAgcHJvY2Vzc19vbmVfd29yawogICAgIHdvcmtl cl90aHJlYWQKICAgICBrdGhyZWFkCiAgICAgcmV0X2Zyb21fZm9yawoKcGF0aCAjMjoKICAgIHNj aGVkdWxlCiAgICAgc2NoZWR1bGVfcHJlZW1wdF9kaXNhYmxlZAogICAgIF9fbXV0ZXhfbG9jawog ICAgIG5ldHZzY19wcm9iZQogICAgIHZtYnVzX3Byb2JlCiAgICAgcmVhbGx5X3Byb2JlCiAgICAg X19kcml2ZXJfYXR0YWNoCiAgICAgYnVzX2Zvcl9lYWNoX2RldgogICAgIGRyaXZlcl9hdHRhY2hf YXN5bmMKICAgICBhc3luY19ydW5fZW50cnlfZm4KICAgICBwcm9jZXNzX29uZV93b3JrCiAgICAg d29ya2VyX3RocmVhZAogICAgIGt0aHJlYWQKICAgICByZXRfZnJvbV9mb3JrCgpwYXRoICMzOgog ICAgV29ya3F1ZXVlOiBldmVudHMgbmV0dnNjX3N1YmNoYW5fd29yayBbaHZfbmV0dnNjXQogICAg Q2FsbCBUcmFjZToKICAgICBzY2hlZHVsZQogICAgIHJuZGlzX3NldF9zdWJjaGFubmVsCiAgICAg bmV0dnNjX3N1YmNoYW5fd29yawogICAgIHByb2Nlc3Nfb25lX3dvcmsKICAgICB3b3JrZXJfdGhy ZWFkCiAgICAga3RocmVhZAogICAgIHJldF9mcm9tX2ZvcmsKCkJlZm9yZSBwYXRoICMxIGZpbmlz aGVzLCBwYXRoICMyIGNhbiBzdGFydCB0byBydW4sIGJlY2F1c2UganVzdCBiZWZvcmUKdGhlICJi dXNfcHJvYmVfZGV2aWNlKGRldik7IiBpbiBkZXZpY2VfYWRkKCkgaW4gcGF0aCAjMSwgdGhlcmUg aXMgYSBsaW5lCiJvYmplY3RfdWV2ZW50KCZkZXYtPmtvYmosIEtPQkpfQUREKTsiLCBzbyBzeXN0 ZW1kLXVkZXZkIGNhbgppbW1lZGlhdGVseSB0cnkgdG8gbG9hZCBodl9uZXR2c2MgYW5kIGhlbmNl IHBhdGggIzIgY2FuIHN0YXJ0IHRvIHJ1bi4KCk5leHQsIHBhdGggIzIgb2ZmbG9hZHMgdGhlIHN1 YmNoYW5uYWwncyBpbml0aWFsaXphdGlvbiB0byBhIHdvcmtxdWV1ZSwKaS5lLiBwYXRoICMzLCBz byB3ZSBjYW4gZW5kIHVwIGluIGEgZGVhZGxvY2sgc2l0dWF0aW9uIGxpa2UgdGhpczoKClBhdGgg IzIgZ2V0cyB0aGUgZGV2aWNlIGxvY2ssIGFuZCBpcyB0cnlpbmcgdG8gZ2V0IHRoZSBydG5sIGxv Y2s7ClBhdGggIzMgZ2V0cyB0aGUgcnRubCBsb2NrIGFuZCBpcyB3YWl0aW5nIGZvciBhbGwgdGhl IHN1YmNoYW5uZWwgbWVzc2FnZXMKdG8gYmUgcHJvY2Vzc2VkOwpQYXRoICMxIGlzIHRyeWluZyB0 byBnZXQgdGhlIGRldmljZSBsb2NrLCBidXQgc2luY2UgIzIgaXMgbm90IHJlbGVhc2luZwp0aGUg ZGV2aWNlIGxvY2ssIHBhdGggIzEgaGFzIHRvIHNsZWVwOyBzaW5jZSB0aGUgVk1CdXMgbWVzc2Fn ZXMgYXJlCnByb2Nlc3NlZCBvbmUgYnkgb25lLCB0aGlzIG1lYW5zIHRoZSBzdWItY2hhbm5lbCBt ZXNzYWdlcyBjYW4ndCBiZQpwcm9jZWRkZWQsIHNvICMzIGhhcyB0byBzbGVlcCB3aXRoIHRoZSBy dG5sIGxvY2sgaGVsZCwgYW5kIGZpbmFsbHkgIzIKaGFzIHRvIHNsZWVwLi4uIE5vdyBhbGwgdGhl IDMgcGF0aHMgYXJlIHNsZWVwaW5nIGFuZCB3ZSBoaXQgdGhlIGRlYWRsb2NrLgoKV2l0aCB0aGUg cGF0Y2gsIHdlIGNhbiBtYWtlIHN1cmUgIzIgZ2V0cyBib3RoIHRoZSBkZXZpY2UgbG9jayBhbmQg dGhlCnJ0bmwgbG9jayB0b2dldGhlciwgZ2V0cyBpdHMgam9iIGRvbmUsIGFuZCByZWxlYXNlcyB0 aGUgbG9ja3MsIHNvICMxCmFuZCAjMyB3aWxsIG5vdCBiZSBibG9ja2VkIGZvciBldmVyLgoKRml4 ZXM6IDgxOTViMTM5NmVjOCAoImh2X25ldHZzYzogZml4IGRlYWRsb2NrIG9uIGhvdHBsdWciKQpT aWduZWQtb2ZmLWJ5OiBEZXh1YW4gQ3VpIDxkZWN1aUBtaWNyb3NvZnQuY29tPgpDYzogU3RlcGhl biBIZW1taW5nZXIgPHN0aGVtbWluQG1pY3Jvc29mdC5jb20+CkNjOiBLLiBZLiBTcmluaXZhc2Fu IDxreXNAbWljcm9zb2Z0LmNvbT4KQ2M6IEhhaXlhbmcgWmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29m dC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jIHwgMTEgKysrKysrKysrKy0K IDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYyBiL2RyaXZlcnMvbmV0L2h5cGVy di9uZXR2c2NfZHJ2LmMKaW5kZXggZGQxZDZlMTE1MTQ1Li5kZjZmYWI2MjU5MjMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQvaHlw ZXJ2L25ldHZzY19kcnYuYwpAQCAtMjEwMSw2ICsyMTAxLDE2IEBAIHN0YXRpYyBpbnQgbmV0dnNj X3Byb2JlKHN0cnVjdCBodl9kZXZpY2UgKmRldiwKIAogCW1lbWNweShuZXQtPmRldl9hZGRyLCBk ZXZpY2VfaW5mby5tYWNfYWRyLCBFVEhfQUxFTik7CiAKKwkvKiBXZSBtdXN0IGdldCBydG5sIGxv Y2sgYmVmb3JlIHNjaGVkdWxpbmcgbnZkZXYtPnN1YmNoYW5fd29yaywKKwkgKiBvdGhlcndpc2Ug bmV0dnNjX3N1YmNoYW5fd29yaygpIGNhbiBnZXQgcnRubCBsb2NrIGZpcnN0IGFuZCB3YWl0CisJ ICogYWxsIHN1YmNoYW5uZWxzIHRvIHNob3cgdXAsIGJ1dCB0aGF0IG1heSBub3QgaGFwcGVuIGJl Y2F1c2UKKwkgKiBuZXR2c2NfcHJvYmUoKSBjYW4ndCBnZXQgcnRubCBsb2NrIGFuZCBhcyBhIHJl c3VsdCB2bWJ1c19vbm9mZmVyKCkKKwkgKiAtPiAuLi4gLT4gZGV2aWNlX2FkZCgpIC0+IC4uLiAt PiBfX2RldmljZV9hdHRhY2goKSBjYW4ndCBnZXQKKwkgKiB0aGUgZGV2aWNlIGxvY2ssIHNvIGFs bCB0aGUgc3ViY2hhbm5lbHMgY2FuJ3QgYmUgcHJvY2Vzc2VkIC0tCisJICogZmluYWxseSBuZXR2 c2Nfc3ViY2hhbl93b3JrKCkgaGFuZ3MgZm9yIGV2ZXIuCisJICovCisJcnRubF9sb2NrKCk7CisK IAlpZiAobnZkZXYtPm51bV9jaG4gPiAxKQogCQlzY2hlZHVsZV93b3JrKCZudmRldi0+c3ViY2hh bl93b3JrKTsKIApAQCAtMjExOSw3ICsyMTI5LDYgQEAgc3RhdGljIGludCBuZXR2c2NfcHJvYmUo c3RydWN0IGh2X2RldmljZSAqZGV2LAogCWVsc2UKIAkJbmV0LT5tYXhfbXR1ID0gRVRIX0RBVEFf TEVOOwogCi0JcnRubF9sb2NrKCk7CiAJcmV0ID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKG5ldCk7CiAJ aWYgKHJldCAhPSAwKSB7CiAJCXByX2VycigiVW5hYmxlIHRvIHJlZ2lzdGVyIG5ldGRldi5cbiIp OwotLSAKMi4xMy42CgoKRnJvbSBkNTRhOTk0OWYwOThhZmU4N2JjMTM2MDE3MTE5NTQzNTZiODJh YWE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYWlxaW5nIEJhaSA8SGFpcWluZy5C YWlAd2luZHJpdmVyLmNvbT4KRGF0ZTogTW9uLCAyNyBBdWcgMjAxOCAwOTozMjoyNiArMDgwMApT dWJqZWN0OiBbUEFUQ0ggMTkvMzZdIHRpcGM6IGZpeCB0aGUgYmlnL2xpdHRsZSBlbmRpYW4gaXNz dWUgaW4gdGlwY19kZXN0CgpbIFVwc3RyZWFtIGNvbW1pdCAzMDkzNTE5OGI3ZDBiZTEyYjFjNDVj MzI4YjY2YTdmZGVmYjE2MjU2IF0KCkluIGZ1bmN0aW9uIHRpcGNfZGVzdF9wdXNoLCB0aGUgMzJi aXQgdmFyaWFibGVzICdub2RlJyBhbmQgJ3BvcnQnCmFyZSBzdG9yZWQgc2VwYXJhdGVseSBpbiB1 cHBwZXIgYW5kIGxvd2VyIHBhcnQgb2YgNjRiaXQgJ3ZhbHVlJy4KVGhlbiB0aGlzIHZhbHVlIGlz IGFzc2lnbmVkIHRvIGRzdC0+dmFsdWUgd2hpY2ggaXMgYSB1bmlvbiBsaWtlOgp1bmlvbgp7CiAg c3RydWN0IHsKICAgIHUzMiBwb3J0OwogICAgdTMyIG5vZGU7CiAgfTsKICB1NjQgdmFsdWU7Cn0K VGhpcyB3b3JrcyBvbiBsaXR0bGUtZW5kaWFuIG1hY2hpbmVzIGxpa2UgeDg2IGJ1dCBmYWlscyBv biBiaWctZW5kaWFuCm1hY2hpbmVzLgoKVGhlIGZpeCByZW1vdmUgdGhlICd2YWx1ZScgc3RhY2sg cGFyYW1ldGVyIGFuZCBldmVuIHRoZSAndmFsdWUnCm1lbWJlciBvZiB0aGUgdW5pb24gaW4gdGlw Y19kZXN0LCBhc3NpZ24gdGhlICdub2RlJyBhbmQgJ3BvcnQnIG1lbWJlcgpkaXJlY3RseSB3aXRo IHRoZSBpbnB1dCBwYXJhbWV0ZXIgdG8gYXZvaWQgdGhlIGVuZGlhbiBpc3N1ZS4KCkZpeGVzOiBh ODBhZTUzMDZhNzMgKCJ0aXBjOiBpbXByb3ZlIGRlc3RpbmF0aW9uIGxpbmtlZCBsaXN0IikKU2ln bmVkLW9mZi1ieTogWmhlbmJvIEdhbyA8emhlbmJvLmdhb0B3aW5kcml2ZXIuY29tPgpBY2tlZC1i eTogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY29tPgpTaWduZWQtb2ZmLWJ5OiBIYWlx aW5nIEJhaSA8SGFpcWluZy5CYWlAd2luZHJpdmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL25hbWVfdGFibGUu YyB8IDEwICsrKystLS0tLS0KIG5ldC90aXBjL25hbWVfdGFibGUuaCB8ICA5ICsrLS0tLS0tLQog MiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC90aXBjL25hbWVfdGFibGUuYyBiL25ldC90aXBjL25hbWVfdGFibGUuYwppbmRl eCBiZWJlODhjYWUwN2IuLmZmOTY4YzdhZmVmNiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbmFtZV90 YWJsZS5jCisrKyBiL25ldC90aXBjL25hbWVfdGFibGUuYwpAQCAtOTgwLDIwICs5ODAsMTcgQEAg aW50IHRpcGNfbmxfbmFtZV90YWJsZV9kdW1wKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBu ZXRsaW5rX2NhbGxiYWNrICpjYikKIAogc3RydWN0IHRpcGNfZGVzdCAqdGlwY19kZXN0X2ZpbmQo c3RydWN0IGxpc3RfaGVhZCAqbCwgdTMyIG5vZGUsIHUzMiBwb3J0KQogewotCXU2NCB2YWx1ZSA9 ICh1NjQpbm9kZSA8PCAzMiB8IHBvcnQ7CiAJc3RydWN0IHRpcGNfZGVzdCAqZHN0OwogCiAJbGlz dF9mb3JfZWFjaF9lbnRyeShkc3QsIGwsIGxpc3QpIHsKLQkJaWYgKGRzdC0+dmFsdWUgIT0gdmFs dWUpCi0JCQljb250aW51ZTsKLQkJcmV0dXJuIGRzdDsKKwkJaWYgKGRzdC0+bm9kZSA9PSBub2Rl ICYmIGRzdC0+cG9ydCA9PSBwb3J0KQorCQkJcmV0dXJuIGRzdDsKIAl9CiAJcmV0dXJuIE5VTEw7 CiB9CiAKIGJvb2wgdGlwY19kZXN0X3B1c2goc3RydWN0IGxpc3RfaGVhZCAqbCwgdTMyIG5vZGUs IHUzMiBwb3J0KQogewotCXU2NCB2YWx1ZSA9ICh1NjQpbm9kZSA8PCAzMiB8IHBvcnQ7CiAJc3Ry dWN0IHRpcGNfZGVzdCAqZHN0OwogCiAJaWYgKHRpcGNfZGVzdF9maW5kKGwsIG5vZGUsIHBvcnQp KQpAQCAtMTAwMiw3ICs5OTksOCBAQCBib29sIHRpcGNfZGVzdF9wdXNoKHN0cnVjdCBsaXN0X2hl YWQgKmwsIHUzMiBub2RlLCB1MzIgcG9ydCkKIAlkc3QgPSBrbWFsbG9jKHNpemVvZigqZHN0KSwg R0ZQX0FUT01JQyk7CiAJaWYgKHVubGlrZWx5KCFkc3QpKQogCQlyZXR1cm4gZmFsc2U7Ci0JZHN0 LT52YWx1ZSA9IHZhbHVlOworCWRzdC0+bm9kZSA9IG5vZGU7CisJZHN0LT5wb3J0ID0gcG9ydDsK IAlsaXN0X2FkZCgmZHN0LT5saXN0LCBsKTsKIAlyZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBh L25ldC90aXBjL25hbWVfdGFibGUuaCBiL25ldC90aXBjL25hbWVfdGFibGUuaAppbmRleCAwZmVi YmE0MWRhODYuLjg5MmJkNzUwYjg1ZiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbmFtZV90YWJsZS5o CisrKyBiL25ldC90aXBjL25hbWVfdGFibGUuaApAQCAtMTMzLDEzICsxMzMsOCBAQCB2b2lkIHRp cGNfbmFtZXRibF9zdG9wKHN0cnVjdCBuZXQgKm5ldCk7CiAKIHN0cnVjdCB0aXBjX2Rlc3Qgewog CXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKLQl1bmlvbiB7Ci0JCXN0cnVjdCB7Ci0JCQl1MzIgcG9y dDsKLQkJCXUzMiBub2RlOwotCQl9OwotCQl1NjQgdmFsdWU7Ci0JfTsKKwl1MzIgcG9ydDsKKwl1 MzIgbm9kZTsKIH07CiAKIHN0cnVjdCB0aXBjX2Rlc3QgKnRpcGNfZGVzdF9maW5kKHN0cnVjdCBs aXN0X2hlYWQgKmwsIHUzMiBub2RlLCB1MzIgcG9ydCk7Ci0tIAoyLjEzLjYKCgpGcm9tIDc4YTNm ODY3YjQwMjlhYzM3MzkxYTRlNTc1ZWE4YmQ0NjM4OGNlYjggTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyNyBB dWcgMjAxOCAxODo0MDoxOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMzZdIHNjdHA6IHJlbW92 ZSB1c2VsZXNzIHN0YXJ0X2ZhaWwgZnJvbSBzY3RwX2h0X2l0ZXIgaW4KIHByb2MKClsgVXBzdHJl YW0gY29tbWl0IDgzNDUzOWU2OWE1ZmUyYWFiMzNjYzc3N2NjZmQ0YTRmY2M1Yjk3NzAgXQoKQWZ0 ZXIgY2hhbmdpbmcgcmhhc2h0YWJsZV93YWxrX3N0YXJ0IHRvIHJldHVybiB2b2lkLCBzdGFydF9m YWlsIHdvdWxkCm5ldmVyIGJlIHNldCBvdGhlciB2YWx1ZSB0aGFuIDAsIGFuZCB0aGUgY2hlY2tp bmcgZm9yIHN0YXJ0X2ZhaWwgaXMKcG9pbnRsZXNzLCBzbyByZW1vdmUgaXQuCgpGaXhlczogOTdh NmVjNGFjMDIxICgicmhhc2h0YWJsZTogQ2hhbmdlIHJoYXNodGFibGVfd2Fsa19zdGFydCB0byBy ZXR1cm4gdm9pZCIpClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNv bT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+CkFja2VkLWJ5 OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9zY3RwL3Byb2MuYyB8IDQgLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L3NjdHAvcHJvYy5jIGIvbmV0L3NjdHAvcHJvYy5jCmluZGV4IGVmNWM5 YTgyZDRlOC4uMTRhYjkzNThkNjYwIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9wcm9jLmMKKysrIGIv bmV0L3NjdHAvcHJvYy5jCkBAIC0yMTUsNyArMjE1LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBz ZXFfb3BlcmF0aW9ucyBzY3RwX2Vwc19vcHMgPSB7CiBzdHJ1Y3Qgc2N0cF9odF9pdGVyIHsKIAlz dHJ1Y3Qgc2VxX25ldF9wcml2YXRlIHA7CiAJc3RydWN0IHJoYXNodGFibGVfaXRlciBodGk7Ci0J aW50IHN0YXJ0X2ZhaWw7CiB9OwogCiBzdGF0aWMgdm9pZCAqc2N0cF90cmFuc3BvcnRfc2VxX3N0 YXJ0KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBsb2ZmX3QgKnBvcykKQEAgLTIyNCw3ICsyMjMsNiBA QCBzdGF0aWMgdm9pZCAqc2N0cF90cmFuc3BvcnRfc2VxX3N0YXJ0KHN0cnVjdCBzZXFfZmlsZSAq c2VxLCBsb2ZmX3QgKnBvcykKIAogCXNjdHBfdHJhbnNwb3J0X3dhbGtfc3RhcnQoJml0ZXItPmh0 aSk7CiAKLQlpdGVyLT5zdGFydF9mYWlsID0gMDsKIAlyZXR1cm4gc2N0cF90cmFuc3BvcnRfZ2V0 X2lkeChzZXFfZmlsZV9uZXQoc2VxKSwgJml0ZXItPmh0aSwgKnBvcyk7CiB9CiAKQEAgLTIzMiw4 ICsyMzAsNiBAQCBzdGF0aWMgdm9pZCBzY3RwX3RyYW5zcG9ydF9zZXFfc3RvcChzdHJ1Y3Qgc2Vx X2ZpbGUgKnNlcSwgdm9pZCAqdikKIHsKIAlzdHJ1Y3Qgc2N0cF9odF9pdGVyICppdGVyID0gc2Vx LT5wcml2YXRlOwogCi0JaWYgKGl0ZXItPnN0YXJ0X2ZhaWwpCi0JCXJldHVybjsKIAlzY3RwX3Ry YW5zcG9ydF93YWxrX3N0b3AoJml0ZXItPmh0aSk7CiB9CiAKLS0gCjIuMTMuNgoKCkZyb20gN2Ey NmEwN2JmMWFkZTJkZDNiNTk3ZmNkYjAyMzFhZGVlNzljM2RhMSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBNb24sIDI3 IEF1ZyAyMDE4IDE4OjQxOjMyICswODAwClN1YmplY3Q6IFtQQVRDSCAyMS8zNl0gZXJzcGFuOiBz ZXQgZXJzcGFuX3ZlciB0byAxIGJ5IGRlZmF1bHQgd2hlbiBhZGRpbmcgYW4KIGVyc3BhbiBkZXYK ClsgVXBzdHJlYW0gY29tbWl0IDg0NTgxYmRhZTk1ODcwMjNjZWExZDEzOTUyM2YwZWYwZjI4YmQ4 OGQgXQoKQWZ0ZXIgZXJzcGFuX3ZlciBpcyBpbnRyb3VkY2VkLCBpZiBlcnNwYW5fdmVyIGlzIG5v dCBzZXQgaW4gaXByb3V0ZSwgaXRzCnZhbHVlIHdpbGwgYmUgbGVmdCAwIGJ5IGRlZmF1bHQuIFNp bmNlIENvbW1pdCAwMmY5OWRmMTg3NWMgKCJlcnNwYW46IGZpeAppbnZhbGlkIGVyc3BhbiB2ZXJz aW9uLiIpLCBpdCBoYXMgYnJva2VuIHRoZSB0cmFmZmljIGR1ZSB0byB0aGUgdmVyc2lvbgpjaGVj ayBpbiBlcnNwYW5feG1pdCBpZiB1c2VycyBhcmUgbm90IGF3YXJlIG9mICdlcnNwYW5fdmVyJyBw YXJhbSwgbGlrZQp1c2luZyBhbiBvbGQgdmVyc2lvbiBvZiBpcHJvdXRlLgoKVG8gZml4IHRoaXMg Y29tcGF0aWJpbGl0eSBwcm9ibGVtLCBpdCBzZXRzIGVyc3Bhbl92ZXIgdG8gMSBieSBkZWZhdWx0 CndoZW4gYWRkaW5nIGFuIGVyc3BhbiBkZXYgaW4gZXJzcGFuX3NldHVwLiBOb3RlIHRoYXQgd2Ug Y2FuJ3QgZG8gaXQgaW4KaXBncmVfbmV0bGlua19wYXJtcywgYXMgdGhpcyBmdW5jdGlvbiBpcyBh bHNvIHVzZWQgYnkgaXBncmVfY2hhbmdlbGluay4KCkZpeGVzOiAwMmY5OWRmMTg3NWMgKCJlcnNw YW46IGZpeCBpbnZhbGlkIGVyc3BhbiB2ZXJzaW9uLiIpClJlcG9ydGVkLWJ5OiBKaWFubGluIFNo aSA8amlzaGlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5A Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBfZ3JlLmMgIHwgMyArKysKIG5ldC9pcHY2L2lwNl9ncmUu YyB8IDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9u ZXQvaXB2NC9pcF9ncmUuYyBiL25ldC9pcHY0L2lwX2dyZS5jCmluZGV4IDJkOGVmZWVjZjYxOS4u MDU1ZjRiYmJhODZiIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9ncmUuYworKysgYi9uZXQvaXB2 NC9pcF9ncmUuYwpAQCAtMTUxMSwxMSArMTUxMSwxNCBAQCBzdGF0aWMgaW50IGlwZ3JlX2ZpbGxf aW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQog CiBzdGF0aWMgdm9pZCBlcnNwYW5fc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKKwlz dHJ1Y3QgaXBfdHVubmVsICp0ID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwogCWV0aGVyX3NldHVwKGRl dik7CiAJZGV2LT5uZXRkZXZfb3BzID0gJmVyc3Bhbl9uZXRkZXZfb3BzOwogCWRldi0+cHJpdl9m bGFncyAmPSB+SUZGX1RYX1NLQl9TSEFSSU5HOwogCWRldi0+cHJpdl9mbGFncyB8PSBJRkZfTElW RV9BRERSX0NIQU5HRTsKIAlpcF90dW5uZWxfc2V0dXAoZGV2LCBlcnNwYW5fbmV0X2lkKTsKKwl0 LT5lcnNwYW5fdmVyID0gMTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGlw Z3JlX3BvbGljeVtJRkxBX0dSRV9NQVggKyAxXSA9IHsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lw Nl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCBjZDJjZmIwNGU1ZDguLjdlYzk5N2Zj YmM0MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9n cmUuYwpAQCAtMTc3Niw2ICsxNzc2LDcgQEAgc3RhdGljIHZvaWQgaXA2Z3JlX25ldGxpbmtfcGFy bXMoc3RydWN0IG5sYXR0ciAqZGF0YVtdLAogCWlmIChkYXRhW0lGTEFfR1JFX0NPTExFQ1RfTUVU QURBVEFdKQogCQlwYXJtcy0+Y29sbGVjdF9tZCA9IHRydWU7CiAKKwlwYXJtcy0+ZXJzcGFuX3Zl ciA9IDE7CiAJaWYgKGRhdGFbSUZMQV9HUkVfRVJTUEFOX1ZFUl0pCiAJCXBhcm1zLT5lcnNwYW5f dmVyID0gbmxhX2dldF91OChkYXRhW0lGTEFfR1JFX0VSU1BBTl9WRVJdKTsKIAotLSAKMi4xMy42 CgoKRnJvbSA5YTNkMjUyNGQwYTE5NGU2ODgzMTQ4YWYwMzJhMmFiNDg4Yjg2N2FhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBaG1hZCBGYXRvdW0gPGEuZmF0b3VtQHBlbmd1dHJvbml4 LmRlPgpEYXRlOiBUdWUsIDIxIEF1ZyAyMDE4IDE3OjM1OjQ4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAyMi8zNl0gbmV0OiBtYWNiOiBGaXggcmVncmVzc2lvbiBicmVha2luZyBub24tTURJTyBmaXhl ZC1saW5rCiBQSFlzCgpbIFVwc3RyZWFtIGNvbW1pdCBhYjVmMTEwNTVmZGY4ZGZjM2RkYmQ4OWU4 ZTNjYzU1MGRlNDFkMWQzIF0KCmNvbW1pdCA3MzlkZTlhMTU2M2EgKCJuZXQ6IG1hY2I6IFJlb3Jn YW5pemUgbWFjYl9taWkgYnJpbmd1cCIpIGJyb2tlCmluaXRpYWxpemluZyBtYWNiIG9uIHRoZSBF VkItS1NaOTQ3NyBldmFsIGJvYXJkLgpUaGVyZSwgb2ZfbWRpb2J1c19yZWdpc3RlciB3YXMgY2Fs bGVkIGV2ZW4gZm9yIHRoZSBmaXhlZC1saW5rIHJlcHJlc2VudGluZwp0aGUgUkdNSUktbGluayB0 byB0aGUgc3dpdGNoIHdpdGggdGhlIHJlc3VsdCB0aGF0IHRoZSBkcml2ZXIgYXR0ZW1wdHMgdG8K ZW51bWVyYXRlIFBIWXMgb24gYSBub24tZXhpc3RlbnQgTURJTyBidXM6CgoJbGlicGh5OiBNQUNC X21paV9idXM6IHByb2JlZAoJbWRpb19idXMgZjAwMjgwMDAuZXRoZXJuZXQtZmZmZmZmZmY6IGZp eGVkLWxpbmsgaGFzIGludmFsaWQgUEhZIGFkZHJlc3MKCW1kaW9fYnVzIGYwMDI4MDAwLmV0aGVy bmV0LWZmZmZmZmZmOiBzY2FuIHBoeSBmaXhlZC1saW5rIGF0IGFkZHJlc3MgMAogICAgICAgIFtz bmlwXQoJbWRpb19idXMgZjAwMjgwMDAuZXRoZXJuZXQtZmZmZmZmZmY6IHNjYW4gcGh5IGZpeGVk LWxpbmsgYXQgYWRkcmVzcyAzMQoKVGhlICJNRElPIiBidXMgcmVnaXN0cmF0aW9uIHN1Y2NlZWRz IHJlZ2FyZGxlc3MsIGhhdmluZyBjbGFpbWVkIHRoZSByZXNldCBHUElPLAphbmQgY2FsbGluZyBv Zl9waHlfcmVnaXN0ZXJfZml4ZWRfbGluayBsYXRlciBvbiBmYWlscyBiZWNhdXNlIGl0IHRyaWVz CnRvIGNsYWltIHRoZSBzYW1lIEdQSU86CgoJbWFjYiBmMDAyODAwMC5ldGhlcm5ldDogYnJva2Vu IGZpeGVkLWxpbmsgc3BlY2lmaWNhdGlvbgoKRml4IHRoaXMgYnkgcmVnaXN0ZXJpbmcgdGhlIGZp eGVkLWxpbmsgYmVmb3JlIGNhbGxpbmcgbWRpb2J1c19yZWdpc3Rlci4KCkZpeGVzOiA3MzlkZTlh MTU2M2EgKCJuZXQ6IG1hY2I6IFJlb3JnYW5pemUgbWFjYl9taWkgYnJpbmd1cCIpClNpZ25lZC1v ZmYtYnk6IEFobWFkIEZhdG91bSA8YS5mYXRvdW1AcGVuZ3V0cm9uaXguZGU+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jIHwgMjcgKysrKysrKysrKysrKysrKystLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMKaW5kZXggZTRiNGE2YTg3 OWJlLi41MTVkOTZlMzIxNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVu Y2UvbWFjYl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21h aW4uYwpAQCAtNDgxLDExICs0ODEsNiBAQCBzdGF0aWMgaW50IG1hY2JfbWlpX3Byb2JlKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiAKIAlpZiAobnApIHsKIAkJaWYgKG9mX3BoeV9pc19maXhlZF9s aW5rKG5wKSkgewotCQkJaWYgKG9mX3BoeV9yZWdpc3Rlcl9maXhlZF9saW5rKG5wKSA8IDApIHsK LQkJCQlkZXZfZXJyKCZicC0+cGRldi0+ZGV2LAotCQkJCQkiYnJva2VuIGZpeGVkLWxpbmsgc3Bl Y2lmaWNhdGlvblxuIik7Ci0JCQkJcmV0dXJuIC1FTk9ERVY7Ci0JCQl9CiAJCQlicC0+cGh5X25v ZGUgPSBvZl9ub2RlX2dldChucCk7CiAJCX0gZWxzZSB7CiAJCQlicC0+cGh5X25vZGUgPSBvZl9w YXJzZV9waGFuZGxlKG5wLCAicGh5LWhhbmRsZSIsIDApOwpAQCAtNTY4LDcgKzU2Myw3IEBAIHN0 YXRpYyBpbnQgbWFjYl9taWlfaW5pdChzdHJ1Y3QgbWFjYiAqYnApCiB7CiAJc3RydWN0IG1hY2Jf cGxhdGZvcm1fZGF0YSAqcGRhdGE7CiAJc3RydWN0IGRldmljZV9ub2RlICpucDsKLQlpbnQgZXJy OworCWludCBlcnIgPSAtRU5YSU87CiAKIAkvKiBFbmFibGUgbWFuYWdlbWVudCBwb3J0ICovCiAJ bWFjYl93cml0ZWwoYnAsIE5DUiwgTUFDQl9CSVQoTVBFKSk7CkBAIC01OTEsMTIgKzU4NiwyMyBA QCBzdGF0aWMgaW50IG1hY2JfbWlpX2luaXQoc3RydWN0IG1hY2IgKmJwKQogCWRldl9zZXRfZHJ2 ZGF0YSgmYnAtPmRldi0+ZGV2LCBicC0+bWlpX2J1cyk7CiAKIAlucCA9IGJwLT5wZGV2LT5kZXYu b2Zfbm9kZTsKLQlpZiAocGRhdGEpCi0JCWJwLT5taWlfYnVzLT5waHlfbWFzayA9IHBkYXRhLT5w aHlfbWFzazsKKwlpZiAobnAgJiYgb2ZfcGh5X2lzX2ZpeGVkX2xpbmsobnApKSB7CisJCWlmIChv Zl9waHlfcmVnaXN0ZXJfZml4ZWRfbGluayhucCkgPCAwKSB7CisJCQlkZXZfZXJyKCZicC0+cGRl di0+ZGV2LAorCQkJCSJicm9rZW4gZml4ZWQtbGluayBzcGVjaWZpY2F0aW9uICVwT0ZcbiIsIG5w KTsKKwkJCWdvdG8gZXJyX291dF9mcmVlX21kaW9idXM7CisJCX0KKworCQllcnIgPSBtZGlvYnVz X3JlZ2lzdGVyKGJwLT5taWlfYnVzKTsKKwl9IGVsc2UgeworCQlpZiAocGRhdGEpCisJCQlicC0+ bWlpX2J1cy0+cGh5X21hc2sgPSBwZGF0YS0+cGh5X21hc2s7CisKKwkJZXJyID0gb2ZfbWRpb2J1 c19yZWdpc3RlcihicC0+bWlpX2J1cywgbnApOworCX0KIAotCWVyciA9IG9mX21kaW9idXNfcmVn aXN0ZXIoYnAtPm1paV9idXMsIG5wKTsKIAlpZiAoZXJyKQotCQlnb3RvIGVycl9vdXRfZnJlZV9t ZGlvYnVzOworCQlnb3RvIGVycl9vdXRfZnJlZV9maXhlZF9saW5rOwogCiAJZXJyID0gbWFjYl9t aWlfcHJvYmUoYnAtPmRldik7CiAJaWYgKGVycikKQEAgLTYwNiw2ICs2MTIsNyBAQCBzdGF0aWMg aW50IG1hY2JfbWlpX2luaXQoc3RydWN0IG1hY2IgKmJwKQogCiBlcnJfb3V0X3VucmVnaXN0ZXJf YnVzOgogCW1kaW9idXNfdW5yZWdpc3RlcihicC0+bWlpX2J1cyk7CitlcnJfb3V0X2ZyZWVfZml4 ZWRfbGluazoKIAlpZiAobnAgJiYgb2ZfcGh5X2lzX2ZpeGVkX2xpbmsobnApKQogCQlvZl9waHlf ZGVyZWdpc3Rlcl9maXhlZF9saW5rKG5wKTsKIGVycl9vdXRfZnJlZV9tZGlvYnVzOgotLSAKMi4x My42CgoKRnJvbSAwMzJhOWViZmMzNmY4Y2QwMzVmMWUxNjIwMDAwZTQ3NGYyNDcwZGEwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgS29kYW5ldiA8YWxleGV5LmtvZGFuZXZA b3JhY2xlLmNvbT4KRGF0ZTogVGh1LCAzMCBBdWcgMjAxOCAxOToxMToyNCArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMjMvMzZdIGlwdjY6IGRvbid0IGdldCBsd3RzdGF0ZSB0d2ljZSBpbiBpcDZfcnRf Y29weV9pbml0KCkKClsgVXBzdHJlYW0gY29tbWl0IDkzYmJhZGQ2ZTBhMmE1OGU0OWQyNjViOWIx YWE1OGU2MjFiNjBhMjYgXQoKQ29tbWl0IDgwZjFhMGY0ZTBjZCAoIm5ldC9pcHY2OiBQdXQgbHd0 c3RhdGUgd2hlbiBkZXN0cm95aW5nIGZpYjZfaW5mbyIpCnBhcnRpYWxseSBmaXhlZCB0aGUga21l bWxlYWsgWzFdLCBsd3RzdGF0ZSBjYW4gYmUgY29waWVkIGZyb20gZmliNl9pbmZvLAp3aXRoIGlw Nl9ydF9jb3B5X2luaXQoKSwgYW5kIGl0IHNob3VsZCBiZSBkb25lIG9ubHkgb25jZSB0aGVyZS4K CnJ0LT5kc3QubHd0c3RhdGUgaXMgc2V0IGJ5IGlwNl9ydF9pbml0X2RzdCgpLCBhdCB0aGUgc3Rh cnQgb2YgdGhlIGZ1bmN0aW9uCmlwNl9ydF9jb3B5X2luaXQoKSwgc28gdGhlcmUgaXMgbm8gbmVl ZCB0byBnZXQgaXQgYWdhaW4gYXQgdGhlIGVuZC4KCldpdGggdGhpcyBwYXRjaCwgbHd0c3RhdGUg YWxzbyBpc24ndCBjb3BpZWQgZnJvbSBSVEZfUkVKRUNUIHJvdXRlcy4KClsxXToKdW5yZWZlcmVu Y2VkIG9iamVjdCAweGZmZmY4ODBiNmFhYTE0ZTAgKHNpemUgNjQpOgogIGNvbW0gImlwIiwgcGlk IDEwNTc3LCBqaWZmaWVzIDQyOTUxNDkzNDEgKGFnZSAxMjczLjkwM3MpCiAgaGV4IGR1bXAgKGZp cnN0IDMyIGJ5dGVzKToKICAgIDAxIDAwIDA0IDAwIDA0IDAwIDAwIDAwIDEwIDAwIDAwIDAwIDAw IDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uCiAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLgogIGJhY2t0cmFjZToKICAg IFs8MDAwMDAwMDAxODY2NDYyMz5dIGx3dHVubmVsX2J1aWxkX3N0YXRlKzB4MWJjLzB4NDIwCiAg ICBbPDAwMDAwMDAwYjczYWEyOWE+XSBpcDZfcm91dGVfaW5mb19jcmVhdGUrMHg5ZjcvMHgxZmQw CiAgICBbPDAwMDAwMDAwZWUyYzVkMWY+XSBpcDZfcm91dGVfYWRkKzB4MTQvMHg3MAogICAgWzww MDAwMDAwMDg1MzdiNTVjPl0gaW5ldDZfcnRtX25ld3JvdXRlKzB4ZDkvMHhlMAogICAgWzwwMDAw MDAwMDJhY2M1MGY1Pl0gcnRuZXRsaW5rX3Jjdl9tc2crMHg2NmYvMHg4ZTAKICAgIFs8MDAwMDAw MDA4ZDljZDM4MT5dIG5ldGxpbmtfcmN2X3NrYisweDI2OC8weDNiMAogICAgWzwwMDAwMDAwMDRj ODkzYzc2Pl0gbmV0bGlua191bmljYXN0KzB4NDE3LzB4NWEwCiAgICBbPDAwMDAwMDAwZjJhYjFh ZmI+XSBuZXRsaW5rX3NlbmRtc2crMHg3MGIvMHhjMzAKICAgIFs8MDAwMDAwMDA4OTBmZjBhYT5d IHNvY2tfc2VuZG1zZysweGIxLzB4ZjAKICAgIFs8MDAwMDAwMDBhMmU3YjY2Zj5dIF9fX3N5c19z ZW5kbXNnKzB4NjU5LzB4OTUwCiAgICBbPDAwMDAwMDAwMWU3NDI2Yzg+XSBfX3N5c19zZW5kbXNn KzB4ZGUvMHgxNzAKICAgIFs8MDAwMDAwMDBmZTQxMTQ0Mz5dIGRvX3N5c2NhbGxfNjQrMHg5Zi8w eDRhMAogICAgWzwwMDAwMDAwMDFiZTdiMjhiPl0gZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2Zy YW1lKzB4NDkvMHhiZQogICAgWzwwMDAwMDAwMDZkMjFmMzUzPl0gMHhmZmZmZmZmZmZmZmZmZmZm CgpGaXhlczogNmVkYjNjOTZhNWYwICgibmV0L2lwdjY6IERlZmVyIGluaXRpYWxpemF0aW9uIG9m IGRzdCB0byBkYXRhIHBhdGgiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgS29kYW5ldiA8YWxleGV5 LmtvZGFuZXZAb3JhY2xlLmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9pcHY2L3JvdXRlLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMK aW5kZXggNzIwOGMxNjMwMmY2Li4xMGRhNTU5NjFmMTQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3Jv dXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtOTk2LDcgKzk5Niw2IEBAIHN0YXRpYyB2 b2lkIGlwNl9ydF9jb3B5X2luaXQoc3RydWN0IHJ0Nl9pbmZvICpydCwgc3RydWN0IGZpYjZfaW5m byAqb3J0KQogCXJ0LT5ydDZpX3NyYyA9IG9ydC0+ZmliNl9zcmM7CiAjZW5kaWYKIAlydC0+cnQ2 aV9wcmVmc3JjID0gb3J0LT5maWI2X3ByZWZzcmM7Ci0JcnQtPmRzdC5sd3RzdGF0ZSA9IGx3dHN0 YXRlX2dldChvcnQtPmZpYjZfbmgubmhfbHd0c3RhdGUpOwogfQogCiBzdGF0aWMgc3RydWN0IGZp YjZfbm9kZSogZmliNl9iYWNrdHJhY2soc3RydWN0IGZpYjZfbm9kZSAqZm4sCi0tIAoyLjEzLjYK CgpGcm9tIGY3N2FlNmU0Zjc2NDFmMzA0YmJlOWQ3ZmE3YTA0MTI2ZjRmMDIyM2MgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCAyMyBBdWcgMjAxOCAxMTozMTozNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjQv MzZdIG5ldC9pcHY2OiBpbml0IGlwNiBhbnljYXN0IHJ0LT5kc3QuaW5wdXQgYXMgaXA2X2lucHV0 CgpbIFVwc3RyZWFtIGNvbW1pdCBkMjNjNGI2MzM2ZWYzMDg5OGRjZGZmMzUxZjIxZTYzM2U3YTY0 OTMwIF0KCkNvbW1pdCA2ZWRiM2M5NmE1ZjAyICgibmV0L2lwdjY6IERlZmVyIGluaXRpYWxpemF0 aW9uIG9mIGRzdCB0byBkYXRhIHBhdGgiKQpmb3Jnb3QgdG8gaGFuZGxlIGFueWNhc3Qgcm91dGUg YW5kIGluaXQgYW55Y2FzdCBydC0+ZHN0LmlucHV0IHRvIGlwNl9mb3J3YXJkLgpGaXggaXQgYnkg c2V0dGluZyBhbnljYXN0IHJ0LT5kc3QuaW5wdXQgYmFjayB0byBpcDZfaW5wdXQuCgpGaXhlczog NmVkYjNjOTZhNWYwMiAoIm5ldC9pcHY2OiBEZWZlciBpbml0aWFsaXphdGlvbiBvZiBkc3QgdG8g ZGF0YSBwYXRoIikKU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lw djYvcm91dGUuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5j CmluZGV4IDEwZGE1NTk2MWYxNC4uMThlMDBjZTE3MTlhIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9y b3V0ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMKQEAgLTk1Niw3ICs5NTYsNyBAQCBzdGF0aWMg dm9pZCBpcDZfcnRfaW5pdF9kc3Qoc3RydWN0IHJ0Nl9pbmZvICpydCwgc3RydWN0IGZpYjZfaW5m byAqb3J0KQogCXJ0LT5kc3QuZXJyb3IgPSAwOwogCXJ0LT5kc3Qub3V0cHV0ID0gaXA2X291dHB1 dDsKIAotCWlmIChvcnQtPmZpYjZfdHlwZSA9PSBSVE5fTE9DQUwpIHsKKwlpZiAob3J0LT5maWI2 X3R5cGUgPT0gUlROX0xPQ0FMIHx8IG9ydC0+ZmliNl90eXBlID09IFJUTl9BTllDQVNUKSB7CiAJ CXJ0LT5kc3QuaW5wdXQgPSBpcDZfaW5wdXQ7CiAJfSBlbHNlIGlmIChpcHY2X2FkZHJfdHlwZSgm b3J0LT5maWI2X2RzdC5hZGRyKSAmIElQVjZfQUREUl9NVUxUSUNBU1QpIHsKIAkJcnQtPmRzdC5p bnB1dCA9IGlwNl9tY19pbnB1dDsKLS0gCjIuMTMuNgoKCkZyb20gN2Y2YTkzZGFmOWE0YmJmMGY2 MDIyZjM5YTk2MjNkYWE2NWUxMTA4ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2 aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpEYXRlOiBUaHUsIDMwIEF1ZyAyMDE4IDE0OjE1 OjQzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNS8zNl0gbmV0L2lwdjY6IE9ubHkgdXBkYXRlIE1U VSBtZXRyaWMgaWYgaXQgc2V0CgpbIFVwc3RyZWFtIGNvbW1pdCAxNWE4MWI0MThlMjJhOWFhNGEw NTA0NDcxZmRjYjBmNGViZjY5Yjk2IF0KCkphbiByZXBvcnRlZCBhIHJlZ3Jlc3Npb24gYWZ0ZXIg YW4gdXBkYXRlIHRvIDQuMTguNS4gSW4gdGhpcyBjYXNlIGlwdjYKZGVmYXVsdCByb3V0ZSBpcyBz ZXR1cCBieSBzeXN0ZW1kLW5ldHdvcmtkIGJhc2VkIG9uIGRhdGEgZnJvbSBhbiBSQS4gVGhlClJB IGNvbnRhaW5zIGFuIE1UVSBvZiAxNDkyIHdoaWNoIGlzIHVzZWQgd2hlbiB0aGUgcm91dGUgaXMg Zmlyc3QgaW5zZXJ0ZWQKYnV0IHRoZW4gc3lzdGVtZC1uZXR3b3JrZCBwdXNoZXMgZG93biB1cGRh dGVzIHRvIHRoZSBkZWZhdWx0IHJvdXRlCndpdGhvdXQgdGhlIG10dSBzZXQuCgpQcmlvciB0byB0 aGUgY2hhbmdlIHRvIGZpYjZfaW5mbywgbWV0cmljcyBzdWNoIGFzIE1UVSB3ZXJlIGhlbGQgaW4g dGhlCmRzdF9lbnRyeSBhbmQgcnQ2aV9wbXR1IGluIHJ0Nl9pbmZvIGNvbnRhaW5lZCBhbiB1cGRh dGUgdG8gdGhlIG10dSBpZgphbnkuIGlwNl9tdHUgd291bGQgbG9vayBhdCBydDZpX3BtdHUgZmly c3QgYW5kIHVzZSBpdCBpZiBzZXQuIElmIG5vdCwKdGhlIHZhbHVlIGZyb20gdGhlIG1ldHJpY3Mg aXMgdXNlZCBpZiBpdCBpcyBzZXQgYW5kIGZpbmFsbHkgZmFsbGluZwpiYWNrIHRvIHRoZSBpZGV2 IHZhbHVlLgoKQWZ0ZXIgdGhlIGZpYjZfaW5mbyBjaGFuZ2UgbWV0cmljcyBhcmUgY29udGFpbmVk IGluIHRoZSBmaWI2X2luZm8gc3RydWN0CmFuZCB0aGVyZSBpcyBubyBlcXVpdmFsZW50IHRvIHJ0 NmlfcG10dS4gVG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgd2l0aAp0aGUgb2xkIGJlaGF2aW9yIHRo ZSBuZXcgY29kZSBzaG91bGQgb25seSByZXNldCB0aGUgTVRVIGluIHRoZSBtZXRyaWNzCmlmIHRo ZSByb3V0ZSB1cGRhdGUgaGFzIGl0IHNldC4KCkZpeGVzOiBkNGVhZDZiMzRiNjcgKCJuZXQvaXB2 NjogbW92ZSBtZXRyaWNzIGZyb20gZHN0IHRvIHJ0Nl9pbmZvIikKUmVwb3J0ZWQtYnk6IEphbiBK YW5zc2VuIDxtZWRoZWZnb0B3ZWIuZGU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2Fo ZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9maWIuYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFu Z2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2 Ni9pcDZfZmliLmMgYi9uZXQvaXB2Ni9pcDZfZmliLmMKaW5kZXggZDIxMjczOGU5ZDEwLi5mNDNk Mjc4ZTAwNDAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9maWIuYworKysgYi9uZXQvaXB2Ni9p cDZfZmliLmMKQEAgLTk4Nyw3ICs5ODcsMTAgQEAgc3RhdGljIGludCBmaWI2X2FkZF9ydDJub2Rl KHN0cnVjdCBmaWI2X25vZGUgKmZuLCBzdHJ1Y3QgZmliNl9pbmZvICpydCwKIAkJCQkJZmliNl9j bGVhbl9leHBpcmVzKGl0ZXIpOwogCQkJCWVsc2UKIAkJCQkJZmliNl9zZXRfZXhwaXJlcyhpdGVy LCBydC0+ZXhwaXJlcyk7Ci0JCQkJZmliNl9tZXRyaWNfc2V0KGl0ZXIsIFJUQVhfTVRVLCBydC0+ ZmliNl9wbXR1KTsKKworCQkJCWlmIChydC0+ZmliNl9wbXR1KQorCQkJCQlmaWI2X21ldHJpY19z ZXQoaXRlciwgUlRBWF9NVFUsCisJCQkJCQkJcnQtPmZpYjZfcG10dSk7CiAJCQkJcmV0dXJuIC1F RVhJU1Q7CiAJCQl9CiAJCQkvKiBJZiB3ZSBoYXZlIHRoZSBzYW1lIGRlc3RpbmF0aW9uIGFuZCB0 aGUgc2FtZSBtZXRyaWMsCi0tIAoyLjEzLjYKCgpGcm9tIDI1ZjljN2IxYTg2NjJlZGNjZjJmOWJl M2FlYjY2ZGE0NDA4MDVhNTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIEFo ZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyMCBBdWcgMjAxOCAxMzowMjo0MSAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMzZdIG5ldC9pcHY2OiBQdXQgbHd0c3RhdGUgd2hlbiBk ZXN0cm95aW5nIGZpYjZfaW5mbwoKWyBVcHN0cmVhbSBjb21taXQgODBmMWEwZjRlMGNkNGJmYzhh NzRmYzFjMzk4NDNhNmU3YjIwNmI5NSBdCgpQcmlvciB0byB0aGUgaW50cm9kdWN0aW9uIG9mIGZp YjZfaW5mbyBsd3RzdGF0ZSB3YXMgbWFuYWdlZCBieSB0aGUgZHN0CmNvZGUuIFdpdGggZmliNl9p bmZvIHJlbGVhc2luZyBsd3RzdGF0ZSBuZWVkcyB0byBiZSBkb25lIHdoZW4gdGhlIHN0cnVjdApp cyBmcmVlZC4KCkZpeGVzOiA5MzUzMWM2NzQzMTUgKCJuZXQvaXB2Njogc2VwYXJhdGUgaGFuZGxp bmcgb2YgRklCIGVudHJpZXMgZnJvbSBkc3QgYmFzZWQgcm91dGVzIikKU2lnbmVkLW9mZi1ieTog RGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X2ZpYi5jIHwgMiAr KwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2lwNl9maWIuYyBiL25ldC9pcHY2L2lwNl9maWIuYwppbmRleCBmNDNkMjc4ZTAwNDAuLjU1MTZm NTVlMjE0YiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2ZpYi5jCisrKyBiL25ldC9pcHY2L2lw Nl9maWIuYwpAQCAtMTk4LDYgKzE5OCw4IEBAIHZvaWQgZmliNl9pbmZvX2Rlc3Ryb3lfcmN1KHN0 cnVjdCByY3VfaGVhZCAqaGVhZCkKIAkJfQogCX0KIAorCWx3dHN0YXRlX3B1dChmNmktPmZpYjZf bmgubmhfbHd0c3RhdGUpOworCiAJaWYgKGY2aS0+ZmliNl9uaC5uaF9kZXYpCiAJCWRldl9wdXQo ZjZpLT5maWI2X25oLm5oX2Rldik7CiAKLS0gCjIuMTMuNgoKCkZyb20gNzY0ZGRhMTY4ZGE4ZDI5 M2RiYjRlZGMyZTc2MTEyZjg5M2E2ZjkxYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog VGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDMgU2VwIDIwMTgg MTg6MDY6MjQgKzAzMDAKU3ViamVjdDogW1BBVENIIDI3LzM2XSBuZXQvbWx4NTogRml4IFNRIG9m ZnNldCBpbiBRUHMgd2l0aCBzbWFsbCBSUQoKWyBVcHN0cmVhbSBjb21taXQgNjM5NTA1ZDQzOTdi OGM2NTRhOGUyNjE2ZjljYjcwZWNlNDBjODNmOSBdCgpDb3JyZWN0IHRoZSBmb3JtdWxhIGZvciBj YWxjdWxhdGluZyB0aGUgUlEgcGFnZSByZW1haW5kZXIsCndoaWNoIHNob3VsZCBiZSBpbiBieXRl IGdyYW51bGFyaXR5LiAgVGhlIHJlc3VsdCB3aWxsIGJlCm5vbi16ZXJvIG9ubHkgZm9yIFJRcyBz bWFsbGVyIHRoYW4gUEFHRV9TSVpFLCBhcyBhbiBSUSBzaXplCmlzIGEgcG93ZXIgb2YgMi4KCkRp dmlkZSB0aGlzIGJ5IHRoZSBTUSBzdHJpZGUgKE1MWDVfU0VORF9XUUVfQkIpIHRvIGdldCB0aGUK U1Egb2Zmc2V0IGluIHN0cmlkZXMgZ3JhbnVsYXJpdHkuCgpGaXhlczogZDcwMzdhZDczZGFhICgi bmV0L21seDU6IEZpeCBRUCBmcmFnbWVudGVkIGJ1ZmZlciBhbGxvY2F0aW9uIikKU2lnbmVkLW9m Zi1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogRXJh biBCZW4gRWxpc2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBN YWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS93cS5jIHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvd3EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS93cS5jCmluZGV4IDg2NDc4YTZiOTljNS4uYzhjMzE1ZWI1MTI4IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd3EuYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd3EuYwpAQCAtMTM5LDE0ICsxMzks MTUgQEAgaW50IG1seDVfd3FfcXBfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCBz dHJ1Y3QgbWx4NV93cV9wYXJhbSAqcGFyYW0sCiAJCSAgICAgIHN0cnVjdCBtbHg1X3dxX2N0cmwg KndxX2N0cmwpCiB7CiAJdTMyIHNxX3N0cmlkZXNfb2Zmc2V0OworCXUzMiBycV9wZ19yZW1haW5k ZXI7CiAJaW50IGVycjsKIAogCW1seDVfZmlsbF9mYmMoTUxYNV9HRVQocXBjLCBxcGMsIGxvZ19y cV9zdHJpZGUpICsgNCwKIAkJICAgICAgTUxYNV9HRVQocXBjLCBxcGMsIGxvZ19ycV9zaXplKSwK IAkJICAgICAgJndxLT5ycS5mYmMpOwogCi0Jc3Ffc3RyaWRlc19vZmZzZXQgPQotCQkoKHdxLT5y cS5mYmMuZnJhZ19zel9tMSArIDEpICUgUEFHRV9TSVpFKSAvIE1MWDVfU0VORF9XUUVfQkI7CisJ cnFfcGdfcmVtYWluZGVyICAgPSBtbHg1X3dxX2N5Y19nZXRfYnl0ZV9zaXplKCZ3cS0+cnEpICUg UEFHRV9TSVpFOworCXNxX3N0cmlkZXNfb2Zmc2V0ID0gcnFfcGdfcmVtYWluZGVyIC8gTUxYNV9T RU5EX1dRRV9CQjsKIAogCW1seDVfZmlsbF9mYmNfb2Zmc2V0KGlsb2cyKE1MWDVfU0VORF9XUUVf QkIpLAogCQkJICAgICBNTFg1X0dFVChxcGMsIHFwYywgbG9nX3NxX3NpemUpLAotLSAKMi4xMy42 CgoKRnJvbSBhMDA0N2ViYjQzZDU5N2QxODg5Y2NmYWUxZDZmZjZkNDU1NzJlMDczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBemF0IEtodXpoaW4gPGEzYXQubWFpbEBnbWFpbC5jb20+ CkRhdGU6IFN1biwgMjYgQXVnIDIwMTggMTc6MDM6MDkgKzAzMDAKU3ViamVjdDogW1BBVENIIDI4 LzM2XSByODE2OTogc2V0IFJ4Q29uZmlnIGFmdGVyIHR4L3J4IGlzIGVuYWJsZWQgZm9yCiBSVEw4 MTY5c2IvODExMHNiIGRldmljZXMKClsgVXBzdHJlYW0gY29tbWl0IDA1MjEyYmE4MTMyYjQyMDQ3 YWI1ZDYzZDc1OWM2ZjljMjhlN2VhYjUgXQoKSSBoYXZlIHR3byBFdGhlcm5ldCBhZGFwdGVyczoK ICByODE2OSAwMDAwOjAzOjAxLjAgZXRoMDogUlRMODE2OXNiLzgxMTBzYiwgMDA6MTQ6ZDE6MTQ6 MmQ6NDksIFhJRCAxMDAwMDAwMCwgSVJRIDE4CiAgcjgxNjkgMDAwMDowMTowMC4wIGV0aDA6IFJU TDgxNjhlLzgxMTFlLCA2NDo2NjpiMzoxMToxNDo1ZCwgWElEIDJjMjAwMDAwLCBJUlEgMzAKQW5k IGFmdGVyIHVwZ3JhZGluZyBmcm9tIGxpbnV4IDQuMTUgWzFdIHRvIGxpbnV4IDQuMTgrIFsyXSBS VEw4MTY5c2IgZmFpbGVkIHRvCnJlY2VpdmUgYW55IHBhY2tldHMuIHRjcGR1bXAgc2hvd3MgYSBs b3Qgb2YgY2hlY2tzdW0gbWlzbWF0Y2guCgogIFsxXTogYTBmNzkzODZhNDk2OGI0OTI1ZGE2ZGIy ZDFkYWZmZDA2MDVhNDQwMgogIFsyXTogMDUxOTM1OTc4NDMyOGJmYTkyYmYwOTMxYmYwY2ZmM2I1 OGMxNjkzMiAoNC4xOSBtZXJnZSB3aW5kb3cgb3BlbmVkKQoKSSBzdGFydGVkIGJpc2VjdGluZyBh bmQgdGhlIGZvdW5kIHRoYXQgWzNdIGJyZWFrcyBpdC4gQWNjb3JkaW5nIHRvIFs0XToKICAiRm9y IDgxMTBTLCA4MTEwU0IsIGFuZCA4MTEwU0Mgc2VyaWVzLCB0aGUgaW5pdGlhbCB2YWx1ZSBvZiBS eENvbmZpZwogIG5lZWRzIHRvIGJlIHNldCBhZnRlciB0aGUgdHgvcnggaXMgZW5hYmxlZC4iClNv IEkgbW92ZWQgcnRsX2luaXRfcnhjZmcoKSBhZnRlciBlbmFibGluZyB0eC9ycyBhbmQgbm93IG15 IGFkYXB0ZXIgd29ya3MKKFJUTDgxNjhlIHdvcmtzIHRvbykuCgogIFszXTogMzU1OWQ4MWU3NmJm ZTM4MDNlODlmMmUwNGNmNmVmN2FiNGYzYWFjZQogIFs0XTogZTU0MmEyMjY5ZjIzMmQ2MTI3MGNl ZGRkNDJiNzNhNDM0OGRlZTJiYiAoInI4MTY5OiBhZGp1c3QgdGhlIFJ4Q29uZmlnCnNldHRpbmdz LiIpCgpBbHNvIGRyb3AgInJ4IiBmcm9tIHJ0bF9zZXRfcnhfdHhfY29uZmlnX3JlZ2lzdGVycygp LCBzaW5jZSBpdCBkb2VzIG5vdGhpbmcKd2l0aCBpdCBhbHJlYWR5LgoKRml4ZXM6IDM1NTlkODFl NzZiZmUzODAzZTg5ZjJlMDRjZjZlZjdhYjRmM2FhY2UgKCJyODE2OTogc2ltcGxpZnkKcnRsX2h3 X3N0YXJ0XzgxNjkiKQoKQ2M6IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ CkNjOiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CkNjOiBuZXRkZXZAdmdl ci5rZXJuZWwub3JnCkNjOiBSZWFsdGVrIGxpbnV4IG5pYyBtYWludGFpbmVycyA8bmljX3N3c2RA cmVhbHRlay5jb20+ClNpZ25lZC1vZmYtYnk6IEF6YXQgS2h1emhpbiA8YTNhdC5tYWlsQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyB8IDYgKysrKy0tCiAx IGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwppbmRleCA2NWU0ZTM5Mjc3NGEuLmU1ZWIzNjFiOTczYyAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwpAQCAtNTAzOSw3ICs1MDM5LDcgQEAg c3RhdGljIHZvaWQgcnRsODE2OV9od19yZXNldChzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCkK IAlydGxfaHdfcmVzZXQodHApOwogfQogCi1zdGF0aWMgdm9pZCBydGxfc2V0X3J4X3R4X2NvbmZp Z19yZWdpc3RlcnMoc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHApCitzdGF0aWMgdm9pZCBydGxf c2V0X3R4X2NvbmZpZ19yZWdpc3RlcnMoc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHApCiB7CiAJ LyogU2V0IERNQSBidXJzdCBzaXplIGFuZCBJbnRlcmZyYW1lIEdhcCBUaW1lICovCiAJUlRMX1cz Mih0cCwgVHhDb25maWcsIChUWF9ETUFfQlVSU1QgPDwgVHhETUFTaGlmdCkgfApAQCAtNTE1MCwx MiArNTE1MCwxNCBAQCBzdGF0aWMgdm9pZCBydGxfaHdfc3RhcnQoc3RydWN0ICBydGw4MTY5X3By aXZhdGUgKnRwKQogCiAJcnRsX3NldF9yeF9tYXhfc2l6ZSh0cCk7CiAJcnRsX3NldF9yeF90eF9k ZXNjX3JlZ2lzdGVycyh0cCk7Ci0JcnRsX3NldF9yeF90eF9jb25maWdfcmVnaXN0ZXJzKHRwKTsK KwlydGxfc2V0X3R4X2NvbmZpZ19yZWdpc3RlcnModHApOwogCVJUTF9XOCh0cCwgQ2ZnOTM0Niwg Q2ZnOTM0Nl9Mb2NrKTsKIAogCS8qIEluaXRpYWxseSBhIDEwIHVzIGRlbGF5LiBUdXJuZWQgaXQg aW50byBhIFBDSSBjb21taXQuIC0gRlIgKi8KIAlSVExfUjgodHAsIEludHJNYXNrKTsKIAlSVExf VzgodHAsIENoaXBDbWQsIENtZFR4RW5iIHwgQ21kUnhFbmIpOworCXJ0bF9pbml0X3J4Y2ZnKHRw KTsKKwogCXJ0bF9zZXRfcnhfbW9kZSh0cC0+ZGV2KTsKIAkvKiBubyBlYXJseS1yeCBpbnRlcnJ1 cHRzICovCiAJUlRMX1cxNih0cCwgTXVsdGlJbnRyLCBSVExfUjE2KHRwLCBNdWx0aUludHIpICYg MHhmMDAwKTsKLS0gCjIuMTMuNgoKCkZyb20gZmJkN2MyODdhMTZmMWQ1ZmM1OGQ3ZGE1ZjRmZTA5 MTI4NTRmOTBiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmVyb21lIEJydW5ldCA8 amJydW5ldEBiYXlsaWJyZS5jb20+CkRhdGU6IEZyaSwgMjQgQXVnIDIwMTggMTE6MDQ6NDAgKzAy MDAKU3ViamVjdDogW1BBVENIIDI5LzM2XSBSZXZlcnQgIm5ldDogc3RtbWFjOiBEbyBub3Qga2Vl cCByZWFybWluZyB0aGUgY29hbGVzY2UKIHRpbWVyIGluIHN0bW1hY194bWl0IgoKWyBVcHN0cmVh bSBjb21taXQgZTUxMzNmMmYxMjYxZjhhYjQxMmU3ZmM1ZTM2OTRjOWY4NDMyOGY4OSBdCgpUaGlz IHJldmVydHMgY29tbWl0IDRhZTAxNjlmZDFiM2M3OTJiNjZiZTU4OTk1YjdlNmI2Mjk5MTllY2Yu CgpUaGlzIGNoYW5nZSBpbiB0aGUgaGFuZGxpbmcgb2YgdGhlIGNvYWxlc2NlIHRpbWVyIGlzIGNh dXNpbmcgcmVncmVzc2lvbiBvbgooYXQgbGVhc3QpIGFtbG9naWMgcGxhdGZvcm1zLgoKTmV0d29y ayB3aWxsIGJyZWFrIGRvd24gdmVyeSBxdWlja2x5IChhIGZldyBzZWNvbmRzKSBhZnRlciBzdGFy dGluZwphIGRvd25sb2FkLiBUaGlzIGNhbiBlYXNpbHkgYmUgcmVwcm9kdWNlZCB1c2luZyBpcGVy ZjMgZm9yIGV4YW1wbGUuCgpUaGUgcHJvYmxlbSBoYXMgYmVlbiByZXBvcnRlZCBvbiB0aGUgUzgw NSwgUzkwNSwgUzkxMiBhbmQgQTExMyBTb0NzCihSZWFsdGVrIGFuZCBNaWNyZWwgUEhZcykgYW5k IGl0IGlzIGxpa2VseSBpbXBhY3RpbmcgYWxsIEFtbG9naWNzCnBsYXRmb3JtcyB1c2luZyBHYml0 IGV0aGVybmV0CgpObyBwcm9ibGVtIHdhcyBzZWVuIHdpdGggdGhlIHBsYXRmb3JtIHVzaW5nIDEw LzEwMCBvbmx5IFBIWXMgKEdYTCBpbnRlcm5hbCkKClJldmVydGluZyBjaGFuZ2UgYnJpbmdzIHRo aW5ncyBiYWNrIHRvIG5vcm1hbCBhbmQgYWxsb3dzIHRvIHVzZSBuZXR3b3JrCmFnYWluIHVudGls IHdlIGJldHRlciB1bmRlcnN0YW5kIHRoZSBwcm9ibGVtIHdpdGggdGhlIGNvYWxlc2NlIHRpbWVy LgoKQ2M6IEpvc2UgQWJyZXUgPGpvYWJyZXVAc3lub3BzeXMuY29tPgpDYzogSm9hbyBQaW50byA8 anBpbnRvQHN5bm9wc3lzLmNvbT4KQ2M6IFZpdG9yIFNvYXJlcyA8c29hcmVzQHN5bm9wc3lzLmNv bT4KQ2M6IEdpdXNlcHBlIENhdmFsbGFybyA8cGVwcGUuY2F2YWxsYXJvQHN0LmNvbT4KQ2M6IEFs ZXhhbmRyZSBUb3JndWUgPGFsZXhhbmRyZS50b3JndWVAc3QuY29tPgpDYzogQ29yZW50aW4gTGFi YmUgPGNsYWJiZUBiYXlsaWJyZS5jb20+ClNpZ25lZC1vZmYtYnk6IEplcm9tZSBCcnVuZXQgPGpi cnVuZXRAYmF5bGlicmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMv c3RtbWFjLmggICAgICB8IDEgLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMv c3RtbWFjX21haW4uYyB8IDUgKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNy by9zdG1tYWMvc3RtbWFjLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9z dG1tYWMuaAppbmRleCA3NjY0OWFkZjhmYjAuLmMwYTg1NWI3YWIzYiAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgKQEAgLTExMiw3ICsxMTIsNiBAQCBz dHJ1Y3Qgc3RtbWFjX3ByaXYgewogCXUzMiB0eF9jb3VudF9mcmFtZXM7CiAJdTMyIHR4X2NvYWxf ZnJhbWVzOwogCXUzMiB0eF9jb2FsX3RpbWVyOwotCWJvb2wgdHhfdGltZXJfYXJtZWQ7CiAKIAlp bnQgdHhfY29hbGVzY2U7CiAJaW50IGh3dHNfdHhfZW47CmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwppbmRleCBlZjZhOGQzOWRiMmYuLmM1 NzlkOThiOTY2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvc3RtbWFjX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1h Yy9zdG1tYWNfbWFpbi5jCkBAIC0zMTI2LDE2ICszMTI2LDEzIEBAIHN0YXRpYyBuZXRkZXZfdHhf dCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQogCSAqIGVsZW1lbnQgaW4gY2FzZSBvZiBubyBTRy4KIAkgKi8KIAlwcml2LT50eF9jb3VudF9m cmFtZXMgKz0gbmZyYWdzICsgMTsKLQlpZiAobGlrZWx5KHByaXYtPnR4X2NvYWxfZnJhbWVzID4g cHJpdi0+dHhfY291bnRfZnJhbWVzKSAmJgotCSAgICAhcHJpdi0+dHhfdGltZXJfYXJtZWQpIHsK KwlpZiAobGlrZWx5KHByaXYtPnR4X2NvYWxfZnJhbWVzID4gcHJpdi0+dHhfY291bnRfZnJhbWVz KSkgewogCQltb2RfdGltZXIoJnByaXYtPnR4dGltZXIsCiAJCQkgIFNUTU1BQ19DT0FMX1RJTUVS KHByaXYtPnR4X2NvYWxfdGltZXIpKTsKLQkJcHJpdi0+dHhfdGltZXJfYXJtZWQgPSB0cnVlOwog CX0gZWxzZSB7CiAJCXByaXYtPnR4X2NvdW50X2ZyYW1lcyA9IDA7CiAJCXN0bW1hY19zZXRfdHhf aWMocHJpdiwgZGVzYyk7CiAJCXByaXYtPnhzdGF0cy50eF9zZXRfaWNfYml0Kys7Ci0JCXByaXYt PnR4X3RpbWVyX2FybWVkID0gZmFsc2U7CiAJfQogCiAJc2tiX3R4X3RpbWVzdGFtcChza2IpOwot LSAKMi4xMy42CgoKRnJvbSA4M2UxNGRjNTA4NTdkODU0MWFmZTU3ODBlMjg1NzMzMDQ0ZjY4NjE4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYWlzaHVhbmcgWWFuIDx5YW5oYWlzaHVh bmdAY21zcy5jaGluYW1vYmlsZS5jb20+CkRhdGU6IFN1biwgMTkgQXVnIDIwMTggMTU6MDU6MDUg KzA4MDAKU3ViamVjdDogW1BBVENIIDMwLzM2XSBpcDZfdnRpOiBmaXggY3JlYXRpbmcgZmFsbGJh Y2sgdHVubmVsIGRldmljZSBmb3IgdnRpNgoKWyBVcHN0cmVhbSBjb21taXQgZTI5NDhlNWFmOGVl YjZjOTQ1MDAwNzcyYjc2MTNiMDMyM2EwYTIwMyBdCgpXaGVuIHNldCBmYl90dW5uZWxzX29ubHlf Zm9yX2luaXRfbmV0IHRvIDEsIGRvbid0IGNyZWF0ZSBmYWxsYmFjayB0dW5uZWwKZGV2aWNlIGZv ciB2dGk2IHdoZW4gYSBuZXcgbmFtZXNwYWNlIGlzIGNyZWF0ZWQuCgpUZXN0ZWQ6Cltyb290QGJ1 aWxkZXIyIH5dIyBtb2Rwcm9iZSBpcDZfdHVubmVsCltyb290QGJ1aWxkZXIyIH5dIyBtb2Rwcm9i ZSBpcDZfdnRpCltyb290QGJ1aWxkZXIyIH5dIyBlY2hvIDEgPiAvcHJvYy9zeXMvbmV0L2NvcmUv ZmJfdHVubmVsc19vbmx5X2Zvcl9pbml0X25ldApbcm9vdEBidWlsZGVyMiB+XSMgdW5zaGFyZSAt bgpbcm9vdEBidWlsZGVyMiB+XSMgaXAgbGluawoxOiBsbzogPExPT1BCQUNLPiBtdHUgNjU1MzYg cWRpc2Mgbm9vcCBzdGF0ZSBET1dOIG1vZGUgREVGQVVMVCBncm91cApkZWZhdWx0IHFsZW4gMTAw MAogICAgbGluay9sb29wYmFjayAwMDowMDowMDowMDowMDowMCBicmQgMDA6MDA6MDA6MDA6MDA6 MDAKClNpZ25lZC1vZmYtYnk6IEhhaXNodWFuZyBZYW4gPHlhbmhhaXNodWFuZ0BjbXNzLmNoaW5h bW9iaWxlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl92dGkuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfdnRpLmMgYi9uZXQvaXB2 Ni9pcDZfdnRpLmMKaW5kZXggZmJkMzc1MmVhNTg3Li43MWIyZmNjZDE0ODQgMTAwNjQ0Ci0tLSBh L25ldC9pcHY2L2lwNl92dGkuYworKysgYi9uZXQvaXB2Ni9pcDZfdnRpLmMKQEAgLTExMTQsNiAr MTExNCw4IEBAIHN0YXRpYyBpbnQgX19uZXRfaW5pdCB2dGk2X2luaXRfbmV0KHN0cnVjdCBuZXQg Km5ldCkKIAlpcDZuLT50bmxzWzBdID0gaXA2bi0+dG5sc193YzsKIAlpcDZuLT50bmxzWzFdID0g aXA2bi0+dG5sc19yX2w7CiAKKwlpZiAoIW5ldF9oYXNfZmFsbGJhY2tfdHVubmVscyhuZXQpKQor CQlyZXR1cm4gMDsKIAllcnIgPSAtRU5PTUVNOwogCWlwNm4tPmZiX3RubF9kZXYgPSBhbGxvY19u ZXRkZXYoc2l6ZW9mKHN0cnVjdCBpcDZfdG5sKSwgImlwNl92dGkwIiwKIAkJCQkJTkVUX05BTUVf VU5LTk9XTiwgdnRpNl9kZXZfc2V0dXApOwotLSAKMi4xMy42CgoKRnJvbSAyZDA2ODVlZDA0ODdl NjhlMTEzYmU3MzIzZGZkNDk2NDJiNzEwYjllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBIYWlzaHVhbmcgWWFuIDx5YW5oYWlzaHVhbmdAY21zcy5jaGluYW1vYmlsZS5jb20+CkRhdGU6 IE1vbiwgMjAgQXVnIDIwMTggMTA6NTE6MDUgKzA4MDAKU3ViamVjdDogW1BBVENIIDMxLzM2XSBp cDZfdnRpOiBmaXggYSBudWxsIHBvaW50ZXIgZGVmZXJlbmNlIHdoZW4gZGVzdHJveSB2dGk2CiB0 dW5uZWwKClsgVXBzdHJlYW0gY29tbWl0IDljODYzMzZjMTVkYjFjNDhjYmFkZGZmNTZjYWYyYmUw YTkzMGU5OTEgXQoKSWYgbG9hZCBpcDZfdnRpIG1vZHVsZSBhbmQgY3JlYXRlIGEgbmV0d29yayBu YW1lc3BhY2Ugd2hlbiBzZXQKZmJfdHVubmVsc19vbmx5X2Zvcl9pbml0X25ldCB0byAxLCB0aGVu IGV4aXQgdGhlIG5hbWVzcGFjZSB3aWxsCmNhdXNlIGZvbGxvd2luZyBjcmFzaDoKClsgNjYwMS42 NzcwMzZdIEJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJl bmNlIGF0IDAwMDAwMDAwMDAwMDAwMDgKWyA2NjAxLjY3OTA1N10gUEdEIDgwMDAwMDA0MjVlY2Ew NjcgUDREIDgwMDAwMDA0MjVlY2EwNjcgUFVEIDQyNDI5MjA2NyBQTUQgMApbIDY2MDEuNjgwNDgz XSBPb3BzOiAwMDAwIFsjMV0gU01QIFBUSQpbIDY2MDEuNjgxMjIzXSBDUFU6IDcgUElEOiA5MyBD b21tOiBrd29ya2VyL3UxNjoxIEtkdW1wOiBsb2FkZWQgVGFpbnRlZDogRyAgICAgICAgICAgIEUg ICAgIDQuMTguMCsgIzMKWyA2NjAxLjY4MzE1M10gSGFyZHdhcmUgbmFtZTogRmVkb3JhIFByb2pl Y3QgT3BlblN0YWNrIE5vdmEsIEJJT1Mgc2VhYmlvcy0xLjcuNS0xMS5lbDcgMDQvMDEvMjAxNApb IDY2MDEuNjg0OTE5XSBXb3JrcXVldWU6IG5ldG5zIGNsZWFudXBfbmV0ClsgNjYwMS42ODU3NDJd IFJJUDogMDAxMDp2dGk2X2V4aXRfYmF0Y2hfbmV0KzB4ODcvMHhkMCBbaXA2X3Z0aV0KWyA2NjAx LjY4NjkzMl0gQ29kZTogN2IgMDggNDggODkgZTYgZTggYjkgZWEgZDMgZGQgNDggOGIgMWIgNDgg ODUgZGIgNzUgZWMgNDggODMgYzUgMDggNDggODEgZmQgMDAgMDEgMDAgMDAgNzUgZDUgNDkgOGIg ODQgMjQgMDggMDEgMDAgMDAgNDggODkgZTYgPDQ4PiA4YiA3OCAwOCBlOCA5MCBlYSBkMyBkZCA0 OSA4YiA0NSAyOCA0OSAzOSBjNiA0YyA4ZCA2OCBkOCA3NSBhMQpbIDY2MDEuNjkwNzM1XSBSU1A6 IDAwMTg6ZmZmZmE4OTdjMjczN2RlMCBFRkxBR1M6IDAwMDEwMjQ2ClsgNjYwMS42OTE4NDZdIFJB WDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IDAwMDAwMDAwMDAwMDAwMDAgUkNYOiBkZWFkMDAwMDAw MDAwMjAwClsgNjYwMS42OTMzMjRdIFJEWDogMDAwMDAwMDAwMDAwMDAxNSBSU0k6IGZmZmZhODk3 YzI3MzdkZTAgUkRJOiBmZmZmZmZmZjlmMmVhOWUwClsgNjYwMS42OTQ4MjRdIFJCUDogMDAwMDAw MDAwMDAwMDEwMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClsg NjYwMS42OTYzMTRdIFIxMDogMDAwMDAwMDAwMDAwMDAwMSBSMTE6IDAwMDAwMDAwMDAwMDAwMDAg UjEyOiBmZmZmOGRjMzIzYzA3ZTAwClsgNjYwMS42OTc4MTJdIFIxMzogZmZmZjhkYzMyNGE2MzEw MCBSMTQ6IGZmZmZhODk3YzI3MzdlMzAgUjE1OiBmZmZmYTg5N2MyNzM3ZTMwClsgNjYwMS42OTkz NDVdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmOGRjMzNmZGMwMDAwKDAwMDAp IGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyA2NjAxLjcwMTA2OF0gQ1M6ICAwMDEwIERTOiAwMDAw IEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbIDY2MDEuNzAyMjgyXSBDUjI6IDAwMDAw MDAwMDAwMDAwMDggQ1IzOiAwMDAwMDAwNDI0OTY2MDAyIENSNDogMDAwMDAwMDAwMDE2MDZlMApb IDY2MDEuNzAzNzkxXSBDYWxsIFRyYWNlOgpbIDY2MDEuNzA0MzI5XSAgY2xlYW51cF9uZXQrMHgx YjQvMHgyYzAKWyA2NjAxLjcwNTI2OF0gIHByb2Nlc3Nfb25lX3dvcmsrMHgxNmMvMHgzNzAKWyA2 NjAxLjcwNjE0NV0gIHdvcmtlcl90aHJlYWQrMHg0OS8weDNlMApbIDY2MDEuNzA2OTQyXSAga3Ro cmVhZCsweGY4LzB4MTMwClsgNjYwMS43MDc2MjZdICA/IHJlc2N1ZXJfdGhyZWFkKzB4MzQwLzB4 MzQwClsgNjYwMS43MDg0NzZdICA/IGt0aHJlYWRfYmluZCsweDEwLzB4MTAKWyA2NjAxLjcwOTI2 Nl0gIHJldF9mcm9tX2ZvcmsrMHgzNS8weDQwCgpSZXByb2R1Y2U6Cm1vZHByb2JlIGlwNl92dGkK ZWNobyAxID4gL3Byb2Mvc3lzL25ldC9jb3JlL2ZiX3R1bm5lbHNfb25seV9mb3JfaW5pdF9uZXQK dW5zaGFyZSAtbgpleGl0CgpUaGlzIGJlY2F1c2UgaXA2bi0+dG5sc193Y1swXSBwb2ludCB0byBm YWxsYmFjayBkZXZpY2UgaW4gZGVmYXVsdCwgYnV0CmluIG5vbi1kZWZhdWx0IG5hbWVzcGFjZSwg aXA2bi0+dG5sc193Y1swXSB3aWxsIGJlIE5VTEwsIHNvIGFkZCB0aGUgTlVMTApjaGVjayBjb21w YXJhdGl2ZWx5LgoKRml4ZXM6IGUyOTQ4ZTVhZjhlZSAoImlwNl92dGk6IGZpeCBjcmVhdGluZyBm YWxsYmFjayB0dW5uZWwgZGV2aWNlIGZvciB2dGk2IikKU2lnbmVkLW9mZi1ieTogSGFpc2h1YW5n IFlhbiA8eWFuaGFpc2h1YW5nQGNtc3MuY2hpbmFtb2JpbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X3Z0 aS5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfdnRpLmMgYi9uZXQvaXB2Ni9pcDZfdnRpLmMK aW5kZXggNzFiMmZjY2QxNDg0Li5jMzFhN2M0YTkyNDkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lw Nl92dGkuYworKysgYi9uZXQvaXB2Ni9pcDZfdnRpLmMKQEAgLTExMDIsNyArMTEwMiw4IEBAIHN0 YXRpYyB2b2lkIF9fbmV0X2V4aXQgdnRpNl9kZXN0cm95X3R1bm5lbHMoc3RydWN0IHZ0aTZfbmV0 ICppcDZuLAogCX0KIAogCXQgPSBydG5sX2RlcmVmZXJlbmNlKGlwNm4tPnRubHNfd2NbMF0pOwot CXVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKHQtPmRldiwgbGlzdCk7CisJaWYgKHQpCisJCXVu cmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKHQtPmRldiwgbGlzdCk7CiB9CiAKIHN0YXRpYyBpbnQg X19uZXRfaW5pdCB2dGk2X2luaXRfbmV0KHN0cnVjdCBuZXQgKm5ldCkKLS0gCjIuMTMuNgoKCkZy b20gMmU1NmFhZDQwYWViZjYyODEyYzQwZTFkNzc0NjMyMDQ1MTQ4NzNmMiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9t ZS5jb20+CkRhdGU6IFdlZCwgMjkgQXVnIDIwMTggMTI6NDY6MDggLTA3MDAKU3ViamVjdDogW1BB VENIIDMyLzM2XSBuZnA6IHdhaXQgZm9yIHBvc3RlZCByZWNvbmZpZ3Mgd2hlbiBkaXNhYmxpbmcg dGhlCiBkZXZpY2UKClsgVXBzdHJlYW0gY29tbWl0IDlhZDcxNmI5NWZkNmM2YmU0NmE0ZjJkNTkz NmU1MTRiNWJjZDc0NGQgXQoKVG8gYXZvaWQgbGVha2luZyBhIHJ1bm5pbmcgdGltZXIgd2UgbmVl ZCB0byB3YWl0IGZvciB0aGUKcG9zdGVkIHJlY29uZmlncyBhZnRlciBuZXRkZXYgaXMgdW5yZWdp c3RlcmVkLiAgSW4gY29tbW9uCmNhc2UgdGhlIHByb2Nlc3Mgb2YgZGVpbml0aWFsaXppbmcgdGhl IGRldmljZSB3aWxsIHBlcmZvcm0Kc3luY2hyb25vdXMgcmVjb25maWdzIHdoaWNoIHdhaXQgZm9y IHBvc3RlZCByZXF1ZXN0cywgYnV0CmVzcGVjaWFsbHkgd2l0aCBWWExBTiBwb3J0cyBiZWluZyBh Y3RpdmVseSBhZGRlZCBhbmQgcmVtb3ZlZAp0aGVyZSBjYW4gYmUgYSByYWNlIGNvbmRpdGlvbiBs ZWF2aW5nIGEgdGltZXIgcnVubmluZyBhZnRlcgphZGFwdGVyIHN0cnVjdHVyZSBpcyBmcmVlZCBs ZWFkaW5nIHRvIGEgY3Jhc2guCgpBZGQgYW4gZXhwbGljaXQgZmx1c2ggYWZ0ZXIgZGVyZWdpc3Rl cmluZyBhbmQgZm9yIGEgZ29vZAptZWFzdXJlIGEgd2FybmluZyB0byBjaGVjayBpZiB0aW1lciBp cyBydW5uaW5nIGp1c3QgYmVmb3JlCnN0cnVjdHVyZXMgYXJlIGZyZWVkLgoKRml4ZXM6IDNkNzgw YjkyNmExMiAoIm5mcDogYWRkIGFzeW5jIHJlY29uZmlndXJhdGlvbiBtZWNoYW5pc20iKQpTaWdu ZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4K UmV2aWV3ZWQtYnk6IERpcmsgdmFuIGRlciBNZXJ3ZSA8ZGlyay52YW5kZXJtZXJ3ZUBuZXRyb25v bWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9uZXRfY29tbW9uLmMg ICAgfCA0OCArKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0 aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbmV0cm9ub21lL25mcC9uZnBfbmV0X2NvbW1vbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bmV0cm9ub21lL25mcC9uZnBfbmV0X2NvbW1vbi5jCmluZGV4IGQ0YzI3Zjg0OWY5Yi4uYzJhOWU2 NGJjNTdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25m cF9uZXRfY29tbW9uLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9u ZnBfbmV0X2NvbW1vbi5jCkBAIC0yMjcsMjkgKzIyNywxNiBAQCBzdGF0aWMgdm9pZCBuZnBfbmV0 X3JlY29uZmlnX3Bvc3Qoc3RydWN0IG5mcF9uZXQgKm5uLCB1MzIgdXBkYXRlKQogCXNwaW5fdW5s b2NrX2JoKCZubi0+cmVjb25maWdfbG9jayk7CiB9CiAKLS8qKgotICogbmZwX25ldF9yZWNvbmZp ZygpIC0gUmVjb25maWd1cmUgdGhlIGZpcm13YXJlCi0gKiBAbm46ICAgICAgTkZQIE5ldCBkZXZp Y2UgdG8gcmVjb25maWd1cmUKLSAqIEB1cGRhdGU6ICBUaGUgdmFsdWUgZm9yIHRoZSB1cGRhdGUg ZmllbGQgaW4gdGhlIEJBUiBjb25maWcKLSAqCi0gKiBXcml0ZSB0aGUgdXBkYXRlIHdvcmQgdG8g dGhlIEJBUiBhbmQgcGluZyB0aGUgcmVjb25maWcgcXVldWUuICBUaGUKLSAqIHBvbGwgdW50aWwg dGhlIGZpcm13YXJlIGhhcyBhY2tub3dsZWRnZWQgdGhlIHVwZGF0ZSBieSB6ZXJvaW5nIHRoZQot ICogdXBkYXRlIHdvcmQuCi0gKgotICogUmV0dXJuOiBOZWdhdGl2ZSBlcnJubyBvbiBlcnJvciwg MCBvbiBzdWNjZXNzCi0gKi8KLWludCBuZnBfbmV0X3JlY29uZmlnKHN0cnVjdCBuZnBfbmV0ICpu biwgdTMyIHVwZGF0ZSkKK3N0YXRpYyB2b2lkIG5mcF9uZXRfcmVjb25maWdfc3luY19lbnRlcihz dHJ1Y3QgbmZwX25ldCAqbm4pCiB7CiAJYm9vbCBjYW5jZWxsZWRfdGltZXIgPSBmYWxzZTsKIAl1 MzIgcHJlX3Bvc3RlZF9yZXF1ZXN0czsKLQlpbnQgcmV0OwogCiAJc3Bpbl9sb2NrX2JoKCZubi0+ cmVjb25maWdfbG9jayk7CiAKIAlubi0+cmVjb25maWdfc3luY19wcmVzZW50ID0gdHJ1ZTsKIAog CWlmIChubi0+cmVjb25maWdfdGltZXJfYWN0aXZlKSB7Ci0JCWRlbF90aW1lcigmbm4tPnJlY29u ZmlnX3RpbWVyKTsKIAkJbm4tPnJlY29uZmlnX3RpbWVyX2FjdGl2ZSA9IGZhbHNlOwogCQljYW5j ZWxsZWRfdGltZXIgPSB0cnVlOwogCX0KQEAgLTI1OCwxNCArMjQ1LDQzIEBAIGludCBuZnBfbmV0 X3JlY29uZmlnKHN0cnVjdCBuZnBfbmV0ICpubiwgdTMyIHVwZGF0ZSkKIAogCXNwaW5fdW5sb2Nr X2JoKCZubi0+cmVjb25maWdfbG9jayk7CiAKLQlpZiAoY2FuY2VsbGVkX3RpbWVyKQorCWlmIChj YW5jZWxsZWRfdGltZXIpIHsKKwkJZGVsX3RpbWVyX3N5bmMoJm5uLT5yZWNvbmZpZ190aW1lcik7 CiAJCW5mcF9uZXRfcmVjb25maWdfd2FpdChubiwgbm4tPnJlY29uZmlnX3RpbWVyLmV4cGlyZXMp OworCX0KIAogCS8qIFJ1biB0aGUgcG9zdGVkIHJlY29uZmlncyB3aGljaCB3ZXJlIGlzc3VlZCBi ZWZvcmUgd2Ugc3RhcnRlZCAqLwogCWlmIChwcmVfcG9zdGVkX3JlcXVlc3RzKSB7CiAJCW5mcF9u ZXRfcmVjb25maWdfc3RhcnQobm4sIHByZV9wb3N0ZWRfcmVxdWVzdHMpOwogCQluZnBfbmV0X3Jl Y29uZmlnX3dhaXQobm4sIGppZmZpZXMgKyBIWiAqIE5GUF9ORVRfUE9MTF9USU1FT1VUKTsKIAl9 Cit9CisKK3N0YXRpYyB2b2lkIG5mcF9uZXRfcmVjb25maWdfd2FpdF9wb3N0ZWQoc3RydWN0IG5m cF9uZXQgKm5uKQoreworCW5mcF9uZXRfcmVjb25maWdfc3luY19lbnRlcihubik7CisKKwlzcGlu X2xvY2tfYmgoJm5uLT5yZWNvbmZpZ19sb2NrKTsKKwlubi0+cmVjb25maWdfc3luY19wcmVzZW50 ID0gZmFsc2U7CisJc3Bpbl91bmxvY2tfYmgoJm5uLT5yZWNvbmZpZ19sb2NrKTsKK30KKworLyoq CisgKiBuZnBfbmV0X3JlY29uZmlnKCkgLSBSZWNvbmZpZ3VyZSB0aGUgZmlybXdhcmUKKyAqIEBu bjogICAgICBORlAgTmV0IGRldmljZSB0byByZWNvbmZpZ3VyZQorICogQHVwZGF0ZTogIFRoZSB2 YWx1ZSBmb3IgdGhlIHVwZGF0ZSBmaWVsZCBpbiB0aGUgQkFSIGNvbmZpZworICoKKyAqIFdyaXRl IHRoZSB1cGRhdGUgd29yZCB0byB0aGUgQkFSIGFuZCBwaW5nIHRoZSByZWNvbmZpZyBxdWV1ZS4g IFRoZQorICogcG9sbCB1bnRpbCB0aGUgZmlybXdhcmUgaGFzIGFja25vd2xlZGdlZCB0aGUgdXBk YXRlIGJ5IHplcm9pbmcgdGhlCisgKiB1cGRhdGUgd29yZC4KKyAqCisgKiBSZXR1cm46IE5lZ2F0 aXZlIGVycm5vIG9uIGVycm9yLCAwIG9uIHN1Y2Nlc3MKKyAqLworaW50IG5mcF9uZXRfcmVjb25m aWcoc3RydWN0IG5mcF9uZXQgKm5uLCB1MzIgdXBkYXRlKQoreworCWludCByZXQ7CisKKwluZnBf bmV0X3JlY29uZmlnX3N5bmNfZW50ZXIobm4pOwogCiAJbmZwX25ldF9yZWNvbmZpZ19zdGFydChu biwgdXBkYXRlKTsKIAlyZXQgPSBuZnBfbmV0X3JlY29uZmlnX3dhaXQobm4sIGppZmZpZXMgKyBI WiAqIE5GUF9ORVRfUE9MTF9USU1FT1VUKTsKQEAgLTM2MDksNiArMzYyNSw3IEBAIHN0cnVjdCBu ZnBfbmV0ICpuZnBfbmV0X2FsbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBib29sIG5lZWRzX25l dGRldiwKICAqLwogdm9pZCBuZnBfbmV0X2ZyZWUoc3RydWN0IG5mcF9uZXQgKm5uKQogeworCVdB Uk5fT04odGltZXJfcGVuZGluZygmbm4tPnJlY29uZmlnX3RpbWVyKSB8fCBubi0+cmVjb25maWdf cG9zdGVkKTsKIAlpZiAobm4tPmRwLm5ldGRldikKIAkJZnJlZV9uZXRkZXYobm4tPmRwLm5ldGRl dik7CiAJZWxzZQpAQCAtMzg5Myw0ICszOTEwLDUgQEAgdm9pZCBuZnBfbmV0X2NsZWFuKHN0cnVj dCBuZnBfbmV0ICpubikKIAkJcmV0dXJuOwogCiAJdW5yZWdpc3Rlcl9uZXRkZXYobm4tPmRwLm5l dGRldik7CisJbmZwX25ldF9yZWNvbmZpZ193YWl0X3Bvc3RlZChubik7CiB9Ci0tIAoyLjEzLjYK CgpGcm9tIDI2ZGEyM2ViMDUxMjQxNThmNjNlMzkwMGIwNzdjYzYwY2E0ZGQyYTEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0 ZTogTW9uLCAyNyBBdWcgMjAxOCAxODozODozMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzMvMzZd IHNjdHA6IGhvbGQgdHJhbnNwb3J0IGJlZm9yZSBhY2Nlc3NpbmcgaXRzIGFzb2MgaW4KIHNjdHBf dHJhbnNwb3J0X2dldF9uZXh0CgpbIFVwc3RyZWFtIGNvbW1pdCBiYWIxYmU3OWE1MTY5YWM3NDhk ODI5MmIyMGM4NmQ4NzQwMjJkN2JhIF0KCkFzIE1hcmNlbG8gbm90aWNlZCwgaW4gc2N0cF90cmFu c3BvcnRfZ2V0X25leHQsIGl0IGlzIGl0ZXJhdGluZyBvdmVyCnRyYW5zcG9ydHMgYnV0IHRoZW4g YWxzbyBhY2Nlc3NpbmcgdGhlIGFzc29jaWF0aW9uIGRpcmVjdGx5LCB3aXRob3V0CmNoZWNraW5n IGFueSByZWZjbnRzIGJlZm9yZSB0aGF0LCB3aGljaCBjYW4gY2F1c2UgYW4gdXNlLWFmdGVyLWZy ZWUKUmVhZC4KClNvIGZpeCBpdCBieSBob2xkaW5nIHRyYW5zcG9ydCBiZWZvcmUgYWNjZXNzaW5n IHRoZSBhc3NvY2lhdGlvbi4gV2l0aAp0aGF0LCBzY3RwX3RyYW5zcG9ydF9ob2xkIGNhbGxzIGNh biBiZSByZW1vdmVkIGluIHRoZSBsYXRlciBwbGFjZXMuCgpGaXhlczogNjI2ZDE2ZjUwZjM5ICgi c2N0cDogZXhwb3J0IHNvbWUgYXBpcyBvciB2YXJpYWJsZXMgZm9yIHNjdHBfZGlhZyBhbmQgcmV1 c2Ugc29tZSBmb3IgcHJvYyIpClJlcG9ydGVkLWJ5OiBzeXpib3QrZmU2MmEwYzlhYTZhODVjNmRl MTZAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVj aWVuLnhpbkBnbWFpbC5jb20+CkFja2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2 ZXIuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5l ckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9wcm9jLmMgICB8ICA0IC0tLS0KIG5ldC9zY3RwL3NvY2tl dC5jIHwgMjIgKysrKysrKysrKysrKysrLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNl cnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9wcm9jLmMg Yi9uZXQvc2N0cC9wcm9jLmMKaW5kZXggMTRhYjkzNThkNjYwLi5hNjQ0MjkyZjlmYWYgMTAwNjQ0 Ci0tLSBhL25ldC9zY3RwL3Byb2MuYworKysgYi9uZXQvc2N0cC9wcm9jLmMKQEAgLTI2MCw4ICsy NjAsNiBAQCBzdGF0aWMgaW50IHNjdHBfYXNzb2NzX3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAq c2VxLCB2b2lkICp2KQogCX0KIAogCXRyYW5zcG9ydCA9IChzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQg Kil2OwotCWlmICghc2N0cF90cmFuc3BvcnRfaG9sZCh0cmFuc3BvcnQpKQotCQlyZXR1cm4gMDsK IAlhc3NvYyA9IHRyYW5zcG9ydC0+YXNvYzsKIAllcGIgPSAmYXNzb2MtPmJhc2U7CiAJc2sgPSBl cGItPnNrOwpAQCAtMzE4LDggKzMxNiw2IEBAIHN0YXRpYyBpbnQgc2N0cF9yZW1hZGRyX3NlcV9z aG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KQogCX0KIAogCXRyYW5zcG9ydCA9IChz dHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKil2OwotCWlmICghc2N0cF90cmFuc3BvcnRfaG9sZCh0cmFu c3BvcnQpKQotCQlyZXR1cm4gMDsKIAlhc3NvYyA9IHRyYW5zcG9ydC0+YXNvYzsKIAogCWxpc3Rf Zm9yX2VhY2hfZW50cnlfcmN1KHRzcCwgJmFzc29jLT5wZWVyLnRyYW5zcG9ydF9hZGRyX2xpc3Qs CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4 IGNlNjIwZTg3ODUzOC4uNTBlZTA3Y2QyMGM0IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zb2NrZXQu YworKysgYi9uZXQvc2N0cC9zb2NrZXQuYwpAQCAtNDg4MSw5ICs0ODgxLDE0IEBAIHN0cnVjdCBz Y3RwX3RyYW5zcG9ydCAqc2N0cF90cmFuc3BvcnRfZ2V0X25leHQoc3RydWN0IG5ldCAqbmV0LAog CQkJYnJlYWs7CiAJCX0KIAorCQlpZiAoIXNjdHBfdHJhbnNwb3J0X2hvbGQodCkpCisJCQljb250 aW51ZTsKKwogCQlpZiAobmV0X2VxKHNvY2tfbmV0KHQtPmFzb2MtPmJhc2Uuc2spLCBuZXQpICYm CiAJCSAgICB0LT5hc29jLT5wZWVyLnByaW1hcnlfcGF0aCA9PSB0KQogCQkJYnJlYWs7CisKKwkJ c2N0cF90cmFuc3BvcnRfcHV0KHQpOwogCX0KIAogCXJldHVybiB0OwpAQCAtNDg5MywxMyArNDg5 OCwxOCBAQCBzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnNjdHBfdHJhbnNwb3J0X2dldF9pZHgoc3Ry dWN0IG5ldCAqbmV0LAogCQkJCQkgICAgICBzdHJ1Y3Qgcmhhc2h0YWJsZV9pdGVyICppdGVyLAog CQkJCQkgICAgICBpbnQgcG9zKQogewotCXZvaWQgKm9iaiA9IFNFUV9TVEFSVF9UT0tFTjsKKwlz dHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnQ7CiAKLQl3aGlsZSAocG9zICYmIChvYmogPSBzY3RwX3Ry YW5zcG9ydF9nZXRfbmV4dChuZXQsIGl0ZXIpKSAmJgotCSAgICAgICAhSVNfRVJSKG9iaikpCi0J CXBvcy0tOworCWlmICghcG9zKQorCQlyZXR1cm4gU0VRX1NUQVJUX1RPS0VOOwogCi0JcmV0dXJu IG9iajsKKwl3aGlsZSAoKHQgPSBzY3RwX3RyYW5zcG9ydF9nZXRfbmV4dChuZXQsIGl0ZXIpKSAm JiAhSVNfRVJSKHQpKSB7CisJCWlmICghLS1wb3MpCisJCQlicmVhazsKKwkJc2N0cF90cmFuc3Bv cnRfcHV0KHQpOworCX0KKworCXJldHVybiB0OwogfQogCiBpbnQgc2N0cF9mb3JfZWFjaF9lbmRw b2ludChpbnQgKCpjYikoc3RydWN0IHNjdHBfZW5kcG9pbnQgKiwgdm9pZCAqKSwKQEAgLTQ5NTgs OCArNDk2OCw2IEBAIGludCBzY3RwX2Zvcl9lYWNoX3RyYW5zcG9ydChpbnQgKCpjYikoc3RydWN0 IHNjdHBfdHJhbnNwb3J0ICosIHZvaWQgKiksCiAKIAl0c3AgPSBzY3RwX3RyYW5zcG9ydF9nZXRf aWR4KG5ldCwgJmh0aSwgKnBvcyArIDEpOwogCWZvciAoOyAhSVNfRVJSX09SX05VTEwodHNwKTsg dHNwID0gc2N0cF90cmFuc3BvcnRfZ2V0X25leHQobmV0LCAmaHRpKSkgewotCQlpZiAoIXNjdHBf dHJhbnNwb3J0X2hvbGQodHNwKSkKLQkJCWNvbnRpbnVlOwogCQlyZXQgPSBjYih0c3AsIHApOwog CQlpZiAocmV0KQogCQkJYnJlYWs7Ci0tIAoyLjEzLjYKCgpGcm9tIGJiMzI5MmFjMzg5OTM3MmFm Y2M0YTEyMDRiOGViODQ0YWE4Njc4MjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElk byBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KRGF0ZTogRnJpLCAyNCBBdWcgMjAxOCAx NTo0MTozNSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzQvMzZdIG1seHN3OiBzcGVjdHJ1bV9zd2l0 Y2hkZXY6IERvIG5vdCBsZWFrIFJJRnMgd2hlbgogcmVtb3ZpbmcgYnJpZGdlCgpbIFVwc3RyZWFt IGNvbW1pdCA2MDJiNzRlZGE4MTMxMWRiZGI1ZGJhYjA4YzMwZjc4OWY2NDhlYmRjIF0KCldoZW4g YSBicmlkZ2UgZGV2aWNlIGlzIHJlbW92ZWQsIHRoZSBWTEFOcyBhcmUgZmx1c2hlZCBmcm9tIGVh Y2gKY29uZmlndXJlZCBwb3J0LiBUaGlzIGNhdXNlcyB0aGUgcG9ydHMgdG8gZGVjcmVtZW50IHRo ZSByZWZlcmVuY2UgY291bnQKb24gdGhlIGFzc29jaWF0ZWQgRklEcyAoZmlsdGVyaW5nIGlkZW50 aWZpZXIpLiBJZiB0aGUgcmVmZXJlbmNlIGNvdW50IG9mCmEgRklEIGlzIDEgYW5kIGl0IGhhcyBh IFJJRiAocm91dGVyIGludGVyZmFjZSksIHRoZW4gdGhpcyBSSUYgaXMKZGVzdHJveWVkLgoKSG93 ZXZlciwgaWYgbm8gcG9ydCBpcyBtZW1iZXIgaW4gdGhlIFZMQU4gZm9yIHdoaWNoIGEgUklGIGV4 aXN0cywgdGhlbgp0aGUgUklGIHdpbGwgY29udGludWUgdG8gZXhpc3QgYWZ0ZXIgdGhlIHJlbW92 YWwgb2YgdGhlIGJyaWRnZS4gVG8KcmVwcm9kdWNlOgoKIyBpcCBsaW5rIGFkZCBuYW1lIGJyMCB0 eXBlIGJyaWRnZSB2bGFuX2ZpbHRlcmluZyAxCiMgaXAgbGluayBzZXQgZGV2IHN3cDEgbWFzdGVy IGJyMAojIGlwIGxpbmsgYWRkIGxpbmsgYnIwIG5hbWUgYnIwLjEwIHR5cGUgdmxhbiBpZCAxMAoj IGlwIGFkZHJlc3MgYWRkIDE5Mi4wLjIuMC8yNCBkZXYgYnIwLjEwCiMgaXAgbGluayBkZWwgZGV2 IGJyMAoKVGhlIFJJRiBhc3NvY2lhdGVkIHdpdGggYnIwLjEwIGNvbnRpbnVlcyB0byBleGlzdC4K CkZpeCB0aGlzIGJ5IGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgYnJpZGdlIGRldmljZSB1cHBlcnMg d2hlbiBpdCBpcwpkZXN0cm95ZWQgYW5kIHRha2UgY2FyZSBvZiBkZXN0cm95aW5nIHRoZWlyIFJJ RnMuCgpGaXhlczogOTlmNDRiYjM1MjdiICgibWx4c3c6IHNwZWN0cnVtOiBFbmFibGUgTDMgaW50 ZXJmYWNlcyBvbiB0b3Agb2YgYnJpZGdlIGRldmljZXMiKQpTaWduZWQtb2ZmLWJ5OiBJZG8gU2No aW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBQZXRyIE1hY2hhdGEgPHBl dHJtQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3Nw ZWN0cnVtLmggICAgICAgfCAgMiArKwogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9z cGVjdHJ1bV9yb3V0ZXIuYyAgICB8IDExICsrKysrKysrKysrCiAuLi4vbmV0L2V0aGVybmV0L21l bGxhbm94L21seHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jIHwgMjAgKysrKysrKysrKysrKysrKysr KysKIDMgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmggYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5oCmluZGV4IDRhNTE5ZDhlZGVjOC4uMzUw MGM3OWUyOWNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhz dy9zcGVjdHJ1bS5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3Nw ZWN0cnVtLmgKQEAgLTQzMyw2ICs0MzMsOCBAQCBtbHhzd19zcF9uZXRkZXZpY2VfaXBpcF91bF9l dmVudChzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwLAogdm9pZAogbWx4c3dfc3BfcG9ydF92bGFu X3JvdXRlcl9sZWF2ZShzdHJ1Y3QgbWx4c3dfc3BfcG9ydF92bGFuICptbHhzd19zcF9wb3J0X3Zs YW4pOwogdm9pZCBtbHhzd19zcF9yaWZfZGVzdHJveShzdHJ1Y3QgbWx4c3dfc3BfcmlmICpyaWYp Owordm9pZCBtbHhzd19zcF9yaWZfZGVzdHJveV9ieV9kZXYoc3RydWN0IG1seHN3X3NwICptbHhz d19zcCwKKwkJCQkgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiAKIC8qIHNwZWN0cnVtX2t2ZGwu YyAqLwogaW50IG1seHN3X3NwX2t2ZGxfaW5pdChzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVt X3JvdXRlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1f cm91dGVyLmMKaW5kZXggNzdiMmFkYjI5MzQxLi5jYjQzZDE3MDk3ZmEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jCkBA IC02MjI4LDYgKzYyMjgsMTcgQEAgdm9pZCBtbHhzd19zcF9yaWZfZGVzdHJveShzdHJ1Y3QgbWx4 c3dfc3BfcmlmICpyaWYpCiAJbWx4c3dfc3BfdnJfcHV0KG1seHN3X3NwLCB2cik7CiB9CiAKK3Zv aWQgbWx4c3dfc3BfcmlmX2Rlc3Ryb3lfYnlfZGV2KHN0cnVjdCBtbHhzd19zcCAqbWx4c3dfc3As CisJCQkJIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IG1seHN3X3NwX3JpZiAq cmlmOworCisJcmlmID0gbWx4c3dfc3BfcmlmX2ZpbmRfYnlfZGV2KG1seHN3X3NwLCBkZXYpOwor CWlmICghcmlmKQorCQlyZXR1cm47CisJbWx4c3dfc3BfcmlmX2Rlc3Ryb3kocmlmKTsKK30KKwog c3RhdGljIHZvaWQKIG1seHN3X3NwX3JpZl9zdWJwb3J0X3BhcmFtc19pbml0KHN0cnVjdCBtbHhz d19zcF9yaWZfcGFyYW1zICpwYXJhbXMsCiAJCQkJIHN0cnVjdCBtbHhzd19zcF9wb3J0X3ZsYW4g Km1seHN3X3NwX3BvcnRfdmxhbikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMKaW5kZXggZWVhNTY2NmE4NmIyLi42 Y2I0M2RkYTgyMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jCkBAIC0xNjAsNiArMTYwLDI0IEBAIGJvb2wg bWx4c3dfc3BfYnJpZGdlX2RldmljZV9pc19vZmZsb2FkZWQoY29uc3Qgc3RydWN0IG1seHN3X3Nw ICptbHhzd19zcCwKIAlyZXR1cm4gISFtbHhzd19zcF9icmlkZ2VfZGV2aWNlX2ZpbmQobWx4c3df c3AtPmJyaWRnZSwgYnJfZGV2KTsKIH0KIAorc3RhdGljIGludCBtbHhzd19zcF9icmlkZ2VfZGV2 aWNlX3VwcGVyX3JpZl9kZXN0cm95KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkJCQkgICAg dm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwID0gZGF0YTsKKworCW1s eHN3X3NwX3JpZl9kZXN0cm95X2J5X2RldihtbHhzd19zcCwgZGV2KTsKKwlyZXR1cm4gMDsKK30K Kworc3RhdGljIHZvaWQgbWx4c3dfc3BfYnJpZGdlX2RldmljZV9yaWZzX2Rlc3Ryb3koc3RydWN0 IG1seHN3X3NwICptbHhzd19zcCwKKwkJCQkJCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJ bWx4c3dfc3BfcmlmX2Rlc3Ryb3lfYnlfZGV2KG1seHN3X3NwLCBkZXYpOworCW5ldGRldl93YWxr X2FsbF91cHBlcl9kZXZfcmN1KGRldiwKKwkJCQkgICAgICBtbHhzd19zcF9icmlkZ2VfZGV2aWNl X3VwcGVyX3JpZl9kZXN0cm95LAorCQkJCSAgICAgIG1seHN3X3NwKTsKK30KKwogc3RhdGljIHN0 cnVjdCBtbHhzd19zcF9icmlkZ2VfZGV2aWNlICoKIG1seHN3X3NwX2JyaWRnZV9kZXZpY2VfY3Jl YXRlKHN0cnVjdCBtbHhzd19zcF9icmlkZ2UgKmJyaWRnZSwKIAkJCSAgICAgIHN0cnVjdCBuZXRf ZGV2aWNlICpicl9kZXYpCkBAIC0xOTgsNiArMjE2LDggQEAgc3RhdGljIHZvaWQKIG1seHN3X3Nw X2JyaWRnZV9kZXZpY2VfZGVzdHJveShzdHJ1Y3QgbWx4c3dfc3BfYnJpZGdlICpicmlkZ2UsCiAJ CQkgICAgICAgc3RydWN0IG1seHN3X3NwX2JyaWRnZV9kZXZpY2UgKmJyaWRnZV9kZXZpY2UpCiB7 CisJbWx4c3dfc3BfYnJpZGdlX2RldmljZV9yaWZzX2Rlc3Ryb3koYnJpZGdlLT5tbHhzd19zcCwK KwkJCQkJICAgIGJyaWRnZV9kZXZpY2UtPmRldik7CiAJbGlzdF9kZWwoJmJyaWRnZV9kZXZpY2Ut Pmxpc3QpOwogCWlmIChicmlkZ2VfZGV2aWNlLT52bGFuX2VuYWJsZWQpCiAJCWJyaWRnZS0+dmxh bl9lbmFibGVkX2V4aXN0cyA9IGZhbHNlOwotLSAKMi4xMy42CgoKRnJvbSAyZDIyMWU0NTA1OTM4 NTVmYWQ3NGYzMzhlNmFiZDU5OGJmZTJiZGIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpEYXRlOiBGcmksIDI0IEF1ZyAyMDE4 IDE2OjUzOjEzICswODAwClN1YmplY3Q6IFtQQVRDSCAzNS8zNl0gdmhvc3Q6IGNvcnJlY3RseSBj aGVjayB0aGUgaW92YSByYW5nZSB3aGVuIHdha2luZwogdmlydHF1ZXVlCgpbIFVwc3RyZWFtIGNv bW1pdCAyZDY2Zjk5N2YwNTQ1YzhmN2ZjNWNmMGI0OWFmMWRlY2IzNTE3MGU3IF0KCldlIGRvbid0 IHdha2V1cCB0aGUgdmlydHF1ZXVlIGlmIHRoZSBmaXJzdCBieXRlIG9mIHBlbmRpbmcgaW92YSBy YW5nZQppcyB0aGUgbGFzdCBieXRlIG9mIHRoZSByYW5nZSB3ZSBqdXN0IGdvdCB1cGRhdGVkLiBU aGlzIHdpbGwgbGVhZCBhCnZpcnRxdWV1ZSB0byB3YWl0IGZvciBJT1RMQiB1cGRhdGluZyBmb3Jl dmVyLiBGaXhpbmcgYnkgY29ycmVjdCB0aGUKY2hlY2sgYW5kIHdha2UgdXAgdGhlIHZpcnRxdWV1 ZSBpbiB0aGlzIGNhc2UuCgpGaXhlczogNmIxZTZjYzc4NTViICgidmhvc3Q6IG5ldyBkZXZpY2Ug SU9UTEIgQVBJIikKUmVwb3J0ZWQtYnk6IFBldGVyIFh1IDxwZXRlcnhAcmVkaGF0LmNvbT4KU2ln bmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6 IFBldGVyIFh1IDxwZXRlcnhAcmVkaGF0LmNvbT4KVGVzdGVkLWJ5OiBQZXRlciBYdSA8cGV0ZXJ4 QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy92aG9zdC92aG9zdC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aG9zdC92aG9zdC5j IGIvZHJpdmVycy92aG9zdC92aG9zdC5jCmluZGV4IGVkMzExNDU1NmZkYS4uNTYwZWQ4NzExNzA2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zob3N0L3Zob3N0LmMKKysrIGIvZHJpdmVycy92aG9zdC92 aG9zdC5jCkBAIC05NTEsNyArOTUxLDcgQEAgc3RhdGljIHZvaWQgdmhvc3RfaW90bGJfbm90aWZ5 X3ZxKHN0cnVjdCB2aG9zdF9kZXYgKmQsCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG5vZGUs IG4sICZkLT5wZW5kaW5nX2xpc3QsIG5vZGUpIHsKIAkJc3RydWN0IHZob3N0X2lvdGxiX21zZyAq dnFfbXNnID0gJm5vZGUtPm1zZy5pb3RsYjsKIAkJaWYgKG1zZy0+aW92YSA8PSB2cV9tc2ctPmlv dmEgJiYKLQkJICAgIG1zZy0+aW92YSArIG1zZy0+c2l6ZSAtIDEgPiB2cV9tc2ctPmlvdmEgJiYK KwkJICAgIG1zZy0+aW92YSArIG1zZy0+c2l6ZSAtIDEgPj0gdnFfbXNnLT5pb3ZhICYmCiAJCSAg ICB2cV9tc2ctPnR5cGUgPT0gVkhPU1RfSU9UTEJfTUlTUykgewogCQkJdmhvc3RfcG9sbF9xdWV1 ZSgmbm9kZS0+dnEtPnBvbGwpOwogCQkJbGlzdF9kZWwoJm5vZGUtPm5vZGUpOwotLSAKMi4xMy42 CgoKRnJvbSBmODgyYTAxYzM2ZWFhZTkzMDU2NGM0M2E3MjI4YmYyNjFhYjJiN2Q3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3Jr cGx1bWJlci5vcmc+CkRhdGU6IFR1ZSwgMjEgQXVnIDIwMTggMTA6NDA6MzggLTA3MDAKU3ViamVj dDogW1BBVENIIDM2LzM2XSBodl9uZXR2c2M6IGlnbm9yZSBkZXZpY2VzIHRoYXQgYXJlIG5vdCBQ Q0kKClsgVXBzdHJlYW0gY29tbWl0IGI5M2MxYjVhYzg2NDNjYzA4YmI3NGZhOGFlMjFkNmM2M2Rm Y2IyM2QgXQoKUmVnaXN0ZXJpbmcgYW5vdGhlciBkZXZpY2Ugd2l0aCBzYW1lIE1BQyBhZGRyZXNz IChzdWNoIGFzIFRBUCwgVlBOIG9yCkRQREsgS05JKSB3aWxsIGNvbmZ1c2UgdGhlIFZGIGF1dG9i aW5kaW5nIGxvZ2ljLiAgUmVzdHJpY3QgdGhlIHNlYXJjaAp0byBvbmx5IHJ1biBpZiB0aGUgZGV2 aWNlIGlzIGtub3duIHRvIGJlIGEgUENJIGF0dGFjaGVkIFZGLgoKRml4ZXM6IGU4ZmY0MGQ0YmZm MSAoImh2X25ldHZzYzogaW1wcm92ZSBWRiBkZXZpY2UgbWF0Y2hpbmciKQpTaWduZWQtb2ZmLWJ5 OiBTdGVwaGVuIEhlbW1pbmdlciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2h5cGVydi9uZXR2c2NfZHJ2LmMgfCA1ICsrKysrCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYyBiL2Ry aXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKaW5kZXggZGY2ZmFiNjI1OTIzLi42ZDc0Y2Rl NjgxNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKKysrIGIv ZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1 ZGUgPGxpbnV4L25ldGRldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luZXRkZXZpY2UuaD4KICNp bmNsdWRlIDxsaW51eC9ldGhlcmRldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2lu Y2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgogI2luY2x1ZGUgPGxpbnV4L2lmX3ZsYW4uaD4KICNpbmNs dWRlIDxsaW51eC9pbi5oPgpAQCAtMTkzOSwxMiArMTk0MCwxNiBAQCBzdGF0aWMgaW50IG5ldHZz Y19yZWdpc3Rlcl92ZihzdHJ1Y3QgbmV0X2RldmljZSAqdmZfbmV0ZGV2KQogewogCXN0cnVjdCBu ZXRfZGV2aWNlICpuZGV2OwogCXN0cnVjdCBuZXRfZGV2aWNlX2NvbnRleHQgKm5ldF9kZXZpY2Vf Y3R4OworCXN0cnVjdCBkZXZpY2UgKnBkZXYgPSB2Zl9uZXRkZXYtPmRldi5wYXJlbnQ7CiAJc3Ry dWN0IG5ldHZzY19kZXZpY2UgKm5ldHZzY19kZXY7CiAJaW50IHJldDsKIAogCWlmICh2Zl9uZXRk ZXYtPmFkZHJfbGVuICE9IEVUSF9BTEVOKQogCQlyZXR1cm4gTk9USUZZX0RPTkU7CiAKKwlpZiAo IXBkZXYgfHwgIWRldl9pc19wY2kocGRldikgfHwgZGV2X2lzX3BmKHBkZXYpKQorCQlyZXR1cm4g Tk9USUZZX0RPTkU7CisKIAkvKgogCSAqIFdlIHdpbGwgdXNlIHRoZSBNQUMgYWRkcmVzcyB0byBs b2NhdGUgdGhlIHN5bnRoZXRpYyBpbnRlcmZhY2UgdG8KIAkgKiBhc3NvY2lhdGUgd2l0aCB0aGUg VkYgaW50ZXJmYWNlLiBJZiB3ZSBkb24ndCBmaW5kIGEgbWF0Y2hpbmcKLS0gCjIuMTMuNgoK ----Next_Part(Mon_Sep_10_23_15_08_2018_191)----