From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5906 invoked by alias); 20 Apr 2017 15:44:31 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 5816 invoked by uid 89); 20 Apr 2017 15:44:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-22.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_SORBS_SPAM,RP_MATCHES_RCVD,SPF_PASS,UNSUBSCRIBE_BODY autolearn=ham version=3.3.2 spammy=Former, 1747, __data, substantial X-HELO: mailbackend.panix.com X-Gm-Message-State: AN3rC/5hgd0ON2GQQTbKN4vdG9TQqpbq6Q42z/SUqxKEff/EkAWjnhRe OmHWObaL7C6JKhgrj8RTpuVTPJKHTw== X-Received: by 10.36.46.81 with SMTP id i78mr4597589ita.39.1492703057069; Thu, 20 Apr 2017 08:44:17 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1470418850-22175-1-git-send-email-adhemerval.zanella@linaro.org> <1470688986-8798-1-git-send-email-adhemerval.zanella@linaro.org> From: Zack Weinberg Date: Thu, 20 Apr 2017 15:44:00 -0000 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Maintaining libio (was: Re: [PATCH v2 1/2] libio: Multiple fixes for open_{w}memstram (BZ#18241 and BZ#20181)) To: Florian Weimer Cc: GNU C Library Content-Type: multipart/mixed; boundary=001a114a93ce78f647054d9b0333 X-SW-Source: 2017-04/txt/msg00431.txt.bz2 --001a114a93ce78f647054d9b0333 Content-Type: text/plain; charset=UTF-8 Content-length: 934 On Wed, Apr 19, 2017 at 5:17 AM, Florian Weimer wrote: > > I'm leaning towards a clean break: Stop installing . Remove all > symbols related to external vtable support (i.e., an ABI break, so that > affected programs fail in a clean manner). Do this now, and revisit it for > glibc 2.27 if someone actually has an application that breaks due to this. If you pull branch zack/no-libio-h you will get a libc that does not install libio.h. I didn't convert any of the currently-exposed _IO_ symbols into compat symbols, and I strongly suspect that I broke support for the old (GLIBC_2.0) FILE object, but this should be good enough to do archive rebuilds against. For convenience, the changes are attached. However, the branch is built on top of a bunch of my other header cleanup work (_ISOMAC testsuite and several bits/types/ conversions) so do not expect the attached patch to apply to trunk. zw --001a114a93ce78f647054d9b0333 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Don-t-install-libio.h-or-_G_config.h.patch" Content-Disposition: attachment; filename="0001-Don-t-install-libio.h-or-_G_config.h.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j1qksrcb0 Content-length: 112175 RnJvbSBjNTE3NmZiNzQyNzlmZGU1ODBiYzMxYTM4NTg1MjY0NWY5MTBiNWZh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBaYWNrIFdlaW5iZXJn IDx6YWNrd0BwYW5peC5jb20+CkRhdGU6IFRodSwgMjAgQXByIDIwMTcgMTE6 MjE6MzAgLTA0MDAKU3ViamVjdDogW1BBVENIXSBEb24ndCBpbnN0YWxsIGxp YmlvLmggb3IgX0dfY29uZmlnLmguCgpUaGlzIGlzIGFuIGV4cGVyaW1lbnRh bCBwYXRjaCB3aGljaCByZW1vdmVzIGxpYmlvLmggKGFuZCBfR19jb25maWcu aCkKZnJvbSB0aGUgc2V0IG9mIGFwcGxpY2F0aW9uLWV4cG9zZWQgaGVhZGVy cy4gIEFmdGVyIHRoaXMgY2hhbmdlLCB0aGUKcHVibGljIHN0ZGlvLmggZG9l cyBub3QgZGVmaW5lIGFueSBzeW1ib2xzIHdob3NlIG5hbWVzIGJlZ2luIHdp dGggX0dfCm5vciBfSU9fLCBleGNlcHQgdGhhdCB3aGVuIG9wdGltaXppbmcs IHRoZSBndXRzIG9mIHN0cnVjdCBfSU9fRklMRSBhbmQKdGhyZWUgb2YgdGhl IGZsYWcgY29uc3RhbnRzIGFyZSB2aXNpYmxlIChzZWUgYml0cy9zdGRpby5o IGFuZApiaXRzL3R5cGVzL0ZJTEVfaW50ZXJuYWxzLmgpLiAgVGhlcmUgaXMg YSBzbWFsbCBhbW91bnQgb2YgY29kZQpkdXBsaWNhdGlvbiBpbiBiaXRzL3N0 ZGlvLmgsIG9mIG1hY3JvIGJvZGllcyBmcm9tIGxpYmlvLmggdGhhdCBhcmUg bm8KbG9uZ2VyIGF2YWlsYWJsZS4gIEEgbnVtYmVyIG9mIGludGVybmFsIC5j IGZpbGVzIHRoYXQgd2VyZSBtYW51YWxseQpkb2luZyBQTFQgYnlwYXNzIGZv ciBmbG9ja2ZpbGUvZnVubG9ja2ZpbGUgY2FuIG5vdyByZWx5IG9uCmluY2x1 ZGUvc3RkaW8uaCB0byBkbyBpdCBmb3IgdGhlbS4KCkl0IHBhc3NlcyB0aGUg dGVzdHN1aXRlIG9uIHg4Nl82NC1saW51eCwgYnV0IGl0IG5lZWRzIGEgZ3Jl YXQgZGVhbCBvZgphZGRpdGlvbmFsIHRlc3Rpbmc7IGluIHBhcnRpY3VsYXIg SSdtIGFsbW9zdCBjZXJ0YWluIEkgYnJva2UgdGhlCnN1cHBvcnQgZm9yIG9s ZC1mb3JtYXQgKEdMSUJDXzIuMCkgc3RydWN0IF9JT19GSUxFLCB3aGljaCBp cwpjb25maWd1cmVkIG91dCBvbiB0aGlzIHRhcmdldC4gIFRlc3RpbmcgdGhp cyBwcm9wZXJseSB3b3VsZCByZXF1aXJlCnNvbWVvbmUgdG8gZ2V0IHRoZWly IGhhbmRzIG9uIF9yZWFsbHlfIG9sZCBiaW5hcmllcywgY29tcGlsZWQgYWdh aW5zdApnbGliYyAyLjAsIHBvc3NpYmx5IHN0YXRpY2FsbHktbGlua2VkLWJ1 dC11c2luZy1OU1MuICBVbmZvcnR1bmF0ZWx5LApsaWJjLnNvIGNhbm5vdCBi ZSBleHBlY3RlZCB0byBiZSBiaW5hcnkgaWRlbnRpY2FsLgoKSG93ZXZlciwg dGhpcyBzaG91bGQgYmUgcmVhZHkgdG8gZmVlZCBpbnRvIGFyY2hpdmUgcmVi dWlsZHMgdG8gZmluZApvdXQgd2hhdCBhcHBsaWNhdGlvbnMgYnJlYWsuCgpT dWJzdGFudGlhbCBjbGVhbi11cHMgdG8gdGhlIGxpYmlvIGltcGxlbWVudGF0 aW9uIGFyZSBwb3NzaWJsZSBpZiB0aGlzCnN0aWNrcywgYnV0IEkgaGF2ZW4n dCBkb25lICdlbTsgdGhpcyBpcyBpbnRlbmRlZCB0byBiZSBtaW5pbWFsLgoK CSogbGliaW8vTWFrZWZpbGU6IERvbid0IGluc3RhbGwgbGliaW8uaCBvciBf R19jb25maWcuaC4gIERvIGluc3RhbGwKCWJpdHMvdHlwZXMvRklMRV9pbnRl cm5hbHMuaCwgYml0cy90eXBlcy9jb29raWVfaW9fZnVuY3Rpb25zX3QuaCwK CWFuZCBiaXRzL3R5cGVzL19fZnBvc190LmguCgoJKiBsaWJpby9zdGRpby5o OiBEb24ndCBpbmNsdWRlIGxpYmlvLmguICBHZXQgX19nbnVjX3ZhX2xpc3QK CWRpcmVjdGx5IGZyb20gc3RkYXJnLmgsIF9fZnBvc190IGFuZCBfX2Zwb3M2 NF90IGZyb20KCWJpdHMvdHlwZXMvX19mcG9zX3QuaCwgYW5kIHRoZSBjb29r aWUgdHlwZXMgZnJvbQoJYml0cy90eXBlcy9jb29raWVfaW9fZnVuY3Rpb25z X3QuaC4gIENoYW5nZSBhbGwgdXNlcyBvZgoJX0dfdmFfbGlzdCwgX0dfZnBv c190LCBfR19mcG9zNjRfdCwgX0lPX0ZJTEUsCglfSU9fY29va2llX2lvX2Z1 bmN0aW9uc190LCBhbmQgX0lPX3NzaXplX3QgdG8gX19nbnVjX3ZhX2xpc3Qs CglfX2Zwb3NfdCwgX19mcG9zNjRfdCwgRklMRSwgY29va2llX2lvX2Z1bmN0 aW9uc190LCBhbmQgX19zc2l6ZV90CglyZXNwZWN0aXZlbHkuCglEbyBub3Qg ZGVmaW5lIGdldGMgbm9yIHB1dGMgYXMgbWFjcm9zLgoJRGVmaW5lIEJVRlNJ WiBhcyBsaXRlcmFsIDgxOTIuCgoJKiBsaWJpby9iaXRzL3R5cGVzL0ZJTEVf aW50ZXJuYWxzLmg6IE5ldyBoZWFkZXIuIFByb3ZpZGUgY29tcGxldGUKCWRl ZmluaXRpb24gb2Ygc3RydWN0IF9JT19GSUxFICh0aGUgY29tcGxldGUgdmVy c2lvbikgaGVyZS4KCUR1cGxpY2F0ZSBkZWZpbml0aW9ucyBvZiBfSU9fRU9G X1NFRU4sIF9JT19FUlJfU0VFTiwgYW5kIF9JT19VU0VSX0xPQ0sKCWhlcmUs IHdpdGggdmFsdWUgYXNzZXJ0aW9ucyBpZiB0aGV5IGFyZSBhbHJlYWR5IGRl ZmluZWQuCgkqIGxpYmlvL2JpdHMvdHlwZXMvX19mcG9zX3QuaDogTmV3IGhl YWRlci4gRGVmaW5lIF9fZnBvc190IGFuZAoJX19mcG9zNjRfdCBoZXJlLgoJ KiBsaWJpby9iaXRzL3R5cGVzL2Nvb2tpZV9pb19mdW5jdGlvbnNfdC5oOiBO ZXcgaGVhZGVyLiAgRGVmaW5lCgljb29raWVfcmVhZF9mdW5jdGlvbl90LCBj b29raWVfd3JpdGVfZnVuY3Rpb25fdCwKCWNvb2tpZV9zZWVrX2Z1bmN0aW9u X3QsIGNvb2tpZV9jbG9zZV9mdW5jdGlvbl90LCBhbmQKCWNvb2tpZV9pb19m dW5jdGlvbnNfdCBoZXJlLgoKCSogbGliaW8vbGliaW8uaDogSW5jbHVkZSBm ZWF0dXJlcy5oIGZpcnN0IHRoaW5nLCB0aGVuIGVycm9yIG91dCBpZgoJZWl0 aGVyIF9MSUJDIG9yIF9fVVNFX0dOVSBpcyBub3QgZGVmaW5lZCwgb3IgaWYg X0lTT01BQyBpcwoJZGVmaW5lZC4gIElubGluZSBhbGwgb2YgX0dfY29uZmln LmggZXhjZXB0IF9HX0hBVkVfTVJFTUFQIGhlcmUuCglHZXQgZGVmaW5pdGlv bnMgb2YgX19tYnN0YXRlX3QsIF9fZnBvc190LCBfX2Zwb3M2NF90LCBzdHJ1 Y3QKCV9JT19GSUxFLCBhbmQgdGhlIGNvb2tpZS1yZWxhdGVkIHR5cGVzIGZy b20gdGhlIHJlbGV2YW50CgliaXRzL3R5cGVzIGhlYWRlcnMuICBHZXQgZGVm aW5pdGlvbiBvZiBOVUxMIGZyb20gc3RkZGVmLmguCglNYWtlIGFsbCAjaWZk ZWYgX0xJQkMgYW5kICNpZiBfX0dOVUNfXyA+PSAoMiwzKSBibG9ja3MKCXVu Y29uZGl0aW9uYWwuICBSZW1vdmUgYWxsICNpZiAwIGFuZCAjaWZkZWYgX19j cGx1c3BsdXMgYmxvY2tzLgoJQ2hhbmdlIGFsbCB1c2VzIG9mIF9HX3ZhX2xp c3QsIF9HX2Zwb3NfdCwgYW5kIF9HX2Zwb3M2NF90IHRvCglfX2dudWNfdmFf bGlzdCwgX19mcG9zX3QsIF9fZnBvczY0X3QgcmVzcGVjdGl2ZWx5LiAgUHJv dmlkZQoJZGVmaW5pdGlvbnMgb2YgX1NURElPX1VTRVNfSU9TVFJFQU0sIF9f SEFWRV9DT0xVTU4sCglfSU9fZmlsZV9mbGFncywgX19pb19yZWFkX2ZuLCBf X2lvX3dyaXRlX2ZuLCBfX2lvX3NlZWtfZm4sCglfX2lvX2Nsb3NlX2ZuLCBf SU9fY29va2llX2lvX2Z1bmN0aW9uc190IGZvciB0aGUgc2FrZSBvZiB0aGUK CWltcGxlbWVudGF0aW9uLiAgV2hlbiBfSU9fVVNFX09MRF9JT19GSUxFIGlz IGRlZmluZWQsIGRlZmluZQoJc3RydWN0IF9JT19GSUxFX29sZC4KCSogbGli aW8vbGliaW9QLmg6IFdoZW4gX0lPX1VTRV9PTERfSU9fRklMRSBpcyBkZWZp bmVkLCBkZWZpbmUKCXN0cnVjdCBfSU9fRklMRV9vbGRfcGx1cy4KCSogbGli aW8vb2xkZmlsZW9wcy5jOiBDaGFuZ2UgYWxsIHVzZXMgb2YgX0lPX0ZJTEUg dG8gX0lPX0ZJTEVfb2xkLAoJX0lPX0ZJTEVfcGx1cyB0byBfSU9fRklMRV9v bGRfcGx1cywgX0lPX0ZJTEVfY29tcGxldGUgdG8gX0lPX0ZJTEUsCglhbmQg X0lPX0ZJTEVfY29tcGxldGVfcGx1cyB0byBfSU9fRklMRV9wbHVzLgoJKiBz eXNkZXBzL2dlbmVyaWMvX0dfY29uZmlnLmgsIHN5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L19HX2NvbmZpZy5oOgoJT25seSBwcm92aWRlIGRlZmluaXRpb24g b3Igbm9uLWRlZmluaXRpb24gb2YgX0dfSEFWRV9NUkVNQVAuCgkqIHN5c2Rl cHMvaWVlZTc1NC9sZGJsLW9wdC9ubGRibC1jb21wYXQuaDoKCUNoYW5nZSBh bGwgdXNlcyBvZiBfR192YV9saXN0IHRvIF9fZ251Y192YV9saXN0LgoKCSog bGliaW8vYml0cy9zdGRpby5oOiBBZGQgbXVsdGlwbGUtaW5jbHVzaW9uIGd1 YXJkLiBJbmNsdWRlCgliaXRzL3R5cGVzL0ZJTEVfaW50ZXJuYWxzLmguIERl Y2xhcmUgX191ZmxvdyBhbmQgX19vdmVyZmxvdyBoZXJlLgoJUmVtb3ZlIHJl ZHVuZGFudCBfX1VTRV9FWFRFUk5fSU5MSU5FUyBpZmRlZi4gIENoYW5nZSBh bGwgdXNlcyBvZgoJX0dfdmFfbGlzdCB0byBfX2dudWNfdmFfbGlzdCBhbmQg X0lPX3NzaXplX3QgdG8gX19zc2l6ZV90LgoJKGdldGNoYXIpOiBVc2UgZ2V0 Yywgbm90IF9JT19nZXRjLgoJKF9fZ2V0Y191bmxvY2tlZCwgX19wdXRjX3Vu bG9ja2VkKTogTmV3IGlubGluZXMsIGR1cGxpY2F0aW5nIHRoZQoJYm9kaWVz IG9mIF9JT19nZXRjX3VubG9ja2VkIGFuZAlfSU9fcHV0Y191bmxvY2tlZC4K CShmZ2V0Y191bmxvY2tlZCwgZ2V0Y191bmxvY2tlZCwgZ2V0Y2hhcl91bmxv Y2tlZCwgZnJlYWRfdW5sb2NrZWQpOgoJVXNlIF9fZ2V0Y191bmxvY2tlZC4K CShmcHV0Y191bmxvY2tlZCwgcHV0Y191bmxvY2tlZCwgcHV0Y2hhcl91bmxv Y2tlZCwgZndyaXRlX3VubG9ja2VkKToKCVVzZSBfX3B1dGNfdW5sb2NrZWQu CgkoZmVvZl91bmxvY2tlZCk6IER1cGxpY2F0ZSB0aGUgYm9keSBvZiBfSU9f ZmVvZl91bmxvY2tlZCBoZXJlLgoJKGZlcnJvcl91bmxvY2tlZCk6IER1cGxp Y2F0ZSB0aGUgYm9keSBvZiBfSU9fZmVycm9yX3VubG9ja2VkIGhlcmUuCgkq IGxpYmlvL2JpdHMvc3RkaW8yLmg6IENoYW5nZSBhbGwgdXNlcyBvZiBfR192 YV9saXN0IHRvIF9fZ251Y192YV9saXN0LgoJKGZyZWFkX3VubG9ja2VkKTog VXNlIF9fZ2V0Y191bmxvY2tlZC4KCSogbGliaW8vYml0cy90eXBlcy9GSUxF LmgsIGxpYmlvL2JpdHMvdHlwZXMvX19GSUxFLmg6IEV4cGxhaW4gaW4KCWNv bW1lbnRzIHdoeSB0aGUgbmFtZSBfSU9fRklMRSBpcyB1c2VkLgoKCSogaW5j bHVkZS9zdGRpby5oOiBDaGFuZ2UgYWxsIHVzZXMgb2YgX0dfdmFfbGlzdCB0 byBfX2dudWNfdmFfbGlzdCwKCV9JT19zc2l6ZV90IHRvIF9fc2l6ZV90LCBf SU9fRklMRSB0byBGSUxFLCBhbmQgX0lPX2Zwb3NfdCB0byBfX2Zwb3NfdC4K CVdoZW4gSVNfSU4gKGxpYmMpLCByZWRpcmVjdCBmbG9ja2ZpbGUgYW5kIGZ1 bmxvY2tmaWxlIHRvCglfX2Zsb2NrZmlsZSBhbmQgX19mdW5sb2NrZmlsZSBy ZXNwZWN0aXZlbHkuCglXaGVuIF9JT19NVFNBRkVfSU8gYW5kIG5vdCBfSVNP TUFDLCBpbmNsdWRlIHN0ZGlvLWxvY2suaCBiZWZvcmUKCXN0ZGlvLmggcHJv cGVyLgoJKiBpbmNsdWRlL3N0ZGlvX2V4dC5oOiBJbmNsdWRlIGJpdHMvdHlw ZXMvRklMRV9pbnRlcm5hbHMuaCBmb3IgdGhlCglzYWtlIG9mIHRoZSBpbmxp bmUgZGVmaW5pdGlvbiBvZiBfX2ZzZXRsb2NraW5nLgoJKiBpbmNsdWRlL2xp YmlvLmg6IEFkanVzdCAjaWZkZWYgbmVzdCB0byBhY3RpdmF0ZSBtdWx0aXBs ZS1pbmNsdWRlCglvcHRpbWl6YXRpb24uCgkqIGluY2x1ZGUvYml0cy90eXBl cy9GSUxFX2ludGVybmFscy5oLCBpbmNsdWRlL2JpdHMvdHlwZXMvX19mcG9z X3QuaAoJKiBpbmNsdWRlL2JpdHMvdHlwZXMvY29va2llX2lvX2Z1bmN0aW9u c190Lmg6IE5ldyB0cml2aWFsIHdyYXBwZXJzLgoJKiBpbmNsdWRlL2JpdHMv c3RkaW8uaDoJTmV3IHdyYXBwZXI7IG1hcmsgX191ZmxvdyBhbmQgX19vdmVy ZmxvdwoJYXMgaGlkZGVuIGZvciBpbnRyYS1saWJjIGNhbGxlcnMuCgoJKiBj c3UvaW5pdC5jOiBJbmNsdWRlIGxpYmlvLmgsIG5vdCBfR19jb25maWcuaC4K CgkqIGdycC9mZ2V0Z3JlbnRfci5jLCBncnAvcHV0Z3JlbnQuYywgZ3NoYWRv dy9mZ2V0c2dlbnRfci5jCgkqIGdzaGFkb3cvcHV0c2dlbnQuYywgbWlzYy9n ZXRwYXNzLmMsIG1pc2MvZ2V0dHR5ZW50LmMKCSogbWlzYy9tbnRlbnRfci5j LCBwb3NpeC9nZXRvcHQuYywgcHdkL2ZnZXRwd2VudF9yLmMKCSogc2hhZG93 L2ZnZXRzcGVudF9yLmMsIHNoYWRvdy9wdXRzcGVudC5jOgoJRG9uJ3QgaW5j bHVkZSBsaWJpby9pb2xpYmlvLmguICBEb24ndCByZWRlZmluZSBmbG9ja2Zp bGUgb3IKCWZ1bmxvY2tmaWxlLiAgRG9uJ3QgdXNlIF9JT19mbG9ja2ZpbGUg b3IgX0lPX2Z1bmxvY2tmaWxlLgoKCSogbGliaW8vX19mYnVmc2l6ZS5jLCBs aWJpby9fX2ZsYmYuYywgbGliaW8vX19mcGVuZGluZy5jCgkqIGxpYmlvL19f ZnJlYWRhYmxlLmMsIGxpYmlvL19fZnJlYWRpbmcuYywgbGliaW8vX19md3Jp dGFibGUuYwoJKiBsaWJpby9fX2Z3cml0aW5nLmMsIG1hbGxvYy9tYWxsb2Mu YzogSW5jbHVkZSBsaWJpby5oLgoJKiBtaXNjL2Vyci5jOiBJbmNsdWRlIGxp YmlvLmguIERvbid0IHJlZGVmaW5lIGZsb2NrZmlsZSBvciBmdW5sb2NrZmls ZS4KCgkqIHN0ZGlvLWNvbW1vbi90c3RnZXRsbi5jOiBJbmNsdWRlIHN5cy90 eXBlcy5oLiBEb24ndCByZWRlZmluZSBzc2l6ZV90LgoJKiBjb25mb3JtL2Rh dGEvc3RkaW8uaC1kYXRhOiB2YV9saXN0IG1heSBiZSBkZWZpbmVkIGFzIF9f Z251Y192YV9saXN0LAoJbm90IF9HX3ZhX2xpc3QuCgkqIGJlbmNodGVzdHMv c3RyY29sbC1pbnB1dHMvZmlsZWxpc3QjZW5fVVMuVVRGLTg6IFJlbW92ZSBf R19jb25maWcuaC4KLS0tCiBiZW5jaHRlc3RzL3N0cmNvbGwtaW5wdXRzL2Zp bGVsaXN0I2VuX1VTLlVURi04IHwgICAyIC0KIGNvbmZvcm0vZGF0YS9zdGRp by5oLWRhdGEgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGNzdS9p bml0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDIgKy0KIGdycC9mZ2V0Z3JlbnRfci5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDQgLQogZ3JwL3B1dGdyZW50LmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMyAtCiBnc2hhZG93L2ZnZXRzZ2Vu dF9yLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBnc2hh ZG93L3B1dHNnZW50LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA0ICstCiBpbmNsdWRlL2JpdHMvc3RkaW8uaCAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICA5ICsKIGluY2x1ZGUvYml0cy90eXBlcy9GSUxFX2lu dGVybmFscy5oICAgICAgICAgICAgfCAgIDEgKwogaW5jbHVkZS9iaXRzL3R5 cGVzL19fZnBvc190LmggICAgICAgICAgICAgICAgICB8ICAgMSArCiBpbmNs dWRlL2JpdHMvdHlwZXMvY29va2llX2lvX2Z1bmN0aW9uc190LmggICAgIHwg ICAxICsKIGluY2x1ZGUvbGliaW8uaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMTggKy0KIGluY2x1ZGUvc3RkaW8uaCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNTEgKystLQogaW5jbHVkZS9zdGRp b19leHQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBs aWJpby9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA3ICstCiBsaWJpby9fX2ZidWZzaXplLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAxICsKIGxpYmlvL19fZmxiZi5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogbGliaW8vX19mcGVu ZGluZy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBs aWJpby9fX2ZyZWFkYWJsZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIGxpYmlvL19fZnJlYWRpbmcuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgKwogbGliaW8vX19md3JpdGFibGUuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBsaWJpby9fX2Z3cml0 aW5nLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGxp YmlvL2JpdHMvc3RkaW8uaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgNzEgKysrKy0tCiBsaWJpby9iaXRzL3N0ZGlvMi5oICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDMxICstLQogbGliaW8vYml0cy90eXBlcy9G SUxFLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogbGliaW8v Yml0cy90eXBlcy9GSUxFX2ludGVybmFscy5oICAgICAgICAgICAgICB8IDEx MCArKysrKysrKwogbGliaW8vYml0cy90eXBlcy9fX0ZJTEUuaCAgICAgICAg ICAgICAgICAgICAgICB8ICAgNSArCiBsaWJpby9iaXRzL3R5cGVzL19fZnBv c190LmggICAgICAgICAgICAgICAgICAgIHwgIDE5ICsrCiBsaWJpby9iaXRz L3R5cGVzL2Nvb2tpZV9pb19mdW5jdGlvbnNfdC5oICAgICAgIHwgIDYxICsr KysrCiBsaWJpby9saWJpby5oICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMzMzICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIGxpYmlv L2xpYmlvUC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDcgKy0KIGxpYmlvL29sZGZpbGVvcHMuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNTQgKystLQogbGliaW8vc3RkaW8uaCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA4MiArKystLS0KIG1hbGxvYy9t YWxsb2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg KwogbWlzYy9lcnIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNCArLQogbWlzYy9nZXRwYXNzLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiAtCiBtaXNjL2dldHR0eWVudC5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzIC0KIG1pc2MvbW50 ZW50X3IuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMg LQogcG9zaXgvZ2V0b3B0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAxNCArLQogcHdkL2ZnZXRwd2VudF9yLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMyAtCiBzaGFkb3cvZmdldHNwZW50X3Iu YyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyIC0KIHNoYWRvdy9w dXRzcGVudC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg LQogc3RkaW8tY29tbW9uL3RzdGdldGxuLmMgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMyArLQogc3lzZGVwcy9nZW5lcmljL19HX2NvbmZpZy5oICAg ICAgICAgICAgICAgICAgICB8ICA1NCArLS0tCiBzeXNkZXBzL2llZWU3NTQv bGRibC1vcHQvbmxkYmwtY29tcGF0LmggICAgICAgIHwgIDEzICstCiBzeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9fR19jb25maWcuaCAgICAgICAgICAgIHwg IDUzICstLS0KIDQ2IGZpbGVzIGNoYW5nZWQsIDU0NyBpbnNlcnRpb25zKCsp LCA1MTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVk ZS9iaXRzL3N0ZGlvLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2Jp dHMvdHlwZXMvRklMRV9pbnRlcm5hbHMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IGluY2x1ZGUvYml0cy90eXBlcy9fX2Zwb3NfdC5oCiBjcmVhdGUgbW9kZSAx MDA2NDQgaW5jbHVkZS9iaXRzL3R5cGVzL2Nvb2tpZV9pb19mdW5jdGlvbnNf dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliaW8vYml0cy90eXBlcy9GSUxF X2ludGVybmFscy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliaW8vYml0cy90 eXBlcy9fX2Zwb3NfdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliaW8vYml0 cy90eXBlcy9jb29raWVfaW9fZnVuY3Rpb25zX3QuaAoKZGlmZiAtLWdpdCBh L2JlbmNodGVzdHMvc3RyY29sbC1pbnB1dHMvZmlsZWxpc3QjZW5fVVMuVVRG LTggYi9iZW5jaHRlc3RzL3N0cmNvbGwtaW5wdXRzL2ZpbGVsaXN0I2VuX1VT LlVURi04CmluZGV4IGViMjNiNDc0ODQuLjYzZDIyZmViMGEgMTAwNjQ0Ci0t LSBhL2JlbmNodGVzdHMvc3RyY29sbC1pbnB1dHMvZmlsZWxpc3QjZW5fVVMu VVRGLTgKKysrIGIvYmVuY2h0ZXN0cy9zdHJjb2xsLWlucHV0cy9maWxlbGlz dCNlbl9VUy5VVEYtOApAQCAtMTM3MCw3ICsxMzcwLDYgQEAgYS5vdXQuaAog c2VtZ2V0LmMKIHBvc2l4X2ZhbGxvY2F0ZS5jCiBnZXRwaWQuYwotX0dfY29u ZmlnLmgKIGdldHNvY2tvcHQuUwogcHRocmVhZF9zZXRhZmZpbml0eS5jCiBz ZXRpcHY0c291cmNlZmlsdGVyLmMKQEAgLTM0MDcsNyArMzQwNiw2IEBAIGEu b3V0LmgKIGxpYkJyb2tlbkxvY2FsZS5hYmlsaXN0CiBtYWNoaW5lLWdtb24u aAogX2l0b2EuaAotX0dfY29uZmlnLmgKIGxvY2FsLXNldHhpZC5oCiBkbC1v c2luZm8uaAogZGwtZHRwcm9jbnVtLmgKZGlmZiAtLWdpdCBhL2NvbmZvcm0v ZGF0YS9zdGRpby5oLWRhdGEgYi9jb25mb3JtL2RhdGEvc3RkaW8uaC1kYXRh CmluZGV4IDE2ODEyOGVhYzkuLjU0MjRkN2Q3ZjYgMTAwNjQ0Ci0tLSBhL2Nv bmZvcm0vZGF0YS9zdGRpby5oLWRhdGEKKysrIGIvY29uZm9ybS9kYXRhL3N0 ZGlvLmgtZGF0YQpAQCAtNDEsNyArNDEsNyBAQCB0eXBlIGZwb3NfdAogI2lm ICFkZWZpbmVkIElTTyAmJiAhZGVmaW5lZCBJU085OSAmJiAhZGVmaW5lZCBJ U08xMSAmJiAhZGVmaW5lZCBQT1NJWAogdHlwZSB2YV9saXN0CiAjZWxzZQot I2RlZmluZSB2YV9saXN0IF9HX3ZhX2xpc3QKKyNkZWZpbmUgdmFfbGlzdCBf X2dudWNfdmFfbGlzdAogI2VuZGlmCiB0eXBlIHNpemVfdAogI2lmIGRlZmlu ZWQgWE9QRU4ySzggfHwgZGVmaW5lZCBQT1NJWDIwMDgKZGlmZiAtLWdpdCBh L2NzdS9pbml0LmMgYi9jc3UvaW5pdC5jCmluZGV4IGJiNjgzODZjOWIuLjZk YTBhOWNkNDcgMTAwNjQ0Ci0tLSBhL2NzdS9pbml0LmMKKysrIGIvY3N1L2lu aXQuYwpAQCAtMTgsNyArMTgsNyBAQAogCiAjaWYgZGVmaW5lZCBfX0dOVUNf XyAmJiBfX0dOVUNfXyA+PSAyCiAKLSNpbmNsdWRlIDxfR19jb25maWcuaD4K KyNpbmNsdWRlIDxsaWJpby5oPgogCiAvKiBUaGlzIHJlY29yZHMgd2hpY2gg c3RkaW8gaXMgbGlua2VkIGFnYWluc3QgaW4gdGhlIGFwcGxpY2F0aW9uLiAq LwogY29uc3QgaW50IF9JT19zdGRpbl91c2VkID0gX0dfSU9fSU9fRklMRV9W RVJTSU9OOwpkaWZmIC0tZ2l0IGEvZ3JwL2ZnZXRncmVudF9yLmMgYi9ncnAv ZmdldGdyZW50X3IuYwppbmRleCA1YTQxMDdiYTljLi43YmNiZGZlNTM5IDEw MDY0NAotLS0gYS9ncnAvZmdldGdyZW50X3IuYworKysgYi9ncnAvZmdldGdy ZW50X3IuYwpAQCAtMjAsMTAgKzIwLDYgQEAKICNpbmNsdWRlIDxncnAuaD4K ICNpbmNsdWRlIDxzdGRpby5oPgogCi0jaW5jbHVkZSA8bGliaW8vaW9saWJp by5oPgotI2RlZmluZSBmbG9ja2ZpbGUocykgX0lPX2Zsb2NrZmlsZSAocykK LSNkZWZpbmUgZnVubG9ja2ZpbGUocykgX0lPX2Z1bmxvY2tmaWxlIChzKQot CiAvKiBEZWZpbmUgYSBsaW5lIHBhcnNpbmcgZnVuY3Rpb24gdXNpbmcgdGhl IGNvbW1vbiBjb2RlCiAgICB1c2VkIGluIHRoZSBuc3NfZmlsZXMgbW9kdWxl LiAgKi8KIApkaWZmIC0tZ2l0IGEvZ3JwL3B1dGdyZW50LmMgYi9ncnAvcHV0 Z3JlbnQuYwppbmRleCA1YTEyYzcwNTU3Li5jZDM1ODhkZWQzIDEwMDY0NAot LS0gYS9ncnAvcHV0Z3JlbnQuYworKysgYi9ncnAvcHV0Z3JlbnQuYwpAQCAt MjEsOSArMjEsNiBAQAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUg PGdycC5oPgogCi0jZGVmaW5lIGZsb2NrZmlsZShzKSBfSU9fZmxvY2tmaWxl IChzKQotI2RlZmluZSBmdW5sb2NrZmlsZShzKSBfSU9fZnVubG9ja2ZpbGUg KHMpCi0KICNkZWZpbmUgX1MoeCkJeCA/IHggOiAiIgogCiAvKiBXcml0ZSBh biBlbnRyeSB0byB0aGUgZ2l2ZW4gc3RyZWFtLgpkaWZmIC0tZ2l0IGEvZ3No YWRvdy9mZ2V0c2dlbnRfci5jIGIvZ3NoYWRvdy9mZ2V0c2dlbnRfci5jCmlu ZGV4IGYxZDA2NTAzMzMuLjk1YzIxZTk2MGMgMTAwNjQ0Ci0tLSBhL2dzaGFk b3cvZmdldHNnZW50X3IuYworKysgYi9nc2hhZG93L2ZnZXRzZ2VudF9yLmMK QEAgLTM4LDIxICszOCwyMSBAQCBfX2ZnZXRzZ2VudF9yIChGSUxFICpzdHJl YW0sIHN0cnVjdCBzZ3JwICpyZXNidWYsIGNoYXIgKmJ1ZmZlciwgc2l6ZV90 IGJ1ZmxlbiwKIHsKICAgY2hhciAqcDsKIAotICBfSU9fZmxvY2tmaWxlIChz dHJlYW0pOworICBmbG9ja2ZpbGUgKHN0cmVhbSk7CiAgIGRvCiAgICAgewog ICAgICAgYnVmZmVyW2J1ZmxlbiAtIDFdID0gJ1x4ZmYnOwogICAgICAgcCA9 IGZnZXRzX3VubG9ja2VkIChidWZmZXIsIGJ1Zmxlbiwgc3RyZWFtKTsKICAg ICAgIGlmIChwID09IE5VTEwgJiYgZmVvZl91bmxvY2tlZCAoc3RyZWFtKSkK IAl7Ci0JICBfSU9fZnVubG9ja2ZpbGUgKHN0cmVhbSk7CisJICBmdW5sb2Nr ZmlsZSAoc3RyZWFtKTsKIAkgICpyZXN1bHQgPSBOVUxMOwogCSAgX19zZXRf ZXJybm8gKEVOT0VOVCk7CiAJICByZXR1cm4gZXJybm87CiAJfQogICAgICAg aWYgKHAgPT0gTlVMTCB8fCBidWZmZXJbYnVmbGVuIC0gMV0gIT0gJ1x4ZmYn KQogCXsKLQkgIF9JT19mdW5sb2NrZmlsZSAoc3RyZWFtKTsKKwkgIGZ1bmxv Y2tmaWxlIChzdHJlYW0pOwogCSAgKnJlc3VsdCA9IE5VTEw7CiAJICBfX3Nl dF9lcnJubyAoRVJBTkdFKTsKIAkgIHJldHVybiBlcnJubzsKQEAgLTY3LDcg KzY3LDcgQEAgX19mZ2V0c2dlbnRfciAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qg c2dycCAqcmVzYnVmLCBjaGFyICpidWZmZXIsIHNpemVfdCBidWZsZW4sCiAJ ICAgICAhIHBhcnNlX2xpbmUgKGJ1ZmZlciwgKHZvaWQgKikgcmVzYnVmLCAo dm9pZCAqKSBidWZmZXIsIGJ1ZmxlbiwKIAkJCSAgICZlcnJubykpOwogCi0g IF9JT19mdW5sb2NrZmlsZSAoc3RyZWFtKTsKKyAgZnVubG9ja2ZpbGUgKHN0 cmVhbSk7CiAKICAgKnJlc3VsdCA9IHJlc2J1ZjsKICAgcmV0dXJuIDA7CmRp ZmYgLS1naXQgYS9nc2hhZG93L3B1dHNnZW50LmMgYi9nc2hhZG93L3B1dHNn ZW50LmMKaW5kZXggNGUyMTljNDc4YS4uNzAwNjNkNzRjMiAxMDA2NDQKLS0t IGEvZ3NoYWRvdy9wdXRzZ2VudC5jCisrKyBiL2dzaGFkb3cvcHV0c2dlbnQu YwpAQCAtNDAsNyArNDAsNyBAQCBwdXRzZ2VudCAoY29uc3Qgc3RydWN0IHNn cnAgKmcsIEZJTEUgKnN0cmVhbSkKICAgICAgIHJldHVybiAtMTsKICAgICB9 CiAKLSAgX0lPX2Zsb2NrZmlsZSAoc3RyZWFtKTsKKyAgZmxvY2tmaWxlIChz dHJlYW0pOwogCiAgIGlmIChmcHJpbnRmIChzdHJlYW0sICIlczolczoiLCBn LT5zZ19uYW1wLCBfUyAoZy0+c2dfcGFzc3dkKSkgPCAwKQogICAgICsrZXJy b3JzOwpAQCAtNzUsNyArNzUsNyBAQCBwdXRzZ2VudCAoY29uc3Qgc3RydWN0 IHNncnAgKmcsIEZJTEUgKnN0cmVhbSkKICAgaWYgKHB1dGNfdW5sb2NrZWQg KCdcbicsIHN0cmVhbSkgPT0gRU9GKQogICAgICsrZXJyb3JzOwogCi0gIF9J T19mdW5sb2NrZmlsZSAoc3RyZWFtKTsKKyAgZnVubG9ja2ZpbGUgKHN0cmVh bSk7CiAKICAgcmV0dXJuIGVycm9ycyA/IC0xIDogMDsKIH0KZGlmZiAtLWdp dCBhL2luY2x1ZGUvYml0cy9zdGRpby5oIGIvaW5jbHVkZS9iaXRzL3N0ZGlv LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNGFl YmM5ZWRmMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYml0cy9zdGRp by5oCkBAIC0wLDAgKzEsOSBAQAorI2lmbmRlZiBfQklUU19TVERJT19ICisj IGluY2x1ZGUgPGxpYmlvL2JpdHMvc3RkaW8uaD4KKyMgaWZuZGVmIF9JU09N QUMKKworbGliY19oaWRkZW5fcHJvdG8gKF9fdWZsb3cpCitsaWJjX2hpZGRl bl9wcm90byAoX19vdmVyZmxvdykKKworIyBlbmRpZgorI2VuZGlmCmRpZmYg LS1naXQgYS9pbmNsdWRlL2JpdHMvdHlwZXMvRklMRV9pbnRlcm5hbHMuaCBi L2luY2x1ZGUvYml0cy90eXBlcy9GSUxFX2ludGVybmFscy5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmE2NTNjODEwMWMKLS0t IC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2JpdHMvdHlwZXMvRklMRV9pbnRl cm5hbHMuaApAQCAtMCwwICsxIEBACisjaW5jbHVkZSA8bGliaW8vYml0cy90 eXBlcy9GSUxFX2ludGVybmFscy5oPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9i aXRzL3R5cGVzL19fZnBvc190LmggYi9pbmNsdWRlL2JpdHMvdHlwZXMvX19m cG9zX3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw Li4yZGNkYzk4ZDc1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9iaXRz L3R5cGVzL19fZnBvc190LmgKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgPGxp YmlvL2JpdHMvdHlwZXMvX19mcG9zX3QuaD4KZGlmZiAtLWdpdCBhL2luY2x1 ZGUvYml0cy90eXBlcy9jb29raWVfaW9fZnVuY3Rpb25zX3QuaCBiL2luY2x1 ZGUvYml0cy90eXBlcy9jb29raWVfaW9fZnVuY3Rpb25zX3QuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44N2Y3OTMwYzZlCi0t LSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9iaXRzL3R5cGVzL2Nvb2tpZV9p b19mdW5jdGlvbnNfdC5oCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlIDxsaWJp by9iaXRzL3R5cGVzL2Nvb2tpZV9pb19mdW5jdGlvbnNfdC5oPgpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saWJpby5oIGIvaW5jbHVkZS9saWJpby5oCmluZGV4 IGQyZmE3OTY3NTguLjU0ZWQ3MDRiZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bGliaW8uaAorKysgYi9pbmNsdWRlL2xpYmlvLmgKQEAgLTEsMTEgKzEsOSBA QAotI2lmICFkZWZpbmVkIF9JU09NQUMgJiYgZGVmaW5lZCBfSU9fTVRTQUZF X0lPCi0jIGluY2x1ZGUgPHN0ZGlvLWxvY2suaD4KLSNlbmRpZgotI2luY2x1 ZGUgPGxpYmlvL2xpYmlvLmg+Ci0KLSNpZm5kZWYgX0lTT01BQwotI2lmbmRl ZiBfTElCQ19MSUJJT19ICi0jZGVmaW5lIF9MSUJDX0xJQklPX0gKKyNpZm5k ZWYgX0lPX1NURElPX0gKKyMgaWYgIWRlZmluZWQgX0lTT01BQyAmJiBkZWZp bmVkIF9JT19NVFNBRkVfSU8KKyMgIGluY2x1ZGUgPHN0ZGlvLWxvY2suaD4K KyMgZW5kaWYKKyMgaW5jbHVkZSA8bGliaW8vbGliaW8uaD4KKyMgaWZuZGVm IF9JU09NQUMKIAogbGliY19oaWRkZW5fcHJvdG8gKF9fb3ZlcmZsb3cpCiBs aWJjX2hpZGRlbl9wcm90byAoX191bmRlcmZsb3cpCkBAIC00MSw1ICszOSw1 IEBAIGxpYmNfaGlkZGVuX3Byb3RvIChfSU9fdmZzY2FuZikKICMgZW5kaWYK ICNlbmRpZiAvKiBfSU9fTVRTQUZFX0lPICovCiAKLSNlbmRpZgotI2VuZGlm CisjIGVuZGlmIC8qICFfSVNPTUFDICovCisjZW5kaWYgLyogbGliaW8uaCAq LwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zdGRpby5oIGIvaW5jbHVkZS9zdGRp by5oCmluZGV4IGY2OGY2MzNiZDYuLjgyNGU5NzA0MzUgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvc3RkaW8uaAorKysgYi9pbmNsdWRlL3N0ZGlvLmgKQEAgLTEs NCArMSw3IEBACiAjaWZuZGVmIF9TVERJT19ICisjIGlmICFkZWZpbmVkIF9J U09NQUMgJiYgZGVmaW5lZCBfSU9fTVRTQUZFX0lPCisjICBpbmNsdWRlIDxz dGRpby1sb2NrLmg+CisjIGVuZGlmCiAjIGluY2x1ZGUgPGxpYmlvL3N0ZGlv Lmg+CiAjIGlmbmRlZiBfSVNPTUFDCiAKQEAgLTEwLDQ0ICsxMyw0NCBAQCBl eHRlcm4gaW50IF9fc25wcmludGYgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBz aXplX3QgX19tYXhsZW4sCiAgICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1h dF9fIChfX3ByaW50Zl9fLCAzLCA0KSkpOwogbGliY19oaWRkZW5fcHJvdG8g KF9fc25wcmludGYpCiBleHRlcm4gaW50IF9fdnNucHJpbnRmIChjaGFyICpf X3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4bGVuLAotCQkJY29uc3QgY2hh ciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX0dfdmFfbGlzdCBfX2FyZykKKwkJ CWNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9s aXN0IF9fYXJnKQogICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAo X19wcmludGZfXywgMywgMCkpKTsKIGV4dGVybiBpbnQgX192ZnNjYW5mIChG SUxFICpfX3Jlc3RyaWN0IF9fcywKIAkJICAgICAgY29uc3QgY2hhciAqX19y ZXN0cmljdCBfX2Zvcm1hdCwKLQkJICAgICAgX0dfdmFfbGlzdCBfX2FyZykK KwkJICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAgIF9fYXR0cmli dXRlX18gKChfX2Zvcm1hdF9fIChfX3NjYW5mX18sIDIsIDApKSk7CiBsaWJj X2hpZGRlbl9wcm90byAoX192ZnNjYW5mKQogZXh0ZXJuIGludCBfX3ZzY2Fu ZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKLQkJICAgICBf R192YV9saXN0IF9fYXJnKQorCQkgICAgIF9fZ251Y192YV9saXN0IF9fYXJn KQogICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9f LCAxLCAwKSkpOwotZXh0ZXJuIF9JT19zc2l6ZV90IF9fZ2V0bGluZSAoY2hh ciAqKl9fbGluZXB0ciwgc2l6ZV90ICpfX24sCitleHRlcm4gX19zc2l6ZV90 IF9fZ2V0bGluZSAoY2hhciAqKl9fbGluZXB0ciwgc2l6ZV90ICpfX24sCiAJ CQkgICAgICBGSUxFICpfX3N0cmVhbSk7CiBleHRlcm4gaW50IF9fdnNzY2Fu ZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsCiAJCSAgICAgIGNvbnN0 IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCi0JCSAgICAgIF9HX3ZhX2xp c3QgX19hcmcpCisJCSAgICAgIF9fZ251Y192YV9saXN0IF9fYXJnKQogICAg ICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAyLCAw KSkpOwogCiBleHRlcm4gaW50IF9fc3ByaW50Zl9jaGsgKGNoYXIgKiwgaW50 LCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgLi4uKSBfX1RIUk9XOwogZXh0ZXJu IGludCBfX3NucHJpbnRmX2NoayAoY2hhciAqLCBzaXplX3QsIGludCwgc2l6 ZV90LCBjb25zdCBjaGFyICosIC4uLikKICAgICAgX19USFJPVzsKIGV4dGVy biBpbnQgX192c3ByaW50Zl9jaGsgKGNoYXIgKiwgaW50LCBzaXplX3QsIGNv bnN0IGNoYXIgKiwKLQkJCSAgIF9HX3ZhX2xpc3QpIF9fVEhST1c7CisJCQkg ICBfX2dudWNfdmFfbGlzdCkgX19USFJPVzsKIGV4dGVybiBpbnQgX192c25w cmludGZfY2hrIChjaGFyICosIHNpemVfdCwgaW50LCBzaXplX3QsIGNvbnN0 IGNoYXIgKiwKLQkJCSAgICBfR192YV9saXN0KSBfX1RIUk9XOworCQkJICAg IF9fZ251Y192YV9saXN0KSBfX1RIUk9XOwogZXh0ZXJuIGludCBfX3ByaW50 Zl9jaGsgKGludCwgY29uc3QgY2hhciAqLCAuLi4pOwogZXh0ZXJuIGludCBf X2ZwcmludGZfY2hrIChGSUxFICosIGludCwgY29uc3QgY2hhciAqLCAuLi4p OwotZXh0ZXJuIGludCBfX3ZwcmludGZfY2hrIChpbnQsIGNvbnN0IGNoYXIg KiwgX0dfdmFfbGlzdCk7Ci1leHRlcm4gaW50IF9fdmZwcmludGZfY2hrIChG SUxFICosIGludCwgY29uc3QgY2hhciAqLCBfR192YV9saXN0KTsKK2V4dGVy biBpbnQgX192cHJpbnRmX2NoayAoaW50LCBjb25zdCBjaGFyICosIF9fZ251 Y192YV9saXN0KTsKK2V4dGVybiBpbnQgX192ZnByaW50Zl9jaGsgKEZJTEUg KiwgaW50LCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKIGV4dGVy biBjaGFyICpfX2ZnZXRzX3VubG9ja2VkX2NoayAoY2hhciAqYnVmLCBzaXpl X3Qgc2l6ZSwgaW50IG4sIEZJTEUgKmZwKTsKIGV4dGVybiBjaGFyICpfX2Zn ZXRzX2NoayAoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSwgaW50IG4sIEZJTEUg KmZwKTsKIGV4dGVybiBpbnQgX19hc3ByaW50Zl9jaGsgKGNoYXIgKiosIGlu dCwgY29uc3QgY2hhciAqLCAuLi4pIF9fVEhST1c7Ci1leHRlcm4gaW50IF9f dmFzcHJpbnRmX2NoayAoY2hhciAqKiwgaW50LCBjb25zdCBjaGFyICosIF9H X3ZhX2xpc3QpIF9fVEhST1c7CitleHRlcm4gaW50IF9fdmFzcHJpbnRmX2No ayAoY2hhciAqKiwgaW50LCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0 KSBfX1RIUk9XOwogZXh0ZXJuIGludCBfX2RwcmludGZfY2hrIChpbnQsIGlu dCwgY29uc3QgY2hhciAqLCAuLi4pOwotZXh0ZXJuIGludCBfX3ZkcHJpbnRm X2NoayAoaW50LCBpbnQsIGNvbnN0IGNoYXIgKiwgX0dfdmFfbGlzdCk7Citl eHRlcm4gaW50IF9fdmRwcmludGZfY2hrIChpbnQsIGludCwgY29uc3QgY2hh ciAqLCBfX2dudWNfdmFfbGlzdCk7CiBleHRlcm4gaW50IF9fb2JzdGFja19w cmludGZfY2hrIChzdHJ1Y3Qgb2JzdGFjayAqLCBpbnQsIGNvbnN0IGNoYXIg KiwgLi4uKQogICAgICBfX1RIUk9XOwogZXh0ZXJuIGludCBfX29ic3RhY2tf dnByaW50Zl9jaGsgKHN0cnVjdCBvYnN0YWNrICosIGludCwgY29uc3QgY2hh ciAqLAotCQkJCSAgX0dfdmFfbGlzdCkgX19USFJPVzsKKwkJCQkgIF9fZ251 Y192YV9saXN0KSBfX1RIUk9XOwogCiBleHRlcm4gaW50IF9faXNvYzk5X2Zz Y2FuZiAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwKIAkJCSAgICBjb25z dCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIF9fd3VyOwpAQCAt NTYsMTIgKzU5LDEyIEBAIGV4dGVybiBpbnQgX19pc29jOTlfc3NjYW5mIChj b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywKIAkJCSAgICBjb25zdCBjaGFy ICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIF9fVEhST1c7CiBleHRlcm4g aW50IF9faXNvYzk5X3Zmc2NhbmYgKEZJTEUgKl9fcmVzdHJpY3QgX19zLAog CQkJICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAotCQkJ ICAgICBfR192YV9saXN0IF9fYXJnKSBfX3d1cjsKKwkJCSAgICAgX19nbnVj X3ZhX2xpc3QgX19hcmcpIF9fd3VyOwogZXh0ZXJuIGludCBfX2lzb2M5OV92 c2NhbmYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCi0JCQkg ICAgX0dfdmFfbGlzdCBfX2FyZykgX193dXI7CisJCQkgICAgX19nbnVjX3Zh X2xpc3QgX19hcmcpIF9fd3VyOwogZXh0ZXJuIGludCBfX2lzb2M5OV92c3Nj YW5mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywKIAkJCSAgICAgY29u c3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKLQkJCSAgICAgX0dfdmFf bGlzdCBfX2FyZykgX19USFJPVzsKKwkJCSAgICAgX19nbnVjX3ZhX2xpc3Qg X19hcmcpIF9fVEhST1c7CiBsaWJjX2hpZGRlbl9wcm90byAoX19pc29jOTlf dnNzY2FuZikKIGxpYmNfaGlkZGVuX3Byb3RvIChfX2lzb2M5OV92ZnNjYW5m KQogCkBAIC05Niw5ICs5OSwxNSBAQCBsaWJjX2hpZGRlbl9wcm90byAoX19m b3J0aWZ5X2ZhaWwpCiAKIC8qIEFjcXVpcmUgb3duZXJzaGlwIG9mIFNUUkVB TS4gICovCiBleHRlcm4gdm9pZCBfX2Zsb2NrZmlsZSAoRklMRSAqX19zdHJl YW0pOworIyAgaWYgSVNfSU4gKGxpYmMpCisjICAgZGVmaW5lIGZsb2NrZmls ZShzdHJlYW0pIF9fZmxvY2tmaWxlKHN0cmVhbSkKKyMgIGVuZGlmCiAKIC8q IFJlbGlucXVpc2ggdGhlIG93bmVyc2hpcCBncmFudGVkIGZvciBTVFJFQU0u ICAqLwogZXh0ZXJuIHZvaWQgX19mdW5sb2NrZmlsZSAoRklMRSAqX19zdHJl YW0pOworIyAgaWYgSVNfSU4gKGxpYmMpCisjICAgZGVmaW5lIGZ1bmxvY2tm aWxlKHN0cmVhbSkgX19mdW5sb2NrZmlsZShzdHJlYW0pCisjICBlbmRpZgog CiAvKiBUcnkgdG8gYWNxdWlyZSBvd25lcnNoaXAgb2YgU1RSRUFNIGJ1dCBk byBub3QgYmxvY2sgaWYgaXQgaXMgbm90CiAgICBwb3NzaWJsZS4gICovCkBA IC0xMTcsMTggKzEyNiwxOCBAQCBleHRlcm4gaW50IF9zeXNfbmVycl9pbnRl cm5hbCBhdHRyaWJ1dGVfaGlkZGVuOwogCiBsaWJjX2hpZGRlbl9wcm90byAo X19hc3ByaW50ZikKICMgIGlmIElTX0lOIChsaWJjKQotZXh0ZXJuIF9JT19G SUxFICpfSU9fbmV3X2ZvcGVuIChjb25zdCBjaGFyKiwgY29uc3QgY2hhciop OworZXh0ZXJuIEZJTEUgKl9JT19uZXdfZm9wZW4gKGNvbnN0IGNoYXIqLCBj b25zdCBjaGFyKik7CiAjICAgZGVmaW5lIGZvcGVuKGZuYW1lLCBtb2RlKSBf SU9fbmV3X2ZvcGVuIChmbmFtZSwgbW9kZSkKLWV4dGVybiBfSU9fRklMRSAq X0lPX25ld19mZG9wZW4gKGludCwgY29uc3QgY2hhciopOworZXh0ZXJuIEZJ TEUgKl9JT19uZXdfZmRvcGVuIChpbnQsIGNvbnN0IGNoYXIqKTsKICMgICBk ZWZpbmUgZmRvcGVuKGZkLCBtb2RlKSBfSU9fbmV3X2Zkb3BlbiAoZmQsIG1v ZGUpCi1leHRlcm4gaW50IF9JT19uZXdfZmNsb3NlIChfSU9fRklMRSopOwor ZXh0ZXJuIGludCBfSU9fbmV3X2ZjbG9zZSAoRklMRSopOwogIyAgIGRlZmlu ZSBmY2xvc2UoZnApIF9JT19uZXdfZmNsb3NlIChmcCkKLWV4dGVybiBpbnQg X0lPX2ZwdXRzIChjb25zdCBjaGFyKiwgX0lPX0ZJTEUqKTsKK2V4dGVybiBp bnQgX0lPX2ZwdXRzIChjb25zdCBjaGFyKiwgRklMRSopOwogbGliY19oaWRk ZW5fcHJvdG8gKF9JT19mcHV0cykKICMgICBkZWZpbmUgZnB1dHMoc3RyLCBm cCkgX0lPX2ZwdXRzIChzdHIsIGZwKQotZXh0ZXJuIGludCBfSU9fbmV3X2Zz ZXRwb3MgKF9JT19GSUxFICosIGNvbnN0IF9JT19mcG9zX3QgKik7CitleHRl cm4gaW50IF9JT19uZXdfZnNldHBvcyAoRklMRSAqLCBjb25zdCBfX2Zwb3Nf dCAqKTsKICMgICBkZWZpbmUgZnNldHBvcyhmcCwgcG9zcCkgX0lPX25ld19m c2V0cG9zIChmcCwgcG9zcCkKLWV4dGVybiBpbnQgX0lPX25ld19mZ2V0cG9z IChfSU9fRklMRSAqLCBfSU9fZnBvc190ICopOworZXh0ZXJuIGludCBfSU9f bmV3X2ZnZXRwb3MgKEZJTEUgKiwgX19mcG9zX3QgKik7CiAjICAgZGVmaW5l IGZnZXRwb3MoZnAsIHBvc3ApIF9JT19uZXdfZmdldHBvcyAoZnAsIHBvc3Ap CiAjICBlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3N0ZGlvX2V4dC5o IGIvaW5jbHVkZS9zdGRpb19leHQuaAppbmRleCAyOWM2ZTY4Y2RiLi43Zjg4 MzUyMTFlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3N0ZGlvX2V4dC5oCisrKyBi L2luY2x1ZGUvc3RkaW9fZXh0LmgKQEAgLTIsNiArMiw3IEBACiAjaW5jbHVk ZSA8c3RkaW8tY29tbW9uL3N0ZGlvX2V4dC5oPgogCiAjIGlmbmRlZiBfSVNP TUFDCisjIGluY2x1ZGUgPGxpYmlvL2JpdHMvdHlwZXMvRklMRV9pbnRlcm5h bHMuaD4KIAogbGliY19oaWRkZW5fcHJvdG8gKF9fZnNldGxvY2tpbmcpCiAK ZGlmZiAtLWdpdCBhL2xpYmlvL01ha2VmaWxlIGIvbGliaW8vTWFrZWZpbGUK aW5kZXggYTAwMmEzMzY1Yy4uNjMxOTFmMzg2YyAxMDA2NDQKLS0tIGEvbGli aW8vTWFrZWZpbGUKKysrIGIvbGliaW8vTWFrZWZpbGUKQEAgLTIyLDkgKzIy LDEwIEBAIHN1YmRpcgk6PSBsaWJpbwogCiBpbmNsdWRlIC4uL01ha2Vjb25m aWcKIAotaGVhZGVycwk6PSBzdGRpby5oIGxpYmlvLmggX0dfY29uZmlnLmgg Yml0cy9zdGRpby5oIFwKLQkgICBiaXRzL3N5c19lcnJsaXN0LmggYml0cy9z dGRpbzIuaCBiaXRzL3N0ZGlvLWxkYmwuaCBiaXRzL2xpYmlvLWxkYmwuaCBc Ci0JICAgYml0cy90eXBlcy9GSUxFLmggYml0cy90eXBlcy9fX0ZJTEUuaAor aGVhZGVycyA6PSBzdGRpby5oIGJpdHMvc3RkaW8uaCBiaXRzL3N0ZGlvMi5o IGJpdHMvc3lzX2Vycmxpc3QuaAkgICAgICBcCisJICAgYml0cy9zdGRpby1s ZGJsLmggYml0cy9saWJpby1sZGJsLmgJCQkJICAgICAgXAorCSAgIGJpdHMv dHlwZXMvRklMRS5oIGJpdHMvdHlwZXMvX19GSUxFLmggYml0cy90eXBlcy9G SUxFX2ludGVybmFscy5oICBcCisJICAgYml0cy90eXBlcy9jb29raWVfaW9f ZnVuY3Rpb25zX3QuaCBiaXRzL3R5cGVzL19fZnBvc190LmgKIAogcm91dGlu ZXMJOj0JCQkJCQkJICAgICAgXAogCWZpbGVkb2FsbG9jIGlvZmNsb3NlIGlv ZmRvcGVuIGlvZmZsdXNoIGlvZmdldHBvcyBpb2ZnZXRzIGlvZm9wZW4gICAg ICBcCmRpZmYgLS1naXQgYS9saWJpby9fX2ZidWZzaXplLmMgYi9saWJpby9f X2ZidWZzaXplLmMKaW5kZXggNzRkMmViYmU4MS4uOGMwMGNhNzY1OCAxMDA2 NDQKLS0tIGEvbGliaW8vX19mYnVmc2l6ZS5jCisrKyBiL2xpYmlvL19fZmJ1 ZnNpemUuYwpAQCAtMTYsNiArMTYsNyBAQAogICAgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LiAgKi8KIAogI2luY2x1ZGUgPHN0ZGlvX2V4dC5o PgorI2luY2x1ZGUgPGxpYmlvLmg+CiAKIHNpemVfdAogX19mYnVmc2l6ZSAo RklMRSAqZnApCmRpZmYgLS1naXQgYS9saWJpby9fX2ZsYmYuYyBiL2xpYmlv L19fZmxiZi5jCmluZGV4IDkyOTE3NWRmNzAuLmRmYTY4YWEyZTggMTAwNjQ0 Ci0tLSBhL2xpYmlvL19fZmxiZi5jCisrKyBiL2xpYmlvL19fZmxiZi5jCkBA IC0xNiw2ICsxNiw3IEBACiAgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLwogCiAjaW5jbHVkZSA8c3RkaW9fZXh0Lmg+CisjaW5jbHVk ZSA8bGliaW8uaD4KIAogaW50CiBfX2ZsYmYgKEZJTEUgKmZwKQpkaWZmIC0t Z2l0IGEvbGliaW8vX19mcGVuZGluZy5jIGIvbGliaW8vX19mcGVuZGluZy5j CmluZGV4IGU5NTc4Mzk5ODUuLjAwOGNmMDhmYjQgMTAwNjQ0Ci0tLSBhL2xp YmlvL19fZnBlbmRpbmcuYworKysgYi9saWJpby9fX2ZwZW5kaW5nLmMKQEAg LTE2LDYgKzE2LDcgQEAKICAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4gICovCiAKICNpbmNsdWRlIDxzdGRpb19leHQuaD4KKyNpbmNsdWRl IDxsaWJpby5oPgogCiBzaXplX3QKIF9fZnBlbmRpbmcgKEZJTEUgKmZwKQpk aWZmIC0tZ2l0IGEvbGliaW8vX19mcmVhZGFibGUuYyBiL2xpYmlvL19fZnJl YWRhYmxlLmMKaW5kZXggM2JkZTQyYTcyOS4uZDU1MzVlOTAyYiAxMDA2NDQK LS0tIGEvbGliaW8vX19mcmVhZGFibGUuYworKysgYi9saWJpby9fX2ZyZWFk YWJsZS5jCkBAIC0xNiw2ICsxNiw3IEBACiAgICA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLwogCiAjaW5jbHVkZSA8c3RkaW9fZXh0Lmg+ CisjaW5jbHVkZSA8bGliaW8uaD4KIAogaW50CiBfX2ZyZWFkYWJsZSAoRklM RSAqZnApCmRpZmYgLS1naXQgYS9saWJpby9fX2ZyZWFkaW5nLmMgYi9saWJp by9fX2ZyZWFkaW5nLmMKaW5kZXggZjE2ZjQyNjc5Zi4uMzJlMjZmOGE2YyAx MDA2NDQKLS0tIGEvbGliaW8vX19mcmVhZGluZy5jCisrKyBiL2xpYmlvL19f ZnJlYWRpbmcuYwpAQCAtMTYsNiArMTYsNyBAQAogICAgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LiAgKi8KIAogI2luY2x1ZGUgPHN0ZGlvX2V4 dC5oPgorI2luY2x1ZGUgPGxpYmlvLmg+CiAKIGludAogX19mcmVhZGluZyAo RklMRSAqZnApCmRpZmYgLS1naXQgYS9saWJpby9fX2Z3cml0YWJsZS5jIGIv bGliaW8vX19md3JpdGFibGUuYwppbmRleCAxNTg0YWVjNjhmLi4zMjhlMGI2 YjViIDEwMDY0NAotLS0gYS9saWJpby9fX2Z3cml0YWJsZS5jCisrKyBiL2xp YmlvL19fZndyaXRhYmxlLmMKQEAgLTE2LDYgKzE2LDcgQEAKICAgIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCiAKICNpbmNsdWRlIDxz dGRpb19leHQuaD4KKyNpbmNsdWRlIDxsaWJpby5oPgogCiBpbnQKIF9fZndy aXRhYmxlIChGSUxFICpmcCkKZGlmZiAtLWdpdCBhL2xpYmlvL19fZndyaXRp bmcuYyBiL2xpYmlvL19fZndyaXRpbmcuYwppbmRleCAxNzY5ZDIxMDdlLi4y ZWM4ZmJhMWNmIDEwMDY0NAotLS0gYS9saWJpby9fX2Z3cml0aW5nLmMKKysr IGIvbGliaW8vX19md3JpdGluZy5jCkBAIC0xNiw2ICsxNiw3IEBACiAgICA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwogCiAjaW5jbHVk ZSA8c3RkaW9fZXh0Lmg+CisjaW5jbHVkZSA8bGliaW8uaD4KIAogaW50CiBf X2Z3cml0aW5nIChGSUxFICpmcCkKZGlmZiAtLWdpdCBhL2xpYmlvL2JpdHMv c3RkaW8uaCBiL2xpYmlvL2JpdHMvc3RkaW8uaAppbmRleCAyMWFkMmZiMjBj Li5hZDc3YjA0YTRmIDEwMDY0NAotLS0gYS9saWJpby9iaXRzL3N0ZGlvLmgK KysrIGIvbGliaW8vYml0cy9zdGRpby5oCkBAIC0xNiwyNCArMTYsMzAgQEAK ICAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYg bm90LCBzZWUKICAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCiAKKyNpZm5kZWYgX0JJVFNfU1RESU9fSAorI2RlZmluZSBfQklUU19T VERJT19IIDEKKwogI2lmbmRlZiBfU1RESU9fSAogIyBlcnJvciAiTmV2ZXIg aW5jbHVkZSA8Yml0cy9zdGRpby5oPiBkaXJlY3RseTsgdXNlIDxzdGRpby5o PiBpbnN0ZWFkLiIKICNlbmRpZgogCisjaW5jbHVkZSA8Yml0cy90eXBlcy9G SUxFX2ludGVybmFscy5oPgorCitleHRlcm4gaW50IF9fdWZsb3cgKEZJTEUg Kik7CitleHRlcm4gaW50IF9fb3ZlcmZsb3cgKEZJTEUgKiwgaW50KTsKKwog I2lmbmRlZiBfX2V4dGVybl9pbmxpbmUKICMgZGVmaW5lIF9fU1RESU9fSU5M SU5FIGlubGluZQogI2Vsc2UKICMgZGVmaW5lIF9fU1RESU9fSU5MSU5FIF9f ZXh0ZXJuX2lubGluZQogI2VuZGlmCiAKLQotI2lmZGVmIF9fVVNFX0VYVEVS Tl9JTkxJTkVTCiAvKiBGb3IgLURfRk9SVElGWV9TT1VSQ0V7LD0yfSBiaXRz L3N0ZGlvMi5oIHdpbGwgZGVmaW5lIGEgZGlmZmVyZW50CiAgICBpbmxpbmUu ICAqLwogIyBpZiAhKF9fVVNFX0ZPUlRJRllfTEVWRUwgPiAwICYmIGRlZmlu ZWQgX19mb3J0aWZ5X2Z1bmN0aW9uKQogLyogV3JpdGUgZm9ybWF0dGVkIG91 dHB1dCB0byBzdGRvdXQgZnJvbSBhcmd1bWVudCBsaXN0IEFSRy4gICovCiBf X1NURElPX0lOTElORSBpbnQKLXZwcmludGYgKGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QgX19mbXQsIF9HX3ZhX2xpc3QgX19hcmcpCit2cHJpbnRmIChjb25z dCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LCBfX2dudWNfdmFfbGlzdCBfX2Fy ZykKIHsKICAgcmV0dXJuIHZmcHJpbnRmIChzdGRvdXQsIF9fZm10LCBfX2Fy Zyk7CiB9CkBAIC00MywzMyArNDksNDYgQEAgdnByaW50ZiAoY29uc3QgY2hh ciAqX19yZXN0cmljdCBfX2ZtdCwgX0dfdmFfbGlzdCBfX2FyZykKIF9fU1RE SU9fSU5MSU5FIGludAogZ2V0Y2hhciAodm9pZCkKIHsKLSAgcmV0dXJuIF9J T19nZXRjIChzdGRpbik7CisgIHJldHVybiBnZXRjIChzdGRpbik7CiB9CiAK KyNpZiBkZWZpbmVkIF9fVVNFX01JU0MgfHwgZGVmaW5lZCBfX1VTRV9QT1NJ WAorX19TVERJT19JTkxJTkUgaW50CitfX2dldGNfdW5sb2NrZWQgKEZJTEUg Kl9fZnApCit7CisgIGNoYXIgX19jOworCisgIGlmIChfX2dsaWJjX3VubGlr ZWx5IChfX2ZwLT5fSU9fcmVhZF9wdHIgPj0gX19mcC0+X0lPX3JlYWRfZW5k KSkKKyAgICByZXR1cm4gX191ZmxvdyAoX19mcCk7CisKKyAgX19jID0gKl9f ZnAtPl9JT19yZWFkX3B0cisrOworICByZXR1cm4gKHVuc2lnbmVkIGNoYXIp IF9fYzsKK30KKyNlbmRpZgorCiAKICMgaWZkZWYgX19VU0VfTUlTQwogLyog RmFzdGVyIHZlcnNpb24gd2hlbiBsb2NraW5nIGlzIG5vdCBuZWNlc3Nhcnku ICAqLwogX19TVERJT19JTkxJTkUgaW50CiBmZ2V0Y191bmxvY2tlZCAoRklM RSAqX19mcCkKIHsKLSAgcmV0dXJuIF9JT19nZXRjX3VubG9ja2VkIChfX2Zw KTsKKyAgcmV0dXJuIF9fZ2V0Y191bmxvY2tlZCAoX19mcCk7CiB9CiAjIGVu ZGlmIC8qIG1pc2MgKi8KIAotCiAjIGlmZGVmIF9fVVNFX1BPU0lYCiAvKiBU aGlzIGlzIGRlZmluZWQgaW4gUE9TSVguMToxOTk2LiAgKi8KIF9fU1RESU9f SU5MSU5FIGludAogZ2V0Y191bmxvY2tlZCAoRklMRSAqX19mcCkKIHsKLSAg cmV0dXJuIF9JT19nZXRjX3VubG9ja2VkIChfX2ZwKTsKKyAgcmV0dXJuIF9f Z2V0Y191bmxvY2tlZCAoX19mcCk7CiB9CiAKIC8qIFRoaXMgaXMgZGVmaW5l ZCBpbiBQT1NJWC4xOjE5OTYuICAqLwogX19TVERJT19JTkxJTkUgaW50CiBn ZXRjaGFyX3VubG9ja2VkICh2b2lkKQogewotICByZXR1cm4gX0lPX2dldGNf dW5sb2NrZWQgKHN0ZGluKTsKKyAgcmV0dXJuIF9fZ2V0Y191bmxvY2tlZCAo c3RkaW4pOwogfQogIyBlbmRpZgkvKiBQT1NJWCAqLwogCkBAIC03OCwxNiAr OTcsMjggQEAgZ2V0Y2hhcl91bmxvY2tlZCAodm9pZCkKIF9fU1RESU9fSU5M SU5FIGludAogcHV0Y2hhciAoaW50IF9fYykKIHsKLSAgcmV0dXJuIF9JT19w dXRjIChfX2MsIHN0ZG91dCk7CisgIHJldHVybiBwdXRjIChfX2MsIHN0ZG91 dCk7CiB9CiAKKyNpZiBkZWZpbmVkIF9fVVNFX01JU0MgfHwgZGVmaW5lZCBf X1VTRV9QT1NJWAorX19TVERJT19JTkxJTkUgaW50CitfX3B1dGNfdW5sb2Nr ZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKQoreworICB1bnNpZ25lZCBj aGFyIF9fY2MgPSBfX2M7CisgIGlmIChfX2dsaWJjX3VubGlrZWx5IChfX3N0 cmVhbS0+X0lPX3dyaXRlX3B0ciA+PSBfX3N0cmVhbS0+X0lPX3dyaXRlX2Vu ZCkpCisgICAgcmV0dXJuIF9fb3ZlcmZsb3cgKF9fc3RyZWFtLCBfX2NjKTsK KworICAqX19zdHJlYW0tPl9JT193cml0ZV9wdHIrKyA9IF9fY2M7CisgIHJl dHVybiBfX2NjOworfQorI2VuZGlmCiAKICMgaWZkZWYgX19VU0VfTUlTQwog LyogRmFzdGVyIHZlcnNpb24gd2hlbiBsb2NraW5nIGlzIG5vdCBuZWNlc3Nh cnkuICAqLwogX19TVERJT19JTkxJTkUgaW50CiBmcHV0Y191bmxvY2tlZCAo aW50IF9fYywgRklMRSAqX19zdHJlYW0pCiB7Ci0gIHJldHVybiBfSU9fcHV0 Y191bmxvY2tlZCAoX19jLCBfX3N0cmVhbSk7CisgIHJldHVybiBfX3B1dGNf dW5sb2NrZWQgKF9fYywgX19zdHJlYW0pOwogfQogIyBlbmRpZiAvKiBtaXNj ICovCiAKQEAgLTk3LDIxICsxMjgsMjEgQEAgZnB1dGNfdW5sb2NrZWQgKGlu dCBfX2MsIEZJTEUgKl9fc3RyZWFtKQogX19TVERJT19JTkxJTkUgaW50CiBw dXRjX3VubG9ja2VkIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkKIHsKLSAg cmV0dXJuIF9JT19wdXRjX3VubG9ja2VkIChfX2MsIF9fc3RyZWFtKTsKKyAg cmV0dXJuIF9fcHV0Y191bmxvY2tlZCAoX19jLCBfX3N0cmVhbSk7CiB9CiAK IC8qIFRoaXMgaXMgZGVmaW5lZCBpbiBQT1NJWC4xOjE5OTYuICAqLwogX19T VERJT19JTkxJTkUgaW50CiBwdXRjaGFyX3VubG9ja2VkIChpbnQgX19jKQog ewotICByZXR1cm4gX0lPX3B1dGNfdW5sb2NrZWQgKF9fYywgc3Rkb3V0KTsK KyAgcmV0dXJuIF9fcHV0Y191bmxvY2tlZCAoX19jLCBzdGRvdXQpOwogfQog IyBlbmRpZgkvKiBQT1NJWCAqLwogCiAKICMgaWZkZWYJX19VU0VfR05VCiAv KiBMaWtlIGBnZXRkZWxpbScsIGJ1dCByZWFkcyB1cCB0byBhIG5ld2xpbmUu ICAqLwotX19TVERJT19JTkxJTkUgX0lPX3NzaXplX3QKK19fU1RESU9fSU5M SU5FIF9fc3NpemVfdAogZ2V0bGluZSAoY2hhciAqKl9fbGluZXB0ciwgc2l6 ZV90ICpfX24sIEZJTEUgKl9fc3RyZWFtKQogewogICByZXR1cm4gX19nZXRk ZWxpbSAoX19saW5lcHRyLCBfX24sICdcbicsIF9fc3RyZWFtKTsKQEAgLTEy NCwyMCArMTU1LDE3IEBAIGdldGxpbmUgKGNoYXIgKipfX2xpbmVwdHIsIHNp emVfdCAqX19uLCBGSUxFICpfX3N0cmVhbSkKIF9fU1RESU9fSU5MSU5FIGlu dAogX19OVEggKGZlb2ZfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSkKIHsK LSAgcmV0dXJuIF9JT19mZW9mX3VubG9ja2VkIChfX3N0cmVhbSk7CisgIHJl dHVybiAoX19zdHJlYW0tPl9mbGFncyAmIF9JT19FT0ZfU0VFTikgIT0gMDsK IH0KIAogLyogRmFzdGVyIHZlcnNpb25zIHdoZW4gbG9ja2luZyBpcyBub3Qg cmVxdWlyZWQuICAqLwogX19TVERJT19JTkxJTkUgaW50CiBfX05USCAoZmVy cm9yX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkpCiB7Ci0gIHJldHVybiBf SU9fZmVycm9yX3VubG9ja2VkIChfX3N0cmVhbSk7CisgIHJldHVybiAoX19z dHJlYW0tPl9mbGFncyAmIF9JT19FUlJfU0VFTikgIT0gMDsKIH0KICMgZW5k aWYgLyogbWlzYyAqLwogCi0jZW5kaWYgLyogVXNlIGV4dGVybiBpbmxpbmVz LiAgKi8KLQotCiAjaWYgZGVmaW5lZCBfX1VTRV9NSVNDICYmIGRlZmluZWQg X19HTlVDX18gJiYgZGVmaW5lZCBfX09QVElNSVpFX18gXAogICAgICYmICFk ZWZpbmVkIF9fY3BsdXNwbHVzCiAvKiBQZXJmb3JtIHNvbWUgc2ltcGxlIG9w dGltaXphdGlvbnMuICAqLwpAQCAtMTUxLDcgKzE3OSw3IEBAIF9fTlRIIChm ZXJyb3JfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSkKIAkJICAgICAgIGZv ciAoX19jbnQgPSAoc2l6ZV90KSAoc2l6ZSkgKiAoc2l6ZV90KSAobik7CSAg ICAgIFwKIAkJCSAgICBfX2NudCA+IDA7IC0tX19jbnQpCQkJCSAgICAgIFwK IAkJCSB7CQkJCQkJICAgICAgXAotCQkJICAgaW50IF9fYyA9IF9JT19nZXRj X3VubG9ja2VkIChfX3N0cmVhbSk7CSAgICAgIFwKKwkJCSAgIGludCBfX2Mg PSBfX2dldGNfdW5sb2NrZWQgKF9fc3RyZWFtKTsJICAgICAgXAogCQkJICAg aWYgKF9fYyA9PSBFT0YpCQkJCSAgICAgIFwKIAkJCSAgICAgYnJlYWs7CQkJ CQkgICAgICBcCiAJCQkgICAqX19wdHIrKyA9IF9fYzsJCQkJICAgICAgXApA QCAtMTc0LDcgKzIwMiw3IEBAIF9fTlRIIChmZXJyb3JfdW5sb2NrZWQgKEZJ TEUgKl9fc3RyZWFtKSkKIAkJICAgICAgIHNpemVfdCBfX2NudDsJCQkJCSAg ICAgIFwKIAkJICAgICAgIGZvciAoX19jbnQgPSAoc2l6ZV90KSAoc2l6ZSkg KiAoc2l6ZV90KSAobik7CSAgICAgIFwKIAkJCSAgICBfX2NudCA+IDA7IC0t X19jbnQpCQkJCSAgICAgIFwKLQkJCSBpZiAoX0lPX3B1dGNfdW5sb2NrZWQg KCpfX3B0cisrLCBfX3N0cmVhbSkgPT0gRU9GKSAgIFwKKwkJCSBpZiAoX19w dXRjX3VubG9ja2VkICgqX19wdHIrKywgX19zdHJlYW0pID09IEVPRikgICAg IFwKIAkJCSAgIGJyZWFrOwkJCQkJICAgICAgXAogCQkgICAgICAgKChzaXpl X3QpIChzaXplKSAqIChzaXplX3QpIChuKSAtIF9fY250KQkJICAgICAgXAog CQkJLyAoc2l6ZV90KSAoc2l6ZSk7IH0pCQkJCSAgICAgIFwKQEAgLTE4Niw1 ICsyMTQsNiBAQCBfX05USCAoZmVycm9yX3VubG9ja2VkIChGSUxFICpfX3N0 cmVhbSkpCiAJCSAgICAgOiBmd3JpdGVfdW5sb2NrZWQgKHB0ciwgc2l6ZSwg biwgc3RyZWFtKSkpKQogI2VuZGlmCiAKLS8qIERlZmluZSBoZWxwZXIgbWFj cm8uICAqLwogI3VuZGVmIF9fU1RESU9fSU5MSU5FCisKKyNlbmRpZiAvKiBi aXRzL3N0ZGlvLmggKi8KZGlmZiAtLWdpdCBhL2xpYmlvL2JpdHMvc3RkaW8y LmggYi9saWJpby9iaXRzL3N0ZGlvMi5oCmluZGV4IGU5ZjlkNjk1MmIuLjJk NWNiNWMwM2QgMTAwNjQ0Ci0tLSBhL2xpYmlvL2JpdHMvc3RkaW8yLmgKKysr IGIvbGliaW8vYml0cy9zdGRpbzIuaApAQCAtMjQsNyArMjQsNyBAQCBleHRl cm4gaW50IF9fc3ByaW50Zl9jaGsgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBp bnQgX19mbGFnLCBzaXplX3QgX19zbGVuLAogCQkJICBjb25zdCBjaGFyICpf X3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIF9fVEhST1c7CiBleHRlcm4gaW50 IF9fdnNwcmludGZfY2hrIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgaW50IF9f ZmxhZywgc2l6ZV90IF9fc2xlbiwKIAkJCSAgIGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QgX19mb3JtYXQsCi0JCQkgICBfR192YV9saXN0IF9fYXApIF9fVEhS T1c7CisJCQkgICBfX2dudWNfdmFfbGlzdCBfX2FwKSBfX1RIUk9XOwogCiAj aWZkZWYgX192YV9hcmdfcGFjawogX19mb3J0aWZ5X2Z1bmN0aW9uIGludApA QCAtNDEsNyArNDEsNyBAQCBfX05USCAoc3ByaW50ZiAoY2hhciAqX19yZXN0 cmljdCBfX3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIC4uLikp CiAKIF9fZm9ydGlmeV9mdW5jdGlvbiBpbnQKIF9fTlRIICh2c3ByaW50ZiAo Y2hhciAqX19yZXN0cmljdCBfX3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg X19mbXQsCi0JCSBfR192YV9saXN0IF9fYXApKQorCQkgX19nbnVjX3ZhX2xp c3QgX19hcCkpCiB7CiAgIHJldHVybiBfX2J1aWx0aW5fX192c3ByaW50Zl9j aGsgKF9fcywgX19VU0VfRk9SVElGWV9MRVZFTCAtIDEsCiAJCQkJICAgX19i b3MgKF9fcyksIF9fZm10LCBfX2FwKTsKQEAgLTU0LDcgKzU0LDcgQEAgZXh0 ZXJuIGludCBfX3NucHJpbnRmX2NoayAoY2hhciAqX19yZXN0cmljdCBfX3Ms IHNpemVfdCBfX24sIGludCBfX2ZsYWcsCiAJCQkgICAuLi4pIF9fVEhST1c7 CiBleHRlcm4gaW50IF9fdnNucHJpbnRmX2NoayAoY2hhciAqX19yZXN0cmlj dCBfX3MsIHNpemVfdCBfX24sIGludCBfX2ZsYWcsCiAJCQkgICAgc2l6ZV90 IF9fc2xlbiwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKLQkJ CSAgICBfR192YV9saXN0IF9fYXApIF9fVEhST1c7CisJCQkgICAgX19nbnVj X3ZhX2xpc3QgX19hcCkgX19USFJPVzsKIAogIyBpZmRlZiBfX3ZhX2FyZ19w YWNrCiBfX2ZvcnRpZnlfZnVuY3Rpb24gaW50CkBAIC03Miw3ICs3Miw3IEBA IF9fTlRIIChzbnByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVf dCBfX24sCiAKIF9fZm9ydGlmeV9mdW5jdGlvbiBpbnQKIF9fTlRIICh2c25w cmludGYgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19uLAotCQkg IGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIF9HX3ZhX2xpc3QgX19h cCkpCisJCSAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZtdCwgX19nbnVj X3ZhX2xpc3QgX19hcCkpCiB7CiAgIHJldHVybiBfX2J1aWx0aW5fX192c25w cmludGZfY2hrIChfX3MsIF9fbiwgX19VU0VfRk9SVElGWV9MRVZFTCAtIDEs CiAJCQkJICAgIF9fYm9zIChfX3MpLCBfX2ZtdCwgX19hcCk7CkBAIC04Niw5 ICs4NiwxMCBAQCBleHRlcm4gaW50IF9fZnByaW50Zl9jaGsgKEZJTEUgKl9f cmVzdHJpY3QgX19zdHJlYW0sIGludCBfX2ZsYWcsCiAJCQkgIGNvbnN0IGNo YXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLik7CiBleHRlcm4gaW50IF9f cHJpbnRmX2NoayAoaW50IF9fZmxhZywgY29uc3QgY2hhciAqX19yZXN0cmlj dCBfX2Zvcm1hdCwgLi4uKTsKIGV4dGVybiBpbnQgX192ZnByaW50Zl9jaGsg KEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGludCBfX2ZsYWcsCi0JCQkg ICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfR192YV9saXN0 IF9fYXApOworCQkJICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1h dCwKKwkJCSAgIF9fZ251Y192YV9saXN0IF9fYXApOwogZXh0ZXJuIGludCBf X3ZwcmludGZfY2hrIChpbnQgX19mbGFnLCBjb25zdCBjaGFyICpfX3Jlc3Ry aWN0IF9fZm9ybWF0LAotCQkJICBfR192YV9saXN0IF9fYXApOworCQkJICBf X2dudWNfdmFfbGlzdCBfX2FwKTsKIAogIyBpZmRlZiBfX3ZhX2FyZ19wYWNr CiBfX2ZvcnRpZnlfZnVuY3Rpb24gaW50CkBAIC0xMTEsNyArMTEyLDcgQEAg cHJpbnRmIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LCAuLi4pCiAj IGVuZGlmCiAKIF9fZm9ydGlmeV9mdW5jdGlvbiBpbnQKLXZwcmludGYgKGNv bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIF9HX3ZhX2xpc3QgX19hcCkK K3ZwcmludGYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIF9fZ251 Y192YV9saXN0IF9fYXApCiB7CiAjaWZkZWYgX19VU0VfRVhURVJOX0lOTElO RVMKICAgcmV0dXJuIF9fdmZwcmludGZfY2hrIChzdGRvdXQsIF9fVVNFX0ZP UlRJRllfTEVWRUwgLSAxLCBfX2ZtdCwgX19hcCk7CkBAIC0xMjIsNyArMTIz LDcgQEAgdnByaW50ZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZtdCwg X0dfdmFfbGlzdCBfX2FwKQogCiBfX2ZvcnRpZnlfZnVuY3Rpb24gaW50CiB2 ZnByaW50ZiAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwKLQkgIGNvbnN0 IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIF9HX3ZhX2xpc3QgX19hcCkKKwkg IGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIF9fZ251Y192YV9saXN0 IF9fYXApCiB7CiAgIHJldHVybiBfX3ZmcHJpbnRmX2NoayAoX19zdHJlYW0s IF9fVVNFX0ZPUlRJRllfTEVWRUwgLSAxLCBfX2ZtdCwgX19hcCk7CiB9CkBA IC0xMzEsNyArMTMyLDcgQEAgdmZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3Qg X19zdHJlYW0sCiBleHRlcm4gaW50IF9fZHByaW50Zl9jaGsgKGludCBfX2Zk LCBpbnQgX19mbGFnLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LAog CQkJICAuLi4pIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50 Zl9fLCAzLCA0KSkpOwogZXh0ZXJuIGludCBfX3ZkcHJpbnRmX2NoayAoaW50 IF9fZmQsIGludCBfX2ZsYWcsCi0JCQkgICBjb25zdCBjaGFyICpfX3Jlc3Ry aWN0IF9fZm10LCBfR192YV9saXN0IF9fYXJnKQorCQkJICAgY29uc3QgY2hh ciAqX19yZXN0cmljdCBfX2ZtdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAg ICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAz LCAwKSkpOwogCiAjICBpZmRlZiBfX3ZhX2FyZ19wYWNrCkBAIC0xNDcsNyAr MTQ4LDcgQEAgZHByaW50ZiAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QgX19mbXQsIC4uLikKICMgIGVuZGlmCiAKIF9fZm9ydGlmeV9mdW5j dGlvbiBpbnQKLXZkcHJpbnRmIChpbnQgX19mZCwgY29uc3QgY2hhciAqX19y ZXN0cmljdCBfX2ZtdCwgX0dfdmFfbGlzdCBfX2FwKQordmRwcmludGYgKGlu dCBfX2ZkLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LCBfX2dudWNf dmFfbGlzdCBfX2FwKQogewogICByZXR1cm4gX192ZHByaW50Zl9jaGsgKF9f ZmQsIF9fVVNFX0ZPUlRJRllfTEVWRUwgLSAxLCBfX2ZtdCwgX19hcCk7CiB9 CkBAIC0xNTksNyArMTYwLDcgQEAgZXh0ZXJuIGludCBfX2FzcHJpbnRmX2No ayAoY2hhciAqKl9fcmVzdHJpY3QgX19wdHIsIGludCBfX2ZsYWcsCiAJCQkg ICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LCAuLi4pCiAgICAgIF9f VEhST1cgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18s IDMsIDQpKSkgX193dXI7CiBleHRlcm4gaW50IF9fdmFzcHJpbnRmX2NoayAo Y2hhciAqKl9fcmVzdHJpY3QgX19wdHIsIGludCBfX2ZsYWcsCi0JCQkgICAg Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZtdCwgX0dfdmFfbGlzdCBfX2Fy ZykKKwkJCSAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LCBfX2du dWNfdmFfbGlzdCBfX2FyZykKICAgICAgX19USFJPVyBfX2F0dHJpYnV0ZV9f ICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMywgMCkpKSBfX3d1cjsKIGV4 dGVybiBpbnQgX19vYnN0YWNrX3ByaW50Zl9jaGsgKHN0cnVjdCBvYnN0YWNr ICpfX3Jlc3RyaWN0IF9fb2JzdGFjaywKIAkJCQkgaW50IF9fZmxhZywgY29u c3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKQEAgLTE2OCw3ICsxNjks NyBAQCBleHRlcm4gaW50IF9fb2JzdGFja19wcmludGZfY2hrIChzdHJ1Y3Qg b2JzdGFjayAqX19yZXN0cmljdCBfX29ic3RhY2ssCiBleHRlcm4gaW50IF9f b2JzdGFja192cHJpbnRmX2NoayAoc3RydWN0IG9ic3RhY2sgKl9fcmVzdHJp Y3QgX19vYnN0YWNrLAogCQkJCSAgaW50IF9fZmxhZywKIAkJCQkgIGNvbnN0 IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCi0JCQkJICBfR192YV9saXN0 IF9fYXJncykKKwkJCQkgIF9fZ251Y192YV9saXN0IF9fYXJncykKICAgICAg X19USFJPVyBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZf XywgMywgMCkpKTsKIAogIyAgaWZkZWYgX192YV9hcmdfcGFjawpAQCAtMjA1 LDE0ICsyMDYsMTQgQEAgX19OVEggKG9ic3RhY2tfcHJpbnRmIChzdHJ1Y3Qg b2JzdGFjayAqX19yZXN0cmljdCBfX29ic3RhY2ssCiAKIF9fZm9ydGlmeV9m dW5jdGlvbiBpbnQKIF9fTlRIICh2YXNwcmludGYgKGNoYXIgKipfX3Jlc3Ry aWN0IF9fcHRyLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LAotCQkg IF9HX3ZhX2xpc3QgX19hcCkpCisJCSAgX19nbnVjX3ZhX2xpc3QgX19hcCkp CiB7CiAgIHJldHVybiBfX3Zhc3ByaW50Zl9jaGsgKF9fcHRyLCBfX1VTRV9G T1JUSUZZX0xFVkVMIC0gMSwgX19mbXQsIF9fYXApOwogfQogCiBfX2ZvcnRp ZnlfZnVuY3Rpb24gaW50CiBfX05USCAob2JzdGFja192cHJpbnRmIChzdHJ1 Y3Qgb2JzdGFjayAqX19yZXN0cmljdCBfX29ic3RhY2ssCi0JCQljb25zdCBj aGFyICpfX3Jlc3RyaWN0IF9fZm10LCBfR192YV9saXN0IF9fYXApKQorCQkJ Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZtdCwgX19nbnVjX3ZhX2xpc3Qg X19hcCkpCiB7CiAgIHJldHVybiBfX29ic3RhY2tfdnByaW50Zl9jaGsgKF9f b2JzdGFjaywgX19VU0VfRk9SVElGWV9MRVZFTCAtIDEsIF9fZm10LAogCQkJ CV9fYXApOwpAQCAtMzY4LDcgKzM2OSw3IEBAIGZyZWFkX3VubG9ja2VkICh2 b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLCBzaXplX3Qg X19uLAogCiAgICAgICBmb3IgKDsgX19jbnQgPiAwOyAtLV9fY250KQogCXsK LQkgIGludCBfX2MgPSBfSU9fZ2V0Y191bmxvY2tlZCAoX19zdHJlYW0pOwor CSAgaW50IF9fYyA9IF9fZ2V0Y191bmxvY2tlZCAoX19zdHJlYW0pOwogCSAg aWYgKF9fYyA9PSBFT0YpCiAJICAgIGJyZWFrOwogCSAgKl9fY3B0cisrID0g X19jOwpkaWZmIC0tZ2l0IGEvbGliaW8vYml0cy90eXBlcy9GSUxFLmggYi9s aWJpby9iaXRzL3R5cGVzL0ZJTEUuaAppbmRleCBmMjY4MjYzMjA5Li5kZTAy YTlkNzViIDEwMDY0NAotLS0gYS9saWJpby9iaXRzL3R5cGVzL0ZJTEUuaAor KysgYi9saWJpby9iaXRzL3R5cGVzL0ZJTEUuaApAQCAtMSw5ICsxLDEyIEBA CiAjaWZuZGVmIF9fRklMRV9kZWZpbmVkCiAjZGVmaW5lIF9fRklMRV9kZWZp bmVkIDEKIAotc3RydWN0IF9JT19GSUxFOworLyogTm90ZTogdGhlIHN0cnVj dCB0YWcgaXMgX0lPX0ZJTEUgcmF0aGVyIHRoYW4gX19GSUxFIGZvciBoaXN0 b3JpY2FsCisgICByZWFzb25zLiAgSXQgcG90ZW50aWFsbHkgYXBwZWFycyBp biBDKysgbWFuZ2xlZCBuYW1lcyBhbmQgdGhlcmVmb3JlCisgICBjYW5ub3Qg YmUgY2hhbmdlZC4gIFRoaXMgZmlsZSBtdXN0IGJlIGtlcHQgaW4gc3luYyB3 aXRoIF9fRklMRS5oIGFuZAorICAgRklMRV9pbnRlcm5hbHMuaC4gICovCiAK LS8qIFRoZSBvcGFxdWUgdHlwZSBvZiBzdHJlYW1zLiAgVGhpcyBpcyB0aGUg ZGVmaW5pdGlvbiB1c2VkIGVsc2V3aGVyZS4gICovCitzdHJ1Y3QgX0lPX0ZJ TEU7CiB0eXBlZGVmIHN0cnVjdCBfSU9fRklMRSBGSUxFOwogCiAjZW5kaWYK ZGlmZiAtLWdpdCBhL2xpYmlvL2JpdHMvdHlwZXMvRklMRV9pbnRlcm5hbHMu aCBiL2xpYmlvL2JpdHMvdHlwZXMvRklMRV9pbnRlcm5hbHMuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41Zjg4YjRjNmExCi0t LSAvZGV2L251bGwKKysrIGIvbGliaW8vYml0cy90eXBlcy9GSUxFX2ludGVy bmFscy5oCkBAIC0wLDAgKzEsMTEwIEBACisvKiBJbnRlcm5hbCBzdHJ1Y3R1 cmUgb2YgYSBGSUxFIG9iamVjdC4KKyAgIENvcHlyaWdodCAoQykgMTk5MS0y MDE3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisgICBXcml0dGVu IGJ5IFBlciBCb3RobmVyIDxib3RobmVyQGN5Z251cy5jb20+LgorCisgICBU aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2Us IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05V IEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCisKKworI2lmbmRlZiBfRklMRV9pbnRlcm5h bHNfZGVmaW5lZAorI2RlZmluZSBfRklMRV9pbnRlcm5hbHNfZGVmaW5lZCAx CisKKy8qIFRoaXMgZmlsZSBleHBvc2VzIGp1c3QgZW5vdWdoIG9mIHRoZSBp bnRlcm5hbCBzdHJ1Y3R1cmUgb2YgYSBGSUxFCisgICBvYmplY3QgdG8gcGVy bWl0IHRoZSBvcHRpbWl6YXRpb25zIGluIGJpdHMvc3RkaW8uaC4KKworICAg Tm90ZTogdGhlIF9JT18gcHJlZml4ZXMgb24gc3RydWN0IHRhZ3MgYW5kIGZp ZWxkIG5hbWVzIGFyZSBmb3IKKyAgIGhpc3RvcmljYWwgcmVhc29ucy4gIFRo ZSBHTlUgQyBMaWJyYXJ5IG5vIGxvbmdlciBzdXBwb3J0cyB0aGUKKyAgICJs aWJpbyIgZXh0ZW5zaW9uIHRvIHN0ZGlvLgorCisgICBUaGlzIGZpbGUgbXVz dCBiZSBrZXB0IGluIHN5bmMgd2l0aCBfX0ZJTEUuaCwgRklMRS5oLCBhbmQg aW50ZXJuYWwKKyAgIGhlYWRlcnMuICAqLworCisjaW5jbHVkZSA8Yml0cy90 eXBlcy5oPgorCisvKiBEdXJpbmcgdGhlIGJ1aWxkIG9mIGdsaWJjIGl0c2Vs ZiwgX0lPX2xvY2tfdCB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuCisgICBkZWZp bmVkIGJ5IGludGVybmFsIGhlYWRlcnMuICAqLworI2lmbmRlZiBfSU9fbG9j a190X2RlZmluZWQKK3R5cGVkZWYgdm9pZCBfSU9fbG9ja190OworI2RlZmlu ZSBfSU9fbG9ja190X2RlZmluZWQgMQorI2VuZGlmCisKK3N0cnVjdCBfSU9f bWFya2VyOworc3RydWN0IF9JT19jb2RlY3Z0Oworc3RydWN0IF9JT193aWRl X2RhdGE7CisKK3N0cnVjdCBfSU9fRklMRQoreworICBpbnQgX2ZsYWdzOwkJ LyogSGlnaC1vcmRlciB3b3JkIGlzIF9JT19NQUdJQzsgcmVzdCBpcyBmbGFn cy4gKi8KKyAgLyogVGhlIGZvbGxvd2luZyBwb2ludGVycyBjb3JyZXNwb25k IHRvIHRoZSBDKysgc3RyZWFtYnVmIHByb3RvY29sLiAqLworICBjaGFyKiBf SU9fcmVhZF9wdHI7CS8qIEN1cnJlbnQgcmVhZCBwb2ludGVyICovCisgIGNo YXIqIF9JT19yZWFkX2VuZDsJLyogRW5kIG9mIGdldCBhcmVhLiAqLworICBj aGFyKiBfSU9fcmVhZF9iYXNlOwkvKiBTdGFydCBvZiBwdXRiYWNrK2dldCBh cmVhLiAqLworICBjaGFyKiBfSU9fd3JpdGVfYmFzZTsJLyogU3RhcnQgb2Yg cHV0IGFyZWEuICovCisgIGNoYXIqIF9JT193cml0ZV9wdHI7CS8qIEN1cnJl bnQgcHV0IHBvaW50ZXIuICovCisgIGNoYXIqIF9JT193cml0ZV9lbmQ7CS8q IEVuZCBvZiBwdXQgYXJlYS4gKi8KKyAgY2hhciogX0lPX2J1Zl9iYXNlOwkv KiBTdGFydCBvZiByZXNlcnZlIGFyZWEuICovCisgIGNoYXIqIF9JT19idWZf ZW5kOwkvKiBFbmQgb2YgcmVzZXJ2ZSBhcmVhLiAqLworICAvKiBUaGUgZm9s bG93aW5nIGZpZWxkcyBhcmUgdXNlZCB0byBzdXBwb3J0IGJhY2tpbmcgdXAg YW5kIHVuZG8uICovCisgIGNoYXIgKl9JT19zYXZlX2Jhc2U7IC8qIFBvaW50 ZXIgdG8gc3RhcnQgb2Ygbm9uLWN1cnJlbnQgZ2V0IGFyZWEuICovCisgIGNo YXIgKl9JT19iYWNrdXBfYmFzZTsgIC8qIFBvaW50ZXIgdG8gZmlyc3QgdmFs aWQgY2hhcmFjdGVyIG9mIGJhY2t1cCBhcmVhICovCisgIGNoYXIgKl9JT19z YXZlX2VuZDsgLyogUG9pbnRlciB0byBlbmQgb2Ygbm9uLWN1cnJlbnQgZ2V0 IGFyZWEuICovCisKKyAgc3RydWN0IF9JT19tYXJrZXIgKl9tYXJrZXJzOwor CisgIHN0cnVjdCBfSU9fRklMRSAqX2NoYWluOworCisgIGludCBfZmlsZW5v OworICBpbnQgX2ZsYWdzMjsKKyAgX19vZmZfdCBfb2xkX29mZnNldDsgLyog VGhpcyB1c2VkIHRvIGJlIF9vZmZzZXQgYnV0IGl0J3MgdG9vIHNtYWxsLiAg Ki8KKworICAvKiAxK2NvbHVtbiBudW1iZXIgb2YgcGJhc2UoKTsgMCBpcyB1 bmtub3duLiAqLworICB1bnNpZ25lZCBzaG9ydCBfY3VyX2NvbHVtbjsKKyAg c2lnbmVkIGNoYXIgX3Z0YWJsZV9vZmZzZXQ7CisgIGNoYXIgX3Nob3J0YnVm WzFdOworICBfSU9fbG9ja190ICpfbG9jazsKKworICAvKiBGaWVsZHMgYmVs b3cgdGhpcyBwb2ludCBhcmUgbm90IHByZXNlbnQgaW4gdGhlICJvbGQiIEZJ TEUgc3RydWN0dXJlLiAgKi8KKyAgX19vZmY2NF90IF9vZmZzZXQ7CisgIHN0 cnVjdCBfSU9fY29kZWN2dCAqX2NvZGVjdnQ7CisgIHN0cnVjdCBfSU9fd2lk ZV9kYXRhICpfd2lkZV9kYXRhOworICBzdHJ1Y3QgX0lPX0ZJTEUgKl9mcmVl cmVzX2xpc3Q7CisgIHZvaWQgKl9mcmVlcmVzX2J1ZjsKKyAgc2l6ZV90IF9f cGFkNTsKKyAgaW50IF9tb2RlOworCisgIC8qIE1ha2Ugc3VyZSB3ZSBkb24n dCBnZXQgaW50byB0cm91YmxlIGFnYWluLiAgKi8KKyAgY2hhciBfdW51c2Vk MlsxNSAqIHNpemVvZiAoaW50KSAtIDQgKiBzaXplb2YgKHZvaWQgKikgLSBz aXplb2YgKHNpemVfdCldOworfTsKKworLyogTWFueSBtb3JlIGZsYWdzIGFy ZSBkZWZpbmVkIGludGVybmFsbHkuICAqLworI2lmbmRlZiBfSU9fRU9GX1NF RU4KKyMgZGVmaW5lIF9JT19FT0ZfU0VFTiAweDEwCisjZWxpZiBfSU9fRU9G X1NFRU4gIT0gMHgxMAorIyBlcnJvciAiRklMRV9pbnRlcm5hbHMuaCBvdXQg b2Ygc3luYyB3aXRoIGxpYmlvLmggKF9JT19FT0ZfU0VFTikiCisjZW5kaWYK KworI2lmbmRlZiBfSU9fRVJSX1NFRU4KKyMgZGVmaW5lIF9JT19FUlJfU0VF TiAweDIwCisjZWxpZiBfSU9fRVJSX1NFRU4gIT0gMHgyMAorIyBlcnJvciAi RklMRV9pbnRlcm5hbHMuaCBvdXQgb2Ygc3luYyB3aXRoIGxpYmlvLmggKF9J T19FUlJfU0VFTikiCisjZW5kaWYKKworI2lmbmRlZiBfSU9fVVNFUl9MT0NL CisjIGRlZmluZSBfSU9fVVNFUl9MT0NLIDB4ODAwMAorI2VsaWYgX0lPX1VT RVJfTE9DSyAhPSAweDgwMDAKKyMgZXJyb3IgIkZJTEVfaW50ZXJuYWxzLmgg b3V0IG9mIHN5bmMgd2l0aCBsaWJpby5oIChfSU9fVVNFUl9MT0NLKSIKKyNl bmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYmlvL2JpdHMvdHlwZXMv X19GSUxFLmggYi9saWJpby9iaXRzL3R5cGVzL19fRklMRS5oCmluZGV4IDA2 ZGQ3OWJjODMuLjVlOGE5MDk2ZjAgMTAwNjQ0Ci0tLSBhL2xpYmlvL2JpdHMv dHlwZXMvX19GSUxFLmgKKysrIGIvbGliaW8vYml0cy90eXBlcy9fX0ZJTEUu aApAQCAtMSw2ICsxLDExIEBACiAjaWZuZGVmIF9fX19GSUxFX2RlZmluZWQK ICNkZWZpbmUgX19fX0ZJTEVfZGVmaW5lZCAxCiAKKy8qIE5vdGU6IHRoZSBz dHJ1Y3QgdGFnIGlzIF9JT19GSUxFIHJhdGhlciB0aGFuIF9fRklMRSBmb3Ig aGlzdG9yaWNhbAorICAgcmVhc29ucy4gIEl0IHBvdGVudGlhbGx5IGFwcGVh cnMgaW4gQysrIG1hbmdsZWQgbmFtZXMgYW5kIHRoZXJlZm9yZQorICAgY2Fu bm90IGJlIGNoYW5nZWQuICBUaGlzIGZpbGUgbXVzdCBiZSBrZXB0IGluIHN5 bmMgd2l0aCBGSUxFLmggYW5kCisgICBGSUxFX2ludGVybmFscy5oLiAgKi8K Kwogc3RydWN0IF9JT19GSUxFOwogdHlwZWRlZiBzdHJ1Y3QgX0lPX0ZJTEUg X19GSUxFOwogCmRpZmYgLS1naXQgYS9saWJpby9iaXRzL3R5cGVzL19fZnBv c190LmggYi9saWJpby9iaXRzL3R5cGVzL19fZnBvc190LmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDMyYThmMTJiYQotLS0g L2Rldi9udWxsCisrKyBiL2xpYmlvL2JpdHMvdHlwZXMvX19mcG9zX3QuaApA QCAtMCwwICsxLDE5IEBACisjaWZuZGVmIF9fZnBvc190X2RlZmluZWQKKyNk ZWZpbmUgX19mcG9zX3RfZGVmaW5lZCAxCisKKyNpbmNsdWRlIDxiaXRzL3R5 cGVzLmg+CisjaW5jbHVkZSA8Yml0cy90eXBlcy9fX21ic3RhdGVfdC5oPgor Cit0eXBlZGVmIHN0cnVjdAoreworICBfX29mZl90IF9fcG9zOworICBfX21i c3RhdGVfdCBfX3N0YXRlOworfSBfX2Zwb3NfdDsKKwordHlwZWRlZiBzdHJ1 Y3QKK3sKKyAgX19vZmY2NF90IF9fcG9zOworICBfX21ic3RhdGVfdCBfX3N0 YXRlOworfSBfX2Zwb3M2NF90OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xp YmlvL2JpdHMvdHlwZXMvY29va2llX2lvX2Z1bmN0aW9uc190LmggYi9saWJp by9iaXRzL3R5cGVzL2Nvb2tpZV9pb19mdW5jdGlvbnNfdC5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmMyOWE0NmUwMTkKLS0t IC9kZXYvbnVsbAorKysgYi9saWJpby9iaXRzL3R5cGVzL2Nvb2tpZV9pb19m dW5jdGlvbnNfdC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qIFR5cGVzIGZvciBm b3BlbmNvb2tpZS4KKyAgIENvcHlyaWdodCAoQykgMTk5MS0yMDE3IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBh cnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJy YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy CisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBp ZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KKworI2lmbmRlZiBfX2Nvb2tpZV9pb19mdW5jdGlvbnNfdF9kZWZp bmVkCisjZGVmaW5lIF9fY29va2llX2lvX2Z1bmN0aW9uc190X2RlZmluZWQg MQorCisjaW5jbHVkZSA8Yml0cy90eXBlcy5oPgorCisjZGVmaW5lIF9fbmVl ZF9zaXplX3QKKyNpbmNsdWRlIDxzdGRkZWYuaD4KKworLyogUmVhZCBOQllU RVMgYnl0ZXMgZnJvbSBDT09LSUUgaW50byBhIGJ1ZmZlciBwb2ludGVkIHRv IGJ5IEJVRi4KKyAgIFJldHVybiBudW1iZXIgb2YgYnl0ZXMgcmVhZC4gICov Cit0eXBlZGVmIF9fc3NpemVfdCBjb29raWVfcmVhZF9mdW5jdGlvbl90ICh2 b2lkICpfX2Nvb2tpZSwgY2hhciAqX19idWYsCisJCQkJCSAgc2l6ZV90IF9f bmJ5dGVzKTsKKworLyogV3JpdGUgTiBieXRlcyBwb2ludGVkIHRvIGJ5IEJV RiB0byBDT09LSUUuICBXcml0ZSBhbGwgTiBieXRlcworICAgdW5sZXNzIHRo ZXJlIGlzIGFuIGVycm9yLiAgUmV0dXJuIG51bWJlciBvZiBieXRlcyB3cml0 dGVuLiAgSWYKKyAgIHRoZXJlIGlzIGFuIGVycm9yLCByZXR1cm4gMCBhbmQg ZG8gbm90IHdyaXRlIGFueXRoaW5nLiAgSWYgdGhlIGZpbGUKKyAgIGhhcyBi ZWVuIG9wZW5lZCBmb3IgYXBwZW5kIChfX21vZGUuX19hcHBlbmQgc2V0KSwg dGhlbiBzZXQgdGhlIGZpbGUKKyAgIHBvaW50ZXIgdG8gdGhlIGVuZCBvZiB0 aGUgZmlsZSBhbmQgdGhlbiBkbyB0aGUgd3JpdGU7IGlmIG5vdCwganVzdAor ICAgd3JpdGUgYXQgdGhlIGN1cnJlbnQgZmlsZSBwb2ludGVyLiAgKi8KK3R5 cGVkZWYgX19zc2l6ZV90IGNvb2tpZV93cml0ZV9mdW5jdGlvbl90ICh2b2lk ICpfX2Nvb2tpZSwgY29uc3QgY2hhciAqX19idWYsCisJCQkJCSAgIHNpemVf dCBfX24pOworCisvKiBNb3ZlIENPT0tJRSdzIGZpbGUgcG9zaXRpb24gdG8g KlBPUyBieXRlcyBmcm9tIHRoZQorICAgYmVnaW5uaW5nIG9mIHRoZSBmaWxl IChpZiBXIGlzIFNFRUtfU0VUKSwKKyAgIHRoZSBjdXJyZW50IHBvc2l0aW9u IChpZiBXIGlzIFNFRUtfQ1VSKSwKKyAgIG9yIHRoZSBlbmQgb2YgdGhlIGZp bGUgKGlmIFcgaXMgU0VFS19FTkQpLgorICAgU2V0ICpQT1MgdG8gdGhlIG5l dyBmaWxlIHBvc2l0aW9uLgorICAgUmV0dXJucyB6ZXJvIGlmIHN1Y2Nlc3Nm dWwsIG5vbnplcm8gaWYgbm90LiAgKi8KK3R5cGVkZWYgaW50IGNvb2tpZV9z ZWVrX2Z1bmN0aW9uX3QgKHZvaWQgKl9fY29va2llLCBfX29mZjY0X3QgKl9f cG9zLCBpbnQgX193KTsKKworLyogQ2xvc2UgQ09PS0lFLiAgKi8KK3R5cGVk ZWYgaW50IGNvb2tpZV9jbG9zZV9mdW5jdGlvbl90ICh2b2lkICpfX2Nvb2tp ZSk7CisKKy8qIFRoZSBzdHJ1Y3R1cmUgd2l0aCB0aGUgY29va2llIGZ1bmN0 aW9uIHBvaW50ZXJzLiAgKi8KK3R5cGVkZWYgc3RydWN0Cit7CisgIGNvb2tp ZV9yZWFkX2Z1bmN0aW9uX3QgKnJlYWQ7CQkvKiBSZWFkIGJ5dGVzLiAgKi8K KyAgY29va2llX3dyaXRlX2Z1bmN0aW9uX3QgKndyaXRlOwkvKiBXcml0ZSBi eXRlcy4gICovCisgIGNvb2tpZV9zZWVrX2Z1bmN0aW9uX3QgKnNlZWs7CQkv KiBTZWVrL3RlbGwgZmlsZSBwb3NpdGlvbi4gICovCisgIGNvb2tpZV9jbG9z ZV9mdW5jdGlvbl90ICpjbG9zZTsJLyogQ2xvc2UgZmlsZS4gICovCit9IGNv b2tpZV9pb19mdW5jdGlvbnNfdDsKKworI2VuZGlmIC8qIGNvb2tpZV9pb19m dW5jdGlvbnNfdC5oICovCmRpZmYgLS1naXQgYS9saWJpby9saWJpby5oIGIv bGliaW8vbGliaW8uaAppbmRleCA1MThmZmQ4ZTQ0Li5kN2Y5ZDQxY2JjIDEw MDY0NAotLS0gYS9saWJpby9saWJpby5oCisrKyBiL2xpYmlvL2xpYmlvLmgK QEAgLTI4LDEwICsyOCw1NCBAQAogI2lmbmRlZiBfSU9fU1RESU9fSAogI2Rl ZmluZSBfSU9fU1RESU9fSAogCisjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KKwor I2lmICFkZWZpbmVkIF9MSUJDIHx8ICFkZWZpbmVkIF9fVVNFX0dOVSB8fCBk ZWZpbmVkIF9JU09NQUMKKyMgZXJyb3IgImxpYmlvLmggaXMgcHJpdmF0ZSB0 byB0aGUgc3RkaW8gaW1wbGVtZW50YXRpb24iCisjZW5kaWYKKworLyogRm9y bWVyIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmb3Igc3RhbmRhbG9uZSBs aWJpby4gIE1vc3Qgb2YKKyAgIHRoZXNlIGFyZSBmaXhlZCBmb3IgdGhlIEdO VSBDIGxpYnJhcnkuICAqLworCisjaW5jbHVkZSA8Yml0cy90eXBlcy5oPgor CisjZGVmaW5lIF9fbmVlZF9zaXplX3QKKyNkZWZpbmUgX19uZWVkX3djaGFy X3QKKyNkZWZpbmUgX19uZWVkX05VTEwKKyNpbmNsdWRlIDxzdGRkZWYuaD4K KworI2RlZmluZSBfX25lZWRfX192YV9saXN0CisjaW5jbHVkZSA8c3RkYXJn Lmg+CisKKyNpbmNsdWRlIDxiaXRzL3R5cGVzL19fbWJzdGF0ZV90Lmg+Cisj aW5jbHVkZSA8Yml0cy90eXBlcy9fX2Zwb3NfdC5oPgorI2luY2x1ZGUgPGJp dHMvdHlwZXMvd2ludF90Lmg+CisKKyNpbmNsdWRlIDxnY29udi5oPgordHlw ZWRlZiB1bmlvbgoreworICBzdHJ1Y3QgX19nY29udl9pbmZvIF9fY2Q7Cisg IHN0cnVjdAorICB7CisgICAgc3RydWN0IF9fZ2NvbnZfaW5mbyBfX2NkOwor ICAgIHN0cnVjdCBfX2djb252X3N0ZXBfZGF0YSBfX2RhdGE7CisgIH0gX19j b21iaW5lZDsKK30gX0dfaWNvbnZfdDsKKworI2RlZmluZSBfR19IQVZFX01N QVAgMQorI2RlZmluZSBfR19JT19JT19GSUxFX1ZFUlNJT04gMHgyMDAwMQor CisvKiBUaGlzIGlzIGRlZmluZWQgYnkgPGJpdHMvc3RhdC5oPiBpZiBgc3Rf Ymxrc2l6ZScgZXhpc3RzLiAgKi8KKyNkZWZpbmUgX0dfSEFWRV9TVF9CTEtT SVpFIGRlZmluZWQgKF9TVEFUQlVGX1NUX0JMS1NJWkUpCisKKy8qIFRoaXMg bXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBvZiBCVUZTSVogaW4gc3RkaW8u aC4gICovCisjZGVmaW5lIF9HX0JVRlNJWiA4MTkyCisKKy8qIEFsbG93IHBv cnRzIHRvIG92ZXJyaWRlIHRoZSBhYm92ZSBpZiBhYnNvbHV0ZWx5IG5lY2Vz c2FyeS4gICAqLwogI2luY2x1ZGUgPF9HX2NvbmZpZy5oPgotLyogQUxMIG9m IHRoZXNlIHNob3VsZCBiZSBkZWZpbmVkIGluIF9HX2NvbmZpZy5oICovCi0j ZGVmaW5lIF9JT19mcG9zX3QgX0dfZnBvc190Ci0jZGVmaW5lIF9JT19mcG9z NjRfdCBfR19mcG9zNjRfdAorCisjZGVmaW5lIF9JT19mcG9zX3QgX19mcG9z X3QKKyNkZWZpbmUgX0lPX2Zwb3M2NF90IF9fZnBvczY0X3QKICNkZWZpbmUg X0lPX3NpemVfdCBzaXplX3QKICNkZWZpbmUgX0lPX3NzaXplX3QgX19zc2l6 ZV90CiAjZGVmaW5lIF9JT19vZmZfdCBfX29mZl90CkBAIC00MSwzOCArODUs MTcgQEAKICNkZWZpbmUgX0lPX2ljb252X3QgX0dfaWNvbnZfdAogI2RlZmlu ZSBfSU9fSEFWRV9TVF9CTEtTSVpFIF9HX0hBVkVfU1RfQkxLU0laRQogI2Rl ZmluZSBfSU9fQlVGU0laIF9HX0JVRlNJWgotI2RlZmluZSBfSU9fdmFfbGlz dCBfR192YV9saXN0CisjZGVmaW5lIF9JT192YV9saXN0IF9fZ251Y192YV9s aXN0CiAjZGVmaW5lIF9JT193aW50X3Qgd2ludF90CiAKLS8qIFRoaXMgZGVm aW5lIGF2b2lkcyBuYW1lIHBvbGx1dGlvbiBpZiB3ZSdyZSB1c2luZyBHTlUg c3RkYXJnLmggKi8KLSNkZWZpbmUgX19uZWVkX19fdmFfbGlzdAotI2luY2x1 ZGUgPHN0ZGFyZy5oPgotI2lmZGVmIF9fR05VQ19WQV9MSVNUCi0jIHVuZGVm IF9JT192YV9saXN0Ci0jIGRlZmluZSBfSU9fdmFfbGlzdCBfX2dudWNfdmFf bGlzdAotI2VuZGlmIC8qIF9fR05VQ19WQV9MSVNUICovCi0KLSNpZm5kZWYg X19QCi0jIGluY2x1ZGUgPHN5cy9jZGVmcy5oPgotI2VuZGlmIC8qIV9fUCov Ci0KKy8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgKi8KKyNkZWZpbmUgX1NU RElPX1VTRVNfSU9TVFJFQU0gMQogI2RlZmluZSBfSU9fVU5JRklFRF9KVU1Q VEFCTEVTIDEKKyNkZWZpbmUgX19IQVZFX0NPTFVNTiAxCiAKICNpZm5kZWYg RU9GCiAjIGRlZmluZSBFT0YgKC0xKQogI2VuZGlmCi0jaWZuZGVmIE5VTEwK LSMgaWYgZGVmaW5lZCBfX0dOVUdfXyAmJiBcCi0gICAgKF9fR05VQ19fID4g MiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA4KSkK LSMgIGRlZmluZSBOVUxMIChfX251bGwpCi0jIGVsc2UKLSMgIGlmICFkZWZp bmVkKF9fY3BsdXNwbHVzKQotIyAgIGRlZmluZSBOVUxMICgodm9pZCopMCkK LSMgIGVsc2UKLSMgICBkZWZpbmUgTlVMTCAoMCkKLSMgIGVuZGlmCi0jIGVu ZGlmCi0jZW5kaWYKIAogI2RlZmluZSBfSU9TX0lOUFVUCTEKICNkZWZpbmUg X0lPU19PVVRQVVQJMgpAQCAtMTExLDE1ICsxMzQsMTEgQEAKIAogI2RlZmlu ZSBfSU9fRkxBR1MyX01NQVAgMQogI2RlZmluZSBfSU9fRkxBR1MyX05PVENB TkNFTCAyCi0jaWZkZWYgX0xJQkMKLSMgZGVmaW5lIF9JT19GTEFHUzJfRk9S VElGWSA0Ci0jZW5kaWYKKyNkZWZpbmUgX0lPX0ZMQUdTMl9GT1JUSUZZIDQK ICNkZWZpbmUgX0lPX0ZMQUdTMl9VU0VSX1dCVUYgOAotI2lmZGVmIF9MSUJD Ci0jIGRlZmluZSBfSU9fRkxBR1MyX1NDQU5GX1NURCAxNgotIyBkZWZpbmUg X0lPX0ZMQUdTMl9OT0NMT1NFIDMyCi0jIGRlZmluZSBfSU9fRkxBR1MyX0NM T0VYRUMgNjQKLSNlbmRpZgorI2RlZmluZSBfSU9fRkxBR1MyX1NDQU5GX1NU RCAxNgorI2RlZmluZSBfSU9fRkxBR1MyX05PQ0xPU0UgMzIKKyNkZWZpbmUg X0lPX0ZMQUdTMl9DTE9FWEVDIDY0CiAKIC8qIFRoZXNlIGFyZSAiZm9ybWF0 dGluZyBmbGFncyIgbWF0Y2hpbmcgdGhlIGlvc3RyZWFtIGZtdGZsYWdzIGVu dW0gdmFsdWVzLiAqLwogI2RlZmluZSBfSU9fU0tJUFdTIDAxCkBAIC0xNDEs MzQgKzE2MCw2NyBAQAogI2RlZmluZSBfSU9fQk9PTEFMUEhBIDAyMDAwMDAK IAogCi1zdHJ1Y3QgX0lPX2p1bXBfdDsgIHN0cnVjdCBfSU9fRklMRTsKK3N0 cnVjdCBfSU9fanVtcF90Oworc3RydWN0IF9JT19GSUxFOworc3RydWN0IF9J T19GSUxFX3BsdXM7Cit0eXBlZGVmIHN0cnVjdCBfSU9fRklMRSBfSU9fRklM RTsKIAotLyogRHVyaW5nIHRoZSBidWlsZCBvZiBnbGliYyBpdHNlbGYsIF9J T19sb2NrX3Qgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbgotICAgZGVmaW5lZCBi eSBpbnRlcm5hbCBoZWFkZXJzLiAgKi8KLSNpZm5kZWYgX0lPX2xvY2tfdF9k ZWZpbmVkCi10eXBlZGVmIHZvaWQgX0lPX2xvY2tfdDsKKyNpbmNsdWRlIDxi aXRzL3R5cGVzL19fRklMRS5oPgorI2luY2x1ZGUgPGJpdHMvdHlwZXMvRklM RS5oPgorI2luY2x1ZGUgPGJpdHMvdHlwZXMvRklMRV9pbnRlcm5hbHMuaD4K KyNkZWZpbmUgX0lPX2ZpbGVfZmxhZ3MgX2ZsYWdzIC8qIENvbXBhdGliaWxp dHkuICovCisKKyNpZmRlZiBfSU9fVVNFX09MRF9JT19GSUxFCisvKiBUaGlz IHN0cnVjdHVyZSBpcyBhIHByb3BlciBwcmVmaXggb2YgdGhlIF9JT19GSUxF IHN0cnVjdHVyZSBkZWZpbmVkCisgICBpbiBGSUxFX2ludGVybmFscy5oLiAg Ki8KK3N0cnVjdCBfSU9fRklMRV9vbGQKK3sKKyAgaW50IF9mbGFnczsJCS8q IEhpZ2gtb3JkZXIgd29yZCBpcyBfSU9fTUFHSUM7IHJlc3QgaXMgZmxhZ3Mu ICovCisKKyAgLyogVGhlIGZvbGxvd2luZyBwb2ludGVycyBjb3JyZXNwb25k IHRvIHRoZSBDKysgc3RyZWFtYnVmIHByb3RvY29sLiAqLworICAvKiBOb3Rl OiAgVGsgdXNlcyB0aGUgX0lPX3JlYWRfcHRyIGFuZCBfSU9fcmVhZF9lbmQg ZmllbGRzIGRpcmVjdGx5LiAqLworICBjaGFyKiBfSU9fcmVhZF9wdHI7CS8q IEN1cnJlbnQgcmVhZCBwb2ludGVyICovCisgIGNoYXIqIF9JT19yZWFkX2Vu ZDsJLyogRW5kIG9mIGdldCBhcmVhLiAqLworICBjaGFyKiBfSU9fcmVhZF9i YXNlOwkvKiBTdGFydCBvZiBwdXRiYWNrK2dldCBhcmVhLiAqLworICBjaGFy KiBfSU9fd3JpdGVfYmFzZTsJLyogU3RhcnQgb2YgcHV0IGFyZWEuICovCisg IGNoYXIqIF9JT193cml0ZV9wdHI7CS8qIEN1cnJlbnQgcHV0IHBvaW50ZXIu ICovCisgIGNoYXIqIF9JT193cml0ZV9lbmQ7CS8qIEVuZCBvZiBwdXQgYXJl YS4gKi8KKyAgY2hhciogX0lPX2J1Zl9iYXNlOwkvKiBTdGFydCBvZiByZXNl cnZlIGFyZWEuICovCisgIGNoYXIqIF9JT19idWZfZW5kOwkvKiBFbmQgb2Yg cmVzZXJ2ZSBhcmVhLiAqLworICAvKiBUaGUgZm9sbG93aW5nIGZpZWxkcyBh cmUgdXNlZCB0byBzdXBwb3J0IGJhY2tpbmcgdXAgYW5kIHVuZG8uICovCisg IGNoYXIgKl9JT19zYXZlX2Jhc2U7IC8qIFBvaW50ZXIgdG8gc3RhcnQgb2Yg bm9uLWN1cnJlbnQgZ2V0IGFyZWEuICovCisgIGNoYXIgKl9JT19iYWNrdXBf YmFzZTsgIC8qIFBvaW50ZXIgdG8gZmlyc3QgdmFsaWQgY2hhcmFjdGVyIG9m IGJhY2t1cCBhcmVhICovCisgIGNoYXIgKl9JT19zYXZlX2VuZDsgLyogUG9p bnRlciB0byBlbmQgb2Ygbm9uLWN1cnJlbnQgZ2V0IGFyZWEuICovCisKKyAg c3RydWN0IF9JT19tYXJrZXIgKl9tYXJrZXJzOworCisgIHN0cnVjdCBfSU9f RklMRSAqX2NoYWluOworCisgIGludCBfZmlsZW5vOworICBpbnQgX2ZsYWdz MjsKKyAgX0lPX29mZl90IF9vbGRfb2Zmc2V0OyAvKiBUaGlzIHVzZWQgdG8g YmUgX29mZnNldCBidXQgaXQncyB0b28gc21hbGwuICAqLworCisgIC8qIDEr Y29sdW1uIG51bWJlciBvZiBwYmFzZSgpOyAwIGlzIHVua25vd24uICovCisg IHVuc2lnbmVkIHNob3J0IF9jdXJfY29sdW1uOworICBzaWduZWQgY2hhciBf dnRhYmxlX29mZnNldDsKKyAgY2hhciBfc2hvcnRidWZbMV07CisKKyAgLyog IGNoYXIqIF9zYXZlX2dwdHI7ICBjaGFyKiBfc2F2ZV9lZ3B0cjsgKi8KKwor ICBfSU9fbG9ja190ICpfbG9jazsKK307CiAjZW5kaWYKIAotCiAvKiBBIHN0 cmVhbW1hcmtlciByZW1lbWJlcnMgYSBwb3NpdGlvbiBpbiBhIGJ1ZmZlci4g Ki8KIAotc3RydWN0IF9JT19tYXJrZXIgeworc3RydWN0IF9JT19tYXJrZXIK K3sKICAgc3RydWN0IF9JT19tYXJrZXIgKl9uZXh0OwogICBzdHJ1Y3QgX0lP X0ZJTEUgKl9zYnVmOwogICAvKiBJZiBfcG9zID49IDAKICBpdCBwb2ludHMg dG8gX2J1Zi0+R2Jhc2UoKStfcG9zLiBGSVhNRSBjb21tZW50ICovCiAgIC8q IGlmIF9wb3MgPCAwLCBpdCBwb2ludHMgdG8gX2J1Zi0+ZUJwdHIoKStfcG9z LiBGSVhNRSBjb21tZW50ICovCiAgIGludCBfcG9zOwotI2lmIDAKLSAgICB2 b2lkIHNldF9zdHJlYW1wb3Moc3RyZWFtcG9zIHNwKSB7IF9zcG9zID0gc3A7 IH0KLSAgICB2b2lkIHNldF9vZmZzZXQoaW50IG9mZnNldCkgeyBfcG9zID0g b2Zmc2V0OyBfc3BvcyA9IChzdHJlYW1wb3MpKC0yKTsgfQotICBwdWJsaWM6 Ci0gICAgc3RyZWFtbWFya2VyKHN0cmVhbWJ1ZiAqc2IpOwotICAgIH5zdHJl YW1tYXJrZXIoKTsKLSAgICBpbnQgc2F2aW5nKCkgeyByZXR1cm4gIF9zcG9z ID09IC0yOyB9Ci0gICAgaW50IGRlbHRhKHN0cmVhbW1hcmtlciYpOwotICAg IGludCBkZWx0YSgpOwotI2VuZGlmCiB9OwogCiAvKiBUaGlzIGlzIHRoZSBz dHJ1Y3R1cmUgZnJvbSB0aGUgbGlic3RkYysrIGNvZGVjdnQgY2xhc3MuICAq LwpAQCAtMTgwLDcgKzIzMiw2IEBAIGVudW0gX19jb2RlY3Z0X3Jlc3VsdAog ICBfX2NvZGVjdnRfbm9jb252CiB9OwogCi0jaWYgZGVmaW5lZCBfTElCQyB8 fCBkZWZpbmVkIF9HTElCQ1BQX1VTRV9XQ0hBUl9UCiAvKiBUaGUgb3JkZXIg b2YgdGhlIGVsZW1lbnRzIGluIHRoZSBmb2xsb3dpbmcgc3RydWN0IG11c3Qg bWF0Y2ggdGhlIG9yZGVyCiAgICBvZiB0aGUgdmlydHVhbCBmdW5jdGlvbnMg aW4gdGhlIGxpYnN0ZGMrKyBjb2RlY3Z0IGNsYXNzLiAgKi8KIHN0cnVjdCBf SU9fY29kZWN2dApAQCAtMjM1LDE2NiArMjg2LDQwIEBAIHN0cnVjdCBfSU9f d2lkZV9kYXRhCiAKICAgY29uc3Qgc3RydWN0IF9JT19qdW1wX3QgKl93aWRl X3Z0YWJsZTsKIH07Ci0jZW5kaWYKIAotc3RydWN0IF9JT19GSUxFIHsKLSAg aW50IF9mbGFnczsJCS8qIEhpZ2gtb3JkZXIgd29yZCBpcyBfSU9fTUFHSUM7 IHJlc3QgaXMgZmxhZ3MuICovCi0jZGVmaW5lIF9JT19maWxlX2ZsYWdzIF9m bGFncwotCi0gIC8qIFRoZSBmb2xsb3dpbmcgcG9pbnRlcnMgY29ycmVzcG9u ZCB0byB0aGUgQysrIHN0cmVhbWJ1ZiBwcm90b2NvbC4gKi8KLSAgLyogTm90 ZTogIFRrIHVzZXMgdGhlIF9JT19yZWFkX3B0ciBhbmQgX0lPX3JlYWRfZW5k IGZpZWxkcyBkaXJlY3RseS4gKi8KLSAgY2hhciogX0lPX3JlYWRfcHRyOwkv KiBDdXJyZW50IHJlYWQgcG9pbnRlciAqLwotICBjaGFyKiBfSU9fcmVhZF9l bmQ7CS8qIEVuZCBvZiBnZXQgYXJlYS4gKi8KLSAgY2hhciogX0lPX3JlYWRf YmFzZTsJLyogU3RhcnQgb2YgcHV0YmFjaytnZXQgYXJlYS4gKi8KLSAgY2hh ciogX0lPX3dyaXRlX2Jhc2U7CS8qIFN0YXJ0IG9mIHB1dCBhcmVhLiAqLwot ICBjaGFyKiBfSU9fd3JpdGVfcHRyOwkvKiBDdXJyZW50IHB1dCBwb2ludGVy LiAqLwotICBjaGFyKiBfSU9fd3JpdGVfZW5kOwkvKiBFbmQgb2YgcHV0IGFy ZWEuICovCi0gIGNoYXIqIF9JT19idWZfYmFzZTsJLyogU3RhcnQgb2YgcmVz ZXJ2ZSBhcmVhLiAqLwotICBjaGFyKiBfSU9fYnVmX2VuZDsJLyogRW5kIG9m IHJlc2VydmUgYXJlYS4gKi8KLSAgLyogVGhlIGZvbGxvd2luZyBmaWVsZHMg YXJlIHVzZWQgdG8gc3VwcG9ydCBiYWNraW5nIHVwIGFuZCB1bmRvLiAqLwot ICBjaGFyICpfSU9fc2F2ZV9iYXNlOyAvKiBQb2ludGVyIHRvIHN0YXJ0IG9m IG5vbi1jdXJyZW50IGdldCBhcmVhLiAqLwotICBjaGFyICpfSU9fYmFja3Vw X2Jhc2U7ICAvKiBQb2ludGVyIHRvIGZpcnN0IHZhbGlkIGNoYXJhY3RlciBv ZiBiYWNrdXAgYXJlYSAqLwotICBjaGFyICpfSU9fc2F2ZV9lbmQ7IC8qIFBv aW50ZXIgdG8gZW5kIG9mIG5vbi1jdXJyZW50IGdldCBhcmVhLiAqLwotCi0g IHN0cnVjdCBfSU9fbWFya2VyICpfbWFya2VyczsKLQotICBzdHJ1Y3QgX0lP X0ZJTEUgKl9jaGFpbjsKLQotICBpbnQgX2ZpbGVubzsKLSNpZiAwCi0gIGlu dCBfYmxrc2l6ZTsKLSNlbHNlCi0gIGludCBfZmxhZ3MyOwotI2VuZGlmCi0g IF9JT19vZmZfdCBfb2xkX29mZnNldDsgLyogVGhpcyB1c2VkIHRvIGJlIF9v ZmZzZXQgYnV0IGl0J3MgdG9vIHNtYWxsLiAgKi8KLQotI2RlZmluZSBfX0hB VkVfQ09MVU1OIC8qIHRlbXBvcmFyeSAqLwotICAvKiAxK2NvbHVtbiBudW1i ZXIgb2YgcGJhc2UoKTsgMCBpcyB1bmtub3duLiAqLwotICB1bnNpZ25lZCBz aG9ydCBfY3VyX2NvbHVtbjsKLSAgc2lnbmVkIGNoYXIgX3Z0YWJsZV9vZmZz ZXQ7Ci0gIGNoYXIgX3Nob3J0YnVmWzFdOwotCi0gIC8qICBjaGFyKiBfc2F2 ZV9ncHRyOyAgY2hhciogX3NhdmVfZWdwdHI7ICovCi0KLSAgX0lPX2xvY2tf dCAqX2xvY2s7Ci0jaWZkZWYgX0lPX1VTRV9PTERfSU9fRklMRQotfTsKLQot c3RydWN0IF9JT19GSUxFX2NvbXBsZXRlCi17Ci0gIHN0cnVjdCBfSU9fRklM RSBfZmlsZTsKLSNlbmRpZgotI2lmIGRlZmluZWQgX0dfSU9fSU9fRklMRV9W RVJTSU9OICYmIF9HX0lPX0lPX0ZJTEVfVkVSU0lPTiA9PSAweDIwMDAxCi0g IF9JT19vZmY2NF90IF9vZmZzZXQ7Ci0jIGlmIGRlZmluZWQgX0xJQkMgfHwg ZGVmaW5lZCBfR0xJQkNQUF9VU0VfV0NIQVJfVAotICAvKiBXaWRlIGNoYXJh Y3RlciBzdHJlYW0gc3R1ZmYuICAqLwotICBzdHJ1Y3QgX0lPX2NvZGVjdnQg Kl9jb2RlY3Z0OwotICBzdHJ1Y3QgX0lPX3dpZGVfZGF0YSAqX3dpZGVfZGF0 YTsKLSAgc3RydWN0IF9JT19GSUxFICpfZnJlZXJlc19saXN0OwotICB2b2lk ICpfZnJlZXJlc19idWY7Ci0jIGVsc2UKLSAgdm9pZCAqX19wYWQxOwotICB2 b2lkICpfX3BhZDI7Ci0gIHZvaWQgKl9fcGFkMzsKLSAgdm9pZCAqX19wYWQ0 OwotIyBlbmRpZgotICBzaXplX3QgX19wYWQ1OwotICBpbnQgX21vZGU7Ci0g IC8qIE1ha2Ugc3VyZSB3ZSBkb24ndCBnZXQgaW50byB0cm91YmxlIGFnYWlu LiAgKi8KLSAgY2hhciBfdW51c2VkMlsxNSAqIHNpemVvZiAoaW50KSAtIDQg KiBzaXplb2YgKHZvaWQgKikgLSBzaXplb2YgKHNpemVfdCldOwotI2VuZGlm Ci19OwotCi0jaWZuZGVmIF9fY3BsdXNwbHVzCi10eXBlZGVmIHN0cnVjdCBf SU9fRklMRSBfSU9fRklMRTsKLSNlbmRpZgotCi1zdHJ1Y3QgX0lPX0ZJTEVf cGx1czsKIAogZXh0ZXJuIHN0cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFf c3RkaW5fOwogZXh0ZXJuIHN0cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFf c3Rkb3V0XzsKIGV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8x X3N0ZGVycl87Ci0jaWZuZGVmIF9MSUJDCi0jZGVmaW5lIF9JT19zdGRpbiAo KF9JT19GSUxFKikoJl9JT18yXzFfc3RkaW5fKSkKLSNkZWZpbmUgX0lPX3N0 ZG91dCAoKF9JT19GSUxFKikoJl9JT18yXzFfc3Rkb3V0XykpCi0jZGVmaW5l IF9JT19zdGRlcnIgKChfSU9fRklMRSopKCZfSU9fMl8xX3N0ZGVycl8pKQot I2Vsc2UKIGV4dGVybiBfSU9fRklMRSAqX0lPX3N0ZGluIGF0dHJpYnV0ZV9o aWRkZW47CiBleHRlcm4gX0lPX0ZJTEUgKl9JT19zdGRvdXQgYXR0cmlidXRl X2hpZGRlbjsKIGV4dGVybiBfSU9fRklMRSAqX0lPX3N0ZGVyciBhdHRyaWJ1 dGVfaGlkZGVuOwotI2VuZGlmCi0KIAogLyogRnVuY3Rpb25zIHRvIGRvIEkv TyBhbmQgZmlsZSBtYW5hZ2VtZW50IGZvciBhIHN0cmVhbS4gICovCisjaW5j bHVkZSA8Yml0cy90eXBlcy9jb29raWVfaW9fZnVuY3Rpb25zX3QuaD4KIAot LyogUmVhZCBOQllURVMgYnl0ZXMgZnJvbSBDT09LSUUgaW50byBhIGJ1ZmZl ciBwb2ludGVkIHRvIGJ5IEJVRi4KLSAgIFJldHVybiBudW1iZXIgb2YgYnl0 ZXMgcmVhZC4gICovCi10eXBlZGVmIF9fc3NpemVfdCBfX2lvX3JlYWRfZm4g KHZvaWQgKl9fY29va2llLCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fbmJ5dGVz KTsKKy8qIExlZ2FjeSBpbnRlcm5hbCBuYW1lcyBmb3IgY29va2llIEkvTyB0 eXBlcy4gICovCit0eXBlZGVmIGNvb2tpZV9yZWFkX2Z1bmN0aW9uX3QgX19p b19yZWFkX2ZuOwordHlwZWRlZiBjb29raWVfd3JpdGVfZnVuY3Rpb25fdCBf X2lvX3dyaXRlX2ZuOwordHlwZWRlZiBjb29raWVfc2Vla19mdW5jdGlvbl90 IF9faW9fc2Vla19mbjsKK3R5cGVkZWYgY29va2llX2Nsb3NlX2Z1bmN0aW9u X3QgX19pb19jbG9zZV9mbjsKIAotLyogV3JpdGUgTiBieXRlcyBwb2ludGVk IHRvIGJ5IEJVRiB0byBDT09LSUUuICBXcml0ZSBhbGwgTiBieXRlcwotICAg dW5sZXNzIHRoZXJlIGlzIGFuIGVycm9yLiAgUmV0dXJuIG51bWJlciBvZiBi eXRlcyB3cml0dGVuLiAgSWYKLSAgIHRoZXJlIGlzIGFuIGVycm9yLCByZXR1 cm4gMCBhbmQgZG8gbm90IHdyaXRlIGFueXRoaW5nLiAgSWYgdGhlIGZpbGUK LSAgIGhhcyBiZWVuIG9wZW5lZCBmb3IgYXBwZW5kIChfX21vZGUuX19hcHBl bmQgc2V0KSwgdGhlbiBzZXQgdGhlIGZpbGUKLSAgIHBvaW50ZXIgdG8gdGhl IGVuZCBvZiB0aGUgZmlsZSBhbmQgdGhlbiBkbyB0aGUgd3JpdGU7IGlmIG5v dCwganVzdAotICAgd3JpdGUgYXQgdGhlIGN1cnJlbnQgZmlsZSBwb2ludGVy LiAgKi8KLXR5cGVkZWYgX19zc2l6ZV90IF9faW9fd3JpdGVfZm4gKHZvaWQg Kl9fY29va2llLCBjb25zdCBjaGFyICpfX2J1ZiwKLQkJCQkgc2l6ZV90IF9f bik7Ci0KLS8qIE1vdmUgQ09PS0lFJ3MgZmlsZSBwb3NpdGlvbiB0byAqUE9T IGJ5dGVzIGZyb20gdGhlCi0gICBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgKGlm IFcgaXMgU0VFS19TRVQpLAotICAgdGhlIGN1cnJlbnQgcG9zaXRpb24gKGlm IFcgaXMgU0VFS19DVVIpLAotICAgb3IgdGhlIGVuZCBvZiB0aGUgZmlsZSAo aWYgVyBpcyBTRUVLX0VORCkuCi0gICBTZXQgKlBPUyB0byB0aGUgbmV3IGZp bGUgcG9zaXRpb24uCi0gICBSZXR1cm5zIHplcm8gaWYgc3VjY2Vzc2Z1bCwg bm9uemVybyBpZiBub3QuICAqLwotdHlwZWRlZiBpbnQgX19pb19zZWVrX2Zu ICh2b2lkICpfX2Nvb2tpZSwgX0lPX29mZjY0X3QgKl9fcG9zLCBpbnQgX193 KTsKLQotLyogQ2xvc2UgQ09PS0lFLiAgKi8KLXR5cGVkZWYgaW50IF9faW9f Y2xvc2VfZm4gKHZvaWQgKl9fY29va2llKTsKLQotCi0jaWZkZWYgX19VU0Vf R05VCi0vKiBVc2VyLXZpc2libGUgbmFtZXMgZm9yIHRoZSBhYm92ZS4gICov Ci10eXBlZGVmIF9faW9fcmVhZF9mbiBjb29raWVfcmVhZF9mdW5jdGlvbl90 OwotdHlwZWRlZiBfX2lvX3dyaXRlX2ZuIGNvb2tpZV93cml0ZV9mdW5jdGlv bl90OwotdHlwZWRlZiBfX2lvX3NlZWtfZm4gY29va2llX3NlZWtfZnVuY3Rp b25fdDsKLXR5cGVkZWYgX19pb19jbG9zZV9mbiBjb29raWVfY2xvc2VfZnVu Y3Rpb25fdDsKLQotLyogVGhlIHN0cnVjdHVyZSB3aXRoIHRoZSBjb29raWUg ZnVuY3Rpb24gcG9pbnRlcnMuICAqLwotdHlwZWRlZiBzdHJ1Y3QKLXsKLSAg X19pb19yZWFkX2ZuICpyZWFkOwkJLyogUmVhZCBieXRlcy4gICovCi0gIF9f aW9fd3JpdGVfZm4gKndyaXRlOwkJLyogV3JpdGUgYnl0ZXMuICAqLwotICBf X2lvX3NlZWtfZm4gKnNlZWs7CQkvKiBTZWVrL3RlbGwgZmlsZSBwb3NpdGlv bi4gICovCi0gIF9faW9fY2xvc2VfZm4gKmNsb3NlOwkJLyogQ2xvc2UgZmls ZS4gICovCi19IF9JT19jb29raWVfaW9fZnVuY3Rpb25zX3Q7Ci10eXBlZGVm IF9JT19jb29raWVfaW9fZnVuY3Rpb25zX3QgY29va2llX2lvX2Z1bmN0aW9u c190OwordHlwZWRlZiBjb29raWVfaW9fZnVuY3Rpb25zX3QgX0lPX2Nvb2tp ZV9pb19mdW5jdGlvbnNfdDsKIAogc3RydWN0IF9JT19jb29raWVfZmlsZTsK IAogLyogSW5pdGlhbGl6ZSBvbmUgb2YgdGhvc2UuICAqLwogZXh0ZXJuIHZv aWQgX0lPX2Nvb2tpZV9pbml0IChzdHJ1Y3QgX0lPX2Nvb2tpZV9maWxlICpf X2NmaWxlLCBpbnQgX19yZWFkX3dyaXRlLAogCQkJICAgICB2b2lkICpfX2Nv b2tpZSwgX0lPX2Nvb2tpZV9pb19mdW5jdGlvbnNfdCBfX2Zucyk7Ci0jZW5k aWYKLQotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2Vu ZGlmCiAKIGV4dGVybiBpbnQgX191bmRlcmZsb3cgKF9JT19GSUxFICopOwog ZXh0ZXJuIGludCBfX3VmbG93IChfSU9fRklMRSAqKTsKIGV4dGVybiBpbnQg X19vdmVyZmxvdyAoX0lPX0ZJTEUgKiwgaW50KTsKLSNpZiBkZWZpbmVkIF9M SUJDIHx8IGRlZmluZWQgX0dMSUJDUFBfVVNFX1dDSEFSX1QKIGV4dGVybiBf SU9fd2ludF90IF9fd3VuZGVyZmxvdyAoX0lPX0ZJTEUgKik7CiBleHRlcm4g X0lPX3dpbnRfdCBfX3d1ZmxvdyAoX0lPX0ZJTEUgKik7CiBleHRlcm4gX0lP X3dpbnRfdCBfX3dvdmVyZmxvdyAoX0lPX0ZJTEUgKiwgX0lPX3dpbnRfdCk7 Ci0jZW5kaWYKIAotI2lmICBfX0dOVUNfXyA+PSAzCi0jIGRlZmluZSBfSU9f QkUoZXhwciwgcmVzKSBfX2J1aWx0aW5fZXhwZWN0ICgoZXhwciksIHJlcykK LSNlbHNlCi0jIGRlZmluZSBfSU9fQkUoZXhwciwgcmVzKSAoZXhwcikKLSNl bmRpZgorI2RlZmluZSBfSU9fQkUoZXhwciwgcmVzKSBfX2J1aWx0aW5fZXhw ZWN0ICgoZXhwciksIHJlcykKIAogI2RlZmluZSBfSU9fZ2V0Y191bmxvY2tl ZChfZnApIFwKICAgICAgICAoX0lPX0JFICgoX2ZwKS0+X0lPX3JlYWRfcHRy ID49IChfZnApLT5fSU9fcmVhZF9lbmQsIDApIFwKQEAgLTQwOCw3ICszMzMs NiBAQCBleHRlcm4gX0lPX3dpbnRfdCBfX3dvdmVyZmxvdyAoX0lPX0ZJTEUg KiwgX0lPX3dpbnRfdCk7CiAgICAgPyBfX292ZXJmbG93IChfZnAsICh1bnNp Z25lZCBjaGFyKSAoX2NoKSkgXAogICAgIDogKHVuc2lnbmVkIGNoYXIpICgq KF9mcCktPl9JT193cml0ZV9wdHIrKyA9IChfY2gpKSkKIAotI2lmIGRlZmlu ZWQgX0xJQkMgfHwgZGVmaW5lZCBfR0xJQkNQUF9VU0VfV0NIQVJfVAogIyBk ZWZpbmUgX0lPX2dldHdjX3VubG9ja2VkKF9mcCkgXAogICAoX0lPX0JFICgo X2ZwKS0+X3dpZGVfZGF0YSA9PSBOVUxMCQkJCQlcCiAJICAgfHwgKChfZnAp LT5fd2lkZV9kYXRhLT5fSU9fcmVhZF9wdHIJCQkJXApAQCAtNDIwLDcgKzM0 NCw2IEBAIGV4dGVybiBfSU9fd2ludF90IF9fd292ZXJmbG93IChfSU9fRklM RSAqLCBfSU9fd2ludF90KTsKIAkgICAgICAgPj0gKF9mcCktPl93aWRlX2Rh dGEtPl9JT193cml0ZV9lbmQpLCAwKQkJCVwKICAgID8gX193b3ZlcmZsb3cg KF9mcCwgX3djaCkJCQkJCQlcCiAgICA6IChfSU9fd2ludF90KSAoKihfZnAp LT5fd2lkZV9kYXRhLT5fSU9fd3JpdGVfcHRyKysgPSAoX3djaCkpKQotI2Vu ZGlmCiAKICNkZWZpbmUgX0lPX2Zlb2ZfdW5sb2NrZWQoX19mcCkgKCgoX19m cCktPl9mbGFncyAmIF9JT19FT0ZfU0VFTikgIT0gMCkKICNkZWZpbmUgX0lP X2ZlcnJvcl91bmxvY2tlZChfX2ZwKSAoKChfX2ZwKS0+X2ZsYWdzICYgX0lP X0VSUl9TRUVOKSAhPSAwKQpAQCAtNDYzLDI4ICszODYsMjggQEAgZXh0ZXJu IF9JT19vZmY2NF90IF9JT19zZWVrcG9zIChfSU9fRklMRSAqLCBfSU9fb2Zm NjRfdCwgaW50KTsKIAogZXh0ZXJuIHZvaWQgX0lPX2ZyZWVfYmFja3VwX2Fy ZWEgKF9JT19GSUxFICopIF9fVEhST1c7CiAKLSNpZiBkZWZpbmVkIF9MSUJD IHx8IGRlZmluZWQgX0dMSUJDUFBfVVNFX1dDSEFSX1QKIGV4dGVybiBfSU9f d2ludF90IF9JT19nZXR3YyAoX0lPX0ZJTEUgKl9fZnApOwogZXh0ZXJuIF9J T193aW50X3QgX0lPX3B1dHdjICh3Y2hhcl90IF9fd2MsIF9JT19GSUxFICpf X2ZwKTsKIGV4dGVybiBpbnQgX0lPX2Z3aWRlIChfSU9fRklMRSAqX19mcCwg aW50IF9fbW9kZSkgX19USFJPVzsKLSMgaWYgX19HTlVDX18gPj0gMgorCiAv KiBXaGlsZSBjb21waWxpbmcgZ2xpYmMgd2UgaGF2ZSB0byBoYW5kbGUgY29t cGF0aWJpbGl0eSB3aXRoIHZlcnkgb2xkCiAgICB2ZXJzaW9ucy4gICovCi0j ICBpZiBkZWZpbmVkIF9MSUJDICYmIGRlZmluZWQgU0hBUkVECi0jICAgaW5j bHVkZSA8c2hsaWItY29tcGF0Lmg+Ci0jICAgaWYgU0hMSUJfQ09NUEFUIChs aWJjLCBHTElCQ18yXzAsIEdMSUJDXzJfMSkKLSMgICAgZGVmaW5lIF9JT19m d2lkZV9tYXliZV9pbmNvbXBhdGlibGUgXAorI2lmIGRlZmluZWQgU0hBUkVE CisjIGluY2x1ZGUgPHNobGliLWNvbXBhdC5oPgorIyBpZiBTSExJQl9DT01Q QVQgKGxpYmMsIEdMSUJDXzJfMCwgR0xJQkNfMl8xKQorIyAgZGVmaW5lIF9J T19md2lkZV9tYXliZV9pbmNvbXBhdGlibGUgXAogICAoX19idWlsdGluX2V4 cGVjdCAoJl9JT19zdGRpbl91c2VkID09IE5VTEwsIDApKQogZXh0ZXJuIGNv bnN0IGludCBfSU9fc3RkaW5fdXNlZDsKIHdlYWtfZXh0ZXJuIChfSU9fc3Rk aW5fdXNlZCk7Ci0jICAgZW5kaWYKLSMgIGVuZGlmCi0jICBpZm5kZWYgX0lP X2Z3aWRlX21heWJlX2luY29tcGF0aWJsZQotIyAgIGRlZmluZSBfSU9fZndp ZGVfbWF5YmVfaW5jb21wYXRpYmxlICgwKQotIyAgZW5kaWYKKyMgZW5kaWYK KyNlbmRpZgorI2lmbmRlZiBfSU9fZndpZGVfbWF5YmVfaW5jb21wYXRpYmxl CisjIGRlZmluZSBfSU9fZndpZGVfbWF5YmVfaW5jb21wYXRpYmxlICgwKQor I2VuZGlmCisKIC8qIEEgc3BlY2lhbCBvcHRpbWl6ZWQgdmVyc2lvbiBvZiB0 aGUgZnVuY3Rpb24gYWJvdmUuICBJdCBvcHRpbWl6ZXMgdGhlCiAgICBjYXNl IG9mIGluaXRpYWxpemluZyBhbiB1bm9yaWVudGVkIGJ5dGUgc3RyZWFtLiAg Ki8KLSMgIGRlZmluZSBfSU9fZndpZGUoX19mcCwgX19tb2RlKSBcCisjZGVm aW5lIF9JT19md2lkZShfX2ZwLCBfX21vZGUpIFwKICAgKHsgaW50IF9fcmVz dWx0ID0gKF9fbW9kZSk7CQkJCQkJICAgICAgXAogICAgICBpZiAoX19yZXN1 bHQgPCAwICYmICEgX0lPX2Z3aWRlX21heWJlX2luY29tcGF0aWJsZSkJCSAg ICAgIFwKICAgICAgICB7CQkJCQkJCQkgICAgICBcCkBAIC00OTgsNyArNDIx LDYgQEAgd2Vha19leHRlcm4gKF9JT19zdGRpbl91c2VkKTsKICAgICAgZWxz ZQkJCQkJCQkJICAgICAgXAogICAgICAgIF9fcmVzdWx0ID0gX0lPX2Z3aWRl IChfX2ZwLCBfX3Jlc3VsdCk7CQkJCSAgICAgIFwKICAgICAgX19yZXN1bHQ7 IH0pCi0jIGVuZGlmCiAKIGV4dGVybiBpbnQgX0lPX3Zmd3NjYW5mIChfSU9f RklMRSAqIF9fcmVzdHJpY3QsIGNvbnN0IHdjaGFyX3QgKiBfX3Jlc3RyaWN0 LAogCQkJIF9JT192YV9saXN0LCBpbnQgKl9fcmVzdHJpY3QpOwpAQCAtNTA2 LDE0ICs0MjgsOSBAQCBleHRlcm4gaW50IF9JT192ZndwcmludGYgKF9JT19G SUxFICpfX3Jlc3RyaWN0LCBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0LAog CQkJICBfSU9fdmFfbGlzdCk7CiBleHRlcm4gX0lPX3NzaXplX3QgX0lPX3dw YWRuIChfSU9fRklMRSAqLCB3aW50X3QsIF9JT19zc2l6ZV90KTsKIGV4dGVy biB2b2lkIF9JT19mcmVlX3diYWNrdXBfYXJlYSAoX0lPX0ZJTEUgKikgX19U SFJPVzsKLSNlbmRpZgogCiAjaWZkZWYgX19MREJMX0NPTVBBVAogIyBpbmNs dWRlIDxiaXRzL2xpYmlvLWxkYmwuaD4KICNlbmRpZgogCi0jaWZkZWYgX19j cGx1c3BsdXMKLX0KLSNlbmRpZgotCiAjZW5kaWYgLyogX0lPX1NURElPX0gg Ki8KZGlmZiAtLWdpdCBhL2xpYmlvL2xpYmlvUC5oIGIvbGliaW8vbGliaW9Q LmgKaW5kZXggZWI5MzQxOGM4ZC4uZjUzNzkxNGE3MSAxMDA2NDQKLS0tIGEv bGliaW8vbGliaW9QLmgKKysrIGIvbGliaW8vbGliaW9QLmgKQEAgLTM0Nywx MiArMzQ3LDkgQEAgc3RydWN0IF9JT19GSUxFX3BsdXMKIH07CiAKICNpZmRl ZiBfSU9fVVNFX09MRF9JT19GSUxFCi0vKiBUaGlzIHN0cnVjdHVyZSBpcyB1 c2VkIGJ5IHRoZSBjb21wYXRpYmlsaXR5IGNvZGUgYXMgaWYgaXQgd2VyZSBh bgotICAgX0lPX0ZJTEVfcGx1cywgYnV0IGhhcyBlbm91Z2ggc3BhY2UgdG8g aW5pdGlhbGl6ZSB0aGUgX21vZGUgYXJndW1lbnQKLSAgIG9mIGFuIF9JT19G SUxFX2NvbXBsZXRlLiAgKi8KLXN0cnVjdCBfSU9fRklMRV9jb21wbGV0ZV9w bHVzCitzdHJ1Y3QgX0lPX0ZJTEVfb2xkX3BsdXMKIHsKLSAgc3RydWN0IF9J T19GSUxFX2NvbXBsZXRlIGZpbGU7CisgIHN0cnVjdCBfSU9fRklMRV9vbGQg ZmlsZTsKICAgY29uc3Qgc3RydWN0IF9JT19qdW1wX3QgKnZ0YWJsZTsKIH07 CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYmlvL29sZGZpbGVvcHMuYyBiL2xp YmlvL29sZGZpbGVvcHMuYwppbmRleCAyZWNlZWZhNjhhLi5hNjFhMWRlODdk IDEwMDY0NAotLS0gYS9saWJpby9vbGRmaWxlb3BzLmMKKysrIGIvbGliaW8v b2xkZmlsZW9wcy5jCkBAIC0xMTQsNyArMTE0LDcgQEAgZXh0ZXJuIGludCBl cnJubzsKIAogdm9pZAogYXR0cmlidXRlX2NvbXBhdF90ZXh0X3NlY3Rpb24K LV9JT19vbGRfZmlsZV9pbml0X2ludGVybmFsIChzdHJ1Y3QgX0lPX0ZJTEVf cGx1cyAqZnApCitfSU9fb2xkX2ZpbGVfaW5pdF9pbnRlcm5hbCAoc3RydWN0 IF9JT19GSUxFX29sZF9wbHVzICpmcCkKIHsKICAgLyogUE9TSVguMSBhbGxv d3MgYW5vdGhlciBmaWxlIGhhbmRsZSB0byBiZSB1c2VkIHRvIGNoYW5nZSB0 aGUgcG9zaXRpb24KICAgICAgb2Ygb3VyIGZpbGUgZGVzY3JpcHRvci4gIEhl bmNlIHdlIGFjdHVhbGx5IGRvbid0IGtub3cgdGhlIGFjdHVhbApAQCAtMTIz LDI0ICsxMjMsMjQgQEAgX0lPX29sZF9maWxlX2luaXRfaW50ZXJuYWwgKHN0 cnVjdCBfSU9fRklMRV9wbHVzICpmcCkKICAgZnAtPmZpbGUuX0lPX2ZpbGVf ZmxhZ3MgfD0gQ0xPU0VEX0ZJTEVCVUZfRkxBR1M7CiAKICAgX0lPX2xpbmtf aW4gKGZwKTsKLSAgZnAtPmZpbGUuX3Z0YWJsZV9vZmZzZXQgPSAoKGludCkg c2l6ZW9mIChzdHJ1Y3QgX0lPX0ZJTEUpCi0JCQkgICAgIC0gKGludCkgc2l6 ZW9mIChzdHJ1Y3QgX0lPX0ZJTEVfY29tcGxldGUpKTsKKyAgZnAtPmZpbGUu X3Z0YWJsZV9vZmZzZXQgPSAoKGludCkgc2l6ZW9mIChzdHJ1Y3QgX0lPX0ZJ TEVfb2xkKQorCQkJICAgICAtIChpbnQpIHNpemVvZiAoc3RydWN0IF9JT19G SUxFKSk7CiAgIGZwLT5maWxlLl9maWxlbm8gPSAtMTsKIAogI2lmIGRlZmlu ZWQgU0hBUkVEICYmIGRlZmluZWQgX0xJQkMKICAgaWYgKF9fYnVpbHRpbl9l eHBlY3QgKCZfSU9fc3RkaW5fdXNlZCAhPSBOVUxMLCAxKQotICAgICAgfHwg KGZwICE9IChzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyAqKSBfSU9fc3RkaW4KLQkg ICYmIGZwICE9IChzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyAqKSBfSU9fc3Rkb3V0 Ci0JICAmJiBmcCAhPSAoc3RydWN0IF9JT19GSUxFX3BsdXMgKikgX0lPX3N0 ZGVycikpCisgICAgICB8fCAoZnAgIT0gKHN0cnVjdCBfSU9fRklMRV9vbGRf cGx1cyAqKSBfSU9fc3RkaW4KKwkgICYmIGZwICE9IChzdHJ1Y3QgX0lPX0ZJ TEVfb2xkX3BsdXMgKikgX0lPX3N0ZG91dAorCSAgJiYgZnAgIT0gKHN0cnVj dCBfSU9fRklMRV9vbGRfcGx1cyAqKSBfSU9fc3RkZXJyKSkKICAgICAvKiBU aGUgb2JqZWN0IGlzIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBhbmQgbGFyZ2Ug ZW5vdWdoLiAgSW5pdGlhbGl6ZQogICAgICAgIHRoZSBfbW9kZSBlbGVtZW50 IGFzIHdlbGwuICAqLwotICAgICgoc3RydWN0IF9JT19GSUxFX2NvbXBsZXRl ICopIGZwKS0+X21vZGUgPSAtMTsKKyAgICAoKHN0cnVjdCBfSU9fRklMRSAq KSBmcCktPl9tb2RlID0gLTE7CiAjZW5kaWYKIH0KIAogdm9pZAogYXR0cmli dXRlX2NvbXBhdF90ZXh0X3NlY3Rpb24KLV9JT19vbGRfZmlsZV9pbml0IChz dHJ1Y3QgX0lPX0ZJTEVfcGx1cyAqZnApCitfSU9fb2xkX2ZpbGVfaW5pdCAo c3RydWN0IF9JT19GSUxFX29sZF9wbHVzICpmcCkKIHsKICAgSU9fc2V0X2Fj Y2VwdF9mb3JlaWduX3Z0YWJsZXMgKCZfSU9fdnRhYmxlX2NoZWNrKTsKICAg X0lPX29sZF9maWxlX2luaXRfaW50ZXJuYWwgKGZwKTsKQEAgLTE0OCw3ICsx NDgsNyBAQCBfSU9fb2xkX2ZpbGVfaW5pdCAoc3RydWN0IF9JT19GSUxFX3Bs dXMgKmZwKQogCiBpbnQKIGF0dHJpYnV0ZV9jb21wYXRfdGV4dF9zZWN0aW9u Ci1fSU9fb2xkX2ZpbGVfY2xvc2VfaXQgKF9JT19GSUxFICpmcCkKK19JT19v bGRfZmlsZV9jbG9zZV9pdCAoX0lPX0ZJTEVfb2xkICpmcCkKIHsKICAgaW50 IHdyaXRlX3N0YXR1cywgY2xvc2Vfc3RhdHVzOwogICBpZiAoIV9JT19maWxl X2lzX29wZW4gKGZwKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBfSU9fb2xkX2Zp bGVfY2xvc2VfaXQgKF9JT19GSUxFICpmcCkKICAgX0lPX3NldGcgKGZwLCBO VUxMLCBOVUxMLCBOVUxMKTsKICAgX0lPX3NldHAgKGZwLCBOVUxMLCBOVUxM KTsKIAotICBfSU9fdW5fbGluayAoKHN0cnVjdCBfSU9fRklMRV9wbHVzICop IGZwKTsKKyAgX0lPX3VuX2xpbmsgKChzdHJ1Y3QgX0lPX0ZJTEVfb2xkX3Bs dXMgKikgZnApOwogICBmcC0+X2ZsYWdzID0gX0lPX01BR0lDfENMT1NFRF9G SUxFQlVGX0ZMQUdTOwogICBmcC0+X2ZpbGVubyA9IC0xOwogICBmcC0+X29s ZF9vZmZzZXQgPSBfSU9fcG9zX0JBRDsKQEAgLTE3Niw3ICsxNzYsNyBAQCBf SU9fb2xkX2ZpbGVfY2xvc2VfaXQgKF9JT19GSUxFICpmcCkKIAogdm9pZAog YXR0cmlidXRlX2NvbXBhdF90ZXh0X3NlY3Rpb24KLV9JT19vbGRfZmlsZV9m aW5pc2ggKF9JT19GSUxFICpmcCwgaW50IGR1bW15KQorX0lPX29sZF9maWxl X2ZpbmlzaCAoX0lPX0ZJTEVfb2xkICpmcCwgaW50IGR1bW15KQogewogICBp ZiAoX0lPX2ZpbGVfaXNfb3BlbiAoZnApKQogICAgIHsKQEAgLTE4Nyw5ICsx ODcsOSBAQCBfSU9fb2xkX2ZpbGVfZmluaXNoIChfSU9fRklMRSAqZnAsIGlu dCBkdW1teSkKICAgX0lPX2RlZmF1bHRfZmluaXNoIChmcCwgMCk7CiB9CiAK LV9JT19GSUxFICoKK19JT19GSUxFX29sZCAqCiBhdHRyaWJ1dGVfY29tcGF0 X3RleHRfc2VjdGlvbgotX0lPX29sZF9maWxlX2ZvcGVuIChfSU9fRklMRSAq ZnAsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICptb2RlKQor X0lPX29sZF9maWxlX2ZvcGVuIChfSU9fRklMRV9vbGQgKmZwLCBjb25zdCBj aGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqbW9kZSkKIHsKICAgaW50IG9m bGFncyA9IDAsIG9tb2RlOwogICBpbnQgcmVhZF93cml0ZSwgZmRlc2M7CkBA IC0yMzAsMTMgKzIzMCwxMyBAQCBfSU9fb2xkX2ZpbGVfZm9wZW4gKF9JT19G SUxFICpmcCwgY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKm1v ZGUpCiAgICAgaWYgKF9JT19TRUVLT0ZGIChmcCwgKF9JT19vZmZfdCkwLCBf SU9fc2Vla19lbmQsIF9JT1NfSU5QVVR8X0lPU19PVVRQVVQpCiAJPT0gX0lP X3Bvc19CQUQgJiYgZXJybm8gIT0gRVNQSVBFKQogICAgICAgcmV0dXJuIE5V TEw7Ci0gIF9JT19saW5rX2luICgoc3RydWN0IF9JT19GSUxFX3BsdXMgKikg ZnApOworICBfSU9fbGlua19pbiAoKHN0cnVjdCBfSU9fRklMRV9vbGRfcGx1 cyAqKSBmcCk7CiAgIHJldHVybiBmcDsKIH0KIAotX0lPX0ZJTEUgKgorX0lP X0ZJTEVfb2xkICoKIGF0dHJpYnV0ZV9jb21wYXRfdGV4dF9zZWN0aW9uCi1f SU9fb2xkX2ZpbGVfYXR0YWNoIChfSU9fRklMRSAqZnAsIGludCBmZCkKK19J T19vbGRfZmlsZV9hdHRhY2ggKF9JT19GSUxFX29sZCAqZnAsIGludCBmZCkK IHsKICAgaWYgKF9JT19maWxlX2lzX29wZW4gKGZwKSkKICAgICByZXR1cm4g TlVMTDsKQEAgLTI1Miw5ICsyNTIsOSBAQCBfSU9fb2xkX2ZpbGVfYXR0YWNo IChfSU9fRklMRSAqZnAsIGludCBmZCkKICAgcmV0dXJuIGZwOwogfQogCi1f SU9fRklMRSAqCitfSU9fRklMRV9vbGQgKgogYXR0cmlidXRlX2NvbXBhdF90 ZXh0X3NlY3Rpb24KLV9JT19vbGRfZmlsZV9zZXRidWYgKF9JT19GSUxFICpm cCwgY2hhciAqcCwgX0lPX3NzaXplX3QgbGVuKQorX0lPX29sZF9maWxlX3Nl dGJ1ZiAoX0lPX0ZJTEVfb2xkICpmcCwgY2hhciAqcCwgX0lPX3NzaXplX3Qg bGVuKQogewogICAgIGlmIChfSU9fZGVmYXVsdF9zZXRidWYgKGZwLCBwLCBs ZW4pID09IE5VTEwpCiAgICAgICByZXR1cm4gTlVMTDsKQEAgLTI2NiwxNCAr MjY2LDE0IEBAIF9JT19vbGRfZmlsZV9zZXRidWYgKF9JT19GSUxFICpmcCwg Y2hhciAqcCwgX0lPX3NzaXplX3QgbGVuKQogICAgIHJldHVybiBmcDsKIH0K IAotc3RhdGljIGludCBvbGRfZG9fd3JpdGUgKF9JT19GSUxFICosIGNvbnN0 IGNoYXIgKiwgX0lPX3NpemVfdCk7CitzdGF0aWMgaW50IG9sZF9kb193cml0 ZSAoX0lPX0ZJTEVfb2xkICosIGNvbnN0IGNoYXIgKiwgX0lPX3NpemVfdCk7 CiAKIC8qIFdyaXRlIFRPX0RPIGJ5dGVzIGZyb20gREFUQSB0byBGUC4KICAg IFRoZW4gbWFyayBGUCBhcyBoYXZpbmcgZW1wdHkgYnVmZmVycy4gKi8KIAog aW50CiBhdHRyaWJ1dGVfY29tcGF0X3RleHRfc2VjdGlvbgotX0lPX29sZF9k b193cml0ZSAoX0lPX0ZJTEUgKmZwLCBjb25zdCBjaGFyICpkYXRhLCBfSU9f c2l6ZV90IHRvX2RvKQorX0lPX29sZF9kb193cml0ZSAoX0lPX0ZJTEVfb2xk ICpmcCwgY29uc3QgY2hhciAqZGF0YSwgX0lPX3NpemVfdCB0b19kbykKIHsK ICAgcmV0dXJuICh0b19kbyA9PSAwIHx8IChfSU9fc2l6ZV90KSBvbGRfZG9f d3JpdGUgKGZwLCBkYXRhLCB0b19kbykgPT0gdG9fZG8pCiAJID8gMCA6IEVP RjsKQEAgLTI4MSw3ICsyODEsNyBAQCBfSU9fb2xkX2RvX3dyaXRlIChfSU9f RklMRSAqZnAsIGNvbnN0IGNoYXIgKmRhdGEsIF9JT19zaXplX3QgdG9fZG8p CiAKIHN0YXRpYyBpbnQKIGF0dHJpYnV0ZV9jb21wYXRfdGV4dF9zZWN0aW9u Ci1vbGRfZG9fd3JpdGUgKF9JT19GSUxFICpmcCwgY29uc3QgY2hhciAqZGF0 YSwgX0lPX3NpemVfdCB0b19kbykKK29sZF9kb193cml0ZSAoX0lPX0ZJTEVf b2xkICpmcCwgY29uc3QgY2hhciAqZGF0YSwgX0lPX3NpemVfdCB0b19kbykK IHsKICAgX0lPX3NpemVfdCBjb3VudDsKICAgaWYgKGZwLT5fZmxhZ3MgJiBf SU9fSVNfQVBQRU5ESU5HKQpAQCAtMzExLDcgKzMxMSw3IEBAIG9sZF9kb193 cml0ZSAoX0lPX0ZJTEUgKmZwLCBjb25zdCBjaGFyICpkYXRhLCBfSU9fc2l6 ZV90IHRvX2RvKQogCiBpbnQKIGF0dHJpYnV0ZV9jb21wYXRfdGV4dF9zZWN0 aW9uCi1fSU9fb2xkX2ZpbGVfdW5kZXJmbG93IChfSU9fRklMRSAqZnApCitf SU9fb2xkX2ZpbGVfdW5kZXJmbG93IChfSU9fRklMRV9vbGQgKmZwKQogewog ICBfSU9fc3NpemVfdCBjb3VudDsKICNpZiAwCkBAIC0zNzUsNyArMzc1LDcg QEAgX0lPX29sZF9maWxlX3VuZGVyZmxvdyAoX0lPX0ZJTEUgKmZwKQogCiBp bnQKIGF0dHJpYnV0ZV9jb21wYXRfdGV4dF9zZWN0aW9uCi1fSU9fb2xkX2Zp bGVfb3ZlcmZsb3cgKF9JT19GSUxFICpmLCBpbnQgY2gpCitfSU9fb2xkX2Zp bGVfb3ZlcmZsb3cgKF9JT19GSUxFX29sZCAqZiwgaW50IGNoKQogewogICBp ZiAoZi0+X2ZsYWdzICYgX0lPX05PX1dSSVRFUykgLyogU0VUIEVSUk9SICov CiAgICAgewpAQCAtNDI1LDcgKzQyNSw3IEBAIF9JT19vbGRfZmlsZV9vdmVy ZmxvdyAoX0lPX0ZJTEUgKmYsIGludCBjaCkKIAogaW50CiBhdHRyaWJ1dGVf Y29tcGF0X3RleHRfc2VjdGlvbgotX0lPX29sZF9maWxlX3N5bmMgKF9JT19G SUxFICpmcCkKK19JT19vbGRfZmlsZV9zeW5jIChfSU9fRklMRV9vbGQgKmZw KQogewogICBfSU9fc3NpemVfdCBkZWx0YTsKICAgaW50IHJldHZhbCA9IDA7 CkBAIC00NTksNyArNDU5LDcgQEAgX0lPX29sZF9maWxlX3N5bmMgKF9JT19G SUxFICpmcCkKIAogX0lPX29mZjY0X3QKIGF0dHJpYnV0ZV9jb21wYXRfdGV4 dF9zZWN0aW9uCi1fSU9fb2xkX2ZpbGVfc2Vla29mZiAoX0lPX0ZJTEUgKmZw LCBfSU9fb2ZmNjRfdCBvZmZzZXQsIGludCBkaXIsIGludCBtb2RlKQorX0lP X29sZF9maWxlX3NlZWtvZmYgKF9JT19GSUxFX29sZCAqZnAsIF9JT19vZmY2 NF90IG9mZnNldCwgaW50IGRpciwgaW50IG1vZGUpCiB7CiAgIF9JT19vZmZf dCByZXN1bHQ7CiAgIF9JT19vZmY2NF90IGRlbHRhLCBuZXdfb2Zmc2V0OwpA QCAtNjQyLDcgKzY0Miw3IEBAIHJlc3luYzoKIAogX0lPX3NzaXplX3QKIGF0 dHJpYnV0ZV9jb21wYXRfdGV4dF9zZWN0aW9uCi1fSU9fb2xkX2ZpbGVfd3Jp dGUgKF9JT19GSUxFICpmLCBjb25zdCB2b2lkICpkYXRhLCBfSU9fc3NpemVf dCBuKQorX0lPX29sZF9maWxlX3dyaXRlIChfSU9fRklMRV9vbGQgKmYsIGNv bnN0IHZvaWQgKmRhdGEsIF9JT19zc2l6ZV90IG4pCiB7CiAgIF9JT19zc2l6 ZV90IHRvX2RvID0gbjsKICAgd2hpbGUgKHRvX2RvID4gMCkKQEAgLTY2NCw3 ICs2NjQsNyBAQCBfSU9fb2xkX2ZpbGVfd3JpdGUgKF9JT19GSUxFICpmLCBj b25zdCB2b2lkICpkYXRhLCBfSU9fc3NpemVfdCBuKQogCiBfSU9fc2l6ZV90 CiBhdHRyaWJ1dGVfY29tcGF0X3RleHRfc2VjdGlvbgotX0lPX29sZF9maWxl X3hzcHV0biAoX0lPX0ZJTEUgKmYsIGNvbnN0IHZvaWQgKmRhdGEsIF9JT19z aXplX3QgbikKK19JT19vbGRfZmlsZV94c3B1dG4gKF9JT19GSUxFX29sZCAq ZiwgY29uc3Qgdm9pZCAqZGF0YSwgX0lPX3NpemVfdCBuKQogewogICBjb25z dCBjaGFyICpzID0gKGNoYXIgKikgZGF0YTsKICAgX0lPX3NpemVfdCB0b19k byA9IG47CmRpZmYgLS1naXQgYS9saWJpby9zdGRpby5oIGIvbGliaW8vc3Rk aW8uaAppbmRleCA0NzQ5MGM4Mjk5Li43MDE5YzFkMjhmIDEwMDY0NAotLS0g YS9saWJpby9zdGRpby5oCisrKyBiL2xpYmlvL3N0ZGlvLmgKQEAgLTMyLDE4 ICszMiwyMiBAQCBfX0JFR0lOX0RFQ0xTCiAjZGVmaW5lIF9fbmVlZF9OVUxM CiAjaW5jbHVkZSA8c3RkZGVmLmg+CiAKKyNkZWZpbmUgX19uZWVkX19fdmFf bGlzdAorI2luY2x1ZGUgPHN0ZGFyZy5oPgorCiAjaW5jbHVkZSA8Yml0cy90 eXBlcy5oPgogI2luY2x1ZGUgPGJpdHMvdHlwZXMvX19GSUxFLmg+CiAjaW5j bHVkZSA8Yml0cy90eXBlcy9GSUxFLmg+CisjaW5jbHVkZSA8Yml0cy90eXBl cy9fX2Zwb3NfdC5oPgogCi0jZGVmaW5lIF9TVERJT19VU0VTX0lPU1RSRUFN Ci0KLSNpbmNsdWRlIDxsaWJpby5oPgorI2lmZGVmIF9fVVNFX0dOVQorIyBp bmNsdWRlIDxiaXRzL3R5cGVzL2Nvb2tpZV9pb19mdW5jdGlvbnNfdC5oPgor I2VuZGlmCiAKICNpZiBkZWZpbmVkIF9fVVNFX1hPUEVOIHx8IGRlZmluZWQg X19VU0VfWE9QRU4ySzgKICMgaWZkZWYgX19HTlVDX18KICMgIGlmbmRlZiBf VkFfTElTVF9ERUZJTkVECi10eXBlZGVmIF9HX3ZhX2xpc3QgdmFfbGlzdDsK K3R5cGVkZWYgX19nbnVjX3ZhX2xpc3QgdmFfbGlzdDsKICMgICBkZWZpbmUg X1ZBX0xJU1RfREVGSU5FRAogIyAgZW5kaWYKICMgZWxzZQpAQCAtNzUsMTIg Kzc5LDEyIEBAIHR5cGVkZWYgX19zc2l6ZV90IHNzaXplX3Q7CiAKIC8qIFRo ZSB0eXBlIG9mIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gYGZnZXRwb3MnIGFu ZCBgZnNldHBvcycuICAqLwogI2lmbmRlZiBfX1VTRV9GSUxFX09GRlNFVDY0 Ci10eXBlZGVmIF9HX2Zwb3NfdCBmcG9zX3Q7Cit0eXBlZGVmIF9fZnBvc190 IGZwb3NfdDsKICNlbHNlCi10eXBlZGVmIF9HX2Zwb3M2NF90IGZwb3NfdDsK K3R5cGVkZWYgX19mcG9zNjRfdCBmcG9zX3Q7CiAjZW5kaWYKICNpZmRlZiBf X1VTRV9MQVJHRUZJTEU2NAotdHlwZWRlZiBfR19mcG9zNjRfdCBmcG9zNjRf dDsKK3R5cGVkZWYgX19mcG9zNjRfdCBmcG9zNjRfdDsKICNlbmRpZgogCiAv KiBUaGUgcG9zc2liaWxpdGllcyBmb3IgdGhlIHRoaXJkIGFyZ3VtZW50IHRv IGBzZXR2YnVmJy4gICovCkBAIC05MSw3ICs5NSw3IEBAIHR5cGVkZWYgX0df ZnBvczY0X3QgZnBvczY0X3Q7CiAKIC8qIERlZmF1bHQgYnVmZmVyIHNpemUu ICAqLwogI2lmbmRlZiBCVUZTSVoKLSMgZGVmaW5lIEJVRlNJWiBfSU9fQlVG U0laCisjIGRlZmluZSBCVUZTSVogODE5MgogI2VuZGlmCiAKIApAQCAtMTMy LDkgKzEzNiw5IEBAIHR5cGVkZWYgX0dfZnBvczY0X3QgZnBvczY0X3Q7CiAK IAogLyogU3RhbmRhcmQgc3RyZWFtcy4gICovCi1leHRlcm4gc3RydWN0IF9J T19GSUxFICpzdGRpbjsJCS8qIFN0YW5kYXJkIGlucHV0IHN0cmVhbS4gICov Ci1leHRlcm4gc3RydWN0IF9JT19GSUxFICpzdGRvdXQ7CQkvKiBTdGFuZGFy ZCBvdXRwdXQgc3RyZWFtLiAgKi8KLWV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEUg KnN0ZGVycjsJCS8qIFN0YW5kYXJkIGVycm9yIG91dHB1dCBzdHJlYW0uICAq LworZXh0ZXJuIEZJTEUgKnN0ZGluOwkJLyogU3RhbmRhcmQgaW5wdXQgc3Ry ZWFtLiAgKi8KK2V4dGVybiBGSUxFICpzdGRvdXQ7CQkvKiBTdGFuZGFyZCBv dXRwdXQgc3RyZWFtLiAgKi8KK2V4dGVybiBGSUxFICpzdGRlcnI7CQkvKiBT dGFuZGFyZCBlcnJvciBvdXRwdXQgc3RyZWFtLiAgKi8KIC8qIEM4OS9DOTkg c2F5IHRoZXkncmUgbWFjcm9zLiAgTWFrZSB0aGVtIGhhcHB5LiAgKi8KICNk ZWZpbmUgc3RkaW4gc3RkaW4KICNkZWZpbmUgc3Rkb3V0IHN0ZG91dApAQCAt MjcwLDcgKzI3NCw3IEBAIGV4dGVybiBGSUxFICpmZG9wZW4gKGludCBfX2Zk LCBjb25zdCBjaGFyICpfX21vZGVzKSBfX1RIUk9XIF9fd3VyOwogICAgYW5k IHVzZXMgdGhlIGdpdmVuIGZ1bmN0aW9ucyBmb3IgaW5wdXQgYW5kIG91dHB1 dC4gICovCiBleHRlcm4gRklMRSAqZm9wZW5jb29raWUgKHZvaWQgKl9fcmVz dHJpY3QgX19tYWdpY19jb29raWUsCiAJCQkgIGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QgX19tb2RlcywKLQkJCSAgX0lPX2Nvb2tpZV9pb19mdW5jdGlvbnNf dCBfX2lvX2Z1bmNzKSBfX1RIUk9XIF9fd3VyOworCQkJICBjb29raWVfaW9f ZnVuY3Rpb25zX3QgX19pb19mdW5jcykgX19USFJPVyBfX3d1cjsKICNlbmRp ZgogCiAjaWYgZGVmaW5lZCBfX1VTRV9YT1BFTjJLOCB8fCBfX0dMSUJDX1VT RSAoTElCX0VYVDIpCkBAIC0zMjUsMTUgKzMyOSwxNSBAQCBleHRlcm4gaW50 IHNwcmludGYgKGNoYXIgKl9fcmVzdHJpY3QgX19zLAogICAgVGhpcyBmdW5j dGlvbiBpcyBhIHBvc3NpYmxlIGNhbmNlbGxhdGlvbiBwb2ludCBhbmQgdGhl cmVmb3JlIG5vdAogICAgbWFya2VkIHdpdGggX19USFJPVy4gICovCiBleHRl cm4gaW50IHZmcHJpbnRmIChGSUxFICpfX3Jlc3RyaWN0IF9fcywgY29uc3Qg Y2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKLQkJICAgICBfR192YV9saXN0 IF9fYXJnKTsKKwkJICAgICBfX2dudWNfdmFfbGlzdCBfX2FyZyk7CiAvKiBX cml0ZSBmb3JtYXR0ZWQgb3V0cHV0IHRvIHN0ZG91dCBmcm9tIGFyZ3VtZW50 IGxpc3QgQVJHLgogCiAgICBUaGlzIGZ1bmN0aW9uIGlzIGEgcG9zc2libGUg Y2FuY2VsbGF0aW9uIHBvaW50IGFuZCB0aGVyZWZvcmUgbm90CiAgICBtYXJr ZWQgd2l0aCBfX1RIUk9XLiAgKi8KLWV4dGVybiBpbnQgdnByaW50ZiAoY29u c3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX0dfdmFfbGlzdCBfX2Fy Zyk7CitleHRlcm4gaW50IHZwcmludGYgKGNvbnN0IGNoYXIgKl9fcmVzdHJp Y3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJnKTsKIC8qIFdyaXRl IGZvcm1hdHRlZCBvdXRwdXQgdG8gUyBmcm9tIGFyZ3VtZW50IGxpc3QgQVJH LiAgKi8KIGV4dGVybiBpbnQgdnNwcmludGYgKGNoYXIgKl9fcmVzdHJpY3Qg X19zLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAotCQkgICAg IF9HX3ZhX2xpc3QgX19hcmcpIF9fVEhST1dOTDsKKwkJICAgICBfX2dudWNf dmFfbGlzdCBfX2FyZykgX19USFJPV05MOwogCiAjaWYgZGVmaW5lZCBfX1VT RV9JU09DOTkgfHwgZGVmaW5lZCBfX1VTRV9VTklYOTgKIC8qIE1heGltdW0g Y2hhcnMgb2Ygb3V0cHV0IHRvIHdyaXRlIGluIE1BWExFTi4gICovCkBAIC0z NDIsNyArMzQ2LDcgQEAgZXh0ZXJuIGludCBzbnByaW50ZiAoY2hhciAqX19y ZXN0cmljdCBfX3MsIHNpemVfdCBfX21heGxlbiwKICAgICAgX19USFJPV05M IF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAzLCA0 KSkpOwogCiBleHRlcm4gaW50IHZzbnByaW50ZiAoY2hhciAqX19yZXN0cmlj dCBfX3MsIHNpemVfdCBfX21heGxlbiwKLQkJICAgICAgY29uc3QgY2hhciAq X19yZXN0cmljdCBfX2Zvcm1hdCwgX0dfdmFfbGlzdCBfX2FyZykKKwkJICAg ICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3Zh X2xpc3QgX19hcmcpCiAgICAgIF9fVEhST1dOTCBfX2F0dHJpYnV0ZV9fICgo X19mb3JtYXRfXyAoX19wcmludGZfXywgMywgMCkpKTsKICNlbmRpZgogCkBA IC0zNTAsNyArMzU0LDcgQEAgZXh0ZXJuIGludCB2c25wcmludGYgKGNoYXIg Kl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19tYXhsZW4sCiAvKiBXcml0ZSBm b3JtYXR0ZWQgb3V0cHV0IHRvIGEgc3RyaW5nIGR5bmFtaWNhbGx5IGFsbG9j YXRlZCB3aXRoIGBtYWxsb2MnLgogICAgU3RvcmUgdGhlIGFkZHJlc3Mgb2Yg dGhlIHN0cmluZyBpbiAqUFRSLiAgKi8KIGV4dGVybiBpbnQgdmFzcHJpbnRm IChjaGFyICoqX19yZXN0cmljdCBfX3B0ciwgY29uc3QgY2hhciAqX19yZXN0 cmljdCBfX2YsCi0JCSAgICAgIF9HX3ZhX2xpc3QgX19hcmcpCisJCSAgICAg IF9fZ251Y192YV9saXN0IF9fYXJnKQogICAgICBfX1RIUk9XTkwgX19hdHRy aWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDIsIDApKSkgX193 dXI7CiBleHRlcm4gaW50IF9fYXNwcmludGYgKGNoYXIgKipfX3Jlc3RyaWN0 IF9fcHRyLAogCQkgICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zt dCwgLi4uKQpAQCAtMzYzLDcgKzM2Nyw3IEBAIGV4dGVybiBpbnQgYXNwcmlu dGYgKGNoYXIgKipfX3Jlc3RyaWN0IF9fcHRyLAogI2lmZGVmIF9fVVNFX1hP UEVOMks4CiAvKiBXcml0ZSBmb3JtYXR0ZWQgb3V0cHV0IHRvIGEgZmlsZSBk ZXNjcmlwdG9yLiAgKi8KIGV4dGVybiBpbnQgdmRwcmludGYgKGludCBfX2Zk LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LAotCQkgICAgIF9HX3Zh X2xpc3QgX19hcmcpCisJCSAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAg ICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAy LCAwKSkpOwogZXh0ZXJuIGludCBkcHJpbnRmIChpbnQgX19mZCwgY29uc3Qg Y2hhciAqX19yZXN0cmljdCBfX2ZtdCwgLi4uKQogICAgICBfX2F0dHJpYnV0 ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMiwgMykpKTsKQEAgLTQx OCwxOSArNDIyLDE5IEBAIGV4dGVybiBpbnQgX19pc29jOTlfc3NjYW5mIChj b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywKICAgIFRoaXMgZnVuY3Rpb24g aXMgYSBwb3NzaWJsZSBjYW5jZWxsYXRpb24gcG9pbnQgYW5kIHRoZXJlZm9y ZSBub3QKICAgIG1hcmtlZCB3aXRoIF9fVEhST1cuICAqLwogZXh0ZXJuIGlu dCB2ZnNjYW5mIChGSUxFICpfX3Jlc3RyaWN0IF9fcywgY29uc3QgY2hhciAq X19yZXN0cmljdCBfX2Zvcm1hdCwKLQkJICAgIF9HX3ZhX2xpc3QgX19hcmcp CisJCSAgICBfX2dudWNfdmFfbGlzdCBfX2FyZykKICAgICAgX19hdHRyaWJ1 dGVfXyAoKF9fZm9ybWF0X18gKF9fc2NhbmZfXywgMiwgMCkpKSBfX3d1cjsK IAogLyogUmVhZCBmb3JtYXR0ZWQgaW5wdXQgZnJvbSBzdGRpbiBpbnRvIGFy Z3VtZW50IGxpc3QgQVJHLgogCiAgICBUaGlzIGZ1bmN0aW9uIGlzIGEgcG9z c2libGUgY2FuY2VsbGF0aW9uIHBvaW50IGFuZCB0aGVyZWZvcmUgbm90CiAg ICBtYXJrZWQgd2l0aCBfX1RIUk9XLiAgKi8KLWV4dGVybiBpbnQgdnNjYW5m IChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfR192YV9saXN0 IF9fYXJnKQorZXh0ZXJuIGludCB2c2NhbmYgKGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJnKQogICAgICBf X2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAxLCAwKSkp IF9fd3VyOwogCiAvKiBSZWFkIGZvcm1hdHRlZCBpbnB1dCBmcm9tIFMgaW50 byBhcmd1bWVudCBsaXN0IEFSRy4gICovCiBleHRlcm4gaW50IHZzc2NhbmYg KGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLAotCQkgICAgY29uc3QgY2hh ciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX0dfdmFfbGlzdCBfX2FyZykKKwkJ ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192 YV9saXN0IF9fYXJnKQogICAgICBfX1RIUk9XIF9fYXR0cmlidXRlX18gKChf X2Zvcm1hdF9fIChfX3NjYW5mX18sIDIsIDApKSk7CiAKICMgaWYgIWRlZmlu ZWQgX19VU0VfR05VIFwKQEAgLTQ0MiwyNiArNDQ2LDI2IEBAIGV4dGVybiBp bnQgdnNzY2FuZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsCiAgICBz LCBTIG9yIFsuICAqLwogZXh0ZXJuIGludCBfX1JFRElSRUNUICh2ZnNjYW5m LAogCQkgICAgICAgKEZJTEUgKl9fcmVzdHJpY3QgX19zLAotCQkJY29uc3Qg Y2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX0dfdmFfbGlzdCBfX2FyZyks CisJCQljb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNf dmFfbGlzdCBfX2FyZyksCiAJCSAgICAgICBfX2lzb2M5OV92ZnNjYW5mKQog ICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAy LCAwKSkpIF9fd3VyOwogZXh0ZXJuIGludCBfX1JFRElSRUNUICh2c2NhbmYs IChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAotCQkJCV9HX3Zh X2xpc3QgX19hcmcpLCBfX2lzb2M5OV92c2NhbmYpCisJCQkJX19nbnVjX3Zh X2xpc3QgX19hcmcpLCBfX2lzb2M5OV92c2NhbmYpCiAgICAgIF9fYXR0cmli dXRlX18gKChfX2Zvcm1hdF9fIChfX3NjYW5mX18sIDEsIDApKSkgX193dXI7 CiBleHRlcm4gaW50IF9fUkVESVJFQ1RfTlRIICh2c3NjYW5mLAogCQkJICAg KGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLAogCQkJICAgIGNvbnN0IGNo YXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCi0JCQkgICAgX0dfdmFfbGlzdCBf X2FyZyksIF9faXNvYzk5X3Zzc2NhbmYpCisJCQkgICAgX19nbnVjX3ZhX2xp c3QgX19hcmcpLCBfX2lzb2M5OV92c3NjYW5mKQogICAgICBfX2F0dHJpYnV0 ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAyLCAwKSkpOwogIyAgZWxz ZQogZXh0ZXJuIGludCBfX2lzb2M5OV92ZnNjYW5mIChGSUxFICpfX3Jlc3Ry aWN0IF9fcywKIAkJCSAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zv cm1hdCwKLQkJCSAgICAgX0dfdmFfbGlzdCBfX2FyZykgX193dXI7CisJCQkg ICAgIF9fZ251Y192YV9saXN0IF9fYXJnKSBfX3d1cjsKIGV4dGVybiBpbnQg X19pc29jOTlfdnNjYW5mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9y bWF0LAotCQkJICAgIF9HX3ZhX2xpc3QgX19hcmcpIF9fd3VyOworCQkJICAg IF9fZ251Y192YV9saXN0IF9fYXJnKSBfX3d1cjsKIGV4dGVybiBpbnQgX19p c29jOTlfdnNzY2FuZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsCiAJ CQkgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCi0JCQkg ICAgIF9HX3ZhX2xpc3QgX19hcmcpIF9fVEhST1c7CisJCQkgICAgIF9fZ251 Y192YV9saXN0IF9fYXJnKSBfX1RIUk9XOwogIyAgIGRlZmluZSB2ZnNjYW5m IF9faXNvYzk5X3Zmc2NhbmYKICMgICBkZWZpbmUgdnNjYW5mIF9faXNvYzk5 X3ZzY2FuZgogIyAgIGRlZmluZSB2c3NjYW5mIF9faXNvYzk5X3Zzc2NhbmYK QEAgLTQ4MywxMCArNDg3LDYgQEAgZXh0ZXJuIGludCBnZXRjIChGSUxFICpf X3N0cmVhbSk7CiAgICBtYXJrZWQgd2l0aCBfX1RIUk9XLiAgKi8KIGV4dGVy biBpbnQgZ2V0Y2hhciAodm9pZCk7CiAKLS8qIFRoZSBDIHN0YW5kYXJkIGV4 cGxpY2l0bHkgc2F5cyB0aGlzIGlzIGEgbWFjcm8sIHNvIHdlIGFsd2F5cyBk byB0aGUKLSAgIG9wdGltaXphdGlvbiBmb3IgaXQuICAqLwotI2RlZmluZSBn ZXRjKF9mcCkgX0lPX2dldGMgKF9mcCkKLQogI2lmZGVmIF9fVVNFX1BPU0lY MTk5NTA2CiAvKiBUaGVzZSBhcmUgZGVmaW5lZCBpbiBQT1NJWC4xOjE5OTYu CiAKQEAgLTUyMywxMCArNTIzLDYgQEAgZXh0ZXJuIGludCBwdXRjIChpbnQg X19jLCBGSUxFICpfX3N0cmVhbSk7CiAgICBtYXJrZWQgd2l0aCBfX1RIUk9X LiAgKi8KIGV4dGVybiBpbnQgcHV0Y2hhciAoaW50IF9fYyk7CiAKLS8qIFRo ZSBDIHN0YW5kYXJkIGV4cGxpY2l0bHkgc2F5cyB0aGlzIGNhbiBiZSBhIG1h Y3JvLAotICAgc28gd2UgYWx3YXlzIGRvIHRoZSBvcHRpbWl6YXRpb24gZm9y IGl0LiAgKi8KLSNkZWZpbmUgcHV0YyhfY2gsIF9mcCkgX0lPX3B1dGMgKF9j aCwgX2ZwKQotCiAjaWZkZWYgX19VU0VfTUlTQwogLyogRmFzdGVyIHZlcnNp b24gd2hlbiBsb2NraW5nIGlzIG5vdCBuZWNlc3NhcnkuCiAKQEAgLTYwMCwx MiArNTk2LDEyIEBAIGV4dGVybiBjaGFyICpmZ2V0c191bmxvY2tlZCAoY2hh ciAqX19yZXN0cmljdCBfX3MsIGludCBfX24sCiAgICBjYW5jZWxsYXRpb24g cG9pbnQuICBCdXQgZHVlIHRvIHNpbWlsYXJpdHkgd2l0aCBhbiBQT1NJWCBp bnRlcmZhY2UKICAgIG9yIGR1ZSB0byB0aGUgaW1wbGVtZW50YXRpb24gdGhl eSBhcmUgY2FuY2VsbGF0aW9uIHBvaW50cyBhbmQKICAgIHRoZXJlZm9yZSBu b3QgbWFya2VkIHdpdGggX19USFJPVy4gICovCi1leHRlcm4gX0lPX3NzaXpl X3QgX19nZXRkZWxpbSAoY2hhciAqKl9fcmVzdHJpY3QgX19saW5lcHRyLAot CQkJICAgICAgIHNpemVfdCAqX19yZXN0cmljdCBfX24sIGludCBfX2RlbGlt aXRlciwKLQkJCSAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSBf X3d1cjsKLWV4dGVybiBfSU9fc3NpemVfdCBnZXRkZWxpbSAoY2hhciAqKl9f cmVzdHJpY3QgX19saW5lcHRyLAorZXh0ZXJuIF9fc3NpemVfdCBfX2dldGRl bGltIChjaGFyICoqX19yZXN0cmljdCBfX2xpbmVwdHIsCiAJCQkgICAgIHNp emVfdCAqX19yZXN0cmljdCBfX24sIGludCBfX2RlbGltaXRlciwKIAkJCSAg ICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgX193dXI7CitleHRlcm4g X19zc2l6ZV90IGdldGRlbGltIChjaGFyICoqX19yZXN0cmljdCBfX2xpbmVw dHIsCisJCQkgICBzaXplX3QgKl9fcmVzdHJpY3QgX19uLCBpbnQgX19kZWxp bWl0ZXIsCisJCQkgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSBfX3d1 cjsKIAogLyogTGlrZSBgZ2V0ZGVsaW0nLCBidXQgcmVhZHMgdXAgdG8gYSBu ZXdsaW5lLgogCkBAIC02MTMsOSArNjA5LDkgQEAgZXh0ZXJuIF9JT19zc2l6 ZV90IGdldGRlbGltIChjaGFyICoqX19yZXN0cmljdCBfX2xpbmVwdHIsCiAg ICBjYW5jZWxsYXRpb24gcG9pbnQuICBCdXQgZHVlIHRvIHNpbWlsYXJpdHkg d2l0aCBhbiBQT1NJWCBpbnRlcmZhY2UKICAgIG9yIGR1ZSB0byB0aGUgaW1w bGVtZW50YXRpb24gaXQgaXMgYSBjYW5jZWxsYXRpb24gcG9pbnQgYW5kCiAg ICB0aGVyZWZvcmUgbm90IG1hcmtlZCB3aXRoIF9fVEhST1cuICAqLwotZXh0 ZXJuIF9JT19zc2l6ZV90IGdldGxpbmUgKGNoYXIgKipfX3Jlc3RyaWN0IF9f bGluZXB0ciwKLQkJCSAgICBzaXplX3QgKl9fcmVzdHJpY3QgX19uLAotCQkJ ICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIF9fd3VyOworZXh0ZXJu IF9fc3NpemVfdCBnZXRsaW5lIChjaGFyICoqX19yZXN0cmljdCBfX2xpbmVw dHIsCisJCQkgIHNpemVfdCAqX19yZXN0cmljdCBfX24sCisJCQkgIEZJTEUg Kl9fcmVzdHJpY3QgX19zdHJlYW0pIF9fd3VyOwogI2VuZGlmCiAKIApAQCAt ODI4LDcgKzgyNCw3IEBAIGV4dGVybiBpbnQgb2JzdGFja19wcmludGYgKHN0 cnVjdCBvYnN0YWNrICpfX3Jlc3RyaWN0IF9fb2JzdGFjaywKICAgICAgX19U SFJPV05MIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9f LCAyLCAzKSkpOwogZXh0ZXJuIGludCBvYnN0YWNrX3ZwcmludGYgKHN0cnVj dCBvYnN0YWNrICpfX3Jlc3RyaWN0IF9fb2JzdGFjaywKIAkJCSAgICBjb25z dCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAotCQkJICAgIF9HX3ZhX2xp c3QgX19hcmdzKQorCQkJICAgIF9fZ251Y192YV9saXN0IF9fYXJncykKICAg ICAgX19USFJPV05MIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3By aW50Zl9fLCAyLCAwKSkpOwogI2VuZGlmIC8qIFVzZSBHTlUuICAqLwogCmRp ZmYgLS1naXQgYS9tYWxsb2MvbWFsbG9jLmMgYi9tYWxsb2MvbWFsbG9jLmMK aW5kZXggMDY4ZmZjMTY4NC4uMDZjMDA1NDcwOSAxMDA2NDQKLS0tIGEvbWFs bG9jL21hbGxvYy5jCisrKyBiL21hbGxvYy9tYWxsb2MuYwpAQCAtMjIyLDYg KzIyMiw3IEBACiAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDxz dGRpby5oPiAgICAvKiBuZWVkZWQgZm9yIG1hbGxvY19zdGF0cyAqLworI2lu Y2x1ZGUgPGxpYmlvLmg+ICAgIC8qIG5lZWRlZCBmb3IgRklMRSBpbnRlcm5h bHMgaW4gbWFsbG9jX3N0YXRzICovCiAjaW5jbHVkZSA8ZXJybm8uaD4KIAog I2luY2x1ZGUgPHNobGliLWNvbXBhdC5oPgpkaWZmIC0tZ2l0IGEvbWlzYy9l cnIuYyBiL21pc2MvZXJyLmMKaW5kZXggM2RhNGU5ZDZiMC4uN2I0YjdlZjgx NCAxMDA2NDQKLS0tIGEvbWlzYy9lcnIuYworKysgYi9taXNjL2Vyci5jCkBA IC0yMiwxMCArMjIsOCBAQAogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVk ZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KLQorI2luY2x1ZGUg PGxpYmlvLmg+CiAjaW5jbHVkZSA8d2NoYXIuaD4KLSNkZWZpbmUgZmxvY2tm aWxlKHMpIF9JT19mbG9ja2ZpbGUgKHMpCi0jZGVmaW5lIGZ1bmxvY2tmaWxl KHMpIF9JT19mdW5sb2NrZmlsZSAocykKIAogZXh0ZXJuIGNoYXIgKl9fcHJv Z25hbWU7CiAKZGlmZiAtLWdpdCBhL21pc2MvZ2V0cGFzcy5jIGIvbWlzYy9n ZXRwYXNzLmMKaW5kZXggODljNzgzZmUyMC4uOWQ4NGE3ZjljZCAxMDA2NDQK LS0tIGEvbWlzYy9nZXRwYXNzLmMKKysrIGIvbWlzYy9nZXRwYXNzLmMKQEAg LTIyLDggKzIyLDYgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KIAogI2luY2x1 ZGUgPHdjaGFyLmg+Ci0jZGVmaW5lIGZsb2NrZmlsZShzKSBfSU9fZmxvY2tm aWxlIChzKQotI2RlZmluZSBmdW5sb2NrZmlsZShzKSBfSU9fZnVubG9ja2Zp bGUgKHMpCiAjaW5jbHVkZSA8bGliYy1sb2NrLmg+CiAKIC8qIEl0IGlzIGRl c2lyYWJsZSB0byB1c2UgdGhpcyBiaXQgb24gc3lzdGVtcyB0aGF0IGhhdmUg aXQuCmRpZmYgLS1naXQgYS9taXNjL2dldHR0eWVudC5jIGIvbWlzYy9nZXR0 dHllbnQuYwppbmRleCA3MzAwMmY1MmQxLi42NGE5M2U5MDAzIDEwMDY0NAot LS0gYS9taXNjL2dldHR0eWVudC5jCisrKyBiL21pc2MvZ2V0dHR5ZW50LmMK QEAgLTM3LDkgKzM3LDYgQEAgc3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgj KWdldHR0eWVudC5jCTguMSAoQmVya2VsZXkpIDYvNC85MyI7CiAjaW5jbHVk ZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIAotI2RlZmluZSBm bG9ja2ZpbGUocykgX0lPX2Zsb2NrZmlsZSAocykKLSNkZWZpbmUgZnVubG9j a2ZpbGUocykgX0lPX2Z1bmxvY2tmaWxlIChzKQotCiBzdGF0aWMgY2hhciB6 YXBjaGFyOwogc3RhdGljIEZJTEUgKnRmOwogCmRpZmYgLS1naXQgYS9taXNj L21udGVudF9yLmMgYi9taXNjL21udGVudF9yLmMKaW5kZXggMzBmNTUyMTJi ZS4uMDIzMTlkMTUyYiAxMDA2NDQKLS0tIGEvbWlzYy9tbnRlbnRfci5jCisr KyBiL21pc2MvbW50ZW50X3IuYwpAQCAtMjMsOSArMjMsNiBAQAogI2luY2x1 ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogCi0jZGVm aW5lIGZsb2NrZmlsZShzKSBfSU9fZmxvY2tmaWxlIChzKQotI2RlZmluZSBm dW5sb2NrZmlsZShzKSBfSU9fZnVubG9ja2ZpbGUgKHMpCi0KICN1bmRlZiBf X3NldG1udGVudAogI3VuZGVmIF9fZW5kbW50ZW50CiAjdW5kZWYgX19nZXRt bnRlbnRfcgpkaWZmIC0tZ2l0IGEvcG9zaXgvZ2V0b3B0LmMgYi9wb3NpeC9n ZXRvcHQuYwppbmRleCA1NDNjOGU3Mjg0Li4yZWZkZWE4NWRkIDEwMDY0NAot LS0gYS9wb3NpeC9nZXRvcHQuYworKysgYi9wb3NpeC9nZXRvcHQuYwpAQCAt MjksMTcgKzI5LDEzIEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKICNpZmRl ZiBfTElCQwotLyogV2hlbiB1c2VkIGFzIHBhcnQgb2YgZ2xpYmMsIGVycm9y IHByaW50aW5nIG11c3QgYmUgZG9uZSBkaWZmZXJlbnRseQotICAgZm9yIHN0 YW5kYXJkcyBjb21wbGlhbmNlLiAgZ2V0b3B0IGlzIG5vdCBhIGNhbmNlbGxh dGlvbiBwb2ludCwgc28KLSAgIGl0IG11c3Qgbm90IGNhbGwgZnVuY3Rpb25z IHRoYXQgYXJlLCBhbmQgaXQgaXMgc3BlY2lmaWVkIGJ5IGFuCi0gICBvbGRl ciBzdGFuZGFyZCB0aGFuIHN0ZGlvIGxvY2tpbmcsIHNvIGl0IG11c3Qgbm90 IHJlZmVyIHRvCi0gICBmdW5jdGlvbnMgaW4gdGhlICJ1c2VyIG5hbWVzcGFj ZSIgcmVsYXRlZCB0byBzdGRpbyBsb2NraW5nLgotICAgRmluYWxseSwgaXQg bXVzdCB1c2UgZ2xpYmMncyBpbnRlcm5hbCBtZXNzYWdlIHRyYW5zbGF0aW9u IHNvIHRoYXQKLSAgIHRoZSBtZXNzYWdlcyBhcmUgbG9va2VkIHVwIGluIHRo ZSBwcm9wZXIgdGV4dCBkb21haW4uICAqLworLyogV2hlbiB1c2VkIGFzIHBh cnQgb2YgZ2xpYmMsIGVycm9yIHByaW50aW5nIG11c3QgYmUgZG9uZQorICAg ZGlmZmVyZW50bHk6IGdldG9wdCBpcyBub3QgYSBjYW5jZWxsYXRpb24gcG9p bnQsIHNvIGl0IG11c3Qgbm90CisgICBjYWxsIGZ1bmN0aW9ucyB0aGF0IGFy ZSwgYW5kIGl0IG11c3QgdXNlIGdsaWJjJ3MgaW50ZXJuYWwgbWVzc2FnZQor ICAgdHJhbnNsYXRpb24gc28gdGhhdCB0aGUgbWVzc2FnZXMgYXJlIGxvb2tl ZCB1cCBpbiB0aGUgcHJvcGVyIHRleHQKKyAgIGRvbWFpbi4gICovCiAjIGlu Y2x1ZGUgPGxpYmludGwuaD4KICMgZGVmaW5lIGZwcmludGYgX19meHByaW50 Zl9ub2NhbmNlbAotIyBkZWZpbmUgZmxvY2tmaWxlKGZwKSBfSU9fZmxvY2tm aWxlIChmcCkKLSMgZGVmaW5lIGZ1bmxvY2tmaWxlKGZwKSBfSU9fZnVubG9j a2ZpbGUgKGZwKQogI2Vsc2UKICMgaW5jbHVkZSAiZ2V0dGV4dC5oIgogIyBk ZWZpbmUgXyhtc2dpZCkgZ2V0dGV4dCAobXNnaWQpCmRpZmYgLS1naXQgYS9w d2QvZmdldHB3ZW50X3IuYyBiL3B3ZC9mZ2V0cHdlbnRfci5jCmluZGV4IDhh YThmNjkzNzIuLjA0NGYxOWIyMGIgMTAwNjQ0Ci0tLSBhL3B3ZC9mZ2V0cHdl bnRfci5jCisrKyBiL3B3ZC9mZ2V0cHdlbnRfci5jCkBAIC0yMCw5ICsyMCw2 IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxwd2QuaD4KIAot I2RlZmluZSBmbG9ja2ZpbGUocykgX0lPX2Zsb2NrZmlsZSAocykKLSNkZWZp bmUgZnVubG9ja2ZpbGUocykgX0lPX2Z1bmxvY2tmaWxlIChzKQotCiAvKiBE ZWZpbmUgYSBsaW5lIHBhcnNpbmcgZnVuY3Rpb24gdXNpbmcgdGhlIGNvbW1v biBjb2RlCiAgICB1c2VkIGluIHRoZSBuc3NfZmlsZXMgbW9kdWxlLiAgKi8K IApkaWZmIC0tZ2l0IGEvc2hhZG93L2ZnZXRzcGVudF9yLmMgYi9zaGFkb3cv ZmdldHNwZW50X3IuYwppbmRleCA0MjEwNjMwMmMxLi4yNjBmNTliYmM1IDEw MDY0NAotLS0gYS9zaGFkb3cvZmdldHNwZW50X3IuYworKysgYi9zaGFkb3cv ZmdldHNwZW50X3IuYwpAQCAtMjAsOCArMjAsNiBAQAogI2luY2x1ZGUgPHNo YWRvdy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAKLSNkZWZpbmUgZmxvY2tm aWxlKHMpIF9JT19mbG9ja2ZpbGUgKHMpCi0jZGVmaW5lIGZ1bmxvY2tmaWxl KHMpIF9JT19mdW5sb2NrZmlsZSAocykKIAogLyogRGVmaW5lIGEgbGluZSBw YXJzaW5nIGZ1bmN0aW9uIHVzaW5nIHRoZSBjb21tb24gY29kZQogICAgdXNl ZCBpbiB0aGUgbnNzX2ZpbGVzIG1vZHVsZS4gICovCmRpZmYgLS1naXQgYS9z aGFkb3cvcHV0c3BlbnQuYyBiL3NoYWRvdy9wdXRzcGVudC5jCmluZGV4IDVl MjczNDBiNWQuLjZkYWQ0NWY0MDEgMTAwNjQ0Ci0tLSBhL3NoYWRvdy9wdXRz cGVudC5jCisrKyBiL3NoYWRvdy9wdXRzcGVudC5jCkBAIC0yMCw4ICsyMCw2 IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzaGFkb3cuaD4K IAotI2RlZmluZSBmbG9ja2ZpbGUocykgX0lPX2Zsb2NrZmlsZSAocykKLSNk ZWZpbmUgZnVubG9ja2ZpbGUocykgX0lPX2Z1bmxvY2tmaWxlIChzKQogCiAj ZGVmaW5lIF9TKHgpCXggPyB4IDogIiIKIApkaWZmIC0tZ2l0IGEvc3RkaW8t Y29tbW9uL3RzdGdldGxuLmMgYi9zdGRpby1jb21tb24vdHN0Z2V0bG4uYwpp bmRleCA3OWFiOTBjN2NjLi4zYjdlY2VmYzBhIDEwMDY0NAotLS0gYS9zdGRp by1jb21tb24vdHN0Z2V0bG4uYworKysgYi9zdGRpby1jb21tb24vdHN0Z2V0 bG4uYwpAQCAtMTUsOSArMTUsOCBAQAogICAgTGljZW5zZSBhbG9uZyB3aXRo IHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQogICAgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KIAorI2luY2x1ZGUgPHN5cy90 eXBlcy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jdW5kZWYgc3NpemVfdAot I2RlZmluZSBzc2l6ZV90IF9JT19zc2l6ZV90CiAKIGludAogbWFpbiAoaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKZGlmZiAtLWdpdCBhL3N5c2RlcHMvZ2Vu ZXJpYy9fR19jb25maWcuaCBiL3N5c2RlcHMvZ2VuZXJpYy9fR19jb25maWcu aAppbmRleCBjNDllZWQzOTViLi5kOThjYjM4MjRkIDEwMDY0NAotLS0gYS9z eXNkZXBzL2dlbmVyaWMvX0dfY29uZmlnLmgKKysrIGIvc3lzZGVwcy9nZW5l cmljL19HX2NvbmZpZy5oCkBAIC0xLDU4ICsxLDggQEAKLS8qIFRoaXMgZmls ZSBpcyBuZWVkZWQgYnkgbGliaW8gdG8gZGVmaW5lIHZhcmlvdXMgY29uZmln dXJhdGlvbiBwYXJhbWV0ZXJzLgotICAgVGhlc2UgYXJlIGFsd2F5cyB0aGUg c2FtZSBpbiB0aGUgR05VIEMgbGlicmFyeS4gICovCisvKiBDb25maWd1cmF0 aW9uIHBhcmFtZXRlciBvdmVycmlkZXMgZm9yIGxpYmlvIC0gZ2VuZXJpYyB2 ZXJzaW9uLiAgKi8KIAogI2lmbmRlZiBfR19jb25maWdfaAogI2RlZmluZSBf R19jb25maWdfaCAxCiAKLS8qIERlZmluZSB0eXBlcyBmb3IgbGliaW8gaW4g dGVybXMgb2YgdGhlIHN0YW5kYXJkIGludGVybmFsIHR5cGUgbmFtZXMuICAq LwotCi0jaW5jbHVkZSA8Yml0cy90eXBlcy5oPgotI2RlZmluZSBfX25lZWRf c2l6ZV90Ci0jaWYgZGVmaW5lZCBfTElCQyB8fCBkZWZpbmVkIF9HTElCQ1BQ X1VTRV9XQ0hBUl9UCi0jIGRlZmluZSBfX25lZWRfd2NoYXJfdAotI2VuZGlm Ci0jZGVmaW5lIF9fbmVlZF9OVUxMCi0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0K LSNpbmNsdWRlIDxiaXRzL3R5cGVzL19fbWJzdGF0ZV90Lmg+Ci0jaWYgZGVm aW5lZCBfTElCQyB8fCBkZWZpbmVkIF9HTElCQ1BQX1VTRV9XQ0hBUl9UCi0j IGluY2x1ZGUgPGJpdHMvdHlwZXMvd2ludF90Lmg+Ci0jZW5kaWYKLQotdHlw ZWRlZiBzdHJ1Y3QKLXsKLSAgX19vZmZfdCBfX3BvczsKLSAgX19tYnN0YXRl X3QgX19zdGF0ZTsKLX0gX0dfZnBvc190OwotdHlwZWRlZiBzdHJ1Y3QKLXsK LSAgX19vZmY2NF90IF9fcG9zOwotICBfX21ic3RhdGVfdCBfX3N0YXRlOwot fSBfR19mcG9zNjRfdDsKLSNpZiBkZWZpbmVkIF9MSUJDIHx8IGRlZmluZWQg X0dMSUJDUFBfVVNFX1dDSEFSX1QKLSMgaW5jbHVkZSA8Z2NvbnYuaD4KLXR5 cGVkZWYgdW5pb24KLXsKLSAgc3RydWN0IF9fZ2NvbnZfaW5mbyBfX2NkOwot ICBzdHJ1Y3QKLSAgewotICAgIHN0cnVjdCBfX2djb252X2luZm8gX19jZDsK LSAgICBzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGEgX19kYXRhOwotICB9IF9f Y29tYmluZWQ7Ci19IF9HX2ljb252X3Q7Ci0jZW5kaWYKLQotCi0vKiBUaGVz ZSBsaWJyYXJ5IGZlYXR1cmVzIGFyZSBhbHdheXMgYXZhaWxhYmxlIGluIHRo ZSBHTlUgQyBsaWJyYXJ5LiAgKi8KLSNkZWZpbmUgX0dfdmFfbGlzdCBfX2du dWNfdmFfbGlzdAotCi0jZGVmaW5lIF9HX0hBVkVfTU1BUCAxCi0KLSNkZWZp bmUgX0dfSU9fSU9fRklMRV9WRVJTSU9OIDB4MjAwMDEKLQotLyogVGhpcyBp cyBkZWZpbmVkIGJ5IDxiaXRzL3N0YXQuaD4gaWYgYHN0X2Jsa3NpemUnIGV4 aXN0cy4gICovCi0jZGVmaW5lIF9HX0hBVkVfU1RfQkxLU0laRSBkZWZpbmVk IChfU1RBVEJVRl9TVF9CTEtTSVpFKQotCi0jZGVmaW5lIF9HX0JVRlNJWiA4 MTkyCisjdW5kZWYgX0dfSEFWRV9NUkVNQVAKIAogI2VuZGlmCS8qIF9HX2Nv bmZpZy5oICovCmRpZmYgLS1naXQgYS9zeXNkZXBzL2llZWU3NTQvbGRibC1v cHQvbmxkYmwtY29tcGF0LmggYi9zeXNkZXBzL2llZWU3NTQvbGRibC1vcHQv bmxkYmwtY29tcGF0LmgKaW5kZXggNzJlYzBkYjM5MC4uYTRmM2MzN2Q2MyAx MDA2NDQKLS0tIGEvc3lzZGVwcy9pZWVlNzU0L2xkYmwtb3B0L25sZGJsLWNv bXBhdC5oCisrKyBiL3N5c2RlcHMvaWVlZTc1NC9sZGJsLW9wdC9ubGRibC1j b21wYXQuaApAQCAtODIsMjIgKzgyLDIzIEBAIGV4dGVybiBzc2l6ZV90IF9f bmxkYmxfX192c3RyZm1vbiAoY2hhciAqLCBzaXplX3QsIGNvbnN0IGNoYXIg KiwgdmFfbGlzdCkKIC8qIFRoZXNlIGRvbid0IHVzZSBfX3R5cGVvZiBiZWNh dXNlIHRoZXkgd2VyZSBub3QgZGVjbGFyZWQgYnkgdGhlIGhlYWRlcnMsCiAg ICBzaW5jZSB3ZSBkb24ndCBjb21waWxlIHdpdGggX0ZPUlRJRllfU09VUkNF LiAgKi8KIGV4dGVybiBpbnQgX19ubGRibF9fX3ZmcHJpbnRmX2NoayAoRklM RSAqX19yZXN0cmljdCwgaW50LAotCQkJCSAgIGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QsIF9HX3ZhX2xpc3QpOworCQkJCSAgIGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QsIF9fZ251Y192YV9saXN0KTsKIGV4dGVybiBpbnQgX19ubGRibF9f X3Zmd3ByaW50Zl9jaGsgKEZJTEUgKl9fcmVzdHJpY3QsIGludCwKIAkJCQkg ICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCwgX19nbnVjX3ZhX2xpc3Qp OwogZXh0ZXJuIGludCBfX25sZGJsX19fdnNwcmludGZfY2hrIChjaGFyICpf X3Jlc3RyaWN0LCBpbnQsIHNpemVfdCwKLQkJCQkgICBjb25zdCBjaGFyICpf X3Jlc3RyaWN0LCBfR192YV9saXN0KSBfX1RIUk9XOworCQkJCSAgIGNvbnN0 IGNoYXIgKl9fcmVzdHJpY3QsIF9fZ251Y192YV9saXN0KQorICBfX1RIUk9X OwogZXh0ZXJuIGludCBfX25sZGJsX19fdnNucHJpbnRmX2NoayAoY2hhciAq X19yZXN0cmljdCwgc2l6ZV90LCBpbnQsIHNpemVfdCwKLQkJCQkgICAgY29u c3QgY2hhciAqX19yZXN0cmljdCwgX0dfdmFfbGlzdCkKKwkJCQkgICAgY29u c3QgY2hhciAqX19yZXN0cmljdCwgX19nbnVjX3ZhX2xpc3QpCiAgIF9fVEhS T1c7CiBleHRlcm4gaW50IF9fbmxkYmxfX192c3dwcmludGZfY2hrICh3Y2hh cl90ICpfX3Jlc3RyaWN0LCBzaXplX3QsIGludCwgc2l6ZV90LAogCQkJCSAg ICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0LCBfX2dudWNfdmFfbGlzdCkK ICAgX19USFJPVzsKLWV4dGVybiBpbnQgX19ubGRibF9fX3Zhc3ByaW50Zl9j aGsgKGNoYXIgKiosIGludCwgY29uc3QgY2hhciAqLCBfR192YV9saXN0KQor ZXh0ZXJuIGludCBfX25sZGJsX19fdmFzcHJpbnRmX2NoayAoY2hhciAqKiwg aW50LCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KQogICBfX1RIUk9X OwotZXh0ZXJuIGludCBfX25sZGJsX19fdmRwcmludGZfY2hrIChpbnQsIGlu dCwgY29uc3QgY2hhciAqLCBfR192YV9saXN0KTsKK2V4dGVybiBpbnQgX19u bGRibF9fX3ZkcHJpbnRmX2NoayAoaW50LCBpbnQsIGNvbnN0IGNoYXIgKiwg X19nbnVjX3ZhX2xpc3QpOwogZXh0ZXJuIGludCBfX25sZGJsX19fb2JzdGFj a192cHJpbnRmX2NoayAoc3RydWN0IG9ic3RhY2sgKiwgaW50LCBjb25zdCBj aGFyICosCi0JCQkJCSAgX0dfdmFfbGlzdCkgX19USFJPVzsKKwkJCQkJICBf X2dudWNfdmFfbGlzdCkgX19USFJPVzsKIGV4dGVybiB2b2lkIF9fbmxkYmxf X192c3lzbG9nX2NoayAoaW50LCBpbnQsIGNvbnN0IGNoYXIgKiwgdmFfbGlz dCk7CiAKIApkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgv X0dfY29uZmlnLmggYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9fR19jb25m aWcuaAppbmRleCAzYmM2Y2ZkNTk1Li42OWQ1ZjQ2OTRmIDEwMDY0NAotLS0g YS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9fR19jb25maWcuaAorKysgYi9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9fR19jb25maWcuaApAQCAtMSw1OSAr MSw4IEBACi0vKiBUaGlzIGZpbGUgaXMgbmVlZGVkIGJ5IGxpYmlvIHRvIGRl ZmluZSB2YXJpb3VzIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4KLSAgIFRo ZXNlIGFyZSBhbHdheXMgdGhlIHNhbWUgaW4gdGhlIEdOVSBDIGxpYnJhcnku ICAqLworLyogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgb3ZlcnJpZGVzIGZv ciBsaWJpbyAtIExpbnV4IHZlcnNpb24uICAqLwogCiAjaWZuZGVmIF9HX2Nv bmZpZ19oCiAjZGVmaW5lIF9HX2NvbmZpZ19oIDEKIAotLyogRGVmaW5lIHR5 cGVzIGZvciBsaWJpbyBpbiB0ZXJtcyBvZiB0aGUgc3RhbmRhcmQgaW50ZXJu YWwgdHlwZSBuYW1lcy4gICovCi0KLSNpbmNsdWRlIDxiaXRzL3R5cGVzLmg+ Ci0jZGVmaW5lIF9fbmVlZF9zaXplX3QKLSNpZiBkZWZpbmVkIF9MSUJDIHx8 IGRlZmluZWQgX0dMSUJDUFBfVVNFX1dDSEFSX1QKLSMgZGVmaW5lIF9fbmVl ZF93Y2hhcl90Ci0jZW5kaWYKLSNkZWZpbmUgX19uZWVkX05VTEwKLSNpbmNs dWRlIDxzdGRkZWYuaD4KLQotI2luY2x1ZGUgPGJpdHMvdHlwZXMvX19tYnN0 YXRlX3QuaD4KLSNpZiBkZWZpbmVkIF9MSUJDIHx8IGRlZmluZWQgX0dMSUJD UFBfVVNFX1dDSEFSX1QKLSMgaW5jbHVkZSA8Yml0cy90eXBlcy93aW50X3Qu aD4KLSNlbmRpZgotCi10eXBlZGVmIHN0cnVjdAotewotICBfX29mZl90IF9f cG9zOwotICBfX21ic3RhdGVfdCBfX3N0YXRlOwotfSBfR19mcG9zX3Q7Ci10 eXBlZGVmIHN0cnVjdAotewotICBfX29mZjY0X3QgX19wb3M7Ci0gIF9fbWJz dGF0ZV90IF9fc3RhdGU7Ci19IF9HX2Zwb3M2NF90OwotI2lmIGRlZmluZWQg X0xJQkMgfHwgZGVmaW5lZCBfR0xJQkNQUF9VU0VfV0NIQVJfVAotIyBpbmNs dWRlIDxnY29udi5oPgotdHlwZWRlZiB1bmlvbgotewotICBzdHJ1Y3QgX19n Y29udl9pbmZvIF9fY2Q7Ci0gIHN0cnVjdAotICB7Ci0gICAgc3RydWN0IF9f Z2NvbnZfaW5mbyBfX2NkOwotICAgIHN0cnVjdCBfX2djb252X3N0ZXBfZGF0 YSBfX2RhdGE7Ci0gIH0gX19jb21iaW5lZDsKLX0gX0dfaWNvbnZfdDsKLSNl bmRpZgotCi0KLS8qIFRoZXNlIGxpYnJhcnkgZmVhdHVyZXMgYXJlIGFsd2F5 cyBhdmFpbGFibGUgaW4gdGhlIEdOVSBDIGxpYnJhcnkuICAqLwotI2RlZmlu ZSBfR192YV9saXN0IF9fZ251Y192YV9saXN0Ci0KLSNkZWZpbmUgX0dfSEFW RV9NTUFQIDEKICNkZWZpbmUgX0dfSEFWRV9NUkVNQVAgMQogCi0jZGVmaW5l IF9HX0lPX0lPX0ZJTEVfVkVSU0lPTiAweDIwMDAxCi0KLS8qIFRoaXMgaXMg ZGVmaW5lZCBieSA8Yml0cy9zdGF0Lmg+IGlmIGBzdF9ibGtzaXplJyBleGlz dHMuICAqLwotI2RlZmluZSBfR19IQVZFX1NUX0JMS1NJWkUgZGVmaW5lZCAo X1NUQVRCVUZfU1RfQkxLU0laRSkKLQotI2RlZmluZSBfR19CVUZTSVogODE5 MgotCiAjZW5kaWYJLyogX0dfY29uZmlnLmggKi8KLS0gCjIuMTEuMAoK --001a114a93ce78f647054d9b0333--