Committing changes

Tanguy LE CARROUR <[email protected]> Thu, 2 Feb 2012 15:09:10 +0100
Newsgroups gmane.os.hurd.web.devel
Message-ID <CAJbrmLCDAfi9iOJr=6hYc1_YrVY8GPL_5JA+-QEa9bYqzAqgNg@mail.gmail.com>
--e89a8f234bfb7fdf1f04b7fbbda2
Content-Type: text/plain; charset=ISO-8859-1

Hi!

I failed to push my changes to the wiki! But as it's the first time...
I may lack permissions to do so?!
I'm attaching the patch to create my user page and some sub pages.
Hope you can push it to the master.

Cheers,
Tanguy

--e89a8f234bfb7fdf1f04b7fbbda2
Content-Type: application/octet-stream; 
	name="0001-Add-user-page-and-patch-pages-for-tlecarrour.patch"
Content-Disposition: attachment; 
	filename="0001-Add-user-page-and-patch-pages-for-tlecarrour.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gy5v1arr0

RnJvbSAyOWQxYTllM2U0ZDUzMDU3YmMzN2FkMzJkZGNiNzM0YTBiODhhOGZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUYW5ndXkgTEUgQ0FSUk9VUiA8dGFuZ3V5QGJpb25lbGFuZC5v
cmc+CkRhdGU6IFRodSwgMiBGZWIgMjAxMiAxNTowMjoyMyArMDEwMApTdWJqZWN0OiBbUEFUQ0hd
IEFkZCB1c2VyIHBhZ2UgYW5kIHBhdGNoIHBhZ2VzIGZvciB0bGVjYXJyb3VyLgoKLS0tCiB1c2Vy
L3RsZWNhcnJvdXIubWR3biAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNyArKysrKwog
dXNlci90bGVjYXJyb3VyL2F1dG8tYXB0Lm1kd24gICAgICAgICAgICAgICAgICB8ICAgNTcgKysr
KysrKwogdXNlci90bGVjYXJyb3VyL21lbXN0YXQubWR3biAgICAgICAgICAgICAgICAgICB8ICAx
NjIgKysrKysrKysrKysrKysrKysrKwogdXNlci90bGVjYXJyb3VyL3BhdGNoX2xpZmVfY3ljbGUu
bWR3biAgICAgICAgICB8ICAgODggKysrKysrKysrKwogdXNlci90bGVjYXJyb3VyL3BvcnRpbmdf
Z3VpZGVfZm9yX2R1bW1pZXMubWR3biB8ICAyMDMgKysrKysrKysrKysrKysrKysrKysrKysrCiB1
c2VyL3RsZWNhcnJvdXIvcm5nLXRvb2xzLm1kd24gICAgICAgICAgICAgICAgIHwgICA1NiArKysr
KysrCiB1c2VyL3RsZWNhcnJvdXIvc3Vja2xlc3MtdG9vbHMubWR3biAgICAgICAgICAgIHwgICA3
OSArKysrKysrKysKIHVzZXIvdGxlY2Fycm91ci91cC1pbWFwcHJveHkubWR3biAgICAgICAgICAg
ICAgfCAgIDU0ICsrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgNzM2IGluc2VydGlvbnMoKyksIDAg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdXNlci90bGVjYXJyb3VyLm1kd24KIGNy
ZWF0ZSBtb2RlIDEwMDY0NCB1c2VyL3RsZWNhcnJvdXIvYXV0by1hcHQubWR3bgogY3JlYXRlIG1v
ZGUgMTAwNjQ0IHVzZXIvdGxlY2Fycm91ci9tZW1zdGF0Lm1kd24KIGNyZWF0ZSBtb2RlIDEwMDY0
NCB1c2VyL3RsZWNhcnJvdXIvcGF0Y2hfbGlmZV9jeWNsZS5tZHduCiBjcmVhdGUgbW9kZSAxMDA2
NDQgdXNlci90bGVjYXJyb3VyL3BvcnRpbmdfZ3VpZGVfZm9yX2R1bW1pZXMubWR3bgogY3JlYXRl
IG1vZGUgMTAwNjQ0IHVzZXIvdGxlY2Fycm91ci9ybmctdG9vbHMubWR3bgogY3JlYXRlIG1vZGUg
MTAwNjQ0IHVzZXIvdGxlY2Fycm91ci9zdWNrbGVzcy10b29scy5tZHduCiBjcmVhdGUgbW9kZSAx
MDA2NDQgdXNlci90bGVjYXJyb3VyL3VwLWltYXBwcm94eS5tZHduCgpkaWZmIC0tZ2l0IGEvdXNl
ci90bGVjYXJyb3VyLm1kd24gYi91c2VyL3RsZWNhcnJvdXIubWR3bgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xMmZjNDZiCi0tLSAvZGV2L251bGwKKysrIGIvdXNlci90bGVj
YXJyb3VyLm1kd24KQEAgLTAsMCArMSwzNyBAQAorW1shbWV0YSBjb3B5cmlnaHQ9IkNvcHlyaWdo
dCDCqSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiJdXQorCitbWyFtZXRhIGxp
Y2Vuc2U9IiIiW1shdG9nZ2xlIGlkPSJsaWNlbnNlIiB0ZXh0PSJHRkRMIDEuMisiXV1bWyF0b2dn
bGVhYmxlCitpZD0ibGljZW5zZSIgdGV4dD0iUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHks
IGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCitkb2N1bWVudCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjIgb3IKK2Fu
eSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyB3aXRoIG5vIEludmFyaWFudAorU2VjdGlvbnMsIG5vIEZyb250LUNvdmVyIFRleHRzLCBhbmQg
bm8gQmFjay1Db3ZlciBUZXh0cy4gIEEgY29weSBvZiB0aGUgbGljZW5zZQoraXMgaW5jbHVkZWQg
aW4gdGhlIHNlY3Rpb24gZW50aXRsZWQgW1tHTlUgRnJlZSBEb2N1bWVudGF0aW9uCitMaWNlbnNl
fC9mZGxdXS4iXV0iIiJdXQorCisKK1Rhbmd1eSBMRSBDQVJST1VSCis9PT09PT09PT09PT09PT09
PQorCitIb21lcGFnZTogKm5vbmUqICAKK0UtbWFpbDogW3Rhbmd1eUBiaW9uZWxhbmQub3JnXSht
YWlsdG86dGFuZ3V5QGJpb25lbGFuZC5vcmcpCisKK0kgYW0gYSBIdXJkIGVudGh1c2lhc3QgYW5k
IG5ldyBjb250cmlidXRvciwgbW9zdGx5IHdvcmtpbmcgb24gcG9ydGluZyBwYWNrYWdlcyAKK2Zv
ciAqKkRlYmlhbiBHTlUvSHVyZCoqLgorCisKK0NvbnRyaWJ1dGlvbnMKKy0tLS0tLS0tLS0tLS0K
KworCisjIyMgUG9ydGluZyBEZWJpYW4gUGFja2FnZXM6CisKK1NlZSB0aGUgW1twYWNrYWdlIHBv
cnRpbmcgZ2VuZXJhbCBpbnRyb2R1Y3Rpb258aHVyZC9wb3J0aW5nL2d1aWRlbGluZXNdXSBhbmQg
CitteSBbW3BvcnRpbmcgZ3VpZGUgZm9yIGR1bW1pZXN8cG9ydGluZ19ndWlkZV9mb3JfZHVtbWll
c11dLgorCitGb3IgZWFjaCBwYXRjaCBtYWtlIHN1cmUgdG8gcmVzcGVjdCB0aGUgW1twYXRjaCBs
aWZlIGN5Y2xlfHBhdGNoX2xpZmVfY3ljbGVdXS4KKworKiBbW21lbXN0YXRdXSAoUEFUSF9NQVgp
LCAqKmRyYWZ0KioKKyogW1thdXRvLWFwdF1dIChQQVRIX01BWCksICoqZGlzY3Vzc2luZyoqCisq
IFtbcm5nLXRvb2xzXV0gKFBBVEhfTUFYKSwgKipkaXNjdXNzaW5nKioKKyogW1tzdWNrbGVzcy10
b29sc11dIChQQVRIX01BWCksICoqZHJhZnQqKgorKiBbW3VwLWltYXBwcm94eV1dIChQQVRIX01B
WCksICoqc3RhcnRlZCoqCmRpZmYgLS1naXQgYS91c2VyL3RsZWNhcnJvdXIvYXV0by1hcHQubWR3
biBiL3VzZXIvdGxlY2Fycm91ci9hdXRvLWFwdC5tZHduCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjZhNWFkYjgKLS0tIC9kZXYvbnVsbAorKysgYi91c2VyL3RsZWNhcnJvdXIv
YXV0by1hcHQubWR3bgpAQCAtMCwwICsxLDU3IEBACitbWyFtZXRhIGNvcHlyaWdodD0iQ29weXJp
Z2h0IMKpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIl1dCisKK1tbIW1ldGEg
bGljZW5zZT0iIiJbWyF0b2dnbGUgaWQ9ImxpY2Vuc2UiIHRleHQ9IkdGREwgMS4yKyJdXVtbIXRv
Z2dsZWFibGUKK2lkPSJsaWNlbnNlIiB0ZXh0PSJQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29w
eSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMKK2RvY3VtZW50IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBWZXJzaW9uIDEuMiBvcgor
YW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IHdpdGggbm8gSW52YXJpYW50CitTZWN0aW9ucywgbm8gRnJvbnQtQ292ZXIgVGV4dHMsIGFu
ZCBubyBCYWNrLUNvdmVyIFRleHRzLiAgQSBjb3B5IG9mIHRoZSBsaWNlbnNlCitpcyBpbmNsdWRl
ZCBpbiB0aGUgc2VjdGlvbiBlbnRpdGxlZCBbW0dOVSBGcmVlIERvY3VtZW50YXRpb24KK0xpY2Vu
c2V8L2ZkbF1dLiJdXSIiIl1dCisKKworYXV0by1hcHQKKz09PT09PT09CisKK1doZW4geW91IHdh
bnQgdG8gYnVpbGQgYSBwcm9ncmFtIGZyb20gc291cmNlIGFuZCBpdCBmYWlscyBkdWUgdG8gbWlz
c2luZyBoZWFkZXJzLiBBdXRvLWFwdCBjYW4gc2VhcmNoIHdoYXQgcGFja2FnZSB3b3VsZCBwcm92
aWRlIHRoZSBoZWFkZXIgZmlsZXMuICAKKyhmcm9tIFtbaHR0cHM6Ly9oZWxwLnVidW50dS5jb20v
Y29tbXVuaXR5L0F1dG9BcHRdXSkKKworCitbWyF0b2Mgc3RhcnRsZXZlbD0yXV0KKworCisqICog
KgorCisKK0xvZworLS0tCisKKyogKipTdGFydGVkKio6IDIwMTItMDEtMjQKKyogKipEaXNjdXNz
ZWQqKjogWzIwMTItMDEtMjZdKGh0dHA6Ly9saXN0cy5kZWJpYW4ub3JnL2RlYmlhbi1odXJkLzIw
MTIvMDEvbXNnMDAxMjkuaHRtbCkKKyogKipEcmFmdCBTdWJtaXR0ZWQqKjogLQorKiAqKlN1Ym1p
dHRlZCoqOiAtCisqICoqQWNjZXB0ZWQqKjogLQorCisKKyogKiAqCisKKworVG9EbworLS0tLQor
CitUaGUgb3V0cHV0IG9mIGBncmVwIC1SIFBBVEhfTUFYIGF1dG8tYXB0LTAuMy4yMi8qYCBpcyBh
IGJpdCBsb25nLiBJdCBjb250YWlucyBmaWxlcyB0aGF0IGhhdmUgYmVlbiBwYXRjaGVkIHVzaW5n
IGAjZGVmaW5lIFBBVEhfTUFYIFhZWmAuICAKK0hlcmUgaXMgdGhlIG9ubHkgZmlsZSBvZiBpbnRl
cmVzdDoKKworICAgIHBrZ2NkYi9wa2d0YWIuYzogICAgY2hhciBidWZbUEFUSF9NQVhdOworICAg
IHBrZ2NkYi9wa2d0YWIuYzogICAgYXNzZXJ0KHAgLSBwa2cgPCBQQVRIX01BWCk7CisgICAgcGtn
Y2RiL3BrZ3RhYi5jOiAgICBzdGF0aWMgY2hhciBidWZbUEFUSF9NQVhdOworICAgIHBrZ2NkYi9w
a2d0YWIuYzogICAgYXNzZXJ0KGxlbiA8IFBBVEhfTUFYKTsKKworCisqICogKgorCisKK0NvbW1l
bnRzCistLS0tLS0tLQorCitXb3JrIGluIHByb2dyZXNzLCBzZWUgcmVsYXRlZCBbdGhyZWFkXSho
dHRwOi8vbGlzdHMuZGViaWFuLm9yZy9kZWJpYW4taHVyZC8yMDEyLzAxL21zZzAwMTI5Lmh0bWwp
LgorCmRpZmYgLS1naXQgYS91c2VyL3RsZWNhcnJvdXIvbWVtc3RhdC5tZHduIGIvdXNlci90bGVj
YXJyb3VyL21lbXN0YXQubWR3bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
OGM2NTg4Ci0tLSAvZGV2L251bGwKKysrIGIvdXNlci90bGVjYXJyb3VyL21lbXN0YXQubWR3bgpA
QCAtMCwwICsxLDE2MiBAQAorW1shbWV0YSBjb3B5cmlnaHQ9IkNvcHlyaWdodCDCqSAyMDEwIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiJdXQorCitbWyFtZXRhIGxpY2Vuc2U9IiIiW1sh
dG9nZ2xlIGlkPSJsaWNlbnNlIiB0ZXh0PSJHRkRMIDEuMisiXV1bWyF0b2dnbGVhYmxlCitpZD0i
bGljZW5zZSIgdGV4dD0iUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUg
YW5kL29yIG1vZGlmeSB0aGlzCitkb2N1bWVudCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBG
cmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjIgb3IKK2FueSBsYXRlciB2ZXJz
aW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3aXRoIG5vIElu
dmFyaWFudAorU2VjdGlvbnMsIG5vIEZyb250LUNvdmVyIFRleHRzLCBhbmQgbm8gQmFjay1Db3Zl
ciBUZXh0cy4gIEEgY29weSBvZiB0aGUgbGljZW5zZQoraXMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rp
b24gZW50aXRsZWQgW1tHTlUgRnJlZSBEb2N1bWVudGF0aW9uCitMaWNlbnNlfC9mZGxdXS4iXV0i
IiJdXQorCisKK21lbXN0YXQKKz09PT09PT0KKworTGlzdHMgYWxsIHRoZSBwcm9jZXNzZXMsIGV4
ZWN1dGFibGVzLCBhbmQgc2hhcmVkIGxpYnJhcmllcyB0aGF0IGFyZSB1c2luZyB1cCB2aXJ0dWFs
IG1lbW9yeS4gSXQncyBoZWxwZnVsIHRvIHNlZSBob3cgdGhlIHNoYXJlZCBtZW1vcnkgaXMgdXNl
ZCBhbmQgd2hpY2ggJ29sZCcgbGlicyBhcmUgbG9hZGVkLiAgCisqKkhvbWUgcGFnZSoqOiBbW2h0
dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbWVtc3RhdHRvb2xdXQorCitbWyF0b2Mgc3Rh
cnRsZXZlbD0yXV0KKworCisqICogKgorCisKK0xvZworLS0tCisKKyogKipTdGFydGVkKio6IDIw
MTItMDEtMjAKKyogKipEaXNjdXNzZWQqKjogWzIwMTItMDEtMjFdKGh0dHA6Ly9saXN0cy5kZWJp
YW4ub3JnL2RlYmlhbi1odXJkLzIwMTIvMDEvbXNnMDAwODEuaHRtbCkKKyogKipEcmFmdCBTdWJt
aXR0ZWQqKjogWzIwMTItMDEtMjVdKGh0dHA6Ly9saXN0cy5kZWJpYW4ub3JnL2RlYmlhbi1odXJk
LzIwMTIvMDEvbXNnMDAxMjIuaHRtbCkKKyogKipTdWJtaXR0ZWQqKjogLQorKiAqKkFjY2VwdGVk
Kio6IC0KKworCisqICogKgorCisKK1RvRG8KKy0tLS0KKworSGVyZSBpcyB0aGUgb3V0cHV0IG9m
IGBncmVwIC1SIFBBVEhfTUFYIG1lbXN0YXQtMC45LypgOgorCisgICAgbWVtc3RhdC5jOiAgICBj
aGFyICpwLCBtYWpvcls4XSwgbWlub3JbOF0sIGJ1ZmZbUEFUSF9NQVggKyAzMDBdLCAqcGF0aCwg
cGVybVs0XTsKKyAgICBtZW1zdGF0LmM6ICAgIGNoYXIgbGlua25hbWVbUEFUSF9NQVhdLCBmaWxl
bmFtZVtQQVRIX01BWF07CisgICAgbWVtc3RhdC5jOiAgICBpZiAoKGxlbiA9IHJlYWRsaW5rKGZp
bGVuYW1lLCBsaW5rbmFtZSwgUEFUSF9NQVgpKSA9PSAtMSkgeworCisKKyogKiAqCisKKworQ29t
bWVudHMKKy0tLS0tLS0tCisKK0hlcmUgYXJlIGNvbW1lbnRzIG9uIHRoZSBwYXRjaC4uLgorCisg
ICAgKyNkZWZpbmUgRk1UX1BST0NfTUFQUyAiL3Byb2MvJWQvbWFwcyIKKyAgICArI2RlZmluZSBG
TVRfUFJPQ19FWEUgICIvcHJvYy8lZC9leGUiCisKK0RlZmluZSBzdHJpbmcgZm9ybWF0cy4KKwor
ICAgICBzdGF0aWMgdm9pZCByZWFkX3Byb2Modm9pZCkKKyAgICAgeworICAgICAgICAgdW5zaWdu
ZWQgaW50IG5yZWFkLCBwaWQ7CisgICAgICAgICB1bnNpZ25lZCBsb25nIGlub2RlLCBsbywgaGks
IG9mZnM7CisgICAgLSAgICBjaGFyICpwLCBtYWpvcls4XSwgbWlub3JbOF0sIGJ1ZmZbUEFUSF9N
QVggKyAzMDBdLCAqcGF0aCwgcGVybVs0XTsKKyAgICArICAgIGNoYXIgKnAsIG1ham9yWzhdLCBt
aW5vcls4XSwgKnBhdGgsIHBlcm1bNF07CisgICAgKyAgICBjaGFyICpidWZmID0gTlVMTDsKKyAg
ICArICAgIHNpemVfdCBidWZmX3NpemUgPSAwOworCitJbiB0aGlzIGZ1bmN0aW9uIHdlIHR1cm4g
YGJ1ZmZgIGludG8gZHluYW1pY2FsbHkgYWxsb2NhdGVkIHN0cmluZy4KKworCisgICAgLSAgIHNw
cmludGYoYnVmZiwgIi9wcm9jLyVkL21hcHMiLCBwaWQpOworICAgIC0gICBmID0gZm9wZW4oYnVm
ZiwgInIiKTsKKyAgICArICAgY2hhciBmaWxlbmFtZVtzaXplb2YoRk1UX1BST0NfTUFQUykgKyAo
c2l6ZW9mKGludCkgKiAzKSArIDFdOworICAgICsgICBzcHJpbnRmKGZpbGVuYW1lLCBGTVRfUFJP
Q19NQVBTLCBwaWQpOworICAgICsgICBmID0gZm9wZW4oZmlsZW5hbWUsICJyIik7CisKK0NvbXB1
dGUgdGhlIG1heGltdW0gc2l6ZSBvZiBgZmlsZW5hbWVgIHVzaW5nIGBzaXplb2YoaW50KSAqIDNg
IGFzIGV4cGxhaW5lbmQgaW4gdGhlIFtbcG9ydGluZyBndWlkZXxwb3J0aW5nX2d1aWRlX2Zvcl9k
dW1taWVzXV0uCisKKworICAgIC0gICB3aGlsZSAoZmdldHMoYnVmZiwgc2l6ZW9mKGJ1ZmYpLCBm
KSkgeworICAgICsgICB3aGlsZSAoIWZlb2YoZikpIHsKKyAgICArICAgICAgIGJ1ZmYgPSBnZXRf
bGluZShmKTsKKyAgICArICAgICAgIGlmIChidWZmID09IE5VTEwpCisgICAgKyAgICAgICBicmVh
azsKKworUmVhZCBhIGxpbmUgZnJvbSB0aGUgZmlsZSB1c2luZyBbW2dldF9saW5lKCl8cG9ydGlu
Z19ndWlkZV9mb3JfZHVtbWllc11dLgorCisKKyAgICAtICAgICAgIGlmICgoc3RybGVuKGJ1ZmYp
ID09IDEwKSAmJiAoc3RyY21wKGJ1ZmYsICIgKGRlbGV0ZWQpIikgPT0gMCkpCisgICAgKyAgICAg
ICBpZiAoKHN0cmxlbihidWZmKSA9PSAxMCkgJiYgKHN0cmNtcChidWZmLCAiIChkZWxldGVkKSIp
ID09IDApKSB7CisgICAgKyAgICAgICBmcmVlKGJ1ZmYpOworICAgICAgICAgICAgY29udGludWU7
CisgICAgKyAgICAgICB9CisgICAgICAgICAgICBucmVhZCA9IHNzY2FuZihidWZmLCAiJWx4ICVs
eCAlNHMgJWx4ICVzICVzICVsdSAlYXMiLCAmbG8sICZoaSwgcGVybSwgJm9mZnMsIG1ham9yLCBt
aW5vciwgJmlub2RlLCAmcGF0aCk7CisgICAgKyAgICAgICBmcmVlKGJ1ZmYpOworCitGcmVlIHRo
ZSBgYnVmZmAgd2hlbiBpdCdzIG5vdCB1c2VkIGFueW1vcmUuCisKKworICAgICsgICAgICAgYnVm
Zl9zaXplID0gNDsgLyogc2l6ZSBvZiB0aGUgZm9ybWF0IHN0cmluZyB3aXRob3V0ICIleCIgZXhw
cmVzc2lvbnMgKi8KKyAgICArICAgICAgIGJ1ZmZfc2l6ZSArPSBzdHJsZW4obWFqb3IpOworICAg
ICsgICAgICAgYnVmZl9zaXplICs9IHN0cmxlbihtaW5vcik7CisgICAgKyAgICAgICBidWZmX3Np
emUgKz0gc2l6ZW9mKGludCkgKiAzICsgMTsgLyogaW5vZGUgKi8KKyAgICArICAgICAgIGJ1ZmZf
c2l6ZSArPSAxOyAvKiAnXDAnICovCisgICAgKyAgICAgICBidWZmID0gbWFsbG9jKGJ1ZmZfc2l6
ZSk7CisgICAgKyAgICAgICBpZiAoYnVmZiA9PSBOVUxMKSB7CisgICAgKyAgICAgICAgICAgcGVy
cm9yKCJDYW5ub3QgYWxsb2NhdGUgbWVtb3J5ISIpOworICAgICsgICAgICAgICAgIGV4aXQoMSk7
CisgICAgKyAgICAgICB9CisKK0NvbXB1dGUgdGhlIHNpemUgdGhhdCB0aGUgYGJ1ZmZgIG11c3Qg
aGF2ZS4KKworCisgICAgLSAgIGNoYXIgbGlua25hbWVbUEFUSF9NQVhdLCBmaWxlbmFtZVtQQVRI
X01BWF07CisgICAgLSAgIHNzaXplX3QgbGVuOworICAgICsgICBjaGFyICpsaW5rbmFtZSA9IE5V
TEw7CisgICAgKyAgIHN0cnVjdCBzdGF0IHNiOworICAgICsgICBzc2l6ZV90IGxlbiA9IC0xOwor
CitJbiB0aGlzIGZ1bmN0aW9uIHdlIHR1cm4gbGlua25hbWUgaW50byBkeW5hbWljYWxseSBhbGxv
Y2F0ZWQgc3RyaW5nLiAKK2ZpbGVuYW1lIHdpbGwgYmUgZGVjbGFyZWQgbGF0ZXIuCisKKworICAg
IC0gICBzcHJpbnRmKGZpbGVuYW1lLCAiL3Byb2MvJWQvZXhlIiwgcGlkKTsKKyAgICAtICAgaWYg
KChsZW4gPSByZWFkbGluayhmaWxlbmFtZSwgbGlua25hbWUsIFBBVEhfTUFYKSkgPT0gLTEpIHsK
KyAgICArICAgY2hhciBmaWxlbmFtZVtzaXplb2YoRk1UX1BST0NfRVhFKSArIChzaXplb2YoaW50
KSAqIDMpICsgMV07CisgICAgKyAgIHNwcmludGYoZmlsZW5hbWUsIEZNVF9QUk9DX0VYRSwgcGlk
KTsKKworU2FtZSBhcyBhYm92ZSB3aXRoIGBGTVRfUFJPQ19NQVBTYC4KKworCisgICAgKyAgIGlm
IChsc3RhdChmaWxlbmFtZSwgJnNiKSA9PSAtMSkgeworICAgICsgICAgICAgcGVycm9yKCJsc3Rh
dCIpOworICAgICsgICAgICAgZGVsZXRlZCA9IDE7CisgICAgKyAgIH0KKyAgICArICAgZWxzZSB7
CisgICAgKyAgICAgICBsaW5rbmFtZSA9IG1hbGxvYyhzYi5zdF9zaXplICsgMSk7CisgICAgKyAg
ICAgICBpZiAobGlua25hbWUgPT0gTlVMTCkgeworICAgICsgICAgICAgZnByaW50ZihzdGRlcnIs
ICJpbnN1ZmZpY2llbnQgbWVtb3J5XG4iKTsKKyAgICArICAgICAgIGRlbGV0ZWQgPSAxOworICAg
ICsgICAgICAgfQorICAgICsgICAgICAgZWxzZSB7CisgICAgKyAgICAgICBsZW4gPSByZWFkbGlu
ayhmaWxlbmFtZSwgbGlua25hbWUsIHNiLnN0X3NpemUgKyAxKTsKKyAgICArICAgICAgIH0KKyAg
ICArICAgfQorICAgICsgICBpZiAobGVuIDwgMCB8fCBsZW4gPiBzYi5zdF9zaXplKSB7CisgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNhbm5vdCByZWFkIGxpbmsgaW5mb3JtYXRpb24gZm9y
ICVzXG4iLCBmaWxlbmFtZSk7CisgICAgICAgICAgICBkZWxldGVkID0gMTsKKyAgICAgICAgfQor
ICAgIC0gICBsaW5rbmFtZVtsZW5dID0gJ1wwJzsKKyAgICArICAgZWxzZSB7CisgICAgKyAgICAg
ICBsaW5rbmFtZVtzYi5zdF9zaXplXSA9ICdcMCc7CisgICAgKyAgIH0KKworVXNlIGByZWFkbGlu
aygpYCBhcyBleHBsYWluZWQgaW4gdGhlIHBvcnRpbmcgZ3VpZGUuIAorUmVxdWlyZSBsc3RhdCB0
byBnZXQgdGhlIGxpbmsgc2l6ZS4KKworCisgICAgKyAgIGZyZWUobGlua25hbWUpOworRnJlZSBk
eW5hbWljYWxseSBhbGxvY2F0ZWQgdmFyaWFibGUgdGhhdCBpcyBub3QgdXNlZCBhbnltb3JlLgor
CmRpZmYgLS1naXQgYS91c2VyL3RsZWNhcnJvdXIvcGF0Y2hfbGlmZV9jeWNsZS5tZHduIGIvdXNl
ci90bGVjYXJyb3VyL3BhdGNoX2xpZmVfY3ljbGUubWR3bgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wZDljMzFmCi0tLSAvZGV2L251bGwKKysrIGIvdXNlci90bGVjYXJyb3Vy
L3BhdGNoX2xpZmVfY3ljbGUubWR3bgpAQCAtMCwwICsxLDg4IEBACitbWyFtZXRhIGNvcHlyaWdo
dD0iQ29weXJpZ2h0IMKpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIl1dCisK
K1tbIW1ldGEgbGljZW5zZT0iIiJbWyF0b2dnbGUgaWQ9ImxpY2Vuc2UiIHRleHQ9IkdGREwgMS4y
KyJdXVtbIXRvZ2dsZWFibGUKK2lkPSJsaWNlbnNlIiB0ZXh0PSJQZXJtaXNzaW9uIGlzIGdyYW50
ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMKK2RvY3VtZW50IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBWZXJzaW9u
IDEuMiBvcgorYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IHdpdGggbm8gSW52YXJpYW50CitTZWN0aW9ucywgbm8gRnJvbnQtQ292ZXIg
VGV4dHMsIGFuZCBubyBCYWNrLUNvdmVyIFRleHRzLiAgQSBjb3B5IG9mIHRoZSBsaWNlbnNlCitp
cyBpbmNsdWRlZCBpbiB0aGUgc2VjdGlvbiBlbnRpdGxlZCBbW0dOVSBGcmVlIERvY3VtZW50YXRp
b24KK0xpY2Vuc2V8L2ZkbF1dLiJdXSIiIl1dCisKKworUGF0Y2ggTGlmZSBDeWNsZQorPT09PT09
PT09PT09PT09PQorCitbWyF0b2Mgc3RhcnRsZXZlbD0yXV0KKworCisqICogKgorCisKK1N0YXJ0
CistLS0tLQorCitGb2xsb3cgdGhlIHN0ZXBzIGxpc3RlZCBvbiB0aGUgW1twYWNrYWdlIHBvcnRp
bmcgcGFnZXxwb3J0aW5nX2d1aWRlX2Zvcl9kdW1taWVzXV0uCisKKworRGlzY3VzcworLS0tLS0t
LQorCitTZW5kIHRoZSBwYXRjaCBmb3IgcmV2aWV3IHRvIFtkZWJpYW4taHVyZEBsaXN0cy5kZWJp
YW4ub3JnXShtYWlsdG86ZGViaWFuLWh1cmRAbGlzdHMuZGViaWFuLm9yZykuICAKKyoqQmVmb3Jl
Kiogc2VuZGluZyB0aGUgcGF0Y2gsIG1ha2Ugc3VyZSB0aGF0IHlvdSd2ZSBzb2x2ZWQgYWxsIHRo
ZSBrbm93biBwcm9ibGVtcyBsaXN0ZWQgaW4gdGhlIFtbcGFja2FnZSBwb3J0aW5nIGdlbmVyYWwg
aW50cm9kdWN0aW9ufGh1cmQvcG9ydGluZy9ndWlkZWxpbmVzXV0gCithbmQgdGhlIFtbcG9ydGlu
ZyBndWlkZSBmb3IgZHVtbWllc3xwb3J0aW5nX2d1aWRlX2Zvcl9kdW1taWVzXV0uCisKKworU3Vi
bWl0IERyYWZ0CistLS0tLS0tLS0tLS0KKworV2hlbiB0aGUgcGF0Y2ggaXMgZ29vZCBlbm91Z2gs
IHlvdSBjYW4gd3JpdGUgdGhlIGRyYWZ0IG9mIHRoZSBvZmZpY2lhbCBidWcgcmVwb3J0LiAgCitU
aGlzIGRyYWZ0IHNob3VsZCBmaXJzdCBiZSBzZW50IGZvciByZXZpZXcgdG8gW2RlYmlhbi1odXJk
QGxpc3RzLmRlYmlhbi5vcmddKG1haWx0bzpkZWJpYW4taHVyZEBsaXN0cy5kZWJpYW4ub3JnKSB3
aXRoIHRoZSBwYXRjaCBhdHRhY2hlZC4KKworSGVyZSBpcyBhbiBleGFtcGxlIGZvciBtZW1zdGF0
OgorCisgICAgU291cmNlOiBtZW1zdGF0CisgICAgVmVyc2lvbjogMC45CisgICAgU2V2ZXJpdHk6
IGltcG9ydGFudAorICAgIFRhZ3M6IHBhdGNoCisgICAgVXNlcjogZGViaWFuLWh1cmRAbGlzdHMu
ZGViaWFuLm9yZworICAgIFVzZXJ0YWdzOiBodXJkCisgICAgWC1EZWJCdWdzLUNDOiBkZWJpYW4t
aHVyZEBsaXN0cy5kZWJpYW4ub3JnCisKKyAgICBIaSwKKworICAgIFRoaXMgcGF0Y2ggc29sdmVz
IHRoZSBidWlsZCBwcm9ibGVtcyBmb3IgR05VL0h1cmQgZHVlIHRvIFBBVEhfTUFYCisgICAgaXNz
dWVzLiBUaGUgc29sdXRpb24gaXMgdG8gbWFrZSBkeW5hbWljIHN0cmluZyBhbGxvY2F0aW9ucyBp
bnN0ZWFkIG9mCisgICAgdXNpbmcgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuIFRoZSBwYXRjaCBpbnZv
bHZlcyBvbmUgZmlsZSwgYW5kIGlzCisgICAgdHJpdmlhbC4KKworICAgIEZJWE1FOgorICAgIElz
IGl0IHJlYWxseSB1c2VmdWwgdG8gY2hlY2sgaWYgQlVGU0laIGlzIGRlZmluZWQ/CisKKyAgICBU
T0RPOgorICAgIFNob3VsZCB0aGUgIndob2xlIHBhY2thZ2UiIGJlIHRlc3RlZCB3aXRoIHZhbGdy
aW5kIG9uIEdOVS9MaW51eD8hCisgICAgSWYgeWVzLCBpcyB0aGVyZSBhIHN0YW5kYXJkIHByb2Nl
ZHVyZSB0byBkbyBpdD8hCisKKyAgICBUaGFua3MhIAorICAgIFNwZWNpYWwgdGhhbmtzIHRvIErD
qXLDqW1pZSBhbmQgUmljaGFyZCBmb3IgdGhlaXIgY29tbWVudHMhCisKKyAgICAoTm90IHN1Ym1p
dHRlZCB5ZXQsIGNvbW1lbnRzIGFyZSB3ZWxjb21lLikKKworT25jZSBpdCdzIGJlZW4gYXBwcm92
ZWQsIHlvdSBjYW4gcHJvY2VlZCB0byB0aGUgc3VibWlzc2lvbi4KKworCitTdWJtaXQKKy0tLS0t
LQorCitUaGUgYnVnIHJlcG9ydCBpcyB0aGUgc2FtZSBhcyBhYm92ZSwgd2l0aCBhbGwgdGhlICoq
RklYTUUqKiwgKipUT0RPKiogYW5kIGZpbmFsIGNvbW1lbnQgcmVtb3ZlZC4gIAorQXR0YWNoIHRo
ZSBwYXRjaCBhbmQgc2VuZCBpdCB0byBbc3VibWl0QGRlYmlhbi5vcmddKG1haWx0bzpzdWJtaXRA
ZGViaWFuLm9yZykuICAKK0NvbnZlbnRpb24gZm9yIHRoZSBhdHRhY2htZW50IG5hbWUgaXM6IGBm
aXhfRlRCRlM0SHVyZC5wYXRjaGAKKworCitBY2NlcHQKKy0tLS0tLQorCitPbmNlIHRoZSBwYXRj
aCBoYXMgYmVlbiBhY2NlcHRlZCwgdXBkYXRlIHlvdXIgcGF0Y2ggcGFnZSEgIAorKipDb25ncmF0
dWxhdGlvbnMhKioKKworCisKZGlmZiAtLWdpdCBhL3VzZXIvdGxlY2Fycm91ci9wb3J0aW5nX2d1
aWRlX2Zvcl9kdW1taWVzLm1kd24gYi91c2VyL3RsZWNhcnJvdXIvcG9ydGluZ19ndWlkZV9mb3Jf
ZHVtbWllcy5tZHduCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0OTM0NGYK
LS0tIC9kZXYvbnVsbAorKysgYi91c2VyL3RsZWNhcnJvdXIvcG9ydGluZ19ndWlkZV9mb3JfZHVt
bWllcy5tZHduCkBAIC0wLDAgKzEsMjAzIEBACitbWyFtZXRhIGNvcHlyaWdodD0iQ29weXJpZ2h0
IMKpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIl1dCisKK1tbIW1ldGEgbGlj
ZW5zZT0iIiJbWyF0b2dnbGUgaWQ9ImxpY2Vuc2UiIHRleHQ9IkdGREwgMS4yKyJdXVtbIXRvZ2ds
ZWFibGUKK2lkPSJsaWNlbnNlIiB0ZXh0PSJQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwg
ZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMKK2RvY3VtZW50IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBWZXJzaW9uIDEuMiBvcgorYW55
IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IHdpdGggbm8gSW52YXJpYW50CitTZWN0aW9ucywgbm8gRnJvbnQtQ292ZXIgVGV4dHMsIGFuZCBu
byBCYWNrLUNvdmVyIFRleHRzLiAgQSBjb3B5IG9mIHRoZSBsaWNlbnNlCitpcyBpbmNsdWRlZCBp
biB0aGUgc2VjdGlvbiBlbnRpdGxlZCBbW0dOVSBGcmVlIERvY3VtZW50YXRpb24KK0xpY2Vuc2V8
L2ZkbF1dLiJdXSIiIl1dCisKKworUG9ydGluZyBHdWlkZSBmb3IgRHVtbWllcworPT09PT09PT09
PT09PT09PT09PT09PT09PQorCitUaGUgcHJvYmxlbXMgYWRkcmVzc2VkIGhlcmUgd2VyZSBlbmNv
dW50ZXJlZCB3aGlsZSB3b3JraW5nIAorb24gZml4aW5nICoqUEFUSF9NQVgqKiBhbmQgKipNQVhQ
QVRITEVOKiouCisKK1tbIXRvYyBzdGFydGxldmVsPTIgbGV2ZWxzPTNdXQorCisKKyogKiAqCisK
KworVGVzdCBvbiBIdXJkCistLS0tLS0tLS0tLS0KKworCisjIyMgSW5zdGFsbGluZyB0aGUgcmVx
dWlyZWQgZmlsZXMKKworQXMgYGFwdC1nZXQgc291cmNlYCB3aWxsIGRvd25sb2FkIGFuZCBleHRy
YWN0IG1hbnkgZmlsZXMsIHlvdSBtYXkgd2FudCB0byBjcmVhdGUgYSBkZWRpY2F0ZWQgZm9sZGVy
IGZvciB0aGUgcGFja2FnZSBhbmQgd29yayBmcm9tIHRoZXJlLgorCisgICAgbWtkaXIgUEFDS0FH
RQorICAgIGNkIFBBQ0tBR0UKKyAgICBzdWRvIGFwdC1nZXQgYnVpbGQtZGVwIFBBQ0tBR0UKKyAg
ICBhcHQtZ2V0IHNvdXJjZSBQQUNLQUdFCisKKworIyMjIFRyeWluZyB0byBidWlsZCB0aGUgcGFj
a2FnZQorCisgICAgY2QgUEFDS0FHRV9TT1VSQ0UKKyAgICBkcGtnLWJ1aWxkcGFja2FnZSAtdXMg
LXVjIC1yZmFrZXJvb3QgLXRjCisKKworIyMjIFRlc3QgYSBxdWljayBmaXgKKworSW4gYWxsIHRo
ZSBmaWxlcyB0aGF0IHVzZSAqKlBBVEhfTUFYKiosIGluY2x1ZGUgdGhvc2UgbGluZXMgYXQgdGhl
IGJlZ2lubmluZy4KKworICAgICNpZm5kZWYgUEFUSF9NQVgKKyAgICAjZGVmaW5lIFBBVEhfTUFY
IDQxOTYKKyAgICAjZW5kaWYKKworVHJ5IHRvIHJlYnVpbGQgdGhlIHBhY2thZ2UgYW5kIHNlZSBp
ZiBpdCdzIHNvbHZlZCB0aGUgcHJvYmxlbS4gIAorSWYgeWVzLCB5b3UgY2FuIHN0YXJ0IHdvcmtp
bmcgb24gdGhlIHBhY2thZ2UuCisKKworKiAqICoKKworCitCYXNpYyB0aGluZ3MKKy0tLS0tLS0t
LS0tLQorCisjIyMgTWFpbnRhaW5pbmcgYSBvcmlnaW5hbCB2ZXJzaW9uCisKKyAgICBta2RpciBv
bGQKKyAgICBjcCAtciBQQUNLQUdFX1NPVVJDRSBvbGQvCisKKworIyMjIENvZGluZyBzdHlsZQor
CitGb2xsb3cgdGhlIGNvbnZlbnRpb25zIHVzZWQgaW4gdGhlIHNvdXJjZSBjb2RlIQorCisgICAg
aWYgKGNvbmRpdGlvbikgeworICAgICAgICBkb19zbXRoZygpOworICAgIH0KKworaXMgbm90IHRo
ZSBzYW1lIGFzOgorCisgICAgaWYgKGNvbmRpdGlvbikgCisgICAgeworICAgICAgICBkb19zbXRo
ZygpOworICAgIH0KKworYW5kIGlzIG5vdCB0aGUgc2FtZSBhczoKKworICAgIGlmIChjb25kaXRp
b24pCisgICAgICAgIGRvX3NtdGhnKCk7CisKK1BheSBhdHRlbnRpb24gdG8gc3BhY2VzIHN1cnJv
dW5kaW5nLCBvciBub3QsIGFyaXRobWV0aWMgc2lnbnMgYW5kIHN5bWJvbHM6CisKKyAgICBhID0g
ZG9fc210aGcoIGIgKyBjICk7CisgICAgYSA9IGRvX3NtdGhnKGIrYyk7CisKKworIyMjIEluZGVu
dGF0aW9uCisKK0J5IGRlZmF1bHQgdXNlIDggc3BhY2VzIGFzIHRoZSBzaXplIGZvciAxIHRhYi4g
CitUaGVuIGZpZ3VyZSBvdXQgaWYgdGhlIGNvZGUgdXNlcyB0YWIgKyAxLzIgdGFiOgorCisgICAg
Li4uLmlmIChjb25kaXRpb24pIHsKKyAgICAtLS0tLS0tPmRvX3NtdGhnKCk7CisgICAgLi4uLn0K
Kworb3IgdGFiIG9ubHk6CisKKyAgICAtLS0tLS0tPmlmIChjb25kaXRpb24pIHsKKyAgICAtLS0t
LS0tPi0tLS0tLS0+ZG9fc210aGcoKTsKKyAgICAtLS0tLS0tPn0KKworCisjIyMgQ3JlYXRpbmcg
YSBwYXRjaAorCisgICAgZGlmZiAtTmF1ciBvbGQvUEFDS0FHRS1WRVJTSU9OIFBBQ0tBR0UtVkVS
U0lPTiA+IGZpeF9GVEJGUzRIdXJkLnBhdGNoCisKKworKiAqICoKKworCitLbm93biBwcm9ibGVt
cworLS0tLS0tLS0tLS0tLS0KKworIyMjIER5bmFtaWNhbGx5IGFsbG9jYXRlZCBidWZmZXIgcmV0
dXJuZWQgYnkgYSBmdW5jdGlvbgorCitVc2UgYSBzdGF0aWMgYnVmZmVyCisKKyMjIyBCdWZmZXIg
dXNlZCB0byBmb3JtYXQgYW4gZXhwcmVzc2lvbiBjb250YWluaW5nIGFuIElOVEVHRVIKKworVGhl
IGxlbmd0aCBvZiBhbiBJTlRFR0VSIGluIGEgc3RyaW5nIGNhbiBiZSB1cCB0byBzaXplb2YgKGlu
dCkgKiAzICsgMS4KKworPiBUaGUgdXN1YWwgdHJpY2sgZm9yICIlZCIgaXMgdG8gdXNlIHRoZSBj
b25zdGFudCAnc2l6ZW9mIChpbnQpICogMyArIDEnLiAKK0kgaW5jbHVkZWQgKyAxIGZvciB0aGUg
c2lnbiwgYnV0IGl0J3Mgbm90IHJlYWxseSBuZWNlc3NhcnkgCitpZiB3ZSBleGVwZWN0IHNpemVv
ZihpbnQpID49IDIsIHdoaWNoIHdlIHByb2JhYmx5IHNob3VsZC4gCisqKkrDqXLDqW1pZSBLb2Vu
aWcqKgorCisgICAgbG9nKE1BWF9JTlQpCisgICAgID0gbG9nKDIgXiAzMikKKyAgICAgPSAzMiAq
IGxvZygyKQorICAgICA9IDQgKiA4ICogbG9nKDIpCisgICAgID0gc2l6ZW9mKGludCkgKiAyLjQw
ODIzOTk3CisgICAgIDwgc2l6ZW9mKGludCkgKiAzCisKKworIyMjIFByb3BlciB1c2Ugb2YgcmVh
bGxvYygpCisKK3VzZSBhIG5ld19idWZmIHRvIGNoZWNrIGlmIGV2ZXJ5dGhpbmcgd2VudCBmaW5l
IEZyZWUgYnVmIGlmIHJlYWxsb2MgZmFpbGVkIChhbmQgcHJvZyBkb2Vzbid0IGV4aXQpCisKKwor
IyMjIFJlYWRpbmcgbGluZXMgZnJvbSBmaWxlCisKK0Z1bmN0aW9uIHRvIHJlYWQgbGluZSAobm8g
c2l6ZSBsaW1pdCwgZW5kaW5nIHdpdGggIlxuIikgZnJvbSBhIGZpbGUuCisKKyAgICArc3RhdGlj
IGNoYXIgKmdldF9saW5lKEZJTEUgKmYpCisgICAgK3sKKyAgICArICAgIGNoYXIgKmJ1ZmYgID0g
TlVMTDsKKyAgICArICAgIGNoYXIgKm5ld19idWZmICA9IE5VTEw7CisgICAgKyAgICBzaXplX3Qg
YnVmZl9zaXplID0gMDsKKyAgICArICAgIHNpemVfdCBsYXN0ID0gMDsKKyAgICArCisgICAgKyAg
ICB3aGlsZSAoIWZlb2YoZikpIHsKKyAgICArICAgYnVmZl9zaXplID0gYnVmZl9zaXplID8gYnVm
Zl9zaXplICogMiA6IEJVRlNJWjsKKyAgICArICAgbmV3X2J1ZmYgPSByZWFsbG9jKGJ1ZmYsIGJ1
ZmZfc2l6ZSk7CisgICAgKyAgIGlmIChuZXdfYnVmZiA9PSBOVUxMKSB7CisgICAgKyAgICAgICBm
cmVlKGJ1ZmYpOworICAgICsgICAgICAgcmV0dXJuIE5VTEw7CisgICAgKyAgIH0KKyAgICArICAg
YnVmZiA9IG5ld19idWZmOworICAgICsgICBpZiAoZmdldHMoYnVmZiArIGxhc3QsIGJ1ZmZfc2l6
ZSAtIGxhc3QsIGYpID09IE5VTEwpIHsKKyAgICArICAgICAgIGZyZWUoYnVmZik7CisgICAgKyAg
ICAgICByZXR1cm4gTlVMTDsKKyAgICArICAgfQorICAgICsgICBsYXN0ID0gc3RybGVuKGJ1ZmYp
OworICAgICsgICBpZiAoYnVmZltsYXN0IC0gMV0gPT0gJ1xuJykKKyAgICArICAgICAgIHJldHVy
biBidWZmOworICAgICsgICAgfQorICAgICsgICAgcmV0dXJuIGJ1ZmY7CisgICAgK30KKworCisj
IyMgUHJvcGVyIHVzZSBvZiByZWFkbGluaygpCisKK09uZSBoYXMgdG8gcmVseSBvbiBsc3RhdCgp
IHRvIGdldCB0aGUgc2l6ZSBvZiB0aGUgbGluayB0aGF0IHJlYWRsaW5rKCkgcmV0dXJucy4KKwor
RGVjbGFyZSB3aGF0IHlvdSBuZWVkOgorCisgICAgY2hhciAqbGlua25hbWUgPSBOVUxMOworICAg
IHN0cnVjdCBzdGF0IHNiOworICAgIHNzaXplX3QgbGVuID0gLTE7CisKK0NhbGwgbHN0YXQoKSBh
bmQgY2hlY2sgcmV0dXJuIHZhbHVlOgorCisgICAgaWYgKGxzdGF0KGZpbGVuYW1lLCAmc2IpID09
IC0xKSB7CisKK0NyZWF0ZSBhIGJ1ZmZlciBvZiB0aGUgYXBwcm9wcmlhdGUgc2l6ZSBhbmQgY2hl
Y2sgdGhlIHJldHVybiB2YWx1ZToKKworICAgIGxpbmtuYW1lID0gbWFsbG9jKHNiLnN0X3NpemUg
KyAxKTsKKyAgICBpZiAobGlua25hbWUgPT0gTlVMTCkgeworCitDYWxsIHJlYWRsaW5rKCksIGNo
ZWNrIHJldHVybiB2YWx1ZSBhbmQgc2V0IHRoZSBudWxsIGNoYXIgaW4gdGhlIGxpbmtuYW1lOgor
CisgICAgbGVuID0gcmVhZGxpbmsoZmlsZW5hbWUsIGxpbmtuYW1lLCBzYi5zdF9zaXplICsgMSk7
CisgICAgaWYgKGxlbiA8IDAgfHwgbGVuID4gc2Iuc3Rfc2l6ZSkgeworICAgIC4uLgorICAgIGxp
bmtuYW1lW3NiLnN0X3NpemVdID0gJ1wwJzsKKwpkaWZmIC0tZ2l0IGEvdXNlci90bGVjYXJyb3Vy
L3JuZy10b29scy5tZHduIGIvdXNlci90bGVjYXJyb3VyL3JuZy10b29scy5tZHduCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyOTg1MmEKLS0tIC9kZXYvbnVsbAorKysgYi91
c2VyL3RsZWNhcnJvdXIvcm5nLXRvb2xzLm1kd24KQEAgLTAsMCArMSw1NiBAQAorW1shbWV0YSBj
b3B5cmlnaHQ9IkNvcHlyaWdodCDCqSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiJdXQorCitbWyFtZXRhIGxpY2Vuc2U9IiIiW1shdG9nZ2xlIGlkPSJsaWNlbnNlIiB0ZXh0PSJH
RkRMIDEuMisiXV1bWyF0b2dnbGVhYmxlCitpZD0ibGljZW5zZSIgdGV4dD0iUGVybWlzc2lvbiBp
cyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCitkb2N1bWVu
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwg
VmVyc2lvbiAxLjIgb3IKK2FueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyB3aXRoIG5vIEludmFyaWFudAorU2VjdGlvbnMsIG5vIEZyb250
LUNvdmVyIFRleHRzLCBhbmQgbm8gQmFjay1Db3ZlciBUZXh0cy4gIEEgY29weSBvZiB0aGUgbGlj
ZW5zZQoraXMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rpb24gZW50aXRsZWQgW1tHTlUgRnJlZSBEb2N1
bWVudGF0aW9uCitMaWNlbnNlfC9mZGxdXS4iXV0iIiJdXQorCisKK3JuZy10b29scworPT09PT09
PT09CisKK0RhZW1vbiB0byB1c2UgYSBIYXJkd2FyZSBUUk5HLiBUaGUgcm5nZCBkYWVtb24gYWN0
cyBhcyBhIGJyaWRnZSBiZXR3ZWVuIGEgSGFyZHdhcmUgVFJORyAodHJ1ZSByYW5kb20gbnVtYmVy
IGdlbmVyYXRvcikgc3VjaCBhcyB0aGUgb25lcyBpbiBzb21lIEludGVsL0FNRC9WSUEgY2hpcHNl
dHMsIGFuZCB0aGUga2VybmVsJ3MgUFJORyAocHNldWRvLXJhbmRvbSBudW1iZXIgZ2VuZXJhdG9y
KS4gIAorKGZyb20gW1todHRwOi8vcGFja2FnZXMuZGViaWFuLm9yZy9sZW5ueS9ybmctdG9vbHNd
XSkKKworW1shdG9jIHN0YXJ0bGV2ZWw9Ml1dCisKKworKiAqICoKKworCitMb2cKKy0tLQorCisq
ICoqU3RhcnRlZCoqOiAyMDEyLTAxLTI4CisqICoqRGlzY3Vzc2VkKio6IFsyMDEyLTAxLTMwXSho
dHRwOi8vbGlzdHMuZGViaWFuLm9yZy9kZWJpYW4taHVyZC8yMDEyLzAxL21zZzAwMTc3Lmh0bWwp
CisqICoqRHJhZnQgU3VibWl0dGVkKio6IC0KKyogKipTdWJtaXR0ZWQqKjogLQorKiAqKkFjY2Vw
dGVkKio6IC0KKworCisqICogKgorCisKK1RvRG8KKy0tLS0KKworSGVyZSBpcyB0aGUgb3V0cHV0
IG9mIGBncmVwIC1SIFBBVEhfTUFYIHJuZy10b29scy0yLXVub2ZmaWNpYWwtbXQuMTQvKmA6CisK
KyAgICB2aWFwYWRsb2NrX2VuZ2luZS5jOnN0YXRpYyBjaGFyIGNwdWRldl9wYXRoW1BBVEhfTUFY
KzFdOworICAgIHZpYXBhZGxvY2tfZW5naW5lLmM6Y2hhciBkZXZwYXRoW1BBVEhfTUFYKzFdOwor
CisKKyogKiAqCisKKworQ29tbWVudHMKKy0tLS0tLS0tCisKK1dvcmsgaW4gcHJvZ3Jlc3MsIHNl
ZSByZWxhdGVkIFt0aHJlYWRdKGh0dHA6Ly9saXN0cy5kZWJpYW4ub3JnL2RlYmlhbi1odXJkLzIw
MTIvMDEvbXNnMDAxNzcuaHRtbCkuCisKK0V2ZW4gaWYgdGhlICoqUEFUSF9NQVgqKiBjYW4gYmUg
ZWFzaWx5IGZpeGVkLCBzb21lIHByb2JsZW1zIHJlbWFpbi4gIAorVGhlIGNvZGUgdXNlcyBgbGlu
dXgvdHlwZXMuaGAsIHRoYXQgaGFzIHRvIGJlIHJlcGxhY2VkIGJ5IGBzeXMvdHlwZXMuaGAsIGJ1
dCBhbHNvIHVzZXMgYGxpbnV4L3JhbmRvbS5oYCB3aGljaCBoYXMgbm8gZXF1aXZhbGVudCBJIGtu
b3cgb2YuICAKK0F0IGxlYXN0IG9uZSBzb3VyY2UgZmlsZSBpcyBuYW1lZCBhZnRlciB0aGUgT1M6
IGBybmdkX2xpbnV4LmNgLgpkaWZmIC0tZ2l0IGEvdXNlci90bGVjYXJyb3VyL3N1Y2tsZXNzLXRv
b2xzLm1kd24gYi91c2VyL3RsZWNhcnJvdXIvc3Vja2xlc3MtdG9vbHMubWR3bgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjQ2ZmFjCi0tLSAvZGV2L251bGwKKysrIGIvdXNl
ci90bGVjYXJyb3VyL3N1Y2tsZXNzLXRvb2xzLm1kd24KQEAgLTAsMCArMSw3OSBAQAorW1shbWV0
YSBjb3B5cmlnaHQ9IkNvcHlyaWdodCDCqSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiJdXQorCitbWyFtZXRhIGxpY2Vuc2U9IiIiW1shdG9nZ2xlIGlkPSJsaWNlbnNlIiB0ZXh0
PSJHRkRMIDEuMisiXV1bWyF0b2dnbGVhYmxlCitpZD0ibGljZW5zZSIgdGV4dD0iUGVybWlzc2lv
biBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCitkb2N1
bWVudCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5z
ZSwgVmVyc2lvbiAxLjIgb3IKK2FueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3aXRoIG5vIEludmFyaWFudAorU2VjdGlvbnMsIG5vIEZy
b250LUNvdmVyIFRleHRzLCBhbmQgbm8gQmFjay1Db3ZlciBUZXh0cy4gIEEgY29weSBvZiB0aGUg
bGljZW5zZQoraXMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rpb24gZW50aXRsZWQgW1tHTlUgRnJlZSBE
b2N1bWVudGF0aW9uCitMaWNlbnNlfC9mZGxdXS4iXV0iIiJdXQorCisKK3N1Y2tsZXNzLXRvb2xz
Cis9PT09PT09PT09PT09PQorCitIb21lIG9mIGR3bSwgZG1lbnUgYW5kIG90aGVyIHF1YWxpdHkg
c29mdHdhcmUgd2l0aCBhIGZvY3VzIG9uIHNpbXBsaWNpdHksIGNsYXJpdHksIGFuZCBmcnVnYWxp
dHkuICAKKyoqSG9tZSBwYWdlKio6IFtbaHR0cDovL3N1Y2tsZXNzLm9yZ11dCisKK1tbIXRvYyBz
dGFydGxldmVsPTJdXQorCisKKyogKiAqCisKKworTG9nCistLS0KKworKiAqKlN0YXJ0ZWQqKjog
MjAxMi0wMS0zMQorKiAqKkRpc2N1c3NlZCoqOiBbMjAxMi0wMS0zMV0oaHR0cDovL2xpc3RzLmRl
Ymlhbi5vcmcvZGViaWFuLWh1cmQvMjAxMi8wMS9tc2cwMDE5MS5odG1sKQorKiAqKkRyYWZ0IFN1
Ym1pdHRlZCoqOiBbMjAxMi0wMi0wMV0oaHR0cDovL2xpc3RzLmRlYmlhbi5vcmcvZGViaWFuLWh1
cmQvMjAxMi8wMi9tc2cwMDAwMS5odG1sKQorKiAqKlN1Ym1pdHRlZCoqOiAtCisqICoqQWNjZXB0
ZWQqKjogLQorCisKKyogKiAqCisKKworVG9EbworLS0tLQorCitIZXJlIGlzIHRoZSBvdXRwdXQg
b2YgYGdyZXAgLVIgUEFUSF9NQVggc3Vja2xlc3MtdG9vbHMtMzgvKmA6CisKKyAgICBkbWVudS9k
bWVudV9wYXRoLmM6IGNoYXIgYnVmW1BBVEhfTUFYXTsKKworCisqICogKgorCisKK0NvbW1lbnRz
CistLS0tLS0tLQorCitIZXJlIGFyZSBjb21tZW50cyBvbiB0aGUgcGF0Y2guLi4KKworICAgICB2
b2lkCisgICAgIHNjYW4odm9pZCkgeworICAgIC0gICBjaGFyIGJ1ZltQQVRIX01BWF07CisgICAg
KyAgIGNoYXIgKmJ1ZiA9IE5VTEw7CisgICAgKyAgIGNoYXIgKm5ld19idWYgPSBOVUxMOworICAg
ICsgICBzaXplX3QgYnVmX3NpemUgPSAwOworCitJbiB0aGlzIGZ1bmN0aW9uIHdlIHR1cm4gYGJ1
ZmAgaW50byBkeW5hbWljYWxseSBhbGxvY2F0ZWQgc3RyaW5nLgorCisKKyAgICAgICAgICAgIHdo
aWxlKChlbnQgPSByZWFkZGlyKGRwKSkpIHsKKyAgICArICAgICAgICAgICBidWZfc2l6ZSA9IHN0
cmxlbihkaXIpK3N0cmxlbihlbnQtPmRfbmFtZSkrMjsKKyAgICArICAgICAgICAgICBpZighYnVm
IHx8IHN0cmxlbihidWYpIDwgYnVmX3NpemUpIHsKKyAgICArICAgICAgICAgICAgICAgbmV3X2J1
ZiA9IHJlYWxsb2MoYnVmLCBidWZfc2l6ZSk7CisgICAgKyAgICAgICAgICAgICAgIGlmKCFuZXdf
YnVmKQorICAgICsgICAgICAgICAgICAgICAgICAgZGllKCJyZWFsbG9jIGZhaWxlZCIpOworICAg
ICsgICAgICAgICAgICAgICBidWYgPSBuZXdfYnVmOworICAgICsgICAgICAgICAgIH0KKworRm9y
IGVhY2ggZGlyZWN0b3J5IGVudHJ5IHdlIGNyZWF0ZSBvciBhZGFwdCB0aGUgYnVmZmVyIHNpemUu
CisKKworICAgICAgICAgICAgfQorICAgICsgICAgICAgZnJlZShidWYpOworCitXZSBmcmVlIHRo
ZSBidWYgd2hlbiBkb25lLgorCmRpZmYgLS1naXQgYS91c2VyL3RsZWNhcnJvdXIvdXAtaW1hcHBy
b3h5Lm1kd24gYi91c2VyL3RsZWNhcnJvdXIvdXAtaW1hcHByb3h5Lm1kd24KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNlZWE3ZAotLS0gL2Rldi9udWxsCisrKyBiL3VzZXIv
dGxlY2Fycm91ci91cC1pbWFwcHJveHkubWR3bgpAQCAtMCwwICsxLDU0IEBACitbWyFtZXRhIGNv
cHlyaWdodD0iQ29weXJpZ2h0IMKpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
Il1dCisKK1tbIW1ldGEgbGljZW5zZT0iIiJbWyF0b2dnbGUgaWQ9ImxpY2Vuc2UiIHRleHQ9IkdG
REwgMS4yKyJdXVtbIXRvZ2dsZWFibGUKK2lkPSJsaWNlbnNlIiB0ZXh0PSJQZXJtaXNzaW9uIGlz
IGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMKK2RvY3VtZW50
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBW
ZXJzaW9uIDEuMiBvcgorYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IHdpdGggbm8gSW52YXJpYW50CitTZWN0aW9ucywgbm8gRnJvbnQt
Q292ZXIgVGV4dHMsIGFuZCBubyBCYWNrLUNvdmVyIFRleHRzLiAgQSBjb3B5IG9mIHRoZSBsaWNl
bnNlCitpcyBpbmNsdWRlZCBpbiB0aGUgc2VjdGlvbiBlbnRpdGxlZCBbW0dOVSBGcmVlIERvY3Vt
ZW50YXRpb24KK0xpY2Vuc2V8L2ZkbF1dLiJdXSIiIl1dCisKKwordXAtaW1hcHByb3h5Cis9PT09
PT09PT09PT0KKworU3F1aXJyZWxNYWlsJ3MgSU1BUCBQcm94eSBpcyBhIGNhY2hpbmcgSU1BUCBw
cm94eSBzZXJ2ZXIgaW50ZW5kZWQgZm9yIHVzZSB3aXRoIHdlYm1haWwgY2xpZW50cyB0aGF0IGNh
bm5vdCBtYWludGFpbiBwZXJzaXN0ZW50IGNvbm5lY3Rpb25zIHRvIGFuIElNQVAgc2VydmVyLiAg
CisqKkhvbWUgcGFnZSoqOiBbW2h0dHA6Ly93d3cuaW1hcHByb3h5Lm9yZ11dCisKK1tbIXRvYyBz
dGFydGxldmVsPTJdXQorCisKKyogKiAqCisKKworTG9nCistLS0KKworKiAqKlN0YXJ0ZWQqKjog
MjAxMi0wMS0zMQorKiAqKkRpc2N1c3NlZCoqOiAtCisqICoqRHJhZnQgU3VibWl0dGVkKio6IC0K
KyogKipTdWJtaXR0ZWQqKjogLQorKiAqKkFjY2VwdGVkKio6IC0KKworCisqICogKgorCisKK1Rv
RG8KKy0tLS0KKworSGVyZSBpcyB0aGUgb3V0cHV0IG9mIGBncmVwIC1SIFBBVEhfTUFYIHVwLWlt
YXBwcm94eS0xLjIuNy8qYDoKKworICAgIHNyYy9tYWluLmM6ICAgIGNoYXIgZl9yYW5kZmlsZVsg
UEFUSF9NQVggXTsKKworCisqICogKgorCisKK0NvbW1lbnRzCistLS0tLS0tLQorCitXb3JrIGlu
IHByb2dyZXNzLi4uCisKK09ubHkgdGhlIGZ1bmN0aW9uIHRoYXQgZmlsbHMgdGhlIGJ1ZmZlciBr
bm93cyBob3cgbG9uZyBpdCBjYW4gYmUuICAKK1RoaXMgZnVuY3Rpb24gaXMgYFJBTkRfZmlsZV9u
YW1lKClgIGFuZCBpcyBwYXJ0IG9mICoqT3BlblNTTCoqLgotLSAKMS43LjUuNAoK
--e89a8f234bfb7fdf1f04b7fbbda2--