From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ua1-x933.google.com (mail-ua1-x933.google.com [IPv6:2607:f8b0:4864:20::933]) by sourceware.org (Postfix) with ESMTPS id D04943943403; Thu, 12 May 2022 19:59:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D04943943403 Received: by mail-ua1-x933.google.com with SMTP id x5so2420443uap.8; Thu, 12 May 2022 12:59:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jLOfTX8u1UqN1c9fJFOj8SnAD8EUuVtVCJz+cZMHdRg=; b=vDnPxHQhK/B1krRVtRzwh9g9NbpFY+WyoArwjb2+wVPG8mZxaotKfXoFZDWiPMN/4I RyLNKzvFVBxVW6d/F5YtT6bBlCBAv7auLwuXQW8D+0XBa10C3h2PpnzPERWgGDEK71xI fXrBGYsqiNtqvg3IPsJCY0poahv+k6rzgULPSZuh0NubBv9YrTyhWKoWiTSVCiAxNPJw 0QWEl5jEwIh88nHrP3xgoBc4d3MUuck8CRPSEH4RTC6Vt3/hAHMN2KrkxAlGv+cNoEXT Mx858EgWDaPmk5WsEykIIhKzeogdrnZTYhILmXEWC3g0DFWJUVeldepHQ+4zUot0dttg mFVw== X-Gm-Message-State: AOAM530ZNmXC2Vp+ywuaUtAu9D3W9MU2rg3Aj//YQjQchDQgEzlSxGIB T45ZKIYvuwH0bid6rFbkYNTcWZR1j++OIR//Fxc+sa2NZbo= X-Google-Smtp-Source: ABdhPJz2xNq1+Z9TNAd9sCVujJYKMlcYOEpvsZacCm3hI16rrMUDkX97wORGJpZCxmrmzZ5UdKty+VLXcZg7w1h1Xgw= X-Received: by 2002:ab0:240e:0:b0:360:325a:7352 with SMTP id f14-20020ab0240e000000b00360325a7352mr1073965uan.108.1652385594240; Thu, 12 May 2022 12:59:54 -0700 (PDT) MIME-Version: 1.0 References: <20220415055132.1257272-1-goldstein.w.n@gmail.com> <20220415172801.1525674-1-goldstein.w.n@gmail.com> In-Reply-To: From: Sunil Pandey Date: Thu, 12 May 2022 12:59:17 -0700 Message-ID: Subject: Re: [PATCH v3 1/3] x86: Optimize memcmp SSE2 in memcmp.S To: Noah Goldstein , Libc-stable Mailing List Cc: Joseph Myers , GNU C Library Content-Type: multipart/mixed; boundary="000000000000609a4105ded60059" X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, HK_RANDOM_ENVFROM, HK_RANDOM_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-stable@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-stable mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 May 2022 19:59:56 -0000 --000000000000609a4105ded60059 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Apr 19, 2022 at 6:21 PM Noah Goldstein via Libc-alpha wrote: > > On Tue, Apr 19, 2022 at 5:56 PM Noah Goldstein = wrote: > > > > On Tue, Apr 19, 2022 at 3:53 PM Noah Goldstein wrote: > > > > > > On Tue, Apr 19, 2022 at 3:30 PM Joseph Myers wrote: > > > > > > > > A recent commit, probably this one, broke the build for x86_64-linu= x-gnu > > > > --disable-multi-arch. > > > > > > > > /scratch/jmyers/glibc-bot/install/compilers/x86_64-linux-gnu/lib/gc= c/x86_64-glibc-linux-gnu/11.2.1/../../../../x86_64-glibc-linux-gnu/bin/ld: = /scratch/jmyers/glibc-bot/build/glibcs/x86_64-linux-gnu-minimal/glibc/libc_= pic.os: in function `internal_fnwmatch': > > > > /scratch/jmyers/glibc-bot/src/glibc/posix/fnmatch_loop.c:513: undef= ined reference to `__wmemcmp' > > > > /scratch/jmyers/glibc-bot/install/compilers/x86_64-linux-gnu/lib/gc= c/x86_64-glibc-linux-gnu/11.2.1/../../../../x86_64-glibc-linux-gnu/bin/ld: = /scratch/jmyers/glibc-bot/src/glibc/posix/fnmatch_loop.c:536: undefined ref= erence to `__wmemcmp' > > > > /scratch/jmyers/glibc-bot/install/compilers/x86_64-linux-gnu/lib/gc= c/x86_64-glibc-linux-gnu/11.2.1/../../../../x86_64-glibc-linux-gnu/bin/ld: = /scratch/jmyers/glibc-bot/src/glibc/posix/fnmatch_loop.c:704: undefined ref= erence to `__wmemcmp' > > > > > > > > https://sourceware.org/pipermail/libc-testresults/2022q2/009576.htm= l > > > > > > Reproduced issue, think have fix. Testing it now. > > > > Posted a patch. > > Pushed fix. > > > > > > > > -- > > > > Joseph S. Myers > > > > joseph@codesourcery.com I would like to backport this patch to release branches. Any comments or objections? Conflict resolution patch attached. --Sunil --000000000000609a4105ded60059 Content-Type: application/octet-stream; name="0019-x86-Optimize-memcmp-SSE2-in-memcmp.S.patch" Content-Disposition: attachment; filename="0019-x86-Optimize-memcmp-SSE2-in-memcmp.S.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l33fo9hi0 RnJvbSAwNmU5MmZjYTk5MzdiMjI1NTUzOGFlNzAzYjM5OGUwZTZhNjA5NDQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIEdvbGRzdGVpbiA8Z29sZHN0ZWluLncubkBnbWFpbC5j b20+CkRhdGU6IEZyaSwgMTUgQXByIDIwMjIgMTI6Mjc6NTkgLTA1MDAKU3ViamVjdDogW1BBVENI IDE5LzI2XSB4ODY6IE9wdGltaXplIG1lbWNtcCBTU0UyIGluIG1lbWNtcC5TCgpOZXcgY29kZSBz YXZlIHNpemUgKC0zMDMgYnl0ZXMpIGFuZCBoYXMgc2lnbmlmaWNhbnRseSBiZXR0ZXIKcGVyZm9y bWFuY2UuCgpnZW9tZXRyaWNfbWVhbihOPTIwKSBvZiBwYWdlIGNyb3NzIGNhc2VzIE5ldyAvIE9y aWdpbmFsOiAwLjYzNApSZXZpZXdlZC1ieTogSC5KLiBMdSA8aGpsLnRvb2xzQGdtYWlsLmNvbT4K CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDg4MDQxNTdhZDlkYTM5NjMxNzAzYjkyMzE1NDYw ODA4ZWFjODZiMGMpCi0tLQogc3lzZGVwcy94ODZfNjQvbWVtY21wLlMgICAgICAgICAgICAgICAg ICB8IDg4NCArKysrKysrKysrKysrKy0tLS0tLS0tLQogc3lzZGVwcy94ODZfNjQvbWVtY21wZXEu UyAgICAgICAgICAgICAgICB8ICAgMiArLQogc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL01ha2Vm aWxlICAgICAgICB8ICAgMiArLQogc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbWNtcC1zc2Uy LlMgICB8ICAgNCArLQogc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbWNtcGVxLXNzZTIuUyB8 ICAgNCArLQogc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL3dtZW1jbXAtYy5jICAgICB8ICAgOSAt CiBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvd21lbWNtcC1zc2UyLlMgIHwgIDI1ICsKIHN5c2Rl cHMveDg2XzY0L3dtZW1jbXAuUyAgICAgICAgICAgICAgICAgfCAgMjEgKwogOCBmaWxlcyBjaGFu Z2VkLCA1NzUgaW5zZXJ0aW9ucygrKSwgMzc2IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAw NjQ0IHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC93bWVtY21wLWMuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC93bWVtY21wLXNzZTIuUwogY3JlYXRlIG1vZGUg MTAwNjQ0IHN5c2RlcHMveDg2XzY0L3dtZW1jbXAuUwoKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2 XzY0L21lbWNtcC5TIGIvc3lzZGVwcy94ODZfNjQvbWVtY21wLlMKaW5kZXggZTAyYTUzZWExZS4u YjE1MzY5NDA0OCAxMDA2NDQKLS0tIGEvc3lzZGVwcy94ODZfNjQvbWVtY21wLlMKKysrIGIvc3lz ZGVwcy94ODZfNjQvbWVtY21wLlMKQEAgLTE4LDM5NSArMTgsNTU3IEBACiAKICNpbmNsdWRlIDxz eXNkZXAuaD4KIAotCS50ZXh0Ci1FTlRSWSAobWVtY21wKQotI2lmZGVmIF9fSUxQMzJfXwotCS8q IENsZWFyIHRoZSB1cHBlciAzMiBiaXRzLiAgKi8KLQltb3ZsCSVlZHgsICVlZHgKKyNpZmRlZiBV U0VfQVNfV01FTUNNUAorIyBkZWZpbmUgUENNUEVRCXBjbXBlcWQKKyMgZGVmaW5lIENIQVJfU0la RQk0CisjIGRlZmluZSBTSVpFX09GRlNFVAkoMCkKKyNlbHNlCisjIGRlZmluZSBQQ01QRVEJcGNt cGVxYgorIyBkZWZpbmUgQ0hBUl9TSVpFCTEKICNlbmRpZgotCXRlc3QJJVJEWF9MUCwgJVJEWF9M UAotCWp6CUwoZmlueikKLQljbXBxCSQxLCAlcmR4Ci0JamJlCUwoZmlucjFiKQotCXN1YnEJJXJk aSwgJXJzaQotCW1vdnEJJXJkeCwgJXIxMAotCWNtcHEJJDMyLCAlcjEwCi0JamFlCUwoZ3QzMikK LQkvKiBIYW5kbGUgc21hbGwgY2h1bmtzIGFuZCBsYXN0IGJsb2NrIG9mIGxlc3MgdGhhbiAzMiBi eXRlcy4gICovCi1MKHNtYWxsKToKLQl0ZXN0cQkkMSwgJXIxMAotCWp6CUwoczJiKQotCW1vdnpi bAkoJXJkaSksCSVlYXgKLQltb3Z6YmwJKCVyZGksICVyc2kpLCAlZWR4Ci0Jc3VicSAgICAkMSwg JXIxMAotCWplCUwoZmluejEpCi0JYWRkcQkkMSwgJXJkaQotCXN1YmwJJWVkeCwgJWVheAotCWpu eglMKGV4aXQpCi1MKHMyYik6Ci0JdGVzdHEJJDIsICVyMTAKLQlqeglMKHM0YikKLQltb3Z6d2wJ KCVyZGkpLAklZWF4Ci0JbW92endsCSglcmRpLCAlcnNpKSwgJWVkeAotCXN1YnEgICAgJDIsICVy MTAKKwogI2lmZGVmIFVTRV9BU19NRU1DTVBFUQotCWplCUwoZmluejEpCisjIGRlZmluZSBTSVpF X09GRlNFVAkoMCkKKyMgZGVmaW5lIENIRUNLX0NNUCh4LCB5KQlzdWJsIHgsIHkKICNlbHNlCi0J amUJTChmaW4yXzcpCisjIGlmbmRlZiBTSVpFX09GRlNFVAorIyAgZGVmaW5lIFNJWkVfT0ZGU0VU CShDSEFSX1BFUl9WRUMgKiAyKQorIyBlbmRpZgorIyBkZWZpbmUgQ0hFQ0tfQ01QKHgsIHkpCWNt cGwgeCwgeQogI2VuZGlmCi0JYWRkcQkkMiwgJXJkaQotCWNtcGwJJWVkeCwgJWVheAotI2lmZGVm IFVTRV9BU19NRU1DTVBFUQotCWpueglMKG5lcV9lYXJseSkKKworI2RlZmluZSBWRUNfU0laRQkx NgorI2RlZmluZSBDSEFSX1BFUl9WRUMJKFZFQ19TSVpFIC8gQ0hBUl9TSVpFKQorCisjaWZuZGVm IE1FTUNNUAorIyBkZWZpbmUgTUVNQ01QCW1lbWNtcAorI2VuZGlmCisKKwkudGV4dAorRU5UUlko TUVNQ01QKQorI2lmZGVmIFVTRV9BU19XTUVNQ01QCisJLyogVXNlIDB4ZmZmZiB0byB0ZXN0IGZv ciBtaXNtYXRjaGVzIG9uIHBtb3Ztc2tiIGJpdG1hc2suIFN0b3JlCisJICAgaW4gZWN4IGZvciBj b2RlIHNpemUuIFRoaXMgaXMgcHJlZmVyYWJsZSB0byB1c2luZyBgaW5jd2AgYXMKKwkgICBpdCBh dm9pZHMgcGFydGlhbCByZWdpc3RlciBzdGFsbHMgb24gb2xkZXIgaGFyZHdhcmUgKHByZQorCSAg IFNuQikuICAqLworCW1vdmwJJDB4ZmZmZiwgJWVjeAorI2VuZGlmCisJY21wcQkkQ0hBUl9QRVJf VkVDLCAlcmR4CisJamEJTChtb3JlXzF4X3ZlYykKKworI2lmZGVmIFVTRV9BU19XTUVNQ01QCisJ Lyogc2F2ZXMgYSBieXRlIG9mIGNvZGUga2VlcGluZyB0aGUgZmFsbCB0aHJvdWdoIHBhdGggbiA9 IFsyLCA0XQorCSAgIGluIHRoZSBpbml0aWFsIGNhY2hlIGxpbmUuICAqLworCWRlY2wJJWVkeAor CWpsZQlMKGNtcF8wXzEpCisKKwltb3ZxCSglcnNpKSwgJXhtbTAKKwltb3ZxCSglcmRpKSwgJXht bTEKKwlQQ01QRVEJJXhtbTAsICV4bW0xCisJcG1vdm1za2IgJXhtbTEsICVlYXgKKwlzdWJsCSVl Y3gsICVlYXgKKwlqbnoJTChyZXRfbm9uemVyb192ZWNfc3RhcnRfMCkKKworCW1vdnEJLTQoJXJz aSwgJXJkeCwgQ0hBUl9TSVpFKSwgJXhtbTAKKwltb3ZxCS00KCVyZGksICVyZHgsIENIQVJfU0la RSksICV4bW0xCisJUENNUEVRCSV4bW0wLCAleG1tMQorCXBtb3Ztc2tiICV4bW0xLCAlZWF4CisJ c3VibAklZWN4LCAlZWF4CisJam56CUwocmV0X25vbnplcm9fdmVjX2VuZF8wX2FkaikKICNlbHNl Ci0Jam56CUwoZmluMl83KQorCWNtcGwJJDgsICVlZHgKKwlqYQlMKGNtcF85XzE2KQorCisJY21w bAkkNCwgJWVkeAorCWpiCUwoY21wXzBfMykKKworIyBpZmRlZiBVU0VfQVNfTUVNQ01QRVEKKwlt b3ZsCSglcnNpKSwgJWVheAorCXN1YmwJKCVyZGkpLCAlZWF4CisKKwltb3ZsCS00KCVyc2ksICVy ZHgpLCAlZXNpCisJc3VibAktNCglcmRpLCAlcmR4KSwgJWVzaQorCisJb3JsCSVlc2ksICVlYXgK KwlyZXQKKyMgZWxzZQorCS8qIENvbWJpbmUgY29tcGFyaXNvbnMgZm9yIGxvIGFuZCBoaSA0LWJ5 dGUgY29tcGFyaXNvbnMuICAqLworCW1vdmwJLTQoJXJzaSwgJXJkeCksICVlY3gKKwltb3ZsCS00 KCVyZGksICVyZHgpLCAlZWF4CisJc2hscQkkMzIsICVyY3gKKwlzaGxxCSQzMiwgJXJheAorCW1v dmwJKCVyc2kpLCAlZXNpCisJbW92bAkoJXJkaSksICVlZGkKKwlvcnEJJXJzaSwgJXJjeAorCW9y cQklcmRpLCAlcmF4CisJLyogT25seSBjb21wdXRlIHByb3BlciByZXR1cm4gaWYgbm90LWVxdWFs LiAgKi8KKwljbXBxCSVyY3gsICVyYXgKKwlqbnoJTChyZXRfbm9uemVybykKKwl4b3JsCSVlYXgs ICVlYXgKKwlyZXQKKyMgZW5kaWYKKworCS5wMmFsaWduIDQsLCAxMAorTChjbXBfOV8xNik6Cisj IGlmZGVmIFVTRV9BU19NRU1DTVBFUQorCW1vdnEJKCVyc2kpLCAlcmF4CisJc3VicQkoJXJkaSks ICVyYXgKKworCW1vdnEJLTgoJXJzaSwgJXJkeCksICVyY3gKKwlzdWJxCS04KCVyZGksICVyZHgp LCAlcmN4CisJb3JxCSVyY3gsICVyYXgKKwkvKiBDb252ZXJ0IDY0IGJpdCAtPiAzMiBiaXQgYm9v bGVhbiAod2Ugc2hvdWxkIGhhdmUgbWFkZSB0aGUgQUJJCisJICAgcmV0dXJuIGxvbmcpLiAgKi8K KwlzZXRuegklY2wKKwltb3Z6YmwJJWNsLCAlZWF4CisjIGVsc2UKKwltb3ZxCSglcnNpKSwgJXJj eAorCW1vdnEJKCVyZGkpLCAlcmF4CisJLyogT25seSBjb21wdXRlIHByb3BlciByZXR1cm4gaWYg bm90LWVxdWFsLiAgKi8KKwljbXBxCSVyY3gsICVyYXgKKwlqbnoJTChyZXRfbm9uemVybykKKwor CW1vdnEJLTgoJXJzaSwgJXJkeCwgQ0hBUl9TSVpFKSwgJXJjeAorCW1vdnEJLTgoJXJkaSwgJXJk eCwgQ0hBUl9TSVpFKSwgJXJheAorCS8qIE9ubHkgY29tcHV0ZSBwcm9wZXIgcmV0dXJuIGlmIG5v dC1lcXVhbC4gICovCisJY21wcQklcmN4LCAlcmF4CisJam56CUwocmV0X25vbnplcm8pCisJeG9y bAklZWF4LCAlZWF4CisjIGVuZGlmCiAjZW5kaWYKLUwoczRiKToKLQl0ZXN0cQkkNCwgJXIxMAot CWp6CUwoczhiKQotCW1vdmwJKCVyZGkpLAklZWF4Ci0JbW92bAkoJXJkaSwgJXJzaSksICVlZHgK LQlzdWJxICAgICQ0LCAlcjEwCi0jaWZkZWYgVVNFX0FTX01FTUNNUEVRCi0JamUJTChmaW56MSkK KwlyZXQKKworCS5wMmFsaWduIDQsLCA4CitMKGNtcF8wXzEpOgorCS8qIEZsYWcgc2V0IGJ5IGVh cmxpZXIgY29tcGFyaXNvbiBhZ2FpbnN0IDEuICAqLworCWpuZQlMKGNtcF8wXzApCisjaWZkZWYg VVNFX0FTX1dNRU1DTVAKKwltb3ZsCSglcmRpKSwgJWVjeAorCXhvcmwJJWVkeCwgJWVkeAorCWNt cGwJKCVyc2kpLCAlZWN4CisJamUJTChjbXBfMF8wKQorCXNldGcJJWRsCisJbGVhbAktMSglcmR4 LCAlcmR4KSwgJWVheAogI2Vsc2UKLQlqZQlMKGZpbjJfNykKKwltb3Z6YmwJKCVyZGkpLCAlZWF4 CisJbW92emJsCSglcnNpKSwgJWVjeAorCXN1YmwJJWVjeCwgJWVheAogI2VuZGlmCi0JYWRkcQkk NCwgJXJkaQotCWNtcGwJJWVkeCwgJWVheAotI2lmZGVmIFVTRV9BU19NRU1DTVBFUQotCWpueglM KG5lcV9lYXJseSkKKwlyZXQKKworCS8qIEZpdHMgaW4gYWxpZ25pbmcgYnl0ZXMuICAqLworTChj bXBfMF8wKToKKwl4b3JsCSVlYXgsICVlYXgKKwlyZXQKKworI2lmZGVmIFVTRV9BU19XTUVNQ01Q CisJLnAyYWxpZ24gNAorTChyZXRfbm9uemVyb192ZWNfc3RhcnRfMCk6CisJYnNmbAklZWF4LCAl ZWF4CisJbW92bAkoJXJkaSwgJXJheCksICVlY3gKKwl4b3JsCSVlZHgsICVlZHgKKwljbXBsCSgl cnNpLCAlcmF4KSwgJWVjeAorCS8qIE5COiBubyBwYXJ0aWFsIHJlZ2lzdGVyIHN0YWxsIGhlcmUg YmVjYXVzZSB4b3JsIHplcm8gaWRpb20KKwkgICBhYm92ZS4gICovCisJc2V0ZwklZGwKKwlsZWFs CS0xKCVyZHgsICVyZHgpLCAlZWF4CisJcmV0CisjZWxzZQorCisjIGlmbmRlZiBVU0VfQVNfTUVN Q01QRVEKKwkucDJhbGlnbiA0LCwgMTQKK0wocmV0X25vbnplcm8pOgorCS8qIE5lZWQgdG8gYnN3 YXAgdG8gZ2V0IHByb3BlciByZXR1cm4gd2l0aG91dCBicmFuY2guICAqLworCWJzd2FwcQklcmN4 CisJYnN3YXBxCSVyYXgKKwlzdWJxCSVyY3gsICVyYXgKKwlzYmJsCSVlYXgsICVlYXgKKwlvcmwJ JDEsICVlYXgKKwlyZXQKKyMgZW5kaWYKKworCS5wMmFsaWduIDQKK0woY21wXzBfMyk6CisjIGlm ZGVmIFVTRV9BU19NRU1DTVBFUQorCS8qIE5vIHJlYXNvbiB0byBhZGQgdG8gZGVwZW5kZW5jeSBj aGFpbiBvbiByZHguIFNhdmluZyBhIHRoZQorCSAgIGJ5dGVzIGhlcmUgZG9lc24ndCBjaGFuZ2Ug bnVtYmVyIG9mIGZldGNoIGJsb2Nrcy4gICovCisJY21wbAkkMSwgJWVkeAorCWpiZQlMKGNtcF8w XzEpCisjIGVsc2UKKwkvKiBXZSBuZWVkIHRoZSBjb2RlIHNpemUgdG8gcHJldmVudCB0YWtpbmcg YW4gZXh0cmEgZmV0Y2ggYmxvY2suCisJICovCisJZGVjbAklZWR4CisJamxlCUwoY21wXzBfMSkK KyMgZW5kaWYKKwltb3Z6d2wJKCVyc2kpLCAlZWN4CisJbW92endsCSglcmRpKSwgJWVheAorCisj IGlmZGVmIFVTRV9BU19NRU1DTVBFUQorCXN1YmwJJWVjeCwgJWVheAorCisJbW92emJsCS0xKCVy c2ksICVyZHgpLCAlZXNpCisJbW92emJsCS0xKCVyZGksICVyZHgpLCAlZWRpCisJc3VibAklZWRp LCAlZXNpCisJb3JsCSVlc2ksICVlYXgKKyMgZWxzZQorCWJzd2FwbAklZWN4CisJYnN3YXBsCSVl YXgKKworCS8qIEltcGxpY2l0IHJpZ2h0IHNoaWZ0IGJ5IG9uZS4gV2UganVzdCBuZWVkIHRvIGRp c3BsYWNlIHRoZQorCSAgIHNpZ24gYml0cy4gICovCisJc2hybAklZWN4CisJc2hybAklZWF4CisK KwkvKiBFYXQgYSBwYXJ0aWFsIHJlZ2lzdGVyIHN0YWxsIGhlcmUuIFNhdmVzIGNvZGUgc3RvcHBp bmcKKwkgICBMKGNtcF8wXzMpIGZyb20gYmxlZWRpbmcgaW50byB0aGUgbmV4dCBmZXRjaCBibG9j ayBhbmQgc2F2ZXMKKwkgICBhbiBBTFUuICAqLworCW1vdmIJKCVyc2ksICVyZHgpLCAlY2wKKwlt b3Z6YmwJKCVyZGksICVyZHgpLCAlZWRpCisJb3JsCSVlZGksICVlYXgKKwlzdWJsCSVlY3gsICVl YXgKKyMgZW5kaWYKKwlyZXQKKyNlbmRpZgorCisJLnAyYWxpZ24gNQorTChtb3JlXzF4X3ZlYyk6 CisjaWZuZGVmIFVTRV9BU19XTUVNQ01QCisJLyogVXNlIDB4ZmZmZiB0byB0ZXN0IGZvciBtaXNt YXRjaGVzIG9uIHBtb3Ztc2tiIGJpdG1hc2suIFN0b3JlCisJICAgaW4gZWN4IGZvciBjb2RlIHNp emUuIFRoaXMgaXMgcHJlZmVyYWJsZSB0byB1c2luZyBgaW5jd2AgYXMKKwkgICBpdCBhdm9pZHMg cGFydGlhbCByZWdpc3RlciBzdGFsbHMgb24gb2xkZXIgaGFyZHdhcmUgKHByZQorCSAgIFNuQiku ICAqLworCW1vdmwJJDB4ZmZmZiwgJWVjeAorI2VuZGlmCisJbW92dXBzCSglcnNpKSwgJXhtbTAK Kwltb3Z1cHMJKCVyZGkpLCAleG1tMQorCVBDTVBFUQkleG1tMCwgJXhtbTEKKwlwbW92bXNrYiAl eG1tMSwgJWVheAorCXN1YmwJJWVjeCwgJWVheAorCWpueglMKHJldF9ub256ZXJvX3ZlY19zdGFy dF8wKQorI2lmIFNJWkVfT0ZGU0VUID09IDAKKwljbXBxCSQoQ0hBUl9QRVJfVkVDICogMiksICVy ZHgKICNlbHNlCi0Jam56CUwoZmluMl83KQorCS8qIE9mZnNldCByZHguIFNhdmVzIGp1c3QgZW5v dWdoIGNvZGUgc2l6ZSB0byBrZWVwIHRoZQorCSAgIEwobGFzdF8yeF92ZWMpIGNhc2UgYW5kIHRo ZSBub24temVybyByZXR1cm4gaW4gYSBzaW5nbGUKKwkgICBjYWNoZSBsaW5lLiAgKi8KKwlzdWJx CSQoQ0hBUl9QRVJfVkVDICogMiksICVyZHgKICNlbmRpZgotTChzOGIpOgotCXRlc3RxCSQ4LCAl cjEwCi0JanoJTChzMTZiKQotCW1vdnEJKCVyZGkpLAklcmF4Ci0JbW92cQkoJXJkaSwgJXJzaSks ICVyZHgKLQlzdWJxICAgICQ4LCAlcjEwCi0jaWZkZWYgVVNFX0FTX01FTUNNUEVRCi0JamUJTChz dWJfcmV0dXJuOCkKKwlqYQlMKG1vcmVfMnhfdmVjKQorCisJbW92dXBzCShWRUNfU0laRSAqIC0x ICsgU0laRV9PRkZTRVQpKCVyc2ksICVyZHgsIENIQVJfU0laRSksICV4bW0wCisJbW92dXBzCShW RUNfU0laRSAqIC0xICsgU0laRV9PRkZTRVQpKCVyZGksICVyZHgsIENIQVJfU0laRSksICV4bW0x CisJUENNUEVRCSV4bW0wLCAleG1tMQorCXBtb3Ztc2tiICV4bW0xLCAlZWF4CisJc3VibAklZWN4 LCAlZWF4CisjaWZuZGVmIFVTRV9BU19NRU1DTVBFUQorCS8qIERvbid0IHVzZSBgaW5jdyBheGAg YXMgbWFjaGluZXMgdGhpcyBjb2RlIHJ1bnMgb24gYXJlIGxpYWJsZQorCSAgIHRvIGhhdmUgcGFy dGlhbCByZWdpc3RlciBzdGFsbC4gICovCisJam56CUwocmV0X25vbnplcm9fdmVjX2VuZF8wKQog I2Vsc2UKLQlqZQlMKGZpbjJfNykKKwkvKiBWYXJpb3VzIHJldHVybiB0YXJnZXRzIGZvciBtZW1j bXBlcS4gV2lsbCBhbHdheXMgYmUgaG90IGluCisJICAgSWNhY2hlIGFuZCBnZXQgc2hvcnQgZW5j b2RpbmcuICAqLworTChyZXRfbm9uemVyb192ZWNfc3RhcnRfMSk6CitMKHJldF9ub256ZXJvX3Zl Y19zdGFydF8wKToKK0wocmV0X25vbnplcm9fdmVjX2VuZF8wKToKICNlbmRpZgotCWFkZHEJJDgs ICVyZGkKLQljbXBxCSVyZHgsICVyYXgKLSNpZmRlZiBVU0VfQVNfTUVNQ01QRVEKLQlqbnoJTChu ZXFfZWFybHkpCisJcmV0CisKKyNpZm5kZWYgVVNFX0FTX01FTUNNUEVRCisjIGlmZGVmIFVTRV9B U19XTUVNQ01QCisJLnAyYWxpZ24gNAorTChyZXRfbm9uemVyb192ZWNfZW5kXzBfYWRqKToKKwlh ZGRsCSQzLCAlZWR4CisjIGVsc2UKKwkucDJhbGlnbiA0LCwgOAorIyBlbmRpZgorTChyZXRfbm9u emVyb192ZWNfZW5kXzApOgorCWJzZmwJJWVheCwgJWVheAorIyBpZmRlZiBVU0VfQVNfV01FTUNN UAorCWxlYWwJKCVyYXgsICVyZHgsIENIQVJfU0laRSksICVlYXgKKwltb3ZsCShWRUNfU0laRSAq IC0xICsgU0laRV9PRkZTRVQpKCVyZGksICVyYXgpLCAlZWN4CisJeG9ybAklZWR4LCAlZWR4CisJ Y21wbAkoVkVDX1NJWkUgKiAtMSArIFNJWkVfT0ZGU0VUKSglcnNpLCAlcmF4KSwgJWVjeAorCS8q IE5COiBubyBwYXJ0aWFsIHJlZ2lzdGVyIHN0YWxsIGhlcmUgYmVjYXVzZSB4b3JsIHplcm8gaWRp b20KKwkgICBhYm92ZS4gICovCisJc2V0ZwklZGwKKwlsZWFsCS0xKCVyZHgsICVyZHgpLCAlZWF4 CisjIGVsc2UKKwlhZGRsCSVlZHgsICVlYXgKKwltb3Z6YmwJKFZFQ19TSVpFICogLTEgKyBTSVpF X09GRlNFVCkoJXJzaSwgJXJheCksICVlY3gKKwltb3Z6YmwJKFZFQ19TSVpFICogLTEgKyBTSVpF X09GRlNFVCkoJXJkaSwgJXJheCksICVlYXgKKwlzdWJsCSVlY3gsICVlYXgKKyMgZW5kaWYKKwly ZXQKKyMgaWZuZGVmIFVTRV9BU19XTUVNQ01QCisJLnAyYWxpZ24gNCwsIDEwCitMKHJldF9ub256 ZXJvX3ZlY19zdGFydF8wKToKKwlic2ZsCSVlYXgsICVlYXgKKwltb3Z6YmwJKCVyc2ksICVyYXgp LCAlZWN4CisJbW92emJsCSglcmRpLCAlcmF4KSwgJWVheAorCXN1YmwJJWVjeCwgJWVheAorCXJl dAorIyBlbmRpZgogI2Vsc2UKLQlqbnoJTChmaW4yXzcpCiAjZW5kaWYKLUwoczE2Yik6Ci0JbW92 ZHF1ICAgICglcmRpKSwgJXhtbTEKLQltb3ZkcXUgICAgKCVyZGksICVyc2kpLCAleG1tMAotCXBj bXBlcWIgICAleG1tMCwgJXhtbTEKKworCS5wMmFsaWduIDUKK0wobW9yZV8yeF92ZWMpOgorCW1v dnVwcwkoVkVDX1NJWkUgKiAxKSglcnNpKSwgJXhtbTAKKwltb3Z1cHMJKFZFQ19TSVpFICogMSko JXJkaSksICV4bW0xCisJUENNUEVRCSV4bW0wLCAleG1tMQorCXBtb3Ztc2tiICV4bW0xLCAlZWF4 CisJc3VibAklZWN4LCAlZWF4CisJam56CUwocmV0X25vbnplcm9fdmVjX3N0YXJ0XzEpCisKKwlj bXBxCSQoQ0hBUl9QRVJfVkVDICogNCAtIFNJWkVfT0ZGU0VUKSwgJXJkeAorCWpiZQlMKGxhc3Rf MnhfdmVjKQorCisJY21wcQkkKENIQVJfUEVSX1ZFQyAqIDggLSBTSVpFX09GRlNFVCksICVyZHgK KwlqYQlMKG1vcmVfOHhfdmVjKQorCisJLyogRG8gY29tcGFyaXNvbnMgZm9yIFs2NSwgOTZdIGFu ZCBbOTcsIDEyOF0gMnggVkVDIGF0IGEgdGltZS4KKwkgICBUaGlzIGNhbiBoYXJtIHBlcmZvcm1h bmNlIGlmIG5vbi16ZXJvIHJldHVybiBpbiBbNjUsIDgwXSBvcgorCSAgIFs5NywgMTEyXSBidXQg aGVscHMgcGVyZm9ybWFuY2Ugb3RoZXJ3aXNlLiBHZW5lcmFsbHkgemVyby0KKwkgICByZXR1cm4g aXMgaG90dGVyLiAgKi8KKwltb3Z1cHMJKFZFQ19TSVpFICogMikoJXJzaSksICV4bW0wCisJbW92 dXBzCShWRUNfU0laRSAqIDIpKCVyZGkpLCAleG1tMQorCVBDTVBFUQkleG1tMCwgJXhtbTEKKwlt b3Z1cHMJKFZFQ19TSVpFICogMykoJXJzaSksICV4bW0yCisJbW92dXBzCShWRUNfU0laRSAqIDMp KCVyZGkpLCAleG1tMworCVBDTVBFUQkleG1tMiwgJXhtbTMKKwlwYW5kCSV4bW0xLCAleG1tMwor CisJcG1vdm1za2IgJXhtbTMsICVlYXgKKwlDSEVDS19DTVAgKCVlY3gsICVlYXgpCisJam56CUwo cmV0X25vbnplcm9fdmVjX3N0YXJ0XzJfMykKKworCWNtcGwJJChDSEFSX1BFUl9WRUMgKiA2IC0g U0laRV9PRkZTRVQpLCAlZWR4CisJamJlCUwobGFzdF8yeF92ZWMpCisKKwltb3Z1cHMJKFZFQ19T SVpFICogNCkoJXJzaSksICV4bW0wCisJbW92dXBzCShWRUNfU0laRSAqIDQpKCVyZGkpLCAleG1t MQorCVBDTVBFUQkleG1tMCwgJXhtbTEKKwltb3Z1cHMJKFZFQ19TSVpFICogNSkoJXJzaSksICV4 bW0yCisJbW92dXBzCShWRUNfU0laRSAqIDUpKCVyZGkpLCAleG1tMworCVBDTVBFUQkleG1tMiwg JXhtbTMKKwlwYW5kCSV4bW0xLCAleG1tMworCisJcG1vdm1za2IgJXhtbTMsICVlYXgKKwlDSEVD S19DTVAgKCVlY3gsICVlYXgpCiAjaWZkZWYgVVNFX0FTX01FTUNNUEVRCi0JcG1vdm1za2IgICV4 bW0xLCAlZWF4Ci0Jc3VibCAgICAgICQweGZmZmYsICVlYXgKKwlqeglMKGxhc3RfMnhfdmVjKQog CXJldAogI2Vsc2UKLQlwbW92bXNrYiAgJXhtbTEsICVlZHgKLQl4b3JsCSAgJWVheCwgJWVheAot CXN1YmwgICAgICAkMHhmZmZmLCAlZWR4Ci0JanoJICBMKGZpbnopCi0JYnNmbCAgICAgICVlZHgs ICVlY3gKLQlsZWFxCSAoJXJkaSwgJXJjeCksICVyY3gKLQltb3Z6YmwJICglcmN4KSwgJWVheAot CW1vdnpibAkgKCVyc2ksICVyY3gpLCAlZWR4Ci0Jam1wCSBMKGZpbnoxKQorCWpueglMKHJldF9u b256ZXJvX3ZlY19zdGFydF80XzUpCiAjZW5kaWYKLQkucDJhbGlnbiA0LCwgNAotTChmaW5yMWIp OgotCW1vdnpibAkoJXJkaSksICVlYXgKLQltb3Z6YmwgICglcnNpKSwgJWVkeAotTChmaW56MSk6 Ci0Jc3VibAklZWR4LCAlZWF4Ci1MKGV4aXQpOgotCXJldAorCS5wMmFsaWduIDQKK0wobGFzdF8y eF92ZWMpOgorCW1vdnVwcwkoVkVDX1NJWkUgKiAtMiArIFNJWkVfT0ZGU0VUKSglcnNpLCAlcmR4 LCBDSEFSX1NJWkUpLCAleG1tMAorCW1vdnVwcwkoVkVDX1NJWkUgKiAtMiArIFNJWkVfT0ZGU0VU KSglcmRpLCAlcmR4LCBDSEFSX1NJWkUpLCAleG1tMQorCVBDTVBFUQkleG1tMCwgJXhtbTEKKwlt b3Z1cHMJKFZFQ19TSVpFICogLTEgKyBTSVpFX09GRlNFVCkoJXJzaSwgJXJkeCwgQ0hBUl9TSVpF KSwgJXhtbTIKKwltb3Z1cHMJKFZFQ19TSVpFICogLTEgKyBTSVpFX09GRlNFVCkoJXJkaSwgJXJk eCwgQ0hBUl9TSVpFKSwgJXhtbTMKKwlQQ01QRVEJJXhtbTIsICV4bW0zCisJcGFuZAkleG1tMSwg JXhtbTMKKwlwbW92bXNrYiAleG1tMywgJWVheAorCXN1YmwJJWVjeCwgJWVheAogI2lmZGVmIFVT RV9BU19NRU1DTVBFUQotCS5wMmFsaWduIDQsLCA0Ci1MKHN1Yl9yZXR1cm44KToKLQlzdWJxCSVy ZHgsICVyYXgKLQltb3ZsCSVlYXgsICVlZHgKLQlzaHJxCSQzMiwgJXJheAotCW9ybAklZWR4LCAl ZWF4CisJLyogVmFyaW91cyByZXR1cm4gdGFyZ2V0cyBmb3IgbWVtY21wZXEuIFdpbGwgYWx3YXlz IGJlIGhvdCBpbgorCSAgIEljYWNoZSBhbmQgZ2V0IHNob3J0IGVuY29kaW5nLiAgKi8KK0wocmV0 X25vbnplcm9fdmVjX3N0YXJ0XzJfMyk6CitMKHJldF9ub256ZXJvX3ZlY19zdGFydF80XzUpOgog CXJldAogI2Vsc2UKLQkucDJhbGlnbiA0LCwgNAotTChmaW4yXzcpOgotCWNtcHEJJXJkeCwgJXJh eAotCWp6CUwoZmlueikKLQltb3ZxCSVyYXgsICVyMTEKLQlzdWJxCSVyZHgsICVyMTEKLQlic2Zx CSVyMTEsICVyY3gKLQlzYXJxCSQzLCAlcmN4Ci0Jc2FscQkkMywgJXJjeAotCXNhcnEJJWNsLCAl cmF4Ci0JbW92emJsICAlYWwsICVlYXgKLQlzYXJxCSVjbCwgJXJkeAotCW1vdnpibCAgJWRsLCAl ZWR4Ci0Jc3VibAklZWR4LCAlZWF4CisJam56CUwocmV0X25vbnplcm9fdmVjX2VuZF8xKQogCXJl dAotI2VuZGlmCi0JLnAyYWxpZ24gNCwsIDQKLUwoZmlueik6Ci0JeG9ybAklZWF4LCAlZWF4CisK KwkucDJhbGlnbiA0LCwgOAorTChyZXRfbm9uemVyb192ZWNfZW5kXzEpOgorCXBtb3Ztc2tiICV4 bW0xLCAlZWN4CisJLyogSGlnaCAxNiBiaXRzIG9mIGVheCBndXJhbnRlZWQgdG8gYmUgYWxsIG9u ZXMuIFJvdGF0ZSB0aGVtIGluCisJICAgdG8gd2UgY2FuIGRvIGBvciArIG5vdGAgd2l0aCBqdXN0 IGB4b3JgLiAgKi8KKwlyb3JsCSQxNiwgJWVheAorCXhvcmwJJWVjeCwgJWVheAorCS8qIFBhcnRp YWwgcmVnaXN0ZXIgc3RhbGwuICAqLworCisJYnNmbAklZWF4LCAlZWF4CisjIGlmZGVmIFVTRV9B U19XTUVNQ01QCisJbGVhbAkoJXJheCwgJXJkeCwgQ0hBUl9TSVpFKSwgJWVheAorCW1vdmwJKFZF Q19TSVpFICogLTIgKyBTSVpFX09GRlNFVCkoJXJkaSwgJXJheCksICVlY3gKKwl4b3JsCSVlZHgs ICVlZHgKKwljbXBsCShWRUNfU0laRSAqIC0yICsgU0laRV9PRkZTRVQpKCVyc2ksICVyYXgpLCAl ZWN4CisJLyogTkI6IG5vIHBhcnRpYWwgcmVnaXN0ZXIgc3RhbGwgaGVyZSBiZWNhdXNlIHhvcmwg emVybyBpZGlvbQorCSAgIGFib3ZlLiAgKi8KKwlzZXRnCSVkbAorCWxlYWwJLTEoJXJkeCwgJXJk eCksICVlYXgKKyMgZWxzZQorCWFkZGwJJWVkeCwgJWVheAorCW1vdnpibAkoVkVDX1NJWkUgKiAt MiArIFNJWkVfT0ZGU0VUKSglcnNpLCAlcmF4KSwgJWVjeAorCW1vdnpibAkoVkVDX1NJWkUgKiAt MiArIFNJWkVfT0ZGU0VUKSglcmRpLCAlcmF4KSwgJWVheAorCXN1YmwJJWVjeCwgJWVheAorIyBl bmRpZgogCXJldAotI2lmZGVmIFVTRV9BU19NRU1DTVBFUQotCS5wMmFsaWduIDQsLCA0Ci1MKG5l cV9lYXJseSk6Ci0JbW92bAkkMSwgJWVheAorCisJLnAyYWxpZ24gNAorTChyZXRfbm9uemVyb192 ZWNfc3RhcnRfNF81KToKKwlwbW92bXNrYiAleG1tMSwgJWVkeAorCXNhbGwJJDE2LCAlZWF4CisJ bGVhbAkxKCVyYXgsICVyZHgpLCAlZWF4CisJYnNmbAklZWF4LCAlZWF4CisjIGlmZGVmIFVTRV9B U19XTUVNQ01QCisJbW92bAkoVkVDX1NJWkUgKiA0KSglcmRpLCAlcmF4KSwgJWVjeAorCXhvcmwJ JWVkeCwgJWVkeAorCWNtcGwJKFZFQ19TSVpFICogNCkoJXJzaSwgJXJheCksICVlY3gKKwkvKiBO Qjogbm8gcGFydGlhbCByZWdpc3RlciBzdGFsbCBoZXJlIGJlY2F1c2UgeG9ybCB6ZXJvIGlkaW9t CisJICAgYWJvdmUuICAqLworCXNldGcJJWRsCisJbGVhbAktMSglcmR4LCAlcmR4KSwgJWVheAor IyBlbHNlCisJbW92emJsCShWRUNfU0laRSAqIDQpKCVyc2ksICVyYXgpLCAlZWN4CisJbW92emJs CShWRUNfU0laRSAqIDQpKCVyZGksICVyYXgpLCAlZWF4CisJc3VibAklZWN4LCAlZWF4CisjIGVu ZGlmCisJcmV0CisKKwkucDJhbGlnbiA0LCwgOAorTChyZXRfbm9uemVyb192ZWNfc3RhcnRfMSk6 CisJYnNmbAklZWF4LCAlZWF4CisjIGlmZGVmIFVTRV9BU19XTUVNQ01QCisJbW92bAkoVkVDX1NJ WkUgKiAxKSglcmRpLCAlcmF4KSwgJWVjeAorCXhvcmwJJWVkeCwgJWVkeAorCWNtcGwJKFZFQ19T SVpFICogMSkoJXJzaSwgJXJheCksICVlY3gKKwkvKiBOQjogbm8gcGFydGlhbCByZWdpc3RlciBz dGFsbCBoZXJlIGJlY2F1c2UgeG9ybCB6ZXJvIGlkaW9tCisJICAgYWJvdmUuICAqLworCXNldGcJ JWRsCisJbGVhbAktMSglcmR4LCAlcmR4KSwgJWVheAorIyBlbHNlCisJbW92emJsCShWRUNfU0la RSAqIDEpKCVyc2ksICVyYXgpLCAlZWN4CisJbW92emJsCShWRUNfU0laRSAqIDEpKCVyZGksICVy YXgpLCAlZWF4CisJc3VibAklZWN4LCAlZWF4CisjIGVuZGlmCiAJcmV0CiAjZW5kaWYKLQkvKiBG b3IgYmxvY2tzIGJpZ2dlciB0aGFuIDMyIGJ5dGVzCi0JICAgMS4gQWR2YW5jZSBvbmUgb2YgdGhl IGFkZHIgcG9pbnRlciB0byBiZSAxNkIgYWxpZ25lZC4KLQkgICAyLiBUcmVhdCB0aGUgY2FzZSBv ZiBib3RoIGFkZHIgcG9pbnRlcnMgYWxpZ25lZCB0byAxNkIKLQkgICAgICBzZXBhcmF0ZWx5IHRv IGF2b2lkIG1vdmRxdS4KLQkgICAzLiBIYW5kbGUgYW55IGJsb2NrcyBvZiBncmVhdGVyIHRoYW4g NjQgY29uc2VjdXRpdmUgYnl0ZXMgd2l0aAotCSAgICAgIHVucm9sbGluZyB0byByZWR1Y2UgYnJh bmNoZXMuCi0JICAgNC4gQXQgbGVhc3Qgb25lIGFkZHIgcG9pbnRlciBpcyAxNkIgYWxpZ25lZCwg dXNlIG1lbW9yeSB2ZXJzaW9uCi0JICAgICAgb2YgcGNtYmVxYi4KLQkqLwotCS5wMmFsaWduIDQs LCA0Ci1MKGd0MzIpOgotCW1vdnEJJXJkeCwgJXIxMQotCWFkZHEJJXJkaSwgJXIxMQotCW1vdnEJ JXJkaSwgJXI4Ci0KLQlhbmRxCSQxNSwgJXI4Ci0JanoJTCgxNmFtKQotCS8qIEJvdGggcG9pbnRl cnMgbWF5IGJlIG1pc2FsaWduZWQuICAqLwotCW1vdmRxdQkoJXJkaSksCSV4bW0xCi0JbW92ZHF1 CSglcmRpLCAlcnNpKSwgJXhtbTAKLQlwY21wZXFiICAgJXhtbTAsICV4bW0xCi0JcG1vdm1za2Ig ICV4bW0xLCAlZWR4Ci0Jc3VibCAgICAgICQweGZmZmYsICVlZHgKLQlqbnogICAgICAgTChuZXEp Ci0JbmVnCSAlcjgKLQlsZWFxICAgIDE2KCVyZGksICVyOCksICVyZGkKLUwoMTZhbSk6Ci0JLyog SGFuZGxlIHR3byAxNkIgYWxpZ25lZCBwb2ludGVycyBzZXBhcmF0ZWx5LiAgKi8KLQl0ZXN0cSAg ICQxNSwgJXJzaQotCWp6ICAgICAgTChBVFIpCi0JdGVzdHEJJDE2LCAlcmRpCi0JanoJTChBMzIp Ci0JbW92ZHF1CSglcmRpLCAlcnNpKSwgJXhtbTAKLQlwY21wZXFiICAgKCVyZGkpLCAleG1tMAot CXBtb3Ztc2tiICAleG1tMCwgJWVkeAotCXN1YmwgICAgICAkMHhmZmZmLCAlZWR4Ci0Jam56ICAg ICAgIEwobmVxKQotCWFkZHEJJDE2LCAlcmRpCi1MKEEzMik6Ci0JbW92cQklcjExLCAlcjEwCi0J YW5kcQkkLTMyLCAlcjEwCi0JY21wcQklcjEwLCAlcmRpCi0gICAgICAgIGphZQlMKG10MTYpCi0J LyogUHJlLXVucm9sbCB0byBiZSByZWFkeSBmb3IgdW5yb2xsZWQgNjRCIGxvb3AuICAqLwotCXRl c3RxCSQzMiwgJXJkaQotCWp6CUwoQTY0KQotCW1vdmRxdSAgICAoJXJkaSwlcnNpKSwgJXhtbTAK LQlwY21wZXFiICAgKCVyZGkpLCAleG1tMAotCXBtb3Ztc2tiICAleG1tMCwgJWVkeAotCXN1Ymwg ICAgICAkMHhmZmZmLCAlZWR4Ci0Jam56ICAgICAgIEwobmVxKQotCWFkZHEgICAgICAgJDE2LCAl cmRpCi0KLQltb3ZkcXUgICAgKCVyZGksJXJzaSksICV4bW0wCi0JcGNtcGVxYiAgKCVyZGkpLCAl eG1tMAotCXBtb3Ztc2tiICAleG1tMCwgJWVkeAotCXN1YmwgICAgICAkMHhmZmZmLCAlZWR4Ci0J am56ICAgICAgIEwobmVxKQotCWFkZHEgICAgICAgJDE2LCAlcmRpCi0KLUwoQTY0KToKLQltb3Zx CSVyMTEsICVyMTAKLQlhbmRxCSQtNjQsICVyMTAKLQljbXBxCSVyMTAsICVyZGkKLSAgICAgICAg amFlCUwobXQzMikKLQotTChBNjRtYWluKToKLQltb3ZkcXUgICAgKCVyZGksJXJzaSksICV4bW0w Ci0JcGNtcGVxYiAgICglcmRpKSwgJXhtbTAKLQlwbW92bXNrYiAgJXhtbTAsICVlZHgKLQlzdWJs ICAgICAgJDB4ZmZmZiwgJWVkeAotCWpueiAgICAgICBMKG5lcSkKLQlhZGRxICAgICAgICQxNiwg JXJkaQotCi0JbW92ZHF1ICAgICglcmRpLCVyc2kpLCAleG1tMAotCXBjbXBlcWIgICAoJXJkaSks ICV4bW0wCi0JcG1vdm1za2IgICV4bW0wLCAlZWR4Ci0Jc3VibCAgICAgICQweGZmZmYsICVlZHgK LQlqbnogICAgICAgTChuZXEpCi0JYWRkcSAgICAgICAkMTYsICVyZGkKLQotCW1vdmRxdSAgICAo JXJkaSwlcnNpKSwgJXhtbTAKLQlwY21wZXFiICAgKCVyZGkpLCAleG1tMAotCXBtb3Ztc2tiICAl eG1tMCwgJWVkeAotCXN1YmwgICAgICAkMHhmZmZmLCAlZWR4Ci0Jam56ICAgICAgIEwobmVxKQot CWFkZHEgICAgICAgJDE2LCAlcmRpCi0KLQltb3ZkcXUgICAgKCVyZGksJXJzaSksICV4bW0wCi0J cGNtcGVxYiAgKCVyZGkpLCAleG1tMAotCXBtb3Ztc2tiICAleG1tMCwgJWVkeAotCXN1YmwgICAg ICAkMHhmZmZmLCAlZWR4Ci0Jam56ICAgICAgIEwobmVxKQotCWFkZHEgICAgICAgJDE2LCAlcmRp Ci0KLQljbXBxICAgICAgICVyZGksICVyMTAKLQlqbmUgICAgICAgTChBNjRtYWluKQotCi1MKG10 MzIpOgotCW1vdnEJJXIxMSwgJXIxMAotCWFuZHEJJC0zMiwgJXIxMAotCWNtcHEJJXIxMCwgJXJk aQotICAgICAgICBqYWUJTChtdDE2KQotCi1MKEEzMm1haW4pOgotCW1vdmRxdSAgICAoJXJkaSwl cnNpKSwgJXhtbTAKLQlwY21wZXFiICAgKCVyZGkpLCAleG1tMAotCXBtb3Ztc2tiICAleG1tMCwg JWVkeAotCXN1YmwgICAgICAkMHhmZmZmLCAlZWR4Ci0Jam56ICAgICAgIEwobmVxKQotCWFkZHEg ICAgICAgJDE2LCAlcmRpCi0KLQltb3ZkcXUgICAgKCVyZGksJXJzaSksICV4bW0wCi0JcGNtcGVx YiAgKCVyZGkpLCAleG1tMAotCXBtb3Ztc2tiICAleG1tMCwgJWVkeAotCXN1YmwgICAgICAkMHhm ZmZmLCAlZWR4Ci0Jam56ICAgICAgIEwobmVxKQotCWFkZHEgICAgICAgJDE2LCAlcmRpCi0KLQlj bXBxICAgICAgICVyZGksICVyMTAKLQlqbmUgICAgICAgTChBMzJtYWluKQotTChtdDE2KToKLQlz dWJxICAgICAgICVyZGksICVyMTEKLQlqZQkgIEwoZmlueikKLQltb3ZxCSAgJXIxMSwgJXIxMAot CWptcAkgIEwoc21hbGwpCi0KLQkucDJhbGlnbiA0LCwgNAotTChuZXEpOgotI2lmZGVmIFVTRV9B U19NRU1DTVBFUQotCW1vdmwJJDEsICVlYXgKLSAgICByZXQKLSNlbHNlCi0JYnNmbCAgICAgICVl ZHgsICVlY3gKLQltb3Z6YmwJICglcmRpLCAlcmN4KSwgJWVheAotCWFkZHEJICVyZGksICVyc2kK LQltb3Z6YmwJICglcnNpLCVyY3gpLCAlZWR4Ci0Jam1wCSBMKGZpbnoxKQorCisJLnAyYWxpZ24g NAorTChtb3JlXzh4X3ZlYyk6CisJc3VicQklcmRpLCAlcnNpCisJbGVhcQkoVkVDX1NJWkUgKiAt NiArIFNJWkVfT0ZGU0VUKSglcmRpLCAlcmR4LCBDSEFSX1NJWkUpLCAlcmR4CisJYW5kcQkkKFZF Q19TSVpFICogLTEpLCAlcmRpCisJYWRkcQklcmRpLCAlcnNpCisJLnAyYWxpZ24gNAorTChsb29w XzR4KToKKwltb3Z1cHMJKFZFQ19TSVpFICogMikoJXJzaSksICV4bW0wCisJbW92dXBzCShWRUNf U0laRSAqIDMpKCVyc2kpLCAleG1tMQorCisJUENNUEVRCShWRUNfU0laRSAqIDIpKCVyZGkpLCAl eG1tMAorCVBDTVBFUQkoVkVDX1NJWkUgKiAzKSglcmRpKSwgJXhtbTEKKworCW1vdnVwcwkoVkVD X1NJWkUgKiA0KSglcnNpKSwgJXhtbTIKKwltb3Z1cHMJKFZFQ19TSVpFICogNSkoJXJzaSksICV4 bW0zCisKKwlQQ01QRVEJKFZFQ19TSVpFICogNCkoJXJkaSksICV4bW0yCisJUENNUEVRCShWRUNf U0laRSAqIDUpKCVyZGkpLCAleG1tMworCisJcGFuZAkleG1tMCwgJXhtbTEKKwlwYW5kCSV4bW0y LCAleG1tMworCXBhbmQJJXhtbTEsICV4bW0zCisKKwlwbW92bXNrYiAleG1tMywgJWVheAorCXN1 YmwJJWVjeCwgJWVheAorCWpueglMKHJldF9ub256ZXJvX2xvb3ApCisKKwlhZGRxCSQoVkVDX1NJ WkUgKiA0KSwgJXJkaQorCWFkZHEJJChWRUNfU0laRSAqIDQpLCAlcnNpCisJY21wcQklcmRpLCAl cmR4CisJamEJTChsb29wXzR4KQorCS8qIEdldCByZW1haW5pbmcgbGVuZ3RoIGluIGVkeC4gICov CisJc3VibAklZWRpLCAlZWR4CisJLyogUmVzdG9yZSBvZmZzZXQgc28gd2UgY2FuIHJldXNlIEwo bGFzdF8yeF92ZWMpLiAgKi8KKwlhZGRsCSQoVkVDX1NJWkUgKiA2IC0gU0laRV9PRkZTRVQpLCAl ZWR4CisjaWZkZWYgVVNFX0FTX1dNRU1DTVAKKwlzaHJsCSQyLCAlZWR4CiAjZW5kaWYKKwljbXBs CSQoQ0hBUl9QRVJfVkVDICogNCAtIFNJWkVfT0ZGU0VUKSwgJWVkeAorCWpiZQlMKGxhc3RfMnhf dmVjKQorCiAKLQkucDJhbGlnbiA0LCwgNAotTChBVFIpOgotCW1vdnEJJXIxMSwgJXIxMAotCWFu ZHEJJC0zMiwgJXIxMAotCWNtcHEJJXIxMCwgJXJkaQotICAgICAgICBqYWUJTChtdDE2KQotCXRl c3RxCSQxNiwgJXJkaQotCWp6CUwoQVRSMzIpCi0KLQltb3ZkcWEgICAgKCVyZGksJXJzaSksICV4 bW0wCi0JcGNtcGVxYiAgICglcmRpKSwgJXhtbTAKLQlwbW92bXNrYiAgJXhtbTAsICVlZHgKLQlz dWJsICAgICAgJDB4ZmZmZiwgJWVkeAotCWpueiAgICAgICBMKG5lcSkKLQlhZGRxICAgICAgICQx NiwgJXJkaQotCWNtcHEgICAgICAgJXJkaSwgJXIxMAotCWplICAgICAgIEwobXQxNikKLQotTChB VFIzMik6Ci0JbW92cQklcjExLCAlcjEwCi0JYW5kcQkkLTY0LCAlcjEwCi0JdGVzdHEJJDMyLCAl cmRpCi0JanoJTChBVFI2NCkKLQotCW1vdmRxYSAgICAoJXJkaSwlcnNpKSwgJXhtbTAKLQlwY21w ZXFiICAgKCVyZGkpLCAleG1tMAotCXBtb3Ztc2tiICAleG1tMCwgJWVkeAotCXN1YmwgICAgICAk MHhmZmZmLCAlZWR4Ci0Jam56ICAgICAgIEwobmVxKQotCWFkZHEgICAgICAgJDE2LCAlcmRpCi0K LQltb3ZkcWEgICAgKCVyZGksJXJzaSksICV4bW0wCi0JcGNtcGVxYiAgICglcmRpKSwgJXhtbTAK LQlwbW92bXNrYiAgJXhtbTAsICVlZHgKLQlzdWJsICAgICAgJDB4ZmZmZiwgJWVkeAotCWpueiAg ICAgICBMKG5lcSkKLQlhZGRxICAgICAgICQxNiwgJXJkaQotCi1MKEFUUjY0KToKLQljbXBxICAg ICAgICVyZGksICVyMTAKLQlqZQkgICBMKG10MzIpCi0KLUwoQVRSNjRtYWluKToKLQltb3ZkcWEg ICAgKCVyZGksJXJzaSksICV4bW0wCi0JcGNtcGVxYiAgICglcmRpKSwgJXhtbTAKLQlwbW92bXNr YiAgJXhtbTAsICVlZHgKLQlzdWJsICAgICAgJDB4ZmZmZiwgJWVkeAotCWpueiAgICAgICBMKG5l cSkKLQlhZGRxICAgICAgICQxNiwgJXJkaQotCi0JbW92ZHFhICAgICglcmRpLCVyc2kpLCAleG1t MAotCXBjbXBlcWIgICAoJXJkaSksICV4bW0wCi0JcG1vdm1za2IgICV4bW0wLCAlZWR4Ci0Jc3Vi bCAgICAgICQweGZmZmYsICVlZHgKLQlqbnogICAgICAgTChuZXEpCi0JYWRkcSAgICAgICAkMTYs ICVyZGkKLQotCW1vdmRxYSAgICAoJXJkaSwlcnNpKSwgJXhtbTAKLQlwY21wZXFiICAgKCVyZGkp LCAleG1tMAotCXBtb3Ztc2tiICAleG1tMCwgJWVkeAotCXN1YmwgICAgICAkMHhmZmZmLCAlZWR4 Ci0Jam56ICAgICAgIEwobmVxKQotCWFkZHEgICAgICAgJDE2LCAlcmRpCi0KLQltb3ZkcWEgICAg KCVyZGksJXJzaSksICV4bW0wCi0JcGNtcGVxYiAgICglcmRpKSwgJXhtbTAKLQlwbW92bXNrYiAg JXhtbTAsICVlZHgKLQlzdWJsICAgICAgJDB4ZmZmZiwgJWVkeAotCWpueiAgICAgICBMKG5lcSkK LQlhZGRxICAgICAgICQxNiwgJXJkaQotCWNtcHEgICAgICAgJXJkaSwgJXIxMAotCWpuZSAgICAg ICBMKEFUUjY0bWFpbikKLQotCW1vdnEJJXIxMSwgJXIxMAotCWFuZHEJJC0zMiwgJXIxMAotCWNt cHEJJXIxMCwgJXJkaQotICAgICAgICBqYWUJTChtdDE2KQotCi1MKEFUUjMycmVzKToKLQltb3Zk cWEgICAgKCVyZGksJXJzaSksICV4bW0wCi0JcGNtcGVxYiAgICglcmRpKSwgJXhtbTAKLQlwbW92 bXNrYiAgJXhtbTAsICVlZHgKLQlzdWJsICAgICAgJDB4ZmZmZiwgJWVkeAotCWpueiAgICAgICBM KG5lcSkKLQlhZGRxICAgICAgICQxNiwgJXJkaQotCi0JbW92ZHFhICAgICglcmRpLCVyc2kpLCAl eG1tMAotCXBjbXBlcWIgICAoJXJkaSksICV4bW0wCi0JcG1vdm1za2IgICV4bW0wLCAlZWR4Ci0J c3VibCAgICAgICQweGZmZmYsICVlZHgKLQlqbnogICAgICAgTChuZXEpCi0JYWRkcSAgICAgICAk MTYsICVyZGkKLQotCWNtcHEJICAlcjEwLCAlcmRpCi0Jam5lICAgICAgIEwoQVRSMzJyZXMpCi0K LQlzdWJxICAgICAgICVyZGksICVyMTEKLQlqZQkgIEwoZmlueikKLQltb3ZxCSAgJXIxMSwgJXIx MAotCWptcAkgIEwoc21hbGwpCi0JLyogQWxpZ24gdG8gMTZieXRlIHRvIGltcHJvdmUgaW5zdHJ1 Y3Rpb24gZmV0Y2guICAqLwotCS5wMmFsaWduIDQsLCA0Ci1FTkQobWVtY21wKQorCW1vdnVwcwko VkVDX1NJWkUgKiAyKSglcnNpKSwgJXhtbTAKKwltb3Z1cHMJKFZFQ19TSVpFICogMikoJXJkaSks ICV4bW0xCisJUENNUEVRCSV4bW0wLCAleG1tMQorCW1vdnVwcwkoVkVDX1NJWkUgKiAzKSglcnNp KSwgJXhtbTIKKwltb3Z1cHMJKFZFQ19TSVpFICogMykoJXJkaSksICV4bW0zCisJUENNUEVRCSV4 bW0yLCAleG1tMworCXBhbmQJJXhtbTEsICV4bW0zCiAKKwlwbW92bXNrYiAleG1tMywgJWVheAor CUNIRUNLX0NNUCAoJWVjeCwgJWVheCkKKwlqeglMKGxhc3RfMnhfdmVjKQogI2lmZGVmIFVTRV9B U19NRU1DTVBFUQotbGliY19oaWRkZW5fZGVmIChtZW1jbXApCitMKHJldF9ub256ZXJvX2xvb3Ap OgorCXJldAogI2Vsc2UKLSMgdW5kZWYgYmNtcAotd2Vha19hbGlhcyAobWVtY21wLCBiY21wKQot bGliY19oaWRkZW5fYnVpbHRpbl9kZWYgKG1lbWNtcCkKKworCS5wMmFsaWduIDQKK0wocmV0X25v bnplcm9fdmVjX3N0YXJ0XzJfMyk6CisJcG1vdm1za2IgJXhtbTEsICVlZHgKKwlzYWxsCSQxNiwg JWVheAorCWxlYWwJMSglcmF4LCAlcmR4KSwgJWVheAorCisJYnNmbAklZWF4LCAlZWF4CisjIGlm ZGVmIFVTRV9BU19XTUVNQ01QCisJbW92bAkoVkVDX1NJWkUgKiAyKSglcmRpLCAlcmF4KSwgJWVj eAorCXhvcmwJJWVkeCwgJWVkeAorCWNtcGwJKFZFQ19TSVpFICogMikoJXJzaSwgJXJheCksICVl Y3gKKwkvKiBOQjogbm8gcGFydGlhbCByZWdpc3RlciBzdGFsbCBoZXJlIGJlY2F1c2UgeG9ybCB6 ZXJvIGlkaW9tCisJICAgYWJvdmUuICAqLworCXNldGcJJWRsCisJbGVhbAktMSglcmR4LCAlcmR4 KSwgJWVheAorIyBlbHNlCisJbW92emJsCShWRUNfU0laRSAqIDIpKCVyc2ksICVyYXgpLCAlZWN4 CisJbW92emJsCShWRUNfU0laRSAqIDIpKCVyZGksICVyYXgpLCAlZWF4CisJc3VibAklZWN4LCAl ZWF4CisjIGVuZGlmCisJcmV0CisKKwkucDJhbGlnbiA0CitMKHJldF9ub256ZXJvX2xvb3ApOgor CXBtb3Ztc2tiICV4bW0wLCAlZWN4CisJcG1vdm1za2IgJXhtbTEsICVlZHgKKwlzYWxsCSQoVkVD X1NJWkUgKiAxKSwgJWVkeAorCWxlYWwJMSglcmN4LCAlcmR4KSwgJWVkeAorCXBtb3Ztc2tiICV4 bW0yLCAlZWN4CisJLyogSGlnaCAxNiBiaXRzIG9mIGVheCBndXJhbnRlZWQgdG8gYmUgYWxsIG9u ZXMuIFJvdGF0ZSB0aGVtIGluCisJICAgdG8gd2UgY2FuIGRvIGBvciArIG5vdGAgd2l0aCBqdXN0 IGB4b3JgLiAgKi8KKwlyb3JsCSQxNiwgJWVheAorCXhvcmwJJWVjeCwgJWVheAorCisJc2FscQkk MzIsICVyYXgKKwlvcnEJJXJkeCwgJXJheAorCisJYnNmcQklcmF4LCAlcmF4CisjIGlmZGVmIFVT RV9BU19XTUVNQ01QCisJbW92bAkoVkVDX1NJWkUgKiAyKSglcmRpLCAlcmF4KSwgJWVjeAorCXhv cmwJJWVkeCwgJWVkeAorCWNtcGwJKFZFQ19TSVpFICogMikoJXJzaSwgJXJheCksICVlY3gKKwkv KiBOQjogbm8gcGFydGlhbCByZWdpc3RlciBzdGFsbCBoZXJlIGJlY2F1c2UgeG9ybCB6ZXJvIGlk aW9tCisJICAgYWJvdmUuICAqLworCXNldGcJJWRsCisJbGVhbAktMSglcmR4LCAlcmR4KSwgJWVh eAorIyBlbHNlCisJbW92emJsCShWRUNfU0laRSAqIDIpKCVyc2ksICVyYXgpLCAlZWN4CisJbW92 emJsCShWRUNfU0laRSAqIDIpKCVyZGksICVyYXgpLCAlZWF4CisJc3VibAklZWN4LCAlZWF4Cisj IGVuZGlmCisJcmV0CisjZW5kaWYKK0VORChNRU1DTVApCisKKyNpZm5kZWYgVVNFX0FTX1dNRU1D TVAKKyMgaWZkZWYgVVNFX0FTX01FTUNNUEVRCitsaWJjX2hpZGRlbl9kZWYgKE1FTUNNUCkKKyMg ZWxzZQorIyAgdW5kZWYgYmNtcAord2Vha19hbGlhcyAoTUVNQ01QLCBiY21wKQorbGliY19oaWRk ZW5fYnVpbHRpbl9kZWYgKE1FTUNNUCkKKyMgZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lz ZGVwcy94ODZfNjQvbWVtY21wZXEuUyBiL3N5c2RlcHMveDg2XzY0L21lbWNtcGVxLlMKaW5kZXgg MmNlZTg4MWZlZC4uODBjNWU5MTJhNiAxMDA2NDQKLS0tIGEvc3lzZGVwcy94ODZfNjQvbWVtY21w ZXEuUworKysgYi9zeXNkZXBzL3g4Nl82NC9tZW1jbXBlcS5TCkBAIC0xNiw2ICsxNiw2IEBACiAg ICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCiAgICA8 aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KIAotI2RlZmluZSBtZW1jbXAJX19t ZW1jbXBlcQorI2RlZmluZSBNRU1DTVAJX19tZW1jbXBlcQogI2RlZmluZSBVU0VfQVNfTUVNQ01Q RVEJMQogI2luY2x1ZGUgIm11bHRpYXJjaC9tZW1jbXAtc3NlMi5TIgpkaWZmIC0tZ2l0IGEvc3lz ZGVwcy94ODZfNjQvbXVsdGlhcmNoL01ha2VmaWxlIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNo L01ha2VmaWxlCmluZGV4IDY1MDdkMWI3ZmEuLmVjYjRkZWExOTAgMTAwNjQ0Ci0tLSBhL3N5c2Rl cHMveDg2XzY0L211bHRpYXJjaC9NYWtlZmlsZQorKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFy Y2gvTWFrZWZpbGUKQEAgLTE3Niw4ICsxNzYsOCBAQCBzeXNkZXBfcm91dGluZXMgKz0gXAogICB3 bWVtY2hyLXNzZTIgXAogICB3bWVtY21wLWF2eDItbW92YmUgXAogICB3bWVtY21wLWF2eDItbW92 YmUtcnRtIFwKLSAgd21lbWNtcC1jIFwKICAgd21lbWNtcC1ldmV4LW1vdmJlIFwKKyAgd21lbWNt cC1zc2UyIFwKICAgd21lbWNtcC1zc2U0IFwKICAgd21lbWNtcC1zc3NlMyBcCiAjIHN5c2RlcF9y b3V0aW5lcwpkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbWNtcC1zc2Uy LlMgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtY21wLXNzZTIuUwppbmRleCBlMTA1NTU2 MzhkLi40MDgwZmMxODc1IDEwMDY0NAotLS0gYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVt Y21wLXNzZTIuUworKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvbWVtY21wLXNzZTIuUwpA QCAtMTcsOCArMTcsOCBAQAogICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov CiAKICNpZiBJU19JTiAobGliYykKLSMgaWZuZGVmIG1lbWNtcAotIyAgZGVmaW5lIG1lbWNtcCBf X21lbWNtcF9zc2UyCisjIGlmbmRlZiBNRU1DTVAKKyMgIGRlZmluZSBNRU1DTVAgX19tZW1jbXBf c3NlMgogIyBlbmRpZgogCiAjIGlmZGVmIFNIQVJFRApkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZf NjQvbXVsdGlhcmNoL21lbWNtcGVxLXNzZTIuUyBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9t ZW1jbXBlcS1zc2UyLlMKaW5kZXggZGU3ZjVhNzUyNS4uOWQ5OTFlNWM3NCAxMDA2NDQKLS0tIGEv c3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL21lbWNtcGVxLXNzZTIuUworKysgYi9zeXNkZXBzL3g4 Nl82NC9tdWx0aWFyY2gvbWVtY21wZXEtc3NlMi5TCkBAIC0xNyw5ICsxNyw5IEBACiAgICA8aHR0 cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KIAogI2lmIElTX0lOIChsaWJjKQotIyBk ZWZpbmUgbWVtY21wCV9fbWVtY21wZXFfc3NlMgorIyBkZWZpbmUgTUVNQ01QCV9fbWVtY21wZXFf c3NlMgogI2Vsc2UKLSMgZGVmaW5lIG1lbWNtcAlfX21lbWNtcGVxCisjIGRlZmluZSBNRU1DTVAJ X19tZW1jbXBlcQogI2VuZGlmCiAjZGVmaW5lIFVTRV9BU19NRU1DTVBFUQkxCiAjaW5jbHVkZSAi bWVtY21wLXNzZTIuUyIKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC93bWVt Y21wLWMuYyBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC93bWVtY21wLWMuYwpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNDZiNjcxNWUxOC4uMDAwMDAwMDAwMAotLS0gYS9zeXNkZXBz L3g4Nl82NC9tdWx0aWFyY2gvd21lbWNtcC1jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAg QEAKLSNpZiBJU19JTiAobGliYykKLSMgaW5jbHVkZSA8d2NoYXIuaD4KLQotIyBkZWZpbmUgV01F TUNNUCAgX193bWVtY21wX3NzZTIKLQotZXh0ZXJuIF9fdHlwZW9mICh3bWVtY21wKSBfX3dtZW1j bXBfc3NlMjsKLSNlbmRpZgotCi0jaW5jbHVkZSAid2NzbWJzL3dtZW1jbXAuYyIKZGlmZiAtLWdp dCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC93bWVtY21wLXNzZTIuUyBiL3N5c2RlcHMveDg2 XzY0L211bHRpYXJjaC93bWVtY21wLXNzZTIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi41N2JlMWM0NDZlCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy94ODZfNjQv bXVsdGlhcmNoL3dtZW1jbXAtc3NlMi5TCkBAIC0wLDAgKzEsMjUgQEAKKy8qIHdtZW1jbXAgb3B0 aW1pemVkIHdpdGggU1NFMi4KKyAgIENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5 LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBH TlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcg d2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworCisjaWYgSVNfSU4gKGxpYmMpCisjIGRlZmluZSBNRU1DTVAJ X193bWVtY21wX3NzZTIKKyNlbHNlCisjIGRlZmluZSBNRU1DTVAJd21lbWNtcAorI2VuZGlmCisj ZGVmaW5lIFVTRV9BU19XTUVNQ01QCTEKKyNpbmNsdWRlICJtZW1jbXAtc3NlMi5TIgpkaWZmIC0t Z2l0IGEvc3lzZGVwcy94ODZfNjQvd21lbWNtcC5TIGIvc3lzZGVwcy94ODZfNjQvd21lbWNtcC5T Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjAzMmYzODkxNTgKLS0tIC9k ZXYvbnVsbAorKysgYi9zeXNkZXBzL3g4Nl82NC93bWVtY21wLlMKQEAgLTAsMCArMSwyMSBAQAor Lyogd21lbWNtcCBvcHRpbWl6ZWQgd2l0aCBTU0UyLgorICAgQ29weXJpZ2h0IChDKSAyMDIyIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9u IDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAg TGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0 dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNkZWZpbmUgTUVNQ01QCXdtZW1j bXAKKyNkZWZpbmUgVVNFX0FTX1dNRU1DTVAJMQorI2luY2x1ZGUgIm11bHRpYXJjaC9tZW1jbXAt c3NlMi5TIgotLSAKMi4zNS4xCgo= --000000000000609a4105ded60059--