From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:49034 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751125AbeDMRrS (ORCPT ); Fri, 13 Apr 2018 13:47:18 -0400 Received: from localhost (67.110.78.66.ptr.us.xo.net [67.110.78.66]) (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 6F52E1429F723 for ; Fri, 13 Apr 2018 10:47:17 -0700 (PDT) Date: Fri, 13 Apr 2018 13:47:16 -0400 (EDT) Message-Id: <20180413.134716.1235158056283203559.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(Fri_Apr_13_13_47_16_2018_047)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Fri_Apr_13_13_47_16_2018_047)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.4 and v4.16 -stable, respectively. Note, you may wish to take patch "vhost: fix vhost_vq_access_ok() log check" (upsteam d14d2b78090c7de0557362b26a4ca591aa6a9faa) for v4.15 as well because the change it is fixing went into v4.15.17 Thanks! ----Next_Part(Fri_Apr_13_13_47_16_2018_047)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_414.mbox" RnJvbSAxMmI1ZDczNWQ4NTc5ZDkxZmU5NjdiZWFmYzBlM2ZiMTc5MTUxODUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCYXNzZW0gQm91YmFrZXIgPGJhc3NlbS5ib3ViYWtlckBhY3Rp YS5mcj4KRGF0ZTogV2VkLCAxMSBBcHIgMjAxOCAxMzoxNTo1MyArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMS82XSBjZGNfZXRoZXI6IGZsYWcgdGhlIENpbnRlcmlvbiBBSFM4IG1vZGVtIGJ5IGdlbWFs dG8gYXMKIFdXQU4KClsgVXBzdHJlYW0gY29tbWl0IDUzNzY1MzQxZWU4MjFjMGEwZjFkZWM0MWFk Yzg5YzkwOTZhZDY5NGMgXQoKVGhlIENpbnRlcmlvbiBBSFM4IGlzIGEgM0cgZGV2aWNlIHdpdGgg b25lIGVtYmVkZGVkIFdXQU4gaW50ZXJmYWNlCnVzaW5nIGNkY19ldGhlciBhcyBhIGRyaXZlci4K ClRoZSBtb2RlbSBpcyBjb250cm9sbGVkIHZpYSBBVCBjb21tYW5kcyB0aHJvdWdoIHRoZSBleHBv c2VkIFRUWXMuCgpBVCtDR0RDT05UIHdyaXRlIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gYWN0aXZh dGUgb3IgZGVhY3RpdmF0ZSBhIFdXQU4KY29ubmVjdGlvbiBmb3IgYSBQRFAgY29udGV4dCBkZWZp bmVkIHdpdGggdGhlIHNhbWUgY29tbWFuZC4gVUUKc3VwcG9ydHMgb25lIFdXQU4gYWRhcHRlci4K ClNpZ25lZC1vZmYtYnk6IEJhc3NlbSBCb3ViYWtlciA8YmFzc2VtLmJvdWJha2VyQGFjdGlhLmZy PgpBY2tlZC1ieTogT2xpdmVyIE5ldWt1bSA8b25ldWt1bUBzdXNlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L3VzYi9jZGNfZXRoZXIuYyB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL2NkY19ldGhlci5jIGIvZHJpdmVycy9u ZXQvdXNiL2NkY19ldGhlci5jCmluZGV4IDA1ZGNhM2U1YzkzZC4uMTc4Yjk1NjUwMWE3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC91c2IvY2RjX2V0aGVyLmMKKysrIGIvZHJpdmVycy9uZXQvdXNi L2NkY19ldGhlci5jCkBAIC04OTUsNiArODk1LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNi X2RldmljZV9pZAlwcm9kdWN0c1tdID0gewogCQkJCSAgICAgIFVTQl9DRENfU1VCQ0xBU1NfRVRI RVJORVQsCiAJCQkJICAgICAgVVNCX0NEQ19QUk9UT19OT05FKSwKIAkuZHJpdmVyX2luZm8gPSAo dW5zaWduZWQgbG9uZykmd3dhbl9pbmZvLAorfSwgeworCS8qIENpbnRlcmlvbiBBSFMzIG1vZGVt IGJ5IEdFTUFMVE8gKi8KKwlVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDFlMmQsIDB4 MDA1NSwgVVNCX0NMQVNTX0NPTU0sCisJCQkJICAgICAgVVNCX0NEQ19TVUJDTEFTU19FVEhFUk5F VCwKKwkJCQkgICAgICBVU0JfQ0RDX1BST1RPX05PTkUpLAorCS5kcml2ZXJfaW5mbyA9ICh1bnNp Z25lZCBsb25nKSZ3d2FuX2luZm8sCiB9LCB7CiAJVVNCX0lOVEVSRkFDRV9JTkZPKFVTQl9DTEFT U19DT01NLCBVU0JfQ0RDX1NVQkNMQVNTX0VUSEVSTkVULAogCQkJVVNCX0NEQ19QUk9UT19OT05F KSwKLS0gCjIuMTQuMwoKCkZyb20gMmQxYjBkZWE4ZjJiODI4NjM5ZWFmYTEyMzg0NzY3YmMyOWJk ZTBhZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS2EtQ2hlb25nIFBvb24gPGthLWNo ZW9uZy5wb29uQG9yYWNsZS5jb20+CkRhdGU6IFdlZCwgMTEgQXByIDIwMTggMDA6NTc6MjUgLTA3 MDAKU3ViamVjdDogW1BBVENIIDIvNl0gcmRzOiBNUC1SRFMgbWF5IHVzZSBhbiBpbnZhbGlkIGNf cGF0aAoKWyBVcHN0cmVhbSBjb21taXQgYTQzY2NlZDlhMzQ4OTAxZjkwMTVmNDczMGI3MGI2OWU3 YzQxYTljOSBdCgpyZHNfc2VuZG1zZygpIGNhbGxzIHJkc19zZW5kX21wcmRzX2hhc2goKSB0byBm aW5kIGEgY19wYXRoIHRvIHVzZSB0bwpzZW5kIGEgbWVzc2FnZS4gIFN1cHBvc2UgdGhlIFJEUyBj b25uZWN0aW9uIGlzIG5vdCB5ZXQgdXAuICBJbgpyZHNfc2VuZF9tcHJkc19oYXNoKCksIGl0IGRv ZXMKCglpZiAoY29ubi0+Y19ucGF0aHMgPT0gMCkKCQl3YWl0X2V2ZW50X2ludGVycnVwdGlibGUo Y29ubi0+Y19oc193YWl0cSwKCQkJCQkgKGNvbm4tPmNfbnBhdGhzICE9IDApKTsKCklmIGl0IGlz IGludGVycnVwdGVkIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBpcyBzZXQgdXAsCnJkc19zZW5kX21w cmRzX2hhc2goKSB3aWxsIHJldHVybiBhIG5vbi16ZXJvIGhhc2ggdmFsdWUuICBIZW5jZQpyZHNf c2VuZG1zZygpIHdpbGwgdXNlIGEgbm9uLXplcm8gY19wYXRoIHRvIHNlbmQgdGhlIG1lc3NhZ2Uu ICBCdXQgaWYKdGhlIFJEUyBjb25uZWN0aW9uIGVuZHMgdXAgdG8gYmUgbm9uLU1QIGNhcGFibGUs IHRoZSBtZXNzYWdlIHdpbGwgYmUKbG9zdCBhcyBvbmx5IHRoZSB6ZXJvIGNfcGF0aCBjYW4gYmUg dXNlZC4KClNpZ25lZC1vZmYtYnk6IEthLUNoZW9uZyBQb29uIDxrYS1jaGVvbmcucG9vbkBvcmFj bGUuY29tPgpBY2tlZC1ieTogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRvc2guc2hpbGlta2FyQG9y YWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvcmRzL3NlbmQuYyB8IDE1ICsrKysrKysrKystLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L3Jkcy9zZW5kLmMgYi9uZXQvcmRzL3NlbmQuYwppbmRleCBmNzI0NjZjNjNmMGMuLjIzZjJkODFl Nzk2NyAxMDA2NDQKLS0tIGEvbmV0L3Jkcy9zZW5kLmMKKysrIGIvbmV0L3Jkcy9zZW5kLmMKQEAg LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDA2IE9yYWNsZS4gIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIDIwMTggT3JhY2xlIGFuZC9vciBp dHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIHNvZnR3YXJl IGlzIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYSBjaG9pY2Ugb2Ygb25lIG9mIHR3bwogICogbGlj ZW5zZXMuICBZb3UgbWF5IGNob29zZSB0byBiZSBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVQpAQCAtOTg2LDEwICs5ODYsMTUgQEAgc3RhdGljIGludCByZHNfc2VuZF9tcHJkc19o YXNoKHN0cnVjdCByZHNfc29jayAqcnMsIHN0cnVjdCByZHNfY29ubmVjdGlvbiAqY29ubikKIAlp ZiAoY29ubi0+Y19ucGF0aHMgPT0gMCAmJiBoYXNoICE9IDApIHsKIAkJcmRzX3NlbmRfcGluZyhj b25uLCAwKTsKIAotCQlpZiAoY29ubi0+Y19ucGF0aHMgPT0gMCkgewotCQkJd2FpdF9ldmVudF9p bnRlcnJ1cHRpYmxlKGNvbm4tPmNfaHNfd2FpdHEsCi0JCQkJCQkgKGNvbm4tPmNfbnBhdGhzICE9 IDApKTsKLQkJfQorCQkvKiBUaGUgdW5kZXJseWluZyBjb25uZWN0aW9uIGlzIG5vdCB1cCB5ZXQu ICBOZWVkIHRvIHdhaXQKKwkJICogdW50aWwgaXQgaXMgdXAgdG8gYmUgc3VyZSB0aGF0IHRoZSBu b24temVybyBjX3BhdGggY2FuIGJlCisJCSAqIHVzZWQuICBCdXQgaWYgd2UgYXJlIGludGVycnVw dGVkLCB3ZSBoYXZlIHRvIHVzZSB0aGUgemVybworCQkgKiBjX3BhdGggaW4gY2FzZSB0aGUgY29u bmVjdGlvbiBlbmRzIHVwIGJlaW5nIG5vbi1NUCBjYXBhYmxlLgorCQkgKi8KKwkJaWYgKGNvbm4t PmNfbnBhdGhzID09IDApCisJCQlpZiAod2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGNvbm4tPmNf aHNfd2FpdHEsCisJCQkJCQkgICAgIGNvbm4tPmNfbnBhdGhzICE9IDApKQorCQkJCWhhc2ggPSAw OwogCQlpZiAoY29ubi0+Y19ucGF0aHMgPT0gMSkKIAkJCWhhc2ggPSAwOwogCX0KLS0gCjIuMTQu MwoKCkZyb20gZmU3ZTI3MjcyN2MzYmMyMTA4YzZkMzJhMDUxMzA2NmNkZjliNjQ5ZiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGVqYXN3aSBUYW5pa2VsbGEgPHRlamFzd2l0QGNvZGVh dXJvcmEub3JnPgpEYXRlOiBXZWQsIDExIEFwciAyMDE4IDE2OjM0OjQ3ICswNTMwClN1YmplY3Q6 IFtQQVRDSCAzLzZdIHNsaXA6IENoZWNrIGlmIHJzdGF0ZSBpcyBpbml0aWFsaXplZCBiZWZvcmUg dW5jb21wcmVzc2luZwoKWyBVcHN0cmVhbSBjb21taXQgM2YwMWRkYjk2MmRjNTA2OTE2YzI0M2Y5 NTI0ZThiZWY5NzExOWI3NyBdCgpPbiByZWNlaXZpbmcgYSBwYWNrZXQgdGhlIHN0YXRlIGluZGV4 IHBvaW50cyB0byB0aGUgcnN0YXRlIHdoaWNoIG11c3QgYmUKdXNlZCB0byBmaWxsIHVwIElQIGFu ZCBUQ1AgaGVhZGVycy4gQnV0IGlmIHRoZSBzdGF0ZSBpbmRleCBwb2ludHMgdG8gYQpyc3RhdGUg d2hpY2ggaXMgdW5pdGlhbGl6ZWQsIGkuZS4gZmlsbGVkIHdpdGggemVyb3MsIGl0IGdldHMgc3R1 Y2sgaW4gYW4KaW5maW5pdGUgbG9vcCBpbnNpZGUgaXBfZmFzdF9jc3VtIHRyeWluZyB0byBjb21w dXRlIHRoZSBpcCBjaGVjc3VtIG9mIGEKaGVhZGVyIHdpdGggemVybyBsZW5ndGguCgo4OS42NjY5 NTM6ICAgPDI+IFs8ZmZmZmZmOWRkM2U5NGQzOD5dIHNsaGNfdW5jb21wcmVzcysweDQ2NC8weDQ2 OAo4OS42NjY5NjU6ICAgPDI+IFs8ZmZmZmZmOWRkM2U4N2Q4OD5dIHBwcF9yZWNlaXZlX25vbm1w X2ZyYW1lKzB4M2I0LzB4NjVjCjg5LjY2Njk3ODogICA8Mj4gWzxmZmZmZmY5ZGQzZTg5ZGQ0Pl0g cHBwX3JlY2VpdmVfZnJhbWUrMHg2NC8weDdlMAo4OS42NjY5OTE6ICAgPDI+IFs8ZmZmZmZmOWRk M2U4YTcwOD5dIHBwcF9pbnB1dCsweDEwNC8weDE5OAo4OS42NjcwMDU6ICAgPDI+IFs8ZmZmZmZm OWRkM2U5Mzg2OD5dIHBwcG9wbnNfcmVjdl9jb3JlKzB4MjM4LzB4MzcwCjg5LjY2NzAyNzogICA8 Mj4gWzxmZmZmZmY5ZGQ0NDI4ZmM4Pl0gX19za19yZWNlaXZlX3NrYisweGRjLzB4MjUwCjg5LjY2 NzA0MDogICA8Mj4gWzxmZmZmZmY5ZGQzZTkzOWU0Pl0gcHBwb3Buc19yZWN2KzB4NDQvMHg2MAo4 OS42NjcwNTM6ICAgPDI+IFs8ZmZmZmZmOWRkNDQyNjg0OD5dIF9fc29ja19xdWV1ZV9yY3Zfc2ti KzB4MTZjLzB4MjRjCjg5LjY2NzA2NTogICA8Mj4gWzxmZmZmZmY5ZGQ0NDI2OTU0Pl0gc29ja19x dWV1ZV9yY3Zfc2tiKzB4MmMvMHgzOAo4OS42NjcwODU6ICAgPDI+IFs8ZmZmZmZmOWRkNDRmNzM1 OD5dIHJhd19yY3YrMHgxMjQvMHgxNTQKODkuNjY3MDk4OiAgIDwyPiBbPGZmZmZmZjlkZDQ0Zjc1 Njg+XSByYXdfbG9jYWxfZGVsaXZlcisweDFlMC8weDIyYwo4OS42NjcxMTc6ICAgPDI+IFs8ZmZm ZmZmOWRkNDRjOGJhMD5dIGlwX2xvY2FsX2RlbGl2ZXJfZmluaXNoKzB4NzAvMHgyNGMKODkuNjY3 MTMxOiAgIDwyPiBbPGZmZmZmZjlkZDQ0YzkyZjQ+XSBpcF9sb2NhbF9kZWxpdmVyKzB4MTAwLzB4 MTBjCgouL3NjcmlwdHMvZmFkZHIybGluZSB2bWxpbnV4IHNsaGNfdW5jb21wcmVzcysweDQ2NC8w eDQ2OCBvdXRwdXQ6CiBpcF9mYXN0X2NzdW0gYXQgYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9jaGVj a3N1bS5oOjQwCiAoaW5saW5lZCBieSkgc2xoY191bmNvbXByZXNzIGF0IGRyaXZlcnMvbmV0L3Ns aXAvc2xoYy5jOjYxNQoKQWRkaW5nIGEgdmFyaWFibGUgdG8gaW5kaWNhdGUgaWYgdGhlIGN1cnJl bnQgcnN0YXRlIGlzIGluaXRpYWxpemVkLiBJZgpzdWNoIGEgcGFja2V0IGFycml2ZXMsIG1vdmUg dG8gdG9zcyBzdGF0ZS4KClNpZ25lZC1vZmYtYnk6IFRlamFzd2kgVGFuaWtlbGxhIDx0ZWphc3dp dEBjb2RlYXVyb3JhLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3NsaXAvc2xoYy5jIHwgNSArKysrKwogaW5j bHVkZS9uZXQvc2xoY192ai5oICAgfCAxICsKIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc2xpcC9zbGhjLmMgYi9kcml2ZXJzL25ldC9z bGlwL3NsaGMuYwppbmRleCA1NzgyNzMzOTU5ZjAuLmY0ZTkzZjVmYzIwNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvc2xpcC9zbGhjLmMKKysrIGIvZHJpdmVycy9uZXQvc2xpcC9zbGhjLmMKQEAg LTUwOSw2ICs1MDksMTAgQEAgc2xoY191bmNvbXByZXNzKHN0cnVjdCBzbGNvbXByZXNzICpjb21w LCB1bnNpZ25lZCBjaGFyICppY3AsIGludCBpc2l6ZSkKIAkJaWYoeCA8IDAgfHwgeCA+IGNvbXAt PnJzbG90X2xpbWl0KQogCQkJZ290byBiYWQ7CiAKKwkJLyogQ2hlY2sgaWYgdGhlIGNzdGF0ZSBp cyBpbml0aWFsaXplZCAqLworCQlpZiAoIWNvbXAtPnJzdGF0ZVt4XS5pbml0aWFsaXplZCkKKwkJ CWdvdG8gYmFkOworCiAJCWNvbXAtPmZsYWdzICY9fiBTTEZfVE9TUzsKIAkJY29tcC0+cmVjdl9j dXJyZW50ID0geDsKIAl9IGVsc2UgewpAQCAtNjczLDYgKzY3Nyw3IEBAIHNsaGNfcmVtZW1iZXIo c3RydWN0IHNsY29tcHJlc3MgKmNvbXAsIHVuc2lnbmVkIGNoYXIgKmljcCwgaW50IGlzaXplKQog CWlmIChjcy0+Y3NfdGNwLmRvZmYgPiA1KQogCSAgbWVtY3B5KGNzLT5jc190Y3BvcHQsIGljcCAr IGlobCo0ICsgc2l6ZW9mKHN0cnVjdCB0Y3BoZHIpLCAoY3MtPmNzX3RjcC5kb2ZmIC0gNSkgKiA0 KTsKIAljcy0+Y3NfaHNpemUgPSBpaGwqMiArIGNzLT5jc190Y3AuZG9mZioyOworCWNzLT5pbml0 aWFsaXplZCA9IHRydWU7CiAJLyogUHV0IGhlYWRlcnMgYmFjayBvbiBwYWNrZXQKIAkgKiBOZWl0 aGVyIGhlYWRlciBjaGVja3N1bSBpcyByZWNhbGN1bGF0ZWQKIAkgKi8KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbmV0L3NsaGNfdmouaCBiL2luY2x1ZGUvbmV0L3NsaGNfdmouaAppbmRleCA4NzE2ZDU5 NDJiNjUuLjhmY2Y4OTA4YTY5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2xoY192ai5oCisr KyBiL2luY2x1ZGUvbmV0L3NsaGNfdmouaApAQCAtMTI3LDYgKzEyNyw3IEBAIHR5cGVkZWYgX191 MzIgaW50MzI7CiAgKi8KIHN0cnVjdCBjc3RhdGUgewogCWJ5dGVfdAljc190aGlzOwkvKiBjb25u ZWN0aW9uIGlkIG51bWJlciAoeG1pdCkgKi8KKwlib29sCWluaXRpYWxpemVkOwkvKiB0cnVlIGlm IGluaXRpYWxpemVkICovCiAJc3RydWN0IGNzdGF0ZSAqbmV4dDsJLyogbmV4dCBpbiByaW5nICh4 bWl0KSAqLwogCXN0cnVjdCBpcGhkciBjc19pcDsJLyogaXAvdGNwIGhkciBmcm9tIG1vc3QgcmVj ZW50IHBhY2tldCAqLwogCXN0cnVjdCB0Y3BoZHIgY3NfdGNwOwotLSAKMi4xNC4zCgoKRnJvbSA5 MWQ4ZTg5MDg5M2ExMmQ1OGUyYTYxYWY2Mzc5OTliMGU5NjhkNjNkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTdGVmYW4gSGFqbm9jemkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+CkRhdGU6 IFdlZCwgMTEgQXByIDIwMTggMTA6MzU6NDAgKzA4MDAKU3ViamVjdDogW1BBVENIIDQvNl0gdmhv c3Q6IGZpeCB2aG9zdF92cV9hY2Nlc3Nfb2soKSBsb2cgY2hlY2sKClsgVXBzdHJlYW0gY29tbWl0 IGQxNGQyYjc4MDkwYzdkZTA1NTczNjJiMjZhNGNhNTkxYWE2YTlmYWEgXQoKQ29tbWl0IGQ2NTAy NmM2YzYyZTdkOTYxNmM4Y2ViNWE1M2I2OGJjZGMwNTA1MjUgKCJ2aG9zdDogdmFsaWRhdGUgbG9n CndoZW4gSU9UTEIgaXMgZW5hYmxlZCIpIGludHJvZHVjZWQgYSByZWdyZXNzaW9uLiAgVGhlIGxv Z2ljIHdhcwpvcmlnaW5hbGx5OgoKICBpZiAodnEtPmlvdGxiKQogICAgICByZXR1cm4gMTsKICBy ZXR1cm4gQSAmJiBCOwoKQWZ0ZXIgdGhlIHBhdGNoIHRoZSBzaG9ydC1jaXJjdWl0IGxvZ2ljIGZv ciBBIHdhcyBpbnZlcnRlZDoKCiAgaWYgKEEgfHwgdnEtPmlvdGxiKQogICAgICByZXR1cm4gQTsK ICByZXR1cm4gQjsKClRoaXMgcGF0Y2ggZml4ZXMgdGhlIHJlZ3Jlc3Npb24gYnkgcmV3cml0aW5n IHRoZSBjaGVja3MgaW4gdGhlIG9idmlvdXMKd2F5LCBubyBsb25nZXIgcmV0dXJuaW5nIEEgd2hl biB2cS0+aW90bGIgaXMgbm9uLU5VTEwgKHdoaWNoIGlzIGhhcmQgdG8KdW5kZXJzdGFuZCkuCgpS ZXBvcnRlZC1ieTogc3l6Ym90KzY1YTg0ZGRlMDIxNGIwMzg3Y2NkQHN5emthbGxlci5hcHBzcG90 bWFpbC5jb20KQ2M6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IFN0ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1pY2hh ZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3Zob3N0L3Zob3N0LmMgfCA4 ICsrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYyBiL2RyaXZlcnMvdmhvc3Qvdmhv c3QuYwppbmRleCBjNjkyZTBiMTMyNDIuLjQwNTUyYTA0M2M4NiAxMDA2NDQKLS0tIGEvZHJpdmVy cy92aG9zdC92aG9zdC5jCisrKyBiL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYwpAQCAtMTI1MiwxMCAr MTI1MiwxMiBAQCBzdGF0aWMgaW50IHZxX2xvZ19hY2Nlc3Nfb2soc3RydWN0IHZob3N0X3ZpcnRx dWV1ZSAqdnEsCiAvKiBDYWxsZXIgc2hvdWxkIGhhdmUgdnEgbXV0ZXggYW5kIGRldmljZSBtdXRl eCAqLwogaW50IHZob3N0X3ZxX2FjY2Vzc19vayhzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSkK IHsKLQlpbnQgcmV0ID0gdnFfbG9nX2FjY2Vzc19vayh2cSwgdnEtPmxvZ19iYXNlKTsKKwlpZiAo IXZxX2xvZ19hY2Nlc3Nfb2sodnEsIHZxLT5sb2dfYmFzZSkpCisJCXJldHVybiAwOwogCi0JaWYg KHJldCB8fCB2cS0+aW90bGIpCi0JCXJldHVybiByZXQ7CisJLyogQWNjZXNzIHZhbGlkYXRpb24g b2NjdXJzIGF0IHByZWZldGNoIHRpbWUgd2l0aCBJT1RMQiAqLworCWlmICh2cS0+aW90bGIpCisJ CXJldHVybiAxOwogCiAJcmV0dXJuIHZxX2FjY2Vzc19vayh2cSwgdnEtPm51bSwgdnEtPmRlc2Ms IHZxLT5hdmFpbCwgdnEtPnVzZWQpOwogfQotLSAKMi4xNC4zCgoKRnJvbSBmODgyMTZkOTdlMzA1 YzkyMGY4YWUxYTkzZGU1ZmE2ZDFmYWYzZWI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwgMTEgQXByIDIw MTggMTU6MzA6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDUvNl0gdmhvc3Q6IEZpeCB2aG9zdF9j b3B5X3RvX3VzZXIoKQoKWyBVcHN0cmVhbSBjb21taXQgN2NlZDZjOThjN2FiN2ExZjY3NDM5MzFl Mjg2NzFiODMzYWY3OWIxZSBdCgp2aG9zdF9jb3B5X3RvX3VzZXIgaXMgdXNlZCB0byBjb3B5IHZy aW5nIHVzZWQgZWxlbWVudHMgdG8gdXNlcnNwYWNlLgpXZSBzaG91bGQgdXNlIFZIT1NUX0FERFJf VVNFRCBpbnN0ZWFkIG9mIFZIT1NUX0FERFJfREVTQy4KCkZpeGVzOiBmODg5NDkxMzgwNTggKCJ2 aG9zdDogaW50cm9kdWNlIE8oMSkgdnEgbWV0YWRhdGEgY2FjaGUiKQpTaWduZWQtb2ZmLWJ5OiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBKYXNvbiBXYW5nIDxq YXNvd2FuZ0ByZWRoYXQuY29tPgpBY2tlZC1ieTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvdmhvc3Qvdmhvc3QuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qv dmhvc3QuYyBiL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYwppbmRleCA0MDU1MmEwNDNjODYuLjhlM2Nh NDQwMDc2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aG9zdC92aG9zdC5jCisrKyBiL2RyaXZlcnMv dmhvc3Qvdmhvc3QuYwpAQCAtNzU2LDcgKzc1Niw3IEBAIHN0YXRpYyBpbnQgdmhvc3RfY29weV90 b191c2VyKHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxLCB2b2lkIF9fdXNlciAqdG8sCiAJCXN0 cnVjdCBpb3ZfaXRlciB0OwogCQl2b2lkIF9fdXNlciAqdWFkZHIgPSB2aG9zdF92cV9tZXRhX2Zl dGNoKHZxLAogCQkJCSAgICAgKHU2NCkodWludHB0cl90KXRvLCBzaXplLAotCQkJCSAgICAgVkhP U1RfQUREUl9ERVNDKTsKKwkJCQkgICAgIFZIT1NUX0FERFJfVVNFRCk7CiAKIAkJaWYgKHVhZGRy KQogCQkJcmV0dXJuIF9fY29weV90b191c2VyKHVhZGRyLCBmcm9tLCBzaXplKTsKLS0gCjIuMTQu MwoKCkZyb20gNDgyZjljZTQ0Mzk0ZmMyZjI5YTdkMTkwNWQ0ODdmM2NkNzVmNDY3OCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGhpbCBFbHdlbGwgPHBoaWxAcmFzcGJlcnJ5cGkub3Jn PgpEYXRlOiBXZWQsIDExIEFwciAyMDE4IDEwOjU5OjE3ICswMTAwClN1YmplY3Q6IFtQQVRDSCA2 LzZdIGxhbjc4eHg6IENvcnJlY3RseSBpbmRpY2F0ZSBpbnZhbGlkIE9UUAoKWyBVcHN0cmVhbSBj b21taXQgNGJmYzMzODA3YTlhMDI3NjRiZGQxZTQyZTc5NGIzYjQwMTI0MGYyNyBdCgpsYW43OHh4 X3JlYWRfb3RwIHRyaWVzIHRvIHJldHVybiAtRUlOVkFMIGluIHRoZSBldmVudCBvZiBpbnZhbGlk IE9UUApjb250ZW50LCBidXQgdGhlIHZhbHVlIGdldHMgb3ZlcndyaXR0ZW4gYmVmb3JlIGl0IGlz IHJldHVybmVkIGFuZCB0aGUKcmVhZCBnb2VzIGFoZWFkIGFueXdheS4gTWFrZSB0aGUgcmVhZCBj b25kaXRpb25hbCBhcyBpdCBzaG91bGQgYmUKYW5kIHByZXNlcnZlIHRoZSBlcnJvciBjb2RlLgoK Rml4ZXM6IDU1ZDdkZTlkZTZjMyAoIk1pY3JvY2hpcCdzIExBTjc4MDAgZmFtaWx5IFVTQiAyLzMg dG8gMTAvMTAwLzEwMDAgRXRoZXJuZXQgZGV2aWNlIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IFBo aWwgRWx3ZWxsIDxwaGlsQHJhc3BiZXJyeXBpLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9sYW43OHh4 LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMgYi9kcml2ZXJzL25ldC91 c2IvbGFuNzh4eC5jCmluZGV4IDg5ZDgyYzRlZThkZi4uMWZiNDY0ODM3YjNlIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9sYW43OHh4 LmMKQEAgLTkyOCw3ICs5MjgsOCBAQCBzdGF0aWMgaW50IGxhbjc4eHhfcmVhZF9vdHAoc3RydWN0 IGxhbjc4eHhfbmV0ICpkZXYsIHUzMiBvZmZzZXQsCiAJCQlvZmZzZXQgKz0gMHgxMDA7CiAJCWVs c2UKIAkJCXJldCA9IC1FSU5WQUw7Ci0JCXJldCA9IGxhbjc4eHhfcmVhZF9yYXdfb3RwKGRldiwg b2Zmc2V0LCBsZW5ndGgsIGRhdGEpOworCQlpZiAoIXJldCkKKwkJCXJldCA9IGxhbjc4eHhfcmVh ZF9yYXdfb3RwKGRldiwgb2Zmc2V0LCBsZW5ndGgsIGRhdGEpOwogCX0KIAogCXJldHVybiByZXQ7 Ci0tIAoyLjE0LjMKCg== ----Next_Part(Fri_Apr_13_13_47_16_2018_047)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_416.mbox" RnJvbSA4YjgyNjY1Yjk2OTE2ZTY0YzA1NTU5MTRhNDY1YWRjZjdjNDczYmVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCYXNzZW0gQm91YmFrZXIgPGJhc3NlbS5ib3ViYWtlckBhY3Rp YS5mcj4KRGF0ZTogV2VkLCAxMSBBcHIgMjAxOCAxMzoxNTo1MyArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMS85XSBjZGNfZXRoZXI6IGZsYWcgdGhlIENpbnRlcmlvbiBBSFM4IG1vZGVtIGJ5IGdlbWFs dG8gYXMKIFdXQU4KClsgVXBzdHJlYW0gY29tbWl0IDUzNzY1MzQxZWU4MjFjMGEwZjFkZWM0MWFk Yzg5YzkwOTZhZDY5NGMgXQoKVGhlIENpbnRlcmlvbiBBSFM4IGlzIGEgM0cgZGV2aWNlIHdpdGgg b25lIGVtYmVkZGVkIFdXQU4gaW50ZXJmYWNlCnVzaW5nIGNkY19ldGhlciBhcyBhIGRyaXZlci4K ClRoZSBtb2RlbSBpcyBjb250cm9sbGVkIHZpYSBBVCBjb21tYW5kcyB0aHJvdWdoIHRoZSBleHBv c2VkIFRUWXMuCgpBVCtDR0RDT05UIHdyaXRlIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gYWN0aXZh dGUgb3IgZGVhY3RpdmF0ZSBhIFdXQU4KY29ubmVjdGlvbiBmb3IgYSBQRFAgY29udGV4dCBkZWZp bmVkIHdpdGggdGhlIHNhbWUgY29tbWFuZC4gVUUKc3VwcG9ydHMgb25lIFdXQU4gYWRhcHRlci4K ClNpZ25lZC1vZmYtYnk6IEJhc3NlbSBCb3ViYWtlciA8YmFzc2VtLmJvdWJha2VyQGFjdGlhLmZy PgpBY2tlZC1ieTogT2xpdmVyIE5ldWt1bSA8b25ldWt1bUBzdXNlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L3VzYi9jZGNfZXRoZXIuYyB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL2NkY19ldGhlci5jIGIvZHJpdmVycy9u ZXQvdXNiL2NkY19ldGhlci5jCmluZGV4IGZmZjRiMTNlZWNlMi4uNWM0MmNmODFhMDhiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC91c2IvY2RjX2V0aGVyLmMKKysrIGIvZHJpdmVycy9uZXQvdXNi L2NkY19ldGhlci5jCkBAIC05MDEsNiArOTAxLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNi X2RldmljZV9pZAlwcm9kdWN0c1tdID0gewogCQkJCSAgICAgIFVTQl9DRENfU1VCQ0xBU1NfRVRI RVJORVQsCiAJCQkJICAgICAgVVNCX0NEQ19QUk9UT19OT05FKSwKIAkuZHJpdmVyX2luZm8gPSAo dW5zaWduZWQgbG9uZykmd3dhbl9pbmZvLAorfSwgeworCS8qIENpbnRlcmlvbiBBSFMzIG1vZGVt IGJ5IEdFTUFMVE8gKi8KKwlVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDFlMmQsIDB4 MDA1NSwgVVNCX0NMQVNTX0NPTU0sCisJCQkJICAgICAgVVNCX0NEQ19TVUJDTEFTU19FVEhFUk5F VCwKKwkJCQkgICAgICBVU0JfQ0RDX1BST1RPX05PTkUpLAorCS5kcml2ZXJfaW5mbyA9ICh1bnNp Z25lZCBsb25nKSZ3d2FuX2luZm8sCiB9LCB7CiAJVVNCX0lOVEVSRkFDRV9JTkZPKFVTQl9DTEFT U19DT01NLCBVU0JfQ0RDX1NVQkNMQVNTX0VUSEVSTkVULAogCQkJVVNCX0NEQ19QUk9UT19OT05F KSwKLS0gCjIuMTQuMwoKCkZyb20gMTA3Y2ExYzFlYzY2OGQ2MmQ0NDY5ODMzNzQ0MTIzMjIzNzIw M2MxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS2EtQ2hlb25nIFBvb24gPGthLWNo ZW9uZy5wb29uQG9yYWNsZS5jb20+CkRhdGU6IFdlZCwgMTEgQXByIDIwMTggMDA6NTc6MjUgLTA3 MDAKU3ViamVjdDogW1BBVENIIDIvOV0gcmRzOiBNUC1SRFMgbWF5IHVzZSBhbiBpbnZhbGlkIGNf cGF0aAoKWyBVcHN0cmVhbSBjb21taXQgYTQzY2NlZDlhMzQ4OTAxZjkwMTVmNDczMGI3MGI2OWU3 YzQxYTljOSBdCgpyZHNfc2VuZG1zZygpIGNhbGxzIHJkc19zZW5kX21wcmRzX2hhc2goKSB0byBm aW5kIGEgY19wYXRoIHRvIHVzZSB0bwpzZW5kIGEgbWVzc2FnZS4gIFN1cHBvc2UgdGhlIFJEUyBj b25uZWN0aW9uIGlzIG5vdCB5ZXQgdXAuICBJbgpyZHNfc2VuZF9tcHJkc19oYXNoKCksIGl0IGRv ZXMKCglpZiAoY29ubi0+Y19ucGF0aHMgPT0gMCkKCQl3YWl0X2V2ZW50X2ludGVycnVwdGlibGUo Y29ubi0+Y19oc193YWl0cSwKCQkJCQkgKGNvbm4tPmNfbnBhdGhzICE9IDApKTsKCklmIGl0IGlz IGludGVycnVwdGVkIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBpcyBzZXQgdXAsCnJkc19zZW5kX21w cmRzX2hhc2goKSB3aWxsIHJldHVybiBhIG5vbi16ZXJvIGhhc2ggdmFsdWUuICBIZW5jZQpyZHNf c2VuZG1zZygpIHdpbGwgdXNlIGEgbm9uLXplcm8gY19wYXRoIHRvIHNlbmQgdGhlIG1lc3NhZ2Uu ICBCdXQgaWYKdGhlIFJEUyBjb25uZWN0aW9uIGVuZHMgdXAgdG8gYmUgbm9uLU1QIGNhcGFibGUs IHRoZSBtZXNzYWdlIHdpbGwgYmUKbG9zdCBhcyBvbmx5IHRoZSB6ZXJvIGNfcGF0aCBjYW4gYmUg dXNlZC4KClNpZ25lZC1vZmYtYnk6IEthLUNoZW9uZyBQb29uIDxrYS1jaGVvbmcucG9vbkBvcmFj bGUuY29tPgpBY2tlZC1ieTogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRvc2guc2hpbGlta2FyQG9y YWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvcmRzL3NlbmQuYyB8IDE1ICsrKysrKysrKystLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L3Jkcy9zZW5kLmMgYi9uZXQvcmRzL3NlbmQuYwppbmRleCBiMWIwMDIyYjgzNzAuLjg1NzM0ZTVh MDE4ZSAxMDA2NDQKLS0tIGEvbmV0L3Jkcy9zZW5kLmMKKysrIGIvbmV0L3Jkcy9zZW5kLmMKQEAg LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDA2IE9yYWNsZS4gIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIDIwMTggT3JhY2xlIGFuZC9vciBp dHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIHNvZnR3YXJl IGlzIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYSBjaG9pY2Ugb2Ygb25lIG9mIHR3bwogICogbGlj ZW5zZXMuICBZb3UgbWF5IGNob29zZSB0byBiZSBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVQpAQCAtOTk3LDEwICs5OTcsMTUgQEAgc3RhdGljIGludCByZHNfc2VuZF9tcHJkc19o YXNoKHN0cnVjdCByZHNfc29jayAqcnMsIHN0cnVjdCByZHNfY29ubmVjdGlvbiAqY29ubikKIAlp ZiAoY29ubi0+Y19ucGF0aHMgPT0gMCAmJiBoYXNoICE9IDApIHsKIAkJcmRzX3NlbmRfcGluZyhj b25uLCAwKTsKIAotCQlpZiAoY29ubi0+Y19ucGF0aHMgPT0gMCkgewotCQkJd2FpdF9ldmVudF9p bnRlcnJ1cHRpYmxlKGNvbm4tPmNfaHNfd2FpdHEsCi0JCQkJCQkgKGNvbm4tPmNfbnBhdGhzICE9 IDApKTsKLQkJfQorCQkvKiBUaGUgdW5kZXJseWluZyBjb25uZWN0aW9uIGlzIG5vdCB1cCB5ZXQu ICBOZWVkIHRvIHdhaXQKKwkJICogdW50aWwgaXQgaXMgdXAgdG8gYmUgc3VyZSB0aGF0IHRoZSBu b24temVybyBjX3BhdGggY2FuIGJlCisJCSAqIHVzZWQuICBCdXQgaWYgd2UgYXJlIGludGVycnVw dGVkLCB3ZSBoYXZlIHRvIHVzZSB0aGUgemVybworCQkgKiBjX3BhdGggaW4gY2FzZSB0aGUgY29u bmVjdGlvbiBlbmRzIHVwIGJlaW5nIG5vbi1NUCBjYXBhYmxlLgorCQkgKi8KKwkJaWYgKGNvbm4t PmNfbnBhdGhzID09IDApCisJCQlpZiAod2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGNvbm4tPmNf aHNfd2FpdHEsCisJCQkJCQkgICAgIGNvbm4tPmNfbnBhdGhzICE9IDApKQorCQkJCWhhc2ggPSAw OwogCQlpZiAoY29ubi0+Y19ucGF0aHMgPT0gMSkKIAkJCWhhc2ggPSAwOwogCX0KLS0gCjIuMTQu MwoKCkZyb20gZWMxMzgxZmZiZWU3ZGQ4NzQ0ZGEzMjU1NWZmNGQwZjc1YjE0ZTY2ZiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGVqYXN3aSBUYW5pa2VsbGEgPHRlamFzd2l0QGNvZGVh dXJvcmEub3JnPgpEYXRlOiBXZWQsIDExIEFwciAyMDE4IDE2OjM0OjQ3ICswNTMwClN1YmplY3Q6 IFtQQVRDSCAzLzldIHNsaXA6IENoZWNrIGlmIHJzdGF0ZSBpcyBpbml0aWFsaXplZCBiZWZvcmUg dW5jb21wcmVzc2luZwoKWyBVcHN0cmVhbSBjb21taXQgM2YwMWRkYjk2MmRjNTA2OTE2YzI0M2Y5 NTI0ZThiZWY5NzExOWI3NyBdCgpPbiByZWNlaXZpbmcgYSBwYWNrZXQgdGhlIHN0YXRlIGluZGV4 IHBvaW50cyB0byB0aGUgcnN0YXRlIHdoaWNoIG11c3QgYmUKdXNlZCB0byBmaWxsIHVwIElQIGFu ZCBUQ1AgaGVhZGVycy4gQnV0IGlmIHRoZSBzdGF0ZSBpbmRleCBwb2ludHMgdG8gYQpyc3RhdGUg d2hpY2ggaXMgdW5pdGlhbGl6ZWQsIGkuZS4gZmlsbGVkIHdpdGggemVyb3MsIGl0IGdldHMgc3R1 Y2sgaW4gYW4KaW5maW5pdGUgbG9vcCBpbnNpZGUgaXBfZmFzdF9jc3VtIHRyeWluZyB0byBjb21w dXRlIHRoZSBpcCBjaGVjc3VtIG9mIGEKaGVhZGVyIHdpdGggemVybyBsZW5ndGguCgo4OS42NjY5 NTM6ICAgPDI+IFs8ZmZmZmZmOWRkM2U5NGQzOD5dIHNsaGNfdW5jb21wcmVzcysweDQ2NC8weDQ2 OAo4OS42NjY5NjU6ICAgPDI+IFs8ZmZmZmZmOWRkM2U4N2Q4OD5dIHBwcF9yZWNlaXZlX25vbm1w X2ZyYW1lKzB4M2I0LzB4NjVjCjg5LjY2Njk3ODogICA8Mj4gWzxmZmZmZmY5ZGQzZTg5ZGQ0Pl0g cHBwX3JlY2VpdmVfZnJhbWUrMHg2NC8weDdlMAo4OS42NjY5OTE6ICAgPDI+IFs8ZmZmZmZmOWRk M2U4YTcwOD5dIHBwcF9pbnB1dCsweDEwNC8weDE5OAo4OS42NjcwMDU6ICAgPDI+IFs8ZmZmZmZm OWRkM2U5Mzg2OD5dIHBwcG9wbnNfcmVjdl9jb3JlKzB4MjM4LzB4MzcwCjg5LjY2NzAyNzogICA8 Mj4gWzxmZmZmZmY5ZGQ0NDI4ZmM4Pl0gX19za19yZWNlaXZlX3NrYisweGRjLzB4MjUwCjg5LjY2 NzA0MDogICA8Mj4gWzxmZmZmZmY5ZGQzZTkzOWU0Pl0gcHBwb3Buc19yZWN2KzB4NDQvMHg2MAo4 OS42NjcwNTM6ICAgPDI+IFs8ZmZmZmZmOWRkNDQyNjg0OD5dIF9fc29ja19xdWV1ZV9yY3Zfc2ti KzB4MTZjLzB4MjRjCjg5LjY2NzA2NTogICA8Mj4gWzxmZmZmZmY5ZGQ0NDI2OTU0Pl0gc29ja19x dWV1ZV9yY3Zfc2tiKzB4MmMvMHgzOAo4OS42NjcwODU6ICAgPDI+IFs8ZmZmZmZmOWRkNDRmNzM1 OD5dIHJhd19yY3YrMHgxMjQvMHgxNTQKODkuNjY3MDk4OiAgIDwyPiBbPGZmZmZmZjlkZDQ0Zjc1 Njg+XSByYXdfbG9jYWxfZGVsaXZlcisweDFlMC8weDIyYwo4OS42NjcxMTc6ICAgPDI+IFs8ZmZm ZmZmOWRkNDRjOGJhMD5dIGlwX2xvY2FsX2RlbGl2ZXJfZmluaXNoKzB4NzAvMHgyNGMKODkuNjY3 MTMxOiAgIDwyPiBbPGZmZmZmZjlkZDQ0YzkyZjQ+XSBpcF9sb2NhbF9kZWxpdmVyKzB4MTAwLzB4 MTBjCgouL3NjcmlwdHMvZmFkZHIybGluZSB2bWxpbnV4IHNsaGNfdW5jb21wcmVzcysweDQ2NC8w eDQ2OCBvdXRwdXQ6CiBpcF9mYXN0X2NzdW0gYXQgYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9jaGVj a3N1bS5oOjQwCiAoaW5saW5lZCBieSkgc2xoY191bmNvbXByZXNzIGF0IGRyaXZlcnMvbmV0L3Ns aXAvc2xoYy5jOjYxNQoKQWRkaW5nIGEgdmFyaWFibGUgdG8gaW5kaWNhdGUgaWYgdGhlIGN1cnJl bnQgcnN0YXRlIGlzIGluaXRpYWxpemVkLiBJZgpzdWNoIGEgcGFja2V0IGFycml2ZXMsIG1vdmUg dG8gdG9zcyBzdGF0ZS4KClNpZ25lZC1vZmYtYnk6IFRlamFzd2kgVGFuaWtlbGxhIDx0ZWphc3dp dEBjb2RlYXVyb3JhLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3NsaXAvc2xoYy5jIHwgNSArKysrKwogaW5j bHVkZS9uZXQvc2xoY192ai5oICAgfCAxICsKIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc2xpcC9zbGhjLmMgYi9kcml2ZXJzL25ldC9z bGlwL3NsaGMuYwppbmRleCA1NzgyNzMzOTU5ZjAuLmY0ZTkzZjVmYzIwNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvc2xpcC9zbGhjLmMKKysrIGIvZHJpdmVycy9uZXQvc2xpcC9zbGhjLmMKQEAg LTUwOSw2ICs1MDksMTAgQEAgc2xoY191bmNvbXByZXNzKHN0cnVjdCBzbGNvbXByZXNzICpjb21w LCB1bnNpZ25lZCBjaGFyICppY3AsIGludCBpc2l6ZSkKIAkJaWYoeCA8IDAgfHwgeCA+IGNvbXAt PnJzbG90X2xpbWl0KQogCQkJZ290byBiYWQ7CiAKKwkJLyogQ2hlY2sgaWYgdGhlIGNzdGF0ZSBp cyBpbml0aWFsaXplZCAqLworCQlpZiAoIWNvbXAtPnJzdGF0ZVt4XS5pbml0aWFsaXplZCkKKwkJ CWdvdG8gYmFkOworCiAJCWNvbXAtPmZsYWdzICY9fiBTTEZfVE9TUzsKIAkJY29tcC0+cmVjdl9j dXJyZW50ID0geDsKIAl9IGVsc2UgewpAQCAtNjczLDYgKzY3Nyw3IEBAIHNsaGNfcmVtZW1iZXIo c3RydWN0IHNsY29tcHJlc3MgKmNvbXAsIHVuc2lnbmVkIGNoYXIgKmljcCwgaW50IGlzaXplKQog CWlmIChjcy0+Y3NfdGNwLmRvZmYgPiA1KQogCSAgbWVtY3B5KGNzLT5jc190Y3BvcHQsIGljcCAr IGlobCo0ICsgc2l6ZW9mKHN0cnVjdCB0Y3BoZHIpLCAoY3MtPmNzX3RjcC5kb2ZmIC0gNSkgKiA0 KTsKIAljcy0+Y3NfaHNpemUgPSBpaGwqMiArIGNzLT5jc190Y3AuZG9mZioyOworCWNzLT5pbml0 aWFsaXplZCA9IHRydWU7CiAJLyogUHV0IGhlYWRlcnMgYmFjayBvbiBwYWNrZXQKIAkgKiBOZWl0 aGVyIGhlYWRlciBjaGVja3N1bSBpcyByZWNhbGN1bGF0ZWQKIAkgKi8KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbmV0L3NsaGNfdmouaCBiL2luY2x1ZGUvbmV0L3NsaGNfdmouaAppbmRleCA4NzE2ZDU5 NDJiNjUuLjhmY2Y4OTA4YTY5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2xoY192ai5oCisr KyBiL2luY2x1ZGUvbmV0L3NsaGNfdmouaApAQCAtMTI3LDYgKzEyNyw3IEBAIHR5cGVkZWYgX191 MzIgaW50MzI7CiAgKi8KIHN0cnVjdCBjc3RhdGUgewogCWJ5dGVfdAljc190aGlzOwkvKiBjb25u ZWN0aW9uIGlkIG51bWJlciAoeG1pdCkgKi8KKwlib29sCWluaXRpYWxpemVkOwkvKiB0cnVlIGlm IGluaXRpYWxpemVkICovCiAJc3RydWN0IGNzdGF0ZSAqbmV4dDsJLyogbmV4dCBpbiByaW5nICh4 bWl0KSAqLwogCXN0cnVjdCBpcGhkciBjc19pcDsJLyogaXAvdGNwIGhkciBmcm9tIG1vc3QgcmVj ZW50IHBhY2tldCAqLwogCXN0cnVjdCB0Y3BoZHIgY3NfdGNwOwotLSAKMi4xNC4zCgoKRnJvbSAw MjlkZTcxZGI1OTQ1N2ExYzRkZmRjOWE0ODczNTI0ZDE4OGU3YTU4IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTdGVmYW4gSGFqbm9jemkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+CkRhdGU6 IFdlZCwgMTEgQXByIDIwMTggMTA6MzU6NDAgKzA4MDAKU3ViamVjdDogW1BBVENIIDQvOV0gdmhv c3Q6IGZpeCB2aG9zdF92cV9hY2Nlc3Nfb2soKSBsb2cgY2hlY2sKClsgVXBzdHJlYW0gY29tbWl0 IGQxNGQyYjc4MDkwYzdkZTA1NTczNjJiMjZhNGNhNTkxYWE2YTlmYWEgXQoKQ29tbWl0IGQ2NTAy NmM2YzYyZTdkOTYxNmM4Y2ViNWE1M2I2OGJjZGMwNTA1MjUgKCJ2aG9zdDogdmFsaWRhdGUgbG9n CndoZW4gSU9UTEIgaXMgZW5hYmxlZCIpIGludHJvZHVjZWQgYSByZWdyZXNzaW9uLiAgVGhlIGxv Z2ljIHdhcwpvcmlnaW5hbGx5OgoKICBpZiAodnEtPmlvdGxiKQogICAgICByZXR1cm4gMTsKICBy ZXR1cm4gQSAmJiBCOwoKQWZ0ZXIgdGhlIHBhdGNoIHRoZSBzaG9ydC1jaXJjdWl0IGxvZ2ljIGZv ciBBIHdhcyBpbnZlcnRlZDoKCiAgaWYgKEEgfHwgdnEtPmlvdGxiKQogICAgICByZXR1cm4gQTsK ICByZXR1cm4gQjsKClRoaXMgcGF0Y2ggZml4ZXMgdGhlIHJlZ3Jlc3Npb24gYnkgcmV3cml0aW5n IHRoZSBjaGVja3MgaW4gdGhlIG9idmlvdXMKd2F5LCBubyBsb25nZXIgcmV0dXJuaW5nIEEgd2hl biB2cS0+aW90bGIgaXMgbm9uLU5VTEwgKHdoaWNoIGlzIGhhcmQgdG8KdW5kZXJzdGFuZCkuCgpS ZXBvcnRlZC1ieTogc3l6Ym90KzY1YTg0ZGRlMDIxNGIwMzg3Y2NkQHN5emthbGxlci5hcHBzcG90 bWFpbC5jb20KQ2M6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IFN0ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1pY2hh ZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3Zob3N0L3Zob3N0LmMgfCA4 ICsrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYyBiL2RyaXZlcnMvdmhvc3Qvdmhv c3QuYwppbmRleCA1MzIwMDM5NjcxYjcuLjkzZmQwYzc1YjBkOCAxMDA2NDQKLS0tIGEvZHJpdmVy cy92aG9zdC92aG9zdC5jCisrKyBiL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYwpAQCAtMTI0NCwxMCAr MTI0NCwxMiBAQCBzdGF0aWMgaW50IHZxX2xvZ19hY2Nlc3Nfb2soc3RydWN0IHZob3N0X3ZpcnRx dWV1ZSAqdnEsCiAvKiBDYWxsZXIgc2hvdWxkIGhhdmUgdnEgbXV0ZXggYW5kIGRldmljZSBtdXRl eCAqLwogaW50IHZob3N0X3ZxX2FjY2Vzc19vayhzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSkK IHsKLQlpbnQgcmV0ID0gdnFfbG9nX2FjY2Vzc19vayh2cSwgdnEtPmxvZ19iYXNlKTsKKwlpZiAo IXZxX2xvZ19hY2Nlc3Nfb2sodnEsIHZxLT5sb2dfYmFzZSkpCisJCXJldHVybiAwOwogCi0JaWYg KHJldCB8fCB2cS0+aW90bGIpCi0JCXJldHVybiByZXQ7CisJLyogQWNjZXNzIHZhbGlkYXRpb24g b2NjdXJzIGF0IHByZWZldGNoIHRpbWUgd2l0aCBJT1RMQiAqLworCWlmICh2cS0+aW90bGIpCisJ CXJldHVybiAxOwogCiAJcmV0dXJuIHZxX2FjY2Vzc19vayh2cSwgdnEtPm51bSwgdnEtPmRlc2Ms IHZxLT5hdmFpbCwgdnEtPnVzZWQpOwogfQotLSAKMi4xNC4zCgoKRnJvbSBmMjVmZTI2ZmIyZTgy ZTNhNzljNzg1NTlhMmU3ZWM1ZDVlNjI0OTQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpEYXRlOiBUdWUsIDEwIEFw ciAyMDE4IDIxOjAxOjEyICswMjAwClN1YmplY3Q6IFtQQVRDSCA1LzldIGwydHA6IGZpeCByYWNl cyBpbiB0dW5uZWwgY3JlYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDZiOWYzNDIzOWIwMGU2OTU2 YTI2N2FiZWQyYmM1NTllZGU1NTZhZDYgXQoKbDJ0cF90dW5uZWxfY3JlYXRlKCkgaW5zZXJ0cyB0 aGUgbmV3IHR1bm5lbCBpbnRvIHRoZSBuYW1lc3BhY2UncyB0dW5uZWwKbGlzdCBhbmQgc2V0cyB0 aGUgc29ja2V0J3MgLT5za191c2VyX2RhdGEgZmllbGQsIGJlZm9yZSByZXR1cm5pbmcgaXQgdG8K dGhlIGNhbGxlci4gVGhlcmVmb3JlLCB0aGVyZSBhcmUgdHdvIHdheXMgdGhlIHR1bm5lbCBjYW4g YmUgYWNjZXNzZWQKYW5kIGZyZWVkLCBiZWZvcmUgdGhlIGNhbGxlciBldmVuIGhhZCB0aGUgb3Bw b3J0dW5pdHkgdG8gdGFrZSBhCnJlZmVyZW5jZS4gSW4gcHJhY3RpY2UsIHN5emJvdCBjb3VsZCBj cmFzaCB0aGUgbW9kdWxlIGJ5IGNsb3NpbmcgdGhlCnNvY2tldCByaWdodCBhZnRlciBhIG5ldyB0 dW5uZWwgd2FzIHJldHVybmVkIHRvIHBwcG9sMnRwX2NyZWF0ZSgpLgoKVGhpcyBwYXRjaCBtb3Zl cyB0dW5uZWwgcmVnaXN0cmF0aW9uIG91dCBvZiBsMnRwX3R1bm5lbF9jcmVhdGUoKSwgc28KdGhh dCB0aGUgY2FsbGVyIGNhbiBzYWZlbHkgaG9sZCBhIHJlZmVyZW5jZSBiZWZvcmUgcHVibGlzaGlu ZyB0aGUKdHVubmVsLiBUaGlzIHNlY29uZCBzdGVwIGlzIGRvbmUgd2l0aCB0aGUgbmV3IGwydHBf dHVubmVsX3JlZ2lzdGVyKCkKZnVuY3Rpb24sIHdoaWNoIGlzIG5vdyByZXNwb25zaWJsZSBmb3Ig YXNzb2NpYXRpbmcgdGhlIHR1bm5lbCB0byBpdHMKc29ja2V0IGFuZCBmb3IgaW5zZXJ0aW5nIGl0 IGludG8gdGhlIG5hbWVzcGFjZSdzIGxpc3QuCgpXaGlsZSBtb3ZpbmcgdGhlIGNvZGUgdG8gbDJ0 cF90dW5uZWxfcmVnaXN0ZXIoKSwgYSBmZXcgbW9kaWZpY2F0aW9ucwpoYXZlIGJlZW4gZG9uZS4g Rmlyc3QsIHRoZSBzb2NrZXQgdmFsaWRhdGlvbiB0ZXN0cyBhcmUgZG9uZSBpbiBhIGhlbHBlcgpm dW5jdGlvbiwgZm9yIGNsYXJpdHkuIEFsc28sIG1vZGlmeWluZyB0aGUgc29ja2V0IGlzIG5vdyBk b25lIGFmdGVyCmhhdmluZyBpbnNlcnRlZCB0aGUgdHVubmVsIHRvIHRoZSBuYW1lc3BhY2UncyB0 dW5uZWxzIGxpc3QuIFRoaXMgd2lsbAphbGxvdyBpbnNlcnRpb24gdG8gZmFpbCwgd2l0aG91dCBo YXZpbmcgdG8gcmV2ZXJ0IHRoZXNlcyBtb2RpZmljYXRpb25zCmluIHRoZSBlcnJvciBwYXRoIChh IGZvbGxvd3VwIHBhdGNoIHdpbGwgY2hlY2sgZm9yIGR1cGxpY2F0ZSB0dW5uZWxzCmJlZm9yZSBp bnNlcnRpb24pLiBFaXRoZXIgdGhlIHNvY2tldCBpcyBhIGtlcm5lbCBzb2NrZXQgd2hpY2ggd2UK Y29udHJvbCwgb3IgaXQgaXMgYSB1c2VyLXNwYWNlIHNvY2tldCBmb3Igd2hpY2ggd2UgaGF2ZSBh IHJlZmVyZW5jZSBvbgp0aGUgZmlsZSBkZXNjcmlwdG9yLiBJbiBhbnkgY2FzZSwgdGhlIHNvY2tl dCBpc24ndCBnb2luZyB0byBiZSBjbG9zZWQKZnJvbSB1bmRlciB1cy4KClJlcG9ydGVkLWJ5OiBz eXpib3QrZmJlZWI1YzNiNTM4ZTg1NDU2NDRAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpGaXhl czogZmQ1NThkMTg2ZGYyICgibDJ0cDogU3BsaXQgcHBwb2wydHAgcGF0Y2ggaW50byBzZXBhcmF0 ZSBsMnRwIGFuZCBwcHAgcGFydHMiKQpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcu bmF1bHRAYWxwaGFsaW5rLmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2wydHAvbDJ0cF9jb3JlLmMgICAgfCAxOTIgKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBuZXQvbDJ0cC9sMnRw X2NvcmUuaCAgICB8ICAgMyArCiBuZXQvbDJ0cC9sMnRwX25ldGxpbmsuYyB8ICAxNiArKystCiBu ZXQvbDJ0cC9sMnRwX3BwcC5jICAgICB8ICAgOSArKysKIDQgZmlsZXMgY2hhbmdlZCwgMTEwIGlu c2VydGlvbnMoKyksIDExMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRw X2NvcmUuYyBiL25ldC9sMnRwL2wydHBfY29yZS5jCmluZGV4IDE0YjY3ZGZhY2M0Yi4uYWZiNDJk MTQyODA3IDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX2NvcmUuYworKysgYi9uZXQvbDJ0cC9s MnRwX2NvcmUuYwpAQCAtMTQzNiw3NCArMTQzNiwxMSBAQCBpbnQgbDJ0cF90dW5uZWxfY3JlYXRl KHN0cnVjdCBuZXQgKm5ldCwgaW50IGZkLCBpbnQgdmVyc2lvbiwgdTMyIHR1bm5lbF9pZCwgdTMy CiB7CiAJc3RydWN0IGwydHBfdHVubmVsICp0dW5uZWwgPSBOVUxMOwogCWludCBlcnI7Ci0Jc3Ry dWN0IHNvY2tldCAqc29jayA9IE5VTEw7Ci0Jc3RydWN0IHNvY2sgKnNrID0gTlVMTDsKLQlzdHJ1 Y3QgbDJ0cF9uZXQgKnBuOwogCWVudW0gbDJ0cF9lbmNhcF90eXBlIGVuY2FwID0gTDJUUF9FTkNB UFRZUEVfVURQOwogCi0JLyogR2V0IHRoZSB0dW5uZWwgc29ja2V0IGZyb20gdGhlIGZkLCB3aGlj aCB3YXMgb3BlbmVkIGJ5Ci0JICogdGhlIHVzZXJzcGFjZSBMMlRQIGRhZW1vbi4gSWYgbm90IHNw ZWNpZmllZCwgY3JlYXRlIGEKLQkgKiBrZXJuZWwgc29ja2V0LgotCSAqLwotCWlmIChmZCA8IDAp IHsKLQkJZXJyID0gbDJ0cF90dW5uZWxfc29ja19jcmVhdGUobmV0LCB0dW5uZWxfaWQsIHBlZXJf dHVubmVsX2lkLAotCQkJCWNmZywgJnNvY2spOwotCQlpZiAoZXJyIDwgMCkKLQkJCWdvdG8gZXJy OwotCX0gZWxzZSB7Ci0JCXNvY2sgPSBzb2NrZmRfbG9va3VwKGZkLCAmZXJyKTsKLQkJaWYgKCFz b2NrKSB7Ci0JCQlwcl9lcnIoInR1bmwgJXU6IHNvY2tmZF9sb29rdXAoZmQ9JWQpIHJldHVybmVk ICVkXG4iLAotCQkJICAgICAgIHR1bm5lbF9pZCwgZmQsIGVycik7Ci0JCQllcnIgPSAtRUJBREY7 Ci0JCQlnb3RvIGVycjsKLQkJfQotCi0JCS8qIFJlamVjdCBuYW1lc3BhY2UgbWlzbWF0Y2hlcyAq LwotCQlpZiAoIW5ldF9lcShzb2NrX25ldChzb2NrLT5zayksIG5ldCkpIHsKLQkJCXByX2Vycigi dHVubCAldTogbmV0bnMgbWlzbWF0Y2hcbiIsIHR1bm5lbF9pZCk7Ci0JCQllcnIgPSAtRUlOVkFM OwotCQkJZ290byBlcnI7Ci0JCX0KLQl9Ci0KLQlzayA9IHNvY2stPnNrOwotCiAJaWYgKGNmZyAh PSBOVUxMKQogCQllbmNhcCA9IGNmZy0+ZW5jYXA7CiAKLQkvKiBRdWljayBzYW5pdHkgY2hlY2tz ICovCi0JZXJyID0gLUVQUk9UT05PU1VQUE9SVDsKLQlpZiAoc2stPnNrX3R5cGUgIT0gU09DS19E R1JBTSkgewotCQlwcl9kZWJ1ZygidHVubCAlaHU6IGZkICVkIHdyb25nIHNvY2tldCB0eXBlXG4i LAotCQkJIHR1bm5lbF9pZCwgZmQpOwotCQlnb3RvIGVycjsKLQl9Ci0Jc3dpdGNoIChlbmNhcCkg ewotCWNhc2UgTDJUUF9FTkNBUFRZUEVfVURQOgotCQlpZiAoc2stPnNrX3Byb3RvY29sICE9IElQ UFJPVE9fVURQKSB7Ci0JCQlwcl9lcnIoInR1bmwgJWh1OiBmZCAlZCB3cm9uZyBwcm90b2NvbCwg Z290ICVkLCBleHBlY3RlZCAlZFxuIiwKLQkJCSAgICAgICB0dW5uZWxfaWQsIGZkLCBzay0+c2tf cHJvdG9jb2wsIElQUFJPVE9fVURQKTsKLQkJCWdvdG8gZXJyOwotCQl9Ci0JCWJyZWFrOwotCWNh c2UgTDJUUF9FTkNBUFRZUEVfSVA6Ci0JCWlmIChzay0+c2tfcHJvdG9jb2wgIT0gSVBQUk9UT19M MlRQKSB7Ci0JCQlwcl9lcnIoInR1bmwgJWh1OiBmZCAlZCB3cm9uZyBwcm90b2NvbCwgZ290ICVk LCBleHBlY3RlZCAlZFxuIiwKLQkJCSAgICAgICB0dW5uZWxfaWQsIGZkLCBzay0+c2tfcHJvdG9j b2wsIElQUFJPVE9fTDJUUCk7Ci0JCQlnb3RvIGVycjsKLQkJfQotCQlicmVhazsKLQl9Ci0KLQkv KiBDaGVjayBpZiB0aGlzIHNvY2tldCBoYXMgYWxyZWFkeSBiZWVuIHByZXBwZWQgKi8KLQl0dW5u ZWwgPSBsMnRwX3R1bm5lbChzayk7Ci0JaWYgKHR1bm5lbCAhPSBOVUxMKSB7Ci0JCS8qIFRoaXMg c29ja2V0IGhhcyBhbHJlYWR5IGJlZW4gcHJlcHBlZCAqLwotCQllcnIgPSAtRUJVU1k7Ci0JCWdv dG8gZXJyOwotCX0KLQogCXR1bm5lbCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBsMnRwX3R1bm5l bCksIEdGUF9LRVJORUwpOwogCWlmICh0dW5uZWwgPT0gTlVMTCkgewogCQllcnIgPSAtRU5PTUVN OwpAQCAtMTUyMCw3MiArMTQ1NywxMTMgQEAgaW50IGwydHBfdHVubmVsX2NyZWF0ZShzdHJ1Y3Qg bmV0ICpuZXQsIGludCBmZCwgaW50IHZlcnNpb24sIHUzMiB0dW5uZWxfaWQsIHUzMgogCXJ3bG9j a19pbml0KCZ0dW5uZWwtPmhsaXN0X2xvY2spOwogCXR1bm5lbC0+YWNwdF9uZXdzZXNzID0gdHJ1 ZTsKIAotCS8qIFRoZSBuZXQgd2UgYmVsb25nIHRvICovCi0JdHVubmVsLT5sMnRwX25ldCA9IG5l dDsKLQlwbiA9IGwydHBfcGVybmV0KG5ldCk7Ci0KIAlpZiAoY2ZnICE9IE5VTEwpCiAJCXR1bm5l bC0+ZGVidWcgPSBjZmctPmRlYnVnOwogCi0JLyogTWFyayBzb2NrZXQgYXMgYW4gZW5jYXBzdWxh dGlvbiBzb2NrZXQuIFNlZSBuZXQvaXB2NC91ZHAuYyAqLwogCXR1bm5lbC0+ZW5jYXAgPSBlbmNh cDsKLQlpZiAoZW5jYXAgPT0gTDJUUF9FTkNBUFRZUEVfVURQKSB7Ci0JCXN0cnVjdCB1ZHBfdHVu bmVsX3NvY2tfY2ZnIHVkcF9jZmcgPSB7IH07Ci0KLQkJdWRwX2NmZy5za191c2VyX2RhdGEgPSB0 dW5uZWw7Ci0JCXVkcF9jZmcuZW5jYXBfdHlwZSA9IFVEUF9FTkNBUF9MMlRQSU5VRFA7Ci0JCXVk cF9jZmcuZW5jYXBfcmN2ID0gbDJ0cF91ZHBfZW5jYXBfcmVjdjsKLQkJdWRwX2NmZy5lbmNhcF9k ZXN0cm95ID0gbDJ0cF91ZHBfZW5jYXBfZGVzdHJveTsKLQotCQlzZXR1cF91ZHBfdHVubmVsX3Nv Y2sobmV0LCBzb2NrLCAmdWRwX2NmZyk7Ci0JfSBlbHNlIHsKLQkJc2stPnNrX3VzZXJfZGF0YSA9 IHR1bm5lbDsKLQl9CiAKLQkvKiBCdW1wIHRoZSByZWZlcmVuY2UgY291bnQuIFRoZSB0dW5uZWwg Y29udGV4dCBpcyBkZWxldGVkCi0JICogb25seSB3aGVuIHRoaXMgZHJvcHMgdG8gemVyby4gQSBy ZWZlcmVuY2UgaXMgYWxzbyBoZWxkIG9uCi0JICogdGhlIHR1bm5lbCBzb2NrZXQgdG8gZW5zdXJl IHRoYXQgaXQgaXMgbm90IHJlbGVhc2VkIHdoaWxlCi0JICogdGhlIHR1bm5lbCBpcyBleHRhbnQu IE11c3QgYmUgZG9uZSBiZWZvcmUgc2tfZGVzdHJ1Y3QgaXMKLQkgKiBzZXQuCi0JICovCiAJcmVm Y291bnRfc2V0KCZ0dW5uZWwtPnJlZl9jb3VudCwgMSk7Ci0Jc29ja19ob2xkKHNrKTsKLQl0dW5u ZWwtPnNvY2sgPSBzazsKIAl0dW5uZWwtPmZkID0gZmQ7CiAKLQkvKiBIb29rIG9uIHRoZSB0dW5u ZWwgc29ja2V0IGRlc3RydWN0b3Igc28gdGhhdCB3ZSBjYW4gY2xlYW51cAotCSAqIGlmIHRoZSB0 dW5uZWwgc29ja2V0IGdvZXMgYXdheS4KLQkgKi8KLQl0dW5uZWwtPm9sZF9za19kZXN0cnVjdCA9 IHNrLT5za19kZXN0cnVjdDsKLQlzay0+c2tfZGVzdHJ1Y3QgPSAmbDJ0cF90dW5uZWxfZGVzdHJ1 Y3Q7Ci0JbG9ja2RlcF9zZXRfY2xhc3NfYW5kX25hbWUoJnNrLT5za19sb2NrLnNsb2NrLCAmbDJ0 cF9zb2NrZXRfY2xhc3MsICJsMnRwX3NvY2siKTsKLQotCXNrLT5za19hbGxvY2F0aW9uID0gR0ZQ X0FUT01JQzsKLQogCS8qIEluaXQgZGVsZXRlIHdvcmtxdWV1ZSBzdHJ1Y3QgKi8KIAlJTklUX1dP UksoJnR1bm5lbC0+ZGVsX3dvcmssIGwydHBfdHVubmVsX2RlbF93b3JrKTsKIAotCS8qIEFkZCB0 dW5uZWwgdG8gb3VyIGxpc3QgKi8KIAlJTklUX0xJU1RfSEVBRCgmdHVubmVsLT5saXN0KTsKLQlz cGluX2xvY2tfYmgoJnBuLT5sMnRwX3R1bm5lbF9saXN0X2xvY2spOwotCWxpc3RfYWRkX3JjdSgm dHVubmVsLT5saXN0LCAmcG4tPmwydHBfdHVubmVsX2xpc3QpOwotCXNwaW5fdW5sb2NrX2JoKCZw bi0+bDJ0cF90dW5uZWxfbGlzdF9sb2NrKTsKIAogCWVyciA9IDA7CiBlcnI6CiAJaWYgKHR1bm5l bHApCiAJCSp0dW5uZWxwID0gdHVubmVsOwogCi0JLyogSWYgdHVubmVsJ3Mgc29ja2V0IHdhcyBj cmVhdGVkIGJ5IHRoZSBrZXJuZWwsIGl0IGRvZXNuJ3QKLQkgKiAgaGF2ZSBhIGZpbGUuCi0JICov Ci0JaWYgKHNvY2sgJiYgc29jay0+ZmlsZSkKLQkJc29ja2ZkX3B1dChzb2NrKTsKLQogCXJldHVy biBlcnI7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChsMnRwX3R1bm5lbF9jcmVhdGUpOwogCitzdGF0 aWMgaW50IGwydHBfdmFsaWRhdGVfc29ja2V0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgY29uc3Qg c3RydWN0IG5ldCAqbmV0LAorCQkJCWVudW0gbDJ0cF9lbmNhcF90eXBlIGVuY2FwKQoreworCWlm ICghbmV0X2VxKHNvY2tfbmV0KHNrKSwgbmV0KSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAo c2stPnNrX3R5cGUgIT0gU09DS19ER1JBTSkKKwkJcmV0dXJuIC1FUFJPVE9OT1NVUFBPUlQ7CisK KwlpZiAoKGVuY2FwID09IEwyVFBfRU5DQVBUWVBFX1VEUCAmJiBzay0+c2tfcHJvdG9jb2wgIT0g SVBQUk9UT19VRFApIHx8CisJICAgIChlbmNhcCA9PSBMMlRQX0VOQ0FQVFlQRV9JUCAmJiBzay0+ c2tfcHJvdG9jb2wgIT0gSVBQUk9UT19MMlRQKSkKKwkJcmV0dXJuIC1FUFJPVE9OT1NVUFBPUlQ7 CisKKwlpZiAoc2stPnNrX3VzZXJfZGF0YSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCXJldHVybiAw OworfQorCitpbnQgbDJ0cF90dW5uZWxfcmVnaXN0ZXIoc3RydWN0IGwydHBfdHVubmVsICp0dW5u ZWwsIHN0cnVjdCBuZXQgKm5ldCwKKwkJCSBzdHJ1Y3QgbDJ0cF90dW5uZWxfY2ZnICpjZmcpCit7 CisJc3RydWN0IGwydHBfbmV0ICpwbjsKKwlzdHJ1Y3Qgc29ja2V0ICpzb2NrOworCXN0cnVjdCBz b2NrICpzazsKKwlpbnQgcmV0OworCisJaWYgKHR1bm5lbC0+ZmQgPCAwKSB7CisJCXJldCA9IGwy dHBfdHVubmVsX3NvY2tfY3JlYXRlKG5ldCwgdHVubmVsLT50dW5uZWxfaWQsCisJCQkJCSAgICAg IHR1bm5lbC0+cGVlcl90dW5uZWxfaWQsIGNmZywKKwkJCQkJICAgICAgJnNvY2spOworCQlpZiAo cmV0IDwgMCkKKwkJCWdvdG8gZXJyOworCX0gZWxzZSB7CisJCXNvY2sgPSBzb2NrZmRfbG9va3Vw KHR1bm5lbC0+ZmQsICZyZXQpOworCQlpZiAoIXNvY2spCisJCQlnb3RvIGVycjsKKworCQlyZXQg PSBsMnRwX3ZhbGlkYXRlX3NvY2tldChzb2NrLT5zaywgbmV0LCB0dW5uZWwtPmVuY2FwKTsKKwkJ aWYgKHJldCA8IDApCisJCQlnb3RvIGVycl9zb2NrOworCX0KKworCXNrID0gc29jay0+c2s7CisK Kwlzb2NrX2hvbGQoc2spOworCXR1bm5lbC0+c29jayA9IHNrOworCXR1bm5lbC0+bDJ0cF9uZXQg PSBuZXQ7CisKKwlwbiA9IGwydHBfcGVybmV0KG5ldCk7CisJc3Bpbl9sb2NrX2JoKCZwbi0+bDJ0 cF90dW5uZWxfbGlzdF9sb2NrKTsKKwlsaXN0X2FkZF9yY3UoJnR1bm5lbC0+bGlzdCwgJnBuLT5s MnRwX3R1bm5lbF9saXN0KTsKKwlzcGluX3VubG9ja19iaCgmcG4tPmwydHBfdHVubmVsX2xpc3Rf bG9jayk7CisKKwlpZiAodHVubmVsLT5lbmNhcCA9PSBMMlRQX0VOQ0FQVFlQRV9VRFApIHsKKwkJ c3RydWN0IHVkcF90dW5uZWxfc29ja19jZmcgdWRwX2NmZyA9IHsKKwkJCS5za191c2VyX2RhdGEg PSB0dW5uZWwsCisJCQkuZW5jYXBfdHlwZSA9IFVEUF9FTkNBUF9MMlRQSU5VRFAsCisJCQkuZW5j YXBfcmN2ID0gbDJ0cF91ZHBfZW5jYXBfcmVjdiwKKwkJCS5lbmNhcF9kZXN0cm95ID0gbDJ0cF91 ZHBfZW5jYXBfZGVzdHJveSwKKwkJfTsKKworCQlzZXR1cF91ZHBfdHVubmVsX3NvY2sobmV0LCBz b2NrLCAmdWRwX2NmZyk7CisJfSBlbHNlIHsKKwkJc2stPnNrX3VzZXJfZGF0YSA9IHR1bm5lbDsK Kwl9CisKKwl0dW5uZWwtPm9sZF9za19kZXN0cnVjdCA9IHNrLT5za19kZXN0cnVjdDsKKwlzay0+ c2tfZGVzdHJ1Y3QgPSAmbDJ0cF90dW5uZWxfZGVzdHJ1Y3Q7CisJbG9ja2RlcF9zZXRfY2xhc3Nf YW5kX25hbWUoJnNrLT5za19sb2NrLnNsb2NrLCAmbDJ0cF9zb2NrZXRfY2xhc3MsCisJCQkJICAg ImwydHBfc29jayIpOworCXNrLT5za19hbGxvY2F0aW9uID0gR0ZQX0FUT01JQzsKKworCWlmICh0 dW5uZWwtPmZkID49IDApCisJCXNvY2tmZF9wdXQoc29jayk7CisKKwlyZXR1cm4gMDsKKworZXJy X3NvY2s6CisJc29ja2ZkX3B1dChzb2NrKTsKK2VycjoKKwlyZXR1cm4gcmV0OworfQorRVhQT1JU X1NZTUJPTF9HUEwobDJ0cF90dW5uZWxfcmVnaXN0ZXIpOworCiAvKiBUaGlzIGZ1bmN0aW9uIGlz IHVzZWQgYnkgdGhlIG5ldGxpbmsgVFVOTkVMX0RFTEVURSBjb21tYW5kLgogICovCiB2b2lkIGwy dHBfdHVubmVsX2RlbGV0ZShzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCkKZGlmZiAtLWdpdCBh L25ldC9sMnRwL2wydHBfY29yZS5oIGIvbmV0L2wydHAvbDJ0cF9jb3JlLmgKaW5kZXggMjcxOGQw YjI4NGQwLi4xMmYwZmE4MmYxNjIgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfY29yZS5oCisr KyBiL25ldC9sMnRwL2wydHBfY29yZS5oCkBAIC0yMjYsNiArMjI2LDkgQEAgc3RydWN0IGwydHBf dHVubmVsICpsMnRwX3R1bm5lbF9maW5kX250aChjb25zdCBzdHJ1Y3QgbmV0ICpuZXQsIGludCBu dGgpOwogaW50IGwydHBfdHVubmVsX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIGludCBmZCwgaW50 IHZlcnNpb24sIHUzMiB0dW5uZWxfaWQsCiAJCSAgICAgICB1MzIgcGVlcl90dW5uZWxfaWQsIHN0 cnVjdCBsMnRwX3R1bm5lbF9jZmcgKmNmZywKIAkJICAgICAgIHN0cnVjdCBsMnRwX3R1bm5lbCAq KnR1bm5lbHApOworaW50IGwydHBfdHVubmVsX3JlZ2lzdGVyKHN0cnVjdCBsMnRwX3R1bm5lbCAq dHVubmVsLCBzdHJ1Y3QgbmV0ICpuZXQsCisJCQkgc3RydWN0IGwydHBfdHVubmVsX2NmZyAqY2Zn KTsKKwogdm9pZCBsMnRwX3R1bm5lbF9jbG9zZWFsbChzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5l bCk7CiB2b2lkIGwydHBfdHVubmVsX2RlbGV0ZShzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCk7 CiBzdHJ1Y3QgbDJ0cF9zZXNzaW9uICpsMnRwX3Nlc3Npb25fY3JlYXRlKGludCBwcml2X3NpemUs CmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX25ldGxpbmsuYyBiL25ldC9sMnRwL2wydHBfbmV0 bGluay5jCmluZGV4IGU3ZWE5YzRiODlmZi4uNDVkYjliNzNlYjFhIDEwMDY0NAotLS0gYS9uZXQv bDJ0cC9sMnRwX25ldGxpbmsuYworKysgYi9uZXQvbDJ0cC9sMnRwX25ldGxpbmsuYwpAQCAtMjUx LDkgKzI1MSwxOSBAQCBzdGF0aWMgaW50IGwydHBfbmxfY21kX3R1bm5lbF9jcmVhdGUoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbwogCQlicmVhazsKIAl9CiAKLQlp ZiAocmV0ID49IDApCi0JCXJldCA9IGwydHBfdHVubmVsX25vdGlmeSgmbDJ0cF9ubF9mYW1pbHks IGluZm8sCi0JCQkJCSB0dW5uZWwsIEwyVFBfQ01EX1RVTk5FTF9DUkVBVEUpOworCWlmIChyZXQg PCAwKQorCQlnb3RvIG91dDsKKworCWwydHBfdHVubmVsX2luY19yZWZjb3VudCh0dW5uZWwpOwor CXJldCA9IGwydHBfdHVubmVsX3JlZ2lzdGVyKHR1bm5lbCwgbmV0LCAmY2ZnKTsKKwlpZiAocmV0 IDwgMCkgeworCQlrZnJlZSh0dW5uZWwpOworCQlnb3RvIG91dDsKKwl9CisJcmV0ID0gbDJ0cF90 dW5uZWxfbm90aWZ5KCZsMnRwX25sX2ZhbWlseSwgaW5mbywgdHVubmVsLAorCQkJCSBMMlRQX0NN RF9UVU5ORUxfQ1JFQVRFKTsKKwlsMnRwX3R1bm5lbF9kZWNfcmVmY291bnQodHVubmVsKTsKKwog b3V0OgogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX3BwcC5jIGIv bmV0L2wydHAvbDJ0cF9wcHAuYwppbmRleCAzYjAyZjI0ZWE5ZWMuLjNkNzg4N2NjNTk5YiAxMDA2 NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9wcHAuYworKysgYi9uZXQvbDJ0cC9sMnRwX3BwcC5jCkBA IC02OTgsNiArNjk4LDE1IEBAIHN0YXRpYyBpbnQgcHBwb2wydHBfY29ubmVjdChzdHJ1Y3Qgc29j a2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVzZXJ2YWRkciwKIAkJCWVycm9yID0gbDJ0cF90 dW5uZWxfY3JlYXRlKHNvY2tfbmV0KHNrKSwgZmQsIHZlciwgdHVubmVsX2lkLCBwZWVyX3R1bm5l bF9pZCwgJnRjZmcsICZ0dW5uZWwpOwogCQkJaWYgKGVycm9yIDwgMCkKIAkJCQlnb3RvIGVuZDsK KworCQkJbDJ0cF90dW5uZWxfaW5jX3JlZmNvdW50KHR1bm5lbCk7CisJCQllcnJvciA9IGwydHBf dHVubmVsX3JlZ2lzdGVyKHR1bm5lbCwgc29ja19uZXQoc2spLAorCQkJCQkJICAgICAmdGNmZyk7 CisJCQlpZiAoZXJyb3IgPCAwKSB7CisJCQkJa2ZyZWUodHVubmVsKTsKKwkJCQlnb3RvIGVuZDsK KwkJCX0KKwkJCWRyb3BfdHVubmVsID0gdHJ1ZTsKIAkJfQogCX0gZWxzZSB7CiAJCS8qIEVycm9y IGlmIHdlIGNhbid0IGZpbmQgdGhlIHR1bm5lbCAqLwotLSAKMi4xNC4zCgoKRnJvbSA0Y2Q2MTBi ZGZhM2E3ODU0N2ZjYzI5MjBlZTcxMDg0ODQ4ZmUxYjg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpEYXRlOiBUdWUs IDEwIEFwciAyMDE4IDIxOjAxOjEzICswMjAwClN1YmplY3Q6IFtQQVRDSCA2LzldIGwydHA6IGZp eCByYWNlIGluIGR1cGxpY2F0ZSB0dW5uZWwgZGV0ZWN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBm NmNkNjUxYjA1NmZmZDNiNGU4NDk2YWZkNDRkNGVkNDRiZjY5MTM2IF0KCldlIGNhbid0IHVzZSBs MnRwX3R1bm5lbF9maW5kKCkgdG8gcHJldmVudCBsMnRwX25sX2NtZF90dW5uZWxfY3JlYXRlKCkK ZnJvbSBjcmVhdGluZyBhIGR1cGxpY2F0ZSB0dW5uZWwuIEEgdHVubmVsIGNhbiBiZSBjb25jdXJy ZW50bHkKcmVnaXN0ZXJlZCBhZnRlciBsMnRwX3R1bm5lbF9maW5kKCkgcmV0dXJucy4gVGhlcmVm b3JlLCBzZWFyY2hpbmcgZm9yCmR1cGxpY2F0ZXMgbXVzdCBiZSBkb25lIGF0IHJlZ2lzdHJhdGlv biB0aW1lLgoKRmluYWxseSwgcmVtb3ZlIGwydHBfdHVubmVsX2ZpbmQoKSBlbnRpcmVseSBhcyBp dCBpc24ndCB1c2UgYW55d2hlcmUKYW55bW9yZS4KCkZpeGVzOiAzMDk3OTVmNGJlYzIgKCJsMnRw OiBBZGQgbmV0bGluayBjb250cm9sIEFQSSBmb3IgTDJUUCIpClNpZ25lZC1vZmYtYnk6IEd1aWxs YXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbDJ0cC9sMnRwX2NvcmUuYyAg ICB8IDM1ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBuZXQvbDJ0cC9sMnRw X2NvcmUuaCAgICB8ICAxIC0KIG5ldC9sMnRwL2wydHBfbmV0bGluay5jIHwgIDYgLS0tLS0tCiAz IGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9sMnRwL2wydHBfY29yZS5jIGIvbmV0L2wydHAvbDJ0cF9jb3JlLmMKaW5kZXgg YWZiNDJkMTQyODA3Li4wZmJkM2VlMjYxNjUgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfY29y ZS5jCisrKyBiL25ldC9sMnRwL2wydHBfY29yZS5jCkBAIC0zMzUsMjYgKzMzNSw2IEBAIGludCBs MnRwX3Nlc3Npb25fcmVnaXN0ZXIoc3RydWN0IGwydHBfc2Vzc2lvbiAqc2Vzc2lvbiwKIH0KIEVY UE9SVF9TWU1CT0xfR1BMKGwydHBfc2Vzc2lvbl9yZWdpc3Rlcik7CiAKLS8qIExvb2t1cCBhIHR1 bm5lbCBieSBpZAotICovCi1zdHJ1Y3QgbDJ0cF90dW5uZWwgKmwydHBfdHVubmVsX2ZpbmQoY29u c3Qgc3RydWN0IG5ldCAqbmV0LCB1MzIgdHVubmVsX2lkKQotewotCXN0cnVjdCBsMnRwX3R1bm5l bCAqdHVubmVsOwotCXN0cnVjdCBsMnRwX25ldCAqcG4gPSBsMnRwX3Blcm5ldChuZXQpOwotCi0J cmN1X3JlYWRfbG9ja19iaCgpOwotCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHR1bm5lbCwgJnBu LT5sMnRwX3R1bm5lbF9saXN0LCBsaXN0KSB7Ci0JCWlmICh0dW5uZWwtPnR1bm5lbF9pZCA9PSB0 dW5uZWxfaWQpIHsKLQkJCXJjdV9yZWFkX3VubG9ja19iaCgpOwotCQkJcmV0dXJuIHR1bm5lbDsK LQkJfQotCX0KLQlyY3VfcmVhZF91bmxvY2tfYmgoKTsKLQotCXJldHVybiBOVUxMOwotfQotRVhQ T1JUX1NZTUJPTF9HUEwobDJ0cF90dW5uZWxfZmluZCk7Ci0KIHN0cnVjdCBsMnRwX3R1bm5lbCAq bDJ0cF90dW5uZWxfZmluZF9udGgoY29uc3Qgc3RydWN0IG5ldCAqbmV0LCBpbnQgbnRoKQogewog CXN0cnVjdCBsMnRwX25ldCAqcG4gPSBsMnRwX3Blcm5ldChuZXQpOwpAQCAtMTUwMSw2ICsxNDgx LDcgQEAgc3RhdGljIGludCBsMnRwX3ZhbGlkYXRlX3NvY2tldChjb25zdCBzdHJ1Y3Qgc29jayAq c2ssIGNvbnN0IHN0cnVjdCBuZXQgKm5ldCwKIGludCBsMnRwX3R1bm5lbF9yZWdpc3RlcihzdHJ1 Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCwgc3RydWN0IG5ldCAqbmV0LAogCQkJIHN0cnVjdCBsMnRw X3R1bm5lbF9jZmcgKmNmZykKIHsKKwlzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbF93YWxrOwog CXN0cnVjdCBsMnRwX25ldCAqcG47CiAJc3RydWN0IHNvY2tldCAqc29jazsKIAlzdHJ1Y3Qgc29j ayAqc2s7CkBAIC0xNTI5LDcgKzE1MTAsMTYgQEAgaW50IGwydHBfdHVubmVsX3JlZ2lzdGVyKHN0 cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsLCBzdHJ1Y3QgbmV0ICpuZXQsCiAJdHVubmVsLT5sMnRw X25ldCA9IG5ldDsKIAogCXBuID0gbDJ0cF9wZXJuZXQobmV0KTsKKwogCXNwaW5fbG9ja19iaCgm cG4tPmwydHBfdHVubmVsX2xpc3RfbG9jayk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeSh0dW5uZWxf d2FsaywgJnBuLT5sMnRwX3R1bm5lbF9saXN0LCBsaXN0KSB7CisJCWlmICh0dW5uZWxfd2Fsay0+ dHVubmVsX2lkID09IHR1bm5lbC0+dHVubmVsX2lkKSB7CisJCQlzcGluX3VubG9ja19iaCgmcG4t PmwydHBfdHVubmVsX2xpc3RfbG9jayk7CisKKwkJCXJldCA9IC1FRVhJU1Q7CisJCQlnb3RvIGVy cl9zb2NrOworCQl9CisJfQogCWxpc3RfYWRkX3JjdSgmdHVubmVsLT5saXN0LCAmcG4tPmwydHBf dHVubmVsX2xpc3QpOwogCXNwaW5fdW5sb2NrX2JoKCZwbi0+bDJ0cF90dW5uZWxfbGlzdF9sb2Nr KTsKIApAQCAtMTU1OCw3ICsxNTQ4LDEwIEBAIGludCBsMnRwX3R1bm5lbF9yZWdpc3RlcihzdHJ1 Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCwgc3RydWN0IG5ldCAqbmV0LAogCXJldHVybiAwOwogCiBl cnJfc29jazoKLQlzb2NrZmRfcHV0KHNvY2spOworCWlmICh0dW5uZWwtPmZkIDwgMCkKKwkJc29j a19yZWxlYXNlKHNvY2spOworCWVsc2UKKwkJc29ja2ZkX3B1dChzb2NrKTsKIGVycjoKIAlyZXR1 cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9jb3JlLmggYi9uZXQvbDJ0cC9s MnRwX2NvcmUuaAppbmRleCAxMmYwZmE4MmYxNjIuLmJhMzNjYmVjNzFlYiAxMDA2NDQKLS0tIGEv bmV0L2wydHAvbDJ0cF9jb3JlLmgKKysrIGIvbmV0L2wydHAvbDJ0cF9jb3JlLmgKQEAgLTIyMCw3 ICsyMjAsNiBAQCBzdHJ1Y3QgbDJ0cF9zZXNzaW9uICpsMnRwX3Nlc3Npb25fZ2V0KGNvbnN0IHN0 cnVjdCBuZXQgKm5ldCwKIHN0cnVjdCBsMnRwX3Nlc3Npb24gKmwydHBfc2Vzc2lvbl9nZXRfbnRo KHN0cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsLCBpbnQgbnRoKTsKIHN0cnVjdCBsMnRwX3Nlc3Np b24gKmwydHBfc2Vzc2lvbl9nZXRfYnlfaWZuYW1lKGNvbnN0IHN0cnVjdCBuZXQgKm5ldCwKIAkJ CQkJCWNvbnN0IGNoYXIgKmlmbmFtZSk7Ci1zdHJ1Y3QgbDJ0cF90dW5uZWwgKmwydHBfdHVubmVs X2ZpbmQoY29uc3Qgc3RydWN0IG5ldCAqbmV0LCB1MzIgdHVubmVsX2lkKTsKIHN0cnVjdCBsMnRw X3R1bm5lbCAqbDJ0cF90dW5uZWxfZmluZF9udGgoY29uc3Qgc3RydWN0IG5ldCAqbmV0LCBpbnQg bnRoKTsKIAogaW50IGwydHBfdHVubmVsX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIGludCBmZCwg aW50IHZlcnNpb24sIHUzMiB0dW5uZWxfaWQsCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX25l dGxpbmsuYyBiL25ldC9sMnRwL2wydHBfbmV0bGluay5jCmluZGV4IDQ1ZGI5YjczZWIxYS4uYjA1 ZGJkOWZmY2IyIDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX25ldGxpbmsuYworKysgYi9uZXQv bDJ0cC9sMnRwX25ldGxpbmsuYwpAQCAtMjM2LDEyICsyMzYsNiBAQCBzdGF0aWMgaW50IGwydHBf bmxfY21kX3R1bm5lbF9jcmVhdGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5m byAqaW5mbwogCWlmIChpbmZvLT5hdHRyc1tMMlRQX0FUVFJfREVCVUddKQogCQljZmcuZGVidWcg PSBubGFfZ2V0X3UzMihpbmZvLT5hdHRyc1tMMlRQX0FUVFJfREVCVUddKTsKIAotCXR1bm5lbCA9 IGwydHBfdHVubmVsX2ZpbmQobmV0LCB0dW5uZWxfaWQpOwotCWlmICh0dW5uZWwgIT0gTlVMTCkg ewotCQlyZXQgPSAtRUVYSVNUOwotCQlnb3RvIG91dDsKLQl9Ci0KIAlyZXQgPSAtRUlOVkFMOwog CXN3aXRjaCAoY2ZnLmVuY2FwKSB7CiAJY2FzZSBMMlRQX0VOQ0FQVFlQRV9VRFA6Ci0tIAoyLjE0 LjMKCgpGcm9tIDZiMzVkZTNiMzY4YTA5NTA2YjZiMDM5MDQ3ZTNlMmEwMDM1ZTczMjcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwu bmV0PgpEYXRlOiBUdWUsIDEwIEFwciAyMDE4IDEyOjU3OjE4ICswMjAwClN1YmplY3Q6IFtQQVRD SCA3LzldIGlwX2dyZTogY2xlYXIgZmVhdHVyZSBmbGFncyB3aGVuIGluY29tcGF0aWJsZSBvX2Zs YWdzIGFyZQogc2V0CgpbIFVwc3RyZWFtIGNvbW1pdCAxY2M1OTU0ZjQ0MTUwYmI3MGNhYzA3YzNj YzVkZjdjZjBkZmI2MWVjIF0KCkNvbW1pdCBkZDlkNTk4YzY2NTcgKCJpcF9ncmU6IGFkZCB0aGUg c3VwcG9ydCBmb3IgaS9vX2ZsYWdzIHVwZGF0ZSB2aWEKbmV0bGluayIpIGFkZGVkIHRoZSBhYmls aXR5IHRvIGNoYW5nZSBvX2ZsYWdzLCBidXQgbWlzc2VkIHRoYXQgdGhlCkdTTy9MTFRYIGZlYXR1 cmVzIGFyZSBkaXNhYmxlZCBieSBkZWZhdWx0LCBhbmQgb25seSBlbmFibGVkIHNvbWUgZ3JlCmZl YXR1cmVzIGFyZSB1bnVzZWQuIFRodXMgd2UgYWxzbyBuZWVkIHRvIGRpc2FibGUgdGhlIEdTTy9M TFRYIGZlYXR1cmVzCm9uIHRoZSBkZXZpY2Ugd2hlbiB0aGUgVFVOTkVMX1NFUSBvciBUVU5ORUxf Q1NVTSBmbGFncyBhcmUgc2V0LgoKVGhlc2UgdHdvIGV4YW1wbGVzIHNob3VsZCByZXN1bHQgaW4g dGhlIHNhbWUgZmVhdHVyZXMgYmVpbmcgc2V0OgoKICAgIGlwIGxpbmsgYWRkIGdyZV9ub25lIHR5 cGUgZ3JlIGxvY2FsIDE5Mi4xNjguMC4xMCByZW1vdGUgMTkyLjE2OC4wLjIwIHR0bCAyNTUga2V5 IDAKCiAgICBpcCBsaW5rIHNldCBncmVfbm9uZSB0eXBlIGdyZSBzZXEKICAgIGlwIGxpbmsgYWRk IGdyZV9zZXEgdHlwZSBncmUgbG9jYWwgMTkyLjE2OC4wLjEwIHJlbW90ZSAxOTIuMTY4LjAuMjAg dHRsIDI1NSBrZXkgMSBzZXEKCkZpeGVzOiBkZDlkNTk4YzY2NTcgKCJpcF9ncmU6IGFkZCB0aGUg c3VwcG9ydCBmb3IgaS9vX2ZsYWdzIHVwZGF0ZSB2aWEgbmV0bGluayIpClNpZ25lZC1vZmYtYnk6 IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpSZXZpZXdlZC1ieTogWGluIExv bmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1ieTogV2lsbGlhbSBUdSA8dTkwMTIwNjNA Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBfZ3JlLmMgfCA2ICsrKysrKwogMSBmaWxlIGNoYW5nZWQs IDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2dyZS5jIGIvbmV0L2lw djQvaXBfZ3JlLmMKaW5kZXggMDkwMWRlNDJlZDg1Li41ODZhMDA4YjE2NDIgMTAwNjQ0Ci0tLSBh L25ldC9pcHY0L2lwX2dyZS5jCisrKyBiL25ldC9pcHY0L2lwX2dyZS5jCkBAIC03NzgsOCArNzc4 LDE0IEBAIHN0YXRpYyB2b2lkIGlwZ3JlX2xpbmtfdXBkYXRlKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsIGJvb2wgc2V0X210dSkKIAkJICAgIHR1bm5lbC0+ZW5jYXAudHlwZSA9PSBUVU5ORUxfRU5D QVBfTk9ORSkgewogCQkJZGV2LT5mZWF0dXJlcyB8PSBORVRJRl9GX0dTT19TT0ZUV0FSRTsKIAkJ CWRldi0+aHdfZmVhdHVyZXMgfD0gTkVUSUZfRl9HU09fU09GVFdBUkU7CisJCX0gZWxzZSB7CisJ CQlkZXYtPmZlYXR1cmVzICY9IH5ORVRJRl9GX0dTT19TT0ZUV0FSRTsKKwkJCWRldi0+aHdfZmVh dHVyZXMgJj0gfk5FVElGX0ZfR1NPX1NPRlRXQVJFOwogCQl9CiAJCWRldi0+ZmVhdHVyZXMgfD0g TkVUSUZfRl9MTFRYOworCX0gZWxzZSB7CisJCWRldi0+aHdfZmVhdHVyZXMgJj0gfk5FVElGX0Zf R1NPX1NPRlRXQVJFOworCQlkZXYtPmZlYXR1cmVzICY9IH4oTkVUSUZfRl9MTFRYIHwgTkVUSUZf Rl9HU09fU09GVFdBUkUpOwogCX0KIH0KIAotLSAKMi4xNC4zCgoKRnJvbSA0Nzg1ODc4ODRhMGQ3 MTQwYTg2YWU1ZTE5MzZjNDRkYWJhMmU3MDhkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwgMTEgQXByIDIw MTggMTU6MzA6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDgvOV0gdmhvc3Q6IEZpeCB2aG9zdF9j b3B5X3RvX3VzZXIoKQoKWyBVcHN0cmVhbSBjb21taXQgN2NlZDZjOThjN2FiN2ExZjY3NDM5MzFl Mjg2NzFiODMzYWY3OWIxZSBdCgp2aG9zdF9jb3B5X3RvX3VzZXIgaXMgdXNlZCB0byBjb3B5IHZy aW5nIHVzZWQgZWxlbWVudHMgdG8gdXNlcnNwYWNlLgpXZSBzaG91bGQgdXNlIFZIT1NUX0FERFJf VVNFRCBpbnN0ZWFkIG9mIFZIT1NUX0FERFJfREVTQy4KCkZpeGVzOiBmODg5NDkxMzgwNTggKCJ2 aG9zdDogaW50cm9kdWNlIE8oMSkgdnEgbWV0YWRhdGEgY2FjaGUiKQpTaWduZWQtb2ZmLWJ5OiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBKYXNvbiBXYW5nIDxq YXNvd2FuZ0ByZWRoYXQuY29tPgpBY2tlZC1ieTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvdmhvc3Qvdmhvc3QuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qv dmhvc3QuYyBiL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYwppbmRleCA5M2ZkMGM3NWIwZDguLmJlNmE0 YjZhNzZjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aG9zdC92aG9zdC5jCisrKyBiL2RyaXZlcnMv dmhvc3Qvdmhvc3QuYwpAQCAtNzQ0LDcgKzc0NCw3IEBAIHN0YXRpYyBpbnQgdmhvc3RfY29weV90 b191c2VyKHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxLCB2b2lkIF9fdXNlciAqdG8sCiAJCXN0 cnVjdCBpb3ZfaXRlciB0OwogCQl2b2lkIF9fdXNlciAqdWFkZHIgPSB2aG9zdF92cV9tZXRhX2Zl dGNoKHZxLAogCQkJCSAgICAgKHU2NCkodWludHB0cl90KXRvLCBzaXplLAotCQkJCSAgICAgVkhP U1RfQUREUl9ERVNDKTsKKwkJCQkgICAgIFZIT1NUX0FERFJfVVNFRCk7CiAKIAkJaWYgKHVhZGRy KQogCQkJcmV0dXJuIF9fY29weV90b191c2VyKHVhZGRyLCBmcm9tLCBzaXplKTsKLS0gCjIuMTQu MwoKCkZyb20gZmQ4Y2YwZmI1ZGYwMzQzOGI1ZmE0MjY2ZDNjNjMyNWJiYzljZGYxOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGhpbCBFbHdlbGwgPHBoaWxAcmFzcGJlcnJ5cGkub3Jn PgpEYXRlOiBXZWQsIDExIEFwciAyMDE4IDEwOjU5OjE3ICswMTAwClN1YmplY3Q6IFtQQVRDSCA5 LzldIGxhbjc4eHg6IENvcnJlY3RseSBpbmRpY2F0ZSBpbnZhbGlkIE9UUAoKWyBVcHN0cmVhbSBj b21taXQgNGJmYzMzODA3YTlhMDI3NjRiZGQxZTQyZTc5NGIzYjQwMTI0MGYyNyBdCgpsYW43OHh4 X3JlYWRfb3RwIHRyaWVzIHRvIHJldHVybiAtRUlOVkFMIGluIHRoZSBldmVudCBvZiBpbnZhbGlk IE9UUApjb250ZW50LCBidXQgdGhlIHZhbHVlIGdldHMgb3ZlcndyaXR0ZW4gYmVmb3JlIGl0IGlz IHJldHVybmVkIGFuZCB0aGUKcmVhZCBnb2VzIGFoZWFkIGFueXdheS4gTWFrZSB0aGUgcmVhZCBj b25kaXRpb25hbCBhcyBpdCBzaG91bGQgYmUKYW5kIHByZXNlcnZlIHRoZSBlcnJvciBjb2RlLgoK Rml4ZXM6IDU1ZDdkZTlkZTZjMyAoIk1pY3JvY2hpcCdzIExBTjc4MDAgZmFtaWx5IFVTQiAyLzMg dG8gMTAvMTAwLzEwMDAgRXRoZXJuZXQgZGV2aWNlIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IFBo aWwgRWx3ZWxsIDxwaGlsQHJhc3BiZXJyeXBpLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9sYW43OHh4 LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMgYi9kcml2ZXJzL25ldC91 c2IvbGFuNzh4eC5jCmluZGV4IDU1YTc4ZWI5Njk2MS4uMzJjZjIxNzE2ZjE5IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9sYW43OHh4 LmMKQEAgLTkyOCw3ICs5MjgsOCBAQCBzdGF0aWMgaW50IGxhbjc4eHhfcmVhZF9vdHAoc3RydWN0 IGxhbjc4eHhfbmV0ICpkZXYsIHUzMiBvZmZzZXQsCiAJCQlvZmZzZXQgKz0gMHgxMDA7CiAJCWVs c2UKIAkJCXJldCA9IC1FSU5WQUw7Ci0JCXJldCA9IGxhbjc4eHhfcmVhZF9yYXdfb3RwKGRldiwg b2Zmc2V0LCBsZW5ndGgsIGRhdGEpOworCQlpZiAoIXJldCkKKwkJCXJldCA9IGxhbjc4eHhfcmVh ZF9yYXdfb3RwKGRldiwgb2Zmc2V0LCBsZW5ndGgsIGRhdGEpOwogCX0KIAogCXJldHVybiByZXQ7 Ci0tIAoyLjE0LjMKCg== ----Next_Part(Fri_Apr_13_13_47_16_2018_047)----