Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vR5Md-0064xD-37 for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Dec 2025 09:11:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vR5Md-001pf7-0A for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Dec 2025 09:11:03 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vR5Mc-001pe9-0A for pgsql-hackers@lists.postgresql.org; Thu, 04 Dec 2025 09:11:02 +0000 Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vR5MX-0034qA-3C for pgsql-hackers@lists.postgresql.org; Thu, 04 Dec 2025 09:11:01 +0000 Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-595819064cdso1035596e87.0 for ; Thu, 04 Dec 2025 01:10:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764839456; x=1765444256; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=9Cg2LLEYwwnZtQZdxZ0gtCvZ++Pktxb1lydPEW0Y9Gg=; b=IBbXwHB5AjJoagn7NOsNGB74VR+wb19d1KWk8lROOvlYlv9UrFDTofxdA9rVu1H0jB 3Ow8Pp2ApSawXtw0i+3S0dazwlsA0O5YHA0gLGmgGfrUPO92x3H00Tuanwt0Ol3gn8Hu KzQ3ZKIGc4Pj3YXDptHEywNmO8YcQkTiYRM6uNZduuY+s6bU+UmMXGg7uD4AgBBlxbxl jYDigMy3sszK/FZTot2CeDaQm2+xw8jRm6FO2WpqzTEX7y5sdcDv7SFrPS2MdjlBI3R+ 6E0mR2Ahjhm7IhsuwnCYfZ9LSZWLYKkWDWOgAc8sXIpN3OHroo0za1//a6O+VkRsIAnT mNTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764839456; x=1765444256; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=9Cg2LLEYwwnZtQZdxZ0gtCvZ++Pktxb1lydPEW0Y9Gg=; b=jjCq1wzwIgxuz26m8xAEJHwp8+ogf8JNo7tCUQLvSbAr3bFpHvntHEX0zC9H7hTB7M JqrzLGJBnU4UmCZYiq/KDd70C7TgNJzWct1TQjHQPAOYzQHmTepd/xhem740H56m9HNd 0aBY86YaqUKJ1SUtfti3gqdlgqjbYz+ZACbPIhCg5ETULZ2cWE/c+ZpUWDdqCD3FLMk6 QO8Pjr9gVJaTnoqny9yNEgq1C3j5Q+fDbuuFBs3WTMumC40z0PbksjO/upF+0sl042AN halpl4hx4JM/JROXjoUkOzMy2j1bjowzac+IMen7M/11W1fzz7Sv31pps9O+JPIPQFzP IgPQ== X-Forwarded-Encrypted: i=1; AJvYcCWFy5Ir8SY8mz9kjXHV31mIP94LVyu+b2E7kGtJ5/Xt5z+uiNe21sdJ+Q9MWk/kWog5yXJz6HQ59N1LmGEp@lists.postgresql.org X-Gm-Message-State: AOJu0YwQWMe2P1Le2UhW8YEylpDY21QQ2EF2E+5U6YFHitWQXt9g49HL sFgBI9RNj48wzUVWKbMd89j303cZn+NaF4ekkgUQgljoLFTlH/QNT5DL4HcTTPzLLadpgCwvsSN DWQi93K5+7WPVXinyBpYGY/Xs3PhWD9U1+F91SXE= X-Gm-Gg: ASbGncuaqTgRhDszKf8ZsJfZ0Mv0bCCtV+HFdkkV68/DIYMN7bfGAybFdybcxOiO2FE orvR4zt6nH+wahFR2YqzfNfyEyHWLNcZCghIXYA4MuK03fdpJJevS0PBLx6ffSeDYfFfAcVpto6 23FVuAkcpzwGjwBp8QYrvi/GT3cg+njC8FgOGOdg3cuurj/R5m0ejd3XCluNU3VQlm7YYNzQ75e mv7VITmchhYl1PvDeeTfqOgs4UypfeazO4zneCSdEh1bBxjq2zh6gCO0RwneuBd5fRIOps= X-Google-Smtp-Source: AGHT+IE9FQMoTGmXwSq2becN7sLor8sSRijBQ8zyRWWCiXmPPfVk8jc7QSMa1i6ZLfThhKVUq25+B1119BfwIxeV8Sg= X-Received: by 2002:a05:6512:31d1:b0:594:2d64:bce9 with SMTP id 2adb3069b0e04-597d61eea86mr793421e87.4.1764839455945; Thu, 04 Dec 2025 01:10:55 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Chao Li Date: Thu, 4 Dec 2025 17:10:42 +0800 X-Gm-Features: AWmQ_bk7PNex3KamLTvmCXpV4lqfhWnkBl1xNJ910UrR4ok4k5n7UXcBDZ2l6FI Message-ID: Subject: Re: Cleanup shadows variable warnings, round 1 To: Peter Smith Cc: Peter Eisentraut , Postgres hackers Content-Type: multipart/mixed; boundary="000000000000db94f406451cb433" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000db94f406451cb433 Content-Type: multipart/alternative; boundary="000000000000db94f106451cb431" --000000000000db94f106451cb431 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Dec 4, 2025, at 09:08, Peter Smith wrote: FWIW... A few more review comments for v3. ////////// Patch v3-0001. ////////// This is actually 0002. =3D=3D=3D=3D=3D=3D src/backend/access/gist/gistbuild.c 2.1. OK, but should you take it 1 step further? BEFORE foreach(lc, splitinfo) { GISTPageSplitInfo *si =3D lfirst(lc); AFTER foreach_ptr(GISTPageSplitInfo, si, splitinfo) { =3D=3D=3D=3D=3D=3D src/backend/commands/schemacmds.c Fixed. 2.2. OK, but should you take it 1 step further? BEFORE foreach(parsetree_item, parsetree_list) { Node *substmt =3D (Node *) lfirst(parsetree_item); AFTER foreach_ptr(Node, substmt, parsetree_list) { Fixed. =3D=3D=3D=3D=3D=3D src/backend/commands/statscmds.c 2.3. OK, but I felt 'attnums_bms' might be a better replacement name than 'attnumsbm' Fixed. =3D=3D=3D=3D=3D=3D src/backend/executor/nodeValuesscan.c 2.4. OK, but should you take it 1 step further? BEFORE foreach(lc, exprstatelist) { ExprState *exprstate =3D (ExprState *) lfirst(lc); AFTER foreach_ptr(ExprState, exprstate, exprstatelist) { Fixed. =3D=3D=3D=3D=3D=3D src/backend/statistics/dependencies.c 2.5. The other variable in other parts of this function had names like: clause_expr bool_expr or_expr stat_expr So, perhaps your new names should be changed slightly to look more similar to those? Fixed. =3D=3D=3D=3D=3D=3D src/backend/statistics/extended_stats.c 2.6. This seems to be in the wrong patch because here you renamed the local var, not the inner one, as the patch commit message says. Moved to 0003. =3D=3D=3D=3D=3D=3D src/backend/utils/adt/jsonpath_exec.c 2.7. Wondering if 'vals' might be a better name than 'foundJV' (there is already another JsonValueList vals elsewhere in this code). Fixed. =3D=3D=3D=3D=3D=3D src/bin/pgbench/pgbench.c 2.8. Wondering if 'nskipped' is a better name than 'skips'. The around variables all use =E2=80=9Cs=E2=80=9D: ``` int64 skips =3D 0; int64 serialization_failures =3D 0; int64 deadlock_failures =3D 0; int64 other_sql_failures =3D 0; int64 retried =3D 0; int64 retries =3D 0; ``` That=E2=80=99s why I used the =E2=80=9Cs=E2=80=9D form. All fixes are in v5. Best regards, -- Chao Li (Evan) HighGo Software Co., Ltd. https://www.highgo.com/ --000000000000db94f106451cb431 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
<= br id=3D"m_1741910089226554418lineBreakAtBeginningOfMessage">
On Dec 4, 2025, at 09:08, Peter Smith <smithpb2250@gmail.com> wro= te:

FWIW... A few more review comments for v3.

//////////
= Patch v3-0001.
//////////

This is ac= tually 0002.


=3D=3D=3D=3D=3D=3D
s= rc/backend/access/gist/gistbuild.c

2.1.
OK, but should you take i= t 1 step further?

BEFORE
foreach(lc, splitinfo)
{
=C2=A0GI= STPageSplitInfo *si =3D lfirst(lc);
AFTER
foreach_ptr(GISTPageSplitIn= fo, si, splitinfo)
{

=3D=3D=3D=3D=3D=3D
src/backend/commands/s= chemacmds.c


Fixed.

2.2.
OK, but should you take it 1 step further?
BEFORE
foreach(parsetree_item, parsetree_list)
{
=C2=A0Node =C2= =A0=C2=A0=C2=A0*substmt =3D (Node *) lfirst(parsetree_item);
AFTER
fo= reach_ptr(Node, substmt, parsetree_list)
{


=
Fixed.

=3D=3D=3D=3D=3D=3D
src/ba= ckend/commands/statscmds.c

2.3.
OK, but I felt 'attnums_bms&#= 39; might be a better replacement name than 'attnumsbm'


Fixed.

=3D= =3D=3D=3D=3D=3D
src/backend/executor/nodeValuesscan.c
2.4.
OK, but should you take it 1 step further?
<= br>BEFORE
foreach(lc, exprstatelist)
{
=C2=A0ExprState =C2=A0*exp= rstate =3D (ExprState *) lfirst(lc);
AFTER
foreach_ptr(ExprState, exp= rstate, exprstatelist)
{


Fixed.<= /div>
=3D=3D=3D=3D=3D=3D
src/backend/statis= tics/dependencies.c

2.5.
The other variable in other parts of thi= s function had names like:
clause_expr
bool_expr
or_expr
stat_e= xpr

So, perhaps your new names should be changed slightly to look mo= re
similar to those?


Fixed.
=3D=3D=3D=3D=3D=3D
src/backend/statistics= /extended_stats.c

2.6.
This seems to be in the wrong patch becaus= e here you renamed the local
var, not the inner one, as the patch commit= message says.


Moved to 0003.
=
=3D=3D=3D=3D=3D=3D
src/backend/utils/adt/j= sonpath_exec.c

2.7.
Wondering if 'vals' might be a better= name than 'foundJV' (there is
already another JsonValueList val= s elsewhere in this code).


Fixed.
=3D=3D=3D=3D=3D=3D
src/bin/pgbench/pgb= ench.c

2.8.
Wondering if 'nskipped' is a better name than= 'skips'.


The around variab= les all use =E2=80=9Cs=E2=80=9D:
```
int64 skips = =3D 0;
int64 serialization_failures =3D 0;
= int64 deadlock_failures =3D 0;
int64 other_s= ql_failures =3D 0;
int64 retried =3D 0;
= int64 retries =3D 0;
```

That=E2=80=99= s why I used the =E2=80=9Cs=E2=80=9D form.

All fix= es are in v5.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/




--000000000000db94f106451cb431-- --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0003-cleanup-rename-outer-variables-to-avoid-shadowing.patch" Content-Disposition: attachment; filename="v5-0003-cleanup-rename-outer-variables-to-avoid-shadowing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trge2 RnJvbSAxMjI5MThiNTc2NTVjYzE2YTUxMDQ3ZmY0OTM3YTVlMmUyYmY5NDNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDExOjUxOjAxICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAwMy8x M10gY2xlYW51cDogcmVuYW1lIG91dGVyIHZhcmlhYmxlcyB0byBhdm9pZCBzaGFkb3dpbmcKIGlu bmVyIGxvY2FscwoKVGhpcyBjb21taXQgcmVzb2x2ZXMgc2V2ZXJhbCBjYXNlcyB3aGVyZSBhbiBv dXRlci1zY29wZSB2YXJpYWJsZSBzaGFyZWQKYSBuYW1lIHdpdGggYSBtb3JlIGZyZXF1ZW50bHkg dXNlZCBpbm5lciB2YXJpYWJsZS4gVGhlIGZpeGVzIHJlbmFtZSB0aGUKb3V0ZXIgdmFyaWFibGVz IHNvIGVhY2ggaWRlbnRpZmllciByZW1haW5zIGRpc3RpbmN0IHdpdGhpbiBpdHMgc2NvcGUuCgpB dXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29tPgpSZXZpZXdlZC1ieTogUGV0ZXIgU21pdGgg PHNtaXRocGIyMjUwQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9D QUVvV3gya1EyeDVnTWFqOHRITEozPWpmQytwNVlYSGtKeUhyRFRpUXcybm4yRkpUbVFAbWFpbC5n bWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyAgICAgfCAx MCArKysrKy0tLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyAgICAgfCAg NCArKy0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMgfCAgNiArKyst LS0KIHNyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0ZGVzYy5jICAgICB8ICA2ICsrKy0tLQog c3JjL2JhY2tlbmQvc3RhdGlzdGljcy9leHRlbmRlZF9zdGF0cy5jIHwgIDYgKysrLS0tCiBzcmMv YmFja2VuZC9zdG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5jICAgfCAgNiArKystLS0KIHNyYy9iaW4v cGdfYmFzZWJhY2t1cC9wZ19yZWNlaXZld2FsLmMgICB8ICA0ICsrLS0KIDcgZmlsZXMgY2hhbmdl ZCwgMjEgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVj dGFkZHJlc3MuYwppbmRleCBjNzViNzEzMWVkNy4uMjk2ZGU3NjQ3YmMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvb2JqZWN0YWRkcmVzcy5jCkBAIC0yMTE5LDcgKzIxMTksNyBAQCBwZ19nZXRfb2JqZWN0X2Fk ZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAlPYmplY3RBZGRyZXNzIGFkZHI7CiAJVHVwbGVEZXNj CXR1cGRlc2M7CiAJRGF0dW0JCXZhbHVlc1szXTsKLQlib29sCQludWxsc1szXTsKKwlib29sCQlp c251bGxzWzNdOwogCUhlYXBUdXBsZQlodHVwOwogCVJlbGF0aW9uCXJlbGF0aW9uOwogCkBAIC0y Mzc0LDExICsyMzc0LDExIEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdT KQogCXZhbHVlc1swXSA9IE9iamVjdElkR2V0RGF0dW0oYWRkci5jbGFzc0lkKTsKIAl2YWx1ZXNb MV0gPSBPYmplY3RJZEdldERhdHVtKGFkZHIub2JqZWN0SWQpOwogCXZhbHVlc1syXSA9IEludDMy R2V0RGF0dW0oYWRkci5vYmplY3RTdWJJZCk7Ci0JbnVsbHNbMF0gPSBmYWxzZTsKLQludWxsc1sx XSA9IGZhbHNlOwotCW51bGxzWzJdID0gZmFsc2U7CisJaXNudWxsc1swXSA9IGZhbHNlOworCWlz bnVsbHNbMV0gPSBmYWxzZTsKKwlpc251bGxzWzJdID0gZmFsc2U7CiAKLQlodHVwID0gaGVhcF9m b3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCWh0dXAgPSBoZWFwX2Zvcm1fdHVw bGUodHVwZGVzYywgdmFsdWVzLCBpc251bGxzKTsKIAogCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVw bGVHZXREYXR1bShodHVwKSk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCmluZGV4 IDk5NDRlNGJkMmQxLi5iODZmOTNhZWI0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50 LmMKQEAgLTgxNCw3ICs4MTQsNyBAQCBBZGp1c3ROb3ROdWxsSW5oZXJpdGFuY2UoT2lkIHJlbGlk LCBBdHRyTnVtYmVyIGF0dG51bSwKICAqICdpbmNsdWRlX25vaW5oJyBkZXRlcm1pbmVzIHdoZXRo ZXIgdG8gaW5jbHVkZSBOTyBJTkhFUklUIGNvbnN0cmFpbnRzIG9yIG5vdC4KICAqLwogTGlzdCAq Ci1SZWxhdGlvbkdldE5vdE51bGxDb25zdHJhaW50cyhPaWQgcmVsaWQsIGJvb2wgY29va2VkLCBi b29sIGluY2x1ZGVfbm9pbmgpCitSZWxhdGlvbkdldE5vdE51bGxDb25zdHJhaW50cyhPaWQgcmVs aWQsIGJvb2wgd2FudF9jb29rZWQsIGJvb2wgaW5jbHVkZV9ub2luaCkKIHsKIAlMaXN0CSAgICpu b3RudWxscyA9IE5JTDsKIAlSZWxhdGlvbgljb25zdHJSZWw7CkBAIC04NDIsNyArODQyLDcgQEAg UmVsYXRpb25HZXROb3ROdWxsQ29uc3RyYWludHMoT2lkIHJlbGlkLCBib29sIGNvb2tlZCwgYm9v bCBpbmNsdWRlX25vaW5oKQogCiAJCWNvbG51bSA9IGV4dHJhY3ROb3ROdWxsQ29sdW1uKGh0dXAp OwogCi0JCWlmIChjb29rZWQpCisJCWlmICh3YW50X2Nvb2tlZCkKIAkJewogCQkJQ29va2VkQ29u c3RyYWludCAqY29va2VkOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0 aC9lcXVpdmNsYXNzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMK aW5kZXggNDQxZjEyZjZjNTAuLmQzNTBhYThhM2IwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bh dGgvZXF1aXZjbGFzcy5jCkBAIC03MzksNyArNzM5LDcgQEAgZ2V0X2VjbGFzc19mb3Jfc29ydF9l eHByKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJIE9pZCBvcGNpbnR5cGUsCiAJCQkJCQkgT2lk IGNvbGxhdGlvbiwKIAkJCQkJCSBJbmRleCBzb3J0cmVmLAotCQkJCQkJIFJlbGlkcyByZWwsCisJ CQkJCQkgUmVsaWRzIHJlbGlkcywKIAkJCQkJCSBib29sIGNyZWF0ZV9pdCkKIHsKIAlKb2luRG9t YWluICpqZG9tYWluOwpAQCAtNzgyLDE0ICs3ODIsMTQgQEAgZ2V0X2VjbGFzc19mb3Jfc29ydF9l eHByKFBsYW5uZXJJbmZvICpyb290LAogCQlpZiAoIWVxdWFsKG9wZmFtaWxpZXMsIGN1cl9lYy0+ ZWNfb3BmYW1pbGllcykpCiAJCQljb250aW51ZTsKIAotCQlzZXR1cF9lY2xhc3NfbWVtYmVyX2l0 ZXJhdG9yKCZpdCwgY3VyX2VjLCByZWwpOworCQlzZXR1cF9lY2xhc3NfbWVtYmVyX2l0ZXJhdG9y KCZpdCwgY3VyX2VjLCByZWxpZHMpOwogCQl3aGlsZSAoKGN1cl9lbSA9IGVjbGFzc19tZW1iZXJf aXRlcmF0b3JfbmV4dCgmaXQpKSAhPSBOVUxMKQogCQl7CiAJCQkvKgogCQkJICogSWdub3JlIGNo aWxkIG1lbWJlcnMgdW5sZXNzIHRoZXkgbWF0Y2ggdGhlIHJlcXVlc3QuCiAJCQkgKi8KIAkJCWlm IChjdXJfZW0tPmVtX2lzX2NoaWxkICYmCi0JCQkJIWJtc19lcXVhbChjdXJfZW0tPmVtX3JlbGlk cywgcmVsKSkKKwkJCQkhYm1zX2VxdWFsKGN1cl9lbS0+ZW1fcmVsaWRzLCByZWxpZHMpKQogCQkJ CWNvbnRpbnVlOwogCiAJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5n L3BhcnRkZXNjLmMgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGRlc2MuYwppbmRleCAz MjhiNGQ0NTBlNC4uNmZkNDZjZjJjOTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnRpdGlv bmluZy9wYXJ0ZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0ZGVzYy5j CkBAIC0xNDYsNyArMTQ2LDcgQEAgUmVsYXRpb25CdWlsZFBhcnRpdGlvbkRlc2MoUmVsYXRpb24g cmVsLCBib29sIG9taXRfZGV0YWNoZWQpCiAJaW50CQkJaSwKIAkJCQlucGFydHM7CiAJYm9vbAkJ cmV0cmllZCA9IGZhbHNlOwotCVBhcnRpdGlvbktleSBrZXkgPSBSZWxhdGlvbkdldFBhcnRpdGlv bktleShyZWwpOworCVBhcnRpdGlvbktleSBwYXJ0a2V5ID0gUmVsYXRpb25HZXRQYXJ0aXRpb25L ZXkocmVsKTsKIAlNZW1vcnlDb250ZXh0IG5ld19wZGN4dDsKIAlNZW1vcnlDb250ZXh0IG9sZGN4 dDsKIAlpbnQJCSAgICptYXBwaW5nOwpAQCAtMzA4LDcgKzMwOCw3IEBAIHJldHJ5OgogCSAqIFRo aXMgY291bGQgZmFpbCwgYnV0IHdlIGhhdmVuJ3QgZG9uZSBhbnkgZGFtYWdlIGlmIHNvLgogCSAq LwogCWlmIChucGFydHMgPiAwKQotCQlib3VuZGluZm8gPSBwYXJ0aXRpb25fYm91bmRzX2NyZWF0 ZShib3VuZHNwZWNzLCBucGFydHMsIGtleSwgJm1hcHBpbmcpOworCQlib3VuZGluZm8gPSBwYXJ0 aXRpb25fYm91bmRzX2NyZWF0ZShib3VuZHNwZWNzLCBucGFydHMsIHBhcnRrZXksICZtYXBwaW5n KTsKIAogCS8qCiAJICogTm93IGJ1aWxkIHRoZSBhY3R1YWwgcmVsY2FjaGUgcGFydGl0aW9uIGRl c2NyaXB0b3IsIGNvcHlpbmcgYWxsIHRoZQpAQCAtMzI5LDcgKzMyOSw3IEBAIHJldHJ5OgogCWlm IChucGFydHMgPiAwKQogCXsKIAkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKG5ld19w ZGN4dCk7Ci0JCXBhcnRkZXNjLT5ib3VuZGluZm8gPSBwYXJ0aXRpb25fYm91bmRzX2NvcHkoYm91 bmRpbmZvLCBrZXkpOworCQlwYXJ0ZGVzYy0+Ym91bmRpbmZvID0gcGFydGl0aW9uX2JvdW5kc19j b3B5KGJvdW5kaW5mbywgcGFydGtleSk7CiAKIAkJLyogSW5pdGlhbGl6ZSBjYWNoaW5nIGZpZWxk cyBmb3Igc3BlZWRpbmcgdXAgRXhlY0ZpbmRQYXJ0aXRpb24gKi8KIAkJcGFydGRlc2MtPmxhc3Rf Zm91bmRfZGF0dW1faW5kZXggPSAtMTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0YXRpc3Rp Y3MvZXh0ZW5kZWRfc3RhdHMuYyBiL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3Rh dHMuYwppbmRleCBmMDAzZDdiNGE3My4uYWUyYzgyNDc1ZDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHMuYworKysgYi9zcmMvYmFja2VuZC9zdGF0aXN0 aWNzL2V4dGVuZGVkX3N0YXRzLmMKQEAgLTk5MSw3ICs5OTEsNyBAQCBidWlsZF9zb3J0ZWRfaXRl bXMoU3RhdHNCdWlsZERhdGEgKmRhdGEsIGludCAqbml0ZW1zLAogCVNpemUJCWxlbjsKIAlTb3J0 SXRlbSAgICppdGVtczsKIAlEYXR1bQkgICAqdmFsdWVzOwotCWJvb2wJICAgKmlzbnVsbDsKKwli b29sCSAgICppc251bGxzOwogCWNoYXIJICAgKnB0cjsKIAlpbnQJCSAgICp0eXBsZW47CiAKQEAg LTEwMTEsNyArMTAxMSw3IEBAIGJ1aWxkX3NvcnRlZF9pdGVtcyhTdGF0c0J1aWxkRGF0YSAqZGF0 YSwgaW50ICpuaXRlbXMsCiAJdmFsdWVzID0gKERhdHVtICopIHB0cjsKIAlwdHIgKz0gbnZhbHVl cyAqIHNpemVvZihEYXR1bSk7CiAKLQlpc251bGwgPSAoYm9vbCAqKSBwdHI7CisJaXNudWxscyA9 IChib29sICopIHB0cjsKIAlwdHIgKz0gbnZhbHVlcyAqIHNpemVvZihib29sKTsKIAogCS8qIG1h a2Ugc3VyZSB3ZSBjb25zdW1lZCB0aGUgd2hvbGUgYnVmZmVyIGV4YWN0bHkgKi8KQEAgLTEwMjIs NyArMTAyMiw3IEBAIGJ1aWxkX3NvcnRlZF9pdGVtcyhTdGF0c0J1aWxkRGF0YSAqZGF0YSwgaW50 ICpuaXRlbXMsCiAJZm9yIChpID0gMDsgaSA8IGRhdGEtPm51bXJvd3M7IGkrKykKIAl7CiAJCWl0 ZW1zW25yb3dzXS52YWx1ZXMgPSAmdmFsdWVzW25yb3dzICogbnVtYXR0cnNdOwotCQlpdGVtc1tu cm93c10uaXNudWxsID0gJmlzbnVsbFtucm93cyAqIG51bWF0dHJzXTsKKwkJaXRlbXNbbnJvd3Nd LmlzbnVsbCA9ICZpc251bGxzW25yb3dzICogbnVtYXR0cnNdOwogCiAJCW5yb3dzKys7CiAJfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9haW8vcmVhZF9zdHJlYW0uYyBiL3NyYy9i YWNrZW5kL3N0b3JhZ2UvYWlvL3JlYWRfc3RyZWFtLmMKaW5kZXggMDMxZmRlOWY0Y2IuLmVkYzIy NzllYWQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5j CisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYWlvL3JlYWRfc3RyZWFtLmMKQEAgLTc4OCw3ICs3 ODgsNyBAQCByZWFkX3N0cmVhbV9iZWdpbl9zbWdyX3JlbGF0aW9uKGludCBmbGFncywKICAqIHRo ZSBzdHJlYW0gZWFybHkgYXQgYW55IHRpbWUgYnkgY2FsbGluZyByZWFkX3N0cmVhbV9lbmQoKS4K ICAqLwogQnVmZmVyCi1yZWFkX3N0cmVhbV9uZXh0X2J1ZmZlcihSZWFkU3RyZWFtICpzdHJlYW0s IHZvaWQgKipwZXJfYnVmZmVyX2RhdGEpCityZWFkX3N0cmVhbV9uZXh0X2J1ZmZlcihSZWFkU3Ry ZWFtICpzdHJlYW0sIHZvaWQgKipwcGVyX2J1ZmZlcl9kYXRhKQogewogCUJ1ZmZlcgkJYnVmZmVy OwogCWludDE2CQlvbGRlc3RfYnVmZmVyX2luZGV4OwpAQCAtOTAzLDggKzkwMyw4IEBAIHJlYWRf c3RyZWFtX25leHRfYnVmZmVyKFJlYWRTdHJlYW0gKnN0cmVhbSwgdm9pZCAqKnBlcl9idWZmZXJf ZGF0YSkKIAlBc3NlcnQob2xkZXN0X2J1ZmZlcl9pbmRleCA+PSAwICYmCiAJCSAgIG9sZGVzdF9i dWZmZXJfaW5kZXggPCBzdHJlYW0tPnF1ZXVlX3NpemUpOwogCWJ1ZmZlciA9IHN0cmVhbS0+YnVm ZmVyc1tvbGRlc3RfYnVmZmVyX2luZGV4XTsKLQlpZiAocGVyX2J1ZmZlcl9kYXRhKQotCQkqcGVy X2J1ZmZlcl9kYXRhID0gZ2V0X3Blcl9idWZmZXJfZGF0YShzdHJlYW0sIG9sZGVzdF9idWZmZXJf aW5kZXgpOworCWlmIChwcGVyX2J1ZmZlcl9kYXRhKQorCQkqcHBlcl9idWZmZXJfZGF0YSA9IGdl dF9wZXJfYnVmZmVyX2RhdGEoc3RyZWFtLCBvbGRlc3RfYnVmZmVyX2luZGV4KTsKIAogCUFzc2Vy dChCdWZmZXJJc1ZhbGlkKGJ1ZmZlcikpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2Vi YWNrdXAvcGdfcmVjZWl2ZXdhbC5jIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX3JlY2VpdmV3 YWwuYwppbmRleCA0NmU1NTNkY2U0Yi4uNzg1YmY3YjExZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfYmFzZWJhY2t1cC9wZ19yZWNlaXZld2FsLmMKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3Vw L3BnX3JlY2VpdmV3YWwuYwpAQCAtMjY1LDcgKzI2NSw3IEBAIGNsb3NlX2Rlc3RpbmF0aW9uX2Rp cihESVIgKmRlc3RfZGlyLCBjaGFyICpkZXN0X2ZvbGRlcikKICAqIElmIHRoZXJlIGFyZSBubyBX QUwgZmlsZXMgaW4gdGhlIGRpcmVjdG9yeSwgcmV0dXJucyBJbnZhbGlkWExvZ1JlY1B0ci4KICAq Lwogc3RhdGljIFhMb2dSZWNQdHIKLUZpbmRTdHJlYW1pbmdTdGFydCh1aW50MzIgKnRsaSkKK0Zp bmRTdHJlYW1pbmdTdGFydCh1aW50MzIgKnB0bGkpCiB7CiAJRElSCQkgICAqZGlyOwogCXN0cnVj dCBkaXJlbnQgKmRpcmVudDsKQEAgLTQ4Niw3ICs0ODYsNyBAQCBGaW5kU3RyZWFtaW5nU3RhcnQo dWludDMyICp0bGkpCiAKIAkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoaGlnaF9zZWdubywgMCwg V2FsU2VnU3osIGhpZ2hfcHRyKTsKIAotCQkqdGxpID0gaGlnaF90bGk7CisJCSpwdGxpID0gaGln aF90bGk7CiAJCXJldHVybiBoaWdoX3B0cjsKIAl9CiAJZWxzZQotLSAKMi4zOS41IChBcHBsZSBH aXQtMTU0KQoK --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0004-cleanup-fix-macro-induced-variable-shadowing-in-i.patch" Content-Disposition: attachment; filename="v5-0004-cleanup-fix-macro-induced-variable-shadowing-in-i.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trgf3 RnJvbSBhMDhlZThjZTExMTJjZDY0MzEzZTg1ZDk1ZWFhYjY5M2VhYTIzZGEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDEyOjA4OjAzICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAwNC8x M10gY2xlYW51cDogZml4IG1hY3JvLWluZHVjZWQgdmFyaWFibGUgc2hhZG93aW5nIGluCiBpbnZh bC5jCgpUaGlzIGNvbW1pdCByZXNvbHZlcyBhIHNoYWRvd2luZyBpc3N1ZSBpbiBpbnZhbC5jIHdo ZXJlIHZhcmlhYmxlcyBkZWZpbmVkCmluc2lkZSB0aGUgUHJvY2Vzc01lc3NhZ2VTdWJHcm91cCBh bmQgUHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpIG1hY3Jvcwpjb25mbGljdGVkIHdpdGggYW4g ZXhpc3RpbmcgbG9jYWwgbmFtZS4gVGhlIGZpeCByZW5hbWVzIHRoZSBtYWNyby1zY29wZWQKdmFy aWFibGUgc28gaXQgbm8gbG9uZ2VyIHNoYWRvd3MgdGhlIGxvY2FsIHZhcmlhYmxlIGF0IHRoZSBj YWxsIHNpdGUuCgpBdXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRW9XeDJrUTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5SHJE VGlRdzJubjJGSlRtUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L2ludmFsLmMgfCA0NCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9pbnZhbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv aW52YWwuYwppbmRleCAwNmY3MzZjYWI0NS4uMzBiZjc5ZmIxYzEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2ludmFsLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv aW52YWwuYwpAQCAtMzg3LDcgKzM4Nyw3IEBAIEFwcGVuZEludmFsaWRhdGlvbk1lc3NhZ2VTdWJH cm91cChJbnZhbGlkYXRpb25Nc2dzR3JvdXAgKmRlc3QsCiAJCWludAkJX2VuZG1zZyA9IChncm91 cCktPm5leHRtc2dbc3ViZ3JvdXBdOyBcCiAJCWZvciAoOyBfbXNnaW5kZXggPCBfZW5kbXNnOyBf bXNnaW5kZXgrKykgXAogCQl7IFwKLQkJCVNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1zZyA9 IFwKKwkJCVNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKl9tc2cgPSBcCiAJCQkJJkludmFsTWVz c2FnZUFycmF5c1tzdWJncm91cF0ubXNnc1tfbXNnaW5kZXhdOyBcCiAJCQljb2RlRnJhZ21lbnQ7 IFwKIAkJfSBcCkBAIC00MDMsNyArNDAzLDcgQEAgQXBwZW5kSW52YWxpZGF0aW9uTWVzc2FnZVN1 Ykdyb3VwKEludmFsaWRhdGlvbk1zZ3NHcm91cCAqZGVzdCwKIAlkbyB7IFwKIAkJaW50CQluID0g TnVtTWVzc2FnZXNJblN1Ykdyb3VwKGdyb3VwLCBzdWJncm91cCk7IFwKIAkJaWYgKG4gPiAwKSB7 IFwKLQkJCVNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1zZ3MgPSBcCisJCQlTaGFyZWRJbnZh bGlkYXRpb25NZXNzYWdlICpfbXNncyA9IFwKIAkJCQkmSW52YWxNZXNzYWdlQXJyYXlzW3N1Ymdy b3VwXS5tc2dzWyhncm91cCktPmZpcnN0bXNnW3N1Ymdyb3VwXV07IFwKIAkJCWNvZGVGcmFnbWVu dDsgXAogCQl9IFwKQEAgLTQ3OSw5ICs0NzksOSBAQCBBZGRSZWxjYWNoZUludmFsaWRhdGlvbk1l c3NhZ2UoSW52YWxpZGF0aW9uTXNnc0dyb3VwICpncm91cCwKIAkgKiBkb24ndCBuZWVkIHRvIGFk ZCBpbmRpdmlkdWFsIG9uZXMgd2hlbiBpdCBpcyBwcmVzZW50LgogCSAqLwogCVByb2Nlc3NNZXNz YWdlU3ViR3JvdXAoZ3JvdXAsIFJlbENhY2hlTXNncywKLQkJCQkJCSAgIGlmIChtc2ctPnJjLmlk ID09IFNIQVJFRElOVkFMUkVMQ0FDSEVfSUQgJiYKLQkJCQkJCQkgICAobXNnLT5yYy5yZWxJZCA9 PSByZWxJZCB8fAotCQkJCQkJCQltc2ctPnJjLnJlbElkID09IEludmFsaWRPaWQpKQorCQkJCQkJ ICAgaWYgKF9tc2ctPnJjLmlkID09IFNIQVJFRElOVkFMUkVMQ0FDSEVfSUQgJiYKKwkJCQkJCQkg ICAoX21zZy0+cmMucmVsSWQgPT0gcmVsSWQgfHwKKwkJCQkJCQkJX21zZy0+cmMucmVsSWQgPT0g SW52YWxpZE9pZCkpCiAJCQkJCQkgICByZXR1cm4pOwogCiAJLyogT0ssIGFkZCB0aGUgaXRlbSAq LwpAQCAtNTA5LDkgKzUwOSw5IEBAIEFkZFJlbHN5bmNJbnZhbGlkYXRpb25NZXNzYWdlKEludmFs aWRhdGlvbk1zZ3NHcm91cCAqZ3JvdXAsCiAKIAkvKiBEb24ndCBhZGQgYSBkdXBsaWNhdGUgaXRl bS4gKi8KIAlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwKGdyb3VwLCBSZWxDYWNoZU1zZ3MsCi0JCQkJ CQkgICBpZiAobXNnLT5yYy5pZCA9PSBTSEFSRURJTlZBTFJFTFNZTkNfSUQgJiYKLQkJCQkJCQkg ICAobXNnLT5yYy5yZWxJZCA9PSByZWxJZCB8fAotCQkJCQkJCQltc2ctPnJjLnJlbElkID09IElu dmFsaWRPaWQpKQorCQkJCQkJICAgaWYgKF9tc2ctPnJjLmlkID09IFNIQVJFRElOVkFMUkVMU1lO Q19JRCAmJgorCQkJCQkJCSAgIChfbXNnLT5yYy5yZWxJZCA9PSByZWxJZCB8fAorCQkJCQkJCQlf bXNnLT5yYy5yZWxJZCA9PSBJbnZhbGlkT2lkKSkKIAkJCQkJCSAgIHJldHVybik7CiAKIAkvKiBP SywgYWRkIHRoZSBpdGVtICovCkBAIC01MzgsOCArNTM4LDggQEAgQWRkU25hcHNob3RJbnZhbGlk YXRpb25NZXNzYWdlKEludmFsaWRhdGlvbk1zZ3NHcm91cCAqZ3JvdXAsCiAJLyogRG9uJ3QgYWRk IGEgZHVwbGljYXRlIGl0ZW0gKi8KIAkvKiBXZSBhc3N1bWUgZGJJZCBuZWVkIG5vdCBiZSBjaGVj a2VkIGJlY2F1c2UgaXQgd2lsbCBuZXZlciBjaGFuZ2UgKi8KIAlQcm9jZXNzTWVzc2FnZVN1Ykdy b3VwKGdyb3VwLCBSZWxDYWNoZU1zZ3MsCi0JCQkJCQkgICBpZiAobXNnLT5zbi5pZCA9PSBTSEFS RURJTlZBTFNOQVBTSE9UX0lEICYmCi0JCQkJCQkJICAgbXNnLT5zbi5yZWxJZCA9PSByZWxJZCkK KwkJCQkJCSAgIGlmIChfbXNnLT5zbi5pZCA9PSBTSEFSRURJTlZBTFNOQVBTSE9UX0lEICYmCisJ CQkJCQkJICAgX21zZy0+c24ucmVsSWQgPT0gcmVsSWQpCiAJCQkJCQkgICByZXR1cm4pOwogCiAJ LyogT0ssIGFkZCB0aGUgaXRlbSAqLwpAQCAtNTc0LDggKzU3NCw4IEBAIHN0YXRpYyB2b2lkCiBQ cm9jZXNzSW52YWxpZGF0aW9uTWVzc2FnZXMoSW52YWxpZGF0aW9uTXNnc0dyb3VwICpncm91cCwK IAkJCQkJCQl2b2lkICgqZnVuYykgKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1zZykpCiB7 Ci0JUHJvY2Vzc01lc3NhZ2VTdWJHcm91cChncm91cCwgQ2F0Q2FjaGVNc2dzLCBmdW5jKG1zZykp OwotCVByb2Nlc3NNZXNzYWdlU3ViR3JvdXAoZ3JvdXAsIFJlbENhY2hlTXNncywgZnVuYyhtc2cp KTsKKwlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwKGdyb3VwLCBDYXRDYWNoZU1zZ3MsIGZ1bmMoX21z ZykpOworCVByb2Nlc3NNZXNzYWdlU3ViR3JvdXAoZ3JvdXAsIFJlbENhY2hlTXNncywgZnVuYyhf bXNnKSk7CiB9CiAKIC8qCkBAIC01ODYsOCArNTg2LDggQEAgc3RhdGljIHZvaWQKIFByb2Nlc3NJ bnZhbGlkYXRpb25NZXNzYWdlc011bHRpKEludmFsaWRhdGlvbk1zZ3NHcm91cCAqZ3JvdXAsCiAJ CQkJCQkJCSB2b2lkICgqZnVuYykgKGNvbnN0IFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1z Z3MsIGludCBuKSkKIHsKLQlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGkoZ3JvdXAsIENhdENh Y2hlTXNncywgZnVuYyhtc2dzLCBuKSk7Ci0JUHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKGdy b3VwLCBSZWxDYWNoZU1zZ3MsIGZ1bmMobXNncywgbikpOworCVByb2Nlc3NNZXNzYWdlU3ViR3Jv dXBNdWx0aShncm91cCwgQ2F0Q2FjaGVNc2dzLCBmdW5jKF9tc2dzLCBuKSk7CisJUHJvY2Vzc01l c3NhZ2VTdWJHcm91cE11bHRpKGdyb3VwLCBSZWxDYWNoZU1zZ3MsIGZ1bmMoX21zZ3MsIG4pKTsK IH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpAQCAtMTA1MywyNSArMTA1MywyNSBAQCB4YWN0R2V0Q29tbWl0dGVk SW52YWxpZGF0aW9uTWVzc2FnZXMoU2hhcmVkSW52YWxpZGF0aW9uTWVzc2FnZSAqKm1zZ3MsCiAJ UHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKCZ0cmFuc0ludmFsSW5mby0+UHJpb3JDbWRJbnZh bGlkTXNncywKIAkJCQkJCQkJQ2F0Q2FjaGVNc2dzLAogCQkJCQkJCQkobWVtY3B5KG1zZ2FycmF5 ICsgbm1zZ3MsCi0JCQkJCQkJCQkJbXNncywKKwkJCQkJCQkJCQlfbXNncywKIAkJCQkJCQkJCQlu ICogc2l6ZW9mKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UpKSwKIAkJCQkJCQkJIG5tc2dzICs9 IG4pKTsKIAlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGkoJnRyYW5zSW52YWxJbmZvLT5paS5D dXJyZW50Q21kSW52YWxpZE1zZ3MsCiAJCQkJCQkJCUNhdENhY2hlTXNncywKIAkJCQkJCQkJKG1l bWNweShtc2dhcnJheSArIG5tc2dzLAotCQkJCQkJCQkJCW1zZ3MsCisJCQkJCQkJCQkJX21zZ3Ms CiAJCQkJCQkJCQkJbiAqIHNpemVvZihTaGFyZWRJbnZhbGlkYXRpb25NZXNzYWdlKSksCiAJCQkJ CQkJCSBubXNncyArPSBuKSk7CiAJUHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKCZ0cmFuc0lu dmFsSW5mby0+UHJpb3JDbWRJbnZhbGlkTXNncywKIAkJCQkJCQkJUmVsQ2FjaGVNc2dzLAogCQkJ CQkJCQkobWVtY3B5KG1zZ2FycmF5ICsgbm1zZ3MsCi0JCQkJCQkJCQkJbXNncywKKwkJCQkJCQkJ CQlfbXNncywKIAkJCQkJCQkJCQluICogc2l6ZW9mKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2Up KSwKIAkJCQkJCQkJIG5tc2dzICs9IG4pKTsKIAlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGko JnRyYW5zSW52YWxJbmZvLT5paS5DdXJyZW50Q21kSW52YWxpZE1zZ3MsCiAJCQkJCQkJCVJlbENh Y2hlTXNncywKIAkJCQkJCQkJKG1lbWNweShtc2dhcnJheSArIG5tc2dzLAotCQkJCQkJCQkJCW1z Z3MsCisJCQkJCQkJCQkJX21zZ3MsCiAJCQkJCQkJCQkJbiAqIHNpemVvZihTaGFyZWRJbnZhbGlk YXRpb25NZXNzYWdlKSksCiAJCQkJCQkJCSBubXNncyArPSBuKSk7CiAJQXNzZXJ0KG5tc2dzID09 IG51bW1zZ3MpOwpAQCAtMTEwOSwxMyArMTEwOSwxMyBAQCBpbnBsYWNlR2V0SW52YWxpZGF0aW9u TWVzc2FnZXMoU2hhcmVkSW52YWxpZGF0aW9uTWVzc2FnZSAqKm1zZ3MsCiAJUHJvY2Vzc01lc3Nh Z2VTdWJHcm91cE11bHRpKCZpbnBsYWNlSW52YWxJbmZvLT5DdXJyZW50Q21kSW52YWxpZE1zZ3Ms CiAJCQkJCQkJCUNhdENhY2hlTXNncywKIAkJCQkJCQkJKG1lbWNweShtc2dhcnJheSArIG5tc2dz LAotCQkJCQkJCQkJCW1zZ3MsCisJCQkJCQkJCQkJX21zZ3MsCiAJCQkJCQkJCQkJbiAqIHNpemVv ZihTaGFyZWRJbnZhbGlkYXRpb25NZXNzYWdlKSksCiAJCQkJCQkJCSBubXNncyArPSBuKSk7CiAJ UHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKCZpbnBsYWNlSW52YWxJbmZvLT5DdXJyZW50Q21k SW52YWxpZE1zZ3MsCiAJCQkJCQkJCVJlbENhY2hlTXNncywKIAkJCQkJCQkJKG1lbWNweShtc2dh cnJheSArIG5tc2dzLAotCQkJCQkJCQkJCW1zZ3MsCisJCQkJCQkJCQkJX21zZ3MsCiAJCQkJCQkJ CQkJbiAqIHNpemVvZihTaGFyZWRJbnZhbGlkYXRpb25NZXNzYWdlKSksCiAJCQkJCQkJCSBubXNn cyArPSBuKSk7CiAJQXNzZXJ0KG5tc2dzID09IG51bW1zZ3MpOwpAQCAtMTk1NSwxMCArMTk1NSwx MCBAQCBMb2dMb2dpY2FsSW52YWxpZGF0aW9ucyh2b2lkKQogCQlYTG9nQmVnaW5JbnNlcnQoKTsK IAkJWExvZ1JlZ2lzdGVyRGF0YSgmeGxyZWMsIE1pblNpemVPZlhhY3RJbnZhbHMpOwogCQlQcm9j ZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGkoZ3JvdXAsIENhdENhY2hlTXNncywKLQkJCQkJCQkJCVhM b2dSZWdpc3RlckRhdGEobXNncywKKwkJCQkJCQkJCVhMb2dSZWdpc3RlckRhdGEoX21zZ3MsCiAJ CQkJCQkJCQkJCQkJIG4gKiBzaXplb2YoU2hhcmVkSW52YWxpZGF0aW9uTWVzc2FnZSkpKTsKIAkJ UHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKGdyb3VwLCBSZWxDYWNoZU1zZ3MsCi0JCQkJCQkJ CQlYTG9nUmVnaXN0ZXJEYXRhKG1zZ3MsCisJCQkJCQkJCQlYTG9nUmVnaXN0ZXJEYXRhKF9tc2dz LAogCQkJCQkJCQkJCQkJCSBuICogc2l6ZW9mKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UpKSk7 CiAJCVhMb2dJbnNlcnQoUk1fWEFDVF9JRCwgWExPR19YQUNUX0lOVkFMSURBVElPTlMpOwogCX0K LS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0005-cleanup-avoid-local-wal_level-and-wal_segment_siz.patch" Content-Disposition: attachment; filename="v5-0005-cleanup-avoid-local-wal_level-and-wal_segment_siz.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trgg4 RnJvbSBhYWUwMDhhN2U5MGQzN2Y3MDA1NmNhMWU4ODk3MmE1YWQ0NzY0NDI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDEzOjQ1OjA1ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAwNS8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgd2FsX2xldmVsIGFuZCB3YWxfc2VnbWVudF9zaXplCiBi ZWluZyBzaGFkb3dlZCBieSBnbG9iYWxzCgpUaGlzIGNvbW1pdCBmaXhlcyBjYXNlcyB3aGVyZSBs b2NhbCB2YXJpYWJsZXMgbmFtZWQgd2FsX2xldmVsIGFuZAp3YWxfc2VnbWVudF9zaXplIHdlcmUg c2hhZG93ZWQgYnkgZ2xvYmFsIGlkZW50aWZpZXJzIG9mIHRoZSBzYW1lIG5hbWVzLgpUaGUgbG9j YWwgdmFyaWFibGVzIGFyZSByZW5hbWVkIHNvIHRoZXkgYXJlIG5vIGxvbmdlciBzaGFkb3dlZCBi eSB0aGUKZ2xvYmFscy4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hnby5jb20+ClJldmlld2Vk LWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+CkRpc2N1c3Npb246IGh0dHBz Oi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01hajh0SExKMz1qZkMrcDVZWEhrSnlIckRUaVF3 Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNj L3hsb2dkZXNjLmMgIHwgMTIgKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS94bG9ncmVhZGVyLmMgfCAgNCArKy0tCiBzcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRy b2xkYXRhLmMgfCAgNCArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEw IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy94 bG9nZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL3hsb2dkZXNjLmMKaW5kZXgg Y2Q2YzJhMmY2NTAuLmJmNmExMjBhZjY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv cm1ncmRlc2MveGxvZ2Rlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGxv Z2Rlc2MuYwpAQCAtMzQsMTcgKzM0LDE3IEBAIGNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9lbnRy eSB3YWxfbGV2ZWxfb3B0aW9uc1tdID0gewogfTsKIAogLyoKLSAqIEZpbmQgYSBzdHJpbmcgcmVw cmVzZW50YXRpb24gZm9yIHdhbF9sZXZlbAorICogRmluZCBhIHN0cmluZyByZXByZXNlbnRhdGlv biBmb3Igd2FsIGxldmVsCiAgKi8KIHN0YXRpYyBjb25zdCBjaGFyICoKLWdldF93YWxfbGV2ZWxf c3RyaW5nKGludCB3YWxfbGV2ZWwpCitnZXRfd2FsX2xldmVsX3N0cmluZyhpbnQgbGV2ZWwpCiB7 CiAJY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5ICplbnRyeTsKIAljb25zdCBjaGFyICp3 YWxfbGV2ZWxfc3RyID0gIj8iOwogCiAJZm9yIChlbnRyeSA9IHdhbF9sZXZlbF9vcHRpb25zOyBl bnRyeS0+bmFtZTsgZW50cnkrKykKIAl7Ci0JCWlmIChlbnRyeS0+dmFsID09IHdhbF9sZXZlbCkK KwkJaWYgKGVudHJ5LT52YWwgPT0gbGV2ZWwpCiAJCXsKIAkJCXdhbF9sZXZlbF9zdHIgPSBlbnRy eS0+bmFtZTsKIAkJCWJyZWFrOwpAQCAtMTYyLDEwICsxNjIsMTAgQEAgeGxvZ19kZXNjKFN0cmlu Z0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAl9CiAJZWxzZSBpZiAoaW5mbyA9 PSBYTE9HX0NIRUNLUE9JTlRfUkVETykKIAl7Ci0JCWludAkJCXdhbF9sZXZlbDsKKwkJaW50CQkJ bGV2ZWw7CiAKLQkJbWVtY3B5KCZ3YWxfbGV2ZWwsIHJlYywgc2l6ZW9mKGludCkpOwotCQlhcHBl bmRTdHJpbmdJbmZvKGJ1ZiwgIndhbF9sZXZlbCAlcyIsIGdldF93YWxfbGV2ZWxfc3RyaW5nKHdh bF9sZXZlbCkpOworCQltZW1jcHkoJmxldmVsLCByZWMsIHNpemVvZihpbnQpKTsKKwkJYXBwZW5k U3RyaW5nSW5mbyhidWYsICJ3YWxfbGV2ZWwgJXMiLCBnZXRfd2FsX2xldmVsX3N0cmluZyhsZXZl bCkpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Z3JlYWRlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlYWRlci5jCmluZGV4 IDljYzc0ODhlODkyLi4wYWU0ZTA1ZjhmMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZ3JlYWRlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hs b2dyZWFkZXIuYwpAQCAtMTA0LDcgKzEwNCw3IEBAIFhMb2dSZWFkZXJTZXREZWNvZGVCdWZmZXIo WExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSkKICAqIFJl dHVybnMgTlVMTCBpZiB0aGUgeGxvZ3JlYWRlciBjb3VsZG4ndCBiZSBhbGxvY2F0ZWQuCiAgKi8K IFhMb2dSZWFkZXJTdGF0ZSAqCi1YTG9nUmVhZGVyQWxsb2NhdGUoaW50IHdhbF9zZWdtZW50X3Np emUsIGNvbnN0IGNoYXIgKndhbGRpciwKK1hMb2dSZWFkZXJBbGxvY2F0ZShpbnQgd2FsX3NlZ19z aXplLCBjb25zdCBjaGFyICp3YWxkaXIsCiAJCQkJICAgWExvZ1JlYWRlclJvdXRpbmUgKnJvdXRp bmUsIHZvaWQgKnByaXZhdGVfZGF0YSkKIHsKIAlYTG9nUmVhZGVyU3RhdGUgKnN0YXRlOwpAQCAt MTM0LDcgKzEzNCw3IEBAIFhMb2dSZWFkZXJBbGxvY2F0ZShpbnQgd2FsX3NlZ21lbnRfc2l6ZSwg Y29uc3QgY2hhciAqd2FsZGlyLAogCX0KIAogCS8qIEluaXRpYWxpemUgc2VnbWVudCBpbmZvLiAq LwotCVdBTE9wZW5TZWdtZW50SW5pdCgmc3RhdGUtPnNlZywgJnN0YXRlLT5zZWdjeHQsIHdhbF9z ZWdtZW50X3NpemUsCisJV0FMT3BlblNlZ21lbnRJbml0KCZzdGF0ZS0+c2VnLCAmc3RhdGUtPnNl Z2N4dCwgd2FsX3NlZ19zaXplLAogCQkJCQkgICB3YWxkaXIpOwogCiAJLyogc3lzdGVtX2lkZW50 aWZpZXIgaW5pdGlhbGl6ZWQgdG8gemVyb2VzIGFib3ZlICovCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMgYi9zcmMvYmluL3BnX2NvbnRyb2xkYXRh L3BnX2NvbnRyb2xkYXRhLmMKaW5kZXggMzBhZDQ2OTEyZTEuLjhjYjU2ZjEyMTQ2IDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMKKysrIGIvc3JjL2Jp bi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jCkBAIC03MCw5ICs3MCw5IEBAIGRiU3Rh dGUoREJTdGF0ZSBzdGF0ZSkKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKgotd2FsX2xldmVsX3N0 cihXYWxMZXZlbCB3YWxfbGV2ZWwpCit3YWxfbGV2ZWxfc3RyKFdhbExldmVsIGxldmVsKQogewot CXN3aXRjaCAod2FsX2xldmVsKQorCXN3aXRjaCAobGV2ZWwpCiAJewogCQljYXNlIFdBTF9MRVZF TF9NSU5JTUFMOgogCQkJcmV0dXJuICJtaW5pbWFsIjsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1 NCkKCg== --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0002-cleanup-rename-inner-variables-to-avoid-shadowing.patch" Content-Disposition: attachment; filename="v5-0002-cleanup-rename-inner-variables-to-avoid-shadowing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trgd1 RnJvbSAzMWI0ODgxMDExYzljMWQyYzI5ZjgwMDZjNjU3MDY4YTc3MzU1ZDU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDA5OjMyOjU4ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAwMi8x M10gY2xlYW51cDogcmVuYW1lIGlubmVyIHZhcmlhYmxlcyB0byBhdm9pZCBzaGFkb3dpbmcKIGJ5 IG91dGVyIGxvY2FscwoKVGhpcyBjb21taXQgZml4ZXMgc2V2ZXJhbCBjYXNlcyB3aGVyZSBhIHZh cmlhYmxlIGRlY2xhcmVkIGluIGFuIGlubmVyCnNjb3BlIHdhcyBzaGFkb3dlZCBieSBhbiBleGlz dGluZyBsb2NhbCB2YXJpYWJsZSBpbiB0aGUgb3V0ZXIgc2NvcGUuIFRoZQpjaGFuZ2VzIHJlbmFt ZSB0aGUgaW5uZXIgdmFyaWFibGVzIHNvIGVhY2ggaWRlbnRpZmllciBpcyBkaXN0aW5jdCB3aXRo aW4KaXRzIHJlc3BlY3RpdmUgYmxvY2suCgpBdXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29t PgpSZXZpZXdlZC1ieTogUGV0ZXIgU21pdGggPHNtaXRocGIyMjUwQGdtYWlsLmNvbT4KRGlzY3Vz c2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUVvV3gya1EyeDVnTWFqOHRITEozPWpmQytwNVlY SGtKeUhyRFRpUXcybm4yRkpUbVFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nl c3MvYnJpbi9icmluLmMgICAgICAgICAgICAgfCAgOCArKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv Z2lzdC9naXN0YnVpbGQuYyAgICAgICAgfCAxMyArKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5k cy9leHRlbnNpb24uYyAgICAgICAgICAgfCAgOCArKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9z Y2hlbWFjbWRzLmMgICAgICAgICAgfCAgNiArLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRz Y21kcy5jICAgICAgICAgICB8ICA2ICstLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgICAgICAgICAgIHwgMjggKysrKysrKy0tLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Ry aWdnZXIuYyAgICAgICAgICAgICB8IDE0ICsrKy0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3dh aXQuYyAgICAgICAgICAgICAgICB8IDEyICsrKy0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZUFnZy5jICAgICAgICAgICAgIHwgMTYgKysrKy0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVWYWx1ZXNzY2FuLmMgICAgICB8ICA2ICstLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v Y3JlYXRlcGxhbi5jICAgIHwgNDQgKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQv c3RhdGlzdGljcy9kZXBlbmRlbmNpZXMuYyAgICAgIHwgMjYgKysrKysrLS0tLS0tLQogc3JjL2Jh Y2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgICAgICAgIHwgIDYgKy0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbnBhdGhfZXhlYy5jICAgICAgfCAzMCArKysrKysrLS0tLS0tLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyB8ICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvdmFybGVuYS5jICAgICAgICAgICAgfCAyMCArKysrKy0tLS0tCiBzcmMv YmFja2VuZC91dGlscy9tbWdyL2ZyZWVwYWdlLmMgICAgICAgICAgfCAgNiArLS0KIHNyYy9iaW4v cGdiZW5jaC9wZ2JlbmNoLmMgICAgICAgICAgICAgICAgICB8ICA2ICstLQogc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKy0tLS0tCiBzcmMvYmluL3Bz cWwvcHJvbXB0LmMgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKystLS0KIHNyYy9mZV91dGls cy9wcmludC5jICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrLS0tCiBzcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1jb25uZWN0LmMgICAgICAgICAgfCAgOCArKy0tCiAyMiBmaWxlcyBjaGFuZ2Vk LCAxNTEgaW5zZXJ0aW9ucygrKSwgMTU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4u YwppbmRleCBjYjMzMzE5MjFjYi4uMGFlZTBjMDEzZmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9icmluL2JyaW4uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMK QEAgLTY5NCwxNSArNjk0LDE1IEBAIGJyaW5nZXRiaXRtYXAoSW5kZXhTY2FuRGVzYyBzY2FuLCBU SURCaXRtYXAgKnRibSkKIAkJICovCiAJCWlmIChjb25zaXN0ZW50Rm5ba2V5YXR0bm8gLSAxXS5m bl9vaWQgPT0gSW52YWxpZE9pZCkKIAkJewotCQkJRm1nckluZm8gICAqdG1wOworCQkJRm1ncklu Zm8gICAqdG1wZmk7CiAKIAkJCS8qIEZpcnN0IHRpbWUgd2Ugc2VlIHRoaXMgYXR0cmlidXRlLCBz byBubyBrZXkvbnVsbCBrZXlzLiAqLwogCQkJQXNzZXJ0KG5rZXlzW2tleWF0dG5vIC0gMV0gPT0g MCk7CiAJCQlBc3NlcnQobm51bGxrZXlzW2tleWF0dG5vIC0gMV0gPT0gMCk7CiAKLQkJCXRtcCA9 IGluZGV4X2dldHByb2NpbmZvKGlkeFJlbCwga2V5YXR0bm8sCi0JCQkJCQkJCQlCUklOX1BST0NO VU1fQ09OU0lTVEVOVCk7Ci0JCQlmbWdyX2luZm9fY29weSgmY29uc2lzdGVudEZuW2tleWF0dG5v IC0gMV0sIHRtcCwKKwkJCXRtcGZpID0gaW5kZXhfZ2V0cHJvY2luZm8oaWR4UmVsLCBrZXlhdHRu bywKKwkJCQkJCQkJCSAgQlJJTl9QUk9DTlVNX0NPTlNJU1RFTlQpOworCQkJZm1ncl9pbmZvX2Nv cHkoJmNvbnNpc3RlbnRGbltrZXlhdHRubyAtIDFdLCB0bXBmaSwKIAkJCQkJCSAgIEN1cnJlbnRN ZW1vcnlDb250ZXh0KTsKIAkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0YnVpbGQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jCmluZGV4 IGJlMGZkNWI3NTNkLi4xMzg1ZDA4YWU0ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2dpc3QvZ2lzdGJ1aWxkLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxk LmMKQEAgLTExMjksNyArMTEyOSw2IEBAIGdpc3RidWZmZXJpbmdpbnNlcnR0dXBsZXMoR0lTVEJ1 aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIEJ1ZmZlciBidWZmZXIsIGludCBsZXZlbCwKIAkJaW50CQkJ bmRvd25saW5rcywKIAkJCQkJaTsKIAkJQnVmZmVyCQlwYXJlbnRCdWZmZXI7Ci0JCUxpc3RDZWxs ICAgKmxjOwogCiAJCS8qIFBhcmVudCBtYXkgaGF2ZSBjaGFuZ2VkIHNpbmNlIHdlIG1lbW9yaXpl ZCB0aGlzIHBhdGguICovCiAJCXBhcmVudEJ1ZmZlciA9CkBAIC0xMTU2LDEwICsxMTU1LDggQEAg Z2lzdGJ1ZmZlcmluZ2luc2VydHR1cGxlcyhHSVNUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgQnVm ZmVyIGJ1ZmZlciwgaW50IGxldmVsLAogCQluZG93bmxpbmtzID0gbGlzdF9sZW5ndGgoc3BsaXRp bmZvKTsKIAkJZG93bmxpbmtzID0gKEluZGV4VHVwbGUgKikgcGFsbG9jKHNpemVvZihJbmRleFR1 cGxlKSAqIG5kb3dubGlua3MpOwogCQlpID0gMDsKLQkJZm9yZWFjaChsYywgc3BsaXRpbmZvKQor CQlmb3JlYWNoX3B0cihHSVNUUGFnZVNwbGl0SW5mbywgc2ksIHNwbGl0aW5mbykKIAkJewotCQkJ R0lTVFBhZ2VTcGxpdEluZm8gKnNwbGl0aW5mbyA9IGxmaXJzdChsYyk7Ci0KIAkJCS8qCiAJCQkg KiBSZW1lbWJlciB0aGUgcGFyZW50IG9mIGVhY2ggbmV3IGNoaWxkIHBhZ2UgaW4gb3VyIHBhcmVu dCBtYXAuCiAJCQkgKiBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgZG93bmxpbmtzIGZpdCBvbiB0aGUg cGFyZW50IHBhZ2UuIElmIHRoZQpAQCAtMTE2OSw3ICsxMTY2LDcgQEAgZ2lzdGJ1ZmZlcmluZ2lu c2VydHR1cGxlcyhHSVNUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgQnVmZmVyIGJ1ZmZlciwgaW50 IGxldmVsLAogCQkJICovCiAJCQlpZiAobGV2ZWwgPiAwKQogCQkJCWdpc3RNZW1vcml6ZVBhcmVu dChidWlsZHN0YXRlLAotCQkJCQkJCQkgICBCdWZmZXJHZXRCbG9ja051bWJlcihzcGxpdGluZm8t PmJ1ZiksCisJCQkJCQkJCSAgIEJ1ZmZlckdldEJsb2NrTnVtYmVyKHNpLT5idWYpLAogCQkJCQkJ CQkgICBCdWZmZXJHZXRCbG9ja051bWJlcihwYXJlbnRCdWZmZXIpKTsKIAogCQkJLyoKQEAgLTEx NzksMTQgKzExNzYsMTQgQEAgZ2lzdGJ1ZmZlcmluZ2luc2VydHR1cGxlcyhHSVNUQnVpbGRTdGF0 ZSAqYnVpbGRzdGF0ZSwgQnVmZmVyIGJ1ZmZlciwgaW50IGxldmVsLAogCQkJICogaGFybSkuCiAJ CQkgKi8KIAkJCWlmIChsZXZlbCA+IDEpCi0JCQkJZ2lzdE1lbW9yaXplQWxsRG93bmxpbmtzKGJ1 aWxkc3RhdGUsIHNwbGl0aW5mby0+YnVmKTsKKwkJCQlnaXN0TWVtb3JpemVBbGxEb3dubGlua3Mo YnVpbGRzdGF0ZSwgc2ktPmJ1Zik7CiAKIAkJCS8qCiAJCQkgKiBTaW5jZSB0aGVyZSdzIG5vIGNv bmN1cnJlbnQgYWNjZXNzLCB3ZSBjYW4gcmVsZWFzZSB0aGUgbG93ZXIKIAkJCSAqIGxldmVsIGJ1 ZmZlcnMgaW1tZWRpYXRlbHkuIFRoaXMgaW5jbHVkZXMgdGhlIG9yaWdpbmFsIHBhZ2UuCiAJCQkg Ki8KLQkJCVVubG9ja1JlbGVhc2VCdWZmZXIoc3BsaXRpbmZvLT5idWYpOwotCQkJZG93bmxpbmtz W2krK10gPSBzcGxpdGluZm8tPmRvd25saW5rOworCQkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihzaS0+ YnVmKTsKKwkJCWRvd25saW5rc1tpKytdID0gc2ktPmRvd25saW5rOwogCQl9CiAKIAkJLyogSW5z ZXJ0IHRoZW0gaW50byBwYXJlbnQuICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9leHRlbnNpb24uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jCmluZGV4IGVi YzIwNGM0NDYyLi4wZWY2NTdiZjkxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXh0ZW5zaW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMKQEAgLTEy NzQsOCArMTI3NCw4IEBAIGV4ZWN1dGVfZXh0ZW5zaW9uX3NjcmlwdChPaWQgZXh0ZW5zaW9uT2lk LCBFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCwKIAkJCURhdHVtCQlvbGQgPSB0X3NxbDsK IAkJCWNoYXIJICAgKnJlcWV4dG5hbWUgPSAoY2hhciAqKSBsZmlyc3QobGMpOwogCQkJT2lkCQkJ cmVxc2NoZW1hID0gbGZpcnN0X29pZChsYzIpOwotCQkJY2hhcgkgICAqc2NoZW1hTmFtZSA9IGdl dF9uYW1lc3BhY2VfbmFtZShyZXFzY2hlbWEpOwotCQkJY29uc3QgY2hhciAqcVNjaGVtYU5hbWUg PSBxdW90ZV9pZGVudGlmaWVyKHNjaGVtYU5hbWUpOworCQkJY2hhcgkgICAqcmVxU2NoZW1hTmFt ZSA9IGdldF9uYW1lc3BhY2VfbmFtZShyZXFzY2hlbWEpOworCQkJY29uc3QgY2hhciAqcVJlcVNj aGVtYU5hbWUgPSBxdW90ZV9pZGVudGlmaWVyKHJlcVNjaGVtYU5hbWUpOwogCQkJY2hhcgkgICAq cmVwbHRva2VuOwogCiAJCQlyZXBsdG9rZW4gPSBwc3ByaW50ZigiQGV4dHNjaGVtYTolc0AiLCBy ZXFleHRuYW1lKTsKQEAgLTEyODMsOCArMTI4Myw4IEBAIGV4ZWN1dGVfZXh0ZW5zaW9uX3Njcmlw dChPaWQgZXh0ZW5zaW9uT2lkLCBFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCwKIAkJCQkJ CQkJCQkJQ19DT0xMQVRJT05fT0lELAogCQkJCQkJCQkJCQl0X3NxbCwKIAkJCQkJCQkJCQkJQ1N0 cmluZ0dldFRleHREYXR1bShyZXBsdG9rZW4pLAotCQkJCQkJCQkJCQlDU3RyaW5nR2V0VGV4dERh dHVtKHFTY2hlbWFOYW1lKSk7Ci0JCQlpZiAodF9zcWwgIT0gb2xkICYmIHN0cnBicmsoc2NoZW1h TmFtZSwgcXVvdGluZ19yZWxldmFudF9jaGFycykpCisJCQkJCQkJCQkJCUNTdHJpbmdHZXRUZXh0 RGF0dW0ocVJlcVNjaGVtYU5hbWUpKTsKKwkJCWlmICh0X3NxbCAhPSBvbGQgJiYgc3RycGJyayhy ZXFTY2hlbWFOYW1lLCBxdW90aW5nX3JlbGV2YW50X2NoYXJzKSkKIAkJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAog CQkJCQkJIGVycm1zZygiaW52YWxpZCBjaGFyYWN0ZXIgaW4gZXh0ZW5zaW9uIFwiJXNcIiBzY2hl bWE6IG11c3Qgbm90IGNvbnRhaW4gYW55IG9mIFwiJXNcIiIsCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zY2hlbWFjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zY2hlbWFj bWRzLmMKaW5kZXggM2NjMTQ3MjEwM2EuLjMxM2IxZWFmMDE4IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zY2hlbWFjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2No ZW1hY21kcy5jCkBAIC01NSw3ICs1NSw2IEBAIENyZWF0ZVNjaGVtYUNvbW1hbmQoQ3JlYXRlU2No ZW1hU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJY29uc3QgY2hhciAqc2No ZW1hTmFtZSA9IHN0bXQtPnNjaGVtYW5hbWU7CiAJT2lkCQkJbmFtZXNwYWNlSWQ7CiAJTGlzdAkg ICAqcGFyc2V0cmVlX2xpc3Q7Ci0JTGlzdENlbGwgICAqcGFyc2V0cmVlX2l0ZW07CiAJT2lkCQkJ b3duZXJfdWlkOwogCU9pZAkJCXNhdmVkX3VpZDsKIAlpbnQJCQlzYXZlX3NlY19jb250ZXh0OwpA QCAtMjAzLDE2ICsyMDIsMTUgQEAgQ3JlYXRlU2NoZW1hQ29tbWFuZChDcmVhdGVTY2hlbWFTdG10 ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkgKiB0aGVtIHRocm91Z2ggcGFyc2Vf YW5hbHl6ZV8qKCkgb3IgdGhlIHJld3JpdGVyOyB3ZSBjYW4ganVzdCBoYW5kIHRoZW0KIAkgKiBz dHJhaWdodCB0byBQcm9jZXNzVXRpbGl0eS4KIAkgKi8KLQlmb3JlYWNoKHBhcnNldHJlZV9pdGVt LCBwYXJzZXRyZWVfbGlzdCkKKwlmb3JlYWNoX3B0cihOb2RlLCBzdWJzdG10LCBwYXJzZXRyZWVf bGlzdCkKIAl7Ci0JCU5vZGUJICAgKnN0bXQgPSAoTm9kZSAqKSBsZmlyc3QocGFyc2V0cmVlX2l0 ZW0pOwogCQlQbGFubmVkU3RtdCAqd3JhcHBlcjsKIAogCQkvKiBuZWVkIHRvIG1ha2UgYSB3cmFw cGVyIFBsYW5uZWRTdG10ICovCiAJCXdyYXBwZXIgPSBtYWtlTm9kZShQbGFubmVkU3RtdCk7CiAJ CXdyYXBwZXItPmNvbW1hbmRUeXBlID0gQ01EX1VUSUxJVFk7CiAJCXdyYXBwZXItPmNhblNldFRh ZyA9IGZhbHNlOwotCQl3cmFwcGVyLT51dGlsaXR5U3RtdCA9IHN0bXQ7CisJCXdyYXBwZXItPnV0 aWxpdHlTdG10ID0gc3Vic3RtdDsKIAkJd3JhcHBlci0+c3RtdF9sb2NhdGlvbiA9IHN0bXRfbG9j YXRpb247CiAJCXdyYXBwZXItPnN0bXRfbGVuID0gc3RtdF9sZW47CiAJCXdyYXBwZXItPnBsYW5P cmlnaW4gPSBQTEFOX1NUTVRfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9zdGF0c2NtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCmluZGV4 IDc3YjFhNmUyZGM1Li5mMWZkMGY2N2FhMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3RhdHNjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMKQEAg LTMxOSwxNSArMzE5LDE1IEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10 LCBib29sIGNoZWNrX3JpZ2h0cykKIAkJCU5vZGUJICAgKmV4cHIgPSBzZWxlbS0+ZXhwcjsKIAkJ CU9pZAkJCWF0dHR5cGU7CiAJCQlUeXBlQ2FjaGVFbnRyeSAqdHlwZTsKLQkJCUJpdG1hcHNldCAg KmF0dG51bXMgPSBOVUxMOworCQkJQml0bWFwc2V0ICAqYXR0bnVtc19ibXMgPSBOVUxMOwogCQkJ aW50CQkJazsKIAogCQkJQXNzZXJ0KGV4cHIgIT0gTlVMTCk7CiAKLQkJCXB1bGxfdmFyYXR0bm9z KGV4cHIsIDEsICZhdHRudW1zKTsKKwkJCXB1bGxfdmFyYXR0bm9zKGV4cHIsIDEsICZhdHRudW1z X2Jtcyk7CiAKIAkJCWsgPSAtMTsKLQkJCXdoaWxlICgoayA9IGJtc19uZXh0X21lbWJlcihhdHRu dW1zLCBrKSkgPj0gMCkKKwkJCXdoaWxlICgoayA9IGJtc19uZXh0X21lbWJlcihhdHRudW1zX2Jt cywgaykpID49IDApCiAJCQl7CiAJCQkJQXR0ck51bWJlcglhdHRudW0gPSBrICsgRmlyc3RMb3dJ bnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlcjsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRl eCAwN2U1Yjk1NzgyZS4uNTE3MzAzOGNkZjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBA IC0xNTcwOCwxNCArMTU3MDgsMTQgQEAgQVRQb3N0QWx0ZXJUeXBlUGFyc2UoT2lkIG9sZElkLCBP aWQgb2xkUmVsSWQsIE9pZCByZWZSZWxJZCwgY2hhciAqY21kLAogCiAJCQlmb3JlYWNoKGxjbWQs IHN0bXQtPmNtZHMpCiAJCQl7Ci0JCQkJQWx0ZXJUYWJsZUNtZCAqY21kID0gbGZpcnN0X25vZGUo QWx0ZXJUYWJsZUNtZCwgbGNtZCk7CisJCQkJQWx0ZXJUYWJsZUNtZCAqc3ViY21kID0gbGZpcnN0 X25vZGUoQWx0ZXJUYWJsZUNtZCwgbGNtZCk7CiAKLQkJCQlpZiAoY21kLT5zdWJ0eXBlID09IEFU X0FkZEluZGV4KQorCQkJCWlmIChzdWJjbWQtPnN1YnR5cGUgPT0gQVRfQWRkSW5kZXgpCiAJCQkJ ewogCQkJCQlJbmRleFN0bXQgICppbmRzdG10OwogCQkJCQlPaWQJCQlpbmRvaWQ7CiAKLQkJCQkJ aW5kc3RtdCA9IGNhc3ROb2RlKEluZGV4U3RtdCwgY21kLT5kZWYpOworCQkJCQlpbmRzdG10ID0g Y2FzdE5vZGUoSW5kZXhTdG10LCBzdWJjbWQtPmRlZik7CiAJCQkJCWluZG9pZCA9IGdldF9jb25z dHJhaW50X2luZGV4KG9sZElkKTsKIAogCQkJCQlpZiAoIXJld3JpdGUpCkBAIC0xNTcyNSw5ICsx NTcyNSw5IEBAIEFUUG9zdEFsdGVyVHlwZVBhcnNlKE9pZCBvbGRJZCwgT2lkIG9sZFJlbElkLCBP aWQgcmVmUmVsSWQsIGNoYXIgKmNtZCwKIAkJCQkJCQkJCQkJCQkgUmVsYXRpb25SZWxhdGlvbklk LCAwKTsKIAkJCQkJaW5kc3RtdC0+cmVzZXRfZGVmYXVsdF90YmxzcGMgPSB0cnVlOwogCi0JCQkJ CWNtZC0+c3VidHlwZSA9IEFUX1JlQWRkSW5kZXg7CisJCQkJCXN1YmNtZC0+c3VidHlwZSA9IEFU X1JlQWRkSW5kZXg7CiAJCQkJCXRhYi0+c3ViY21kc1tBVF9QQVNTX09MRF9JTkRFWF0gPQotCQkJ CQkJbGFwcGVuZCh0YWItPnN1YmNtZHNbQVRfUEFTU19PTERfSU5ERVhdLCBjbWQpOworCQkJCQkJ bGFwcGVuZCh0YWItPnN1YmNtZHNbQVRfUEFTU19PTERfSU5ERVhdLCBzdWJjbWQpOwogCiAJCQkJ CS8qIHJlY3JlYXRlIGFueSBjb21tZW50IG9uIHRoZSBjb25zdHJhaW50ICovCiAJCQkJCVJlYnVp bGRDb25zdHJhaW50Q29tbWVudCh0YWIsCkBAIC0xNTczNyw5ICsxNTczNyw5IEBAIEFUUG9zdEFs dGVyVHlwZVBhcnNlKE9pZCBvbGRJZCwgT2lkIG9sZFJlbElkLCBPaWQgcmVmUmVsSWQsIGNoYXIg KmNtZCwKIAkJCQkJCQkJCQkJIE5JTCwKIAkJCQkJCQkJCQkJIGluZHN0bXQtPmlkeG5hbWUpOwog CQkJCX0KLQkJCQllbHNlIGlmIChjbWQtPnN1YnR5cGUgPT0gQVRfQWRkQ29uc3RyYWludCkKKwkJ CQllbHNlIGlmIChzdWJjbWQtPnN1YnR5cGUgPT0gQVRfQWRkQ29uc3RyYWludCkKIAkJCQl7Ci0J CQkJCUNvbnN0cmFpbnQgKmNvbiA9IGNhc3ROb2RlKENvbnN0cmFpbnQsIGNtZC0+ZGVmKTsKKwkJ CQkJQ29uc3RyYWludCAqY29uID0gY2FzdE5vZGUoQ29uc3RyYWludCwgc3ViY21kLT5kZWYpOwog CiAJCQkJCWNvbi0+b2xkX3BrdGFibGVfb2lkID0gcmVmUmVsSWQ7CiAJCQkJCS8qIHJld3JpdGlu ZyBuZWl0aGVyIHNpZGUgb2YgYSBGSyAqLwpAQCAtMTU3NDcsOSArMTU3NDcsOSBAQCBBVFBvc3RB bHRlclR5cGVQYXJzZShPaWQgb2xkSWQsIE9pZCBvbGRSZWxJZCwgT2lkIHJlZlJlbElkLCBjaGFy ICpjbWQsCiAJCQkJCQkhcmV3cml0ZSAmJiB0YWItPnJld3JpdGUgPT0gMCkKIAkJCQkJCVRyeVJl dXNlRm9yZWlnbktleShvbGRJZCwgY29uKTsKIAkJCQkJY29uLT5yZXNldF9kZWZhdWx0X3RibHNw YyA9IHRydWU7Ci0JCQkJCWNtZC0+c3VidHlwZSA9IEFUX1JlQWRkQ29uc3RyYWludDsKKwkJCQkJ c3ViY21kLT5zdWJ0eXBlID0gQVRfUmVBZGRDb25zdHJhaW50OwogCQkJCQl0YWItPnN1YmNtZHNb QVRfUEFTU19PTERfQ09OU1RSXSA9Ci0JCQkJCQlsYXBwZW5kKHRhYi0+c3ViY21kc1tBVF9QQVNT X09MRF9DT05TVFJdLCBjbWQpOworCQkJCQkJbGFwcGVuZCh0YWItPnN1YmNtZHNbQVRfUEFTU19P TERfQ09OU1RSXSwgc3ViY21kKTsKIAogCQkJCQkvKgogCQkJCQkgKiBSZWNyZWF0ZSBhbnkgY29t bWVudCBvbiB0aGUgY29uc3RyYWludC4gIElmIHdlIGhhdmUKQEAgLTE1NzY5LDcgKzE1NzY5LDcg QEAgQVRQb3N0QWx0ZXJUeXBlUGFyc2UoT2lkIG9sZElkLCBPaWQgb2xkUmVsSWQsIE9pZCByZWZS ZWxJZCwgY2hhciAqY21kLAogCQkJCX0KIAkJCQllbHNlCiAJCQkJCWVsb2coRVJST1IsICJ1bmV4 cGVjdGVkIHN0YXRlbWVudCBzdWJ0eXBlOiAlZCIsCi0JCQkJCQkgKGludCkgY21kLT5zdWJ0eXBl KTsKKwkJCQkJCSAoaW50KSBzdWJjbWQtPnN1YnR5cGUpOwogCQkJfQogCQl9CiAJCWVsc2UgaWYg KElzQShzdG0sIEFsdGVyRG9tYWluU3RtdCkpCkBAIC0xNTc3OSwxMiArMTU3NzksMTIgQEAgQVRQ b3N0QWx0ZXJUeXBlUGFyc2UoT2lkIG9sZElkLCBPaWQgb2xkUmVsSWQsIE9pZCByZWZSZWxJZCwg Y2hhciAqY21kLAogCQkJaWYgKHN0bXQtPnN1YnR5cGUgPT0gQURfQWRkQ29uc3RyYWludCkKIAkJ CXsKIAkJCQlDb25zdHJhaW50ICpjb24gPSBjYXN0Tm9kZShDb25zdHJhaW50LCBzdG10LT5kZWYp OwotCQkJCUFsdGVyVGFibGVDbWQgKmNtZCA9IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOworCQkJ CUFsdGVyVGFibGVDbWQgKnN1YmNtZCA9IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOwogCi0JCQkJ Y21kLT5zdWJ0eXBlID0gQVRfUmVBZGREb21haW5Db25zdHJhaW50OwotCQkJCWNtZC0+ZGVmID0g KE5vZGUgKikgc3RtdDsKKwkJCQlzdWJjbWQtPnN1YnR5cGUgPSBBVF9SZUFkZERvbWFpbkNvbnN0 cmFpbnQ7CisJCQkJc3ViY21kLT5kZWYgPSAoTm9kZSAqKSBzdG10OwogCQkJCXRhYi0+c3ViY21k c1tBVF9QQVNTX09MRF9DT05TVFJdID0KLQkJCQkJbGFwcGVuZCh0YWItPnN1YmNtZHNbQVRfUEFT U19PTERfQ09OU1RSXSwgY21kKTsKKwkJCQkJbGFwcGVuZCh0YWItPnN1YmNtZHNbQVRfUEFTU19P TERfQ09OU1RSXSwgc3ViY21kKTsKIAogCQkJCS8qIHJlY3JlYXRlIGFueSBjb21tZW50IG9uIHRo ZSBjb25zdHJhaW50ICovCiAJCQkJUmVidWlsZENvbnN0cmFpbnRDb21tZW50KHRhYiwKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RyaWdnZXIuYwppbmRleCA1NzlhYzhkNzZhZS4uNDVkNDFhZGY1NzAgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90cmlnZ2VyLmMKQEAgLTExNjUsNyArMTE2NSw3IEBAIENyZWF0ZVRyaWdnZXJGaXJpbmdPbihD cmVhdGVUcmlnU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCXsKIAkJCUNy ZWF0ZVRyaWdTdG10ICpjaGlsZFN0bXQ7CiAJCQlSZWxhdGlvbgljaGlsZFRibDsKLQkJCU5vZGUJ ICAgKnF1YWw7CisJCQlOb2RlCSAgICpwYXJ0cXVhbDsKIAogCQkJY2hpbGRUYmwgPSB0YWJsZV9v cGVuKHBhcnRkZXNjLT5vaWRzW2ldLCBTaGFyZVJvd0V4Y2x1c2l2ZUxvY2spOwogCkBAIC0xMTc4 LDE4ICsxMTc4LDE4IEBAIENyZWF0ZVRyaWdnZXJGaXJpbmdPbihDcmVhdGVUcmlnU3RtdCAqc3Rt dCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCQljaGlsZFN0bXQtPndoZW5DbGF1c2UgPSBO VUxMOwogCiAJCQkvKiBJZiB0aGVyZSBpcyBhIFdIRU4gY2xhdXNlLCBjcmVhdGUgYSBtb2RpZmll ZCBjb3B5IG9mIGl0ICovCi0JCQlxdWFsID0gY29weU9iamVjdCh3aGVuQ2xhdXNlKTsKLQkJCXF1 YWwgPSAoTm9kZSAqKQotCQkJCW1hcF9wYXJ0aXRpb25fdmFyYXR0bm9zKChMaXN0ICopIHF1YWws IFBSUzJfT0xEX1ZBUk5PLAorCQkJcGFydHF1YWwgPSBjb3B5T2JqZWN0KHdoZW5DbGF1c2UpOwor CQkJcGFydHF1YWwgPSAoTm9kZSAqKQorCQkJCW1hcF9wYXJ0aXRpb25fdmFyYXR0bm9zKChMaXN0 ICopIHBhcnRxdWFsLCBQUlMyX09MRF9WQVJOTywKIAkJCQkJCQkJCQljaGlsZFRibCwgcmVsKTsK LQkJCXF1YWwgPSAoTm9kZSAqKQotCQkJCW1hcF9wYXJ0aXRpb25fdmFyYXR0bm9zKChMaXN0ICop IHF1YWwsIFBSUzJfTkVXX1ZBUk5PLAorCQkJcGFydHF1YWwgPSAoTm9kZSAqKQorCQkJCW1hcF9w YXJ0aXRpb25fdmFyYXR0bm9zKChMaXN0ICopIHBhcnRxdWFsLCBQUlMyX05FV19WQVJOTywKIAkJ CQkJCQkJCQljaGlsZFRibCwgcmVsKTsKIAogCQkJQ3JlYXRlVHJpZ2dlckZpcmluZ09uKGNoaWxk U3RtdCwgcXVlcnlTdHJpbmcsCiAJCQkJCQkJCSAgcGFydGRlc2MtPm9pZHNbaV0sIHJlZlJlbE9p ZCwKIAkJCQkJCQkJICBJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLAotCQkJCQkJCQkgIGZ1bmNvaWQs IHRyaWdvaWQsIHF1YWwsCisJCQkJCQkJCSAgZnVuY29pZCwgdHJpZ29pZCwgcGFydHF1YWwsCiAJ CQkJCQkJCSAgaXNJbnRlcm5hbCwgdHJ1ZSwgdHJpZ2dlcl9maXJlc193aGVuKTsKIAogCQkJdGFi bGVfY2xvc2UoY2hpbGRUYmwsIE5vTG9jayk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy93YWl0LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy93YWl0LmMKaW5kZXggYTM3YmRkYWVm YjIuLmU5M2Q5ZTE5ZGU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy93YWl0LmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvd2FpdC5jCkBAIC01MSw3ICs1MSw3IEBAIEV4ZWNX YWl0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFdhaXRTdG10ICpzdG10LCBEZXN0UmVjZWl2ZXIg KmRlc3QpCiAJCXsKIAkJCWNoYXIJICAgKnRpbWVvdXRfc3RyOwogCQkJY29uc3QgY2hhciAqaGlu dG1zZzsKLQkJCWRvdWJsZQkJcmVzdWx0OworCQkJZG91YmxlCQl0aW1lb3V0X3ZhbDsKIAogCQkJ aWYgKHRpbWVvdXRfc3BlY2lmaWVkKQogCQkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVs LCBwc3RhdGUpOwpAQCAtNTksNyArNTksNyBAQCBFeGVjV2FpdFN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBXYWl0U3RtdCAqc3RtdCwgRGVzdFJlY2VpdmVyICpkZXN0KQogCiAJCQl0aW1lb3V0X3N0 ciA9IGRlZkdldFN0cmluZyhkZWZlbCk7CiAKLQkJCWlmICghcGFyc2VfcmVhbCh0aW1lb3V0X3N0 ciwgJnJlc3VsdCwgR1VDX1VOSVRfTVMsICZoaW50bXNnKSkKKwkJCWlmICghcGFyc2VfcmVhbCh0 aW1lb3V0X3N0ciwgJnRpbWVvdXRfdmFsLCBHVUNfVU5JVF9NUywgJmhpbnRtc2cpKQogCQkJewog CQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLApAQCAtNzIsMjAgKzcyLDIwIEBAIEV4ZWNXYWl0U3RtdChQYXJzZVN0YXRlICpw c3RhdGUsIFdhaXRTdG10ICpzdG10LCBEZXN0UmVjZWl2ZXIgKmRlc3QpCiAJCQkgKiBkb24ndCBm YWlsIG9uIGp1c3Qtb3V0LW9mLXJhbmdlIHZhbHVlcyB0aGF0IHdvdWxkIHJvdW5kIGludG8KIAkJ CSAqIHJhbmdlLgogCQkJICovCi0JCQlyZXN1bHQgPSByaW50KHJlc3VsdCk7CisJCQl0aW1lb3V0 X3ZhbCA9IHJpbnQodGltZW91dF92YWwpOwogCiAJCQkvKiBSYW5nZSBjaGVjayAqLwotCQkJaWYg KHVubGlrZWx5KGlzbmFuKHJlc3VsdCkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0KHJlc3VsdCkp KQorCQkJaWYgKHVubGlrZWx5KGlzbmFuKHRpbWVvdXRfdmFsKSB8fCAhRkxPQVQ4X0ZJVFNfSU5f SU5UNjQodGltZW91dF92YWwpKSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJZXJyY29kZShF UlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkJCWVycm1zZygidGltZW91 dCB2YWx1ZSBpcyBvdXQgb2YgcmFuZ2UiKSk7CiAKLQkJCWlmIChyZXN1bHQgPCAwKQorCQkJaWYg KHRpbWVvdXRfdmFsIDwgMCkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJZXJyY29kZShFUlJD T0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkJCWVycm1zZygidGltZW91dCBjYW5u b3QgYmUgbmVnYXRpdmUiKSk7CiAKLQkJCXRpbWVvdXQgPSAoaW50NjQpIHJlc3VsdDsKKwkJCXRp bWVvdXQgPSAoaW50NjQpIHRpbWVvdXRfdmFsOwogCQl9CiAJCWVsc2UgaWYgKHN0cmNtcChkZWZl bC0+ZGVmbmFtZSwgIm5vX3Rocm93IikgPT0gMCkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUFnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCmlu ZGV4IDBiMDJmZDMyMTA3Li5lNGM1MzllMzkxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZUFnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYwpAQCAt NDA3MCwxMiArNDA3MCwxMiBAQCBFeGVjSW5pdEFnZyhBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRl LCBpbnQgZWZsYWdzKQogCSAqLwogCWZvciAocGhhc2VpZHggPSAwOyBwaGFzZWlkeCA8IGFnZ3N0 YXRlLT5udW1waGFzZXM7IHBoYXNlaWR4KyspCiAJewotCQlBZ2dTdGF0ZVBlclBoYXNlIHBoYXNl ID0gJmFnZ3N0YXRlLT5waGFzZXNbcGhhc2VpZHhdOworCQlBZ2dTdGF0ZVBlclBoYXNlIGN1cnBo YXNlID0gJmFnZ3N0YXRlLT5waGFzZXNbcGhhc2VpZHhdOwogCQlib29sCQlkb2hhc2ggPSBmYWxz ZTsKIAkJYm9vbAkJZG9zb3J0ID0gZmFsc2U7CiAKIAkJLyogcGhhc2UgMCBkb2Vzbid0IG5lY2Vz c2FyaWx5IGV4aXN0ICovCi0JCWlmICghcGhhc2UtPmFnZ25vZGUpCisJCWlmICghY3VycGhhc2Ut PmFnZ25vZGUpCiAJCQljb250aW51ZTsKIAogCQlpZiAoYWdnc3RhdGUtPmFnZ3N0cmF0ZWd5ID09 IEFHR19NSVhFRCAmJiBwaGFzZWlkeCA9PSAxKQpAQCAtNDA5NiwxMyArNDA5NiwxMyBAQCBFeGVj SW5pdEFnZyhBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCQkJICovCiAJ CQljb250aW51ZTsKIAkJfQotCQllbHNlIGlmIChwaGFzZS0+YWdnc3RyYXRlZ3kgPT0gQUdHX1BM QUlOIHx8Ci0JCQkJIHBoYXNlLT5hZ2dzdHJhdGVneSA9PSBBR0dfU09SVEVEKQorCQllbHNlIGlm IChjdXJwaGFzZS0+YWdnc3RyYXRlZ3kgPT0gQUdHX1BMQUlOIHx8CisJCQkJIGN1cnBoYXNlLT5h Z2dzdHJhdGVneSA9PSBBR0dfU09SVEVEKQogCQl7CiAJCQlkb2hhc2ggPSBmYWxzZTsKIAkJCWRv c29ydCA9IHRydWU7CiAJCX0KLQkJZWxzZSBpZiAocGhhc2UtPmFnZ3N0cmF0ZWd5ID09IEFHR19I QVNIRUQpCisJCWVsc2UgaWYgKGN1cnBoYXNlLT5hZ2dzdHJhdGVneSA9PSBBR0dfSEFTSEVEKQog CQl7CiAJCQlkb2hhc2ggPSB0cnVlOwogCQkJZG9zb3J0ID0gZmFsc2U7CkBAIC00MTEwLDExICs0 MTEwLDExIEBAIEV4ZWNJbml0QWdnKEFnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxh Z3MpCiAJCWVsc2UKIAkJCUFzc2VydChmYWxzZSk7CiAKLQkJcGhhc2UtPmV2YWx0cmFucyA9IEV4 ZWNCdWlsZEFnZ1RyYW5zKGFnZ3N0YXRlLCBwaGFzZSwgZG9zb3J0LCBkb2hhc2gsCi0JCQkJCQkJ CQkJCSBmYWxzZSk7CisJCWN1cnBoYXNlLT5ldmFsdHJhbnMgPSBFeGVjQnVpbGRBZ2dUcmFucyhh Z2dzdGF0ZSwgY3VycGhhc2UsIGRvc29ydCwgZG9oYXNoLAorCQkJCQkJCQkJCQkJZmFsc2UpOwog CiAJCS8qIGNhY2hlIGNvbXBpbGVkIGV4cHJlc3Npb24gZm9yIG91dGVyIHNsb3Qgd2l0aG91dCBO VUxMIGNoZWNrICovCi0JCXBoYXNlLT5ldmFsdHJhbnNfY2FjaGVbMF1bMF0gPSBwaGFzZS0+ZXZh bHRyYW5zOworCQljdXJwaGFzZS0+ZXZhbHRyYW5zX2NhY2hlWzBdWzBdID0gY3VycGhhc2UtPmV2 YWx0cmFuczsKIAl9CiAKIAlyZXR1cm4gYWdnc3RhdGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlVmFsdWVzc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVZh bHVlc3NjYW4uYwppbmRleCA4ZTg1YTVmMmU5YS4uMDI1Yjg0YzgzMzEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVWYWx1ZXNzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZVZhbHVlc3NjYW4uYwpAQCAtOTAsNyArOTAsNiBAQCBWYWx1ZXNOZXh0KFZhbHVl c1NjYW5TdGF0ZSAqbm9kZSkKIAkJTWVtb3J5Q29udGV4dCBvbGRDb250ZXh0OwogCQlEYXR1bQkg ICAqdmFsdWVzOwogCQlib29sCSAgICppc251bGw7Ci0JCUxpc3RDZWxsICAgKmxjOwogCQlpbnQJ CQlyZXNpbmQ7CiAKIAkJLyoKQEAgLTEzOSwxMyArMTM4LDEyIEBAIFZhbHVlc05leHQoVmFsdWVz U2NhblN0YXRlICpub2RlKQogCQlpc251bGwgPSBzbG90LT50dHNfaXNudWxsOwogCiAJCXJlc2lu ZCA9IDA7Ci0JCWZvcmVhY2gobGMsIGV4cHJzdGF0ZWxpc3QpCisJCWZvcmVhY2hfcHRyKEV4cHJT dGF0ZSwgZXhwcnN0YXRlLCBleHByc3RhdGVsaXN0KQogCQl7Ci0JCQlFeHByU3RhdGUgICplc3Rh dGUgPSAoRXhwclN0YXRlICopIGxmaXJzdChsYyk7CiAJCQlDb21wYWN0QXR0cmlidXRlICphdHRy ID0gVHVwbGVEZXNjQ29tcGFjdEF0dHIoc2xvdC0+dHRzX3R1cGxlRGVzY3JpcHRvciwKIAkJCQkJ CQkJCQkJCQkJICByZXNpbmQpOwogCi0JCQl2YWx1ZXNbcmVzaW5kXSA9IEV4ZWNFdmFsRXhwcihl c3RhdGUsCisJCQl2YWx1ZXNbcmVzaW5kXSA9IEV4ZWNFdmFsRXhwcihleHByc3RhdGUsCiAJCQkJ CQkJCQkJICBlY29udGV4dCwKIAkJCQkJCQkJCQkgICZpc251bGxbcmVzaW5kXSk7CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwppbmRleCA4YWYwOTFiYTY0Ny4uOTJlNDZh MzE4OTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4u YworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTEyMzYs MTYgKzEyMzYsMTYgQEAgY3JlYXRlX2FwcGVuZF9wbGFuKFBsYW5uZXJJbmZvICpyb290LCBBcHBl bmRQYXRoICpiZXN0X3BhdGgsIGludCBmbGFncykKIAlpZiAoYmVzdF9wYXRoLT5zdWJwYXRocyA9 PSBOSUwpCiAJewogCQkvKiBHZW5lcmF0ZSBhIFJlc3VsdCBwbGFuIHdpdGggY29uc3RhbnQtRkFM U0UgZ2F0aW5nIHF1YWwgKi8KLQkJUGxhbgkgICAqcGxhbjsKKwkJUGxhbgkgICAqcmVzcGxhbjsK IAotCQlwbGFuID0gKFBsYW4gKikgbWFrZV9vbmVfcm93X3Jlc3VsdCh0bGlzdCwKLQkJCQkJCQkJ CQkJKE5vZGUgKikgbGlzdF9tYWtlMShtYWtlQm9vbENvbnN0KGZhbHNlLAotCQkJCQkJCQkJCQkJ CQkJCQkJCSAgZmFsc2UpKSwKLQkJCQkJCQkJCQkJYmVzdF9wYXRoLT5wYXRoLnBhcmVudCk7CisJ CXJlc3BsYW4gPSAoUGxhbiAqKSBtYWtlX29uZV9yb3dfcmVzdWx0KHRsaXN0LAorCQkJCQkJCQkJ CQkgICAoTm9kZSAqKSBsaXN0X21ha2UxKG1ha2VCb29sQ29uc3QoZmFsc2UsCisJCQkJCQkJCQkJ CQkJCQkJCQkJCSBmYWxzZSkpLAorCQkJCQkJCQkJCQkgICBiZXN0X3BhdGgtPnBhdGgucGFyZW50 KTsKIAotCQljb3B5X2dlbmVyaWNfcGF0aF9pbmZvKHBsYW4sIChQYXRoICopIGJlc3RfcGF0aCk7 CisJCWNvcHlfZ2VuZXJpY19wYXRoX2luZm8ocmVzcGxhbiwgKFBhdGggKikgYmVzdF9wYXRoKTsK IAotCQlyZXR1cm4gcGxhbjsKKwkJcmV0dXJuIHJlc3BsYW47CiAJfQogCiAJLyoKQEAgLTI0MDYs NyArMjQwNiw3IEBAIGNyZWF0ZV9taW5tYXhhZ2dfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgTWlu TWF4QWdnUGF0aCAqYmVzdF9wYXRoKQogCQlNaW5NYXhBZ2dJbmZvICptbWluZm8gPSAoTWluTWF4 QWdnSW5mbyAqKSBsZmlyc3QobGMpOwogCQlQbGFubmVySW5mbyAqc3Vicm9vdCA9IG1taW5mby0+ c3Vicm9vdDsKIAkJUXVlcnkJICAgKnN1YnBhcnNlID0gc3Vicm9vdC0+cGFyc2U7Ci0JCVBsYW4J ICAgKnBsYW47CisJCVBsYW4JICAgKmluaXRwbGFuOwogCiAJCS8qCiAJCSAqIEdlbmVyYXRlIHRo ZSBwbGFuIGZvciB0aGUgc3VicXVlcnkuIFdlIGFscmVhZHkgaGF2ZSBhIFBhdGgsIGJ1dCB3ZQpA QCAtMjQxNCwyNSArMjQxNCwyNSBAQCBjcmVhdGVfbWlubWF4YWdnX3BsYW4oUGxhbm5lckluZm8g KnJvb3QsIE1pbk1heEFnZ1BhdGggKmJlc3RfcGF0aCkKIAkJICogU2luY2Ugd2UgYXJlIGVudGVy aW5nIGEgZGlmZmVyZW50IHBsYW5uZXIgY29udGV4dCAoc3Vicm9vdCksCiAJCSAqIHJlY3Vyc2Ug dG8gY3JlYXRlX3BsYW4gbm90IGNyZWF0ZV9wbGFuX3JlY3Vyc2UuCiAJCSAqLwotCQlwbGFuID0g Y3JlYXRlX3BsYW4oc3Vicm9vdCwgbW1pbmZvLT5wYXRoKTsKKwkJaW5pdHBsYW4gPSBjcmVhdGVf cGxhbihzdWJyb290LCBtbWluZm8tPnBhdGgpOwogCi0JCXBsYW4gPSAoUGxhbiAqKSBtYWtlX2xp bWl0KHBsYW4sCi0JCQkJCQkJCSAgIHN1YnBhcnNlLT5saW1pdE9mZnNldCwKLQkJCQkJCQkJICAg c3VicGFyc2UtPmxpbWl0Q291bnQsCi0JCQkJCQkJCSAgIHN1YnBhcnNlLT5saW1pdE9wdGlvbiwK LQkJCQkJCQkJICAgMCwgTlVMTCwgTlVMTCwgTlVMTCk7CisJCWluaXRwbGFuID0gKFBsYW4gKikg bWFrZV9saW1pdChpbml0cGxhbiwKKwkJCQkJCQkJCSAgIHN1YnBhcnNlLT5saW1pdE9mZnNldCwK KwkJCQkJCQkJCSAgIHN1YnBhcnNlLT5saW1pdENvdW50LAorCQkJCQkJCQkJICAgc3VicGFyc2Ut PmxpbWl0T3B0aW9uLAorCQkJCQkJCQkJICAgMCwgTlVMTCwgTlVMTCwgTlVMTCk7CiAKIAkJLyog TXVzdCBhcHBseSBjb3JyZWN0IGNvc3Qvd2lkdGggZGF0YSB0byBMaW1pdCBub2RlICovCi0JCXBs YW4tPmRpc2FibGVkX25vZGVzID0gbW1pbmZvLT5wYXRoLT5kaXNhYmxlZF9ub2RlczsKLQkJcGxh bi0+c3RhcnR1cF9jb3N0ID0gbW1pbmZvLT5wYXRoLT5zdGFydHVwX2Nvc3Q7Ci0JCXBsYW4tPnRv dGFsX2Nvc3QgPSBtbWluZm8tPnBhdGhjb3N0OwotCQlwbGFuLT5wbGFuX3Jvd3MgPSAxOwotCQlw bGFuLT5wbGFuX3dpZHRoID0gbW1pbmZvLT5wYXRoLT5wYXRodGFyZ2V0LT53aWR0aDsKLQkJcGxh bi0+cGFyYWxsZWxfYXdhcmUgPSBmYWxzZTsKLQkJcGxhbi0+cGFyYWxsZWxfc2FmZSA9IG1taW5m by0+cGF0aC0+cGFyYWxsZWxfc2FmZTsKKwkJaW5pdHBsYW4tPmRpc2FibGVkX25vZGVzID0gbW1p bmZvLT5wYXRoLT5kaXNhYmxlZF9ub2RlczsKKwkJaW5pdHBsYW4tPnN0YXJ0dXBfY29zdCA9IG1t aW5mby0+cGF0aC0+c3RhcnR1cF9jb3N0OworCQlpbml0cGxhbi0+dG90YWxfY29zdCA9IG1taW5m by0+cGF0aGNvc3Q7CisJCWluaXRwbGFuLT5wbGFuX3Jvd3MgPSAxOworCQlpbml0cGxhbi0+cGxh bl93aWR0aCA9IG1taW5mby0+cGF0aC0+cGF0aHRhcmdldC0+d2lkdGg7CisJCWluaXRwbGFuLT5w YXJhbGxlbF9hd2FyZSA9IGZhbHNlOworCQlpbml0cGxhbi0+cGFyYWxsZWxfc2FmZSA9IG1taW5m by0+cGF0aC0+cGFyYWxsZWxfc2FmZTsKIAogCQkvKiBDb252ZXJ0IHRoZSBwbGFuIGludG8gYW4g SW5pdFBsYW4gaW4gdGhlIG91dGVyIHF1ZXJ5LiAqLwotCQlTU19tYWtlX2luaXRwbGFuX2Zyb21f cGxhbihyb290LCBzdWJyb290LCBwbGFuLCBtbWluZm8tPnBhcmFtKTsKKwkJU1NfbWFrZV9pbml0 cGxhbl9mcm9tX3BsYW4ocm9vdCwgc3Vicm9vdCwgaW5pdHBsYW4sIG1taW5mby0+cGFyYW0pOwog CX0KIAogCS8qIEdlbmVyYXRlIHRoZSBvdXRwdXQgcGxhbiAtLS0gYmFzaWNhbGx5IGp1c3QgYSBS ZXN1bHQgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvZGVwZW5kZW5jaWVz LmMgYi9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2RlcGVuZGVuY2llcy5jCmluZGV4IGQ3YmY2Yjdl ODQ2Li4wMGM0NjI2MjFiYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9kZXBl bmRlbmNpZXMuYworKysgYi9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2RlcGVuZGVuY2llcy5jCkBA IC0xMDk4LDE3ICsxMDk4LDE3IEBAIGRlcGVuZGVuY3lfaXNfY29tcGF0aWJsZV9leHByZXNzaW9u KE5vZGUgKmNsYXVzZSwgSW5kZXggcmVsaWQsIExpc3QgKnN0YXRsaXN0LCBOCiAJaWYgKGlzX29w Y2xhdXNlKGNsYXVzZSkpCiAJewogCQkvKiBJZiBpdCdzIGFuIG9wY2xhdXNlLCBjaGVjayBmb3Ig VmFyID0gQ29uc3Qgb3IgQ29uc3QgPSBWYXIuICovCi0JCU9wRXhwcgkgICAqZXhwciA9IChPcEV4 cHIgKikgY2xhdXNlOworCQlPcEV4cHIJICAgKm9wX2V4cHIgPSAoT3BFeHByICopIGNsYXVzZTsK IAogCQkvKiBPbmx5IGV4cHJlc3Npb25zIHdpdGggdHdvIGFyZ3VtZW50cyBhcmUgY2FuZGlkYXRl cy4gKi8KLQkJaWYgKGxpc3RfbGVuZ3RoKGV4cHItPmFyZ3MpICE9IDIpCisJCWlmIChsaXN0X2xl bmd0aChvcF9leHByLT5hcmdzKSAhPSAyKQogCQkJcmV0dXJuIGZhbHNlOwogCiAJCS8qIE1ha2Ug c3VyZSBub24tc2VsZWN0ZWQgYXJndW1lbnQgaXMgYSBwc2V1ZG9jb25zdGFudC4gKi8KLQkJaWYg KGlzX3BzZXVkb19jb25zdGFudF9jbGF1c2UobHNlY29uZChleHByLT5hcmdzKSkpCi0JCQljbGF1 c2VfZXhwciA9IGxpbml0aWFsKGV4cHItPmFyZ3MpOwotCQllbHNlIGlmIChpc19wc2V1ZG9fY29u c3RhbnRfY2xhdXNlKGxpbml0aWFsKGV4cHItPmFyZ3MpKSkKLQkJCWNsYXVzZV9leHByID0gbHNl Y29uZChleHByLT5hcmdzKTsKKwkJaWYgKGlzX3BzZXVkb19jb25zdGFudF9jbGF1c2UobHNlY29u ZChvcF9leHByLT5hcmdzKSkpCisJCQljbGF1c2VfZXhwciA9IGxpbml0aWFsKG9wX2V4cHItPmFy Z3MpOworCQllbHNlIGlmIChpc19wc2V1ZG9fY29uc3RhbnRfY2xhdXNlKGxpbml0aWFsKG9wX2V4 cHItPmFyZ3MpKSkKKwkJCWNsYXVzZV9leHByID0gbHNlY29uZChvcF9leHByLT5hcmdzKTsKIAkJ ZWxzZQogCQkJcmV0dXJuIGZhbHNlOwogCkBAIC0xMTI0LDcgKzExMjQsNyBAQCBkZXBlbmRlbmN5 X2lzX2NvbXBhdGlibGVfZXhwcmVzc2lvbihOb2RlICpjbGF1c2UsIEluZGV4IHJlbGlkLCBMaXN0 ICpzdGF0bGlzdCwgTgogCQkgKiBzZWxlY3Rpdml0eSBmdW5jdGlvbnMsIGFuZCB0byBiZSBtb3Jl IGNvbnNpc3RlbnQgd2l0aCBkZWNpc2lvbnMKIAkJICogZWxzZXdoZXJlIGluIHRoZSBwbGFubmVy LgogCQkgKi8KLQkJaWYgKGdldF9vcHJyZXN0KGV4cHItPm9wbm8pICE9IEZfRVFTRUwpCisJCWlm IChnZXRfb3BycmVzdChvcF9leHByLT5vcG5vKSAhPSBGX0VRU0VMKQogCQkJcmV0dXJuIGZhbHNl OwogCiAJCS8qIE9LIHRvIHByb2NlZWQgd2l0aCBjaGVja2luZyAidmFyIiAqLwpAQCAtMTEzMiw3 ICsxMTMyLDcgQEAgZGVwZW5kZW5jeV9pc19jb21wYXRpYmxlX2V4cHJlc3Npb24oTm9kZSAqY2xh dXNlLCBJbmRleCByZWxpZCwgTGlzdCAqc3RhdGxpc3QsIE4KIAllbHNlIGlmIChJc0EoY2xhdXNl LCBTY2FsYXJBcnJheU9wRXhwcikpCiAJewogCQkvKiBJZiBpdCdzIGEgc2NhbGFyIGFycmF5IG9w ZXJhdG9yLCBjaGVjayBmb3IgVmFyIElOIENvbnN0LiAqLwotCQlTY2FsYXJBcnJheU9wRXhwciAq ZXhwciA9IChTY2FsYXJBcnJheU9wRXhwciAqKSBjbGF1c2U7CisJCVNjYWxhckFycmF5T3BFeHBy ICpvcF9leHByID0gKFNjYWxhckFycmF5T3BFeHByICopIGNsYXVzZTsKIAogCQkvKgogCQkgKiBS ZWplY3QgQUxMKCkgdmFyaWFudCwgd2Ugb25seSBjYXJlIGFib3V0IEFOWS9JTi4KQEAgLTExNDAs MjEgKzExNDAsMjEgQEAgZGVwZW5kZW5jeV9pc19jb21wYXRpYmxlX2V4cHJlc3Npb24oTm9kZSAq Y2xhdXNlLCBJbmRleCByZWxpZCwgTGlzdCAqc3RhdGxpc3QsIE4KIAkJICogRklYTUUgTWF5YmUg d2Ugc2hvdWxkIGNoZWNrIGlmIGFsbCB0aGUgdmFsdWVzIGFyZSB0aGUgc2FtZSwgYW5kCiAJCSAq IGFsbG93IEFMTCBpbiB0aGF0IGNhc2U/IERvZXNuJ3Qgc2VlbSB2ZXJ5IHByYWN0aWNhbCwgdGhv dWdoLgogCQkgKi8KLQkJaWYgKCFleHByLT51c2VPcikKKwkJaWYgKCFvcF9leHByLT51c2VPcikK IAkJCXJldHVybiBmYWxzZTsKIAogCQkvKiBPbmx5IGV4cHJlc3Npb25zIHdpdGggdHdvIGFyZ3Vt ZW50cyBhcmUgY2FuZGlkYXRlcy4gKi8KLQkJaWYgKGxpc3RfbGVuZ3RoKGV4cHItPmFyZ3MpICE9 IDIpCisJCWlmIChsaXN0X2xlbmd0aChvcF9leHByLT5hcmdzKSAhPSAyKQogCQkJcmV0dXJuIGZh bHNlOwogCiAJCS8qCiAJCSAqIFdlIGtub3cgaXQncyBhbHdheXMgKFZhciBJTiBDb25zdCksIHNv IHdlIGFzc3VtZSB0aGUgdmFyIGlzIHRoZQogCQkgKiBmaXJzdCBhcmd1bWVudCwgYW5kIHBzZXVk b2NvbnN0YW50IGlzIHRoZSBzZWNvbmQgb25lLgogCQkgKi8KLQkJaWYgKCFpc19wc2V1ZG9fY29u c3RhbnRfY2xhdXNlKGxzZWNvbmQoZXhwci0+YXJncykpKQorCQlpZiAoIWlzX3BzZXVkb19jb25z dGFudF9jbGF1c2UobHNlY29uZChvcF9leHByLT5hcmdzKSkpCiAJCQlyZXR1cm4gZmFsc2U7CiAK LQkJY2xhdXNlX2V4cHIgPSBsaW5pdGlhbChleHByLT5hcmdzKTsKKwkJY2xhdXNlX2V4cHIgPSBs aW5pdGlhbChvcF9leHByLT5hcmdzKTsKIAogCQkvKgogCQkgKiBJZiBpdCdzIG5vdCBhbiAiPSIg b3BlcmF0b3IsIGp1c3QgaWdub3JlIHRoZSBjbGF1c2UsIGFzIGl0J3Mgbm90CkBAIC0xMTYzLDcg KzExNjMsNyBAQCBkZXBlbmRlbmN5X2lzX2NvbXBhdGlibGVfZXhwcmVzc2lvbihOb2RlICpjbGF1 c2UsIEluZGV4IHJlbGlkLCBMaXN0ICpzdGF0bGlzdCwgTgogCQkgKiBzZWxlY3Rpdml0eS4gVGhh dCdzIGEgYml0IHN0cmFuZ2UsIGJ1dCBpdCdzIHdoYXQgb3RoZXIgc2ltaWxhcgogCQkgKiBwbGFj ZXMgZG8uCiAJCSAqLwotCQlpZiAoZ2V0X29wcnJlc3QoZXhwci0+b3BubykgIT0gRl9FUVNFTCkK KwkJaWYgKGdldF9vcHJyZXN0KG9wX2V4cHItPm9wbm8pICE9IEZfRVFTRUwpCiAJCQlyZXR1cm4g ZmFsc2U7CiAKIAkJLyogT0sgdG8gcHJvY2VlZCB3aXRoIGNoZWNraW5nICJ2YXIiICovCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyBiL3NyYy9iYWNrZW5k L3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCmluZGV4IDYyZjQyMGRkMzQ0Li4yM2VhNmU3ZGRhNyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKKysrIGIvc3Jj L2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTExODgsNyArMTE4OCw3IEBAIFJl YWRCdWZmZXJfY29tbW9uKFJlbGF0aW9uIHJlbCwgU01nclJlbGF0aW9uIHNtZ3IsIGNoYXIgc21n cl9wZXJzaXN0ZW5jZSwKIAkgKi8KIAlpZiAodW5saWtlbHkoYmxvY2tOdW0gPT0gUF9ORVcpKQog CXsKLQkJdWludDMyCQlmbGFncyA9IEVCX1NLSVBfRVhURU5TSU9OX0xPQ0s7CisJCXVpbnQzMgkJ dWZsYWdzID0gRUJfU0tJUF9FWFRFTlNJT05fTE9DSzsKIAogCQkvKgogCQkgKiBTaW5jZSBuby1v bmUgZWxzZSBjYW4gYmUgbG9va2luZyBhdCB0aGUgcGFnZSBjb250ZW50cyB5ZXQsIHRoZXJlIGlz CkBAIC0xMTk2LDkgKzExOTYsOSBAQCBSZWFkQnVmZmVyX2NvbW1vbihSZWxhdGlvbiByZWwsIFNN Z3JSZWxhdGlvbiBzbWdyLCBjaGFyIHNtZ3JfcGVyc2lzdGVuY2UsCiAJCSAqIGxvY2suCiAJCSAq LwogCQlpZiAobW9kZSA9PSBSQk1fWkVST19BTkRfTE9DSyB8fCBtb2RlID09IFJCTV9aRVJPX0FO RF9DTEVBTlVQX0xPQ0spCi0JCQlmbGFncyB8PSBFQl9MT0NLX0ZJUlNUOworCQkJdWZsYWdzIHw9 IEVCX0xPQ0tfRklSU1Q7CiAKLQkJcmV0dXJuIEV4dGVuZEJ1ZmZlcmVkUmVsKEJNUl9SRUwocmVs KSwgZm9ya051bSwgc3RyYXRlZ3ksIGZsYWdzKTsKKwkJcmV0dXJuIEV4dGVuZEJ1ZmZlcmVkUmVs KEJNUl9SRUwocmVsKSwgZm9ya051bSwgc3RyYXRlZ3ksIHVmbGFncyk7CiAJfQogCiAJaWYgKHJl bCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9leGVjLmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfZXhlYy5jCmluZGV4IDgxNTY2OTVlOTdlLi4x ZWFiZjZlNjhkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX2V4 ZWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfZXhlYy5jCkBAIC01MzYs NyArNTM2LDcgQEAganNvbmJfcGF0aF9xdWVyeV9pbnRlcm5hbChGdW5jdGlvbkNhbGxJbmZvIGZj aW5mbywgYm9vbCB0eikKIAkJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwogCQlKc29uYgkgICAq dmFyczsKIAkJYm9vbAkJc2lsZW50OwotCQlKc29uVmFsdWVMaXN0IGZvdW5kID0gezB9OworCQlK c29uVmFsdWVMaXN0IHZhbHMgPSB7MH07CiAKIAkJZnVuY2N0eCA9IFNSRl9GSVJTVENBTExfSU5J VCgpOwogCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGZ1bmNjdHgtPm11bHRp X2NhbGxfbWVtb3J5X2N0eCk7CkBAIC01NDgsOSArNTQ4LDkgQEAganNvbmJfcGF0aF9xdWVyeV9p bnRlcm5hbChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCB0eikKIAogCQkodm9pZCkgZXhl Y3V0ZUpzb25QYXRoKGpwLCB2YXJzLCBnZXRKc29uUGF0aFZhcmlhYmxlRnJvbUpzb25iLAogCQkJ CQkJCSAgIGNvdW50VmFyaWFibGVzRnJvbUpzb25iLAotCQkJCQkJCSAgIGpiLCAhc2lsZW50LCAm Zm91bmQsIHR6KTsKKwkJCQkJCQkgICBqYiwgIXNpbGVudCwgJnZhbHMsIHR6KTsKIAotCQlmdW5j Y3R4LT51c2VyX2ZjdHggPSBKc29uVmFsdWVMaXN0R2V0TGlzdCgmZm91bmQpOworCQlmdW5jY3R4 LT51c2VyX2ZjdHggPSBKc29uVmFsdWVMaXN0R2V0TGlzdCgmdmFscyk7CiAKIAkJTWVtb3J5Q29u dGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCX0KQEAgLTE4NzksMjUgKzE4NzksMjUgQEAgZXhl Y3V0ZUJvb2xJdGVtKEpzb25QYXRoRXhlY0NvbnRleHQgKmN4dCwgSnNvblBhdGhJdGVtICpqc3As CiAJCQkJICogY2hlY2sgdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzIGF0IGFsbC4KIAkJCQkgKi8K IAkJCQlKc29uVmFsdWVMaXN0IHZhbHMgPSB7MH07Ci0JCQkJSnNvblBhdGhFeGVjUmVzdWx0IHJl cyA9CisJCQkJSnNvblBhdGhFeGVjUmVzdWx0IGV4ZWNyZXMgPQogCQkJCQlleGVjdXRlSXRlbU9w dFVud3JhcFJlc3VsdE5vVGhyb3coY3h0LCAmbGFyZywgamIsCiAJCQkJCQkJCQkJCQkJICBmYWxz ZSwgJnZhbHMpOwogCi0JCQkJaWYgKGpwZXJJc0Vycm9yKHJlcykpCisJCQkJaWYgKGpwZXJJc0Vy cm9yKGV4ZWNyZXMpKQogCQkJCQlyZXR1cm4ganBiVW5rbm93bjsKIAogCQkJCXJldHVybiBKc29u VmFsdWVMaXN0SXNFbXB0eSgmdmFscykgPyBqcGJGYWxzZSA6IGpwYlRydWU7CiAJCQl9CiAJCQll bHNlCiAJCQl7Ci0JCQkJSnNvblBhdGhFeGVjUmVzdWx0IHJlcyA9CisJCQkJSnNvblBhdGhFeGVj UmVzdWx0IGV4ZWNyZXMgPQogCQkJCQlleGVjdXRlSXRlbU9wdFVud3JhcFJlc3VsdE5vVGhyb3co Y3h0LCAmbGFyZywgamIsCiAJCQkJCQkJCQkJCQkJICBmYWxzZSwgTlVMTCk7CiAKLQkJCQlpZiAo anBlcklzRXJyb3IocmVzKSkKKwkJCQlpZiAoanBlcklzRXJyb3IoZXhlY3JlcykpCiAJCQkJCXJl dHVybiBqcGJVbmtub3duOwogCi0JCQkJcmV0dXJuIHJlcyA9PSBqcGVyT2sgPyBqcGJUcnVlIDog anBiRmFsc2U7CisJCQkJcmV0dXJuIGV4ZWNyZXMgPT0ganBlck9rID8ganBiVHJ1ZSA6IGpwYkZh bHNlOwogCQkJfQogCiAJCWRlZmF1bHQ6CkBAIC0yMDY2LDE2ICsyMDY2LDE2IEBAIGV4ZWN1dGVQ cmVkaWNhdGUoSnNvblBhdGhFeGVjQ29udGV4dCAqY3h0LCBKc29uUGF0aEl0ZW0gKnByZWQsCiAJ CS8qIExvb3Agb3ZlciByaWdodCBhcmcgc2VxdWVuY2Ugb3IgZG8gc2luZ2xlIHBhc3Mgb3RoZXJ3 aXNlICovCiAJCXdoaWxlIChyYXJnID8gKHJ2YWwgIT0gTlVMTCkgOiBmaXJzdCkKIAkJewotCQkJ SnNvblBhdGhCb29sIHJlcyA9IGV4ZWMocHJlZCwgbHZhbCwgcnZhbCwgcGFyYW0pOworCQkJSnNv blBhdGhCb29sIGJvb2xyZXMgPSBleGVjKHByZWQsIGx2YWwsIHJ2YWwsIHBhcmFtKTsKIAotCQkJ aWYgKHJlcyA9PSBqcGJVbmtub3duKQorCQkJaWYgKGJvb2xyZXMgPT0ganBiVW5rbm93bikKIAkJ CXsKIAkJCQlpZiAoanNwU3RyaWN0QWJzZW5jZU9mRXJyb3JzKGN4dCkpCiAJCQkJCXJldHVybiBq cGJVbmtub3duOwogCiAJCQkJZXJyb3IgPSB0cnVlOwogCQkJfQotCQkJZWxzZSBpZiAocmVzID09 IGpwYlRydWUpCisJCQllbHNlIGlmIChib29scmVzID09IGpwYlRydWUpCiAJCQl7CiAJCQkJaWYg KCFqc3BTdHJpY3RBYnNlbmNlT2ZFcnJvcnMoY3h0KSkKIAkJCQkJcmV0dXJuIGpwYlRydWU7CkBA IC00MTM2LDIwICs0MTM2LDIwIEBAIEpzb25UYWJsZUluaXRPcGFxdWUoVGFibGVGdW5jU2NhblN0 YXRlICpzdGF0ZSwgaW50IG5hdHRzKQogCQlmb3Jib3RoKGV4cHJsYywgc3RhdGUtPnBhc3Npbmd2 YWxleHBycywKIAkJCQluYW1lbGMsIGplLT5wYXNzaW5nX25hbWVzKQogCQl7Ci0JCQlFeHByU3Rh dGUgICpzdGF0ZSA9IGxmaXJzdF9ub2RlKEV4cHJTdGF0ZSwgZXhwcmxjKTsKKwkJCUV4cHJTdGF0 ZSAgKmV4cHJzdGF0ZSA9IGxmaXJzdF9ub2RlKEV4cHJTdGF0ZSwgZXhwcmxjKTsKIAkJCVN0cmlu ZwkgICAqbmFtZSA9IGxmaXJzdF9ub2RlKFN0cmluZywgbmFtZWxjKTsKIAkJCUpzb25QYXRoVmFy aWFibGUgKnZhciA9IHBhbGxvYyhzaXplb2YoKnZhcikpOwogCiAJCQl2YXItPm5hbWUgPSBwc3Ry ZHVwKG5hbWUtPnN2YWwpOwogCQkJdmFyLT5uYW1lbGVuID0gc3RybGVuKHZhci0+bmFtZSk7Ci0J CQl2YXItPnR5cGlkID0gZXhwclR5cGUoKE5vZGUgKikgc3RhdGUtPmV4cHIpOwotCQkJdmFyLT50 eXBtb2QgPSBleHByVHlwbW9kKChOb2RlICopIHN0YXRlLT5leHByKTsKKwkJCXZhci0+dHlwaWQg PSBleHByVHlwZSgoTm9kZSAqKSBleHByc3RhdGUtPmV4cHIpOworCQkJdmFyLT50eXBtb2QgPSBl eHByVHlwbW9kKChOb2RlICopIGV4cHJzdGF0ZS0+ZXhwcik7CiAKIAkJCS8qCiAJCQkgKiBFdmFs dWF0ZSB0aGUgZXhwcmVzc2lvbiBhbmQgc2F2ZSB0aGUgdmFsdWUgdG8gYmUgcmV0dXJuZWQgYnkK IAkJCSAqIEdldEpzb25QYXRoVmFyKCkuCiAJCQkgKi8KLQkJCXZhci0+dmFsdWUgPSBFeGVjRXZh bEV4cHIoc3RhdGUsIHBzLT5wc19FeHByQ29udGV4dCwKKwkJCXZhci0+dmFsdWUgPSBFeGVjRXZh bEV4cHIoZXhwcnN0YXRlLCBwcy0+cHNfRXhwckNvbnRleHQsCiAJCQkJCQkJCQkgICZ2YXItPmlz bnVsbCk7CiAKIAkJCWFyZ3MgPSBsYXBwZW5kKGFyZ3MsIHZhcik7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMKaW5kZXggYTRmOGI0ZmFhOTAuLmNmYWE4ZjhhM2I3 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCkBAIC0yMjcs OCArMjI3LDggQEAgYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2VtcHR5X2V4dGVuc2lvbihQR19GVU5D VElPTl9BUkdTKQogCQlkZWNvbnN0cnVjdF9hcnJheV9idWlsdGluKHRleHRBcnJheSwgVEVYVE9J RCwgJnRleHREYXR1bXMsIE5VTEwsICZuZGF0dW1zKTsKIAkJZm9yIChpID0gMDsgaSA8IG5kYXR1 bXM7IGkrKykKIAkJewotCQkJY2hhcgkgICAqZXh0TmFtZSA9IFRleHREYXR1bUdldENTdHJpbmco dGV4dERhdHVtc1tpXSk7Ci0JCQlPaWQJCQlleHRPaWQgPSBnZXRfZXh0ZW5zaW9uX29pZChleHRO YW1lLCBmYWxzZSk7CisJCQljaGFyCSAgICpleHROYW1lU3RyID0gVGV4dERhdHVtR2V0Q1N0cmlu Zyh0ZXh0RGF0dW1zW2ldKTsKKwkJCU9pZAkJCWV4dE9pZCA9IGdldF9leHRlbnNpb25fb2lkKGV4 dE5hbWVTdHIsIGZhbHNlKTsKIAogCQkJcmVxdWlyZWRFeHRlbnNpb25zID0gbGFwcGVuZF9vaWQo cmVxdWlyZWRFeHRlbnNpb25zLCBleHRPaWQpOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvdmFybGVuYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwpp bmRleCAzODk0NDU3YWI0MC4uODRmNjA3NGYwZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC92YXJsZW5hLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwpA QCAtMzI3MywxNCArMzI3MywxNCBAQCBhcHBlbmRTdHJpbmdJbmZvUmVnZXhwU3Vic3RyKFN0cmlu Z0luZm8gc3RyLCB0ZXh0ICpyZXBsYWNlX3RleHQsCiAJCQkgKiBDb3B5IHRoZSB0ZXh0IHRoYXQg aXMgYmFjayByZWZlcmVuY2Ugb2YgcmVnZXhwLiAgTm90ZSBzbyBhbmQgZW8KIAkJCSAqIGFyZSBj b3VudGVkIGluIGNoYXJhY3RlcnMgbm90IGJ5dGVzLgogCQkJICovCi0JCQljaGFyCSAgICpjaHVu a19zdGFydDsKLQkJCWludAkJCWNodW5rX2xlbjsKKwkJCWNoYXIJICAgKnN0YXJ0OworCQkJaW50 CQkJbGVuOwogCiAJCQlBc3NlcnQoc28gPj0gZGF0YV9wb3MpOwotCQkJY2h1bmtfc3RhcnQgPSBz dGFydF9wdHI7Ci0JCQljaHVua19zdGFydCArPSBjaGFybGVuX3RvX2J5dGVsZW4oY2h1bmtfc3Rh cnQsIHNvIC0gZGF0YV9wb3MpOwotCQkJY2h1bmtfbGVuID0gY2hhcmxlbl90b19ieXRlbGVuKGNo dW5rX3N0YXJ0LCBlbyAtIHNvKTsKLQkJCWFwcGVuZEJpbmFyeVN0cmluZ0luZm8oc3RyLCBjaHVu a19zdGFydCwgY2h1bmtfbGVuKTsKKwkJCXN0YXJ0ID0gc3RhcnRfcHRyOworCQkJc3RhcnQgKz0g Y2hhcmxlbl90b19ieXRlbGVuKHN0YXJ0LCBzbyAtIGRhdGFfcG9zKTsKKwkJCWxlbiA9IGNoYXJs ZW5fdG9fYnl0ZWxlbihzdGFydCwgZW8gLSBzbyk7CisJCQlhcHBlbmRCaW5hcnlTdHJpbmdJbmZv KHN0ciwgc3RhcnQsIGxlbik7CiAJCX0KIAl9CiB9CkBAIC00ODk5LDcgKzQ4OTksNyBAQCB0ZXh0 X2Zvcm1hdChQR19GVU5DVElPTl9BUkdTKQogCQkJZWxzZQogCQkJewogCQkJCS8qIEZvciBsZXNz LXVzdWFsIGRhdGF0eXBlcywgY29udmVydCB0byB0ZXh0IHRoZW4gdG8gaW50ICovCi0JCQkJY2hh cgkgICAqc3RyOworCQkJCWNoYXIJICAgKnM7CiAKIAkJCQlpZiAodHlwaWQgIT0gcHJldl93aWR0 aF90eXBlKQogCQkJCXsKQEAgLTQ5MTEsMTIgKzQ5MTEsMTIgQEAgdGV4dF9mb3JtYXQoUEdfRlVO Q1RJT05fQVJHUykKIAkJCQkJcHJldl93aWR0aF90eXBlID0gdHlwaWQ7CiAJCQkJfQogCi0JCQkJ c3RyID0gT3V0cHV0RnVuY3Rpb25DYWxsKCZ0eXBvdXRwdXRpbmZvX3dpZHRoLCB2YWx1ZSk7CisJ CQkJcyA9IE91dHB1dEZ1bmN0aW9uQ2FsbCgmdHlwb3V0cHV0aW5mb193aWR0aCwgdmFsdWUpOwog CiAJCQkJLyogcGdfc3RydG9pbnQzMiB3aWxsIGNvbXBsYWluIGFib3V0IGJhZCBkYXRhIG9yIG92 ZXJmbG93ICovCi0JCQkJd2lkdGggPSBwZ19zdHJ0b2ludDMyKHN0cik7CisJCQkJd2lkdGggPSBw Z19zdHJ0b2ludDMyKHMpOwogCi0JCQkJcGZyZWUoc3RyKTsKKwkJCQlwZnJlZShzKTsKIAkJCX0K IAkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2ZyZWVwYWdlLmMgYi9z cmMvYmFja2VuZC91dGlscy9tbWdyL2ZyZWVwYWdlLmMKaW5kZXggMjdkM2U2ZTEwMGMuLjk4MzZk ODcyYWVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2ZyZWVwYWdlLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9mcmVlcGFnZS5jCkBAIC0xNTg2LDcgKzE1ODYsNyBA QCBGcmVlUGFnZU1hbmFnZXJQdXRJbnRlcm5hbChGcmVlUGFnZU1hbmFnZXIgKmZwbSwgU2l6ZSBm aXJzdF9wYWdlLCBTaXplIG5wYWdlcywKIAlpZiAocHJldmtleSAhPSBOVUxMICYmIHByZXZrZXkt PmZpcnN0X3BhZ2UgKyBwcmV2a2V5LT5ucGFnZXMgPj0gZmlyc3RfcGFnZSkKIAl7CiAJCWJvb2wJ CXJlbW92ZV9uZXh0ID0gZmFsc2U7Ci0JCVNpemUJCXJlc3VsdDsKKwkJU2l6ZQkJbnByZXZwYWdl czsKIAogCQlBc3NlcnQocHJldmtleS0+Zmlyc3RfcGFnZSArIHByZXZrZXktPm5wYWdlcyA9PSBm aXJzdF9wYWdlKTsKIAkJcHJldmtleS0+bnBhZ2VzID0gKGZpcnN0X3BhZ2UgLSBwcmV2a2V5LT5m aXJzdF9wYWdlKSArIG5wYWdlczsKQEAgLTE2MDYsNyArMTYwNiw3IEBAIEZyZWVQYWdlTWFuYWdl clB1dEludGVybmFsKEZyZWVQYWdlTWFuYWdlciAqZnBtLCBTaXplIGZpcnN0X3BhZ2UsIFNpemUg bnBhZ2VzLAogCQkvKiBQdXQgdGhlIHNwYW4gb24gdGhlIGNvcnJlY3QgZnJlZWxpc3QgYW5kIHNh dmUgc2l6ZS4gKi8KIAkJRnJlZVBhZ2VQb3BTcGFuTGVhZGVyKGZwbSwgcHJldmtleS0+Zmlyc3Rf cGFnZSk7CiAJCUZyZWVQYWdlUHVzaFNwYW5MZWFkZXIoZnBtLCBwcmV2a2V5LT5maXJzdF9wYWdl LCBwcmV2a2V5LT5ucGFnZXMpOwotCQlyZXN1bHQgPSBwcmV2a2V5LT5ucGFnZXM7CisJCW5wcmV2 cGFnZXMgPSBwcmV2a2V5LT5ucGFnZXM7CiAKIAkJLyoKIAkJICogSWYgd2UgY29uc29saWRhdGVk IHdpdGggYm90aCB0aGUgcHJlY2VkaW5nIGFuZCBmb2xsb3dpbmcgZW50cmllcywKQEAgLTE2MjEs NyArMTYyMSw3IEBAIEZyZWVQYWdlTWFuYWdlclB1dEludGVybmFsKEZyZWVQYWdlTWFuYWdlciAq ZnBtLCBTaXplIGZpcnN0X3BhZ2UsIFNpemUgbnBhZ2VzLAogCQlpZiAocmVtb3ZlX25leHQpCiAJ CQlGcmVlUGFnZUJ0cmVlUmVtb3ZlKGZwbSwgbnAsIG5pbmRleCk7CiAKLQkJcmV0dXJuIHJlc3Vs dDsKKwkJcmV0dXJuIG5wcmV2cGFnZXM7CiAJfQogCiAJLyogQ29uc29saWRhdGUgd2l0aCB0aGUg bmV4dCBlbnRyeSBpZiBwb3NzaWJsZS4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdiZW5jaC9w Z2JlbmNoLmMgYi9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jCmluZGV4IDY4Nzc0YTU5ZWZkLi40 OGNiNTYzNjkwOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYworKysgYi9z cmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jCkBAIC00NjYxLDcgKzQ2NjEsNyBAQCBkb0xvZyhUU3Rh dGUgKnRocmVhZCwgQ1N0YXRlICpzdCwKIAkJCWRvdWJsZQkJbGFnX3N1bTIgPSAwLjA7CiAJCQlk b3VibGUJCWxhZ19taW4gPSAwLjA7CiAJCQlkb3VibGUJCWxhZ19tYXggPSAwLjA7Ci0JCQlpbnQ2 NAkJc2tpcHBlZCA9IDA7CisJCQlpbnQ2NAkJc2tpcHMgPSAwOwogCQkJaW50NjQJCXNlcmlhbGl6 YXRpb25fZmFpbHVyZXMgPSAwOwogCQkJaW50NjQJCWRlYWRsb2NrX2ZhaWx1cmVzID0gMDsKIAkJ CWludDY0CQlvdGhlcl9zcWxfZmFpbHVyZXMgPSAwOwpAQCAtNDY5MSw4ICs0NjkxLDggQEAgZG9M b2coVFN0YXRlICp0aHJlYWQsIENTdGF0ZSAqc3QsCiAJCQkJCWxhZ19tYXgpOwogCiAJCQlpZiAo bGF0ZW5jeV9saW1pdCkKLQkJCQlza2lwcGVkID0gYWdnLT5za2lwcGVkOwotCQkJZnByaW50Zihs b2dmaWxlLCAiICIgSU5UNjRfRk9STUFULCBza2lwcGVkKTsKKwkJCQlza2lwcyA9IGFnZy0+c2tp cHBlZDsKKwkJCWZwcmludGYobG9nZmlsZSwgIiAiIElOVDY0X0ZPUk1BVCwgc2tpcHMpOwogCiAJ CQlpZiAobWF4X3RyaWVzICE9IDEpCiAJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDM2ZjI0NTAyODQyLi40NzJj ZDJiNzgyYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTE3NTgsNyArMTc1OCw3IEBAIGRlc2NyaWJlT25lVGFibGVE ZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJaWYgKHRhYmxlaW5mby5yZWxraW5kID09 IFJFTEtJTkRfU0VRVUVOQ0UpCiAJewogCQlQR3Jlc3VsdCAgICpyZXN1bHQgPSBOVUxMOwotCQlw cmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OworCQlwcmludFF1ZXJ5T3B0IHBvcHQgPSBw c2V0LnBvcHQ7CiAJCWNoYXIJICAgKmZvb3RlcnNbM10gPSB7TlVMTCwgTlVMTCwgTlVMTH07CiAK IAkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTAwMDAwKQpAQCAtMTg5NSwxMiArMTg5NSwxMiBAQCBk ZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJcHJpbnRm UFFFeHBCdWZmZXIoJnRpdGxlLCBfKCJTZXF1ZW5jZSBcIiVzLiVzXCIiKSwKIAkJCQkJCQkgIHNj aGVtYW5hbWUsIHJlbGF0aW9ubmFtZSk7CiAKLQkJbXlvcHQuZm9vdGVycyA9IGZvb3RlcnM7Ci0J CW15b3B0LnRvcHQuZGVmYXVsdF9mb290ZXIgPSBmYWxzZTsKLQkJbXlvcHQudGl0bGUgPSB0aXRs ZS5kYXRhOwotCQlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKKwkJcG9wdC5mb290ZXJz ID0gZm9vdGVyczsKKwkJcG9wdC50b3B0LmRlZmF1bHRfZm9vdGVyID0gZmFsc2U7CisJCXBvcHQu dGl0bGUgPSB0aXRsZS5kYXRhOworCQlwb3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwogCi0J CXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dm aWxlKTsKKwkJcHJpbnRRdWVyeShyZXMsICZwb3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBz ZXQubG9nZmlsZSk7CiAKIAkJZnJlZShmb290ZXJzWzBdKTsKIAkJZnJlZShmb290ZXJzWzFdKTsK QEAgLTIzMTgsMTEgKzIzMTgsMTEgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hh ciAqc2NoZW1hbmFtZSwKIAogCQlpZiAoUFFudHVwbGVzKHJlc3VsdCkgPT0gMSkKIAkJewotCQkJ Y2hhcgkgICAqc2NoZW1hbmFtZSA9IFBRZ2V0dmFsdWUocmVzdWx0LCAwLCAwKTsKLQkJCWNoYXIJ ICAgKnJlbG5hbWUgPSBQUWdldHZhbHVlKHJlc3VsdCwgMCwgMSk7CisJCQljb25zdCBjaGFyICpz Y2hlbWEgPSBQUWdldHZhbHVlKHJlc3VsdCwgMCwgMCk7CisJCQljb25zdCBjaGFyICpyZWxuYW1l ID0gUFFnZXR2YWx1ZShyZXN1bHQsIDAsIDEpOwogCiAJCQlwcmludGZQUUV4cEJ1ZmZlcigmdG1w YnVmLCBfKCJPd25pbmcgdGFibGU6IFwiJXMuJXNcIiIpLAotCQkJCQkJCSAgc2NoZW1hbmFtZSwg cmVsbmFtZSk7CisJCQkJCQkJICBzY2hlbWEsIHJlbG5hbWUpOwogCQkJcHJpbnRUYWJsZUFkZEZv b3RlcigmY29udCwgdG1wYnVmLmRhdGEpOwogCQl9CiAJCVBRY2xlYXIocmVzdWx0KTsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC9wcm9tcHQuYyBiL3NyYy9iaW4vcHNxbC9wcm9tcHQuYwppbmRl eCA1OWEyY2VlZTA3YS4uOTQxZmE4OTQ5MTAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9wcm9t cHQuYworKysgYi9zcmMvYmluL3BzcWwvcHJvbXB0LmMKQEAgLTIwMCwxMSArMjAwLDExIEBAIGdl dF9wcm9tcHQocHJvbXB0U3RhdHVzX3Qgc3RhdHVzLCBDb25kaXRpb25hbFN0YWNrIGNzdGFjaykK IAkJCQkJLyogcGlwZWxpbmUgc3RhdHVzICovCiAJCQkJY2FzZSAnUCc6CiAJCQkJCXsKLQkJCQkJ CVBHcGlwZWxpbmVTdGF0dXMgc3RhdHVzID0gUFFwaXBlbGluZVN0YXR1cyhwc2V0LmRiKTsKKwkJ CQkJCVBHcGlwZWxpbmVTdGF0dXMgcGlwZWxpbmVzdGF0dXMgPSBQUXBpcGVsaW5lU3RhdHVzKHBz ZXQuZGIpOwogCi0JCQkJCQlpZiAoc3RhdHVzID09IFBRX1BJUEVMSU5FX09OKQorCQkJCQkJaWYg KHBpcGVsaW5lc3RhdHVzID09IFBRX1BJUEVMSU5FX09OKQogCQkJCQkJCXN0cmxjcHkoYnVmLCAi b24iLCBzaXplb2YoYnVmKSk7Ci0JCQkJCQllbHNlIGlmIChzdGF0dXMgPT0gUFFfUElQRUxJTkVf QUJPUlRFRCkKKwkJCQkJCWVsc2UgaWYgKHBpcGVsaW5lc3RhdHVzID09IFBRX1BJUEVMSU5FX0FC T1JURUQpCiAJCQkJCQkJc3RybGNweShidWYsICJhYm9ydCIsIHNpemVvZihidWYpKTsKIAkJCQkJ CWVsc2UKIAkJCQkJCQlzdHJsY3B5KGJ1ZiwgIm9mZiIsIHNpemVvZihidWYpKTsKQEAgLTM3Miwx MCArMzcyLDEyIEBAIGdldF9wcm9tcHQocHJvbXB0U3RhdHVzX3Qgc3RhdHVzLCBDb25kaXRpb25h bFN0YWNrIGNzdGFjaykKIAkvKiBDb21wdXRlIHRoZSB2aXNpYmxlIHdpZHRoIG9mIFBST01QVDEs IGZvciBQUk9NUFQyJ3MgJXcgKi8KIAlpZiAocHJvbXB0X3N0cmluZyA9PSBwc2V0LnByb21wdDEp CiAJewotCQljaGFyCSAgICpwID0gZGVzdGluYXRpb247Ci0JCWNoYXIJICAgKmVuZCA9IHAgKyBz dHJsZW4ocCk7CisJCWNvbnN0IGNoYXIgKmVuZDsKIAkJYm9vbAkJdmlzaWJsZSA9IHRydWU7CiAK KwkJcCA9IChjb25zdCBjaGFyICopIGRlc3RpbmF0aW9uOworCQllbmQgPSBwICsgc3RybGVuKHAp OworCiAJCWxhc3RfcHJvbXB0MV93aWR0aCA9IDA7CiAJCXdoaWxlICgqcCkKIAkJewpkaWZmIC0t Z2l0IGEvc3JjL2ZlX3V0aWxzL3ByaW50LmMgYi9zcmMvZmVfdXRpbHMvcHJpbnQuYwppbmRleCA0 ZDk3YWQyZGRlYi4uOTRlYTRkZmZlYTMgMTAwNjQ0Ci0tLSBhL3NyYy9mZV91dGlscy9wcmludC5j CisrKyBiL3NyYy9mZV91dGlscy9wcmludC5jCkBAIC05MzMsNyArOTMzLDcgQEAgcHJpbnRfYWxp Z25lZF90ZXh0KGNvbnN0IHByaW50VGFibGVDb250ZW50ICpjb250LCBGSUxFICpmb3V0LCBib29s IGlzX3BhZ2VyKQogCQlpZiAoIW9wdF90dXBsZXNfb25seSkKIAkJewogCQkJaW50CQkJbW9yZV9j b2xfd3JhcHBpbmc7Ci0JCQlpbnQJCQljdXJyX25sX2xpbmU7CisJCQlpbnQJCQljdXJyX2xpbmU7 CiAKIAkJCWlmIChvcHRfYm9yZGVyID09IDIpCiAJCQkJX3ByaW50X2hvcml6b250YWxfbGluZShj b2xfY291bnQsIHdpZHRoX3dyYXAsIG9wdF9ib3JkZXIsCkBAIC05NDUsNyArOTQ1LDcgQEAgcHJp bnRfYWxpZ25lZF90ZXh0KGNvbnN0IHByaW50VGFibGVDb250ZW50ICpjb250LCBGSUxFICpmb3V0 LCBib29sIGlzX3BhZ2VyKQogCQkJCQkJCSBjb2xfbGluZXB0cnNbaV0sIG1heF9ubF9saW5lc1tp XSk7CiAKIAkJCW1vcmVfY29sX3dyYXBwaW5nID0gY29sX2NvdW50OwotCQkJY3Vycl9ubF9saW5l ID0gMDsKKwkJCWN1cnJfbGluZSA9IDA7CiAJCQlpZiAoY29sX2NvdW50ID4gMCkKIAkJCQltZW1z ZXQoaGVhZGVyX2RvbmUsIGZhbHNlLCBjb2xfY291bnQgKiBzaXplb2YoYm9vbCkpOwogCQkJd2hp bGUgKG1vcmVfY29sX3dyYXBwaW5nKQpAQCAtOTU1LDEyICs5NTUsMTIgQEAgcHJpbnRfYWxpZ25l ZF90ZXh0KGNvbnN0IHByaW50VGFibGVDb250ZW50ICpjb250LCBGSUxFICpmb3V0LCBib29sIGlz X3BhZ2VyKQogCiAJCQkJZm9yIChpID0gMDsgaSA8IGNvbnQtPm5jb2x1bW5zOyBpKyspCiAJCQkJ ewotCQkJCQlzdHJ1Y3QgbGluZXB0ciAqdGhpc19saW5lID0gY29sX2xpbmVwdHJzW2ldICsgY3Vy cl9ubF9saW5lOworCQkJCQlzdHJ1Y3QgbGluZXB0ciAqdGhpc19saW5lID0gY29sX2xpbmVwdHJz W2ldICsgY3Vycl9saW5lOwogCQkJCQl1bnNpZ25lZCBpbnQgbmJzcGFjZTsKIAogCQkJCQlpZiAo b3B0X2JvcmRlciAhPSAwIHx8CiAJCQkJCQkoIWZvcm1hdC0+d3JhcF9yaWdodF9ib3JkZXIgJiYg aSA+IDApKQotCQkJCQkJZnB1dHMoY3Vycl9ubF9saW5lID8gZm9ybWF0LT5oZWFkZXJfbmxfbGVm dCA6ICIgIiwKKwkJCQkJCWZwdXRzKGN1cnJfbGluZSA/IGZvcm1hdC0+aGVhZGVyX25sX2xlZnQg OiAiICIsCiAJCQkJCQkJICBmb3V0KTsKIAogCQkJCQlpZiAoIWhlYWRlcl9kb25lW2ldKQpAQCAt OTg3LDcgKzk4Nyw3IEBAIHByaW50X2FsaWduZWRfdGV4dChjb25zdCBwcmludFRhYmxlQ29udGVu dCAqY29udCwgRklMRSAqZm91dCwgYm9vbCBpc19wYWdlcikKIAkJCQkJaWYgKG9wdF9ib3JkZXIg IT0gMCAmJiBjb2xfY291bnQgPiAwICYmIGkgPCBjb2xfY291bnQgLSAxKQogCQkJCQkJZnB1dHMo ZGZvcm1hdC0+bWlkdnJ1bGUsIGZvdXQpOwogCQkJCX0KLQkJCQljdXJyX25sX2xpbmUrKzsKKwkJ CQljdXJyX2xpbmUrKzsKIAogCQkJCWlmIChvcHRfYm9yZGVyID09IDIpCiAJCQkJCWZwdXRzKGRm b3JtYXQtPnJpZ2h0dnJ1bGUsIGZvdXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtY29ubmVjdC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCmluZGV4 IGMzYTI0NDhkY2U1Li4yNDE4NWEyNjAyZCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtY29ubmVjdC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwpA QCAtMzk5OSw3ICszOTk5LDcgQEAga2VlcF9nb2luZzoJCQkJCQkvKiBXZSB3aWxsIGNvbWUgYmFj ayB0byBoZXJlIHVudGlsIHRoZXJlIGlzCiAJCQkJaW50CQkJbXNnTGVuZ3RoOwogCQkJCWludAkJ CWF2YWlsOwogCQkJCUF1dGhSZXF1ZXN0IGFyZXE7Ci0JCQkJaW50CQkJcmVzOworCQkJCWludAkJ CXN0YXR1czsKIAkJCQlib29sCQlhc3luYzsKIAogCQkJCS8qCkBAIC00MTk4LDkgKzQxOTgsOSBA QCBrZWVwX2dvaW5nOgkJCQkJCS8qIFdlIHdpbGwgY29tZSBiYWNrIHRvIGhlcmUgdW50aWwgdGhl cmUgaXMKIAkJCQkgKiBOb3RlIHRoYXQgY29ubi0+cGdob3N0IG11c3QgYmUgbm9uLU5VTEwgaWYg d2UgYXJlIGdvaW5nIHRvCiAJCQkJICogYXZvaWQgdGhlIEtlcmJlcm9zIGNvZGUgZG9pbmcgYSBo b3N0bmFtZSBsb29rLXVwLgogCQkJCSAqLwotCQkJCXJlcyA9IHBnX2ZlX3NlbmRhdXRoKGFyZXEs IG1zZ0xlbmd0aCwgY29ubiwgJmFzeW5jKTsKKwkJCQlzdGF0dXMgPSBwZ19mZV9zZW5kYXV0aChh cmVxLCBtc2dMZW5ndGgsIGNvbm4sICZhc3luYyk7CiAKLQkJCQlpZiAoYXN5bmMgJiYgKHJlcyA9 PSBTVEFUVVNfT0spKQorCQkJCWlmIChhc3luYyAmJiAoc3RhdHVzID09IFNUQVRVU19PSykpCiAJ CQkJewogCQkJCQkvKgogCQkJCQkgKiBXZSdsbCBjb21lIGJhY2sgbGF0ZXIgb25jZSB3ZSdyZSBy ZWFkeSB0byByZXNwb25kLgpAQCAtNDIxNyw3ICs0MjE3LDcgQEAga2VlcF9nb2luZzoJCQkJCQkv KiBXZSB3aWxsIGNvbWUgYmFjayB0byBoZXJlIHVudGlsIHRoZXJlIGlzCiAJCQkJICovCiAJCQkJ Y29ubi0+aW5TdGFydCA9IGNvbm4tPmluQ3Vyc29yOwogCi0JCQkJaWYgKHJlcyAhPSBTVEFUVVNf T0spCisJCQkJaWYgKHN0YXR1cyAhPSBTVEFUVVNfT0spCiAJCQkJewogCQkJCQkvKgogCQkJCQkg KiBPQXV0aCBjb25uZWN0aW9ucyBtYXkgcGVyZm9ybSB0d28tc3RlcCBkaXNjb3ZlcnksIHdoZXJl Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0001-cleanup-rename-loop-variables-to-avoid-local-shad.patch" Content-Disposition: attachment; filename="v5-0001-cleanup-rename-loop-variables-to-avoid-local-shad.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trga0 RnJvbSA3YTZiOGE1YjIxZGFmYTU1MTY0MThjZDZkMDk4NDZhODlmZDc2NDc2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDA5OjIyOjQ3ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAwMS8x M10gY2xlYW51cDogcmVuYW1lIGxvb3AgdmFyaWFibGVzIHRvIGF2b2lkIGxvY2FsCiBzaGFkb3dp bmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClRoaXMgY29tbWl0IGFkanVzdHMg c2V2ZXJhbCBjb2RlIGxvY2F0aW9ucyB3aGVyZSBhIGxvY2FsIHZhcmlhYmxlIHdhcwpzaGFkb3dl ZCBieSBhbm90aGVyIGluIHRoZSBzYW1lIHNjb3BlLiBUaGUgY2hhbmdlcyB1cGRhdGUgbG9vcC12 YXJpYWJsZQpuYW1lcyBpbiBiYXNlYmFja3VwX2luY3JlbWVudGFsLmMgYW5kIHBhcnNlX3Rhcmdl dC5jIHNvIHRoYXQgZWFjaAp2YXJpYWJsZSBpcyB1bmlxdWVseSBzY29wZWQgd2l0aGluIGl0cyBi bG9jay4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hnby5jb20+ClJldmlld2VkLWJ5OiBQZXRl ciBTbWl0aCA8c21pdGhwYjIyNTBAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogw4FsdmFybyBIZXJy ZXJhIDxhbHZoZXJyZUBrdXJpbGVtdS5kZT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQUVvV3gya1EyeDVnTWFqOHRITEozPWpmQytwNVlYSGtKeUhyRFRpUXcybm4yRkpUbVFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cF9pbmNyZW1lbnRh bC5jIHwgMTAgKysrKy0tLS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAg ICAgICAgICB8IDEwICsrKystLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCsp LCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJh Y2t1cF9pbmNyZW1lbnRhbC5jIGIvc3JjL2JhY2tlbmQvYmFja3VwL2Jhc2ViYWNrdXBfaW5jcmVt ZW50YWwuYwppbmRleCA4NTJhYjU3NzA0NS4uODQ0ZDczMTljODIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2JhY2t1cC9iYXNlYmFja3VwX2luY3JlbWVudGFsLmMKKysrIGIvc3JjL2JhY2tlbmQv YmFja3VwL2Jhc2ViYWNrdXBfaW5jcmVtZW50YWwuYwpAQCAtMjcwLDcgKzI3MCw2IEBAIFByZXBh cmVGb3JJbmNyZW1lbnRhbEJhY2t1cChJbmNyZW1lbnRhbEJhY2t1cEluZm8gKmliLAogCUxpc3RD ZWxsICAgKmxjOwogCVRpbWVMaW5lSGlzdG9yeUVudHJ5ICoqdGxlcDsKIAlpbnQJCQludW1fd2Fs X3JhbmdlczsKLQlpbnQJCQlpOwogCWJvb2wJCWZvdW5kX2JhY2t1cF9zdGFydF90bGkgPSBmYWxz ZTsKIAlUaW1lTGluZUlECWVhcmxpZXN0X3dhbF9yYW5nZV90bGkgPSAwOwogCVhMb2dSZWNQdHIJ ZWFybGllc3Rfd2FsX3JhbmdlX3N0YXJ0X2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwpAQCAtMzEy LDcgKzMxMSw3IEBAIFByZXBhcmVGb3JJbmNyZW1lbnRhbEJhY2t1cChJbmNyZW1lbnRhbEJhY2t1 cEluZm8gKmliLAogCSAqLwogCWV4cGVjdGVkVExFcyA9IHJlYWRUaW1lTGluZUhpc3RvcnkoYmFj a3VwX3N0YXRlLT5zdGFydHRsaSk7CiAJdGxlcCA9IHBhbGxvYzAobnVtX3dhbF9yYW5nZXMgKiBz aXplb2YoVGltZUxpbmVIaXN0b3J5RW50cnkgKikpOwotCWZvciAoaSA9IDA7IGkgPCBudW1fd2Fs X3JhbmdlczsgKytpKQorCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3dhbF9yYW5nZXM7ICsraSkK IAl7CiAJCWJhY2t1cF93YWxfcmFuZ2UgKnJhbmdlID0gbGlzdF9udGgoaWItPm1hbmlmZXN0X3dh bF9yYW5nZXMsIGkpOwogCQlib29sCQlzYXdfZWFybGllc3Rfd2FsX3JhbmdlX3RsaSA9IGZhbHNl OwpAQCAtNDAwLDcgKzM5OSw3IEBAIFByZXBhcmVGb3JJbmNyZW1lbnRhbEJhY2t1cChJbmNyZW1l bnRhbEJhY2t1cEluZm8gKmliLAogCSAqIGFueXRoaW5nIGhlcmUuIEhvd2V2ZXIsIGlmIHRoZXJl J3MgYSBwcm9ibGVtIHN0YXJpbmcgdXMgcmlnaHQgaW4gdGhlCiAJICogZmFjZSwgaXQncyBiZXN0 IHRvIHJlcG9ydCBpdCwgc28gd2UgZG8uCiAJICovCi0JZm9yIChpID0gMDsgaSA8IG51bV93YWxf cmFuZ2VzOyArK2kpCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fd2FsX3JhbmdlczsgKytpKQog CXsKIAkJYmFja3VwX3dhbF9yYW5nZSAqcmFuZ2UgPSBsaXN0X250aChpYi0+bWFuaWZlc3Rfd2Fs X3JhbmdlcywgaSk7CiAKQEAgLTU5NSwxNSArNTk0LDE0IEBAIFByZXBhcmVGb3JJbmNyZW1lbnRh bEJhY2t1cChJbmNyZW1lbnRhbEJhY2t1cEluZm8gKmliLAogCiAJCQl3aGlsZSAoMSkKIAkJCXsK LQkJCQl1bnNpZ25lZAluYmxvY2tzOwotCQkJCXVuc2lnbmVkCWk7CisJCQkJdW5zaWduZWQgaW50 IG5ibG9ja3M7CiAKIAkJCQluYmxvY2tzID0gQmxvY2tSZWZUYWJsZVJlYWRlckdldEJsb2Nrcyhy ZWFkZXIsIGJsb2NrcywKIAkJCQkJCQkJCQkJCQkgICBCTE9DS1NfUEVSX1JFQUQpOwogCQkJCWlm IChuYmxvY2tzID09IDApCiAJCQkJCWJyZWFrOwogCi0JCQkJZm9yIChpID0gMDsgaSA8IG5ibG9j a3M7ICsraSkKKwkJCQlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG5ibG9ja3M7ICsraSkK IAkJCQkJQmxvY2tSZWZUYWJsZU1hcmtCbG9ja01vZGlmaWVkKGliLT5icnRhYiwgJnJsb2NhdG9y LAogCQkJCQkJCQkJCQkJICAgZm9ya251bSwgYmxvY2tzW2ldKTsKIAkJCX0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgzYi4uMDQ2Zjk2ZDQxMzIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTE2MDksMTAgKzE2MDksOSBAQCBleHBhbmRSZWNvcmRWYXJp YWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIFZhciAqdmFyLCBpbnQgbGV2ZWxzdXApCiAJCQkJCSAq IHN1YnNlbGVjdCBtdXN0IGhhdmUgdGhhdCBvdXRlciBsZXZlbCBhcyBwYXJlbnQuCiAJCQkJCSAq LwogCQkJCQlQYXJzZVN0YXRlCW15cHN0YXRlID0gezB9OwotCQkJCQlJbmRleAkJbGV2ZWxzdXA7 CiAKIAkJCQkJLyogdGhpcyBsb29wIG11c3Qgd29yaywgc2luY2UgR2V0UlRFQnlSYW5nZVRhYmxl UG9zbiBkaWQgKi8KLQkJCQkJZm9yIChsZXZlbHN1cCA9IDA7IGxldmVsc3VwIDwgbmV0bGV2ZWxz dXA7IGxldmVsc3VwKyspCisJCQkJCWZvciAoSW5kZXggbGV2ZWwgPSAwOyBsZXZlbCA8IG5ldGxl dmVsc3VwOyBsZXZlbCsrKQogCQkJCQkJcHN0YXRlID0gcHN0YXRlLT5wYXJlbnRQYXJzZVN0YXRl OwogCQkJCQlteXBzdGF0ZS5wYXJlbnRQYXJzZVN0YXRlID0gcHN0YXRlOwogCQkJCQlteXBzdGF0 ZS5wX3J0YWJsZSA9IHJ0ZS0+c3VicXVlcnktPnJ0YWJsZTsKQEAgLTE2NjcsMTIgKzE2NjYsMTEg QEAgZXhwYW5kUmVjb3JkVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBWYXIgKnZhciwgaW50 IGxldmVsc3VwKQogCQkJCQkgKiBjb3VsZCBiZSBhbiBvdXRlciBDVEUgKGNvbXBhcmUgU1VCUVVF UlkgY2FzZSBhYm92ZSkuCiAJCQkJCSAqLwogCQkJCQlQYXJzZVN0YXRlCW15cHN0YXRlID0gezB9 OwotCQkJCQlJbmRleAkJbGV2ZWxzdXA7CiAKIAkJCQkJLyogdGhpcyBsb29wIG11c3Qgd29yaywg c2luY2UgR2V0Q1RFRm9yUlRFIGRpZCAqLwotCQkJCQlmb3IgKGxldmVsc3VwID0gMDsKLQkJCQkJ CSBsZXZlbHN1cCA8IHJ0ZS0+Y3RlbGV2ZWxzdXAgKyBuZXRsZXZlbHN1cDsKLQkJCQkJCSBsZXZl bHN1cCsrKQorCQkJCQlmb3IgKEluZGV4IGxldmVsID0gMDsKKwkJCQkJCSBsZXZlbCA8IHJ0ZS0+ Y3RlbGV2ZWxzdXAgKyBuZXRsZXZlbHN1cDsKKwkJCQkJCSBsZXZlbCsrKQogCQkJCQkJcHN0YXRl ID0gcHN0YXRlLT5wYXJlbnRQYXJzZVN0YXRlOwogCQkJCQlteXBzdGF0ZS5wYXJlbnRQYXJzZVN0 YXRlID0gcHN0YXRlOwogCQkJCQlteXBzdGF0ZS5wX3J0YWJsZSA9ICgoUXVlcnkgKikgY3RlLT5j dGVxdWVyeSktPnJ0YWJsZTsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0007-cleanup-rename-local-progname-variables-to-avoid-.patch" Content-Disposition: attachment; filename="v5-0007-cleanup-rename-local-progname-variables-to-avoid-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trgh6 RnJvbSAzMjIyNzJkYjRiYjllOTkxMDM1Y2Q4OTgwYzZkMmE0OTVjMjE2NmUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE0OjU5OjQzICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAwNy8x M10gY2xlYW51cDogcmVuYW1lIGxvY2FsIHByb2duYW1lIHZhcmlhYmxlcyB0byBhdm9pZAogc2hh ZG93aW5nIHRoZSBnbG9iYWwKClRoaXMgY29tbWl0IHVwZGF0ZXMgYWxsIGZ1bmN0aW9ucyB0aGF0 IGRlY2xhcmVkIGEgbG9jYWwgdmFyaWFibGUgbmFtZWQKJ3Byb2duYW1lJywgcmVuYW1pbmcgZWFj aCB0byAnbXlwcm9nbmFtZScuIFRoZSBjaGFuZ2UgcHJldmVudHMgc2hhZG93aW5nCm9mIHRoZSBn bG9iYWwgcHJvZ25hbWUgdmFyaWFibGUgYW5kIGtlZXBzIGlkZW50aWZpZXIgdXNhZ2UgdW5hbWJp Z3VvdXMKd2l0aGluIGVhY2ggc2NvcGUuCgpBIGZldyBhZGRpdGlvbmFsIHNoYWRvd2luZyBmaXhl cyBpbiB0aGUgc2FtZSBmaWxlcyBhcmUgaW5jbHVkZWQgYXMgd2VsbC4KVGhlc2UgdW5yZWxhdGVk IGNhc2VzIGFyZSBhZGRyZXNzZWQgaGVyZSBvbmx5IGJlY2F1c2UgdGhleSBvY2N1ciBpbiB0aGUK c2FtZSBjb2RlIGxvY2F0aW9ucyB0b3VjaGVkIGJ5IHRoZSBwcm9nbmFtZSBjaGFuZ2UsIGFuZCBi dW5kbGluZyB0aGVtCmtlZXBzIHRoZSBjb21taXQgc2VsZi1jb250YWluZWQuCgpBdXRob3I6IENo YW8gTGkgPGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NB RW9XeDJrUTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5SHJEVGlRdzJubjJGSlRtUUBtYWlsLmdt YWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYyAgICAgICAgICAg fCAgOCArLQogc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMgICAgICAgICAgICAgICAgICAgICB8IDE0 ICsrLS0KIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5jICAgICAgICAgICAgICAgICAgICAgfCA2MCAr KysrKysrLS0tLS0tLQogc3JjL2Jpbi9wZ19hbWNoZWNrL3BnX2FtY2hlY2suYyAgICAgICAgICAg ICB8ICA2ICstCiBzcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jIHwg MTQgKystLQogc3JjL2Jpbi9wZ19kdW1wL2Nvbm5lY3RkYi5jICAgICAgICAgICAgICAgICB8ICA0 ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgIHwgOTAgKysr KysrKysrKy0tLS0tLS0tLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jICAgICAgICAg ICAgICAgIHwgIDYgKy0KIHNyYy9iaW4vcGdfcmV3aW5kL3BnX3Jld2luZC5jICAgICAgICAgICAg ICAgfCAyMiArKy0tLQogc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2VjcGcuYyAgICAgICAg ICB8ICA2ICstCiAxMCBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgMTE1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYyBi L3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYwppbmRleCBmYzg2MzhjMWI2MS4uZjY0 OWMwMDExM2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYwor KysgYi9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMKQEAgLTIwMCw3ICsyMDAsNyBA QCB2b2lkCiBCb290c3RyYXBNb2RlTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLCBib29sIGNo ZWNrX29ubHkpCiB7CiAJaW50CQkJaTsKLQljaGFyCSAgICpwcm9nbmFtZSA9IGFyZ3ZbMF07CisJ Y2hhcgkgICAqbXlwcm9nbmFtZSA9IGFyZ3ZbMF07CiAJaW50CQkJZmxhZzsKIAljaGFyCSAgICp1 c2VyRG9wdGlvbiA9IE5VTEw7CiAJdWludDMyCQlib290c3RyYXBfZGF0YV9jaGVja3N1bV92ZXJz aW9uID0gMDsJLyogTm8gY2hlY2tzdW0gKi8KQEAgLTI5Niw3ICsyOTYsNyBAQCBCb290c3RyYXBN b2RlTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLCBib29sIGNoZWNrX29ubHkpCiAJCQkJYnJl YWs7CiAJCQlkZWZhdWx0OgogCQkJCXdyaXRlX3N0ZGVycigiVHJ5IFwiJXMgLS1oZWxwXCIgZm9y IG1vcmUgaW5mb3JtYXRpb24uXG4iLAotCQkJCQkJCSBwcm9nbmFtZSk7CisJCQkJCQkJIG15cHJv Z25hbWUpOwogCQkJCXByb2NfZXhpdCgxKTsKIAkJCQlicmVhazsKIAkJfQpAQCAtMzA0LDEyICsz MDQsMTIgQEAgQm9vdHN0cmFwTW9kZU1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgYm9vbCBj aGVja19vbmx5KQogCiAJaWYgKGFyZ2MgIT0gb3B0aW5kKQogCXsKLQkJd3JpdGVfc3RkZXJyKCIl czogaW52YWxpZCBjb21tYW5kLWxpbmUgYXJndW1lbnRzXG4iLCBwcm9nbmFtZSk7CisJCXdyaXRl X3N0ZGVycigiJXM6IGludmFsaWQgY29tbWFuZC1saW5lIGFyZ3VtZW50c1xuIiwgbXlwcm9nbmFt ZSk7CiAJCXByb2NfZXhpdCgxKTsKIAl9CiAKIAkvKiBBY3F1aXJlIGNvbmZpZ3VyYXRpb24gcGFy YW1ldGVycyAqLwotCWlmICghU2VsZWN0Q29uZmlnRmlsZXModXNlckRvcHRpb24sIHByb2duYW1l KSkKKwlpZiAoIVNlbGVjdENvbmZpZ0ZpbGVzKHVzZXJEb3B0aW9uLCBteXByb2duYW1lKSkKIAkJ cHJvY19leGl0KDEpOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL21haW4vbWFpbi5j IGIvc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMKaW5kZXggNzJhYWVlMzZhNjguLmVlYjY0ZDA5NjA4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9tYWluL21haW4uYworKysgYi9zcmMvYmFja2VuZC9t YWluL21haW4uYwpAQCAtMjgxLDcgKzI4MSw3IEBAIHBhcnNlX2Rpc3BhdGNoX29wdGlvbihjb25z dCBjaGFyICpuYW1lKQogICogd2l0aG91dCBoZWxwLiAgQXZvaWQgYWRkaW5nIG1vcmUgaGVyZSwg aWYgeW91IGNhbi4KICAqLwogc3RhdGljIHZvaWQKLXN0YXJ0dXBfaGFja3MoY29uc3QgY2hhciAq cHJvZ25hbWUpCitzdGFydHVwX2hhY2tzKGNvbnN0IGNoYXIgKm15cHJvZ25hbWUpCiB7CiAJLyoK IAkgKiBXaW5kb3dzLXNwZWNpZmljIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBoYWNraW5nLgpAQCAt MzAwLDcgKzMwMCw3IEBAIHN0YXJ0dXBfaGFja3MoY29uc3QgY2hhciAqcHJvZ25hbWUpCiAJCWlm IChlcnIgIT0gMCkKIAkJewogCQkJd3JpdGVfc3RkZXJyKCIlczogV1NBU3RhcnR1cCBmYWlsZWQ6 ICVkXG4iLAotCQkJCQkJIHByb2duYW1lLCBlcnIpOworCQkJCQkJIG15cHJvZ25hbWUsIGVycik7 CiAJCQlleGl0KDEpOwogCQl9CiAKQEAgLTM4NSwxMCArMzg1LDEwIEBAIGluaXRfbG9jYWxlKGNv bnN0IGNoYXIgKmNhdGVnb3J5bmFtZSwgaW50IGNhdGVnb3J5LCBjb25zdCBjaGFyICpsb2NhbGUp CiAgKiBNZXNzYWdlcyBlbWl0dGVkIGluIHdyaXRlX2NvbnNvbGUoKSBkbyBub3QgZXhoaWJpdCB0 aGlzIHByb2JsZW0uCiAgKi8KIHN0YXRpYyB2b2lkCi1oZWxwKGNvbnN0IGNoYXIgKnByb2duYW1l KQoraGVscChjb25zdCBjaGFyICpteXByb2duYW1lKQogewotCXByaW50ZihfKCIlcyBpcyB0aGUg UG9zdGdyZVNRTCBzZXJ2ZXIuXG5cbiIpLCBwcm9nbmFtZSk7Ci0JcHJpbnRmKF8oIlVzYWdlOlxu ICAlcyBbT1BUSU9OXS4uLlxuXG4iKSwgcHJvZ25hbWUpOworCXByaW50ZihfKCIlcyBpcyB0aGUg UG9zdGdyZVNRTCBzZXJ2ZXIuXG5cbiIpLCBteXByb2duYW1lKTsKKwlwcmludGYoXygiVXNhZ2U6 XG4gICVzIFtPUFRJT05dLi4uXG5cbiIpLCBteXByb2duYW1lKTsKIAlwcmludGYoXygiT3B0aW9u czpcbiIpKTsKIAlwcmludGYoXygiICAtQiBOQlVGRkVSUyAgICAgICAgbnVtYmVyIG9mIHNoYXJl ZCBidWZmZXJzXG4iKSk7CiAJcHJpbnRmKF8oIiAgLWMgTkFNRT1WQUxVRSAgICAgIHNldCBydW4t dGltZSBwYXJhbWV0ZXJcbiIpKTsKQEAgLTQ0NCw3ICs0NDQsNyBAQCBoZWxwKGNvbnN0IGNoYXIg KnByb2duYW1lKQogCiAKIHN0YXRpYyB2b2lkCi1jaGVja19yb290KGNvbnN0IGNoYXIgKnByb2du YW1lKQorY2hlY2tfcm9vdChjb25zdCBjaGFyICpteXByb2duYW1lKQogewogI2lmbmRlZiBXSU4z MgogCWlmIChnZXRldWlkKCkgPT0gMCkKQEAgLTQ2Nyw3ICs0NjcsNyBAQCBjaGVja19yb290KGNv bnN0IGNoYXIgKnByb2duYW1lKQogCWlmIChnZXR1aWQoKSAhPSBnZXRldWlkKCkpCiAJewogCQl3 cml0ZV9zdGRlcnIoIiVzOiByZWFsIGFuZCBlZmZlY3RpdmUgdXNlciBJRHMgbXVzdCBtYXRjaFxu IiwKLQkJCQkJIHByb2duYW1lKTsKKwkJCQkJIG15cHJvZ25hbWUpOwogCQlleGl0KDEpOwogCX0K ICNlbHNlCQkJCQkJCS8qIFdJTjMyICovCmRpZmYgLS1naXQgYS9zcmMvYmluL2luaXRkYi9pbml0 ZGIuYyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCmluZGV4IDkyZmUyZjUzMWY3Li5kOGU5NWNh MmZlMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jpbi9p bml0ZGIvaW5pdGRiLmMKQEAgLTgxNCw3ICs4MTQsNyBAQCBjbGVhbnVwX2RpcmVjdG9yaWVzX2F0 ZXhpdCh2b2lkKQogc3RhdGljIGNoYXIgKgogZ2V0X2lkKHZvaWQpCiB7Ci0JY29uc3QgY2hhciAq dXNlcm5hbWU7CisJY29uc3QgY2hhciAqdXNlcjsKIAogI2lmbmRlZiBXSU4zMgogCWlmIChnZXRl dWlkKCkgPT0gMCkJCQkvKiAwIGlzIHJvb3QncyB1aWQgKi8KQEAgLTgyNSw5ICs4MjUsOSBAQCBn ZXRfaWQodm9pZCkKIAl9CiAjZW5kaWYKIAotCXVzZXJuYW1lID0gZ2V0X3VzZXJfbmFtZV9vcl9l eGl0KHByb2duYW1lKTsKKwl1c2VyID0gZ2V0X3VzZXJfbmFtZV9vcl9leGl0KHByb2duYW1lKTsK IAotCXJldHVybiBwZ19zdHJkdXAodXNlcm5hbWUpOworCXJldHVybiBwZ19zdHJkdXAodXNlcik7 CiB9CiAKIHN0YXRpYyBjaGFyICoKQEAgLTEwNDYsMTQgKzEwNDYsMTQgQEAgd3JpdGVfdmVyc2lv bl9maWxlKGNvbnN0IGNoYXIgKmV4dHJhcGF0aCkKIHN0YXRpYyB2b2lkCiBzZXRfbnVsbF9jb25m KHZvaWQpCiB7Ci0JRklMRQkgICAqY29uZl9maWxlOworCUZJTEUJICAgKmZpbGU7CiAJY2hhcgkg ICAqcGF0aDsKIAogCXBhdGggPSBwc3ByaW50ZigiJXMvcG9zdGdyZXNxbC5jb25mIiwgcGdfZGF0 YSk7Ci0JY29uZl9maWxlID0gZm9wZW4ocGF0aCwgUEdfQklOQVJZX1cpOwotCWlmIChjb25mX2Zp bGUgPT0gTlVMTCkKKwlmaWxlID0gZm9wZW4ocGF0aCwgUEdfQklOQVJZX1cpOworCWlmIChmaWxl ID09IE5VTEwpCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIiBmb3Igd3Jp dGluZzogJW0iLCBwYXRoKTsKLQlpZiAoZmNsb3NlKGNvbmZfZmlsZSkpCisJaWYgKGZjbG9zZShm aWxlKSkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCB3cml0ZSBmaWxlIFwiJXNcIjogJW0iLCBwYXRo KTsKIAlmcmVlKHBhdGgpOwogfQpAQCAtMjEzNyw3ICsyMTM3LDcgQEAgbXlfc3RyZnRpbWUoY2hh ciAqcywgc2l6ZV90IG1heCwgY29uc3QgY2hhciAqZm10LCBjb25zdCBzdHJ1Y3QgdG0gKnRtKQog ICogRGV0ZXJtaW5lIGxpa2VseSBkYXRlIG9yZGVyIGZyb20gbG9jYWxlCiAgKi8KIHN0YXRpYyBp bnQKLWxvY2FsZV9kYXRlX29yZGVyKGNvbnN0IGNoYXIgKmxvY2FsZSkKK2xvY2FsZV9kYXRlX29y ZGVyKGNvbnN0IGNoYXIgKm15bG9jYWxlKQogewogCXN0cnVjdCB0bQl0ZXN0dGltZTsKIAljaGFy CQlidWZbMTI4XTsKQEAgLTIxNTIsNyArMjE1Miw3IEBAIGxvY2FsZV9kYXRlX29yZGVyKGNvbnN0 IGNoYXIgKmxvY2FsZSkKIAogCXNhdmUgPSBzYXZlX2dsb2JhbF9sb2NhbGUoTENfVElNRSk7CiAK LQlzZXRsb2NhbGUoTENfVElNRSwgbG9jYWxlKTsKKwlzZXRsb2NhbGUoTENfVElNRSwgbXlsb2Nh bGUpOwogCiAJbWVtc2V0KCZ0ZXN0dGltZSwgMCwgc2l6ZW9mKHRlc3R0aW1lKSk7CiAJdGVzdHRp bWUudG1fbWRheSA9IDIyOwpAQCAtMjE5NiwxNCArMjE5NiwxNCBAQCBsb2NhbGVfZGF0ZV9vcmRl cihjb25zdCBjaGFyICpsb2NhbGUpCiAgKiB0aGlzIHNob3VsZCBtYXRjaCB0aGUgYmFja2VuZCdz IGNoZWNrX2xvY2FsZSgpIGZ1bmN0aW9uCiAgKi8KIHN0YXRpYyB2b2lkCi1jaGVja19sb2NhbGVf bmFtZShpbnQgY2F0ZWdvcnksIGNvbnN0IGNoYXIgKmxvY2FsZSwgY2hhciAqKmNhbm9ubmFtZSkK K2NoZWNrX2xvY2FsZV9uYW1lKGludCBjYXRlZ29yeSwgY29uc3QgY2hhciAqbXlsb2NhbGUsIGNo YXIgKipjYW5vbm5hbWUpCiB7CiAJc2F2ZV9sb2NhbGVfdCBzYXZlOwogCWNoYXIJICAgKnJlczsK IAogCS8qIERvbid0IGxldCBXaW5kb3dzJyBub24tQVNDSUkgbG9jYWxlIG5hbWVzIGluLiAqLwot CWlmIChsb2NhbGUgJiYgIXBnX2lzX2FzY2lpKGxvY2FsZSkpCi0JCXBnX2ZhdGFsKCJsb2NhbGUg bmFtZSBcIiVzXCIgY29udGFpbnMgbm9uLUFTQ0lJIGNoYXJhY3RlcnMiLCBsb2NhbGUpOworCWlm IChteWxvY2FsZSAmJiAhcGdfaXNfYXNjaWkobXlsb2NhbGUpKQorCQlwZ19mYXRhbCgibG9jYWxl IG5hbWUgXCIlc1wiIGNvbnRhaW5zIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIiwgbXlsb2NhbGUpOwog CiAJaWYgKGNhbm9ubmFtZSkKIAkJKmNhbm9ubmFtZSA9IE5VTEw7CQkvKiBpbiBjYXNlIG9mIGZh aWx1cmUgKi8KQEAgLTIyMTEsMTEgKzIyMTEsMTEgQEAgY2hlY2tfbG9jYWxlX25hbWUoaW50IGNh dGVnb3J5LCBjb25zdCBjaGFyICpsb2NhbGUsIGNoYXIgKipjYW5vbm5hbWUpCiAJc2F2ZSA9IHNh dmVfZ2xvYmFsX2xvY2FsZShjYXRlZ29yeSk7CiAKIAkvKiBmb3Igc2V0bG9jYWxlKCkgY2FsbCAq LwotCWlmICghbG9jYWxlKQotCQlsb2NhbGUgPSAiIjsKKwlpZiAoIW15bG9jYWxlKQorCQlteWxv Y2FsZSA9ICIiOwogCiAJLyogc2V0IHRoZSBsb2NhbGUgd2l0aCBzZXRsb2NhbGUsIHRvIHNlZSBp ZiBpdCBhY2NlcHRzIGl0LiAqLwotCXJlcyA9IHNldGxvY2FsZShjYXRlZ29yeSwgbG9jYWxlKTsK KwlyZXMgPSBzZXRsb2NhbGUoY2F0ZWdvcnksIG15bG9jYWxlKTsKIAogCS8qIHNhdmUgY2Fub25p Y2FsIG5hbWUgaWYgcmVxdWVzdGVkLiAqLwogCWlmIChyZXMgJiYgY2Fub25uYW1lKQpAQCAtMjIy Nyw5ICsyMjI3LDkgQEAgY2hlY2tfbG9jYWxlX25hbWUoaW50IGNhdGVnb3J5LCBjb25zdCBjaGFy ICpsb2NhbGUsIGNoYXIgKipjYW5vbm5hbWUpCiAJLyogY29tcGxhaW4gaWYgbG9jYWxlIHdhc24n dCB2YWxpZCAqLwogCWlmIChyZXMgPT0gTlVMTCkKIAl7Ci0JCWlmICgqbG9jYWxlKQorCQlpZiAo Km15bG9jYWxlKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImludmFsaWQgbG9jYWxlIG5hbWUgXCIl c1wiIiwgbG9jYWxlKTsKKwkJCXBnX2xvZ19lcnJvcigiaW52YWxpZCBsb2NhbGUgbmFtZSBcIiVz XCIiLCBteWxvY2FsZSk7CiAJCQlwZ19sb2dfZXJyb3JfaGludCgiSWYgdGhlIGxvY2FsZSBuYW1l IGlzIHNwZWNpZmljIHRvIElDVSwgdXNlIC0taWN1LWxvY2FsZS4iKTsKIAkJCWV4aXQoMSk7CiAJ CX0KQEAgLTIyNTksMTEgKzIyNTksMTEgQEAgY2hlY2tfbG9jYWxlX25hbWUoaW50IGNhdGVnb3J5 LCBjb25zdCBjaGFyICpsb2NhbGUsIGNoYXIgKipjYW5vbm5hbWUpCiAgKiB0aGlzIHNob3VsZCBt YXRjaCB0aGUgc2ltaWxhciBjaGVjayBpbiB0aGUgYmFja2VuZCBjcmVhdGVkYigpIGZ1bmN0aW9u CiAgKi8KIHN0YXRpYyBib29sCi1jaGVja19sb2NhbGVfZW5jb2RpbmcoY29uc3QgY2hhciAqbG9j YWxlLCBpbnQgdXNlcl9lbmMpCitjaGVja19sb2NhbGVfZW5jb2RpbmcoY29uc3QgY2hhciAqbXls b2NhbGUsIGludCB1c2VyX2VuYykKIHsKIAlpbnQJCQlsb2NhbGVfZW5jOwogCi0JbG9jYWxlX2Vu YyA9IHBnX2dldF9lbmNvZGluZ19mcm9tX2xvY2FsZShsb2NhbGUsIHRydWUpOworCWxvY2FsZV9l bmMgPSBwZ19nZXRfZW5jb2RpbmdfZnJvbV9sb2NhbGUobXlsb2NhbGUsIHRydWUpOwogCiAJLyog U2VlIG5vdGVzIGluIGNyZWF0ZWRiKCkgdG8gdW5kZXJzdGFuZCB0aGVzZSB0ZXN0cyAqLwogCWlm ICghKGxvY2FsZV9lbmMgPT0gdXNlcl9lbmMgfHwKQEAgLTI1MTEsMTEgKzI1MTEsMTEgQEAgc2V0 bG9jYWxlcyh2b2lkKQogICogcHJpbnQgaGVscCB0ZXh0CiAgKi8KIHN0YXRpYyB2b2lkCi11c2Fn ZShjb25zdCBjaGFyICpwcm9nbmFtZSkKK3VzYWdlKGNvbnN0IGNoYXIgKm15cHJvZ25hbWUpCiB7 Ci0JcHJpbnRmKF8oIiVzIGluaXRpYWxpemVzIGEgUG9zdGdyZVNRTCBkYXRhYmFzZSBjbHVzdGVy LlxuXG4iKSwgcHJvZ25hbWUpOworCXByaW50ZihfKCIlcyBpbml0aWFsaXplcyBhIFBvc3RncmVT UUwgZGF0YWJhc2UgY2x1c3Rlci5cblxuIiksIG15cHJvZ25hbWUpOwogCXByaW50ZihfKCJVc2Fn ZTpcbiIpKTsKLQlwcmludGYoXygiICAlcyBbT1BUSU9OXS4uLiBbREFUQURJUl1cbiIpLCBwcm9n bmFtZSk7CisJcHJpbnRmKF8oIiAgJXMgW09QVElPTl0uLi4gW0RBVEFESVJdXG4iKSwgbXlwcm9n bmFtZSk7CiAJcHJpbnRmKF8oIlxuT3B0aW9uczpcbiIpKTsKIAlwcmludGYoXygiICAtQSwgLS1h dXRoPU1FVEhPRCAgICAgICAgIGRlZmF1bHQgYXV0aGVudGljYXRpb24gbWV0aG9kIGZvciBsb2Nh bCBjb25uZWN0aW9uc1xuIikpOwogCXByaW50ZihfKCIgICAgICAtLWF1dGgtaG9zdD1NRVRIT0Qg ICAgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGxvY2FsIFRDUC9JUCBjb25uZWN0 aW9uc1xuIikpOwpAQCAtMjU5MSwxNCArMjU5MSwxNCBAQCBjaGVja19hdXRobWV0aG9kX3ZhbGlk KGNvbnN0IGNoYXIgKmF1dGhtZXRob2QsIGNvbnN0IGNoYXIgKmNvbnN0ICp2YWxpZF9tZXRob2Rz LAogfQogCiBzdGF0aWMgdm9pZAotY2hlY2tfbmVlZF9wYXNzd29yZChjb25zdCBjaGFyICphdXRo bWV0aG9kbG9jYWwsIGNvbnN0IGNoYXIgKmF1dGhtZXRob2Rob3N0KQotewotCWlmICgoc3RyY21w KGF1dGhtZXRob2Rsb2NhbCwgIm1kNSIpID09IDAgfHwKLQkJIHN0cmNtcChhdXRobWV0aG9kbG9j YWwsICJwYXNzd29yZCIpID09IDAgfHwKLQkJIHN0cmNtcChhdXRobWV0aG9kbG9jYWwsICJzY3Jh bS1zaGEtMjU2IikgPT0gMCkgJiYKLQkJKHN0cmNtcChhdXRobWV0aG9kaG9zdCwgIm1kNSIpID09 IDAgfHwKLQkJIHN0cmNtcChhdXRobWV0aG9kaG9zdCwgInBhc3N3b3JkIikgPT0gMCB8fAotCQkg c3RyY21wKGF1dGhtZXRob2Rob3N0LCAic2NyYW0tc2hhLTI1NiIpID09IDApICYmCitjaGVja19u ZWVkX3Bhc3N3b3JkKGNvbnN0IGNoYXIgKm15YXV0aG1ldGhvZGxvY2FsLCBjb25zdCBjaGFyICpt eWF1dGhtZXRob2Rob3N0KQoreworCWlmICgoc3RyY21wKG15YXV0aG1ldGhvZGxvY2FsLCAibWQ1 IikgPT0gMCB8fAorCQkgc3RyY21wKG15YXV0aG1ldGhvZGxvY2FsLCAicGFzc3dvcmQiKSA9PSAw IHx8CisJCSBzdHJjbXAobXlhdXRobWV0aG9kbG9jYWwsICJzY3JhbS1zaGEtMjU2IikgPT0gMCkg JiYKKwkJKHN0cmNtcChteWF1dGhtZXRob2Rob3N0LCAibWQ1IikgPT0gMCB8fAorCQkgc3RyY21w KG15YXV0aG1ldGhvZGhvc3QsICJwYXNzd29yZCIpID09IDAgfHwKKwkJIHN0cmNtcChteWF1dGht ZXRob2Rob3N0LCAic2NyYW0tc2hhLTI1NiIpID09IDApICYmCiAJCSEocHdwcm9tcHQgfHwgcHdm aWxlbmFtZSkpCiAJCXBnX2ZhdGFsKCJtdXN0IHNwZWNpZnkgYSBwYXNzd29yZCBmb3IgdGhlIHN1 cGVydXNlciB0byBlbmFibGUgcGFzc3dvcmQgYXV0aGVudGljYXRpb24iKTsKIH0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfYW1jaGVjay9wZ19hbWNoZWNrLmMgYi9zcmMvYmluL3BnX2FtY2hlY2sv cGdfYW1jaGVjay5jCmluZGV4IDJiMWZkNTY2YzM1Li4wNmE5NzcxMmUxOCAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19hbWNoZWNrL3BnX2FtY2hlY2suYworKysgYi9zcmMvYmluL3BnX2FtY2hlY2sv cGdfYW1jaGVjay5jCkBAIC0xMTgwLDExICsxMTgwLDExIEBAIHZlcmlmeV9idHJlZV9zbG90X2hh bmRsZXIoUEdyZXN1bHQgKnJlcywgUEdjb25uICpjb25uLCB2b2lkICpjb250ZXh0KQogICogcHJv Z25hbWU6IHRoZSBuYW1lIG9mIHRoZSBleGVjdXRlZCBwcm9ncmFtLCBzdWNoIGFzICJwZ19hbWNo ZWNrIgogICovCiBzdGF0aWMgdm9pZAotaGVscChjb25zdCBjaGFyICpwcm9nbmFtZSkKK2hlbHAo Y29uc3QgY2hhciAqbXlwcm9nbmFtZSkKIHsKLQlwcmludGYoXygiJXMgY2hlY2tzIG9iamVjdHMg aW4gYSBQb3N0Z3JlU1FMIGRhdGFiYXNlIGZvciBjb3JydXB0aW9uLlxuXG4iKSwgcHJvZ25hbWUp OworCXByaW50ZihfKCIlcyBjaGVja3Mgb2JqZWN0cyBpbiBhIFBvc3RncmVTUUwgZGF0YWJhc2Ug Zm9yIGNvcnJ1cHRpb24uXG5cbiIpLCBteXByb2duYW1lKTsKIAlwcmludGYoXygiVXNhZ2U6XG4i KSk7Ci0JcHJpbnRmKF8oIiAgJXMgW09QVElPTl0uLi4gW0RCTkFNRV1cbiIpLCBwcm9nbmFtZSk7 CisJcHJpbnRmKF8oIiAgJXMgW09QVElPTl0uLi4gW0RCTkFNRV1cbiIpLCBteXByb2duYW1lKTsK IAlwcmludGYoXygiXG5UYXJnZXQgb3B0aW9uczpcbiIpKTsKIAlwcmludGYoXygiICAtYSwgLS1h bGwgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrIGFsbCBkYXRhYmFzZXNcbiIpKTsKIAlwcmlu dGYoXygiICAtZCwgLS1kYXRhYmFzZT1QQVRURVJOICAgICAgICAgIGNoZWNrIG1hdGNoaW5nIGRh dGFiYXNlKHMpXG4iKSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3Jl YXRlc3Vic2NyaWJlci5jIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmli ZXIuYwppbmRleCA0M2RjNmZmNzY5My4uMDQyMTBlNjBiY2EgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19iYXNl YmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYwpAQCAtMzYzLDMyICszNjMsMzIgQEAgZ2V0X3N1 Yl9jb25uaW5mbyhjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCkKICAq IHBhdGggb2YgdGhlIHByb2duYW1lLgogICovCiBzdGF0aWMgY2hhciAqCi1nZXRfZXhlY19wYXRo KGNvbnN0IGNoYXIgKmFyZ3YwLCBjb25zdCBjaGFyICpwcm9nbmFtZSkKK2dldF9leGVjX3BhdGgo Y29uc3QgY2hhciAqYXJndjAsIGNvbnN0IGNoYXIgKm15cHJvZ25hbWUpCiB7CiAJY2hhcgkgICAq dmVyc2lvbnN0cjsKIAljaGFyCSAgICpleGVjX3BhdGg7CiAJaW50CQkJcmV0OwogCi0JdmVyc2lv bnN0ciA9IHBzcHJpbnRmKCIlcyAoUG9zdGdyZVNRTCkgJXNcbiIsIHByb2duYW1lLCBQR19WRVJT SU9OKTsKKwl2ZXJzaW9uc3RyID0gcHNwcmludGYoIiVzIChQb3N0Z3JlU1FMKSAlc1xuIiwgbXlw cm9nbmFtZSwgUEdfVkVSU0lPTik7CiAJZXhlY19wYXRoID0gcGdfbWFsbG9jKE1BWFBHUEFUSCk7 Ci0JcmV0ID0gZmluZF9vdGhlcl9leGVjKGFyZ3YwLCBwcm9nbmFtZSwgdmVyc2lvbnN0ciwgZXhl Y19wYXRoKTsKKwlyZXQgPSBmaW5kX290aGVyX2V4ZWMoYXJndjAsIG15cHJvZ25hbWUsIHZlcnNp b25zdHIsIGV4ZWNfcGF0aCk7CiAKIAlpZiAocmV0IDwgMCkKIAl7CiAJCWNoYXIJCWZ1bGxfcGF0 aFtNQVhQR1BBVEhdOwogCiAJCWlmIChmaW5kX215X2V4ZWMoYXJndjAsIGZ1bGxfcGF0aCkgPCAw KQotCQkJc3RybGNweShmdWxsX3BhdGgsIHByb2duYW1lLCBzaXplb2YoZnVsbF9wYXRoKSk7CisJ CQlzdHJsY3B5KGZ1bGxfcGF0aCwgbXlwcm9nbmFtZSwgc2l6ZW9mKGZ1bGxfcGF0aCkpOwogCiAJ CWlmIChyZXQgPT0gLTEpCiAJCQlwZ19mYXRhbCgicHJvZ3JhbSBcIiVzXCIgaXMgbmVlZGVkIGJ5 ICVzIGJ1dCB3YXMgbm90IGZvdW5kIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyBcIiVzXCIiLAot CQkJCQkgcHJvZ25hbWUsICJwZ19jcmVhdGVzdWJzY3JpYmVyIiwgZnVsbF9wYXRoKTsKKwkJCQkJ IG15cHJvZ25hbWUsICJwZ19jcmVhdGVzdWJzY3JpYmVyIiwgZnVsbF9wYXRoKTsKIAkJZWxzZQog CQkJcGdfZmF0YWwoInByb2dyYW0gXCIlc1wiIHdhcyBmb3VuZCBieSBcIiVzXCIgYnV0IHdhcyBu b3QgdGhlIHNhbWUgdmVyc2lvbiBhcyAlcyIsCi0JCQkJCSBwcm9nbmFtZSwgZnVsbF9wYXRoLCAi cGdfY3JlYXRlc3Vic2NyaWJlciIpOworCQkJCQkgbXlwcm9nbmFtZSwgZnVsbF9wYXRoLCAicGdf Y3JlYXRlc3Vic2NyaWJlciIpOwogCX0KIAotCXBnX2xvZ19kZWJ1ZygiJXMgcGF0aCBpczogICVz IiwgcHJvZ25hbWUsIGV4ZWNfcGF0aCk7CisJcGdfbG9nX2RlYnVnKCIlcyBwYXRoIGlzOiAgJXMi LCBteXByb2duYW1lLCBleGVjX3BhdGgpOwogCiAJcmV0dXJuIGV4ZWNfcGF0aDsKIH0KZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb25uZWN0ZGIuYyBiL3NyYy9iaW4vcGdfZHVtcC9jb25u ZWN0ZGIuYwppbmRleCBkNTVkNTNkYmVlYS4uYTJhMWJhZDI1NGIgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9jb25uZWN0ZGIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29ubmVjdGRiLmMK QEAgLTM5LDcgKzM5LDcgQEAgc3RhdGljIGNoYXIgKmNvbnN0cnVjdENvbm5TdHIoY29uc3QgY2hh ciAqKmtleXdvcmRzLCBjb25zdCBjaGFyICoqdmFsdWVzKTsKIFBHY29ubiAqCiBDb25uZWN0RGF0 YWJhc2UoY29uc3QgY2hhciAqZGJuYW1lLCBjb25zdCBjaGFyICpjb25uZWN0aW9uX3N0cmluZywK IAkJCQljb25zdCBjaGFyICpwZ2hvc3QsIGNvbnN0IGNoYXIgKnBncG9ydCwgY29uc3QgY2hhciAq cGd1c2VyLAotCQkJCXRyaXZhbHVlIHByb21wdF9wYXNzd29yZCwgYm9vbCBmYWlsX29uX2Vycm9y LCBjb25zdCBjaGFyICpwcm9nbmFtZSwKKwkJCQl0cml2YWx1ZSBwcm9tcHRfcGFzc3dvcmQsIGJv b2wgZmFpbF9vbl9lcnJvciwgY29uc3QgY2hhciAqbXlwcm9nbmFtZSwKIAkJCQljb25zdCBjaGFy ICoqY29ubnN0ciwgaW50ICpzZXJ2ZXJfdmVyc2lvbiwgY2hhciAqcGFzc3dvcmQsCiAJCQkJY2hh ciAqb3ZlcnJpZGVfZGJuYW1lKQogewpAQCAtMjIxLDcgKzIyMSw3IEBAIENvbm5lY3REYXRhYmFz ZShjb25zdCBjaGFyICpkYm5hbWUsIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fc3RyaW5nLAogCXsK IAkJcGdfbG9nX2Vycm9yKCJhYm9ydGluZyBiZWNhdXNlIG9mIHNlcnZlciB2ZXJzaW9uIG1pc21h dGNoIik7CiAJCXBnX2xvZ19lcnJvcl9kZXRhaWwoInNlcnZlciB2ZXJzaW9uOiAlczsgJXMgdmVy c2lvbjogJXMiLAotCQkJCQkJCXJlbW90ZXZlcnNpb25fc3RyLCBwcm9nbmFtZSwgUEdfVkVSU0lP Tik7CisJCQkJCQkJcmVtb3RldmVyc2lvbl9zdHIsIG15cHJvZ25hbWUsIFBHX1ZFUlNJT04pOwog CQlleGl0X25pY2VseSgxKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDI0NDUwODVkYmJkLi5kMmI1 NDkxNmEwZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0xMzAxLDExICsxMzAxLDExIEBAIG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogCiAKIHN0YXRpYyB2b2lkCi1oZWxwKGNvbnN0IGNoYXIgKnByb2du YW1lKQoraGVscChjb25zdCBjaGFyICpteXByb2duYW1lKQogewotCXByaW50ZihfKCIlcyBleHBv cnRzIGEgUG9zdGdyZVNRTCBkYXRhYmFzZSBhcyBhbiBTUUwgc2NyaXB0IG9yIHRvIG90aGVyIGZv cm1hdHMuXG5cbiIpLCBwcm9nbmFtZSk7CisJcHJpbnRmKF8oIiVzIGV4cG9ydHMgYSBQb3N0Z3Jl U1FMIGRhdGFiYXNlIGFzIGFuIFNRTCBzY3JpcHQgb3IgdG8gb3RoZXIgZm9ybWF0cy5cblxuIiks IG15cHJvZ25hbWUpOwogCXByaW50ZihfKCJVc2FnZTpcbiIpKTsKLQlwcmludGYoXygiICAlcyBb T1BUSU9OXS4uLiBbREJOQU1FXVxuIiksIHByb2duYW1lKTsKKwlwcmludGYoXygiICAlcyBbT1BU SU9OXS4uLiBbREJOQU1FXVxuIiksIG15cHJvZ25hbWUpOwogCiAJcHJpbnRmKF8oIlxuR2VuZXJh bCBvcHRpb25zOlxuIikpOwogCXByaW50ZihfKCIgIC1mLCAtLWZpbGU9RklMRU5BTUUgICAgICAg ICAgb3V0cHV0IGZpbGUgb3IgZGlyZWN0b3J5IG5hbWVcbiIpKTsKQEAgLTE2NDksNyArMTY0OSw3 IEBAIHN0YXRpYyB2b2lkCiBleHBhbmRfc2NoZW1hX25hbWVfcGF0dGVybnMoQXJjaGl2ZSAqZm91 dCwKIAkJCQkJCQlTaW1wbGVTdHJpbmdMaXN0ICpwYXR0ZXJucywKIAkJCQkJCQlTaW1wbGVPaWRM aXN0ICpvaWRzLAotCQkJCQkJCWJvb2wgc3RyaWN0X25hbWVzKQorCQkJCQkJCWJvb2wgc3RyaWN0 KQogewogCVBRRXhwQnVmZmVyIHF1ZXJ5OwogCVBHcmVzdWx0ICAgKnJlczsKQEAgLTE2ODUsNyAr MTY4NSw3IEBAIGV4cGFuZF9zY2hlbWFfbmFtZV9wYXR0ZXJucyhBcmNoaXZlICpmb3V0LAogCQl0 ZXJtUFFFeHBCdWZmZXIoJmRiYnVmKTsKIAogCQlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwg cXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7Ci0JCWlmIChzdHJpY3RfbmFtZXMgJiYgUFFu dHVwbGVzKHJlcykgPT0gMCkKKwkJaWYgKHN0cmljdCAmJiBQUW50dXBsZXMocmVzKSA9PSAwKQog CQkJcGdfZmF0YWwoIm5vIG1hdGNoaW5nIHNjaGVtYXMgd2VyZSBmb3VuZCBmb3IgcGF0dGVybiBc IiVzXCIiLCBjZWxsLT52YWwpOwogCiAJCWZvciAoaSA9IDA7IGkgPCBQUW50dXBsZXMocmVzKTsg aSsrKQpAQCAtMTcwOCw3ICsxNzA4LDcgQEAgc3RhdGljIHZvaWQKIGV4cGFuZF9leHRlbnNpb25f bmFtZV9wYXR0ZXJucyhBcmNoaXZlICpmb3V0LAogCQkJCQkJCSAgIFNpbXBsZVN0cmluZ0xpc3Qg KnBhdHRlcm5zLAogCQkJCQkJCSAgIFNpbXBsZU9pZExpc3QgKm9pZHMsCi0JCQkJCQkJICAgYm9v bCBzdHJpY3RfbmFtZXMpCisJCQkJCQkJICAgYm9vbCBzdHJpY3QpCiB7CiAJUFFFeHBCdWZmZXIg cXVlcnk7CiAJUEdyZXN1bHQgICAqcmVzOwpAQCAtMTczOCw3ICsxNzM4LDcgQEAgZXhwYW5kX2V4 dGVuc2lvbl9uYW1lX3BhdHRlcm5zKEFyY2hpdmUgKmZvdXQsCiAJCQkJCSBjZWxsLT52YWwpOwog CiAJCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVT X09LKTsKLQkJaWYgKHN0cmljdF9uYW1lcyAmJiBQUW50dXBsZXMocmVzKSA9PSAwKQorCQlpZiAo c3RyaWN0ICYmIFBRbnR1cGxlcyhyZXMpID09IDApCiAJCQlwZ19mYXRhbCgibm8gbWF0Y2hpbmcg ZXh0ZW5zaW9ucyB3ZXJlIGZvdW5kIGZvciBwYXR0ZXJuIFwiJXNcIiIsIGNlbGwtPnZhbCk7CiAK IAkJZm9yIChpID0gMDsgaSA8IFBRbnR1cGxlcyhyZXMpOyBpKyspCkBAIC0xODEyLDcgKzE4MTIs NyBAQCBleHBhbmRfZm9yZWlnbl9zZXJ2ZXJfbmFtZV9wYXR0ZXJucyhBcmNoaXZlICpmb3V0LAog c3RhdGljIHZvaWQKIGV4cGFuZF90YWJsZV9uYW1lX3BhdHRlcm5zKEFyY2hpdmUgKmZvdXQsCiAJ CQkJCQkgICBTaW1wbGVTdHJpbmdMaXN0ICpwYXR0ZXJucywgU2ltcGxlT2lkTGlzdCAqb2lkcywK LQkJCQkJCSAgIGJvb2wgc3RyaWN0X25hbWVzLCBib29sIHdpdGhfY2hpbGRfdGFibGVzKQorCQkJ CQkJICAgYm9vbCBzdHJpY3QsIGJvb2wgd2l0aF9jaGlsZF90YWJsZXMpCiB7CiAJUFFFeHBCdWZm ZXIgcXVlcnk7CiAJUEdyZXN1bHQgICAqcmVzOwpAQCAtMTg4NCw3ICsxODg0LDcgQEAgZXhwYW5k X3RhYmxlX25hbWVfcGF0dGVybnMoQXJjaGl2ZSAqZm91dCwKIAkJcmVzID0gRXhlY3V0ZVNxbFF1 ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwogCQlQUWNsZWFyKEV4ZWN1 dGVTcWxRdWVyeUZvclNpbmdsZVJvdyhmb3V0LAogCQkJCQkJCQkJCQlBTFdBWVNfU0VDVVJFX1NF QVJDSF9QQVRIX1NRTCkpOwotCQlpZiAoc3RyaWN0X25hbWVzICYmIFBRbnR1cGxlcyhyZXMpID09 IDApCisJCWlmIChzdHJpY3QgJiYgUFFudHVwbGVzKHJlcykgPT0gMCkKIAkJCXBnX2ZhdGFsKCJu byBtYXRjaGluZyB0YWJsZXMgd2VyZSBmb3VuZCBmb3IgcGF0dGVybiBcIiVzXCIiLCBjZWxsLT52 YWwpOwogCiAJCWZvciAoaSA9IDA7IGkgPCBQUW50dXBsZXMocmVzKTsgaSsrKQpAQCAtMTA4NzAs OCArMTA4NzAsOCBAQCBkdW1wQ29tbWVudEV4dGVuZGVkKEFyY2hpdmUgKmZvdXQsIGNvbnN0IGNo YXIgKnR5cGUsCiAJCQkJCWNvbnN0IGNoYXIgKmluaXRkYl9jb21tZW50KQogewogCUR1bXBPcHRp b25zICpkb3B0ID0gZm91dC0+ZG9wdDsKLQlDb21tZW50SXRlbSAqY29tbWVudHM7Ci0JaW50CQkJ bmNvbW1lbnRzOworCUNvbW1lbnRJdGVtICpjb21tZW50X2l0ZW1zOworCWludAkJCW5fY29tbWVu dF9pdGVtczsKIAogCS8qIGRvIG5vdGhpbmcsIGlmIC0tbm8tY29tbWVudHMgaXMgc3VwcGxpZWQg Ki8KIAlpZiAoZG9wdC0+bm9fY29tbWVudHMpCkBAIC0xMDg5MSwxNiArMTA4OTEsMTYgQEAgZHVt cENvbW1lbnRFeHRlbmRlZChBcmNoaXZlICpmb3V0LCBjb25zdCBjaGFyICp0eXBlLAogCX0KIAog CS8qIFNlYXJjaCBmb3IgY29tbWVudHMgYXNzb2NpYXRlZCB3aXRoIGNhdGFsb2dJZCwgdXNpbmcg dGFibGUgKi8KLQluY29tbWVudHMgPSBmaW5kQ29tbWVudHMoY2F0YWxvZ0lkLnRhYmxlb2lkLCBj YXRhbG9nSWQub2lkLAotCQkJCQkJCSAmY29tbWVudHMpOworCW5fY29tbWVudF9pdGVtcyA9IGZp bmRDb21tZW50cyhjYXRhbG9nSWQudGFibGVvaWQsIGNhdGFsb2dJZC5vaWQsCisJCQkJCQkJCSAg ICZjb21tZW50X2l0ZW1zKTsKIAogCS8qIElzIHRoZXJlIG9uZSBtYXRjaGluZyB0aGUgc3ViaWQ/ ICovCi0Jd2hpbGUgKG5jb21tZW50cyA+IDApCisJd2hpbGUgKG5fY29tbWVudF9pdGVtcyA+IDAp CiAJewotCQlpZiAoY29tbWVudHMtPm9ianN1YmlkID09IHN1YmlkKQorCQlpZiAoY29tbWVudF9p dGVtcy0+b2Jqc3ViaWQgPT0gc3ViaWQpCiAJCQlicmVhazsKLQkJY29tbWVudHMrKzsKLQkJbmNv bW1lbnRzLS07CisJCWNvbW1lbnRfaXRlbXMrKzsKKwkJbl9jb21tZW50X2l0ZW1zLS07CiAJfQog CiAJaWYgKGluaXRkYl9jb21tZW50ICE9IE5VTEwpCkBAIC0xMDkxMywxNyArMTA5MTMsMTcgQEAg ZHVtcENvbW1lbnRFeHRlbmRlZChBcmNoaXZlICpmb3V0LCBjb25zdCBjaGFyICp0eXBlLAogCQkg KiBub24tc3VwZXJ1c2VyIHVzZSBvZiBwZ19kdW1wLiAgV2hlbiB0aGUgREJBIGhhcyByZW1vdmVk IGluaXRkYidzCiAJCSAqIGNvbW1lbnQsIHJlcGxpY2F0ZSB0aGF0LgogCQkgKi8KLQkJaWYgKG5j b21tZW50cyA9PSAwKQorCQlpZiAobl9jb21tZW50X2l0ZW1zID09IDApCiAJCXsKLQkJCWNvbW1l bnRzID0gJmVtcHR5X2NvbW1lbnQ7Ci0JCQluY29tbWVudHMgPSAxOworCQkJY29tbWVudF9pdGVt cyA9ICZlbXB0eV9jb21tZW50OworCQkJbl9jb21tZW50X2l0ZW1zID0gMTsKIAkJfQotCQllbHNl IGlmIChzdHJjbXAoY29tbWVudHMtPmRlc2NyLCBpbml0ZGJfY29tbWVudCkgPT0gMCkKLQkJCW5j b21tZW50cyA9IDA7CisJCWVsc2UgaWYgKHN0cmNtcChjb21tZW50X2l0ZW1zLT5kZXNjciwgaW5p dGRiX2NvbW1lbnQpID09IDApCisJCQluX2NvbW1lbnRfaXRlbXMgPSAwOwogCX0KIAogCS8qIElm IGEgY29tbWVudCBleGlzdHMsIGJ1aWxkIENPTU1FTlQgT04gc3RhdGVtZW50ICovCi0JaWYgKG5j b21tZW50cyA+IDApCisJaWYgKG5fY29tbWVudF9pdGVtcyA+IDApCiAJewogCQlQUUV4cEJ1ZmZl ciBxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CiAJCVBRRXhwQnVmZmVyIHRhZyA9IGNyZWF0 ZVBRRXhwQnVmZmVyKCk7CkBAIC0xMDkzMiw3ICsxMDkzMiw3IEBAIGR1bXBDb21tZW50RXh0ZW5k ZWQoQXJjaGl2ZSAqZm91dCwgY29uc3QgY2hhciAqdHlwZSwKIAkJaWYgKG5hbWVzcGFjZSAmJiAq bmFtZXNwYWNlKQogCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIlcy4iLCBmbXRJZChuYW1l c3BhY2UpKTsKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIlcyBJUyAiLCBuYW1lKTsKLQkJ YXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHF1ZXJ5LCBjb21tZW50cy0+ZGVzY3IsIGZvdXQpOworCQlh cHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIGNvbW1lbnRfaXRlbXMtPmRlc2NyLCBmb3V0KTsK IAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICI7XG4iKTsKIAogCQlhcHBlbmRQUUV4cEJ1 ZmZlcih0YWcsICIlcyAlcyIsIHR5cGUsIG5hbWUpOwpAQCAtMTEzODgsOCArMTEzODgsOCBAQCBk dW1wVGFibGVDb21tZW50KEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvLAog CQkJCSBjb25zdCBjaGFyICpyZWx0eXBlbmFtZSkKIHsKIAlEdW1wT3B0aW9ucyAqZG9wdCA9IGZv dXQtPmRvcHQ7Ci0JQ29tbWVudEl0ZW0gKmNvbW1lbnRzOwotCWludAkJCW5jb21tZW50czsKKwlD b21tZW50SXRlbSAqY29tbWVudF9pdGVtczsKKwlpbnQJCQluX2NvbW1lbnRfaXRlbXM7CiAJUFFF eHBCdWZmZXIgcXVlcnk7CiAJUFFFeHBCdWZmZXIgdGFnOwogCkBAIC0xMTQwMiwyMSArMTE0MDIs MjEgQEAgZHVtcFRhYmxlQ29tbWVudChBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRi aW5mbywKIAkJcmV0dXJuOwogCiAJLyogU2VhcmNoIGZvciBjb21tZW50cyBhc3NvY2lhdGVkIHdp dGggcmVsYXRpb24sIHVzaW5nIHRhYmxlICovCi0JbmNvbW1lbnRzID0gZmluZENvbW1lbnRzKHRi aW5mby0+ZG9iai5jYXRJZC50YWJsZW9pZCwKLQkJCQkJCQkgdGJpbmZvLT5kb2JqLmNhdElkLm9p ZCwKLQkJCQkJCQkgJmNvbW1lbnRzKTsKKwluX2NvbW1lbnRfaXRlbXMgPSBmaW5kQ29tbWVudHMo dGJpbmZvLT5kb2JqLmNhdElkLnRhYmxlb2lkLAorCQkJCQkJCQkgICB0YmluZm8tPmRvYmouY2F0 SWQub2lkLAorCQkJCQkJCQkgICAmY29tbWVudF9pdGVtcyk7CiAKIAkvKiBJZiBjb21tZW50cyBl eGlzdCwgYnVpbGQgQ09NTUVOVCBPTiBzdGF0ZW1lbnRzICovCi0JaWYgKG5jb21tZW50cyA8PSAw KQorCWlmIChuX2NvbW1lbnRfaXRlbXMgPD0gMCkKIAkJcmV0dXJuOwogCiAJcXVlcnkgPSBjcmVh dGVQUUV4cEJ1ZmZlcigpOwogCXRhZyA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CiAKLQl3aGlsZSAo bmNvbW1lbnRzID4gMCkKKwl3aGlsZSAobl9jb21tZW50X2l0ZW1zID4gMCkKIAl7Ci0JCWNvbnN0 IGNoYXIgKmRlc2NyID0gY29tbWVudHMtPmRlc2NyOwotCQlpbnQJCQlvYmpzdWJpZCA9IGNvbW1l bnRzLT5vYmpzdWJpZDsKKwkJY29uc3QgY2hhciAqZGVzY3IgPSBjb21tZW50X2l0ZW1zLT5kZXNj cjsKKwkJaW50CQkJb2Jqc3ViaWQgPSBjb21tZW50X2l0ZW1zLT5vYmpzdWJpZDsKIAogCQlpZiAo b2Jqc3ViaWQgPT0gMCkKIAkJewpAQCAtMTE0NjYsOCArMTE0NjYsOCBAQCBkdW1wVGFibGVDb21t ZW50KEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvLAogCQkJCQkJCQkJICAu bkRlcHMgPSAxKSk7CiAJCX0KIAotCQljb21tZW50cysrOwotCQluY29tbWVudHMtLTsKKwkJY29t bWVudF9pdGVtcysrOworCQluX2NvbW1lbnRfaXRlbXMtLTsKIAl9CiAKIAlkZXN0cm95UFFFeHBC dWZmZXIocXVlcnkpOwpAQCAtMTMxMTYsOCArMTMxMTYsOCBAQCBzdGF0aWMgdm9pZAogZHVtcENv bXBvc2l0ZVR5cGVDb2xDb21tZW50cyhBcmNoaXZlICpmb3V0LCBjb25zdCBUeXBlSW5mbyAqdHlp bmZvLAogCQkJCQkJCSBQR3Jlc3VsdCAqcmVzKQogewotCUNvbW1lbnRJdGVtICpjb21tZW50czsK LQlpbnQJCQluY29tbWVudHM7CisJQ29tbWVudEl0ZW0gKmNvbW1lbnRfaXRlbXM7CisJaW50CQkJ bl9jb21tZW50X2l0ZW1zOwogCVBRRXhwQnVmZmVyIHF1ZXJ5OwogCVBRRXhwQnVmZmVyIHRhcmdl dDsKIAlpbnQJCQlpOwpAQCAtMTMxMzEsMTEgKzEzMTMxLDExIEBAIGR1bXBDb21wb3NpdGVUeXBl Q29sQ29tbWVudHMoQXJjaGl2ZSAqZm91dCwgY29uc3QgVHlwZUluZm8gKnR5aW5mbywKIAkJcmV0 dXJuOwogCiAJLyogU2VhcmNoIGZvciBjb21tZW50cyBhc3NvY2lhdGVkIHdpdGggdHlwZSdzIHBn X2NsYXNzIE9JRCAqLwotCW5jb21tZW50cyA9IGZpbmRDb21tZW50cyhSZWxhdGlvblJlbGF0aW9u SWQsIHR5aW5mby0+dHlwcmVsaWQsCi0JCQkJCQkJICZjb21tZW50cyk7CisJbl9jb21tZW50X2l0 ZW1zID0gZmluZENvbW1lbnRzKFJlbGF0aW9uUmVsYXRpb25JZCwgdHlpbmZvLT50eXByZWxpZCwK KwkJCQkJCQkJICAgJmNvbW1lbnRfaXRlbXMpOwogCiAJLyogSWYgbm8gY29tbWVudHMgZXhpc3Qs IHdlJ3JlIGRvbmUgKi8KLQlpZiAobmNvbW1lbnRzIDw9IDApCisJaWYgKG5fY29tbWVudF9pdGVt cyA8PSAwKQogCQlyZXR1cm47CiAKIAkvKiBCdWlsZCBDT01NRU5UIE9OIHN0YXRlbWVudHMgKi8K QEAgLTEzMTQ2LDE0ICsxMzE0NiwxNCBAQCBkdW1wQ29tcG9zaXRlVHlwZUNvbENvbW1lbnRzKEFy Y2hpdmUgKmZvdXQsIGNvbnN0IFR5cGVJbmZvICp0eWluZm8sCiAJaV9hdHRudW0gPSBQUWZudW1i ZXIocmVzLCAiYXR0bnVtIik7CiAJaV9hdHRuYW1lID0gUFFmbnVtYmVyKHJlcywgImF0dG5hbWUi KTsKIAlpX2F0dGlzZHJvcHBlZCA9IFBRZm51bWJlcihyZXMsICJhdHRpc2Ryb3BwZWQiKTsKLQl3 aGlsZSAobmNvbW1lbnRzID4gMCkKKwl3aGlsZSAobl9jb21tZW50X2l0ZW1zID4gMCkKIAl7CiAJ CWNvbnN0IGNoYXIgKmF0dG5hbWU7CiAKIAkJYXR0bmFtZSA9IE5VTEw7CiAJCWZvciAoaSA9IDA7 IGkgPCBudHVwczsgaSsrKQogCQl7Ci0JCQlpZiAoYXRvaShQUWdldHZhbHVlKHJlcywgaSwgaV9h dHRudW0pKSA9PSBjb21tZW50cy0+b2Jqc3ViaWQgJiYKKwkJCWlmIChhdG9pKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX2F0dG51bSkpID09IGNvbW1lbnRfaXRlbXMtPm9ianN1YmlkICYmCiAJCQkJUFFn ZXR2YWx1ZShyZXMsIGksIGlfYXR0aXNkcm9wcGVkKVswXSAhPSAndCcpCiAJCQl7CiAJCQkJYXR0 bmFtZSA9IFBRZ2V0dmFsdWUocmVzLCBpLCBpX2F0dG5hbWUpOwpAQCAtMTMxNjIsNyArMTMxNjIs NyBAQCBkdW1wQ29tcG9zaXRlVHlwZUNvbENvbW1lbnRzKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFR5 cGVJbmZvICp0eWluZm8sCiAJCX0KIAkJaWYgKGF0dG5hbWUpCQkJLyoganVzdCBpbiBjYXNlIHdl IGRvbid0IGZpbmQgaXQgKi8KIAkJewotCQkJY29uc3QgY2hhciAqZGVzY3IgPSBjb21tZW50cy0+ ZGVzY3I7CisJCQljb25zdCBjaGFyICpkZXNjciA9IGNvbW1lbnRfaXRlbXMtPmRlc2NyOwogCiAJ CQlyZXNldFBRRXhwQnVmZmVyKHRhcmdldCk7CiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcih0YXJnZXQs ICJDT0xVTU4gJXMuIiwKQEAgLTEzMTg3LDggKzEzMTg3LDggQEAgZHVtcENvbXBvc2l0ZVR5cGVD b2xDb21tZW50cyhBcmNoaXZlICpmb3V0LCBjb25zdCBUeXBlSW5mbyAqdHlpbmZvLAogCQkJCQkJ CQkJICAubkRlcHMgPSAxKSk7CiAJCX0KIAotCQljb21tZW50cysrOwotCQluY29tbWVudHMtLTsK KwkJY29tbWVudF9pdGVtcysrOworCQluX2NvbW1lbnRfaXRlbXMtLTsKIAl9CiAKIAlkZXN0cm95 UFFFeHBCdWZmZXIocXVlcnkpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3Rv cmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggYzk3NzYzMDZjNWMuLjVm Nzc4ZWM5ZTc3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTUxNywxMSArNTE3LDExIEBAIG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogfQogCiBzdGF0aWMgdm9pZAotdXNhZ2UoY29uc3QgY2hh ciAqcHJvZ25hbWUpCit1c2FnZShjb25zdCBjaGFyICpteXByb2duYW1lKQogewotCXByaW50Zihf KCIlcyByZXN0b3JlcyBhIFBvc3RncmVTUUwgZGF0YWJhc2UgZnJvbSBhbiBhcmNoaXZlIGNyZWF0 ZWQgYnkgcGdfZHVtcC5cblxuIiksIHByb2duYW1lKTsKKwlwcmludGYoXygiJXMgcmVzdG9yZXMg YSBQb3N0Z3JlU1FMIGRhdGFiYXNlIGZyb20gYW4gYXJjaGl2ZSBjcmVhdGVkIGJ5IHBnX2R1bXAu XG5cbiIpLCBteXByb2duYW1lKTsKIAlwcmludGYoXygiVXNhZ2U6XG4iKSk7Ci0JcHJpbnRmKF8o IiAgJXMgW09QVElPTl0uLi4gW0ZJTEVdXG4iKSwgcHJvZ25hbWUpOworCXByaW50ZihfKCIgICVz IFtPUFRJT05dLi4uIFtGSUxFXVxuIiksIG15cHJvZ25hbWUpOwogCiAJcHJpbnRmKF8oIlxuR2Vu ZXJhbCBvcHRpb25zOlxuIikpOwogCXByaW50ZihfKCIgIC1kLCAtLWRibmFtZT1OQU1FICAgICAg ICBjb25uZWN0IHRvIGRhdGFiYXNlIG5hbWVcbiIpKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf cmV3aW5kL3BnX3Jld2luZC5jIGIvc3JjL2Jpbi9wZ19yZXdpbmQvcGdfcmV3aW5kLmMKaW5kZXgg ZTkzNjRkMDRmNzYuLjRiYWNkOWU5ZDM0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Jld2luZC9w Z19yZXdpbmQuYworKysgYi9zcmMvYmluL3BnX3Jld2luZC9wZ19yZXdpbmQuYwpAQCAtODksOSAr ODksOSBAQCBzdGF0aWMgUEdjb25uICpjb25uOwogc3RhdGljIHJld2luZF9zb3VyY2UgKnNvdXJj ZTsKIAogc3RhdGljIHZvaWQKLXVzYWdlKGNvbnN0IGNoYXIgKnByb2duYW1lKQordXNhZ2UoY29u c3QgY2hhciAqbXlwcm9nbmFtZSkKIHsKLQlwcmludGYoXygiJXMgcmVzeW5jaHJvbml6ZXMgYSBQ b3N0Z3JlU1FMIGNsdXN0ZXIgd2l0aCBhbm90aGVyIGNvcHkgb2YgdGhlIGNsdXN0ZXIuXG5cbiIp LCBwcm9nbmFtZSk7CisJcHJpbnRmKF8oIiVzIHJlc3luY2hyb25pemVzIGEgUG9zdGdyZVNRTCBj bHVzdGVyIHdpdGggYW5vdGhlciBjb3B5IG9mIHRoZSBjbHVzdGVyLlxuXG4iKSwgbXlwcm9nbmFt ZSk7CiAJcHJpbnRmKF8oIlVzYWdlOlxuICAlcyBbT1BUSU9OXS4uLlxuXG4iKSwgcHJvZ25hbWUp OwogCXByaW50ZihfKCJPcHRpb25zOlxuIikpOwogCXByaW50ZihfKCIgIC1jLCAtLXJlc3RvcmUt dGFyZ2V0LXdhbCAgICAgICB1c2UgXCJyZXN0b3JlX2NvbW1hbmRcIiBpbiB0YXJnZXQgY29uZmln dXJhdGlvbiB0b1xuIgpAQCAtNTYxLDcgKzU2MSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogICogdGFyZ2V0IGFuZCB0aGUgc291cmNlLgogICovCiBzdGF0aWMgdm9pZAotcGVyZm9y bV9yZXdpbmQoZmlsZW1hcF90ICpmaWxlbWFwLCByZXdpbmRfc291cmNlICpzb3VyY2UsCitwZXJm b3JtX3Jld2luZChmaWxlbWFwX3QgKmZpbGVtYXAsIHJld2luZF9zb3VyY2UgKnJld2luZHNvdXJj ZSwKIAkJCSAgIFhMb2dSZWNQdHIgY2hrcHRyZWMsCiAJCQkgICBUaW1lTGluZUlEIGNoa3B0dGxp LAogCQkJICAgWExvZ1JlY1B0ciBjaGtwdHJlZG8pCkBAIC01OTUsNyArNTk1LDcgQEAgcGVyZm9y bV9yZXdpbmQoZmlsZW1hcF90ICpmaWxlbWFwLCByZXdpbmRfc291cmNlICpzb3VyY2UsCiAJCQl3 aGlsZSAoZGF0YXBhZ2VtYXBfbmV4dChpdGVyLCAmYmxrbm8pKQogCQkJewogCQkJCW9mZnNldCA9 IGJsa25vICogQkxDS1NaOwotCQkJCXNvdXJjZS0+cXVldWVfZmV0Y2hfcmFuZ2Uoc291cmNlLCBl bnRyeS0+cGF0aCwgb2Zmc2V0LCBCTENLU1opOworCQkJCXJld2luZHNvdXJjZS0+cXVldWVfZmV0 Y2hfcmFuZ2UocmV3aW5kc291cmNlLCBlbnRyeS0+cGF0aCwgb2Zmc2V0LCBCTENLU1opOwogCQkJ fQogCQkJcGdfZnJlZShpdGVyKTsKIAkJfQpAQCAtNjA3LDcgKzYwNyw3IEBAIHBlcmZvcm1fcmV3 aW5kKGZpbGVtYXBfdCAqZmlsZW1hcCwgcmV3aW5kX3NvdXJjZSAqc291cmNlLAogCQkJCWJyZWFr OwogCiAJCQljYXNlIEZJTEVfQUNUSU9OX0NPUFk6Ci0JCQkJc291cmNlLT5xdWV1ZV9mZXRjaF9m aWxlKHNvdXJjZSwgZW50cnktPnBhdGgsIGVudHJ5LT5zb3VyY2Vfc2l6ZSk7CisJCQkJcmV3aW5k c291cmNlLT5xdWV1ZV9mZXRjaF9maWxlKHJld2luZHNvdXJjZSwgZW50cnktPnBhdGgsIGVudHJ5 LT5zb3VyY2Vfc2l6ZSk7CiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgRklMRV9BQ1RJT05fVFJVTkNB VEU6CkBAIC02MTUsOSArNjE1LDkgQEAgcGVyZm9ybV9yZXdpbmQoZmlsZW1hcF90ICpmaWxlbWFw LCByZXdpbmRfc291cmNlICpzb3VyY2UsCiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgRklMRV9BQ1RJ T05fQ09QWV9UQUlMOgotCQkJCXNvdXJjZS0+cXVldWVfZmV0Y2hfcmFuZ2Uoc291cmNlLCBlbnRy eS0+cGF0aCwKLQkJCQkJCQkJCQkgIGVudHJ5LT50YXJnZXRfc2l6ZSwKLQkJCQkJCQkJCQkgIGVu dHJ5LT5zb3VyY2Vfc2l6ZSAtIGVudHJ5LT50YXJnZXRfc2l6ZSk7CisJCQkJcmV3aW5kc291cmNl LT5xdWV1ZV9mZXRjaF9yYW5nZShyZXdpbmRzb3VyY2UsIGVudHJ5LT5wYXRoLAorCQkJCQkJCQkJ CQkJZW50cnktPnRhcmdldF9zaXplLAorCQkJCQkJCQkJCQkJZW50cnktPnNvdXJjZV9zaXplIC0g ZW50cnktPnRhcmdldF9zaXplKTsKIAkJCQlicmVhazsKIAogCQkJY2FzZSBGSUxFX0FDVElPTl9S RU1PVkU6CkBAIC02MzUsNyArNjM1LDcgQEAgcGVyZm9ybV9yZXdpbmQoZmlsZW1hcF90ICpmaWxl bWFwLCByZXdpbmRfc291cmNlICpzb3VyY2UsCiAJfQogCiAJLyogQ29tcGxldGUgYW55IHJlbWFp bmluZyByYW5nZS1mZXRjaGVzIHRoYXQgd2UgcXVldWVkIHVwIGFib3ZlLiAqLwotCXNvdXJjZS0+ ZmluaXNoX2ZldGNoKHNvdXJjZSk7CisJcmV3aW5kc291cmNlLT5maW5pc2hfZmV0Y2gocmV3aW5k c291cmNlKTsKIAogCWNsb3NlX3RhcmdldF9maWxlKCk7CiAKQEAgLTY0NSw3ICs2NDUsNyBAQCBw ZXJmb3JtX3Jld2luZChmaWxlbWFwX3QgKmZpbGVtYXAsIHJld2luZF9zb3VyY2UgKnNvdXJjZSwK IAkgKiBGZXRjaCB0aGUgY29udHJvbCBmaWxlIGZyb20gdGhlIHNvdXJjZSBsYXN0LiBUaGlzIGVu c3VyZXMgdGhhdCB0aGUKIAkgKiBtaW5SZWNvdmVyeVBvaW50IGlzIHVwLXRvLWRhdGUuCiAJICov Ci0JYnVmZmVyID0gc291cmNlLT5mZXRjaF9maWxlKHNvdXJjZSwgWExPR19DT05UUk9MX0ZJTEUs ICZzaXplKTsKKwlidWZmZXIgPSByZXdpbmRzb3VyY2UtPmZldGNoX2ZpbGUocmV3aW5kc291cmNl LCBYTE9HX0NPTlRST0xfRklMRSwgJnNpemUpOwogCWRpZ2VzdENvbnRyb2xGaWxlKCZDb250cm9s RmlsZV9zb3VyY2VfYWZ0ZXIsIGJ1ZmZlciwgc2l6ZSk7CiAJcGdfZnJlZShidWZmZXIpOwogCkBA IC03MTcsNyArNzE3LDcgQEAgcGVyZm9ybV9yZXdpbmQoZmlsZW1hcF90ICpmaWxlbWFwLCByZXdp bmRfc291cmNlICpzb3VyY2UsCiAJCQlpZiAoQ29udHJvbEZpbGVfc291cmNlX2FmdGVyLnN0YXRl ICE9IERCX0lOX1BST0RVQ1RJT04pCiAJCQkJcGdfZmF0YWwoInNvdXJjZSBzeXN0ZW0gd2FzIGlu IHVuZXhwZWN0ZWQgc3RhdGUgYXQgZW5kIG9mIHJld2luZCIpOwogCi0JCQllbmRyZWMgPSBzb3Vy Y2UtPmdldF9jdXJyZW50X3dhbF9pbnNlcnRfbHNuKHNvdXJjZSk7CisJCQllbmRyZWMgPSByZXdp bmRzb3VyY2UtPmdldF9jdXJyZW50X3dhbF9pbnNlcnRfbHNuKHJld2luZHNvdXJjZSk7CiAJCQll bmR0bGkgPSBNYXgoQ29udHJvbEZpbGVfc291cmNlX2FmdGVyLmNoZWNrUG9pbnRDb3B5LlRoaXNU aW1lTGluZUlELAogCQkJCQkJIENvbnRyb2xGaWxlX3NvdXJjZV9hZnRlci5taW5SZWNvdmVyeVBv aW50VExJKTsKIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2Vj cGcuYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9lY3BnLmMKaW5kZXggM2YwZjEwZTY1 NGEuLjUyNTk4OGEyMzAyIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2Mv ZWNwZy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9lY3BnLmMKQEAgLTMyLDEz ICszMiwxMyBAQCBzdHJ1Y3QgX2RlZmluZXMgKmRlZmluZXMgPSBOVUxMOwogc3RydWN0IGRlY2xh cmVkX2xpc3QgKmdfZGVjbGFyZWRfbGlzdCA9IE5VTEw7CiAKIHN0YXRpYyB2b2lkCi1oZWxwKGNv bnN0IGNoYXIgKnByb2duYW1lKQoraGVscChjb25zdCBjaGFyICpteXByb2duYW1lKQogewogCXBy aW50ZihfKCIlcyBpcyB0aGUgUG9zdGdyZVNRTCBlbWJlZGRlZCBTUUwgcHJlcHJvY2Vzc29yIGZv ciBDIHByb2dyYW1zLlxuXG4iKSwKLQkJICAgcHJvZ25hbWUpOworCQkgICBteXByb2duYW1lKTsK IAlwcmludGYoXygiVXNhZ2U6XG4iCiAJCQkgIiAgJXMgW09QVElPTl0uLi4gRklMRS4uLlxuXG4i KSwKLQkJICAgcHJvZ25hbWUpOworCQkgICBteXByb2duYW1lKTsKIAlwcmludGYoXygiT3B0aW9u czpcbiIpKTsKIAlwcmludGYoXygiICAtYyAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IGdlbmVy YXRlIEMgY29kZSBmcm9tIGVtYmVkZGVkIFNRTCBjb2RlO1xuIgogCQkJICIgICAgICAgICAgICAg ICAgIHRoaXMgYWZmZWN0cyBFWEVDIFNRTCBUWVBFXG4iKSk7Ci0tIAoyLjM5LjUgKEFwcGxlIEdp dC0xNTQpCgo= --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0006-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Disposition: attachment; filename="v5-0006-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trgg5 RnJvbSA4MDAwOGU4Y2YxNzZhNGIyZGQwZjM1OGNiYTg5NDNhMjk5MzU2MGY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE0OjAxOjMxICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAwNi8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IHN0YXRpYwogZmls ZS1zY29wZSBvbmVzIGluIHhsb2dyZWNvdmVyeS5jCgpUaGlzIGNvbW1pdCBmaXhlcyBzZXZlcmFs IGNhc2VzIGluIHhsb2dyZWNvdmVyeS5jIHdoZXJlIGxvY2FsIHZhcmlhYmxlcwp1c2VkIG5hbWVz IHRoYXQgY29uZmxpY3RlZCB3aXRoIHN0YXRpYyB2YXJpYWJsZXMgZGVmaW5lZCBhdCBmaWxlIHNj b3BlLgpUaGUgbG9jYWwgaWRlbnRpZmllcnMgYXJlIHJlbmFtZWQgc28gdGhleSBhcmUgbm8gbG9u Z2VyIHNoYWRvd2VkIGJ5IHRoZQpzdGF0aWMgb25lcy4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhp Z2hnby5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01h ajh0SExKMz1qZkMrcDVZWEhrSnlIckRUaVF3Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQog c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgfCAxMDAgKysrKysrKysr KystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDUwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNv dmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKaW5kZXgg MjFiOGYxNzliYTAuLjkwM2UyYWZlNWVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9ncmVjb3ZlcnkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9ncmVjb3ZlcnkuYwpAQCAtMTIwOCw3ICsxMjA4LDcgQEAgdmFsaWRhdGVSZWNvdmVyeVBhcmFt ZXRlcnModm9pZCkKICAqIFJldHVybnMgdHJ1ZSBpZiBhIGJhY2t1cF9sYWJlbCB3YXMgZm91bmQg KGFuZCBmaWxscyB0aGUgY2hlY2twb2ludAogICogbG9jYXRpb24gYW5kIFRMSSBpbnRvICpjaGVj a1BvaW50TG9jIGFuZCAqYmFja3VwTGFiZWxUTEksIHJlc3BlY3RpdmVseSk7CiAgKiByZXR1cm5z IGZhbHNlIGlmIG5vdC4gSWYgdGhpcyBiYWNrdXBfbGFiZWwgY2FtZSBmcm9tIGEgc3RyZWFtZWQg YmFja3VwLAotICogKmJhY2t1cEVuZFJlcXVpcmVkIGlzIHNldCB0byB0cnVlLiBJZiB0aGlzIGJh Y2t1cF9sYWJlbCB3YXMgY3JlYXRlZCBkdXJpbmcKKyAqICpiYWNrdXBFbmROZWVkZWQgaXMgc2V0 IHRvIHRydWUuIElmIHRoaXMgYmFja3VwX2xhYmVsIHdhcyBjcmVhdGVkIGR1cmluZwogICogcmVj b3ZlcnksICpiYWNrdXBGcm9tU3RhbmRieSBpcyBzZXQgdG8gdHJ1ZS4KICAqCiAgKiBBbHNvIHNl dHMgdGhlIGdsb2JhbCB2YXJpYWJsZXMgUmVkb1N0YXJ0TFNOIGFuZCBSZWRvU3RhcnRUTEkgd2l0 aCB0aGUgTFNOCkBAIC0xMjE2LDcgKzEyMTYsNyBAQCB2YWxpZGF0ZVJlY292ZXJ5UGFyYW1ldGVy cyh2b2lkKQogICovCiBzdGF0aWMgYm9vbAogcmVhZF9iYWNrdXBfbGFiZWwoWExvZ1JlY1B0ciAq Y2hlY2tQb2ludExvYywgVGltZUxpbmVJRCAqYmFja3VwTGFiZWxUTEksCi0JCQkJICBib29sICpi YWNrdXBFbmRSZXF1aXJlZCwgYm9vbCAqYmFja3VwRnJvbVN0YW5kYnkpCisJCQkJICBib29sICpi YWNrdXBFbmROZWVkZWQsIGJvb2wgKmJhY2t1cEZyb21TdGFuZGJ5KQogewogCWNoYXIJCXN0YXJ0 eGxvZ2ZpbGVuYW1lW01BWEZOQU1FTEVOXTsKIAlUaW1lTGluZUlECXRsaV9mcm9tX3dhbHNlZywK QEAgLTEyMzMsNyArMTIzMyw3IEBAIHJlYWRfYmFja3VwX2xhYmVsKFhMb2dSZWNQdHIgKmNoZWNr UG9pbnRMb2MsIFRpbWVMaW5lSUQgKmJhY2t1cExhYmVsVExJLAogCS8qIHN1cHByZXNzIHBvc3Np YmxlIHVuaW5pdGlhbGl6ZWQtdmFyaWFibGUgd2FybmluZ3MgKi8KIAkqY2hlY2tQb2ludExvYyA9 IEludmFsaWRYTG9nUmVjUHRyOwogCSpiYWNrdXBMYWJlbFRMSSA9IDA7Ci0JKmJhY2t1cEVuZFJl cXVpcmVkID0gZmFsc2U7CisJKmJhY2t1cEVuZE5lZWRlZCA9IGZhbHNlOwogCSpiYWNrdXBGcm9t U3RhbmRieSA9IGZhbHNlOwogCiAJLyoKQEAgLTEyNzcsMTMgKzEyNzcsMTMgQEAgcmVhZF9iYWNr dXBfbGFiZWwoWExvZ1JlY1B0ciAqY2hlY2tQb2ludExvYywgVGltZUxpbmVJRCAqYmFja3VwTGFi ZWxUTEksCiAJICogb3RoZXIgb3B0aW9uIHRvZGF5IGJlaW5nIGZyb20gcGdfcmV3aW5kKS4gIElm IHRoaXMgd2FzIGEgc3RyZWFtZWQKIAkgKiBiYWNrdXAgdGhlbiB3ZSBrbm93IHRoYXQgd2UgbmVl ZCB0byBwbGF5IHRocm91Z2ggdW50aWwgd2UgZ2V0IHRvIHRoZQogCSAqIGVuZCBvZiB0aGUgV0FM IHdoaWNoIHdhcyBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBiYWNrdXAgKGF0IHdoaWNoIHBvaW50IHdl Ci0JICogd2lsbCBoYXZlIHJlYWNoZWQgY29uc2lzdGVuY3kgYW5kIGJhY2t1cEVuZFJlcXVpcmVk IHdpbGwgYmUgcmVzZXQgdG8gYmUKKwkgKiB3aWxsIGhhdmUgcmVhY2hlZCBjb25zaXN0ZW5jeSBh bmQgYmFja3VwRW5kTmVlZGVkIHdpbGwgYmUgcmVzZXQgdG8gYmUKIAkgKiBmYWxzZSkuCiAJICov CiAJaWYgKGZzY2FuZihsZnAsICJCQUNLVVAgTUVUSE9EOiAlMTlzXG4iLCBiYWNrdXB0eXBlKSA9 PSAxKQogCXsKIAkJaWYgKHN0cmNtcChiYWNrdXB0eXBlLCAic3RyZWFtZWQiKSA9PSAwKQotCQkJ KmJhY2t1cEVuZFJlcXVpcmVkID0gdHJ1ZTsKKwkJCSpiYWNrdXBFbmROZWVkZWQgPSB0cnVlOwog CX0KIAogCS8qCkBAIC0xOTI3LDE0ICsxOTI3LDE0IEBAIFBlcmZvcm1XYWxSZWNvdmVyeSh2b2lk KQogICogU3Vicm91dGluZSBvZiBQZXJmb3JtV2FsUmVjb3ZlcnksIHRvIGFwcGx5IG9uZSBXQUwg cmVjb3JkLgogICovCiBzdGF0aWMgdm9pZAotQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRlclN0YXRl ICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJlcGxheVRMSSkK K0FwcGx5V2FsUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqcmVhZGVyLCBYTG9nUmVjb3JkICpyZWNv cmQsIFRpbWVMaW5lSUQgKnJlcGxheVRMSSkKIHsKIAlFcnJvckNvbnRleHRDYWxsYmFjayBlcnJj YWxsYmFjazsKIAlib29sCQlzd2l0Y2hlZFRMSSA9IGZhbHNlOwogCiAJLyogU2V0dXAgZXJyb3Ig dHJhY2ViYWNrIHN1cHBvcnQgZm9yIGVyZXBvcnQoKSAqLwogCWVycmNhbGxiYWNrLmNhbGxiYWNr ID0gcm1fcmVkb19lcnJvcl9jYWxsYmFjazsKLQllcnJjYWxsYmFjay5hcmcgPSB4bG9ncmVhZGVy OworCWVycmNhbGxiYWNrLmFyZyA9IHJlYWRlcjsKIAllcnJjYWxsYmFjay5wcmV2aW91cyA9IGVy cm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZlcnJjYWxsYmFjazsK IApAQCAtMTk2MSw3ICsxOTYxLDcgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRlclN0YXRlICp4 bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJlcGwKIAkJewogCQkJ Q2hlY2tQb2ludAljaGVja1BvaW50OwogCi0JCQltZW1jcHkoJmNoZWNrUG9pbnQsIFhMb2dSZWNH ZXREYXRhKHhsb2dyZWFkZXIpLCBzaXplb2YoQ2hlY2tQb2ludCkpOworCQkJbWVtY3B5KCZjaGVj a1BvaW50LCBYTG9nUmVjR2V0RGF0YShyZWFkZXIpLCBzaXplb2YoQ2hlY2tQb2ludCkpOwogCQkJ bmV3UmVwbGF5VExJID0gY2hlY2tQb2ludC5UaGlzVGltZUxpbmVJRDsKIAkJCXByZXZSZXBsYXlU TEkgPSBjaGVja1BvaW50LlByZXZUaW1lTGluZUlEOwogCQl9CkBAIC0xOTY5LDcgKzE5NjksNyBA QCBBcHBseVdhbFJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnhsb2dyZWFkZXIsIFhMb2dSZWNvcmQg KnJlY29yZCwgVGltZUxpbmVJRCAqcmVwbAogCQl7CiAJCQl4bF9lbmRfb2ZfcmVjb3ZlcnkgeGxy ZWM7CiAKLQkJCW1lbWNweSgmeGxyZWMsIFhMb2dSZWNHZXREYXRhKHhsb2dyZWFkZXIpLCBzaXpl b2YoeGxfZW5kX29mX3JlY292ZXJ5KSk7CisJCQltZW1jcHkoJnhscmVjLCBYTG9nUmVjR2V0RGF0 YShyZWFkZXIpLCBzaXplb2YoeGxfZW5kX29mX3JlY292ZXJ5KSk7CiAJCQluZXdSZXBsYXlUTEkg PSB4bHJlYy5UaGlzVGltZUxpbmVJRDsKIAkJCXByZXZSZXBsYXlUTEkgPSB4bHJlYy5QcmV2VGlt ZUxpbmVJRDsKIAkJfQpAQCAtMTk3Nyw3ICsxOTc3LDcgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1Jl YWRlclN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJl cGwKIAkJaWYgKG5ld1JlcGxheVRMSSAhPSAqcmVwbGF5VExJKQogCQl7CiAJCQkvKiBDaGVjayB0 aGF0IGl0J3MgT0sgdG8gc3dpdGNoIHRvIHRoaXMgVExJICovCi0JCQljaGVja1RpbWVMaW5lU3dp dGNoKHhsb2dyZWFkZXItPkVuZFJlY1B0ciwKKwkJCWNoZWNrVGltZUxpbmVTd2l0Y2gocmVhZGVy LT5FbmRSZWNQdHIsCiAJCQkJCQkJCW5ld1JlcGxheVRMSSwgcHJldlJlcGxheVRMSSwgKnJlcGxh eVRMSSk7CiAKIAkJCS8qIEZvbGxvd2luZyBXQUwgcmVjb3JkcyBzaG91bGQgYmUgcnVuIHdpdGgg bmV3IFRMSSAqLwpAQCAtMTk5MSw3ICsxOTkxLDcgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRl clN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJlcGwK IAkgKiBYTG9nRmx1c2ggd2lsbCB1cGRhdGUgbWluUmVjb3ZlcnlQb2ludCBjb3JyZWN0bHkuCiAJ ICovCiAJU3BpbkxvY2tBY3F1aXJlKCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNrKTsKLQlYTG9n UmVjb3ZlcnlDdGwtPnJlcGxheUVuZFJlY1B0ciA9IHhsb2dyZWFkZXItPkVuZFJlY1B0cjsKKwlY TG9nUmVjb3ZlcnlDdGwtPnJlcGxheUVuZFJlY1B0ciA9IHJlYWRlci0+RW5kUmVjUHRyOwogCVhM b2dSZWNvdmVyeUN0bC0+cmVwbGF5RW5kVExJID0gKnJlcGxheVRMSTsKIAlTcGluTG9ja1JlbGVh c2UoJlhMb2dSZWNvdmVyeUN0bC0+aW5mb19sY2spOwogCkBAIC0yMDA3LDEwICsyMDA3LDEwIEBA IEFwcGx5V2FsUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqeGxvZ3JlYWRlciwgWExvZ1JlY29yZCAq cmVjb3JkLCBUaW1lTGluZUlEICpyZXBsCiAJICogZGlyZWN0bHkgaGVyZSwgcmF0aGVyIHRoYW4g aW4geGxvZ19yZWRvKCkKIAkgKi8KIAlpZiAocmVjb3JkLT54bF9ybWlkID09IFJNX1hMT0dfSUQp Ci0JCXhsb2dyZWNvdmVyeV9yZWRvKHhsb2dyZWFkZXIsICpyZXBsYXlUTEkpOworCQl4bG9ncmVj b3ZlcnlfcmVkbyhyZWFkZXIsICpyZXBsYXlUTEkpOwogCiAJLyogTm93IGFwcGx5IHRoZSBXQUwg cmVjb3JkIGl0c2VsZiAqLwotCUdldFJtZ3IocmVjb3JkLT54bF9ybWlkKS5ybV9yZWRvKHhsb2dy ZWFkZXIpOworCUdldFJtZ3IocmVjb3JkLT54bF9ybWlkKS5ybV9yZWRvKHJlYWRlcik7CiAKIAkv KgogCSAqIEFmdGVyIHJlZG8sIGNoZWNrIHdoZXRoZXIgdGhlIGJhY2t1cCBwYWdlcyBhc3NvY2lh dGVkIHdpdGggdGhlIFdBTApAQCAtMjAxOCw3ICsyMDE4LDcgQEAgQXBwbHlXYWxSZWNvcmQoWExv Z1JlYWRlclN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQg KnJlcGwKIAkgKiBpZiBjb25zaXN0ZW5jeSBjaGVjayBpcyBlbmFibGVkIGZvciB0aGlzIHJlY29y ZC4KIAkgKi8KIAlpZiAoKHJlY29yZC0+eGxfaW5mbyAmIFhMUl9DSEVDS19DT05TSVNURU5DWSkg IT0gMCkKLQkJdmVyaWZ5QmFja3VwUGFnZUNvbnNpc3RlbmN5KHhsb2dyZWFkZXIpOworCQl2ZXJp ZnlCYWNrdXBQYWdlQ29uc2lzdGVuY3kocmVhZGVyKTsKIAogCS8qIFBvcCB0aGUgZXJyb3IgY29u dGV4dCBzdGFjayAqLwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSBlcnJjYWxsYmFjay5wcmV2aW91 czsKQEAgLTIwMjgsOCArMjAyOCw4IEBAIEFwcGx5V2FsUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAq eGxvZ3JlYWRlciwgWExvZ1JlY29yZCAqcmVjb3JkLCBUaW1lTGluZUlEICpyZXBsCiAJICogcmVw bGF5ZWQuCiAJICovCiAJU3BpbkxvY2tBY3F1aXJlKCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNr KTsKLQlYTG9nUmVjb3ZlcnlDdGwtPmxhc3RSZXBsYXllZFJlYWRSZWNQdHIgPSB4bG9ncmVhZGVy LT5SZWFkUmVjUHRyOwotCVhMb2dSZWNvdmVyeUN0bC0+bGFzdFJlcGxheWVkRW5kUmVjUHRyID0g eGxvZ3JlYWRlci0+RW5kUmVjUHRyOworCVhMb2dSZWNvdmVyeUN0bC0+bGFzdFJlcGxheWVkUmVh ZFJlY1B0ciA9IHJlYWRlci0+UmVhZFJlY1B0cjsKKwlYTG9nUmVjb3ZlcnlDdGwtPmxhc3RSZXBs YXllZEVuZFJlY1B0ciA9IHJlYWRlci0+RW5kUmVjUHRyOwogCVhMb2dSZWNvdmVyeUN0bC0+bGFz dFJlcGxheWVkVExJID0gKnJlcGxheVRMSTsKIAlTcGluTG9ja1JlbGVhc2UoJlhMb2dSZWNvdmVy eUN0bC0+aW5mb19sY2spOwogCkBAIC0yMDc5LDcgKzIwNzksNyBAQCBBcHBseVdhbFJlY29yZChY TG9nUmVhZGVyU3RhdGUgKnhsb2dyZWFkZXIsIFhMb2dSZWNvcmQgKnJlY29yZCwgVGltZUxpbmVJ RCAqcmVwbAogCQkgKiBCZWZvcmUgd2UgY29udGludWUgb24gdGhlIG5ldyB0aW1lbGluZSwgY2xl YW4gdXAgYW55IChwb3NzaWJseQogCQkgKiBib2d1cykgZnV0dXJlIFdBTCBzZWdtZW50cyBvbiB0 aGUgb2xkIHRpbWVsaW5lLgogCQkgKi8KLQkJUmVtb3ZlTm9uUGFyZW50WGxvZ0ZpbGVzKHhsb2dy ZWFkZXItPkVuZFJlY1B0ciwgKnJlcGxheVRMSSk7CisJCVJlbW92ZU5vblBhcmVudFhsb2dGaWxl cyhyZWFkZXItPkVuZFJlY1B0ciwgKnJlcGxheVRMSSk7CiAKIAkJLyogUmVzZXQgdGhlIHByZWZl dGNoZXIuICovCiAJCVhMb2dQcmVmZXRjaFJlY29uZmlndXJlKCk7CkBAIC0zMTUyLDE5ICszMTUy LDE5IEBAIENvbmZpcm1SZWNvdmVyeVBhdXNlZCh2b2lkKQogICogcmVjb3JkIGlzIGF2YWlsYWJs ZS4KICAqLwogc3RhdGljIFhMb2dSZWNvcmQgKgotUmVhZFJlY29yZChYTG9nUHJlZmV0Y2hlciAq eGxvZ3ByZWZldGNoZXIsIGludCBlbW9kZSwKK1JlYWRSZWNvcmQoWExvZ1ByZWZldGNoZXIgKnBy ZWZldGNoZXIsIGludCBlbW9kZSwKIAkJICAgYm9vbCBmZXRjaGluZ19ja3B0LCBUaW1lTGluZUlE IHJlcGxheVRMSSkKIHsKIAlYTG9nUmVjb3JkICpyZWNvcmQ7Ci0JWExvZ1JlYWRlclN0YXRlICp4 bG9ncmVhZGVyID0gWExvZ1ByZWZldGNoZXJHZXRSZWFkZXIoeGxvZ3ByZWZldGNoZXIpOwotCVhM b2dQYWdlUmVhZFByaXZhdGUgKnByaXZhdGUgPSAoWExvZ1BhZ2VSZWFkUHJpdmF0ZSAqKSB4bG9n cmVhZGVyLT5wcml2YXRlX2RhdGE7CisJWExvZ1JlYWRlclN0YXRlICpyZWFkZXIgPSBYTG9nUHJl ZmV0Y2hlckdldFJlYWRlcihwcmVmZXRjaGVyKTsKKwlYTG9nUGFnZVJlYWRQcml2YXRlICpwcml2 YXRlID0gKFhMb2dQYWdlUmVhZFByaXZhdGUgKikgcmVhZGVyLT5wcml2YXRlX2RhdGE7CiAKIAlB c3NlcnQoQW1TdGFydHVwUHJvY2VzcygpIHx8ICFJc1VuZGVyUG9zdG1hc3Rlcik7CiAKIAkvKiBQ YXNzIHRocm91Z2ggcGFyYW1ldGVycyB0byBYTG9nUGFnZVJlYWQgKi8KIAlwcml2YXRlLT5mZXRj aGluZ19ja3B0ID0gZmV0Y2hpbmdfY2twdDsKIAlwcml2YXRlLT5lbW9kZSA9IGVtb2RlOwotCXBy aXZhdGUtPnJhbmRBY2Nlc3MgPSAhWExvZ1JlY1B0cklzVmFsaWQoeGxvZ3JlYWRlci0+UmVhZFJl Y1B0cik7CisJcHJpdmF0ZS0+cmFuZEFjY2VzcyA9ICFYTG9nUmVjUHRySXNWYWxpZChyZWFkZXIt PlJlYWRSZWNQdHIpOwogCXByaXZhdGUtPnJlcGxheVRMSSA9IHJlcGxheVRMSTsKIAogCS8qIFRo aXMgaXMgdGhlIGZpcnN0IGF0dGVtcHQgdG8gcmVhZCB0aGlzIHBhZ2UuICovCkBAIC0zMTc0LDcg KzMxNzQsNyBAQCBSZWFkUmVjb3JkKFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hlciwgaW50 IGVtb2RlLAogCXsKIAkJY2hhcgkgICAqZXJyb3Jtc2c7CiAKLQkJcmVjb3JkID0gWExvZ1ByZWZl dGNoZXJSZWFkUmVjb3JkKHhsb2dwcmVmZXRjaGVyLCAmZXJyb3Jtc2cpOworCQlyZWNvcmQgPSBY TG9nUHJlZmV0Y2hlclJlYWRSZWNvcmQocHJlZmV0Y2hlciwgJmVycm9ybXNnKTsKIAkJaWYgKHJl Y29yZCA9PSBOVUxMKQogCQl7CiAJCQkvKgpAQCAtMzE5MCwxMCArMzE5MCwxMCBAQCBSZWFkUmVj b3JkKFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hlciwgaW50IGVtb2RlLAogCQkJICogb3Zl cndyaXRlIGNvbnRyZWNvcmQgaW4gdGhlIHdyb25nIHBsYWNlLCBicmVha2luZyBldmVyeXRoaW5n LgogCQkJICovCiAJCQlpZiAoIUFyY2hpdmVSZWNvdmVyeVJlcXVlc3RlZCAmJgotCQkJCVhMb2dS ZWNQdHJJc1ZhbGlkKHhsb2dyZWFkZXItPmFib3J0ZWRSZWNQdHIpKQorCQkJCVhMb2dSZWNQdHJJ c1ZhbGlkKHJlYWRlci0+YWJvcnRlZFJlY1B0cikpCiAJCQl7Ci0JCQkJYWJvcnRlZFJlY1B0ciA9 IHhsb2dyZWFkZXItPmFib3J0ZWRSZWNQdHI7Ci0JCQkJbWlzc2luZ0NvbnRyZWNQdHIgPSB4bG9n cmVhZGVyLT5taXNzaW5nQ29udHJlY1B0cjsKKwkJCQlhYm9ydGVkUmVjUHRyID0gcmVhZGVyLT5h Ym9ydGVkUmVjUHRyOworCQkJCW1pc3NpbmdDb250cmVjUHRyID0gcmVhZGVyLT5taXNzaW5nQ29u dHJlY1B0cjsKIAkJCX0KIAogCQkJaWYgKHJlYWRGaWxlID49IDApCkBAIC0zMjA5LDI5ICszMjA5 LDI5IEBAIFJlYWRSZWNvcmQoWExvZ1ByZWZldGNoZXIgKnhsb2dwcmVmZXRjaGVyLCBpbnQgZW1v ZGUsCiAJCQkgKiBzaG91bGRuJ3QgbG9vcCBhbnltb3JlIGluIHRoYXQgY2FzZS4KIAkJCSAqLwog CQkJaWYgKGVycm9ybXNnKQotCQkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1cHRfcmVjb3JkKGVt b2RlLCB4bG9ncmVhZGVyLT5FbmRSZWNQdHIpLAorCQkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1 cHRfcmVjb3JkKGVtb2RlLCByZWFkZXItPkVuZFJlY1B0ciksCiAJCQkJCQkoZXJybXNnX2ludGVy bmFsKCIlcyIsIGVycm9ybXNnKSAvKiBhbHJlYWR5IHRyYW5zbGF0ZWQgKi8gKSk7CiAJCX0KIAog CQkvKgogCQkgKiBDaGVjayBwYWdlIFRMSSBpcyBvbmUgb2YgdGhlIGV4cGVjdGVkIHZhbHVlcy4K IAkJICovCi0JCWVsc2UgaWYgKCF0bGlJbkhpc3RvcnkoeGxvZ3JlYWRlci0+bGF0ZXN0UGFnZVRM SSwgZXhwZWN0ZWRUTEVzKSkKKwkJZWxzZSBpZiAoIXRsaUluSGlzdG9yeShyZWFkZXItPmxhdGVz dFBhZ2VUTEksIGV4cGVjdGVkVExFcykpCiAJCXsKIAkJCWNoYXIJCWZuYW1lW01BWEZOQU1FTEVO XTsKIAkJCVhMb2dTZWdObwlzZWdubzsKIAkJCWludDMyCQlvZmZzZXQ7CiAKLQkJCVhMQnl0ZVRv U2VnKHhsb2dyZWFkZXItPmxhdGVzdFBhZ2VQdHIsIHNlZ25vLCB3YWxfc2VnbWVudF9zaXplKTsK LQkJCW9mZnNldCA9IFhMb2dTZWdtZW50T2Zmc2V0KHhsb2dyZWFkZXItPmxhdGVzdFBhZ2VQdHIs CisJCQlYTEJ5dGVUb1NlZyhyZWFkZXItPmxhdGVzdFBhZ2VQdHIsIHNlZ25vLCB3YWxfc2VnbWVu dF9zaXplKTsKKwkJCW9mZnNldCA9IFhMb2dTZWdtZW50T2Zmc2V0KHJlYWRlci0+bGF0ZXN0UGFn ZVB0ciwKIAkJCQkJCQkJCSAgIHdhbF9zZWdtZW50X3NpemUpOwotCQkJWExvZ0ZpbGVOYW1lKGZu YW1lLCB4bG9ncmVhZGVyLT5zZWcud3NfdGxpLCBzZWdubywKKwkJCVhMb2dGaWxlTmFtZShmbmFt ZSwgcmVhZGVyLT5zZWcud3NfdGxpLCBzZWdubywKIAkJCQkJCSB3YWxfc2VnbWVudF9zaXplKTsK LQkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1cHRfcmVjb3JkKGVtb2RlLCB4bG9ncmVhZGVyLT5F bmRSZWNQdHIpLAorCQkJZXJlcG9ydChlbW9kZV9mb3JfY29ycnVwdF9yZWNvcmQoZW1vZGUsIHJl YWRlci0+RW5kUmVjUHRyKSwKIAkJCQkJZXJybXNnKCJ1bmV4cGVjdGVkIHRpbWVsaW5lIElEICV1 IGluIFdBTCBzZWdtZW50ICVzLCBMU04gJVgvJTA4WCwgb2Zmc2V0ICV1IiwKLQkJCQkJCSAgIHhs b2dyZWFkZXItPmxhdGVzdFBhZ2VUTEksCisJCQkJCQkgICByZWFkZXItPmxhdGVzdFBhZ2VUTEks CiAJCQkJCQkgICBmbmFtZSwKLQkJCQkJCSAgIExTTl9GT1JNQVRfQVJHUyh4bG9ncmVhZGVyLT5s YXRlc3RQYWdlUHRyKSwKKwkJCQkJCSAgIExTTl9GT1JNQVRfQVJHUyhyZWFkZXItPmxhdGVzdFBh Z2VQdHIpLAogCQkJCQkJICAgb2Zmc2V0KSk7CiAJCQlyZWNvcmQgPSBOVUxMOwogCQl9CkBAIC0z MjY3LDggKzMyNjcsOCBAQCBSZWFkUmVjb3JkKFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hl ciwgaW50IGVtb2RlLAogCQkJCWlmIChTdGFuZGJ5TW9kZVJlcXVlc3RlZCkKIAkJCQkJRW5hYmxl U3RhbmRieU1vZGUoKTsKIAotCQkJCVN3aXRjaEludG9BcmNoaXZlUmVjb3ZlcnkoeGxvZ3JlYWRl ci0+RW5kUmVjUHRyLCByZXBsYXlUTEkpOwotCQkJCW1pblJlY292ZXJ5UG9pbnQgPSB4bG9ncmVh ZGVyLT5FbmRSZWNQdHI7CisJCQkJU3dpdGNoSW50b0FyY2hpdmVSZWNvdmVyeShyZWFkZXItPkVu ZFJlY1B0ciwgcmVwbGF5VExJKTsKKwkJCQltaW5SZWNvdmVyeVBvaW50ID0gcmVhZGVyLT5FbmRS ZWNQdHI7CiAJCQkJbWluUmVjb3ZlcnlQb2ludFRMSSA9IHJlcGxheVRMSTsKIAogCQkJCUNoZWNr UmVjb3ZlcnlDb25zaXN0ZW5jeSgpOwpAQCAtMzMyMSwxMSArMzMyMSwxMSBAQCBSZWFkUmVjb3Jk KFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hlciwgaW50IGVtb2RlLAogICogc2xlZXAgYW5k IHJldHJ5LgogICovCiBzdGF0aWMgaW50Ci1YTG9nUGFnZVJlYWQoWExvZ1JlYWRlclN0YXRlICp4 bG9ncmVhZGVyLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIsIGludCByZXFMZW4sCitYTG9nUGFn ZVJlYWQoWExvZ1JlYWRlclN0YXRlICpyZWFkZXIsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwg aW50IHJlcUxlbiwKIAkJCSBYTG9nUmVjUHRyIHRhcmdldFJlY1B0ciwgY2hhciAqcmVhZEJ1ZikK IHsKIAlYTG9nUGFnZVJlYWRQcml2YXRlICpwcml2YXRlID0KLQkJKFhMb2dQYWdlUmVhZFByaXZh dGUgKikgeGxvZ3JlYWRlci0+cHJpdmF0ZV9kYXRhOworCQkoWExvZ1BhZ2VSZWFkUHJpdmF0ZSAq KSByZWFkZXItPnByaXZhdGVfZGF0YTsKIAlpbnQJCQllbW9kZSA9IHByaXZhdGUtPmVtb2RlOwog CXVpbnQzMgkJdGFyZ2V0UGFnZU9mZjsKIAlYTG9nU2VnTm8JdGFyZ2V0U2VnTm8gUEdfVVNFRF9G T1JfQVNTRVJUU19PTkxZOwpAQCAtMzM3Miw3ICszMzcyLDcgQEAgcmV0cnk6CiAJCSBmbHVzaGVk VXB0byA8IHRhcmdldFBhZ2VQdHIgKyByZXFMZW4pKQogCXsKIAkJaWYgKHJlYWRGaWxlID49IDAg JiYKLQkJCXhsb2dyZWFkZXItPm5vbmJsb2NraW5nICYmCisJCQlyZWFkZXItPm5vbmJsb2NraW5n ICYmCiAJCQlyZWFkU291cmNlID09IFhMT0dfRlJPTV9TVFJFQU0gJiYKIAkJCWZsdXNoZWRVcHRv IDwgdGFyZ2V0UGFnZVB0ciArIHJlcUxlbikKIAkJCXJldHVybiBYTFJFQURfV09VTERCTE9DSzsK QEAgLTMzODIsOCArMzM4Miw4IEBAIHJldHJ5OgogCQkJCQkJCQkJCQlwcml2YXRlLT5mZXRjaGlu Z19ja3B0LAogCQkJCQkJCQkJCQl0YXJnZXRSZWNQdHIsCiAJCQkJCQkJCQkJCXByaXZhdGUtPnJl cGxheVRMSSwKLQkJCQkJCQkJCQkJeGxvZ3JlYWRlci0+RW5kUmVjUHRyLAotCQkJCQkJCQkJCQl4 bG9ncmVhZGVyLT5ub25ibG9ja2luZykpCisJCQkJCQkJCQkJCXJlYWRlci0+RW5kUmVjUHRyLAor CQkJCQkJCQkJCQlyZWFkZXItPm5vbmJsb2NraW5nKSkKIAkJewogCQkJY2FzZSBYTFJFQURfV09V TERCTE9DSzoKIAkJCQlyZXR1cm4gWExSRUFEX1dPVUxEQkxPQ0s7CkBAIC0zNDY3LDcgKzM0Njcs NyBAQCByZXRyeToKIAlBc3NlcnQodGFyZ2V0UGFnZU9mZiA9PSByZWFkT2ZmKTsKIAlBc3NlcnQo cmVxTGVuIDw9IHJlYWRMZW4pOwogCi0JeGxvZ3JlYWRlci0+c2VnLndzX3RsaSA9IGN1ckZpbGVU TEk7CisJcmVhZGVyLT5zZWcud3NfdGxpID0gY3VyRmlsZVRMSTsKIAogCS8qCiAJICogQ2hlY2sg dGhlIHBhZ2UgaGVhZGVyIGltbWVkaWF0ZWx5LCBzbyB0aGF0IHdlIGNhbiByZXRyeSBpbW1lZGlh dGVseSBpZgpAQCAtMzUwMywxOCArMzUwMywxOCBAQCByZXRyeToKIAkgKi8KIAlpZiAoU3RhbmRi eU1vZGUgJiYKIAkJKHRhcmdldFBhZ2VQdHIgJSB3YWxfc2VnbWVudF9zaXplKSA9PSAwICYmCi0J CSFYTG9nUmVhZGVyVmFsaWRhdGVQYWdlSGVhZGVyKHhsb2dyZWFkZXIsIHRhcmdldFBhZ2VQdHIs IHJlYWRCdWYpKQorCQkhWExvZ1JlYWRlclZhbGlkYXRlUGFnZUhlYWRlcihyZWFkZXIsIHRhcmdl dFBhZ2VQdHIsIHJlYWRCdWYpKQogCXsKIAkJLyoKIAkJICogRW1pdCB0aGlzIGVycm9yIHJpZ2h0 IG5vdyB0aGVuIHJldHJ5IHRoaXMgcGFnZSBpbW1lZGlhdGVseS4gVXNlCiAJCSAqIGVycm1zZ19p bnRlcm5hbCgpIGJlY2F1c2UgdGhlIG1lc3NhZ2Ugd2FzIGFscmVhZHkgdHJhbnNsYXRlZC4KIAkJ ICovCi0JCWlmICh4bG9ncmVhZGVyLT5lcnJvcm1zZ19idWZbMF0pCi0JCQllcmVwb3J0KGVtb2Rl X2Zvcl9jb3JydXB0X3JlY29yZChlbW9kZSwgeGxvZ3JlYWRlci0+RW5kUmVjUHRyKSwKLQkJCQkJ KGVycm1zZ19pbnRlcm5hbCgiJXMiLCB4bG9ncmVhZGVyLT5lcnJvcm1zZ19idWYpKSk7CisJCWlm IChyZWFkZXItPmVycm9ybXNnX2J1ZlswXSkKKwkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1cHRf cmVjb3JkKGVtb2RlLCByZWFkZXItPkVuZFJlY1B0ciksCisJCQkJCShlcnJtc2dfaW50ZXJuYWwo IiVzIiwgcmVhZGVyLT5lcnJvcm1zZ19idWYpKSk7CiAKIAkJLyogcmVzZXQgYW55IGVycm9yIFhM b2dSZWFkZXJWYWxpZGF0ZVBhZ2VIZWFkZXIoKSBtaWdodCBoYXZlIHNldCAqLwotCQlYTG9nUmVh ZGVyUmVzZXRFcnJvcih4bG9ncmVhZGVyKTsKKwkJWExvZ1JlYWRlclJlc2V0RXJyb3IocmVhZGVy KTsKIAkJZ290byBuZXh0X3JlY29yZF9pc19pbnZhbGlkOwogCX0KIApAQCAtMzUyNiw3ICszNTI2 LDcgQEAgbmV4dF9yZWNvcmRfaXNfaW52YWxpZDoKIAkgKiBJZiB3ZSdyZSByZWFkaW5nIGFoZWFk LCBnaXZlIHVwIGZhc3QuICBSZXRyaWVzIGFuZCBlcnJvciByZXBvcnRpbmcgd2lsbAogCSAqIGJl IGhhbmRsZWQgYnkgYSBsYXRlciByZWFkIHdoZW4gcmVjb3ZlcnkgY2F0Y2hlcyB1cCB0byB0aGlz IHBvaW50LgogCSAqLwotCWlmICh4bG9ncmVhZGVyLT5ub25ibG9ja2luZykKKwlpZiAocmVhZGVy LT5ub25ibG9ja2luZykKIAkJcmV0dXJuIFhMUkVBRF9XT1VMREJMT0NLOwogCiAJbGFzdFNvdXJj ZUZhaWxlZCA9IHRydWU7CkBAIC00MTA0LDcgKzQxMDQsNyBAQCBlbW9kZV9mb3JfY29ycnVwdF9y ZWNvcmQoaW50IGVtb2RlLCBYTG9nUmVjUHRyIFJlY1B0cikKICAqIFN1YnJvdXRpbmUgdG8gdHJ5 IHRvIGZldGNoIGFuZCB2YWxpZGF0ZSBhIHByaW9yIGNoZWNrcG9pbnQgcmVjb3JkLgogICovCiBz dGF0aWMgWExvZ1JlY29yZCAqCi1SZWFkQ2hlY2twb2ludFJlY29yZChYTG9nUHJlZmV0Y2hlciAq eGxvZ3ByZWZldGNoZXIsIFhMb2dSZWNQdHIgUmVjUHRyLAorUmVhZENoZWNrcG9pbnRSZWNvcmQo WExvZ1ByZWZldGNoZXIgKnByZWZldGNoZXIsIFhMb2dSZWNQdHIgUmVjUHRyLAogCQkJCQkgVGlt ZUxpbmVJRCByZXBsYXlUTEkpCiB7CiAJWExvZ1JlY29yZCAqcmVjb3JkOwpAQCAtNDExOSw4ICs0 MTE5LDggQEAgUmVhZENoZWNrcG9pbnRSZWNvcmQoWExvZ1ByZWZldGNoZXIgKnhsb2dwcmVmZXRj aGVyLCBYTG9nUmVjUHRyIFJlY1B0ciwKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0JWExvZ1ByZWZl dGNoZXJCZWdpblJlYWQoeGxvZ3ByZWZldGNoZXIsIFJlY1B0cik7Ci0JcmVjb3JkID0gUmVhZFJl Y29yZCh4bG9ncHJlZmV0Y2hlciwgTE9HLCB0cnVlLCByZXBsYXlUTEkpOworCVhMb2dQcmVmZXRj aGVyQmVnaW5SZWFkKHByZWZldGNoZXIsIFJlY1B0cik7CisJcmVjb3JkID0gUmVhZFJlY29yZChw cmVmZXRjaGVyLCBMT0csIHRydWUsIHJlcGxheVRMSSk7CiAKIAlpZiAocmVjb3JkID09IE5VTEwp CiAJewotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0010-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Disposition: attachment; filename="v5-0010-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trgj9 RnJvbSAwOTVlZGZkMDc0Nzk4Nzg2ZjI5ZDNiOWMyYWY5ZDY0OTRiMmMyYzQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE1OjI2OjUxICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAxMC8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IHN0YXRpYwogZmls ZS1zY29wZSBvbmVzIGluIHNldmVyYWwgZmlsZXMKClRoaXMgY29tbWl0IGZpeGVzIG11bHRpcGxl IGNhc2VzIHdoZXJlIGxvY2FsIHZhcmlhYmxlcyB1c2VkIG5hbWVzIHRoYXQKY29uZmxpY3RlZCB3 aXRoIHN0YXRpYyB2YXJpYWJsZXMgZGVmaW5lZCBhdCBmaWxlIHNjb3BlLiBUaGUgYWZmZWN0ZWQK bG9jYWxzIGFyZSByZW5hbWVkIHNvIHRoZXkgYXJlIG5vIGxvbmdlciBzaGFkb3dlZCBieSB0aGUg ZmlsZS1zY29wZQppZGVudGlmaWVycyBhbmQgcmVtYWluIHVuYW1iaWd1b3VzIHdpdGhpbiB0aGVp ciByZXNwZWN0aXZlIHNjb3Blcy4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hnby5jb20+CkRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01hajh0SExKMz1qZkMr cDVZWEhrSnlIckRUaVF3Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyB8IDYgKysrLS0tCiBzcmMvYmluL3BnX2N0bC9wZ19j dGwuYyAgICAgICAgICAgICAgIHwgNiArKystLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxs LmMgICAgICAgICAgfCA2ICsrKy0tLQogc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5j ICAgICB8IDYgKysrLS0tCiBzcmMvYmluL3BnX3Rlc3RfZnN5bmMvcGdfdGVzdF9mc3luYy5jIHwg NiArKystLS0KIDUgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggNWU3YmQ5MzNhZmMu LmRhOGE3NjA5ZDg2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwcklu dGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAgLTQ3 MSw3ICs0NzEsNyBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4 dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkgKiBUaGlzIGFycmF5IGhhcyB0byBiZSBpbiB0 aGUgc2FtZSBvcmRlciBhcyBlbnVtIEV4cHJFdmFsT3AuCiAJICovCiAjaWYgZGVmaW5lZChFRU9f VVNFX0NPTVBVVEVEX0dPVE8pCi0Jc3RhdGljIGNvbnN0IHZvaWQgKmNvbnN0IGRpc3BhdGNoX3Rh YmxlW10gPSB7CisJc3RhdGljIGNvbnN0IHZvaWQgKmNvbnN0IF9kaXNwYXRjaF90YWJsZVtdID0g ewogCQkmJkNBU0VfRUVPUF9ET05FX1JFVFVSTiwKIAkJJiZDQVNFX0VFT1BfRE9ORV9OT19SRVRV Uk4sCiAJCSYmQ0FTRV9FRU9QX0lOTkVSX0ZFVENIU09NRSwKQEAgLTU5NSwxMSArNTk1LDExIEBA IEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwg Ym9vbCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9MQVNUCiAJfTsKIAotCVN0YXRpY0Fzc2VydERl Y2wobGVuZ3Rob2YoZGlzcGF0Y2hfdGFibGUpID09IEVFT1BfTEFTVCArIDEsCisJU3RhdGljQXNz ZXJ0RGVjbChsZW5ndGhvZihfZGlzcGF0Y2hfdGFibGUpID09IEVFT1BfTEFTVCArIDEsCiAJCQkJ CSAiZGlzcGF0Y2hfdGFibGUgb3V0IG9mIHdoYWNrIHdpdGggRXhwckV2YWxPcCIpOwogCiAJaWYg KHVubGlrZWx5KHN0YXRlID09IE5VTEwpKQotCQlyZXR1cm4gUG9pbnRlckdldERhdHVtKGRpc3Bh dGNoX3RhYmxlKTsKKwkJcmV0dXJuIFBvaW50ZXJHZXREYXR1bShfZGlzcGF0Y2hfdGFibGUpOwog I2Vsc2UKIAlBc3NlcnQoc3RhdGUgIT0gTlVMTCk7CiAjZW5kaWYJCQkJCQkJLyogRUVPX1VTRV9D T01QVVRFRF9HT1RPICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2N0bC9wZ19jdGwuYyBiL3Ny Yy9iaW4vcGdfY3RsL3BnX2N0bC5jCmluZGV4IDRmNjY2ZDkxMDM2Li5kMmI4ZDgzZDFjYSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMKKysrIGIvc3JjL2Jpbi9wZ19jdGwvcGdf Y3RsLmMKQEAgLTg3MywxOCArODczLDE4IEBAIHRyYXBfc2lnaW50X2R1cmluZ19zdGFydHVwKFNJ R05BTF9BUkdTKQogfQogCiBzdGF0aWMgY2hhciAqCi1maW5kX290aGVyX2V4ZWNfb3JfZGllKGNv bnN0IGNoYXIgKmFyZ3YwLCBjb25zdCBjaGFyICp0YXJnZXQsIGNvbnN0IGNoYXIgKnZlcnNpb25z dHIpCitmaW5kX290aGVyX2V4ZWNfb3JfZGllKGNvbnN0IGNoYXIgKm15YXJndjAsIGNvbnN0IGNo YXIgKnRhcmdldCwgY29uc3QgY2hhciAqdmVyc2lvbnN0cikKIHsKIAlpbnQJCQlyZXQ7CiAJY2hh cgkgICAqZm91bmRfcGF0aDsKIAogCWZvdW5kX3BhdGggPSBwZ19tYWxsb2MoTUFYUEdQQVRIKTsK IAotCWlmICgocmV0ID0gZmluZF9vdGhlcl9leGVjKGFyZ3YwLCB0YXJnZXQsIHZlcnNpb25zdHIs IGZvdW5kX3BhdGgpKSA8IDApCisJaWYgKChyZXQgPSBmaW5kX290aGVyX2V4ZWMobXlhcmd2MCwg dGFyZ2V0LCB2ZXJzaW9uc3RyLCBmb3VuZF9wYXRoKSkgPCAwKQogCXsKIAkJY2hhcgkJZnVsbF9w YXRoW01BWFBHUEFUSF07CiAKLQkJaWYgKGZpbmRfbXlfZXhlYyhhcmd2MCwgZnVsbF9wYXRoKSA8 IDApCisJCWlmIChmaW5kX215X2V4ZWMobXlhcmd2MCwgZnVsbF9wYXRoKSA8IDApCiAJCQlzdHJs Y3B5KGZ1bGxfcGF0aCwgcHJvZ25hbWUsIHNpemVvZihmdWxsX3BhdGgpKTsKIAogCQlpZiAocmV0 ID09IC0xKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKaW5kZXggYmI0NTFjMWJhZTEuLjVkYzA2YjRkMmI5IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wYWxsLmMKQEAgLTE4MTQsMjAgKzE4MTQsMjAgQEAgZHVtcFRpbWVzdGFtcChj b25zdCBjaGFyICptc2cpCiAgKiByZWFkX2R1bXBhbGxfZmlsdGVycyAtIHJldHJpZXZlIGRhdGFi YXNlIGlkZW50aWZpZXIgcGF0dGVybnMgZnJvbSBmaWxlCiAgKgogICogUGFyc2UgdGhlIHNwZWNp ZmllZCBmaWx0ZXIgZmlsZSBmb3IgaW5jbHVkZSBhbmQgZXhjbHVkZSBwYXR0ZXJucywgYW5kIGFk ZAotICogdGhlbSB0byB0aGUgcmVsZXZhbnQgbGlzdHMuICBJZiB0aGUgZmlsZW5hbWUgaXMgIi0i IHRoZW4gZmlsdGVycyB3aWxsIGJlCisgKiB0aGVtIHRvIHRoZSByZWxldmFudCBsaXN0cy4gIElm IHRoZSBmbmFtZSBpcyAiLSIgdGhlbiBmaWx0ZXJzIHdpbGwgYmUKICAqIHJlYWQgZnJvbSBTVERJ TiByYXRoZXIgdGhhbiBhIGZpbGUuCiAgKgogICogQXQgdGhlIG1vbWVudCwgdGhlIG9ubHkgYWxs b3dlZCBmaWx0ZXIgaXMgZm9yIGRhdGFiYXNlIGV4Y2x1c2lvbi4KICAqLwogc3RhdGljIHZvaWQK LXJlYWRfZHVtcGFsbF9maWx0ZXJzKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBTaW1wbGVTdHJpbmdM aXN0ICpwYXR0ZXJuKQorcmVhZF9kdW1wYWxsX2ZpbHRlcnMoY29uc3QgY2hhciAqZm5hbWUsIFNp bXBsZVN0cmluZ0xpc3QgKnBhdHRlcm4pCiB7CiAJRmlsdGVyU3RhdGVEYXRhIGZzdGF0ZTsKIAlj aGFyCSAgICpvYmpuYW1lOwogCUZpbHRlckNvbW1hbmRUeXBlIGNvbXR5cGU7CiAJRmlsdGVyT2Jq ZWN0VHlwZSBvYmp0eXBlOwogCi0JZmlsdGVyX2luaXQoJmZzdGF0ZSwgZmlsZW5hbWUsIGV4aXQp OworCWZpbHRlcl9pbml0KCZmc3RhdGUsIGZuYW1lLCBleGl0KTsKIAogCXdoaWxlIChmaWx0ZXJf cmVhZF9pdGVtKCZmc3RhdGUsICZvYmpuYW1lLCAmY29tdHlwZSwgJm9ianR5cGUpKQogCXsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYyBiL3NyYy9iaW4vcGdf cmVzZXR3YWwvcGdfcmVzZXR3YWwuYwppbmRleCA4ZDVkOTgwNTI3OS4uNWI1MjQ5NTM3ZTYgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYworKysgYi9zcmMvYmlu L3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMKQEAgLTcxOSwxNSArNzE5LDE1IEBAIEd1ZXNzQ29u dHJvbFZhbHVlcyh2b2lkKQogCiAKIC8qCi0gKiBQcmludCB0aGUgZ3Vlc3NlZCBwZ19jb250cm9s IHZhbHVlcyB3aGVuIHdlIGhhZCB0byBndWVzcy4KKyAqIFByaW50IHRoZSBiR3Vlc3NlZCBwZ19j b250cm9sIHZhbHVlcyB3aGVuIHdlIGhhZCB0byBndWVzcy4KICAqCiAgKiBOQjogdGhpcyBkaXNw bGF5IHNob3VsZCBiZSBqdXN0IHRob3NlIGZpZWxkcyB0aGF0IHdpbGwgbm90IGJlCiAgKiByZXNl dCBieSBSZXdyaXRlQ29udHJvbEZpbGUoKS4KICAqLwogc3RhdGljIHZvaWQKLVByaW50Q29udHJv bFZhbHVlcyhib29sIGd1ZXNzZWQpCitQcmludENvbnRyb2xWYWx1ZXMoYm9vbCBiR3Vlc3NlZCkK IHsKLQlpZiAoZ3Vlc3NlZCkKKwlpZiAoYkd1ZXNzZWQpCiAJCXByaW50ZihfKCJHdWVzc2VkIHBn X2NvbnRyb2wgdmFsdWVzOlxuXG4iKSk7CiAJZWxzZQogCQlwcmludGYoXygiQ3VycmVudCBwZ19j b250cm9sIHZhbHVlczpcblxuIikpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ190ZXN0X2ZzeW5j L3BnX3Rlc3RfZnN5bmMuYyBiL3NyYy9iaW4vcGdfdGVzdF9mc3luYy9wZ190ZXN0X2ZzeW5jLmMK aW5kZXggMDA2MGVhMTU5MDIuLmQzOTNiMGVjZmIwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Rl c3RfZnN5bmMvcGdfdGVzdF9mc3luYy5jCisrKyBiL3NyYy9iaW4vcGdfdGVzdF9mc3luYy9wZ190 ZXN0X2ZzeW5jLmMKQEAgLTYyNSwxMCArNjI1LDEwIEBAIHBnX2ZzeW5jX3dyaXRldGhyb3VnaChp bnQgZmQpCiAgKiBwcmludCBvdXQgdGhlIHdyaXRlcyBwZXIgc2Vjb25kIGZvciB0ZXN0cwogICov CiBzdGF0aWMgdm9pZAotcHJpbnRfZWxhcHNlKHN0cnVjdCB0aW1ldmFsIHN0YXJ0X3QsIHN0cnVj dCB0aW1ldmFsIHN0b3BfdCwgaW50IG9wcykKK3ByaW50X2VsYXBzZShzdHJ1Y3QgdGltZXZhbCBz dGFydF90aW1lLCBzdHJ1Y3QgdGltZXZhbCBzdG9wX3RpbWUsIGludCBvcHMpCiB7Ci0JZG91Ymxl CQl0b3RhbF90aW1lID0gKHN0b3BfdC50dl9zZWMgLSBzdGFydF90LnR2X3NlYykgKwotCQkoc3Rv cF90LnR2X3VzZWMgLSBzdGFydF90LnR2X3VzZWMpICogMC4wMDAwMDE7CisJZG91YmxlCQl0b3Rh bF90aW1lID0gKHN0b3BfdGltZS50dl9zZWMgLSBzdGFydF90aW1lLnR2X3NlYykgKworCQkoc3Rv cF90aW1lLnR2X3VzZWMgLSBzdGFydF90aW1lLnR2X3VzZWMpICogMC4wMDAwMDE7CiAJZG91Ymxl CQlwZXJfc2Vjb25kID0gb3BzIC8gdG90YWxfdGltZTsKIAlkb3VibGUJCWF2Z19vcF90aW1lX3Vz ID0gKHRvdGFsX3RpbWUgLyBvcHMpICogVVNFQ1NfU0VDOwogCi0tIAoyLjM5LjUgKEFwcGxlIEdp dC0xNTQpCgo= --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0008-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Disposition: attachment; filename="v5-0008-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trgi7 RnJvbSAxMDhiZTE1YTdjMmI3YTIxNmE4MmY5ZGZmYjExNzI1ZTgzNjBjZmQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE0OjU5OjUzICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAwOC8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IHN0YXRpYwogZmls ZS1zY29wZSBvbmVzIGluIGZpbGVfb3BzLmMKClRoaXMgY29tbWl0IGZpeGVzIHNldmVyYWwgY2Fz ZXMgaW4gZmlsZV9vcHMuYyB3aGVyZSBsb2NhbCB2YXJpYWJsZXMgdXNlZApuYW1lcyB0aGF0IGNv bmZsaWN0ZWQgd2l0aCBzdGF0aWMgdmFyaWFibGVzIGRlZmluZWQgYXQgZmlsZSBzY29wZS4gVGhl CmxvY2FsIGlkZW50aWZpZXJzIGFyZSByZW5hbWVkIHNvIHRoZXkgYXJlIG5vIGxvbmdlciBzaGFk b3dlZCBieSB0aGUgZmlsZS0Kc2NvcGUgdmFyaWFibGVzIGFuZCByZW1haW4gdW5hbWJpZ3VvdXMg d2l0aGluIHRoZWlyIHJlc3BlY3RpdmUgYmxvY2tzLgoKQXV0aG9yOiBDaGFvIExpIDxsaWNAaGln aGdvLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUVvV3gya1EyeDVnTWFq OHRITEozPWpmQytwNVlYSGtKeUhyRFRpUXcybm4yRkpUbVFAbWFpbC5nbWFpbC5jb20KLS0tCiBz cmMvYmluL3BnX3Jld2luZC9maWxlX29wcy5jIHwgNTAgKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXdpbmQvZmlsZV9vcHMuYyBiL3NyYy9i aW4vcGdfcmV3aW5kL2ZpbGVfb3BzLmMKaW5kZXggNTU2NTljZTIwMWYuLjM4NjcyMzNlOGE4IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX3Jld2luZC9maWxlX29wcy5jCisrKyBiL3NyYy9iaW4vcGdf cmV3aW5kL2ZpbGVfb3BzLmMKQEAgLTE4Niw0MSArMTg2LDQxIEBAIGNyZWF0ZV90YXJnZXQoZmls ZV9lbnRyeV90ICplbnRyeSkKIHZvaWQKIHJlbW92ZV90YXJnZXRfZmlsZShjb25zdCBjaGFyICpw YXRoLCBib29sIG1pc3Npbmdfb2spCiB7Ci0JY2hhcgkJZHN0cGF0aFtNQVhQR1BBVEhdOworCWNo YXIJCXBhdGhidWZbTUFYUEdQQVRIXTsKIAogCWlmIChkcnlfcnVuKQogCQlyZXR1cm47CiAKLQlz bnByaW50Zihkc3RwYXRoLCBzaXplb2YoZHN0cGF0aCksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0 LCBwYXRoKTsKLQlpZiAodW5saW5rKGRzdHBhdGgpICE9IDApCisJc25wcmludGYocGF0aGJ1Ziwg c2l6ZW9mKHBhdGhidWYpLCAiJXMvJXMiLCBkYXRhZGlyX3RhcmdldCwgcGF0aCk7CisJaWYgKHVu bGluayhwYXRoYnVmKSAhPSAwKQogCXsKIAkJaWYgKGVycm5vID09IEVOT0VOVCAmJiBtaXNzaW5n X29rKQogCQkJcmV0dXJuOwogCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVtb3ZlIGZpbGUgXCIl c1wiOiAlbSIsCi0JCQkJIGRzdHBhdGgpOworCQkJCSBwYXRoYnVmKTsKIAl9CiB9CiAKIHZvaWQK IHRydW5jYXRlX3RhcmdldF9maWxlKGNvbnN0IGNoYXIgKnBhdGgsIG9mZl90IG5ld3NpemUpCiB7 Ci0JY2hhcgkJZHN0cGF0aFtNQVhQR1BBVEhdOworCWNoYXIJCXBhdGhidWZbTUFYUEdQQVRIXTsK IAlpbnQJCQlmZDsKIAogCWlmIChkcnlfcnVuKQogCQlyZXR1cm47CiAKLQlzbnByaW50Zihkc3Rw YXRoLCBzaXplb2YoZHN0cGF0aCksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0LCBwYXRoKTsKKwlz bnByaW50ZihwYXRoYnVmLCBzaXplb2YocGF0aGJ1ZiksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0 LCBwYXRoKTsKIAotCWZkID0gb3Blbihkc3RwYXRoLCBPX1dST05MWSwgcGdfZmlsZV9jcmVhdGVf bW9kZSk7CisJZmQgPSBvcGVuKHBhdGhidWYsIE9fV1JPTkxZLCBwZ19maWxlX2NyZWF0ZV9tb2Rl KTsKIAlpZiAoZmQgPCAwKQogCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIg Zm9yIHRydW5jYXRpb246ICVtIiwKLQkJCQkgZHN0cGF0aCk7CisJCQkJIHBhdGhidWYpOwogCiAJ aWYgKGZ0cnVuY2F0ZShmZCwgbmV3c2l6ZSkgIT0gMCkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCB0 cnVuY2F0ZSBmaWxlIFwiJXNcIiB0byAldTogJW0iLAotCQkJCSBkc3RwYXRoLCAodW5zaWduZWQg aW50KSBuZXdzaXplKTsKKwkJCQkgcGF0aGJ1ZiwgKHVuc2lnbmVkIGludCkgbmV3c2l6ZSk7CiAK IAljbG9zZShmZCk7CiB9CkBAIC0yMjgsNTcgKzIyOCw1NyBAQCB0cnVuY2F0ZV90YXJnZXRfZmls ZShjb25zdCBjaGFyICpwYXRoLCBvZmZfdCBuZXdzaXplKQogc3RhdGljIHZvaWQKIGNyZWF0ZV90 YXJnZXRfZGlyKGNvbnN0IGNoYXIgKnBhdGgpCiB7Ci0JY2hhcgkJZHN0cGF0aFtNQVhQR1BBVEhd OworCWNoYXIJCXBhdGhidWZbTUFYUEdQQVRIXTsKIAogCWlmIChkcnlfcnVuKQogCQlyZXR1cm47 CiAKLQlzbnByaW50Zihkc3RwYXRoLCBzaXplb2YoZHN0cGF0aCksICIlcy8lcyIsIGRhdGFkaXJf dGFyZ2V0LCBwYXRoKTsKLQlpZiAobWtkaXIoZHN0cGF0aCwgcGdfZGlyX2NyZWF0ZV9tb2RlKSAh PSAwKQorCXNucHJpbnRmKHBhdGhidWYsIHNpemVvZihwYXRoYnVmKSwgIiVzLyVzIiwgZGF0YWRp cl90YXJnZXQsIHBhdGgpOworCWlmIChta2RpcihwYXRoYnVmLCBwZ19kaXJfY3JlYXRlX21vZGUp ICE9IDApCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiVzXCI6ICVt IiwKLQkJCQkgZHN0cGF0aCk7CisJCQkJIHBhdGhidWYpOwogfQogCiBzdGF0aWMgdm9pZAogcmVt b3ZlX3RhcmdldF9kaXIoY29uc3QgY2hhciAqcGF0aCkKIHsKLQljaGFyCQlkc3RwYXRoW01BWFBH UEFUSF07CisJY2hhcgkJcGF0aGJ1ZltNQVhQR1BBVEhdOwogCiAJaWYgKGRyeV9ydW4pCiAJCXJl dHVybjsKIAotCXNucHJpbnRmKGRzdHBhdGgsIHNpemVvZihkc3RwYXRoKSwgIiVzLyVzIiwgZGF0 YWRpcl90YXJnZXQsIHBhdGgpOwotCWlmIChybWRpcihkc3RwYXRoKSAhPSAwKQorCXNucHJpbnRm KHBhdGhidWYsIHNpemVvZihwYXRoYnVmKSwgIiVzLyVzIiwgZGF0YWRpcl90YXJnZXQsIHBhdGgp OworCWlmIChybWRpcihwYXRoYnVmKSAhPSAwKQogCQlwZ19mYXRhbCgiY291bGQgbm90IHJlbW92 ZSBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsCi0JCQkJIGRzdHBhdGgpOworCQkJCSBwYXRoYnVmKTsK IH0KIAogc3RhdGljIHZvaWQKIGNyZWF0ZV90YXJnZXRfc3ltbGluayhjb25zdCBjaGFyICpwYXRo LCBjb25zdCBjaGFyICpsaW5rKQogewotCWNoYXIJCWRzdHBhdGhbTUFYUEdQQVRIXTsKKwljaGFy CQlwYXRoYnVmW01BWFBHUEFUSF07CiAKIAlpZiAoZHJ5X3J1bikKIAkJcmV0dXJuOwogCi0Jc25w cmludGYoZHN0cGF0aCwgc2l6ZW9mKGRzdHBhdGgpLCAiJXMvJXMiLCBkYXRhZGlyX3RhcmdldCwg cGF0aCk7Ci0JaWYgKHN5bWxpbmsobGluaywgZHN0cGF0aCkgIT0gMCkKKwlzbnByaW50ZihwYXRo YnVmLCBzaXplb2YocGF0aGJ1ZiksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0LCBwYXRoKTsKKwlp ZiAoc3ltbGluayhsaW5rLCBwYXRoYnVmKSAhPSAwKQogCQlwZ19mYXRhbCgiY291bGQgbm90IGNy ZWF0ZSBzeW1ib2xpYyBsaW5rIGF0IFwiJXNcIjogJW0iLAotCQkJCSBkc3RwYXRoKTsKKwkJCQkg cGF0aGJ1Zik7CiB9CiAKIHN0YXRpYyB2b2lkCiByZW1vdmVfdGFyZ2V0X3N5bWxpbmsoY29uc3Qg Y2hhciAqcGF0aCkKIHsKLQljaGFyCQlkc3RwYXRoW01BWFBHUEFUSF07CisJY2hhcgkJcGF0aGJ1 ZltNQVhQR1BBVEhdOwogCiAJaWYgKGRyeV9ydW4pCiAJCXJldHVybjsKIAotCXNucHJpbnRmKGRz dHBhdGgsIHNpemVvZihkc3RwYXRoKSwgIiVzLyVzIiwgZGF0YWRpcl90YXJnZXQsIHBhdGgpOwot CWlmICh1bmxpbmsoZHN0cGF0aCkgIT0gMCkKKwlzbnByaW50ZihwYXRoYnVmLCBzaXplb2YocGF0 aGJ1ZiksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0LCBwYXRoKTsKKwlpZiAodW5saW5rKHBhdGhi dWYpICE9IDApCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVtb3ZlIHN5bWJvbGljIGxpbmsgXCIl c1wiOiAlbSIsCi0JCQkJIGRzdHBhdGgpOworCQkJCSBwYXRoYnVmKTsKIH0KIAogLyoKLS0gCjIu MzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0009-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Disposition: attachment; filename="v5-0009-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trgi8 RnJvbSAxYmViM2IzMGE0YjBmY2UyOTQxMDQ0NzE2YjM3NTZkYzIzMTlkYTgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE1OjA1OjA1ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAwOS8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IGdsb2JhbHMKIGFj cm9zcyBzZXZlcmFsIGZpbGVzCgpUaGlzIGNvbW1pdCBmaXhlcyBtdWx0aXBsZSBpbnN0YW5jZXMg d2hlcmUgbG9jYWwgdmFyaWFibGVzIHVzZWQgdGhlIHNhbWUKbmFtZXMgYXMgZ2xvYmFsIGlkZW50 aWZpZXJzIGluIHZhcmlvdXMgbW9kdWxlcy4gVGhlIGFmZmVjdGVkIGxvY2FscyBhcmUKcmVuYW1l ZCBzbyB0aGV5IGFyZSBubyBsb25nZXIgc2hhZG93ZWQgYnkgdGhlIGdsb2JhbHMgYW5kIHJlbWFp biBjbGVhcgp3aXRoaW4gdGhlaXIgcmVzcGVjdGl2ZSBzY29wZXMuCgpBdXRob3I6IENoYW8gTGkg PGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRW9XeDJr UTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5SHJEVGlRdzJubjJGSlRtUUBtYWlsLmdtYWlsLmNv bQotLS0KIHNyYy9iYWNrZW5kL2xpYnBxL2JlLXNlY3VyZS1jb21tb24uYyAgICAgfCAxMiArKysr LS0tLS0KIHNyYy9jb21tb24vY29udHJvbGRhdGFfdXRpbHMuYyAgICAgICAgICAgfCAgOCArKyst LS0KIHNyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9kZXNjcmlwdG9yLmMgfCAzNCArKysrKysr KysrKystLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMjcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbGlicHEvYmUtc2VjdXJlLWNv bW1vbi5jIGIvc3JjL2JhY2tlbmQvbGlicHEvYmUtc2VjdXJlLWNvbW1vbi5jCmluZGV4IGU4Yjgz N2QxZmE3Li44YjY3NDQzNWJkMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbGlicHEvYmUtc2Vj dXJlLWNvbW1vbi5jCisrKyBiL3NyYy9iYWNrZW5kL2xpYnBxL2JlLXNlY3VyZS1jb21tb24uYwpA QCAtMTExLDE3ICsxMTEsMTcgQEAgZXJyb3I6CiAgKiBDaGVjayBwZXJtaXNzaW9ucyBmb3IgU1NM IGtleSBmaWxlcy4KICAqLwogYm9vbAotY2hlY2tfc3NsX2tleV9maWxlX3Blcm1pc3Npb25zKGNv bnN0IGNoYXIgKnNzbF9rZXlfZmlsZSwgYm9vbCBpc1NlcnZlclN0YXJ0KQorY2hlY2tfc3NsX2tl eV9maWxlX3Blcm1pc3Npb25zKGNvbnN0IGNoYXIgKnNzbEtleUZpbGUsIGJvb2wgaXNTZXJ2ZXJT dGFydCkKIHsKIAlpbnQJCQlsb2dsZXZlbCA9IGlzU2VydmVyU3RhcnQgPyBGQVRBTCA6IExPRzsK IAlzdHJ1Y3Qgc3RhdCBidWY7CiAKLQlpZiAoc3RhdChzc2xfa2V5X2ZpbGUsICZidWYpICE9IDAp CisJaWYgKHN0YXQoc3NsS2V5RmlsZSwgJmJ1ZikgIT0gMCkKIAl7CiAJCWVyZXBvcnQobG9nbGV2 ZWwsCiAJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCiAJCQkJIGVycm1zZygiY291bGQg bm90IGFjY2VzcyBwcml2YXRlIGtleSBmaWxlIFwiJXNcIjogJW0iLAotCQkJCQkJc3NsX2tleV9m aWxlKSkpOworCQkJCQkJc3NsS2V5RmlsZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIApAQCAt MTMxLDcgKzEzMSw3IEBAIGNoZWNrX3NzbF9rZXlfZmlsZV9wZXJtaXNzaW9ucyhjb25zdCBjaGFy ICpzc2xfa2V5X2ZpbGUsIGJvb2wgaXNTZXJ2ZXJTdGFydCkKIAkJZXJlcG9ydChsb2dsZXZlbCwK IAkJCQkoZXJyY29kZShFUlJDT0RFX0NPTkZJR19GSUxFX0VSUk9SKSwKIAkJCQkgZXJybXNnKCJw cml2YXRlIGtleSBmaWxlIFwiJXNcIiBpcyBub3QgYSByZWd1bGFyIGZpbGUiLAotCQkJCQkJc3Ns X2tleV9maWxlKSkpOworCQkJCQkJc3NsS2V5RmlsZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0K IApAQCAtMTU3LDcgKzE1Nyw3IEBAIGNoZWNrX3NzbF9rZXlfZmlsZV9wZXJtaXNzaW9ucyhjb25z dCBjaGFyICpzc2xfa2V5X2ZpbGUsIGJvb2wgaXNTZXJ2ZXJTdGFydCkKIAkJZXJlcG9ydChsb2ds ZXZlbCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0NPTkZJR19GSUxFX0VSUk9SKSwKIAkJCQkgZXJy bXNnKCJwcml2YXRlIGtleSBmaWxlIFwiJXNcIiBtdXN0IGJlIG93bmVkIGJ5IHRoZSBkYXRhYmFz ZSB1c2VyIG9yIHJvb3QiLAotCQkJCQkJc3NsX2tleV9maWxlKSkpOworCQkJCQkJc3NsS2V5Rmls ZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIApAQCAtMTY3LDcgKzE2Nyw3IEBAIGNoZWNrX3Nz bF9rZXlfZmlsZV9wZXJtaXNzaW9ucyhjb25zdCBjaGFyICpzc2xfa2V5X2ZpbGUsIGJvb2wgaXNT ZXJ2ZXJTdGFydCkKIAkJZXJlcG9ydChsb2dsZXZlbCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0NP TkZJR19GSUxFX0VSUk9SKSwKIAkJCQkgZXJybXNnKCJwcml2YXRlIGtleSBmaWxlIFwiJXNcIiBo YXMgZ3JvdXAgb3Igd29ybGQgYWNjZXNzIiwKLQkJCQkJCXNzbF9rZXlfZmlsZSksCisJCQkJCQlz c2xLZXlGaWxlKSwKIAkJCQkgZXJyZGV0YWlsKCJGaWxlIG11c3QgaGF2ZSBwZXJtaXNzaW9ucyB1 PXJ3ICgwNjAwKSBvciBsZXNzIGlmIG93bmVkIGJ5IHRoZSBkYXRhYmFzZSB1c2VyLCBvciBwZXJt aXNzaW9ucyB1PXJ3LGc9ciAoMDY0MCkgb3IgbGVzcyBpZiBvd25lZCBieSByb290LiIpKSk7CiAJ CXJldHVybiBmYWxzZTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0 aWxzLmMgYi9zcmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmMKaW5kZXggZmEzNzVkYzkxMjku Ljc4NDY0ZTgyMzdmIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmMK KysrIGIvc3JjL2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5jCkBAIC00OSwxMSArNDksMTEgQEAK ICAqIGZpbGUgZGF0YSBpcyBjb3JyZWN0LgogICovCiBDb250cm9sRmlsZURhdGEgKgotZ2V0X2Nv bnRyb2xmaWxlKGNvbnN0IGNoYXIgKkRhdGFEaXIsIGJvb2wgKmNyY19va19wKQorZ2V0X2NvbnRy b2xmaWxlKGNvbnN0IGNoYXIgKmRhdGFfZGlyLCBib29sICpjcmNfb2tfcCkKIHsKIAljaGFyCQlD b250cm9sRmlsZVBhdGhbTUFYUEdQQVRIXTsKIAotCXNucHJpbnRmKENvbnRyb2xGaWxlUGF0aCwg TUFYUEdQQVRILCAiJXMvJXMiLCBEYXRhRGlyLCBYTE9HX0NPTlRST0xfRklMRSk7CisJc25wcmlu dGYoQ29udHJvbEZpbGVQYXRoLCBNQVhQR1BBVEgsICIlcy8lcyIsIGRhdGFfZGlyLCBYTE9HX0NP TlRST0xfRklMRSk7CiAKIAlyZXR1cm4gZ2V0X2NvbnRyb2xmaWxlX2J5X2V4YWN0X3BhdGgoQ29u dHJvbEZpbGVQYXRoLCBjcmNfb2tfcCk7CiB9CkBAIC0xODYsNyArMTg2LDcgQEAgcmV0cnk6CiAg KiByb3V0aW5lIGluIHRoZSBiYWNrZW5kLgogICovCiB2b2lkCi11cGRhdGVfY29udHJvbGZpbGUo Y29uc3QgY2hhciAqRGF0YURpciwKK3VwZGF0ZV9jb250cm9sZmlsZShjb25zdCBjaGFyICpkYXRh X2RpciwKIAkJCQkgICBDb250cm9sRmlsZURhdGEgKkNvbnRyb2xGaWxlLCBib29sIGRvX3N5bmMp CiB7CiAJaW50CQkJZmQ7CkBAIC0yMTEsNyArMjExLDcgQEAgdXBkYXRlX2NvbnRyb2xmaWxlKGNv bnN0IGNoYXIgKkRhdGFEaXIsCiAJbWVtc2V0KGJ1ZmZlciwgMCwgUEdfQ09OVFJPTF9GSUxFX1NJ WkUpOwogCW1lbWNweShidWZmZXIsIENvbnRyb2xGaWxlLCBzaXplb2YoQ29udHJvbEZpbGVEYXRh KSk7CiAKLQlzbnByaW50ZihDb250cm9sRmlsZVBhdGgsIHNpemVvZihDb250cm9sRmlsZVBhdGgp LCAiJXMvJXMiLCBEYXRhRGlyLCBYTE9HX0NPTlRST0xfRklMRSk7CisJc25wcmludGYoQ29udHJv bEZpbGVQYXRoLCBzaXplb2YoQ29udHJvbEZpbGVQYXRoKSwgIiVzLyVzIiwgZGF0YV9kaXIsIFhM T0dfQ09OVFJPTF9GSUxFKTsKIAogI2lmbmRlZiBGUk9OVEVORAogCmRpZmYgLS1naXQgYS9zcmMv aW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvZGVzY3JpcHRvci5jIGIvc3JjL2ludGVyZmFjZXMvZWNw Zy9wcmVwcm9jL2Rlc2NyaXB0b3IuYwppbmRleCBlOGM3MDE2YmRjMS4uOWRhYzc2MWUzOTMgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9kZXNjcmlwdG9yLmMKKysrIGIv c3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2Rlc2NyaXB0b3IuYwpAQCAtNzIsNyArNzIsNyBA QCBFQ1BHbnVtZXJpY19sdmFsdWUoY2hhciAqbmFtZSkKIHN0YXRpYyBzdHJ1Y3QgZGVzY3JpcHRv ciAqZGVzY3JpcHRvcnM7CiAKIHZvaWQKLWFkZF9kZXNjcmlwdG9yKGNvbnN0IGNoYXIgKm5hbWUs IGNvbnN0IGNoYXIgKmNvbm5lY3Rpb24pCithZGRfZGVzY3JpcHRvcihjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICpjb25uX3N0cikKIHsKIAlzdHJ1Y3QgZGVzY3JpcHRvciAqbmV3OwogCkBA IC04MywxNSArODMsMTUgQEAgYWRkX2Rlc2NyaXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqY29ubmVjdGlvbikKIAogCW5ldy0+bmV4dCA9IGRlc2NyaXB0b3JzOwogCW5ldy0+bmFt ZSA9IG1tX3N0cmR1cChuYW1lKTsKLQlpZiAoY29ubmVjdGlvbikKLQkJbmV3LT5jb25uZWN0aW9u ID0gbW1fc3RyZHVwKGNvbm5lY3Rpb24pOworCWlmIChjb25uX3N0cikKKwkJbmV3LT5jb25uZWN0 aW9uID0gbW1fc3RyZHVwKGNvbm5fc3RyKTsKIAllbHNlCiAJCW5ldy0+Y29ubmVjdGlvbiA9IE5V TEw7CiAJZGVzY3JpcHRvcnMgPSBuZXc7CiB9CiAKIHZvaWQKLWRyb3BfZGVzY3JpcHRvcihjb25z dCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpjb25uZWN0aW9uKQorZHJvcF9kZXNjcmlwdG9yKGNv bnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmNvbm5fc3RyKQogewogCXN0cnVjdCBkZXNjcmlw dG9yICppOwogCXN0cnVjdCBkZXNjcmlwdG9yICoqbGFzdHB0ciA9ICZkZXNjcmlwdG9yczsKQEAg LTEwMyw5ICsxMDMsOSBAQCBkcm9wX2Rlc2NyaXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqY29ubmVjdGlvbikKIAl7CiAJCWlmIChzdHJjbXAobmFtZSwgaS0+bmFtZSkgPT0gMCkK IAkJewotCQkJaWYgKCghY29ubmVjdGlvbiAmJiAhaS0+Y29ubmVjdGlvbikKLQkJCQl8fCAoY29u bmVjdGlvbiAmJiBpLT5jb25uZWN0aW9uCi0JCQkJCSYmIHN0cmNtcChjb25uZWN0aW9uLCBpLT5j b25uZWN0aW9uKSA9PSAwKSkKKwkJCWlmICgoIWNvbm5fc3RyICYmICFpLT5jb25uZWN0aW9uKQor CQkJCXx8IChjb25uX3N0ciAmJiBpLT5jb25uZWN0aW9uCisJCQkJCSYmIHN0cmNtcChjb25uX3N0 ciwgaS0+Y29ubmVjdGlvbikgPT0gMCkpCiAJCQl7CiAJCQkJKmxhc3RwdHIgPSBpLT5uZXh0Owog CQkJCWZyZWUoaS0+Y29ubmVjdGlvbik7CkBAIC0xMTUsMTQgKzExNSwxNCBAQCBkcm9wX2Rlc2Ny aXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqY29ubmVjdGlvbikKIAkJCX0KIAkJ fQogCX0KLQlpZiAoY29ubmVjdGlvbikKLQkJbW1lcnJvcihQQVJTRV9FUlJPUiwgRVRfV0FSTklO RywgImRlc2NyaXB0b3IgJXMgYm91bmQgdG8gY29ubmVjdGlvbiAlcyBkb2VzIG5vdCBleGlzdCIs IG5hbWUsIGNvbm5lY3Rpb24pOworCWlmIChjb25uX3N0cikKKwkJbW1lcnJvcihQQVJTRV9FUlJP UiwgRVRfV0FSTklORywgImRlc2NyaXB0b3IgJXMgYm91bmQgdG8gY29ubmVjdGlvbiAlcyBkb2Vz IG5vdCBleGlzdCIsIG5hbWUsIGNvbm5fc3RyKTsKIAllbHNlCiAJCW1tZXJyb3IoUEFSU0VfRVJS T1IsIEVUX1dBUk5JTkcsICJkZXNjcmlwdG9yICVzIGJvdW5kIHRvIHRoZSBkZWZhdWx0IGNvbm5l Y3Rpb24gZG9lcyBub3QgZXhpc3QiLCBuYW1lKTsKIH0KIAogc3RydWN0IGRlc2NyaXB0b3IgKgot bG9va3VwX2Rlc2NyaXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqY29ubmVjdGlv bikKK2xvb2t1cF9kZXNjcmlwdG9yKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmNvbm5f c3RyKQogewogCXN0cnVjdCBkZXNjcmlwdG9yICppOwogCkBAIC0xMzMsMjAgKzEzMywyMCBAQCBs b29rdXBfZGVzY3JpcHRvcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpjb25uZWN0aW9u KQogCXsKIAkJaWYgKHN0cmNtcChuYW1lLCBpLT5uYW1lKSA9PSAwKQogCQl7Ci0JCQlpZiAoKCFj b25uZWN0aW9uICYmICFpLT5jb25uZWN0aW9uKQotCQkJCXx8IChjb25uZWN0aW9uICYmIGktPmNv bm5lY3Rpb24KLQkJCQkJJiYgc3RyY21wKGNvbm5lY3Rpb24sIGktPmNvbm5lY3Rpb24pID09IDAp KQorCQkJaWYgKCghY29ubl9zdHIgJiYgIWktPmNvbm5lY3Rpb24pCisJCQkJfHwgKGNvbm5fc3Ry ICYmIGktPmNvbm5lY3Rpb24KKwkJCQkJJiYgc3RyY21wKGNvbm5fc3RyLCBpLT5jb25uZWN0aW9u KSA9PSAwKSkKIAkJCQlyZXR1cm4gaTsKLQkJCWlmIChjb25uZWN0aW9uICYmICFpLT5jb25uZWN0 aW9uKQorCQkJaWYgKGNvbm5fc3RyICYmICFpLT5jb25uZWN0aW9uKQogCQkJewogCQkJCS8qIG92 ZXJ3cml0ZSBkZXNjcmlwdG9yJ3MgY29ubmVjdGlvbiAqLwotCQkJCWktPmNvbm5lY3Rpb24gPSBt bV9zdHJkdXAoY29ubmVjdGlvbik7CisJCQkJaS0+Y29ubmVjdGlvbiA9IG1tX3N0cmR1cChjb25u X3N0cik7CiAJCQkJcmV0dXJuIGk7CiAJCQl9CiAJCX0KIAl9Ci0JaWYgKGNvbm5lY3Rpb24pCi0J CW1tZXJyb3IoUEFSU0VfRVJST1IsIEVUX1dBUk5JTkcsICJkZXNjcmlwdG9yICVzIGJvdW5kIHRv IGNvbm5lY3Rpb24gJXMgZG9lcyBub3QgZXhpc3QiLCBuYW1lLCBjb25uZWN0aW9uKTsKKwlpZiAo Y29ubl9zdHIpCisJCW1tZXJyb3IoUEFSU0VfRVJST1IsIEVUX1dBUk5JTkcsICJkZXNjcmlwdG9y ICVzIGJvdW5kIHRvIGNvbm5lY3Rpb24gJXMgZG9lcyBub3QgZXhpc3QiLCBuYW1lLCBjb25uX3N0 cik7CiAJZWxzZQogCQltbWVycm9yKFBBUlNFX0VSUk9SLCBFVF9XQVJOSU5HLCAiZGVzY3JpcHRv ciAlcyBib3VuZCB0byB0aGUgZGVmYXVsdCBjb25uZWN0aW9uIGRvZXMgbm90IGV4aXN0IiwgbmFt ZSk7CiAJcmV0dXJuIE5VTEw7Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0011-cleanup-rename-local-conn-variables-to-avoid-shad.patch" Content-Disposition: attachment; filename="v5-0011-cleanup-rename-local-conn-variables-to-avoid-shad.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trgj10 RnJvbSAwZTE1YmU0OTU1YjUyOGYzZDc2MzEwOWY0YWMzM2FhOWZmM2I1ZDE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE2OjAzOjE5ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAxMS8x M10gY2xlYW51cDogcmVuYW1lIGxvY2FsIGNvbm4gdmFyaWFibGVzIHRvIGF2b2lkCiBzaGFkb3dp bmcgdGhlIGdsb2JhbAoKVGhpcyBjb21taXQgcmVuYW1lcyBhbGwgbG9jYWwgdmFyaWFibGVzIG5h bWVkICdjb25uJyB0byAnbXljb25uJyB0byBhdm9pZApzaGFkb3dpbmcgdGhlIGdsb2JhbCBjb25u ZWN0aW9uIHZhcmlhYmxlLiBUaGlzIGVuc3VyZXMgdGhlIGxvY2FsIGFuZApnbG9iYWwgaWRlbnRp ZmllcnMgcmVtYWluIGNsZWFybHkgZGlzdGluY3Qgd2l0aGluIGVhY2ggc2NvcGUuCgpBIGZldyBh ZGRpdGlvbmFsIHNoYWRvd2luZyBmaXhlcyBpbiB0aGUgc2FtZSBjb2RlIGFyZWFzIGFyZSBpbmNs dWRlZCBhcwp3ZWxsLiBUaGVzZSBhcmUgdW5yZWxhdGVkIHRvIHRoZSBjb25uIHJlbmFtaW5nIGJ1 dCBvY2N1ciBpbiB0aGUgc2FtZQpmaWxlcywgc28gdGhleSBhcmUgYnVuZGxlZCBoZXJlIHRvIGtl ZXAgdGhlIGNvbW1pdCBzZWxmLWNvbnRhaW5lZC4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hn by5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01hajh0 SExKMz1qZkMrcDVZWEhrSnlIckRUaVF3Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQogc3Jj L2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jhc2ViYWNrdXAuYyAgfCAgMzIgKysrKy0tLS0KIHNyYy9i aW4vcGdfYmFzZWJhY2t1cC9wZ19yZWN2bG9naWNhbC5jIHwgIDI0ICsrKy0tLQogc3JjL2Jpbi9w Z19iYXNlYmFja3VwL3JlY2VpdmVsb2cuYyAgICAgfCAxMDggKysrKysrKysrKysrLS0tLS0tLS0t LS0tLQogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3N0cmVhbXV0aWwuYyAgICAgfCAgNTggKysrKysr LS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKSwgMTExIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFja3VwLmMg Yi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jCmluZGV4IDBhM2NhNDMxNWRl Li41YTU3YzY0ZGNkMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jhc2Vi YWNrdXAuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jCkBAIC0x MDEzLDE2ICsxMDEzLDE2IEBAIGJhY2t1cF9wYXJzZV9jb21wcmVzc19vcHRpb25zKGNoYXIgKm9w dGlvbiwgY2hhciAqKmFsZ29yaXRobSwgY2hhciAqKmRldGFpbCwKICAqIGNodW5rLgogICovCiBz dGF0aWMgdm9pZAotUmVjZWl2ZUNvcHlEYXRhKFBHY29ubiAqY29ubiwgV3JpdGVEYXRhQ2FsbGJh Y2sgY2FsbGJhY2ssCitSZWNlaXZlQ29weURhdGEoUEdjb25uICpteWNvbm4sIFdyaXRlRGF0YUNh bGxiYWNrIGNhbGxiYWNrLAogCQkJCXZvaWQgKmNhbGxiYWNrX2RhdGEpCiB7CiAJUEdyZXN1bHQg ICAqcmVzOwogCiAJLyogR2V0IHRoZSBDT1BZIGRhdGEgc3RyZWFtLiAqLwotCXJlcyA9IFBRZ2V0 UmVzdWx0KGNvbm4pOworCXJlcyA9IFBRZ2V0UmVzdWx0KG15Y29ubik7CiAJaWYgKFBRcmVzdWx0 U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09QWV9PVVQpCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgZ2V0 IENPUFkgZGF0YSBzdHJlYW06ICVzIiwKLQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJ CSBQUWVycm9yTWVzc2FnZShteWNvbm4pKTsKIAlQUWNsZWFyKHJlcyk7CiAKIAkvKiBMb29wIG92 ZXIgY2h1bmtzIHVudGlsIGRvbmUuICovCkBAIC0xMDMxLDcgKzEwMzEsNyBAQCBSZWNlaXZlQ29w eURhdGEoUEdjb25uICpjb25uLCBXcml0ZURhdGFDYWxsYmFjayBjYWxsYmFjaywKIAkJaW50CQkJ cjsKIAkJY2hhcgkgICAqY29weWJ1ZjsKIAotCQlyID0gUFFnZXRDb3B5RGF0YShjb25uLCAmY29w eWJ1ZiwgMCk7CisJCXIgPSBQUWdldENvcHlEYXRhKG15Y29ubiwgJmNvcHlidWYsIDApOwogCQlp ZiAociA9PSAtMSkKIAkJewogCQkJLyogRW5kIG9mIGNodW5rLiAqLwpAQCAtMTAzOSw3ICsxMDM5 LDcgQEAgUmVjZWl2ZUNvcHlEYXRhKFBHY29ubiAqY29ubiwgV3JpdGVEYXRhQ2FsbGJhY2sgY2Fs bGJhY2ssCiAJCX0KIAkJZWxzZSBpZiAociA9PSAtMikKIAkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qg cmVhZCBDT1BZIGRhdGE6ICVzIiwKLQkJCQkJIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJCQkJ IFBRZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCiAJCWlmIChiZ2NoaWxkX2V4aXRlZCkKIAkJCXBn X2ZhdGFsKCJiYWNrZ3JvdW5kIHByb2Nlc3MgdGVybWluYXRlZCB1bmV4cGVjdGVkbHkiKTsKQEAg LTEyODMsNyArMTI4Myw3IEBAIENyZWF0ZUJhY2t1cFN0cmVhbWVyKGNoYXIgKmFyY2hpdmVfbmFt ZSwgY2hhciAqc3BjbG9jYXRpb24sCiAgKiBtYW5pZmVzdCBpZiBwcmVzZW50IC0gYXMgYSBzaW5n bGUgQ09QWSBzdHJlYW0uCiAgKi8KIHN0YXRpYyB2b2lkCi1SZWNlaXZlQXJjaGl2ZVN0cmVhbShQ R2Nvbm4gKmNvbm4sIHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gKmNvbXByZXNzKQorUmVjZWl2 ZUFyY2hpdmVTdHJlYW0oUEdjb25uICpteWNvbm4sIHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24g KmNvbXByZXNzKQogewogCUFyY2hpdmVTdHJlYW1TdGF0ZSBzdGF0ZTsKIApAQCAtMTI5Myw3ICsx MjkzLDcgQEAgUmVjZWl2ZUFyY2hpdmVTdHJlYW0oUEdjb25uICpjb25uLCBwZ19jb21wcmVzc19z cGVjaWZpY2F0aW9uICpjb21wcmVzcykKIAlzdGF0ZS5jb21wcmVzcyA9IGNvbXByZXNzOwogCiAJ LyogQWxsIHRoZSByZWFsIHdvcmsgaGFwcGVucyBpbiBSZWNlaXZlQXJjaGl2ZVN0cmVhbUNodW5r LiAqLwotCVJlY2VpdmVDb3B5RGF0YShjb25uLCBSZWNlaXZlQXJjaGl2ZVN0cmVhbUNodW5rLCAm c3RhdGUpOworCVJlY2VpdmVDb3B5RGF0YShteWNvbm4sIFJlY2VpdmVBcmNoaXZlU3RyZWFtQ2h1 bmssICZzdGF0ZSk7CiAKIAkvKiBJZiB3ZSB3cm90ZSB0aGUgYmFja3VwIG1hbmlmZXN0IHRvIGEg ZmlsZSwgY2xvc2UgdGhlIGZpbGUuICovCiAJaWYgKHN0YXRlLm1hbmlmZXN0X2ZpbGUgIT1OVUxM KQpAQCAtMTU5OCw3ICsxNTk4LDcgQEAgUmVwb3J0Q29weURhdGFQYXJzZUVycm9yKHNpemVfdCBy LCBjaGFyICpjb3B5YnVmKQogICogcmVjZWl2ZSB0aGUgYmFja3VwIG1hbmlmZXN0IGFuZCBpbmpl Y3QgaXQgaW50byB0aGF0IHRhcmZpbGUuCiAgKi8KIHN0YXRpYyB2b2lkCi1SZWNlaXZlVGFyRmls ZShQR2Nvbm4gKmNvbm4sIGNoYXIgKmFyY2hpdmVfbmFtZSwgY2hhciAqc3BjbG9jYXRpb24sCitS ZWNlaXZlVGFyRmlsZShQR2Nvbm4gKm15Y29ubiwgY2hhciAqYXJjaGl2ZV9uYW1lLCBjaGFyICpz cGNsb2NhdGlvbiwKIAkJCSAgIGJvb2wgdGFibGVzcGFjZW51bSwgcGdfY29tcHJlc3Nfc3BlY2lm aWNhdGlvbiAqY29tcHJlc3MpCiB7CiAJV3JpdGVUYXJTdGF0ZSBzdGF0ZTsKQEAgLTE2MDksMTYg KzE2MDksMTYgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBjaGFyICphcmNoaXZlX25h bWUsIGNoYXIgKnNwY2xvY2F0aW9uLAogCS8qIFBhc3MgYWxsIENPUFkgZGF0YSB0aHJvdWdoIHRv IHRoZSBiYWNrdXAgc3RyZWFtZXIuICovCiAJbWVtc2V0KCZzdGF0ZSwgMCwgc2l6ZW9mKHN0YXRl KSk7CiAJaXNfcmVjb3ZlcnlfZ3VjX3N1cHBvcnRlZCA9Ci0JCVBRc2VydmVyVmVyc2lvbihjb25u KSA+PSBNSU5JTVVNX1ZFUlNJT05fRk9SX1JFQ09WRVJZX0dVQzsKKwkJUFFzZXJ2ZXJWZXJzaW9u KG15Y29ubikgPj0gTUlOSU1VTV9WRVJTSU9OX0ZPUl9SRUNPVkVSWV9HVUM7CiAJZXhwZWN0X3Vu dGVybWluYXRlZF90YXJmaWxlID0KLQkJUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pIDwgTUlOSU1VTV9W RVJTSU9OX0ZPUl9URVJNSU5BVEVEX1RBUkZJTEU7CisJCVBRc2VydmVyVmVyc2lvbihteWNvbm4p IDwgTUlOSU1VTV9WRVJTSU9OX0ZPUl9URVJNSU5BVEVEX1RBUkZJTEU7CiAJc3RhdGUuc3RyZWFt ZXIgPSBDcmVhdGVCYWNrdXBTdHJlYW1lcihhcmNoaXZlX25hbWUsIHNwY2xvY2F0aW9uLAogCQkJ CQkJCQkJCSAgJm1hbmlmZXN0X2luamVjdF9zdHJlYW1lciwKIAkJCQkJCQkJCQkgIGlzX3JlY292 ZXJ5X2d1Y19zdXBwb3J0ZWQsCiAJCQkJCQkJCQkJICBleHBlY3RfdW50ZXJtaW5hdGVkX3RhcmZp bGUsCiAJCQkJCQkJCQkJICBjb21wcmVzcyk7CiAJc3RhdGUudGFibGVzcGFjZW51bSA9IHRhYmxl c3BhY2VudW07Ci0JUmVjZWl2ZUNvcHlEYXRhKGNvbm4sIFJlY2VpdmVUYXJDb3B5Q2h1bmssICZz dGF0ZSk7CisJUmVjZWl2ZUNvcHlEYXRhKG15Y29ubiwgUmVjZWl2ZVRhckNvcHlDaHVuaywgJnN0 YXRlKTsKIAlwcm9ncmVzc191cGRhdGVfZmlsZW5hbWUoTlVMTCk7CiAKIAkvKgpAQCAtMTYzMyw3 ICsxNjMzLDcgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBjaGFyICphcmNoaXZlX25h bWUsIGNoYXIgKnNwY2xvY2F0aW9uLAogCiAJCS8qIFNsdXJwIHRoZSBlbnRpcmUgYmFja3VwIG1h bmlmZXN0IGludG8gYSBidWZmZXIuICovCiAJCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKLQkJUmVj ZWl2ZUJhY2t1cE1hbmlmZXN0SW5NZW1vcnkoY29ubiwgJmJ1Zik7CisJCVJlY2VpdmVCYWNrdXBN YW5pZmVzdEluTWVtb3J5KG15Y29ubiwgJmJ1Zik7CiAJCWlmIChQUUV4cEJ1ZmZlckRhdGFCcm9r ZW4oYnVmKSkKIAkJCXBnX2ZhdGFsKCJvdXQgb2YgbWVtb3J5Iik7CiAKQEAgLTE2OTcsNyArMTY5 Nyw3IEBAIGdldF90YWJsZXNwYWNlX21hcHBpbmcoY29uc3QgY2hhciAqZGlyKQogICogUmVjZWl2 ZSB0aGUgYmFja3VwIG1hbmlmZXN0IGZpbGUgYW5kIHdyaXRlIGl0IG91dCB0byBhIGZpbGUuCiAg Ki8KIHN0YXRpYyB2b2lkCi1SZWNlaXZlQmFja3VwTWFuaWZlc3QoUEdjb25uICpjb25uKQorUmVj ZWl2ZUJhY2t1cE1hbmlmZXN0KFBHY29ubiAqbXljb25uKQogewogCVdyaXRlTWFuaWZlc3RTdGF0 ZSBzdGF0ZTsKIApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgUmVjZWl2ZUJhY2t1cE1hbmlmZXN0KFBH Y29ubiAqY29ubikKIAlpZiAoc3RhdGUuZmlsZSA9PSBOVUxMKQogCQlwZ19mYXRhbCgiY291bGQg bm90IGNyZWF0ZSBmaWxlIFwiJXNcIjogJW0iLCBzdGF0ZS5maWxlbmFtZSk7CiAKLQlSZWNlaXZl Q29weURhdGEoY29ubiwgUmVjZWl2ZUJhY2t1cE1hbmlmZXN0Q2h1bmssICZzdGF0ZSk7CisJUmVj ZWl2ZUNvcHlEYXRhKG15Y29ubiwgUmVjZWl2ZUJhY2t1cE1hbmlmZXN0Q2h1bmssICZzdGF0ZSk7 CiAKIAlmY2xvc2Uoc3RhdGUuZmlsZSk7CiB9CkBAIC0xNzM0LDkgKzE3MzQsOSBAQCBSZWNlaXZl QmFja3VwTWFuaWZlc3RDaHVuayhzaXplX3QgciwgY2hhciAqY29weWJ1Ziwgdm9pZCAqY2FsbGJh Y2tfZGF0YSkKICAqIFJlY2VpdmUgdGhlIGJhY2t1cCBtYW5pZmVzdCBmaWxlIGFuZCB3cml0ZSBp dCBvdXQgdG8gYSBmaWxlLgogICovCiBzdGF0aWMgdm9pZAotUmVjZWl2ZUJhY2t1cE1hbmlmZXN0 SW5NZW1vcnkoUEdjb25uICpjb25uLCBQUUV4cEJ1ZmZlciBidWYpCitSZWNlaXZlQmFja3VwTWFu aWZlc3RJbk1lbW9yeShQR2Nvbm4gKm15Y29ubiwgUFFFeHBCdWZmZXIgYnVmKQogewotCVJlY2Vp dmVDb3B5RGF0YShjb25uLCBSZWNlaXZlQmFja3VwTWFuaWZlc3RJbk1lbW9yeUNodW5rLCBidWYp OworCVJlY2VpdmVDb3B5RGF0YShteWNvbm4sIFJlY2VpdmVCYWNrdXBNYW5pZmVzdEluTWVtb3J5 Q2h1bmssIGJ1Zik7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAv cGdfcmVjdmxvZ2ljYWwuYyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWN2bG9naWNhbC5j CmluZGV4IDE0YWQxNTA0Njc4Li43ODAxNjIzZmVjOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3BnX3JlY3Zsb2dpY2FsLmMKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3Bn X3JlY3Zsb2dpY2FsLmMKQEAgLTczLDggKzczLDggQEAgc3RhdGljIFhMb2dSZWNQdHIgb3V0cHV0 X2ZzeW5jX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwogCiBzdGF0aWMgdm9pZCB1c2FnZSh2b2lk KTsKIHN0YXRpYyB2b2lkIFN0cmVhbUxvZ2ljYWxMb2codm9pZCk7Ci1zdGF0aWMgYm9vbCBmbHVz aEFuZFNlbmRGZWVkYmFjayhQR2Nvbm4gKmNvbm4sIFRpbWVzdGFtcFR6ICpub3cpOwotc3RhdGlj IHZvaWQgcHJlcGFyZVRvVGVybWluYXRlKFBHY29ubiAqY29ubiwgWExvZ1JlY1B0ciBlbmRwb3Ms CitzdGF0aWMgYm9vbCBmbHVzaEFuZFNlbmRGZWVkYmFjayhQR2Nvbm4gKm15Y29ubiwgVGltZXN0 YW1wVHogKm5vdyk7CitzdGF0aWMgdm9pZCBwcmVwYXJlVG9UZXJtaW5hdGUoUEdjb25uICpteWNv bm4sIFhMb2dSZWNQdHIgZW5kcG9zLAogCQkJCQkJCSAgIFN0cmVhbVN0b3BSZWFzb24gcmVhc29u LAogCQkJCQkJCSAgIFhMb2dSZWNQdHIgbHNuKTsKIApAQCAtMTI2LDcgKzEyNiw3IEBAIHVzYWdl KHZvaWQpCiAgKiBTZW5kIGEgU3RhbmRieSBTdGF0dXMgVXBkYXRlIG1lc3NhZ2UgdG8gc2VydmVy LgogICovCiBzdGF0aWMgYm9vbAotc2VuZEZlZWRiYWNrKFBHY29ubiAqY29ubiwgVGltZXN0YW1w VHogbm93LCBib29sIGZvcmNlLCBib29sIHJlcGx5UmVxdWVzdGVkKQorc2VuZEZlZWRiYWNrKFBH Y29ubiAqbXljb25uLCBUaW1lc3RhbXBUeiBub3csIGJvb2wgZm9yY2UsIGJvb2wgcmVwbHlSZXF1 ZXN0ZWQpCiB7CiAJc3RhdGljIFhMb2dSZWNQdHIgbGFzdF93cml0dGVuX2xzbiA9IEludmFsaWRY TG9nUmVjUHRyOwogCXN0YXRpYyBYTG9nUmVjUHRyIGxhc3RfZnN5bmNfbHNuID0gSW52YWxpZFhM b2dSZWNQdHI7CkBAIC0xNjcsMTAgKzE2NywxMCBAQCBzZW5kRmVlZGJhY2soUEdjb25uICpjb25u LCBUaW1lc3RhbXBUeiBub3csIGJvb2wgZm9yY2UsIGJvb2wgcmVwbHlSZXF1ZXN0ZWQpCiAJbGFz dF93cml0dGVuX2xzbiA9IG91dHB1dF93cml0dGVuX2xzbjsKIAlsYXN0X2ZzeW5jX2xzbiA9IG91 dHB1dF9mc3luY19sc247CiAKLQlpZiAoUFFwdXRDb3B5RGF0YShjb25uLCByZXBseWJ1ZiwgbGVu KSA8PSAwIHx8IFBRZmx1c2goY29ubikpCisJaWYgKFBRcHV0Q29weURhdGEobXljb25uLCByZXBs eWJ1ZiwgbGVuKSA8PSAwIHx8IFBRZmx1c2gobXljb25uKSkKIAl7CiAJCXBnX2xvZ19lcnJvcigi Y291bGQgbm90IHNlbmQgZmVlZGJhY2sgcGFja2V0OiAlcyIsCi0JCQkJCSBQUWVycm9yTWVzc2Fn ZShjb25uKSk7CisJCQkJCSBQUWVycm9yTWVzc2FnZShteWNvbm4pKTsKIAkJcmV0dXJuIGZhbHNl OwogCX0KIApAQCAtMTA0NSwxMyArMTA0NSwxMyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikKICAqIGZlZWRiYWNrLgogICovCiBzdGF0aWMgYm9vbAotZmx1c2hBbmRTZW5kRmVlZGJhY2so UEdjb25uICpjb25uLCBUaW1lc3RhbXBUeiAqbm93KQorZmx1c2hBbmRTZW5kRmVlZGJhY2soUEdj b25uICpteWNvbm4sIFRpbWVzdGFtcFR6ICpub3cpCiB7CiAJLyogZmx1c2ggZGF0YSB0byBkaXNr LCBzbyB0aGF0IHdlIHNlbmQgYSByZWNlbnQgZmx1c2ggcG9pbnRlciAqLwogCWlmICghT3V0cHV0 RnN5bmMoKm5vdykpCiAJCXJldHVybiBmYWxzZTsKIAkqbm93ID0gZmVHZXRDdXJyZW50VGltZXN0 YW1wKCk7Ci0JaWYgKCFzZW5kRmVlZGJhY2soY29ubiwgKm5vdywgdHJ1ZSwgZmFsc2UpKQorCWlm ICghc2VuZEZlZWRiYWNrKG15Y29ubiwgKm5vdywgdHJ1ZSwgZmFsc2UpKQogCQlyZXR1cm4gZmFs c2U7CiAKIAlyZXR1cm4gdHJ1ZTsKQEAgLTEwNjIsMTEgKzEwNjIsMTEgQEAgZmx1c2hBbmRTZW5k RmVlZGJhY2soUEdjb25uICpjb25uLCBUaW1lc3RhbXBUeiAqbm93KQogICogcmV0cnkgb24gZmFp bHVyZS4KICAqLwogc3RhdGljIHZvaWQKLXByZXBhcmVUb1Rlcm1pbmF0ZShQR2Nvbm4gKmNvbm4s IFhMb2dSZWNQdHIgZW5kcG9zLCBTdHJlYW1TdG9wUmVhc29uIHJlYXNvbiwKK3ByZXBhcmVUb1Rl cm1pbmF0ZShQR2Nvbm4gKm15Y29ubiwgWExvZ1JlY1B0ciBlbmRfcG9zLCBTdHJlYW1TdG9wUmVh c29uIHJlYXNvbiwKIAkJCQkgICBYTG9nUmVjUHRyIGxzbikKIHsKLQkodm9pZCkgUFFwdXRDb3B5 RW5kKGNvbm4sIE5VTEwpOwotCSh2b2lkKSBQUWZsdXNoKGNvbm4pOworCSh2b2lkKSBQUXB1dENv cHlFbmQobXljb25uLCBOVUxMKTsKKwkodm9pZCkgUFFmbHVzaChteWNvbm4pOwogCiAJaWYgKHZl cmJvc2UpCiAJewpAQCAtMTA3NywxMiArMTA3NywxMiBAQCBwcmVwYXJlVG9UZXJtaW5hdGUoUEdj b25uICpjb25uLCBYTG9nUmVjUHRyIGVuZHBvcywgU3RyZWFtU3RvcFJlYXNvbiByZWFzb24sCiAJ CQkJYnJlYWs7CiAJCQljYXNlIFNUUkVBTV9TVE9QX0tFRVBBTElWRToKIAkJCQlwZ19sb2dfaW5m bygiZW5kIHBvc2l0aW9uICVYLyUwOFggcmVhY2hlZCBieSBrZWVwYWxpdmUiLAotCQkJCQkJCUxT Tl9GT1JNQVRfQVJHUyhlbmRwb3MpKTsKKwkJCQkJCQlMU05fRk9STUFUX0FSR1MoZW5kX3Bvcykp OwogCQkJCWJyZWFrOwogCQkJY2FzZSBTVFJFQU1fU1RPUF9FTkRfT0ZfV0FMOgogCQkJCUFzc2Vy dChYTG9nUmVjUHRySXNWYWxpZChsc24pKTsKIAkJCQlwZ19sb2dfaW5mbygiZW5kIHBvc2l0aW9u ICVYLyUwOFggcmVhY2hlZCBieSBXQUwgcmVjb3JkIGF0ICVYLyUwOFgiLAotCQkJCQkJCUxTTl9G T1JNQVRfQVJHUyhlbmRwb3MpLCBMU05fRk9STUFUX0FSR1MobHNuKSk7CisJCQkJCQkJTFNOX0ZP Uk1BVF9BUkdTKGVuZF9wb3MpLCBMU05fRk9STUFUX0FSR1MobHNuKSk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIFNUUkVBTV9TVE9QX05PTkU6CiAJCQkJQXNzZXJ0KGZhbHNlKTsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9yZWNlaXZlbG9nLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNr dXAvcmVjZWl2ZWxvZy5jCmluZGV4IDI1YjEzYzdmNTVjLi45ZWMxZWVlMDg4YiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3JlY2VpdmVsb2cuYworKysgYi9zcmMvYmluL3BnX2Jh c2ViYWNrdXAvcmVjZWl2ZWxvZy5jCkBAIC0zMiwxOCArMzIsMTggQEAgc3RhdGljIFhMb2dSZWNQ dHIgbGFzdEZsdXNoUG9zaXRpb24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAogc3RhdGljIGJvb2wg c3RpbGxfc2VuZGluZyA9IHRydWU7CS8qIGZlZWRiYWNrIHN0aWxsIG5lZWRzIHRvIGJlIHNlbnQ/ ICovCiAKLXN0YXRpYyBQR3Jlc3VsdCAqSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0 cmVhbUN0bCAqc3RyZWFtLAorc3RhdGljIFBHcmVzdWx0ICpIYW5kbGVDb3B5U3RyZWFtKFBHY29u biAqbXljb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwKIAkJCQkJCQkJICBYTG9nUmVjUHRyICpzdG9w cG9zKTsKLXN0YXRpYyBpbnQJQ29weVN0cmVhbVBvbGwoUEdjb25uICpjb25uLCBsb25nIHRpbWVv dXRfbXMsIHBnc29ja2V0IHN0b3Bfc29ja2V0KTsKLXN0YXRpYyBpbnQJQ29weVN0cmVhbVJlY2Vp dmUoUEdjb25uICpjb25uLCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bfc29ja2V0LAorc3Rh dGljIGludAlDb3B5U3RyZWFtUG9sbChQR2Nvbm4gKm15Y29ubiwgbG9uZyB0aW1lb3V0X21zLCBw Z3NvY2tldCBzdG9wX3NvY2tldCk7CitzdGF0aWMgaW50CUNvcHlTdHJlYW1SZWNlaXZlKFBHY29u biAqbXljb25uLCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bfc29ja2V0LAogCQkJCQkJCSAg Y2hhciAqKmJ1ZmZlcik7Ci1zdGF0aWMgYm9vbCBQcm9jZXNzS2VlcGFsaXZlTXNnKFBHY29ubiAq Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsCitzdGF0aWMgYm9vbCBQcm9j ZXNzS2VlcGFsaXZlTXNnKFBHY29ubiAqbXljb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hhciAq Y29weWJ1ZiwKIAkJCQkJCQkJaW50IGxlbiwgWExvZ1JlY1B0ciBibG9ja3BvcywgVGltZXN0YW1w VHogKmxhc3Rfc3RhdHVzKTsKLXN0YXRpYyBib29sIFByb2Nlc3NXQUxEYXRhTXNnKFBHY29ubiAq Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsIGludCBsZW4sCitzdGF0aWMg Ym9vbCBQcm9jZXNzV0FMRGF0YU1zZyhQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0s IGNoYXIgKmNvcHlidWYsIGludCBsZW4sCiAJCQkJCQkJICBYTG9nUmVjUHRyICpibG9ja3Bvcyk7 Ci1zdGF0aWMgUEdyZXN1bHQgKkhhbmRsZUVuZE9mQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0 cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpjb3B5YnVmLAorc3RhdGljIFBHcmVzdWx0ICpIYW5kbGVF bmRPZkNvcHlTdHJlYW0oUEdjb25uICpteWNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpj b3B5YnVmLAogCQkJCQkJCQkJICAgWExvZ1JlY1B0ciBibG9ja3BvcywgWExvZ1JlY1B0ciAqc3Rv cHBvcyk7Ci1zdGF0aWMgYm9vbCBDaGVja0NvcHlTdHJlYW1TdG9wKFBHY29ubiAqY29ubiwgU3Ry ZWFtQ3RsICpzdHJlYW0sIFhMb2dSZWNQdHIgYmxvY2twb3MpOworc3RhdGljIGJvb2wgQ2hlY2tD b3B5U3RyZWFtU3RvcChQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIFhMb2dSZWNQ dHIgYmxvY2twb3MpOwogc3RhdGljIGxvbmcgQ2FsY3VsYXRlQ29weVN0cmVhbVNsZWVwdGltZShU aW1lc3RhbXBUeiBub3csIGludCBzdGFuZGJ5X21lc3NhZ2VfdGltZW91dCwKIAkJCQkJCQkJCQkg VGltZXN0YW1wVHogbGFzdF9zdGF0dXMpOwogCkBAIC0zMzQsNyArMzM0LDcgQEAgd3JpdGVUaW1l TGluZUhpc3RvcnlGaWxlKFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpmaWxlbmFtZSwgY2hhciAq Y29udGVudCkKICAqIFNlbmQgYSBTdGFuZGJ5IFN0YXR1cyBVcGRhdGUgbWVzc2FnZSB0byBzZXJ2 ZXIuCiAgKi8KIHN0YXRpYyBib29sCi1zZW5kRmVlZGJhY2soUEdjb25uICpjb25uLCBYTG9nUmVj UHRyIGJsb2NrcG9zLCBUaW1lc3RhbXBUeiBub3csIGJvb2wgcmVwbHlSZXF1ZXN0ZWQpCitzZW5k RmVlZGJhY2soUEdjb25uICpteWNvbm4sIFhMb2dSZWNQdHIgYmxvY2twb3MsIFRpbWVzdGFtcFR6 IG5vdywgYm9vbCByZXBseVJlcXVlc3RlZCkKIHsKIAljaGFyCQlyZXBseWJ1ZlsxICsgOCArIDgg KyA4ICsgOCArIDFdOwogCWludAkJCWxlbiA9IDA7CkBAIC0zNTUsMTAgKzM1NSwxMCBAQCBzZW5k RmVlZGJhY2soUEdjb25uICpjb25uLCBYTG9nUmVjUHRyIGJsb2NrcG9zLCBUaW1lc3RhbXBUeiBu b3csIGJvb2wgcmVwbHlSZXF1ZQogCXJlcGx5YnVmW2xlbl0gPSByZXBseVJlcXVlc3RlZCA/IDEg OiAwOyAvKiByZXBseVJlcXVlc3RlZCAqLwogCWxlbiArPSAxOwogCi0JaWYgKFBRcHV0Q29weURh dGEoY29ubiwgcmVwbHlidWYsIGxlbikgPD0gMCB8fCBQUWZsdXNoKGNvbm4pKQorCWlmIChQUXB1 dENvcHlEYXRhKG15Y29ubiwgcmVwbHlidWYsIGxlbikgPD0gMCB8fCBQUWZsdXNoKG15Y29ubikp CiAJewogCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBzZW5kIGZlZWRiYWNrIHBhY2tldDogJXMi LAotCQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkgUFFlcnJvck1lc3NhZ2UobXlj b25uKSk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKQEAgLTM3Miw3ICszNzIsNyBAQCBzZW5kRmVl ZGJhY2soUEdjb25uICpjb25uLCBYTG9nUmVjUHRyIGJsb2NrcG9zLCBUaW1lc3RhbXBUeiBub3cs IGJvb2wgcmVwbHlSZXF1ZQogICogSWYgaXQncyBub3QsIGFuIGVycm9yIG1lc3NhZ2UgaXMgcHJp bnRlZCB0byBzdGRlcnIsIGFuZCBmYWxzZSBpcyByZXR1cm5lZC4KICAqLwogYm9vbAotQ2hlY2tT ZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKFBHY29ubiAqY29ubikKK0NoZWNrU2VydmVyVmVyc2lv bkZvclN0cmVhbWluZyhQR2Nvbm4gKm15Y29ubikKIHsKIAlpbnQJCQltaW5TZXJ2ZXJNYWpvciwK IAkJCQltYXhTZXJ2ZXJNYWpvcjsKQEAgLTM4NiwxMCArMzg2LDEwIEBAIENoZWNrU2VydmVyVmVy c2lvbkZvclN0cmVhbWluZyhQR2Nvbm4gKmNvbm4pCiAJICovCiAJbWluU2VydmVyTWFqb3IgPSA5 MDM7CiAJbWF4U2VydmVyTWFqb3IgPSBQR19WRVJTSU9OX05VTSAvIDEwMDsKLQlzZXJ2ZXJNYWpv ciA9IFBRc2VydmVyVmVyc2lvbihjb25uKSAvIDEwMDsKKwlzZXJ2ZXJNYWpvciA9IFBRc2VydmVy VmVyc2lvbihteWNvbm4pIC8gMTAwOwogCWlmIChzZXJ2ZXJNYWpvciA8IG1pblNlcnZlck1ham9y KQogCXsKLQkJY29uc3QgY2hhciAqc2VydmVydmVyID0gUFFwYXJhbWV0ZXJTdGF0dXMoY29ubiwg InNlcnZlcl92ZXJzaW9uIik7CisJCWNvbnN0IGNoYXIgKnNlcnZlcnZlciA9IFBRcGFyYW1ldGVy U3RhdHVzKG15Y29ubiwgInNlcnZlcl92ZXJzaW9uIik7CiAKIAkJcGdfbG9nX2Vycm9yKCJpbmNv bXBhdGlibGUgc2VydmVyIHZlcnNpb24gJXM7IGNsaWVudCBkb2VzIG5vdCBzdXBwb3J0IHN0cmVh bWluZyBmcm9tIHNlcnZlciB2ZXJzaW9ucyBvbGRlciB0aGFuICVzIiwKIAkJCQkJIHNlcnZlcnZl ciA/IHNlcnZlcnZlciA6ICIndW5rbm93biciLApAQCAtMzk4LDcgKzM5OCw3IEBAIENoZWNrU2Vy dmVyVmVyc2lvbkZvclN0cmVhbWluZyhQR2Nvbm4gKmNvbm4pCiAJfQogCWVsc2UgaWYgKHNlcnZl ck1ham9yID4gbWF4U2VydmVyTWFqb3IpCiAJewotCQljb25zdCBjaGFyICpzZXJ2ZXJ2ZXIgPSBQ UXBhcmFtZXRlclN0YXR1cyhjb25uLCAic2VydmVyX3ZlcnNpb24iKTsKKwkJY29uc3QgY2hhciAq c2VydmVydmVyID0gUFFwYXJhbWV0ZXJTdGF0dXMobXljb25uLCAic2VydmVyX3ZlcnNpb24iKTsK IAogCQlwZ19sb2dfZXJyb3IoImluY29tcGF0aWJsZSBzZXJ2ZXIgdmVyc2lvbiAlczsgY2xpZW50 IGRvZXMgbm90IHN1cHBvcnQgc3RyZWFtaW5nIGZyb20gc2VydmVyIHZlcnNpb25zIG5ld2VyIHRo YW4gJXMiLAogCQkJCQkgc2VydmVydmVyID8gc2VydmVydmVyIDogIid1bmtub3duJyIsCkBAIC00 NTAsNyArNDUwLDcgQEAgQ2hlY2tTZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKFBHY29ubiAqY29u bikKICAqIE5vdGU6IFRoZSBXQUwgbG9jYXRpb24gKm11c3QqIGJlIGF0IGEgbG9nIHNlZ21lbnQg c3RhcnQhCiAgKi8KIGJvb2wKLVJlY2VpdmVYbG9nU3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFt Q3RsICpzdHJlYW0pCitSZWNlaXZlWGxvZ1N0cmVhbShQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3Rs ICpzdHJlYW0pCiB7CiAJY2hhcgkJcXVlcnlbMTI4XTsKIAljaGFyCQlzbG90Y21kWzEyOF07CkBA IC00NjEsNyArNDYxLDcgQEAgUmVjZWl2ZVhsb2dTdHJlYW0oUEdjb25uICpjb25uLCBTdHJlYW1D dGwgKnN0cmVhbSkKIAkgKiBUaGUgY2FsbGVyIHNob3VsZCd2ZSBjaGVja2VkIHRoZSBzZXJ2ZXIg dmVyc2lvbiBhbHJlYWR5LCBidXQgZG9lc24ndCBkbwogCSAqIGFueSBoYXJtIHRvIGNoZWNrIGl0 IGhlcmUgdG9vLgogCSAqLwotCWlmICghQ2hlY2tTZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKGNv bm4pKQorCWlmICghQ2hlY2tTZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKG15Y29ubikpCiAJCXJl dHVybiBmYWxzZTsKIAogCS8qCkBAIC00OTcsNyArNDk3LDcgQEAgUmVjZWl2ZVhsb2dTdHJlYW0o UEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSkKIAkJLyoKIAkJICogR2V0IHRoZSBzZXJ2 ZXIgc3lzdGVtIGlkZW50aWZpZXIgYW5kIHRpbWVsaW5lLCBhbmQgdmFsaWRhdGUgdGhlbS4KIAkJ ICovCi0JCWlmICghUnVuSWRlbnRpZnlTeXN0ZW0oY29ubiwgJnN5c2lkZW50aWZpZXIsICZzZXJ2 ZXJ0bGksIE5VTEwsIE5VTEwpKQorCQlpZiAoIVJ1bklkZW50aWZ5U3lzdGVtKG15Y29ubiwgJnN5 c2lkZW50aWZpZXIsICZzZXJ2ZXJ0bGksIE5VTEwsIE5VTEwpKQogCQl7CiAJCQlwZ19mcmVlKHN5 c2lkZW50aWZpZXIpOwogCQkJcmV0dXJuIGZhbHNlOwpAQCAtNTM2LDcgKzUzNiw3IEBAIFJlY2Vp dmVYbG9nU3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0pCiAJCWlmICghZXhp c3RzVGltZUxpbmVIaXN0b3J5RmlsZShzdHJlYW0pKQogCQl7CiAJCQlzbnByaW50ZihxdWVyeSwg c2l6ZW9mKHF1ZXJ5KSwgIlRJTUVMSU5FX0hJU1RPUlkgJXUiLCBzdHJlYW0tPnRpbWVsaW5lKTsK LQkJCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVyeSk7CisJCQlyZXMgPSBQUWV4ZWMobXljb25uLCBx dWVyeSk7CiAJCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0spCiAJ CQl7CiAJCQkJLyogRklYTUU6IHdlIG1pZ2h0IHNlbmQgaXQgb2ssIGJ1dCBnZXQgYW4gZXJyb3Ig Ki8KQEAgLTU3Niw3ICs1NzYsNyBAQCBSZWNlaXZlWGxvZ1N0cmVhbShQR2Nvbm4gKmNvbm4sIFN0 cmVhbUN0bCAqc3RyZWFtKQogCQkJCSBzbG90Y21kLAogCQkJCSBMU05fRk9STUFUX0FSR1Moc3Ry ZWFtLT5zdGFydHBvcyksCiAJCQkJIHN0cmVhbS0+dGltZWxpbmUpOwotCQlyZXMgPSBQUWV4ZWMo Y29ubiwgcXVlcnkpOworCQlyZXMgPSBQUWV4ZWMobXljb25uLCBxdWVyeSk7CiAJCWlmIChQUXJl c3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPUFlfQk9USCkKIAkJewogCQkJcGdfbG9nX2Vycm9y KCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjogJXMiLApAQCAtNTg3 LDcgKzU4Nyw3IEBAIFJlY2VpdmVYbG9nU3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpz dHJlYW0pCiAJCVBRY2xlYXIocmVzKTsKIAogCQkvKiBTdHJlYW0gdGhlIFdBTCAqLwotCQlyZXMg PSBIYW5kbGVDb3B5U3RyZWFtKGNvbm4sIHN0cmVhbSwgJnN0b3Bwb3MpOworCQlyZXMgPSBIYW5k bGVDb3B5U3RyZWFtKG15Y29ubiwgc3RyZWFtLCAmc3RvcHBvcyk7CiAJCWlmIChyZXMgPT0gTlVM TCkKIAkJCWdvdG8gZXJyb3I7CiAKQEAgLTYzNiw3ICs2MzYsNyBAQCBSZWNlaXZlWGxvZ1N0cmVh bShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtKQogCQkJfQogCiAJCQkvKiBSZWFkIHRo ZSBmaW5hbCByZXN1bHQsIHdoaWNoIHNob3VsZCBiZSBDb21tYW5kQ29tcGxldGUuICovCi0JCQly ZXMgPSBQUWdldFJlc3VsdChjb25uKTsKKwkJCXJlcyA9IFBRZ2V0UmVzdWx0KG15Y29ubik7CiAJ CQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQogCQkJewogCQkJ CXBnX2xvZ19lcnJvcigidW5leHBlY3RlZCB0ZXJtaW5hdGlvbiBvZiByZXBsaWNhdGlvbiBzdHJl YW06ICVzIiwKQEAgLTc0Miw3ICs3NDIsNyBAQCBSZWFkRW5kT2ZTdHJlYW1pbmdSZXN1bHQoUEdy ZXN1bHQgKnJlcywgWExvZ1JlY1B0ciAqc3RhcnRwb3MsIHVpbnQzMiAqdGltZWxpbmUpCiAgKiBP biBhbnkgb3RoZXIgc29ydCBvZiBlcnJvciwgcmV0dXJucyBOVUxMLgogICovCiBzdGF0aWMgUEdy ZXN1bHQgKgotSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFt LAorSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sCiAJ CQkJIFhMb2dSZWNQdHIgKnN0b3Bwb3MpCiB7CiAJY2hhcgkgICAqY29weWJ1ZiA9IE5VTEw7CkBA IC03NjAsNyArNzYwLDcgQEAgSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0 bCAqc3RyZWFtLAogCQkvKgogCQkgKiBDaGVjayBpZiB3ZSBzaG91bGQgY29udGludWUgc3RyZWFt aW5nLCBvciBhYm9ydCBhdCB0aGlzIHBvaW50LgogCQkgKi8KLQkJaWYgKCFDaGVja0NvcHlTdHJl YW1TdG9wKGNvbm4sIHN0cmVhbSwgYmxvY2twb3MpKQorCQlpZiAoIUNoZWNrQ29weVN0cmVhbVN0 b3AobXljb25uLCBzdHJlYW0sIGJsb2NrcG9zKSkKIAkJCWdvdG8gZXJyb3I7CiAKIAkJbm93ID0g ZmVHZXRDdXJyZW50VGltZXN0YW1wKCk7CkBAIC03ODAsNyArNzgwLDcgQEAgSGFuZGxlQ29weVN0 cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLAogCQkJICogU2VuZCBmZWVkYmFj ayBzbyB0aGF0IHRoZSBzZXJ2ZXIgc2VlcyB0aGUgbGF0ZXN0IFdBTCBsb2NhdGlvbnMKIAkJCSAq IGltbWVkaWF0ZWx5LgogCQkJICovCi0JCQlpZiAoIXNlbmRGZWVkYmFjayhjb25uLCBibG9ja3Bv cywgbm93LCBmYWxzZSkpCisJCQlpZiAoIXNlbmRGZWVkYmFjayhteWNvbm4sIGJsb2NrcG9zLCBu b3csIGZhbHNlKSkKIAkJCQlnb3RvIGVycm9yOwogCQkJbGFzdF9zdGF0dXMgPSBub3c7CiAJCX0K QEAgLTc5Myw3ICs3OTMsNyBAQCBIYW5kbGVDb3B5U3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFt Q3RsICpzdHJlYW0sCiAJCQkJCQkJCQkJIHN0cmVhbS0+c3RhbmRieV9tZXNzYWdlX3RpbWVvdXQp KQogCQl7CiAJCQkvKiBUaW1lIHRvIHNlbmQgZmVlZGJhY2shICovCi0JCQlpZiAoIXNlbmRGZWVk YmFjayhjb25uLCBibG9ja3Bvcywgbm93LCBmYWxzZSkpCisJCQlpZiAoIXNlbmRGZWVkYmFjayht eWNvbm4sIGJsb2NrcG9zLCBub3csIGZhbHNlKSkKIAkJCQlnb3RvIGVycm9yOwogCQkJbGFzdF9z dGF0dXMgPSBub3c7CiAJCX0KQEAgLTgwOCwxNCArODA4LDE0IEBAIEhhbmRsZUNvcHlTdHJlYW0o UEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwKIAkJUFFmcmVlbWVtKGNvcHlidWYpOwog CQljb3B5YnVmID0gTlVMTDsKIAotCQlyID0gQ29weVN0cmVhbVJlY2VpdmUoY29ubiwgc2xlZXB0 aW1lLCBzdHJlYW0tPnN0b3Bfc29ja2V0LCAmY29weWJ1Zik7CisJCXIgPSBDb3B5U3RyZWFtUmVj ZWl2ZShteWNvbm4sIHNsZWVwdGltZSwgc3RyZWFtLT5zdG9wX3NvY2tldCwgJmNvcHlidWYpOwog CQl3aGlsZSAociAhPSAwKQogCQl7CiAJCQlpZiAociA9PSAtMSkKIAkJCQlnb3RvIGVycm9yOwog CQkJaWYgKHIgPT0gLTIpCiAJCQl7Ci0JCQkJUEdyZXN1bHQgICAqcmVzID0gSGFuZGxlRW5kT2ZD b3B5U3RyZWFtKGNvbm4sIHN0cmVhbSwgY29weWJ1ZiwgYmxvY2twb3MsIHN0b3Bwb3MpOworCQkJ CVBHcmVzdWx0ICAgKnJlcyA9IEhhbmRsZUVuZE9mQ29weVN0cmVhbShteWNvbm4sIHN0cmVhbSwg Y29weWJ1ZiwgYmxvY2twb3MsIHN0b3Bwb3MpOwogCiAJCQkJaWYgKHJlcyA9PSBOVUxMKQogCQkJ CQlnb3RvIGVycm9yOwpAQCAtODI2LDIwICs4MjYsMjAgQEAgSGFuZGxlQ29weVN0cmVhbShQR2Nv bm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLAogCQkJLyogQ2hlY2sgdGhlIG1lc3NhZ2UgdHlw ZS4gKi8KIAkJCWlmIChjb3B5YnVmWzBdID09IFBxUmVwbE1zZ19LZWVwYWxpdmUpCiAJCQl7Ci0J CQkJaWYgKCFQcm9jZXNzS2VlcGFsaXZlTXNnKGNvbm4sIHN0cmVhbSwgY29weWJ1ZiwgciwgYmxv Y2twb3MsCisJCQkJaWYgKCFQcm9jZXNzS2VlcGFsaXZlTXNnKG15Y29ubiwgc3RyZWFtLCBjb3B5 YnVmLCByLCBibG9ja3BvcywKIAkJCQkJCQkJCQkgJmxhc3Rfc3RhdHVzKSkKIAkJCQkJZ290byBl cnJvcjsKIAkJCX0KIAkJCWVsc2UgaWYgKGNvcHlidWZbMF0gPT0gUHFSZXBsTXNnX1dBTERhdGEp CiAJCQl7Ci0JCQkJaWYgKCFQcm9jZXNzV0FMRGF0YU1zZyhjb25uLCBzdHJlYW0sIGNvcHlidWYs IHIsICZibG9ja3BvcykpCisJCQkJaWYgKCFQcm9jZXNzV0FMRGF0YU1zZyhteWNvbm4sIHN0cmVh bSwgY29weWJ1ZiwgciwgJmJsb2NrcG9zKSkKIAkJCQkJZ290byBlcnJvcjsKIAogCQkJCS8qCiAJ CQkJICogQ2hlY2sgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHN0cmVhbWluZywgb3IgYWJvcnQgYXQg dGhpcwogCQkJCSAqIHBvaW50LgogCQkJCSAqLwotCQkJCWlmICghQ2hlY2tDb3B5U3RyZWFtU3Rv cChjb25uLCBzdHJlYW0sIGJsb2NrcG9zKSkKKwkJCQlpZiAoIUNoZWNrQ29weVN0cmVhbVN0b3Ao bXljb25uLCBzdHJlYW0sIGJsb2NrcG9zKSkKIAkJCQkJZ290byBlcnJvcjsKIAkJCX0KIAkJCWVs c2UKQEAgLTg1Nyw3ICs4NTcsNyBAQCBIYW5kbGVDb3B5U3RyZWFtKFBHY29ubiAqY29ubiwgU3Ry ZWFtQ3RsICpzdHJlYW0sCiAJCQkgKiBQcm9jZXNzIHRoZSByZWNlaXZlZCBkYXRhLCBhbmQgYW55 IHN1YnNlcXVlbnQgZGF0YSB3ZSBjYW4gcmVhZAogCQkJICogd2l0aG91dCBibG9ja2luZy4KIAkJ CSAqLwotCQkJciA9IENvcHlTdHJlYW1SZWNlaXZlKGNvbm4sIDAsIHN0cmVhbS0+c3RvcF9zb2Nr ZXQsICZjb3B5YnVmKTsKKwkJCXIgPSBDb3B5U3RyZWFtUmVjZWl2ZShteWNvbm4sIDAsIHN0cmVh bS0+c3RvcF9zb2NrZXQsICZjb3B5YnVmKTsKIAkJfQogCX0KIApAQCAtODc1LDcgKzg3NSw3IEBA IGVycm9yOgogICogb3IgaW50ZXJydXB0ZWQgYnkgc2lnbmFsIG9yIHN0b3Bfc29ja2V0IGlucHV0 LCBhbmQgLTEgb24gYW4gZXJyb3IuCiAgKi8KIHN0YXRpYyBpbnQKLUNvcHlTdHJlYW1Qb2xsKFBH Y29ubiAqY29ubiwgbG9uZyB0aW1lb3V0X21zLCBwZ3NvY2tldCBzdG9wX3NvY2tldCkKK0NvcHlT dHJlYW1Qb2xsKFBHY29ubiAqbXljb25uLCBsb25nIHRpbWVvdXRfbXMsIHBnc29ja2V0IHN0b3Bf c29ja2V0KQogewogCWludAkJCXJldDsKIAlmZF9zZXQJCWlucHV0X21hc2s7CkBAIC04ODQsMTAg Kzg4NCwxMCBAQCBDb3B5U3RyZWFtUG9sbChQR2Nvbm4gKmNvbm4sIGxvbmcgdGltZW91dF9tcywg cGdzb2NrZXQgc3RvcF9zb2NrZXQpCiAJc3RydWN0IHRpbWV2YWwgdGltZW91dDsKIAlzdHJ1Y3Qg dGltZXZhbCAqdGltZW91dHB0cjsKIAotCWNvbm5zb2NrZXQgPSBQUXNvY2tldChjb25uKTsKKwlj b25uc29ja2V0ID0gUFFzb2NrZXQobXljb25uKTsKIAlpZiAoY29ubnNvY2tldCA8IDApCiAJewot CQlwZ19sb2dfZXJyb3IoImludmFsaWQgc29ja2V0OiAlcyIsIFBRZXJyb3JNZXNzYWdlKGNvbm4p KTsKKwkJcGdfbG9nX2Vycm9yKCJpbnZhbGlkIHNvY2tldDogJXMiLCBQUWVycm9yTWVzc2FnZSht eWNvbm4pKTsKIAkJcmV0dXJuIC0xOwogCX0KIApAQCAtOTM3LDcgKzkzNyw3IEBAIENvcHlTdHJl YW1Qb2xsKFBHY29ubiAqY29ubiwgbG9uZyB0aW1lb3V0X21zLCBwZ3NvY2tldCBzdG9wX3NvY2tl dCkKICAqIC0xIG9uIGVycm9yLiAtMiBpZiB0aGUgc2VydmVyIGVuZGVkIHRoZSBDT1BZLgogICov CiBzdGF0aWMgaW50Ci1Db3B5U3RyZWFtUmVjZWl2ZShQR2Nvbm4gKmNvbm4sIGxvbmcgdGltZW91 dCwgcGdzb2NrZXQgc3RvcF9zb2NrZXQsCitDb3B5U3RyZWFtUmVjZWl2ZShQR2Nvbm4gKm15Y29u biwgbG9uZyB0aW1lb3V0LCBwZ3NvY2tldCBzdG9wX3NvY2tldCwKIAkJCQkgIGNoYXIgKipidWZm ZXIpCiB7CiAJY2hhcgkgICAqY29weWJ1ZiA9IE5VTEw7CkBAIC05NDcsNyArOTQ3LDcgQEAgQ29w eVN0cmVhbVJlY2VpdmUoUEdjb25uICpjb25uLCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bf c29ja2V0LAogCUFzc2VydCgqYnVmZmVyID09IE5VTEwpOwogCiAJLyogVHJ5IHRvIHJlY2VpdmUg YSBDb3B5RGF0YSBtZXNzYWdlICovCi0JcmF3bGVuID0gUFFnZXRDb3B5RGF0YShjb25uLCAmY29w eWJ1ZiwgMSk7CisJcmF3bGVuID0gUFFnZXRDb3B5RGF0YShteWNvbm4sICZjb3B5YnVmLCAxKTsK IAlpZiAocmF3bGVuID09IDApCiAJewogCQlpbnQJCQlyZXQ7CkBAIC05NTcsMjAgKzk1NywyMCBA QCBDb3B5U3RyZWFtUmVjZWl2ZShQR2Nvbm4gKmNvbm4sIGxvbmcgdGltZW91dCwgcGdzb2NrZXQg c3RvcF9zb2NrZXQsCiAJCSAqIHRoZSBzcGVjaWZpZWQgdGltZW91dCwgc28gdGhhdCB3ZSBjYW4g cGluZyB0aGUgc2VydmVyLiAgQWxzbyBzdG9wCiAJCSAqIHdhaXRpbmcgaWYgaW5wdXQgYXBwZWFy cyBvbiBzdG9wX3NvY2tldC4KIAkJICovCi0JCXJldCA9IENvcHlTdHJlYW1Qb2xsKGNvbm4sIHRp bWVvdXQsIHN0b3Bfc29ja2V0KTsKKwkJcmV0ID0gQ29weVN0cmVhbVBvbGwobXljb25uLCB0aW1l b3V0LCBzdG9wX3NvY2tldCk7CiAJCWlmIChyZXQgPD0gMCkKIAkJCXJldHVybiByZXQ7CiAKIAkJ LyogTm93IHRoZXJlIGlzIGFjdHVhbGx5IGRhdGEgb24gdGhlIHNvY2tldCAqLwotCQlpZiAoUFFj b25zdW1lSW5wdXQoY29ubikgPT0gMCkKKwkJaWYgKFBRY29uc3VtZUlucHV0KG15Y29ubikgPT0g MCkKIAkJewogCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgcmVjZWl2ZSBkYXRhIGZyb20gV0FM IHN0cmVhbTogJXMiLAotCQkJCQkJIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJCQkJCSBQUWVy cm9yTWVzc2FnZShteWNvbm4pKTsKIAkJCXJldHVybiAtMTsKIAkJfQogCiAJCS8qIE5vdyB0aGF0 IHdlJ3ZlIGNvbnN1bWVkIHNvbWUgaW5wdXQsIHRyeSBhZ2FpbiAqLwotCQlyYXdsZW4gPSBQUWdl dENvcHlEYXRhKGNvbm4sICZjb3B5YnVmLCAxKTsKKwkJcmF3bGVuID0gUFFnZXRDb3B5RGF0YSht eWNvbm4sICZjb3B5YnVmLCAxKTsKIAkJaWYgKHJhd2xlbiA9PSAwKQogCQkJcmV0dXJuIDA7CiAJ fQpAQCAtOTc4LDcgKzk3OCw3IEBAIENvcHlTdHJlYW1SZWNlaXZlKFBHY29ubiAqY29ubiwgbG9u ZyB0aW1lb3V0LCBwZ3NvY2tldCBzdG9wX3NvY2tldCwKIAkJcmV0dXJuIC0yOwogCWlmIChyYXds ZW4gPT0gLTIpCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCByZWFkIENPUFkgZGF0YTog JXMiLCBQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHJl YWQgQ09QWSBkYXRhOiAlcyIsIFBRZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCQlyZXR1cm4gLTE7 CiAJfQogCkBAIC05OTEsNyArOTkxLDcgQEAgQ29weVN0cmVhbVJlY2VpdmUoUEdjb25uICpjb25u LCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bfc29ja2V0LAogICogUHJvY2VzcyB0aGUga2Vl cGFsaXZlIG1lc3NhZ2UuCiAgKi8KIHN0YXRpYyBib29sCi1Qcm9jZXNzS2VlcGFsaXZlTXNnKFBH Y29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsIGludCBsZW4sCitQ cm9jZXNzS2VlcGFsaXZlTXNnKFBHY29ubiAqbXljb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hh ciAqY29weWJ1ZiwgaW50IGxlbiwKIAkJCQkJWExvZ1JlY1B0ciBibG9ja3BvcywgVGltZXN0YW1w VHogKmxhc3Rfc3RhdHVzKQogewogCWludAkJCXBvczsKQEAgLTEwMzMsNyArMTAzMyw3IEBAIFBy b2Nlc3NLZWVwYWxpdmVNc2coUEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hhciAq Y29weWJ1ZiwgaW50IGxlbiwKIAkJfQogCiAJCW5vdyA9IGZlR2V0Q3VycmVudFRpbWVzdGFtcCgp OwotCQlpZiAoIXNlbmRGZWVkYmFjayhjb25uLCBibG9ja3Bvcywgbm93LCBmYWxzZSkpCisJCWlm ICghc2VuZEZlZWRiYWNrKG15Y29ubiwgYmxvY2twb3MsIG5vdywgZmFsc2UpKQogCQkJcmV0dXJu IGZhbHNlOwogCQkqbGFzdF9zdGF0dXMgPSBub3c7CiAJfQpAQCAtMTA0NSw3ICsxMDQ1LDcgQEAg UHJvY2Vzc0tlZXBhbGl2ZU1zZyhQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFy ICpjb3B5YnVmLCBpbnQgbGVuLAogICogUHJvY2VzcyBXQUxEYXRhIG1lc3NhZ2UuCiAgKi8KIHN0 YXRpYyBib29sCi1Qcm9jZXNzV0FMRGF0YU1zZyhQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3Ry ZWFtLCBjaGFyICpjb3B5YnVmLCBpbnQgbGVuLAorUHJvY2Vzc1dBTERhdGFNc2coUEdjb25uICpt eWNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpjb3B5YnVmLCBpbnQgbGVuLAogCQkJCSAg WExvZ1JlY1B0ciAqYmxvY2twb3MpCiB7CiAJaW50CQkJeGxvZ29mZjsKQEAgLTExNTYsMTAgKzEx NTYsMTAgQEAgUHJvY2Vzc1dBTERhdGFNc2coUEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVh bSwgY2hhciAqY29weWJ1ZiwgaW50IGxlbiwKIAogCQkJaWYgKHN0aWxsX3NlbmRpbmcgJiYgc3Ry ZWFtLT5zdHJlYW1fc3RvcCgqYmxvY2twb3MsIHN0cmVhbS0+dGltZWxpbmUsIHRydWUpKQogCQkJ ewotCQkJCWlmIChQUXB1dENvcHlFbmQoY29ubiwgTlVMTCkgPD0gMCB8fCBQUWZsdXNoKGNvbm4p KQorCQkJCWlmIChQUXB1dENvcHlFbmQobXljb25uLCBOVUxMKSA8PSAwIHx8IFBRZmx1c2gobXlj b25uKSkKIAkJCQl7CiAJCQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHNlbmQgY29weS1lbmQg cGFja2V0OiAlcyIsCi0JCQkJCQkJCSBQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCQkJCQkJCSBQ UWVycm9yTWVzc2FnZShteWNvbm4pKTsKIAkJCQkJcmV0dXJuIGZhbHNlOwogCQkJCX0KIAkJCQlz dGlsbF9zZW5kaW5nID0gZmFsc2U7CkBAIC0xMTc2LDEwICsxMTc2LDEwIEBAIFByb2Nlc3NXQUxE YXRhTXNnKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsIGlu dCBsZW4sCiAgKiBIYW5kbGUgZW5kIG9mIHRoZSBjb3B5IHN0cmVhbS4KICAqLwogc3RhdGljIFBH cmVzdWx0ICoKLUhhbmRsZUVuZE9mQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAq c3RyZWFtLCBjaGFyICpjb3B5YnVmLAorSGFuZGxlRW5kT2ZDb3B5U3RyZWFtKFBHY29ubiAqbXlj b25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hhciAqY29weWJ1ZiwKIAkJCQkJICBYTG9nUmVjUHRy IGJsb2NrcG9zLCBYTG9nUmVjUHRyICpzdG9wcG9zKQogewotCVBHcmVzdWx0ICAgKnJlcyA9IFBR Z2V0UmVzdWx0KGNvbm4pOworCVBHcmVzdWx0ICAgKnJlcyA9IFBRZ2V0UmVzdWx0KG15Y29ubik7 CiAKIAkvKgogCSAqIFRoZSBzZXJ2ZXIgY2xvc2VkIGl0cyBlbmQgb2YgdGhlIGNvcHkgc3RyZWFt LiAgSWYgd2UgaGF2ZW4ndCBjbG9zZWQKQEAgLTExOTYsMTQgKzExOTYsMTQgQEAgSGFuZGxlRW5k T2ZDb3B5U3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHli dWYsCiAJCX0KIAkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgPT0gUEdSRVNfQ09QWV9JTikKIAkJ ewotCQkJaWYgKFBRcHV0Q29weUVuZChjb25uLCBOVUxMKSA8PSAwIHx8IFBRZmx1c2goY29ubikp CisJCQlpZiAoUFFwdXRDb3B5RW5kKG15Y29ubiwgTlVMTCkgPD0gMCB8fCBQUWZsdXNoKG15Y29u bikpCiAJCQl7CiAJCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCBjb3B5LWVuZCBwYWNr ZXQ6ICVzIiwKLQkJCQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkJCSBQUWVycm9y TWVzc2FnZShteWNvbm4pKTsKIAkJCQlQUWNsZWFyKHJlcyk7CiAJCQkJcmV0dXJuIE5VTEw7CiAJ CQl9Ci0JCQlyZXMgPSBQUWdldFJlc3VsdChjb25uKTsKKwkJCXJlcyA9IFBRZ2V0UmVzdWx0KG15 Y29ubik7CiAJCX0KIAkJc3RpbGxfc2VuZGluZyA9IGZhbHNlOwogCX0KQEAgLTEyMTUsNyArMTIx NSw3IEBAIEhhbmRsZUVuZE9mQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3Ry ZWFtLCBjaGFyICpjb3B5YnVmLAogICogQ2hlY2sgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHN0cmVh bWluZywgb3IgYWJvcnQgYXQgdGhpcyBwb2ludC4KICAqLwogc3RhdGljIGJvb2wKLUNoZWNrQ29w eVN0cmVhbVN0b3AoUEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgWExvZ1JlY1B0ciBi bG9ja3BvcykKK0NoZWNrQ29weVN0cmVhbVN0b3AoUEdjb25uICpteWNvbm4sIFN0cmVhbUN0bCAq c3RyZWFtLCBYTG9nUmVjUHRyIGJsb2NrcG9zKQogewogCWlmIChzdGlsbF9zZW5kaW5nICYmIHN0 cmVhbS0+c3RyZWFtX3N0b3AoYmxvY2twb3MsIHN0cmVhbS0+dGltZWxpbmUsIGZhbHNlKSkKIAl7 CkBAIC0xMjI0LDEwICsxMjI0LDEwIEBAIENoZWNrQ29weVN0cmVhbVN0b3AoUEdjb25uICpjb25u LCBTdHJlYW1DdGwgKnN0cmVhbSwgWExvZ1JlY1B0ciBibG9ja3BvcykKIAkJCS8qIFBvdGVudGlh bCBlcnJvciBtZXNzYWdlIGlzIHdyaXR0ZW4gYnkgY2xvc2Vfd2FsZmlsZSAqLwogCQkJcmV0dXJu IGZhbHNlOwogCQl9Ci0JCWlmIChQUXB1dENvcHlFbmQoY29ubiwgTlVMTCkgPD0gMCB8fCBQUWZs dXNoKGNvbm4pKQorCQlpZiAoUFFwdXRDb3B5RW5kKG15Y29ubiwgTlVMTCkgPD0gMCB8fCBQUWZs dXNoKG15Y29ubikpCiAJCXsKIAkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHNlbmQgY29weS1l bmQgcGFja2V0OiAlcyIsCi0JCQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkJIFBR ZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCQkJcmV0dXJuIGZhbHNlOwogCQl9CiAJCXN0aWxsX3Nl bmRpbmcgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9zdHJlYW11 dGlsLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvc3RyZWFtdXRpbC5jCmluZGV4IGU1YTdjYjZl NWIxLi4zNDJhZDJjYmQ0ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3N0cmVh bXV0aWwuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvc3RyZWFtdXRpbC5jCkBAIC0zMSw3 ICszMSw3IEBACiAKIGludAkJCVdhbFNlZ1N6OwogCi1zdGF0aWMgYm9vbCBSZXRyaWV2ZURhdGFE aXJDcmVhdGVQZXJtKFBHY29ubiAqY29ubik7CitzdGF0aWMgYm9vbCBSZXRyaWV2ZURhdGFEaXJD cmVhdGVQZXJtKFBHY29ubiAqbXljb25uKTsKIAogLyogU0hPVyBjb21tYW5kIGZvciByZXBsaWNh dGlvbiBjb25uZWN0aW9uIHdhcyBpbnRyb2R1Y2VkIGluIHZlcnNpb24gMTAgKi8KICNkZWZpbmUg TUlOSU1VTV9WRVJTSU9OX0ZPUl9TSE9XX0NNRCAxMDAwMDAKQEAgLTI3Myw3ICsyNzMsNyBAQCBH ZXRDb25uZWN0aW9uKHZvaWQpCiAgKiBzaW5jZSBDb250cm9sRmlsZSBpcyBub3QgYWNjZXNzaWJs ZSBoZXJlLgogICovCiBib29sCi1SZXRyaWV2ZVdhbFNlZ1NpemUoUEdjb25uICpjb25uKQorUmV0 cmlldmVXYWxTZWdTaXplKFBHY29ubiAqbXljb25uKQogewogCVBHcmVzdWx0ICAgKnJlczsKIAlj aGFyCQl4bG9nX3VuaXRbM107CkBAIC0yODEsMjAgKzI4MSwyMCBAQCBSZXRyaWV2ZVdhbFNlZ1Np emUoUEdjb25uICpjb25uKQogCQkJCW11bHRpcGxpZXIgPSAxOwogCiAJLyogY2hlY2sgY29ubmVj dGlvbiBleGlzdGVuY2UgKi8KLQlBc3NlcnQoY29ubiAhPSBOVUxMKTsKKwlBc3NlcnQobXljb25u ICE9IE5VTEwpOwogCiAJLyogZm9yIHByZXZpb3VzIHZlcnNpb25zIHNldCB0aGUgZGVmYXVsdCB4 bG9nIHNlZyBzaXplICovCi0JaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA8IE1JTklNVU1fVkVS U0lPTl9GT1JfU0hPV19DTUQpCisJaWYgKFBRc2VydmVyVmVyc2lvbihteWNvbm4pIDwgTUlOSU1V TV9WRVJTSU9OX0ZPUl9TSE9XX0NNRCkKIAl7CiAJCVdhbFNlZ1N6ID0gREVGQVVMVF9YTE9HX1NF R19TSVpFOwogCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKLQlyZXMgPSBQUWV4ZWMoY29ubiwgIlNIT1cg d2FsX3NlZ21lbnRfc2l6ZSIpOworCXJlcyA9IFBRZXhlYyhteWNvbm4sICJTSE9XIHdhbF9zZWdt ZW50X3NpemUiKTsKIAlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0sp CiAJewogCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBzZW5kIHJlcGxpY2F0aW9uIGNvbW1hbmQg XCIlc1wiOiAlcyIsCi0JCQkJCSAiU0hPVyB3YWxfc2VnbWVudF9zaXplIiwgUFFlcnJvck1lc3Nh Z2UoY29ubikpOworCQkJCQkgIlNIT1cgd2FsX3NlZ21lbnRfc2l6ZSIsIFBRZXJyb3JNZXNzYWdl KG15Y29ubikpOwogCiAJCVBRY2xlYXIocmVzKTsKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMzUyLDIz ICszNTIsMjMgQEAgUmV0cmlldmVXYWxTZWdTaXplKFBHY29ubiAqY29ubikKICAqIG9uIHRoZSBk YXRhIGRpcmVjdG9yeS4KICAqLwogc3RhdGljIGJvb2wKLVJldHJpZXZlRGF0YURpckNyZWF0ZVBl cm0oUEdjb25uICpjb25uKQorUmV0cmlldmVEYXRhRGlyQ3JlYXRlUGVybShQR2Nvbm4gKm15Y29u bikKIHsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJaW50CQkJZGF0YV9kaXJlY3RvcnlfbW9kZTsKIAog CS8qIGNoZWNrIGNvbm5lY3Rpb24gZXhpc3RlbmNlICovCi0JQXNzZXJ0KGNvbm4gIT0gTlVMTCk7 CisJQXNzZXJ0KG15Y29ubiAhPSBOVUxMKTsKIAogCS8qIGZvciBwcmV2aW91cyB2ZXJzaW9ucyBs ZWF2ZSB0aGUgZGVmYXVsdCBncm91cCBhY2Nlc3MgKi8KLQlpZiAoUFFzZXJ2ZXJWZXJzaW9uKGNv bm4pIDwgTUlOSU1VTV9WRVJTSU9OX0ZPUl9HUk9VUF9BQ0NFU1MpCisJaWYgKFBRc2VydmVyVmVy c2lvbihteWNvbm4pIDwgTUlOSU1VTV9WRVJTSU9OX0ZPUl9HUk9VUF9BQ0NFU1MpCiAJCXJldHVy biB0cnVlOwogCi0JcmVzID0gUFFleGVjKGNvbm4sICJTSE9XIGRhdGFfZGlyZWN0b3J5X21vZGUi KTsKKwlyZXMgPSBQUWV4ZWMobXljb25uLCAiU0hPVyBkYXRhX2RpcmVjdG9yeV9tb2RlIik7CiAJ aWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKIAkJcGdfbG9n X2Vycm9yKCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjogJXMiLAot CQkJCQkgIlNIT1cgZGF0YV9kaXJlY3RvcnlfbW9kZSIsIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsK KwkJCQkJICJTSE9XIGRhdGFfZGlyZWN0b3J5X21vZGUiLCBQUWVycm9yTWVzc2FnZShteWNvbm4p KTsKIAogCQlQUWNsZWFyKHJlcyk7CiAJCXJldHVybiBmYWxzZTsKQEAgLTQwNiw3ICs0MDYsNyBA QCBSZXRyaWV2ZURhdGFEaXJDcmVhdGVQZXJtKFBHY29ubiAqY29ubikKICAqIC0gRGF0YWJhc2Ug bmFtZSAoTlVMTCBpbiBzZXJ2ZXJzIHByaW9yIHRvIDkuNCkKICAqLwogYm9vbAotUnVuSWRlbnRp ZnlTeXN0ZW0oUEdjb25uICpjb25uLCBjaGFyICoqc3lzaWQsIFRpbWVMaW5lSUQgKnN0YXJ0dGxp LAorUnVuSWRlbnRpZnlTeXN0ZW0oUEdjb25uICpteWNvbm4sIGNoYXIgKipzeXNpZCwgVGltZUxp bmVJRCAqc3RhcnR0bGksCiAJCQkJICBYTG9nUmVjUHRyICpzdGFydHBvcywgY2hhciAqKmRiX25h bWUpCiB7CiAJUEdyZXN1bHQgICAqcmVzOwpAQCAtNDE0LDEzICs0MTQsMTMgQEAgUnVuSWRlbnRp ZnlTeXN0ZW0oUEdjb25uICpjb25uLCBjaGFyICoqc3lzaWQsIFRpbWVMaW5lSUQgKnN0YXJ0dGxp LAogCQkJCWxvOwogCiAJLyogQ2hlY2sgY29ubmVjdGlvbiBleGlzdGVuY2UgKi8KLQlBc3NlcnQo Y29ubiAhPSBOVUxMKTsKKwlBc3NlcnQobXljb25uICE9IE5VTEwpOwogCi0JcmVzID0gUFFleGVj KGNvbm4sICJJREVOVElGWV9TWVNURU0iKTsKKwlyZXMgPSBQUWV4ZWMobXljb25uLCAiSURFTlRJ RllfU1lTVEVNIik7CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09L KQogCXsKIAkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5k IFwiJXNcIjogJXMiLAotCQkJCQkgIklERU5USUZZX1NZU1RFTSIsIFBRZXJyb3JNZXNzYWdlKGNv bm4pKTsKKwkJCQkJICJJREVOVElGWV9TWVNURU0iLCBQUWVycm9yTWVzc2FnZShteWNvbm4pKTsK IAogCQlQUWNsZWFyKHJlcyk7CiAJCXJldHVybiBmYWxzZTsKQEAgLTQ2MCw3ICs0NjAsNyBAQCBS dW5JZGVudGlmeVN5c3RlbShQR2Nvbm4gKmNvbm4sIGNoYXIgKipzeXNpZCwgVGltZUxpbmVJRCAq c3RhcnR0bGksCiAJaWYgKGRiX25hbWUgIT0gTlVMTCkKIAl7CiAJCSpkYl9uYW1lID0gTlVMTDsK LQkJaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA+PSA5MDQwMCkKKwkJaWYgKFBRc2VydmVyVmVy c2lvbihteWNvbm4pID49IDkwNDAwKQogCQl7CiAJCQlpZiAoUFFuZmllbGRzKHJlcykgPCA0KQog CQkJewpAQCAtNDg3LDcgKzQ4Nyw3IEBAIFJ1bklkZW50aWZ5U3lzdGVtKFBHY29ubiAqY29ubiwg Y2hhciAqKnN5c2lkLCBUaW1lTGluZUlEICpzdGFydHRsaSwKICAqIFJldHVybnMgZmFsc2Ugb24g ZmFpbHVyZSwgYW5kIHRydWUgb3RoZXJ3aXNlLgogICovCiBib29sCi1HZXRTbG90SW5mb3JtYXRp b24oUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpzbG90X25hbWUsCitHZXRTbG90SW5mb3JtYXRp b24oUEdjb25uICpteWNvbm4sIGNvbnN0IGNoYXIgKnNsb3RfbmFtZSwKIAkJCQkgICBYTG9nUmVj UHRyICpyZXN0YXJ0X2xzbiwgVGltZUxpbmVJRCAqcmVzdGFydF90bGkpCiB7CiAJUEdyZXN1bHQg ICAqcmVzOwpAQCAtNTAyLDEzICs1MDIsMTMgQEAgR2V0U2xvdEluZm9ybWF0aW9uKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lLAogCiAJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZl cigpOwogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiUkVBRF9SRVBMSUNBVElPTl9TTE9UICVz Iiwgc2xvdF9uYW1lKTsKLQlyZXMgPSBQUWV4ZWMoY29ubiwgcXVlcnktPmRhdGEpOworCXJlcyA9 IFBRZXhlYyhteWNvbm4sIHF1ZXJ5LT5kYXRhKTsKIAlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkp OwogCiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKIAkJ cGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjog JXMiLAotCQkJCQkgIlJFQURfUkVQTElDQVRJT05fU0xPVCIsIFBRZXJyb3JNZXNzYWdlKGNvbm4p KTsKKwkJCQkJICJSRUFEX1JFUExJQ0FUSU9OX1NMT1QiLCBQUWVycm9yTWVzc2FnZShteWNvbm4p KTsKIAkJUFFjbGVhcihyZXMpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQpAQCAtNTgxLDEzICs1ODEs MTMgQEAgR2V0U2xvdEluZm9ybWF0aW9uKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9u YW1lLAogICogcmV0dXJucyB0cnVlIGluIGNhc2Ugb2Ygc3VjY2Vzcy4KICAqLwogYm9vbAotQ3Jl YXRlUmVwbGljYXRpb25TbG90KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lLCBj b25zdCBjaGFyICpwbHVnaW4sCitDcmVhdGVSZXBsaWNhdGlvblNsb3QoUEdjb25uICpteWNvbm4s IGNvbnN0IGNoYXIgKnNsb3RfbmFtZSwgY29uc3QgY2hhciAqcGx1Z2luLAogCQkJCQkgIGJvb2wg aXNfdGVtcG9yYXJ5LCBib29sIGlzX3BoeXNpY2FsLCBib29sIHJlc2VydmVfd2FsLAogCQkJCQkg IGJvb2wgc2xvdF9leGlzdHNfb2ssIGJvb2wgdHdvX3BoYXNlLCBib29sIGZhaWxvdmVyKQogewog CVBRRXhwQnVmZmVyIHF1ZXJ5OwogCVBHcmVzdWx0ICAgKnJlczsKLQlib29sCQl1c2VfbmV3X29w dGlvbl9zeW50YXggPSAoUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pID49IDE1MDAwMCk7CisJYm9vbAkJ dXNlX25ld19vcHRpb25fc3ludGF4ID0gKFBRc2VydmVyVmVyc2lvbihteWNvbm4pID49IDE1MDAw MCk7CiAKIAlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CiAKQEAgLTYxNywxNSArNjE3LDE1 IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3Rf bmFtZSwgY29uc3QgY2hhciAqcGx1Z2luLAogCX0KIAllbHNlCiAJewotCQlpZiAoZmFpbG92ZXIg JiYgUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pID49IDE3MDAwMCkKKwkJaWYgKGZhaWxvdmVyICYmIFBR c2VydmVyVmVyc2lvbihteWNvbm4pID49IDE3MDAwMCkKIAkJCUFwcGVuZFBsYWluQ29tbWFuZE9w dGlvbihxdWVyeSwgdXNlX25ld19vcHRpb25fc3ludGF4LAogCQkJCQkJCQkJICJGQUlMT1ZFUiIp OwogCi0JCWlmICh0d29fcGhhc2UgJiYgUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pID49IDE1MDAwMCkK KwkJaWYgKHR3b19waGFzZSAmJiBQUXNlcnZlclZlcnNpb24obXljb25uKSA+PSAxNTAwMDApCiAJ CQlBcHBlbmRQbGFpbkNvbW1hbmRPcHRpb24ocXVlcnksIHVzZV9uZXdfb3B0aW9uX3N5bnRheCwK IAkJCQkJCQkJCSAiVFdPX1BIQVNFIik7CiAKLQkJaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA+ PSAxMDAwMDApCisJCWlmIChQUXNlcnZlclZlcnNpb24obXljb25uKSA+PSAxMDAwMDApCiAJCXsK IAkJCS8qIHBnX3JlY3Zsb2dpY2FsIGRvZXNuJ3QgdXNlIGFuIGV4cG9ydGVkIHNuYXBzaG90LCBz byBzdXBwcmVzcyAqLwogCQkJaWYgKHVzZV9uZXdfb3B0aW9uX3N5bnRheCkKQEAgLTY0OSw3ICs2 NDksNyBAQCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpz bG90X25hbWUsIGNvbnN0IGNoYXIgKnBsdWdpbiwKIAl9CiAKIAkvKiBOb3cgcnVuIHRoZSBxdWVy eSAqLwotCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVyeS0+ZGF0YSk7CisJcmVzID0gUFFleGVjKG15 Y29ubiwgcXVlcnktPmRhdGEpOwogCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RV UExFU19PSykKIAl7CiAJCWNvbnN0IGNoYXIgKnNxbHN0YXRlID0gUFFyZXN1bHRFcnJvckZpZWxk KHJlcywgUEdfRElBR19TUUxTVEFURSk7CkBAIC02NjUsNyArNjY1LDcgQEAgQ3JlYXRlUmVwbGlj YXRpb25TbG90KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lLCBjb25zdCBjaGFy ICpwbHVnaW4sCiAJCWVsc2UKIAkJewogCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCBy ZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjogJXMiLAotCQkJCQkJIHF1ZXJ5LT5kYXRhLCBQUWVy cm9yTWVzc2FnZShjb25uKSk7CisJCQkJCQkgcXVlcnktPmRhdGEsIFBRZXJyb3JNZXNzYWdlKG15 Y29ubikpOwogCiAJCQlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOwogCQkJUFFjbGVhcihyZXMp OwpAQCAtNjk0LDcgKzY5NCw3IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChQR2Nvbm4gKmNvbm4s IGNvbnN0IGNoYXIgKnNsb3RfbmFtZSwgY29uc3QgY2hhciAqcGx1Z2luLAogICogcmV0dXJucyB0 cnVlIGluIGNhc2Ugb2Ygc3VjY2Vzcy4KICAqLwogYm9vbAotRHJvcFJlcGxpY2F0aW9uU2xvdChQ R2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3RfbmFtZSkKK0Ryb3BSZXBsaWNhdGlvblNsb3Qo UEdjb25uICpteWNvbm4sIGNvbnN0IGNoYXIgKnNsb3RfbmFtZSkKIHsKIAlQUUV4cEJ1ZmZlciBx dWVyeTsKIAlQR3Jlc3VsdCAgICpyZXM7CkBAIC03MDYsMTEgKzcwNiwxMSBAQCBEcm9wUmVwbGlj YXRpb25TbG90KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lKQogCS8qIEJ1aWxk IHF1ZXJ5ICovCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJEUk9QX1JFUExJQ0FUSU9OX1NM T1QgXCIlc1wiIiwKIAkJCQkJICBzbG90X25hbWUpOwotCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVy eS0+ZGF0YSk7CisJcmVzID0gUFFleGVjKG15Y29ubiwgcXVlcnktPmRhdGEpOwogCWlmIChQUXJl c3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCiAJewogCQlwZ19sb2dfZXJyb3Io ImNvdWxkIG5vdCBzZW5kIHJlcGxpY2F0aW9uIGNvbW1hbmQgXCIlc1wiOiAlcyIsCi0JCQkJCSBx dWVyeS0+ZGF0YSwgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkgcXVlcnktPmRhdGEsIFBR ZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCiAJCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CiAJ CVBRY2xlYXIocmVzKTsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0012-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Disposition: attachment; filename="v5-0012-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trgk11 RnJvbSBjZTIwN2EyMGMzYzMxNTliYWYyZDM5ODhmNjY2MDkwMTRiMzZiNjNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogV2VkLCAzIERlYyAyMDI1IDA3OjQwOjI2ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAxMi8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IGdsb2JhbHMKIGlu IGVjcGcuaGVhZGVyCgpUaGlzIGNvbW1pdCByZW5hbWVzIGxvY2FsIHZhcmlhYmxlcyBpbiBlY3Bn LmhlYWRlciB0aGF0IHdlcmUgc2hhZG93ZWQgYnkKZ2xvYmFsIGlkZW50aWZpZXJzIG9mIHRoZSBz YW1lIG5hbWVzLiBUaGUgdXBkYXRlZCBsb2NhbCBuYW1lcyBlbnN1cmUgdGhlCmlkZW50aWZpZXJz IHJlbWFpbiBkaXN0aW5jdCBhbmQgdW5hbWJpZ3VvdXMgd2l0aGluIHRoZSBmaWxlLgoKQXV0aG9y OiBDaGFvIExpIDxsaWNAaGlnaGdvLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQUVvV3gya1EyeDVnTWFqOHRITEozPWpmQytwNVlYSGtKeUhyRFRpUXcybm4yRkpUbVFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvZWNwZy5oZWFkZXIg fCAxMiArKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2VjcGcu aGVhZGVyIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2VjcGcuaGVhZGVyCmluZGV4IGRk ZTY5YTM5Njk1Li5hNThkZGEzMmY0OCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9w cmVwcm9jL2VjcGcuaGVhZGVyCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9lY3Bn LmhlYWRlcgpAQCAtMTc4LDcgKzE3OCw3IEBAIGNyZWF0ZV9xdWVzdGlvbm1hcmtzKGNvbnN0IGNo YXIgKm5hbWUsIGJvb2wgYXJyYXkpCiB9CiAKIHN0YXRpYyBjaGFyICoKLWFkanVzdF9vdXRvZnNj b3BlX2N1cnNvcl92YXJzKHN0cnVjdCBjdXJzb3IgKmN1cikKK2FkanVzdF9vdXRvZnNjb3BlX2N1 cnNvcl92YXJzKHN0cnVjdCBjdXJzb3IgKnBjdXIpCiB7CiAJLyoKIAkgKiBJbmZvcm1peCBhY2Nl cHRzIERFQ0xBUkUgd2l0aCB2YXJpYWJsZXMgdGhhdCBhcmUgb3V0IG9mIHNjb3BlIHdoZW4gT1BF TgpAQCAtMjAzLDcgKzIwMyw3IEBAIGFkanVzdF9vdXRvZnNjb3BlX2N1cnNvcl92YXJzKHN0cnVj dCBjdXJzb3IgKmN1cikKIAkJc3RydWN0IHZhcmlhYmxlICpuZXd2YXIsCiAJCQkJICAgKm5ld2lu ZDsKIAotCQlsaXN0ID0gKGluc2VydCA/IGN1ci0+YXJnc2luc2VydCA6IGN1ci0+YXJnc3Jlc3Vs dCk7CisJCWxpc3QgPSAoaW5zZXJ0ID8gcGN1ci0+YXJnc2luc2VydCA6IHBjdXItPmFyZ3NyZXN1 bHQpOwogCiAJCWZvciAocHRyID0gbGlzdDsgcHRyICE9IE5VTEw7IHB0ciA9IHB0ci0+bmV4dCkK IAkJewpAQCAtNDM0LDkgKzQzNCw5IEBAIGFkanVzdF9vdXRvZnNjb3BlX2N1cnNvcl92YXJzKHN0 cnVjdCBjdXJzb3IgKmN1cikKIAkJfQogCiAJCWlmIChpbnNlcnQpCi0JCQljdXItPmFyZ3NpbnNl cnRfb29zID0gbmV3bGlzdDsKKwkJCXBjdXItPmFyZ3NpbnNlcnRfb29zID0gbmV3bGlzdDsKIAkJ ZWxzZQotCQkJY3VyLT5hcmdzcmVzdWx0X29vcyA9IG5ld2xpc3Q7CisJCQlwY3VyLT5hcmdzcmVz dWx0X29vcyA9IG5ld2xpc3Q7CiAJfQogCiAJcmV0dXJuIHJlc3VsdDsKQEAgLTQ5MCw3ICs0OTAs NyBAQCBzdGF0aWMgdm9pZAogYWRkX3R5cGVkZWYoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hh ciAqZGltZW5zaW9uLCBjb25zdCBjaGFyICpsZW5ndGgsCiAJCQllbnVtIEVDUEd0dHlwZSB0eXBl X2VudW0sCiAJCQljb25zdCBjaGFyICp0eXBlX2RpbWVuc2lvbiwgY29uc3QgY2hhciAqdHlwZV9p bmRleCwKLQkJCWludCBpbml0aWFsaXplciwgaW50IGFycmF5KQorCQkJaW50IGluaXRpYWxfdmFs dWUsIGludCBhcnJheSkKIHsKIAkvKiBhZGQgZW50cnkgdG8gbGlzdCAqLwogCXN0cnVjdCB0eXBl ZGVmcyAqcHRyLApAQCAtNDk4LDcgKzQ5OCw3IEBAIGFkZF90eXBlZGVmKGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IGNoYXIgKmRpbWVuc2lvbiwgY29uc3QgY2hhciAqbGVuZ3RoLAogCiAJaWYgKCh0 eXBlX2VudW0gPT0gRUNQR3Rfc3RydWN0IHx8CiAJCSB0eXBlX2VudW0gPT0gRUNQR3RfdW5pb24p ICYmCi0JCWluaXRpYWxpemVyID09IDEpCisJCWluaXRpYWxfdmFsdWUgPT0gMSkKIAkJbW1lcnJv cihQQVJTRV9FUlJPUiwgRVRfRVJST1IsICJpbml0aWFsaXplciBub3QgYWxsb3dlZCBpbiB0eXBl IGRlZmluaXRpb24iKTsKIAllbHNlIGlmIChJTkZPUk1JWF9NT0RFICYmIHN0cmNtcChuYW1lLCAi c3RyaW5nIikgPT0gMCkKIAkJbW1lcnJvcihQQVJTRV9FUlJPUiwgRVRfRVJST1IsICJ0eXBlIG5h bWUgXCJzdHJpbmdcIiBpcyByZXNlcnZlZCBpbiBJbmZvcm1peCBtb2RlIik7Ci0tIAoyLjM5LjUg KEFwcGxlIEdpdC0xNTQpCgo= --000000000000db94f406451cb433 Content-Type: application/octet-stream; name="v5-0013-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Disposition: attachment; filename="v5-0013-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mir7trgl12 RnJvbSBjOTE1NDA0MGRiZDI3ZTVjOWU3ZDdlNGI2ODU0MjVlYzFmODgzNjQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogV2VkLCAzIERlYyAyMDI1IDA4OjQ0OjQ2ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NSAxMy8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IGdsb2JhbHMKIGFj cm9zcyB0aW1lLXJlbGF0ZWQgbW9kdWxlcwoKVGhpcyBjb21taXQgcmVuYW1lcyBzZXZlcmFsIGxv Y2FsIHZhcmlhYmxlcyBpbiBkYXRlL3RpbWUgYW5kIHRpbWV6b25lCmNvZGUgdGhhdCB3ZXJlIHNo YWRvd2VkIGJ5IGdsb2JhbCBpZGVudGlmaWVycyBvZiB0aGUgc2FtZSBuYW1lcy4gVGhlCnVwZGF0 ZWQgbG9jYWwgaWRlbnRpZmllcnMgZW5zdXJlIGNsZWFyZXIgc2VwYXJhdGlvbiBvZiBzY29wZSB0 aHJvdWdob3V0CnRoZSBhZmZlY3RlZCBtb2R1bGVzLgoKQSBmZXcgYWRkaXRpb25hbCBzaGFkb3dp bmcgZml4ZXMgaW4gdGhlIHNhbWUgY29kZSBhcmVhcyBhcmUgaW5jbHVkZWQgYXMKd2VsbC4gVGhl c2UgYXJlIHVucmVsYXRlZCB0byB0aGUgY29ubiByZW5hbWluZyBidXQgb2NjdXIgaW4gdGhlIHNh bWUKZmlsZXMsIHNvIHRoZXkgYXJlIGJ1bmRsZWQgaGVyZSB0byBrZWVwIHRoZSBjb21taXQgc2Vs Zi1jb250YWluZWQuCgpBdXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRW9XeDJrUTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5 SHJEVGlRdzJubjJGSlRtUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9kYXRlLmMgICAgICAgfCAyMCArKystLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZXRp bWUuYyAgIHwgMjAgKysrLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zvcm1hdHRpbmcuYyB8 ICA4ICstLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jICB8IDkyICsrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLQogc3JjL2Jpbi9pbml0ZGIvZmluZHRpbWV6b25lLmMgICAg ICB8IDM4ICsrKysrKy0tLS0tLQogc3JjL3RpbWV6b25lL3BndHouYyAgICAgICAgICAgICAgICB8 IDE2ICsrKy0tLQogNiBmaWxlcyBjaGFuZ2VkLCA5NyBpbnNlcnRpb25zKCspLCA5NyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCBjNGI4MTI1ZGQ2Ni4uNmFmYmZiYWJjY2IgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2RhdGUuYwpAQCAtNTcwLDE2ICs1NzAsMTYgQEAgRGF0dW0KIGRhdGVfcGxpKFBH X0ZVTkNUSU9OX0FSR1MpCiB7CiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dFVEFSR19EQVRFQURU KDApOwotCWludDMyCQlkYXlzID0gUEdfR0VUQVJHX0lOVDMyKDEpOworCWludDMyCQlkYXlWYWwg PSBQR19HRVRBUkdfSU5UMzIoMSk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCiAJaWYgKERBVEVfTk9U X0ZJTklURShkYXRlVmFsKSkKIAkJUEdfUkVUVVJOX0RBVEVBRFQoZGF0ZVZhbCk7IC8qIGNhbid0 IGNoYW5nZSBpbmZpbml0eSAqLwogCi0JcmVzdWx0ID0gZGF0ZVZhbCArIGRheXM7CisJcmVzdWx0 ID0gZGF0ZVZhbCArIGRheVZhbDsKIAogCS8qIENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93IGFu ZCBvdXQtb2YtYWxsb3dlZC1yYW5nZSAqLwotCWlmICgoZGF5cyA+PSAwID8gKHJlc3VsdCA8IGRh dGVWYWwpIDogKHJlc3VsdCA+IGRhdGVWYWwpKSB8fAorCWlmICgoZGF5VmFsID49IDAgPyAocmVz dWx0IDwgZGF0ZVZhbCkgOiAocmVzdWx0ID4gZGF0ZVZhbCkpIHx8CiAJCSFJU19WQUxJRF9EQVRF KHJlc3VsdCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElN RV9WQUxVRV9PVVRfT0ZfUkFOR0UpLApAQCAtNTk0LDE2ICs1OTQsMTYgQEAgRGF0dW0KIGRhdGVf bWlpKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dFVEFSR19E QVRFQURUKDApOwotCWludDMyCQlkYXlzID0gUEdfR0VUQVJHX0lOVDMyKDEpOworCWludDMyCQlk YXlWYWwgPSBQR19HRVRBUkdfSU5UMzIoMSk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCiAJaWYgKERB VEVfTk9UX0ZJTklURShkYXRlVmFsKSkKIAkJUEdfUkVUVVJOX0RBVEVBRFQoZGF0ZVZhbCk7IC8q IGNhbid0IGNoYW5nZSBpbmZpbml0eSAqLwogCi0JcmVzdWx0ID0gZGF0ZVZhbCAtIGRheXM7CisJ cmVzdWx0ID0gZGF0ZVZhbCAtIGRheVZhbDsKIAogCS8qIENoZWNrIGZvciBpbnRlZ2VyIG92ZXJm bG93IGFuZCBvdXQtb2YtYWxsb3dlZC1yYW5nZSAqLwotCWlmICgoZGF5cyA+PSAwID8gKHJlc3Vs dCA+IGRhdGVWYWwpIDogKHJlc3VsdCA8IGRhdGVWYWwpKSB8fAorCWlmICgoZGF5VmFsID49IDAg PyAocmVzdWx0ID4gZGF0ZVZhbCkgOiAocmVzdWx0IDwgZGF0ZVZhbCkpIHx8CiAJCSFJU19WQUxJ RF9EQVRFKHJlc3VsdCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRFVElNRV9WQUxVRV9PVVRfT0ZfUkFOR0UpLApAQCAtMzE1OSw3ICszMTU5LDcgQEAgdGltZXR6 X3pvbmUoUEdfRlVOQ1RJT05fQVJHUykKIAlUaW1lVHpBRFQgICp0ID0gUEdfR0VUQVJHX1RJTUVU WkFEVF9QKDEpOwogCVRpbWVUekFEVCAgKnJlc3VsdDsKIAlpbnQJCQl0ejsKLQljaGFyCQl0em5h bWVbVFpfU1RSTEVOX01BWCArIDFdOworCWNoYXIJCXR6X25hbWVbVFpfU1RSTEVOX01BWCArIDFd OwogCWludAkJCXR5cGUsCiAJCQkJdmFsOwogCXBnX3R6CSAgICp0enA7CkBAIC0zMTY3LDkgKzMx NjcsOSBAQCB0aW1ldHpfem9uZShQR19GVU5DVElPTl9BUkdTKQogCS8qCiAJICogTG9vayB1cCB0 aGUgcmVxdWVzdGVkIHRpbWV6b25lLgogCSAqLwotCXRleHRfdG9fY3N0cmluZ19idWZmZXIoem9u ZSwgdHpuYW1lLCBzaXplb2YodHpuYW1lKSk7CisJdGV4dF90b19jc3RyaW5nX2J1ZmZlcih6b25l LCB0el9uYW1lLCBzaXplb2YodHpfbmFtZSkpOwogCi0JdHlwZSA9IERlY29kZVRpbWV6b25lTmFt ZSh0em5hbWUsICZ2YWwsICZ0enApOworCXR5cGUgPSBEZWNvZGVUaW1lem9uZU5hbWUodHpfbmFt ZSwgJnZhbCwgJnR6cCk7CiAKIAlpZiAodHlwZSA9PSBUWk5BTUVfRklYRURfT0ZGU0VUKQogCXsK QEAgLTMxODIsNyArMzE4Miw3IEBAIHRpbWV0el96b25lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVRp bWVzdGFtcFR6IG5vdyA9IEdldEN1cnJlbnRUcmFuc2FjdGlvblN0YXJ0VGltZXN0YW1wKCk7CiAJ CWludAkJCWlzZHN0OwogCi0JCXR6ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZzZXRUUyhu b3csIHR6bmFtZSwgdHpwLCAmaXNkc3QpOworCQl0eiA9IERldGVybWluZVRpbWVab25lQWJicmV2 T2Zmc2V0VFMobm93LCB0el9uYW1lLCB0enAsICZpc2RzdCk7CiAJfQogCWVsc2UKIAl7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZXRpbWUuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9kYXRldGltZS5jCmluZGV4IDY4MGZlZTJhODQ0Li5kODI0MGJlYWZjMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGV0aW1lLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2RhdGV0aW1lLmMKQEAgLTY0MiwxMiArNjQyLDEyIEBAIEFkanVzdE1pY3Jvc2Vj b25kcyhpbnQ2NCB2YWwsIGRvdWJsZSBmdmFsLCBpbnQ2NCBzY2FsZSwKIHN0YXRpYyBib29sCiBB ZGp1c3REYXlzKGludDY0IHZhbCwgaW50IHNjYWxlLCBzdHJ1Y3QgcGdfaXRtX2luICppdG1faW4p CiB7Ci0JaW50CQkJZGF5czsKKwlpbnQJCQlkYXlWYWw7CiAKIAlpZiAodmFsIDwgSU5UX01JTiB8 fCB2YWwgPiBJTlRfTUFYKQogCQlyZXR1cm4gZmFsc2U7Ci0JcmV0dXJuICFwZ19tdWxfczMyX292 ZXJmbG93KChpbnQzMikgdmFsLCBzY2FsZSwgJmRheXMpICYmCi0JCSFwZ19hZGRfczMyX292ZXJm bG93KGl0bV9pbi0+dG1fbWRheSwgZGF5cywgJml0bV9pbi0+dG1fbWRheSk7CisJcmV0dXJuICFw Z19tdWxfczMyX292ZXJmbG93KChpbnQzMikgdmFsLCBzY2FsZSwgJmRheVZhbCkgJiYKKwkJIXBn X2FkZF9zMzJfb3ZlcmZsb3coaXRtX2luLT50bV9tZGF5LCBkYXlWYWwsICZpdG1faW4tPnRtX21k YXkpOwogfQogCiAvKgpAQCAtMzI4NSw3ICszMjg1LDcgQEAgRGVjb2RlU3BlY2lhbChpbnQgZmll bGQsIGNvbnN0IGNoYXIgKmxvd3Rva2VuLCBpbnQgKnZhbCkKICAqIHRoZSB6b25lIG5hbWUgb3Ig dGhlIGFiYnJldmlhdGlvbidzIHVuZGVybHlpbmcgem9uZS4KICAqLwogaW50Ci1EZWNvZGVUaW1l em9uZU5hbWUoY29uc3QgY2hhciAqdHpuYW1lLCBpbnQgKm9mZnNldCwgcGdfdHogKip0eikKK0Rl Y29kZVRpbWV6b25lTmFtZShjb25zdCBjaGFyICp0el9uYW1lLCBpbnQgKm9mZnNldCwgcGdfdHog Kip0eikKIHsKIAljaGFyCSAgICpsb3d6b25lOwogCWludAkJCWR0ZXJyLApAQCAtMzMwMiw4ICsz MzAyLDggQEAgRGVjb2RlVGltZXpvbmVOYW1lKGNvbnN0IGNoYXIgKnR6bmFtZSwgaW50ICpvZmZz ZXQsIHBnX3R6ICoqdHopCiAJICovCiAKIAkvKiBEZWNvZGVUaW1lem9uZUFiYnJldiByZXF1aXJl cyBsb3dlcmNhc2UgaW5wdXQgKi8KLQlsb3d6b25lID0gZG93bmNhc2VfdHJ1bmNhdGVfaWRlbnRp Zmllcih0em5hbWUsCi0JCQkJCQkJCQkJICAgc3RybGVuKHR6bmFtZSksCisJbG93em9uZSA9IGRv d25jYXNlX3RydW5jYXRlX2lkZW50aWZpZXIodHpfbmFtZSwKKwkJCQkJCQkJCQkgICBzdHJsZW4o dHpfbmFtZSksCiAJCQkJCQkJCQkJICAgZmFsc2UpOwogCiAJZHRlcnIgPSBEZWNvZGVUaW1lem9u ZUFiYnJldigwLCBsb3d6b25lLCAmdHlwZSwgb2Zmc2V0LCB0eiwgJmV4dHJhKTsKQEAgLTMzMjMs MTEgKzMzMjMsMTEgQEAgRGVjb2RlVGltZXpvbmVOYW1lKGNvbnN0IGNoYXIgKnR6bmFtZSwgaW50 ICpvZmZzZXQsIHBnX3R6ICoqdHopCiAJZWxzZQogCXsKIAkJLyogdHJ5IGl0IGFzIGEgZnVsbCB6 b25lIG5hbWUgKi8KLQkJKnR6ID0gcGdfdHpzZXQodHpuYW1lKTsKKwkJKnR6ID0gcGdfdHpzZXQo dHpfbmFtZSk7CiAJCWlmICgqdHogPT0gTlVMTCkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkgZXJybXNnKCJ0 aW1lIHpvbmUgXCIlc1wiIG5vdCByZWNvZ25pemVkIiwgdHpuYW1lKSkpOworCQkJCQkgZXJybXNn KCJ0aW1lIHpvbmUgXCIlc1wiIG5vdCByZWNvZ25pemVkIiwgdHpfbmFtZSkpKTsKIAkJcmV0dXJu IFRaTkFNRV9aT05FOwogCX0KIH0KQEAgLTMzNDAsMTIgKzMzNDAsMTIgQEAgRGVjb2RlVGltZXpv bmVOYW1lKGNvbnN0IGNoYXIgKnR6bmFtZSwgaW50ICpvZmZzZXQsIHBnX3R6ICoqdHopCiAgKiBy ZXN1bHQgaW4gYWxsIGNhc2VzLgogICovCiBwZ190eiAqCi1EZWNvZGVUaW1lem9uZU5hbWVUb1R6 KGNvbnN0IGNoYXIgKnR6bmFtZSkKK0RlY29kZVRpbWV6b25lTmFtZVRvVHooY29uc3QgY2hhciAq dHpfbmFtZSkKIHsKIAlwZ190egkgICAqcmVzdWx0OwogCWludAkJCW9mZnNldDsKIAotCWlmIChE ZWNvZGVUaW1lem9uZU5hbWUodHpuYW1lLCAmb2Zmc2V0LCAmcmVzdWx0KSA9PSBUWk5BTUVfRklY RURfT0ZGU0VUKQorCWlmIChEZWNvZGVUaW1lem9uZU5hbWUodHpfbmFtZSwgJm9mZnNldCwgJnJl c3VsdCkgPT0gVFpOQU1FX0ZJWEVEX09GRlNFVCkKIAl7CiAJCS8qIGZpeGVkLW9mZnNldCBhYmJy ZXZpYXRpb24sIGdldCBhIHBnX3R6IGRlc2NyaXB0b3IgZm9yIHRoYXQgKi8KIAkJcmVzdWx0ID0g cGdfdHpzZXRfb2Zmc2V0KC1vZmZzZXQpOwkvKiBmbGlwIHRvIFBPU0lYIHNpZ24gY29udmVudGlv biAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zvcm1hdHRpbmcuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9mb3JtYXR0aW5nLmMKaW5kZXggNWJmZWRhMmZmZGUuLmQzODU1 OTFiNTNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZm9ybWF0dGluZy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mb3JtYXR0aW5nLmMKQEAgLTMwNDEsMTIgKzMwNDEs MTIgQEAgRENIX3RvX2NoYXIoRm9ybWF0Tm9kZSAqbm9kZSwgYm9vbCBpc19pbnRlcnZhbCwgVG1U b0NoYXIgKmluLCBjaGFyICpvdXQsIE9pZCBjb2wKIAkJCQllbHNlCiAJCQkJewogCQkJCQlpbnQJ CQltb24gPSAwOwotCQkJCQljb25zdCBjaGFyICpjb25zdCAqbW9udGhzOworCQkJCQljb25zdCBj aGFyICpjb25zdCAqcG1vbnRoczsKIAogCQkJCQlpZiAobi0+a2V5LT5pZCA9PSBEQ0hfUk0pCi0J CQkJCQltb250aHMgPSBybV9tb250aHNfdXBwZXI7CisJCQkJCQlwbW9udGhzID0gcm1fbW9udGhz X3VwcGVyOwogCQkJCQllbHNlCi0JCQkJCQltb250aHMgPSBybV9tb250aHNfbG93ZXI7CisJCQkJ CQlwbW9udGhzID0gcm1fbW9udGhzX2xvd2VyOwogCiAJCQkJCS8qCiAJCQkJCSAqIENvbXB1dGUg dGhlIHBvc2l0aW9uIGluIHRoZSByb21hbi1udW1lcmFsIGFycmF5LiAgTm90ZQpAQCAtMzA4MSw3 ICszMDgxLDcgQEAgRENIX3RvX2NoYXIoRm9ybWF0Tm9kZSAqbm9kZSwgYm9vbCBpc19pbnRlcnZh bCwgVG1Ub0NoYXIgKmluLCBjaGFyICpvdXQsIE9pZCBjb2wKIAkJCQkJfQogCiAJCQkJCXNwcmlu dGYocywgIiUqcyIsIElTX1NVRkZJWF9GTShuLT5zdWZmaXgpID8gMCA6IC00LAotCQkJCQkJCW1v bnRoc1ttb25dKTsKKwkJCQkJCQlwbW9udGhzW21vbl0pOwogCQkJCQlzICs9IHN0cmxlbihzKTsK IAkJCQl9CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggMmRjOTBh MmI4YTkuLjAyNzcxMWE5OWNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC00OTAs MTEgKzQ5MCwxMSBAQCB0aW1lc3RhbXB0el9pbihQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIGlu dAogcGFyc2Vfc2FuZV90aW1lem9uZShzdHJ1Y3QgcGdfdG0gKnRtLCB0ZXh0ICp6b25lKQogewot CWNoYXIJCXR6bmFtZVtUWl9TVFJMRU5fTUFYICsgMV07CisJY2hhcgkJdHpfbmFtZVtUWl9TVFJM RU5fTUFYICsgMV07CiAJaW50CQkJZHRlcnI7CiAJaW50CQkJdHo7CiAKLQl0ZXh0X3RvX2NzdHJp bmdfYnVmZmVyKHpvbmUsIHR6bmFtZSwgc2l6ZW9mKHR6bmFtZSkpOworCXRleHRfdG9fY3N0cmlu Z19idWZmZXIoem9uZSwgdHpfbmFtZSwgc2l6ZW9mKHR6X25hbWUpKTsKIAogCS8qCiAJICogTG9v ayB1cCB0aGUgcmVxdWVzdGVkIHRpbWV6b25lLiAgRmlyc3Qgd2UgdHJ5IHRvIGludGVycHJldCBp dCBhcyBhCkBAIC01MDYsMTQgKzUwNiwxNCBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0cnVjdCBw Z190bSAqdG0sIHRleHQgKnpvbmUpCiAJICogYXMgaW52YWxpZCwgaXQncyBlbm91Z2ggdG8gZGlz YWxsb3cgaGF2aW5nIGEgZGlnaXQgaW4gdGhlIGZpcnN0CiAJICogcG9zaXRpb24gb2Ygb3VyIGlu cHV0IHN0cmluZy4KIAkgKi8KLQlpZiAoaXNkaWdpdCgodW5zaWduZWQgY2hhcikgKnR6bmFtZSkp CisJaWYgKGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpICp0el9uYW1lKSkKIAkJZXJlcG9ydChFUlJP UiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkg ZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSAlczogXCIlc1wiIiwKLQkJCQkJ CSJudW1lcmljIHRpbWUgem9uZSIsIHR6bmFtZSksCisJCQkJCQkibnVtZXJpYyB0aW1lIHpvbmUi LCB0el9uYW1lKSwKIAkJCQkgZXJyaGludCgiTnVtZXJpYyB0aW1lIHpvbmVzIG11c3QgaGF2ZSBc Ii1cIiBvciBcIitcIiBhcyBmaXJzdCBjaGFyYWN0ZXIuIikpKTsKIAotCWR0ZXJyID0gRGVjb2Rl VGltZXpvbmUodHpuYW1lLCAmdHopOworCWR0ZXJyID0gRGVjb2RlVGltZXpvbmUodHpfbmFtZSwg JnR6KTsKIAlpZiAoZHRlcnIgIT0gMCkKIAl7CiAJCWludAkJCXR5cGUsCkBAIC01MjMsMTMgKzUy MywxMyBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0cnVjdCBwZ190bSAqdG0sIHRleHQgKnpvbmUp CiAJCWlmIChkdGVyciA9PSBEVEVSUl9UWkRJU1BfT1ZFUkZMT1cpCiAJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJ IGVycm1zZygibnVtZXJpYyB0aW1lIHpvbmUgXCIlc1wiIG91dCBvZiByYW5nZSIsIHR6bmFtZSkp KTsKKwkJCQkJIGVycm1zZygibnVtZXJpYyB0aW1lIHpvbmUgXCIlc1wiIG91dCBvZiByYW5nZSIs IHR6X25hbWUpKSk7CiAJCWVsc2UgaWYgKGR0ZXJyICE9IERURVJSX0JBRF9GT1JNQVQpCiAJCQll cmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZB TFVFKSwKLQkJCQkJIGVycm1zZygidGltZSB6b25lIFwiJXNcIiBub3QgcmVjb2duaXplZCIsIHR6 bmFtZSkpKTsKKwkJCQkJIGVycm1zZygidGltZSB6b25lIFwiJXNcIiBub3QgcmVjb2duaXplZCIs IHR6X25hbWUpKSk7CiAKLQkJdHlwZSA9IERlY29kZVRpbWV6b25lTmFtZSh0em5hbWUsICZ2YWws ICZ0enApOworCQl0eXBlID0gRGVjb2RlVGltZXpvbmVOYW1lKHR6X25hbWUsICZ2YWwsICZ0enAp OwogCiAJCWlmICh0eXBlID09IFRaTkFNRV9GSVhFRF9PRkZTRVQpCiAJCXsKQEAgLTUzOSw3ICs1 MzksNyBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0cnVjdCBwZ190bSAqdG0sIHRleHQgKnpvbmUp CiAJCWVsc2UgaWYgKHR5cGUgPT0gVFpOQU1FX0RZTlRaKQogCQl7CiAJCQkvKiBkeW5hbWljLW9m ZnNldCBhYmJyZXZpYXRpb24sIHJlc29sdmUgdXNpbmcgc3BlY2lmaWVkIHRpbWUgKi8KLQkJCXR6 ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZzZXQodG0sIHR6bmFtZSwgdHpwKTsKKwkJCXR6 ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZzZXQodG0sIHR6X25hbWUsIHR6cCk7CiAJCX0K IAkJZWxzZQogCQl7CkBAIC01NTksMTEgKzU1OSwxMSBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0 cnVjdCBwZ190bSAqdG0sIHRleHQgKnpvbmUpCiBzdGF0aWMgcGdfdHogKgogbG9va3VwX3RpbWV6 b25lKHRleHQgKnpvbmUpCiB7Ci0JY2hhcgkJdHpuYW1lW1RaX1NUUkxFTl9NQVggKyAxXTsKKwlj aGFyCQl0el9uYW1lW1RaX1NUUkxFTl9NQVggKyAxXTsKIAotCXRleHRfdG9fY3N0cmluZ19idWZm ZXIoem9uZSwgdHpuYW1lLCBzaXplb2YodHpuYW1lKSk7CisJdGV4dF90b19jc3RyaW5nX2J1ZmZl cih6b25lLCB0el9uYW1lLCBzaXplb2YodHpfbmFtZSkpOwogCi0JcmV0dXJuIERlY29kZVRpbWV6 b25lTmFtZVRvVHoodHpuYW1lKTsKKwlyZXR1cm4gRGVjb2RlVGltZXpvbmVOYW1lVG9Ueih0el9u YW1lKTsKIH0KIAogLyoKQEAgLTE1MjksNDEgKzE1MjksNDEgQEAgQWRqdXN0SW50ZXJ2YWxGb3JU eXBtb2QoSW50ZXJ2YWwgKmludGVydmFsLCBpbnQzMiB0eXBtb2QsCiBEYXR1bQogbWFrZV9pbnRl cnZhbChQR19GVU5DVElPTl9BUkdTKQogewotCWludDMyCQl5ZWFycyA9IFBHX0dFVEFSR19JTlQz MigwKTsKLQlpbnQzMgkJbW9udGhzID0gUEdfR0VUQVJHX0lOVDMyKDEpOwotCWludDMyCQl3ZWVr cyA9IFBHX0dFVEFSR19JTlQzMigyKTsKLQlpbnQzMgkJZGF5cyA9IFBHX0dFVEFSR19JTlQzMigz KTsKLQlpbnQzMgkJaG91cnMgPSBQR19HRVRBUkdfSU5UMzIoNCk7Ci0JaW50MzIJCW1pbnMgPSBQ R19HRVRBUkdfSU5UMzIoNSk7Ci0JZG91YmxlCQlzZWNzID0gUEdfR0VUQVJHX0ZMT0FUOCg2KTsK KwlpbnQzMgkJeWVhclZhbCA9IFBHX0dFVEFSR19JTlQzMigwKTsKKwlpbnQzMgkJbW9udGhWYWwg PSBQR19HRVRBUkdfSU5UMzIoMSk7CisJaW50MzIJCXdlZWtWYWwgPSBQR19HRVRBUkdfSU5UMzIo Mik7CisJaW50MzIJCWRheVZhbCA9IFBHX0dFVEFSR19JTlQzMigzKTsKKwlpbnQzMgkJaG91clZh bCA9IFBHX0dFVEFSR19JTlQzMig0KTsKKwlpbnQzMgkJbWluVmFsID0gUEdfR0VUQVJHX0lOVDMy KDUpOworCWRvdWJsZQkJc2VjVmFsID0gUEdfR0VUQVJHX0ZMT0FUOCg2KTsKIAlJbnRlcnZhbCAg ICpyZXN1bHQ7CiAKIAkvKgogCSAqIFJlamVjdCBvdXQtb2YtcmFuZ2UgaW5wdXRzLiAgV2UgcmVq ZWN0IGFueSBpbnB1dCB2YWx1ZXMgdGhhdCBjYXVzZQogCSAqIGludGVnZXIgb3ZlcmZsb3cgb2Yg dGhlIGNvcnJlc3BvbmRpbmcgaW50ZXJ2YWwgZmllbGRzLgogCSAqLwotCWlmIChpc2luZihzZWNz KSB8fCBpc25hbihzZWNzKSkKKwlpZiAoaXNpbmYoc2VjVmFsKSB8fCBpc25hbihzZWNWYWwpKQog CQlnb3RvIG91dF9vZl9yYW5nZTsKIAogCXJlc3VsdCA9IChJbnRlcnZhbCAqKSBwYWxsb2Moc2l6 ZW9mKEludGVydmFsKSk7CiAKIAkvKiB5ZWFycyBhbmQgbW9udGhzIC0+IG1vbnRocyAqLwotCWlm IChwZ19tdWxfczMyX292ZXJmbG93KHllYXJzLCBNT05USFNfUEVSX1lFQVIsICZyZXN1bHQtPm1v bnRoKSB8fAotCQlwZ19hZGRfczMyX292ZXJmbG93KHJlc3VsdC0+bW9udGgsIG1vbnRocywgJnJl c3VsdC0+bW9udGgpKQorCWlmIChwZ19tdWxfczMyX292ZXJmbG93KHllYXJWYWwsIE1PTlRIU19Q RVJfWUVBUiwgJnJlc3VsdC0+bW9udGgpIHx8CisJCXBnX2FkZF9zMzJfb3ZlcmZsb3cocmVzdWx0 LT5tb250aCwgbW9udGhWYWwsICZyZXN1bHQtPm1vbnRoKSkKIAkJZ290byBvdXRfb2ZfcmFuZ2U7 CiAKIAkvKiB3ZWVrcyBhbmQgZGF5cyAtPiBkYXlzICovCi0JaWYgKHBnX211bF9zMzJfb3ZlcmZs b3cod2Vla3MsIERBWVNfUEVSX1dFRUssICZyZXN1bHQtPmRheSkgfHwKLQkJcGdfYWRkX3MzMl9v dmVyZmxvdyhyZXN1bHQtPmRheSwgZGF5cywgJnJlc3VsdC0+ZGF5KSkKKwlpZiAocGdfbXVsX3Mz Ml9vdmVyZmxvdyh3ZWVrVmFsLCBEQVlTX1BFUl9XRUVLLCAmcmVzdWx0LT5kYXkpIHx8CisJCXBn X2FkZF9zMzJfb3ZlcmZsb3cocmVzdWx0LT5kYXksIGRheVZhbCwgJnJlc3VsdC0+ZGF5KSkKIAkJ Z290byBvdXRfb2ZfcmFuZ2U7CiAKIAkvKiBob3VycyBhbmQgbWlucyAtPiB1c2VjcyAoY2Fubm90 IG92ZXJmbG93IDY0LWJpdCkgKi8KLQlyZXN1bHQtPnRpbWUgPSBob3VycyAqIFVTRUNTX1BFUl9I T1VSICsgbWlucyAqIFVTRUNTX1BFUl9NSU5VVEU7CisJcmVzdWx0LT50aW1lID0gaG91clZhbCAq IFVTRUNTX1BFUl9IT1VSICsgbWluVmFsICogVVNFQ1NfUEVSX01JTlVURTsKIAogCS8qIHNlY3Mg LT4gdXNlY3MgKi8KLQlzZWNzID0gcmludChmbG9hdDhfbXVsKHNlY3MsIFVTRUNTX1BFUl9TRUMp KTsKLQlpZiAoIUZMT0FUOF9GSVRTX0lOX0lOVDY0KHNlY3MpIHx8Ci0JCXBnX2FkZF9zNjRfb3Zl cmZsb3cocmVzdWx0LT50aW1lLCAoaW50NjQpIHNlY3MsICZyZXN1bHQtPnRpbWUpKQorCXNlY1Zh bCA9IHJpbnQoZmxvYXQ4X211bChzZWNWYWwsIFVTRUNTX1BFUl9TRUMpKTsKKwlpZiAoIUZMT0FU OF9GSVRTX0lOX0lOVDY0KHNlY1ZhbCkgfHwKKwkJcGdfYWRkX3M2NF9vdmVyZmxvdyhyZXN1bHQt PnRpbWUsIChpbnQ2NCkgc2VjVmFsLCAmcmVzdWx0LT50aW1lKSkKIAkJZ290byBvdXRfb2ZfcmFu Z2U7CiAKIAkvKiBtYWtlIHN1cmUgdGhhdCB0aGUgcmVzdWx0IGlzIGZpbml0ZSAqLwpAQCAtMjEz MSw5ICsyMTMxLDkgQEAgdGltZTJ0KGNvbnN0IGludCBob3VyLCBjb25zdCBpbnQgbWluLCBjb25z dCBpbnQgc2VjLCBjb25zdCBmc2VjX3QgZnNlYykKIH0KIAogc3RhdGljIFRpbWVzdGFtcAotZHQy bG9jYWwoVGltZXN0YW1wIGR0LCBpbnQgdGltZXpvbmUpCitkdDJsb2NhbChUaW1lc3RhbXAgZHQs IGludCB0eikKIHsKLQlkdCAtPSAodGltZXpvbmUgKiBVU0VDU19QRVJfU0VDKTsKKwlkdCAtPSAo dHogKiBVU0VDU19QRVJfU0VDKTsKIAlyZXR1cm4gZHQ7CiB9CiAKQEAgLTI1MjQsMjAgKzI1MjQs MjAgQEAgc3RhdGljIGlubGluZSBJTlQxMjgKIGludGVydmFsX2NtcF92YWx1ZShjb25zdCBJbnRl cnZhbCAqaW50ZXJ2YWwpCiB7CiAJSU5UMTI4CQlzcGFuOwotCWludDY0CQlkYXlzOworCWludDY0 CQlkYXlWYWw7CiAKIAkvKgogCSAqIENvbWJpbmUgdGhlIG1vbnRoIGFuZCBkYXkgZmllbGRzIGlu dG8gYW4gaW50ZWdyYWwgbnVtYmVyIG9mIGRheXMuCiAJICogQmVjYXVzZSB0aGUgaW5wdXRzIGFy ZSBpbnQzMiwgaW50NjQgYXJpdGhtZXRpYyBzdWZmaWNlcyBoZXJlLgogCSAqLwotCWRheXMgPSBp bnRlcnZhbC0+bW9udGggKiBJTlQ2NENPTlNUKDMwKTsKLQlkYXlzICs9IGludGVydmFsLT5kYXk7 CisJZGF5VmFsID0gaW50ZXJ2YWwtPm1vbnRoICogSU5UNjRDT05TVCgzMCk7CisJZGF5VmFsICs9 IGludGVydmFsLT5kYXk7CiAKIAkvKiBXaWRlbiB0aW1lIGZpZWxkIHRvIDEyOCBiaXRzICovCiAJ c3BhbiA9IGludDY0X3RvX2ludDEyOChpbnRlcnZhbC0+dGltZSk7CiAKIAkvKiBTY2FsZSB1cCBk YXlzIHRvIG1pY3Jvc2Vjb25kcywgZm9ybWluZyBhIDEyOC1iaXQgcHJvZHVjdCAqLwotCWludDEy OF9hZGRfaW50NjRfbXVsX2ludDY0KCZzcGFuLCBkYXlzLCBVU0VDU19QRVJfREFZKTsKKwlpbnQx MjhfYWRkX2ludDY0X211bF9pbnQ2NCgmc3BhbiwgZGF5VmFsLCBVU0VDU19QRVJfREFZKTsKIAog CXJldHVybiBzcGFuOwogfQpAQCAtNjIyMiw3ICs2MjIyLDcgQEAgaW50ZXJ2YWxfcGFydF9jb21t b24oUEdfRlVOQ1RJT05fQVJHUywgYm9vbCByZXRudW1lcmljKQogCQl7CiAJCQlOdW1lcmljCQly ZXN1bHQ7CiAJCQlpbnQ2NAkJc2Vjc19mcm9tX2RheV9tb250aDsKLQkJCWludDY0CQl2YWw7CisJ CQlpbnQ2NAkJdmFsdWU7CiAKIAkJCS8qCiAJCQkgKiBUbyBkbyB0aGlzIGNhbGN1bGF0aW9uIGlu IGludGVnZXIgYXJpdGhtZXRpYyBldmVuIHRob3VnaApAQCAtNjI0NSw5ICs2MjQ1LDkgQEAgaW50 ZXJ2YWxfcGFydF9jb21tb24oUEdfRlVOQ1RJT05fQVJHUywgYm9vbCByZXRudW1lcmljKQogCQkJ ICogbnVtZXJpYyAoc2xvd2VyKS4gIFRoaXMgb3ZlcmZsb3cgaGFwcGVucyBhcm91bmQgMTBeOSBk YXlzLCBzbwogCQkJICogbm90IGNvbW1vbiBpbiBwcmFjdGljZS4KIAkJCSAqLwotCQkJaWYgKCFw Z19tdWxfczY0X292ZXJmbG93KHNlY3NfZnJvbV9kYXlfbW9udGgsIDEwMDAwMDAsICZ2YWwpICYm Ci0JCQkJIXBnX2FkZF9zNjRfb3ZlcmZsb3codmFsLCBpbnRlcnZhbC0+dGltZSwgJnZhbCkpCi0J CQkJcmVzdWx0ID0gaW50NjRfZGl2X2Zhc3RfdG9fbnVtZXJpYyh2YWwsIDYpOworCQkJaWYgKCFw Z19tdWxfczY0X292ZXJmbG93KHNlY3NfZnJvbV9kYXlfbW9udGgsIDEwMDAwMDAsICZ2YWx1ZSkg JiYKKwkJCQkhcGdfYWRkX3M2NF9vdmVyZmxvdyh2YWx1ZSwgaW50ZXJ2YWwtPnRpbWUsICZ2YWx1 ZSkpCisJCQkJcmVzdWx0ID0gaW50NjRfZGl2X2Zhc3RfdG9fbnVtZXJpYyh2YWx1ZSwgNik7CiAJ CQllbHNlCiAJCQkJcmVzdWx0ID0KIAkJCQkJbnVtZXJpY19hZGRfc2FmZShpbnQ2NF9kaXZfZmFz dF90b19udW1lcmljKGludGVydmFsLT50aW1lLCA2KSwKQEAgLTYzMTEsNyArNjMxMSw3IEBAIHRp bWVzdGFtcF96b25lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJVGltZXN0YW1wCXRpbWVzdGFtcCA9IFBH X0dFVEFSR19USU1FU1RBTVAoMSk7CiAJVGltZXN0YW1wVHogcmVzdWx0OwogCWludAkJCXR6Owot CWNoYXIJCXR6bmFtZVtUWl9TVFJMRU5fTUFYICsgMV07CisJY2hhcgkJdHpfbmFtZVtUWl9TVFJM RU5fTUFYICsgMV07CiAJaW50CQkJdHlwZSwKIAkJCQl2YWw7CiAJcGdfdHoJICAgKnR6cDsKQEAg LTYzMjQsOSArNjMyNCw5IEBAIHRpbWVzdGFtcF96b25lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJLyoK IAkgKiBMb29rIHVwIHRoZSByZXF1ZXN0ZWQgdGltZXpvbmUuCiAJICovCi0JdGV4dF90b19jc3Ry aW5nX2J1ZmZlcih6b25lLCB0em5hbWUsIHNpemVvZih0em5hbWUpKTsKKwl0ZXh0X3RvX2NzdHJp bmdfYnVmZmVyKHpvbmUsIHR6X25hbWUsIHNpemVvZih0el9uYW1lKSk7CiAKLQl0eXBlID0gRGVj b2RlVGltZXpvbmVOYW1lKHR6bmFtZSwgJnZhbCwgJnR6cCk7CisJdHlwZSA9IERlY29kZVRpbWV6 b25lTmFtZSh0el9uYW1lLCAmdmFsLCAmdHpwKTsKIAogCWlmICh0eXBlID09IFRaTkFNRV9GSVhF RF9PRkZTRVQpCiAJewpAQCAtNjM0MSw3ICs2MzQxLDcgQEAgdGltZXN0YW1wX3pvbmUoUEdfRlVO Q1RJT05fQVJHUykKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFU RVRJTUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkJIGVycm1zZygidGltZXN0YW1wIG91dCBv ZiByYW5nZSIpKSk7Ci0JCXR6ID0gLURldGVybWluZVRpbWVab25lQWJicmV2T2Zmc2V0KCZ0bSwg dHpuYW1lLCB0enApOworCQl0eiA9IC1EZXRlcm1pbmVUaW1lWm9uZUFiYnJldk9mZnNldCgmdG0s IHR6X25hbWUsIHR6cCk7CiAJCXJlc3VsdCA9IGR0MmxvY2FsKHRpbWVzdGFtcCwgdHopOwogCX0K IAllbHNlCkBAIC02NTY2LDcgKzY1NjYsNyBAQCB0aW1lc3RhbXB0el96b25lKFBHX0ZVTkNUSU9O X0FSR1MpCiAJVGltZXN0YW1wVHogdGltZXN0YW1wID0gUEdfR0VUQVJHX1RJTUVTVEFNUFRaKDEp OwogCVRpbWVzdGFtcAlyZXN1bHQ7CiAJaW50CQkJdHo7Ci0JY2hhcgkJdHpuYW1lW1RaX1NUUkxF Tl9NQVggKyAxXTsKKwljaGFyCQl0el9uYW1lW1RaX1NUUkxFTl9NQVggKyAxXTsKIAlpbnQJCQl0 eXBlLAogCQkJCXZhbDsKIAlwZ190egkgICAqdHpwOwpAQCAtNjU3Nyw5ICs2NTc3LDkgQEAgdGlt ZXN0YW1wdHpfem9uZShQR19GVU5DVElPTl9BUkdTKQogCS8qCiAJICogTG9vayB1cCB0aGUgcmVx dWVzdGVkIHRpbWV6b25lLgogCSAqLwotCXRleHRfdG9fY3N0cmluZ19idWZmZXIoem9uZSwgdHpu YW1lLCBzaXplb2YodHpuYW1lKSk7CisJdGV4dF90b19jc3RyaW5nX2J1ZmZlcih6b25lLCB0el9u YW1lLCBzaXplb2YodHpfbmFtZSkpOwogCi0JdHlwZSA9IERlY29kZVRpbWV6b25lTmFtZSh0em5h bWUsICZ2YWwsICZ0enApOworCXR5cGUgPSBEZWNvZGVUaW1lem9uZU5hbWUodHpfbmFtZSwgJnZh bCwgJnR6cCk7CiAKIAlpZiAodHlwZSA9PSBUWk5BTUVfRklYRURfT0ZGU0VUKQogCXsKQEAgLTY1 OTIsNyArNjU5Miw3IEBAIHRpbWVzdGFtcHR6X3pvbmUoUEdfRlVOQ1RJT05fQVJHUykKIAkJLyog ZHluYW1pYy1vZmZzZXQgYWJicmV2aWF0aW9uLCByZXNvbHZlIHVzaW5nIHNwZWNpZmllZCB0aW1l ICovCiAJCWludAkJCWlzZHN0OwogCi0JCXR6ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZz ZXRUUyh0aW1lc3RhbXAsIHR6bmFtZSwgdHpwLCAmaXNkc3QpOworCQl0eiA9IERldGVybWluZVRp bWVab25lQWJicmV2T2Zmc2V0VFModGltZXN0YW1wLCB0el9uYW1lLCB0enAsICZpc2RzdCk7CiAJ CXJlc3VsdCA9IGR0MmxvY2FsKHRpbWVzdGFtcCwgdHopOwogCX0KIAllbHNlCmRpZmYgLS1naXQg YS9zcmMvYmluL2luaXRkYi9maW5kdGltZXpvbmUuYyBiL3NyYy9iaW4vaW5pdGRiL2ZpbmR0aW1l em9uZS5jCmluZGV4IDJiMmFlMzlhZGYzLi45N2Q1NWUxOWMxMyAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9pbml0ZGIvZmluZHRpbWV6b25lLmMKKysrIGIvc3JjL2Jpbi9pbml0ZGIvZmluZHRpbWV6b25l LmMKQEAgLTIzMSw3ICsyMzEsNyBAQCBjb21wYXJlX3RtKHN0cnVjdCB0bSAqcywgc3RydWN0IHBn X3RtICpwKQogICogdGVzdCB0aW1lLgogICovCiBzdGF0aWMgaW50Ci1zY29yZV90aW1lem9uZShj b25zdCBjaGFyICp0em5hbWUsIHN0cnVjdCB0enRyeSAqdHQpCitzY29yZV90aW1lem9uZShjb25z dCBjaGFyICp0el9uYW1lLCBzdHJ1Y3QgdHp0cnkgKnR0KQogewogCWludAkJCWk7CiAJcGdfdGlt ZV90CXBndHQ7CkBAIC0yNDEsNyArMjQxLDcgQEAgc2NvcmVfdGltZXpvbmUoY29uc3QgY2hhciAq dHpuYW1lLCBzdHJ1Y3QgdHp0cnkgKnR0KQogCXBnX3R6CSAgICp0ejsKIAogCS8qIExvYWQgdGlt ZXpvbmUgZGVmaW5pdGlvbiAqLwotCXR6ID0gcGdfbG9hZF90eih0em5hbWUpOworCXR6ID0gcGdf bG9hZF90eih0el9uYW1lKTsKIAlpZiAoIXR6KQogCQlyZXR1cm4gLTE7CQkJCS8qIHVucmVjb2du aXplZCB6b25lIG5hbWUgKi8KIApAQCAtMjQ5LDcgKzI0OSw3IEBAIHNjb3JlX3RpbWV6b25lKGNv bnN0IGNoYXIgKnR6bmFtZSwgc3RydWN0IHR6dHJ5ICp0dCkKIAlpZiAoIXBnX3R6X2FjY2VwdGFi bGUodHopKQogCXsKICNpZmRlZiBERUJVR19JREVOVElGWV9USU1FWk9ORQotCQlmcHJpbnRmKHN0 ZGVyciwgIlJlamVjdCBUWiBcIiVzXCI6IHVzZXMgbGVhcCBzZWNvbmRzXG4iLCB0em5hbWUpOwor CQlmcHJpbnRmKHN0ZGVyciwgIlJlamVjdCBUWiBcIiVzXCI6IHVzZXMgbGVhcCBzZWNvbmRzXG4i LCB0el9uYW1lKTsKICNlbmRpZgogCQlyZXR1cm4gLTE7CiAJfQpAQCAtMjY2LDcgKzI2Niw3IEBA IHNjb3JlX3RpbWV6b25lKGNvbnN0IGNoYXIgKnR6bmFtZSwgc3RydWN0IHR6dHJ5ICp0dCkKIAkJ ewogI2lmZGVmIERFQlVHX0lERU5USUZZX1RJTUVaT05FCiAJCQlmcHJpbnRmKHN0ZGVyciwgIlRa IFwiJXNcIiBzY29yZXMgJWQ6IGF0ICVsZCAlMDRkLSUwMmQtJTAyZCAlMDJkOiUwMmQ6JTAyZCAl cywgc3lzdGVtIGhhZCBubyBkYXRhXG4iLAotCQkJCQl0em5hbWUsIGksIChsb25nKSBwZ3R0LAor CQkJCQl0el9uYW1lLCBpLCAobG9uZykgcGd0dCwKIAkJCQkJcGd0bS0+dG1feWVhciArIDE5MDAs IHBndG0tPnRtX21vbiArIDEsIHBndG0tPnRtX21kYXksCiAJCQkJCXBndG0tPnRtX2hvdXIsIHBn dG0tPnRtX21pbiwgcGd0bS0+dG1fc2VjLAogCQkJCQlwZ3RtLT50bV9pc2RzdCA/ICJkc3QiIDog InN0ZCIpOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHNjb3JlX3RpbWV6b25lKGNvbnN0IGNoYXIgKnR6 bmFtZSwgc3RydWN0IHR6dHJ5ICp0dCkKIAkJewogI2lmZGVmIERFQlVHX0lERU5USUZZX1RJTUVa T05FCiAJCQlmcHJpbnRmKHN0ZGVyciwgIlRaIFwiJXNcIiBzY29yZXMgJWQ6IGF0ICVsZCAlMDRk LSUwMmQtJTAyZCAlMDJkOiUwMmQ6JTAyZCAlcyB2ZXJzdXMgJTA0ZC0lMDJkLSUwMmQgJTAyZDol MDJkOiUwMmQgJXNcbiIsCi0JCQkJCXR6bmFtZSwgaSwgKGxvbmcpIHBndHQsCisJCQkJCXR6X25h bWUsIGksIChsb25nKSBwZ3R0LAogCQkJCQlwZ3RtLT50bV95ZWFyICsgMTkwMCwgcGd0bS0+dG1f bW9uICsgMSwgcGd0bS0+dG1fbWRheSwKIAkJCQkJcGd0bS0+dG1faG91ciwgcGd0bS0+dG1fbWlu LCBwZ3RtLT50bV9zZWMsCiAJCQkJCXBndG0tPnRtX2lzZHN0ID8gImRzdCIgOiAic3RkIiwKQEAg LTI5OCw3ICsyOTgsNyBAQCBzY29yZV90aW1lem9uZShjb25zdCBjaGFyICp0em5hbWUsIHN0cnVj dCB0enRyeSAqdHQpCiAJCQl7CiAjaWZkZWYgREVCVUdfSURFTlRJRllfVElNRVpPTkUKIAkJCQlm cHJpbnRmKHN0ZGVyciwgIlRaIFwiJXNcIiBzY29yZXMgJWQ6IGF0ICVsZCBcIiVzXCIgdmVyc3Vz IFwiJXNcIlxuIiwKLQkJCQkJCXR6bmFtZSwgaSwgKGxvbmcpIHBndHQsCisJCQkJCQl0el9uYW1l LCBpLCAobG9uZykgcGd0dCwKIAkJCQkJCXBndG0tPnRtX3pvbmUsIGNidWYpOwogI2VuZGlmCiAJ CQkJcmV0dXJuIGk7CkBAIC0zMDcsNyArMzA3LDcgQEAgc2NvcmVfdGltZXpvbmUoY29uc3QgY2hh ciAqdHpuYW1lLCBzdHJ1Y3QgdHp0cnkgKnR0KQogCX0KIAogI2lmZGVmIERFQlVHX0lERU5USUZZ X1RJTUVaT05FCi0JZnByaW50ZihzdGRlcnIsICJUWiBcIiVzXCIgZ2V0cyBtYXggc2NvcmUgJWRc biIsIHR6bmFtZSwgaSk7CisJZnByaW50ZihzdGRlcnIsICJUWiBcIiVzXCIgZ2V0cyBtYXggc2Nv cmUgJWRcbiIsIHR6X25hbWUsIGkpOwogI2VuZGlmCiAKIAlyZXR1cm4gaTsKQEAgLTMxNyw5ICsz MTcsOSBAQCBzY29yZV90aW1lem9uZShjb25zdCBjaGFyICp0em5hbWUsIHN0cnVjdCB0enRyeSAq dHQpCiAgKiBUZXN0IHdoZXRoZXIgZ2l2ZW4gem9uZSBuYW1lIGlzIGEgcGVyZmVjdCBtYXRjaCB0 byBsb2NhbHRpbWUoKSBiZWhhdmlvcgogICovCiBzdGF0aWMgYm9vbAotcGVyZmVjdF90aW1lem9u ZV9tYXRjaChjb25zdCBjaGFyICp0em5hbWUsIHN0cnVjdCB0enRyeSAqdHQpCitwZXJmZWN0X3Rp bWV6b25lX21hdGNoKGNvbnN0IGNoYXIgKnR6X25hbWUsIHN0cnVjdCB0enRyeSAqdHQpCiB7Ci0J cmV0dXJuIChzY29yZV90aW1lem9uZSh0em5hbWUsIHR0KSA9PSB0dC0+bl90ZXN0X3RpbWVzKTsK KwlyZXR1cm4gKHNjb3JlX3RpbWV6b25lKHR6X25hbWUsIHR0KSA9PSB0dC0+bl90ZXN0X3RpbWVz KTsKIH0KIAogCkBAIC0xNzI1LDE0ICsxNzI1LDE0IEBAIGlkZW50aWZ5X3N5c3RlbV90aW1lem9u ZSh2b2lkKQogICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIHpvbmUgbmFtZSBpcyB2YWxpZCBh bmQgaXMgYW4gImFjY2VwdGFibGUiIHpvbmUuCiAgKi8KIHN0YXRpYyBib29sCi12YWxpZGF0ZV96 b25lKGNvbnN0IGNoYXIgKnR6bmFtZSkKK3ZhbGlkYXRlX3pvbmUoY29uc3QgY2hhciAqem9uZSkK IHsKIAlwZ190egkgICAqdHo7CiAKLQlpZiAoIXR6bmFtZSB8fCAhdHpuYW1lWzBdKQorCWlmICgh em9uZSB8fCAhem9uZVswXSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JdHogPSBwZ19sb2FkX3R6KHR6 bmFtZSk7CisJdHogPSBwZ19sb2FkX3R6KHpvbmUpOwogCWlmICghdHopCiAJCXJldHVybiBmYWxz ZTsKIApAQCAtMTc1Niw3ICsxNzU2LDcgQEAgdmFsaWRhdGVfem9uZShjb25zdCBjaGFyICp0em5h bWUpCiBjb25zdCBjaGFyICoKIHNlbGVjdF9kZWZhdWx0X3RpbWV6b25lKGNvbnN0IGNoYXIgKnNo YXJlX3BhdGgpCiB7Ci0JY29uc3QgY2hhciAqdHpuYW1lOworCWNvbnN0IGNoYXIgKnR6OwogCiAJ LyogSW5pdGlhbGl6ZSB0aW1lem9uZSBkaXJlY3RvcnkgcGF0aCwgaWYgbmVlZGVkICovCiAjaWZu ZGVmIFNZU1RFTVRaRElSCkBAIC0xNzY0LDE0ICsxNzY0LDE0IEBAIHNlbGVjdF9kZWZhdWx0X3Rp bWV6b25lKGNvbnN0IGNoYXIgKnNoYXJlX3BhdGgpCiAjZW5kaWYKIAogCS8qIENoZWNrIFRaIGVu dmlyb25tZW50IHZhcmlhYmxlICovCi0JdHpuYW1lID0gZ2V0ZW52KCJUWiIpOwotCWlmICh2YWxp ZGF0ZV96b25lKHR6bmFtZSkpCi0JCXJldHVybiB0em5hbWU7CisJdHogPSBnZXRlbnYoIlRaIik7 CisJaWYgKHZhbGlkYXRlX3pvbmUodHopKQorCQlyZXR1cm4gdHo7CiAKIAkvKiBOb3BlLCBzbyB0 cnkgdG8gaWRlbnRpZnkgdGhlIHN5c3RlbSB0aW1lem9uZSAqLwotCXR6bmFtZSA9IGlkZW50aWZ5 X3N5c3RlbV90aW1lem9uZSgpOwotCWlmICh2YWxpZGF0ZV96b25lKHR6bmFtZSkpCi0JCXJldHVy biB0em5hbWU7CisJdHogPSBpZGVudGlmeV9zeXN0ZW1fdGltZXpvbmUoKTsKKwlpZiAodmFsaWRh dGVfem9uZSh0eikpCisJCXJldHVybiB0ejsKIAogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL3RpbWV6b25lL3BndHouYyBiL3NyYy90aW1lem9uZS9wZ3R6LmMKaW5kZXggNTA0YzAy MzVmZmIuLmE0NGJkMjMwZDgwIDEwMDY0NAotLS0gYS9zcmMvdGltZXpvbmUvcGd0ei5jCisrKyBi L3NyYy90aW1lem9uZS9wZ3R6LmMKQEAgLTIzMSw3ICsyMzEsNyBAQCBpbml0X3RpbWV6b25lX2hh c2h0YWJsZSh2b2lkKQogICogZGVmYXVsdCB0aW1lem9uZSBzZXR0aW5nIGlzIGxhdGVyIG92ZXJy aWRkZW4gZnJvbSBwb3N0Z3Jlc3FsLmNvbmYuCiAgKi8KIHBnX3R6ICoKLXBnX3R6c2V0KGNvbnN0 IGNoYXIgKnR6bmFtZSkKK3BnX3R6c2V0KGNvbnN0IGNoYXIgKnpvbmUpCiB7CiAJcGdfdHpfY2Fj aGUgKnR6cDsKIAlzdHJ1Y3Qgc3RhdGUgdHpzdGF0ZTsKQEAgLTIzOSw3ICsyMzksNyBAQCBwZ190 enNldChjb25zdCBjaGFyICp0em5hbWUpCiAJY2hhcgkJY2Fub25uYW1lW1RaX1NUUkxFTl9NQVgg KyAxXTsKIAljaGFyCSAgICpwOwogCi0JaWYgKHN0cmxlbih0em5hbWUpID4gVFpfU1RSTEVOX01B WCkKKwlpZiAoc3RybGVuKHpvbmUpID4gVFpfU1RSTEVOX01BWCkKIAkJcmV0dXJuIE5VTEw7CQkJ Lyogbm90IGdvaW5nIHRvIGZpdCAqLwogCiAJaWYgKCF0aW1lem9uZV9jYWNoZSkKQEAgLTI1Myw4 ICsyNTMsOCBAQCBwZ190enNldChjb25zdCBjaGFyICp0em5hbWUpCiAJICogYSBQT1NJWC1zdHls ZSB0aW1lem9uZSBzcGVjLikKIAkgKi8KIAlwID0gdXBwZXJuYW1lOwotCXdoaWxlICgqdHpuYW1l KQotCQkqcCsrID0gcGdfdG91cHBlcigodW5zaWduZWQgY2hhcikgKnR6bmFtZSsrKTsKKwl3aGls ZSAoKnpvbmUpCisJCSpwKysgPSBwZ190b3VwcGVyKCh1bnNpZ25lZCBjaGFyKSAqem9uZSsrKTsK IAkqcCA9ICdcMCc7CiAKIAl0enAgPSAocGdfdHpfY2FjaGUgKikgaGFzaF9zZWFyY2godGltZXpv bmVfY2FjaGUsCkBAIC0zMjEsNyArMzIxLDcgQEAgcGdfdHpzZXRfb2Zmc2V0KGxvbmcgZ210b2Zm c2V0KQogewogCWxvbmcJCWFic29mZnNldCA9IChnbXRvZmZzZXQgPCAwKSA/IC1nbXRvZmZzZXQg OiBnbXRvZmZzZXQ7CiAJY2hhcgkJb2Zmc2V0c3RyWzY0XTsKLQljaGFyCQl0em5hbWVbMTI4XTsK KwljaGFyCQl6b25lWzEyOF07CiAKIAlzbnByaW50ZihvZmZzZXRzdHIsIHNpemVvZihvZmZzZXRz dHIpLAogCQkJICIlMDJsZCIsIGFic29mZnNldCAvIFNFQ1NfUEVSX0hPVVIpOwpAQCAtMzM4LDEz ICszMzgsMTMgQEAgcGdfdHpzZXRfb2Zmc2V0KGxvbmcgZ210b2Zmc2V0KQogCQkJCQkgIjolMDJs ZCIsIGFic29mZnNldCk7CiAJfQogCWlmIChnbXRvZmZzZXQgPiAwKQotCQlzbnByaW50Zih0em5h bWUsIHNpemVvZih0em5hbWUpLCAiPC0lcz4rJXMiLAorCQlzbnByaW50Zih6b25lLCBzaXplb2Yo em9uZSksICI8LSVzPislcyIsCiAJCQkJIG9mZnNldHN0ciwgb2Zmc2V0c3RyKTsKIAllbHNlCi0J CXNucHJpbnRmKHR6bmFtZSwgc2l6ZW9mKHR6bmFtZSksICI8KyVzPi0lcyIsCisJCXNucHJpbnRm KHpvbmUsIHNpemVvZih6b25lKSwgIjwrJXM+LSVzIiwKIAkJCQkgb2Zmc2V0c3RyLCBvZmZzZXRz dHIpOwogCi0JcmV0dXJuIHBnX3R6c2V0KHR6bmFtZSk7CisJcmV0dXJuIHBnX3R6c2V0KHpvbmUp OwogfQogCiAKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000db94f406451cb433--