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.94.2) (envelope-from ) id 1tBEIL-002bbB-U4 for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Nov 2024 14:24:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tBEIJ-00EobF-BE for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Nov 2024 14:24:31 +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.94.2) (envelope-from ) id 1tBEIH-00Eoax-O3 for pgsql-hackers@lists.postgresql.org; Wed, 13 Nov 2024 14:24:31 +0000 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tBEHw-001fyp-66 for pgsql-hackers@lists.postgresql.org; Wed, 13 Nov 2024 14:24:29 +0000 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-5c96b2a10e1so10496930a12.2 for ; Wed, 13 Nov 2024 06:24:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec.at; s=cybertec.at; t=1731507846; x=1732112646; darn=lists.postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=4p7+aeAA0HR3Iwfb57RDfMwX8Kpl7kvfAJrRGwPN7pg=; b=n1P3oqNnjdojB+JikLnuvbiicHNVo//9slcA36vGlgrLPka8got2KVeAOUJmmzRtuk T2CE8eRy3prQ3kZH527ilfk+RJr1n5K1pximRhS6jXu7rVCS4fnRR44UMSA/+RvI57Wn maKfiYzMfD18qFbCf3xOSwx/ABVRlYKnl2vi8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731507846; x=1732112646; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4p7+aeAA0HR3Iwfb57RDfMwX8Kpl7kvfAJrRGwPN7pg=; b=RSWxPVCvZJ0HghM8CAioKZh9TYB+L+3XQXGC46gxbeZqh4T600CHogaT42bIoRVMqw UmIGLK1MH3F4aBrAKQujVAd3Ew1VbAs8DlTz1X6GBjxShd1OzDGPhR8w7Xw7SdqZQrQ6 dhsh/t7rYXWB7v0T7RSkiGp1cIBip5+K9OApnhIcVA7hiErky4N1pG586hcCTvw/LN2r LCMa/LhzQpFPe9JMTaxf5lp7y+I/xf7rNmYODebO4bre5s0KN/x9g1kDD2R4wJICSzJ1 PNu0+4zyKEqZRV49FkmPP8STulRgQvwB0J8ba/+XRy4sKXBcRGTvTgTzFLlsumYVArCj sKUw== X-Forwarded-Encrypted: i=1; AJvYcCVO+ugzN98+NBo6vSHeBQnLxaKRcWEKAxy0jfYoMhUoPHGx3HgA4X50WmEWB9QdMeU5G9jbl7jk2IoJP1Ff@lists.postgresql.org X-Gm-Message-State: AOJu0Yznu+kRDEy3Ix7AdKc0XAIVMAQ3AWNCbztJmRmd8BGUDhfUPLu5 CVpDF2QnWuYG7N9P2hfAzA7SbQthXuPcsoMy8bKBKdyd/lj4XzNg/7022oFXAL0= X-Google-Smtp-Source: AGHT+IEgOYFNxD7P6d0q4cap8GQBEAyPlFU2AQk52Ul+PLrwtmO/AFH4o/n+sGx59hN3Oy5aARhmfA== X-Received: by 2002:a05:6402:210f:b0:5cf:40fd:a445 with SMTP id 4fb4d7f45d1cf-5cf40fda638mr9363002a12.6.1731507845077; Wed, 13 Nov 2024 06:24:05 -0800 (PST) Received: from localhost.localdomain ([2001:871:260:4ece:98f8:ec86:f73c:9228]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5cf03c4ecaesm7255884a12.70.2024.11.13.06.24.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Nov 2024 06:24:04 -0800 (PST) Message-ID: <8842f664d3b4c909d97fd56d374d899fac9a5b84.camel@cybertec.at> Subject: Re: proposal: schema variables From: Laurenz Albe To: Pavel Stehule Cc: Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Date: Wed, 13 Nov 2024 15:24:02 +0100 In-Reply-To: References: <20200924035637.GF28585@paquier.xyz> <20201001033824.GC8130@paquier.xyz> <51a9a68e8a998d04df17417d45c1dbd4@xs4all.nl> <89817942c99da01cd5e7850fe418436b@xs4all.nl> <56ca532c37eb0b540961f74a7bd5db39@xs4all.nl> <8181bd3abc647bdae5a4f78e71e62478a98c75f4.camel@cybertec.at> <9e67d49deb18270eddb95e602c83f02b98459843.camel@cybertec.at> <3b662dc5b615d4c20a55e8e2fbe6fc00fe00609d.camel@cybertec.at> <6996931e8c9edf3b82223e74e92326a7ed06c1d6.camel@cybertec.at> <67aa68a7e6dfb44c0cbbdf7f97cadfede4269ce5.camel@cybertec.at> <04ec666686e9e21cb515617df06885c66f3d34ce.camel@cybertec.at> <3850a85012d040827b10193189edbe2c23a64f8f.camel@cybertec.at> Content-Type: multipart/mixed; boundary="=-CV9YBFLMVc4+roJb8013" User-Agent: Evolution 3.52.4 (3.52.4-2.fc40) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-CV9YBFLMVc4+roJb8013 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks for the updated patch set. Here is my review of patch 0005: > --- a/src/backend/access/transam/xact.c > +++ b/src/backend/access/transam/xact.c > +#include "commands/session_variable.h" You probably forgot to move that to the patch for temporary variables. I did that. > --- a/src/backend/commands/session_variable.c > +++ b/src/backend/commands/session_variable.c > @@ -83,6 +92,19 @@ static HTAB *sessionvars =3D NULL; /* hash table for s= ession variables */ > =20 > static MemoryContext SVariableMemoryContext =3D NULL; > =20 > +/* true after accepted sinval message */ > +static bool needs_validation =3D false; > + > +/* > + * The content of session variables is not removed immediately. When it > + * is possible we do this at the transaction end. But when the transacti= on failed, > + * we cannot do it, because we lost access to the system catalog. So we > + * try to do it in the next transaction before any get or set of any ses= sion > + * variable. We don't want to repeat this opening cleaning in transactio= n, > + * So we store the id of the transaction where opening validation was do= ne. > + */ > +static LocalTransactionId validated_lxid =3D InvalidLocalTransactionId; I have moved the reference to the transaction end to the temporary variable patch. I have gone over the comments in patch 0005 and 0006. I hope I got everything right. Attached is an updated patch set. Yours, Laurenz Albe --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename*0=v20241113-0001-Enhancing-catalog-for-support-session-vari.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0001-Enhancing-catalog-for-support-session-vari.patch"; charset="UTF-8" RnJvbSBlMzY1ZGFmOTIwZDUxMmE3YWVmMTRmMGUyYjIxYzI2Y2FhYjg4OTZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIHYy MDI0MTExMyAwMS8yMF0gRW5oYW5jaW5nIGNhdGFsb2cgZm9yIHN1cHBvcnQgc2Vzc2lvbgogdmFy aWFibGVzIGFuZCByZWxhdGVkIHN1cHBvcnQKClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBuZXcgc3lz dGVtIGNhdGFsb2cgdGFibGUgcGdfdmFyaWFibGUuIFRoaXMgdGFibGUgaG9sZHMgbWV0YWRhdGEg YWJvdXQKc2Vzc2lvbiB2YXJpYWJsZXMgY3JlYXRlZCBieSBjb21tYW5kIENSRUFURSBWQVJJQUJM RSwgYW5kIGRyb3BwZWQgYnkgY29tbWFuZCBEUk9QIFZBUklBQkxFLgpCb3RoIGNvbW1hbmRzIGFy ZSBpbXBsZW1lbnRlZCBieSB0aGlzIHBhdGNoLiBQb3NzaWJpbGl0eSB0byBjaGFuZ2Ugb3duZXIs IHNjaGVtYSBvciByZW5hbWUuCgpBY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGNv bnRyb2xsZWQgYnkgU0VMRUNUIG9yIFVQREFURSByaWdodHMuIEJvdGggcmlnaHRzIGFyZQppbnRy b2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggdG9vLgoKVGhpcyBwYXRjaCBlbmhhbmNpbmcgcGdfZHVtcCBh bmQgcHNxbCB0byBzdXBwb3J0IHNlc3Npb24gdmFyaWFibGVzLiBUaGUgY2hhbmdlcyBhcmUgcmVs YXRlZAp0byBzeXN0ZW0gY2F0YWxvZy4KClRoaXMgcGF0Y2ggaXMgbm90IHNob3J0LCBidXQgdGhl IGNvZGUgaXMgc2ltcGxlLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAg ICAgICAgICAgICB8IDEyMCArKysrKysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAzMSArKysKIGRvYy9zcmMvc2dtbC9mdW5jLnNnbWwgICAgICAg ICAgICAgICAgICAgICAgICB8ICAxMyArCiBkb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCAgICAg ICAgICAgICAgICAgICAgfCAgMTUgKysKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAg ICAgICAgICAgICAgICB8ICAgMyArCiAuLi4vc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxl Z2VzLnNnbWwgICAgfCAgMjYgKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dt bCAgICAgICAgICB8IDE3OCArKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5z Z21sICAgICAgICAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hl bWEuc2dtbCAgICAgICAgICAgfCAgIDcgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwgICAgICAgICB8IDE1MSArKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9kcm9w X3ZhcmlhYmxlLnNnbWwgICAgICAgICAgIHwgMTE3ICsrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVm L2dyYW50LnNnbWwgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogZG9jL3NyYy9zZ21sL3JlZi9y ZXZva2Uuc2dtbCAgICAgICAgICAgICAgICAgIHwgICA3ICsKIGRvYy9zcmMvc2dtbC9yZWZlcmVu Y2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9jYXRhbG9nL01h a2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xj aGsuYyAgICAgICAgICAgICAgICAgIHwgIDc3ICsrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9k ZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbWVz b24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL25hbWVz cGFjZS5jICAgICAgICAgICAgICAgfCAxMzMgKysrKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9n L29iamVjdGFkZHJlc3MuYyAgICAgICAgICAgfCAxMjEgKysrKysrKystCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3NoZGVwZW5kLmMgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgMjU1ICsrKysrKysrKysrKysrKysrKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYyAgICAgICAgICAgICAgICAgIHwgICA5ICsKIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMv YmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgICAgICAgICAgfCAgIDQgKwogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA0MSArKysKIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDEwNSArKysrKysrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgIDEyICsKIHNyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAxNiArKwogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2FjbC5jICAgICAgICAgICAgICAgICAgIHwgICA3ICsKIHNyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jICAgICAgICAgICB8IDExMyArKysrKysrKwogc3Jj L2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9i aW4vcGdfZHVtcC9kdW1wdXRpbHMuYyAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwLmggICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jICAgICAgICAgIHwgICA5ICsKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE5NSArKysrKysrKysrKysrLQog c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICsrCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgICAgICAgICAgICAgICAgfCAgIDYgKwogc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDY0ICsrKysrCiBz cmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDk2ICsrKysrKysK IHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBz cmMvYmluL3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDQyICsrLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaCAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDgxICsrKysrKwogc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDE2ICsrCiBzcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUv dGNvcC9jbWR0YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL3V0 aWxzL2FjbC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS91dGls cy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9kZXBlbmRlbmN5Lm91dCAgICAgIHwgIDE3ICsrCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29pZGpvaW5zLm91dCAgICAgICAgfCAgIDQgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDUwICsrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8ICA1OCArKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2RlcGVuZGVuY3kuc3FsICAgICAgICAgICB8ICAxNCArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9w c3FsLnNxbCAgICAgICAgICAgICAgICAgfCAgMjEgKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA2MSArKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICA0ICsKIDY1IGZpbGVzIGNoYW5nZWQsIDIzNjQg aW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9z cmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmlu ZGV4IGMxODBlZDdhYmJjLi41NzA5YzljZGJkNCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTM2OSw2ICsz NjksMTEgQEAKICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXVzZXItbWFw cGluZyI+PHN0cnVjdG5hbWU+cGdfdXNlcl9tYXBwaW5nPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2Vu dHJ5PgogICAgICAgPGVudHJ5Pm1hcHBpbmdzIG9mIHVzZXJzIHRvIGZvcmVpZ24gc2VydmVyczwv ZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlu a2VuZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVj dG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+c2Vzc2lvbiB2YXJpYWJsZXM8L2Vu dHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+ CkBAIC05NzMzLDQgKzk3MzgsMTE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtp dGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgIDwvdGFi bGU+CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxp bmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgICA8cHJpbWFyeT5wZ192YXJp YWJsZTwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxv ZyA8c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gc3RvcmVzIGluZm9ybWF0aW9u IGFib3V0CisgICBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAg IDx0aXRsZT48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0 bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8 L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBl Ij48c3RydWN0bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9p ZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhl IE9JRCBvZiB0aGUgdmFyaWFibGUncyBkYXRhIHR5cGUKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+dmFybmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0ZmllbGQ+IDx0 eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLW5hbWVzcGFjZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMgdGhp cyB2YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25lcjwvc3RydWN0 ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5k PSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwv bGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlwbW9k PC9zdHJ1Y3RmaWVsZD4gcmVjb3JkcyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAgICBzdXBwbGll ZCBhdCB2YXJpYWJsZSBjcmVhdGlvbiB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1heGltdW0KKyAg ICAgICBsZW5ndGggb2YgYSA8dHlwZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAgSXQgaXMgcGFz c2VkIHRvCisgICAgICAgdHlwZS1zcGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5kIGxlbmd0aCBj b2VyY2lvbiBmdW5jdGlvbnMuCisgICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJhbGx5IGJlIC0x IGZvciB0eXBlcyB0aGF0IGRvIG5vdCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVj dGZpZWxkPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtl bmQ9ImNhdGFsb2ctcGctY29sbGF0aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0cnVj dG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24gb2YgdGhlIHZh cmlhYmxlLCBvciB6ZXJvIGlmIHRoZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBvZiBhIGNvbGxh dGFibGUgZGF0YSB0eXBlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJhY2w8L3N0 cnVjdGZpZWxkPiA8dHlwZT5hY2xpdGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBBY2Nlc3MgcHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhyZWYgbGlua2Vu ZD0ic3FsLWdyYW50Ii8+IGFuZAorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1yZXZva2UiLz4K KyAgICAgICBmb3IgZGV0YWlscworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CiA8L2No YXB0ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwv ZGRsLnNnbWwKaW5kZXggM2M1NjYxMGQyYWMuLjZhZTM2ZjgzMmY3IDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01Mjk3LDYg KzUyOTcsMzcgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVS RSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwogICAgPC9wYXJhPgogIDwvc2VjdDE+ CiAKKyAgPHNlY3QxIGlkPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiPgorICAgPHRpdGxlPlNlc3Np b24gVmFyaWFibGVzPC90aXRsZT4KKworICAgPGluZGV4dGVybSB6b25lPSJkZGwtc2Vzc2lvbi12 YXJpYWJsZXMiPgorICAgIDxwcmltYXJ5PlNlc3Npb24gdmFyaWFibGVzPC9wcmltYXJ5PgorICAg PC9pbmRleHRlcm0+CisKKyAgIDxpbmRleHRlcm0+CisgICAgPHByaW1hcnk+c2Vzc2lvbiB2YXJp YWJsZTwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBTZXNzaW9u IHZhcmlhYmxlcyBhcmUgZGF0YWJhc2Ugb2JqZWN0cyB0aGF0IGNhbiBob2xkIGEgdmFsdWUuCisg ICAgU2Vzc2lvbiB2YXJpYWJsZXMsIGxpa2UgcmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBzY2hl bWEgYW5kIHRoZWlyIGFjY2VzcworICAgIGlzIGNvbnRyb2xsZWQgdmlhIDxjb21tYW5kPkdSQU5U PC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+UkVWT0tFPC9jb21tYW5kPgorICAgIGNvbW1hbmRzLiAg QSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSBjcmVhdGVkIGJ5IHRoZSA8Y29tbWFuZD5DUkVBVEUK KyAgICBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+ CisgICAgSW5zaWRlIGEgcXVlcnkgb3IgYW4gZXhwcmVzc2lvbiwgYSBzZXNzaW9uIHZhcmlhYmxl IGNhbiBiZQorICAgIDxxdW90ZT5zaGFkb3dlZDwvcXVvdGU+IGJ5IGEgY29sdW1uIHdpdGggdGhl IHNhbWUgbmFtZS4gIFNpbWlsYXJseSwgdGhlCisgICAgbmFtZSBvZiBhIGZ1bmN0aW9uIG9yIHBy b2NlZHVyZSBhcmd1bWVudCBvciBhIFBML3BnU1FMIHZhcmlhYmxlIChzZWUKKyAgICA8eHJlZiBs aW5rZW5kPSJwbHBnc3FsLWRlY2xhcmF0aW9ucyIvPikgY2FuIHNoYWRvdyBhIHNlc3Npb24gdmFy aWFibGUKKyAgICBpbiB0aGUgcm91dGluZSdzIGJvZHkuICBTdWNoIGNvbGxpc2lvbnMgb2YgaWRl bnRpZmllcnMgY2FuIGJlIHJlc29sdmVkCisgICAgYnkgdXNpbmcgcXVhbGlmaWVkIGlkZW50aWZp ZXJzOiBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgcXVhbGlmaWVkIHdpdGgKKyAgICB0aGUgc2No ZW1hIG5hbWUsIGNvbHVtbnMgY2FuIHVzZSB0YWJsZSBhbGlhc2VzLCByb3V0aW5lIHZhcmlhYmxl cyBjYW4gdXNlCisgICAgYmxvY2sgbGFiZWxzLCBhbmQgcm91dGluZSBhcmd1bWVudHMgY2FuIHVz ZSB0aGUgcm91dGluZSBuYW1lLgorICAgPC9wYXJhPgorICA8L3NlY3QxPgorCiAgPHNlY3QxIGlk PSJkZGwtb3RoZXJzIj4KICAgPHRpdGxlPk90aGVyIERhdGFiYXNlIE9iamVjdHM8L3RpdGxlPgog CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMu c2dtbAppbmRleCA3Mzk3OWYyMGZmZi4uNTZjYWExMDUxYTEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjU3MzYsNiAr MjU3MzYsMTkgQEAgU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcyBXSEVSRSBwZ190YWJsZV9p c192aXNpYmxlKG9pZCk7CiAgICAgICAgIElzIHR5cGUgKG9yIGRvbWFpbikgdmlzaWJsZSBpbiBz ZWFyY2ggcGF0aD8KICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgorCisgICAg ICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFy eT5wZ192YXJpYWJsZV9pc192aXNpYmxlPC9wcmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4K KyAgICAgICAgPGZ1bmN0aW9uPnBnX3ZhcmlhYmxlX2lzX3Zpc2libGU8L2Z1bmN0aW9uPiAoIDxw YXJhbWV0ZXI+dmFyaWFibGU8L3BhcmFtZXRlcj4gPHR5cGU+b2lkPC90eXBlPiApCisgICAgICAg IDxyZXR1cm52YWx1ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAg ICAgPHBhcmE+CisgICAgICAgIElzIHNlc3Npb24gdmFyaWFibGUgdmlzaWJsZSBpbiBzZWFyY2gg cGF0aD8KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgogICAgICA8L3Rib2R5 PgogICAgIDwvdGdyb3VwPgogICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9n bG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKaW5kZXggZjU0ZjI1YzFj NmIuLmQwY2I1Mzc2M2FhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbApAQCAtMTY2NCw2ICsxNjY0LDIxIEBACiAg ICA8L2dsb3NzZGVmPgogICA8L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3Nz YXJ5LXNlc3Npb24tdmFyaWFibGUiPgorICAgPGdsb3NzdGVybT5TZXNzaW9uIHZhcmlhYmxlPC9n bG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+CisgICAgPHBhcmE+CisgICAgIEEgcGVyc2lzdGVudCBk YXRhYmFzZSBvYmplY3QgdGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhp cworICAgICB2YWx1ZSBpcyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQg d2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgorICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBzZXNz aW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCisgICAgIHNpbWlsYXIg dG8gb3RoZXIgZGF0YWJhc2Ugb2JqZWN0cy4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAg IEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFy aWFibGVzIi8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4K KwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2hhcmVkLW1lbW9yeSI+CiAgICA8Z2xvc3N0 ZXJtPlNoYXJlZCBtZW1vcnk8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmls ZXMuc2dtbAppbmRleCBmNWJlNjM4ODY3YS4uMmY2N2RlM2UyMWIgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVz LnNnbWwKQEAgLTQ3LDYgKzQ3LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3Vy Y2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBhbHRlclR5cGUgICAgICAgICAg U1lTVEVNICJhbHRlcl90eXBlLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJVc2VyICAgICAgICAgIFNZ U1RFTSAiYWx0ZXJfdXNlci5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVXNlck1hcHBpbmcgICBTWVNU RU0gImFsdGVyX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGFsdGVyVmFyaWFibGUgICAg ICBTWVNURU0gImFsdGVyX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJWaWV3ICAgICAg ICAgIFNZU1RFTSAiYWx0ZXJfdmlldy5zZ21sIj4KIDwhRU5USVRZIGFuYWx5emUgICAgICAgICAg ICBTWVNURU0gImFuYWx5emUuc2dtbCI+CiA8IUVOVElUWSBiZWdpbiAgICAgICAgICAgICAgU1lT VEVNICJiZWdpbi5zZ21sIj4KQEAgLTk5LDYgKzEwMCw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNh YmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgY3JlYXRl VHlwZSAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3R5cGUuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVV c2VyICAgICAgICAgU1lTVEVNICJjcmVhdGVfdXNlci5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVVz ZXJNYXBwaW5nICBTWVNURU0gImNyZWF0ZV91c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElUWSBj cmVhdGVWYXJpYWJsZSAgICAgU1lTVEVNICJjcmVhdGVfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElU WSBjcmVhdGVWaWV3ICAgICAgICAgU1lTVEVNICJjcmVhdGVfdmlldy5zZ21sIj4KIDwhRU5USVRZ IGRlYWxsb2NhdGUgICAgICAgICBTWVNURU0gImRlYWxsb2NhdGUuc2dtbCI+CiA8IUVOVElUWSBk ZWNsYXJlICAgICAgICAgICAgU1lTVEVNICJkZWNsYXJlLnNnbWwiPgpAQCAtMTQ3LDYgKzE0OSw3 IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGly ZWN0b3J5LgogPCFFTlRJVFkgZHJvcFR5cGUgICAgICAgICAgIFNZU1RFTSAiZHJvcF90eXBlLnNn bWwiPgogPCFFTlRJVFkgZHJvcFVzZXIgICAgICAgICAgIFNZU1RFTSAiZHJvcF91c2VyLnNnbWwi PgogPCFFTlRJVFkgZHJvcFVzZXJNYXBwaW5nICAgIFNZU1RFTSAiZHJvcF91c2VyX21hcHBpbmcu c2dtbCI+Cis8IUVOVElUWSBkcm9wVmFyaWFibGUgICAgICAgU1lTVEVNICJkcm9wX3ZhcmlhYmxl LnNnbWwiPgogPCFFTlRJVFkgZHJvcFZpZXcgICAgICAgICAgIFNZU1RFTSAiZHJvcF92aWV3LnNn bWwiPgogPCFFTlRJVFkgZW5kICAgICAgICAgICAgICAgIFNZU1RFTSAiZW5kLnNnbWwiPgogPCFF TlRJVFkgZXhlY3V0ZSAgICAgICAgICAgIFNZU1RFTSAiZXhlY3V0ZS5zZ21sIj4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sCmluZGV4IDg5YWFjZWM0 ZmFiLi4wNDFjNzhkNDMyZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZh dWx0X3ByaXZpbGVnZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRf cHJpdmlsZWdlcy5zZ21sCkBAIC01MSw2ICs1MSwxMCBAQCBHUkFOVCB7IHsgVVNBR0UgfCBDUkVB VEUgfQogICAgIE9OIFNDSEVNQVMKICAgICBUTyB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5d IFsgV0lUSCBHUkFOVCBPUFRJT04gXQogCitHUkFOVCB7IFNFTEVDVCB8IFVQREFURSB8IEFMTCBb IFBSSVZJTEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEVTCisgICAgVE8geyBbIEdST1VQIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVC TElDIH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KKwogUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCiAgICAgeyB7IFNFTEVDVCB8IElOU0VSVCB8IFVQREFURSB8IERFTEVURSB8IFRS VU5DQVRFIHwgUkVGRVJFTkNFUyB8IFRSSUdHRVIgfCBNQUlOVEFJTiB9CiAgICAgWywgLi4uXSB8 IEFMTCBbIFBSSVZJTEVHRVMgXSB9CkBAIC04Myw2ICs4NywxMiBAQCBSRVZPS0UgWyBHUkFOVCBP UFRJT04gRk9SIF0KICAgICBPTiBTQ0hFTUFTCiAgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMg fSBbLCAuLi5dCiAgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorCitSRVZPS0UgWyBHUkFOVCBP UFRJT04gRk9SIF0KKyAgICB7IHsgU0VMRUNUIHwgVVBEQVRFIH0gWywgLi4uXSB8IEFMTCBbIFBS SVZJTEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEVTCisgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJM SUMgfSBbLCAuLi5dCisgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQogPC9zeW5vcHNpcz4KICA8 L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0xMTcsMTQgKzEyNywxNCBAQCBSRVZPS0UgWyBHUkFOVCBP UFRJT04gRk9SIF0KICAgPHBhcmE+CiAgICBDdXJyZW50bHksCiAgICBvbmx5IHRoZSBwcml2aWxl Z2VzIGZvciBzY2hlbWFzLCB0YWJsZXMgKGluY2x1ZGluZyB2aWV3cyBhbmQgZm9yZWlnbgotICAg dGFibGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIGFuZCB0eXBlcyAoaW5jbHVkaW5nIGRvbWFp bnMpIGNhbiBiZQotICAgYWx0ZXJlZC4gIEZvciB0aGlzIGNvbW1hbmQsIGZ1bmN0aW9ucyBpbmNs dWRlIGFnZ3JlZ2F0ZXMgYW5kIHByb2NlZHVyZXMuCi0gICBUaGUgd29yZHMgPGxpdGVyYWw+RlVO Q1RJT05TPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGFyZQotICAg ZXF1aXZhbGVudCBpbiB0aGlzIGNvbW1hbmQuICAoPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+ IGlzIHByZWZlcnJlZAotICAgZ29pbmcgZm9yd2FyZCBhcyB0aGUgc3RhbmRhcmQgdGVybSBmb3Ig ZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHRha2VuCi0gICB0b2dldGhlci4gIEluIGVhcmxpZXIg UG9zdGdyZVNRTCByZWxlYXNlcywgb25seSB0aGUKLSAgIHdvcmQgPGxpdGVyYWw+RlVOQ1RJT05T PC9saXRlcmFsPiB3YXMgYWxsb3dlZC4gIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBzZXQKLSAgIGRl ZmF1bHQgcHJpdmlsZWdlcyBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHNlcGFyYXRlbHku KQorICAgdGFibGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHR5cGVzIChpbmNsdWRpbmcgZG9t YWlucyksIGFuZCBzZXNzaW9uCisgICB2YXJpYWJsZXMgY2FuIGJlIGFsdGVyZWQuICBGb3IgdGhp cyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVkZSBhZ2dyZWdhdGVzCisgICBhbmQgcHJvY2VkdXJl cy4gIFRoZSB3b3JkcyA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IGFuZAorICAgPGxpdGVy YWw+Uk9VVElORVM8L2xpdGVyYWw+IGFyZSBlcXVpdmFsZW50IGluIHRoaXMgY29tbWFuZC4KKyAg ICg8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gaXMgcHJlZmVycmVkIGdvaW5nIGZvcndhcmQg YXMgdGhlIHN0YW5kYXJkCisgICB0ZXJtIGZvciBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgdGFr ZW4gdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBvc3RncmVTUUwKKyAgIHJlbGVhc2VzLCBvbmx5IHRo ZSB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBu b3QKKyAgIHBvc3NpYmxlIHRvIHNldCBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBh bmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikKICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5kODc1NzBlN2Q4YgotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDE3OCBAQAorPCEtLQorZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgor Cis8cmVmZW50cnkgaWQ9InNxbC1hbHRlcnZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNx bC1hbHRlcnZhcmlhYmxlIj4KKyAgPHByaW1hcnk+QUxURVIgVkFSSUFCTEU8L3ByaW1hcnk+Cisg PC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxl PC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PmFsdGVyaW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRl cm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgVkFSSUFCTEU8L3JlZmVu dHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FM IC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJl Zm5hbWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVy cG9zZT4KKyAgIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBhIHNlc3Npb24gdmFyaWFibGUKKyAg PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5v cHNpcz4KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBT RVNTSU9OX1VTRVIgfQorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFNDSEVNQSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+Cis8L3N5bm9w c2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlw dGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+QUxURVIgVkFSSUFCTEU8 L2NvbW1hbmQ+IGNvbW1hbmQgY2hhbmdlcyB0aGUgZGVmaW5pdGlvbiBvZiBhbgorICAgZXhpc3Rp bmcgc2Vzc2lvbiB2YXJpYWJsZS4gVGhlcmUgYXJlIHNldmVyYWwgc3ViZm9ybXM6CisKKyAgPHZh cmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+T1dORVI8 L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlz IGZvcm0gY2hhbmdlcyB0aGUgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0 ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG5hbWUg b2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVy YWw+U0VUIFNDSEVNQTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoaXMgZm9ybSBtb3ZlcyB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbnRvIGFub3Ro ZXIgc2NoZW1hLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgIDwvdmFyaWFibGVsaXN0PgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBPbmx5 IHRoZSBvd25lciBvciBhIHN1cGVydXNlciBpcyBhbGxvd2VkIHRvIGFsdGVyIGEgc2Vzc2lvbiB2 YXJpYWJsZS4KKyAgIEluIG9yZGVyIHRvIG1vdmUgYSBzZXNzaW9uIHZhcmlhYmxlIGZyb20gb25l IHNjaGVtYSB0byBhbm90aGVyLCB0aGUgdXNlcgorICAgbXVzdCBhbHNvIGhhdmUgdGhlIDxsaXRl cmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSBuZXcgc2NoZW1hIChvcgorICAg YmUgYSBzdXBlcnVzZXIpLgorCisgICBJbiBvcmRlciB0byBtb3ZlIHRoZSBzZXNzaW9uIHZhcmlh YmxlIG93bmVyc2hpcCBmcm9tIG9uZSByb2xlIHRvIGFub3RoZXIsCisgICB0aGUgdXNlciBtdXN0 IGFsc28gYmUgYSBkaXJlY3Qgb3IgaW5kaXJlY3QgbWVtYmVyIG9mIHRoZSBuZXcKKyAgIG93bmlu ZyByb2xlLCBhbmQgdGhhdCByb2xlIG11c3QgaGF2ZSB0aGUgPGxpdGVyYWw+Q1JFQVRFPC9saXRl cmFsPiBwcml2aWxlZ2UKKyAgIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlJ3Mgc2NoZW1hIChvciBi ZSBhIHN1cGVydXNlcikuIFRoZXNlIHJlc3RyaWN0aW9ucworICAgZW5mb3JjZSB0aGF0IGFsdGVy aW5nIHRoZSBvd25lciBkb2Vzbid0IGRvIGFueXRoaW5nIHlvdSBjb3VsZG4ndCBkbyBieQorICAg ZHJvcHBpbmcgYW5kIHJlY3JlYXRpbmcgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+ CisKKyAgIDxwYXJhPgorICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUg bmFtZSAocG9zc2libHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgdGhlIGV4aXN0aW5nIHNlc3Npb24g dmFyaWFibGUKKyAgICAgICAgdG8gYWx0ZXIuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0 aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFi bGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUg bmV3IG5hbWUgZm9yIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAg IDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X293bmVyPC9y ZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAg ICAgIFRoZSB1c2VyIG5hbWUgb2YgdGhlIG5ldyBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJs ZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5ldyBzY2hlbWEgZm9yIHRoZSBzZXNz aW9uIHZhcmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwv dmFybGlzdGVudHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJhPgorICA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJh PgorICAgVG8gcmVuYW1lIGEgc2Vzc2lvbiB2YXJpYWJsZToKKzxwcm9ncmFtbGlzdGluZz4KK0FM VEVSIFZBUklBQkxFIGZvbyBSRU5BTUUgVE8gYm9vOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9w YXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2 YXJpYWJsZSA8bGl0ZXJhbD5ib288L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5qb2U8L2xpdGVy YWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgVkFSSUFCTEUgYm9vIE9XTkVSIFRPIGpvZTsK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0 aGUgc2NoZW1hIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4g dG8KKyAgIDxsaXRlcmFsPnByaXZhdGU8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxU RVIgVkFSSUFCTEUgYm9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+Cisg IDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJp bGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxlcyBhbmQgdGhpcyBj b21tYW5kIGluIHBhcnRpY3VsYXIgYXJlIGEgUG9zdGdyZVNRTCBleHRlbnNpb24uCisgIDwvcGFy YT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxIGlkPSJzcWwtYWx0ZXJ2YXJpYWJsZS1zZWUt YWxzbyI+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0i aW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+ PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48 L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2NvbW1lbnQuc2dtbAppbmRleCA1YjQzYzU2YjEzMy4uMjFjZDgwODE4ZmIgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29t bWVudC5zZ21sCkBAIC02NSw2ICs2NSw3IEBAIENPTU1FTlQgT04KICAgVFJBTlNGT1JNIEZPUiA8 cmVwbGFjZWFibGU+dHlwZV9uYW1lPC9yZXBsYWNlYWJsZT4gTEFOR1VBR0UgPHJlcGxhY2VhYmxl PmxhbmdfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFJJR0dFUiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFRZUEUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAorICBW QVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxh Y2VhYmxlPiB8CiAgIFZJRVcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9u YW1lPC9yZXBsYWNlYWJsZT4KIH0gSVMgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c3RyaW5nX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiB8IE5VTEwgfQogCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3NjaGVtYS5zZ21sCmluZGV4IGVkNjkyOThjY2M2Li5hODM0Yzg3NmJjOSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfc2NoZW1hLnNnbWwKQEAgLTEwMyw5ICsxMDMsMTAgQEAgQ1JFQVRFIFNDSEVNQSBJ RiBOT1QgRVhJU1RTIEFVVEhPUklaQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJvbGVfc3AKICAgICAgICAgc2NoZW1hLiBDdXJyZW50bHksIG9ubHkgPGNvbW1hbmQ+Q1JFQVRF CiAgICAgICAgIFRBQkxFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFZJRVc8L2NvbW1hbmQ+ LCA8Y29tbWFuZD5DUkVBVEUKICAgICAgICAgSU5ERVg8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVB VEUgU0VRVUVOQ0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUKLSAgICAgICAgVFJJR0dFUjwv Y29tbWFuZD4gYW5kIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhcmUgYWNjZXB0ZWQgYXMgY2xh dXNlcwotICAgICAgICB3aXRoaW4gPGNvbW1hbmQ+Q1JFQVRFIFNDSEVNQTwvY29tbWFuZD4uIE90 aGVyIGtpbmRzIG9mIG9iamVjdHMgbWF5Ci0gICAgICAgIGJlIGNyZWF0ZWQgaW4gc2VwYXJhdGUg Y29tbWFuZHMgYWZ0ZXIgdGhlIHNjaGVtYSBpcyBjcmVhdGVkLgorICAgICAgICBUUklHR0VSPC9j b21tYW5kPiwgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5DUkVBVEUKKyAg ICAgICAgVkFSSUFCTEU8L2NvbW1hbmQ+IGFyZSBhY2NlcHRlZCBhcyBjbGF1c2VzIHdpdGhpbiA8 Y29tbWFuZD5DUkVBVEUKKyAgICAgICAgU0NIRU1BPC9jb21tYW5kPi4gT3RoZXIga2luZHMgb2Yg b2JqZWN0cyBtYXkgYmUgY3JlYXRlZCBpbiBzZXBhcmF0ZQorICAgICAgICBjb21tYW5kcyBhZnRl ciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQuCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRl bT4KICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dt bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWMxNjVhYjk2ZmMKLS0t IC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBA IC0wLDAgKzEsMTUxIEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5z Z21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1j cmVhdGV2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtY3JlYXRldmFyaWFibGUiPgor ICA8cHJpbWFyeT5DUkVBVEUgVkFSSUFCTEU8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8 aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vj b25kYXJ5PmRlZmluaW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4K KyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFu dm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRl bWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVm bmFtZT5DUkVBVEUgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhIHNl c3Npb24gdmFyaWFibGU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9w c2lzZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRFIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsg Q09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNl YWJsZT4gXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5D UkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgY3JlYXRlcyBhIHNlc3Npb24gdmFyaWFi bGUuCisgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlrZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhpbiBh IHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzIGlzCisgICBjb250cm9sbGVkIHZpYSB0aGUgY29tbWFu ZHMgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5SRVZPS0U8L2NvbW1hbmQ+ LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlh YmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uICBSZXRyaWV2aW5nCisgICBhIHNl c3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMg c2V0IHRvCisgICBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCisgICBUaGUgY29udGVudCBvZiBhIHNlc3Np b24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKKyAg IHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8Y29t bWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CisgICBjb21tYW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdp dGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4KKyAgPC9wYXJhPgorCisgIDxu b3RlPgorICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIDxxdW90ZT5zaGFk b3dlZDwvcXVvdGU+IGJ5IG90aGVyIGlkZW50aWZpZXJzLgorICAgIEZvciBkZXRhaWxzLCBzZWUg PHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgorICAgPC9wYXJhPgorICA8 L25vdGU+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8 L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisKKyAgIDx2YXJsaXN0ZW50cnkgIGlkPSJzcWwt Y3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgTk9U IEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgbmFtZSBhbHJlYWR5IGV4aXN0cy4gQSBu b3RpY2UgaXMgaXNzdWVkIGluCisgICAgICB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNx bC1jcmVhdGV2YXJpYWJsZS1uYW1lIj4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxl LWRhdGFfdHlwZSI+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRh dGFfdHlwZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiB0aGUgZGF0 YSB0eXBlIG9mIHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0i c3FsLWNyZWF0ZXZhcmlhYmxlLWNvbGxhdGUiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkNPTExBVEUg PHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+PC9saXRlcmFsPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPkNPTExBVEU8L2xp dGVyYWw+IGNsYXVzZSBhc3NpZ25zIGEgY29sbGF0aW9uIHRvIHRoZSBzZXNzaW9uCisgICAgICB2 YXJpYWJsZSAod2hpY2ggbXVzdCBiZSBvZiBhIGNvbGxhdGFibGUgZGF0YSB0eXBlKS4gIElmIG5v dCBzcGVjaWZpZWQsCisgICAgICB0aGUgZGF0YSB0eXBlJ3MgZGVmYXVsdCBjb2xsYXRpb24gaXMg dXNlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KworICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVXNlIHRoZSA8Y29tbWFuZD5EUk9QIFZB UklBQkxFPC9jb21tYW5kPiBjb21tYW5kIHRvIHJlbW92ZSBhIHNlc3Npb24KKyAgIHZhcmlhYmxl LgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1w bGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIENyZWF0ZSBhbiBkYXRlIHNlc3Npb24gdmFyaWFi bGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBkYXRlOworTEVUIHZhcjEgPSBjdXJyZW50X2RhdGU7CitTRUxFQ1QgdmFy MTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+CisKKyA8cmVm c2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRo ZSA8Y29tbWFuZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHBy b2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgor CisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2Vj dDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFy aWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YmRiMzU2MGYwYgotLS0gL2Rldi9udWxs CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTE3 IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNR TCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtZHJvcHZhcmlhYmxlIj4K KyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1kcm9wdmFyaWFibGUiPgorICA8cHJpbWFyeT5EUk9QIFZB UklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1h cnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5yZW1vdmluZzwvc2Vj b25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkRS T1AgVkFSSUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgor ICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+Cisg PC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkRST1AgVkFSSUFCTEU8L3Jl Zm5hbWU+CisgIDxyZWZwdXJwb3NlPnJlbW92ZSBhIHNlc3Npb24gdmFyaWFibGU8L3JlZnB1cnBv c2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorRFJP UCBWQVJJQUJMRSBbIElGIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIENBU0NBREUgfCBSRVNUUklDVCBdCis8L3N5bm9w c2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlw dGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21t YW5kPiByZW1vdmVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIEEgc2Vzc2lvbiB2YXJpYWJsZSBj YW4gb25seSBiZSByZW1vdmVkIGJ5IGl0cyBvd25lciBvciBhIHN1cGVydXNlci4KKyAgPC9wYXJh PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRs ZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0 ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUg ZG9lcyBub3QgZXhpc3QuIEEgbm90aWNlIGlzCisgICAgICBpc3N1ZWQgaW4gdGhpcyBjYXNlLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIGEgc2Vzc2lvbiB2 YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5DQVNDQURFPC9saXRl cmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQXV0b21hdGlj YWxseSBkcm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKHN1 Y2ggYXMKKyAgICAgIHZpZXdzKSwgYW5kIGluIHR1cm4gYWxsIG9iamVjdHMgdGhhdCBkZXBlbmQg b24gdGhvc2Ugb2JqZWN0cworICAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtZGVwZW5kIi8+ KS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRVNUUklDVDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJlZnVzZSB0byBkcm9w IHRoZSBzZXNzaW9uIHZhcmlhYmxlIGlmIGFueSBvYmplY3RzIGRlcGVuZCBvbiBpdC4gIFRoaXMg aXMKKyAgICAgIHRoZSBkZWZhdWx0LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAg IDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVG8gcmVt b3ZlIHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xpdGVyYWw+OgorCis8cHJv Z3JhbWxpc3Rpbmc+CitEUk9QIFZBUklBQkxFIHZhcjE7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwv dGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+RFJPUCBWQVJJQUJMRTwvY29tbWFu ZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KKyAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+Cisg IDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21s CmluZGV4IDk5OWY2NTdkNWMwLi43OGZmMTBmY2Y1ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3JlZi9ncmFudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbApAQCAtMTAx LDYgKzEwMSwxMiBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9u YW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAgIFsgV0lUSCB7IEFETUlO IHwgSU5IRVJJVCB8IFNFVCB9IHsgT1BUSU9OIHwgVFJVRSB8IEZBTFNFIH0gXQogICAgIFsgR1JB TlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9u PC9yZXBsYWNlYWJsZT4gXQogCitHUkFOVCB7IFNFTEVDVCB8IFVQREFURSB8IEFMTCBbIFBSSVZJ TEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEUgPHJlcGxhY2VhYmxlPnZhcmlhYmxlX25hbWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi5dCisgICAgICAgfCBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAu Li5dIH0KKyAgICBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZp Y2F0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KKyAgICBb IEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNh dGlvbjwvcmVwbGFjZWFibGU+IF0KKwogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gY2FuIGJlOjwvcGhy YXNlPgogCiAgICAgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xl X25hbWU8L3JlcGxhY2VhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKaW5kZXggOGRmNDkyMjgxYTEuLjYy NmMwMjMxZDBkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKQEAgLTEzNyw2ICsxMzcsMTMgQEAgUkVWT0tF IFsgeyBBRE1JTiB8IElOSEVSSVQgfCBTRVQgfSBPUFRJT04gRk9SIF0KICAgfCBDVVJSRU5UX1JP TEUKICAgfCBDVVJSRU5UX1VTRVIKICAgfCBTRVNTSU9OX1VTRVIKKworUkVWT0tFIFsgR1JBTlQg T1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBBTEwgWyBQ UklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1l PC9yZXBsYWNlYWJsZT4gWywgLi4uXQorICAgICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4g WywgLi4uXSB9CisgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCisgICAgWyBD QVNDQURFIHwgUkVTVFJJQ1QgXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwKaW5kZXggZmY4NWFjZTgzZmMuLjI1NTc4ZjM5NDZjIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5z Z21sCkBAIC03NSw2ICs3NSw3IEBACiAgICAmYWx0ZXJUeXBlOwogICAgJmFsdGVyVXNlcjsKICAg ICZhbHRlclVzZXJNYXBwaW5nOworICAgJmFsdGVyVmFyaWFibGU7CiAgICAmYWx0ZXJWaWV3Owog ICAgJmFuYWx5emU7CiAgICAmYmVnaW47CkBAIC0xMjcsNiArMTI4LDcgQEAKICAgICZjcmVhdGVU eXBlOwogICAgJmNyZWF0ZVVzZXI7CiAgICAmY3JlYXRlVXNlck1hcHBpbmc7CisgICAmY3JlYXRl VmFyaWFibGU7CiAgICAmY3JlYXRlVmlldzsKICAgICZkZWFsbG9jYXRlOwogICAgJmRlY2xhcmU7 CkBAIC0xNzUsNiArMTc3LDcgQEAKICAgICZkcm9wVHlwZTsKICAgICZkcm9wVXNlcjsKICAgICZk cm9wVXNlck1hcHBpbmc7CisgICAmZHJvcFZhcmlhYmxlOwogICAgJmRyb3BWaWV3OwogICAgJmVu ZDsKICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmls ZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMTU4OWE3NWZkNTMuLjdhOTBm Y2ZjNDU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTQ1LDYgKzQ1LDcgQEAgT0JKUyA9IFwKIAlw Z19zaGRlcGVuZC5vIFwKIAlwZ19zdWJzY3JpcHRpb24ubyBcCiAJcGdfdHlwZS5vIFwKKwlwZ192 YXJpYWJsZS5vIFwKIAlzdG9yYWdlLm8gXAogCXRvYXN0aW5nLm8KIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMK aW5kZXggOTVlYjBiMTIyNzcuLjBkN2UxNmY3MDhhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTY0 LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5k cy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2 ZW50X3RyaWdnZXIuaCIKQEAgLTI5MSw2ICsyOTIsOSBAQCByZXN0cmljdF9hbmRfY2hlY2tfZ3Jh bnQoYm9vbCBpc19ncmFudCwgQWNsTW9kZSBhdmFpbF9nb3B0aW9ucywgYm9vbCBhbGxfcHJpdnMs CiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9S SUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK KwkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlk ZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCBv Ymp0eXBlKTsKIAkJCS8qIG5vdCByZWFjaGVkLCBidXQga2VlcCBjb21waWxlciBxdWlldCAqLwpA QCAtNTM1LDYgKzUzOSwxMCBAQCBFeGVjdXRlR3JhbnRTdG10KEdyYW50U3RtdCAqc3RtdCkKIAkJ CWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWVycm9y bXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBwYXJhbWV0 ZXIiKTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxl Z2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9v cCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJ YnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3Rt dC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQpIHN0bXQtPm9ianR5cGUpOwpAQCAtNjQwLDYgKzY0 OCw5IEBAIEV4ZWNHcmFudFN0bXRfb2lkcyhJbnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBP QkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCUV4ZWNHcmFudF9QYXJhbWV0ZXIoaXN0bXQpOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJRXhlY0dyYW50X2NvbW1vbihpc3Rt dCwgVmFyaWFibGVSZWxhdGlvbklkLCBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRSwgTlVMTCk7CisJ CQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRT dG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgaXN0bXQtPm9ianR5cGUpOwpAQCAtODMwLDYg Kzg0MSwxOCBAQCBvYmplY3ROYW1lc1RvT2lkcyhPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9i am5hbWVzLCBib29sIGlzX2dyYW50KQogCQkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0 cywgcGFyYW1ldGVySWQpOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxF OgorCQkJZm9yZWFjaChjZWxsLCBvYmpuYW1lcykKKwkJCXsKKwkJCQlSYW5nZVZhciAgICp2YXJ2 YXIgPSAoUmFuZ2VWYXIgKikgbGZpcnN0KGNlbGwpOworCQkJCU9pZAkJCXJlbE9pZDsKKworCQkJ CXJlbE9pZCA9IExvb2t1cFZhcmlhYmxlKHZhcnZhci0+c2NoZW1hbmFtZSwKKwkJCQkJCQkJCQl2 YXJ2YXItPnJlbG5hbWUsCisJCQkJCQkJCQkJZmFsc2UpOworCQkJCW9iamVjdHMgPSBsYXBwZW5k X29pZChvYmplY3RzLCByZWxPaWQpOworCQkJfQorCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQll bG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChp bnQpIG9ianR5cGUpOwpAQCAtOTE5LDYgKzk0MiwzMiBAQCBvYmplY3RzSW5TY2hlbWFUb09pZHMo T2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpuc3BuYW1lcykKIAkJCQkJdGFibGVfY2xvc2UocmVs LCBBY2Nlc3NTaGFyZUxvY2spOwogCQkJCX0KIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZB UklBQkxFOgorCQkJCXsKKwkJCQkJU2NhbktleURhdGEga2V5OworCQkJCQlSZWxhdGlvbglyZWw7 CisJCQkJCVRhYmxlU2NhbkRlc2Mgc2NhbjsKKwkJCQkJSGVhcFR1cGxlCXR1cGxlOworCisJCQkJ CVNjYW5LZXlJbml0KCZrZXksCisJCQkJCQkJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNl LAorCQkJCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCQkJCU9iamVj dElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKworCQkJCQlyZWwgPSB0YWJsZV9vcGVuKFZhcmlh YmxlUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQkJc2NhbiA9IHRhYmxlX2JlZ2lu c2Nhbl9jYXRhbG9nKHJlbCwgMSwgJmtleSk7CisKKwkJCQkJd2hpbGUgKCh0dXBsZSA9IGhlYXBf Z2V0bmV4dChzY2FuLCBGb3J3YXJkU2NhbkRpcmVjdGlvbikpICE9IE5VTEwpCisJCQkJCXsKKwkJ CQkJCU9pZAkJCW9pZCA9ICgoRm9ybV9wZ19wcm9jKSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lkOwor CisJCQkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgb2lkKTsKKwkJCQkJfQorCisJ CQkJCXRhYmxlX2VuZHNjYW4oc2Nhbik7CisJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hh cmVMb2NrKTsKKwkJCQl9CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIHNob3VsZCBu b3QgaGFwcGVuICovCiAJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2Jq dHlwZTogJWQiLApAQCAtMTA3OCw2ICsxMTI3LDEwIEBAIEV4ZWNBbHRlckRlZmF1bHRQcml2aWxl Z2VzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10ICpz CiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1NDSEVNQTsKIAkJCWVycm9ybXNn ID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzY2hlbWEiKTsK IAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0g QUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52 YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7 CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0 eXBlOiAlZCIsCiAJCQkJIChpbnQpIGFjdGlvbi0+b2JqdHlwZSk7CkBAIC0xMjY5LDYgKzEzMjIs MTIgQEAgU2V0RGVmYXVsdEFDTChJbnRlcm5hbERlZmF1bHRBQ0wgKmlhY2xzKQogCQkJCXRoaXNf cHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1NDSEVNQTsKIAkJCWJyZWFrOwogCisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgorCQkJb2JqdHlwZSA9IERFRkFDTE9CSl9WQVJJQUJMRTsKKwkJCWlm IChpYWNscy0+YWxsX3ByaXZzICYmIHRoaXNfcHJpdmlsZWdlcyA9PSBBQ0xfTk9fUklHSFRTKQor CQkJCXRoaXNfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7 CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6 ICVkIiwKIAkJCQkgKGludCkgaWFjbHMtPm9ianR5cGUpOwpAQCAtMTUxMiw2ICsxNTcxLDkgQEAg UmVtb3ZlUm9sZUZyb21PYmplY3RBQ0woT2lkIHJvbGVpZCwgT2lkIGNsYXNzaWQsIE9pZCBvYmpp ZCkKIAkJCWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToKIAkJCQlpYWNscy5vYmp0eXBlID0gT0JK RUNUX1NDSEVNQTsKIAkJCQlicmVhazsKKwkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJ CWlhY2xzLm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0 OgogCQkJCS8qIFNob3VsZG4ndCBnZXQgaGVyZSAqLwogCQkJCWVsb2coRVJST1IsICJ1bmV4cGVj dGVkIGRlZmF1bHQgQUNMIHR5cGU6ICVkIiwKQEAgLTE1NzIsNiArMTYzNCw5IEBAIFJlbW92ZVJv bGVGcm9tT2JqZWN0QUNMKE9pZCByb2xlaWQsIE9pZCBjbGFzc2lkLCBPaWQgb2JqaWQpCiAJCQlj YXNlIFBhcmFtZXRlckFjbFJlbGF0aW9uSWQ6CiAJCQkJaXN0bXQub2JqdHlwZSA9IE9CSkVDVF9Q QVJBTUVURVJfQUNMOwogCQkJCWJyZWFrOworCQkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJ CQkJaXN0bXQub2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQlicmVhazsKIAkJCWRlZmF1 bHQ6CiAJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgb2JqZWN0IGNsYXNzICV1IiwgY2xhc3Np ZCk7CiAJCQkJYnJlYWs7CkBAIC0yODEzLDYgKzI4NzgsOSBAQCBhY2xjaGVja19lcnJvcihBY2xS ZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX1RZUEU6 CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciB0eXBlICVz Iik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJCQltc2cg PSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICVz Iik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfVklFVzoKIAkJCQkJCW1zZyA9IGdl dHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIHZpZXcgJXMiKTsKIAkJCQkJCWJyZWFr OwpAQCAtMjkyNCw2ICsyOTkyLDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwg T2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0g Z2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHR5cGUgJXMiKTsKIAkJCQkJCWJyZWFrOwor CQkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVz dCBiZSBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxlICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJ Y2FzZSBPQkpFQ1RfVklFVzoKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25l ciBvZiB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTMwNzIsNiArMzE0Myw4IEBAIHBnX2Fj bG1hc2soT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb2JqZWN0X29pZCwgQXR0ck51bWJlciBhdHRu dW0sIE9pZCByb2xlaWQsCiAJCQlyZXR1cm4gQUNMX05PX1JJR0hUUzsKIAkJY2FzZSBPQkpFQ1Rf VFlQRToKIAkJCXJldHVybiBvYmplY3RfYWNsbWFzayhUeXBlUmVsYXRpb25JZCwgb2JqZWN0X29p ZCwgcm9sZWlkLCBtYXNrLCBob3cpOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVy biBvYmplY3RfYWNsbWFzayhWYXJpYWJsZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwg bWFzaywgaG93KTsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2Jq ZWN0IHR5cGU6ICVkIiwKIAkJCQkgKGludCkgb2JqdHlwZSk7CkBAIC00MzM5LDYgKzQ0MTIsMTAg QEAgZ2V0X3VzZXJfZGVmYXVsdF9hY2woT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCwg T2lkIG5zcF9vaWQpCiAJCQlkZWZhY2xvYmp0eXBlID0gREVGQUNMT0JKX05BTUVTUEFDRTsKIAkJ CWJyZWFrOwogCisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJZGVmYWNsb2JqdHlwZSA9IERF RkFDTE9CSl9WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVM TDsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IDA0ODljYmFiY2I4Li5jOWQ2ODY2 NjVkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTY1LDEyICs2NSwxNCBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dl ci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V4dGVuc2lvbi5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3BvbGljeS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oIgorI2luY2x1 ZGUgImNvbW1hbmRzL3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5o IgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJp Z2dlci5oIgpAQCAtMTQ0NCw2ICsxNDQ2LDEwIEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LCBpbnQgZmxhZ3MpCiAJCQlSZW1vdmVQdWJsaWNhdGlvbkJ5SWQob2JqZWN0 LT5vYmplY3RJZCk7CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJ CURyb3BWYXJpYWJsZUJ5SWQob2JqZWN0LT5vYmplY3RJZCk7CisJCQlicmVhazsKKwogCQljYXNl IENhc3RSZWxhdGlvbklkOgogCQljYXNlIENvbGxhdGlvblJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29u dmVyc2lvblJlbGF0aW9uSWQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29u LmJ1aWxkIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCAyZjNkZWQ4YTBl Ny4uYmZkYjRkYTMzMDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVp bGQKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtMzIsNiArMzIsNyBA QCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdwZ19zaGRlcGVuZC5jJywKICAgJ3BnX3N1 YnNjcmlwdGlvbi5jJywKICAgJ3BnX3R5cGUuYycsCisgICdwZ192YXJpYWJsZS5jJywKICAgJ3N0 b3JhZ2UuYycsCiAgICd0b2FzdGluZy5jJywKICkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4 IDMwODA3ZjkxOTA0Li44NmUyMjU4NjU3ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC00 MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Ri Y29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tb24vaGFzaGZuX3Vuc3RhYmxlLmgiCiAjaW5jbHVk ZSAiZnVuY2FwaS5oIgpAQCAtOTg2LDYgKzk4Nyw2NyBAQCBSZWxhdGlvbklzVmlzaWJsZUV4dChP aWQgcmVsaWQsIGJvb2wgKmlzX21pc3NpbmcpCiAJcmV0dXJuIHZpc2libGU7CiB9CiAKKy8qCisg KiBWYXJpYWJsZUlzVmlzaWJsZQorICoJCURldGVybWluZSB3aGV0aGVyIGEgdmFyaWFibGUgKGlk ZW50aWZpZWQgYnkgT0lEKSBpcyB2aXNpYmxlIGluIHRoZQorICoJCWN1cnJlbnQgc2VhcmNoIHBh dGguIFZpc2libGUgbWVhbnMgIndvdWxkIGJlIGZvdW5kIGJ5IHNlYXJjaGluZworICoJCWZvciB0 aGUgdW5xdWFsaWZpZWQgdmFyaWFibGUgbmFtZSIuCisgKi8KK2Jvb2wKK1ZhcmlhYmxlSXNWaXNp YmxlKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdmFydHVwOworCUZvcm1fcGdfdmFyaWFibGUg dmFyZm9ybTsKKwlPaWQJCQl2YXJuYW1lc3BhY2U7CisJYm9vbAkJdmlzaWJsZTsKKworCXZhcnR1 cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkp OworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh2YXJ0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUg bG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKwl2YXJmb3Jt ID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh2YXJ0dXApOworCisJcmVjb21wdXRlTmFt ZXNwYWNlUGF0aCgpOworCisJLyoKKwkgKiBRdWljayBjaGVjazogaWYgaXQgYWluJ3QgaW4gdGhl IHBhdGggYXQgYWxsLCBpdCBhaW4ndCB2aXNpYmxlLiBXZQorCSAqIGRvbid0IGV4cGVjdCB1c2Fn ZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGUgc3lzdGVtIG5hbWVzcGFjZS4KKwkgKi8KKwl2 YXJuYW1lc3BhY2UgPSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisJaWYgKCFsaXN0X21lbWJlcl9v aWQoYWN0aXZlU2VhcmNoUGF0aCwgdmFybmFtZXNwYWNlKSkKKwkJdmlzaWJsZSA9IGZhbHNlOwor CWVsc2UKKwl7CisJCS8qCisJCSAqIElmIGl0IGlzIGluIHRoZSBwYXRoLCBpdCBtaWdodCBzdGls bCBub3QgYmUgdmlzaWJsZTsgaXQgY291bGQgYmUKKwkJICogaGlkZGVuIGJ5IGFub3RoZXIgdmFy aWFibGUgb2YgdGhlIHNhbWUgbmFtZSBlYXJsaWVyIGluIHRoZSBwYXRoLiBTbworCQkgKiB3ZSBt dXN0IGRvIGEgc2xvdyBjaGVjayBmb3IgY29uZmxpY3RpbmcgcmVsYXRpb25zLgorCQkgKi8KKwkJ Y2hhcgkgICAqdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisJCUxpc3RDZWxs ICAgKmw7CisKKwkJdmlzaWJsZSA9IGZhbHNlOworCQlmb3JlYWNoKGwsIGFjdGl2ZVNlYXJjaFBh dGgpCisJCXsKKwkJCU9pZAkJCW5hbWVzcGFjZUlkID0gbGZpcnN0X29pZChsKTsKKworCQkJaWYg KG5hbWVzcGFjZUlkID09IHZhcm5hbWVzcGFjZSkKKwkJCXsKKwkJCQkvKiBmb3VuZCBpdCBmaXJz dCBpbiBwYXRoICovCisJCQkJdmlzaWJsZSA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9CisJCQlp ZiAoT2lkSXNWYWxpZChnZXRfdmFybmFtZV92YXJpZCh2YXJuYW1lLCBuYW1lc3BhY2VJZCkpKQor CQkJeworCQkJCS8qIGZvdW5kIHNvbWV0aGluZyBlbHNlIGZpcnN0IGluIHBhdGggKi8KKwkJCQli cmVhazsKKwkJCX0KKwkJfQorCX0KKworCVJlbGVhc2VTeXNDYWNoZSh2YXJ0dXApOworCisJcmV0 dXJuIHZpc2libGU7Cit9CiAKIC8qCiAgKiBUeXBlbmFtZUdldFR5cGlkCkBAIC0zMjg5LDYgKzMz NTEsNjYgQEAgVFNDb25maWdJc1Zpc2libGVFeHQoT2lkIGNmZ2lkLCBib29sICppc19taXNzaW5n KQogCXJldHVybiB2aXNpYmxlOwogfQogCisvKgorICogUmV0dXJucyBvaWQgb2Ygc2Vzc2lvbiB2 YXJpYWJsZSBzcGVjaWZpZWQgYnkgcG9zc2libHkgcXVhbGlmaWVkIGlkZW50aWZpZXIuCisgKgor ICogSWYgbm90IGZvdW5kLCByZXR1cm5zIEludmFsaWRPaWQgaWYgbWlzc2luZ19vaywgZWxzZSB0 aHJvd3MgZXJyb3IuCisgKi8KK09pZAorTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFt ZSwKKwkJCSAgIGNvbnN0IGNoYXIgKnZhcm5hbWUsCisJCQkgICBib29sIG1pc3Npbmdfb2spCit7 CisJT2lkCQkJbmFtZXNwYWNlSWQ7CisJT2lkCQkJdmFyb2lkID0gSW52YWxpZE9pZDsKKwlMaXN0 Q2VsbCAgICpsOworCisJaWYgKG5zcG5hbWUpCisJeworCQluYW1lc3BhY2VJZCA9IExvb2t1cEV4 cGxpY2l0TmFtZXNwYWNlKG5zcG5hbWUsIG1pc3Npbmdfb2spOworCisJCS8qIGlmIG5zcG5hbWUg aXMgYSBrbm93biBuYW1lc3BhY2UsIHRoZSB2YXJpYWJsZSBtdXN0IGJlIHRoZXJlICovCisJCWlm IChPaWRJc1ZhbGlkKG5hbWVzcGFjZUlkKSkKKwkJeworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVP aWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9p bnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNw YWNlSWQpKTsKKwkJfQorCX0KKwllbHNlCisJeworCQkvKiBpdGVyYXRlIG92ZXIgdGhlIHNjaGVt YXMgb24gdGhlIHNlYXJjaF9wYXRoICovCisJCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKwor CQlmb3JlYWNoKGwsIGFjdGl2ZVNlYXJjaFBhdGgpCisJCXsKKwkJCW5hbWVzcGFjZUlkID0gbGZp cnN0X29pZChsKTsKKworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5T UCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHZhcm5h bWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKworCQkJaWYg KE9pZElzVmFsaWQodmFyb2lkKSkKKwkJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghT2lkSXNW YWxpZCh2YXJvaWQpICYmICFtaXNzaW5nX29rKQorCXsKKwkJaWYgKG5zcG5hbWUpCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJ CQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJ CQkJCQkJbnNwbmFtZSwgdmFybmFtZSkpKTsKKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vz c2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXZhcm5hbWUpKSk7 CisJfQorCisJcmV0dXJuIHZhcm9pZDsKK30KIAogLyoKICAqIERlY29uc3RydWN0UXVhbGlmaWVk TmFtZQpAQCAtNTA4NSwzICs1MjA3LDE0IEBAIHBnX2lzX290aGVyX3RlbXBfc2NoZW1hKFBHX0ZV TkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fQk9PTChpc090aGVyVGVtcE5hbWVzcGFjZShvaWQp KTsKIH0KKworRGF0dW0KK3BnX3ZhcmlhYmxlX2lzX3Zpc2libGUoUEdfRlVOQ1RJT05fQVJHUykK K3sKKwlPaWQJCQlvaWQgPSBQR19HRVRBUkdfT0lEKDApOworCisJaWYgKCFTZWFyY2hTeXNDYWNo ZUV4aXN0czEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0ob2lkKSkpCisJCVBHX1JFVFVS Tl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChWYXJpYWJsZUlzVmlzaWJsZShvaWQpKTsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKaW5kZXggODVhN2I3ZTY0MWEuLmVlNzBlZWVl ZDQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtNjIsNiArNjIsNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3R5cGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRf dHJpZ2dlci5oIgpAQCAtNjM2LDYgKzYzNywyMCBAQCBzdGF0aWMgY29uc3QgT2JqZWN0UHJvcGVy dHlUeXBlIE9iamVjdFByb3BlcnR5W10gPQogCQlPQkpFQ1RfVVNFUl9NQVBQSU5HLAogCQlmYWxz ZQogCX0sCisJeworCQkic2Vzc2lvbiB2YXJpYWJsZSIsCisJCVZhcmlhYmxlUmVsYXRpb25JZCwK KwkJVmFyaWFibGVPaWRJbmRleElkLAorCQlWQVJJQUJMRU9JRCwKKwkJVkFSSUFCTEVOQU1FTlNQ LAorCQlBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJuYW1lLAor CQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJv d25lciwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJhY2wsCisJCU9CSkVDVF9WQVJJQUJMRSwKKwkJ dHJ1ZQorCX0KIH07CiAKIC8qCkBAIC04MzEsNiArODQ2LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBvYmplY3RfdHlwZV9tYXAKIAl9LAogCXsKIAkJInN0YXRpc3RpY3Mgb2JqZWN0IiwgT0JKRUNU X1NUQVRJU1RJQ19FWFQKKwl9LAorCXsKKwkJInNlc3Npb24gdmFyaWFibGUiLCBPQkpFQ1RfVkFS SUFCTEUKIAl9CiB9OwogCkBAIC04NTYsNiArODc0LDcgQEAgc3RhdGljIE9iamVjdEFkZHJlc3Mg Z2V0X29iamVjdF9hZGRyZXNzX2F0dHJkZWYoT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQkJCQkJ CQkJYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRk cmVzc190eXBlKE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJCQkJCQkJIFR5cGVOYW1lICp0eXBl bmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKK3N0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3Rf YWRkcmVzc192YXJpYWJsZShMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMg T2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3Nfb3BjZihPYmplY3RUeXBlIG9ianR5cGUs IExpc3QgKm9iamVjdCwKIAkJCQkJCQkJCQkJIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2Jq ZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3Nfb3BmX21lbWJlcihPYmplY3RUeXBlIG9ianR5 cGUsCkBAIC0xMTI2LDYgKzExNDUsOSBAQCBnZXRfb2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBv Ymp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQkJCQkJCQkJCQkJCQkgbWlzc2luZ19vayk7CiAJCQkJ YWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJ QUJMRToKKwkJCQlhZGRyZXNzID0gZ2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxlKGNhc3ROb2Rl KExpc3QsIG9iamVjdCksIG1pc3Npbmdfb2spOworCQkJCWJyZWFrOwogCQkJCS8qIG5vIGRlZmF1 bHQsIHRvIGxldCBjb21waWxlciB3YXJuIGFib3V0IG1pc3NpbmcgY2FzZSAqLwogCQl9CiAKQEAg LTIwMDAsMTYgKzIwMjIsMjAgQEAgZ2V0X29iamVjdF9hZGRyZXNzX2RlZmFjbChMaXN0ICpvYmpl Y3QsIGJvb2wgbWlzc2luZ19vaykKIAkJY2FzZSBERUZBQ0xPQkpfTkFNRVNQQUNFOgogCQkJb2Jq dHlwZV9zdHIgPSAic2NoZW1hcyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFC TEU6CisJCQlvYmp0eXBlX3N0ciA9ICJ2YXJpYWJsZXMiOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6 CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1F VEVSX1ZBTFVFKSwKIAkJCQkJIGVycm1zZygidW5yZWNvZ25pemVkIGRlZmF1bHQgQUNMIG9iamVj dCB0eXBlIFwiJWNcIiIsIG9ianR5cGUpLAotCQkJCQkgZXJyaGludCgiVmFsaWQgb2JqZWN0IHR5 cGVzIGFyZSBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4iLAorCQkJCQkg ZXJyaGludCgiVmFsaWQgb2JqZWN0IHR5cGVzIGFyZSBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBc IiVjXCIsIFwiJWNcIiwgXCIlY1wiLiIsCiAJCQkJCQkJIERFRkFDTE9CSl9SRUxBVElPTiwKIAkJ CQkJCQkgREVGQUNMT0JKX1NFUVVFTkNFLAogCQkJCQkJCSBERUZBQ0xPQkpfRlVOQ1RJT04sCiAJ CQkJCQkJIERFRkFDTE9CSl9UWVBFLAotCQkJCQkJCSBERUZBQ0xPQkpfTkFNRVNQQUNFKSkpOwor CQkJCQkJCSBERUZBQ0xPQkpfTkFNRVNQQUNFLAorCQkJCQkJCSBERUZBQ0xPQkpfVkFSSUFCTEUp KSk7CiAJfQogCiAJLyoKQEAgLTIwOTMsNiArMjExOSwyNCBAQCB0ZXh0YXJyYXlfdG9fc3RydmFs dWVsaXN0KEFycmF5VHlwZSAqYXJyKQogCXJldHVybiBsaXN0OwogfQogCisvKgorICogRmluZCB0 aGUgT2JqZWN0QWRkcmVzcyBmb3IgYSBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyBPYmpl Y3RBZGRyZXNzCitnZXRfb2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29s IG1pc3Npbmdfb2spCit7CisJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOworCWNoYXIJICAgKm5zcG5h bWUgPSBOVUxMOworCWNoYXIJICAgKnZhcm5hbWUgPSBOVUxMOworCisJT2JqZWN0QWRkcmVzc1Nl dChhZGRyZXNzLCBWYXJpYWJsZVJlbGF0aW9uSWQsIEludmFsaWRPaWQpOworCisJRGVjb25zdHJ1 Y3RRdWFsaWZpZWROYW1lKG9iamVjdCwgJm5zcG5hbWUsICZ2YXJuYW1lKTsKKwlhZGRyZXNzLm9i amVjdElkID0gTG9va3VwVmFyaWFibGUobnNwbmFtZSwgdmFybmFtZSwgbWlzc2luZ19vayk7CisK KwlyZXR1cm4gYWRkcmVzczsKK30KKwogLyoKICAqIFNRTC1jYWxsYWJsZSB2ZXJzaW9uIG9mIGdl dF9vYmplY3RfYWRkcmVzcwogICovCkBAIC0yMjg3LDYgKzIzMzEsNyBAQCBwZ19nZXRfb2JqZWN0 X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJY2FzZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoK IAkJY2FzZSBPQkpFQ1RfT1BDTEFTUzoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgogCQkJb2Jqbm9kZSA9IChOb2RlICopIG5hbWU7CiAJCQlicmVhazsK IAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKQEAgLTI0NTgsNiArMjUwMyw3IEBAIGNoZWNr X29iamVjdF9vd25lcnNoaXAoT2lkIHJvbGVpZCwgT2JqZWN0VHlwZSBvYmp0eXBlLCBPYmplY3RB ZGRyZXNzIGFkZHJlc3MsCiAJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCWNhc2UgT0JK RUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOgorCQljYXNl IE9CSkVDVF9WQVJJQUJMRToKIAkJCWlmICghb2JqZWN0X293bmVyY2hlY2soYWRkcmVzcy5jbGFz c0lkLCBhZGRyZXNzLm9iamVjdElkLCByb2xlaWQpKQogCQkJCWFjbGNoZWNrX2Vycm9yKEFDTENI RUNLX05PVF9PV05FUiwgb2JqdHlwZSwKIAkJCQkJCQkgICBOYW1lTGlzdFRvU3RyaW5nKGNhc3RO b2RlKExpc3QsIG9iamVjdCkpKTsKQEAgLTM0NDYsNiArMzQ5MiwzMiBAQCBnZXRPYmplY3REZXNj cmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJ CQlicmVhazsKIAkJCX0KIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCXsKKwkJCQlj aGFyCSAgICpuc3BuYW1lOworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJpYWJs ZSB2YXJmb3JtOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmpl Y3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFs aWQodHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Np b24gdmFyaWFibGUgJXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFyZm9y bSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCWlmIChWYXJpYWJs ZUlzVmlzaWJsZShvYmplY3QtPm9iamVjdElkKSkKKwkJCQkJbnNwbmFtZSA9IE5VTEw7CisJCQkJ ZWxzZQorCQkJCQluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVz cGFjZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oInNlc3Npb24gdmFyaWFi bGUgJXMiKSwKKwkJCQkJCQkJIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsCisJ CQkJCQkJCQkJCQkJCQlOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpKSk7CisKKwkJCQlSZWxlYXNl U3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIFRTUGFyc2VyUmVsYXRp b25JZDoKIAkJCXsKIAkJCQlIZWFwVHVwbGUJdHVwOwpAQCAtMzc5OCw2ICszODcwLDE2IEBAIGdl dE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNz aW5nX29rKQogCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3IHNjaGVtYXMg YmVsb25naW5nIHRvIHJvbGUgJXMiKSwKIAkJCQkJCQkJCQkgcm9sZW5hbWUpOwogCQkJCQkJYnJl YWs7CisJCQkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCQkJaWYgKG5zcG5hbWUpCisJ CQkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLAorCQkJCQkJCQkJCQkgXygiZGVmYXVsdCBw cml2aWxlZ2VzIG9uIG5ldyBzZXNzaW9uIHZhcmlhYmxlcyBiZWxvbmdpbmcgdG8gcm9sZSAlcyBp biBzY2hlbWEgJXMiKSwKKwkJCQkJCQkJCQkJIHJvbGVuYW1lLCBuc3BuYW1lKTsKKwkJCQkJCWVs c2UKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZh dWx0IHByaXZpbGVnZXMgb24gbmV3IHNlc3Npb24gdmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xl ICVzIiksCisJCQkJCQkJCQkJCSByb2xlbmFtZSk7CisJCQkJCQlicmVhazsKIAkJCQkJZGVmYXVs dDoKIAkJCQkJCS8qIHNob3VsZG4ndCBnZXQgaGVyZSAqLwogCQkJCQkJaWYgKG5zcG5hbWUpCkBA IC00NjE0LDYgKzQ2OTYsMTAgQEAgZ2V0T2JqZWN0VHlwZURlc2NyaXB0aW9uKGNvbnN0IE9iamVj dEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZygmYnVmZmVyLCAidHJhbnNmb3JtIik7CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxl UmVsYXRpb25JZDoKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInNlc3Npb24g dmFyaWFibGUiKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5z dXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpAQCAtNTcy MCw2ICs1ODA2LDEwIEBAIGdldE9iamVjdElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0QWRkcmVz cyAqb2JqZWN0LAogCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAogCQkJCQkJ CQkJCQkgICAiIG9uIHNjaGVtYXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9C Sl9WQVJJQUJMRToKKwkJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJ CQkJCQkJICAgIiBvbiBzZXNzaW9uIHZhcmlhYmxlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJfQog CiAJCQkJaWYgKG9iam5hbWUpCkBAIC01OTYwLDYgKzYwNTAsMzMgQEAgZ2V0T2JqZWN0SWRlbnRp dHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQl9CiAJCQlicmVhazsKIAor CQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpzY2hlbWE7CisJ CQkJY2hhcgkgICAqdmFybmFtZTsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFy aWFibGUgdmFyZm9ybTsKKworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwg T2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJ c1ZhbGlkKHR1cCkpCisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBz ZXNzaW9uIHZhcmlhYmxlICV1IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZh cmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCQlzY2hlbWEg PSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCQkJ CXZhcm5hbWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJCQkJYXBwZW5kU3RyaW5n SW5mbygmYnVmZmVyLCAiJXMiLAorCQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIo c2NoZW1hLCB2YXJuYW1lKSk7CisKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBs aXN0X21ha2UyKHNjaGVtYSwgdmFybmFtZSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsK KwkJCQlicmVhazsKKwkJCX0KKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9y dGVkIG9iamVjdCBjbGFzczogJXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfc2hkZXBlbmQuYwppbmRleCA3NTNhZmI4ODQ1My4uMWVhM2Q2ZGIwNWMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYworKysgYi9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX3NoZGVwZW5kLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3RzX2RpY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFu ZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKQEAgLTE3MTQsNiArMTcxNSw3IEBA IHNoZGVwUmVhc3NpZ25Pd25lZF9Pd25lcihGb3JtX3BnX3NoZGVwZW5kIHNkZXBGb3JtLCBPaWQg bmV3cm9sZSkKIAkJY2FzZSBEYXRhYmFzZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxh dGlvbklkOgogCQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVS ZWxhdGlvbklkOgogCQkJQWx0ZXJPYmplY3RPd25lcl9pbnRlcm5hbChzZGVwRm9ybS0+Y2xhc3Np ZCwKIAkJCQkJCQkJCSAgc2RlcEZvcm0tPm9iamlkLAogCQkJCQkJCQkJICBuZXdyb2xlKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uZTNhODYxYzhjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3ZhcmlhYmxlLmMKQEAgLTAsMCArMSwyNTUgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoK KyAqIHBnX3ZhcmlhYmxlLmMKKyAqCQlzZXNzaW9uIHZhcmlhYmxlcworICoKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2 ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJCXNyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisK KyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcu aCIKKyNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2Jq ZWN0YWNjZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5o IgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hl LmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworc3RhdGljIE9iamVjdEFkZHJlc3Mg Y3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCisJCQkJCQkJCQkgT2lkIHZhck5h bWVzcGFjZSwKKwkJCQkJCQkJCSBPaWQgdmFyVHlwZSwKKwkJCQkJCQkJCSBpbnQzMiB2YXJUeXBt b2QsCisJCQkJCQkJCQkgT2lkIHZhck93bmVyLAorCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24s CisJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKworCisvKgorICogQ3JlYXRlcyBlbnRy eSBpbiBwZ192YXJpYWJsZSB0YWJsZQorICovCitzdGF0aWMgT2JqZWN0QWRkcmVzcworY3JlYXRl X3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCisJCQkJT2lkIHZhck5hbWVzcGFjZSwKKwkJ CQlPaWQgdmFyVHlwZSwKKwkJCQlpbnQzMiB2YXJUeXBtb2QsCisJCQkJT2lkIHZhck93bmVyLAor CQkJCU9pZCB2YXJDb2xsYXRpb24sCisJCQkJYm9vbCBpZl9ub3RfZXhpc3RzKQoreworCUFjbAkJ ICAgKnZhcmFjbDsKKwlOYW1lRGF0YQl2YXJuYW1lOworCWJvb2wJCW51bGxzW05hdHRzX3BnX3Zh cmlhYmxlXTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3ZhcmlhYmxlXTsKKwlSZWxhdGlvbgly ZWw7CisJSGVhcFR1cGxlCXR1cDsKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwlPYmplY3RBZGRyZXNz IG15c2VsZiwKKwkJCQlyZWZlcmVuY2VkOworCU9iamVjdEFkZHJlc3NlcyAqYWRkcnM7CisJT2lk CQkJdmFyaWQ7CisKKwlBc3NlcnQodmFyTmFtZSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyTmFt ZXNwYWNlKSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyVHlwZSkpOworCUFzc2VydChPaWRJc1Zh bGlkKHZhck93bmVyKSk7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRpb25JZCwg Um93RXhjbHVzaXZlTG9jayk7CisKKwkvKgorCSAqIENoZWNrIGZvciBkdXBsaWNhdGVzLiBOb3Rl IHRoYXQgdGhpcyBkb2VzIG5vdCByZWFsbHkgcHJldmVudAorCSAqIGR1cGxpY2F0ZXMsIGl0J3Mg aGVyZSBqdXN0IHRvIHByb3ZpZGUgbmljZXIgZXJyb3IgbWVzc2FnZSBpbiBjb21tb24KKwkgKiBj YXNlLiBUaGUgcmVhbCBwcm90ZWN0aW9uIGlzIHRoZSB1bmlxdWUga2V5IG9uIHRoZSBjYXRhbG9n LgorCSAqLworCWlmIChTZWFyY2hTeXNDYWNoZUV4aXN0czIoVkFSSUFCTEVOQU1FTlNQLAorCQkJ CQkJCSAgUG9pbnRlckdldERhdHVtKHZhck5hbWUpLAorCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1 bSh2YXJOYW1lc3BhY2UpKSkKKwl7CisJCWlmIChpZl9ub3RfZXhpc3RzKQorCQkJZXJlcG9ydChO T1RJQ0UsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBl cnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzLCBza2lwcGluZyIs CisJCQkJCQkJdmFyTmFtZSkpKTsKKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVy cmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2 YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJCXZhck5hbWUpKSk7CisKKwkJ dGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQlyZXR1cm4gSW52YWxpZE9i amVjdEFkZHJlc3M7CisJfQorCisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOwor CW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOworCisJbmFtZXN0cmNweSgmdmFy bmFtZSwgdmFyTmFtZSk7CisKKwl2YXJpZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFZhcmlh YmxlT2lkSW5kZXhJZCwgQW51bV9wZ192YXJpYWJsZV9vaWQpOworCisJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhcmlkKTsKKwl2YWx1ZXNbQW51 bV9wZ192YXJpYWJsZV92YXJuYW1lIC0gMV0gPSBOYW1lR2V0RGF0dW0oJnZhcm5hbWUpOworCXZh bHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1 bSh2YXJOYW1lc3BhY2UpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cGUgLSAxXSA9 IE9iamVjdElkR2V0RGF0dW0odmFyVHlwZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFy dHlwbW9kIC0gMV0gPSBJbnQzMkdldERhdHVtKHZhclR5cG1vZCk7CisJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFyb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyT3duZXIpOworCXZh bHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1 bSh2YXJDb2xsYXRpb24pOworCisJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9hY2woT0JKRUNU X1ZBUklBQkxFLCB2YXJPd25lciwKKwkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOworCWlmICh2YXJh Y2wgIT0gTlVMTCkKKwkJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyYWNsIC0gMV0gPSBQb2lu dGVyR2V0RGF0dW0odmFyYWNsKTsKKwllbHNlCisJCW51bGxzW0FudW1fcGdfdmFyaWFibGVfdmFy YWNsIC0gMV0gPSB0cnVlOworCisJdHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKTsKKwor CXR1cCA9IGhlYXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9n VHVwbGVJbnNlcnQocmVsLCB0dXApOworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwlh ZGRycyA9IG5ld19vYmplY3RfYWRkcmVzc2VzKCk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2Vs ZiwgVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIG5hbWVz cGFjZSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgTmFtZXNwYWNlUmVsYXRpb25J ZCwgdmFyTmFtZXNwYWNlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5jZWQs IGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gdXNlZCB0eXBlICovCisJT2JqZWN0QWRkcmVz c1NldChyZWZlcmVuY2VkLCBUeXBlUmVsYXRpb25JZCwgdmFyVHlwZSk7CisJYWRkX2V4YWN0X29i amVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIGNv bGxhdGlvbiAqLworCWlmIChPaWRJc1ZhbGlkKHZhckNvbGxhdGlvbikgJiYKKwkJdmFyQ29sbGF0 aW9uICE9IERFRkFVTFRfQ09MTEFUSU9OX09JRCkKKwl7CisJCU9iamVjdEFkZHJlc3NTZXQocmVm ZXJlbmNlZCwgQ29sbGF0aW9uUmVsYXRpb25JZCwgdmFyQ29sbGF0aW9uKTsKKwkJYWRkX2V4YWN0 X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisJfQorCisJcmVjb3JkX29iamVj dF9hZGRyZXNzX2RlcGVuZGVuY2llcygmbXlzZWxmLCBhZGRycywgREVQRU5ERU5DWV9OT1JNQUwp OworCWZyZWVfb2JqZWN0X2FkZHJlc3NlcyhhZGRycyk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIG93 bmVyICovCisJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJp ZCwgdmFyT3duZXIpOworCisJLyogZGVwZW5kZW5jaWVzIG9uIHJvbGVzIG1lbnRpb25lZCBpbiBk ZWZhdWx0IEFDTCAqLworCXJlY29yZERlcGVuZGVuY3lPbk5ld0FjbChWYXJpYWJsZVJlbGF0aW9u SWQsIHZhcmlkLCAwLCB2YXJPd25lciwgdmFyYWNsKTsKKworCS8qIGRlcGVuZGVuY3kgb24gZXh0 ZW5zaW9uICovCisJcmVjb3JkRGVwZW5kZW5jeU9uQ3VycmVudEV4dGVuc2lvbigmbXlzZWxmLCBm YWxzZSk7CisKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJLyogcG9zdCBjcmVhdGlvbiBob29r IGZvciBuZXcgZnVuY3Rpb24gKi8KKwlJbnZva2VPYmplY3RQb3N0Q3JlYXRlSG9vayhWYXJpYWJs ZVJlbGF0aW9uSWQsIHZhcmlkLCAwKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwlyZXR1cm4gbXlzZWxmOworfQorCisvKgorICogQ3JlYXRlcyBhIG5ldyB2YXJp YWJsZQorICoKKyAqIFVzZWQgYnkgQ1JFQVRFIFZBUklBQkxFIGNvbW1hbmQKKyAqLworT2JqZWN0 QWRkcmVzcworQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9u VmFyU3RtdCAqc3RtdCkKK3sKKwlPaWQJCQluYW1lc3BhY2VpZDsKKwlBY2xSZXN1bHQJYWNscmVz dWx0OworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBtb2Q7CisJT2lkCQkJdmFyb3duZXIgPSBH ZXRVc2VySWQoKTsKKwlPaWQJCQljb2xsYXRpb247CisJT2lkCQkJdHlwY29sbGF0aW9uOworCU9i amVjdEFkZHJlc3MgdmFyaWFibGU7CisKKwluYW1lc3BhY2VpZCA9CisJCVJhbmdlVmFyR2V0QW5k Q2hlY2tDcmVhdGlvbk5hbWVzcGFjZShzdG10LT52YXJpYWJsZSwgTm9Mb2NrLCBOVUxMKTsKKwor CXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBzdGF0ZSwgc3RtdC0+dHlwZU5hbWUsICZ0eXBpZCwgJnR5 cG1vZCk7CisKKwkvKiBkaXNhbGxvdyBwc2V1ZG90eXBlcyAqLworCWlmIChnZXRfdHlwdHlwZSh0 eXBpZCkgPT0gVFlQVFlQRV9QU0VVRE8pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJs ZSBjYW5ub3QgYmUgcHNldWRvLXR5cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQp KSkpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFR5cGVSZWxhdGlvbklkLCB0eXBp ZCwgR2V0VXNlcklkKCksIEFDTF9VU0FHRSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19P SykKKwkJYWNsY2hlY2tfZXJyb3JfdHlwZShhY2xyZXN1bHQsIHR5cGlkKTsKKworCXR5cGNvbGxh dGlvbiA9IGdldF90eXBjb2xsYXRpb24odHlwaWQpOworCisJaWYgKHN0bXQtPmNvbGxDbGF1c2Up CisJCWNvbGxhdGlvbiA9IExvb2t1cENvbGxhdGlvbihwc3RhdGUsCisJCQkJCQkJCQlzdG10LT5j b2xsQ2xhdXNlLT5jb2xsbmFtZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2UtPmxvY2F0aW9u KTsKKwllbHNlCisJCWNvbGxhdGlvbiA9IHR5cGNvbGxhdGlvbjs7CisKKwkvKiBjb21wbGFpbiBp ZiBDT0xMQVRFIGlzIGFwcGxpZWQgdG8gYW4gdW5jb2xsYXRhYmxlIHR5cGUgKi8KKwlpZiAoT2lk SXNWYWxpZChjb2xsYXRpb24pICYmICFPaWRJc1ZhbGlkKHR5cGNvbGxhdGlvbikpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJ IGVycm1zZygiY29sbGF0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBieSB0eXBlICVzIiwKKwkJCQkJ CWZvcm1hdF90eXBlX2JlKHR5cGlkKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUs IHN0bXQtPmNvbGxDbGF1c2UtPmxvY2F0aW9uKSkpOworCisJdmFyaWFibGUgPSBjcmVhdGVfdmFy aWFibGUoc3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsCisJCQkJCQkJICAgbmFtZXNwYWNlaWQsCisJ CQkJCQkJICAgdHlwaWQsCisJCQkJCQkJICAgdHlwbW9kLAorCQkJCQkJCSAgIHZhcm93bmVyLAor CQkJCQkJCSAgIGNvbGxhdGlvbiwKKwkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzKTsKKwor CWVsb2coREVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lkOiVk KSB3YXMgY3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCisJCSBzdG10LT52YXJpYWJsZS0+cmVsbmFt ZSwgdmFyaWFibGUub2JqZWN0SWQpOworCisJLyogd2Ugd2FudCBTZXNzaW9uVmFyaWFibGVDcmVh dGVQb3N0cHJvY2VzcyB0byBzZWUgdGhlIGNhdGFsb2cgY2hhbmdlcy4gKi8KKwlDb21tYW5kQ291 bnRlckluY3JlbWVudCgpOworCisJcmV0dXJuIHZhcmlhYmxlOworfQorCisvKgorICogRHJvcCB2 YXJpYWJsZSBieSBPSUQsIGFuZCByZWdpc3RlciB0aGUgbmVlZGVkIHNlc3Npb24gdmFyaWFibGUK KyAqIGNsZWFudXAuCisgKi8KK3ZvaWQKK0Ryb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQorewor CVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVwOworCisJcmVsID0gdGFibGVfb3BlbihWYXJp YWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJdHVwID0gU2VhcmNoU3lzQ2Fj aGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBU dXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJQ2F0YWxvZ1R1cGxlRGVsZXRlKHJlbCwgJnR1cC0+ dF9zZWxmKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJdGFibGVfY2xvc2UocmVsLCBS b3dFeGNsdXNpdmVMb2NrKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Fs dGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCmluZGV4IDRmOTllYmI0NDcwLi42 M2ZhOTlmYWQzNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ190c19kaWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvY29sbGF0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMu aCIKQEAgLTEzOSw2ICsxNDAsMTAgQEAgcmVwb3J0X25hbWVzcGFjZV9jb25mbGljdChPaWQgY2xh c3NJZCwgY29uc3QgY2hhciAqbmFtZSwgT2lkIG5zcE9pZCkKIAkJCUFzc2VydChPaWRJc1ZhbGlk KG5zcE9pZCkpOwogCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJ0ZXh0IHNlYXJjaCBjb25maWd1 cmF0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgXCIlc1wiIik7CiAJCQlicmVh azsKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BP aWQpKTsKKwkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIg YWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIGNsYXNzSWQp OwogCQkJYnJlYWs7CkBAIC00MTgsNiArNDIzLDcgQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3Rt dCAqc3RtdCkKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfUFVCTElD QVRJT046CiAJCWNhc2UgT0JKRUNUX1NVQlNDUklQVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CiAJCQl7CiAJCQkJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwogCQkJCVJlbGF0aW9uCWNhdGFs b2c7CkBAIC01NjEsNiArNTY3LDcgQEAgRXhlY0FsdGVyT2JqZWN0U2NoZW1hU3RtdChBbHRlck9i amVjdFNjaGVtYVN0bXQgKnN0bXQsCiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2Fz ZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CisJCWNhc2UgT0JK RUNUX1ZBUklBQkxFOgogCQkJewogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CiAJCQkJUmVsYXRpb24J cmVsYXRpb247CkBAIC02NDUsNiArNjUyLDcgQEAgQWx0ZXJPYmplY3ROYW1lc3BhY2Vfb2lkKE9p ZCBjbGFzc0lkLCBPaWQgb2JqaWQsIE9pZCBuc3BPaWQsCiAJCWNhc2UgVFNEaWN0aW9uYXJ5UmVs YXRpb25JZDoKIAkJY2FzZSBUU1RlbXBsYXRlUmVsYXRpb25JZDoKIAkJY2FzZSBUU0NvbmZpZ1Jl bGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgogCQkJewogCQkJCVJlbGF0aW9u CWNhdGFsb2c7CiAKQEAgLTg3NSw2ICs4ODMsNyBAQCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJP d25lclN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RBQkxFU1BBQ0U6CiAJCWNhc2UgT0JKRUNU X1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOgorCQljYXNlIE9C SkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlSZWxhdGlvbglyZWxhdGlvbjsKIAkJCQlPYmplY3RB ZGRyZXNzIGFkZHJlc3M7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwppbmRleCA4NWVlYzdlMzk0Ny4u M2NjZTE3ZTkyYWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwpAQCAtNDc2LDYgKzQ3NiwxMCBA QCBkb2VzX25vdF9leGlzdF9za2lwcGluZyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVj dCkKIAkJCW1zZyA9IGdldHRleHRfbm9vcCgicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4 aXN0LCBza2lwcGluZyIpOwogCQkJbmFtZSA9IHN0clZhbChvYmplY3QpOwogCQkJYnJlYWs7CisJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJzZXNzaW9uIHZh cmlhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKKwkJCW5hbWUgPSBOYW1l TGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpOworCQkJYnJlYWs7CiAKIAkJY2Fz ZSBPQkpFQ1RfQ09MVU1OOgogCQljYXNlIE9CSkVDVF9EQVRBQkFTRToKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V2ZW50X3RyaWdnZXIuYwppbmRleCBkY2ZjMWRiYWZmZC4uZDAzY2I5NDdlNjcgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTIxNDksNiArMjE0OSw4IEBAIHN0cmluZ2lm eV9ncmFudF9vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJCXJldHVybiAiVEFCTEVTUEFD RSI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gIlRZUEUiOworCQljYXNlIE9CSkVD VF9WQVJJQUJMRToKKwkJCXJldHVybiAiVkFSSUFCTEUiOwogCQkJLyogdGhlc2UgY3VycmVudGx5 IGFyZW4ndCB1c2VkICovCiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCWNhc2UgT0JK RUNUX0FHR1JFR0FURToKQEAgLTIyMzIsNiArMjIzNCw4IEBAIHN0cmluZ2lmeV9hZGVmcHJpdnNf b2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCQlyZXR1cm4gIlRBQkxFU1BBQ0VTIjsKIAkJ Y2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiAiVFlQRVMiOworCQljYXNlIE9CSkVDVF9WQVJJ QUJMRToKKwkJCXJldHVybiAiVkFSSUFCTEVTIjsKIAkJCS8qIHRoZXNlIGN1cnJlbnRseSBhcmVu J3QgdXNlZCAqLwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQljYXNlIE9CSkVDVF9B R0dSRUdBVEU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCA1NjA3MjczYmY5Zi4uYzAyNmFi NWRjYjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtOTIsNiArOTIsNyBAQCBTZWNMYWJl bFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX1RT UEFSU0VSOgogCQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgogCQljYXNlIE9CSkVDVF9VU0VSX01B UFBJTkc6CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJcmV0dXJuIGZhbHNlOwogCiAJCQkv KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBjY2Q5NjQ1ZTdkMi4uYjdjMWUyODBhMDAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmlnZ2VyLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv c3RvcmFnZV94bG9nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy90b2FzdGluZy5oIgpAQCAtNjc2OCw2 ICs2NzY5LDcgQEAgQVRUeXBlZFRhYmxlUmVjdXJzaW9uKExpc3QgKip3cXVldWUsIFJlbGF0aW9u IHJlbCwgQWx0ZXJUYWJsZUNtZCAqY21kLAogICogKHBvc3NpYmx5IG5lc3RlZCBzZXZlcmFsIGxl dmVscyBkZWVwIGluIGNvbXBvc2l0ZSB0eXBlcywgYXJyYXlzLCBldGMhKS4KICAqIEV2ZW50dWFs bHksIHdlJ2QgbGlrZSB0byBwcm9wYWdhdGUgdGhlIGNoZWNrIG9yIHJld3JpdGUgb3BlcmF0aW9u CiAgKiBpbnRvIHN1Y2ggdGFibGVzLCBidXQgZm9yIG5vdywganVzdCBlcnJvciBvdXQgaWYgd2Ug ZmluZCBhbnkuCisgKiBBbHNvLCBjaGVjayBpZiAidHlwZU9pZCIgaXMgdXNlZCBhcyB0eXBlIG9m IHNvbWUgc2Vzc2lvbiB2YXJpYWJsZS4KICAqCiAgKiBDYWxsZXIgc2hvdWxkIHByb3ZpZGUgZWl0 aGVyIHRoZSBhc3NvY2lhdGVkIHJlbGF0aW9uIG9mIGEgcm93dHlwZSwKICAqIG9yIGEgdHlwZSBu YW1lIChub3QgYm90aCkgZm9yIHVzZSBpbiB0aGUgZXJyb3IgbWVzc2FnZSwgaWYgYW55LgpAQCAt NjgzMSw2ICs2ODMzLDQ1IEBAIGZpbmRfY29tcG9zaXRlX3R5cGVfZGVwZW5kZW5jaWVzKE9pZCB0 eXBlT2lkLCBSZWxhdGlvbiBvcmlnUmVsYXRpb24sCiAJCQljb250aW51ZTsKIAkJfQogCisJCS8q IGNoZWNrIGlmIHRoZSB0eXBlIGlzIHVzZWQgYXMgdHlwZSBvZiBzb21lIHNlc3Npb24gdmFyaWFi bGUgKi8KKwkJaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCA9PSBWYXJpYWJsZVJlbGF0aW9uSWQpCisJ CXsKKwkJCU9pZAkJCXZhcmlkID0gcGdfZGVwZW5kLT5vYmppZDsKKworCQkJaWYgKG9yaWdUeXBl TmFtZSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHR5cGUgXCIlc1wi IGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCW9y aWdUeXBlTmFtZSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSkpKTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09 IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5v dCBhbHRlciB0eXBlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVz ZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmlnUmVsYXRpb24pLAor CQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNl KHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOwor CQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9GT1JF SUdOX1RBQkxFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgZm9yZWln biB0YWJsZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0 IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJ CQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJp ZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKwkJCWVs c2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04g fHwKKwkJCQkJIG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfTUFUVklF VyB8fAorCQkJCQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJU SVRJT05FRF9UQUJMRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHRh YmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAor CQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmlnUmVsYXRpb24pLAorCQkJCQkJCQln ZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSks CisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCisJCQljb250 aW51ZTsKKwkJfQorCiAJCS8qIEVsc2UsIGlnbm9yZSBkZXBlbmRlZXMgdGhhdCBhcmVuJ3QgcmVs YXRpb25zICovCiAJCWlmIChwZ19kZXBlbmQtPmNsYXNzaWQgIT0gUmVsYXRpb25SZWxhdGlvbklk KQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA2N2ViOTYzOTZhZi4uODlmYTIzYzJkZDQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQpAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNw YWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHJpZ2dlci5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJj b21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVk ZSAiZ3JhbXBhcnNlLmgiCkBAIC0yODEsOCArMjgyLDggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1 cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5 KTsKIAkJQ29uc3RyYWludHNTZXRTdG10IENvcHlTdG10IENyZWF0ZUFzU3RtdCBDcmVhdGVDYXN0 U3RtdAogCQlDcmVhdGVEb21haW5TdG10IENyZWF0ZUV4dGVuc2lvblN0bXQgQ3JlYXRlR3JvdXBT dG10IENyZWF0ZU9wQ2xhc3NTdG10CiAJCUNyZWF0ZU9wRmFtaWx5U3RtdCBBbHRlck9wRmFtaWx5 U3RtdCBDcmVhdGVQTGFuZ1N0bXQKLQkJQ3JlYXRlU2NoZW1hU3RtdCBDcmVhdGVTZXFTdG10IENy ZWF0ZVN0bXQgQ3JlYXRlU3RhdHNTdG10IENyZWF0ZVRhYmxlU3BhY2VTdG10Ci0JCUNyZWF0ZUZk d1N0bXQgQ3JlYXRlRm9yZWlnblNlcnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAorCQlD cmVhdGVTY2hlbWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU2Vzc2lvblZhclN0bXQgQ3JlYXRl U3RtdCBDcmVhdGVTdGF0c1N0bXQKKwkJQ3JlYXRlVGFibGVTcGFjZVN0bXQgQ3JlYXRlRmR3U3Rt dCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CiAJCUNyZWF0 ZUFzc2VydGlvblN0bXQgQ3JlYXRlVHJhbnNmb3JtU3RtdCBDcmVhdGVUcmlnU3RtdCBDcmVhdGVF dmVudFRyaWdTdG10CiAJCUNyZWF0ZVVzZXJTdG10IENyZWF0ZVVzZXJNYXBwaW5nU3RtdCBDcmVh dGVSb2xlU3RtdCBDcmVhdGVQb2xpY3lTdG10CiAJCUNyZWF0ZWRiU3RtdCBEZWNsYXJlQ3Vyc29y U3RtdCBEZWZpbmVTdG10IERlbGV0ZVN0bXQgRGlzY2FyZFN0bXQgRG9TdG10CkBAIC03NzUsOCAr Nzc2LDggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5h bWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlVRVNDQVBFIFVOQk9VTkRFRCBVTkNP TkRJVElPTkFMIFVOQ09NTUlUVEVEIFVORU5DUllQVEVEIFVOSU9OIFVOSVFVRSBVTktOT1dOCiAJ VU5MSVNURU4gVU5MT0dHRUQgVU5USUwgVVBEQVRFIFVTRVIgVVNJTkcKIAotCVZBQ1VVTSBWQUxJ RCBWQUxJREFURSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJZ SU5HCi0JVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWT0xBVElMRQorCVZBQ1VVTSBWQUxJ RCBWQUxJREFURSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQUJMRSBWQVJJ QUJMRVMKKwlWQVJJQURJQyBWQVJZSU5HIFZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9M QVRJTEUKIAogCVdIRU4gV0hFUkUgV0hJVEVTUEFDRV9QIFdJTkRPVyBXSVRIIFdJVEhJTiBXSVRI T1VUIFdPUksgV1JBUFBFUiBXUklURQogCkBAIC0xMDQyLDYgKzEwNDMsNyBAQCBzdG10OgogCQkJ fCBDcmVhdGVQb2xpY3lTdG10CiAJCQl8IENyZWF0ZVBMYW5nU3RtdAogCQkJfCBDcmVhdGVTY2hl bWFTdG10CisJCQl8IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJCQl8IENyZWF0ZVNlcVN0bXQKIAkJ CXwgQ3JlYXRlU3RtdAogCQkJfCBDcmVhdGVTdWJzY3JpcHRpb25TdG10CkBAIC0xNTg0LDYgKzE1 ODYsNyBAQCBzY2hlbWFfc3RtdDoKIAkJCXwgQ3JlYXRlVHJpZ1N0bXQKIAkJCXwgR3JhbnRTdG10 CiAJCQl8IFZpZXdTdG10CisJCQl8IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJCTsKIAogCkBAIC01 MjEwLDYgKzUyMTMsMzQgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKIAkJCQl9CiAJCTsK IAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZIDoKKyAqCQkJCUNSRUFURSBW QVJJQUJMRSB2YXJuYW1lIFtBU10gdHlwZQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwor Q3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQlDUkVBVEUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUg b3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vz c2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CisJCQkJCW4t PnZhcmlhYmxlID0gJDM7CisJCQkJCW4tPnR5cGVOYW1lID0gJDU7CisJCQkJCW4tPmNvbGxDbGF1 c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkNjsKKwkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNl OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBDUkVBVEUgVkFSSUFCTEUgSUZf UCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9j bGF1c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3Jl YXRlU2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52YXJpYWJsZSA9ICQ2OworCQkJCQluLT50eXBl TmFtZSA9ICQ4OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJ CQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJ fQorCQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBu YW1lIFVQREFURSBbIFRPIHZlcnNpb24gXQpAQCAtNjk5OCw2ICs3MDI5LDcgQEAgb2JqZWN0X3R5 cGVfYW55X25hbWU6CiAJCQl8IFRFWFRfUCBTRUFSQ0ggRElDVElPTkFSWQkJCQl7ICQkID0gT0JK RUNUX1RTRElDVElPTkFSWTsgfQogCQkJfCBURVhUX1AgU0VBUkNIIFRFTVBMQVRFCQkJCXsgJCQg PSBPQkpFQ1RfVFNURU1QTEFURTsgfQogCQkJfCBURVhUX1AgU0VBUkNIIENPTkZJR1VSQVRJT04J CQl7ICQkID0gT0JKRUNUX1RTQ09ORklHVVJBVElPTjsgfQorCQkJfCBWQVJJQUJMRQkJCQkJCQkJ eyAkJCA9IE9CSkVDVF9WQVJJQUJMRTsgfQogCQk7CiAKIC8qCkBAIC03ODc0LDYgKzc5MDYsMTQg QEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQyOwogCQkJCQkkJCA9IG47CiAJ CQkJfQorCQkJfCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZV9saXN0CisJCQkJeworCQkJCQlQcml2 VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CisJ CQkJCW4tPnRhcmd0eXBlID0gQUNMX1RBUkdFVF9PQkpFQ1Q7CisJCQkJCW4tPm9ianR5cGUgPSBP QkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9ianMgPSAkMjsKKwkJCQkJJCQgPSBuOworCQkJCX0K IAkJCXwgQUxMIFRBQkxFUyBJTl9QIFNDSEVNQSBuYW1lX2xpc3QKIAkJCQl7CiAJCQkJCVByaXZU YXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKQEAg LTc5MTksNiArNzk1OSwxNCBAQCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0gJDU7 CiAJCQkJCSQkID0gbjsKIAkJCQl9CisJCQl8IEFMTCBWQVJJQUJMRVMgSU5fUCBTQ0hFTUEgbmFt ZV9saXN0CisJCQkJeworCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9j KHNpemVvZihQcml2VGFyZ2V0KSk7CisJCQkJCW4tPnRhcmd0eXBlID0gQUNMX1RBUkdFVF9BTExf SU5fU0NIRU1BOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5v YmpzID0gJDU7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCTsKIAogCkBAIC04MTE2LDYgKzgxNjQs NyBAQCBkZWZhY2xfcHJpdmlsZWdlX3RhcmdldDoKIAkJCXwgU0VRVUVOQ0VTCQl7ICQkID0gT0JK RUNUX1NFUVVFTkNFOyB9CiAJCQl8IFRZUEVTX1AJCXsgJCQgPSBPQkpFQ1RfVFlQRTsgfQogCQkJ fCBTQ0hFTUFTCQl7ICQkID0gT0JKRUNUX1NDSEVNQTsgfQorCQkJfCBWQVJJQUJMRVMJCXsgJCQg PSBPQkpFQ1RfVkFSSUFCTEU7IH0KIAkJOwogCiAKQEAgLTk5MDQsNiArOTk1MywyNCBAQCBSZW5h bWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgUkVOQU1FIFRP IG5hbWUKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJ CXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCQkJCQluLT5y ZW5hbWVUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAk MzsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJ CQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgSUZfUCBFWElT VFMgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBt YWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9WQVJJQUJM RTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld25hbWUgPSAkODsK KwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0K IAkJOwogCiBvcHRfY29sdW1uOiBDT0xVTU4KQEAgLTEwMjY1LDYgKzEwMzMyLDI0IEBAIEFsdGVy T2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9 IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBTRVQgU0NI RU1BIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2Rl KEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFS SUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdzY2hlbWEg PSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsK KwkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RTIGFueV9uYW1lIFNFVCBTQ0hF TUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUo QWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJ QUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld3NjaGVtYSA9 ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJ CQkJfQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTA1NDYsNiArMTA2MzEsMTQg QEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBl cyBPV05FUiBUTyBSb2xlU3BlYwogCQkJCQluLT5uZXdvd25lciA9ICQ2OwogCQkJCQkkJCA9IChO b2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBPV05FUiBUTyBS b2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93 bmVyU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4t Pm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdvd25lciA9ICQ2OworCQkJCQkkJCA9 IChOb2RlICopbjsKKwkJCQl9CiAJCTsKIAogCkBAIC0xNzkxNyw2ICsxODAxMCw4IEBAIHVucmVz ZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVkFMSURBVEUKIAkJCXwgVkFMSURBVE9SCiAJCQl8IFZBTFVF X1AKKwkJCXwgVkFSSUFCTEUKKwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZBUllJTkcKIAkJCXwgVkVS U0lPTl9QCiAJCQl8IFZJRVcKQEAgLTE4NTcwLDYgKzE4NjY1LDggQEAgYmFyZV9sYWJlbF9rZXl3 b3JkOgogCQkJfCBWQUxVRV9QCiAJCQl8IFZBTFVFUwogCQkJfCBWQVJDSEFSCisJCQl8IFZBUklB QkxFCisJCQl8IFZBUklBQkxFUwogCQkJfCBWQVJJQURJQwogCQkJfCBWRVJCT1NFCiAJCQl8IFZF UlNJT05fUApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKaW5kZXggMGYzMjRlZTRlMzEuLjRl YWVkMWY4NDM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5j CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTEwNSw2ICsxMDUs NyBAQCB0eXBlZGVmIHN0cnVjdAogCUxpc3QJICAgKmluZGV4ZXM7CQkvKiBDUkVBVEUgSU5ERVgg aXRlbXMgKi8KIAlMaXN0CSAgICp0cmlnZ2VyczsJCS8qIENSRUFURSBUUklHR0VSIGl0ZW1zICov CiAJTGlzdAkgICAqZ3JhbnRzOwkJCS8qIEdSQU5UIGl0ZW1zICovCisJTGlzdAkgICAqdmFyaWFi bGVzOwkJLyogQ1JFQVRFIFZBUklBQkxFIGl0ZW1zICovCiB9IENyZWF0ZVNjaGVtYVN0bXRDb250 ZXh0OwogCiAKQEAgLTQwMzksNiArNDA0MCw3IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRF bGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogCWN4dC5p bmRleGVzID0gTklMOwogCWN4dC50cmlnZ2VycyA9IE5JTDsKIAljeHQuZ3JhbnRzID0gTklMOwor CWN4dC52YXJpYWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIFJ1biB0aHJvdWdoIGVhY2ggc2NoZW1h IGVsZW1lbnQgaW4gdGhlIHNjaGVtYSBlbGVtZW50IGxpc3QuIFNlcGFyYXRlCkBAIC00MTA3LDYg KzQxMDksMTUgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVt YUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJCQkJY3h0LmdyYW50cyA9IGxhcHBlbmQo Y3h0LmdyYW50cywgZWxlbWVudCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9DcmVhdGVTZXNz aW9uVmFyU3RtdDoKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICplbHAgPSAoQ3Jl YXRlU2Vzc2lvblZhclN0bXQgKikgZWxlbWVudDsKKworCQkJCQlzZXRTY2hlbWFOYW1lKGN4dC5z Y2hlbWFuYW1lLCAmZWxwLT52YXJpYWJsZS0+c2NoZW1hbmFtZSk7CisJCQkJCWN4dC52YXJpYWJs ZXMgPSBsYXBwZW5kKGN4dC52YXJpYWJsZXMsIGVsZW1lbnQpOworCQkJCX0KKwkJCQlicmVhazsK KwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTog JWQiLAogCQkJCQkgKGludCkgbm9kZVRhZyhlbGVtZW50KSk7CkBAIC00MTIwLDYgKzQxMzEsNyBA QCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29u c3QgY2hhciAqc2NoZW1hTmFtZSkKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC5p bmRleGVzKTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC50cmlnZ2Vycyk7CiAJ cmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuZ3JhbnRzKTsKKwlyZXN1bHQgPSBsaXN0 X2NvbmNhdChyZXN1bHQsIGN4dC52YXJpYWJsZXMpOwogCiAJcmV0dXJuIHJlc3VsdDsKIH0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91 dGlsaXR5LmMKaW5kZXggZjI4YmYzNzEwNTkuLjIxN2M2MDI4NDk3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpA QCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2luaGVyaXRzLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvdG9h c3RpbmcuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRz L2FzeW5jLmgiCkBAIC0xODIsNiArMTgzLDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVh ZE9ubHkoTm9kZSAqcGFyc2V0cmVlKQogCQljYXNlIFRfQ3JlYXRlUmFuZ2VTdG10OgogCQljYXNl IFRfQ3JlYXRlUm9sZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTY2hlbWFTdG10OgorCQljYXNlIFRf Q3JlYXRlU2Vzc2lvblZhclN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTZXFTdG10OgogCQljYXNlIFRf Q3JlYXRlU3RhdHNTdG10OgogCQljYXNlIFRfQ3JlYXRlU3RtdDoKQEAgLTEzODksNiArMTM5MSwx MCBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCX0KIAkJCQli cmVhazsKIAorCQkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJCWFkZHJlc3MgPSBD cmVhdGVWYXJpYWJsZShwc3RhdGUsIChDcmVhdGVTZXNzaW9uVmFyU3RtdCAqKSBwYXJzZXRyZWUp OworCQkJCWJyZWFrOworCiAJCQkJLyoKIAkJCQkgKiAqKioqKioqKioqKioqIG9iamVjdCBjcmVh dGlvbiAvIGRlc3RydWN0aW9uICoqKioqKioqKioqKioqCiAJCQkJICovCkBAIC0yMzQxLDYgKzIz NDcsOSBAQCBBbHRlck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJ Y2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9TVEFUSVNU SUNTOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJdGFnID0gQ01EVEFH X0FMVEVSX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQl0YWcgPSBDTURUQUdf VU5LTk9XTjsKIAkJCWJyZWFrOwpAQCAtMjY0OSw2ICsyNjU4LDkgQEAgQ3JlYXRlQ29tbWFuZFRh ZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJCQkJ dGFnID0gQ01EVEFHX0RST1BfU1RBVElTVElDUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQkJCXRhZyA9IENNRFRBR19EUk9QX1ZBUklBQkxFOworCQkJCQlicmVh azsKIAkJCQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KQEAgLTMy MjUsNiArMzIzNywxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCX0K IAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCXRhZyA9IENN RFRBR19DUkVBVEVfVkFSSUFCTEU7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhX QVJOSU5HLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFn KHBhcnNldHJlZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCmluZGV4IDJhNzE2Y2M2YjdmLi45ODUyMmE0NTYx MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9hY2wuYwpAQCAtODUxLDYgKzg1MSwxMCBAQCBhY2xkZWZhdWx0KE9iamVj dFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQpCiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJ R0hUUzsKIAkJCW93bmVyX2RlZmF1bHQgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwog CQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJd29ybGRfZGVmYXVsdCA9IEFD TF9OT19SSUdIVFM7CisJCQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7 CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2Jq ZWN0IHR5cGU6ICVkIiwgKGludCkgb2JqdHlwZSk7CiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05P X1JJR0hUUzsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwpAQCAtOTQ4LDYgKzk1Miw5IEBAIGFj bGRlZmF1bHRfc3FsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWNhc2UgJ1QnOgogCQkJb2JqdHlwZSA9 IE9CSkVDVF9UWVBFOwogCQkJYnJlYWs7CisJCWNhc2UgJ1YnOgorCQkJb2JqdHlwZSA9IE9CSkVD VF9WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVj b2duaXplZCBvYmplY3QgdHlwZSBhYmJyZXZpYXRpb246ICVjIiwgb2JqdHlwZWMpOwogCX0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggYTg1ZGMwZDg5MWYuLmI0NjRhN2YwOTBh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMzgsNiArMzgsNyBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 cmFuc2Zvcm0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9k ZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKQEAgLTM3MTQsMyArMzcx NSwxMTUgQEAgZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29r KQogCiAJcmV0dXJuIHN1Ym5hbWU7CiB9CisKKy8qCQkJCS0tLS0tLS0tLS0gUEdfVkFSSUFCTEUg Q0FDSEUgLS0tLS0tLS0tLQkJCQkgKi8KKworLyoKKyAqIGdldF92YXJuYW1lX3ZhcmlkCisgKgkJ R2l2ZW4gbmFtZSBhbmQgbmFtZXNwYWNlIG9mIHZhcmlhYmxlLCBsb29rIHVwIHRoZSBPSUQuCisg Ki8KK09pZAorZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwgT2lkIHZhcm5h bWVzcGFjZSkKK3sKKwlyZXR1cm4gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51 bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJ CQkJCQkgICBPYmplY3RJZEdldERhdHVtKHZhcm5hbWVzcGFjZSkpOworfQorCisvKgorICogZ2V0 X3Nlc3Npb25fdmFyaWFibGVfbmFtZQorICoJCVJldHVybnMgYSBwYWxsb2MnZCBjb3B5IG9mIHRo ZSBuYW1lIG9mIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworY2hhciAqCitnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1f cGdfdmFyaWFibGUgdmFyZm9ybTsKKwljaGFyCSAgICp2YXJuYW1lOworCisJdHVwID0gU2VhcmNo U3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAo IUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWls ZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1f cGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9IHBzdHJkdXAoTmFtZVN0 cih2YXJmb3JtLT52YXJuYW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVy biB2YXJuYW1lOworfQorCisvKgorICogZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlCisg KgkJUmV0dXJucyB0aGUgcGdfbmFtZXNwYWNlIE9JRCBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBz ZXNzaW9uIHZhcmlhYmxlLgorICovCitPaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZv cm07CisJT2lkCQkJdmFybmFtZXNwYWNlOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklB QkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFs aWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxl ICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1Qo dHVwKTsKKworCXZhcm5hbWVzcGFjZSA9IHZhcmZvcm0tPnZhcm5hbWVzcGFjZTsKKworCVJlbGVh c2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZhcm5hbWVzcGFjZTsKK30KKworLyoKKyAqIFJl dHVybnMgdGhlIHR5cGUgb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK09pZAor Z2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsK KwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFydHlwZTsKKworCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcnR5cGUgPSB2YXJmb3JtLT52 YXJ0eXBlOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFydHlwZTsKK30K KworLyoKKyAqIFJldHVybnMgdGhlIHR5cGUsIHR5cG1vZCBhbmQgY29sbGlkIG9mIHRoZSBnaXZl biBzZXNzaW9uIHZhcmlhYmxlLgorICovCit2b2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBl X3R5cG1vZF9jb2xsaWQoT2lkIHZhcmlkLCBPaWQgKnR5cGlkLCBpbnQzMiAqdHlwbW9kLAorCQkJ CQkJCQkJCU9pZCAqY29sbGlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJs ZSB2YXJmb3JtOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJ ZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxv ZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2 YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOwor CisJKnR5cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKwkqdHlwbW9kID0gdmFyZm9ybS0+dmFydHlw bW9kOworCSpjb2xsaWQgPSB2YXJmb3JtLT52YXJjb2xsYXRpb247CisKKwlSZWxlYXNlU3lzQ2Fj aGUodHVwKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYyBiL3NyYy9i aW4vcGdfZHVtcC9jb21tb24uYwppbmRleCAzM2QzMjMwODVmNS4uYjA0NTFjMWI5MDMgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29t bW9uLmMKQEAgLTI0Niw2ICsyNDYsOSBAQCBnZXRTY2hlbWFEYXRhKEFyY2hpdmUgKmZvdXQsIGlu dCAqbnVtVGFibGVzUHRyKQogCXBnX2xvZ19pbmZvKCJyZWFkaW5nIHN1YnNjcmlwdGlvbiBtZW1i ZXJzaGlwIG9mIHRhYmxlcyIpOwogCWdldFN1YnNjcmlwdGlvblRhYmxlcyhmb3V0KTsKIAorCXBn X2xvZ19pbmZvKCJyZWFkaW5nIHZhcmlhYmxlcyIpOworCWdldFZhcmlhYmxlcyhmb3V0KTsKKwog CWZyZWUoaW5oaW5mbyk7CQkJCS8qIG5vdCBuZWVkZWQgYW55IGxvbmdlciAqLwogCiAJKm51bVRh Ymxlc1B0ciA9IG51bVRhYmxlczsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRp bHMuYyBiL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYwppbmRleCA1NjQ5ODU5YWExZS4uNTBk ZTVkMGVhMjkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYworKysgYi9z cmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMKQEAgLTUxMSw2ICs1MTEsMTIgQEAgZG8geyBcCiAJ CUNPTlZFUlRfUFJJVigncicsICJTRUxFQ1QiKTsKIAkJQ09OVkVSVF9QUklWKCd3JywgIlVQREFU RSIpOwogCX0KKwllbHNlIGlmIChzdHJjbXAodHlwZSwgIlZBUklBQkxFIikgPT0gMCB8fAorCQkJ IHN0cmNtcCh0eXBlLCAiVkFSSUFCTEVTIikgPT0gMCkKKwl7CisJCUNPTlZFUlRfUFJJVigncics ICJTRUxFQ1QiKTsKKwkJQ09OVkVSVF9QUklWKCd3JywgIlVQREFURSIpOworCX0KIAllbHNlCiAJ CWFib3J0KCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAppbmRleCA2OGFlMjk3MGFkZS4uM2ZhNjEwOTBjNjQg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAorKysgYi9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwLmgKQEAgLTEzNCwxMiArMTM0LDE0IEBAIHR5cGVkZWYgc3RydWN0IF9y ZXN0b3JlT3B0aW9ucwogCWludAkJCXNlbEZ1bmN0aW9uOwogCWludAkJCXNlbFRyaWdnZXI7CiAJ aW50CQkJc2VsVGFibGU7CisJaW50CQkJc2VsVmFyaWFibGU7CiAJU2ltcGxlU3RyaW5nTGlzdCBp bmRleE5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3QgZnVuY3Rpb25OYW1lczsKIAlTaW1wbGVTdHJp bmdMaXN0IHNjaGVtYU5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3Qgc2NoZW1hRXhjbHVkZU5hbWVz OwogCVNpbXBsZVN0cmluZ0xpc3QgdHJpZ2dlck5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3QgdGFi bGVOYW1lczsKKwlTaW1wbGVTdHJpbmdMaXN0IHZhcmlhYmxlTmFtZXM7CiAKIAlpbnQJCQl1c2VE QjsKIAlDb25uUGFyYW1zCWNwYXJhbXM7CQkvKiBwYXJhbWV0ZXJzIHRvIHVzZSBpZiB1c2VEQiAq LwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDhjMjBjMjYzYzRiLi42ZjAx MmExYjU1OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5j CisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtMzA5OCw2ICsz MDk4LDE0IEBAIF90b2NFbnRyeVJlcXVpcmVkKFRvY0VudHJ5ICp0ZSwgdGVTZWN0aW9uIGN1clNl Y3Rpb24sIEFyY2hpdmVIYW5kbGUgKkFIKQogCQkJCQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJl cigmcm9wdC0+dHJpZ2dlck5hbWVzLCB0ZS0+dGFnKSkKIAkJCQkJcmV0dXJuIDA7CiAJCQl9CisJ CQllbHNlIGlmIChzdHJjbXAodGUtPmRlc2MsICJWQVJJQUJMRSIpID09IDApCisJCQl7CisJCQkJ aWYgKCFyb3B0LT5zZWxWYXJpYWJsZSkKKwkJCQkJcmV0dXJuIDA7CisJCQkJaWYgKHJvcHQtPnZh cmlhYmxlTmFtZXMuaGVhZCAhPSBOVUxMICYmCisJCQkJCSFzaW1wbGVfc3RyaW5nX2xpc3RfbWVt YmVyKCZyb3B0LT52YXJpYWJsZU5hbWVzLCB0ZS0+dGFnKSkKKwkJCQkJcmV0dXJuIDA7CisJCQl9 CiAJCQllbHNlCiAJCQkJcmV0dXJuIDA7CiAJCX0KQEAgLTM2NDcsNiArMzY1NSw3IEBAIF9nZXRP YmplY3REZXNjcmlwdGlvbihQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IFRvY0VudHJ5ICp0ZSkKIAkJ c3RyY21wKHR5cGUsICJURVhUIFNFQVJDSCBESUNUSU9OQVJZIikgPT0gMCB8fAogCQlzdHJjbXAo dHlwZSwgIlRFWFQgU0VBUkNIIENPTkZJR1VSQVRJT04iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBl LCAiVFlQRSIpID09IDAgfHwKKwkJc3RyY21wKHR5cGUsICJWQVJJQUJMRSIpID09IDAgfHwKIAkJ c3RyY21wKHR5cGUsICJWSUVXIikgPT0gMCB8fAogCS8qIG5vbi1zY2hlbWEtc3BlY2lmaWVkIG9i amVjdHMgKi8KIAkJc3RyY21wKHR5cGUsICJEQVRBQkFTRSIpID09IDAgfHwKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmlu ZGV4IGE4YzE0MWI2ODlkLi5iOGQ4MzllY2U0MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0zNjMsNiArMzYz LDcgQEAgc3RhdGljIHZvaWQgZHVtcFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1 YmxpY2F0aW9uSW5mbyAqcHViaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wUHVibGljYXRpb25UYWJs ZShBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvblJlbEluZm8gKnB1YnJpbmZvKTsKIHN0 YXRpYyB2b2lkIGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0 aW9uSW5mbyAqc3ViaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vic2NyaXB0aW9uVGFibGUoQXJj aGl2ZSAqZm91dCwgY29uc3QgU3ViUmVsSW5mbyAqc3VicmluZm8pOworc3RhdGljIHZvaWQgZHVt cFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbyk7CiBz dGF0aWMgdm9pZCBkdW1wRGF0YWJhc2UoQXJjaGl2ZSAqZm91dCk7CiBzdGF0aWMgdm9pZCBkdW1w RGF0YWJhc2VDb25maWcoQXJjaGl2ZSAqQUgsIFBRRXhwQnVmZmVyIG91dGJ1ZiwKIAkJCQkJCQkg ICBjb25zdCBjaGFyICpkYm5hbWUsIE9pZCBkYm9pZCk7CkBAIC01NDE2LDYgKzU0MTcsMTkwIEBA IGdldF9uZXh0X3Bvc3NpYmxlX2ZyZWVfcGdfdHlwZV9vaWQoQXJjaGl2ZSAqZm91dCwgUFFFeHBC dWZmZXIgdXBncmFkZV9xdWVyeSkKIAlyZXR1cm4gbmV4dF9wb3NzaWJsZV9mcmVlX29pZDsKIH0K IAorLyoKKyAqIGdldFZhcmlhYmxlcworICoJICBnZXQgaW5mb3JtYXRpb24gYWJvdXQgdmFyaWFi bGVzCisgKi8KK3ZvaWQKK2dldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQoreworCVBRRXhwQnVm ZmVyIHF1ZXJ5OworCVBHcmVzdWx0ICAgKnJlczsKKwlWYXJpYWJsZUluZm8gKnZhcmluZm87CisJ aW50CQkJaV90YWJsZW9pZDsKKwlpbnQJCQlpX29pZDsKKwlpbnQJCQlpX3Zhcm5hbWU7CisJaW50 CQkJaV92YXJuYW1lc3BhY2U7CisJaW50CQkJaV92YXJ0eXBlOworCWludAkJCWlfdmFydHlwbmFt ZTsKKwlpbnQJCQlpX3Zhcm93bmVyOworCWludAkJCWlfdmFyY29sbGF0aW9uOworCWludAkJCWlf dmFyYWNsOworCWludAkJCWlfYWNsZGVmYXVsdDsKKwlpbnQJCQlpLAorCQkJCW50dXBzOworCisJ aWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPCAxODAwMDApCisJCXJldHVybjsKKworCXF1ZXJ5ID0g Y3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCXJlc2V0UFFFeHBCdWZmZXIocXVlcnkpOworCisJLyog Z2V0IHRoZSB2YXJpYWJsZXMgaW4gY3VycmVudCBkYXRhYmFzZSAqLworCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LAorCQkJCQkgICJTRUxFQ1Qgdi50YWJsZW9pZCwgdi5vaWQsIHYudmFybmFtZSxc biIKKwkJCQkJICAiICAgICAgIHYudmFybmFtZXNwYWNlLCB2LnZhcnR5cGUsXG4iCisJCQkJCSAg IiAgICAgICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFz IHZhcnR5cG5hbWUsXG4iCisJCQkJCSAgIiAgICAgICBDQVNFIFdIRU4gdi52YXJjb2xsYXRpb24g PD4gdC50eXBjb2xsYXRpb24gIgorCQkJCQkgICIgICAgICAgICAgICBUSEVOIHYudmFyY29sbGF0 aW9uXG4iCisJCQkJCSAgIiAgICAgICAgICAgIEVMU0UgMFxuIgorCQkJCQkgICIgICAgICAgRU5E IEFTIHZhcmNvbGxhdGlvbixcbiIKKwkJCQkJICAiICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNs LFxuIgorCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRl ZmF1bHRcbiIKKwkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHZcbiIKKwkJCQkJ ICAiSk9JTiBwZ19jYXRhbG9nLnBnX3R5cGUgdCAiCisJCQkJCSAgIk9OICh2LnZhcnR5cGUgPSB0 Lm9pZCkiKTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdS RVNfVFVQTEVTX09LKTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisKKwlpX3RhYmxlb2lk ID0gUFFmbnVtYmVyKHJlcywgInRhYmxlb2lkIik7CisJaV9vaWQgPSBQUWZudW1iZXIocmVzLCAi b2lkIik7CisJaV92YXJuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWUiKTsKKwlpX3Zhcm5h bWVzcGFjZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2UiKTsKKwlpX3ZhcnR5cGUgPSBQ UWZudW1iZXIocmVzLCAidmFydHlwZSIpOworCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMs ICJ2YXJ0eXBuYW1lIik7CisJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29s bGF0aW9uIik7CisKKwlpX3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CisJ aV92YXJhY2wgPSBQUWZudW1iZXIocmVzLCAidmFyYWNsIik7CisJaV9hY2xkZWZhdWx0ID0gUFFm bnVtYmVyKHJlcywgImFjbGRlZmF1bHQiKTsKKworCXZhcmluZm8gPSBwZ19tYWxsb2MobnR1cHMg KiBzaXplb2YoVmFyaWFibGVJbmZvKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnR1cHM7IGkrKykK Kwl7CisJCVR5cGVJbmZvICAgKnZ0eXBlOworCisJCXZhcmluZm9baV0uZG9iai5vYmpUeXBlID0g RE9fVkFSSUFCTEU7CisJCXZhcmluZm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9CisJCQlhdG9v aWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLmNh dElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVt cElkKCZ2YXJpbmZvW2ldLmRvYmopOworCQl2YXJpbmZvW2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lKSk7CisJCXZhcmluZm9baV0uZG9iai5uYW1l c3BhY2UgPQorCQkJZmluZE5hbWVzcGFjZShhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFy bmFtZXNwYWNlKSkpOworCisJCXZhcmluZm9baV0udmFydHlwZSA9IGF0b29pZChQUWdldHZhbHVl KHJlcywgaSwgaV92YXJ0eXBlKSk7CisJCXZhcmluZm9baV0udmFydHlwbmFtZSA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBuYW1lKSk7CisJCXZhcmluZm9baV0udmFyY29s bGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOworCisJ CXZhcmluZm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFy YWNsKSk7CisJCXZhcmluZm9baV0uZGFjbC5hY2xkZWZhdWx0ID0gcGdfc3RyZHVwKFBRZ2V0dmFs dWUocmVzLCBpLCBpX2FjbGRlZmF1bHQpKTsKKwkJdmFyaW5mb1tpXS5kYWNsLnByaXZ0eXBlID0g MDsKKwkJdmFyaW5mb1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7CisJCXZhcmluZm9baV0ucm9s bmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm93bmVyKSk7CisKKwkJ LyogZG8gbm90IHRyeSB0byBkdW1wIEFDTCBpZiBubyBBQ0wgZXhpc3RzICovCisJCWlmICghUFFn ZXRpc251bGwocmVzLCBpLCBpX3ZhcmFjbCkpCisJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50 cyB8PSBEVU1QX0NPTVBPTkVOVF9BQ0w7CisKKwkJaWYgKHN0cmxlbih2YXJpbmZvW2ldLnJvbG5h bWUpID09IDApCisJCQlwZ19sb2dfd2FybmluZygib3duZXIgb2YgdmFyaWFibGUgXCIlc1wiIGFw cGVhcnMgdG8gYmUgaW52YWxpZCIsCisJCQkJCQkgICB2YXJpbmZvW2ldLmRvYmoubmFtZSk7CisK KwkJLyogZGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCisJCXNlbGVjdER1bXBh YmxlT2JqZWN0KCYodmFyaW5mb1tpXS5kb2JqKSwgZm91dCk7CisKKwkJdnR5cGUgPSBmaW5kVHlw ZUJ5T2lkKHZhcmluZm9baV0udmFydHlwZSk7CisJCWFkZE9iamVjdERlcGVuZGVuY3koJnZhcmlu Zm9baV0uZG9iaiwgdnR5cGUtPmRvYmouZHVtcElkKTsKKwl9CisJUFFjbGVhcihyZXMpOworCisJ ZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKK30KKworLyoKKyAqIGR1bXBWYXJpYWJsZQorICoJ ICBkdW1wIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlCisgKi8K K3N0YXRpYyB2b2lkCitkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJ bmZvICp2YXJpbmZvKQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKworCVBR RXhwQnVmZmVyIGRlbHE7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcXVhbHZhcm5h bWU7CisJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisKKwkv KiBza2lwIGlmIG5vdCB0byBiZSBkdW1wZWQgKi8KKwlpZiAoIXZhcmluZm8tPmRvYmouZHVtcCB8 fCBkb3B0LT5kYXRhT25seSkKKwkJcmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVy KCk7CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcXVhbHZhcm5hbWUgPSBwZ19z dHJkdXAoZm10UXVhbGlmaWVkRHVtcGFibGUodmFyaW5mbykpOworCXZhcnR5cG5hbWUgPSB2YXJp bmZvLT52YXJ0eXBuYW1lOworCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsK KworCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKKwkJCQkJ ICBxdWFsdmFybmFtZSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJ QUJMRSAlcyBBUyAlcyIsCisJCQkJCSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCisJaWYg KE9pZElzVmFsaWQodmFyY29sbGF0aW9uKSkKKwl7CisJCUNvbGxJbmZvICAgKmNvbGw7CisKKwkJ Y29sbCA9IGZpbmRDb2xsYXRpb25CeU9pZCh2YXJjb2xsYXRpb24pOworCQlpZiAoY29sbCkKKwkJ CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIENPTExBVEUgJXMiLAorCQkJCQkJCSAgZm10UXVh bGlmaWVkRHVtcGFibGUoY29sbCkpOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAi O1xuIik7CisKKwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5J VElPTikKKwkJQXJjaGl2ZUVudHJ5KGZvdXQsIHZhcmluZm8tPmRvYmouY2F0SWQsIHZhcmluZm8t PmRvYmouZHVtcElkLAorCQkJCQkgQVJDSElWRV9PUFRTKC50YWcgPSB2YXJpbmZvLT5kb2JqLm5h bWUsCisJCQkJCQkJCSAgLm5hbWVzcGFjZSA9IHZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2Jq Lm5hbWUsCisJCQkJCQkJCSAgLm93bmVyID0gdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAu ZGVzY3JpcHRpb24gPSAiVkFSSUFCTEUiLAorCQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9Q UkVfREFUQSwKKwkJCQkJCQkJICAuY3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkg IC5kcm9wU3RtdCA9IGRlbHEtPmRhdGEpKTsKKworCS8qIGR1bXAgY29tbWVudCBpZiBhbnkgKi8K KwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVt cENvbW1lbnQoZm91dCwgIlZBUklBQkxFIiwgcXVhbHZhcm5hbWUsCisJCQkJCU5VTEwsIHZhcmlu Zm8tPnJvbG5hbWUsCisJCQkJCXZhcmluZm8tPmRvYmouY2F0SWQsIDAsIHZhcmluZm8tPmRvYmou ZHVtcElkKTsKKworCS8qIGR1bXAgQUNMIGlmIGFueSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1 bXAgJiBEVU1QX0NPTVBPTkVOVF9BQ0wpCisJeworCQljaGFyCSAgICpxdmFybmFtZSA9IHBnX3N0 cmR1cChmbXRJZCh2YXJpbmZvLT5kb2JqLm5hbWUpKTsKKworCQlkdW1wQUNMKGZvdXQsIHZhcmlu Zm8tPmRvYmouZHVtcElkLCBJbnZhbGlkRHVtcElkLCAiVkFSSUFCTEUiLAorCQkJCXF2YXJuYW1l LCBOVUxMLAorCQkJCXZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIE5VTEwsIHZh cmluZm8tPnJvbG5hbWUsCisJCQkJJnZhcmluZm8tPmRhY2wpOworCisJCWZyZWUocXZhcm5hbWUp OworCX0KKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIo cXVlcnkpOworCisJZnJlZShxdWFsdmFybmFtZSk7Cit9CisKIHN0YXRpYyB2b2lkCiBiaW5hcnlf dXBncmFkZV9zZXRfdHlwZV9vaWRzX2J5X3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsCiAJCQkJCQkJ CQkJIFBRRXhwQnVmZmVyIHVwZ3JhZGVfYnVmZmVyLApAQCAtMTAxNDAsNyArMTAzMjUsOCBAQCBn ZXRBZGRpdGlvbmFsQUNMcyhBcmNoaXZlICpmb3V0KQogCQkJCQlkb2JqLT5vYmpUeXBlID09IERP X1RBQkxFIHx8CiAJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fUFJPQ0xBTkcgfHwKIAkJCQkJZG9i ai0+b2JqVHlwZSA9PSBET19GRFcgfHwKLQkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19GT1JFSUdO X1NFUlZFUikKKwkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19GT1JFSUdOX1NFUlZFUiB8fAorCQkJ CQlkb2JqLT5vYmpUeXBlID09IERPX1ZBUklBQkxFKQogCQkJCXsKIAkJCQkJRHVtcGFibGVPYmpl Y3RXaXRoQWNsICpkYW9iaiA9IChEdW1wYWJsZU9iamVjdFdpdGhBY2wgKikgZG9iajsKIApAQCAt MTA3MzksNiArMTA5MjUsOSBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVt cGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9fU1VCU0NSSVBUSU9OX1JFTDoKIAkJCWR1bXBT dWJzY3JpcHRpb25UYWJsZShmb3V0LCAoY29uc3QgU3ViUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJy ZWFrOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJZHVtcFZhcmlhYmxlKGZvdXQsIChWYXJpYWJs ZUluZm8gKikgZG9iaik7CisJCQlicmVhazsKIAkJY2FzZSBET19QUkVfREFUQV9CT1VOREFSWToK IAkJY2FzZSBET19QT1NUX0RBVEFfQk9VTkRBUlk6CiAJCQkvKiBuZXZlciBkdW1wZWQsIG5vdGhp bmcgdG8gZG8gKi8KQEAgLTE1MTg4LDYgKzE1Mzc3LDkgQEAgZHVtcERlZmF1bHRBQ0woQXJjaGl2 ZSAqZm91dCwgY29uc3QgRGVmYXVsdEFDTEluZm8gKmRhY2xpbmZvKQogCQljYXNlIERFRkFDTE9C Sl9OQU1FU1BBQ0U6CiAJCQl0eXBlID0gIlNDSEVNQVMiOwogCQkJYnJlYWs7CisJCWNhc2UgREVG QUNMT0JKX1ZBUklBQkxFOgorCQkJdHlwZSA9ICJWQVJJQUJMRVMiOworCQkJYnJlYWs7CiAJCWRl ZmF1bHQ6CiAJCQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCXBnX2ZhdGFsKCJ1bnJlY29n bml6ZWQgb2JqZWN0IHR5cGUgaW4gZGVmYXVsdCBwcml2aWxlZ2VzOiAlZCIsCkBAIC0xODg5OCw2 ICsxOTA5MCw3IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoqZG9i anMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19DT05WRVJTSU9OOgogCQkJY2FzZSBET19UQUJM RToKIAkJCWNhc2UgRE9fVEFCTEVfQVRUQUNIOgorCQkJY2FzZSBET19WQVJJQUJMRToKIAkJCWNh c2UgRE9fQVRUUkRFRjoKIAkJCWNhc2UgRE9fUFJPQ0xBTkc6CiAJCQljYXNlIERPX0NBU1Q6CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaAppbmRleCBkNjVmNTU4NTY1MS4uZjJmNTU4YjI5NjEgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAt NTIsNiArNTIsNyBAQCB0eXBlZGVmIGVudW0KIAlET19UQUJMRSwKIAlET19UQUJMRV9BVFRBQ0gs CiAJRE9fQVRUUkRFRiwKKwlET19WQVJJQUJMRSwKIAlET19JTkRFWCwKIAlET19JTkRFWF9BVFRB Q0gsCiAJRE9fU1RBVFNFWFQsCkBAIC02OTksNiArNzAwLDIzIEBAIHR5cGVkZWYgc3RydWN0IF9T dWJSZWxJbmZvCiAJY2hhcgkgICAqc3JzdWJsc247CiB9IFN1YlJlbEluZm87CiAKKy8qCisgKiBU aGUgVmFyaWFibGVJbmZvIHN0cnVjdCBpcyB1c2VkIHRvIHJlcHJlc2VudCBzZXNzaW9uIHZhcmlh YmxlcworICovCit0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCit7CisJRHVtcGFibGVPYmpl Y3QgZG9iajsKKwlEdW1wYWJsZUFjbCBkYWNsOworCU9pZAkJCXZhcnR5cGU7CisJY2hhcgkgICAq dmFydHlwbmFtZTsKKwljaGFyCSAgICp2YXJhY2w7CisJY2hhcgkgICAqcnZhcmFjbDsKKwljaGFy CSAgICppbml0dmFyYWNsOworCWNoYXIJICAgKmluaXRydmFyYWNsOworCU9pZAkJCXZhcmNvbGxh dGlvbjsKKwljb25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1wdHkg c3RyaW5nICovCit9IFZhcmlhYmxlSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0 aW9ucwogICovCkBAIC03ODIsNSArODAwLDYgQEAgZXh0ZXJuIHZvaWQgZ2V0UHVibGljYXRpb25U YWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwKIAkJCQkJCQkJIGludCBu dW1UYWJsZXMpOwogZXh0ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KTsK IGV4dGVybiB2b2lkIGdldFN1YnNjcmlwdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0KTsKK2V4dGVy biB2b2lkIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBH X0RVTVBfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDNjOGYyZWI4MDhkLi5jYTMyMzE3 MWFhOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtNzcsNiArNzcsNyBAQCBlbnVtIGRiT2Jq ZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX0RVTU1ZX1RZUEUsCiAJUFJJT19BVFRSREVGLAogCVBS SU9fTEFSR0VfT0JKRUNULAorCVBSSU9fVkFSSUFCTEUsCiAJUFJJT19QUkVfREFUQV9CT1VOREFS WSwJCS8qIGJvdW5kYXJ5ISAqLwogCVBSSU9fVEFCTEVfREFUQSwKIAlQUklPX1NFUVVFTkNFX1NF VCwKQEAgLTExOCw2ICsxMTksNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9y aXR5W10gPQogCVtET19UQUJMRV0gPSBQUklPX1RBQkxFLAogCVtET19UQUJMRV9BVFRBQ0hdID0g UFJJT19UQUJMRV9BVFRBQ0gsCiAJW0RPX0FUVFJERUZdID0gUFJJT19BVFRSREVGLAorCVtET19W QVJJQUJMRV0gPSBQUklPX1ZBUklBQkxFLAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAogCVtE T19JTkRFWF9BVFRBQ0hdID0gUFJJT19JTkRFWF9BVFRBQ0gsCiAJW0RPX1NUQVRTRVhUXSA9IFBS SU9fU1RBVFNFWFQsCkBAIC0xNTAwLDYgKzE1MDIsMTAgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVj dChEdW1wYWJsZU9iamVjdCAqb2JqLCBjaGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIlBP U1QtREFUQSBCT1VOREFSWSAgKElEICVkKSIsCiAJCQkJCSBvYmotPmR1bXBJZCk7CiAJCQlyZXR1 cm47CisJCWNhc2UgRE9fVkFSSUFCTEU6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJ CSAiVkFSSUFCTEUgJXMgIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+bmFtZSwgb2JqLT5k dW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAl9CiAJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJ c25wcmludGYoYnVmLCBidWZzaXplLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBhYTE1 NjRjZDQ1MC4uZGQ4YzA1NGE2YTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC03ODks NiArNzg5LDE2IEBAIG15ICV0ZXN0cyA9ICgKIAkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwg fSwKIAkgIH0sCiAKKwknQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3Nf ZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUMnCisJICA9 PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1NiwKKwkJY3JlYXRlX3NxbCAgID0+ICdBTFRFUiBERUZB VUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxF Q1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQzsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRF UiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQztcRS94bSwKKwkJbGlrZSA9PiB7ICVmdWxs X3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX3ByaXZz ID0+IDEsIH0sCisJICB9LAorCiAJJ0FMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZScg PT4gewogCQlyZWdleHAgPT4gcXIvXgogCQkJXFFBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0 X3JvbGUgV0lUSCBcRQpAQCAtMTY3NCw2ICsxNjg0LDIzIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwK IAl9LAogCisJJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4gewor CQljcmVhdGVfb3JkZXIgPT4gNzEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBWQVJJ QUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiB2YXJpYWJs ZVwnOycsCisJCXJlZ2V4cCA9PgorCQkgIHFyL15cUUNPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlMSBJUyAnY29tbWVudCBvbiB2YXJpYWJsZSc7XEUvbSwKKwkJbGlrZSA9PiB7 CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25f cHJlX2RhdGEgICAgID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBf dGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9 LAorCX0sCisKIAknQ09QWSB0ZXN0X3RhYmxlJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA0LAog CQljcmVhdGVfc3FsID0+ICdJTlNFUlQgSU5UTyBkdW1wX3Rlc3QudGVzdF90YWJsZSAoY29sMSkg JwpAQCAtMzk0Miw2ICszOTY5LDI0IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NS RUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAor CQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIg PT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJp YWJsZTEgQVMgaW50ZWdlcjsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFC TEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJ CSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVf ZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2No ZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAor CiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJ CWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKQEAgLTQ0MDQs NiArNDQ0OSwyNSBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2UgPT4ge30sCiAJfSwKIAorCSdHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVf b3JkZXIgPT4gNzMsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnR1JBTlQgU0VMRUNUIE9OIFZBUklB QkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTsnLAorCQly ZWdleHAgPT4gcXIvXgorCQkJXFFHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZh cmlhYmxlMSBUTyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlO1xFCisJCQkveG0sCisJCWxpa2UgPT4g eworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9u X3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVz dF9zY2hlbWEgPT4gMSwKKwkJCW5vX3ByaXZzICAgICAgICAgICAgICAgICA9PiAxLAorCQkJb25s eV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdSRUZSRVNIIE1BVEVS SUFMSVpFRCBWSUVXIG1hdHZpZXcnID0+IHsKIAkJcmVnZXhwID0+IHFyL15cUVJFRlJFU0ggTUFU RVJJQUxJWkVEIFZJRVcgZHVtcF90ZXN0Lm1hdHZpZXc7XEUvbSwKIAkJbGlrZSA9PgpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5k ZXggMWYzY2JiMTFmN2MuLjc1OTRmMTAxMGE2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29t bWFuZC5jCisrKyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKQEAgLTEwNzcsNiArMTA3Nyw5IEBA IGV4ZWNfY29tbWFuZF9kKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJh bmNoLCBjb25zdCBjaGFyICpjbWQpCiAJCQkJCQlicmVhazsKIAkJCQl9CiAJCQkJYnJlYWs7CisJ CQljYXNlICdWJzoJCQkvKiBWYXJpYWJsZXMgKi8KKwkJCQlzdWNjZXNzID0gbGlzdFZhcmlhYmxl cyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2UpOworCQkJCWJyZWFrOwogCQkJY2FzZSAneCc6CQkJLyog RXh0ZW5zaW9ucyAqLwogCQkJCWlmIChzaG93X3ZlcmJvc2UpCiAJCQkJCXN1Y2Nlc3MgPSBsaXN0 RXh0ZW5zaW9uQ29udGVudHMocGF0dGVybik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDViZmViYWQ2NGQ1Li5jNTJj OGZkMTQ3ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUxOTUsNiArNTE5NSwxMDIgQEAgZXJyb3JfcmV0dXJuOgog CXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIFxkVgorICoKKyAqIGxpc3RWYXJpYWJsZXMoKQor ICovCitib29sCitsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9z ZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEgYnVmOworCVBHcmVzdWx0ICAgKnJlczsKKwlwcmludFF1 ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9j b2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2V9OworCisJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAwMDApCisJeworCQljaGFyCQlzdmVyYnVm WzMyXTsKKworCQlwZ19sb2dfZXJyb3IoIlRoZSBzZXJ2ZXIgKHZlcnNpb24gJXMpIGRvZXMgbm90 IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJl cihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwKKwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3Zl cmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwor CisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiU0VMRUNUIG4ubnNwbmFtZSBhcyBc IiVzXCIsXG4iCisJCQkJCSAgIiAgdi52YXJuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBw Z19jYXRhbG9nLmZvcm1hdF90eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIFwiJXNcIixc biIKKwkJCQkJICAiICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxh dGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5cGUgYnRcbiIKKwkJCQkJICAiICAgV0hFUkUgYy5vaWQg PSB2LnZhcmNvbGxhdGlvbiBBTkQgYnQub2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlv biA8PiBidC50eXBjb2xsYXRpb24pIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9n LnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4 dF9ub29wKCJTY2hlbWEiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKKwkJCQkJICBn ZXR0ZXh0X25vb3AoIlR5cGUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAor CQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSk7CisKKwlpZiAodmVyYm9zZSkKKwl7CisJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gICIpOworCQlwcmludEFDTENvbHVtbigmYnVm LCAidi52YXJhY2wiKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIixcbiAg cGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24odi5vaWQsICdwZ192YXJpYWJsZScpIEFTIFwiJXNc IiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRGVzY3JpcHRpb24iKSk7CisJfQorCisJYXBwZW5k UFFFeHBCdWZmZXJTdHIoJmJ1ZiwKKwkJCQkJCSAiXG5GUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFi bGUgdiIKKwkJCQkJCSAiXG4gICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBu IE9OIG4ub2lkID0gdi52YXJuYW1lc3BhY2UiKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZi dWYsICJcbldIRVJFIHRydWVcbiIpOworCWlmICghcGF0dGVybikKKwkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIoJmJ1ZiwgIiAgICAgIEFORCBuLm5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnXG4iCisJCQkJ CQkJICIgICAgICBBTkQgbi5uc3BuYW1lIDw+ICdpbmZvcm1hdGlvbl9zY2hlbWEnXG4iKTsKKwor CWlmICghdmFsaWRhdGVTUUxOYW1lUGF0dGVybigmYnVmLCBwYXR0ZXJuLCB0cnVlLCBmYWxzZSwK KwkJCQkJCQkJIm4ubnNwbmFtZSIsICJ2LnZhcm5hbWUiLCBOVUxMLAorCQkJCQkJCQkicGdfY2F0 YWxvZy5wZ192YXJpYWJsZV9pc192aXNpYmxlKHYub2lkKSIsCisJCQkJCQkJCU5VTEwsIDMpKQor CQlyZXR1cm4gZmFsc2U7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkg MSwyOyIpOworCisJcmVzID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZlcigm YnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJuIGZhbHNlOworCisJLyoKKwkgKiBNb3N0IGZ1bmN0 aW9ucyBpbiB0aGlzIGZpbGUgYXJlIGNvbnRlbnQgdG8gcHJpbnQgYW4gZW1wdHkgdGFibGUgd2hl bgorCSAqIHRoZXJlIGFyZSBubyBtYXRjaGluZyBvYmplY3RzLiAgV2UgaW50ZW50aW9uYWxseSBk ZXZpYXRlIGZyb20gdGhhdAorCSAqIGhlcmUsIGJ1dCBvbmx5IGluICFxdWlldCBtb2RlLCBmb3Ig aGlzdG9yaWNhbCByZWFzb25zLgorCSAqLworCWlmIChQUW50dXBsZXMocmVzKSA9PSAwICYmICFw c2V0LnF1aWV0KQorCXsKKwkJaWYgKHBhdHRlcm4pCisJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3Qg ZmluZCBhbnkgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJCSBwYXR0ZXJu KTsKKwkJZWxzZQorCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHNlc3Npb24gdmFy aWFibGVzLiIpOworCX0KKwllbHNlCisJeworCQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCQlt eW9wdC50aXRsZSA9IF8oIkxpc3Qgb2YgdmFyaWFibGVzIik7CisJCW15b3B0LnRyYW5zbGF0ZV9o ZWFkZXIgPSB0cnVlOworCQlteW9wdC50cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1 bW5zOworCQlteW9wdC5uX3RyYW5zbGF0ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2Nv bHVtbnMpOworCisJCXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxz ZSwgcHNldC5sb2dmaWxlKTsKKwl9CisKKwlQUWNsZWFyKHJlcyk7CisJcmV0dXJuIHRydWU7Cit9 CiAKIC8qCiAgKiBcZEZwCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaCBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5oCmluZGV4IDI3M2Y5NzQ1MzhlLi40ZTE1YTE4MGVhNiAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmgKQEAgLTE0OSw0ICsxNDksNyBAQCBleHRlcm4gYm9vbCBsaXN0T3BGYW1pbHlGdW5jdGlv bnMoY29uc3QgY2hhciAqYWNjZXNzX21ldGhvZF9wYXR0ZXJuLAogLyogXGRsIG9yIFxsb19saXN0 ICovCiBleHRlcm4gYm9vbCBsaXN0TGFyZ2VPYmplY3RzKGJvb2wgdmVyYm9zZSk7CiAKKy8qIFxk ViAqLworZXh0ZXJuIGJvb2wgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29s IHZhcmJvc2UpOworCiAjZW5kaWYJCQkJCQkJLyogREVTQ1JJQkVfSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2hlbHAuYyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKaW5kZXggMDJmZTVkMTUx ZTAuLjMxN2JjMmVhYjZlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisrKyBiL3Ny Yy9iaW4vcHNxbC9oZWxwLmMKQEAgLTI2NSw2ICsyNjUsNyBAQCBzbGFzaFVzYWdlKHVuc2lnbmVk IHNob3J0IGludCBwYWdlcikKIAlIRUxQMCgiICBcXGRUW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0 IGRhdGEgdHlwZXNcbiIpOwogCUhFTFAwKCIgIFxcZHVbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qg cm9sZXNcbiIpOwogCUhFTFAwKCIgIFxcZHZbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qgdmlld3Nc biIpOworCUhFTFAwKCIgIFxcZFYgICAgIFtQQVRURVJOXSAgICAgIGxpc3Qgc2Vzc2lvbiB2YXJp YWJsZXNcbiIpOwogCUhFTFAwKCIgIFxcZHhbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgZXh0ZW5z aW9uc1xuIik7CiAJSEVMUDAoIiAgXFxkWCAgICAgW1BBVFRFUk5dICAgICAgbGlzdCBleHRlbmRl ZCBzdGF0aXN0aWNzXG4iKTsKIAlIRUxQMCgiICBcXGR5WytdICBbUEFUVEVSTl0gICAgICBsaXN0 IGV2ZW50IHRyaWdnZXJzXG4iKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCBmYWQyMjc3OTkx ZC4uMjkzNjQ4ZTMwYzcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTk3MCw2ICs5NzAsMTMg QEAgc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl90cmlnZ2VyX29mX3RhYmxlID0g ewogCS5yZWZuYW1lc3BhY2UgPSAiYzEucmVsbmFtZXNwYWNlIiwKIH07CiAKK3N0YXRpYyBjb25z dCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMgPSB7CisJLm1pbl9zZXJ2 ZXJfdmVyc2lvbiA9IDE4MDAwMCwKKwkuY2F0bmFtZSA9ICJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxl IHYiLAorCS52aXNjb25kaXRpb24gPSAicGdfY2F0YWxvZy5wZ192YXJpYWJsZV9pc192aXNpYmxl KHYub2lkKSIsCisJLm5hbWVzcGFjZSA9ICJ2LnZhcm5hbWVzcGFjZSIsCisJLnJlc3VsdCA9ICJ2 LnZhcm5hbWUiLAorfTsKIAogLyoKICAqIFF1ZXJpZXMgdG8gZ2V0IGxpc3RzIG9mIG5hbWVzIG9m IHZhcmlvdXMga2luZHMgb2YgdGhpbmdzLCBwb3NzaWJseQpAQCAtMTMwNCw2ICsxMzExLDcgQEAg c3RhdGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJCQkJ CQkJCQkJCQkJCQkJCQkJICogVEFCTEUgLi4uICovCiAJeyJVU0VSIiwgUXVlcnlfZm9yX2xpc3Rf b2Zfcm9sZXMsIE5VTEwsIE5VTEwsIEtleXdvcmRzX2Zvcl91c2VyX3RoaW5nfSwKIAl7IlVTRVIg TUFQUElORyBGT1IiLCBOVUxMLCBOVUxMLCBOVUxMfSwKKwl7IlZBUklBQkxFIiwgTlVMTCwgTlVM TCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlc30sCiAJeyJWSUVXIiwgTlVMTCwgTlVMTCwg JlF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzfSwKIAl7TlVMTH0JCQkJCQkvKiBlbmQgb2YgbGlzdCAq LwogfTsKQEAgLTE4NjUsNyArMTg3Myw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0 ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCSJcXGRGIiwgIlxcZEZkIiwgIlxcZEZwIiwgIlxc ZEZ0IiwgIlxcZGciLCAiXFxkaSIsICJcXGRsIiwgIlxcZEwiLAogCQkiXFxkbSIsICJcXGRuIiwg IlxcZG8iLCAiXFxkTyIsICJcXGRwIiwgIlxcZFAiLCAiXFxkUGkiLCAiXFxkUHQiLAogCQkiXFxk cmRzIiwgIlxcZHJnIiwgIlxcZFJzIiwgIlxcZFJwIiwgIlxcZHMiLAotCQkiXFxkdCIsICJcXGRU IiwgIlxcZHYiLCAiXFxkdSIsICJcXGR4IiwgIlxcZFgiLCAiXFxkeSIsCisJCSJcXGR0IiwgIlxc ZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxkWCIsICJcXGR5IiwgIlxcZFYiLAogCQki XFxlY2hvIiwgIlxcZWRpdCIsICJcXGVmIiwgIlxcZWxpZiIsICJcXGVsc2UiLCAiXFxlbmNvZGlu ZyIsCiAJCSJcXGVuZGlmIiwgIlxcZXJydmVyYm9zZSIsICJcXGV2IiwKIAkJIlxcZiIsCkBAIC0y NTU2LDYgKzI1NjQsOSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJ CQkJCQkJCQkgICJBTEwiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTWVNURU0iLCAi U0VUIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJUTyIpOworCS8qIEFMVEVSIFZBUklB QkxFIDxuYW1lPiAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlZBUklBQkxFIiwgTWF0 Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIFND SEVNQSIpOwogCS8qIEFMVEVSIFZJRVcgPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxU RVIiLCAiVklFVyIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQUxURVIgQ09MVU1OIiwg Ik9XTkVSIFRPIiwgIlJFTkFNRSIsICJSRVNFVCIsICJTRVQiKTsKQEAgLTMxMjEsNyArMzEzMiw3 IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJST1VUSU5F IiwgIlJVTEUiLCAiU0NIRU1BIiwgIlNFUVVFTkNFIiwgIlNFUlZFUiIsCiAJCQkJCSAgIlNUQVRJ U1RJQ1MiLCAiU1VCU0NSSVBUSU9OIiwgIlRBQkxFIiwKIAkJCQkJICAiVEFCTEVTUEFDRSIsICJU RVhUIFNFQVJDSCIsICJUUkFOU0ZPUk0gRk9SIiwKLQkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwg IlZJRVciKTsKKwkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsK IAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwgIkFDQ0VTUyIsICJNRVRIT0QiKSkK IAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9hY2Nlc3NfbWV0aG9kcyk7 CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJDT05TVFJBSU5UIikpCkBAIC0z OTMxLDYgKzM5NDIsMTMgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJ CWVsc2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0Y2hBbnlFeGNlcHQoIiopIikpKQogCQkJQ09N UExFVEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxv d2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KKwkvKiBDb21w bGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KKwllbHNlIGlmIChUYWlsTWF0 Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJB UyIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkK KwkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCisJ CUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7 CiAKIC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBz byB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgWyBPUiBSRVBMQUNFIF0g VklFVyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICovCkBAIC00MTkzLDYgKzQyMTEsMTIgQEAgbWF0 Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygiRFJP UCIsICJUUkFOU0ZPUk0iLCAiRk9SIiwgTWF0Y2hBbnksICJMQU5HVUFHRSIsIE1hdGNoQW55KSkK IAkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNUUklDVCIpOwogCisJLyogRFJPUCBWQVJJ QUJMRSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVkFSSUFCTEUiKSkKKwkJQ09NUExF VEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwllbHNl IGlmIChNYXRjaGVzKCJEUk9QIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9X SVRIKCJDQVNDQURFIiwgIlJFU1RSSUNUIik7CisKIC8qIEVYRUNVVEUgKi8KIAllbHNlIGlmIChN YXRjaGVzKCJFWEVDVVRFIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfcHJlcGFyZWRfc3RhdGVtZW50cyk7CkBAIC00Mzk0LDcgKzQ0MTgsNyBAQCBtYXRjaF9wcmV2 aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJICogb2JqZWN0cyBzdXBwb3J0ZWQuCiAJCSAq LwogCQlpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIkRFRkFVTFQiLCAiUFJJVklMRUdFUyIpKQot CQkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJP Q0VEVVJFUyIsICJST1VUSU5FUyIsICJUWVBFUyIsICJTQ0hFTUFTIik7CisJCQlDT01QTEVURV9X SVRIKCJUQUJMRVMiLCAiU0VRVUVOQ0VTIiwgIkZVTkNUSU9OUyIsICJQUk9DRURVUkVTIiwgIlJP VVRJTkVTIiwgIlRZUEVTIiwgIlNDSEVNQVMiLCAiVkFSSUFCTEVTIik7CiAJCWVsc2UKIAkJCUNP TVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZX1BMVVMoUXVlcnlfZm9yX2xpc3Rfb2ZfZ3JhbnRhYmxl cywKIAkJCQkJCQkJCQkJIkFMTCBGVU5DVElPTlMgSU4gU0NIRU1BIiwKQEAgLTQ0MTYsNyArNDQ0 MCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQki U0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAogCQkJCQkJCQkJCQkiVEFCTEVTUEFDRSIs Ci0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJCSJUWVBFIiwKKwkJCQkJCQkJCQkJIlZB UklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRj aEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIsICJHUkFOVCIs ICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJBTEwiKSkKQEAgLTQ0MjQsNyArNDQ0 OSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJQUk9D RURVUkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlJPVVRJTkVTIElOIFNDSEVNQSIsCiAJCQkJCSAg IlNFUVVFTkNFUyBJTiBTQ0hFTUEiLAotCQkJCQkgICJUQUJMRVMgSU4gU0NIRU1BIik7CisJCQkJ CSAgIlRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkgICJWQVJJQUJMRVMgSU4gU0NIRU1BIik7CiAJ ZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9LRSIsIE1hdGNoQW55LCAiT04iLCAiRk9S RUlHTiIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAi Rk9SIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikpCiAJCUNPTVBMRVRFX1dJVEgoIkRBVEEg V1JBUFBFUiIsICJTRVJWRVIiKTsKQEAgLTQ0NjAsNiArNDQ4Niw4IEBAIG1hdGNoX3ByZXZpb3Vz X3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3Jf bGlzdF9vZl90YWJsZXNwYWNlcyk7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJUWVBFIikpCiAJ CQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMp OworCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiKSkKKwkJCUNPTVBMRVRFX1dJVEhf U0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJCWVsc2UgaWYgKFRh aWxNYXRjaGVzKCJHUkFOVCIsIE1hdGNoQW55LCBNYXRjaEFueSwgTWF0Y2hBbnkpKQogCQkJQ09N UExFVEVfV0lUSCgiVE8iKTsKIAkJZWxzZQpAQCAtNDc2Miw3ICs0NzkwLDcgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIC8qIFBSRVBBUkUgeHggQVMgKi8KIAllbHNl IGlmIChNYXRjaGVzKCJQUkVQQVJFIiwgTWF0Y2hBbnksICJBUyIpKQotCQlDT01QTEVURV9XSVRI KCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRPIiwgIkRFTEVURSBGUk9NIik7CisJCUNP TVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRFIEZS T00iLCAiTEVUIik7CiAKIC8qCiAgKiBQUkVQQVJFIFRSQU5TQUNUSU9OIGlzIG1pc3Npbmcgb24g cHVycG9zZS4gSXQncyBpbnRlbmRlZCBmb3IgdHJhbnNhY3Rpb24KQEAgLTUyMjgsNiArNTI1Niw4 IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRI X1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NT KCJcXGR2KiIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9v Zl92aWV3cyk7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkVioiKSkKKwkJQ09NUExFVEVf V0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKIAllbHNlIGlm IChUYWlsTWF0Y2hlc0NTKCJcXGR4KiIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zv cl9saXN0X29mX2V4dGVuc2lvbnMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZFgqIikp CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9NYWtlZmlsZQppbmRleCAxNjdmOTFhNmUzZi4uNTA3ZjM4MDgyMTggMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9NYWtlZmlsZQpAQCAtODEsNyArODEsOCBAQCBDQVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX3B1 YmxpY2F0aW9uX25hbWVzcGFjZS5oIFwKIAlwZ19wdWJsaWNhdGlvbl9yZWwuaCBcCiAJcGdfc3Vi c2NyaXB0aW9uLmggXAotCXBnX3N1YnNjcmlwdGlvbl9yZWwuaAorCXBnX3N1YnNjcmlwdGlvbl9y ZWwuaCBcCisJcGdfdmFyaWFibGUuaAogCiBHRU5FUkFURURfSEVBREVSUyA6PSAkKENBVEFMT0df SEVBREVSUzolLmg9JV9kLmgpCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVz b24uYnVpbGQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IGY3MGQxZGFi YTUyLi42ZWVjNzlkMmVlYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5i dWlsZAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC02OSw2ICs2OSw3 IEBAIGNhdGFsb2dfaGVhZGVycyA9IFsKICAgJ3BnX3B1YmxpY2F0aW9uX3JlbC5oJywKICAgJ3Bn X3N1YnNjcmlwdGlvbi5oJywKICAgJ3BnX3N1YnNjcmlwdGlvbl9yZWwuaCcsCisgICdwZ192YXJp YWJsZS5oJywKIF0KIAogIyBUaGUgLmRhdCBmaWxlcyB3ZSBuZWVkIGNhbiBqdXN0IGJlIGxpc3Rl ZCBhbHBoYWJldGljYWxseS4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNw YWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDhkNDM0ZDQ4ZDU3 Li4xOGVhNmFjODNhNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2Uu aAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC05Nyw2ICs5Nyw4IEBA IGV4dGVybiBPaWQJVHlwZW5hbWVHZXRUeXBpZChjb25zdCBjaGFyICp0eXBuYW1lKTsKIGV4dGVy biBPaWQJVHlwZW5hbWVHZXRUeXBpZEV4dGVuZGVkKGNvbnN0IGNoYXIgKnR5cG5hbWUsIGJvb2wg dGVtcF9vayk7CiBleHRlcm4gYm9vbCBUeXBlSXNWaXNpYmxlKE9pZCB0eXBpZCk7CiAKK2V4dGVy biBib29sIFZhcmlhYmxlSXNWaXNpYmxlKE9pZCB2YXJpZCk7CisKIGV4dGVybiBGdW5jQ2FuZGlk YXRlTGlzdCBGdW5jbmFtZUdldENhbmRpZGF0ZXMoTGlzdCAqbmFtZXMsCiAJCQkJCQkJCQkJCSAg IGludCBuYXJncywgTGlzdCAqYXJnbmFtZXMsCiAJCQkJCQkJCQkJCSAgIGJvb2wgZXhwYW5kX3Zh cmlhZGljLApAQCAtMTY5LDYgKzE3MSw4IEBAIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqR2V0 U2VhcmNoUGF0aE1hdGNoZXIoTWVtb3J5Q29udGV4dCBjb250ZXh0KTsKIGV4dGVybiBTZWFyY2hQ YXRoTWF0Y2hlciAqQ29weVNlYXJjaFBhdGhNYXRjaGVyKFNlYXJjaFBhdGhNYXRjaGVyICpwYXRo KTsKIGV4dGVybiBib29sIFNlYXJjaFBhdGhNYXRjaGVzQ3VycmVudEVudmlyb25tZW50KFNlYXJj aFBhdGhNYXRjaGVyICpwYXRoKTsKIAorZXh0ZXJuIE9pZAlMb29rdXBWYXJpYWJsZShjb25zdCBj aGFyICpuc3BuYW1lLCBjb25zdCBjaGFyICp2YXJuYW1lLCBib29sIG1pc3Npbmdfb2spOworCiBl eHRlcm4gT2lkCWdldF9jb2xsYXRpb25fb2lkKExpc3QgKmNvbGxuYW1lLCBib29sIG1pc3Npbmdf b2spOwogZXh0ZXJuIE9pZAlnZXRfY29udmVyc2lvbl9vaWQoTGlzdCAqY29ubmFtZSwgYm9vbCBt aXNzaW5nX29rKTsKIGV4dGVybiBPaWQJRmluZERlZmF1bHRDb252ZXJzaW9uUHJvYyhpbnQzMiBm b3JfZW5jb2RpbmcsIGludDMyIHRvX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVs dF9hY2wuaAppbmRleCBkMjcyY2RmMDhiNC4uNTI5ZDUzYzZiYjYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2RlZmF1bHRfYWNsLmgKQEAgLTY4LDYgKzY4LDcgQEAgTUFLRV9TWVNDQUNIRShERUZBQ0xS T0xFTlNQT0JKLCBwZ19kZWZhdWx0X2FjbF9yb2xlX25zcF9vYmpfaW5kZXgsIDgpOwogI2RlZmlu ZSBERUZBQ0xPQkpfRlVOQ1RJT04JCSdmJyAvKiBmdW5jdGlvbiAqLwogI2RlZmluZSBERUZBQ0xP QkpfVFlQRQkJCSdUJyAvKiB0eXBlICovCiAjZGVmaW5lIERFRkFDTE9CSl9OQU1FU1BBQ0UJCSdu JyAvKiBuYW1lc3BhY2UgKi8KKyNkZWZpbmUgREVGQUNMT0JKX1ZBUklBQkxFCQknVicgLyogdmFy aWFibGUgKi8KIAogI2VuZGlmCQkJCQkJCS8qIEVYUE9TRV9UT19DTElFTlRfQ09ERSAqLwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBjYmJlOGFjZDM4Mi4uNDFmMTEyMWQxOWYgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNjU2Niw2ICs2NTY2LDkgQEAKICAgcHJvbmFtZSA9PiAn cGdfY29sbGF0aW9uX2lzX3Zpc2libGUnLCBwcm9jb3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ ICdzJywKICAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBw cm9zcmMgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNpYmxlJyB9LAoreyBvaWQgPT4gJzkyMjEnLCBk ZXNjciA9PiAnaXMgc2Vzc2lvbiB2YXJpYWJsZSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPycsCisg IHByb25hbWUgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zpc2libGUnLCBwcm9jb3N0ID0+ICcxMCcsIHBy b3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ ICdvaWQnLCBwcm9zcmMgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zpc2libGUnIH0sCiAKIHsgb2lkID0+ ICcyODU0JywgZGVzY3IgPT4gJ2dldCBPSUQgb2YgY3VycmVudCBzZXNzaW9uXCdzIHRlbXAgc2No ZW1hLCBpZiBhbnknLAogICBwcm9uYW1lID0+ICdwZ19teV90ZW1wX3NjaGVtYScsIHByb3ZvbGF0 aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zODEwZTA0MGYyOAotLS0g L2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtMCww ICsxLDgxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ192YXJpYWJsZS5oCisgKgkg IGRlZmluaXRpb24gb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgc3lzdGVtIGNhdGFsb2cgKHBnX3Zhcmlh YmxlcykKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBD YXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1hCisgKgkg IGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBHX1ZB UklBQkxFX0gKKyNkZWZpbmUgUEdfVkFSSUFCTEVfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5i a2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3ZhcmlhYmxlX2QuaCIKKyNpbmNsdWRlICJ1dGlscy9hY2wuaCIKKworLyogLS0tLS0t LS0tLS0tLS0tLQorICoJCXBnX3ZhcmlhYmxlIGRlZmluaXRpb24uICBjcHAgdHVybnMgdGhpcyBp bnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfdmFyaWFibGUKKyAqIC0tLS0tLS0t LS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25J ZCkKK3sKKwlPaWQJCQlvaWQ7CQkJLyogb2lkICovCisKKwkvKiBPSUQgb2YgZW50cnkgaW4gcGdf dHlwZSBmb3IgdmFyaWFibGUncyB0eXBlICovCisJT2lkCQkJdmFydHlwZSBCS0lfTE9PS1VQKHBn X3R5cGUpOworCisJLyogdmFyaWFibGUgbmFtZSAqLworCU5hbWVEYXRhCXZhcm5hbWU7CisKKwkv KiBPSUQgb2YgbmFtZXNwYWNlIGNvbnRhaW5pbmcgdmFyaWFibGUgY2xhc3MgKi8KKwlPaWQJCQl2 YXJuYW1lc3BhY2UgQktJX0xPT0tVUChwZ19uYW1lc3BhY2UpOworCisJLyogdmFyaWFibGUgb3du ZXIgKi8KKwlPaWQJCQl2YXJvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7CisKKwkvKiB0eXBt b2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCWludDMyCQl2YXJ0eXBtb2QgQktJX0RFRkFVTFQo LTEpOworCisJLyogdmFyaWFibGUgY29sbGF0aW9uICovCisJT2lkCQkJdmFyY29sbGF0aW9uIEJL SV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxhdGlvbik7CisKKworI2lmZGVmIENB VEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisK KwkvKiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8KKwlhY2xpdGVtCQl2YXJhY2xbMV0gQktJX0RFRkFV TFQoX251bGxfKTsKKworI2VuZGlmCit9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOworCisvKiAtLS0t LS0tLS0tLS0tLS0tCisgKgkJRm9ybV9wZ192YXJpYWJsZSBjb3JyZXNwb25kcyB0byBhIHBvaW50 ZXIgdG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiB0aGUgcGdfdmFyaWFibGUgcmVs YXRpb24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgRm9ybURhdGFfcGdfdmFy aWFibGUgKkZvcm1fcGdfdmFyaWFibGU7CisKK0RFQ0xBUkVfVE9BU1QocGdfdmFyaWFibGUsIDky MjMsIDkyMjQpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX3ZhcmlhYmxlX29pZF9p bmRleCwgOTIyNSwgVmFyaWFibGVPaWRJbmRleElkLCBwZ192YXJpYWJsZSwgYnRyZWUob2lkIG9p ZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3ZhcmlhYmxlX3Zhcm5hbWVfbnNwX2lu ZGV4LCA5MjI2LCBWYXJpYWJsZU5hbWVOc3BJbmRleElkLCBwZ192YXJpYWJsZSwgYnRyZWUodmFy bmFtZSBuYW1lX29wcywgdmFybmFtZXNwYWNlIG9pZF9vcHMpKTsKKworZXh0ZXJuIE9iamVjdEFk ZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJQ3JlYXRl U2Vzc2lvblZhclN0bXQgKnN0bXQpOworZXh0ZXJuIHZvaWQgRHJvcFZhcmlhYmxlQnlJZChPaWQg dmFyaWQpOworCitNQUtFX1NZU0NBQ0hFKFZBUklBQkxFTkFNRU5TUCwgcGdfdmFyaWFibGVfdmFy bmFtZV9uc3BfaW5kZXgsIDgpOworTUFLRV9TWVNDQUNIRShWQVJJQUJMRU9JRCwgcGdfdmFyaWFi bGVfb2lkX2luZGV4LCA4KTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1ZBUklBQkxFX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaAppbmRleCAwZjk0NjI0OTNlMy4uMGUwODI5NmI0MzggMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKQEAgLTIzMTYsNiArMjMxNiw3IEBAIHR5cGVkZWYgZW51bSBPYmplY3RU eXBlCiAJT0JKRUNUX1RTVEVNUExBVEUsCiAJT0JKRUNUX1RZUEUsCiAJT0JKRUNUX1VTRVJfTUFQ UElORywKKwlPQkpFQ1RfVkFSSUFCTEUsCiAJT0JKRUNUX1ZJRVcsCiB9IE9iamVjdFR5cGU7CiAK QEAgLTM0NDcsNiArMzQ0OCwyMSBAQCB0eXBlZGVmIHN0cnVjdCBBbHRlclN0YXRzU3RtdAogCWJv b2wJCW1pc3Npbmdfb2s7CQkvKiBza2lwIGVycm9yIGlmIHN0YXRpc3RpY3Mgb2JqZWN0IGlzIG1p c3NpbmcgKi8KIH0gQWx0ZXJTdGF0c1N0bXQ7CiAKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICoJCXtDcmVhdGV8QWx0ZXJ9IFZBUklBQkxFIFN0YXRlbWVudAorICogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3RtdAorewor CU5vZGVUYWcJCXR5cGU7CisJUmFuZ2VWYXIgICAqdmFyaWFibGU7CQkvKiB0aGUgdmFyaWFibGUg dG8gY3JlYXRlICovCisJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJp YWJsZSAqLworCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CisJYm9vbAkJaWZfbm90X2V4aXN0 czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworfSBDcmVhdGVTZXNzaW9u VmFyU3RtdDsKKworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJQ3JlYXRlIEZ1bmN0 aW9uIFN0YXRlbWVudAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmlu ZGV4IDg5OWQ2NGFkNTVmLi41NjY3MGU2NWIxMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtNDg0LDYg KzQ4NCw4IEBAIFBHX0tFWVdPUkQoInZhbGlkYXRvciIsIFZBTElEQVRPUiwgVU5SRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFsdWUiLCBWQUxVRV9QLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1ZXMiLCBWQUxVRVMsIENP TF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJjaGFyIiwgVkFSQ0hB UiwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInZhcmlhYmxlIiwg VkFSSUFCTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInZh cmlhYmxlcyIsIFZBUklBQkxFUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgidmFyaWFkaWMiLCBWQVJJQURJQywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInZhcnlpbmciLCBWQVJZSU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEFT X0xBQkVMKQogUEdfS0VZV09SRCgidmVyYm9zZSIsIFZFUkJPU0UsIFRZUEVfRlVOQ19OQU1FX0tF WVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xp c3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IDdmZGNlYzZkZDkzLi45 NDY1ZGY3YjJmZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysr IGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTY4LDYgKzY4LDcgQEAgUEdfQ01E VEFHKENNRFRBR19BTFRFUl9UUkFOU0ZPUk0sICJBTFRFUiBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSSUdHRVIsICJBTFRFUiBUUklHR0VS IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UWVBFLCAiQUxU RVIgVFlQRSIsIHRydWUsIHRydWUsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9VU0VS X01BUFBJTkcsICJBTFRFUiBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19D TURUQUcoQ01EVEFHX0FMVEVSX1ZBUklBQkxFLCAiQUxURVIgVkFSSUFCTEUiLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZJRVcsICJBTFRFUiBWSUVXIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTkFMWVpFLCAiQU5BTFlaRSIsIGZh bHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0JFR0lOLCAiQkVHSU4iLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTIzLDYgKzEyNCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQ1JF QVRFX1RSQU5TRk9STSwgIkNSRUFURSBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0NSRUFURV9UUklHR0VSLCAiQ1JFQVRFIFRSSUdHRVIiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UWVBFLCAiQ1JFQVRFIFRZUEUi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9VU0VSX01BUFBJ TkcsICJDUkVBVEUgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFH KENNRFRBR19DUkVBVEVfVkFSSUFCTEUsICJDUkVBVEUgVkFSSUFCTEUiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WSUVXLCAiQ1JFQVRFIFZJRVciLCB0cnVl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxMT0NBVEUsICJERUFMTE9DQVRF IiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExPQ0FURV9BTEws ICJERUFMTE9DQVRFIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xNzUsNiArMTc3LDcg QEAgUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSQU5TRk9STSwgIkRST1AgVFJBTlNGT1JNIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSSUdHRVIsICJEUk9QIFRS SUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVFlQRSwg IkRST1AgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9V U0VSX01BUFBJTkcsICJEUk9QIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BH X0NNRFRBRyhDTURUQUdfRFJPUF9WQVJJQUJMRSwgIkRST1AgVkFSSUFCTEUiLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVklFVywgIkRST1AgVklFVyIsIHRydWUs IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhFQ1VURSwgIkVYRUNVVEUiLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWFBMQUlOLCAiRVhQTEFJTiIsIGZh bHNlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaCBi L3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCmluZGV4IDczMWQ4NGIyYTkzLi45OGFhYjk4MjI5ZSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRp bHMvYWNsLmgKQEAgLTE2OSw2ICsxNjksNyBAQCB0eXBlZGVmIHN0cnVjdCBBcnJheVR5cGUgQWNs OwogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19TQ0hFTUEJCShBQ0xfVVNBR0V8QUNMX0NSRUFURSkK ICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfVEFCTEVTUEFDRQkoQUNMX0NSRUFURSkKICNkZWZpbmUg QUNMX0FMTF9SSUdIVFNfVFlQRQkJCShBQ0xfVVNBR0UpCisjZGVmaW5lIEFDTF9BTExfUklHSFRT X1ZBUklBQkxFCQkoQUNMX1NFTEVDVHxBQ0xfVVBEQVRFKQogCiAvKiBvcGVyYXRpb24gY29kZXMg Zm9yIHBnXypfYWNsbWFzayAqLwogdHlwZWRlZiBlbnVtCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4 IDIwNDQ2ZjZmODM2Li44YTM2ODRlNzExZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMv bHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTEzNCw2 ICsxMzQsNyBAQCBleHRlcm4gY2hhciBnZXRfZnVuY19wcm9raW5kKE9pZCBmdW5jaWQpOwogZXh0 ZXJuIGJvb2wgZ2V0X2Z1bmNfbGVha3Byb29mKE9pZCBmdW5jaWQpOwogZXh0ZXJuIFJlZ1Byb2Nl ZHVyZSBnZXRfZnVuY19zdXBwb3J0KE9pZCBmdW5jaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsbmFt ZV9yZWxpZChjb25zdCBjaGFyICpyZWxuYW1lLCBPaWQgcmVsbmFtZXNwYWNlKTsKK2V4dGVybiBP aWQJZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwgT2lkIHZhcm5hbWVzcGFj ZSk7CiBleHRlcm4gY2hhciAqZ2V0X3JlbF9uYW1lKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdl dF9yZWxfbmFtZXNwYWNlKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxfdHlwZV9pZChP aWQgcmVsaWQpOwpAQCAtMjA2LDYgKzIwNywxNCBAQCBleHRlcm4gY2hhciAqZ2V0X3B1YmxpY2F0 aW9uX25hbWUoT2lkIHB1YmlkLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfc3Vi c2NyaXB0aW9uX29pZChjb25zdCBjaGFyICpzdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0 ZXJuIGNoYXIgKmdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19v ayk7CiAKK2V4dGVybiBjaGFyICpnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCk7 CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShPaWQgdmFyaWQpOwor ZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlKE9pZCB2YXJpZCk7CitleHRlcm4g dm9pZCBnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQoT2lkIHZhcmlkLAor CQkJCQkJCQkJCQkJCU9pZCAqdHlwaWQsCisJCQkJCQkJCQkJCQkJaW50MzIgKnR5cG1vZCwKKwkJ CQkJCQkJCQkJCQlPaWQgKmNvbGxpZCk7CisKICNkZWZpbmUgdHlwZV9pc19hcnJheSh0eXBpZCkg IChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lkKQogLyogdHlwZV9pc19hcnJh eV9kb21haW4gYWNjZXB0cyBib3RoIHBsYWluIGFycmF5cyBhbmQgZG9tYWlucyBvdmVyIGFycmF5 cyAqLwogI2RlZmluZSB0eXBlX2lzX2FycmF5X2RvbWFpbih0eXBpZCkgIChnZXRfYmFzZV9lbGVt ZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9k ZXBlbmRlbmN5Lm91dAppbmRleCA3NGQ5ZmYyOTk4ZC4uYzMzNmY2N2E1OTYgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dApAQCAtMTUxLDMgKzE1MSwyMCBAQCBvd25l ciBvZiB0eXBlIGRlcHRlc3RfdAogRFJPUCBPV05FRCBCWSByZWdyZXNzX2RlcF91c2VyMiwgcmVn cmVzc19kZXBfdXNlcjA7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIFVTRVIg cmVncmVzc19kZXBfdXNlcjA7CistLSBkZXBlbmRlbmN5IG9uIHR5cGUKK0NSRUFURSBET01BSU4g dmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZhcnR5cGUgQVMgKGEgaW50LCBiIGludCwg YyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydHlwZTsKKy0tIHNob3Vs ZCBmYWlsCitEUk9QIERPTUFJTiB2YXJkb21haW47CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUg dmFyZG9tYWluIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIGNv bHVtbiBjIG9mIGNvbXBvc2l0ZSB0eXBlIHZhcnR5cGUgZGVwZW5kcyBvbiB0eXBlIHZhcmRvbWFp bgorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmpl Y3RzIHRvby4KK0RST1AgVFlQRSB2YXJ0eXBlOworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIHZh cnR5cGUgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lv biB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSB2YXJ0eXBlCitISU5UOiAgVXNlIERST1Ag Li4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0gY2xlYW4g dXAKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB2YXJ0eXBlOworRFJPUCBET01BSU4g dmFyZG9tYWluOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lu cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCAyMTVl Yjg5OWJlMy4uZDk5NTMzMjE0MDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvb2lkam9pbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMu b3V0CkBAIC0yNjYsMyArMjY2LDcgQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9u IHtzdWJkYmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vi c2NyaXB0aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2lu ZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnN1YmlkfSA9PiBwZ19zdWJzY3JpcHRpb24ge29pZH0K IE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3NycmVsaWR9ID0+IHBnX2Ns YXNzIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFydHlwZX0gPT4gcGdf dHlwZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zhcm5hbWVzcGFjZX0g PT4gcGdfbmFtZXNwYWNlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFy b3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUg e3ZhcmNvbGxhdGlvbn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w c3FsLm91dAppbmRleCAzNmRjMzFjMTZjNC4uODhlMjExOTQ3MTEgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dApAQCAtNTkzMCw2ICs1OTMwLDMwIEBAIENPTU1JVDsKICMgZmluYWwgT05f RVJST1JfUk9MTEJBQ0s6IG9mZgogRFJPUCBUQUJMRSBibGE7CiBEUk9QIEZVTkNUSU9OIHBzcWxf ZXJyb3I7CistLSBzZXNzaW9uIHZhcmlhYmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwor IFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAg T3duZXIgICAgICAgICAgfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZh cjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCAgICAgICAgICAgICAgICAgICB8IAorKDEgcm93KQorCitHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEUgdmFyMSBUTyBQVUJMSUM7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUg ZGVzY3JpcHRpb24nOworXGRWKyB2YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1h IHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAg ICAgICAgICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAg ICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVi bGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9v d25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJp YWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgdmFyMTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcjsKIC0tIGNoZWNrIGRlc2NyaWJpbmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMK IFxkQSByZWdyZXNzaW9uLmhlYXAKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBk b3R0ZWQgbmFtZXMpOiByZWdyZXNzaW9uLmhlYXAKQEAgLTYxNTEsNiArNjE3NSwxMiBAQCBjcm9z cy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVzdWNoLnB1Ymxp Yy5mdW5jX2RlcHNfc3RhdAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6IHJlZ3Jlc3Npb24ubXlldnQKIFxkeSBub25lc3VjaC5teWV2dAogaW1wcm9wZXIg cXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IG5vbmVzdWNoLm15ZXZ0Citc ZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK2ltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRWIHJl Z3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBu b3QgaW1wbGVtZW50ZWQ6IHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9uZXN1Y2gu cHVibGljLnZhcgorY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVk OiBub25lc3VjaC5wdWJsaWMudmFyCiAtLSBjaGVjayB0aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBu YW1lIHNlZ21lbnRzIGFyZSBub3QgY291bnRlZAogXGRBICJuby5zdWNoLmFjY2Vzcy5tZXRob2Qi CiBMaXN0IG9mIGFjY2VzcyBtZXRob2RzCkBAIC02Mzg1LDYgKzY0MTUsMTIgQEAgTGlzdCBvZiBz Y2hlbWFzCiAtLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LQogKDAgcm93cykKIAorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAor LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAt LSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkQSAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCiBpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5h Y2Nlc3MubWV0aG9kIgpAQCAtNjU1NCw2ICs2NTkwLDEyIEBAIGltcHJvcGVyIHF1YWxpZmllZCBu YW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmlu c3RhCiAKIFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXBy b3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5h bWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50 IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Np b24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKICAgICAgIExpc3Qg b2YgcmVsYXRpb25zCkBAIC02Njg3LDYgKzY3MjksMTIgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0 ZW1wbGF0ZXMKIC0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0KICgwIHJvd3MpCiAKK1xkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVt YSIuIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0r LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0 aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQg Im5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRp b24iCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5z dWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpA QCAtNjczNCw2ICs2NzgyLDggQEAgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGlt cGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW0KIGNyb3NzLWRhdGFi YXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRhdGFiYXNl Ii4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBjcm9zcy1k YXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNl Ii4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgIm5v LnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCitjcm9z cy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFi YXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogLS0gY2hlY2sgXGRyZyBh bmQgXGR1CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUwOwogQ1JFQVRFIFJPTEUgcmVncmVz c19kdV9yb2xlMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQwYWZmNTZh MDFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKQEAgLTAsMCArMSw1OCBAQAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcjsKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworLS0gc2hvdWxkIGZhaWwsIHBzZXVkb3R5cGVzIGFyZSBub3QgYWxsb3dlZAorQ1JFQVRFIFZB UklBQkxFIHZhcjIgQVMgYW55ZWxlbWVudDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5u b3QgYmUgcHNldWRvLXR5cGUgYW55ZWxlbWVudAorLS0gc2hvdWxkIGJlIG9rLCBkbyBub3RoaW5n CitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIyOworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJs ZSAidmFyMiIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCistLSBkbyBub3RoaW5nCitDUkVBVEUg VkFSSUFCTEUgSUYgTk9UIEVYSVNUUyB2YXIxIEFTIGludDsKK05PVElDRTogIHNlc3Npb24gdmFy aWFibGUgInZhcjEiIGFscmVhZHkgZXhpc3RzLCBza2lwcGluZworLS0gc2hvdWxkIGZhaWwKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFy MSIgYWxyZWFkeSBleGlzdHMKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSBJRiBFWElT VFMgdmFyMTsKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSB2YXJpYWJsZSBj b21tZW50JzsKK1NFTEVDVCBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQsICdwZ192YXJp YWJsZScpIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyAgICBvYmpf ZGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHNvbWUgdmFyaWFibGUg Y29tbWVudAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLS0gY2hlY2sgYWNjZXNz IHJpZ2h0cyBhbmQgc3VwcG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworR1JB TlQgQUxMIE9OIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JF QVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworQ1JFQVRFIFJPTEUgcmVncmVzc192 YXJpYWJsZV9yZWFkZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBU TyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgc3ZhcnRl c3QudmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworQUxURVIgVkFSSUFCTEUgc3Zh cnRlc3QudmFyMSBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFSSUFC TEUgc3ZhcnRlc3QudmFyMSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVz dC52YXJ4eCBTRVQgU0NIRU1BIHB1YmxpYzsKK0RST1AgVkFSSUFCTEUgcHVibGljLnZhcnh4Owor QUxURVIgREVGQVVMVCBQUklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293 bmVyCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3QKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMg VE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRl ZmF1bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NS RUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7 CitcZFYrIHN2YXJ0ZXN0LnZhcjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8IE5hbWUg fCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8ICAgICAgICAg ICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAor LS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jl c3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIv cmVncmVzc192YXJpYWJsZV9vd25lciB8IAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHN2YXJ0 ZXN0LnZhcjE7CitEUk9QIFNDSEVNQSBzdmFydGVzdDsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX3JlYWRlcjsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggODFlNDIyMmQyNmEuLjA1ZWI3ODRmNjJiIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTExMSw3ICsxMTEsNyBAQCB0ZXN0OiBqc29uIGpz b25iIGpzb25fZW5jb2RpbmcganNvbnBhdGgganNvbnBhdGhfZW5jb2RpbmcganNvbmJfanNvbnBh dGggc3FsanNvbgogIyBOQjogdGVtcC5zcWwgZG9lcyBhIHJlY29ubmVjdCB3aGljaCB0cmFuc2ll bnRseSB1c2VzIDIgY29ubmVjdGlvbnMsCiAjIHNvIGtlZXAgdGhpcyBwYXJhbGxlbCBncm91cCB0 byBhdCBtb3N0IDE5IHRlc3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IHBsYW5jYWNoZSBsaW1pdCBw bHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRy dW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBvbHltb3JwaGlzbSByb3d0eXBlcyByZXR1cm5p bmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwKK3Rlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNv cHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFs dGVyX3RhYmxlIHNlcXVlbmNlIHBvbHltb3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2Vv YmplY3Qgd2l0aCB4bWwgc2Vzc2lvbl92YXJpYWJsZXMKIAogIyAtLS0tLS0tLS0tCiAjIEFub3Ro ZXIgZ3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2RlcGVuZGVuY3kuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwK aW5kZXggOGQ3NGVkNzEyMmMuLjZjMThiN2Y4NDBhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9kZXBlbmRlbmN5LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRl bmN5LnNxbApAQCAtMTE0LDMgKzExNCwxNyBAQCBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7 CiBEUk9QIE9XTkVEIEJZIHJlZ3Jlc3NfZGVwX3VzZXIyLCByZWdyZXNzX2RlcF91c2VyMDsKIERS T1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMDsK KworLS0gZGVwZW5kZW5jeSBvbiB0eXBlCitDUkVBVEUgRE9NQUlOIHZhcmRvbWFpbiBBUyBpbnQ7 CitDUkVBVEUgVFlQRSB2YXJ0eXBlIEFTIChhIGludCwgYiBpbnQsIGMgdmFyZG9tYWluKTsKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnR5cGU7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIERP TUFJTiB2YXJkb21haW47CitEUk9QIFRZUEUgdmFydHlwZTsKKworLS0gY2xlYW4gdXAKK0RST1Ag VkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB2YXJ0eXBlOworRFJPUCBET01BSU4gdmFyZG9tYWlu OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wc3FsLnNxbAppbmRleCBjNTAyMWZjMGIxMy4uNjY2ZWRkYjYzMmQgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3BzcWwuc3FsCkBAIC0xNjMxLDYgKzE2MzEsMTkgQEAgQ09NTUlUOwogRFJPUCBUQUJM RSBibGE7CiBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiAKKy0tIHNlc3Npb24gdmFyaWFibGUg dGVzdAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENP TExBVEUgIkMiOworXGRWKyB2YXIxCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQ VUJMSUM7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOwor XGRWKyB2YXIxCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitE Uk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKwogLS0gY2hlY2sgZGVzY3JpYmluZyBp bnZhbGlkIG11bHRpcGFydCBuYW1lcwogXGRBIHJlZ3Jlc3Npb24uaGVhcAogXGRBIG5vbmVzdWNo LmhlYXAKQEAgLTE3NDIsNiArMTc1NSw5IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxk WCBub25lc3VjaC5wdWJsaWMuZnVuY19kZXBzX3N0YXQKIFxkeSByZWdyZXNzaW9uLm15ZXZ0CiBc ZHkgbm9uZXN1Y2gubXlldnQKK1xkViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRWIHJl Z3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9uZXN1Y2gucHVibGljLnZhcgogCiAtLSBj aGVjayB0aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBuYW1lIHNlZ21lbnRzIGFyZSBub3QgY291bnRl ZAogXGRBICJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCkBAIC0xNzgzLDYgKzE3OTksOCBAQCBEUk9Q IEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZHggIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lvbiIK IFxkWCAibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogXGR5ICJuby5zdWNoLmV2ZW50LnRy aWdnZXIiCitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRv dHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZEEgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5hY2Nlc3MubWV0aG9kIgpAQCAtMTgyMyw2ICsxODQxLDcgQEAgRFJPUCBGVU5DVElPTiBwc3Fs X2Vycm9yOwogXGR4ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lv biIKIFxkWCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBc ZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50 IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Np b24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKQEAgLTE4NDcsNiAr MTg2Niw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkUCByZWdyZXNzaW9uLiJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQucmVsYXRpb24iCiBcZFQgcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCByZWdyZXNzaW9uLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViByZWdyZXNz aW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBidXQg d2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBc ZHQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVs YXRpb24iCkBAIC0xODcyLDYgKzE4OTIsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBc ZFAgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0aW9u ZWQucmVsYXRpb24iCiBcZFQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2guZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgIm5vLnN1Y2guZGF0YWJhc2UiLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGNoZWNrIFxkcmcgYW5kIFxk dQogQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uODI2NzljYmY0OGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTAsMCArMSw2MSBAQAorQ1JFQVRFIFJPTEUgcmVncmVz c192YXJpYWJsZV9vd25lcjsKKworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsLCBwc2V1ZG90eXBlcyBhcmUgbm90IGFsbG93ZWQK K0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGFueWVsZW1lbnQ7CisKKy0tIHNob3VsZCBiZSBvaywg ZG8gbm90aGluZworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMjsKKworLS0gZG8gbm90aGlu ZworQ1JFQVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgdmFyMSBBUyBpbnQ7CisKKy0tIHNob3Vs ZCBmYWlsCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisKKy0tIHNob3VsZCBiZSBvawor RFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMTsKKworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJp YWJsZQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2 YXIxIElTICdzb21lIHZhcmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rl c2NyaXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJu YW1lID0gJ3ZhcjEnOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tLSBjaGVjayBhY2Nlc3Mg cmlnaHRzIGFuZCBzdXBwb3J0ZWQgQUxURVIKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitHUkFO VCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKK0NS RUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKKworQ1JFQVRFIFJPTEUgcmVncmVz c192YXJpYWJsZV9yZWFkZXI7CisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzdmFydGVzdC52 YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworUkVWT0tFIEFMTCBPTiBWQVJJQUJMRSBz dmFydGVzdC52YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CisKK0FMVEVSIFZBUklB QkxFIHN2YXJ0ZXN0LnZhcjEgT1dORVIgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0FMVEVS IFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgUkVOQU1FIFRPIHZhcnh4OworQUxURVIgVkFSSUFCTEUg c3ZhcnRlc3QudmFyeHggU0VUIFNDSEVNQSBwdWJsaWM7CisKK0RST1AgVkFSSUFCTEUgcHVibGlj LnZhcnh4OworCitBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xFIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIKKyAgIElOIFNDSEVNQSBzdmFydGVzdAorICAgR1JBTlQgU0VMRUNUIE9O IFZBUklBQkxFUyBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworLS0gY3JlYXRpbmcgdmFy aWFibGUgd2l0aCBkZWZhdWx0IHByaXZpbGVnZXMKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitTRVQgUk9M RSBUTyBERUZBVUxUOworCitcZFYrIHN2YXJ0ZXN0LnZhcjEKKworRFJPUCBWQVJJQUJMRSBzdmFy dGVzdC52YXIxOworCitEUk9QIFNDSEVNQSBzdmFydGVzdDsKK0RST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcjsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCAxODQ3YmJmYTk1Yy4uNWIxZTc3MmY2M2QgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC01MzUsNiArNTM1LDcgQEAgQ3JlYXRlUm9sZVN0bXQKIENy ZWF0ZVNjaGVtYVN0bXQKIENyZWF0ZVNjaGVtYVN0bXRDb250ZXh0CiBDcmVhdGVTZXFTdG10CitD cmVhdGVTZXNzaW9uVmFyU3RtdAogQ3JlYXRlU3RhdHNTdG10CiBDcmVhdGVTdG10CiBDcmVhdGVT dG10Q29udGV4dApAQCAtODc0LDYgKzg3NSw3IEBAIEZvcm1EYXRhX3BnX3RzX3BhcnNlcgogRm9y bURhdGFfcGdfdHNfdGVtcGxhdGUKIEZvcm1EYXRhX3BnX3R5cGUKIEZvcm1EYXRhX3BnX3VzZXJf bWFwcGluZworRm9ybURhdGFfcGdfdmFyaWFibGUKIEZvcm1FeHRyYURhdGFfcGdfYXR0cmlidXRl CiBGb3JtX3BnX2FnZ3JlZ2F0ZQogRm9ybV9wZ19hbQpAQCAtOTMzLDYgKzkzNSw3IEBAIEZvcm1f cGdfdHNfcGFyc2VyCiBGb3JtX3BnX3RzX3RlbXBsYXRlCiBGb3JtX3BnX3R5cGUKIEZvcm1fcGdf dXNlcl9tYXBwaW5nCitGb3JtX3BnX3ZhcmlhYmxlCiBGb3JtYXROb2RlCiBGcmVlQmxvY2tOdW1i ZXJBcnJheQogRnJlZUxpc3REYXRhCkBAIC0zMDc3LDYgKzMwODAsNyBAQCBWYXJTdHJpbmcKIFZh clN0cmluZ1NvcnRTdXBwb3J0CiBWYXJpYWJsZQogVmFyaWFibGVBc3NpZ25Ib29rCitWYXJpYWJs ZUluZm8KIFZhcmlhYmxlU2V0S2luZAogVmFyaWFibGVTZXRTdG10CiBWYXJpYWJsZVNob3dTdG10 Ci0tIAoyLjQ3LjAKCg== --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename*0=v20241113-0002-Storage-for-session-variables-and-SQL-inte.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0002-Storage-for-session-variables-and-SQL-inte.patch"; charset="UTF-8" RnJvbSBmM2E2YmE3ZWJjOGM1YzVlNDdhMGRmOTNhYzc2NTA1YTcwZDY4NmZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggdjIw MjQxMTEzIDAyLzIwXSBTdG9yYWdlIGZvciBzZXNzaW9uIHZhcmlhYmxlcyBhbmQgU1FMCiBpbnRl cmZhY2UKClNlc3Npb24gdmFyaWFibGVzIGFyZSBzdG9yZWQgaW4gc2Vzc2lvbiBtZW1vcnkgaW4g YSBkZWRpY2F0ZWQgaGFzaCB0YWJsZS4KVGhleSBhcmUgc2V0IGJ5IHRoZSBMRVQgY29tbWFuZCBh bmQgcmVhZCBieSB0aGUgU0VMRUNUIGNvbW1hbmQuClRoZSBhY2Nlc3MgcmlnaHRzIHNob3VsZCBi ZSBjaGVja2VkLgoKVGhlIGlkZW50aWZpZXJzIG9mIHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCBh bHdheXMgYmUgc2hhZG93ZWQgYnkgcG9zc2libGUKY29sdW1uIGlkZW50aWZpZXJzOiB3ZSBkb24n dCB3YW50IHRvIGJyZWFrIGFuIGFwcGxpY2F0aW9uIGJ5IGNyZWF0aW5nIHNvbWUKYmFkbHkgbmFt ZWQgc2Vzc2lvbiB2YXJpYWJsZS4KClRoZSBsaW1pdHMgb2YgdGhpcyBwYXRjaCAoc29sdmVkIGJ5 IG90aGVyIHBhdGNoZXMpOgoKLSBzZXNzaW9uIHZhcmlhYmxlcyBibG9jayBwYXJhbGxlbCBleGVj dXRpb24KLSBzZXNzaW9uIHZhcmlhYmxlcyBibG9ja3Mgc2ltcGxlIGV4cHJlc3Npb24gZXZhbHVh dGlvbiAoaW4gcGxwZ3NxbCkKLSBTUUwgZnVuY3Rpb25zIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMg YXJlIG5vdCBpbmxpbmVkCi0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCAodXNhZ2Ug b2YgZGlyZWN0IGFjY2VzcyB0byBleHByZXNzIGV4ZWN1dG9yKQotIEVYRUNVVEUgc3RhdGVtZW50 IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBhY2Nlc3MgdG8gZXhwcmVzcyBleGVj dXRvcikKLSBtZW1vcnkgdXNlZCBieSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCBy ZWxlYXNlZAoKSW1wbGVtZW50YXRpb25zIG9mIEVYUExBSU4gTEVUIGFuZCBQUkVQQVJFIExFVCBz dGF0ZW1lbnRzCmFyZSBpbiBzZXBhcmF0ZSBwYXRjaGVzIChmb3IgYmV0dGVyIHJlYWRhYmlsaXR5 KQotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAx MyArCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzIg KwogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICA2ICsK IGRvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAxNCArCiBk b2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAgICAgfCAgIDEgKwogZG9j L3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAxICsKIGRvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAgMSArCiBkb2Mvc3Jj L3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9sZXQuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwgIDk2ICsrCiBkb2Mvc3JjL3Nn bWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8IDMxNSArKysrKysKIHNyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCA1NzEgKysrKysrKysrKysKIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAgMzYgKwogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgIDU3ICsrCiBzcmMvYmFja2VuZC9leGVj dXRvci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYyAgICAgIHwgMjAxICsrKysKIHNyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAxMCArCiBzcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vc2V0cmVmcy5jICAgICAgICAgIHwgMTM1ICsrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVy L3ByZXAvcHJlcGpvaW50cmVlLmMgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYyAgICAgICAgICB8ICAzNSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYyAgICAgICAgICAgICAgICAgIHwgMjcxICsrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55ICAgICAgICAgICAgICAgICAgICAgfCAgNDkgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jICAgICAgICAgICAgICAgfCAyMjAgKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC90Y29wL2Rlc3QuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYyAg ICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAg ICAgICAgICAgICAgICAgICB8ICAxNiArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMgICAgICAgICAgICAgfCAgNDYgKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hl LmMgICAgICAgICAgIHwgIDQxICstCiBzcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYyAgICAg ICAgICAgICAgICAgfCAgMTAgKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAg ICAgICAgICAgICB8ICAxMiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCAgICAg ICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAg ICAgICAgICB8ICAgOCArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgg ICAgICAgfCAgMzIgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaCAgICAgICAgICAg ICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmggICAg ICB8ICAyMiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgICAg fCAgMTYgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwg IDE3ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAg NSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDQg Ky0KIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNiAr CiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCAgICAgICAgICAgICAgfCAgIDIgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAgICAgICAgICB8ICAgMyArCiBzcmMv aW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2lu Y2x1ZGUvdGNvcC9kZXN0LmggICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9wbC9w bHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAgICAgICAgICAgICB8ICAgMyArLQogLi4uL3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgOTI1ICsrKysrKysrKysrKysr KysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNjM5 ICsrKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAg ICAgIHwgICA1ICsKIDU4IGZpbGVzIGNoYW5nZWQsIDM5MTYgaW5zZXJ0aW9ucygrKSwgMjMgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2Vp dmVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFi bGVSZWNlaXZlci5oCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA1NzA5YzljZGJkNC4uYWE3OTY4NzZlOTcg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sCkBAIC05Nzg0LDYgKzk3ODQsMTkgQEAgU0NSQU0tU0hBLTI1NiQ8cmVw bGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFi bGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0 ZmllbGQ+IDx0eXBlPlhMb2dSZWNQdHI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBMU04gb2YgdGhlIHRyYW5zYWN0aW9uIHdoZXJlIHRoZSB2YXJpYWJsZSB3YXMg Y3JlYXRlZC4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+ IGFuZAorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiB0b2dldGhlciBmb3Jt IHRoZSBhbGwtdGltZSB1bmlxdWUKKyAgICAgICBpZGVudGlmaWVyICg8c3RydWN0ZmllbGQ+b2lk PC9zdHJ1Y3RmaWVsZD4gYWxvbmUgaXMgbm90IGVub3VnaCwgc2luY2UKKyAgICAgICBvYmplY3Qg aWRlbnRpZmllcnMgY2FuIGdldCByZXVzZWQpLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVs ZD52YXJuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA2YWUzNmY4 MzJmNy4uZDQ2MzliMjc3OTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUzMTYsNiArNTMxNiwzOCBAQCBFWFBMQUlOIFNF TEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAn MjAwOC0wMS0wMSc7CiAgICAgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQuCiAgICA8L3BhcmE+ CiAKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgc2V0 IHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+LiAgVGhl IHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUgcmV0cmlldmVkCisgICAgd2l0aCB0 aGUgU1FMIHN0YXRlbWVudCA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+LgorPHByb2dyYW1saXN0 aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xFVCB2YXIxID0gY3VycmVudF9k YXRlOworU0VMRUNUIHZhcjE7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgb3IKKworPHByb2dy YW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgQVMgaW50 ZWdlcjsKK0dSQU5UIFJFQUQgT04gVkFSSUFCTEUgcHVibGljLmN1cnJlbnRfdXNlcl9pZCBUTyBQ VUJMSUM7CitMRVQgY3VycmVudF91c2VyX2lkID0gKFNFTEVDVCBpZCBGUk9NIHVzZXJzIFdIRVJF IHVzZW5hbWUgPSBzZXNzaW9uX3VzZXIpOworU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBh IHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gUmV0cmll dmluZworICAgIGEgdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIGEgPGxpdGVyYWw+TlVMTDwvbGl0 ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCisgICAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVs c2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2luZyB0aGUKKyAgICA8Y29tbWFuZD5MRVQ8L2Nv bW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IHRyYW5zYWN0aW9uYWw6 CisgICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxl IGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKKyAgICBiZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9u IGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVzIGluCisgICAgcHJvY2VkdXJhbCBs YW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBhcmUgcGVyc2lzdGVudCwg YnV0CisgICAgdGhlaXIgdmFsdWVzIGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZCAo bGlrZSB0aGUgY29udGVudCBvZgorICAgIHRlbXBvcmFyeSB0YWJsZXMpLgorICAgPC9wYXJhPgor CiAgICA8cGFyYT4KICAgICBJbnNpZGUgYSBxdWVyeSBvciBhbiBleHByZXNzaW9uLCBhIHNlc3Np b24gdmFyaWFibGUgY2FuIGJlCiAgICAgPHF1b3RlPnNoYWRvd2VkPC9xdW90ZT4gYnkgYSBjb2x1 bW4gd2l0aCB0aGUgc2FtZSBuYW1lLiAgU2ltaWxhcmx5LCB0aGUKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9wYXJhbGxlbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKaW5kZXgg MWNlOWFiZjg2ZjUuLjY4M2RlZGU2YWRjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGFyYWxs ZWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbApAQCAtNTE1LDYgKzUxNSwx MiBAQCBFWFBMQUlOIFNFTEVDVCAqIEZST00gcGdiZW5jaF9hY2NvdW50cyBXSEVSRSBmaWxsZXIg TElLRSAnJXglJzsKICAgICAgICAgUGxhbiBub2RlcyB0aGF0IHJlZmVyZW5jZSBhIGNvcnJlbGF0 ZWQgPGxpdGVyYWw+U3ViUGxhbjwvbGl0ZXJhbD4uCiAgICAgICA8L3BhcmE+CiAgICAgPC9saXN0 aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgICBQbGFuIG5vZGVz IHRoYXQgdXNlIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgogICA8L2l0ZW1pemVkbGlzdD4KIAogIDxzZWN0MiBpZD0icGFyYWxsZWwtbGFiZWxpbmci PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9w bHBnc3FsLnNnbWwKaW5kZXggNzhlNDk4MzEzOWIuLmJmYmZmOWFiNzRlIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwK QEAgLTYwMzQsNiArNjAzNCwyMCBAQCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNUUklDVCBJTU1VVEFC TEU7CiA8L3Byb2dyYW1saXN0aW5nPgogICAgIDwvcGFyYT4KICAgIDwvc2VjdDM+CisKKyAgIDxz ZWN0MyBpZD0icGxwZ3NxbC1wb3J0aW5nLXBhY2thZ2UtdmFyaWFibGVzIj4KKyAgICA8dGl0bGU+ PGNvbW1hbmQ+UGFja2FnZXMgYW5kIHBhY2thZ2UgdmFyaWFibGVzPC9jb21tYW5kPjwvdGl0bGU+ CisKKyAgICA8cGFyYT4KKyAgICAgVGhlIDxhcHBsaWNhdGlvbj5QTC9wZ1NRTDwvYXBwbGljYXRp b24+IGxhbmd1YWdlIGhhcyBubyBwYWNrYWdlcywgYW5kCisgICAgIHRoZXJlZm9yZSBubyBwYWNr YWdlIHZhcmlhYmxlcyBvciBwYWNrYWdlIGNvbnN0YW50cy4KKyAgICAgWW91IGNhbiBjb25zaWRl ciB0cmFuc2xhdGluZyBhbiBPcmFjbGUgcGFja2FnZSBpbnRvIGEgc2NoZW1hIGluCisgICAgIDxw cm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4uICBQYWNrYWdlIGZ1bmN0aW9ucyBh bmQgcHJvY2VkdXJlcworICAgICB3b3VsZCB0aGVuIGJlY29tZSBmdW5jdGlvbnMgYW5kIHByb2Nl ZHVyZXMgaW4gdGhhdCBzY2hlbWEsIGFuZCBwYWNrYWdlCisgICAgIHZhcmlhYmxlcyBjb3VsZCBi ZSB0cmFuc2xhdGVkIHRvIHNlc3Npb24gdmFyaWFibGVzIGluIHRoYXQgc2NoZW1hLgorICAgICAo c2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPikuCisgICAgPC9wYXJh PgorICAgPC9zZWN0Mz4KICAgPC9zZWN0Mj4KIAogICA8c2VjdDIgaWQ9InBscGdzcWwtcG9ydGlu Zy1hcHBlbmRpeCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggMmY2N2RlM2UyMWIuLmNjM2Jk NWFiNTQwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC0xNTgsNiArMTU4LDcgQEAgQ29tcGxl dGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8 IUVOVElUWSBncmFudCAgICAgICAgICAgICAgU1lTVEVNICJncmFudC5zZ21sIj4KIDwhRU5USVRZ IGltcG9ydEZvcmVpZ25TY2hlbWEgU1lTVEVNICJpbXBvcnRfZm9yZWlnbl9zY2hlbWEuc2dtbCI+ CiA8IUVOVElUWSBpbnNlcnQgICAgICAgICAgICAgU1lTVEVNICJpbnNlcnQuc2dtbCI+Cis8IUVO VElUWSBsZXQgICAgICAgICAgICAgICAgU1lTVEVNICJsZXQuc2dtbCI+CiA8IUVOVElUWSBsaXN0 ZW4gICAgICAgICAgICAgU1lTVEVNICJsaXN0ZW4uc2dtbCI+CiA8IUVOVElUWSBsb2FkICAgICAg ICAgICAgICAgU1lTVEVNICJsb2FkLnNnbWwiPgogPCFFTlRJVFkgbG9jayAgICAgICAgICAgICAg IFNZU1RFTSAibG9jay5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf dmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAppbmRl eCBkODc1NzBlN2Q4Yi4uZDIwMzYzNTFlNTMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxl LnNnbWwKQEAgLTE3Myw2ICsxNzMsNyBAQCBBTFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVNQSBw cml2YXRlOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJlZiBs aW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBs aW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3Qx PgogPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IGVj MTY1YWI5NmZjLi4wNWJmNjdlMzQxMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5z Z21sCkBAIC0xNDUsNiArMTQ1LDcgQEAgU0VMRUNUIHZhcjE7CiAgIDxzaW1wbGVsaXN0IHR5cGU9 ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+ PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48 L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgog ICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUu c2dtbAppbmRleCA1YmRiMzU2MGYwYi4uNjc5ODhiNWZjZDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92 YXJpYWJsZS5zZ21sCkBAIC0xMTEsNiArMTExLDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICA8 c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt YWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt Y3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNn bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY2NjQwNTc2YmVlCi0t LSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbApAQCAtMCwwICsxLDk2 IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50 YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1sZXQiPgorIDxpbmRleHRlcm0gem9uZT0i c3FsLWxldCI+CisgIDxwcmltYXJ5PkxFVDwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxp bmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNv bmRhcnk+Y2hhbmdpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgor ICA8cmVmZW50cnl0aXRsZT5MRVQ8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFu dm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlz Y2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkxFVDwvcmVm bmFtZT4KKyAgPHJlZnB1cnBvc2U+Y2hhbmdlIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlPC9y ZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNp cz4KK0xFVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwv cmVwbGFjZWFibGU+ID0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNxbF9leHByZXNz aW9uPC9yZXBsYWNlYWJsZT4KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRo ZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQgYXNzaWducyBhIHZhbHVlIHRvIHRoZSBz cGVjaWZpZWQgc2Vzc2lvbgorICAgdmFyaWFibGUuCisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFi bGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5zZXNzaW9uX3Zh cmlhYmxlPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAg ICAgVGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+c3FsX2V4cHJlc3Npb248L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBbiBhcmJpdHJhcnkgU1FMIGV4cHJlc3Npb24uICBU aGUgcmVzdWx0IG11c3QgYmUgb2YgYSBkYXRhIHR5cGUgdGhhdCBjYW4KKyAgICAgIGJlIGNhc3Qg dG8gdGhlIHR5cGUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgaW4gYW4gYXNzaWdubWVudC4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3Zh cmlhYmxlbGlzdD4KKworICA8cGFyYT4KKyAgIEV4YW1wbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitD UkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgaW50ZWdlcjsKK0xFVCBteXZhciA9IDEwOworTEVUIG15 dmFyID0gKFNFTEVDVCBzdW0odmFsKSBGUk9NIHRhYik7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8 L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxp dHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gaXMg YSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICBleHRlbnNpb24uCisg IDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288 L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4K KyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZl cmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCAyNTU3OGYzOTQ2 Yy4uMTNlNGFkYzVkZjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTE4Niw2ICsxODYsNyBAQAogICAg JmdyYW50OwogICAgJmltcG9ydEZvcmVpZ25TY2hlbWE7CiAgICAmaW5zZXJ0OworICAgJmxldDsK ICAgICZsaXN0ZW47CiAgICAmbG9hZDsKICAgICZsb2NrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3ku YwppbmRleCBjOWQ2ODY2NjVkZS4uMTQ4NzE5ZTQ5MGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5j eS5jCkBAIC0xODY0LDYgKzE4NjQsMTEgQEAgZmluZF9leHByX3JlZmVyZW5jZXNfd2Fsa2VyKE5v ZGUgKm5vZGUsCiAJewogCQlQYXJhbQkgICAqcGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAorCQkv KiBhIHZhcmlhYmxlIHBhcmFtZXRlciBkZXBlbmRzIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICov CisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJYWRkX29iamVj dF9hZGRyZXNzKFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdmFyaWQsIDAsCisJCQkJ CQkJICAgY29udGV4dC0+YWRkcnMpOworCiAJCS8qIEEgcGFyYW1ldGVyIG11c3QgZGVwZW5kIG9u IHRoZSBwYXJhbWV0ZXIncyBkYXRhdHlwZSAqLwogCQlhZGRfb2JqZWN0X2FkZHJlc3MoVHlwZVJl bGF0aW9uSWQsIHBhcmFtLT5wYXJhbXR5cGUsIDAsCiAJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCA4NmUyMjU4NjU3ZC4uNDg3MzUzZWYyZWIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtMzQxMiw2ICszNDEyLDMyMSBAQCBMb29rdXBWYXJp YWJsZShjb25zdCBjaGFyICpuc3BuYW1lLAogCXJldHVybiB2YXJvaWQ7CiB9CiAKKy8qCisgKiBU aGUgaW5wdXQgbGlzdCBjb250YWlucyBuYW1lcyB3aXRoIGluZGlyZWN0aW9uIGV4cHJlc3Npb25z IHVzZWQgYXMgdGhlIGxlZnQKKyAqIHBhcnQgb2YgTEVUIHN0YXRlbWVudC4gVGhlIGZvbGxvd2lu ZyByb3V0aW5lIHJldHVybnMgYSBuZXcgbGlzdCB3aXRoIG9ubHkKKyAqIGluaXRpYWwgc3RyaW5n cyAobmFtZXMpIC0gd2l0aG91dCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucy4KKyAqLworTGlzdCAq CitOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKQoreworCUxpc3RDZWxsICAgKmw7CisJTGlzdAkg ICAqcmVzdWx0ID0gTklMOworCisJZm9yZWFjaChsLCBuYW1lcykKKwl7CisJCU5vZGUJICAgKm4g PSBsZmlyc3QobCk7CisKKwkJaWYgKElzQShuLCBTdHJpbmcpKQorCQl7CisJCQlyZXN1bHQgPSBs YXBwZW5kKHJlc3VsdCwgbik7CisJCX0KKwkJZWxzZQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJu IHJlc3VsdDsKK30KKworLyogLS0tLS0KKyAqIElkZW50aWZ5VmFyaWFibGUgLSB0cnkgdG8gZmlu ZCBhIHZhcmlhYmxlIGZyb20gYSBsaXN0IG9mIGlkZW50aWZpZXJzCisgKgorICogUmV0dXJucyB0 aGUgT0lEIG9mIHRoZSB2YXJpYWJsZSBmb3VuZCwgb3IgSW52YWxpZE9pZC4KKyAqCisgKiAibmFt ZXMiIGlzIGEgbGlzdCBvZiB1cCB0byBmb3VyIGlkZW50aWZpZXJzOyBwb3NzaWJsZSBtZWFuaW5n cyBhcmU6CisgKiAtIHZhcmlhYmxlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJjaF9wYXRoKQorICog LSBzY2hlbWEudmFyaWFibGUKKyAqIC0gdmFyaWFibGUuYXR0cmlidXRlICAoc2VhcmNoZWQgb24g dGhlIHNlYXJjaF9wYXRoKQorICogLSBzY2hlbWEudmFyaWFibGUuYXR0cmlidXRlCisgKiAtIGRh dGFiYXNlLnNjaGVtYS52YXJpYWJsZQorICogLSBkYXRhYmFzZS5zY2hlbWEudmFyaWFibGUuYXR0 cmlidXRlCisgKgorICogSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSB3YXkgdG8gaWRlbnRpZnkg YSB2YXJpYWJsZSwgIm5vdF91bmlxdWUiIHdpbGwgYmUKKyAqIHNldCB0byB0cnVlLgorICoKKyAq IFVubGVzcyAibm9lcnJvciIgaXMgdHJ1ZSwgYW4gZXJyb3IgaXMgcmFpc2VkIGlmIHRoZXJlIGFy ZSBtb3JlIHRoYW4gZm91cgorICogIGlkZW50aWZpZXJzIGluIHRoZSBsaXN0LCBvciBpZiB0aGUg bmFtZWQgZGF0YWJhc2UgaXMgbm90IHRoZSBjdXJyZW50IG9uZS4KKyAqIFRoaXMgaXMgdXNlZnVs IGlmIHdlIHdhbnQgdG8gaWRlbnRpZnkgYSBzaGFkb3dlZCB2YXJpYWJsZS4KKyAqCisgKiBJZiBh biBhdHRyaWJ1dGUgaXMgaWRlbnRpZmllZCwgaXQgaXMgc3RvcmVkIGluICJhdHRybmFtZSIsIG90 aGVyd2lzZSB0aGUKKyAqIHBhcmFtZXRlciBpcyBzZXQgdG8gTlVMTC4KKyAqCisgKiBUaGUgaWRl bnRpZmllZCBzZXNzaW9uIHZhcmlhYmxlIHdpbGwgYmUgbG9ja2VkIHdpdGggYW4gQWNjZXNzU2hh cmVMb2NrLgorICogLS0tLS0KKyAqLworT2lkCitJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVz LCBjaGFyICoqYXR0cm5hbWUsIGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcikKK3sKKwlP aWQJCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJT2lkCQkJb2xkX3ZhcmlkID0gSW52YWxpZE9pZDsK Kwl1aW50NjQJCWludmFsX2NvdW50OworCWJvb2wJCXJldHJ5ID0gZmFsc2U7CisKKwkvKgorCSAq IERETCBvcGVyYXRpb25zIGNhbiBjaGFuZ2UgdGhlIHJlc3VsdHMgb2YgYSBuYW1lIGxvb2t1cC4g IFNpbmNlIGFsbCBzdWNoCisJICogb3BlcmF0aW9ucyB3aWxsIGdlbmVyYXRlIGludmFsaWRhdGlv biBtZXNzYWdlcywgd2Uga2VlcCB0cmFjayBvZgorCSAqIHdoZXRoZXIgYW55IHN1Y2ggbWVzc2Fn ZXMgc2hvdyB1cCB3aGlsZSB3ZSdyZSBwZXJmb3JtaW5nIHRoZSBvcGVyYXRpb24sCisJICogYW5k IHJldHJ5IHVudGlsIGVpdGhlciAoMSkgbm8gbW9yZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMgc2hv dyB1cCBvciAoMikKKwkgKiB0aGUgYW5zd2VyIGRvZXNuJ3QgY2hhbmdlLgorCSAqLworCWZvciAo OzspCisJeworCQlOb2RlCSAgICpmaWVsZDEgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDIgPSBO VUxMOworCQlOb2RlCSAgICpmaWVsZDMgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDQgPSBOVUxM OworCQljaGFyCSAgICphID0gTlVMTDsKKwkJY2hhcgkgICAqYiA9IE5VTEw7CisJCWNoYXIJICAg KmMgPSBOVUxMOworCQljaGFyCSAgICpkID0gTlVMTDsKKwkJT2lkCQkJdmFyb2lkX3dpdGhvdXRf YXR0ciA9IEludmFsaWRPaWQ7CisJCU9pZAkJCXZhcm9pZF93aXRoX2F0dHIgPSBJbnZhbGlkT2lk OworCisJCSpub3RfdW5pcXVlID0gZmFsc2U7CisJCSphdHRybmFtZSA9IE5VTEw7CisJCXZhcmlk ID0gSW52YWxpZE9pZDsKKworCQlpbnZhbF9jb3VudCA9IFNoYXJlZEludmFsaWRNZXNzYWdlQ291 bnRlcjsKKworCQlzd2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwkJeworCQkJY2FzZSAxOgor CQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKworCQkJCUFzc2VydChJc0EoZmllbGQxLCBT dHJpbmcpKTsKKworCQkJCXZhcmlkID0gTG9va3VwVmFyaWFibGUoTlVMTCwgc3RyVmFsKGZpZWxk MSksIHRydWUpOworCQkJCWJyZWFrOworCisJCQljYXNlIDI6CisJCQkJZmllbGQxID0gbGluaXRp YWwobmFtZXMpOworCQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMpOworCisJCQkJQXNzZXJ0KElz QShmaWVsZDEsIFN0cmluZykpOworCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKworCQkJCWlmIChJ c0EoZmllbGQyLCBTdHJpbmcpKQorCQkJCXsKKwkJCQkJLyogd2hlbiBib3RoIGZpZWxkcyBhcmUg b2Ygc3RyaW5nIHR5cGUgKi8KKwkJCQkJYiA9IHN0clZhbChmaWVsZDIpOworCisJCQkJCS8qCisJ CQkJCSAqIGEuYiBjYW4gbWVhbiAic2NoZW1hIi4idmFyaWFibGUiIG9yICJ2YXJpYWJsZSIuImZp ZWxkIi4KKwkJCQkJICogQ2hlY2sgYm90aCB2YXJpYW50cywgYW5kIHJldHVybnMgSW52YWxpZE9p ZCB3aXRoCisJCQkJCSAqIG5vdF91bmlxdWUgZmxhZywgd2hlbiBib3RoIGludGVycHJldGF0aW9u cyBhcmUKKwkJCQkJICogcG9zc2libGUuCisJCQkJCSAqLworCQkJCQl2YXJvaWRfd2l0aG91dF9h dHRyID0gTG9va3VwVmFyaWFibGUoYSwgYiwgdHJ1ZSk7CisJCQkJCXZhcm9pZF93aXRoX2F0dHIg PSBMb29rdXBWYXJpYWJsZShOVUxMLCBhLCB0cnVlKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsK KwkJCQkJLyogdGhlIGxhc3QgZmllbGQgb2YgbGlzdCBjYW4gYmUgc3RhciB0b28gKi8KKwkJCQkJ QXNzZXJ0KElzQShmaWVsZDIsIEFfU3RhcikpOworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoaXMg Y2FzZSwgdGhlIGZpZWxkMSBzaG91bGQgYmUgdmFyaWFibGUgbmFtZS4gQnV0CisJCQkJCSAqIGRp cmVjdCB1bmJveGluZyBvZiBjb21wb3NpdGUgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90CisJCQkJ CSAqIHN1cHBvcnRlZCBub3csIGFuZCB0aGVuIHdlIGRvbid0IG5lZWQgdG8gdHJ5IGxvb2t1cAor CQkJCQkgKiByZWxhdGVkIHZhcmlhYmxlLgorCQkJCQkgKgorCQkJCQkgKiBVbmJveGluZyBpcyBz dXBwb3J0ZWQgYnkgc3ludGF4ICh2YXIpLioKKwkJCQkJICovCisJCQkJCXJldHVybiBJbnZhbGlk T2lkOworCQkJCX0KKworCQkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpICYm IE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJeworCQkJCQkqbm90X3VuaXF1ZSA9 IHRydWU7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQl9CisJCQkJZWxz ZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSkKKwkJCQl7CisJCQkJCXZhcmlk ID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQl9CisJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2 YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSphdHRybmFtZSA9IGI7CisJCQkJCXZhcmlk ID0gdmFyb2lkX3dpdGhfYXR0cjsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgMzoKKwkJ CQl7CisJCQkJCWJvb2wJCWZpZWxkMV9pc19jYXRhbG9nID0gZmFsc2U7CisKKwkJCQkJZmllbGQx ID0gbGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwkJCQkJ ZmllbGQzID0gbHRoaXJkKG5hbWVzKTsKKworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5n KSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBTdHJpbmcpKTsKKworCQkJCQlhID0gc3RyVmFs KGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKworCQkJCQlpZiAoSXNBKGZpZWxk MywgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJYyA9IHN0clZhbChmaWVsZDMpOworCisJCQkJCQkv KgorCQkJCQkJICogYS5iLmMgY2FuIG1lYW4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb3IKKwkJ CQkJCSAqIHNjaGVtYS52YXJpYWJsZS5maWVsZC4KKwkJCQkJCSAqCisJCQkJCQkgKiBDaGVjayBi b3RoIHZhcmlhbnRzLCBhbmQgc2V0IG5vdF91bmlxdWUgZmxhZywgd2hlbgorCQkJCQkJICogYm90 aCBpbnRlcnByZXRhdGlvbnMgYXJlIHBvc3NpYmxlLgorCQkJCQkJICoKKwkJCQkJCSAqIFdoZW4g dGhpcmQgbm9kZSBpcyBzdGFyLCBvbmx5IHBvc3NpYmxlCisJCQkJCQkgKiBpbnRlcnByZXRhdGlv biBpcyBzY2hlbWEudmFyaWFibGUuKiwgYnV0IHRoaXMKKwkJCQkJCSAqIHBhdHRlcm4gaXMgbm90 IHN1cHBvcnRlZCBub3cuCisJCQkJCQkgKi8KKwkJCQkJCXZhcm9pZF93aXRoX2F0dHIgPSBMb29r dXBWYXJpYWJsZShhLCBiLCB0cnVlKTsKKworCQkJCQkJLyoKKwkJCQkJCSAqIGNoZWNrIHBhdHRl cm4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb25seSB3aGVuCisJCQkJCQkgKiB0aGVyZSBpcyBw b3NzaWJpbGl0eSB0byBzdWNjZXNzLgorCQkJCQkJICovCisJCQkJCQlpZiAoc3RyY21wKGEsIGdl dF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpID09IDApCisJCQkJCQl7CisJCQkJCQkJZmll bGQxX2lzX2NhdGFsb2cgPSB0cnVlOworCQkJCQkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBMb29r dXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCQllbHNlCisJCQkJ CXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQzLCBBX1N0YXIpKTsKKwkJCQkJCXJldHVybiBJbnZh bGlkT2lkOworCQkJCQl9CisKKwkJCQkJaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0 cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQkJeworCQkJCQkJKm5vdF91 bmlxdWUgPSB0cnVlOworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCQl9 CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikpCisJCQkJCXsK KwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQkJfQorCQkJCQllbHNlIGlm IChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCQl7CisJCQkJCQkqYXR0cm5hbWUg PSBjOworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9hdHRyOworCQkJCQl9CisKKwkJCQkJLyoK KwkJCQkJICogV2hlbiB3ZSBkaWRuJ3QgZmluZCB2YXJpYWJsZSwgd2UgY2FuICh3aGVuIGl0IGlz CisJCQkJCSAqIGFsbG93ZWQpIHJhaXNlIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZSBlcnJvci4K KwkJCQkJICovCisJCQkJCWlmICghT2lkSXNWYWxpZCh2YXJpZCkgJiYgIW5vZXJyb3IgJiYgIWZp ZWxkMV9pc19jYXRhbG9nKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkgZXJybXNnKCJjcm9zcy1k YXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwKKwkJCQkJCQkJCQlO YW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWNhc2Ug NDoKKwkJCQl7CisJCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQkJZmllbGQyID0g bHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0aGlyZChuYW1lcyk7CisJCQkJCWZpZWxk NCA9IGxmb3VydGgobmFtZXMpOworCisJCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsK KwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIFN0cmluZykpOworCQkJCQlBc3NlcnQoSXNBKGZpZWxk MywgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCQkJCQliID0gc3RyVmFs KGZpZWxkMik7CisJCQkJCWMgPSBzdHJWYWwoZmllbGQzKTsKKworCQkJCQkvKgorCQkJCQkgKiBJ biB0aGlzIGNhc2UsICJhIiBpcyB1c2VkIGFzIGNhdGFsb2cgbmFtZSAtIGNoZWNrIGl0LgorCQkJ CQkgKi8KKwkJCQkJaWYgKHN0cmNtcChhLCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQp KSAhPSAwKQorCQkJCQl7CisJCQkJCQlpZiAoIW5vZXJyb3IpCisJCQkJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1l bnRlZDogJXMiLAorCQkJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCQkJ fQorCisJCQkJCWlmIChJc0EoZmllbGQ0LCBTdHJpbmcpKQorCQkJCQl7CisJCQkJCQlkID0gc3Ry VmFsKGZpZWxkNCk7CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlBc3NlcnQoSXNB KGZpZWxkNCwgQV9TdGFyKSk7CisJCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJCQkJfQorCisJ CQkJCSphdHRybmFtZSA9IGQ7CisJCQkJCXZhcmlkID0gTG9va3VwVmFyaWFibGUoYiwgYywgdHJ1 ZSk7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQlkZWZhdWx0OgorCQkJCWlmICghbm9lcnJvcikK KwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCisJCQkJCQkJIGVycm1zZygiaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRv dHRlZCBuYW1lcyk6ICVzIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOwor CQkJCXJldHVybiBJbnZhbGlkT2lkOworCQl9CisKKwkJLyoKKwkJICogSWYsIHVwb24gcmV0cnks IHdlIGdldCBiYWNrIHRoZSBzYW1lIE9JRCB3ZSBkaWQgbGFzdCB0aW1lLCB0aGVuIHRoZQorCQkg KiBpbnZhbGlkYXRpb24gbWVzc2FnZXMgd2UgcHJvY2Vzc2VkIGRpZCBub3QgY2hhbmdlIHRoZSBm aW5hbCBhbnN3ZXIuCisJCSAqIFNvIHdlJ3JlIGRvbmUuCisJCSAqCisJCSAqIElmIHdlIGdvdCBh IGRpZmZlcmVudCBPSUQsIHdlJ3ZlIGxvY2tlZCB0aGUgdmFyaWFibGUgdGhhdCB1c2VkIHRvCisJ CSAqIGhhdmUgdGhpcyBuYW1lIHJhdGhlciB0aGFuIHRoZSBvbmUgdGhhdCBkb2VzIG5vdy4gIFNv IHJlbGVhc2UgdGhlCisJCSAqIGxvY2suCisJCSAqLworCQlpZiAocmV0cnkpCisJCXsKKwkJCWlm IChvbGRfdmFyaWQgPT0gdmFyaWQpCisJCQkJYnJlYWs7CisKKwkJCWlmIChPaWRJc1ZhbGlkKG9s ZF92YXJpZCkpCisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBv bGRfdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKworCQkvKgorCQkgKiBMb2NrIHRo ZSB2YXJpYWJsZS4gIFRoaXMgd2lsbCBhbHNvIGFjY2VwdCBhbnkgcGVuZGluZyBpbnZhbGlkYXRp b24KKwkJICogbWVzc2FnZXMuICBJZiB3ZSBnb3QgYmFjayBJbnZhbGlkT2lkLCBpbmRpY2F0aW5n IG5vdCBmb3VuZCwgdGhlbgorCQkgKiB0aGVyZSdzIG5vdGhpbmcgdG8gbG9jaywgYnV0IHdlIGFj Y2VwdCBpbnZhbGlkYXRpb24gbWVzc2FnZXMKKwkJICogYW55d2F5LCB0byBmbHVzaCBhbnkgbmVn YXRpdmUgY2F0Y2FjaGUgZW50cmllcyB0aGF0IG1heSBiZQorCQkgKiBsaW5nZXJpbmcuCisJCSAq LworCQlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQkJQWNjZXB0SW52YWxpZGF0aW9uTWVzc2Fn ZXMoKTsKKwkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJCQlMb2NrRGF0YWJhc2VPYmpl Y3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCQlp ZiAoaW52YWxfY291bnQgPT0gU2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyKQorCQkJYnJlYWs7 CisKKwkJcmV0cnkgPSB0cnVlOworCQlvbGRfdmFyaWQgPSB2YXJpZDsKKwkJdmFyaWQgPSBJbnZh bGlkT2lkOworCX0KKworCXJldHVybiB2YXJpZDsKK30KKwogLyoKICAqIERlY29uc3RydWN0UXVh bGlmaWVkTmFtZQogICoJCUdpdmVuIGEgcG9zc2libHktcXVhbGlmaWVkIG5hbWUgZXhwcmVzc2Vk IGFzIGEgbGlzdCBvZiBTdHJpbmcgbm9kZXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKaW5k ZXggZTNhODYxYzhjYmEuLmVmODk1OTRhMjY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5j CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNs dWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2lu Y2x1ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKIHN0 YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLApA QCAtMTAxLDYgKzEwMiw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAog CXZhcmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElkLCBBbnVt X3BnX3ZhcmlhYmxlX29pZCk7CiAKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQgLSAxXSA9 IE9iamVjdElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNy ZWF0ZV9sc24gLSAxXSA9IExTTkdldERhdHVtKEdldFhMb2dJbnNlcnRSZWNQdHIoKSk7CiAJdmFs dWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1l KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElk R2V0RGF0dW0odmFyTmFtZXNwYWNlKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBl IC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRl eCA0OGY3MzQ4ZjkxYy4uMWNmYWVjYTUxZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC01MCw2 ICs1MCw3IEBAIE9CSlMgPSBcCiAJc2NoZW1hY21kcy5vIFwKIAlzZWNsYWJlbC5vIFwKIAlzZXF1 ZW5jZS5vIFwKKwlzZXNzaW9uX3ZhcmlhYmxlLm8gXAogCXN0YXRzY21kcy5vIFwKIAlzdWJzY3Jp cHRpb25jbWRzLm8gXAogCXRhYmxlY21kcy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKaW5k ZXggNmRkMDBhNGFiZGUuLmNhNjIxYmU1ZWNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZApA QCAtMzgsNiArMzgsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdzY2hlbWFjbWRz LmMnLAogICAnc2VjbGFiZWwuYycsCiAgICdzZXF1ZW5jZS5jJywKKyAgJ3Nlc3Npb25fdmFyaWFi bGUuYycsCiAgICdzdGF0c2NtZHMuYycsCiAgICdzdWJzY3JpcHRpb25jbWRzLmMnLAogICAndGFi bGVjbWRzLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IGE5M2Y5NzBhMjkyLi40NTVhMDNj Y2U2MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtMzM4LDYgKzMzOCwxNCBAQCBFdmFsdWF0 ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVkU3RhdGVtZW50ICpwc3RtdCwgTGlz dCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRzIG9mIEVYRUNV VEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9uCisJICogZXhlY3V0b3IgY2Fs bC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMgeWV0LgorCSAq IEl0IHdpbGwgYmUgZW5hYmxlZCBsYXRlci4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1Nlc3Np b25WYXJpYWJsZXMpCisJCWVsb2coRVJST1IsICJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1 c2VkIGFzIGFuIGFyZ3VtZW50Iik7CisKIAkvKiBQcmVwYXJlIHRoZSBleHByZXNzaW9ucyBmb3Ig ZXhlY3V0aW9uICovCiAJZXhwcnN0YXRlcyA9IEV4ZWNQcmVwYXJlRXhwckxpc3QocGFyYW1zLCBl c3RhdGUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU0OGQ5ODM1YzBkCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0wLDAgKzEs NTcxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzZXNzaW9uX3ZhcmlhYmxlLmMKKyAq CSAgc2Vzc2lvbiB2YXJpYWJsZSBjcmVhdGlvbi9tYW5pcHVsYXRpb24gY29tbWFuZHMKKyAqCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBv ZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9O CisgKgkgIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworICoKKyAqLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImNh dGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJm dW5jYXBpLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicmV3cml0ZS9yZXdy aXRlSGFuZGxlci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInN0b3Jh Z2UvcHJvYy5oIgorI2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKKyNpbmNsdWRlICJ1dGlscy9i dWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2RhdHVtLmgiCisjaW5jbHVkZSAidXRpbHMvaW52 YWwuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zbmFw bWdyLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworLyoKKyAqIFRoZSB2YWx1ZXMg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUg bWVtb3J5CisgKiBpbiB0aGUgZGVkaWNhdGVkIG1lbW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9y eUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KKyAqIFRoZXkgYXJlIHN0b3JlZCBpbiB0aGUgInNl c3Npb252YXJzIiBoYXNoIHRhYmxlLCB3aG9zZSBrZXkgaXMgdGhlIE9JRCBvZiB0aGUKKyAqIHZh cmlhYmxlLiAgSG93ZXZlciwgdGhlIE9JRCBpcyBub3QgZ29vZCBlbm91Z2ggdG8gaWRlbnRpZnkg YSBzZXNzaW9uCisgKiB2YXJpYWJsZTogY29uY3VycmVudCBzZXNzaW9ucyBjb3VsZCBkcm9wIHRo ZSBzZXNzaW9uIHZhcmlhYmxlIGFuZCBjcmVhdGUgYQorICogbmV3IG9uZSwgd2hpY2ggY291bGQg YmUgYXNzaWduZWQgdGhlIHNhbWUgT0lELiAgVG8gZW5zdXJlIHRoYXQgdGhlIHZhbHVlcworICog c3RvcmVkIGluIG1lbW9yeSBhbmQgdGhlIGNhdGFsb2cgZGVmaW5pdGlvbiBtYXRjaCwgd2UgYWxz byBrZWVwIHRyYWNrIG9mCisgKiB0aGUgImNyZWF0ZV9sc24iLiAgQmVmb3JlIGFueSBhY2Nlc3Mg dG8gdGhlIHZhcmlhYmxlIHZhbHVlcywgd2UgbmVlZCB0bworICogY2hlY2sgaWYgdGhlIExTTiBz dG9yZWQgaW4gbWVtb3J5IG1hdGNoZXMgdGhlIExTTiBpbiB0aGUgY2F0YWxvZy4gIElmIHRoZXJl CisgKiBpcyBhIG1pc21hdGNoIGJldHdlZW4gdGhlIExTTnMsIG9yIGlmIHRoZSBPSUQgaXMgbm90 IHByZXNlbnQgaW4gcGdfdmFyaWFibGUKKyAqIGF0IGFsbCwgdGhlIHZhbHVlIHN0b3JlZCBpbiBt ZW1vcnkgaXMgcmVsZWFzZWQuCisgKi8KK3R5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKK3sK KwlPaWQJCQl2YXJpZDsJCQkvKiBwZ192YXJpYWJsZSBPSUQgb2YgdGhlIHZhcmlhYmxlIChoYXNo IGtleSkgKi8KKwlYTG9nUmVjUHRyCWNyZWF0ZV9sc247CisKKwlib29sCQlpc251bGw7CisJRGF0 dW0JCXZhbHVlOworCisJT2lkCQkJdHlwaWQ7CisJaW50MTYJCXR5cGxlbjsKKwlib29sCQl0eXBi eXZhbDsKKworCWJvb2wJCWlzX2RvbWFpbjsKKworCS8qCisJICogZG9tYWluX2NoZWNrX2V4dHJh IGhvbGRzIGNhY2hlZCBkb21haW4gbWV0YWRhdGEuICBUaGlzICJleHRyYSIgaXMKKwkgKiB1c3Vh bGx5IHN0b3JlZCBpbiBmbl9tY3h0LiAgV2UgZG8gbm90IGhhdmUgYWNjZXNzIHRvIHRoYXQgbWVt b3J5IGNvbnRleHQKKwkgKiBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMsIGJ1dCB3ZSBjYW4gdXNlIFRv cFRyYW5zYWN0aW9uQ29udGV4dCBpbnN0ZWFkLgorCSAqIEEgZnJlc2ggdmFsdWUgaXMgZm9yY2Vk IHdoZW4gd2UgZGV0ZWN0IHdlIGFyZSBpbiBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbgorCSAqICh0 aGUgbG9jYWwgdHJhbnNhY3Rpb24gSUQgZGlmZmVycyBmcm9tIGRvbWFpbl9jaGVja19leHRyYV9s eGlkKS4KKwkgKi8KKwl2b2lkCSAgICpkb21haW5fY2hlY2tfZXh0cmE7CisJTG9jYWxUcmFuc2Fj dGlvbklkIGRvbWFpbl9jaGVja19leHRyYV9seGlkOworCisJLyoKKwkgKiBTdG9yZWQgdmFsdWUg YW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJlIG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZSBhCisJ ICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVuIGhhdmUgdG8gY2hlY2sgaWYgdGhlIHN0b3JlZCBk YXRhIGFyZSBzdGlsbAorCSAqIHRydXN0d29ydGh5LgorCSAqLworCWJvb2wJCWlzX3ZhbGlkOwor CisJdWludDMyCQloYXNodmFsdWU7CQkvKiB1c2VkIGZvciBwYWlyaW5nIHNpbnZhbCBtZXNzYWdl ICovCit9IFNWYXJpYWJsZURhdGE7CisKK3R5cGVkZWYgU1ZhcmlhYmxlRGF0YSAqU1ZhcmlhYmxl OworCitzdGF0aWMgSFRBQiAqc2Vzc2lvbnZhcnMgPSBOVUxMOwkvKiBoYXNoIHRhYmxlIGZvciBz ZXNzaW9uIHZhcmlhYmxlcyAqLworCitzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1v cnlDb250ZXh0ID0gTlVMTDsKKworLyoKKyAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9u IHZhcmlhYmxlIGludmFsaWRhdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK3BnX3ZhcmlhYmxlX2Nh Y2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCit7 CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKworCWVsb2coREVC VUcxLCAicGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2sgJXUgJXUiLCBjYWNoZWlkLCBoYXNodmFs dWUpOworCisJQXNzZXJ0KHNlc3Npb252YXJzKTsKKworCS8qCisJICogSWYgdGhlIGhhc2h2YWx1 ZSBpcyBub3Qgc3BlY2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQorCSAq IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMuICBTaW5jZSB3ZSBjYW4ndCB0ZWxsIHRoZSBleGFjdCBz ZXNzaW9uIHZhcmlhYmxlCisJICogZnJvbSBpdHMgaGFzaHZhbHVlLCB3ZSBoYXZlIHRvIGl0ZXJh dGUgb3ZlciBhbGwgaXRlbXMgaW4gdGhlIGhhc2ggYnVja2V0LgorCSAqLworCWhhc2hfc2VxX2lu aXQoJnN0YXR1cywgc2Vzc2lvbnZhcnMpOworCisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkg aGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCXsKKwkJaWYgKGhhc2h2YWx1ZSA9 PSAwIHx8IHN2YXItPmhhc2h2YWx1ZSA9PSBoYXNodmFsdWUpCisJCXsKKwkJCXN2YXItPmlzX3Zh bGlkID0gZmFsc2U7CisJCX0KKwl9Cit9CisKKy8qCisgKiBSZWxlYXNlIHN0b3JlZCB2YWx1ZSwg ZnJlZSBtZW1vcnkKKyAqLworc3RhdGljIHZvaWQKK2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShTVmFyaWFibGUgc3ZhcikKK3sKKwkvKiBjbGVhbiB0aGUgY3VycmVudCB2YWx1ZSAqLworCWlm ICghc3Zhci0+aXNudWxsKQorCXsKKwkJaWYgKCFzdmFyLT50eXBieXZhbCkKKwkJCXBmcmVlKERh dHVtR2V0UG9pbnRlcihzdmFyLT52YWx1ZSkpOworCisJCXN2YXItPmlzbnVsbCA9IHRydWU7CisJ fQorCisJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRydWUg d2hlbiB0aGUgZW50cnkgaW4gcGdfdmFyaWFibGUgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBnaXZl bgorICogc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworc3RhdGljIGJvb2wKK2lzX3Nlc3Npb25fdmFy aWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIpCit7CisJSGVhcFR1cGxlCXRwOworCWJvb2wJCXJl c3VsdCA9IGZhbHNlOworCisJQXNzZXJ0KE9pZElzVmFsaWQoc3Zhci0+dmFyaWQpKTsKKworCXRw ID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHN2YXItPnZh cmlkKSk7CisKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJeworCQkvKgorCQkgKiBUaGUg T0lEIGFsb25lIGlzIG5vdCBlbm91Z2ggYXMgYW4gdW5pcXVlIGlkZW50aWZpZXIsIGJlY2F1c2Ug T0lECisJCSAqIHZhbHVlcyBnZXQgcmVjeWNsZWQsIGFuZCBhIG5ldyBzZXNzaW9uIHZhcmlhYmxl IGNvdWxkIGhhdmUgZ290CisJCSAqIHRoZSBzYW1lIE9JRC4gIFdlIGRvIGEgc2Vjb25kIGNoZWNr IGFnYWluc3QgdGhlIDY0LWJpdCBMU04gd2hlbgorCQkgKiB0aGUgdmFyaWFibGUgd2FzIGNyZWF0 ZWQuCisJCSAqLworCQlpZiAoc3Zhci0+Y3JlYXRlX2xzbiA9PSAoKEZvcm1fcGdfdmFyaWFibGUp IEdFVFNUUlVDVCh0cCkpLT52YXJjcmVhdGVfbHNuKQorCQkJcmVzdWx0ID0gdHJ1ZTsKKworCQlS ZWxlYXNlU3lzQ2FjaGUodHApOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBJ bml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGluICJzdmFyIgorICovCitzdGF0aWMgdm9pZAor c2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkKQoreworCUhl YXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJQXNzZXJ0KE9pZElz VmFsaWQodmFyaWQpKTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2Jq ZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJ CWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1 IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVw KTsKKworCXN2YXItPnZhcmlkID0gdmFyaWQ7CisJc3Zhci0+Y3JlYXRlX2xzbiA9IHZhcmZvcm0t PnZhcmNyZWF0ZV9sc247CisKKwlzdmFyLT50eXBpZCA9IHZhcmZvcm0tPnZhcnR5cGU7CisKKwln ZXRfdHlwbGVuYnl2YWwoc3Zhci0+dHlwaWQsICZzdmFyLT50eXBsZW4sICZzdmFyLT50eXBieXZh bCk7CisKKwlzdmFyLT5pc19kb21haW4gPSAoZ2V0X3R5cHR5cGUodmFyZm9ybS0+dmFydHlwZSkg PT0gVFlQVFlQRV9ET01BSU4pOworCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklk OworCisJc3Zhci0+aXNudWxsID0gdHJ1ZTsKKwlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKKwor CXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKworCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hl SGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJp ZCkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7Cit9CisKKy8qCisgKiBBc3NpZ24gYSBuZXcg dmFsdWUgdG8gdGhlIHNlc3Npb24gdmFyaWFibGUuICBJdCBpcyBjb3BpZWQgdG8KKyAqIFNWYXJp YWJsZU1lbW9yeUNvbnRleHQgaWYgbmVjZXNzYXJ5LgorICoKKyAqIElmIGFueSBlcnJvciBoYXBw ZW5zLCB0aGUgZXhpc3RpbmcgdmFsdWUgd29uJ3QgYmUgbW9kaWZpZWQuCisgKi8KK3N0YXRpYyB2 b2lkCitzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJv b2wgaXNudWxsKQoreworCURhdHVtCQluZXd2YWw7CisJU1ZhcmlhYmxlRGF0YSBsb2NzdmFyLAor CQkJICAgKl9zdmFyOworCisJQXNzZXJ0KHN2YXIpOworCUFzc2VydCghaXNudWxsIHx8IHZhbHVl ID09IChEYXR1bSkgMCk7CisKKwkvKgorCSAqIFVzZSB0eXBieXZhbCwgdHlwYnlsZW4gZnJvbSBz ZXNzaW9uIHZhcmlhYmxlIG9ubHkgd2hlbiB0aGV5IGFyZQorCSAqIHRydXN0d29ydGh5ICh0aGUg aW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2FzIG5vdCBhY2NlcHRlZCBmb3IgdGhpcworCSAqIHZhcmlh YmxlKS4gIElmIHRoZSB2YXJpYWJsZSBtaWdodCBiZSBpbnZhbGlkLCBmb3JjZSBzZXR1cC4KKwkg KgorCSAqIERvIG5vdCBvdmVyd3JpdGUgdGhlIHBhc3NlZCBzZXNzaW9uIHZhcmlhYmxlIHVudGls IHdlIGNhbiBiZSBjZXJ0YWluCisJICogdGhhdCBubyBlcnJvciBjYW4gYmUgdGhyb3duLgorCSAq LworCWlmICghc3Zhci0+aXNfdmFsaWQpCisJeworCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZs b2NzdmFyLCBzdmFyLT52YXJpZCk7CisJCV9zdmFyID0gJmxvY3N2YXI7CisJfQorCWVsc2UKKwkJ X3N2YXIgPSBzdmFyOworCisJaWYgKCFpc251bGwpCisJeworCQlNZW1vcnlDb250ZXh0IG9sZGN4 dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKKworCQlu ZXd2YWwgPSBkYXR1bUNvcHkodmFsdWUsIF9zdmFyLT50eXBieXZhbCwgX3N2YXItPnR5cGxlbik7 CisKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CisJfQorCWVsc2UKKwkJbmV3dmFs ID0gdmFsdWU7CisKKwlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisKKwllbG9n KERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBuZXcgdmFs dWUiLAorCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZShzdmFyLT52YXJpZCkpLAorCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShzdmFyLT52YXJp ZCksCisJCSBzdmFyLT52YXJpZCk7CisKKwkvKiBubyBtb3JlIGVycm9yIGV4cGVjdGVkLCBzbyB3 ZSBjYW4gb3ZlcndyaXRlIHRoZSBvbGQgdmFyaWFibGUgbm93ICovCisJaWYgKHN2YXIgIT0gX3N2 YXIpCisJCW1lbWNweShzdmFyLCBfc3Zhciwgc2l6ZW9mKFNWYXJpYWJsZURhdGEpKTsKKworCXN2 YXItPnZhbHVlID0gbmV3dmFsOworCXN2YXItPmlzbnVsbCA9IGlzbnVsbDsKK30KKworLyoKKyAq IENyZWF0ZSB0aGUgaGFzaCB0YWJsZSBmb3Igc3RvcmluZyBzZXNzaW9uIHZhcmlhYmxlcy4KKyAq Lworc3RhdGljIHZvaWQKK2NyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKHZvaWQpCit7CisJ SEFTSENUTAkJdmFyc19jdGw7CisKKwlBc3NlcnQoIXNlc3Npb252YXJzKTsKKworCWlmICghU1Zh cmlhYmxlTWVtb3J5Q29udGV4dCkKKwl7CisJCS8qIHJlYWQgc2ludmFsIG1lc3NhZ2VzICovCisJ CUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKFZBUklBQkxFT0lELAorCQkJCQkJCQkJICBw Z192YXJpYWJsZV9jYWNoZV9jYWxsYmFjaywKKwkJCQkJCQkJCSAgKERhdHVtKSAwKTsKKworCQkv KiB3ZSBuZWVkIG91ciBvd24gbG9uZy1saXZlZCBtZW1vcnkgY29udGV4dCAqLworCQlTVmFyaWFi bGVNZW1vcnlDb250ZXh0ID0KKwkJCUFsbG9jU2V0Q29udGV4dENyZWF0ZShUb3BNZW1vcnlDb250 ZXh0LAorCQkJCQkJCQkgICJzZXNzaW9uIHZhcmlhYmxlcyIsCisJCQkJCQkJCSAgQUxMT0NTRVRf U1RBUlRfU01BTExfU0laRVMpOworCX0KKworCW1lbXNldCgmdmFyc19jdGwsIDAsIHNpemVvZih2 YXJzX2N0bCkpOworCXZhcnNfY3RsLmtleXNpemUgPSBzaXplb2YoT2lkKTsKKwl2YXJzX2N0bC5l bnRyeXNpemUgPSBzaXplb2YoU1ZhcmlhYmxlRGF0YSk7CisJdmFyc19jdGwuaGN4dCA9IFNWYXJp YWJsZU1lbW9yeUNvbnRleHQ7CisKKwlzZXNzaW9udmFycyA9IGhhc2hfY3JlYXRlKCJTZXNzaW9u IHZhcmlhYmxlcyIsIDY0LCAmdmFyc19jdGwsCisJCQkJCQkJICBIQVNIX0VMRU0gfCBIQVNIX0JM T0JTIHwgSEFTSF9DT05URVhUKTsKK30KKworLyoKKyAqIFNlYXJjaCBhIHNlc3Npb24gdmFyaWFi bGUgaW4gdGhlIGhhc2ggdGFibGUgZ2l2ZW4gaXRzIE9JRC4gIElmIGl0CisgKiBkb2Vzbid0IGV4 aXN0LCB0aGVuIGluc2VydCBpdCB0aGVyZS4KKyAqCisgKiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNp YmxlIGZvciBkb2luZyBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqCisgKiBBcyBhIHNpZGUgZWZmZWN0 LCB0aGlzIGZ1bmN0aW9uIGFjcXVpcmVzIGEgQWNjZXNzU2hhcmVMb2NrIG9uIHRoZQorICogc2Vz c2lvbiB2YXJpYWJsZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSB0cmFuc2FjdGlvbi4KKyAqLworc3Rh dGljIFNWYXJpYWJsZQorZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQoreworCVNWYXJp YWJsZQlzdmFyOworCWJvb2wJCWZvdW5kOworCisJLyogcHJvdGVjdCB0aGUgdXNlZCBzZXNzaW9u IHZhcmlhYmxlIGFnYWluc3QgRFJPUCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJl bGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNzaW9udmFy cykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAoU1Zhcmlh YmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBIQVNIX0VO VEVSLCAmZm91bmQpOworCisJaWYgKGZvdW5kKQorCXsKKwkJaWYgKCFzdmFyLT5pc192YWxpZCkK KwkJeworCQkJLyoKKwkJCSAqIElmIHRoZXJlIHdhcyBhbiBpbnZhbGlkYXRpb24gbWVzc2FnZSwg dGhlIHZhcmlhYmxlIG1pZ2h0IHN0aWxsIGJlCisJCQkgKiB2YWxpZCwgYnV0IHdlIGhhdmUgdG8g Y2hlY2sgd2l0aCB0aGUgc3lzdGVtIGNhdGFsb2cuCisJCQkgKi8KKwkJCWlmIChpc19zZXNzaW9u X3ZhcmlhYmxlX3ZhbGlkKHN2YXIpKQorCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwkJCWVs c2UKKwkJCQkvKiBpZiB0aGUgdmFsdWUgY2Fubm90IGJlIHZhbGlkYXRlZCwgd2UgaGF2ZSB0byBk aXNjYXJkIGl0ICovCisJCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCQl9 CisJfQorCWVsc2UKKwkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKworCS8qCisJICogRm9yY2Ug c2V0dXAgZm9yIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgdmFyaWFibGVzIG9yIHZhcmlhYmxlcyB0aGF0 IGNhbm5vdAorCSAqIGJlIHZhbGlkYXRlZC4KKwkgKi8KKwlpZiAoIXN2YXItPmlzX3ZhbGlkKQor CXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCk7CisKKwkJZWxvZyhERUJV RzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50 cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFJFQUQpIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUo Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkgdmFyaWQpOworCX0KKworCS8qIGVuc3VyZSB0aGUg cmV0dXJuZWQgZGF0YSBpcyBzdGlsbCBvZiB0aGUgY29ycmVjdCBkb21haW4gKi8KKwlpZiAoc3Zh ci0+aXNfZG9tYWluKQorCXsKKwkJLyoKKwkJICogU3RvcmUgImV4dHJhIiBmb3IgZG9tYWluX2No ZWNrKCkgaW4gVG9wVHJhbnNhY3Rpb25Db250ZXh0LiAgV2hlbiB3ZQorCQkgKiBhcmUgaW4gYSBu ZXcgdHJhbnNhY3Rpb24sIGRvbWFpbl9jaGVja19leHRyYSBjYWNoZSBpcyBub3QgdmFsaWQgYW55 CisJCSAqIG1vcmUuCisJCSAqLworCQlpZiAoc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQg IT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxM OworCisJCWRvbWFpbl9jaGVjayhzdmFyLT52YWx1ZSwgc3Zhci0+aXNudWxsLAorCQkJCQkgc3Zh ci0+dHlwaWQsICZzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEsCisJCQkJCSBUb3BUcmFuc2FjdGlv bkNvbnRleHQpOworCisJCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkID0gTXlQcm9jLT52 eGlkLmx4aWQ7CisJfQorCisJcmV0dXJuIHN2YXI7Cit9CisKKy8qCisgKiBTdG9yZSB0aGUgZ2l2 ZW4gdmFsdWUgaW4gYSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBjYWNoZS4KKyAqCisgKiBUaGUg Y2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqCisg KiBBcyBhIHNpZGUgZWZmZWN0LCB0aGlzIGZ1bmN0aW9uIGFjcXVpcmVzIGEgQWNjZXNzU2hhcmVM b2NrIG9uIHRoZSBzZXNzaW9uCisgKiB2YXJpYWJsZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSB0cmFu c2FjdGlvbi4KKyAqLwordm9pZAorU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0g dmFsdWUsIGJvb2wgaXNOdWxsKQoreworCVNWYXJpYWJsZQlzdmFyOworCWJvb2wJCWZvdW5kOwor CisJLyogcHJvdGVjdCB1c2VkIHNlc3Npb24gdmFyaWFibGUgYWdhaW5zdCBEUk9QICovCisJTG9j a0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJl TG9jayk7CisKKwlpZiAoIXNlc3Npb252YXJzKQorCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRh YmxlcygpOworCisJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAm dmFyaWQsCisJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CisKKwlpZiAoIWZvdW5kKQor CXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCk7CisKKwkJZWxvZyhERUJV RzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50 cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFdSSVRFKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1l KGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJIGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpLAorCQkJIHZhcmlkKTsKKwl9CisKKwkv KiBpZiB0aGlzIGZhaWxzLCBpdCB3b24ndCBjaGFuZ2UgdGhlIHN0b3JlZCB2YWx1ZSAqLworCXNl dF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhbHVlLCBpc051bGwpOworfQorCisvKgorICogV3Jh cHBlciBhcm91bmQgU2V0U2Vzc2lvblZhcmlhYmxlIHdpdGggcGVybWlzc2lvbiBjaGVja3MuCisg Ki8KK3ZvaWQKK1NldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwg RGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQoreworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkv KiBpcyB0aGUgY2FsbGVyIGFsbG93ZWQgdG8gdXBkYXRlIHRoZSBzZXNzaW9uIHZhcmlhYmxlPyAq LworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlk LCBHZXRVc2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19P SykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsIGdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwg dmFsdWUsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUg c3RvcmVkIGluIGEgdmFyaWFibGUuCisgKi8KK3N0YXRpYyBpbmxpbmUgRGF0dW0KK2NvcHlfc2Vz c2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCAqaXNOdWxsKQoreworCURh dHVtCQl2YWx1ZTsKKworCS8qIGZvcmNlIGNvcHkgb2Ygbm9uIE5VTEwgdmFsdWUgKi8KKwlpZiAo IXN2YXItPmlzbnVsbCkKKwl7CisJCXZhbHVlID0gZGF0dW1Db3B5KHN2YXItPnZhbHVlLCBzdmFy LT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwkJKmlzTnVsbCA9IGZhbHNlOworCX0KKwllbHNl CisJeworCQl2YWx1ZSA9IChEYXR1bSkgMDsKKwkJKmlzTnVsbCA9IHRydWU7CisJfQorCisJcmV0 dXJuIHZhbHVlOworfQorCisvKgorICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIG9mIHRo ZSBzZXNzaW9uIHZhcmlhYmxlIChpbiB0aGUgY3VycmVudCBtZW1vcnkKKyAqIGNvbnRleHQpLiAg VGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK0Rh dHVtCitHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAqdHlw aWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUo dmFyaWQpOworCisJLyoKKwkgKiBBbHRob3VnaCAic3ZhciIgaXMgZnJlc2hseSB2YWxpZGF0ZWQg aW4gdGhpcyBwb2ludCwgc3Zhci0+aXNfdmFsaWQgY2FuCisJICogYmUgZmFsc2UsIGlmIGFuIGlu dmFsaWRhdGlvbiBtZXNzYWdlIHdzIHByb2Nlc3NlZCBkdXJpbmcgdGhlIGRvbWFpbiBjaGVjay4K KwkgKiBCdXQgdGhlIHZhcmlhYmxlIGFuZCBhbGwgaXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2Vk IG5vdywgc28gd2UgZG9uJ3QgbmVlZAorCSAqIHRvIHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkg Ki8KKwlBc3NlcnQoc3Zhcik7CisKKwkqdHlwaWQgPSBzdmFyLT50eXBpZDsKKworCXJldHVybiBj b3B5X3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3ZhciwgaXNOdWxsKTsKK30KKworLyoKKyAqIFJl dHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBhZnRlciBj aGVja2luZyBpZiB0aGUKKyAqIHR5cGUgaXMgdGhlIHNhbWUgYXMgImV4cGVjdGVkX3R5cGlkIi4g IFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yCisgKiBwZXJtaXNzaW9uIGNoZWNrcy4KKyAq LworRGF0dW0KK0dldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2soT2lkIHZhcmlkLCBib29s ICppc051bGwsIE9pZCBleHBlY3RlZF90eXBpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKworCXN2 YXIgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2YXJpZCk7CisKKwlBc3NlcnQoc3ZhciAmJiBzdmFy LT5pc192YWxpZCk7CisKKwlpZiAoZXhwZWN0ZWRfdHlwaWQgIT0gc3Zhci0+dHlwaWQpCisJCWVs b2coRVJST1IsICJ0eXBlIG9mIHZhcmlhYmxlIFwiJXMuJXNcIiBpcyBkaWZmZXJlbnQgdGhhbiBl eHBlY3RlZCIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZSh2YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsK KworCXJldHVybiBjb3B5X3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3ZhciwgaXNOdWxsKTsKK30K KworLyoKKyAqIEFzc2lnbiB0aGUgcmVzdWx0IG9mIHRoZSBldmFsdWF0ZWQgZXhwcmVzc2lvbiB0 byB0aGUgc2Vzc2lvbiB2YXJpYWJsZQorICovCit2b2lkCitFeGVjdXRlTGV0U3RtdChQYXJzZVN0 YXRlICpwc3RhdGUsCisJCQkgICBMZXRTdG10ICpzdG10LAorCQkJICAgUGFyYW1MaXN0SW5mbyBw YXJhbXMsCisJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwKKwkJCSAgIFF1ZXJ5Q29t cGxldGlvbiAqcWMpCit7CisJUXVlcnkJICAgKnF1ZXJ5ID0gY2FzdE5vZGUoUXVlcnksIHN0bXQt PnF1ZXJ5KTsKKwlMaXN0CSAgICpyZXdyaXR0ZW47CisJRGVzdFJlY2VpdmVyICpkZXN0OworCUFj bFJlc3VsdAlhY2xyZXN1bHQ7CisJUGxhbm5lZFN0bXQgKnBsYW47CisJUXVlcnlEZXNjICAqcXVl cnlEZXNjOworCU9pZAkJCXZhcmlkID0gcXVlcnktPnJlc3VsdFZhcmlhYmxlOworCisJQXNzZXJ0 KE9pZElzVmFsaWQodmFyaWQpKTsKKworCS8qIGRvIHdlIGhhdmUgcGVybWlzc2lvbiB0byB3cml0 ZSB0byB0aGUgc2Vzc2lvbiB2YXJpYWJsZT8gKi8KKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgR2V0VXNlcklkKCksIEFDTF9VUERBVEUpOwor CWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3Vs dCwgT0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisK KwkvKiBjcmVhdGUgYSBkZXN0IHJlY2VpdmVyIGZvciBMRVQgKi8KKwlkZXN0ID0gQ3JlYXRlVmFy aWFibGVEZXN0UmVjZWl2ZXIodmFyaWQpOworCisJLyogcnVuIHRoZSBxdWVyeSByZXdyaXRlciAq LworCXF1ZXJ5ID0gY29weU9iamVjdChxdWVyeSk7CisKKwlyZXdyaXR0ZW4gPSBRdWVyeVJld3Jp dGUocXVlcnkpOworCisJQXNzZXJ0KGxpc3RfbGVuZ3RoKHJld3JpdHRlbikgPT0gMSk7CisKKwlx dWVyeSA9IGxpbml0aWFsX25vZGUoUXVlcnksIHJld3JpdHRlbik7CisJQXNzZXJ0KHF1ZXJ5LT5j b21tYW5kVHlwZSA9PSBDTURfU0VMRUNUKTsKKworCS8qIHBsYW4gdGhlIHF1ZXJ5ICovCisJcGxh biA9IHBnX3BsYW5fcXVlcnkocXVlcnksIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJIENV UlNPUl9PUFRfUEFSQUxMRUxfT0ssIHBhcmFtcyk7CisKKwkvKgorCSAqIFVzZSBhIHNuYXBzaG90 IHdpdGggYW4gdXBkYXRlZCBjb21tYW5kIElEIHRvIGVuc3VyZSB0aGlzIHF1ZXJ5IHNlZXMgdGhl CisJICogcmVzdWx0cyBvZiBhbnkgcHJldmlvdXNseSBleGVjdXRlZCBxdWVyaWVzLiAgKFRoaXMg Y291bGQgb25seSBtYXR0ZXIgaWYKKwkgKiB0aGUgcGxhbm5lciBleGVjdXRlZCBhbiBhbGxlZ2Vk bHktc3RhYmxlIGZ1bmN0aW9uIHRoYXQgY2hhbmdlZCB0aGUKKwkgKiBkYXRhYmFzZSBjb250ZW50 cywgYnV0IGxldCdzIGRvIGl0IGFueXdheSB0byBiZSBwYXJhbGxlbCB0byB0aGUgRVhQTEFJTgor CSAqIGNvZGUgcGF0aC4pCisJICovCisJUHVzaENvcGllZFNuYXBzaG90KEdldEFjdGl2ZVNuYXBz aG90KCkpOworCVVwZGF0ZUFjdGl2ZVNuYXBzaG90Q29tbWFuZElkKCk7CisKKwkvKiBjcmVhdGUg YSBRdWVyeURlc2MsIHJlZGlyZWN0aW5nIG91dHB1dCB0byBvdXIgdHVwbGUgcmVjZWl2ZXIgKi8K KwlxdWVyeURlc2MgPSBDcmVhdGVRdWVyeURlc2MocGxhbiwgcHN0YXRlLT5wX3NvdXJjZXRleHQs CisJCQkJCQkJCUdldEFjdGl2ZVNuYXBzaG90KCksIEludmFsaWRTbmFwc2hvdCwKKwkJCQkJCQkJ ZGVzdCwgcGFyYW1zLCBxdWVyeUVudiwgMCk7CisKKwkvKiBjYWxsIEV4ZWN1dG9yU3RhcnQgdG8g cHJlcGFyZSB0aGUgcGxhbiBmb3IgZXhlY3V0aW9uICovCisJRXhlY3V0b3JTdGFydChxdWVyeURl c2MsIDApOworCisJLyoKKwkgKiBSdW4gdGhlIHBsYW4gdG8gY29tcGxldGlvbi4gIFRoZSByZXN1 bHQgc2hvdWxkIGJlIG9ubHkgb25lIHJvdy4gIFRvCisJICogY2hlY2sgaWYgdGhlcmUgYXJlIHRv byBtYW55IHJlc3VsdCByb3dzLCB3ZSB0cnkgdG8gZmV0Y2ggdHdvLgorCSAqLworCUV4ZWN1dG9y UnVuKHF1ZXJ5RGVzYywgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIDJMLCB0cnVlKTsKKworCS8qIHNh dmUgdGhlIHJvd2NvdW50IGlmIHdlJ3JlIGdpdmVuIGEgUXVlcnlDb21wbGV0aW9uIHRvIGZpbGwg Ki8KKwlpZiAocWMpCisJCVNldFF1ZXJ5Q29tcGxldGlvbihxYywgQ01EVEFHX0xFVCwgcXVlcnlE ZXNjLT5lc3RhdGUtPmVzX3Byb2Nlc3NlZCk7CisKKwkvKiBhbmQgY2xlYW4gdXAgKi8KKwlFeGVj dXRvckZpbmlzaChxdWVyeURlc2MpOworCUV4ZWN1dG9yRW5kKHF1ZXJ5RGVzYyk7CisKKwlGcmVl UXVlcnlEZXNjKHF1ZXJ5RGVzYyk7CisKKwlQb3BBY3RpdmVTbmFwc2hvdCgpOworfQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9NYWtlZmlsZQppbmRleCAxMTExOGQwY2UwMi4uNzEyNDhhMzRmMjYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01h a2VmaWxlCkBAIC03Niw2ICs3Niw3IEBAIE9CSlMgPSBcCiAJbm9kZVdpbmRvd0FnZy5vIFwKIAlu b2RlV29ya3RhYmxlc2Nhbi5vIFwKIAlzcGkubyBcCisJc3ZhcmlhYmxlUmVjZWl2ZXIubyBcCiAJ dHF1ZXVlLm8gXAogCXRzdG9yZVJlY2VpdmVyLm8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5k ZXggOGY3YTUzNDAwNTkuLjZkYzhjNTYyYmVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAg LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjRXhw ci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVTdWJwbGFuLmgiCiAjaW5jbHVkZSAiZnVuY2Fw aS5oIgpAQCAtOTkxLDYgKzk5Miw0MSBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhw clN0YXRlICpzdGF0ZSwKIAkJCQkJCXNjcmF0Y2guZC5wYXJhbS5wYXJhbXR5cGUgPSBwYXJhbS0+ cGFyYW10eXBlOwogCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOwogCQkJ CQkJYnJlYWs7CisKKwkJCQkJY2FzZSBQQVJBTV9WQVJJQUJMRToKKwkJCQkJCXsKKwkJCQkJCQlp bnQJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSAwOworCQkJCQkJCVNlc3Npb25WYXJpYWJs ZVZhbHVlICplc19zZXNzaW9uX3ZhcmlhYmxlcyA9IE5VTEw7CisJCQkJCQkJU2Vzc2lvblZhcmlh YmxlVmFsdWUgKnZhcjsKKworCQkJCQkJCWlmIChzdGF0ZS0+cGFyZW50ICYmIHN0YXRlLT5wYXJl bnQtPnN0YXRlKQorCQkJCQkJCXsKKwkJCQkJCQkJZXNfc2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0 ZS0+cGFyZW50LT5zdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXM7CisJCQkJCQkJCWVzX251bV9z ZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19udW1fc2Vzc2lvbl92 YXJpYWJsZXM7CisJCQkJCQkJfQorCisJCQkJCQkJQXNzZXJ0KGVzX3Nlc3Npb25fdmFyaWFibGVz KTsKKworCQkJCQkJCS8qIHBhcmFtZXRlciBzYW5pdHkgY2hlY2tzICovCisJCQkJCQkJaWYgKHBh cmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJCQkJZWxvZyhF UlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFyYW0gaXMgb3V0IG9mIHJhbmdlIik7 CisKKwkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJsZXNbcGFyYW0tPnBhcmFtaWRdOwor CisJCQkJCQkJaWYgKHZhci0+dHlwaWQgIT0gcGFyYW0tPnBhcmFtdHlwZSkKKwkJCQkJCQkJZWxv ZyhFUlJPUiwgInR5cGUgb2YgYnVmZmVyZWQgdmFsdWUgaXMgZGlmZmVyZW50IHRoYW4gUEFSQU1f VkFSSUFCTEUgdHlwZSIpOworCisJCQkJCQkJLyoKKwkJCQkJCQkgKiBJbiB0aGlzIGNhc2UsIHBh c3MgdGhlIHZhbHVlIGxpa2UgYQorCQkJCQkJCSAqIGNvbnN0YW50LgorCQkJCQkJCSAqLworCQkJ CQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2 YWwudmFsdWUgPSB2YXItPnZhbHVlOworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251bGwg PSB2YXItPmlzbnVsbDsKKwkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7 CisJCQkJCQl9CisJCQkJCQlicmVhazsKKwogCQkJCQljYXNlIFBBUkFNX0VYVEVSTjoKIAogCQkJ CQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDVjYTg1NmZkMjc5Li4yMWU5MzhhNjIy NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC00Myw3ICs0Myw5IEBACiAjaW5jbHVkZSAi YWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGFydGl0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL21hdHZpZXcuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImV4 ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1YnBsYW4uaCIKQEAg LTE5NSw2ICsxOTcsNjEgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2MgKnF1ZXJ5 RGVzYywgaW50IGVmbGFncykKIAlBc3NlcnQocXVlcnlEZXNjLT5zb3VyY2VUZXh0ICE9IE5VTEwp OwogCWVzdGF0ZS0+ZXNfc291cmNlVGV4dCA9IHF1ZXJ5RGVzYy0+c291cmNlVGV4dDsKIAorCS8q CisJICogVGhlIGV4ZWN1dG9yIGRvZXNuJ3Qgd29yayB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGRp cmVjdGx5LiBWYWx1ZXMgb2YKKwkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzIGFyZSBjb3Bp ZWQgdG8gYSBkZWRpY2F0ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CisJICogaXMgcGFzc2VkIHRv IHRoZSBleGVjdXRvci4gVGhpcyBhcnJheSBpcyBzdGFibGUgInNuYXBzaG90IiBvZiB2YWx1ZXMg b2YKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGVyZSBhcmUgdGhyZWUgYmVuZWZpdHMg b2YgdGhpcyBzdHJhdGVneToKKwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0aCBleHRlcm5hbCBw YXJhbWV0ZXJzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0gc2Vzc2lvbiB2YXJp YWJsZXMgY2FuIGJlIHBhcmFsbGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRvbid0IG5lZWQgbWFr ZSBmcmVzaCBjb3B5IGZvciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxlCisJICogICAgKHRo aXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNlc3Npb24gdmFyaWFi bGUgY2FuCisJICogICAgYmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFu ZCB0aGVuIGEgcmVmZXJlbmNlIHRvCisJICogICAgcHJldmlvdXNseSByZXR1cm5lZCB2YWx1ZSBj YW4gYmUgY29ycnVwdGVkKS4KKwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vz c2lvblZhcmlhYmxlcykKKwl7CisJCUxpc3RDZWxsICAgKmxjOworCQlpbnQJCQluU2Vzc2lvblZh cmlhYmxlczsKKwkJaW50CQkJaSA9IDA7CisKKwkJLyoKKwkJICogSW4gdGhpcyBjYXNlLCB0aGUg cXVlcnkgdXNlcyBzZXNzaW9uIHZhcmlhYmxlcywgYnV0IHdlIGhhdmUgdG8KKwkJICogcHJlcGFy ZSB0aGUgYXJyYXkgd2l0aCBwYXNzZWQgdmFsdWVzIChvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVz KQorCQkgKiBmaXJzdC4KKwkJICovCisJCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKKwkJ blNlc3Npb25WYXJpYWJsZXMgPSBsaXN0X2xlbmd0aChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5z ZXNzaW9uVmFyaWFibGVzKTsKKworCQkvKiBjcmVhdGUgdGhlIGFycmF5IHVzZWQgZm9yIHBhc3Np bmcgdmFsdWVzIG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJZXN0YXRlLT5lc19zZXNz aW9uX3ZhcmlhYmxlcyA9IChTZXNzaW9uVmFyaWFibGVWYWx1ZSAqKQorCQkJcGFsbG9jKG5TZXNz aW9uVmFyaWFibGVzICogc2l6ZW9mKFNlc3Npb25WYXJpYWJsZVZhbHVlKSk7CisKKwkJLyogZmls bCB0aGUgYXJyYXkgKi8KKwkJZm9yZWFjaChsYywgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vz c2lvblZhcmlhYmxlcykKKwkJeworCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwkJCU9pZAkJCXZh cmlkID0gbGZpcnN0X29pZChsYyk7CisKKwkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhW YXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwgQUNMX1NFTEVDVCk7CisJCQlp ZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3Vs dCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCSAgIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo dmFyaWQpKTsKKworCQkJZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS52YXJpZCA9IHZh cmlkOworCQkJZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS52YWx1ZSA9IEdldFNlc3Np b25WYXJpYWJsZSh2YXJpZCwKKwkJCQkJCQkJCQkJCQkJCQkJICAgJmVzdGF0ZS0+ZXNfc2Vzc2lv bl92YXJpYWJsZXNbaV0uaXNudWxsLAorCQkJCQkJCQkJCQkJCQkJCQkgICAmZXN0YXRlLT5lc19z ZXNzaW9uX3ZhcmlhYmxlc1tpXS50eXBpZCk7CisKKwkJCWkrKzsKKwkJfQorCisJCWVzdGF0ZS0+ ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gblNlc3Npb25WYXJpYWJsZXM7CisJfQorCiAJLyoK IAkgKiBGaWxsIGluIHRoZSBxdWVyeSBlbnZpcm9ubWVudCwgaWYgYW55LCBmcm9tIHF1ZXJ5RGVz Yy4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKaW5kZXggYjUxMWE0MjlhZGYuLmI2NjYy YzZlOGZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAorKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZApAQCAtNjQsNiArNjQsNyBAQCBiYWNr ZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdub2RlV2luZG93QWdnLmMnLAogICAnbm9kZVdvcmt0 YWJsZXNjYW4uYycsCiAgICdzcGkuYycsCisgICdzdmFyaWFibGVSZWNlaXZlci5jJywKICAgJ3Rx dWV1ZS5jJywKICAgJ3RzdG9yZVJlY2VpdmVyLmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2 YXJpYWJsZVJlY2VpdmVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmM0Y2ZmNDRlY2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3Zh cmlhYmxlUmVjZWl2ZXIuYwpAQCAtMCwwICsxLDIwMSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KgorICogc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoJICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBEZXN0 UmVjZWl2ZXIgdGhhdCBzdG9yZXMgdGhlIHJlc3VsdCB2YWx1ZSBpbgorICoJICBhIHNlc3Npb24g dmFyaWFibGUuCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElE RU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVy LmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIK KyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKworI2luY2x1ZGUgImFjY2Vzcy9kZXRvYXN0LmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgor I2luY2x1ZGUgInN0b3JhZ2UvbG9jay5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisj aW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIK KworLyoKKyAqIFRoaXMgRGVzdFJlY2VpdmVyIGlzIHVzZWQgYnkgdGhlIExFVCBjb21tYW5kIGZv ciBzdG9yaW5nIHRoZSByZXN1bHQgdG8gYQorICogc2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSByZXN1 bHQgaGFzIHRvIGhhdmUgb25seSBvbmUgdHVwbGUgd2l0aCBvbmx5IG9uZQorICogbm9uLWRlbGV0 ZWQgYXR0cmlidXRlLiAgVGhlIHJvdyBjb3VudGVyIChmaWVsZCAicm93cyIpIGlzIGluY3JlbWVu dGVkCisgKiBhZnRlciByZWNlaXZpbmcgYSByb3csIGFuZCBhbiBlcnJvciBpcyByYWlzZWQgd2hl biB0aGVyZSBhcmUgbm8gcm93cyBvcgorICogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgcmVjZWl2 ZWQgcm93cy4gIEJlY2F1c2UgYSByZWNlaXZlZCB0dXBsZSBjYW4gaGF2ZQorICogZGVsZXRlZCBh dHRyaWJ1dGVzLCB3ZSBuZWVkIHRvIGZpbmQgdGhlIGZpcnN0IG5vbi1kZWxldGVkIGF0dHJpYnV0 ZQorICogKGZpZWxkICJzbG90X29mZnNldCIpLiAgVGhlIHZhbHVlIGlzIGRldG9hc3RlZCBiZWZv cmUgc3RvcmluZyBpdCBpbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3R5cGVkZWYg c3RydWN0Cit7CisJRGVzdFJlY2VpdmVyIHB1YjsKKwlPaWQJCQl2YXJpZDsKKwlib29sCQluZWVk X2RldG9hc3Q7CQkvKiBkbyB3ZSBuZWVkIHRvIGRldG9hc3QgdGhlIGF0dHJpYnV0ZT8gKi8KKwlp bnQJCQlzbG90X29mZnNldDsJCS8qIHBvc2l0aW9uIG9mIG5vbi1kZWxldGVkIGF0dHJpYnV0ZSAq LworCWludAkJCXJvd3M7CQkJCS8qIHJvdyBjb3VudGVyICovCit9IFNWYXJpYWJsZVN0YXRlOwor CisvKgorICogUHJlcGFyZSB0byByZWNlaXZlIHR1cGxlcyBmcm9tIGV4ZWN1dG9yLgorICovCitz dGF0aWMgdm9pZAorc3ZhcmlhYmxlU3RhcnR1cFJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZiwg aW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR5cGVpbmZvKQoreworCVNWYXJpYWJsZVN0YXRlICpt eVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNlbGY7CisJaW50CQkJbmF0dHMgPSB0eXBlaW5m by0+bmF0dHM7CisJaW50CQkJb3V0Y29scyA9IDA7CisJaW50CQkJaTsKKwlMT0NLVEFHCQlsb2Nr dGFnIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKworCUFzc2VydChteVN0YXRlLT5wdWIubXlk ZXN0ID09IERlc3RWYXJpYWJsZSk7CisJQXNzZXJ0KE9pZElzVmFsaWQobXlTdGF0ZS0+dmFyaWQp KTsKKwlBc3NlcnQoU2VhcmNoU3lzQ2FjaGVFeGlzdHMxKFZBUklBQkxFT0lELCBteVN0YXRlLT52 YXJpZCkpOworCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCisJU0VUX0xPQ0tUQUdfT0JK RUNUKGxvY2t0YWcsCisJCQkJCSAgIE15RGF0YWJhc2VJZCwKKwkJCQkJICAgVmFyaWFibGVSZWxh dGlvbklkLAorCQkJCQkgICBteVN0YXRlLT52YXJpZCwKKwkJCQkJICAgMCk7CisKKwlBc3NlcnQo TG9ja0hlbGRCeU1lKCZsb2NrdGFnLCBBY2Nlc3NTaGFyZUxvY2ssIGZhbHNlKSk7CisKKyNlbmRp ZgorCisJZm9yIChpID0gMDsgaSA8IG5hdHRzOyBpKyspCisJeworCQlGb3JtX3BnX2F0dHJpYnV0 ZSBhdHRyID0gVHVwbGVEZXNjQXR0cih0eXBlaW5mbywgaSk7CisJCU9pZAkJCXR5cGlkOworCQlP aWQJCQljb2xsaWQ7CisJCWludDMyCQl0eXBtb2Q7CisKKwkJaWYgKGF0dHItPmF0dGlzZHJvcHBl ZCkKKwkJCWNvbnRpbnVlOworCisJCWlmICgrK291dGNvbHMgPiAxKQorCQkJY29udGludWU7CisK KwkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKG15U3RhdGUtPnZhcmlk LAorCQkJCQkJCQkJCQkJJnR5cGlkLAorCQkJCQkJCQkJCQkJJnR5cG1vZCwKKwkJCQkJCQkJCQkJ CSZjb2xsaWQpOworCisJCS8qCisJCSAqIERvdWJsZSBjaGVjayAtIHRoZSB0eXBlIGFuZCB0eXBt b2Qgb2YgdGFyZ2V0IHZhcmlhYmxlIHNob3VsZCBiZSB0aGUKKwkJICogc2FtZSBhcyB0aGUgdHlw ZSBhbmQgdHlwbW9kIG9mIGFzc2lnbm1lbnQgZXhwcmVzc2lvbi4gIFRoZQorCQkgKiBleHByZXNz aW9uIHNob3VsZCBiZSB3cmFwcGVkIGJ5IGEgY2FzdCB0byB0aGUgdGFyZ2V0IHR5cGUvdHlwbW9k LgorCQkgKi8KKwkJaWYgKGF0dHItPmF0dHR5cGlkICE9IHR5cGlkIHx8CisJCQkoYXR0ci0+YXR0 dHlwbW9kID49IDAgJiYKKwkJCSBhdHRyLT5hdHR0eXBtb2QgIT0gdHlwbW9kKSkKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJ CQkgZXJybXNnKCJ0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBvZiB0eXBlICVzIgorCQkJCQkJ CSIgYnV0IGV4cHJlc3Npb24gaXMgb2YgdHlwZSAlcyIsCisJCQkJCQkJZm9ybWF0X3R5cGVfd2l0 aF90eXBlbW9kKHR5cGlkLCB0eXBtb2QpLAorCQkJCQkJCWZvcm1hdF90eXBlX3dpdGhfdHlwZW1v ZChhdHRyLT5hdHR0eXBpZCwKKwkJCQkJCQkJCQkJCQkgYXR0ci0+YXR0dHlwbW9kKSkpKTsKKwor CQlteVN0YXRlLT5uZWVkX2RldG9hc3QgPSBhdHRyLT5hdHRsZW4gPT0gLTE7CisJCW15U3RhdGUt PnNsb3Rfb2Zmc2V0ID0gaTsKKwl9CisKKwlpZiAob3V0Y29scyAhPSAxKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnX3Bs dXJhbCgiYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbiIsCisJCQkJCQkJ ICAgImFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAlZCBjb2x1bW5zIiwKKwkJCQkJCQkg ICBvdXRjb2xzLAorCQkJCQkJCSAgIG91dGNvbHMpKSk7CisKKwlteVN0YXRlLT5yb3dzID0gMDsK K30KKworLyoKKyAqIFJlY2VpdmUgYSB0dXBsZSBmcm9tIHRoZSBleGVjdXRvciBhbmQgc3RvcmUg aXQgaW4gdGhlIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBib29sCitzdmFyaWFibGVS ZWNlaXZlU2xvdChUdXBsZVRhYmxlU2xvdCAqc2xvdCwgRGVzdFJlY2VpdmVyICpzZWxmKQorewor CVNWYXJpYWJsZVN0YXRlICpteVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNlbGY7CisJRGF0 dW0JCXZhbHVlOworCWJvb2wJCWlzbnVsbDsKKwlib29sCQlmcmVldmFsID0gZmFsc2U7CisKKwkv KiBtYWtlIHN1cmUgdGhlIHR1cGxlIGlzIGZ1bGx5IGRlY29uc3RydWN0ZWQgKi8KKwlzbG90X2dl dGFsbGF0dHJzKHNsb3QpOworCisJdmFsdWUgPSBzbG90LT50dHNfdmFsdWVzW215U3RhdGUtPnNs b3Rfb2Zmc2V0XTsKKwlpc251bGwgPSBzbG90LT50dHNfaXNudWxsW215U3RhdGUtPnNsb3Rfb2Zm c2V0XTsKKworCWlmIChteVN0YXRlLT5uZWVkX2RldG9hc3QgJiYgIWlzbnVsbCAmJiBWQVJBVFRf SVNfRVhURVJOQUwoRGF0dW1HZXRQb2ludGVyKHZhbHVlKSkpCisJeworCQl2YWx1ZSA9IFBvaW50 ZXJHZXREYXR1bShkZXRvYXN0X2V4dGVybmFsX2F0dHIoKHN0cnVjdCB2YXJsZW5hICopCisJCQkJ CQkJCQkJCQkJICBEYXR1bUdldFBvaW50ZXIodmFsdWUpKSk7CisJCWZyZWV2YWwgPSB0cnVlOwor CX0KKworCW15U3RhdGUtPnJvd3MgKz0gMTsKKworCWlmIChteVN0YXRlLT5yb3dzID4gMSkKKwkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1RPT19NQU5ZX1JPV1MpLAorCQkJ CSBlcnJtc2coImV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0aGFuIG9uZSByb3ciKSkpOworCisJ U2V0U2Vzc2lvblZhcmlhYmxlKG15U3RhdGUtPnZhcmlkLCB2YWx1ZSwgaXNudWxsKTsKKworCWlm IChmcmVldmFsKQorCQlwZnJlZShEYXR1bUdldFBvaW50ZXIodmFsdWUpKTsKKworCXJldHVybiB0 cnVlOworfQorCisvKgorICogQ2xlYW4gdXAgYXQgZW5kIG9mIHRoZSBleGVjdXRvciBydW4KKyAq Lworc3RhdGljIHZvaWQKK3N2YXJpYWJsZVNodXRkb3duUmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpz ZWxmKQoreworCWlmICgoKFNWYXJpYWJsZVN0YXRlICopIHNlbGYpLT5yb3dzID09IDApCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OT19EQVRBX0ZPVU5EKSwKKwkJCQkg ZXJybXNnKCJleHByZXNzaW9uIHJldHVybmVkIG5vIHJvd3MiKSkpOworfQorCisvKgorICogRGVz dHJveSB0aGUgcmVjZWl2ZXIgd2hlbiB3ZSBhcmUgZG9uZSB3aXRoIGl0CisgKi8KK3N0YXRpYyB2 b2lkCitzdmFyaWFibGVEZXN0cm95UmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmKQoreworCXBm cmVlKHNlbGYpOworfQorCisvKgorICogSW5pdGlhbGx5IGNyZWF0ZSBhIERlc3RSZWNlaXZlciBv YmplY3QuCisgKi8KK0Rlc3RSZWNlaXZlciAqCitDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihP aWQgdmFyaWQpCit7CisJU1ZhcmlhYmxlU3RhdGUgKnNlbGYgPSAoU1ZhcmlhYmxlU3RhdGUgKikg cGFsbG9jMChzaXplb2YoU1ZhcmlhYmxlU3RhdGUpKTsKKworCXNlbGYtPnB1Yi5yZWNlaXZlU2xv dCA9IHN2YXJpYWJsZVJlY2VpdmVTbG90OworCXNlbGYtPnB1Yi5yU3RhcnR1cCA9IHN2YXJpYWJs ZVN0YXJ0dXBSZWNlaXZlcjsKKwlzZWxmLT5wdWIuclNodXRkb3duID0gc3ZhcmlhYmxlU2h1dGRv d25SZWNlaXZlcjsKKwlzZWxmLT5wdWIuckRlc3Ryb3kgPSBzdmFyaWFibGVEZXN0cm95UmVjZWl2 ZXI7CisJc2VsZi0+cHViLm15ZGVzdCA9IERlc3RWYXJpYWJsZTsKKworCXNlbGYtPnZhcmlkID0g dmFyaWQ7CisKKwlyZXR1cm4gKERlc3RSZWNlaXZlciAqKSBzZWxmOworfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVu Y3MuYwppbmRleCAzMDYwODQ3YjEzMy4uOGZjNjdmMDhkNzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5j CkBAIC00MzQxLDYgKzQzNDEsMTYgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChO b2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRf TGV0U3RtdDoKKwkJCXsKKwkJCQlMZXRTdG10ICAgICpzdG10ID0gKExldFN0bXQgKikgbm9kZTsK KworCQkJCWlmIChXQUxLKHN0bXQtPnRhcmdldCkpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlm IChXQUxLKHN0bXQtPnF1ZXJ5KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsK IAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKIAkJCXsKIAkJCQlQTEFzc2lnblN0bXQgKnN0bXQgPSAo UExBc3NpZ25TdG10ICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5k ZXggMWY3OGRjM2Q1MzAuLmFlZTNhMGQxYWQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jCkBAIC0zMjUsNiArMzI1LDcgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2Us IGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJZ2xvYi0+bGFz dFBsYW5Ob2RlSWQgPSAwOwogCWdsb2ItPnRyYW5zaWVudFBsYW4gPSBmYWxzZTsKIAlnbG9iLT5k ZXBlbmRzT25Sb2xlID0gZmFsc2U7CisJZ2xvYi0+c2Vzc2lvblZhcmlhYmxlcyA9IE5JTDsKIAog CS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJsZSB0byB1c2UgcGFyYWxsZWwgbW9k ZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTU1OSw2ICs1NjAsNyBAQCBzdGFuZGFyZF9wbGFubmVy KFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9u cywKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xvYi0+cGFyYW1FeGVjVHlwZXM7CiAJLyog dXRpbGl0eVN0bXQgc2hvdWxkIGJlIG51bGwsIGJ1dCB3ZSBtaWdodCBhcyB3ZWxsIGNvcHkgaXQg Ki8KIAlyZXN1bHQtPnV0aWxpdHlTdG10ID0gcGFyc2UtPnV0aWxpdHlTdG10OworCXJlc3VsdC0+ c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNlc3Npb25WYXJpYWJsZXM7CiAJcmVzdWx0LT5zdG10 X2xvY2F0aW9uID0gcGFyc2UtPnN0bXRfbG9jYXRpb247CiAJcmVzdWx0LT5zdG10X2xlbiA9IHBh cnNlLT5zdG10X2xlbjsKIApAQCAtNzI5LDYgKzczMSwxMyBAQCBzdWJxdWVyeV9wbGFubmVyKFBs YW5uZXJHbG9iYWwgKmdsb2IsIFF1ZXJ5ICpwYXJzZSwgUGxhbm5lckluZm8gKnBhcmVudF9yb290 LAogCSAqLwogCXB1bGxfdXBfc3VicXVlcmllcyhyb290KTsKIAorCS8qCisJICogQ2hlY2sgaWYg c29tZSBzdWJxdWVyeSB1c2VzIGEgc2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSBmbGFnCisJICogaGFz U2Vzc2lvblZhcmlhYmxlcyBzaG91bGQgYmUgdHJ1ZSBpZiB0aGUgcXVlcnkgb3Igc29tZSBzdWJx dWVyeSB1c2VzIGEKKwkgKiBzZXNzaW9uIHZhcmlhYmxlLgorCSAqLworCXB1bGxfdXBfaGFzX3Nl c3Npb25fdmFyaWFibGVzKHJvb3QpOworCiAJLyoKIAkgKiBJZiB0aGlzIGlzIGEgc2ltcGxlIFVO SU9OIEFMTCBxdWVyeSwgZmxhdHRlbiBpdCBpbnRvIGFuIGFwcGVuZHJlbC4gV2UKIAkgKiBkbyB0 aGlzIG5vdyBiZWNhdXNlIGl0IHJlcXVpcmVzIGFwcGx5aW5nIHB1bGxfdXBfc3VicXVlcmllcyB0 byB0aGUgbGVhZgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVm cy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCmluZGV4IDkxYzdjNGZl MmZlLi4xZmEyZWNmNWMyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v c2V0cmVmcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwpAQCAt MjEwLDYgKzIxMCw5IEBAIHN0YXRpYyBMaXN0ICpzZXRfcmV0dXJuaW5nX2NsYXVzZV9yZWZlcmVu Y2VzKFBsYW5uZXJJbmZvICpyb290LAogc3RhdGljIExpc3QgKnNldF93aW5kb3dhZ2dfcnVuY29u ZGl0aW9uX3JlZmVyZW5jZXMoUGxhbm5lckluZm8gKnJvb3QsCiAJCQkJCQkJCQkJCQkgICBMaXN0 ICpydW5jb25kaXRpb24sCiAJCQkJCQkJCQkJCQkgICBQbGFuICpwbGFuKTsKK3N0YXRpYyBib29s IHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlcihOb2RlICpub2RlLAorCQkJCQkJ CQkJCQkJIFBsYW5uZXJJbmZvICpyb290KTsKK3N0YXRpYyB2b2lkIHJlY29yZF9wbGFuX3Zhcmlh YmxlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB2YXJpZCk7CiAKIAogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCkBAIC0xMzEwLDYgKzEzMTMsNTAgQEAgc2V0X3BsYW5fcmVmcyhQbGFu bmVySW5mbyAqcm9vdCwgUGxhbiAqcGxhbiwgaW50IHJ0b2Zmc2V0KQogCXJldHVybiBwbGFuOwog fQogCisvKgorICogU2VhcmNoIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGVzIGluIHN1YnF1ZXJp ZXMKKyAqLwordm9pZAorcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMoUGxhbm5lckluZm8g KnJvb3QpCit7CisJUXVlcnkJICAgKnF1ZXJ5ID0gcm9vdC0+cGFyc2U7CisKKwlpZiAocXVlcnkt Pmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJeworCQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0g dHJ1ZTsKKwl9CisJZWxzZQorCXsKKwkJKHZvaWQpIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LAor CQkJCQkJCQkgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkg KHZvaWQgKikgcm9vdCwgMCk7CisJfQorfQorCitzdGF0aWMgYm9vbAorcHVsbF91cF9oYXNfc2Vz c2lvbl92YXJpYWJsZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpyb290KQorewor CWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwlpZiAoSXNBKG5vZGUsIFF1ZXJ5 KSkKKwl7CisJCVF1ZXJ5CSAgICpxdWVyeSA9IChRdWVyeSAqKSBub2RlOworCisJCWlmIChxdWVy eS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxl cyA9IHRydWU7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQkvKiByZWN1cnNlIGludG8gc3Vi c2VsZWN0cyAqLworCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIoKFF1ZXJ5ICopIG5vZGUsCisJ CQkJCQkJCSBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAo dm9pZCAqKSByb290LCAwKTsKKwl9CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9k ZSwgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgICh2b2lk ICopIHJvb3QpOworfQorCiAvKgogICogc2V0X2luZGV4b25seXNjYW5fcmVmZXJlbmNlcwogICoJ CURvIHNldF9wbGFuX3JlZmVyZW5jZXMgcHJvY2Vzc2luZyBvbiBhbiBJbmRleE9ubHlTY2FuCkBA IC0xOTU4LDggKzIwMDUsOSBAQCBjb3B5VmFyKFZhciAqdmFyKQogICogVGhpcyBpcyBjb2RlIHRo YXQgaXMgY29tbW9uIHRvIGFsbCB2YXJpYW50cyBvZiBleHByZXNzaW9uLWZpeGluZy4KICAqIFdl IG11c3QgbG9vayB1cCBvcGVyYXRvciBvcGNvZGUgaW5mbyBmb3IgT3BFeHByIGFuZCByZWxhdGVk IG5vZGVzLAogICogYWRkIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3Qt Pmdsb2ItPnJlbGF0aW9uT2lkcywgYW5kCi0gKiBhZGQgUGxhbkludmFsSXRlbXMgZm9yIHVzZXIt ZGVmaW5lZCBmdW5jdGlvbnMgaW50byByb290LT5nbG9iLT5pbnZhbEl0ZW1zLgotICogV2UgYWxz byBmaWxsIGluIGNvbHVtbiBpbmRleCBsaXN0cyBmb3IgR1JPVVBJTkcoKSBleHByZXNzaW9ucy4K KyAqIGFkZCBQbGFuSW52YWxJdGVtcyBmb3IgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBhbmQgc2Vz c2lvbiB2YXJpYWJsZXMgaW50bworICogcm9vdC0+Z2xvYi0+aW52YWxJdGVtcy4gIFdlIGFsc28g ZmlsbCBpbiBjb2x1bW4gaW5kZXggbGlzdHMgZm9yIEdST1VQSU5HKCkKKyAqIGV4cHJlc3Npb25z LgogICoKICAqIFdlIGFzc3VtZSBpdCdzIG9rYXkgdG8gdXBkYXRlIG9wY29kZSBpbmZvIGluLXBs YWNlLiAgU28gdGhpcyBjb3VsZCBwb3NzaWJseQogICogc2NyaWJibGUgb24gdGhlIHBsYW5uZXIn cyBpbnB1dCBkYXRhIHN0cnVjdHVyZXMsIGJ1dCBpdCdzIE9LLgpAQCAtMjA0OSw2ICsyMDk3LDEz IEBAIGZpeF9leHByX2NvbW1vbihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKIAkJCQln LT5jb2xzID0gY29sczsKIAkJfQogCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsK KwkJUGFyYW0JICAgKnAgPSAoUGFyYW0gKikgbm9kZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09 IFBBUkFNX1ZBUklBQkxFKQorCQkJcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShyb290 LCBwLT5wYXJhbXZhcmlkKTsKKwl9CiB9CiAKIC8qCkBAIC0yMDU4LDYgKzIxMTMsMTAgQEAgZml4 X2V4cHJfY29tbW9uKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKQogICogSWYgaXQncyBh IFBBUkFNX01VTFRJRVhQUiwgcmVwbGFjZSBpdCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBQYXJhbSBm cm9tCiAgKiByb290LT5tdWx0aWV4cHJfcGFyYW1zOyBvdGhlcndpc2Ugbm8gY2hhbmdlIGlzIG5l ZWRlZC4KICAqIEp1c3QgZm9yIHBhcmFub2lhJ3Mgc2FrZSwgd2UgbWFrZSBhIGNvcHkgb2YgdGhl IG5vZGUgaW4gZWl0aGVyIGNhc2UuCisgKgorICogSWYgaXQncyBhIFBBUkFNX1ZBUklBQkxFLCB0 aGVuIHdlIGNvbGxlY3QgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyBpbgorICogdGhlIGxpc3Qgcm9v dC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlLiAgQWxzbywgYXNzaWduIHRoZSBwYXJhbWV0ZXIncwor ICogInBhcmFtaWQiIHRvIHRoZSBwYXJhbWV0ZXIncyBwb3NpdGlvbiBpbiB0aGF0IGxpc3QuCiAg Ki8KIHN0YXRpYyBOb2RlICoKIGZpeF9wYXJhbV9ub2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJh bSAqcCkKQEAgLTIwNzYsNiArMjEzNSw0MSBAQCBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAq cm9vdCwgUGFyYW0gKnApCiAJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBQQVJBTV9NVUxUSUVY UFIgSUQ6ICVkIiwgcC0+cGFyYW1pZCk7CiAJCXJldHVybiBjb3B5T2JqZWN0KGxpc3RfbnRoKHBh cmFtcywgY29sbm8gLSAxKSk7CiAJfQorCisJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJ QUJMRSkKKwl7CisJCUxpc3RDZWxsICAgKmxjOworCQlpbnQJCQluID0gMDsKKwkJYm9vbAkJZm91 bmQgPSBmYWxzZTsKKworCQkvKiB3ZSB3aWxsIG1vZGlmeSBvYmplY3QgKi8KKwkJcCA9IChQYXJh bSAqKSBjb3B5T2JqZWN0KHApOworCisJCS8qCisJCSAqIE5vdywgd2UgY2FuIGFjdHVhbGl6ZSBs aXN0IG9mIHNlc3Npb24gdmFyaWFibGVzLCBhbmQgd2UgY2FuCisJCSAqIGNvbXBsZXRlIHBhcmFt aWQgcGFyYW1ldGVyLgorCQkgKi8KKwkJZm9yZWFjaChsYywgcm9vdC0+Z2xvYi0+c2Vzc2lvblZh cmlhYmxlcykKKwkJeworCQkJaWYgKGxmaXJzdF9vaWQobGMpID09IHAtPnBhcmFtdmFyaWQpCisJ CQl7CisJCQkJcC0+cGFyYW1pZCA9IG47CisJCQkJZm91bmQgPSB0cnVlOworCQkJCWJyZWFrOwor CQkJfQorCQkJbiArPSAxOworCQl9CisKKwkJaWYgKCFmb3VuZCkKKwkJeworCQkJcm9vdC0+Z2xv Yi0+c2Vzc2lvblZhcmlhYmxlcyA9IGxhcHBlbmRfb2lkKHJvb3QtPmdsb2ItPnNlc3Npb25WYXJp YWJsZXMsCisJCQkJCQkJCQkJCQkJICAgcC0+cGFyYW12YXJpZCk7CisJCQlwLT5wYXJhbWlkID0g bjsKKwkJfQorCisJCXJldHVybiAoTm9kZSAqKSBwOworCX0KKwogCXJldHVybiAoTm9kZSAqKSBj b3B5T2JqZWN0KHApOwogfQogCkBAIC0yMTM3LDcgKzIyMzEsMTAgQEAgZml4X2FsdGVybmF0aXZl X3N1YnBsYW4oUGxhbm5lckluZm8gKnJvb3QsIEFsdGVybmF0aXZlU3ViUGxhbiAqYXNwbGFuLAog ICogcmVwbGFjaW5nIEFnZ3JlZiBub2RlcyB0aGF0IHNob3VsZCBiZSByZXBsYWNlZCBieSBpbml0 cGxhbiBvdXRwdXQgUGFyYW1zLAogICogY2hvb3NpbmcgdGhlIGJlc3QgaW1wbGVtZW50YXRpb24g Zm9yIEFsdGVybmF0aXZlU3ViUGxhbnMsCiAgKiBsb29raW5nIHVwIG9wZXJhdG9yIG9wY29kZSBp bmZvIGZvciBPcEV4cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCi0gKiBhbmQgYWRkaW5nIE9JRHMgZnJv bSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lkcy4KKyAq IGFkZGluZyBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5y ZWxhdGlvbk9pZHMsCisgKiBhc3NpZ25pbmcgcGFyYW12YXJpZCB0byBQQVJBTV9WQVJJQUJMRSBw YXJhbXMsIGFuZCBjb2xsZWN0aW5nIHRoZQorICogT0lEcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBp biB0aGUgcm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcyBsaXN0CisgKiAocGFyYW12YXJpZCBp cyB0aGUgcG9zaXRpb24gb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgaW4gdGhpcyBsaXN0KS4KICAq CiAgKiAnbm9kZSc6IHRoZSBleHByZXNzaW9uIHRvIGJlIG1vZGlmaWVkCiAgKiAncnRvZmZzZXQn OiBob3cgbXVjaCB0byBpbmNyZW1lbnQgdmFybm9zIGJ5CkBAIC0yMTU5LDcgKzIyNTYsOCBAQCBm aXhfc2Nhbl9leHByKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlLCBpbnQgcnRvZmZzZXQs IGRvdWJsZSBudW1fZXhlYykKIAkJcm9vdC0+bXVsdGlleHByX3BhcmFtcyAhPSBOSUwgfHwKIAkJ cm9vdC0+Z2xvYi0+bGFzdFBISWQgIT0gMCB8fAogCQlyb290LT5taW5tYXhfYWdncyAhPSBOSUwg fHwKLQkJcm9vdC0+aGFzQWx0ZXJuYXRpdmVTdWJQbGFucykKKwkJcm9vdC0+aGFzQWx0ZXJuYXRp dmVTdWJQbGFucyB8fAorCQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCXsKIAkJcmV0dXJu IGZpeF9zY2FuX2V4cHJfbXV0YXRvcihub2RlLCAmY29udGV4dCk7CiAJfQpAQCAtMzU0NCw2ICsz NjQyLDI1IEBAIHJlY29yZF9wbGFuX3R5cGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwg T2lkIHR5cGlkKQogCX0KIH0KIAorLyoKKyAqIFJlY29yZCBkZXBlbmRlbmN5IG9uIGEgc2Vzc2lv biB2YXJpYWJsZS4gIFRoZSB2YXJpYWJsZSBjYW4gYmUgdXNlZCBhcyBhCisgKiBzZXNzaW9uIHZh cmlhYmxlIGluIGFuIGV4cHJlc3Npb24gbGlzdCwgb3IgYXMgdGhlIHRhcmdldCBvZiBhIExFVCBz dGF0ZW1lbnQuCisgKi8KK3N0YXRpYyB2b2lkCityZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRl bmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpCit7CisJUGxhbkludmFsSXRlbSAqaW52 YWxfaXRlbSA9IG1ha2VOb2RlKFBsYW5JbnZhbEl0ZW0pOworCisJLyogcGFyYW1pZCBpcyBzdGls bCBzZXNzaW9uIHZhcmlhYmxlIGlkICovCisJaW52YWxfaXRlbS0+Y2FjaGVJZCA9IFZBUklBQkxF T0lEOworCWludmFsX2l0ZW0tPmhhc2hWYWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJ QUJMRU9JRCwKKwkJCQkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJLyog YXBwZW5kIHRoaXMgdmFyaWFibGUgdG8gZ2xvYmFsLCByZWdpc3RlciBkZXBlbmRlbmN5ICovCisJ cm9vdC0+Z2xvYi0+aW52YWxJdGVtcyA9IGxhcHBlbmQocm9vdC0+Z2xvYi0+aW52YWxJdGVtcywK KwkJCQkJCQkJCSBpbnZhbF9pdGVtKTsKK30KKwogLyoKICAqIGV4dHJhY3RfcXVlcnlfZGVwZW5k ZW5jaWVzCiAgKgkJR2l2ZW4gYSByZXdyaXR0ZW4sIGJ1dCBub3QgeWV0IHBsYW5uZWQsIHF1ZXJ5 IG9yIHF1ZXJpZXMKQEAgLTM2MjksOSArMzc0Niw5IEBAIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5j aWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJCX0KIAogCQkJ LyoKLQkJCSAqIElnbm9yZSBvdGhlciB1dGlsaXR5IHN0YXRlbWVudHMsIGV4Y2VwdCB0aG9zZSAo c3VjaCBhcyBFWFBMQUlOKQotCQkJICogdGhhdCBjb250YWluIGEgcGFyc2VkLWJ1dC1ub3QtcGxh bm5lZCBxdWVyeS4gIEZvciB0aG9zZSwgd2UKLQkJCSAqIGp1c3QgbmVlZCB0byB0cmFuc2ZlciBv dXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWluZWQgcXVlcnkuCisJCQkgKiBJZ25vcmUgb3RoZXIg dXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2ggYXMgRVhQTEFJTgorCQkJICog b3IgTEVUKSB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1wbGFubmVkIHF1ZXJ5LiAgRm9y IHRob3NlLAorCQkJICogd2UganVzdCBuZWVkIHRvIHRyYW5zZmVyIG91ciBhdHRlbnRpb24gdG8g dGhlIGNvbnRhaW5lZCBxdWVyeS4KIAkJCSAqLwogCQkJcXVlcnkgPSBVdGlsaXR5Q29udGFpbnNR dWVyeShxdWVyeS0+dXRpbGl0eVN0bXQpOwogCQkJaWYgKHF1ZXJ5ID09IE5VTEwpCkBAIC0zNjU0 LDYgKzM3NzEsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5vZGUgKm5v ZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJCQlsYXBwZW5kX29pZChjb250ZXh0LT5nbG9i LT5yZWxhdGlvbk9pZHMsIHJ0ZS0+cmVsaWQpOwogCQl9CiAKKwkJLyogcmVjb3JkIGRlcGVuZGVu Y3kgb24gdGhlIHRhcmdldCB2YXJpYWJsZSBvZiBhIExFVCBjb21tYW5kICovCisJCWlmIChPaWRJ c1ZhbGlkKHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSkpCisJCQlyZWNvcmRfcGxhbl92YXJpYWJsZV9k ZXBlbmRlbmN5KGNvbnRleHQsIHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSk7CisKIAkJLyogQW5kIHJl Y3Vyc2UgaW50byB0aGUgcXVlcnkncyBzdWJleHByZXNzaW9ucyAqLwogCQlyZXR1cm4gcXVlcnlf dHJlZV93YWxrZXIocXVlcnksIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlciwKIAkJ CQkJCQkJICh2b2lkICopIGNvbnRleHQsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9w cmVwam9pbnRyZWUuYwppbmRleCAzM2IxMGQ3MmNiNS4uOWY2OThhNDZkODcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCisrKyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCkBAIC0xNDEwLDYgKzE0MTAsOSBAQCBw dWxsX3VwX3NpbXBsZV9zdWJxdWVyeShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqanRub2RlLCBS YW5nZVRibEVudHJ5ICpydGUsCiAJLyogSWYgc3VicXVlcnkgaGFkIGFueSBSTFMgY29uZGl0aW9u cywgbm93IG1haW4gcXVlcnkgZG9lcyB0b28gKi8KIAlwYXJzZS0+aGFzUm93U2VjdXJpdHkgfD0g c3VicXVlcnktPmhhc1Jvd1NlY3VyaXR5OwogCisJLyogaWYgdGhlIHN1YnF1ZXJ5IGhhZCBzZXNz aW9uIHZhcmlhYmxlcywgdGhlIG1haW4gcXVlcnkgZG9lcyB0b28gKi8KKwlwYXJzZS0+aGFzU2Vz c2lvblZhcmlhYmxlcyB8PSBzdWJxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlczsKKwogCS8qCiAJ ICogc3VicXVlcnkgd29uJ3QgYmUgcHVsbGVkIHVwIGlmIGl0IGhhc0FnZ3MsIGhhc1dpbmRvd0Z1 bmNzLCBvcgogCSAqIGhhc1RhcmdldFNSRnMsIHNvIG5vIHdvcmsgbmVlZGVkIG9uIHRob3NlIGZs YWdzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKaW5kZXggOGUzOTc5NWUyNDUuLmE1 NDUyYzBjOWU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2Vz LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC0yNCw2ICsy NCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5o IgogI2luY2x1ZGUgImV4ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIK QEAgLTkzNSw2ICs5MzYsMTMgQEAgbWF4X3BhcmFsbGVsX2hhemFyZF93YWxrZXIoTm9kZSAqbm9k ZSwgbWF4X3BhcmFsbGVsX2hhemFyZF9jb250ZXh0ICpjb250ZXh0KQogCQlpZiAocGFyYW0tPnBh cmFta2luZCA9PSBQQVJBTV9FWFRFUk4pCiAJCQlyZXR1cm4gZmFsc2U7CiAKKwkJLyogd2UgZG9u J3Qgc3VwcG9ydCBwYXNzaW5nIHNlc3Npb24gdmFyaWFibGVzIHRvIHdvcmtlcnMgKi8KKwkJaWYg KHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlmIChtYXhfcGFy YWxsZWxfaGF6YXJkX3Rlc3QoUFJPUEFSQUxMRUxfUkVTVFJJQ1RFRCwgY29udGV4dCkpCisJCQkJ cmV0dXJuIHRydWU7CisJCX0KKwogCQlpZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9FWEVD IHx8CiAJCQkhbGlzdF9tZW1iZXJfaW50KGNvbnRleHQtPnNhZmVfcGFyYW1faWRzLCBwYXJhbS0+ cGFyYW1pZCkpCiAJCXsKQEAgLTIzODksNiArMjM5Nyw3IEBAIGNvbnZlcnRfc2FvcF90b19oYXNo ZWRfc2FvcF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKICAqCSAgdmFsdWUgb2Yg dGhlIFBhcmFtLgogICogMi4gRm9sZCBzdGFibGUsIGFzIHdlbGwgYXMgaW1tdXRhYmxlLCBmdW5j dGlvbnMgdG8gY29uc3RhbnRzLgogICogMy4gUmVkdWNlIFBsYWNlSG9sZGVyVmFyIG5vZGVzIHRv IHRoZWlyIGNvbnRhaW5lZCBleHByZXNzaW9ucy4KKyAqIDQuIEN1cnJlbnQgdmFsdWUgb2Ygc2Vz c2lvbiB2YXJpYWJsZSBjYW4gYmUgdXNlZCBmb3IgZXN0aW1hdGlvbiB0b28uCiAgKi0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgKi8KIE5vZGUgKgpAQCAtMjUxNSw2ICsyNTI0LDI5IEBAIGV2YWxfY29u c3RfZXhwcmVzc2lvbnNfbXV0YXRvcihOb2RlICpub2RlLAogCQkJCQkJfQogCQkJCQl9CiAJCQkJ fQorCQkJCWVsc2UgaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUgJiYKKwkJ CQkJCSBjb250ZXh0LT5lc3RpbWF0ZSkKKwkJCQl7CisJCQkJCWludDE2CQl0eXBMZW47CisJCQkJ CWJvb2wJCXR5cEJ5VmFsOworCQkJCQlEYXR1bQkJcHZhbDsKKwkJCQkJYm9vbAkJaXNudWxsOwor CisJCQkJCWdldF90eXBsZW5ieXZhbChwYXJhbS0+cGFyYW10eXBlLAorCQkJCQkJCQkJJnR5cExl biwgJnR5cEJ5VmFsKTsKKworCQkJCQlwdmFsID0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVD aGVjayhwYXJhbS0+cGFyYW12YXJpZCwKKwkJCQkJCQkJCQkJCQkJICAgJmlzbnVsbCwKKwkJCQkJ CQkJCQkJCQkJICAgcGFyYW0tPnBhcmFtdHlwZSk7CisKKwkJCQkJcmV0dXJuIChOb2RlICopIG1h a2VDb25zdChwYXJhbS0+cGFyYW10eXBlLAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbXR5cG1v ZCwKKwkJCQkJCQkJCQkJICBwYXJhbS0+cGFyYW1jb2xsaWQsCisJCQkJCQkJCQkJCSAgKGludCkg dHlwTGVuLAorCQkJCQkJCQkJCQkgIHB2YWwsCisJCQkJCQkJCQkJCSAgaXNudWxsLAorCQkJCQkJ CQkJCQkgIHR5cEJ5VmFsKTsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIE5vdCByZXBsYWNlYWJs ZSwgc28ganVzdCBjb3B5IHRoZSBQYXJhbSAobm8gbmVlZCB0bwpAQCAtNDcxOCw3ICs0NzUwLDgg QEAgaW5saW5lX2Z1bmN0aW9uKE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgT2lkIHJlc3Vs dF9jb2xsaWQsCiAJCXF1ZXJ5dHJlZS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnl0cmVlLT5saW1p dENvdW50IHx8CiAJCXF1ZXJ5dHJlZS0+c2V0T3BlcmF0aW9ucyB8fAotCQlsaXN0X2xlbmd0aChx dWVyeXRyZWUtPnRhcmdldExpc3QpICE9IDEpCisJCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRh cmdldExpc3QpICE9IDEpIHx8CisJCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJ Z290byBmYWlsOwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJl c29sdmUgaXQgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDUwNmUwNjMxNjE1Li44MWI4YjBhNjMz ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0yNSw5ICsyNSwxMiBAQAogI2luY2x1ZGUgInBvc3Rn cmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3Mvc3lzYXR0ci5oIgorI2luY2x1ZGUgImNhdGFsb2cv bmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3Mu aCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKQEAgLTUxLDYgKzU0LDcgQEAKICNpbmNs dWRlICJ1dGlscy9iYWNrZW5kX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgi CiAjaW5jbHVkZSAidXRpbHMvZ3VjLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAj aW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIApAQCAt ODMsNiArODcsOCBAQCBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgQ3JlYXRlVGFibGVBc1N0bXQgKnN0bXQpOwog c3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ CQkJCUNhbGxTdG10ICpzdG10KTsKK3N0YXRpYyBRdWVyeSAqdHJhbnNmb3JtTGV0U3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJICAgTGV0U3RtdCAqc3RtdCk7CiBzdGF0aWMgdm9pZCB0 cmFuc2Zvcm1Mb2NraW5nQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUXVlcnkgKnFyeSwKIAkJ CQkJCQkJICAgTG9ja2luZ0NsYXVzZSAqbGMsIGJvb2wgcHVzaGVkRG93bik7CiAjaWZkZWYgREVC VUdfTk9ERV9URVNUU19FTkFCTEVECkBAIC00MTQsNiArNDIwLDcgQEAgdHJhbnNmb3JtU3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJCWNhc2UgVF9VcGRhdGVTdG10 OgogCQkJY2FzZSBUX0RlbGV0ZVN0bXQ6CiAJCQljYXNlIFRfTWVyZ2VTdG10OgorCQkJY2FzZSBU X0xldFN0bXQ6CiAJCQkJKHZvaWQpIHRlc3RfcmF3X2V4cHJlc3Npb25fY292ZXJhZ2UocGFyc2VU cmVlLCBOVUxMKTsKIAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CkBAIC00OTMsNiArNTAwLDExIEBA IHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpCiAJCQkJ CQkJCQkgICAoQ2FsbFN0bXQgKikgcGFyc2VUcmVlKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9M ZXRTdG10OgorCQkJcmVzdWx0ID0gdHJhbnNmb3JtTGV0U3RtdChwc3RhdGUsCisJCQkJCQkJCQkg IChMZXRTdG10ICopIHBhcnNlVHJlZSk7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCiAJCQkv KgpAQCAtNTQ1LDYgKzU1Nyw3IEBAIHN0bXRfcmVxdWlyZXNfcGFyc2VfYW5hbHlzaXMoUmF3U3Rt dCAqcGFyc2VUcmVlKQogCQljYXNlIFRfU2VsZWN0U3RtdDoKIAkJY2FzZSBUX1JldHVyblN0bXQ6 CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJcmVzdWx0ID0g dHJ1ZTsKIAkJCWJyZWFrOwogCkBAIC02NTMsNiArNjY2LDcgQEAgdHJhbnNmb3JtRGVsZXRlU3Rt dChQYXJzZVN0YXRlICpwc3RhdGUsIERlbGV0ZVN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dG dW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBw c3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdn czsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlh YmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMTA3 OSw2ICsxMDkzLDcgQEAgdHJhbnNmb3JtSW5zZXJ0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIElu c2VydFN0bXQgKnN0bXQpCiAKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFy Z2V0U1JGczsKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFy eS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwog CiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xNTQ0LDYgKzE1 NTksNyBAQCB0cmFuc2Zvcm1TZWxlY3RTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3Rt dCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNz OwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+ aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9 IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBzdG10LT5sb2Nr aW5nQ2xhdXNlKQogCXsKQEAgLTE3NzAsMTIgKzE3ODYsMjQyIEBAIHRyYW5zZm9ybVZhbHVlc0Ns YXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5qb2ludHJl ZSA9IG1ha2VGcm9tRXhwcihwc3RhdGUtPnBfam9pbmxpc3QsIE5VTEwpOwogCiAJcXJ5LT5oYXNT dWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJs ZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xs YXRpb25zKHBzdGF0ZSwgcXJ5KTsKIAogCXJldHVybiBxcnk7CiB9CiAKKy8qCisgKiB0cmFuc2Zv cm1MZXRTdG10IC0KKyAqCSAgdHJhbnNmb3JtIGFuIExldCBTdGF0ZW1lbnQKKyAqLworc3RhdGlj IFF1ZXJ5ICoKK3RyYW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpz dG10KQoreworCVF1ZXJ5CSAgICpxdWVyeTsKKwlRdWVyeQkgICAqcmVzdWx0OworCUxpc3QJICAg KmV4cHJMaXN0ID0gTklMOworCUxpc3QJICAgKmV4cHJMaXN0Q29lciA9IE5JTDsKKwlMaXN0Q2Vs bCAgICpsYzsKKwlMaXN0Q2VsbCAgICppbmRpcmVjdGlvbl9oZWFkID0gTlVMTDsKKwlRdWVyeQkg ICAqc2VsZWN0UXVlcnk7CisJT2lkCQkJdmFyaWQ7CisJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxM OworCWJvb2wJCW5vdF91bmlxdWU7CisJYm9vbAkJaXNfcm93dHlwZTsKKwlPaWQJCQl0eXBpZDsK KwlpbnQzMgkJdHlwbW9kOworCU9pZAkJCWNvbGxpZDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0Owor CUxpc3QJICAgKm5hbWVzID0gTlVMTDsKKwlpbnQJCQlpbmRpcmVjdGlvbl9zdGFydDsKKwlpbnQJ CQlpID0gMDsKKworCS8qIHRoZXJlIGNhbid0IGJlIGFueSBvdXRlciBXSVRIIHRvIHdvcnJ5IGFi b3V0ICovCisJQXNzZXJ0KHBzdGF0ZS0+cF9jdGVuYW1lc3BhY2UgPT0gTklMKTsKKworCW5hbWVz ID0gTmFtZXNGcm9tTGlzdChzdG10LT50YXJnZXQpOworCisJLyogbG9ja3MgdGhlIHZhcmlhYmxl IHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrICovCisJdmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKG5h bWVzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CisJaWYgKG5vdF91bmlxdWUpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1FVEVS KSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQgXCIlc1wiIG9mIExFVCBjb21tYW5kIGlzIGFtYmlndW91 cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSksCisJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlk KSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpF Q1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3Qi LAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRp b24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCS8qCisJICogQ2FsY3VsYXRlIHN0YXJ0 IG9mIHBvc3NpYmxlIHBvc2l0aW9uIG9mIGFuIGluZGlyZWN0aW9uIGluIGxpc3QsIGFuZAorCSAq IHdoZW4gaXQgaXMgaW5zaWRlIHRoZSBsaXN0LCBzdG9yZSBwb2ludGVyIG9uIGZpcnN0IG5vZGUg b2YgaW5kaXJlY3Rpb24uCisJICovCisJaW5kaXJlY3Rpb25fc3RhcnQgPSBsaXN0X2xlbmd0aChu YW1lcykgLSAoYXR0cm5hbWUgPyAxIDogMCk7CisJaWYgKGxpc3RfbGVuZ3RoKHN0bXQtPnRhcmdl dCkgPiBpbmRpcmVjdGlvbl9zdGFydCkKKwkJaW5kaXJlY3Rpb25faGVhZCA9IGxpc3RfbnRoX2Nl bGwoc3RtdC0+dGFyZ2V0LCBpbmRpcmVjdGlvbl9zdGFydCk7CisKKwlnZXRfc2Vzc2lvbl92YXJp YWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBpZCwgJnR5cG1vZCwgJmNvbGxpZCk7 CisKKwlpc19yb3d0eXBlID0gdHlwZV9pc19yb3d0eXBlKHR5cGlkKTsKKworCWlmIChhdHRybmFt ZSAmJiAhaXNfcm93dHlwZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJ0eXBlIFwiJXNcIiBvZiB0YXJnZXQg c2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAorCQkJ CQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10 LT5sb2NhdGlvbikpKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJl bGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFjbHJlc3Vs dCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFS SUFCTEUsIE5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKTsKKworCXBzdGF0ZS0+cF9leHByX2tpbmQg PSBFWFBSX0tJTkRfTEVUX1RBUkdFVDsKKworCS8qIHdlIG5lZWQgdG8gcG9zdHBvbmUgY29udmVy c2lvbiBvZiAidW5rbm93biIgdG8gdGV4dCAqLworCXBzdGF0ZS0+cF9yZXNvbHZlX3Vua25vd25z ID0gZmFsc2U7CisKKwlzZWxlY3RRdWVyeSA9IHRyYW5zZm9ybVN0bXQocHN0YXRlLCBzdG10LT5x dWVyeSk7CisKKwkvKiB0aGUgZ3JhbW1hciBzaG91bGQgaGF2ZSBwcm9kdWNlZCBhIFNFTEVDVCAq LworCUFzc2VydChJc0Eoc2VsZWN0UXVlcnksIFF1ZXJ5KSAmJiBzZWxlY3RRdWVyeS0+Y29tbWFu ZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisKKwkvKgorCSAqIEdlbmVyYXRlIGFuIGV4cHJlc3Npb24g bGlzdCBmb3IgdGhlIExFVCB0aGF0IHNlbGVjdHMgYWxsIHRoZSBub24tcmVzanVuaworCSAqIGNv bHVtbnMgZnJvbSB0aGUgc3VicXVlcnkuCisJICovCisJZXhwckxpc3QgPSBOSUw7CisJZm9yZWFj aChsYywgc2VsZWN0UXVlcnktPnRhcmdldExpc3QpCisJeworCQlUYXJnZXRFbnRyeSAqdGxlID0g KFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CisKKwkJaWYgKHRsZS0+cmVzanVuaykKKwkJCWNv bnRpbnVlOworCisJCWV4cHJMaXN0ID0gbGFwcGVuZChleHByTGlzdCwgdGxlLT5leHByKTsKKwl9 CisKKwkvKiBkb24ndCBhbGxvdyBtdWx0aWNvbHVtbiByZXN1bHQgKi8KKwlpZiAobGlzdF9sZW5n dGgoZXhwckxpc3QpICE9IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2dfcGx1cmFsKCJhc3NpZ25tZW50IGV4cHJlc3Np b24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJCQkgICAiYXNzaWdubWVudCBleHByZXNzaW9u IHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJCSAgIGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSwK KwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlzdCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRp b24ocHN0YXRlLAorCQkJCQkJCQkJZXhwckxvY2F0aW9uKChOb2RlICopIGV4cHJMaXN0KSkpKTsK KworCWV4cHJMaXN0Q29lciA9IE5JTDsKKworCWZvcmVhY2gobGMsIGV4cHJMaXN0KQorCXsKKwkJ RXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJCUV4cHIJICAgKmNvZXJjZWRf ZXhwcjsKKwkJUGFyYW0JICAgKnBhcmFtOworCQlPaWQJCQlleHBydHlwaWQ7CisKKwkJLyogbm93 IHdlIGNhbiByZWFkIHRoZSB0eXBlIG9mIHRoZSBleHByZXNzaW9uICovCisJCWV4cHJ0eXBpZCA9 IGV4cHJUeXBlKChOb2RlICopIGV4cHIpOworCisJCXBhcmFtID0gbWFrZU5vZGUoUGFyYW0pOwor CQlwYXJhbS0+cGFyYW1raW5kID0gUEFSQU1fVkFSSUFCTEU7CisJCXBhcmFtLT5wYXJhbXZhcmlk ID0gdmFyaWQ7CisJCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBpZDsKKwkJcGFyYW0tPnBhcmFtdHlw bW9kID0gdHlwbW9kOworCisJCWlmIChpbmRpcmVjdGlvbl9oZWFkKQorCQl7CisJCQlib29sCQl0 YXJnZXRJc0FycmF5OworCQkJY2hhcgkgICAqdGFyZ2V0TmFtZTsKKworCQkJdGFyZ2V0TmFtZSA9 IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpOworCQkJdGFyZ2V0SXNBcnJheSA9IE9p ZElzVmFsaWQoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkpOworCisJCQlwc3RhdGUtPnBfaGFzU2Vz c2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJ dHJhbnNmb3JtQXNzaWdubWVudEluZGlyZWN0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCQkJICAgKE5v ZGUgKikgcGFyYW0sCisJCQkJCQkJCQkJCSAgIHRhcmdldE5hbWUsCisJCQkJCQkJCQkJCSAgIHRh cmdldElzQXJyYXksCisJCQkJCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJCQkJCQkgICB0eXBtb2Qs CisJCQkJCQkJCQkJCSAgIEludmFsaWRPaWQsCisJCQkJCQkJCQkJCSAgIHN0bXQtPnRhcmdldCwK KwkJCQkJCQkJCQkJICAgaW5kaXJlY3Rpb25faGVhZCwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikg ZXhwciwKKwkJCQkJCQkJCQkJICAgQ09FUkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCQkJICAg c3RtdC0+bG9jYXRpb24pOworCQl9CisJCWVsc2UKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICop CisJCQkJY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCSAgKE5vZGUgKikg ZXhwciwKKwkJCQkJCQkJCSAgZXhwcnR5cGlkLAorCQkJCQkJCQkJICB0eXBpZCwgdHlwbW9kLAor CQkJCQkJCQkJICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJCQkJCQkJICBDT0VSQ0VfSU1QTElD SVRfQ0FTVCwKKwkJCQkJCQkJCSAgc3RtdC0+bG9jYXRpb24pOworCisJCWlmIChjb2VyY2VkX2V4 cHIgPT0gTlVMTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFU QVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2Yg dHlwZSAlcywiCisJCQkJCQkJIiBidXQgZXhwcmVzc2lvbiBpcyBvZiB0eXBlICVzIiwKKwkJCQkJ CQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlk KSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9y bWF0X3R5cGVfYmUodHlwaWQpLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKGV4cHJ0eXBpZCkpLAor CQkJCQkgZXJyaGludCgiWW91IHdpbGwgbmVlZCB0byByZXdyaXRlIG9yIGNhc3QgdGhlIGV4cHJl c3Npb24uIiksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o KE5vZGUgKikgZXhwcikpKSk7CisKKwkJZXhwckxpc3RDb2VyID0gbGFwcGVuZChleHByTGlzdENv ZXIsIGNvZXJjZWRfZXhwcik7CisJfQorCisJLyogZ2VuZXJhdGUgcXVlcnkncyB0YXJnZXQgbGlz dCB1c2luZyB0aGUgY29tcHV0ZWQgbGlzdCBvZiBleHByZXNzaW9ucyAqLworCXF1ZXJ5ID0gbWFr ZU5vZGUoUXVlcnkpOworCXF1ZXJ5LT5jb21tYW5kVHlwZSA9IENNRF9TRUxFQ1Q7CisKKwlmb3Jl YWNoKGxjLCBleHByTGlzdENvZXIpCisJeworCQlFeHByCSAgICpleHByID0gKEV4cHIgKikgbGZp cnN0KGxjKTsKKwkJVGFyZ2V0RW50cnkgKnRsZTsKKworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnko ZXhwciwKKwkJCQkJCQkgIGkgKyAxLAorCQkJCQkJCSAgRmlndXJlQ29sbmFtZSgoTm9kZSAqKSBl eHByKSwKKwkJCQkJCQkgIGZhbHNlKTsKKwkJcXVlcnktPnRhcmdldExpc3QgPSBsYXBwZW5kKHF1 ZXJ5LT50YXJnZXRMaXN0LCB0bGUpOworCX0KKworCS8qIGRvbmUgYnVpbGRpbmcgdGhlIHJhbmdl IHRhYmxlIGFuZCBqb2ludHJlZSAqLworCXF1ZXJ5LT5ydGFibGUgPSBwc3RhdGUtPnBfcnRhYmxl OworCXF1ZXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihwc3RhdGUtPnBfam9pbmxpc3QsIE5V TEwpOworCisJcXVlcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsK KwlxdWVyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXVlcnktPmhh c1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKKworCS8q IHRoaXMgaXMgdG9wLWxldmVsIHF1ZXJ5ICovCisJcXVlcnktPmNhblNldFRhZyA9IHRydWU7CisK KwkvKgorCSAqIFNhdmUgdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgSUQuICBUaGlzIHZhbHVlIGlz IHVzZWQgbXVsdGlwbGUgdGltZXM6IGJ5CisJICogdGhlIHF1ZXJ5IHJld3JpdGVyIChmb3IgZ2V0 dGluZyByZWxhdGVkIGRlZmV4cHIpLCBieSBwbGFubmVyIChmb3IKKwkgKiBhY3F1aXJpbmcgYW4g QWNjZXNzU2hhcmVMb2NrIG9uIHRhcmdldCB2YXJpYWJsZSksIGFuZCBieSB0aGUgZXhlY3V0b3IK KwkgKiAod2UgbmVlZCB0byBrbm93IHRoZSB0YXJnZXQgdmFyaWFibGUgSUQpLgorCSAqLworCXF1 ZXJ5LT5yZXN1bHRWYXJpYWJsZSA9IHZhcmlkOworCisJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMo cHN0YXRlLCBxdWVyeSk7CisKKwkvKgorCSAqIFRoZSBxdWVyeSBpcyBleGVjdXRlZCBhcyB1dGls aXR5IGNvbW1hbmQgYnkgbmVzdGVkIGV4ZWN1dG9yIGNhbGwuCisJICogQXNzaWduZWQgcXVlcnlJ ZCBpcyByZXF1aXJlZCBpbiB0aGlzIGNhc2UuCisJICovCisJaWYgKElzUXVlcnlJZEVuYWJsZWQo KSkKKwkJSnVtYmxlUXVlcnkocXVlcnkpOworCisJc3RtdC0+cXVlcnkgPSAoTm9kZSAqKSBxdWVy eTsKKworCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8KKwly ZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CisJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9VVElM SVRZOworCXJlc3VsdC0+dXRpbGl0eVN0bXQgPSAoTm9kZSAqKSBzdG10OworCisJcmV0dXJuIHJl c3VsdDsKK30KKwogLyoKICAqIHRyYW5zZm9ybVNldE9wZXJhdGlvblN0bXQgLQogICoJICB0cmFu c2Zvcm1zIGEgc2V0LW9wZXJhdGlvbnMgdHJlZQpAQCAtMjAyMSw2ICsyMjY3LDcgQEAgdHJhbnNm b3JtU2V0T3BlcmF0aW9uU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQp CiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnkt Pmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3Mg PSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUt PnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWZvcmVhY2gobCwgbG9ja2luZ0NsYXVzZSkKIAl7 CkBAIC0yNDk2LDYgKzI3NDMsNyBAQCB0cmFuc2Zvcm1SZXR1cm5TdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgUmV0dXJuU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5w X2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJn ZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vz c2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWdu X3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0yNTYzLDYgKzI4MTEsNyBAQCB0 cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3RtdCkK IAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+ aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFy aWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlf Y29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI3NTAsOSArMjk5OSwxNSBAQCB0cmFuc2Zv cm1QTEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJ LyoKIAkgKiBUcmFuc2Zvcm0gdGhlIHRhcmdldCByZWZlcmVuY2UuICBUeXBpY2FsbHkgd2Ugd2ls bCBnZXQgYmFjayBhIFBhcmFtCiAJICogbm9kZSwgYnV0IHRoZXJlJ3Mgbm8gcmVhc29uIHRvIGJl IHRvbyBwaWNreSBhYm91dCBpdHMgdHlwZS4KKwkgKgorCSAqIFNlc3Npb24gdmFyaWFibGVzIHNo b3VsZCBub3QgYmUgdXNlZCBhcyB0YXJnZXQgb2YgYSBQTC9wZ1NRTCBhc3NpZ24KKwkgKiBzdGF0 ZW1lbnQuICBTbyB3ZSBzaG91bGQgdXNlIGEgZGVkaWNhdGVkIGV4cHJlc3Npb24ga2luZCBhbmQg ZGlzYWxsb3cKKwkgKiBzZXNzaW9uIHZhcmlhYmxlcyB0aGVyZS4gIFRoZSBkZWRpY2F0ZWQgY29u dGV4dCBhbGxvd3MgdG8gZWxpbWluYXRlCisJICogdW5kZXNpcmFibGUgd2FybmluZ3MgYWJvdXQg dGhlIHBvc3NpYmlsaXR5IG9mIGEgdGFyZ2V0IFBML3BnU1FMIHZhcmlhYmxlCisJICogc2hhZG93 aW5nIGEgc2Vzc2lvbiB2YXJpYWJsZS4KIAkgKi8KIAl0YXJnZXQgPSB0cmFuc2Zvcm1FeHByKHBz dGF0ZSwgKE5vZGUgKikgY3JlZiwKLQkJCQkJCSAgIEVYUFJfS0lORF9VUERBVEVfVEFSR0VUKTsK KwkJCQkJCSAgIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUKTsKIAl0YXJnZXR0eXBlID0gZXhwclR5 cGUodGFyZ2V0KTsKIAl0YXJnZXR0eXBtb2QgPSBleHByVHlwbW9kKHRhcmdldCk7CiAJdGFyZ2V0 Y29sbGF0aW9uID0gZXhwckNvbGxhdGlvbih0YXJnZXQpOwpAQCAtMjc5NCw2ICszMDQ5LDEwIEBA IHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAq c3RtdCkKIAkgKi8KIAl0eXBlX2lkID0gZXhwclR5cGUoKE5vZGUgKikgdGxlLT5leHByKTsKIAor CS8qCisJICogRm9yIGluZGlyZWN0aW9uIHByb2Nlc3NpbmcgYW5kIGFkZGl0aW9uYWwgY2FzdHMg d2UgY2FuIHVzZSBleHByX2tpbmQKKwkgKiBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVC4KKwkgKi8K IAlwc3RhdGUtPnBfZXhwcl9raW5kID0gRVhQUl9LSU5EX1VQREFURV9UQVJHRVQ7CiAKIAlpZiAo aW5kaXJlY3Rpb24pCkBAIC0yOTM2LDYgKzMxOTUsOCBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJCQkJCQkJICAgKExvY2tp bmdDbGF1c2UgKikgbGZpcnN0KGwpLCBmYWxzZSk7CiAJfQogCisJcXJ5LT5oYXNTZXNzaW9uVmFy aWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CisKIAlhc3NpZ25fcXVlcnlf Y29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKIAkvKiB0aGlzIG11c3QgYmUgZG9uZSBhZnRlciBj b2xsYXRpb25zLCBmb3IgcmVsaWFibGUgY29tcGFyaXNvbiBvZiBleHBycyAqLwpAQCAtMzIwOSw2 ICszNDcwLDE0IEBAIHRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2FsbFN0 bXQgKnN0bXQpCiAJCQkJCQkJIHRydWUsCiAJCQkJCQkJIHN0bXQtPmZ1bmNjYWxsLT5sb2NhdGlv bik7CiAKKwkvKgorCSAqIFRoZSBhcmd1bWVudHMgb2YgQ0FMTCBzdGF0ZW1lbnQgYXJlIGV2YWx1 YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9uCisJICogZXhlY3V0b3IgY2FsbC4gIFRoaXMgcGF0 aCBpcyB1bnN1cHBvcnRlZCB5ZXQsIHNvIGJsb2NrIGl0LiAgSXQgd2lsbCBiZQorCSAqIGVuYWJs ZWQgbGF0ZXIuCisJICovCisJaWYgKHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQorCQll bG9nKEVSUk9SLCAic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVu dCIpOworCiAJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIG5vZGUpOwogCiAJZmV4cHIg PSBjYXN0Tm9kZShGdW5jRXhwciwgbm9kZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA4OWZhMjNjMmRkNC4u OGFlMzY4YzUxM2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjkzLDcgKzI5Myw3IEBAIHN0YXRpYyBOb2Rl ICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBO b2RlICpxdWVyeSk7CiAJCURyb3BUcmFuc2Zvcm1TdG10CiAJCURyb3BVc2VyTWFwcGluZ1N0bXQg RXhwbGFpblN0bXQgRmV0Y2hTdG10CiAJCUdyYW50U3RtdCBHcmFudFJvbGVTdG10IEltcG9ydEZv cmVpZ25TY2hlbWFTdG10IEluZGV4U3RtdCBJbnNlcnRTdG10Ci0JCUxpc3RlblN0bXQgTG9hZFN0 bXQgTG9ja1N0bXQgTWVyZ2VTdG10IE5vdGlmeVN0bXQgRXhwbGFpbmFibGVTdG10IFByZXBhcmFi bGVTdG10CisJCUxldFN0bXQgTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0bXQg Tm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKIAkJQ3JlYXRlRnVuY3Rp b25TdG10IEFsdGVyRnVuY3Rpb25TdG10IFJlaW5kZXhTdG10IFJlbW92ZUFnZ3JTdG10CiAJCVJl bW92ZUZ1bmNTdG10IFJlbW92ZU9wZXJTdG10IFJlbmFtZVN0bXQgUmV0dXJuU3RtdCBSZXZva2VT dG10IFJldm9rZVJvbGVTdG10CiAJCVJ1bGVBY3Rpb25TdG10IFJ1bGVBY3Rpb25TdG10T3JFbXB0 eSBSdWxlU3RtdApAQCAtNDQzLDYgKzQ0Myw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZl Vmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJ CQkJVHJpZ2dlclRyYW5zaXRpb25zIFRyaWdnZXJSZWZlcmVuY2luZwogCQkJCXZhY3V1bV9yZWxh dGlvbl9saXN0IG9wdF92YWN1dW1fcmVsYXRpb25fbGlzdAogCQkJCWRyb3Bfb3B0aW9uX2xpc3Qg cHViX29ial9saXN0CisJCQkJbGV0X3RhcmdldAogCiAldHlwZSA8bm9kZT4Jb3B0X3JvdXRpbmVf Ym9keQogJXR5cGUgPGdyb3VwY2xhdXNlPiBncm91cF9jbGF1c2UKQEAgLTczNCw3ICs3MzUsNyBA QCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlz dCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCUtFRVAgS0VZIEtFWVMKIAogCUxBQkVMIExBTkdV QUdFIExBUkdFX1AgTEFTVF9QIExBVEVSQUxfUAotCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExF RlQgTEVWRUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAorCUxFQURJTkcgTEVBS1BST09G IExFQVNUIExFRlQgTEVUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKIAlMT0NB TFRJTUUgTE9DQUxUSU1FU1RBTVAgTE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dHRUQKIAogCU1B UFBJTkcgTUFUQ0ggTUFUQ0hFRCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVSR0VfQUNU SU9OIE1FVEhPRApAQCAtMTA4MSw2ICsxMDgyLDcgQEAgc3RtdDoKIAkJCXwgSW1wb3J0Rm9yZWln blNjaGVtYVN0bXQKIAkJCXwgSW5kZXhTdG10CiAJCQl8IEluc2VydFN0bXQKKwkJCXwgTGV0U3Rt dAogCQkJfCBMaXN0ZW5TdG10CiAJCQl8IFJlZnJlc2hNYXRWaWV3U3RtdAogCQkJfCBMb2FkU3Rt dApAQCAtMTI3NzAsNiArMTI3NzIsNDcgQEAgb3B0X2hvbGQ6IC8qIEVNUFRZICovCQkJCQkJeyAk JCA9IDA7IH0KIAkJCXwgV0lUSE9VVCBIT0xECQkJCQl7ICQkID0gMDsgfQogCQk7CiAKKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorICoKKyAqCQlRVUVSWToKKyAqCQkJCUxFVCBTVEFURU1FTlQKKyAq CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCitMZXRTdG10OglMRVQgbGV0X3RhcmdldCAnPScgYV9l eHByCisJCQkJeworCQkJCQlMZXRTdG10CSAgICpuID0gbWFrZU5vZGUoTGV0U3RtdCk7CisJCQkJ CVNlbGVjdFN0bXQgKnNlbGVjdDsKKwkJCQkJUmVzVGFyZ2V0ICAqcmVzOworCisJCQkJCW4tPnRh cmdldCA9ICQyOworCisJCQkJCXNlbGVjdCA9IG1ha2VOb2RlKFNlbGVjdFN0bXQpOworCQkJCQly ZXMgPSBtYWtlTm9kZShSZXNUYXJnZXQpOworCisJCQkJCS8qIGNyZWF0ZSB0YXJnZXQgbGlzdCBm b3IgaW1wbGljaXQgcXVlcnkgKi8KKwkJCQkJcmVzLT5uYW1lID0gTlVMTDsKKwkJCQkJcmVzLT5p bmRpcmVjdGlvbiA9IE5JTDsKKwkJCQkJcmVzLT52YWwgPSAoTm9kZSAqKSAkNDsKKwkJCQkJcmVz LT5sb2NhdGlvbiA9IEA0OworCisJCQkJCXNlbGVjdC0+dGFyZ2V0TGlzdCA9IGxpc3RfbWFrZTEo cmVzKTsKKwkJCQkJbi0+cXVlcnkgPSAoTm9kZSAqKSBzZWxlY3Q7CisKKwkJCQkJbi0+bG9jYXRp b24gPSBAMjsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCitsZXRfdGFyZ2V0 OgorCQkJQ29sSWQgb3B0X2luZGlyZWN0aW9uCisJCQkJeworCQkJCQkkJCA9IGxpc3RfbWFrZTEo bWFrZVN0cmluZygkMSkpOworCQkJCQlpZiAoJDIpCisJCQkJCQkgICQkID0gbGlzdF9jb25jYXQo JCQsCisJCQkJCQkJCQkJICAgY2hlY2tfaW5kaXJlY3Rpb24oJDIsIHl5c2Nhbm5lcikpOworCQkJ CX0KKwkJOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJUVVFUlk6CkBAIC0xNzg0 MCw2ICsxNzg4Myw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgTEFSR0VfUAogCQkJfCBM QVNUX1AKIAkJCXwgTEVBS1BST09GCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBMSVNURU4K IAkJCXwgTE9BRApAQCAtMTg0NTEsNiArMTg0OTUsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJ CQl8IExFQUtQUk9PRgogCQkJfCBMRUFTVAogCQkJfCBMRUZUCisJCQl8IExFVAogCQkJfCBMRVZF TAogCQkJfCBMSUtFCiAJCQl8IExJU1RFTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2FnZy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IGVmYTcz MGMxNjc2Li5hNzM0MzAwMWYyMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNTgwLDYgKzU4 MCwxMSBAQCBjaGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTm9kZSAqZXhwcikKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBF WFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJ CWVycmtpbmQgPSB0cnVlOworCQkJYnJlYWs7CisKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRl bnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKIAkJCSAqIGNvbXBp bGVyIHdpbGwgd2FybiBpZiB3ZSBhZGQgYSBuZXcgUGFyc2VFeHByS2luZCB3aXRob3V0CkBAIC05 NzAsNiArOTc1LDEwIEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgV2luZG93RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQll cnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VU OgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRydWU7CisJCQli cmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDog Y2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggYzI4MDYy OTdhYTQuLmFiYTUyNTllMDI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTE3LDYgKzE3 LDcgQEAKIAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNs dWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKQEAgLTMzLDExICszNCwxMyBAQAogI2luY2x1ZGUgInBh cnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90YXJnZXQuaCIK ICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5o IgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0ZS5oIgog I2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgi CiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCisjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUu aCIKICNpbmNsdWRlICJ1dGlscy94bWwuaCIKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KQEAgLTEw Niw2ICsxMDksOSBAQCBzdGF0aWMgRXhwciAqbWFrZV9kaXN0aW5jdF9vcChQYXJzZVN0YXRlICpw c3RhdGUsIExpc3QgKm9wbmFtZSwKIAkJCQkJCQkgIE5vZGUgKmx0cmVlLCBOb2RlICpydHJlZSwg aW50IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3Qo UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAq YXJnKTsKK3N0YXRpYyBOb2RlICptYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAq cHN0YXRlLAorCQkJCQkJCQkJICBPaWQgdmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBP aWQgY29sbGlkLAorCQkJCQkJCQkJICBjaGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKTsKIAog CiAvKgpAQCAtNDk5LDYgKzUwNSw4OSBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRl ICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgor ICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBleHByZXNzaW9uIGtpbmQgaXMgdmFsaWQgZm9y IHNlc3Npb24gdmFyaWFibGVzLgorICogU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHVzZWQgZXZl cnl3aGVyZSB3aGVyZSBleHRlcm5hbCBwYXJhbWV0ZXJzIGNhbiBiZQorICogdXNlZC4gIFNlc3Np b24gdmFyaWFibGVzIGFyZSBub3QgYWxsb3dlZCBpbiBEREwgY29tbWFuZHMgb3IgaW4gY29uc3Ry YWludHMuCisgKgorICogQW4gaWRlbnRpZmllciBjYW4gYmUgcGFyc2VkIGFzIGEgc2Vzc2lvbiB2 YXJpYWJsZSBvbmx5IGZvciBleHByZXNzaW9uIGtpbmRzCisgKiB3aGVyZSBzZXNzaW9uIHZhcmlh YmxlcyBhcmUgYWxsb3dlZC4gIFRoaXMgaXMgdGhlIHByaW1hcnkgdXNhZ2Ugb2YgdGhpcworICog ZnVuY3Rpb24uCisgKgorICogVGhlIHNlY29uZCB1c2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRv IGRlY2lkZSB3aGV0aGVyIGEgImNvbHVtbiBkb2VzIG5vdAorICogZXhpc3QiIG9yIGEgImNvbHVt biBvciB2YXJpYWJsZSBkb2VzIG5vdCBleGlzdCIgZXJyb3IgbWVzc2FnZSBzaG91bGQgYmUKKyAq IHByaW50ZWQuICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFy aWFibGVzIGNhbm5vdCBiZQorICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJy b3IgbWVzc2FnZS4KKyAqLworc3RhdGljIGJvb2wKK2V4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92 YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKK3sKKwlib29sCQlyZXN1bHQgPSBm YWxzZTsKKworCXN3aXRjaCAocF9leHByX2tpbmQpCisJeworCQljYXNlIEVYUFJfS0lORF9OT05F OgorCQkJQXNzZXJ0KGZhbHNlKTsJCS8qIGNhbid0IGhhcHBlbiAqLworCQkJcmV0dXJuIGZhbHNl OworCisJCS8qIHNlc3Npb24gdmFyaWFibGVzIGFsbG93ZWQgKi8KKwkJY2FzZSBFWFBSX0tJTkRf T1RIRVI6CisJCWNhc2UgRVhQUl9LSU5EX0pPSU5fT046CisJCWNhc2UgRVhQUl9LSU5EX0ZST01f U1VCU0VMRUNUOgorCQljYXNlIEVYUFJfS0lORF9GUk9NX0ZVTkNUSU9OOgorCQljYXNlIEVYUFJf S0lORF9XSEVSRToKKwkJY2FzZSBFWFBSX0tJTkRfSEFWSU5HOgorCQljYXNlIEVYUFJfS0lORF9G SUxURVI6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19QQVJUSVRJT046CisJCWNhc2UgRVhQUl9L SU5EX1dJTkRPV19PUkRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX1JBTkdFOgor CQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfUk9XUzoKKwkJY2FzZSBFWFBSX0tJTkRfV0lO RE9XX0ZSQU1FX0dST1VQUzoKKwkJY2FzZSBFWFBSX0tJTkRfU0VMRUNUX1RBUkdFVDoKKwkJY2Fz ZSBFWFBSX0tJTkRfSU5TRVJUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1NPVVJD RToKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTUVS R0VfV0hFTjoKKwkJY2FzZSBFWFBSX0tJTkRfTUVSR0VfUkVUVVJOSU5HOgorCQljYXNlIEVYUFJf S0lORF9HUk9VUF9CWToKKwkJY2FzZSBFWFBSX0tJTkRfT1JERVJfQlk6CisJCWNhc2UgRVhQUl9L SU5EX0RJU1RJTkNUX09OOgorCQljYXNlIEVYUFJfS0lORF9MSU1JVDoKKwkJY2FzZSBFWFBSX0tJ TkRfT0ZGU0VUOgorCQljYXNlIEVYUFJfS0lORF9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5E X1ZBTFVFUzoKKwkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRToKKwkJY2FzZSBFWFBSX0tJ TkRfQUxURVJfQ09MX1RSQU5TRk9STToKKwkJY2FzZSBFWFBSX0tJTkRfRVhFQ1VURV9QQVJBTUVU RVI6CisJCWNhc2UgRVhQUl9LSU5EX1BPTElDWToKKwkJY2FzZSBFWFBSX0tJTkRfQ0FMTF9BUkdV TUVOVDoKKwkJY2FzZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKKwkJY2FzZSBFWFBSX0tJTkRfTEVU X1RBUkdFVDoKKwkJCXJlc3VsdCA9IHRydWU7CisJCQlicmVhazsKKworCQkvKiBzZXNzaW9uIHZh cmlhYmxlcyBub3QgYWxsb3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5U OgorCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CisJCWNhc2UgRVhQUl9LSU5EX0NPTFVN Tl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVY UFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9JTkRFWF9QUkVESUNB VEU6CisJCWNhc2UgRVhQUl9LSU5EX1NUQVRTX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5E X1RSSUdHRVJfV0hFTjoKKwkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9OX0JPVU5EOgorCQljYXNl IEVYUFJfS0lORF9QQVJUSVRJT05fRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfR0VORVJB VEVEX0NPTFVNTjoKKwkJY2FzZSBFWFBSX0tJTkRfSk9JTl9VU0lORzoKKwkJY2FzZSBFWFBSX0tJ TkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCXJlc3Vs dCA9IGZhbHNlOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAq IFRyYW5zZm9ybSBhIENvbHVtblJlZi4KICAqCkBAIC01NzUsNiArNjY0LDggQEAgdHJhbnNmb3Jt Q29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVY UFJfS0lORF9DT1BZX1dIRVJFOgogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgog CQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFS R0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJLyogb2theSAqLwogCQkJYnJl YWs7CiAKQEAgLTg0Nyw4ICs5MzgsNjEgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCX0KIAogCS8qCi0JICogVGhyb3cgZXJyb3IgaWYg bm8gdHJhbnNsYXRpb24gZm91bmQuCisJICogVGhlcmUgYXJlIGNvbnRleHRzIHdoZXJlIHNlc3Np b24gdmFyaWFibGVzIGFyZSBub3QgYWxsb3dlZC4gIFdlIGRvbid0CisJICogbmVlZCB0byBpZGVu dGlmeSBzZXNzaW9uIHZhcmlhYmxlcyBpbiBzdWNoIGEgY29udGV4dCwgYnV0IGlkZW50aWZ5aW5n CisJICogdGhlbSBhbGxvd3MgdXMgdG8gcmFpc2UgbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlcyBs aWtlICJ5b3UgY2Fubm90IHVzZQorCSAqIHNlc3Npb24gdmFyaWFibGVzIGhlcmUiLgogCSAqLwor CWlmIChleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tp bmQpKQorCXsKKwkJT2lkCQkJdmFyaWQgPSBJbnZhbGlkT2lkOworCQljaGFyCSAgICphdHRybmFt ZSA9IE5VTEw7CisJCWJvb2wJCW5vdF91bmlxdWU7CisKKwkJLyogLS0tLS0KKwkJICogU2Vzc2lv biB2YXJpYWJsZXMgYXJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUgdmFyaWFibGVzIG9y CisJCSAqIHJvdXRpbmUgYXJndW1lbnRzLiAgV2UgY2VydGFpbmx5IGRvbid0IHdhbnQgdG8gdXNl IGEgc2Vzc2lvbiB2YXJpYWJsZQorCQkgKiB3aGVuIGl0IGlzIGV4YWN0bHkgc2hhZG93ZWQsIGJ1 dCBhIFJURSBsaWtlIHRoaXMgaXMgY29uY2VpdmFibGU6CisJCSAqCisJCSAqIENSRUFURSBUWVBF IHQgQVMgKGMgaW50KTsKKwkJICogQ1JFQVRFIFZBUklBQkxFIGZvbyBBUyB0OworCQkgKiBDUkVB VEUgVEFCTEUgZm9vKGEgaW50LCBiIGludCk7CisJCSAqCisJCSAqIFNFTEVDVCBmb28uYSwgZm9v LmIsIGZvby5jIEZST00gZm9vOworCQkgKgorCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29u ZnVzaW5nLCBzbyB3ZSBkaXNhbGxvdyBpdC4gIFdlIGRvbid0IHRyeSB0bworCQkgKiBpZGVudGlm eSBhIHZhcmlhYmxlIGlmIHdlIGtub3cgdGhhdCBpdCB3b3VsZCBiZSBzaGFkb3dlZC4KKwkJICog LS0tLS0KKwkJICovCisJCWlmICghbm9kZSAmJiAhKHJlbG5hbWUgJiYgY3JlcnIgPT0gQ1JFUlJf Tk9fQ09MVU1OKSkKKwkJeworCQkJLyogdGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRoZSBz ZXNzaW9uIHZhcmlhYmxlICovCisJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+Zmll bGRzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CisKKwkJCWlmIChPaWRJc1ZhbGlk KHZhcmlkKSkKKwkJCXsKKwkJCQlPaWQJCQl0eXBpZDsKKwkJCQlpbnQzMgkJdHlwbW9kOworCQkJ CU9pZAkJCWNvbGxpZDsKKworCQkJCWlmIChub3RfdW5pcXVlKQorCQkJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJCQkJ IGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgXCIlc1wiIGlzIGFtYmlndW91cyIs CisJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsKKworCQkJCWdldF9zZXNz aW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAor CQkJCQkJCQkJCQkJCQkmY29sbGlkKTsKKworCQkJCW5vZGUgPSBtYWtlUGFyYW1TZXNzaW9uVmFy aWFibGUocHN0YXRlLAorCQkJCQkJCQkJCQkJdmFyaWQsIHR5cGlkLCB0eXBtb2QsIGNvbGxpZCwK KwkJCQkJCQkJCQkJCWF0dHJuYW1lLCBjcmVmLT5sb2NhdGlvbik7CisJCQl9CisJCX0KKwl9CisK KwkvKiB0aHJvdyBhbiBlcnJvciBpZiBubyB0cmFuc2xhdGlvbiB3YXMgZm91bmQgKi8KIAlpZiAo bm9kZSA9PSBOVUxMKQogCXsKIAkJc3dpdGNoIChjcmVycikKQEAgLTg4MCw2ICsxMDI0LDcyIEBA IHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikK IAlyZXR1cm4gbm9kZTsKIH0KIAorLyoKKyAqIEdlbmVyYXRlIHBhcmFtIHZhcmlhYmxlIGZvciBy ZWZlcmVuY2UgdG8gc2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgTm9kZSAqCittYWtlUGFy YW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJIE9pZCB2YXJpZCwg T2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCisJCQkJCQkgY2hhciAqYXR0cm5h bWUsIGludCBsb2NhdGlvbikKK3sKKwlQYXJhbQkgICAqcGFyYW07CisKKwlwYXJhbSA9IG1ha2VO b2RlKFBhcmFtKTsKKworCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9WQVJJQUJMRTsKKwlwYXJh bS0+cGFyYW12YXJpZCA9IHZhcmlkOworCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBpZDsKKwlwYXJh bS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CisJcGFyYW0tPnBhcmFtY29sbGlkID0gY29sbGlkOwor CisJcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCisJaWYgKGF0dHJuYW1l ICE9IE5VTEwpCisJeworCQlUdXBsZURlc2MJdHVwZGVzYzsKKwkJaW50CQkJaTsKKworCQl0dXBk ZXNjID0gbG9va3VwX3Jvd3R5cGVfdHVwZGVzY19ub2Vycm9yKHR5cGlkLCB0eXBtb2QsIHRydWUp OworCQlpZiAoIXR1cGRlc2MpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIlcy4lc1wi IGlzIG9mIHR5cGUgXCIlc1wiLCB3aGljaCBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCisJCQkJ CQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJp ZCkpLAorCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZv cm1hdF90eXBlX2JlKHR5cGlkKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBs b2NhdGlvbikpKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgdHVwZGVzYy0+bmF0dHM7IGkrKykKKwkJ eworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ID0gVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKTsK KworCQkJaWYgKHN0cmNtcChhdHRybmFtZSwgTmFtZVN0cihhdHQtPmF0dG5hbWUpKSA9PSAwICYm CisJCQkJIWF0dC0+YXR0aXNkcm9wcGVkKQorCQkJeworCQkJCS8qIHN1Y2Nlc3MsIHNvIGdlbmVy YXRlIGEgRmllbGRTZWxlY3QgZXhwcmVzc2lvbiAqLworCQkJCUZpZWxkU2VsZWN0ICpmc2VsZWN0 ID0gbWFrZU5vZGUoRmllbGRTZWxlY3QpOworCisJCQkJZnNlbGVjdC0+YXJnID0gKEV4cHIgKikg cGFyYW07CisJCQkJZnNlbGVjdC0+ZmllbGRudW0gPSBpICsgMTsKKwkJCQlmc2VsZWN0LT5yZXN1 bHR0eXBlID0gYXR0LT5hdHR0eXBpZDsKKwkJCQlmc2VsZWN0LT5yZXN1bHR0eXBtb2QgPSBhdHQt PmF0dHR5cG1vZDsKKwkJCQkvKiBzYXZlIGF0dHJpYnV0ZSdzIGNvbGxhdGlvbiBmb3IgcGFyc2Vf Y29sbGF0ZS5jICovCisJCQkJZnNlbGVjdC0+cmVzdWx0Y29sbGlkID0gYXR0LT5hdHRjb2xsYXRp b247CisKKwkJCQlSZWxlYXNlVHVwbGVEZXNjKHR1cGRlc2MpOworCQkJCXJldHVybiAoTm9kZSAq KSBmc2VsZWN0OworCQkJfQorCQl9CisKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAorCQkJCSBlcnJtc2coImNvdWxkIG5vdCBpZGVudGlm eSBjb2x1bW4gXCIlc1wiIGluIHZhcmlhYmxlIiwgYXR0cm5hbWUpLAorCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwl9CisKKwlyZXR1cm4gKE5vZGUgKikgcGFy YW07Cit9CisKIHN0YXRpYyBOb2RlICoKIHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNlU3RhdGUgKnBz dGF0ZSwgUGFyYW1SZWYgKnByZWYpCiB7CkBAIC0xODE1LDYgKzIwMjUsNyBAQCB0cmFuc2Zvcm1T dWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBS X0tJTkRfVkFMVUVTOgogCQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgogCQljYXNlIEVY UFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJLyog b2theSAqLwogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CkBA IC0xODU4LDYgKzIwNjksOSBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwg U3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJ CWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVz c2lvbiIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQll cnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGFzIHRhcmdldCBvZiBhc3NpZ24gc3RhdGVtZW50 Iik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8g ZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpAQCAtMzE5Nyw2ICszNDExLDEwIEBAIFBh cnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4gIkdFTkVS QVRFRCBBUyI7CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQlyZXR1cm4gIkNZQ0xF IjsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCXJldHVybiAiQVNTSUdOIjsK KwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCXJldHVybiAiTEVUIjsKIAogCQkJLyoK IAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0 aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggOWIyMzM0NGEzYjEuLjlhYTRmNjA3 NjhiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2NTYsNiArMjY1Niw4IEBAIGNoZWNr X3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBp bnQgbG9jYXRpb24pCiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90 IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMiKTsKIAkJCWJyZWFrOwog CQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFS R0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJZXJya2luZCA9IHRydWU7CiAJ CQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgYi9zcmMvYmFj a2VuZC90Y29wL2Rlc3QuYwppbmRleCA5NmY4MGIzMDQ2My4uZGFjNzhiYTVjY2UgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5j CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvdHF1ZXVlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2 ZXIuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUg ImxpYnBxL2xpYnBxLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKIApAQCAtMTU1LDYg KzE1Niw5IEBAIENyZWF0ZURlc3RSZWNlaXZlcihDb21tYW5kRGVzdCBkZXN0KQogCiAJCWNhc2Ug RGVzdEV4cGxhaW5TZXJpYWxpemU6CiAJCQlyZXR1cm4gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURl c3RSZWNlaXZlcihOVUxMKTsKKworCQljYXNlIERlc3RWYXJpYWJsZToKKwkJCXJldHVybiBDcmVh dGVWYXJpYWJsZURlc3RSZWNlaXZlcihJbnZhbGlkT2lkKTsKIAl9CiAKIAkvKiBzaG91bGQgbmV2 ZXIgZ2V0IGhlcmUgKi8KQEAgLTE5MSw2ICsxOTUsNyBAQCBFbmRDb21tYW5kKGNvbnN0IFF1ZXJ5 Q29tcGxldGlvbiAqcWMsIENvbW1hbmREZXN0IGRlc3QsIGJvb2wgZm9yY2VfdW5kZWNvcmF0ZWRf bwogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNh c2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7 CiAJfQogfQpAQCAtMjM3LDYgKzI0Miw3IEBAIE51bGxDb21tYW5kKENvbW1hbmREZXN0IGRlc3Qp CiAJCWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2Fz ZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsK IAl9CiB9CkBAIC0yODEsNiArMjg3LDcgQEAgUmVhZHlGb3JRdWVyeShDb21tYW5kRGVzdCBkZXN0 KQogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNh c2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7 CiAJfQogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYyBiL3NyYy9iYWNr ZW5kL3Rjb3AvcHF1ZXJ5LmMKaW5kZXggMGM0NWZjZjMxOGYuLjg1YjgwOWNiMDcxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcHF1 ZXJ5LmMKQEAgLTg2LDYgKzg2LDkgQEAgQ3JlYXRlUXVlcnlEZXNjKFBsYW5uZWRTdG10ICpwbGFu bmVkc3RtdCwKIAlxZC0+cXVlcnlFbnYgPSBxdWVyeUVudjsKIAlxZC0+aW5zdHJ1bWVudF9vcHRp b25zID0gaW5zdHJ1bWVudF9vcHRpb25zOwkvKiBpbnN0cnVtZW50YXRpb24gd2FudGVkPyAqLwog CisJcWQtPm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJcWQtPnNlc3Npb25fdmFyaWFibGVz ID0gTlVMTDsKKwogCS8qIG51bGwgdGhlc2UgZmllbGRzIHVudGlsIHNldCBieSBFeGVjdXRvclN0 YXJ0ICovCiAJcWQtPnR1cERlc2MgPSBOVUxMOwogCXFkLT5lc3RhdGUgPSBOVUxMOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxp dHkuYwppbmRleCAyMTdjNjAyODQ5Ny4uNjlkMmY3ZTFjZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00 OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKKyNp bmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAgLTIzNSw2ICsyMzYsNyBAQCBDbGFzc2lm eVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAKIAkJY2FzZSBUX0Nh bGxTdG10OgogCQljYXNlIFRfRG9TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXsKIAkJCQkv KgogCQkJCSAqIENvbW1hbmRzIGluc2lkZSB0aGUgRE8gYmxvY2sgb3IgdGhlIGNhbGxlZCBwcm9j ZWR1cmUgbWlnaHQKQEAgLTEwNjcsNiArMTA2OSwxMSBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0 eShQbGFubmVkU3RtdCAqcHN0bXQsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX0xldFN0 bXQ6CisJCQlFeGVjdXRlTGV0U3RtdChwc3RhdGUsIChMZXRTdG10ICopIHBhcnNldHJlZSwgcGFy YW1zLAorCQkJCQkJICAgcXVlcnlFbnYsIHFjKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJ CQkvKiBBbGwgb3RoZXIgc3RhdGVtZW50IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dlciBzdXBwb3J0 ICovCiAJCQlQcm9jZXNzVXRpbGl0eVNsb3cocHN0YXRlLCBwc3RtdCwgcXVlcnlTdHJpbmcsCkBA IC0yMjA2LDYgKzIyMTMsMTAgQEAgVXRpbGl0eUNvbnRhaW5zUXVlcnkoTm9kZSAqcGFyc2V0cmVl KQogCQkJCXJldHVybiBVdGlsaXR5Q29udGFpbnNRdWVyeShxcnktPnV0aWxpdHlTdG10KTsKIAkJ CXJldHVybiBxcnk7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlxcnkgPSBjYXN0Tm9kZShRdWVy eSwgKChMZXRTdG10ICopIHBhcnNldHJlZSktPnF1ZXJ5KTsKKwkJCXJldHVybiBxcnk7CisKIAkJ ZGVmYXVsdDoKIAkJCXJldHVybiBOVUxMOwogCX0KQEAgLTI0MDQsNiArMjQxNSwxMCBAQCBDcmVh dGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9IENNRFRBR19TRUxFQ1Q7CiAJ CQlicmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXRhZyA9IENNRFRBR19MRVQ7CisJCQli cmVhazsKKwogCQkJLyogdXRpbGl0eSBzdGF0ZW1lbnRzIC0tLSBzYW1lIHdoZXRoZXIgcmF3IG9y IGNvb2tlZCAqLwogCQljYXNlIFRfVHJhbnNhY3Rpb25TdG10OgogCQkJewpAQCAtMzI4OSw2ICsz MzA0LDcgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWJyZWFrOwog CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJbGV2ID0gTE9H U1RNVF9BTEw7CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IGEz OTA2OGQxYmYxLi5lN2Y3NDk0N2NkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAt MzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9k ZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29t bW9uL2tleXdvcmRzLmgiCkBAIC01MjgsNiArNTI5LDcgQEAgc3RhdGljIGNoYXIgKmdlbmVyYXRl X2Z1bmN0aW9uX25hbWUoT2lkIGZ1bmNpZCwgaW50IG5hcmdzLAogc3RhdGljIGNoYXIgKmdlbmVy YXRlX29wZXJhdG9yX25hbWUoT2lkIG9wZXJpZCwgT2lkIGFyZzEsIE9pZCBhcmcyKTsKIHN0YXRp YyB2b2lkIGFkZF9jYXN0X3RvKFN0cmluZ0luZm8gYnVmLCBPaWQgdHlwaWQpOwogc3RhdGljIGNo YXIgKmdlbmVyYXRlX3F1YWxpZmllZF90eXBlX25hbWUoT2lkIHR5cGlkKTsKK3N0YXRpYyBjaGFy ICpnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKTsKIHN0YXRpYyB0ZXh0 ICpzdHJpbmdfdG9fdGV4dChjaGFyICpzdHIpOwogc3RhdGljIGNoYXIgKmZsYXR0ZW5fcmVsb3B0 aW9ucyhPaWQgcmVsaWQpOwogc3RhdGljIHZvaWQgZ2V0X3JlbG9wdGlvbnMoU3RyaW5nSW5mbyBi dWYsIERhdHVtIHJlbG9wdGlvbnMpOwpAQCAtODYxNyw2ICs4NjE5LDE0IEBAIGdldF9wYXJhbWV0 ZXIoUGFyYW0gKnBhcmFtLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJCXJldHVybjsKIAl9 CiAKKwkvKiB0cmFuc2xhdGUgcGFyYW12YXJpZCB0byBzZXNzaW9uIHZhcmlhYmxlIG5hbWUgKi8K KwlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwl7CisJCWFwcGVuZFN0 cmluZ0luZm8oY29udGV4dC0+YnVmLCAiJXMiLAorCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFy aWFibGVfbmFtZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQlyZXR1cm47CisJfQorCiAJLyoKIAkg KiBBbHRlcm5hdGl2ZWx5LCBtYXliZSBpdCdzIGEgc3VicGxhbiBvdXRwdXQsIHdoaWNoIHdlIHBy aW50IGFzIGEKIAkgKiByZWZlcmVuY2UgdG8gdGhlIHN1YnBsYW4uICAoV2UgY291bGQgZHJpbGwg ZG93biBpbnRvIHRoZSBzdWJwbGFuIGFuZApAQCAtMTMzOTksNiArMTM0MDksNDIgQEAgZ2VuZXJh dGVfY29sbGF0aW9uX25hbWUoT2lkIGNvbGxpZCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgor ICogZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lCisgKgkJQ29tcHV0ZSB0aGUgbmFtZSB0 byBkaXNwbGF5IGZvciBhIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IE9JRAorICoKKyAq IFRoZSByZXN1bHQgaW5jbHVkZXMgYWxsIG5lY2Vzc2FyeSBxdW90aW5nIGFuZCBzY2hlbWEtcHJl Zml4aW5nLgorICovCitzdGF0aWMgY2hhciAqCitnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25h bWUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJm b3JtOworCWNoYXIJICAgKnZhcm5hbWU7CisJY2hhcgkgICAqbnNwbmFtZTsKKwljaGFyCSAgICpy ZXN1bHQ7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0 RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2 YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9 IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwlpZiAoIVZhcmlhYmxlSXNWaXNpYmxlKHZh cmlkKSkKKwkJbnNwbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZh cm5hbWVzcGFjZSk7CisJZWxzZQorCQluc3BuYW1lID0gTlVMTDsKKworCXJlc3VsdCA9IHF1b3Rl X3F1YWxpZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsIHZhcm5hbWUpOworCisJUmVsZWFzZVN5c0Nh Y2hlKHR1cCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogR2l2ZW4gYSBDIHN0cmlu ZywgcHJvZHVjZSBhIFRFWFQgZGF0dW0uCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvcGxhbmNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUu YwppbmRleCA1YWYxYTE2OGVjMi4uN2UxZTllMjhmMTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Bs YW5jYWNoZS5jCkBAIC01OCw2ICs1OCw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvdHJhbnNhbS5o IgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAibWlz Y2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC0xNjIsNiArMTYzLDcg QEAgSW5pdFBsYW5DYWNoZSh2b2lkKQogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEFN T1BPUElELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKIAlDYWNoZVJlZ2lzdGVy U3lzY2FjaGVDYWxsYmFjayhGT1JFSUdOU0VSVkVST0lELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywg KERhdHVtKSAwKTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhGT1JFSUdOREFUQVdS QVBQRVJPSUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOworCUNhY2hlUmVnaXN0 ZXJTeXNjYWNoZUNhbGxiYWNrKFZBUklBQkxFT0lELCBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjaywg KERhdHVtKSAwKTsKIH0KIAogLyoKQEAgLTE5MDMsMTggKzE5MDUsMzMgQEAgU2NhblF1ZXJ5Rm9y TG9ja3MoUXVlcnkgKnBhcnNldHJlZSwgYm9vbCBhY3F1aXJlKQogCiAJLyoKIAkgKiBSZWN1cnNl IGludG8gc3VibGluayBzdWJxdWVyaWVzLCB0b28uICBCdXQgd2UgYWxyZWFkeSBkaWQgdGhlIG9u ZXMgaW4KLQkgKiB0aGUgcnRhYmxlIGFuZCBjdGVMaXN0LgorCSAqIHRoZSBydGFibGUgYW5kIGN0 ZUxpc3QuICBXZSBuZWVkIHRvIGZvcmNlIGEgcmVjdXJzaXZlIGNhbGwgZm9yIHNlc3Npb24KKwkg KiB2YXJpYWJsZXMgdG9vLCB0byBmaW5kIGFuZCBsb2NrIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBx dWVyeSAoc2VlCisJICogU2NhblF1ZXJ5V2Fsa2VyKS4KIAkgKi8KLQlpZiAocGFyc2V0cmVlLT5o YXNTdWJMaW5rcykKKwlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcyB8fAorCQlwYXJzZXRyZWUt Pmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUs IFNjYW5RdWVyeVdhbGtlciwKIAkJCQkJCSAgKHZvaWQgKikgJmFjcXVpcmUsCiAJCQkJCQkgIFFU V19JR05PUkVfUkNfU1VCUVVFUklFUyk7CiAJfQorCisJLyogcHJvY2VzcyBzZXNzaW9uIHZhcmlh YmxlcyAqLworCWlmIChPaWRJc1ZhbGlkKHBhcnNldHJlZS0+cmVzdWx0VmFyaWFibGUpKQorCXsK KwkJaWYgKGFjcXVpcmUpCisJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklk LCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9j ayk7CisJCWVsc2UKKwkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwg cGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSwKKwkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7 CisJfQogfQogCiAvKgotICogV2Fsa2VyIHRvIGZpbmQgc3VibGluayBzdWJxdWVyaWVzIGZvciBT Y2FuUXVlcnlGb3JMb2NrcworICogV2Fsa2VyIHRvIGZpbmQgc3VibGluayBzdWJxdWVyaWVzIG9y IHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqIGZvciBTY2FuUXVlcnlGb3JMb2Nrcwog ICovCiBzdGF0aWMgYm9vbAogU2NhblF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVp cmUpCkBAIC0xOTI5LDYgKzE5NDYsMjAgQEAgU2NhblF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJv b2wgKmFjcXVpcmUpCiAJCVNjYW5RdWVyeUZvckxvY2tzKGNhc3ROb2RlKFF1ZXJ5LCBzdWItPnN1 YnNlbGVjdCksICphY3F1aXJlKTsKIAkJLyogRmFsbCB0aHJvdWdoIHRvIHByb2Nlc3MgbGVmdGhh bmQgYXJncyBvZiBTdWJMaW5rICovCiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJ eworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQg PT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlmIChhY3F1aXJlKQorCQkJCUxvY2tEYXRhYmFz ZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCSAgIDAs IEFjY2Vzc1NoYXJlTG9jayk7CisJCQllbHNlCisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFy aWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJl TG9jayk7CisJCX0KKwl9CiAKIAkvKgogCSAqIERvIE5PVCByZWN1cnNlIGludG8gUXVlcnkgbm9k ZXMsIGJlY2F1c2UgU2NhblF1ZXJ5Rm9yTG9ja3MgYWxyZWFkeQpAQCAtMjA2MCw3ICsyMDkxLDkg QEAgUGxhbkNhY2hlUmVsQ2FsbGJhY2soRGF0dW0gYXJnLCBPaWQgcmVsaWQpCiAKIC8qCiAgKiBQ bGFuQ2FjaGVPYmplY3RDYWxsYmFjawotICoJCVN5c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0 aW9uIGZvciBQUk9DT0lEIGFuZCBUWVBFT0lEIGNhY2hlcworICoJCVN5c2NhY2hlIGludmFsIGNh bGxiYWNrIGZ1bmN0aW9uIGZvciBUWVBFT0lELCBQUk9DT0lELCBOQU1FU1BBQ0VPSUQsCisgKgkJ T1BFUk9JRCwgQU1PUE9QSUQsIEZPUkVJR05TRVJWRVJPSUQsIEZPUkVJR05EQVRBV1JBUFBFUk9J RCBhbmQKKyAqCQlWQVJJQUJMRU9JRCBjYWNoZXMuCiAgKgogICogSW52YWxpZGF0ZSBhbGwgcGxh bnMgbWVudGlvbmluZyB0aGUgb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCBoYXNoIHZhbHVlLAog ICogb3IgYWxsIHBsYW5zIG1lbnRpb25pbmcgYW55IG1lbWJlciBvZiB0aGlzIGNhY2hlIGlmIGhh c2h2YWx1ZSA9PSAwLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMg Yi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwppbmRleCBlNDhhODZiZTU0Yi4uZWFhZTBj NWE5MzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0yMDI2LDkgKzIwMjYsMTMgQEAgZ2V0X2Nh bGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4cHIsIGludCBhcmdudW0pCiAJICovCiAJaWYgKElz QShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRydWU7Ci0JaWYgKElzQShhcmcsIFBhcmFtKSAmJgot CQkoKFBhcmFtICopIGFyZyktPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4pCi0JCXJldHVybiB0 cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAq KSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4gfHwgcC0+cGFyYW1r aW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmV0dXJuIHRydWU7CisJfQogCiAJcmV0dXJuIGZh bHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDI5MzY0OGUzMGM3Li5lYzU3MjgxNWM5 NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTIxNCw4ICsxMjE0LDggQEAgc3RhdGljIGNv bnN0IGNoYXIgKmNvbnN0IHNxbF9jb21tYW5kc1tdID0gewogCSJBQk9SVCIsICJBTFRFUiIsICJB TkFMWVpFIiwgIkJFR0lOIiwgIkNBTEwiLCAiQ0hFQ0tQT0lOVCIsICJDTE9TRSIsICJDTFVTVEVS IiwKIAkiQ09NTUVOVCIsICJDT01NSVQiLCAiQ09QWSIsICJDUkVBVEUiLCAiREVBTExPQ0FURSIs ICJERUNMQVJFIiwKIAkiREVMRVRFIEZST00iLCAiRElTQ0FSRCIsICJETyIsICJEUk9QIiwgIkVO RCIsICJFWEVDVVRFIiwgIkVYUExBSU4iLAotCSJGRVRDSCIsICJHUkFOVCIsICJJTVBPUlQgRk9S RUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTElTVEVOIiwgIkxPQUQiLCAiTE9DSyIsCi0J Ik1FUkdFIElOVE8iLCAiTU9WRSIsICJOT1RJRlkiLCAiUFJFUEFSRSIsCisJIkZFVENIIiwgIkdS QU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNFUlQgSU5UTyIsICJMRVQiLAorCSJM SVNURU4iLCAiTE9BRCIsICJMT0NLIiwgIk1FUkdFIElOVE8iLCAiTU9WRSIsICJOT1RJRlkiLCAi UFJFUEFSRSIsCiAJIlJFQVNTSUdOIiwgIlJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVciLCAiUkVJ TkRFWCIsICJSRUxFQVNFIiwKIAkiUkVTRVQiLCAiUkVWT0tFIiwgIlJPTExCQUNLIiwKIAkiU0FW RVBPSU5UIiwgIlNFQ1VSSVRZIExBQkVMIiwgIlNFTEVDVCIsICJTRVQiLCAiU0hPVyIsICJTVEFS VCIsCkBAIC00NjI5LDYgKzQ2MjksMTQgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRl cm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBTFVFUyIpICYmICFUYWlsTWF0Y2hlcygi REVGQVVMVCIsICJWQUxVRVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiKCIpOwogCisvKiBMRVQgKi8K KwkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdnZXN0IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8K KwllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlko UXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwkvKiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxl PiB3aXRoICI9IiAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFueSkpCisJ CUNPTVBMRVRFX1dJVEgoIj0iKTsKKwogLyogTE9DSyAqLwogCS8qIENvbXBsZXRlIExPQ0sgW1RB QkxFXSBbT05MWV0gd2l0aCBhIGxpc3Qgb2YgdGFibGVzICovCiAJZWxzZSBpZiAoTWF0Y2hlcygi TE9DSyIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKaW5kZXggMThlYTZhYzgzYTUuLmRlZjY5MWRh ZmIzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTE3MSw3ICsxNzEsOSBAQCBleHRlcm4g U2VhcmNoUGF0aE1hdGNoZXIgKkdldFNlYXJjaFBhdGhNYXRjaGVyKE1lbW9yeUNvbnRleHQgY29u dGV4dCk7CiBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkNvcHlTZWFyY2hQYXRoTWF0Y2hlcihT ZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4gYm9vbCBTZWFyY2hQYXRoTWF0Y2hlc0N1 cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiAKK2V4dGVybiBMaXN0 ICpOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKTsKIGV4dGVybiBPaWQJTG9va3VwVmFyaWFibGUo Y29uc3QgY2hhciAqbnNwbmFtZSwgY29uc3QgY2hhciAqdmFybmFtZSwgYm9vbCBtaXNzaW5nX29r KTsKK2V4dGVybiBPaWQJSWRlbnRpZnlWYXJpYWJsZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJu YW1lLCBib29sICpub3RfdW5pcXVlLCBib29sIG5vZXJyb3IpOwogCiBleHRlcm4gT2lkCWdldF9j b2xsYXRpb25fb2lkKExpc3QgKmNvbGxuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9p ZAlnZXRfY29udmVyc2lvbl9vaWQoTGlzdCAqY29ubmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCAzODEwZTA0MGYyOC4uZGI1OTNjZDViZWQgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTM1LDYgKzM1LDE0IEBAIENBVEFMT0cocGdf dmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJLyogT0lEIG9mIGVudHJ5IGluIHBn X3R5cGUgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwogCU9pZAkJCXZhcnR5cGUgQktJX0xPT0tVUChw Z190eXBlKTsKIAorCS8qCisJICogVXNlZCBmb3IgaWRlbnRpdHkgY2hlY2sgW29pZCwgY3JlYXRl X2xzbl0uCisJICoKKwkgKiBUaGlzIGNvbHVtbiBvZiB0aGUgOC1ieXRlIFhsb2dSZWNQdHIgdHlw ZSBzaG91bGQgYmUgYXQgYW4gYWRkcmVzcyB0aGF0CisJICogaXMgZGl2aXNpYmxlIGJ5IDgsIGJ1 dCBiZWZvcmUgYW55IGNvbHVtbiBvZiB0eXBlIE5hbWVEYXRhLgorCSAqLworCVhMb2dSZWNQdHIJ dmFyY3JlYXRlX2xzbjsKKwogCS8qIHZhcmlhYmxlIG5hbWUgKi8KIAlOYW1lRGF0YQl2YXJuYW1l OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgg Yi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIzZjAzYzY1ODI3Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0wLDAgKzEsMzIgQEAK Ky8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHNlc3Npb252YXJpYWJsZS5oCisgKgkgIHByb3Rv dHlwZXMgZm9yIHNlc3Npb252YXJpYWJsZS5jLgorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBv ZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBTRVNTSU9OVkFSSUFC TEVfSAorI2RlZmluZSBTRVNTSU9OVkFSSUFCTEVfSAorCisjaW5jbHVkZSAibm9kZXMvcGFyYW1z LmgiCisjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJz ZV9ub2RlLmgiCisjaW5jbHVkZSAidGNvcC9jbWR0YWcuaCIKKyNpbmNsdWRlICJ1dGlscy9xdWVy eWVudmlyb25tZW50LmgiCisKK2V4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFy aWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CitleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFy aWFibGVXaXRoU2VjdXJpdHlDaGVjayhPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVs bCk7CitleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNO dWxsLCBPaWQgKnR5cGlkKTsKK2V4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlw ZUNoZWNrKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0ZWRfdHlwaWQpOworCitl eHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0 bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVl cnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVz Yy5oCmluZGV4IDBhNzI3NGUyNmM4Li5kMWIyZjU5ZTBjZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVz Yy5oCkBAIC00OCw2ICs0OCwxMCBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeURlc2MKIAlFU3RhdGUJ ICAgKmVzdGF0ZTsJCQkvKiBleGVjdXRvcidzIHF1ZXJ5LXdpZGUgc3RhdGUgKi8KIAlQbGFuU3Rh dGUgICpwbGFuc3RhdGU7CQkvKiB0cmVlIG9mIHBlci1wbGFuLW5vZGUgc3RhdGUgKi8KIAorCS8q IHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlcyBidWZmZXIgKi8KKwlpbnQJCQludW1fc2Vz c2lvbl92YXJpYWJsZXM7CisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnNlc3Npb25fdmFyaWFibGVz OworCiAJLyogVGhpcyBmaWVsZCBpcyBzZXQgYnkgRXhlY3V0b3JSdW4gKi8KIAlib29sCQlhbHJl YWR5X2V4ZWN1dGVkOwkvKiB0cnVlIGlmIHByZXZpb3VzbHkgZXhlY3V0ZWQgKi8KIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCBiL3NyYy9pbmNs dWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmRiNDRkOGI5NGM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1 ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaApAQCAtMCwwICsxLDIyIEBACisvKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5oCisgKgkgIHByb3RvdHlwZXMg Zm9yIHN2YXJpYWJsZVJlY2VpdmVyLmMKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs aWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgK KyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIFNWQVJJQUJMRV9SRUNFSVZF Ul9ICisjZGVmaW5lIFNWQVJJQUJMRV9SRUNFSVZFUl9ICisKKyNpbmNsdWRlICJ0Y29wL2Rlc3Qu aCIKKworZXh0ZXJuIERlc3RSZWNlaXZlciAqQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lk IHZhcmlkKTsKKworI2VuZGlmCQkJCQkJCS8qIFNWQVJJQUJMRV9SRUNFSVZFUl9IICovCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oCmluZGV4IDE4MmE2OTU2YmIwLi5iNDQ2NGVkYzIyYSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhl Y25vZGVzLmgKQEAgLTYxNyw2ICs2MTcsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgQXN5bmNSZXF1ZXN0 CiAJCQkJCQkJCSAqIHR1cGxlcykgKi8KIH0gQXN5bmNSZXF1ZXN0OwogCisvKiAtLS0tLS0tLS0t LS0tLS0tCisgKiBTZXNzaW9uVmFyaWFibGVWYWx1ZQorICogLS0tLS0tLS0tLS0tLS0tLQorICov Cit0eXBlZGVmIHN0cnVjdCBTZXNzaW9uVmFyaWFibGVWYWx1ZQoreworCU9pZAkJCXZhcmlkOwor CU9pZAkJCXR5cGlkOworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7Cit9IFNlc3Npb25W YXJpYWJsZVZhbHVlOworCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkgIEVTdGF0ZSBpbmZvcm1h dGlvbgogICoKQEAgLTY2OSw2ICs2ODEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJUGFy YW1MaXN0SW5mbyBlc19wYXJhbV9saXN0X2luZm87CS8qIHZhbHVlcyBvZiBleHRlcm5hbCBwYXJh bXMgKi8KIAlQYXJhbUV4ZWNEYXRhICplc19wYXJhbV9leGVjX3ZhbHM7CS8qIHZhbHVlcyBvZiBp bnRlcm5hbCBwYXJhbXMgKi8KIAorCS8qIFNlc3Npb24gdmFyaWFibGVzIGluZm86ICovCisJaW50 CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOwkJLyogbnVtYmVyIG9mIHVzZWQgdmFyaWFibGVz ICovCisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzOwkvKiBhcnJh eSBvZiBjb3BpZXMgb2YgdmFsdWVzICovCisKIAlRdWVyeUVudmlyb25tZW50ICplc19xdWVyeUVu djsJLyogcXVlcnkgZW52aXJvbm1lbnQgKi8KIAogCS8qIE90aGVyIHdvcmtpbmcgc3RhdGU6ICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMGUwODI5NmI0MzguLjc3OGRiNmFkNGYyIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0xNDIsNiArMTQyLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVl cnkKIAkgKi8KIAlpbnQJCQlyZXN1bHRSZWxhdGlvbiBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxl X2lnbm9yZSk7CiAKKwkvKiB0YXJnZXQgdmFyaWFibGUgb2YgTEVUIHN0YXRlbWVudCAqLworCU9p ZAkJCXJlc3VsdFZhcmlhYmxlOworCiAJLyogaGFzIGFnZ3JlZ2F0ZXMgaW4gdGxpc3Qgb3IgaGF2 aW5nUXVhbCAqLwogCWJvb2wJCWhhc0FnZ3MgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25v cmUpOwogCS8qIGhhcyB3aW5kb3cgZnVuY3Rpb25zIGluIHRsaXN0ICovCkBAIC0xNjIsNiArMTY1 LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAlib29sCQloYXNSb3dTZWN1cml0eSBwZ19ub2Rl X2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogcGFyc2VyIGhhcyBhZGRlZCBhbiBSVEVf R1JPVVAgUlRFICovCiAJYm9vbAkJaGFzR3JvdXBSVEUgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOworCS8qIHVzZXMgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlib29sCQloYXNTZXNz aW9uVmFyaWFibGVzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBpcyBh IFJFVFVSTiBzdGF0ZW1lbnQgKi8KIAlib29sCQlpc1JldHVybiBwZ19ub2RlX2F0dHIocXVlcnlf anVtYmxlX2lnbm9yZSk7CiAKQEAgLTIxMDAsNiArMjEwNSwxOCBAQCB0eXBlZGVmIHN0cnVjdCBN ZXJnZVN0bXQKIAlQYXJzZUxvYwlzdG10X2xlbjsJCS8qIGxlbmd0aCBpbiBieXRlczsgMCBtZWFu cyAicmVzdCBvZiBzdHJpbmciICovCiB9IE1lcmdlU3RtdDsKIAorLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICoJCUxldCBTdGF0ZW1lbnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq LwordHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJTGlzdAkgICAq dGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLworCU5vZGUJICAgKnF1ZXJ5OwkJCS8qIHNv dXJjZSBleHByZXNzaW9uICovCisJaW50CQkJbG9jYXRpb247Cit9IExldFN0bXQ7CisKIC8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlTZWxlY3QgU3RhdGVtZW50CiAgKgpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRo bm9kZXMuaAppbmRleCBhZGQwZjllNDVmYy4uZWExZjc2ZDBmYmIgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rl cy5oCkBAIC0xNjMsNiArMTYzLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lckdsb2JhbAogCiAJ LyogcGFydGl0aW9uIGRlc2NyaXB0b3JzICovCiAJUGFydGl0aW9uRGlyZWN0b3J5IHBhcnRpdGlv bl9kaXJlY3RvcnkgcGdfbm9kZV9hdHRyKHJlYWRfd3JpdGVfaWdub3JlKTsKKworCS8qIGxpc3Qg b2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7 CiB9IFBsYW5uZXJHbG9iYWw7CiAKIC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3Nv Y2lhdGVkIHdpdGggYSBTdWJQbGFuIG5vZGUgKi8KQEAgLTUwOCw2ICs1MTEsOCBAQCBzdHJ1Y3Qg UGxhbm5lckluZm8KIAlib29sCQlwbGFjZWhvbGRlcnNGcm96ZW47CiAJLyogdHJ1ZSBpZiBwbGFu bmluZyBhIHJlY3Vyc2l2ZSBXSVRIIGl0ZW0gKi8KIAlib29sCQloYXNSZWN1cnNpb247CisJLyog dHJ1ZSBpZiBzZXNzaW9uIHZhcmlhYmxlcyB3ZXJlIHVzZWQgKi8KKwlib29sCQloYXNTZXNzaW9u VmFyaWFibGVzOwogCiAJLyoKIAkgKiBUaGUgcmFuZ2V0YWJsZSBpbmRleCBmb3IgdGhlIFJURV9H Uk9VUCBSVEUsIG9yIDAgaWYgdGhlcmUgaXMgbm8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggNTJm MjliY2RiNjkuLjQ1NDkzNjZjZjU5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFu bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtNDksNyArNDks NyBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVkU3RtdAogCiAJTm9kZVRhZwkJdHlwZTsKIAotCUNt ZFR5cGUJCWNvbW1hbmRUeXBlOwkvKiBzZWxlY3R8aW5zZXJ0fHVwZGF0ZXxkZWxldGV8bWVyZ2V8 dXRpbGl0eSAqLworCUNtZFR5cGUJCWNvbW1hbmRUeXBlOwkvKiBzZWxlY3R8bGV0fGluc2VydHx1 cGRhdGV8ZGVsZXRlfG1lcmdlfHV0aWxpdHkgKi8KIAogCXVpbnQ2NAkJcXVlcnlJZDsJCS8qIHF1 ZXJ5IGlkZW50aWZpZXIgKGNvcGllZCBmcm9tIFF1ZXJ5KSAqLwogCkBAIC05NCw2ICs5NCw4IEBA IHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAKIAlOb2RlCSAgICp1dGlsaXR5U3RtdDsJLyog bm9uLW51bGwgaWYgdGhpcyBpcyB1dGlsaXR5IHN0bXQgKi8KIAorCUxpc3QJICAgKnNlc3Npb25W YXJpYWJsZXM7CS8qIE9JRHMgZm9yIFBBUkFNX1ZBUklBQkxFIFBhcmFtcyAqLworCiAJLyogc3Rh dGVtZW50IGxvY2F0aW9uIGluIHNvdXJjZSBzdHJpbmcgKGNvcGllZCBmcm9tIFF1ZXJ5KSAqLwog CVBhcnNlTG9jCXN0bXRfbG9jYXRpb247CS8qIHN0YXJ0IGxvY2F0aW9uLCBvciAtMSBpZiB1bmtu b3duICovCiAJUGFyc2VMb2MJc3RtdF9sZW47CQkvKiBsZW5ndGggaW4gYnl0ZXM7IDAgbWVhbnMg InJlc3Qgb2Ygc3RyaW5nIiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5v ZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCBiMGVmMTk1MmU4Zi4u NGIyNDI0ZDZkMzQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC0zNjEsNiArMzYxLDkgQEAgdHlw ZWRlZiBzdHJ1Y3QgQ29uc3QKICAqCQkJCW9mIHRoZSBgcGFyYW1pZCcgZmllbGQgY29udGFpbiB0 aGUgU3ViTGluaydzIHN1YkxpbmtJZCwgYW5kCiAgKgkJCQl0aGUgbG93LW9yZGVyIDE2IGJpdHMg Y29udGFpbiB0aGUgY29sdW1uIG51bWJlci4gIChUaGlzIHR5cGUKICAqCQkJCW9mIFBhcmFtIGlz IGFsc28gY29udmVydGVkIHRvIFBBUkFNX0VYRUMgZHVyaW5nIHBsYW5uaW5nLikKKyAqCisgKgkJ UEFSQU1fVkFSSUFCTEU6ICBUaGUgcGFyYW1ldGVyIGlzIGEgcmVmZXJlbmNlIHRvIGEgc2Vzc2lv biB2YXJpYWJsZQorICoJCQkJKHBhcmFtaWQgaG9sZHMgdGhlIHZhcmlhYmxlJ3MgT0lEKS4KICAq LwogdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogewpAQCAtMzY4LDYgKzM3MSw3IEBAIHR5cGVkZWYg ZW51bSBQYXJhbUtpbmQKIAlQQVJBTV9FWEVDLAogCVBBUkFNX1NVQkxJTkssCiAJUEFSQU1fTVVM VElFWFBSLAorCVBBUkFNX1ZBUklBQkxFLAogfSBQYXJhbUtpbmQ7CiAKIHR5cGVkZWYgc3RydWN0 IFBhcmFtCkBAIC0zODAsNiArMzg0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAlpbnQzMgkJ cGFyYW10eXBtb2QgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIE9JRCBv ZiBjb2xsYXRpb24sIG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXBhcmFtY29sbGlk IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKwkvKiBPSUQgb2Ygc2Vzc2lvbiB2 YXJpYWJsZSBpZiBpdCBpcyB1c2VkICovCisJT2lkCQkJcGFyYW12YXJpZDsKIAkvKiB0b2tlbiBs b2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwogfSBQYXJh bTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oIGIvc3JjL2lu Y2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKaW5kZXggOTMxMzcyNjFlNDguLjYxMzQxYzUwY2Y3 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaAorKysgYi9zcmMv aW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaApAQCAtMTI0LDQgKzEyNCw2IEBAIGV4dGVybiB2 b2lkIHJlY29yZF9wbGFuX2Z1bmN0aW9uX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9p ZCBmdW5jaWQpOwogZXh0ZXJuIHZvaWQgcmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5u ZXJJbmZvICpyb290LCBPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wgZXh0cmFjdF9xdWVyeV9kZXBl bmRlbmNpZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KTsKIAorZXh0 ZXJuIHZvaWQgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMoUGxhbm5lckluZm8gKnJvb3Qp OworCiAjZW5kaWYJCQkJCQkJLyogUExBTk1BSU5fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IDU2 NjcwZTY1YjExLi5hZWZlNTFmMzM1YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMjU2LDYgKzI1Niw3 IEBAIFBHX0tFWVdPUkQoImxlYWRpbmciLCBMRUFESU5HLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgibGVha3Byb29mIiwgTEVBS1BST09GLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFzdCIsIExFQVNULCBDT0xfTkFNRV9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVmdCIsIExFRlQsIFRZUEVfRlVOQ19O QU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJsZXQiLCBMRVQsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxldmVsIiwgTEVWRUwsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxpa2UiLCBMSUtFLCBUWVBF X0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGltaXQiLCBMSU1J VCwgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRl eCAyMzc1ZTk1YzEwNy4uYzExZmRiM2Q5NzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAt ODIsNiArODIsOCBAQCB0eXBlZGVmIGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9DT1BZ X1dIRVJFLAkJLyogV0hFUkUgY29uZGl0aW9uIGluIENPUFkgRlJPTSAqLwogCUVYUFJfS0lORF9H RU5FUkFURURfQ09MVU1OLCAvKiBnZW5lcmF0aW9uIGV4cHJlc3Npb24gZm9yIGEgY29sdW1uICov CiAJRVhQUl9LSU5EX0NZQ0xFX01BUkssCQkvKiBjeWNsZSBtYXJrIHZhbHVlICovCisJRVhQUl9L SU5EX0FTU0lHTl9UQVJHRVQsCS8qIFBML3BnU1FMIGFzc2lnbm1lbnQgdGFyZ2V0ICovCisJRVhQ Ul9LSU5EX0xFVF9UQVJHRVQsCQkvKiBMRVQgdGFyZ2V0ICovCiB9IFBhcnNlRXhwcktpbmQ7CiAK IApAQCAtMjQ0LDYgKzI0Niw3IEBAIHN0cnVjdCBQYXJzZVN0YXRlCiAJYm9vbAkJcF9oYXNUYXJn ZXRTUkZzOwogCWJvb2wJCXBfaGFzU3ViTGlua3M7CiAJYm9vbAkJcF9oYXNNb2RpZnlpbmdDVEU7 CisJYm9vbAkJcF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJTm9kZQkgICAqcF9sYXN0X3NyZjsJ CS8qIG1vc3QgcmVjZW50IHNldC1yZXR1cm5pbmcgZnVuYy9vcCBmb3VuZCAqLwogCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21k dGFnbGlzdC5oCmluZGV4IDk0NjVkZjdiMmZmLi5hOTIxYWYyNDg2ZiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmgKQEAgLTE4Niw2ICsxODYsNyBAQCBQR19DTURUQUcoQ01EVEFHX0dSQU5ULCAiR1JBTlQi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0dSQU5UX1JPTEUsICJHUkFO VCBST0xFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU1QT1JUX0ZP UkVJR05fU0NIRU1BLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19JTlNFUlQsICJJTlNFUlQiLCBmYWxzZSwgZmFsc2UsIHRydWUp CitQR19DTURUQUcoQ01EVEFHX0xFVCwgIkxFVCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0xJU1RFTiwgIkxJU1RFTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0xPQUQsICJMT0FEIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfTE9DS19UQUJMRSwgIkxPQ0sgVEFCTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2Rl c3QuaAppbmRleCBhM2Q1MjFiNmY5Ny4uMzhjYzg3ZjRlN2EgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3Rjb3AvZGVzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCkBAIC05Nyw2ICs5 Nyw3IEBAIHR5cGVkZWYgZW51bQogCURlc3RUcmFuc2llbnRSZWwsCQkJLyogcmVzdWx0cyBzZW50 IHRvIHRyYW5zaWVudCByZWxhdGlvbiAqLwogCURlc3RUdXBsZVF1ZXVlLAkJCQkvKiByZXN1bHRz IHNlbnQgdG8gdHVwbGUgcXVldWUgKi8KIAlEZXN0RXhwbGFpblNlcmlhbGl6ZSwJCS8qIHJlc3Vs dHMgYXJlIHNlcmlhbGl6ZWQgYW5kIGRpc2NhcmRlZCAqLworCURlc3RWYXJpYWJsZSwJCQkJLyog cmVzdWx0cyBzZW50IHRvIHNlc3Npb24gdmFyaWFibGUgKi8KIH0gQ29tbWFuZERlc3Q7CiAKIC8q IC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDg2YzViZDMyNGE5Li4xMzYx YThhODQ4MCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYworKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MDk5LDcgKzgwOTksOCBAQCBleGVjX2lz X3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5LT5zb3J0Q2xhdXNlIHx8 CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRDb3VudCB8fAotCQlxdWVy eS0+c2V0T3BlcmF0aW9ucykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMgfHwKKwkJcXVlcnktPmhh c1Nlc3Npb25WYXJpYWJsZXMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGQwYWZmNTZhMDFk Li5hMmNiMzVlM2Q3ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKQEAgLTU2LDMgKzU2LDkyOCBAQCBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjE7CiBEUk9QIFNDSEVNQSBzdmFydGVzdDsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxl X3JlYWRlcjsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworLS0gY2hlY2sgYWNj ZXNzIHJpZ2h0cworQ1JFQVRFIFJPTEUgcmVncmVzc19ub293bmVyOworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngoaW50KQorUkVU VVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWw7CitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxF Q1QgJDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbCBTRUNVUklUWSBERUZJTkVSOworQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lO IFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lO IFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklO RVI7CitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZngoMjApOworIHNxbGZ4IAor LS0tLS0tLQorICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBzcWxmeF9zZCgyMCk7Cisgc3FsZnhf c2QgCistLS0tLS0tLS0tCisgICAgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeCgy MCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgICAgMzAKKygxIHJvdykKKworU0VM RUNUIHBscGdzcWxmeF9zZCgyMCk7CisgcGxwZ3NxbGZ4X3NkIAorLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgMzAKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK1NFVCBST0xFIFRPIHJlZ3Jl c3Nfbm9vd25lcjsKK1NFTEVDVCB2YXIxOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitTRUxFQ1Qgc3FsZngoMjApOworRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgU1FMIGZ1bmN0 aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKK1NFTEVDVCBwbHBnc3FsZngoMjApOworRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgUEwv cGdTUUwgZXhwcmVzc2lvbiAiJDEgKyB2YXIxIgorUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4 KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHNxbGZ4 X3NkKDIwKTsKKyBzcWxmeF9zZCAKKy0tLS0tLS0tLS0KKyAgICAgICAzMAorKDEgcm93KQorCitT RUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKyBwbHBnc3FsZnhfc2QgCistLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAzMAorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc19ub293bmVyOworLS0gc2hvdWxkIGJlIG9r CitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0t LS0tCisgICAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZngoMjApOworIHNxbGZ4IAorLS0tLS0t LQorICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngoMjApOworIHBscGdzcWxmeCAK Ky0tLS0tLS0tLS0tCisgICAgICAgIDMwCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7 CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHNxbGZ4KGludCk7CitEUk9QIEZV TkNUSU9OIHBscGdzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBzcWxmeF9zZChpbnQpOworRFJP UCBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KTsKK0RST1AgUk9MRSByZWdyZXNzX25vb3duZXI7 CistLSB1c2UgdmFyaWFibGVzIGluc2lkZSB2aWV3cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg bnVtZXJpYzsKKy0tIHVzZSB2YXJpYWJsZXMgaW4gdmlld3MKK0NSRUFURSBWSUVXIHRlc3Rfdmll dyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSArIHYsIDApIEFTIHJlc3VsdCBGUk9NIGdlbmVyYXRl X3NlcmllcygxLDIpIGcodik7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCist LS0tLS0tLQorICAgICAgMAorICAgICAgMAorKDIgcm93cykKKworTEVUIHZhcjEgPSAzLjE0Owor U0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAg IDUuMTQKKygyIHJvd3MpCisKKy0tIHN0YXJ0IGEgbmV3IHNlc3Npb24KK1xjCitTRUxFQ1QgKiBG Uk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAgMAorICAgICAgMAorKDIg cm93cykKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVz dWx0IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAgIDUuMTQKKygyIHJvd3MpCisKKy0tIHNob3VsZCBm YWlsLCBkZXBlbmRlbmN5CitEUk9QIFZBUklBQkxFIHZhcjE7CitFUlJPUjogIGNhbm5vdCBkcm9w IHNlc3Npb24gdmFyaWFibGUgdmFyMSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0 CitERVRBSUw6ICB2aWV3IHRlc3RfdmlldyBkZXBlbmRzIG9uIHNlc3Npb24gdmFyaWFibGUgdmFy MQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmpl Y3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CitO T1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdGVzdF92aWV3CitDUkVBVEUgVkFSSUFCTEUg dmFyMSB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgdGV4dDsKKy0tIHVzZSB2YXJpYWJsZXMg aW4gU1FMIGZ1bmN0aW9ucworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngxKHZhcmNo YXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjEgfHwgJywgJyB8fCAkMSAkJCBM QU5HVUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDIoIHZhcmNoYXIp CitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjIgfHwgJywgJyB8fCAkMSAkJCBMQU5H VUFHRSBzcWw7CitMRVQgdmFyMSA9ICdzdHIxJzsKK0xFVCB2YXIyID0gJ3N0cjInOworU0VMRUNU IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworICAgICAgc3FsZngxICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLQorIHN0cjEsIHN0cjIsIEhlbGxvCisoMSByb3cpCisKKy0tIGlubGluaW5nIGlz IGJsb2NrZWQKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxm eDIoJ0hlbGxvJykpOworICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBSZXN1bHQKKyAgIE91dHB1dDogc3FsZngxKHNxbGZ4MignSGVsbG8nOjpj aGFyYWN0ZXIgdmFyeWluZykpCisoMiByb3dzKQorCitEUk9QIEZVTkNUSU9OIHNxbGZ4MSh2YXJj aGFyKTsKK0RST1AgRlVOQ1RJT04gc3FsZngyKHZhcmNoYXIpOworRFJPUCBWQVJJQUJMRSB2YXIx OworRFJPUCBWQVJJQUJMRSB2YXIyOworLS0gYWNjZXNzIGZyb20gY2FjaGVkIHBsYW5zIHNob3Vs ZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJCBCRUdJTiBSRVRV Uk4gdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CitzZXQgcGxhbl9jYWNoZV9tb2RlIFRP IGZvcmNlX2dlbmVyaWNfcGxhbjsKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCBwbHBnc3FsZngo KTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgMy4xNAorKDEgcm93KQorCitMRVQg dmFyMSA9IDMuMTQgKiAyOworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0t LS0tLS0tCisgICAgICA2LjI4CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGRl cGVuZGVuY3kgKHBsYW4gaW52YWxpZGF0aW9uKSBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgbnVtZXJpYzsKK0xFVCB2YXIxID0gMy4xNCAqIDM7CitTRUxFQ1QgcGxwZ3NxbGZ4 KCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgIDkuNDIKKygxIHJvdykKKworTEVU IHZhcjEgPSAzLjE0ICogNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0t LS0tLS0tLQorICAgICAxMi41NgorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9Q IEZVTkNUSU9OIHBscGdzcWxmeCgpOworc2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOwor LS0gdXNhZ2UgTEVUIHN0YXRlbWVudCBpbiBwbHBnc3FsIHNob3VsZCB3b3JrCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBudW1lcmljW107CitETyAkJAor QkVHSU4KKyAgTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9P UAorICAgIExFVCB2YXIxID0gaTsKKyAgICBMRVQgdmFyMlt2YXIxXSA9IGk7CisgIEVORCBMT09Q OworICBSQUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJheTogJScsIHZhcjI7CitFTkQ7CiskJDsKK05P VElDRTogIHJlc3VsdCBhcnJheTogezEsMiwzLDQsNSw2LDcsOCw5LDEwfQorRFJPUCBWQVJJQUJM RSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1 cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJs ZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2IGludDsKK0NSRUFU RSBQUk9DRURVUkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7 IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5v dCBzdXBwb3J0ZWQgeWV0KQorQ0FMTCBwKHYpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNh bm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitETyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAk JDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVu dAorQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkNBTEwgcCh2KSIKK1BML3BnU1FMIGZ1bmN0aW9u IGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBDQUxMCitEUk9QIFBST0NFRFVSRSBwKGludCk7 CitEUk9QIFZBUklBQkxFIHY7CistLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVk IHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20g ZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50OworTEVUIHYgPSAyMDsK K1BSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CistLSBzaG91bGQgZmFpbAorRVhFQ1VU RSBwdGVzdCh2KTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBh biBhcmd1bWVudAorREVBTExPQ0FURSBwdGVzdDsKK0RST1AgVkFSSUFCTEUgdjsKKy0tIHRlc3Qg c2VhcmNoIHBhdGgKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitDUkVBVEUgVkFSSUFCTEUgc3Zh cnRlc3QudmFyMSBBUyBudW1lcmljOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gcGkoKTsK K0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgZG9lc24ndCBleGlzdAorTElORSAxOiBM RVQgdmFyMSA9IHBpKCk7CisgICAgICAgICAgICBeCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgY29s dW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgdmFyMTsKKyAgICAgICAg ICAgICAgIF4KKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0LnZhcjEgPSBwaSgpOworU0VM RUNUIHN2YXJ0ZXN0LnZhcjE7CisgICAgICAgdmFyMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LQorIDMuMTQxNTkyNjUzNTg5NzkKKygxIHJvdykKKworU0VUIHNlYXJjaF9wYXRoIFRPIHN2YXJ0 ZXN0OworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IHBpKCkgKyAxMDsKK1NFTEVDVCB2YXIx OworICAgICAgIHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAxMy4xNDE1OTI2NTM1 ODk4CisoMSByb3cpCisKK1JFU0VUIHNlYXJjaF9wYXRoOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Qg Q0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFy dGVzdC52YXIxCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworLS0gdmFyaWFibGVzIGNh biBiZSB1cGRhdGVkIHVuZGVyIFJPIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFVCBUUkFOU0FDVElP TiBSRUFEIE9OTFk7CitMRVQgdmFyMSA9ICdoZWxsbyc7CitDT01NSVQ7CitTRUxFQ1QgdmFyMTsK KyB2YXIxICAKKy0tLS0tLS0KKyBoZWxsbworKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7 CistLSB0ZXN0IG9mIGRvbWFpbnMKK0NSRUFURSBET01BSU4gaW50X2RvbWFpbiBBUyBpbnQgTk9U IE5VTEwgQ0hFQ0sgKFZBTFVFID4gMTAwKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludF9k b21haW47CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIGRvbWFpbiBpbnRf ZG9tYWluIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCistLSBzaG91bGQgYmUgb2sKK0xFVCB2 YXIxID0gMTAwMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAxMDAwCisoMSByb3cp CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDEwOworRVJST1I6ICB2YWx1ZSBmb3IgZG9t YWluIGludF9kb21haW4gdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiaW50X2RvbWFpbl9jaGVj ayIKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CitFUlJPUjogIGRvbWFpbiBpbnRf ZG9tYWluIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCistLSBub3RlIC0gZG9tYWluIGRlZmF1 bHRzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCAobGlrZSBQTHBnU1FMKQorRFJPUCBWQVJJQUJMRSB2 YXIxOworRFJPUCBET01BSU4gaW50X2RvbWFpbjsKKy0tIHRoZSBleHByZXNzaW9uIHNob3VsZCBy ZW1haW4gInVua25vd24iCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ0bXVsdGlyYW5nZVtd OworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CitMRVQgdmFyMSA9ICd7IntbMiw4 KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKK0xFVCB2YXIxWzJdID0gJ3tbNSw4KSxb MTIsMTAwKX0nOworU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAgICAgICB2YXIxICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJ7 WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0KKygxIHJvdykKKworLS1JdCBzaG91 bGQgd29yayBpbiBwbHBnc3FsIHRvbworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gTlVMTDsK KyAgTEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7Cisg IExFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworCisgIFJBSVNFIE5PVElDRSAnJScs IHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIHsie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsx MiwxMDApfSJ9CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0IENS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0xFVCBz dmFydGVzdC52YXIxID0gMTAwOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAxMDAKKygxIHJvdykKKworU0VUIHNlYXJjaF9wYXRoIHRvIHB1YmxpYywgc3ZhcnRlc3Q7 CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitEUk9QIFND SEVNQSBzdmFydGVzdCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVy IG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgZm9vCitkcm9wIGNhc2Nh ZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CitMRVQgdmFyMSA9IDI7CitMRVQgdmFy MiA9ICd7fSc6OmludFtdOworTEVUIHZhcjJbdmFyMV0gPSAwOworU0VMRUNUIHZhcjI7CisgICB2 YXIyICAgIAorLS0tLS0tLS0tLS0KKyBbMjoyXT17MH0KKygxIHJvdykKKworRFJPUCBWQVJJQUJM RSB2YXIxLCB2YXIyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklB QkxFIHZhcjIgQVMgaW50W107CitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtd OworU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorIHt9CisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgdmFyMSwgdmFyMjsKKy0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxv d2VkIGluIENURQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworV0lUSCB4IEFTIChMRVQg dmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3Ig bmVhciAiTEVUIgorTElORSAxOiBXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBG Uk9NIHg7CisgICAgICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9 IGdlbmVyYXRlX3NlcmllcygxLCAxKTsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IGdlbmVy YXRlX3NlcmllcygxLCAyKTsKK0VSUk9SOiAgZXhwcmVzc2lvbiByZXR1cm5lZCBtb3JlIHRoYW4g b25lIHJvdworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMCk7CitFUlJPUjogIGV4cHJl c3Npb24gcmV0dXJuZWQgbm8gcm93cworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gY29tcG9zaXRl IHZhcmlhYmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6IEFTICh4IGludCwgeSBpbnQsIHogbnVtZXJp YygxMCwyKSk7CitDUkVBVEUgVkFSSUFCTEUgdjEgQVMgc3ZfeHl6OworQ1JFQVRFIFZBUklBQkxF IHYyIEFTIHN2X3h5ejsKK0xFVCB2MSA9ICgxLCAyLCAzLjE0KTsKK0xFVCB2MiA9ICgxMCwgMjAs IDMuMTQgKiAxMCk7CistLSBzaG91bGQgd29yayB0b28gLSB0aGVyZSBhcmUgcHJlcGFyZWQgY2Fz dHMKK0xFVCB2MSA9ICgxLCAyLCAzKTsKK1NFTEVDVCB2MTsKKyAgICAgdjEgICAgIAorLS0tLS0t LS0tLS0tCisgKDEsMiwzLjAwKQorKDEgcm93KQorCitTRUxFQ1QgdjI7CisgICAgICB2MiAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLQorICgxMCwyMCwzMS40MCkKKygxIHJvdykKKworU0VMRUNUICh2 MSkuKjsKKyB4IHwgeSB8ICB6ICAgCistLS0rLS0tKy0tLS0tLQorIDEgfCAyIHwgMy4wMAorKDEg cm93KQorCitTRUxFQ1QgKHYyKS4qOworIHggIHwgeSAgfCAgIHogICAKKy0tLS0rLS0tLSstLS0t LS0tCisgMTAgfCAyMCB8IDMxLjQwCisoMSByb3cpCisKK1NFTEVDVCB2MS54ICsgdjEuejsKKyA/ Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICAgNC4wMAorKDEgcm93KQorCitTRUxFQ1QgdjIueCAr IHYyLno7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAgNDEuNDAKKygxIHJvdykKKworLS0g YWNjZXNzIHRvIGNvbXBvc2l0ZSBmaWVsZHMgc2hvdWxkIGJlIHNhZmUgdG9vCitDUkVBVEUgUk9M RSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3Jv bGU7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHYyLng7CitFUlJPUjogIHBlcm1pc3Npb24gZGVu aWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHYyCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBW QVJJQUJMRSB2MTsKK0RST1AgVkFSSUFCTEUgdjI7CitEUk9QIFRZUEUgc3ZfeHl6OworRFJPUCBS T0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBu dW1lcmljLCBjIHRleHQpOworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHQxOworTEVUIHYxID0gKDEs IHBpKCksICdoZWxsbycpOworU0VMRUNUIHYxOworICAgICAgICAgICAgIHYxICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxLDMuMTQxNTkyNjUzNTg5NzksaGVs bG8pCisoMSByb3cpCisKK0xFVCB2MS5iID0gMTAuMjIyMjsKK1NFTEVDVCB2MTsKKyAgICAgICAg djEgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyLGhlbGxvKQorKDEg cm93KQorCistLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54 ID0gMTA7CitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNvbHVtbiAidjEi IGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHQxCitMSU5FIDE6 IExFVCB2MS54ID0gMTA7CisgICAgICAgICAgICBeCistLSBzaG91bGQgZmFpbCwgZG9uJ3QgYWxs b3cgbXVsdGkgY29sdW1uIHF1ZXJ5CitMRVQgdjEgPSAoTlVMTDo6dDEpLio7CitFUlJPUjogIGFz c2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAzIGNvbHVtbnMKK0xJTkUgMTogTEVUIHYxID0g KE5VTEw6OnQxKS4qOworICAgICAgICAgICAgICAgICAgXgorLS0gYWxsb3cgRFJPUCBvciBBREQg QVRUUklCVVRFIG9uIGNvbXBvc2l0ZSB0eXBlcworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBF IHQxIERST1AgQVRUUklCVVRFIGM7CitTRUxFQ1QgdjE7CisgICAgIHYxICAgICAgCistLS0tLS0t LS0tLS0tCisgKDEsMTAuMjIyMikKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBU WVBFIHQxIEFERCBBVFRSSUJVVEUgYyBpbnQ7CitTRUxFQ1QgdjE7CisgICAgICB2MSAgICAgIAor LS0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyLCkKKygxIHJvdykKKworTEVUIHYxID0gKDEwLCAx MC4zLCAyMCk7CitTRUxFQ1QgdjE7CisgICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLS0KKyAo MTAsMTAuMywyMCkKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERS T1AgQVRUUklCVVRFIGI7CitTRUxFQ1QgdjE7CisgICB2MSAgICAKKy0tLS0tLS0tLQorICgxMCwy MCkKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwsIGRpc2FsbG93IGRhdGEgdHlwZSBjaGFuZ2UK K0FMVEVSIFRZUEUgdDEgQUxURVIgQVRUUklCVVRFIGMgVFlQRSBpbnQ7CitFUlJPUjogIGNhbm5v dCBhbHRlciB0eXBlICJ0MSIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudjEiIHVz ZXMgaXQKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFRZUEUgdDE7CistLSB0aGUgdGFibGUgdHlw ZSBjYW4gYmUgdXNlZCBhcyBjb21wb3NpdGUgdHlwZSB0b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rl c3QoYSBpbnQsIGIgbnVtZXJpYywgYyBkYXRlKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2 YXJfdGVzdDsKK0xFVCB2YXIxID0gKDEwLCBwaSgpLCAnMjAyMy0wNS0yNicpOworU0VMRUNUIHZh cjE7CisgICAgICAgICAgICAgICB2YXIxICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLDMuMTQxNTkyNjUzNTg5NzksMDUtMjYtMjAyMykKKygx IHJvdykKKworLS0gc2hvdWxkIGZhaWwgZHVlIGRlcGVuZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJf dGVzdCBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0YWJs ZSAic3Zhcl90ZXN0IiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiB1c2Vz IGl0CistLSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitFUlJPUjogIGNhbm5v dCBkcm9wIHRhYmxlIHN2YXJfdGVzdCBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0 CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHN2YXJfdGVz dAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmpl Y3RzIHRvby4KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworLS0g YXJyYXlzIGFyZSBzdXBwb3J0ZWQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWNbXTsK K0xFVCB2YXIxID0gQVJSQVlbMS4xLDIuMV07CitMRVQgdmFyMVsxXSA9IDEwLjE7CitTRUxFQ1Qg dmFyMTsKKyAgICB2YXIxICAgIAorLS0tLS0tLS0tLS0tCisgezEwLjEsMi4xfQorKDEgcm93KQor CistLSBMRVQgdGFyZ2V0IGRvZXNuJ3QgYWxsb3cgc3JmLCBzaG91bGQgZmFpbAorTEVUIHZhcjFb Z2VuZXJhdGVfc2VyaWVzKDEsMyldID0gMTAwOworRVJST1I6ICBzZXQtcmV0dXJuaW5nIGZ1bmN0 aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gTEVUCitMSU5FIDE6IExFVCB2YXIxW2dlbmVyYXRlX3Nl cmllcygxLDMpXSA9IDEwMDsKKyAgICAgICAgICAgICAgICAgXgorRFJPUCBWQVJJQUJMRSB2YXIx OworLS0gYXJyYXlzIGluc2lkZSBjb21wb3NpdGUKK0NSRUFURSBUWVBFIHQxIEFTIChhIG51bWVy aWMsIGIgbnVtZXJpY1tdKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOworTEVUIHZhcjEg PSAoMTAuMSwgQVJSQVlbMC4wLCAwLjBdKTsKK0xFVCB2YXIxLmEgPSAxMC4yOworU0VMRUNUIHZh cjE7CisgICAgICAgIHZhcjEgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMTAuMiwi ezAuMCwwLjB9IikKKygxIHJvdykKKworTEVUIHZhcjEuYlsxXSA9IDEwLjM7CitTRUxFQ1QgdmFy MTsKKyAgICAgICAgdmFyMSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLjIs InsxMC4zLDAuMH0iKQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUg dDE7CistLSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0 dXBfY29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3BhcmFs bGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dh dGhlciA9IDI7CistLSB0ZXN0IG9uIHF1ZXJ5IHdpdGggd29ya2VycworQ1JFQVRFIFRBQkxFIHN2 YXJfdGVzdChhIGludCk7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgU0VMRUNUICogRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwxMDAwKTsKK0FOQUxZWkUgc3Zhcl90ZXN0OworQ1JFQVRFIFZBUklBQkxF IHplcm8gaW50OworTEVUIHplcm8gPSAwOworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAKK1NFTEVD VCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKKyBjb3VudCAKKy0t LS0tLS0KKyAgIDEwMAorKDEgcm93KQorCistLSBwYXJhbGxlbCBleGVjdXRpb24gaXMgbm90IHN1 cHBvcnRlZCB5ZXQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIEZST00gc3Zh cl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgU2VxIFNjYW4gb24gc3Zhcl90ZXN0CisgICAgICAgICBGaWx0ZXI6ICgoYSAlIDEwKSA9 IHplcm8pCisoMyByb3dzKQorCitMRVQgemVybyA9IChTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFy X3Rlc3QpOworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCitTRUxFQ1QgemVybzsKKyB6ZXJvIAor LS0tLS0tCisgMTAwMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHplcm87CitEUk9QIFRBQkxF IHN2YXJfdGVzdDsKK1JFU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90 dXBsZV9jb3N0OworUkVTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1h eF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CistLSB0aGUgcmVzdWx0IG9mIHZpZXcgc2hv dWxkIGJlIHNhbWUgaW4gcGFyYWxsZWwgbW9kZSB0b28KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IGludDsKK0xFVCB2YXIxID0gMTA7CitDUkVBVEUgVklFVyB2YXIxdmlldyBBUyBTRUxFQ1QgQ09B TEVTQ0UodmFyMSwgMCkgQVMgcmVzdWx0OworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKyByZXN1 bHQgCistLS0tLS0tLQorICAgICAxMAorKDEgcm93KQorCitTRVQgZGVidWdfcGFyYWxsZWxfcXVl cnkgVE8gb247CitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisg ICAgIDEwCisoMSByb3cpCisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvZmY7CitEUk9Q IFZJRVcgdmFyMXZpZXc7CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFy aWQgaW50OworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChpZCBpbnQsIHYgaW50KTsKK0xFVCB2YXJp ZCA9IDE7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgVkFMVUVTKHZhcmlkLCAxMDApOworU0VMRUNU ICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCAgdiAgCistLS0tKy0tLS0tCisgIDEgfCAxMDAKKygx IHJvdykKKworVVBEQVRFIHN2YXJfdGVzdCBTRVQgdiA9IDIwMCBXSEVSRSBpZCA9IHZhcmlkOwor U0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCAgdiAgCistLS0tKy0tLS0tCisgIDEgfCAy MDAKKygxIHJvdykKKworREVMRVRFIEZST00gc3Zhcl90ZXN0IFdIRVJFIGlkID0gdmFyaWQ7CitT RUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8IHYgCistLS0tKy0tLQorKDAgcm93cykKKwor RFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitEUk9QIFZBUklBQkxFIHZhcmlkOworLS0gdmlzaWJpbGl0 eSBjaGVjaworLS0gdmFyaWFibGVzIHNob3VsZCBiZSBzaGFkb3dlZCBhbHdheXMKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIHRleHQ7CitTRUxFQ1QgdmFyMS5yZWxuYW1lIEZST00gcGdfY2xhc3Mg dmFyMSBXSEVSRSB2YXIxLnJlbG5hbWUgPSAncGdfY2xhc3MnOworIHJlbG5hbWUgIAorLS0tLS0t LS0tLQorIHBnX2NsYXNzCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBU QUJMRSB4eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMzMzKTsKK0NS RUFURSBUWVBFIHh4dHlwZSBBUyAoYXZhciBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiIEFT IHh4dHlwZTsKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygxMCk7CistLSBpdCBpcyBhbWJpZ3Vv dXMsIGJ1dCBjb2x1bW5zIGFyZSBwcmVmZXJyZWQKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0 YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCistLSBzaG91bGQg YmUgb2sKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAg IDEwCisoMiByb3dzKQorCitDUkVBVEUgVkFSSUFCTEUgcHVibGljLmF2YXIgQVMgaW50OworLS0g c2hvdWxkIGJlIG9rLCBzZWUgdGhlIHRhYmxlCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworIGF2 YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgcHVibGljLmF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgICAgIAorICAg ICAKKygyIHJvd3MpCisKK0RST1AgVkFSSUFCTEUgeHh0YWI7CitTRUxFQ1QgeHh0YWIuYXZhciBG Uk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworRFJP UCBWQVJJQUJMRSBwdWJsaWMuYXZhcjsKK0RST1AgVFlQRSB4eHR5cGU7CitEUk9QIFRBQkxFIHh4 dGFiOworLS0gVGhlIHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dlZCBieSB0YWJsZSBvciBieSBhbGlh cworQ1JFQVRFIFRZUEUgcHVibGljLnN2YXJfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7 CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnN2YXIgQVMgcHVibGljLnN2YXJfdHlwZTsKK0NSRUFU RSBUQUJMRSBwdWJsaWMuc3ZhcihhIGludCwgYiBpbnQpOworSU5TRVJUIElOVE8gcHVibGljLnN2 YXIgVkFMVUVTKDEwLCAyMCk7CitMRVQgcHVibGljLnN2YXIgPSAoMTAwLCAyMDAsIDMwMCk7Cist LSBzaG91bGQgYmUgb2sKKy0tIHNob3cgdGFibGUKK1NFTEVDVCAqIEZST00gcHVibGljLnN2YXI7 CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKworU0VMRUNUIHN2YXIu YSBGUk9NIHB1YmxpYy5zdmFyOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCBz dmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAor KDEgcm93KQorCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CisgICAgIHN2 YXIgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorICgxMDAsMjAwLDMwMCkKKygxIHJvdykKKworU0VM RUNUIHB1YmxpYy5zdmFyLmM7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNU IChwdWJsaWMuc3ZhcikuKjsKKyAgYSAgfCAgYiAgfCAgYyAgCistLS0tLSstLS0tLSstLS0tLQor IDEwMCB8IDIwMCB8IDMwMAorKDEgcm93KQorCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQs IHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworRVJS T1I6ICBjb2x1bW4gc3Zhci5jIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBwdWJsaWMu c3Zhci5jIEZST00gcHVibGljLnN2YXI7CisgICAgICAgICAgICAgICBeCistLSBjYW4gYmUgZml4 ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKyAg YyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGljLnN2 YXI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuKiBGUk9NIHB1Ymxp Yy5zdmFyOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKKy0tIHNo b3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKKyAgICAgc3ZhciAgICAgIAorLS0tLS0t LS0tLS0tLS0tCisgKDEwMCwyMDAsMzAwKQorKDEgcm93KQorCitTRUxFQ1QgcHVibGljLnN2YXIu YzsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4q OworICBhICB8ICBiICB8ICBjICAKKy0tLS0tKy0tLS0tKy0tLS0tCisgMTAwIHwgMjAwIHwgMzAw CisoMSByb3cpCisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NF TEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CitFUlJPUjogIGNvbHVtbiBzdmFy LmMgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJs aWMuc3ZhcjsKKyAgICAgICAgICAgICAgIF4KKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VM RUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworICBjICAKKy0tLS0tCisgMzAw CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgcHVibGljLnN2YXI7CitEUk9QIFRBQkxFIHB1Ymxp Yy5zdmFyOworRFJPUCBUWVBFIHB1YmxpYy5zdmFyX3R5cGU7CitDUkVBVEUgVFlQRSBhYiBBUyAo YSBpbnRlZ2VyLCBiIGludGVnZXIpOworQ1JFQVRFIFZBUklBQkxFIHZfYWIgQVMgYWI7CitDUkVB VEUgVEFCTEUgdl9hYiAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworSU5TRVJUIElOVE8gdl9hYiBW QUxVRVMoMTAsMjApOworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9N IHZfYWI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworQ1JFQVRFIFNDSEVNQSB2X2FiOwor Q1JFQVRFIFZBUklBQkxFIHZfYWIuYSBBUyBpbnRlZ2VyOworLS0gd2Ugc2hvdWxkIHNlZSB0YWJs ZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKwor RFJPUCBWQVJJQUJMRSB2X2FiOworRFJPUCBUQUJMRSB2X2FiOworRFJPUCBUWVBFIGFiOworRFJP UCBWQVJJQUJMRSB2X2FiLmE7CitEUk9QIFNDSEVNQSB2X2FiOworQ1JFQVRFIFRZUEUgdF9hbV90 eXBlIEFTIChiIGludCk7CitDUkVBVEUgU0NIRU1BIHh4eF9hbTsKK1NFVCBzZWFyY2hfcGF0aCBU TyBwdWJsaWM7CitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1fdHlwZTsKK0xFVCB4eHhf YW0gPSBST1coMTApOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgeHh4X2FtOworIHh4eF9hbSAK Ky0tLS0tLS0tCisgKDEwKQorKDEgcm93KQorCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtLmIgQVMg aW50OworTEVUIDoiREJOQU1FIi54eHhfYW0uYiA9IDIwOworLS0gc2hvdWxkIGJlIHN0aWxsIG9r CitTRUxFQ1QgeHh4X2FtOworIHh4eF9hbSAKKy0tLS0tLS0tCisgKDEwKQorKDEgcm93KQorCist LSBzaG91bGQgZmFpbCwgdGhlIHJlZmVyZW5jZSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1Qg eHh4X2FtLmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlICJ4eHhfYW0uYiIg aXMgYW1iaWd1b3VzCitMSU5FIDE6IFNFTEVDVCB4eHhfYW0uYjsKKyAgICAgICAgICAgICAgIF4K Ky0tIGVuaGFuY2VkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLnh4eF9h bS5iOworIGIgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2Ft LmI7CisgYiAgCistLS0tCisgMjAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIHh4eF9hbShiICBp bnQpOworSU5TRVJUIElOVE8geHh4X2FtIFZBTFVFUygxMCk7CistLSB3ZSBzaG91bGQgc2VlIHRh YmxlCitTRUxFQ1QgeHh4X2FtLmIgRlJPTSB4eHhfYW07CisgYiAgCistLS0tCisgMTAKKygxIHJv dykKKworU0VMRUNUIHguYiBGUk9NIHh4eF9hbSB4OworIGIgIAorLS0tLQorIDEwCisoMSByb3cp CisKK0RST1AgVEFCTEUgeHh4X2FtOworRFJPUCBWQVJJQUJMRSBwdWJsaWMueHh4X2FtOworRFJP UCBWQVJJQUJMRSB4eHhfYW0uYjsKK0RST1AgU0NIRU1BIHh4eF9hbTsKK0NSRUFURSBTQ0hFTUEg OiJEQk5BTUUiOworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUi IEFTIHRfYW1fdHlwZTsKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmIgQVMg aW50OworU0VUIHNlYXJjaF9wYXRoIFRPIDoiREJOQU1FIjsKKy0tIHNob3VsZCBiZSBhbWJpZ3Vv dXMKK1NFTEVDVCA6IkRCTkFNRSIuYjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVu Y2UgInJlZ3Jlc3Npb24uYiIgaXMgYW1iaWd1b3VzCitMSU5FIDE6IFNFTEVDVCAicmVncmVzc2lv biIuYjsKKyAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMgdG9vCitTRUxF Q1QgOiJEQk5BTUUiLjoiREJOQU1FIi5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVy ZW5jZSAicmVncmVzc2lvbi5yZWdyZXNzaW9uLmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxF Q1QgInJlZ3Jlc3Npb24iLiJyZWdyZXNzaW9uIi5iOworICAgICAgICAgICAgICAgXgorQ1JFQVRF IFRBQkxFIDoiREJOQU1FIihiIGludCk7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCA6IkRCTkFN RSIuYiBGUk9NIDoiREJOQU1FIjsKKyBiIAorLS0tCisoMCByb3dzKQorCitEUk9QIFRBQkxFIDoi REJOQU1FIjsKK0RST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iOworRFJPUCBWQVJJ QUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKK0RST1AgU0NIRU1BIDoiREJOQU1F IjsKK1JFU0VUIHNlYXJjaF9wYXRoOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsCmluZGV4IDgyNjc5Y2JmNDhlLi42NDQ1NDc5ZDIyZCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtNTksMyArNTksNjQyIEBAIERST1Ag VkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKIERST1AgU0NIRU1BIHN2YXJ0ZXN0OwogRFJPUCBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI7CisKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfbm9vd25l cjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiBzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQk IExBTkdVQUdFIHNxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZnhfc2QoaW50 KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWwgU0VD VVJJVFkgREVGSU5FUjsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KGlu dCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5H VUFHRSBwbHBnc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZnhfc2Qo aW50KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExB TkdVQUdFIHBscGdzcWwgU0VDVVJJVFkgREVGSU5FUjsKKworTEVUIHZhcjEgPSAxMDsKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VMRUNUIHNxbGZ4 X3NkKDIwKTsKK1NFTEVDVCBwbHBnc3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7 CisKKy0tIHNob3VsZCBmYWlsCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CisKK1NFTEVD VCB2YXIxOworU0VMRUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBwbHBnc3FsZngoMjApOworCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCBzcWxmeF9zZCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIw KTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIx IFRPIHJlZ3Jlc3Nfbm9vd25lcjsKKworLS0gc2hvdWxkIGJlIG9rCitTRVQgUk9MRSBUTyByZWdy ZXNzX25vb3duZXI7CisKK1NFTEVDVCB2YXIxOworU0VMRUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBw bHBnc3FsZngoMjApOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIx OworRFJPUCBGVU5DVElPTiBzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoaW50 KTsKK0RST1AgRlVOQ1RJT04gc3FsZnhfc2QoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4 X3NkKGludCk7CisKK0RST1AgUk9MRSByZWdyZXNzX25vb3duZXI7CisKKy0tIHVzZSB2YXJpYWJs ZXMgaW5zaWRlIHZpZXdzCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworCistLSB1 c2UgdmFyaWFibGVzIGluIHZpZXdzCitDUkVBVEUgVklFVyB0ZXN0X3ZpZXcgQVMgU0VMRUNUIENP QUxFU0NFKHZhcjEgKyB2LCAwKSBBUyByZXN1bHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwyKSBn KHYpOworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1Qg KiBGUk9NIHRlc3RfdmlldzsKKworLS0gc3RhcnQgYSBuZXcgc2Vzc2lvbgorXGMKKworU0VMRUNU ICogRlJPTSB0ZXN0X3ZpZXc7CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9NIHRlc3Rf dmlldzsKKworLS0gc2hvdWxkIGZhaWwsIGRlcGVuZGVuY3kKK0RST1AgVkFSSUFCTEUgdmFyMTsK KworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIHZhcjEgQ0FTQ0FERTsKKworQ1JFQVRF IFZBUklBQkxFIHZhcjEgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIHRleHQ7CisKKy0tIHVz ZSB2YXJpYWJsZXMgaW4gU1FMIGZ1bmN0aW9ucworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g c3FsZngxKHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjEgfHwgJywg JyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNx bGZ4MiggdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMiB8fCAnLCAn IHx8ICQxICQkIExBTkdVQUdFIHNxbDsKKworTEVUIHZhcjEgPSAnc3RyMSc7CitMRVQgdmFyMiA9 ICdzdHIyJzsKKworU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworCistLSBpbmxpbmlu ZyBpcyBibG9ja2VkCitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFNFTEVDVCBzcWxmeDEo c3FsZngyKCdIZWxsbycpKTsKKworRFJPUCBGVU5DVElPTiBzcWxmeDEodmFyY2hhcik7CitEUk9Q IEZVTkNUSU9OIHNxbGZ4Mih2YXJjaGFyKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFS SUFCTEUgdmFyMjsKKworLS0gYWNjZXNzIGZyb20gY2FjaGVkIHBsYW5zIHNob3VsZCB3b3JrCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lOIFJFVFVSTiB2YXIx OyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworc2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBmb3Jj ZV9nZW5lcmljX3BsYW47CisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsK K0xFVCB2YXIxID0gMy4xNCAqIDI7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworLS0gZGVwZW5kZW5jeSAocGxhbiBpbnZhbGlkYXRpb24pIHNob3VsZCB3b3Jr CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworCitMRVQgdmFyMSA9IDMuMTQgKiAz OworU0VMRUNUIHBscGdzcWxmeCgpOworTEVUIHZhcjEgPSAzLjE0ICogNDsKK1NFTEVDVCBwbHBn c3FsZngoKTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngo KTsKKworc2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworCistLSB1c2FnZSBMRVQgc3Rh dGVtZW50IGluIHBscGdzcWwgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGludDsK K0NSRUFURSBWQVJJQUJMRSB2YXIyIG51bWVyaWNbXTsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2 YXIyID0gJ3t9Jzo6aW50W107CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFy MSA9IGk7CisgICAgTEVUIHZhcjJbdmFyMV0gPSBpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9U SUNFICdyZXN1bHQgYXJyYXk6ICUnLCB2YXIyOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFCTEUg dmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKworLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1 cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJs ZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2IGludDsKKworQ1JF QVRFIFBST0NFRFVSRSBwKGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFy ZzsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisKKy0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBp cyBub3Qgc3VwcG9ydGVkIHlldCkKK0NBTEwgcCh2KTsKKworRE8gJCQgQkVHSU4gQ0FMTCBwKHYp OyBFTkQgJCQ7CisKK0RST1AgUFJPQ0VEVVJFIHAoaW50KTsKK0RST1AgVkFSSUFCTEUgdjsKKwor LS0gRVhFQ1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRp cmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IK K0NSRUFURSBWQVJJQUJMRSB2IGludDsKK0xFVCB2ID0gMjA7CitQUkVQQVJFIHB0ZXN0KGludCkg QVMgU0VMRUNUICQxOworCistLSBzaG91bGQgZmFpbAorRVhFQ1VURSBwdGVzdCh2KTsKKworREVB TExPQ0FURSBwdGVzdDsKK0RST1AgVkFSSUFCTEUgdjsKKworLS0gdGVzdCBzZWFyY2ggcGF0aAor Q1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFT IG51bWVyaWM7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IHBpKCk7CitTRUxFQ1QgdmFy MTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3QudmFyMSA9IHBpKCk7CitTRUxFQ1Qg c3ZhcnRlc3QudmFyMTsKKworU0VUIHNlYXJjaF9wYXRoIFRPIHN2YXJ0ZXN0OworCistLSBzaG91 bGQgYmUgb2sKK0xFVCB2YXIxID0gcGkoKSArIDEwOworU0VMRUNUIHZhcjE7CisKK1JFU0VUIHNl YXJjaF9wYXRoOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdGV4dDsKKworLS0gdmFyaWFibGVzIGNhbiBiZSB1cGRhdGVkIHVuZGVyIFJP IHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFVCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitMRVQgdmFy MSA9ICdoZWxsbyc7CitDT01NSVQ7CisKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZh cjE7CisKKy0tIHRlc3Qgb2YgZG9tYWlucworQ1JFQVRFIERPTUFJTiBpbnRfZG9tYWluIEFTIGlu dCBOT1QgTlVMTCBDSEVDSyAoVkFMVUUgPiAxMDApOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50X2RvbWFpbjsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQg YmUgb2sKK0xFVCB2YXIxID0gMTAwMDsKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgZmFpbAor TEVUIHZhcjEgPSAxMDsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKKworLS0g bm90ZSAtIGRvbWFpbiBkZWZhdWx0cyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQgKGxpa2UgUExwZ1NR TCkKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBET01BSU4gaW50X2RvbWFpbjsKKworLS0g dGhlIGV4cHJlc3Npb24gc2hvdWxkIHJlbWFpbiAidW5rbm93biIKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludDRtdWx0aXJhbmdlW107CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVM TDsKK0xFVCB2YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOwor TEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwxMDApfSc7CitTRUxFQ1QgdmFyMTsKKworLS1JdCBz aG91bGQgd29yayBpbiBwbHBnc3FsIHRvbworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gTlVM TDsKKyAgTEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7 CisgIExFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworCisgIFJBSVNFIE5PVElDRSAn JScsIHZhcjE7CitFTkQ7CiskJDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgU0NI RU1BIHN2YXJ0ZXN0IENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBDUkVBVEUgVEFCTEUgZm9v KGEgaW50KTsKK0xFVCBzdmFydGVzdC52YXIxID0gMTAwOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7 CisKK1NFVCBzZWFyY2hfcGF0aCB0byBwdWJsaWMsIHN2YXJ0ZXN0OworCitTRUxFQ1QgdmFyMTsK KworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CisKK0xFVCB2YXIxID0gMjsK K0xFVCB2YXIyID0gJ3t9Jzo6aW50W107CisKK0xFVCB2YXIyW3ZhcjFdID0gMDsKKworU0VMRUNU IHZhcjI7CisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CisKK0xFVCB2YXIxID0g MjsKK0xFVCB2YXIyID0gJ3t9Jzo6aW50W107CisKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklB QkxFIHZhcjEsIHZhcjI7CisKKy0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxv d2VkIGluIENURQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworV0lUSCB4IEFTIChMRVQg dmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIx ID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpOworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMik7CitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAwKTsK KworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBjb21wb3NpdGUgdmFyaWFibGVzCitDUkVBVEUg VFlQRSBzdl94eXogQVMgKHggaW50LCB5IGludCwgeiBudW1lcmljKDEwLDIpKTsKKworQ1JFQVRF IFZBUklBQkxFIHYxIEFTIHN2X3h5ejsKK0NSRUFURSBWQVJJQUJMRSB2MiBBUyBzdl94eXo7CisK K0xFVCB2MSA9ICgxLCAyLCAzLjE0KTsKK0xFVCB2MiA9ICgxMCwgMjAsIDMuMTQgKiAxMCk7CisK Ky0tIHNob3VsZCB3b3JrIHRvbyAtIHRoZXJlIGFyZSBwcmVwYXJlZCBjYXN0cworTEVUIHYxID0g KDEsIDIsIDMpOworCitTRUxFQ1QgdjE7CitTRUxFQ1QgdjI7CitTRUxFQ1QgKHYxKS4qOworU0VM RUNUICh2MikuKjsKKworU0VMRUNUIHYxLnggKyB2MS56OworU0VMRUNUIHYyLnggKyB2Mi56Owor CistLSBhY2Nlc3MgdG8gY29tcG9zaXRlIGZpZWxkcyBzaG91bGQgYmUgc2FmZSB0b28KK0NSRUFU RSBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJf dGVzdF9yb2xlOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHYyLng7CisKK1NFVCBST0xFIFRP IERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFZBUklBQkxFIHYyOworRFJPUCBU WVBFIHN2X3h5ejsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKK0NSRUFURSBU WVBFIHQxIEFTIChhIGludCwgYiBudW1lcmljLCBjIHRleHQpOworCitDUkVBVEUgVkFSSUFCTEUg djEgQVMgdDE7CitMRVQgdjEgPSAoMSwgcGkoKSwgJ2hlbGxvJyk7CitTRUxFQ1QgdjE7CitMRVQg djEuYiA9IDEwLjIyMjI7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBmYWlsLCBhdHRyaWJ1dGUg ZG9lc24ndCBleGlzdAorTEVUIHYxLnggPSAxMDsKKworLS0gc2hvdWxkIGZhaWwsIGRvbid0IGFs bG93IG11bHRpIGNvbHVtbiBxdWVyeQorTEVUIHYxID0gKE5VTEw6OnQxKS4qOworCistLSBhbGxv dyBEUk9QIG9yIEFERCBBVFRSSUJVVEUgb24gY29tcG9zaXRlIHR5cGVzCistLSBzaG91bGQgYmUg b2sKK0FMVEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYzsKK1NFTEVDVCB2MTsKKworLS0gc2hv dWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIEFERCBBVFRSSUJVVEUgYyBpbnQ7CitTRUxFQ1QgdjE7 CisKK0xFVCB2MSA9ICgxMCwgMTAuMywgMjApOworU0VMRUNUIHYxOworCistLSBzaG91bGQgYmUg b2sKK0FMVEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYjsKK1NFTEVDVCB2MTsKKworLS0gc2hv dWxkIGZhaWwsIGRpc2FsbG93IGRhdGEgdHlwZSBjaGFuZ2UKK0FMVEVSIFRZUEUgdDEgQUxURVIg QVRUUklCVVRFIGMgVFlQRSBpbnQ7CisKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFRZUEUgdDE7 CisKKy0tIHRoZSB0YWJsZSB0eXBlIGNhbiBiZSB1c2VkIGFzIGNvbXBvc2l0ZSB0eXBlIHRvbwor Q1JFQVRFIFRBQkxFIHN2YXJfdGVzdChhIGludCwgYiBudW1lcmljLCBjIGRhdGUpOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgc3Zhcl90ZXN0OworCitMRVQgdmFyMSA9ICgxMCwgcGkoKSwgJzIw MjMtMDUtMjYnKTsKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgZmFpbCBkdWUgZGVwZW5kZW5j eQorQUxURVIgVEFCTEUgc3Zhcl90ZXN0IEFMVEVSIENPTFVNTiBhIFRZUEUgdGV4dDsKKworLS0g c2hvdWxkIGZhaWwKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworCitEUk9QIFZBUklBQkxFIHZhcjE7 CitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKKworLS0gYXJyYXlzIGFyZSBzdXBwb3J0ZWQKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWNbXTsKK0xFVCB2YXIxID0gQVJSQVlbMS4xLDIuMV07 CitMRVQgdmFyMVsxXSA9IDEwLjE7CitTRUxFQ1QgdmFyMTsKKworLS0gTEVUIHRhcmdldCBkb2Vz bid0IGFsbG93IHNyZiwgc2hvdWxkIGZhaWwKK0xFVCB2YXIxW2dlbmVyYXRlX3NlcmllcygxLDMp XSA9IDEwMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBhcnJheXMgaW5zaWRlIGNvbXBv c2l0ZQorQ1JFQVRFIFRZUEUgdDEgQVMgKGEgbnVtZXJpYywgYiBudW1lcmljW10pOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgdDE7CitMRVQgdmFyMSA9ICgxMC4xLCBBUlJBWVswLjAsIDAuMF0p OworTEVUIHZhcjEuYSA9IDEwLjI7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmJbMV0gPSAxMC4z OworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0MTsKKwor LS0gRW5jb3VyYWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nv c3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90 YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIg PSAyOworCistLSB0ZXN0IG9uIHF1ZXJ5IHdpdGggd29ya2VycworQ1JFQVRFIFRBQkxFIHN2YXJf dGVzdChhIGludCk7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgU0VMRUNUICogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwxMDAwKTsKK0FOQUxZWkUgc3Zhcl90ZXN0OworQ1JFQVRFIFZBUklBQkxFIHpl cm8gaW50OworTEVUIHplcm8gPSAwOworCistLSByZXN1bHQgc2hvdWxkIGJlIDEwMAorU0VMRUNU IGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworCistLSBwYXJhbGxl bCBleGVjdXRpb24gaXMgbm90IHN1cHBvcnRlZCB5ZXQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworCitMRVQgemVy byA9IChTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QpOworCistLSByZXN1bHQgc2hvdWxk IGJlIDEwMDAKK1NFTEVDVCB6ZXJvOworCitEUk9QIFZBUklBQkxFIHplcm87CitEUk9QIFRBQkxF IHN2YXJfdGVzdDsKKworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVs X3R1cGxlX2Nvc3Q7CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQg bWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKKworLS0gdGhlIHJlc3VsdCBvZiB2aWV3 IHNob3VsZCBiZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUgdG9vCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworCitDUkVBVEUgVklFVyB2YXIxdmlldyBBUyBTRUxF Q1QgQ09BTEVTQ0UodmFyMSwgMCkgQVMgcmVzdWx0OworCitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3 OworCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb247CisKK1NFTEVDVCAqIEZST00gdmFy MXZpZXc7CisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvZmY7CisKK0RST1AgVklFVyB2 YXIxdmlldzsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcmlkIGlu dDsKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoaWQgaW50LCB2IGludCk7CisKK0xFVCB2YXJpZCA9 IDE7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgVkFMVUVTKHZhcmlkLCAxMDApOworU0VMRUNUICog RlJPTSBzdmFyX3Rlc3Q7CitVUERBVEUgc3Zhcl90ZXN0IFNFVCB2ID0gMjAwIFdIRVJFIGlkID0g dmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKK0RFTEVURSBGUk9NIHN2YXJfdGVzdCBX SEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisKK0RST1AgVEFCTEUg c3Zhcl90ZXN0OworRFJPUCBWQVJJQUJMRSB2YXJpZDsKKworCistLSB2aXNpYmlsaXR5IGNoZWNr CistLSB2YXJpYWJsZXMgc2hvdWxkIGJlIHNoYWRvd2VkIGFsd2F5cworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgdGV4dDsKK1NFTEVDVCB2YXIxLnJlbG5hbWUgRlJPTSBwZ19jbGFzcyB2YXIxIFdI RVJFIHZhcjEucmVsbmFtZSA9ICdwZ19jbGFzcyc7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKwor Q1JFQVRFIFRBQkxFIHh4dGFiKGF2YXIgaW50KTsKKworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVT KDMzMyk7CisKK0NSRUFURSBUWVBFIHh4dHlwZSBBUyAoYXZhciBpbnQpOworCitDUkVBVEUgVkFS SUFCTEUgeHh0YWIgQVMgeHh0eXBlOworCitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMTApOwor CistLSBpdCBpcyBhbWJpZ3VvdXMsIGJ1dCBjb2x1bW5zIGFyZSBwcmVmZXJyZWQKK1NFTEVDVCB4 eHRhYi5hdmFyIEZST00geHh0YWI7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIGF2YXIgRlJP TSB4eHRhYjsKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5hdmFyIEFTIGludDsKKworLS0gc2hv dWxkIGJlIG9rLCBzZWUgdGhlIHRhYmxlCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMuYXZhciBGUk9NIHh4dGFiOworCitEUk9QIFZBUklB QkxFIHh4dGFiOworCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworCitEUk9QIFZBUklB QkxFIHB1YmxpYy5hdmFyOworCitEUk9QIFRZUEUgeHh0eXBlOworCitEUk9QIFRBQkxFIHh4dGFi OworCistLSBUaGUgdmFyaWFibGUgY2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxlIG9yIGJ5IGFsaWFz CitDUkVBVEUgVFlQRSBwdWJsaWMuc3Zhcl90eXBlIEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsK K0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuc3ZhciBBUyBwdWJsaWMuc3Zhcl90eXBlOworCitDUkVB VEUgVEFCTEUgcHVibGljLnN2YXIoYSBpbnQsIGIgaW50KTsKKworSU5TRVJUIElOVE8gcHVibGlj LnN2YXIgVkFMVUVTKDEwLCAyMCk7CisKK0xFVCBwdWJsaWMuc3ZhciA9ICgxMDAsIDIwMCwgMzAw KTsKKworLS0gc2hvdWxkIGJlIG9rCistLSBzaG93IHRhYmxlCitTRUxFQ1QgKiBGUk9NIHB1Ymxp Yy5zdmFyOworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuKiBG Uk9NIHB1YmxpYy5zdmFyOworCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7 CitTRUxFQ1QgcHVibGljLnN2YXIuYzsKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisKKy0tIHRo ZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5j IEZST00gcHVibGljLnN2YXI7CisKKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1 YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworCitTRUxFQ1Qgc3Zhci5hIEZST00gcHVi bGljLnN2YXI7CitTRUxFQ1Qgc3Zhci4qIEZST00gcHVibGljLnN2YXI7CisKKy0tIHNob3cgdmFy aWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBwdWJsaWMuc3Zhci5jOworU0VMRUNU IChwdWJsaWMuc3ZhcikuKjsKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBl cnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gY2FuIGJl IGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7 CisKK0RST1AgVkFSSUFCTEUgcHVibGljLnN2YXI7CitEUk9QIFRBQkxFIHB1YmxpYy5zdmFyOwor RFJPUCBUWVBFIHB1YmxpYy5zdmFyX3R5cGU7CisKK0NSRUFURSBUWVBFIGFiIEFTIChhIGludGVn ZXIsIGIgaW50ZWdlcik7CisKK0NSRUFURSBWQVJJQUJMRSB2X2FiIEFTIGFiOworCitDUkVBVEUg VEFCTEUgdl9hYiAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworSU5TRVJUIElOVE8gdl9hYiBWQUxV RVMoMTAsMjApOworCistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00g dl9hYjsKKworQ1JFQVRFIFNDSEVNQSB2X2FiOworCitDUkVBVEUgVkFSSUFCTEUgdl9hYi5hIEFT IGludGVnZXI7CisKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2 X2FiOworCitEUk9QIFZBUklBQkxFIHZfYWI7CitEUk9QIFRBQkxFIHZfYWI7CitEUk9QIFRZUEUg YWI7CitEUk9QIFZBUklBQkxFIHZfYWIuYTsKK0RST1AgU0NIRU1BIHZfYWI7CisKK0NSRUFURSBU WVBFIHRfYW1fdHlwZSBBUyAoYiBpbnQpOworQ1JFQVRFIFNDSEVNQSB4eHhfYW07CisKK1NFVCBz ZWFyY2hfcGF0aCBUTyBwdWJsaWM7CisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0gQVMgdF9hbV90 eXBlOworTEVUIHh4eF9hbSA9IFJPVygxMCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHh4 eF9hbTsKKworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbS5iIEFTIGludDsKK0xFVCA6IkRCTkFNRSIu eHh4X2FtLmIgPSAyMDsKKworLS0gc2hvdWxkIGJlIHN0aWxsIG9rCitTRUxFQ1QgeHh4X2FtOwor CistLSBzaG91bGQgZmFpbCwgdGhlIHJlZmVyZW5jZSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxF Q1QgeHh4X2FtLmI7CisKKy0tIGVuaGFuY2VkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIG9rCitTRUxF Q1QgcHVibGljLnh4eF9hbS5iOworU0VMRUNUIDoiREJOQU1FIi54eHhfYW0uYjsKKworQ1JFQVRF IFRBQkxFIHh4eF9hbShiICBpbnQpOworSU5TRVJUIElOVE8geHh4X2FtIFZBTFVFUygxMCk7CisK Ky0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB4eHhfYW0uYiBGUk9NIHh4eF9hbTsKK1NF TEVDVCB4LmIgRlJPTSB4eHhfYW0geDsKKworRFJPUCBUQUJMRSB4eHhfYW07CitEUk9QIFZBUklB QkxFIHB1YmxpYy54eHhfYW07CitEUk9QIFZBUklBQkxFIHh4eF9hbS5iOworRFJPUCBTQ0hFTUEg eHh4X2FtOworCitDUkVBVEUgU0NIRU1BIDoiREJOQU1FIjsKKworQ1JFQVRFIFZBUklBQkxFIDoi REJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiIEFTIHRfYW1fdHlwZTsKK0NSRUFURSBWQVJJQUJM RSA6IkRCTkFNRSIuOiJEQk5BTUUiLmIgQVMgaW50OworCitTRVQgc2VhcmNoX3BhdGggVE8gOiJE Qk5BTUUiOworCistLSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgOiJEQk5BTUUiLmI7CisK Ky0tIHNob3VsZCBiZSBhbWJpZ3VvdXMgdG9vCitTRUxFQ1QgOiJEQk5BTUUiLjoiREJOQU1FIi5i OworCitDUkVBVEUgVEFCTEUgOiJEQk5BTUUiKGIgaW50KTsKKworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgOiJEQk5BTUUiLmIgRlJPTSA6IkRCTkFNRSI7CisKK0RST1AgVEFCTEUgOiJEQk5BTUUi OworCitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0RST1AgVkFSSUFCTEUg OiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CitEUk9QIFNDSEVNQSA6IkRCTkFNRSI7CisK K1JFU0VUIHNlYXJjaF9wYXRoOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA1YjFlNzcy ZjYzZC4uYmJmYWFiNTcwODMgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0xNDk4LDYg KzE0OTgsNyBAQCBMYXJnZU9iamVjdERlc2MKIExhdGNoCiBMYXVuY2hlckxhc3RTdGFydFRpbWVz RW50cnkKIExlcnBGdW5jCitMZXRTdG10CiBMZXhEZXNjcgogTGV4ZW1lRW50cnkKIExleGVtZUhh c2hLZXkKQEAgLTI2MDEsNiArMjYwMiw3IEBAIFNlcmlhbGl6ZWRUcmFuc2FjdGlvblN0YXRlCiBT ZXNzaW9uCiBTZXNzaW9uQmFja3VwU3RhdGUKIFNlc3Npb25FbmRUeXBlCitTZXNzaW9uVmFyaWFi bGVWYWx1ZQogU2V0Q29uc3RyYWludFN0YXRlCiBTZXRDb25zdHJhaW50U3RhdGVEYXRhCiBTZXRD b25zdHJhaW50VHJpZ2dlckRhdGEKQEAgLTI3OTEsNiArMjc5Myw5IEBAIFN1cHBvcnRSZXF1ZXN0 Um93cwogU3VwcG9ydFJlcXVlc3RTZWxlY3Rpdml0eQogU3VwcG9ydFJlcXVlc3RTaW1wbGlmeQog U3VwcG9ydFJlcXVlc3RXRnVuY01vbm90b25pYworU1ZhcmlhYmxlCitTVmFyaWFibGVEYXRhCitT VmFyaWFibGVTdGF0ZQogU3luCiBTeW5jT3BzCiBTeW5jUmVwQ29uZmlnRGF0YQotLSAKMi40Ny4w Cgo= --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename*0=v20241113-0003-function-pg_session_variables-for-cleaning.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0003-function-pg_session_variables-for-cleaning.patch"; charset="UTF-8" RnJvbSBmNjJlY2ZhMjc1YjNkZWJmOWE3ODE4ODlmNWNjMmQ3YTRlZWMwMmY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIHYy MDI0MTExMyAwMy8yMF0gZnVuY3Rpb24gcGdfc2Vzc2lvbl92YXJpYWJsZXMgZm9yIGNsZWFuaW5n CiB0ZXN0cwoKVGhpcyBpcyBhIGZ1bmN0aW9uIGRlc2lnbmVkIGZvciB0ZXN0aW5nIGFuZCBkZWJ1 Z2dpbmcuICBJdCByZXR1cm5zIHRoZQpjb250ZW50IG9mIHNlc3Npb252YXJzIGFzLWlzLCBhbmQg Y2FuIHRoZXJlZm9yZSBkaXNwbGF5IGVudHJpZXMgYWJvdXQKc2Vzc2lvbiB2YXJpYWJsZXMgdGhh dCB3ZXJlIGRyb3BwZWQgYnV0IGZvciB3aGljaCB0aGlzIGJhY2tlbmQgZGlkbid0CnByb2Nlc3Mg dGhlIHNoYXJlZCBpbnZhbGlkYXRpb25zIHlldC4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgfCAgOCArKysKIDIgZmlsZXMgY2hhbmdl ZCwgMTAwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKaW5kZXggNTQ4ZDk4MzVjMGQuLjEzYWI5NTc1ZmE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCkBAIC01NjksMyArNTY5LDk1IEBAIEV4ZWN1dGVMZXRTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwKIAogCVBvcEFjdGl2ZVNuYXBzaG90KCk7CiB9CisKKy8qCisgKiBw Z19zZXNzaW9uX3ZhcmlhYmxlcyAtIGRlc2lnbmVkIGZvciB0ZXN0aW5nCisgKgorICogVGhpcyBp cyBhIGZ1bmN0aW9uIGRlc2lnbmVkIGZvciB0ZXN0aW5nIGFuZCBkZWJ1Z2dpbmcuICBJdCByZXR1 cm5zIHRoZQorICogY29udGVudCBvZiBzZXNzaW9uIHZhcmlhYmxlcyBhcy1pcywgYW5kIGNhbiB0 aGVyZWZvcmUgZGlzcGxheSBkYXRhIGFib3V0CisgKiBzZXNzaW9uIHZhcmlhYmxlcyB0aGF0IHdl cmUgZHJvcHBlZCwgYnV0IGZvciB3aGljaCB0aGlzIGJhY2tlbmQgZGlkbid0CisgKiBwcm9jZXNz IHRoZSBzaGFyZWQgaW52YWxpZGF0aW9ucyB5ZXQuCisgKi8KK0RhdHVtCitwZ19zZXNzaW9uX3Zh cmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQoreworI2RlZmluZSBOVU1fUEdfU0VTU0lPTl9WQVJJ QUJMRVNfQVRUUyA4CisKKwlJbml0TWF0ZXJpYWxpemVkU1JGKGZjaW5mbywgMCk7CisKKwlpZiAo c2Vzc2lvbnZhcnMpCisJeworCQlSZXR1cm5TZXRJbmZvICpyc2luZm8gPSAoUmV0dXJuU2V0SW5m byAqKSBmY2luZm8tPnJlc3VsdGluZm87CisJCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJCVNW YXJpYWJsZQlzdmFyOworCisJCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vzc2lvbnZhcnMpOwor CisJCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVzKSkg IT0gTlVMTCkKKwkJeworCQkJRGF0dW0JCXZhbHVlc1tOVU1fUEdfU0VTU0lPTl9WQVJJQUJMRVNf QVRUU107CisJCQlib29sCQludWxsc1tOVU1fUEdfU0VTU0lPTl9WQVJJQUJMRVNfQVRUU107CisJ CQlIZWFwVHVwbGUJdHA7CisJCQlib29sCQl2YXJfaXNfdmFsaWQgPSBmYWxzZTsKKworCQkJbWVt c2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCQkJbWVtc2V0KG51bGxzLCAwLCBzaXpl b2YobnVsbHMpKTsKKworCQkJdmFsdWVzWzBdID0gT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJp ZCk7CisJCQl2YWx1ZXNbM10gPSBPYmplY3RJZEdldERhdHVtKHN2YXItPnR5cGlkKTsKKworCQkJ LyoKKwkJCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3Bw ZWQgZnJvbSB0aGUKKwkJCSAqIGNhdGFsb2csIGJ1dCBub3QgeWV0IHB1cmdlZCBmcm9tIHRoZSBo YXNoIHRhYmxlLgorCQkJICovCisJCQl0cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwg T2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCkpOworCisJCQlpZiAoSGVhcFR1cGxlSXNWYWxp ZCh0cCkpCisJCQl7CisJCQkJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtID0gKEZvcm1fcGdfdmFy aWFibGUpIEdFVFNUUlVDVCh0cCk7CisKKwkJCQkvKgorCQkJCSAqIEl0IGlzIGFsc28gcG9zc2li bGUgdGhhdCBhIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYW5kCisJCQkJICogc29tZW9uZSBj cmVhdGVkIGEgbmV3IHZhcmlhYmxlIHdpdGggdGhlIHNhbWUgb2JqZWN0IElELiAgVXNlCisJCQkJ ICogdGhlIGNhdGFsb2cgaW5mb3JtYXRpb24gb25seSBpZiB0aGF0IGlzIG5vdCB0aGUgY2FzZS4K KwkJCQkgKi8KKwkJCQlpZiAoc3Zhci0+Y3JlYXRlX2xzbiA9PSB2YXJmb3JtLT52YXJjcmVhdGVf bHNuKQorCQkJCXsKKwkJCQkJdmFsdWVzWzFdID0gQ1N0cmluZ0dldFRleHREYXR1bSgKKwkJCQkJ CQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUodmFyZm9ybS0+dmFybmFtZXNwYWNlKSk7CisKKwkJ CQkJdmFsdWVzWzJdID0gQ1N0cmluZ0dldFRleHREYXR1bShOYW1lU3RyKHZhcmZvcm0tPnZhcm5h bWUpKTsKKwkJCQkJdmFsdWVzWzRdID0gQ1N0cmluZ0dldFRleHREYXR1bShmb3JtYXRfdHlwZV9i ZShzdmFyLT50eXBpZCkpOworCQkJCQl2YWx1ZXNbNV0gPSBCb29sR2V0RGF0dW0oZmFsc2UpOwor CisJCQkJCXZhbHVlc1s2XSA9IEJvb2xHZXREYXR1bSgKKwkJCQkJCQkJCQkJIG9iamVjdF9hY2xj aGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHN2YXItPnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJIEdl dFVzZXJJZCgpLCBBQ0xfU0VMRUNUKSA9PSBBQ0xDSEVDS19PSyk7CisKKwkJCQkJdmFsdWVzWzdd ID0gQm9vbEdldERhdHVtKAorCQkJCQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVs YXRpb25JZCwgc3Zhci0+dmFyaWQsCisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFDTF9V UERBVEUpID09IEFDTENIRUNLX09LKTsKKworCQkJCQl2YXJfaXNfdmFsaWQgPSB0cnVlOworCQkJ CX0KKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJCQl9CisKKwkJCS8qIGlmIHRoZXJlIGlz IG5vIG1hdGNoaW5nIGNhdGFsb2cgZW50cnksIHJldHVybiBudWxsIHZhbHVlcyAqLworCQkJaWYg KCF2YXJfaXNfdmFsaWQpCisJCQl7CisJCQkJbnVsbHNbMV0gPSB0cnVlOworCQkJCW51bGxzWzJd ID0gdHJ1ZTsKKwkJCQludWxsc1s0XSA9IHRydWU7CisJCQkJdmFsdWVzWzVdID0gQm9vbEdldERh dHVtKHRydWUpOworCQkJCW51bGxzWzZdID0gdHJ1ZTsKKwkJCQludWxsc1s3XSA9IHRydWU7CisJ CQl9CisKKwkJCXR1cGxlc3RvcmVfcHV0dmFsdWVzKHJzaW5mby0+c2V0UmVzdWx0LCByc2luZm8t PnNldERlc2MsIHZhbHVlcywgbnVsbHMpOworCQl9CisJfQorCisJcmV0dXJuIChEYXR1bSkgMDsK K30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDQxZjExMjFkMTlmLi5lOTQzYTc0ODQ2ZiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMjQwNSw0ICsxMjQwNSwxMiBAQAogICBwcm9h cmd0eXBlcyA9PiAnaW50MicsCiAgIHByb3NyYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScg fSwKIAorIyBTZXNzaW9uIHZhcmlhYmxlcyBzdXBwb3J0Cit7IG9pZCA9PiAnODQ4OCcsIGRlc2Ny ID0+ICdsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19z ZXNzaW9uX3ZhcmlhYmxlcycsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAor ICBwcm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAn cmVjb3JkJywKKyAgcHJvYXJndHlwZXMgPT4gJycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLHRl eHQsdGV4dCxvaWQsdGV4dCxib29sLGJvb2wsYm9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28s byxvLG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne3ZhcmlkLHNjaGVtYSxuYW1lLHR5 cGlkLHR5cG5hbWUscmVtb3ZlZCxjYW5fc2VsZWN0LGNhbl91cGRhdGV9JywKKyAgcHJvc3JjID0+ ICdwZ19zZXNzaW9uX3ZhcmlhYmxlcycgfSwKIF0KLS0gCjIuNDcuMAoK --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename="v20241113-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0004-DISCARD-VARIABLES.patch"; charset="UTF-8" RnJvbSAxNTk3MzVlOTc3OWFkOGM5YWUwODk4NjIwMWIwNDNkZTU0Y2I2MmY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIHYy MDI0MTExMyAwNC8yMF0gRElTQ0FSRCBWQVJJQUJMRVMKCkltcGxlbWVudGF0aW9uIG9mIERJU0NB UkQgVkFSSUFCTEVTIGNvbW1hbmRzIGJ5IHJlbW92aW5nIGhhc2ggdGFibGUgd2l0aCBzZXNzaW9u IHZhcmlhYmxlcwphbmQgcmVzZXR0aW5nIHJlbGF0ZWQgbWVtb3J5IGNvbnRleHQuCi0tLQogZG9j L3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwgICAgICAgICAgICAgICAgIHwgMTMgKysrLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jICAgICAgICAgICAgICAgIHwgIDYgKysKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDI4ICsrKysrKysrLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysKIHNy Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAzICsKIHNyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgMiArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS90 Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA2MyArKysrKysrKysrKysrKysrKysrCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAzNiArKysrKysr KysrKwogMTEgZmlsZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Rpc2NhcmQuc2dtbAppbmRleCBiZjQ0YzUyM2NhYy4uNjFiOTY3ZjljOWIgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvZGlzY2FyZC5zZ21sCkBAIC0yMSw3ICsyMSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlv bgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotRElTQ0FSRCB7IEFMTCB8IFBMQU5T IHwgU0VRVUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CitESVNDQVJEIHsgQUxMIHwgUExBTlMg fCBTRVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KIDwvc3lub3BzaXM+ CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtNjYsNiArNjYsMTYgQEAgRElTQ0FSRCB7IEFMTCB8 IFBMQU5TIHwgU0VRVUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CiAgICAgPC9saXN0aXRlbT4K ICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRl cmFsPlZBUklBQkxFUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFJlc2V0cyB0aGUgdmFsdWUgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzLiBJZiBh IHZhcmlhYmxlCisgICAgICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRv IDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRl cmFsPlRFTVBPUkFSWTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+VEVNUDwvbGl0ZXJhbD48L3Rlcm0+ CiAgICAgPGxpc3RpdGVtPgpAQCAtOTMsNiArMTAzLDcgQEAgU0VMRUNUIHBnX2Fkdmlzb3J5X3Vu bG9ja19hbGwoKTsKIERJU0NBUkQgUExBTlM7CiBESVNDQVJEIFRFTVA7CiBESVNDQVJEIFNFUVVF TkNFUzsKK0RJU0NBUkQgVkFSSUFCTEVTOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgICAg PC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZGlzY2FyZC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCmluZGV4 IDkyZDk4M2FjNzQ4Li5kMDZlYmFiYTZmNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZGlzY2FyZC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwpAQCAtMTgs NiArMTgsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGlzY2FyZC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKKyNpbmNsdWRlICJj b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2Uu aCIKICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9wb3J0YWwuaCIKQEAg LTQ4LDYgKzQ5LDEwIEBAIERpc2NhcmRDb21tYW5kKERpc2NhcmRTdG10ICpzdG10LCBib29sIGlz VG9wTGV2ZWwpCiAJCQlSZXNldFRlbXBUYWJsZU5hbWVzcGFjZSgpOwogCQkJYnJlYWs7CiAKKwkJ Y2FzZSBESVNDQVJEX1ZBUklBQkxFUzoKKwkJCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOworCQkJ YnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgRElTQ0FS RCB0YXJnZXQ6ICVkIiwgc3RtdC0+dGFyZ2V0KTsKIAl9CkBAIC03NSw0ICs4MCw1IEBAIERpc2Nh cmRBbGwoYm9vbCBpc1RvcExldmVsKQogCVJlc2V0UGxhbkNhY2hlKCk7CiAJUmVzZXRUZW1wVGFi bGVOYW1lc3BhY2UoKTsKIAlSZXNldFNlcXVlbmNlQ2FjaGVzKCk7CisJUmVzZXRTZXNzaW9uVmFy aWFibGVzKCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXgg MTNhYjk1NzVmYTkuLjY2OGI4MTg5YTZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jCkBAIC05NCw3ICs5NCwxMyBAQCBwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhE YXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQogCiAJZWxvZyhERUJVRzEs ICJwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayAldSAldSIsIGNhY2hlaWQsIGhhc2h2YWx1ZSk7 CiAKLQlBc3NlcnQoc2Vzc2lvbnZhcnMpOworCS8qCisJICogVGhlcmUgaXMgbm8gZ3VhcmFudGVl IG9mIHNlc3Npb24gdmFyaWFibGVzIGJlaW5nIGluaXRpYWxpemVkLCBldmVuIHdoZW4KKwkgKiBy ZWNlaXZpbmcgYW4gaW52YWxpZGF0aW9uIGNhbGxiYWNrLCBhcyBESVNDQVJEIFsgQUxMIHwgVkFS SUFCTEVTIF0KKwkgKiBkZXN0cm95cyB0aGUgaGFzaCB0YWJsZSBlbnRpcmVseS4KKwkgKi8KKwlp ZiAoIXNlc3Npb252YXJzKQorCQlyZXR1cm47CiAKIAkvKgogCSAqIElmIHRoZSBoYXNodmFsdWUg aXMgbm90IHNwZWNpZmllZCwgd2UgaGF2ZSB0byByZWNoZWNrIGFsbCBjdXJyZW50bHkKQEAgLTY2 MSwzICs2NjcsMjMgQEAgcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAog CXJldHVybiAoRGF0dW0pIDA7CiB9CisKKy8qCisgKiBGYXN0IGRyb3Agb2YgdGhlIGNvbXBsZXRl IGNvbnRlbnQgb2YgdGhlIHNlc3Npb24gdmFyaWFibGVzIGhhc2ggdGFibGUsIGFuZAorICogY2xl YW51cCBvZiBhbnkgbGlzdCB0aGF0IHdvdWxkbid0IGJlIHJlbGV2YW50IGFueW1vcmUuCisgKiBU aGlzIGlzIHVzZWQgYnkgdGhlIERJU0NBUkQgVkFSSUFCTEVTIChhbmQgRElTQ0FSRCBBTEwpIGNv bW1hbmQuCisgKi8KK3ZvaWQKK1Jlc2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKQoreworCS8qIGRl c3Ryb3kgaGFzaCB0YWJsZSBhbmQgcmVzZXQgcmVsYXRlZCBtZW1vcnkgY29udGV4dCAqLworCWlm IChzZXNzaW9udmFycykKKwl7CisJCWhhc2hfZGVzdHJveShzZXNzaW9udmFycyk7CisJCXNlc3Np b252YXJzID0gTlVMTDsKKwl9CisKKwkvKiByZWxlYXNlIG1lbW9yeSBhbGxvY2F0ZWQgYnkgc2Vz c2lvbiB2YXJpYWJsZXMgKi8KKwlpZiAoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCAhPSBOVUxMKQor CQlNZW1vcnlDb250ZXh0UmVzZXQoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7Cit9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQppbmRleCA4YWUzNjhjNTEzYy4uYWFkNDczMDVmMjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjA3Nyw3 ICsyMDc3LDEzIEBAIERpc2NhcmRTdG10OgogCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1NFUVVF TkNFUzsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgRElTQ0FSRCBWQVJJQUJM RVMKKwkJCQl7CisJCQkJCURpc2NhcmRTdG10ICpuID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQpOwog CisJCQkJCW4tPnRhcmdldCA9IERJU0NBUkRfVkFSSUFCTEVTOworCQkJCQkkJCA9IChOb2RlICop IG47CisJCQkJfQogCQk7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5 LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCA2OWQyZjdlMWNlZC4uOTcwNDUx NDYwYzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0yOTYyLDYgKzI5NjIsOSBAQCBDcmVhdGVDb21tYW5k VGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCQljYXNlIERJU0NBUkRfU0VRVUVOQ0VTOgogCQkJCQl0 YWcgPSBDTURUQUdfRElTQ0FSRF9TRVFVRU5DRVM7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgRElT Q0FSRF9WQVJJQUJMRVM6CisJCQkJCXRhZyA9IENNRFRBR19ESVNDQVJEX1ZBUklBQkxFUzsKKwkJ CQkJYnJlYWs7CiAJCQkJZGVmYXVsdDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZWM1NzI4MTVjOTQuLjNlZjQ3NzZkOThhIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jCkBAIC00MDgzLDcgKzQwODMsNyBAQCBtYXRjaF9wcmV2aW91c193 b3JkcyhpbnQgcGF0dGVybl9pZCwKIAogLyogRElTQ0FSRCAqLwogCWVsc2UgaWYgKE1hdGNoZXMo IkRJU0NBUkQiKSkKLQkJQ09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIs ICJURU1QIik7CisJCUNPTVBMRVRFX1dJVEgoIkFMTCIsICJQTEFOUyIsICJTRVFVRU5DRVMiLCAi VEVNUCIsICJWQVJJQUJMRVMiKTsKIAogLyogRE8gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJETyIp KQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IGIzZjAzYzY1ODI3 Li40NDNhZmJhZmQ0YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApA QCAtMjksNCArMjksNiBAQCBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVD aGVjayhPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkIGV4cGVjdAogZXh0ZXJuIHZvaWQgRXhl Y3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJ bmZvIHBhcmFtcywKIAkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNv bXBsZXRpb24gKnFjKTsKIAorZXh0ZXJuIHZvaWQgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQp OworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA3NzhkYjZhZDRmMi4uMDRhYjIy YmQ0OTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM5ODgsNiArMzk4OCw3IEBAIHR5cGVk ZWYgZW51bSBEaXNjYXJkTW9kZQogCURJU0NBUkRfUExBTlMsCiAJRElTQ0FSRF9TRVFVRU5DRVMs CiAJRElTQ0FSRF9URU1QLAorCURJU0NBUkRfVkFSSUFCTEVTLAogfSBEaXNjYXJkTW9kZTsKIAog dHlwZWRlZiBzdHJ1Y3QgRGlzY2FyZFN0bXQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggYTkyMWFm MjQ4NmYuLmJkNzk2NGFlYTZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xp c3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMTM1LDYgKzEzNSw3 IEBAIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9BTEwsICJESVNDQVJEIEFMTCIsIGZhbHNlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfUExBTlMsICJESVNDQVJEIFBM QU5TIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9TRVFV RU5DRVMsICJESVNDQVJEIFNFUVVFTkNFUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0RJU0NBUkRfVEVNUCwgIkRJU0NBUkQgVEVNUCIsIGZhbHNlLCBmYWxzZSwgZmFs c2UpCitQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTLCAiRElTQ0FSRCBWQVJJQUJM RVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ETywgIkRPIiwgZmFs c2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BQ0NFU1NfTUVUSE9ELCAi RFJPUCBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRB R19EUk9QX0FHR1JFR0FURSwgIkRST1AgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCBhMmNiMzVlM2Q3ZC4uMmM0NzYwZmI2ODcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC05ODEsMyArOTgxLDY2IEBAIERST1AgVkFS SUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iOwogRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJE Qk5BTUUiLjoiREJOQU1FIjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsKIFJFU0VUIHNlYXJjaF9w YXRoOworLS0gbWVtb3J5IGNsZWFuaW5nIGJ5IERJU0NBUkQgY29tbWFuZAorQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0hlbGxvJzsKK1NFTEVDVCB2YXIxOwor IHZhcjEgIAorLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisKK0RJU0NBUkQgQUxMOworU0VMRUNU IHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIAorKDEgcm93KQorCitMRVQgdmFyMSA9ICdBSE9KJzsK K1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBBSE9KCisoMSByb3cpCisKK0RJU0NBUkQg VkFSSUFCTEVTOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIAorKDEgcm93KQorCitE Uk9QIFZBUklBQkxFIHZhcjE7CistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92 YXJpYWJsZXMgZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJM RVM7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50 IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZh cmNoYXI7CistLSBzaG91bGQgYmUgemVybyBzdGlsbAorU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQor CitMRVQgdmFyMSA9ICdBSE9KJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBj YW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgICAgICB0eXBu YW1lICAgICAgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgY2hhcmFjdGVyIHZhcnlp bmcgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNo b3VsZCBiZSB6ZXJvIGFnYWluCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA2NDQ1NDc5ZDIyZC4uOTc5Yjkw MjllNTggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAg LTY5OCwzICs2OTgsMzkgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJO QU1FIjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsKIAogUkVTRVQgc2VhcmNoX3BhdGg7CisKKy0t IG1lbW9yeSBjbGVhbmluZyBieSBESVNDQVJEIGNvbW1hbmQKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcmNoYXI7CitMRVQgdmFyMSA9ICdIZWxsbyc7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FS RCBBTEw7CitTRUxFQ1QgdmFyMTsKKworTEVUIHZhcjEgPSAnQUhPSic7CitTRUxFQ1QgdmFyMTsK KworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIx OworCistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92YXJpYWJsZXMgZnVuY3Rp b24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJMRVM7CisKK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHZhcmNoYXI7CisKKy0tIHNob3VsZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitMRVQgdmFyMSA9ICdBSE9KJzsKKwor U0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIHpl cm8gYWdhaW4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Ci0t IAoyLjQ3LjAKCg== --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename="v20241113-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0005-memory-cleaning-after-DROP-VARIABLE.patch"; charset="UTF-8" RnJvbSAyNjU0YWZiYmNjMzNlNWI0ZGU1ZjgyNmZkYzg2NzMyNWFkMTk2NTRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAwOTozMToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djIwMjQxMTEzIDA1LzIwXSBtZW1vcnkgY2xlYW5pbmcgYWZ0ZXIgRFJPUCBWQVJJQUJMRQoKQWNj ZXB0aW5nIGEgc2ludmFsIG1lc3NhZ2UgaW52YWxpZGF0ZXMgZW50cmllcyBpbiB0aGUgInNlc3Np b252YXJzIiBoYXNoIHRhYmxlLgpUaGVzZSBlbnRyaWVzIGFyZSB2YWxpZGF0ZWQgYmVmb3JlIGFu eSByZWFkIG9yIHdyaXRlIG9wZXJhdGlvbnMgb24gc2Vzc2lvbiB2YXJpYWJsZXMuCldoZW4gdGhl IGVudHJ5IGNhbm5vdCBiZSB2YWxpZGF0ZWQsIGl0IGlzIHJlbW92ZWQuICBSZW1vdmFsIHdpbGwg YmUgZGVsYXllZCB3aGVuCnRoZSB2YXJpYWJsZSB3YXMgZHJvcHBlZCBieSB0aGUgY3VycmVudCB0 cmFuc2FjdGlvbiwgd2hpY2ggY291bGQgc3RpbGwgYmUgcm9sbGVkIGJhY2suCi0tLQogc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1MyArKysrKysrKysrKy0K IHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMiArCiAu Li4vaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAxMTAgKysrKysr KysrCiBzcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEg KwogLi4uL2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDUwICsr KysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIxNyAr KysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCAgICB8IDEyMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1MyBpbnNlcnRpb25z KCspLCA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMKaW5kZXggZWY4OTU5NGEyNjguLmM3MzY5ZTJiMmFjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ192YXJpYWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b2xsYXRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5 cGUuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMjU0LDQgKzI1NSw3IEBAIERy b3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogCiAJdGFi bGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8qIGRvIHRoZSBuZWNlc3Nhcnkg Y2xlYW51cCBpbiBsb2NhbCBtZW1vcnksIGlmIG5lZWRlZCAqLworCVNlc3Npb25WYXJpYWJsZURy b3BQb3N0cHJvY2Vzcyh2YXJpZCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKaW5kZXggNjY4YjgxODlhNmMuLjIxYzdhOTUxN2I1IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlICJw b3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCkBAIC02Nyw2ICs2OCwxNCBA QCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4 dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCS8q CisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5zYWN0 aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2YXJpYWJsZSwgaWYgYW55LiAgV2UgbmVlZCB0aGlz IGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgorCSAqIHZhcmlhYmxlcyBk cm9wcGVkIGJ5IHRoZSBsb2NhbCBiYWNrZW5kLCBpbiBjYXNlIHRoZSBvcGVyYXRpb24gaXMgcm9s bGVkCisJICogYmFjay4KKwkgKi8KKwlMb2NhbFRyYW5zYWN0aW9uSWQgZHJvcF9seGlkOworCiAJ LyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJlIG91dGRhdGVk IHdoZW4gd2UgcmVjZWl2ZSBhCiAJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVuIGhhdmUgdG8g Y2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbApAQCAtODMsNiArOTIsMTcgQEAgc3Rh dGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMgKi8KIAogc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4 dCA9IE5VTEw7CiAKKy8qIGJlY29tZXMgdHJ1ZSB3aGVuIHdlIHJlY2VpdmUgYSBzaW52YWwgbWVz c2FnZSAqLworc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNlOworCisvKgorICog VGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBp bW1lZGlhdGVseS4gIFdlIGRvCisgKiB0aGF0IGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIHRoYXQg cmVhZHMgb3Igd3JpdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqICJ2YWxpZGF0ZWRfbHhpZCIg c3RvcmVzIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHBlcmZvcm1lZCBzYWlkIHZhbGlkYXRpb24sIHNv CisgKiB0aGF0IHdlIGNhbiBhdm9pZCByZXBlYXRpbmcgdGhlIGVmZm9ydC4KKyAqLworc3RhdGlj IExvY2FsVHJhbnNhY3Rpb25JZCB2YWxpZGF0ZWRfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0 aW9uSWQ7CisKIC8qCiAgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBp bnZhbGlkYXRpb24uCiAgKi8KQEAgLTExNCw2ICsxMzQsMzggQEAgcGdfdmFyaWFibGVfY2FjaGVf Y2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAkJaWYg KGhhc2h2YWx1ZSA9PSAwIHx8IHN2YXItPmhhc2h2YWx1ZSA9PSBoYXNodmFsdWUpCiAJCXsKIAkJ CXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ fQorCX0KK30KKworLyoKKyAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEg RFJPUCBWQVJJQUJMRSBjb21tYW5kLgorICoKKyAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9m IHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KKyAqLwordm9pZAorU2Vzc2lv blZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK3sKKwlBc3NlcnQoTG9jYWxUcmFu c2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJYm9vbAkJZm91bmQ7CisJCVNWYXJpYWJsZQlzdmFyID0gKFNWYXJpYWJsZSkgaGFz aF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJCQkJCSAgIEhBU0hfRklORCwg JmZvdW5kKTsKKworCQlpZiAoZm91bmQpCisJCXsKKwkJCS8qCisJCQkgKiBTYXZlIHRoZSBjdXJy ZW50IHRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCB0byBtYWtlIHN1cmUgd2UKKwkJCSAq IHdvbid0IGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBsb2NhbCB2YXJpYWJsZSBzdG9yYWdlIGlu CisJCQkgKiB2YWxpZGF0ZV9hbGxfc2Vzc2lvbl92YXJpYWJsZXMoKSB3aGVuIHRoZSBpbnZhbGlk YXRpb24gbWVzc2FnZQorCQkJICogZnJvbSBEUk9QIFZBUklBQkxFIGFycml2ZXMuICBBZnRlciBh bGwsIHRoZSB0cmFuc2FjdGlvbiBjb3VsZAorCQkJICogc3RpbGwgYmUgcm9sbGVkIGJhY2suCisJ CQkgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQlzdmFyLT5kcm9wX2x4aWQgPSBN eVByb2MtPnZ4aWQubHhpZDsKIAkJfQogCX0KIH0KQEAgLTE2Nyw2ICsyMTksNjcgQEAgaXNfc2Vz c2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUgc3ZhcikKIAlyZXR1cm4gcmVzdWx0OwogfQog CisvKgorICogQ2hlY2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vzc2lvbiB2YXJpYWJsZSBk YXRhIGluIGxvY2FsIG1lbW9yeSBhbmQgZnJlZQorICogdGhlIG1lbW9yeSBmb3IgYWxsIGludmFs aWQgb25lcy4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBhbnkgcmVhZCBvcgorICog d3JpdGUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBhIHZhcmlhYmxlJ3MgbWVt b3J5IGlzIHBvc3Rwb25lZCBpZgorICogdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkg dGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKKyAqIG9wZXJhdGlvbiBjb3VsZCBz dGlsbCBiZSByb2xsZWQgYmFjay4KKyAqCisgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHJlY2Vp dmUgYSBjYWNoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3aGlsZQorICogcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKSBpcyBleGVjdXRpbmcsIHNvIHdlIGNhbm5vdCBndWFyYW50ZWUg dGhhdAorICogYWxsIGVudHJpZXMgaW4gInNlc3Npb252YXJzIiB3aWxsIGJlIHNldCB0byAiaXNf dmFsaWQiIGFmdGVyIHRoZSBmdW5jdGlvbiBpcworICogZG9uZS4gIEhvd2V2ZXIsIHdlIGNhbiBn dWFyYW50ZWUgdGhhdCBhbGwgZW50cmllcyBnZXQgY2hlY2tlZCBvbmNlLgorICovCitzdGF0aWMg dm9pZAorcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJLyoKKwkgKiBUaGUgdmFsaWRh dGlvbiByZXF1aXJlcyBzeXN0ZW0gY2F0YWxvZyBhY2Nlc3MsIHNvIHRoZSBzZXNzaW9uIHN0YXRl CisJICogc2hvdWxkIGJlICJpbiB0cmFuc2FjdGlvbiIuCisJICovCisJQXNzZXJ0KElzVHJhbnNh Y3Rpb25TdGF0ZSgpKTsKKworCWlmICghbmVlZHNfdmFsaWRhdGlvbiB8fCAhc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKKworCS8qCisJICogUmVzZXQgdGhlIGZsYWcgYmVmb3JlIHdlIHN0YXJ0IHRo ZSB2YWxpZGF0aW9uLiAgSXQgY2FuIGJlIHNldCBhZ2FpbgorCSAqIGJ5IGNvbmN1cnJlbnRseSBp bmNvbWluZyBzaW52YWwgbWVzc2FnZXMuCisJICovCisJbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNl OworCisJZWxvZyhERUJVRzEsICJlZmZlY3RpdmUgY2FsbCBvZiB2YWxpZGF0ZV9hbGxfc2Vzc2lv bl92YXJpYWJsZXMoKSIpOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7 CisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAh PSBOVUxMKQorCXsKKwkJaWYgKCFzdmFyLT5pc192YWxpZCkKKwkJeworCQkJaWYgKHN2YXItPmRy b3BfbHhpZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKKwkJCXsKKwkJCQkvKiB0cnkgYWdhaW4gaW4g dGhlIG5leHQgdHJhbnNhY3Rpb24gKi8KKwkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ CQljb250aW51ZTsKKwkJCX0KKworCQkJaWYgKCFpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2 YXIpKQorCQkJeworCQkJCU9pZAkJCXZhcmlkID0gc3Zhci0+dmFyaWQ7CisKKwkJCQlmcmVlX3Nl c3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMs ICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCQkJCXN2YXIgPSBOVUxMOworCQkJfQorCQkJ ZWxzZQorCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwkJfQorCX0KK30KKwogLyoKICAqIElu aXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KQEAgLTE5Niw2ICszMDks OCBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwlzdmFyLT5kcm9wX2x4aWQg PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+ dmFsdWUgPSAoRGF0dW0pIDA7CiAKQEAgLTMxOSwyMiArNDM0LDQyIEBAIGdldF9zZXNzaW9uX3Zh cmlhYmxlKE9pZCB2YXJpZCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZh cnNfaGFzaHRhYmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRy YW5zYWN0aW9uSWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJ eworCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICov CisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKwkJLyogZG9uJ3QgcmVw ZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRl ZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhh c2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZm b3VuZCk7CiAKIAlpZiAoZm91bmQpCiAJeworCQkvKgorCQkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJs ZSBjb3VsZCBoYXZlIGJlZW4gZHJvcHBlZCBieSBhIERST1AgVkFSSUFCTEUKKwkJICogc3RhdGVt ZW50IGluIGEgc3VidHJhbnNhY3Rpb24gdGhhdCB3YXMgbGF0ZXIgcm9sbGVkIGJhY2ssIHdoaWNo CisJCSAqIG1lYW5zIHRoYXQgd2UgbWF5IGhhdmUgdG8gd29yayB3aXRoIHRoZSBkYXRhIG9mIGEg dmFyaWFibGUgbWFya2VkCisJCSAqIGFzIGludmFsaWQuCisJCSAqLwogCQlpZiAoIXN2YXItPmlz X3ZhbGlkKQogCQl7CiAJCQkvKgotCQkJICogSWYgdGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBt ZXNzYWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3RpbGwgYmUKLQkJCSAqIHZhbGlkLCBidXQgd2Ug aGF2ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqIFdlIGhhdmUgdG8g Y2hlY2sgdGhlIHN5c3RlbSBjYXRhbG9nIHRvIHNlZSBpZiB0aGUgdmFyaWFibGUgaXMKKwkJCSAq IHN0aWxsIHZhbGlkLCBldmVuIGlmIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlIHNldCBpdCB0byBp bnZhbGlkLgorCQkJICoKKwkJCSAqIFRoZSB2YXJpYWJsZSBtdXN0IGJlIHZhbGlkYXRlZCBiZWZv cmUgaXQgaXMgYWNjZXNzZWQuICBUaGUgb2lkCisJCQkgKiBzaG91bGQgYmUgdmFsaWQsIGJlY2F1 c2UgdGhlIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBhbHJlYWR5CisJCQkgKiBsb2NrZWQs IGFuZCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpIHdvdWxkIHJlbW92ZQorCQkJ ICogdmFyaWFibGVzIGRyb3BwZWQgYnkgb3RoZXIgdHJhbnNhY3Rpb25zLgogCQkJICovCiAJCQlp ZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkKIAkJCQlzdmFyLT5pc192YWxpZCA9 IHRydWU7CiAJCQllbHNlCi0JCQkJLyogaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQs IHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLwotCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShzdmFyKTsKKwkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBzdGF0ZSBvZiBzZXNzaW9uIHZh cmlhYmxlICV1IiwgdmFyaWQpOwogCQl9CiAJfQogCWVsc2UKQEAgLTM5NSw2ICs1MzAsMTYgQEAg U2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQog CWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CiAK KwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCB8fAorCQl2 YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJCS8qIGZyZWUgdGhlIG1l bW9yeSBmcm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKworCQkvKiBkb24ndCByZXBlYXQgdGhlIGFib3ZlIHN0ZXAg aW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KKwkJdmFsaWRhdGVkX2x4aWQgPSBNeVByb2MtPnZ4 aWQubHhpZDsKKwl9CisKIAlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZh cnMsICZ2YXJpZCwKIAkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IDQ0M2FmYmFmZDRhLi4zZGFiOGFlMmE0 OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEs OCBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZp cm9ubWVudC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3Mo T2lkIHZhcmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwg RGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJs ZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsK IGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGws IE9pZCAqdHlwaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nl c3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24t dmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wYTU1 NzlkYzdjZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9z ZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtMCwwICsxLDExMCBAQAorUGFyc2VkIHRlc3Qgc3BlYyB3 aXRoIDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgZHJvcCB2YWwK K3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOwor bXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUg bXl2YXI7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworRVJST1I6ICBjb2x1bW4gIm15dmFyIiBk b2VzIG5vdCBleGlzdAorCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkcm9wIHZh bCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNUIG15 dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBCRUdJTjsKK3N0 ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitF UlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitzdGVwIHNyMTogUk9MTEJBQ0s7 CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFs CitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsK K215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEs IG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWUg fHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEg cm93KQorCitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIGNyZWF0ZTogQ1JF QVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7CitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFt ZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8bmFtZXxyZW1v dmVkCistLS0tLS0rLS0tLSstLS0tLS0tCisgICAgICB8ICAgIHx0ICAgICAgCisoMSByb3cpCisK K3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KKyAgICAgCisoMSByb3cpCisK Kworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2 YWwgc3IxCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBt eXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBzMTogQkVHSU47Citz dGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFy aWFibGVzKCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1 YmxpY3xteXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBt eXZhcjsKK3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK3N0ZXAg ZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0tLQorcHVibGlj fG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFy CistLS0tLQorICAgICAKKygxIHJvdykKKworc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFydGlu ZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBp bnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0ZXAgY3JlYXRlMzogQ1JFQVRFIFZBUklBQkxFIG15 dmFyMyBBUyB0ZXh0Oworc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rlc3QnOworc3RlcCBzMzog QkVHSU47CitzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsKK3N0 ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKK3N0ZXAgZHJvcDQ6IERST1AgVkFSSUFCTEUg bXl2YXI0Oworc3RlcCBkcm9wMzogRFJPUCBWQVJJQUJMRSBteXZhcjM7CitzdGVwIGludmFsMzog U0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19mb3JlaWduX3RhYmxlOworP2NvbHVtbj8KKy0t LS0tLS0tCit0ICAgICAgIAorKDEgcm93KQorCitzdGVwIGRpc2NhcmQ6IERJU0NBUkQgVkFSSUFC TEVTOworc3RlcCBzYzM6IENPTU1JVDsKK3N0ZXAgc3RhdGU6IFNFTEVDVCB2YXJuYW1lIEZST00g cGdfdmFyaWFibGU7Cit2YXJuYW1lCistLS0tLS0tCitteXZhciAgCisoMSByb3cpCisKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9zcmMvdGVzdC9p c29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IDE0MzEwOWFhNGRhLi43NDUzNjg1ZDA0 NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQorKysg Yi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCkBAIC0xMTUsMyArMTE1LDQg QEAgdGVzdDogc2VyaWFsaXphYmxlLXBhcmFsbGVsLTIKIHRlc3Q6IHNlcmlhbGl6YWJsZS1wYXJh bGxlbC0zCiB0ZXN0OiBtYXR2aWV3LXdyaXRlLXNrZXcKIHRlc3Q6IGxvY2stbm93YWl0Cit0ZXN0 OiBzZXNzaW9uLXZhcmlhYmxlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mv c2Vzc2lvbi12YXJpYWJsZS5zcGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24t dmFyaWFibGUuc3BlYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzg2 NGZlZTQwMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vz c2lvbi12YXJpYWJsZS5zcGVjCkBAIC0wLDAgKzEsNTAgQEAKKyMgVGVzdCBzZXNzaW9uIHZhcmlh YmxlcyBtZW1vcnkgY2xlYW51cCBmb3Igc2ludmFsCisKK3NldHVwCit7CisgICAgQ1JFQVRFIFZB UklBQkxFIG15dmFyIEFTIHRleHQ7Cit9CisKK3RlYXJkb3duCit7CisgICAgRFJPUCBWQVJJQUJM RSBJRiBFWElTVFMgbXl2YXI7Cit9CisKK3Nlc3Npb24gczEKK3N0ZXAgczEJCXsgQkVHSU47IH0K K3N0ZXAgbGV0CXsgTEVUIG15dmFyID0gJ3Rlc3QnOyB9CitzdGVwIHZhbAl7IFNFTEVDVCBteXZh cjsgfQorc3RlcCBkYmcJeyBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKTsgfQorc3RlcCBzcjEJeyBST0xMQkFDSzsgfQorCitzZXNzaW9uIHMy CitzdGVwIGRyb3AJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjsgfQorc3RlcCBjcmVhdGUJCXsgQ1JF QVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7IH0KKworc2Vzc2lvbiBzMworc3RlcCBzMwkJCXsg QkVHSU47IH0KK3N0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CitzdGVwIGNyZWF0 ZTQJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7IH0KK3N0ZXAgbGV0NAkJeyBMRVQg bXl2YXI0ID0gJ3Rlc3QnOyB9CitzdGVwIGRyb3A0CQl7IERST1AgVkFSSUFCTEUgbXl2YXI0OyB9 CitzdGVwIGludmFsMwkJeyBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFi bGU7IH0KK3N0ZXAgZGlzY2FyZAl7IERJU0NBUkQgVkFSSUFCTEVTOyB9CitzdGVwIHNjMwkJeyBD T01NSVQ7IH0KK3N0ZXAgc3RhdGUJCXsgU0VMRUNUIHZhcm5hbWUgRlJPTSBwZ192YXJpYWJsZTsg fQorCitzZXNzaW9uIHM0CitzdGVwIGNyZWF0ZTMJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFT IHRleHQ7IH0KK3N0ZXAgZHJvcDMJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjM7IH0KKworIyBDb25j dXJyZW50IGRyb3Agb2YgYSBrbm93biB2YXJpYWJsZSBzaG91bGQgbGVhZCB0byBhbiBlcnJvcgor cGVybXV0YXRpb24gbGV0IHZhbCBkcm9wIHZhbAorIyBTYW1lLCBidXQgd2l0aCBhbiBleHBsaWNp dCB0cmFuc2FjdGlvbgorcGVybXV0YXRpb24gbGV0IHZhbCBzMSBkcm9wIHZhbCBzcjEKKyMgQ29u Y3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGVt cHR5IHZhcmlhYmxlCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFs CisjIENvbmN1cnJlbnQgZHJvcC9jcmVhdGUgb2YgYSBrbm93biB2YXJpYWJsZSBzaG91bGQgbGVh ZCB0byBlbXB0eSB2YXJpYWJsZQorIyBXZSBuZWVkIGEgdHJhbnNhY3Rpb24gdG8gbWFrZSBzdXJl IHRoYXQgd2Ugd29uJ3QgYWNjZXB0IGludmFsaWRhdGlvbiB3aGVuCisjIGNhbGxpbmcgdGhlIGRi ZyBzdGVwIGFmdGVyIHRoZSBjb25jdXJyZW50IGRyb3AKK3Blcm11dGF0aW9uIGxldCB2YWwgczEg ZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwgc3IxCisjIHRlc3QgZm9yIERJU0NBUkQgQUxMIHdoZW4g YWxsIGludGVybmFsIHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVnaXN0ZXJlZAorcGVybXV0YXRpb24g Y3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBz YzMgc3RhdGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKaW5kZXggMmM0NzYwZmI2ODcuLjg1NzcxMDMyZGUzIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTA0NCwzICsxMDQ0LDIy MCBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwogICAgICAw CiAoMSByb3cpCiAKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZyb20g bWVtb3J5IGJlZm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24gdmFyaWFibGUg aW4gdGhlIG5leHQgdHJhbnNhY3Rpb24KK0xFVCB2YXIxID0gJ0Fob2onOworU0VMRUNUIG5hbWUs IHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9zZWxlY3QgfCBjYW5fdXBkYXRl IAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisKK0RS T1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAorLS0t LS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBzaG91 bGQgYmUgcHJlc2VydmVkIHdoZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBhYm9y dGVkIHRyYW5zYWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZh cjEgPSAnQWhvaic7CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBmYWls CitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorTElO RSAxOiBTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgIF4KK1JPTExCQUNLOworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgQWhvagorKDEgcm93KQorCist LSBhbm90aGVyIHRlc3QKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxMDA7CistLSBzaG91bGQgYmUgb2ssIHJlc3Vs dCAxMDAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JP TExCQUNLOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fob2onCitTRUxFQ1QgdmFyMTsKKyB2 YXIxIAorLS0tLS0tCisgQWhvagorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBz aG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQor CitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQgdmFyMSA9IDEw MDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworICBT RUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Np b25fdmFyaWFibGVzKCk7CisgbmFtZSB8IHR5cG5hbWUgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0 ZSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHZhcjEgfCBp bnRlZ2VyIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykKKworICBEUk9QIFZBUklBQkxFIHZhcjE7 CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0KKyAg ICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50Owor ICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAK KygxIHJvdykKKworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0 ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8IHR5cG5hbWUgfCBjYW5fc2Vs ZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIHZhcjEgfCBpbnRlZ2VyIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykKKworICBEUk9Q IFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworTEVUIHZh cjIgPSAwOworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOwor ICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUK KyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBST0xM QkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNF TEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sg VE8gczI7CitDT01NSVQ7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCist LS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1Ag VkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBz ZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCiso MSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJ QUJMRSB2YXIxOworICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93 KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0t LS0tLQorICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNl c3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygx IHJvdykKKworICBTQVZFUE9JTlQgczI7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5n IGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0t CisgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICAtLSBmb3JjZSBjbGVhbmlu ZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7Cisg dmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCistLSByZXBl YXRlZCBhYm9ydGVkIHRyYW5zYWN0aW9uCitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xM QkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1Ag VkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFy MjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA5Nzli OTAyOWU1OC4uZDgzOTc1NzNlZWIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKQEAgLTczNCwzICs3MzQsMTIzIEBAIERJU0NBUkQgVkFSSUFCTEVTOwogCiAt LSBzaG91bGQgYmUgemVybyBhZ2FpbgogU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKTsKKworLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQgZnJv bSBtZW1vcnkgYmVmb3JlIHRoZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJpYWJs ZSBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbgorCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBu YW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJp YWJsZXMoKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVD VCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92ZWQ7 CisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4g YSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBhYm9ydGVkIHRyYW5zYWN0aW9uCitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEgPSAnQWhvaic7CitCRUdJTjsK K0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworCitS T0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gYW5vdGhlciB0 ZXN0CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IGludDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitTRUxF Q1QgdmFyMTsKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fob2onCitTRUxF Q1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgemVybworU0VM RUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3Zl ZDsKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEg PSAxMDA7CisgIFNFTEVDVCB2YXIxOworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVj dCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgIERST1AgVkFSSUFC TEUgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisKK0JFR0lOOwor ICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxF Q1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01N SVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9u X3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworTEVU IHZhcjIgPSAwOworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIx OworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFi bGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7Cisg IERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMyOwor Q09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworQkVHSU47CisgIFNBVkVQ T0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0 b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExC QUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VM RUNUIHZhcjI7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKK0JF R0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2Ug Y2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2 YXIyOworCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcg YW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBz MTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlh YmxlCisgIFNFTEVDVCB2YXIyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFy MTsKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFSSUFC TEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsK K0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworCistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7Ci0tIAoyLjQ3LjAKCg== --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename="v20241113-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0006-plpgsql-tests.patch"; charset="UTF-8" RnJvbSA1MGNhZjI3ZDNmNzg3ZWMzMjY3NzU5N2RmOGU0MDEzYjcwZjQ2OGM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djIwMjQxMTEzIDA2LzIwXSBwbHBnc3FsIHRlc3RzCgotLS0KIHNyYy9wbC9wbHBnc3FsL3NyYy9N YWtlZmlsZSAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogLi4uL3NyYy9leHBlY3RlZC9wbHBn c3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IHwgMzgyICsrKysrKysrKysrKysrKysrKwogc3JjL3Bs L3BscGdzcWwvc3JjL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9zcmMv c3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgICAgICB8IDI4OSArKysrKysrKysrKysr CiA0IGZpbGVzIGNoYW5nZWQsIDY3NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lv bl92YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvc3Fs L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvTWFrZWZpbGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKaW5kZXggNjNjYjk2 ZmFlM2UuLmJiY2FlMjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZp bGUKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3ICszNSw4IEBAIFJF R1JFU1NfT1BUUyA9IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9IHBscGdzcWxfYXJy YXkgcGxwZ3NxbF9jYWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9sIFwKIAlwbHBnc3Fs X2NvcHkgcGxwZ3NxbF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3FsX3JlY29yZCBwbHBn c3FsX3NpbXBsZSBwbHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90 cmlnZ2VyIHBscGdzcWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBs cGdzcWxfdmFycHJvcHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQogCiAjIHdoZXJlIHRv IGZpbmQgZ2VuX2tleXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVzCiBUT09MU0RJUiA9 ICQodG9wX3NyY2Rpcikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMv ZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYjc3OTkwMDU5NgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CkBA IC0wLDAgKzEsMzgyIEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIgQVMgbnVtZXJpYzsKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBp KCk7CistLSBwYXNzaW5nIHBhcmFtZXRlcnMgdG8gRE8gYmxvY2sKK0RPICQkCitCRUdJTgorICBS QUlTRSBOT1RJQ0UgJ3ZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3Zf dmFyOworRU5EOworJCQ7CitOT1RJQ0U6ICB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzIDMu MTQxNTkyNjUzNTg5NzkKKy0tIHBhc3Npbmcgb3V0cHV0IGZyb20gRE8gYmxvY2s7CitETyAkJAor QkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyID0gMiAqIHBpKCk7CitFTkQKKyQkOworU0VMRUNU IHBscGdzcWxfc3ZfdmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKyAgcGlfbXVsdGlwbHlfMiAgIAor LS0tLS0tLS0tLS0tLS0tLS0tCisgNi4yODMxODUzMDcxNzk1OQorKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHBscGdzcWxfc3ZfdmFyOworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JF QVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxw Z3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIz IEFTIHZhcmNoYXI7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitS RVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAg TEVUIHBscGdzcWxfc3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQg cGxwZ3NxbF9zdl92YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB1cGRh dGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92 YXIxID0gcGxwZ3NxbF9zdl92YXIxICsgMTAwOworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gcGxw Z3NxbF9zdl92YXIyICsgMTAwMDAwMDAwMDAwOworICAtLSB2ZXJ5IGxvbmcgdmFsdWUKKyAgTEVU IHBscGdzcWxfc3ZfdmFyMyA9IHBscGdzcWxfc3ZfdmFyMyB8fCBmb3JtYXQoJyglcyknLCByZXBl YXQoJyonLCAxMDAwMCkpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4K KyAgUkFJU0UgTk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9U SUNFICd2YXIyID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGgg b2YgdmFyMyA9ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CistLSBleGVjdXRlIGluIGEgdHJhbnNhY3Rpb24KK0JFR0lOOworU0VMRUNUIHdy aXRlcl9mdW5jKCk7Cisgd3JpdGVyX2Z1bmMgCistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK K1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIy ID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorIHJl YWRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdXBkYXRlcl9m dW5jKCk7CisgdXBkYXRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VM RUNUIHJlYWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0g MTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIw MDA0CisgcmVhZGVyX2Z1bmMgCistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0VORDsKKy0t IGV4ZWN1dGUgb3V0c2lkZSBvZiBhIHRyYW5zYWN0aW9uCitTRUxFQ1Qgd3JpdGVyX2Z1bmMoKTsK KyB3cml0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJlYWRl cl9mdW5jKCk7CitOT1RJQ0U6ICB2YXIxID0gMTAKK05PVElDRTogIHZhcjIgPSAzLjE0MTU5MjY1 MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDEwMDAyCisgcmVhZGVyX2Z1bmMgCist LS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsKKyB1cGRh dGVyX2Z1bmMgCistLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVyX2Z1 bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMu MTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKKyByZWFkZXJf ZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0gZXhlY3V0ZSBpbnNpZGUgYSBQ TC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsKKyAg UEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQRVJG T1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNF OiAgdmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAw MDIKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMuMTQx NTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKKy0tIHBsYW4gY2Fj aGVzIHNob3VsZCBiZSBjb3JyZWN0bHkgaW52YWxpZGF0ZWQKK0RST1AgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKK0NSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMiBBUyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJj aGFyOworLS0gc2hvdWxkIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRl cl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1 bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CitOT1RJQ0U6ICB2YXIx ID0gMTAKK05PVElDRTogIHZhcjIgPSAzLjE0MTU5MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGgg b2YgdmFyMyA9IDEwMDAyCitOT1RJQ0U6ICB2YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAw MDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0 CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyLCBwbHBnc3Fs X3N2X3ZhcjM7CitEUk9QIEZVTkNUSU9OIHdyaXRlcl9mdW5jOworRFJPUCBGVU5DVElPTiByZWFk ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gdXBkYXRlcl9mdW5jOworLS0gYW5vdGhlciBjaGVjayBv ZiBjb3JyZWN0IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50 W107CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0X2Z1bmMoKQorUkVUVVJOUyB2b2lk IEFTICQkCitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOworQkVHSU4KKyAgTEVUIHBscGdz cWxfc3ZfdmFyMSA9IDE7CisgIHZbcGxwZ3NxbF9zdl92YXIxXSA9IDEwMDsKKyAgUkFJU0UgTk9U SUNFICclJywgdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHY7CisgIExFVCBwbHBnc3FsX3N2 X3ZhcjJbcGxwZ3NxbF9zdl92YXIxXSA9IC0xOworICBSQUlTRSBOT1RJQ0UgJyUnLCBwbHBnc3Fs X3N2X3ZhcjI7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHRlc3RfZnVuYygp OworTk9USUNFOiAgezEwMH0KK05PVElDRTogIHstMX0KKyB0ZXN0X2Z1bmMgCistLS0tLS0tLS0t LQorIAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9z dl92YXIyOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworU0VMRUNUIHRlc3RfZnVuYygpOwor Tk9USUNFOiAgezEwMH0KK05PVElDRTogIHstMX0KKyB0ZXN0X2Z1bmMgCistLS0tLS0tLS0tLQor IAorKDEgcm93KQorCitEUk9QIEZVTkNUSU9OIHRlc3RfZnVuYygpOworRFJPUCBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MK K0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNz X3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK0dS QU5UIEFMTCBPTiBTQ0hFTUEgcHVibGljIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGUsIHJlZ3Jl c3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CitTRVQgUk9MRSBUTyBy ZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBB UyBpbnQ7CitMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTA7CitTRVQgUk9MRSBUTyBERUZBVUxUOwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bCBTRUNVUklUWSBERUZJTkVSOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyX3JlYWRfZnVu YygpOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBwbHBn c3FsX3N2X3ZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJwbHBnc3FsX3N2X3Zh cjEiCitQTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9mdW5jKCkgbGluZSAzIGF0IFJBSVNFCitT RVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsK K0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVncmVzc192YXJf cmVhZGVyX3JvbGU7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJfZXhlY19yb2xlOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOwor Tk9USUNFOiAgMTAKKyB2YXJfcmVhZF9mdW5jIAorLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cp CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9y b2xlOworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxU OworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworLS0gc2hvdWxkIGZhaWwsIGJ1 dCBub3QgY3Jhc2gKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjogIGNvbHVtbiAicGxw Z3NxbF9zdl92YXIxIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAg ICAgICAgXgorUVVFUlk6ICBwbHBnc3FsX3N2X3ZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5j dGlvbiB2YXJfcmVhZF9mdW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxU OworRFJPUCBGVU5DVElPTiB2YXJfcmVhZF9mdW5jOworUkVWT0tFIEFMTCBPTiBTQ0hFTUEgcHVi bGljIEZST00gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUs IHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xl OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyX2V4ZWNfcm9sZTsKKy0tIHJldHVybnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBpbmNf dmFyX2ludChpbnQpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3Zf dmFyMSA9IENPQUxFU0NFKHBscGdzcWxfc3ZfdmFyMSArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBn c3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJf aW50KDEpOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxCisoMSBy b3cpCisKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAKKy0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgMgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7CisgaW5j X3Zhcl9pbnQgCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNU IGluY192YXJfaW50KDEpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworIGluY192YXJfaW50 IAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICA0CisgICAgICAgICAgIDUKKyAgICAgICAgICAg NgorICAgICAgICAgICA3CisgICAgICAgICAgIDgKKyAgICAgICAgICAgOQorICAgICAgICAgIDEw CisgICAgICAgICAgMTEKKyAgICAgICAgICAxMgorICAgICAgICAgIDEzCisoMTAgcm93cykKKwor Q1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBudW1lcmljOworTEVUIHBscGdzcWxf c3ZfdmFyMiA9IDAuMDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51 bWVyaWMpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9 IENPQUxFU0NFKHBscGdzcWxfc3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2 X3ZhcjI7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfbnVtKDEu MCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykK KworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0tLS0t CisgICAgICAgICAgIDIKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5j X3Zhcl9udW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNU IGluY192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9u dW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAg ICA2CisgICAgICAgICAgIDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAg MTAKKyAgICAgICAgICAxMQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQor CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworRFJPUCBG VU5DVElPTiBpbmNfdmFyX2ludDsKK0RST1AgRlVOQ1RJT04gaW5jX3Zhcl9udW07CistLSBwbHBn c3FsIHZhcmlhYmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NS RUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworRE8gJCQKKzw8bXlibG9jaz4+ CitERUNMQVJFIHBscGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92 YXIxID0gMTAwOworCisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHByaW50IDEw MDsKKyAgUkFJU0UgTk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3Nx bF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZh cmlhYmxlIGlzICUnLCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmludCAxMDAw CisgIFJBSVNFIE5PVElDRSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsK KyQkOworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAKK05PVElDRTogIHBscGdzcWwg dmFyaWFibGUgaXMgMTAwMAorTk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjE7CistLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQK K0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBwbHBnc3FsX3N2X3YgPSAn YWJjJzsKK0NSRUFURSBGVU5DVElPTiBmZnVuYygpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lO CisgIFJFVFVSTiBnZnVuYyhwbHBnc3FsX3N2X3YpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3Fs OworQ1JFQVRFIEZVTkNUSU9OIGdmdW5jKHQgdGV4dCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVH SU4KKyAgTEVUIHBscGdzcWxfc3ZfdiA9ICdCT09NISc7CisgIFJFVFVSTiB0OworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKK3NlbGVjdCBmZnVuYygpOworIGZmdW5jIAorLS0tLS0tLQorIGFi YworKDEgcm93KQorCitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5j KHRleHQpOworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Y7CmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQK aW5kZXggM2RkNzM0Yjc3NmIuLjM5MDVjMGI2ZDQ1IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvbWVzb24uYnVpbGQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCkBA IC04OCw2ICs4OCw3IEBAIHRlc3RzICs9IHsKICAgICAgICdwbHBnc3FsX3RyYXAnLAogICAgICAg J3BscGdzcWxfdHJpZ2dlcicsCiAgICAgICAncGxwZ3NxbF92YXJwcm9wcycsCisgICAgICAncGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3Jj L3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3Bs L3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hM2NjMjY0Y2YzOAotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApA QCAtMCwwICsxLDI4OSBAQAorLS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZB UklBQkxFIHBscGdzcWxfc3ZfdmFyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhciA9 IHBpKCk7CisKKy0tIHBhc3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lO CisgIFJBSVNFIE5PVElDRSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3Nx bF9zdl92YXI7CitFTkQ7CiskJDsKKworLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsK K0RPICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7 CisKK1NFTEVDVCBwbHBnc3FsX3N2X3ZhciBBUyAicGlfbXVsdGlwbHlfMiI7CisKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXI7CisKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NS RUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBs cGdzcWxfc3ZfdmFyMiBBUyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MyBBUyB2YXJjaGFyOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsK KyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBM RVQgcGxwZ3NxbF9zdl92YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsK K0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHVwZGF0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3Fs X3N2X3ZhcjEgPSBwbHBnc3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIg PSBwbHBnc3FsX3N2X3ZhcjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQor ICBMRVQgcGxwZ3NxbF9zdl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScs IHJlcGVhdCgnKicsIDEwMDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAk JAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAg UkFJU0UgTk9USUNFICd2YXIyID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNF ICdsZW5ndGggb2YgdmFyMyA9ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKKy0tIGV4ZWN1dGUgaW4gYSB0cmFuc2FjdGlvbgorQkVHSU47 CitTRUxFQ1Qgd3JpdGVyX2Z1bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworU0VMRUNUIHVw ZGF0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitFTkQ7CisKKy0tIGV4ZWN1dGUg b3V0c2lkZSBvZiBhIHRyYW5zYWN0aW9uCitTRUxFQ1Qgd3JpdGVyX2Z1bmMoKTsKK1NFTEVDVCBy ZWFkZXJfZnVuYygpOworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5j KCk7CisKKy0tIGV4ZWN1dGUgaW5zaWRlIGEgUEwvcGdTUUwgYmxvY2sKK0RPICQkCitCRUdJTgor ICBQRVJGT1JNIHdyaXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVS Rk9STSB1cGRhdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7 CisKKy0tIHBsYW4gY2FjaGVzIHNob3VsZCBiZSBjb3JyZWN0bHkgaW52YWxpZGF0ZWQKK0RST1Ag VkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFy MzsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIzIEFTIHZhcmNoYXI7CisKKy0tIHNob3VsZCB3b3JrIGFnYWluCitETyAkJAorQkVH SU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7Cisg IFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKK0VORDsK KyQkOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyLCBw bHBnc3FsX3N2X3ZhcjM7CisKK0RST1AgRlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNU SU9OIHJlYWRlcl9mdW5jOworRFJPUCBGVU5DVElPTiB1cGRhdGVyX2Z1bmM7CisKKy0tIGFub3Ro ZXIgY2hlY2sgb2YgY29ycmVjdCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbgorQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIyIEFTIGludFtdOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0X2Z1bmMoKQor UkVUVVJOUyB2b2lkIEFTICQkCitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOworQkVHSU4K KyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDE7CisgIHZbcGxwZ3NxbF9zdl92YXIxXSA9IDEwMDsK KyAgUkFJU0UgTk9USUNFICclJywgdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHY7CisgIExF VCBwbHBnc3FsX3N2X3ZhcjJbcGxwZ3NxbF9zdl92YXIxXSA9IC0xOworICBSQUlTRSBOT1RJQ0Ug JyUnLCBwbHBnc3FsX3N2X3ZhcjI7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxF Q1QgdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3Fs X3N2X3ZhcjI7CisKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JF QVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKKworU0VMRUNUIHRlc3RfZnVu YygpOworCitEUk9QIEZVTkNUSU9OIHRlc3RfZnVuYygpOworCitEUk9QIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworCistLSBjaGVjayBzZWN1cmUgYWNjZXNzCitD UkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192 YXJfcmVhZGVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKK0dS QU5UIEFMTCBPTiBTQ0hFTUEgcHVibGljIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGUsIHJlZ3Jl c3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjEgQVMgaW50OworTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwOworCitTRVQgUk9MRSBUTyBERUZB VUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gdmFyX3JlYWRfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JF R0lOCisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWwgU0VDVVJJVFkgREVGSU5FUjsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgZmFpbAorU0VM RUNUIHZhcl9yZWFkX2Z1bmMoKTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUg VE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjEgVE8gcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CisKK1NFVCBST0xFIFRPIERF RkFVTFQ7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOwor CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworCitEUk9QIFZBUklBQkxFIHBs cGdzcWxfc3ZfdmFyMTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgZmFpbCwgYnV0IG5vdCBjcmFzaAorU0VM RUNUIHZhcl9yZWFkX2Z1bmMoKTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBGVU5D VElPTiB2YXJfcmVhZF9mdW5jOworCitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSBy ZWdyZXNzX3Zhcl9vd25lcl9yb2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZSwgcmVncmVzc192 YXJfZXhlY19yb2xlOworCitEUk9QIFJPTEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1Ag Uk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9leGVj X3JvbGU7CisKKy0tIHJldHVybnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMSBBUyBpbnQ7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJf aW50KGludCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIx ID0gQ09BTEVTQ0UocGxwZ3NxbF9zdl92YXIxICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxf c3ZfdmFyMTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX2lu dCgxKTsKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKwor U0VMRUNUIGluY192YXJfaW50KDEpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworCitDUkVB VEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2 X3ZhcjIgPSAwLjA7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51 bWVyaWMpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9 IENPQUxFU0NFKHBscGdzcWxfc3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2 X3ZhcjI7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgaW5jX3Zhcl9udW0o MS4wKTsKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7 CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOwor CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworCitEUk9Q IEZVTkNUSU9OIGluY192YXJfaW50OworRFJPUCBGVU5DVElPTiBpbmNfdmFyX251bTsKKworLS0g cGxwZ3NxbCB2YXJpYWJsZXMgYXJlIHByZWZlcnJlZCBhZ2FpbnN0IHNlc3Npb24gdmFyaWFibGVz CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKKworRE8gJCQKKzw8bXli bG9jaz4+CitERUNMQVJFIHBscGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3Nx bF9zdl92YXIxID0gMTAwOworCisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHBy aW50IDEwMDsKKyAgUkFJU0UgTk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMu cGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBn c3FsIHZhcmlhYmxlIGlzICUnLCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmlu dCAxMDAwCisgIFJBSVNFIE5PVElDRSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsK K0VORDsKKyQkOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKKworLS0gdGhlIHZh bHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 IHRleHQ7CitMRVQgcGxwZ3NxbF9zdl92ID0gJ2FiYyc7CisKK0NSRUFURSBGVU5DVElPTiBmZnVu YygpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBnZnVuYyhwbHBnc3FsX3N2 X3YpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04gZ2Z1bmMo dCB0ZXh0KQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92ID0g J0JPT00hJzsKKyAgUkVUVVJOIHQ7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitzZWxl Y3QgZmZ1bmMoKTsKKworRFJPUCBGVU5DVElPTiBmZnVuYygpOworRFJPUCBGVU5DVElPTiBnZnVu Yyh0ZXh0KTsKKworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Y7Ci0tIAoyLjQ3LjAKCg== --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename="v20241113-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0007-GUC-session_variables_ambiguity_warning.patch"; charset="UTF-8" RnJvbSBjNTBiY2QzMjZmZDdlM2JmNzJkYzY3M2Y0OGUxOGMwMWIxOTA0YWRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTc6NTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIHYy MDI0MTExMyAwNy8yMF0gR1VDIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCgpJ bnNpZGUgYW4gcXVlcnkgdGhlIHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZC4gVGhp cyBiZWhhdmlvdXIgaXMgYnkgZGVzaWduLApiZWNhdXNlIHRoaXMgZW5zdXJpbmcgc28gbmV3IHZh cmlhYmxlcyBkb2Vzbid0IGJyZWFrIGV4aXN0aW5nIHF1ZXJpZXMuIEJ1dCB0aGlzCmJlaGF2aW91 ciBjYW4gYmUgY29uZnVzaW5nLCBiZWNhdXNlIHNoYWRvd2luZyBpcyBxdWlldC4KCldoZW4gbmV3 IEdVQyBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBpcyBvbiwgdGhlbiB0aGUg d2FybmluZwppcyBkaXNwbGF5ZWQsIHdoZW4gc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSB1 c2VkLCBidXQgaXQgaXMgbm90IHVzZWQKZHVlIHNoYWRvd2luZy4gVGhpcyBmZWF0dXJlIHNob3Vs ZCB0byBoZWxwIHdpdGggaW52ZXN0aWdhdGlvbiBvZiB1bmV4cGVjdGVkCmJlaGF2aW91ci4KCk5v dGU6IFBMcGdTUUwgaGFzIGFuIG9wdGlvbiB0aGF0IGNvbnRyb2xzIHByaW9yaXR5IG9mIGlkZW50 aWZpZXIncyBzcGFjZXMKKFNRTCBvciBQTHBnU1FMKS4gRGVmYXVsdCBiZWhhdmlvdXIgZG9lc24n dCBhbGxvd3MgY29sbGlzaW9ucy4gSSBiZWxpZXZlCnRoaXMgZGVmYXVsdCBpcyB0aGUgYmVzdC4g SSBjYW5ub3QgdG8gaW1wbGVtZW50IHNpbWlsYXIgdmVyeSBzdHJpY3QKYmVoYXZpb3VyIHRvIHNl c3Npb24gdmFyaWFibGVzLCBiZWNhdXNlIG9uZSB1bmhhcHB5IG5hbWVkIHNlc3Npb24gdmFyaWFi bGUKY2FuIGJyZWFrcyBhbiBhcHBsaWNhdGlvbnMuIFRoZSBwcm9ibGVtcyByZWxhdGVkIHRvIGJh ZGx5IG5hbWVkIFBMcGdTUUwncwp2YXJpYmxlIGlzIGxpbWl0dGVkIGp1c3QgdG8gb25seSBvbmUg cm91dGluZS4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAg ICAgfCA2MCArKysrKysrKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxMCArKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jICAgICAgICAgICAgICAgfCA0OSArKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICAgICB8ICA5ICsrKwogc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEgKwogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3Fs X3Nlc3Npb25fdmFyaWFibGUub3V0IHwgMzMgKysrKysrKysrKwogLi4uL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjkgKysrKysrKysrCiAuLi4vcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAyMiArKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrCiAxMCBmaWxl cyBjaGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5k ZXggYTg0ZTYwYzA5YjkuLmQxYjIxNzVjMDIyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29u ZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0xMDc0MCw2ICsxMDc0 MCw2NiBAQCBkeW5hbWljX2xpYnJhcnlfcGF0aCA9ICdDOlx0b29sc1xwb3N0Z3Jlc3FsO0g6XG15 X3Byb2plY3RcbGliOyRsaWJkaXInCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3Rl bnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtYW1i aWd1aXR5LXdhcm5pbmciIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmciPgorICAgICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmc8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRl cm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmc8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAg ICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAg PHBhcmE+CisgICAgICAgIFdoZW4gb24sIGEgd2FybmluZyBpcyByYWlzZWQgd2hlbiBhbnkgaWRl bnRpZmllciBpbiBhIHF1ZXJ5IGNvdWxkIGJlCisgICAgICAgIHVzZWQgYXMgYm90aCBhIGNvbHVt biBpZGVudGlmaWVyLCByb3V0aW5lIHZhcmlhYmxlIG9yIGEgc2Vzc2lvbgorICAgICAgICB2YXJp YWJsZSBpZGVudGlmaWVyLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVyYWw+Lgor ICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU2Vzc2lvbiB2YXJpYWJsZXMg Y2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbiByZWZlcmVuY2VzIGluIGEgcXVlcnksIHRoaXMKKyAg ICAgICAgaXMgYW4gZXhwZWN0ZWQgYmVoYXZpb3IuICBQcmV2aW91c2x5IHdvcmtpbmcgcXVlcmll cyBzaG91bGRuJ3QgZXJyb3Igb3V0CisgICAgICAgIGJ5IGNyZWF0aW5nIGFueSBzZXNzaW9uIHZh cmlhYmxlLCBzbyBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgYWx3YXlzIHNoYWRvd2VkCisgICAgICAg IGlmIGFuIGlkZW50aWZpZXIgaXMgYW1iaWd1b3VzLiAgVmFyaWFibGVzIHNob3VsZCBiZSByZWZl cmVuY2VkIHVzaW5nCisgICAgICAgIGFudW5hbWJpZ3VvdXMgaWRlbnRpZmllciB3aXRob3V0IGFu eSBwb3NzaWJpbGl0eSBmb3IgYSBjb2xsaXNpb24gd2l0aAorICAgICAgICBpZGVudGlmaWVyIG9m IG90aGVyIGRhdGFiYXNlIG9iamVjdHMgKGNvbHVtbiBuYW1lcyBvciByZWNvcmQgZmllbGRzIG5h bWVzKS4KKyAgICAgICAgVGhlIHdhcm5pbmcgbWVzc2FnZXMgZW1pdHRlZCB3aGVuIGVuYWJsaW5n IDx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nPC92YXJuYW1lPgor ICAgICAgICBjYW4gaGVscCBmaW5kaW5nIHN1Y2ggaWRlbnRpZmllciBjb2xsaXNpb24uCis8cHJv Z3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0lOU0VSVCBJTlRPIGZvbyBW QUxVRVMoMTApOworQ1JFQVRFIFZBUklBQkxFIGEgaW50OworTEVUIGEgPSAxMDA7CitTRUxFQ1Qg YSBGUk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKzxzY3JlZW4+CisgYQorLS0tLQorIDEw CisoMSByb3cpCis8L3NjcmVlbj4KKworPHByb2dyYW1saXN0aW5nPgorU0VUIHNlc3Npb25fdmFy aWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworU0VMRUNUIGEgRlJPTSBmb287Cis8L3By b2dyYW1saXN0aW5nPgorCis8c2NyZWVuPgorV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEi IGlzIHNoYWRvd2VkCitMSU5FIDE6IFNFTEVDVCBhIEZST00gZm9vOworICAgICAgICAgICAgICAg XgorREVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMs IHJvdXRpbmUncyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2Ft ZSBuYW1lLgorIGEKKy0tLS0KKyAxMAorKDEgcm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJh PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIGZlYXR1cmUgY2FuIHNpZ25pZmljYW50bHkg aW5jcmVhc2UgbG9nIHNpemUsIHNvIGl0J3MgZGlzYWJsZWQgYnkKKyAgICAgICAgZGVmYXVsdC4g IEZvciB0ZXN0aW5nIG9yIGRldmVsb3BtZW50IGVudmlyb25tZW50cyBpdCdzIHJlY29tbWVuZGVk IHRvCisgICAgICAgIGVuYWJsZSBpdCBpZiB5b3UgdXNlIHNlc3Npb24gdmFyaWFibGVzLgorICAg ICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAg ICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1zdGFuZGFyZC1jb25mb3JtaW5nLXN0cmluZ3MiIHhy ZWZsYWJlbD0ic3RhbmRhcmRfY29uZm9ybWluZ19zdHJpbmdzIj4KICAgICAgIDx0ZXJtPjx2YXJu YW1lPnN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5nczwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48 L3R5cGU+KQogICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5zdHJpbmdzPC9wcmltYXJ5PjxzZWNv bmRhcnk+c3RhbmRhcmQgY29uZm9ybWluZzwvc2Vjb25kYXJ5PjwvaW5kZXh0ZXJtPgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4 IGQ0NjM5YjI3Nzk1Li4xZjZjODhjZjU1NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTM1OCw2ICs1MzU4LDE2IEBAIFNF TEVDVCBjdXJyZW50X3VzZXJfaWQ7CiAgICAgdGhlIHNjaGVtYSBuYW1lLCBjb2x1bW5zIGNhbiB1 c2UgdGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVzZQogICAgIGJsb2NrIGxh YmVscywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJvdXRpbmUgbmFtZS4KICAg IDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiBhIHF1ZXJ5IGNvbnRhaW5zIGlkZW50aWZp ZXJzIG9yIHF1YWxpZmllZCBpZGVudGlmaWVycyB0aGF0IGNvdWxkIGJlCisgICAgdXNlZCBhcyBi b3RoIGEgc2Vzc2lvbiB2YXJpYWJsZSBpZGVudGlmaWVycyBhbmQgYXMgY29sdW1uIGlkZW50aWZp ZXIsCisgICAgdGhlbiB0aGUgY29sdW1uIGlkZW50aWZpZXIgaXMgcHJlZmVycmVkIGV2ZXJ5IHRp bWUuICBXYXJuaW5ncyBjYW4gYmUKKyAgICBlbWl0dGVkIHdoZW4gdGhpcyBzaXR1YXRpb24gaGFw cGVucyBieSBlbmFibGluZyBjb25maWd1cmF0aW9uIHBhcmFtZXRlciA8eHJlZgorICAgIGxpbmtl bmQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy1hbWJpZ3VpdHktd2FybmluZyIvPi4gVXNlciBjYW4g ZXhwbGljaXRseQorICAgIHF1YWxpZnkgdGhlIHNvdXJjZSBvYmplY3QgYnkgc3ludGF4IDxsaXRl cmFsPnRhYmxlLmNvbHVtbjwvbGl0ZXJhbD4gb3IKKyAgICA8bGl0ZXJhbD5zY2hlbWEudmFyaWFi bGU8L2xpdGVyYWw+LgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwt b3RoZXJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGFiYTUyNTllMDI3Li4zNjAyYzM1 NzJkNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00NSw2ICs0NSw3IEBACiAKIC8qIEdV QyBwYXJhbWV0ZXJzICovCiBib29sCQlUcmFuc2Zvcm1fbnVsbF9lcXVhbHMgPSBmYWxzZTsKK2Jv b2wJCXNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nID0gZmFsc2U7CiAKIAogc3Rh dGljIE5vZGUgKnRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq ZXhwcik7CkBAIC05NjAsMTEgKzk2MSw1MSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCSAqCiAJCSAqIFNFTEVDVCBmb28uYSwgZm9v LmIsIGZvby5jIEZST00gZm9vOwogCQkgKgotCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29u ZnVzaW5nLCBzbyB3ZSBkaXNhbGxvdyBpdC4gIFdlIGRvbid0IHRyeSB0bwotCQkgKiBpZGVudGlm eSBhIHZhcmlhYmxlIGlmIHdlIGtub3cgdGhhdCBpdCB3b3VsZCBiZSBzaGFkb3dlZC4KLQkJICog LS0tLS0KKwkJICogSG93ZXZlciwgdGhhdCBpcyB2ZXJ5IGNvbmZ1c2luZywgc28gd2UgZGlzYWxs b3cgaXQuCisJCSAqCisJCSAqIFdoZW4gc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgaXMgcmVxdWVzdGVkLCB0aGVuIHdlCisJCSAqIG5lZWQgdG8gaWRlbnRpZnkgYSB2YXJpYWJs ZSBhbHRob3VnaCB3ZSBrbm93LCBzbyB0aGlzIHZhcmlhYmxlCisJCSAqIHdvdWxkIGJlIHNoYWRv d2VkLgogCQkgKi8KLQkJaWYgKCFub2RlICYmICEocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9O T19DT0xVTU4pKQorCQlpZiAobm9kZSB8fCAocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19D T0xVTU4pKQorCQl7CisJCQkvKgorCQkJICogSW4gdGhpcyBwYXRoIHdlIGp1c3QgdHJ5IChpZiBp dCBpcyB3YW50ZWQpIGRldGVjdCBpZiBzZXNzaW9uCisJCQkgKiB2YXJpYWJsZSBpcyBzaGFkb3dl ZC4KKwkJCSAqLworCQkJaWYgKHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKQor CQkJeworCQkJCS8qCisJCQkJICogVGhlIEFjY2Vzc1NoYXJlTG9jayBpcyBjcmVhdGVkIG9uIHJl bGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZS4KKwkJCQkgKiBUaGUgbG9jayB3aWxsIGJlIGtlcHQgZm9y IHRoZSB3aG9sZSB0cmFuc2FjdGlvbi4KKwkJCQkgKi8KKwkJCQl2YXJpZCA9IElkZW50aWZ5VmFy aWFibGUoY3JlZi0+ZmllbGRzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCB0cnVlKTsKKworCQkJ CWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCQl7CisJCQkJCS8qIHRoaXMgcGF0aCB3aWxsIGVu ZGluZyBieSBXQVJOSU5HLiBVbmxvY2sgdmFyaWFibGUgZmlyc3QgKi8KKwkJCQkJVW5sb2NrRGF0 YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2Nr KTsKKworCQkJCQlpZiAobm9kZSkKKwkJCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfQ09MVU1OKSwKKwkJCQkJCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSBcIiVzXCIgaXMgc2hhZG93ZWQiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJp bmcoY3JlZi0+ZmllbGRzKSksCisJCQkJCQkJCSBlcnJkZXRhaWwoIlNlc3Npb24gdmFyaWFibGVz IGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0 aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4iKSwKKwkJCQkJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOworCQkJCQllbHNlCisJCQkJCQkv KiBzZXNzaW9uIHZhcmlhYmxlIGlzIHNoYWRvd2VkIGJ5IFJURSAqLworCQkJCQkJZXJlcG9ydChX QVJOSU5HLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJ CQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBpcyBzaGFkb3dlZCIsCisJ CQkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZSh2YXJpZCkpLAorCQkJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSwK KwkJCQkJCQkJIGVycmRldGFpbCgiU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5 IHRhYmxlcyBvciB0YWJsZSdzIGFsaWFzZXMgd2l0aCB0aGUgc2FtZSBuYW1lLiIpLAorCQkJCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisJCQkJfQor CQkJfQorCQl9CisJCWVsc2UKIAkJewogCQkJLyogdGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9u IHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCiAJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3Jl Zi0+ZmllbGRzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvZ3VjX3RhYmxlcy5jCmluZGV4IDhhNjdmMDEyMDBjLi5lZmI2NWIwMjM4MCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE1OTUsNiArMTU5NSwxNSBAQCBzdHJ1Y3QgY29u ZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwg TlVMTAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIiwg UEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX09USEVSLAorCQkJZ2V0dGV4dF9ub29wKCJSYWlzZSBh IHdhcm5pbmcgd2hlbiByZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGFtYmlndW91 cy4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJu aW5nLAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCiAJewogCQl7ImRlZmF1bHRf dHJhbnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVO VCwKIAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVmYXVsdCByZWFkLW9ubHkgc3RhdHVzIG9m IG5ldyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNj L3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKaW5kZXggMzlhM2FjMjMxMjcuLjk5MmRkYTNjNjQ0IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC03MTQsNiArNzE0 LDcgQEAKICNkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9mZgogI2RlZmF1bHRfdHJh bnNhY3Rpb25fZGVmZXJyYWJsZSA9IG9mZgogI3Nlc3Npb25fcmVwbGljYXRpb25fcm9sZSA9ICdv cmlnaW4nCisjc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBvZmYKICNzdGF0 ZW1lbnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICN0 cmFuc2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVk CiAjbG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggOWI0NmRmZDllY2MuLjBkNjRiMzAwZjhhIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9leHByLmgKQEAgLTE3LDYgKzE3LDcgQEAKIAogLyogR1VDIHBhcmFtZXRl cnMgKi8KIGV4dGVybiBQR0RMTElNUE9SVCBib29sIFRyYW5zZm9ybV9udWxsX2VxdWFsczsKK2V4 dGVybiBQR0RMTElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n OwogCiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg KmV4cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw Z3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9w bHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CmluZGV4IGFi Nzc5OTAwNTk2Li5hNjUyM2Y3YWZlMiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4 cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwv c3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTM1NCw2ICszNTQs MzkgQEAgJCQ7CiBOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAogTk9USUNFOiAgcGxw Z3NxbCB2YXJpYWJsZSBpcyAxMDAwCiBOT1RJQ0U6ICB2YXJpYWJsZSBpcyAxMDAwCistLSBhZ2Fp bnQgd2l0aCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyhvbikKK1NFVCBzZXNz aW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK0RPICQkCis8PG15YmxvY2s+ PgorREVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3Zf dmFyMSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIHBscGdz cWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcK KyAgLS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScs IHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2Fy bmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXJpYWJsZSBp cyAlJywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIHRvIHByaW50IHBs cGdzcWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9U SUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CitOT1RJQ0U6 ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAorTk9USUNFOiAgcGxwZ3NxbCB2YXJpYWJsZSBpcyAx MDAwCitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAicGxwZ3NxbF9zdl92YXIxIiBpcyBzaGFk b3dlZAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAgICAgICAgXgorREVUQUlMOiAgU2Vzc2lv biB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJpYWJs ZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLgorUVVFUlk6ICBw bHBnc3FsX3N2X3ZhcjEKK05PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAKK1NFVCBzZXNzaW9uX3Zh cmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CiBEUk9QIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyMTsKIC0tIHRoZSB2YWx1ZSBzaG91bGQgbm90IGJlIGNvcnJ1cHRlZAogQ1JFQVRFIFZB UklBQkxFIHBscGdzcWxfc3ZfdiB0ZXh0OwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3Jj L3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCmluZGV4IGEzY2MyNjRjZjM4Li45YjhlOTBl ODFmYSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUuc3FsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9u X3ZhcmlhYmxlLnNxbApAQCAtMjYwLDYgKzI2MCwzNSBAQCBCRUdJTgogRU5EOwogJCQ7CiAKKy0t IGFnYWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKG9uKQorCitT RVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CisKK0RPICQkCis8 PG15YmxvY2s+PgorREVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBs cGdzcWxfc3ZfdmFyMSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5n CisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0 IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFi bGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdp dGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2 YXJpYWJsZSBpcyAlJywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIHRv IHByaW50IHBscGdzcWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAg UkFJU0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7 CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKIERS T1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogCiAtLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBi ZSBjb3JydXB0ZWQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKaW5kZXggODU3NzEwMzJkZTMuLjUwZmI0NzhiNWU5IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTI2MSwzICsxMjYx LDI1IEBAIFNFTEVDVCB2YXIxOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7 CistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVBVEUgU0NI RU1BIHh4dGFiOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2YXIgaW50OworQ1JFQVRFIFRBQkxF IHB1YmxpYy54eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMueHh0YWIgVkFMVUVT KDEpOworTEVUIHh4dGFiLmF2YXIgPSAyMDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3Vp dHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8gcmFpc2Ugd2FybmluZywgc2hvdyAxCitT RUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKK1dBUk5JTkc6ICBzZXNzaW9uIHZh cmlhYmxlICJ4eHRhYi5hdmFyIiBpcyBzaGFkb3dlZAorTElORSAxOiBTRUxFQ1QgeHh0YWIuYXZh ciBGUk9NIHB1YmxpYy54eHRhYjsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNlc3Npb24g dmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVz IGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhdmFyIAorLS0t LS0tCisgICAgMQorKDEgcm93KQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcgVE8gb2ZmOworRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVNQSB4eHRh YiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHh4 dGFiLmF2YXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRl eCBkODM5NzU3M2VlYi4uZTdhNGZkZWRhZTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTg1NCwzICs4NTQsMjMgQEAgQkVHSU47IERST1AgVkFSSUFC TEUgdmFyMTsgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxLCB2 YXIyOworCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVB VEUgU0NIRU1BIHh4dGFiOworCitDUkVBVEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CisKK0NS RUFURSBUQUJMRSBwdWJsaWMueHh0YWIoYXZhciBpbnQpOworCitJTlNFUlQgSU5UTyBwdWJsaWMu eHh0YWIgVkFMVUVTKDEpOworCitMRVQgeHh0YWIuYXZhciA9IDIwOworCitTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CistLS0gc2hvdWxkIHRvIHJhaXNlIHdh cm5pbmcsIHNob3cgMQorU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CisKK1NF VCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKK0RST1AgVEFC TEUgcHVibGljLnh4dGFiOworRFJPUCBTQ0hFTUEgeHh0YWIgQ0FTQ0FERTsKLS0gCjIuNDcuMAoK --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename="v20241113-0008-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0008-EXPLAIN-LET-support.patch"; charset="UTF-8" RnJvbSA0ZjgxNTc1YzhiNjhjODNkMThhYjY1ZmNjYTMyMDYwMjQzNWFmNmQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTg6Mjg6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIHYy MDI0MTExMyAwOC8yMF0gRVhQTEFJTiBMRVQgc3VwcG9ydAoKRW5oYW5jaW5nIEV4cGxhaW5PbmVQ bGFuIGlzIG5lY2Vzc2FyeSB0byBiZSBFWFBMQUlOIEFOQUxZWkUgTEVUIGZ1bGx5IHdvcmthYmxl LgpJbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBiZSByZXN1bHQgb2YgcXVlcnkgb3IgZXhwcmVzc2lv biB3cml0dGVuIHRvIHRhcmdldCB2YXJpYWJsZS4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2V4cGxh aW4uc2dtbCAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhw bGFpbi5jICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICA1ICsrLQogc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL2V4cGxhaW4uaCAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA0MCArKysrKysrKysrKysrKysrKysrCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMSArKysrKysrKysr CiA3IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2V4cGxhaW4uc2dtbAppbmRleCBkYjlkM2E4NTQ5YS4uY2FjY2M3MDY1OGMgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhw bGFpbi5zZ21sCkBAIC05OCw3ICs5OCw4IEBAIEVYUExBSU4gWyAoIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSA8cmVwCiAgICAg PGNvbW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKICAg ICA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sCiAg ICAgPGNvbW1hbmQ+Q1JFQVRFIFRBQkxFIEFTPC9jb21tYW5kPiwKLSAgICBvciA8Y29tbWFuZD5F WEVDVVRFPC9jb21tYW5kPiBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5k PiwKKyAgICBvciA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IHN0YXRlbWVudAogICAgIHdpdGhvdXQg bGV0dGluZyB0aGUgY29tbWFuZCBhZmZlY3QgeW91ciBkYXRhLCB1c2UgdGhpcyBhcHByb2FjaDoK IDxwcm9ncmFtbGlzdGluZz4KIEJFR0lOOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDdjMGZk NjNiMmYwLi5kNDE1MTY0NTRmNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhw bGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMTgsNiArMTgs NyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2NyZWF0ZWFzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImV4ZWN1 dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdhcGkuaCIKICNp bmNsdWRlICJqaXQvaml0LmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKQEAgLTUxMiw4 ICs1MTMsOSBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vy c29yT3B0aW9ucywKIAl9CiAKIAkvKiBydW4gaXQgKGlmIG5lZWRlZCkgYW5kIHByb2R1Y2Ugb3V0 cHV0ICovCi0JRXhwbGFpbk9uZVBsYW4ocGxhbiwgaW50bywgZXMsIHF1ZXJ5U3RyaW5nLCBwYXJh bXMsIHF1ZXJ5RW52LAotCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1 c2FnZSA6IE5VTEwpLAorCUV4cGxhaW5PbmVQbGFuKHBsYW4sIGludG8sIHF1ZXJ5LT5yZXN1bHRW YXJpYWJsZSwgZXMsIHF1ZXJ5U3RyaW5nLAorCQkJCSAgIHBhcmFtcywgcXVlcnlFbnYsICZwbGFu ZHVyYXRpb24sCisJCQkJICAgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCiAJCQkJ ICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIH0KIApAQCAtNjExLDYgKzYx MywyNSBAQCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAq aW50bywgRXhwbGFpblN0YXRlICplcywKIAkJZWxzZQogCQkJRXhwbGFpbkR1bW15R3JvdXAoIk5v dGlmeSIsIE5VTEwsIGVzKTsKIAl9CisJZWxzZSBpZiAoSXNBKHV0aWxpdHlTdG10LCBMZXRTdG10 KSkKKwl7CisJCUxldFN0bXQgICAgKmxldHN0bXQgPSAoTGV0U3RtdCAqKSB1dGlsaXR5U3RtdDsK KwkJTGlzdAkgICAqcmV3cml0dGVuOworCQlRdWVyeQkgICAqcXVlcnk7CisKKwkJaWYgKGVzLT5m b3JtYXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco ZXMtPnN0ciwgIlNFVCBTRVNTSU9OIFZBUklBQkxFXG4iKTsKKwkJZWxzZQorCQkJRXhwbGFpbkR1 bW15R3JvdXAoIlNldCBTZXNzaW9uIFZhcmlhYmxlIiwgTlVMTCwgZXMpOworCisJCXJld3JpdHRl biA9IFF1ZXJ5UmV3cml0ZShjYXN0Tm9kZShRdWVyeSwgY29weU9iamVjdChsZXRzdG10LT5xdWVy eSkpKTsKKworCQlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKwkJcXVlcnkg PSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCByZXdyaXR0ZW4pOworCQlFeHBsYWluT25lUXVlcnkocXVl cnksCisJCQkJCQlDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBOVUxMLCBlcywKKwkJCQkJCXBzdGF0 ZSwgcGFyYW1zKTsKKwl9CiAJZWxzZQogCXsKIAkJaWYgKGVzLT5mb3JtYXQgPT0gRVhQTEFJTl9G T1JNQVRfVEVYVCkKQEAgLTYzNCw4ICs2NTUsOCBAQCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1 dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKICAqIHRvIGNh bGwgaXQuCiAgKi8KIHZvaWQKLUV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3Rt dCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKLQkJCSAgIGNvbnN0IGNoYXIg KnF1ZXJ5U3RyaW5nLCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKK0V4cGxhaW5PbmVQbGFuKFBsYW5u ZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgT2lkIHRhcmdldHZhciwKKwkJ CSAgIEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLCBQYXJhbUxpc3RJ bmZvIHBhcmFtcywKIAkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBjb25zdCBpbnN0 cl90aW1lICpwbGFuZHVyYXRpb24sCiAJCQkgICBjb25zdCBCdWZmZXJVc2FnZSAqYnVmdXNhZ2Us CiAJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3VudGVycykKQEAgLTY4 NCw2ICs3MDUsOCBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIElu dG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJICovCiAJaWYgKGludG8pCiAJCWRl c3QgPSBDcmVhdGVJbnRvUmVsRGVzdFJlY2VpdmVyKGludG8pOworCWVsc2UgaWYgKE9pZElzVmFs aWQodGFyZ2V0dmFyKSkKKwkJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHRhcmdl dHZhcik7CiAJZWxzZSBpZiAoZXMtPnNlcmlhbGl6ZSAhPSBFWFBMQUlOX1NFUklBTElaRV9OT05F KQogCQlkZXN0ID0gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZlcihlcyk7CiAJZWxz ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDQ1NWEwM2NjZTYzLi4zNzM1YjU1NTRlMCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtNjYyLDggKzY2Miw5IEBAIEV4cGxhaW5FeGVjdXRlUXVl cnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUg KmVzLAogCQlQbGFubmVkU3RtdCAqcHN0bXQgPSBsZmlyc3Rfbm9kZShQbGFubmVkU3RtdCwgcCk7 CiAKIAkJaWYgKHBzdG10LT5jb21tYW5kVHlwZSAhPSBDTURfVVRJTElUWSkKLQkJCUV4cGxhaW5P bmVQbGFuKHBzdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLCBwYXJhbUxJLCBwc3RhdGUtPnBf cXVlcnlFbnYsCi0JCQkJCQkgICAmcGxhbmR1cmF0aW9uLCAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNh Z2UgOiBOVUxMKSwKKwkJCUV4cGxhaW5PbmVQbGFuKHBzdG10LCBpbnRvLCBJbnZhbGlkT2lkLCBl cywgcXVlcnlfc3RyaW5nLCBwYXJhbUxJLAorCQkJCQkJICAgcHN0YXRlLT5wX3F1ZXJ5RW52LCAm cGxhbmR1cmF0aW9uLAorCQkJCQkJICAgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCks CiAJCQkJCQkgICBlcy0+bWVtb3J5ID8gJm1lbV9jb3VudGVycyA6IE5VTEwpOwogCQllbHNlCiAJ CQlFeHBsYWluT25lVXRpbGl0eShwc3RtdC0+dXRpbGl0eVN0bXQsIGludG8sIGVzLCBwc3RhdGUs IHBhcmFtTEkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYWFkNDczMDVmMjAuLmRlZjdkZGUyMzMwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTEyMTMwLDcgKzEyMTMwLDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBD cmVhdGVBc1N0bXQKIAkJCXwgQ3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdT dG10Ci0JCQl8IEV4ZWN1dGVTdG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8K KwkJCXwgRXhlY3V0ZVN0bXQKKwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFy ZSAkJD0kMSAqLwogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFp bi5oCmluZGV4IGFhNTg3MmJjMTU0Li5mNWIwODg1N2FlOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvZXhwbGFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4u aApAQCAtMTAzLDcgKzEwMyw4IEBAIGV4dGVybiB2b2lkIEV4cGxhaW5PbmVVdGlsaXR5KE5vZGUg KnV0aWxpdHlTdG10LCBJbnRvQ2xhdXNlICppbnRvLAogCQkJCQkJCSAgRXhwbGFpblN0YXRlICpl cywgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCSAgUGFyYW1MaXN0SW5mbyBwYXJhbXMpOwog Ci1leHRlcm4gdm9pZCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIElu dG9DbGF1c2UgKmludG8sCitleHRlcm4gdm9pZCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAq cGxhbm5lZHN0bXQsCisJCQkJCQkgICBJbnRvQ2xhdXNlICppbnRvLCBPaWQgdGFyZ2V0dmFyLAog CQkJCQkJICAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCQkJ CQkgICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsCiAJ CQkJCQkgICBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRpb24sCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDUwZmI0NzhiNWU5Li5h ODY3ZmRkM2U3NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKQEAgLTEyODMsMyArMTI4Myw0MyBAQCBTRVQgc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CiBEUk9Q IFNDSEVNQSB4eHRhYiBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9u IHZhcmlhYmxlIHh4dGFiLmF2YXIKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGJpZ2ludDsKK0NSRUFU RSBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGUoYSBpbnQpOworSU5TRVJUIElOVE8gdmFyX3RhYl90 ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworVkFDVVVNIEFO QUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBMRVQgdmFyMSA9 IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFibGUpOworICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0 CisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUgcm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwK K1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0VYUExBSU4g KENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYpIExFVCB2YXIxID0g KFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdCAoYWN0dWFs IHJvd3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlIChhY3R1 YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rl c3RfdGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCisoNSByb3dzKQorCistLSBzaG91bGQg YmUgMTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IGU3YTRmZGVkYWU0Li44 YTZkYmZmZDU0ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bApAQCAtODc0LDMgKzg3NCwyNCBAQCBTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcgVE8gb2ZmOwogCiBEUk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKIERST1AgU0NIRU1BIHh4 dGFiIENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGJpZ2ludDsKKworQ1JFQVRFIFRB QkxFIHZhcl90YWJfdGVzdF90YWJsZShhIGludCk7CisKK0lOU0VSVCBJTlRPIHZhcl90YWJfdGVz dF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKworVkFDVVVNIEFO QUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworCitFWFBMQUlOIChDT1NUUyBPRkYpIExFVCB2YXIx ID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisKKy0tIHNob3Vs ZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGLCBUSU1JTkcgT0ZG LCBBTkFMWVpFLCBTVU1NQVJZIE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00g dmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hvdWxkIGJlIDEwCitTRUxFQ1QgdmFyMTsKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGU7Ci0tIAoy LjQ3LjAKCg== --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename="v20241113-0009-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0009-PREPARE-LET-support.patch"; charset="UTF-8" RnJvbSAxMWU1YWM0YjFhODdlNTA4M2E0MjJkYjk0ZThmZGNlZWI0Mjg4NmVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIHYy MDI0MTExMyAwOS8yMF0gUFJFUEFSRSBMRVQgc3VwcG9ydAoKSW4gY3VycmVudCBjb2RlIGJhc2Ug aXQgcmVxdWlyZXMganVzdCBzbWFsbCBjaGFuZ2VzIGluIHBhcnNlci4gSXQgaXMgbmljZQp0byBo YXZlIHRvIGhhdmUgcG9zc2liaWxpdHkgdG8gdXNlIHByZXBhcmVkIExFVCBzdGF0ZW1lbnRzIG1h aW5seSBkdWUgcmVkdWN0aW9uCm9mIHNlY3VyaXR5IHJpc2tzIChTUUwgaW5qZWN0aW9uKSwgYW5k IGltcGxlbWVudGF0aW9uIGlzIGFsbW9zdCBjaGVhcC4KCkV4cGxpY2l0IHByZXBhcmluZyBpcyBu b3QgbmVjZXNzaXR5IGZvciBzdXBwb3J0IG9mIExFVCBzdGF0ZW1lbnRzIGluIFBMLCBiZWNhdXNl ClBMIHVzZXMgU1BJIGZvciBxdWVyeSBleGVjdXRpb24sIGJ1dCBpdCBpcyBuaWNlIHRvIGhhdmUg dGhpcyBwb3NzaWJpbGl0eSAoY29tcGxldGVuZWVzLCAuLi4pCi0tLQogZG9jL3NyYy9zZ21sL3Jl Zi9wcmVwYXJlLnNnbWwgICAgICAgICAgICAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY3RlLmMgICAgICAgICAgICAgICAgfCAgNyArKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDQgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDgxICsrKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDU3ICsrKysrKysrKysrKysK IDYgZmlsZXMgY2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wcmVwYXJlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L3ByZXBhcmUuc2dtbAppbmRleCA4ZWU5NDM5ZjYxMS4uNDVkNzJiMWQ1MmIgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHJl cGFyZS5zZ21sCkBAIC0xMTYsOCArMTE2LDggQEAgUFJFUEFSRSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3MKICAg ICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgQW55IDxjb21tYW5kPlNFTEVDVDwvY29t bWFuZD4sIDxjb21tYW5kPklOU0VSVDwvY29tbWFuZD4sIDxjb21tYW5kPlVQREFURTwvY29tbWFu ZD4sCi0gICAgICA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29t bWFuZD4sIG9yIDxjb21tYW5kPlZBTFVFUzwvY29tbWFuZD4KLSAgICAgIHN0YXRlbWVudC4KKyAg ICAgIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwg PGNvbW1hbmQ+VkFMVUVTPC9jb21tYW5kPiwKKyAgICAgIG9yIDxjb21tYW5kPkxFVDwvY29tbWFu ZD4gc3RhdGVtZW50LgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZGVmN2RkZTIzMzAuLmFmNTExZDEyYWExIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTEyMTYxLDcgKzEyMTYxLDggQEAgUHJlcGFyYWJsZVN0bXQ6CiAJCQl8IEluc2Vy dFN0bXQKIAkJCXwgVXBkYXRlU3RtdAogCQkJfCBEZWxldGVTdG10Ci0JCQl8IE1lcmdlU3RtdAkJ CQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLworCQkJfCBNZXJnZVN0bXQKKwkJCXwg TGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLwogCQk7CiAKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2N0 ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCmluZGV4IGRlOWFlOWI0ODM0Li5i NGI5YjViNjFjOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUuYwpAQCAtMTI2LDYgKzEyNiwxMyBAQCB0 cmFuc2Zvcm1XaXRoQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2l0aENsYXVzZSAqd2l0aENs YXVzZSkKIAkJQ29tbW9uVGFibGVFeHByICpjdGUgPSAoQ29tbW9uVGFibGVFeHByICopIGxmaXJz dChsYyk7CiAJCUxpc3RDZWxsICAgKnJlc3Q7CiAKKwkJLyogTEVUIGlzIGFsbG93ZWQgYnkgcGFy c2VyLCBidXQgbm90IHN1cHBvcnRlZC4gUmVqZWN0IGZvciBub3cgKi8KKwkJaWYgKElzQShjdGUt PmN0ZXF1ZXJ5LCBMZXRTdG10KSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQllcnJtc2coIkxFVCBub3Qgc3VwcG9y dGVkIGluIFdJVEggcXVlcnkiKSwKKwkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3Rl LT5sb2NhdGlvbikpOworCiAJCWZvcl9lYWNoX2NlbGwocmVzdCwgd2l0aENsYXVzZS0+Y3Rlcywg bG5leHQod2l0aENsYXVzZS0+Y3RlcywgbGMpKQogCQl7CiAJCQlDb21tb25UYWJsZUV4cHIgKmN0 ZTIgPSAoQ29tbW9uVGFibGVFeHByICopIGxmaXJzdChyZXN0KTsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YwppbmRleCAzZWY0Nzc2ZDk4YS4uZGYzZTI1MzkyNzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMK QEAgLTQ2MjksOSArNDYyOSw5IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lk LAogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFV TFQiLCAiVkFMVUVTIikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAotLyogTEVUICovCisvKiBM RVQsIEVYUExBSU4gTEVULCBQUkVQQVJFIExFVCAqLwogCS8qIElmIHByZXYuIHdvcmQgaXMgTEVU IHN1Z2dlc3QgYSBsaXN0IG9mIHZhcmlhYmxlcyAqLwotCWVsc2UgaWYgKE1hdGNoZXMoIkxFVCIp KQorCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFf UVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKIAkvKiBDb21wbGV0ZSBMRVQgPHZh cmlhYmxlPiB3aXRoICI9IiAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFu eSkpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CmluZGV4IGE4NjdmZGQzZTc1Li5jYzRiNTk2NDc5OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTQzOSw5ICs0MzksOSBAQCBEUk9Q IFZBUklBQkxFIHZhcjEsIHZhcjI7CiAtLSB0aGUgTEVUIHN0YXRlbWVudCBzaG91bGQgYmUgZGlz YWxsb3dlZCBpbiBDVEUKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKIFdJVEggeCBBUyAo TEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKLUVSUk9SOiAgc3ludGF4IGVycm9yIGF0 IG9yIG5lYXIgIkxFVCIKK0VSUk9SOiAgTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lUSCBxdWVyeQog TElORSAxOiBXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7Ci0gICAg ICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgIF4KIC0tIHNob3VsZCBiZSBvawogTEVUIHZh cjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSk7CiAtLSBzaG91bGQgZmFpbApAQCAtMTMyMSw1ICsx MzIxLDgyIEBAIFNFTEVDVCB2YXIxOwogICAgMTAKICgxIHJvdykKIAorU0VUIHBsYW5fY2FjaGVf bW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CitQUkVQQVJFIHAxIEFTIExFVCB2YXIxID0gKFNF TEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CitMRVQgdmFyMSA9IE5VTEw7 CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDE7CisgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgU0VUIFNFU1NJT04gVkFSSUFCTEUKKyBSZXN1bHQKKyAgIEluaXRQ bGFuIDEKKyAgICAgLT4gIEFnZ3JlZ2F0ZQorICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdmFy X3RhYl90ZXN0X3RhYmxlCisoNSByb3dzKQorCistLSBzaG91bGQgYmUgTlVMTAorU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRikgRVhFQ1VURSBwMTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0IChh Y3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdhdGUg KGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90 YWJfdGVzdF90YWJsZSAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkKKyg1IHJvd3MpCisKKy0tIHNo b3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykK KworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworREVBTExPQ0FURSBwMTsKIERST1Ag VkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlOworQ1JFQVRFIFZB UklBQkxFIHZhcjEgbnVtZXJpYzsKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJp Y19wbGFuOworUFJFUEFSRSBwMShudW1lcmljKSBBUyBMRVQgdmFyMSA9ICQxOworUFJFUEFSRSBw MiBBUyBTRUxFQ1QgdmFyMTsKK0VYRUNVVEUgcDEocGkoKSArIDEwMCk7CitFWEVDVVRFIHAyOwor ICAgICAgdmFyMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tCisgMTAzLjE0MTU5MjY1MzU5Ciso MSByb3cpCisKKy0tIHByZXBhcmVkIHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uIHRlc3QKK0RST1Ag VkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWM7CistLSBzaG91bGQg YmUgTlVMTAorRVhFQ1VURSBwMjsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitE RUFMTE9DQVRFIHAxOworREVBTExPQ0FURSBwMjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK1NFVCBw bGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworQ1JFQVRFIFZBUklBQkxFIHZh cjEgbnVtZXJpY1tdOworUFJFUEFSRSBwMShpbnQsIG51bWVyaWMpIEFTIExFVCB2YXIxWyQxXSA9 ICQyOworTEVUIHZhcjEgPSAne30nOjpudW1lcmljW107CitFWEVDVVRFIHAxKDEsIDEwLjIpOwor RVhFQ1VURSBwMSgyLCAxMC4zKTsKK1NFTEVDVCB2YXIxOworICAgIHZhcjEgICAgIAorLS0tLS0t LS0tLS0tLQorIHsxMC4yLDEwLjN9CisoMSByb3cpCisKK0RFQUxMT0NBVEUgcDE7CitEUk9QIFZB UklBQkxFIHZhcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwK aW5kZXggOGE2ZGJmZmQ1NGUuLjY1YzJhNzk0MjVkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC04OTMsNSArODkzLDYyIEBAIEVYUExBSU4gKENPU1RT IE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYpIExFVCB2YXIxID0gKFNFTEVD VCBjb3VudCgqCiAtLSBzaG91bGQgYmUgMTAKIFNFTEVDVCB2YXIxOwogCitTRVQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworUFJFUEFSRSBwMSBBUyBMRVQgdmFyMSA9 IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFibGUpOworCitMRVQgdmFyMSA9 IE5VTEw7CisKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwMTsKKworLS0gc2hvdWxkIGJl IE5VTEwKK1NFTEVDVCB2YXIxOworCitFWFBMQUlOIChDT1NUUyBPRkYsIFRJTUlORyBPRkYsIEFO QUxZWkUsIFNVTU1BUlkgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgMTAKK1NFTEVD VCB2YXIxOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CisKK0RFQUxMT0NBVEUg cDE7CisKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxl OworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCitTRVQgcGxhbl9jYWNoZV9tb2Rl IFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworUFJFUEFSRSBwMShudW1lcmljKSBBUyBMRVQgdmFy MSA9ICQxOworUFJFUEFSRSBwMiBBUyBTRUxFQ1QgdmFyMTsKKworRVhFQ1VURSBwMShwaSgpICsg MTAwKTsKK0VYRUNVVEUgcDI7CisKKy0tIHByZXBhcmVkIHBsYW4gY2FjaGUgaW52YWxpZGF0aW9u IHRlc3QKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWM7 CisKKy0tIHNob3VsZCBiZSBOVUxMCitFWEVDVVRFIHAyOworCitERUFMTE9DQVRFIHAxOworREVB TExPQ0FURSBwMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgcGxhbl9jYWNoZV9tb2Rl IFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgbnVtZXJpY1td OworCitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZhcjFbJDFdID0gJDI7CisKK0xF VCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VYRUNVVEUg cDEoMiwgMTAuMyk7CisKK1NFTEVDVCB2YXIxOworCitERUFMTE9DQVRFIHAxOworRFJPUCBWQVJJ QUJMRSB2YXIxOwotLSAKMi40Ny4wCgo= --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename*0=v20241113-0010-implementation-of-temporary-session-variab.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0010-implementation-of-temporary-session-variab.patch"; charset="UTF-8" RnJvbSBhM2Q3NWEwMTM4NDMxOGUxZWU5NTIwM2MxOTExNGM3OGZmZDg4YmFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMDoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djIwMjQxMTEzIDEwLzIwXSBpbXBsZW1lbnRhdGlvbiBvZiB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJp YWJsZXMKClRoZSB0ZW1wb3JhcnkgdmFyaWFibGVzIGFyZSBjcmVhdGVkIGluc2lkZSB0ZW1wIHNj aGVtYSBhbmQgdGhleSBhcmUgZHJvcHBlZCBieSBkcm9wcGluZwp0aGlzIHNjaGVtYS4gRm9yIGNv bnNpc3RlbmN5IHdpdGggdGVtcCB0YWJsZXMsIHRoZSBDUkVBVEUgVEVNUCBWQVJJQUJMRSBjb21t YW5kIHN1cHBvcnRzCk9OIENPTU1JVCBEUk9QIGNsYXVzZS4gVGhlIHRlbXBvcmFyeSB2YXJpYWJs ZXMgd2l0aCB0aGlzIGNsYXVzZSBhcmUgY29sbGVjdGVkIGluIHhhY3RfZHJvcF9pdGVtcwpsaXN0 LiBUaGlzIGxpc3Qgc2hvdWxkIGJlIGNhcmVmdWxseSBtYWludGFpbmVkIGFuZCBjYW4gY29udGFp biBvbmx5IHZhbGlkIGVudHJpZXMgKG5vdAp5ZXQgZHJvcHBlZCkuIEZyb20gdGhpcyByZWFzb25z IG5vdyB0aGUgc3ViY29tbWl0IGFuZCBzdWJhYm9ydGluZyBoYXZlIHRvIGJlIGhhbmRsZWQuCi0t LQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEwICsK IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQog ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDE1ICstCiBz cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMgICAgICAgICAgICAgfCAgIDkgKwogc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgIDI0ICstCiBzcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAyMTggKysrKysrKysr KysrKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8 ICAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwg IDMwICsrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwg IDIyICstCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAg MTAgKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAg NSArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA5 ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgNiAr LQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNCArLQog c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmggICAgICAgICAgIHwgICAyICstCiAu Li4vaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAgIDMgKy0KIC4u Li9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICAgMyArLQogc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICstLQogLi4u L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTMwICsrKysrKysr KystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAgNjYg KysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAg IDEgKwogMjMgZmlsZXMgY2hhbmdlZCwgNTQ2IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKaW5kZXggYWE3OTY4NzZlOTcuLjY4ODExYTdhM2IyIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbApAQCAtOTgzOSw2ICs5ODM5LDE2IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZs dDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAg ICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8 dHlwZT5jaGFyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQWN0 aW9uIHBlcmZvcm1lZCBhdCBlbmQgb2YgdHJhbnNhY3Rpb246CisgICAgICAgPGxpdGVyYWw+bjwv bGl0ZXJhbD4gPSBubyBhY3Rpb24sIDxsaXRlcmFsPmQ8L2xpdGVyYWw+ID0gZHJvcCB0aGUgdmFy aWFibGUuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4K ICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxhdGlvbjwvc3RydWN0 ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dt bCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCAxZjZjODhjZjU1Ni4uMDVjOWEwYWViY2Mg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKQEAgLTUzNDMsOSArNTM0Myw5IEBAIFNFTEVDVCBjdXJyZW50X3VzZXJfaWQ7CiAgICAg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5v dCB0cmFuc2FjdGlvbmFsOgogICAgIGFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEg c2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5zYWN0aW9uIHdvbid0CiAgICAgYmUgdW5kb25lIGlm IHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAoanVzdCBsaWtlIHZhcmlhYmxlcyBpbgot ICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1zZWx2ZXMg YXJlIHBlcnNpc3RlbnQsIGJ1dAotICAgIHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0 ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlIGNvbnRlbnQgb2YKLSAgICB0ZW1wb3JhcnkgdGFibGVz KS4KKyAgICBwcm9jZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVtc2Vs dmVzIGNhbiBiZSBwZXJzaXN0ZW50CisgICAgb3IgdGVtcG9yYXJ5LCBidXQgdGhlaXIgdmFsdWVz IGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZCAobGlrZSB0aGUKKyAgICBjb250ZW50 IG9mIHRlbXBvcmFyeSB0YWJsZXMpLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IDA1YmY2N2UzNDExLi42NDIzNDYxODZmMCAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNiw3ICsyNiw4IEBAIFBv c3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgot Q1JFQVRFIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRFIFsgeyBU RU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0K KyAgICBbIE9OIENPTU1JVCBEUk9QIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4K ICA8cmVmc2VjdDE+CkBAIC0xMDQsNiArMTA1LDE4IEBAIENSRUFURSBWQVJJQUJMRSBbIElGIE5P VCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5 IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tY29tbWl0LWRyb3AiPgorICAgIDx0ZXJtPjxsaXRl cmFsPk9OIENPTU1JVCBEUk9QPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPk9OIENPTU1JVCBEUk9QPC9saXRlcmFsPiBjbGF1 c2Ugc3BlY2lmaWVzIHRoZSBiZWhhdmlvdXIgb2YgYQorICAgICAgdGVtcG9yYXJ5IHNlc3Npb24g dmFyaWFibGUgYXQgdHJhbnNhY3Rpb24gY29tbWl0LiBXaXRoIHRoaXMgY2xhdXNlLCB0aGUKKyAg ICAgIHNlc3Npb24gdmFyaWFibGUgaXMgZHJvcHBlZCBhdCBjb21taXQgdGltZS4gVGhlIGNsYXVz ZSBpcyBvbmx5IGFsbG93ZWQKKyAgICAgIGZvciB0ZW1wb3JhcnkgdmFyaWFibGVzLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwvdmFyaWFi bGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hhY3QuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwppbmRleCBi N2ViY2MyYTU1Ny4uMDFlM2Q0NjkzMDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hhY3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKQEAg LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2VudW0uaCIKICNpbmNsdWRlICJj YXRhbG9nL3N0b3JhZ2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgorI2luY2x1ZGUg ImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNt ZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbW9uL3Bn X3BybmcuaCIKQEAgLTIzMTYsNiArMjMxNyw5IEBAIENvbW1pdFRyYW5zYWN0aW9uKHZvaWQpCiAJ ICovCiAJc21nckRvUGVuZGluZ1N5bmNzKHRydWUsIGlzX3BhcmFsbGVsX3dvcmtlcik7CiAKKwkv KiByZW1vdmUgdmFsdWVzIG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBtZW1vcnkg Ki8KKwlBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKHRydWUpOworCiAJLyogY2xvc2UgbGFy Z2Ugb2JqZWN0cyBiZWZvcmUgbG93ZXItbGV2ZWwgY2xlYW51cCAqLwogCUF0RU9YYWN0X0xhcmdl T2JqZWN0KHRydWUpOwogCkBAIC0yOTEyLDYgKzI5MTYsNyBAQCBBYm9ydFRyYW5zYWN0aW9uKHZv aWQpCiAJQXRBYm9ydF9Qb3J0YWxzKCk7CiAJc21nckRvUGVuZGluZ1N5bmNzKGZhbHNlLCBpc19w YXJhbGxlbF93b3JrZXIpOwogCUF0RU9YYWN0X0xhcmdlT2JqZWN0KGZhbHNlKTsKKwlBdFByZUVP WGFjdF9TZXNzaW9uVmFyaWFibGVzKGZhbHNlKTsKIAlBdEFib3J0X05vdGlmeSgpOwogCUF0RU9Y YWN0X1JlbGF0aW9uTWFwKGZhbHNlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCUF0QWJvcnRfVHdv cGhhc2UoKTsKQEAgLTUxOTAsNiArNTE5NSw4IEBAIENvbW1pdFN1YlRyYW5zYWN0aW9uKHZvaWQp CiAJQXRFT1N1YlhhY3RfU1BJKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQpOwogCUF0RU9TdWJY YWN0X29uX2NvbW1pdF9hY3Rpb25zKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJ CSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKKwlBdEVPU3ViWGFjdF9TZXNzaW9uVmFy aWFibGVzKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCisJCQkJCQkJCSBzLT5wYXJlbnQtPnN1 YlRyYW5zYWN0aW9uSWQpOwogCUF0RU9TdWJYYWN0X05hbWVzcGFjZSh0cnVlLCBzLT5zdWJUcmFu c2FjdGlvbklkLAogCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOwogCUF0RU9T dWJYYWN0X0ZpbGVzKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCkBAIC01MzU1LDYgKzUzNjIs OCBAQCBBYm9ydFN1YlRyYW5zYWN0aW9uKHZvaWQpCiAJCUF0RU9TdWJYYWN0X1NQSShmYWxzZSwg cy0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJCUF0RU9TdWJYYWN0X29uX2NvbW1pdF9hY3Rpb25zKGZh bHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5z YWN0aW9uSWQpOworCQlBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGZhbHNlLCBzLT5zdWJU cmFuc2FjdGlvbklkLAorCQkJCQkJCQkJIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJ CUF0RU9TdWJYYWN0X05hbWVzcGFjZShmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJCQkJ CQkgIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJCUF0RU9TdWJYYWN0X0ZpbGVzKGZh bHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4 IGM3MzY5ZTJiMmFjLi40NTIwZWVkNmRhOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpA QCAtMzYsNyArMzYsOCBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29u c3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJCSBpbnQzMiB2YXJUeXBtb2QsCiAJCQkJCQkJCQkg T2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCi0JCQkJCQkJCQkgYm9v bCBpZl9ub3RfZXhpc3RzKTsKKwkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMsCisJCQkJCQkJ CQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24pOwogCiAKIC8qCkBAIC00 OSw3ICs1MCw4IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCWlu dDMyIHZhclR5cG1vZCwKIAkJCQlPaWQgdmFyT3duZXIsCiAJCQkJT2lkIHZhckNvbGxhdGlvbiwK LQkJCQlib29sIGlmX25vdF9leGlzdHMpCisJCQkJYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCVZh cmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKQogewogCUFjbAkJICAgKnZhcmFj bDsKIAlOYW1lRGF0YQl2YXJuYW1lOwpAQCAtMTEwLDYgKzExMiw3IEBAIGNyZWF0ZV92YXJpYWJs ZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cG1v ZCAtIDFdID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOwogCXZhbHVlc1tBbnVtX3BnX3Zhcmlh YmxlX3Zhcm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsKIAl2YWx1ZXNb QW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFy Q29sbGF0aW9uKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9uIC0g MV0gPSBDaGFyR2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAKIAl2YXJhY2wgPSBnZXRfdXNl cl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkgIHZhck5h bWVzcGFjZSk7CkBAIC0xODMsNiArMTg2LDEzIEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJT2lkCQkJdHlwY29sbGF0aW9u OwogCU9iamVjdEFkZHJlc3MgdmFyaWFibGU7CiAKKwkvKiBjaGVjayBjb25zaXN0ZW5jeSBvZiBh cmd1bWVudHMgKi8KKwlpZiAoc3RtdC0+WGFjdEVuZEFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5E X0RST1AKKwkJJiYgc3RtdC0+dmFyaWFibGUtPnJlbHBlcnNpc3RlbmNlICE9IFJFTFBFUlNJU1RF TkNFX1RFTVApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElE X09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJPTiBDT01NSVQgRFJPUCBjYW4gb25s eSBiZSB1c2VkIG9uIHRlbXBvcmFyeSB2YXJpYWJsZXMiKSkpOworCiAJbmFtZXNwYWNlaWQgPQog CQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFibGUsIE5v TG9jaywgTlVMTCk7CiAKQEAgLTIyMiw3ICsyMzIsOCBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0 YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHR5cG1v ZCwKIAkJCQkJCQkgICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCi0JCQkJCQkJICAg c3RtdC0+aWZfbm90X2V4aXN0cyk7CisJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJ CQkJCQkgICBzdG10LT5YYWN0RW5kQWN0aW9uKTsKIAogCWVsb2coREVCVUcxLCAicmVjb3JkIGZv ciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMgY3JlYXRlZCBpbiBwZ192YXJp YWJsZSIsCiAJCSBzdG10LT52YXJpYWJsZS0+cmVsbmFtZSwgdmFyaWFibGUub2JqZWN0SWQpOwpA QCAtMjMwLDYgKzI0MSw4IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3Jl YXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJLyogd2Ugd2FudCBTZXNzaW9uVmFyaWFibGVDcmVh dGVQb3N0cHJvY2VzcyB0byBzZWUgdGhlIGNhdGFsb2cgY2hhbmdlcy4gKi8KIAlDb21tYW5kQ291 bnRlckluY3JlbWVudCgpOwogCisJU2Vzc2lvblZhcmlhYmxlQ3JlYXRlUG9zdHByb2Nlc3ModmFy aWFibGUub2JqZWN0SWQsIHN0bXQtPlhhY3RFbmRBY3Rpb24pOworCiAJcmV0dXJuIHZhcmlhYmxl OwogfQogCkBAIC0yNDIsNiArMjU1LDcgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQpCiB7 CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBsZQl0dXA7CisJY2hhcgkJWGFjdEVuZEFjdGlvbjsK IAogCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2Nr KTsKIApAQCAtMjUwLDYgKzI2NCw4IEBAIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQogCWlm ICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQogCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZh aWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CiAKKwlYYWN0RW5kQWN0aW9uID0gKChGb3Jt X3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKSktPnZhcnhhY3RlbmRhY3Rpb247CisKIAlDYXRh bG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOwogCiAJUmVsZWFzZVN5c0NhY2hlKHR1 cCk7CkBAIC0yNTcsNSArMjczLDUgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQpCiAJdGFi bGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAogCS8qIGRvIHRoZSBuZWNlc3Nhcnkg Y2xlYW51cCBpbiBsb2NhbCBtZW1vcnksIGlmIG5lZWRlZCAqLwotCVNlc3Npb25WYXJpYWJsZURy b3BQb3N0cHJvY2Vzcyh2YXJpZCk7CisJU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKHZh cmlkLCBYYWN0RW5kQWN0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuYwppbmRleCAyMWM3YTk1MTdiNS4uYjIzYWUyMWJhNTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE2LDYgKzE2LDggQEAKIAogI2luY2x1ZGUgImFjY2Vz cy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1ZGUgImNh dGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3N2 YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtMzEsNiArMzMsMTkg QEAKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUu aCIKIAordHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlWEFjdERyb3BJdGVtCit7CisJT2lkCQkJdmFy aWQ7CQkJLyogdmFyaWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSAqLworCisJLyoKKwkgKiBjcmVhdGlu Z19zdWJpZCBpcyB0aGUgSUQgb2YgdGhlIGNyZWF0aW5nIHN1YnhhY3QuIElmIHRoZSBhY3Rpb24g d2FzCisJICogdW5yZWdpc3RlcmVkIGR1cmluZyB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiwgZGVs ZXRpbmdfc3ViaWQgaXMgdGhlIElECisJICogb2YgdGhlIGRlbGV0aW5nIHN1YnhhY3QsIG90aGVy d2lzZSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZC4KKwkgKi8KKwlTdWJUcmFuc2FjdGlvbklkIGNy ZWF0aW5nX3N1YmlkOworCVN1YlRyYW5zYWN0aW9uSWQgZGVsZXRpbmdfc3ViaWQ7Cit9IFNWYXJp YWJsZVhBY3REcm9wSXRlbTsKKwogLyoKICAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CiAgKiBpbiB0aGUg ZGVkaWNhdGVkIG1lbW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5 IGZvcm1hdC4KQEAgLTk2LDEzICsxMTEsMjEgQEAgc3RhdGljIE1lbW9yeUNvbnRleHQgU1Zhcmlh YmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CiBzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9uID0g ZmFsc2U7CiAKIC8qCi0gKiBUaGUgY29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVz IGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiAgV2UgZG8KLSAqIHRoYXQgaW4gdGhlIG5leHQg dHJhbnNhY3Rpb24gdGhhdCByZWFkcyBvciB3cml0ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgotICog InZhbGlkYXRlZF9seGlkIiBzdG9yZXMgdGhlIHRyYW5zYWN0aW9uIHRoYXQgcGVyZm9ybWVkIHNh aWQgdmFsaWRhdGlvbiwgc28KLSAqIHRoYXQgd2UgY2FuIGF2b2lkIHJlcGVhdGluZyB0aGUgZWZm b3J0LgorICogVGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3Qg cmVtb3ZlZCBpbW1lZGlhdGVseS4gIElmCisgKiBwb3NzaWJsZSwgd2UgZG8gdGhhdCBhdCB0aGUg ZW5kIG9mIHRoZSB0cmFuc2FjdGlvbi4gIEJ1dCB3ZSBjYW5ub3QgZG8gdGhhdAorICogaWYgdGhl IHRyYW5zYWN0aW9uIGFib3J0ZWQsIGJlY2F1c2Ugd2UgbG9zdCBhY2Nlc3MgdG8gdGhlIHN5c3Rl bSBjYXRhbG9nLgorICogSW4gdGhhdCBjYXNlLCB3ZSBjbGVhbiB1cCBpbiB0aGUgbmV4dCB0cmFu c2FjdGlvbiB0aGF0IHJlYWRzIG9yIHdyaXRlcyBhCisgKiBzZXNzaW9uIHZhcmlhYmxlLiAgInZh bGlkYXRlZF9seGlkIiBzdG9yZXMgdGhlIHRyYW5zYWN0aW9uIHRoYXQgcGVyZm9ybWVkCisgKiBz YWlkIHZhbGlkYXRpb24sIHNvIHRoYXQgd2UgY2FuIGF2b2lkIHJlcGVhdGluZyB0aGUgZWZmb3J0 LgogICovCiBzdGF0aWMgTG9jYWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9seGlkID0gSW52YWxp ZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorLyogbGlzdCBob2xkcyBmaWVsZHMgb2YgU1ZhcmlhYmxl WEFjdERyb3BJdGVtIHR5cGUgKi8KK3N0YXRpYyBMaXN0ICp4YWN0X2Ryb3BfaXRlbXMgPSBOSUw7 CisKK3N0YXRpYyB2b2lkIHJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2 YXJpZCk7CitzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9w KE9pZCB2YXJpZCk7CisKIC8qCiAgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJp YWJsZSBpbnZhbGlkYXRpb24uCiAgKi8KQEAgLTEzOSwxNiArMTYyLDQ1IEBAIHBnX3ZhcmlhYmxl X2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUp CiAJfQogfQogCisvKgorICogRG8gdGhlIG5lY2Vzc2FyeSB3b3JrIHRvIHNldHVwIGxvY2FsIG1l bW9yeSBtYW5hZ2VtZW50IG9mIGEgbmV3CisgKiB2YXJpYWJsZS4KKyAqCisgKiBDYWxsZXIgc2hv dWxkIGFscmVhZHkgaGF2ZSBjcmVhdGVkIHRoZSBuZWNlc3NhcnkgZW50cnkgaW4gY2F0YWxvZwor ICogYW5kIG1hZGUgdGhlbSB2aXNpYmxlLgorICovCit2b2lkCitTZXNzaW9uVmFyaWFibGVDcmVh dGVQb3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbikKK3sKKwkvKgorCSAq IEZvciB0ZW1wb3JhcnkgdmFyaWFibGVzLCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBlbmQgb2Yg eGFjdCBhY3Rpb24gdG8KKwkgKiBlbnN1cmUgZGVsZXRpb24gZnJvbSBjYXRhbG9nLgorCSAqLwor CWlmIChYYWN0RW5kQWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUCkKKwl7CisJCUFzc2Vy dChpc1RlbXBOYW1lc3BhY2UoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSkp OworCisJCXJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKHZhcmlkKTsKKwl9Cit9 CisKIC8qCiAgKiBIYW5kbGUgdGhlIGxvY2FsIG1lbW9yeSBjbGVhbnVwIGZvciBhIERST1AgVkFS SUFCTEUgY29tbWFuZC4KICAqCiAgKiBDYWxsZXIgc2hvdWxkIHRha2UgY2FyZSBvZiByZW1vdmlu ZyB0aGUgcGdfdmFyaWFibGUgZW50cnkgZmlyc3QuCiAgKi8KIHZvaWQKLVNlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCitTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nl c3MoT2lkIHZhcmlkLCBjaGFyIFhhY3RFbmRBY3Rpb24pCiB7CiAJQXNzZXJ0KExvY2FsVHJhbnNh Y3Rpb25JZElzVmFsaWQoTXlQcm9jLT52eGlkLmx4aWQpKTsKIAorCWlmIChYYWN0RW5kQWN0aW9u ID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUCkKKwl7CisJCUFzc2VydChpc1RlbXBOYW1lc3BhY2Uo Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSkpOworCisJCXVucmVnaXN0ZXJf c2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AodmFyaWQpOworCX0KKwogCWlmIChzZXNzaW9udmFy cykKIAl7CiAJCWJvb2wJCWZvdW5kOwpAQCAtMTcwLDYgKzIyMiw1NyBAQCBTZXNzaW9uVmFyaWFi bGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKQogCX0KIH0KIAorLyoKKyAqIFJlZ2lzdHJhdGlv biBvZiBhY3Rpb25zIHRvIGJlIGV4ZWN1dGVkIG9uIHNlc3Npb24gdmFyaWFibGVzIGF0IHRyYW5z YWN0aW9uCisgKiBlbmQgdGltZS4gV2Ugd2FudCB0byBkcm9wIHRlbXBvcmFyeSBzZXNzaW9uIHZh cmlhYmxlcyB3aXRoIGNsYXVzZSBPTiBDT01NSVQKKyAqIERST1AuCisgKi8KKworLyoKKyAqIFJl Z2lzdGVyIGEgc2Vzc2lvbiB2YXJpYWJsZSB4YWN0IGFjdGlvbi4KKyAqLworc3RhdGljIHZvaWQK K3JlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKK3sKKwlTVmFy aWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWk7CisJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwlv bGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQ2FjaGVNZW1vcnlDb250ZXh0KTsKKworCXhh Y3RfYWkgPSAoU1ZhcmlhYmxlWEFjdERyb3BJdGVtICopCisJCXBhbGxvYyhzaXplb2YoU1Zhcmlh YmxlWEFjdERyb3BJdGVtKSk7CisKKwl4YWN0X2FpLT52YXJpZCA9IHZhcmlkOworCisJeGFjdF9h aS0+Y3JlYXRpbmdfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCXhhY3Rf YWktPmRlbGV0aW5nX3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisKKwl4YWN0X2Ry b3BfaXRlbXMgPSBsY29ucyh4YWN0X2FpLCB4YWN0X2Ryb3BfaXRlbXMpOworCisJTWVtb3J5Q29u dGV4dFN3aXRjaFRvKG9sZGN4dCk7Cit9CisKKy8qCisgKiBVbnJlZ2lzdGVyIGFuIGlkIG9mIGEg Z2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGRyb3AgbGlzdC4gSW4gdGhpcworICogbW9tZW50 LCB0aGUgYWN0aW9uIGlzIGp1c3QgbWFya2VkIGFzIGRlbGV0ZWQgYnkgc2V0dGluZyBkZWxldGlu Z19zdWJpZC4gVGhlCisgKiBjYWxsaW5nIGV2ZW4gbWlnaHQgYmUgcm9sbGJhY2tlZCwgaW4gd2hp Y2ggY2FzZSB3ZSBzaG91bGQgbm90IGxvc2UgdGhpcworICogYWN0aW9uLgorICovCitzdGF0aWMg dm9pZAordW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcChPaWQgdmFyaWQpCit7 CisJTGlzdENlbGwgICAqbDsKKworCWZvcmVhY2gobCwgeGFjdF9kcm9wX2l0ZW1zKQorCXsKKwkJ U1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCShTVmFyaWFibGVYQWN0RHJvcEl0 ZW0gKikgbGZpcnN0KGwpOworCisJCWlmICh4YWN0X2FpLT52YXJpZCA9PSB2YXJpZCkKKwkJCXhh Y3RfYWktPmRlbGV0aW5nX3N1YmlkID0gR2V0Q3VycmVudFN1YlRyYW5zYWN0aW9uSWQoKTsKKwl9 Cit9CisKIC8qCiAgKiBSZWxlYXNlIHN0b3JlZCB2YWx1ZSwgZnJlZSBtZW1vcnkKICAqLwpAQCAt MjIyLDkgKzMyNSwxMSBAQCBpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFy KQogLyoKICAqIENoZWNrIGFsbCBwb3RlbnRpYWxseSBpbnZhbGlkIHNlc3Npb24gdmFyaWFibGUg ZGF0YSBpbiBsb2NhbCBtZW1vcnkgYW5kIGZyZWUKICAqIHRoZSBtZW1vcnkgZm9yIGFsbCBpbnZh bGlkIG9uZXMuICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgYW55IHJlYWQgb3IKLSAq IHdyaXRlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZS4gIEZyZWVpbmcgb2YgYSB2YXJpYWJsZSdzIG1l bW9yeSBpcyBwb3N0cG9uZWQgaWYKLSAqIHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGJ5 IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLCBzaW5jZSB0aGF0Ci0gKiBvcGVyYXRpb24gY291bGQg c3RpbGwgYmUgcm9sbGVkIGJhY2suCisgKiB3cml0ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgb3Ig d2hlbiB0aGUgdHJhbnNhY3Rpb24gZW5kcy4gIEF0IHRoZSBlbmQgb2YgYQorICogdHJhbnNhY3Rp b24gKGF0RU9YIGlzIHRydWUpIHdlIGNhbiBkaXNjYXJkIGFsbCBpbnZhbGlkIHZhcmlhYmxlcy4g IEluc2lkZSBhCisgKiB0cmFuc2FjdGlvbiAoYXRFT1ggaXMgZmFsc2UpIHdlIHBvc3Rwb25lIGZy ZWVpbmcgYSB2YXJpYWJsZSdzIG1lbW9yeSBpZiB0aGUKKyAqIHZhcmlhYmxlIGhhcyBiZWVuIGRy b3BwZWQgYnkgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQgb3BlcmF0aW9uCisg KiBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KICAqCiAgKiBJdCBpcyBwb3NzaWJsZSB0aGF0 IHdlIHJlY2VpdmUgYSBjYWNoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3aGlsZQogICogcmVtb3Zl X2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKSBpcyBleGVjdXRpbmcsIHNvIHdlIGNhbm5vdCBn dWFyYW50ZWUgdGhhdApAQCAtMjMyLDcgKzMzNyw3IEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFs aWQoU1ZhcmlhYmxlIHN2YXIpCiAgKiBkb25lLiAgSG93ZXZlciwgd2UgY2FuIGd1YXJhbnRlZSB0 aGF0IGFsbCBlbnRyaWVzIGdldCBjaGVja2VkIG9uY2UuCiAgKi8KIHN0YXRpYyB2b2lkCi1yZW1v dmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh2b2lkKQorcmVtb3ZlX2ludmFsaWRfc2Vzc2lv bl92YXJpYWJsZXMoYm9vbCBhdEVPWCkKIHsKIAlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOwogCVNW YXJpYWJsZQlzdmFyOwpAQCAtMjU5LDcgKzM2NCw3IEBAIHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25f dmFyaWFibGVzKHZvaWQpCiAJewogCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQogCQl7Ci0JCQlpZiAo c3Zhci0+ZHJvcF9seGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJaWYgKCFhdEVPWCAmJiBz dmFyLT5kcm9wX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCiAJCQl7CiAJCQkJLyogdHJ5IGFn YWluIGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uICovCiAJCQkJbmVlZHNfdmFsaWRhdGlvbiA9IHRy dWU7CkBAIC0yODAsNiArMzg1LDk1IEBAIHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVz KHZvaWQpCiAJfQogfQogCisvKgorICAqIFBlcmZvcm0gT04gQ09NTUlUIERST1AgZm9yIHRlbXBv cmFyeSBzZXNzaW9uIHZhcmlhYmxlcywKKyAgKiBhbmQgcmVtb3ZlIGFsbCBkcm9wcGVkIHZhcmlh YmxlcyBmcm9tIG1lbW9yeS4KKyAqLwordm9pZAorQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxl cyhib29sIGlzQ29tbWl0KQoreworCWlmIChpc0NvbW1pdCkKKwl7CisJCWlmICh4YWN0X2Ryb3Bf aXRlbXMpCisJCXsKKwkJCUxpc3RDZWxsICAgKmw7CisKKwkJCWZvcmVhY2gobCwgeGFjdF9kcm9w X2l0ZW1zKQorCQkJeworCQkJCVNWYXJpYWJsZVhBY3REcm9wSXRlbSAqeGFjdF9haSA9CisJCQkJ CShTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZpcnN0KGwpOworCisJCQkJLyogaXRlcmF0ZSBv bmx5IG92ZXIgZW50cmllcyB0aGF0IGFyZSBzdGlsbCBwZW5kaW5nICovCisJCQkJaWYgKHhhY3Rf YWktPmRlbGV0aW5nX3N1YmlkID09IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCQkJCXsKKwkJ CQkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisKKwkJCQkJb2JqZWN0LmNsYXNzSWQgPSBWYXJpYWJs ZVJlbGF0aW9uSWQ7CisJCQkJCW9iamVjdC5vYmplY3RJZCA9IHhhY3RfYWktPnZhcmlkOworCQkJ CQlvYmplY3Qub2JqZWN0U3ViSWQgPSAwOworCisJCQkJCS8qCisJCQkJCSAqIFNpbmNlIHRoaXMg aXMgYW4gYXV0b21hdGljIGRyb3AsIHJhdGhlciB0aGFuIG9uZQorCQkJCQkgKiBkaXJlY3RseSBp bml0aWF0ZWQgYnkgdGhlIHVzZXIsIHdlIHBhc3MgdGhlCisJCQkJCSAqIFBFUkZPUk1fREVMRVRJ T05fSU5URVJOQUwgZmxhZy4KKwkJCQkJICovCisJCQkJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2 YXJpYWJsZSAob2lkOiV1KSB3aWxsIGJlIGRlbGV0ZWQgKGZvcmNlZCBieSBPTiBDT01NSVQgRFJP UCBjbGF1c2UpIiwKKwkJCQkJCSB4YWN0X2FpLT52YXJpZCk7CisKKwkJCQkJcGVyZm9ybURlbGV0 aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCQkJCVBFUkZPUk1fREVMRVRJT05fSU5U RVJOQUwgfAorCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9RVUlFVExZKTsKKwkJCQl9CisJCQl9 CisJCX0KKworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKKwl9CisK KwkvKgorCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9wX2l0ZW1zLiBBbGwgcmVsYXRlZCB2 YXJpYWJsZXMgYXJlIGRyb3BwZWQKKwkgKiBub3csIG9yIGxvc3QgaW5zaWRlIGFib3J0ZWQgdHJh bnNhY3Rpb24uCisJICovCisJbGlzdF9mcmVlX2RlZXAoeGFjdF9kcm9wX2l0ZW1zKTsKKwl4YWN0 X2Ryb3BfaXRlbXMgPSBOVUxMOworfQorCisvKgorICogUG9zdC1zdWJjb21taXQgb3IgcG9zdC1z dWJhYm9ydCBjbGVhbnVwIG9mIHhhY3QgZHJvcCBsaXN0LgorICoKKyAqIER1cmluZyBzdWJhYm9y dCwgd2UgY2FuIGltbWVkaWF0ZWx5IHJlbW92ZSBlbnRyaWVzIGNyZWF0ZWQgZHVyaW5nIHRoaXMK KyAqIHN1YnRyYW5zYWN0aW9uLiBEdXJpbmcgc3ViY29tbWl0LCBqdXN0IHRyYW5zZmVyIGVudHJp ZXMgbWFya2VkIGR1cmluZworICogdGhpcyBzdWJ0cmFuc2FjdGlvbiBhcyBiZWluZyB0aGUgcGFy ZW50J3MgcmVzcG9uc2liaWxpdHkuCisgKi8KK3ZvaWQKK0F0RU9TdWJYYWN0X1Nlc3Npb25WYXJp YWJsZXMoYm9vbCBpc0NvbW1pdCwKKwkJCQkJCQkgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkLAor CQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIHBhcmVudFN1YmlkKQoreworCUxpc3RDZWxsICAgKmN1 cl9pdGVtOworCisJZm9yZWFjaChjdXJfaXRlbSwgeGFjdF9kcm9wX2l0ZW1zKQorCXsKKwkJU1Zh cmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCShTVmFyaWFibGVYQWN0RHJvcEl0ZW0g KikgbGZpcnN0KGN1cl9pdGVtKTsKKworCQlpZiAoIWlzQ29tbWl0ICYmIHhhY3RfYWktPmNyZWF0 aW5nX3N1YmlkID09IG15U3ViaWQpCisJCXsKKwkJCS8qIGN1cl9pdGVtIG11c3QgYmUgcmVtb3Zl ZCAqLworCQkJeGFjdF9kcm9wX2l0ZW1zID0gZm9yZWFjaF9kZWxldGVfY3VycmVudCh4YWN0X2Ry b3BfaXRlbXMsIGN1cl9pdGVtKTsKKwkJCXBmcmVlKHhhY3RfYWkpOworCQl9CisJCWVsc2UKKwkJ eworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSBwcmVzZXJ2ZWQgKi8KKwkJCWlmICh4YWN0X2FpLT5j cmVhdGluZ19zdWJpZCA9PSBteVN1YmlkKQorCQkJCXhhY3RfYWktPmNyZWF0aW5nX3N1YmlkID0g cGFyZW50U3ViaWQ7CisJCQlpZiAoeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPT0gbXlTdWJpZCkK KwkJCQl4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9IGlzQ29tbWl0ID8gcGFyZW50U3ViaWQgOiBJ bnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwkJfQorCX0KK30KKwogLyoKICAqIEluaXRpYWxpemUg YXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KQEAgLTQzOCw3ICs2MzIsNyBAQCBnZXRf c2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJCXZhbGlkYXRlZF9seGlkICE9IE15UHJvYy0+ dnhpZC5seGlkKQogCXsKIAkJLyogZnJlZSB0aGUgbWVtb3J5IGZyb20gZHJvcHBlZCBzZXNzaW9u IHZhcmlhYmxlcyAqLwotCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpOworCQly ZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhmYWxzZSk7CiAKIAkJLyogZG9uJ3QgcmVw ZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCiAJCXZhbGlkYXRl ZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CkBAIC01MzQsNyArNzI4LDcgQEAgU2V0U2Vzc2lv blZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCQl2YWxpZGF0 ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKIAl7CiAJCS8qIGZyZWUgdGhlIG1lbW9yeSBm cm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KLQkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lv bl92YXJpYWJsZXMoKTsKKwkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoZmFsc2Up OwogCiAJCS8qIGRvbid0IHJlcGVhdCB0aGUgYWJvdmUgc3RlcCBpbiB0aGUgc2FtZSB0cmFuc2Fj dGlvbiAqLwogCQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmll dy5jCmluZGV4IDJiZDQ5ZWI1NWU2Li5jNzM2YzVjNDZmMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdmlldy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwpAQCAt NDg0LDcgKzQ4NCw3IEBAIERlZmluZVZpZXcoVmlld1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1 ZXJ5U3RyaW5nLAogCSAqLwogCXZpZXcgPSBjb3B5T2JqZWN0KHN0bXQtPnZpZXcpOwkvKiBkb24n dCBjb3JydXB0IG9yaWdpbmFsIGNvbW1hbmQgKi8KIAlpZiAodmlldy0+cmVscGVyc2lzdGVuY2Ug PT0gUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5UCi0JCSYmIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlv bih2aWV3UGFyc2UpKQorCQkmJiBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHZpZXdQYXJzZSkpCiAJ ewogCQl2aWV3LT5yZWxwZXJzaXN0ZW5jZSA9IFJFTFBFUlNJU1RFTkNFX1RFTVA7CiAJCWVyZXBv cnQoTk9USUNFLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggODFiOGIwYTYzM2QuLjlkZmQ0MzUxMjhh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTMzOTAsMTAgKzMzOTAsMTAgQEAgdHJhbnNmb3JtQ3Jl YXRlVGFibGVBc1N0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVUYWJsZUFzU3RtdCAqc3Rt dCkKIAkJICogY3JlYXRpb24gcXVlcnkuIEl0IHdvdWxkIGJlIGhhcmQgdG8gcmVmcmVzaCBkYXRh IG9yIGluY3JlbWVudGFsbHkKIAkJICogbWFpbnRhaW4gaXQgaWYgYSBzb3VyY2UgZGlzYXBwZWFy ZWQuCiAJCSAqLwotCQlpZiAoaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uKHF1ZXJ5KSkKKwkJaWYg KGlzUXVlcnlVc2luZ1RlbXBPYmplY3QocXVlcnkpKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCQkgZXJybXNnKCJt YXRlcmlhbGl6ZWQgdmlld3MgbXVzdCBub3QgdXNlIHRlbXBvcmFyeSB0YWJsZXMgb3Igdmlld3Mi KSkpOworCQkJCQkgZXJybXNnKCJtYXRlcmlhbGl6ZWQgdmlld3MgbXVzdCBub3QgdXNlIHRlbXBv cmFyeSB0YWJsZXMsIHZpZXdzIG9yIHNlc3Npb24gdmFyaWFibGVzIikpKTsKIAogCQkvKgogCQkg KiBBIG1hdGVyaWFsaXplZCB2aWV3IHdvdWxkIGVpdGhlciBuZWVkIHRvIHNhdmUgcGFyYW1ldGVy cyBmb3IgdXNlIGluCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBhZjUxMWQxMmFhMS4uNzY2NTVhYThhZWIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQpAQCAtNDY2LDYgKzQ2Niw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZl Vmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAl dHlwZSA8aXZhbD4JIE9wdFRlbXAKICV0eXBlIDxpdmFsPgkgT3B0Tm9Mb2cKICV0eXBlIDxvbmNv bW1pdD4gT25Db21taXRPcHRpb24KKyV0eXBlIDxpdmFsPgkgWGFjdEVuZEFjdGlvbk9wdGlvbgog CiAldHlwZSA8aXZhbD4JZm9yX2xvY2tpbmdfc3RyZW5ndGgKICV0eXBlIDxub2RlPglmb3JfbG9j a2luZ19pdGVtCkBAIC01MjI5LDI2ICs1MjMwLDM5IEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0 ZW06CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIENyZWF0ZVNlc3Npb25WYXJTdG10OgotCQkJ Q1JFQVRFIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0 ZV9jbGF1c2UKKwkJCUNSRUFURSBPcHRUZW1wIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9h cyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsK IAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFy U3RtdCk7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDM7Ci0JCQkJCW4tPnR5cGVOYW1lID0gJDU7Ci0J CQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkNjsKKwkJCQkJJDQtPnJlbHBl cnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPnZhcmlhYmxlID0gJDQ7CisJCQkJCW4tPnR5cGVOYW1l ID0gJDY7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkNzsKKwkJCQkJ bi0+WGFjdEVuZEFjdGlvbiA9ICQ4OwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJ CQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBWQVJJQUJMRSBJRl9QIE5P VCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZQorCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVk X25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0 aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0 ZVNlc3Npb25WYXJTdG10KTsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNjsKLQkJCQkJbi0+dHlwZU5h bWUgPSAkODsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJ CQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNzsKKwkJCQkJ bi0+dHlwZU5hbWUgPSAkOTsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICop ICQxMDsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0 cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CiAJCTsKIAorLyoKKyAqIFRl bXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgZHJvcHBlZCBvbiBzdWNjZXNzZnVsCisg KiB0cmFuc2FjdGlvbiBlbmQgbGlrZSB0YWJsZXMuCisgKi8KK1hhY3RFbmRBY3Rpb25PcHRpb246 ICBPTiBDT01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CisJCQl8 IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfTk9PUDsgfQorCQk7CisK KwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBE QVRFIFsgVE8gdmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf cmVsYXRpb24uYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCmluZGV4IDgw NzViMWI4YTFiLi45NWFlMjEwODA0NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3JlbGF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMK QEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgdm9pZCBleHBhbmRUdXBsZURlc2MoVHVwbGVEZXNj IHR1cGRlc2MsIEFsaWFzICplcmVmLAogc3RhdGljIGludAlzcGVjaWFsQXR0TnVtKGNvbnN0IGNo YXIgKmF0dG5hbWUpOwogc3RhdGljIGJvb2wgcnRlX3Zpc2libGVfaWZfbGF0ZXJhbChQYXJzZVN0 YXRlICpwc3RhdGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSk7CiBzdGF0aWMgYm9vbCBydGVfdmlzaWJs ZV9pZl9xdWFsaWZpZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZVRibEVudHJ5ICpydGUpOwot c3RhdGljIGJvb2wgaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpub2RlLCB2 b2lkICpjb250ZXh0KTsKK3N0YXRpYyBib29sIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2Vy KE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwogCiAKIC8qCkBAIC0zODk2LDEzICszODk2LDEz IEBAIHJ0ZV92aXNpYmxlX2lmX3F1YWxpZmllZChQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJs RW50cnkgKnJ0ZSkKICAqIHRoZSBxdWVyeSBpcyBhIHRlbXBvcmFyeSByZWxhdGlvbiAodGFibGUs IHZpZXcsIG9yIG1hdGVyaWFsaXplZCB2aWV3KS4KICAqLwogYm9vbAotaXNRdWVyeVVzaW5nVGVt cFJlbGF0aW9uKFF1ZXJ5ICpxdWVyeSkKK2lzUXVlcnlVc2luZ1RlbXBPYmplY3QoUXVlcnkgKnF1 ZXJ5KQogewotCXJldHVybiBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKChOb2RlICop IHF1ZXJ5LCBOVUxMKTsKKwlyZXR1cm4gaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxrZXIoKE5v ZGUgKikgcXVlcnksIE5VTEwpOwogfQogCiBzdGF0aWMgYm9vbAotaXNRdWVyeVVzaW5nVGVtcFJl bGF0aW9uX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQoraXNRdWVyeVVzaW5nVGVt cE9iamVjdF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKIHsKIAlpZiAobm9kZSA9 PSBOVUxMKQogCQlyZXR1cm4gZmFsc2U7CkBAIC0zOTI4LDEzICszOTI4LDIzIEBAIGlzUXVlcnlV c2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKIAkJfQog CiAJCXJldHVybiBxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwKLQkJCQkJCQkJIGlzUXVlcnlVc2lu Z1RlbXBSZWxhdGlvbl93YWxrZXIsCisJCQkJCQkJCSBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dh bGtlciwKIAkJCQkJCQkJIGNvbnRleHQsCiAJCQkJCQkJCSBRVFdfSUdOT1JFX0pPSU5BTElBU0VT KTsKIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0g KFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkK KwkJeworCQkJaWYgKGlzQW55VGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2UocC0+cGFyYW12YXJpZCkpKQorCQkJCXJldHVybiB0cnVlOworCQl9CisJfQogCiAJcmV0 dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwKLQkJCQkJCQkJICBpc1F1ZXJ5VXNpbmdU ZW1wUmVsYXRpb25fd2Fsa2VyLAorCQkJCQkJCQkgIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fs a2VyLAogCQkJCQkJCQkgIGNvbnRleHQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGM1MmM4ZmQxNDdmLi5k MDJmNjQxNmYwZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUyMDYsNyArNTIwNiw3IEBAIGxpc3RWYXJpYWJsZXMo Y29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVyRGF0YSBidWY7 CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0J c3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJh bnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAwMDApCiAJewpA QCAtNTIyNiwxMiArNTIyNiwxNiBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYudmFydHlw ZSwgdi52YXJ0eXBtb2QpIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICAoU0VMRUNUIGMuY29sbG5h bWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5cGUgYnRc biIKIAkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNvbGxhdGlvbiBBTkQgYnQub2lkID0g di52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50eXBjb2xsYXRpb24pIGFzIFwiJXNc IixcbiIKLQkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBh cyBcIiVzXCJcbiIsCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJv d25lcikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4i CisJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKKwkJCQkJICAi ICBFTkQgYXMgXCIlc1wiXG4iLAogCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiksCiAJCQkJ CSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBlIiksCiAJ CQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKLQkJCQkJICBnZXR0ZXh0X25vb3AoIk93 bmVyIikpOworCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKKwkJCQkJICBnZXR0ZXh0X25v b3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIAogCWlmICh2ZXJib3NlKQogCXsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYwppbmRleCBkZjNlMjUzOTI3MC4uM2ZiMmM0ZTkyNDggMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKQEAgLTM1OTMsNyArMzU5Myw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRz KGludCBwYXR0ZXJuX2lkLAogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBD UkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSAiQ1JFQVRF IFRFTVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMgKi8KIAllbHNl IGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikpCi0JCUNPTVBMRVRF X1dJVEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVfV0lUSCgiU0VR VUVOQ0UiLCAiVEFCTEUiLCAiVkFSSUFCTEUiLCAiVklFVyIpOwogCS8qIENvbXBsZXRlICJDUkVB VEUgVU5MT0dHRUQiIHdpdGggVEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlmIChUYWlsTWF0 Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwgIlNF UVVFTkNFIik7CkBAIC0zOTQ0LDcgKzM5NDQsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAl9CiAvKiBDUkVBVEUgVkFSSUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRl IENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlIENSRUFU RSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyAqLwotCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVB VEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFU RSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBP UkFSWSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQVMiKTsKIAll bHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCiAJCS8qIENv bXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyB0eXBlcyAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ192YXJpYWJsZS5oCmluZGV4IGRiNTkzY2Q1YmVkLi4xZTZkZDk4ZDQxNSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTUsNiArNTUsOSBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxl LDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBl ICovCiAJaW50MzIJCXZhcnR5cG1vZCBCS0lfREVGQVVMVCgtMSk7CiAKKwkvKiBhY3Rpb24gb24g dHJhbnNhY3Rpb24gZW5kICovCisJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChu KTsKKwogCS8qIHZhcmlhYmxlIGNvbGxhdGlvbiAqLwogCU9pZAkJCXZhcmNvbGxhdGlvbiBCS0lf REVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xsYXRpb24pOwogCkBAIC02Nyw2ICs3MCwx MiBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogI2VuZGlm CiB9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOwogCit0eXBlZGVmIGVudW0gVmFyaWFibGVYYWN0RW5k QWN0aW9uCit7CisJVkFSSUFCTEVfWEFDVEVORF9OT09QID0gJ24nLAkvKiBOT09QICovCisJVkFS SUFCTEVfWEFDVEVORF9EUk9QID0gJ2QnLAkvKiBPTiBDT01NSVQgRFJPUCAqLworfQkJCVZhcmlh YmxlWGFjdEVuZEFjdGlvbjsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJCUZvcm1fcGdfdmFy aWFibGUgY29ycmVzcG9uZHMgdG8gYSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAogICoJCXRoZSBm b3JtYXQgb2YgdGhlIHBnX3ZhcmlhYmxlIHJlbGF0aW9uLgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oCmluZGV4IDNkYWI4YWUyYTQ4Li5kYzgzMjk2YjFiYSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNyArMjEsMTEgQEAKICNpbmNs dWRlICJ0Y29wL2NtZHRhZy5oIgogI2luY2x1ZGUgInV0aWxzL3F1ZXJ5ZW52aXJvbm1lbnQuaCIK IAotZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCk7 CitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVDcmVhdGVQb3N0cHJvY2VzcyhPaWQgdmFyaWQs IGNoYXIgWGFjdEVuZEFjdGlvbik7CitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9z dHByb2Nlc3MoT2lkIHZhcmlkLCBjaGFyIFhhY3RFbmRBY3Rpb24pOworZXh0ZXJuIHZvaWQgQXRQ cmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KTsKK2V4dGVybiB2b2lkIEF0 RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwgU3ViVHJhbnNhY3Rpb25J ZCBteVN1YmlkLAorCQkJCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIHBhcmVudFN1YmlkKTsKIAog ZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJv b2wgaXNOdWxsKTsKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNo ZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAppbmRleCAwNGFiMjJiZDQ5Mi4uN2E1MTllMDg0MjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKQEAgLTM0NzcsNiArMzQ3Nyw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Npb25WYXJT dG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJpYWJsZSAqLwog CUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJLyogZG8g bm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCWNoYXIJCVhhY3RFbmRBY3Rpb247CS8q IG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CiAK IApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA0YjI0MjRkNmQzNC4uNjE3NGE1NTYyYzUgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oCkBAIC01MSw3ICs1MSw5IEBAIHR5cGVkZWYgc3RydWN0IEFsaWFzCiAJ TGlzdAkgICAqY29sbmFtZXM7CQkvKiBvcHRpb25hbCBsaXN0IG9mIGNvbHVtbiBhbGlhc2VzICov CiB9IEFsaWFzOwogCi0vKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1lIGZvciB0ZW1wb3Jhcnkg cmVsYXRpb25zICovCisvKgorICogV2hhdCB0byBkbyBhdCBjb21taXQgdGltZSBmb3IgdGVtcG9y YXJ5IHJlbGF0aW9ucyBvciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqLwogdHlwZWRlZiBlbnVtIE9u Q29tbWl0QWN0aW9uCiB7CiAJT05DT01NSVRfTk9PUCwJCQkJLyogTm8gT04gQ09NTUlUIGNsYXVz ZSAoZG8gbm90aGluZykgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9y ZWxhdGlvbi5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKaW5kZXggOTFm ZDhlMjQzYjUuLmE4MTE3YmNhZTNmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfcmVsYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaApA QCAtMTI2LDYgKzEyNiw2IEBAIGV4dGVybiBpbnQJYXR0bmFtZUF0dE51bShSZWxhdGlvbiByZCwg Y29uc3QgY2hhciAqYXR0bmFtZSwgYm9vbCBzeXNDb2xPSyk7CiBleHRlcm4gY29uc3QgTmFtZURh dGEgKmF0dG51bUF0dE5hbWUoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7CiBleHRlcm4gT2lkCWF0 dG51bVR5cGVJZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVybiBPaWQJYXR0bnVtQ29s bGF0aW9uSWQoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7Ci1leHRlcm4gYm9vbCBpc1F1ZXJ5VXNp bmdUZW1wUmVsYXRpb24oUXVlcnkgKnF1ZXJ5KTsKK2V4dGVybiBib29sIGlzUXVlcnlVc2luZ1Rl bXBPYmplY3QoUXVlcnkgKnF1ZXJ5KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX1JFTEFUSU9O X0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZh cmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxl Lm91dAppbmRleCAwYTU1NzlkYzdjZS4uYTYwOTc5N2RjNWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dAorKysgYi9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKQEAgLTg2LDEwICs4NiwxMSBA QCBteXZhcgogCiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKLXN0YXJ0aW5nIHBlcm11dGF0aW9uOiBj cmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNj MyBzdGF0ZQorc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBjcmVh dGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCiBzdGVwIGNyZWF0 ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4dDsKIHN0ZXAgbGV0MzogTEVUIG15dmFy MyA9ICd0ZXN0JzsKIHN0ZXAgczM6IEJFR0lOOworc3RlcCBvX2NfZDogQ1JFQVRFIFRFTVAgVkFS SUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsKIHN0ZXAgY3JlYXRlNDog Q1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Owogc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0g J3Rlc3QnOwogc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjIGIvc3JjL3Rlc3Qv aXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwppbmRleCBjODY0ZmVlNDAwNi4u NDVlNjVkNDA4NWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9u LXZhcmlhYmxlLnNwZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFy aWFibGUuc3BlYwpAQCAtMjQsNiArMjQsNyBAQCBzdGVwIGNyZWF0ZQkJeyBDUkVBVEUgVkFSSUFC TEUgbXl2YXIgQVMgdGV4dDsgfQogc2Vzc2lvbiBzMwogc3RlcCBzMwkJCXsgQkVHSU47IH0KIHN0 ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CitzdGVwIG9fY19kCQl7IENSRUFURSBU RU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7IH0KIHN0ZXAg Y3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQogc3RlcCBsZXQ0CQl7 IExFVCBteXZhcjQgPSAndGVzdCc7IH0KIHN0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJQUJMRSBteXZh cjQ7IH0KQEAgLTQ3LDQgKzQ4LDQgQEAgcGVybXV0YXRpb24gbGV0IHZhbCBkYmcgZHJvcCBjcmVh dGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0aGUgY29uY3VycmVudCBk cm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsIHNyMQog IyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBxdWV1ZXMgaGF2ZSBhY3Rp b25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxldDQg ZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitwZXJtdXRhdGlvbiBjcmVhdGUz IGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNj MyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggODhlMjExOTQ3MTEuLjYx MDc3YTUyYjE2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU5MzUsMjAgKzU5 MzUsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFy IENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5 cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IEFjY2VzcyBw cml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwg QyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgIHwg CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAg fCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQg YWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEg VE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9u JzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAg ICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCAg ICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2Ny aXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEg fCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIg fCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21l IGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIg ICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwg ICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAg ICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRp b24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3Jp cHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVn cmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAK IERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTY0MTYsOSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1h cwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAot LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBD b2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNh dGlvbnMuCkBAIC02NTkxLDkgKzY1OTEsOSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9v IG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5 ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxp ZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJs ZSIKLSAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUg fCBDb2xsYXRpb24gfCBPd25lciAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBj dXJyZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjcz MCw5ICs2NzMwLDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgwIHJvd3MpCiAK IFxkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0 aW9uIHwgT3duZXIgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBO YW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9u IAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRh dGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBjYzRiNTk2NDc5OS4u NmRhZGI5MDc0ZGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CkBAIC00NSwxMSArNDUsMTEgQEAgU0VUIFJPTEUgVE8gcmVncmVzc192YXJp YWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKIFNFVCBS T0xFIFRPIERFRkFVTFQ7CiBcZFYrIHN2YXJ0ZXN0LnZhcjEKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSAg U2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8 IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdl ciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxl X293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKLSAgICAgICAgICB8ICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFy aWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwg ICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAg ICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9u IAorLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgc3ZhcnRlc3Qg fCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jl c3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAogKDEg cm93KQogCiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CkBAIC0xNDAwLDMgKzE0MDAsMTIz IEBAIFNFTEVDVCB2YXIxOwogCiBERUFMTE9DQVRFIHAxOwogRFJPUCBWQVJJQUJMRSB2YXIxOwor LS0gdGVtcG9yYXJ5IHZhcmlhYmxlcworQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7 CistLSB0aGlzIHZpZXcgc2hvdWxkIGJlIHRlbXBvcmFyeQorQ1JFQVRFIFZJRVcgdmFyX3Rlc3Rf dmlldyBBUyBTRUxFQ1QgdmFyMTsKK05PVElDRTogIHZpZXcgInZhcl90ZXN0X3ZpZXciIHdpbGwg YmUgYSB0ZW1wb3JhcnkgdmlldworRFJPUCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CitOT1RJQ0U6 ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdmFyX3Rlc3RfdmlldworQkVHSU47CisgIENSRUFURSBU RU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEw MDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworQ09N TUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxl IFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJv dykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25f dmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47 CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBM RVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygx IHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEg cm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09N TUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01N SVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUg V0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93 KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitCRUdJTjsK KyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExF VCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xMQkFDSzsKKy0tIHNob3Vs ZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1l ID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3Vs ZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor IGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVN UCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7 CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICBST0xMQkFDSyBUTyBz MTsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworQ09N TUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxl IFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJv dykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25f dmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDY1YzJhNzk0MjVkLi43 NzBjZTY1MDY4NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bApAQCAtODI2LDYgKzgyNiw3IEBAIEJFR0lOOwogICBEUk9QIFZBUklBQkxFIHZhcjE7CiAgIFNF TEVDVCB2YXIyOwogUk9MTEJBQ0s7CisKIC0tIHNob3VsZCBiZSBvawogU0VMRUNUIHZhcjE7CiAK QEAgLTk1MiwzICs5NTMsNjggQEAgU0VMRUNUIHZhcjE7CiAKIERFQUxMT0NBVEUgcDE7CiBEUk9Q IFZBUklBQkxFIHZhcjE7CisKKy0tIHRlbXBvcmFyeSB2YXJpYWJsZXMKK0NSRUFURSBURU1QIFZB UklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNob3VsZCBiZSB0ZW1wb3JhcnkKK0NS RUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUg dmFyMSBDQVNDQURFOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBp bnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK0NP TU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBU RU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEw MDsKKyAgU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVD VCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBz aG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1J VCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlU OworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUg V0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAg VkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOwor ICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7Cist LSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENP TU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZB UklBQkxFIHZhcjE7CisgIFJPTExCQUNLIFRPIHMxOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsK KworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdI RVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCop IEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5k ZXggYmJmYWFiNTcwODMuLjI3ZTM1MmZhMzQxIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApA QCAtMjc5Niw2ICsyNzk2LDcgQEAgU3VwcG9ydFJlcXVlc3RXRnVuY01vbm90b25pYwogU1Zhcmlh YmxlCiBTVmFyaWFibGVEYXRhCiBTVmFyaWFibGVTdGF0ZQorU1ZhcmlhYmxlWEFjdERyb3BJdGVt CiBTeW4KIFN5bmNPcHMKIFN5bmNSZXBDb25maWdEYXRhCi0tIAoyLjQ3LjAKCg== --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename*0=v20241113-0011-Implementation-ON-TRANSACTION-END-RESET-cl.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0011-Implementation-ON-TRANSACTION-END-RESET-cl.patch"; charset="UTF-8" RnJvbSBiZjkxNjJiYjAwMzIzODlmZjQ3ZGRlODllODUwZmU3NTNkMTg4M2U4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMjoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djIwMjQxMTEzIDExLzIwXSBJbXBsZW1lbnRhdGlvbiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQK IGNsYXVzZQoKVGhpcyBpcyBzaW1wbGUgcGF0Y2ggLSBqdXN0IGFkZCBzcGVjaWFsIGZsYWcgdG8g c2Vzc2lvbiB2YXJpYWJsZSBtZW1vcnkgZW50cnkuClRoZSBlbnRyaWVzIHdpdGggYWN0aXZlIHRo aXMgZmxhZyBhcmUgcmVtb3ZlZCBmcm9tIHNlc3Npb252YXJzIGhhc2ggdGFibGUKYXQgdHJhbnNh Y3Rpb24gZW5kLiBUaGUgIlRSQU5TQUNUSU9OIEVORCIgaXMgc3lub255bXMgZm9yICJDT01NSVQg Uk9MTEJBQ0siCmJ1dCB0aGUgIlRSQU5TQUNUSU9OIEVORCIgaXMgbW9yZSBpbGx1c3RyYXRpdmUg YW5kIGxlc3MgY29uZnVzaW5nIHRoZW4gIkNPTU1JVCBST0xMQkFDSyIuCi0tLQogZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIGRvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8IDEzICsrKystCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCA1MSArKysrKysrKysrKysrKysr KysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMSAr CiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAxMSArKysr CiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBz cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAxOCArKysrKysr CiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgMSArCiAuLi4v aXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAgNCArLQogLi4uL2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDQgKy0KIC4uLi9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDM0ICsrKysrKysrKysrKysK IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDIwICsrKysr KysrCiAxMyBmaWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IDY4ODExYTdhM2IyLi43NmVmZjgxM2I0MyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKQEAgLTk4NDUsNyArOTg0NSw4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtp dGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8 L3BhcmE+CiAgICAgICA8cGFyYT4KICAgICAgICBBY3Rpb24gcGVyZm9ybWVkIGF0IGVuZCBvZiB0 cmFuc2FjdGlvbjoKLSAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9IG5vIGFjdGlvbiwgPGxp dGVyYWw+ZDwvbGl0ZXJhbD4gPSBkcm9wIHRoZSB2YXJpYWJsZS4KKyAgICAgICA8bGl0ZXJhbD5u PC9saXRlcmFsPiA9IG5vIGFjdGlvbiwgPGxpdGVyYWw+ZDwvbGl0ZXJhbD4gPSBkcm9wIHRoZSB2 YXJpYWJsZSwKKyAgICAgICA8bGl0ZXJhbD5yPC9saXRlcmFsPiA9IHJlc2V0IHRoZSB2YXJpYWJs ZSB0byBpdHMgZGVmYXVsdCB2YWx1ZS4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jv dz4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggNjQyMzQ2MTg2ZjAu LmUxYzI5NDBkNGNhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJs ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI3 LDcgKzI3LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2Pgog PHN5bm9wc2lzPgogQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElG IE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9y ZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KLSAgICBbIE9OIENPTU1JVCBEUk9QIF0KKyAgICBbIHsg T04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCiA8L3N5bm9wc2lz PgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtMTE3LDYgKzExNywxNyBAQCBD UkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRy eT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW9uLXRyYW5zYWN0 aW9uLWVuZC1yZXNldCI+CisgICAgPHRlcm0+PGxpdGVyYWw+T04gVFJBTlNBQ1RJT04gRU5EIFJF U0VUPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhlIDxsaXRlcmFsPk9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDwvbGl0ZXJhbD4gY2xhdXNlIGNh dXNlcyB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgdG8gYmUgcmVzZXQgdG8gaXRzIGRlZmF1 bHQgdmFsdWUgd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgY29tbWl0dGVkCisgICAgICBvciByb2xs ZWQgYmFjay4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKwogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggYjIzYWUyMWJhNTUuLjBiNTEyODE1ZDRhIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC04Myw2ICs4Myw4IEBAIHR5 cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAl2b2lkCSAgICpkb21haW5fY2hlY2tfZXh0cmE7 CiAJTG9jYWxUcmFuc2FjdGlvbklkIGRvbWFpbl9jaGVja19leHRyYV9seGlkOwogCisJYm9vbAkJ cmVzZXRfYXRfZW94OworCiAJLyoKIAkgKiBUb3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQg b2YgdGhlIGxhc3QgdHJhbnNhY3Rpb24gdGhhdCBkcm9wcGVkIHRoZQogCSAqIHZhcmlhYmxlLCBp ZiBhbnkuICBXZSBuZWVkIHRoaXMgaW5mb3JtYXRpb24gdG8gYXZvaWQgZnJlZWluZyBtZW1vcnkg Zm9yCkBAIC0xMTAsNiArMTEyLDEyIEBAIHN0YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1l bW9yeUNvbnRleHQgPSBOVUxMOwogLyogYmVjb21lcyB0cnVlIHdoZW4gd2UgcmVjZWl2ZSBhIHNp bnZhbCBtZXNzYWdlICovCiBzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CiAK Ky8qCisgKiB0cnVlLCB3aGVuIHNvbWUgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIGhhcyBPTiBDT01N SVQgRFJPUAorICogb3IgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIGNsYXVzZXMKKyAqLworc3Rh dGljIGJvb2wgaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRfYXRfZW94ID0gZmFsc2U7 CisKIC8qCiAgKiBUaGUgY29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5v dCByZW1vdmVkIGltbWVkaWF0ZWx5LiAgSWYKICAqIHBvc3NpYmxlLCB3ZSBkbyB0aGF0IGF0IHRo ZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLiAgQnV0IHdlIGNhbm5vdCBkbyB0aGF0CkBAIC0zODUs NiArMzkzLDMyIEBAIHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wgYXRFT1gp CiAJfQogfQogCisvKgorICogcmVtb3ZlIGVudHJpZXMgbWFya2VkIGFzICJyZXNldF9hdF9lb3gi CisgKi8KK3N0YXRpYyB2b2lkCityZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9h dF9lb3godm9pZCkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFy OworCisJaWYgKCFzZXNzaW9udmFycykKKwkJcmV0dXJuOworCisJLyogbGVhdmUgcXVja2x5LCB3 aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2YXJpYWJsZXMgKi8KKwlpZiAoIWhhc19zZXNzaW9uX3Zh cmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCkKKwkJcmV0dXJuOworCisJaGFzaF9zZXFfaW5pdCgm c3RhdHVzLCBzZXNzaW9udmFycyk7CisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9z ZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCXsKKwkJaWYgKHN2YXItPnJlc2V0X2F0X2Vv eCkKKwkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZF LCBOVUxMKTsKKwl9CisKKwloYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3gg PSBmYWxzZTsKK30KKwogLyoKICAgKiBQZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZvciB0ZW1wb3Jh cnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAgICogYW5kIHJlbW92ZSBhbGwgZHJvcHBlZCB2YXJpYWJs ZXMgZnJvbSBtZW1vcnkuCkBAIC0zOTIsNiArNDI2LDggQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lv bl92YXJpYWJsZXMoYm9vbCBhdEVPWCkKIHZvaWQKIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJs ZXMoYm9vbCBpc0NvbW1pdCkKIHsKKwlyZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNl dF9hdF9lb3goKTsKKwogCWlmIChpc0NvbW1pdCkKIAl7CiAJCWlmICh4YWN0X2Ryb3BfaXRlbXMp CkBAIC01MDMsNiArNTM5LDIxIEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2 YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXIt PmRvbWFpbl9jaGVja19leHRyYV9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAor CS8qCisJICogV2UgZG9uJ3QgbmVlZCB0byBleHBsaWNpdGx5IHJlc2V0IHZhcmlhYmxlcyBtYXJr ZWQgT04gQ09NTUlUIERST1AuIEl0CisJICogY2FuIGJlIGRvbmUgYnkgc2ludmFsIG1lc3NhZ2Ug cHJvY2Vzc2luZy4gQnV0IHRoaXMgcHJvY2Vzc2luZyBjYW4gYmUKKwkgKiBwb3N0cG9uZWQgZHVl IGFib3J0ZWQgdHJhbnNhY3Rpb24uIE9uIHNlY29uZCBoYW5kIHRoZXJlIGlzIG5vdCBhCisJICog cmVhc29uLCB3aHkgZG9uJ3QgZG8gaXQgYXQgdHJhbnNhY3Rpb24gZW5kIGltbWVkaWF0ZWx5Lgor CSAqLworCWlmICh2YXJmb3JtLT52YXJ4YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRf UkVTRVQgfHwKKwkJdmFyZm9ybS0+dmFyeGFjdGVuZGFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5E X0RST1ApCisJeworCQlzdmFyLT5yZXNldF9hdF9lb3ggPSB0cnVlOworCQloYXNfc2Vzc2lvbl92 YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSB0cnVlOworCX0KKwllbHNlCisJCXN2YXItPnJl c2V0X2F0X2VveCA9IGZhbHNlOworCiAJc3Zhci0+ZHJvcF9seGlkID0gSW52YWxpZFRyYW5zYWN0 aW9uSWQ7CiAKIAlzdmFyLT5pc251bGwgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNzY2NTVhYThh ZWIuLmQ4ZGU4YWNmOTQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTUyNTksNiArNTI1OSw3IEBAIENyZWF0 ZVNlc3Npb25WYXJTdG10OgogICogdHJhbnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgogICovCiBY YWN0RW5kQWN0aW9uT3B0aW9uOiAgT04gQ09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hB Q1RFTkRfRFJPUDsgfQorCQkJfCBPTiBUUkFOU0FDVElPTiBFTkRfUCBSRVNFVAkJCXsgJCQgPSBW QVJJQUJMRV9YQUNURU5EX1JFU0VUOyB9CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZB UklBQkxFX1hBQ1RFTkRfTk9PUDsgfQogCQk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGI4ZDgzOWVjZTQx Li4yZWM2YTIyYTI2NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01NDMzLDYgKzU0MzMsNyBAQCBnZXRWYXJp YWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlpX3Zhcm5hbWVzcGFjZTsKIAlpbnQJCQlpX3Zh cnR5cGU7CiAJaW50CQkJaV92YXJ0eXBuYW1lOworCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsK IAlpbnQJCQlpX3Zhcm93bmVyOwogCWludAkJCWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlfdmFy YWNsOwpAQCAtNTQ1MCw2ICs1NDUxLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJ LyogZ2V0IHRoZSB2YXJpYWJsZXMgaW4gY3VycmVudCBkYXRhYmFzZSAqLwogCWFwcGVuZFBRRXhw QnVmZmVyKHF1ZXJ5LAogCQkJCQkgICJTRUxFQ1Qgdi50YWJsZW9pZCwgdi5vaWQsIHYudmFybmFt ZSxcbiIKKwkJCQkJICAiICAgICAgIHYudmFyeGFjdGVuZGFjdGlvbixcbiIKIAkJCQkJICAiICAg ICAgIHYudmFybmFtZXNwYWNlLCB2LnZhcnR5cGUsXG4iCiAJCQkJCSAgIiAgICAgICBwZ19jYXRh bG9nLmZvcm1hdF90eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5cG5hbWUsXG4i CiAJCQkJCSAgIiAgICAgICBDQVNFIFdIRU4gdi52YXJjb2xsYXRpb24gPD4gdC50eXBjb2xsYXRp b24gIgpAQCAtNTQ3Miw2ICs1NDc0LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJ aV92YXJuYW1lc3BhY2UgPSBQUWZudW1iZXIocmVzLCAidmFybmFtZXNwYWNlIik7CiAJaV92YXJ0 eXBlID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cGUiKTsKIAlpX3ZhcnR5cG5hbWUgPSBQUWZudW1i ZXIocmVzLCAidmFydHlwbmFtZSIpOworCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihy ZXMsICJ2YXJ4YWN0ZW5kYWN0aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVz LCAidmFyY29sbGF0aW9uIik7CiAKIAlpX3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93 bmVyIik7CkBAIC01NDk1LDYgKzU0OTgsOSBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkK IAogCQl2YXJpbmZvW2ldLnZhcnR5cGUgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFy dHlwZSkpOwogCQl2YXJpbmZvW2ldLnZhcnR5cG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdmFydHlwbmFtZSkpOworCQl2YXJpbmZvW2ldLnZhcnhhY3RlbmRhY3Rpb24gPQor CQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnhhY3RlbmRhY3Rpb24pKTsKKwog CQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJjb2xsYXRpb24pKTsKIAogCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOwpAQCAtNTUzNSw2ICs1NTQxLDcgQEAgZHVtcFZhcmlh YmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAlQUUV4cEJ1 ZmZlciBxdWVyeTsKIAljaGFyCSAgICpxdWFsdmFybmFtZTsKIAljb25zdCBjaGFyICp2YXJ0eXBu YW1lOworCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247CiAJT2lkCQkJdmFyY29sbGF0aW9u OwogCiAJLyogc2tpcCBpZiBub3QgdG8gYmUgZHVtcGVkICovCkBAIC01NTQ2LDYgKzU1NTMsNyBA QCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZv KQogCiAJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10UXVhbGlmaWVkRHVtcGFibGUodmFyaW5m bykpOwogCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0eXBuYW1lOworCXZhcnhhY3RlbmRhY3Rp b24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5kYWN0aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8t PnZhcmNvbGxhdGlvbjsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxF ICVzO1xuIiwKQEAgLTU1NjQsNiArNTU3Miw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0 LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1w YWJsZShjb2xsKSk7CiAJfQogCisJaWYgKHN0cmNtcCh2YXJ4YWN0ZW5kYWN0aW9uLCAiciIpID09 IDApCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNF VCIpOworCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICI7XG4iKTsKIAogCWlmICh2YXJpbmZv LT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OKQpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXgg ZjJmNTU4YjI5NjEuLjdjMGMwMzc0OWU4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcwOSw2ICs3MDksNyBA QCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJRHVtcGFibGVBY2wgZGFjbDsKIAlPaWQJ CQl2YXJ0eXBlOwogCWNoYXIJICAgKnZhcnR5cG5hbWU7CisJY2hhcgkgICAqdmFyeGFjdGVuZGFj dGlvbjsKIAljaGFyCSAgICp2YXJhY2w7CiAJY2hhcgkgICAqcnZhcmFjbDsKIAljaGFyCSAgICpp bml0dmFyYWNsOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwg Yi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBkZDhjMDU0YTZhNi4uNDE5 ZWEzOTcyN2IgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisr KyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0zOTg3LDYgKzM5ODcsMjQg QEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFy aWFibGUgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAx LAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3Jk ZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52 YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7JywKKwkJcmVnZXhw ID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50 ZWdlciBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1 bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRh ID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEg PT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAkn Q1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3Jl YXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBk MDJmNjQxNmYwZS4uZDBmNjlmOGM4ZTkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MjI5LDYgKzUyMjksNyBAQCBs aXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICAi ICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCiAJ CQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIKIAkJCQkJICAiICAgIFdIRU4gJ2Qn IFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgorCQkJCQkgICIgICAgV0hFTiAncicgVEhFTiAnT04g VFJBTlNBQ1RJT04gRU5EIFJFU0VUJ1xuIgogCQkJCQkgICIgIEVORCBhcyBcIiVzXCJcbiIsCiAJ CQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk5hbWUi KSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCAxZTZkZDk4ZDQxNS4uNjAyOTFlZjdh YzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTc0LDYgKzc0LDcgQEAgdHlwZWRl ZiBlbnVtIFZhcmlhYmxlWGFjdEVuZEFjdGlvbgogewogCVZBUklBQkxFX1hBQ1RFTkRfTk9PUCA9 ICduJywJLyogTk9PUCAqLwogCVZBUklBQkxFX1hBQ1RFTkRfRFJPUCA9ICdkJywJLyogT04gQ09N TUlUIERST1AgKi8KKwlWQVJJQUJMRV9YQUNURU5EX1JFU0VUID0gJ3InLAkvKiBPTiBUUkFOU0FD VElPTiBFTkQgUkVTRVQgKi8KIH0JCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb247CiAKIC8qIC0tLS0t LS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNz aW9uLXZhcmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZh cmlhYmxlLm91dAppbmRleCBhNjA5Nzk3ZGM1ZC4uZTlhMjU0YmNkMTIgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dAorKysgYi9zcmMv dGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKQEAgLTg2LDExICs4 NiwxMiBAQCBteXZhcgogCiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKLXN0YXJ0aW5nIHBlcm11dGF0 aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFs MyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMgbGV0MyBz MyBvX2NfZCBvX2VveF9yIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBz YzMgY2xlYW4gc3RhdGUKIHN0ZXAgY3JlYXRlMzogQ1JFQVRFIFZBUklBQkxFIG15dmFyMyBBUyB0 ZXh0Owogc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rlc3QnOwogc3RlcCBzMzogQkVHSU47CiBz dGVwIG9fY19kOiBDUkVBVEUgVEVNUCBWQVJJQUJMRSBteXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENP TU1JVCBEUk9QOworc3RlcCBvX2VveF9yOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXJfb19lb3hfciBB UyB0ZXh0IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsgTEVUIG15dmFyX29fZW94X3IgPSAndGVz dCc7CiBzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsKIHN0ZXAg bGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKIHN0ZXAgZHJvcDQ6IERST1AgVkFSSUFCTEUgbXl2 YXI0OwpAQCAtMTAzLDYgKzEwNCw3IEBAIHQKIAogc3RlcCBkaXNjYXJkOiBESVNDQVJEIFZBUklB QkxFUzsKIHN0ZXAgc2MzOiBDT01NSVQ7CitzdGVwIGNsZWFuOiBEUk9QIFZBUklBQkxFIG15dmFy X29fZW94X3I7CiBzdGVwIHN0YXRlOiBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxlOwog dmFybmFtZQogLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nl c3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZh cmlhYmxlLnNwZWMKaW5kZXggNDVlNjVkNDA4NWQuLjVkMDg5YzhhNGVkIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCisrKyBiL3NyYy90 ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTI1LDEyICsyNSwx NCBAQCBzZXNzaW9uIHMzCiBzdGVwIHMzCQkJeyBCRUdJTjsgfQogc3RlcCBsZXQzCQl7IExFVCBt eXZhcjMgPSAndGVzdCc7IH0KIHN0ZXAgb19jX2QJCXsgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgbXl2 YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsgfQorc3RlcCBvX2VveF9yCXsgQ1JFQVRF IFZBUklBQkxFIG15dmFyX29fZW94X3IgQVMgdGV4dCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7 IExFVCBteXZhcl9vX2VveF9yID0gJ3Rlc3QnOyB9CiBzdGVwIGNyZWF0ZTQJeyBDUkVBVEUgVkFS SUFCTEUgbXl2YXI0IEFTIHRleHQ7IH0KIHN0ZXAgbGV0NAkJeyBMRVQgbXl2YXI0ID0gJ3Rlc3Qn OyB9CiBzdGVwIGRyb3A0CQl7IERST1AgVkFSSUFCTEUgbXl2YXI0OyB9CiBzdGVwIGludmFsMwkJ eyBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFibGU7IH0KIHN0ZXAgZGlz Y2FyZAl7IERJU0NBUkQgVkFSSUFCTEVTOyB9CiBzdGVwIHNjMwkJeyBDT01NSVQ7IH0KK3N0ZXAg Y2xlYW4JCXsgRFJPUCBWQVJJQUJMRSBteXZhcl9vX2VveF9yOyB9CiBzdGVwIHN0YXRlCQl7IFNF TEVDVCB2YXJuYW1lIEZST00gcGdfdmFyaWFibGU7IH0KIAogc2Vzc2lvbiBzNApAQCAtNDgsNCAr NTAsNCBAQCBwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCiAjIGNh bGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVyIHRoZSBjb25jdXJyZW50IGRyb3AKIHBlcm11dGF0aW9u IGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwgc3IxCiAjIHRlc3QgZm9yIERJU0NB UkQgQUxMIHdoZW4gYWxsIGludGVybmFsIHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVnaXN0ZXJlZAot cGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIG9fY19kIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9w MyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3Blcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBv X2NfZCBvX2VveF9yIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMg Y2xlYW4gc3RhdGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKaW5kZXggNmRhZGI5MDc0ZGEuLjk5ZTRhYzcyYmUxIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTUyMCwzICsxNTIw LDM3IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CiAgICAg IDAKICgxIHJvdykKIAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIFRSQU5TQUNUSU9O IEVORCBSRVNFVDsKK0JFR0lOOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7Cisg dmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIE5V TEw7CitTRUxFQ1QgdmFyMSBJUyBOVUxMOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygx IHJvdykKKworQkVHSU47CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBOVUxM CitTRUxFQ1QgdmFyMSBJUyBOVUxMOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJv dykKKworRFJPUCBWQVJJQUJMRSB2YXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCmluZGV4IDc3MGNlNjUwNjg1Li43ODUzMjYxMDgwYiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTAxOCwzICsxMDE4LDIzIEBA IENPTU1JVDsKIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUg PSAndmFyMSc7CiAtLSBzaG91bGQgYmUgemVybwogU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIFRSQU5T QUNUSU9OIEVORCBSRVNFVDsKKworQkVHSU47CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1Qg dmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIE5VTEw7CitTRUxFQ1QgdmFyMSBJUyBOVUxM OworCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworUk9MTEJBQ0s7 CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMSBJUyBOVUxMOworCitEUk9QIFZBUklB QkxFIHZhcjE7Ci0tIAoyLjQ3LjAKCg== --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename*0=v20241113-0012-Implementation-of-DEFAULT-clause-default-e.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0012-Implementation-of-DEFAULT-clause-default-e.patch"; charset="UTF-8" RnJvbSAxNGFkMmM5Zjk0OGEwNThkYjczNGE0ZWU5ZmQ1MmVhZjViOTM0ZTYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMzo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djIwMjQxMTEzIDEyLzIwXSBJbXBsZW1lbnRhdGlvbiBvZiBERUZBVUxUIGNsYXVzZSAtIGRlZmF1 bHQKIGV4cHJlc3Npb25zIGZvciBzZXNzaW9uIHZhcmlhYmxlcwoKV2hlbiB0aGUgZXZhbHVhdGlv biBvZiBkZWZhdWx0IGV4cHJlc3Npb24gZmFpbHMsIHdlIHJlbW92ZSByZWxhdGVkIGVudHJ5IGZy b20gc2Vzc2lvbnZhcnMKaGFzaCB0YWJsZS4gVGhlbiBzZXNzaW9udmFycyBjYW4gY29udGFpbiBv bmx5IHN1Y2Vzc2Z1bGx5IGluaXRpYWxpemVkIHZhbHVlcy4gVGhlbiB3ZSBkb24ndApuZWVkIHNw ZWNpYWwgZmxhZyBmb3IgYmFkbHkgaW5pdGlhbGl6ZWQgc2Vzc2lvbiB2YXJpYWJsZXMuCi0tLQog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDggKysKIGRv Yy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrLS0KIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8IDIxICsrKy0tCiBk b2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAgMyArLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgMjcgKysrKysrCiBz cmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCA4NyArKysrKysr KysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAg ICAgfCAxNSArKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAg ICAgfCAgMiArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAg fCAgNCArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAg MSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAxNCAr KysKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxICsK IHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8IDM2ICsrKysr KysrCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgNCAr LQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDMgKwog c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDEgKwogc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgMzYgKysrKy0tLS0KIC4u Li9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDczICsrKysrKysr KysrKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDQ4ICsrKysrKysrKysKIDIwIGZpbGVzIGNoYW5nZWQsIDM1NSBpbnNlcnRpb25zKCspLCA0NiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDc2ZWZmODEzYjQzLi43ODlmNzc0NzcwYiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKQEAgLTk4NzMsNiArOTg3MywxNCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBs YWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJs ZT4mbAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJkZWZleHByPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+cGdfbm9kZV90cmVlPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgVGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YXJpYWJsZSBkZWZh dWx0IHZhbHVlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9k eT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Rk bC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDA1YzlhMGFlYmNjLi5hMjBkYjE0 YWY3OCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9kZGwuc2dtbApAQCAtNTMzOCwxNCArNTMzOCwxNCBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lk OwogCiAgICA8cGFyYT4KICAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxv Y2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKLSAgICBhIHZhcmlhYmxlJ3Mg dmFsdWUgcmV0dXJucyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxlc3MgaXRzIHZhbHVl IGhhcwotICAgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Np b24gdXNpbmcgdGhlCi0gICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAgU2Vzc2lv biB2YXJpYWJsZXMgYXJlIG5vdCB0cmFuc2FjdGlvbmFsOgotICAgIGFueSBjaGFuZ2VzIG1hZGUg dG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5zYWN0aW9uIHdvbid0 Ci0gICAgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAoanVzdCBs aWtlIHZhcmlhYmxlcyBpbgotICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFy aWFibGVzIHRoZW1zZWx2ZXMgY2FuIGJlIHBlcnNpc3RlbnQKLSAgICBvciB0ZW1wb3JhcnksIGJ1 dCB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRo ZQotICAgIGNvbnRlbnQgb2YgdGVtcG9yYXJ5IHRhYmxlcykuCisgICAgYSB2YXJpYWJsZSdzIHZh bHVlIHJldHVybnMgYSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBvciBhIGRlZmF1bHQgdmFsdWUs CisgICAgdW5sZXNzIGl0cyB2YWx1ZSBoYXMgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGlu IHRoZSBjdXJyZW50IHNlc3Npb24KKyAgICB1c2luZyB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5k PiBjb21tYW5kLiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdAorICAgIHRyYW5zYWN0aW9uYWw6 IGFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbgor ICAgIGEgdHJhbnNhY3Rpb24gd29uJ3QgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyBy b2xsZWQgYmFjayAoanVzdCBsaWtlCisgICAgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3Vh Z2VzKS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgY2FuIGJlCisgICAgcGVyc2lzdGVu dCBvciB0ZW1wb3JhcnksIGJ1dCB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBu b3Igc2hhcmVkCisgICAgKGxpa2UgdGhlIGNvbnRlbnQgb2YgdGVtcG9yYXJ5IHRhYmxlcykuCiAg ICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwK aW5kZXggZTFjMjk0MGQ0Y2EuLjgxODdjMThlMjhiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwKQEAgLTI3LDcgKzI3LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAg PHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1Q IH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KLSAgICBbIHsgT04gQ09N TUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCisgICAgWyBERUZBVUxUIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxlPiBd IFsgeyBPTiBDT01NSVQgRFJPUCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lu b3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC00MSwxMCArNDEsMTAg QEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElT VFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InAKIAogICA8cGFyYT4KICAgIFRoZSB2YWx1ZSBvZiBh IHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gIFJldHJp ZXZpbmcKLSAgIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCwgdW5sZXNz IGl0cyB2YWx1ZSBpcyBzZXQgdG8KLSAgIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNl c3Npb24gd2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4KLSAgIFRoZSBjb250 ZW50IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0 aGUgc2FtZSBhcwotICAgcmVndWxhciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMu CisgICBhIHNlc3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwgb3IgYSBkZWZhdWx0 IHZhbHVlLCB1bmxlc3MgaXRzIHZhbHVlCisgICBpcyBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4g dGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPgorICAgY29t bWFuZC4gIFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdHJhbnNhY3Rp b25hbC4gIFRoaXMgaXMgdGhlCisgICBzYW1lIGFzIHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2Nl ZHVyYWwgbGFuZ3VhZ2VzLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0xMDUsNiArMTA1LDE3 IEBAIENSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJ U1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVs dCI+CisgICAgPHRlcm0+PGxpdGVyYWw+REVGQVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHBy PC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBUaGUgPGxpdGVyYWw+REVGQVVMVDwvbGl0ZXJhbD4gY2xhdXNlIGNhbiBiZSB1 c2VkIHRvIGFzc2lnbiBhIGRlZmF1bHQKKyAgICAgIHZhbHVlIHRvIGEgc2Vzc2lvbiB2YXJpYWJs ZS4gVGhpcyBleHByZXNzaW9uIGlzIGV2YWx1YXRlZCB3aGVuIHRoZSBzZXNzaW9uCisgICAgICB2 YXJpYWJsZSBpcyBmaXJzdCBhY2Nlc3NlZCBmb3IgcmVhZGluZyBhbmQgaGFkIG5vdCB5ZXQgYmVl biBhc3NpZ25lZCBhIHZhbHVlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUt b24tY29tbWl0LWRyb3AiPgogICAgIDx0ZXJtPjxsaXRlcmFsPk9OIENPTU1JVCBEUk9QPC9saXRl cmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCmluZGV4IDYxYjk2 N2Y5YzliLi42YjBjYjk1MDM0ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJk LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKQEAgLTcxLDcgKzcxLDgg QEAgRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VRVUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB8 IFZBUklBQkxFUyB9CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAgICAgIFJlc2V0cyB0 aGUgdmFsdWUgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlCi0gICAgICBp cyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIDxsaXRlcmFsPk5VTEw8L2xp dGVyYWw+LgorICAgICAgaXMgbGF0ZXIgcmV1c2VkLCBpdCBpcyByZS1pbml0aWFsaXplZCB0byBl aXRoZXIKKyAgICAgIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IG9yIGl0cyBkZWZhdWx0IHZhbHVl LgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDQ1MjBlZWQ2ZGE4Li4zNmRlMTI1ODdjMCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMjQsNiArMjQsOSBAQAogI2luY2x1ZGUgImNh dGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvZXJj ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgiCisjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX2V4cHIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUg InV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCkBAIC0zNyw2 ICs0MCw3IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFy ICp2YXJOYW1lLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKIAkJCQkJCQkJCSBPaWQgdmFyQ29s bGF0aW9uLAogCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQkJCQkJCSBOb2RlICp2 YXJEZWZleHByLAogCQkJCQkJCQkJIFZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0 aW9uKTsKIAogCkBAIC01MSw2ICs1NSw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lLAogCQkJCU9pZCB2YXJPd25lciwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAogCQkJCWJv b2wgaWZfbm90X2V4aXN0cywKKwkJCQlOb2RlICp2YXJEZWZleHByLAogCQkJCVZhcmlhYmxlWGFj dEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKQogewogCUFjbAkJICAgKnZhcmFjbDsKQEAgLTEx NCw2ICsxMTksMTEgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJdmFs dWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVt KHZhckNvbGxhdGlvbik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyeGFjdGVuZGFjdGlv biAtIDFdID0gQ2hhckdldERhdHVtKHZhclhhY3RFbmRBY3Rpb24pOwogCisJaWYgKHZhckRlZmV4 cHIpCisJCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmRlZmV4cHIgLSAxXSA9IENTdHJpbmdH ZXRUZXh0RGF0dW0obm9kZVRvU3RyaW5nKHZhckRlZmV4cHIpKTsKKwllbHNlCisJCW51bGxzW0Fu dW1fcGdfdmFyaWFibGVfdmFyZGVmZXhwciAtIDFdID0gdHJ1ZTsKKwogCXZhcmFjbCA9IGdldF91 c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9WQVJJQUJMRSwgdmFyT3duZXIsCiAJCQkJCQkJCSAgdmFy TmFtZXNwYWNlKTsKIAlpZiAodmFyYWNsICE9IE5VTEwpCkBAIC0xNTAsNiArMTYwLDExIEBAIGNy ZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXJlY29yZF9vYmplY3RfYWRkcmVz c19kZXBlbmRlbmNpZXMoJm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKIAlmcmVl X29iamVjdF9hZGRyZXNzZXMoYWRkcnMpOwogCisJLyogZGVwZW5kZW5jeSBvbiBkZWZhdWx0IGV4 cHIgKi8KKwlpZiAodmFyRGVmZXhwcikKKwkJcmVjb3JkRGVwZW5kZW5jeU9uRXhwcigmbXlzZWxm LCAoTm9kZSAqKSB2YXJEZWZleHByLAorCQkJCQkJCSAgIE5JTCwgREVQRU5ERU5DWV9OT1JNQUwp OworCiAJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLwogCXJlY29yZERlcGVuZGVuY3lPbk93bmVy KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVyKTsKIApAQCAtMTg1LDYgKzIwMCw3 IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0 bXQgKnN0bXQpCiAJT2lkCQkJY29sbGF0aW9uOwogCU9pZAkJCXR5cGNvbGxhdGlvbjsKIAlPYmpl Y3RBZGRyZXNzIHZhcmlhYmxlOworCU5vZGUJICAgKmNvb2tlZF9kZWZhdWx0ID0gTlVMTDsKIAog CS8qIGNoZWNrIGNvbnNpc3RlbmN5IG9mIGFyZ3VtZW50cyAqLwogCWlmIChzdG10LT5YYWN0RW5k QWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUApAQCAtMjI2LDYgKzI0MiwxNiBAQCBDcmVh dGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10 KQogCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgc3RtdC0+Y29sbENsYXVzZS0+bG9jYXRpb24pKSk7CiAKKwlpZiAoc3RtdC0+ZGVm ZXhwcikKKwl7CisJCWNvb2tlZF9kZWZhdWx0ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHN0bXQt PmRlZmV4cHIsCisJCQkJCQkJCQkgICBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVCk7CisKKwkJ Y29va2VkX2RlZmF1bHQgPSBjb2VyY2VfdG9fc3BlY2lmaWNfdHlwZShwc3RhdGUsCisJCQkJCQkJ CQkJCQkgY29va2VkX2RlZmF1bHQsIHR5cGlkLCAiREVGQVVMVCIpOworCQlhc3NpZ25fZXhwcl9j b2xsYXRpb25zKHBzdGF0ZSwgY29va2VkX2RlZmF1bHQpOworCX0KKwogCXZhcmlhYmxlID0gY3Jl YXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLAogCQkJCQkJCSAgIG5hbWVzcGFj ZWlkLAogCQkJCQkJCSAgIHR5cGlkLApAQCAtMjMzLDYgKzI1OSw3IEBAIENyZWF0ZVZhcmlhYmxl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJ ICAgdmFyb3duZXIsCiAJCQkJCQkJICAgY29sbGF0aW9uLAogCQkJCQkJCSAgIHN0bXQtPmlmX25v dF9leGlzdHMsCisJCQkJCQkJICAgY29va2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFj dEVuZEFjdGlvbik7CiAKIAllbG9nKERFQlVHMSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFyaWFibGUiLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDBiNTEyODE1ZDRhLi4wYTFjMzI2ZTcy ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMjIsNiArMjIs NyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAi ZnVuY2FwaS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgIm9wdGltaXplci9v cHRpbWl6ZXIuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCiAjaW5jbHVk ZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCkBAIC01MTAsMTEg KzUxMSw2OCBAQCBBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21taXQsCiAJ fQogfQogCisvKgorICogZXZhbHVhdGUgYW4gZXhwcmVzc2lvbgorICovCitzdGF0aWMgdm9pZAor ZXZhbF9hc3NpZ25fZGVmZXhwcihTVmFyaWFibGUgc3ZhciwgSGVhcFR1cGxlIHR1cCkKK3sKKwlE YXR1bQkJZGVmZXhwcl92YWx1ZTsKKwlib29sCQlpc251bGw7CisKKwlBc3NlcnQoc3Zhcik7CisJ QXNzZXJ0KHN2YXItPmlzX3ZhbGlkKTsKKwlBc3NlcnQoSGVhcFR1cGxlSXNWYWxpZCh0dXApKTsK KworCWRlZmV4cHJfdmFsdWUgPSBTeXNDYWNoZUdldEF0dHIoVkFSSUFCTEVPSUQsCisJCQkJCQkJ CQl0dXAsCisJCQkJCQkJCQlBbnVtX3BnX3ZhcmlhYmxlX3ZhcmRlZmV4cHIsCisJCQkJCQkJCQkm aXNudWxsKTsKKworCWlmICghaXNudWxsKQorCXsKKwkJRVN0YXRlCSAgICplc3RhdGU7CisJCUV4 cHJTdGF0ZSAgKmRlZmV4cHJzOworCQlFeHByCSAgICpkZWZleHByOworCQljaGFyCSAgICpkZWZl eHByX3N0cjsKKwkJRGF0dW0JCXZhbHVlOworCQlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKworCQll c3RhdGUgPSBDcmVhdGVFeGVjdXRvclN0YXRlKCk7CisKKwkJZGVmZXhwcl9zdHIgPSBUZXh0RGF0 dW1HZXRDU3RyaW5nKGRlZmV4cHJfdmFsdWUpOworCQlkZWZleHByID0gKEV4cHIgKikgc3RyaW5n VG9Ob2RlKGRlZmV4cHJfc3RyKTsKKworCQlvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8o ZXN0YXRlLT5lc19xdWVyeV9jeHQpOworCisJCWRlZmV4cHIgPSBleHByZXNzaW9uX3BsYW5uZXIo KEV4cHIgKikgZGVmZXhwcik7CisJCWRlZmV4cHJzID0gRXhlY0luaXRFeHByKGRlZmV4cHIsIE5V TEwpOworCisJCXZhbHVlID0gRXhlY0V2YWxFeHByU3dpdGNoQ29udGV4dChkZWZleHBycywKKwkJ CQkJCQkJCQkgIEdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKSwKKwkJCQkJCQkJCQkgICZp c251bGwpOworCisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOworCisJCWlmICghaXNu dWxsKQorCQl7CisJCQlvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oU1ZhcmlhYmxlTWVt b3J5Q29udGV4dCk7CisKKwkJCXN2YXItPnZhbHVlID0gZGF0dW1Db3B5KHZhbHVlLCBzdmFyLT50 eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwkJCXN2YXItPmlzbnVsbCA9IGZhbHNlOworCisJCQlN ZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKwkJfQorCisJCUZyZWVFeGVjdXRvclN0YXRl KGVzdGF0ZSk7CisJfQorfQorCiAvKgogICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBp biAic3ZhciIKICAqLwogc3RhdGljIHZvaWQKLXNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1Zhcmlh YmxlIHN2YXIsIE9pZCB2YXJpZCkKK3NldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2 YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIHsKIAlIZWFwVHVwbGUJdHVwOwogCUZvcm1f cGdfdmFyaWFibGUgdmFyZm9ybTsKQEAgLTU2NCw2ICs2MjIsOSBAQCBzZXR1cF9zZXNzaW9uX3Zh cmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJc3Zhci0+aGFzaHZhbHVlID0gR2V0 U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELAogCQkJCQkJCQkJCQlPYmplY3RJZEdldERh dHVtKHZhcmlkKSk7CiAKKwlpZiAoIWlzX3dyaXRlKQorCQlldmFsX2Fzc2lnbl9kZWZleHByKHN2 YXIsIHR1cCk7CisKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIH0KIApAQCAtNTkzLDcgKzY1NCw3 IEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9v bCBpc251bGwpCiAJICovCiAJaWYgKCFzdmFyLT5pc192YWxpZCkKIAl7Ci0JCXNldHVwX3Nlc3Np b25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZhcmlkKTsKKwkJc2V0dXBfc2Vzc2lvbl92YXJp YWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFyaWQsIGZhbHNlKTsKIAkJX3N2YXIgPSAmbG9jc3ZhcjsK IAl9CiAJZWxzZQpAQCAtNzI2LDcgKzc4NywyNSBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQg dmFyaWQpCiAJICovCiAJaWYgKCFzdmFyLT5pc192YWxpZCkKIAl7Ci0JCXNldHVwX3Nlc3Npb25f dmFyaWFibGUoc3ZhciwgdmFyaWQpOworCQkvKiBpbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byB1c2Ug ZGVmZXhwIGlmIGl0IGlzIGRlZmluZWQgKi8KKwkJUEdfVFJZKCk7CisJCXsKKwkJCS8qCisJCQkg KiBJbiB0aGlzIGNhc2UsIHRoZSBzZXR1cCBjYW4gZXhlY3V0ZSBkZWZhdWx0IGV4cHJlc3Npb24u IFdoZW4KKwkJCSAqIHRoZSBleGVjdXRpb24gb2YgZGVmYXVsdCBleHByZXNzaW9uIGZhaWxzLCB0 aGVuIHdlIG5lZWQgdG8KKwkJCSAqIHJlbW92ZSBlbnRyeSBmcm9tIHNlc3Npb24gdmFycy4KKwkJ CSAqLworCQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCwgZmFsc2UpOworCQl9 CisJCVBHX0NBVENIKCk7CisJCXsKKwkJCS8qIHRoaXMgZW50cnkgY2Fubm90IGJlIHZhbGlkLCBy ZW1vdmUgZnJvbSBzZXNzaW9udmFycyAqLworCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2 YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCisJCQkvKiBwcm9wYWdhdGUgdGhlIGVycm9yICov CisJCQlQR19SRV9USFJPVygpOworCQl9CisJCVBHX0VORF9UUlkoKTsKIAogCQllbG9nKERFQlVH MSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRy eSBpbiBtZW1vcnkgKGVtaXR0ZWQgYnkgUkVBRCkiLAogCQkJIGdldF9uYW1lc3BhY2VfbmFtZShn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKQEAgLTc5MCw3ICs4NjksNyBA QCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwp CiAKIAlpZiAoIWZvdW5kKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJp ZCk7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQsIHRydWUpOwogCiAJCWVs b2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2ln bmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBieSBXUklURSkiLAogCQkJIGdldF9uYW1lc3Bh Y2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CmluZGV4IGQ4ZGU4YWNmOTQ0Li5iOGUzM2VkMTlkYiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02 MzgsNiArNjM4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxwYXJ0Ym91bmRz cGVjPiBQYXJ0aXRpb25Cb3VuZFNwZWMKICV0eXBlIDxsaXN0PgkJaGFzaF9wYXJ0Ym91bmQKICV0 eXBlIDxkZWZlbHQ+CQloYXNoX3BhcnRib3VuZF9lbGVtCisldHlwZSA8bm9kZT4JCU9wdFNlc3Np b25WYXJEZWZFeHByCiAKICV0eXBlIDxub2RlPglqc29uX2Zvcm1hdF9jbGF1c2UKIAkJCQlqc29u X2Zvcm1hdF9jbGF1c2Vfb3B0CkBAIC01MjMwLDMwICs1MjMxLDM2IEBAIGNyZWF0ZV9leHRlbnNp b25fb3B0X2l0ZW06CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIENyZWF0ZVNlc3Npb25WYXJT dG10OgotCQkJQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5 cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQlDUkVBVEUg T3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxh dGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7 CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZh clN0bXQpOwogCQkJCQkkNC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKIAkJCQkJbi0+dmFyaWFibGUg PSAkNDsKIAkJCQkJbi0+dHlwZU5hbWUgPSAkNjsKIAkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xs YXRlQ2xhdXNlICopICQ3OwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDg7CisJCQkJCW4tPmRl ZmV4cHIgPSAkODsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQ5OwogCQkJCQluLT5pZl9ub3Rf ZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENSRUFU RSBPcHRUZW1wIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMg VHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCXwgQ1JF QVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9h cyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVu ZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtl Tm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CiAJCQkJCSQ3LT5yZWxwZXJzaXN0ZW5jZSA9ICQy OwogCQkJCQluLT52YXJpYWJsZSA9ICQ3OwogCQkJCQluLT50eXBlTmFtZSA9ICQ5OwogCQkJCQlu LT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDEwOwotCQkJCQluLT5YYWN0RW5kQWN0 aW9uID0gJDExOworCQkJCQluLT5kZWZleHByID0gJDExOworCQkJCQluLT5YYWN0RW5kQWN0aW9u ID0gJDEyOwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KIAkJOwogCitPcHRTZXNzaW9uVmFyRGVmRXhwcjogREVGQVVMVCBiX2V4cHIJ CQkJCXsgJCQgPSAkMjsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gTlVMTDsgfQor CQk7CisKIC8qCiAgKiBUZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGRyb3BwZWQg b24gc3VjY2Vzc2Z1bAogICogdHJhbnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2FnZy5jCmluZGV4IGE3MzQzMDAxZjIxLi5kZGZiY2Y0MmI3NCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9hZ2cuYwpAQCAtNDg4LDYgKzQ4OCw3IEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWlu dHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQ Ul9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxU OgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCiAJCQlpZiAoaXNBZ2cpCiAJ CQkJZXJyID0gXygiYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVM VCBleHByZXNzaW9ucyIpOwpAQCAtOTM3LDYgKzkzOCw3IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmND YWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVuYyAqd2Z1bmMsCiAJCQlicmVhazsKIAkJ Y2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9O X0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQllcnIgPSBf KCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25z Iik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZXhwci5jCmluZGV4IDM2MDJjMzU3MmQ3Li5iY2JiMWY1NjRhZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZXhwci5jCkBAIC01ODIsNiArNTgyLDcgQEAgZXhwcl9raW5kX2FsbG93c19zZXNz aW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQogCQljYXNlIEVYUFJfS0lO RF9KT0lOX1VTSU5HOgogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQljYXNlIEVYUFJf S0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgog CQkJcmVzdWx0ID0gZmFsc2U7CiAJCQlicmVhazsKIAl9CkBAIC02NjcsNiArNjY4LDcgQEAgdHJh bnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQlj YXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VU OgogCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJM RV9ERUZBVUxUOgogCQkJLyogb2theSAqLwogCQkJYnJlYWs7CiAKQEAgLTIwNzUsNiArMjA3Nyw3 IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5r KQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVY UFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZB VUxUOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBERUZBVUxUIGV4cHJlc3Np b24iKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgpAQCAt MzQyNyw2ICszNDMwLDcgQEAgUGFyc2VFeHByS2luZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2lu ZCkKIAkJCXJldHVybiAiQ0hFQ0siOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoK IAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFS SUFCTEVfREVGQVVMVDoKIAkJCXJldHVybiAiREVGQVVMVCI7CiAJCWNhc2UgRVhQUl9LSU5EX0lO REVYX0VYUFJFU1NJT046CiAJCQlyZXR1cm4gImluZGV4IGV4cHJlc3Npb24iOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9mdW5jLmMKaW5kZXggOWFhNGY2MDc2OGIuLmZjYWM2OTQ0NTVkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9mdW5jLmMKQEAgLTI2MjAsNiArMjYyMCw3IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVu dChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCQli cmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5E X0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJ CQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVG QVVMVCBleHByZXNzaW9ucyIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VY UFJFU1NJT046CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCAyZWM2YTIyYTI2Ni4uYzEzODk5NDMwNGEgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYwpAQCAtNTQzMyw2ICs1NDMzLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQp CiAJaW50CQkJaV92YXJuYW1lc3BhY2U7CiAJaW50CQkJaV92YXJ0eXBlOwogCWludAkJCWlfdmFy dHlwbmFtZTsKKwlpbnQJCQlpX3ZhcmRlZmV4cHI7CiAJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9u OwogCWludAkJCWlfdmFyb3duZXI7CiAJaW50CQkJaV92YXJjb2xsYXRpb247CkBAIC01NDU4LDYg KzU0NTksNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJICAiICAgICAgICAg ICAgVEhFTiB2LnZhcmNvbGxhdGlvblxuIgogCQkJCQkgICIgICAgICAgICAgICBFTFNFIDBcbiIK IAkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24sXG4iCisJCQkJCSAgIiAgICAgICBw Z19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciwwKSBhcyB2YXJkZWZleHByLFxuIgog CQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4iCiAJCQkJCSAgIiAgICAgICBh Y2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVsdFxuIgogCQkJCQkgICJGUk9N IHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdlxuIgpAQCAtNTQ3NCw2ICs1NDc2LDcgQEAgZ2V0VmFy aWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaV92YXJuYW1lc3BhY2UgPSBQUWZudW1iZXIocmVzLCAi dmFybmFtZXNwYWNlIik7CiAJaV92YXJ0eXBlID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cGUiKTsK IAlpX3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwbmFtZSIpOworCWlfdmFyZGVm ZXhwciA9IFBRZm51bWJlcihyZXMsICJ2YXJkZWZleHByIik7CiAJaV92YXJ4YWN0ZW5kYWN0aW9u ID0gUFFmbnVtYmVyKHJlcywgInZhcnhhY3RlbmRhY3Rpb24iKTsKIAlpX3ZhcmNvbGxhdGlvbiA9 IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIApAQCAtNTUwOSw2ICs1NTEyLDExIEBA IGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQl2YXJpbmZvW2ldLmRhY2wuaW5pdHByaXZz ID0gTlVMTDsKIAkJdmFyaW5mb1tpXS5yb2xuYW1lID0gZ2V0Um9sZU5hbWUoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdmFyb3duZXIpKTsKIAorCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3ZhcmRl ZmV4cHIpKQorCQkJdmFyaW5mb1tpXS52YXJkZWZleHByID0gTlVMTDsKKwkJZWxzZQorCQkJdmFy aW5mb1tpXS52YXJkZWZleHByID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmRl ZmV4cHIpKTsKKwogCQkvKiBkbyBub3QgdHJ5IHRvIGR1bXAgQUNMIGlmIG5vIEFDTCBleGlzdHMg Ki8KIAkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlfdmFyYWNsKSkKIAkJCXZhcmluZm9baV0u ZG9iai5jb21wb25lbnRzIHw9IERVTVBfQ09NUE9ORU5UX0FDTDsKQEAgLTU1NDEsNiArNTU0OSw3 IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmlu Zm8pCiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAqcXVhbHZhcm5hbWU7CiAJY29uc3Qg Y2hhciAqdmFydHlwbmFtZTsKKwljb25zdCBjaGFyICp2YXJkZWZleHByOwogCWNvbnN0IGNoYXIg KnZhcnhhY3RlbmRhY3Rpb247CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCkBAIC01NTUzLDYgKzU1 NjIsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2 YXJpbmZvKQogCiAJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10UXVhbGlmaWVkRHVtcGFibGUo dmFyaW5mbykpOwogCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0eXBuYW1lOworCXZhcmRlZmV4 cHIgPSB2YXJpbmZvLT52YXJkZWZleHByOwogCXZhcnhhY3RlbmRhY3Rpb24gPSB2YXJpbmZvLT52 YXJ4YWN0ZW5kYWN0aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsK IApAQCAtNTU3Miw2ICs1NTgyLDEwIEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25z dCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShj b2xsKSk7CiAJfQogCisJaWYgKHZhcmRlZmV4cHIpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiIERFRkFVTFQgJXMiLAorCQkJCQkJICB2YXJkZWZleHByKTsKKwogCWlmIChzdHJjbXAodmFy eGFjdGVuZGFjdGlvbiwgInIiKSA9PSAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBP TiBUUkFOU0FDVElPTiBFTkQgUkVTRVQiKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggN2MwYzAzNzQ5ZTgu LjhlZDgzOTc5ZWM5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcwOSw2ICs3MDksNyBAQCB0eXBlZGVmIHN0 cnVjdCBfVmFyaWFibGVJbmZvCiAJRHVtcGFibGVBY2wgZGFjbDsKIAlPaWQJCQl2YXJ0eXBlOwog CWNoYXIJICAgKnZhcnR5cG5hbWU7CisJY2hhcgkgICAqdmFyZGVmZXhwcjsKIAljaGFyCSAgICp2 YXJ4YWN0ZW5kYWN0aW9uOwogCWNoYXIJICAgKnZhcmFjbDsKIAljaGFyCSAgICpydmFyYWNsOwpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCA0MTllYTM5NzI3Yi4uZjU4ZWRlNTMzNGEgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC00MDA1LDYgKzQwMDUsNDIgQEAgbXkgJXRlc3Rz ID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUgREVGQVVM VCcgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUg Li4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4g J0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUzIEFTIGludGVnZXIgREVGQVVMVCAx MDsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZh cmlhYmxlMyBBUyBpbnRlZ2VyIERFRkFVTFQgMTA7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1 bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRh ID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEg PT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKKwkn Q1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUgREVGQVVMVCBPTiBUUkFOU0FDVElPTiBFTkQg UkVTRVQnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JF QVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAg ID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNCBBUyBpbnRlZ2VyIERFRkFV TFQgMTAgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxR Q1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTQgQVMgaW50ZWdlciBERUZBVUxUIDEw IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9y dW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4g MSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAx LAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVB VEUgVklFVyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVf c3FsID0+ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGQwZjY5 ZjhjOGU5Li5kYzE4ZGEzNTBlYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMK KysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUyMDYsNyArNTIwNiw3IEBAIGxpc3RW YXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVy RGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0 LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRp YyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5z dmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MjI3LDYgKzUyMjcsNyBAQCBsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICAoU0VMRUNUIGMu Y29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5 cGUgYnRcbiIKIAkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNvbGxhdGlvbiBBTkQgYnQu b2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50eXBjb2xsYXRpb24pIGFz IFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93 bmVyKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZh cmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFj dGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCiAJ CQkJCSAgIiAgICBXSEVOICdyJyBUSEVOICdPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQnXG4iCkBA IC01MjM2LDYgKzUyMzcsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKIAkJCQkJICBnZXR0ZXh0 X25vb3AoIkNvbGxhdGlvbiIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0 aW9uYWwgZW5kIGFjdGlvbiIpKTsKIAogCWlmICh2ZXJib3NlKQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJp YWJsZS5oCmluZGV4IDYwMjkxZWY3YWMyLi5lOGJmZWViZWQxMSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf dmFyaWFibGUuaApAQCAtNjcsNiArNjcsOSBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFy aWFibGVSZWxhdGlvbklkKQogCS8qIGFjY2VzcyBwZXJtaXNzaW9ucyAqLwogCWFjbGl0ZW0JCXZh cmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8pOwogCisJLyogbGlzdCBvZiBleHByZXNzaW9uIHRy ZWVzIGZvciB2YXJpYWJsZSBkZWZhdWx0IChOVUxMIGlmIG5vbmUpICovCisJcGdfbm9kZV90cmVl IHZhcmRlZmV4cHIgQktJX0RFRkFVTFQoX251bGxfKTsKKwogI2VuZGlmCiB9IEZvcm1EYXRhX3Bn X3ZhcmlhYmxlOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggN2E1MTllMDg0MjkuLjYwNDA0 NDEzYzQ5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zNDc3LDYgKzM0NzcsNyBAQCB0eXBl ZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJ LyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KIAlDb2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOwog CWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMg Ki8KKwlOb2RlCSAgICpkZWZleHByOwkJLyogZGVmYXVsdCBleHByZXNzaW9uICovCiAJY2hhcgkJ WGFjdEVuZEFjdGlvbjsJLyogb24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVT ZXNzaW9uVmFyU3RtdDsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25v ZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggYzExZmRiM2Q5NzAu LmZhNTY2YjE5NGQxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5o CisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTg0LDYgKzg0LDcgQEAg dHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBSX0tJTkRfQ1lDTEVfTUFSSywJCS8qIGN5 Y2xlIG1hcmsgdmFsdWUgKi8KIAlFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCwJLyogUEwvcGdTUUwg YXNzaWdubWVudCB0YXJnZXQgKi8KIAlFWFBSX0tJTkRfTEVUX1RBUkdFVCwJCS8qIExFVCB0YXJn ZXQgKi8KKwlFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVCwgLyogZGVmYXVsdCB2YWx1ZSBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBQYXJzZUV4cHJLaW5kOwogCiAKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BzcWwub3V0CmluZGV4IDYxMDc3YTUyYjE2Li5iYzdiNjBhOTdlYSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0CkBAIC01OTM1LDIwICs1OTM1LDIwIEBAIENSRUFURSBST0xFIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXI7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVy OwogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKIFxkVisgdmFy MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAg IHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUg fCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAg fCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMg fCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGljIHwg dmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lciB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8IAogKDEgcm93KQogCiBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJM SUM7CiBDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOwogXGRW KyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBO YW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAg ICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHBy aXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2 YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1y dy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAgICAgICB8ICAg ICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVy ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0 aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAg ICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFj dGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncv cmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFZBUklB QkxFIHZhcjE7CkBAIC02NDE2LDkgKzY0MTYsOSBAQCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3Mp CiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVy IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlw ZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0 aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjU5MSw5ICs2NTkxLDkgQEAgaW1w cm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2guaW5zdGEKIFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50 LnRyaWdnZXIiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVz KTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogXGRWICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25l ciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5 cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdp dGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAg LTY3MzAsOSArNjczMCw5IEBAIExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dz KQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgot ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5h bWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24g Ci0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZh dWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog KDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVk IHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggOTllNGFjNzJiZTEuLmVlMTUzZjhmYjgyIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAt NDUsMTEgKzQ1LDExIEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVB VEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CiBTRVQgUk9MRSBUTyBERUZBVUxUOwog XGRWKyBzdmFydGVzdC52YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotICBTY2hl bWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAg IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZp bGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAot ICAgICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFk ZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg dmFyaWFibGVzCisgIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAg ICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwg ICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3Jp cHRpb24gCistLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCisgc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCisgICAgICAgICAg fCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFk ZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUg c3ZhcnRlc3QudmFyMTsKQEAgLTE1NTQsMyArMTU1NCw2NiBAQCBTRUxFQ1QgdmFyMSBJUyBOVUxM OwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJ Q0UgJ3ZhcnRlc3RfZnggZXhlY3V0ZWQnOworICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCB2YXJ0ZXN0X2Z4 KCk7CistLSB2YXJ0ZXN0X2Z4IHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGVwLCBzaG91bGQgZmFp bAorRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CitFUlJPUjogIGNhbm5vdCBkcm9wIGZ1bmN0 aW9uIHZhcnRlc3RfZngoKSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRB SUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiBmdW5jdGlvbiB2YXJ0ZXN0X2Z4 KCkKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2Jq ZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworTk9USUNFOiAgdmFydGVz dF9meCBleGVjdXRlZAorIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKy0tIHRoZSBk ZWZleHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBvbmNlCitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxFUzsKKy0tIGluIHRo aXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQKK0xFVCB2YXIxID0g MTAwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworRElT Q0FSRCBWQVJJQUJMRVM7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkK K1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBFWENFUFRJT04gJ3ZhcnRlc3RfZngg aXMgZXhlY3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOwor LS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgdG8gY3Jhc2gKK1NFTEVDVCB2YXIxOworRVJST1I6 ICB2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZworQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZh cnRlc3RfZngoKSBsaW5lIDMgYXQgUkFJU0UKKy0tIGFnYWluCitTRUxFQ1QgdmFyMTsKK0VSUk9S OiAgdmFydGVzdF9meCBpcyBleGVjdXRpbmcKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2 YXJ0ZXN0X2Z4KCkgbGluZSAzIGF0IFJBSVNFCistLSBidXQgd2UgY2FuIHdyaXRlCitMRVQgdmFy MSA9IDEwMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDc4NTMyNjEwODBiLi45 ZDlkMDRlYzc2YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bApAQCAtMTAzOCwzICsxMDM4LDUxIEBAIFJPTExCQUNLOwogU0VMRUNUIHZhcjEgSVMgTlVMTDsK IAogRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0 ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJ3ZhcnRl c3RfZnggZXhlY3V0ZWQnOworICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7 CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxUIHZhcnRlc3RfZngoKTsKKwor LS0gdmFydGVzdF9meCBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IGRlcCwgc2hvdWxkIGZhaWwKK0RS T1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworCistLSB0aGUgZGVmZXhwciBzaG91bGQgYmUgZXZhbHVhdGVkIG9ubHkgb25jZQorU0VMRUNU IHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBpbiB0aGlzIGNhc2UsIHRoZSBkZWZl eHByIHNob3VsZCBub3QgYmUgZXZhbHVhdGVkCitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2YXIx OworCitESVNDQVJEIFZBUklBQkxFUzsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFy dGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgRVhDRVBUSU9OICd2 YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZyc7CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKKworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgdG8gY3Jhc2gKK1NFTEVDVCB2 YXIxOworCistLSBhZ2FpbgorU0VMRUNUIHZhcjE7CisKKy0tIGJ1dCB3ZSBjYW4gd3JpdGUKK0xF VCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1Ag RlVOQ1RJT04gdmFydGVzdF9meCgpOwotLSAKMi40Ny4wCgo= --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename*0=v20241113-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-c.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-c.patch"; charset="UTF-8" RnJvbSA1YzYzYzNiZGM5ZWY3MTI0ZWU4Mzg3NzFjNTI5NzM2N2QwOTI0MWYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djIwMjQxMTEzIDEzLzIwXSBJbXBsZW1lbnRhdGlvbiBvZiBOT1QgTlVMTCBhbmQgSU1NVVRBQkxF CiBjbGF1c2VzCgpBbG1vc3QgdHJpdmlhbCBwYXRjaCAtIHBzcWwsIHBnX2R1bXAgc3VwcG9ydAot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAyMCAr KysKIGRvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAgMyAr LQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDMyICsr Ky0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgOCAr CiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAgNjkgKysr KysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICA0 MSArKystLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwg IDE5ICsrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwg ICAyICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAz NiArKysrCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAg IDYgKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAx MiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA2 ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMiAr CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKyst LQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTU1ICsr KysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsICAgIHwgMTIyICsrKysrKysrKysrKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCA1MjMgaW5zZXJ0 aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA3ODlmNzc0NzcwYi4u NzIxMTBlMDVmNTggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05ODQxLDYgKzk4NDEsMjYgQEAgU0NSQU0t U0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxl Pjo8cmVwbGFjZWFibGU+JmwKIAogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+dmFybm90bnVsbDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2xlYW48L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIHRoZSBzZXNzaW9u IHZhcmlhYmxlIGRvZXNuJ3QgYWxsb3cgbnVsbCB2YWx1ZXMuIFRoZSBkZWZhdWx0IHZhbHVlIGlz IGZhbHNlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJpc2ltbXV0YWJsZTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBUcnVlIGlmIHRoZSB2YXJpYWJsZSBpcyA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRldmFyaWFibGUtaW1tdXRhYmxlIj5pbW11dGFibGU8L2xpbms+IChjYW5ub3QgYmUgbW9kaWZp ZWQpLgorICAgICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD52YXJlb3hhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90eXBl PgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJ4YWN0ZW5kYWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Y2hhcjwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5k ZXggYmZiZmY5YWI3NGUuLmU3MDRlMDVhOTkxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGxw Z3NxbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKQEAgLTYwNDQsNyArNjA0 NCw4IEBAICQkIExBTkdVQUdFIHBscGdzcWwgU1RSSUNUIElNTVVUQUJMRTsKICAgICAgWW91IGNh biBjb25zaWRlciB0cmFuc2xhdGluZyBhbiBPcmFjbGUgcGFja2FnZSBpbnRvIGEgc2NoZW1hIGlu CiAgICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4uICBQYWNrYWdlIGZ1 bmN0aW9ucyBhbmQgcHJvY2VkdXJlcwogICAgICB3b3VsZCB0aGVuIGJlY29tZSBmdW5jdGlvbnMg YW5kIHByb2NlZHVyZXMgaW4gdGhhdCBzY2hlbWEsIGFuZCBwYWNrYWdlCi0gICAgIHZhcmlhYmxl cyBjb3VsZCBiZSB0cmFuc2xhdGVkIHRvIHNlc3Npb24gdmFyaWFibGVzIGluIHRoYXQgc2NoZW1h LgorICAgICB2YXJpYWJsZXMgY291bGQgYmUgdHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxl cyBvciBpbW11dGFibGUgc2Vzc2lvbgorICAgICB2YXJpYWJsZXMgaW4gdGhhdCBzY2hlbWEuCiAg ICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+KS4KICAgICA8 L3BhcmE+CiAgICA8L3NlY3QzPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5k ZXggODE4N2MxOGUyOGIuLjAwOTM4NzQzYzBkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKQEAgLTI2LDggKzI2LDggQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8 cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1DUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAg fSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgREVGQVVMVCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4g XSBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCitDUkVB VEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFSSUFCTEUgWyBJRiBO T1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVw bGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xs YXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBOT1QgTlVMTCBdIFsgREVGQVVMVCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsg T04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCiA8L3N5bm9wc2lz PgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtNjUsNiArNjUsMjIgQEAgQ1JF QVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InAKIAogICA8dmFyaWFibGVsaXN0PgogCisgICA8dmFybGlzdGVu dHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaW1tdXRhYmxlIj4KKyAgICA8dGVybT48bGl0ZXJh bD5JTU1VVEFCTEU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgYXNzaWduZWQgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgY2FuIG5v dCBiZSBjaGFuZ2VkLgorICAgICAgT25seSBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2Vzbid0 IGhhdmUgYSBkZWZhdWx0IHZhbHVlLCBhIHNpbmdsZQorICAgICAgaW5pdGlhbGl6YXRpb24gaXMg YWxsb3dlZCB1c2luZyB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiBPbmNlCisg ICAgICBkb25lLCBubyBmdXJ0aGVyIGNoYW5nZSBpcyBhbGxvd2VkIHVudGlsIGVuZCBvZiB0cmFu c2FjdGlvbgorICAgICAgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgd2FzIGNyZWF0ZWQgd2l0aCBj bGF1c2UgPGxpdGVyYWw+T04gVFJBTlNBQ1RJT04KKyAgICAgIEVORCBSRVNFVDwvbGl0ZXJhbD4s IG9yIHVudGlsIHJlc2V0IG9mIGFsbCBzZXNzaW9uIHZhcmlhYmxlcyBieQorICAgICAgPGNvbW1h bmQ+RElTQ0FSRCBWQVJJQUJMRVM8L2NvbW1hbmQ+LCBvciB1bnRpbCByZXNldCBvZiBhbGwgc2Vz c2lvbgorICAgICAgb2JqZWN0cyBieSBjb21tYW5kIDxjb21tYW5kPkRJU0NBUkQgQUxMPC9jb21t YW5kPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KwogICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1pZi1ub3QtZXhpc3Rz Ij4KICAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KICAg ICA8bGlzdGl0ZW0+CkBAIC0xMDUsNiArMTIxLDE4IEBAIENSRUFURSBbIHsgVEVNUE9SQVJZIHwg VEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5 IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtbm90LW51bGwiPgorICAgIDx0ZXJtPjxsaXRlcmFsPk5P VCBOVUxMPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAg ICAgVGhlIDxsaXRlcmFsPk5PVCBOVUxMPC9saXRlcmFsPiBjbGF1c2UgZm9yYmlkcyBzZXR0aW5n IHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZSB0byBhIG51bGwgdmFsdWUuIEEgc2Vzc2lvbiB2 YXJpYWJsZSBjcmVhdGVkIGFzIE5PVCBOVUxMCisgICAgICBzaG91bGQgbm90IHRvIGhhdmUgYSBk ZWNsYXJlZCBkZWZhdWx0IHZhbHVlLCBhbmQgaWYgdGhlIHZhcmlhYmxlCisgICAgICBoYXMgbm90 IGFzc2lnbmVkIHZhbHVlLCB0aGVuIHRoZSByZWFkaW5nIG9mIHRoaXMgdmFyaWFibGUgZmFpbHMu CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAg IDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1kZWZhdWx0Ij4KICAgICA8dGVy bT48bGl0ZXJhbD5ERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxl PjwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJs ZS5jCmluZGV4IDM2ZGUxMjU4N2MwLi5mMjYxZTNmZDc3MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYwpAQCAtNDAsNiArNDAsOCBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFy aWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJCSBPaWQgdmFyT3duZXIsCiAJCQkJ CQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKIAkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMsCisJ CQkJCQkJCQkgYm9vbCBub3RfbnVsbCwKKwkJCQkJCQkJCSBib29sIGlzX2ltbXV0YWJsZSwKIAkJ CQkJCQkJCSBOb2RlICp2YXJEZWZleHByLAogCQkJCQkJCQkJIFZhcmlhYmxlWGFjdEVuZEFjdGlv biB2YXJYYWN0RW5kQWN0aW9uKTsKIApAQCAtNTUsNiArNTcsOCBAQCBjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlPaWQgdmFyT3duZXIsCiAJCQkJT2lkIHZhckNvbGxh dGlvbiwKIAkJCQlib29sIGlmX25vdF9leGlzdHMsCisJCQkJYm9vbCBub3RfbnVsbCwKKwkJCQli b29sIGlzX2ltbXV0YWJsZSwKIAkJCQlOb2RlICp2YXJEZWZleHByLAogCQkJCVZhcmlhYmxlWGFj dEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKQogewpAQCAtMTE3LDYgKzEyMSw4IEBAIGNyZWF0 ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcnR5cG1vZCAtIDFdID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOwogCXZhbHVlc1tBbnVt X3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsK IAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0odmFyQ29sbGF0aW9uKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJub3RudWxs IC0gMV0gPSBCb29sR2V0RGF0dW0obm90X251bGwpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcmlzaW1tdXRhYmxlIC0gMV0gPSBCb29sR2V0RGF0dW0oaXNfaW1tdXRhYmxlKTsKIAl2YWx1 ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0o dmFyWGFjdEVuZEFjdGlvbik7CiAKIAlpZiAodmFyRGVmZXhwcikKQEAgLTI1OSw2ICsyNjUsOCBA QCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10 ICpzdG10KQogCQkJCQkJCSAgIHZhcm93bmVyLAogCQkJCQkJCSAgIGNvbGxhdGlvbiwKIAkJCQkJ CQkgICBzdG10LT5pZl9ub3RfZXhpc3RzLAorCQkJCQkJCSAgIHN0bXQtPm5vdF9udWxsLAorCQkJ CQkJCSAgIHN0bXQtPmlzX2ltbXV0YWJsZSwKIAkJCQkJCQkgICBjb29rZWRfZGVmYXVsdCwKIAkJ CQkJCQkgICBzdG10LT5YYWN0RW5kQWN0aW9uKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jCmluZGV4IDBhMWMzMjZlNzJlLi43ZjM0ZjkzYjU0MiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtODQsNiArODQsOSBAQCB0eXBlZGVmIHN0 cnVjdCBTVmFyaWFibGVEYXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwogCUxvY2Fs VHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCWJvb2wJCW5vdF9udWxs OworCWJvb2wJCWlzX2ltbXV0YWJsZTsKKwogCWJvb2wJCXJlc2V0X2F0X2VveDsKIAogCS8qCkBA IC0xMDIsNiArMTA1LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCWJvb2wJCWlz X3ZhbGlkOwogCiAJdWludDMyCQloYXNodmFsdWU7CQkvKiB1c2VkIGZvciBwYWlyaW5nIHNpbnZh bCBtZXNzYWdlICovCisKKwkvKiB0cnVlLCB3aGVuIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IHNldCwg YW5kIGNhbm5vdCBiZSBjaGFuZ2VkIG1vcmUgKi8KKwlib29sCQlwcm90ZWN0X3ZhbHVlOwogfSBT VmFyaWFibGVEYXRhOwogCiB0eXBlZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKQEAgLTU2 Myw2ICs1NjksMjMgQEAgZXZhbF9hc3NpZ25fZGVmZXhwcihTVmFyaWFibGUgc3ZhciwgSGVhcFR1 cGxlIHR1cCkKIAogCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CiAJCX0KKwkJZWxz ZQorCQl7CisJCQkvKgorCQkJICogUmFpc2UgYW4gZXJyb3IgaWYgdGhpcyBpcyBhIE5PVCBOVUxM IHZhcmlhYmxlIGJ1dCB0aGUgcmVzdWx0IG9mCisJCQkgKiBERUZBVUxUIGV4cHJlc3Npb24gaXMg TlVMTC4KKwkJCSAqLworCQkJaWYgKHN2YXItPm5vdF9udWxsKQorCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAorCQkJCQkJ IGVycm1zZygibnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2 YXJpYWJsZSBcIiVzLiVzXCIiLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9u X3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCSBlcnJkZXRhaWwoIlRoZSByZXN1 bHQgb2YgREVGQVVMVCBleHByZXNzaW9uIGlzIE5VTEwuIikpKTsKKwkJfQorCisJCWlmIChzdmFy LT5pc19pbW11dGFibGUpCisJCQlzdmFyLT5wcm90ZWN0X3ZhbHVlID0gdHJ1ZTsKIAogCQlGcmVl RXhlY3V0b3JTdGF0ZShlc3RhdGUpOwogCX0KQEAgLTU5Myw2ICs2MTYsOSBAQCBzZXR1cF9zZXNz aW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAK IAlnZXRfdHlwbGVuYnl2YWwoc3Zhci0+dHlwaWQsICZzdmFyLT50eXBsZW4sICZzdmFyLT50eXBi eXZhbCk7CiAKKwlzdmFyLT5ub3RfbnVsbCA9IHZhcmZvcm0tPnZhcm5vdG51bGw7CisJc3Zhci0+ aXNfaW1tdXRhYmxlID0gdmFyZm9ybS0+dmFyaXNpbW11dGFibGU7CisKIAlzdmFyLT5pc19kb21h aW4gPSAoZ2V0X3R5cHR5cGUodmFyZm9ybS0+dmFydHlwZSkgPT0gVFlQVFlQRV9ET01BSU4pOwog CXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4 dHJhX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwpAQCAtNjIyLDkgKzY0OCwzMSBA QCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wg aXNfd3JpdGUpCiAJc3Zhci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklB QkxFT0lELAogCQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CiAKLQlpZiAoIWlz X3dyaXRlKQorCXN2YXItPnByb3RlY3RfdmFsdWUgPSBmYWxzZTsKKworCS8qCisJICogV2hlbiB0 aGUgdmFyaWFibGUgaXMgbWFya2VkIGFzIElNTVVUQUJMRSwgd2UgcHJlZmVyIHRvIGV2YWx1YXRl CisJICogcG9zc2libGUgREVGQVVMVCBiZWZvcmUgd3JpdGUgb3AuIEluIHRoaXMgY2FzZSB3ZSB3 YW50IHRvIHByb3RlY3QKKwkgKiBkZWZhdWx0IHZhbHVlIGFnYWluc3QgYW55IG92ZXJ3cml0ZS4K KwkgKi8KKwlpZiAoIWlzX3dyaXRlIHx8CisJCXN2YXItPmlzX2ltbXV0YWJsZSkKKwl7CiAJCWV2 YWxfYXNzaWduX2RlZmV4cHIoc3ZhciwgdHVwKTsKIAorCQkvKgorCQkgKiBSYWlzZSBhbiBlcnJv ciBpZiB0aGlzIGlzIGEgTk9UIE5VTEwgdmFyaWFibGUgd2l0aG91dCBkZWZhdWx0CisJCSAqIGV4 cHJlc3Npb24uCisJCSAqLworCQlpZiAoc3Zhci0+aXNudWxsICYmIHN2YXItPm5vdF9udWxsKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9B TExPV0VEKSwKKwkJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9U IE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIiLAorCQkJCQkJCWdldF9uYW1lc3BhY2Vf bmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSksCisJCQkJCSBlcnJkZXRhaWwoIlRoZSBzZXNz aW9uIHZhcmlhYmxlIHdhcyBub3QgaW5pdGlhbGl6ZWQgeWV0LiIpKSk7CisJfQorCiAJUmVsZWFz ZVN5c0NhY2hlKHR1cCk7CiB9CiAKQEAgLTY0NCw2ICs2OTIsMjEgQEAgc2V0X3Nlc3Npb25fdmFy aWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAlBc3NlcnQo c3Zhcik7CiAJQXNzZXJ0KCFpc251bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKIAorCWlmIChz dmFyLT5wcm90ZWN0X3ZhbHVlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfRVJST1JfSU5fQVNTSUdOTUVOVCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBc IiVzLiVzXCIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFIiwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFt ZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCWdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpKSkpOworCisJLyogZG9uJ3QgYWxs b3cgYXNzaWdubWVudCBvZiBudWxsIHRvIE5PVCBOVUxMIHZhcmlhYmxlICovCisJaWYgKGlzbnVs bCAmJiBzdmFyLT5ub3RfbnVsbCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAorCQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMg bm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJ CQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zh ci0+dmFyaWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQp KSkpOworCiAJLyoKIAkgKiBVc2UgdHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJp YWJsZSBvbmx5IHdoZW4gdGhleSBhcmUKIAkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlv biBtZXNzYWdlIHdhcyBub3QgYWNjZXB0ZWQgZm9yIHRoaXMKQEAgLTY4NCw2ICs3NDcsMTAgQEAg c2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlz bnVsbCkKIAogCXN2YXItPnZhbHVlID0gbmV3dmFsOwogCXN2YXItPmlzbnVsbCA9IGlzbnVsbDsK KworCS8qIGRvbid0IGFsbG93IG1vcmUgY2hhbmdlcyBvZiB2YWx1ZSB3aGVuIHZhcmlhYmxlIGlz IElNTVVUQUJMRSAqLworCWlmIChzdmFyLT5pc19pbW11dGFibGUpCisJCXN2YXItPnByb3RlY3Rf dmFsdWUgPSB0cnVlOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYjhlMzNlZDE5ZGIuLjZhZWEz YmQzNWIyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY2OCw2ICs2NjgsNyBAQCBzdGF0aWMgTm9kZSAqbWFr ZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCQkJCWpzb25fb2JqZWN0X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCQkJ CWpzb25fYXJyYXlfY29uc3RydWN0b3JfbnVsbF9jbGF1c2Vfb3B0CiAKKyV0eXBlIDxib29sZWFu PgkJT3B0Tm90TnVsbCBPcHRJbW11dGFibGUKIAogLyoKICAqIE5vbi1rZXl3b3JkIHRva2VuIHR5 cGVzLiAgVGhlc2UgYXJlIGhhcmQtd2lyZWQgaW50byB0aGUgImZsZXgiIGxleGVyLgpAQCAtNTIz MSwyNyArNTIzMiwzMSBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJCUNSRUFURSBPcHRUZW1wIFZB UklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2Ug T3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJQ1JFQVRFIE9wdFRl bXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBv cHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5k QWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VO b2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKLQkJCQkJJDQtPnJlbHBlcnNpc3RlbmNlID0gJDI7 Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDQ7Ci0JCQkJCW4tPnR5cGVOYW1lID0gJDY7Ci0JCQkJCW4t PmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkNzsKLQkJCQkJbi0+ZGVmZXhwciA9ICQ4 OwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDk7CisJCQkJCSQ1LT5yZWxwZXJzaXN0ZW5jZSA9 ICQyOworCQkJCQluLT5pc19pbW11dGFibGUgPSAkMzsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNTsK KwkJCQkJbi0+dHlwZU5hbWUgPSAkNzsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xh dXNlICopICQ4OworCQkJCQluLT5ub3RfbnVsbCA9ICQ5OworCQkJCQluLT5kZWZleHByID0gJDEw OworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDExOwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0g ZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBPcHRUZW1w IFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUg b3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRp b24KKwkJCXwgQ1JFQVRFIE9wdFRlbXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVY SVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9w dE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsK IAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFy U3RtdCk7Ci0JCQkJCSQ3LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52YXJpYWJsZSA9 ICQ3OwotCQkJCQluLT50eXBlTmFtZSA9ICQ5OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxh dGVDbGF1c2UgKikgJDEwOwotCQkJCQluLT5kZWZleHByID0gJDExOwotCQkJCQluLT5YYWN0RW5k QWN0aW9uID0gJDEyOworCQkJCQkkOC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNf aW1tdXRhYmxlID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDg7CisJCQkJCW4tPnR5cGVOYW1l ID0gJDEwOworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDExOworCQkJ CQluLT5ub3RfbnVsbCA9ICQxMjsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMzsKKwkJCQkJbi0+WGFj dEVuZEFjdGlvbiA9ICQxNDsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQk ID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC01MjcxLDYgKzUyNzYsMTQgQEAgWGFjdEVuZEFjdGlv bk9wdGlvbjogIE9OIENPTU1JVCBEUk9QCQkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX0RST1A7 IH0KIAkJOwogCiAKK09wdE5vdE51bGw6IE5PVCBOVUxMX1AJCQkJCQkJCXsgJCQgPSB0cnVlOyB9 CisJCQl8IC8qIEVNUFRZICovCQkJCQkJCXsgJCQgPSBmYWxzZTsgfQorCQk7CisKK09wdEltbXV0 YWJsZTogSU1NVVRBQkxFCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJ CQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAg KiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0KZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmlu ZGV4IGMxMzg5OTQzMDRhLi41OWY0MTAzY2E0ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01NDM3LDYgKzU0 MzcsOCBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlpX3ZhcnhhY3RlbmRh Y3Rpb247CiAJaW50CQkJaV92YXJvd25lcjsKIAlpbnQJCQlpX3ZhcmNvbGxhdGlvbjsKKwlpbnQJ CQlpX3Zhcm5vdG51bGw7CisJaW50CQkJaV92YXJpc2ltbXV0YWJsZTsKIAlpbnQJCQlpX3ZhcmFj bDsKIAlpbnQJCQlpX2FjbGRlZmF1bHQ7CiAJaW50CQkJaSwKQEAgLTU0NTksNiArNTQ2MSw4IEBA IGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQkJCQkgICIgICAgICAgICAgICBUSEVOIHYu dmFyY29sbGF0aW9uXG4iCiAJCQkJCSAgIiAgICAgICAgICAgIEVMU0UgMFxuIgogCQkJCQkgICIg ICAgICAgRU5EIEFTIHZhcmNvbGxhdGlvbixcbiIKKwkJCQkJICAiICAgICAgIHYudmFybm90bnVs bCxcbiIKKwkJCQkJICAiICAgICAgIHYudmFyaXNpbW11dGFibGUsXG4iCiAJCQkJCSAgIiAgICAg ICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciwwKSBhcyB2YXJkZWZleHByLFxu IgogCQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4iCiAJCQkJCSAgIiAgICAg ICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVsdFxuIgpAQCAtNTQ3OSw2 ICs1NDgzLDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaV92YXJkZWZleHByID0g UFFmbnVtYmVyKHJlcywgInZhcmRlZmV4cHIiKTsKIAlpX3ZhcnhhY3RlbmRhY3Rpb24gPSBQUWZu dW1iZXIocmVzLCAidmFyeGFjdGVuZGFjdGlvbiIpOwogCWlfdmFyY29sbGF0aW9uID0gUFFmbnVt YmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOworCWlfdmFybm90bnVsbCA9IFBRZm51bWJlcihyZXMs ICJ2YXJub3RudWxsIik7CisJaV92YXJpc2ltbXV0YWJsZSA9IFBRZm51bWJlcihyZXMsICJ2YXJp c2ltbXV0YWJsZSIpOwogCiAJaV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIp OwogCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJlcywgInZhcmFjbCIpOwpAQCAtNTUwNSw2ICs1NTEx LDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCQlwZ19zdHJkdXAoUFFnZXR2YWx1 ZShyZXMsIGksIGlfdmFyeGFjdGVuZGFjdGlvbikpOwogCiAJCXZhcmluZm9baV0udmFyY29sbGF0 aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOworCQl2YXJp bmZvW2ldLnZhcm5vdG51bGwgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5vdG51bGwpKSA9 PSAndCc7CisJCXZhcmluZm9baV0udmFyaXNpbW11dGFibGUgPSAqKFBRZ2V0dmFsdWUocmVzLCBp LCBpX3ZhcmlzaW1tdXRhYmxlKSkgPT0gJ3QnOwogCiAJCXZhcmluZm9baV0uZGFjbC5hY2wgPSBw Z19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyYWNsKSk7CiAJCXZhcmluZm9baV0uZGFj bC5hY2xkZWZhdWx0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2FjbGRlZmF1bHQp KTsKQEAgLTU1NTEsNyArNTU1OSw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25z dCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKIAljb25z dCBjaGFyICp2YXJkZWZleHByOwogCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247CisJY29u c3QgY2hhciAqdmFyaXNpbW11dGFibGU7CiAJT2lkCQkJdmFyY29sbGF0aW9uOworCWJvb2wJCXZh cm5vdG51bGw7CiAKIAkvKiBza2lwIGlmIG5vdCB0byBiZSBkdW1wZWQgKi8KIAlpZiAoIXZhcmlu Zm8tPmRvYmouZHVtcCB8fCBkb3B0LT5kYXRhT25seSkKQEAgLTU1NjUsMTIgKzU1NzUsMTQgQEAg ZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykK IAl2YXJkZWZleHByID0gdmFyaW5mby0+dmFyZGVmZXhwcjsKIAl2YXJ4YWN0ZW5kYWN0aW9uID0g dmFyaW5mby0+dmFyeGFjdGVuZGFjdGlvbjsKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJj b2xsYXRpb247CisJdmFybm90bnVsbCA9IHZhcmluZm8tPnZhcm5vdG51bGw7CisJdmFyaXNpbW11 dGFibGUgPSB2YXJpbmZvLT52YXJpc2ltbXV0YWJsZSA/ICJJTU1VVEFCTEUgIiA6ICIiOwogCiAJ YXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFCTEUgJXM7XG4iLAogCQkJCQkgIHF1 YWx2YXJuYW1lKTsKIAotCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFZBUklBQkxF ICVzIEFTICVzIiwKLQkJCQkJICBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CisJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICJDUkVBVEUgJXNWQVJJQUJMRSAlcyBBUyAlcyIsCisJCQkJCSAgdmFy aXNpbW11dGFibGUsIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKIAogCWlmIChPaWRJc1ZhbGlk KHZhcmNvbGxhdGlvbikpCiAJewpAQCAtNTU4Miw2ICs1NTk0LDkgQEAgZHVtcFZhcmlhYmxlKEFy Y2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAkJCQkJCQkgIGZtdFF1 YWxpZmllZER1bXBhYmxlKGNvbGwpKTsKIAl9CiAKKwlpZiAodmFybm90bnVsbCkKKwkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICIgTk9UIE5VTEwiKTsKKwogCWlmICh2YXJkZWZleHByKQogCQlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBERUZBVUxUICVzIiwKIAkJCQkJCSAgdmFyZGVmZXhw cik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaAppbmRleCA4ZWQ4Mzk3OWVjOS4uZjc5MjFmOTQyZDAgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aApAQCAtNzE3LDYgKzcxNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJsZUluZm8KIAljaGFy CSAgICppbml0cnZhcmFjbDsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAJY29uc3QgY2hhciAqcm9s bmFtZTsJCS8qIG5hbWUgb2Ygb3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLworCWJvb2wJCXZhcm5v dG51bGw7CisJYm9vbAkJdmFyaXNpbW11dGFibGU7CiB9IFZhcmlhYmxlSW5mbzsKIAogLyoKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggZjU4ZWRlNTMzNGEuLjQ3Y2I1OTM1NmUwIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNDA0MSw2ICs0MDQxLDQyIEBAIG15ICV0ZXN0cyA9 ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdGVzdF92YXJpYWJs ZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUg Li4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4g J0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNSBBUyBpbnRlZ2Vy JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGU1IEFTIGludGVnZXI7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxf cnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+ IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4g MSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKKwknQ1JF QVRFIElNTVVUQUJMRSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlIE5PVCBOVUxMIERFRkFVTFQnID0+ IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBj b21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVB VEUgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTcgQVMgaW50ZWdlciBOT1Qg TlVMTCBERUZBVUxUIDEwJywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIElNTVVUQUJM RSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVM VCAxMDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9z Y2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+ IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1 cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+ IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBk dW1wX3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGRjMThkYTM1MGViLi5jYzY5ZjA3ZjFmOSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKQEAgLTUyMDYsNyArNTIwNiw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQg ICAqcmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0 IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0 cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5z dmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MjI3LDYgKzUyMjcsOCBAQCBsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICAoU0VMRUNUIGMu Y29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5 cGUgYnRcbiIKIAkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNvbGxhdGlvbiBBTkQgYnQu b2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50eXBjb2xsYXRpb24pIGFz IFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93 bmVyKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgTk9UIHYudmFybm90bnVsbCBhcyBcIiVzXCIs XG4iCisJCQkJCSAgIiAgTk9UIHYudmFyaXNpbW11dGFibGUgYXMgXCIlc1wiLFxuIgogCQkJCQkg ICIgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLCAwKSBhcyBcIiVzXCIsXG4i CiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIKIAkJCQkJICAiICAgIFdIRU4g J2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgpAQCAtNTIzNyw2ICs1MjM5LDggQEAgbGlzdFZh cmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgZ2V0dGV4 dF9ub29wKCJUeXBlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKIAkJCQkJ ICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOdWxsYWJsZSIp LAorCQkJCQkgIGdldHRleHRfbm9vcCgiTXV0YWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgi RGVmYXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9u IikpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggM2ZiMmM0ZTkyNDguLmI2NTNkZGExZmU4 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMjczLDYgKzEyNzMsOCBAQCBzdGF0aWMgY29u c3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAl7IkZPUkVJR04gVEFC TEUiLCBOVUxMLCBOVUxMLCBOVUxMfSwKIAl7IkZVTkNUSU9OIiwgTlVMTCwgTlVMTCwgUXVlcnlf Zm9yX2xpc3Rfb2ZfZnVuY3Rpb25zfSwKIAl7IkdST1VQIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9s ZXN9LAorCXsiSU1NVVRBQkxFIFZBUklBQkxFIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJ TkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwgLyogZm9yIENSRUFURSBJTU1VVEFCTEUKKwkJ CQkJCQkJCQkJCQkJCQkJCQkJCSAqIFZBUklBQkxFIC4uLiAqLwogCXsiSU5ERVgiLCBOVUxMLCBO VUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfaW5kZXhlc30sCiAJeyJMQU5HVUFHRSIsIFF1ZXJ5X2Zv cl9saXN0X29mX2xhbmd1YWdlc30sCiAJeyJMQVJHRSBPQkpFQ1QiLCBOVUxMLCBOVUxMLCBOVUxM LCBOVUxMLCBUSElOR19OT19DUkVBVEUgfCBUSElOR19OT19EUk9QfSwKQEAgLTM1OTMsNyArMzU5 NSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogLyogQ1JFQVRFIFRB QkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNo ZXMgKi8KIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFRFTVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3Nz aWJsZSB0ZW1wIG9iamVjdHMgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRF TVB8VEVNUE9SQVJZIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZB UklBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVfV0lUSCgiSU1NVVRBQkxFIFZBUklBQkxFIiwg IlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwKKwkJCQkJICAiVklFVyIpOwogCS8qIENv bXBsZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGggVEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNl IGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgo IlRBQkxFIiwgIlNFUVVFTkNFIik7CkBAIC0zOTQ1LDcgKzM5NDgsOCBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIC8qIENSRUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dl ZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxl dGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICovCiAJZWxzZSBpZiAoVGFpbE1hdGNo ZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAotCQkJIFRhaWxNYXRjaGVzKCJU RU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwkJCSBUYWlsTWF0Y2hlcygi VEVNUHxURU1QT1JBUlkiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hl cygiSU1NVVRBQkxFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJB UyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkK IAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCkBA IC00NTg5LDYgKzQ1OTMsMTAgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQs CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkZST00iLCAiU0VSVkVSIiwgTWF0Y2hBbnksICJJTlRP IiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPUFRJT05TICgiKTsKIAorLyogSU1NVVRB QkxFIC0tIGNhbiBiZSBleHBlbmQgdG8gSU1NVVRBQkxFIFZBUklBQkxFICovCisJZWxzZSBpZiAo VGFpbE1hdGNoZXMoIkNSRUFURSIsICJJTU1VVEFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSCgiVkFS SUFCTEUiKTsKKwogLyogSU5TRVJUIC0tLSBjYW4gYmUgaW5zaWRlIEVYUExBSU4sIFJVTEUsIGV0 YyAqLwogCS8qIENvbXBsZXRlIE5PVCBNQVRDSEVEIFRIRU4gSU5TRVJUICovCiAJZWxzZSBpZiAo VGFpbE1hdGNoZXMoIk5PVCIsICJNQVRDSEVEIiwgIlRIRU4iLCAiSU5TRVJUIikpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggZThiZmVlYmVkMTEuLjY4YmM0OWEwZTI3IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC01NSw2ICs1NSwxMiBAQCBDQVRBTE9HKHBnX3Zhcmlh YmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0 eXBlICovCiAJaW50MzIJCXZhcnR5cG1vZCBCS0lfREVGQVVMVCgtMSk7CiAKKwkvKiBkb24ndCBh bGxvdyBOVUxMICovCisJYm9vbAkJdmFybm90bnVsbCBCS0lfREVGQVVMVChmKTsKKworCS8qIGRv bid0IGFsbG93IGNoYW5nZXMgKi8KKwlib29sCQl2YXJpc2ltbXV0YWJsZSBCS0lfREVGQVVMVChm KTsKKwogCS8qIGFjdGlvbiBvbiB0cmFuc2FjdGlvbiBlbmQgKi8KIAljaGFyCQl2YXJ4YWN0ZW5k YWN0aW9uIEJLSV9ERUZBVUxUKG4pOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggNjA0MDQ0 MTNjNDkuLjczMDhjMzIzNTc0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zNDc3LDYgKzM0 NzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCVR5cGVOYW1lICAg KnR5cGVOYW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KIAlDb2xsYXRlQ2xhdXNlICpj b2xsQ2xhdXNlOwogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxy ZWFkeSBleGlzdHMgKi8KKwlib29sCQlub3RfbnVsbDsJCS8qIGRpc2FsbG93IG51bGxzICovCisJ Ym9vbAkJaXNfaW1tdXRhYmxlOwkvKiBkb24ndCBhbGxvdyBjaGFuZ2VzICovCiAJTm9kZQkgICAq ZGVmZXhwcjsJCS8qIGRlZmF1bHQgZXhwcmVzc2lvbiAqLwogCWNoYXIJCVhhY3RFbmRBY3Rpb247 CS8qIG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCBiYzdiNjBhOTdlYS4uNzdhN2JmNDVj OGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNTkzNSwyMCArNTkzNSwyMCBA QCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogU0VUIFJPTEUgVE8gcmVncmVz c192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFU RSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFt ZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAg ICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdl cyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBwdWJsaWMg fCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxl X293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBO YW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAg ICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFj dGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFy YWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAg ICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZh cjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0 aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAg ICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8 ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVz Y3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWlu ZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3Zh cmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAgICAgICB8ICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAg ICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAg fCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxl IHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFj Y2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFy eWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQg ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgor ICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAg ICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTY0MTYsOSAr NjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZhcmlh YmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0g U2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1h IHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8 IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGgg ZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY1OTEsOSArNjU5MSw5IEBAIGltcHJv cGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50 cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6 ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAibm8uc3VjaC5z Y2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8 IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24g CistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQog CiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBx dWFsaWZpY2F0aW9ucy4KQEAgLTY3MzAsOSArNjczMCw5IEBAIExpc3Qgb2YgdGV4dCBzZWFyY2gg dGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJu by5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg dmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERl ZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFi bGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxl IHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0t LSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fp biwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRp b25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAppbmRleCBlZTE1M2Y4ZmI4Mi4uYTg1MjBlNTU3OWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00NSwxMSArNDUsMTEgQEAgU0VU IFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSBzdmFydGVz dC52YXIxIEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBcZFYrIHN2YXJ0ZXN0LnZhcjEK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSAgU2NoZW1hICB8IE5hbWUgfCAg VHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdl cyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFy aWFibGVfb3duZXIrfCAKLSAgICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworICBTY2hlbWEg IHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwg TnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8 ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8IERlc2Ny aXB0aW9uIAorLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAg ICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAgICB8ICAgICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAg ICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAogKDEgcm93KQogCiBEUk9QIFZB UklBQkxFIHN2YXJ0ZXN0LnZhcjE7CkBAIC0xNjE3LDMgKzE2MTcsMTQ4IEBAIFNFTEVDVCB2YXIx OwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKy0t IHRlc3QgTk9UIE5VTEwKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50IE5PVCBOVUxMOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIxOworRVJST1I6ICBu dWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlICJw dWJsaWMudmFyMSIKK0RFVEFJTDogIFRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBub3QgaW5pdGlh bGl6ZWQgeWV0LgorLS1zaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsK KyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7Cist LSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZB VUxUIDA7CistLXNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAg IDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7 CistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSBOVUxMOworRVJST1I6ICBudWxsIHZhbHVl IGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFy MSIKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlc3QgTk9UIE5VTEwKK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJF VFVSTiBOVUxMOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludCBOT1QgTlVMTCBERUZBVUxUIHZhcnRlc3RfZngoKTsKKy0tIHNob3VsZCB0byBm YWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3Ig Tk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitERVRBSUw6ICBUaGUgcmVz dWx0IG9mIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBOVUxMLgorRElTQ0FSRCBWQVJJQUJMRVM7Cist LSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0t LS0tCisgICAxMAorKDEgcm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0 X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gMDsKK0VORDsKKyQkIExB TkdVQUdFIHBscGdzcWw7CitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJM RSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CistLSB0ZXN0IElNTVVUQkxFCitD UkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCistLSBmaXJzdCB3 cml0ZSBzaG91bGQgb2sKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3Vs ZCBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMu dmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3Vs ZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOwor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRB QkxFCitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7Cisg dmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFy MSA9IE5VTEw7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lv biB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRFJPUCBWQVJJ QUJMRSB2YXIxOworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxU IDEwOworLS0gZG9uJ3QgYWxsb3cgY2hhbmdlIHdoZW4gdmFyaWFibGUgaGFzIERFRkFVTFQgdmFs dWUKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitESVNDQVJEIFZBUklB QkxFUzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAg MTAKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNl c3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJM RSB2YXIxIEFTIElOVCBOT1QgTlVMTCBERUZBVUxUIDEwOworLS0gc2hvdWxkIHRvIGZhaWwKK0xF VCB2YXIxID0gMTA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBk ZWNsYXJlZCBJTU1VVEFCTEUKK0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFi bGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworLS0gc2hvdWxk IHRvIGZhaWwKK0xFVCB2YXIxID0gMzA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1Ymxp Yy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFCTEUgdmFyMTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA5ZDlkMDRlYzc2Yi4u YWM4ZTJjYjA5NDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKQEAgLTEwODYsMyArMTA4NiwxMjUgQEAgU0VMRUNUIHZhcjE7CiAKIERST1AgVkFSSUFCTEUg dmFyMTsKIERST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSB0ZXN0IE5PVCBOVUxMCist LSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTDsKKy0t IHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsKKworLS1zaG91bGQgYmUgb2sKK0xFVCB2YXIx ID0gMTA7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQg YmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZBVUxUIDA7CisK Ky0tc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFy MSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBzaG91bGQg dG8gZmFpbAorTEVUIHZhcjEgPSBOVUxMOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRl c3QgTk9UIE5VTEwKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBOVUxMOworRU5EOworJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IE5PVCBOVUxMIERFRkFVTFQg dmFydGVzdF9meCgpOworCistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7CisKK0RJU0NB UkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1Qg dmFyMTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5T IGludCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3Fs OworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsK KworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CisKKy0t IHRlc3QgSU1NVVRCTEUKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CistLSBmaXJzdCB3cml0ZSBzaG91bGQgb2sK Ky0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFy MSA9IDIwOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFy MSA9IDEwOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RJU0NBUkQgVkFSSUFC TEVTOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gc2hvdWxkIGJlIG9rCitM RVQgdmFyMSA9IE5VTEw7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKKworRFJPUCBW QVJJQUJMRSB2YXIxOworCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgaW50IERF RkFVTFQgMTA7CisKKy0tIGRvbid0IGFsbG93IGNoYW5nZSB3aGVuIHZhcmlhYmxlIGhhcyBERUZB VUxUIHZhbHVlCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAyMDsKKworRElTQ0FSRCBW QVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CistLSBzaG91bGQgZmFp bAorTEVUIHZhcjEgPSAyMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUg b2sKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBJTlQgTk9UIE5VTEwgREVGQVVM VCAxMDsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMTA7CitMRVQgdmFyMSA9IDIw OworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgdG8gZmFpbAor TEVUIHZhcjEgPSAzMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOwotLSAKMi40Ny4wCgo= --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename*0=v20241113-0014-allow-read-an-value-of-session-variable-di.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0014-allow-read-an-value-of-session-variable-di.patch"; charset="UTF-8" RnJvbSA0ODZkMDIzYzlhNDIyM2QyYWUwZDc5ODhiYjdlNGNhYjc3YjFkYjhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djIwMjQxMTEzIDE0LzIwXSBhbGxvdyByZWFkIGFuIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUK IGRpcmVjdGx5IGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgoKVGhlIGV4cHJlc3Npb24gZXhlY3V0 b3IgY2FuIGJlIGNhbGxlZCBkaXJlY3RseSAobm90IGluc2lkZSBxdWVyeSBleGVjdXRvcikKd2hl biBleHByZXNzaW9uIGlzIGV2YWx1YXRlZCBhcyBzaW1wbGUgZXhwcmVzc2lvbiBpbiBwbHBnc3Fs IG9yIHdoZW4gZXhwcmVzc2lvbgppcyBhbiBhcmd1bWVudCBvZiBDQUxMIG9yIEVYRUNVVEUgc3Rh dGVtZW50cy4gRm9yIHRoZXNlIGNhc2VzIHdlIG5lZWQgdG8gYWxsb3cgZGlyZWN0CmFjY2VzcyB0 byBjb250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGZyb20gZXhlY3V0b3IuIFdlIGNhbiBkbyBp dCwgYmVjYXVzZQp3ZSBrbm93IHNvIHRoZSBleHByZXNzaW9uIGlzIG5vdCBldmFsdWF0ZWQgdW5k ZXIgcXVlcnkgYW5kIGNhbm5vdCBiZQpldmFsdWF0ZWQgaW5zaWRlIHBhcmFsbGVsIHdvcmtlci4K ClRoaXMgcGF0Y2ggZW5hYmxlcyBzZXNzaW9uIHZhcmlhYmxlcyBmb3Igc2ltcGxlIGV4cHJlc3Np b24gZXZhbHVhdGlvbi4KClRoaXMgcGF0Y2ggZW5hYmxlcyB1c2FnZSBzZXNzaW9uIHZhcmlhYmxl cyBpbiBhcmd1bWVudHMgb2YgQ0FMTCBzdG10LgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3By ZXBhcmUuYyAgICAgICAgICAgICAgICB8ICA4IC0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwci5jICAgICAgICAgICAgICAgfCA4MiArKysrKysrKysrKysrKy0tLS0tCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAxNiArKysrCiBzcmMvYmFja2Vu ZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYyAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgIDggLS0KIHNyYy9pbmNsdWRlL2V4 ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgICAgICAgICB8IDEyICsrLQogLi4uL3NyYy9leHBlY3Rl ZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IHwgIDMgKy0KIHNyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9leGVjLmMgICAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAyNiArKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDEyICstLQogMTAgZmlsZXMgY2hhbmdlZCwg MTE3IGluc2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpp bmRleCAzNzM1YjU1NTRlMC4uZThjMzc1ZGYxOTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKQEAg LTMzOCwxNCArMzM4LDYgQEAgRXZhbHVhdGVQYXJhbXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVw YXJlZFN0YXRlbWVudCAqcHN0bXQsIExpc3QgKnBhcmFtcywKIAkJaSsrOwogCX0KIAotCS8qCi0J ICogVGhlIGFyZ3VtZW50cyBvZiBFWEVDVVRFIGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhw cmVzc2lvbgotCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIG1vZGUgZG9lc24ndCBzdXBwb3J0IHNl c3Npb24gdmFyaWFibGVzIHlldC4KLQkgKiBJdCB3aWxsIGJlIGVuYWJsZWQgbGF0ZXIuCi0JICov Ci0JaWYgKHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQotCQllbG9nKEVSUk9SLCAic2Vz c2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpOwotCiAJLyogUHJl cGFyZSB0aGUgZXhwcmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVj UHJlcGFyZUV4cHJMaXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK aW5kZXggNmRjOGM1NjJiZWMuLjg0NWJkZDFhZTg1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK QEAgLTEwMDUsMjUgKzEwMDUsNjkgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJT dGF0ZSAqc3RhdGUsCiAJCQkJCQkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5w YXJlbnQtPnN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CiAJCQkJCQkJfQogCi0JCQkJ CQkJQXNzZXJ0KGVzX3Nlc3Npb25fdmFyaWFibGVzKTsKLQotCQkJCQkJCS8qIHBhcmFtZXRlciBz YW5pdHkgY2hlY2tzICovCi0JCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNz aW9uX3ZhcmlhYmxlcykKLQkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFS SUFCTEUgcGFyYW0gaXMgb3V0IG9mIHJhbmdlIik7Ci0KLQkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lv bl92YXJpYWJsZXNbcGFyYW0tPnBhcmFtaWRdOwotCi0JCQkJCQkJaWYgKHZhci0+dHlwaWQgIT0g cGFyYW0tPnBhcmFtdHlwZSkKLQkJCQkJCQkJZWxvZyhFUlJPUiwgInR5cGUgb2YgYnVmZmVyZWQg dmFsdWUgaXMgZGlmZmVyZW50IHRoYW4gUEFSQU1fVkFSSUFCTEUgdHlwZSIpOwotCi0JCQkJCQkJ LyoKLQkJCQkJCQkgKiBJbiB0aGlzIGNhc2UsIHBhc3MgdGhlIHZhbHVlIGxpa2UgYQotCQkJCQkJ CSAqIGNvbnN0YW50LgotCQkJCQkJCSAqLwotCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9D T05TVDsKLQkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwudmFsdWUgPSB2YXItPnZhbHVlOwotCQkJ CQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsKLQkJCQkJCQlFeHBy RXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQkJaWYgKGVzX3Nlc3Npb25fdmFy aWFibGVzKQorCQkJCQkJCXsKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogVGhpcyBwYXRoIGlzIHVz ZWQgd2hlbiBleHByZXNzaW9uIGlzCisJCQkJCQkJCSAqIGV2YWx1YXRlZCBpbnNpZGUgcXVlcnkg ZXZhbHVhdGlvbi4gRm9yCisJCQkJCQkJCSAqIGVuc3VyaW5nIG9mIGltbXV0YWJpbGl0eSBvZiBz ZXNzaW9uIHZhcmlhYmxlCisJCQkJCQkJCSAqIGluc2lkZSBxdWVyeSB3ZSB1c2Ugc3BlY2lhbCBi dWZmZXIgd2l0aCBjb3B5CisJCQkJCQkJCSAqIG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRo aXMgbWV0aG9kIGhlbHBzCisJCQkJCQkJCSAqIHdpdGggcGFyYWxsZWwgZXhlY3V0aW9uIHRvby4K KwkJCQkJCQkJICovCisKKwkJCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8KKwkJ CQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcykKKwkJ CQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlzIG91 dCBvZiByYW5nZSIpOworCisJCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJh bS0+cGFyYW1pZF07CisKKwkJCQkJCQkJaWYgKHZhci0+dHlwaWQgIT0gcGFyYW0tPnBhcmFtdHlw ZSkKKwkJCQkJCQkJCWVsb2coRVJST1IsICJ0eXBlIG9mIGJ1ZmZlcmVkIHZhbHVlIGlzIGRpZmZl cmVudCB0aGFuIFBBUkFNX1ZBUklBQkxFIHR5cGUiKTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkg KiBJbiB0aGlzIGNhc2UsIHBhc3MgdGhlIHZhbHVlIGxpa2UgYQorCQkJCQkJCQkgKiBjb25zdGFu dC4KKwkJCQkJCQkJICovCisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJ CQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQkJc2Ny YXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJCQkJCQlFeHByRXZhbFB1 c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQkJfQorCQkJCQkJCWVsc2UKKwkJCQkJCQl7 CisJCQkJCQkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJCQkJCQkJCU9pZAkJCXZhcmlkID0gcGFy YW0tPnBhcmFtdmFyaWQ7CisJCQkJCQkJCU9pZAkJCXZhcnR5cGUgPSBwYXJhbS0+cGFyYW10eXBl OworCisJCQkJCQkJCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKKworCQkJCQkJCQkvKgor CQkJCQkJCQkgKiBJbiBzb21lIGNhc2VzIChwbHBnc3FsJ3Mgc2ltcGxlIGV4cHJlc3Npb24KKwkJ CQkJCQkJICogZXZhbHVhdGlvbiBvciBldmFsdWF0aW9uIG9mIENBTEwgYXJndW1lbnRzKSwKKwkJ CQkJCQkJICogdGhlIGV4cHJlc3Npb24gZXhlY3V0b3IgaXMgY2FsbGVkIGRpcmVjdGx5LgorCQkJ CQkJCQkgKiBXZSBjYW4gYWxsb3cgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uCisJCQkJCQkJCSAq IHZhcmlhYmxlcyAoY29weSBvbmx5KSwgYmVjYXVzZSB3ZSBrbm93LCBzbworCQkJCQkJCQkgKiBv dXRzaWRlIGlzIG5vdCBhbnkgcXVlcnkgKGFuZCBleHByZXNzaW9uCisJCQkJCQkJCSAqIGNhbm5v dCBiZSBleGVjdXRlZCBwYXJhbGxlbCkuCisJCQkJCQkJCSAqCisJCQkJCQkJCSAqIEluIHRoaXMg Y2FzZSB3ZSBzaG91bGQgdG8gZG8gYWNsY2hlY2ssCisJCQkJCQkJCSAqIGJlY2F1c2UgdXN1YWwg YWNsY2hlY2sgZnJvbQorCQkJCQkJCQkgKiBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0IGlzIG5vdCBl eGVjdXRlZCBpbgorCQkJCQkJCQkgKiB0aGlzIGNhc2UuIEZvcnR1bmF0ZWx5IGl0IGlzIGp1c3Qg b25jZSBwZXIKKwkJCQkJCQkJICogdHJhbnNhY3Rpb24uCisJCQkJCQkJCSAqLworCQkJCQkJCQlh Y2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJ CQkJCQkJCQkJCQkJCUdldFVzZXJJZCgpLCBBQ0xfU0VMRUNUKTsKKwkJCQkJCQkJaWYgKGFjbHJl c3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwg T0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkJCQkJICAgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZSh2YXJpZCkpOworCisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9QQVJBTV9WQVJJQUJM RTsKKwkJCQkJCQkJc2NyYXRjaC5kLnZwYXJhbS52YXJpZCA9IHZhcmlkOworCQkJCQkJCQlzY3Jh dGNoLmQudnBhcmFtLnZhcnR5cGUgPSB2YXJ0eXBlOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVw KHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQkJfQogCQkJCQkJfQogCQkJCQkJYnJlYWs7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IDMwYzVhMTlhYWQ2Li4wYTE1NGI5 N2Q2ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC01OSw2ICs1OSw3 IEBACiAjaW5jbHVkZSAiYWNjZXNzL2hlYXB0b2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAj aW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1YnBsYW4uaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBA IC00NTAsNiArNDUxLDcgQEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNv bnRleHQgKmVjb250ZXh0LCBib29sICppc251bGwpCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYRUMs CiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYVEVSTiwKIAkJJiZDQVNFX0VFT1BfUEFSQU1fQ0FMTEJB Q0ssCisJCSYmQ0FTRV9FRU9QX1BBUkFNX1ZBUklBQkxFLAogCQkmJkNBU0VfRUVPUF9QQVJBTV9T RVQsCiAJCSYmQ0FTRV9FRU9QX0NBU0VfVEVTVFZBTCwKIAkJJiZDQVNFX0VFT1BfTUFLRV9SRUFE T05MWSwKQEAgLTEwOTksNiArMTEwMSwyMCBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0 YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkJCUVFT19ORVhUKCk7 CiAJCX0KIAorCQlFRU9fQ0FTRShFRU9QX1BBUkFNX1ZBUklBQkxFKQorCQl7CisJCQkvKgorCQkJ ICogRGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlICh3aXRob3V0IGJ1ZmZlcmluZyku IEJlY2F1c2UKKwkJCSAqIHJldHVybmVkIHZhbHVlIGNhbiBiZSB1c2VkICh3aXRob3V0IGFuIGFz c2lnbmVtZW50KSBhZnRlciB0aGUKKwkJCSAqIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMg aXMgdXBkYXRlZCwgd2UgaGF2ZSB0byB1c2UgYW4gY29weQorCQkJICogb2Ygc3RvcmVkIHZhbHVl IGV2ZXJ5IHRpbWUuCisJCQkgKi8KKwkJCSpvcC0+cmVzdmFsdWUgPSBHZXRTZXNzaW9uVmFyaWFi bGVXaXRoVHlwZUNoZWNrKG9wLT5kLnZwYXJhbS52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCW9wLT5y ZXNudWxsLAorCQkJCQkJCQkJCQkJCQkJb3AtPmQudnBhcmFtLnZhcnR5cGUpOworCQkJRUVPX05F WFQoKTsKKwkJfQorCiAJCUVFT19DQVNFKEVFT1BfUEFSQU1fU0VUKQogCQl7CiAJCQkvKiBvdXQg b2YgbGluZSwgdW5saWtlbHkgdG8gbWF0dGVyIHBlcmZvcm1hbmNlLXdpc2UgKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0 L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXggMGIzYjU3NDhlYTIuLjFjY2I5YzVmNGEwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYworKysgYi9zcmMvYmFj a2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpAQCAtMTE0NSw2ICsxMTQ1LDEyIEBAIGxsdm1f Y29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJCWJyZWFrOwogCQkJCX0KIAorCQkJ Y2FzZSBFRU9QX1BBUkFNX1ZBUklBQkxFOgorCQkJCWJ1aWxkX0V2YWxYRnVuYyhiLCBtb2QsICJF eGVjRXZhbFBhcmFtVmFyaWFibGUiLAorCQkJCQkJCQl2X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7 CisJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKKwkJCQlicmVhazsKKwog CQkJY2FzZSBFRU9QX1BBUkFNX1NFVDoKIAkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhl Y0V2YWxQYXJhbVNldCIsCiAJCQkJCQkJCXZfc3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv YW5hbHl6ZS5jCmluZGV4IDlkZmQ0MzUxMjhhLi40OTZkNzVhNDk0YSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6 ZS5jCkBAIC0zNDcwLDE0ICszNDcwLDYgQEAgdHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDYWxsU3RtdCAqc3RtdCkKIAkJCQkJCQkgdHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVu Y2NhbGwtPmxvY2F0aW9uKTsKIAotCS8qCi0JICogVGhlIGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRl bWVudCBhcmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24KLQkgKiBleGVjdXRvciBj YWxsLiAgVGhpcyBwYXRoIGlzIHVuc3VwcG9ydGVkIHlldCwgc28gYmxvY2sgaXQuICBJdCB3aWxs IGJlCi0JICogZW5hYmxlZCBsYXRlci4KLQkgKi8KLQlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25W YXJpYWJsZXMpCi0JCWVsb2coRVJST1IsICJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2Vk IGFzIGFuIGFyZ3VtZW50Iik7Ci0KIAlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgbm9k ZSk7CiAKIAlmZXhwciA9IGNhc3ROb2RlKEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj RXhwci5oCmluZGV4IGNkOTdkZmEwNjI0Li43MmI1NGIzYTMzZiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj RXhwci5oCkBAIC0xNTYsMTAgKzE1NiwxMSBAQCB0eXBlZGVmIGVudW0gRXhwckV2YWxPcAogCUVF T1BfQk9PTFRFU1RfSVNfRkFMU0UsCiAJRUVPUF9CT09MVEVTVF9JU19OT1RfRkFMU0UsCiAKLQkv KiBldmFsdWF0ZSBQQVJBTV9FWEVDL0VYVEVSTiBwYXJhbWV0ZXJzICovCisJLyogZXZhbHVhdGUg UEFSQU1fRVhFQy9FWFRFUk4vVkFSSUFCTEUgcGFyYW1ldGVycyAqLwogCUVFT1BfUEFSQU1fRVhF QywKIAlFRU9QX1BBUkFNX0VYVEVSTiwKIAlFRU9QX1BBUkFNX0NBTExCQUNLLAorCUVFT1BfUEFS QU1fVkFSSUFCTEUsCiAJLyogc2V0IFBBUkFNX0VYRUMgdmFsdWUgKi8KIAlFRU9QX1BBUkFNX1NF VCwKIApAQCAtNDA5LDYgKzQxMCwxMyBAQCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJ CU9pZAkJCXBhcmFtdHlwZTsJLyogT0lEIG9mIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCX0J CQljcGFyYW07CiAKKwkJLyogZm9yIEVFT1BfUEFSQU1fVkFSSUFCTEUgKi8KKwkJc3RydWN0CisJ CXsKKwkJCU9pZAkJCXZhcmlkOwkJLyogT0lEIG9mIGFzc2lnbmVkIHZhcmlhYmxlICovCisJCQlP aWQJCQl2YXJ0eXBlOwkvKiBPSUQgb2YgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KKwkJfQkJCXZw YXJhbTsKKwogCQkvKiBmb3IgRUVPUF9DQVNFX1RFU1RWQUwvRE9NQUlOX1RFU1RWQUwgKi8KIAkJ c3RydWN0CiAJCXsKQEAgLTgzMSw2ICs4MzksOCBAQCBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFt U2V0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJIEV4cHJDb250 ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtRXh0ZXJuKEV4cHJTdGF0 ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJCUV4cHJDb250ZXh0ICplY29udGV4 dCk7CitleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtVmFyaWFibGUoRXhwclN0YXRlICpzdGF0ZSwg RXhwckV2YWxTdGVwICpvcCwKKwkJCQkJCQkJICBFeHByQ29udGV4dCAqZWNvbnRleHQpOwogZXh0 ZXJuIHZvaWQgRXhlY0V2YWxDb2VyY2VWaWFJT1NhZmUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2 YWxTdGVwICpvcCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbFNRTFZhbHVlRnVuY3Rpb24oRXhwclN0 YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbEN1cnJl bnRPZkV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CmRpZmYgLS1naXQg YS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91 dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUu b3V0CmluZGV4IGE2NTIzZjdhZmUyLi5lY2FjNjRmY2ZiNCAxMDA2NDQKLS0tIGEvc3JjL3BsL3Bs cGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAg LTIxMSw4ICsyMTEsNyBAQCBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAtLSBz aG91bGQgZmFpbAogU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgcGxwZ3NxbF9zdl92YXIxCi1DT05URVhUOiAgUEwv cGdTUUwgZXhwcmVzc2lvbiAicGxwZ3NxbF9zdl92YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gdmFy X3JlYWRfZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9u IHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBT RVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOwogR1JBTlQgU0VMRUNUIE9OIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKZGlmZiAtLWdp dCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxf ZXhlYy5jCmluZGV4IDEzNjFhOGE4NDgwLi44NmM1YmQzMjRhOSAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscGdzcWwvc3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5j CkBAIC04MDk5LDggKzgwOTksNyBAQCBleGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIg KmV4cHIpCiAJCXF1ZXJ5LT5zb3J0Q2xhdXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAog CQlxdWVyeS0+bGltaXRDb3VudCB8fAotCQlxdWVyeS0+c2V0T3BlcmF0aW9ucyB8fAotCQlxdWVy eS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMpCiAJCXJldHVy biBmYWxzZTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CmluZGV4IGE4NTIwZTU1NzlkLi4yZjE3MDhmN2M4NCAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEwOCw4ICsx MDgsNyBAQCBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZh cjEKIENPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gInNxbGZ4IiBzdGF0ZW1lbnQgMQogU0VMRUNUIHBs cGdzcWxmeCgyMCk7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlh YmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICIkMSArIHZhcjEiCi1QTC9w Z1NRTCBmdW5jdGlvbiBwbHBnc3FsZngoaW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgorQ09OVEVY VDogIFBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJO CiAtLSBzaG91bGQgYmUgb2sKIFNFTEVDVCBzcWxmeF9zZCgyMCk7CiAgc3FsZnhfc2QgCkBAIC0y NzksMjcgKzI3OCwyOCBAQCAkJDsKIE5PVElDRTogIHJlc3VsdCBhcnJheTogezEsMiwzLDQsNSw2 LDcsOCw5LDEwfQogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBWQVJJQUJMRSB2YXIyOwotLS0g Q0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKLS0tIHJlcXVpcmVzIGRpcmVjdCBh Y2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKKy0tIENB TEwgc3RhdGVtZW50IGlzIHN1cHBvcnRlZAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OworTEVUIHYg PSAxOwogQ1JFQVRFIFBST0NFRFVSRSBwKGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElD RSAnJScsIGFyZzsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7Ci0tLSBzaG91bGQgbm90IGNyYXNo IChidXQgaXMgbm90IHN1cHBvcnRlZCB5ZXQpCistLSBzaG91bGQgdG8gd29yawogQ0FMTCBwKHYp OwotRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50 CitOT1RJQ0U6ICAxCiBETyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKLUVSUk9SOiAgc2Vz c2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAotQ09OVEVYVDogIFNR TCBzdGF0ZW1lbnQgIkNBTEwgcCh2KSIKLVBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Js b2NrIGxpbmUgMSBhdCBDQUxMCitOT1RJQ0U6ICAxCiBEUk9QIFBST0NFRFVSRSBwKGludCk7CiBE Uk9QIFZBUklBQkxFIHY7Ci0tLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHll dAotLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhw cmVzc2lvbiBleGVjdXRvcgorLS0gRVhFQ1VURSBzdGF0ZW1lbnQKIENSRUFURSBWQVJJQUJMRSB2 IGludDsKIExFVCB2ID0gMjA7CiBQUkVQQVJFIHB0ZXN0KGludCkgQVMgU0VMRUNUICQxOwotLS0g c2hvdWxkIGZhaWwKKy0tIHNob3VsZCBiZSBvawogRVhFQ1VURSBwdGVzdCh2KTsKLUVSUk9SOiAg c2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorID9jb2x1bW4/ IAorLS0tLS0tLS0tLQorICAgICAgIDIwCisoMSByb3cpCisKIERFQUxMT0NBVEUgcHRlc3Q7CiBE Uk9QIFZBUklBQkxFIHY7CiAtLSB0ZXN0IHNlYXJjaCBwYXRoCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYWM4ZTJjYjA5NDMuLmZjZDc4M2U5NjZjIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0yMDcsMTMg KzIwNywxNCBAQCAkJDsKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVkFSSUFCTEUgdmFyMjsK IAotLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKLS0tIHJlcXVpcmVzIGRp cmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IK Ky0tIENBTEwgc3RhdGVtZW50IGlzIHN1cHBvcnRlZAogQ1JFQVRFIFZBUklBQkxFIHYgaW50Owog CitMRVQgdiA9IDE7CisKIENSRUFURSBQUk9DRURVUkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBS QUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOwogCi0tLSBzaG91 bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRlZCB5ZXQpCistLSBzaG91bGQgdG8gd29y awogQ0FMTCBwKHYpOwogCiBETyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKQEAgLTIyMSwx MyArMjIyLDEyIEBAIERPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOwogRFJPUCBQUk9DRURV UkUgcChpbnQpOwogRFJPUCBWQVJJQUJMRSB2OwogCi0tLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBu b3Qgc3VwcG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZh cmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gRVhFQ1VURSBzdGF0ZW1lbnQKIENS RUFURSBWQVJJQUJMRSB2IGludDsKIExFVCB2ID0gMjA7CiBQUkVQQVJFIHB0ZXN0KGludCkgQVMg U0VMRUNUICQxOwogCi0tLSBzaG91bGQgZmFpbAorLS0gc2hvdWxkIGJlIG9rCiBFWEVDVVRFIHB0 ZXN0KHYpOwogCiBERUFMTE9DQVRFIHB0ZXN0OwotLSAKMi40Ny4wCgo= --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename*0=v20241113-0015-allow-parallel-execution-queries-with-sess.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0015-allow-parallel-execution-queries-with-sess.patch"; charset="UTF-8" RnJvbSBlOGYxNzg3MTk4MDVkZDA5ODQ1YzRiOGI1NjA4OTQ3ODA4NzFmODQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowODoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djIwMjQxMTEzIDE1LzIwXSBhbGxvdyBwYXJhbGxlbCBleGVjdXRpb24gcXVlcmllcyB3aXRoIHNl c3Npb24KIHZhcmlhYmxlcwoKLS0tCiBkb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCAgICAgICAg ICAgICAgICAgICAgfCAgIDYgLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAg ICAgICAgICAgIHwgIDE0ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyAg ICAgICAgICAgfCAxNDcgKysrKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIv dXRpbC9jbGF1c2VzLmMgICAgICAgICAgfCAgMTggKy0tCiAuLi4vcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgMTIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMTcxIGlu c2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9w YXJhbGxlbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKaW5kZXggNjgzZGVkZTZh ZGMuLjFjZTlhYmY4NmY1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbApAQCAtNTE1LDEyICs1MTUsNiBAQCBFWFBM QUlOIFNFTEVDVCAqIEZST00gcGdiZW5jaF9hY2NvdW50cyBXSEVSRSBmaWxsZXIgTElLRSAnJXgl JzsKICAgICAgICAgUGxhbiBub2RlcyB0aGF0IHJlZmVyZW5jZSBhIGNvcnJlbGF0ZWQgPGxpdGVy YWw+U3ViUGxhbjwvbGl0ZXJhbD4uCiAgICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KLQot ICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJhPgotICAgICAgICBQbGFuIG5vZGVzIHRoYXQgdXNl IGEgc2Vzc2lvbiB2YXJpYWJsZS4KLSAgICAgIDwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgogICA8 L2l0ZW1pemVkbGlzdD4KIAogIDxzZWN0MiBpZD0icGFyYWxsZWwtbGFiZWxpbmciPgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKaW5kZXggMjFlOTM4YTYyMjcuLjc4MzcxNmM0ZTU3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKQEAgLTIxMiw3ICsyMTIsMTkgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFy dChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkgKiAgICBiZSBjaGFuZ2VkIGlu c2lkZSBxdWVyeSBleGVjdXRpb24gdGltZSwgYW5kIHRoZW4gYSByZWZlcmVuY2UgdG8KIAkgKiAg ICBwcmV2aW91c2x5IHJldHVybmVkIHZhbHVlIGNhbiBiZSBjb3JydXB0ZWQpLgogCSAqLwotCWlm IChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCWlmIChxdWVyeURl c2MtPm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA+IDApCisJeworCQkvKgorCQkgKiBXaGVuIGEgcGFy YWxsZWwgcXVlcnkgbmVlZHMgdG8gYWNjZXNzIHF1ZXJ5IHBhcmFtZXRlcnMgKGluY2x1ZGluZwor CQkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzKSwgdGhlbiByZWxhdGVkIHNlc3Npb24gdmFy aWFibGVzIGFyZQorCQkgKiByZXN0b3JlZCAoZGVzZXJpYWxpemVkKSBpbiBxdWVyeURlc2MgYWxy ZWFkeS4gU28ganVzdCBwdXNoIHBvaW50ZXIKKwkJICogb2YgdGhpcyBhcnJheSB0byBleGVjdXRv cidzIGVzdGF0ZS4KKwkJICovCisJCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOworCQllc3Rh dGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gcXVlcnlEZXNjLT5zZXNzaW9uX3ZhcmlhYmxlczsK KwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBxdWVyeURlc2MtPm51bV9zZXNz aW9uX3ZhcmlhYmxlczsKKwl9CisJZWxzZSBpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vz c2lvblZhcmlhYmxlcykKIAl7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlpbnQJCQluU2Vzc2lvblZh cmlhYmxlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggYmZiMzQxOWVmYjcu LmNiNDM0ZTI3NjhlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxs ZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtMTIsOCAr MTIsOSBAQAogICogd29ya2VycyBhbmQgZW5zdXJpbmcgdGhhdCB0aGVpciBzdGF0ZSBnZW5lcmFs bHkgbWF0Y2hlcyB0aGF0IG9mIHRoZQogICogbGVhZGVyOyBzZWUgc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0vUkVBRE1FLnBhcmFsbGVsIGZvciBkZXRhaWxzLgogICogSG93ZXZlciwgd2UgbXVz dCBzYXZlIGFuZCByZXN0b3JlIHJlbGV2YW50IGV4ZWN1dG9yIHN0YXRlLCBzdWNoIGFzCi0gKiBh bnkgUGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhlIHF1ZXJ5LCBidWZmZXIvV0FMIHVz YWdlIGluZm8sIGFuZAotICogdGhlIGFjdHVhbCBwbGFuIHRvIGJlIHBhc3NlZCBkb3duIHRvIHRo ZSB3b3JrZXIuCisgKiBhbnkgUGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhlIHF1ZXJ5 LCBidWZmZXIvV0FMIHVzYWdlIGluZm8sCisgKiBzZXNzaW9uIHZhcmlhYmxlcyBidWZmZXIsIGFu ZCB0aGUgYWN0dWFsIHBsYW4gdG8gYmUgcGFzc2VkIGRvd24gdG8KKyAqIHRoZSB3b3JrZXIuCiAg KgogICogSURFTlRJRklDQVRJT04KICAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFs bGVsLmMKQEAgLTY0LDYgKzY1LDcgQEAKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1FVRVJZX1RFWFQJ CVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwOCkKICNkZWZpbmUgUEFSQUxMRUxfS0VZX0pJ VF9JTlNUUlVNRU5UQVRJT04gVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA5KQogI2RlZmlu ZSBQQVJBTExFTF9LRVlfV0FMX1VTQUdFCQkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDBB KQorI2RlZmluZSBQQVJBTExFTF9LRVlfU0VTU0lPTl9WQVJJQUJMRVMJVUlOVDY0Q09OU1QoMHhF MDAwMDAwMDAwMDAwMDBCKQogCiAjZGVmaW5lIFBBUkFMTEVMX1RVUExFX1FVRVVFX1NJWkUJCTY1 NTM2CiAKQEAgLTEzOCw2ICsxNDAsMTIgQEAgc3RhdGljIGJvb2wgRXhlY1BhcmFsbGVsUmV0cmll dmVJbnN0cnVtZW50YXRpb24oUGxhblN0YXRlICpwbGFuc3RhdGUsCiAvKiBIZWxwZXIgZnVuY3Rp b24gdGhhdCBydW5zIGluIHRoZSBwYXJhbGxlbCB3b3JrZXIuICovCiBzdGF0aWMgRGVzdFJlY2Vp dmVyICpFeGVjUGFyYWxsZWxHZXRSZWNlaXZlcihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0 b2MpOwogCisvKiBIZWxwZXIgZnVuY3Rpb25zIHRoYXQgY2FuIHBhc3MgdmFsdWVzIG9mIHNlc3Np b24gdmFyaWFibGVzICovCitzdGF0aWMgU2l6ZSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMoRVN0 YXRlICplc3RhdGUpOworc3RhdGljIHZvaWQgU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxlcyhFU3Rh dGUgKmVzdGF0ZSwgY2hhciAqKnN0YXJ0X2FkZHJlc3MpOworc3RhdGljIFNlc3Npb25WYXJpYWJs ZVZhbHVlICpSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoqc3RhcnRfYWRkcmVzcywKKwkJ CQkJCQkJCQkJCQkgaW50ICpudW1fc2Vzc2lvbl92YXJpYWJsZXMpOworCiAvKgogICogQ3JlYXRl IGEgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGxhbiB0byBiZSBzZW50IHRvIGVh Y2ggd29ya2VyLgogICovCkBAIC01OTYsNiArNjA0LDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4o UGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCWNoYXIJICAgKnBzdG10X2Rh dGE7CiAJY2hhcgkgICAqcHN0bXRfc3BhY2U7CiAJY2hhcgkgICAqcGFyYW1saXN0aW5mb19zcGFj ZTsKKwljaGFyCSAgICpzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZTsKIAlCdWZmZXJVc2FnZSAqYnVm dXNhZ2Vfc3BhY2U7CiAJV2FsVXNhZ2UgICAqd2FsdXNhZ2Vfc3BhY2U7CiAJU2hhcmVkRXhlY3V0 b3JJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnRhdGlvbiA9IE5VTEw7CkBAIC02MDUsNiArNjE0 LDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAq ZXN0YXRlLAogCWludAkJCWluc3RydW1lbnRhdGlvbl9sZW4gPSAwOwogCWludAkJCWppdF9pbnN0 cnVtZW50YXRpb25fbGVuID0gMDsKIAlpbnQJCQlpbnN0cnVtZW50X29mZnNldCA9IDA7CisJaW50 CQkJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gMDsKIAlTaXplCQlkc2FfbWluc2l6ZSA9IGRzYV9t aW5pbXVtX3NpemUoKTsKIAljaGFyCSAgICpxdWVyeV9zdHJpbmc7CiAJaW50CQkJcXVlcnlfbGVu OwpAQCAtNjYwLDYgKzY3MCwxMSBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBs YW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ ZXN0aW1hdG9yLCBwYXJhbWxpc3RpbmZvX2xlbik7CiAJc2htX3RvY19lc3RpbWF0ZV9rZXlzKCZw Y3h0LT5lc3RpbWF0b3IsIDEpOwogCisJLyogRXN0aW1hdGUgc3BhY2UgZm9yIHNlcmlhbGl6ZWQg c2Vzc2lvbiB2YXJpYWJsZXMuICovCisJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gRXN0aW1hdGVT ZXNzaW9uVmFyaWFibGVzKGVzdGF0ZSk7CisJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ ZXN0aW1hdG9yLCBzZXNzaW9uX3ZhcmlhYmxlc19sZW4pOworCXNobV90b2NfZXN0aW1hdGVfa2V5 cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsKKwogCS8qCiAJICogRXN0aW1hdGUgc3BhY2UgZm9yIEJ1 ZmZlclVzYWdlLgogCSAqCkBAIC03NjEsNiArNzc2LDExIEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFu KFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2luc2VydChw Y3h0LT50b2MsIFBBUkFMTEVMX0tFWV9QQVJBTUxJU1RJTkZPLCBwYXJhbWxpc3RpbmZvX3NwYWNl KTsKIAlTZXJpYWxpemVQYXJhbUxpc3QoZXN0YXRlLT5lc19wYXJhbV9saXN0X2luZm8sICZwYXJh bWxpc3RpbmZvX3NwYWNlKTsKIAorCS8qIFN0b3JlIHNlcmlhbGl6ZWQgc2Vzc2lvbiB2YXJpYWJs ZXMuICovCisJc2Vzc2lvbl92YXJpYWJsZXNfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQt PnRvYywgc2Vzc2lvbl92YXJpYWJsZXNfbGVuKTsKKwlzaG1fdG9jX2luc2VydChwY3h0LT50b2Ms IFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUywgc2Vzc2lvbl92YXJpYWJsZXNfc3BhY2Up OworCVNlcmlhbGl6ZVNlc3Npb25WYXJpYWJsZXMoZXN0YXRlLCAmc2Vzc2lvbl92YXJpYWJsZXNf c3BhY2UpOworCiAJLyogQWxsb2NhdGUgc3BhY2UgZm9yIGVhY2ggd29ya2VyJ3MgQnVmZmVyVXNh Z2U7IG5vIG5lZWQgdG8gaW5pdGlhbGl6ZS4gKi8KIAlidWZ1c2FnZV9zcGFjZSA9IHNobV90b2Nf YWxsb2NhdGUocGN4dC0+dG9jLAogCQkJCQkJCQkJICBtdWxfc2l6ZShzaXplb2YoQnVmZmVyVXNh Z2UpLCBwY3h0LT5ud29ya2VycykpOwpAQCAtMTQxMSw2ICsxNDMxLDcgQEAgUGFyYWxsZWxRdWVy eU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCVNoYXJlZEppdEluc3RydW1l bnRhdGlvbiAqaml0X2luc3RydW1lbnRhdGlvbjsKIAlpbnQJCQlpbnN0cnVtZW50X29wdGlvbnMg PSAwOwogCXZvaWQJICAgKmFyZWFfc3BhY2U7CisJY2hhcgkgICAqc2Vzc2lvbnZhcmlhYmxlX3Nw YWNlOwogCWRzYV9hcmVhICAgKmFyZWE7CiAJUGFyYWxsZWxXb3JrZXJDb250ZXh0IHB3Y3h0Owog CkBAIC0xNDM2LDYgKzE0NTcsMTQgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNl Zywgc2htX3RvYyAqdG9jKQogCWFyZWFfc3BhY2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFM TEVMX0tFWV9EU0EsIGZhbHNlKTsKIAlhcmVhID0gZHNhX2F0dGFjaF9pbl9wbGFjZShhcmVhX3Nw YWNlLCBzZWcpOwogCisJLyogUmVjb25zdHJ1Y3Qgc2Vzc2lvbiB2YXJpYWJsZXMuICovCisJc2Vz c2lvbnZhcmlhYmxlX3NwYWNlID0gc2htX3RvY19sb29rdXAodG9jLAorCQkJCQkJCQkJCSAgIFBB UkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUywKKwkJCQkJCQkJCQkgICBmYWxzZSk7CisJcXVl cnlEZXNjLT5zZXNzaW9uX3ZhcmlhYmxlcyA9CisJCVJlc3RvcmVTZXNzaW9uVmFyaWFibGVzKCZz ZXNzaW9udmFyaWFibGVfc3BhY2UsCisJCQkJCQkJCSZxdWVyeURlc2MtPm51bV9zZXNzaW9uX3Zh cmlhYmxlcyk7CisKIAkvKiBTdGFydCB1cCB0aGUgZXhlY3V0b3IgKi8KIAlxdWVyeURlc2MtPnBs YW5uZWRzdG10LT5qaXRGbGFncyA9IGZwZXMtPmppdF9mbGFnczsKIAlFeGVjdXRvclN0YXJ0KHF1 ZXJ5RGVzYywgZnBlcy0+ZWZsYWdzKTsKQEAgLTE1MDQsMyArMTUzMywxMTcgQEAgUGFyYWxsZWxR dWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCUZyZWVRdWVyeURlc2Mo cXVlcnlEZXNjKTsKIAlyZWNlaXZlci0+ckRlc3Ryb3kocmVjZWl2ZXIpOwogfQorCisvKgorICog RXN0aW1hdGUgdGhlIGFtb3VudCBvZiBzcGFjZSByZXF1aXJlZCB0byBzZXJpYWxpemUgYSBzZXNz aW9uIHZhcmlhYmxlLgorICovCitzdGF0aWMgU2l6ZQorRXN0aW1hdGVTZXNzaW9uVmFyaWFibGVz KEVTdGF0ZSAqZXN0YXRlKQoreworCWludAkJCWk7CisJU2l6ZQkJc3ogPSBzaXplb2YoaW50KTsK KworCWlmIChlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID09IE5VTEwpCisJCXJldHVybiBz ejsKKworCWZvciAoaSA9IDA7IGkgPCBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsg aSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnN2YXJ2YWw7CisJCU9pZAkJCXR5cGVP aWQ7CisJCWludDE2CQl0eXBMZW47CisJCWJvb2wJCXR5cEJ5VmFsOworCisJCXN2YXJ2YWwgPSAm ZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXTsKKworCQl0eXBlT2lkID0gc3ZhcnZhbC0+ dHlwaWQ7CisKKwkJc3ogPSBhZGRfc2l6ZShzeiwgc2l6ZW9mKE9pZCkpOyAvKiBzcGFjZSBmb3Ig dHlwZSBPSUQgKi8KKworCQkvKiBzcGFjZSBmb3IgZGF0dW0vaXNudWxsICovCisJCUFzc2VydChP aWRJc1ZhbGlkKHR5cGVPaWQpKTsKKwkJZ2V0X3R5cGxlbmJ5dmFsKHR5cGVPaWQsICZ0eXBMZW4s ICZ0eXBCeVZhbCk7CisKKwkJc3ogPSBhZGRfc2l6ZShzeiwKKwkJCQkJICBkYXR1bUVzdGltYXRl U3BhY2Uoc3ZhcnZhbC0+dmFsdWUsIHN2YXJ2YWwtPmlzbnVsbCwgdHlwQnlWYWwsIHR5cExlbikp OworCX0KKworCXJldHVybiBzejsKK30KKworLyoKKyAqIFNlcmlhbGl6ZSBhIHNlc3Npb24gdmFy aWFibGVzIGJ1ZmZlciBpbnRvIGNhbGxlci1wcm92aWRlZCBzdG9yYWdlLgorICoKKyAqIFdlIHdy aXRlIHRoZSBudW1iZXIgb2YgcGFyYW1ldGVycyBmaXJzdCwgYXMgYSA0LWJ5dGUgaW50ZWdlciwg YW5kIHRoZW4KKyAqIHdyaXRlIGRldGFpbHMgZm9yIGVhY2ggcGFyYW1ldGVyIGluIHR1cm4uICBU aGUgZGV0YWlscyBmb3IgZWFjaCBwYXJhbWV0ZXIKKyAqIGNvbnNpc3Qgb2YgYSA0LWJ5dGUgdHlw ZSBPSUQsIGFuZCB0aGVuIHRoZSBkYXR1bSBhcyBzZXJpYWxpemVkIGJ5CisgKiBkYXR1bVNlcmlh bGl6ZSgpLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZW5zdXJpbmcgdGhhdCB0aGVy ZSBpcworICogZW5vdWdoIHN0b3JhZ2UgdG8gc3RvcmUgdGhlIG51bWJlciBvZiBieXRlcyB0aGF0 IHdpbGwgYmUgd3JpdHRlbjsgdXNlCisgKiBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMgdG8gZmlu ZCBvdXQgaG93IG1hbnkgd2lsbCBiZSBuZWVkZWQuCisgKiAqc3RhcnRfYWRkcmVzcyBpcyB1cGRh dGVkIHRvIHBvaW50IHRvIHRoZSBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aG9zZQorICog d3JpdHRlbi4KKyAqCisgKiBSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyBjYW4gYmUgdXNlZCB0byBy ZWNyZWF0ZSBhIHNlc3Npb24gdmFyaWFibGUgYnVmZmVyCisgKiBiYXNlZCBvbiB0aGUgc2VyaWFs aXplZCByZXByZXNlbnRhdGlvbjsKKyAqLworc3RhdGljIHZvaWQKK1NlcmlhbGl6ZVNlc3Npb25W YXJpYWJsZXMoRVN0YXRlICplc3RhdGUsIGNoYXIgKipzdGFydF9hZGRyZXNzKQoreworCWludAkJ CW5wYXJhbXM7CisJaW50CQkJaTsKKworCS8qIFdyaXRlIG51bWJlciBvZiBwYXJhbWV0ZXJzLiAq LworCW5wYXJhbXMgPSBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwltZW1jcHko KnN0YXJ0X2FkZHJlc3MsICZucGFyYW1zLCBzaXplb2YoaW50KSk7CisJKnN0YXJ0X2FkZHJlc3Mg Kz0gc2l6ZW9mKGludCk7CisKKwkvKiBXcml0ZSBlYWNoIHBhcmFtZXRlciBpbiB0dXJuLiAqLwor CWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFibGVWYWx1 ZSAqc3ZhcnZhbDsKKwkJT2lkCQkJdHlwZU9pZDsKKwkJaW50MTYJCXR5cExlbjsKKwkJYm9vbAkJ dHlwQnlWYWw7CisKKwkJc3ZhcnZhbCA9ICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ld OworCQl0eXBlT2lkID0gc3ZhcnZhbC0+dHlwaWQ7CisKKwkJLyogV3JpdGUgdHlwZSBPSUQuICov CisJCW1lbWNweSgqc3RhcnRfYWRkcmVzcywgJnR5cGVPaWQsIHNpemVvZihPaWQpKTsKKwkJKnN0 YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKE9pZCk7CisKKwkJQXNzZXJ0KE9pZElzVmFsaWQodHlwZU9p ZCkpOworCQlnZXRfdHlwbGVuYnl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFsKTsKKwor CQlkYXR1bVNlcmlhbGl6ZShzdmFydmFsLT52YWx1ZSwgc3ZhcnZhbC0+aXNudWxsLCB0eXBCeVZh bCwgdHlwTGVuLAorCQkJCQkgICBzdGFydF9hZGRyZXNzKTsKKwl9Cit9CisKK3N0YXRpYyBTZXNz aW9uVmFyaWFibGVWYWx1ZSAqCitSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoqc3RhcnRf YWRkcmVzcywgaW50ICpudW1fc2Vzc2lvbl92YXJpYWJsZXMpCit7CisJU2Vzc2lvblZhcmlhYmxl VmFsdWUgKnNlc3Npb25fdmFyaWFibGVzOworCWludAkJCWk7CisJaW50CQkJbnBhcmFtczsKKwor CW1lbWNweSgmbnBhcmFtcywgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihpbnQpKTsKKwkqc3RhcnRf YWRkcmVzcyArPSBzaXplb2YoaW50KTsKKworCSpudW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBucGFy YW1zOworCXNlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICopCisJCXBh bGxvYyhucGFyYW1zICogc2l6ZW9mKFNlc3Npb25WYXJpYWJsZVZhbHVlKSk7CisKKwlmb3IgKGkg PSAwOyBpIDwgbnBhcmFtczsgaSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnN2YXJ2 YWwgPSAmc2Vzc2lvbl92YXJpYWJsZXNbaV07CisKKwkJLyogUmVhZCB0eXBlIE9JRC4gKi8KKwkJ bWVtY3B5KCZzdmFydmFsLT50eXBpZCwgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihPaWQpKTsKKwkJ KnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKE9pZCk7CisKKwkJLyogUmVhZCBkYXR1bS9pc251bGwu ICovCisJCXN2YXJ2YWwtPnZhbHVlID0gZGF0dW1SZXN0b3JlKHN0YXJ0X2FkZHJlc3MsICZzdmFy dmFsLT5pc251bGwpOworCX0KKworCXJldHVybiBzZXNzaW9uX3ZhcmlhYmxlczsKK30KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCBhNTQ1MmMwYzllNC4uOGNlZTczMjU2MWQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTkyNCwyNSArOTI0LDE5IEBA IG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJhbGxlbF9oYXph cmRfY29udGV4dCAqY29udGV4dCkKIAogCS8qCiAJICogV2UgY2FuJ3QgcGFzcyBQYXJhbXMgdG8g d29ya2VycyBhdCB0aGUgbW9tZW50IGVpdGhlciwgc28gdGhleSBhcmUgYWxzbwotCSAqIHBhcmFs bGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJBTV9FWFRFUk4gUGFyYW1zIG9yIGFy ZQotCSAqIFBBUkFNX0VYRUMgUGFyYW1zIGxpc3RlZCBpbiBzYWZlX3BhcmFtX2lkcywgbWVhbmlu ZyB0aGV5IGNvdWxkIGJlCi0JICogZWl0aGVyIGdlbmVyYXRlZCB3aXRoaW4gd29ya2VycyBvciBj YW4gYmUgY29tcHV0ZWQgYnkgdGhlIGxlYWRlciBhbmQKLQkgKiB0aGVuIHRoZWlyIHZhbHVlIGNh biBiZSBwYXNzZWQgdG8gd29ya2Vycy4KKwkgKiBwYXJhbGxlbC1yZXN0cmljdGVkLCB1bmxlc3Mg dGhleSBhcmUgUEFSQU1fRVhURVJOIG9yIFBBUkFNX1ZBUklBQkxFCisJICogUGFyYW1zIG9yIGFy ZSBQQVJBTV9FWEVDIFBhcmFtcyBsaXN0ZWQgaW4gc2FmZV9wYXJhbV9pZHMsIG1lYW5pbmcgdGhl eQorCSAqIGNvdWxkIGJlIGVpdGhlciBnZW5lcmF0ZWQgd2l0aGluIHdvcmtlcnMgb3IgY2FuIGJl IGNvbXB1dGVkIGJ5IHRoZQorCSAqIGxlYWRlciBhbmQgdGhlbiB0aGVpciB2YWx1ZSBjYW4gYmUg cGFzc2VkIHRvIHdvcmtlcnMuCiAJICovCiAJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKIAl7 CiAJCVBhcmFtCSAgICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJhbS0+cGFy YW1raW5kID09IFBBUkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1f RVhURVJOIHx8CisJCQlwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQogCQkJcmV0 dXJuIGZhbHNlOwogCi0JCS8qIHdlIGRvbid0IHN1cHBvcnQgcGFzc2luZyBzZXNzaW9uIHZhcmlh YmxlcyB0byB3b3JrZXJzICovCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklB QkxFKQotCQl7Ci0JCQlpZiAobWF4X3BhcmFsbGVsX2hhemFyZF90ZXN0KFBST1BBUkFMTEVMX1JF U1RSSUNURUQsIGNvbnRleHQpKQotCQkJCXJldHVybiB0cnVlOwotCQl9Ci0KIAkJaWYgKHBhcmFt LT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJIWxpc3RfbWVtYmVyX2ludChjb250ZXh0 LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQpKQogCQl7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDJmMTcwOGY3Yzg0Li44 ZGYzYTkxYzA1ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKQEAgLTY0NCwxMiArNjQ0LDE0IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2 YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKIAogLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5v dCBzdXBwb3J0ZWQgeWV0CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9N IHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKLSAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQWdncmVnYXRlCi0gICAtPiAgU2VxIFNjYW4gb24g c3Zhcl90ZXN0Ci0gICAgICAgICBGaWx0ZXI6ICgoYSAlIDEwKSA9IHplcm8pCi0oMyByb3dzKQor ICAgLT4gIEdhdGhlcgorICAgICAgICAgV29ya2VycyBQbGFubmVkOiAyCisgICAgICAgICAtPiAg UGFyYWxsZWwgU2VxIFNjYW4gb24gc3Zhcl90ZXN0CisgICAgICAgICAgICAgICBGaWx0ZXI6ICgo YSAlIDEwKSA9IHplcm8pCisoNSByb3dzKQogCiBMRVQgemVybyA9IChTRUxFQ1QgY291bnQoKikg RlJPTSBzdmFyX3Rlc3QpOwogLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCi0tIAoyLjQ3LjAKCg== --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename="v20241113-0016-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0016-plpgsql-implementation-for-LET-statement.patch"; charset="UTF-8" RnJvbSBiMTFhNmQwY2MzZGE3ZDE2MzU0MGJjM2JkMTA2NTI0NGRhMjU4ODcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIHYy MDI0MTExMyAxNi8yMF0gcGxwZ3NxbCBpbXBsZW1lbnRhdGlvbiBmb3IgTEVUIHN0YXRlbWVudAoK UExwZ1NRTCBhbGxvd3MgdG8gY2FsbCBleHByZXNzaW9uIGV4ZWN1dG9yIGRpcmVjdGx5IChmb3Ig c2ltcGxlIGV4cHJlc3Npb24pLgpUaGlzIHBvc3NpYmlsaXR5IHN0cm9uZ2x5IHJlZHVjZXMgb3Zl cmhlYWQgcmVsYXRlZCB0byBleGVjdXRpb24uIFJlaW1wbGVtZW50YXRpb24Kb2YgTEVUIHN0YXRl bWVudCAoaW5zaWRlIFBMcGdTUUwpIGFsbG93cyB0byB1c2UgdGhpcyBwb3NzaWJpbGl0eSwgYW5k IHN0cm9uZ2x5CmluY3JlYXNlIHBlcmZvcm1hbmNlOgoKQ1JFQVRFIFZBUklBQkxFIHN2YXIgaW50 OwoKRE8gJCQKQkVHSU4KICBGT1IgaSBJTiAxLi4xMDAwMAogIExPT1AKICAgIExFVCBzdmFyID0g aTsKICBFTkQgTE9PUDsKRU5EOwokJDsKCkZyb20gMTIwbXMgdG8gOG1zICh3aXRoIGFzc2VydGlv bnMpICh0aGlzIGlzIGJlc3QgY2FzZSwgYnV0IHdpdGhvdXQgaXQsIHRoZSBMRVQgc3RhdGVtZW50 CmNhbiBiZSBib3R0bGUgbmVjaykuCgpBbiBhbHRlcm5hdGl2ZSBjYW4gYmUgcmVpbXBsZW1lbnRh dGlvbiBvZiBMRVQgc3RhdGVtZW50IGluc2lkZSBleHByZXNzaW9uCmV4ZWN1dG9yLCBhbmQgdGhl biBTUUwgTEVUIGNvbW1hbmQgY2FuIGJlIGV4ZWN1dGVkIGluIHNpbXBsZSBleHByZXNzaW9uCmV4 ZWN1dGlvbiwgYnV0IHRoaXMgaW5jcmVhc2UgYW4gY29tcGxleGl0eSBvZiBleGVjdXRvciwgYnV0 IHN0aWxsIHRoZQpiZW5lZml0cyBpcyBvbmx5IGluc2lkZSBwbHBnc3FsLCBzbyBpdCBpcyBiZXR0 ZXIgdG8gdGhpcyBvcHRpbWl6YXRpb24KaW5zaWRlIHBscGdzcWwuCi0tLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivc3BpLmMgICAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2JhY2tlbmQvcGFyc2Vy L2FuYWx5emUuYyAgICAgICAgICAgICAgfCAxMiArKysrKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueSAgICAgICAgICAgICAgICAgfCAgOCArKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vy LmMgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oICAgICAgICAgICAg ICAgfCAgNCArKwogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyAgICAgICAgICAgICAgfCA1 NSArKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMg ICAgICAgICAgICAgfCAyNCArKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55 ICAgICAgICAgICAgICB8IDI4ICsrKysrKysrKysrLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX3Jl c2VydmVkX2t3bGlzdC5oICAgfCAgMSArCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZl ZF9rd2xpc3QuaCB8ICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmggICAgICAgICAg ICAgIHwgMTIgKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAg IHwgIDEgKwogMTMgZmlsZXMgY2hhbmdlZCwgMTUxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL3NwaS5jCmluZGV4IDJmYjJlNzM2MDRlLi41YWUyNWQwN2FkNyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3BpLmMKQEAgLTI5OTEsNiArMjk5MSw5IEBAIF9TUElfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJn KQogCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zOgogCQkJCWVycmNvbnRleHQoIlBM L3BnU1FMIGFzc2lnbm1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOworCQkJY2FzZSBS QVdfUEFSU0VfUExQR1NRTF9MRVQ6CisJCQkJZXJyY29udGV4dCgiTEVUIHN0YXRlbWVudCBcIiVz XCIiLCBxdWVyeSk7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVycmNvbnRleHQoIlNR TCBzdGF0ZW1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMK aW5kZXggNDk2ZDc1YTQ5NGEuLjJlZGM1MWNmZWU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTIw MTQsNiArMjAxNCwxOCBAQCB0cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0 U3RtdCAqc3RtdCkKIAogCXN0bXQtPnF1ZXJ5ID0gKE5vZGUgKikgcXVlcnk7CiAKKwkvKgorCSAq IEluc2lkZSBQTC9wZ1NRTCB3ZSBkb24ndCB3YW50IHRvIGV4ZWN1dGUgTEVUIHN0YXRlbWVudCBh cyB1dGlsaXR5CisJICogY29tbWFuZCwgYmVjYXVzZSBpdCBkaXNhbGxvdyB0byBleGVjdXRlIGV4 cHJlc3Npb24gYXMgc2ltcGxlCisJICogZXhwcmVzc2lvbi4gU28gZm9yIFBML3BnU1FMIHdlIGhh dmUgZXh0cmEgcGF0aCwgYW5kIHdlIHJldHVybiBTRUxFQ1QuCisJICogVGhlbiBpdCBjYW4gYmUg ZXhlY3V0ZWQgYnkgZXhlY19ldmFsX2V4cHIuIFJlc3VsdCBpcyBkaXJyZWN0bHkgYXNzaWduZWQK KwkgKiB0byB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpbnNpZGUgUEwvcGdTUUwgTEVUIHN0YXRl bWVudCBoYW5kbGVyLiBUaGlzCisJICogaXMgZXh0cmEgY29kZSwgZXh0cmEgcGF0aCwgYnV0IHBv c3NpYmlsaXR5IHRvIGdldCBmYXN0ZXIgZXhlY3V0aW9uIGlzCisJICogdG9vIGF0dHJhY3RpdmUu CisJICovCisJaWYgKHN0bXQtPnBscGdzcWxfbW9kZSkKKwkJcmV0dXJuIHF1ZXJ5OworCiAJLyog cmVwcmVzZW50IHRoZSBjb21tYW5kIGFzIGEgdXRpbGl0eSBRdWVyeSAqLwogCXJlc3VsdCA9IG1h a2VOb2RlKFF1ZXJ5KTsKIAlyZXN1bHQtPmNvbW1hbmRUeXBlID0gQ01EX1VUSUxJVFk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQppbmRleCA2YWVhM2JkMzViMi4uYmM4ZTI1YjE5MzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtODE3 LDYgKzgxNyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldG9rZW4JCU1PREVfUExQR1NR TF9BU1NJR04xCiAldG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04yCiAldG9rZW4JCU1PREVfUExQ R1NRTF9BU1NJR04zCisldG9rZW4JCU1PREVfUExQR1NRTF9MRVQKIAogCiAvKiBQcmVjZWRlbmNl OiBsb3dlc3QgdG8gaGlnaGVzdCAqLwpAQCAtOTQ4LDYgKzk0OSwxMyBAQCBwYXJzZV90b3BsZXZl bDoKIAkJCQlwZ195eWdldF9leHRyYSh5eXNjYW5uZXIpLT5wYXJzZXRyZWUgPQogCQkJCQlsaXN0 X21ha2UxKG1ha2VSYXdTdG10KChOb2RlICopIG4sIEAyKSk7CiAJCQl9CisJCQl8IE1PREVfUExQ R1NRTF9MRVQgTGV0U3RtdAorCQkJeworCQkJCUxldFN0bXQgKm4gPSAoTGV0U3RtdCAqKSAkMjsK KwkJCQluLT5wbHBnc3FsX21vZGUgPSB0cnVlOworCQkJCXBnX3l5Z2V0X2V4dHJhKHl5c2Nhbm5l ciktPnBhcnNldHJlZSA9CisJCQkJCWxpc3RfbWFrZTEobWFrZVJhd1N0bXQoKE5vZGUgKikgbiwg MCkpOworCQkJfQogCQk7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VyLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VyLmMKaW5kZXggMTE4NDg4YzNmMzAuLmY5 NDMwYTMyOTE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VyLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jCkBAIC02Miw2ICs2Miw3IEBAIHJhd19wYXJzZXIo Y29uc3QgY2hhciAqc3RyLCBSYXdQYXJzZU1vZGUgbW9kZSkKIAkJCVtSQVdfUEFSU0VfUExQR1NR TF9BU1NJR04xXSA9IE1PREVfUExQR1NRTF9BU1NJR04xLAogCQkJW1JBV19QQVJTRV9QTFBHU1FM X0FTU0lHTjJdID0gTU9ERV9QTFBHU1FMX0FTU0lHTjIsCiAJCQlbUkFXX1BBUlNFX1BMUEdTUUxf QVNTSUdOM10gPSBNT0RFX1BMUEdTUUxfQVNTSUdOMywKKwkJCVtSQVdfUEFSU0VfUExQR1NRTF9M RVRdID0gTU9ERV9QTFBHU1FMX0xFVCwKIAkJfTsKIAogCQl5eWV4dHJhLmhhdmVfbG9va2FoZWFk ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA3MzA4YzMyMzU3NC4uYmY4MjA4Mjhk ZDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTIxMTQsNiArMjExNCw4IEBAIHR5cGVkZWYg c3RydWN0IExldFN0bXQKIAlOb2RlVGFnCQl0eXBlOwogCUxpc3QJICAgKnRhcmdldDsJCQkvKiB0 YXJnZXQgdmFyaWFibGUgKi8KIAlOb2RlCSAgICpxdWVyeTsJCQkvKiBzb3VyY2UgZXhwcmVzc2lv biAqLworCWJvb2wJCXBscGdzcWxfbW9kZTsJLyogdHJ1ZSwgd2hlbiBjb21tYW5kIHdpbGwgYmUg ZXhlY3V0ZWQKKwkJCQkJCQkJICogKHBhcnNlZCkgYnkgcGxwZ3NxbCBydW50aW1lICovCiAJaW50 CQkJbG9jYXRpb247CiB9IExldFN0bXQ7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZXIuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZXIuaAppbmRleCBiZTE4NGVjNTA2 Ni4uZWZiYzc2ZjBhZDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZXIuaAor KysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmgKQEAgLTMzLDYgKzMzLDkgQEAKICAqIFJB V19QQVJTRV9QTFBHU1FMX0FTU0lHTm46IHBhcnNlIGEgUEwvcGdTUUwgYXNzaWdubWVudCBzdGF0 ZW1lbnQsCiAgKiBhbmQgcmV0dXJuIGEgb25lLWVsZW1lbnQgTGlzdCBjb250YWluaW5nIGEgUmF3 U3RtdCBub2RlLiAgIm4iCiAgKiBnaXZlcyB0aGUgbnVtYmVyIG9mIGRvdHRlZCBuYW1lcyBjb21w cmlzaW5nIHRoZSB0YXJnZXQgQ29sdW1uUmVmLgorICoKKyAqIFJBV19QQVJTRV9QTFBHU1FMX0xF VDogcGFyc2UgYSBMRVQgc3RhdGVtZW50LCBhbmQgcmV0dXJuIGEKKyAqIG9uZS1lbGVtZW50IExp c3QgY29udGFpbmluZyBhIFJhd1N0bXQgbm9kZS4KICAqLwogdHlwZWRlZiBlbnVtCiB7CkBAIC00 Miw2ICs0NSw3IEBAIHR5cGVkZWYgZW51bQogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjEsCiAJ UkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMiwKIAlSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zLAor CVJBV19QQVJTRV9QTFBHU1FMX0xFVCwKIH0gUmF3UGFyc2VNb2RlOwogCiAvKiBWYWx1ZXMgZm9y IHRoZSBiYWNrc2xhc2hfcXVvdGUgR1VDICovCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCA4NmM1YmQz MjRhOS4uYjVjYjFiZWUyMjMgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtMjIsNiArMjIsNyBAQAog I2luY2x1ZGUgImFjY2Vzcy90dXBjb252ZXJ0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9j LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIK QEAgLTMyMyw2ICszMjQsOCBAQCBzdGF0aWMgaW50CWV4ZWNfc3RtdF9jb21taXQoUExwZ1NRTF9l eGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkgUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBz dGF0aWMgaW50CWV4ZWNfc3RtdF9yb2xsYmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAog CQkJCQkJCSAgIFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqc3RtdCk7CitzdGF0aWMgaW50CWV4ZWNf c3RtdF9sZXQoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKKwkJCQkJCSAgUExwZ1NRTF9zdG10 X2xldCAqbGV0KTsKIAogc3RhdGljIHZvaWQgcGxwZ3NxbF9lc3RhdGVfc2V0dXAoUExwZ1NRTF9l eGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkJIFBMcGdTUUxfZnVuY3Rpb24gKmZ1bmMsCkBAIC0y MTE2LDYgKzIxMTksMTAgQEAgZXhlY19zdG10cyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBM aXN0ICpzdG10cykKIAkJCQlyYyA9IGV4ZWNfc3RtdF9yb2xsYmFjayhlc3RhdGUsIChQTHBnU1FM X3N0bXRfcm9sbGJhY2sgKikgc3RtdCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgUExQR1NRTF9T VE1UX0xFVDoKKwkJCQlyYyA9IGV4ZWNfc3RtdF9sZXQoZXN0YXRlLCAoUExwZ1NRTF9zdG10X2xl dCAqKSBzdG10KTsKKwkJCQlicmVhazsKKwogCQkJZGVmYXVsdDoKIAkJCQkvKiBwb2ludCBlcnJf c3RtdCB0byBwYXJlbnQsIHNpbmNlIHRoaXMgb25lIHNlZW1zIGNvcnJ1cHQgKi8KIAkJCQllc3Rh dGUtPmVycl9zdG10ID0gc2F2ZV9lc3RtdDsKQEAgLTQ5OTksNiArNTAwNiw1NCBAQCBleGVjX3N0 bXRfcm9sbGJhY2soUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwgUExwZ1NRTF9zdG10X3JvbGxi YWNrICpzdG10KQogCXJldHVybiBQTFBHU1FMX1JDX09LOwogfQogCisvKiAtLS0tLS0tLS0tCisg KiBleGVjX3N0bXRfbGV0CQkJRXZhbHVhdGUgYW4gZXhwcmVzc2lvbiBhbmQKKyAqCQkJCQlwdXQg dGhlIHJlc3VsdCBpbnRvIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqIC0tLS0tLS0tLS0KKyAqLwor c3RhdGljIGludAorZXhlY19zdG10X2xldChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBn U1FMX3N0bXRfbGV0ICpzdG10KQoreworCWJvb2wJCWlzTnVsbDsKKwlPaWQJCQl2YWx0eXBlOwor CWludDMyCQl2YWx0eXBtb2Q7CisJRGF0dW0JCXZhbHVlOworCU9pZAkJCXZhcmlkOworCisJTGlz dAkgICAqcGxhbnNvdXJjZXM7CisJQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZTsKKworCXZh bHVlID0gZXhlY19ldmFsX2V4cHIoZXN0YXRlLAorCQkJCQkJICAgc3RtdC0+ZXhwciwKKwkJCQkJ CSAgICZpc051bGwsCisJCQkJCQkgICAmdmFsdHlwZSwKKwkJCQkJCSAgICZ2YWx0eXBtb2QpOwor CisJLyoKKwkgKiBPaWQgb2YgdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgaXMgc3RvcmVkIGluIFF1 ZXJ5IHN0cnVjdHVyZS4gSXQgaXMKKwkgKiBzYWZlciB0byByZWFkIHRoaXMgdmFsdWUgZGlyZWN0 bHkgZnJvbSB0aGUgcGxhbiB0aGFuIHRvIGhvbGQgdGhpcyB2YWx1ZQorCSAqIGluIHRoZSBwbHBn c3FsIGNvbnRleHQsIGJlY2F1c2UgaXQncyBub3QgbmVjZXNzYXJ5IHRvIGhhbmRsZQorCSAqIGlu dmFsaWRhdGlvbiBvZiB0aGUgY2FjaGVkIHZhbHVlLiBOZXh0IG9wZXJhdGlvbnMgYXJlIHJlYWQg b25seSB3aXRob3V0CisJICogYW55IGFsbG9jYXRpb25zLCBzbyB3ZSBjYW4gZXhwZWN0IHRoYXQg cmV0cmlldmluZyB2YXJpZCBmcm9tIFF1ZXJ5CisJICogc2hvdWxkIGJlIGZhc3QuCisJICovCisJ cGxhbnNvdXJjZXMgPSBTUElfcGxhbl9nZXRfcGxhbl9zb3VyY2VzKHN0bXQtPmV4cHItPnBsYW4p OworCWlmIChsaXN0X2xlbmd0aChwbGFuc291cmNlcykgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVu ZXhwZWN0ZWQgbGVuZ3RoIG9mIHBsYW5zb3VyY2VzIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50 Iik7CisKKwlwbGFuc291cmNlID0gKENhY2hlZFBsYW5Tb3VyY2UgKikgbGluaXRpYWwocGxhbnNv dXJjZXMpOworCWlmIChsaXN0X2xlbmd0aChwbGFuc291cmNlLT5xdWVyeV9saXN0KSAhPSAxKQor CQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBsZW5ndGggb2YgcGxhbnNvdXJjZSBvZiBxdWVyeSBm b3IgTEVUIHN0YXRlbWVudCIpOworCisJdmFyaWQgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBwbGFu c291cmNlLT5xdWVyeV9saXN0KS0+cmVzdWx0VmFyaWFibGU7CisJaWYgKCFPaWRJc1ZhbGlkKHZh cmlkKSkKKwkJZWxvZyhFUlJPUiwgIm9pZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBu b3QgdmFsaWQiKTsKKworCVNldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKHZhcmlk LCB2YWx1ZSwgaXNOdWxsKTsKKworCXJldHVybiBQTFBHU1FMX1JDX09LOworfQorCiAvKiAtLS0t LS0tLS0tCiAgKiBleGVjX2Fzc2lnbl9leHByCQkJUHV0IGFuIGV4cHJlc3Npb24ncyByZXN1bHQg aW50byBhIHZhcmlhYmxlLgogICogLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdz cWwvc3JjL3BsX2Z1bmNzLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYwppbmRleCBl ZWI3YzRkN2MwNC4uMWIzOTM1MWRiN2YgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9mdW5jcy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jCkBAIC0yODgsNiAr Mjg4LDggQEAgcGxwZ3NxbF9zdG10X3R5cGVuYW1lKFBMcGdTUUxfc3RtdCAqc3RtdCkKIAkJCXJl dHVybiAiQ09NTUlUIjsKIAkJY2FzZSBQTFBHU1FMX1NUTVRfUk9MTEJBQ0s6CiAJCQlyZXR1cm4g IlJPTExCQUNLIjsKKwkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJcmV0dXJuICJMRVQiOwog CX0KIAogCXJldHVybiAidW5rbm93biI7CkBAIC0zNzAsNiArMzcyLDcgQEAgc3RhdGljIHZvaWQg ZnJlZV9wZXJmb3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsKIHN0YXRpYyB2b2lkIGZy ZWVfY2FsbChQTHBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBmcmVlX2NvbW1p dChQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfcm9sbGJhY2so UExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lkIGZyZWVfbGV0KFBMcGdT UUxfc3RtdF9sZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9leHByKFBMcGdTUUxfZXhwciAq ZXhwcik7CiAKIApAQCAtNDU5LDYgKzQ2Miw5IEBAIGZyZWVfc3RtdChQTHBnU1FMX3N0bXQgKnN0 bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZnJlZV9yb2xsYmFjaygoUExw Z1NRTF9zdG10X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgUExQR1NRTF9T VE1UX0xFVDoKKwkJCWZyZWVfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJYnJl YWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGNtZF90eXBlOiAl ZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtNzEzLDYgKzcxOSwxMiBAQCBmcmVl X2dldGRpYWcoUExwZ1NRTF9zdG10X2dldGRpYWcgKnN0bXQpCiB7CiB9CiAKK3N0YXRpYyB2b2lk CitmcmVlX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQoreworCWZyZWVfZXhwcihzdG10LT5l eHByKTsKK30KKwogc3RhdGljIHZvaWQKIGZyZWVfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7 CkBAIC04MTUsNiArODI3LDcgQEAgc3RhdGljIHZvaWQgZHVtcF9wZXJmb3JtKFBMcGdTUUxfc3Rt dF9wZXJmb3JtICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfY2FsbChQTHBnU1FMX3N0bXRfY2Fs bCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpz dG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfcm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpz dG10KTsKK3N0YXRpYyB2b2lkIGR1bXBfbGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3Rh dGljIHZvaWQgZHVtcF9leHByKFBMcGdTUUxfZXhwciAqZXhwcik7CiAKIApAQCAtOTE0LDYgKzky Nyw5IEBAIGR1bXBfc3RtdChQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1U X1JPTExCQUNLOgogCQkJZHVtcF9yb2xsYmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0 bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCWR1bXBfbGV0KChQ THBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIGNtZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJ CWJyZWFrOwpAQCAtMTU5MCw2ICsxNjA2LDE0IEBAIGR1bXBfZ2V0ZGlhZyhQTHBnU1FMX3N0bXRf Z2V0ZGlhZyAqc3RtdCkKIAlwcmludGYoIlxuIik7CiB9CiAKK3N0YXRpYyB2b2lkCitkdW1wX2xl dChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQoreworCWR1bXBfaW5kKCk7CisJZHVtcF9leHByKHN0 bXQtPmV4cHIpOworCXByaW50ZigiXG4iKTsKK30KKwogc3RhdGljIHZvaWQKIGR1bXBfZXhwcihQ THBnU1FMX2V4cHIgKmV4cHIpCiB7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxf Z3JhbS55IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQppbmRleCA4MTgyY2UyOGFhMS4u M2YxNTVjNGY4YTQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKKysr IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQpAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRp Ywl2b2lkCQkJY2hlY2tfcmFpc2VfcGFyYW1ldGVycyhQTHBnU1FMX3N0bXRfcmFpc2UgKnN0bXQp OwogJXR5cGUgPHN0bXQ+CXN0bXRfcmV0dXJuIHN0bXRfcmFpc2Ugc3RtdF9hc3NlcnQgc3RtdF9l eGVjc3FsCiAldHlwZSA8c3RtdD4Jc3RtdF9keW5leGVjdXRlIHN0bXRfZm9yIHN0bXRfcGVyZm9y bSBzdG10X2NhbGwgc3RtdF9nZXRkaWFnCiAldHlwZSA8c3RtdD4Jc3RtdF9vcGVuIHN0bXRfZmV0 Y2ggc3RtdF9tb3ZlIHN0bXRfY2xvc2Ugc3RtdF9udWxsCi0ldHlwZSA8c3RtdD4Jc3RtdF9jb21t aXQgc3RtdF9yb2xsYmFjaworJXR5cGUgPHN0bXQ+CXN0bXRfY29tbWl0IHN0bXRfcm9sbGJhY2sg c3RtdF9sZXQKICV0eXBlIDxzdG10PglzdG10X2Nhc2Ugc3RtdF9mb3JlYWNoX2EKIAogJXR5cGUg PGxpc3Q+CXByb2NfZXhjZXB0aW9ucwpAQCAtMzA3LDYgKzMwNyw3IEBAIHN0YXRpYwl2b2lkCQkJ Y2hlY2tfcmFpc2VfcGFyYW1ldGVycyhQTHBnU1FMX3N0bXRfcmFpc2UgKnN0bXQpOwogJXRva2Vu IDxrZXl3b3JkPglLX0lOVE8KICV0b2tlbiA8a2V5d29yZD4JS19JUwogJXRva2VuIDxrZXl3b3Jk PglLX0xBU1QKKyV0b2tlbiA8a2V5d29yZD4JS19MRVQKICV0b2tlbiA8a2V5d29yZD4JS19MT0cK ICV0b2tlbiA8a2V5d29yZD4JS19MT09QCiAldG9rZW4gPGtleXdvcmQ+CUtfTUVSR0UKQEAgLTg3 Niw2ICs4NzcsOCBAQCBwcm9jX3N0bXQJCTogcGxfYmxvY2sgJzsnCiAJCQkJCQl7ICQkID0gJDE7 IH0KIAkJCQl8IHN0bXRfcm9sbGJhY2sKIAkJCQkJCXsgJCQgPSAkMTsgfQorCQkJCXwgc3RtdF9s ZXQKKwkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCTsKIAogc3RtdF9wZXJmb3JtCTogS19QRVJGT1JN CkBAIC05OTIsNiArOTk1LDI5IEBAIHN0bXRfYXNzaWduCQk6IFRfREFUVU0KIAkJCQkJfQogCQkJ CTsKIAorc3RtdF9sZXQJCTogS19MRVQKKwkJCQkJeworCQkJCQkJUExwZ1NRTF9zdG10X2xldCAq bmV3OworCQkJCQkJUmF3UGFyc2VNb2RlIHBtb2RlOworCisJCQkJCQlwbW9kZSA9IFJBV19QQVJT RV9QTFBHU1FMX0xFVDsKKworCQkJCQkJbmV3ID0gcGFsbG9jMChzaXplb2YoUExwZ1NRTF9zdG10 X2xldCkpOworCQkJCQkJbmV3LT5jbWRfdHlwZSA9IFBMUEdTUUxfU1RNVF9MRVQ7CisJCQkJCQlu ZXctPmxpbmVubyAgID0gcGxwZ3NxbF9sb2NhdGlvbl90b19saW5lbm8oQDEpOworCQkJCQkJbmV3 LT5zdG10aWQgPSArK3BscGdzcWxfY3Vycl9jb21waWxlLT5uc3RhdGVtZW50czsKKworCQkJCQkJ LyogcHVzaCBiYWNrIHRoZSBoZWFkIG5hbWUgdG8gaW5jbHVkZSBpdCBpbiB0aGUgc3RtdCAqLwor CQkJCQkJcGxwZ3NxbF9wdXNoX2JhY2tfdG9rZW4oS19MRVQpOworCQkJCQkJbmV3LT5leHByID0g cmVhZF9zcWxfY29uc3RydWN0KCc7JywgMCwgMCwgIjsiLAorCQkJCQkJCQkJCQkJCSAgIHBtb2Rl LAorCQkJCQkJCQkJCQkJCSAgIGZhbHNlLCB0cnVlLAorCQkJCQkJCQkJCQkJCSAgIE5VTEwsIE5V TEwpOworCisJCQkJCQkkJCA9IChQTHBnU1FMX3N0bXQgKiluZXc7CisJCQkJCX0KKwkJCQk7CisK IHN0bXRfZ2V0ZGlhZwk6IEtfR0VUIGdldGRpYWdfYXJlYV9vcHQgS19ESUFHTk9TVElDUyBnZXRk aWFnX2xpc3QgJzsnCiAJCQkJCXsKIAkJCQkJCVBMcGdTUUxfc3RtdF9nZXRkaWFnICpuZXc7CmRp ZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmggYi9zcmMv cGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKaW5kZXggZDMzOGU5ZjYzNzQuLmJl OTRhYTc1MWE0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3ds aXN0LmgKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oCkBAIC00 MCw2ICs0MCw3IEBAIFBHX0tFWVdPUkQoImZyb20iLCBLX0ZST00pCiBQR19LRVlXT1JEKCJpZiIs IEtfSUYpCiBQR19LRVlXT1JEKCJpbiIsIEtfSU4pCiBQR19LRVlXT1JEKCJpbnRvIiwgS19JTlRP KQorUEdfS0VZV09SRCgibGV0IiwgS19MRVQpCiBQR19LRVlXT1JEKCJsb29wIiwgS19MT09QKQog UEdfS0VZV09SRCgibm90IiwgS19OT1QpCiBQR19LRVlXT1JEKCJudWxsIiwgS19OVUxMKQpkaWZm IC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3VucmVzZXJ2ZWRfa3dsaXN0LmggYi9zcmMv cGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaAppbmRleCA2NzBiNGNmMGMxZS4u NjAyNjI4ZDdkMmEgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVk X2t3bGlzdC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVkX2t3bGlzdC5o CkBAIC02OSw2ICs2OSw3IEBAIFBHX0tFWVdPUkQoImluZm8iLCBLX0lORk8pCiBQR19LRVlXT1JE KCJpbnNlcnQiLCBLX0lOU0VSVCkKIFBHX0tFWVdPUkQoImlzIiwgS19JUykKIFBHX0tFWVdPUkQo Imxhc3QiLCBLX0xBU1QpCitQR19LRVlXT1JEKCJsZXQiLCBLX0xFVCkKIFBHX0tFWVdPUkQoImxv ZyIsIEtfTE9HKQogUEdfS0VZV09SRCgibWVyZ2UiLCBLX01FUkdFKQogUEdfS0VZV09SRCgibWVz c2FnZSIsIEtfTUVTU0FHRSkKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3Fs LmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oCmluZGV4IDUwYzNiMjg0NzJiLi5iYjQw MDYyOWFkYiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaAorKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oCkBAIC0xMjgsNiArMTI4LDcgQEAgdHlwZWRlZiBl bnVtIFBMcGdTUUxfc3RtdF90eXBlCiAJUExQR1NRTF9TVE1UX0NBTEwsCiAJUExQR1NRTF9TVE1U X0NPTU1JVCwKIAlQTFBHU1FMX1NUTVRfUk9MTEJBQ0ssCisJUExQR1NRTF9TVE1UX0xFVCwKIH0g UExwZ1NRTF9zdG10X3R5cGU7CiAKIC8qCkBAIC01MjAsNiArNTIxLDE3IEBAIHR5cGVkZWYgc3Ry dWN0IFBMcGdTUUxfc3RtdF9hc3NpZ24KIAlQTHBnU1FMX2V4cHIgKmV4cHI7CiB9IFBMcGdTUUxf c3RtdF9hc3NpZ247CiAKKy8qCisgKiBMZXQgc3RhdGVtZW50CisgKi8KK3R5cGVkZWYgc3RydWN0 IFBMcGdTUUxfc3RtdF9sZXQKK3sKKwlQTHBnU1FMX3N0bXRfdHlwZSBjbWRfdHlwZTsKKwlpbnQJ CQlsaW5lbm87CisJdW5zaWduZWQgaW50IHN0bXRpZDsKKwlQTHBnU1FMX2V4cHIgKmV4cHI7Cit9 IFBMcGdTUUxfc3RtdF9sZXQ7CisKIC8qCiAgKiBQRVJGT1JNIHN0YXRlbWVudAogICovCmRpZmYg LS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDI3ZTM1MmZhMzQxLi45Njg1YmMxYmNiOSAxMDA2NDQK LS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE4OTAsNiArMTg5MCw3IEBAIFBMcGdTUUxfc3RtdF9m b3JxCiBQTHBnU1FMX3N0bXRfZm9ycwogUExwZ1NRTF9zdG10X2dldGRpYWcKIFBMcGdTUUxfc3Rt dF9pZgorUExwZ1NRTF9zdG10X2xldAogUExwZ1NRTF9zdG10X2xvb3AKIFBMcGdTUUxfc3RtdF9v cGVuCiBQTHBnU1FMX3N0bXRfcGVyZm9ybQotLSAKMi40Ny4wCgo= --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename*0=v20241113-0017-expression-with-session-variables-can-be-i.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0017-expression-with-session-variables-can-be-i.patch"; charset="UTF-8" RnJvbSBjNWYzMDY1ZjVjMzI3OGVkNWNkODczMzlhZjY5ZWQxZTI0MzE3ZjIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIHYy MDI0MTExMyAxNy8yMF0gZXhwcmVzc2lvbiB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZQog aW5saW5lZAoKVGhlcmUgaXMgbm90IGFuIHJlYXNvbiB3aHkgc2Vzc2lvbiB2YXJpYWJsZXMgc2hv dWxkIHRvIGJsb2NrIGlubGluaW5nLgoob2YgU1FMIGZ1bmN0aW9ucykuIEkgY2FuIGltYWdpbmUg c29tZSB1c2UgY2FzZXMgbGlrZSB3cmFwcGluZywgYW5kCmlubGluaW5nIHNpZ25pZmljYW50bHkg cmVkdWNlcyBhbiBvdmVyaGVhZCBvZiBTUUwgZnVuY3Rpb25zLgotLS0KIHNyYy9iYWNrZW5kL29w dGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrLS0tLS0K IC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8ICA3ICsrLS0K IDIgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDhjZWU3MzI1NjFkLi5mNzk5Mzc5ODBl ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBi L3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtNDc0NCw4ICs0NzQ0LDcg QEAgaW5saW5lX2Z1bmN0aW9uKE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgT2lkIHJlc3Vs dF9jb2xsaWQsCiAJCXF1ZXJ5dHJlZS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnl0cmVlLT5saW1p dENvdW50IHx8CiAJCXF1ZXJ5dHJlZS0+c2V0T3BlcmF0aW9ucyB8fAotCQkobGlzdF9sZW5ndGgo cXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSB8fAotCQlxdWVyeXRyZWUtPmhhc1Nlc3Npb25W YXJpYWJsZXMpCisJCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExpc3QpICE9IDEpKQog CQlnb3RvIGZhaWw7CiAKIAkvKiBJZiB0aGUgZnVuY3Rpb24gcmVzdWx0IGlzIGNvbXBvc2l0ZSwg cmVzb2x2ZSBpdCAqLwpAQCAtNDk0OSwyMSArNDk0OCwzOSBAQCBzdWJzdGl0dXRlX2FjdHVhbF9w YXJhbWV0ZXJzX211dGF0b3IoTm9kZSAqbm9kZSwKIHsKIAlpZiAobm9kZSA9PSBOVUxMKQogCQly ZXR1cm4gTlVMTDsKKworCisJLyoKKwkgKiBTUUwgZnVuY3Rpb25zIGNhbiBjb250YWluIHR3byBk aWZmZXJlbnQga2luZCBvZiBwYXJhbXMuIFRoZSBub2RlcyB3aXRoCisJICogcGFyYW1raW5kIFBB UkFNX0VYVEVSTiBhcmUgcmVsYXRlZCB0byBmdW5jdGlvbidzIGFyZ3VtZW50cyAoYW5kIHNob3Vs ZAorCSAqIGJlIHJlcGxhY2VkIGluIHRoaXMgc3RlcCksIGJlY2F1c2UgdGhpcyBpcyBob3cgd2Ug YXBwbHkgdGhlIGZ1bmN0aW9uJ3MKKwkgKiBhcmd1bWVudHMgZm9yIGFuIGV4cHJlc3Npb24uCisJ ICoKKwkgKiBUaGUgbm9kZXMgd2l0aCBwYXJhbWtpbmQgUEFSQU1fVkFSSUFCTEUgYXJlIHJlbGF0 ZWQgdG8gdXNhZ2Ugb2Ygc2Vzc2lvbgorCSAqIHZhcmlhYmxlcy4gVGhlIHZhbHVlcyBvZiBzZXNz aW9uIHZhcmlhYmxlcyBhcmUgbm90IHBhc3NlZCB0byBleHByZXNzaW9uCisJICogYnkgZXhwcmVz c2lvbiBhcmd1bWVudHMsIHNvIGl0IHNob3VsZCBub3QgYmUgcmVwbGFjZWQgaGVyZSBieQorCSAq IGZ1bmN0aW9uJ3MgYXJndW1lbnRzLgorCSAqLwogCWlmIChJc0Eobm9kZSwgUGFyYW0pKQogCXsK IAkJUGFyYW0JICAgKnBhcmFtID0gKFBhcmFtICopIG5vZGU7CiAKLQkJaWYgKHBhcmFtLT5wYXJh bWtpbmQgIT0gUEFSQU1fRVhURVJOKQorCQlpZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9F WFRFUk4gJiYKKwkJCXBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fVkFSSUFCTEUpCiAJCQllbG9n KEVSUk9SLCAidW5leHBlY3RlZCBwYXJhbWtpbmQ6ICVkIiwgKGludCkgcGFyYW0tPnBhcmFta2lu ZCk7Ci0JCWlmIChwYXJhbS0+cGFyYW1pZCA8PSAwIHx8IHBhcmFtLT5wYXJhbWlkID4gY29udGV4 dC0+bmFyZ3MpCi0JCQllbG9nKEVSUk9SLCAiaW52YWxpZCBwYXJhbWlkOiAlZCIsIHBhcmFtLT5w YXJhbWlkKTsKIAotCQkvKiBDb3VudCB1c2FnZSBvZiBwYXJhbWV0ZXIgKi8KLQkJY29udGV4dC0+ dXNlY291bnRzW3BhcmFtLT5wYXJhbWlkIC0gMV0rKzsKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQg PT0gUEFSQU1fRVhURVJOKQorCQl7CisJCQlpZiAocGFyYW0tPnBhcmFtaWQgPD0gMCB8fCBwYXJh bS0+cGFyYW1pZCA+IGNvbnRleHQtPm5hcmdzKQorCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHBh cmFtaWQ6ICVkIiwgcGFyYW0tPnBhcmFtaWQpOwogCi0JCS8qIFNlbGVjdCB0aGUgYXBwcm9wcmlh dGUgYWN0dWFsIGFyZyBhbmQgcmVwbGFjZSB0aGUgUGFyYW0gd2l0aCBpdCAqLwotCQkvKiBXZSBk b24ndCBuZWVkIHRvIGNvcHkgYXQgdGhpcyB0aW1lIChpdCdsbCBnZXQgZG9uZSBsYXRlcikgKi8K LQkJcmV0dXJuIGxpc3RfbnRoKGNvbnRleHQtPmFyZ3MsIHBhcmFtLT5wYXJhbWlkIC0gMSk7CisJ CQkvKiBDb3VudCB1c2FnZSBvZiBwYXJhbWV0ZXIgKi8KKwkJCWNvbnRleHQtPnVzZWNvdW50c1tw YXJhbS0+cGFyYW1pZCAtIDFdKys7CisKKwkJCS8qIFNlbGVjdCB0aGUgYXBwcm9wcmlhdGUgYWN0 dWFsIGFyZyBhbmQgcmVwbGFjZSB0aGUgUGFyYW0gd2l0aCBpdCAqLworCQkJLyogV2UgZG9uJ3Qg bmVlZCB0byBjb3B5IGF0IHRoaXMgdGltZSAoaXQnbGwgZ2V0IGRvbmUgbGF0ZXIpICovCisJCQly ZXR1cm4gbGlzdF9udGgoY29udGV4dC0+YXJncywgcGFyYW0tPnBhcmFtaWQgLSAxKTsKKwkJfQog CX0KIAlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgc3Vic3RpdHV0ZV9hY3R1 YWxfcGFyYW1ldGVyc19tdXRhdG9yLAogCQkJCQkJCQkgICAodm9pZCAqKSBjb250ZXh0KTsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXgg OGRmM2E5MWMwNWUuLjk2MjgzZWQwYjlhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTA1LDcgKzEwNSw2IEBAIFNFTEVDVCB2YXIx OwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBT RUxFQ1Qgc3FsZngoMjApOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2 YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIGZ1bmN0aW9uICJzcWxmeCIgc3RhdGVtZW50IDEK IFNFTEVDVCBwbHBnc3FsZngoMjApOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vz c2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4 KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KQEAgLTIxMiwxMCArMjExLDEwIEBAIFNFTEVDVCBz cWxmeDEoc3FsZngyKCdIZWxsbycpKTsKIAogLS0gaW5saW5pbmcgaXMgYmxvY2tlZAogRVhQTEFJ TiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7Ci0g ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgUmVzdWx0Ci0gICBPdXRw dXQ6IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJzo6Y2hhcmFjdGVyIHZhcnlpbmcpKQorICAgT3V0cHV0 OiAoKHZhcjEgfHwgJywgJzo6dGV4dCkgfHwgKCh2YXIyIHx8ICcsICc6OnRleHQpIHx8ICdIZWxs byc6OnRleHQpKQogKDIgcm93cykKIAogRFJPUCBGVU5DVElPTiBzcWxmeDEodmFyY2hhcik7Ci0t IAoyLjQ3LjAKCg== --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename*0=v20241113-0018-this-patch-changes-error-message-column-do.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0018-this-patch-changes-error-message-column-do.patch"; charset="UTF-8" RnJvbSA1MDFiODY1ZGNmMjBlMThlMmQxNzkzYTk0ZGVkNWNiMTI3MmJjMmVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMDozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djIwMjQxMTEzIDE4LzIwXSB0aGlzIHBhdGNoIGNoYW5nZXMgZXJyb3IgbWVzc2FnZSAiY29sdW1u CiBkb2Vzbid0IGV4aXN0IiB0byBtZXNzYWdlICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lc24ndCBl eGlzdCIKClRoZSBlcnJvciBtZXNzYWdlIHdpbGwgYmUgbW9yZSBjb3JyZWN0LiBUb2RheSwgbWlz c2luZyBQTC9wZ1NRTCB2YXJpYWJsZSBjYW4gYmUgcmVwb3J0ZWQuIFRoZSBjaGFuZ2UgaGFzCmlt cGFjdCBvbiBsb3Qgb2YgcmVncmVzcyB0ZXN0cyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byBzZXNz aW9uIHZhcmlhYmxlcywgYW5kIHRoZW4gaXQgaXMgZGlzdHJpYnV0ZWQgYXMgc2VwYXJhdGUgcGF0 Y2gKLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAg MiArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgMjQg KysrKysrKysrKystLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAg ICAgICB8ICA4ICsrKy0tCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oICAgICAgICAg ICAgICAgfCAgMiArKwogc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXku b3V0IHwgIDIgKy0KIC4uLi9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQg ICB8ICA0ICstLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0 IHwgIDIgKy0KIHNyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQgICAgICAgICB8 IDEyICsrKy0tLS0KIC4uLi9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQg ICB8ICA0ICstLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQgICAg IHwgMzIgKysrKysrKysrLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5 Mi5vdXQgICAgICAgICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3Jz Lm91dCAgICAgICAgICB8ICA4ICsrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4u b3V0ICAgICAgICAgICAgfCAxMiArKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25h bWVzcGFjZS5vdXQgICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1l cm9sb2d5Lm91dCAgICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3Nx bC5vdXQgICAgICAgICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNx bC5vdXQgICAgICAgICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVz Lm91dCAgICAgICAgICAgfCAgMiArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgIDYgKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2Fj dGlvbnMub3V0ICAgIHwgIDQgKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91 dCAgICAgICAgICAgfCAgMiArLQogMjEgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwg NjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggYmNiYjFmNTY0YWYu LjE2YmY1MmM5ODU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyMCw3ICs1MjAsNyBA QCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24g KmluZCkKICAqIHByaW50ZWQuICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNl c3Npb24gdmFyaWFibGVzIGNhbm5vdCBiZQogICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZv cm0gb2YgZXJyb3IgbWVzc2FnZS4KICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGV4cHJfa2luZF9h bGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIHsKIAli b29sCQlyZXN1bHQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXgg OTVhZTIxMDgwNDQuLmZhOWEzMGJkMTM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24u YwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1 ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9lbnIuaCIKKyNp bmNsdWRlICJwYXJzZXIvcGFyc2VfZXhwci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxh dGlvbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAicGFyc2Vy L3BhcnNldHJlZS5oIgpAQCAtMzczMCw2ICszNzMxLDE5IEBAIGVycm9yTWlzc2luZ1JURShQYXJz ZVN0YXRlICpwc3RhdGUsIFJhbmdlVmFyICpyZWxhdGlvbikKIAkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgcmVsYXRpb24tPmxvY2F0aW9uKSkpOwogfQogCisvKgorICogc2V0IG1lc3Nh Z2UgImNvbHVtbiBkb2VzIG5vdCBleGlzdCIgb3IgImNvbHVtbiBvciB2YXJpYWJsZSBkb2VzIG5v dCBleGlzdCIKKyAqIGluIGRlcGVuZGVuY3kgaWYgZXhwcmVzc2lvbiBjb250ZXh0IGFsbG93cyBz ZXNzaW9uIHZhcmlhYmxlcy4KKyAqLworc3RhdGljIGludAorY29sdW1uX29yX3ZhcmlhYmxlX2Rv ZXNfbm90X2V4aXN0cyhQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IGNoYXIgKmNvbG5hbWUpCit7 CisJaWYgKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJf a2luZCkpCisJCXJldHVybiBlcnJtc2coImNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgZG9lcyBu b3QgZXhpc3QiLCBjb2xuYW1lKTsKKwllbHNlCisJCXJldHVybiBlcnJtc2coImNvbHVtbiBcIiVz XCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKTsKK30KKwogLyoKICAqIEdlbmVyYXRlIGEgc3Vp dGFibGUgZXJyb3IgYWJvdXQgYSBtaXNzaW5nIGNvbHVtbi4KICAqCkBAIC0zNzY0LDcgKzM3Nzgs NyBAQCBlcnJvck1pc3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkoZXJyY29k ZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCQkgcmVsbmFtZSA/CiAJCQkJCSBlcnJt c2coImNvbHVtbiAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJ CQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJ CQkgY29sdW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAog CQkJCQkgZXJyZGV0YWlsKCJUaGVyZSBhcmUgY29sdW1ucyBuYW1lZCBcIiVzXCIsIGJ1dCB0aGV5 IGFyZSBpbiB0YWJsZXMgdGhhdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBv ZiB0aGUgcXVlcnkuIiwKIAkJCQkJCQkgICBjb2xuYW1lKSwKIAkJCQkJICFyZWxuYW1lID8gZXJy aGludCgiVHJ5IHVzaW5nIGEgdGFibGUtcXVhbGlmaWVkIG5hbWUuIikgOiAwLApAQCAtMzc3NCw3 ICszNzg4LDcgQEAgZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQko ZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkg ZXJybXNnKCJjb2x1bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6 Ci0JCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAor CQkJCSBjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSks CiAJCQkJIGVycmRldGFpbCgiVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgXCIlc1wiIGluIHRhYmxl IFwiJXNcIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRo ZSBxdWVyeS4iLAogCQkJCQkJICAgY29sbmFtZSwgc3RhdGUtPnJleGFjdDEtPmVyZWYtPmFsaWFz bmFtZSksCiAJCQkJIHJ0ZV92aXNpYmxlX2lmX2xhdGVyYWwocHN0YXRlLCBzdGF0ZS0+cmV4YWN0 MSkgPwpAQCAtMzc5MiwxNCArMzgwNiwxNCBAQCBlcnJvck1pc3NpbmdDb2x1bW4oUGFyc2VTdGF0 ZSAqcHN0YXRlLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJ CQkgcmVsbmFtZSA/CiAJCQkJCSBlcnJtc2coImNvbHVtbiAlcy4lcyBkb2VzIG5vdCBleGlzdCIs IHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5v dCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCQkgY29sdW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4 aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg bG9jYXRpb24pKSk7CiAJCS8qIEhhbmRsZSBjYXNlIHdoZXJlIHdlIGhhdmUgYSBzaW5nbGUgYWx0 ZXJuYXRpdmUgc3BlbGxpbmcgdG8gb2ZmZXIgKi8KIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkgZXJy bXNnKCJjb2x1bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0J CQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJ CSBjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJ CQkJIGVycmhpbnQoIlBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uIFwi JXMuJXNcIi4iLAogCQkJCQkJIHN0YXRlLT5yZmlyc3QtPmVyZWYtPmFsaWFzbmFtZSwKIAkJCQkJ CSBzdHJWYWwobGlzdF9udGgoc3RhdGUtPnJmaXJzdC0+ZXJlZi0+Y29sbmFtZXMsCkBAIC0zODEz LDcgKzM4MjcsNyBAQCBlcnJvck1pc3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ CShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJ CSBlcnJtc2coImNvbHVtbiAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUp IDoKLQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSks CisJCQkJIGNvbHVtbl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1l KSwKIAkJCQkgZXJyaGludCgiUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1 bW4gXCIlcy4lc1wiIG9yIHRoZSBjb2x1bW4gXCIlcy4lc1wiLiIsCiAJCQkJCQkgc3RhdGUtPnJm aXJzdC0+ZXJlZi0+YWxpYXNuYW1lLAogCQkJCQkJIHN0clZhbChsaXN0X250aChzdGF0ZS0+cmZp cnN0LT5lcmVmLT5jb2xuYW1lcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA3NmJm ODhjM2NhMi4uNmFmNmI4MDFhZDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTc3 OSw3ICs3NzksOSBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50SW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJaWYgKCF0eXByZWxpZCkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3Qg YXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgaXRzIHR5cGUg JXMgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAorCQkJCQkJIGVycm1zZyhleHByX2tpbmRfYWxs b3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpID8KKwkJCQkJCQkJICJj YW5ub3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgXCIlc1wi IGJlY2F1c2UgaXRzIHR5cGUgJXMgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiIDoKKwkJCQkJCQkJ ICJjYW5ub3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2Ug aXRzIHR5cGUgJXMgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAogCQkJCQkJCQlzdHJWYWwobiks IHRhcmdldE5hbWUsCiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkpLAogCQkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpAQCAtNzg4LDcgKzc5 MCw5IEBAIHRyYW5zZm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQlpZiAoYXR0bnVtID09IEludmFsaWRBdHRyTnVtYmVyKQogCQkJCWVyZXBvcnQoRVJST1Is CiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAotCQkJCQkJIGVycm1z ZygiY2Fubm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIFwiJXNcIiBiZWNhdXNl IHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIsCisJCQkJCQkgZXJybXNn KGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkg PworCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBvciB2 YXJpYWJsZSBcIiVzXCIgYmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5 cGUgJXMiIDoKKwkJCQkJCQkJICJjYW5ub3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1 bW4gXCIlc1wiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlICVz IiwKIAkJCQkJCQkJc3RyVmFsKG4pLCB0YXJnZXROYW1lLAogCQkJCQkJCQlmb3JtYXRfdHlwZV9i ZSh0YXJnZXRUeXBlSWQpKSwKIAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2Nh dGlvbikpKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggYi9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCmluZGV4IDBkNjRiMzAwZjhhLi5lNWFlYmY5 OWI0YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBAIC0yMyw0ICsyMyw2IEBAIGV4dGVybiBO b2RlICp0cmFuc2Zvcm1FeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VF eHByS2luZCBleHByS2luCiAKIGV4dGVybiBjb25zdCBjaGFyICpQYXJzZUV4cHJLaW5kTmFtZShQ YXJzZUV4cHJLaW5kIGV4cHJLaW5kKTsKIAorZXh0ZXJuIGJvb2wgZXhwcl9raW5kX2FsbG93c19z ZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKTsKKwogI2VuZGlmCQkJ CQkJCS8qIFBBUlNFX0VYUFJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4 cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3Bs cGdzcWxfYXJyYXkub3V0CmluZGV4IGFkNjBlMGU4YmUzLi5jMWFiOWZkN2VkOSAxMDA2NDQKLS0t IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0CisrKyBiL3Ny Yy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX2FycmF5Lm91dApAQCAtNDEsNyArNDEs NyBAQCBOT1RJQ0U6ICBhID0geyIoLDExKSJ9LCBhWzFdLmkgPSAxMQogLS0gcGVyaGFwcyB0aGlz IG91Z2h0IHRvIHdvcmssIGJ1dCBmb3Igbm93IGl0IGRvZXNuJ3Q6CiBkbyAkJCBkZWNsYXJlIGEg Y29tcGxleFtdOwogYmVnaW4gYVsxOjJdLmkgOj0gYXJyYXlbMTEsMTJdOyByYWlzZSBub3RpY2Ug J2EgPSAlJywgYTsgZW5kJCQ7Ci1FUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgImkiIG9m IGNvbHVtbiAiYSIgYmVjYXVzZSBpdHMgdHlwZSBjb21wbGV4W10gaXMgbm90IGEgY29tcG9zaXRl IHR5cGUKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAiaSIgb2YgY29sdW1uIG9yIHZh cmlhYmxlICJhIiBiZWNhdXNlIGl0cyB0eXBlIGNvbXBsZXhbXSBpcyBub3QgYSBjb21wb3NpdGUg dHlwZQogTElORSAxOiBhWzE6Ml0uaSA6PSBhcnJheVsxMSwxMl0KICAgICAgICAgXgogUVVFUlk6 ICBhWzE6Ml0uaSA6PSBhcnJheVsxMSwxMl0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0 ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CmluZGV4IDY5NzRjOGY0YTQ0Li4zOTcwYWM3MjFjOSAxMDA2 NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dAor KysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CkBAIC0x MzUsNyArMTM1LDcgQEAgRVJST1I6ICByZWNvcmQgImMiIGhhcyBubyBmaWVsZCAieCIKIENPTlRF WFQ6ICBQTC9wZ1NRTCBhc3NpZ25tZW50ICJjLngucTEgPSAxIgogUEwvcGdTUUwgZnVuY3Rpb24g aW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IGFzc2lnbm1lbnQKIGRvICQkIGRlY2xhcmUgYyBu ZXN0ZWRfaW50OHM7IGJlZ2luIGMuYzIueCA9IDE7IGVuZCAkJDsKLUVSUk9SOiAgY2Fubm90IGFz c2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1uICJjIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2gg Y29sdW1uIGluIGRhdGEgdHlwZSB0d29faW50OHMKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBm aWVsZCAieCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlICJjIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1 Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0d29faW50OHMKIExJTkUgMTogYy5jMi54ID0gMQogICAg ICAgICBeCiBRVUVSWTogIGMuYzIueCA9IDEKQEAgLTE1Nyw3ICsxNTcsNyBAQCBFUlJPUjogIHJl Y29yZCAiYyIgaGFzIG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3BnU1FMIGFzc2lnbm1lbnQg ImIuYy54LnExID0gMSIKIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUg MSBhdCBhc3NpZ25tZW50CiBkbyAkJCA8PGI+PiBkZWNsYXJlIGMgbmVzdGVkX2ludDhzOyBiZWdp biBiLmMuYzIueCA9IDE7IGVuZCAkJDsKLUVSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAi eCIgb2YgY29sdW1uICJiIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEg dHlwZSB0d29faW50OHMKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29s dW1uIG9yIHZhcmlhYmxlICJiIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRh dGEgdHlwZSB0d29faW50OHMKIExJTkUgMTogYi5jLmMyLnggPSAxCiAgICAgICAgIF4KIFFVRVJZ OiAgYi5jLmMyLnggPSAxCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQv cGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3Rl ZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CmluZGV4IGVjYWM2NGZjZmI0Li44YmQyYjM5 OGJkZCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vz c2lvbl92YXJpYWJsZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdz cWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTIzMiw3ICsyMzIsNyBAQCBTRVQgUk9MRSBUTyBE RUZBVUxUOwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOwogLS0gc2hvdWxkIGZh aWwsIGJ1dCBub3QgY3Jhc2gKIFNFTEVDVCB2YXJfcmVhZF9mdW5jKCk7Ci1FUlJPUjogIGNvbHVt biAicGxwZ3NxbF9zdl92YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgInBscGdzcWxfc3ZfdmFyMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogcGxwZ3NxbF9z dl92YXIxCiAgICAgICAgIF4KIFFVRVJZOiAgcGxwZ3NxbF9zdl92YXIxCmRpZmYgLS1naXQgYS9z cmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3F1ZXJpZXMub3V0IGIvc3JjL3BsL3RjbC9leHBlY3Rl ZC9wbHRjbF9xdWVyaWVzLm91dAppbmRleCAzNWNjNmU2MmFhZC4uNDk3Y2QzODE4OWIgMTAwNjQ0 Ci0tLSBhL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQKKysrIGIvc3JjL3Bs L3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dApAQCAtNDUwLDEyICs0NTAsMTIgQEAgQ09O VEVYVDogIHdoaWxlIGV4ZWN1dGluZwogIl9fUExUY2xfcHJvY190Y2xfZXZhbF90ZXh0IHNwaV9w cmVwYXJlXCBhXCBcImJcIFx7XCIiCiBpbiBQTC9UY2wgZnVuY3Rpb24gdGNsX2V2YWwodGV4dCkK IHNlbGVjdCB0Y2xfZXJyb3JfaGFuZGxpbmdfdGVzdCgkdGNsJHNwaV9wcmVwYXJlICJzZWxlY3Qg bW9vIiBbXSR0Y2wkKTsKLSAgICAgICB0Y2xfZXJyb3JfaGFuZGxpbmdfdGVzdCAgICAgICAgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFNRTFNUQVRFOiA0MjcwMyAg ICAgICAgICAgICAgICAgICAgICsKLSBjb25kaXRpb246IHVuZGVmaW5lZF9jb2x1bW4gICAgICAg ICArCi0gY3Vyc29yX3Bvc2l0aW9uOiA4ICAgICAgICAgICAgICAgICAgKwotIG1lc3NhZ2U6IGNv bHVtbiAibW9vIiBkb2VzIG5vdCBleGlzdCsKKyAgICAgICAgICAgICB0Y2xfZXJyb3JfaGFuZGxp bmdfdGVzdCAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFNRTFNUQVRFOiA0MjcwMyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyBjb25kaXRpb246IHVuZGVmaW5lZF9jb2x1bW4gICAgICAgICAgICAgICAg ICAgICArCisgY3Vyc29yX3Bvc2l0aW9uOiA4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworIG1lc3NhZ2U6IGNvbHVtbiBvciB2YXJpYWJsZSAibW9vIiBkb2VzIG5vdCBleGlzdCsKICBz dGF0ZW1lbnQ6IHNlbGVjdCBtb28KICgxIHJvdykKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9u L2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CmluZGV4IGU5YTI1NGJjZDEyLi5kODg0OGQ1 NTVjZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFy aWFibGUub3V0CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlh YmxlLm91dApAQCAtMTAsNyArMTAsNyBAQCB0ZXN0CiAKIHN0ZXAgZHJvcDogRFJPUCBWQVJJQUJM RSBteXZhcjsKIHN0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Ci1FUlJPUjogIGNvbHVtbiAibXl2YXIi IGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibXl2YXIiIGRvZXMg bm90IGV4aXN0CiAKIHN0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNy MQogc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKQEAgLTIzLDcgKzIzLDcgQEAgdGVzdAog c3RlcCBzMTogQkVHSU47CiBzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CiBzdGVwIHZh bDogU0VMRUNUIG15dmFyOwotRVJST1I6ICBjb2x1bW4gIm15dmFyIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIm15dmFyIiBkb2VzIG5vdCBleGlzdAogc3RlcCBz cjE6IFJPTExCQUNLOwogCiBzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBkYmcgZHJvcCBj cmVhdGUgZGJnIHZhbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRl cl90YWJsZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dApp bmRleCAyMjEyYzhkYmI1OS4uMzViM2EzYmQzMDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYWx0ZXJfdGFibGUub3V0CkBAIC0xMjk1LDE5ICsxMjk1LDE5IEBAIHNlbGVjdCAqIGZyb20g YXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSBhOwotRVJS T1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJs ZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIg YnkgYTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogc2VsZWN0ICog ZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iOwotRVJS T1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkg Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLi4uCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5IGE7Ci1FUlJP UjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBi eSBhOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBm cm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJP UjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4u IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIuLi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgogc2VsZWN0IGF0YWNjMS4qIGZyb20gYXRhY2MxOwpAQCAtMTMxNyw3 ICsxMzE3LDcgQEAgc2VsZWN0IGF0YWNjMS4qIGZyb20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxl Y3QgYSBmcm9tIGF0YWNjMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVj dCBhIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2VsZWN0IGF0YWNjMS5hIGZyb20g YXRhY2MxOwpAQCAtMTMzMSwxNSArMTMzMSwxNSBAQCBzZWxlY3QgYixjLGQgZnJvbSBhdGFjYzE7 CiAoMSByb3cpCiAKIHNlbGVjdCBhLGIsYyxkIGZyb20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4g ImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBu b3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGEsYixjLGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAg ICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMTsKLUVSUk9SOiAgY29sdW1u ICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIHdoZXJlIGEgPSAxOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJv cHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcu ZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJp YWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUg MTogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAg ICAgICAgICAgICAgIF4KIHNlbGVjdCBhdGFjYzEuIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4u Li4iIGZyb20gYXRhY2MxOwpAQCAtMTM0NywxMSArMTM0NywxMSBAQCBFUlJPUjogIGNvbHVtbiBh dGFjYzEuLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiBkb2VzIG5vdCBleGlzdAogTElORSAx OiBzZWxlY3QgYXRhY2MxLiIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNj MTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIsYixjLGQgZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVk LjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIu Li4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxl Y3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLGIsYyxkIGZyb20gYXRhY2MxOwogICAg ICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJv cHBlZC4xLi4uLi4uLi4iID0gMTsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQu MS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4u Li4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVj dCAqIGZyb20gYXRhY2MxIHdoZXJlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IC4u LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBVUERBVEVzCkBAIC0x MzYwLDcgKzEzNjAsNyBAQCBFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImF0YWNjMSIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYSA9IDM7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBhdGFjYzEgc2V0IGIgPSAyIHdoZXJlIGEgPSAz OwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2 YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9 IDIgd2hlcmUgYSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K IHVwZGF0ZSBhdGFjYzEgc2V0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CkBA IC0xMzY4LDcgKzEzNjgsNyBAQCBFUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEu Li4uLi4uLiIgb2YgcmVsYXRpb24gImF0YWNjMSIgZG9lcyBub3QgZXhpcwogTElORSAxOiB1cGRh dGUgYXRhY2MxIHNldCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAg ICAgICAgICAgICAgICAgICAgICBeCiB1cGRhdGUgYXRhY2MxIHNldCBiID0gMiB3aGVyZSAiLi4u Li4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2 YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4x Li4uLi4uLi4iLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0t IElOU0VSVHMKQEAgLTE0MTYsMTEgKzE0MTYsMTEgQEAgTElORSAxOiBpbnNlcnQgaW50byBhdGFj YzEgKCIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIixiLGMsZCkgdmEuLi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCiAtLSBERUxFVEVzCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hl cmUgYSA9IDM7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBkZWxldGUgZnJvbSBh dGFjYzEgd2hlcmUgYSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBk ZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0g MzsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4x Li4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVy ZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgogZGVsZXRlIGZyb20gYXRhY2MxOwpAQCAtMTcwNiw3ICsxNzA2LDcg QEAgc2VsZWN0IGYxIGZyb20gYzE7CiAKIGFsdGVyIHRhYmxlIGMxIGRyb3AgY29sdW1uIGYxOwog c2VsZWN0IGYxIGZyb20gYzE7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitF UlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNl bGVjdCBmMSBmcm9tIGMxOwogICAgICAgICAgICAgICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1l YW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJjMS5mMiIuCkBAIC0xNzIwLDcgKzE3MjAsNyBA QCBFUlJPUjogIGNhbm5vdCBkcm9wIGluaGVyaXRlZCBjb2x1bW4gImYxIgogYWx0ZXIgdGFibGUg cDEgZHJvcCBjb2x1bW4gZjE7CiAtLSBjMS5mMSBpcyBkcm9wcGVkIG5vdywgc2luY2UgdGhlcmUg aXMgbm8gbG9jYWwgZGVmaW5pdGlvbiBmb3IgaXQKIHNlbGVjdCBmMSBmcm9tIGMxOwotRVJST1I6 ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUg ImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgZjEgZnJvbSBjMTsKICAgICAgICAg ICAgICAgIF4KIEhJTlQ6ICBQZXJoYXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVt biAiYzEuZjIiLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAppbmRleCA2NGVhMzNhZWFl OC4uNjg3NGY1YWUwZDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29w eTIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CkBAIC0xNjAs NyArMTYwLDcgQEAgTElORSAxOiBDT1BZIHggVE8gc3Rkb3V0IFdIRVJFIGEgPSAxOwogQ09QWSB4 IGZyb20gc3RkaW4gV0hFUkUgYSA9IDUwMDA0OwogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgYSA+ IDYwMDAzOwogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgZiA+IDYwMDAzOwotRVJST1I6ICBjb2x1 bW4gImYiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZiIgZG9l cyBub3QgZXhpc3QKIExJTkUgMTogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgZiA+IDYwMDAzOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBDT1BZIHggZnJvbSBzdGRpbiBXSEVS RSBhID0gbWF4KHguYik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vy cm9ycy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKaW5kZXggOGM1 Mjc0NzRkYWYuLmU1M2FlNDUxZGZjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2Vycm9ycy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0 CkBAIC0yNyw3ICsyNyw3IEBAIExJTkUgMTogc2VsZWN0ICogZnJvbSBub25lc3VjaDsKICAgICAg ICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgbmFtZSBpbiB0YXJnZXQgbGlzdAogc2VsZWN0IG5v bmVzdWNoIGZyb20gcGdfZGF0YWJhc2U7Ci1FUlJPUjogIGNvbHVtbiAibm9uZXN1Y2giIGRvZXMg bm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibm9uZXN1Y2giIGRvZXMgbm90 IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBub25lc3VjaCBmcm9tIHBnX2RhdGFiYXNlOwogICAgICAg ICAgICAgICAgXgogLS0gZW1wdHkgZGlzdGluY3QgbGlzdCBpc24ndCBPSwpAQCAtMzcsMTcgKzM3 LDE3IEBAIExJTkUgMTogc2VsZWN0IGRpc3RpbmN0IGZyb20gcGdfZGF0YWJhc2U7CiAgICAgICAg ICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmlidXRlIG5hbWUgb24gbGhzIG9mIG9wZXJh dG9yCiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIG5vbmVzdWNoID0gcGdfZGF0YWJh c2UuZGF0bmFtZTsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUg MTogc2VsZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBub25lc3VjaCA9IHBnX2RhdGFiYXNl LmRhdG5hLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0g YmFkIGF0dHJpYnV0ZSBuYW1lIG9uIHJocyBvZiBvcGVyYXRvcgogc2VsZWN0ICogZnJvbSBwZ19k YXRhYmFzZSB3aGVyZSBwZ19kYXRhYmFzZS5kYXRuYW1lID0gbm9uZXN1Y2g7Ci1FUlJPUjogIGNv bHVtbiAibm9uZXN1Y2giIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJs ZSAibm9uZXN1Y2giIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IC4uLmVjdCAqIGZyb20gcGdfZGF0 YWJhc2Ugd2hlcmUgcGdfZGF0YWJhc2UuZGF0bmFtZSA9IG5vbmVzdWNoOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBi YWQgYXR0cmlidXRlIG5hbWUgaW4gc2VsZWN0IGRpc3RpbmN0IG9uCiBzZWxlY3QgZGlzdGluY3Qg b24gKGZvb2JhcikgKiBmcm9tIHBnX2RhdGFiYXNlOwotRVJST1I6ICBjb2x1bW4gImZvb2JhciIg ZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmb29iYXIiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFyKSAqIGZyb20gcGdf ZGF0YWJhc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gZ3JvdXBpbmcgd2l0 aCBGT1IgVVBEQVRFCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4u b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAppbmRleCA5YjI5NzM2OTRm Zi4uZDlmMTZhZWI5NzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9p bi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dApAQCAtNjMxMCwx MyArNjMxMCwxMyBAQCBMSU5FIDE6IHNlbGVjdCB0Mi51dW5pcXVlMSBmcm9tCiBISU5UOiAgUGVy aGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gInQyLnVuaXF1ZTEiLgogc2Vs ZWN0IHV1bmlxdWUxIGZyb20KICAgdGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0MS50d28gPSB0 Mi50d287IC0tIGVycm9yLCBzdWdnZXN0IGJvdGggYXQgb25jZQotRVJST1I6ICBjb2x1bW4gInV1 bmlxdWUxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInV1bmlx dWUxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgdXVuaXF1ZTEgZnJvbQogICAgICAg ICAgICAgICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29s dW1uICJ0MS51bmlxdWUxIiBvciB0aGUgY29sdW1uICJ0Mi51bmlxdWUxIi4KIHNlbGVjdCBjdGlk IGZyb20KICAgdGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0tIGVy cm9yLCBuZWVkIHF1YWxpZmljYXRpb24KLUVSUk9SOiAgY29sdW1uICJjdGlkIiBkb2VzIG5vdCBl eGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImN0aWQiIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IHNlbGVjdCBjdGlkIGZyb20KICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJl IGFyZSBjb2x1bW5zIG5hbWVkICJjdGlkIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KQEAgLTc0MTMs NyArNzQxMyw3IEBAIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20gaW50OF90YmwgdDEsCiAKIC0tIHRl c3Qgc29tZSBlcnJvciBjYXNlcyB3aGVyZSBMQVRFUkFMIHNob3VsZCBoYXZlIGJlZW4gdXNlZCBi dXQgd2Fzbid0CiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEsIChzZWxlY3QgZjEgYXMgZykg c3M7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20g aW50NF90YmwgYSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVk ICJmMSIgaW4gdGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlz IHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzQyNSw3ICs3NDI1LDcgQEAgTElORSAxOiBzZWxlY3Qg ZjEsZyBmcm9tIGludDRfdGJsIGEsIChzZWxlY3QgYS5mMSBhcyBnKSBzczsKIERFVEFJTDogIFRo ZXJlIGlzIGFuIGVudHJ5IGZvciB0YWJsZSAiYSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNl ZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCiBISU5UOiAgVG8gcmVmZXJlbmNlIHRoYXQg dGFibGUsIHlvdSBtdXN0IG1hcmsgdGhpcyBzdWJxdWVyeSB3aXRoIExBVEVSQUwuCiBzZWxlY3Qg ZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwotRVJS T1I6ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFi bGUgImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJs IGEgY3Jvc3Mgam9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEg Y29sdW1uIG5hbWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5j ZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzQ2Miw3ICs3NDYyLDcgQEAgTElO RSAxOiBzZWxlY3QgMSBmcm9tIHRlbmsxIGEsIGxhdGVyYWwgKHNlbGVjdCBtYXgoYS51bmlxdWUx KSBmcm9tIGkuLi4KIGNyZWF0ZSB0ZW1wIHRhYmxlIHh4MSBhcyBzZWxlY3QgZjEgYXMgeDEsIC1m MSBhcyB4MiBmcm9tIGludDRfdGJsOwogLS0gZXJyb3IsIGNhbid0IGRvIHRoaXM6CiB1cGRhdGUg eHgxIHNldCB4MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4 MSkgc3M7Ci1FUlJPUjogIGNvbHVtbiAieDEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVt biBvciB2YXJpYWJsZSAieDEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IC4uLiBzZXQgeDIgPSBm MSBmcm9tIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpIHNzOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJ4MSIgaW4gdGFibGUgInh4MSIs IGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnku CkBAIC03NDgyLDcgKzc0ODIsNyBAQCB1cGRhdGUgeHgxIHNldCB4MiA9IGYxIGZyb20geHgxLCBs YXRlcmFsIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpCiBFUlJPUjogIHRh YmxlIG5hbWUgInh4MSIgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlCiAtLSBhbHNvIGVycm9yczoK IGRlbGV0ZSBmcm9tIHh4MSB1c2luZyAoc2VsZWN0ICogZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9 IHgxKSBzczsKLUVSUk9SOiAgY29sdW1uICJ4MSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJ4MSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4udGUgZnJvbSB4 eDEgdXNpbmcgKHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgIngxIiBpbiB0YWJsZSAieHgx IiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVy eS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dAppbmRleCBkYmJkYTcyZDM5 NS4uZDk4NzkzZjkyYTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFt ZXNwYWNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQK QEAgLTIzLDcgKzIzLDcgQEAgQkVHSU47CiBTRVQgc2VhcmNoX3BhdGggdG8gcHVibGljLCB0ZXN0 X25zX3NjaGVtYV8xOwogQ1JFQVRFIFNDSEVNQSB0ZXN0X25zX3NjaGVtYV8yCiAgICAgICAgQ1JF QVRFIFZJRVcgYWJjX3ZpZXcgQVMgU0VMRUNUIGMgRlJPTSBhYmM7Ci1FUlJPUjogIGNvbHVtbiAi YyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJjIiBkb2VzIG5v dCBleGlzdAogTElORSAyOiAgICAgICAgQ1JFQVRFIFZJRVcgYWJjX3ZpZXcgQVMgU0VMRUNUIGMg RlJPTSBhYmM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogQ09NTUlUOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9s b2d5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQKaW5kZXgg OWUyMzE2NmZlZDEuLjY3MjAxMmUxNDYxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL251bWVyb2xvZ3kub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVt ZXJvbG9neS5vdXQKQEAgLTMxNCw3ICszMTQsNyBAQCBOT1RJQ0U6ICBpID0gMTAwMgogTk9USUNF OiAgaSA9IDEwMDMKIC0tIGVycm9yIGNhc2VzCiBTRUxFQ1QgXzEwMDsKLUVSUk9SOiAgY29sdW1u ICJfMTAwIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIl8xMDAi IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCBfMTAwOwogICAgICAgICAgICAgICAgXgog U0VMRUNUIDEwMF87CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdz cWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dAppbmRleCAwYTY5 NDU1ODFiZC4uNWM1OTliYTMxMmUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcGxwZ3NxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91 dApAQCAtMjU5OCw3ICsyNTk4LDcgQEAgZW5kOyAkJCBsYW5ndWFnZSBwbHBnc3FsOwogLS0gc2hv dWxkIGZhaWw6IFNRTFNUQVRFIGFuZCBTUUxFUlJNIGFyZSBvbmx5IGluIGRlZmluZWQgRVhDRVBU SU9OCiAtLSBibG9ja3MKIHNlbGVjdCBleGNwdF90ZXN0MSgpOwotRVJST1I6ICBjb2x1bW4gInNx bHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInNxbHN0 YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAgICAgICBeCiBRVUVSWTog IHNxbHN0YXRlCkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBiZWdpbgogZW5kOyAkJCBsYW5ndWFnZSBw bHBnc3FsOwogLS0gc2hvdWxkIGZhaWwKIHNlbGVjdCBleGNwdF90ZXN0MigpOwotRVJST1I6ICBj b2x1bW4gInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFi bGUgInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAgICAgICBe CiBRVUVSWTogIHNxbHN0YXRlCkBAIC00Njc1LDcgKzQ2NzUsNyBAQCBCRUdJTgogICAgICAgICBS QUlTRSBOT1RJQ0UgJyUsICUnLCByLnJvb21ubywgci5jb21tZW50OwogICAgIEVORCBMT09QOwog RU5EJCQ7Ci1FUlJPUjogIGNvbHVtbiAiZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgImZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIHJ0cmlt KHJvb21ubykgQVMgcm9vbW5vLCBmb28gRlJPTSBSb29tIE9SREVSIEJZIHJvb21uLi4uCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogUVVFUlk6ICBTRUxFQ1QgcnRy aW0ocm9vbW5vKSBBUyByb29tbm8sIGZvbyBGUk9NIFJvb20gT1JERVIgQlkgcm9vbW5vCkBAIC00 NzE3LDcgKzQ3MTcsNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3ggPSAlJywgeDsKIGVuZDsK ICQkOwotRVJST1I6ICBjb2x1bW4gIngiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAieCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogeCArIDEKICAgICAgICAgXgog UVVFUlk6ICB4ICsgMQpAQCAtNDcyOSw3ICs0NzI5LDcgQEAgYmVnaW4KICAgcmFpc2Ugbm90aWNl ICd4ID0gJSwgeSA9ICUnLCB4LCB5OwogZW5kOwogJCQ7Ci1FUlJPUjogIGNvbHVtbiAieCIgZG9l cyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4IiBkb2VzIG5vdCBleGlz dAogTElORSAxOiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHggKyAxCkBAIC01NzY5LDcgKzU3 NjksNyBAQCBBTFRFUiBUQUJMRSBhbHRlcl90YWJsZV91bmRlcl90cmFuc2l0aW9uX3RhYmxlcwog ICBEUk9QIGNvbHVtbiBuYW1lOwogVVBEQVRFIGFsdGVyX3RhYmxlX3VuZGVyX3RyYW5zaXRpb25f dGFibGVzCiAgIFNFVCBpZCA9IGlkOwotRVJST1I6ICBjb2x1bW4gIm5hbWUiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibmFtZSIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogKFNFTEVDVCBzdHJpbmdfYWdnKGlkIHx8ICc9JyB8fCBuYW1lLCAnLCcpIEZST00gZCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBRVUVSWTogIChTRUxF Q1Qgc3RyaW5nX2FnZyhpZCB8fCAnPScgfHwgbmFtZSwgJywnKSBGUk9NIGQpCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wc3FsLm91dAppbmRleCA3N2E3YmY0NWM4YS4uZTE2MzVmNjg2YzIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtMjE0LDcgKzIxNCw3IEBAIHNlbGVjdCAkMTo6aW50 IGFzIGNvbCBcYmluZCAxIFxnIFxiaW5kIDIgXGcKIC0tIGVycm9ycwogLS0gcGFyc2UgZXJyb3IK IFNFTEVDVCBmb28gXGJpbmQgXGcKLUVSUk9SOiAgY29sdW1uICJmb28iIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZm9vIiBkb2VzIG5vdCBleGlzdAogTElORSAx OiBTRUxFQ1QgZm9vIAogICAgICAgICAgICAgICAgXgogLS0gdGNvcCBlcnJvcgpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCAzMDE0ZDA0N2ZlZi4uNzM3OGY5NWIxN2QgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xMTkxLDcgKzExOTEsNyBAQCBkcm9wIHJ1 bGUgcnVsZXNfZm9vcnVsZSBvbiBydWxlc19mb287CiAtLSB0aGlzIHNob3VsZCBmYWlsIGJlY2F1 c2UgZjEgaXMgbm90IGV4cG9zZWQgZm9yIHVucXVhbGlmaWVkIHJlZmVyZW5jZToKIGNyZWF0ZSBy dWxlIHJ1bGVzX2Zvb3J1bGUgYXMgb24gaW5zZXJ0IHRvIHJ1bGVzX2ZvbyB3aGVyZSBmMSA8IDEw MAogZG8gaW5zdGVhZCBpbnNlcnQgaW50byBydWxlc19mb28yIHZhbHVlcyAoZjEpOwotRVJST1I6 ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUg ImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAyOiBkbyBpbnN0ZWFkIGluc2VydCBpbnRvIHJ1bGVz X2ZvbzIgdmFsdWVzIChmMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGFyZSBjb2x1bW5zIG5hbWVkICJmMSIsIGJ1 dCB0aGV5IGFyZSBpbiB0YWJsZXMgdGhhdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMg cGFydCBvZiB0aGUgcXVlcnkuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CmluZGV4IDk2MjgzZWQwYjlhLi41YTY2ZmM5ZmZhYiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTMxMCw3 ICszMTAsNyBAQCBFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNuJ3QgZXhpc3QK IExJTkUgMTogTEVUIHZhcjEgPSBwaSgpOwogICAgICAgICAgICAgXgogU0VMRUNUIHZhcjE7Ci1F UlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZh cmlhYmxlICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFyMTsKICAgICAg ICAgICAgICAgIF4KIC0tIHNob3VsZCBiZSBvawpAQCAtNTIyLDcgKzUyMiw3IEBAIFNFTEVDVCB2 MTsKIAogLS0gc2hvdWxkIGZhaWwsIGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CiBMRVQgdjEueCA9 IDEwOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gInYxIiBi ZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQorRVJST1I6ICBj YW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgInYxIiBiZWNh dXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQogTElORSAxOiBMRVQg djEueCA9IDEwOwogICAgICAgICAgICAgXgogLS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11 bHRpIGNvbHVtbiBxdWVyeQpAQCAtMTA3MCw3ICsxMDcwLDcgQEAgQkVHSU47CiBEUk9QIFZBUklB QkxFIHZhcjE7CiAtLSBzaG91bGQgZmFpbAogU0VMRUNUIHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAi dmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBk b2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFyMTsKICAgICAgICAgICAgICAgIF4KIFJP TExCQUNLOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlv bnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CmluZGV4 IDdmNTc1N2U4OWM0Li5iMDViMTZkOTRiZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dHJhbnNhY3Rpb25zLm91dApAQCAtMjU2LDcgKzI1Niw3IEBAIFNFTEVDVCAqIEZST00gdHJhbnNf YmFyYmF6OwktLSBzaG91bGQgaGF2ZSAxCiBCRUdJTjsKIAlTQVZFUE9JTlQgb25lOwogCQlTRUxF Q1QgdHJhbnNfZm9vOwotRVJST1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IFNFTEVDVCB0cmFuc19mb287CiAgICAgICAgICAgICAgICBeCiAJUk9MTEJBQ0sgVE8g U0FWRVBPSU5UIG9uZTsKQEAgLTMwNSw3ICszMDUsNyBAQCBCRUdJTjsKIAlTQVZFUE9JTlQgb25l OwogCQlJTlNFUlQgSU5UTyBzYXZlcG9pbnRzIFZBTFVFUyAoNSk7CiAJCVNFTEVDVCB0cmFuc19m b287Ci1FUlJPUjogIGNvbHVtbiAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VM RUNUIHRyYW5zX2ZvbzsKICAgICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC91bmlvbi5vdXQKaW5kZXggYzczNjMxYTlhMWQuLjVjMGVhY2M1ZjE1IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3VuaW9uLm91dApAQCAtOTIyLDcgKzkyMiw3IEBAIE9SREVSIEJZIHEyLHEx OwogCiAtLSBUaGlzIHNob3VsZCBmYWlsLCBiZWNhdXNlIHEyIGlzbid0IGEgbmFtZSBvZiBhbiBF WENFUFQgb3V0cHV0IGNvbHVtbgogU0VMRUNUIHExIEZST00gaW50OF90YmwgRVhDRVBUIFNFTEVD VCBxMiBGUk9NIGludDhfdGJsIE9SREVSIEJZIHEyIExJTUlUIDE7Ci1FUlJPUjogIGNvbHVtbiAi cTIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAicTIiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IC4uLiBpbnQ4X3RibCBFWENFUFQgU0VMRUNUIHEyIEZST00gaW50 OF90YmwgT1JERVIgQlkgcTIgTElNSVQgMS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEg Y29sdW1uIG5hbWVkICJxMiIgaW4gdGFibGUgIipTRUxFQ1QqIDIiLCBidXQgaXQgY2Fubm90IGJl IHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgotLSAKMi40Ny4wCgo= --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename="v20241113-0019-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0019-transactional-variables.patch"; charset="UTF-8" RnJvbSA0ZjRiNmE3ZjE0NWNiNzhiMzUxM2MyNTUzNTYwNDliZDBkMjU1NDZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMTozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djIwMjQxMTEzIDE5LzIwXSB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcwoKVGhpcyBjb21taXQgaW1w bGVtZW50cyB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcy4gVGhlIGNvbnRlbnQgb2YgdHJhbnNhY3Rp b25hbApzZXNzaW9uIHZhcmlhYmxlcyBpcyBzZW5zaXRpdmUgdG8gdHJhbnNhY3Rpb25zIGFuZCBz dWJ0cmFuc2FjdGlvbnMuIEFueQp0cmFuc2FjdGlvbmFsIHZhcmlhYmxlIGhvbGRzIGEgaGlzdG9y eSBvZiB2YWx1ZXMgbmVjZXNzYXJ5IGZvciByZXZlcnQuIFRoaXMgaGlzdG9yeQppcyBjbGVhbmVk IChwdXJnZWQpIHdoZW4gYSkgd2UgcmVhZCB0aGUgdmFyaWFibGUsIGIpIHdoZW4gdGhlIHRyYW5z YWN0aW9uIGlzIGZpbmlzaGVkLgoKV2UgZG9uJ3QgdHJ5IHRvIHB1cmdlLCB3aGVuIHRoZSBsYXN0 IG1vZGlmaWNhdGlvbiBvZiBhIHZhcmlhYmxlIGlzIGZyb20KY3VycmVudCBzdWJ0cmFuc2FjdGlv biwgb3Igd2hlbiBwdXJnZSB3YXMgcHJvY2Vzc2VkIGluIGN1cnJlbnQgc3VidHJhbnNhY3Rpb24u CgpUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIG15IHdvcmsgZnJvbSBGZWIgMjAyMCBhbmQgaXQgaXMg cmVsYXRlZCB0byBkaXNjdXNzaW9uCmFib3V0IGZlYXR1cmVzIHJlbGF0ZWQgdG8gc2Vzc2lvbiB2 YXJpYWJsZXMuIE5vdywgd2hlbiB0aGUgYWxsIGZlYXR1cmVzIGFyZQpzZXBhcmF0ZWQgdG8gaXNv bGF0ZWQgcGF0Y2hlcyBJIGNhbiByZXZpdGFsaXplIHRoaXMgcGF0Y2gsIGJlY2F1c2UgaXQgZG9l c24ndAppbmNyZWFzZSBjb21wbGV4aXR5IG9mIGJhc2ljIHBhdGNoZXMuCgpVbmxpa2Ugb3RoZXIg cGF0Y2hlcywgdGhpcyBwYXRjaCBpcyB3aXRob3V0IGFueSByZXZpZXcgYXQgdGhpcyBtb21lbnQg KEZlYiAyMDI0KSwKYnV0IHRoZSBmZWF0dXJlIHNob3VsZCBiZSBmdWxseSBmdW5jdGlvbmFsIGZv ciBwZW9wbGUgd2hvIGFyZSBpbnRlcmVzdGVkIGFib3V0CnRoaXMgZmVhdHVyZSAoZm9yIHRlc3Rp bmcpLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8 ICAxMiArCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAg MTAgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAg NCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAzMDEg KysrKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAg ICAgICAgICAgfCAgNTAgKy0tCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAg ICAgICAgICAgfCAgMTAgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAg ICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAg ICAgICAgfCAgMzYgKysrCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDQgKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAg ICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAg ICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8 ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAg MzYgKy0tCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAx MTAgKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAg IHwgIDU4ICsrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDU5MiBpbnNlcnRpb25zKCspLCA1MCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDcyMTEwZTA1ZjU4Li4xYmEzOTZiMDViNiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKQEAgLTk4NTgsNiArOTg1OCwxOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNl YWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4m bAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnk+PHN0cnVjdGZpZWxkPnZhcmlzdHJhbnNhY3Q8L3N0cnVjdGZpZWxkPjwvZW50cnk+ CisgICAgICA8ZW50cnk+PHR5cGU+Ym9vbGVhbjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5 PjwvZW50cnk+CisgICAgICA8ZW50cnk+CisgICAgICAgVHJ1ZSwgd2hlbiB0aGUgdmFyaWFibGUg aXMgPHF1b3RlPnRyYW5zYWN0aW9uYWw8L3F1b3RlPi4gSW4gdGhlIGNhc2UKKyAgICAgICBvZiBh IHRyYW5zYWN0aW9uIHJvbGxiYWNrLCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyBhcmUgcmVzZXQg dG8gdGhlCisgICAgICAgdmFsdWUgdGhleSBoYWQgd2hlbiB0aGUgdHJhbnNhY3Rpb24gc3RhcnRl ZC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMKKyAgICAgICA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4u CisgICAgICA8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KICAgICAgICA8c3RydWN0ZmllbGQ+dmFyZW94YWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ Y2hhcjwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IDAwOTM4 NzQzYzBkLi5iNzNmMDMyZGRiYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s CkBAIC0yNiw3ICsyNiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9w c2lzZGl2PgogPHN5bm9wc2lzPgotQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElN TVVUQUJMRSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRFIFsg eyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIHsgVFJBTlNBQ1RJT05BTCB8IFRSQU5TQUNUSU9OIH0g XSBbIElNTVVUQUJMRSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAg IFsgTk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRl ZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9QIHwgT04gVFJBTlNB Q1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgpAQCAt NDcsNiArNDcsMTQgQEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVUQUJM RSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWMKICAgIHNhbWUgYXMgcmVndWxh ciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMuCiAgIDwvcGFyYT4KIAorICA8cGFy YT4KKyAgIFdoZW4gYSBzY2hlbWEgdmFyaWFibGUgaXMgY3JlYXRlZCB3aXRoIGEKKyAgIDxjb21t YW5kPkNSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLCB0aGUg dmFyaWFibGVzCisgICBjb250ZW50IGNoYW5nZXMgYXJlIHRyYW5zYWN0aW9uYWw6IGluIGNhc2Ug b2Ygcm9sbGJhY2ssIHRoZXkgYXJlIHJlc2V0IHRvCisgICB0aGVpciB2YWx1ZSBhdCB0aGUgYmVn aW5uaW5nIG9mIHRoZSB0cmFuc2FjdGlvbiBvciB0aGUgbGF0ZXN0IHN1YnRyYW5zYWN0aW9uLgor ICAgVGhlIHZhcmlhYmxlIGNvbnRlbnQgaXMgb25seSBob2xkIGluIG1lbW9yeSwgYW5kIHRodXMg aXMgbm90IHBlcnNpc3RlbnQuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFNlc3Npb24gdmFy aWFibGVzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4KICAg IGNvbW1hbmQuICBUaGVpciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9jb21t YW5kPiBjb21tYW5kLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJs ZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IGYyNjFlM2ZkNzcw Li43NzFjMjgxNjA0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJs ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtNDIsNiArNDIs NyBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFy TmFtZSwKIAkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMsCiAJCQkJCQkJCQkgYm9vbCBub3Rf bnVsbCwKIAkJCQkJCQkJCSBib29sIGlzX2ltbXV0YWJsZSwKKwkJCQkJCQkJCSBib29sIGlzX3Ry YW5zYWN0LAogCQkJCQkJCQkJIE5vZGUgKnZhckRlZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVY YWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24pOwogCkBAIC01OSw2ICs2MCw3IEBAIGNyZWF0 ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywK IAkJCQlib29sIG5vdF9udWxsLAogCQkJCWJvb2wgaXNfaW1tdXRhYmxlLAorCQkJCWJvb2wgaXNf dHJhbnNhY3QsCiAJCQkJTm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rp b24gdmFyWGFjdEVuZEFjdGlvbikKIHsKQEAgLTEyMyw2ICsxMjUsNyBAQCBjcmVhdGVfdmFyaWFi bGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xs YXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKIAl2YWx1ZXNbQW51 bV9wZ192YXJpYWJsZV92YXJub3RudWxsIC0gMV0gPSBCb29sR2V0RGF0dW0obm90X251bGwpOwog CXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmlzaW1tdXRhYmxlIC0gMV0gPSBCb29sR2V0RGF0 dW0oaXNfaW1tdXRhYmxlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc3RyYW5zYWN0 IC0gMV0gPSBCb29sR2V0RGF0dW0oaXNfdHJhbnNhY3QpOwogCXZhbHVlc1tBbnVtX3BnX3Zhcmlh YmxlX3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9u KTsKIAogCWlmICh2YXJEZWZleHByKQpAQCAtMjY3LDYgKzI3MCw3IEBAIENyZWF0ZVZhcmlhYmxl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJ ICAgc3RtdC0+aWZfbm90X2V4aXN0cywKIAkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKIAkJCQkJ CQkgICBzdG10LT5pc19pbW11dGFibGUsCisJCQkJCQkJICAgc3RtdC0+aXNfdHJhbnNhY3QsCiAJ CQkJCQkJICAgY29va2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA3ZjM0ZjkzYjU0 Mi4uOTc4Yzg0YzliZGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTQ3LDYgKzQ3LDE5IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZVhBY3REcm9wSXRlbQog CVN1YlRyYW5zYWN0aW9uSWQgZGVsZXRpbmdfc3ViaWQ7CiB9IFNWYXJpYWJsZVhBY3REcm9wSXRl bTsKIAorLyoKKyAqIFVzZWQgZm9yIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzLiBIb2xkcyBwcmV2 IHZlcnNpb24uCisgKi8KK3R5cGVkZWYgc3RydWN0IFByZXZWYWx1ZQoreworCURhdHVtCQl2YWx1 ZTsKKwlib29sCQlpc251bGw7CisKKwlTdWJUcmFuc2FjdGlvbklkIG1vZGlmeV9zdWJpZDsKKwor CXN0cnVjdCBQcmV2VmFsdWUgKnByZXZfdmFsdWU7Cit9IFByZXZWYWx1ZTsKKwogLyoKICAqIFRo ZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCdz IHByaXZhdGUgbWVtb3J5CiAgKiBpbiB0aGUgZGVkaWNhdGVkIG1lbW9yeSBjb250ZXh0IFNWYXJp YWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KQEAgLTY4LDYgKzgxLDI1IEBAIHR5 cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAlib29sCQlpc251bGw7CiAJRGF0dW0JCXZhbHVl OwogCisJLyoKKwkgKiBXZSBkb24ndCBuZWVkIHN0YWNrIHZlcnNpb25zIG1vZGlmaWVkIGluIHNh bWUgc3VidHJhbnNhY3Rpb24uCisJICogVXNlZCBieSB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyBv bmx5LiBUaGUgdmFsdWUgb2YgdHJhbnNhY3Rpb25hbAorCSAqIHZhcmlhYmxlIGNhbiBiZSByZXR1 cm5lZCBpbW1lZGlhdGVseSB3aGVuIG1vZGlmeV9zdWJpZCBpcyBzYW1lCisJICogbGlrZSBjdXJy ZW50IHN1YmlkLgorCSAqLworCVN1YlRyYW5zYWN0aW9uSWQgbW9kaWZ5X3N1YmlkOworCisJLyoK KwkgKiBXaGVuIHRoZSBtb2RpZnlfc3ViaWQgaXMgZGlmZmVyZW50IHRoYW4gY3VycmVudCBzdWJp ZCwgdGhlbgorCSAqIHdlIG5lZWQgdG8gcmVjaGVjayB2ZXJzaW9ucyBhbmQgdGhyb3cgdmVyc2lv bnMgcmVsYXRlZCB0bworCSAqIHJldmVydGVkIHRyYW5zYWN0aW9ucy4gV2hlbiBwdXJnZV9zdWJp ZCBpcyBzYW1lIGxpa2UgY3VycmVudCBzdWJpZAorCSAqIHdlIGNhbiByZXR1cm4gdGhlIHZhbHVl IG9mIHRyYW5zYWN0aW9uIHZhcmlhYmxlIHdpdGhvdXQgdGhpcworCSAqIHJlY2hlY2suCisJICov CisJU3ViVHJhbnNhY3Rpb25JZCBwdXJnZV9zdWJpZDsKKworCVByZXZWYWx1ZSAgKnByZXZfdmFs dWU7CisKIAlPaWQJCQl0eXBpZDsKIAlpbnQxNgkJdHlwbGVuOwogCWJvb2wJCXR5cGJ5dmFsOwpA QCAtODYsNiArMTE4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCiAJYm9vbAkJ bm90X251bGw7CiAJYm9vbAkJaXNfaW1tdXRhYmxlOworCWJvb2wJCWlzX3RyYW5zYWN0OwogCiAJ Ym9vbAkJcmVzZXRfYXRfZW94OwogCkBAIC0xMjUsNiArMTU4LDkgQEAgc3RhdGljIGJvb2wgbmVl ZHNfdmFsaWRhdGlvbiA9IGZhbHNlOwogICovCiBzdGF0aWMgYm9vbCBoYXNfc2Vzc2lvbl92YXJp YWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKIAorLyogdHJ1ZSwgd2hlbiB0cmFuc2Fj dGlvbmFsIHZhcmlhYmxlcyB3YXMgbW9kaWZpZWQgKi8KK3N0YXRpYyBib29sIGhhc19tb2RpZmll ZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcyA9IGZhbHNlOworCiAvKgogICogVGhlIGNvbnRlbnQg b2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBpbW1lZGlhdGVseS4g IElmCiAgKiBwb3NzaWJsZSwgd2UgZG8gdGhhdCBhdCB0aGUgZW5kIG9mIHRoZSB0cmFuc2FjdGlv bi4gIEJ1dCB3ZSBjYW5ub3QgZG8gdGhhdApAQCAtMTQwLDYgKzE3Niw3IEBAIHN0YXRpYyBMaXN0 ICp4YWN0X2Ryb3BfaXRlbXMgPSBOSUw7CiAKIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3Nlc3Npb25f dmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7CiBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyX3Nl c3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7CitzdGF0aWMgYm9vbCBwdXJnZV9z ZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyKTsKIAogLyoKICAqIENhbGxiYWNrIGZ1bmN0 aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KQEAgLTI5Miw4ICszMjksMjUg QEAgdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcChPaWQgdmFyaWQpCiAgKiBS ZWxlYXNlIHN0b3JlZCB2YWx1ZSwgZnJlZSBtZW1vcnkKICAqLwogc3RhdGljIHZvaWQKLWZyZWVf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhcikKK2ZyZWVfc2Vzc2lvbl92YXJp YWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCBkZWVwX2ZyZWUpCiB7CisJaWYgKGRlZXBf ZnJlZSkKKwl7CisJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisJ CVByZXZWYWx1ZSAqbmV4dF92YWx1ZTsKKworCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJeworCQkJ aWYgKCFzdmFyLT50eXBieXZhbCkKKwkJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIocHJldl92YWx1 ZS0+dmFsdWUpKTsKKworCQkJbmV4dF92YWx1ZSA9IHByZXZfdmFsdWUtPnByZXZfdmFsdWU7CisJ CQlwZnJlZShwcmV2X3ZhbHVlKTsKKworCQkJcHJldl92YWx1ZSA9IG5leHRfdmFsdWU7CisJCX0K Kwl9CisKIAkvKiBjbGVhbiB0aGUgY3VycmVudCB2YWx1ZSAqLwogCWlmICghc3Zhci0+aXNudWxs KQogCXsKQEAgLTM5MCw3ICs0NDQsNyBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxl cyhib29sIGF0RU9YKQogCQkJewogCQkJCU9pZAkJCXZhcmlkID0gc3Zhci0+dmFyaWQ7CiAKLQkJ CQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCQkJZnJlZV9zZXNzaW9uX3Zh cmlhYmxlX3ZhbHVlKHN2YXIsIHRydWUpOwogCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAm dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKIAkJCQlzdmFyID0gTlVMTDsKIAkJCX0KQEAgLTQy Niw2ICs0ODAsOTQgQEAgcmVtb3ZlX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRfYXRfZW94 KHZvaWQpCiAJaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRfYXRfZW94ID0gZmFsc2U7 CiB9CiAKKy8qCisgKiByZW1vdmUgcHJldiB2YWx1ZXMgYXQgZW94CisgKi8KK3N0YXRpYyB2b2lk CityZW1vdmVfcHJldl92YWx1ZXNfYXRfZW94KGJvb2wgaXNDb21taXQpCit7CisJSEFTSF9TRVFf U1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJ CXJldHVybjsKKworCS8qIGxlYXZlIHF1Y2tseSwgd2hlbiB0aGVyZSBhcmUgbm90IHRoYXQgdmFy aWFibGVzICovCisJaWYgKCFoYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMpCisJ CXJldHVybjsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vzc2lvbnZhcnMpOworCXdoaWxl ICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVzKSkgIT0gTlVMTCkK Kwl7CisJCWlmIChzdmFyLT5pc190cmFuc2FjdCAmJiBzdmFyLT5tb2RpZnlfc3ViaWQgIT0gSW52 YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCXsKKwkJCWlmIChpc0NvbW1pdCkKKwkJCXsKKwkJCQlp ZiAocHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShzdmFyKSkKKwkJCQl7CisJCQkJCVByZXZWYWx1ZSAq cHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisKKwkJCQkJd2hpbGUgKHByZXZfdmFsdWUp CisJCQkJCXsKKwkJCQkJCVByZXZWYWx1ZSAqY3VycmVudF9wdiA9IHByZXZfdmFsdWU7CisKKwkJ CQkJCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCQkJCQlw ZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9wdi0+dmFsdWUpKTsKKworCQkJCQkJcHJldl92 YWx1ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7CisJCQkJCQlwZnJlZShjdXJyZW50X3B2KTsK KwkJCQkJfQorCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQloYXNoX3NlYXJjaChzZXNzaW9u dmFycywgJnN2YXItPnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJCQkJCXN2YXIgPSBOVUxM OworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlQcmV2VmFsdWUgKnByZXZfdmFsdWUg PSBzdmFyLT5wcmV2X3ZhbHVlOworCisJCQkJd2hpbGUgKHByZXZfdmFsdWUpCisJCQkJeworCQkJ CQlQcmV2VmFsdWUgKmN1cnJlbnRfcHYgPSBwcmV2X3ZhbHVlOworCisJCQkJCWlmIChjdXJyZW50 X3B2LT5tb2RpZnlfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCQkJCQlicmVh azsKKworCQkJCQlpZiAoIXN2YXItPnR5cGJ5dmFsICYmICFjdXJyZW50X3B2LT5pc251bGwpCisJ CQkJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9wdi0+dmFsdWUpKTsKKworCQkJCQlw cmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJCQkJcGZyZWUoY3VycmVudF9w dik7CisJCQkJfQorCisJCQkJaWYgKHByZXZfdmFsdWUpCisJCQkJeworCQkJCQlzdmFyLT52YWx1 ZSA9IHByZXZfdmFsdWUtPnZhbHVlOworCQkJCQlzdmFyLT5pc251bGwgPSBwcmV2X3ZhbHVlLT5p c251bGw7CisKKwkJCQkJcGZyZWUocHJldl92YWx1ZSk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7 CisJCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZF LCBOVUxMKTsKKwkJCQkJc3ZhciA9IE5VTEw7CisJCQkJfQorCQkJfQorCisJCQkvKiB3aGVuIHN2 YXIgaXMgc3RpbGwgdmFsaWQgKG5vdCByZW1vdmVkIGZyb20gc2Vzc2lvbnZhcnMgKi8KKwkJCWlm IChzdmFyKQorCQkJeworCQkJCXN2YXItPm1vZGlmeV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2Fj dGlvbklkOworCQkJCXN2YXItPnByZXZfdmFsdWUgPSBOVUxMOworCQkJfQorCQl9CisJfQorCisJ aGFzX21vZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVzID0gZmFsc2U7Cit9CisKIC8qCiAg ICogUGVyZm9ybSBPTiBDT01NSVQgRFJPUCBmb3IgdGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVz LAogICAqIGFuZCByZW1vdmUgYWxsIGRyb3BwZWQgdmFyaWFibGVzIGZyb20gbWVtb3J5LgpAQCAt NDczLDYgKzYxNSw4IEBAIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1p dCkKIAkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModHJ1ZSk7CiAJfQogCisJcmVt b3ZlX3ByZXZfdmFsdWVzX2F0X2VveChpc0NvbW1pdCk7CisKIAkvKgogCSAqIFdlIGhhdmUgdG8g Y2xlYW4geGFjdF9kcm9wX2l0ZW1zLiBBbGwgcmVsYXRlZCB2YXJpYWJsZXMgYXJlIGRyb3BwZWQK IAkgKiBub3csIG9yIGxvc3QgaW5zaWRlIGFib3J0ZWQgdHJhbnNhY3Rpb24uCkBAIC02MTgsNiAr NzYyLDcgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlk LCBib29sIGlzX3dyaXRlKQogCiAJc3Zhci0+bm90X251bGwgPSB2YXJmb3JtLT52YXJub3RudWxs OwogCXN2YXItPmlzX2ltbXV0YWJsZSA9IHZhcmZvcm0tPnZhcmlzaW1tdXRhYmxlOworCXN2YXIt PmlzX3RyYW5zYWN0ID0gdmFyZm9ybS0+dmFyaXN0cmFuc2FjdDsKIAogCXN2YXItPmlzX2RvbWFp biA9IChnZXRfdHlwdHlwZSh2YXJmb3JtLT52YXJ0eXBlKSA9PSBUWVBUWVBFX0RPTUFJTik7CiAJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKQEAgLTY0Myw2ICs3ODgsMTcgQEAgc2V0 dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dy aXRlKQogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7CiAK KwlpZiAoc3Zhci0+aXNfdHJhbnNhY3QpCisJeworCQlzdmFyLT5tb2RpZnlfc3ViaWQgPSBHZXRD dXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCQloYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92 YXJpYWJsZXMgPSB0cnVlOworCX0KKwllbHNlCisJCXN2YXItPm1vZGlmeV9zdWJpZCA9IEludmFs aWRTdWJUcmFuc2FjdGlvbklkOworCisJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBJbnZhbGlkU3ViVHJh bnNhY3Rpb25JZDsKKwlzdmFyLT5wcmV2X3ZhbHVlID0gTlVMTDsKKwogCXN2YXItPmlzX3ZhbGlk ID0gdHJ1ZTsKIAogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJ QUJMRU9JRCwKQEAgLTY3Niw2ICs4MzIsNjkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFy aWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCVJlbGVhc2VTeXNDYWNoZSh0 dXApOwogfQogCisvKgorICogVHJ5IHRvIHJlbW92ZSBhbGwgcHJldmlvdXMgdmVyc2lvbnMgcmVs YXRlZCB0byByZXZlcnRlZCB0cmFuc2FjdGlvbnMuCisgKiBSZXR1cm5zIHRydWUsIHdoZW4gdmFs aWQgdmVyc2lvbiB3YXMgZm91bmQuCisgKi8KK3N0YXRpYyBib29sCitwdXJnZV9zZXNzaW9uX3Zh cmlhYmxlKFNWYXJpYWJsZSBzdmFyKQoreworCVN1YlRyYW5zYWN0aW9uSWQgY3VycmVudF9zdWJp ZDsKKwlQcmV2VmFsdWUJICAgKnByZXZfdmFsdWU7CisJYm9vbAkJCWZvdW5kID0gdHJ1ZTsKKwor CUFzc2VydChzdmFyLT5pc190cmFuc2FjdCk7CisKKwlpZiAoc3Zhci0+bW9kaWZ5X3N1YmlkID09 IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCQlyZXR1cm4gdHJ1ZTsKKworCWN1cnJlbnRfc3Vi aWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCisJaWYgKHN2YXItPm1vZGlmeV9z dWJpZCA9PSBjdXJyZW50X3N1YmlkKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlmIChzdmFyLT5wdXJn ZV9zdWJpZCA9PSBjdXJyZW50X3N1YmlkKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlmIChTdWJUcmFu c2FjdGlvbklzQWN0aXZlKHN2YXItPm1vZGlmeV9zdWJpZCkpCisJeworCQlzdmFyLT5wdXJnZV9z dWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisJCXJldHVybiB0cnVlOworCX0KKworCXByZXZfdmFsdWUg PSBzdmFyLT5wcmV2X3ZhbHVlOworCisJd2hpbGUgKHByZXZfdmFsdWUpCisJeworCQlQcmV2VmFs dWUgKmN1cnJlbnRfcHYgPSBwcmV2X3ZhbHVlOworCisJCWlmIChjdXJyZW50X3B2LT5tb2RpZnlf c3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQgfHwKKwkJCVN1YlRyYW5zYWN0aW9uSXNB Y3RpdmUoY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkKSkKKwkJeworCQkJc3Zhci0+dmFsdWUgPSBj dXJyZW50X3B2LT52YWx1ZTsKKwkJCXN2YXItPmlzbnVsbCA9IGN1cnJlbnRfcHYtPmlzbnVsbDsK KwkJCXN2YXItPm1vZGlmeV9zdWJpZCA9IGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJpZDsKKworCQkJ cHJldl92YWx1ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7CisJCQlwZnJlZShjdXJyZW50X3B2 KTsKKworCQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAoIXN2YXItPnR5 cGJ5dmFsICYmICFjdXJyZW50X3B2LT5pc251bGwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIo Y3VycmVudF9wdi0+dmFsdWUpKTsKKworCQlwcmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92 YWx1ZTsKKwkJcGZyZWUoY3VycmVudF9wdik7CisJfQorCisJc3Zhci0+cHJldl92YWx1ZSA9IHBy ZXZfdmFsdWU7CisJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBjdXJyZW50X3N1YmlkOworCisJcmV0dXJu IGZvdW5kOworfQorCiAvKgogICogQXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9uIHZh cmlhYmxlLiAgSXQgaXMgY29waWVkIHRvCiAgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlmIG5l Y2Vzc2FyeS4KQEAgLTY4OCw2ICs5MDcsMTAgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1Zhcmlh YmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAlEYXR1bQkJbmV3dmFsOwogCVNW YXJpYWJsZURhdGEgbG9jc3ZhciwKIAkJCSAgICpfc3ZhcjsKKwlTdWJUcmFuc2FjdGlvbklkIGN1 cnJlbnRfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCVN1YlRyYW5zYWN0 aW9uSWQgcHJldl9wdXJnZV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCWJvb2wJ CXNhdmVfcHJldl92YWx1ZTsKKwlQcmV2VmFsdWUgICpwcmV2X3ZhbHVlOwogCiAJQXNzZXJ0KHN2 YXIpOwogCUFzc2VydCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CkBAIC03MjMsNiAr OTQ2LDIxIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1 ZSwgYm9vbCBpc251bGwpCiAJZWxzZQogCQlfc3ZhciA9IHN2YXI7CiAKKwlpZiAoX3N2YXItPmlz X3RyYW5zYWN0ICYmIF9zdmFyLT5jcmVhdGVfbHNuID09IHN2YXItPmNyZWF0ZV9sc24pCisJewor CQlBc3NlcnQoc3Zhci0+dHlwaWQgPT0gX3N2YXItPnR5cGlkKTsKKwkJQXNzZXJ0KHN2YXItPnR5 cGJ5dmFsID09IF9zdmFyLT50eXBieXZhbCk7CisJCUFzc2VydChzdmFyLT50eXBsZW4gPT0gX3N2 YXItPnR5cGxlbik7CisKKwkJc2F2ZV9wcmV2X3ZhbHVlID0gc3Zhci0+bW9kaWZ5X3N1YmlkICE9 IGN1cnJlbnRfc3ViaWQ7CisJCXByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVlOworCX0KKwll bHNlCisJeworCQlzYXZlX3ByZXZfdmFsdWUgPSBmYWxzZTsKKwkJcHJldl92YWx1ZSA9IE5VTEw7 CisJfQorCiAJaWYgKCFpc251bGwpCiAJewogCQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1lbW9y eUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKQEAgLTczNCw3ICs5NzIs MzcgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBi b29sIGlzbnVsbCkKIAllbHNlCiAJCW5ld3ZhbCA9IHZhbHVlOwogCi0JZnJlZV9zZXNzaW9uX3Zh cmlhYmxlX3ZhbHVlKHN2YXIpOworCWlmIChzYXZlX3ByZXZfdmFsdWUpCisJeworCQl2b2xhdGls ZSBQcmV2VmFsdWUgKm5ld19wcmV2X3ZhbHVlOworCisJCVBHX1RSWSgpOworCQl7CisJCQluZXdf cHJldl92YWx1ZSA9IE1lbW9yeUNvbnRleHRBbGxvYyhTVmFyaWFibGVNZW1vcnlDb250ZXh0LAor CQkJCQkJCQkJCQkJc2l6ZW9mKFByZXZWYWx1ZSkpOworCQl9CisJCVBHX0NBVENIKCk7CisJCXsK KwkJCS8qIHJlbGVhc2UgbWVtIGZyb20gcGVyc2lzdGVudCBjb250ZW50ICovCisJCQlpZiAobmV3 dmFsICE9IHZhbHVlKQorCQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihuZXd2YWwpKTsKKwkJCVBH X1JFX1RIUk9XKCk7CisJCX0KKwkJUEdfRU5EX1RSWSgpOworCisJCW5ld19wcmV2X3ZhbHVlLT52 YWx1ZSA9IHN2YXItPnZhbHVlOworCQluZXdfcHJldl92YWx1ZS0+aXNudWxsID0gc3Zhci0+aXNu dWxsOworCQluZXdfcHJldl92YWx1ZS0+bW9kaWZ5X3N1YmlkID0gc3Zhci0+bW9kaWZ5X3N1Ymlk OworCQluZXdfcHJldl92YWx1ZS0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CisKKwkJcHJldl92 YWx1ZSA9IChQcmV2VmFsdWUgKikgbmV3X3ByZXZfdmFsdWU7CisJCXByZXZfcHVyZ2Vfc3ViaWQg PSBzdmFyLT5wdXJnZV9zdWJpZDsKKworCQloYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJp YWJsZXMgPSB0cnVlOworCisJfQorCWVsc2UKKwkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVl KHN2YXIsIHByZXZfdmFsdWUgPT0gTlVMTCk7CiAKIAllbG9nKERFQlVHMSwgInNlc3Npb24gdmFy aWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBuZXcgdmFsdWUiLAogCQkgZ2V0X25hbWVzcGFj ZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLApAQCAt NzQ3LDYgKzEwMTUsOSBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0 dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCiAJc3Zhci0+dmFsdWUgPSBuZXd2YWw7CiAJc3Zhci0+ aXNudWxsID0gaXNudWxsOworCXN2YXItPm1vZGlmeV9zdWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisJ c3Zhci0+cHVyZ2Vfc3ViaWQgPSBwcmV2X3B1cmdlX3N1YmlkOworCXN2YXItPnByZXZfdmFsdWUg PSBwcmV2X3ZhbHVlOwogCiAJLyogZG9uJ3QgYWxsb3cgbW9yZSBjaGFuZ2VzIG9mIHZhbHVlIHdo ZW4gdmFyaWFibGUgaXMgSU1NVVRBQkxFICovCiAJaWYgKHN2YXItPmlzX2ltbXV0YWJsZSkKQEAg LTg0OCw2ICsxMTE5LDggQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCWVsc2UK IAkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKIAorcmVpbml0OgorCiAJLyoKIAkgKiBGb3JjZSBz ZXR1cCBmb3Igbm90IHlldCBpbml0aWFsaXplZCB2YXJpYWJsZXMgb3IgdmFyaWFibGVzIHRoYXQg Y2Fubm90CiAJICogYmUgdmFsaWRhdGVkLgpAQCAtODgwLDYgKzExNTMsMjggQEAgZ2V0X3Nlc3Np b25fdmFyaWFibGUoT2lkIHZhcmlkKQogCQkJIHZhcmlkKTsKIAl9CiAKKwkvKgorCSAqIFRyYW5z YWN0aW9uYWwgdmFyaWFibGVzIHNob3VsZCBiZSBwdXJnZWQgYmVmb3JlIChyZW1vdmUKKwkgKiB2 ZXJzaW9ucyBjcmVhdGVkIGJ5IHBvc3NpYmx5IHJldmVydGVkIHN1YnRyYW5zYWN0aW9ucykuCisJ ICovCisJaWYgKHN2YXItPmlzX3RyYW5zYWN0ICYmCisJCXN2YXItPm1vZGlmeV9zdWJpZCAhPSBH ZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpICYmCisJCXN2YXItPm1vZGlmeV9zdWJpZCAhPSBJ bnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwl7CisJCWlmICghcHVyZ2Vfc2Vzc2lvbl92YXJpYWJs ZShzdmFyKSkKKwkJeworCQkJLyogZm9yY2UgcmVpbml0ICovCisJCQlzdmFyLT5pc192YWxpZCA9 IGZhbHNlOworCisJCQkvKgorCQkJICogSW4gbmV4dCBpdGVyYXRpb24gbW9kaWZ5X3N1YmlkIHNo b3VsZCBiZQorCQkJICogSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQgb3IgY3VycmVudCBzdWJpZCwK KwkJCSAqIHNvIHRoZXJlIGlzIG5vdCByaXNrIG9mIGluZmluaXR5IGN5Y2xlLgorCQkJICovCisJ CQlnb3RvIHJlaW5pdDsKKwkJfQorCX0KKwogCS8qIGVuc3VyZSB0aGUgcmV0dXJuZWQgZGF0YSBp cyBzdGlsbCBvZiB0aGUgY29ycmVjdCBkb21haW4gKi8KIAlpZiAoc3Zhci0+aXNfZG9tYWluKQog CXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CmluZGV4IGJjOGUyNWIxOTMzLi5hZjlkNjQwYzBlMiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CkBAIC02NjgsNyArNjY4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0 KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlqc29uX29i amVjdF9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5X2NvbnN0cnVj dG9yX251bGxfY2xhdXNlX29wdAogCi0ldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwgT3B0SW1t dXRhYmxlCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwgT3B0SW1tdXRhYmxlIE9wdFRyYW5z YWN0aW9uYWwKIAogLyoKICAqIE5vbi1rZXl3b3JkIHRva2VuIHR5cGVzLiAgVGhlc2UgYXJlIGhh cmQtd2lyZWQgaW50byB0aGUgImZsZXgiIGxleGVyLgpAQCAtNzczLDcgKzc3Myw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAJU1VCU0NSSVBUSU9OIFNVQlNUUklORyBTVVBQT1JUIFNZTU1F VFJJQyBTWVNJRCBTWVNURU1fUCBTWVNURU1fVVNFUgogCiAJVEFCTEUgVEFCTEVTIFRBQkxFU0FN UExFIFRBQkxFU1BBQ0UgVEFSR0VUIFRFTVAgVEVNUExBVEUgVEVNUE9SQVJZIFRFWFRfUCBUSEVO Ci0JVElFUyBUSU1FIFRJTUVTVEFNUCBUTyBUUkFJTElORyBUUkFOU0FDVElPTiBUUkFOU0ZPUk0K KwlUSUVTIFRJTUUgVElNRVNUQU1QIFRPIFRSQUlMSU5HIFRSQU5TQUNUSU9OIFRSQU5TQUNUSU9O QUwgVFJBTlNGT1JNCiAJVFJFQVQgVFJJR0dFUiBUUklNIFRSVUVfUAogCVRSVU5DQVRFIFRSVVNU RUQgVFlQRV9QIFRZUEVTX1AKIApAQCAtNTI0MCwzMSArNTI0MCwzMyBAQCBjcmVhdGVfZXh0ZW5z aW9uX29wdF9pdGVtOgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFy U3RtdDoKLQkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vz c2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJQ1JFQVRFIE9wdFRlbXAgT3B0 VHJhbnNhY3Rpb25hbCBPcHRJbW11dGFibGUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2Fz IFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZF eHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10 ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkNS0+cmVscGVyc2lz dGVuY2UgPSAkMjsKLQkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7Ci0JCQkJCW4tPnZhcmlhYmxl ID0gJDU7Ci0JCQkJCW4tPnR5cGVOYW1lID0gJDc7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29s bGF0ZUNsYXVzZSAqKSAkODsKLQkJCQkJbi0+bm90X251bGwgPSAkOTsKLQkJCQkJbi0+ZGVmZXhw ciA9ICQxMDsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMTsKKwkJCQkJJDYtPnJlbHBlcnNp c3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQ0OworCQkJCQluLT5pc190cmFu c2FjdCA9ICQzOworCQkJCQluLT52YXJpYWJsZSA9ICQ2OworCQkJCQluLT50eXBlTmFtZSA9ICQ4 OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJCW4tPm5v dF9udWxsID0gJDEwOworCQkJCQluLT5kZWZleHByID0gJDExOworCQkJCQluLT5YYWN0RW5kQWN0 aW9uID0gJDEyOwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJM RSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xs YXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25P cHRpb24KKwkJCXwgQ1JFQVRFIE9wdFRlbXAgT3B0VHJhbnNhY3Rpb25hbCBPcHRJbW11dGFibGUg VkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBv cHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5k QWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VO b2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKLQkJCQkJJDgtPnJlbHBlcnNpc3RlbmNlID0gJDI7 Ci0JCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQzOwotCQkJCQluLT52YXJpYWJsZSA9ICQ4OwotCQkJ CQluLT50eXBlTmFtZSA9ICQxMDsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNl ICopICQxMTsKLQkJCQkJbi0+bm90X251bGwgPSAkMTI7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkMTM7 Ci0JCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTQ7CisJCQkJCSQ5LT5yZWxwZXJzaXN0ZW5jZSA9 ICQyOworCQkJCQluLT5pc19pbW11dGFibGUgPSAkNDsKKwkJCQkJbi0+aXNfdHJhbnNhY3QgPSAk MzsKKwkJCQkJbi0+dmFyaWFibGUgPSAkOTsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkMTE7CisJCQkJ CW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkMTI7CisJCQkJCW4tPm5vdF9udWxs ID0gJDEzOworCQkJCQluLT5kZWZleHByID0gJDE0OworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0g JDE1OwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBu OwogCQkJCX0KQEAgLTUyOTIsNiArNTI5NCwxMiBAQCBPcHRJbW11dGFibGU6IElNTVVUQUJMRQkJ CQkJCQkJeyAkJCA9IHRydWU7IH0KIAkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNl OyB9CiAJCTsKIAorT3B0VHJhbnNhY3Rpb25hbDoKKwkJCVRSQU5TQUNUSU9OCQkJCQkJCQl7ICQk ID0gdHJ1ZTsgfQorCQkJfCBUUkFOU0FDVElPTkFMCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8 IC8qIEVNUFRZICovCQkJCQkJCXsgJCQgPSBmYWxzZTsgfQorCQk7CisKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBuYW1lIFVQREFURSBbIFRPIHZlcnNpb24g XQpAQCAtMTgwODQsNiArMTgwOTIsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFRFWFRf UAogCQkJfCBUSUVTCiAJCQl8IFRSQU5TQUNUSU9OCisJCQl8IFRSQU5TQUNUSU9OQUwKIAkJCXwg VFJBTlNGT1JNCiAJCQl8IFRSSUdHRVIKIAkJCXwgVFJVTkNBVEUKQEAgLTE4NzMyLDYgKzE4NzQx LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBUSU1FU1RBTVAKIAkJCXwgVFJBSUxJTkcK IAkJCXwgVFJBTlNBQ1RJT04KKwkJCXwgVFJBTlNBQ1RJT05BTAogCQkJfCBUUkFOU0ZPUk0KIAkJ CXwgVFJFQVQKIAkJCXwgVFJJR0dFUgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggNTlmNDEwM2NhNGYuLjc2MmNk MDIwZWE5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0MzksNiArNTQzOSw3IEBAIGdldFZhcmlhYmxlcyhB cmNoaXZlICpmb3V0KQogCWludAkJCWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlfdmFybm90bnVs bDsKIAlpbnQJCQlpX3ZhcmlzaW1tdXRhYmxlOworCWludAkJCWlfdmFyaXN0cmFuc2FjdDsKIAlp bnQJCQlpX3ZhcmFjbDsKIAlpbnQJCQlpX2FjbGRlZmF1bHQ7CiAJaW50CQkJaSwKQEAgLTU0NjMs NiArNTQ2NCw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQkJCQkgICIgICAgICAg RU5EIEFTIHZhcmNvbGxhdGlvbixcbiIKIAkJCQkJICAiICAgICAgIHYudmFybm90bnVsbCxcbiIK IAkJCQkJICAiICAgICAgIHYudmFyaXNpbW11dGFibGUsXG4iCisJCQkJCSAgIiAgICAgICB2LnZh cmlzdHJhbnNhY3QsXG4iCiAJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYu dmFyZGVmZXhwciwwKSBhcyB2YXJkZWZleHByLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJvd25l ciwgdi52YXJhY2wsXG4iCiAJCQkJCSAgIiAgICAgICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25l cikgQVMgYWNsZGVmYXVsdFxuIgpAQCAtNTQ4NSw2ICs1NDg3LDcgQEAgZ2V0VmFyaWFibGVzKEFy Y2hpdmUgKmZvdXQpCiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0 aW9uIik7CiAJaV92YXJub3RudWxsID0gUFFmbnVtYmVyKHJlcywgInZhcm5vdG51bGwiKTsKIAlp X3ZhcmlzaW1tdXRhYmxlID0gUFFmbnVtYmVyKHJlcywgInZhcmlzaW1tdXRhYmxlIik7CisJaV92 YXJpc3RyYW5zYWN0ID0gUFFmbnVtYmVyKHJlcywgInZhcmlzdHJhbnNhY3QiKTsKIAogCWlfdmFy b3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKIAlpX3ZhcmFjbCA9IFBRZm51bWJl cihyZXMsICJ2YXJhY2wiKTsKQEAgLTU1MTMsNiArNTUxNiw3IEBAIGdldFZhcmlhYmxlcyhBcmNo aXZlICpmb3V0KQogCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQUWdldHZhbHVl KHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKIAkJdmFyaW5mb1tpXS52YXJub3RudWxsID0gKihQ UWdldHZhbHVlKHJlcywgaSwgaV92YXJub3RudWxsKSkgPT0gJ3QnOwogCQl2YXJpbmZvW2ldLnZh cmlzaW1tdXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJpc2ltbXV0YWJsZSkpID09 ICd0JzsKKwkJdmFyaW5mb1tpXS52YXJpc3RyYW5zYWN0ID0gKihQUWdldHZhbHVlKHJlcywgaSwg aV92YXJpc3RyYW5zYWN0KSkgPT0gJ3QnOwogCiAJCXZhcmluZm9baV0uZGFjbC5hY2wgPSBwZ19z dHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyYWNsKSk7CiAJCXZhcmluZm9baV0uZGFjbC5h Y2xkZWZhdWx0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2FjbGRlZmF1bHQpKTsK QEAgLTU1NjAsNiArNTU2NCw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBW YXJpYWJsZUluZm8gKnZhcmluZm8pCiAJY29uc3QgY2hhciAqdmFyZGVmZXhwcjsKIAljb25zdCBj aGFyICp2YXJ4YWN0ZW5kYWN0aW9uOwogCWNvbnN0IGNoYXIgKnZhcmlzaW1tdXRhYmxlOworCWNv bnN0IGNoYXIgKnZhcmlzdHJhbnNhY3Q7CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCWJvb2wJCXZh cm5vdG51bGw7CiAKQEAgLTU1NzcsMTIgKzU1ODIsMTMgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAl2YXJjb2xsYXRpb24gPSB2YXJp bmZvLT52YXJjb2xsYXRpb247CiAJdmFybm90bnVsbCA9IHZhcmluZm8tPnZhcm5vdG51bGw7CiAJ dmFyaXNpbW11dGFibGUgPSB2YXJpbmZvLT52YXJpc2ltbXV0YWJsZSA/ICJJTU1VVEFCTEUgIiA6 ICIiOworCXZhcmlzdHJhbnNhY3QgPSB2YXJpbmZvLT52YXJpc3RyYW5zYWN0ID8gIlRSQU5TQUNU SU9OQUwgIiA6ICIiOwogCiAJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFCTEUg JXM7XG4iLAogCQkJCQkgIHF1YWx2YXJuYW1lKTsKIAotCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiQ1JFQVRFICVzVkFSSUFCTEUgJXMgQVMgJXMiLAotCQkJCQkgIHZhcmlzaW1tdXRhYmxlLCBx dWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVB VEUgJXMlc1ZBUklBQkxFICVzIEFTICVzIiwKKwkJCQkJICB2YXJpc3RyYW5zYWN0LCB2YXJpc2lt bXV0YWJsZSwgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOwogCiAJaWYgKE9pZElzVmFsaWQodmFy Y29sbGF0aW9uKSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCBmNzkyMWY5NDJkMC4uMzEwNzAxZjA5ZTEg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaApAQCAtNzE5LDYgKzcxOSw3IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJs ZUluZm8KIAljb25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1wdHkg c3RyaW5nICovCiAJYm9vbAkJdmFybm90bnVsbDsKIAlib29sCQl2YXJpc2ltbXV0YWJsZTsKKwli b29sCQl2YXJpc3RyYW5zYWN0OwogfSBWYXJpYWJsZUluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCmluZGV4IDQ3Y2I1OTM1NmUwLi5iMzliZGRkM2U0MCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKQEAgLTQwNzcsNiArNDA3Nyw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJ fSwKIAorCSdDUkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7 CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29t bWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRF IFRSQU5TQUNUSU9OQUwgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOCBBUyBpbnRlZ2VyJywK KwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFRSQU5TQUNUSU9OQUwgVkFSSUFCTEUgZHVt cF90ZXN0LnZhcmlhYmxlOCBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxs X3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9 PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+ IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NS RUFURSBUUkFOU0FDVElPTkFMIElNTVVUQUJMRSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7 CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29t bWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRF IFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTkgQVMg aW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBUUkFOU0FDVElPTkFMIElN TVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU5IEFTIGludGVnZXI7XEUveG0sCisJ CWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJ CQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRl X2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAx LAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9v cmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3Rf dmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwppbmRleCBjYzY5ZjA3ZjFmOS4uODg2MjUzOWQ3NmUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01 MjA2LDcgKzUyMDYsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wg dmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmlu dFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0 ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0 cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYg KHBzZXQuc3ZlcnNpb24gPCAxODAwMDApCiAJewpAQCAtNTIyOSw2ICs1MjI5LDcgQEAgbGlzdFZh cmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdf Y2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgogCQkJCQkg ICIgIE5PVCB2LnZhcm5vdG51bGwgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIE5PVCB2LnZhcmlz aW1tdXRhYmxlIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICB2LnZhcmlzdHJhbnNhY3QgYXMgXCIl c1wiLFxuIgogCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLCAw KSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIKIAkJ CQkJICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgpAQCAtNTI0MSw2ICs1 MjQyLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2Up CiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTnVs bGFibGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk11dGFibGUiKSwKKwkJCQkJICBnZXR0ZXh0 X25vb3AoIlRyYW5zYWN0aW9uYWwiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwK IAkJCQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCmluZGV4IGI2NTNkZGExZmU4Li5lOTU1NTIyZDJjYiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYwpAQCAtMTMwNSw2ICsxMzA1LDggQEAgc3RhdGljIGNvbnN0IHBnc3FsX3Ro aW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJCQkJICogVEFC TEUgLi4uICovCiAJeyJURVhUIFNFQVJDSCIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCXsiVFJBTlNG T1JNIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fQUxURVJ9LAorCXsiVFJBTlNB Q1RJT05BTCIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1AgfCBUSElOR19O T19BTFRFUn0sIC8qIGZvciBDUkVBVEUgVFJBTlNBQ1RJT05BTAorCQkJCQkJCQkJCQkJCQkJCQkJ CQkqIFZBUklBQkxFIC4uLiAqLwogCXsiVFJJR0dFUiIsICJTRUxFQ1QgdGduYW1lIEZST00gcGdf Y2F0YWxvZy5wZ190cmlnZ2VyIFdIRVJFIHRnbmFtZSBMSUtFICclcycgQU5EIE5PVCB0Z2lzaW50 ZXJuYWwifSwKIAl7IlRZUEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5 cGVzfSwKIAl7IlVOSVFVRSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1Ag fCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgVU5JUVVFCkBAIC0zOTQ3LDggKzM5NDks MTEgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJfQogLyogQ1JFQVRF IFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFp bE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMg Ki8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiVFJBTlNBQ1RJT058VFJBTlNBQ1RJT05B TCIpKQorCQlDT01QTEVURV9XSVRIKCJJTU1VVEFCTEUiLCAiVkFSSUFCTEUiKTsKIAllbHNlIGlm IChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CiAJCQkgVGFp bE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkg VGFpbE1hdGNoZXMoIlRSQU5TQUNUSU9OfFRSQU5TQUNUSU9OQUwiLCAiVkFSSUFCTEUiLCBNYXRj aEFueSkgfHwKIAkJCSBUYWlsTWF0Y2hlcygiSU1NVVRBQkxFIiwgIlZBUklBQkxFIiwgTWF0Y2hB bnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJ QUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCA2 OGJjNDlhMGUyNy4uMWRjNDRlZGY2ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAg LTYxLDYgKzYxLDkgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25J ZCkKIAkvKiBkb24ndCBhbGxvdyBjaGFuZ2VzICovCiAJYm9vbAkJdmFyaXNpbW11dGFibGUgQktJ X0RFRkFVTFQoZik7CiAKKwkvKiBzdXBwb3J0cyB0cmFuc2FjdGlvbnMgKi8KKwlib29sCQl2YXJp c3RyYW5zYWN0IEJLSV9ERUZBVUxUKGYpOworCiAJLyogYWN0aW9uIG9uIHRyYW5zYWN0aW9uIGVu ZCAqLwogCWNoYXIJCXZhcnhhY3RlbmRhY3Rpb24gQktJX0RFRkFVTFQobik7CiAKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaAppbmRleCBiZjgyMDgyOGRkOS4uYTQzNzJmMTg0ZGYgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKQEAgLTM0ODEsNiArMzQ4MSw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Np b25WYXJTdG10CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJl YWR5IGV4aXN0cyAqLwogCWJvb2wJCW5vdF9udWxsOwkJLyogZGlzYWxsb3cgbnVsbHMgKi8KIAli b29sCQlpc19pbW11dGFibGU7CS8qIGRvbid0IGFsbG93IGNoYW5nZXMgKi8KKwlib29sCQlpc190 cmFuc2FjdDsJLyogc3VwcG9ydHMgdHJhbnNhY3Rpb25zICovCiAJTm9kZQkgICAqZGVmZXhwcjsJ CS8qIGRlZmF1bHQgZXhwcmVzc2lvbiAqLwogCWNoYXIJCVhhY3RFbmRBY3Rpb247CS8qIG9uIHRy YW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmgKaW5kZXggYWVmZTUxZjMzNWIuLjEyNWViODE5Yjc2IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBA IC00NTUsNiArNDU1LDcgQEAgUEdfS0VZV09SRCgidGltZXN0YW1wIiwgVElNRVNUQU1QLCBDT0xf TkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidG8iLCBUTywgUkVTRVJWRURf S0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmFpbGluZyIsIFRSQUlMSU5HLCBSRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJhbnNhY3Rpb24iLCBUUkFO U0FDVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgidHJh bnNhY3Rpb25hbCIsIFRSQU5TQUNUSU9OQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInRyYW5zZm9ybSIsIFRSQU5TRk9STSwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJlYXQiLCBUUkVBVCwgQ09MX05BTUVfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyaWdnZXIiLCBUUklHR0VSLCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCBl MTYzNWY2ODZjMi4uZGE5ZjRhNzAzMGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApA QCAtNTkzNSwyMCArNTkzNSwyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy OwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENv bGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBE ZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBE ZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAg VHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFi bGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg cHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgICAgfCAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgx IHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVO VCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1h IHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAg ICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAg ICAgfCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBw dWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJs ZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBO YW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAg ICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAg ICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5 aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAg ICAgICB8IGYgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29t ZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jl c3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBE Uk9QIFZBUklBQkxFIHZhcjE7CkBAIC02NDE2LDkgKzY0MTYsOSBAQCBMaXN0IG9mIHNjaGVtYXMK ICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwg VHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0 aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVs dCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY1OTEsOSArNjU5MSw5 IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBU eXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwg VHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRp b24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBi dXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25z LgpAQCAtNjczMCw5ICs2NzMwLDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgw IHJvd3MpCiAKIFxkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFi bGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxh YmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0t LS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hl bWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxl IHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCist LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90 dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggNWE2NmZjOWZmYWIuLjNlNmI3MzY4NGZkIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApA QCAtNDUsMTEgKzQ1LDExIEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBD UkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CiBTRVQgUk9MRSBUTyBERUZBVUxU OwogXGRWKyBzdmFydGVzdC52YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKLSAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAg ICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAg ICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFydGVz dCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg fCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKLSAg ICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIg fCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz CisgIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxl Z2VzICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLSstLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVn cmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgICAg fCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCisgICAgICAgICAgfCAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAog KDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CkBAIC0xNzYzLDMgKzE3NjMs MTAzIEBAIFNFTEVDVCB2YXIxOwogTEVUIHZhcjEgPSAzMDsKIEVSUk9SOiAgc2Vzc2lvbiB2YXJp YWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQogRFJPUCBWQVJJQUJMRSB2 YXIxOworLS0gdGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRSQU5TQUNUSU9O IFZBUklBQkxFIHR2IEFTIGludCBERUZBVUxUIDA7CitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwOwor ICBTRUxFQ1QgdHY7CisgdHYgIAorLS0tLS0KKyAxMDAKKygxIHJvdykKKworUk9MTEJBQ0s7CitT RUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDAKKygxIHJvdykKKworTEVUIHR2ID0gMTAwOworQkVH SU47CisgIExFVCB0diA9IDEwMDA7CitDT01NSVQ7CitTRUxFQ1QgdHY7CisgIHR2ICAKKy0tLS0t LQorIDEwMDAKKygxIHJvdykKKworQkVHSU47CisgIExFVCB0diA9IDA7CisgIFNFTEVDVCB0djsK KyB0diAKKy0tLS0KKyAgMAorKDEgcm93KQorCitST0xMQkFDSzsKK1NFTEVDVCB0djsKKyAgdHYg IAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCistLSB0ZXN0IHN1YnRyYW5zYWN0aW9ucworQkVH SU47CisgIExFVCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9J TlQgeDI7CisgIExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworIHR2 IAorLS0tLQorICAyCisoMSByb3cpCisKKyAgTEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsK KyAgU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAxCisoMSByb3cpCisKK1JPTExCQUNLOworU0VM RUNUIHR2OworICB0diAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKK0JFR0lOOworICBMRVQg dHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBPSU5UIHgyOworICBM RVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAg MgorKDEgcm93KQorCisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0 djsKKyB0diAKKy0tLS0KKyAgMQorKDEgcm93KQorCitDT01NSVQ7CitTRUxFQ1QgdHY7CisgdHYg CistLS0tCisgIDEKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB0djsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBmY2Q3ODNlOTY2Yy4uNjhmYzBjZGU0 NGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEy MDgsMyArMTIwOCw2MSBAQCBTRUxFQ1QgdmFyMTsKIExFVCB2YXIxID0gMzA7CiAKIERST1AgVkFS SUFCTEUgdmFyMTsKKworLS0gdGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRS QU5TQUNUSU9OIFZBUklBQkxFIHR2IEFTIGludCBERUZBVUxUIDA7CisKK0JFR0lOOworICBMRVQg dHYgPSAxMDA7CisgIFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0xFVCB0 diA9IDEwMDsKK0JFR0lOOworICBMRVQgdHYgPSAxMDAwOworQ09NTUlUOworCitTRUxFQ1QgdHY7 CisKK0JFR0lOOworICBMRVQgdHYgPSAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VM RUNUIHR2OworCistLSB0ZXN0IHN1YnRyYW5zYWN0aW9ucworCitCRUdJTjsKKyAgTEVUIHR2ID0g MTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2 ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7CisgIExFVCB0diA9IDEwOworUk9M TEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0JF R0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBP SU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyAg TEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworQ09NTUlUOworCitT RUxFQ1QgdHY7CisKK0RST1AgVkFSSUFCTEUgdHY7Ci0tIAoyLjQ3LjAKCg== --=-CV9YBFLMVc4+roJb8013 Content-Disposition: attachment; filename="v20241113-0020-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v20241113-0020-pg_restore-A-variable.patch"; charset="UTF-8" RnJvbSBhZmFjYTUxODE3YTk3NGNjMjQ4MTQ2NmJlMDk1ZGU3ODUzNDlkNDhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjEgSnVsIDIwMjQgMTc6MDQ6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIHYy MDI0MTExMyAyMC8yMF0gcGdfcmVzdG9yZSAtQSwgLS12YXJpYWJsZQoKcG9zc2liaWxpdHkgdG8g cmVzdG9yZSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBuYW1lCi0tLQogZG9jL3NyYy9z Z21sL3JlZi9wZ19yZXN0b3JlLnNnbWwgfCAxMSArKysrKysrKysrKwogc3JjL2Jpbi9wZ19kdW1w L3BnX3Jlc3RvcmUuYyAgICAgfCAgOSArKysrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv cGdfcmVzdG9yZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3JlLnNnbWwKaW5kZXgg YjhiMjdlMTcxOWUuLjdhM2E0ZWFiZTI1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3Bn X3Jlc3RvcmUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAt MTA2LDYgKzEwNiwxNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8 dGVybT48b3B0aW9uPi1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3Zh cmlhYmxlPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9u Pi0tdmFyaWFibGU9PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFi bGU8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgUmVzdG9yZSBhIG5hbWVkIHNlc3Npb24gdmFyaWFibGUgb25seS4g IE11bHRpcGxlIHNlc3Npb24gdmFyaWFibGVzIG1heQorICAgICAgICBiZSBzcGVjaWZpZWQgd2l0 aCBtdWx0aXBsZSA8b3B0aW9uPi1BPC9vcHRpb24+IHN3aXRjaGVzLgorICAgICAgIDwvcGFyYT4K KyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0 ZW50cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi1jPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRl cm0+PG9wdGlvbj4tLWNsZWFuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL3BnX3Jlc3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXgg ZjJjMTAyMGQwNTMuLmY5MTY3MzZkNzYxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdf cmVzdG9yZS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTEwNCw2ICsx MDQsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJ0cmlnZ2VyIiwgMSwgTlVM TCwgJ1QnfSwKIAkJeyJ1c2UtbGlzdCIsIDEsIE5VTEwsICdMJ30sCiAJCXsidXNlcm5hbWUiLCAx LCBOVUxMLCAnVSd9LAorCQl7InZhcmlhYmxlIiwgMSwgTlVMTCwgJ0EnfSwKIAkJeyJ2ZXJib3Nl IiwgMCwgTlVMTCwgJ3YnfSwKIAkJeyJzaW5nbGUtdHJhbnNhY3Rpb24iLCAwLCBOVUxMLCAnMSd9 LAogCkBAIC0xNTQsNyArMTU1LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCX0K IAl9CiAKLQl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWNDZDplZjpGOmg6 STpqOmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2d1d4MSIsCisJd2hpbGUgKChjID0gZ2V0b3B0X2xv bmcoYXJnYywgYXJndiwgIkE6YWNDZDplZjpGOmg6STpqOmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2 d1d4MSIsCiAJCQkJCQkJY21kb3B0cywgTlVMTCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChjKQpA QCAtMTYyLDYgKzE2MywxMSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCWNhc2Ug J2EnOgkJCS8qIER1bXAgZGF0YSBvbmx5ICovCiAJCQkJb3B0cy0+ZGF0YU9ubHkgPSAxOwogCQkJ CWJyZWFrOworCQkJY2FzZSAnQSc6CQkJLyogdkFyaWFibGUgKi8KKwkJCQlvcHRzLT5zZWxUeXBl cyA9IDE7CisJCQkJb3B0cy0+c2VsVmFyaWFibGUgPSAxOworCQkJCXNpbXBsZV9zdHJpbmdfbGlz dF9hcHBlbmQoJm9wdHMtPnZhcmlhYmxlTmFtZXMsIG9wdGFyZyk7CisJCQkJYnJlYWs7CiAJCQlj YXNlICdjJzoJCQkvKiBjbGVhbiAoaS5lLiwgZHJvcCkgc2NoZW1hIHByaW9yIHRvIGNyZWF0ZSAq LwogCQkJCW9wdHMtPmRyb3BTY2hlbWEgPSAxOwogCQkJCWJyZWFrOwpAQCAtNDYyLDYgKzQ2OCw3 IEBAIHVzYWdlKGNvbnN0IGNoYXIgKnByb2duYW1lKQogCiAJcHJpbnRmKF8oIlxuT3B0aW9ucyBj b250cm9sbGluZyB0aGUgcmVzdG9yZTpcbiIpKTsKIAlwcmludGYoXygiICAtYSwgLS1kYXRhLW9u bHkgICAgICAgICAgICAgIHJlc3RvcmUgb25seSB0aGUgZGF0YSwgbm8gc2NoZW1hXG4iKSk7CisJ cHJpbnRmKF8oIiAgLUEsIC0tdmFyaWFibGU9TkFNRSAgICAgICAgICByZXN0b3JlIG5hbWVkIHNl c3Npb24gdmFyaWFibGVcbiIpKTsKIAlwcmludGYoXygiICAtYywgLS1jbGVhbiAgICAgICAgICAg ICAgICAgIGNsZWFuIChkcm9wKSBkYXRhYmFzZSBvYmplY3RzIGJlZm9yZSByZWNyZWF0aW5nXG4i KSk7CiAJcHJpbnRmKF8oIiAgLUMsIC0tY3JlYXRlICAgICAgICAgICAgICAgICBjcmVhdGUgdGhl IHRhcmdldCBkYXRhYmFzZVxuIikpOwogCXByaW50ZihfKCIgIC1lLCAtLWV4aXQtb24tZXJyb3Ig ICAgICAgICAgZXhpdCBvbiBlcnJvciwgZGVmYXVsdCBpcyB0byBjb250aW51ZVxuIikpOwotLSAK Mi40Ny4wCgo= --=-CV9YBFLMVc4+roJb8013--