From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 64367 invoked by alias); 8 Jun 2016 20:38:33 -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 62735 invoked by uid 89); 8 Jun 2016 20:38:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: Yes, score=5.7 required=5.0 tests=AWL,BAYES_99,BAYES_999,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 spammy=0x60, 0x80, movzbl, 1019 X-HELO: mail-qt0-f170.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=dPMxiUIAHStXXnxNf+TraXAzZG39QAmgLCcmuAlhqhQ=; b=Qx0Df/djVSRFARlq2+HAuO5c5Bz6ha4UjZo3jOLJierrdVJvrTEaisnm89QS3HYt1o NVS83Xgi+mQy3fXBe2WpzKOFF1yuAHeQezxDyVdccMsFsxFGSKjxrpkBfYlL08z/gxFH DWCTRLL7LeorZlCw//H6L31jW+xaGt47WiyYE1NbJnyPrEM0RgAuvuCeFx34Qt50cC6r eIEm3XvsIhhPaGBaiQ72BKQZT5MGA9lp5C3K6J+RK6+5iXu8qfGCu4uBpnpidq7hTHJY Tx+wA7YfIhMlkjdrE2p2NSeblGY9KciXk2RmG9QVZJsRO1r+ehZAOiFjYI9opLzbfz0v Me6A== X-Gm-Message-State: ALyK8tIetcn/kAVHAIpH6MyWYQUjvuopMXYz5DFMPqMixf23gmEjs+jeV4ZNasbwsCGocxrOAg4KHiJ52C7Uig== X-Received: by 10.237.38.129 with SMTP id q1mr6752577qtd.1.1465418299429; Wed, 08 Jun 2016 13:38:19 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: From: "H.J. Lu" Date: Wed, 08 Jun 2016 20:38:00 -0000 Message-ID: Subject: Re: [PATCH] [BZ #19776]: X86-64: Remove previous default/SSE2/AVX2 memcpy/memmove To: Andrew Senkevich Cc: libc-alpha Content-Type: multipart/mixed; boundary=001a114f5db62f9fe10534ca4940 X-SW-Source: 2016-06/txt/msg00284.txt.bz2 --001a114f5db62f9fe10534ca4940 Content-Type: text/plain; charset=UTF-8 Content-length: 824 On Fri, Apr 15, 2016 at 12:03 PM, Andrew Senkevich wrote: >> On Fri, Apr 1, 2016 at 12:38 PM, H.J. Lu wrote: > >> Here is the updated patch against master. The current memcpy performance data is at > >> https://sourceware.org/bugzilla/attachment.cgi?id=9184 > >> The current memmove performance data is at > >> https://sourceware.org/bugzilla/attachment.cgi?id=9185 > >> Any comments, feedbacks, objections? > > What about performance data on tests with graphics? > > There are several use cases, and it could show more helpful information.. > The performance data shows the new one is better than the old one on various Intel and AMD machines: https://sourceware.org/bugzilla/show_bug.cgi?id=19776 I am enclosing the patch and I will check it in shortly. -- H.J. --001a114f5db62f9fe10534ca4940 Content-Type: text/x-patch; charset=US-ASCII; name="0002-X86-64-Remove-previous-default-SSE2-AVX2-memcpy-memm.patch" Content-Disposition: attachment; filename="0002-X86-64-Remove-previous-default-SSE2-AVX2-memcpy-memm.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ip7c7t3t0 Content-length: 95478 RnJvbSAzZDk5ZDgyZmFjYWQ2NjBlMjM0MjNjMDIzZGVlMzM2M2IzYjIxNTNl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMzEgTWFyIDIwMTYgMTI6 NDY6NTcgLTA3MDAKU3ViamVjdDogW1BBVENIIDIvMl0gWDg2LTY0OiBSZW1v dmUgcHJldmlvdXMgZGVmYXVsdC9TU0UyL0FWWDIgbWVtY3B5L21lbW1vdmUK ClNpbmNlIHRoZSBuZXcgU1NFMi9BVlgyIG1lbWNweS9tZW1tb3ZlIGFyZSBm YXN0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lcywKd2UgY2FuIHJlbW92ZSB0 aGUgcHJldmlvdXMgU1NFMi9BVlgyIG1lbWNweS9tZW1tb3ZlIGFuZCByZXBs YWNlIHRoZW0gd2l0aAp0aGUgbmV3IG9uZXMuCgpObyBjaGFuZ2UgaW4gSUZV TkMgc2VsZWN0aW9uIGlmIFNTRTIgYW5kIEFWWDIgbWVtY3B5L21lbW1vdmUg d2VyZW4ndCB1c2VkCmJlZm9yZS4gIElmIFNTRTIgb3IgQVZYMiBtZW1jcHkv bWVtbW92ZSB3ZXJlIHVzZWQsIHRoZSBuZXcgU1NFMiBvciBBVlgyCm1lbWNw eS9tZW1tb3ZlIG9wdGltaXplZCB3aXRoIEVuaGFuY2VkIFJFUCBNT1ZTQiB3 aWxsIGJlIHVzZWQgZm9yCnByb2Nlc3NvcnMgd2l0aCBFUk1TLiAgVGhlIG5l dyBBVlg1MTIgbWVtY3B5L21lbW1vdmUgd2lsbCBiZSB1c2VkIGZvcgpwcm9j ZXNzb3JzIHdpdGggQVZYNTEyIHdoaWNoIHByZWZlciB2emVyb3VwcGVyLgoK U2luY2UgdGhlIG5ldyBTU0UyIG1lbWNweS9tZW1tb3ZlIGFyZSBmYXN0ZXIg dGhhbiB0aGUgcHJldmlvdXMgZGVmYXVsdAptZW1jcHkvbWVtbW92ZSB1c2Vk IGluIGxpYmMuYSBhbmQgbGQuc28sIHdlIGFsc28gcmVtb3ZlIHRoZSBwcmV2 aW91cwpkZWZhdWx0IG1lbWNweS9tZW1tb3ZlIGFuZCBtYWtlIHRoZW0gdGhl IGRlZmF1bHQgbWVtY3B5L21lbW1vdmUsIGV4Y2VwdAp0aGF0IG5vbi10ZW1w b3JhbCBzdG9yZSBpc24ndCB1c2VkIGluIGxkLnNvLgoKVG9nZXRoZXIsIGl0 IHJlZHVjZXMgdGhlIHNpemUgb2YgbGliYy5zbyBieSBhYm91dCA2IEtCIGFu ZCB0aGUgc2l6ZSBvZgpsZC5zbyBieSBhYm91dCAyIEtCLgoKCVtCWiAjMTk3 NzZdCgkqIHN5c2RlcHMveDg2XzY0L21lbWNweS5TOiBNYWtlIGl0IGR1bW15 LgoJKiBzeXNkZXBzL3g4Nl82NC9tZW1wY3B5LlM6IExpa2V3aXNlLgoJKiBz eXNkZXBzL3g4Nl82NC9tZW1tb3ZlLlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBz L3g4Nl82NC9tZW1tb3ZlX2Noay5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy94 ODZfNjQvbXVsdGlhcmNoL21lbW1vdmUuUzogTGlrZXdpc2UuCgkqIHN5c2Rl cHMveDg2XzY0L211bHRpYXJjaC9tZW1tb3ZlX2Noay5TOiBMaWtld2lzZS4K CSogc3lzZGVwcy94ODZfNjQvbWVtbW92ZS5jOiBSZW1vdmVkLgoJKiBzeXNk ZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtY3B5LWF2eC11bmFsaWduZWQuUzog TGlrZXdpc2UuCgkqIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9tZW1jcHkt c3NlMi11bmFsaWduZWQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMveDg2XzY0 L211bHRpYXJjaC9tZW1tb3ZlLWF2eC11bmFsaWduZWQuUzogTGlrZXdpc2Uu CgkqIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9tZW1tb3ZlLXNzZTItdW5h bGlnbmVkLWVybXMuUzoKCUxpa2V3aXNlLgoJKiBzeXNkZXBzL3g4Nl82NC9t dWx0aWFyY2gvbWVtbW92ZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy94ODZf NjQvbXVsdGlhcmNoL21lbW1vdmVfY2hrLmM6IExpa2V3aXNlLgoJKiBzeXNk ZXBzL3g4Nl82NC9tdWx0aWFyY2gvTWFrZWZpbGUgKHN5c2RlcF9yb3V0aW5l cyk6IFJlbW92ZQoJbWVtY3B5LXNzZTItdW5hbGlnbmVkLCBtZW1tb3ZlLWF2 eC11bmFsaWduZWQsCgltZW1jcHktYXZ4LXVuYWxpZ25lZCBhbmQgbWVtbW92 ZS1zc2UyLXVuYWxpZ25lZC1lcm1zLgoJKiBzeXNkZXBzL3g4Nl82NC9tdWx0 aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKCShfX2xpYmNfaWZ1bmNfaW1wbF9s aXN0KTogUmVwbGFjZQoJX19tZW1tb3ZlX2Noa19hdng1MTJfdW5hbGlnbmVk XzIgd2l0aAoJX19tZW1tb3ZlX2Noa19hdng1MTJfdW5hbGlnbmVkLiAgUmVt b3ZlCglfX21lbW1vdmVfY2hrX2F2eF91bmFsaWduZWRfMi4gIFJlcGxhY2UK CV9fbWVtbW92ZV9jaGtfc3NlMl91bmFsaWduZWRfMiB3aXRoCglfX21lbW1v dmVfY2hrX3NzZTJfdW5hbGlnbmVkLiAgUmVtb3ZlIF9fbWVtbW92ZV9jaGtf c3NlMiBhbmQKCV9fbWVtbW92ZV9hdnhfdW5hbGlnbmVkXzIuICBSZXBsYWNl IF9fbWVtbW92ZV9hdng1MTJfdW5hbGlnbmVkXzIKCXdpdGggX19tZW1tb3Zl X2F2eDUxMl91bmFsaWduZWQuICBSZXBsYWNlCglfX21lbW1vdmVfc3NlMl91 bmFsaWduZWRfMiB3aXRoIF9fbWVtbW92ZV9zc2UyX3VuYWxpZ25lZC4KCVJl bW92ZSBfX21lbW1vdmVfc3NlMi4gIFJlcGxhY2UgX19tZW1jcHlfY2hrX2F2 eDUxMl91bmFsaWduZWRfMgoJd2l0aCBfX21lbWNweV9jaGtfYXZ4NTEyX3Vu YWxpZ25lZC4gIFJlbW92ZQoJX19tZW1jcHlfY2hrX2F2eF91bmFsaWduZWRf Mi4gIFJlcGxhY2UKCV9fbWVtY3B5X2Noa19zc2UyX3VuYWxpZ25lZF8yIHdp dGggX19tZW1jcHlfY2hrX3NzZTJfdW5hbGlnbmVkLgoJUmVtb3ZlIF9fbWVt Y3B5X2Noa19zc2UyLiAgUmVtb3ZlIF9fbWVtY3B5X2F2eF91bmFsaWduZWRf Mi4KCVJlcGxhY2UgX19tZW1jcHlfYXZ4NTEyX3VuYWxpZ25lZF8yIHdpdGgK CV9fbWVtY3B5X2F2eDUxMl91bmFsaWduZWQuICBSZW1vdmUgX19tZW1jcHlf c3NlMl91bmFsaWduZWRfMgoJYW5kIF9fbWVtY3B5X3NzZTIuICBSZXBsYWNl IF9fbWVtcGNweV9jaGtfYXZ4NTEyX3VuYWxpZ25lZF8yCgl3aXRoIF9fbWVt cGNweV9jaGtfYXZ4NTEyX3VuYWxpZ25lZC4gIFJlbW92ZQoJX19tZW1wY3B5 X2Noa19hdnhfdW5hbGlnbmVkXzIuICBSZXBsYWNlCglfX21lbXBjcHlfY2hr X3NzZTJfdW5hbGlnbmVkXzIgd2l0aAoJX19tZW1wY3B5X2Noa19zc2UyX3Vu YWxpZ25lZC4gIFJlbW92ZSBfX21lbXBjcHlfY2hrX3NzZTIuCglSZXBsYWNl IF9fbWVtcGNweV9hdng1MTJfdW5hbGlnbmVkXzIgd2l0aAoJX19tZW1wY3B5 X2F2eDUxMl91bmFsaWduZWQuICBSZW1vdmUgX19tZW1wY3B5X2F2eF91bmFs aWduZWRfMi4KCVJlcGxhY2UgX19tZW1wY3B5X3NzZTJfdW5hbGlnbmVkXzIg d2l0aAoJX19tZW1wY3B5X3NzZTJfdW5hbGlnbmVkLiAgUmVtb3ZlIF9fbWVt cGNweV9zc2UyLgoJKiBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtY3B5 LlMgKF9fbmV3X21lbWNweSk6IFN1cHBvcnQKCV9fbWVtY3B5X2F2eDUxMl91 bmFsaWduZWRfZXJtcyBhbmQgX19tZW1jcHlfYXZ4NTEyX3VuYWxpZ25lZC4K CVVzZSBfX21lbWNweV9hdnhfdW5hbGlnbmVkX2VybXMgYW5kIF9fbWVtY3B5 X3NzZTJfdW5hbGlnbmVkX2VybXMKCWlmIHByb2Nlc3NvciBoYXMgRVJNUy4g IERlZmF1bHQgdG8gX19tZW1jcHlfc3NlMl91bmFsaWduZWQuCgkoRU5UUlkp OiBSZW1vdmVkLgoJKEVORCk6IExpa2V3aXNlLgoJKEVOVFJZX0NISyk6IExp a2V3aXNlLgoJKGxpYmNfaGlkZGVuX2J1aWx0aW5fZGVmKTogTGlrZXdpc2Uu CglEb24ndCBpbmNsdWRlIC4uL21lbWNweS5TLgoJKiBzeXNkZXBzL3g4Nl82 NC9tdWx0aWFyY2gvbWVtY3B5X2Noay5TIChfX21lbWNweV9jaGspOiBTdXBw b3J0CglfX21lbWNweV9jaGtfYXZ4NTEyX3VuYWxpZ25lZF9lcm1zIGFuZAoJ X19tZW1jcHlfY2hrX2F2eDUxMl91bmFsaWduZWQuICBVc2UKCV9fbWVtY3B5 X2Noa19hdnhfdW5hbGlnbmVkX2VybXMgYW5kCglfX21lbWNweV9jaGtfc3Nl Ml91bmFsaWduZWRfZXJtcyBpZiBpZiBwcm9jZXNzb3IgaGFzIEVSTVMuCglE ZWZhdWx0IHRvIF9fbWVtY3B5X2Noa19zc2UyX3VuYWxpZ25lZC4KCSogc3lz ZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbW1vdmUtdmVjLXVuYWxpZ25lZC1l cm1zLlMKCUNoYW5nZSBmdW5jdGlvbiBzdWZmaXggZnJvbSB1bmFsaWduZWRf MiB0byB1bmFsaWduZWQuCgkqIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9t ZW1wY3B5LlMgKF9fbWVtcGNweSk6IFN1cHBvcnQKCV9fbWVtcGNweV9hdng1 MTJfdW5hbGlnbmVkX2VybXMgYW5kIF9fbWVtcGNweV9hdng1MTJfdW5hbGln bmVkLgoJVXNlIF9fbWVtcGNweV9hdnhfdW5hbGlnbmVkX2VybXMgYW5kIF9f bWVtcGNweV9zc2UyX3VuYWxpZ25lZF9lcm1zCglpZiBwcm9jZXNzb3IgaGFz IEVSTVMuICBEZWZhdWx0IHRvIF9fbWVtcGNweV9zc2UyX3VuYWxpZ25lZC4K CShFTlRSWSk6IFJlbW92ZWQuCgkoRU5EKTogTGlrZXdpc2UuCgkoRU5UUllf Q0hLKTogTGlrZXdpc2UuCgkobGliY19oaWRkZW5fYnVpbHRpbl9kZWYpOiBM aWtld2lzZS4KCURvbid0IGluY2x1ZGUgLi4vbWVtcGNweS5TLgoJKG1lbXBj cHkpOiBOZXcuICBBZGQgYSB3ZWFrIGFsaWFzLgoJKiBzeXNkZXBzL3g4Nl82 NC9tdWx0aWFyY2gvbWVtcGNweV9jaGsuUyAoX19tZW1wY3B5X2Noayk6IFN1 cHBvcnQKCV9fbWVtcGNweV9jaGtfYXZ4NTEyX3VuYWxpZ25lZF9lcm1zIGFu ZAoJX19tZW1wY3B5X2Noa19hdng1MTJfdW5hbGlnbmVkLiAgVXNlCglfX21l bXBjcHlfY2hrX2F2eF91bmFsaWduZWRfZXJtcyBhbmQKCV9fbWVtcGNweV9j aGtfc3NlMl91bmFsaWduZWRfZXJtcyBpZiBpZiBwcm9jZXNzb3IgaGFzIEVS TVMuCglEZWZhdWx0IHRvIF9fbWVtcGNweV9jaGtfc3NlMl91bmFsaWduZWQu Ci0tLQogc3lzZGVwcy94ODZfNjQvbWVtY3B5LlMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCA1ODUgKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzeXNk ZXBzL3g4Nl82NC9tZW1tb3ZlLlMgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA3MSArKysKIHN5c2RlcHMveDg2XzY0L21lbW1vdmUuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDI2IC0KIHN5c2RlcHMveDg2XzY0L21l bW1vdmVfY2hrLlMgICAgICAgICAgICAgICAgICAgICAgIHwgIDMzICsrCiBz eXNkZXBzL3g4Nl82NC9tZW1wY3B5LlMgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgOSArLQogc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL01ha2Vm aWxlICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHN5c2RlcHMveDg2XzY0 L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyAgICAgICAgIHwgIDYzICst LQogc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbWNweS1hdngtdW5hbGln bmVkLlMgICAgfCAzOTEgLS0tLS0tLS0tLS0tLS0KIHN5c2RlcHMveDg2XzY0 L211bHRpYXJjaC9tZW1jcHktc3NlMi11bmFsaWduZWQuUyAgIHwgMTc1IC0t LS0tLQogc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbWNweS5TICAgICAg ICAgICAgICAgICAgfCAgNjIgKy0tCiBzeXNkZXBzL3g4Nl82NC9tdWx0aWFy Y2gvbWVtY3B5X2Noay5TICAgICAgICAgICAgICB8ICA0MCArLQogc3lzZGVw cy94ODZfNjQvbXVsdGlhcmNoL21lbW1vdmUtYXZ4LXVuYWxpZ25lZC5TICAg fCAgMjIgLQogLi4uL3g4Nl82NC9tdWx0aWFyY2gvbWVtbW92ZS1zc2UyLXVu YWxpZ25lZC1lcm1zLlMgfCAgMTMgLQogLi4uL3g4Nl82NC9tdWx0aWFyY2gv bWVtbW92ZS12ZWMtdW5hbGlnbmVkLWVybXMuUyAgfCAgMjQgKy0KIHN5c2Rl cHMveDg2XzY0L211bHRpYXJjaC9tZW1tb3ZlLlMgICAgICAgICAgICAgICAg IHwgIDk4ICsrKysKIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9tZW1tb3Zl LmMgICAgICAgICAgICAgICAgIHwgIDczIC0tLQogc3lzZGVwcy94ODZfNjQv bXVsdGlhcmNoL21lbW1vdmVfY2hrLlMgICAgICAgICAgICAgfCAgNzEgKysr CiBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtbW92ZV9jaGsuYyAgICAg ICAgICAgICB8ICA0NiAtLQogc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21l bXBjcHkuUyAgICAgICAgICAgICAgICAgfCAgNzQgKy0tCiBzeXNkZXBzL3g4 Nl82NC9tdWx0aWFyY2gvbWVtcGNweV9jaGsuUyAgICAgICAgICAgICB8ICAz OCArLQogMjAgZmlsZXMgY2hhbmdlZCwgNDEyIGluc2VydGlvbnMoKyksIDE1 MDggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94 ODZfNjQvbWVtbW92ZS5TCiBkZWxldGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94 ODZfNjQvbWVtbW92ZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94 ODZfNjQvbWVtbW92ZV9jaGsuUwogZGVsZXRlIG1vZGUgMTAwNjQ0IHN5c2Rl cHMveDg2XzY0L211bHRpYXJjaC9tZW1jcHktYXZ4LXVuYWxpZ25lZC5TCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21l bWNweS1zc2UyLXVuYWxpZ25lZC5TCiBkZWxldGUgbW9kZSAxMDA2NDQgc3lz ZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbW1vdmUtYXZ4LXVuYWxpZ25lZC5T CiBkZWxldGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNo L21lbW1vdmUtc3NlMi11bmFsaWduZWQtZXJtcy5TCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbW1vdmUuUwogZGVs ZXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9tZW1t b3ZlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3g4Nl82NC9tdWx0 aWFyY2gvbWVtbW92ZV9jaGsuUwogZGVsZXRlIG1vZGUgMTAwNjQ0IHN5c2Rl cHMveDg2XzY0L211bHRpYXJjaC9tZW1tb3ZlX2Noay5jCgpkaWZmIC0tZ2l0 IGEvc3lzZGVwcy94ODZfNjQvbWVtY3B5LlMgYi9zeXNkZXBzL3g4Nl82NC9t ZW1jcHkuUwppbmRleCBmNmUzZDkzLi5kOTg1MDBhIDEwMDY0NAotLS0gYS9z eXNkZXBzL3g4Nl82NC9tZW1jcHkuUworKysgYi9zeXNkZXBzL3g4Nl82NC9t ZW1jcHkuUwpAQCAtMSw1ODQgKzEgQEAKLS8qCi0gICBPcHRpbWl6ZWQgbWVt Y3B5IGZvciB4ODYtNjQuCi0KLSAgIENvcHlyaWdodCAoQykgMjAwNy0yMDE2 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotICAgQ29udHJpYnV0 ZWQgYnkgRXZhbmRybyBNZW5lemVzIDxldmFuZHJvLm1lbmV6ZXNAYW1kLmNv bT4sIDIwMDcuCi0KLSAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUg QyBMaWJyYXJ5LgotCi0gICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKLSAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgdmVyc2lvbiAy LjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCi0KLSAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgotICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK LSAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCi0KLSAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAgIExpY2Vuc2Ug YWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKLSAg IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSovCi0KLSNpbmNs dWRlIDxzeXNkZXAuaD4KLSNpbmNsdWRlICJhc20tc3ludGF4LmgiCi0KLS8q IFN0YWNrIHNsb3RzIGluIHRoZSByZWQtem9uZS4gKi8KLQotI2lmZGVmIFVT RV9BU19NRU1QQ1BZCi0jICBkZWZpbmUgUkVUVkFMCSgwKQotI2Vsc2UKLSMg IGRlZmluZSBSRVRWQUwJKC04KQotIyAgaWYgZGVmaW5lZCBTSEFSRUQgJiYg IWRlZmluZWQgVVNFX01VTFRJQVJDSCAmJiBJU19JTiAobGliYykKLSMgICAg ZGVmaW5lIG1lbWNweQlfX21lbWNweQotIyAgICB1bmRlZiBsaWJjX2hpZGRl bl9idWlsdGluX2RlZgotIyAgICBkZWZpbmUgbGliY19oaWRkZW5fYnVpbHRp bl9kZWYobmFtZSkgXAotCS5nbG9ibCBfX0dJX21lbWNweTsgX19HSV9tZW1j cHkgPSBfX21lbWNweQotIyAgZW5kaWYKLSNlbmRpZgotI2RlZmluZSBTQVZF MAkoUkVUVkFMIC0gOCkKLSNkZWZpbmUgU0FWRTEJKFNBVkUwCS0gOCkKLSNk ZWZpbmUgU0FWRTIJKFNBVkUxCS0gOCkKLSNkZWZpbmUgU0FWRTMJKFNBVkUy CS0gOCkKLQotICAgICAgICAudGV4dAotCi0jaWYgZGVmaW5lZCBQSUMgJiYg SVNfSU4gKGxpYmMpCi1FTlRSWV9DSEsgKF9fbWVtY3B5X2NoaykKLQotCWNt cHEJJXJkeCwgJXJjeAotCWpiCUhJRERFTl9KVU1QVEFSR0VUIChfX2Noa19m YWlsKQotCi1FTkRfQ0hLIChfX21lbWNweV9jaGspCi0jZW5kaWYKLQotRU5U UlkobWVtY3B5KQkJCQkvKiAodm9pZCAqLCBjb25zdCB2b2lkKiwgc2l6ZV90 KSAqLwotCi0vKiBIYW5kbGUgdGlueSBibG9ja3MuICovCi0KLUwoMXRyeSk6 CQkJCS8qIHVwIHRvIDMyQiAqLwotCWNtcHEJJDMyLCAlcmR4Ci0jaWZuZGVm IFVTRV9BU19NRU1QQ1BZCi0JbW92cQklcmRpLCAlcmF4CQkvKiBzYXZlIHJl dHVybiB2YWx1ZSAqLwotI2VuZGlmCi0JamFlCUwoMWFmdGVyKQotCi1MKDEp OgkJCQkJLyogMS1ieXRlIG9uY2UgKi8KLQl0ZXN0YgkkMSwgJWRsCi0JanoJ TCgxYSkKLQotCW1vdnpibAkoJXJzaSksCSVlY3gKLQltb3ZiCSVjbCwgKCVy ZGkpCi0KLQlpbmNxCSVyc2kKLQlpbmNxCSVyZGkKLQotCS5wMmFsaWduIDQs LCA0Ci0KLUwoMWEpOgkJCQkJLyogMi1ieXRlIG9uY2UgKi8KLQl0ZXN0Ygkk MiwgJWRsCi0JanoJTCgxYikKLQotCW1vdnp3bAkoJXJzaSksCSVlY3gKLQlt b3Z3CSVjeCwgKCVyZGkpCi0KLQlhZGRxCSQyLCAlcnNpCi0JYWRkcQkkMiwg JXJkaQotCi0JLnAyYWxpZ24gNCwsIDQKLQotTCgxYik6CQkJCQkvKiA0LWJ5 dGUgb25jZSAqLwotCXRlc3RiCSQ0LCAlZGwKLQlqeglMKDFjKQotCi0JbW92 bAkoJXJzaSksCSVlY3gKLQltb3ZsCSVlY3gsICglcmRpKQotCi0JYWRkcQkk NCwgJXJzaQotCWFkZHEJJDQsICVyZGkKLQotCS5wMmFsaWduIDQsLCA0Ci0K LUwoMWMpOgkJCQkJLyogOC1ieXRlIG9uY2UgKi8KLQl0ZXN0YgkkOCwgJWRs Ci0JanoJTCgxZCkKLQotCW1vdnEJKCVyc2kpLCAlcmN4Ci0JbW92cQklcmN4 LCAoJXJkaSkKLQotCWFkZHEJJDgsICVyc2kKLQlhZGRxCSQ4LCAlcmRpCi0K LQkucDJhbGlnbiA0LCwgNAotCi1MKDFkKToJCQkJCS8qIDE2LWJ5dGUgbG9v cCAqLwotCWFuZGwJJDB4ZjAsICVlZHgKLQlqeglMKGV4aXQpCi0KLQkucDJh bGlnbiA0Ci0KLUwoMWxvb3ApOgotCW1vdnEJICglcnNpKSwgJXJjeAotCW1v dnEJOCglcnNpKSwgJXI4Ci0JbW92cQklcmN4LCAgKCVyZGkpCi0JbW92cQkg JXI4LCA4KCVyZGkpCi0KLQlzdWJsCSQxNiwgJWVkeAotCi0JbGVhcQkxNigl cnNpKSwgJXJzaQotCWxlYXEJMTYoJXJkaSksICVyZGkKLQotCWpueglMKDFs b29wKQotCi0JLnAyYWxpZ24gNCwsIDQKLQotTChleGl0KToJCQkJLyogZXhp dCAqLwotI2lmZGVmIFVTRV9BU19NRU1QQ1BZCi0JbW92cQklcmRpLCAlcmF4 CQkvKiByZXR1cm4gdmFsdWUgKi8KLSNlbHNlCi0JcmVwCi0jZW5kaWYKLQly ZXRxCi0KLQkucDJhbGlnbiA0Ci0KLUwoMWFmdGVyKToKLSNpZm5kZWYgVVNF X0FTX01FTVBDUFkKLQltb3ZxCSVyYXgsIFJFVFZBTCglcnNwKQkvKiBzYXZl IHJldHVybiB2YWx1ZSAqLwotI2VuZGlmCi0KLS8qIEFsaWduIHRvIHRoZSBu YXR1cmFsIHdvcmQgc2l6ZS4gKi8KLQotTChhbGlnbnRyeSk6Ci0JbW92bAkl ZXNpLCAlZWN4ICAgICAgCS8qIGFsaWduIGJ5IHNvdXJjZSAqLwotCi0JYW5k bAkkNywgJWVjeAotCWp6CUwoYWxpZ25hZnRlcikgIAkJLyogYWxyZWFkeSBh bGlnbmVkICovCi0KLUwoYWxpZ24pOgkJICAgICAgCQkvKiBhbGlnbiAqLwot CWxlYXEJLTgoJXJjeCwgJXJkeCksICVyZHgJLyogY2FsY3VsYXRlIHJlbWFp bmluZyBieXRlcyAqLwotCXN1YmwJJDgsICVlY3gKLQotCS5wMmFsaWduIDQK LQotTChhbGlnbmxvb3ApOgkJCQkvKiAxLWJ5dGUgYWxpZ25tZW50IGxvb3Ag Ki8KLQltb3Z6YmwJKCVyc2kpLCAlZWF4Ci0JbW92YgklYWwsICglcmRpKQot Ci0JaW5jbAklZWN4Ci0KLQlsZWFxCTEoJXJzaSksICVyc2kKLQlsZWFxCTEo JXJkaSksICVyZGkKLQotCWpueglMKGFsaWdubG9vcCkKLQotCS5wMmFsaWdu IDQKLQotTChhbGlnbmFmdGVyKToKLQotLyogSGFuZGxlIG1pZC1zaXplZCBi bG9ja3MuICovCi0KLUwoMzJ0cnkpOgkJCQkvKiB1cCB0byAxS0IgKi8KLQlj bXBxCSQxMDI0LCAlcmR4Ci0JamEJTCgzMmFmdGVyKQotCi1MKDMyKToJCQkJ CS8qIDMyLWJ5dGUgbG9vcCAqLwotCW1vdmwJJWVkeCwgJWVjeAotCXNocmwJ JDUsICVlY3gKLQlqeglMKDMyc2tpcCkKLQotCS5wMmFsaWduIDQKLQotTCgz Mmxvb3ApOgotCWRlY2wJJWVjeAotCi0JbW92cQkgICglcnNpKSwgJXJheAot CW1vdnEJIDgoJXJzaSksICVyOAotCW1vdnEJMTYoJXJzaSksICVyOQotCW1v dnEJMjQoJXJzaSksICVyMTAKLQotCW1vdnEJJXJheCwgICAoJXJkaSkKLQlt b3ZxCSAlcjgsICA4KCVyZGkpCi0JbW92cQkgJXI5LCAxNiglcmRpKQotCW1v dnEJJXIxMCwgMjQoJXJkaSkKLQotCWxlYXEJMzIoJXJzaSksICVyc2kKLQls ZWFxCTMyKCVyZGkpLCAlcmRpCi0KLQlqeglMKDMyc2tpcCkJCS8qIGhlbHAg b3V0IHNtYWxsZXIgYmxvY2tzICovCi0KLQlkZWNsCSVlY3gKLQotCW1vdnEJ ICAoJXJzaSksICVyYXgKLQltb3ZxCSA4KCVyc2kpLCAlcjgKLQltb3ZxCTE2 KCVyc2kpLCAlcjkKLQltb3ZxCTI0KCVyc2kpLCAlcjEwCi0KLQltb3ZxCSVy YXgsICAgKCVyZGkpCi0JbW92cQkgJXI4LCAgOCglcmRpKQotCW1vdnEJICVy OSwgMTYoJXJkaSkKLQltb3ZxCSVyMTAsIDI0KCVyZGkpCi0KLQlsZWFxCTMy KCVyc2kpLCAlcnNpCi0JbGVhcQkzMiglcmRpKSwgJXJkaQotCi0Jam56CUwo MzJsb29wKQotCi0JLnAyYWxpZ24gNAotCi1MKDMyc2tpcCk6Ci0JYW5kbAkk MzEsICVlZHgJCS8qIGNoZWNrIGZvciBsZWZ0IG92ZXJzICovCi0jaWZkZWYg VVNFX0FTX01FTVBDUFkKLQlqbnoJTCgxKQotCi0JbW92cQklcmRpLCAlcmF4 Ci0jZWxzZQotCW1vdnEJUkVUVkFMKCVyc3ApLCAlcmF4Ci0Jam56CUwoMSkK LQotCXJlcAotI2VuZGlmCi0JcmV0cQkJCQkvKiBleGl0ICovCi0KLQkucDJh bGlnbiA0Ci0KLUwoMzJhZnRlcik6Ci0KLS8qCi0JSW4gb3JkZXIgdG8gbWlu aW1pemUgY29kZS1zaXplIGluIFJUTEQsIGFsZ29yaXRobXMgc3BlY2lmaWMg Zm9yCi0JbGFyZ2VyIGJsb2NrcyBhcmUgZXhjbHVkZWQgd2hlbiBidWlsZGlu ZyBmb3IgUlRMRC4KLSovCi0KLS8qIEhhbmRsZSBibG9ja3Mgc21hbGxlciB0 aGFuIDEvMiBMMS4gKi8KLQotTChmYXN0dHJ5KToJCQkJLyogZmlyc3QgMS8y IEwxICovCi0jaWYgSVNfSU4gKGxpYmMpCQkJLyogb25seSB1cCB0byB0aGlz IGFsZ29yaXRobSBvdXRzaWRlIG9mIGxpYmMuc28gKi8KLQltb3YJX194ODZf ZGF0YV9jYWNoZV9zaXplX2hhbGYoJXJpcCksICVSMTFfTFAKLQljbXBxCSVy ZHgsICVyMTEJCS8qIGNhbGN1bGF0ZSB0aGUgc21hbGxlciBvZiAqLwotCWNt b3ZhcQklcmR4LCAlcjExCQkvKiByZW1haW5pbmcgYnl0ZXMgYW5kIDEvMiBM MSAqLwotI2VuZGlmCi0KLUwoZmFzdCk6CQkJCS8qIGdvb2Qgb2wnIE1PVlMg Ki8KLSNpZiBJU19JTiAobGliYykKLQltb3ZxCSVyMTEsICVyY3gKLQlhbmRx CSQtOCwgJXIxMQotI2Vsc2UKLQltb3ZxCSVyZHgsICVyY3gKLSNlbmRpZgot CXNocnEJJDMsICVyY3gKLQlqeglMKGZhc3Rza2lwKQotCi0JcmVwCi0JbW92 c3EKLQotCS5wMmFsaWduIDQsLCA0Ci0KLUwoZmFzdHNraXApOgotI2lmIElT X0lOIChsaWJjKQotCXN1YnEJJXIxMSwgJXJkeAkJLyogY2hlY2sgZm9yIG1v cmUgKi8KLQl0ZXN0cQkkLTgsICVyZHgKLQlqbnoJTChmYXN0YWZ0ZXIpCi0j ZW5kaWYKLQotCWFuZGwJJDcsICVlZHgJCS8qIGNoZWNrIGZvciBsZWZ0IG92 ZXJzICovCi0jaWZkZWYgVVNFX0FTX01FTVBDUFkKLQlqbnoJTCgxKQotCi0J bW92cQklcmRpLCAlcmF4Ci0jZWxzZQotCW1vdnEJUkVUVkFMKCVyc3ApLCAl cmF4Ci0Jam56CUwoMSkKLQotCXJlcAotI2VuZGlmCi0JcmV0cQkJCQkvKiBl eGl0ICovCi0KLSNpZiBJU19JTiAobGliYykJCQkvKiBub25lIG9mIHRoZSBh bGdvcml0aG1zIGJlbG93IGZvciBSVExEICovCi0KLQkucDJhbGlnbiA0Ci0K LUwoZmFzdGFmdGVyKToKLQotLyogSGFuZGxlIGxhcmdlIGJsb2NrcyBzbWFs bGVyIHRoYW4gMS8yIEwyLiAqLwotCi1MKHByZXRyeSk6CQkJCS8qIGZpcnN0 IDEvMiBMMiAqLwotCW1vdglfX3g4Nl9zaGFyZWRfY2FjaGVfc2l6ZV9oYWxm ICglcmlwKSwgJVI4X0xQCi0JY21wcQklcmR4LCAlcjgJCS8qIGNhbGN1bGF0 ZSB0aGUgbGVzc2VyIG9mICovCi0JY21vdmFxCSVyZHgsICVyOAkJLyogcmVt YWluaW5nIGJ5dGVzIGFuZCAxLzIgTDIgKi8KLQotTChwcmUpOgkJCQkJLyog NjQtYnl0ZSB3aXRoIHByZWZldGNoaW5nICovCi0JbW92cQklcjgsICVyY3gK LQlhbmRxCSQtNjQsICVyOAotCXNocnEJJDYsICVyY3gKLQlqeglMKHByZXNr aXApCi0KLQltb3ZxCSVyMTQsIFNBVkUwKCVyc3ApCi0JY2ZpX3JlbF9vZmZz ZXQgKCVyMTQsIFNBVkUwKQotCW1vdnEJJXIxMywgU0FWRTEoJXJzcCkKLQlj ZmlfcmVsX29mZnNldCAoJXIxMywgU0FWRTEpCi0JbW92cQklcjEyLCBTQVZF MiglcnNwKQotCWNmaV9yZWxfb2Zmc2V0ICglcjEyLCBTQVZFMikKLQltb3Zx CSVyYngsIFNBVkUzKCVyc3ApCi0JY2ZpX3JlbF9vZmZzZXQgKCVyYngsIFNB VkUzKQotCi0JY21wbAkkMCwgX194ODZfcHJlZmV0Y2h3KCVyaXApCi0JanoJ TChwcmVsb29wKQkJLyogY2hlY2sgaWYgUFJFRkVUQ0hXIE9LICovCi0KLQku cDJhbGlnbiA0Ci0KLS8qIC4uLiB3aGVuIFBSRUZFVENIVyBpcyBhdmFpbGFi bGUgKGxlc3MgY2FjaGUtcHJvYmUgdHJhZmZpYyBpbiBNUCBzeXN0ZW1zKS4g Ki8KLQotTChwcmV3bG9vcCk6CQkJCS8qIGNhY2hlLWxpbmUgaW4gc3RhdGUg TSAqLwotCWRlY3EJJXJjeAotCi0JbW92cQkgICAoJXJzaSksICVyYXgKLQlt b3ZxCSA4ICglcnNpKSwgJXJieAotCW1vdnEJMTYgKCVyc2kpLCAlcjkKLQlt b3ZxCTI0ICglcnNpKSwgJXIxMAotCW1vdnEJMzIgKCVyc2kpLCAlcjExCi0J bW92cQk0MCAoJXJzaSksICVyMTIKLQltb3ZxCTQ4ICglcnNpKSwgJXIxMwot CW1vdnEJNTYgKCVyc2kpLCAlcjE0Ci0KLQlwcmVmZXRjaHQwCSAwICsgODk2 ICglcnNpKQotCXByZWZldGNodDAJNjQgKyA4OTYgKCVyc2kpCi0KLQltb3Zx CSVyYXgsICAgKCVyZGkpCi0JbW92cQklcmJ4LCAgOCglcmRpKQotCW1vdnEJ ICVyOSwgMTYoJXJkaSkKLQltb3ZxCSVyMTAsIDI0KCVyZGkpCi0JbW92cQkl cjExLCAzMiglcmRpKQotCW1vdnEJJXIxMiwgNDAoJXJkaSkKLQltb3ZxCSVy MTMsIDQ4KCVyZGkpCi0JbW92cQklcjE0LCA1NiglcmRpKQotCi0JbGVhcQk2 NCglcnNpKSwgJXJzaQotCWxlYXEJNjQoJXJkaSksICVyZGkKLQotCWp6CUwo cHJlYmFpbCkKLQotCWRlY3EJJXJjeAotCi0JbW92cQkgICglcnNpKSwgJXJh eAotCW1vdnEJIDgoJXJzaSksICVyYngKLQltb3ZxCTE2KCVyc2kpLCAlcjkK LQltb3ZxCTI0KCVyc2kpLCAlcjEwCi0JbW92cQkzMiglcnNpKSwgJXIxMQot CW1vdnEJNDAoJXJzaSksICVyMTIKLQltb3ZxCTQ4KCVyc2kpLCAlcjEzCi0J bW92cQk1NiglcnNpKSwgJXIxNAotCi0JbW92cQklcmF4LCAgICglcmRpKQot CW1vdnEJJXJieCwgIDgoJXJkaSkKLQltb3ZxCSAlcjksIDE2KCVyZGkpCi0J bW92cQklcjEwLCAyNCglcmRpKQotCW1vdnEJJXIxMSwgMzIoJXJkaSkKLQlt b3ZxCSVyMTIsIDQwKCVyZGkpCi0JbW92cQklcjEzLCA0OCglcmRpKQotCW1v dnEJJXIxNCwgNTYoJXJkaSkKLQotCXByZWZldGNodwk4OTYgLSA2NCglcmRp KQotCXByZWZldGNodwk4OTYgLSAgMCglcmRpKQotCi0JbGVhcQk2NCglcnNp KSwgJXJzaQotCWxlYXEJNjQoJXJkaSksICVyZGkKLQotCWpueglMKHByZXds b29wKQotCWptcAlMKHByZWJhaWwpCi0KLQkucDJhbGlnbiA0Ci0KLS8qIC4u LiB3aGVuIFBSRUZFVENIVyBpcyBub3QgYXZhaWxhYmxlLiAqLwotCi1MKHBy ZWxvb3ApOgkJCQkvKiBjYWNoZS1saW5lIGluIHN0YXRlIEUgKi8KLQlkZWNx CSVyY3gKLQotCW1vdnEJICAoJXJzaSksICVyYXgKLQltb3ZxCSA4KCVyc2kp LCAlcmJ4Ci0JbW92cQkxNiglcnNpKSwgJXI5Ci0JbW92cQkyNCglcnNpKSwg JXIxMAotCW1vdnEJMzIoJXJzaSksICVyMTEKLQltb3ZxCTQwKCVyc2kpLCAl cjEyCi0JbW92cQk0OCglcnNpKSwgJXIxMwotCW1vdnEJNTYoJXJzaSksICVy MTQKLQotCXByZWZldGNodDAJODk2ICsgIDAoJXJzaSkKLQlwcmVmZXRjaHQw CTg5NiArIDY0KCVyc2kpCi0KLQltb3ZxCSVyYXgsICAgKCVyZGkpCi0JbW92 cQklcmJ4LCAgOCglcmRpKQotCW1vdnEJICVyOSwgMTYoJXJkaSkKLQltb3Zx CSVyMTAsIDI0KCVyZGkpCi0JbW92cQklcjExLCAzMiglcmRpKQotCW1vdnEJ JXIxMiwgNDAoJXJkaSkKLQltb3ZxCSVyMTMsIDQ4KCVyZGkpCi0JbW92cQkl cjE0LCA1NiglcmRpKQotCi0JbGVhcQk2NCAoJXJzaSksICVyc2kKLQlsZWFx CTY0ICglcmRpKSwgJXJkaQotCi0JanoJTChwcmViYWlsKQotCi0JZGVjcQkl cmN4Ci0KLQltb3ZxCSAgKCVyc2kpLCAlcmF4Ci0JbW92cQkgOCglcnNpKSwg JXJieAotCW1vdnEJMTYoJXJzaSksICVyOQotCW1vdnEJMjQoJXJzaSksICVy MTAKLQltb3ZxCTMyKCVyc2kpLCAlcjExCi0JbW92cQk0MCglcnNpKSwgJXIx MgotCW1vdnEJNDgoJXJzaSksICVyMTMKLQltb3ZxCTU2KCVyc2kpLCAlcjE0 Ci0KLQlwcmVmZXRjaHQwCTg5NiAtIDY0KCVyZGkpCi0JcHJlZmV0Y2h0MAk4 OTYgLSAgMCglcmRpKQotCi0JbW92cQklcmF4LCAgICglcmRpKQotCW1vdnEJ JXJieCwgIDgoJXJkaSkKLQltb3ZxCSAlcjksIDE2KCVyZGkpCi0JbW92cQkl cjEwLCAyNCglcmRpKQotCW1vdnEJJXIxMSwgMzIoJXJkaSkKLQltb3ZxCSVy MTIsIDQwKCVyZGkpCi0JbW92cQklcjEzLCA0OCglcmRpKQotCW1vdnEJJXIx NCwgNTYoJXJkaSkKLQotCWxlYXEJNjQoJXJzaSksICVyc2kKLQlsZWFxCTY0 KCVyZGkpLCAlcmRpCi0KLQlqbnoJTChwcmVsb29wKQotCi1MKHByZWJhaWwp OgotCW1vdnEJU0FWRTMoJXJzcCksICVyYngKLQljZmlfcmVzdG9yZSAoJXJi eCkKLQltb3ZxCVNBVkUyKCVyc3ApLCAlcjEyCi0JY2ZpX3Jlc3RvcmUgKCVy MTIpCi0JbW92cQlTQVZFMSglcnNwKSwgJXIxMwotCWNmaV9yZXN0b3JlICgl cjEzKQotCW1vdnEJU0FWRTAoJXJzcCksICVyMTQKLQljZmlfcmVzdG9yZSAo JXIxNCkKLQotLyogICAgICAgLnAyYWxpZ24gNCAqLwotCi1MKHByZXNraXAp OgotCXN1YnEJJXI4LCAlcmR4CQkvKiBjaGVjayBmb3IgbW9yZSAqLwotCXRl c3RxCSQtNjQsICVyZHgKLQlqbnoJTChwcmVhZnRlcikKLQotCWFuZGwJJDYz LCAlZWR4CQkvKiBjaGVjayBmb3IgbGVmdCBvdmVycyAqLwotI2lmZGVmIFVT RV9BU19NRU1QQ1BZCi0Jam56CUwoMSkKLQotCW1vdnEJJXJkaSwgJXJheAot I2Vsc2UKLQltb3ZxCVJFVFZBTCglcnNwKSwgJXJheAotCWpueglMKDEpCi0K LQlyZXAKLSNlbmRpZgotCXJldHEJCQkJLyogZXhpdCAqLwotCi0JLnAyYWxp Z24gNAotCi1MKHByZWFmdGVyKToKLQotLyogSGFuZGxlIGh1Z2UgYmxvY2tz LiAqLwotCi1MKE5UdHJ5KToKLQotTChOVCk6CQkJCQkvKiBub24tdGVtcG9y YWwgMTI4LWJ5dGUgKi8KLQltb3ZxCSVyZHgsICVyY3gKLQlzaHJxCSQ3LCAl cmN4Ci0JanoJTChOVHNraXApCi0KLQltb3ZxCSVyMTQsIFNBVkUwKCVyc3Ap Ci0JY2ZpX3JlbF9vZmZzZXQgKCVyMTQsIFNBVkUwKQotCW1vdnEJJXIxMywg U0FWRTEoJXJzcCkKLQljZmlfcmVsX29mZnNldCAoJXIxMywgU0FWRTEpCi0J bW92cQklcjEyLCBTQVZFMiglcnNwKQotCWNmaV9yZWxfb2Zmc2V0ICglcjEy LCBTQVZFMikKLQotICAgICAgIC5wMmFsaWduIDQKLQotTChOVGxvb3ApOgot CXByZWZldGNobnRhCTc2OCglcnNpKQotCXByZWZldGNobnRhCTgzMiglcnNp KQotCi0JZGVjcQklcmN4Ci0KLQltb3ZxCSAgKCVyc2kpLCAlcmF4Ci0JbW92 cQkgOCglcnNpKSwgJXI4Ci0JbW92cQkxNiglcnNpKSwgJXI5Ci0JbW92cQky NCglcnNpKSwgJXIxMAotCW1vdnEJMzIoJXJzaSksICVyMTEKLQltb3ZxCTQw KCVyc2kpLCAlcjEyCi0JbW92cQk0OCglcnNpKSwgJXIxMwotCW1vdnEJNTYo JXJzaSksICVyMTQKLQotCW1vdm50aXEJJXJheCwgICAoJXJkaSkKLQltb3Zu dGlxCSAlcjgsICA4KCVyZGkpCi0JbW92bnRpcQkgJXI5LCAxNiglcmRpKQot CW1vdm50aXEJJXIxMCwgMjQoJXJkaSkKLQltb3ZudGlxCSVyMTEsIDMyKCVy ZGkpCi0JbW92bnRpcQklcjEyLCA0MCglcmRpKQotCW1vdm50aXEJJXIxMywg NDgoJXJkaSkKLQltb3ZudGlxCSVyMTQsIDU2KCVyZGkpCi0KLQltb3ZxCSA2 NCglcnNpKSwgJXJheAotCW1vdnEJIDcyKCVyc2kpLCAlcjgKLQltb3ZxCSA4 MCglcnNpKSwgJXI5Ci0JbW92cQkgODgoJXJzaSksICVyMTAKLQltb3ZxCSA5 NiglcnNpKSwgJXIxMQotCW1vdnEJMTA0KCVyc2kpLCAlcjEyCi0JbW92cQkx MTIoJXJzaSksICVyMTMKLQltb3ZxCTEyMCglcnNpKSwgJXIxNAotCi0JbW92 bnRpcQklcmF4LCAgNjQoJXJkaSkKLQltb3ZudGlxCSAlcjgsICA3MiglcmRp KQotCW1vdm50aXEJICVyOSwgIDgwKCVyZGkpCi0JbW92bnRpcQklcjEwLCAg ODgoJXJkaSkKLQltb3ZudGlxCSVyMTEsICA5NiglcmRpKQotCW1vdm50aXEJ JXIxMiwgMTA0KCVyZGkpCi0JbW92bnRpcQklcjEzLCAxMTIoJXJkaSkKLQlt b3ZudGlxCSVyMTQsIDEyMCglcmRpKQotCi0JbGVhcQkxMjgoJXJzaSksICVy c2kKLQlsZWFxCTEyOCglcmRpKSwgJXJkaQotCi0Jam56CUwoTlRsb29wKQot Ci0Jc2ZlbmNlCQkJCS8qIHNlcmlhbGl6ZSBtZW1vcnkgc3RvcmVzICovCi0K LQltb3ZxCVNBVkUyKCVyc3ApLCAlcjEyCi0JY2ZpX3Jlc3RvcmUgKCVyMTIp Ci0JbW92cQlTQVZFMSglcnNwKSwgJXIxMwotCWNmaV9yZXN0b3JlICglcjEz KQotCW1vdnEJU0FWRTAoJXJzcCksICVyMTQKLQljZmlfcmVzdG9yZSAoJXIx NCkKLQotTChOVHNraXApOgotCWFuZGwJJDEyNywgJWVkeAkJLyogY2hlY2sg Zm9yIGxlZnQgb3ZlcnMgKi8KLSNpZmRlZiBVU0VfQVNfTUVNUENQWQotCWpu eglMKDEpCi0KLQltb3ZxCSVyZGksICVyYXgKLSNlbHNlCi0JbW92cQlSRVRW QUwoJXJzcCksICVyYXgKLQlqbnoJTCgxKQotCi0JcmVwCi0jZW5kaWYKLQly ZXRxCQkJCS8qIGV4aXQgKi8KLQotI2VuZGlmIC8qIElTX0lOIChsaWJjKSAq LwotCi1FTkQobWVtY3B5KQotCi0jaWZuZGVmIFVTRV9BU19NRU1QQ1BZCi1s aWJjX2hpZGRlbl9idWlsdGluX2RlZiAobWVtY3B5KQotIyBpZiBkZWZpbmVk IFNIQVJFRCAmJiAhZGVmaW5lZCBVU0VfTVVMVElBUkNIICYmIElTX0lOIChs aWJjKQotIyAgdW5kZWYgbWVtY3B5Ci0jICBpbmNsdWRlIDxzaGxpYi1jb21w YXQuaD4KLXZlcnNpb25lZF9zeW1ib2wgKGxpYmMsIF9fbWVtY3B5LCBtZW1j cHksIEdMSUJDXzJfMTQpOwotIyBlbmRpZgotI2VuZGlmCisvKiBJbXBsZW1l bnRlZCBpbiBtZW1jcHkuUy4gICovCmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4 Nl82NC9tZW1tb3ZlLlMgYi9zeXNkZXBzL3g4Nl82NC9tZW1tb3ZlLlMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTdhZTQ1MwotLS0g L2Rldi9udWxsCisrKyBiL3N5c2RlcHMveDg2XzY0L21lbW1vdmUuUwpAQCAt MCwwICsxLDcxIEBACisvKiBPcHRpbWl6ZWQgbWVtbW92ZSBmb3IgeDg2LTY0 LgorICAgQ29weXJpZ2h0IChDKSAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBD IExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIu MSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor ICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBh bG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1 ZGUgPHN5c2RlcC5oPgorCisjZGVmaW5lIFZFQ19TSVpFCTE2CisjZGVmaW5l IFZFQyhpKQkJeG1tIyNpCisjZGVmaW5lIFBSRUZFVENITlQJcHJlZmV0Y2hu dGEKKyNkZWZpbmUgVk1PVk5UCQltb3ZudGRxCisvKiBVc2UgbW92dXBzIGFu ZCBtb3ZhcHMgZm9yIHNtYWxsZXIgY29kZSBzaXplcy4gICovCisjZGVmaW5l IFZNT1ZVCQltb3Z1cHMKKyNkZWZpbmUgVk1PVkEJCW1vdmFwcworCisjZGVm aW5lIFNFQ1RJT04ocCkJCXAKKworI2lmZGVmIFVTRV9NVUxUSUFSQ0gKKyMg aWYgIWRlZmluZWQgU0hBUkVEIHx8ICFJU19JTiAobGliYykKKyMgIGRlZmlu ZSBNRU1DUFlfU1lNQk9MKHAscykJCW1lbWNweQorIyBlbmRpZgorI2Vsc2UK KyMgaWYgZGVmaW5lZCBTSEFSRUQgJiYgSVNfSU4gKGxpYmMpCisjICBkZWZp bmUgTUVNQ1BZX1NZTUJPTChwLHMpCQlfX21lbWNweQorIyBlbHNlCisjICBk ZWZpbmUgTUVNQ1BZX1NZTUJPTChwLHMpCQltZW1jcHkKKyMgZW5kaWYKKyNl bmRpZgorI2lmICFkZWZpbmVkIFNIQVJFRCB8fCAhZGVmaW5lZCBVU0VfTVVM VElBUkNIIHx8ICFJU19JTiAobGliYykKKyMgZGVmaW5lIE1FTVBDUFlfU1lN Qk9MKHAscykJCV9fbWVtcGNweQorI2VuZGlmCisjaWZuZGVmIE1FTU1PVkVf U1lNQk9MCisjIGRlZmluZSBNRU1NT1ZFX0NIS19TWU1CT0wocCxzKQlwCisj IGRlZmluZSBNRU1NT1ZFX1NZTUJPTChwLHMpCQltZW1tb3ZlCisjZW5kaWYK KworI2luY2x1ZGUgIm11bHRpYXJjaC9tZW1tb3ZlLXZlYy11bmFsaWduZWQt ZXJtcy5TIgorCisjaWZuZGVmIFVTRV9NVUxUSUFSQ0gKK2xpYmNfaGlkZGVu X2J1aWx0aW5fZGVmIChtZW1tb3ZlKQorIyBpZiBkZWZpbmVkIFNIQVJFRCAm JiBJU19JTiAobGliYykKK3N0cm9uZ19hbGlhcyAobWVtbW92ZSwgX19tZW1j cHkpCitsaWJjX2hpZGRlbl92ZXIgKG1lbW1vdmUsIG1lbWNweSkKKyMgZW5k aWYKK2xpYmNfaGlkZGVuX2RlZiAoX19tZW1wY3B5KQord2Vha19hbGlhcyAo X19tZW1wY3B5LCBtZW1wY3B5KQorbGliY19oaWRkZW5fYnVpbHRpbl9kZWYg KG1lbXBjcHkpCisKKyMgaWYgZGVmaW5lZCBTSEFSRUQgJiYgSVNfSU4gKGxp YmMpCisjICB1bmRlZiBtZW1jcHkKKyMgIGluY2x1ZGUgPHNobGliLWNvbXBh dC5oPgordmVyc2lvbmVkX3N5bWJvbCAobGliYywgX19tZW1jcHksIG1lbWNw eSwgR0xJQkNfMl8xNCk7CisKKyMgIGlmIFNITElCX0NPTVBBVCAobGliYywg R0xJQkNfMl8yXzUsIEdMSUJDXzJfMTQpCitjb21wYXRfc3ltYm9sIChsaWJj LCBtZW1tb3ZlLCBtZW1jcHksIEdMSUJDXzJfMl81KTsKKyMgIGVuZGlmCisj IGVuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L21l bW1vdmUuYyBiL3N5c2RlcHMveDg2XzY0L21lbW1vdmUuYwpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDdmODE4NS4uMDAwMDAwMAotLS0gYS9z eXNkZXBzL3g4Nl82NC9tZW1tb3ZlLmMKKysrIC9kZXYvbnVsbApAQCAtMSwy NiArMCwwIEBACi0vKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNiBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSAgIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgotCi0gICBUaGUgR05VIEMgTGlicmFy eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKLSAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAgIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot ICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgIFRoZSBHTlUgQyBMaWJy YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCi0gICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUKLSAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCi0KLSAgIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK LSAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYg bm90LCBzZWUKLSAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCi0KLSNpbmNsdWRlICJzdHJpbmcvbWVtbW92ZS5jIgotCi0jaWYgIWRl ZmluZWQgbWVtbW92ZSAmJiBJU19JTiAobGliYykKLSNpbmNsdWRlIDxzaGxp Yi1jb21wYXQuaD4KLQotI2lmIFNITElCX0NPTVBBVCAobGliYywgR0xJQkNf Ml8yXzUsIEdMSUJDXzJfMTQpCi1jb21wYXRfc3ltYm9sIChsaWJjLCBtZW1t b3ZlLCBtZW1jcHksIEdMSUJDXzJfMl81KTsKLSNlbmRpZgotI2VuZGlmCmRp ZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tZW1tb3ZlX2Noay5TIGIvc3lz ZGVwcy94ODZfNjQvbWVtbW92ZV9jaGsuUwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5lZTE1NGYxCi0tLSAvZGV2L251bGwKKysrIGIv c3lzZGVwcy94ODZfNjQvbWVtbW92ZV9jaGsuUwpAQCAtMCwwICsxLDMzIEBA CisvKiBDaGVja2luZyBtZW1tb3ZlIGZvciB4ODYtNjQuCisgICBDb3B5cmln aHQgKEMpIDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisg ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKwor ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNl bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor CisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhl IEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisjaW5jbHVkZSA8c3lzZGVwLmg+ CisjaW5jbHVkZSAiYXNtLXN5bnRheC5oIgorCisjaWZuZGVmIFNIQVJFRAor CS8qIEZvciBsaWJjLnNvIHRoaXMgaXMgZGVmaW5lZCBpbiBtZW1tb3ZlLlMu CisJICAgRm9yIGxpYmMuYSwgdGhpcyBpcyBhIHNlcGFyYXRlIHNvdXJjZSB0 byBhdm9pZAorCSAgIG1lbW1vdmUgYnJpbmdpbmcgaW4gX19jaGtfZmFpbCBh bmQgYWxsIHJvdXRpbmVzCisJICAgaXQgY2FsbHMuICAqLworICAgICAgICAu dGV4dAorRU5UUlkgKF9fbWVtbW92ZV9jaGspCisJY21wcQklcmR4LCAlcmN4 CisJamIJX19jaGtfZmFpbAorCWptcAltZW1tb3ZlCitFTkQgKF9fbWVtbW92 ZV9jaGspCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L21l bXBjcHkuUyBiL3N5c2RlcHMveDg2XzY0L21lbXBjcHkuUwppbmRleCBhY2Vl NWU1Li5kOTg1MDBhIDEwMDY0NAotLS0gYS9zeXNkZXBzL3g4Nl82NC9tZW1w Y3B5LlMKKysrIGIvc3lzZGVwcy94ODZfNjQvbWVtcGNweS5TCkBAIC0xLDgg KzEgQEAKLSNkZWZpbmUgVVNFX0FTX01FTVBDUFkKLSNkZWZpbmUgbWVtY3B5 IF9fbWVtcGNweQotI2RlZmluZSBfX21lbWNweV9jaGsgX19tZW1wY3B5X2No awotI2luY2x1ZGUgPHN5c2RlcHMveDg2XzY0L21lbWNweS5TPgotCi1saWJj X2hpZGRlbl9kZWYgKF9fbWVtcGNweSkKLXdlYWtfYWxpYXMgKF9fbWVtcGNw eSwgbWVtcGNweSkKLWxpYmNfaGlkZGVuX2J1aWx0aW5fZGVmIChtZW1wY3B5 KQorLyogSW1wbGVtZW50ZWQgaW4gbWVtY3B5LlMuICAqLwpkaWZmIC0tZ2l0 IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL01ha2VmaWxlIGIvc3lzZGVw cy94ODZfNjQvbXVsdGlhcmNoL01ha2VmaWxlCmluZGV4IGQ3OGU2NjcuLjM3 MzZmNTQgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9N YWtlZmlsZQorKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvTWFrZWZp bGUKQEAgLTYsMTAgKzYsOSBAQCBpZmVxICgkKHN1YmRpciksc3RyaW5nKQog CiBzeXNkZXBfcm91dGluZXMgKz0gc3RybmNhdC1jIHN0cG5jcHktYyBzdHJu Y3B5LWMgc3RyY21wLXNzc2UzIFwKIAkJICAgc3RyY21wLXNzZTItdW5hbGln bmVkIHN0cm5jbXAtc3NzZTMgXAotCQkgICBtZW1jbXAtc3NlNCBtZW1jcHkt c3NzZTMgbWVtY3B5LXNzZTItdW5hbGlnbmVkIFwKKwkJICAgbWVtY21wLXNz ZTQgbWVtY3B5LXNzc2UzIFwKIAkJICAgbWVtbW92ZS1zc3NlMyBcCi0JCSAg IG1lbWNweS1zc3NlMy1iYWNrIG1lbW1vdmUtYXZ4LXVuYWxpZ25lZCBcCi0J CSAgIG1lbWNweS1hdngtdW5hbGlnbmVkIFwKKwkJICAgbWVtY3B5LXNzc2Uz LWJhY2sgXAogCQkgICBtZW1tb3ZlLXNzc2UzLWJhY2sgXAogCQkgICBtZW1t b3ZlLWF2eDUxMi1uby12emVyb3VwcGVyIHN0cmNhc2VjbXBfbC1zc3NlMyBc CiAJCSAgIHN0cm5jYXNlX2wtc3NzZTMgc3RyY2F0LXNzc2UzIHN0cm5jYXQt c3NzZTNcCkBAIC0yMCw3ICsxOSw2IEBAIHN5c2RlcF9yb3V0aW5lcyArPSBz dHJuY2F0LWMgc3RwbmNweS1jIHN0cm5jcHktYyBzdHJjbXAtc3NzZTMgXAog CQkgICBzdHJjaHItc3NlMi1uby1ic2YgbWVtY21wLXNzc2UzIHN0cnN0ci1z c2UyLXVuYWxpZ25lZCBcCiAJCSAgIHN0cmNzcG4tYyBzdHJwYnJrLWMgc3Ry c3BuLWMgdmFyc2hpZnQgXAogCQkgICBtZW1zZXQtYXZ4NTEyLW5vLXZ6ZXJv dXBwZXIgXAotCQkgICBtZW1tb3ZlLXNzZTItdW5hbGlnbmVkLWVybXMgXAog CQkgICBtZW1tb3ZlLWF2eC11bmFsaWduZWQtZXJtcyBcCiAJCSAgIG1lbW1v dmUtYXZ4NTEyLXVuYWxpZ25lZC1lcm1zIFwKIAkJICAgbWVtc2V0LWF2eDIt dW5hbGlnbmVkLWVybXMgXApkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQv bXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jIGIvc3lzZGVwcy94ODZfNjQv bXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCmluZGV4IGNhMDVmZjYuLjQ0 OWIwNDYgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9p ZnVuYy1pbXBsLWxpc3QuYworKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFy Y2gvaWZ1bmMtaW1wbC1saXN0LmMKQEAgLTU0LDcgKzU0LDcgQEAgX19saWJj X2lmdW5jX2ltcGxfbGlzdCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxp YmNfaWZ1bmNfaW1wbCAqYXJyYXksCiAJCQkgICAgICBfX21lbW1vdmVfY2hr X2F2eDUxMl9ub192emVyb3VwcGVyKQogCSAgICAgIElGVU5DX0lNUExfQURE IChhcnJheSwgaSwgX19tZW1tb3ZlX2NoaywKIAkJCSAgICAgIEhBU19BUkNI X0ZFQVRVUkUgKEFWWDUxMkZfVXNhYmxlKSwKLQkJCSAgICAgIF9fbWVtbW92 ZV9jaGtfYXZ4NTEyX3VuYWxpZ25lZF8yKQorCQkJICAgICAgX19tZW1tb3Zl X2Noa19hdng1MTJfdW5hbGlnbmVkKQogCSAgICAgIElGVU5DX0lNUExfQURE IChhcnJheSwgaSwgX19tZW1tb3ZlX2NoaywKIAkJCSAgICAgIEhBU19BUkNI X0ZFQVRVUkUgKEFWWDUxMkZfVXNhYmxlKSwKIAkJCSAgICAgIF9fbWVtbW92 ZV9jaGtfYXZ4NTEyX3VuYWxpZ25lZF9lcm1zKQpAQCAtNjQsOSArNjQsNiBA QCBfX2xpYmNfaWZ1bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBz dHJ1Y3QgbGliY19pZnVuY19pbXBsICphcnJheSwKIAkJCSAgICAgIF9fbWVt bW92ZV9jaGtfYXZ4X3VuYWxpZ25lZCkKIAkgICAgICBJRlVOQ19JTVBMX0FE RCAoYXJyYXksIGksIF9fbWVtbW92ZV9jaGssCiAJCQkgICAgICBIQVNfQVJD SF9GRUFUVVJFIChBVlhfVXNhYmxlKSwKLQkJCSAgICAgIF9fbWVtbW92ZV9j aGtfYXZ4X3VuYWxpZ25lZF8yKQotCSAgICAgIElGVU5DX0lNUExfQUREIChh cnJheSwgaSwgX19tZW1tb3ZlX2NoaywKLQkJCSAgICAgIEhBU19BUkNIX0ZF QVRVUkUgKEFWWF9Vc2FibGUpLAogCQkJICAgICAgX19tZW1tb3ZlX2Noa19h dnhfdW5hbGlnbmVkX2VybXMpCiAJICAgICAgSUZVTkNfSU1QTF9BREQgKGFy cmF5LCBpLCBfX21lbW1vdmVfY2hrLAogCQkJICAgICAgSEFTX0NQVV9GRUFU VVJFIChTU1NFMyksCkBAIC03NSwxMSArNzIsOSBAQCBfX2xpYmNfaWZ1bmNf aW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVu Y19pbXBsICphcnJheSwKIAkJCSAgICAgIEhBU19DUFVfRkVBVFVSRSAoU1NT RTMpLAogCQkJICAgICAgX19tZW1tb3ZlX2Noa19zc3NlMykKIAkgICAgICBJ RlVOQ19JTVBMX0FERCAoYXJyYXksIGksIF9fbWVtbW92ZV9jaGssIDEsCi0J CQkgICAgICBfX21lbW1vdmVfY2hrX3NzZTJfdW5hbGlnbmVkXzIpCisJCQkg ICAgICBfX21lbW1vdmVfY2hrX3NzZTJfdW5hbGlnbmVkKQogCSAgICAgIElG VU5DX0lNUExfQUREIChhcnJheSwgaSwgX19tZW1tb3ZlX2NoaywgMSwKLQkJ CSAgICAgIF9fbWVtbW92ZV9jaGtfc3NlMl91bmFsaWduZWRfZXJtcykKLQkg ICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGksIF9fbWVtbW92ZV9jaGss IDEsCi0JCQkgICAgICBfX21lbW1vdmVfY2hrX3NzZTIpKQorCQkJICAgICAg X19tZW1tb3ZlX2Noa19zc2UyX3VuYWxpZ25lZF9lcm1zKSkKIAogICAvKiBT dXBwb3J0IHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9tZW1tb3ZlLlMuICAq LwogICBJRlVOQ19JTVBMIChpLCBuYW1lLCBtZW1tb3ZlLApAQCAtODgsOSAr ODMsNiBAQCBfX2xpYmNfaWZ1bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpu YW1lLCBzdHJ1Y3QgbGliY19pZnVuY19pbXBsICphcnJheSwKIAkJCSAgICAg IF9fbWVtbW92ZV9hdnhfdW5hbGlnbmVkKQogCSAgICAgIElGVU5DX0lNUExf QUREIChhcnJheSwgaSwgbWVtbW92ZSwKIAkJCSAgICAgIEhBU19BUkNIX0ZF QVRVUkUgKEFWWF9Vc2FibGUpLAotCQkJICAgICAgX19tZW1tb3ZlX2F2eF91 bmFsaWduZWRfMikKLQkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGks IG1lbW1vdmUsCi0JCQkgICAgICBIQVNfQVJDSF9GRUFUVVJFIChBVlhfVXNh YmxlKSwKIAkJCSAgICAgIF9fbWVtbW92ZV9hdnhfdW5hbGlnbmVkX2VybXMp CiAjaWZkZWYgSEFWRV9BVlg1MTJfQVNNX1NVUFBPUlQKIAkgICAgICBJRlVO Q19JTVBMX0FERCAoYXJyYXksIGksIG1lbW1vdmUsCkBAIC05OCw3ICs5MCw3 IEBAIF9fbGliY19pZnVuY19pbXBsX2xpc3QgKGNvbnN0IGNoYXIgKm5hbWUs IHN0cnVjdCBsaWJjX2lmdW5jX2ltcGwgKmFycmF5LAogCQkJICAgICAgX19t ZW1tb3ZlX2F2eDUxMl9ub192emVyb3VwcGVyKQogCSAgICAgIElGVU5DX0lN UExfQUREIChhcnJheSwgaSwgbWVtbW92ZSwKIAkJCSAgICAgIEhBU19BUkNI X0ZFQVRVUkUgKEFWWDUxMkZfVXNhYmxlKSwKLQkJCSAgICAgIF9fbWVtbW92 ZV9hdng1MTJfdW5hbGlnbmVkXzIpCisJCQkgICAgICBfX21lbW1vdmVfYXZ4 NTEyX3VuYWxpZ25lZCkKIAkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXks IGksIG1lbW1vdmUsCiAJCQkgICAgICBIQVNfQVJDSF9GRUFUVVJFIChBVlg1 MTJGX1VzYWJsZSksCiAJCQkgICAgICBfX21lbW1vdmVfYXZ4NTEyX3VuYWxp Z25lZF9lcm1zKQpAQCAtMTA5LDEwICsxMDEsOSBAQCBfX2xpYmNfaWZ1bmNf aW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVu Y19pbXBsICphcnJheSwKIAkJCSAgICAgIF9fbWVtbW92ZV9zc3NlMykKIAkg ICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGksIG1lbW1vdmUsIDEsIF9f bWVtbW92ZV9lcm1zKQogCSAgICAgIElGVU5DX0lNUExfQUREIChhcnJheSwg aSwgbWVtbW92ZSwgMSwKLQkJCSAgICAgIF9fbWVtbW92ZV9zc2UyX3VuYWxp Z25lZF8yKQorCQkJICAgICAgX19tZW1tb3ZlX3NzZTJfdW5hbGlnbmVkKQog CSAgICAgIElGVU5DX0lNUExfQUREIChhcnJheSwgaSwgbWVtbW92ZSwgMSwK LQkJCSAgICAgIF9fbWVtbW92ZV9zc2UyX3VuYWxpZ25lZF9lcm1zKQotCSAg ICAgIElGVU5DX0lNUExfQUREIChhcnJheSwgaSwgbWVtbW92ZSwgMSwgX19t ZW1tb3ZlX3NzZTIpKQorCQkJICAgICAgX19tZW1tb3ZlX3NzZTJfdW5hbGln bmVkX2VybXMpKQogCiAgIC8qIFN1cHBvcnQgc3lzZGVwcy94ODZfNjQvbXVs dGlhcmNoL21lbXNldF9jaGsuUy4gICovCiAgIElGVU5DX0lNUEwgKGksIG5h bWUsIF9fbWVtc2V0X2NoaywKQEAgLTMyNiw3ICszMTcsNyBAQCBfX2xpYmNf aWZ1bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGli Y19pZnVuY19pbXBsICphcnJheSwKIAkJCSAgICAgIF9fbWVtY3B5X2Noa19h dng1MTJfbm9fdnplcm91cHBlcikKIAkgICAgICBJRlVOQ19JTVBMX0FERCAo YXJyYXksIGksIF9fbWVtY3B5X2NoaywKIAkJCSAgICAgIEhBU19BUkNIX0ZF QVRVUkUgKEFWWDUxMkZfVXNhYmxlKSwKLQkJCSAgICAgIF9fbWVtY3B5X2No a19hdng1MTJfdW5hbGlnbmVkXzIpCisJCQkgICAgICBfX21lbWNweV9jaGtf YXZ4NTEyX3VuYWxpZ25lZCkKIAkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJy YXksIGksIF9fbWVtY3B5X2NoaywKIAkJCSAgICAgIEhBU19BUkNIX0ZFQVRV UkUgKEFWWDUxMkZfVXNhYmxlKSwKIAkJCSAgICAgIF9fbWVtY3B5X2Noa19h dng1MTJfdW5hbGlnbmVkX2VybXMpCkBAIC0zMzYsOSArMzI3LDYgQEAgX19s aWJjX2lmdW5jX2ltcGxfbGlzdCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0 IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCiAJCQkgICAgICBfX21lbWNweV9j aGtfYXZ4X3VuYWxpZ25lZCkKIAkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJy YXksIGksIF9fbWVtY3B5X2NoaywKIAkJCSAgICAgIEhBU19BUkNIX0ZFQVRV UkUgKEFWWF9Vc2FibGUpLAotCQkJICAgICAgX19tZW1jcHlfY2hrX2F2eF91 bmFsaWduZWRfMikKLQkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGks IF9fbWVtY3B5X2NoaywKLQkJCSAgICAgIEhBU19BUkNIX0ZFQVRVUkUgKEFW WF9Vc2FibGUpLAogCQkJICAgICAgX19tZW1jcHlfY2hrX2F2eF91bmFsaWdu ZWRfZXJtcykKIAkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGksIF9f bWVtY3B5X2NoaywKIAkJCSAgICAgIEhBU19DUFVfRkVBVFVSRSAoU1NTRTMp LApAQCAtMzQ3LDExICszMzUsOSBAQCBfX2xpYmNfaWZ1bmNfaW1wbF9saXN0 IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVuY19pbXBsICph cnJheSwKIAkJCSAgICAgIEhBU19DUFVfRkVBVFVSRSAoU1NTRTMpLAogCQkJ ICAgICAgX19tZW1jcHlfY2hrX3Nzc2UzKQogCSAgICAgIElGVU5DX0lNUExf QUREIChhcnJheSwgaSwgX19tZW1jcHlfY2hrLCAxLAotCQkJICAgICAgX19t ZW1jcHlfY2hrX3NzZTJfdW5hbGlnbmVkXzIpCi0JICAgICAgSUZVTkNfSU1Q TF9BREQgKGFycmF5LCBpLCBfX21lbWNweV9jaGssIDEsCi0JCQkgICAgICBf X21lbWNweV9jaGtfc3NlMl91bmFsaWduZWRfZXJtcykKKwkJCSAgICAgIF9f bWVtY3B5X2Noa19zc2UyX3VuYWxpZ25lZCkKIAkgICAgICBJRlVOQ19JTVBM X0FERCAoYXJyYXksIGksIF9fbWVtY3B5X2NoaywgMSwKLQkJCSAgICAgIF9f bWVtY3B5X2Noa19zc2UyKSkKKwkJCSAgICAgIF9fbWVtY3B5X2Noa19zc2Uy X3VuYWxpZ25lZF9lcm1zKSkKIAogICAvKiBTdXBwb3J0IHN5c2RlcHMveDg2 XzY0L211bHRpYXJjaC9tZW1jcHkuUy4gICovCiAgIElGVU5DX0lNUEwgKGks IG5hbWUsIG1lbWNweSwKQEAgLTM2MCw5ICszNDYsNiBAQCBfX2xpYmNfaWZ1 bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19p ZnVuY19pbXBsICphcnJheSwKIAkJCSAgICAgIF9fbWVtY3B5X2F2eF91bmFs aWduZWQpCiAJICAgICAgSUZVTkNfSU1QTF9BREQgKGFycmF5LCBpLCBtZW1j cHksCiAJCQkgICAgICBIQVNfQVJDSF9GRUFUVVJFIChBVlhfVXNhYmxlKSwK LQkJCSAgICAgIF9fbWVtY3B5X2F2eF91bmFsaWduZWRfMikKLQkgICAgICBJ RlVOQ19JTVBMX0FERCAoYXJyYXksIGksIG1lbWNweSwKLQkJCSAgICAgIEhB U19BUkNIX0ZFQVRVUkUgKEFWWF9Vc2FibGUpLAogCQkJICAgICAgX19tZW1j cHlfYXZ4X3VuYWxpZ25lZF9lcm1zKQogCSAgICAgIElGVU5DX0lNUExfQURE IChhcnJheSwgaSwgbWVtY3B5LCBIQVNfQ1BVX0ZFQVRVUkUgKFNTU0UzKSwK IAkJCSAgICAgIF9fbWVtY3B5X3Nzc2UzX2JhY2spCkBAIC0zNzQsMTggKzM1 NywxNSBAQCBfX2xpYmNfaWZ1bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpu YW1lLCBzdHJ1Y3QgbGliY19pZnVuY19pbXBsICphcnJheSwKIAkJCSAgICAg IF9fbWVtY3B5X2F2eDUxMl9ub192emVyb3VwcGVyKQogCSAgICAgIElGVU5D X0lNUExfQUREIChhcnJheSwgaSwgbWVtY3B5LAogCQkJICAgICAgSEFTX0FS Q0hfRkVBVFVSRSAoQVZYNTEyRl9Vc2FibGUpLAotCQkJICAgICAgX19tZW1j cHlfYXZ4NTEyX3VuYWxpZ25lZF8yKQorCQkJICAgICAgX19tZW1jcHlfYXZ4 NTEyX3VuYWxpZ25lZCkKIAkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXks IGksIG1lbWNweSwKIAkJCSAgICAgIEhBU19BUkNIX0ZFQVRVUkUgKEFWWDUx MkZfVXNhYmxlKSwKIAkJCSAgICAgIF9fbWVtY3B5X2F2eDUxMl91bmFsaWdu ZWRfZXJtcykKICNlbmRpZgogCSAgICAgIElGVU5DX0lNUExfQUREIChhcnJh eSwgaSwgbWVtY3B5LCAxLCBfX21lbWNweV9zc2UyX3VuYWxpZ25lZCkKIAkg ICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGksIG1lbWNweSwgMSwKLQkJ CSAgICAgIF9fbWVtY3B5X3NzZTJfdW5hbGlnbmVkXzIpCi0JICAgICAgSUZV TkNfSU1QTF9BREQgKGFycmF5LCBpLCBtZW1jcHksIDEsCiAJCQkgICAgICBf X21lbWNweV9zc2UyX3VuYWxpZ25lZF9lcm1zKQotCSAgICAgIElGVU5DX0lN UExfQUREIChhcnJheSwgaSwgbWVtY3B5LCAxLCBfX21lbWNweV9lcm1zKQot CSAgICAgIElGVU5DX0lNUExfQUREIChhcnJheSwgaSwgbWVtY3B5LCAxLCBf X21lbWNweV9zc2UyKSkKKwkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXks IGksIG1lbWNweSwgMSwgX19tZW1jcHlfZXJtcykpCiAKICAgLyogU3VwcG9y dCBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtcGNweV9jaGsuUy4gICov CiAgIElGVU5DX0lNUEwgKGksIG5hbWUsIF9fbWVtcGNweV9jaGssCkBAIC0z OTUsNyArMzc1LDcgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlzdCAoY29uc3Qg Y2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCiAJ CQkgICAgICBfX21lbXBjcHlfY2hrX2F2eDUxMl9ub192emVyb3VwcGVyKQog CSAgICAgIElGVU5DX0lNUExfQUREIChhcnJheSwgaSwgX19tZW1wY3B5X2No aywKIAkJCSAgICAgIEhBU19BUkNIX0ZFQVRVUkUgKEFWWDUxMkZfVXNhYmxl KSwKLQkJCSAgICAgIF9fbWVtcGNweV9jaGtfYXZ4NTEyX3VuYWxpZ25lZF8y KQorCQkJICAgICAgX19tZW1wY3B5X2Noa19hdng1MTJfdW5hbGlnbmVkKQog CSAgICAgIElGVU5DX0lNUExfQUREIChhcnJheSwgaSwgX19tZW1wY3B5X2No aywKIAkJCSAgICAgIEhBU19BUkNIX0ZFQVRVUkUgKEFWWDUxMkZfVXNhYmxl KSwKIAkJCSAgICAgIF9fbWVtcGNweV9jaGtfYXZ4NTEyX3VuYWxpZ25lZF9l cm1zKQpAQCAtNDA1LDkgKzM4NSw2IEBAIF9fbGliY19pZnVuY19pbXBsX2xp c3QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsaWJjX2lmdW5jX2ltcGwg KmFycmF5LAogCQkJICAgICAgX19tZW1wY3B5X2Noa19hdnhfdW5hbGlnbmVk KQogCSAgICAgIElGVU5DX0lNUExfQUREIChhcnJheSwgaSwgX19tZW1wY3B5 X2NoaywKIAkJCSAgICAgIEhBU19BUkNIX0ZFQVRVUkUgKEFWWF9Vc2FibGUp LAotCQkJICAgICAgX19tZW1wY3B5X2Noa19hdnhfdW5hbGlnbmVkXzIpCi0J ICAgICAgSUZVTkNfSU1QTF9BREQgKGFycmF5LCBpLCBfX21lbXBjcHlfY2hr LAotCQkJICAgICAgSEFTX0FSQ0hfRkVBVFVSRSAoQVZYX1VzYWJsZSksCiAJ CQkgICAgICBfX21lbXBjcHlfY2hrX2F2eF91bmFsaWduZWRfZXJtcykKIAkg ICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGksIF9fbWVtcGNweV9jaGss CiAJCQkgICAgICBIQVNfQ1BVX0ZFQVRVUkUgKFNTU0UzKSwKQEAgLTQxNiwx MSArMzkzLDkgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlzdCAoY29uc3QgY2hh ciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCiAJCQkg ICAgICBIQVNfQ1BVX0ZFQVRVUkUgKFNTU0UzKSwKIAkJCSAgICAgIF9fbWVt cGNweV9jaGtfc3NzZTMpCiAJICAgICAgSUZVTkNfSU1QTF9BREQgKGFycmF5 LCBpLCBfX21lbXBjcHlfY2hrLCAxLAotCQkJICAgICAgX19tZW1wY3B5X2No a19zc2UyX3VuYWxpZ25lZF8yKQotCSAgICAgIElGVU5DX0lNUExfQUREIChh cnJheSwgaSwgX19tZW1wY3B5X2NoaywgMSwKLQkJCSAgICAgIF9fbWVtcGNw eV9jaGtfc3NlMl91bmFsaWduZWRfZXJtcykKKwkJCSAgICAgIF9fbWVtcGNw eV9jaGtfc3NlMl91bmFsaWduZWQpCiAJICAgICAgSUZVTkNfSU1QTF9BREQg KGFycmF5LCBpLCBfX21lbXBjcHlfY2hrLCAxLAotCQkJICAgICAgX19tZW1w Y3B5X2Noa19zc2UyKSkKKwkJCSAgICAgIF9fbWVtcGNweV9jaGtfc3NlMl91 bmFsaWduZWRfZXJtcykpCiAKICAgLyogU3VwcG9ydCBzeXNkZXBzL3g4Nl82 NC9tdWx0aWFyY2gvbWVtcGNweS5TLiAgKi8KICAgSUZVTkNfSU1QTCAoaSwg bmFtZSwgbWVtcGNweSwKQEAgLTQzMCw3ICs0MDUsNyBAQCBfX2xpYmNfaWZ1 bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19p ZnVuY19pbXBsICphcnJheSwKIAkJCSAgICAgIF9fbWVtcGNweV9hdng1MTJf bm9fdnplcm91cHBlcikKIAkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXks IGksIG1lbXBjcHksCiAJCQkgICAgICBIQVNfQVJDSF9GRUFUVVJFIChBVlg1 MTJGX1VzYWJsZSksCi0JCQkgICAgICBfX21lbXBjcHlfYXZ4NTEyX3VuYWxp Z25lZF8yKQorCQkJICAgICAgX19tZW1wY3B5X2F2eDUxMl91bmFsaWduZWQp CiAJICAgICAgSUZVTkNfSU1QTF9BREQgKGFycmF5LCBpLCBtZW1wY3B5LAog CQkJICAgICAgSEFTX0FSQ0hfRkVBVFVSRSAoQVZYNTEyRl9Vc2FibGUpLAog CQkJICAgICAgX19tZW1wY3B5X2F2eDUxMl91bmFsaWduZWRfZXJtcykKQEAg LTQ0MCwyMCArNDE1LDE2IEBAIF9fbGliY19pZnVuY19pbXBsX2xpc3QgKGNv bnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsaWJjX2lmdW5jX2ltcGwgKmFycmF5 LAogCQkJICAgICAgX19tZW1wY3B5X2F2eF91bmFsaWduZWQpCiAJICAgICAg SUZVTkNfSU1QTF9BREQgKGFycmF5LCBpLCBtZW1wY3B5LAogCQkJICAgICAg SEFTX0FSQ0hfRkVBVFVSRSAoQVZYX1VzYWJsZSksCi0JCQkgICAgICBfX21l bXBjcHlfYXZ4X3VuYWxpZ25lZF8yKQotCSAgICAgIElGVU5DX0lNUExfQURE IChhcnJheSwgaSwgbWVtcGNweSwKLQkJCSAgICAgIEhBU19BUkNIX0ZFQVRV UkUgKEFWWF9Vc2FibGUpLAogCQkJICAgICAgX19tZW1wY3B5X2F2eF91bmFs aWduZWRfZXJtcykKIAkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGks IG1lbXBjcHksIEhBU19DUFVfRkVBVFVSRSAoU1NTRTMpLAogCQkJICAgICAg X19tZW1wY3B5X3Nzc2UzX2JhY2spCiAJICAgICAgSUZVTkNfSU1QTF9BREQg KGFycmF5LCBpLCBtZW1wY3B5LCBIQVNfQ1BVX0ZFQVRVUkUgKFNTU0UzKSwK IAkJCSAgICAgIF9fbWVtcGNweV9zc3NlMykKIAkgICAgICBJRlVOQ19JTVBM X0FERCAoYXJyYXksIGksIG1lbXBjcHksIDEsCi0JCQkgICAgICBfX21lbXBj cHlfc3NlMl91bmFsaWduZWRfMikKKwkJCSAgICAgIF9fbWVtcGNweV9zc2Uy X3VuYWxpZ25lZCkKIAkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGks IG1lbXBjcHksIDEsCiAJCQkgICAgICBfX21lbXBjcHlfc3NlMl91bmFsaWdu ZWRfZXJtcykKLQkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGksIG1l bXBjcHksIDEsIF9fbWVtcGNweV9lcm1zKQotCSAgICAgIElGVU5DX0lNUExf QUREIChhcnJheSwgaSwgbWVtcGNweSwgMSwgX19tZW1wY3B5X3NzZTIpKQor CSAgICAgIElGVU5DX0lNUExfQUREIChhcnJheSwgaSwgbWVtcGNweSwgMSwg X19tZW1wY3B5X2VybXMpKQogCiAgIC8qIFN1cHBvcnQgc3lzZGVwcy94ODZf NjQvbXVsdGlhcmNoL3N0cm5jbXAuUy4gICovCiAgIElGVU5DX0lNUEwgKGks IG5hbWUsIHN0cm5jbXAsCmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9t dWx0aWFyY2gvbWVtY3B5LWF2eC11bmFsaWduZWQuUyBiL3N5c2RlcHMveDg2 XzY0L211bHRpYXJjaC9tZW1jcHktYXZ4LXVuYWxpZ25lZC5TCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDQxODdmLi4wMDAwMDAwCi0tLSBh L3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9tZW1jcHktYXZ4LXVuYWxpZ25l ZC5TCisrKyAvZGV2L251bGwKQEAgLTEsMzkxICswLDAgQEAKLS8qIG1lbWNw eSB3aXRoIEFWWAotICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0gICBUaGlzIGZpbGUgaXMgcGFy dCBvZiB0aGUgR05VIEMgTGlicmFyeS4KLQotICAgVGhlIEdOVSBDIExpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCi0gICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gICBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK LSAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICBUaGUgR05VIEMgTGli cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAotICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VCi0gICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj Ci0gICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlm IG5vdCwgc2VlCi0gICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u ICAqLwotCi0jaW5jbHVkZSA8c3lzZGVwLmg+Ci0KLSNpZiBJU19JTiAobGli YykgXAotICAgICYmIChkZWZpbmVkIFNIQVJFRCBcCi0gICAgICAgIHx8IGRl ZmluZWQgVVNFX0FTX01FTU1PVkUgXAotCXx8ICFkZWZpbmVkIFVTRV9NVUxU SUFSQ0gpCi0KLSNpbmNsdWRlICJhc20tc3ludGF4LmgiCi0jaWZuZGVmIE1F TUNQWQotIyBkZWZpbmUgTUVNQ1BZCQlfX21lbWNweV9hdnhfdW5hbGlnbmVk Ci0jIGRlZmluZSBNRU1DUFlfQ0hLCV9fbWVtY3B5X2Noa19hdnhfdW5hbGln bmVkCi0jIGRlZmluZSBNRU1QQ1BZCV9fbWVtcGNweV9hdnhfdW5hbGlnbmVk Ci0jIGRlZmluZSBNRU1QQ1BZX0NISwlfX21lbXBjcHlfY2hrX2F2eF91bmFs aWduZWQKLSNlbmRpZgotCi0JLnNlY3Rpb24gLnRleHQuYXZ4LCJheCIsQHBy b2diaXRzCi0jaWYgIWRlZmluZWQgVVNFX0FTX01FTVBDUFkgJiYgIWRlZmlu ZWQgVVNFX0FTX01FTU1PVkUKLUVOVFJZIChNRU1QQ1BZX0NISykKLQljbXBx CSVyZHgsICVyY3gKLQlqYglISURERU5fSlVNUFRBUkdFVCAoX19jaGtfZmFp bCkKLUVORCAoTUVNUENQWV9DSEspCi0KLUVOVFJZIChNRU1QQ1BZKQotCW1v dnEJJXJkaSwgJXJheAotCWFkZHEJJXJkeCwgJXJheAotCWptcAlMKHN0YXJ0 KQotRU5EIChNRU1QQ1BZKQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZCBVU0Vf QVNfQkNPUFkKLUVOVFJZIChNRU1DUFlfQ0hLKQotCWNtcHEJJXJkeCwgJXJj eAotCWpiCUhJRERFTl9KVU1QVEFSR0VUIChfX2Noa19mYWlsKQotRU5EIChN RU1DUFlfQ0hLKQotI2VuZGlmCi0KLUVOVFJZIChNRU1DUFkpCi0JbW92CSVy ZGksICVyYXgKLSNpZmRlZiBVU0VfQVNfTUVNUENQWQotCWFkZAklcmR4LCAl cmF4Ci0jZW5kaWYKLUwoc3RhcnQpOgotCWNtcAkkMjU2LCAlcmR4Ci0JamFl CUwoMjU2Ynl0ZXNvcm1vcmUpCi0JY21wCSQxNiwgJWRsCi0JamIJTChsZXNz XzE2Ynl0ZXMpCi0JY21wCSQxMjgsICVkbAotCWpiCUwobGVzc18xMjhieXRl cykKLQl2bW92ZHF1ICglcnNpKSwgJXhtbTAKLQlsZWEJKCVyc2ksICVyZHgp LCAlcmN4Ci0Jdm1vdmRxdSAweDEwKCVyc2kpLCAleG1tMQotCXZtb3ZkcXUg MHgyMCglcnNpKSwgJXhtbTIKLQl2bW92ZHF1IDB4MzAoJXJzaSksICV4bW0z Ci0Jdm1vdmRxdSAweDQwKCVyc2kpLCAleG1tNAotCXZtb3ZkcXUgMHg1MCgl cnNpKSwgJXhtbTUKLQl2bW92ZHF1IDB4NjAoJXJzaSksICV4bW02Ci0Jdm1v dmRxdSAweDcwKCVyc2kpLCAleG1tNwotCXZtb3ZkcXUgLTB4ODAoJXJjeCks ICV4bW04Ci0Jdm1vdmRxdSAtMHg3MCglcmN4KSwgJXhtbTkKLQl2bW92ZHF1 IC0weDYwKCVyY3gpLCAleG1tMTAKLQl2bW92ZHF1IC0weDUwKCVyY3gpLCAl eG1tMTEKLQl2bW92ZHF1IC0weDQwKCVyY3gpLCAleG1tMTIKLQl2bW92ZHF1 IC0weDMwKCVyY3gpLCAleG1tMTMKLQl2bW92ZHF1IC0weDIwKCVyY3gpLCAl eG1tMTQKLQl2bW92ZHF1IC0weDEwKCVyY3gpLCAleG1tMTUKLQlsZWEJKCVy ZGksICVyZHgpLCAlcmR4Ci0Jdm1vdmRxdSAleG1tMCwgKCVyZGkpCi0Jdm1v dmRxdSAleG1tMSwgMHgxMCglcmRpKQotCXZtb3ZkcXUgJXhtbTIsIDB4MjAo JXJkaSkKLQl2bW92ZHF1ICV4bW0zLCAweDMwKCVyZGkpCi0Jdm1vdmRxdSAl eG1tNCwgMHg0MCglcmRpKQotCXZtb3ZkcXUgJXhtbTUsIDB4NTAoJXJkaSkK LQl2bW92ZHF1ICV4bW02LCAweDYwKCVyZGkpCi0Jdm1vdmRxdSAleG1tNywg MHg3MCglcmRpKQotCXZtb3ZkcXUgJXhtbTgsIC0weDgwKCVyZHgpCi0Jdm1v dmRxdSAleG1tOSwgLTB4NzAoJXJkeCkKLQl2bW92ZHF1ICV4bW0xMCwgLTB4 NjAoJXJkeCkKLQl2bW92ZHF1ICV4bW0xMSwgLTB4NTAoJXJkeCkKLQl2bW92 ZHF1ICV4bW0xMiwgLTB4NDAoJXJkeCkKLQl2bW92ZHF1ICV4bW0xMywgLTB4 MzAoJXJkeCkKLQl2bW92ZHF1ICV4bW0xNCwgLTB4MjAoJXJkeCkKLQl2bW92 ZHF1ICV4bW0xNSwgLTB4MTAoJXJkeCkKLQlyZXQKLQkucDJhbGlnbiA0Ci1M KGxlc3NfMTI4Ynl0ZXMpOgotCWNtcAkkNjQsICVkbAotCWpiCUwobGVzc182 NGJ5dGVzKQotCXZtb3ZkcXUgKCVyc2kpLCAleG1tMAotCWxlYQkoJXJzaSwg JXJkeCksICVyY3gKLQl2bW92ZHF1IDB4MTAoJXJzaSksICV4bW0xCi0Jdm1v dmRxdSAweDIwKCVyc2kpLCAleG1tMgotCWxlYQkoJXJkaSwgJXJkeCksICVy ZHgKLQl2bW92ZHF1IDB4MzAoJXJzaSksICV4bW0zCi0Jdm1vdmRxdSAtMHg0 MCglcmN4KSwgJXhtbTQKLQl2bW92ZHF1IC0weDMwKCVyY3gpLCAleG1tNQot CXZtb3ZkcXUgLTB4MjAoJXJjeCksICV4bW02Ci0Jdm1vdmRxdSAtMHgxMCgl cmN4KSwgJXhtbTcKLQl2bW92ZHF1ICV4bW0wLCAoJXJkaSkKLQl2bW92ZHF1 ICV4bW0xLCAweDEwKCVyZGkpCi0Jdm1vdmRxdSAleG1tMiwgMHgyMCglcmRp KQotCXZtb3ZkcXUgJXhtbTMsIDB4MzAoJXJkaSkKLQl2bW92ZHF1ICV4bW00 LCAtMHg0MCglcmR4KQotCXZtb3ZkcXUgJXhtbTUsIC0weDMwKCVyZHgpCi0J dm1vdmRxdSAleG1tNiwgLTB4MjAoJXJkeCkKLQl2bW92ZHF1ICV4bW03LCAt MHgxMCglcmR4KQotCXJldAotCi0JLnAyYWxpZ24gNAotTChsZXNzXzY0Ynl0 ZXMpOgotCWNtcAkkMzIsICVkbAotCWpiCUwobGVzc18zMmJ5dGVzKQotCXZt b3ZkcXUgKCVyc2kpLCAleG1tMAotCXZtb3ZkcXUgMHgxMCglcnNpKSwgJXht bTEKLQl2bW92ZHF1IC0weDIwKCVyc2ksICVyZHgpLCAleG1tNgotCXZtb3Zk cXUgLTB4MTAoJXJzaSwgJXJkeCksICV4bW03Ci0Jdm1vdmRxdSAleG1tMCwg KCVyZGkpCi0Jdm1vdmRxdSAleG1tMSwgMHgxMCglcmRpKQotCXZtb3ZkcXUg JXhtbTYsIC0weDIwKCVyZGksICVyZHgpCi0Jdm1vdmRxdSAleG1tNywgLTB4 MTAoJXJkaSwgJXJkeCkKLQlyZXQKLQotCS5wMmFsaWduIDQKLUwobGVzc18z MmJ5dGVzKToKLQl2bW92ZHF1ICglcnNpKSwgJXhtbTAKLQl2bW92ZHF1IC0w eDEwKCVyc2ksICVyZHgpLCAleG1tNwotCXZtb3ZkcXUgJXhtbTAsICglcmRp KQotCXZtb3ZkcXUgJXhtbTcsIC0weDEwKCVyZGksICVyZHgpCi0JcmV0Ci0K LQkucDJhbGlnbiA0Ci1MKGxlc3NfMTZieXRlcyk6Ci0JY21wCSQ4LCAlZGwK LQlqYglMKGxlc3NfOGJ5dGVzKQotCW1vdnEgLTB4MDgoJXJzaSwgJXJkeCks CSVyY3gKLQltb3ZxICglcnNpKSwJJXJzaQotCW1vdnEgJXJzaSwgKCVyZGkp Ci0JbW92cSAlcmN4LCAtMHgwOCglcmRpLCAlcmR4KQotCXJldAotCi0JLnAy YWxpZ24gNAotTChsZXNzXzhieXRlcyk6Ci0JY21wCSQ0LCAlZGwKLQlqYglM KGxlc3NfNGJ5dGVzKQotCW1vdiAtMHgwNCglcnNpLCAlcmR4KSwgJWVjeAot CW1vdiAoJXJzaSksCSVlc2kKLQltb3YgJWVzaSwgKCVyZGkpCi0JbW92ICVl Y3gsIC0weDA0KCVyZGksICVyZHgpCi0JcmV0Ci0KLUwobGVzc180Ynl0ZXMp OgotCWNtcAkkMSwgJWRsCi0JamJlCUwobGVzc18yYnl0ZXMpCi0JbW92IC0w eDAyKCVyc2ksICVyZHgpLAklY3gKLQltb3YgKCVyc2kpLAklc2kKLQltb3Yg JXNpLCAoJXJkaSkKLQltb3YgJWN4LCAtMHgwMiglcmRpLCAlcmR4KQotCXJl dAotCi1MKGxlc3NfMmJ5dGVzKToKLQlqYglMKGxlc3NfMGJ5dGVzKQotCW1v dgkoJXJzaSksICVjbAotCW1vdgklY2wsCSglcmRpKQotTChsZXNzXzBieXRl cyk6Ci0JcmV0Ci0KLQkucDJhbGlnbiA0Ci1MKDI1NmJ5dGVzb3Jtb3JlKToK LSNpZmRlZiBVU0VfQVNfTUVNTU9WRQotCW1vdgklcmRpLCAlcmN4Ci0Jc3Vi CSVyc2ksICVyY3gKLQljbXAJJXJkeCwgJXJjeAotCWpjCUwoY29weV9iYWNr d2FyZCkKLSNlbmRpZgotCWNtcAkkMjA0OCwgJXJkeAotCWphZQlMKGdvYmJs ZV9kYXRhX21vdnNiKQotCW1vdgklcmF4LCAlcjgKLQlsZWEJKCVyc2ksICVy ZHgpLCAlcmN4Ci0JbW92CSVyZGksICVyMTAKLQl2bW92ZHF1IC0weDgwKCVy Y3gpLCAleG1tNQotCXZtb3ZkcXUgLTB4NzAoJXJjeCksICV4bW02Ci0JbW92 CSQweDgwLCAlcmF4Ci0JYW5kCSQtMzIsICVyZGkKLQlhZGQJJDMyLCAlcmRp Ci0Jdm1vdmRxdSAtMHg2MCglcmN4KSwgJXhtbTcKLQl2bW92ZHF1IC0weDUw KCVyY3gpLCAleG1tOAotCW1vdgklcmRpLCAlcjExCi0Jc3ViCSVyMTAsICVy MTEKLQl2bW92ZHF1IC0weDQwKCVyY3gpLCAleG1tOQotCXZtb3ZkcXUgLTB4 MzAoJXJjeCksICV4bW0xMAotCXN1YgklcjExLCAlcmR4Ci0Jdm1vdmRxdSAt MHgyMCglcmN4KSwgJXhtbTExCi0Jdm1vdmRxdSAtMHgxMCglcmN4KSwgJXht bTEyCi0Jdm1vdmRxdQkoJXJzaSksICV5bW00Ci0JYWRkCSVyMTEsICVyc2kK LQlzdWIJJWVheCwgJWVkeAotTChnb2JsZV8xMjhfbG9vcCk6Ci0Jdm1vdmRx dSAoJXJzaSksICV5bW0wCi0Jdm1vdmRxdSAweDIwKCVyc2kpLCAleW1tMQot CXZtb3ZkcXUgMHg0MCglcnNpKSwgJXltbTIKLQl2bW92ZHF1IDB4NjAoJXJz aSksICV5bW0zCi0JYWRkCSVyYXgsICVyc2kKLQl2bW92ZHFhICV5bW0wLCAo JXJkaSkKLQl2bW92ZHFhICV5bW0xLCAweDIwKCVyZGkpCi0Jdm1vdmRxYSAl eW1tMiwgMHg0MCglcmRpKQotCXZtb3ZkcWEgJXltbTMsIDB4NjAoJXJkaSkK LQlhZGQJJXJheCwgJXJkaQotCXN1YgklZWF4LCAlZWR4Ci0JamFlCUwoZ29i bGVfMTI4X2xvb3ApCi0JYWRkCSVlYXgsICVlZHgKLQlhZGQJJXJkaSwgJXJk eAotCXZtb3ZkcXUJJXltbTQsICglcjEwKQotCXZ6ZXJvdXBwZXIKLQl2bW92 ZHF1ICV4bW01LCAtMHg4MCglcmR4KQotCXZtb3ZkcXUgJXhtbTYsIC0weDcw KCVyZHgpCi0Jdm1vdmRxdSAleG1tNywgLTB4NjAoJXJkeCkKLQl2bW92ZHF1 ICV4bW04LCAtMHg1MCglcmR4KQotCXZtb3ZkcXUgJXhtbTksIC0weDQwKCVy ZHgpCi0Jdm1vdmRxdSAleG1tMTAsIC0weDMwKCVyZHgpCi0Jdm1vdmRxdSAl eG1tMTEsIC0weDIwKCVyZHgpCi0Jdm1vdmRxdSAleG1tMTIsIC0weDEwKCVy ZHgpCi0JbW92CSVyOCwgJXJheAotCXJldAotCi0JLnAyYWxpZ24gNAotTChn b2JibGVfZGF0YV9tb3ZzYik6Ci0jaWZkZWYgU0hBUkVEX0NBQ0hFX1NJWkVf SEFMRgotCW1vdgkkU0hBUkVEX0NBQ0hFX1NJWkVfSEFMRiwgJXJjeAotI2Vs c2UKLQltb3YJX194ODZfc2hhcmVkX2NhY2hlX3NpemVfaGFsZiglcmlwKSwg JXJjeAotI2VuZGlmCi0Jc2hsCSQzLCAlcmN4Ci0JY21wCSVyY3gsICVyZHgK LQlqYWUJTChnb2JibGVfYmlnX2RhdGFfZndkKQotCW1vdgklcmR4LCAlcmN4 Ci0JcmVwCW1vdnNiCi0JcmV0Ci0KLQkucDJhbGlnbiA0Ci1MKGdvYmJsZV9i aWdfZGF0YV9md2QpOgotCWxlYQkoJXJzaSwgJXJkeCksICVyY3gKLQl2bW92 ZHF1CSglcnNpKSwgJXltbTQKLQl2bW92ZHF1IC0weDgwKCVyc2ksJXJkeCks ICV4bW01Ci0Jdm1vdmRxdSAtMHg3MCglcmN4KSwgJXhtbTYKLQl2bW92ZHF1 IC0weDYwKCVyY3gpLCAleG1tNwotCXZtb3ZkcXUgLTB4NTAoJXJjeCksICV4 bW04Ci0Jdm1vdmRxdSAtMHg0MCglcmN4KSwgJXhtbTkKLQl2bW92ZHF1IC0w eDMwKCVyY3gpLCAleG1tMTAKLQl2bW92ZHF1IC0weDIwKCVyY3gpLCAleG1t MTEKLQl2bW92ZHF1IC0weDEwKCVyY3gpLCAleG1tMTIKLQltb3YJJXJkaSwg JXI4Ci0JYW5kCSQtMzIsICVyZGkKLQlhZGQJJDMyLCAlcmRpCi0JbW92CSVy ZGksICVyMTAKLQlzdWIJJXI4LCAlcjEwCi0Jc3ViCSVyMTAsICVyZHgKLQlh ZGQJJXIxMCwgJXJzaQotCWxlYQkoJXJkaSwgJXJkeCksICVyY3gKLQlhZGQJ JC0weDgwLCAlcmR4Ci1MKGdvYmJsZV9tZW1fZndkX2xvb3ApOgotCXByZWZl dGNobnRhIDB4MWMwKCVyc2kpCi0JcHJlZmV0Y2hudGEgMHgyODAoJXJzaSkK LQl2bW92ZHF1CSglcnNpKSwgJXltbTAKLQl2bW92ZHF1CTB4MjAoJXJzaSks ICV5bW0xCi0Jdm1vdmRxdQkweDQwKCVyc2kpLCAleW1tMgotCXZtb3ZkcXUJ MHg2MCglcnNpKSwgJXltbTMKLQlzdWIJJC0weDgwLCAlcnNpCi0Jdm1vdm50 ZHEJJXltbTAsICglcmRpKQotCXZtb3ZudGRxCSV5bW0xLCAweDIwKCVyZGkp Ci0Jdm1vdm50ZHEJJXltbTIsIDB4NDAoJXJkaSkKLQl2bW92bnRkcQkleW1t MywgMHg2MCglcmRpKQotCXN1YgkkLTB4ODAsICVyZGkKLQlhZGQJJC0weDgw LCAlcmR4Ci0JamIJTChnb2JibGVfbWVtX2Z3ZF9sb29wKQotCXNmZW5jZQot CXZtb3ZkcXUJJXltbTQsICglcjgpCi0Jdnplcm91cHBlcgotCXZtb3ZkcXUg JXhtbTUsIC0weDgwKCVyY3gpCi0Jdm1vdmRxdSAleG1tNiwgLTB4NzAoJXJj eCkKLQl2bW92ZHF1ICV4bW03LCAtMHg2MCglcmN4KQotCXZtb3ZkcXUgJXht bTgsIC0weDUwKCVyY3gpCi0Jdm1vdmRxdSAleG1tOSwgLTB4NDAoJXJjeCkK LQl2bW92ZHF1ICV4bW0xMCwgLTB4MzAoJXJjeCkKLQl2bW92ZHF1ICV4bW0x MSwgLTB4MjAoJXJjeCkKLQl2bW92ZHF1ICV4bW0xMiwgLTB4MTAoJXJjeCkK LQlyZXQKLQotI2lmZGVmIFVTRV9BU19NRU1NT1ZFCi0JLnAyYWxpZ24gNAot TChjb3B5X2JhY2t3YXJkKToKLSNpZmRlZiBTSEFSRURfQ0FDSEVfU0laRV9I QUxGCi0JbW92CSRTSEFSRURfQ0FDSEVfU0laRV9IQUxGLCAlcmN4Ci0jZWxz ZQotCW1vdglfX3g4Nl9zaGFyZWRfY2FjaGVfc2l6ZV9oYWxmKCVyaXApLCAl cmN4Ci0jZW5kaWYKLQlzaGwJJDMsICVyY3gKLQl2bW92ZHF1ICglcnNpKSwg JXhtbTUKLQl2bW92ZHF1IDB4MTAoJXJzaSksICV4bW02Ci0JYWRkCSVyZHgs ICVyZGkKLQl2bW92ZHF1IDB4MjAoJXJzaSksICV4bW03Ci0Jdm1vdmRxdSAw eDMwKCVyc2kpLCAleG1tOAotCWxlYQktMHgyMCglcmRpKSwgJXIxMAotCW1v diAlcmRpLCAlcjExCi0Jdm1vdmRxdSAweDQwKCVyc2kpLCAleG1tOQotCXZt b3ZkcXUgMHg1MCglcnNpKSwgJXhtbTEwCi0JYW5kCSQweDFmLCAlcjExCi0J dm1vdmRxdSAweDYwKCVyc2kpLCAleG1tMTEKLQl2bW92ZHF1IDB4NzAoJXJz aSksICV4bW0xMgotCXhvcgklcjExLCAlcmRpCi0JYWRkCSVyZHgsICVyc2kK LQl2bW92ZHF1CS0weDIwKCVyc2kpLCAleW1tNAotCXN1YgklcjExLCAlcnNp Ci0Jc3ViCSVyMTEsICVyZHgKLQljbXAJJXJjeCwgJXJkeAotCWphCUwoZ29i YmxlX2JpZ19kYXRhX2J3ZCkKLQlhZGQJJC0weDgwLCAlcmR4Ci1MKGdvYmJs ZV9tZW1fYndkX2xsYyk6Ci0Jdm1vdmRxdQktMHgyMCglcnNpKSwgJXltbTAK LQl2bW92ZHF1CS0weDQwKCVyc2kpLCAleW1tMQotCXZtb3ZkcXUJLTB4NjAo JXJzaSksICV5bW0yCi0Jdm1vdmRxdQktMHg4MCglcnNpKSwgJXltbTMKLQls ZWEJLTB4ODAoJXJzaSksICVyc2kKLQl2bW92ZHFhCSV5bW0wLCAtMHgyMCgl cmRpKQotCXZtb3ZkcWEJJXltbTEsIC0weDQwKCVyZGkpCi0Jdm1vdmRxYQkl eW1tMiwgLTB4NjAoJXJkaSkKLQl2bW92ZHFhCSV5bW0zLCAtMHg4MCglcmRp KQotCWxlYQktMHg4MCglcmRpKSwgJXJkaQotCWFkZAkkLTB4ODAsICVyZHgK LQlqYglMKGdvYmJsZV9tZW1fYndkX2xsYykKLQl2bW92ZHF1CSV5bW00LCAo JXIxMCkKLQl2emVyb3VwcGVyCi0Jdm1vdmRxdSAleG1tNSwgKCVyYXgpCi0J dm1vdmRxdSAleG1tNiwgMHgxMCglcmF4KQotCXZtb3ZkcXUgJXhtbTcsIDB4 MjAoJXJheCkKLQl2bW92ZHF1ICV4bW04LCAweDMwKCVyYXgpCi0Jdm1vdmRx dSAleG1tOSwgMHg0MCglcmF4KQotCXZtb3ZkcXUgJXhtbTEwLCAweDUwKCVy YXgpCi0Jdm1vdmRxdSAleG1tMTEsIDB4NjAoJXJheCkKLQl2bW92ZHF1ICV4 bW0xMiwgMHg3MCglcmF4KQotCXJldAotCi0JLnAyYWxpZ24gNAotTChnb2Ji bGVfYmlnX2RhdGFfYndkKToKLQlhZGQJJC0weDgwLCAlcmR4Ci1MKGdvYmJs ZV9tZW1fYndkX2xvb3ApOgotCXByZWZldGNobnRhIC0weDFjMCglcnNpKQot CXByZWZldGNobnRhIC0weDI4MCglcnNpKQotCXZtb3ZkcXUJLTB4MjAoJXJz aSksICV5bW0wCi0Jdm1vdmRxdQktMHg0MCglcnNpKSwgJXltbTEKLQl2bW92 ZHF1CS0weDYwKCVyc2kpLCAleW1tMgotCXZtb3ZkcXUJLTB4ODAoJXJzaSks ICV5bW0zCi0JbGVhCS0weDgwKCVyc2kpLCAlcnNpCi0Jdm1vdm50ZHEJJXlt bTAsIC0weDIwKCVyZGkpCi0Jdm1vdm50ZHEJJXltbTEsIC0weDQwKCVyZGkp Ci0Jdm1vdm50ZHEJJXltbTIsIC0weDYwKCVyZGkpCi0Jdm1vdm50ZHEJJXlt bTMsIC0weDgwKCVyZGkpCi0JbGVhCS0weDgwKCVyZGkpLCAlcmRpCi0JYWRk CSQtMHg4MCwgJXJkeAotCWpiCUwoZ29iYmxlX21lbV9id2RfbG9vcCkKLQlz ZmVuY2UKLQl2bW92ZHF1CSV5bW00LCAoJXIxMCkKLQl2emVyb3VwcGVyCi0J dm1vdmRxdSAleG1tNSwgKCVyYXgpCi0Jdm1vdmRxdSAleG1tNiwgMHgxMCgl cmF4KQotCXZtb3ZkcXUgJXhtbTcsIDB4MjAoJXJheCkKLQl2bW92ZHF1ICV4 bW04LCAweDMwKCVyYXgpCi0Jdm1vdmRxdSAleG1tOSwgMHg0MCglcmF4KQot CXZtb3ZkcXUgJXhtbTEwLCAweDUwKCVyYXgpCi0Jdm1vdmRxdSAleG1tMTEs IDB4NjAoJXJheCkKLQl2bW92ZHF1ICV4bW0xMiwgMHg3MCglcmF4KQotCXJl dAotI2VuZGlmCi1FTkQgKE1FTUNQWSkKLSNlbmRpZgpkaWZmIC0tZ2l0IGEv c3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbWNweS1zc2UyLXVuYWxpZ25l ZC5TIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbWNweS1zc2UyLXVu YWxpZ25lZC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDUw OTgzLi4wMDAwMDAwCi0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9t ZW1jcHktc3NlMi11bmFsaWduZWQuUworKysgL2Rldi9udWxsCkBAIC0xLDE3 NSArMCwwIEBACi0vKiBtZW1jcHkgd2l0aCB1bmFsaWdlZCBsb2FkcwotICAg Q29weXJpZ2h0IChDKSAyMDEzLTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCi0gICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMg TGlicmFyeS4KLQotICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCi0gICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgIHZlcnNpb24gMi4x IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgotCi0gICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKLSAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgotCi0gICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gICBMaWNlbnNlIGFs b25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCi0gICA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotCi0jaWYgSVNf SU4gKGxpYmMpCi0KLSNpbmNsdWRlIDxzeXNkZXAuaD4KLQotI2luY2x1ZGUg ImFzbS1zeW50YXguaCIKLQotCi1FTlRSWShfX21lbWNweV9zc2UyX3VuYWxp Z25lZCkKLQltb3ZxCSVyc2ksICVyYXgKLQlsZWFxCSglcmR4LCVyZHgpLCAl cmN4Ci0Jc3VicQklcmRpLCAlcmF4Ci0Jc3VicQklcmR4LCAlcmF4Ci0JY21w cQklcmN4LCAlcmF4Ci0JamIJTChvdmVybGFwcGluZykKLQljbXBxCSQxNiwg JXJkeAotCWpiZQlMKGxlc3NfMTYpCi0JbW92ZHF1CSglcnNpKSwgJXhtbTgK LQljbXBxCSQzMiwgJXJkeAotCW1vdmRxdQkleG1tOCwgKCVyZGkpCi0JbW92 ZHF1CS0xNiglcnNpLCVyZHgpLCAleG1tOAotCW1vdmRxdQkleG1tOCwgLTE2 KCVyZGksJXJkeCkKLQlqYQkuTDMxCi1MKHJldHVybik6Ci0JbW92cQklcmRp LCAlcmF4Ci0JcmV0Ci0JLnAyYWxpZ24gNCwsMTAKLQkucDJhbGlnbiA0Ci0u TDMxOgotCW1vdmRxdQkxNiglcnNpKSwgJXhtbTgKLQljbXBxCSQ2NCwgJXJk eAotCW1vdmRxdQkleG1tOCwgMTYoJXJkaSkKLQltb3ZkcXUJLTMyKCVyc2ks JXJkeCksICV4bW04Ci0JbW92ZHF1CSV4bW04LCAtMzIoJXJkaSwlcmR4KQot CWpiZQlMKHJldHVybikKLQltb3ZkcXUJMzIoJXJzaSksICV4bW04Ci0JY21w cQkkMTI4LCAlcmR4Ci0JbW92ZHF1CSV4bW04LCAzMiglcmRpKQotCW1vdmRx dQktNDgoJXJzaSwlcmR4KSwgJXhtbTgKLQltb3ZkcXUJJXhtbTgsIC00OCgl cmRpLCVyZHgpCi0JbW92ZHF1CTQ4KCVyc2kpLCAleG1tOAotCW1vdmRxdQkl eG1tOCwgNDgoJXJkaSkKLQltb3ZkcXUJLTY0KCVyc2ksJXJkeCksICV4bW04 Ci0JbW92ZHF1CSV4bW04LCAtNjQoJXJkaSwlcmR4KQotCWpiZQlMKHJldHVy bikKLQlsZWFxCTY0KCVyZGkpLCAlcmN4Ci0JYWRkcQklcmRpLCAlcmR4Ci0J YW5kcQkkLTY0LCAlcmR4Ci0JYW5kcQkkLTY0LCAlcmN4Ci0JbW92cQklcmN4 LCAlcmF4Ci0Jc3VicQklcmRpLCAlcmF4Ci0JYWRkcQklcmF4LCAlcnNpCi0J Y21wcQklcmR4LCAlcmN4Ci0JamUJTChyZXR1cm4pCi0JbW92cQklcnNpLCAl cjEwCi0Jc3VicQklcmN4LCAlcjEwCi0JbGVhcQkxNiglcjEwKSwgJXI5Ci0J bGVhcQkzMiglcjEwKSwgJXI4Ci0JbGVhcQk0OCglcjEwKSwgJXJheAotCS5w MmFsaWduIDQsLDEwCi0JLnAyYWxpZ24gNAotTChsb29wKToKLQltb3ZkcXUJ KCVyY3gsJXIxMCksICV4bW04Ci0JbW92ZHFhCSV4bW04LCAoJXJjeCkKLQlt b3ZkcXUJKCVyY3gsJXI5KSwgJXhtbTgKLQltb3ZkcWEJJXhtbTgsIDE2KCVy Y3gpCi0JbW92ZHF1CSglcmN4LCVyOCksICV4bW04Ci0JbW92ZHFhCSV4bW04 LCAzMiglcmN4KQotCW1vdmRxdQkoJXJjeCwlcmF4KSwgJXhtbTgKLQltb3Zk cWEJJXhtbTgsIDQ4KCVyY3gpCi0JYWRkcQkkNjQsICVyY3gKLQljbXBxCSVy Y3gsICVyZHgKLQlqbmUJTChsb29wKQotCWptcAlMKHJldHVybikKLUwob3Zl cmxhcHBpbmcpOgotCWNtcHEJJXJzaSwgJXJkaQotCWphZQkuTDMKLQl0ZXN0 cQklcmR4LCAlcmR4Ci0JLnAyYWxpZ24gNCwsNQotCWplCUwocmV0dXJuKQot CW1vdnEJJXJkeCwgJXI5Ci0JbGVhcQkxNiglcnNpKSwgJXJjeAotCWxlYXEJ MTYoJXJkaSksICVyOAotCXNocnEJJDQsICVyOQotCW1vdnEJJXI5LCAlcmF4 Ci0Jc2FscQkkNCwgJXJheAotCWNtcHEJJXJjeCwgJXJkaQotCXNldGFlCSVj bAotCWNtcHEJJXI4LCAlcnNpCi0Jc2V0YWUJJXI4YgotCW9ybAklcjhkLCAl ZWN4Ci0JY21wcQkkMTUsICVyZHgKLQlzZXRhCSVyOGIKLQl0ZXN0Ygklcjhi LCAlY2wKLQlqZQkuTDE2Ci0JdGVzdHEJJXJheCwgJXJheAotCWplCS5MMTYK LQl4b3JsCSVlY3gsICVlY3gKLQl4b3JsCSVyOGQsICVyOGQKLS5MNzoKLQlt b3ZkcXUJKCVyc2ksJXJjeCksICV4bW04Ci0JYWRkcQkkMSwgJXI4Ci0JbW92 ZHF1CSV4bW04LCAoJXJkaSwlcmN4KQotCWFkZHEJJDE2LCAlcmN4Ci0JY21w cQklcjgsICVyOQotCWphCS5MNwotCWNtcHEJJXJheCwgJXJkeAotCWplCUwo cmV0dXJuKQotLkwyMToKLQltb3Z6YmwJKCVyc2ksJXJheCksICVlY3gKLQlt b3ZiCSVjbCwgKCVyZGksJXJheCkKLQlhZGRxCSQxLCAlcmF4Ci0JY21wcQkl cmF4LCAlcmR4Ci0JamEJLkwyMQotCWptcAlMKHJldHVybikKLUwobGVzc18x Nik6Ci0JdGVzdGIJJDI0LCAlZGwKLQlqbmUJTChiZXR3ZWVuXzlfMTYpCi0J dGVzdGIJJDQsICVkbAotCS5wMmFsaWduIDQsLDUKLQlqbmUJTChiZXR3ZWVu XzVfOCkKLQl0ZXN0cQklcmR4LCAlcmR4Ci0JLnAyYWxpZ24gNCwsMgotCWpl CUwocmV0dXJuKQotCW1vdnpibAkoJXJzaSksICVlYXgKLQl0ZXN0YgkkMiwg JWRsCi0JbW92YgklYWwsICglcmRpKQotCWplCUwocmV0dXJuKQotCW1vdnp3 bAktMiglcnNpLCVyZHgpLCAlZWF4Ci0JbW92dwklYXgsIC0yKCVyZGksJXJk eCkKLQlqbXAJTChyZXR1cm4pCi0uTDM6Ci0JbGVhcQktMSglcmR4KSwgJXJh eAotCS5wMmFsaWduIDQsLDEwCi0JLnAyYWxpZ24gNAotLkwxMToKLQltb3Z6 YmwJKCVyc2ksJXJheCksICVlZHgKLQltb3ZiCSVkbCwgKCVyZGksJXJheCkK LQlzdWJxCSQxLCAlcmF4Ci0Jam1wCS5MMTEKLUwoYmV0d2Vlbl85XzE2KToK LQltb3ZxCSglcnNpKSwgJXJheAotCW1vdnEJJXJheCwgKCVyZGkpCi0JbW92 cQktOCglcnNpLCVyZHgpLCAlcmF4Ci0JbW92cQklcmF4LCAtOCglcmRpLCVy ZHgpCi0Jam1wCUwocmV0dXJuKQotLkwxNjoKLQl4b3JsCSVlYXgsICVlYXgK LQlqbXAJLkwyMQotTChiZXR3ZWVuXzVfOCk6Ci0JbW92bAkoJXJzaSksICVl YXgKLQltb3ZsCSVlYXgsICglcmRpKQotCW1vdmwJLTQoJXJzaSwlcmR4KSwg JWVheAotCW1vdmwJJWVheCwgLTQoJXJkaSwlcmR4KQotCWptcAlMKHJldHVy bikKLUVORChfX21lbWNweV9zc2UyX3VuYWxpZ25lZCkKLQotI2VuZGlmCmRp ZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtY3B5LlMg Yi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtY3B5LlMKaW5kZXggNWIw NDVkNy4uZjY3NzFhNCAxMDA2NDQKLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVs dGlhcmNoL21lbWNweS5TCisrKyBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJj aC9tZW1jcHkuUwpAQCAtMTksNyArMTksNiBAQAogICAgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LiAgKi8KIAogI2luY2x1ZGUgPHN5c2RlcC5o PgotI2luY2x1ZGUgPHNobGliLWNvbXBhdC5oPgogI2luY2x1ZGUgPGluaXQt YXJjaC5oPgogCiAvKiBEZWZpbmUgbXVsdGlwbGUgdmVyc2lvbnMgb25seSBm b3IgdGhlIGRlZmluaXRpb24gaW4gbGliIGFuZCBmb3IKQEAgLTMwLDIxICsy OSwzNCBAQAogRU5UUlkoX19uZXdfbWVtY3B5KQogCS50eXBlCV9fbmV3X21l bWNweSwgQGdudV9pbmRpcmVjdF9mdW5jdGlvbgogCUxPQURfUlRMRF9HTE9C QUxfUk9fUkRYCi0jaWZkZWYgSEFWRV9BVlg1MTJfQVNNX1NVUFBPUlQKKyMg aWZkZWYgSEFWRV9BVlg1MTJfQVNNX1NVUFBPUlQKIAlIQVNfQVJDSF9GRUFU VVJFIChBVlg1MTJGX1VzYWJsZSkKIAlqegkxZgorCWxlYQlfX21lbWNweV9h dng1MTJfbm9fdnplcm91cHBlciglcmlwKSwgJVJBWF9MUAogCUhBU19BUkNI X0ZFQVRVUkUgKFByZWZlcl9Ob19WWkVST1VQUEVSKQotCWp6CTFmCi0JbGVh ICAgIF9fbWVtY3B5X2F2eDUxMl9ub192emVyb3VwcGVyKCVyaXApLCAlUkFY X0xQCisJam56CTJmCisJbGVhCV9fbWVtY3B5X2F2eDUxMl91bmFsaWduZWRf ZXJtcyglcmlwKSwgJVJBWF9MUAorCUhBU19DUFVfRkVBVFVSRSAoRVJNUykK KwlqbnoJMmYKKwlsZWEJX19tZW1jcHlfYXZ4NTEyX3VuYWxpZ25lZCglcmlw KSwgJVJBWF9MUAogCXJldAotI2VuZGlmCisjIGVuZGlmCiAxOglsZWEJX19t ZW1jcHlfYXZ4X3VuYWxpZ25lZCglcmlwKSwgJVJBWF9MUAogCUhBU19BUkNI X0ZFQVRVUkUgKEFWWF9GYXN0X1VuYWxpZ25lZF9Mb2FkKQotCWpuegkyZgor CWp6CUwoRmFzdF9VbmFsaWduZWRfTG9hZCkKKwlIQVNfQ1BVX0ZFQVRVUkUg KEVSTVMpCisJanoJMmYKKwlsZWEJX19tZW1jcHlfYXZ4X3VuYWxpZ25lZF9l cm1zKCVyaXApLCAlUkFYX0xQCisJcmV0CitMKEZhc3RfVW5hbGlnbmVkX0xv YWQpOgogCWxlYQlfX21lbWNweV9zc2UyX3VuYWxpZ25lZCglcmlwKSwgJVJB WF9MUAogCUhBU19BUkNIX0ZFQVRVUkUgKEZhc3RfVW5hbGlnbmVkX0NvcHkp Ci0Jam56CTJmCi0JbGVhCV9fbWVtY3B5X3NzZTIoJXJpcCksICVSQVhfTFAK KwlqeglMKFNTU0UzKQorCUhBU19DUFVfRkVBVFVSRSAoRVJNUykKKwlqegky ZgorCWxlYQlfX21lbWNweV9zc2UyX3VuYWxpZ25lZF9lcm1zKCVyaXApLCAl UkFYX0xQCisJcmV0CitMKFNTU0UzKToKIAlIQVNfQ1BVX0ZFQVRVUkUgKFNT U0UzKQogCWp6CTJmCiAJbGVhICAgIF9fbWVtY3B5X3Nzc2UzX2JhY2soJXJp cCksICVSQVhfTFAKQEAgLTU0LDM3ICs2Niw3IEBAIEVOVFJZKF9fbmV3X21l bWNweSkKIDI6CXJldAogRU5EKF9fbmV3X21lbWNweSkKIAotIyB1bmRlZiBF TlRSWQotIyBkZWZpbmUgRU5UUlkobmFtZSkgXAotCS50eXBlIF9fbWVtY3B5 X3NzZTIsIEBmdW5jdGlvbjsgXAotCS5nbG9ibCBfX21lbWNweV9zc2UyOyBc Ci0JLmhpZGRlbiBfX21lbWNweV9zc2UyOyBcCi0JLnAyYWxpZ24gNDsgXAot CV9fbWVtY3B5X3NzZTI6IGNmaV9zdGFydHByb2M7IFwKLQlDQUxMX01DT1VO VAotIyB1bmRlZiBFTkQKLSMgZGVmaW5lIEVORChuYW1lKSBcCi0JY2ZpX2Vu ZHByb2M7IC5zaXplIF9fbWVtY3B5X3NzZTIsIC4tX19tZW1jcHlfc3NlMgot Ci0jIHVuZGVmIEVOVFJZX0NISwotIyBkZWZpbmUgRU5UUllfQ0hLKG5hbWUp IFwKLQkudHlwZSBfX21lbWNweV9jaGtfc3NlMiwgQGZ1bmN0aW9uOyBcCi0J Lmdsb2JsIF9fbWVtY3B5X2Noa19zc2UyOyBcCi0JLnAyYWxpZ24gNDsgXAot CV9fbWVtY3B5X2Noa19zc2UyOiBjZmlfc3RhcnRwcm9jOyBcCi0JQ0FMTF9N Q09VTlQKLSMgdW5kZWYgRU5EX0NISwotIyBkZWZpbmUgRU5EX0NISyhuYW1l KSBcCi0JY2ZpX2VuZHByb2M7IC5zaXplIF9fbWVtY3B5X2Noa19zc2UyLCAu LV9fbWVtY3B5X2Noa19zc2UyCi0KLSMgdW5kZWYgbGliY19oaWRkZW5fYnVp bHRpbl9kZWYKLS8qIEl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBzZW5kIGxp YmMtaW50ZXJuYWwgbWVtY3B5IGNhbGxzIHRocm91Z2ggYSBQTFQuCi0gICBU aGUgc3BlZWR1cCB3ZSBnZXQgZnJvbSB1c2luZyBTU1NFMyBpbnN0cnVjdGlv biBpcyBsaWtlbHkgZWF0ZW4gYXdheQotICAgYnkgdGhlIGluZGlyZWN0IGNh bGwgaW4gdGhlIFBMVC4gICovCi0jIGRlZmluZSBsaWJjX2hpZGRlbl9idWls dGluX2RlZihuYW1lKSBcCi0JLmdsb2JsIF9fR0lfbWVtY3B5OyBfX0dJX21l bWNweSA9IF9fbWVtY3B5X3NzZTIKLQorIyB1bmRlZiBtZW1jcHkKKyMgaW5j bHVkZSA8c2hsaWItY29tcGF0Lmg+CiB2ZXJzaW9uZWRfc3ltYm9sIChsaWJj LCBfX25ld19tZW1jcHksIG1lbWNweSwgR0xJQkNfMl8xNCk7CiAjZW5kaWYK LQotI2luY2x1ZGUgIi4uL21lbWNweS5TIgpkaWZmIC0tZ2l0IGEvc3lzZGVw cy94ODZfNjQvbXVsdGlhcmNoL21lbWNweV9jaGsuUyBiL3N5c2RlcHMveDg2 XzY0L211bHRpYXJjaC9tZW1jcHlfY2hrLlMKaW5kZXggNjQ4MjE3ZS4uMTFm MTMxMCAxMDA2NDQKLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21l bWNweV9jaGsuUworKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVt Y3B5X2Noay5TCkBAIC0zMCwyNCArMzAsNDAgQEAKIEVOVFJZKF9fbWVtY3B5 X2NoaykKIAkudHlwZQlfX21lbWNweV9jaGssIEBnbnVfaW5kaXJlY3RfZnVu Y3Rpb24KIAlMT0FEX1JUTERfR0xPQkFMX1JPX1JEWAotI2lmZGVmIEhBVkVf QVZYNTEyX0FTTV9TVVBQT1JUCisjIGlmZGVmIEhBVkVfQVZYNTEyX0FTTV9T VVBQT1JUCiAJSEFTX0FSQ0hfRkVBVFVSRSAoQVZYNTEyRl9Vc2FibGUpCi0J anogICAgICAxZgorCWp6CTFmCisJbGVhCV9fbWVtY3B5X2Noa19hdng1MTJf bm9fdnplcm91cHBlciglcmlwKSwgJVJBWF9MUAogCUhBU19BUkNIX0ZFQVRV UkUgKFByZWZlcl9Ob19WWkVST1VQUEVSKQotCWp6ICAgICAgMWYKLQlsZWFx ICAgIF9fbWVtY3B5X2Noa19hdng1MTJfbm9fdnplcm91cHBlciglcmlwKSwg JXJheAorCWpuegkyZgorCWxlYQlfX21lbWNweV9jaGtfYXZ4NTEyX3VuYWxp Z25lZF9lcm1zKCVyaXApLCAlUkFYX0xQCisJSEFTX0NQVV9GRUFUVVJFIChF Uk1TKQorCWpuegkyZgorCWxlYQlfX21lbWNweV9jaGtfYXZ4NTEyX3VuYWxp Z25lZCglcmlwKSwgJVJBWF9MUAogCXJldAotI2VuZGlmCi0xOglsZWFxCV9f bWVtY3B5X2Noa19zc2UyKCVyaXApLCAlcmF4CisjIGVuZGlmCisxOglsZWEJ X19tZW1jcHlfY2hrX2F2eF91bmFsaWduZWQoJXJpcCksICVSQVhfTFAKKwlI QVNfQVJDSF9GRUFUVVJFIChBVlhfRmFzdF9VbmFsaWduZWRfTG9hZCkKKwlq eglMKEZhc3RfVW5hbGlnbmVkX0xvYWQpCisJSEFTX0NQVV9GRUFUVVJFIChF Uk1TKQorCWp6CTJmCisJbGVhCV9fbWVtY3B5X2Noa19hdnhfdW5hbGlnbmVk X2VybXMoJXJpcCksICVSQVhfTFAKKwlyZXQKK0woRmFzdF9VbmFsaWduZWRf TG9hZCk6CisJbGVhCV9fbWVtY3B5X2Noa19zc2UyX3VuYWxpZ25lZCglcmlw KSwgJVJBWF9MUAorCUhBU19BUkNIX0ZFQVRVUkUgKEZhc3RfVW5hbGlnbmVk X0NvcHkpCisJanoJTChTU1NFMykKKwlIQVNfQ1BVX0ZFQVRVUkUgKEVSTVMp CisJanoJMmYKKwlsZWEJX19tZW1jcHlfY2hrX3NzZTJfdW5hbGlnbmVkX2Vy bXMoJXJpcCksICVSQVhfTFAKKwlyZXQKK0woU1NTRTMpOgogCUhBU19DUFVf RkVBVFVSRSAoU1NTRTMpCiAJanoJMmYKLQlsZWFxCV9fbWVtY3B5X2Noa19z c3NlMyglcmlwKSwgJXJheAorCWxlYSAgICBfX21lbWNweV9jaGtfc3NzZTNf YmFjayglcmlwKSwgJVJBWF9MUAogCUhBU19BUkNIX0ZFQVRVUkUgKEZhc3Rf Q29weV9CYWNrd2FyZCkKLQlqegkyZgotCWxlYXEJX19tZW1jcHlfY2hrX3Nz c2UzX2JhY2soJXJpcCksICVyYXgKLQlIQVNfQVJDSF9GRUFUVVJFIChBVlhf RmFzdF9VbmFsaWduZWRfTG9hZCkKLQlqeiAgMmYKLQlsZWFxICAgIF9fbWVt Y3B5X2Noa19hdnhfdW5hbGlnbmVkKCVyaXApLCAlcmF4CisJam56CTJmCisJ bGVhCV9fbWVtY3B5X2Noa19zc3NlMyglcmlwKSwgJVJBWF9MUAogMjoJcmV0 CiBFTkQoX19tZW1jcHlfY2hrKQogIyBlbHNlCmRpZmYgLS1naXQgYS9zeXNk ZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtbW92ZS1hdngtdW5hbGlnbmVkLlMg Yi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtbW92ZS1hdngtdW5hbGln bmVkLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1ZTM1ZjIu LjAwMDAwMDAKLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbW1v dmUtYXZ4LXVuYWxpZ25lZC5TCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAs MCBAQAotLyogbWVtbW92ZSB3aXRoIEFWWAotICAgQ29weXJpZ2h0IChDKSAy MDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0gICBU aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KLQotICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gICBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIKLSAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0g ICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKLSAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCi0gICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdO VSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCi0gICA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLwotCi0jZGVmaW5lIFVTRV9BU19NRU1NT1ZF Ci0jZGVmaW5lIE1FTUNQWQkJX19tZW1tb3ZlX2F2eF91bmFsaWduZWQKLSNk ZWZpbmUgTUVNQ1BZX0NISwlfX21lbW1vdmVfY2hrX2F2eF91bmFsaWduZWQK LSNpbmNsdWRlICJtZW1jcHktYXZ4LXVuYWxpZ25lZC5TIgpkaWZmIC0tZ2l0 IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbW1vdmUtc3NlMi11bmFs aWduZWQtZXJtcy5TIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbW1v dmUtc3NlMi11bmFsaWduZWQtZXJtcy5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBkN2VkYjE4Li4wMDAwMDAwCi0tLSBhL3N5c2RlcHMveDg2 XzY0L211bHRpYXJjaC9tZW1tb3ZlLXNzZTItdW5hbGlnbmVkLWVybXMuUwor KysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLSNpZiBJU19JTiAobGli YykKLSMgZGVmaW5lIFZFQ19TSVpFCTE2Ci0jIGRlZmluZSBWRUMoaSkJCXht bSMjaQotIyBkZWZpbmUgVk1PVk5UCQltb3ZudGRxCi0vKiBVc2UgbW92dXBz IGFuZCBtb3ZhcHMgZm9yIHNtYWxsZXIgY29kZSBzaXplcy4gICovCi0jIGRl ZmluZSBWTU9WVQkJbW92dXBzCi0jIGRlZmluZSBWTU9WQQkJbW92YXBzCi0K LSMgZGVmaW5lIFNFQ1RJT04ocCkJCXAKLSMgZGVmaW5lIE1FTU1PVkVfU1lN Qk9MKHAscykJcCMjX3NzZTJfIyNzCi0KLSMgaW5jbHVkZSAibWVtbW92ZS12 ZWMtdW5hbGlnbmVkLWVybXMuUyIKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lz ZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbW1vdmUtdmVjLXVuYWxpZ25lZC1l cm1zLlMgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtbW92ZS12ZWMt dW5hbGlnbmVkLWVybXMuUwppbmRleCAzNzQyYzEwLi5hMmNjZTM5IDEwMDY0 NAotLS0gYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtbW92ZS12ZWMt dW5hbGlnbmVkLWVybXMuUworKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFy Y2gvbWVtbW92ZS12ZWMtdW5hbGlnbmVkLWVybXMuUwpAQCAtMTA2LDI4ICsx MDYsMjggQEAKIAogCS5zZWN0aW9uIFNFQ1RJT04oLnRleHQpLCJheCIsQHBy b2diaXRzCiAjaWYgZGVmaW5lZCBTSEFSRUQgJiYgSVNfSU4gKGxpYmMpCi1F TlRSWSAoTUVNTU9WRV9DSEtfU1lNQk9MIChfX21lbXBjcHlfY2hrLCB1bmFs aWduZWRfMikpCitFTlRSWSAoTUVNTU9WRV9DSEtfU1lNQk9MIChfX21lbXBj cHlfY2hrLCB1bmFsaWduZWQpKQogCWNtcHEJJXJkeCwgJXJjeAogCWpiCUhJ RERFTl9KVU1QVEFSR0VUIChfX2Noa19mYWlsKQotRU5EIChNRU1NT1ZFX0NI S19TWU1CT0wgKF9fbWVtcGNweV9jaGssIHVuYWxpZ25lZF8yKSkKK0VORCAo TUVNTU9WRV9DSEtfU1lNQk9MIChfX21lbXBjcHlfY2hrLCB1bmFsaWduZWQp KQogI2VuZGlmCiAKICNpZiBWRUNfU0laRSA9PSAxNiB8fCBkZWZpbmVkIFNI QVJFRAotRU5UUlkgKE1FTVBDUFlfU1lNQk9MIChfX21lbXBjcHksIHVuYWxp Z25lZF8yKSkKK0VOVFJZIChNRU1QQ1BZX1NZTUJPTCAoX19tZW1wY3B5LCB1 bmFsaWduZWQpKQogCW1vdnEJJXJkaSwgJXJheAogCWFkZHEJJXJkeCwgJXJh eAogCWptcAlMKHN0YXJ0KQotRU5EIChNRU1QQ1BZX1NZTUJPTCAoX19tZW1w Y3B5LCB1bmFsaWduZWRfMikpCitFTkQgKE1FTVBDUFlfU1lNQk9MIChfX21l bXBjcHksIHVuYWxpZ25lZCkpCiAjZW5kaWYKIAogI2lmIGRlZmluZWQgU0hB UkVEICYmIElTX0lOIChsaWJjKQotRU5UUlkgKE1FTU1PVkVfQ0hLX1NZTUJP TCAoX19tZW1tb3ZlX2NoaywgdW5hbGlnbmVkXzIpKQorRU5UUlkgKE1FTU1P VkVfQ0hLX1NZTUJPTCAoX19tZW1tb3ZlX2NoaywgdW5hbGlnbmVkKSkKIAlj bXBxCSVyZHgsICVyY3gKIAlqYglISURERU5fSlVNUFRBUkdFVCAoX19jaGtf ZmFpbCkKLUVORCAoTUVNTU9WRV9DSEtfU1lNQk9MIChfX21lbW1vdmVfY2hr LCB1bmFsaWduZWRfMikpCitFTkQgKE1FTU1PVkVfQ0hLX1NZTUJPTCAoX19t ZW1tb3ZlX2NoaywgdW5hbGlnbmVkKSkKICNlbmRpZgogCi1FTlRSWSAoTUVN TU9WRV9TWU1CT0wgKF9fbWVtbW92ZSwgdW5hbGlnbmVkXzIpKQorRU5UUlkg KE1FTU1PVkVfU1lNQk9MIChfX21lbW1vdmUsIHVuYWxpZ25lZCkpCiAJbW92 cQklcmRpLCAlcmF4CiBMKHN0YXJ0KToKIAljbXBxCSRWRUNfU0laRSwgJXJk eApAQCAtMTQ4LDcgKzE0OCw3IEBAIEwobm9wKToKICNlbmRpZgogCXJldAog I2lmIGRlZmluZWQgVVNFX01VTFRJQVJDSCAmJiBJU19JTiAobGliYykKLUVO RCAoTUVNTU9WRV9TWU1CT0wgKF9fbWVtbW92ZSwgdW5hbGlnbmVkXzIpKQor RU5EIChNRU1NT1ZFX1NZTUJPTCAoX19tZW1tb3ZlLCB1bmFsaWduZWQpKQog CiAjIGlmIFZFQ19TSVpFID09IDE2ICYmIGRlZmluZWQgU0hBUkVECiAvKiBP bmx5IHVzZWQgdG8gbWVhc3VyZSBwZXJmb3JtYW5jZSBvZiBSRVAgTU9WU0Iu ICAqLwpAQCAtNTM5LDExICs1MzksMTEgQEAgc3Ryb25nX2FsaWFzIChNRU1N T1ZFX1NZTUJPTCAoX19tZW1tb3ZlLCB1bmFsaWduZWRfZXJtcyksCiBzdHJv bmdfYWxpYXMgKE1FTU1PVkVfU1lNQk9MIChfX21lbW1vdmVfY2hrLCB1bmFs aWduZWRfZXJtcyksCiAJICAgICAgTUVNTU9WRV9TWU1CT0wgKF9fbWVtY3B5 X2NoaywgdW5hbGlnbmVkX2VybXMpKQogIyAgZW5kaWYKLXN0cm9uZ19hbGlh cyAoTUVNTU9WRV9DSEtfU1lNQk9MIChfX21lbW1vdmVfY2hrLCB1bmFsaWdu ZWRfMiksCi0JICAgICAgTUVNTU9WRV9DSEtfU1lNQk9MIChfX21lbWNweV9j aGssIHVuYWxpZ25lZF8yKSkKK3N0cm9uZ19hbGlhcyAoTUVNTU9WRV9DSEtf U1lNQk9MIChfX21lbW1vdmVfY2hrLCB1bmFsaWduZWQpLAorCSAgICAgIE1F TU1PVkVfQ0hLX1NZTUJPTCAoX19tZW1jcHlfY2hrLCB1bmFsaWduZWQpKQog IyBlbmRpZgogI2VuZGlmCiAjaWYgVkVDX1NJWkUgPT0gMTYgfHwgZGVmaW5l ZCBTSEFSRUQKLXN0cm9uZ19hbGlhcyAoTUVNTU9WRV9TWU1CT0wgKF9fbWVt bW92ZSwgdW5hbGlnbmVkXzIpLAotCSAgICAgIE1FTUNQWV9TWU1CT0wgKF9f bWVtY3B5LCB1bmFsaWduZWRfMikpCitzdHJvbmdfYWxpYXMgKE1FTU1PVkVf U1lNQk9MIChfX21lbW1vdmUsIHVuYWxpZ25lZCksCisJICAgICAgTUVNQ1BZ X1NZTUJPTCAoX19tZW1jcHksIHVuYWxpZ25lZCkpCiAjZW5kaWYKZGlmZiAt LWdpdCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9tZW1tb3ZlLlMgYi9z eXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtbW92ZS5TCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1YzM1ODYKLS0tIC9kZXYvbnVs bAorKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtbW92ZS5TCkBA IC0wLDAgKzEsOTggQEAKKy8qIE11bHRpcGxlIHZlcnNpb25zIG9mIG1lbW1v dmUKKyAgIEFsbCB2ZXJzaW9ucyBtdXN0IGJlIGxpc3RlZCBpbiBpZnVuYy1p bXBsLWxpc3QuYy4KKyAgIENvcHlyaWdodCAoQykgMjAxNiBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAg dmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5 IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAg IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90 LCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov CisKKyNpbmNsdWRlIDxzeXNkZXAuaD4KKyNpbmNsdWRlIDxpbml0LWFyY2gu aD4KKworLyogRGVmaW5lIG11bHRpcGxlIHZlcnNpb25zIG9ubHkgZm9yIHRo ZSBkZWZpbml0aW9uIGluIGxpYiBhbmQgZm9yCisgICBEU08uICAqLworI2lm IElTX0lOIChsaWJjKQorCS50ZXh0CitFTlRSWShfX2xpYmNfbWVtbW92ZSkK KwkudHlwZQlfX2xpYmNfbWVtbW92ZSwgQGdudV9pbmRpcmVjdF9mdW5jdGlv bgorCUxPQURfUlRMRF9HTE9CQUxfUk9fUkRYCisjIGlmZGVmIEhBVkVfQVZY NTEyX0FTTV9TVVBQT1JUCisJSEFTX0FSQ0hfRkVBVFVSRSAoQVZYNTEyRl9V c2FibGUpCisJanoJMWYKKwlsZWEJX19tZW1tb3ZlX2F2eDUxMl9ub192emVy b3VwcGVyKCVyaXApLCAlUkFYX0xQCisJSEFTX0FSQ0hfRkVBVFVSRSAoUHJl ZmVyX05vX1ZaRVJPVVBQRVIpCisJam56CTJmCisJbGVhCV9fbWVtbW92ZV9h dng1MTJfdW5hbGlnbmVkX2VybXMoJXJpcCksICVSQVhfTFAKKwlIQVNfQ1BV X0ZFQVRVUkUgKEVSTVMpCisJam56CTJmCisJbGVhCV9fbWVtbW92ZV9hdng1 MTJfdW5hbGlnbmVkKCVyaXApLCAlUkFYX0xQCisJcmV0CisjIGVuZGlmCisx OglsZWEJX19tZW1tb3ZlX2F2eF91bmFsaWduZWQoJXJpcCksICVSQVhfTFAK KwlIQVNfQVJDSF9GRUFUVVJFIChBVlhfRmFzdF9VbmFsaWduZWRfTG9hZCkK KwlqeglMKEZhc3RfVW5hbGlnbmVkX0xvYWQpCisJSEFTX0NQVV9GRUFUVVJF IChFUk1TKQorCWp6CTJmCisJbGVhCV9fbWVtbW92ZV9hdnhfdW5hbGlnbmVk X2VybXMoJXJpcCksICVSQVhfTFAKKwlyZXQKK0woRmFzdF9VbmFsaWduZWRf TG9hZCk6CisJbGVhCV9fbWVtbW92ZV9zc2UyX3VuYWxpZ25lZCglcmlwKSwg JVJBWF9MUAorCUhBU19BUkNIX0ZFQVRVUkUgKEZhc3RfVW5hbGlnbmVkX0Nv cHkpCisJanoJTChTU1NFMykKKwlIQVNfQ1BVX0ZFQVRVUkUgKEVSTVMpCisJ anoJMmYKKwlsZWEJX19tZW1tb3ZlX3NzZTJfdW5hbGlnbmVkX2VybXMoJXJp cCksICVSQVhfTFAKKwlyZXQKK0woU1NTRTMpOgorCUhBU19DUFVfRkVBVFVS RSAoU1NTRTMpCisJanoJMmYKKwlsZWEgICAgX19tZW1tb3ZlX3Nzc2UzX2Jh Y2soJXJpcCksICVSQVhfTFAKKwlIQVNfQVJDSF9GRUFUVVJFIChGYXN0X0Nv cHlfQmFja3dhcmQpCisJam56CTJmCisJbGVhCV9fbWVtbW92ZV9zc3NlMygl cmlwKSwgJVJBWF9MUAorMjoJcmV0CitFTkQoX19saWJjX21lbW1vdmUpCisj ZW5kaWYKKworI2lmIElTX0lOIChsaWJjKQorIyBkZWZpbmUgTUVNTU9WRV9T WU1CT0wocCxzKQlwIyNfc3NlMl8jI3MKKworIyBpZmRlZiBTSEFSRUQKK2xp YmNfaGlkZGVuX3ZlciAoX19tZW1tb3ZlX3NzZTJfdW5hbGlnbmVkLCBtZW1t b3ZlKQorbGliY19oaWRkZW5fdmVyIChfX21lbWNweV9zc2UyX3VuYWxpZ25l ZCwgbWVtY3B5KQorbGliY19oaWRkZW5fdmVyIChfX21lbXBjcHlfc3NlMl91 bmFsaWduZWQsIG1lbXBjcHkpCitsaWJjX2hpZGRlbl92ZXIgKF9fbWVtcGNw eV9zc2UyX3VuYWxpZ25lZCwgX19tZW1wY3B5KQorCisjICB1bmRlZiBsaWJj X2hpZGRlbl9idWlsdGluX2RlZgorLyogSXQgZG9lc24ndCBtYWtlIHNlbnNl IHRvIHNlbmQgbGliYy1pbnRlcm5hbCBtZW1tb3ZlIGNhbGxzIHRocm91Z2gg YSBQTFQuCisgICBUaGUgc3BlZWR1cCB3ZSBnZXQgZnJvbSB1c2luZyBTU0Uy IGluc3RydWN0aW9ucyBpcyBsaWtlbHkgZWF0ZW4gYXdheQorICAgYnkgdGhl IGluZGlyZWN0IGNhbGwgaW4gdGhlIFBMVC4gICovCisjICBkZWZpbmUgbGli Y19oaWRkZW5fYnVpbHRpbl9kZWYKKyMgZW5kaWYKK3N0cm9uZ19hbGlhcyAo X19saWJjX21lbW1vdmUsIG1lbW1vdmUpCisjZW5kaWYKKworI2lmICFkZWZp bmVkIFNIQVJFRCB8fCAhSVNfSU4gKGxpYmMpCit3ZWFrX2FsaWFzIChfX21l bXBjcHksIG1lbXBjcHkpCisjZW5kaWYKKworI2luY2x1ZGUgIi4uL21lbW1v dmUuUyIKKworI2lmIGRlZmluZWQgU0hBUkVEICYmIElTX0lOIChsaWJjKQor IyBpbmNsdWRlIDxzaGxpYi1jb21wYXQuaD4KKyMgaWYgU0hMSUJfQ09NUEFU IChsaWJjLCBHTElCQ18yXzJfNSwgR0xJQkNfMl8xNCkKKy8qIFVzZSBfX21l bW1vdmVfc3NlMl91bmFsaWduZWQgdG8gc3VwcG9ydCBvdmVybGFwcGluZyBh ZGRyZXNzZXMuICAqLworY29tcGF0X3N5bWJvbCAobGliYywgX19tZW1tb3Zl X3NzZTJfdW5hbGlnbmVkLCBtZW1jcHksIEdMSUJDXzJfMl81KTsKKyMgZW5k aWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlh cmNoL21lbW1vdmUuYyBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9tZW1t b3ZlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkYTU2NDAu LjAwMDAwMDAKLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbW1v dmUuYworKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLS8qIE11bHRp cGxlIHZlcnNpb25zIG9mIG1lbW1vdmUuCi0gICBBbGwgdmVyc2lvbnMgbXVz dCBiZSBsaXN0ZWQgaW4gaWZ1bmMtaW1wbC1saXN0LmMuCi0gICBDb3B5cmln aHQgKEMpIDIwMTAtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KLSAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5 LgotCi0gICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKLSAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgdmVyc2lvbiAyLjEgb2YgdGhl IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCi0KLSAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgotICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0K LSAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAgIExpY2Vuc2UgYWxvbmcgd2l0 aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKLSAgIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0KLSNpZiBJU19JTiAobGli YykKLSMgZGVmaW5lIE1FTU1PVkUgX19tZW1tb3ZlX3NzZTIKLSMgaWZkZWYg U0hBUkVECi0jICB1bmRlZiBsaWJjX2hpZGRlbl9idWlsdGluX2RlZgotIyAg ZGVmaW5lIGxpYmNfaGlkZGVuX2J1aWx0aW5fZGVmKG5hbWUpIFwKLSAgX19o aWRkZW5fdmVyMSAoX19tZW1tb3ZlX3NzZTIsIF9fR0lfbWVtbW92ZSwgX19t ZW1tb3ZlX3NzZTIpOwotIyBlbmRpZgotCi0vKiBSZWRlZmluZSBtZW1tb3Zl IHNvIHRoYXQgdGhlIGNvbXBpbGVyIHdvbid0IGNvbXBsYWluIGFib3V0IHRo ZSB0eXBlCi0gICBtaXNtYXRjaCB3aXRoIHRoZSBJRlVOQyBzZWxlY3RvciBp biBzdHJvbmdfYWxpYXMsIGJlbG93LiAgKi8KLSMgdW5kZWYgbWVtbW92ZQot IyBkZWZpbmUgbWVtbW92ZSBfX3JlZGlyZWN0X21lbW1vdmUKLSMgaW5jbHVk ZSA8c3RyaW5nLmg+Ci0jIHVuZGVmIG1lbW1vdmUKLQotZXh0ZXJuIF9fdHlw ZW9mIChfX3JlZGlyZWN0X21lbW1vdmUpIF9fbWVtbW92ZV9zc2UyIGF0dHJp YnV0ZV9oaWRkZW47Ci1leHRlcm4gX190eXBlb2YgKF9fcmVkaXJlY3RfbWVt bW92ZSkgX19tZW1tb3ZlX3Nzc2UzIGF0dHJpYnV0ZV9oaWRkZW47Ci1leHRl cm4gX190eXBlb2YgKF9fcmVkaXJlY3RfbWVtbW92ZSkgX19tZW1tb3ZlX3Nz c2UzX2JhY2sgYXR0cmlidXRlX2hpZGRlbjsKLWV4dGVybiBfX3R5cGVvZiAo X19yZWRpcmVjdF9tZW1tb3ZlKSBfX21lbW1vdmVfYXZ4X3VuYWxpZ25lZCBh dHRyaWJ1dGVfaGlkZGVuOwotIyBpZmRlZiBIQVZFX0FWWDUxMl9BU01fU1VQ UE9SVAotICBleHRlcm4gX190eXBlb2YgKF9fcmVkaXJlY3RfbWVtbW92ZSkg X19tZW1tb3ZlX2F2eDUxMl9ub192emVyb3VwcGVyIGF0dHJpYnV0ZV9oaWRk ZW47Ci0jIGVuZGlmCi0KLSNlbmRpZgotCi0jaW5jbHVkZSAic3RyaW5nL21l bW1vdmUuYyIKLQotI2lmIElTX0lOIChsaWJjKQotIyBpbmNsdWRlIDxzaGxp Yi1jb21wYXQuaD4KLSMgaW5jbHVkZSAiaW5pdC1hcmNoLmgiCi0KLS8qIEF2 b2lkIERXQVJGIGRlZmluaXRpb24gRElFIG9uIGlmdW5jIHN5bWJvbCBzbyB0 aGF0IEdEQiBjYW4gaGFuZGxlCi0gICBpZnVuYyBzeW1ib2wgcHJvcGVybHku ICAqLwotZXh0ZXJuIF9fdHlwZW9mIChfX3JlZGlyZWN0X21lbW1vdmUpIF9f bGliY19tZW1tb3ZlOwotbGliY19pZnVuYyAoX19saWJjX21lbW1vdmUsCi0j aWZkZWYgSEFWRV9BVlg1MTJfQVNNX1NVUFBPUlQKLQkgICAgSEFTX0FSQ0hf RkVBVFVSRSAoQVZYNTEyRl9Vc2FibGUpCi0JICAgICAgJiYgSEFTX0FSQ0hf RkVBVFVSRSAoUHJlZmVyX05vX1ZaRVJPVVBQRVIpCi0JICAgID8gX19tZW1t b3ZlX2F2eDUxMl9ub192emVyb3VwcGVyCi0JICAgIDoKLSNlbmRpZgotCSAg ICAoSEFTX0FSQ0hfRkVBVFVSRSAoQVZYX0Zhc3RfVW5hbGlnbmVkX0xvYWQp Ci0JICAgID8gX19tZW1tb3ZlX2F2eF91bmFsaWduZWQKLQkgICAgOiAoSEFT X0NQVV9GRUFUVVJFIChTU1NFMykKLQkgICAgICAgPyAoSEFTX0FSQ0hfRkVB VFVSRSAoRmFzdF9Db3B5X0JhY2t3YXJkKQotCSAgICAgICAgICA/IF9fbWVt bW92ZV9zc3NlM19iYWNrIDogX19tZW1tb3ZlX3Nzc2UzKQotCSAgICAgICA6 IF9fbWVtbW92ZV9zc2UyKSkpOwotCi1zdHJvbmdfYWxpYXMgKF9fbGliY19t ZW1tb3ZlLCBtZW1tb3ZlKQotCi0jIGlmIFNITElCX0NPTVBBVCAobGliYywg R0xJQkNfMl8yXzUsIEdMSUJDXzJfMTQpCi1jb21wYXRfc3ltYm9sIChsaWJj LCBtZW1tb3ZlLCBtZW1jcHksIEdMSUJDXzJfMl81KTsKLSMgZW5kaWYKLSNl bmRpZgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21l bW1vdmVfY2hrLlMgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtbW92 ZV9jaGsuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j ZDYzOWI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy94ODZfNjQvbXVs dGlhcmNoL21lbW1vdmVfY2hrLlMKQEAgLTAsMCArMSw3MSBAQAorLyogTXVs dGlwbGUgdmVyc2lvbnMgb2YgX19tZW1tb3ZlX2NoaworICAgQWxsIHZlcnNp b25zIG11c3QgYmUgbGlzdGVkIGluIGlmdW5jLWltcGwtbGlzdC5jLgorICAg Q29weXJpZ2h0IChDKSAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJh cnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVz c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3 aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPHN5 c2RlcC5oPgorI2luY2x1ZGUgPGluaXQtYXJjaC5oPgorCisvKiBEZWZpbmUg bXVsdGlwbGUgdmVyc2lvbnMgb25seSBmb3IgdGhlIGRlZmluaXRpb24gaW4g bGliIGFuZCBmb3IKKyAgIERTTy4gIFRoZXJlIGFyZSBubyBtdWx0aWFyY2gg bWVtbW92ZSBmdW5jdGlvbnMgZm9yIHN0YXRpYyBiaW5hcmllcy4KKyAqLwor I2lmIElTX0lOIChsaWJjKQorIyBpZmRlZiBTSEFSRUQKKwkudGV4dAorRU5U UlkoX19tZW1tb3ZlX2NoaykKKwkudHlwZQlfX21lbW1vdmVfY2hrLCBAZ251 X2luZGlyZWN0X2Z1bmN0aW9uCisJTE9BRF9SVExEX0dMT0JBTF9ST19SRFgK KyMgaWZkZWYgSEFWRV9BVlg1MTJfQVNNX1NVUFBPUlQKKwlIQVNfQVJDSF9G RUFUVVJFIChBVlg1MTJGX1VzYWJsZSkKKwlqegkxZgorCWxlYQlfX21lbW1v dmVfY2hrX2F2eDUxMl9ub192emVyb3VwcGVyKCVyaXApLCAlUkFYX0xQCisJ SEFTX0FSQ0hfRkVBVFVSRSAoUHJlZmVyX05vX1ZaRVJPVVBQRVIpCisJam56 CTJmCisJbGVhCV9fbWVtbW92ZV9jaGtfYXZ4NTEyX3VuYWxpZ25lZF9lcm1z KCVyaXApLCAlUkFYX0xQCisJSEFTX0NQVV9GRUFUVVJFIChFUk1TKQorCWpu egkyZgorCWxlYQlfX21lbW1vdmVfY2hrX2F2eDUxMl91bmFsaWduZWQoJXJp cCksICVSQVhfTFAKKwlyZXQKKyMgZW5kaWYKKzE6CWxlYQlfX21lbW1vdmVf Y2hrX2F2eF91bmFsaWduZWQoJXJpcCksICVSQVhfTFAKKwlIQVNfQVJDSF9G RUFUVVJFIChBVlhfRmFzdF9VbmFsaWduZWRfTG9hZCkKKwlqeglMKEZhc3Rf VW5hbGlnbmVkX0xvYWQpCisJSEFTX0NQVV9GRUFUVVJFIChFUk1TKQorCWp6 CTJmCisJbGVhCV9fbWVtbW92ZV9jaGtfYXZ4X3VuYWxpZ25lZF9lcm1zKCVy aXApLCAlUkFYX0xQCisJcmV0CitMKEZhc3RfVW5hbGlnbmVkX0xvYWQpOgor CWxlYQlfX21lbW1vdmVfY2hrX3NzZTJfdW5hbGlnbmVkKCVyaXApLCAlUkFY X0xQCisJSEFTX0FSQ0hfRkVBVFVSRSAoRmFzdF9VbmFsaWduZWRfQ29weSkK KwlqeglMKFNTU0UzKQorCUhBU19DUFVfRkVBVFVSRSAoRVJNUykKKwlqegky ZgorCWxlYQlfX21lbW1vdmVfY2hrX3NzZTJfdW5hbGlnbmVkX2VybXMoJXJp cCksICVSQVhfTFAKKwlyZXQKK0woU1NTRTMpOgorCUhBU19DUFVfRkVBVFVS RSAoU1NTRTMpCisJanoJMmYKKwlsZWEgICAgX19tZW1tb3ZlX2Noa19zc3Nl M19iYWNrKCVyaXApLCAlUkFYX0xQCisJSEFTX0FSQ0hfRkVBVFVSRSAoRmFz dF9Db3B5X0JhY2t3YXJkKQorCWpuegkyZgorCWxlYQlfX21lbW1vdmVfY2hr X3Nzc2UzKCVyaXApLCAlUkFYX0xQCisyOglyZXQKK0VORChfX21lbW1vdmVf Y2hrKQorIyBlbHNlCisjICBpbmNsdWRlICIuLi9tZW1tb3ZlX2Noay5TIgor IyBlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9t dWx0aWFyY2gvbWVtbW92ZV9jaGsuYyBiL3N5c2RlcHMveDg2XzY0L211bHRp YXJjaC9tZW1tb3ZlX2Noay5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBmNjRkYTYzLi4wMDAwMDAwCi0tLSBhL3N5c2RlcHMveDg2XzY0L211 bHRpYXJjaC9tZW1tb3ZlX2Noay5jCisrKyAvZGV2L251bGwKQEAgLTEsNDYg KzAsMCBAQAotLyogTXVsdGlwbGUgdmVyc2lvbnMgb2YgX19tZW1tb3ZlX2No ay4KLSAgIEFsbCB2ZXJzaW9ucyBtdXN0IGJlIGxpc3RlZCBpbiBpZnVuYy1p bXBsLWxpc3QuYy4KLSAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotICAgVGhpcyBmaWxlIGlzIHBh cnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCi0KLSAgIFRoZSBHTlUgQyBMaWJy YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgotICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICAgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy Ci0gICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgVGhlIEdOVSBDIExp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKLSAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQotICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YwotICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBp ZiBub3QsIHNlZQotICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KLQotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgImluaXQt YXJjaC5oIgotCi0jZGVmaW5lIE1FTU1PVkVfQ0hLIF9fbWVtbW92ZV9jaGtf c3NlMgotCi1leHRlcm4gX190eXBlb2YgKF9fbWVtbW92ZV9jaGspIF9fbWVt bW92ZV9jaGtfc3NlMiBhdHRyaWJ1dGVfaGlkZGVuOwotZXh0ZXJuIF9fdHlw ZW9mIChfX21lbW1vdmVfY2hrKSBfX21lbW1vdmVfY2hrX3Nzc2UzIGF0dHJp YnV0ZV9oaWRkZW47Ci1leHRlcm4gX190eXBlb2YgKF9fbWVtbW92ZV9jaGsp IF9fbWVtbW92ZV9jaGtfc3NzZTNfYmFjayBhdHRyaWJ1dGVfaGlkZGVuOwot ZXh0ZXJuIF9fdHlwZW9mIChfX21lbW1vdmVfY2hrKSBfX21lbW1vdmVfY2hr X2F2eF91bmFsaWduZWQgYXR0cmlidXRlX2hpZGRlbjsKLSMgaWZkZWYgSEFW RV9BVlg1MTJfQVNNX1NVUFBPUlQKLSAgZXh0ZXJuIF9fdHlwZW9mIChfX21l bW1vdmVfY2hrKSBfX21lbW1vdmVfY2hrX2F2eDUxMl9ub192emVyb3VwcGVy IGF0dHJpYnV0ZV9oaWRkZW47Ci0jIGVuZGlmCi0KLSNpbmNsdWRlICJkZWJ1 Zy9tZW1tb3ZlX2Noay5jIgotCi1saWJjX2lmdW5jIChfX21lbW1vdmVfY2hr LAotI2lmZGVmIEhBVkVfQVZYNTEyX0FTTV9TVVBQT1JUCi0JICAgIEhBU19B UkNIX0ZFQVRVUkUgKEFWWDUxMkZfVXNhYmxlKQotCSAgICAgICYmIEhBU19B UkNIX0ZFQVRVUkUgKFByZWZlcl9Ob19WWkVST1VQUEVSKQotCSAgICA/IF9f bWVtbW92ZV9jaGtfYXZ4NTEyX25vX3Z6ZXJvdXBwZXIKLQkgICAgOgotI2Vu ZGlmCi0JICAgIEhBU19BUkNIX0ZFQVRVUkUgKEFWWF9GYXN0X1VuYWxpZ25l ZF9Mb2FkKSA/IF9fbWVtbW92ZV9jaGtfYXZ4X3VuYWxpZ25lZCA6Ci0JICAg IChIQVNfQ1BVX0ZFQVRVUkUgKFNTU0UzKQotCSAgICA/IChIQVNfQVJDSF9G RUFUVVJFIChGYXN0X0NvcHlfQmFja3dhcmQpCi0JICAgICAgID8gX19tZW1t b3ZlX2Noa19zc3NlM19iYWNrIDogX19tZW1tb3ZlX2Noa19zc3NlMykKLQkg ICAgOiBfX21lbW1vdmVfY2hrX3NzZTIpKTsKZGlmZiAtLWdpdCBhL3N5c2Rl cHMveDg2XzY0L211bHRpYXJjaC9tZW1wY3B5LlMgYi9zeXNkZXBzL3g4Nl82 NC9tdWx0aWFyY2gvbWVtcGNweS5TCmluZGV4IGVkNzg2MjMuLmY5YzZkZjMg MTAwNjQ0Ci0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9tZW1wY3B5 LlMKKysrIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbXBjcHkuUwpA QCAtMjUsNjIgKzI1LDQ2IEBACiAgICBEU08uICBJbiBzdGF0aWMgYmluYXJp ZXMgd2UgbmVlZCBtZW1wY3B5IGJlZm9yZSB0aGUgaW5pdGlhbGl6YXRpb24K ICAgIGhhcHBlbmVkLiAgKi8KICNpZiBkZWZpbmVkIFNIQVJFRCAmJiBJU19J TiAobGliYykKKwkudGV4dAogRU5UUlkoX19tZW1wY3B5KQogCS50eXBlCV9f bWVtcGNweSwgQGdudV9pbmRpcmVjdF9mdW5jdGlvbgogCUxPQURfUlRMRF9H TE9CQUxfUk9fUkRYCi0jaWZkZWYgSEFWRV9BVlg1MTJfQVNNX1NVUFBPUlQK KyMgaWZkZWYgSEFWRV9BVlg1MTJfQVNNX1NVUFBPUlQKIAlIQVNfQVJDSF9G RUFUVVJFIChBVlg1MTJGX1VzYWJsZSkKIAlqegkxZgorCWxlYQlfX21lbXBj cHlfYXZ4NTEyX25vX3Z6ZXJvdXBwZXIoJXJpcCksICVSQVhfTFAKIAlIQVNf QVJDSF9GRUFUVVJFIChQcmVmZXJfTm9fVlpFUk9VUFBFUikKLQlqegkxZgot CWxlYXEgICAgX19tZW1wY3B5X2F2eDUxMl9ub192emVyb3VwcGVyKCVyaXAp LCAlcmF4CisJam56CTJmCisJbGVhCV9fbWVtcGNweV9hdng1MTJfdW5hbGln bmVkX2VybXMoJXJpcCksICVSQVhfTFAKKwlIQVNfQ1BVX0ZFQVRVUkUgKEVS TVMpCisJam56CTJmCisJbGVhCV9fbWVtcGNweV9hdng1MTJfdW5hbGlnbmVk KCVyaXApLCAlUkFYX0xQCiAJcmV0Ci0jZW5kaWYKLTE6CWxlYXEJX19tZW1w Y3B5X3NzZTIoJXJpcCksICVyYXgKLQlIQVNfQ1BVX0ZFQVRVUkUgKFNTU0Uz KQorIyBlbmRpZgorMToJbGVhCV9fbWVtcGNweV9hdnhfdW5hbGlnbmVkKCVy aXApLCAlUkFYX0xQCisJSEFTX0FSQ0hfRkVBVFVSRSAoQVZYX0Zhc3RfVW5h bGlnbmVkX0xvYWQpCisJanoJTChGYXN0X1VuYWxpZ25lZF9Mb2FkKQorCUhB U19DUFVfRkVBVFVSRSAoRVJNUykKIAlqegkyZgotCWxlYXEJX19tZW1wY3B5 X3Nzc2UzKCVyaXApLCAlcmF4Ci0JSEFTX0FSQ0hfRkVBVFVSRSAoRmFzdF9D b3B5X0JhY2t3YXJkKQorCWxlYQlfX21lbXBjcHlfYXZ4X3VuYWxpZ25lZF9l cm1zKCVyaXApLCAlUkFYX0xQCisJcmV0CitMKEZhc3RfVW5hbGlnbmVkX0xv YWQpOgorCWxlYQlfX21lbXBjcHlfc3NlMl91bmFsaWduZWQoJXJpcCksICVS QVhfTFAKKwlIQVNfQVJDSF9GRUFUVVJFIChGYXN0X1VuYWxpZ25lZF9Db3B5 KQorCWp6CUwoU1NTRTMpCisJSEFTX0NQVV9GRUFUVVJFIChFUk1TKQogCWp6 CTJmCi0JbGVhcQlfX21lbXBjcHlfc3NzZTNfYmFjayglcmlwKSwgJXJheAot CUhBU19BUkNIX0ZFQVRVUkUgKEFWWF9GYXN0X1VuYWxpZ25lZF9Mb2FkKQor CWxlYQlfX21lbXBjcHlfc3NlMl91bmFsaWduZWRfZXJtcyglcmlwKSwgJVJB WF9MUAorCXJldAorTChTU1NFMyk6CisJSEFTX0NQVV9GRUFUVVJFIChTU1NF MykKIAlqegkyZgotCWxlYXEJX19tZW1wY3B5X2F2eF91bmFsaWduZWQoJXJp cCksICVyYXgKKwlsZWEgICAgX19tZW1wY3B5X3Nzc2UzX2JhY2soJXJpcCks ICVSQVhfTFAKKwlIQVNfQVJDSF9GRUFUVVJFIChGYXN0X0NvcHlfQmFja3dh cmQpCisJam56CTJmCisJbGVhCV9fbWVtcGNweV9zc3NlMyglcmlwKSwgJVJB WF9MUAogMjoJcmV0CiBFTkQoX19tZW1wY3B5KQogCi0jIHVuZGVmIEVOVFJZ Ci0jIGRlZmluZSBFTlRSWShuYW1lKSBcCi0JLnR5cGUgX19tZW1wY3B5X3Nz ZTIsIEBmdW5jdGlvbjsgXAotCS5wMmFsaWduIDQ7IFwKLQkuZ2xvYmwgX19t ZW1wY3B5X3NzZTI7IFwKLQkuaGlkZGVuIF9fbWVtcGNweV9zc2UyOyBcCi0J X19tZW1wY3B5X3NzZTI6IGNmaV9zdGFydHByb2M7IFwKLQlDQUxMX01DT1VO VAotIyB1bmRlZiBFTkQKLSMgZGVmaW5lIEVORChuYW1lKSBcCi0JY2ZpX2Vu ZHByb2M7IC5zaXplIF9fbWVtcGNweV9zc2UyLCAuLV9fbWVtcGNweV9zc2Uy Ci0KLSMgdW5kZWYgRU5UUllfQ0hLCi0jIGRlZmluZSBFTlRSWV9DSEsobmFt ZSkgXAotCS50eXBlIF9fbWVtcGNweV9jaGtfc3NlMiwgQGZ1bmN0aW9uOyBc Ci0JLmdsb2JsIF9fbWVtcGNweV9jaGtfc3NlMjsgXAotCS5wMmFsaWduIDQ7 IFwKLQlfX21lbXBjcHlfY2hrX3NzZTI6IGNmaV9zdGFydHByb2M7IFwKLQlD QUxMX01DT1VOVAotIyB1bmRlZiBFTkRfQ0hLCi0jIGRlZmluZSBFTkRfQ0hL KG5hbWUpIFwKLQljZmlfZW5kcHJvYzsgLnNpemUgX19tZW1wY3B5X2Noa19z c2UyLCAuLV9fbWVtcGNweV9jaGtfc3NlMgotCi0jIHVuZGVmIGxpYmNfaGlk ZGVuX2RlZgotIyB1bmRlZiBsaWJjX2hpZGRlbl9idWlsdGluX2RlZgotLyog SXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHNlbmQgbGliYy1pbnRlcm5hbCBt ZW1wY3B5IGNhbGxzIHRocm91Z2ggYSBQTFQuCi0gICBUaGUgc3BlZWR1cCB3 ZSBnZXQgZnJvbSB1c2luZyBTU1NFMyBpbnN0cnVjdGlvbiBpcyBsaWtlbHkg ZWF0ZW4gYXdheQotICAgYnkgdGhlIGluZGlyZWN0IGNhbGwgaW4gdGhlIFBM VC4gICovCi0jIGRlZmluZSBsaWJjX2hpZGRlbl9kZWYobmFtZSkgXAotCS5n bG9ibCBfX0dJX21lbXBjcHk7IF9fR0lfbWVtcGNweSA9IF9fbWVtcGNweV9z c2UyCi0jIGRlZmluZSBsaWJjX2hpZGRlbl9idWlsdGluX2RlZihuYW1lKSBc Ci0JLmdsb2JsIF9fR0lfX19tZW1wY3B5OyBfX0dJX19fbWVtcGNweSA9IF9f bWVtcGNweV9zc2UyCit3ZWFrX2FsaWFzIChfX21lbXBjcHksIG1lbXBjcHkp CiAjZW5kaWYKLQotI2luY2x1ZGUgIi4uL21lbXBjcHkuUyIKZGlmZiAtLWdp dCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9tZW1wY3B5X2Noay5TIGIv c3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbXBjcHlfY2hrLlMKaW5kZXgg NmU4YTg5ZC4uODBmNDYwZiAxMDA2NDQKLS0tIGEvc3lzZGVwcy94ODZfNjQv bXVsdGlhcmNoL21lbXBjcHlfY2hrLlMKKysrIGIvc3lzZGVwcy94ODZfNjQv bXVsdGlhcmNoL21lbXBjcHlfY2hrLlMKQEAgLTMwLDI0ICszMCw0MCBAQAog RU5UUlkoX19tZW1wY3B5X2NoaykKIAkudHlwZQlfX21lbXBjcHlfY2hrLCBA Z251X2luZGlyZWN0X2Z1bmN0aW9uCiAJTE9BRF9SVExEX0dMT0JBTF9ST19S RFgKLSNpZmRlZiBIQVZFX0FWWDUxMl9BU01fU1VQUE9SVAorIyBpZmRlZiBI QVZFX0FWWDUxMl9BU01fU1VQUE9SVAogCUhBU19BUkNIX0ZFQVRVUkUgKEFW WDUxMkZfVXNhYmxlKQogCWp6CTFmCisJbGVhCV9fbWVtcGNweV9jaGtfYXZ4 NTEyX25vX3Z6ZXJvdXBwZXIoJXJpcCksICVSQVhfTFAKIAlIQVNfQVJDSF9G RUFUVVJFIChQcmVmZXJfTm9fVlpFUk9VUFBFUikKLQlqegkxZgotCWxlYXEg ICAgX19tZW1wY3B5X2Noa19hdng1MTJfbm9fdnplcm91cHBlciglcmlwKSwg JXJheAorCWpuegkyZgorCWxlYQlfX21lbXBjcHlfY2hrX2F2eDUxMl91bmFs aWduZWRfZXJtcyglcmlwKSwgJVJBWF9MUAorCUhBU19DUFVfRkVBVFVSRSAo RVJNUykKKwlqbnoJMmYKKwlsZWEJX19tZW1wY3B5X2Noa19hdng1MTJfdW5h bGlnbmVkKCVyaXApLCAlUkFYX0xQCiAJcmV0Ci0jZW5kaWYKLTE6CWxlYXEJ X19tZW1wY3B5X2Noa19zc2UyKCVyaXApLCAlcmF4Ci0JSEFTX0NQVV9GRUFU VVJFIChTU1NFMykKKyMgZW5kaWYKKzE6CWxlYQlfX21lbXBjcHlfY2hrX2F2 eF91bmFsaWduZWQoJXJpcCksICVSQVhfTFAKKwlIQVNfQVJDSF9GRUFUVVJF IChBVlhfRmFzdF9VbmFsaWduZWRfTG9hZCkKKwlqeglMKEZhc3RfVW5hbGln bmVkX0xvYWQpCisJSEFTX0NQVV9GRUFUVVJFIChFUk1TKQogCWp6CTJmCi0J bGVhcQlfX21lbXBjcHlfY2hrX3Nzc2UzKCVyaXApLCAlcmF4Ci0JSEFTX0FS Q0hfRkVBVFVSRSAoRmFzdF9Db3B5X0JhY2t3YXJkKQorCWxlYQlfX21lbXBj cHlfY2hrX2F2eF91bmFsaWduZWRfZXJtcyglcmlwKSwgJVJBWF9MUAorCXJl dAorTChGYXN0X1VuYWxpZ25lZF9Mb2FkKToKKwlsZWEJX19tZW1wY3B5X2No a19zc2UyX3VuYWxpZ25lZCglcmlwKSwgJVJBWF9MUAorCUhBU19BUkNIX0ZF QVRVUkUgKEZhc3RfVW5hbGlnbmVkX0NvcHkpCisJanoJTChTU1NFMykKKwlI QVNfQ1BVX0ZFQVRVUkUgKEVSTVMpCiAJanoJMmYKLQlsZWFxCV9fbWVtcGNw eV9jaGtfc3NzZTNfYmFjayglcmlwKSwgJXJheAotCUhBU19BUkNIX0ZFQVRV UkUgKEFWWF9GYXN0X1VuYWxpZ25lZF9Mb2FkKQorCWxlYQlfX21lbXBjcHlf Y2hrX3NzZTJfdW5hbGlnbmVkX2VybXMoJXJpcCksICVSQVhfTFAKKwlyZXQK K0woU1NTRTMpOgorCUhBU19DUFVfRkVBVFVSRSAoU1NTRTMpCiAJanoJMmYK LQlsZWFxCV9fbWVtcGNweV9jaGtfYXZ4X3VuYWxpZ25lZCglcmlwKSwgJXJh eAorCWxlYSAgICBfX21lbXBjcHlfY2hrX3Nzc2UzX2JhY2soJXJpcCksICVS QVhfTFAKKwlIQVNfQVJDSF9GRUFUVVJFIChGYXN0X0NvcHlfQmFja3dhcmQp CisJam56CTJmCisJbGVhCV9fbWVtcGNweV9jaGtfc3NzZTMoJXJpcCksICVS QVhfTFAKIDI6CXJldAogRU5EKF9fbWVtcGNweV9jaGspCiAjIGVsc2UKLS0g CjIuNS41Cgo= --001a114f5db62f9fe10534ca4940--