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 1sZdtZ-002Pxv-Py for pgsql-hackers@arkaria.postgresql.org; Thu, 01 Aug 2024 22:03:38 +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 1sZdtX-00DgDM-FI for pgsql-hackers@arkaria.postgresql.org; Thu, 01 Aug 2024 22:03:35 +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 1sZdtW-00DgDD-0y for pgsql-hackers@lists.postgresql.org; Thu, 01 Aug 2024 22:03:34 +0000 Received: from mail-yb1-xb34.google.com ([2607:f8b0:4864:20::b34]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sZdt4-002c1G-FP for pgsql-hackers@lists.postgresql.org; Thu, 01 Aug 2024 22:03:32 +0000 Received: by mail-yb1-xb34.google.com with SMTP id 3f1490d57ef6-e0b9589a72dso4343293276.3 for ; Thu, 01 Aug 2024 15:03:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1722549785; x=1723154585; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=bp844XiSKjp9eSs8eOo5952OJYMvtq4uoJG5szT9jcI=; b=TmRJBWXxNt6aPwM2y9raqkAzGToT6AXHXHxVZMfvz6eD4dR+yysnoU9sDvWbtPCdUr aDb8Akhd2pDYyFUcBv6BIrsYCXaApeZOS6q2viOip7t3A8x4gZHuTo/E2mXj6JQf5wll Kbx2qzzBcX1KT5zIbSpvAgAlGzy+xzrdb8Rfa4h8hwpIA+qBQ2Jdn7dnSSVpGR4kfJVH acWd/RyaP6f4G0cOjZfqBYdQ4HttPKOK2hAPhbcFf++p1odPs7N6wFZ4Lgt4/f5W4eWP zVwQ3vpGM32zYAn1Mj2oABekiwweHbvhE7viP5lAUFb9VICKD3Jsqt0WY1faBAehPcdX KnJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722549785; x=1723154585; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=bp844XiSKjp9eSs8eOo5952OJYMvtq4uoJG5szT9jcI=; b=HWyKPETLRELKtqwUxJd1l5L9iAfeQwWGfyYGaOZHzMP+4dv+sfJOuUAZHv8ZWrAjXD opDgQXsD79Kba34zCQfq/ZEc7o6UlrRO/Y0xa/soWYTYR5hRD75SGQDRygddJbDHr/1K 5pkQlz1hqICNJYDFYrF3qYU1mCGYsdrn0IIfyF7kBTmx6L0tJuKuLBQgP+DawRIPIt/0 2dZ5tPeSSG+PzjOSbpyWZ/N3CACqR/9GeJjpn0lSergfXhz8iTjU1BPBf84NJhnKpP3X wkX6k4eoY2HmQUtyHFkeoK3jQvq3wgAxqiYDj0Att8J/IygixLLPf2ey6/LOwAgwoqyI bu3w== X-Forwarded-Encrypted: i=1; AJvYcCWhEUViikaHxZRw5ptJZurrrPNvN/p76P4DdQhS5GV1lJPc1BnDl+ZABPvYDbP7sUnfVbhQHGIhkj1hwdiZFMPqJViX8F0cU8ORbwl41psUpU9v X-Gm-Message-State: AOJu0YwsZoILeq+by66Ig4ubzNrM7Jal2eRvaTau4thRmhkiMPjHvqJv F9Ne1aajLDd5ZCx6OeuBXjn5dr0mwzYzt0q9wfeHkn1BDbuR5HSV/GanDMiXt1h0e1oAJaDsalk GYE7fyyDxJ3MH9ml+bWsEaKJtWtg= X-Google-Smtp-Source: AGHT+IFrXY6PBxu4eZ0mEa5j2ntdFYJdPZUf5LKpli4EST9ZfocKtHOBDh5kuszqVTHGAT4Oqj69e//ZFkUgYNSOBr4= X-Received: by 2002:a5b:64a:0:b0:e0b:a355:bf9e with SMTP id 3f1490d57ef6-e0bde523148mr1770471276.54.1722549785196; Thu, 01 Aug 2024 15:03:05 -0700 (PDT) MIME-Version: 1.0 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> <263ef86d2cc97751e4833d79f3713d4a02b4cfb0.camel@cybertec.at> In-Reply-To: From: Pavel Stehule Date: Fri, 2 Aug 2024 00:02:27 +0200 Message-ID: Subject: Re: proposal: schema variables To: Laurenz Albe Cc: Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000000e7560061ea66068" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000e7560061ea66068 Content-Type: multipart/alternative; boundary="0000000000000e755e061ea66066" --0000000000000e755e061ea66066 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable =C4=8Dt 1. 8. 2024 v 13:22 odes=C3=ADlatel Laurenz Albe napsal: > On Thu, 2024-08-01 at 08:12 +0200, Pavel Stehule wrote: > > fresh rebase + fix format in doc > > Thanks! > > I'm curious, but too lazy to build the patch now, so I'm asking: > what did you do about this error? > > > CREATE VARIABLE var AS date; > > LET var =3D current_date; > > PREPARE stmt(date) AS SELECT $1; > > EXECUTE stmt(var); > > ERROR: paramid of PARAM_VARIABLE param is out of range > > Or does a later patch take care of that? > It is working with patch "allow read an value of session variable directly from expression executor" It looks very similar to evaluation of parameters of CALL statements. Without the mentioned patch, the CALL statements don't allow variables as an argument. I blocked usage of session variables as EXECUTE parameters until direct access to session variables in expression evaluation is supported. Regards Pavel > Yours, > Laurenz Albe > --0000000000000e755e061ea66066 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
=C4=8Dt 1. 8. 2024 v=C2=A013:22 odes= =C3=ADlatel Laurenz Albe <laurenz.albe@cybertec.at> napsal:
On Thu, 2024-08-01 at 08:12 +0200,= Pavel Stehule wrote:
> fresh rebase + fix format in doc

Thanks!

I'm curious, but too lazy to build the patch now, so I'm asking: what did you do about this error?

> CREATE VARIABLE var AS date;
> LET var =3D current_date;
> PREPARE stmt(date) AS SELECT $1;
> EXECUTE stmt(var);
> ERROR:=C2=A0 paramid of PARAM_VARIABLE param is out of range

Or does a later patch take care of that?

It is working with patch "allow read an value of session variable di= rectly from=C2=A0 expression executor"

It loo= ks very similar to evaluation of parameters of CALL statements. Without the= mentioned patch, the CALL statements don't allow variables as an argum= ent. I blocked usage of session variables as EXECUTE parameters until direc= t access to session variables in expression evaluation is supported.
<= div>
Regards

Pavel





Yours,
Laurenz Albe
--0000000000000e755e061ea66066-- --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0018-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20240801-0018-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf3c3 RnJvbSA3MzI4MjY2MGIyNzY3ZDlhNTYyYmMwMmFlYTYwOTI1MDhlNWNmZjIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIxXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCAwOTJlZDIzNTNhYy4uZDk4Y2YyMmRhZWYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTQ3MzIsOCArNDczMiw3IEBAIGlubGluZV9m dW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAog CQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAog CQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+ dGFyZ2V0TGlzdCkgIT0gMSkgfHwKLQkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQor CQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSkKIAkJZ290byBmYWls OwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQg Ki8KQEAgLTQ5MzcsMjEgKzQ5MzYsMzkgQEAgc3Vic3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19t dXRhdG9yKE5vZGUgKm5vZGUsCiB7CiAJaWYgKG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7 CisKKworCS8qCisJICogU1FMIGZ1bmN0aW9ucyBjYW4gY29udGFpbiB0d28gZGlmZmVyZW50IGtp bmQgb2YgcGFyYW1zLiBUaGUgbm9kZXMgd2l0aAorCSAqIHBhcmFta2luZCBQQVJBTV9FWFRFUk4g YXJlIHJlbGF0ZWQgdG8gZnVuY3Rpb24ncyBhcmd1bWVudHMgKGFuZCBzaG91bGQKKwkgKiBiZSBy ZXBsYWNlZCBpbiB0aGlzIHN0ZXApLCBiZWNhdXNlIHRoaXMgaXMgaG93IHdlIGFwcGx5IHRoZSBm dW5jdGlvbidzCisJICogYXJndW1lbnRzIGZvciBhbiBleHByZXNzaW9uLgorCSAqCisJICogVGhl IG5vZGVzIHdpdGggcGFyYW1raW5kIFBBUkFNX1ZBUklBQkxFIGFyZSByZWxhdGVkIHRvIHVzYWdl IG9mIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMuIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIG5vdCBwYXNzZWQgdG8gZXhwcmVzc2lvbgorCSAqIGJ5IGV4cHJlc3Npb24gYXJndW1l bnRzLCBzbyBpdCBzaG91bGQgbm90IGJlIHJlcGxhY2VkIGhlcmUgYnkKKwkgKiBmdW5jdGlvbidz IGFyZ3VtZW50cy4KKwkgKi8KIAlpZiAoSXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAg ICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBB UkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhURVJOICYmCisJ CQlwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX1ZBUklBQkxFKQogCQkJZWxvZyhFUlJPUiwgInVu ZXhwZWN0ZWQgcGFyYW1raW5kOiAlZCIsIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwotCQlpZiAo cGFyYW0tPnBhcmFtaWQgPD0gMCB8fCBwYXJhbS0+cGFyYW1pZCA+IGNvbnRleHQtPm5hcmdzKQot CQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBwYXJhbS0+cGFyYW1pZCk7CiAK LQkJLyogQ291bnQgdXNhZ2Ugb2YgcGFyYW1ldGVyICovCi0JCWNvbnRleHQtPnVzZWNvdW50c1tw YXJhbS0+cGFyYW1pZCAtIDFdKys7CisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKKwkJeworCQkJaWYgKHBhcmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQg PiBjb250ZXh0LT5uYXJncykKKwkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBwYXJhbWlkOiAlZCIs IHBhcmFtLT5wYXJhbWlkKTsKIAotCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBh cmcgYW5kIHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KLQkJLyogV2UgZG9uJ3QgbmVlZCB0 byBjb3B5IGF0IHRoaXMgdGltZSAoaXQnbGwgZ2V0IGRvbmUgbGF0ZXIpICovCi0JCXJldHVybiBs aXN0X250aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQkJLyogQ291bnQg dXNhZ2Ugb2YgcGFyYW1ldGVyICovCisJCQljb250ZXh0LT51c2Vjb3VudHNbcGFyYW0tPnBhcmFt aWQgLSAxXSsrOworCisJCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBhcmcgYW5k IHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KKwkJCS8qIFdlIGRvbid0IG5lZWQgdG8gY29w eSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLworCQkJcmV0dXJuIGxpc3Rf bnRoKGNvbnRleHQtPmFyZ3MsIHBhcmFtLT5wYXJhbWlkIC0gMSk7CisJCX0KIAl9CiAJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRl cnNfbXV0YXRvciwKIAkJCQkJCQkJICAgKHZvaWQgKikgY29udGV4dCk7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDY0NjZhMjQ3MzI4 Li4xODI5YTJhN2VkYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKQEAgLTEwNCw3ICsxMDQsNiBAQCBTRUxFQ1QgdmFyMTsKIEVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogU0VMRUNUIHNxbGZ4 KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQotQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxw Z3NxbGZ4KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQogQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBs aW5lIDEgYXQgUkVUVVJOCkBAIC0yMTEsMTAgKzIxMCwxMCBAQCBTRUxFQ1Qgc3FsZngxKHNxbGZ4 MignSGVsbG8nKSk7CiAKIC0tIGlubGluaW5nIGlzIGJsb2NrZWQKIEVYUExBSU4gKENPU1RTIE9G RiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOwotICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFJlc3VsdAotICAgT3V0cHV0OiBzcWxmeDEo c3FsZngyKCdIZWxsbyc6OmNoYXJhY3RlciB2YXJ5aW5nKSkKKyAgIE91dHB1dDogKCh2YXIxIHx8 ICcsICc6OnRleHQpIHx8ICgodmFyMiB8fCAnLCAnOjp0ZXh0KSB8fCAnSGVsbG8nOjp0ZXh0KSkK ICgyIHJvd3MpCiAKIERST1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOwotLSAKMi40NS4yCgo= --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0017-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20240801-0017-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf3j4 RnJvbSBmNTFmM2ZmNzJlNzA0NGMxMDA3MmJmMTRkOTkwZDA5MWYxZDI2NjU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE3 LzIxXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9z cGkuYyAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAg ICAgICAgICAgIHwgMTIgKysrKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAg ICAgICAgfCAgOCArKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VyLmMgICAgICAgICAgICAg fCAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgfCAgMiArCiBz cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmggICAgICAgICAgICAgfCAgNCArKwogc3JjL3BsL3Bs cGdzcWwvc3JjL3BsX2V4ZWMuYyAgICAgICAgICAgIHwgNTUgKysrKysrKysrKysrKysrKysrKysr KysrKwogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMgICAgICAgICAgIHwgMjQgKysrKysr KysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgICAgICAgICAgICB8IDI4ICsrKysr KysrKysrKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaCB8ICAxICsK IHNyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmggICAgICAgICAgICB8IDEyICsrKysrKwogc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgIHwgIDEgKwogMTIgZmlsZXMgY2hh bmdlZCwgMTUwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9zcGkuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4 IGU1MTZjMGE2N2M2Li5jMzE5MWZkYzQzMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivc3BpLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTI5ODMsNiArMjk4 Myw5IEBAIF9TUElfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCQkJY2FzZSBSQVdfUEFSU0Vf UExQR1NRTF9BU1NJR04zOgogCQkJCWVycmNvbnRleHQoIlBML3BnU1FMIGFzc2lnbm1lbnQgXCIl c1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOworCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9MRVQ6 CisJCQkJZXJyY29udGV4dCgiTEVUIHN0YXRlbWVudCBcIiVzXCIiLCBxdWVyeSk7CisJCQkJYnJl YWs7CiAJCQlkZWZhdWx0OgogCQkJCWVycmNvbnRleHQoIlNRTCBzdGF0ZW1lbnQgXCIlc1wiIiwg cXVlcnkpOwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggZjYzMGVmMDdmZmMuLmFk NTU1MGI2ZjY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTE5MjIsNiArMTkyMiwxOCBAQCB0cmFu c2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCkKIAogCXN0bXQt PnF1ZXJ5ID0gKE5vZGUgKikgcXVlcnk7CiAKKwkvKgorCSAqIEluc2lkZSBQTC9wZ1NRTCB3ZSBk b24ndCB3YW50IHRvIGV4ZWN1dGUgTEVUIHN0YXRlbWVudCBhcyB1dGlsaXR5CisJICogY29tbWFu ZCwgYmVjYXVzZSBpdCBkaXNhbGxvdyB0byBleGVjdXRlIGV4cHJlc3Npb24gYXMgc2ltcGxlCisJ ICogZXhwcmVzc2lvbi4gU28gZm9yIFBML3BnU1FMIHdlIGhhdmUgZXh0cmEgcGF0aCwgYW5kIHdl IHJldHVybiBTRUxFQ1QuCisJICogVGhlbiBpdCBjYW4gYmUgZXhlY3V0ZWQgYnkgZXhlY19ldmFs X2V4cHIuIFJlc3VsdCBpcyBkaXJyZWN0bHkgYXNzaWduZWQKKwkgKiB0byB0YXJnZXQgc2Vzc2lv biB2YXJpYWJsZSBpbnNpZGUgUEwvcGdTUUwgTEVUIHN0YXRlbWVudCBoYW5kbGVyLiBUaGlzCisJ ICogaXMgZXh0cmEgY29kZSwgZXh0cmEgcGF0aCwgYnV0IHBvc3NpYmlsaXR5IHRvIGdldCBmYXN0 ZXIgZXhlY3V0aW9uIGlzCisJICogdG9vIGF0dHJhY3RpdmUuCisJICovCisJaWYgKHN0bXQtPnBs cGdzcWxfbW9kZSkKKwkJcmV0dXJuIHF1ZXJ5OworCiAJLyogcmVwcmVzZW50IHRoZSBjb21tYW5k IGFzIGEgdXRpbGl0eSBRdWVyeSAqLwogCXJlc3VsdCA9IG1ha2VOb2RlKFF1ZXJ5KTsKIAlyZXN1 bHQtPmNvbW1hbmRUeXBlID0gQ01EX1VUSUxJVFk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBhYWUyMmI0NTY3 My4uZWJjMGJhYmJkOTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtODMyLDYgKzgzMiw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAldG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04xCiAldG9rZW4JCU1P REVfUExQR1NRTF9BU1NJR04yCiAldG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04zCisldG9rZW4J CU1PREVfUExQR1NRTF9MRVQKIAogCiAvKiBQcmVjZWRlbmNlOiBsb3dlc3QgdG8gaGlnaGVzdCAq LwpAQCAtOTYzLDYgKzk2NCwxMyBAQCBwYXJzZV90b3BsZXZlbDoKIAkJCQlwZ195eWdldF9leHRy YSh5eXNjYW5uZXIpLT5wYXJzZXRyZWUgPQogCQkJCQlsaXN0X21ha2UxKG1ha2VSYXdTdG10KChO b2RlICopIG4sIDApKTsKIAkJCX0KKwkJCXwgTU9ERV9QTFBHU1FMX0xFVCBMZXRTdG10CisJCQl7 CisJCQkJTGV0U3RtdCAqbiA9IChMZXRTdG10ICopICQyOworCQkJCW4tPnBscGdzcWxfbW9kZSA9 IHRydWU7CisJCQkJcGdfeXlnZXRfZXh0cmEoeXlzY2FubmVyKS0+cGFyc2V0cmVlID0KKwkJCQkJ bGlzdF9tYWtlMShtYWtlUmF3U3RtdCgoTm9kZSAqKSBuLCAwKSk7CisJCQl9CiAJCTsKIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZXIuYwppbmRleCAxMTg0ODhjM2YzMC4uZjk0MzBhMzI5MTkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VyLmMKQEAgLTYyLDYgKzYyLDcgQEAgcmF3X3BhcnNlcihjb25zdCBjaGFyICpzdHIsIFJhd1Bh cnNlTW9kZSBtb2RlKQogCQkJW1JBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjFdID0gTU9ERV9QTFBH U1FMX0FTU0lHTjEsCiAJCQlbUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMl0gPSBNT0RFX1BMUEdT UUxfQVNTSUdOMiwKIAkJCVtSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zXSA9IE1PREVfUExQR1NR TF9BU1NJR04zLAorCQkJW1JBV19QQVJTRV9QTFBHU1FMX0xFVF0gPSBNT0RFX1BMUEdTUUxfTEVU LAogCQl9OwogCiAJCXl5ZXh0cmEuaGF2ZV9sb29rYWhlYWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCmluZGV4IDc2ZDc2NTZkN2Y3Li4wY2M1NjBkNTM4ZiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtMjEwOSw2ICsyMTA5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAogCU5vZGVU YWcJCXR5cGU7CiAJTGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLwogCU5v ZGUJICAgKnF1ZXJ5OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJYm9vbAkJcGxwZ3NxbF9t b2RlOwkvKiB0cnVlLCB3aGVuIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZAorCQkJCQkJCQkgKiAo cGFyc2VkKSBieSBwbHBnc3FsIHJ1bnRpbWUgKi8KIAlpbnQJCQlsb2NhdGlvbjsKIH0gTGV0U3Rt dDsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oIGIvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlci5oCmluZGV4IGJlMTg0ZWM1MDY2Li5lZmJjNzZmMGFkNCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdO bjogcGFyc2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAqIGFuZCByZXR1cm4g YSBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUuICAibiIKICAqIGdp dmVzIHRoZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhlIHRhcmdldCBDb2x1 bW5SZWYuCisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBhIExFVCBzdGF0ZW1l bnQsIGFuZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWluaW5nIGEgUmF3U3Rt dCBub2RlLgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcgQEAgdHlwZWRlZiBl bnVtCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0VfUExQR1NRTF9BU1NJ R04yLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNFX1BMUEdTUUxfTEVU LAogfSBSYXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tzbGFzaF9xdW90ZSBH VUMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDIzOWIzMjUwYTk1Li44MGQ1MTJkMzBhMCAxMDA2 NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfZXhlYy5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19w cm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZGVmcmVtLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKQEAgLTMyOCw2ICszMjksOCBAQCBzdGF0 aWMgaW50CWV4ZWNfc3RtdF9jb21taXQoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkgUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgaW50CWV4ZWNfc3RtdF9yb2xs YmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSAgIFBMcGdTUUxfc3RtdF9y b2xsYmFjayAqc3RtdCk7CitzdGF0aWMgaW50CWV4ZWNfc3RtdF9sZXQoUExwZ1NRTF9leGVjc3Rh dGUgKmVzdGF0ZSwKKwkJCQkJCSAgUExwZ1NRTF9zdG10X2xldCAqbGV0KTsKIAogc3RhdGljIHZv aWQgcGxwZ3NxbF9lc3RhdGVfc2V0dXAoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkJIFBMcGdTUUxfZnVuY3Rpb24gKmZ1bmMsCkBAIC0yMTIwLDYgKzIxMjMsMTAgQEAgZXhlY19z dG10cyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBMaXN0ICpzdG10cykKIAkJCQlyYyA9IGV4 ZWNfc3RtdF9yb2xsYmFjayhlc3RhdGUsIChQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKikgc3RtdCk7 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCQlyYyA9IGV4ZWNf c3RtdF9sZXQoZXN0YXRlLCAoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCQlicmVhazsK KwogCQkJZGVmYXVsdDoKIAkJCQkvKiBwb2ludCBlcnJfc3RtdCB0byBwYXJlbnQsIHNpbmNlIHRo aXMgb25lIHNlZW1zIGNvcnJ1cHQgKi8KIAkJCQllc3RhdGUtPmVycl9zdG10ID0gc2F2ZV9lc3Rt dDsKQEAgLTUwMDEsNiArNTAwOCw1NCBAQCBleGVjX3N0bXRfcm9sbGJhY2soUExwZ1NRTF9leGVj c3RhdGUgKmVzdGF0ZSwgUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KQogCXJldHVybiBQTFBH U1FMX1JDX09LOwogfQogCisvKiAtLS0tLS0tLS0tCisgKiBleGVjX3N0bXRfbGV0CQkJRXZhbHVh dGUgYW4gZXhwcmVzc2lvbiBhbmQKKyAqCQkJCQlwdXQgdGhlIHJlc3VsdCBpbnRvIGEgc2Vzc2lv biB2YXJpYWJsZS4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIGludAorZXhlY19zdG10X2xl dChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQorewor CWJvb2wJCWlzTnVsbDsKKwlPaWQJCQl2YWx0eXBlOworCWludDMyCQl2YWx0eXBtb2Q7CisJRGF0 dW0JCXZhbHVlOworCU9pZAkJCXZhcmlkOworCisJTGlzdAkgICAqcGxhbnNvdXJjZXM7CisJQ2Fj aGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZTsKKworCXZhbHVlID0gZXhlY19ldmFsX2V4cHIoZXN0 YXRlLAorCQkJCQkJICAgc3RtdC0+ZXhwciwKKwkJCQkJCSAgICZpc051bGwsCisJCQkJCQkgICAm dmFsdHlwZSwKKwkJCQkJCSAgICZ2YWx0eXBtb2QpOworCisJLyoKKwkgKiBPaWQgb2YgdGFyZ2V0 IHNlc3Npb24gdmFyaWFibGUgaXMgc3RvcmVkIGluIFF1ZXJ5IHN0cnVjdHVyZS4gSXQgaXMKKwkg KiBzYWZlciB0byByZWFkIHRoaXMgdmFsdWUgZGlyZWN0bHkgZnJvbSB0aGUgcGxhbiB0aGFuIHRv IGhvbGQgdGhpcyB2YWx1ZQorCSAqIGluIHRoZSBwbHBnc3FsIGNvbnRleHQsIGJlY2F1c2UgaXQn cyBub3QgbmVjZXNzYXJ5IHRvIGhhbmRsZQorCSAqIGludmFsaWRhdGlvbiBvZiB0aGUgY2FjaGVk IHZhbHVlLiBOZXh0IG9wZXJhdGlvbnMgYXJlIHJlYWQgb25seSB3aXRob3V0CisJICogYW55IGFs bG9jYXRpb25zLCBzbyB3ZSBjYW4gZXhwZWN0IHRoYXQgcmV0cmlldmluZyB2YXJpZCBmcm9tIFF1 ZXJ5CisJICogc2hvdWxkIGJlIGZhc3QuCisJICovCisJcGxhbnNvdXJjZXMgPSBTUElfcGxhbl9n ZXRfcGxhbl9zb3VyY2VzKHN0bXQtPmV4cHItPnBsYW4pOworCWlmIChsaXN0X2xlbmd0aChwbGFu c291cmNlcykgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgbGVuZ3RoIG9mIHBsYW5z b3VyY2VzIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwlwbGFuc291cmNlID0gKENh Y2hlZFBsYW5Tb3VyY2UgKikgbGluaXRpYWwocGxhbnNvdXJjZXMpOworCWlmIChsaXN0X2xlbmd0 aChwbGFuc291cmNlLT5xdWVyeV9saXN0KSAhPSAxKQorCQllbG9nKEVSUk9SLCAidW5leHBlY3Rl ZCBsZW5ndGggb2YgcGxhbnNvdXJjZSBvZiBxdWVyeSBmb3IgTEVUIHN0YXRlbWVudCIpOworCisJ dmFyaWQgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBwbGFuc291cmNlLT5xdWVyeV9saXN0KS0+cmVz dWx0VmFyaWFibGU7CisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZWxvZyhFUlJPUiwgIm9p ZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdmFsaWQiKTsKKworCVNldFNlc3Np b25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKHZhcmlkLCB2YWx1ZSwgaXNOdWxsKTsKKworCXJl dHVybiBQTFBHU1FMX1JDX09LOworfQorCiAvKiAtLS0tLS0tLS0tCiAgKiBleGVjX2Fzc2lnbl9l eHByCQkJUHV0IGFuIGV4cHJlc3Npb24ncyByZXN1bHQgaW50byBhIHZhcmlhYmxlLgogICogLS0t LS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMgYi9zcmMv cGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYwppbmRleCBlZWI3YzRkN2MwNC4uMWIzOTM1MWRiN2Yg MTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jCisrKyBiL3NyYy9wbC9w bHBnc3FsL3NyYy9wbF9mdW5jcy5jCkBAIC0yODgsNiArMjg4LDggQEAgcGxwZ3NxbF9zdG10X3R5 cGVuYW1lKFBMcGdTUUxfc3RtdCAqc3RtdCkKIAkJCXJldHVybiAiQ09NTUlUIjsKIAkJY2FzZSBQ TFBHU1FMX1NUTVRfUk9MTEJBQ0s6CiAJCQlyZXR1cm4gIlJPTExCQUNLIjsKKwkJY2FzZSBQTFBH U1FMX1NUTVRfTEVUOgorCQkJcmV0dXJuICJMRVQiOwogCX0KIAogCXJldHVybiAidW5rbm93biI7 CkBAIC0zNzAsNiArMzcyLDcgQEAgc3RhdGljIHZvaWQgZnJlZV9wZXJmb3JtKFBMcGdTUUxfc3Rt dF9wZXJmb3JtICpzdG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfY2FsbChQTHBnU1FMX3N0bXRfY2Fs bCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBmcmVlX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpz dG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfcm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpz dG10KTsKK3N0YXRpYyB2b2lkIGZyZWVfbGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3Rh dGljIHZvaWQgZnJlZV9leHByKFBMcGdTUUxfZXhwciAqZXhwcik7CiAKIApAQCAtNDU5LDYgKzQ2 Miw5IEBAIGZyZWVfc3RtdChQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1U X1JPTExCQUNLOgogCQkJZnJlZV9yb2xsYmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0 bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCWZyZWVfbGV0KChQ THBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIGNtZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJ CWJyZWFrOwpAQCAtNzEzLDYgKzcxOSwxMiBAQCBmcmVlX2dldGRpYWcoUExwZ1NRTF9zdG10X2dl dGRpYWcgKnN0bXQpCiB7CiB9CiAKK3N0YXRpYyB2b2lkCitmcmVlX2xldChQTHBnU1FMX3N0bXRf bGV0ICpzdG10KQoreworCWZyZWVfZXhwcihzdG10LT5leHByKTsKK30KKwogc3RhdGljIHZvaWQK IGZyZWVfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CkBAIC04MTUsNiArODI3LDcgQEAgc3Rh dGljIHZvaWQgZHVtcF9wZXJmb3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsKIHN0YXRp YyB2b2lkIGR1bXBfY2FsbChQTHBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBk dW1wX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBf cm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lkIGR1bXBf bGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZHVtcF9leHByKFBMcGdT UUxfZXhwciAqZXhwcik7CiAKIApAQCAtOTE0LDYgKzkyNyw5IEBAIGR1bXBfc3RtdChQTHBnU1FM X3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZHVtcF9yb2xs YmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2Ug UExQR1NRTF9TVE1UX0xFVDoKKwkJCWR1bXBfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQp OworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGNt ZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtMTU5MCw2ICsxNjA2 LDE0IEBAIGR1bXBfZ2V0ZGlhZyhQTHBnU1FMX3N0bXRfZ2V0ZGlhZyAqc3RtdCkKIAlwcmludGYo IlxuIik7CiB9CiAKK3N0YXRpYyB2b2lkCitkdW1wX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10 KQoreworCWR1bXBfaW5kKCk7CisJZHVtcF9leHByKHN0bXQtPmV4cHIpOworCXByaW50ZigiXG4i KTsKK30KKwogc3RhdGljIHZvaWQKIGR1bXBfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CmRp ZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55IGIvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2dyYW0ueQppbmRleCAwNjcxZmY3ODcyMi4uNGY5ODI2MWFjNjkgMTAwNjQ0Ci0tLSBh L3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2dyYW0ueQpAQCAtMTk5LDcgKzE5OSw3IEBAIHN0YXRpYwl2b2lkCQkJY2hlY2tfcmFpc2VfcGFy YW1ldGVycyhQTHBnU1FMX3N0bXRfcmFpc2UgKnN0bXQpOwogJXR5cGUgPHN0bXQ+CXN0bXRfcmV0 dXJuIHN0bXRfcmFpc2Ugc3RtdF9hc3NlcnQgc3RtdF9leGVjc3FsCiAldHlwZSA8c3RtdD4Jc3Rt dF9keW5leGVjdXRlIHN0bXRfZm9yIHN0bXRfcGVyZm9ybSBzdG10X2NhbGwgc3RtdF9nZXRkaWFn CiAldHlwZSA8c3RtdD4Jc3RtdF9vcGVuIHN0bXRfZmV0Y2ggc3RtdF9tb3ZlIHN0bXRfY2xvc2Ug c3RtdF9udWxsCi0ldHlwZSA8c3RtdD4Jc3RtdF9jb21taXQgc3RtdF9yb2xsYmFjaworJXR5cGUg PHN0bXQ+CXN0bXRfY29tbWl0IHN0bXRfcm9sbGJhY2sgc3RtdF9sZXQKICV0eXBlIDxzdG10Pglz dG10X2Nhc2Ugc3RtdF9mb3JlYWNoX2EKIAogJXR5cGUgPGxpc3Q+CXByb2NfZXhjZXB0aW9ucwpA QCAtMzA2LDYgKzMwNiw3IEBAIHN0YXRpYwl2b2lkCQkJY2hlY2tfcmFpc2VfcGFyYW1ldGVycyhQ THBnU1FMX3N0bXRfcmFpc2UgKnN0bXQpOwogJXRva2VuIDxrZXl3b3JkPglLX0lOVE8KICV0b2tl biA8a2V5d29yZD4JS19JUwogJXRva2VuIDxrZXl3b3JkPglLX0xBU1QKKyV0b2tlbiA8a2V5d29y ZD4JS19MRVQKICV0b2tlbiA8a2V5d29yZD4JS19MT0cKICV0b2tlbiA8a2V5d29yZD4JS19MT09Q CiAldG9rZW4gPGtleXdvcmQ+CUtfTUVSR0UKQEAgLTg3NSw2ICs4NzYsOCBAQCBwcm9jX3N0bXQJ CTogcGxfYmxvY2sgJzsnCiAJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQl8IHN0bXRfcm9sbGJhY2sK IAkJCQkJCXsgJCQgPSAkMTsgfQorCQkJCXwgc3RtdF9sZXQKKwkJCQkJCXsgJCQgPSAkMTsgfQog CQkJCTsKIAogc3RtdF9wZXJmb3JtCTogS19QRVJGT1JNCkBAIC05OTEsNiArOTk0LDI5IEBAIHN0 bXRfYXNzaWduCQk6IFRfREFUVU0KIAkJCQkJfQogCQkJCTsKIAorc3RtdF9sZXQJCTogS19MRVQK KwkJCQkJeworCQkJCQkJUExwZ1NRTF9zdG10X2xldCAqbmV3OworCQkJCQkJUmF3UGFyc2VNb2Rl IHBtb2RlOworCisJCQkJCQlwbW9kZSA9IFJBV19QQVJTRV9QTFBHU1FMX0xFVDsKKworCQkJCQkJ bmV3ID0gcGFsbG9jMChzaXplb2YoUExwZ1NRTF9zdG10X2xldCkpOworCQkJCQkJbmV3LT5jbWRf dHlwZSA9IFBMUEdTUUxfU1RNVF9MRVQ7CisJCQkJCQluZXctPmxpbmVubyAgID0gcGxwZ3NxbF9s b2NhdGlvbl90b19saW5lbm8oQDEpOworCQkJCQkJbmV3LT5zdG10aWQgPSArK3BscGdzcWxfY3Vy cl9jb21waWxlLT5uc3RhdGVtZW50czsKKworCQkJCQkJLyogUHVzaCBiYWNrIHRoZSBoZWFkIG5h bWUgdG8gaW5jbHVkZSBpdCBpbiB0aGUgc3RtdCAqLworCQkJCQkJcGxwZ3NxbF9wdXNoX2JhY2tf dG9rZW4oS19MRVQpOworCQkJCQkJbmV3LT5leHByID0gcmVhZF9zcWxfY29uc3RydWN0KCc7Jywg MCwgMCwgIjsiLAorCQkJCQkJCQkJCQkJCSAgIHBtb2RlLAorCQkJCQkJCQkJCQkJCSAgIGZhbHNl LCB0cnVlLAorCQkJCQkJCQkJCQkJCSAgIE5VTEwsIE5VTEwpOworCisJCQkJCQkkJCA9IChQTHBn U1FMX3N0bXQgKiluZXc7CisJCQkJCX0KKwkJCQk7CisKIHN0bXRfZ2V0ZGlhZwk6IEtfR0VUIGdl dGRpYWdfYXJlYV9vcHQgS19ESUFHTk9TVElDUyBnZXRkaWFnX2xpc3QgJzsnCiAJCQkJCXsKIAkJ CQkJCVBMcGdTUUxfc3RtdF9nZXRkaWFnICpuZXc7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2 ZWRfa3dsaXN0LmgKaW5kZXggZDMzOGU5ZjYzNzQuLmJlOTRhYTc1MWE0IDEwMDY0NAotLS0gYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oCkBAIC00MCw2ICs0MCw3IEBAIFBHX0tFWVdPUkQo ImZyb20iLCBLX0ZST00pCiBQR19LRVlXT1JEKCJpZiIsIEtfSUYpCiBQR19LRVlXT1JEKCJpbiIs IEtfSU4pCiBQR19LRVlXT1JEKCJpbnRvIiwgS19JTlRPKQorUEdfS0VZV09SRCgibGV0IiwgS19M RVQpCiBQR19LRVlXT1JEKCJsb29wIiwgS19MT09QKQogUEdfS0VZV09SRCgibm90IiwgS19OT1Qp CiBQR19LRVlXT1JEKCJudWxsIiwgS19OVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwv c3JjL3BscGdzcWwuaCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKaW5kZXggNTBjM2Iy ODQ3MmIuLmJiNDAwNjI5YWRiIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3Nx bC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKQEAgLTEyOCw2ICsxMjgsNyBA QCB0eXBlZGVmIGVudW0gUExwZ1NRTF9zdG10X3R5cGUKIAlQTFBHU1FMX1NUTVRfQ0FMTCwKIAlQ TFBHU1FMX1NUTVRfQ09NTUlULAogCVBMUEdTUUxfU1RNVF9ST0xMQkFDSywKKwlQTFBHU1FMX1NU TVRfTEVULAogfSBQTHBnU1FMX3N0bXRfdHlwZTsKIAogLyoKQEAgLTUyMCw2ICs1MjEsMTcgQEAg dHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2Fzc2lnbgogCVBMcGdTUUxfZXhwciAqZXhwcjsK IH0gUExwZ1NRTF9zdG10X2Fzc2lnbjsKIAorLyoKKyAqIExldCBzdGF0ZW1lbnQKKyAqLwordHlw ZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2xldAoreworCVBMcGdTUUxfc3RtdF90eXBlIGNtZF90 eXBlOworCWludAkJCWxpbmVubzsKKwl1bnNpZ25lZCBpbnQgc3RtdGlkOworCVBMcGdTUUxfZXhw ciAqZXhwcjsKK30gUExwZ1NRTF9zdG10X2xldDsKKwogLyoKICAqIFBFUkZPUk0gc3RhdGVtZW50 CiAgKi8KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggMGFiOWVmMTM0ZDAuLjk0MjRiZWYy YmFhIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTg4Niw2ICsxODg2LDcgQEAgUExw Z1NRTF9zdG10X2ZvcnEKIFBMcGdTUUxfc3RtdF9mb3JzCiBQTHBnU1FMX3N0bXRfZ2V0ZGlhZwog UExwZ1NRTF9zdG10X2lmCitQTHBnU1FMX3N0bXRfbGV0CiBQTHBnU1FMX3N0bXRfbG9vcAogUExw Z1NRTF9zdG10X29wZW4KIFBMcGdTUUxfc3RtdF9wZXJmb3JtCi0tIAoyLjQ1LjIKCg== --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0021-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20240801-0021-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf1v0 RnJvbSA3NzYzYzQ4MjBmMDU3MWMzYzg5YmY0MTA0MDUzYmUyN2E1YmU0ZGVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDIxIEp1bCAyMDI0IDE3OjA0OjQxICswMjAwClN1YmplY3Q6IFtQ QVRDSCAyMS8yMV0gcGdfcmVzdG9yZSAtQSwgLS12YXJpYWJsZQoKcG9zc2liaWxpdHkgdG8gcmVz dG9yZSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBuYW1lCi0tLQogZG9jL3NyYy9zZ21s L3JlZi9wZ19yZXN0b3JlLnNnbWwgfCAxMSArKysrKysrKysrKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X3Jlc3RvcmUuYyAgICAgfCAgOSArKysrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdf cmVzdG9yZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3JlLnNnbWwKaW5kZXggYjhi MjdlMTcxOWUuLjdhM2E0ZWFiZTI1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jl c3RvcmUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtMTA2 LDYgKzEwNiwxNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVy bT48b3B0aW9uPi1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3Zhcmlh YmxlPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0t dmFyaWFibGU9PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8 L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgUmVzdG9yZSBhIG5hbWVkIHNlc3Npb24gdmFyaWFibGUgb25seS4gIE11 bHRpcGxlIHNlc3Npb24gdmFyaWFibGVzIG1heQorICAgICAgICBiZSBzcGVjaWZpZWQgd2l0aCBt dWx0aXBsZSA8b3B0aW9uPi1BPC9vcHRpb24+IHN3aXRjaGVzLgorICAgICAgIDwvcGFyYT4KKyAg ICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50 cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi1jPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+ PG9wdGlvbj4tLWNsZWFuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX3Jlc3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggZGYx MTk1OTFjY2EuLmE3YzNhZTliZmQxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVz dG9yZS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTEwNSw2ICsxMDUs NyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJ0cmlnZ2VyIiwgMSwgTlVMTCwg J1QnfSwKIAkJeyJ1c2UtbGlzdCIsIDEsIE5VTEwsICdMJ30sCiAJCXsidXNlcm5hbWUiLCAxLCBO VUxMLCAnVSd9LAorCQl7InZhcmlhYmxlIiwgMSwgTlVMTCwgJ0EnfSwKIAkJeyJ2ZXJib3NlIiwg MCwgTlVMTCwgJ3YnfSwKIAkJeyJzaW5nbGUtdHJhbnNhY3Rpb24iLCAwLCBOVUxMLCAnMSd9LAog CkBAIC0xNTUsNyArMTU2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCX0KIAl9 CiAKLQl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWNDZDplZjpGOmg6STpq OmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2d1d4MSIsCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmco YXJnYywgYXJndiwgIkE6YWNDZDplZjpGOmg6STpqOmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2d1d4 MSIsCiAJCQkJCQkJY21kb3B0cywgTlVMTCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChjKQpAQCAt MTYzLDYgKzE2NCwxMSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCWNhc2UgJ2En OgkJCS8qIER1bXAgZGF0YSBvbmx5ICovCiAJCQkJb3B0cy0+ZGF0YU9ubHkgPSAxOwogCQkJCWJy ZWFrOworCQkJY2FzZSAnQSc6CQkJLyogdkFyaWFibGUgKi8KKwkJCQlvcHRzLT5zZWxUeXBlcyA9 IDE7CisJCQkJb3B0cy0+c2VsVmFyaWFibGUgPSAxOworCQkJCXNpbXBsZV9zdHJpbmdfbGlzdF9h cHBlbmQoJm9wdHMtPnZhcmlhYmxlTmFtZXMsIG9wdGFyZyk7CisJCQkJYnJlYWs7CiAJCQljYXNl ICdjJzoJCQkvKiBjbGVhbiAoaS5lLiwgZHJvcCkgc2NoZW1hIHByaW9yIHRvIGNyZWF0ZSAqLwog CQkJCW9wdHMtPmRyb3BTY2hlbWEgPSAxOwogCQkJCWJyZWFrOwpAQCAtNDYzLDYgKzQ2OSw3IEBA IHVzYWdlKGNvbnN0IGNoYXIgKnByb2duYW1lKQogCiAJcHJpbnRmKF8oIlxuT3B0aW9ucyBjb250 cm9sbGluZyB0aGUgcmVzdG9yZTpcbiIpKTsKIAlwcmludGYoXygiICAtYSwgLS1kYXRhLW9ubHkg ICAgICAgICAgICAgIHJlc3RvcmUgb25seSB0aGUgZGF0YSwgbm8gc2NoZW1hXG4iKSk7CisJcHJp bnRmKF8oIiAgLUEsIC0tdmFyaWFibGU9TkFNRSAgICAgICAgICByZXN0b3JlIG5hbWVkIHNlc3Np b24gdmFyaWFibGVcbiIpKTsKIAlwcmludGYoXygiICAtYywgLS1jbGVhbiAgICAgICAgICAgICAg ICAgIGNsZWFuIChkcm9wKSBkYXRhYmFzZSBvYmplY3RzIGJlZm9yZSByZWNyZWF0aW5nXG4iKSk7 CiAJcHJpbnRmKF8oIiAgLUMsIC0tY3JlYXRlICAgICAgICAgICAgICAgICBjcmVhdGUgdGhlIHRh cmdldCBkYXRhYmFzZVxuIikpOwogCXByaW50ZihfKCIgIC1lLCAtLWV4aXQtb24tZXJyb3IgICAg ICAgICAgZXhpdCBvbiBlcnJvciwgZGVmYXVsdCBpcyB0byBjb250aW51ZVxuIikpOwotLSAKMi40 NS4yCgo= --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0020-transactional-variables.patch" Content-Disposition: attachment; filename="v20240801-0020-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf2p1 RnJvbSBjZThlMGNkNDI0NmNkYWNiZjA4NTNkZTc2Yjg0Zjg3ZTA2MDU4OTRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDIyOjQwOjU1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAyMC8yMV0gdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKClRoaXMgY29tbWl0IGltcGxlbWVu dHMgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMuIFRoZSBjb250ZW50IG9mIHRyYW5zYWN0aW9uYWwK c2Vzc2lvbiB2YXJpYWJsZXMgaXMgc2Vuc2l0aXZlIHRvIHRyYW5zYWN0aW9ucyBhbmQgc3VidHJh bnNhY3Rpb25zLiBBbnkKdHJhbnNhY3Rpb25hbCB2YXJpYWJsZSBob2xkcyBhIGhpc3Rvcnkgb2Yg dmFsdWVzIG5lY2Vzc2FyeSBmb3IgcmV2ZXJ0LiBUaGlzIGhpc3RvcnkKaXMgY2xlYW5lZCAocHVy Z2VkKSB3aGVuIGEpIHdlIHJlYWQgdGhlIHZhcmlhYmxlLCBiKSB3aGVuIHRoZSB0cmFuc2FjdGlv biBpcyBmaW5pc2hlZC4KCldlIGRvbid0IHRyeSB0byBwdXJnZSwgd2hlbiB0aGUgbGFzdCBtb2Rp ZmljYXRpb24gb2YgYSB2YXJpYWJsZSBpcyBmcm9tCmN1cnJlbnQgc3VidHJhbnNhY3Rpb24sIG9y IHdoZW4gcHVyZ2Ugd2FzIHByb2Nlc3NlZCBpbiBjdXJyZW50IHN1YnRyYW5zYWN0aW9uLgoKVGhp cyBwYXRjaCBpcyBiYXNlZCBvbiBteSB3b3JrIGZyb20gRmViIDIwMjAgYW5kIGl0IGlzIHJlbGF0 ZWQgdG8gZGlzY3Vzc2lvbgphYm91dCBmZWF0dXJlcyByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLiBOb3csIHdoZW4gdGhlIGFsbCBmZWF0dXJlcyBhcmUKc2VwYXJhdGVkIHRvIGlzb2xhdGVk IHBhdGNoZXMgSSBjYW4gcmV2aXRhbGl6ZSB0aGlzIHBhdGNoLCBiZWNhdXNlIGl0IGRvZXNuJ3QK aW5jcmVhc2UgY29tcGxleGl0eSBvZiBiYXNpYyBwYXRjaGVzLgoKVW5saWtlIG90aGVyIHBhdGNo ZXMsIHRoaXMgcGF0Y2ggaXMgd2l0aG91dCBhbnkgcmV2aWV3IGF0IHRoaXMgbW9tZW50IChGZWIg MjAyNCksCmJ1dCB0aGUgZmVhdHVyZSBzaG91bGQgYmUgZnVsbHkgZnVuY3Rpb25hbCBmb3IgcGVv cGxlIHdobyBhcmUgaW50ZXJlc3RlZCBhYm91dAp0aGlzIGZlYXR1cmUgKGZvciB0ZXN0aW5nKS4K LS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTIg KwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDEwICst CiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMzAxICsrKysr KysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAg ICAgIHwgIDUwICstLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDEwICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAg IHwgIDM2ICsrKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAg IHwgICA0ICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAg fCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICst LQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTEwICsr KysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1 OCArKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCA1OTIgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAppbmRleCA0NTEyYzQ1MjViZi4uOWUwNDIwZjdjZjIgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC05ODUxLDYgKzk4NTEsMTggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+ Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAg ICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVu dHJ5PjxzdHJ1Y3RmaWVsZD52YXJpc3RyYW5zYWN0PC9zdHJ1Y3RmaWVsZD48L2VudHJ5PgorICAg ICAgPGVudHJ5Pjx0eXBlPmJvb2xlYW48L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2Vu dHJ5PgorICAgICAgPGVudHJ5PgorICAgICAgIFRydWUsIHdoZW4gdGhlIHZhcmlhYmxlIGlzIDxx dW90ZT50cmFuc2FjdGlvbmFsPC9xdW90ZT4uIEluIHRoZSBjYXNlCisgICAgICAgb2YgYSB0cmFu c2FjdGlvbiByb2xsYmFjaywgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgYXJlIHJlc2V0IHRvIHRo ZQorICAgICAgIHZhbHVlIHRoZXkgaGFkIHdoZW4gdGhlIHRyYW5zYWN0aW9uIHN0YXJ0ZWQuIFRo ZSBkZWZhdWx0IHZhbHVlIGlzCisgICAgICAgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+LgorICAg ICAgPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAg ICAgICAgPHN0cnVjdGZpZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8 L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCAwMDkzODc0M2Mw ZC4uYjczZjAzMmRkYmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAt MjYsNyArMjYsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rp dj4KIDxzeW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFC TEUgXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gWyB7IFRSQU5TQUNUSU9OQUwgfCBUUkFOU0FDVElPTiB9IF0gWyBJ TU1VVEFCTEUgXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBbIE5P VCBOVUxMIF0gWyBERUZBVUxUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZWZhdWx0 X2V4cHI8L3JlcGxhY2VhYmxlPiBdIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9OIFRSQU5TQUNUSU9O IEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KQEAgLTQ3LDYg KzQ3LDE0IEBAIENSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjCiAgICBzYW1lIGFzIHJlZ3VsYXIgdmFy aWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+Cisg ICBXaGVuIGEgc2NoZW1hIHZhcmlhYmxlIGlzIGNyZWF0ZWQgd2l0aCBhCisgICA8Y29tbWFuZD5D UkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCwgdGhlIHZhcmlh YmxlcworICAgY29udGVudCBjaGFuZ2VzIGFyZSB0cmFuc2FjdGlvbmFsOiBpbiBjYXNlIG9mIHJv bGxiYWNrLCB0aGV5IGFyZSByZXNldCB0bworICAgdGhlaXIgdmFsdWUgYXQgdGhlIGJlZ2lubmlu ZyBvZiB0aGUgdHJhbnNhY3Rpb24gb3IgdGhlIGxhdGVzdCBzdWJ0cmFuc2FjdGlvbi4KKyAgIFRo ZSB2YXJpYWJsZSBjb250ZW50IGlzIG9ubHkgaG9sZCBpbiBtZW1vcnksIGFuZCB0aHVzIGlzIG5v dCBwZXJzaXN0ZW50LgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBTZXNzaW9uIHZhcmlhYmxl cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CiAgICBjb21t YW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdpdGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g Y29tbWFuZC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCBhODljMGVjY2Q2YS4uYjk5 YzZkYzFlNDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTQyLDYgKzQyLDcgQEAg c3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUs CiAJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAogCQkJCQkJCQkJIGJvb2wgbm90X251bGws CiAJCQkJCQkJCQkgYm9vbCBpc19pbW11dGFibGUsCisJCQkJCQkJCQkgYm9vbCBpc190cmFuc2Fj dCwKIAkJCQkJCQkJCSBOb2RlICp2YXJEZWZleHByLAogCQkJCQkJCQkJIFZhcmlhYmxlWGFjdEVu ZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKTsKIApAQCAtNTksNiArNjAsNyBAQCBjcmVhdGVfdmFy aWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlib29sIGlmX25vdF9leGlzdHMsCiAJCQkJ Ym9vbCBub3RfbnVsbCwKIAkJCQlib29sIGlzX2ltbXV0YWJsZSwKKwkJCQlib29sIGlzX3RyYW5z YWN0LAogCQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pCiB7CkBAIC0xMjMsNiArMTI1LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9u IC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CiAJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFybm90bnVsbCAtIDFdID0gQm9vbEdldERhdHVtKG5vdF9udWxsKTsKIAl2YWx1 ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc2ltbXV0YWJsZSAtIDFdID0gQm9vbEdldERhdHVtKGlz X2ltbXV0YWJsZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyaXN0cmFuc2FjdCAtIDFd ID0gQm9vbEdldERhdHVtKGlzX3RyYW5zYWN0KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAK IAlpZiAodmFyRGVmZXhwcikKQEAgLTI2Niw2ICsyNjksNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJz ZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHN0 bXQtPmlmX25vdF9leGlzdHMsCiAJCQkJCQkJICAgc3RtdC0+bm90X251bGwsCiAJCQkJCQkJICAg c3RtdC0+aXNfaW1tdXRhYmxlLAorCQkJCQkJCSAgIHN0bXQtPmlzX3RyYW5zYWN0LAogCQkJCQkJ CSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRBY3Rpb24pOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggZmE1YWRmNjMxYjguLjRi NjJjMDFmMTQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC00 Nyw2ICs0NywxOSBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0KIAlTdWJU cmFuc2FjdGlvbklkIGRlbGV0aW5nX3N1YmlkOwogfSBTVmFyaWFibGVYQWN0RHJvcEl0ZW07CiAK Ky8qCisgKiBVc2VkIGZvciB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcy4gSG9sZHMgcHJldiB2ZXJz aW9uLgorICovCit0eXBlZGVmIHN0cnVjdCBQcmV2VmFsdWUKK3sKKwlEYXR1bQkJdmFsdWU7CisJ Ym9vbAkJaXNudWxsOworCisJU3ViVHJhbnNhY3Rpb25JZCBtb2RpZnlfc3ViaWQ7CisKKwlzdHJ1 Y3QgUHJldlZhbHVlICpwcmV2X3ZhbHVlOworfSBQcmV2VmFsdWU7CisKIC8qCiAgKiBUaGUgdmFs dWVzIG9mIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdG9yZWQgaW4gdGhlIGJhY2tlbmQncyBwcml2 YXRlIG1lbW9yeQogICogaW4gdGhlIGRlZGljYXRlZCBtZW1vcnkgY29udGV4dCBTVmFyaWFibGVN ZW1vcnlDb250ZXh0IGluIGJpbmFyeSBmb3JtYXQuCkBAIC02OCw2ICs4MSwyNSBAQCB0eXBlZGVm IHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJYm9vbAkJaXNudWxsOwogCURhdHVtCQl2YWx1ZTsKIAor CS8qCisJICogV2UgZG9uJ3QgbmVlZCBzdGFjayB2ZXJzaW9ucyBtb2RpZmllZCBpbiBzYW1lIHN1 YnRyYW5zYWN0aW9uLgorCSAqIFVzZWQgYnkgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgb25seS4g VGhlIHZhbHVlIG9mIHRyYW5zYWN0aW9uYWwKKwkgKiB2YXJpYWJsZSBjYW4gYmUgcmV0dXJuZWQg aW1tZWRpYXRlbHkgd2hlbiBtb2RpZnlfc3ViaWQgaXMgc2FtZQorCSAqIGxpa2UgY3VycmVudCBz dWJpZC4KKwkgKi8KKwlTdWJUcmFuc2FjdGlvbklkIG1vZGlmeV9zdWJpZDsKKworCS8qCisJICog V2hlbiB0aGUgbW9kaWZ5X3N1YmlkIGlzIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgc3ViaWQsIHRo ZW4KKwkgKiB3ZSBuZWVkIHRvIHJlY2hlY2sgdmVyc2lvbnMgYW5kIHRocm93IHZlcnNpb25zIHJl bGF0ZWQgdG8KKwkgKiByZXZlcnRlZCB0cmFuc2FjdGlvbnMuIFdoZW4gcHVyZ2Vfc3ViaWQgaXMg c2FtZSBsaWtlIGN1cnJlbnQgc3ViaWQKKwkgKiB3ZSBjYW4gcmV0dXJuIHRoZSB2YWx1ZSBvZiB0 cmFuc2FjdGlvbiB2YXJpYWJsZSB3aXRob3V0IHRoaXMKKwkgKiByZWNoZWNrLgorCSAqLworCVN1 YlRyYW5zYWN0aW9uSWQgcHVyZ2Vfc3ViaWQ7CisKKwlQcmV2VmFsdWUgICpwcmV2X3ZhbHVlOwor CiAJT2lkCQkJdHlwaWQ7CiAJaW50MTYJCXR5cGxlbjsKIAlib29sCQl0eXBieXZhbDsKQEAgLTg2 LDYgKzExOCw3IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAogCWJvb2wJCW5vdF9u dWxsOwogCWJvb2wJCWlzX2ltbXV0YWJsZTsKKwlib29sCQlpc190cmFuc2FjdDsKIAogCWJvb2wJ CXJlc2V0X2F0X2VveDsKIApAQCAtMTI1LDYgKzE1OCw5IEBAIHN0YXRpYyBib29sIG5lZWRzX3Zh bGlkYXRpb24gPSBmYWxzZTsKICAqLwogc3RhdGljIGJvb2wgaGFzX3Nlc3Npb25fdmFyaWFibGVz X3dpdGhfcmVzZXRfYXRfZW94ID0gZmFsc2U7CiAKKy8qIHRydWUsIHdoZW4gdHJhbnNhY3Rpb25h bCB2YXJpYWJsZXMgd2FzIG1vZGlmaWVkICovCitzdGF0aWMgYm9vbCBoYXNfbW9kaWZpZWRfdHJh bnNhY3Rpb25hbF92YXJpYWJsZXMgPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250ZW50IG9mIHNl c3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CiAgKiBp cyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVuIHRo ZSB0cmFuc2FjdGlvbiBmYWlsZWQsCkBAIC0xNDAsNiArMTc2LDcgQEAgc3RhdGljIExpc3QgKnhh Y3RfZHJvcF9pdGVtcyA9IE5JTDsKIAogc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJp YWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lv bl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRpYyBib29sIHB1cmdlX3Nlc3Np b25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIpOwogCiAvKgogICogQ2FsbGJhY2sgZnVuY3Rpb24g Zm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9uLgpAQCAtMjk0LDggKzMzMSwyNSBAQCB1 bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKICAqIFJlbGVh c2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQogICovCiBzdGF0aWMgdm9pZAotZnJlZV9zZXNz aW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyKQorZnJlZV9zZXNzaW9uX3ZhcmlhYmxl X3ZhbHVlKFNWYXJpYWJsZSBzdmFyLCBib29sIGRlZXBfZnJlZSkKIHsKKwlpZiAoZGVlcF9mcmVl KQorCXsKKwkJUHJldlZhbHVlICpwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKwkJUHJl dlZhbHVlICpuZXh0X3ZhbHVlOworCisJCXdoaWxlIChwcmV2X3ZhbHVlKQorCQl7CisJCQlpZiAo IXN2YXItPnR5cGJ5dmFsKQorCQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihwcmV2X3ZhbHVlLT52 YWx1ZSkpOworCisJCQluZXh0X3ZhbHVlID0gcHJldl92YWx1ZS0+cHJldl92YWx1ZTsKKwkJCXBm cmVlKHByZXZfdmFsdWUpOworCisJCQlwcmV2X3ZhbHVlID0gbmV4dF92YWx1ZTsKKwkJfQorCX0K KwogCS8qIGNsZWFuIHRoZSBjdXJyZW50IHZhbHVlICovCiAJaWYgKCFzdmFyLT5pc251bGwpCiAJ ewpAQCAtMzk0LDcgKzQ0OCw3IEBAIHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGJv b2wgYXRFT1gpCiAJCQl7CiAJCQkJT2lkCQkJdmFyaWQgPSBzdmFyLT52YXJpZDsKIAotCQkJCWZy ZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCQlmcmVlX3Nlc3Npb25fdmFyaWFi bGVfdmFsdWUoc3ZhciwgdHJ1ZSk7CiAJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJp ZCwgSEFTSF9SRU1PVkUsIE5VTEwpOwogCQkJCXN2YXIgPSBOVUxMOwogCQkJfQpAQCAtNDMwLDYg KzQ4NCw5NCBAQCByZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9p ZCkKIAloYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKIH0K IAorLyoKKyAqIHJlbW92ZSBwcmV2IHZhbHVlcyBhdCBlb3gKKyAqLworc3RhdGljIHZvaWQKK3Jl bW92ZV9wcmV2X3ZhbHVlc19hdF9lb3goYm9vbCBpc0NvbW1pdCkKK3sKKwlIQVNIX1NFUV9TVEFU VVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJcmV0 dXJuOworCisJLyogbGVhdmUgcXVja2x5LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2YXJpYWJs ZXMgKi8KKwlpZiAoIWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcykKKwkJcmV0 dXJuOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisJd2hpbGUgKChz dmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCXsK KwkJaWYgKHN2YXItPmlzX3RyYW5zYWN0ICYmIHN2YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlk U3ViVHJhbnNhY3Rpb25JZCkKKwkJeworCQkJaWYgKGlzQ29tbWl0KQorCQkJeworCQkJCWlmIChw dXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIpKQorCQkJCXsKKwkJCQkJUHJldlZhbHVlICpwcmV2 X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKworCQkJCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJ CQkJeworCQkJCQkJUHJldlZhbHVlICpjdXJyZW50X3B2ID0gcHJldl92YWx1ZTsKKworCQkJCQkJ aWYgKCFzdmFyLT50eXBieXZhbCAmJiAhY3VycmVudF9wdi0+aXNudWxsKQorCQkJCQkJCXBmcmVl KERhdHVtR2V0UG9pbnRlcihjdXJyZW50X3B2LT52YWx1ZSkpOworCisJCQkJCQlwcmV2X3ZhbHVl ID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJCQkJCXBmcmVlKGN1cnJlbnRfcHYpOworCQkJ CQl9CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJz LCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQkJc3ZhciA9IE5VTEw7CisJ CQkJfQorCQkJfQorCQkJZWxzZQorCQkJeworCQkJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2 YXItPnByZXZfdmFsdWU7CisKKwkJCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJCQl7CisJCQkJCVBy ZXZWYWx1ZSAqY3VycmVudF9wdiA9IHByZXZfdmFsdWU7CisKKwkJCQkJaWYgKGN1cnJlbnRfcHYt Pm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwkJCQkJCWJyZWFrOwor CisJCQkJCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCQkJ CXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJyZW50X3B2LT52YWx1ZSkpOworCisJCQkJCXByZXZf dmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVlOworCQkJCQlwZnJlZShjdXJyZW50X3B2KTsK KwkJCQl9CisKKwkJCQlpZiAocHJldl92YWx1ZSkKKwkJCQl7CisJCQkJCXN2YXItPnZhbHVlID0g cHJldl92YWx1ZS0+dmFsdWU7CisJCQkJCXN2YXItPmlzbnVsbCA9IHByZXZfdmFsdWUtPmlzbnVs bDsKKworCQkJCQlwZnJlZShwcmV2X3ZhbHVlKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJ CQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5V TEwpOworCQkJCQlzdmFyID0gTlVMTDsKKwkJCQl9CisJCQl9CisKKwkJCS8qIFdoZW4gc3ZhciBp cyBzdGlsbCB2YWxpZCAobm90IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyAqLworCQkJaWYgKHN2 YXIpCisJCQl7CisJCQkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9u SWQ7CisJCQkJc3Zhci0+cHJldl92YWx1ZSA9IE5VTEw7CisJCQl9CisJCX0KKwl9CisKKwloYXNf bW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSBmYWxzZTsKK30KKwogLyoKICAgKiBQ ZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZvciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAg ICogYW5kIHJlbW92ZSBhbGwgZHJvcHBlZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC00Nzcs NiArNjE5LDggQEAgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQog CQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKIAl9CiAKKwlyZW1vdmVf cHJldl92YWx1ZXNfYXRfZW94KGlzQ29tbWl0KTsKKwogCS8qCiAJICogV2UgaGF2ZSB0byBjbGVh biB4YWN0X2Ryb3BfaXRlbXMuIEFsbCByZWxhdGVkIHZhcmlhYmxlcyBhcmUgZHJvcHBlZAogCSAq IG5vdywgb3IgbG9zdCBpbnNpZGUgYWJvcnRlZCB0cmFuc2FjdGlvbi4KQEAgLTYyMiw2ICs3NjYs NyBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJv b2wgaXNfd3JpdGUpCiAKIAlzdmFyLT5ub3RfbnVsbCA9IHZhcmZvcm0tPnZhcm5vdG51bGw7CiAJ c3Zhci0+aXNfaW1tdXRhYmxlID0gdmFyZm9ybS0+dmFyaXNpbW11dGFibGU7CisJc3Zhci0+aXNf dHJhbnNhY3QgPSB2YXJmb3JtLT52YXJpc3RyYW5zYWN0OwogCiAJc3Zhci0+aXNfZG9tYWluID0g KGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlzdmFy LT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwpAQCAtNjQ3LDYgKzc5MiwxNyBAQCBzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUp CiAJc3Zhci0+aXNudWxsID0gdHJ1ZTsKIAlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKIAorCWlm IChzdmFyLT5pc190cmFuc2FjdCkKKwl7CisJCXN2YXItPm1vZGlmeV9zdWJpZCA9IEdldEN1cnJl bnRTdWJUcmFuc2FjdGlvbklkKCk7CisJCWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3Zhcmlh YmxlcyA9IHRydWU7CisJfQorCWVsc2UKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gSW52YWxpZFN1 YlRyYW5zYWN0aW9uSWQ7CisKKwlzdmFyLT5wdXJnZV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2Fj dGlvbklkOworCXN2YXItPnByZXZfdmFsdWUgPSBOVUxMOworCiAJc3Zhci0+aXNfdmFsaWQgPSB0 cnVlOwogCiAJc3Zhci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxF T0lELApAQCAtNjgwLDYgKzgzNiw2OSBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7 CiB9CiAKKy8qCisgKiBUcnkgdG8gcmVtb3ZlIGFsbCBwcmV2aW91cyB2ZXJzaW9ucyByZWxhdGVk IHRvIHJldmVydGVkIHRyYW5zYWN0aW9ucy4KKyAqIFJldHVybnMgdHJ1ZSwgd2hlbiB2YWxpZCB2 ZXJzaW9uIHdhcyBmb3VuZC4KKyAqLworc3RhdGljIGJvb2wKK3B1cmdlX3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIpCit7CisJU3ViVHJhbnNhY3Rpb25JZCBjdXJyZW50X3N1YmlkOwor CVByZXZWYWx1ZQkgICAqcHJldl92YWx1ZTsKKwlib29sCQkJZm91bmQgPSB0cnVlOworCisJQXNz ZXJ0KHN2YXItPmlzX3RyYW5zYWN0KTsKKworCWlmIChzdmFyLT5tb2RpZnlfc3ViaWQgPT0gSW52 YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCXJldHVybiB0cnVlOworCisJY3VycmVudF9zdWJpZCA9 IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisKKwlpZiAoc3Zhci0+bW9kaWZ5X3N1Ymlk ID09IGN1cnJlbnRfc3ViaWQpCisJCXJldHVybiB0cnVlOworCisJaWYgKHN2YXItPnB1cmdlX3N1 YmlkID09IGN1cnJlbnRfc3ViaWQpCisJCXJldHVybiB0cnVlOworCisJaWYgKFN1YlRyYW5zYWN0 aW9uSXNBY3RpdmUoc3Zhci0+bW9kaWZ5X3N1YmlkKSkKKwl7CisJCXN2YXItPnB1cmdlX3N1Ymlk ID0gY3VycmVudF9zdWJpZDsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJcHJldl92YWx1ZSA9IHN2 YXItPnByZXZfdmFsdWU7CisKKwl3aGlsZSAocHJldl92YWx1ZSkKKwl7CisJCVByZXZWYWx1ZSAq Y3VycmVudF9wdiA9IHByZXZfdmFsdWU7CisKKwkJaWYgKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJp ZCA9PSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCB8fAorCQkJU3ViVHJhbnNhY3Rpb25Jc0FjdGl2 ZShjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQpKQorCQl7CisJCQlzdmFyLT52YWx1ZSA9IGN1cnJl bnRfcHYtPnZhbHVlOworCQkJc3Zhci0+aXNudWxsID0gY3VycmVudF9wdi0+aXNudWxsOworCQkJ c3Zhci0+bW9kaWZ5X3N1YmlkID0gY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkOworCisJCQlwcmV2 X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJCXBmcmVlKGN1cnJlbnRfcHYpOwor CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCisJCWlmICghc3Zhci0+dHlwYnl2 YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJy ZW50X3B2LT52YWx1ZSkpOworCisJCXByZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVl OworCQlwZnJlZShjdXJyZW50X3B2KTsKKwl9CisKKwlzdmFyLT5wcmV2X3ZhbHVlID0gcHJldl92 YWx1ZTsKKwlzdmFyLT5wdXJnZV9zdWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisKKwlyZXR1cm4gZm91 bmQ7Cit9CisKIC8qCiAgKiBBc3NpZ24gYSBuZXcgdmFsdWUgdG8gdGhlIHNlc3Npb24gdmFyaWFi bGUuICBJdCBpcyBjb3BpZWQgdG8KICAqIFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaWYgbmVjZXNz YXJ5LgpAQCAtNjkyLDYgKzkxMSwxMCBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUg c3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCURhdHVtCQluZXd2YWw7CiAJU1Zhcmlh YmxlRGF0YSBsb2NzdmFyLAogCQkJICAgKl9zdmFyOworCVN1YlRyYW5zYWN0aW9uSWQgY3VycmVu dF9zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisJU3ViVHJhbnNhY3Rpb25J ZCBwcmV2X3B1cmdlX3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJYm9vbAkJc2F2 ZV9wcmV2X3ZhbHVlOworCVByZXZWYWx1ZSAgKnByZXZfdmFsdWU7CiAKIAlBc3NlcnQoc3Zhcik7 CiAJQXNzZXJ0KCFpc251bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKQEAgLTcyNyw2ICs5NTAs MjEgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBi b29sIGlzbnVsbCkKIAllbHNlCiAJCV9zdmFyID0gc3ZhcjsKIAorCWlmIChfc3Zhci0+aXNfdHJh bnNhY3QgJiYgX3N2YXItPmNyZWF0ZV9sc24gPT0gc3Zhci0+Y3JlYXRlX2xzbikKKwl7CisJCUFz c2VydChzdmFyLT50eXBpZCA9PSBfc3Zhci0+dHlwaWQpOworCQlBc3NlcnQoc3Zhci0+dHlwYnl2 YWwgPT0gX3N2YXItPnR5cGJ5dmFsKTsKKwkJQXNzZXJ0KHN2YXItPnR5cGxlbiA9PSBfc3Zhci0+ dHlwbGVuKTsKKworCQlzYXZlX3ByZXZfdmFsdWUgPSBzdmFyLT5tb2RpZnlfc3ViaWQgIT0gY3Vy cmVudF9zdWJpZDsKKwkJcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisJfQorCWVsc2UK Kwl7CisJCXNhdmVfcHJldl92YWx1ZSA9IGZhbHNlOworCQlwcmV2X3ZhbHVlID0gTlVMTDsKKwl9 CisKIAlpZiAoIWlzbnVsbCkKIAl7CiAJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOwpAQCAtNzM4LDcgKzk3NiwzNyBA QCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wg aXNudWxsKQogCWVsc2UKIAkJbmV3dmFsID0gdmFsdWU7CiAKLQlmcmVlX3Nlc3Npb25fdmFyaWFi bGVfdmFsdWUoc3Zhcik7CisJaWYgKHNhdmVfcHJldl92YWx1ZSkKKwl7CisJCXZvbGF0aWxlIFBy ZXZWYWx1ZSAqbmV3X3ByZXZfdmFsdWU7CisKKwkJUEdfVFJZKCk7CisJCXsKKwkJCW5ld19wcmV2 X3ZhbHVlID0gTWVtb3J5Q29udGV4dEFsbG9jKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQsCisJCQkJ CQkJCQkJCQlzaXplb2YoUHJldlZhbHVlKSk7CisJCX0KKwkJUEdfQ0FUQ0goKTsKKwkJeworCQkJ LyogcmVsZWFzZSBtZW0gZnJvbSBwZXJzaXN0ZW50IGNvbnRlbnQgKi8KKwkJCWlmIChuZXd2YWwg IT0gdmFsdWUpCisJCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKG5ld3ZhbCkpOworCQkJUEdfUkVf VEhST1coKTsKKwkJfQorCQlQR19FTkRfVFJZKCk7CisKKwkJbmV3X3ByZXZfdmFsdWUtPnZhbHVl ID0gc3Zhci0+dmFsdWU7CisJCW5ld19wcmV2X3ZhbHVlLT5pc251bGwgPSBzdmFyLT5pc251bGw7 CisJCW5ld19wcmV2X3ZhbHVlLT5tb2RpZnlfc3ViaWQgPSBzdmFyLT5tb2RpZnlfc3ViaWQ7CisJ CW5ld19wcmV2X3ZhbHVlLT5wcmV2X3ZhbHVlID0gcHJldl92YWx1ZTsKKworCQlwcmV2X3ZhbHVl ID0gKFByZXZWYWx1ZSAqKSBuZXdfcHJldl92YWx1ZTsKKwkJcHJldl9wdXJnZV9zdWJpZCA9IHN2 YXItPnB1cmdlX3N1YmlkOworCisJCWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxl cyA9IHRydWU7CisKKwl9CisJZWxzZQorCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zh ciwgcHJldl92YWx1ZSA9PSBOVUxMKTsKIAogCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIG5ldyB2YWx1ZSIsCiAJCSBnZXRfbmFtZXNwYWNlX25h bWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCkBAIC03NTEs NiArMTAxOSw5IEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2 YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251 bGwgPSBpc251bGw7CisJc3Zhci0+bW9kaWZ5X3N1YmlkID0gY3VycmVudF9zdWJpZDsKKwlzdmFy LT5wdXJnZV9zdWJpZCA9IHByZXZfcHVyZ2Vfc3ViaWQ7CisJc3Zhci0+cHJldl92YWx1ZSA9IHBy ZXZfdmFsdWU7CiAKIAkvKiBkb24ndCBhbGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2 YXJpYWJsZSBpcyBJTU1VVEFCTEUgKi8KIAlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQpAQCAtODU0 LDYgKzExMjUsOCBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJZWxzZQogCQlz dmFyLT5pc192YWxpZCA9IGZhbHNlOwogCityZWluaXQ6CisKIAkvKgogCSAqIEZvcmNlIHNldHVw IGZvciBub3QgeWV0IGluaXRpYWxpemVkIHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5u b3QKIAkgKiBiZSB2YWxpZGF0ZWQuCkBAIC04ODYsNiArMTE1OSwyOCBAQCBnZXRfc2Vzc2lvbl92 YXJpYWJsZShPaWQgdmFyaWQpCiAJCQkgdmFyaWQpOwogCX0KIAorCS8qCisJICogVHJhbnNhY3Rp b25hbCB2YXJpYWJsZXMgc2hvdWxkIGJlIHB1cmdlZCBiZWZvcmUgKHJlbW92ZQorCSAqIHZlcnNp b25zIGNyZWF0ZWQgYnkgcG9zc2libHkgcmV2ZXJ0ZWQgc3VidHJhbnNhY3Rpb25zKS4KKwkgKi8K KwlpZiAoc3Zhci0+aXNfdHJhbnNhY3QgJiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEdldEN1 cnJlbnRTdWJUcmFuc2FjdGlvbklkKCkgJiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEludmFs aWRTdWJUcmFuc2FjdGlvbklkKQorCXsKKwkJaWYgKCFwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2 YXIpKQorCQl7CisJCQkvKiBmb3JjZSByZWluaXQgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFs c2U7CisKKwkJCS8qCisJCQkgKiBJbiBuZXh0IGl0ZXJhdGlvbiBtb2RpZnlfc3ViaWQgc2hvdWxk IGJlCisJCQkgKiBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCBvciBjdXJyZW50IHN1YmlkLAorCQkJ ICogc28gdGhlcmUgaXMgbm90IHJpc2sgb2YgaW5maW5pdHkgY3ljbGUuCisJCQkgKi8KKwkJCWdv dG8gcmVpbml0OworCQl9CisJfQorCiAJLyogZW5zdXJlIHRoZSByZXR1cm5lZCBkYXRhIGlzIHN0 aWxsIG9mIHRoZSBjb3JyZWN0IGRvbWFpbiAqLwogCWlmIChzdmFyLT5pc19kb21haW4pCiAJewpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggZWJjMGJhYmJkOTQuLjYwNTAyZGY0ODhhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTY4Myw3ICs2ODMsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCWpzb25fb2JqZWN0 X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCQkJCWpzb25fYXJyYXlfY29uc3RydWN0b3Jf bnVsbF9jbGF1c2Vfb3B0CiAKLSV0eXBlIDxib29sZWFuPgkJT3B0Tm90TnVsbCBPcHRJbW11dGFi bGUKKyV0eXBlIDxib29sZWFuPgkJT3B0Tm90TnVsbCBPcHRJbW11dGFibGUgT3B0VHJhbnNhY3Rp b25hbAogCiAvKgogICogTm9uLWtleXdvcmQgdG9rZW4gdHlwZXMuICBUaGVzZSBhcmUgaGFyZC13 aXJlZCBpbnRvIHRoZSAiZmxleCIgbGV4ZXIuCkBAIC03ODgsNyArNzg4LDcgQEAgc3RhdGljIE5v ZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKIAlTVUJTQ1JJUFRJT04gU1VCU1RSSU5HIFNVUFBPUlQgU1lNTUVUUklD IFNZU0lEIFNZU1RFTV9QIFNZU1RFTV9VU0VSCiAKIAlUQUJMRSBUQUJMRVMgVEFCTEVTQU1QTEUg VEFCTEVTUEFDRSBUQVJHRVQgVEVNUCBURU1QTEFURSBURU1QT1JBUlkgVEVYVF9QIFRIRU4KLQlU SUVTIFRJTUUgVElNRVNUQU1QIFRPIFRSQUlMSU5HIFRSQU5TQUNUSU9OIFRSQU5TRk9STQorCVRJ RVMgVElNRSBUSU1FU1RBTVAgVE8gVFJBSUxJTkcgVFJBTlNBQ1RJT04gVFJBTlNBQ1RJT05BTCBU UkFOU0ZPUk0KIAlUUkVBVCBUUklHR0VSIFRSSU0gVFJVRV9QCiAJVFJVTkNBVEUgVFJVU1RFRCBU WVBFX1AgVFlQRVNfUAogCkBAIC01MjMyLDMxICs1MjMyLDMzIEBAIGNyZWF0ZV9leHRlbnNpb25f b3B0X2l0ZW06CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIENyZWF0ZVNlc3Npb25WYXJTdG10 OgotCQkJQ1JFQVRFIE9wdFRlbXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIHF1YWxpZmllZF9uYW1l IG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9u VmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQlDUkVBVEUgT3B0VGVtcCBPcHRUcmFu c2FjdGlvbmFsIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlw ZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIg WGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4g PSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ1LT5yZWxwZXJzaXN0ZW5j ZSA9ICQyOwotCQkJCQluLT5pc19pbW11dGFibGUgPSAkMzsKLQkJCQkJbi0+dmFyaWFibGUgPSAk NTsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkNzsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRl Q2xhdXNlICopICQ4OwotCQkJCQluLT5ub3RfbnVsbCA9ICQ5OwotCQkJCQluLT5kZWZleHByID0g JDEwOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDExOworCQkJCQkkNi0+cmVscGVyc2lzdGVu Y2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDQ7CisJCQkJCW4tPmlzX3RyYW5zYWN0 ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJCQkJCW4tPnR5cGVOYW1lID0gJDg7CisJ CQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJCQkJbi0+bm90X251 bGwgPSAkMTA7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTE7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24g PSAkMTI7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIE9wdFRlbXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElG X1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVf Y2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlv bgorCQkJfCBDUkVBVEUgT3B0VGVtcCBPcHRUcmFuc2FjdGlvbmFsIE9wdEltbXV0YWJsZSBWQVJJ QUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9j b2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rp b25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUo Q3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkOC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJ CQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDg7Ci0JCQkJCW4t PnR5cGVOYW1lID0gJDEwOwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikg JDExOwotCQkJCQluLT5ub3RfbnVsbCA9ICQxMjsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMzsKLQkJ CQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxNDsKKwkJCQkJJDktPnJlbHBlcnNpc3RlbmNlID0gJDI7 CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQ0OworCQkJCQluLT5pc190cmFuc2FjdCA9ICQzOwor CQkJCQluLT52YXJpYWJsZSA9ICQ5OworCQkJCQluLT50eXBlTmFtZSA9ICQxMTsKKwkJCQkJbi0+ Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMjsKKwkJCQkJbi0+bm90X251bGwgPSAk MTM7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTQ7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTU7 CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJ CQkJfQpAQCAtNTI4NCw2ICs1Mjg2LDEyIEBAIE9wdEltbXV0YWJsZTogSU1NVVRBQkxFCQkJCQkJ CQl7ICQkID0gdHJ1ZTsgfQogCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0K IAkJOwogCitPcHRUcmFuc2FjdGlvbmFsOgorCQkJVFJBTlNBQ1RJT04JCQkJCQkJCXsgJCQgPSB0 cnVlOyB9CisJCQl8IFRSQU5TQUNUSU9OQUwJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLyog RU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJCTsKKwogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBA IC0xODA0NSw2ICsxODA1Myw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVEVYVF9QCiAJ CQl8IFRJRVMKIAkJCXwgVFJBTlNBQ1RJT04KKwkJCXwgVFJBTlNBQ1RJT05BTAogCQkJfCBUUkFO U0ZPUk0KIAkJCXwgVFJJR0dFUgogCQkJfCBUUlVOQ0FURQpAQCAtMTg2OTUsNiArMTg3MDQsNyBA QCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFRJTUVTVEFNUAogCQkJfCBUUkFJTElORwogCQkJ fCBUUkFOU0FDVElPTgorCQkJfCBUUkFOU0FDVElPTkFMCiAJCQl8IFRSQU5TRk9STQogCQkJfCBU UkVBVAogCQkJfCBUUklHR0VSCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBiZTdjZjhmMTBiNC4uM2YzYTE4ZDhj ZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYwpAQCAtNTM3Niw2ICs1Mzc2LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hp dmUgKmZvdXQpCiAJaW50CQkJaV92YXJjb2xsYXRpb247CiAJaW50CQkJaV92YXJub3RudWxsOwog CWludAkJCWlfdmFyaXNpbW11dGFibGU7CisJaW50CQkJaV92YXJpc3RyYW5zYWN0OwogCWludAkJ CWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsKIAlpbnQJCQlpLApAQCAtNTQwMCw2ICs1 NDAxLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJCSAgIiAgICAgICBFTkQg QVMgdmFyY29sbGF0aW9uLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJub3RudWxsLFxuIgogCQkJ CQkgICIgICAgICAgdi52YXJpc2ltbXV0YWJsZSxcbiIKKwkJCQkJICAiICAgICAgIHYudmFyaXN0 cmFuc2FjdCxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJk ZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm93bmVyLCB2 LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBB UyBhY2xkZWZhdWx0XG4iCkBAIC01NDIyLDYgKzU0MjQsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24i KTsKIAlpX3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAidmFybm90bnVsbCIpOwogCWlfdmFy aXNpbW11dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUiKTsKKwlpX3Zhcmlz dHJhbnNhY3QgPSBQUWZudW1iZXIocmVzLCAidmFyaXN0cmFuc2FjdCIpOwogCiAJaV92YXJvd25l ciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOwogCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJl cywgInZhcmFjbCIpOwpAQCAtNTQ1MCw2ICs1NDUzLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUg KmZvdXQpCiAJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3ZhcmNvbGxhdGlvbikpOwogCQl2YXJpbmZvW2ldLnZhcm5vdG51bGwgPSAqKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3Zhcm5vdG51bGwpKSA9PSAndCc7CiAJCXZhcmluZm9baV0udmFyaXNp bW11dGFibGUgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmlzaW1tdXRhYmxlKSkgPT0gJ3Qn OworCQl2YXJpbmZvW2ldLnZhcmlzdHJhbnNhY3QgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zh cmlzdHJhbnNhY3QpKSA9PSAndCc7CiAKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRl ZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAt NTQ5Nyw2ICs1NTAxLDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlh YmxlSW5mbyAqdmFyaW5mbykKIAljb25zdCBjaGFyICp2YXJkZWZleHByOwogCWNvbnN0IGNoYXIg KnZhcnhhY3RlbmRhY3Rpb247CiAJY29uc3QgY2hhciAqdmFyaXNpbW11dGFibGU7CisJY29uc3Qg Y2hhciAqdmFyaXN0cmFuc2FjdDsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAJYm9vbAkJdmFybm90 bnVsbDsKIApAQCAtNTUxNCwxMiArNTUxOSwxMyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91 dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8t PnZhcmNvbGxhdGlvbjsKIAl2YXJub3RudWxsID0gdmFyaW5mby0+dmFybm90bnVsbDsKIAl2YXJp c2ltbXV0YWJsZSA9IHZhcmluZm8tPnZhcmlzaW1tdXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7 CisJdmFyaXN0cmFuc2FjdCA9IHZhcmluZm8tPnZhcmlzdHJhbnNhY3QgPyAiVFJBTlNBQ1RJT05B TCAiIDogIiI7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztc biIsCiAJCQkJCSAgcXVhbHZhcm5hbWUpOwogCi0JYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJD UkVBVEUgJXNWQVJJQUJMRSAlcyBBUyAlcyIsCi0JCQkJCSAgdmFyaXNpbW11dGFibGUsIHF1YWx2 YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSAl cyVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlzdHJhbnNhY3QsIHZhcmlzaW1tdXRh YmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xs YXRpb24pKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IGNiYjA2YjY2Zjc0Li4yMmJjYWNlMzMwZSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oCkBAIC03MTIsNiArNzEyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5m bwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJp bmcgKi8KIAlib29sCQl2YXJub3RudWxsOwogCWJvb2wJCXZhcmlzaW1tdXRhYmxlOworCWJvb2wJ CXZhcmlzdHJhbnNhY3Q7CiB9IFZhcmlhYmxlSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1 bXAucGwKaW5kZXggOWViZmQ2ZGJhNzIuLjg2OWUwOWZiM2U1IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbApAQCAtNDAzMSw2ICs0MDMxLDQyIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAog CisJJ0NSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJ YWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5k cycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJB TlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU4IEFTIGludGVnZXInLAorCQly ZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1wX3Rl c3QudmFyaWFibGU4IEFTIGludGVnZXI7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVu cywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEs CisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwK KwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKKwknQ1JFQVRF IFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJ YWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5k cycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJB TlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOSBBUyBpbnRl Z2VyJywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFRSQU5TQUNUSU9OQUwgSU1NVVRB QkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTkgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlr ZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNl Y3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVt cF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJ CX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVy ID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCmluZGV4IDE1Y2E3Nzc5OTZhLi5jZTA3NGEwMGI4YiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUxNTks NyArNTE1OSw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlKQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVl cnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2Nv bHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5z bGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNl dC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MTgyLDYgKzUxODIsNyBAQCBsaXN0VmFyaWFi bGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRh bG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAg Tk9UIHYudmFybm90bnVsbCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgTk9UIHYudmFyaXNpbW11 dGFibGUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHYudmFyaXN0cmFuc2FjdCBhcyBcIiVzXCIs XG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsIDApIGFz IFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkg ICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCkBAIC01MTk0LDYgKzUxOTUs NyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOdWxsYWJs ZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTXV0YWJsZSIpLAorCQkJCQkgIGdldHRleHRfbm9v cCgiVHJhbnNhY3Rpb25hbCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiRGVmYXVsdCIpLAogCQkJ CQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIikpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmMKaW5kZXggNGQ2YTk0MzcxMmYuLjAyYzY0MWFjZDFmIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBA IC0xMjg0LDYgKzEyODQsOCBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRl cl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAuLi4gKi8KIAl7IlRF WFQgU0VBUkNIIiwgTlVMTCwgTlVMTCwgTlVMTH0sCiAJeyJUUkFOU0ZPUk0iLCBOVUxMLCBOVUxM LCBOVUxMLCBOVUxMLCBUSElOR19OT19BTFRFUn0sCisJeyJUUkFOU0FDVElPTkFMIiwgTlVMTCwg TlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwgLyogZm9y IENSRUFURSBUUkFOU0FDVElPTkFMCisJCQkJCQkJCQkJCQkJCQkJCQkJCSogVkFSSUFCTEUgLi4u ICovCiAJeyJUUklHR0VSIiwgIlNFTEVDVCB0Z25hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX3RyaWdn ZXIgV0hFUkUgdGduYW1lIExJS0UgJyVzJyBBTkQgTk9UIHRnaXNpbnRlcm5hbCJ9LAogCXsiVFlQ RSIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXN9LAogCXsiVU5JUVVF IiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVS fSwgLyogZm9yIENSRUFURSBVTklRVUUKQEAgLTM1OTYsOCArMzU5OCwxMSBAQCBwc3FsX2NvbXBs ZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCX0KIC8qIENSRUFU RSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRh aWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFT ICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlRSQU5TQUNUSU9OfFRSQU5TQUNUSU9O QUwiKSkKKwkJQ09NUExFVEVfV0lUSCgiSU1NVVRBQkxFIiwgIlZBUklBQkxFIik7CiAJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAogCQkJIFRh aWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAorCQkJ IFRhaWxNYXRjaGVzKCJUUkFOU0FDVElPTnxUUkFOU0FDVElPTkFMIiwgIlZBUklBQkxFIiwgTWF0 Y2hBbnkpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIklNTVVUQUJMRSIsICJWQVJJQUJMRSIsIE1hdGNo QW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQVMiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFS SUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXgg NjhiYzQ5YTBlMjcuLjFkYzQ0ZWRmNmU1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBA IC02MSw2ICs2MSw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9u SWQpCiAJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwogCWJvb2wJCXZhcmlzaW1tdXRhYmxlIEJL SV9ERUZBVUxUKGYpOwogCisJLyogc3VwcG9ydHMgdHJhbnNhY3Rpb25zICovCisJYm9vbAkJdmFy aXN0cmFuc2FjdCBCS0lfREVGQVVMVChmKTsKKwogCS8qIGFjdGlvbiBvbiB0cmFuc2FjdGlvbiBl bmQgKi8KIAljaGFyCQl2YXJ4YWN0ZW5kYWN0aW9uIEJLSV9ERUZBVUxUKG4pOwogCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKaW5kZXggMGNjNTYwZDUzOGYuLjFmOTgxYmE4Yzg1IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCkBAIC0zNDU5LDYgKzM0NTksNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNz aW9uVmFyU3RtdAogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxy ZWFkeSBleGlzdHMgKi8KIAlib29sCQlub3RfbnVsbDsJCS8qIGRpc2FsbG93IG51bGxzICovCiAJ Ym9vbAkJaXNfaW1tdXRhYmxlOwkvKiBkb24ndCBhbGxvdyBjaGFuZ2VzICovCisJYm9vbAkJaXNf dHJhbnNhY3Q7CS8qIHN1cHBvcnRzIHRyYW5zYWN0aW9ucyAqLwogCU5vZGUJICAgKmRlZmV4cHI7 CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0 cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oCmluZGV4IDJlODhkN2Q5NTA4Li43NTNjZjM2MGRiNCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApA QCAtNDU3LDYgKzQ1Nyw3IEBAIFBHX0tFWVdPUkQoInRpbWVzdGFtcCIsIFRJTUVTVEFNUCwgQ09M X05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRvIiwgVE8sIFJFU0VSVkVE X0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgidHJhaWxpbmciLCBUUkFJTElORywgUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyYW5zYWN0aW9uIiwgVFJB TlNBQ1RJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInRy YW5zYWN0aW9uYWwiLCBUUkFOU0FDVElPTkFMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJ0cmFuc2Zvcm0iLCBUUkFOU0ZPUk0sIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyZWF0IiwgVFJFQVQsIENPTF9OQU1FX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmlnZ2VyIiwgVFJJR0dFUiwgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXgg NDUxZmRkZTMxY2UuLjc1ZjE3M2QyMzMzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK QEAgLTU4MzMsMjAgKzU4MzMsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBD b2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwg RGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwg RGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAg IFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxh YmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1F TlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVt YSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0g cHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNz X3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMg ICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFy eWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQg ICAgICAgfCBmICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNv bWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdy ZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAog RFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAtNjMxNCw5ICs2MzE0LDkgQEAgTGlzdCBvZiBzY2hlbWFz CiAoMCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQg fCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4s IGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NDg5LDkgKzY0ODks OSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0 ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYg Im5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwg VHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0 aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVs dCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9u cy4KQEAgLTY2MjgsOSArNjYyOCw5IEBAIExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAo MCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlh YmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxs YWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJs ZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAor LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRv dHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGEyM2E5NTdlZTQxLi40MTg0YjYxNThiZiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK QEAgLTQ1LDExICs0NSwxMSBAQCBTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwog Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OwogU0VUIFJPTEUgVE8gREVGQVVM VDsKIFxkVisgc3ZhcnRlc3QudmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAg ICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMg ICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gc3ZhcnRl c3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIg fCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCi0g ICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVy IHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cworICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVy ICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQg fCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmls ZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tCisgc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJl Z3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICAg IHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAgICB8ICAg ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAK ICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOwpAQCAtMTc2MCwzICsxNzYw LDEwMyBAQCBTRUxFQ1QgdmFyMTsKIExFVCB2YXIxID0gMzA7CiBFUlJPUjogIHNlc3Npb24gdmFy aWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKIERST1AgVkFSSUFCTEUg dmFyMTsKKy0tIHRlc3QgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKK0NSRUFURSBUUkFOU0FDVElP TiBWQVJJQUJMRSB0diBBUyBpbnQgREVGQVVMVCAwOworQkVHSU47CisgIExFVCB0diA9IDEwMDsK KyAgU0VMRUNUIHR2OworIHR2ICAKKy0tLS0tCisgMTAwCisoMSByb3cpCisKK1JPTExCQUNLOwor U0VMRUNUIHR2OworIHR2IAorLS0tLQorICAwCisoMSByb3cpCisKK0xFVCB0diA9IDEwMDsKK0JF R0lOOworICBMRVQgdHYgPSAxMDAwOworQ09NTUlUOworU0VMRUNUIHR2OworICB0diAgCistLS0t LS0KKyAxMDAwCisoMSByb3cpCisKK0JFR0lOOworICBMRVQgdHYgPSAwOworICBTRUxFQ1QgdHY7 CisgdHYgCistLS0tCisgIDAKKygxIHJvdykKKworUk9MTEJBQ0s7CitTRUxFQ1QgdHY7CisgIHR2 ICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworLS0gdGVzdCBzdWJ0cmFuc2FjdGlvbnMKK0JF R0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBP SU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyB0 diAKKy0tLS0KKyAgMgorKDEgcm93KQorCisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7 CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMQorKDEgcm93KQorCitST0xMQkFDSzsKK1NF TEVDVCB0djsKKyAgdHYgIAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVU IHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAg TEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7CisgdHYgCistLS0tCisg IDIKKygxIHJvdykKKworICBMRVQgdHYgPSAxMDsKK1JPTExCQUNLIFRPIHgxOworICBTRUxFQ1Qg dHY7CisgdHYgCistLS0tCisgIDEKKygxIHJvdykKKworQ09NTUlUOworU0VMRUNUIHR2OworIHR2 IAorLS0tLQorICAxCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdHY7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggZWIzZGExZjM1ZjcuLmJjYTlhOTJl YzQ4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0x MjA3LDMgKzEyMDcsNjEgQEAgU0VMRUNUIHZhcjE7CiBMRVQgdmFyMSA9IDMwOwogCiBEUk9QIFZB UklBQkxFIHZhcjE7CisKKy0tIHRlc3QgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKK0NSRUFURSBU UkFOU0FDVElPTiBWQVJJQUJMRSB0diBBUyBpbnQgREVGQVVMVCAwOworCitCRUdJTjsKKyAgTEVU IHR2ID0gMTAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNUIHR2OworCitMRVQg dHYgPSAxMDA7CitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwMDsKK0NPTU1JVDsKKworU0VMRUNUIHR2 OworCitCRUdJTjsKKyAgTEVUIHR2ID0gMDsKKyAgU0VMRUNUIHR2OworUk9MTEJBQ0s7CisKK1NF TEVDVCB0djsKKworLS0gdGVzdCBzdWJ0cmFuc2FjdGlvbnMKKworQkVHSU47CisgIExFVCB0diA9 IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExFVCB0 diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworICBMRVQgdHYgPSAxMDsKK1JP TExCQUNLIFRPIHgxOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNUIHR2OworCitC RUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQ T0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7Cisg IExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKK0NPTU1JVDsKKwor U0VMRUNUIHR2OworCitEUk9QIFZBUklBQkxFIHR2OwotLSAKMi40NS4yCgo= --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0019-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20240801-0019-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf2z2 RnJvbSBmZTIzZDM5ZTNhOWRmODhjYzgwMDM0Y2NhOGI4M2RiOGE4ZDY2ZDRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMTc6MDY6MDQgKzAxMDAKU3ViamVjdDogW1BBVENIIDE5 LzIxXSB0aGlzIHBhdGNoIGNoYW5nZXMgZXJyb3IgbWVzc2FnZSAiY29sdW1uIGRvZXNuJ3QgZXhp c3QiCiB0byBtZXNzYWdlICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lc24ndCBleGlzdCIKClRoZSBl cnJvciBtZXNzYWdlIHdpbGwgYmUgbW9yZSBjb3JyZWN0LiBUb2RheSwgbWlzc2luZyBQTC9wZ1NR TCB2YXJpYWJsZSBjYW4gYmUgcmVwb3J0ZWQuIFRoZSBjaGFuZ2UgaGFzCmltcGFjdCBvbiBsb3Qg b2YgcmVncmVzcyB0ZXN0cyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxl cywgYW5kIHRoZW4gaXQgaXMgZGlzdHJpYnV0ZWQgYXMgc2VwYXJhdGUgcGF0Y2gKLS0tCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgMjQgKysrKysrKysrKyst LS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICA4ICsr Ky0tCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oICAgICAgICAgICAgICAgfCAgMiAr Kwogc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0IHwgIDIgKy0K IC4uLi9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQgICB8ICA0ICstLQog Li4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IHwgIDIgKy0KIHNy Yy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQgICAgICAgICB8IDEyICsrKy0tLS0K IC4uLi9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQgICAgIHwgMzIgKysrKysr KysrLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgICAgICAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dCAgICAgICAg ICB8ICA4ICsrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0ICAgICAgICAg ICAgfCAxMiArKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgICAgICAg ICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAg ICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAg ICAgfCAgMiArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAg IHwgIDYgKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0ICAg IHwgIDQgKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCAgICAgICAgICAg fCAgMiArLQogMjEgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggMzM3MGUyZmZmOWEuLjNjYWEwODVkMTUx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyMiw3ICs1MjIsNyBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIHBy aW50ZWQuICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIGNhbm5vdCBiZQogICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3Ig bWVzc2FnZS4KICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIHsKIAlib29sCQlyZXN1bHQg PSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggYmRlNWIxMTE4YzUu LjkzYTU4OThjNmMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRp b24uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAtMjcsNiAr MjcsNyBAQAogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25v ZGVGdW5jcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9lbnIuaCIKKyNpbmNsdWRlICJwYXJz ZXIvcGFyc2VfZXhwci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5o IgpAQCAtMzY1NSw2ICszNjU2LDE5IEBAIGVycm9yTWlzc2luZ1JURShQYXJzZVN0YXRlICpwc3Rh dGUsIFJhbmdlVmFyICpyZWxhdGlvbikKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg cmVsYXRpb24tPmxvY2F0aW9uKSkpOwogfQogCisvKgorICogc2V0IG1lc3NhZ2UgImNvbHVtbiBk b2VzIG5vdCBleGlzdCIgb3IgImNvbHVtbiBvciB2YXJpYWJsZSBkb2VzIG5vdCBleGlzdCIKKyAq IGluIGRlcGVuZGVuY3kgaWYgZXhwcmVzc2lvbiBjb250ZXh0IGFsbG93cyBzZXNzaW9uIHZhcmlh Ymxlcy4KKyAqLworc3RhdGljIGludAorY29sdW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0 cyhQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IGNoYXIgKmNvbG5hbWUpCit7CisJaWYgKGV4cHJf a2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJCXJl dHVybiBlcnJtc2coImNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBj b2xuYW1lKTsKKwllbHNlCisJCXJldHVybiBlcnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3Qg ZXhpc3QiLCBjb2xuYW1lKTsKK30KKwogLyoKICAqIEdlbmVyYXRlIGEgc3VpdGFibGUgZXJyb3Ig YWJvdXQgYSBtaXNzaW5nIGNvbHVtbi4KICAqCkBAIC0zNjg5LDcgKzM3MDMsNyBAQCBlcnJvck1p c3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9DT0xVTU4pLAogCQkJCQkgcmVsbmFtZSA/CiAJCQkJCSBlcnJtc2coImNvbHVtbiAl cy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkJIGVycm1zZygi Y29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCQkgY29sdW1uX29y X3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCQkgZXJyZGV0 YWlsKCJUaGVyZSBhcmUgY29sdW1ucyBuYW1lZCBcIiVzXCIsIGJ1dCB0aGV5IGFyZSBpbiB0YWJs ZXMgdGhhdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnku IiwKIAkJCQkJCQkgICBjb2xuYW1lKSwKIAkJCQkJICFyZWxuYW1lID8gZXJyaGludCgiVHJ5IHVz aW5nIGEgdGFibGUtcXVhbGlmaWVkIG5hbWUuIikgOiAwLApAQCAtMzY5OSw3ICszNzEzLDcgQEAg ZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkoZXJyY29kZShFUlJD T0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkgZXJybXNnKCJjb2x1 bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJIGVycm1z ZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCSBjb2x1bW5f b3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJIGVycmRl dGFpbCgiVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgXCIlc1wiIGluIHRhYmxlIFwiJXNcIiwgYnV0 IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4iLAog CQkJCQkJICAgY29sbmFtZSwgc3RhdGUtPnJleGFjdDEtPmVyZWYtPmFsaWFzbmFtZSksCiAJCQkJ IHJ0ZV92aXNpYmxlX2lmX2xhdGVyYWwocHN0YXRlLCBzdGF0ZS0+cmV4YWN0MSkgPwpAQCAtMzcx NywxNCArMzczMSwxNCBAQCBlcnJvck1pc3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAog CQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCQkgcmVsbmFtZSA/ CiAJCQkJCSBlcnJtc2coImNvbHVtbiAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNv bG5hbWUpIDoKLQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNv bG5hbWUpLAorCQkJCQkgY29sdW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUs IGNvbG5hbWUpLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7 CiAJCS8qIEhhbmRsZSBjYXNlIHdoZXJlIHdlIGhhdmUgYSBzaW5nbGUgYWx0ZXJuYXRpdmUgc3Bl bGxpbmcgdG8gb2ZmZXIgKi8KIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RF X1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkgZXJybXNnKCJjb2x1bW4g JXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJIGVycm1zZygi Y29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCSBjb2x1bW5fb3Jf dmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJIGVycmhpbnQo IlBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uIFwiJXMuJXNcIi4iLAog CQkJCQkJIHN0YXRlLT5yZmlyc3QtPmVyZWYtPmFsaWFzbmFtZSwKIAkJCQkJCSBzdHJWYWwobGlz dF9udGgoc3RhdGUtPnJmaXJzdC0+ZXJlZi0+Y29sbmFtZXMsCkBAIC0zNzM4LDcgKzM3NTIsNyBA QCBlcnJvck1pc3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCShlcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNv bHVtbiAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJy bXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVt bl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJy aGludCgiUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gXCIlcy4lc1wi IG9yIHRoZSBjb2x1bW4gXCIlcy4lc1wiLiIsCiAJCQkJCQkgc3RhdGUtPnJmaXJzdC0+ZXJlZi0+ YWxpYXNuYW1lLAogCQkJCQkJIHN0clZhbChsaXN0X250aChzdGF0ZS0+cmZpcnN0LT5lcmVmLT5j b2xuYW1lcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCBlZTZmY2QwNTAzYS4uZTdk Y2MxNmI1ZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTc3Niw3ICs3NzYsOSBA QCB0cmFuc2Zvcm1Bc3NpZ25tZW50SW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ aWYgKCF0eXByZWxpZCkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3QgYXNzaWduIHRvIGZp ZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgaXRzIHR5cGUgJXMgaXMgbm90IGEg Y29tcG9zaXRlIHR5cGUiLAorCQkJCQkJIGVycm1zZyhleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25f dmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpID8KKwkJCQkJCQkJICJjYW5ub3QgYXNzaWdu IHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgXCIlc1wiIGJlY2F1c2UgaXRz IHR5cGUgJXMgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiIDoKKwkJCQkJCQkJICJjYW5ub3QgYXNz aWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgaXRzIHR5cGUgJXMg aXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAogCQkJCQkJCQlzdHJWYWwobiksIHRhcmdldE5hbWUs CiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkpLAogCQkJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpAQCAtNzg1LDcgKzc4Nyw5IEBAIHRyYW5z Zm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlpZiAoYXR0 bnVtID09IEludmFsaWRBdHRyTnVtYmVyKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAotCQkJCQkJIGVycm1zZygiY2Fubm90IGFz c2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIFwiJXNcIiBiZWNhdXNlIHRoZXJlIGlzIG5v IHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9h bGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkg ImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVz XCIgYmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiIDoKKwkJ CQkJCQkJICJjYW5ub3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJl Y2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlICVzIiwKIAkJCQkJCQkJ c3RyVmFsKG4pLCB0YXJnZXROYW1lLAogCQkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBl SWQpKSwKIAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfZXhwci5oCmluZGV4IDBkNjRiMzAwZjhhLi5lNWFlYmY5OWI0YSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfZXhwci5oCkBAIC0yMyw0ICsyMyw2IEBAIGV4dGVybiBOb2RlICp0cmFuc2Zv cm1FeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHBy S2luCiAKIGV4dGVybiBjb25zdCBjaGFyICpQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5k IGV4cHJLaW5kKTsKIAorZXh0ZXJuIGJvb2wgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3Zhcmlh YmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKTsKKwogI2VuZGlmCQkJCQkJCS8qIFBBUlNF X0VYUFJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdz cWxfYXJyYXkub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXku b3V0CmluZGV4IGFkNjBlMGU4YmUzLi5jMWFiOWZkN2VkOSAxMDA2NDQKLS0tIGEvc3JjL3BsL3Bs cGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0CisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9leHBlY3RlZC9wbHBnc3FsX2FycmF5Lm91dApAQCAtNDEsNyArNDEsNyBAQCBOT1RJQ0U6 ICBhID0geyIoLDExKSJ9LCBhWzFdLmkgPSAxMQogLS0gcGVyaGFwcyB0aGlzIG91Z2h0IHRvIHdv cmssIGJ1dCBmb3Igbm93IGl0IGRvZXNuJ3Q6CiBkbyAkJCBkZWNsYXJlIGEgY29tcGxleFtdOwog YmVnaW4gYVsxOjJdLmkgOj0gYXJyYXlbMTEsMTJdOyByYWlzZSBub3RpY2UgJ2EgPSAlJywgYTsg ZW5kJCQ7Ci1FUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgImkiIG9mIGNvbHVtbiAiYSIg YmVjYXVzZSBpdHMgdHlwZSBjb21wbGV4W10gaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKK0VSUk9S OiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAiaSIgb2YgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBi ZWNhdXNlIGl0cyB0eXBlIGNvbXBsZXhbXSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQogTElORSAx OiBhWzE6Ml0uaSA6PSBhcnJheVsxMSwxMl0KICAgICAgICAgXgogUVVFUlk6ICBhWzE6Ml0uaSA6 PSBhcnJheVsxMSwxMl0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3JlY29yZC5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9y ZWNvcmQub3V0CmluZGV4IGE5YjViNzc4ZWZjLi4wN2FiYzJlODRkNCAxMDA2NDQKLS0tIGEvc3Jj L3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dAorKysgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CkBAIC0xMzUsNyArMTM1LDcg QEAgRVJST1I6ICByZWNvcmQgImMiIGhhcyBubyBmaWVsZCAieCIKIENPTlRFWFQ6ICBQTC9wZ1NR TCBhc3NpZ25tZW50ICJjLngucTEgPSAxIgogUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVf YmxvY2sgbGluZSAxIGF0IGFzc2lnbm1lbnQKIGRvICQkIGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7 IGJlZ2luIGMuYzIueCA9IDE7IGVuZCAkJDsKLUVSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVs ZCAieCIgb2YgY29sdW1uICJjIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRh dGEgdHlwZSB0d29faW50OHMKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2Yg Y29sdW1uIG9yIHZhcmlhYmxlICJjIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGlu IGRhdGEgdHlwZSB0d29faW50OHMKIExJTkUgMTogYy5jMi54ID0gMQogICAgICAgICBeCiBRVUVS WTogIGMuYzIueCA9IDEKQEAgLTE1Nyw3ICsxNTcsNyBAQCBFUlJPUjogIHJlY29yZCAiYyIgaGFz IG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3BnU1FMIGFzc2lnbm1lbnQgImIuYy54LnExID0g MSIKIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBhc3NpZ25t ZW50CiBkbyAkJCA8PGI+PiBkZWNsYXJlIGMgbmVzdGVkX2ludDhzOyBiZWdpbiBiLmMuYzIueCA9 IDE7IGVuZCAkJDsKLUVSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1u ICJiIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0d29faW50 OHMKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1uIG9yIHZhcmlh YmxlICJiIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0d29f aW50OHMKIExJTkUgMTogYi5jLmMyLnggPSAxCiAgICAgICAgIF4KIFFVRVJZOiAgYi5jLmMyLngg PSAxCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNz aW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUub3V0CmluZGV4IDc4OWMzMTIzYjBjLi5mMDA2ZGI0ZmFhOCAxMDA2NDQK LS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJs ZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQKQEAgLTIzMiw3ICsyMzIsNyBAQCBTRVQgUk9MRSBUTyBERUZBVUxUOwogU0VU IFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOwogLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBu b3QgY3Jhc2gKIFNFTEVDVCB2YXJfcmVhZF9mdW5jKCk7Ci1FUlJPUjogIGNvbHVtbiAicGxwZ3Nx bF9zdl92YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInBs cGdzcWxfc3ZfdmFyMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogcGxwZ3NxbF9zdl92YXIxCiAg ICAgICAgIF4KIFFVRVJZOiAgcGxwZ3NxbF9zdl92YXIxCmRpZmYgLS1naXQgYS9zcmMvcGwvdGNs L2V4cGVjdGVkL3BsdGNsX3F1ZXJpZXMub3V0IGIvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9x dWVyaWVzLm91dAppbmRleCAzNWNjNmU2MmFhZC4uNDk3Y2QzODE4OWIgMTAwNjQ0Ci0tLSBhL3Ny Yy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQKKysrIGIvc3JjL3BsL3RjbC9leHBl Y3RlZC9wbHRjbF9xdWVyaWVzLm91dApAQCAtNDUwLDEyICs0NTAsMTIgQEAgQ09OVEVYVDogIHdo aWxlIGV4ZWN1dGluZwogIl9fUExUY2xfcHJvY190Y2xfZXZhbF90ZXh0IHNwaV9wcmVwYXJlXCBh XCBcImJcIFx7XCIiCiBpbiBQTC9UY2wgZnVuY3Rpb24gdGNsX2V2YWwodGV4dCkKIHNlbGVjdCB0 Y2xfZXJyb3JfaGFuZGxpbmdfdGVzdCgkdGNsJHNwaV9wcmVwYXJlICJzZWxlY3QgbW9vIiBbXSR0 Y2wkKTsKLSAgICAgICB0Y2xfZXJyb3JfaGFuZGxpbmdfdGVzdCAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFNRTFNUQVRFOiA0MjcwMyAgICAgICAgICAg ICAgICAgICAgICsKLSBjb25kaXRpb246IHVuZGVmaW5lZF9jb2x1bW4gICAgICAgICArCi0gY3Vy c29yX3Bvc2l0aW9uOiA4ICAgICAgICAgICAgICAgICAgKwotIG1lc3NhZ2U6IGNvbHVtbiAibW9v IiBkb2VzIG5vdCBleGlzdCsKKyAgICAgICAgICAgICB0Y2xfZXJyb3JfaGFuZGxpbmdfdGVzdCAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNRTFNUQVRFOiA0MjcwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyBjb25kaXRpb246IHVuZGVmaW5lZF9jb2x1bW4gICAgICAgICAgICAgICAgICAgICArCisg Y3Vyc29yX3Bvc2l0aW9uOiA4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworIG1lc3Nh Z2U6IGNvbHVtbiBvciB2YXJpYWJsZSAibW9vIiBkb2VzIG5vdCBleGlzdCsKICBzdGF0ZW1lbnQ6 IHNlbGVjdCBtb28KICgxIHJvdykKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4 cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVk L3Nlc3Npb24tdmFyaWFibGUub3V0CmluZGV4IDE5YTJlNWE4ZjY0Li4xYzQxNDlmNmVmMSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0 CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApA QCAtMTAsNyArMTAsNyBAQCB0ZXN0CiAKIHN0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsK IHN0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Ci1FUlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibXl2YXIiIGRvZXMgbm90IGV4aXN0 CiAKIHN0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQogc3RlcCBs ZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKQEAgLTIzLDcgKzIzLDcgQEAgdGVzdAogc3RlcCBzMTog QkVHSU47CiBzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CiBzdGVwIHZhbDogU0VMRUNU IG15dmFyOwotRVJST1I6ICBjb2x1bW4gIm15dmFyIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgIm15dmFyIiBkb2VzIG5vdCBleGlzdAogc3RlcCBzcjE6IFJPTExC QUNLOwogCiBzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJn IHZhbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dAppbmRleCA3OWNm ODJiNWFlZC4uZWIzMTBkNGUxOTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYWx0ZXJfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJf dGFibGUub3V0CkBAIC0xMzA5LDE5ICsxMzA5LDE5IEBAIHNlbGVjdCAqIGZyb20gYXRhY2MxOwog KDEgcm93KQogCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSBhOwotRVJST1I6ICBjb2x1 bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9l cyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgYTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFj YzEgb3JkZXIgYnkgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iOwotRVJST1I6ICBjb2x1 bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjog IGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBu b3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5IGE7Ci1FUlJPUjogIGNvbHVt biAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSBhOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNj MSBncm91cCBieSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVt biAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5v dCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5w Zy5kcm9wcGVkLjEuLi4uLi4uLiIuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogc2VsZWN0IGF0YWNjMS4qIGZyb20gYXRhY2MxOwpAQCAtMTMzMSw3ICsxMzMxLDcg QEAgc2VsZWN0IGF0YWNjMS4qIGZyb20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgYSBmcm9t IGF0YWNjMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBhIGZyb20g YXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2VsZWN0IGF0YWNjMS5hIGZyb20gYXRhY2MxOwpA QCAtMTM0NSwxNSArMTM0NSwxNSBAQCBzZWxlY3QgYixjLGQgZnJvbSBhdGFjYzE7CiAoMSByb3cp CiAKIHNlbGVjdCBhLGIsYyxkIGZyb20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMg bm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogc2VsZWN0IGEsYixjLGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBz ZWxlY3QgKiBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIHdoZXJlIGEgPSAxOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4u Li4uLi4iIGZyb20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4x Li4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4u Li4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0 ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAgICAgICAg ICAgIF4KIHNlbGVjdCBhdGFjYzEuIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20g YXRhY2MxOwpAQCAtMTM2MSwxMSArMTM2MSwxMSBAQCBFUlJPUjogIGNvbHVtbiBhdGFjYzEuLi4u Li4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg YXRhY2MxLiIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAg ICAgICAgICAgIF4KIHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIsYixjLGQg ZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgIi4uLi4u Li4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLGIsYyxkIGZyb20gYXRhY2MxOwogICAgICAgICAgICAg ICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4u Li4uLi4iID0gMTsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4u IiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcu ZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20g YXRhY2MxIHdoZXJlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IC4uLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBVUERBVEVzCkBAIC0xMzc0LDcgKzEz NzQsNyBAQCBFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImF0YWNjMSIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYSA9IDM7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KIHVwZGF0ZSBhdGFjYzEgc2V0IGIgPSAyIHdoZXJlIGEgPSAzOwotRVJST1I6 ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi YSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUg YSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBh dGFjYzEgc2V0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CkBAIC0xMzgyLDcg KzEzODIsNyBAQCBFUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIg b2YgcmVsYXRpb24gImF0YWNjMSIgZG9lcyBub3QgZXhpcwogTElORSAxOiB1cGRhdGUgYXRhY2Mx IHNldCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiB1cGRhdGUgYXRhY2MxIHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5k cm9wcGVkLjEuLi4uLi4uLiIgPSAzOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBl ZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBk YXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i Li4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIElOU0VSVHMK QEAgLTE0MzAsMTEgKzE0MzAsMTEgQEAgTElORSAxOiBpbnNlcnQgaW50byBhdGFjYzEgKCIuLi4u Li4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIixiLGMsZCkgdmEuLi4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiAtLSBERUxFVEVzCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDM7 Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZh cmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBkZWxldGUgZnJvbSBhdGFjYzEgd2hl cmUgYSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBkZWxldGUgZnJv bSBhdGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKLUVSUk9S OiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4u Li5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogZGVsZXRlIGZyb20gYXRhY2MxOwpAQCAtMTcyMCw3ICsxNzIwLDcgQEAgc2VsZWN0 IGYxIGZyb20gYzE7CiAKIGFsdGVyIHRhYmxlIGMxIGRyb3AgY29sdW1uIGYxOwogc2VsZWN0IGYx IGZyb20gYzE7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSBm cm9tIGMxOwogICAgICAgICAgICAgICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJl ZmVyZW5jZSB0aGUgY29sdW1uICJjMS5mMiIuCkBAIC0xNzM0LDcgKzE3MzQsNyBAQCBFUlJPUjog IGNhbm5vdCBkcm9wIGluaGVyaXRlZCBjb2x1bW4gImYxIgogYWx0ZXIgdGFibGUgcDEgZHJvcCBj b2x1bW4gZjE7CiAtLSBjMS5mMSBpcyBkcm9wcGVkIG5vdywgc2luY2UgdGhlcmUgaXMgbm8gbG9j YWwgZGVmaW5pdGlvbiBmb3IgaXQKIHNlbGVjdCBmMSBmcm9tIGMxOwotRVJST1I6ICBjb2x1bW4g ImYxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgZjEgZnJvbSBjMTsKICAgICAgICAgICAgICAgIF4K IEhJTlQ6ICBQZXJoYXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiAiYzEuZjIi LgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAppbmRleCA5MzE1NDJmMjY4OS4uYjQ4OTcw ZTU2YWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CkBAIC0xNDQsNyArMTQ0LDcg QEAgTElORSAxOiBDT1BZIHggVE8gc3Rkb3V0IFdIRVJFIGEgPSAxOwogQ09QWSB4IGZyb20gc3Rk aW4gV0hFUkUgYSA9IDUwMDA0OwogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgYSA+IDYwMDAzOwog Q09QWSB4IGZyb20gc3RkaW4gV0hFUkUgZiA+IDYwMDAzOwotRVJST1I6ICBjb2x1bW4gImYiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZiIgZG9lcyBub3QgZXhp c3QKIExJTkUgMTogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgZiA+IDYwMDAzOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBhID0gbWF4 KHguYik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKaW5kZXggOGM1Mjc0NzRkYWYu LmU1M2FlNDUxZGZjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9y cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0CkBAIC0yNyw3 ICsyNyw3IEBAIExJTkUgMTogc2VsZWN0ICogZnJvbSBub25lc3VjaDsKICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBiYWQgbmFtZSBpbiB0YXJnZXQgbGlzdAogc2VsZWN0IG5vbmVzdWNoIGZy b20gcGdfZGF0YWJhc2U7Ci1FUlJPUjogIGNvbHVtbiAibm9uZXN1Y2giIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibm9uZXN1Y2giIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IHNlbGVjdCBub25lc3VjaCBmcm9tIHBnX2RhdGFiYXNlOwogICAgICAgICAgICAgICAg XgogLS0gZW1wdHkgZGlzdGluY3QgbGlzdCBpc24ndCBPSwpAQCAtMzcsMTcgKzM3LDE3IEBAIExJ TkUgMTogc2VsZWN0IGRpc3RpbmN0IGZyb20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBiYWQgYXR0cmlidXRlIG5hbWUgb24gbGhzIG9mIG9wZXJhdG9yCiBzZWxl Y3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmFt ZTsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0 ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBub25lc3VjaCA9IHBnX2RhdGFiYXNlLmRhdG5hLi4u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gYmFkIGF0dHJp YnV0ZSBuYW1lIG9uIHJocyBvZiBvcGVyYXRvcgogc2VsZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3 aGVyZSBwZ19kYXRhYmFzZS5kYXRuYW1lID0gbm9uZXN1Y2g7Ci1FUlJPUjogIGNvbHVtbiAibm9u ZXN1Y2giIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibm9uZXN1 Y2giIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IC4uLmVjdCAqIGZyb20gcGdfZGF0YWJhc2Ugd2hl cmUgcGdfZGF0YWJhc2UuZGF0bmFtZSA9IG5vbmVzdWNoOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmli dXRlIG5hbWUgaW4gc2VsZWN0IGRpc3RpbmN0IG9uCiBzZWxlY3QgZGlzdGluY3Qgb24gKGZvb2Jh cikgKiBmcm9tIHBnX2RhdGFiYXNlOwotRVJST1I6ICBjb2x1bW4gImZvb2JhciIgZG9lcyBub3Qg ZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmb29iYXIiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFyKSAqIGZyb20gcGdfZGF0YWJhc2U7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gZ3JvdXBpbmcgd2l0aCBGT1IgVVBE QVRFCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAppbmRleCA1M2Y3MGQ3MmVkNi4uNjYxYmIx YTMwZGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dApAQCAtNjIzMCwxMyArNjIzMCwx MyBAQCBMSU5FIDE6IHNlbGVjdCB0Mi51dW5pcXVlMSBmcm9tCiBISU5UOiAgUGVyaGFwcyB5b3Ug bWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IHV1bmlx dWUxIGZyb20KICAgdGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0t IGVycm9yLCBzdWdnZXN0IGJvdGggYXQgb25jZQotRVJST1I6ICBjb2x1bW4gInV1bmlxdWUxIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInV1bmlxdWUxIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgdXVuaXF1ZTEgZnJvbQogICAgICAgICAgICAgICAg XgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJ0MS51 bmlxdWUxIiBvciB0aGUgY29sdW1uICJ0Mi51bmlxdWUxIi4KIHNlbGVjdCBjdGlkIGZyb20KICAg dGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBuZWVk IHF1YWxpZmljYXRpb24KLUVSUk9SOiAgY29sdW1uICJjdGlkIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImN0aWQiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNl bGVjdCBjdGlkIGZyb20KICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGFyZSBjb2x1 bW5zIG5hbWVkICJjdGlkIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSBy ZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KQEAgLTczMzMsNyArNzMzMyw3 IEBAIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20gaW50OF90YmwgdDEsCiAKIC0tIHRlc3Qgc29tZSBl cnJvciBjYXNlcyB3aGVyZSBMQVRFUkFMIHNob3VsZCBoYXZlIGJlZW4gdXNlZCBidXQgd2Fzbid0 CiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEsIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJP UjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJs ZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90Ymwg YSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4g dGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2Yg dGhlIHF1ZXJ5LgpAQCAtNzM0NSw3ICs3MzQ1LDcgQEAgTElORSAxOiBzZWxlY3QgZjEsZyBmcm9t IGludDRfdGJsIGEsIChzZWxlY3QgYS5mMSBhcyBnKSBzczsKIERFVEFJTDogIFRoZXJlIGlzIGFu IGVudHJ5IGZvciB0YWJsZSAiYSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRo aXMgcGFydCBvZiB0aGUgcXVlcnkuCiBISU5UOiAgVG8gcmVmZXJlbmNlIHRoYXQgdGFibGUsIHlv dSBtdXN0IG1hcmsgdGhpcyBzdWJxdWVyeSB3aXRoIExBVEVSQUwuCiBzZWxlY3QgZjEsZyBmcm9t IGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwotRVJST1I6ICBjb2x1 bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBk b2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mg am9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5h bWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0 aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzM4Miw3ICs3MzgyLDcgQEAgTElORSAxOiBzZWxl Y3QgMSBmcm9tIHRlbmsxIGEsIGxhdGVyYWwgKHNlbGVjdCBtYXgoYS51bmlxdWUxKSBmcm9tIGku Li4KIGNyZWF0ZSB0ZW1wIHRhYmxlIHh4MSBhcyBzZWxlY3QgZjEgYXMgeDEsIC1mMSBhcyB4MiBm cm9tIGludDRfdGJsOwogLS0gZXJyb3IsIGNhbid0IGRvIHRoaXM6CiB1cGRhdGUgeHgxIHNldCB4 MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7Ci1F UlJPUjogIGNvbHVtbiAieDEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJp YWJsZSAieDEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IC4uLiBzZXQgeDIgPSBmMSBmcm9tIChz ZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpIHNzOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJ TDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJ4MSIgaW4gdGFibGUgInh4MSIsIGJ1dCBpdCBj YW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCkBAIC03NDAy LDcgKzc0MDIsNyBAQCB1cGRhdGUgeHgxIHNldCB4MiA9IGYxIGZyb20geHgxLCBsYXRlcmFsIChz ZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpCiBFUlJPUjogIHRhYmxlIG5hbWUg Inh4MSIgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlCiAtLSBhbHNvIGVycm9yczoKIGRlbGV0ZSBm cm9tIHh4MSB1c2luZyAoc2VsZWN0ICogZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsK LUVSUk9SOiAgY29sdW1uICJ4MSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZh cmlhYmxlICJ4MSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4udGUgZnJvbSB4eDEgdXNpbmcg KHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVU QUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0 IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dAppbmRleCBkYmJkYTcyZDM5NS4uZDk4Nzkz ZjkyYTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQKQEAgLTIzLDcg KzIzLDcgQEAgQkVHSU47CiBTRVQgc2VhcmNoX3BhdGggdG8gcHVibGljLCB0ZXN0X25zX3NjaGVt YV8xOwogQ1JFQVRFIFNDSEVNQSB0ZXN0X25zX3NjaGVtYV8yCiAgICAgICAgQ1JFQVRFIFZJRVcg YWJjX3ZpZXcgQVMgU0VMRUNUIGMgRlJPTSBhYmM7Ci1FUlJPUjogIGNvbHVtbiAiYyIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJjIiBkb2VzIG5vdCBleGlzdAog TElORSAyOiAgICAgICAgQ1JFQVRFIFZJRVcgYWJjX3ZpZXcgQVMgU0VMRUNUIGMgRlJPTSBhYmM7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogQ09NTUlU OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQKaW5kZXggNzE3YTIzN2Rm OTguLjM4NWM0YjFiNGNjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251 bWVyb2xvZ3kub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5v dXQKQEAgLTMxNCw3ICszMTQsNyBAQCBOT1RJQ0U6ICBpID0gMTAwMgogTk9USUNFOiAgaSA9IDEw MDMKIC0tIGVycm9yIGNhc2VzCiBTRUxFQ1QgXzEwMDsKLUVSUk9SOiAgY29sdW1uICJfMTAwIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIl8xMDAiIGRvZXMgbm90 IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCBfMTAwOwogICAgICAgICAgICAgICAgXgogU0VMRUNUIDEw MF87CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dAppbmRleCAwNzRhZjhmMzNhOC4u MGE3YTlmZWI2ZTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3Nx bC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dApAQCAtMjU5 OCw3ICsyNTk4LDcgQEAgZW5kOyAkJCBsYW5ndWFnZSBwbHBnc3FsOwogLS0gc2hvdWxkIGZhaWw6 IFNRTFNUQVRFIGFuZCBTUUxFUlJNIGFyZSBvbmx5IGluIGRlZmluZWQgRVhDRVBUSU9OCiAtLSBi bG9ja3MKIHNlbGVjdCBleGNwdF90ZXN0MSgpOwotRVJST1I6ICBjb2x1bW4gInNxbHN0YXRlIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInNxbHN0YXRlIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAgICAgICBeCiBRVUVSWTogIHNxbHN0YXRl CkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBiZWdpbgogZW5kOyAkJCBsYW5ndWFnZSBwbHBnc3FsOwog LS0gc2hvdWxkIGZhaWwKIHNlbGVjdCBleGNwdF90ZXN0MigpOwotRVJST1I6ICBjb2x1bW4gInNx bHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInNxbHN0 YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAgICAgICBeCiBRVUVSWTog IHNxbHN0YXRlCkBAIC00Njc1LDcgKzQ2NzUsNyBAQCBCRUdJTgogICAgICAgICBSQUlTRSBOT1RJ Q0UgJyUsICUnLCByLnJvb21ubywgci5jb21tZW50OwogICAgIEVORCBMT09QOwogRU5EJCQ7Ci1F UlJPUjogIGNvbHVtbiAiZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgImZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIHJ0cmltKHJvb21ubykg QVMgcm9vbW5vLCBmb28gRlJPTSBSb29tIE9SREVSIEJZIHJvb21uLi4uCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogUVVFUlk6ICBTRUxFQ1QgcnRyaW0ocm9vbW5v KSBBUyByb29tbm8sIGZvbyBGUk9NIFJvb20gT1JERVIgQlkgcm9vbW5vCkBAIC00NzE3LDcgKzQ3 MTcsNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3ggPSAlJywgeDsKIGVuZDsKICQkOwotRVJS T1I6ICBjb2x1bW4gIngiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJs ZSAieCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogeCArIDEKICAgICAgICAgXgogUVVFUlk6ICB4 ICsgMQpAQCAtNDcyOSw3ICs0NzI5LDcgQEAgYmVnaW4KICAgcmFpc2Ugbm90aWNlICd4ID0gJSwg eSA9ICUnLCB4LCB5OwogZW5kOwogJCQ7Ci1FUlJPUjogIGNvbHVtbiAieCIgZG9lcyBub3QgZXhp c3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4IiBkb2VzIG5vdCBleGlzdAogTElORSAx OiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHggKyAxCkBAIC01NzY5LDcgKzU3NjksNyBAQCBB TFRFUiBUQUJMRSBhbHRlcl90YWJsZV91bmRlcl90cmFuc2l0aW9uX3RhYmxlcwogICBEUk9QIGNv bHVtbiBuYW1lOwogVVBEQVRFIGFsdGVyX3RhYmxlX3VuZGVyX3RyYW5zaXRpb25fdGFibGVzCiAg IFNFVCBpZCA9IGlkOwotRVJST1I6ICBjb2x1bW4gIm5hbWUiIGRvZXMgbm90IGV4aXN0CitFUlJP UjogIGNvbHVtbiBvciB2YXJpYWJsZSAibmFtZSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogKFNF TEVDVCBzdHJpbmdfYWdnKGlkIHx8ICc9JyB8fCBuYW1lLCAnLCcpIEZST00gZCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBRVUVSWTogIChTRUxFQ1Qgc3RyaW5n X2FnZyhpZCB8fCAnPScgfHwgbmFtZSwgJywnKSBGUk9NIGQpCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w c3FsLm91dAppbmRleCBmNzA4MjYzOTYwNS4uNDUxZmRkZTMxY2UgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dApAQCAtMTIwLDcgKzEyMCw3IEBAIFNFTEVDVCAkMSwgJDIgXGJpbmQgJ2Zv bycgJ2JhcicgXGcKIC0tIGVycm9ycwogLS0gcGFyc2UgZXJyb3IKIFNFTEVDVCBmb28gXGJpbmQg XGcKLUVSUk9SOiAgY29sdW1uICJmb28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAiZm9vIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgZm9vIAogICAg ICAgICAgICAgICAgXgogLS0gdGNvcCBlcnJvcgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91 dAppbmRleCA1MjAxMjgwNjY5OS4uMDA4OWNlMWE3OWIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnVsZXMub3V0CkBAIC0xMTkxLDcgKzExOTEsNyBAQCBkcm9wIHJ1bGUgcnVsZXNfZm9vcnVsZSBv biBydWxlc19mb287CiAtLSB0aGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgZjEgaXMgbm90IGV4cG9z ZWQgZm9yIHVucXVhbGlmaWVkIHJlZmVyZW5jZToKIGNyZWF0ZSBydWxlIHJ1bGVzX2Zvb3J1bGUg YXMgb24gaW5zZXJ0IHRvIHJ1bGVzX2ZvbyB3aGVyZSBmMSA8IDEwMAogZG8gaW5zdGVhZCBpbnNl cnQgaW50byBydWxlc19mb28yIHZhbHVlcyAoZjEpOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlz dAogTElORSAyOiBkbyBpbnN0ZWFkIGluc2VydCBpbnRvIHJ1bGVzX2ZvbzIgdmFsdWVzIChmMSk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERF VEFJTDogIFRoZXJlIGFyZSBjb2x1bW5zIG5hbWVkICJmMSIsIGJ1dCB0aGV5IGFyZSBpbiB0YWJs ZXMgdGhhdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnku CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cmlu ZGV4IDE4MjlhMmE3ZWRhLi5hMjNhOTU3ZWU0MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTMwOSw3ICszMDksNyBAQCBFUlJPUjog IHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNuJ3QgZXhpc3QKIExJTkUgMTogTEVUIHZhcjEg PSBwaSgpOwogICAgICAgICAgICAgXgogU0VMRUNUIHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFy MSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFyMTsKICAgICAgICAgICAgICAgIF4KIC0tIHNo b3VsZCBiZSBvawpAQCAtNTIwLDcgKzUyMCw3IEBAIFNFTEVDVCB2MTsKIAogLS0gc2hvdWxkIGZh aWwsIGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CiBMRVQgdjEueCA9IDEwOwotRVJST1I6ICBjYW5u b3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5v IHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQorRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZp ZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1 Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQogTElORSAxOiBMRVQgdjEueCA9IDEwOwogICAgICAg ICAgICAgXgogLS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11bHRpIGNvbHVtbiBxdWVyeQpA QCAtMTA2Nyw3ICsxMDY3LDcgQEAgQkVHSU47CiBEUk9QIFZBUklBQkxFIHZhcjE7CiAtLSBzaG91 bGQgZmFpbAogU0VMRUNUIHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhp c3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElO RSAxOiBTRUxFQ1QgdmFyMTsKICAgICAgICAgICAgICAgIF4KIFJPTExCQUNLOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CmluZGV4IDdmNTc1N2U4OWM0Li5iMDVi MTZkOTRiZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlv bnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dApA QCAtMjU2LDcgKzI1Niw3IEBAIFNFTEVDVCAqIEZST00gdHJhbnNfYmFyYmF6OwktLSBzaG91bGQg aGF2ZSAxCiBCRUdJTjsKIAlTQVZFUE9JTlQgb25lOwogCQlTRUxFQ1QgdHJhbnNfZm9vOwotRVJS T1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9y IHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB0cmFu c19mb287CiAgICAgICAgICAgICAgICBeCiAJUk9MTEJBQ0sgVE8gU0FWRVBPSU5UIG9uZTsKQEAg LTMwNSw3ICszMDUsNyBAQCBCRUdJTjsKIAlTQVZFUE9JTlQgb25lOwogCQlJTlNFUlQgSU5UTyBz YXZlcG9pbnRzIFZBTFVFUyAoNSk7CiAJCVNFTEVDVCB0cmFuc19mb287Ci1FUlJPUjogIGNvbHVt biAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUg InRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIHRyYW5zX2ZvbzsKICAg ICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvdW5pb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKaW5k ZXggMGZkMGUxYzM4YjMuLmY4Njk4N2RiZGM5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3VuaW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9u Lm91dApAQCAtOTIxLDcgKzkyMSw3IEBAIE9SREVSIEJZIHEyLHExOwogCiAtLSBUaGlzIHNob3Vs ZCBmYWlsLCBiZWNhdXNlIHEyIGlzbid0IGEgbmFtZSBvZiBhbiBFWENFUFQgb3V0cHV0IGNvbHVt bgogU0VMRUNUIHExIEZST00gaW50OF90YmwgRVhDRVBUIFNFTEVDVCBxMiBGUk9NIGludDhfdGJs IE9SREVSIEJZIHEyIExJTUlUIDE7Ci1FUlJPUjogIGNvbHVtbiAicTIiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAicTIiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6 IC4uLiBpbnQ4X3RibCBFWENFUFQgU0VMRUNUIHEyIEZST00gaW50OF90YmwgT1JERVIgQlkgcTIg TElNSVQgMS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJxMiIg aW4gdGFibGUgIipTRUxFQ1QqIDIiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0 aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgotLSAKMi40NS4yCgo= --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0016-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20240801-0016-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf3o5 RnJvbSAzMGI3OGYyNDQxYjYxODA4ODZjNWMxMzdmOTU1NzVlNDk4OGEzN2IxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDc6NTc6MjkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE2 LzIxXSBhbGxvdyBwYXJhbGxlbCBleGVjdXRpb24gcXVlcmllcyB3aXRoIHNlc3Npb24gdmFyaWFi bGVzCgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAxNCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgICAgICAgIHwg MTQ3ICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jICAgICAgICAgIHwgIDE4ICstLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgIDEyICstCiA0IGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCsp LCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj TWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCBmMmZiNjgwZGVm Yy4uNGZiZTdjNzE4NDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWlu LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtMjAzLDcgKzIwMywx OSBAQCBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZs YWdzKQogCSAqIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGNvcGllZCB0byBkZWRpY2F0 ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CiAJICogaXMgcGFzc2VkIHRvIGV4ZWN1dG9yLgogCSAq LwotCWlmIChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCWlmIChx dWVyeURlc2MtPm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA+IDApCisJeworCQkvKgorCQkgKiBXaGVu IGEgcGFyYWxsZWwgcXVlcnkgbmVlZHMgdG8gYWNjZXNzIHF1ZXJ5IHBhcmFtZXRlcnMgKGluY2x1 ZGluZworCQkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzKSwgdGhlbiByZWxhdGVkIHNlc3Np b24gdmFyaWFibGVzIGFyZQorCQkgKiByZXN0b3JlZCAoZGVzZXJpYWxpemVkKSBpbiBxdWVyeURl c2MgYWxyZWFkeS4gU28ganVzdCBwdXNoIHBvaW50ZXIKKwkJICogb2YgdGhpcyBhcnJheSB0byBl eGVjdXRvcidzIGVzdGF0ZS4KKwkJICovCisJCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOwor CQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gcXVlcnlEZXNjLT5zZXNzaW9uX3Zhcmlh YmxlczsKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBxdWVyeURlc2MtPm51 bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwl9CisJZWxzZSBpZiAocXVlcnlEZXNjLT5wbGFubmVkc3Rt dC0+c2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlpbnQJCQluU2Vz c2lvblZhcmlhYmxlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJh bGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggYmZiMzQx OWVmYjcuLmNiNDM0ZTI3NjhlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAt MTIsOCArMTIsOSBAQAogICogd29ya2VycyBhbmQgZW5zdXJpbmcgdGhhdCB0aGVpciBzdGF0ZSBn ZW5lcmFsbHkgbWF0Y2hlcyB0aGF0IG9mIHRoZQogICogbGVhZGVyOyBzZWUgc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0vUkVBRE1FLnBhcmFsbGVsIGZvciBkZXRhaWxzLgogICogSG93ZXZlciwg d2UgbXVzdCBzYXZlIGFuZCByZXN0b3JlIHJlbGV2YW50IGV4ZWN1dG9yIHN0YXRlLCBzdWNoIGFz Ci0gKiBhbnkgUGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhlIHF1ZXJ5LCBidWZmZXIv V0FMIHVzYWdlIGluZm8sIGFuZAotICogdGhlIGFjdHVhbCBwbGFuIHRvIGJlIHBhc3NlZCBkb3du IHRvIHRoZSB3b3JrZXIuCisgKiBhbnkgUGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhl IHF1ZXJ5LCBidWZmZXIvV0FMIHVzYWdlIGluZm8sCisgKiBzZXNzaW9uIHZhcmlhYmxlcyBidWZm ZXIsIGFuZCB0aGUgYWN0dWFsIHBsYW4gdG8gYmUgcGFzc2VkIGRvd24gdG8KKyAqIHRoZSB3b3Jr ZXIuCiAgKgogICogSURFTlRJRklDQVRJT04KICAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1BhcmFsbGVsLmMKQEAgLTY0LDYgKzY1LDcgQEAKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1FVRVJZ X1RFWFQJCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwOCkKICNkZWZpbmUgUEFSQUxMRUxf S0VZX0pJVF9JTlNUUlVNRU5UQVRJT04gVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA5KQog I2RlZmluZSBQQVJBTExFTF9LRVlfV0FMX1VTQUdFCQkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAw MDAwMDBBKQorI2RlZmluZSBQQVJBTExFTF9LRVlfU0VTU0lPTl9WQVJJQUJMRVMJVUlOVDY0Q09O U1QoMHhFMDAwMDAwMDAwMDAwMDBCKQogCiAjZGVmaW5lIFBBUkFMTEVMX1RVUExFX1FVRVVFX1NJ WkUJCTY1NTM2CiAKQEAgLTEzOCw2ICsxNDAsMTIgQEAgc3RhdGljIGJvb2wgRXhlY1BhcmFsbGVs UmV0cmlldmVJbnN0cnVtZW50YXRpb24oUGxhblN0YXRlICpwbGFuc3RhdGUsCiAvKiBIZWxwZXIg ZnVuY3Rpb24gdGhhdCBydW5zIGluIHRoZSBwYXJhbGxlbCB3b3JrZXIuICovCiBzdGF0aWMgRGVz dFJlY2VpdmVyICpFeGVjUGFyYWxsZWxHZXRSZWNlaXZlcihkc21fc2VnbWVudCAqc2VnLCBzaG1f dG9jICp0b2MpOwogCisvKiBIZWxwZXIgZnVuY3Rpb25zIHRoYXQgY2FuIHBhc3MgdmFsdWVzIG9m IHNlc3Npb24gdmFyaWFibGVzICovCitzdGF0aWMgU2l6ZSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJs ZXMoRVN0YXRlICplc3RhdGUpOworc3RhdGljIHZvaWQgU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxl cyhFU3RhdGUgKmVzdGF0ZSwgY2hhciAqKnN0YXJ0X2FkZHJlc3MpOworc3RhdGljIFNlc3Npb25W YXJpYWJsZVZhbHVlICpSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoqc3RhcnRfYWRkcmVz cywKKwkJCQkJCQkJCQkJCQkgaW50ICpudW1fc2Vzc2lvbl92YXJpYWJsZXMpOworCiAvKgogICog Q3JlYXRlIGEgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGxhbiB0byBiZSBzZW50 IHRvIGVhY2ggd29ya2VyLgogICovCkBAIC01OTYsNiArNjA0LDcgQEAgRXhlY0luaXRQYXJhbGxl bFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCWNoYXIJICAgKnBz dG10X2RhdGE7CiAJY2hhcgkgICAqcHN0bXRfc3BhY2U7CiAJY2hhcgkgICAqcGFyYW1saXN0aW5m b19zcGFjZTsKKwljaGFyCSAgICpzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZTsKIAlCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2Vfc3BhY2U7CiAJV2FsVXNhZ2UgICAqd2FsdXNhZ2Vfc3BhY2U7CiAJU2hhcmVk RXhlY3V0b3JJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnRhdGlvbiA9IE5VTEw7CkBAIC02MDUs NiArNjE0LDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVT dGF0ZSAqZXN0YXRlLAogCWludAkJCWluc3RydW1lbnRhdGlvbl9sZW4gPSAwOwogCWludAkJCWpp dF9pbnN0cnVtZW50YXRpb25fbGVuID0gMDsKIAlpbnQJCQlpbnN0cnVtZW50X29mZnNldCA9IDA7 CisJaW50CQkJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gMDsKIAlTaXplCQlkc2FfbWluc2l6ZSA9 IGRzYV9taW5pbXVtX3NpemUoKTsKIAljaGFyCSAgICpxdWVyeV9zdHJpbmc7CiAJaW50CQkJcXVl cnlfbGVuOwpAQCAtNjYwLDYgKzY3MCwxMSBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3Rh dGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygm cGN4dC0+ZXN0aW1hdG9yLCBwYXJhbWxpc3RpbmZvX2xlbik7CiAJc2htX3RvY19lc3RpbWF0ZV9r ZXlzKCZwY3h0LT5lc3RpbWF0b3IsIDEpOwogCisJLyogRXN0aW1hdGUgc3BhY2UgZm9yIHNlcmlh bGl6ZWQgc2Vzc2lvbiB2YXJpYWJsZXMuICovCisJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gRXN0 aW1hdGVTZXNzaW9uVmFyaWFibGVzKGVzdGF0ZSk7CisJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygm cGN4dC0+ZXN0aW1hdG9yLCBzZXNzaW9uX3ZhcmlhYmxlc19sZW4pOworCXNobV90b2NfZXN0aW1h dGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsKKwogCS8qCiAJICogRXN0aW1hdGUgc3BhY2Ug Zm9yIEJ1ZmZlclVzYWdlLgogCSAqCkBAIC03NjEsNiArNzc2LDExIEBAIEV4ZWNJbml0UGFyYWxs ZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2lu c2VydChwY3h0LT50b2MsIFBBUkFMTEVMX0tFWV9QQVJBTUxJU1RJTkZPLCBwYXJhbWxpc3RpbmZv X3NwYWNlKTsKIAlTZXJpYWxpemVQYXJhbUxpc3QoZXN0YXRlLT5lc19wYXJhbV9saXN0X2luZm8s ICZwYXJhbWxpc3RpbmZvX3NwYWNlKTsKIAorCS8qIFN0b3JlIHNlcmlhbGl6ZWQgc2Vzc2lvbiB2 YXJpYWJsZXMuICovCisJc2Vzc2lvbl92YXJpYWJsZXNfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRl KHBjeHQtPnRvYywgc2Vzc2lvbl92YXJpYWJsZXNfbGVuKTsKKwlzaG1fdG9jX2luc2VydChwY3h0 LT50b2MsIFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUywgc2Vzc2lvbl92YXJpYWJsZXNf c3BhY2UpOworCVNlcmlhbGl6ZVNlc3Npb25WYXJpYWJsZXMoZXN0YXRlLCAmc2Vzc2lvbl92YXJp YWJsZXNfc3BhY2UpOworCiAJLyogQWxsb2NhdGUgc3BhY2UgZm9yIGVhY2ggd29ya2VyJ3MgQnVm ZmVyVXNhZ2U7IG5vIG5lZWQgdG8gaW5pdGlhbGl6ZS4gKi8KIAlidWZ1c2FnZV9zcGFjZSA9IHNo bV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLAogCQkJCQkJCQkJICBtdWxfc2l6ZShzaXplb2YoQnVm ZmVyVXNhZ2UpLCBwY3h0LT5ud29ya2VycykpOwpAQCAtMTQxMSw2ICsxNDMxLDcgQEAgUGFyYWxs ZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCVNoYXJlZEppdElu c3RydW1lbnRhdGlvbiAqaml0X2luc3RydW1lbnRhdGlvbjsKIAlpbnQJCQlpbnN0cnVtZW50X29w dGlvbnMgPSAwOwogCXZvaWQJICAgKmFyZWFfc3BhY2U7CisJY2hhcgkgICAqc2Vzc2lvbnZhcmlh YmxlX3NwYWNlOwogCWRzYV9hcmVhICAgKmFyZWE7CiAJUGFyYWxsZWxXb3JrZXJDb250ZXh0IHB3 Y3h0OwogCkBAIC0xNDM2LDYgKzE0NTcsMTQgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21l bnQgKnNlZywgc2htX3RvYyAqdG9jKQogCWFyZWFfc3BhY2UgPSBzaG1fdG9jX2xvb2t1cCh0b2Ms IFBBUkFMTEVMX0tFWV9EU0EsIGZhbHNlKTsKIAlhcmVhID0gZHNhX2F0dGFjaF9pbl9wbGFjZShh cmVhX3NwYWNlLCBzZWcpOwogCisJLyogUmVjb25zdHJ1Y3Qgc2Vzc2lvbiB2YXJpYWJsZXMuICov CisJc2Vzc2lvbnZhcmlhYmxlX3NwYWNlID0gc2htX3RvY19sb29rdXAodG9jLAorCQkJCQkJCQkJ CSAgIFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUywKKwkJCQkJCQkJCQkgICBmYWxzZSk7 CisJcXVlcnlEZXNjLT5zZXNzaW9uX3ZhcmlhYmxlcyA9CisJCVJlc3RvcmVTZXNzaW9uVmFyaWFi bGVzKCZzZXNzaW9udmFyaWFibGVfc3BhY2UsCisJCQkJCQkJCSZxdWVyeURlc2MtPm51bV9zZXNz aW9uX3ZhcmlhYmxlcyk7CisKIAkvKiBTdGFydCB1cCB0aGUgZXhlY3V0b3IgKi8KIAlxdWVyeURl c2MtPnBsYW5uZWRzdG10LT5qaXRGbGFncyA9IGZwZXMtPmppdF9mbGFnczsKIAlFeGVjdXRvclN0 YXJ0KHF1ZXJ5RGVzYywgZnBlcy0+ZWZsYWdzKTsKQEAgLTE1MDQsMyArMTUzMywxMTcgQEAgUGFy YWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCUZyZWVRdWVy eURlc2MocXVlcnlEZXNjKTsKIAlyZWNlaXZlci0+ckRlc3Ryb3kocmVjZWl2ZXIpOwogfQorCisv KgorICogRXN0aW1hdGUgdGhlIGFtb3VudCBvZiBzcGFjZSByZXF1aXJlZCB0byBzZXJpYWxpemUg YSBzZXNzaW9uIHZhcmlhYmxlLgorICovCitzdGF0aWMgU2l6ZQorRXN0aW1hdGVTZXNzaW9uVmFy aWFibGVzKEVTdGF0ZSAqZXN0YXRlKQoreworCWludAkJCWk7CisJU2l6ZQkJc3ogPSBzaXplb2Yo aW50KTsKKworCWlmIChlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID09IE5VTEwpCisJCXJl dHVybiBzejsKKworCWZvciAoaSA9IDA7IGkgPCBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3Zhcmlh YmxlczsgaSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnN2YXJ2YWw7CisJCU9pZAkJ CXR5cGVPaWQ7CisJCWludDE2CQl0eXBMZW47CisJCWJvb2wJCXR5cEJ5VmFsOworCisJCXN2YXJ2 YWwgPSAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXTsKKworCQl0eXBlT2lkID0gc3Zh cnZhbC0+dHlwaWQ7CisKKwkJc3ogPSBhZGRfc2l6ZShzeiwgc2l6ZW9mKE9pZCkpOyAvKiBzcGFj ZSBmb3IgdHlwZSBPSUQgKi8KKworCQkvKiBzcGFjZSBmb3IgZGF0dW0vaXNudWxsICovCisJCUFz c2VydChPaWRJc1ZhbGlkKHR5cGVPaWQpKTsKKwkJZ2V0X3R5cGxlbmJ5dmFsKHR5cGVPaWQsICZ0 eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJc3ogPSBhZGRfc2l6ZShzeiwKKwkJCQkJICBkYXR1bUVz dGltYXRlU3BhY2Uoc3ZhcnZhbC0+dmFsdWUsIHN2YXJ2YWwtPmlzbnVsbCwgdHlwQnlWYWwsIHR5 cExlbikpOworCX0KKworCXJldHVybiBzejsKK30KKworLyoKKyAqIFNlcmlhbGl6ZSBhIHNlc3Np b24gdmFyaWFibGVzIGJ1ZmZlciBpbnRvIGNhbGxlci1wcm92aWRlZCBzdG9yYWdlLgorICoKKyAq IFdlIHdyaXRlIHRoZSBudW1iZXIgb2YgcGFyYW1ldGVycyBmaXJzdCwgYXMgYSA0LWJ5dGUgaW50 ZWdlciwgYW5kIHRoZW4KKyAqIHdyaXRlIGRldGFpbHMgZm9yIGVhY2ggcGFyYW1ldGVyIGluIHR1 cm4uICBUaGUgZGV0YWlscyBmb3IgZWFjaCBwYXJhbWV0ZXIKKyAqIGNvbnNpc3Qgb2YgYSA0LWJ5 dGUgdHlwZSBPSUQsIGFuZCB0aGVuIHRoZSBkYXR1bSBhcyBzZXJpYWxpemVkIGJ5CisgKiBkYXR1 bVNlcmlhbGl6ZSgpLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZW5zdXJpbmcgdGhh dCB0aGVyZSBpcworICogZW5vdWdoIHN0b3JhZ2UgdG8gc3RvcmUgdGhlIG51bWJlciBvZiBieXRl cyB0aGF0IHdpbGwgYmUgd3JpdHRlbjsgdXNlCisgKiBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMg dG8gZmluZCBvdXQgaG93IG1hbnkgd2lsbCBiZSBuZWVkZWQuCisgKiAqc3RhcnRfYWRkcmVzcyBp cyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aG9z ZQorICogd3JpdHRlbi4KKyAqCisgKiBSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyBjYW4gYmUgdXNl ZCB0byByZWNyZWF0ZSBhIHNlc3Npb24gdmFyaWFibGUgYnVmZmVyCisgKiBiYXNlZCBvbiB0aGUg c2VyaWFsaXplZCByZXByZXNlbnRhdGlvbjsKKyAqLworc3RhdGljIHZvaWQKK1NlcmlhbGl6ZVNl c3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUsIGNoYXIgKipzdGFydF9hZGRyZXNzKQorewor CWludAkJCW5wYXJhbXM7CisJaW50CQkJaTsKKworCS8qIFdyaXRlIG51bWJlciBvZiBwYXJhbWV0 ZXJzLiAqLworCW5wYXJhbXMgPSBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwlt ZW1jcHkoKnN0YXJ0X2FkZHJlc3MsICZucGFyYW1zLCBzaXplb2YoaW50KSk7CisJKnN0YXJ0X2Fk ZHJlc3MgKz0gc2l6ZW9mKGludCk7CisKKwkvKiBXcml0ZSBlYWNoIHBhcmFtZXRlciBpbiB0dXJu LiAqLworCWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFi bGVWYWx1ZSAqc3ZhcnZhbDsKKwkJT2lkCQkJdHlwZU9pZDsKKwkJaW50MTYJCXR5cExlbjsKKwkJ Ym9vbAkJdHlwQnlWYWw7CisKKwkJc3ZhcnZhbCA9ICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFi bGVzW2ldOworCQl0eXBlT2lkID0gc3ZhcnZhbC0+dHlwaWQ7CisKKwkJLyogV3JpdGUgdHlwZSBP SUQuICovCisJCW1lbWNweSgqc3RhcnRfYWRkcmVzcywgJnR5cGVPaWQsIHNpemVvZihPaWQpKTsK KwkJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKE9pZCk7CisKKwkJQXNzZXJ0KE9pZElzVmFsaWQo dHlwZU9pZCkpOworCQlnZXRfdHlwbGVuYnl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFs KTsKKworCQlkYXR1bVNlcmlhbGl6ZShzdmFydmFsLT52YWx1ZSwgc3ZhcnZhbC0+aXNudWxsLCB0 eXBCeVZhbCwgdHlwTGVuLAorCQkJCQkgICBzdGFydF9hZGRyZXNzKTsKKwl9Cit9CisKK3N0YXRp YyBTZXNzaW9uVmFyaWFibGVWYWx1ZSAqCitSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoq c3RhcnRfYWRkcmVzcywgaW50ICpudW1fc2Vzc2lvbl92YXJpYWJsZXMpCit7CisJU2Vzc2lvblZh cmlhYmxlVmFsdWUgKnNlc3Npb25fdmFyaWFibGVzOworCWludAkJCWk7CisJaW50CQkJbnBhcmFt czsKKworCW1lbWNweSgmbnBhcmFtcywgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihpbnQpKTsKKwkq c3RhcnRfYWRkcmVzcyArPSBzaXplb2YoaW50KTsKKworCSpudW1fc2Vzc2lvbl92YXJpYWJsZXMg PSBucGFyYW1zOworCXNlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICop CisJCXBhbGxvYyhucGFyYW1zICogc2l6ZW9mKFNlc3Npb25WYXJpYWJsZVZhbHVlKSk7CisKKwlm b3IgKGkgPSAwOyBpIDwgbnBhcmFtczsgaSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUg KnN2YXJ2YWwgPSAmc2Vzc2lvbl92YXJpYWJsZXNbaV07CisKKwkJLyogUmVhZCB0eXBlIE9JRC4g Ki8KKwkJbWVtY3B5KCZzdmFydmFsLT50eXBpZCwgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihPaWQp KTsKKwkJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKE9pZCk7CisKKwkJLyogUmVhZCBkYXR1bS9p c251bGwuICovCisJCXN2YXJ2YWwtPnZhbHVlID0gZGF0dW1SZXN0b3JlKHN0YXJ0X2FkZHJlc3Ms ICZzdmFydmFsLT5pc251bGwpOworCX0KKworCXJldHVybiBzZXNzaW9uX3ZhcmlhYmxlczsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCAwMDYzYjJiNjMyMi4uMDkyZWQy MzUzYWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTkyNCwyNSArOTI0 LDE5IEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJhbGxl bF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAogCS8qCiAJICogV2UgY2FuJ3QgcGFzcyBQYXJh bXMgdG8gd29ya2VycyBhdCB0aGUgbW9tZW50IGVpdGhlciwgc28gdGhleSBhcmUgYWxzbwotCSAq IHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJBTV9FWFRFUk4gUGFyYW1z IG9yIGFyZQotCSAqIFBBUkFNX0VYRUMgUGFyYW1zIGxpc3RlZCBpbiBzYWZlX3BhcmFtX2lkcywg bWVhbmluZyB0aGV5IGNvdWxkIGJlCi0JICogZWl0aGVyIGdlbmVyYXRlZCB3aXRoaW4gd29ya2Vy cyBvciBjYW4gYmUgY29tcHV0ZWQgYnkgdGhlIGxlYWRlciBhbmQKLQkgKiB0aGVuIHRoZWlyIHZh bHVlIGNhbiBiZSBwYXNzZWQgdG8gd29ya2Vycy4KKwkgKiBwYXJhbGxlbC1yZXN0cmljdGVkLCB1 bmxlc3MgdGhleSBhcmUgUEFSQU1fRVhURVJOIG9yIFBBUkFNX1ZBUklBQkxFCisJICogUGFyYW1z IG9yIGFyZSBQQVJBTV9FWEVDIFBhcmFtcyBsaXN0ZWQgaW4gc2FmZV9wYXJhbV9pZHMsIG1lYW5p bmcgdGhleQorCSAqIGNvdWxkIGJlIGVpdGhlciBnZW5lcmF0ZWQgd2l0aGluIHdvcmtlcnMgb3Ig Y2FuIGJlIGNvbXB1dGVkIGJ5IHRoZQorCSAqIGxlYWRlciBhbmQgdGhlbiB0aGVpciB2YWx1ZSBj YW4gYmUgcGFzc2VkIHRvIHdvcmtlcnMuCiAJICovCiAJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFt KSkKIAl7CiAJCVBhcmFtCSAgICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fRVhURVJOIHx8CisJCQlwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQog CQkJcmV0dXJuIGZhbHNlOwogCi0JCS8qIHdlIGRvbid0IHN1cHBvcnQgcGFzc2luZyBzZXNzaW9u IHZhcmlhYmxlcyB0byB3b3JrZXJzICovCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFN X1ZBUklBQkxFKQotCQl7Ci0JCQlpZiAobWF4X3BhcmFsbGVsX2hhemFyZF90ZXN0KFBST1BBUkFM TEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQotCQkJCXJldHVybiB0cnVlOwotCQl9Ci0KIAkJaWYg KHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJIWxpc3RfbWVtYmVyX2ludChj b250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQpKQogCQl7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGQ4YWZhN2Fl NGUwLi42NDY2YTI0NzMyOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTY0MiwxMiArNjQyLDE0IEBAIFNFTEVDVCBjb3VudCgqKSBG Uk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKIAogLS0gcGFyYWxsZWwgZXhlY3V0aW9u IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgq KSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKLSAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQWdncmVnYXRlCi0gICAtPiAgU2VxIFNj YW4gb24gc3Zhcl90ZXN0Ci0gICAgICAgICBGaWx0ZXI6ICgoYSAlIDEwKSA9IHplcm8pCi0oMyBy b3dzKQorICAgLT4gIEdhdGhlcgorICAgICAgICAgV29ya2VycyBQbGFubmVkOiAyCisgICAgICAg ICAtPiAgUGFyYWxsZWwgU2VxIFNjYW4gb24gc3Zhcl90ZXN0CisgICAgICAgICAgICAgICBGaWx0 ZXI6ICgoYSAlIDEwKSA9IHplcm8pCisoNSByb3dzKQogCiBMRVQgemVybyA9IChTRUxFQ1QgY291 bnQoKikgRlJPTSBzdmFyX3Rlc3QpOwogLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCi0tIAoyLjQ1 LjIKCg== --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0015-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20240801-0015-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf3t6 RnJvbSA5NDQwN2M0M2EwM2E1OGQ5ZDhmY2E5YTdkMjQ4MzYwNWQxZmFhZjIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDY6MzE6NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDE1 LzIxXSBhbGxvdyByZWFkIGFuIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgZGlyZWN0bHkgZnJv bQogZXhwcmVzc2lvbiBleGVjdXRvcgoKVGhlIGV4cHJlc3Npb24gZXhlY3V0b3IgY2FuIGJlIGNh bGxlZCBkaXJlY3RseSAobm90IGluc2lkZSBxdWVyeSBleGVjdXRvcikKd2hlbiBleHByZXNzaW9u IGlzIGV2YWx1YXRlZCBhcyBzaW1wbGUgZXhwcmVzc2lvbiBpbiBwbHBnc3FsIG9yIHdoZW4gZXhw cmVzc2lvbgppcyBhbiBhcmd1bWVudCBvZiBDQUxMIHN0YXRlbWVudC4gRm9yIHRoZXNlIGNhc2Vz IHdlIG5lZWQgdG8gYWxsb3cgZGlyZWN0CmFjY2VzcyB0byBjb250ZW50IG9mIHNlc3Npb24gdmFy aWFibGVzIGZyb20gZXhlY3V0b3IuIFdlIGNhbiBkbyBpdCwgYmVjYXVzZQp3ZSBrbm93IHNvIHRo ZSBleHByZXNzaW9uIGlzIG5vdCBldmFsdWF0ZWQgdW5kZXIgcXVlcnkgYW5kIGNhbm5vdCBiZQpl dmFsdWF0ZWQgaW5zaWRlIHBhcmFsbGVsIHdvcmtlci4KClRoaXMgcGF0Y2ggZW5hYmxlcyBzZXNz aW9uIHZhcmlhYmxlcyBmb3Igc2ltcGxlIGV4cHJlc3Npb24gZXZhbHVhdGlvbi4KClRoaXMgcGF0 Y2ggZW5hYmxlcyB1c2FnZSBzZXNzaW9uIHZhcmlhYmxlcyBpbiBhcmd1bWVudHMgb2YgQ0FMTCBz dG10LgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8 ICA4IC0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCA4 OCArKysrKysrKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVy cC5jICAgICAgICAgfCAxNiArKysrCiBzcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIu YyAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAg ICAgICAgICAgIHwgIDggLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggICAgICAg ICAgICAgICB8IDEyICsrLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IHwgIDMgKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAgICAgICAg ICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg ICAgfCAyNiArKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCAgICB8IDEyICstLQogMTAgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMoKyksIDY1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRleCAyMDQ2ZmE4YTU0My4uMzY0ZGY3 NzdlYTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKQEAgLTMzOCwxNCArMzM4LDYgQEAgRXZhbHVh dGVQYXJhbXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlZFN0YXRlbWVudCAqcHN0bXQsIExp c3QgKnBhcmFtcywKIAkJaSsrOwogCX0KIAotCS8qCi0JICogVGhlIGFyZ3VtZW50cyBvZiBFWEVD VVRFIGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgotCSAqIGV4ZWN1dG9yIGNh bGwuICBUaGlzIG1vZGUgZG9lc24ndCBzdXBwb3J0IHNlc3Npb24gdmFyaWFibGVzIHlldC4KLQkg KiBJdCB3aWxsIGJlIGVuYWJsZWQgbGF0ZXIuCi0JICovCi0JaWYgKHBzdGF0ZS0+cF9oYXNTZXNz aW9uVmFyaWFibGVzKQotCQllbG9nKEVSUk9SLCAic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUg dXNlZCBhcyBhbiBhcmd1bWVudCIpOwotCiAJLyogUHJlcGFyZSB0aGUgZXhwcmVzc2lvbnMgZm9y IGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJMaXN0KHBhcmFtcywg ZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggNTEyYmQ0ZWNiNDYuLmVlZmQw YzI5NThjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTEwMDUsMzEgKzEwMDUsNjkgQEAg RXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJCQkJCWVz X251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19udW1fc2Vz c2lvbl92YXJpYWJsZXM7CiAJCQkJCQkJfQogCi0JCQkJCQkJQXNzZXJ0KGVzX3Nlc3Npb25fdmFy aWFibGVzKTsKLQotCQkJCQkJCS8qCi0JCQkJCQkJICogVXNlIGJ1ZmZlcmVkIHNlc3Npb24gdmFy aWFibGVzIHdoZW4gdGhlCi0JCQkJCQkJICogYnVmZmVyIHdpdGggY29waWVkIHZhbHVlcyBpcyBh dmFpYWJsZQotCQkJCQkJCSAqIChzdGFuZGFyZCBxdWVyeSBleGVjdXRvciBtb2RlKQotCQkJCQkJ CSAqLwotCi0JCQkJCQkJLyogUGFyYW1ldGVyIHNhbml0eSBjaGVja3MuICovCi0JCQkJCQkJaWYg KHBhcmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcykKLQkJCQkJCQkJZWxv ZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFyYW0gaXMgb3V0IG9mIHJhbmdl Iik7Ci0KLQkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJsZXNbcGFyYW0tPnBhcmFtaWRd OwotCi0JCQkJCQkJaWYgKHZhci0+dHlwaWQgIT0gcGFyYW0tPnBhcmFtdHlwZSkKLQkJCQkJCQkJ ZWxvZyhFUlJPUiwgInR5cGUgb2YgYnVmZmVyZWQgdmFsdWUgaXMgZGlmZmVyZW50IHRoYW4gUEFS QU1fVkFSSUFCTEUgdHlwZSIpOwotCi0JCQkJCQkJLyoKLQkJCQkJCQkgKiBJbiB0aGlzIGNhc2Us IHBhc3MgdGhlIHZhbHVlIGxpa2UgYQotCQkJCQkJCSAqIGNvbnN0YW50LgotCQkJCQkJCSAqLwot CQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKLQkJCQkJCQlzY3JhdGNoLmQuY29u c3R2YWwudmFsdWUgPSB2YXItPnZhbHVlOwotCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251 bGwgPSB2YXItPmlzbnVsbDsKLQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRj aCk7CisJCQkJCQkJaWYgKGVzX3Nlc3Npb25fdmFyaWFibGVzKQorCQkJCQkJCXsKKwkJCQkJCQkJ LyoKKwkJCQkJCQkJICogVGhpcyBwYXRoIGlzIHVzZWQgd2hlbiBleHByZXNzaW9uIGlzCisJCQkJ CQkJCSAqIGV2YWx1YXRlZCBpbnNpZGUgcXVlcnkgZXZhbHVhdGlvbi4gRm9yCisJCQkJCQkJCSAq IGVuc3VyaW5nIG9mIGltbXV0YWJpbGl0eSBvZiBzZXNzaW9uIHZhcmlhYmxlCisJCQkJCQkJCSAq IGluc2lkZSBxdWVyeSB3ZSB1c2Ugc3BlY2lhbCBidWZmZXIgd2l0aCBjb3B5CisJCQkJCQkJCSAq IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoaXMgbWV0aG9kIGhlbHBzCisJCQkJCQkJCSAq IHdpdGggcGFyYWxsZWwgZXhlY3V0aW9uIHRvby4KKwkJCQkJCQkJICovCisKKwkJCQkJCQkJLyog UGFyYW1ldGVyIHNhbml0eSBjaGVja3MuICovCisJCQkJCQkJCWlmIChwYXJhbS0+cGFyYW1pZCA+ PSBlc19udW1fc2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1p ZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCQl2 YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJsZXNbcGFyYW0tPnBhcmFtaWRdOworCisJCQkJCQkJCWlm ICh2YXItPnR5cGlkICE9IHBhcmFtLT5wYXJhbXR5cGUpCisJCQkJCQkJCQllbG9nKEVSUk9SLCAi dHlwZSBvZiBidWZmZXJlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgdGhhbiBQQVJBTV9WQVJJQUJMRSB0 eXBlIik7CisKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogSW4gdGhpcyBjYXNlLCBwYXNzIHRoZSB2 YWx1ZSBsaWtlIGEKKwkJCQkJCQkJICogY29uc3RhbnQuCisJCQkJCQkJCSAqLworCQkJCQkJCQlz Y3JhdGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7CisJCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC52 YWx1ZSA9IHZhci0+dmFsdWU7CisJCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251bGwgPSB2 YXItPmlzbnVsbDsKKwkJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOwor CQkJCQkJCX0KKwkJCQkJCQllbHNlCisJCQkJCQkJeworCQkJCQkJCQlBY2xSZXN1bHQJYWNscmVz dWx0OworCQkJCQkJCQlPaWQJCQl2YXJpZCA9IHBhcmFtLT5wYXJhbXZhcmlkOworCQkJCQkJCQlP aWQJCQl2YXJ0eXBlID0gcGFyYW0tPnBhcmFtdHlwZTsKKworCQkJCQkJCQlBc3NlcnQoIUlzUGFy YWxsZWxXb3JrZXIoKSk7CisKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogSW4gc29tZSBjYXNlcyAo cGxwZ3NxbCdzIHNpbXBsZSBleHByZXNzaW9uCisJCQkJCQkJCSAqIGV2YWx1YXRpb24gb3IgZXZh bHVhdGlvbiBvZiBDQUxMIGFyZ3VtZW50cyksCisJCQkJCQkJCSAqIHRoZSBleHByZXNzaW9uIGV4 ZWN1dG9yIGlzIGNhbGxlZCBkaXJlY3RseS4KKwkJCQkJCQkJICogV2UgY2FuIGFsbG93IGRpcmVj dCBhY2Nlc3MgdG8gc2Vzc2lvbgorCQkJCQkJCQkgKiB2YXJpYWJsZXMgKGNvcHkgb25seSksIGJl Y2F1c2Ugd2Uga25vdywgc28KKwkJCQkJCQkJICogb3V0c2lkZSBpcyBub3QgYW55IHF1ZXJ5IChh bmQgZXhwcmVzc2lvbgorCQkJCQkJCQkgKiBjYW5ub3QgYmUgZXhlY3V0ZWQgcGFyYWxsZWwpLgor CQkJCQkJCQkgKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNhc2Ugd2Ugc2hvdWxkIHRvIGRvIGFjbGNo ZWNrLAorCQkJCQkJCQkgKiBiZWNhdXNlIHVzdWFsIGFjbGNoZWNrIGZyb20KKwkJCQkJCQkJICog c3RhbmRhcmRfRXhlY3V0b3JTdGFydCBpcyBub3QgZXhlY3V0ZWQgaW4KKwkJCQkJCQkJICogdGhp cyBjYXNlLiBGb3J0dW5hdGVseSBpdCBpcyBqdXN0IG9uY2UgcGVyCisJCQkJCQkJCSAqIHRyYW5z YWN0aW9uLgorCQkJCQkJCQkgKi8KKwkJCQkJCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNr KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQkJCQkJCQlHZXRVc2VySWQoKSwg QUNMX1NFTEVDVCk7CisJCQkJCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJ CQkJCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwKKwkJCQkJCQkJ CQkJCSAgIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKworCQkJCQkJCQlzY3Jh dGNoLm9wY29kZSA9IEVFT1BfUEFSQU1fVkFSSUFCTEU7CisJCQkJCQkJCXNjcmF0Y2guZC52cGFy YW0udmFyaWQgPSB2YXJpZDsKKwkJCQkJCQkJc2NyYXRjaC5kLnZwYXJhbS52YXJ0eXBlID0gdmFy dHlwZTsKKwkJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCQkJCQkJ CX0KIAkJCQkJCX0KIAkJCQkJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRl cnAuYwppbmRleCAxNTM1ZmQ2Yjk4NC4uZjNkNTA4MmYwYzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgImFjY2Vzcy9oZWFw dG9hc3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5k cy9zZXF1ZW5jZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNp bmNsdWRlICJleGVjdXRvci9leGVjRXhwci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVTdWJw bGFuLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtNDUwLDYgKzQ1MSw3IEBAIEV4ZWNJbnRl cnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNu dWxsKQogCQkmJkNBU0VfRUVPUF9QQVJBTV9FWEVDLAogCQkmJkNBU0VfRUVPUF9QQVJBTV9FWFRF Uk4sCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0NBTExCQUNLLAorCQkmJkNBU0VfRUVPUF9QQVJBTV9W QVJJQUJMRSwKIAkJJiZDQVNFX0VFT1BfUEFSQU1fU0VULAogCQkmJkNBU0VfRUVPUF9DQVNFX1RF U1RWQUwsCiAJCSYmQ0FTRV9FRU9QX01BS0VfUkVBRE9OTFksCkBAIC0xMDk0LDYgKzEwOTYsMjAg QEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0 LCBib29sICppc251bGwpCiAJCQlFRU9fTkVYVCgpOwogCQl9CiAKKwkJRUVPX0NBU0UoRUVPUF9Q QVJBTV9WQVJJQUJMRSkKKwkJeworCQkJLyoKKwkJCSAqIERpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lv biB2YXJpYWJsZSAod2l0aG91dCBidWZmZXJpbmcpLiBCZWNhdXNlCisJCQkgKiByZXR1cm5lZCB2 YWx1ZSBjYW4gYmUgdXNlZCAod2l0aG91dCBhbiBhc3NpZ25lbWVudCkgYWZ0ZXIgdGhlCisJCQkg KiByZWZlcmVuY2VkIHNlc3Npb24gdmFyaWFibGVzIGlzIHVwZGF0ZWQsIHdlIGhhdmUgdG8gdXNl IGFuIGNvcHkKKwkJCSAqIG9mIHN0b3JlZCB2YWx1ZSBldmVyeSB0aW1lLgorCQkJICovCisJCQkq b3AtPnJlc3ZhbHVlID0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhvcC0+ZC52cGFy YW0udmFyaWQsCisJCQkJCQkJCQkJCQkJCQlvcC0+cmVzbnVsbCwKKwkJCQkJCQkJCQkJCQkJCW9w LT5kLnZwYXJhbS52YXJ0eXBlKTsKKwkJCUVFT19ORVhUKCk7CisJCX0KKwogCQlFRU9fQ0FTRShF RU9QX1BBUkFNX1NFVCkKIAkJewogCQkJLyogb3V0IG9mIGxpbmUsIHVubGlrZWx5IHRvIG1hdHRl ciBwZXJmb3JtYW5jZXdpc2UgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xs dm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXgg MjdmOTRmOTAwNzAuLjRhYTJkMDJmNTZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2 bS9sbHZtaml0X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIu YwpAQCAtMTE0NSw2ICsxMTQ1LDEyIEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3Rh dGUpCiAJCQkJCWJyZWFrOwogCQkJCX0KIAorCQkJY2FzZSBFRU9QX1BBUkFNX1ZBUklBQkxFOgor CQkJCWJ1aWxkX0V2YWxYRnVuYyhiLCBtb2QsICJFeGVjRXZhbFBhcmFtVmFyaWFibGUiLAorCQkJ CQkJCQl2X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7CisJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9j a3Nbb3BubyArIDFdKTsKKwkJCQlicmVhazsKKwogCQkJY2FzZSBFRU9QX1BBUkFNX1NFVDoKIAkJ CQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxQYXJhbVNldCIsCiAJCQkJCQkJCXZf c3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDUwMzA4NTc4NjNj Li5mNjMwZWYwN2ZmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zMzc3LDE0ICszMzc3LDYgQEAg dHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYWxsU3RtdCAqc3RtdCkKIAkJ CQkJCQkgdHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVuY2NhbGwtPmxvY2F0aW9uKTsKIAotCS8qCi0J ICogVGhlIGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRlbWVudCBhcmUgZXZhbHVhdGVkIGJ5IGEgZGly ZWN0IGV4cHJlc3Npb24KLQkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBwYXRoIGlzIHVuc3VwcG9y dGVkIHlldCwgc28gYmxvY2sgaXQuICBJdCB3aWxsIGJlCi0JICogZW5hYmxlZCBsYXRlci4KLQkg Ki8KLQlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpCi0JCWVsb2coRVJST1IsICJz ZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50Iik7Ci0KIAlhc3Np Z25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgbm9kZSk7CiAKIAlmZXhwciA9IGNhc3ROb2RlKEZ1 bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHBy LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCmluZGV4IDg0NWYzNDIyZGVhLi5j NjBmNjE3M2Y1NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAor KysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC0xNTYsMTAgKzE1NiwxMSBA QCB0eXBlZGVmIGVudW0gRXhwckV2YWxPcAogCUVFT1BfQk9PTFRFU1RfSVNfRkFMU0UsCiAJRUVP UF9CT09MVEVTVF9JU19OT1RfRkFMU0UsCiAKLQkvKiBldmFsdWF0ZSBQQVJBTV9FWEVDL0VYVEVS TiBwYXJhbWV0ZXJzICovCisJLyogZXZhbHVhdGUgUEFSQU1fRVhFQy9FWFRFUk4vVkFSSUFCTEUg cGFyYW1ldGVycyAqLwogCUVFT1BfUEFSQU1fRVhFQywKIAlFRU9QX1BBUkFNX0VYVEVSTiwKIAlF RU9QX1BBUkFNX0NBTExCQUNLLAorCUVFT1BfUEFSQU1fVkFSSUFCTEUsCiAJLyogc2V0IFBBUkFN X0VYRUMgdmFsdWUgKi8KIAlFRU9QX1BBUkFNX1NFVCwKIApAQCAtNDAyLDYgKzQwMywxMyBAQCB0 eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCU9pZAkJCXBhcmFtdHlwZTsJLyogT0lEIG9m IHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCX0JCQljcGFyYW07CiAKKwkJLyogZm9yIEVFT1Bf UEFSQU1fVkFSSUFCTEUgKi8KKwkJc3RydWN0CisJCXsKKwkJCU9pZAkJCXZhcmlkOwkJLyogT0lE IG9mIGFzc2lnbmVkIHZhcmlhYmxlICovCisJCQlPaWQJCQl2YXJ0eXBlOwkvKiBPSUQgb2YgcGFy YW1ldGVyJ3MgZGF0YXR5cGUgKi8KKwkJfQkJCXZwYXJhbTsKKwogCQkvKiBmb3IgRUVPUF9DQVNF X1RFU1RWQUwvRE9NQUlOX1RFU1RWQUwgKi8KIAkJc3RydWN0CiAJCXsKQEAgLTgwNiw2ICs4MTQs OCBAQCBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtU2V0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJF dmFsU3RlcCAqb3AsCiAJCQkJCQkJIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9p ZCBFeGVjRXZhbFBhcmFtRXh0ZXJuKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3As CiAJCQkJCQkJCUV4cHJDb250ZXh0ICplY29udGV4dCk7CitleHRlcm4gdm9pZCBFeGVjRXZhbFBh cmFtVmFyaWFibGUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKKwkJCQkJCQkJ ICBFeHByQ29udGV4dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxDb2VyY2VWaWFJ T1NhZmUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CiBleHRlcm4gdm9pZCBF eGVjRXZhbFNRTFZhbHVlRnVuY3Rpb24oRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpv cCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbEN1cnJlbnRPZkV4cHIoRXhwclN0YXRlICpzdGF0ZSwg RXhwckV2YWxTdGVwICpvcCk7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0 ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBl Y3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CmluZGV4IGVjMDdmMWNiYWU5Li43ODlj MzEyM2IwYyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3Bs cGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTIxMSw4ICsyMTEsNyBAQCBTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAtLSBzaG91bGQgdG8gZmFpbAogU0VMRUNUIHZhcl9y ZWFkX2Z1bmMoKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgcGxwZ3NxbF9zdl92YXIxCi1DT05URVhUOiAgU1FMIGV4cHJlc3Npb24gInBscGdzcWxfc3Zf dmFyMSIKLVBML3BnU1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UK K0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9mdW5jKCkgbGluZSAzIGF0IFJB SVNFCiBTRVQgUk9MRSBUTyBERUZBVUxUOwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJf cm9sZTsKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVncmVz c192YXJfcmVhZGVyX3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhl Yy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCBhOWUxZTMyM2FkMS4uMjM5 YjMyNTBhOTUgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtODEwMSw4ICs4MTAxLDcgQEAgZXhlY19p c19zaW1wbGVfcXVlcnkoUExwZ1NRTF9leHByICpleHByKQogCQlxdWVyeS0+c29ydENsYXVzZSB8 fAogCQlxdWVyeS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnktPmxpbWl0Q291bnQgfHwKLQkJcXVl cnktPnNldE9wZXJhdGlvbnMgfHwKLQkJcXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJCXF1 ZXJ5LT5zZXRPcGVyYXRpb25zKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKgpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBkZTIyOWJhMzAx Yi4uZDhhZmE3YWU0ZTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vz c2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CkBAIC0xMDcsOCArMTA3LDcgQEAgRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAgU1FMIGZ1bmN0aW9uICJz cWxmeCIgc3RhdGVtZW50IDEKIFNFTEVDVCBwbHBnc3FsZngoMjApOwogRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIGV4cHJl c3Npb24gIiQxICsgdmFyMSIKLVBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBs aW5lIDEgYXQgUkVUVVJOCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGlu dGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KIC0tIHNob3VsZCBiZSBvawogU0VMRUNUIHNxbGZ4X3Nk KDIwKTsKICBzcWxmeF9zZCAKQEAgLTI3OCwyNyArMjc3LDI4IEBAICQkOwogTk9USUNFOiAgcmVz dWx0IGFycmF5OiB7MSwyLDMsNCw1LDYsNyw4LDksMTB9CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBE Uk9QIFZBUklBQkxFIHZhcjI7Ci0tLSBDQUxMIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHll dAotLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhw cmVzc2lvbiBleGVjdXRvcgorLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgc3VwcG9ydGVkCiBDUkVBVEUg VkFSSUFCTEUgdiBpbnQ7CitMRVQgdiA9IDE7CiBDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkg QVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKLS0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHlldCkKKy0tIHNo b3VsZCB0byB3b3JrCiBDQUxMIHAodik7Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90 IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK05PVElDRTogIDEKIERPICQkIEJFR0lOIENBTEwgcCh2 KTsgRU5EICQkOwotRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFu IGFyZ3VtZW50Ci1DT05URVhUOiAgU1FMIHN0YXRlbWVudCAiQ0FMTCBwKHYpIgotUEwvcGdTUUwg ZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IENBTEwKK05PVElDRTogIDEKIERS T1AgUFJPQ0VEVVJFIHAoaW50KTsKIERST1AgVkFSSUFCTEUgdjsKLS0tIEVYRUNVVEUgc3RhdGVt ZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNl c3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBFWEVDVVRFIHN0YXRl bWVudAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OwogTEVUIHYgPSAyMDsKIFBSRVBBUkUgcHRlc3Qo aW50KSBBUyBTRUxFQ1QgJDE7Ci0tLSBzaG91bGQgZmFpbAorLS0gc2hvdWxkIGJlIG9rCiBFWEVD VVRFIHB0ZXN0KHYpOwotRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFz IGFuIGFyZ3VtZW50CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAgICAgMjAKKygxIHJvdykK KwogREVBTExPQ0FURSBwdGVzdDsKIERST1AgVkFSSUFCTEUgdjsKIC0tIHRlc3Qgc2VhcmNoIHBh dGgKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBkMGU2 ZTdjZTI2Mi4uZWIzZGExZjM1ZjcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKQEAgLTIwNywxMyArMjA3LDE0IEBAICQkOwogRFJPUCBWQVJJQUJMRSB2YXIx OwogRFJPUCBWQVJJQUJMRSB2YXIyOwogCi0tLSBDQUxMIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9y dGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZy b20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgc3VwcG9ydGVkCiBD UkVBVEUgVkFSSUFCTEUgdiBpbnQ7CiAKK0xFVCB2ID0gMTsKKwogQ1JFQVRFIFBST0NFRFVSRSBw KGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsgRU5EICQkIExBTkdV QUdFIHBscGdzcWw7CiAKLS0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBub3Qgc3VwcG9ydGVk IHlldCkKKy0tIHNob3VsZCB0byB3b3JrCiBDQUxMIHAodik7CiAKIERPICQkIEJFR0lOIENBTEwg cCh2KTsgRU5EICQkOwpAQCAtMjIxLDEzICsyMjIsMTIgQEAgRE8gJCQgQkVHSU4gQ0FMTCBwKHYp OyBFTkQgJCQ7CiBEUk9QIFBST0NFRFVSRSBwKGludCk7CiBEUk9QIFZBUklBQkxFIHY7CiAKLS0t IEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJl Y3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCist LSBFWEVDVVRFIHN0YXRlbWVudAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OwogTEVUIHYgPSAyMDsK IFBSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CiAKLS0tIHNob3VsZCBmYWlsCistLSBz aG91bGQgYmUgb2sKIEVYRUNVVEUgcHRlc3Qodik7CiAKIERFQUxMT0NBVEUgcHRlc3Q7Ci0tIAoy LjQ1LjIKCg== --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0014-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20240801-0014-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf3z7 RnJvbSA3NTA0MTk5MTNhNDI3ZDhiZGMwNGVjN2MxNGZjMDI4OTY5ZGEwYmE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxNDo0MDozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQv MjFdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoKQWxt b3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDkgKy0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8ICA2OSArKysrKysrLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDQxICsrKy0tCiBzcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKystCiBzcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDM2ICsrKysKIHNyYy9i aW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICAzNiArKy0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAxNTUgKysrKysrKysrKysrKysr KystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAxMjIg KysrKysrKysrKysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDUyMyBpbnNlcnRpb25zKCspLCA0NyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDlkMzk0MmJkYjRiLi40NTEyYzQ1MjViZiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKQEAgLTk4MzQsNiArOTgzNCwyNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBs YWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJs ZT4mbAogCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52 YXJub3RudWxsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRydWUgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9l c24ndCBhbGxvdyBudWxsIHZhbHVlcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmlzaW1tdXRhYmxlPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRy dWUgaWYgdGhlIHZhcmlhYmxlIGlzIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZS1p bW11dGFibGUiPmltbXV0YWJsZTwvbGluaz4gKGNhbm5vdCBiZSBtb2RpZmllZCkuCisgICAgICAg VGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+CiAgICAgICAgPHN0 cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90eXBl PgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCA4YWE5NzllY2Iy NS4uOGJkZjkxMjdmMGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtNjA0NCw3ICs2MDQ0LDggQEAgJCQgTEFO R1VBR0UgcGxwZ3NxbCBTVFJJQ1QgSU1NVVRBQkxFOwogICAgICBZb3UgY2FuIGNvbnNpZGVyIHRy YW5zbGF0aW5nIGFuIE9yYWNsZSBwYWNrYWdlIGludG8gYSBzY2hlbWEgaW4KICAgICAgPHByb2R1 Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPi4gIFBhY2thZ2UgZnVuY3Rpb25zIGFuZCBw cm9jZWR1cmVzCiAgICAgIHdvdWxkIHRoZW4gYmVjb21lIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJl cyBpbiB0aGF0IHNjaGVtYSwgYW5kIHBhY2thZ2UKLSAgICAgdmFyaWFibGVzIGNvdWxkIGJlIHRy YW5zbGF0ZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhhdCBzY2hlbWEuCisgICAgIHZhcmlh YmxlcyBjb3VsZCBiZSB0cmFuc2xhdGVkIHRvIHNlc3Npb24gdmFyaWFibGVzIG9yIGltbXV0YWJs ZSBzZXNzaW9uCisgICAgIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KICAgICAgKHNlZSA8eHJl ZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4pLgogICAgIDwvcGFyYT4KICAgIDwv c2VjdDM+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCA4MTg3YzE4ZTI4 Yi4uMDA5Mzg3NDNjMGQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAt MjYsOCArMjYsOCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rp dj4KIDxzeW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlw ZTwvcmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCi0gICAgWyBERUZBVUxUIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxlPiBdIFsgeyBPTiBDT01N SVQgRFJPUCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KK0NSRUFURSBbIHsgVEVNUE9S QVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBb IENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFj ZWFibGU+IF0KKyAgICBbIE5PVCBOVUxMIF0gWyBERUZBVUxUIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxlPiBdIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC02NSw2ICs2NSwyMiBAQCBDUkVBVEUgWyB7IFRFTVBP UkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icAogCiAgIDx2YXJpYWJsZWxpc3Q+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1j cmVhdGV2YXJpYWJsZS1pbW11dGFibGUiPgorICAgIDx0ZXJtPjxsaXRlcmFsPklNTVVUQUJMRTwv bGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBh c3NpZ25lZCB2YWx1ZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gbm90IGJlIGNoYW5nZWQu CisgICAgICBPbmx5IGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGRvZXNuJ3QgaGF2ZSBhIGRlZmF1 bHQgdmFsdWUsIGEgc2luZ2xlCisgICAgICBpbml0aWFsaXphdGlvbiBpcyBhbGxvd2VkIHVzaW5n IHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuIE9uY2UKKyAgICAgIGRvbmUsIG5v IGZ1cnRoZXIgY2hhbmdlIGlzIGFsbG93ZWQgdW50aWwgZW5kIG9mIHRyYW5zYWN0aW9uCisgICAg ICBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSB3YXMgY3JlYXRlZCB3aXRoIGNsYXVzZSA8bGl0ZXJh bD5PTiBUUkFOU0FDVElPTgorICAgICAgRU5EIFJFU0VUPC9saXRlcmFsPiwgb3IgdW50aWwgcmVz ZXQgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzIGJ5CisgICAgICA8Y29tbWFuZD5ESVNDQVJEIFZB UklBQkxFUzwvY29tbWFuZD4sIG9yIHVudGlsIHJlc2V0IG9mIGFsbCBzZXNzaW9uCisgICAgICBv YmplY3RzIGJ5IGNvbW1hbmQgPGNvbW1hbmQ+RElTQ0FSRCBBTEw8L2NvbW1hbmQ+LgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlz dGVudHJ5ICBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWlmLW5vdC1leGlzdHMiPgogICAgIDx0ZXJt PjxsaXRlcmFsPklGIE5PVCBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4K QEAgLTEwNSw2ICsxMjEsMTggQEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJ QUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InAKICAgICA8L2xpc3Rp dGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVh dGV2YXJpYWJsZS1ub3QtbnVsbCI+CisgICAgPHRlcm0+PGxpdGVyYWw+Tk9UIE5VTEw8L2xpdGVy YWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVy YWw+Tk9UIE5VTEw8L2xpdGVyYWw+IGNsYXVzZSBmb3JiaWRzIHNldHRpbmcgdGhlIHNlc3Npb24K KyAgICAgIHZhcmlhYmxlIHRvIGEgbnVsbCB2YWx1ZS4gQSBzZXNzaW9uIHZhcmlhYmxlIGNyZWF0 ZWQgYXMgTk9UIE5VTEwKKyAgICAgIHNob3VsZCBub3QgdG8gaGF2ZSBhIGRlY2xhcmVkIGRlZmF1 bHQgdmFsdWUsIGFuZCBpZiB0aGUgdmFyaWFibGUKKyAgICAgIGhhcyBub3QgYXNzaWduZWQgdmFs dWUsIHRoZW4gdGhlIHJlYWRpbmcgb2YgdGhpcyB2YXJpYWJsZSBmYWlscy4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRy eSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWRlZmF1bHQiPgogICAgIDx0ZXJtPjxsaXRlcmFsPkRF RkFVTFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+PC9saXRlcmFsPjwv dGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKaW5kZXggOTRk ZmVhYzRmNDcuLmE4OWMwZWNjZDZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC00 MCw2ICs0MCw4IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBj aGFyICp2YXJOYW1lLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKIAkJCQkJCQkJCSBPaWQgdmFy Q29sbGF0aW9uLAogCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQkJCQkJCSBib29s IG5vdF9udWxsLAorCQkJCQkJCQkJIGJvb2wgaXNfaW1tdXRhYmxlLAogCQkJCQkJCQkJIE5vZGUg KnZhckRlZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRB Y3Rpb24pOwogCkBAIC01NSw2ICs1Nyw4IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lLAogCQkJCU9pZCB2YXJPd25lciwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAogCQkJCWJv b2wgaWZfbm90X2V4aXN0cywKKwkJCQlib29sIG5vdF9udWxsLAorCQkJCWJvb2wgaXNfaW1tdXRh YmxlLAogCQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pCiB7CkBAIC0xMTcsNiArMTIxLDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwbW9kIC0g MV0gPSBJbnQzMkdldERhdHVtKHZhclR5cG1vZCk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVf dmFyb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyT3duZXIpOwogCXZhbHVlc1tBbnVt X3BnX3ZhcmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xs YXRpb24pOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5vdG51bGwgLSAxXSA9IEJvb2xH ZXREYXR1bShub3RfbnVsbCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyaXNpbW11dGFi bGUgLSAxXSA9IEJvb2xHZXREYXR1bShpc19pbW11dGFibGUpOwogCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0 aW9uKTsKIAogCWlmICh2YXJEZWZleHByKQpAQCAtMjAyLDcgKzIwOCw2IEBAIENyZWF0ZVZhcmlh YmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJT2Jq ZWN0QWRkcmVzcyB2YXJpYWJsZTsKIAlOb2RlCSAgICpjb29rZWRfZGVmYXVsdCA9IE5VTEw7CiAK LQkvKiBDaGVjayBjb25zaXN0ZW5jeSBvZiBhcmd1bWVudHMgKi8KIAlpZiAoc3RtdC0+WGFjdEVu ZEFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5EX0RST1AKIAkJJiYgc3RtdC0+dmFyaWFibGUtPnJl bHBlcnNpc3RlbmNlICE9IFJFTFBFUlNJU1RFTkNFX1RFTVApCiAJCWVyZXBvcnQoRVJST1IsCkBA IC0yNTksNiArMjY0LDggQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVh dGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCQkgICB2YXJvd25lciwKIAkJCQkJCQkgICBj b2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJCQkJCQkgICBzdG10 LT5ub3RfbnVsbCwKKwkJCQkJCQkgICBzdG10LT5pc19pbW11dGFibGUsCiAJCQkJCQkJICAgY29v a2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA1OGE2ZDIxZjlhYS4uZmE1YWRmNjMx YjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTg0LDYgKzg0 LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVj a19leHRyYTsKIAlMb2NhbFRyYW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAK Kwlib29sCQlub3RfbnVsbDsKKwlib29sCQlpc19pbW11dGFibGU7CisKIAlib29sCQlyZXNldF9h dF9lb3g7CiAKIAkvKgpAQCAtMTAyLDYgKzEwNSw5IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJs ZURhdGEKIAlib29sCQlpc192YWxpZDsKIAogCXVpbnQzMgkJaGFzaHZhbHVlOwkJLyogdXNlZCBm b3IgcGFpcmluZyBzaW52YWwgbWVzc2FnZSAqLworCisJLyogdHJ1ZSwgd2hlbiB0aGUgdmFsdWUg aXMgYWxyZWFkeSBzZXQsIGFuZCBjYW5ub3QgYmUgY2hhbmdlZCBtb3JlICovCisJYm9vbAkJcHJv dGVjdF92YWx1ZTsKIH0gU1ZhcmlhYmxlRGF0YTsKIAogdHlwZWRlZiBTVmFyaWFibGVEYXRhICpT VmFyaWFibGU7CkBAIC01NjcsNiArNTczLDIzIEBAIGV2YWxfYXNzaWduX2RlZmV4cHIoU1Zhcmlh YmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCiAKIAkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRj eHQpOwogCQl9CisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIFJhaXNlIGFuIGVycm9yIGlmIHRo aXMgaXMgYSBOT1QgTlVMTCB2YXJpYWJsZSBidXQgdGhlIHJlc3VsdCBvZgorCQkJICogREVGQVVM VCBleHByZXNzaW9uIGlzIE5VTEwuCisJCQkgKi8KKwkJCWlmIChzdmFyLT5ub3RfbnVsbCkKKwkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9B TExPV0VEKSwKKwkJCQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5P VCBOVUxMIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCQkJZ2V0X25hbWVzcGFj ZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJ CQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSksCisJCQkJCQkgZXJy ZGV0YWlsKCJUaGUgcmVzdWx0IG9mIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBOVUxMLiIpKSk7CisJ CX0KKworCQlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQorCQkJc3Zhci0+cHJvdGVjdF92YWx1ZSA9 IHRydWU7CiAKIAkJRnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKIAl9CkBAIC01OTcsNiArNjIw LDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBi b29sIGlzX3dyaXRlKQogCiAJZ2V0X3R5cGxlbmJ5dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlw bGVuLCAmc3Zhci0+dHlwYnl2YWwpOwogCisJc3Zhci0+bm90X251bGwgPSB2YXJmb3JtLT52YXJu b3RudWxsOworCXN2YXItPmlzX2ltbXV0YWJsZSA9IHZhcmZvcm0tPnZhcmlzaW1tdXRhYmxlOwor CiAJc3Zhci0+aXNfZG9tYWluID0gKGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZ UFRZUEVfRE9NQUlOKTsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXIt PmRvbWFpbl9jaGVja19leHRyYV9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKQEAg LTYyNiw5ICs2NTIsMzEgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3Zhciwg T2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hl SGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKIAkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJp ZCkpOwogCi0JaWYgKCFpc193cml0ZSkKKwlzdmFyLT5wcm90ZWN0X3ZhbHVlID0gZmFsc2U7CisK KwkvKgorCSAqIFdoZW4gdGhlIHZhcmlhYmxlIGlzIG1hcmtlZCBhcyBJTU1VVEFCTEUsIHdlIHBy ZWZlciB0byBldmFsdWF0ZQorCSAqIHBvc3NpYmxlIERFRkFVTFQgYmVmb3JlIHdyaXRlIG9wLiBJ biB0aGlzIGNhc2Ugd2Ugd2FudCB0byBwcm90ZWN0CisJICogZGVmYXVsdCB2YWx1ZSBhZ2FpbnN0 IGFueSBvdmVyd3JpdGUuCisJICovCisJaWYgKCFpc193cml0ZSB8fAorCQlzdmFyLT5pc19pbW11 dGFibGUpCisJewogCQlldmFsX2Fzc2lnbl9kZWZleHByKHN2YXIsIHR1cCk7CiAKKwkJLyoKKwkJ ICogUmFpc2UgYW4gZXJyb3IgaWYgdGhpcyBpcyBhIE5PVCBOVUxMIHZhcmlhYmxlIHdpdGhvdXQg ZGVmYXVsdAorCQkgKiBleHByZXNzaW9uLgorCQkgKi8KKwkJaWYgKHN2YXItPmlzbnVsbCAmJiBz dmFyLT5ub3RfbnVsbCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf TlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCisJCQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90 IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJ CQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlk KSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCQkgZXJy ZGV0YWlsKCJUaGUgc2Vzc2lvbiB2YXJpYWJsZSB3YXMgbm90IGluaXRpYWxpemVkIHlldC4iKSkp OworCX0KKwogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogfQogCkBAIC02NDgsNiArNjk2LDIxIEBA IHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBp c251bGwpCiAJQXNzZXJ0KHN2YXIpOwogCUFzc2VydCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1 bSkgMCk7CiAKKwlpZiAoc3Zhci0+cHJvdGVjdF92YWx1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX0VSUk9SX0lOX0FTU0lHTk1FTlQpLAorCQkJCSBlcnJtc2coInNl c3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlzIGRlY2xhcmVkIElNTVVUQUJMRSIsCisJCQkJCQln ZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZh cmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsK KworCS8qIGRvbid0IGFsbG93IGFzc2lnbm1lbnQgb2YgbnVsbCB0byBOT1QgTlVMTCB2YXJpYWJs ZSAqLworCWlmIChpc251bGwgJiYgc3Zhci0+bm90X251bGwpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkgZXJybXNn KCJudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxl IFwiJXMuJXNcIiIsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHN2YXItPnZhcmlkKSkpKTsKKwogCS8qCiAJICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBm cm9tIHNlc3Npb24gdmFyaWFibGUgb25seSB3aGVuIHRoZXkgYXJlCiAJICogdHJ1c3R3b3J0aHkg KHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3YXMgbm90IGFjY2VwdGVkIGZvciB0aGlzCkBAIC02 ODgsNiArNzUxLDEwIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1 bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5p c251bGwgPSBpc251bGw7CisKKwkvKiBkb24ndCBhbGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUg d2hlbiB2YXJpYWJsZSBpcyBJTU1VVEFCTEUgKi8KKwlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQor CQlzdmFyLT5wcm90ZWN0X3ZhbHVlID0gdHJ1ZTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDk4 NjVjNjUxZjY3Li5hYWUyMmI0NTY3MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02ODMsNiArNjgzLDcgQEAg c3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3Qg KmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlqc29uX29iamVjdF9jb25zdHJ1Y3Rvcl9udWxs X2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAog CisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwgT3B0SW1tdXRhYmxlCiAKIC8qCiAgKiBOb24t a2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdpcmVkIGludG8gdGhlICJmbGV4 IiBsZXhlci4KQEAgLTUyMjMsMjcgKzUyMjQsMzEgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRl bToKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlD UkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0 X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24K KwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBv cHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZh ckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZh clN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ0LT5yZWxw ZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52YXJpYWJsZSA9ICQ0OwotCQkJCQluLT50eXBlTmFt ZSA9ICQ2OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDc7Ci0JCQkJ CW4tPmRlZmV4cHIgPSAkODsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQ5OworCQkJCQkkNS0+ cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7CisJCQkJCW4t PnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5cGVOYW1lID0gJDc7CisJCQkJCW4tPmNvbGxDbGF1 c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsKKwkJCQkJbi0+bm90X251bGwgPSAkOTsKKwkJCQkJ bi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMTsKIAkJCQkJbi0+ aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJ fCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUg b3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBY YWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJ QUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9j b2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rp b25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUo Q3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJ CQkJbi0+dmFyaWFibGUgPSAkNzsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkOTsKLQkJCQkJbi0+Y29s bENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMDsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMTsK LQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKKwkJCQkJJDgtPnJlbHBlcnNpc3RlbmNlID0g JDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQzOworCQkJCQluLT52YXJpYWJsZSA9ICQ4Owor CQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xh dXNlICopICQxMTsKKwkJCQkJbi0+bm90X251bGwgPSAkMTI7CisJCQkJCW4tPmRlZmV4cHIgPSAk MTM7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTQ7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMg PSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpAQCAtNTI2Myw2ICs1MjY4LDE0 IEBAIFhhY3RFbmRBY3Rpb25PcHRpb246ICBPTiBDT01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFC TEVfWEFDVEVORF9EUk9QOyB9CiAJCTsKIAogCitPcHROb3ROdWxsOiBOT1QgTlVMTF9QCQkJCQkJ CQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0K KwkJOworCitPcHRJbW11dGFibGU6IElNTVVUQUJMRQkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJ CXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJCTsKKwogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lv biBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYwppbmRleCAxMTM1NzM4MmIwYi4uYmU3Y2Y4ZjEwYjQgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YwpAQCAtNTM3NCw2ICs1Mzc0LDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50 CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJCWlfdmFyb3duZXI7CiAJaW50CQkJaV92YXJj b2xsYXRpb247CisJaW50CQkJaV92YXJub3RudWxsOworCWludAkJCWlfdmFyaXNpbW11dGFibGU7 CiAJaW50CQkJaV92YXJhY2w7CiAJaW50CQkJaV9hY2xkZWZhdWx0OwogCWludAkJCWksCkBAIC01 Mzk2LDYgKzUzOTgsOCBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJICAiICAg ICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxuIgogCQkJCQkgICIgICAgICAgICAgICBFTFNF IDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24sXG4iCisJCQkJCSAgIiAg ICAgICB2LnZhcm5vdG51bGwsXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcmlzaW1tdXRhYmxlLFxu IgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkg YXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAiICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxu IgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1 bHRcbiIKQEAgLTU0MTYsNiArNTQyMCw4IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQog CWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihyZXMsICJ2YXJkZWZleHByIik7CiAJaV92YXJ4YWN0 ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcnhhY3RlbmRhY3Rpb24iKTsKIAlpX3ZhcmNv bGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKKwlpX3Zhcm5vdG51bGwg PSBQUWZudW1iZXIocmVzLCAidmFybm90bnVsbCIpOworCWlfdmFyaXNpbW11dGFibGUgPSBQUWZu dW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUiKTsKIAogCWlfdmFyb3duZXIgPSBQUWZudW1iZXIo cmVzLCAidmFyb3duZXIiKTsKIAlpX3ZhcmFjbCA9IFBRZm51bWJlcihyZXMsICJ2YXJhY2wiKTsK QEAgLTU0NDIsNiArNTQ0OCw4IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQkJcGdf c3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnhhY3RlbmRhY3Rpb24pKTsKIAogCQl2YXJp bmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xs YXRpb24pKTsKKwkJdmFyaW5mb1tpXS52YXJub3RudWxsID0gKihQUWdldHZhbHVlKHJlcywgaSwg aV92YXJub3RudWxsKSkgPT0gJ3QnOworCQl2YXJpbmZvW2ldLnZhcmlzaW1tdXRhYmxlID0gKihQ UWdldHZhbHVlKHJlcywgaSwgaV92YXJpc2ltbXV0YWJsZSkpID09ICd0JzsKIAogCQl2YXJpbmZv W2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOwog CQl2YXJpbmZvW2ldLmRhY2wuYWNsZGVmYXVsdCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywg aSwgaV9hY2xkZWZhdWx0KSk7CkBAIC01NDg4LDcgKzU0OTYsOSBAQCBkdW1wVmFyaWFibGUoQXJj aGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCWNvbnN0IGNoYXIgKnZh cnR5cG5hbWU7CiAJY29uc3QgY2hhciAqdmFyZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0 ZW5kYWN0aW9uOworCWNvbnN0IGNoYXIgKnZhcmlzaW1tdXRhYmxlOwogCU9pZAkJCXZhcmNvbGxh dGlvbjsKKwlib29sCQl2YXJub3RudWxsOwogCiAJLyogU2tpcCBpZiBub3QgdG8gYmUgZHVtcGVk ICovCiAJaWYgKCF2YXJpbmZvLT5kb2JqLmR1bXAgfHwgZG9wdC0+ZGF0YU9ubHkpCkBAIC01NTAy LDEyICs1NTEyLDE0IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJs ZUluZm8gKnZhcmluZm8pCiAJdmFyZGVmZXhwciA9IHZhcmluZm8tPnZhcmRlZmV4cHI7CiAJdmFy eGFjdGVuZGFjdGlvbiA9IHZhcmluZm8tPnZhcnhhY3RlbmRhY3Rpb247CiAJdmFyY29sbGF0aW9u ID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOworCXZhcm5vdG51bGwgPSB2YXJpbmZvLT52YXJub3Ru dWxsOworCXZhcmlzaW1tdXRhYmxlID0gdmFyaW5mby0+dmFyaXNpbW11dGFibGUgPyAiSU1NVVRB QkxFICIgOiAiIjsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVz O1xuIiwKIAkJCQkJICBxdWFsdmFybmFtZSk7CiAKLQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwg IkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIsCi0JCQkJCSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5h bWUpOworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFICVzVkFSSUFCTEUgJXMgQVMg JXMiLAorCQkJCQkgIHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAK IAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQogCXsKQEAgLTU1MTksNiArNTUzMSw5IEBA IGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8p CiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CiAJfQogCisJaWYgKHZhcm5v dG51bGwpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE5PVCBOVUxMIik7CisKIAlpZiAo dmFyZGVmZXhwcikKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgREVGQVVMVCAlcyIsCiAJ CQkJCQkgIHZhcmRlZmV4cHIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggZTJjYjA2Y2M4ODMuLmNiYjA2YjY2 Zjc0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcxMCw2ICs3MTAsOCBAQCB0eXBlZGVmIHN0cnVjdCBfVmFy aWFibGVJbmZvCiAJY2hhcgkgICAqaW5pdHJ2YXJhY2w7CiAJT2lkCQkJdmFyY29sbGF0aW9uOwog CWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcg Ki8KKwlib29sCQl2YXJub3RudWxsOworCWJvb2wJCXZhcmlzaW1tdXRhYmxlOwogfSBWYXJpYWJs ZUluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5w bCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDA0ZmU5ODQzYWU2Li45 ZWJmZDZkYmE3MiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTM5OTUsNiArMzk5NSw0 MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgSU1NVVRBQkxFIFZBUklB QkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2Fs bCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJ Y3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJp YWJsZTUgQVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFC TEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtl ID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2Vj dGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1w X3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJ fSwKKwl9LAorCisJJ0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBOT1Qg TlVMTCBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAg PT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0 ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU3 IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVMVCAxMCcsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlc UUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNyBBUyBpbnRlZ2Vy IE5PVCBOVUxMIERFRkFVTFQgMTA7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywK KwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJ CX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJ CW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJ RVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9 PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCA1NjY1NTkzMTZl ZS4uMTVjYTc3Nzk5NmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MTU5LDcgKzUxNTksNyBAQCBsaXN0VmFyaWFi bGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEg YnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0 OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3Rh dGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9 OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAwMDApCiAJewpAQCAtNTE4MCw2ICs1MTgwLDgg QEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJ CSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywg cGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJj b2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQu dHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRf dXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIE5PVCB2LnZhcm5v dG51bGwgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIE5PVCB2LnZhcmlzaW1tdXRhYmxlIGFzIFwi JXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciwg MCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4iCiAJ CQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKQEAgLTUxOTAsNiAr NTE5Miw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3Nl KQogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29s bGF0aW9uIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRf bm9vcCgiTnVsbGFibGUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk11dGFibGUiKSwKIAkJCQkJ ICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0 aW9uYWwgZW5kIGFjdGlvbiIpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IGVjNTRhYmI5YTczLi40 ZDZhOTQzNzEyZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBi L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMTI1Miw2ICsxMjUyLDggQEAgc3RhdGlj IGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJGT1JFSUdO IFRBQkxFIiwgTlVMTCwgTlVMTCwgTlVMTH0sCiAJeyJGVU5DVElPTiIsIE5VTEwsIE5VTEwsIFF1 ZXJ5X2Zvcl9saXN0X29mX2Z1bmN0aW9uc30sCiAJeyJHUk9VUCIsIFF1ZXJ5X2Zvcl9saXN0X29m X3JvbGVzfSwKKwl7IklNTVVUQUJMRSBWQVJJQUJMRSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEws IFRISU5HX05PX0RST1AgfCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgSU1NVVRBQkxF CisJCQkJCQkJCQkJCQkJCQkJCQkJCQkgKiBWQVJJQUJMRSAuLi4gKi8KIAl7IklOREVYIiwgTlVM TCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX2luZGV4ZXN9LAogCXsiTEFOR1VBR0UiLCBRdWVy eV9mb3JfbGlzdF9vZl9sYW5ndWFnZXN9LAogCXsiTEFSR0UgT0JKRUNUIiwgTlVMTCwgTlVMTCwg TlVMTCwgTlVMTCwgVEhJTkdfTk9fQ1JFQVRFIHwgVEhJTkdfTk9fRFJPUH0sCkBAIC0zMjc3LDcg KzMyNzksOCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBp bnQgZW5kKQogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NI RU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFRFTVAvVEVN UE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMgKi8KIAllbHNlIGlmIChUYWls TWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNF UVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVfV0lUSCgi SU1NVVRBQkxFIFZBUklBQkxFIiwgIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwKKwkJ CQkJICAiVklFVyIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGggVEFCTEUg b3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VE IikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwgIlNFUVVFTkNFIik7CkBAIC0zNTk0LDcgKzM1 OTcsOCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQg ZW5kKQogLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NI RU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUg PG5hbWU+IHdpdGggQVMgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklB QkxFIiwgTWF0Y2hBbnkpIHx8Ci0JCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZB UklBQkxFIiwgTWF0Y2hBbnkpKQorCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJW QVJJQUJMRSIsIE1hdGNoQW55KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJJTU1VVEFCTEUiLCAiVkFS SUFCTEUiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkFTIik7CiAJZWxzZSBpZiAoVGFp bE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hBbnksICJBUyIpKQogCQkvKiBDb21wbGV0ZSBDUkVB VEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgdHlwZXMgKi8KQEAgLTQyNDIsNiArNDI0NiwxMCBA QCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQog CWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJGUk9NIiwgIlNFUlZFUiIsIE1hdGNoQW55LCAiSU5UTyIs IE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiT1BUSU9OUyAoIik7CiAKKy8qIElNTVVUQUJM RSAtLSBjYW4gYmUgZXhwZW5kIHRvIElNTVVUQUJMRSBWQVJJQUJMRSAqLworCWVsc2UgaWYgKFRh aWxNYXRjaGVzKCJDUkVBVEUiLCAiSU1NVVRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEgoIlZBUklB QkxFIik7CisKIC8qIElOU0VSVCAtLS0gY2FuIGJlIGluc2lkZSBFWFBMQUlOLCBSVUxFLCBldGMg Ki8KIAkvKiBDb21wbGV0ZSBOT1QgTUFUQ0hFRCBUSEVOIElOU0VSVCAqLwogCWVsc2UgaWYgKFRh aWxNYXRjaGVzKCJOT1QiLCAiTUFUQ0hFRCIsICJUSEVOIiwgIklOU0VSVCIpKQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ192YXJpYWJsZS5oCmluZGV4IGU4YmZlZWJlZDExLi42OGJjNDlhMGUyNyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTUsNiArNTUsMTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJs ZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlw ZSAqLwogCWludDMyCQl2YXJ0eXBtb2QgQktJX0RFRkFVTFQoLTEpOwogCisJLyogZG9uJ3QgYWxs b3cgTlVMTCAqLworCWJvb2wJCXZhcm5vdG51bGwgQktJX0RFRkFVTFQoZik7CisKKwkvKiBkb24n dCBhbGxvdyBjaGFuZ2VzICovCisJYm9vbAkJdmFyaXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7 CisKIAkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24gZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFj dGlvbiBCS0lfREVGQVVMVChuKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGVkMGEyMTRm ZmU0Li43NmQ3NjU2ZDdmNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ1NSw2ICszNDU1 LDggQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlUeXBlTmFtZSAgICp0 eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCiAJQ29sbGF0ZUNsYXVzZSAqY29s bENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVh ZHkgZXhpc3RzICovCisJYm9vbAkJbm90X251bGw7CQkvKiBkaXNhbGxvdyBudWxscyAqLworCWJv b2wJCWlzX2ltbXV0YWJsZTsJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwogCU5vZGUJICAgKmRl ZmV4cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkv KiBvbiB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10Owpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggY2ExMzFlNTY4ZWIuLmY3MDgyNjM5NjA1 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU4MzMsMjAgKzU4MzMsMjAgQEAg Q1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUg IkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUg fCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAg fCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMg fCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwg dmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lciB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFt ZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAg ICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFj dGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAg ICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIx IFRPIFBVQkxJQzsKIENPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlv bic7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz Ci0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAg ICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAg ICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2Ny aXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcg fCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJp YWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAg ICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwg Q29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8 IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nl c3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlp bmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAg ICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAg ICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAg ICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7CkBAIC02MzE0LDkgKzYz MTQsOSBAQCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJs ZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNh Y3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8 IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBE ZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRv dHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NDg5LDkgKzY0ODksOSBAQCBpbXByb3Bl ciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1h Ii4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJp Z2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBO dWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAor LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAog LS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVh bGlmaWNhdGlvbnMuCkBAIC02NjI4LDkgKzY2MjgsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRl bXBsYXRlcwogKDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZh dWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8 IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4s IGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9u cy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK aW5kZXggZjJkZjIzOTViMTguLmRlMjI5YmEzMDFiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDUsMTEgKzQ1LDExIEBAIFNFVCBS T0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3Qu dmFyMSBBUyBpbnQ7CiBTRVQgUk9MRSBUTyBERUZBVUxUOwogXGRWKyBzdmFydGVzdC52YXIxCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBOYW1lIHwgIFR5 cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMg ICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8 ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3Zhcmlh YmxlX293bmVyK3wgCi0gICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8 IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51 bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAg ICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlw dGlvbiAKKy0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy PXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAgICAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxl X3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJ QUJMRSBzdmFydGVzdC52YXIxOwpAQCAtMTYxNCwzICsxNjE0LDE0OCBAQCBTRUxFQ1QgdmFyMTsK IAogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CistLSB0 ZXN0IE5PVCBOVUxMCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dCBOT1QgTlVMTDsKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgbnVs bCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVi bGljLnZhcjEiCitERVRBSUw6ICBUaGUgc2Vzc2lvbiB2YXJpYWJsZSB3YXMgbm90IGluaXRpYWxp emVkIHlldC4KKy0tc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7Cisg dmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0g c2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVM VCAwOworLS1zaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAw CisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIx OworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOwor LS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBp cyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEi CitEUk9QIFZBUklBQkxFIHZhcjE7CistLSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRV Uk4gTlVMTDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CistLSBzaG91bGQgdG8gZmFp bAorU0VMRUNUIHZhcjE7CitFUlJPUjogIG51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5P VCBOVUxMIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIgorREVUQUlMOiAgVGhlIHJlc3Vs dCBvZiBERUZBVUxUIGV4cHJlc3Npb24gaXMgTlVMTC4KK0RJU0NBUkQgVkFSSUFCTEVTOworLS0g c2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAgMTAKKygxIHJvdykKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9m eCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5H VUFHRSBwbHBnc3FsOworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUg dmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworLS0gdGVzdCBJTU1VVEJMRQorQ1JF QVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0gZmlyc3Qgd3Jp dGUgc2hvdWxkIG9rCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQg ZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZh cjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQg YmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VS Uk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJM RQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZh cjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEg PSBOVUxMOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24g dmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFC TEUgdmFyMTsKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCAx MDsKKy0tIGRvbid0IGFsbG93IGNoYW5nZSB3aGVuIHZhcmlhYmxlIGhhcyBERUZBVUxUIHZhbHVl CistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJp YWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJM RVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEw CisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNz aW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitEUk9QIFZB UklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUg dmFyMSBBUyBJTlQgTk9UIE5VTEwgREVGQVVMVCAxMDsKKy0tIHNob3VsZCB0byBmYWlsCitMRVQg dmFyMSA9IDEwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVj bGFyZWQgSU1NVVRBQkxFCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxl ICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCB0 byBmYWlsCitMRVQgdmFyMSA9IDMwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMu dmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYTkzZTMwYzE0OTguLmQw ZTZlN2NlMjYyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CkBAIC0xMDg1LDMgKzEwODUsMTI1IEBAIFNFTEVDVCB2YXIxOwogCiBEUk9QIFZBUklBQkxFIHZh cjE7CiBEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKworLS0gdGVzdCBOT1QgTlVMTAorLS0g c2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEw7CistLSBz aG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7CisKKy0tc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9 IDEwOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJl IG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCAwOworCist LXNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEg PSAxMDsKK1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIHRv IGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSB0ZXN0 IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVS TlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZBVUxUIHZh cnRlc3RfZngoKTsKKworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIxOworCitESVNDQVJE IFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZh cjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBp bnQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK KworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSB0 ZXN0IElNTVVUQkxFCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gZmlyc3Qgd3JpdGUgc2hvdWxkIG9rCist LSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEg PSAyMDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEg PSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworCitESVNDQVJEIFZBUklBQkxF UzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RST1AgVkFS SUFCTEUgdmFyMTsKKworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZB VUxUIDEwOworCistLSBkb24ndCBhbGxvdyBjaGFuZ2Ugd2hlbiB2YXJpYWJsZSBoYXMgREVGQVVM VCB2YWx1ZQorLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RJU0NBUkQgVkFS SUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gc2hvdWxkIGZhaWwK K0xFVCB2YXIxID0gMjA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9r CitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgSU5UIE5PVCBOVUxMIERFRkFVTFQg MTA7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDEwOworTEVUIHZhcjEgPSAyMDsK KworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xF VCB2YXIxID0gMzA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKLS0gCjIuNDUuMgoK --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0013-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20240801-0013-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf458 RnJvbSAwZmY2NzE0ZGY4ZTE4MzQ0NmEwYzY4Zjc5MmIyYmVjNGY1NmY2NWY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxMDo0NDoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MjFdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNzaW9u cwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1bHQg ZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9udmFy cwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNzZnVs bHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFnIGZv ciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21sL2Rk bC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKystLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgMjEgKysrLS0KIGRvYy9zcmMvc2dtbC9y ZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAyNyArKysrKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDg3ICsrKysrKysrKysrKysrKysrKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAyICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMzYgKysrKysrKysKIHNyYy9iaW4v cHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgMyArCiBzcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAzNiArKysrLS0tLQogLi4uL3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNzMgKysrKysrKysrKysrKystLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNDggKysrKysrKysr KwogMjAgZmlsZXMgY2hhbmdlZCwgMzU1IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKaW5kZXggMzBkZmU4Nzc1NzIuLjlkMzk0MmJkYjRiIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bApAQCAtOTg2Niw2ICs5ODY2LDE0IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtp dGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8 L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmRlZmV4cHI8L3N0cnVjdGZpZWxkPiA8dHlwZT5wZ19u b2RlX3RyZWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUg aW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhcmlhYmxlIGRlZmF1bHQgdmFsdWUKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3Jv dXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggYmVjODIxNGVhMDcuLmFhZTE4NDkyYTljIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBA IC01MzM5LDE0ICs1MzM5LDE0IEBAIFNFTEVDVCBjdXJyZW50X3VzZXJfaWQ7CiAKICAgIDxwYXJh PgogICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1 cnJlbnQgc2Vzc2lvbi4gUmV0cmlldmluZwotICAgIGEgdmFyaWFibGUncyB2YWx1ZSByZXR1cm5z IGEgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCi0gICAgYmVl biBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2luZyB0aGUK LSAgICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBh cmUgbm90IHRyYW5zYWN0aW9uYWw6Ci0gICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUg b2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKLSAgICBiZSB1bmRv bmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVz IGluCi0gICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNl bHZlcyBjYW4gYmUgcGVyc2lzdGVudAotICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVl cyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCi0gICAgY29udGVu dCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBh IDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IG9yIGEgZGVmYXVsdCB2YWx1ZSwKKyAgICB1bmxlc3Mg aXRzIHZhbHVlIGhhcyAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQg c2Vzc2lvbgorICAgIHVzaW5nIHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBT ZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90CisgICAgdHJhbnNhY3Rpb25hbDogYW55IGNoYW5nZXMg bWFkZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluCisgICAgYSB0cmFuc2Fj dGlvbiB3b24ndCBiZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChq dXN0IGxpa2UKKyAgICB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lv biB2YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4gYmUKKyAgICBwZXJzaXN0ZW50IG9yIHRlbXBvcmFy eSwgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQKKyAg ICAobGlrZSB0aGUgY29udGVudCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KICAgIDwvcGFyYT4KIAog ICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBlMWMyOTQw ZDRjYS4uODE4N2MxOGUyOGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApA QCAtMjcsNyArMjcsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNk aXY+CiA8c3lub3BzaXM+CiBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxF IFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5 cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9O IFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KKyAgICBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1J VCBEUk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3Jl ZnN5bm9wc2lzZGl2PgogIDxyZWZzZWN0MT4KQEAgLTQxLDEwICs0MSwxMCBAQCBDUkVBVEUgWyB7 IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icAogCiAgIDxwYXJhPgogICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJp YWJsZSBpcyBsb2NhbCB0byB0aGUgY3VycmVudCBzZXNzaW9uLiAgUmV0cmlldmluZwotICAgYSBz ZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMLCB1bmxlc3MgaXRzIHZhbHVlIGlz IHNldCB0bwotICAgc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgotICAgVGhlIGNvbnRlbnQgb2YgYSBzZXNz aW9uIHZhcmlhYmxlIGlzIG5vdCB0cmFuc2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzCi0g ICByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcy4KKyAgIGEgc2Vzc2lv biB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCBvciBhIGRlZmF1bHQgdmFsdWUsIHVubGVz cyBpdHMgdmFsdWUKKyAgIGlzIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBz ZXNzaW9uIHdpdGggYSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+CisgICBjb21tYW5kLiAgVGhlIGNv bnRlbnQgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB0cmFuc2FjdGlvbmFsLiAgVGhpcyBp cyB0aGUKKyAgIHNhbWUgYXMgcmVndWxhciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFn ZXMuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTEwNSw2ICsxMDUsMTcgQEAgQ1JFQVRFIFsg eyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InAKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg IDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1kZWZhdWx0Ij4KKyAgICA8dGVy bT48bGl0ZXJhbD5ERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxl PjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZSA8bGl0ZXJhbD5ERUZBVUxUPC9saXRlcmFsPiBjbGF1c2UgY2FuIGJlIHVzZWQgdG8gYXNzaWdu IGEgZGVmYXVsdAorICAgICAgdmFsdWUgdG8gYSBzZXNzaW9uIHZhcmlhYmxlLiBUaGlzIGV4cHJl c3Npb24gaXMgZXZhbHVhdGVkIHdoZW4gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlIGlzIGZp cnN0IGFjY2Vzc2VkIGZvciByZWFkaW5nIGFuZCBoYWQgbm90IHlldCBiZWVuIGFzc2lnbmVkIGEg dmFsdWUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1vbi1jb21taXQtZHJv cCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+T04gQ09NTUlUIERST1A8L2xpdGVyYWw+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKaW5kZXggNjFiOTY3ZjljOWIuLjZiMGNi OTUwMzRmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbApAQCAtNzEsNyArNzEsOCBAQCBESVNDQVJEIHsg QUxMIHwgUExBTlMgfCBTRVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0K ICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgUmVzZXRzIHRoZSB2YWx1ZSBvZiBh bGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUKLSAgICAgIGlzIGxhdGVyIHJldXNl ZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4uCisgICAg ICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIGVpdGhlcgorICAgICAg PGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gb3IgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgIDwvcGFy YT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zh cmlhYmxlLmMKaW5kZXggNzBiNjIyYWE2NzIuLjk0ZGZlYWM0ZjQ3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z192YXJpYWJsZS5jCkBAIC0yNCw2ICsyNCw5IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29lcmNlLmgiCisjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX2NvbGxhdGUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZXhwci5o IgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKQEAgLTM3LDYgKzQwLDcgQEAgc3Rh dGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJ CQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCiAJCQkJ CQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIE5vZGUgKnZhckRlZmV4cHIsCiAJ CQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24pOwogCiAKQEAg LTUxLDYgKzU1LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJ T2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJYm9vbCBpZl9ub3RfZXhp c3RzLAorCQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pCiB7CiAJQWNsCQkgICAqdmFyYWNsOwpAQCAtMTE0LDYgKzExOSwxMSBA QCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192 YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9u KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFy R2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAKKwlpZiAodmFyRGVmZXhwcikKKwkJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhwciAtIDFdID0gQ1N0cmluZ0dldFRleHREYXR1bShu b2RlVG9TdHJpbmcodmFyRGVmZXhwcikpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ192YXJpYWJs ZV92YXJkZWZleHByIC0gMV0gPSB0cnVlOworCiAJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9h Y2woT0JKRUNUX1ZBUklBQkxFLCB2YXJPd25lciwKIAkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOwog CWlmICh2YXJhY2wgIT0gTlVMTCkKQEAgLTE1MCw2ICsxNjAsMTEgQEAgY3JlYXRlX3ZhcmlhYmxl KGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJcmVjb3JkX29iamVjdF9hZGRyZXNzX2RlcGVuZGVuY2ll cygmbXlzZWxmLCBhZGRycywgREVQRU5ERU5DWV9OT1JNQUwpOwogCWZyZWVfb2JqZWN0X2FkZHJl c3NlcyhhZGRycyk7CiAKKwkvKiBkZXBlbmRlbmN5IG9uIGRlZmF1bHQgZXhwciAqLworCWlmICh2 YXJEZWZleHByKQorCQlyZWNvcmREZXBlbmRlbmN5T25FeHByKCZteXNlbGYsIChOb2RlICopIHZh ckRlZmV4cHIsCisJCQkJCQkJICAgTklMLCBERVBFTkRFTkNZX05PUk1BTCk7CisKIAkvKiBkZXBl bmRlbmN5IG9uIG93bmVyICovCiAJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoVmFyaWFibGVSZWxh dGlvbklkLCB2YXJpZCwgdmFyT3duZXIpOwogCkBAIC0xODUsNiArMjAwLDcgQEAgQ3JlYXRlVmFy aWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAlP aWQJCQljb2xsYXRpb247CiAJT2lkCQkJdHlwY29sbGF0aW9uOwogCU9iamVjdEFkZHJlc3MgdmFy aWFibGU7CisJTm9kZQkgICAqY29va2VkX2RlZmF1bHQgPSBOVUxMOwogCiAJLyogQ2hlY2sgY29u c2lzdGVuY3kgb2YgYXJndW1lbnRzICovCiAJaWYgKHN0bXQtPlhhY3RFbmRBY3Rpb24gPT0gVkFS SUFCTEVfWEFDVEVORF9EUk9QCkBAIC0yMjYsNiArMjQyLDE2IEBAIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQlmb3Jt YXRfdHlwZV9iZSh0eXBpZCkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10 LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbikpKTsKIAorCWlmIChzdG10LT5kZWZleHByKQorCXsKKwkJ Y29va2VkX2RlZmF1bHQgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgc3RtdC0+ZGVmZXhwciwKKwkJ CQkJCQkJCSAgIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUKTsKKworCQljb29rZWRfZGVmYXVs dCA9IGNvZXJjZV90b19zcGVjaWZpY190eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCSBjb29rZWRf ZGVmYXVsdCwgdHlwaWQsICJERUZBVUxUIik7CisJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0 YXRlLCBjb29rZWRfZGVmYXVsdCk7CisJfQorCiAJdmFyaWFibGUgPSBjcmVhdGVfdmFyaWFibGUo c3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsCiAJCQkJCQkJICAgbmFtZXNwYWNlaWQsCiAJCQkJCQkJ ICAgdHlwaWQsCkBAIC0yMzMsNiArMjU5LDcgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCQkgICB2YXJvd25lciwK IAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJ CQkJCQkgICBjb29rZWRfZGVmYXVsdCwKIAkJCQkJCQkgICBzdG10LT5YYWN0RW5kQWN0aW9uKTsK IAogCWVsb2coREVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lk OiVkKSB3YXMgY3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKaW5kZXggNDNiMWViNTAwMzQuLjU4YTZkMjFmOWFhIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk ZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgog I2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xt Z3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKQEAgLTUxNCwxMSArNTE1LDY4IEBAIEF0 RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKIAl9CiB9CiAKKy8qCisg KiBldmFsdWF0ZSBhbiBleHByZXNzaW9uCisgKi8KK3N0YXRpYyB2b2lkCitldmFsX2Fzc2lnbl9k ZWZleHByKFNWYXJpYWJsZSBzdmFyLCBIZWFwVHVwbGUgdHVwKQoreworCURhdHVtCQlkZWZleHBy X3ZhbHVlOworCWJvb2wJCWlzbnVsbDsKKworCUFzc2VydChzdmFyKTsKKwlBc3NlcnQoc3Zhci0+ aXNfdmFsaWQpOworCUFzc2VydChIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpOworCisJZGVmZXhwcl92 YWx1ZSA9IFN5c0NhY2hlR2V0QXR0cihWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCXR1cCwKKwkJCQkJ CQkJCUFudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhwciwKKwkJCQkJCQkJCSZpc251bGwpOworCisJ aWYgKCFpc251bGwpCisJeworCQlFU3RhdGUJICAgKmVzdGF0ZTsKKwkJRXhwclN0YXRlICAqZGVm ZXhwcnM7CisJCUV4cHIJICAgKmRlZmV4cHI7CisJCWNoYXIJICAgKmRlZmV4cHJfc3RyOworCQlE YXR1bQkJdmFsdWU7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCisJCWVzdGF0ZSA9IENyZWF0 ZUV4ZWN1dG9yU3RhdGUoKTsKKworCQlkZWZleHByX3N0ciA9IFRleHREYXR1bUdldENTdHJpbmco ZGVmZXhwcl92YWx1ZSk7CisJCWRlZmV4cHIgPSAoRXhwciAqKSBzdHJpbmdUb05vZGUoZGVmZXhw cl9zdHIpOworCisJCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlc3RhdGUtPmVzX3F1 ZXJ5X2N4dCk7CisKKwkJZGVmZXhwciA9IGV4cHJlc3Npb25fcGxhbm5lcigoRXhwciAqKSBkZWZl eHByKTsKKwkJZGVmZXhwcnMgPSBFeGVjSW5pdEV4cHIoZGVmZXhwciwgTlVMTCk7CisKKwkJdmFs dWUgPSBFeGVjRXZhbEV4cHJTd2l0Y2hDb250ZXh0KGRlZmV4cHJzLAorCQkJCQkJCQkJCSAgR2V0 UGVyVHVwbGVFeHByQ29udGV4dChlc3RhdGUpLAorCQkJCQkJCQkJCSAgJmlzbnVsbCk7CisKKwkJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CisKKwkJaWYgKCFpc251bGwpCisJCXsKKwkJ CW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsK KworCQkJc3Zhci0+dmFsdWUgPSBkYXR1bUNvcHkodmFsdWUsIHN2YXItPnR5cGJ5dmFsLCBzdmFy LT50eXBsZW4pOworCQkJc3Zhci0+aXNudWxsID0gZmFsc2U7CisKKwkJCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRjeHQpOworCQl9CisKKwkJRnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKKwl9 Cit9CisKIC8qCiAgKiBJbml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGluICJzdmFyIgogICov CiBzdGF0aWMgdm9pZAotc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lk IHZhcmlkKQorc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlk LCBib29sIGlzX3dyaXRlKQogewogCUhlYXBUdXBsZQl0dXA7CiAJRm9ybV9wZ192YXJpYWJsZSB2 YXJmb3JtOwpAQCAtNTY4LDYgKzYyNiw5IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1Zhcmlh YmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hW YWx1ZTEoVkFSSUFCTEVPSUQsCiAJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsK IAorCWlmICghaXNfd3JpdGUpCisJCWV2YWxfYXNzaWduX2RlZmV4cHIoc3ZhciwgdHVwKTsKKwog CVJlbGVhc2VTeXNDYWNoZSh0dXApOwogfQogCkBAIC01OTcsNyArNjU4LDcgQEAgc2V0X3Nlc3Np b25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAkg Ki8KIAlpZiAoIXN2YXItPmlzX3ZhbGlkKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgm bG9jc3Zhciwgc3Zhci0+dmFyaWQpOworCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZsb2NzdmFy LCBzdmFyLT52YXJpZCwgZmFsc2UpOwogCQlfc3ZhciA9ICZsb2NzdmFyOwogCX0KIAllbHNlCkBA IC03MzIsNyArNzkzLDI1IEBAIGdldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKIAkgKi8K IAlpZiAoIXN2YXItPmlzX3ZhbGlkKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFy LCB2YXJpZCk7CisJCS8qIGluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHVzZSBkZWZleHAgaWYgaXQg aXMgZGVmaW5lZCAqLworCQlQR19UUlkoKTsKKwkJeworCQkJLyoKKwkJCSAqIEluIHRoaXMgY2Fz ZSwgdGhlIHNldHVwIGNhbiBleGVjdXRlIGRlZmF1bHQgZXhwcmVzc2lvbi4gV2hlbgorCQkJICog dGhlIGV4ZWN1dGlvbiBvZiBkZWZhdWx0IGV4cHJlc3Npb24gZmFpbHMsIHRoZW4gd2UgbmVlZCB0 bworCQkJICogcmVtb3ZlIGVudHJ5IGZyb20gc2Vzc2lvbiB2YXJzLgorCQkJICovCisJCQlzZXR1 cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkLCBmYWxzZSk7CisJCX0KKwkJUEdfQ0FUQ0go KTsKKwkJeworCQkJLyogVGhpcyBlbnRyeSBjYW5ub3QgYmUgdmFsaWQsIHJlbW92ZSBmcm9tIHNl c3Npb252YXJzICovCisJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JF TU9WRSwgTlVMTCk7CisKKwkJCS8qIHByb3BhZ2F0ZSB0aGUgZXJyb3IgKi8KKwkJCVBHX1JFX1RI Uk9XKCk7CisJCX0KKwkJUEdfRU5EX1RSWSgpOwogCiAJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2 YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAo ZW1pdHRlZCBieSBSRUFEKSIsCiAJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLApAQCAtNzk2LDcgKzg3NSw3IEBAIFNldFNlc3Npb25W YXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKIAogCWlmICghZm91 bmQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkKTsKKwkJc2V0dXBf c2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCwgdHJ1ZSk7CiAKIAkJZWxvZyhERUJVRzEsICJz ZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4g bWVtb3J5IChlbWl0dGVkIGJ5IFdSSVRFKSIsCiAJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXgg MjU3ZDY3YWY2NzUuLjk4NjVjNjUxZjY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY1Myw2ICs2NTMsNyBA QCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlz dCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPGxpc3Q+CQlwYXJ0aXRpb25zX2xpc3QK ICV0eXBlIDxsaXN0PgkJaGFzaF9wYXJ0Ym91bmQKICV0eXBlIDxkZWZlbHQ+CQloYXNoX3BhcnRi b3VuZF9lbGVtCisldHlwZSA8bm9kZT4JCU9wdFNlc3Npb25WYXJEZWZFeHByCiAKICV0eXBlIDxu b2RlPglqc29uX2Zvcm1hdF9jbGF1c2UKIAkJCQlqc29uX2Zvcm1hdF9jbGF1c2Vfb3B0CkBAIC01 MjIyLDMwICs1MjIzLDM2IEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAgKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCiAKIENyZWF0ZVNlc3Npb25WYXJTdG10OgotCQkJQ1JFQVRFIE9wdFRlbXAg VkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZSBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZp ZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJE ZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJT dG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwogCQkJCQkkNC0+cmVscGVy c2lzdGVuY2UgPSAkMjsKIAkJCQkJbi0+dmFyaWFibGUgPSAkNDsKIAkJCQkJbi0+dHlwZU5hbWUg PSAkNjsKIAkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ3OwotCQkJCQlu LT5YYWN0RW5kQWN0aW9uID0gJDg7CisJCQkJCW4tPmRlZmV4cHIgPSAkODsKKwkJCQkJbi0+WGFj dEVuZEFjdGlvbiA9ICQ5OwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQk ID0gKE5vZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBPcHRUZW1wIFZBUklBQkxFIElGX1Ag Tk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xh dXNlIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZf UCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9j bGF1c2UgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJ CQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3Rt dCk7CiAJCQkJCSQ3LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwogCQkJCQluLT52YXJpYWJsZSA9ICQ3 OwogCQkJCQluLT50eXBlTmFtZSA9ICQ5OwogCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVD bGF1c2UgKikgJDEwOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDExOworCQkJCQluLT5kZWZl eHByID0gJDExOworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDEyOwogCQkJCQluLT5pZl9ub3Rf ZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwogCitPcHRT ZXNzaW9uVmFyRGVmRXhwcjogREVGQVVMVCBiX2V4cHIJCQkJCXsgJCQgPSAkMjsgfQorCQkJfCAv KiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gTlVMTDsgfQorCQk7CisKIC8qCiAgKiBUZW1wb3Jhcnkg c2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGRyb3BwZWQgb24gc3VjY2Vzc2Z1bAogICogdHJhbnNh Y3Rpb24gZW5kIGxpa2UgdGFibGVzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2FnZy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IGI0OTRjODg1 ZTlmLi5jYjU3MjAzZTE4NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Fn Zy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNDg1LDYgKzQ4NSw3 IEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBO b2RlICpleHByKQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgog CQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJ QUJMRV9ERUZBVUxUOgogCiAJCQlpZiAoaXNBZ2cpCiAJCQkJZXJyID0gXygiYWdncmVnYXRlIGZ1 bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpAQCAtOTM0 LDYgKzkzNSw3IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwg V2luZG93RnVuYyAqd2Z1bmMsCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RF RkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9L SU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBu b3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJY2FzZSBF WFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGUw MTgxYThiOTUyLi4zMzcwZTJmZmY5YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC01ODQs NiArNTg0LDcgQEAgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJL aW5kIHBfZXhwcl9raW5kKQogCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5HOgogCQljYXNlIEVY UFJfS0lORF9DWUNMRV9NQVJLOgogCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQlj YXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJcmVzdWx0ID0gZmFsc2U7CiAJCQli cmVhazsKIAl9CkBAIC02NjksNiArNjcwLDcgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJL OgogCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgogCQljYXNlIEVYUFJfS0lORF9MRVRf VEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJLyogb2theSAq LwogCQkJYnJlYWs7CiAKQEAgLTIwNzYsNiArMjA3OCw3IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFy c2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQ Ul9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxU OgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygiY2Fubm90 IHVzZSBzdWJxdWVyeSBpbiBERUZBVUxUIGV4cHJlc3Npb24iKTsKIAkJCWJyZWFrOwogCQljYXNl IEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgpAQCAtMzQyNiw2ICszNDI5LDcgQEAgUGFyc2VF eHByS2luZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2luZCkKIAkJCXJldHVybiAiQ0hFQ0siOwog CQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJ T05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCXJldHVy biAiREVGQVVMVCI7CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CiAJCQlyZXR1 cm4gImluZGV4IGV4cHJlc3Npb24iOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggOWFhNGY2 MDc2OGIuLmZjYWM2OTQ0NTVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2MjAsNiAr MjYyMCw3IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5v ZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRf Q09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNh c2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5n IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwogCQkJ YnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRl eCBkYTliYzIzYWUwOS4uMTEzNTczODJiMGIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTM3MCw2ICs1Mzcw LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJuYW1lc3BhY2U7 CiAJaW50CQkJaV92YXJ0eXBlOwogCWludAkJCWlfdmFydHlwbmFtZTsKKwlpbnQJCQlpX3ZhcmRl ZmV4cHI7CiAJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJCWlfdmFyb3duZXI7CiAJ aW50CQkJaV92YXJjb2xsYXRpb247CkBAIC01Mzk1LDYgKzUzOTYsNyBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxu IgogCQkJCQkgICIgICAgICAgICAgICBFTFNFIDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBBUyB2 YXJjb2xsYXRpb24sXG4iCisJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYu dmFyZGVmZXhwciwwKSBhcyB2YXJkZWZleHByLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJvd25l ciwgdi52YXJhY2wsXG4iCiAJCQkJCSAgIiAgICAgICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25l cikgQVMgYWNsZGVmYXVsdFxuIgogCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUg dlxuIgpAQCAtNTQxMSw2ICs1NDEzLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJ aV92YXJuYW1lc3BhY2UgPSBQUWZudW1iZXIocmVzLCAidmFybmFtZXNwYWNlIik7CiAJaV92YXJ0 eXBlID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cGUiKTsKIAlpX3ZhcnR5cG5hbWUgPSBQUWZudW1i ZXIocmVzLCAidmFydHlwbmFtZSIpOworCWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihyZXMsICJ2 YXJkZWZleHByIik7CiAJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcnhh Y3RlbmRhY3Rpb24iKTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xs YXRpb24iKTsKIApAQCAtNTQ0Niw2ICs1NDQ5LDExIEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpm b3V0KQogCQl2YXJpbmZvW2ldLmRhY2wuaW5pdHByaXZzID0gTlVMTDsKIAkJdmFyaW5mb1tpXS5y b2xuYW1lID0gZ2V0Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyb3duZXIpKTsKIAor CQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3ZhcmRlZmV4cHIpKQorCQkJdmFyaW5mb1tpXS52 YXJkZWZleHByID0gTlVMTDsKKwkJZWxzZQorCQkJdmFyaW5mb1tpXS52YXJkZWZleHByID0gcGdf c3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmRlZmV4cHIpKTsKKwogCQkvKiBEbyBub3Qg dHJ5IHRvIGR1bXAgQUNMIGlmIG5vIEFDTCBleGlzdHMuICovCiAJCWlmICghUFFnZXRpc251bGwo cmVzLCBpLCBpX3ZhcmFjbCkpCiAJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBEVU1Q X0NPTVBPTkVOVF9BQ0w7CkBAIC01NDc4LDYgKzU0ODYsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2 ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCVBRRXhwQnVmZmVyIHF1ZXJ5 OwogCWNoYXIJICAgKnF1YWx2YXJuYW1lOwogCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CisJY29u c3QgY2hhciAqdmFyZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5kYWN0aW9uOwogCU9p ZAkJCXZhcmNvbGxhdGlvbjsKIApAQCAtNTQ5MCw2ICs1NDk5LDcgQEAgZHVtcFZhcmlhYmxlKEFy Y2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAogCXF1YWx2YXJuYW1l ID0gcGdfc3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKIAl2YXJ0eXBuYW1l ID0gdmFyaW5mby0+dmFydHlwbmFtZTsKKwl2YXJkZWZleHByID0gdmFyaW5mby0+dmFyZGVmZXhw cjsKIAl2YXJ4YWN0ZW5kYWN0aW9uID0gdmFyaW5mby0+dmFyeGFjdGVuZGFjdGlvbjsKIAl2YXJj b2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAKQEAgLTU1MDksNiArNTUxOSwxMCBA QCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZv KQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAorCWlmICh2YXJk ZWZleHByKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBERUZBVUxUICVzIiwKKwkJCQkJ CSAgdmFyZGVmZXhwcik7CisKIAlpZiAoc3RyY21wKHZhcnhhY3RlbmRhY3Rpb24sICJyIikgPT0g MCkKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VU Iik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oCmluZGV4IDA5MTA1MDdkOWFjLi5lMmNiMDZjYzg4MyAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5oCkBAIC03MDIsNiArNzAyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbwogCUR1 bXBhYmxlQWNsIGRhY2w7CiAJT2lkCQkJdmFydHlwZTsKIAljaGFyCSAgICp2YXJ0eXBuYW1lOwor CWNoYXIJICAgKnZhcmRlZmV4cHI7CiAJY2hhcgkgICAqdmFyeGFjdGVuZGFjdGlvbjsKIAljaGFy CSAgICp2YXJhY2w7CiAJY2hhcgkgICAqcnZhcmFjbDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwK aW5kZXggMDhlYTc5MTQyMGEuLjA0ZmU5ODQzYWU2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5w bApAQCAtMzk1OSw2ICszOTU5LDQyIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NS RUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlIERFRkFVTFQnID0+IHsKKwkJYWxsX3J1bnMgICAg ID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0 ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlMyBBUyBpbnRlZ2VyIERFRkFVTFQgMTA7JywKKwkJcmVnZXhwID0+IHFyL14K KwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTMgQVMgaW50ZWdlciBERUZB VUxUIDEwO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0 X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2Ug PT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVh c3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBWQVJJQUJMRSB0ZXN0X3Zh cmlhYmxlIERFRkFVTFQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJyA9PiB7CisJCWFsbF9ydW5z ICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQlj cmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1 bXBfdGVzdC52YXJpYWJsZTQgQVMgaW50ZWdlciBERUZBVUxUIDEwIE9OIFRSQU5TQUNUSU9OIEVO RCBSRVNFVCcsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJQUJMRSBkdW1wX3Rl c3QudmFyaWFibGU0IEFTIGludGVnZXIgREVGQVVMVCAxMCBPTiBUUkFOU0FDVElPTiBFTkQgUkVT RVQ7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2No ZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7 CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJl bWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7 CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVt cF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCA1MGJhZTUzOTExMy4uNTY2NTU5MzE2ZWUgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCkBAIC01MTU5LDcgKzUxNTksNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBh dHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAg KnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBi b29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVf Y29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAwMDApCiAJewpA QCAtNTE4MCw2ICs1MTgwLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxv Zy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdI RVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52 YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAg cGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLCAwKSBhcyBcIiVzXCIs XG4iCiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIKIAkJCQkJICAiICAgIFdI RU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgogCQkJCQkgICIgICAgV0hFTiAncicgVEhF TiAnT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJ1xuIgpAQCAtNTE4OSw2ICs1MTkwLDcgQEAgbGlz dFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgZ2V0 dGV4dF9ub29wKCJUeXBlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZWZhdWx0 IiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAK IAlpZiAodmVyYm9zZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFi bGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCA2MDI5MWVmN2Fj Mi4uZThiZmVlYmVkMTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFi bGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTY3LDYgKzY3 LDkgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiBh Y2Nlc3MgcGVybWlzc2lvbnMgKi8KIAlhY2xpdGVtCQl2YXJhY2xbMV0gQktJX0RFRkFVTFQoX251 bGxfKTsKIAorCS8qIGxpc3Qgb2YgZXhwcmVzc2lvbiB0cmVlcyBmb3IgdmFyaWFibGUgZGVmYXVs dCAoTlVMTCBpZiBub25lKSAqLworCXBnX25vZGVfdHJlZSB2YXJkZWZleHByIEJLSV9ERUZBVUxU KF9udWxsXyk7CisKICNlbmRpZgogfSBGb3JtRGF0YV9wZ192YXJpYWJsZTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCmluZGV4IDU2ZTI4NGRjMDljLi5lZDBhMjE0ZmZlNCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaApAQCAtMzQ1NSw2ICszNDU1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lv blZhclN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxl ICovCiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkv KiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJTm9kZQkgICAqZGVmZXhwcjsJ CS8qIGRlZmF1bHQgZXhwcmVzc2lvbiAqLwogCWNoYXIJCVhhY3RFbmRBY3Rpb247CS8qIG9uIHRy YW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oCmluZGV4IDZkOTM2OTE5NjU5Li5iYWJhMjJlZDg0MCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oCkBAIC04NCw2ICs4NCw3IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJL aW5kCiAJRVhQUl9LSU5EX0NZQ0xFX01BUkssCQkvKiBjeWNsZSBtYXJrIHZhbHVlICovCiAJRVhQ Ul9LSU5EX0FTU0lHTl9UQVJHRVQsCS8qIFBML3BnU1FMIGFzc2lnbm1lbnQgdGFyZ2V0ICovCiAJ RVhQUl9LSU5EX0xFVF9UQVJHRVQsCQkvKiBMRVQgdGFyZ2V0ICovCisJRVhQUl9LSU5EX1ZBUklB QkxFX0RFRkFVTFQsIC8qIGRlZmF1bHQgdmFsdWUgZm9yIHNlc3Npb24gdmFyaWFibGUgKi8KIH0g UGFyc2VFeHByS2luZDsKIAogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCBhZDdj ZDFjYTM5MC4uY2ExMzFlNTY4ZWIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAt NTgzMywyMCArNTgzMywyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwog U0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwot IFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAg T3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmls ZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEg fCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBD b2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9u YWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWlu ZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJM RSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAg IHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAg ICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5n IHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25l cit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAg IHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8 IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAg ICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAg ICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAK Ky0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAg IHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIr fCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAg ICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAtNjMxNCw5ICs2 MzE0LDkgQEAgTGlzdCBvZiBzY2hlbWFzCiAoMCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFi bGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1h IHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFj dGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8 IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZp Y2F0aW9ucy4KQEAgLTY0ODksOSArNjQ4OSw5IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBc ZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVh bGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlh YmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVt YSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIg fCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5k IGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NjI4LDkgKzY2MjgsOSBAQCBMaXN0 IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8 IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1l IHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBi dXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMu CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cmlu ZGV4IDI4MGIyN2U3MDU0Li5mMmRmMjM5NWIxOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTQ1LDExICs0NSwxMSBAQCBTRVQgUk9M RSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZh cjEgQVMgaW50OwogU0VUIFJPTEUgVE8gREVGQVVMVDsKIFxkVisgc3ZhcnRlc3QudmFyMQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFj dGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8 IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ci0gc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKLSAgICAgICAgICB8ICAgICAgfCAgICAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9v d25lciB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworICBTY2hlbWEgIHwg TmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgRGVm YXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBw cml2aWxlZ2VzICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLSstLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHN2YXJ0ZXN0IHwgdmFyMSB8 IGludGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVn cmVzc192YXJpYWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9v d25lciB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CkBAIC0xNTUx LDMgKzE1NTEsNjYgQEAgU0VMRUNUIHZhcjEgSVMgTlVMTDsKICgxIHJvdykKIAogRFJPUCBWQVJJ QUJMRSB2YXIxOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRV Uk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICd2YXJ0ZXN0X2Z4IGV4ZWN1dGVk JzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVzdF9meCgpOworLS0gdmFydGVzdF9meCBzaG91 bGQgYmUgcHJvdGVjdGVkIGJ5IGRlcCwgc2hvdWxkIGZhaWwKK0RST1AgRlVOQ1RJT04gdmFydGVz dF9meCgpOworRVJST1I6ICBjYW5ub3QgZHJvcCBmdW5jdGlvbiB2YXJ0ZXN0X2Z4KCkgYmVjYXVz ZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2 YXIxIGRlcGVuZHMgb24gZnVuY3Rpb24gdmFydGVzdF9meCgpCitISU5UOiAgVXNlIERST1AgLi4u IENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgdmFyMTsKK05PVElDRTogIHZhcnRlc3RfZnggZXhlY3V0ZWQKKyB2YXIxIAor LS0tLS0tCisgICAgMAorKDEgcm93KQorCistLSB0aGUgZGVmZXhwciBzaG91bGQgYmUgZXZhbHVh dGVkIG9ubHkgb25jZQorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygxIHJv dykKKworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBpbiB0aGlzIGNhc2UsIHRoZSBkZWZleHByIHNo b3VsZCBub3QgYmUgZXZhbHVhdGVkCitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2YXIxOworIHZh cjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworQ1JFQVRF IE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVH SU4KKyAgUkFJU0UgRVhDRVBUSU9OICd2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZyc7CisgIFJFVFVS TiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCB0byBmYWlsLCBidXQg bm90IHRvIGNyYXNoCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgdmFydGVzdF9meCBpcyBleGVjdXRp bmcKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJ0ZXN0X2Z4KCkgbGluZSAzIGF0IFJB SVNFCistLSBhZ2FpbgorU0VMRUNUIHZhcjE7CitFUlJPUjogIHZhcnRlc3RfZnggaXMgZXhlY3V0 aW5nCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFydGVzdF9meCgpIGxpbmUgMyBhdCBS QUlTRQorLS0gYnV0IHdlIGNhbiB3cml0ZQorTEVUIHZhcjEgPSAxMDA7CitTRUxFQ1QgdmFyMTsK KyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitE Uk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbAppbmRleCA4MjkyOTNkZGNjNC4uYTkzZTMwYzE0OTggMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEwMzcsMyArMTAzNyw1MSBA QCBST0xMQkFDSzsKIFNFTEVDVCB2YXIxIElTIE5VTEw7CiAKIERST1AgVkFSSUFCTEUgdmFyMTsK KworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBB UyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICd2YXJ0ZXN0X2Z4IGV4ZWN1dGVkJzsKKyAgUkVU VVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQgREVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CisKKy0tIHZhcnRlc3RfZnggc2hvdWxkIGJl IHByb3RlY3RlZCBieSBkZXAsIHNob3VsZCBmYWlsCitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngo KTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gdGhlIGRlZmV4cHIgc2hv dWxkIGJlIGV2YWx1YXRlZCBvbmx5IG9uY2UKK1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklB QkxFUzsKKworLS0gaW4gdGhpcyBjYXNlLCB0aGUgZGVmZXhwciBzaG91bGQgbm90IGJlIGV2YWx1 YXRlZAorTEVUIHZhcjEgPSAxMDA7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7 CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQg QVMgJCQKK0JFR0lOCisgIFJBSVNFIEVYQ0VQVElPTiAndmFydGVzdF9meCBpcyBleGVjdXRpbmcn OworICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKKy0tIHNob3VsZCB0 byBmYWlsLCBidXQgbm90IHRvIGNyYXNoCitTRUxFQ1QgdmFyMTsKKworLS0gYWdhaW4KK1NFTEVD VCB2YXIxOworCistLSBidXQgd2UgY2FuIHdyaXRlCitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2 YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsK LS0gCjIuNDUuMgoK --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0012-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20240801-0012-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf499 RnJvbSA4ODFhNmIzNmEwOWU5ZDA5YTkwMDdmMjA1YzdlZGE1NjNiMDllMTMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjAgTWFyIDIwMjQgMDg6Mzc6MTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDEy LzIxXSBJbXBsZW1lbnRhdGlvbiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlCgpUaGlz IGlzIHNpbXBsZSBwYXRjaCAtIGp1c3QgYWRkIHNwZWNpYWwgZmxhZyB0byBzZXNzaW9uIHZhcmlh YmxlIG1lbW9yeSBlbnRyeS4KVGhlIGVudHJpZXMgd2l0aCBhY3RpdmUgdGhpcyBmbGFnIGFyZSBy ZW1vdmVkIGZyb20gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZQphdCB0cmFuc2FjdGlvbiBlbmQuIFRo ZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBzeW5vbnltcyBmb3IgIkNPTU1JVCBST0xMQkFDSyIKYnV0 IHRoZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBtb3JlIGlsbHVzdHJhdGl2ZSBhbmQgbGVzcyBjb25m dXNpbmcgdGhlbiAiQ09NTUlUIFJPTExCQUNLIi4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbCAgICAgICAgIHwgMTMgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYyAgICAgICB8IDUxICsrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8IDE4ICsrKysrKysKIHNyYy9iaW4vcHNx bC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAxICsKIC4uLi9pc29sYXRpb24vZXhw ZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstCiAuLi4vaXNvbGF0aW9uL3NwZWNz L3Nlc3Npb24tdmFyaWFibGUuc3BlYyAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMzQgKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMjAgKysrKysrKysKIDEzIGZpbGVz IGNoYW5nZWQsIDE1OCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK aW5kZXggNjdhNTRhYTNlNjQuLjMwZGZlODc3NTcyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTgzOCw3 ICs5ODM4LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAg IDxwYXJhPgogICAgICAgIEFjdGlvbiBwZXJmb3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgot ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRl cmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLAorICAg ICAgIDxsaXRlcmFsPnI8L2xpdGVyYWw+ID0gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCA2NDIzNDYxODZmMC4uZTFjMjk0MGQ0Y2Eg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjcsNyArMjcsNyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBD UkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBd IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQotICAgIFsgT04gQ09NTUlUIERST1AgXQorICAgIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC0xMTcsNiArMTE3LDE3IEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tdHJhbnNhY3Rpb24tZW5kLXJlc2V0 Ij4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+ T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIHRoZSBzZXNz aW9uCisgICAgICB2YXJpYWJsZSB0byBiZSByZXNldCB0byBpdHMgZGVmYXVsdCB2YWx1ZSB3aGVu IHRoZSB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQKKyAgICAgIG9yIHJvbGxlZCBiYWNrLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwvdmFy aWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCBkYjU1Y2E0YjFjMy4uNDNiMWViNTAwMzQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTgzLDYgKzgzLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg U1ZhcmlhYmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5z YWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7 CisKIAkvKgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0 cmFuc2FjdGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUgaWYgYW55LiAgV2UgbmVl ZCB0aGlzIGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgpAQCAtMTEwLDYg KzExMiwxMiBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0g TlVMTDsKIC8qIHRydWUgYWZ0ZXIgYWNjZXB0ZWQgc2ludmFsIG1lc3NhZ2UgKi8KIHN0YXRpYyBi b29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUsIHdoZW4gc29tZSB1 c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBvciBPTiBUUkFOU0FD VElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNfc2Vzc2lvbl92YXJp YWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250ZW50IG9m IHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CiAg KiBpcyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVu IHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQsCkBAIC0zODksNiArMzk3LDMyIEBAIHJlbW92ZV9pbnZh bGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wgYXRFT1gpCiAJfQogfQogCisvKgorICogcmVtb3Zl IGVudHJpZXMgbWFya2VkIGFzICJyZXNldF9hdF9lb3giCisgKi8KK3N0YXRpYyB2b2lkCityZW1v dmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJaWYgKCFzZXNzaW9udmFycykK KwkJcmV0dXJuOworCisJLyogbGVhdmUgcXVja2x5LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2 YXJpYWJsZXMgKi8KKwlpZiAoIWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2Vv eCkKKwkJcmV0dXJuOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisJ d2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBO VUxMKQorCXsKKwkJaWYgKHN2YXItPnJlc2V0X2F0X2VveCkKKwkJCWhhc2hfc2VhcmNoKHNlc3Np b252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwl9CisKKwloYXNfc2Vz c2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKK30KKwogLyoKICAgKiBQ ZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZvciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAg ICogYW5kIHJlbW92ZSBhbGwgZHJvcHBlZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC0zOTYs NiArNDMwLDggQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkK IHZvaWQKIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKIHsKKwly ZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3goKTsKKwogCWlmIChpc0Nv bW1pdCkKIAl7CiAJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCkBAIC01MDcsNiArNTQzLDIxIEBAIHNl dHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5k b21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlk ID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorCS8qCisJICogV2UgZG9uJ3QgbmVlZCB0 byBleHBsaWNpdGx5IHJlc2V0IHZhcmlhYmxlcyBtYXJrZWQgT04gQ09NTUlUIERST1AuIEl0CisJ ICogY2FuIGJlIGRvbmUgYnkgc2ludmFsIG1lc3NhZ2UgcHJvY2Vzc2luZy4gQnV0IHRoaXMgcHJv Y2Vzc2luZyBjYW4gYmUKKwkgKiBwb3N0cG9uZWQgZHVlIGFib3J0ZWQgdHJhbnNhY3Rpb24uIE9u IHNlY29uZCBoYW5kIHRoZXJlIGlzIG5vdCBhCisJICogcmVhc29uLCB3aHkgZG9uJ3QgZG8gaXQg YXQgdHJhbnNhY3Rpb24gZW5kIGltbWVkaWF0ZWx5LgorCSAqLworCWlmICh2YXJmb3JtLT52YXJ4 YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfUkVTRVQgfHwKKwkJdmFyZm9ybS0+dmFy eGFjdGVuZGFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5EX0RST1ApCisJeworCQlzdmFyLT5yZXNl dF9hdF9lb3ggPSB0cnVlOworCQloYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9l b3ggPSB0cnVlOworCX0KKwllbHNlCisJCXN2YXItPnJlc2V0X2F0X2VveCA9IGZhbHNlOworCiAJ c3Zhci0+ZHJvcF9seGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKIAlzdmFyLT5pc251bGwg PSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggOWY3NTYyYmMzMTEuLjI1N2Q2N2FmNjc1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTUyNTEsNiArNTI1MSw3IEBAIENyZWF0ZVNlc3Npb25WYXJTdG10OgogICogdHJh bnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgogICovCiBYYWN0RW5kQWN0aW9uT3B0aW9uOiAgT04g Q09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJfCBPTiBU UkFOU0FDVElPTiBFTkRfUCBSRVNFVAkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX1JFU0VUOyB9 CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfTk9PUDsgfQog CQk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCmluZGV4IDA5OTEzNzcxMWY2Li5kYTliYzIzYWUwOSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCkBAIC01MzcwLDYgKzUzNzAsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlp bnQJCQlpX3Zhcm5hbWVzcGFjZTsKIAlpbnQJCQlpX3ZhcnR5cGU7CiAJaW50CQkJaV92YXJ0eXBu YW1lOworCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zhcm93bmVyOwogCWlu dAkJCWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlfdmFyYWNsOwpAQCAtNTM4Nyw2ICs1Mzg4LDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJLyogR2V0IHRoZSB2YXJpYWJsZXMgaW4g Y3VycmVudCBkYXRhYmFzZS4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKIAkJCQkJICAi U0VMRUNUIHYudGFibGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4iCisJCQkJCSAgIiAgICAgICB2 LnZhcnhhY3RlbmRhY3Rpb24sXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm5hbWVzcGFjZSwgdi52 YXJ0eXBlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5 cGUsIHYudmFydHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgogCQkJCQkgICIgICAgICAgQ0FTRSBX SEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uICIKQEAgLTU0MDksNiArNTQxMSw3 IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFybmFtZXNwYWNlID0gUFFmbnVt YmVyKHJlcywgInZhcm5hbWVzcGFjZSIpOwogCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2 YXJ0eXBlIik7CiAJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsK KwlpX3ZhcnhhY3RlbmRhY3Rpb24gPSBQUWZudW1iZXIocmVzLCAidmFyeGFjdGVuZGFjdGlvbiIp OwogCWlfdmFyY29sbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOwogCiAJ aV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOwpAQCAtNTQzMiw2ICs1NDM1 LDkgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAKIAkJdmFyaW5mb1tpXS52YXJ0eXBl ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cGUpKTsKIAkJdmFyaW5mb1tpXS52 YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cG5hbWUpKTsK KwkJdmFyaW5mb1tpXS52YXJ4YWN0ZW5kYWN0aW9uID0KKwkJCXBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV92YXJ4YWN0ZW5kYWN0aW9uKSk7CisKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRp b24gPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CiAKIAkJdmFy aW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wp KTsKQEAgLTU0NzIsNiArNTQ3OCw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25z dCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAq cXVhbHZhcm5hbWU7CiAJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwljb25zdCBjaGFyICp2YXJ4 YWN0ZW5kYWN0aW9uOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKIAogCS8qIFNraXAgaWYgbm90IHRv IGJlIGR1bXBlZCAqLwpAQCAtNTQ4Myw2ICs1NDkwLDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAogCXF1YWx2YXJuYW1lID0gcGdf c3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKIAl2YXJ0eXBuYW1lID0gdmFy aW5mby0+dmFydHlwbmFtZTsKKwl2YXJ4YWN0ZW5kYWN0aW9uID0gdmFyaW5mby0+dmFyeGFjdGVu ZGFjdGlvbjsKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAKIAlhcHBl bmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCkBAIC01NTAxLDYgKzU1 MDksOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2 YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAorCWlm IChzdHJjbXAodmFyeGFjdGVuZGFjdGlvbiwgInIiKSA9PSAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZl cihxdWVyeSwgIiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQiKTsKKwogCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiO1xuIik7CiAKIAlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01Q T05FTlRfREVGSU5JVElPTikKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDM2YTY5YTA4MzI0Li4wOTEwNTA3ZDlh YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oCkBAIC03MDIsNiArNzAyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1Zhcmlh YmxlSW5mbwogCUR1bXBhYmxlQWNsIGRhY2w7CiAJT2lkCQkJdmFydHlwZTsKIAljaGFyCSAgICp2 YXJ0eXBuYW1lOworCWNoYXIJICAgKnZhcnhhY3RlbmRhY3Rpb247CiAJY2hhcgkgICAqdmFyYWNs OwogCWNoYXIJICAgKnJ2YXJhY2w7CiAJY2hhcgkgICAqaW5pdHZhcmFjbDsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKaW5kZXggMGQzNzY1ZWVkNGYuLjA4ZWE3OTE0MjBhIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8w MDJfcGdfZHVtcC5wbApAQCAtMzk0MSw2ICszOTQxLDI0IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwK IAl9LAogCisJJ0NSRUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlIE9OIFRSQU5TQUNUSU9OIEVO RCBSRVNFVCcgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdD UkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUyIEFTIGludGVnZXIgT04g VFJBTlNBQ1RJT04gRU5EIFJFU0VUOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBW QVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUyIEFTIGludGVnZXIgT04gVFJBTlNBQ1RJT04gRU5E IFJFU0VUO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0 X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2Ug PT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVh c3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3Rfdmlldycg PT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVX IGR1bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j IGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggZjZhYThiYzVmNmMuLjUwYmFlNTM5MTEz IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwpAQCAtNTE4Miw2ICs1MTgyLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFy ICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNl cmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0 ZW5kYWN0aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdc biIKKwkJCQkJICAiICAgIFdIRU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCdc biIKIAkJCQkJICAiICBFTkQgYXMgXCIlc1wiXG4iLAogCQkJCQkgIGdldHRleHRfbm9vcCgiU2No ZW1hIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zhcmlh YmxlLmgKaW5kZXggMWU2ZGQ5OGQ0MTUuLjYwMjkxZWY3YWMyIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oCkBAIC03NCw2ICs3NCw3IEBAIHR5cGVkZWYgZW51bSBWYXJpYWJsZVhhY3RFbmRB Y3Rpb24KIHsKIAlWQVJJQUJMRV9YQUNURU5EX05PT1AgPSAnbicsCS8qIE5PT1AgKi8KIAlWQVJJ QUJMRV9YQUNURU5EX0RST1AgPSAnZCcsCS8qIE9OIENPTU1JVCBEUk9QICovCisJVkFSSUFCTEVf WEFDVEVORF9SRVNFVCA9ICdyJywJLyogT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUICovCiB9CQkJ VmFyaWFibGVYYWN0RW5kQWN0aW9uOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMv dGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKaW5kZXggOWZiYmY5 MDU3YTYuLjE5YTJlNWE4ZjY0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0 ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVk L3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC04NSwxMSArODUsMTIgQEAgbXl2YXIKIAogc3RlcCBz cjE6IFJPTExCQUNLOwogCi1zdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9f Y19kIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2Qgb19lb3hfciBjcmVhdGU0 IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIGNsZWFuIHN0YXRlCiBzdGVwIGNy ZWF0ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4dDsKIHN0ZXAgbGV0MzogTEVUIG15 dmFyMyA9ICd0ZXN0JzsKIHN0ZXAgczM6IEJFR0lOOwogc3RlcCBvX2NfZDogQ1JFQVRFIFRFTVAg VkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsKK3N0ZXAgb19lb3hf cjogQ1JFQVRFIFZBUklBQkxFIG15dmFyX29fZW94X3IgQVMgdGV4dCBPTiBUUkFOU0FDVElPTiBF TkQgUkVTRVQ7IExFVCBteXZhcl9vX2VveF9yID0gJ3Rlc3QnOwogc3RlcCBjcmVhdGU0OiBDUkVB VEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7CiBzdGVwIGxldDQ6IExFVCBteXZhcjQgPSAndGVz dCc7CiBzdGVwIGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsKQEAgLTEwMiw2ICsxMDMsNyBA QCB0CiAKIHN0ZXAgZGlzY2FyZDogRElTQ0FSRCBWQVJJQUJMRVM7CiBzdGVwIHNjMzogQ09NTUlU Oworc3RlcCBjbGVhbjogRFJPUCBWQVJJQUJMRSBteXZhcl9vX2VveF9yOwogc3RlcCBzdGF0ZTog U0VMRUNUIHZhcm5hbWUgRlJPTSBwZ192YXJpYWJsZTsKIHZhcm5hbWUKIC0tLS0tLS0KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9z cmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCmluZGV4IDQ1ZTY1 ZDQwODVkLi41ZDA4OWM4YTRlZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNz L3Nlc3Npb24tdmFyaWFibGUuc3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vz c2lvbi12YXJpYWJsZS5zcGVjCkBAIC0yNSwxMiArMjUsMTQgQEAgc2Vzc2lvbiBzMwogc3RlcCBz MwkJCXsgQkVHSU47IH0KIHN0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CiBzdGVw IG9fY19kCQl7IENSRUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09N TUlUIERST1A7IH0KK3N0ZXAgb19lb3hfcgl7IENSRUFURSBWQVJJQUJMRSBteXZhcl9vX2VveF9y IEFTIHRleHQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOyBMRVQgbXl2YXJfb19lb3hfciA9ICd0 ZXN0JzsgfQogc3RlcCBjcmVhdGU0CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9 CiBzdGVwIGxldDQJCXsgTEVUIG15dmFyNCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9Q IFZBUklBQkxFIG15dmFyNDsgfQogc3RlcCBpbnZhbDMJCXsgU0VMRUNUIENPVU5UKCopID49IDAg RlJPTSBwZ19mb3JlaWduX3RhYmxlOyB9CiBzdGVwIGRpc2NhcmQJeyBESVNDQVJEIFZBUklBQkxF UzsgfQogc3RlcCBzYzMJCXsgQ09NTUlUOyB9CitzdGVwIGNsZWFuCQl7IERST1AgVkFSSUFCTEUg bXl2YXJfb19lb3hfcjsgfQogc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3Zh cmlhYmxlOyB9CiAKIHNlc3Npb24gczQKQEAgLTQ4LDQgKzUwLDQgQEAgcGVybXV0YXRpb24gbGV0 IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRl ciB0aGUgY29uY3VycmVudCBkcm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNy ZWF0ZSBkYmcgdmFsIHNyMQogIyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5h bCBxdWV1ZXMgaGF2ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0 MyBzMyBvX2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0 YXRlCitwZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgb19jX2Qgb19lb3hfciBjcmVhdGU0IGxl dDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIGNsZWFuIHN0YXRlCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGE4OTMyZmYz NjMyLi4yODBiMjdlNzA1NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTE1MTcsMyArMTUxNywzNyBAQCBTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwogICAgICAwCiAoMSByb3cpCiAKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7CitCRUdJTjsKKyAg TEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCiso MSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBOVUxMOworU0VMRUNUIHZhcjEgSVMgTlVM TDsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0JFR0lOOworICBMRVQg dmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJv dykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgTlVMTAorU0VMRUNUIHZhcjEgSVMgTlVMTDsK KyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA2M2I1 MWY5YTM0YS4uODI5MjkzZGRjYzQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKQEAgLTEwMTcsMyArMTAxNywyMyBAQCBDT01NSVQ7CiBTRUxFQ1QgY291bnQo KikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOwogLS0gc2hvdWxkIGJl IHplcm8KIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7CisKK0JF R0lOOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitDT01NSVQ7CisKKy0tIHNo b3VsZCBiZSBOVUxMOworU0VMRUNUIHZhcjEgSVMgTlVMTDsKKworQkVHSU47CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK1JPTExCQUNLOworCistLSBzaG91bGQgYmUgTlVMTAor U0VMRUNUIHZhcjEgSVMgTlVMTDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOwotLSAKMi40NS4yCgo= --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0010-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20240801-0010-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf4n11 RnJvbSBhOTNiZDNkMDFjYzVmMDA0NDRjYzEwNDZmZWYxZTA0YjQwMThjY2FlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDEw LzIxXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjExLi40NWQ3MmIxZDUyYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9wcmVwYXJlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wcmVwYXJlLnNnbWwK QEAgLTExNiw4ICsxMTYsOCBAQCBQUkVQQVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcwogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+CiAgICAgICBBbnkgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiwgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKLSAgICAg IDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgb3Ig PGNvbW1hbmQ+VkFMVUVTPC9jb21tYW5kPgotICAgICAgc3RhdGVtZW50LgorICAgICAgPGNvbW1h bmQ+REVMRVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+TUVSR0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5W QUxVRVM8L2NvbW1hbmQ+LAorICAgICAgb3IgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBzdGF0ZW1l bnQuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCAzYmMzOTFlZmYxMC4uZWE1YTY1YjNmZjcgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt MTIxNjMsNyArMTIxNjMsOCBAQCBQcmVwYXJhYmxlU3RtdDoKIAkJCXwgSW5zZXJ0U3RtdAogCQkJ fCBVcGRhdGVTdG10CiAJCQl8IERlbGV0ZVN0bXQKLQkJCXwgTWVyZ2VTdG10CQkJCQkJLyogYnkg ZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCisJCQl8IE1lcmdlU3RtdAorCQkJfCBMZXRTdG10CQkJ CQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCiAJCTsKIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKaW5kZXggZGU5YWU5YjQ4MzQuLmI0YjliNWI2MWM4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdp dGhDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlD b21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJ TGlzdENlbGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBu b3Qgc3VwcG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnks IExldFN0bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lU SCBxdWVyeSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9u KSk7CisKIAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRo Q2xhdXNlLT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21t b25UYWJsZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IDBmMmZmYWQz MDQ5Li5kYTc2NDAzM2RiYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtNDI4Miw5ICs0MjgyLDkgQEAg cHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAll bHNlIGlmIChUYWlsTWF0Y2hlcygiVkFMVUVTIikgJiYgIVRhaWxNYXRjaGVzKCJERUZBVUxUIiwg IlZBTFVFUyIpKQogCQlDT01QTEVURV9XSVRIKCIoIik7CiAKLS8qIExFVCAqLworLyogTEVULCBF WFBMQUlOIExFVCwgUFJFUEFSRSBMRVQgKi8KIAkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdn ZXN0IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8KLQllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwll bHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJLyogQ29tcGxldGUgTEVUIDx2YXJpYWJs ZT4gd2l0aCAiPSIgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCA4YzVkOGE1ZWIyOS4uMGNjOTJjMjJlMTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00MzgsOSArNDM4LDkgQEAgRFJPUCBWQVJJ QUJMRSB2YXIxLCB2YXIyOwogLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93 ZWQgaW4gQ1RFCiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CiBXSVRIIHggQVMgKExFVCB2 YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7Ci1FUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBu ZWFyICJMRVQiCitFUlJPUjogIExFVCBub3Qgc3VwcG9ydGVkIGluIFdJVEggcXVlcnkKIExJTkUg MTogV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OwotICAgICAgICAg ICAgICAgICAgIF4KKyAgICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sKIExFVCB2YXIxID0g Z2VuZXJhdGVfc2VyaWVzKDEsIDEpOwogLS0gc2hvdWxkIGZhaWwKQEAgLTEzMTgsNSArMTMxOCw4 MiBAQCBTRUxFQ1QgdmFyMTsKICAgIDEwCiAoMSByb3cpCiAKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworUFJFUEFSRSBwMSBBUyBMRVQgdmFyMSA9IChTRUxFQ1Qg Y291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFibGUpOworTEVUIHZhcjEgPSBOVUxMOworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAx CisgICAgIC0+ICBBZ2dyZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJf dGVzdF90YWJsZQorKDUgcm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElN SU5HIE9GRiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYpIEVYRUNVVEUgcDE7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdCAoYWN0dWFs IHJvd3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlIChhY3R1 YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rl c3RfdGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCisoNSByb3dzKQorCistLSBzaG91bGQg YmUgMTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NF VCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKK0RFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklB QkxFIHZhcjE7CiBEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIG51bWVyaWM7CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxh bjsKK1BSRVBBUkUgcDEobnVtZXJpYykgQVMgTEVUIHZhcjEgPSAkMTsKK1BSRVBBUkUgcDIgQVMg U0VMRUNUIHZhcjE7CitFWEVDVVRFIHAxKHBpKCkgKyAxMDApOworRVhFQ1VURSBwMjsKKyAgICAg IHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLQorIDEwMy4xNDE1OTI2NTM1OQorKDEgcm93 KQorCistLSBwcmVwYXJlZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0CitEUk9QIFZBUklB QkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworLS0gc2hvdWxkIGJlIE5V TEwKK0VYRUNVVEUgcDI7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworREVBTExP Q0FURSBwMTsKK0RFQUxMT0NBVEUgcDI7CitEUk9QIFZBUklBQkxFIHZhcjE7CitTRVQgcGxhbl9j YWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51 bWVyaWNbXTsKK1BSRVBBUkUgcDEoaW50LCBudW1lcmljKSBBUyBMRVQgdmFyMVskMV0gPSAkMjsK K0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VYRUNV VEUgcDEoMiwgMTAuMyk7CitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgICAKKy0tLS0tLS0tLS0t LS0KKyB7MTAuMiwxMC4zfQorKDEgcm93KQorCitERUFMTE9DQVRFIHAxOworRFJPUCBWQVJJQUJM RSB2YXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4 IDM2NDlmYzEzMTZiLi4wYjRhNTNjZTEwNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbApAQCAtODkyLDUgKzg5Miw2MiBAQCBFWFBMQUlOIChDT1NUUyBPRkYs IFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291 bnQoKgogLS0gc2hvdWxkIGJlIDEwCiBTRUxFQ1QgdmFyMTsKIAorU0VUIHBsYW5fY2FjaGVfbW9k ZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CisKK1BSRVBBUkUgcDEgQVMgTEVUIHZhcjEgPSAoU0VM RUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworTEVUIHZhcjEgPSBOVUxM OworCitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDE7CisKKy0tIHNob3VsZCBiZSBOVUxM CitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpF LCBTVU1NQVJZIE9GRikgRVhFQ1VURSBwMTsKKworLS0gc2hvdWxkIGJlIDEwCitTRUxFQ1QgdmFy MTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworCitERUFMTE9DQVRFIHAxOwor CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKKwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CisKK1BSRVBBUkUgcDEobnVtZXJpYykgQVMgTEVUIHZhcjEgPSAk MTsKK1BSRVBBUkUgcDIgQVMgU0VMRUNUIHZhcjE7CisKK0VYRUNVVEUgcDEocGkoKSArIDEwMCk7 CitFWEVDVVRFIHAyOworCistLSBwcmVwYXJlZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0 CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCist LSBzaG91bGQgYmUgTlVMTAorRVhFQ1VURSBwMjsKKworREVBTExPQ0FURSBwMTsKK0RFQUxMT0NB VEUgcDI7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWNbXTsKKwor UFJFUEFSRSBwMShpbnQsIG51bWVyaWMpIEFTIExFVCB2YXIxWyQxXSA9ICQyOworCitMRVQgdmFy MSA9ICd7fSc6Om51bWVyaWNbXTsKK0VYRUNVVEUgcDEoMSwgMTAuMik7CitFWEVDVVRFIHAxKDIs IDEwLjMpOworCitTRUxFQ1QgdmFyMTsKKworREVBTExPQ0FURSBwMTsKK0RST1AgVkFSSUFCTEUg dmFyMTsKLS0gCjIuNDUuMgoK --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0009-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20240801-0009-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf4r12 RnJvbSAyMzFlMDllNTYwNWQzZDc1ZTdjOGJhM2YwYjM0YzVjMzhlN2QzMGUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE4OjI4OjA3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwOS8yMV0gRVhQTEFJTiBMRVQgc3VwcG9ydAoKRW5oYW5jaW5nIEV4cGxhaW5PbmVQbGFu IGlzIG5lY2Vzc2FyeSB0byBiZSBFWFBMQUlOIEFOQUxZWkUgTEVUIGZ1bGx5IHdvcmthYmxlLgpJ biB0aGlzIGNhc2Ugd2Ugd2FudCB0byBiZSByZXN1bHQgb2YgcXVlcnkgb3IgZXhwcmVzc2lvbiB3 cml0dGVuIHRvIHRhcmdldCB2YXJpYWJsZS4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4u c2dtbCAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICA1ICsrLQogc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRz L2V4cGxhaW4uaCAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA0MCArKysrKysrKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMSArKysrKysrKysrCiA3 IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2V4 cGxhaW4uc2dtbAppbmRleCBkYjlkM2E4NTQ5YS4uY2FjY2M3MDY1OGMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFp bi5zZ21sCkBAIC05OCw3ICs5OCw4IEBAIEVYUExBSU4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSA8cmVwCiAgICAgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKICAgICA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sCiAgICAg PGNvbW1hbmQ+Q1JFQVRFIFRBQkxFIEFTPC9jb21tYW5kPiwKLSAgICBvciA8Y29tbWFuZD5FWEVD VVRFPC9jb21tYW5kPiBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiwK KyAgICBvciA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IHN0YXRlbWVudAogICAgIHdpdGhvdXQgbGV0 dGluZyB0aGUgY29tbWFuZCBhZmZlY3QgeW91ciBkYXRhLCB1c2UgdGhpcyBhcHByb2FjaDoKIDxw cm9ncmFtbGlzdGluZz4KIEJFR0lOOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDU3NzFhYWJm NDBhLi44ZWQyODcxNWYzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMTgsNiArMTgsNyBA QAogI2luY2x1ZGUgImNvbW1hbmRzL2NyZWF0ZWFzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVm cmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdhcGkuaCIKICNpbmNs dWRlICJqaXQvaml0LmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKQEAgLTUwNyw4ICs1 MDgsOSBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vyc29y T3B0aW9ucywKIAl9CiAKIAkvKiBydW4gaXQgKGlmIG5lZWRlZCkgYW5kIHByb2R1Y2Ugb3V0cHV0 ICovCi0JRXhwbGFpbk9uZVBsYW4ocGxhbiwgaW50bywgZXMsIHF1ZXJ5U3RyaW5nLCBwYXJhbXMs IHF1ZXJ5RW52LAotCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2Fn ZSA6IE5VTEwpLAorCUV4cGxhaW5PbmVQbGFuKHBsYW4sIGludG8sIHF1ZXJ5LT5yZXN1bHRWYXJp YWJsZSwgZXMsIHF1ZXJ5U3RyaW5nLAorCQkJCSAgIHBhcmFtcywgcXVlcnlFbnYsICZwbGFuZHVy YXRpb24sCisJCQkJICAgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCiAJCQkJICAg ZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIH0KIApAQCAtNTkyLDYgKzU5NCwy NSBAQCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50 bywgRXhwbGFpblN0YXRlICplcywKIAkJZWxzZQogCQkJRXhwbGFpbkR1bW15R3JvdXAoIk5vdGlm eSIsIE5VTEwsIGVzKTsKIAl9CisJZWxzZSBpZiAoSXNBKHV0aWxpdHlTdG10LCBMZXRTdG10KSkK Kwl7CisJCUxldFN0bXQgICAgKmxldHN0bXQgPSAoTGV0U3RtdCAqKSB1dGlsaXR5U3RtdDsKKwkJ TGlzdAkgICAqcmV3cml0dGVuOworCQlRdWVyeQkgICAqcXVlcnk7CisKKwkJaWYgKGVzLT5mb3Jt YXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoZXMt PnN0ciwgIlNFVCBTRVNTSU9OIFZBUklBQkxFXG4iKTsKKwkJZWxzZQorCQkJRXhwbGFpbkR1bW15 R3JvdXAoIlNldCBTZXNzaW9uIFZhcmlhYmxlIiwgTlVMTCwgZXMpOworCisJCXJld3JpdHRlbiA9 IFF1ZXJ5UmV3cml0ZShjYXN0Tm9kZShRdWVyeSwgY29weU9iamVjdChsZXRzdG10LT5xdWVyeSkp KTsKKworCQlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKwkJcXVlcnkgPSBs aW5pdGlhbF9ub2RlKFF1ZXJ5LCByZXdyaXR0ZW4pOworCQlFeHBsYWluT25lUXVlcnkocXVlcnks CisJCQkJCQlDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBOVUxMLCBlcywKKwkJCQkJCXF1ZXJ5U3Ry aW5nLCBwYXJhbXMsIHF1ZXJ5RW52KTsKKwl9CiAJZWxzZQogCXsKIAkJaWYgKGVzLT5mb3JtYXQg PT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKQEAgLTYxNSw4ICs2MzYsOCBAQCBFeHBsYWluT25lVXRp bGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICpl cywKICAqIHRvIGNhbGwgaXQuCiAgKi8KIHZvaWQKLUV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10 ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKLQkJCSAg IGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKK0V4cGxhaW5P bmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgT2lkIHRh cmdldHZhciwKKwkJCSAgIEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5n LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52 LCBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRpb24sCiAJCQkgICBjb25zdCBCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2UsCiAJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3Vu dGVycykKQEAgLTY2NSw2ICs2ODYsOCBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxh bm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJICovCiAJaWYg KGludG8pCiAJCWRlc3QgPSBDcmVhdGVJbnRvUmVsRGVzdFJlY2VpdmVyKGludG8pOworCWVsc2Ug aWYgKE9pZElzVmFsaWQodGFyZ2V0dmFyKSkKKwkJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJl Y2VpdmVyKHRhcmdldHZhcik7CiAJZWxzZSBpZiAoZXMtPnNlcmlhbGl6ZSAhPSBFWFBMQUlOX1NF UklBTElaRV9OT05FKQogCQlkZXN0ID0gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZl cihlcyk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDcxOWU2M2ZlODIzLi4yMDQ2 ZmE4YTU0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtNjYzLDggKzY2Myw5IEBAIEV4cGxh aW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBF eHBsYWluU3RhdGUgKmVzLAogCQlQbGFubmVkU3RtdCAqcHN0bXQgPSBsZmlyc3Rfbm9kZShQbGFu bmVkU3RtdCwgcCk7CiAKIAkJaWYgKHBzdG10LT5jb21tYW5kVHlwZSAhPSBDTURfVVRJTElUWSkK LQkJCUV4cGxhaW5PbmVQbGFuKHBzdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLCBwYXJhbUxJ LCBxdWVyeUVudiwKLQkJCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1 c2FnZSA6IE5VTEwpLAorCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQs IGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksCisJCQkJCQkgICBxdWVyeUVudiwgJnBsYW5kdXJh dGlvbiwKKwkJCQkJCSAgIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAogCQkJCQkJ ICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIAkJZWxzZQogCQkJRXhwbGFp bk9uZVV0aWxpdHkocHN0bXQtPnV0aWxpdHlTdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggOTQ5MmVjN2E2YjAuLjNiYzM5MWVmZjEwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTEyMTMyLDcgKzEyMTMyLDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBDcmVhdGVBc1N0bXQK IAkJCXwgQ3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10Ci0JCQl8IEV4 ZWN1dGVTdG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgRXhlY3V0 ZVN0bXQKKwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLwog CQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCmluZGV4IDli OGIzNTFkOWEyLi44OTY1NjYyNTA2NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZXhwbGFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaApAQCAtMTAxLDcg KzEwMSw4IEBAIGV4dGVybiB2b2lkIEV4cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0aWxpdHlTdG10 LCBJbnRvQ2xhdXNlICppbnRvLAogCQkJCQkJCSAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hh ciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkJICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYpOwogCi1leHRlcm4gdm9pZCBFeHBsYWluT25lUGxhbihQbGFubmVk U3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sCitleHRlcm4gdm9pZCBFeHBsYWlu T25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsCisJCQkJCQkgICBJbnRvQ2xhdXNlICpp bnRvLCBPaWQgdGFyZ2V0dmFyLAogCQkJCQkJICAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hh ciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkgICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYsCiAJCQkJCQkgICBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRp b24sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CmluZGV4IDY2MDQyM2Q1ZGU4Li44YzVkOGE1ZWIyOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEyODAsMyArMTI4MCw0MyBAQCBT RVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBUQUJM RSBwdWJsaWMueHh0YWI7CiBEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwogTk9USUNFOiAgZHJv cCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFiLmF2YXIKK0NSRUFURSBWQVJJQUJM RSB2YXIxIGJpZ2ludDsKK0NSRUFURSBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGUoYSBpbnQpOwor SU5TRVJUIElOVE8gdmFyX3RhYl90ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsMTApOworVkFDVVVNIEFOQUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3Rf dGFibGUpOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNT SU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdhdGUK KyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUgcm93cykK KworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAg CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VN TUFSWSBPRkYpIExFVCB2YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90 YWJsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJ QUJMRQorIFJlc3VsdCAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAg ICAtPiAgQWdncmVnYXRlIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3RfdGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCiso NSByb3dzKQorCistLSBzaG91bGQgYmUgMTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdmFyX3Rh Yl90ZXN0X3RhYmxlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CmluZGV4IDM5MWMxMzQ5ZmZhLi4zNjQ5ZmMxMzE2YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtODczLDMgKzg3MywyNCBAQCBTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogCiBEUk9QIFRBQkxFIHB1YmxpYy54 eHRhYjsKIERST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IGJpZ2ludDsKKworQ1JFQVRFIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZShhIGludCk7CisKK0lO U0VSVCBJTlRPIHZhcl90YWJfdGVzdF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLDEwKTsKKworVkFDVVVNIEFOQUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworCitFWFBMQUlO IChDT1NUUyBPRkYpIExFVCB2YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVz dF90YWJsZSk7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAo Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRikgTEVUIHZhcjEgPSAo U0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hvdWxkIGJl IDEwCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJf dGFiX3Rlc3RfdGFibGU7Ci0tIAoyLjQ1LjIKCg== --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0011-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20240801-0011-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf4f10 RnJvbSBmNDQ5ZmE2NDhmMGQwZjRmZjFlOTYyODlhMDdkZTRmY2NmNGY0ZTIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjE6MzY6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzIxXSBpbXBsZW1lbnRhdGlvbiBvZiB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMKClRoZSB0 ZW1wb3JhcnkgdmFyaWFibGVzIGFyZSBjcmVhdGVkIGluc2lkZSB0ZW1wIHNjaGVtYSBhbmQgdGhl eSBhcmUgZHJvcHBlZCBieSBkcm9wcGluZwp0aGlzIHNjaGVtYS4gRm9yIGNvbnNpc3RlbmN5IHdp dGggdGVtcCB0YWJsZXMsIHRoZSBDUkVBVEUgVEVNUCBWQVJJQUJMRSBjb21tYW5kIHN1cHBvcnRz Ck9OIENPTU1JVCBEUk9QIGNsYXVzZS4gVGhlIHRlbXBvcmFyeSB2YXJpYWJsZXMgd2l0aCB0aGlz IGNsYXVzZSBhcmUgY29sbGVjdGVkIGluIHhhY3RfZHJvcF9pdGVtcwpsaXN0LiBUaGlzIGxpc3Qg c2hvdWxkIGJlIGNhcmVmdWxseSBtYWludGFpbmVkIGFuZCBjYW4gY29udGFpbiBvbmx5IHZhbGlk IGVudHJpZXMgKG5vdAp5ZXQgZHJvcHBlZCkuIEZyb20gdGhpcyByZWFzb25zIG5vdyB0aGUgc3Vi Y29tbWl0IGFuZCBzdWJhYm9ydGluZyBoYXZlIHRvIGJlIGhhbmRsZWQuCi0tLQogZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIGRvYy9zcmMvc2dt bC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDE1ICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94YWN0LmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAyNCArKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE5MCArKysrKysrKysrKysrKysrKy0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMzAgKystCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAgMjIgKy0KIHNy Yy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgIDkgKwogc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICA3ICstCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaCAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9pc29sYXRp b24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICAgMyArLQogLi4uL2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgICAzICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTMwICsrKysrKysrKysrLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgIDY2ICsrKysrKwog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAxICsKIDIz IGZpbGVzIGNoYW5nZWQsIDUyMSBpbnNlcnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCmluZGV4IGFjM2IwNGZmOTEyLi42N2E1NGFhM2U2NCAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAg LTk4MzIsNiArOTgzMiwxNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0 aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJh PjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJ4YWN0ZW5kYWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hh cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFjdGlvbiBwZXJm b3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjb2xsYXRpb248L3N0cnVjdGZpZWxkPiA8 dHlwZT5vaWQ8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggNjE2NWZhNzQ0NDkuLmJlYzgyMTRlYTA3IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBA IC01MzQ0LDkgKzUzNDQsOSBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lkOwogICAgIDxjb21tYW5k PkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgdHJhbnNh Y3Rpb25hbDoKICAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSB2YWx1ZSBvZiBhIHNlc3Npb24g dmFyaWFibGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAogICAgIGJlIHVuZG9uZSBpZiB0aGUgdHJh bnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2YXJpYWJsZXMgaW4KLSAgICBwcm9j ZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVtc2VsdmVzIGFyZSBwZXJz aXN0ZW50LCBidXQKLSAgICB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Ig c2hhcmVkIChsaWtlIHRoZSBjb250ZW50IG9mCi0gICAgdGVtcG9yYXJ5IHRhYmxlcykuCisgICAg cHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4g YmUgcGVyc2lzdGVudAorICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVp dGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCisgICAgY29udGVudCBvZiB0ZW1w b3JhcnkgdGFibGVzKS4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfdmFyaWFibGUuc2dtbAppbmRleCAwNWJmNjdlMzQxMS4uNjQyMzQ2MTg2ZjAgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjYsNyArMjYsOCBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KLUNSRUFURSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVNUE9SQVJZ IHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBP TiBDT01NSVQgRFJPUCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNl Y3QxPgpAQCAtMTA0LDYgKzEwNSwxOCBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICAgIDwv bGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3Fs LWNyZWF0ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9wIj4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBD T01NSVQgRFJPUDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSA8bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNp ZmllcyB0aGUgYmVoYXZpb3VyIG9mIGEKKyAgICAgIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxl IGF0IHRyYW5zYWN0aW9uIGNvbW1pdC4gV2l0aCB0aGlzIGNsYXVzZSwgdGhlCisgICAgICBzZXNz aW9uIHZhcmlhYmxlIGlzIGRyb3BwZWQgYXQgY29tbWl0IHRpbWUuIFRoZSBjbGF1c2UgaXMgb25s eSBhbGxvd2VkCisgICAgICBmb3IgdGVtcG9yYXJ5IHZhcmlhYmxlcy4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8L3ZhcmlhYmxlbGlzdD4K ICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 YWN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggMmQzZWQ4NjA3 YWIuLmQ4NzdlMThmOTZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0yMzA3LDcg KzIzMDcsNyBAQCBDb21taXRUcmFuc2FjdGlvbih2b2lkKQogCXNtZ3JEb1BlbmRpbmdTeW5jcyh0 cnVlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCiAJLyogUmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVk IHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5ICovCi0JQXRQcmVFT1hhY3RfU2Vzc2lvblZh cmlhYmxlcygpOworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXModHJ1ZSk7CiAKIAkvKiBj bG9zZSBsYXJnZSBvYmplY3RzIGJlZm9yZSBsb3dlci1sZXZlbCBjbGVhbnVwICovCiAJQXRFT1hh Y3RfTGFyZ2VPYmplY3QodHJ1ZSk7CkBAIC0yODk5LDYgKzI4OTksNyBAQCBBYm9ydFRyYW5zYWN0 aW9uKHZvaWQpCiAJQXRBYm9ydF9Qb3J0YWxzKCk7CiAJc21nckRvUGVuZGluZ1N5bmNzKGZhbHNl LCBpc19wYXJhbGxlbF93b3JrZXIpOwogCUF0RU9YYWN0X0xhcmdlT2JqZWN0KGZhbHNlKTsKKwlB dFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGZhbHNlKTsKIAlBdEFib3J0X05vdGlmeSgpOwog CUF0RU9YYWN0X1JlbGF0aW9uTWFwKGZhbHNlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCUF0QWJv cnRfVHdvcGhhc2UoKTsKQEAgLTUxNzUsNiArNTE3Niw4IEBAIENvbW1pdFN1YlRyYW5zYWN0aW9u KHZvaWQpCiAJQXRFT1N1YlhhY3RfU1BJKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQpOwogCUF0 RU9TdWJYYWN0X29uX2NvbW1pdF9hY3Rpb25zKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJ CQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKKwlBdEVPU3ViWGFjdF9TZXNz aW9uVmFyaWFibGVzKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCisJCQkJCQkJCSBzLT5wYXJl bnQtPnN1YlRyYW5zYWN0aW9uSWQpOwogCUF0RU9TdWJYYWN0X05hbWVzcGFjZSh0cnVlLCBzLT5z dWJUcmFuc2FjdGlvbklkLAogCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOwog CUF0RU9TdWJYYWN0X0ZpbGVzKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCkBAIC01MzM5LDYg KzUzNDIsOCBAQCBBYm9ydFN1YlRyYW5zYWN0aW9uKHZvaWQpCiAJCUF0RU9TdWJYYWN0X1NQSShm YWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJCUF0RU9TdWJYYWN0X29uX2NvbW1pdF9hY3Rp b25zKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCQkJICBzLT5wYXJlbnQtPnN1 YlRyYW5zYWN0aW9uSWQpOworCQlBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGZhbHNlLCBz LT5zdWJUcmFuc2FjdGlvbklkLAorCQkJCQkJCQkJIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25J ZCk7CiAJCUF0RU9TdWJYYWN0X05hbWVzcGFjZShmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwK IAkJCQkJCQkgIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJCUF0RU9TdWJYYWN0X0Zp bGVzKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5j CmluZGV4IDBiMjEyMDRiYzQ3Li43MGI2MjJhYTY3MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYwpAQCAtMzYsNyArMzYsOCBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFi bGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJCSBpbnQzMiB2YXJUeXBtb2QsCiAJCQkJ CQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCi0JCQkJCQkJ CQkgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKwkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMsCisJ CQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24pOwogCiAKIC8q CkBAIC00OSw3ICs1MCw4IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAog CQkJCWludDMyIHZhclR5cG1vZCwKIAkJCQlPaWQgdmFyT3duZXIsCiAJCQkJT2lkIHZhckNvbGxh dGlvbiwKLQkJCQlib29sIGlmX25vdF9leGlzdHMpCisJCQkJYm9vbCBpZl9ub3RfZXhpc3RzLAor CQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKQogewogCUFjbAkJICAg KnZhcmFjbDsKIAlOYW1lRGF0YQl2YXJuYW1lOwpAQCAtMTEwLDYgKzExMiw3IEBAIGNyZWF0ZV92 YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zh cnR5cG1vZCAtIDFdID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOwogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsKIAl2 YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0 dW0odmFyQ29sbGF0aW9uKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0 aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAKIAl2YXJhY2wgPSBn ZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkg IHZhck5hbWVzcGFjZSk7CkBAIC0xODMsNiArMTg2LDEzIEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJT2lkCQkJdHlwY29s bGF0aW9uOwogCU9iamVjdEFkZHJlc3MgdmFyaWFibGU7CiAKKwkvKiBDaGVjayBjb25zaXN0ZW5j eSBvZiBhcmd1bWVudHMgKi8KKwlpZiAoc3RtdC0+WGFjdEVuZEFjdGlvbiA9PSBWQVJJQUJMRV9Y QUNURU5EX0RST1AKKwkJJiYgc3RtdC0+dmFyaWFibGUtPnJlbHBlcnNpc3RlbmNlICE9IFJFTFBF UlNJU1RFTkNFX1RFTVApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJPTiBDT01NSVQgRFJPUCBj YW4gb25seSBiZSB1c2VkIG9uIHRlbXBvcmFyeSB2YXJpYWJsZXMiKSkpOworCiAJbmFtZXNwYWNl aWQgPQogCQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFi bGUsIE5vTG9jaywgTlVMTCk7CiAKQEAgLTIyMiw3ICsyMzIsOCBAQCBDcmVhdGVWYXJpYWJsZShQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAg IHR5cG1vZCwKIAkJCQkJCQkgICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCi0JCQkJ CQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cyk7CisJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0 cywKKwkJCQkJCQkgICBzdG10LT5YYWN0RW5kQWN0aW9uKTsKIAogCWVsb2coREVCVUcxLCAicmVj b3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMgY3JlYXRlZCBpbiBw Z192YXJpYWJsZSIsCiAJCSBzdG10LT52YXJpYWJsZS0+cmVsbmFtZSwgdmFyaWFibGUub2JqZWN0 SWQpOwpAQCAtMjMwLDYgKzI0MSw4IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJLyogV2Ugd2FudCBTZXNzaW9uVmFyaWFi bGVDcmVhdGVQb3N0cHJvY2VzcyB0byBzZWUgdGhlIGNhdGFsb2cgY2hhbmdlcy4gKi8KIAlDb21t YW5kQ291bnRlckluY3JlbWVudCgpOwogCisJU2Vzc2lvblZhcmlhYmxlQ3JlYXRlUG9zdHByb2Nl c3ModmFyaWFibGUub2JqZWN0SWQsIHN0bXQtPlhhY3RFbmRBY3Rpb24pOworCiAJcmV0dXJuIHZh cmlhYmxlOwogfQogCkBAIC0yNDIsNiArMjU1LDcgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFy aWQpCiB7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBsZQl0dXA7CisJY2hhcgkJWGFjdEVuZEFj dGlvbjsKIAogCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNp dmVMb2NrKTsKIApAQCAtMjUwLDYgKzI2NCw4IEBAIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlk KQogCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQogCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CiAKKwlYYWN0RW5kQWN0aW9uID0g KChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKSktPnZhcnhhY3RlbmRhY3Rpb247CisK IAlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOwogCiAJUmVsZWFzZVN5c0Nh Y2hlKHR1cCk7CkBAIC0yNTcsNSArMjczLDUgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQp CiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAogCS8qIERvIHRoZSBuZWNl c3NhcnkgY2xlYW51cCBpZiBuZWVkZWQgaW4gbG9jYWwgbWVtb3J5ICovCi0JU2Vzc2lvblZhcmlh YmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlkKTsKKwlTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nl c3ModmFyaWQsIFhhY3RFbmRBY3Rpb24pOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jCmluZGV4IGJkNjM5ZDBiNDgzLi5kYjU1Y2E0YjFjMyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMTYsNiArMTYsOCBAQAogCiAjaW5jbHVkZSAi YWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC0zMSw2ICsz MywxOSBAQAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNj YWNoZS5oIgogCit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0KK3sKKwlPaWQJ CQl2YXJpZDsJCQkvKiB2YXJpZCBvZiBzZXNzaW9uIHZhcmlhYmxlICovCisKKwkvKgorCSAqIGNy ZWF0aW5nX3N1YmlkIGlzIHRoZSBJRCBvZiB0aGUgY3JlYXRpbmcgc3VieGFjdC4gSWYgdGhlIGFj dGlvbiB3YXMKKwkgKiB1bnJlZ2lzdGVyZWQgZHVyaW5nIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCBkZWxldGluZ19zdWJpZCBpcyB0aGUgSUQKKwkgKiBvZiB0aGUgZGVsZXRpbmcgc3VieGFjdCwg b3RoZXJ3aXNlIEludmFsaWRTdWJUcmFuc2FjdGlvbklkLgorCSAqLworCVN1YlRyYW5zYWN0aW9u SWQgY3JlYXRpbmdfc3ViaWQ7CisJU3ViVHJhbnNhY3Rpb25JZCBkZWxldGluZ19zdWJpZDsKK30g U1ZhcmlhYmxlWEFjdERyb3BJdGVtOworCiAvKgogICogVGhlIHZhbHVlcyBvZiBzZXNzaW9uIHZh cmlhYmxlcyBhcmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJpdmF0ZSBtZW1vcnkKICAqIGlu IHRoZSBkZWRpY2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpbiBi aW5hcnkgZm9ybWF0LgpAQCAtMTA1LDYgKzEyMCwxMiBAQCBzdGF0aWMgYm9vbCBuZWVkc192YWxp ZGF0aW9uID0gZmFsc2U7CiAgKi8KIHN0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVk X2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisvKiBsaXN0IGhvbGRzIGZpZWxk cyBvZiBTVmFyaWFibGVYQWN0RHJvcEl0ZW0gdHlwZSAqLworc3RhdGljIExpc3QgKnhhY3RfZHJv cF9pdGVtcyA9IE5JTDsKKworc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94 YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJp YWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZv ciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTQyLDE2ICsxNjMsNDUg QEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWlu dDMyIGhhc2h2YWx1ZSkKIAl9CiB9CiAKKy8qCisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdvcmsgdG8g c2V0dXAgbG9jYWwgbWVtb3J5IG1hbmFnZW1lbnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxlLgorICoK KyAqIENhbGxlciBzaG91bGQgYWxyZWFkeSBoYXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2FyeSBlbnRy eSBpbiBjYXRhbG9nCisgKiBhbmQgbWFkZSB0aGVtIHZpc2libGUuCisgKi8KK3ZvaWQKK1Nlc3Np b25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9u KQoreworCS8qCisJICogRm9yIHRlbXBvcmFyeSB2YXJpYWJsZXMsIHdlIG5lZWQgdG8gY3JlYXRl IGEgbmV3IGVuZCBvZiB4YWN0IGFjdGlvbiB0bworCSAqIGVuc3VyZSBkZWxldGlvbiBmcm9tIGNh dGFsb2cuCisJICovCisJaWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9Q KQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2UodmFyaWQpKSk7CisKKwkJcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3Ao dmFyaWQpOworCX0KK30KKwogLyoKICAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAg Zm9yIGEgRFJPUCBWQVJJQUJMRSBjb21tYW5kLgogICoKICAqIENhbGxlciBzaG91bGQgdGFrZSBj YXJlIG9mIHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KICAqLwogdm9pZAot U2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbikKIHsKIAlBc3Nl cnQoTG9jYWxUcmFuc2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOwogCisJaWYg KFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlz VGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisK KwkJdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcCh2YXJpZCk7CisJfQorCiAJ aWYgKHNlc3Npb252YXJzKQogCXsKIAkJYm9vbAkJZm91bmQ7CkBAIC0xNzQsNiArMjI0LDU3IEBA IFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCiAJfQogfQogCisvKgor ICogUmVnaXN0cmF0aW9uIG9mIGFjdGlvbnMgdG8gYmUgZXhlY3V0ZWQgb24gc2Vzc2lvbiB2YXJp YWJsZXMgYXQgdHJhbnNhY3Rpb24KKyAqIGVuZCB0aW1lLiBXZSB3YW50IHRvIGRyb3AgdGVtcG9y YXJ5IHNlc3Npb24gdmFyaWFibGVzIHdpdGggY2xhdXNlIE9OIENPTU1JVAorICogRFJPUC4KKyAq LworCisvKgorICogUmVnaXN0ZXIgYSBzZXNzaW9uIHZhcmlhYmxlIHhhY3QgYWN0aW9uLgorICov CitzdGF0aWMgdm9pZAorcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZh cmlkKQoreworCVNWYXJpYWJsZVhBY3REcm9wSXRlbSAqeGFjdF9haTsKKwlNZW1vcnlDb250ZXh0 IG9sZGN4dDsKKworCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNv bnRleHQpOworCisJeGFjdF9haSA9IChTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikKKwkJcGFsbG9j KHNpemVvZihTVmFyaWFibGVYQWN0RHJvcEl0ZW0pKTsKKworCXhhY3RfYWktPnZhcmlkID0gdmFy aWQ7CisKKwl4YWN0X2FpLT5jcmVhdGluZ19zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlv bklkKCk7CisJeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25J ZDsKKworCXhhY3RfZHJvcF9pdGVtcyA9IGxjb25zKHhhY3RfYWksIHhhY3RfZHJvcF9pdGVtcyk7 CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKK30KKworLyoKKyAqIFVucmVnaXN0 ZXIgYW4gaWQgb2YgYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZHJvcCBsaXN0LiBJbiB0 aGlzCisgKiBtb21lbnQsIHRoZSBhY3Rpb24gaXMganVzdCBtYXJrZWQgYXMgZGVsZXRlZCBieSBz ZXR0aW5nIGRlbGV0aW5nX3N1YmlkLiBUaGUKKyAqIGNhbGxpbmcgZXZlbiBtaWdodCBiZSByb2xs YmFja2VkLCBpbiB3aGljaCBjYXNlIHdlIHNob3VsZCBub3QgbG9zZSB0aGlzCisgKiBhY3Rpb24u CisgKi8KK3N0YXRpYyB2b2lkCit1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9w KE9pZCB2YXJpZCkKK3sKKwlMaXN0Q2VsbCAgICpsOworCisJZm9yZWFjaChsLCB4YWN0X2Ryb3Bf aXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJp YWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QobCk7CisKKwkJaWYgKHhhY3RfYWktPnZhcmlkID09 IHZhcmlkKQorCQkJeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNh Y3Rpb25JZCgpOworCX0KK30KKwogLyoKICAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1l bW9yeQogICovCkBAIC0yODksMTUgKzM5MCw5MiBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3Zh cmlhYmxlcyhib29sIGF0RU9YKQogfQogCiAvKgotICogUmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVk IHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5LgorICAqIFBlcmZvcm0gT04gQ09NTUlUIERS T1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcywKKyAgKiBhbmQgcmVtb3ZlIGFsbCBk cm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4KICAqLwogdm9pZAotQXRQcmVFT1hhY3RfU2Vz c2lvblZhcmlhYmxlcyh2b2lkKQorQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlz Q29tbWl0KQogewotCS8qIFdlIGNhbm5vdCB0byBkbyBpdCB3aGVuIHRyYW5zYWN0aW9uIGlzIGFi b3J0ZWQgKi8KLQlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCWlmIChpc0NvbW1pdCkK Kwl7CisJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCisJCXsKKwkJCUxpc3RDZWxsICAgKmw7CisKKwkJ CWZvcmVhY2gobCwgeGFjdF9kcm9wX2l0ZW1zKQorCQkJeworCQkJCVNWYXJpYWJsZVhBY3REcm9w SXRlbSAqeGFjdF9haSA9CisJCQkJCShTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZpcnN0KGwp OworCisJCQkJLyogSXRlcmF0ZSBvbmx5IG92ZXIgZW50cmllcyB0aGF0IGFyZSBzdGlsbCBwZW5k aW5nICovCisJCQkJaWYgKHhhY3RfYWktPmRlbGV0aW5nX3N1YmlkID09IEludmFsaWRTdWJUcmFu c2FjdGlvbklkKQorCQkJCXsKKwkJCQkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisKKwkJCQkJb2Jq ZWN0LmNsYXNzSWQgPSBWYXJpYWJsZVJlbGF0aW9uSWQ7CisJCQkJCW9iamVjdC5vYmplY3RJZCA9 IHhhY3RfYWktPnZhcmlkOworCQkJCQlvYmplY3Qub2JqZWN0U3ViSWQgPSAwOworCisJCQkJCS8q CisJCQkJCSAqIFNpbmNlIHRoaXMgaXMgYW4gYXV0b21hdGljIGRyb3AsIHJhdGhlciB0aGFuIG9u ZQorCQkJCQkgKiBkaXJlY3RseSBpbml0aWF0ZWQgYnkgdGhlIHVzZXIsIHdlIHBhc3MgdGhlCisJ CQkJCSAqIFBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgZmxhZy4KKwkJCQkJICovCisJCQkJCWVs b2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSAob2lkOiV1KSB3aWxsIGJlIGRlbGV0ZWQgKGZv cmNlZCBieSBPTiBDT01NSVQgRFJPUCBjbGF1c2UpIiwKKwkJCQkJCSB4YWN0X2FpLT52YXJpZCk7 CisKKwkJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCQkJ CVBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgfAorCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9R VUlFVExZKTsKKwkJCQl9CisJCQl9CisJCX0KIAotCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFy aWFibGVzKHRydWUpOworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsK Kwl9CisKKwkvKgorCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9wX2l0ZW1zLiBBbGwgcmVs YXRlZCB2YXJpYWJsZXMgYXJlIGRyb3BwZWQKKwkgKiBub3csIG9yIGxvc3QgaW5zaWRlIGFib3J0 ZWQgdHJhbnNhY3Rpb24uCisJICovCisJbGlzdF9mcmVlX2RlZXAoeGFjdF9kcm9wX2l0ZW1zKTsK Kwl4YWN0X2Ryb3BfaXRlbXMgPSBOVUxMOworfQorCisvKgorICogUG9zdC1zdWJjb21taXQgb3Ig cG9zdC1zdWJhYm9ydCBjbGVhbnVwIG9mIHhhY3QgZHJvcCBsaXN0LgorICoKKyAqIER1cmluZyBz dWJhYm9ydCwgd2UgY2FuIGltbWVkaWF0ZWx5IHJlbW92ZSBlbnRyaWVzIGNyZWF0ZWQgZHVyaW5n IHRoaXMKKyAqIHN1YnRyYW5zYWN0aW9uLiBEdXJpbmcgc3ViY29tbWl0LCBqdXN0IHRyYW5zZmVy IGVudHJpZXMgbWFya2VkIGR1cmluZworICogdGhpcyBzdWJ0cmFuc2FjdGlvbiBhcyBiZWluZyB0 aGUgcGFyZW50J3MgcmVzcG9uc2liaWxpdHkuCisgKi8KK3ZvaWQKK0F0RU9TdWJYYWN0X1Nlc3Np b25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKKwkJCQkJCQkgU3ViVHJhbnNhY3Rpb25JZCBteVN1 YmlkLAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIHBhcmVudFN1YmlkKQoreworCUxpc3RDZWxs ICAgKmN1cl9pdGVtOworCisJZm9yZWFjaChjdXJfaXRlbSwgeGFjdF9kcm9wX2l0ZW1zKQorCXsK KwkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCShTVmFyaWFibGVYQWN0RHJv cEl0ZW0gKikgbGZpcnN0KGN1cl9pdGVtKTsKKworCQlpZiAoIWlzQ29tbWl0ICYmIHhhY3RfYWkt PmNyZWF0aW5nX3N1YmlkID09IG15U3ViaWQpCisJCXsKKwkJCS8qIGN1cl9pdGVtIG11c3QgYmUg cmVtb3ZlZCAqLworCQkJeGFjdF9kcm9wX2l0ZW1zID0gZm9yZWFjaF9kZWxldGVfY3VycmVudCh4 YWN0X2Ryb3BfaXRlbXMsIGN1cl9pdGVtKTsKKwkJCXBmcmVlKHhhY3RfYWkpOworCQl9CisJCWVs c2UKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSBwcmVzZXJ2ZWQgKi8KKwkJCWlmICh4YWN0 X2FpLT5jcmVhdGluZ19zdWJpZCA9PSBteVN1YmlkKQorCQkJCXhhY3RfYWktPmNyZWF0aW5nX3N1 YmlkID0gcGFyZW50U3ViaWQ7CisJCQlpZiAoeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPT0gbXlT dWJpZCkKKwkJCQl4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9IGlzQ29tbWl0ID8gcGFyZW50U3Vi aWQgOiBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwkJfQorCX0KIH0KIAogLyoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zp ZXcuYwppbmRleCBmZGFkODMzODMyNC4uNmY3NGYxNGY2YWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZpZXcuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKQEAg LTQ4NCw3ICs0ODQsNyBAQCBEZWZpbmVWaWV3KFZpZXdTdG10ICpzdG10LCBjb25zdCBjaGFyICpx dWVyeVN0cmluZywKIAkgKi8KIAl2aWV3ID0gY29weU9iamVjdChzdG10LT52aWV3KTsJLyogZG9u J3QgY29ycnVwdCBvcmlnaW5hbCBjb21tYW5kICovCiAJaWYgKHZpZXctPnJlbHBlcnNpc3RlbmNl ID09IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVAotCQkmJiBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRp b24odmlld1BhcnNlKSkKKwkJJiYgaXNRdWVyeVVzaW5nVGVtcE9iamVjdCh2aWV3UGFyc2UpKQog CXsKIAkJdmlldy0+cmVscGVyc2lzdGVuY2UgPSBSRUxQRVJTSVNURU5DRV9URU1QOwogCQllcmVw b3J0KE5PVElDRSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IGY3NWJlMzNhMDcxLi41MDMwODU3ODYz YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zMjk3LDEwICszMjk3LDEwIEBAIHRyYW5zZm9ybUNy ZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlVGFibGVBc1N0bXQgKnN0 bXQpCiAJCSAqIGNyZWF0aW9uIHF1ZXJ5LiBJdCB3b3VsZCBiZSBoYXJkIHRvIHJlZnJlc2ggZGF0 YSBvciBpbmNyZW1lbnRhbGx5CiAJCSAqIG1haW50YWluIGl0IGlmIGEgc291cmNlIGRpc2FwcGVh cmVkLgogCQkgKi8KLQkJaWYgKGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbihxdWVyeSkpCisJCWlm IChpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHF1ZXJ5KSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVycm1zZygi bWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzIG9yIHZpZXdz IikpKTsKKwkJCQkJIGVycm1zZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1w b3JhcnkgdGFibGVzLCB2aWV3cyBvciBzZXNzaW9uIHZhcmlhYmxlcyIpKSk7CiAKIAkJLyoKIAkJ ICogQSBtYXRlcmlhbGl6ZWQgdmlldyB3b3VsZCBlaXRoZXIgbmVlZCB0byBzYXZlIHBhcmFtZXRl cnMgZm9yIHVzZSBpbgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZWE1YTY1YjNmZjcuLjlmNzU2MmJjMzExIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTQ4MCw2ICs0ODAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog JXR5cGUgPGl2YWw+CSBPcHRUZW1wCiAldHlwZSA8aXZhbD4JIE9wdE5vTG9nCiAldHlwZSA8b25j b21taXQ+IE9uQ29tbWl0T3B0aW9uCisldHlwZSA8aXZhbD4JIFhhY3RFbmRBY3Rpb25PcHRpb24K IAogJXR5cGUgPGl2YWw+CWZvcl9sb2NraW5nX3N0cmVuZ3RoCiAldHlwZSA8bm9kZT4JZm9yX2xv Y2tpbmdfaXRlbQpAQCAtNTIyMSwyNiArNTIyMiwzOSBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9p dGVtOgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJ CUNSRUFURSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxh dGVfY2xhdXNlCisJCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRf YXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7 CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZh clN0bXQpOwotCQkJCQluLT52YXJpYWJsZSA9ICQzOwotCQkJCQluLT50eXBlTmFtZSA9ICQ1Owot CQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDY7CisJCQkJCSQ0LT5yZWxw ZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT52YXJpYWJsZSA9ICQ0OworCQkJCQluLT50eXBlTmFt ZSA9ICQ2OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDc7CisJCQkJ CW4tPlhhY3RFbmRBY3Rpb24gPSAkODsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwog CQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgVkFSSUFCTEUgSUZfUCBO T1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1 c2UKKwkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmll ZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgWGFjdEVuZEFjdGlvbk9w dGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVh dGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDY7Ci0JCQkJCW4tPnR5cGVO YW1lID0gJDg7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJ CQkJJDctPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPnZhcmlhYmxlID0gJDc7CisJCQkJ CW4tPnR5cGVOYW1lID0gJDk7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAq KSAkMTA7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7CiAJCQkJCW4tPmlmX25vdF9leGlz dHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQk7CiAKKy8qCisgKiBU ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGRyb3BwZWQgb24gc3VjY2Vzc2Z1bAor ICogdHJhbnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgorICovCitYYWN0RW5kQWN0aW9uT3B0aW9u OiAgT04gQ09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJ fCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX05PT1A7IH0KKwkJOwor CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBuYW1lIFVQ REFURSBbIFRPIHZlcnNpb24gXQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRleCAy ZjY0ZWFmMGUzNy4uYmRlNWIxMTE4YzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5j CkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgZXhwYW5kVHVwbGVEZXNjKFR1cGxlRGVz YyB0dXBkZXNjLCBBbGlhcyAqZXJlZiwKIHN0YXRpYyBpbnQJc3BlY2lhbEF0dE51bShjb25zdCBj aGFyICphdHRuYW1lKTsKIHN0YXRpYyBib29sIHJ0ZV92aXNpYmxlX2lmX2xhdGVyYWwoUGFyc2VT dGF0ZSAqcHN0YXRlLCBSYW5nZVRibEVudHJ5ICpydGUpOwogc3RhdGljIGJvb2wgcnRlX3Zpc2li bGVfaWZfcXVhbGlmaWVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VUYmxFbnRyeSAqcnRlKTsK LXN0YXRpYyBib29sIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwg dm9pZCAqY29udGV4dCk7CitzdGF0aWMgYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtl cihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKIAogCiAvKgpAQCAtMzgyMSwxMyArMzgyMSwx MyBAQCBydGVfdmlzaWJsZV9pZl9xdWFsaWZpZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZVRi bEVudHJ5ICpydGUpCiAgKiB0aGUgcXVlcnkgaXMgYSB0ZW1wb3JhcnkgcmVsYXRpb24gKHRhYmxl LCB2aWV3LCBvciBtYXRlcmlhbGl6ZWQgdmlldykuCiAgKi8KIGJvb2wKLWlzUXVlcnlVc2luZ1Rl bXBSZWxhdGlvbihRdWVyeSAqcXVlcnkpCitpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KFF1ZXJ5ICpx dWVyeSkKIHsKLQlyZXR1cm4gaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcigoTm9kZSAq KSBxdWVyeSwgTlVMTCk7CisJcmV0dXJuIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyKChO b2RlICopIHF1ZXJ5LCBOVUxMKTsKIH0KIAogc3RhdGljIGJvb2wKLWlzUXVlcnlVc2luZ1RlbXBS ZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKK2lzUXVlcnlVc2luZ1Rl bXBPYmplY3Rfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiB7CiAJaWYgKG5vZGUg PT0gTlVMTCkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMzg1MywxMyArMzg1MywyMyBAQCBpc1F1ZXJ5 VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJCX0K IAogCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIocXVlcnksCi0JCQkJCQkJCSBpc1F1ZXJ5VXNp bmdUZW1wUmVsYXRpb25fd2Fsa2VyLAorCQkJCQkJCQkgaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93 YWxrZXIsCiAJCQkJCQkJCSBjb250ZXh0LAogCQkJCQkJCQkgUVRXX0lHTk9SRV9KT0lOQUxJQVNF Uyk7CiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9 IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUp CisJCXsKKwkJCWlmIChpc0FueVRlbXBOYW1lc3BhY2UoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlKHAtPnBhcmFtdmFyaWQpKSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCX0KIAogCXJl dHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCi0JCQkJCQkJCSAgaXNRdWVyeVVzaW5n VGVtcFJlbGF0aW9uX3dhbGtlciwKKwkJCQkJCQkJICBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dh bGtlciwKIAkJCQkJCQkJICBjb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBhZGY4M2VkMTk3MC4u ZjZhYThiYzVmNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MTU5LDcgKzUxNTksNyBAQCBsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVm OwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0Owot CXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRy YW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsK QEAgLTUxNzksMTIgKzUxNzksMTYgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJu LCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5 cGUsIHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxu YW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0 XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9 IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVz XCIsXG4iCi0JCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikg YXMgXCIlc1wiXG4iLAorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFy b3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFjdGlvblxu IgorCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCisJCQkJCSAg IiAgRU5EIGFzIFwiJXNcIlxuIiwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAogCQkJ CQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAog CQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCi0JCQkJCSAgZ2V0dGV4dF9ub29wKCJP d25lciIpKTsKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9u b29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKIAlpZiAodmVyYm9zZSkKIAl7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmMKaW5kZXggZGE3NjQwMzNkYmEuLmVjNTRhYmI5YTczIDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5jCkBAIC0zMjc3LDcgKzMyNzcsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4 dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxvd2VkIGlu c2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSAi Q1JFQVRFIFRFTVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMgKi8K IAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikpCi0JCUNP TVBMRVRFX1dJVEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVfV0lU SCgiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVkFSSUFCTEUiLCAiVklFVyIpOwogCS8qIENvbXBsZXRl ICJDUkVBVEUgVU5MT0dHRUQiIHdpdGggVEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlmIChU YWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxF IiwgIlNFUVVFTkNFIik7CkBAIC0zNTkzLDcgKzM1OTMsOCBAQCBwc3FsX2NvbXBsZXRpb24oY29u c3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCX0KIC8qIENSRUFURSBWQVJJQUJM RSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVz ICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICovCi0JZWxz ZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwllbHNl IGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkg VGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQogCQlD T01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1h dGNoQW55LCAiQVMiKSkKIAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRo IEFTIHR5cGVzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxl LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggZGI1OTNjZDViZWQu LjFlNmRkOThkNDE1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxl LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC01NSw2ICs1NSw5 IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJLyogdHlw bW9kIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KIAlpbnQzMgkJdmFydHlwbW9kIEJLSV9ERUZBVUxU KC0xKTsKIAorCS8qIGFjdGlvbiBvbiB0cmFuc2FjdGlvbiBlbmQgKi8KKwljaGFyCQl2YXJ4YWN0 ZW5kYWN0aW9uIEJLSV9ERUZBVUxUKG4pOworCiAJLyogdmFyaWFibGUgY29sbGF0aW9uICovCiAJ T2lkCQkJdmFyY29sbGF0aW9uIEJLSV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxh dGlvbik7CiAKQEAgLTY3LDYgKzcwLDEyIEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJp YWJsZVJlbGF0aW9uSWQpCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfdmFyaWFibGU7CiAKK3R5cGVk ZWYgZW51bSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24KK3sKKwlWQVJJQUJMRV9YQUNURU5EX05PT1Ag PSAnbicsCS8qIE5PT1AgKi8KKwlWQVJJQUJMRV9YQUNURU5EX0RST1AgPSAnZCcsCS8qIE9OIENP TU1JVCBEUk9QICovCit9CQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uOworCiAvKiAtLS0tLS0tLS0t LS0tLS0tCiAgKgkJRm9ybV9wZ192YXJpYWJsZSBjb3JyZXNwb25kcyB0byBhIHBvaW50ZXIgdG8g YSB0dXBsZSB3aXRoCiAgKgkJdGhlIGZvcm1hdCBvZiB0aGUgcGdfdmFyaWFibGUgcmVsYXRpb24u CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggMGQ0YzYzNWFlN2Iu LmRjODMyOTZiMWJhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBA IC0yMSw4ICsyMSwxMSBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRp bHMvcXVlcnllbnZpcm9ubWVudC5oIgogCi1leHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9w UG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsKLWV4dGVybiB2b2lkIEF0UHJlRU9YYWN0X1Nlc3Npb25W YXJpYWJsZXModm9pZCk7CitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVDcmVhdGVQb3N0cHJv Y2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbik7CitleHRlcm4gdm9pZCBTZXNzaW9u VmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkLCBjaGFyIFhhY3RFbmRBY3Rpb24pOwor ZXh0ZXJuIHZvaWQgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KTsK K2V4dGVybiB2b2lkIEF0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwg U3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkLAorCQkJCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIHBh cmVudFN1YmlkKTsKIAogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwg RGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJs ZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBmYmFiMzM4YTkzOC4uNTZlMjg0ZGMwOWMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0NTUsNiArMzQ1NSw3IEBAIHR5cGVkZWYgc3RydWN0IENy ZWF0ZVNlc3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBv ZiB2YXJpYWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90 X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCWNoYXIJCVhh Y3RFbmRBY3Rpb247CS8qIG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vz c2lvblZhclN0bXQ7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA1ZjdiODNkMTNmYS4uZGQ4 ZWQzOTY1YjcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBi L3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC01MSw3ICs1MSw5IEBAIHR5cGVkZWYg c3RydWN0IEFsaWFzCiAJTGlzdAkgICAqY29sbmFtZXM7CQkvKiBvcHRpb25hbCBsaXN0IG9mIGNv bHVtbiBhbGlhc2VzICovCiB9IEFsaWFzOwogCi0vKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1l IGZvciB0ZW1wb3JhcnkgcmVsYXRpb25zICovCisvKgorICogV2hhdCB0byBkbyBhdCBjb21taXQg dGltZSBmb3IgdGVtcG9yYXJ5IHJlbGF0aW9ucyBvciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqLwog dHlwZWRlZiBlbnVtIE9uQ29tbWl0QWN0aW9uCiB7CiAJT05DT01NSVRfTk9PUCwJCQkJLyogTm8g T04gQ09NTUlUIGNsYXVzZSAoZG8gbm90aGluZykgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9yZWxhdGlvbi5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0 aW9uLmgKaW5kZXggYmVhMmRhNTQ5NjEuLjU4NWVhZGY2NTI0IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfcmVsYXRpb24uaApAQCAtMTI0LDYgKzEyNCw2IEBAIGV4dGVybiBpbnQJYXR0bmFtZUF0dE51 bShSZWxhdGlvbiByZCwgY29uc3QgY2hhciAqYXR0bmFtZSwgYm9vbCBzeXNDb2xPSyk7CiBleHRl cm4gY29uc3QgTmFtZURhdGEgKmF0dG51bUF0dE5hbWUoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7 CiBleHRlcm4gT2lkCWF0dG51bVR5cGVJZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVy biBPaWQJYXR0bnVtQ29sbGF0aW9uSWQoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7Ci1leHRlcm4g Ym9vbCBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb24oUXVlcnkgKnF1ZXJ5KTsKK2V4dGVybiBib29s IGlzUXVlcnlVc2luZ1RlbXBPYmplY3QoUXVlcnkgKnF1ZXJ5KTsKIAogI2VuZGlmCQkJCQkJCS8q IFBBUlNFX1JFTEFUSU9OX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBl Y3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9z ZXNzaW9uLXZhcmlhYmxlLm91dAppbmRleCAyOTY4Y2NlMDg5NS4uOWZiYmY5MDU3YTYgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dAor KysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKQEAg LTg1LDEwICs4NSwxMSBAQCBteXZhcgogCiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKLXN0YXJ0aW5n IHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGlu dmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMgbGV0 MyBzMyBvX2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0 YXRlCiBzdGVwIGNyZWF0ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4dDsKIHN0ZXAg bGV0MzogTEVUIG15dmFyMyA9ICd0ZXN0JzsKIHN0ZXAgczM6IEJFR0lOOworc3RlcCBvX2NfZDog Q1JFQVRFIFRFTVAgVkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsK IHN0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Owogc3RlcCBsZXQ0 OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOwogc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5z cGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwppbmRl eCBjODY0ZmVlNDAwNi4uNDVlNjVkNDA4NWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3Nw ZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwpAQCAtMjQsNiArMjQsNyBAQCBzdGVwIGNyZWF0ZQkJ eyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQogc2Vzc2lvbiBzMwogc3RlcCBzMwkJ CXsgQkVHSU47IH0KIHN0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CitzdGVwIG9f Y19kCQl7IENSRUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlU IERST1A7IH0KIHN0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsg fQogc3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KIHN0ZXAgZHJvcDQJCXsgRFJP UCBWQVJJQUJMRSBteXZhcjQ7IH0KQEAgLTQ3LDQgKzQ4LDQgQEAgcGVybXV0YXRpb24gbGV0IHZh bCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0 aGUgY29uY3VycmVudCBkcm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0 ZSBkYmcgdmFsIHNyMQogIyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBx dWV1ZXMgaGF2ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBz MyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitwZXJt dXRhdGlvbiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGlu dmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXgg Yzg5MDY3NDkwZjcuLmFkN2NkMWNhMzkwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK QEAgLTU4MzMsMjAgKzU4MzMsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJh Y3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAg ICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAg ICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAK Ky0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcg fCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9O IFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdz b21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNj aGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3du ZXIgICAgICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAg ICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQot IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAg IHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAg ICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5n IHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25l cit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAg IHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTYzMTQsOSArNjMxNCw5IEBA IExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBz Y2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NDg5LDkgKzY0ODksOSBAQCBpbXByb3BlciBxdWFs aWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIK IGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1h IHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKLS0tLS0tLS0tKy0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFn YWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmlj YXRpb25zLgpAQCAtNjYyOCw5ICs2NjI4LDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0 ZXMKICgwIHJvd3MpCiAKIFxkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu dmFyaWFibGUiCi0gICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUg fCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0 IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCAwY2M5MmMyMmUxNi4uYTg5MzJmZjM2MzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00NSwxMSArNDUsMTEgQEAgU0VUIFJPTEUg VE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIx IEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBcZFYrIHN2YXJ0ZXN0LnZhcjEKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKLSAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAg ICAgICBPd25lciAgICAgICAgICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAg ICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gc3ZhcnRlc3Qg fCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKLSAgICAg ICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAg IHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAg ICB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCisgc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxl X293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CkBAIC0x Mzk3LDMgKzEzOTcsMTIzIEBAIFNFTEVDVCB2YXIxOwogCiBERUFMTE9DQVRFIHAxOwogRFJPUCBW QVJJQUJMRSB2YXIxOworLS0gdGVtcG9yYXJ5IHZhcmlhYmxlcworQ1JFQVRFIFRFTVAgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CistLSB0aGlzIHZpZXcgc2hvdWxkIGJlIHRlbXBvcmFyeQorQ1JFQVRF IFZJRVcgdmFyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgdmFyMTsKK05PVElDRTogIHZpZXcgInZhcl90 ZXN0X3ZpZXciIHdpbGwgYmUgYSB0ZW1wb3JhcnkgdmlldworRFJPUCBWQVJJQUJMRSB2YXIxIENB U0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdmFyX3Rlc3RfdmlldworQkVH SU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOwor ICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAK KygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENP TU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0t LS0tLQorICAxMDAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgemVybworU0VM RUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBj b3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VM RUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFy MSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklB QkxFIHZhcjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEg cm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09N TUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xM QkFDSzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJs ZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSBy b3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9u X3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lO OworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAg TEVUIHZhcjEgPSAxMDA7CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOwor ICBST0xMQkFDSyBUTyBzMTsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAK KygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4 IDBiNGE1M2NlMTA3Li42M2I1MWY5YTM0YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbApAQCAtODI1LDYgKzgyNSw3IEBAIEJFR0lOOwogICBEUk9QIFZBUklB QkxFIHZhcjE7CiAgIFNFTEVDVCB2YXIyOwogUk9MTEJBQ0s7CisKIC0tIHNob3VsZCBiZSBvawog U0VMRUNUIHZhcjE7CiAKQEAgLTk1MSwzICs5NTIsNjggQEAgU0VMRUNUIHZhcjE7CiAKIERFQUxM T0NBVEUgcDE7CiBEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlbXBvcmFyeSB2YXJpYWJsZXMK K0NSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNob3VsZCBi ZSB0ZW1wb3JhcnkKK0NSRUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZhcjE7CisK K0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFS SUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBT RUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUg emVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVH SU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOwor ICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUg PSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEg QVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJM RSB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJv CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsK KyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExF VCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hv dWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5h bWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZh cjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0FWRVBPSU5U IHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFJPTExCQUNLIFRPIHMxOworICBTRUxFQ1Qg dmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybwor U0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKZGlmZiAtLWdpdCBh L3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKaW5kZXggNWUyZTViY2Q4MDYuLjBhYjllZjEzNGQwIDEwMDY0NAotLS0gYS9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdApAQCAtMjc4OSw2ICsyNzg5LDcgQEAgU3VwcG9ydFJlcXVlc3RXRnVuY01v bm90b25pYwogU1ZhcmlhYmxlCiBTVmFyaWFibGVEYXRhCiBTVmFyaWFibGVTdGF0ZQorU1Zhcmlh YmxlWEFjdERyb3BJdGVtCiBTeW4KIFN5bmNPcHMKIFN5bmNSZXBDb25maWdEYXRhCi0tIAoyLjQ1 LjIKCg== --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0008-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20240801-0008-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf5113 RnJvbSAwNWMzMWM0NmMxOGRkMTBhNGU5MmEwMGRjYzYxOWJlMWIzMTM5OTVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE3OjU1OjI0ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwOC8yMV0gR1VDIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCgpJbnNp ZGUgYW4gcXVlcnkgdGhlIHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZC4gVGhpcyBi ZWhhdmlvdXIgaXMgYnkgZGVzaWduLApiZWNhdXNlIHRoaXMgZW5zdXJpbmcgc28gbmV3IHZhcmlh YmxlcyBkb2Vzbid0IGJyZWFrIGV4aXN0aW5nIHF1ZXJpZXMuIEJ1dCB0aGlzCmJlaGF2aW91ciBj YW4gYmUgY29uZnVzaW5nLCBiZWNhdXNlIHNoYWRvd2luZyBpcyBxdWlldC4KCldoZW4gbmV3IEdV QyBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBpcyBvbiwgdGhlbiB0aGUgd2Fy bmluZwppcyBkaXNwbGF5ZWQsIHdoZW4gc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSB1c2Vk LCBidXQgaXQgaXMgbm90IHVzZWQKZHVlIHNoYWRvd2luZy4gVGhpcyBmZWF0dXJlIHNob3VsZCB0 byBoZWxwIHdpdGggaW52ZXN0aWdhdGlvbiBvZiB1bmV4cGVjdGVkCmJlaGF2aW91ci4KCk5vdGU6 IFBMcGdTUUwgaGFzIGFuIG9wdGlvbiB0aGF0IGNvbnRyb2xzIHByaW9yaXR5IG9mIGlkZW50aWZp ZXIncyBzcGFjZXMKKFNRTCBvciBQTHBnU1FMKS4gRGVmYXVsdCBiZWhhdmlvdXIgZG9lc24ndCBh bGxvd3MgY29sbGlzaW9ucy4gSSBiZWxpZXZlCnRoaXMgZGVmYXVsdCBpcyB0aGUgYmVzdC4gSSBj YW5ub3QgdG8gaW1wbGVtZW50IHNpbWlsYXIgdmVyeSBzdHJpY3QKYmVoYXZpb3VyIHRvIHNlc3Np b24gdmFyaWFibGVzLCBiZWNhdXNlIG9uZSB1bmhhcHB5IG5hbWVkIHNlc3Npb24gdmFyaWFibGUK Y2FuIGJyZWFrcyBhbiBhcHBsaWNhdGlvbnMuIFRoZSBwcm9ibGVtcyByZWxhdGVkIHRvIGJhZGx5 IG5hbWVkIFBMcGdTUUwncwp2YXJpYmxlIGlzIGxpbWl0dGVkIGp1c3QgdG8gb25seSBvbmUgcm91 dGluZS4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAg fCA2MCArKysrKysrKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAg ICAgICAgICAgICAgICAgfCAxMCArKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j ICAgICAgICAgICAgICAgfCA0OSArKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL21p c2MvZ3VjX3RhYmxlcy5jICAgICAgICAgICB8ICA5ICsrKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEgKwogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUub3V0IHwgMzMgKysrKysrKysrKwogLi4uL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjkgKysrKysrKysrCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAyMiArKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrCiAxMCBmaWxlcyBj aGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXgg YTY1ODM5YTY3MDkuLjEwZTdhOWEzOTIzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0xMDY5Myw2ICsxMDY5Myw2 NiBAQCBkeW5hbWljX2xpYnJhcnlfcGF0aCA9ICdDOlx0b29sc1xwb3N0Z3Jlc3FsO0g6XG15X3By b2plY3RcbGliOyRsaWJkaXInCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRy eT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtYW1iaWd1 aXR5LXdhcm5pbmciIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmciPgorICAgICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmc8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+ CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmc8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAg PC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBh cmE+CisgICAgICAgIFdoZW4gb24sIGEgd2FybmluZyBpcyByYWlzZWQgd2hlbiBhbnkgaWRlbnRp ZmllciBpbiBhIHF1ZXJ5IGNvdWxkIGJlCisgICAgICAgIHVzZWQgYXMgYm90aCBhIGNvbHVtbiBp ZGVudGlmaWVyLCByb3V0aW5lIHZhcmlhYmxlIG9yIGEgc2Vzc2lvbgorICAgICAgICB2YXJpYWJs ZSBpZGVudGlmaWVyLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVyYWw+LgorICAg ICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2Fu IGJlIHNoYWRvd2VkIGJ5IGNvbHVtbiByZWZlcmVuY2VzIGluIGEgcXVlcnksIHRoaXMKKyAgICAg ICAgaXMgYW4gZXhwZWN0ZWQgYmVoYXZpb3IuICBQcmV2aW91c2x5IHdvcmtpbmcgcXVlcmllcyBz aG91bGRuJ3QgZXJyb3Igb3V0CisgICAgICAgIGJ5IGNyZWF0aW5nIGFueSBzZXNzaW9uIHZhcmlh YmxlLCBzbyBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgYWx3YXlzIHNoYWRvd2VkCisgICAgICAgIGlm IGFuIGlkZW50aWZpZXIgaXMgYW1iaWd1b3VzLiAgVmFyaWFibGVzIHNob3VsZCBiZSByZWZlcmVu Y2VkIHVzaW5nCisgICAgICAgIGFudW5hbWJpZ3VvdXMgaWRlbnRpZmllciB3aXRob3V0IGFueSBw b3NzaWJpbGl0eSBmb3IgYSBjb2xsaXNpb24gd2l0aAorICAgICAgICBpZGVudGlmaWVyIG9mIG90 aGVyIGRhdGFiYXNlIG9iamVjdHMgKGNvbHVtbiBuYW1lcyBvciByZWNvcmQgZmllbGRzIG5hbWVz KS4KKyAgICAgICAgVGhlIHdhcm5pbmcgbWVzc2FnZXMgZW1pdHRlZCB3aGVuIGVuYWJsaW5nIDx2 YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nPC92YXJuYW1lPgorICAg ICAgICBjYW4gaGVscCBmaW5kaW5nIHN1Y2ggaWRlbnRpZmllciBjb2xsaXNpb24uCis8cHJvZ3Jh bWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0lOU0VSVCBJTlRPIGZvbyBWQUxV RVMoMTApOworQ1JFQVRFIFZBUklBQkxFIGEgaW50OworTEVUIGEgPSAxMDA7CitTRUxFQ1QgYSBG Uk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKzxzY3JlZW4+CisgYQorLS0tLQorIDEwCiso MSByb3cpCis8L3NjcmVlbj4KKworPHByb2dyYW1saXN0aW5nPgorU0VUIHNlc3Npb25fdmFyaWFi bGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworU0VMRUNUIGEgRlJPTSBmb287Cis8L3Byb2dy YW1saXN0aW5nPgorCis8c2NyZWVuPgorV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlz IHNoYWRvd2VkCitMSU5FIDE6IFNFTEVDVCBhIEZST00gZm9vOworICAgICAgICAgICAgICAgXgor REVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJv dXRpbmUncyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBu YW1lLgorIGEKKy0tLS0KKyAxMAorKDEgcm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgor ICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIGZlYXR1cmUgY2FuIHNpZ25pZmljYW50bHkgaW5j cmVhc2UgbG9nIHNpemUsIHNvIGl0J3MgZGlzYWJsZWQgYnkKKyAgICAgICAgZGVmYXVsdC4gIEZv ciB0ZXN0aW5nIG9yIGRldmVsb3BtZW50IGVudmlyb25tZW50cyBpdCdzIHJlY29tbWVuZGVkIHRv CisgICAgICAgIGVuYWJsZSBpdCBpZiB5b3UgdXNlIHNlc3Npb24gdmFyaWFibGVzLgorICAgICAg IDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAg IDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1zdGFuZGFyZC1jb25mb3JtaW5nLXN0cmluZ3MiIHhyZWZs YWJlbD0ic3RhbmRhcmRfY29uZm9ybWluZ19zdHJpbmdzIj4KICAgICAgIDx0ZXJtPjx2YXJuYW1l PnN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5nczwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5 cGU+KQogICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5zdHJpbmdzPC9wcmltYXJ5PjxzZWNvbmRh cnk+c3RhbmRhcmQgY29uZm9ybWluZzwvc2Vjb25kYXJ5PjwvaW5kZXh0ZXJtPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDU3 NDU0MGNhNmZlLi42MTY1ZmE3NDQ0OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTM1OSw2ICs1MzU5LDE2IEBAIFNFTEVD VCBjdXJyZW50X3VzZXJfaWQ7CiAgICAgdGhlIHNjaGVtYSBuYW1lLCBjb2x1bW5zIGNhbiB1c2Ug dGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVzZQogICAgIGJsb2NrIGxhYmVs cywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJvdXRpbmUgbmFtZS4KICAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiBhIHF1ZXJ5IGNvbnRhaW5zIGlkZW50aWZpZXJz IG9yIHF1YWxpZmllZCBpZGVudGlmaWVycyB0aGF0IGNvdWxkIGJlCisgICAgdXNlZCBhcyBib3Ro IGEgc2Vzc2lvbiB2YXJpYWJsZSBpZGVudGlmaWVycyBhbmQgYXMgY29sdW1uIGlkZW50aWZpZXIs CisgICAgdGhlbiB0aGUgY29sdW1uIGlkZW50aWZpZXIgaXMgcHJlZmVycmVkIGV2ZXJ5IHRpbWUu ICBXYXJuaW5ncyBjYW4gYmUKKyAgICBlbWl0dGVkIHdoZW4gdGhpcyBzaXR1YXRpb24gaGFwcGVu cyBieSBlbmFibGluZyBjb25maWd1cmF0aW9uIHBhcmFtZXRlciA8eHJlZgorICAgIGxpbmtlbmQ9 Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy1hbWJpZ3VpdHktd2FybmluZyIvPi4gVXNlciBjYW4gZXhw bGljaXRseQorICAgIHF1YWxpZnkgdGhlIHNvdXJjZSBvYmplY3QgYnkgc3ludGF4IDxsaXRlcmFs PnRhYmxlLmNvbHVtbjwvbGl0ZXJhbD4gb3IKKyAgICA8bGl0ZXJhbD5zY2hlbWEudmFyaWFibGU8 L2xpdGVyYWw+LgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3Ro ZXJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGI1MGFjODAxYTkxLi5lMDE4MWE4Yjk1 MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00Nyw2ICs0Nyw3IEBACiAKIC8qIEdVQyBw YXJhbWV0ZXJzICovCiBib29sCQlUcmFuc2Zvcm1fbnVsbF9lcXVhbHMgPSBmYWxzZTsKK2Jvb2wJ CXNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nID0gZmFsc2U7CiAKIAogc3RhdGlj IE5vZGUgKnRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhw cik7CkBAIC05NjIsMTEgKzk2Myw1MSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCSAqCiAJCSAqIFNFTEVDVCBmb28uYSwgZm9vLmIs IGZvby5jIEZST00gZm9vOwogCQkgKgotCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVz aW5nLCBzbyB3ZSBkaXNhbGxvdyBpdC4gIFdlIGRvbid0IHRyeSB0bwotCQkgKiBpZGVudGlmeSBh IHZhcmlhYmxlIGlmIHdlIGtub3cgdGhhdCBpdCB3b3VsZCBiZSBzaGFkb3dlZC4KLQkJICogLS0t LS0KKwkJICogSG93ZXZlciwgdGhhdCBpcyB2ZXJ5IGNvbmZ1c2luZywgc28gd2UgZGlzYWxsb3cg aXQuCisJCSAqCisJCSAqIFdoZW4gc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg aXMgcmVxdWVzdGVkLCB0aGVuIHdlCisJCSAqIG5lZWQgdG8gaWRlbnRpZnkgYSB2YXJpYWJsZSBh bHRob3VnaCB3ZSBrbm93LCBzbyB0aGlzIHZhcmlhYmxlCisJCSAqIHdvdWxkIGJlIHNoYWRvd2Vk LgogCQkgKi8KLQkJaWYgKCFub2RlICYmICEocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19D T0xVTU4pKQorCQlpZiAobm9kZSB8fCAocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19DT0xV TU4pKQorCQl7CisJCQkvKgorCQkJICogSW4gdGhpcyBwYXRoIHdlIGp1c3QgdHJ5IChpZiBpdCBp cyB3YW50ZWQpIGRldGVjdCBpZiBzZXNzaW9uCisJCQkgKiB2YXJpYWJsZSBpcyBzaGFkb3dlZC4K KwkJCSAqLworCQkJaWYgKHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKQorCQkJ eworCQkJCS8qCisJCQkJICogVGhlIEFjY2Vzc1NoYXJlTG9jayBpcyBjcmVhdGVkIG9uIHJlbGF0 ZWQgc2Vzc2lvbiB2YXJpYWJsZS4KKwkJCQkgKiBUaGUgbG9jayB3aWxsIGJlIGtlcHQgZm9yIHRo ZSB3aG9sZSB0cmFuc2FjdGlvbi4KKwkJCQkgKi8KKwkJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFi bGUoY3JlZi0+ZmllbGRzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCB0cnVlKTsKKworCQkJCWlm IChPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCQl7CisJCQkJCS8qIFRoaXMgcGF0aCB3aWxsIGVuZGlu ZyBieSBXQVJOSU5HLiBVbmxvY2sgdmFyaWFibGUgZmlyc3QgKi8KKwkJCQkJVW5sb2NrRGF0YWJh c2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsK KworCQkJCQlpZiAobm9kZSkKKwkJCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9BTUJJR1VPVVNfQ09MVU1OKSwKKwkJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2 YXJpYWJsZSBcIiVzXCIgaXMgc2hhZG93ZWQiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmco Y3JlZi0+ZmllbGRzKSksCisJCQkJCQkJCSBlcnJkZXRhaWwoIlNlc3Npb24gdmFyaWFibGVzIGNh biBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5l J3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4iKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOworCQkJCQllbHNlCisJCQkJCQkvKiBz ZXNzaW9uIHZhcmlhYmxlIGlzIHNoYWRvd2VkIGJ5IFJURSAqLworCQkJCQkJZXJlcG9ydChXQVJO SU5HLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJ CQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBpcyBzaGFkb3dlZCIsCisJCQkJ CQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2 YXJpZCkpLAorCQkJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSwKKwkJ CQkJCQkJIGVycmRldGFpbCgiU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IHRh YmxlcyBvciB0YWJsZSdzIGFsaWFzZXMgd2l0aCB0aGUgc2FtZSBuYW1lLiIpLAorCQkJCQkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisJCQkJfQorCQkJ fQorCQl9CisJCWVsc2UKIAkJewogCQkJLyogdGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRo ZSBzZXNzaW9uIHZhcmlhYmxlICovCiAJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+ ZmllbGRzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv Z3VjX3RhYmxlcy5jCmluZGV4IDc0YTM4YmIyNDU4Li5iYzljYTdiOTgxYSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE1OTQsNiArMTU5NCwxNSBAQCBzdHJ1Y3QgY29uZmln X2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwgTlVM TAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIiwgUEdD X1VTRVJTRVQsIENMSUVOVF9DT05OX09USEVSLAorCQkJZ2V0dGV4dF9ub29wKCJSYWlzZSBhIHdh cm5pbmcgd2hlbiByZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGFtYmlndW91cy4i KSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n LAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCiAJewogCQl7ImRlZmF1bHRfdHJh bnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwK IAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVmYXVsdCByZWFkLW9ubHkgc3RhdHVzIG9mIG5l dyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bv c3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwu Y29uZi5zYW1wbGUKaW5kZXggOWVjOWY5N2U5MjYuLmViZjZmMDE2ZDJkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC03MTMsNiArNzEzLDcg QEAKICNkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9mZgogI2RlZmF1bHRfdHJhbnNh Y3Rpb25fZGVmZXJyYWJsZSA9IG9mZgogI3Nlc3Npb25fcmVwbGljYXRpb25fcm9sZSA9ICdvcmln aW4nCisjc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBvZmYKICNzdGF0ZW1l bnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICN0cmFu c2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAj bG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9leHByLmgKaW5kZXggOWI0NmRmZDllY2MuLjBkNjRiMzAwZjhhIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9leHByLmgKQEAgLTE3LDYgKzE3LDcgQEAKIAogLyogR1VDIHBhcmFtZXRlcnMg Ki8KIGV4dGVybiBQR0RMTElNUE9SVCBib29sIFRyYW5zZm9ybV9udWxsX2VxdWFsczsKK2V4dGVy biBQR0RMTElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nOwog CiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBn c3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CmluZGV4IDZlOGI0 MTM0YzA2Li5lYzA3ZjFjYmFlOSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVj dGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3Jj L2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTM1NCw2ICszNTQsMzkg QEAgJCQ7CiBOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAogTk9USUNFOiAgcGxwZ3Nx bCB2YXJpYWJsZSBpcyAxMDAwCiBOT1RJQ0U6ICB2YXJpYWJsZSBpcyAxMDAwCistLSBhZ2FpbnQg d2l0aCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyhvbikKK1NFVCBzZXNzaW9u X3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK0RPICQkCis8PG15YmxvY2s+Pgor REVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFy MSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIHBscGdzcWxf c3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAg LS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1 YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2Fybmlu ZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXJpYWJsZSBpcyAl JywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIHRvIHByaW50IHBscGdz cWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNF ICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICBz ZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAorTk9USUNFOiAgcGxwZ3NxbCB2YXJpYWJsZSBpcyAxMDAw CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAicGxwZ3NxbF9zdl92YXIxIiBpcyBzaGFkb3dl ZAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAgICAgICAgXgorREVUQUlMOiAgU2Vzc2lvbiB2 YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJpYWJsZXMg YW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLgorUVVFUlk6ICBwbHBn c3FsX3N2X3ZhcjEKK05PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CiBEUk9QIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMTsKIC0tIHRoZSB2YWx1ZSBzaG91bGQgbm90IGJlIGNvcnJ1cHRlZAogQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdiB0ZXh0OwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCmluZGV4IDM5OGU3ZmUyYTdjLi5lZjcwNWE0Y2M4 NyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUuc3FsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3Zh cmlhYmxlLnNxbApAQCAtMjYwLDYgKzI2MCwzNSBAQCBCRUdJTgogRU5EOwogJCQ7CiAKKy0tIGFn YWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKG9uKQorCitTRVQg c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CisKK0RPICQkCis8PG15 YmxvY2s+PgorREVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBscGdz cWxfc3ZfdmFyMSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisg IHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdh cm5pbmcKKyAgLS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUg aXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhv dXQgd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXJp YWJsZSBpcyAlJywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIHRvIHBy aW50IHBscGdzcWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJ U0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CisK K1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKIERST1Ag VkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogCiAtLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBj b3JydXB0ZWQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKaW5kZXggN2U0ZDQxZGUzZTYuLjY2MDQyM2Q1ZGU4IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTI1OCwzICsxMjU4LDI1 IEBAIFNFTEVDVCB2YXIxOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7Cist LSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVBVEUgU0NIRU1B IHh4dGFiOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2YXIgaW50OworQ1JFQVRFIFRBQkxFIHB1 YmxpYy54eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMueHh0YWIgVkFMVUVTKDEp OworTEVUIHh4dGFiLmF2YXIgPSAyMDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8gcmFpc2Ugd2FybmluZywgc2hvdyAxCitTRUxF Q1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlh YmxlICJ4eHRhYi5hdmFyIiBpcyBzaGFkb3dlZAorTElORSAxOiBTRUxFQ1QgeHh0YWIuYXZhciBG Uk9NIHB1YmxpYy54eHRhYjsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNlc3Npb24gdmFy aWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFu ZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhdmFyIAorLS0tLS0t CisgICAgMQorKDEgcm93KQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgVE8gb2ZmOworRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVNQSB4eHRhYiBD QVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFi LmF2YXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBi M2YzZDZmMTZhMS4uMzkxYzEzNDlmZmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKQEAgLTg1MywzICs4NTMsMjMgQEAgQkVHSU47IERST1AgVkFSSUFCTEUg dmFyMTsgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIy OworCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVBVEUg U0NIRU1BIHh4dGFiOworCitDUkVBVEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CisKK0NSRUFU RSBUQUJMRSBwdWJsaWMueHh0YWIoYXZhciBpbnQpOworCitJTlNFUlQgSU5UTyBwdWJsaWMueHh0 YWIgVkFMVUVTKDEpOworCitMRVQgeHh0YWIuYXZhciA9IDIwOworCitTRVQgc2Vzc2lvbl92YXJp YWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CistLS0gc2hvdWxkIHRvIHJhaXNlIHdhcm5p bmcsIHNob3cgMQorU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CisKK1NFVCBz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKK0RST1AgVEFCTEUg cHVibGljLnh4dGFiOworRFJPUCBTQ0hFTUEgeHh0YWIgQ0FTQ0FERTsKLS0gCjIuNDUuMgoK --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0007-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20240801-0007-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf5914 RnJvbSAwZDM4MmZhNDEzNDI1YTM0MTEzZmZhNGY1YzE2MTY5ZjQ4M2I4YmUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTY6MDg6NTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3 LzIxXSBwbHBnc3FsIHRlc3RzCgotLS0KIHNyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICB8ICAgMyArLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUub3V0IHwgMzgyICsrKysrKysrKysrKysrKysrKwogc3JjL3BsL3BscGdzcWwvc3Jj L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9zcmMvc3FsL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5zcWwgICAgICB8IDI4OSArKysrKysrKysrKysrCiA0IGZpbGVzIGNo YW5nZWQsIDY3NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5v dXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vz c2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZp bGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKaW5kZXggNjNjYjk2ZmFlM2UuLmJiY2Fl MjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9 IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9j YWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9sIFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3Nx bF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3FsX3JlY29yZCBwbHBnc3FsX3NpbXBsZSBw bHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdz cWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJv cHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQogCiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tl eXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVzCiBUT09MU0RJUiA9ICQodG9wX3NyY2Rp cikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi42ZThiNDEzNGMwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMzgy IEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIgQVMgbnVtZXJpYzsKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CistLSBwYXNz aW5nIHBhcmFtZXRlcnMgdG8gRE8gYmxvY2sKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0Ug J3ZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyOworRU5EOwor JCQ7CitOT1RJQ0U6ICB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzIDMuMTQxNTkyNjUzNTg5 NzkKKy0tIHBhc3Npbmcgb3V0cHV0IGZyb20gRE8gYmxvY2s7CitETyAkJAorQkVHSU4KKyAgTEVU IHBscGdzcWxfc3ZfdmFyID0gMiAqIHBpKCk7CitFTkQKKyQkOworU0VMRUNUIHBscGdzcWxfc3Zf dmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKyAgcGlfbXVsdGlwbHlfMiAgIAorLS0tLS0tLS0tLS0t LS0tLS0tCisgNi4yODMxODUzMDcxNzk1OQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyOworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIy IEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB1cGRhdGVyX2Z1bmMoKQor UkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gcGxwZ3Nx bF9zdl92YXIxICsgMTAwOworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gcGxwZ3NxbF9zdl92YXIy ICsgMTAwMDAwMDAwMDAwOworICAtLSB2ZXJ5IGxvbmcgdmFsdWUKKyAgTEVUIHBscGdzcWxfc3Zf dmFyMyA9IHBscGdzcWxfc3ZfdmFyMyB8fCBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAw MCkpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9U SUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2YXIyID0g JScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFyMyA9ICUn LCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7Cist LSBleGVjdXRlIHVuZGVyIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3cml0ZXJfZnVuYygp OworIHdyaXRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVh ZGVyX2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAK Ky0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVw ZGF0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJf ZnVuYygpOworTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAw My4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRl cl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFTkQ7CistLSBleGVjdXRlIG91 dCBvZiB0cmFuc2FjdGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7Cisgd3JpdGVyX2Z1bmMgCist LS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9USUNF OiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAg bGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorIHJlYWRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CisgdXBkYXRlcl9mdW5jIAorLS0tLS0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2 YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitO T1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CisgcmVhZGVyX2Z1bmMgCistLS0tLS0tLS0t LS0tCisgCisoMSByb3cpCisKKy0tIGV4ZWN1dGUgaW5zaWRlIFBML3BnU1FMIGJsb2NrCitETyAk JAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5j KCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsK K0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2 NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorTk9USUNFOiAgdmFyMSA9 IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1ODk3OQorTk9USUNF OiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorLS0gcGxhbiBjYWNoZXMgc2hvdWxkIGJlIGNvcnJl Y3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxf c3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7CistLSBzaG91bGQgdG8g d29yayBhZ2FpbgorRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsKKyAgUEVS Rk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQRVJGT1JN IHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAg dmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIK K05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKK0RST1AgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKK0RST1Ag RlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOworRFJPUCBG VU5DVElPTiB1cGRhdGVyX2Z1bmM7CistLSBhbm90aGVyIGNoZWNrIG9mIGNvcnJlY3QgcGxhbiBj YWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50 OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUg diBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTsK KyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2OworICBM RVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltwbHBnc3FsX3N2 X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAw fQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3Fs X3N2X3ZhcjIgQVMgaW50W107CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAwfQor Tk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0RS T1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwg cGxwZ3NxbF9zdl92YXIyOworLS0gY2hlY2sgc2VjdXJlIGFjY2VzcworQ1JFQVRFIFJPTEUgcmVn cmVzc192YXJfb3duZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xl OworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfZXhlY19yb2xlOworR1JBTlQgQUxMIE9OIFNDSEVN QSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3Jv bGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVy X3JvbGU7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0xFVCBwbHBn c3FsX3N2X3ZhcjEgPSAxMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBw bHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklO RVI7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19y b2xlOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHBscGdzcWxfc3ZfdmFyMQor Q09OVEVYVDogIFNRTCBleHByZXNzaW9uICJwbHBnc3FsX3N2X3ZhcjEiCitQTC9wZ1NRTCBmdW5j dGlvbiB2YXJfcmVhZF9mdW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxU OworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBW QVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitTRVQg Uk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOworTk9USUNFOiAgMTAKKyB2YXJf cmVhZF9mdW5jIAorLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfZXhlY19yb2xlOworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgY3Jhc2gKK1NF TEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjogIGNvbHVtbiAicGxwZ3NxbF9zdl92YXIxIiBk b2VzIG5vdCBleGlzdAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAgICAgICAgXgorUVVFUlk6 ICBwbHBnc3FsX3N2X3ZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9m dW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBGVU5DVElP TiB2YXJfcmVhZF9mdW5jOworUkVWT0tFIEFMTCBPTiBTQ0hFTUEgcHVibGljIEZST00gcmVncmVz c192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4 ZWNfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJl Z3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsK Ky0tIHJldHVybnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBpbmNfdmFyX2ludChpbnQpCitS RVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IENPQUxFU0NF KHBscGdzcWxfc3ZfdmFyMSArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjE7CitF TkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfaW50KDEpOworIGluY192 YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBp bmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg MgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7CisgaW5jX3Zhcl9pbnQgCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfaW50KDEp IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0t LQorICAgICAgICAgICA0CisgICAgICAgICAgIDUKKyAgICAgICAgICAgNgorICAgICAgICAgICA3 CisgICAgICAgICAgIDgKKyAgICAgICAgICAgOQorICAgICAgICAgIDEwCisgICAgICAgICAgMTEK KyAgICAgICAgICAxMgorICAgICAgICAgIDEzCisoMTAgcm93cykKKworQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMiBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51bWVyaWMpCitSRVRVUk5T IGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IENPQUxFU0NFKHBscGdz cWxfc3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjI7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9u dW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIGluY192 YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDIK KygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEu MCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0t LS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAgICA2CisgICAgICAgICAg IDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAgMTAKKyAgICAgICAgICAx MQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQorCitEUk9QIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworRFJPUCBGVU5DVElPTiBpbmNfdmFy X2ludDsKK0RST1AgRlVOQ1RJT04gaW5jX3Zhcl9udW07CistLSBwbHBnc3FsIHZhcmlhYmxlcyBh cmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdz cWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisg IHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0UgTk9U SUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOworCisg IC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUnLCBt eWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElD RSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAg c2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAKK05PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAw MAorTk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjE7CistLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBwbHBnc3FsX3N2X3YgPSAnYWJjJzsKK0NSRUFURSBG VU5DVElPTiBmZnVuYygpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBnZnVu YyhwbHBnc3FsX3N2X3YpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEZVTkNU SU9OIGdmdW5jKHQgdGV4dCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdz cWxfc3ZfdiA9ICdCT09NISc7CisgIFJFVFVSTiB0OworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKK3NlbGVjdCBmZnVuYygpOworIGZmdW5jIAorLS0tLS0tLQorIGFiYworKDEgcm93KQorCitE Uk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworRFJPUCBW QVJJQUJMRSBwbHBnc3FsX3N2X3Y7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVz b24uYnVpbGQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKaW5kZXggM2RkNzM0Yjc3 NmIuLjM5MDVjMGI2ZDQ1IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVp bGQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCkBAIC04OCw2ICs4OCw3IEBA IHRlc3RzICs9IHsKICAgICAgICdwbHBnc3FsX3RyYXAnLAogICAgICAgJ3BscGdzcWxfdHJpZ2dl cicsCiAgICAgICAncGxwZ3NxbF92YXJwcm9wcycsCisgICAgICAncGxwZ3NxbF9zZXNzaW9uX3Zh cmlhYmxlJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3Jj L3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4zOThlN2ZlMmE3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBn c3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDI4OSBA QAorLS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CisKKy0tIHBh c3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7 CiskJDsKKworLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgor ICBMRVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CisKK1NFTEVDVCBwbHBn c3FsX3N2X3ZhciBBUyAicGlfbXVsdGlwbHlfMiI7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXI7CisKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBB UyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBn c3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3Zh cjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9z dl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEw MDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2 YXIyID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFy MyA9ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdz cWw7CisKKy0tIGV4ZWN1dGUgdW5kZXIgdHJhbnNhY3Rpb24KK0JFR0lOOworU0VMRUNUIHdyaXRl cl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsK K1NFTEVDVCByZWFkZXJfZnVuYygpOworRU5EOworCistLSBleGVjdXRlIG91dCBvZiB0cmFuc2Fj dGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVD VCB1cGRhdGVyX2Z1bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworCistLSBleGVjdXRlIGlu c2lkZSBQTC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMo KTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOwor ICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKKworLS0gcGxhbiBjYWNoZXMgc2hv dWxkIGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIg QVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hhcjsK KworLS0gc2hvdWxkIHRvIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRl cl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1 bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKKwor RFJPUCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVyX2Z1bmM7CitE Uk9QIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKworLS0gYW5vdGhlciBjaGVjayBvZiBjb3JyZWN0 IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx IEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50W107CisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQK K0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92 YXIxID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUn LCB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltw bHBnc3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFy MjsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKKwor RFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKKworQ1JFQVRF IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIyIEFTIGludFtdOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisKK0RST1AgRlVOQ1RJ T04gdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3Fs X3N2X3ZhcjI7CisKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf dmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NS RUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworR1JBTlQgQUxMIE9OIFNDSEVNQSBw dWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUs IHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJf cm9sZTsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2 YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNF ICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklU WSBERUZJTkVSOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl9leGVjX3JvbGU7CisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyX3JlYWRfZnVu YygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9v d25lcl9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJP TEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2 YXJfcmVhZF9mdW5jKCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwor CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CisKKy0tIHNob3VsZCB0byBmYWlsLCBidXQgbm90IGNyYXNoCitTRUxFQ1QgdmFyX3JlYWRf ZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmM7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFyX293 bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7 CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworLS0g cmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFT IGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVNDRShw bHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIGluY192YXJfaW50KDEpOworU0VMRUNU IGluY192YXJfaW50KDEpOworU0VMRUNUIGluY192YXJfaW50KDEpOworCitTRUxFQ1QgaW5jX3Zh cl9pbnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK KworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JFVFVS TlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0UocGxw Z3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VMRUNU IGluY192YXJfbnVtKDEuMCk7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKworU0VMRUNUIGlu Y192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0RST1AgRlVOQ1RJT04gaW5j X3Zhcl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworCistLSBwbHBnc3FsIHZhcmlh YmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworCitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xB UkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAx MDA7CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOworICBS QUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3Zh cjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUg aXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJ U0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOworCistLSB0aGUgdmFsdWUgc2hvdWxkIG5v dCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBw bHBnc3FsX3N2X3YgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVSTlMg dGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBGVU5DVElPTiBnZnVuYyh0IHRleHQpCitSRVRV Uk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3YgPSAnQk9PTSEnOworICBS RVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NlbGVjdCBmZnVuYygpOwor CitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworCitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKLS0gCjIuNDUuMgoK --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0006-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20240801-0006-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf5h15 RnJvbSBiNDM4OWNkZDAxZjNjZjM5ZWRiYzMxZDFhMWI0ZTU3OTZjNWZhNTcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTg6MjMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2 LzIxXSBtZW1vcnkgY2xlYW5pbmcgYWZ0ZXIgRFJPUCBWQVJJQUJMRQoKQWNjZXB0IG9mIHNpbnZh bCBtZXNzYWdlIGludmFsaWRhdGVzIGVudHJpZXMgaW4gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZS4g VGhlc2UgZW50cmllcwphcmUgdmFsaWRhdGVkIGJlZm9yZSBhbnkgcmVhZCBvciB3cml0ZSBvcGVy YXRpb25zIG9uIHNlc3Npb24gdmFyaWFibGVzLiBXaGVuIHRoZSBlbnRyeQpjYW5ub3QgYmUgdmFs aWRhdGVkLCB0aGVuIGl0IGlzIHJlbW92ZWQuIFRoZSByZW1vdmluZyBjYW4gYmUgZGVsYXllZCB3 aGVuIHZhcmlhYmxlCmlzIGRyb3BwZWQgaW5zaWRlIGN1cnJlbnQgdHJhbnNhY3Rpb24uIFRoaXMg dHJhbnNhY3Rpb24gY2FuIGJlIGFib3J0ZWQgYW5kIGluIHRoaXMgY2FzZQp3ZSB3YW50IHRvIHBy ZXNlcnZlIGNvbnRlbnQgb2YgdGhlIHZhcmlhYmxlLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jICAgICAgIHwgMTczICsrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDMgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgMTA5ICsrKysrKysrKwogc3JjL3Rlc3Qv aXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSAgICAgICAgIHwgICAxICsKIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA1MCArKysrCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAyMTkgKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAxMjEg KysrKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCA2ODIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24v c3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCmlu ZGV4IGQxMTlhYjkwOWRjLi4yZDNlZDg2MDdhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3Qu YwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfZW51bS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5j bHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Rh YmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21t b24vcGdfcHJuZy5oIgpAQCAtMjMwNSw2ICsyMzA2LDkgQEAgQ29tbWl0VHJhbnNhY3Rpb24odm9p ZCkKIAkgKi8KIAlzbWdyRG9QZW5kaW5nU3luY3ModHJ1ZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsK IAorCS8qIFJlbW92ZSB2YWx1ZXMgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIG1l bW9yeSAqLworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoKTsKKwogCS8qIGNsb3NlIGxh cmdlIG9iamVjdHMgYmVmb3JlIGxvd2VyLWxldmVsIGNsZWFudXAgKi8KIAlBdEVPWGFjdF9MYXJn ZU9iamVjdCh0cnVlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDFjNzMxODFj M2RhLi4wYjIxMjA0YmM0NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMjIsNiAr MjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisj aW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1p bi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVp bHRpbnMuaCIKQEAgLTI1NCw0ICsyNTUsNyBAQCBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkK IAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwkvKiBEbyB0aGUgbmVjZXNzYXJ5IGNsZWFudXAgaWYgbmVlZGVkIGluIGxvY2Fs IG1lbW9yeSAqLworCVNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vzcyh2YXJpZCk7CiB9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggOWU1YTRhZDQ1ZGUuLmJk NjM5ZDBiNDgzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0x NCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNj ZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJs ZVJlY2VpdmVyLmgiCkBAIC02Nyw2ICs2OCwxNCBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVE YXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBk b21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCS8qCisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5z YWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5zYWN0aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2 YXJpYWJsZSBpZiBhbnkuICBXZSBuZWVkIHRoaXMgaW5mb3JtYXRpb24gdG8gYXZvaWQgZnJlZWlu ZyBtZW1vcnkgZm9yCisJICogdmFyaWFibGUgZHJvcHBlZCBieSB0aGUgbG9jYWwgYmFja2VuZCB0 aGF0IG1heSBiZSBldmVudHVhbGx5CisJICogcm9sbGJhY2tlZC4KKwkgKi8KKwlMb2NhbFRyYW5z YWN0aW9uSWQgZHJvcF9seGlkOworCiAJLyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVz Y3JpcHRpb24gY2FuIGJlIG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZSBhCiAJICogc2ludmFsIG1l c3NhZ2UuICBXZSB0aGVuIGhhdmUgdG8gY2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGls bApAQCAtODMsNiArOTIsMTkgQEAgc3RhdGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyog aGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgKi8KIAogc3RhdGljIE1lbW9yeUNvbnRl eHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CiAKKy8qIHRydWUgYWZ0ZXIgYWNjZXB0 ZWQgc2ludmFsIG1lc3NhZ2UgKi8KK3N0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxz ZTsKKworLyoKKyAqIFRoZSBjb250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1v dmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CisgKiBpcyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRo ZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVuIHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQsCisgKiB3 ZSBjYW5ub3QgZG8gaXQsIGJlY2F1c2Ugd2UgbG9zdCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSBjYXRh bG9nLiBTbyB3ZQorICogdHJ5IHRvIGRvIGl0IGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIGJlZm9y ZSBhbnkgZ2V0IG9yIHNldCBvZiBhbnkgc2Vzc2lvbgorICogdmFyaWFibGUuIFdlIGRvbid0IHdh bnQgdG8gcmVwZWF0IHRoaXMgb3BlbmluZyBjbGVhbmluZyBpbiB0cmFuc2FjdGlvbiwKKyAqIFNv IHdlIHN0b3JlIHRoZSBpZCBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlcmUgb3BlbmluZyB2YWxpZGF0 aW9uIHdhcyBkb25lLgorICovCitzdGF0aWMgTG9jYWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9s eGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0 aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTE0LDYgKzEz Niw0MCBAQCBwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlk LCB1aW50MzIgaGFzaHZhbHVlKQogCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZh bHVlID09IGhhc2h2YWx1ZSkKIAkJewogCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKworCQkJ bmVlZHNfdmFsaWRhdGlvbiA9IHRydWU7CisJCX0KKwl9Cit9CisKKy8qCisgKiBIYW5kbGUgdGhl IGxvY2FsIG1lbW9yeSBjbGVhbnVwIGZvciBhIERST1AgVkFSSUFCTEUgY29tbWFuZC4KKyAqCisg KiBDYWxsZXIgc2hvdWxkIHRha2UgY2FyZSBvZiByZW1vdmluZyB0aGUgcGdfdmFyaWFibGUgZW50 cnkgZmlyc3QuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQg dmFyaWQpCit7CisJQXNzZXJ0KExvY2FsVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT52eGlk Lmx4aWQpKTsKKworCWlmIChzZXNzaW9udmFycykKKwl7CisJCWJvb2wJCWZvdW5kOworCQlTVmFy aWFibGUJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQs CisJCQkJCQkJCQkJCQkgICBIQVNIX0ZJTkQsICZmb3VuZCk7CisKKwkJaWYgKGZvdW5kKQorCQl7 CisJCQkvKgorCQkJICogU2F2ZSB0aGUgY3VycmVudCB0b3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rp b24gaWQgdG8gbWFrZSBzdXJlIHdlCisJCQkgKiBkb24ndCBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0 aGUgbG9jYWwgdmFyaWFibGUgc3RvcmFnZSBpbgorCQkJICogdmFsaWRhdGVfYWxsX3Nlc3Npb25f dmFyaWFibGVzLCBhcyB0aGUgRFJPUCBWQVJJQUJMRSB3aWxsIHNlbmQKKwkJCSAqIGFuIGludmFs aWRhdGlvbiBtZXNzYWdlLgorCQkJICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJ c3Zhci0+ZHJvcF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisKKwkJCW5lZWRzX3ZhbGlkYXRp b24gPSB0cnVlOwogCQl9CiAJfQogfQpAQCAtMTY3LDYgKzIyMyw4MyBAQCBpc19zZXNzaW9uX3Zh cmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisg KiBJdCBjaGVja3MgYWxsIHBvc3NpYmx5IGludmFsaWQgZW50cmllcyBhZ2FpbnN0IHRoZSBzeXN0 ZW0gY2F0YWxvZy4KKyAqIER1cmluZyB0aGlzIHZhbGlkYXRpb24sIHRoZSBzeXN0ZW0gY2FjaGUg Y2FuIGJlIGludmFsaWRhdGVkLCBhbmQgdGhlCisgKiBzb21lIHNpbnZhbCBtZXNzYWdlIGNhbiBi ZSBhY2NlcHRlZC4gVGhpcyByb3V0aW5lIGRvZXNuJ3QgZW5zdXJlCisgKiBhbGwgbGl2aW5nIGVu dHJpZXMgb2Ygc2Vzc2lvbnZhcnMgd2lsbCBoYXZlIGlzX3ZhbGlkIGZsYWcsIGJ1dCBpdCBlbnN1 cmVzCisgKiB0aGF0IGFsbCBlbnRyaWVzIGFyZSBjaGVja2VkIG9uY2UuCisgKgorICogVGhpcyBy b3V0aW5lIGlzIGNhbGxlZCBiZWZvcmUgYW55IHVzYWdlIChyZWFkLCB3cml0ZSwgZGVidWcpIG9m IHNlc3Npb24KKyAqIHZhcmlhYmxlcyAob25seSBvbmNlIGluIGEgdHJhbnNhY3Rpb24pIG9yIGF0 IGEgdHJhbnNhY3Rpb24gZW5kLiAgQXQgdGhlCisgKiBlbmQgb2YgdHJhbnNhY3Rpb24gKHNwZWNp ZmllZCBieSB0cnVlIG9mIGFyZ3VtZW50IGF0RU9YKSB3ZSBjYW4KKyAqIHRocm93IGFsbCBpbnZh bGlkIHZhcmlhYmxlcy4gSW5zaWRlIHRoZSB0cmFuc2FjdGlvbiAoYXRFT1ggaXMgZmFsc2UpIHdl IHdhbnQKKyAqIHRvIHBvc3Rwb25lIGNsZWFuaW5nIG9mIHZhcmlhYmxlcyBkcm9wcGVkIGluc2lk ZSB0aGUgY3VycmVudCB0cmFuc2FjdGlvbi4KKyAqIFRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIGNh biBiZSBhYm9ydGVkLCB0aGUgcmVsYXRlZCBkcm9wIGNvbW1hbmQgd2lsbCBiZQorICogYWJvcnRl ZCB0b28uIEluIHRoaXMgY2FzZSB3ZSBkb24ndCB3YW50IGxvc2UgdGhlIGNvbnRlbnQgb2YgdGhl IHZhcmlhYmxlLAorICogYW5kIHRoZXJlZm9yZSB3ZSBuZWVkIHRvIGhvbGQgdGhlIGNvbnRlbnQg b2YgdGhlIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZQorICogdW50aWwgdGhlIGVuZCBvZiB0aGUg dHJhbnNhY3Rpb24gKHdoZXJlIHRoZSB2YXJpYWJsZSB3YXMgZHJvcHBlZCkuCisgKi8KK3N0YXRp YyB2b2lkCityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQorewor CUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwkvKgorCSAqIFRo ZSB2YWxpZGF0aW9uIHJlcXVpcmVzIGFuIGFjY2VzcyB0byBzeXN0ZW0gY2F0YWxvZywgYW5kIHRo ZW4gdGhlCisJICogc2Vzc2lvbiBzdGF0ZSBzaG91bGQgYmUgImluIHRyYW5zYWN0aW9uIi4KKwkg Ki8KKwlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCisJaWYgKCFuZWVkc192YWxpZGF0 aW9uIHx8ICFzZXNzaW9udmFycykKKwkJcmV0dXJuOworCisJLyoKKwkgKiBSZXNldCB0aGlzIGZs YWcgaGVyZSwgYmVmb3JlIHdlIHN0YXJ0IHRoZSB2YWxpZGF0aW9uLiBJdCBjYW4gYmUgc2V0IHRv CisJICogb24gYnkgaW5jb21taW5nIHNpbnZhbCBtZXNzYWdlLgorCSAqLworCW5lZWRzX3ZhbGlk YXRpb24gPSBmYWxzZTsKKworCWVsb2coREVCVUcxLCAiZWZmZWN0aXZlIGNhbGwgb2YgdmFsaWRh dGVfYWxsX3Nlc3Npb25fdmFyaWFibGVzKCkiKTsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywg c2Vzc2lvbnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJj aCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJ CWlmICghYXRFT1ggJiYgc3Zhci0+ZHJvcF9seGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJ eworCQkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJ CQlpZiAoIWlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCisJCQl7CisJCQkJT2lkCQkJ dmFyaWQgPSBzdmFyLT52YXJpZDsKKworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShz dmFyKTsKKwkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JFTU9WRSwg TlVMTCk7CisJCQkJc3ZhciA9IE5VTEw7CisJCQl9CisJCQllbHNlCisJCQkJc3Zhci0+aXNfdmFs aWQgPSB0cnVlOworCQl9CisJfQorfQorCisvKgorICogUmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVk IHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5LgorICovCit2b2lkCitBdFByZUVPWGFjdF9T ZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogV2UgY2Fubm90IHRvIGRvIGl0IHdoZW4gdHJh bnNhY3Rpb24gaXMgYWJvcnRlZCAqLworCUFzc2VydChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisK KwlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKK30KKwogLyoKICAqIElu aXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KQEAgLTE5Niw2ICszMjks OCBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwlzdmFyLT5kcm9wX2x4aWQg PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+ dmFsdWUgPSAoRGF0dW0pIDA7CiAKQEAgLTMxOSwyMiArNDU0LDQ0IEBAIGdldF9zZXNzaW9uX3Zh cmlhYmxlKE9pZCB2YXJpZCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZh cnNfaGFzaHRhYmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRy YW5zYWN0aW9uSWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJ eworCQkvKiBUaHJvdyBpbnZhbGlkIGVudHJpZXMsIHNraXAgZW50cmllcyBkcm9wcGVkIGJ5IHRo aXMgdHJhbnNhY3Rpb24uICovCisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGZh bHNlKTsKKworCQkvKiBEb24ndCByZXBlYXQgaXQgaW4gdGhpcyB0cmFuc2FjdGlvbiAqLworCQl2 YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKwogCXN2YXIgPSAoU1Zhcmlh YmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAogCQkJCQkJCQkgICBIQVNIX0VO VEVSLCAmZm91bmQpOwogCiAJaWYgKGZvdW5kKQogCXsKKwkJLyoKKwkJICogVGhlIHNlc3Npb24g dmFyaWFibGUgY2FuIGJlIGRyb3BwZWQgYnkgRFJPUCBWQVJJQUJMRSBjb21tYW5kLAorCQkgKiBi dXQgZWZmZWN0IG9mIHRoaXMgY29tbWFuZCBjYW4gYmUgcmV2ZXJ0ZWQgYnkgUk9MTEJBQ0sgdG8g c2F2ZXBvaW50LAorCQkgKiBzbyB3ZSBjYW4gd29yayBoZXJlIHdpdGggcmVhZGFibGUgdmFsdWUg aW4gdmFyaWFibGUgbWFya2VkIGFzIGludmFsaWQuCisJCSAqLwogCQlpZiAoIXN2YXItPmlzX3Zh bGlkKQogCQl7CiAJCQkvKgogCQkJICogSWYgdGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBtZXNz YWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3RpbGwgYmUKIAkJCSAqIHZhbGlkLCBidXQgd2UgaGF2 ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqCisJCQkgKiBJZiB3ZSBh Y2Nlc3MgdGhpcyBzZXNzaW9uIHZhcmlhYmxlLCB0aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUK KwkJCSAqIHBvc3NpYmx5IHZhbGlkYXRlZC4gVGhlIG9pZCBzaG91bGQgYmUgdmFsaWQsIGJlY2F1 c2UgcmVsYXRlZAorCQkJICogc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NrZWQgYWxyZWFkeSwgYW5k IHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzCisJCQkgKiBzaG91bGQgdG8gcmVtb3Zl IHZhcmlhYmxlcyBkcm9wcGVkIGJ5IG90aGVyIHRyYW5zYWN0aW9ucy4KIAkJCSAqLwogCQkJaWYg KGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCiAJCQkJc3Zhci0+aXNfdmFsaWQgPSB0 cnVlOwogCQkJZWxzZQotCQkJCS8qIGlmIHRoZSB2YWx1ZSBjYW5ub3QgYmUgdmFsaWRhdGVkLCB3 ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8KLQkJCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUo c3Zhcik7CisJCQl7CisJCQkJLyogV2UgZG9uJ3QgZXhwZWN0IGl0ICovCisJCQkJZWxvZyhFUlJP UiwgInVuZXhwZWN0ZWQgc3RhdGUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKwkJ CX0KIAkJfQogCX0KIAllbHNlCkBAIC0zOTUsNiArNTUyLDE2IEBAIFNldFNlc3Npb25WYXJpYWJs ZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKIAlpZiAoIXNlc3Npb252YXJz KQogCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9s eGlkID09IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0g TXlQcm9jLT52eGlkLmx4aWQpCisJeworCQkvKiBUaHJvdyBpbnZhbGlkIGVudHJpZXMsIHNraXAg ZW50cmllcyBkcm9wcGVkIGJ5IHRoaXMgdHJhbnNhY3Rpb24uICovCisJCXJlbW92ZV9pbnZhbGlk X3Nlc3Npb25fdmFyaWFibGVzKGZhbHNlKTsKKworCQkvKiBEb24ndCByZXBlYXQgaXQgaW4gdGhp cyB0cmFuc2FjdGlvbiAqLworCQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOwor CX0KKwogCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlk LAogCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOwogCkBAIC01OTQsNiArNzYxLDggQEAg cGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAogCWVsb2coREVCVUcxLCAi cGdfc2Vzc2lvbl92YXJpYWJsZXMgc3RhcnQiKTsKIAorCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25f dmFyaWFibGVzKGZhbHNlKTsKKwogCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCAwKTsKIAog CWlmIChzZXNzaW9udmFycykKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApp bmRleCA0NDNhZmJhZmQ0YS4uMGQ0YzYzNWFlN2IgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgKQEAgLTIxLDYgKzIxLDkgQEAKICNpbmNsdWRlICJ0Y29wL2NtZHRhZy5o IgogI2luY2x1ZGUgInV0aWxzL3F1ZXJ5ZW52aXJvbm1lbnQuaCIKIAorZXh0ZXJuIHZvaWQgU2Vz c2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCk7CitleHRlcm4gdm9pZCBBdFBy ZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKHZvaWQpOworCiBleHRlcm4gdm9pZCBTZXRTZXNzaW9u VmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIHZv aWQgU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lkIHZhcmlkLCBEYXR1bSB2 YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJpYWJsZShPaWQg dmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRp b24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjI5NjhjY2UwODk1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv aXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMTA5IEBA CitQYXJzZWQgdGVzdCBzcGVjIHdpdGggNCBzZXNzaW9ucworCitzdGFydGluZyBwZXJtdXRhdGlv bjogbGV0IHZhbCBkcm9wIHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAg dmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAg ZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitFUlJP UjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9u OiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsK K3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisK K3N0ZXAgczE6IEJFR0lOOworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2 YWw6IFNFTEVDVCBteXZhcjsKK0VSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QK K3N0ZXAgc3IxOiBST0xMQkFDSzsKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgZGJn IGRyb3AgY3JlYXRlIGRiZyB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVw IHZhbDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVw IGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFi bGVzKCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1Ymxp Y3xteXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZh cjsKK3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK3N0ZXAgZGJn OiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKK3NjaGVtYXxuYW1lfHJlbW92ZWQKKy0tLS0tLSstLS0tKy0tLS0tLS0KKygwIHJvd3MpCisK K3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KKyAgICAgCisoMSByb3cpCisK Kworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2 YWwgc3IxCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBt eXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBzMTogQkVHSU47Citz dGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFy aWFibGVzKCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1 YmxpY3xteXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBt eXZhcjsKK3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK3N0ZXAg ZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0tLQorcHVibGlj fG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFy CistLS0tLQorICAgICAKKygxIHJvdykKKworc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFydGlu ZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBp bnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0ZXAgY3JlYXRlMzogQ1JFQVRFIFZBUklBQkxFIG15 dmFyMyBBUyB0ZXh0Oworc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rlc3QnOworc3RlcCBzMzog QkVHSU47CitzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsKK3N0 ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKK3N0ZXAgZHJvcDQ6IERST1AgVkFSSUFCTEUg bXl2YXI0Oworc3RlcCBkcm9wMzogRFJPUCBWQVJJQUJMRSBteXZhcjM7CitzdGVwIGludmFsMzog U0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19mb3JlaWduX3RhYmxlOworP2NvbHVtbj8KKy0t LS0tLS0tCit0ICAgICAgIAorKDEgcm93KQorCitzdGVwIGRpc2NhcmQ6IERJU0NBUkQgVkFSSUFC TEVTOworc3RlcCBzYzM6IENPTU1JVDsKK3N0ZXAgc3RhdGU6IFNFTEVDVCB2YXJuYW1lIEZST00g cGdfdmFyaWFibGU7Cit2YXJuYW1lCistLS0tLS0tCitteXZhciAgCisoMSByb3cpCisKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9zcmMvdGVzdC9p c29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IDZkYTk4Y2ZmYWNhLi4wNDZiYjFhNDk3 ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQorKysg Yi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCkBAIC0xMTcsMyArMTE3LDQg 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 cy5vdXQKaW5kZXggMzhlMDM2MDE1NmYuLjdlNGQ0MWRlM2U2IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTAzOSwzICsxMDM5LDIy MiBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwogLS0tLS0t LQogICAgICAwCiAoMSByb3cpCisKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1v dmVkIGZyb20gbWVtb3J5CistLSBhdCB0aGUgZW5kIG9mIHRyYW5zYWN0aW9uIG9yIGJlZm9yZSBu ZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJpYWJsZSBpbiBuZXh0IHRyYW5zYWN0aW9u LgorTEVUIHZhcjEgPSAnQWhvaic7CitTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwg Y2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8ICAgICAgdHlw bmFtZSAgICAgIHwgY2FuX3NlbGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdmFyMSB8IGNoYXJhY3RlciB2YXJ5 aW5nIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gdGhlIGNvbnRlbnQg b2YgdmFsdWUgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIHZhcmlhYmxlIGlzIGRyb3BwZWQKKy0t IGJ5IGFib3J0ZWQgdHJhbnNhY3Rpb24KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7 CitMRVQgdmFyMSA9ICdBaG9qJzsKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hv dWxkIGZhaWwKK1NFTEVDVCB2YXIxOworRVJST1I6ICBjb2x1bW4gInZhcjEiIGRvZXMgbm90IGV4 aXN0CitMSU5FIDE6IFNFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgXgorUk9MTEJBQ0s7Cist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBBaG9qCisoMSBy b3cpCisKKy0tIGFub3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNob3VsZCBiZSBv aywgcmVzdWx0IDEwMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJv dykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2ssIHJlc3VsdCAnQWhvaicKK1NFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyBBaG9qCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOwor ICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxF Q1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCisgIFNFTEVDVCBuYW1l LCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKKyBuYW1lIHwgdHlwbmFtZSB8IGNhbl9zZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdmFyMSB8IGludGVnZXIgfCB0 ICAgICAgICAgIHwgdAorKDEgcm93KQorCisgIERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsK Ky0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCisgIFNFTEVDVCBuYW1lLCB0 eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKKyBuYW1lIHwgdHlwbmFtZSB8IGNhbl9zZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdmFyMSB8IGludGVnZXIgfCB0ICAg ICAgICAgIHwgdAorKDEgcm93KQorCisgIERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0t IHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludDsKK0xFVCB2YXIxID0g MTA7CitMRVQgdmFyMiA9IDA7CitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklB QkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lv biB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93 KQorCisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUg dmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKwor ICBST0xMQkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7 CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQT0lOVCBz MTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGlu ZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0t LQorICAgIDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOwor ICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAg ICAwCisoMSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsK KyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMx OworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5n IGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0t CisgICAgMAorKDEgcm93KQorCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xlYW5pbmcg YnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZh cjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIC0tIGZv cmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxF Q1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitDT01NSVQ7CistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cp CisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBEUk9QIFZBUklBQkxF IHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitC RUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJM RSB2YXIxLCB2YXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CmluZGV4IGQ0MTY1ZjM0ZmZhLi5iM2YzZDZmMTZhMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtNzMyLDMgKzczMiwxMjQgQEAgRElTQ0FSRCBWQVJJ QUJMRVM7CiAKIC0tIHNob3VsZCBiZSB6ZXJvIGFnYWluCiBTRUxFQ1QgY291bnQoKikgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworCistLSBkcm9wcGVkIHZhcmlhYmxlcyBzaG91bGQgYmUg cmVtb3ZlZCBmcm9tIG1lbW9yeQorLS0gYXQgdGhlIGVuZCBvZiB0cmFuc2FjdGlvbiBvciBiZWZv cmUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24gdmFyaWFibGUgaW4gbmV4dCB0cmFuc2Fj dGlvbi4KKworTEVUIHZhcjEgPSAnQWhvaic7CitTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3Nl bGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitEUk9QIFZBUklB QkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworCistLSB0aGUgY29udGVudCBvZiB2YWx1ZSBzaG91bGQgYmUg cHJlc2VydmVkIHdoZW4gdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYWJvcnRlZCB0cmFuc2Fj dGlvbgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0Fob2on OworQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1Qg dmFyMTsKKworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0t IGFub3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNob3VsZCBiZSBvaywgcmVzdWx0 IDEwMAorU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaywgcmVzdWx0ICdB aG9qJworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJl IHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JF R0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOwor ICBTRUxFQ1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91 cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7 CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50OworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgIFNFTEVDVCBuYW1lLCB0 eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybwor U0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50OworTEVUIHZh cjEgPSAxMDsKK0xFVCB2YXIyID0gMDsKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1Ag VkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBz ZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FW RVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworICBST0xM QkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKK0JF R0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2Ug Y2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2 YXIyOworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxF IHZhcjE7CisgIFNFTEVDVCB2YXIyOworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCB2YXIxOworCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7 CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJs ZQorICBTRUxFQ1QgdmFyMjsKKworICBTQVZFUE9JTlQgczI7CisgIC0tIGZvcmNlIGNsZWFuaW5n IGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyAg Uk9MTEJBQ0sgVE8gczE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIg c2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBv aworU0VMRUNUIHZhcjE7CisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lO OyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFCTEUgdmFy MTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKKworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOwot LSAKMi40NS4yCgo= --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0005-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20240801-0005-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf5o16 RnJvbSBjMzMxNDZlMDYwNzlmNzY0ODA4ZWViYjExZTdiMjgyY2RlYmRlYWQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA1 LzIxXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYyICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2FjLi42MWI5NjdmOWM5YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJk LnNnbWwKQEAgLTIxLDcgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVm c3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1ESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5D RVMgfCBURU1QT1JBUlkgfCBURU1QIH0KK0RJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNFUVVFTkNF UyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC02Niw2ICs2NiwxNiBAQCBESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBT RVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIH0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+VkFSSUFC TEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg UmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUK KyAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+VEVNUE9S QVJZPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5URU1QPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CkBAIC05Myw2ICsxMDMsNyBAQCBTRUxFQ1QgcGdfYWR2aXNvcnlfdW5sb2NrX2FsbCgp OwogRElTQ0FSRCBQTEFOUzsKIERJU0NBUkQgVEVNUDsKIERJU0NBUkQgU0VRVUVOQ0VTOworRElT Q0FSRCBWQVJJQUJMRVM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k aXNjYXJkLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKaW5kZXggOTJkOTgzYWM3 NDguLmQwNmViYWJhNmY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJk LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCkBAIC0xOCw2ICsxOCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kaXNjYXJk LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgpAQCAtNDgsNiArNDks MTAgQEAgRGlzY2FyZENvbW1hbmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkK IAkJCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJCQlicmVhazsKIAorCQljYXNlIERJU0NB UkRfVkFSSUFCTEVTOgorCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBESVNDQVJEIHRhcmdldDog JWQiLCBzdG10LT50YXJnZXQpOwogCX0KQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChib29s IGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCBiMWQ0MTRjYTk2 Ni4uOWU1YTRhZDQ1ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTk0LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywg aW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3Zhcmlh YmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2Vy dChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lv bnZhcnMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBhbiBpbnZh bGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQorCSAqIGRl c3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3BlY2lmaWVk LCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjc0LDMgKzY4MCwyMyBAQCBw Z19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChEYXR1bSkg MDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBvZiBhbGwg c2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFueSBsaXN0 IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNlZCBieSBE SVNDQVJEIFZBUklBQkxFUyAoYW5kIERJU0NBUkQgQUxMKSBjb21tYW5kLgorICovCit2b2lkCitS ZXNldFNlc3Npb25WYXJpYWJsZXModm9pZCkKK3sKKwkvKiBEZXN0cm95IGhhc2ggdGFibGUgYW5k IHJlc2V0IHJlbGF0ZWQgbWVtb3J5IGNvbnRleHQgKi8KKwlpZiAoc2Vzc2lvbnZhcnMpCisJewor CQloYXNoX2Rlc3Ryb3koc2Vzc2lvbnZhcnMpOworCQlzZXNzaW9udmFycyA9IE5VTEw7CisJfQor CisJLyogUmVsZWFzZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IHNlc3Npb24gdmFyaWFibGVzICovCisJ aWYgKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgIT0gTlVMTCkKKwkJTWVtb3J5Q29udGV4dFJlc2V0 KFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNTc4NzQwMmQzODcu Ljk0OTJlYzdhNmIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTIwNzQsNyArMjA3NCwxMyBAQCBEaXNjYXJk U3RtdDoKIAkJCQkJbi0+dGFyZ2V0ID0gRElTQ0FSRF9TRVFVRU5DRVM7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9CisJCQl8IERJU0NBUkQgVkFSSUFCTEVTCisJCQkJeworCQkJCQlEaXNj YXJkU3RtdCAqbiA9IG1ha2VOb2RlKERpc2NhcmRTdG10KTsKIAorCQkJCQluLT50YXJnZXQgPSBE SVNDQVJEX1ZBUklBQkxFUzsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJOwogCiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMKaW5kZXggNDIyMzFjNmFiMjYuLmE4ZDk3OWVhYzczIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwpAQCAtMjk1OSw2ICsyOTU5LDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUp CiAJCQkJY2FzZSBESVNDQVJEX1NFUVVFTkNFUzoKIAkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRf U0VRVUVOQ0VTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIERJU0NBUkRfVkFSSUFCTEVTOgorCQkJ CQl0YWcgPSBDTURUQUdfRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1 bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4 IGI0ZGYwMzc5NjVlLi4wZjJmZmFkMzA0OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMzczNCw3ICsz NzM0LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50 IGVuZCkKIAogLyogRElTQ0FSRCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRJU0NBUkQiKSkKLQkJ Q09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIik7CisJCUNP TVBMRVRFX1dJVEgoIkFMTCIsICJQTEFOUyIsICJTRVFVRU5DRVMiLCAiVEVNUCIsICJWQVJJQUJM RVMiKTsKIAogLyogRE8gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJETyIpKQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IGIzZjAzYzY1ODI3Li40NDNhZmJhZmQ0YSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBi L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjksNCArMjksNiBA QCBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQs IGJvb2wgKmlzTnVsbCwgT2lkIGV4cGVjdAogZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJ CQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsK IAorZXh0ZXJuIHZvaWQgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpOworCiAjZW5kaWYKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaAppbmRleCA3NGJmNWFmNzc2Ni4uZmJhYjMzOGE5MzggMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKQEAgLTM5NjUsNiArMzk2NSw3IEBAIHR5cGVkZWYgZW51bSBEaXNjYXJk TW9kZQogCURJU0NBUkRfUExBTlMsCiAJRElTQ0FSRF9TRVFVRU5DRVMsCiAJRElTQ0FSRF9URU1Q LAorCURJU0NBUkRfVkFSSUFCTEVTLAogfSBEaXNjYXJkTW9kZTsKIAogdHlwZWRlZiBzdHJ1Y3Qg RGlzY2FyZFN0bXQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIv c3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggYTkyMWFmMjQ4NmYuLmJkNzk2NGFl YTZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMv aW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMTM1LDYgKzEzNSw3IEBAIFBHX0NNRFRBRyhD TURUQUdfRElTQ0FSRF9BTEwsICJESVNDQVJEIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0RJU0NBUkRfUExBTlMsICJESVNDQVJEIFBMQU5TIiwgZmFsc2UsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9TRVFVRU5DRVMsICJESVNDQVJE IFNFUVVFTkNFUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJU0NB UkRfVEVNUCwgIkRJU0NBUkQgVEVNUCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUco Q01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTLCAiRElTQ0FSRCBWQVJJQUJMRVMiLCBmYWxzZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ETywgIkRPIiwgZmFsc2UsIGZhbHNlLCBmYWxz ZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BQ0NFU1NfTUVUSE9ELCAiRFJPUCBBQ0NFU1MgTUVU SE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FHR1JFR0FU RSwgIkRST1AgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCAxNmUxZDAxZGRjNi4u MzhlMDM2MDE1NmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CkBAIC05NzcsMyArOTc3LDY1IEBAIERST1AgVkFSSUFCTEUgOiJEQk5BTUUi LjoiREJOQU1FIi5iOwogRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1F IjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsKIFJFU0VUIHNlYXJjaF9wYXRoOworLS0gbWVtb3J5 IGNsZWFuaW5nIGJ5IERJU0NBUkQgY29tbWFuZAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFy Y2hhcjsKK0xFVCB2YXIxID0gJ0hlbGxvJzsKK1NFTEVDVCB2YXIxOworIHZhcjEgIAorLS0tLS0t LQorIEhlbGxvCisoMSByb3cpCisKK0RJU0NBUkQgQUxMOworU0VMRUNUIHZhcjE7CisgdmFyMSAK Ky0tLS0tLQorIAorKDEgcm93KQorCitMRVQgdmFyMSA9ICdBSE9KJzsKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyBBSE9KCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworU0VM RUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZh cjE7CistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92YXJpYWJsZXMgZnVuY3Rp b24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgY291 bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAg ICAwCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CistLSBzaG91 bGQgYmUgemVybyBzdGlsbAorU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitMRVQgdmFyMSA9ICdB SE9KJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgICAgICB0eXBuYW1lICAgICAgfCBjYW5f c2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCB0ICAgICAgICAg IHwgdAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSB6ZXJvIGFn YWluCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50 IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKaW5kZXggZDViYjVkYzgzYmUuLmQ0MTY1ZjM0ZmZhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC02OTYsMyArNjk2LDM5IEBA IERST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CiBEUk9QIFNDSEVN QSA6IkRCTkFNRSI7CiAKIFJFU0VUIHNlYXJjaF9wYXRoOworCistLSBtZW1vcnkgY2xlYW5pbmcg YnkgRElTQ0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVU IHZhcjEgPSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgQUxMOworU0VMRUNUIHZh cjE7CisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFC TEVTOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gaW5pdGlhbCB0 ZXN0IG9mIGRlYnVnIHBnX3Nlc3Npb25fdmFyaWFibGVzIGZ1bmN0aW9uCistLSBzaG91bGQgYmUg emVybyBub3cKK0RJU0NBUkQgVkFSSUFCTEVTOworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOwor CistLSBzaG91bGQgYmUgemVybyBzdGlsbAorU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKKworTEVUIHZhcjEgPSAnQUhPSic7CisKK1NFTEVDVCBuYW1lLCB0eXBu YW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSB6ZXJvIGFnYWluCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwotLSAKMi40NS4yCgo= --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0004-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20240801-0004-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf5v17 RnJvbSA2NWYzOWVlMTRmMmNhNjUzNmZmZGE4YjQ3NjcxZjlkMmU5ZmYxZDBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIxXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgMTAyICsrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgICA4ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDIz ZTdmYTk5Zjc3Li5iMWQ0MTRjYTk2NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtNTcyLDMgKzU3MiwxMDUgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoKKyAqIHBnX3Nlc3Npb25f dmFyaWFibGVzIC0gZGVzaWduZWQgZm9yIHRlc3RpbmcKKyAqCisgKiBUaGlzIGlzIGEgZnVuY3Rp b24gZGVzaWduZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gIEl0IHJldHVybnMgdGhlCisg KiBjb250ZW50IG9mIHNlc3Npb252YXJzIGFzLWlzLCBhbmQgY2FuIHRoZXJlZm9yZSBkaXNwbGF5 IGVudHJpZXMgYWJvdXQKKyAqIHNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9wcGVkIGJ1 dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVkIGlu dmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdfRlVO Q1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFMgOAor CisJZWxvZyhERUJVRzEsICJwZ19zZXNzaW9uX3ZhcmlhYmxlcyBzdGFydCIpOworCisJSW5pdE1h dGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252YXJzKQorCXsKKwkJUmV0 dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1bHRpbmZv OworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJc3ZhcjsKKworCQloYXNo X3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGlsZSAoKHN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJCXsKKwkJCURhdHVt CQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJYm9vbAkJbnVsbHNb TlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1cGxlCXRwOworCQkJYm9v bAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2 YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7CisKKwkJCXZhbHVl c1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJdmFsdWVzWzNdID0gT2Jq ZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qIGNoZWNrIGlmIHNlc3Npb24gdmFy aWFibGUgaXMgdmlzaWJsZSBpbiBzeXN0ZW0gY2F0YWxvZyAqLworCQkJdHAgPSBTZWFyY2hTeXND YWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJ LyoKKwkJCSAqIFNlc3Npb252YXJzIGNhbiBob2xkIGRhdGEgb2YgdmFyaWFibGVzIHJlbW92ZWQg ZnJvbSBjYXRhbG9nLAorCQkJICogKGFuZCBub3QgcHVyZ2VkKSBhbmQgdGhlbiBuYW1lc3BhY2Vu YW1lIGFuZCBuYW1lIGNhbm5vdCBiZSByZWFkCisJCQkgKiBmcm9tIGNhdGFsb2cuCisJCQkgKi8K KwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCXsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxl IHZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKTsKKworCQkJCS8qIFdo ZW4gd2Ugc2VlIGRhdGEgaW4gY2F0YWxvZyAqLworCQkJCWlmIChzdmFyLT5jcmVhdGVfbHNuID09 IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24pCisJCQkJeworCQkJCQkvKiBhbmQgd2hlbiB3aGVuIHRo ZXNlIGRhdGEgYXJlIG5vdCBvdXQgb2YgZGF0ZSAqLworCQkJCQl2YWx1ZXNbMV0gPSBDU3RyaW5n R2V0VGV4dERhdHVtKAorCQkJCQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52 YXJuYW1lc3BhY2UpKTsKKworCQkJCQl2YWx1ZXNbMl0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKE5h bWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCQkJCQl2YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKGZvcm1hdF90eXBlX2JlKHN2YXItPnR5cGlkKSk7CisJCQkJCXZhbHVlc1s1XSA9IEJv b2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJdmFsdWVzWzZdID0gQm9vbEdldERhdHVtKAorCQkJ CQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgc3Zhci0+dmFyaWQs CisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpID09IEFDTENIRUNLX09L KTsKKworCQkJCQl2YWx1ZXNbN10gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3Rf YWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJ CSBHZXRVc2VySWQoKSwgQUNMX1VQREFURSkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhcl9p c192YWxpZCA9IHRydWU7CisJCQkJfQorCisJCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0K KworCQkJaWYgKCF2YXJfaXNfdmFsaWQpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBXaGVuIHNlc3Np b24gdmFyaWFibGUgd2FzIHJlbW92ZWQgZnJvbSBjYXRhbG9nLCBidXQgd2UKKwkJCQkgKiBoYXZl bid0IHByb2Nlc3NlZCB0aGUgaW52bGlkYXRpb24geWV0LiBJbiB0aGlzIGNhc2UsIHdlIGNhbgor CQkJCSAqIGRpc3BsYXkgb25seSBmZXcgb2lkcy4gT3RoZXIgZGF0YSBhcmUgbm90IGF2YWlsYWJs ZQorCQkJCSAqICh3aXRob3V0IEZvcm1fcGdfdmFyaWFibGUgcmVjb3JkKSwgb3IgY2FuIGJlIGxv c3QgKGJlY2F1c2UKKwkJCQkgKiB0aGVyZSBpcyBub3QgcHJvdGVjdGlvbiBieSBkZXBlbmRlbmN5 IChtb3JlKS4KKwkJCQkgKi8KKwkJCQludWxsc1sxXSA9IHRydWU7CisJCQkJbnVsbHNbMl0gPSB0 cnVlOworCQkJCW51bGxzWzRdID0gdHJ1ZTsKKwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVs bHNbN10gPSB0cnVlOworCisJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKHRydWUpOworCQkJ fQorCisJCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5z ZXREZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCWVsb2coREVCVUcxLCAicGdfc2Vz c2lvbl92YXJpYWJsZXMgZW5kIik7CisKKwlyZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggMmVhMDk1ZjZiYjIuLjY5NDM5MDJmYTNiIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKQEAgLTEyMjQ0LDQgKzEyMjQ0LDEyIEBACiAgIHByb2FyZ25hbWVzID0+ICd7 c3VtbWFyaXplZF90bGksc3VtbWFyaXplZF9sc24scGVuZGluZ19sc24sc3VtbWFyaXplcl9waWR9 JywKICAgcHJvc3JjID0+ICdwZ19nZXRfd2FsX3N1bW1hcml6ZXJfc3RhdGUnIH0sCiAKK3sgb2lk ID0+ICc4NDg4JywgZGVzY3IgPT4gJ2xpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcycsCisg IHByb25hbWUgPT4gJ3BnX3Nlc3Npb25fdmFyaWFibGVzJywgcHJvcm93cyA9PiAnMTAwMCcsIHBy b3JldHNldCA9PiAndCcsCisgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3In LCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvYWxsYXJn dHlwZXMgPT4gJ3tvaWQsdGV4dCx0ZXh0LG9pZCx0ZXh0LGJvb2wsYm9vbCxib29sfScsCisgIHBy b2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7dmFy aWQsc2NoZW1hLG5hbWUsdHlwaWQsdHlwbmFtZSxyZW1vdmVkLGNhbl9zZWxlY3QsY2FuX3VwZGF0 ZX0nLAorICBwcm9zcmMgPT4gJ3BnX3Nlc3Npb25fdmFyaWFibGVzJyB9LAorCiBdCi0tIAoyLjQ1 LjIKCg== --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0003-regress-tests.patch" Content-Disposition: attachment; filename="v20240801-0003-regress-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf6018 RnJvbSBhZWViOWE2ZmQ2ZGNlYWYwZTRiYTE0NGY3ZWNkMWZjNTdmNmU3ZWJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUaHUsIDEgQXVnIDIwMjQgMjM6MTI6MjkgKzAyMDAKU3ViamVjdDogW1BB VENIIDAzLzIxXSByZWdyZXNzIHRlc3RzCgotLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0IHwgMTAgKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgICAgfCAxMiArKysrKysrKysrKysKIDIgZmlsZXMg Y2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMjg3NjI4ZWRlNjEuLjE2ZTFkMDFkZGM2IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApA QCAtMjkxLDYgKzI5MSwxNiBAQCBDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiQ0FMTCBwKHYpIgog UEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IENBTEwKIERST1Ag UFJPQ0VEVVJFIHAoaW50KTsKIERST1AgVkFSSUFCTEUgdjsKKy0tIEVYRUNVVEUgc3RhdGVtZW50 IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Np b24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBp bnQ7CitMRVQgdiA9IDIwOworUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKKy0tIHNo b3VsZCBmYWlsCitFWEVDVVRFIHB0ZXN0KHYpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNh bm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitERUFMTE9DQVRFIHB0ZXN0OworRFJPUCBWQVJJ QUJMRSB2OwogLS0gdGVzdCBzZWFyY2ggcGF0aAogQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKIENS RUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIG51bWVyaWM7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggZGI1YmExNzZkYjIuLmQ1YmI1ZGM4M2Jl IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0yMjEs NiArMjIxLDE4IEBAIERPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOwogRFJPUCBQUk9DRURV UkUgcChpbnQpOwogRFJPUCBWQVJJQUJMRSB2OwogCistLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBu b3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZh cmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50Owor TEVUIHYgPSAyMDsKK1BSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CisKKy0tIHNob3Vs ZCBmYWlsCitFWEVDVVRFIHB0ZXN0KHYpOworCitERUFMTE9DQVRFIHB0ZXN0OworRFJPUCBWQVJJ QUJMRSB2OworCiAtLSB0ZXN0IHNlYXJjaCBwYXRoCiBDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0Owog Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgbnVtZXJpYzsKLS0gCjIuNDUuMgoK --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20240801-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf6519 RnJvbSBmZTNlZjQ1OGQ5NGJjMDkxYTUwMTM1MmU4YzFhMmUxMTgzOTc5ZDQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjFdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTMgKwogZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMyICsKIGRvYy9zcmMv c2dtbC9ldmVudC10cmlnZ2VyLnNnbWwgICAgICAgICAgICAgICB8ICAyNCArCiBkb2Mvc3JjL3Nn bWwvcGFyYWxsZWwuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogZG9jL3NyYy9zZ21s L3BscGdzcWwuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwgIDE0ICsKIGRvYy9zcmMvc2dtbC9y ZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvZHJv cF92YXJpYWJsZS5zZ21sICAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVmL2xldC5z Z21sICAgICAgICAgICAgICAgICAgICAgfCAgOTYgKysKIGRvYy9zcmMvc2dtbC9yZWZlcmVuY2Uu c2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVu ZGVuY3kuYyAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3Bh Y2UuYyAgICAgICAgICAgICAgIHwgMzE3ICsrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192 YXJpYWJsZS5jICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2Vm aWxlICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5j ICAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYyAgICAgICB8IDU3NCArKysrKysrKysrKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFr ZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNF eHByLmMgICAgICAgICAgICAgICB8ICA0MiArCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFp bi5jICAgICAgICAgICAgICAgfCAgNDcgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVp bGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJl Y2VpdmVyLmMgICAgICB8IDIwMSArKysrCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAg ICAgICAgICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5l ci5jICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMu YyAgICAgICAgICB8IDEzNSArKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2lu dHJlZS5jICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMg ICAgICAgICAgfCAgMzUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAg ICAgICAgICB8IDI2NCArKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAg ICAgICAgICAgIHwgIDQ5ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAg ICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAg ICAgICAgIHwgMjIwICsrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAg ICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgICAgICAgICAgICAgICAg ICAgICAgIHwgICA3ICsKIHNyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgICAgICAgICAgICAgICAg ICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAg ICAgfCAgMTYgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAg IHwgIDQ2ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jICAgICAgICAgICB8 ICA0MSArLQogc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgICAgICAgICAgICAgICAgIHwg IDEwICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAg MTIgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggICAgICAgICAgICAgICB8ICAg MiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgIDgg Kwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgIDMyICsK IHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmggICAgICAgICAgICAgICB8ICAgNCArCiBz cmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oICAgICAgfCAgMjIgKwogc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDE2ICsKIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNyArCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcGxhbm5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUv b3B0aW1pemVyL3BsYW5tYWluLmggICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdGNvcC9j bWR0YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvZGVz dC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxf ZXhlYy5jICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDkxMiArKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDYyNSArKysrKysrKysrKysK IHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgNSArCiA1 OSBmaWxlcyBjaGFuZ2VkLCAzOTA3IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaAoK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKaW5kZXggZGUxMjJlNTQzZjcuLmFjM2IwNGZmOTEyIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bApAQCAtOTc3Nyw2ICs5Nzc3LDE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtp dGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8 L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNyZWF0ZV9sc248L3N0cnVjdGZpZWxkPiA8dHlwZT5Y TG9nUmVjUHRyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTFNO IG9mIHRoZSB0cmFuc2FjdGlvbiB3aGVyZSB0aGUgdmFyaWFibGUgd2FzIGNyZWF0ZWQuCisgICAg ICAgPHN0cnVjdGZpZWxkPnZhcmNyZWF0ZV9sc248L3N0cnVjdGZpZWxkPiBhbmQKKyAgICAgICA8 c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gdG9nZXRoZXIgZm9ybSB0aGUgYWxsLXRpbWUg dW5pcXVlCisgICAgICAgaWRlbnRpZmllciAoPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+ IGFsb25lIGlzIG5vdCBlbm91Z2gsIHNpbmNlCisgICAgICAgb2JqZWN0IGlkZW50aWZpZXJzIGNh biBnZXQgcmV1c2VkKS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAg ICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+dmFybmFtZTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggNzUzMWRlMTdmZDMuLjU3NDU0MGNh NmZlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2RkbC5zZ21sCkBAIC01MzE3LDYgKzUzMTcsMzggQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikg RlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwog ICAgIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLgogICAgPC9wYXJhPgogCisgICA8cGFyYT4K KyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIHNldCB3aXRoIHRoZSBTUUwg c3RhdGVtZW50CisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPi4gIFRoZSB2YWx1ZSBvZiBhIHNl c3Npb24gdmFyaWFibGUgY2FuIGJlIHJldHJpZXZlZAorICAgIHdpdGggdGhlIFNRTCBzdGF0ZW1l bnQgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPi4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGRhdGU7CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCB2 YXIxOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgIG9yCisKKzxwcm9ncmFtbGlzdGluZz4KK0NS RUFURSBWQVJJQUJMRSBwdWJsaWMuY3VycmVudF91c2VyX2lkIEFTIGludGVnZXI7CitHUkFOVCBS RUFEIE9OIFZBUklBQkxFIHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgVE8gUFVCTElDOworTEVUIGN1 cnJlbnRfdXNlcl9pZCA9IChTRUxFQ1QgaWQgRlJPTSB1c2VycyBXSEVSRSB1c2VuYW1lID0gc2Vz c2lvbl91c2VyKTsKK1NFTEVDVCBjdXJyZW50X3VzZXJfaWQ7Cis8L3Byb2dyYW1saXN0aW5nPgor ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlh YmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKKyAgICBhIHZh cmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxlc3Mg aXRzIHZhbHVlIGhhcworICAgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJy ZW50IHNlc3Npb24gdXNpbmcgdGhlCisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5k LiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCB0cmFuc2FjdGlvbmFsOgorICAgIGFueSBjaGFu Z2VzIG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5zYWN0 aW9uIHdvbid0CisgICAgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFj ayAoanVzdCBsaWtlIHZhcmlhYmxlcyBpbgorICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNl c3Npb24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgYXJlIHBlcnNpc3RlbnQsIGJ1dAorICAgIHRoZWly IHZhbHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlIGNvbnRl bnQgb2YKKyAgICB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgIDwvcGFyYT4KKwogICAgPHBhcmE+CiAg ICAgSW5zaWRlIGEgcXVlcnkgb3IgYW4gZXhwcmVzc2lvbiwgYSBzZXNzaW9uIHZhcmlhYmxlIGNh biBiZQogICAgIDxxdW90ZT5zaGFkb3dlZDwvcXVvdGU+IGJ5IGEgY29sdW1uIHdpdGggdGhlIHNh bWUgbmFtZS4gIFNpbWlsYXJseSwgdGhlCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZXZlbnQt dHJpZ2dlci5zZ21sIGIvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbAppbmRleCAxNWIy YWY5OWRjYS4uNTc4Yjk3YWZlZWYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9ldmVudC10cmln Z2VyLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbApAQCAtNDMyLDYg KzQzMiwxNCBAQAogICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0 ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CiAgICAg ICAgPC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0 ZXJhbD5BTFRFUiBWQVJJQUJMRTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxp Z249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkg YWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50 cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8 ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAg ICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CisgICAgICAgPC9yb3c+CiAgICAgICAgPHJv dz4KICAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5BTFRFUiBWSUVXPC9saXRl cmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9s aXRlcmFsPjwvZW50cnk+CkBAIC03MjgsNiArNzM2LDE0IEBACiAgICAgICAgIDxlbnRyeSBhbGln bj0iY2VudGVyIj48bGl0ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeSBh bGlnbj0ibGVmdCI+PC9lbnRyeT4KICAgICAgICA8L3Jvdz4KKyAgICAgICA8cm93PgorICAgICAg ICA8ZW50cnkgYWxpZ249ImxlZnQiPjxsaXRlcmFsPkNSRUFURSBWQVJJQUJMRTwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJh bD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwv bGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+ LTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+ CisgICAgICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0 Ij48bGl0ZXJhbD5DUkVBVEUgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkg YWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpAQCAtMTAyNCw2ICsx MDQwLDE0IEBACiAgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD4tPC9saXRl cmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PC9lbnRyeT4KICAgICAg ICA8L3Jvdz4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjxsaXRl cmFsPkRST1AgVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWdu PSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFs aWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5 IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVu dHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAg PGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgorICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+ CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+RFJPUCBWSUVXPC9saXRlcmFs PjwvZW50cnk+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRl cmFsPjwvZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDU5MGNiMzg1ZGRmLi5hNWNlZjRjZDc5YiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3BhcmFsbGVsLnNnbWwKQEAgLTUyMSw2ICs1MjEsMTIgQEAgRVhQTEFJTiBTRUxFQ1QgKiBGUk9N IHBnYmVuY2hfYWNjb3VudHMgV0hFUkUgZmlsbGVyIExJS0UgJyV4JSc7CiAgICAgICAgIFBsYW4g bm9kZXMgdGhhdCByZWZlcmVuY2UgYSBjb3JyZWxhdGVkIDxsaXRlcmFsPlN1YlBsYW48L2xpdGVy YWw+LgogICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+Cisg ICAgICA8cGFyYT4KKyAgICAgICAgUGxhbiBub2RlcyB0aGF0IHVzZSBhIHNlc3Npb24gdmFyaWFi bGUuCisgICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KICAgPC9pdGVtaXplZGxpc3Q+CiAK ICA8c2VjdDIgaWQ9InBhcmFsbGVsLWxhYmVsaW5nIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9wbHBnc3FsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmluZGV4IGE2NzU5MjM4 NjcyLi44YWE5NzllY2IyNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC02MDM0LDYgKzYwMzQsMjAgQEAgJCQg TEFOR1VBR0UgcGxwZ3NxbCBTVFJJQ1QgSU1NVVRBQkxFOwogPC9wcm9ncmFtbGlzdGluZz4KICAg ICA8L3BhcmE+CiAgICA8L3NlY3QzPgorCisgICA8c2VjdDMgaWQ9InBscGdzcWwtcG9ydGluZy1w YWNrYWdlLXZhcmlhYmxlcyI+CisgICAgPHRpdGxlPjxjb21tYW5kPlBhY2thZ2VzIGFuZCBwYWNr YWdlIHZhcmlhYmxlczwvY29tbWFuZD48L3RpdGxlPgorCisgICAgPHBhcmE+CisgICAgIFRoZSA8 YXBwbGljYXRpb24+UEwvcGdTUUw8L2FwcGxpY2F0aW9uPiBsYW5ndWFnZSBoYXMgbm8gcGFja2Fn ZXMsIGFuZAorICAgICB0aGVyZWZvcmUgbm8gcGFja2FnZSB2YXJpYWJsZXMgb3IgcGFja2FnZSBj b25zdGFudHMuCisgICAgIFlvdSBjYW4gY29uc2lkZXIgdHJhbnNsYXRpbmcgYW4gT3JhY2xlIHBh Y2thZ2UgaW50byBhIHNjaGVtYSBpbgorICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJv ZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMKKyAgICAgd291bGQg dGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIGluIHRoYXQgc2NoZW1hLCBhbmQg cGFja2FnZQorICAgICB2YXJpYWJsZXMgY291bGQgYmUgdHJhbnNsYXRlZCB0byBzZXNzaW9uIHZh cmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KKyAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vz c2lvbi12YXJpYWJsZXMiLz4pLgorICAgIDwvcGFyYT4KKyAgIDwvc2VjdDM+CiAgIDwvc2VjdDI+ CiAKICAgPHNlY3QyIGlkPSJwbHBnc3FsLXBvcnRpbmctYXBwZW5kaXgiPgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxl cy5zZ21sCmluZGV4IDJmNjdkZTNlMjFiLi5jYzNiZDVhYjU0MCAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMu c2dtbApAQCAtMTU4LDYgKzE1OCw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291 cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgZ3JhbnQgICAgICAgICAgICAg IFNZU1RFTSAiZ3JhbnQuc2dtbCI+CiA8IUVOVElUWSBpbXBvcnRGb3JlaWduU2NoZW1hIFNZU1RF TSAiaW1wb3J0X2ZvcmVpZ25fc2NoZW1hLnNnbWwiPgogPCFFTlRJVFkgaW5zZXJ0ICAgICAgICAg ICAgIFNZU1RFTSAiaW5zZXJ0LnNnbWwiPgorPCFFTlRJVFkgbGV0ICAgICAgICAgICAgICAgIFNZ U1RFTSAibGV0LnNnbWwiPgogPCFFTlRJVFkgbGlzdGVuICAgICAgICAgICAgIFNZU1RFTSAibGlz dGVuLnNnbWwiPgogPCFFTlRJVFkgbG9hZCAgICAgICAgICAgICAgIFNZU1RFTSAibG9hZC5zZ21s Ij4KIDwhRU5USVRZIGxvY2sgICAgICAgICAgICAgICBTWVNURU0gImxvY2suc2dtbCI+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKaW5kZXggZDg3NTcwZTdkOGIuLmQyMDM2MzUxZTUz IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0xNzMsNiArMTczLDcgQEAg QUxURVIgVkFSSUFCTEUgYm9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKICAgPHNpbXBsZWxpc3QgdHlw ZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxl Ii8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUi Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVy PgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIDwvcmVmZW50cnk+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBlYzE2NWFiOTZmYy4uMDViZjY3ZTM0MTEgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMTQ1LDYgKzE0NSw3IEBAIFNF TEVDVCB2YXIxOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgogICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0PgogIDwvcmVmc2Vj dDE+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKaW5kZXggNWJkYjM1NjBmMGIuLjY3 OTg4YjVmY2Q4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApAQCAtMTExLDYgKzEx MSw3IEBAIERST1AgVkFSSUFCTEUgdmFyMTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4K ICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4K ICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+ CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1w bGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvbGV0 LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5mNjY0MDU3NmJlZQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvbGV0LnNnbWwKQEAgLTAsMCArMSw5NiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3Jl Zi9sZXQuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlk PSJzcWwtbGV0Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1sZXQiPgorICA8cHJpbWFyeT5MRVQ8 L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNz aW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PmNoYW5naW5nPC9zZWNvbmRhcnk+ CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+TEVUPC9yZWZl bnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNR TCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxy ZWZuYW1lZGl2PgorICA8cmVmbmFtZT5MRVQ8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmNoYW5n ZSBhIHNlc3Npb24gdmFyaWFibGUncyB2YWx1ZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+ CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitMRVQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3JlcGxhY2VhYmxlPiA9IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5zcWxfZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+Cis8L3N5bm9w c2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlw dGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBj b21tYW5kIGFzc2lnbnMgYSB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIHNlc3Npb24KKyAgIHZhcmlh YmxlLgorICA8L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PGxpdGVyYWw+c2Vzc2lvbl92YXJpYWJsZTwvbGl0ZXJhbD48L3Rlcm0+Cisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBzZXNzaW9u IHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPnNxbF9leHByZXNz aW9uPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg QW4gYXJiaXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgVGhlIHJlc3VsdCBtdXN0IGJlIG9mIGEgZGF0 YSB0eXBlIHRoYXQgY2FuCisgICAgICBiZSBjYXN0IHRvIHRoZSB0eXBlIG9mIHRoZSBzZXNzaW9u IHZhcmlhYmxlIGluIGFuIGFzc2lnbm1lbnQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisKKyAgPHBhcmE+Cisg ICBFeGFtcGxlOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIGlu dGVnZXI7CitMRVQgbXl2YXIgPSAxMDsKK0xFVCBteXZhciA9IChTRUxFQ1Qgc3VtKHZhbCkgRlJP TSB0YWIpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8 cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAg IFRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGlzIGEgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8 L3Byb2R1Y3RuYW1lPgorICAgZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0 eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJs ZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFi bGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJs ZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmZXJlbmNlLnNnbWwKaW5kZXggMjU1NzhmMzk0NmMuLjEzZTRhZGM1ZGYzIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5j ZS5zZ21sCkBAIC0xODYsNiArMTg2LDcgQEAKICAgICZncmFudDsKICAgICZpbXBvcnRGb3JlaWdu U2NoZW1hOwogICAgJmluc2VydDsKKyAgICZsZXQ7CiAgICAmbGlzdGVuOwogICAgJmxvYWQ7CiAg ICAmbG9jazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggYzlkNjg2NjY1ZGUuLjE0ODcx OWU0OTBlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMTg2NCw2ICsxODY0LDExIEBA IGZpbmRfZXhwcl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAogCXsKIAkJUGFyYW0JICAg KnBhcmFtID0gKFBhcmFtICopIG5vZGU7CiAKKwkJLyogYSB2YXJpYWJsZSBwYXJhbWV0ZXIgZGVw ZW5kcyBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9 PSBQQVJBTV9WQVJJQUJMRSkKKwkJCWFkZF9vYmplY3RfYWRkcmVzcyhWYXJpYWJsZVJlbGF0aW9u SWQsIHBhcmFtLT5wYXJhbXZhcmlkLCAwLAorCQkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKKwog CQkvKiBBIHBhcmFtZXRlciBtdXN0IGRlcGVuZCBvbiB0aGUgcGFyYW1ldGVyJ3MgZGF0YXR5cGUg Ki8KIAkJYWRkX29iamVjdF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBwYXJhbS0+cGFyYW10eXBl LCAwLAogCQkJCQkJICAgY29udGV4dC0+YWRkcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5k ZXggYzQ2NDJiNzViYmUuLjllMDE4YWFlODAwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRh bG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKQEAg LTMzOTcsNiArMzM5NywzMjMgQEAgTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFtZSwK IAlyZXR1cm4gdmFyb2lkOwogfQogCisvKgorICogVGhlIGlucHV0IGxpc3QgY29udGFpbnMgbmFt ZXMgd2l0aCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucyB1c2VkIGFzIHRoZSBsZWZ0CisgKiBwYXJ0 IG9mIExFVCBzdGF0ZW1lbnQuIFRoZSBmb2xsb3dpbmcgcm91dGluZSByZXR1cm5zIGEgbmV3IGxp c3Qgd2l0aCBvbmx5CisgKiBpbml0aWFsIHN0cmluZ3MgKG5hbWVzKSAtIHdpdGhvdXQgaW5kaXJl Y3Rpb24gZXhwcmVzc2lvbnMuCisgKi8KK0xpc3QgKgorTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1l cykKK3sKKwlMaXN0Q2VsbCAgICpsOworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKworCWZvcmVh Y2gobCwgbmFtZXMpCisJeworCQlOb2RlCSAgICpuID0gbGZpcnN0KGwpOworCisJCWlmIChJc0Eo biwgU3RyaW5nKSkKKwkJeworCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG4pOworCQl9CisJ CWVsc2UKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qIC0tLS0tCisg KiBJZGVudGlmeVZhcmlhYmxlIC0gdHJ5IHRvIGZpbmQgYSB2YXJpYWJsZSBmcm9tIGEgbGlzdCBv ZiBpZGVudGlmaWVycworICoKKyAqIFJldHVybnMgdGhlIE9JRCBvZiB0aGUgdmFyaWFibGUgZm91 bmQsIG9yIEludmFsaWRPaWQuCisgKgorICogIm5hbWVzIiBpcyBhIGxpc3Qgb2YgdXAgdG8gZm91 ciBpZGVudGlmaWVyczsgcG9zc2libGUgbWVhbmluZ3MgYXJlOgorICogLSB2YXJpYWJsZSAgKHNl YXJjaGVkIG9uIHRoZSBzZWFyY2hfcGF0aCkKKyAqIC0gc2NoZW1hLnZhcmlhYmxlCisgKiAtIHZh cmlhYmxlLmF0dHJpYnV0ZSAgKHNlYXJjaGVkIG9uIHRoZSBzZWFyY2hfcGF0aCkKKyAqIC0gc2No ZW1hLnZhcmlhYmxlLmF0dHJpYnV0ZQorICogLSBkYXRhYmFzZS5zY2hlbWEudmFyaWFibGUKKyAq IC0gZGF0YWJhc2Uuc2NoZW1hLnZhcmlhYmxlLmF0dHJpYnV0ZQorICoKKyAqIElmIHRoZXJlIGlz IG1vcmUgdGhhbiBvbmUgd2F5IHRvIGlkZW50aWZ5IGEgdmFyaWFibGUsICJub3RfdW5pcXVlIiB3 aWxsIGJlCisgKiBzZXQgdG8gdHJ1ZS4KKyAqCisgKiBVbmxlc3MgIm5vZXJyb3IiIGlzIHRydWUs IGFuIGVycm9yIGlzIHJhaXNlZCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIGZvdXIKKyAqICBpZGVu dGlmaWVycyBpbiB0aGUgbGlzdCwgb3IgaWYgdGhlIG5hbWVkIGRhdGFiYXNlIGlzIG5vdCB0aGUg Y3VycmVudCBvbmUuCisgKiBUaGlzIGlzIHVzZWZ1bCBpZiB3ZSB3YW50IHRvIGlkZW50aWZ5IGEg c2hhZG93ZWQgdmFyaWFibGUuCisgKgorICogSWYgYW4gYXR0cmlidXRlIGlzIGlkZW50aWZpZWQs IGl0IGlzIHN0b3JlZCBpbiAiYXR0cm5hbWUiLCBvdGhlcndpc2UgdGhlCisgKiBwYXJhbWV0ZXIg aXMgc2V0IHRvIE5VTEwuCisgKgorICogVGhlIGlkZW50aWZpZWQgc2Vzc2lvbiB2YXJpYWJsZSB3 aWxsIGJlIGxvY2tlZCB3aXRoIGFuIEFjY2Vzc1NoYXJlTG9jay4KKyAqIC0tLS0tCisgKi8KK09p ZAorSWRlbnRpZnlWYXJpYWJsZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1lLCBib29sICpu b3RfdW5pcXVlLCBib29sIG5vZXJyb3IpCit7CisJTm9kZQkgICAqZmllbGQxID0gTlVMTDsKKwlO b2RlCSAgICpmaWVsZDIgPSBOVUxMOworCU5vZGUJICAgKmZpZWxkMyA9IE5VTEw7CisJTm9kZQkg ICAqZmllbGQ0ID0gTlVMTDsKKwljaGFyCSAgICphID0gTlVMTDsKKwljaGFyCSAgICpiID0gTlVM TDsKKwljaGFyCSAgICpjID0gTlVMTDsKKwljaGFyCSAgICpkID0gTlVMTDsKKwlPaWQJCQl2YXJp ZCA9IEludmFsaWRPaWQ7CisJT2lkCQkJb2xkX3ZhcmlkID0gSW52YWxpZE9pZDsKKwl1aW50NjQJ CWludmFsX2NvdW50OworCWJvb2wJCXJldHJ5ID0gZmFsc2U7CisKKwkvKgorCSAqIERETCBvcGVy YXRpb25zIGNhbiBjaGFuZ2UgdGhlIHJlc3VsdHMgb2YgYSBuYW1lIGxvb2t1cC4gIFNpbmNlIGFs bCBzdWNoCisJICogb3BlcmF0aW9ucyB3aWxsIGdlbmVyYXRlIGludmFsaWRhdGlvbiBtZXNzYWdl cywgd2Uga2VlcCB0cmFjayBvZgorCSAqIHdoZXRoZXIgYW55IHN1Y2ggbWVzc2FnZXMgc2hvdyB1 cCB3aGlsZSB3ZSdyZSBwZXJmb3JtaW5nIHRoZSBvcGVyYXRpb24sCisJICogYW5kIHJldHJ5IHVu dGlsIGVpdGhlciAoMSkgbm8gbW9yZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMgc2hvdyB1cCBvciAo MikKKwkgKiB0aGUgYW5zd2VyIGRvZXNuJ3QgY2hhbmdlLgorCSAqLworCWZvciAoOzspCisJewor CQlPaWQJCQl2YXJvaWRfd2l0aG91dF9hdHRyID0gSW52YWxpZE9pZDsKKwkJT2lkCQkJdmFyb2lk X3dpdGhfYXR0ciA9IEludmFsaWRPaWQ7CisKKwkJKm5vdF91bmlxdWUgPSBmYWxzZTsKKwkJKmF0 dHJuYW1lID0gTlVMTDsKKwkJdmFyaWQgPSBJbnZhbGlkT2lkOworCisJCWludmFsX2NvdW50ID0g U2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyOworCisJCXN3aXRjaCAobGlzdF9sZW5ndGgobmFt ZXMpKQorCQl7CisJCQljYXNlIDE6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCisJ CQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCisJCQkJdmFyaWQgPSBMb29rdXBWYXJp YWJsZShOVUxMLCBzdHJWYWwoZmllbGQxKSwgdHJ1ZSk7CisJCQkJYnJlYWs7CisKKwkJCWNhc2Ug MjoKKwkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJZmllbGQyID0gbHNlY29uZChu YW1lcyk7CisKKwkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisJCQkJYSA9IHN0clZh bChmaWVsZDEpOworCisJCQkJaWYgKElzQShmaWVsZDIsIFN0cmluZykpCisJCQkJeworCQkJCQkv KiB3aGVuIGJvdGggZmllbGRzIGFyZSBvZiBzdHJpbmcgdHlwZSAqLworCQkJCQliID0gc3RyVmFs KGZpZWxkMik7CisKKwkJCQkJLyoKKwkJCQkJICogYS5iIGNhbiBtZWFuICJzY2hlbWEiLiJ2YXJp YWJsZSIgb3IgInZhcmlhYmxlIi4iZmllbGQiLgorCQkJCQkgKiBDaGVjayBib3RoIHZhcmlhbnRz LCBhbmQgcmV0dXJucyBJbnZhbGlkT2lkIHdpdGgKKwkJCQkJICogbm90X3VuaXF1ZSBmbGFnLCB3 aGVuIGJvdGggaW50ZXJwcmV0YXRpb25zIGFyZQorCQkJCQkgKiBwb3NzaWJsZS4KKwkJCQkJICov CisJCQkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsK KwkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKE5VTEwsIGEsIHRydWUpOwor CQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkvKiBUaGUgbGFzdCBmaWVsZCBvZiBsaXN0IGNh biBiZSBzdGFyIHRvby4gKi8KKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIEFfU3RhcikpOworCisJ CQkJCS8qCisJCQkJCSAqIEluIHRoaXMgY2FzZSwgdGhlIGZpZWxkMSBzaG91bGQgYmUgdmFyaWFi bGUgbmFtZS4gQnV0CisJCQkJCSAqIGRpcmVjdCB1bmJveGluZyBvZiBjb21wb3NpdGUgc2Vzc2lv biB2YXJpYWJsZXMgaXMgbm90CisJCQkJCSAqIHN1cHBvcnRlZCBub3csIGFuZCB0aGVuIHdlIGRv bid0IG5lZWQgdG8gdHJ5IGxvb2t1cAorCQkJCQkgKiByZWxhdGVkIHZhcmlhYmxlLgorCQkJCQkg KgorCQkJCQkgKiBVbmJveGluZyBpcyBzdXBwb3J0ZWQgYnkgc3ludGF4ICh2YXIpLioKKwkJCQkJ ICovCisJCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQkJCX0KKworCQkJCWlmIChPaWRJc1ZhbGlk KHZhcm9pZF93aXRob3V0X2F0dHIpICYmIE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJ CQkJeworCQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhv dXRfYXR0cjsKKwkJCQl9CisJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9h dHRyKSkKKwkJCQl7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQl9CisJ CQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSph dHRybmFtZSA9IGI7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhfYXR0cjsKKwkJCQl9CisJCQkJ YnJlYWs7CisKKwkJCWNhc2UgMzoKKwkJCQl7CisJCQkJCWJvb2wJCWZpZWxkMV9pc19jYXRhbG9n ID0gZmFsc2U7CisKKwkJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIg PSBsc2Vjb25kKG5hbWVzKTsKKwkJCQkJZmllbGQzID0gbHRoaXJkKG5hbWVzKTsKKworCQkJCQlB c3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBTdHJp bmcpKTsKKworCQkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQy KTsKKworCQkJCQlpZiAoSXNBKGZpZWxkMywgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJYyA9IHN0 clZhbChmaWVsZDMpOworCisJCQkJCQkvKgorCQkJCQkJICogYS5iLmMgY2FuIG1lYW4gY2F0YWxv Zy5zY2hlbWEudmFyaWFibGUgb3IKKwkJCQkJCSAqIHNjaGVtYS52YXJpYWJsZS5maWVsZC4KKwkJ CQkJCSAqCisJCQkJCQkgKiBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQgc2V0IG5vdF91bmlxdWUg ZmxhZywgd2hlbgorCQkJCQkJICogYm90aCBpbnRlcnByZXRhdGlvbnMgYXJlIHBvc3NpYmxlLgor CQkJCQkJICoKKwkJCQkJCSAqIFdoZW4gdGhpcmQgbm9kZSBpcyBzdGFyLCBvbmx5IHBvc3NpYmxl CisJCQkJCQkgKiBpbnRlcnByZXRhdGlvbiBpcyBzY2hlbWEudmFyaWFibGUuKiwgYnV0IHRoaXMK KwkJCQkJCSAqIHBhdHRlcm4gaXMgbm90IHN1cHBvcnRlZCBub3cuCisJCQkJCQkgKi8KKwkJCQkJ CXZhcm9pZF93aXRoX2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsKKworCQkJCQkJ LyoKKwkJCQkJCSAqIGNoZWNrIHBhdHRlcm4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb25seSB3 aGVuCisJCQkJCQkgKiB0aGVyZSBpcyBwb3NzaWJpbGl0eSB0byBzdWNjZXNzLgorCQkJCQkJICov CisJCQkJCQlpZiAoc3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpID09 IDApCisJCQkJCQl7CisJCQkJCQkJZmllbGQxX2lzX2NhdGFsb2cgPSB0cnVlOworCQkJCQkJCXZh cm9pZF93aXRob3V0X2F0dHIgPSBMb29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQkJCX0K KwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQzLCBBX1N0 YXIpKTsKKwkJCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJaWYgKE9pZElz VmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRy KSkKKwkJCQkJeworCQkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQkJdmFyaWQgPSB2YXJv aWRfd2l0aG91dF9hdHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lk X3dpdGhvdXRfYXR0cikpCisJCQkJCXsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0 cjsKKwkJCQkJfQorCQkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQor CQkJCQl7CisJCQkJCQkqYXR0cm5hbWUgPSBjOworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9h dHRyOworCQkJCQl9CisKKwkJCQkJLyoKKwkJCQkJICogV2hlbiB3ZSBkaWRuJ3QgZmluZCB2YXJp YWJsZSwgd2UgY2FuICh3aGVuIGl0IGlzCisJCQkJCSAqIGFsbG93ZWQpIHJhaXNlIGNyb3NzLWRh dGFiYXNlIHJlZmVyZW5jZSBlcnJvci4KKwkJCQkJICovCisJCQkJCWlmICghT2lkSXNWYWxpZCh2 YXJpZCkgJiYgIW5vZXJyb3IgJiYgIWZpZWxkMV9pc19jYXRhbG9nKQorCQkJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVt ZW50ZWQ6ICVzIiwKKwkJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCQl9 CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgNDoKKwkJCQl7CisJCQkJCWZpZWxkMSA9IGxpbml0aWFs KG5hbWVzKTsKKwkJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0 aGlyZChuYW1lcyk7CisJCQkJCWZpZWxkNCA9IGxmb3VydGgobmFtZXMpOworCisJCQkJCUFzc2Vy dChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIFN0cmluZykp OworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMywgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZhbChm aWVsZDEpOworCQkJCQliID0gc3RyVmFsKGZpZWxkMik7CisJCQkJCWMgPSBzdHJWYWwoZmllbGQz KTsKKworCQkJCQkvKgorCQkJCQkgKiBJbiB0aGlzIGNhc2UsICJhIiBpcyB1c2VkIGFzIGNhdGFs b2cgbmFtZSAtIGNoZWNrIGl0LgorCQkJCQkgKi8KKwkJCQkJaWYgKHN0cmNtcChhLCBnZXRfZGF0 YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCQl7CisJCQkJCQlpZiAoIW5vZXJy b3IpCisJCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJl ZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCQlOYW1lTGlzdFRv U3RyaW5nKG5hbWVzKSkpKTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCWlmIChJ c0EoZmllbGQ0LCBTdHJpbmcpKQorCQkJCQkJeworCQkJCQkJCWQgPSBzdHJWYWwoZmllbGQ0KTsK KwkJCQkJCX0KKwkJCQkJCWVsc2UKKwkJCQkJCXsKKwkJCQkJCQlBc3NlcnQoSXNBKGZpZWxkNCwg QV9TdGFyKSk7CisJCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCQl9CisKKwkJCQkJCSph dHRybmFtZSA9IGQ7CisJCQkJCQl2YXJpZCA9IExvb2t1cFZhcmlhYmxlKGIsIGMsIHRydWUpOwor CQkJCQl9CisJCQkJfQorCQkJCWJyZWFrOworCisJCQlkZWZhdWx0OgorCQkJCWlmICghbm9lcnJv cikKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9F UlJPUiksCisJCQkJCQkJIGVycm1zZygiaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55 IGRvdHRlZCBuYW1lcyk6ICVzIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkp OworCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQl9CisKKwkJLyoKKwkJICogSWYsIHVwb24gcmV0 cnksIHdlIGdldCBiYWNrIHRoZSBzYW1lIE9JRCB3ZSBkaWQgbGFzdCB0aW1lLCB0aGVuIHRoZQor CQkgKiBpbnZhbGlkYXRpb24gbWVzc2FnZXMgd2UgcHJvY2Vzc2VkIGRpZCBub3QgY2hhbmdlIHRo ZSBmaW5hbCBhbnN3ZXIuCisJCSAqIFNvIHdlJ3JlIGRvbmUuCisJCSAqCisJCSAqIElmIHdlIGdv dCBhIGRpZmZlcmVudCBPSUQsIHdlJ3ZlIGxvY2tlZCB0aGUgdmFyaWFibGUgdGhhdCB1c2VkIHRv CisJCSAqIGhhdmUgdGhpcyBuYW1lIHJhdGhlciB0aGFuIHRoZSBvbmUgdGhhdCBkb2VzIG5vdy4g IFNvIHJlbGVhc2UgdGhlCisJCSAqIGxvY2suCisJCSAqLworCQlpZiAocmV0cnkpCisJCXsKKwkJ CWlmIChvbGRfdmFyaWQgPT0gdmFyaWQpCisJCQkJYnJlYWs7CisKKwkJCWlmIChPaWRJc1ZhbGlk KG9sZF92YXJpZCkpCisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklk LCBvbGRfdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKworCQkvKgorCQkgKiBMb2Nr IHRoZSB2YXJpYWJsZS4gIFRoaXMgd2lsbCBhbHNvIGFjY2VwdCBhbnkgcGVuZGluZyBpbnZhbGlk YXRpb24KKwkJICogbWVzc2FnZXMuICBJZiB3ZSBnb3QgYmFjayBJbnZhbGlkT2lkLCBpbmRpY2F0 aW5nIG5vdCBmb3VuZCwgdGhlbgorCQkgKiB0aGVyZSdzIG5vdGhpbmcgdG8gbG9jaywgYnV0IHdl IGFjY2VwdCBpbnZhbGlkYXRpb24gbWVzc2FnZXMKKwkJICogYW55d2F5LCB0byBmbHVzaCBhbnkg bmVnYXRpdmUgY2F0Y2FjaGUgZW50cmllcyB0aGF0IG1heSBiZQorCQkgKiBsaW5nZXJpbmcuCisJ CSAqLworCQlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQkJQWNjZXB0SW52YWxpZGF0aW9uTWVz c2FnZXMoKTsKKwkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJCQlMb2NrRGF0YWJhc2VP YmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwor CQlpZiAoaW52YWxfY291bnQgPT0gU2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyKQorCQkJYnJl YWs7CisKKwkJcmV0cnkgPSB0cnVlOworCQlvbGRfdmFyaWQgPSB2YXJpZDsKKwkJdmFyaWQgPSBJ bnZhbGlkT2lkOworCX0KKworCXJldHVybiB2YXJpZDsKK30KKwogLyoKICAqIERlY29uc3RydWN0 UXVhbGlmaWVkTmFtZQogICoJCUdpdmVuIGEgcG9zc2libHktcXVhbGlmaWVkIG5hbWUgZXhwcmVz c2VkIGFzIGEgbGlzdCBvZiBTdHJpbmcgbm9kZXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMK aW5kZXggZjY1MTIxNDQwYTkuLjFjNzMxODFjM2RhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJs ZS5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNp bmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgor I2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAK IHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1l LApAQCAtMTAxLDYgKzEwMiw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1l LAogCXZhcmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElkLCBB bnVtX3BnX3ZhcmlhYmxlX29pZCk7CiAKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQgLSAx XSA9IE9iamVjdElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zh cmNyZWF0ZV9sc24gLSAxXSA9IExTTkdldERhdHVtKEdldFhMb2dJbnNlcnRSZWNQdHIoKSk7CiAJ dmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2YXJu YW1lKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVj dElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0 eXBlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQpp bmRleCA0OGY3MzQ4ZjkxYy4uMWNmYWVjYTUxZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC01 MCw2ICs1MCw3IEBAIE9CSlMgPSBcCiAJc2NoZW1hY21kcy5vIFwKIAlzZWNsYWJlbC5vIFwKIAlz ZXF1ZW5jZS5vIFwKKwlzZXNzaW9uX3ZhcmlhYmxlLm8gXAogCXN0YXRzY21kcy5vIFwKIAlzdWJz Y3JpcHRpb25jbWRzLm8gXAogCXRhYmxlY21kcy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQK aW5kZXggNmRkMDBhNGFiZGUuLmNhNjIxYmU1ZWNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWls ZApAQCAtMzgsNiArMzgsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdzY2hlbWFj bWRzLmMnLAogICAnc2VjbGFiZWwuYycsCiAgICdzZXF1ZW5jZS5jJywKKyAgJ3Nlc3Npb25fdmFy aWFibGUuYycsCiAgICdzdGF0c2NtZHMuYycsCiAgICdzdWJzY3JpcHRpb25jbWRzLmMnLAogICAn dGFibGVjbWRzLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDA3MjU3ZDRkYjk0Li43MTll NjNmZTgyMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtMzM4LDYgKzMzOCwxNCBAQCBFdmFs dWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVkU3RhdGVtZW50ICpwc3RtdCwg TGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRzIG9mIEVY RUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9uCisJICogZXhlY3V0b3Ig Y2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMgeWV0Lgor CSAqIEl0IHdpbGwgYmUgZW5hYmxlZCBsYXRlci4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1Nl c3Npb25WYXJpYWJsZXMpCisJCWVsb2coRVJST1IsICJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBi ZSB1c2VkIGFzIGFuIGFyZ3VtZW50Iik7CisKIAkvKiBQcmVwYXJlIHRoZSBleHByZXNzaW9ucyBm b3IgZXhlY3V0aW9uICovCiAJZXhwcnN0YXRlcyA9IEV4ZWNQcmVwYXJlRXhwckxpc3QocGFyYW1z LCBlc3RhdGUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzZTdmYTk5Zjc3Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0wLDAg KzEsNTc0IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzZXNzaW9uX3ZhcmlhYmxlLmMK KyAqCSAgc2Vzc2lvbiB2YXJpYWJsZSBjcmVhdGlvbi9tYW5pcHVsYXRpb24gY29tbWFuZHMKKyAq CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElERU5USUZJQ0FU SU9OCisgKgkgIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworICoKKyAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKKyNpbmNsdWRl ICJmdW5jYXBpLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicmV3cml0ZS9y ZXdyaXRlSGFuZGxlci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInN0 b3JhZ2UvcHJvYy5oIgorI2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKKyNpbmNsdWRlICJ1dGls cy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2RhdHVtLmgiCisjaW5jbHVkZSAidXRpbHMv aW52YWwuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9z bmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworLyoKKyAqIFRoZSB2YWx1 ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZh dGUgbWVtb3J5CisgKiBpbiB0aGUgZGVkaWNhdGVkIG1lbW9yeSBjb250ZXh0IFNWYXJpYWJsZU1l bW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KKyAqIFRoZXkgYXJlIHN0b3JlZCBpbiB0aGUg InNlc3Npb252YXJzIiBoYXNoIHRhYmxlLCB3aG9zZSBrZXkgaXMgdGhlIE9JRCBvZiB0aGUKKyAq IHZhcmlhYmxlLiAgSG93ZXZlciwgdGhlIE9JRCBpcyBub3QgZ29vZCBlbm91Z2ggdG8gaWRlbnRp ZnkgYSBzZXNzaW9uCisgKiB2YXJpYWJsZTogY29uY3VycmVudCBzZXNzaW9ucyBjb3VsZCBkcm9w IHRoZSBzZXNzaW9uIHZhcmlhYmxlIGFuZCBjcmVhdGUgYQorICogbmV3IG9uZSwgd2hpY2ggY291 bGQgYmUgYXNzaWduZWQgdGhlIHNhbWUgT0lELiAgVG8gZW5zdXJlIHRoYXQgdGhlIHZhbHVlcwor ICogc3RvcmVkIGluIG1lbW9yeSBhbmQgdGhlIGNhdGFsb2cgZGVmaW5pdGlvbiBtYXRjaCwgd2Ug YWxzbyBrZWVwIHRyYWNrIG9mCisgKiB0aGUgImNyZWF0ZV9sc24iLiAgQmVmb3JlIGFueSBhY2Nl c3MgdG8gdGhlIHZhcmlhYmxlIHZhbHVlcywgd2UgbmVlZCB0bworICogY2hlY2sgaWYgdGhlIExT TiBzdG9yZWQgaW4gbWVtb3J5IG1hdGNoZXMgdGhlIExTTiBpbiB0aGUgY2F0YWxvZy4gIElmIHRo ZXJlCisgKiBpcyBhIG1pc21hdGNoIGJldHdlZW4gdGhlIExTTnMsIG9yIGlmIHRoZSBPSUQgaXMg bm90IHByZXNlbnQgaW4gcGdfdmFyaWFibGUKKyAqIGF0IGFsbCwgdGhlIHZhbHVlIHN0b3JlZCBp biBtZW1vcnkgaXMgcmVsZWFzZWQuCisgKi8KK3R5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEK K3sKKwlPaWQJCQl2YXJpZDsJCQkvKiBwZ192YXJpYWJsZSBPSUQgb2YgdGhlIHZhcmlhYmxlICho YXNoIGtleSkgKi8KKwlYTG9nUmVjUHRyCWNyZWF0ZV9sc247CisKKwlib29sCQlpc251bGw7CisJ RGF0dW0JCXZhbHVlOworCisJT2lkCQkJdHlwaWQ7CisJaW50MTYJCXR5cGxlbjsKKwlib29sCQl0 eXBieXZhbDsKKworCWJvb2wJCWlzX2RvbWFpbjsKKworCS8qCisJICogZG9tYWluX2NoZWNrX2V4 dHJhIGhvbGRzIGNhY2hlZCBkb21haW4gbWV0YWRhdGEuICBUaGlzICJleHRyYSIgaXMKKwkgKiB1 c3VhbGx5IHN0b3JlZCBpbiBmbl9tY3h0LiAgV2UgZG8gbm90IGhhdmUgYWNjZXNzIHRvIHRoYXQg bWVtb3J5IGNvbnRleHQKKwkgKiBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMsIGJ1dCB3ZSBjYW4gdXNl IFRvcFRyYW5zYWN0aW9uQ29udGV4dCBpbnN0ZWFkLgorCSAqIEEgZnJlc2ggdmFsdWUgaXMgZm9y Y2VkIHdoZW4gd2UgZGV0ZWN0IHdlIGFyZSBpbiBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbgorCSAq ICh0aGUgbG9jYWwgdHJhbnNhY3Rpb24gSUQgZGlmZmVycyBmcm9tIGRvbWFpbl9jaGVja19leHRy YV9seGlkKS4KKwkgKi8KKwl2b2lkCSAgICpkb21haW5fY2hlY2tfZXh0cmE7CisJTG9jYWxUcmFu c2FjdGlvbklkIGRvbWFpbl9jaGVja19leHRyYV9seGlkOworCisJLyoKKwkgKiBTdG9yZWQgdmFs dWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJlIG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZSBh CisJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVuIGhhdmUgdG8gY2hlY2sgaWYgdGhlIHN0b3Jl ZCBkYXRhIGFyZSBzdGlsbAorCSAqIHRydXN0d29ydGh5LgorCSAqLworCWJvb2wJCWlzX3ZhbGlk OworCisJdWludDMyCQloYXNodmFsdWU7CQkvKiB1c2VkIGZvciBwYWlyaW5nIHNpbnZhbCBtZXNz YWdlICovCit9IFNWYXJpYWJsZURhdGE7CisKK3R5cGVkZWYgU1ZhcmlhYmxlRGF0YSAqU1Zhcmlh YmxlOworCitzdGF0aWMgSFRBQiAqc2Vzc2lvbnZhcnMgPSBOVUxMOwkvKiBoYXNoIHRhYmxlIGZv ciBzZXNzaW9uIHZhcmlhYmxlcyAqLworCitzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVN ZW1vcnlDb250ZXh0ID0gTlVMTDsKKworLyoKKyAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNz aW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK3BnX3ZhcmlhYmxl X2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUp Cit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKworCWVsb2co REVCVUcxLCAicGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2sgJXUgJXUiLCBjYWNoZWlkLCBoYXNo dmFsdWUpOworCisJQXNzZXJ0KHNlc3Npb252YXJzKTsKKworCS8qCisJICogSWYgdGhlIGhhc2h2 YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQor CSAqIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMuICBTaW5jZSB3ZSBjYW4ndCB0ZWxsIHRoZSBleGFj dCBzZXNzaW9uIHZhcmlhYmxlCisJICogZnJvbSBpdHMgaGFzaHZhbHVlLCB3ZSBoYXZlIHRvIGl0 ZXJhdGUgb3ZlciBhbGwgaXRlbXMgaW4gdGhlIGhhc2ggYnVja2V0LgorCSAqLworCWhhc2hfc2Vx X2luaXQoJnN0YXR1cywgc2Vzc2lvbnZhcnMpOworCisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJs ZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCXsKKwkJaWYgKGhhc2h2YWx1 ZSA9PSAwIHx8IHN2YXItPmhhc2h2YWx1ZSA9PSBoYXNodmFsdWUpCisJCXsKKwkJCXN2YXItPmlz X3ZhbGlkID0gZmFsc2U7CisJCX0KKwl9Cit9CisKKy8qCisgKiBSZWxlYXNlIHN0b3JlZCB2YWx1 ZSwgZnJlZSBtZW1vcnkKKyAqLworc3RhdGljIHZvaWQKK2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92 YWx1ZShTVmFyaWFibGUgc3ZhcikKK3sKKwkvKiBjbGVhbiB0aGUgY3VycmVudCB2YWx1ZSAqLwor CWlmICghc3Zhci0+aXNudWxsKQorCXsKKwkJaWYgKCFzdmFyLT50eXBieXZhbCkKKwkJCXBmcmVl KERhdHVtR2V0UG9pbnRlcihzdmFyLT52YWx1ZSkpOworCisJCXN2YXItPmlzbnVsbCA9IHRydWU7 CisJfQorCisJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRy dWUgd2hlbiB0aGUgZW50cnkgaW4gcGdfdmFyaWFibGUgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBn aXZlbgorICogc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworc3RhdGljIGJvb2wKK2lzX3Nlc3Npb25f dmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIpCit7CisJSGVhcFR1cGxlCXRwOworCWJvb2wJ CXJlc3VsdCA9IGZhbHNlOworCisJQXNzZXJ0KE9pZElzVmFsaWQoc3Zhci0+dmFyaWQpKTsKKwor CXRwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHN2YXIt PnZhcmlkKSk7CisKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJeworCQkvKgorCQkgKiBU aGUgT0lEIGFsb25lIGlzIG5vdCBlbm91Z2ggYXMgYW4gdW5pcXVlIGlkZW50aWZpZXIsIGJlY2F1 c2UgT0lECisJCSAqIHZhbHVlcyBnZXQgcmVjeWNsZWQsIGFuZCBhIG5ldyBzZXNzaW9uIHZhcmlh YmxlIGNvdWxkIGhhdmUgZ290CisJCSAqIHRoZSBzYW1lIE9JRC4gIFdlIGRvIGEgc2Vjb25kIGNo ZWNrIGFnYWluc3QgdGhlIDY0LWJpdCBMU04gd2hlbgorCQkgKiB0aGUgdmFyaWFibGUgd2FzIGNy ZWF0ZWQuCisJCSAqLworCQlpZiAoc3Zhci0+Y3JlYXRlX2xzbiA9PSAoKEZvcm1fcGdfdmFyaWFi bGUpIEdFVFNUUlVDVCh0cCkpLT52YXJjcmVhdGVfbHNuKQorCQkJcmVzdWx0ID0gdHJ1ZTsKKwor CQlSZWxlYXNlU3lzQ2FjaGUodHApOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisg KiBJbml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGluICJzdmFyIgorICovCitzdGF0aWMgdm9p ZAorc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkKQorewor CUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJQXNzZXJ0KE9p ZElzVmFsaWQodmFyaWQpKTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwg T2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkp CisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxl ICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1Qo dHVwKTsKKworCXN2YXItPnZhcmlkID0gdmFyaWQ7CisJc3Zhci0+Y3JlYXRlX2xzbiA9IHZhcmZv cm0tPnZhcmNyZWF0ZV9sc247CisKKwlzdmFyLT50eXBpZCA9IHZhcmZvcm0tPnZhcnR5cGU7CisK KwlnZXRfdHlwbGVuYnl2YWwoc3Zhci0+dHlwaWQsICZzdmFyLT50eXBsZW4sICZzdmFyLT50eXBi eXZhbCk7CisKKwlzdmFyLT5pc19kb21haW4gPSAoZ2V0X3R5cHR5cGUodmFyZm9ybS0+dmFydHlw ZSkgPT0gVFlQVFlQRV9ET01BSU4pOworCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7 CisJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlv bklkOworCisJc3Zhci0+aXNudWxsID0gdHJ1ZTsKKwlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsK KworCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKworCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0Nh Y2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2 YXJpZCkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7Cit9CisKKy8qCisgKiBBc3NpZ24gYSBu ZXcgdmFsdWUgdG8gdGhlIHNlc3Npb24gdmFyaWFibGUuICBJdCBpcyBjb3BpZWQgdG8KKyAqIFNW YXJpYWJsZU1lbW9yeUNvbnRleHQgaWYgbmVjZXNzYXJ5LgorICoKKyAqIElmIGFueSBlcnJvciBo YXBwZW5zLCB0aGUgZXhpc3RpbmcgdmFsdWUgd29uJ3QgYmUgbW9kaWZpZWQuCisgKi8KK3N0YXRp YyB2b2lkCitzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUs IGJvb2wgaXNudWxsKQoreworCURhdHVtCQluZXd2YWw7CisJU1ZhcmlhYmxlRGF0YSBsb2NzdmFy LAorCQkJICAgKl9zdmFyOworCisJQXNzZXJ0KHN2YXIpOworCUFzc2VydCghaXNudWxsIHx8IHZh bHVlID09IChEYXR1bSkgMCk7CisKKwkvKgorCSAqIFVzZSB0eXBieXZhbCwgdHlwYnlsZW4gZnJv bSBzZXNzaW9uIHZhcmlhYmxlIG9ubHkgd2hlbiB0aGV5IGFyZQorCSAqIHRydXN0d29ydGh5ICh0 aGUgaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2FzIG5vdCBhY2NlcHRlZCBmb3IgdGhpcworCSAqIHZh cmlhYmxlKS4gIElmIHRoZSB2YXJpYWJsZSBtaWdodCBiZSBpbnZhbGlkLCBmb3JjZSBzZXR1cC4K KwkgKgorCSAqIERvIG5vdCBvdmVyd3JpdGUgdGhlIHBhc3NlZCBzZXNzaW9uIHZhcmlhYmxlIHVu dGlsIHdlIGNhbiBiZSBjZXJ0YWluCisJICogdGhhdCBubyBlcnJvciBjYW4gYmUgdGhyb3duLgor CSAqLworCWlmICghc3Zhci0+aXNfdmFsaWQpCisJeworCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxl KCZsb2NzdmFyLCBzdmFyLT52YXJpZCk7CisJCV9zdmFyID0gJmxvY3N2YXI7CisJfQorCWVsc2UK KwkJX3N2YXIgPSBzdmFyOworCisJaWYgKCFpc251bGwpCisJeworCQlNZW1vcnlDb250ZXh0IG9s ZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKKwor CQluZXd2YWwgPSBkYXR1bUNvcHkodmFsdWUsIF9zdmFyLT50eXBieXZhbCwgX3N2YXItPnR5cGxl bik7CisKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CisJfQorCWVsc2UKKwkJbmV3 dmFsID0gdmFsdWU7CisKKwlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisKKwll bG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBuZXcg dmFsdWUiLAorCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVz cGFjZShzdmFyLT52YXJpZCkpLAorCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShzdmFyLT52 YXJpZCksCisJCSBzdmFyLT52YXJpZCk7CisKKwkvKiBubyBtb3JlIGVycm9yIGV4cGVjdGVkLCBz byB3ZSBjYW4gb3ZlcndyaXRlIHRoZSBvbGQgdmFyaWFibGUgbm93ICovCisJaWYgKHN2YXIgIT0g X3N2YXIpCisJCW1lbWNweShzdmFyLCBfc3Zhciwgc2l6ZW9mKFNWYXJpYWJsZURhdGEpKTsKKwor CXN2YXItPnZhbHVlID0gbmV3dmFsOworCXN2YXItPmlzbnVsbCA9IGlzbnVsbDsKK30KKworLyoK KyAqIENyZWF0ZSB0aGUgaGFzaCB0YWJsZSBmb3Igc3RvcmluZyBzZXNzaW9uIHZhcmlhYmxlcy4K KyAqLworc3RhdGljIHZvaWQKK2NyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKHZvaWQpCit7 CisJSEFTSENUTAkJdmFyc19jdGw7CisKKwlBc3NlcnQoIXNlc3Npb252YXJzKTsKKworCWlmICgh U1ZhcmlhYmxlTWVtb3J5Q29udGV4dCkKKwl7CisJCS8qIHJlYWQgc2ludmFsIG1lc3NhZ2VzICov CisJCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKFZBUklBQkxFT0lELAorCQkJCQkJCQkJ ICBwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjaywKKwkJCQkJCQkJCSAgKERhdHVtKSAwKTsKKwor CQkvKiB3ZSBuZWVkIG91ciBvd24gbG9uZy1saXZlZCBtZW1vcnkgY29udGV4dCAqLworCQlTVmFy aWFibGVNZW1vcnlDb250ZXh0ID0KKwkJCUFsbG9jU2V0Q29udGV4dENyZWF0ZShUb3BNZW1vcnlD b250ZXh0LAorCQkJCQkJCQkgICJzZXNzaW9uIHZhcmlhYmxlcyIsCisJCQkJCQkJCSAgQUxMT0NT RVRfU1RBUlRfU01BTExfU0laRVMpOworCX0KKworCW1lbXNldCgmdmFyc19jdGwsIDAsIHNpemVv Zih2YXJzX2N0bCkpOworCXZhcnNfY3RsLmtleXNpemUgPSBzaXplb2YoT2lkKTsKKwl2YXJzX2N0 bC5lbnRyeXNpemUgPSBzaXplb2YoU1ZhcmlhYmxlRGF0YSk7CisJdmFyc19jdGwuaGN4dCA9IFNW YXJpYWJsZU1lbW9yeUNvbnRleHQ7CisKKwlzZXNzaW9udmFycyA9IGhhc2hfY3JlYXRlKCJTZXNz aW9uIHZhcmlhYmxlcyIsIDY0LCAmdmFyc19jdGwsCisJCQkJCQkJICBIQVNIX0VMRU0gfCBIQVNI X0JMT0JTIHwgSEFTSF9DT05URVhUKTsKK30KKworLyoKKyAqIFNlYXJjaCBhIHNlc3Npb24gdmFy aWFibGUgaW4gdGhlIGhhc2ggdGFibGUgZ2l2ZW4gaXRzIE9JRC4gIElmIGl0CisgKiBkb2Vzbid0 IGV4aXN0LCB0aGVuIGluc2VydCBpdCB0aGVyZS4KKyAqCisgKiBUaGUgY2FsbGVyIGlzIHJlc3Bv bnNpYmxlIGZvciBkb2luZyBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqCisgKiBBcyBhIHNpZGUgZWZm ZWN0LCB0aGlzIGZ1bmN0aW9uIGFjcXVpcmVzIGEgQWNjZXNzU2hhcmVMb2NrIG9uIHRoZQorICog c2Vzc2lvbiB2YXJpYWJsZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSB0cmFuc2FjdGlvbi4KKyAqLwor c3RhdGljIFNWYXJpYWJsZQorZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQoreworCVNW YXJpYWJsZQlzdmFyOworCWJvb2wJCWZvdW5kOworCisJLyogcHJvdGVjdCB0aGUgdXNlZCBzZXNz aW9uIHZhcmlhYmxlIGFnYWluc3QgRFJPUCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJs ZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNzaW9u dmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBIQVNI X0VOVEVSLCAmZm91bmQpOworCisJaWYgKGZvdW5kKQorCXsKKwkJaWYgKCFzdmFyLT5pc192YWxp ZCkKKwkJeworCQkJLyoKKwkJCSAqIElmIHRoZXJlIHdhcyBhbiBpbnZhbGlkYXRpb24gbWVzc2Fn ZSwgdGhlIHZhcmlhYmxlIG1pZ2h0IHN0aWxsIGJlCisJCQkgKiB2YWxpZCwgYnV0IHdlIGhhdmUg dG8gY2hlY2sgd2l0aCB0aGUgc3lzdGVtIGNhdGFsb2cuCisJCQkgKi8KKwkJCWlmIChpc19zZXNz aW9uX3ZhcmlhYmxlX3ZhbGlkKHN2YXIpKQorCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwkJ CWVsc2UKKwkJCQkvKiBpZiB0aGUgdmFsdWUgY2Fubm90IGJlIHZhbGlkYXRlZCwgd2UgaGF2ZSB0 byBkaXNjYXJkIGl0ICovCisJCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOwor CQl9CisJfQorCWVsc2UKKwkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKworCS8qCisJICogRm9y Y2Ugc2V0dXAgZm9yIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgdmFyaWFibGVzIG9yIHZhcmlhYmxlcyB0 aGF0IGNhbm5vdAorCSAqIGJlIHZhbGlkYXRlZC4KKwkgKi8KKwlpZiAoIXN2YXItPmlzX3ZhbGlk KQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCk7CisKKwkJZWxvZyhE RUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQg ZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFJFQUQpIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25h bWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkgZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkgdmFyaWQpOworCX0KKworCS8qIGVuc3VyZSB0 aGUgcmV0dXJuZWQgZGF0YSBpcyBzdGlsbCBvZiB0aGUgY29ycmVjdCBkb21haW4gKi8KKwlpZiAo c3Zhci0+aXNfZG9tYWluKQorCXsKKwkJLyoKKwkJICogU3RvcmUgImV4dHJhIiBmb3IgZG9tYWlu X2NoZWNrKCkgaW4gVG9wVHJhbnNhY3Rpb25Db250ZXh0LiAgV2hlbiB3ZQorCQkgKiBhcmUgaW4g YSBuZXcgdHJhbnNhY3Rpb24sIGRvbWFpbl9jaGVja19leHRyYSBjYWNoZSBpcyBub3QgdmFsaWQg YW55CisJCSAqIG1vcmUuCisJCSAqLworCQlpZiAoc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4 aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBO VUxMOworCisJCWRvbWFpbl9jaGVjayhzdmFyLT52YWx1ZSwgc3Zhci0+aXNudWxsLAorCQkJCQkg c3Zhci0+dHlwaWQsICZzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEsCisJCQkJCSBUb3BUcmFuc2Fj dGlvbkNvbnRleHQpOworCisJCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkID0gTXlQcm9j LT52eGlkLmx4aWQ7CisJfQorCisJcmV0dXJuIHN2YXI7Cit9CisKKy8qCisgKiBTdG9yZSB0aGUg Z2l2ZW4gdmFsdWUgaW4gYSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBjYWNoZS4KKyAqCisgKiBU aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBwZXJtaXNzaW9uIGNoZWNrcy4KKyAq CisgKiBBcyBhIHNpZGUgZWZmZWN0LCB0aGlzIGZ1bmN0aW9uIGFjcXVpcmVzIGEgQWNjZXNzU2hh cmVMb2NrIG9uIHRoZSBzZXNzaW9uCisgKiB2YXJpYWJsZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSB0 cmFuc2FjdGlvbi4KKyAqLwordm9pZAorU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0 dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQoreworCVNWYXJpYWJsZQlzdmFyOworCWJvb2wJCWZvdW5k OworCisJLyogcHJvdGVjdCB1c2VkIHNlc3Npb24gdmFyaWFibGUgYWdhaW5zdCBEUk9QICovCisJ TG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1No YXJlTG9jayk7CisKKwlpZiAoIXNlc3Npb252YXJzKQorCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFz aHRhYmxlcygpOworCisJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJz LCAmdmFyaWQsCisJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CisKKwlpZiAoIWZvdW5k KQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCk7CisKKwkJZWxvZyhE RUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQg ZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFdSSVRFKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9u YW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJIGdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpLAorCQkJIHZhcmlkKTsKKwl9CisK KwkvKiBpZiB0aGlzIGZhaWxzLCBpdCB3b24ndCBjaGFuZ2UgdGhlIHN0b3JlZCB2YWx1ZSAqLwor CXNldF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhbHVlLCBpc051bGwpOworfQorCisvKgorICog V3JhcHBlciBhcm91bmQgU2V0U2Vzc2lvblZhcmlhYmxlIHdpdGggcGVybWlzc2lvbiBjaGVja3Mu CisgKi8KK3ZvaWQKK1NldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJp ZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQoreworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisK KwkvKiBpcyB0aGUgY2FsbGVyIGFsbG93ZWQgdG8gdXBkYXRlIHRoZSBzZXNzaW9uIHZhcmlhYmxl PyAqLworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZh cmlkLCBHZXRVc2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVD S19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsIGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZSh2YXJp ZCwgdmFsdWUsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFs dWUgc3RvcmVkIGluIGEgdmFyaWFibGUuCisgKi8KK3N0YXRpYyBpbmxpbmUgRGF0dW0KK2NvcHlf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCAqaXNOdWxsKQorewor CURhdHVtCQl2YWx1ZTsKKworCS8qIGZvcmNlIGNvcHkgb2Ygbm9uIE5VTEwgdmFsdWUgKi8KKwlp ZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJCXZhbHVlID0gZGF0dW1Db3B5KHN2YXItPnZhbHVlLCBz dmFyLT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwkJKmlzTnVsbCA9IGZhbHNlOworCX0KKwll bHNlCisJeworCQl2YWx1ZSA9IChEYXR1bSkgMDsKKwkJKmlzTnVsbCA9IHRydWU7CisJfQorCisJ cmV0dXJuIHZhbHVlOworfQorCisvKgorICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIG9m IHRoZSBzZXNzaW9uIHZhcmlhYmxlIChpbiB0aGUgY3VycmVudCBtZW1vcnkKKyAqIGNvbnRleHQp LiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcGVybWlzc2lvbiBjaGVja3MuCisgKi8K K0RhdHVtCitHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAq dHlwaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFi bGUodmFyaWQpOworCisJLyoKKwkgKiBBbHRob3VnaCBzdmFyIGlzIGZyZXNobHkgdmFsaWRhdGVk IGluIHRoaXMgcG9pbnQsIHRoZSBzdmFyLT5pc192YWxpZCBjYW4KKwkgKiBiZSBmYWxzZSwgZHVl IHBvc3NpYmxlIGFjY2VwdGluZyBpbnZhbGlkYXRpb24gbWVzc2FnZSBpbnNpZGUgZG9tYWluCisJ ICogY2hlY2suIE5vdywgdGhlIHZhbGlkYXRpb24gaXMgZG9uZSBhZnRlciBsb2NrLCB0aGF0IGNh biBhbHNvIGFjY2VwdAorCSAqIGludmFsaWRhdGlvbiBtZXNzYWdlLCBzbyB2YWxpZGF0aW9uIHNo b3VsZCBiZSB0cnVzdGZ1bC4KKwkgKgorCSAqIEZvciBub3csIHdlIGRvbid0IG5lZWQgdG8gcmVw ZWF0IHZhbGlkYXRpb24uIE9ubHkgc3ZhciBzaG91bGQgYmUgdmFsaWQKKwkgKiBwb2ludGVyLgor CSAqLworCUFzc2VydChzdmFyKTsKKworCSp0eXBpZCA9IHN2YXItPnR5cGlkOworCisJcmV0dXJu IGNvcHlfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOworfQorCisvKgorICog UmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGFmdGVy IGNoZWNraW5nIGlmIHRoZQorICogdHlwZSBpcyB0aGUgc2FtZSBhcyAiZXhwZWN0ZWRfdHlwaWQi LiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IKKyAqIHBlcm1pc3Npb24gY2hlY2tzLgor ICovCitEYXR1bQorR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJv b2wgKmlzTnVsbCwgT2lkIGV4cGVjdGVkX3R5cGlkKQoreworCVNWYXJpYWJsZQlzdmFyOworCisJ c3ZhciA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlKHZhcmlkKTsKKworCUFzc2VydChzdmFyICYmIHN2 YXItPmlzX3ZhbGlkKTsKKworCWlmIChleHBlY3RlZF90eXBpZCAhPSBzdmFyLT50eXBpZCkKKwkJ ZWxvZyhFUlJPUiwgInR5cGUgb2YgdmFyaWFibGUgXCIlcy4lc1wiIGlzIGRpZmZlcmVudCB0aGFu IGV4cGVjdGVkIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkp OworCisJcmV0dXJuIGNvcHlfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOwor fQorCisvKgorICogQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRlZCBleHByZXNzaW9u IHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3ZvaWQKK0V4ZWN1dGVMZXRTdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwKKwkJCSAgIExldFN0bXQgKnN0bXQsCisJCQkgICBQYXJhbUxpc3RJbmZv IHBhcmFtcywKKwkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAorCQkJICAgUXVlcnlD b21wbGV0aW9uICpxYykKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSBjYXN0Tm9kZShRdWVyeSwgc3Rt dC0+cXVlcnkpOworCUxpc3QJICAgKnJld3JpdHRlbjsKKwlEZXN0UmVjZWl2ZXIgKmRlc3Q7CisJ QWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlQbGFubmVkU3RtdCAqcGxhbjsKKwlRdWVyeURlc2MgICpx dWVyeURlc2M7CisJT2lkCQkJdmFyaWQgPSBxdWVyeS0+cmVzdWx0VmFyaWFibGU7CisKKwlBc3Nl cnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJLyogZG8gd2UgaGF2ZSBwZXJtaXNzaW9uIHRvIHdy aXRlIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlPyAqLworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xj aGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwgQUNMX1VQREFURSk7 CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVz dWx0LCBPQkpFQ1RfVkFSSUFCTEUsIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsK KworCS8qIGNyZWF0ZSBhIGRlc3QgcmVjZWl2ZXIgZm9yIExFVCAqLworCWRlc3QgPSBDcmVhdGVW YXJpYWJsZURlc3RSZWNlaXZlcih2YXJpZCk7CisKKwkvKiBydW4gdGhlIHF1ZXJ5IHJld3JpdGVy ICovCisJcXVlcnkgPSBjb3B5T2JqZWN0KHF1ZXJ5KTsKKworCXJld3JpdHRlbiA9IFF1ZXJ5UmV3 cml0ZShxdWVyeSk7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKwor CXF1ZXJ5ID0gbGluaXRpYWxfbm9kZShRdWVyeSwgcmV3cml0dGVuKTsKKwlBc3NlcnQocXVlcnkt PmNvbW1hbmRUeXBlID09IENNRF9TRUxFQ1QpOworCisJLyogcGxhbiB0aGUgcXVlcnkgKi8KKwlw bGFuID0gcGdfcGxhbl9xdWVyeShxdWVyeSwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkg Q1VSU09SX09QVF9QQVJBTExFTF9PSywgcGFyYW1zKTsKKworCS8qCisJICogVXNlIGEgc25hcHNo b3Qgd2l0aCBhbiB1cGRhdGVkIGNvbW1hbmQgSUQgdG8gZW5zdXJlIHRoaXMgcXVlcnkgc2VlcyB0 aGUKKwkgKiByZXN1bHRzIG9mIGFueSBwcmV2aW91c2x5IGV4ZWN1dGVkIHF1ZXJpZXMuICAoVGhp cyBjb3VsZCBvbmx5IG1hdHRlciBpZgorCSAqIHRoZSBwbGFubmVyIGV4ZWN1dGVkIGFuIGFsbGVn ZWRseS1zdGFibGUgZnVuY3Rpb24gdGhhdCBjaGFuZ2VkIHRoZQorCSAqIGRhdGFiYXNlIGNvbnRl bnRzLCBidXQgbGV0J3MgZG8gaXQgYW55d2F5IHRvIGJlIHBhcmFsbGVsIHRvIHRoZSBFWFBMQUlO CisJICogY29kZSBwYXRoLikKKwkgKi8KKwlQdXNoQ29waWVkU25hcHNob3QoR2V0QWN0aXZlU25h cHNob3QoKSk7CisJVXBkYXRlQWN0aXZlU25hcHNob3RDb21tYW5kSWQoKTsKKworCS8qIGNyZWF0 ZSBhIFF1ZXJ5RGVzYywgcmVkaXJlY3Rpbmcgb3V0cHV0IHRvIG91ciB0dXBsZSByZWNlaXZlciAq LworCXF1ZXJ5RGVzYyA9IENyZWF0ZVF1ZXJ5RGVzYyhwbGFuLCBwc3RhdGUtPnBfc291cmNldGV4 dCwKKwkJCQkJCQkJR2V0QWN0aXZlU25hcHNob3QoKSwgSW52YWxpZFNuYXBzaG90LAorCQkJCQkJ CQlkZXN0LCBwYXJhbXMsIHF1ZXJ5RW52LCAwKTsKKworCS8qIGNhbGwgRXhlY3V0b3JTdGFydCB0 byBwcmVwYXJlIHRoZSBwbGFuIGZvciBleGVjdXRpb24gKi8KKwlFeGVjdXRvclN0YXJ0KHF1ZXJ5 RGVzYywgMCk7CisKKwkvKgorCSAqIFJ1biB0aGUgcGxhbiB0byBjb21wbGV0aW9uLiAgVGhlIHJl c3VsdCBzaG91bGQgYmUgb25seSBvbmUgcm93LiAgVG8KKwkgKiBjaGVjayBpZiB0aGVyZSBhcmUg dG9vIG1hbnkgcmVzdWx0IHJvd3MsIHdlIHRyeSB0byBmZXRjaCB0d28uCisJICovCisJRXhlY3V0 b3JSdW4ocXVlcnlEZXNjLCBGb3J3YXJkU2NhbkRpcmVjdGlvbiwgMkwsIHRydWUpOworCisJLyog c2F2ZSB0aGUgcm93Y291bnQgaWYgd2UncmUgZ2l2ZW4gYSBRdWVyeUNvbXBsZXRpb24gdG8gZmls bCAqLworCWlmIChxYykKKwkJU2V0UXVlcnlDb21wbGV0aW9uKHFjLCBDTURUQUdfTEVULCBxdWVy eURlc2MtPmVzdGF0ZS0+ZXNfcHJvY2Vzc2VkKTsKKworCS8qIGFuZCBjbGVhbiB1cCAqLworCUV4 ZWN1dG9yRmluaXNoKHF1ZXJ5RGVzYyk7CisJRXhlY3V0b3JFbmQocXVlcnlEZXNjKTsKKworCUZy ZWVRdWVyeURlc2MocXVlcnlEZXNjKTsKKworCVBvcEFjdGl2ZVNuYXBzaG90KCk7Cit9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL01ha2VmaWxlCmluZGV4IDExMTE4ZDBjZTAyLi43MTI0OGEzNGYyNiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv TWFrZWZpbGUKQEAgLTc2LDYgKzc2LDcgQEAgT0JKUyA9IFwKIAlub2RlV2luZG93QWdnLm8gXAog CW5vZGVXb3JrdGFibGVzY2FuLm8gXAogCXNwaS5vIFwKKwlzdmFyaWFibGVSZWNlaXZlci5vIFwK IAl0cXVldWUubyBcCiAJdHN0b3JlUmVjZWl2ZXIubwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpp bmRleCA2NmRkYThlNWU2OS4uNTEyYmQ0ZWNiNDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpA QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNF eHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1YnBsYW4uaCIKICNpbmNsdWRlICJmdW5j YXBpLmgiCkBAIC05OTEsNiArOTkyLDQ3IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBF eHByU3RhdGUgKnN0YXRlLAogCQkJCQkJc2NyYXRjaC5kLnBhcmFtLnBhcmFtdHlwZSA9IHBhcmFt LT5wYXJhbXR5cGU7CiAJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CiAJ CQkJCQlicmVhazsKKworCQkJCQljYXNlIFBBUkFNX1ZBUklBQkxFOgorCQkJCQkJeworCQkJCQkJ CWludAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJCQkJCQkJU2Vzc2lvblZhcmlh YmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzID0gTlVMTDsKKwkJCQkJCQlTZXNzaW9uVmFy aWFibGVWYWx1ZSAqdmFyOworCisJCQkJCQkJaWYgKHN0YXRlLT5wYXJlbnQgJiYgc3RhdGUtPnBh cmVudC0+c3RhdGUpCisJCQkJCQkJeworCQkJCQkJCQllc19zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0 YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQkJZXNfbnVt X3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX251bV9zZXNzaW9u X3ZhcmlhYmxlczsKKwkJCQkJCQl9CisKKwkJCQkJCQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJpYWJs ZXMpOworCisJCQkJCQkJLyoKKwkJCQkJCQkgKiBVc2UgYnVmZmVyZWQgc2Vzc2lvbiB2YXJpYWJs ZXMgd2hlbiB0aGUKKwkJCQkJCQkgKiBidWZmZXIgd2l0aCBjb3BpZWQgdmFsdWVzIGlzIGF2YWlh YmxlCisJCQkJCQkJICogKHN0YW5kYXJkIHF1ZXJ5IGV4ZWN1dG9yIG1vZGUpCisJCQkJCQkJICov CisKKwkJCQkJCQkvKiBQYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcy4gKi8KKwkJCQkJCQlpZiAocGFy YW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQorCQkJCQkJCQllbG9nKEVS Uk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsK KworCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07CisK KwkJCQkJCQlpZiAodmFyLT50eXBpZCAhPSBwYXJhbS0+cGFyYW10eXBlKQorCQkJCQkJCQllbG9n KEVSUk9SLCAidHlwZSBvZiBidWZmZXJlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgdGhhbiBQQVJBTV9W QVJJQUJMRSB0eXBlIik7CisKKwkJCQkJCQkvKgorCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwgcGFz cyB0aGUgdmFsdWUgbGlrZSBhCisJCQkJCQkJICogY29uc3RhbnQuCisJCQkJCQkJICovCisJCQkJ CQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0NPTlNUOworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZh bC52YWx1ZSA9IHZhci0+dmFsdWU7CisJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9 IHZhci0+aXNudWxsOworCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsK KwkJCQkJCX0KKwkJCQkJCWJyZWFrOworCiAJCQkJCWNhc2UgUEFSQU1fRVhURVJOOgogCiAJCQkJ CQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggNGQ3YzkyZDYzYzEuLmYyZmI2ODBkZWZj IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTQzLDcgKzQzLDkgQEAKICNpbmNsdWRlICJh Y2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wYXJ0aXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvbWF0dmlldy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxhbi5oIgpAQCAt MTk2LDYgKzE5OCw1MSBAQCBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlE ZXNjLCBpbnQgZWZsYWdzKQogCUFzc2VydChxdWVyeURlc2MtPnNvdXJjZVRleHQgIT0gTlVMTCk7 CiAJZXN0YXRlLT5lc19zb3VyY2VUZXh0ID0gcXVlcnlEZXNjLT5zb3VyY2VUZXh0OwogCisJLyoK KwkgKiBUaGUgZXhlY3V0b3IgZG9lc24ndCB3b3JrIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgZGly ZWN0bHkuIFZhbHVlcyBvZgorCSAqIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGNvcGll ZCB0byBkZWRpY2F0ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CisJICogaXMgcGFzc2VkIHRvIGV4 ZWN1dG9yLgorCSAqLworCWlmIChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFi bGVzKQorCXsKKwkJTGlzdENlbGwgICAqbGM7CisJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOwor CQlpbnQJCQlpID0gMDsKKworCQkvKgorCQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2Vz IHNlc3Npb24gdmFyaWFibGVzLCBidXQgd2UgaGF2ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBhcnJh eSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAqIGZp cnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJc1BhcmFsbGVsV29ya2VyKCkpOworCQluU2Vzc2lvblZh cmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJp YWJsZXMpOworCisJCS8qIENyZWF0ZSB0aGUgYXJyYXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMg b2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFi bGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICopCisJCQlwYWxsb2MoblNlc3Npb25WYXJpYWJs ZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFsdWUpKTsKKworCQkvKiBGaWxsIHRoZSBhcnJh eSAqLworCQlmb3JlYWNoKGxjLCBxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFi bGVzKQorCQl7CisJCQlBY2xSZXN1bHQJYWNscmVzdWx0OworCQkJT2lkCQkJdmFyaWQgPSBsZmly c3Rfb2lkKGxjKTsKKworCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVs YXRpb25JZCwgdmFyaWQsIEdldFVzZXJJZCgpLCBBQ0xfU0VMRUNUKTsKKwkJCWlmIChhY2xyZXN1 bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1Rf VkFSSUFCTEUsCisJCQkJCQkJICAgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOwor CisJCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLnZhcmlkID0gdmFyaWQ7CisJCQll c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLnZhbHVlID0gR2V0U2Vzc2lvblZhcmlhYmxl KHZhcmlkLAorCQkJCQkJCQkJCQkJCQkJCQkgICAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxl c1tpXS5pc251bGwsCisJCQkJCQkJCQkJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFy aWFibGVzW2ldLnR5cGlkKTsKKworCQkJaSsrOworCQl9CisKKwkJZXN0YXRlLT5lc19udW1fc2Vz c2lvbl92YXJpYWJsZXMgPSBuU2Vzc2lvblZhcmlhYmxlczsKKwl9CisKIAkvKgogCSAqIEZpbGwg aW4gdGhlIHF1ZXJ5IGVudmlyb25tZW50LCBpZiBhbnksIGZyb20gcXVlcnlEZXNjLgogCSAqLwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9tZXNvbi5idWlsZAppbmRleCBiNTExYTQyOWFkZi4uYjY2NjJjNmU4ZmMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCkBAIC02NCw2ICs2NCw3IEBAIGJhY2tlbmRfc291cmNl cyArPSBmaWxlcygKICAgJ25vZGVXaW5kb3dBZ2cuYycsCiAgICdub2RlV29ya3RhYmxlc2Nhbi5j JywKICAgJ3NwaS5jJywKKyAgJ3N2YXJpYWJsZVJlY2VpdmVyLmMnLAogICAndHF1ZXVlLmMnLAog ICAndHN0b3JlUmVjZWl2ZXIuYycsCiApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVj ZWl2ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzRjZmY0NGVj ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNl aXZlci5jCkBAIC0wLDAgKzEsMjAxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFy aWFibGVSZWNlaXZlci5jCisgKgkgIEFuIGltcGxlbWVudGF0aW9uIG9mIERlc3RSZWNlaXZlciB0 aGF0IHN0b3JlcyB0aGUgcmVzdWx0IHZhbHVlIGluCisgKgkgIGEgc2Vzc2lvbiB2YXJpYWJsZS4K KyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9i YWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVn ZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJ T04KKyAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2RldG9hc3QuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi c3RvcmFnZS9sb2NrLmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1 dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCisvKgorICog VGhpcyBEZXN0UmVjZWl2ZXIgaXMgdXNlZCBieSB0aGUgTEVUIGNvbW1hbmQgZm9yIHN0b3Jpbmcg dGhlIHJlc3VsdCB0byBhCisgKiBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIHJlc3VsdCBoYXMgdG8g aGF2ZSBvbmx5IG9uZSB0dXBsZSB3aXRoIG9ubHkgb25lCisgKiBub24tZGVsZXRlZCBhdHRyaWJ1 dGUuICBUaGUgcm93IGNvdW50ZXIgKGZpZWxkICJyb3dzIikgaXMgaW5jcmVtZW50ZWQKKyAqIGFm dGVyIHJlY2VpdmluZyBhIHJvdywgYW5kIGFuIGVycm9yIGlzIHJhaXNlZCB3aGVuIHRoZXJlIGFy ZSBubyByb3dzIG9yCisgKiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSByZWNlaXZlZCByb3dzLiAg QmVjYXVzZSBhIHJlY2VpdmVkIHR1cGxlIGNhbiBoYXZlCisgKiBkZWxldGVkIGF0dHJpYnV0ZXMs IHdlIG5lZWQgdG8gZmluZCB0aGUgZmlyc3Qgbm9uLWRlbGV0ZWQgYXR0cmlidXRlCisgKiAoZmll bGQgInNsb3Rfb2Zmc2V0IikuICBUaGUgdmFsdWUgaXMgZGV0b2FzdGVkIGJlZm9yZSBzdG9yaW5n IGl0IGluIHRoZQorICogc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QKK3sK KwlEZXN0UmVjZWl2ZXIgcHViOworCU9pZAkJCXZhcmlkOworCWJvb2wJCW5lZWRfZGV0b2FzdDsJ CS8qIGRvIHdlIG5lZWQgdG8gZGV0b2FzdCB0aGUgYXR0cmlidXRlPyAqLworCWludAkJCXNsb3Rf b2Zmc2V0OwkJLyogcG9zaXRpb24gb2Ygbm9uLWRlbGV0ZWQgYXR0cmlidXRlICovCisJaW50CQkJ cm93czsJCQkJLyogcm93IGNvdW50ZXIgKi8KK30gU1ZhcmlhYmxlU3RhdGU7CisKKy8qCisgKiBQ cmVwYXJlIHRvIHJlY2VpdmUgdHVwbGVzIGZyb20gZXhlY3V0b3IuCisgKi8KK3N0YXRpYyB2b2lk CitzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0 aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3RhdGUgPSAo U1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlpbnQJCQluYXR0cyA9IHR5cGVpbmZvLT5uYXR0czsK KwlpbnQJCQlvdXRjb2xzID0gMDsKKwlpbnQJCQlpOworCUxPQ0tUQUcJCWxvY2t0YWcgUEdfVVNF RF9GT1JfQVNTRVJUU19PTkxZOworCisJQXNzZXJ0KG15U3RhdGUtPnB1Yi5teWRlc3QgPT0gRGVz dFZhcmlhYmxlKTsKKwlBc3NlcnQoT2lkSXNWYWxpZChteVN0YXRlLT52YXJpZCkpOworCUFzc2Vy dChTZWFyY2hTeXNDYWNoZUV4aXN0czEoVkFSSUFCTEVPSUQsIG15U3RhdGUtPnZhcmlkKSk7CisK KyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisKKwlTRVRfTE9DS1RBR19PQkpFQ1QobG9ja3Rh ZywKKwkJCQkJICAgTXlEYXRhYmFzZUlkLAorCQkJCQkgICBWYXJpYWJsZVJlbGF0aW9uSWQsCisJ CQkJCSAgIG15U3RhdGUtPnZhcmlkLAorCQkJCQkgICAwKTsKKworCUFzc2VydChMb2NrSGVsZEJ5 TWUoJmxvY2t0YWcsIEFjY2Vzc1NoYXJlTG9jaywgZmFsc2UpKTsKKworI2VuZGlmCisKKwlmb3Ig KGkgPSAwOyBpIDwgbmF0dHM7IGkrKykKKwl7CisJCUZvcm1fcGdfYXR0cmlidXRlIGF0dHIgPSBU dXBsZURlc2NBdHRyKHR5cGVpbmZvLCBpKTsKKwkJT2lkCQkJdHlwaWQ7CisJCU9pZAkJCWNvbGxp ZDsKKwkJaW50MzIJCXR5cG1vZDsKKworCQlpZiAoYXR0ci0+YXR0aXNkcm9wcGVkKQorCQkJY29u dGludWU7CisKKwkJaWYgKCsrb3V0Y29scyA+IDEpCisJCQljb250aW51ZTsKKworCQlnZXRfc2Vz c2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQobXlTdGF0ZS0+dmFyaWQsCisJCQkJCQkJ CQkJCQkmdHlwaWQsCisJCQkJCQkJCQkJCQkmdHlwbW9kLAorCQkJCQkJCQkJCQkJJmNvbGxpZCk7 CisKKwkJLyoKKwkJICogRG91YmxlIGNoZWNrIC0gdGhlIHR5cGUgYW5kIHR5cG1vZCBvZiB0YXJn ZXQgdmFyaWFibGUgc2hvdWxkIGJlIHRoZQorCQkgKiBzYW1lIGFzIHRoZSB0eXBlIGFuZCB0eXBt b2Qgb2YgYXNzaWdubWVudCBleHByZXNzaW9uLiAgVGhlCisJCSAqIGV4cHJlc3Npb24gc2hvdWxk IGJlIHdyYXBwZWQgYnkgYSBjYXN0IHRvIHRoZSB0YXJnZXQgdHlwZS90eXBtb2QuCisJCSAqLwor CQlpZiAoYXR0ci0+YXR0dHlwaWQgIT0gdHlwaWQgfHwKKwkJCShhdHRyLT5hdHR0eXBtb2QgPj0g MCAmJgorCQkJIGF0dHItPmF0dHR5cG1vZCAhPSB0eXBtb2QpKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2co InRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIGlzIG9mIHR5cGUgJXMiCisJCQkJCQkJIiBidXQgZXhw cmVzc2lvbiBpcyBvZiB0eXBlICVzIiwKKwkJCQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2Qo dHlwaWQsIHR5cG1vZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfd2l0aF90eXBlbW9kKGF0dHItPmF0 dHR5cGlkLAorCQkJCQkJCQkJCQkJCSBhdHRyLT5hdHR0eXBtb2QpKSkpOworCisJCW15U3RhdGUt Pm5lZWRfZGV0b2FzdCA9IGF0dHItPmF0dGxlbiA9PSAtMTsKKwkJbXlTdGF0ZS0+c2xvdF9vZmZz ZXQgPSBpOworCX0KKworCWlmIChvdXRjb2xzICE9IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2dfcGx1cmFsKCJhc3Np Z25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJCQkgICAiYXNzaWdu bWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJCSAgIG91dGNvbHMs CisJCQkJCQkJICAgb3V0Y29scykpKTsKKworCW15U3RhdGUtPnJvd3MgPSAwOworfQorCisvKgor ICogUmVjZWl2ZSBhIHR1cGxlIGZyb20gdGhlIGV4ZWN1dG9yIGFuZCBzdG9yZSBpdCBpbiB0aGUg c2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworc3RhdGljIGJvb2wKK3N2YXJpYWJsZVJlY2VpdmVTbG90 KFR1cGxlVGFibGVTbG90ICpzbG90LCBEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJU1ZhcmlhYmxl U3RhdGUgKm15U3RhdGUgPSAoU1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlEYXR1bQkJdmFsdWU7 CisJYm9vbAkJaXNudWxsOworCWJvb2wJCWZyZWV2YWwgPSBmYWxzZTsKKworCS8qIG1ha2Ugc3Vy ZSB0aGUgdHVwbGUgaXMgZnVsbHkgZGVjb25zdHJ1Y3RlZCAqLworCXNsb3RfZ2V0YWxsYXR0cnMo c2xvdCk7CisKKwl2YWx1ZSA9IHNsb3QtPnR0c192YWx1ZXNbbXlTdGF0ZS0+c2xvdF9vZmZzZXRd OworCWlzbnVsbCA9IHNsb3QtPnR0c19pc251bGxbbXlTdGF0ZS0+c2xvdF9vZmZzZXRdOworCisJ aWYgKG15U3RhdGUtPm5lZWRfZGV0b2FzdCAmJiAhaXNudWxsICYmIFZBUkFUVF9JU19FWFRFUk5B TChEYXR1bUdldFBvaW50ZXIodmFsdWUpKSkKKwl7CisJCXZhbHVlID0gUG9pbnRlckdldERhdHVt KGRldG9hc3RfZXh0ZXJuYWxfYXR0cigoc3RydWN0IHZhcmxlbmEgKikKKwkJCQkJCQkJCQkJCQkg IERhdHVtR2V0UG9pbnRlcih2YWx1ZSkpKTsKKwkJZnJlZXZhbCA9IHRydWU7CisJfQorCisJbXlT dGF0ZS0+cm93cyArPSAxOworCisJaWYgKG15U3RhdGUtPnJvd3MgPiAxKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVE9PX01BTllfUk9XUyksCisJCQkJIGVycm1zZygi ZXhwcmVzc2lvbiByZXR1cm5lZCBtb3JlIHRoYW4gb25lIHJvdyIpKSk7CisKKwlTZXRTZXNzaW9u VmFyaWFibGUobXlTdGF0ZS0+dmFyaWQsIHZhbHVlLCBpc251bGwpOworCisJaWYgKGZyZWV2YWwp CisJCXBmcmVlKERhdHVtR2V0UG9pbnRlcih2YWx1ZSkpOworCisJcmV0dXJuIHRydWU7Cit9CisK Ky8qCisgKiBDbGVhbiB1cCBhdCBlbmQgb2YgdGhlIGV4ZWN1dG9yIHJ1bgorICovCitzdGF0aWMg dm9pZAorc3ZhcmlhYmxlU2h1dGRvd25SZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJ aWYgKCgoU1ZhcmlhYmxlU3RhdGUgKikgc2VsZiktPnJvd3MgPT0gMCkKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX05PX0RBVEFfRk9VTkQpLAorCQkJCSBlcnJtc2coImV4 cHJlc3Npb24gcmV0dXJuZWQgbm8gcm93cyIpKSk7Cit9CisKKy8qCisgKiBEZXN0cm95IHRoZSBy ZWNlaXZlciB3aGVuIHdlIGFyZSBkb25lIHdpdGggaXQKKyAqLworc3RhdGljIHZvaWQKK3N2YXJp YWJsZURlc3Ryb3lSZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJcGZyZWUoc2VsZik7 Cit9CisKKy8qCisgKiBJbml0aWFsbHkgY3JlYXRlIGEgRGVzdFJlY2VpdmVyIG9iamVjdC4KKyAq LworRGVzdFJlY2VpdmVyICoKK0NyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCkK K3sKKwlTVmFyaWFibGVTdGF0ZSAqc2VsZiA9IChTVmFyaWFibGVTdGF0ZSAqKSBwYWxsb2MwKHNp emVvZihTVmFyaWFibGVTdGF0ZSkpOworCisJc2VsZi0+cHViLnJlY2VpdmVTbG90ID0gc3Zhcmlh YmxlUmVjZWl2ZVNsb3Q7CisJc2VsZi0+cHViLnJTdGFydHVwID0gc3ZhcmlhYmxlU3RhcnR1cFJl Y2VpdmVyOworCXNlbGYtPnB1Yi5yU2h1dGRvd24gPSBzdmFyaWFibGVTaHV0ZG93blJlY2VpdmVy OworCXNlbGYtPnB1Yi5yRGVzdHJveSA9IHN2YXJpYWJsZURlc3Ryb3lSZWNlaXZlcjsKKwlzZWxm LT5wdWIubXlkZXN0ID0gRGVzdFZhcmlhYmxlOworCisJc2VsZi0+dmFyaWQgPSB2YXJpZDsKKwor CXJldHVybiAoRGVzdFJlY2VpdmVyICopIHNlbGY7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4 IGQyZTJhZjRmODExLi4wN2ZlMDVkZWFmZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMv bm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTQzMjgs NiArNDMyOCwxNiBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUs CiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9MZXRTdG10Ogor CQkJeworCQkJCUxldFN0bXQgICAgKnN0bXQgPSAoTGV0U3RtdCAqKSBub2RlOworCisJCQkJaWYg KFdBTEsoc3RtdC0+dGFyZ2V0KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3Rt dC0+cXVlcnkpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRf UExBc3NpZ25TdG10OgogCQkJewogCQkJCVBMQXNzaWduU3RtdCAqc3RtdCA9IChQTEFzc2lnblN0 bXQgKikgbm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5u ZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCA5NDhhZmQ5 MDk0OC4uZTUwMjRmMzNhNTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L3BsYW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAg LTMyMyw2ICszMjMsNyBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hh ciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlnbG9iLT5sYXN0UGxhbk5vZGVJ ZCA9IDA7CiAJZ2xvYi0+dHJhbnNpZW50UGxhbiA9IGZhbHNlOwogCWdsb2ItPmRlcGVuZHNPblJv bGUgPSBmYWxzZTsKKwlnbG9iLT5zZXNzaW9uVmFyaWFibGVzID0gTklMOwogCiAJLyoKIAkgKiBB c3Nlc3Mgd2hldGhlciBpdCdzIGZlYXNpYmxlIHRvIHVzZSBwYXJhbGxlbCBtb2RlIGZvciB0aGlz IHF1ZXJ5LiBXZQpAQCAtNTU3LDYgKzU1OCw3IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBh cnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCXJlc3Vs dC0+cGFyYW1FeGVjVHlwZXMgPSBnbG9iLT5wYXJhbUV4ZWNUeXBlczsKIAkvKiB1dGlsaXR5U3Rt dCBzaG91bGQgYmUgbnVsbCwgYnV0IHdlIG1pZ2h0IGFzIHdlbGwgY29weSBpdCAqLwogCXJlc3Vs dC0+dXRpbGl0eVN0bXQgPSBwYXJzZS0+dXRpbGl0eVN0bXQ7CisJcmVzdWx0LT5zZXNzaW9uVmFy aWFibGVzID0gZ2xvYi0+c2Vzc2lvblZhcmlhYmxlczsKIAlyZXN1bHQtPnN0bXRfbG9jYXRpb24g PSBwYXJzZS0+c3RtdF9sb2NhdGlvbjsKIAlyZXN1bHQtPnN0bXRfbGVuID0gcGFyc2UtPnN0bXRf bGVuOwogCkBAIC03MjcsNiArNzI5LDEzIEBAIHN1YnF1ZXJ5X3BsYW5uZXIoUGxhbm5lckdsb2Jh bCAqZ2xvYiwgUXVlcnkgKnBhcnNlLCBQbGFubmVySW5mbyAqcGFyZW50X3Jvb3QsCiAJICovCiAJ cHVsbF91cF9zdWJxdWVyaWVzKHJvb3QpOwogCisJLyoKKwkgKiBDaGVjayBpZiBzb21lIHN1YnF1 ZXJ5IHVzZXMgYSBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIGZsYWcKKwkgKiBoYXNTZXNzaW9uVmFy aWFibGVzIHNob3VsZCBiZSB0cnVlIGlmIHRoZSBxdWVyeSBvciBzb21lIHN1YnF1ZXJ5IHVzZXMg YQorCSAqIHNlc3Npb24gdmFyaWFibGUuCisJICovCisJcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJp YWJsZXMocm9vdCk7CisKIAkvKgogCSAqIElmIHRoaXMgaXMgYSBzaW1wbGUgVU5JT04gQUxMIHF1 ZXJ5LCBmbGF0dGVuIGl0IGludG8gYW4gYXBwZW5kcmVsLiBXZQogCSAqIGRvIHRoaXMgbm93IGJl Y2F1c2UgaXQgcmVxdWlyZXMgYXBwbHlpbmcgcHVsbF91cF9zdWJxdWVyaWVzIHRvIHRoZSBsZWFm CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggN2FlZDg0NTg0YzYuLjk1Y2Rh NDcyNmMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMK KysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCkBAIC0yMDksNiArMjA5 LDkgQEAgc3RhdGljIExpc3QgKnNldF9yZXR1cm5pbmdfY2xhdXNlX3JlZmVyZW5jZXMoUGxhbm5l ckluZm8gKnJvb3QsCiBzdGF0aWMgTGlzdCAqc2V0X3dpbmRvd2FnZ19ydW5jb25kaXRpb25fcmVm ZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJCQkJCSAgIExpc3QgKnJ1bmNvbmRp dGlvbiwKIAkJCQkJCQkJCQkJCSAgIFBsYW4gKnBsYW4pOworc3RhdGljIGJvb2wgcHVsbF91cF9o YXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyKE5vZGUgKm5vZGUsCisJCQkJCQkJCQkJCQkgUGxh bm5lckluZm8gKnJvb3QpOworc3RhdGljIHZvaWQgcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5k ZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHZhcmlkKTsKIAogCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKQEAgLTEzMDgsNiArMTMxMSw1MCBAQCBzZXRfcGxhbl9yZWZzKFBsYW5uZXJJbmZvICpy b290LCBQbGFuICpwbGFuLCBpbnQgcnRvZmZzZXQpCiAJcmV0dXJuIHBsYW47CiB9CiAKKy8qCisg KiBTZWFyY2ggdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4gc3VicXVlcmllcworICovCit2 b2lkCitwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhQbGFubmVySW5mbyAqcm9vdCkKK3sK KwlRdWVyeQkgICAqcXVlcnkgPSByb290LT5wYXJzZTsKKworCWlmIChxdWVyeS0+aGFzU2Vzc2lv blZhcmlhYmxlcykKKwl7CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCX0K KwllbHNlCisJeworCQkodm9pZCkgcXVlcnlfdHJlZV93YWxrZXIocXVlcnksCisJCQkJCQkJCSBw dWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAodm9pZCAqKSBy b290LCAwKTsKKwl9Cit9CisKK3N0YXRpYyBib29sCitwdWxsX3VwX2hhc19zZXNzaW9uX3Zhcmlh Ymxlc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKnJvb3QpCit7CisJaWYgKG5vZGUg PT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChJc0Eobm9kZSwgUXVlcnkpKQorCXsKKwkJ UXVlcnkJICAgKnF1ZXJ5ID0gKFF1ZXJ5ICopIG5vZGU7CisKKwkJaWYgKHF1ZXJ5LT5oYXNTZXNz aW9uVmFyaWFibGVzKQorCQl7CisJCQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsK KwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCS8qIFJlY3Vyc2UgaW50byBzdWJzZWxlY3RzICov CisJCXJldHVybiBxdWVyeV90cmVlX3dhbGtlcigoUXVlcnkgKikgbm9kZSwKKwkJCQkJCQkJIHB1 bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJv b3QsIDApOworCX0KKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBwdWxsX3Vw X2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAgKHZvaWQgKikgcm9vdCk7 Cit9CisKIC8qCiAgKiBzZXRfaW5kZXhvbmx5c2Nhbl9yZWZlcmVuY2VzCiAgKgkJRG8gc2V0X3Bs YW5fcmVmZXJlbmNlcyBwcm9jZXNzaW5nIG9uIGFuIEluZGV4T25seVNjYW4KQEAgLTE5NTYsOCAr MjAwMyw5IEBAIGNvcHlWYXIoVmFyICp2YXIpCiAgKiBUaGlzIGlzIGNvZGUgdGhhdCBpcyBjb21t b24gdG8gYWxsIHZhcmlhbnRzIG9mIGV4cHJlc3Npb24tZml4aW5nLgogICogV2UgbXVzdCBsb29r IHVwIG9wZXJhdG9yIG9wY29kZSBpbmZvIGZvciBPcEV4cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCiAg KiBhZGQgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVs YXRpb25PaWRzLCBhbmQKLSAqIGFkZCBQbGFuSW52YWxJdGVtcyBmb3IgdXNlci1kZWZpbmVkIGZ1 bmN0aW9ucyBpbnRvIHJvb3QtPmdsb2ItPmludmFsSXRlbXMuCi0gKiBXZSBhbHNvIGZpbGwgaW4g Y29sdW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElORygpIGV4cHJlc3Npb25zLgorICogYWRkIFBs YW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVuY3Rpb25zIGFuZCBzZXNzaW9uIHZhcmlh YmxlcyBpbnRvCisgKiByb290LT5nbG9iLT5pbnZhbEl0ZW1zLiAgV2UgYWxzbyBmaWxsIGluIGNv bHVtbiBpbmRleCBsaXN0cyBmb3IgR1JPVVBJTkcoKQorICogZXhwcmVzc2lvbnMuCiAgKgogICog V2UgYXNzdW1lIGl0J3Mgb2theSB0byB1cGRhdGUgb3Bjb2RlIGluZm8gaW4tcGxhY2UuICBTbyB0 aGlzIGNvdWxkIHBvc3NpYmx5CiAgKiBzY3JpYmJsZSBvbiB0aGUgcGxhbm5lcidzIGlucHV0IGRh dGEgc3RydWN0dXJlcywgYnV0IGl0J3MgT0suCkBAIC0yMDQ3LDYgKzIwOTUsMTMgQEAgZml4X2V4 cHJfY29tbW9uKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKQogCQkJCWctPmNvbHMgPSBj b2xzOwogCQl9CiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkg ICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFS SUFCTEUpCisJCQlyZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KHJvb3QsIHAtPnBhcmFt dmFyaWQpOworCX0KIH0KIAogLyoKQEAgLTIwNTYsNiArMjExMSwxMCBAQCBmaXhfZXhwcl9jb21t b24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAgKiBJZiBpdCdzIGEgUEFSQU1fTVVM VElFWFBSLCByZXBsYWNlIGl0IHdpdGggdGhlIGFwcHJvcHJpYXRlIFBhcmFtIGZyb20KICAqIHJv b3QtPm11bHRpZXhwcl9wYXJhbXM7IG90aGVyd2lzZSBubyBjaGFuZ2UgaXMgbmVlZGVkLgogICog SnVzdCBmb3IgcGFyYW5vaWEncyBzYWtlLCB3ZSBtYWtlIGEgY29weSBvZiB0aGUgbm9kZSBpbiBl aXRoZXIgY2FzZS4KKyAqCisgKiBJZiBpdCdzIGEgUEFSQU1fVkFSSUFCTEUsIHRoZW4gd2UgY29s bGVjdCB1c2VkIHNlc3Npb24gdmFyaWFibGVzIGluCisgKiB0aGUgbGlzdCByb290LT5nbG9iLT5z ZXNzaW9uVmFyaWFibGUuICBBbHNvLCBhc3NpZ24gdGhlIHBhcmFtZXRlcidzCisgKiAicGFyYW1p ZCIgdG8gdGhlIHBhcmFtZXRlcidzIHBvc2l0aW9uIGluIHRoYXQgbGlzdC4KICAqLwogc3RhdGlj IE5vZGUgKgogZml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQpAQCAt MjA3NCw2ICsyMTMzLDQxIEBAIGZpeF9wYXJhbV9ub2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJh bSAqcCkKIAkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIFBBUkFNX01VTFRJRVhQUiBJRDogJWQi LCBwLT5wYXJhbWlkKTsKIAkJcmV0dXJuIGNvcHlPYmplY3QobGlzdF9udGgocGFyYW1zLCBjb2xu byAtIDEpKTsKIAl9CisKKwlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsK KwkJTGlzdENlbGwgICAqbGM7CisJCWludAkJCW4gPSAwOworCQlib29sCQlmb3VuZCA9IGZhbHNl OworCisJCS8qIFdlIHdpbGwgbW9kaWZ5IG9iamVjdCAqLworCQlwID0gKFBhcmFtICopIGNvcHlP YmplY3QocCk7CisKKwkJLyoKKwkJICogTm93LCB3ZSBjYW4gYWN0dWFsaXplIGxpc3Qgb2Ygc2Vz c2lvbiB2YXJpYWJsZXMsIGFuZCB3ZSBjYW4KKwkJICogY29tcGxldGUgcGFyYW1pZCBwYXJhbWV0 ZXIuCisJCSAqLworCQlmb3JlYWNoKGxjLCByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzKQor CQl7CisJCQlpZiAobGZpcnN0X29pZChsYykgPT0gcC0+cGFyYW12YXJpZCkKKwkJCXsKKwkJCQlw LT5wYXJhbWlkID0gbjsKKwkJCQlmb3VuZCA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9CisJCQlu ICs9IDE7CisJCX0KKworCQlpZiAoIWZvdW5kKQorCQl7CisJCQlyb290LT5nbG9iLT5zZXNzaW9u VmFyaWFibGVzID0gbGFwcGVuZF9vaWQocm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcywKKwkJ CQkJCQkJCQkJCQkgICBwLT5wYXJhbXZhcmlkKTsKKwkJCXAtPnBhcmFtaWQgPSBuOworCQl9CisK KwkJcmV0dXJuIChOb2RlICopIHA7CisJfQorCiAJcmV0dXJuIChOb2RlICopIGNvcHlPYmplY3Qo cCk7CiB9CiAKQEAgLTIxMzUsNyArMjIyOSwxMCBAQCBmaXhfYWx0ZXJuYXRpdmVfc3VicGxhbihQ bGFubmVySW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVTdWJQbGFuICphc3BsYW4sCiAgKiByZXBsYWNp bmcgQWdncmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGluaXRwbGFuIG91dHB1 dCBQYXJhbXMsCiAgKiBjaG9vc2luZyB0aGUgYmVzdCBpbXBsZW1lbnRhdGlvbiBmb3IgQWx0ZXJu YXRpdmVTdWJQbGFucywKICAqIGxvb2tpbmcgdXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9w RXhwciBhbmQgcmVsYXRlZCBub2RlcywKLSAqIGFuZCBhZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNz IENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLgorICogYWRkaW5nIE9J RHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lk cywKKyAqIGFzc2lnbmluZyBwYXJhbXZhcmlkIHRvIFBBUkFNX1ZBUklBQkxFIHBhcmFtcywgYW5k IGNvbGxlY3RpbmcgdGhlCisgKiBPSURzIG9mIHNlc3Npb24gdmFyaWFibGVzIGluIHRoZSByb290 LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzIGxpc3QKKyAqIChwYXJhbXZhcmlkIGlzIHRoZSBwb3Np dGlvbiBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGlzIGxpc3QpLgogICoKICAqICdub2Rl JzogdGhlIGV4cHJlc3Npb24gdG8gYmUgbW9kaWZpZWQKICAqICdydG9mZnNldCc6IGhvdyBtdWNo IHRvIGluY3JlbWVudCB2YXJub3MgYnkKQEAgLTIxNTcsNyArMjI1NCw4IEBAIGZpeF9zY2FuX2V4 cHIoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCBydG9mZnNldCwgZG91YmxlIG51 bV9leGVjKQogCQlyb290LT5tdWx0aWV4cHJfcGFyYW1zICE9IE5JTCB8fAogCQlyb290LT5nbG9i LT5sYXN0UEhJZCAhPSAwIHx8CiAJCXJvb3QtPm1pbm1heF9hZ2dzICE9IE5JTCB8fAotCQlyb290 LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zKQorCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5z IHx8CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQlyZXR1cm4gZml4X3NjYW5f ZXhwcl9tdXRhdG9yKG5vZGUsICZjb250ZXh0KTsKIAl9CkBAIC0zNTIwLDYgKzM2MTgsMjUgQEAg cmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdHlwaWQp CiAJfQogfQogCisvKgorICogUmVjb3JkIGRlcGVuZGVuY3kgb24gYSBzZXNzaW9uIHZhcmlhYmxl LiAgVGhlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGFzIGEKKyAqIHNlc3Npb24gdmFyaWFibGUgaW4g YW4gZXhwcmVzc2lvbiBsaXN0LCBvciBhcyB0aGUgdGFyZ2V0IG9mIGEgTEVUIHN0YXRlbWVudC4K KyAqLworc3RhdGljIHZvaWQKK3JlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3koUGxhbm5l ckluZm8gKnJvb3QsIE9pZCB2YXJpZCkKK3sKKwlQbGFuSW52YWxJdGVtICppbnZhbF9pdGVtID0g bWFrZU5vZGUoUGxhbkludmFsSXRlbSk7CisKKwkvKiBwYXJhbWlkIGlzIHN0aWxsIHNlc3Npb24g dmFyaWFibGUgaWQgKi8KKwlpbnZhbF9pdGVtLT5jYWNoZUlkID0gVkFSSUFCTEVPSUQ7CisJaW52 YWxfaXRlbS0+aGFzaFZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELAor CQkJCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwkvKiBBcHBlbmQgdGhp cyB2YXJpYWJsZSB0byBnbG9iYWwsIHJlZ2lzdGVyIGRlcGVuZGVuY3kgKi8KKwlyb290LT5nbG9i LT5pbnZhbEl0ZW1zID0gbGFwcGVuZChyb290LT5nbG9iLT5pbnZhbEl0ZW1zLAorCQkJCQkJCQkJ IGludmFsX2l0ZW0pOworfQorCiAvKgogICogZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXMKICAq CQlHaXZlbiBhIHJld3JpdHRlbiwgYnV0IG5vdCB5ZXQgcGxhbm5lZCwgcXVlcnkgb3IgcXVlcmll cwpAQCAtMzYwNSw5ICszNzIyLDkgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2Vy KE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJfQogCiAJCQkvKgotCQkJICog SWdub3JlIG90aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRob3NlIChzdWNoIGFzIEVY UExBSU4pCi0JCQkgKiB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1wbGFubmVkIHF1ZXJ5 LiAgRm9yIHRob3NlLCB3ZQotCQkJICoganVzdCBuZWVkIHRvIHRyYW5zZmVyIG91ciBhdHRlbnRp b24gdG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KKwkJCSAqIElnbm9yZSBvdGhlciB1dGlsaXR5IHN0 YXRlbWVudHMsIGV4Y2VwdCB0aG9zZSAoc3VjaCBhcyBFWFBMQUlOCisJCQkgKiBvciBMRVQpIHRo YXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnkuICBGb3IgdGhvc2UsCisJ CQkgKiB3ZSBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlvbiB0byB0aGUgY29udGFp bmVkIHF1ZXJ5LgogCQkJICovCiAJCQlxdWVyeSA9IFV0aWxpdHlDb250YWluc1F1ZXJ5KHF1ZXJ5 LT51dGlsaXR5U3RtdCk7CiAJCQlpZiAocXVlcnkgPT0gTlVMTCkKQEAgLTM2MzAsNiArMzc0Nywx MCBAQCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5l ckluZm8gKmNvbnRleHQpCiAJCQkJCWxhcHBlbmRfb2lkKGNvbnRleHQtPmdsb2ItPnJlbGF0aW9u T2lkcywgcnRlLT5yZWxpZCk7CiAJCX0KIAorCQkvKiByZWNvcmQgZGVwZW5kZW5jeSBvbiB0aGUg dGFyZ2V0IHZhcmlhYmxlIG9mIGEgTEVUIGNvbW1hbmQgKi8KKwkJaWYgKE9pZElzVmFsaWQocXVl cnktPnJlc3VsdFZhcmlhYmxlKSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3ko Y29udGV4dCwgcXVlcnktPnJlc3VsdFZhcmlhYmxlKTsKKwogCQkvKiBBbmQgcmVjdXJzZSBpbnRv IHRoZSBxdWVyeSdzIHN1YmV4cHJlc3Npb25zICovCiAJCXJldHVybiBxdWVyeV90cmVlX3dhbGtl cihxdWVyeSwgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyLAogCQkJCQkJCQkgKHZv aWQgKikgY29udGV4dCwgMCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJl cC9wcmVwam9pbnRyZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJl ZS5jCmluZGV4IDk2OWUyNTdmNzBiLi4wNjFhYzJkYzdjZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3ByZXAvcHJlcGpvaW50cmVlLmMKQEAgLTEzMTQsNiArMTMxNCw5IEBAIHB1bGxfdXBfc2lt cGxlX3N1YnF1ZXJ5KFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUsIFJhbmdlVGJsRW50 cnkgKnJ0ZSwKIAkvKiBJZiBzdWJxdWVyeSBoYWQgYW55IFJMUyBjb25kaXRpb25zLCBub3cgbWFp biBxdWVyeSBkb2VzIHRvbyAqLwogCXBhcnNlLT5oYXNSb3dTZWN1cml0eSB8PSBzdWJxdWVyeS0+ aGFzUm93U2VjdXJpdHk7CiAKKwkvKiBpZiB0aGUgc3VicXVlcnkgaGFkIHNlc3Npb24gdmFyaWFi bGVzLCB0aGUgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLworCXBhcnNlLT5oYXNTZXNzaW9uVmFyaWFi bGVzIHw9IHN1YnF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJLyoKIAkgKiBzdWJxdWVy eSB3b24ndCBiZSBwdWxsZWQgdXAgaWYgaXQgaGFzQWdncywgaGFzV2luZG93RnVuY3MsIG9yCiAJ ICogaGFzVGFyZ2V0U1JGcywgc28gbm8gd29yayBuZWVkZWQgb24gdGhvc2UgZmxhZ3MKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCBiNGUwODVlOWQ0Yi4uMDA2M2IyYjYzMjIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNp bmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9j LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtOTM1LDYg KzkzNiwxMyBAQCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtlcihOb2RlICpub2RlLCBtYXhfcGFy YWxsZWxfaGF6YXJkX2NvbnRleHQgKmNvbnRleHQpCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kID09 IFBBUkFNX0VYVEVSTikKIAkJCXJldHVybiBmYWxzZTsKIAorCQkvKiB3ZSBkb24ndCBzdXBwb3J0 IHBhc3Npbmcgc2Vzc2lvbiB2YXJpYWJsZXMgdG8gd29ya2VycyAqLworCQlpZiAocGFyYW0tPnBh cmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKG1heF9wYXJhbGxlbF9oYXph cmRfdGVzdChQUk9QQVJBTExFTF9SRVNUUklDVEVELCBjb250ZXh0KSkKKwkJCQlyZXR1cm4gdHJ1 ZTsKKwkJfQorCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VYRUMgfHwKIAkJCSFs aXN0X21lbWJlcl9pbnQoY29udGV4dC0+c2FmZV9wYXJhbV9pZHMsIHBhcmFtLT5wYXJhbWlkKSkK IAkJewpAQCAtMjM4OSw2ICsyMzk3LDcgQEAgY29udmVydF9zYW9wX3RvX2hhc2hlZF9zYW9wX3dh bGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogICoJICB2YWx1ZSBvZiB0aGUgUGFyYW0u CiAgKiAyLiBGb2xkIHN0YWJsZSwgYXMgd2VsbCBhcyBpbW11dGFibGUsIGZ1bmN0aW9ucyB0byBj b25zdGFudHMuCiAgKiAzLiBSZWR1Y2UgUGxhY2VIb2xkZXJWYXIgbm9kZXMgdG8gdGhlaXIgY29u dGFpbmVkIGV4cHJlc3Npb25zLgorICogNC4gQ3VycmVudCB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlh YmxlIGNhbiBiZSB1c2VkIGZvciBlc3RpbWF0aW9uIHRvby4KICAqLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAqLwogTm9kZSAqCkBAIC0yNTE1LDYgKzI1MjQsMjkgQEAgZXZhbF9jb25zdF9leHByZXNz aW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCQl9CiAJCQkJCX0KIAkJCQl9CisJCQkJZWxz ZSBpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSAmJgorCQkJCQkJIGNvbnRl eHQtPmVzdGltYXRlKQorCQkJCXsKKwkJCQkJaW50MTYJCXR5cExlbjsKKwkJCQkJYm9vbAkJdHlw QnlWYWw7CisJCQkJCURhdHVtCQlwdmFsOworCQkJCQlib29sCQlpc251bGw7CisKKwkJCQkJZ2V0 X3R5cGxlbmJ5dmFsKHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJCQkmdHlwTGVuLCAmdHlwQnlW YWwpOworCisJCQkJCXB2YWwgPSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKHBhcmFt LT5wYXJhbXZhcmlkLAorCQkJCQkJCQkJCQkJCQkgICAmaXNudWxsLAorCQkJCQkJCQkJCQkJCQkg ICBwYXJhbS0+cGFyYW10eXBlKTsKKworCQkJCQlyZXR1cm4gKE5vZGUgKikgbWFrZUNvbnN0KHBh cmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJCQkJCSAgcGFyYW0tPnBhcmFtdHlwbW9kLAorCQkJCQkJ CQkJCQkgIHBhcmFtLT5wYXJhbWNvbGxpZCwKKwkJCQkJCQkJCQkJICAoaW50KSB0eXBMZW4sCisJ CQkJCQkJCQkJCSAgcHZhbCwKKwkJCQkJCQkJCQkJICBpc251bGwsCisJCQkJCQkJCQkJCSAgdHlw QnlWYWwpOworCQkJCX0KIAogCQkJCS8qCiAJCQkJICogTm90IHJlcGxhY2VhYmxlLCBzbyBqdXN0 IGNvcHkgdGhlIFBhcmFtIChubyBuZWVkIHRvCkBAIC00NzA2LDcgKzQ3MzgsOCBAQCBpbmxpbmVf ZnVuY3Rpb24oT2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBPaWQgcmVzdWx0X2NvbGxpZCwK IAkJcXVlcnl0cmVlLT5saW1pdE9mZnNldCB8fAogCQlxdWVyeXRyZWUtPmxpbWl0Q291bnQgfHwK IAkJcXVlcnl0cmVlLT5zZXRPcGVyYXRpb25zIHx8Ci0JCWxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+ dGFyZ2V0TGlzdCkgIT0gMSkKKwkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkg IT0gMSkgfHwKKwkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCQlnb3RvIGZhaWw7 CiAKIAkvKiBJZiB0aGUgZnVuY3Rpb24gcmVzdWx0IGlzIGNvbXBvc2l0ZSwgcmVzb2x2ZSBpdCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5k L3BhcnNlci9hbmFseXplLmMKaW5kZXggZTkwMTIwMzQyNGQuLmY3NWJlMzNhMDcxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMKQEAgLTI1LDkgKzI1LDEyIEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAog I2luY2x1ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2Uu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1 ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgpAQCAtNTEsNiArNTQsNyBAQAogI2luY2x1ZGUgInV0aWxz L2JhY2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRl ICJ1dGlscy9ndWMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1 dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCkBAIC04Myw2ICs4Nyw4 IEBAIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ3JlYXRlVGFibGVBc1N0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJCQkJCQkJCSBDcmVhdGVUYWJsZUFzU3RtdCAqc3RtdCk7CiBzdGF0aWMgUXVl cnkgKnRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJQ2FsbFN0 bXQgKnN0bXQpOworc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwKKwkJCQkJCQkgICBMZXRTdG10ICpzdG10KTsKIHN0YXRpYyB2b2lkIHRyYW5zZm9ybUxv Y2tpbmdDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXJ5LAogCQkJCQkJCQkgICBM b2NraW5nQ2xhdXNlICpsYywgYm9vbCBwdXNoZWREb3duKTsKICNpZmRlZiBERUJVR19OT0RFX1RF U1RTX0VOQUJMRUQKQEAgLTMzMCw2ICszMzYsNyBAQCB0cmFuc2Zvcm1TdG10KFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqcGFyc2VUcmVlKQogCQkJY2FzZSBUX1VwZGF0ZVN0bXQ6CiAJCQljYXNl IFRfRGVsZXRlU3RtdDoKIAkJCWNhc2UgVF9NZXJnZVN0bXQ6CisJCQljYXNlIFRfTGV0U3RtdDoK IAkJCQkodm9pZCkgdGVzdF9yYXdfZXhwcmVzc2lvbl9jb3ZlcmFnZShwYXJzZVRyZWUsIE5VTEwp OwogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKQEAgLTQwOSw2ICs0MTYsMTEgQEAgdHJhbnNmb3Jt U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJCQkJCQkJCSAgIChD YWxsU3RtdCAqKSBwYXJzZVRyZWUpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJ CQlyZXN1bHQgPSB0cmFuc2Zvcm1MZXRTdG10KHBzdGF0ZSwKKwkJCQkJCQkJCSAgKExldFN0bXQg KikgcGFyc2VUcmVlKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAKIAkJCS8qCkBAIC00NjAs NiArNDcyLDcgQEAgc3RtdF9yZXF1aXJlc19wYXJzZV9hbmFseXNpcyhSYXdTdG10ICpwYXJzZVRy ZWUpCiAJCWNhc2UgVF9TZWxlY3RTdG10OgogCQljYXNlIFRfUmV0dXJuU3RtdDoKIAkJY2FzZSBU X1BMQXNzaWduU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlyZXN1bHQgPSB0cnVlOwogCQkJ YnJlYWs7CiAKQEAgLTU2OCw2ICs1ODEsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3Rh dGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0 YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9o YXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+ aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJ YXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC05OTQsNiArMTAwOCw3 IEBAIHRyYW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbnNlcnRTdG10ICpz dG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJ cXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Np b25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9x dWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMTQ1OSw2ICsxNDc0LDcgQEAgdHJh bnNmb3JtU2VsZWN0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJ cXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhh c1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBw c3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBf aGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWZvcmVhY2gobCwgc3RtdC0+bG9ja2luZ0NsYXVzZSkK IAl7CkBAIC0xNjg1LDEyICsxNzAxLDIzNSBAQCB0cmFuc2Zvcm1WYWx1ZXNDbGF1c2UoUGFyc2VT dGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+am9pbnRyZWUgPSBtYWtlRnJv bUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKIAogCXFyeS0+aGFzU3ViTGlua3MgPSBw c3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRl LT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3Rh dGUsIHFyeSk7CiAKIAlyZXR1cm4gcXJ5OwogfQogCisvKgorICogdHJhbnNmb3JtTGV0U3RtdCAt CisgKgkgIHRyYW5zZm9ybSBhbiBMZXQgU3RhdGVtZW50CisgKi8KK3N0YXRpYyBRdWVyeSAqCit0 cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCkKK3sKKwlR dWVyeQkgICAqcXVlcnk7CisJUXVlcnkJICAgKnJlc3VsdDsKKwlMaXN0CSAgICpleHByTGlzdCA9 IE5JTDsKKwlMaXN0CSAgICpleHByTGlzdENvZXIgPSBOSUw7CisJTGlzdENlbGwgICAqbGM7CisJ TGlzdENlbGwgICAqaW5kaXJlY3Rpb25faGVhZCA9IE5VTEw7CisJUXVlcnkJICAgKnNlbGVjdFF1 ZXJ5OworCU9pZAkJCXZhcmlkOworCWNoYXIJICAgKmF0dHJuYW1lID0gTlVMTDsKKwlib29sCQlu b3RfdW5pcXVlOworCWJvb2wJCWlzX3Jvd3R5cGU7CisJT2lkCQkJdHlwaWQ7CisJaW50MzIJCXR5 cG1vZDsKKwlPaWQJCQljb2xsaWQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlMaXN0CSAgICpu YW1lcyA9IE5VTEw7CisJaW50CQkJaW5kaXJlY3Rpb25fc3RhcnQ7CisJaW50CQkJaSA9IDA7CisK KwkvKiBUaGVyZSBjYW4ndCBiZSBhbnkgb3V0ZXIgV0lUSCB0byB3b3JyeSBhYm91dCAqLworCUFz c2VydChwc3RhdGUtPnBfY3RlbmFtZXNwYWNlID09IE5JTCk7CisKKwluYW1lcyA9IE5hbWVzRnJv bUxpc3Qoc3RtdC0+dGFyZ2V0KTsKKworCS8qIGxvY2tzIHRoZSB2YXJpYWJsZSB3aXRoIGFuIEFj Y2Vzc1NoYXJlTG9jayAqLworCXZhcmlkID0gSWRlbnRpZnlWYXJpYWJsZShuYW1lcywgJmF0dHJu YW1lLCAmbm90X3VuaXF1ZSwgZmFsc2UpOworCWlmIChub3RfdW5pcXVlKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJIGVy cm1zZygidGFyZ2V0IFwiJXNcIiBvZiBMRVQgY29tbWFuZCBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJ TmFtZUxpc3RUb1N0cmluZyhuYW1lcykpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBzdG10LT5sb2NhdGlvbikpKTsKKworCWlmICghT2lkSXNWYWxpZCh2YXJpZCkpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkg ZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBkb2Vzbid0IGV4aXN0IiwKKwkJCQkJCU5h bWVMaXN0VG9TdHJpbmcobmFtZXMpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg c3RtdC0+bG9jYXRpb24pKSk7CisKKwkvKgorCSAqIENhbGN1bGF0ZSBzdGFydCBvZiBwb3NzaWJs ZSBwb3NpdGlvbiBvZiBhbiBpbmRpcmVjdGlvbiBpbiBsaXN0LCBhbmQKKwkgKiB3aGVuIGl0IGlz IGluc2lkZSB0aGUgbGlzdCwgc3RvcmUgcG9pbnRlciBvbiBmaXJzdCBub2RlIG9mIGluZGlyZWN0 aW9uLgorCSAqLworCWluZGlyZWN0aW9uX3N0YXJ0ID0gbGlzdF9sZW5ndGgobmFtZXMpIC0gKGF0 dHJuYW1lID8gMSA6IDApOworCWlmIChsaXN0X2xlbmd0aChzdG10LT50YXJnZXQpID4gaW5kaXJl Y3Rpb25fc3RhcnQpCisJCWluZGlyZWN0aW9uX2hlYWQgPSBsaXN0X250aF9jZWxsKHN0bXQtPnRh cmdldCwgaW5kaXJlY3Rpb25fc3RhcnQpOworCisJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90 eXBtb2RfY29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsICZjb2xsaWQpOworCisJaXNfcm93 dHlwZSA9IHR5cGVfaXNfcm93dHlwZSh0eXBpZCk7CisKKwlpZiAoYXR0cm5hbWUgJiYgIWlzX3Jv d3R5cGUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpF Q1RfVFlQRSksCisJCQkJIGVycm1zZygidHlwZSBcIiVzXCIgb2YgdGFyZ2V0IHNlc3Npb24gdmFy aWFibGUgXCIlcy4lc1wiIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCWZvcm1hdF90 eXBlX2JlKHR5cGlkKSwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo dmFyaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24p KSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2 YXJpZCwgR2V0VXNlcklkKCksIEFDTF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hF Q0tfT0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBOYW1l TGlzdFRvU3RyaW5nKG5hbWVzKSk7CisKKwlwc3RhdGUtPnBfZXhwcl9raW5kID0gRVhQUl9LSU5E X0xFVF9UQVJHRVQ7CisKKwkvKiB3ZSBuZWVkIHRvIHBvc3Rwb25lIGNvbnZlcnNpb24gb2YgInVu a25vd24iIHRvIHRleHQgKi8KKwlwc3RhdGUtPnBfcmVzb2x2ZV91bmtub3ducyA9IGZhbHNlOwor CisJc2VsZWN0UXVlcnkgPSB0cmFuc2Zvcm1TdG10KHBzdGF0ZSwgc3RtdC0+cXVlcnkpOworCisJ LyogdGhlIGdyYW1tYXIgc2hvdWxkIGhhdmUgcHJvZHVjZWQgYSBTRUxFQ1QgKi8KKwlBc3NlcnQo SXNBKHNlbGVjdFF1ZXJ5LCBRdWVyeSkgJiYgc2VsZWN0UXVlcnktPmNvbW1hbmRUeXBlID09IENN RF9TRUxFQ1QpOworCisJLyoKKwkgKiBHZW5lcmF0ZSBhbiBleHByZXNzaW9uIGxpc3QgZm9yIHRo ZSBMRVQgdGhhdCBzZWxlY3RzIGFsbCB0aGUgbm9uLXJlc2p1bmsKKwkgKiBjb2x1bW5zIGZyb20g dGhlIHN1YnF1ZXJ5LgorCSAqLworCWV4cHJMaXN0ID0gTklMOworCWZvcmVhY2gobGMsIHNlbGVj dFF1ZXJ5LT50YXJnZXRMaXN0KQorCXsKKwkJVGFyZ2V0RW50cnkgKnRsZSA9IChUYXJnZXRFbnRy eSAqKSBsZmlyc3QobGMpOworCisJCWlmICh0bGUtPnJlc2p1bmspCisJCQljb250aW51ZTsKKwor CQlleHByTGlzdCA9IGxhcHBlbmQoZXhwckxpc3QsIHRsZS0+ZXhwcik7CisJfQorCisJLyogZG9u J3QgYWxsb3cgbXVsdGljb2x1bW4gcmVzdWx0ICovCisJaWYgKGxpc3RfbGVuZ3RoKGV4cHJMaXN0 KSAhPSAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VS Uk9SKSwKKwkJCQkgZXJybXNnX3BsdXJhbCgiYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVk ICVkIGNvbHVtbiIsCisJCQkJCQkJICAgImFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAl ZCBjb2x1bW5zIiwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlzdCksCisJCQkJCQkJICAg bGlzdF9sZW5ndGgoZXhwckxpc3QpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwK KwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAqKSBleHByTGlzdCkpKSk7CisKKwlleHByTGlz dENvZXIgPSBOSUw7CisKKwlmb3JlYWNoKGxjLCBleHByTGlzdCkKKwl7CisJCUV4cHIJICAgKmV4 cHIgPSAoRXhwciAqKSBsZmlyc3QobGMpOworCQlFeHByCSAgICpjb2VyY2VkX2V4cHI7CisJCVBh cmFtCSAgICpwYXJhbTsKKwkJT2lkCQkJZXhwcnR5cGlkOworCisJCS8qIG5vdyB3ZSBjYW4gcmVh ZCB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiAqLworCQlleHBydHlwaWQgPSBleHByVHlwZSgo Tm9kZSAqKSBleHByKTsKKworCQlwYXJhbSA9IG1ha2VOb2RlKFBhcmFtKTsKKwkJcGFyYW0tPnBh cmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCQlwYXJhbS0+cGFyYW12YXJpZCA9IHZhcmlkOwor CQlwYXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7CisJCXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1v ZDsKKworCQlpZiAoaW5kaXJlY3Rpb25faGVhZCkKKwkJeworCQkJYm9vbAkJdGFyZ2V0SXNBcnJh eTsKKwkJCWNoYXIJICAgKnRhcmdldE5hbWU7CisKKwkJCXRhcmdldE5hbWUgPSBnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lKHZhcmlkKTsKKwkJCXRhcmdldElzQXJyYXkgPSBPaWRJc1ZhbGlkKGdl dF9lbGVtZW50X3R5cGUodHlwaWQpKTsKKworCQkJcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJs ZXMgPSB0cnVlOworCisJCQljb2VyY2VkX2V4cHIgPSAoRXhwciAqKQorCQkJCXRyYW5zZm9ybUFz c2lnbm1lbnRJbmRpcmVjdGlvbihwc3RhdGUsCisJCQkJCQkJCQkJCSAgIChOb2RlICopIHBhcmFt LAorCQkJCQkJCQkJCQkgICB0YXJnZXROYW1lLAorCQkJCQkJCQkJCQkgICB0YXJnZXRJc0FycmF5 LAorCQkJCQkJCQkJCQkgICB0eXBpZCwKKwkJCQkJCQkJCQkJICAgdHlwbW9kLAorCQkJCQkJCQkJ CQkgICBJbnZhbGlkT2lkLAorCQkJCQkJCQkJCQkgICBzdG10LT50YXJnZXQsCisJCQkJCQkJCQkJ CSAgIGluZGlyZWN0aW9uX2hlYWQsCisJCQkJCQkJCQkJCSAgIChOb2RlICopIGV4cHIsCisJCQkJ CQkJCQkJCSAgIENPRVJDSU9OX0FTU0lHTk1FTlQsCisJCQkJCQkJCQkJCSAgIHN0bXQtPmxvY2F0 aW9uKTsKKwkJfQorCQllbHNlCisJCQljb2VyY2VkX2V4cHIgPSAoRXhwciAqKQorCQkJCWNvZXJj ZV90b190YXJnZXRfdHlwZShwc3RhdGUsCisJCQkJCQkJCQkgIChOb2RlICopIGV4cHIsCisJCQkJ CQkJCQkgIGV4cHJ0eXBpZCwKKwkJCQkJCQkJCSAgdHlwaWQsIHR5cG1vZCwKKwkJCQkJCQkJCSAg Q09FUkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCSAgQ09FUkNFX0lNUExJQ0lUX0NBU1QsCisJ CQkJCQkJCQkgIHN0bXQtPmxvY2F0aW9uKTsKKworCQlpZiAoY29lcmNlZF9leHByID09IE5VTEwp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01B VENIKSwKKwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIlcy4lc1wiIGlzIG9mIHR5cGUgJXMsIgor CQkJCQkJCSIgYnV0IGV4cHJlc3Npb24gaXMgb2YgdHlwZSAlcyIsCisJCQkJCQkJZ2V0X25hbWVz cGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJ CWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1hdF90eXBlX2Jl KHR5cGlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHBydHlwaWQpKSwKKwkJCQkJIGVycmhp bnQoIllvdSB3aWxsIG5lZWQgdG8gcmV3cml0ZSBvciBjYXN0IHRoZSBleHByZXNzaW9uLiIpLAor CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIGV4 cHIpKSkpOworCisJCWV4cHJMaXN0Q29lciA9IGxhcHBlbmQoZXhwckxpc3RDb2VyLCBjb2VyY2Vk X2V4cHIpOworCX0KKworCS8qIGdlbmVyYXRlIHF1ZXJ5J3MgdGFyZ2V0IGxpc3QgdXNpbmcgdGhl IGNvbXB1dGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMgKi8KKwlxdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5 KTsKKwlxdWVyeS0+Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOworCisJZm9yZWFjaChsYywgZXhw ckxpc3RDb2VyKQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJ CVRhcmdldEVudHJ5ICp0bGU7CisKKwkJdGxlID0gbWFrZVRhcmdldEVudHJ5KGV4cHIsCisJCQkJ CQkJICBpICsgMSwKKwkJCQkJCQkgIEZpZ3VyZUNvbG5hbWUoKE5vZGUgKikgZXhwciksCisJCQkJ CQkJICBmYWxzZSk7CisJCXF1ZXJ5LT50YXJnZXRMaXN0ID0gbGFwcGVuZChxdWVyeS0+dGFyZ2V0 TGlzdCwgdGxlKTsKKwl9CisKKwkvKiBkb25lIGJ1aWxkaW5nIHRoZSByYW5nZSB0YWJsZSBhbmQg am9pbnRyZWUgKi8KKwlxdWVyeS0+cnRhYmxlID0gcHN0YXRlLT5wX3J0YWJsZTsKKwlxdWVyeS0+ am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKKworCXF1 ZXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CisJcXVlcnktPmhh c1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXF1ZXJ5LT5oYXNTZXNzaW9uVmFy aWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CisKKwkvKiB0aGlzIGlzIHRv cC1sZXZlbCBxdWVyeSAqLworCXF1ZXJ5LT5jYW5TZXRUYWcgPSB0cnVlOworCisJLyoKKwkgKiBT YXZlIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIElELiAgVGhpcyB2YWx1ZSBpcyB1c2VkIG11bHRp cGxlIHRpbWVzOiBieQorCSAqIHRoZSBxdWVyeSByZXdyaXRlciAoZm9yIGdldHRpbmcgcmVsYXRl ZCBkZWZleHByKSwgYnkgcGxhbm5lciAoZm9yCisJICogYWNxdWlyaW5nIGFuIEFjY2Vzc1NoYXJl TG9jayBvbiB0YXJnZXQgdmFyaWFibGUpLCBhbmQgYnkgdGhlIGV4ZWN1dG9yCisJICogKHdlIG5l ZWQgdG8ga25vdyB0aGUgdGFyZ2V0IHZhcmlhYmxlIElEKS4KKwkgKi8KKwlxdWVyeS0+cmVzdWx0 VmFyaWFibGUgPSB2YXJpZDsKKworCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXVl cnkpOworCisJc3RtdC0+cXVlcnkgPSAoTm9kZSAqKSBxdWVyeTsKKworCS8qIHJlcHJlc2VudCB0 aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8KKwlyZXN1bHQgPSBtYWtlTm9kZShRdWVy eSk7CisJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9VVElMSVRZOworCXJlc3VsdC0+dXRpbGl0 eVN0bXQgPSAoTm9kZSAqKSBzdG10OworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIHRy YW5zZm9ybVNldE9wZXJhdGlvblN0bXQgLQogICoJICB0cmFuc2Zvcm1zIGEgc2V0LW9wZXJhdGlv bnMgdHJlZQpAQCAtMTkzNiw2ICsyMTc1LDcgQEAgdHJhbnNmb3JtU2V0T3BlcmF0aW9uU3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5j cyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3Rh dGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsK KwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxl czsKIAogCWZvcmVhY2gobCwgbG9ja2luZ0NsYXVzZSkKIAl7CkBAIC0yNDEwLDYgKzI2NTAsNyBA QCB0cmFuc2Zvcm1SZXR1cm5TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmV0dXJuU3RtdCAqc3Rt dCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFy eS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdn cyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0 ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0 YXRlLCBxcnkpOwogCkBAIC0yNDc3LDYgKzI3MTgsNyBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JG cyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUt PnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hh c1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFy eSk7CiAKQEAgLTI2NjQsOSArMjkwNiwxNSBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJLyoKIAkgKiBUcmFuc2Zvcm0gdGhl IHRhcmdldCByZWZlcmVuY2UuICBUeXBpY2FsbHkgd2Ugd2lsbCBnZXQgYmFjayBhIFBhcmFtCiAJ ICogbm9kZSwgYnV0IHRoZXJlJ3Mgbm8gcmVhc29uIHRvIGJlIHRvbyBwaWNreSBhYm91dCBpdHMg dHlwZS4KKwkgKgorCSAqIFNlc3Npb24gdmFyaWFibGVzIHNob3VsZCBub3QgYmUgdXNlZCBhcyB0 YXJnZXQgb2YgYSBQTC9wZ1NRTCBhc3NpZ24KKwkgKiBzdGF0ZW1lbnQuICBTbyB3ZSBzaG91bGQg dXNlIGEgZGVkaWNhdGVkIGV4cHJlc3Npb24ga2luZCBhbmQgZGlzYWxsb3cKKwkgKiBzZXNzaW9u IHZhcmlhYmxlcyB0aGVyZS4gIFRoZSBkZWRpY2F0ZWQgY29udGV4dCBhbGxvd3MgdG8gZWxpbWlu YXRlCisJICogdW5kZXNpcmFibGUgd2FybmluZ3MgYWJvdXQgdGhlIHBvc3NpYmlsaXR5IG9mIGEg dGFyZ2V0IFBML3BnU1FMIHZhcmlhYmxlCisJICogc2hhZG93aW5nIGEgc2Vzc2lvbiB2YXJpYWJs ZS4KIAkgKi8KIAl0YXJnZXQgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUgKikgY3JlZiwK LQkJCQkJCSAgIEVYUFJfS0lORF9VUERBVEVfVEFSR0VUKTsKKwkJCQkJCSAgIEVYUFJfS0lORF9B U1NJR05fVEFSR0VUKTsKIAl0YXJnZXR0eXBlID0gZXhwclR5cGUodGFyZ2V0KTsKIAl0YXJnZXR0 eXBtb2QgPSBleHByVHlwbW9kKHRhcmdldCk7CiAJdGFyZ2V0Y29sbGF0aW9uID0gZXhwckNvbGxh dGlvbih0YXJnZXQpOwpAQCAtMjcwOCw2ICsyOTU2LDEwIEBAIHRyYW5zZm9ybVBMQXNzaWduU3Rt dChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAkgKi8KIAl0eXBlX2lk ID0gZXhwclR5cGUoKE5vZGUgKikgdGxlLT5leHByKTsKIAorCS8qCisJICogRm9yIGluZGlyZWN0 aW9uIHByb2Nlc3NpbmcgYW5kIGFkZGl0aW9uYWwgY2FzdHMgd2UgY2FuIHVzZSBleHByX2tpbmQK KwkgKiBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVC4KKwkgKi8KIAlwc3RhdGUtPnBfZXhwcl9raW5k ID0gRVhQUl9LSU5EX1VQREFURV9UQVJHRVQ7CiAKIAlpZiAoaW5kaXJlY3Rpb24pCkBAIC0yODUw LDYgKzMxMDIsOCBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQ TEFzc2lnblN0bXQgKnN0bXQpCiAJCQkJCQkJICAgKExvY2tpbmdDbGF1c2UgKikgbGZpcnN0KGwp LCBmYWxzZSk7CiAJfQogCisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hh c1Nlc3Npb25WYXJpYWJsZXM7CisKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFy eSk7CiAKIAkvKiB0aGlzIG11c3QgYmUgZG9uZSBhZnRlciBjb2xsYXRpb25zLCBmb3IgcmVsaWFi bGUgY29tcGFyaXNvbiBvZiBleHBycyAqLwpAQCAtMzEyMyw2ICszMzc3LDE0IEBAIHRyYW5zZm9y bUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2FsbFN0bXQgKnN0bXQpCiAJCQkJCQkJIHRy dWUsCiAJCQkJCQkJIHN0bXQtPmZ1bmNjYWxsLT5sb2NhdGlvbik7CiAKKwkvKgorCSAqIFRoZSBh cmd1bWVudHMgb2YgQ0FMTCBzdGF0ZW1lbnQgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHBy ZXNzaW9uCisJICogZXhlY3V0b3IgY2FsbC4gIFRoaXMgcGF0aCBpcyB1bnN1cHBvcnRlZCB5ZXQs IHNvIGJsb2NrIGl0LiAgSXQgd2lsbCBiZQorCSAqIGVuYWJsZWQgbGF0ZXIuCisJICovCisJaWYg KHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQorCQllbG9nKEVSUk9SLCAic2Vzc2lvbiB2 YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpOworCiAJYXNzaWduX2V4cHJf Y29sbGF0aW9ucyhwc3RhdGUsIG5vZGUpOwogCiAJZmV4cHIgPSBjYXN0Tm9kZShGdW5jRXhwciwg bm9kZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQppbmRleCAzZjJjNTkwY2UzMi4uNTc4NzQwMmQzODcgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1Nl bGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCURyb3BU cmFuc2Zvcm1TdG10CiAJCURyb3BVc2VyTWFwcGluZ1N0bXQgRXhwbGFpblN0bXQgRmV0Y2hTdG10 CiAJCUdyYW50U3RtdCBHcmFudFJvbGVTdG10IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10IEluZGV4 U3RtdCBJbnNlcnRTdG10Ci0JCUxpc3RlblN0bXQgTG9hZFN0bXQgTG9ja1N0bXQgTWVyZ2VTdG10 IE5vdGlmeVN0bXQgRXhwbGFpbmFibGVTdG10IFByZXBhcmFibGVTdG10CisJCUxldFN0bXQgTGlz dGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJs ZVN0bXQgUHJlcGFyYWJsZVN0bXQKIAkJQ3JlYXRlRnVuY3Rpb25TdG10IEFsdGVyRnVuY3Rpb25T dG10IFJlaW5kZXhTdG10IFJlbW92ZUFnZ3JTdG10CiAJCVJlbW92ZUZ1bmNTdG10IFJlbW92ZU9w ZXJTdG10IFJlbmFtZVN0bXQgUmV0dXJuU3RtdCBSZXZva2VTdG10IFJldm9rZVJvbGVTdG10CiAJ CVJ1bGVBY3Rpb25TdG10IFJ1bGVBY3Rpb25TdG10T3JFbXB0eSBSdWxlU3RtdApAQCAtNDU3LDYg KzQ1Nyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxu YW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJVHJpZ2dlclRyYW5zaXRpb25z IFRyaWdnZXJSZWZlcmVuY2luZwogCQkJCXZhY3V1bV9yZWxhdGlvbl9saXN0IG9wdF92YWN1dW1f cmVsYXRpb25fbGlzdAogCQkJCWRyb3Bfb3B0aW9uX2xpc3QgcHViX29ial9saXN0CisJCQkJbGV0 X3RhcmdldAogCiAldHlwZSA8bm9kZT4Jb3B0X3JvdXRpbmVfYm9keQogJXR5cGUgPGdyb3VwY2xh dXNlPiBncm91cF9jbGF1c2UKQEAgLTc0OSw3ICs3NTAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJl Y3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVl cnkpOwogCUtFRVAgS0VZIEtFWVMKIAogCUxBQkVMIExBTkdVQUdFIExBUkdFX1AgTEFTVF9QIExB VEVSQUxfUAotCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVWRUwgTElLRSBMSU1JVCBM SVNURU4gTE9BRCBMT0NBTAorCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVUIExFVkVM IExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKIAlMT0NBTFRJTUUgTE9DQUxUSU1FU1RBTVAg TE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dHRUQKIAogCU1BUFBJTkcgTUFUQ0ggTUFUQ0hFRCBN QVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVSR0VfQUNUSU9OIE1FVEhPRApAQCAtMTEwMCw2 ICsxMTAxLDcgQEAgc3RtdDoKIAkJCXwgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQKIAkJCXwgSW5k ZXhTdG10CiAJCQl8IEluc2VydFN0bXQKKwkJCXwgTGV0U3RtdAogCQkJfCBMaXN0ZW5TdG10CiAJ CQl8IFJlZnJlc2hNYXRWaWV3U3RtdAogCQkJfCBMb2FkU3RtdApAQCAtMTI3NjgsNiArMTI3NzAs NDcgQEAgb3B0X2hvbGQ6IC8qIEVNUFRZICovCQkJCQkJeyAkJCA9IDA7IH0KIAkJCXwgV0lUSE9V VCBIT0xECQkJCQl7ICQkID0gMDsgfQogCQk7CiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoK KyAqCQlRVUVSWToKKyAqCQkJCUxFVCBTVEFURU1FTlQKKyAqCisgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCitMZXRTdG10OglMRVQgbGV0X3RhcmdldCAnPScgYV9leHByCisJCQkJeworCQkJCQlMZXRT dG10CSAgICpuID0gbWFrZU5vZGUoTGV0U3RtdCk7CisJCQkJCVNlbGVjdFN0bXQgKnNlbGVjdDsK KwkJCQkJUmVzVGFyZ2V0ICAqcmVzOworCisJCQkJCW4tPnRhcmdldCA9ICQyOworCisJCQkJCXNl bGVjdCA9IG1ha2VOb2RlKFNlbGVjdFN0bXQpOworCQkJCQlyZXMgPSBtYWtlTm9kZShSZXNUYXJn ZXQpOworCisJCQkJCS8qIENyZWF0ZSB0YXJnZXQgbGlzdCBmb3IgaW1wbGljaXQgcXVlcnkgKi8K KwkJCQkJcmVzLT5uYW1lID0gTlVMTDsKKwkJCQkJcmVzLT5pbmRpcmVjdGlvbiA9IE5JTDsKKwkJ CQkJcmVzLT52YWwgPSAoTm9kZSAqKSAkNDsKKwkJCQkJcmVzLT5sb2NhdGlvbiA9IEA0OworCisJ CQkJCXNlbGVjdC0+dGFyZ2V0TGlzdCA9IGxpc3RfbWFrZTEocmVzKTsKKwkJCQkJbi0+cXVlcnkg PSAoTm9kZSAqKSBzZWxlY3Q7CisKKwkJCQkJbi0+bG9jYXRpb24gPSBAMjsKKwkJCQkJJCQgPSAo Tm9kZSAqKSBuOworCQkJCX0KKwkJOworCitsZXRfdGFyZ2V0OgorCQkJQ29sSWQgb3B0X2luZGly ZWN0aW9uCisJCQkJeworCQkJCQkkJCA9IGxpc3RfbWFrZTEobWFrZVN0cmluZygkMSkpOworCQkJ CQlpZiAoJDIpCisJCQkJCQkgICQkID0gbGlzdF9jb25jYXQoJCQsCisJCQkJCQkJCQkJICAgY2hl Y2tfaW5kaXJlY3Rpb24oJDIsIHl5c2Nhbm5lcikpOworCQkJCX0KKwkJOworCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKICAqCiAgKgkJUVVFUlk6CkBAIC0xNzc5OSw2ICsxNzg0Miw3IEBAIHVucmVz ZXJ2ZWRfa2V5d29yZDoKIAkJCXwgTEFSR0VfUAogCQkJfCBMQVNUX1AKIAkJCXwgTEVBS1BST09G CisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBMSVNURU4KIAkJCXwgTE9BRApAQCAtMTg0MTIs NiArMTg0NTYsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IExFQUtQUk9PRgogCQkJfCBM RUFTVAogCQkJfCBMRUZUCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBMSUtFCiAJCQl8IExJ U1RFTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IGJlZTdkODM0NmEzLi5iNDk0Yzg4NWU5ZiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNTc3LDYgKzU3NywxMSBAQCBjaGVja19hZ2dsZXZl bHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCWVy cmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdF VDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCWVycmtpbmQgPSB0cnVlOworCQkJ YnJlYWs7CisKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6 IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKIAkJCSAqIGNvbXBpbGVyIHdpbGwgd2FybiBpZiB3ZSBh ZGQgYSBuZXcgUGFyc2VFeHByS2luZCB3aXRob3V0CkBAIC05NjcsNiArOTcyLDEwIEBAIHRyYW5z Zm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVuYyAqd2Z1bmMs CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJy ZWFrOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9M RVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRydWU7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAq IFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRo ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggZDJkYjY5YTNmOTAuLmI1MGFjODAxYTkxIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX2FnZ3JlZ2F0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgi CiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zNCwxMiArMzUsMTQgQEAKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdGFy Z2V0LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJzdG9yYWdl L2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2Rh dGUuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2pzb25i LmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0 YW1wLmgiCisjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy94bWwu aCIKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KQEAgLTEwOCw2ICsxMTEsOSBAQCBzdGF0aWMgRXhw ciAqbWFrZV9kaXN0aW5jdF9vcChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm9wbmFtZSwKIAkJ CQkJCQkgIE5vZGUgKmx0cmVlLCBOb2RlICpydHJlZSwgaW50IGxvY2F0aW9uKTsKIHN0YXRpYyBO b2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ CQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAqYXJnKTsKK3N0YXRpYyBOb2RlICptYWtl UGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJICBPaWQg dmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAorCQkJCQkJCQkJICBj aGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKTsKIAogCiAvKgpAQCAtNTAxLDYgKzUwNyw4OSBA QCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24g KmluZCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBn aXZlbiBleHByZXNzaW9uIGtpbmQgaXMgdmFsaWQgZm9yIHNlc3Npb24gdmFyaWFibGVzLgorICog U2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHVzZWQgZXZlcnl3aGVyZSB3aGVyZSBleHRlcm5hbCBw YXJhbWV0ZXJzIGNhbiBiZQorICogdXNlZC4gIFNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgYWxs b3dlZCBpbiBEREwgY29tbWFuZHMgb3IgaW4gY29uc3RyYWludHMuCisgKgorICogQW4gaWRlbnRp ZmllciBjYW4gYmUgcGFyc2VkIGFzIGEgc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IGZvciBleHByZXNz aW9uIGtpbmRzCisgKiB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgYWxsb3dlZC4gIFRoaXMg aXMgdGhlIHByaW1hcnkgdXNhZ2Ugb2YgdGhpcworICogZnVuY3Rpb24uCisgKgorICogVGhlIHNl Y29uZCB1c2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGRlY2lkZSB3aGV0aGVyIGEgImNvbHVt biBkb2VzIG5vdAorICogZXhpc3QiIG9yIGEgImNvbHVtbiBvciB2YXJpYWJsZSBkb2VzIG5vdCBl eGlzdCIgZXJyb3IgbWVzc2FnZSBzaG91bGQgYmUKKyAqIHByaW50ZWQuICBXaGVuIHdlIGFyZSBp biBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFibGVzIGNhbm5vdCBiZQorICogdXNl ZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3IgbWVzc2FnZS4KKyAqLworc3RhdGlj IGJvb2wKK2V4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBw X2V4cHJfa2luZCkKK3sKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCXN3aXRjaCAocF9leHBy X2tpbmQpCisJeworCQljYXNlIEVYUFJfS0lORF9OT05FOgorCQkJQXNzZXJ0KGZhbHNlKTsJCS8q IGNhbid0IGhhcHBlbiAqLworCQkJcmV0dXJuIGZhbHNlOworCisJCS8qIHNlc3Npb24gdmFyaWFi bGVzIGFsbG93ZWQgKi8KKwkJY2FzZSBFWFBSX0tJTkRfT1RIRVI6CisJCWNhc2UgRVhQUl9LSU5E X0pPSU5fT046CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fU1VCU0VMRUNUOgorCQljYXNlIEVYUFJf S0lORF9GUk9NX0ZVTkNUSU9OOgorCQljYXNlIEVYUFJfS0lORF9XSEVSRToKKwkJY2FzZSBFWFBS X0tJTkRfSEFWSU5HOgorCQljYXNlIEVYUFJfS0lORF9GSUxURVI6CisJCWNhc2UgRVhQUl9LSU5E X1dJTkRPV19QQVJUSVRJT046CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19PUkRFUjoKKwkJY2Fz ZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX1JBTkdFOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1df RlJBTUVfUk9XUzoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX0dST1VQUzoKKwkJY2Fz ZSBFWFBSX0tJTkRfU0VMRUNUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfSU5TRVJUX1RBUkdF VDoKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1NPVVJDRToKKwkJY2FzZSBFWFBSX0tJTkRfVVBE QVRFX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTUVSR0VfV0hFTjoKKwkJY2FzZSBFWFBSX0tJ TkRfTUVSR0VfUkVUVVJOSU5HOgorCQljYXNlIEVYUFJfS0lORF9HUk9VUF9CWToKKwkJY2FzZSBF WFBSX0tJTkRfT1JERVJfQlk6CisJCWNhc2UgRVhQUl9LSU5EX0RJU1RJTkNUX09OOgorCQljYXNl IEVYUFJfS0lORF9MSU1JVDoKKwkJY2FzZSBFWFBSX0tJTkRfT0ZGU0VUOgorCQljYXNlIEVYUFJf S0lORF9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFUzoKKwkJY2FzZSBFWFBSX0tJ TkRfVkFMVUVTX1NJTkdMRToKKwkJY2FzZSBFWFBSX0tJTkRfQUxURVJfQ09MX1RSQU5TRk9STToK KwkJY2FzZSBFWFBSX0tJTkRfRVhFQ1VURV9QQVJBTUVURVI6CisJCWNhc2UgRVhQUl9LSU5EX1BP TElDWToKKwkJY2FzZSBFWFBSX0tJTkRfQ0FMTF9BUkdVTUVOVDoKKwkJY2FzZSBFWFBSX0tJTkRf Q09QWV9XSEVSRToKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCXJlc3VsdCA9IHRy dWU7CisJCQlicmVhazsKKworCQkvKiBzZXNzaW9uIHZhcmlhYmxlcyBub3QgYWxsb3dlZCAqLwor CQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgorCQljYXNlIEVYUFJfS0lORF9ET01B SU5fQ0hFQ0s6CisJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgorCQljYXNlIEVYUFJf S0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9O OgorCQljYXNlIEVYUFJfS0lORF9JTkRFWF9QUkVESUNBVEU6CisJCWNhc2UgRVhQUl9LSU5EX1NU QVRTX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX1RSSUdHRVJfV0hFTjoKKwkJY2FzZSBF WFBSX0tJTkRfUEFSVElUSU9OX0JPVU5EOgorCQljYXNlIEVYUFJfS0lORF9QQVJUSVRJT05fRVhQ UkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKKwkJY2FzZSBFWFBS X0tJTkRfSk9JTl9VU0lORzoKKwkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBF WFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCXJlc3VsdCA9IGZhbHNlOworCQkJYnJlYWs7CisJ fQorCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIFRyYW5zZm9ybSBhIENvbHVtblJlZi4K ICAqCkBAIC01NzcsNiArNjY2LDggQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJfS0lORF9DT1BZX1dIRVJFOgogCQlj YXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9N QVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9M RVRfVEFSR0VUOgogCQkJLyogb2theSAqLwogCQkJYnJlYWs7CiAKQEAgLTg0OSw4ICs5NDAsNjEg QEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVm KQogCX0KIAogCS8qCi0JICogVGhyb3cgZXJyb3IgaWYgbm8gdHJhbnNsYXRpb24gZm91bmQuCisJ ICogVGhlcmUgYXJlIGNvbnRleHRzIHdoZXJlIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgYWxs b3dlZC4gIFdlIGRvbid0CisJICogbmVlZCB0byBpZGVudGlmeSBzZXNzaW9uIHZhcmlhYmxlcyBp biBzdWNoIGEgY29udGV4dCwgYnV0IGlkZW50aWZ5aW5nCisJICogdGhlbSBhbGxvd3MgdXMgdG8g cmFpc2UgbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlcyBsaWtlICJ5b3UgY2Fubm90IHVzZQorCSAq IHNlc3Npb24gdmFyaWFibGVzIGhlcmUiLgogCSAqLworCWlmIChleHByX2tpbmRfYWxsb3dzX3Nl c3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCXsKKwkJT2lkCQkJdmFyaWQg PSBJbnZhbGlkT2lkOworCQljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJCWJvb2wJCW5vdF91 bmlxdWU7CisKKwkJLyogLS0tLS0KKwkJICogU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHNoYWRvd2Vk IGJ5IGNvbHVtbnMsIHJvdXRpbmUgdmFyaWFibGVzIG9yCisJCSAqIHJvdXRpbmUgYXJndW1lbnRz LiAgV2UgY2VydGFpbmx5IGRvbid0IHdhbnQgdG8gdXNlIGEgc2Vzc2lvbiB2YXJpYWJsZQorCQkg KiB3aGVuIGl0IGlzIGV4YWN0bHkgc2hhZG93ZWQsIGJ1dCBhIFJURSBsaWtlIHRoaXMgaXMgY29u Y2VpdmFibGU6CisJCSAqCisJCSAqIENSRUFURSBUWVBFIHQgQVMgKGMgaW50KTsKKwkJICogQ1JF QVRFIFZBUklBQkxFIGZvbyBBUyB0OworCQkgKiBDUkVBVEUgVEFCTEUgZm9vKGEgaW50LCBiIGlu dCk7CisJCSAqCisJCSAqIFNFTEVDVCBmb28uYSwgZm9vLmIsIGZvby5jIEZST00gZm9vOworCQkg KgorCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVzaW5nLCBzbyB3ZSBkaXNhbGxvdyBp dC4gIFdlIGRvbid0IHRyeSB0bworCQkgKiBpZGVudGlmeSBhIHZhcmlhYmxlIGlmIHdlIGtub3cg dGhhdCBpdCB3b3VsZCBiZSBzaGFkb3dlZC4KKwkJICogLS0tLS0KKwkJICovCisJCWlmICghbm9k ZSAmJiAhKHJlbG5hbWUgJiYgY3JlcnIgPT0gQ1JFUlJfTk9fQ09MVU1OKSkKKwkJeworCQkJLyog dGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJCQl2 YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+ZmllbGRzLCAmYXR0cm5hbWUsICZub3RfdW5p cXVlLCBmYWxzZSk7CisKKwkJCWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCXsKKwkJCQlPaWQJ CQl0eXBpZDsKKwkJCQlpbnQzMgkJdHlwbW9kOworCQkJCU9pZAkJCWNvbGxpZDsKKworCQkJCWlm IChub3RfdW5pcXVlKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNP REVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJs ZSByZWZlcmVuY2UgXCIlc1wiIGlzIGFtYmlndW91cyIsCisJCQkJCQkJCQlOYW1lTGlzdFRvU3Ry aW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBj cmVmLT5sb2NhdGlvbikpKTsKKworCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9k X2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAorCQkJCQkJCQkJCQkJCQkmY29sbGlkKTsK KworCQkJCW5vZGUgPSBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUocHN0YXRlLAorCQkJCQkJCQkJ CQkJdmFyaWQsIHR5cGlkLCB0eXBtb2QsIGNvbGxpZCwKKwkJCQkJCQkJCQkJCWF0dHJuYW1lLCBj cmVmLT5sb2NhdGlvbik7CisJCQl9CisJCX0KKwl9CisKKwkvKiB0aHJvdyBhbiBlcnJvciBpZiBu byB0cmFuc2xhdGlvbiB3YXMgZm91bmQgKi8KIAlpZiAobm9kZSA9PSBOVUxMKQogCXsKIAkJc3dp dGNoIChjcmVycikKQEAgLTg4Miw2ICsxMDI2LDcyIEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJz ZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAlyZXR1cm4gbm9kZTsKIH0KIAorLyoK KyAqIEdlbmVyYXRlIHBhcmFtIHZhcmlhYmxlIGZvciByZWZlcmVuY2UgdG8gc2Vzc2lvbiB2YXJp YWJsZQorICovCitzdGF0aWMgTm9kZSAqCittYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VT dGF0ZSAqcHN0YXRlLAorCQkJCQkJIE9pZCB2YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2Qs IE9pZCBjb2xsaWQsCisJCQkJCQkgY2hhciAqYXR0cm5hbWUsIGludCBsb2NhdGlvbikKK3sKKwlQ YXJhbQkgICAqcGFyYW07CisKKwlwYXJhbSA9IG1ha2VOb2RlKFBhcmFtKTsKKworCXBhcmFtLT5w YXJhbWtpbmQgPSBQQVJBTV9WQVJJQUJMRTsKKwlwYXJhbS0+cGFyYW12YXJpZCA9IHZhcmlkOwor CXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBpZDsKKwlwYXJhbS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7 CisJcGFyYW0tPnBhcmFtY29sbGlkID0gY29sbGlkOworCisJcHN0YXRlLT5wX2hhc1Nlc3Npb25W YXJpYWJsZXMgPSB0cnVlOworCisJaWYgKGF0dHJuYW1lICE9IE5VTEwpCisJeworCQlUdXBsZURl c2MJdHVwZGVzYzsKKwkJaW50CQkJaTsKKworCQl0dXBkZXNjID0gbG9va3VwX3Jvd3R5cGVfdHVw ZGVzY19ub2Vycm9yKHR5cGlkLCB0eXBtb2QsIHRydWUpOworCQlpZiAoIXR1cGRlc2MpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwK KwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIlcy4lc1wiIGlzIG9mIHR5cGUgXCIlc1wiLCB3aGlj aCBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCisJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCWdldF9zZXNzaW9u X3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSksCisJ CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKworCQlmb3IgKGkg PSAwOyBpIDwgdHVwZGVzYy0+bmF0dHM7IGkrKykKKwkJeworCQkJRm9ybV9wZ19hdHRyaWJ1dGUg YXR0ID0gVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKTsKKworCQkJaWYgKHN0cmNtcChhdHRybmFt ZSwgTmFtZVN0cihhdHQtPmF0dG5hbWUpKSA9PSAwICYmCisJCQkJIWF0dC0+YXR0aXNkcm9wcGVk KQorCQkJeworCQkJCS8qIFN1Y2Nlc3MsIHNvIGdlbmVyYXRlIGEgRmllbGRTZWxlY3QgZXhwcmVz c2lvbiAqLworCQkJCUZpZWxkU2VsZWN0ICpmc2VsZWN0ID0gbWFrZU5vZGUoRmllbGRTZWxlY3Qp OworCisJCQkJZnNlbGVjdC0+YXJnID0gKEV4cHIgKikgcGFyYW07CisJCQkJZnNlbGVjdC0+Zmll bGRudW0gPSBpICsgMTsKKwkJCQlmc2VsZWN0LT5yZXN1bHR0eXBlID0gYXR0LT5hdHR0eXBpZDsK KwkJCQlmc2VsZWN0LT5yZXN1bHR0eXBtb2QgPSBhdHQtPmF0dHR5cG1vZDsKKwkJCQkvKiBzYXZl IGF0dHJpYnV0ZSdzIGNvbGxhdGlvbiBmb3IgcGFyc2VfY29sbGF0ZS5jICovCisJCQkJZnNlbGVj dC0+cmVzdWx0Y29sbGlkID0gYXR0LT5hdHRjb2xsYXRpb247CisKKwkJCQlSZWxlYXNlVHVwbGVE ZXNjKHR1cGRlc2MpOworCQkJCXJldHVybiAoTm9kZSAqKSBmc2VsZWN0OworCQkJfQorCQl9CisK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4p LAorCQkJCSBlcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBjb2x1bW4gXCIlc1wiIGluIHZhcmlh YmxlIiwgYXR0cm5hbWUpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlv bikpKTsKKwl9CisKKwlyZXR1cm4gKE5vZGUgKikgcGFyYW07Cit9CisKIHN0YXRpYyBOb2RlICoK IHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpCiB7 CkBAIC0xODE2LDYgKzIwMjYsNyBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTOgogCQljYXNlIEVY UFJfS0lORF9WQUxVRVNfU0lOR0xFOgogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQlj YXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJLyogb2theSAqLwogCQkJYnJlYWs7CiAJCWNh c2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CkBAIC0xODU5LDYgKzIwNzAsOSBAQCB0cmFu c2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2Fz ZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3Vi cXVlcnkgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJCWNh c2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1 ZXJ5IGFzIHRhcmdldCBvZiBhc3NpZ24gc3RhdGVtZW50Iik7CisJCQlicmVhazsKIAogCQkJLyoK IAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0 aGF0IHRoZQpAQCAtMzE5Niw2ICszNDEwLDEwIEBAIFBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhw cktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4gIkdFTkVSQVRFRCBBUyI7CiAJCWNhc2UgRVhQUl9L SU5EX0NZQ0xFX01BUks6CiAJCQlyZXR1cm4gIkNZQ0xFIjsKKwkJY2FzZSBFWFBSX0tJTkRfQVNT SUdOX1RBUkdFVDoKKwkJCXJldHVybiAiQVNTSUdOIjsKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RB UkdFVDoKKwkJCXJldHVybiAiTEVUIjsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlv bmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKaW5kZXggOWIyMzM0NGEzYjEuLjlhYTRmNjA3NjhiIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKQEAgLTI2NTYsNiArMjY1Niw4IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJz ZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCQllcnIgPSBf KCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVy YXRpb24gZXhwcmVzc2lvbnMiKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9N QVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9M RVRfVEFSR0VUOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgYi9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYwppbmRleCA5 NmY4MGIzMDQ2My4uZGFjNzhiYTVjY2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVz dC5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5j bHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHF1ZXVlLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJleGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImxpYnBxL2xpYnBxLmgiCiAjaW5jbHVk ZSAibGlicHEvcHFmb3JtYXQuaCIKIApAQCAtMTU1LDYgKzE1Niw5IEBAIENyZWF0ZURlc3RSZWNl aXZlcihDb21tYW5kRGVzdCBkZXN0KQogCiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CiAJ CQlyZXR1cm4gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZlcihOVUxMKTsKKworCQlj YXNlIERlc3RWYXJpYWJsZToKKwkJCXJldHVybiBDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihJ bnZhbGlkT2lkKTsKIAl9CiAKIAkvKiBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUgKi8KQEAgLTE5MSw2 ICsxOTUsNyBAQCBFbmRDb21tYW5kKGNvbnN0IFF1ZXJ5Q29tcGxldGlvbiAqcWMsIENvbW1hbmRE ZXN0IGRlc3QsIGJvb2wgZm9yY2VfdW5kZWNvcmF0ZWRfbwogCQljYXNlIERlc3RUcmFuc2llbnRS ZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6 CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpAQCAtMjM3LDYgKzI0Miw3 IEBAIE51bGxDb21tYW5kKENvbW1hbmREZXN0IGRlc3QpCiAJCWNhc2UgRGVzdFRyYW5zaWVudFJl bDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToK KwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9CiB9CkBAIC0yODEsNiArMjg3LDcg QEAgUmVhZHlGb3JRdWVyeShDb21tYW5kRGVzdCBkZXN0KQogCQljYXNlIERlc3RUcmFuc2llbnRS ZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6 CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdGNvcC9wcXVlcnkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMKaW5kZXgg MGM0NWZjZjMxOGYuLjg1YjgwOWNiMDcxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3Bx dWVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMKQEAgLTg2LDYgKzg2LDkgQEAg Q3JlYXRlUXVlcnlEZXNjKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwKIAlxZC0+cXVlcnlFbnYg PSBxdWVyeUVudjsKIAlxZC0+aW5zdHJ1bWVudF9vcHRpb25zID0gaW5zdHJ1bWVudF9vcHRpb25z OwkvKiBpbnN0cnVtZW50YXRpb24gd2FudGVkPyAqLwogCisJcWQtPm51bV9zZXNzaW9uX3Zhcmlh YmxlcyA9IDA7CisJcWQtPnNlc3Npb25fdmFyaWFibGVzID0gTlVMTDsKKwogCS8qIG51bGwgdGhl c2UgZmllbGRzIHVudGlsIHNldCBieSBFeGVjdXRvclN0YXJ0ICovCiAJcWQtPnR1cERlc2MgPSBO VUxMOwogCXFkLT5lc3RhdGUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91 dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCAzMTIyODdlY2E2ZS4u NDIyMzFjNmFiMjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBi L3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAi Y29tbWFuZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3Bh Y2UuaCIKQEAgLTIzNSw2ICsyMzYsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25s eShOb2RlICpwYXJzZXRyZWUpCiAKIAkJY2FzZSBUX0NhbGxTdG10OgogCQljYXNlIFRfRG9TdG10 OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXsKIAkJCQkvKgogCQkJCSAqIENvbW1hbmRzIGluc2lk ZSB0aGUgRE8gYmxvY2sgb3IgdGhlIGNhbGxlZCBwcm9jZWR1cmUgbWlnaHQKQEAgLTEwNjQsNiAr MTA2NiwxMSBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVkU3RtdCAqcHN0bXQsCiAJ CQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlFeGVjdXRlTGV0U3RtdChw c3RhdGUsIChMZXRTdG10ICopIHBhcnNldHJlZSwgcGFyYW1zLAorCQkJCQkJICAgcXVlcnlFbnYs IHFjKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBBbGwgb3RoZXIgc3RhdGVtZW50 IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dlciBzdXBwb3J0ICovCiAJCQlQcm9jZXNzVXRpbGl0eVNs b3cocHN0YXRlLCBwc3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0yMjAzLDYgKzIyMTAsMTAgQEAgVXRp bGl0eUNvbnRhaW5zUXVlcnkoTm9kZSAqcGFyc2V0cmVlKQogCQkJCXJldHVybiBVdGlsaXR5Q29u dGFpbnNRdWVyeShxcnktPnV0aWxpdHlTdG10KTsKIAkJCXJldHVybiBxcnk7CiAKKwkJY2FzZSBU X0xldFN0bXQ6CisJCQlxcnkgPSBjYXN0Tm9kZShRdWVyeSwgKChMZXRTdG10ICopIHBhcnNldHJl ZSktPnF1ZXJ5KTsKKwkJCXJldHVybiBxcnk7CisKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBOVUxM OwogCX0KQEAgLTI0MDEsNiArMjQxMiwxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNl dHJlZSkKIAkJCXRhZyA9IENNRFRBR19TRUxFQ1Q7CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0 U3RtdDoKKwkJCXRhZyA9IENNRFRBR19MRVQ7CisJCQlicmVhazsKKwogCQkJLyogdXRpbGl0eSBz dGF0ZW1lbnRzIC0tLSBzYW1lIHdoZXRoZXIgcmF3IG9yIGNvb2tlZCAqLwogCQljYXNlIFRfVHJh bnNhY3Rpb25TdG10OgogCQkJewpAQCAtMzI4Niw2ICszMzAxLDcgQEAgR2V0Q29tbWFuZExvZ0xl dmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6 CisJCWNhc2UgVF9MZXRTdG10OgogCQkJbGV2ID0gTE9HU1RNVF9BTEw7CiAJCQlicmVhazsKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDY1MzY4NWJmZmM1Li5hMGVkZDVlMDQ5MyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dl ci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21t YW5kcy90YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29tbW9uL2tleXdvcmRzLmgiCkBAIC01MTks NiArNTIwLDcgQEAgc3RhdGljIGNoYXIgKmdlbmVyYXRlX2Z1bmN0aW9uX25hbWUoT2lkIGZ1bmNp ZCwgaW50IG5hcmdzLAogc3RhdGljIGNoYXIgKmdlbmVyYXRlX29wZXJhdG9yX25hbWUoT2lkIG9w ZXJpZCwgT2lkIGFyZzEsIE9pZCBhcmcyKTsKIHN0YXRpYyB2b2lkIGFkZF9jYXN0X3RvKFN0cmlu Z0luZm8gYnVmLCBPaWQgdHlwaWQpOwogc3RhdGljIGNoYXIgKmdlbmVyYXRlX3F1YWxpZmllZF90 eXBlX25hbWUoT2lkIHR5cGlkKTsKK3N0YXRpYyBjaGFyICpnZW5lcmF0ZV9zZXNzaW9uX3Zhcmlh YmxlX25hbWUoT2lkIHZhcmlkKTsKIHN0YXRpYyB0ZXh0ICpzdHJpbmdfdG9fdGV4dChjaGFyICpz dHIpOwogc3RhdGljIGNoYXIgKmZsYXR0ZW5fcmVsb3B0aW9ucyhPaWQgcmVsaWQpOwogc3RhdGlj IHZvaWQgZ2V0X3JlbG9wdGlvbnMoU3RyaW5nSW5mbyBidWYsIERhdHVtIHJlbG9wdGlvbnMpOwpA QCAtODM1MSw2ICs4MzUzLDE0IEBAIGdldF9wYXJhbWV0ZXIoUGFyYW0gKnBhcmFtLCBkZXBhcnNl X2NvbnRleHQgKmNvbnRleHQpCiAJCXJldHVybjsKIAl9CiAKKwkvKiB0cmFuc2xhdGUgcGFyYW12 YXJpZCB0byBzZXNzaW9uIHZhcmlhYmxlIG5hbWUgKi8KKwlpZiAocGFyYW0tPnBhcmFta2luZCA9 PSBQQVJBTV9WQVJJQUJMRSkKKwl7CisJCWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+YnVmLCAi JXMiLAorCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShwYXJhbS0+cGFyYW12 YXJpZCkpOworCQlyZXR1cm47CisJfQorCiAJLyoKIAkgKiBBbHRlcm5hdGl2ZWx5LCBtYXliZSBp dCdzIGEgc3VicGxhbiBvdXRwdXQsIHdoaWNoIHdlIHByaW50IGFzIGEKIAkgKiByZWZlcmVuY2Ug dG8gdGhlIHN1YnBsYW4uICAoV2UgY291bGQgZHJpbGwgZG93biBpbnRvIHRoZSBzdWJwbGFuIGFu ZApAQCAtMTMxMzEsNiArMTMxNDEsNDIgQEAgZ2VuZXJhdGVfY29sbGF0aW9uX25hbWUoT2lkIGNv bGxpZCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogZ2VuZXJhdGVfc2Vzc2lvbl92YXJp YWJsZV9uYW1lCisgKgkJQ29tcHV0ZSB0aGUgbmFtZSB0byBkaXNwbGF5IGZvciBhIHNlc3Npb24g dmFyaWFibGUgc3BlY2lmaWVkIGJ5IE9JRAorICoKKyAqIFRoZSByZXN1bHQgaW5jbHVkZXMgYWxs IG5lY2Vzc2FyeSBxdW90aW5nIGFuZCBzY2hlbWEtcHJlZml4aW5nLgorICovCitzdGF0aWMgY2hh ciAqCitnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKQoreworCUhlYXBU dXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNoYXIJICAgKnZhcm5hbWU7 CisJY2hhcgkgICAqbnNwbmFtZTsKKwljaGFyCSAgICpyZXN1bHQ7CisKKwl0dXAgPSBTZWFyY2hT eXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxl ZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFi bGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFt ZSk7CisKKwlpZiAoIVZhcmlhYmxlSXNWaXNpYmxlKHZhcmlkKSkKKwkJbnNwbmFtZSA9IGdldF9u YW1lc3BhY2VfbmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisJZWxzZQorCQlu c3BuYW1lID0gTlVMTDsKKworCXJlc3VsdCA9IHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKG5z cG5hbWUsIHZhcm5hbWUpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gcmVz dWx0OworfQorCiAvKgogICogR2l2ZW4gYSBDIHN0cmluZywgcHJvZHVjZSBhIFRFWFQgZGF0dW0u CiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgYi9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCA1YWYxYTE2OGVjMi4uN2Ux ZTllMjhmMTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBAIC01OCw2ICs1OCw3 IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvdHJhbnNhbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFt ZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4 ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9k ZXMvbm9kZUZ1bmNzLmgiCkBAIC0xNjIsNiArMTYzLDcgQEAgSW5pdFBsYW5DYWNoZSh2b2lkKQog CUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEFNT1BPUElELCBQbGFuQ2FjaGVTeXNDYWxs YmFjaywgKERhdHVtKSAwKTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhGT1JFSUdO U0VSVkVST0lELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKIAlDYWNoZVJlZ2lz dGVyU3lzY2FjaGVDYWxsYmFjayhGT1JFSUdOREFUQVdSQVBQRVJPSUQsIFBsYW5DYWNoZVN5c0Nh bGxiYWNrLCAoRGF0dW0pIDApOworCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKFZBUklB QkxFT0lELCBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjaywgKERhdHVtKSAwKTsKIH0KIAogLyoKQEAg LTE5MDMsMTggKzE5MDUsMzMgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkgKnBhcnNldHJlZSwg Ym9vbCBhY3F1aXJlKQogCiAJLyoKIAkgKiBSZWN1cnNlIGludG8gc3VibGluayBzdWJxdWVyaWVz LCB0b28uICBCdXQgd2UgYWxyZWFkeSBkaWQgdGhlIG9uZXMgaW4KLQkgKiB0aGUgcnRhYmxlIGFu ZCBjdGVMaXN0LgorCSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuICBXZSBuZWVkIHRvIGZvcmNl IGEgcmVjdXJzaXZlIGNhbGwgZm9yIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMgdG9vLCB0byBmaW5k IGFuZCBsb2NrIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBxdWVyeSAoc2VlCisJICogU2NhblF1ZXJ5 V2Fsa2VyKS4KIAkgKi8KLQlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcykKKwlpZiAocGFyc2V0 cmVlLT5oYXNTdWJMaW5rcyB8fAorCQlwYXJzZXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJ ewogCQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdhbGtlciwKIAkJCQkJ CSAgKHZvaWQgKikgJmFjcXVpcmUsCiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7 CiAJfQorCisJLyogcHJvY2VzcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWlmIChPaWRJc1ZhbGlk KHBhcnNldHJlZS0+cmVzdWx0VmFyaWFibGUpKQorCXsKKwkJaWYgKGFjcXVpcmUpCisJCQlMb2Nr RGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlh YmxlLAorCQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCWVsc2UKKwkJCVVubG9ja0Rh dGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJs ZSwKKwkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJfQogfQogCiAvKgotICogV2Fsa2Vy IHRvIGZpbmQgc3VibGluayBzdWJxdWVyaWVzIGZvciBTY2FuUXVlcnlGb3JMb2NrcworICogV2Fs a2VyIHRvIGZpbmQgc3VibGluayBzdWJxdWVyaWVzIG9yIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJp YWJsZXMKKyAqIGZvciBTY2FuUXVlcnlGb3JMb2NrcwogICovCiBzdGF0aWMgYm9vbAogU2NhblF1 ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUpCkBAIC0xOTI5LDYgKzE5NDYsMjAg QEAgU2NhblF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUpCiAJCVNjYW5RdWVy eUZvckxvY2tzKGNhc3ROb2RlKFF1ZXJ5LCBzdWItPnN1YnNlbGVjdCksICphY3F1aXJlKTsKIAkJ LyogRmFsbCB0aHJvdWdoIHRvIHByb2Nlc3MgbGVmdGhhbmQgYXJncyBvZiBTdWJMaW5rICovCiAJ fQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJh bSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsK KwkJCWlmIChhY3F1aXJlKQorCQkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9u SWQsIHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQll bHNlCisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwLT5wYXJh bXZhcmlkLAorCQkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKwl9CiAKIAkvKgog CSAqIERvIE5PVCByZWN1cnNlIGludG8gUXVlcnkgbm9kZXMsIGJlY2F1c2UgU2NhblF1ZXJ5Rm9y TG9ja3MgYWxyZWFkeQpAQCAtMjA2MCw3ICsyMDkxLDkgQEAgUGxhbkNhY2hlUmVsQ2FsbGJhY2so RGF0dW0gYXJnLCBPaWQgcmVsaWQpCiAKIC8qCiAgKiBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjawot ICoJCVN5c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBQUk9DT0lEIGFuZCBUWVBF T0lEIGNhY2hlcworICoJCVN5c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBUWVBF T0lELCBQUk9DT0lELCBOQU1FU1BBQ0VPSUQsCisgKgkJT1BFUk9JRCwgQU1PUE9QSUQsIEZPUkVJ R05TRVJWRVJPSUQsIEZPUkVJR05EQVRBV1JBUFBFUk9JRCBhbmQKKyAqCQlWQVJJQUJMRU9JRCBj YWNoZXMuCiAgKgogICogSW52YWxpZGF0ZSBhbGwgcGxhbnMgbWVudGlvbmluZyB0aGUgb2JqZWN0 IHdpdGggdGhlIHNwZWNpZmllZCBoYXNoIHZhbHVlLAogICogb3IgYWxsIHBsYW5zIG1lbnRpb25p bmcgYW55IG1lbWJlciBvZiB0aGlzIGNhY2hlIGlmIGhhc2h2YWx1ZSA9PSAwLgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdy L2ZtZ3IuYwppbmRleCBlNDhhODZiZTU0Yi4uZWFhZTBjNWE5MzMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1n ci5jCkBAIC0yMDI2LDkgKzIwMjYsMTMgQEAgZ2V0X2NhbGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUg KmV4cHIsIGludCBhcmdudW0pCiAJICovCiAJaWYgKElzQShhcmcsIENvbnN0KSkKIAkJcmV0dXJu IHRydWU7Ci0JaWYgKElzQShhcmcsIFBhcmFtKSAmJgotCQkoKFBhcmFtICopIGFyZyktPnBhcmFt a2luZCA9PSBQQVJBTV9FWFRFUk4pCi0JCXJldHVybiB0cnVlOworCWlmIChJc0EoYXJnLCBQYXJh bSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBhcmc7CisKKwkJaWYgKHAtPnBhcmFt a2luZCA9PSBQQVJBTV9FWFRFUk4gfHwgcC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQor CQkJcmV0dXJuIHRydWU7CisJfQogCiAJcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmlu ZGV4IDdjYzFmYzU3MTg4Li5iNGRmMDM3OTY1ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMTcwOSw4 ICsxNzA5LDggQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwg aW50IGVuZCkKIAkJIkFCT1JUIiwgIkFMVEVSIiwgIkFOQUxZWkUiLCAiQkVHSU4iLCAiQ0FMTCIs ICJDSEVDS1BPSU5UIiwgIkNMT1NFIiwgIkNMVVNURVIiLAogCQkiQ09NTUVOVCIsICJDT01NSVQi LCAiQ09QWSIsICJDUkVBVEUiLCAiREVBTExPQ0FURSIsICJERUNMQVJFIiwKIAkJIkRFTEVURSBG Uk9NIiwgIkRJU0NBUkQiLCAiRE8iLCAiRFJPUCIsICJFTkQiLCAiRVhFQ1VURSIsICJFWFBMQUlO IiwKLQkJIkZFVENIIiwgIkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNFUlQg SU5UTyIsICJMSVNURU4iLCAiTE9BRCIsICJMT0NLIiwKLQkJIk1FUkdFIElOVE8iLCAiTU9WRSIs ICJOT1RJRlkiLCAiUFJFUEFSRSIsCisJCSJGRVRDSCIsICJHUkFOVCIsICJJTVBPUlQgRk9SRUlH TiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTEVUIiwKKwkJIkxJU1RFTiIsICJMT0FEIiwgIkxP Q0siLCAiTUVSR0UgSU5UTyIsICJNT1ZFIiwgIk5PVElGWSIsICJQUkVQQVJFIiwKIAkJIlJFQVNT SUdOIiwgIlJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVciLCAiUkVJTkRFWCIsICJSRUxFQVNFIiwK IAkJIlJFU0VUIiwgIlJFVk9LRSIsICJST0xMQkFDSyIsCiAJCSJTQVZFUE9JTlQiLCAiU0VDVVJJ VFkgTEFCRUwiLCAiU0VMRUNUIiwgIlNFVCIsICJTSE9XIiwgIlNUQVJUIiwKQEAgLTQyODIsNiAr NDI4MiwxNCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBp bnQgZW5kKQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMo IkRFRkFVTFQiLCAiVkFMVUVTIikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAorLyogTEVUICov CisJLyogSWYgcHJldi4gd29yZCBpcyBMRVQgc3VnZ2VzdCBhIGxpc3Qgb2YgdmFyaWFibGVzICov CisJZWxzZSBpZiAoTWF0Y2hlcygiTEVUIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CisJLyogQ29tcGxldGUgTEVUIDx2YXJpYWJs ZT4gd2l0aCAiPSIgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQor CQlDT01QTEVURV9XSVRIKCI9Iik7CisKIC8qIExPQ0sgKi8KIAkvKiBDb21wbGV0ZSBMT0NLIFtU QUJMRV0gW09OTFldIHdpdGggYSBsaXN0IG9mIHRhYmxlcyAqLwogCWVsc2UgaWYgKE1hdGNoZXMo IkxPQ0siKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDE4ZWE2YWM4M2E1Li5kZWY2OTFk YWZiMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xNzEsNyArMTcxLDkgQEAgZXh0ZXJu IFNlYXJjaFBhdGhNYXRjaGVyICpHZXRTZWFyY2hQYXRoTWF0Y2hlcihNZW1vcnlDb250ZXh0IGNv bnRleHQpOwogZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpDb3B5U2VhcmNoUGF0aE1hdGNoZXIo U2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogZXh0ZXJuIGJvb2wgU2VhcmNoUGF0aE1hdGNoZXND dXJyZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogCitleHRlcm4gTGlz dCAqTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcyk7CiBleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxl KGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZhcm5hbWUsIGJvb2wgbWlzc2luZ19v ayk7CitleHRlcm4gT2lkCUlkZW50aWZ5VmFyaWFibGUoTGlzdCAqbmFtZXMsIGNoYXIgKiphdHRy bmFtZSwgYm9vbCAqbm90X3VuaXF1ZSwgYm9vbCBub2Vycm9yKTsKIAogZXh0ZXJuIE9pZAlnZXRf Y29sbGF0aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBP aWQJZ2V0X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMzgxMGUwNDBmMjguLmRiNTkzY2Q1YmVkIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC0zNSw2ICszNSwxNCBAQCBDQVRBTE9HKHBn X3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIE9JRCBvZiBlbnRyeSBpbiBw Z190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KIAlPaWQJCQl2YXJ0eXBlIEJLSV9MT09LVVAo cGdfdHlwZSk7CiAKKwkvKgorCSAqIFVzZWQgZm9yIGlkZW50aXR5IGNoZWNrIFtvaWQsIGNyZWF0 ZV9sc25dLgorCSAqCisJICogVGhpcyBjb2x1bW4gb2YgdGhlIDgtYnl0ZSBYbG9nUmVjUHRyIHR5 cGUgc2hvdWxkIGJlIGF0IGFuIGFkZHJlc3MgdGhhdAorCSAqIGlzIGRpdmlzaWJsZSBieSA4LCBi dXQgYmVmb3JlIGFueSBjb2x1bW4gb2YgdHlwZSBOYW1lRGF0YS4KKwkgKi8KKwlYTG9nUmVjUHRy CXZhcmNyZWF0ZV9sc247CisKIAkvKiB2YXJpYWJsZSBuYW1lICovCiAJTmFtZURhdGEJdmFybmFt ZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o IGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iM2YwM2M2NTgyNwotLS0gL2Rldi9udWxsCisrKyBi L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMCwwICsxLDMyIEBA CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzZXNzaW9udmFyaWFibGUuaAorICoJICBwcm90 b3R5cGVzIGZvciBzZXNzaW9udmFyaWFibGUuYy4KKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkg b2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgU0VTU0lPTlZBUklB QkxFX0gKKyNkZWZpbmUgU0VTU0lPTlZBUklBQkxFX0gKKworI2luY2x1ZGUgIm5vZGVzL3BhcmFt cy5oIgorI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFy c2Vfbm9kZS5oIgorI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCisjaW5jbHVkZSAidXRpbHMvcXVl cnllbnZpcm9ubWVudC5oIgorCitleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZh cmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOworZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZh cmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051 bGwpOworZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlz TnVsbCwgT2lkICp0eXBpZCk7CitleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5 cGVDaGVjayhPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkIGV4cGVjdGVkX3R5cGlkKTsKKwor ZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpz dG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKKwkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1 ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rl c2MuaAppbmRleCAwYTcyNzRlMjZjOC4uZDFiMmY1OWUwY2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rl c2MuaApAQCAtNDgsNiArNDgsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnlEZXNjCiAJRVN0YXRl CSAgICplc3RhdGU7CQkJLyogZXhlY3V0b3IncyBxdWVyeS13aWRlIHN0YXRlICovCiAJUGxhblN0 YXRlICAqcGxhbnN0YXRlOwkJLyogdHJlZSBvZiBwZXItcGxhbi1ub2RlIHN0YXRlICovCiAKKwkv KiByZWZlcmVuY2UgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgYnVmZmVyICovCisJaW50CQkJbnVtX3Nl c3Npb25fdmFyaWFibGVzOworCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzZXNzaW9uX3ZhcmlhYmxl czsKKwogCS8qIFRoaXMgZmllbGQgaXMgc2V0IGJ5IEV4ZWN1dG9yUnVuICovCiAJYm9vbAkJYWxy ZWFkeV9leGVjdXRlZDsJLyogdHJ1ZSBpZiBwcmV2aW91c2x5IGV4ZWN1dGVkICovCiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmggYi9zcmMvaW5j bHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5kYjQ0ZDhiOTRjNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNs dWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKQEAgLTAsMCArMSwyMiBAQAorLyotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKgorICogc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoJICBwcm90b3R5cGVz IGZvciBzdmFyaWFibGVSZWNlaXZlci5jCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5o CisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBTVkFSSUFCTEVfUkVDRUlW RVJfSAorI2RlZmluZSBTVkFSSUFCTEVfUkVDRUlWRVJfSAorCisjaW5jbHVkZSAidGNvcC9kZXN0 LmgiCisKK2V4dGVybiBEZXN0UmVjZWl2ZXIgKkNyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9p ZCB2YXJpZCk7CisKKyNlbmRpZgkJCQkJCQkvKiBTVkFSSUFCTEVfUkVDRUlWRVJfSCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaAppbmRleCBjMzY3MGY3MTU4Yy4uOWM4YzhhNGM3MmMgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4 ZWNub2Rlcy5oCkBAIC02MDksNiArNjA5LDE4IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5jUmVxdWVz dAogCQkJCQkJCQkgKiB0dXBsZXMpICovCiB9IEFzeW5jUmVxdWVzdDsKIAorLyogLS0tLS0tLS0t LS0tLS0tLQorICogU2Vzc2lvblZhcmlhYmxlVmFsdWUKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAq LwordHlwZWRlZiBzdHJ1Y3QgU2Vzc2lvblZhcmlhYmxlVmFsdWUKK3sKKwlPaWQJCQl2YXJpZDsK KwlPaWQJCQl0eXBpZDsKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOworfSBTZXNzaW9u VmFyaWFibGVWYWx1ZTsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJICBFU3RhdGUgaW5mb3Jt YXRpb24KICAqCkBAIC02NjEsNiArNjczLDEwIEBAIHR5cGVkZWYgc3RydWN0IEVTdGF0ZQogCVBh cmFtTGlzdEluZm8gZXNfcGFyYW1fbGlzdF9pbmZvOwkvKiB2YWx1ZXMgb2YgZXh0ZXJuYWwgcGFy YW1zICovCiAJUGFyYW1FeGVjRGF0YSAqZXNfcGFyYW1fZXhlY192YWxzOwkvKiB2YWx1ZXMgb2Yg aW50ZXJuYWwgcGFyYW1zICovCiAKKwkvKiBTZXNzaW9uIHZhcmlhYmxlcyBpbmZvOiAqLworCWlu dAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsJCS8qIG51bWJlciBvZiB1c2VkIHZhcmlhYmxl cyAqLworCVNlc3Npb25WYXJpYWJsZVZhbHVlICplc19zZXNzaW9uX3ZhcmlhYmxlczsJLyogYXJy YXkgb2YgY29waWVzIG9mIHZhbHVlcyAqLworCiAJUXVlcnlFbnZpcm9ubWVudCAqZXNfcXVlcnlF bnY7CS8qIHF1ZXJ5IGVudmlyb25tZW50ICovCiAKIAkvKiBPdGhlciB3b3JraW5nIHN0YXRlOiAq LwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDgwZWE1OTI4ZWVmLi43NGJmNWFmNzc2NiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTQyLDYgKzE0Miw5IEBAIHR5cGVkZWYgc3RydWN0IFF1 ZXJ5CiAJICovCiAJaW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOwogCisJLyogdGFyZ2V0IHZhcmlhYmxlIG9mIExFVCBzdGF0ZW1lbnQgKi8KKwlP aWQJCQlyZXN1bHRWYXJpYWJsZTsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0IG9yIGhh dmluZ1F1YWwgKi8KIAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdu b3JlKTsKIAkvKiBoYXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpAQCAtMTYwLDYgKzE2 Myw4IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJYm9vbAkJaGFzRm9yVXBkYXRlIHBnX25vZGVf YXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiByZXdyaXRlciBoYXMgYXBwbGllZCBzb21l IFJMUyBwb2xpY3kgKi8KIAlib29sCQloYXNSb3dTZWN1cml0eSBwZ19ub2RlX2F0dHIocXVlcnlf anVtYmxlX2lnbm9yZSk7CisJLyogdXNlcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWJvb2wJCWhh c1Nlc3Npb25WYXJpYWJsZXMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8q IGlzIGEgUkVUVVJOIHN0YXRlbWVudCAqLwogCWJvb2wJCWlzUmV0dXJuIHBnX25vZGVfYXR0cihx dWVyeV9qdW1ibGVfaWdub3JlKTsKIApAQCAtMjA5NSw2ICsyMTAwLDE4IEBAIHR5cGVkZWYgc3Ry dWN0IE1lcmdlU3RtdAogCVdpdGhDbGF1c2UgKndpdGhDbGF1c2U7CQkvKiBXSVRIIGNsYXVzZSAq LwogfSBNZXJnZVN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlMZXQgU3Rh dGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IExl dFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnRhcmdldDsJCQkvKiB0YXJnZXQg dmFyaWFibGUgKi8KKwlOb2RlCSAgICpxdWVyeTsJCQkvKiBzb3VyY2UgZXhwcmVzc2lvbiAqLwor CWludAkJCWxvY2F0aW9uOworfSBMZXRTdG10OworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgKgkJU2VsZWN0IFN0YXRlbWVudAogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5kZXggMTRjY2Zj MWFjMWMuLmMxNjM4NTUxMmZjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaApAQCAtMTYzLDYgKzE2Myw5 IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZXJHbG9iYWwKIAogCS8qIHBhcnRpdGlvbiBkZXNjcmlw dG9ycyAqLwogCVBhcnRpdGlvbkRpcmVjdG9yeSBwYXJ0aXRpb25fZGlyZWN0b3J5IHBnX25vZGVf YXR0cihyZWFkX3dyaXRlX2lnbm9yZSk7CisKKwkvKiBsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJp YWJsZXMgKi8KKwlMaXN0CSAgICpzZXNzaW9uVmFyaWFibGVzOwogfSBQbGFubmVyR2xvYmFsOwog CiAvKiBtYWNybyBmb3IgZmV0Y2hpbmcgdGhlIFBsYW4gYXNzb2NpYXRlZCB3aXRoIGEgU3ViUGxh biBub2RlICovCkBAIC01MDgsNiArNTExLDggQEAgc3RydWN0IFBsYW5uZXJJbmZvCiAJYm9vbAkJ cGxhY2Vob2xkZXJzRnJvemVuOwogCS8qIHRydWUgaWYgcGxhbm5pbmcgYSByZWN1cnNpdmUgV0lU SCBpdGVtICovCiAJYm9vbAkJaGFzUmVjdXJzaW9uOworCS8qIHRydWUgaWYgc2Vzc2lvbiB2YXJp YWJsZXMgd2VyZSB1c2VkICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCS8qCiAJ ICogSW5mb3JtYXRpb24gYWJvdXQgYWdncmVnYXRlcy4gRmlsbGVkIGJ5IHByZXByb2Nlc3NfYWdn cmVmcygpLgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCAxYWVlYWVjOTVlMS4uNmI5Yjk5MDRmZGIg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC00OSw3ICs0OSw3IEBAIHR5cGVkZWYgc3RydWN0IFBs YW5uZWRTdG10CiAKIAlOb2RlVGFnCQl0eXBlOwogCi0JQ21kVHlwZQkJY29tbWFuZFR5cGU7CS8q IHNlbGVjdHxpbnNlcnR8dXBkYXRlfGRlbGV0ZXxtZXJnZXx1dGlsaXR5ICovCisJQ21kVHlwZQkJ Y29tbWFuZFR5cGU7CS8qIHNlbGVjdHxsZXR8aW5zZXJ0fHVwZGF0ZXxkZWxldGV8bWVyZ2V8dXRp bGl0eSAqLwogCiAJdWludDY0CQlxdWVyeUlkOwkJLyogcXVlcnkgaWRlbnRpZmllciAoY29waWVk IGZyb20gUXVlcnkpICovCiAKQEAgLTk0LDYgKzk0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5l ZFN0bXQKIAogCU5vZGUJICAgKnV0aWxpdHlTdG10OwkvKiBub24tbnVsbCBpZiB0aGlzIGlzIHV0 aWxpdHkgc3RtdCAqLwogCisJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsJLyogT0lEcyBmb3Ig UEFSQU1fVkFSSUFCTEUgUGFyYW1zICovCisKIAkvKiBzdGF0ZW1lbnQgbG9jYXRpb24gaW4gc291 cmNlIHN0cmluZyAoY29waWVkIGZyb20gUXVlcnkpICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlv bjsJLyogc3RhcnQgbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlzdG10 X2xlbjsJCS8qIGxlbmd0aCBpbiBieXRlczsgMCBtZWFucyAicmVzdCBvZiBzdHJpbmciICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oCmluZGV4IGVhNDc2NTJhZGI4Li41ZjdiODNkMTNmYSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmgKQEAgLTM2MSw2ICszNjEsOSBAQCB0eXBlZGVmIHN0cnVjdCBDb25zdAogICoJ CQkJb2YgdGhlIGBwYXJhbWlkJyBmaWVsZCBjb250YWluIHRoZSBTdWJMaW5rJ3Mgc3ViTGlua0lk LCBhbmQKICAqCQkJCXRoZSBsb3ctb3JkZXIgMTYgYml0cyBjb250YWluIHRoZSBjb2x1bW4gbnVt YmVyLiAgKFRoaXMgdHlwZQogICoJCQkJb2YgUGFyYW0gaXMgYWxzbyBjb252ZXJ0ZWQgdG8gUEFS QU1fRVhFQyBkdXJpbmcgcGxhbm5pbmcuKQorICoKKyAqCQlQQVJBTV9WQVJJQUJMRTogIFRoZSBw YXJhbWV0ZXIgaXMgYSByZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxlCisgKgkJCQkocGFy YW1pZCBob2xkcyB0aGUgdmFyaWFibGUncyBPSUQpLgogICovCiB0eXBlZGVmIGVudW0gUGFyYW1L aW5kCiB7CkBAIC0zNjgsNiArMzcxLDcgQEAgdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogCVBBUkFN X0VYRUMsCiAJUEFSQU1fU1VCTElOSywKIAlQQVJBTV9NVUxUSUVYUFIsCisJUEFSQU1fVkFSSUFC TEUsCiB9IFBhcmFtS2luZDsKIAogdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KQEAgLTM4MCw2ICszODQs OCBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbQogCWludDMyCQlwYXJhbXR5cG1vZCBwZ19ub2RlX2F0 dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogT0lEIG9mIGNvbGxhdGlvbiwgb3IgSW52YWxp ZE9pZCBpZiBub25lICovCiAJT2lkCQkJcGFyYW1jb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1 bWJsZV9pZ25vcmUpOworCS8qIE9JRCBvZiBzZXNzaW9uIHZhcmlhYmxlIGlmIGl0IGlzIHVzZWQg Ki8KKwlPaWQJCQlwYXJhbXZhcmlkOwogCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtu b3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IFBhcmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1h aW4uaAppbmRleCBhYWZjMTczNzkyMS4uZGU0NzE2OTJlODIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL29wdGltaXplci9wbGFubWFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFu bWFpbi5oCkBAIC0xMjAsNCArMTIwLDYgQEAgZXh0ZXJuIHZvaWQgcmVjb3JkX3BsYW5fZnVuY3Rp b25fZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIGZ1bmNpZCk7CiBleHRlcm4gdm9p ZCByZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBp ZCk7CiBleHRlcm4gYm9vbCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAq bm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpOwogCitleHRlcm4gdm9pZCBwdWxsX3VwX2hhc19z ZXNzaW9uX3ZhcmlhYmxlcyhQbGFubmVySW5mbyAqcm9vdCk7CisKICNlbmRpZgkJCQkJCQkvKiBQ TEFOTUFJTl9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9z cmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggYzg4NGNkNWM0NjcuLjJlODhkN2Q5NTA4 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1 ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0yNTYsNiArMjU2LDcgQEAgUEdfS0VZV09SRCgibGVhZGlu ZyIsIExFQURJTkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJs ZWFrcHJvb2YiLCBMRUFLUFJPT0YsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoImxlYXN0IiwgTEVBU1QsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJsZWZ0IiwgTEVGVCwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJF TCkKK1BHX0tFWVdPUkQoImxldCIsIExFVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgibGV2ZWwiLCBMRVZFTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgibGlrZSIsIExJS0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsaW1pdCIsIExJTUlULCBSRVNFUlZFRF9LRVlXT1JELCBB U19MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IDViNzgxZDg3YTlkLi42ZDkzNjkx OTY1OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC04Miw2ICs4Miw4IEBAIHR5cGVkZWYg ZW51bSBQYXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX0NPUFlfV0hFUkUsCQkvKiBXSEVSRSBjb25k aXRpb24gaW4gQ09QWSBGUk9NICovCiAJRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU4sIC8qIGdl bmVyYXRpb24gZXhwcmVzc2lvbiBmb3IgYSBjb2x1bW4gKi8KIAlFWFBSX0tJTkRfQ1lDTEVfTUFS SywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8KKwlFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCwJLyog UEwvcGdTUUwgYXNzaWdubWVudCB0YXJnZXQgKi8KKwlFWFBSX0tJTkRfTEVUX1RBUkdFVCwJCS8q IExFVCB0YXJnZXQgKi8KIH0gUGFyc2VFeHByS2luZDsKIAogCkBAIC0yMjUsNiArMjI3LDcgQEAg c3RydWN0IFBhcnNlU3RhdGUKIAlib29sCQlwX2hhc1RhcmdldFNSRnM7CiAJYm9vbAkJcF9oYXNT dWJMaW5rczsKIAlib29sCQlwX2hhc01vZGlmeWluZ0NURTsKKwlib29sCQlwX2hhc1Nlc3Npb25W YXJpYWJsZXM7CiAKIAlOb2RlCSAgICpwX2xhc3Rfc3JmOwkJLyogbW9zdCByZWNlbnQgc2V0LXJl dHVybmluZyBmdW5jL29wIGZvdW5kICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggOTQ2NWRm N2IyZmYuLmE5MjFhZjI0ODZmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xp c3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMTg2LDYgKzE4Niw3 IEBAIFBHX0NNRFRBRyhDTURUQUdfR1JBTlQsICJHUkFOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfR1JBTlRfUk9MRSwgIkdSQU5UIFJPTEUiLCBmYWxzZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19JTVBPUlRfRk9SRUlHTl9TQ0hFTUEsICJJTVBPUlQg Rk9SRUlHTiBTQ0hFTUEiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0lO U0VSVCwgIklOU0VSVCIsIGZhbHNlLCBmYWxzZSwgdHJ1ZSkKK1BHX0NNRFRBRyhDTURUQUdfTEVU LCAiTEVUIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfTElTVEVOLCAi TElTVEVOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfTE9BRCwgIkxP QUQiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MT0NLX1RBQkxFLCAi TE9DSyBUQUJMRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS90Y29wL2Rlc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCmluZGV4IGEzZDUyMWI2Zjk3 Li4zOGNjODdmNGU3YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKKysrIGIv c3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKQEAgLTk3LDYgKzk3LDcgQEAgdHlwZWRlZiBlbnVtCiAJ RGVzdFRyYW5zaWVudFJlbCwJCQkvKiByZXN1bHRzIHNlbnQgdG8gdHJhbnNpZW50IHJlbGF0aW9u ICovCiAJRGVzdFR1cGxlUXVldWUsCQkJCS8qIHJlc3VsdHMgc2VudCB0byB0dXBsZSBxdWV1ZSAq LwogCURlc3RFeHBsYWluU2VyaWFsaXplLAkJLyogcmVzdWx0cyBhcmUgc2VyaWFsaXplZCBhbmQg ZGlzY2FyZGVkICovCisJRGVzdFZhcmlhYmxlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gc2Vzc2lv biB2YXJpYWJsZSAqLwogfSBDb21tYW5kRGVzdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZm IC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9leGVjLmMKaW5kZXggMjM5YjMyNTBhOTUuLmE5ZTFlMzIzYWQxIDEwMDY0NAotLS0gYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9l eGVjLmMKQEAgLTgxMDEsNyArODEwMSw4IEBAIGV4ZWNfaXNfc2ltcGxlX3F1ZXJ5KFBMcGdTUUxf ZXhwciAqZXhwcikKIAkJcXVlcnktPnNvcnRDbGF1c2UgfHwKIAkJcXVlcnktPmxpbWl0T2Zmc2V0 IHx8CiAJCXF1ZXJ5LT5saW1pdENvdW50IHx8Ci0JCXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQorCQlx dWVyeS0+c2V0T3BlcmF0aW9ucyB8fAorCQlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJ cmV0dXJuIGZhbHNlOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggYWNhNzY2MDQyZGIuLjI4NzYyOGVkZTYxIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNTUs MyArNTUsOTE1IEBAIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjE7CiBEUk9QIFNDSEVNQSBzdmFydGVzdDsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxl X293bmVyOworLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cworQ1JFQVRFIFJPTEUgcmVncmVzc19ub293 bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gc3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBM QU5HVUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeF9zZChpbnQpCitS RVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbCBTRUNVUklU WSBERUZJTkVSOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCkKK1JF VFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBw bHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCkKK1JF VFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBw bHBnc3FsIFNFQ1VSSVRZIERFRklORVI7CitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRUxFQ1Qg c3FsZngoMjApOworIHNxbGZ4IAorLS0tLS0tLQorICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBz cWxmeF9zZCgyMCk7Cisgc3FsZnhfc2QgCistLS0tLS0tLS0tCisgICAgICAgMzAKKygxIHJvdykK KworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAg ICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisgcGxwZ3NxbGZ4X3Nk IAorLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMzAKKygxIHJvdykKKworLS0gc2hvdWxkIGZh aWwKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKK1NFTEVDVCB2YXIxOworRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitTRUxFQ1Qgc3FsZngo MjApOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIx CitDT05URVhUOiAgU1FMIGZ1bmN0aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKK1NFTEVDVCBwbHBn c3FsZngoMjApOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSB2YXIxCitDT05URVhUOiAgU1FMIGV4cHJlc3Npb24gIiQxICsgdmFyMSIKK1BML3BnU1FMIGZ1 bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCBzcWxmeF9zZCgyMCk7Cisgc3FsZnhfc2QgCistLS0tLS0tLS0tCisgICAgICAg MzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisgcGxwZ3NxbGZ4X3NkIAor LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMzAKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVG QVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3Nfbm9vd25lcjsK Ky0tIHNob3VsZCBiZSBvaworU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworU0VMRUNUIHNxbGZ4KDIwKTsK KyBzcWxmeCAKKy0tLS0tLS0KKyAgICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4KDIw KTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgICAzMAorKDEgcm93KQorCitTRVQg Uk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBzcWxm eChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoaW50KTsKK0RST1AgRlVOQ1RJT04gc3Fs Znhfc2QoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCk7CitEUk9QIFJPTEUg cmVncmVzc19ub293bmVyOworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlld3MKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CistLSB1c2UgdmFyaWFibGVzIGluIHZpZXdzCitDUkVB VEUgVklFVyB0ZXN0X3ZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEgKyB2LCAwKSBBUyByZXN1 bHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwyKSBnKHYpOworU0VMRUNUICogRlJPTSB0ZXN0X3Zp ZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgIDAKKyAgICAgIDAKKygyIHJvd3MpCisKK0xF VCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0t LS0tCisgICA0LjE0CisgICA1LjE0CisoMiByb3dzKQorCistLSBzdGFydCBhIG5ldyBzZXNzaW9u CitcYworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAg IDAKKyAgICAgIDAKKygyIHJvd3MpCisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00g dGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICA0LjE0CisgICA1LjE0CisoMiByb3dz KQorCistLSBzaG91bGQgZmFpbCwgZGVwZW5kZW5jeQorRFJPUCBWQVJJQUJMRSB2YXIxOworRVJS T1I6ICBjYW5ub3QgZHJvcCBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgYmVjYXVzZSBvdGhlciBvYmpl Y3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgdmlldyB0ZXN0X3ZpZXcgZGVwZW5kcyBvbiBzZXNz aW9uIHZhcmlhYmxlIHZhcjEKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRo ZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUg dmFyMSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHRlc3Rfdmlldwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIHRleHQ7Cist LSB1c2UgdmFyaWFibGVzIGluIFNRTCBmdW5jdGlvbnMKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHNxbGZ4MSh2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIxIHx8 ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g c3FsZngyKCB2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIyIHx8ICcs ICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworTEVUIHZhcjEgPSAnc3RyMSc7CitMRVQgdmFyMiA9 ICdzdHIyJzsKK1NFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKyAgICAgIHNxbGZ4MSAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzdHIxLCBzdHIyLCBIZWxsbworKDEgcm93KQor CistLSBpbmxpbmluZyBpcyBibG9ja2VkCitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFNF TEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKyAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVzdWx0CisgICBPdXRwdXQ6IHNxbGZ4MShz cWxmeDIoJ0hlbGxvJzo6Y2hhcmFjdGVyIHZhcnlpbmcpKQorKDIgcm93cykKKworRFJPUCBGVU5D VElPTiBzcWxmeDEodmFyY2hhcik7CitEUk9QIEZVTkNUSU9OIHNxbGZ4Mih2YXJjaGFyKTsKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKy0tIGFjY2VzcyBmcm9tIGNh Y2hlZCBwbGFucyBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeCgpCitSRVRVUk5TIG51bWVyaWMg QVMgJCQgQkVHSU4gUkVUVVJOIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworc2V0IHBs YW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CitMRVQgdmFyMSA9IDMuMTQ7CitT RUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgIDMuMTQK KygxIHJvdykKKworTEVUIHZhcjEgPSAzLjE0ICogMjsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBw bHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgNi4yOAorKDEgcm93KQorCitEUk9QIFZBUklB QkxFIHZhcjE7CistLSBkZXBlbmRlbmN5IChwbGFuIGludmFsaWRhdGlvbikgc2hvdWxkIHdvcmsK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CitMRVQgdmFyMSA9IDMuMTQgKiAzOwor U0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICA5LjQy CisoMSByb3cpCisKK0xFVCB2YXIxID0gMy4xNCAqIDQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7Cisg cGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgMTIuNTYKKygxIHJvdykKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoKTsKK3NldCBwbGFuX2NhY2hlX21v ZGUgVE8gREVGQVVMVDsKKy0tIHVzYWdlIExFVCBzdGF0ZW1lbnQgaW4gcGxwZ3NxbCBzaG91bGQg d29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgbnVt ZXJpY1tdOworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIyID0gJ3t9Jzo6aW50W107CisgIEZPUiBp IElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IGk7CisgICAgTEVUIHZhcjJbdmFyMV0g PSBpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICdyZXN1bHQgYXJyYXk6ICUnLCB2YXIy OworRU5EOworJCQ7CitOT1RJQ0U6ICByZXN1bHQgYXJyYXk6IHsxLDIsMyw0LDUsNiw3LDgsOSwx MH0KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKy0tIENBTEwgc3Rh dGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRv IHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFC TEUgdiBpbnQ7CitDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0Ug Tk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCBub3Qg Y3Jhc2ggKGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHlldCkKK0NBTEwgcCh2KTsKK0VSUk9SOiAgc2Vz c2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorRE8gJCQgQkVHSU4g Q0FMTCBwKHYpOyBFTkQgJCQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVz ZWQgYXMgYW4gYXJndW1lbnQKK0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJDQUxMIHAodikiCitQ TC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgQ0FMTAorRFJPUCBQ Uk9DRURVUkUgcChpbnQpOworRFJPUCBWQVJJQUJMRSB2OworLS0gdGVzdCBzZWFyY2ggcGF0aAor Q1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFT IG51bWVyaWM7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBwaSgpOworRVJST1I6ICBzZXNz aW9uIHZhcmlhYmxlICJ2YXIxIiBkb2Vzbid0IGV4aXN0CitMSU5FIDE6IExFVCB2YXIxID0gcGko KTsKKyAgICAgICAgICAgIF4KK1NFTEVDVCB2YXIxOworRVJST1I6ICBjb2x1bW4gInZhcjEiIGRv ZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgXgorLS0g c2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3QudmFyMSA9IHBpKCk7CitTRUxFQ1Qgc3ZhcnRlc3Qu dmFyMTsKKyAgICAgICB2YXIxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tCisgMy4xNDE1OTI2 NTM1ODk3OQorKDEgcm93KQorCitTRVQgc2VhcmNoX3BhdGggVE8gc3ZhcnRlc3Q7CistLSBzaG91 bGQgYmUgb2sKK0xFVCB2YXIxID0gcGkoKSArIDEwOworU0VMRUNUIHZhcjE7CisgICAgICAgdmFy MSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIDEzLjE0MTU5MjY1MzU4OTgKKygxIHJvdykK KworUkVTRVQgc2VhcmNoX3BhdGg7CitEUk9QIFNDSEVNQSBzdmFydGVzdCBDQVNDQURFOworTk9U SUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0LnZhcjEKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CistLSB2YXJpYWJsZXMgY2FuIGJlIHVwZGF0ZWQg dW5kZXIgUk8gdHJhbnNhY3Rpb24KK0JFR0lOOworU0VUIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsK K0xFVCB2YXIxID0gJ2hlbGxvJzsKK0NPTU1JVDsKK1NFTEVDVCB2YXIxOworIHZhcjEgIAorLS0t LS0tLQorIGhlbGxvCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlc3Qgb2Yg ZG9tYWlucworQ1JFQVRFIERPTUFJTiBpbnRfZG9tYWluIEFTIGludCBOT1QgTlVMTCBDSEVDSyAo VkFMVUUgPiAxMDApOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50X2RvbWFpbjsKKy0tIHNo b3VsZCBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgZG9tYWluIGludF9kb21haW4gZG9lcyBu b3QgYWxsb3cgbnVsbCB2YWx1ZXMKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDAwOwor U0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworLS0gc2hvdWxk IGZhaWwKK0xFVCB2YXIxID0gMTA7CitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gaW50X2RvbWFp biB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJpbnRfZG9tYWluX2NoZWNrIgorLS0gc2hvdWxk IGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKK0VSUk9SOiAgZG9tYWluIGludF9kb21haW4gZG9lcyBu b3QgYWxsb3cgbnVsbCB2YWx1ZXMKKy0tIG5vdGUgLSBkb21haW4gZGVmYXVsdHMgYXJlIG5vdCBz dXBwb3J0ZWQgeWV0IChsaWtlIFBMcGdTUUwpCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIERP TUFJTiBpbnRfZG9tYWluOworLS0gdGhlIGV4cHJlc3Npb24gc2hvdWxkIHJlbWFpbiAidW5rbm93 biIKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDRtdWx0aXJhbmdlW107CistLSBzaG91bGQg YmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKK0xFVCB2YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwi e1s1LDgpLFsxMiwxNCl9In0nOworTEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwxMDApfSc7CitT RUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgICAgIHZhcjEgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7IntbMiw4KSxbMTEsMTQp fSIsIntbNSw4KSxbMTIsMTAwKX0ifQorKDEgcm93KQorCistLUl0IHNob3VsZCB3b3JrIGluIHBs cGdzcWwgdG9vCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSBOVUxMOworICBMRVQgdmFyMSA9 ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKKyAgTEVUIHZhcjFbMl0g PSAne1s1LDgpLFsxMiwxMDApfSc7CisKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsK KyQkOworTk9USUNFOiAgeyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0KK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3QgQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50IENSRUFURSBUQUJMRSBmb28oYSBpbnQpOworTEVUIHN2YXJ0ZXN0LnZhcjEg PSAxMDA7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEg cm93KQorCitTRVQgc2VhcmNoX3BhdGggdG8gcHVibGljLCBzdmFydGVzdDsKK1NFTEVDVCB2YXIx OworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0 IENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cworREVU QUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBmb28KK2Ryb3AgY2FzY2FkZXMgdG8gc2Vzc2lv biB2YXJpYWJsZSB2YXIxCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFS SUFCTEUgdmFyMiBBUyBpbnRbXTsKK0xFVCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9Jzo6aW50 W107CitMRVQgdmFyMlt2YXIxXSA9IDA7CitTRUxFQ1QgdmFyMjsKKyAgIHZhcjIgICAgCistLS0t LS0tLS0tLQorIFsyOjJdPXswfQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBp bnRbXTsKK0xFVCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9Jzo6aW50W107CitTRUxFQ1QgdmFy MjsKKyB2YXIyIAorLS0tLS0tCisge30KKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2 YXIyOworLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBT RUxFQ1QgKiBGUk9NIHg7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitM SU5FIDE6IFdJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKKyAgICAg ICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEpOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEs IDIpOworRVJST1I6ICBleHByZXNzaW9uIHJldHVybmVkIG1vcmUgdGhhbiBvbmUgcm93CitMRVQg dmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAwKTsKK0VSUk9SOiAgZXhwcmVzc2lvbiByZXR1cm5l ZCBubyByb3dzCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBjb21wb3NpdGUgdmFyaWFibGVzCitD UkVBVEUgVFlQRSBzdl94eXogQVMgKHggaW50LCB5IGludCwgeiBudW1lcmljKDEwLDIpKTsKK0NS RUFURSBWQVJJQUJMRSB2MSBBUyBzdl94eXo7CitDUkVBVEUgVkFSSUFCTEUgdjIgQVMgc3ZfeHl6 OworTEVUIHYxID0gKDEsIDIsIDMuMTQpOworTEVUIHYyID0gKDEwLCAyMCwgMy4xNCAqIDEwKTsK Ky0tIHNob3VsZCB3b3JrIHRvbyAtIHRoZXJlIGFyZSBwcmVwYXJlZCBjYXN0cworTEVUIHYxID0g KDEsIDIsIDMpOworU0VMRUNUIHYxOworICAgICB2MSAgICAgCistLS0tLS0tLS0tLS0KKyAoMSwy LDMuMDApCisoMSByb3cpCisKK1NFTEVDVCB2MjsKKyAgICAgIHYyICAgICAgIAorLS0tLS0tLS0t LS0tLS0tCisgKDEwLDIwLDMxLjQwKQorKDEgcm93KQorCitTRUxFQ1QgKHYxKS4qOworIHggfCB5 IHwgIHogICAKKy0tLSstLS0rLS0tLS0tCisgMSB8IDIgfCAzLjAwCisoMSByb3cpCisKK1NFTEVD VCAodjIpLio7CisgeCAgfCB5ICB8ICAgeiAgIAorLS0tLSstLS0tKy0tLS0tLS0KKyAxMCB8IDIw IHwgMzEuNDAKKygxIHJvdykKKworU0VMRUNUIHYxLnggKyB2MS56OworID9jb2x1bW4/IAorLS0t LS0tLS0tLQorICAgICA0LjAwCisoMSByb3cpCisKK1NFTEVDVCB2Mi54ICsgdjIuejsKKyA/Y29s dW1uPyAKKy0tLS0tLS0tLS0KKyAgICA0MS40MAorKDEgcm93KQorCistLSBhY2Nlc3MgdG8gY29t cG9zaXRlIGZpZWxkcyBzaG91bGQgYmUgc2FmZSB0b28KK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFy X3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKy0tIHNob3Vs ZCBmYWlsCitTRUxFQ1QgdjIueDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Np b24gdmFyaWFibGUgdjIKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHYxOwor RFJPUCBWQVJJQUJMRSB2MjsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitDUkVB VEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVtZXJpYywgYyB0ZXh0KTsKK0NSRUFURSBWQVJJQUJM RSB2MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgpLCAnaGVsbG8nKTsKK1NFTEVDVCB2MTsKKyAg ICAgICAgICAgICB2MSAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAoMSwzLjE0MTU5MjY1MzU4OTc5LGhlbGxvKQorKDEgcm93KQorCitMRVQgdjEuYiA9IDEwLjIy MjI7CitTRUxFQ1QgdjE7CisgICAgICAgIHYxICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t CisgKDEsMTAuMjIyMixoZWxsbykKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwsIGF0dHJpYnV0 ZSBkb2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEwOworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRv IGZpZWxkICJ4IiBvZiBjb2x1bW4gInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1u IGluIGRhdGEgdHlwZSB0MQorTElORSAxOiBMRVQgdjEueCA9IDEwOworICAgICAgICAgICAgXgor LS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11bHRpIGNvbHVtbiBxdWVyeQorTEVUIHYxID0g KE5VTEw6OnQxKS4qOworRVJST1I6ICBhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgMyBj b2x1bW5zCitMSU5FIDE6IExFVCB2MSA9IChOVUxMOjp0MSkuKjsKKyAgICAgICAgICAgICAgICAg IF4KKy0tIGFsbG93IERST1Agb3IgQUREIEFUVFJJQlVURSBvbiBjb21wb3NpdGUgdHlwZXMKKy0t IHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBjOworU0VMRUNUIHYx OworICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLQorICgxLDEwLjIyMjIpCisoMSByb3cpCisK Ky0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50OworU0VM RUNUIHYxOworICAgICAgdjEgICAgICAKKy0tLS0tLS0tLS0tLS0tCisgKDEsMTAuMjIyMiwpCiso MSByb3cpCisKK0xFVCB2MSA9ICgxMCwgMTAuMywgMjApOworU0VMRUNUIHYxOworICAgICAgdjEg ICAgICAKKy0tLS0tLS0tLS0tLS0tCisgKDEwLDEwLjMsMjApCisoMSByb3cpCisKKy0tIHNob3Vs ZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBiOworU0VMRUNUIHYxOworICAg djEgICAgCistLS0tLS0tLS0KKyAoMTAsMjApCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsLCBk aXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdlCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBj IFRZUEUgaW50OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSAidDEiIGJlY2F1c2Ugc2Vzc2lv biB2YXJpYWJsZSAicHVibGljLnYxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBU WVBFIHQxOworLS0gdGhlIHRhYmxlIHR5cGUgY2FuIGJlIHVzZWQgYXMgY29tcG9zaXRlIHR5cGUg dG9vCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50LCBiIG51bWVyaWMsIGMgZGF0ZSk7CitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rlc3Q7CitMRVQgdmFyMSA9ICgxMCwgcGkoKSwg JzIwMjMtMDUtMjYnKTsKK1NFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgdmFyMSAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxMCwzLjE0MTU5 MjY1MzU4OTc5LDA1LTI2LTIwMjMpCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsIGR1ZSBkZXBl bmRlbmN5CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3QgQUxURVIgQ09MVU1OIGEgVFlQRSB0ZXh0Owor RVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgInN2YXJfdGVzdCIgYmVjYXVzZSBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorLS0gc2hvdWxkIGZhaWwKK0RST1AgVEFCTEUg c3Zhcl90ZXN0OworRVJST1I6ICBjYW5ub3QgZHJvcCB0YWJsZSBzdmFyX3Rlc3QgYmVjYXVzZSBv dGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2YXIx IGRlcGVuZHMgb24gdHlwZSBzdmFyX3Rlc3QKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0 byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIFZBUklBQkxFIHZhcjE7CitE Uk9QIFRBQkxFIHN2YXJfdGVzdDsKKy0tIGFycmF5cyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBudW1lcmljW107CitMRVQgdmFyMSA9IEFSUkFZWzEuMSwyLjFdOworTEVU IHZhcjFbMV0gPSAxMC4xOworU0VMRUNUIHZhcjE7CisgICAgdmFyMSAgICAKKy0tLS0tLS0tLS0t LQorIHsxMC4xLDIuMX0KKygxIHJvdykKKworLS0gTEVUIHRhcmdldCBkb2Vzbid0IGFsbG93IHNy Ziwgc2hvdWxkIGZhaWwKK0xFVCB2YXIxW2dlbmVyYXRlX3NlcmllcygxLDMpXSA9IDEwMDsKK0VS Uk9SOiAgc2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIExFVAorTElO RSAxOiBMRVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CisgICAgICAgICAgICAg ICAgIF4KK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGFycmF5cyBpbnNpZGUgY29tcG9zaXRlCitD UkVBVEUgVFlQRSB0MSBBUyAoYSBudW1lcmljLCBiIG51bWVyaWNbXSk7CitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyB0MTsKK0xFVCB2YXIxID0gKDEwLjEsIEFSUkFZWzAuMCwgMC4wXSk7CitMRVQg dmFyMS5hID0gMTAuMjsKK1NFTEVDVCB2YXIxOworICAgICAgICB2YXIxICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKDEwLjIsInswLjAsMC4wfSIpCisoMSByb3cpCisKK0xFVCB2YXIx LmJbMV0gPSAxMC4zOworU0VMRUNUIHZhcjE7CisgICAgICAgIHZhcjEgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICgxMC4yLCJ7MTAuMywwLjB9IikKKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHQxOworLS0gRW5jb3VyYWdlIHVzZSBvZiBwYXJhbGxl bCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxl X2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1h eF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAyOworLS0gdGVzdCBvbiBxdWVyeSB3aXRo IHdvcmtlcnMKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQpOworSU5TRVJUIElOVE8gc3Zh cl90ZXN0IFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCk7CitBTkFMWVpFIHN2 YXJfdGVzdDsKK0NSRUFURSBWQVJJQUJMRSB6ZXJvIGludDsKK0xFVCB6ZXJvID0gMDsKKy0tIHJl c3VsdCBzaG91bGQgYmUgMTAwCitTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUg YSUxMCA9IHplcm87CisgY291bnQgCistLS0tLS0tCisgICAxMDAKKygxIHJvdykKKworLS0gcGFy YWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgeWV0CitFWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKKyAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIFNlcSBTY2FuIG9uIHN2YXJfdGVzdAorICAg ICAgICAgRmlsdGVyOiAoKGEgJSAxMCkgPSB6ZXJvKQorKDMgcm93cykKKworTEVUIHplcm8gPSAo U0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0KTsKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAw MAorU0VMRUNUIHplcm87CisgemVybyAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB6ZXJvOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitSRVNFVCBwYXJhbGxlbF9zZXR1 cF9jb3N0OworUkVTRVQgcGFyYWxsZWxfdHVwbGVfY29zdDsKK1JFU0VUIG1pbl9wYXJhbGxlbF90 YWJsZV9zY2FuX3NpemU7CitSRVNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOwor LS0gdGhlIHJlc3VsdCBvZiB2aWV3IHNob3VsZCBiZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUgdG9v CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworQ1JFQVRFIFZJ RVcgdmFyMXZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEsIDApIEFTIHJlc3VsdDsKK1NFTEVD VCAqIEZST00gdmFyMXZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgMTAKKygxIHJvdykK KworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9uOworU0VMRUNUICogRlJPTSB2YXIxdmll dzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAxMAorKDEgcm93KQorCitTRVQgZGVidWdfcGFy YWxsZWxfcXVlcnkgVE8gb2ZmOworRFJPUCBWSUVXIHZhcjF2aWV3OworRFJPUCBWQVJJQUJMRSB2 YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcmlkIGludDsKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3Qo aWQgaW50LCB2IGludCk7CitMRVQgdmFyaWQgPSAxOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFZB TFVFUyh2YXJpZCwgMTAwKTsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworIGlkIHwgIHYgIAor LS0tLSstLS0tLQorICAxIHwgMTAwCisoMSByb3cpCisKK1VQREFURSBzdmFyX3Rlc3QgU0VUIHYg PSAyMDAgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworIGlkIHwg IHYgIAorLS0tLSstLS0tLQorICAxIHwgMjAwCisoMSByb3cpCisKK0RFTEVURSBGUk9NIHN2YXJf dGVzdCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCB2 IAorLS0tLSstLS0KKygwIHJvd3MpCisKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworRFJPUCBWQVJJ QUJMRSB2YXJpZDsKKy0tIHZpc2liaWxpdHkgY2hlY2sKKy0tIHZhcmlhYmxlcyBzaG91bGQgYmUg c2hhZG93ZWQgYWx3YXlzCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworU0VMRUNUIHZh cjEucmVsbmFtZSBGUk9NIHBnX2NsYXNzIHZhcjEgV0hFUkUgdmFyMS5yZWxuYW1lID0gJ3BnX2Ns YXNzJzsKKyByZWxuYW1lICAKKy0tLS0tLS0tLS0KKyBwZ19jbGFzcworKDEgcm93KQorCitEUk9Q IFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVEFCTEUgeHh0YWIoYXZhciBpbnQpOworSU5TRVJUIElO VE8geHh0YWIgVkFMVUVTKDMzMyk7CitDUkVBVEUgVFlQRSB4eHR5cGUgQVMgKGF2YXIgaW50KTsK K0NSRUFURSBWQVJJQUJMRSB4eHRhYiBBUyB4eHR5cGU7CitJTlNFUlQgSU5UTyB4eHRhYiBWQUxV RVMoMTApOworLS0gaXQgaXMgYW1iaWd1b3VzLCBidXQgY29sdW1ucyBhcmUgcHJlZmVycmVkCitT RUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAx MAorKDIgcm93cykKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOwor IGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworQ1JFQVRFIFZBUklBQkxF IHB1YmxpYy5hdmFyIEFTIGludDsKKy0tIHNob3VsZCBiZSBvaywgc2VlIHRoZSB0YWJsZQorU0VM RUNUIGF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJv d3MpCisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy5hdmFyIEZST00geHh0YWI7Cisg YXZhciAKKy0tLS0tLQorICAgICAKKyAgICAgCisoMiByb3dzKQorCitEUk9QIFZBUklBQkxFIHh4 dGFiOworU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMz MworICAgMTAKKygyIHJvd3MpCisKK0RST1AgVkFSSUFCTEUgcHVibGljLmF2YXI7CitEUk9QIFRZ UEUgeHh0eXBlOworRFJPUCBUQUJMRSB4eHRhYjsKKy0tIFRoZSB2YXJpYWJsZSBjYW4gYmUgc2hh ZG93ZWQgYnkgdGFibGUgb3IgYnkgYWxpYXMKK0NSRUFURSBUWVBFIHB1YmxpYy5zdmFyX3R5cGUg QVMgKGEgaW50LCBiIGludCwgYyBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5zdmFyIEFT IHB1YmxpYy5zdmFyX3R5cGU7CitDUkVBVEUgVEFCTEUgcHVibGljLnN2YXIoYSBpbnQsIGIgaW50 KTsKK0lOU0VSVCBJTlRPIHB1YmxpYy5zdmFyIFZBTFVFUygxMCwgMjApOworTEVUIHB1YmxpYy5z dmFyID0gKDEwMCwgMjAwLCAzMDApOworLS0gc2hvdWxkIGJlIG9rCistLSBzaG93IHRhYmxlCitT RUxFQ1QgKiBGUk9NIHB1YmxpYy5zdmFyOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIw CisoMSByb3cpCisKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICAKKy0tLS0K KyAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci4qIEZST00gcHVibGljLnN2YXI7CisgYSAgfCBi ICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKworLS0gc2hvdyB2YXJpYWJsZQorU0VM RUNUIHB1YmxpYy5zdmFyOworICAgICBzdmFyICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyAoMTAw LDIwMCwzMDApCisoMSByb3cpCisKK1NFTEVDVCBwdWJsaWMuc3Zhci5jOworICBjICAKKy0tLS0t CisgMzAwCisoMSByb3cpCisKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisgIGEgIHwgIGIgIHwg IGMgIAorLS0tLS0rLS0tLS0rLS0tLS0KKyAxMDAgfCAyMDAgfCAzMDAKKygxIHJvdykKKworLS0g dGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFy LmMgRlJPTSBwdWJsaWMuc3ZhcjsKK0VSUk9SOiAgY29sdW1uIHN2YXIuYyBkb2VzIG5vdCBleGlz dAorTElORSAxOiBTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworICAgICAg ICAgICAgICAgXgorLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2YXIu YyBGUk9NIHB1YmxpYy5zdmFyIHg7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VM RUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisK K1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICB8IGIgIAorLS0tLSstLS0tCisg MTAgfCAyMAorKDEgcm93KQorCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7 CisgICAgIHN2YXIgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorICgxMDAsMjAwLDMwMCkKKygxIHJv dykKKworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykK KworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKyAgYSAgfCAgYiAgfCAgYyAgCistLS0tLSstLS0t LSstLS0tLQorIDEwMCB8IDIwMCB8IDMwMAorKDEgcm93KQorCistLSB0aGUgdmFyaWFibGUgaXMg c2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5z dmFyOworRVJST1I6ICBjb2x1bW4gc3Zhci5jIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVD VCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CisgICAgICAgICAgICAgICBeCistLSBj YW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2 YXIgeDsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHB1Ymxp Yy5zdmFyOworRFJPUCBUQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90 eXBlOworQ1JFQVRFIFRZUEUgYWIgQVMgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0NSRUFURSBW QVJJQUJMRSB2X2FiIEFTIGFiOworQ1JFQVRFIFRBQkxFIHZfYWIgKGEgaW50ZWdlciwgYiBpbnRl Z2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFMVUVTKDEwLDIwKTsKKy0tIHdlIHNob3VsZCBzZWUg dGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2X2FiOworIGEgIAorLS0tLQorIDEwCisoMSByb3cp CisKK0NSRUFURSBTQ0hFTUEgdl9hYjsKK0NSRUFURSBWQVJJQUJMRSB2X2FiLmEgQVMgaW50ZWdl cjsKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2X2FiOworIGEg IAorLS0tLQorIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdl9hYjsKK0RST1AgVEFCTEUg dl9hYjsKK0RST1AgVFlQRSBhYjsKK0NSRUFURSBUWVBFIHRfYW1fdHlwZSBBUyAoYiBpbnQpOwor Q1JFQVRFIFNDSEVNQSB4eHhfYW07CitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworQ1JFQVRF IFZBUklBQkxFIHh4eF9hbSBBUyB0X2FtX3R5cGU7CitMRVQgeHh4X2FtID0gUk9XKDEwKTsKKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIHh4eF9hbTsKKyB4eHhfYW0gCistLS0tLS0tLQorICgxMCkK KygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbS5iIEFTIGludDsKK0xFVCA6IkRCTkFN RSIueHh4X2FtLmIgPSAyMDsKKy0tIHNob3VsZCBiZSBzdGlsbCBvaworU0VMRUNUIHh4eF9hbTsK KyB4eHhfYW0gCistLS0tLS0tLQorICgxMCkKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwsIHRo ZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIHh4eF9hbS5iOworRVJST1I6 ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAieHh4X2FtLmIiIGlzIGFtYmlndW91cworTElO RSAxOiBTRUxFQ1QgeHh4X2FtLmI7CisgICAgICAgICAgICAgICBeCistLSBlbmhhbmNlZCByZWZl cmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy54eHhfYW0uYjsKKyBiICAKKy0tLS0K KyAxMAorKDEgcm93KQorCitTRUxFQ1QgOiJEQk5BTUUiLnh4eF9hbS5iOworIGIgIAorLS0tLQor IDIwCisoMSByb3cpCisKK0NSRUFURSBUQUJMRSB4eHhfYW0oYiAgaW50KTsKK0lOU0VSVCBJTlRP IHh4eF9hbSBWQUxVRVMoMTApOworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHh4eF9h bS5iIEZST00geHh4X2FtOworIGIgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCB4LmIg RlJPTSB4eHhfYW0geDsKKyBiICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitEUk9QIFRBQkxFIHh4 eF9hbTsKK0RST1AgVkFSSUFCTEUgcHVibGljLnh4eF9hbTsKK0RST1AgVkFSSUFCTEUgeHh4X2Ft LmI7CitEUk9QIFNDSEVNQSB4eHhfYW07CitDUkVBVEUgU0NIRU1BIDoiREJOQU1FIjsKK0NSRUFU RSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIiBBUyB0X2FtX3R5cGU7CitD UkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iIEFTIGludDsKK1NFVCBzZWFyY2hf cGF0aCBUTyA6IkRCTkFNRSI7CistLSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgOiJEQk5B TUUiLmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlICJyZWdyZXNzaW9uLmIi IGlzIGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgInJlZ3Jlc3Npb24iLmI7CisgICAgICAgICAg ICAgICBeCistLSBzaG91bGQgYmUgYW1iaWd1b3VzIHRvbworU0VMRUNUIDoiREJOQU1FIi46IkRC TkFNRSIuYjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInJlZ3Jlc3Npb24u cmVncmVzc2lvbi5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNUICJyZWdyZXNzaW9uIi4i cmVncmVzc2lvbiIuYjsKKyAgICAgICAgICAgICAgIF4KK0NSRUFURSBUQUJMRSA6IkRCTkFNRSIo YiBpbnQpOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgOiJEQk5BTUUiLmIgRlJPTSA6IkRCTkFN RSI7CisgYiAKKy0tLQorKDAgcm93cykKKworRFJPUCBUQUJMRSA6IkRCTkFNRSI7CitEUk9QIFZB UklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0RST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoi REJOQU1FIi46IkRCTkFNRSI7CitEUk9QIFNDSEVNQSA6IkRCTkFNRSI7CitSRVNFVCBzZWFyY2hf cGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA0 MmRmYjk1YTAyMi4uZGI1YmExNzZkYjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKQEAgLTU5LDMgKzU5LDYyOCBAQCBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjE7CiBEUk9QIFNDSEVNQSBzdmFydGVzdDsKIAogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI7CisKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf bm9vd25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2 YXIxICQkIExBTkdVQUdFIHNxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZnhf c2QoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBz cWwgU0VDVVJJVFkgREVGSU5FUjsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3Nx bGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAk JCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3Fs Znhfc2QoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5E ICQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJVFkgREVGSU5FUjsKKworTEVUIHZhcjEgPSAxMDsK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VMRUNU IHNxbGZ4X3NkKDIwKTsKK1NFTEVDVCBwbHBnc3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeF9z ZCgyMCk7CisKKy0tIHNob3VsZCBmYWlsCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CisK K1NFTEVDVCB2YXIxOworU0VMRUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBwbHBnc3FsZngoMjApOwor CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBzcWxmeF9zZCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4 X3NkKDIwKTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJM RSB2YXIxIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKKworLS0gc2hvdWxkIGJlIG9rCitTRVQgUk9MRSBU TyByZWdyZXNzX25vb3duZXI7CisKK1NFTEVDVCB2YXIxOworU0VMRUNUIHNxbGZ4KDIwKTsKK1NF TEVDVCBwbHBnc3FsZngoMjApOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJM RSB2YXIxOworRFJPUCBGVU5DVElPTiBzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3Fs ZngoaW50KTsKK0RST1AgRlVOQ1RJT04gc3FsZnhfc2QoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxw Z3NxbGZ4X3NkKGludCk7CisKK0RST1AgUk9MRSByZWdyZXNzX25vb3duZXI7CisKKy0tIHVzZSB2 YXJpYWJsZXMgaW5zaWRlIHZpZXdzCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOwor CistLSB1c2UgdmFyaWFibGVzIGluIHZpZXdzCitDUkVBVEUgVklFVyB0ZXN0X3ZpZXcgQVMgU0VM RUNUIENPQUxFU0NFKHZhcjEgKyB2LCAwKSBBUyByZXN1bHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwyKSBnKHYpOworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CitMRVQgdmFyMSA9IDMuMTQ7CitT RUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKworLS0gc3RhcnQgYSBuZXcgc2Vzc2lvbgorXGMKKwor U0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9N IHRlc3RfdmlldzsKKworLS0gc2hvdWxkIGZhaWwsIGRlcGVuZGVuY3kKK0RST1AgVkFSSUFCTEUg dmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIHZhcjEgQ0FTQ0FERTsKKwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIHRleHQ7CisK Ky0tIHVzZSB2YXJpYWJsZXMgaW4gU1FMIGZ1bmN0aW9ucworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gc3FsZngxKHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjEg fHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHNxbGZ4MiggdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMiB8 fCAnLCAnIHx8ICQxICQkIExBTkdVQUdFIHNxbDsKKworTEVUIHZhcjEgPSAnc3RyMSc7CitMRVQg dmFyMiA9ICdzdHIyJzsKKworU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworCistLSBp bmxpbmluZyBpcyBibG9ja2VkCitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFNFTEVDVCBz cWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKworRFJPUCBGVU5DVElPTiBzcWxmeDEodmFyY2hhcik7 CitEUk9QIEZVTkNUSU9OIHNxbGZ4Mih2YXJjaGFyKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVkFSSUFCTEUgdmFyMjsKKworLS0gYWNjZXNzIGZyb20gY2FjaGVkIHBsYW5zIHNob3VsZCB3 b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworCitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lOIFJFVFVS TiB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworc2V0IHBsYW5fY2FjaGVfbW9kZSBU TyBmb3JjZV9nZW5lcmljX3BsYW47CisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCBwbHBnc3Fs ZngoKTsKK0xFVCB2YXIxID0gMy4xNCAqIDI7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworLS0gZGVwZW5kZW5jeSAocGxhbiBpbnZhbGlkYXRpb24pIHNob3Vs ZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworCitMRVQgdmFyMSA9IDMu MTQgKiAzOworU0VMRUNUIHBscGdzcWxmeCgpOworTEVUIHZhcjEgPSAzLjE0ICogNDsKK1NFTEVD VCBwbHBnc3FsZngoKTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBwbHBn c3FsZngoKTsKKworc2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworCistLSB1c2FnZSBM RVQgc3RhdGVtZW50IGluIHBscGdzcWwgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIx IGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIG51bWVyaWNbXTsKKworRE8gJCQKK0JFR0lOCisg IExFVCB2YXIyID0gJ3t9Jzo6aW50W107CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBM RVQgdmFyMSA9IGk7CisgICAgTEVUIHZhcjJbdmFyMV0gPSBpOworICBFTkQgTE9PUDsKKyAgUkFJ U0UgTk9USUNFICdyZXN1bHQgYXJyYXk6ICUnLCB2YXIyOworRU5EOworJCQ7CisKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKworLS0gQ0FMTCBzdGF0ZW1lbnQgaXMg bm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2 YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2IGludDsK KworQ1JFQVRFIFBST0NFRFVSRSBwKGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAn JScsIGFyZzsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisKKy0tIHNob3VsZCBub3QgY3Jhc2gg KGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHlldCkKK0NBTEwgcCh2KTsKKworRE8gJCQgQkVHSU4gQ0FM TCBwKHYpOyBFTkQgJCQ7CisKK0RST1AgUFJPQ0VEVVJFIHAoaW50KTsKK0RST1AgVkFSSUFCTEUg djsKKworLS0gdGVzdCBzZWFyY2ggcGF0aAorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0NSRUFU RSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIG51bWVyaWM7CisKKy0tIHNob3VsZCBmYWlsCitM RVQgdmFyMSA9IHBpKCk7CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgc3Zh cnRlc3QudmFyMSA9IHBpKCk7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKworU0VUIHNlYXJjaF9w YXRoIFRPIHN2YXJ0ZXN0OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gcGkoKSArIDEw OworU0VMRUNUIHZhcjE7CisKK1JFU0VUIHNlYXJjaF9wYXRoOworRFJPUCBTQ0hFTUEgc3ZhcnRl c3QgQ0FTQ0FERTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKKworLS0gdmFyaWFi bGVzIGNhbiBiZSB1cGRhdGVkIHVuZGVyIFJPIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFVCBUUkFO U0FDVElPTiBSRUFEIE9OTFk7CitMRVQgdmFyMSA9ICdoZWxsbyc7CitDT01NSVQ7CisKK1NFTEVD VCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlc3Qgb2YgZG9tYWlucworQ1JF QVRFIERPTUFJTiBpbnRfZG9tYWluIEFTIGludCBOT1QgTlVMTCBDSEVDSyAoVkFMVUUgPiAxMDAp OworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50X2RvbWFpbjsKKworLS0gc2hvdWxkIGZhaWwK K1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTAwMDsKK1NFTEVD VCB2YXIxOworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAxMDsKKworLS0gc2hvdWxkIGZh aWwKK0xFVCB2YXIxID0gTlVMTDsKKworLS0gbm90ZSAtIGRvbWFpbiBkZWZhdWx0cyBhcmUgbm90 IHN1cHBvcnRlZCB5ZXQgKGxpa2UgUExwZ1NRTCkKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJP UCBET01BSU4gaW50X2RvbWFpbjsKKworLS0gdGhlIGV4cHJlc3Npb24gc2hvdWxkIHJlbWFpbiAi dW5rbm93biIKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDRtdWx0aXJhbmdlW107CistLSBz aG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKK0xFVCB2YXIxID0gJ3sie1syLDgpLFsxMSwx NCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworTEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwxMDAp fSc7CitTRUxFQ1QgdmFyMTsKKworLS1JdCBzaG91bGQgd29yayBpbiBwbHBnc3FsIHRvbworRE8g JCQKK0JFR0lOCisgIExFVCB2YXIxID0gTlVMTDsKKyAgTEVUIHZhcjEgPSAneyJ7WzIsOCksWzEx LDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CisgIExFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIs MTAwKX0nOworCisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsKKworRFJPUCBW QVJJQUJMRSB2YXIxOworCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0IENSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludCBDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0xFVCBzdmFydGVzdC52YXIxID0g MTAwOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisKK1NFVCBzZWFyY2hfcGF0aCB0byBwdWJsaWMs IHN2YXJ0ZXN0OworCitTRUxFQ1QgdmFyMTsKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FE RTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIg QVMgaW50W107CisKK0xFVCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9Jzo6aW50W107CisKK0xF VCB2YXIyW3ZhcjFdID0gMDsKKworU0VMRUNUIHZhcjI7CisKK0RST1AgVkFSSUFCTEUgdmFyMSwg dmFyMjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZh cjIgQVMgaW50W107CisKK0xFVCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9Jzo6aW50W107CisK K1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CisKKy0tIHRoZSBMRVQg c3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGluIENURQorQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50OworV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4Owor CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpOworCist LSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMik7CitMRVQgdmFy MSA9IGdlbmVyYXRlX3NlcmllcygxLCAwKTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBj b21wb3NpdGUgdmFyaWFibGVzCitDUkVBVEUgVFlQRSBzdl94eXogQVMgKHggaW50LCB5IGludCwg eiBudW1lcmljKDEwLDIpKTsKKworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHN2X3h5ejsKK0NSRUFU RSBWQVJJQUJMRSB2MiBBUyBzdl94eXo7CisKK0xFVCB2MSA9ICgxLCAyLCAzLjE0KTsKK0xFVCB2 MiA9ICgxMCwgMjAsIDMuMTQgKiAxMCk7CisKKy0tIHNob3VsZCB3b3JrIHRvbyAtIHRoZXJlIGFy ZSBwcmVwYXJlZCBjYXN0cworTEVUIHYxID0gKDEsIDIsIDMpOworCitTRUxFQ1QgdjE7CitTRUxF Q1QgdjI7CitTRUxFQ1QgKHYxKS4qOworU0VMRUNUICh2MikuKjsKKworU0VMRUNUIHYxLnggKyB2 MS56OworU0VMRUNUIHYyLnggKyB2Mi56OworCistLSBhY2Nlc3MgdG8gY29tcG9zaXRlIGZpZWxk cyBzaG91bGQgYmUgc2FmZSB0b28KK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsK KworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworCistLSBzaG91bGQgZmFpbAor U0VMRUNUIHYyLng7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgdjE7 CitEUk9QIFZBUklBQkxFIHYyOworCitEUk9QIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOwor CitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVtZXJpYywgYyB0ZXh0KTsKKworQ1JFQVRF IFZBUklBQkxFIHYxIEFTIHQxOworTEVUIHYxID0gKDEsIHBpKCksICdoZWxsbycpOworU0VMRUNU IHYxOworTEVUIHYxLmIgPSAxMC4yMjIyOworU0VMRUNUIHYxOworCistLSBzaG91bGQgZmFpbCwg YXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54ID0gMTA7CisKKy0tIHNob3VsZCBmYWls LCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkKK0xFVCB2MSA9IChOVUxMOjp0MSkuKjsK KworLS0gYWxsb3cgRFJPUCBvciBBREQgQVRUUklCVVRFIG9uIGNvbXBvc2l0ZSB0eXBlcworLS0g c2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGM7CitTRUxFQ1QgdjE7 CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50Owor U0VMRUNUIHYxOworCitMRVQgdjEgPSAoMTAsIDEwLjMsIDIwKTsKK1NFTEVDVCB2MTsKKworLS0g c2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGI7CitTRUxFQ1QgdjE7 CisKKy0tIHNob3VsZCBmYWlsLCBkaXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdlCitBTFRFUiBUWVBF IHQxIEFMVEVSIEFUVFJJQlVURSBjIFRZUEUgaW50OworCitEUk9QIFZBUklBQkxFIHYxOworRFJP UCBUWVBFIHQxOworCistLSB0aGUgdGFibGUgdHlwZSBjYW4gYmUgdXNlZCBhcyBjb21wb3NpdGUg dHlwZSB0b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQsIGIgbnVtZXJpYywgYyBkYXRl KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2YXJfdGVzdDsKKworTEVUIHZhcjEgPSAoMTAs IHBpKCksICcyMDIzLTA1LTI2Jyk7CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwgZHVl IGRlcGVuZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJfdGVzdCBBTFRFUiBDT0xVTU4gYSBUWVBFIHRl eHQ7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKKy0tIGFycmF5cyBhcmUgc3VwcG9y dGVkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljW107CitMRVQgdmFyMSA9IEFSUkFZ WzEuMSwyLjFdOworTEVUIHZhcjFbMV0gPSAxMC4xOworU0VMRUNUIHZhcjE7CisKKy0tIExFVCB0 YXJnZXQgZG9lc24ndCBhbGxvdyBzcmYsIHNob3VsZCBmYWlsCitMRVQgdmFyMVtnZW5lcmF0ZV9z ZXJpZXMoMSwzKV0gPSAxMDA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gYXJyYXlzIGlu c2lkZSBjb21wb3NpdGUKK0NSRUFURSBUWVBFIHQxIEFTIChhIG51bWVyaWMsIGIgbnVtZXJpY1td KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOworTEVUIHZhcjEgPSAoMTAuMSwgQVJSQVlb MC4wLCAwLjBdKTsKK0xFVCB2YXIxLmEgPSAxMC4yOworU0VMRUNUIHZhcjE7CitMRVQgdmFyMS5i WzFdID0gMTAuMzsKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZ UEUgdDE7CisKKy0tIEVuY291cmFnZSB1c2Ugb2YgcGFyYWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxl bF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5f cGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19w ZXJfZ2F0aGVyID0gMjsKKworLS0gdGVzdCBvbiBxdWVyeSB3aXRoIHdvcmtlcnMKK0NSRUFURSBU QUJMRSBzdmFyX3Rlc3QoYSBpbnQpOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFNFTEVDVCAqIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCk7CitBTkFMWVpFIHN2YXJfdGVzdDsKK0NSRUFURSBW QVJJQUJMRSB6ZXJvIGludDsKK0xFVCB6ZXJvID0gMDsKKworLS0gcmVzdWx0IHNob3VsZCBiZSAx MDAKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKKwor LS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgeWV0CitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsK KworTEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0KTsKKworLS0gcmVz dWx0IHNob3VsZCBiZSAxMDAwCitTRUxFQ1QgemVybzsKKworRFJPUCBWQVJJQUJMRSB6ZXJvOwor RFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK1JFU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNF VCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6 ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CisKKy0tIHRoZSByZXN1 bHQgb2YgdmlldyBzaG91bGQgYmUgc2FtZSBpbiBwYXJhbGxlbCBtb2RlIHRvbworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxMDsKKworQ1JFQVRFIFZJRVcgdmFyMXZp ZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEsIDApIEFTIHJlc3VsdDsKKworU0VMRUNUICogRlJP TSB2YXIxdmlldzsKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9uOworCitTRUxFQ1Qg KiBGUk9NIHZhcjF2aWV3OworCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb2ZmOworCitE Uk9QIFZJRVcgdmFyMXZpZXc7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBWQVJJQUJM RSB2YXJpZCBpbnQ7CitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGlkIGludCwgdiBpbnQpOworCitM RVQgdmFyaWQgPSAxOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFZBTFVFUyh2YXJpZCwgMTAwKTsK K1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworVVBEQVRFIHN2YXJfdGVzdCBTRVQgdiA9IDIwMCBX SEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CitERUxFVEUgRlJPTSBz dmFyX3Rlc3QgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworCitE Uk9QIFRBQkxFIHN2YXJfdGVzdDsKK0RST1AgVkFSSUFCTEUgdmFyaWQ7CisKKworLS0gdmlzaWJp bGl0eSBjaGVjaworLS0gdmFyaWFibGVzIHNob3VsZCBiZSBzaGFkb3dlZCBhbHdheXMKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CitTRUxFQ1QgdmFyMS5yZWxuYW1lIEZST00gcGdfY2xh c3MgdmFyMSBXSEVSRSB2YXIxLnJlbG5hbWUgPSAncGdfY2xhc3MnOworCitEUk9QIFZBUklBQkxF IHZhcjE7CisKK0NSRUFURSBUQUJMRSB4eHRhYihhdmFyIGludCk7CisKK0lOU0VSVCBJTlRPIHh4 dGFiIFZBTFVFUygzMzMpOworCitDUkVBVEUgVFlQRSB4eHR5cGUgQVMgKGF2YXIgaW50KTsKKwor Q1JFQVRFIFZBUklBQkxFIHh4dGFiIEFTIHh4dHlwZTsKKworSU5TRVJUIElOVE8geHh0YWIgVkFM VUVTKDEwKTsKKworLS0gaXQgaXMgYW1iaWd1b3VzLCBidXQgY29sdW1ucyBhcmUgcHJlZmVycmVk CitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCBhdmFyIEZST00geHh0YWI7CisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuYXZhciBBUyBpbnQ7 CisKKy0tIHNob3VsZCBiZSBvaywgc2VlIHRoZSB0YWJsZQorU0VMRUNUIGF2YXIgRlJPTSB4eHRh YjsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLmF2YXIgRlJPTSB4eHRhYjsKKwor RFJPUCBWQVJJQUJMRSB4eHRhYjsKKworU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKwor RFJPUCBWQVJJQUJMRSBwdWJsaWMuYXZhcjsKKworRFJPUCBUWVBFIHh4dHlwZTsKKworRFJPUCBU QUJMRSB4eHRhYjsKKworLS0gVGhlIHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dlZCBieSB0YWJsZSBv ciBieSBhbGlhcworQ1JFQVRFIFRZUEUgcHVibGljLnN2YXJfdHlwZSBBUyAoYSBpbnQsIGIgaW50 LCBjIGludCk7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnN2YXIgQVMgcHVibGljLnN2YXJfdHlw ZTsKKworQ1JFQVRFIFRBQkxFIHB1YmxpYy5zdmFyKGEgaW50LCBiIGludCk7CisKK0lOU0VSVCBJ TlRPIHB1YmxpYy5zdmFyIFZBTFVFUygxMCwgMjApOworCitMRVQgcHVibGljLnN2YXIgPSAoMTAw LCAyMDAsIDMwMCk7CisKKy0tIHNob3VsZCBiZSBvaworLS0gc2hvdyB0YWJsZQorU0VMRUNUICog RlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVD VCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1 YmxpYy5zdmFyOworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4q OworCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1QgcHVi bGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMK K1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKworU0VMRUNUIHN2YXIu YSBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworCist LSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CitTRUxFQ1QgcHVibGljLnN2YXIu YzsKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dl ZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CisK Ky0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJs aWMuc3ZhciB4OworCitEUk9QIFZBUklBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUQUJMRSBwdWJs aWMuc3ZhcjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90eXBlOworCitDUkVBVEUgVFlQRSBhYiBB UyAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworCitDUkVBVEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsK KworQ1JFQVRFIFRBQkxFIHZfYWIgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0lOU0VSVCBJTlRP IHZfYWIgVkFMVUVTKDEwLDIwKTsKKworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHZf YWIuYSBGUk9NIHZfYWI7CisKK0NSRUFURSBTQ0hFTUEgdl9hYjsKKworQ1JFQVRFIFZBUklBQkxF IHZfYWIuYSBBUyBpbnRlZ2VyOworCistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9h Yi5hIEZST00gdl9hYjsKKworRFJPUCBWQVJJQUJMRSB2X2FiOworRFJPUCBUQUJMRSB2X2FiOwor RFJPUCBUWVBFIGFiOworCitDUkVBVEUgVFlQRSB0X2FtX3R5cGUgQVMgKGIgaW50KTsKK0NSRUFU RSBTQ0hFTUEgeHh4X2FtOworCitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworCitDUkVBVEUg VkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1fdHlwZTsKK0xFVCB4eHhfYW0gPSBST1coMTApOworCist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhfYW07CisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0u YiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUiLnh4eF9hbS5iID0gMjA7CisKKy0tIHNob3VsZCBiZSBz dGlsbCBvaworU0VMRUNUIHh4eF9hbTsKKworLS0gc2hvdWxkIGZhaWwsIHRoZSByZWZlcmVuY2Ug c2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIHh4eF9hbS5iOworCistLSBlbmhhbmNlZCByZWZl cmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy54eHhfYW0uYjsKK1NFTEVDVCA6IkRC TkFNRSIueHh4X2FtLmI7CisKK0NSRUFURSBUQUJMRSB4eHhfYW0oYiAgaW50KTsKK0lOU0VSVCBJ TlRPIHh4eF9hbSBWQUxVRVMoMTApOworCistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qg eHh4X2FtLmIgRlJPTSB4eHhfYW07CitTRUxFQ1QgeC5iIEZST00geHh4X2FtIHg7CisKK0RST1Ag VEFCTEUgeHh4X2FtOworRFJPUCBWQVJJQUJMRSBwdWJsaWMueHh4X2FtOworRFJPUCBWQVJJQUJM RSB4eHhfYW0uYjsKK0RST1AgU0NIRU1BIHh4eF9hbTsKKworQ1JFQVRFIFNDSEVNQSA6IkRCTkFN RSI7CisKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIiBBUyB0 X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iIEFTIGludDsK KworU0VUIHNlYXJjaF9wYXRoIFRPIDoiREJOQU1FIjsKKworLS0gc2hvdWxkIGJlIGFtYmlndW91 cworU0VMRUNUIDoiREJOQU1FIi5iOworCistLSBzaG91bGQgYmUgYW1iaWd1b3VzIHRvbworU0VM RUNUIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKKworQ1JFQVRFIFRBQkxFIDoiREJOQU1FIihiIGlu dCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIDoiREJOQU1FIi5iIEZST00gOiJEQk5BTUUi OworCitEUk9QIFRBQkxFIDoiREJOQU1FIjsKKworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJE Qk5BTUUiLmI7CitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOwor RFJPUCBTQ0hFTUEgOiJEQk5BTUUiOworCitSRVNFVCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBh L3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKaW5kZXggY2UyOTlhNGJlMTMuLjVlMmU1YmNkODA2IDEwMDY0NAotLS0gYS9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdApAQCAtMTQ5NCw2ICsxNDk0LDcgQEAgTGFyZ2VPYmplY3REZXNjCiBMYXRj aAogTGF1bmNoZXJMYXN0U3RhcnRUaW1lc0VudHJ5CiBMZXJwRnVuYworTGV0U3RtdAogTGV4RGVz Y3IKIExleGVtZUVudHJ5CiBMZXhlbWVIYXNoS2V5CkBAIC0yNTkyLDYgKzI1OTMsNyBAQCBTZXJp YWxpemVkVHJhbnNhY3Rpb25TdGF0ZQogU2Vzc2lvbgogU2Vzc2lvbkJhY2t1cFN0YXRlCiBTZXNz aW9uRW5kVHlwZQorU2Vzc2lvblZhcmlhYmxlVmFsdWUKIFNldENvbnN0cmFpbnRTdGF0ZQogU2V0 Q29uc3RyYWludFN0YXRlRGF0YQogU2V0Q29uc3RyYWludFRyaWdnZXJEYXRhCkBAIC0yNzg0LDYg KzI3ODYsOSBAQCBTdXBwb3J0UmVxdWVzdFJvd3MKIFN1cHBvcnRSZXF1ZXN0U2VsZWN0aXZpdHkK IFN1cHBvcnRSZXF1ZXN0U2ltcGxpZnkKIFN1cHBvcnRSZXF1ZXN0V0Z1bmNNb25vdG9uaWMKK1NW YXJpYWJsZQorU1ZhcmlhYmxlRGF0YQorU1ZhcmlhYmxlU3RhdGUKIFN5bgogU3luY09wcwogU3lu Y1JlcENvbmZpZ0RhdGEKLS0gCjIuNDUuMgoK --0000000000000e7560061ea66068 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240801-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20240801-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lzbtkf6d20 RnJvbSAxOTBjY2UyNmI4M2JiNGNmYThhYmMzNzk0ZGU0MDVkY2I2ODIyYjk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIxXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIwICsrKysrKysrKwogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDMxICsrKwogZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbCAgICAgICAg ICAgICAgIHwgIDI0ICsrCiBkb2Mvc3JjL3NnbWwvZnVuYy5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMTMgKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAg ICAgIHwgIDE1ICsrCiBkb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAg ICAgfCAgIDMgKwogLi4uL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sICAg IHwgIDI2ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAg fCAxNzggKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAg ICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAg ICAgICAgIHwgICA3ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAg ICAgICAgfCAxNTEgKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5z Z21sICAgICAgICAgICB8IDExNyArKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21s ICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwg ICAgICAgICAgICAgICAgICB8ICAgNyArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAg ICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAg ICAgICAgICAgICB8ICA3NyArKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5j ICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkICAg ICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAg ICAgICAgICAgIHwgMTMzICsrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRy ZXNzLmMgICAgICAgICAgIHwgMTIxICsrKysrKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19z aGRlcGVuZC5jICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYyAgICAgICAgICAgICB8IDI1NSArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2FsdGVyLmMgICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvZXZlbnRfdHJpZ2dlci5jICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3NlY2xhYmVsLmMgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgNDEgKysrCiBzcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAxMDUgKysrKysrKy0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAxMiArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMTYgKysKIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAxMTMgKysrKysrKysKIHNyYy9iaW4vcGdfZHVt cC9jb21tb24uYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BnX2R1bXAv ZHVtcHV0aWxzLmMgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19i YWNrdXBfYXJjaGl2ZXIuYyAgICAgICAgICB8ICAgOSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jICAgICAgICAgICAgICAgICAgICAgfCAxOTUgKysrKysrKysrKysrKy0KIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxOSArKwogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICA2NCArKysrKwogc3JjL2Jpbi9wc3Fs L2NvbW1hbmQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9k ZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKysrCiBzcmMvYmluL3Bz cWwvZGVzY3JpYmUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3Fs L2hlbHAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICA0MiArKy0KIHNyYy9pbmNsdWRlL2Nh dGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1ZGUvY2F0 YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFs b2cvbmFtZXNwYWNlLmggICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2RlZmF1bHRfYWNsLmggICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdf dmFyaWFibGUuaCAgICAgICAgICAgICB8ICA4MSArKysrKysKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNiArKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wuaCAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hl LmggICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVw ZW5kZW5jeS5vdXQgICAgICB8ICAxNyArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRq b2lucy5vdXQgICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5v dXQgICAgICAgICAgICB8ICA1MCArKysrCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQgICAgfCAgNTcgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5 LnNxbCAgICAgICAgICAgfCAgMTQgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgICAg ICAgICAgICAgICAgIHwgIDIxICsrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwgICAgfCAgNjEgKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 ICAgICAgICAgICAgICB8ICAgNCArCiA2NiBmaWxlcyBjaGFuZ2VkLCAyMzg3IGluc2VydGlvbnMo KyksIDI2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBiNjU0ZmFl MWIyZi4uZGUxMjJlNTQzZjcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0zNjksNiArMzY5LDExIEBACiAg ICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy11c2VyLW1hcHBpbmciPjxzdHJ1 Y3RuYW1lPnBnX3VzZXJfbWFwcGluZzwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KICAgICAg IDxlbnRyeT5tYXBwaW5ncyBvZiB1c2VycyB0byBmb3JlaWduIHNlcnZlcnM8L2VudHJ5PgogICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFs b2ctcGctdmFyaWFibGUiPjxzdHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPjwvbGlu az48L2VudHJ5PgorICAgICAgPGVudHJ5PnNlc3Npb24gdmFyaWFibGVzPC9lbnRyeT4KKyAgICAg PC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpAQCAtOTcyNiw0 ICs5NzMxLDExOSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNv dW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICA8L3RhYmxlPgogIDwvc2Vj dDE+CiAKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctdmFyaWFibGUiPgorICA8dGl0bGU+PHN0cnVj dG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpv bmU9ImNhdGFsb2ctcGctdmFyaWFibGUiPgorICAgPHByaW1hcnk+cGdfdmFyaWFibGU8L3ByaW1h cnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5h bWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+IHN0b3JlcyBpbmZvcm1hdGlvbiBhYm91dAorICAg c2Vzc2lvbiB2YXJpYWJsZXMuCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0 cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRn cm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBE ZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhl YWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD52YXJ0eXBlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAg ICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdHlwZSI+PHN0cnVjdG5h bWU+cGdfdHlwZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZp ZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBPSUQgb2YgdGhl IHZhcmlhYmxlJ3MgZGF0YSB0eXBlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5h bWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZQorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lc3BhY2U8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1uYW1lc3Bh Y2UiPjxzdHJ1Y3RuYW1lPnBnX25hbWVzcGFjZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3Rm aWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFRoZSBPSUQgb2YgdGhlIG5hbWVzcGFjZSB0aGF0IGNvbnRhaW5zIHRoaXMgdmFyaWFibGUK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyb3duZXI8L3N0cnVjdGZpZWxkPiA8dHlw ZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBnX2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1 Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIE93bmVyIG9mIHRoZSB2YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0Zmll bGQ+IHJlY29yZHMgdHlwZS1zcGVjaWZpYyBkYXRhCisgICAgICAgc3VwcGxpZWQgYXQgdmFyaWFi bGUgY3JlYXRpb24gdGltZSAoZm9yIGV4YW1wbGUsIHRoZSBtYXhpbXVtCisgICAgICAgbGVuZ3Ro IG9mIGEgPHR5cGU+dmFyY2hhcjwvdHlwZT4gY29sdW1uKS4gIEl0IGlzIHBhc3NlZCB0bworICAg ICAgIHR5cGUtc3BlY2lmaWMgaW5wdXQgZnVuY3Rpb25zIGFuZCBsZW5ndGggY29lcmNpb24gZnVu Y3Rpb25zLgorICAgICAgIFRoZSB2YWx1ZSB3aWxsIGdlbmVyYWxseSBiZSAtMSBmb3IgdHlwZXMg dGhhdCBkbyBub3QgbmVlZCA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4uCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxhdGlvbjwvc3RydWN0ZmllbGQ+IDx0 eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWNvbGxhdGlvbiI+PHN0cnVjdG5hbWU+cGdfY29sbGF0aW9uPC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgVGhlIGRlZmluZWQgY29sbGF0aW9uIG9mIHRoZSB2YXJpYWJsZSwgb3Ig emVybyBpZiB0aGUgdmFyaWFibGUgaXMKKyAgICAgICBub3Qgb2YgYSBjb2xsYXRhYmxlIGRhdGEg dHlwZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyYWNsPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+YWNsaXRlbVtdPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgQWNjZXNzIHByaXZpbGVnZXM7IHNlZQorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1ncmFu dCIvPiBhbmQKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtcmV2b2tlIi8+CisgICAgICAgZm9y IGRldGFpbHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwvdGJv ZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgogPC9jaGFwdGVyPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmlu ZGV4IDYyNmQzNTUxNGNjLi43NTMxZGUxN2ZkMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Rk bC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTI5OCw2ICs1Mjk4LDM3IEBA IEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAm Z3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgIDwvcGFyYT4KICA8L3NlY3QxPgogCisgIDxzZWN0 MSBpZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgIDx0aXRsZT5TZXNzaW9uIFZhcmlhYmxl czwvdGl0bGU+CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4K KyAgICA8cHJpbWFyeT5TZXNzaW9uIHZhcmlhYmxlczwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJt PgorCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1h cnk+CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2YXJpYWJsZXMg YXJlIGRhdGFiYXNlIG9iamVjdHMgdGhhdCBjYW4gaG9sZCBhIHZhbHVlLgorICAgIFNlc3Npb24g dmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVp ciBhY2Nlc3MKKyAgICBpcyBjb250cm9sbGVkIHZpYSA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4g YW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4KKyAgICBjb21tYW5kcy4gIEEgc2Vzc2lvbiB2 YXJpYWJsZSBjYW4gYmUgY3JlYXRlZCBieSB0aGUgPGNvbW1hbmQ+Q1JFQVRFCisgICAgVkFSSUFC TEU8L2NvbW1hbmQ+IGNvbW1hbmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEluc2lk ZSBhIHF1ZXJ5IG9yIGFuIGV4cHJlc3Npb24sIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUKKyAg ICA8cXVvdGU+c2hhZG93ZWQ8L3F1b3RlPiBieSBhIGNvbHVtbiB3aXRoIHRoZSBzYW1lIG5hbWUu ICBTaW1pbGFybHksIHRoZQorICAgIG5hbWUgb2YgYSBmdW5jdGlvbiBvciBwcm9jZWR1cmUgYXJn dW1lbnQgb3IgYSBQTC9wZ1NRTCB2YXJpYWJsZSAoc2VlCisgICAgPHhyZWYgbGlua2VuZD0icGxw Z3NxbC1kZWNsYXJhdGlvbnMiLz4pIGNhbiBzaGFkb3cgYSBzZXNzaW9uIHZhcmlhYmxlCisgICAg aW4gdGhlIHJvdXRpbmUncyBib2R5LiAgU3VjaCBjb2xsaXNpb25zIG9mIGlkZW50aWZpZXJzIGNh biBiZSByZXNvbHZlZAorICAgIGJ5IHVzaW5nIHF1YWxpZmllZCBpZGVudGlmaWVyczogU2Vzc2lv biB2YXJpYWJsZXMgY2FuIGJlIHF1YWxpZmllZCB3aXRoCisgICAgdGhlIHNjaGVtYSBuYW1lLCBj b2x1bW5zIGNhbiB1c2UgdGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVzZQor ICAgIGJsb2NrIGxhYmVscywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJvdXRp bmUgbmFtZS4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90aGVy cyI+CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFzZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9ldmVudC10 cmlnZ2VyLnNnbWwKaW5kZXggOGUwMDljY2EwNTAuLjE1YjJhZjk5ZGNhIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9ldmVudC10 cmlnZ2VyLnNnbWwKQEAgLTQyNCw2ICs0MjQsMTQgQEAKICAgICAgICAgPGVudHJ5IGFsaWduPSJj ZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5IGFsaWdu PSJsZWZ0Ij48L2VudHJ5PgogICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+CisgICAgICAgIDxl bnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+QUxURVIgVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgorICAg ICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxp dGVyYWw+QUxURVIgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249 ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpAQCAtNzEyLDYgKzcyMCwxNCBA QAogICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2Vu dHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CiAgICAgICAgPC9yb3c+ CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5DUkVB VEUgVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50 ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJj ZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWdu PSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFs aWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5 IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgorICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAg ICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+Q1JFQVRFIFZJRVc8L2xpdGVyYWw+PC9l bnRyeT4KICAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+ PC9lbnRyeT4KQEAgLTEwMDAsNiArMTAxNiwxNCBAQAogICAgICAgICA8ZW50cnkgYWxpZ249ImNl bnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249 ImxlZnQiPjwvZW50cnk+CiAgICAgICAgPC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVu dHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5EUk9QIFZBUklBQkxFPC9saXRlcmFsPjwvZW50cnk+ CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFs PjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD4tPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PC9lbnRyeT4KKyAgICAg ICA8L3Jvdz4KICAgICAgICA8cm93PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjxsaXRl cmFsPkRST1AgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImNl bnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKaW5kZXggYjM5Zjk3ZGM4ZGUu LmMzYzRmYmIzZDliIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9mdW5jLnNnbWwKQEAgLTI1NjQ3LDYgKzI1NjQ3LDE5IEBAIFNFTEVDVCByZWxu YW1lIEZST00gcGdfY2xhc3MgV0hFUkUgcGdfdGFibGVfaXNfdmlzaWJsZShvaWQpOwogICAgICAg ICBJcyB0eXBlIChvciBkb21haW4pIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CiAgICAgICAgPC9w YXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkg cm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAg ICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+cGdfdmFyaWFibGVfaXNfdmlzaWJs ZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5wZ192 YXJpYWJsZV9pc192aXNpYmxlPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnZhcmlhYmxlPC9wYXJh bWV0ZXI+IDx0eXBlPm9pZDwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFsdWU+Ym9vbGVhbjwv cmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBJcyBz ZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CisgICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4KICAgICA8L3Rncm91cD4KICAgIDwv dGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMv c2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4IDQwNWZlNmRjOGI5Li5kNWY0YmNjNmUwOCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwKQEAgLTE2NTQsNiArMTY1NCwyMSBAQAogICAgPC9nbG9zc2RlZj4KICAgPC9nbG9z c2VudHJ5PgogCisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1zZXNzaW9uLXZhcmlhYmxlIj4K KyAgIDxnbG9zc3Rlcm0+U2Vzc2lvbiB2YXJpYWJsZTwvZ2xvc3N0ZXJtPgorICAgPGdsb3NzZGVm PgorICAgIDxwYXJhPgorICAgICBBIHBlcnNpc3RlbnQgZGF0YWJhc2Ugb2JqZWN0IHRoYXQgaG9s ZHMgYSB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMKKyAgICAgdmFsdWUgaXMgcHJpdmF0 ZSB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4K KyAgICAgUmVhZCBvciB3cml0ZSBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaXMgY29udHJv bGxlZCBieSBwcml2aWxlZ2VzLAorICAgICBzaW1pbGFyIHRvIG90aGVyIGRhdGFiYXNlIG9iamVj dHMuCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwg c2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPi4KKyAgICA8L3BhcmE+ CisgICA8L2dsb3NzZGVmPgorICA8L2dsb3NzZW50cnk+CisKICAgPGdsb3NzZW50cnkgaWQ9Imds b3NzYXJ5LXNoYXJlZC1tZW1vcnkiPgogICAgPGdsb3NzdGVybT5TaGFyZWQgbWVtb3J5PC9nbG9z c3Rlcm0+CiAgICA8Z2xvc3NkZWY+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggZjViZTYzODg2 N2EuLjJmNjdkZTNlMjFiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC00Nyw2ICs0Nyw3IEBA IENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0 b3J5LgogPCFFTlRJVFkgYWx0ZXJUeXBlICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdHlwZS5zZ21s Ij4KIDwhRU5USVRZIGFsdGVyVXNlciAgICAgICAgICBTWVNURU0gImFsdGVyX3VzZXIuc2dtbCI+ CiA8IUVOVElUWSBhbHRlclVzZXJNYXBwaW5nICAgU1lTVEVNICJhbHRlcl91c2VyX21hcHBpbmcu c2dtbCI+Cis8IUVOVElUWSBhbHRlclZhcmlhYmxlICAgICAgU1lTVEVNICJhbHRlcl92YXJpYWJs ZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVmlldyAgICAgICAgICBTWVNURU0gImFsdGVyX3ZpZXcu c2dtbCI+CiA8IUVOVElUWSBhbmFseXplICAgICAgICAgICAgU1lTVEVNICJhbmFseXplLnNnbWwi PgogPCFFTlRJVFkgYmVnaW4gICAgICAgICAgICAgIFNZU1RFTSAiYmVnaW4uc2dtbCI+CkBAIC05 OSw2ICsxMDAsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBp biB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGNyZWF0ZVR5cGUgICAgICAgICBTWVNURU0gImNy ZWF0ZV90eXBlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlciAgICAgICAgIFNZU1RFTSAiY3Jl YXRlX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVVc2VyTWFwcGluZyAgU1lTVEVNICJjcmVh dGVfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlVmFyaWFibGUgICAgIFNZU1RF TSAiY3JlYXRlX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVmlldyAgICAgICAgIFNZ U1RFTSAiY3JlYXRlX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBkZWFsbG9jYXRlICAgICAgICAgU1lT VEVNICJkZWFsbG9jYXRlLnNnbWwiPgogPCFFTlRJVFkgZGVjbGFyZSAgICAgICAgICAgIFNZU1RF TSAiZGVjbGFyZS5zZ21sIj4KQEAgLTE0Nyw2ICsxNDksNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVz YWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGRyb3BU eXBlICAgICAgICAgICBTWVNURU0gImRyb3BfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2Vy ICAgICAgICAgICBTWVNURU0gImRyb3BfdXNlci5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2VyTWFw cGluZyAgICBTWVNURU0gImRyb3BfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgZHJvcFZh cmlhYmxlICAgICAgIFNZU1RFTSAiZHJvcF92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BW aWV3ICAgICAgICAgICBTWVNURU0gImRyb3Bfdmlldy5zZ21sIj4KIDwhRU5USVRZIGVuZCAgICAg ICAgICAgICAgICBTWVNURU0gImVuZC5zZ21sIj4KIDwhRU5USVRZIGV4ZWN1dGUgICAgICAgICAg ICBTWVNURU0gImV4ZWN1dGUuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Fs dGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZh dWx0X3ByaXZpbGVnZXMuc2dtbAppbmRleCA4OWFhY2VjNGZhYi4uMDQxYzc4ZDQzMmYgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbApAQCAtNTEs NiArNTEsMTAgQEAgR1JBTlQgeyB7IFVTQUdFIHwgQ1JFQVRFIH0KICAgICBPTiBTQ0hFTUFTCiAg ICAgVE8geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFt ZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0K IAorR1JBTlQgeyBTRUxFQ1QgfCBVUERBVEUgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9O IFZBUklBQkxFUworICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRIIEdS QU5UIE9QVElPTiBdCisKIFJFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQogICAgIHsgeyBTRUxF Q1QgfCBJTlNFUlQgfCBVUERBVEUgfCBERUxFVEUgfCBUUlVOQ0FURSB8IFJFRkVSRU5DRVMgfCBU UklHR0VSIHwgTUFJTlRBSU4gfQogICAgIFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQpA QCAtODMsNiArODcsMTIgQEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgT04gU0NI RU1BUwogICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQogICAgIFsgQ0FTQ0FE RSB8IFJFU1RSSUNUIF0KKworUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNF TEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZB UklBQkxFUworICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FT Q0FERSB8IFJFU1RSSUNUIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAt MTE3LDE0ICsxMjcsMTQgQEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgIDxwYXJhPgog ICAgQ3VycmVudGx5LAogICAgb25seSB0aGUgcHJpdmlsZWdlcyBmb3Igc2NoZW1hcywgdGFibGVz IChpbmNsdWRpbmcgdmlld3MgYW5kIGZvcmVpZ24KLSAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVu Y3Rpb25zLCBhbmQgdHlwZXMgKGluY2x1ZGluZyBkb21haW5zKSBjYW4gYmUKLSAgIGFsdGVyZWQu ICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVkZSBhZ2dyZWdhdGVzIGFuZCBwcm9j ZWR1cmVzLgotICAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kIDxs aXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBhcmUKLSAgIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21t YW5kLiAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQKLSAgIGdvaW5n IGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkIHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJl cyB0YWtlbgotICAgdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsIG9u bHkgdGhlCi0gICB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQu ICBJdCBpcyBub3QgcG9zc2libGUgdG8gc2V0Ci0gICBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1 bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikKKyAgIHRhYmxlcyksIHNlcXVlbmNl cywgZnVuY3Rpb25zLCB0eXBlcyAoaW5jbHVkaW5nIGRvbWFpbnMpLCBhbmQgc2Vzc2lvbgorICAg dmFyaWFibGVzIGNhbiBiZSBhbHRlcmVkLiAgRm9yIHRoaXMgY29tbWFuZCwgZnVuY3Rpb25zIGlu Y2x1ZGUgYWdncmVnYXRlcworICAgYW5kIHByb2NlZHVyZXMuICBUaGUgd29yZHMgPGxpdGVyYWw+ RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQKKyAgIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBh cmUgZXF1aXZhbGVudCBpbiB0aGlzIGNvbW1hbmQuCisgICAoPGxpdGVyYWw+Uk9VVElORVM8L2xp dGVyYWw+IGlzIHByZWZlcnJlZCBnb2luZyBmb3J3YXJkIGFzIHRoZSBzdGFuZGFyZAorICAgdGVy bSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHRha2VuIHRvZ2V0aGVyLiAgSW4gZWFybGll ciBQb3N0Z3JlU1FMCisgICByZWxlYXNlcywgb25seSB0aGUgd29yZCA8bGl0ZXJhbD5GVU5DVElP TlM8L2xpdGVyYWw+IHdhcyBhbGxvd2VkLiAgSXQgaXMgbm90CisgICBwb3NzaWJsZSB0byBzZXQg ZGVmYXVsdCBwcml2aWxlZ2VzIGZvciBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgc2VwYXJhdGVs eS4pCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dt bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDg3NTcwZTdkOGIKLS0t IC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKQEAg LTAsMCArMSwxNzggQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dt bAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0 ZXJ2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtYWx0ZXJ2YXJpYWJsZSI+CisgIDxw cmltYXJ5PkFMVEVSIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4 dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFy eT5hbHRlcmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkFMVEVSIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVt Pjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8 L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5B TFRFUiBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+CisgICBjaGFuZ2UgdGhlIGRl ZmluaXRpb24gb2YgYSBzZXNzaW9uIHZhcmlhYmxlCisgIDwvcmVmcHVycG9zZT4KKyA8L3JlZm5h bWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitBTFRFUiBWQVJJQUJMRSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRP IHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+ IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KK0FMVEVSIFZB UklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVOQU1FIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFj ZWFibGU+CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFNFVCBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2 PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJh PgorICAgVGhlIDxjb21tYW5kPkFMVEVSIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGNoYW5n ZXMgdGhlIGRlZmluaXRpb24gb2YgYW4KKyAgIGV4aXN0aW5nIHNlc3Npb24gdmFyaWFibGUuIFRo ZXJlIGFyZSBzZXZlcmFsIHN1YmZvcm1zOgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPk9XTkVSPC9saXRlcmFsPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG93bmVy IG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRl cmFsPlJFTkFNRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoaXMgZm9ybSBjaGFuZ2VzIHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxl LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlNFVCBTQ0hFTUE8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gbW92 ZXMgdGhlIHNlc3Npb24gdmFyaWFibGUgaW50byBhbm90aGVyIHNjaGVtYS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlz dD4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgT25seSB0aGUgb3duZXIgb3IgYSBzdXBlcnVz ZXIgaXMgYWxsb3dlZCB0byBhbHRlciBhIHNlc3Npb24gdmFyaWFibGUuCisgICBJbiBvcmRlciB0 byBtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIG9uZSBzY2hlbWEgdG8gYW5vdGhlciwgdGhl IHVzZXIKKyAgIG11c3QgYWxzbyBoYXZlIHRoZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHBy aXZpbGVnZSBvbiB0aGUgbmV3IHNjaGVtYSAob3IKKyAgIGJlIGEgc3VwZXJ1c2VyKS4KKworICAg SW4gb3JkZXIgdG8gbW92ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBvd25lcnNoaXAgZnJvbSBvbmUg cm9sZSB0byBhbm90aGVyLAorICAgdGhlIHVzZXIgbXVzdCBhbHNvIGJlIGEgZGlyZWN0IG9yIGlu ZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3CisgICBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBt dXN0IGhhdmUgdGhlIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlCisgICBvbiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZSdzIHNjaGVtYSAob3IgYmUgYSBzdXBlcnVzZXIpLiBUaGVzZSBy ZXN0cmljdGlvbnMKKyAgIGVuZm9yY2UgdGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24ndCBk byBhbnl0aGluZyB5b3UgY291bGRuJ3QgZG8gYnkKKyAgIGRyb3BwaW5nIGFuZCByZWNyZWF0aW5n IHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICA8dmFy aWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5hbWUgKHBvc3NpYmx5IHNjaGVtYS1x dWFsaWZpZWQpIG9mIHRoZSBleGlzdGluZyBzZXNzaW9uIHZhcmlhYmxlCisgICAgICAgIHRvIGFs dGVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5ldyBuYW1lIGZvciB0aGUgc2Vzc2lv biB2YXJpYWJsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zh cmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAg ICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgdXNlciBuYW1lIG9mIHRo ZSBuZXcgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAg ICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1h PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIFRoZSBuZXcgc2NoZW1hIGZvciB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICA8L3Zh cmlhYmxlbGlzdD4KKyAgIDwvcGFyYT4KKyAgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIHJlbmFtZSBhIHNlc3Np b24gdmFyaWFibGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBmb28gUkVOQU1F IFRPIGJvbzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRv IGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9s aXRlcmFsPiB0bworICAgPGxpdGVyYWw+am9lPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4K K0FMVEVSIFZBUklBQkxFIGJvbyBPV05FUiBUTyBqb2U7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8 L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIHNjaGVtYSBvZiB0aGUgc2Vzc2lv biB2YXJpYWJsZSA8bGl0ZXJhbD5ib288L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5wcml2YXRl PC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFZBUklBQkxFIGJvbyBTRVQgU0NI RU1BIHByaXZhdGU7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJh PgorICAgU2Vzc2lvbiB2YXJpYWJsZXMgYW5kIHRoaXMgY29tbWFuZCBpbiBwYXJ0aWN1bGFyIGFy ZSBhIFBvc3RncmVTUUwgZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MSBpZD0ic3FsLWFsdGVydmFyaWFibGUtc2VlLWFsc28iPgorICA8dGl0bGU+U2VlIEFs c288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlz dD4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY29tbWVudC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKaW5kZXggNWI0 M2M1NmIxMzMuLjIxY2Q4MDgxOGZiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1l bnQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbApAQCAtNjUsNiArNjUs NyBAQCBDT01NRU5UIE9OCiAgIFRSQU5TRk9STSBGT1IgPHJlcGxhY2VhYmxlPnR5cGVfbmFtZTwv cmVwbGFjZWFibGU+IExBTkdVQUdFIDxyZXBsYWNlYWJsZT5sYW5nX25hbWU8L3JlcGxhY2VhYmxl PiB8CiAgIFRSSUdHRVIgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJfbmFt ZTwvcmVwbGFjZWFibGU+IE9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9u YW1lPC9yZXBsYWNlYWJsZT4gfAogICBUWVBFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKKyAgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBWSUVXIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+CiB9IElT IHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN0cmluZ19saXRlcmFsPC9yZXBsYWNl YWJsZT4gfCBOVUxMIH0KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2No ZW1hLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAppbmRleCBlZDY5 Mjk4Y2NjNi4uYTgzNGM4NzZiYzkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3NjaGVtYS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCkBA IC0xMDMsOSArMTAzLDEwIEBAIENSRUFURSBTQ0hFTUEgSUYgTk9UIEVYSVNUUyBBVVRIT1JJWkFU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwCiAgICAgICAgIHNjaGVt YS4gQ3VycmVudGx5LCBvbmx5IDxjb21tYW5kPkNSRUFURQogICAgICAgICBUQUJMRTwvY29tbWFu ZD4sIDxjb21tYW5kPkNSRUFURSBWSUVXPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCiAgICAg ICAgIElOREVYPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFNFUVVFTkNFPC9jb21tYW5kPiwg PGNvbW1hbmQ+Q1JFQVRFCi0gICAgICAgIFRSSUdHRVI8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5H UkFOVDwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVzZXMKLSAgICAgICAgd2l0aGluIDxj b21tYW5kPkNSRUFURSBTQ0hFTUE8L2NvbW1hbmQ+LiBPdGhlciBraW5kcyBvZiBvYmplY3RzIG1h eQotICAgICAgICBiZSBjcmVhdGVkIGluIHNlcGFyYXRlIGNvbW1hbmRzIGFmdGVyIHRoZSBzY2hl bWEgaXMgY3JlYXRlZC4KKyAgICAgICAgVFJJR0dFUjwvY29tbWFuZD4sIDxjb21tYW5kPkdSQU5U PC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAgIFZBUklBQkxFPC9jb21tYW5k PiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNlcyB3aXRoaW4gPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAg IFNDSEVNQTwvY29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVjdHMgbWF5IGJlIGNyZWF0ZWQg aW4gc2VwYXJhdGUKKyAgICAgICAgY29tbWFuZHMgYWZ0ZXIgdGhlIHNjaGVtYSBpcyBjcmVhdGVk LgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5 PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmVjMTY1YWI5NmZjCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDE1MSBAQAorPCEtLQor ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUiPgorIDxpbmRl eHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyAgPHByaW1hcnk+Q1JFQVRFIFZBUklB QkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+ c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5kZWZpbmluZzwvc2Vjb25k YXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFU RSBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+Cisg IDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8 L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIFZBUklBQkxFPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZwdXJw b3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0NS RUFURSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KKzwvc3lub3BzaXM+Cisg PC9yZWZzeW5vcHNpc2Rpdj4KKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5k PiBjb21tYW5kIGNyZWF0ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgU2Vzc2lvbiB2YXJpYWJs ZXMsIGxpa2UgcmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBzY2hlbWEgYW5kIHRoZWlyIGFjY2Vz cyBpcworICAgY29udHJvbGxlZCB2aWEgdGhlIGNvbW1hbmRzIDxjb21tYW5kPkdSQU5UPC9jb21t YW5kPiBhbmQgPGNvbW1hbmQ+UkVWT0tFPC9jb21tYW5kPi4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUgY3Vy cmVudCBzZXNzaW9uLiAgUmV0cmlldmluZworICAgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWUg cmV0dXJucyBOVUxMLCB1bmxlc3MgaXRzIHZhbHVlIGlzIHNldCB0bworICAgc29tZXRoaW5nIGVs c2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBj b21tYW5kLgorICAgVGhlIGNvbnRlbnQgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB0cmFu c2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzCisgICByZWd1bGFyIHZhcmlhYmxlcyBpbiBw cm9jZWR1cmFsIGxhbmd1YWdlcy4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgU2Vzc2lvbiB2 YXJpYWJsZXMgYXJlIHJldHJpZXZlZCBieSB0aGUgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPgor ICAgY29tbWFuZC4gIFRoZWlyIHZhbHVlIGlzIHNldCB3aXRoIHRoZSA8Y29tbWFuZD5MRVQ8L2Nv bW1hbmQ+IGNvbW1hbmQuCisgIDwvcGFyYT4KKworICA8bm90ZT4KKyAgIDxwYXJhPgorICAgIFNl c3Npb24gdmFyaWFibGVzIGNhbiBiZSA8cXVvdGU+c2hhZG93ZWQ8L3F1b3RlPiBieSBvdGhlciBp ZGVudGlmaWVycy4KKyAgICBGb3IgZGV0YWlscywgc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1zZXNz aW9uLXZhcmlhYmxlcyIvPi4KKyAgIDwvcGFyYT4KKyAgPC9ub3RlPgorIDwvcmVmc2VjdDE+CisK KyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVs aXN0PgorCisgICA8dmFybGlzdGVudHJ5ICBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWlmLW5vdC1l eGlzdHMiPgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIE5PVCBFWElTVFM8L2xpdGVyYWw+PC90ZXJt PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJy b3IgaWYgdGhlIG5hbWUgYWxyZWFkeSBleGlzdHMuIEEgbm90aWNlIGlzIGlzc3VlZCBpbgorICAg ICAgdGhpcyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtbmFtZSI+ CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUs IG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1kYXRhX3R5cGUiPgorICAgIDx0ZXJt PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUsIG9wdGlv bmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhlIGRhdGEgdHlwZSBvZiB0aGUgc2Vzc2lvbgor ICAgICAgdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1jb2xs YXRlIj4KKyAgICA8dGVybT48bGl0ZXJhbD5DT0xMQVRFIDxyZXBsYWNlYWJsZT5jb2xsYXRpb248 L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5DT0xMQVRFPC9saXRlcmFsPiBjbGF1c2UgYXNzaWducyBh IGNvbGxhdGlvbiB0byB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgKHdoaWNoIG11c3QgYmUg b2YgYSBjb2xsYXRhYmxlIGRhdGEgdHlwZSkuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgdGhl IGRhdGEgdHlwZSdzIGRlZmF1bHQgY29sbGF0aW9uIGlzIHVzZWQuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPk5vdGVzPC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFVzZSB0aGUgPGNvbW1hbmQ+RFJPUCBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFu ZCB0byByZW1vdmUgYSBzZXNzaW9uCisgICB2YXJpYWJsZS4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+ CisgICBDcmVhdGUgYW4gZGF0ZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xpdGVy YWw+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xF VCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIHZhcjE7Cis8L3Byb2dyYW1saXN0aW5nPgor ICA8L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0 aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklB QkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9w cm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJp bmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwv bWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9t ZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uNWJkYjM1NjBmMGIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDExNyBAQAorPCEtLQorZG9jL3NyYy9zZ21s L3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisK KzxyZWZlbnRyeSBpZD0ic3FsLWRyb3B2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwt ZHJvcHZhcmlhYmxlIj4KKyAgPHByaW1hcnk+RFJPUCBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2lu ZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3By aW1hcnk+CisgIDxzZWNvbmRhcnk+cmVtb3Zpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4K KworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5EUk9QIFZBUklBQkxFPC9yZWZlbnRyeXRp dGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExh bmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1l ZGl2PgorICA8cmVmbmFtZT5EUk9QIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5y ZW1vdmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKwor IDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0RST1AgVkFSSUFCTEUgWyBJRiBFWElTVFMg XSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2 PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJh PgorICAgPGNvbW1hbmQ+RFJPUCBWQVJJQUJMRTwvY29tbWFuZD4gcmVtb3ZlcyBhIHNlc3Npb24g dmFyaWFibGUuCisgICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIG9ubHkgYmUgcmVtb3ZlZCBieSBp dHMgb3duZXIgb3IgYSBzdXBlcnVzZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4K KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFs PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93 IGFuIGVycm9yIGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0LiBBIG5vdGlj ZSBpcworICAgICAgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVy bT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJt PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxs eSBzY2hlbWEtcXVhbGlmaWVkLCBvZiBhIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PGxpdGVyYWw+Q0FTQ0FERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIEF1dG9tYXRpY2FsbHkgZHJvcCBvYmplY3RzIHRoYXQg ZGVwZW5kIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlIChzdWNoIGFzCisgICAgICB2aWV3cyksIGFu ZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAg IChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWRlcGVuZCIvPikuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBp ZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzIGlzCisgICAgICB0aGUgZGVmYXVsdC4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92 YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1w bGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIHJlbW92ZSB0aGUgc2Vzc2lvbiB2YXJpYWJs ZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKworPHByb2dyYW1saXN0aW5nPgorRFJPUCBWQVJJ QUJMRSB2YXIxOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAg VGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHBy b2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgor CisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZz ZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAppbmRleCA5OTlmNjU3ZDVjMC4uNzhm ZjEwZmNmNWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKQEAgLTEwMSw2ICsxMDEsMTIgQEAgR1JBTlQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gVE8gPHJlcGxhY2UKICAgICBbIFdJVEggeyBBRE1JTiB8IElOSEVSSVQgfCBTRVQgfSB7IE9Q VElPTiB8IFRSVUUgfCBGQUxTRSB9IF0KICAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KIAorR1JB TlQgeyBTRUxFQ1QgfCBVUERBVEUgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklB QkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQorICAg ICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAgVE8gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IFss IC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCisK IDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lm aWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAgIFsgR1JPVVAgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L3Jldm9rZS5zZ21sCmluZGV4IDhkZjQ5MjI4MWExLi42MjZjMDIzMWQwZCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9r ZS5zZ21sCkBAIC0xMzcsNiArMTM3LDEzIEBAIFJFVk9LRSBbIHsgQURNSU4gfCBJTkhFUklUIHwg U0VUIH0gT1BUSU9OIEZPUiBdCiAgIHwgQ1VSUkVOVF9ST0xFCiAgIHwgQ1VSUkVOVF9VU0VSCiAg IHwgU0VTU0lPTl9VU0VSCisKK1JFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQorICAgIHsgeyBT RUxFQ1QgfCBVUERBVEUgfSBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBW QVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0K KyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAgIEZST00geyBb IEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFj ZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwv c3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCmluZGV4IGZmODVh Y2U4M2ZjLi4yNTU3OGYzOTQ2YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtNzUsNiArNzUsNyBAQAog ICAgJmFsdGVyVHlwZTsKICAgICZhbHRlclVzZXI7CiAgICAmYWx0ZXJVc2VyTWFwcGluZzsKKyAg ICZhbHRlclZhcmlhYmxlOwogICAgJmFsdGVyVmlldzsKICAgICZhbmFseXplOwogICAgJmJlZ2lu OwpAQCAtMTI3LDYgKzEyOCw3IEBACiAgICAmY3JlYXRlVHlwZTsKICAgICZjcmVhdGVVc2VyOwog ICAgJmNyZWF0ZVVzZXJNYXBwaW5nOworICAgJmNyZWF0ZVZhcmlhYmxlOwogICAgJmNyZWF0ZVZp ZXc7CiAgICAmZGVhbGxvY2F0ZTsKICAgICZkZWNsYXJlOwpAQCAtMTc1LDYgKzE3Nyw3IEBACiAg ICAmZHJvcFR5cGU7CiAgICAmZHJvcFVzZXI7CiAgICAmZHJvcFVzZXJNYXBwaW5nOworICAgJmRy b3BWYXJpYWJsZTsKICAgICZkcm9wVmlldzsKICAgICZlbmQ7CiAgICAmZXhlY3V0ZTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jYXRhbG9n L01ha2VmaWxlCmluZGV4IDE1ODlhNzVmZDUzLi43YTkwZmNmYzQ1NyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2Vm aWxlCkBAIC00NSw2ICs0NSw3IEBAIE9CSlMgPSBcCiAJcGdfc2hkZXBlbmQubyBcCiAJcGdfc3Vi c2NyaXB0aW9uLm8gXAogCXBnX3R5cGUubyBcCisJcGdfdmFyaWFibGUubyBcCiAJc3RvcmFnZS5v IFwKIAl0b2FzdGluZy5vCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hr LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IGE0NGNjZWUzYjY4Li42OTY4 YjFlNmViZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJs ZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tYW5k cy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCkBAIC0yOTAs NiArMjkxLDkgQEAgcmVzdHJpY3RfYW5kX2NoZWNrX2dyYW50KGJvb2wgaXNfZ3JhbnQsIEFjbE1v ZGUgYXZhaWxfZ29wdGlvbnMsIGJvb2wgYWxsX3ByaXZzLAogCQljYXNlIE9CSkVDVF9QQVJBTUVU RVJfQUNMOgogCQkJd2hvbGVfbWFzayA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJ CQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl3aG9sZV9tYXNrID0gQUNMX0FM TF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwgb2JqdHlwZSk7CiAJCQkvKiBub3QgcmVh Y2hlZCwgYnV0IGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTUzNCw2ICs1MzgsMTAgQEAgRXhl Y3V0ZUdyYW50U3RtdChHcmFudFN0bXQgKnN0bXQpCiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9B TExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52 YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgcGFyYW1ldGVyIik7CiAJCQlicmVhazsKKwkJY2Fz ZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZB UklBQkxFOworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5 cGUgJXMgZm9yIHNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAo aW50KSBzdG10LT5vYmp0eXBlKTsKQEAgLTYzOSw2ICs2NDcsOSBAQCBFeGVjR3JhbnRTdG10X29p ZHMoSW50ZXJuYWxHcmFudCAqaXN0bXQpCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJ CQlFeGVjR3JhbnRfUGFyYW1ldGVyKGlzdG10KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKKwkJCUV4ZWNHcmFudF9jb21tb24oaXN0bXQsIFZhcmlhYmxlUmVsYXRpb25JZCwg QUNMX0FMTF9SSUdIVFNfVkFSSUFCTEUsIE5VTEwpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJ CQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJ IChpbnQpIGlzdG10LT5vYmp0eXBlKTsKQEAgLTgyOSw2ICs4NDAsMTggQEAgb2JqZWN0TmFtZXNU b09pZHMoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpvYmpuYW1lcywgYm9vbCBpc19ncmFudCkK IAkJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVjdHMsIHBhcmFtZXRlcklkKTsKIAkJCX0K IAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWZvcmVhY2goY2VsbCwgb2Jq bmFtZXMpCisJCQl7CisJCQkJUmFuZ2VWYXIgICAqdmFydmFyID0gKFJhbmdlVmFyICopIGxmaXJz dChjZWxsKTsKKwkJCQlPaWQJCQlyZWxPaWQ7CisKKwkJCQlyZWxPaWQgPSBMb29rdXBWYXJpYWJs ZSh2YXJ2YXItPnNjaGVtYW5hbWUsCisJCQkJCQkJCQkJdmFydmFyLT5yZWxuYW1lLAorCQkJCQkJ CQkJCWZhbHNlKTsKKwkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcmVsT2lkKTsK KwkJCX0KKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXpl ZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBvYmp0eXBlKTsKQEAgLTkxOCw2 ICs5NDEsMzIgQEAgb2JqZWN0c0luU2NoZW1hVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlz dCAqbnNwbmFtZXMpCiAJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJ CQl9CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQl7CisJCQkJCVNj YW5LZXlEYXRhIGtleTsKKwkJCQkJUmVsYXRpb24JcmVsOworCQkJCQlUYWJsZVNjYW5EZXNjIHNj YW47CisJCQkJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkJCQlTY2FuS2V5SW5pdCgma2V5LAorCQkJ CQkJCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSwKKwkJCQkJCQkJQlRFcXVhbFN0cmF0 ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlk KSk7CisKKwkJCQkJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIEFjY2Vzc1No YXJlTG9jayk7CisJCQkJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY2F0YWxvZyhyZWwsIDEsICZr ZXkpOworCisJCQkJCXdoaWxlICgodHVwbGUgPSBoZWFwX2dldG5leHQoc2NhbiwgRm9yd2FyZFNj YW5EaXJlY3Rpb24pKSAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlPaWQJCQlvaWQgPSAoKEZvcm1f cGdfcHJvYykgR0VUU1RSVUNUKHR1cGxlKSktPm9pZDsKKworCQkJCQkJb2JqZWN0cyA9IGxhcHBl bmRfb2lkKG9iamVjdHMsIG9pZCk7CisJCQkJCX0KKworCQkJCQl0YWJsZV9lbmRzY2FuKHNjYW4p OworCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJfQorCQkJCWJy ZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAqLwogCQkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKQEAgLTEwNzcsNiAr MTEyNiwxMCBAQCBFeGVjQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdCAqcwogCQkJYWxsX3ByaXZpbGVnZXMgPSBB Q0xfQUxMX1JJR0hUU19TQ0hFTUE7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxp ZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2NoZW1hIik7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxF OworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMg Zm9yIHNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhF UlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBh Y3Rpb24tPm9ianR5cGUpOwpAQCAtMTI2OCw2ICsxMzIxLDEyIEBAIFNldERlZmF1bHRBQ0woSW50 ZXJuYWxEZWZhdWx0QUNMICppYWNscykKIAkJCQl0aGlzX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJ R0hUU19TQ0hFTUE7CiAJCQlicmVhazsKIAorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCW9i anR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQlpZiAoaWFjbHMtPmFsbF9wcml2cyAmJiB0 aGlzX3ByaXZpbGVnZXMgPT0gQUNMX05PX1JJR0hUUykKKwkJCQl0aGlzX3ByaXZpbGVnZXMgPSBB Q0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIGlhY2xz LT5vYmp0eXBlKTsKQEAgLTE1MTEsNiArMTU3MCw5IEBAIFJlbW92ZVJvbGVGcm9tT2JqZWN0QUNM KE9pZCByb2xlaWQsIE9pZCBjbGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNlIERFRkFDTE9CSl9O QU1FU1BBQ0U6CiAJCQkJaWFjbHMub2JqdHlwZSA9IE9CSkVDVF9TQ0hFTUE7CiAJCQkJYnJlYWs7 CisJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQlpYWNscy5vYmp0eXBlID0gT0JKRUNU X1ZBUklBQkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBTaG91bGRuJ3QgZ2V0 IGhlcmUgKi8KIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBkZWZhdWx0IEFDTCB0eXBlOiAl ZCIsCkBAIC0xNTcxLDYgKzE2MzMsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFDTChPaWQgcm9s ZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBQYXJhbWV0ZXJBY2xSZWxhdGlv bklkOgogCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDsKIAkJCQlicmVh azsKKwkJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpF Q1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1 bmV4cGVjdGVkIG9iamVjdCBjbGFzcyAldSIsIGNsYXNzaWQpOwogCQkJCWJyZWFrOwpAQCAtMjgx MCw2ICsyODc1LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlw ZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9u b29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgdHlwZSAlcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJ CWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24g ZGVuaWVkIGZvciB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI5MjEsNiArMjk4OSw5IEBA IGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJ CQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBv d25lciBvZiB0eXBlICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Ygc2Vzc2lvbiB2 YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJ CQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgdmlldyAlcyIpOwogCQkJCQkJ YnJlYWs7CkBAIC0zMDY5LDYgKzMxNDAsOCBAQCBwZ19hY2xtYXNrKE9iamVjdFR5cGUgb2JqdHlw ZSwgT2lkIG9iamVjdF9vaWQsIEF0dHJOdW1iZXIgYXR0bnVtLCBPaWQgcm9sZWlkLAogCQkJcmV0 dXJuIEFDTF9OT19SSUdIVFM7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gb2JqZWN0 X2FjbG1hc2soVHlwZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywgaG93KTsK KwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gb2JqZWN0X2FjbG1hc2soVmFyaWFi bGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCiAJCQkJIChp bnQpIG9ianR5cGUpOwpAQCAtNDMzNiw2ICs0NDA5LDEwIEBAIGdldF91c2VyX2RlZmF1bHRfYWNs KE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQsIE9pZCBuc3Bfb2lkKQogCQkJZGVmYWNs b2JqdHlwZSA9IERFRkFDTE9CSl9OQU1FU1BBQ0U7CiAJCQlicmVhazsKIAorCQljYXNlIE9CSkVD VF9WQVJJQUJMRToKKwkJCWRlZmFjbG9ianR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQli cmVhazsKKwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIE5VTEw7CiAJfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVu ZGVuY3kuYwppbmRleCAwNDg5Y2JhYmNiOC4uYzlkNjg2NjY1ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCkBAIC02NSwxMiArNjUsMTQgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3Rl bXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5k cy9leHRlbnNpb24uaCIKICNpbmNsdWRlICJjb21tYW5kcy9wb2xpY3kuaCIKICNpbmNsdWRlICJj b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFjbWRz LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VjbGFiZWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9z ZXF1ZW5jZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKQEAgLTE0NDQsNiArMTQ0 NiwxMCBAQCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZsYWdz KQogCQkJUmVtb3ZlUHVibGljYXRpb25CeUlkKG9iamVjdC0+b2JqZWN0SWQpOwogCQkJYnJlYWs7 CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlEcm9wVmFyaWFibGVCeUlkKG9iamVj dC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKIAkJY2FzZSBDYXN0UmVsYXRpb25JZDoKIAkJY2Fz ZSBDb2xsYXRpb25SZWxhdGlvbklkOgogCQljYXNlIENvbnZlcnNpb25SZWxhdGlvbklkOgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbWVzb24uYnVpbGQKaW5kZXggMmYzZGVkOGEwZTcuLmJmZGI0ZGEzMzAxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbWVzb24uYnVpbGQKQEAgLTMyLDYgKzMyLDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZp bGVzKAogICAncGdfc2hkZXBlbmQuYycsCiAgICdwZ19zdWJzY3JpcHRpb24uYycsCiAgICdwZ190 eXBlLmMnLAorICAncGdfdmFyaWFibGUuYycsCiAgICdzdG9yYWdlLmMnLAogICAndG9hc3Rpbmcu YycsCiApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCA0M2I3MDc2OTlkNy4uYzQ2NDJiNzVi YmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0 ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAi Y29tbW9uL2hhc2hmbl91bnN0YWJsZS5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTk3MSw2 ICs5NzIsNjcgQEAgUmVsYXRpb25Jc1Zpc2libGVFeHQoT2lkIHJlbGlkLCBib29sICppc19taXNz aW5nKQogCXJldHVybiB2aXNpYmxlOwogfQogCisvKgorICogVmFyaWFibGVJc1Zpc2libGUKKyAq CQlEZXRlcm1pbmUgd2hldGhlciBhIHZhcmlhYmxlIChpZGVudGlmaWVkIGJ5IE9JRCkgaXMgdmlz aWJsZSBpbiB0aGUKKyAqCQljdXJyZW50IHNlYXJjaCBwYXRoLiBWaXNpYmxlIG1lYW5zICJ3b3Vs ZCBiZSBmb3VuZCBieSBzZWFyY2hpbmcKKyAqCQlmb3IgdGhlIHVucXVhbGlmaWVkIHZhcmlhYmxl IG5hbWUiLgorICovCitib29sCitWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpCit7CisJSGVh cFR1cGxlCXZhcnR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFt ZXNwYWNlOworCWJvb2wJCXZpc2libGU7CisKKwl2YXJ0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFs aWQodmFydHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Np b24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBH RVRTVFJVQ1QodmFydHVwKTsKKworCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCS8qCisJ ICogUXVpY2sgY2hlY2s6IGlmIGl0IGFpbid0IGluIHRoZSBwYXRoIGF0IGFsbCwgaXQgYWluJ3Qg dmlzaWJsZS4gV2UKKwkgKiBkb24ndCBleHBlY3QgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZXMg aW4gdGhlIHN5c3RlbSBuYW1lc3BhY2UuCisJICovCisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+ dmFybmFtZXNwYWNlOworCWlmICghbGlzdF9tZW1iZXJfb2lkKGFjdGl2ZVNlYXJjaFBhdGgsIHZh cm5hbWVzcGFjZSkpCisJCXZpc2libGUgPSBmYWxzZTsKKwllbHNlCisJeworCQkvKgorCQkgKiBJ ZiBpdCBpcyBpbiB0aGUgcGF0aCwgaXQgbWlnaHQgc3RpbGwgbm90IGJlIHZpc2libGU7IGl0IGNv dWxkIGJlCisJCSAqIGhpZGRlbiBieSBhbm90aGVyIHZhcmlhYmxlIG9mIHRoZSBzYW1lIG5hbWUg ZWFybGllciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBhIHNsb3cgY2hlY2sgZm9y IGNvbmZsaWN0aW5nIHJlbGF0aW9ucy4KKwkJICovCisJCWNoYXIJICAgKnZhcm5hbWUgPSBOYW1l U3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCQlMaXN0Q2VsbCAgICpsOworCisJCXZpc2libGUgPSBm YWxzZTsKKwkJZm9yZWFjaChsLCBhY3RpdmVTZWFyY2hQYXRoKQorCQl7CisJCQlPaWQJCQluYW1l c3BhY2VJZCA9IGxmaXJzdF9vaWQobCk7CisKKwkJCWlmIChuYW1lc3BhY2VJZCA9PSB2YXJuYW1l c3BhY2UpCisJCQl7CisJCQkJLyogRm91bmQgaXQgZmlyc3QgaW4gcGF0aCAqLworCQkJCXZpc2li bGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKE9pZElzVmFsaWQoZ2V0X3Zhcm5h bWVfdmFyaWQodmFybmFtZSwgbmFtZXNwYWNlSWQpKSkKKwkJCXsKKwkJCQkvKiBGb3VuZCBzb21l dGhpbmcgZWxzZSBmaXJzdCBpbiBwYXRoICovCisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisK KwlSZWxlYXNlU3lzQ2FjaGUodmFydHVwKTsKKworCXJldHVybiB2aXNpYmxlOworfQogCiAvKgog ICogVHlwZW5hbWVHZXRUeXBpZApAQCAtMzI3NCw2ICszMzM2LDY2IEBAIFRTQ29uZmlnSXNWaXNp YmxlRXh0KE9pZCBjZmdpZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0K IAorLyoKKyAqIFJldHVybnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBv c3NpYmx5IHF1YWxpZmllZCBpZGVudGlmaWVyLgorICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJu cyBJbnZhbGlkT2lkIGlmIG1pc3Npbmdfb2ssIGVsc2UgdGhyb3dzIGVycm9yLgorICovCitPaWQK K0xvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsCisJCQkgICBjb25zdCBjaGFyICp2 YXJuYW1lLAorCQkJICAgYm9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJCW5hbWVzcGFjZUlkOwor CU9pZAkJCXZhcm9pZCA9IEludmFsaWRPaWQ7CisJTGlzdENlbGwgICAqbDsKKworCWlmIChuc3Bu YW1lKQorCXsKKwkJbmFtZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShuc3BuYW1l LCBtaXNzaW5nX29rKTsKKworCQkvKiBpZiBuc3BuYW1lIGlzIGEga25vd24gbmFtZXNwYWNlLCB0 aGUgdmFyaWFibGUgbXVzdCBiZSB0aGVyZSAqLworCQlpZiAoT2lkSXNWYWxpZChuYW1lc3BhY2VJ ZCkpCisJCXsKKwkJCXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFu dW1fcGdfdmFyaWFibGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwK KwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisJCX0KKwl9CisJZWxz ZQorCXsKKwkJLyogaXRlcmF0ZSBvdmVyIHRoZSBzY2hlbWFzIG9uIHRoZSBzZWFyY2hfcGF0aCAq LworCQlyZWNvbXB1dGVOYW1lc3BhY2VQYXRoKCk7CisKKwkJZm9yZWFjaChsLCBhY3RpdmVTZWFy Y2hQYXRoKQorCQl7CisJCQluYW1lc3BhY2VJZCA9IGxmaXJzdF9vaWQobCk7CisKKwkJCXZhcm9p ZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lk LAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJ ZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisKKwkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZCkpCisJ CQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIU9pZElzVmFsaWQodmFyb2lkKSAmJiAhbWlzc2lu Z19vaykKKwl7CisJCWlmIChuc3BuYW1lKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNv ZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCW5zcG5hbWUsIHZhcm5hbWUp KSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5E RUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRv ZXMgbm90IGV4aXN0IiwKKwkJCQkJCQl2YXJuYW1lKSkpOworCX0KKworCXJldHVybiB2YXJvaWQ7 Cit9CiAKIC8qCiAgKiBEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUKQEAgLTUwNzUsMyArNTE5Nywx NCBAQCBwZ19pc19vdGhlcl90ZW1wX3NjaGVtYShQR19GVU5DVElPTl9BUkdTKQogCiAJUEdfUkVU VVJOX0JPT0woaXNPdGhlclRlbXBOYW1lc3BhY2Uob2lkKSk7CiB9CisKK0RhdHVtCitwZ192YXJp YWJsZV9pc192aXNpYmxlKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJb2lkID0gUEdfR0VU QVJHX09JRCgwKTsKKworCWlmICghU2VhcmNoU3lzQ2FjaGVFeGlzdHMxKFZBUklBQkxFT0lELCBP YmplY3RJZEdldERhdHVtKG9pZCkpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJO X0JPT0woVmFyaWFibGVJc1Zpc2libGUob2lkKSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRk cmVzcy5jCmluZGV4IDg1YTdiN2U2NDFhLi5lZTcwZWVlZWQ0NCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9v YmplY3RhZGRyZXNzLmMKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Rz X3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rl ZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTYzNiw2ICs2 MzcsMjAgQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3BlcnR5VHlwZSBPYmplY3RQcm9wZXJ0eVtd ID0KIAkJT0JKRUNUX1VTRVJfTUFQUElORywKIAkJZmFsc2UKIAl9LAorCXsKKwkJInNlc3Npb24g dmFyaWFibGUiLAorCQlWYXJpYWJsZVJlbGF0aW9uSWQsCisJCVZhcmlhYmxlT2lkSW5kZXhJZCwK KwkJVkFSSUFCTEVPSUQsCisJCVZBUklBQkxFTkFNRU5TUCwKKwkJQW51bV9wZ192YXJpYWJsZV9v aWQsCisJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZSwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJu YW1lc3BhY2UsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyb3duZXIsCisJCUFudW1fcGdfdmFyaWFi bGVfdmFyYWNsLAorCQlPQkpFQ1RfVkFSSUFCTEUsCisJCXRydWUKKwl9CiB9OwogCiAvKgpAQCAt ODMxLDYgKzg0Niw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJfSwK IAl7CiAJCSJzdGF0aXN0aWNzIG9iamVjdCIsIE9CSkVDVF9TVEFUSVNUSUNfRVhUCisJfSwKKwl7 CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwgT0JKRUNUX1ZBUklBQkxFCiAJfQogfTsKIApAQCAtODU2 LDYgKzg3NCw3IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc19hdHRy ZGVmKE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJCQkJCQkJCWJvb2wgbWlzc2luZ19vayk7CiBz dGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3NfdHlwZShPYmplY3RUeXBlIG9i anR5cGUsCiAJCQkJCQkJCQkJCSBUeXBlTmFtZSAqdHlwZW5hbWUsIGJvb2wgbWlzc2luZ19vayk7 CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoTGlzdCAq b2JqZWN0LCBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVj dF9hZGRyZXNzX29wY2YoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpvYmplY3QsCiAJCQkJCQkJ CQkJCSBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9h ZGRyZXNzX29wZl9tZW1iZXIoT2JqZWN0VHlwZSBvYmp0eXBlLApAQCAtMTEyNiw2ICsxMTQ1LDkg QEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0LAog CQkJCQkJCQkJCQkJCQkJIG1pc3Npbmdfb2spOwogCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAw OwogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJYWRkcmVzcyA9IGdl dF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5n X29rKTsKKwkJCQlicmVhazsKIAkJCQkvKiBubyBkZWZhdWx0LCB0byBsZXQgY29tcGlsZXIgd2Fy biBhYm91dCBtaXNzaW5nIGNhc2UgKi8KIAkJfQogCkBAIC0yMDAwLDE2ICsyMDIyLDIwIEBAIGdl dF9vYmplY3RfYWRkcmVzc19kZWZhY2woTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJ CWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToKIAkJCW9ianR5cGVfc3RyID0gInNjaGVtYXMiOwog CQkJYnJlYWs7CisJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJb2JqdHlwZV9zdHIgPSAi dmFyaWFibGVzIjsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZXJlcG9ydChFUlJPUiwKIAkJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJCSBlcnJt c2coInVucmVjb2duaXplZCBkZWZhdWx0IEFDTCBvYmplY3QgdHlwZSBcIiVjXCIiLCBvYmp0eXBl KSwKLQkJCQkJIGVycmhpbnQoIlZhbGlkIG9iamVjdCB0eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIs IFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIuIiwKKwkJCQkJIGVycmhpbnQoIlZhbGlkIG9iamVjdCB0 eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4i LAogCQkJCQkJCSBERUZBQ0xPQkpfUkVMQVRJT04sCiAJCQkJCQkJIERFRkFDTE9CSl9TRVFVRU5D RSwKIAkJCQkJCQkgREVGQUNMT0JKX0ZVTkNUSU9OLAogCQkJCQkJCSBERUZBQ0xPQkpfVFlQRSwK LQkJCQkJCQkgREVGQUNMT0JKX05BTUVTUEFDRSkpKTsKKwkJCQkJCQkgREVGQUNMT0JKX05BTUVT UEFDRSwKKwkJCQkJCQkgREVGQUNMT0JKX1ZBUklBQkxFKSkpOwogCX0KIAogCS8qCkBAIC0yMDkz LDYgKzIxMTksMjQgQEAgdGV4dGFycmF5X3RvX3N0cnZhbHVlbGlzdChBcnJheVR5cGUgKmFycikK IAlyZXR1cm4gbGlzdDsKIH0KIAorLyoKKyAqIEZpbmQgdGhlIE9iamVjdEFkZHJlc3MgZm9yIGEg c2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgT2JqZWN0QWRkcmVzcworZ2V0X29iamVjdF9h ZGRyZXNzX3ZhcmlhYmxlKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQoreworCU9iamVj dEFkZHJlc3MgYWRkcmVzczsKKwljaGFyCSAgICpuc3BuYW1lID0gTlVMTDsKKwljaGFyCSAgICp2 YXJuYW1lID0gTlVMTDsKKworCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgVmFyaWFibGVSZWxh dGlvbklkLCBJbnZhbGlkT2lkKTsKKworCURlY29uc3RydWN0UXVhbGlmaWVkTmFtZShvYmplY3Qs ICZuc3BuYW1lLCAmdmFybmFtZSk7CisJYWRkcmVzcy5vYmplY3RJZCA9IExvb2t1cFZhcmlhYmxl KG5zcG5hbWUsIHZhcm5hbWUsIG1pc3Npbmdfb2spOworCisJcmV0dXJuIGFkZHJlc3M7Cit9CisK IC8qCiAgKiBTUUwtY2FsbGFibGUgdmVyc2lvbiBvZiBnZXRfb2JqZWN0X2FkZHJlc3MKICAqLwpA QCAtMjI4Nyw2ICsyMzMxLDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6 CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCW9i am5vZGUgPSAoTm9kZSAqKSBuYW1lOwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19N RVRIT0Q6CkBAIC0yNDU4LDYgKzI1MDMsNyBAQCBjaGVja19vYmplY3Rfb3duZXJzaGlwKE9pZCBy b2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNzLAogCQljYXNl IE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNh c2UgT0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlp ZiAoIW9iamVjdF9vd25lcmNoZWNrKGFkZHJlc3MuY2xhc3NJZCwgYWRkcmVzcy5vYmplY3RJZCwg cm9sZWlkKSkKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUs CiAJCQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7CkBA IC0zNDQ2LDYgKzM0OTIsMzIgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2Fz ZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQl7CisJCQkJY2hhcgkgICAqbnNwbmFtZTsKKwkJCQlI ZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCQkJCXR1cCA9 IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9i amVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwKKwkJCQkJ CSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkg R0VUU1RSVUNUKHR1cCk7CisKKwkJCQlpZiAoVmFyaWFibGVJc1Zpc2libGUob2JqZWN0LT5vYmpl Y3RJZCkpCisJCQkJCW5zcG5hbWUgPSBOVUxMOworCQkJCWVsc2UKKwkJCQkJbnNwbmFtZSA9IGdl dF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmZmVyLCBfKCJzZXNzaW9uIHZhcmlhYmxlICVzIiksCisJCQkJCQkJCSBxdW90 ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3BuYW1lLAorCQkJCQkJCQkJCQkJCQkJTmFtZVN0cih2 YXJmb3JtLT52YXJuYW1lKSkpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJl YWs7CisJCQl9CisKIAkJY2FzZSBUU1BhcnNlclJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJSGVhcFR1 cGxlCXR1cDsKQEAgLTM3OTgsNiArMzg3MCwxNiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25z dCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQkJCQkJCQkgXygi ZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBzY2hlbWFzIGJlbG9uZ2luZyB0byByb2xlICVzIiks CiAJCQkJCQkJCQkJIHJvbGVuYW1lKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9C Sl9WQVJJQUJMRToKKwkJCQkJCWlmIChuc3BuYW1lKQorCQkJCQkJCWFwcGVuZFN0cmluZ0luZm8o JmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vzc2lv biB2YXJpYWJsZXMgYmVsb25naW5nIHRvIHJvbGUgJXMgaW4gc2NoZW1hICVzIiksCisJCQkJCQkJ CQkJCSByb2xlbmFtZSwgbnNwbmFtZSk7CisJCQkJCQllbHNlCisJCQkJCQkJYXBwZW5kU3RyaW5n SW5mbygmYnVmZmVyLAorCQkJCQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBz ZXNzaW9uIHZhcmlhYmxlcyBiZWxvbmdpbmcgdG8gcm9sZSAlcyIpLAorCQkJCQkJCQkJCQkgcm9s ZW5hbWUpOworCQkJCQkJYnJlYWs7CiAJCQkJCWRlZmF1bHQ6CiAJCQkJCQkvKiBzaG91bGRuJ3Qg Z2V0IGhlcmUgKi8KIAkJCQkJCWlmIChuc3BuYW1lKQpAQCAtNDYxNCw2ICs0Njk2LDEwIEBAIGdl dE9iamVjdFR5cGVEZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wg bWlzc2luZ19vaykKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInRyYW5zZm9y bSIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJzZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsK KwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczog JXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0KQEAgLTU3MjAsNiArNTgwNiwxMCBAQCBnZXRPYmpl Y3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCQkJCWFwcGVu ZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKIAkJCQkJCQkJCQkJICAgIiBvbiBzY2hlbWFzIik7 CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCisJCQkJCQkJCQkJCSAgICIgb24gc2Vzc2lvbiB2 YXJpYWJsZXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCX0KIAogCQkJCWlmIChvYmpuYW1lKQpAQCAt NTk2MCw2ICs2MDUwLDMzIEBAIGdldE9iamVjdElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LAogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9u SWQ6CisJCQl7CisJCQkJY2hhcgkgICAqc2NoZW1hOworCQkJCWNoYXIJICAgKnZhcm5hbWU7CisJ CQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwkJCQl0 dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0 LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCQllbG9n KEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsCisJ CQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFi bGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJc2NoZW1hID0gZ2V0X25hbWVzcGFjZV9uYW1lX29y X3RlbXAodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKwkJCQl2YXJuYW1lID0gTmFtZVN0cih2YXJm b3JtLT52YXJuYW1lKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgIiVzIiwKKwkJ CQkJCQkJIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKHNjaGVtYSwgdmFybmFtZSkpOworCisJ CQkJaWYgKG9iam5hbWUpCisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMihzY2hlbWEsIHZhcm5h bWUpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwg b2JqZWN0LT5jbGFzc0lkKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3NoZGVwZW5kLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMKaW5kZXggNzUz YWZiODg0NTMuLjFlYTNkNmRiMDVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3NoZGVwZW5kLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCkBAIC00 Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19kaWN0LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0 ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCkBAIC0xNzE0LDYgKzE3MTUsNyBAQCBzaGRlcFJlYXNzaWduT3duZWRfT3du ZXIoRm9ybV9wZ19zaGRlcGVuZCBzZGVwRm9ybSwgT2lkIG5ld3JvbGUpCiAJCWNhc2UgRGF0YWJh c2VSZWxhdGlvbklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoKIAkJY2FzZSBUU0RpY3Rp b25hcnlSZWxhdGlvbklkOgorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKIAkJCUFsdGVyT2Jq ZWN0T3duZXJfaW50ZXJuYWwoc2RlcEZvcm0tPmNsYXNzaWQsCiAJCQkJCQkJCQkgIHNkZXBGb3Jt LT5vYmppZCwKIAkJCQkJCQkJCSAgbmV3cm9sZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY2NTEyMTQ0MGE5Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0wLDAg KzEsMjU1IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ192YXJpYWJsZS5jCisgKgkJ c2Vzc2lvbiB2YXJpYWJsZXMKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAy NCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisg KgorICogSURFTlRJRklDQVRJT04KKyAqCQlzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIK KworI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKKyNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVu Y3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9u YW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2Uu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAibWlzY2FkbWlu LmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5 c2NhY2hlLmgiCisKK3N0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBj aGFyICp2YXJOYW1lLAorCQkJCQkJCQkJIE9pZCB2YXJOYW1lc3BhY2UsCisJCQkJCQkJCQkgT2lk IHZhclR5cGUsCisJCQkJCQkJCQkgaW50MzIgdmFyVHlwbW9kLAorCQkJCQkJCQkJIE9pZCB2YXJP d25lciwKKwkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9uLAorCQkJCQkJCQkJIGJvb2wgaWZfbm90 X2V4aXN0cyk7CisKKworLyoKKyAqIENyZWF0ZXMgZW50cnkgaW4gcGdfdmFyaWFibGUgdGFibGUK KyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MKK2NyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lLAorCQkJCU9pZCB2YXJOYW1lc3BhY2UsCisJCQkJT2lkIHZhclR5cGUsCisJCQkJaW50 MzIgdmFyVHlwbW9kLAorCQkJCU9pZCB2YXJPd25lciwKKwkJCQlPaWQgdmFyQ29sbGF0aW9uLAor CQkJCWJvb2wgaWZfbm90X2V4aXN0cykKK3sKKwlBY2wJCSAgICp2YXJhY2w7CisJTmFtZURhdGEJ dmFybmFtZTsKKwlib29sCQludWxsc1tOYXR0c19wZ192YXJpYWJsZV07CisJRGF0dW0JCXZhbHVl c1tOYXR0c19wZ192YXJpYWJsZV07CisJUmVsYXRpb24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisJ VHVwbGVEZXNjCXR1cGRlc2M7CisJT2JqZWN0QWRkcmVzcyBteXNlbGYsCisJCQkJcmVmZXJlbmNl ZDsKKwlPYmplY3RBZGRyZXNzZXMgKmFkZHJzOworCU9pZAkJCXZhcmlkOworCisJQXNzZXJ0KHZh ck5hbWUpOworCUFzc2VydChPaWRJc1ZhbGlkKHZhck5hbWVzcGFjZSkpOworCUFzc2VydChPaWRJ c1ZhbGlkKHZhclR5cGUpKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJPd25lcikpOworCisJcmVs ID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJ LyoKKwkgKiBDaGVjayBmb3IgZHVwbGljYXRlcy4gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgcmVh bGx5IHByZXZlbnQKKwkgKiBkdXBsaWNhdGVzLCBpdCdzIGhlcmUganVzdCB0byBwcm92aWRlIG5p Y2VyIGVycm9yIG1lc3NhZ2UgaW4gY29tbW9uCisJICogY2FzZS4gVGhlIHJlYWwgcHJvdGVjdGlv biBpcyB0aGUgdW5pcXVlIGtleSBvbiB0aGUgY2F0YWxvZy4KKwkgKi8KKwlpZiAoU2VhcmNoU3lz Q2FjaGVFeGlzdHMyKFZBUklBQkxFTkFNRU5TUCwKKwkJCQkJCQkgIFBvaW50ZXJHZXREYXR1bSh2 YXJOYW1lKSwKKwkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKSkpCisJewor CQlpZiAoaWZfbm90X2V4aXN0cykKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxl IFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmciLAorCQkJCQkJCXZhck5hbWUpKSk7CisJ CWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRF X09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkg ZXhpc3RzIiwKKwkJCQkJCQl2YXJOYW1lKSkpOworCisJCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhj bHVzaXZlTG9jayk7CisKKwkJcmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNzOworCX0KKworCW1l bXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBz aXplb2YobnVsbHMpKTsKKworCW5hbWVzdHJjcHkoJnZhcm5hbWUsIHZhck5hbWUpOworCisJdmFy aWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBWYXJpYWJsZU9pZEluZGV4SWQsIEFudW1fcGdf dmFyaWFibGVfb2lkKTsKKworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX29pZCAtIDFdID0gT2Jq ZWN0SWRHZXREYXR1bSh2YXJpZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAt IDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1lKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKTsKKwl2YWx1 ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5 cGUpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cG1vZCAtIDFdID0gSW50MzJHZXRE YXR1bSh2YXJUeXBtb2QpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0g PSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKKworCXZh cmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9WQVJJQUJMRSwgdmFyT3duZXIsCisJ CQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKKwlpZiAodmFyYWNsICE9IE5VTEwpCisJCXZhbHVlc1tB bnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gUG9pbnRlckdldERhdHVtKHZhcmFjbCk7CisJ ZWxzZQorCQludWxsc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gdHJ1ZTsKKworCXR1 cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUo dHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsK KwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJYWRkcnMgPSBuZXdfb2JqZWN0X2FkZHJl c3NlcygpOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFZhcmlhYmxlUmVsYXRpb25JZCwg dmFyaWQpOworCisJLyogZGVwZW5kZW5jeSBvbiBuYW1lc3BhY2UgKi8KKwlPYmplY3RBZGRyZXNz U2V0KHJlZmVyZW5jZWQsIE5hbWVzcGFjZVJlbGF0aW9uSWQsIHZhck5hbWVzcGFjZSk7CisJYWRk X2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisKKwkvKiBkZXBlbmRl bmN5IG9uIHVzZWQgdHlwZSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgVHlwZVJl bGF0aW9uSWQsIHZhclR5cGUpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNl ZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBjb2xsYXRpb24gKi8KKwlpZiAoT2lkSXNW YWxpZCh2YXJDb2xsYXRpb24pICYmCisJCXZhckNvbGxhdGlvbiAhPSBERUZBVUxUX0NPTExBVElP Tl9PSUQpCisJeworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENvbGxhdGlvblJlbGF0 aW9uSWQsIHZhckNvbGxhdGlvbik7CisJCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJl bmNlZCwgYWRkcnMpOworCX0KKworCXJlY29yZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMo Jm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKKwlmcmVlX29iamVjdF9hZGRyZXNz ZXMoYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLworCXJlY29yZERlcGVuZGVu Y3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVyKTsKKworCS8qIGRl cGVuZGVuY2llcyBvbiByb2xlcyBtZW50aW9uZWQgaW4gZGVmYXVsdCBBQ0wgKi8KKwlyZWNvcmRE ZXBlbmRlbmN5T25OZXdBY2woVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgdmFyT3duZXIs IHZhcmFjbCk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIGV4dGVuc2lvbiAqLworCXJlY29yZERlcGVu ZGVuY3lPbkN1cnJlbnRFeHRlbnNpb24oJm15c2VsZiwgZmFsc2UpOworCisJaGVhcF9mcmVldHVw bGUodHVwKTsKKworCS8qIFBvc3QgY3JlYXRpb24gaG9vayBmb3IgbmV3IGZ1bmN0aW9uICovCisJ SW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCk7 CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIG15c2Vs ZjsKK30KKworLyoKKyAqIENyZWF0ZXMgYSBuZXcgdmFyaWFibGUKKyAqCisgKiBVc2VkIGJ5IENS RUFURSBWQVJJQUJMRSBjb21tYW5kCisgKi8KK09iamVjdEFkZHJlc3MKK0NyZWF0ZVZhcmlhYmxl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCit7CisJT2lk CQkJbmFtZXNwYWNlaWQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlPaWQJCQl0eXBpZDsKKwlp bnQzMgkJdHlwbW9kOworCU9pZAkJCXZhcm93bmVyID0gR2V0VXNlcklkKCk7CisJT2lkCQkJY29s bGF0aW9uOworCU9pZAkJCXR5cGNvbGxhdGlvbjsKKwlPYmplY3RBZGRyZXNzIHZhcmlhYmxlOwor CisJbmFtZXNwYWNlaWQgPQorCQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uo c3RtdC0+dmFyaWFibGUsIE5vTG9jaywgTlVMTCk7CisKKwl0eXBlbmFtZVR5cGVJZEFuZE1vZChw c3RhdGUsIHN0bXQtPnR5cGVOYW1lLCAmdHlwaWQsICZ0eXBtb2QpOworCisJLyogRGlzYWxsb3cg cHNldWRvdHlwZXMgKi8KKwlpZiAoZ2V0X3R5cHR5cGUodHlwaWQpID09IFRZUFRZUEVfUFNFVURP KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZ UEUpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHBzZXVkby10eXBl ICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSkpKTsKKworCWFjbHJlc3VsdCA9IG9i amVjdF9hY2xjaGVjayhUeXBlUmVsYXRpb25JZCwgdHlwaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNB R0UpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yX3R5 cGUoYWNscmVzdWx0LCB0eXBpZCk7CisKKwl0eXBjb2xsYXRpb24gPSBnZXRfdHlwY29sbGF0aW9u KHR5cGlkKTsKKworCWlmIChzdG10LT5jb2xsQ2xhdXNlKQorCQljb2xsYXRpb24gPSBMb29rdXBD b2xsYXRpb24ocHN0YXRlLAorCQkJCQkJCQkJc3RtdC0+Y29sbENsYXVzZS0+Y29sbG5hbWUsCisJ CQkJCQkJCQlzdG10LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbik7CisJZWxzZQorCQljb2xsYXRpb24g PSB0eXBjb2xsYXRpb247OworCisJLyogQ29tcGxhaW4gaWYgQ09MTEFURSBpcyBhcHBsaWVkIHRv IGFuIHVuY29sbGF0YWJsZSB0eXBlICovCisJaWYgKE9pZElzVmFsaWQoY29sbGF0aW9uKSAmJiAh T2lkSXNWYWxpZCh0eXBjb2xsYXRpb24pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImNvbGxhdGlvbnMgYXJl IG5vdCBzdXBwb3J0ZWQgYnkgdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkp LAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5jb2xsQ2xhdXNlLT5sb2Nh dGlvbikpKTsKKworCXZhcmlhYmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlhYmxlLT5y ZWxuYW1lLAorCQkJCQkJCSAgIG5hbWVzcGFjZWlkLAorCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJ CSAgIHR5cG1vZCwKKwkJCQkJCQkgICB2YXJvd25lciwKKwkJCQkJCQkgICBjb2xsYXRpb24sCisJ CQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cyk7CisKKwllbG9nKERFQlVHMSwgInJlY29yZCBm b3Igc2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFy aWFibGUiLAorCQkgc3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsIHZhcmlhYmxlLm9iamVjdElkKTsK KworCS8qIFdlIHdhbnQgU2Vzc2lvblZhcmlhYmxlQ3JlYXRlUG9zdHByb2Nlc3MgdG8gc2VlIHRo ZSBjYXRhbG9nIGNoYW5nZXMuICovCisJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCXJl dHVybiB2YXJpYWJsZTsKK30KKworLyoKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQgcmVn aXN0ZXIgdGhlIG5lZWRlZCBzZXNzaW9uIHZhcmlhYmxlCisgKiBjbGVhbnVwLgorICovCit2b2lk CitEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKK3sKKwlSZWxhdGlvbglyZWw7CisJSGVhcFR1 cGxlCXR1cDsKKworCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNs dXNpdmVMb2NrKTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0 SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsK KworCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRfc2VsZik7CisKKwlSZWxlYXNlU3lz Q2FjaGUodHVwKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7Cit9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvYWx0ZXIuYwppbmRleCA0Zjk5ZWJiNDQ3MC4uNjNmYTk5ZmFkMzQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv YWx0ZXIuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z190c190ZW1wbGF0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbGxhdGlvbmNtZHMu aCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCkBAIC0xMzksNiArMTQwLDEwIEBA IHJlcG9ydF9uYW1lc3BhY2VfY29uZmxpY3QoT2lkIGNsYXNzSWQsIGNvbnN0IGNoYXIgKm5hbWUs IE9pZCBuc3BPaWQpCiAJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKIAkJCW1zZ2ZtdCA9 IGdldHRleHRfbm9vcCgidGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbiBcIiVzXCIgYWxyZWFkeSBl eGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOwogCQkJYnJlYWs7CisJCWNhc2UgVmFyaWFibGVSZWxh dGlvbklkOgorCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7CisJCQltc2dmbXQgPSBnZXR0 ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVt YSBcIiVzXCIiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3Vw cG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBjbGFzc0lkKTsKIAkJCWJyZWFrOwpAQCAtNDE4LDYg KzQyMyw3IEBAIEV4ZWNSZW5hbWVTdG10KFJlbmFtZVN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNU X1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9T VUJTQ1JJUFRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCU9iamVjdEFk ZHJlc3MgYWRkcmVzczsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwpAQCAtNTYxLDYgKzU2Nyw3IEBA IEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAog CQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgogCQlj YXNlIE9CSkVDVF9UU1RFTVBMQVRFOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJ CQlSZWxhdGlvbgljYXRhbG9nOwogCQkJCVJlbGF0aW9uCXJlbGF0aW9uOwpAQCAtNjQ1LDYgKzY1 Miw3IEBAIEFsdGVyT2JqZWN0TmFtZXNwYWNlX29pZChPaWQgY2xhc3NJZCwgT2lkIG9iamlkLCBP aWQgbnNwT2lkLAogCQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNUZW1w bGF0ZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxhdGlvbklkOgorCQljYXNlIFZhcmlh YmxlUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwogCkBAIC04NzUsNiAr ODgzLDcgQEAgRXhlY0FsdGVyT3duZXJTdG10KEFsdGVyT3duZXJTdG10ICpzdG10KQogCQljYXNl IE9CSkVDVF9UQUJMRVNQQUNFOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2Ug T0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7CiAJ CQkJUmVsYXRpb24JcmVsYXRpb247CiAJCQkJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Ryb3BjbWRzLmMKaW5kZXggODVlZWM3ZTM5NDcuLjNjY2UxN2U5MmFmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Ryb3BjbWRzLmMKQEAgLTQ3Niw2ICs0NzYsMTAgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBp bmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QpCiAJCQltc2cgPSBnZXR0ZXh0X25v b3AoInB1YmxpY2F0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKIAkJCW5h bWUgPSBzdHJWYWwob2JqZWN0KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK KwkJCW1zZyA9IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3Qg ZXhpc3QsIHNraXBwaW5nIik7CisJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShM aXN0LCBvYmplY3QpKTsKKwkJCWJyZWFrOwogCiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJY2Fz ZSBPQkpFQ1RfREFUQUJBU0U6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVu dF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXgg N2E1ZWQ2Yjk4NTAuLjZkNDFhYTdlYzNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dl ci5jCkBAIC0yMTU2LDYgKzIxNTYsOCBAQCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RU eXBlIG9ianR5cGUpCiAJCQlyZXR1cm4gIlRBQkxFU1BBQ0UiOwogCQljYXNlIE9CSkVDVF9UWVBF OgogCQkJcmV0dXJuICJUWVBFIjsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4g IlZBUklBQkxFIjsKIAkJCS8qIHRoZXNlIGN1cnJlbnRseSBhcmVuJ3QgdXNlZCAqLwogCQljYXNl IE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CkBAIC0yMjM5 LDYgKzIyNDEsOCBAQCBzdHJpbmdpZnlfYWRlZnByaXZzX29ianR5cGUoT2JqZWN0VHlwZSBvYmp0 eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNFUyI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQly ZXR1cm4gIlRZUEVTIjsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklB QkxFUyI7CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpF Q1RfQUNDRVNTX01FVEhPRDoKIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl Y2xhYmVsLmMKaW5kZXggNTYwNzI3M2JmOWYuLmMwMjZhYjVkY2I4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl Y2xhYmVsLmMKQEAgLTkyLDYgKzkyLDcgQEAgU2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUoT2Jq ZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9UU1BBUlNFUjoKIAkJY2FzZSBPQkpFQ1Rf VFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgorCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKIAkJCXJldHVybiBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMKaW5kZXggMGIyYTUyNDYzZjEuLmYzNTY0ZTYwMTczIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYwpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL3N0b3JhZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2VfeGxvZy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKQEAgLTY3MjMsNiArNjcyNCw3IEBAIEFUVHlwZWRUYWJs ZVJlY3Vyc2lvbihMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIEFsdGVyVGFibGVDbWQgKmNt ZCwKICAqIChwb3NzaWJseSBuZXN0ZWQgc2V2ZXJhbCBsZXZlbHMgZGVlcCBpbiBjb21wb3NpdGUg dHlwZXMsIGFycmF5cywgZXRjISkuCiAgKiBFdmVudHVhbGx5LCB3ZSdkIGxpa2UgdG8gcHJvcGFn YXRlIHRoZSBjaGVjayBvciByZXdyaXRlIG9wZXJhdGlvbgogICogaW50byBzdWNoIHRhYmxlcywg YnV0IGZvciBub3csIGp1c3QgZXJyb3Igb3V0IGlmIHdlIGZpbmQgYW55LgorICogQWxzbywgY2hl Y2sgaWYgInR5cGVPaWQiIGlzIHVzZWQgYXMgdHlwZSBvZiBzb21lIHNlc3Npb24gdmFyaWFibGUu CiAgKgogICogQ2FsbGVyIHNob3VsZCBwcm92aWRlIGVpdGhlciB0aGUgYXNzb2NpYXRlZCByZWxh dGlvbiBvZiBhIHJvd3R5cGUsCiAgKiBvciBhIHR5cGUgbmFtZSAobm90IGJvdGgpIGZvciB1c2Ug aW4gdGhlIGVycm9yIG1lc3NhZ2UsIGlmIGFueS4KQEAgLTY3ODYsNiArNjc4OCw0NSBAQCBmaW5k X2NvbXBvc2l0ZV90eXBlX2RlcGVuZGVuY2llcyhPaWQgdHlwZU9pZCwgUmVsYXRpb24gb3JpZ1Jl bGF0aW9uLAogCQkJY29udGludWU7CiAJCX0KIAorCQkvKiBjaGVjayBpZiB0aGUgdHlwZSBpcyB1 c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNzaW9uIHZhcmlhYmxlICovCisJCWlmIChwZ19kZXBlbmQt PmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlvbklkKQorCQl7CisJCQlPaWQJCQl2YXJpZCA9IHBn X2RlcGVuZC0+b2JqaWQ7CisKKwkJCWlmIChvcmlnVHlwZU5hbWUpCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJ CSBlcnJtc2coImNhbm5vdCBhbHRlciB0eXBlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFi bGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlvcmlnVHlwZU5hbWUsCisJCQkJCQkJCWdl dF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwK KwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlm IChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBF KQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVj YXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9u YW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlv bi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKKwkJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGZvcmVpZ24gdGFibGUgXCIlc1wiIGJlY2F1c2Ug c2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJk X3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8CisJCQkJCSBvcmlnUmVsYXRpb24t PnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcgfHwKKwkJCQkJIG9yaWdSZWxhdGlv bi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0YWJsZSBcIiVzXCIgYmVjYXVzZSBzZXNz aW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKworCQkJY29udGludWU7CisJCX0KKwogCQkvKiBFbHNl LCBpZ25vcmUgZGVwZW5kZWVzIHRoYXQgYXJlbid0IHJlbGF0aW9ucyAqLwogCQlpZiAocGdfZGVw ZW5kLT5jbGFzc2lkICE9IFJlbGF0aW9uUmVsYXRpb25JZCkKIAkJCWNvbnRpbnVlOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKaW5kZXggYTA0M2ZkNGM2NjkuLjNmMmM1OTBjZTMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTUzLDYg KzUzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImdyYW1wYXJzZS5oIgpAQCAtMjk1 LDggKzI5Niw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCUNvbnN0cmFpbnRzU2V0U3Rt dCBDb3B5U3RtdCBDcmVhdGVBc1N0bXQgQ3JlYXRlQ2FzdFN0bXQKIAkJQ3JlYXRlRG9tYWluU3Rt dCBDcmVhdGVFeHRlbnNpb25TdG10IENyZWF0ZUdyb3VwU3RtdCBDcmVhdGVPcENsYXNzU3RtdAog CQlDcmVhdGVPcEZhbWlseVN0bXQgQWx0ZXJPcEZhbWlseVN0bXQgQ3JlYXRlUExhbmdTdG10Ci0J CUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0YXRzU3Rt dCBDcmVhdGVUYWJsZVNwYWNlU3RtdAotCQlDcmVhdGVGZHdTdG10IENyZWF0ZUZvcmVpZ25TZXJ2 ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKKwkJQ3JlYXRlU2NoZW1hU3RtdCBDcmVhdGVT ZXFTdG10IENyZWF0ZVNlc3Npb25WYXJTdG10IENyZWF0ZVN0bXQgQ3JlYXRlU3RhdHNTdG10CisJ CUNyZWF0ZVRhYmxlU3BhY2VTdG10IENyZWF0ZUZkd1N0bXQgQ3JlYXRlRm9yZWlnblNlcnZlclN0 bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAogCQlDcmVhdGVBc3NlcnRpb25TdG10IENyZWF0ZVRy YW5zZm9ybVN0bXQgQ3JlYXRlVHJpZ1N0bXQgQ3JlYXRlRXZlbnRUcmlnU3RtdAogCQlDcmVhdGVV c2VyU3RtdCBDcmVhdGVVc2VyTWFwcGluZ1N0bXQgQ3JlYXRlUm9sZVN0bXQgQ3JlYXRlUG9saWN5 U3RtdAogCQlDcmVhdGVkYlN0bXQgRGVjbGFyZUN1cnNvclN0bXQgRGVmaW5lU3RtdCBEZWxldGVT dG10IERpc2NhcmRTdG10IERvU3RtdApAQCAtNzkwLDggKzc5MSw4IEBAIHN0YXRpYyBOb2RlICpt YWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2Rl ICpxdWVyeSk7CiAJVUVTQ0FQRSBVTkJPVU5ERUQgVU5DT05ESVRJT05BTCBVTkNPTU1JVFRFRCBV TkVOQ1JZUFRFRCBVTklPTiBVTklRVUUgVU5LTk9XTgogCVVOTElTVEVOIFVOTE9HR0VEIFVOVElM IFVQREFURSBVU0VSIFVTSU5HCiAKLQlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURBVE9SIFZB TFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlORwotCVZFUkJPU0UgVkVSU0lPTl9Q IFZJRVcgVklFV1MgVk9MQVRJTEUKKwlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURBVE9SIFZB TFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFCTEUgVkFSSUFCTEVTCisJVkFSSUFESUMgVkFSWUlO RyBWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFUSUxFCiAKIAlXSEVOIFdIRVJFIFdI SVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9VVCBXT1JLIFdSQVBQRVIgV1JJVEUK IApAQCAtMTA2MSw2ICsxMDYyLDcgQEAgc3RtdDoKIAkJCXwgQ3JlYXRlUG9saWN5U3RtdAogCQkJ fCBDcmVhdGVQTGFuZ1N0bXQKIAkJCXwgQ3JlYXRlU2NoZW1hU3RtdAorCQkJfCBDcmVhdGVTZXNz aW9uVmFyU3RtdAogCQkJfCBDcmVhdGVTZXFTdG10CiAJCQl8IENyZWF0ZVN0bXQKIAkJCXwgQ3Jl YXRlU3Vic2NyaXB0aW9uU3RtdApAQCAtMTYwNSw2ICsxNjA3LDcgQEAgc2NoZW1hX3N0bXQ6CiAJ CQl8IENyZWF0ZVRyaWdTdG10CiAJCQl8IEdyYW50U3RtdAogCQkJfCBWaWV3U3RtdAorCQkJfCBD cmVhdGVTZXNzaW9uVmFyU3RtdAogCQk7CiAKIApAQCAtNTIwMiw2ICs1MjA1LDM0IEBAIGNyZWF0 ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAJCQkJfQogCQk7CiAKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorICoKKyAqCQlRVUVSWSA6CisgKgkJCQlDUkVBVEUgVkFSSUFCTEUgdmFybmFtZSBbQVNdIHR5 cGUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0NyZWF0ZVNlc3Npb25WYXJTdG10Ogor CQkJQ1JFQVRFIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29s bGF0ZV9jbGF1c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5v ZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52YXJpYWJsZSA9ICQzOworCQkJCQlu LT50eXBlTmFtZSA9ICQ1OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikg JDY7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBu OworCQkJCX0KKwkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQkJeworCQkJCQlDcmVh dGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKKwkJ CQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkODsKKwkJCQkJbi0+Y29s bENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0g dHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERBVEUgWyBUTyB2ZXJzaW9u IF0KQEAgLTcwMDYsNiArNzAzNyw3IEBAIG9iamVjdF90eXBlX2FueV9uYW1lOgogCQkJfCBURVhU X1AgU0VBUkNIIERJQ1RJT05BUlkJCQkJeyAkJCA9IE9CSkVDVF9UU0RJQ1RJT05BUlk7IH0KIAkJ CXwgVEVYVF9QIFNFQVJDSCBURU1QTEFURQkJCQl7ICQkID0gT0JKRUNUX1RTVEVNUExBVEU7IH0K IAkJCXwgVEVYVF9QIFNFQVJDSCBDT05GSUdVUkFUSU9OCQkJeyAkJCA9IE9CSkVDVF9UU0NPTkZJ R1VSQVRJT047IH0KKwkJCXwgVkFSSUFCTEUJCQkJCQkJCXsgJCQgPSBPQkpFQ1RfVkFSSUFCTEU7 IH0KIAkJOwogCiAvKgpAQCAtNzg4Miw2ICs3OTE0LDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6CiAJ CQkJCW4tPm9ianMgPSAkMjsKIAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgVkFSSUFCTEUgcXVh bGlmaWVkX25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0 ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCQkJCQluLT50YXJndHlwZSA9IEFDTF9U QVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQlu LT5vYmpzID0gJDI7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCQl8IEFMTCBUQUJMRVMgSU5fUCBT Q0hFTUEgbmFtZV9saXN0CiAJCQkJewogCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQg KikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CkBAIC03OTI3LDYgKzc5NjcsMTQgQEAgcHJp dmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQ1OwogCQkJCQkkJCA9IG47CiAJCQkJfQor CQkJfCBBTEwgVkFSSUFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJp dlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOwor CQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfQUxMX0lOX1NDSEVNQTsKKwkJCQkJbi0+b2Jq dHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQ1OworCQkJCQkkJCA9IG47 CisJCQkJfQogCQk7CiAKIApAQCAtODEyNCw2ICs4MTcyLDcgQEAgZGVmYWNsX3ByaXZpbGVnZV90 YXJnZXQ6CiAJCQl8IFNFUVVFTkNFUwkJeyAkJCA9IE9CSkVDVF9TRVFVRU5DRTsgfQogCQkJfCBU WVBFU19QCQl7ICQkID0gT0JKRUNUX1RZUEU7IH0KIAkJCXwgU0NIRU1BUwkJeyAkJCA9IE9CSkVD VF9TQ0hFTUE7IH0KKwkJCXwgVkFSSUFCTEVTCQl7ICQkID0gT0JKRUNUX1ZBUklBQkxFOyB9CiAJ CTsKIAogCkBAIC05OTA2LDYgKzk5NTUsMjQgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRF IGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPm1pc3Npbmdf b2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFS SUFCTEUgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4g PSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9WQVJJ QUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld25hbWUgPSAk NjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJ CQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RTIGFueV9uYW1lIFJFTkFNRSBUTyBu YW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJ CQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChO b2RlICopICQ1OworCQkJCQluLT5uZXduYW1lID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0 cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsKIAogb3B0X2NvbHVtbjogQ09M VU1OCkBAIC0xMDI2Nyw2ICsxMDMzNCwyNCBAQCBBbHRlck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJ CW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJ CXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgU0VUIFNDSEVNQSBuYW1lCisJCQkJeworCQkJCQlB bHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck9iamVjdFNjaGVtYVN0bXQp OworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3Qg PSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDY7CisJCQkJCW4tPm1pc3Npbmdf b2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJ QUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUKKwkJCQl7CisJCQkJCUFs dGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7 CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9 IChOb2RlICopICQ1OworCQkJCQluLT5uZXdzY2hlbWEgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19v ayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKQEAgLTEwNTQ4LDYgKzEwNjMzLDE0IEBAIEFsdGVyT3duZXJTdG10OiBBTFRF UiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKIAkJ CQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwg QUxURVIgVkFSSUFCTEUgYW55X25hbWUgT1dORVIgVE8gUm9sZVNwZWMKKwkJCQl7CisJCQkJCUFs dGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0bXQpOworCQkJCQluLT5vYmpl Y3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsK KwkJCQkJbi0+bmV3b3duZXIgPSAkNjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7 CiAKIApAQCAtMTc4NzgsNiArMTc5NzEsOCBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFZB TElEQVRFCiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxVRV9QCisJCQl8IFZBUklBQkxFCisJCQl8 IFZBUklBQkxFUwogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCkBAIC0x ODUzMyw2ICsxODYyOCw4IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVkFMVUVfUAogCQkJ fCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgorCQkJfCBWQVJJQUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJ CXwgVkFSSUFESUMKIAkJCXwgVkVSQk9TRQogCQkJfCBWRVJTSU9OX1AKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdXRpbGNtZC5jCmluZGV4IGQ1YzJiMmZmMGIwLi4yZmJhOTBjOTVhMCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0xMDcsNiArMTA3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlM aXN0CSAgICppbmRleGVzOwkJLyogQ1JFQVRFIElOREVYIGl0ZW1zICovCiAJTGlzdAkgICAqdHJp Z2dlcnM7CQkvKiBDUkVBVEUgVFJJR0dFUiBpdGVtcyAqLwogCUxpc3QJICAgKmdyYW50czsJCQkv KiBHUkFOVCBpdGVtcyAqLworCUxpc3QJICAgKnZhcmlhYmxlczsJCS8qIENSRUFURSBWQVJJQUJM RSBpdGVtcyAqLwogfSBDcmVhdGVTY2hlbWFTdG10Q29udGV4dDsKIAogCkBAIC0zOTY2LDYgKzM5 NjcsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0 cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAljeHQuaW5kZXhlcyA9IE5JTDsKIAljeHQudHJp Z2dlcnMgPSBOSUw7CiAJY3h0LmdyYW50cyA9IE5JTDsKKwljeHQudmFyaWFibGVzID0gTklMOwog CiAJLyoKIAkgKiBSdW4gdGhyb3VnaCBlYWNoIHNjaGVtYSBlbGVtZW50IGluIHRoZSBzY2hlbWEg ZWxlbWVudCBsaXN0LiBTZXBhcmF0ZQpAQCAtNDAzNCw2ICs0MDM2LDE1IEBAIHRyYW5zZm9ybUNy ZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hl bWFOYW1lKQogCQkJCWN4dC5ncmFudHMgPSBsYXBwZW5kKGN4dC5ncmFudHMsIGVsZW1lbnQpOwog CQkJCWJyZWFrOwogCisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJeworCQkJ CQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqZWxwID0gKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIGVs ZW1lbnQ7CisKKwkJCQkJc2V0U2NoZW1hTmFtZShjeHQuc2NoZW1hbmFtZSwgJmVscC0+dmFyaWFi bGUtPnNjaGVtYW5hbWUpOworCQkJCQljeHQudmFyaWFibGVzID0gbGFwcGVuZChjeHQudmFyaWFi bGVzLCBlbGVtZW50KTsKKwkJCQl9CisJCQkJYnJlYWs7CisKIAkJCWRlZmF1bHQ6CiAJCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkJIChpbnQpIG5vZGVU YWcoZWxlbWVudCkpOwpAQCAtNDA0Nyw2ICs0MDU4LDcgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1h U3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJ cmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuaW5kZXhlcyk7CiAJcmVzdWx0ID0gbGlz dF9jb25jYXQocmVzdWx0LCBjeHQudHJpZ2dlcnMpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJl c3VsdCwgY3h0LmdyYW50cyk7CisJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudmFy aWFibGVzKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDcwMmE2YzNh MGIwLi4zMTIyODdlY2E2ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMK KysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNs dWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19pbmhlcml0cy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgpAQCAtMTgyLDYgKzE4 Myw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkK IAkJY2FzZSBUX0NyZWF0ZVJhbmdlU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVJvbGVTdG10OgogCQlj YXNlIFRfQ3JlYXRlU2NoZW1hU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10Ogog CQljYXNlIFRfQ3JlYXRlU2VxU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVN0YXRzU3RtdDoKIAkJY2Fz ZSBUX0NyZWF0ZVN0bXQ6CkBAIC0xMzg2LDYgKzEzODgsMTAgQEAgUHJvY2Vzc1V0aWxpdHlTbG93 KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQl9CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9DcmVh dGVTZXNzaW9uVmFyU3RtdDoKKwkJCQlhZGRyZXNzID0gQ3JlYXRlVmFyaWFibGUocHN0YXRlLCAo Q3JlYXRlU2Vzc2lvblZhclN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJCS8q CiAJCQkJICogKioqKioqKioqKioqKiBvYmplY3QgY3JlYXRpb24gLyBkZXN0cnVjdGlvbiAqKioq KioqKioqKioqKgogCQkJCSAqLwpAQCAtMjMzOCw2ICsyMzQ0LDkgQEAgQWx0ZXJPYmplY3RUeXBl Q29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19F WFQ6CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfU1RBVElTVElDUzsKIAkJCWJyZWFrOworCQljYXNl IE9CSkVDVF9WQVJJQUJMRToKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9WQVJJQUJMRTsKKwkJCWJy ZWFrOwogCQlkZWZhdWx0OgogCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQlicmVhazsKQEAg LTI2NDYsNiArMjY1NSw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJ CWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQkJCXRhZyA9IENNRFRBR19EUk9QX1NUQVRJ U1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQl0YWcg PSBDTURUQUdfRFJPUF9WQVJJQUJMRTsKKwkJCQkJYnJlYWs7CiAJCQkJZGVmYXVsdDoKIAkJCQkJ dGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9CkBAIC0zMjIyLDYgKzMyMzQsMTAgQEAgQ3JlYXRl Q29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRf Q3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQl0YWcgPSBDTURUQUdfQ1JFQVRFX1ZBUklBQkxFOwor CQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coV0FSTklORywgInVucmVjb2duaXplZCBu b2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9h Y2wuYwppbmRleCBkN2IzOTE0MGIzZC4uNWY4MGFmNGY1ZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9hY2wuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKQEAg LTg1MCw2ICs4NTAsMTAgQEAgYWNsZGVmYXVsdChPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBvd25l cklkKQogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CiAJCQlvd25lcl9kZWZhdWx0 ID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVD VF9WQVJJQUJMRToKKwkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOworCQkJb3duZXJf ZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIG9i anR5cGUpOwogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CS8qIGtlZXAgY29tcGls ZXIgcXVpZXQgKi8KQEAgLTk0Nyw2ICs5NTEsOSBAQCBhY2xkZWZhdWx0X3NxbChQR19GVU5DVElP Tl9BUkdTKQogCQljYXNlICdUJzoKIAkJCW9ianR5cGUgPSBPQkpFQ1RfVFlQRTsKIAkJCWJyZWFr OworCQljYXNlICdWJzoKKwkJCW9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQlicmVhazsK IAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGUgYWJi cmV2aWF0aW9uOiAlYyIsIG9ianR5cGVjKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNo ZS5jCmluZGV4IDQ4YTI4MGQwODliLi4yZWVkOTQ4OWY5ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv bHN5c2NhY2hlLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNj cmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1 ZGUgInV0aWxzL2FycmF5LmgiCkBAIC0zNzE0LDMgKzM3MTUsMTE1IEBAIGdldF9zdWJzY3JpcHRp b25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAogCXJldHVybiBzdWJuYW1lOwog fQorCisvKgkJCQktLS0tLS0tLS0tIFBHX1ZBUklBQkxFIENBQ0hFIC0tLS0tLS0tLS0JCQkJICov CisKKy8qCisgKiBnZXRfdmFybmFtZV92YXJpZAorICoJCUdpdmVuIG5hbWUgYW5kIG5hbWVzcGFj ZSBvZiB2YXJpYWJsZSwgbG9vayB1cCB0aGUgT0lELgorICovCitPaWQKK2dldF92YXJuYW1lX3Zh cmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9pZCB2YXJuYW1lc3BhY2UpCit7CisJcmV0dXJuIEdl dFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lkLAorCQkJ CQkJICAgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1 bSh2YXJuYW1lc3BhY2UpKTsKK30KKworLyoKKyAqIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUK KyAqCQlSZXR1cm5zIGEgcGFsbG9jJ2QgY29weSBvZiB0aGUgbmFtZSBvZiBhIGdpdmVuIHNlc3Np b24gdmFyaWFibGUuCisgKi8KK2NoYXIgKgorZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQg dmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJ Y2hhcgkgICAqdmFybmFtZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwg T2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkp CisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxl ICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1Qo dHVwKTsKKworCXZhcm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOwor CisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFybmFtZTsKK30KKworLyoKKyAq IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZQorICoJCVJldHVybnMgdGhlIHBnX25hbWVz cGFjZSBPSUQgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwor T2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKQoreworCUhlYXBU dXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCU9pZAkJCXZhcm5hbWVzcGFj ZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1 bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1Is ICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZv cm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lc3BhY2Ug PSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJl dHVybiB2YXJuYW1lc3BhY2U7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBn aXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitPaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX3R5 cGUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJm b3JtOworCU9pZAkJCXZhcnR5cGU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVP SUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RS VUNUKHR1cCk7CisKKwl2YXJ0eXBlID0gdmFyZm9ybS0+dmFydHlwZTsKKworCVJlbGVhc2VTeXND YWNoZSh0dXApOworCisJcmV0dXJuIHZhcnR5cGU7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRoZSB0 eXBlLCB0eXBtb2QgYW5kIGNvbGxpZCBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAq Lwordm9pZAorZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKE9pZCB2YXJp ZCwgT2lkICp0eXBpZCwgaW50MzIgKnR5cG1vZCwKKwkJCQkJCQkJCQlPaWQgKmNvbGxpZCkKK3sK KwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCSp0eXBpZCA9IHZhcmZvcm0tPnZh cnR5cGU7CisJKnR5cG1vZCA9IHZhcmZvcm0tPnZhcnR5cG1vZDsKKwkqY29sbGlkID0gdmFyZm9y bS0+dmFyY29sbGF0aW9uOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7Cit9CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKaW5k ZXggYzMyM2I1YmQzZDkuLjQwNzlhZDYwM2FjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv Y29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCkBAIC0yNDcsNiArMjQ3LDkg QEAgZ2V0U2NoZW1hRGF0YShBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlc1B0cikKIAlwZ19s b2dfaW5mbygicmVhZGluZyBzdWJzY3JpcHRpb24gbWVtYmVyc2hpcCBvZiB0YWJsZXMiKTsKIAln ZXRTdWJzY3JpcHRpb25UYWJsZXMoZm91dCk7CiAKKwlwZ19sb2dfaW5mbygicmVhZGluZyB2YXJp YWJsZXMiKTsKKwlnZXRWYXJpYWJsZXMoZm91dCk7CisKIAlmcmVlKGluaGluZm8pOwkJCQkvKiBu b3QgbmVlZGVkIGFueSBsb25nZXIgKi8KIAogCSpudW1UYWJsZXNQdHIgPSBudW1UYWJsZXM7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMgYi9zcmMvYmluL3BnX2R1bXAv ZHVtcHV0aWxzLmMKaW5kZXggNTY0OTg1OWFhMWUuLjUwZGU1ZDBlYTI5IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGls cy5jCkBAIC01MTEsNiArNTExLDEyIEBAIGRvIHsgXAogCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VM RUNUIik7CiAJCUNPTlZFUlRfUFJJVigndycsICJVUERBVEUiKTsKIAl9CisJZWxzZSBpZiAoc3Ry Y21wKHR5cGUsICJWQVJJQUJMRSIpID09IDAgfHwKKwkJCSBzdHJjbXAodHlwZSwgIlZBUklBQkxF UyIpID09IDApCisJeworCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7CisJCUNPTlZFUlRf UFJJVigndycsICJVUERBVEUiKTsKKwl9CiAJZWxzZQogCQlhYm9ydCgpOwogCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw LmgKaW5kZXggZmJmNWYxYzUxNWUuLmU4MWNmZGUyNzRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC0x MzMsMTIgKzEzMywxNCBAQCB0eXBlZGVmIHN0cnVjdCBfcmVzdG9yZU9wdGlvbnMKIAlpbnQJCQlz ZWxGdW5jdGlvbjsKIAlpbnQJCQlzZWxUcmlnZ2VyOwogCWludAkJCXNlbFRhYmxlOworCWludAkJ CXNlbFZhcmlhYmxlOwogCVNpbXBsZVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKIAlTaW1wbGVTdHJp bmdMaXN0IGZ1bmN0aW9uTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFOYW1lczsKIAlT aW1wbGVTdHJpbmdMaXN0IHNjaGVtYUV4Y2x1ZGVOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRy aWdnZXJOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRhYmxlTmFtZXM7CisJU2ltcGxlU3RyaW5n TGlzdCB2YXJpYWJsZU5hbWVzOwogCiAJaW50CQkJdXNlREI7CiAJQ29ublBhcmFtcwljcGFyYW1z OwkJLyogcGFyYW1ldGVycyB0byB1c2UgaWYgdXNlREIgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBf YXJjaGl2ZXIuYwppbmRleCA4YzIwYzI2M2M0Yi4uNmYwMTJhMWI1NTggMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTMwOTgsNiArMzA5OCwxNCBAQCBfdG9jRW50cnlSZXF1 aXJlZChUb2NFbnRyeSAqdGUsIHRlU2VjdGlvbiBjdXJTZWN0aW9uLCBBcmNoaXZlSGFuZGxlICpB SCkKIAkJCQkJIXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnRyaWdnZXJOYW1lcywg dGUtPnRhZykpCiAJCQkJCXJldHVybiAwOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKHRlLT5k ZXNjLCAiVkFSSUFCTEUiKSA9PSAwKQorCQkJeworCQkJCWlmICghcm9wdC0+c2VsVmFyaWFibGUp CisJCQkJCXJldHVybiAwOworCQkJCWlmIChyb3B0LT52YXJpYWJsZU5hbWVzLmhlYWQgIT0gTlVM TCAmJgorCQkJCQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dmFyaWFibGVOYW1l cywgdGUtPnRhZykpCisJCQkJCXJldHVybiAwOworCQkJfQogCQkJZWxzZQogCQkJCXJldHVybiAw OwogCQl9CkBAIC0zNjQ3LDYgKzM2NTUsNyBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBC dWZmZXIgYnVmLCBjb25zdCBUb2NFbnRyeSAqdGUpCiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFS Q0ggRElDVElPTkFSWSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJURVhUIFNFQVJDSCBDT05G SUdVUkFUSU9OIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRZUEUiKSA9PSAwIHx8CisJCXN0 cmNtcCh0eXBlLCAiVkFSSUFCTEUiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVklFVyIpID09 IDAgfHwKIAkvKiBub24tc2NoZW1hLXNwZWNpZmllZCBvYmplY3RzICovCiAJCXN0cmNtcCh0eXBl LCAiREFUQUJBU0UiKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA3OTE5MDQ3MGY3MS4uMDk5MTM3 NzExZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMzYxLDYgKzM2MSw3IEBAIHN0YXRpYyB2b2lkIGR1bXBQ dWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8p Owogc3RhdGljIHZvaWQgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3Qg UHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vic2NyaXB0 aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pOwogc3Rh dGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YlJl bEluZm8gKnN1YnJpbmZvKTsKK3N0YXRpYyB2b2lkIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0 LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNl KEFyY2hpdmUgKmZvdXQpOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNlQ29uZmlnKEFyY2hpdmUg KkFILCBQUUV4cEJ1ZmZlciBvdXRidWYsCiAJCQkJCQkJICAgY29uc3QgY2hhciAqZGJuYW1lLCBP aWQgZGJvaWQpOwpAQCAtNTM1Myw2ICs1MzU0LDE5MCBAQCBnZXRfbmV4dF9wb3NzaWJsZV9mcmVl X3BnX3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsIFBRRXhwQnVmZmVyIHVwZ3JhZGVfcXVlcnkpCiAJ cmV0dXJuIG5leHRfcG9zc2libGVfZnJlZV9vaWQ7CiB9CiAKKy8qCisgKiBnZXRWYXJpYWJsZXMK KyAqCSAgZ2V0IGluZm9ybWF0aW9uIGFib3V0IHZhcmlhYmxlcworICovCit2b2lkCitnZXRWYXJp YWJsZXMoQXJjaGl2ZSAqZm91dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAg ICpyZXM7CisJVmFyaWFibGVJbmZvICp2YXJpbmZvOworCWludAkJCWlfdGFibGVvaWQ7CisJaW50 CQkJaV9vaWQ7CisJaW50CQkJaV92YXJuYW1lOworCWludAkJCWlfdmFybmFtZXNwYWNlOworCWlu dAkJCWlfdmFydHlwZTsKKwlpbnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJvd25lcjsK KwlpbnQJCQlpX3ZhcmNvbGxhdGlvbjsKKwlpbnQJCQlpX3ZhcmFjbDsKKwlpbnQJCQlpX2FjbGRl ZmF1bHQ7CisJaW50CQkJaSwKKwkJCQludHVwczsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9u IDwgMTgwMDAwKQorCQlyZXR1cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisK KwlyZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKKworCS8qIEdldCB0aGUgdmFyaWFibGVzIGluIGN1 cnJlbnQgZGF0YWJhc2UuICovCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCSAgIlNF TEVDVCB2LnRhYmxlb2lkLCB2Lm9pZCwgdi52YXJuYW1lLFxuIgorCQkJCQkgICIgICAgICAgdi52 YXJuYW1lc3BhY2UsIHYudmFydHlwZSxcbiIKKwkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cuZm9y bWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlwbmFtZSxcbiIKKwkJCQkJ ICAiICAgICAgIENBU0UgV0hFTiB2LnZhcmNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbiAiCisJ CQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIKKwkJCQkJICAiICAgICAg ICAgICAgRUxTRSAwXG4iCisJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgor CQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4iCisJCQkJCSAgIiAgICAgICBh Y2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVsdFxuIgorCQkJCQkgICJGUk9N IHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdlxuIgorCQkJCQkgICJKT0lOIHBnX2NhdGFsb2cucGdf dHlwZSB0ICIKKwkJCQkJICAiT04gKHYudmFydHlwZSA9IHQub2lkKSIpOworCisJcmVzID0gRXhl Y3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOworCisJbnR1 cHMgPSBQUW50dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1iZXIocmVzLCAidGFi bGVvaWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlpX3Zhcm5hbWUgPSBQ UWZudW1iZXIocmVzLCAidmFybmFtZSIpOworCWlfdmFybmFtZXNwYWNlID0gUFFmbnVtYmVyKHJl cywgInZhcm5hbWVzcGFjZSIpOworCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBl Iik7CisJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsKKwlpX3Zh cmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKKworCWlfdmFyb3du ZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKKwlpX3ZhcmFjbCA9IFBRZm51bWJlcihy ZXMsICJ2YXJhY2wiKTsKKwlpX2FjbGRlZmF1bHQgPSBQUWZudW1iZXIocmVzLCAiYWNsZGVmYXVs dCIpOworCisJdmFyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihWYXJpYWJsZUluZm8p KTsKKworCWZvciAoaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJVHlwZUluZm8gICAqdnR5 cGU7CisKKwkJdmFyaW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19WQVJJQUJMRTsKKwkJdmFyaW5m b1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KKwkJCWF0b29pZChQUWdldHZhbHVlKHJlcywgaSwg aV90YWJsZW9pZCkpOworCQl2YXJpbmZvW2ldLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJnZhcmluZm9baV0uZG9iaik7 CisJCXZhcmluZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3Zhcm5hbWUpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLm5hbWVzcGFjZSA9CisJCQlmaW5kTmFtZXNw YWNlKGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lc3BhY2UpKSk7CisKKwkJdmFy aW5mb1tpXS52YXJ0eXBlID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cGUpKTsK KwkJdmFyaW5mb1tpXS52YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3ZhcnR5cG5hbWUpKTsKKwkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9vaWQoUFFnZXR2 YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisKKwkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9 IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKKwkJdmFyaW5mb1tpXS5k YWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVs dCkpOworCQl2YXJpbmZvW2ldLmRhY2wucHJpdnR5cGUgPSAwOworCQl2YXJpbmZvW2ldLmRhY2wu aW5pdHByaXZzID0gTlVMTDsKKwkJdmFyaW5mb1tpXS5yb2xuYW1lID0gZ2V0Um9sZU5hbWUoUFFn ZXR2YWx1ZShyZXMsIGksIGlfdmFyb3duZXIpKTsKKworCQkvKiBEbyBub3QgdHJ5IHRvIGR1bXAg QUNMIGlmIG5vIEFDTCBleGlzdHMuICovCisJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX3Zh cmFjbCkpCisJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBEVU1QX0NPTVBPTkVOVF9B Q0w7CisKKwkJaWYgKHN0cmxlbih2YXJpbmZvW2ldLnJvbG5hbWUpID09IDApCisJCQlwZ19sb2df d2FybmluZygib3duZXIgb2YgdmFyaWFibGUgXCIlc1wiIGFwcGVhcnMgdG8gYmUgaW52YWxpZCIs CisJCQkJCQkgICB2YXJpbmZvW2ldLmRvYmoubmFtZSk7CisKKwkJLyogRGVjaWRlIHdoZXRoZXIg d2Ugd2FudCB0byBkdW1wIGl0ICovCisJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYodmFyaW5mb1tp XS5kb2JqKSwgZm91dCk7CisKKwkJdnR5cGUgPSBmaW5kVHlwZUJ5T2lkKHZhcmluZm9baV0udmFy dHlwZSk7CisJCWFkZE9iamVjdERlcGVuZGVuY3koJnZhcmluZm9baV0uZG9iaiwgdnR5cGUtPmRv YmouZHVtcElkKTsKKwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1 ZXJ5KTsKK30KKworLyoKKyAqIGR1bXBWYXJpYWJsZQorICoJICBkdW1wIHRoZSBkZWZpbml0aW9u IG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyB2b2lkCitkdW1wVmFy aWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQoreworCUR1 bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKworCVBRRXhwQnVmZmVyIGRlbHE7CisJUFFF eHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcXVhbHZhcm5hbWU7CisJY29uc3QgY2hhciAqdmFy dHlwbmFtZTsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisKKwkvKiBTa2lwIGlmIG5vdCB0byBiZSBk dW1wZWQgKi8KKwlpZiAoIXZhcmluZm8tPmRvYmouZHVtcCB8fCBkb3B0LT5kYXRhT25seSkKKwkJ cmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVlcnkgPSBjcmVhdGVQ UUV4cEJ1ZmZlcigpOworCisJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10UXVhbGlmaWVkRHVt cGFibGUodmFyaW5mbykpOworCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0eXBuYW1lOworCXZh cmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKworCWFwcGVuZFBRRXhwQnVmZmVy KGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKKwkJCQkJICBxdWFsdmFybmFtZSk7CisKKwlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIsCisJCQkJ CSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCisJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0 aW9uKSkKKwl7CisJCUNvbGxJbmZvICAgKmNvbGw7CisKKwkJY29sbCA9IGZpbmRDb2xsYXRpb25C eU9pZCh2YXJjb2xsYXRpb24pOworCQlpZiAoY29sbCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiIENPTExBVEUgJXMiLAorCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkp OworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiO1xuIik7CisKKwlpZiAodmFyaW5m by0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5JVElPTikKKwkJQXJjaGl2ZUVudHJ5 KGZvdXQsIHZhcmluZm8tPmRvYmouY2F0SWQsIHZhcmluZm8tPmRvYmouZHVtcElkLAorCQkJCQkg QVJDSElWRV9PUFRTKC50YWcgPSB2YXJpbmZvLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm5hbWVz cGFjZSA9IHZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm93 bmVyID0gdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiVkFSSUFC TEUiLAorCQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QUkVfREFUQSwKKwkJCQkJCQkJICAu Y3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5kcm9wU3RtdCA9IGRlbHEtPmRh dGEpKTsKKworCS8qIER1bXAgY29tbWVudCBpZiBhbnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5k dW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwgIlZBUklB QkxFIiwgcXVhbHZhcm5hbWUsCisJCQkJCU5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJCXZh cmluZm8tPmRvYmouY2F0SWQsIDAsIHZhcmluZm8tPmRvYmouZHVtcElkKTsKKworCS8qIER1bXAg QUNMIGlmIGFueSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9B Q0wpCisJeworCQljaGFyCSAgICpxdmFybmFtZSA9IHBnX3N0cmR1cChmbXRJZCh2YXJpbmZvLT5k b2JqLm5hbWUpKTsKKworCQlkdW1wQUNMKGZvdXQsIHZhcmluZm8tPmRvYmouZHVtcElkLCBJbnZh bGlkRHVtcElkLCAiVkFSSUFCTEUiLAorCQkJCXF2YXJuYW1lLCBOVUxMLAorCQkJCXZhcmluZm8t PmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIE5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJ JnZhcmluZm8tPmRhY2wpOworCisJCWZyZWUocXZhcm5hbWUpOworCX0KKworCWRlc3Ryb3lQUUV4 cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworCisJZnJlZShxdWFs dmFybmFtZSk7Cit9CisKIHN0YXRpYyB2b2lkCiBiaW5hcnlfdXBncmFkZV9zZXRfdHlwZV9vaWRz X2J5X3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsCiAJCQkJCQkJCQkJIFBRRXhwQnVmZmVyIHVwZ3Jh ZGVfYnVmZmVyLApAQCAtOTkxNSw3ICsxMDEwMCw4IEBAIGdldEFkZGl0aW9uYWxBQ0xzKEFyY2hp dmUgKmZvdXQpCiAJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fVEFCTEUgfHwKIAkJCQkJZG9iai0+ b2JqVHlwZSA9PSBET19QUk9DTEFORyB8fAogCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX0ZEVyB8 fAotCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX0ZPUkVJR05fU0VSVkVSKQorCQkJCQlkb2JqLT5v YmpUeXBlID09IERPX0ZPUkVJR05fU0VSVkVSIHx8CisJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9f VkFSSUFCTEUpCiAJCQkJewogCQkJCQlEdW1wYWJsZU9iamVjdFdpdGhBY2wgKmRhb2JqID0gKER1 bXBhYmxlT2JqZWN0V2l0aEFjbCAqKSBkb2JqOwogCkBAIC0xMDUxNCw2ICsxMDcwMCw5IEBAIGR1 bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJ Y2FzZSBET19TVUJTQ1JJUFRJT05fUkVMOgogCQkJZHVtcFN1YnNjcmlwdGlvblRhYmxlKGZvdXQs IChjb25zdCBTdWJSZWxJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9fVkFSSUFC TEU6CisJCQlkdW1wVmFyaWFibGUoZm91dCwgKFZhcmlhYmxlSW5mbyAqKSBkb2JqKTsKKwkJCWJy ZWFrOwogCQljYXNlIERPX1BSRV9EQVRBX0JPVU5EQVJZOgogCQljYXNlIERPX1BPU1RfREFUQV9C T1VOREFSWToKIAkJCS8qIG5ldmVyIGR1bXBlZCwgbm90aGluZyB0byBkbyAqLwpAQCAtMTQ5NjMs NiArMTUxNTIsOSBAQCBkdW1wRGVmYXVsdEFDTChBcmNoaXZlICpmb3V0LCBjb25zdCBEZWZhdWx0 QUNMSW5mbyAqZGFjbGluZm8pCiAJCWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToKIAkJCXR5cGUg PSAiU0NIRU1BUyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQl0 eXBlID0gIlZBUklBQkxFUyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIHNob3VsZG4n dCBnZXQgaGVyZSAqLwogCQkJcGdfZmF0YWwoInVucmVjb2duaXplZCBvYmplY3QgdHlwZSBpbiBk ZWZhdWx0IHByaXZpbGVnZXM6ICVkIiwKQEAgLTE4NTc0LDYgKzE4NzY2LDcgQEAgYWRkQm91bmRh cnlEZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQlj YXNlIERPX0NPTlZFUlNJT046CiAJCQljYXNlIERPX1RBQkxFOgogCQkJY2FzZSBET19UQUJMRV9B VFRBQ0g6CisJCQljYXNlIERPX1ZBUklBQkxFOgogCQkJY2FzZSBET19BVFRSREVGOgogCQkJY2Fz ZSBET19QUk9DTEFORzoKIAkJCWNhc2UgRE9fQ0FTVDoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDRiMmU1ODcw YTljLi4zNmE2OWEwODMyNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAor KysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC01Miw2ICs1Miw3IEBAIHR5cGVkZWYg ZW51bQogCURPX1RBQkxFLAogCURPX1RBQkxFX0FUVEFDSCwKIAlET19BVFRSREVGLAorCURPX1ZB UklBQkxFLAogCURPX0lOREVYLAogCURPX0lOREVYX0FUVEFDSCwKIAlET19TVEFUU0VYVCwKQEAg LTY5Miw2ICs2OTMsMjMgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YlJlbEluZm8KIAljaGFyCSAgICpz cnN1YmxzbjsKIH0gU3ViUmVsSW5mbzsKIAorLyoKKyAqIFRoZSBWYXJpYWJsZUluZm8gc3RydWN0 IGlzIHVzZWQgdG8gcmVwcmVzZW50IHNlc3Npb24gdmFyaWFibGVzCisgKi8KK3R5cGVkZWYgc3Ry dWN0IF9WYXJpYWJsZUluZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCUR1bXBhYmxlQWNs IGRhY2w7CisJT2lkCQkJdmFydHlwZTsKKwljaGFyCSAgICp2YXJ0eXBuYW1lOworCWNoYXIJICAg KnZhcmFjbDsKKwljaGFyCSAgICpydmFyYWNsOworCWNoYXIJICAgKmluaXR2YXJhY2w7CisJY2hh cgkgICAqaW5pdHJ2YXJhY2w7CisJT2lkCQkJdmFyY29sbGF0aW9uOworCWNvbnN0IGNoYXIgKnJv bG5hbWU7CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcgKi8KK30gVmFyaWFibGVJ bmZvOworCiAvKgogICoJY29tbW9uIHV0aWxpdHkgZnVuY3Rpb25zCiAgKi8KQEAgLTc3NSw1ICs3 OTMsNiBAQCBleHRlcm4gdm9pZCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gdGJsaW5mb1tdLAogCQkJCQkJCQkgaW50IG51bVRhYmxlcyk7CiBleHRlcm4gdm9p ZCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpOwogZXh0ZXJuIHZvaWQgZ2V0U3Vic2Ny aXB0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQpOworZXh0ZXJuIHZvaWQgZ2V0VmFyaWFibGVzKEFy Y2hpdmUgKmZvdXQpOwogCiAjZW5kaWYJCQkJCQkJLyogUEdfRFVNUF9IICovCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cF9zb3J0LmMKaW5kZXggNGNiNzU0Y2FhNTUuLmViYjliZjAzN2M5IDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBf c29ydC5jCkBAIC03OCw2ICs3OCw3IEBAIGVudW0gZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBS SU9fRFVNTVlfVFlQRSwKIAlQUklPX0FUVFJERUYsCiAJUFJJT19MQVJHRV9PQkpFQ1QsCisJUFJJ T19WQVJJQUJMRSwKIAlQUklPX1BSRV9EQVRBX0JPVU5EQVJZLAkJLyogYm91bmRhcnkhICovCiAJ UFJJT19UQUJMRV9EQVRBLAogCVBSSU9fU0VRVUVOQ0VfU0VULApAQCAtMTE5LDYgKzEyMCw3IEBA IHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJW0RPX1RBQkxFXSA9 IFBSSU9fVEFCTEUsCiAJW0RPX1RBQkxFX0FUVEFDSF0gPSBQUklPX1RBQkxFX0FUVEFDSCwKIAlb RE9fQVRUUkRFRl0gPSBQUklPX0FUVFJERUYsCisJW0RPX1ZBUklBQkxFXSA9IFBSSU9fVkFSSUFC TEUsCiAJW0RPX0lOREVYXSA9IFBSSU9fSU5ERVgsCiAJW0RPX0lOREVYX0FUVEFDSF0gPSBQUklP X0lOREVYX0FUVEFDSCwKIAlbRE9fU1RBVFNFWFRdID0gUFJJT19TVEFUU0VYVCwKQEAgLTE0OTAs NiArMTQ5MiwxMCBAQCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmos IGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiUE9TVC1EQVRBIEJPVU5EQVJZICAoSUQg JWQpIiwKIAkJCQkJIG9iai0+ZHVtcElkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBET19WQVJJQUJM RToKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJWQVJJQUJMRSAlcyAgKElEICVk IE9JRCAldSkiLAorCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQp OwogCX0KIAkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAlzbnByaW50ZihidWYsIGJ1ZnNpemUs CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDViY2MyMjQ0ZDU4Li4wZDM3NjVlZWQ0ZiAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTc4OSw2ICs3ODksMTYgQEAgbXkgJXRlc3Rz ID0gKAogCQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAxLCB9LAogCSAgfSwKIAorCSdBTFRFUiBE RUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBT RUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQycKKwkgID0+IHsKKwkJY3JlYXRlX29yZGVyID0+ IDU2LAorCQljcmVhdGVfc3FsICAgPT4gJ0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9M RSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVC TElDOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBG T1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMg VE8gUFVCTElDO1xFL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2Rh dGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwgfSwKKwkgIH0sCisKIAkn QUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlJyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9e CiAJCQlcUUFMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBXSVRIIFxFCkBAIC0xNjM4 LDYgKzE2NDgsMjMgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ09NTUVOVCBPTiBW QVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA3MSwK KwkJY3JlYXRlX3NxbCAgID0+ICdDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJs ZTEKKwkJCQkJICAgSVMgXCdjb21tZW50IG9uIHZhcmlhYmxlXCc7JywKKwkJcmVnZXhwID0+CisJ CSAgcXIvXlxRQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIElTICdjb21t ZW50IG9uIHZhcmlhYmxlJztcRS9tLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQkl ZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSAgICAgPT4gMSwKKwkJ fSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJ b25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDT1BZIHRlc3Rf dGFibGUnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDQsCiAJCWNyZWF0ZV9zcWwgPT4gJ0lOU0VS VCBJTlRPIGR1bXBfdGVzdC50ZXN0X3RhYmxlIChjb2wxKSAnCkBAIC0zODk2LDYgKzM5MjMsMjQg QEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFy aWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JF QVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAg ID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyOycsCisJ CXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUx IEFTIGludGVnZXI7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1w X3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVu bGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVt cF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92 aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRF IFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpAQCAtNDM1OCw2ICs0NDAzLDI1IEBAIG15ICV0ZXN0 cyA9ICgKIAkJbGlrZSA9PiB7fSwKIAl9LAogCisJJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBk dW1wX3Rlc3QudmFyaWFibGUxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA3MywKKwkJY3JlYXRl X3NxbCA9PgorCQkgICdHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxl MSBUTyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUdS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIFRPIHJlZ3Jlc3NfZHVt cF90ZXN0X3JvbGU7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJ JWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwK KwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJbm9f cHJpdnMgICAgICAgICAgICAgICAgID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAg PT4gMSwKKwkJfSwKKwl9LAorCiAJJ1JFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgbWF0dmlldycg PT4gewogCQlyZWdleHAgPT4gcXIvXlxRUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBkdW1wX3Rl c3QubWF0dmlldztcRS9tLAogCQlsaWtlID0+CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvY29t bWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwppbmRleCAxODA3ODFlY2QwNS4uMjZhOWEz ZmFjN2EgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKKysrIGIvc3JjL2Jpbi9w c3FsL2NvbW1hbmQuYwpAQCAtOTg2LDYgKzk4Niw5IEBAIGV4ZWNfY29tbWFuZF9kKFBzcWxTY2Fu U3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpjbWQpCiAJ CQkJCQlicmVhazsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlICdWJzoJCQkvKiBWYXJpYWJs ZXMgKi8KKwkJCQlzdWNjZXNzID0gbGlzdFZhcmlhYmxlcyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2Up OworCQkJCWJyZWFrOwogCQkJY2FzZSAneCc6CQkJLyogRXh0ZW5zaW9ucyAqLwogCQkJCWlmIChz aG93X3ZlcmJvc2UpCiAJCQkJCXN1Y2Nlc3MgPSBsaXN0RXh0ZW5zaW9uQ29udGVudHMocGF0dGVy bik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jCmluZGV4IDdjOWExZjIzNGM2Li5hZGY4M2VkMTk3MCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUx NDgsNiArNTE0OCwxMDIgQEAgZXJyb3JfcmV0dXJuOgogCXJldHVybiBmYWxzZTsKIH0KIAorLyoK KyAqIFxkVgorICoKKyAqIGxpc3RWYXJpYWJsZXMoKQorICovCitib29sCitsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEg YnVmOworCVBHcmVzdWx0ICAgKnJlczsKKwlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0 OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCisJaWYgKHBzZXQuc3ZlcnNp b24gPCAxODAwMDApCisJeworCQljaGFyCQlzdmVyYnVmWzMyXTsKKworCQlwZ19sb2dfZXJyb3Io IlRoZSBzZXJ2ZXIgKHZlcnNpb24gJXMpIGRvZXMgbm90IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJs ZXMuIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJlcihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwK KwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3ZlcmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7 CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1 ZiwKKwkJCQkJICAiU0VMRUNUIG4ubnNwbmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgdi52 YXJuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYu dmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICAoU0VMRUNUIGMu Y29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5 cGUgYnRcbiIKKwkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNvbGxhdGlvbiBBTkQgYnQu b2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50eXBjb2xsYXRpb24pIGFz IFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93 bmVyKSBhcyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKKwkJ CQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiT3du ZXIiKSk7CisKKwlpZiAodmVyYm9zZSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICIsXG4gICIpOworCQlwcmludEFDTENvbHVtbigmYnVmLCAidi52YXJhY2wiKTsKKwkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIixcbiAgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRp b24odi5vaWQsICdwZ192YXJpYWJsZScpIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdldHRleHRfbm9v cCgiRGVzY3JpcHRpb24iKSk7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKKwkJ CQkJCSAiXG5GUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIKKwkJCQkJCSAiXG4gICAgIExF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0gdi52YXJuYW1lc3Bh Y2UiKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbldIRVJFIHRydWVcbiIpOwor CWlmICghcGF0dGVybikKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiAgICAgIEFORCBu Lm5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnXG4iCisJCQkJCQkJICIgICAgICBBTkQgbi5uc3BuYW1l IDw+ICdpbmZvcm1hdGlvbl9zY2hlbWEnXG4iKTsKKworCWlmICghdmFsaWRhdGVTUUxOYW1lUGF0 dGVybigmYnVmLCBwYXR0ZXJuLCB0cnVlLCBmYWxzZSwKKwkJCQkJCQkJIm4ubnNwbmFtZSIsICJ2 LnZhcm5hbWUiLCBOVUxMLAorCQkJCQkJCQkicGdfY2F0YWxvZy5wZ192YXJpYWJsZV9pc192aXNp YmxlKHYub2lkKSIsCisJCQkJCQkJCU5VTEwsIDMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMSwyOyIpOworCisJcmVzID0gUFNRTGV4 ZWMoYnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0 dXJuIGZhbHNlOworCisJLyoKKwkgKiBNb3N0IGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgYXJlIGNv bnRlbnQgdG8gcHJpbnQgYW4gZW1wdHkgdGFibGUgd2hlbgorCSAqIHRoZXJlIGFyZSBubyBtYXRj aGluZyBvYmplY3RzLiAgV2UgaW50ZW50aW9uYWxseSBkZXZpYXRlIGZyb20gdGhhdAorCSAqIGhl cmUsIGJ1dCBvbmx5IGluICFxdWlldCBtb2RlLCBmb3IgaGlzdG9yaWNhbCByZWFzb25zLgorCSAq LworCWlmIChQUW50dXBsZXMocmVzKSA9PSAwICYmICFwc2V0LnF1aWV0KQorCXsKKwkJaWYgKHBh dHRlcm4pCisJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc2Vzc2lvbiB2YXJpYWJs ZSBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJCSBwYXR0ZXJuKTsKKwkJZWxzZQorCQkJcGdfbG9nX2Vy cm9yKCJEaWQgbm90IGZpbmQgYW55IHNlc3Npb24gdmFyaWFibGVzLiIpOworCX0KKwllbHNlCisJ eworCQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCQlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2Yg dmFyaWFibGVzIik7CisJCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOworCQlteW9wdC50 cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOworCQlteW9wdC5uX3RyYW5zbGF0 ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJCXByaW50UXVlcnko cmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKwl9CisK KwlQUWNsZWFyKHJlcyk7CisJcmV0dXJuIHRydWU7Cit9CiAKIC8qCiAgKiBcZEZwCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaCBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCmlu ZGV4IDI3M2Y5NzQ1MzhlLi40ZTE1YTE4MGVhNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmgKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKQEAgLTE0OSw0ICsxNDksNyBA QCBleHRlcm4gYm9vbCBsaXN0T3BGYW1pbHlGdW5jdGlvbnMoY29uc3QgY2hhciAqYWNjZXNzX21l dGhvZF9wYXR0ZXJuLAogLyogXGRsIG9yIFxsb19saXN0ICovCiBleHRlcm4gYm9vbCBsaXN0TGFy Z2VPYmplY3RzKGJvb2wgdmVyYm9zZSk7CiAKKy8qIFxkViAqLworZXh0ZXJuIGJvb2wgbGlzdFZh cmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZhcmJvc2UpOworCiAjZW5kaWYJCQkJ CQkJLyogREVTQ1JJQkVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2hlbHAuYyBiL3Ny Yy9iaW4vcHNxbC9oZWxwLmMKaW5kZXggNmY1OGExMTA3NDguLmJkYzMyN2ZmZTMwIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisrKyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKQEAgLTI2 NSw2ICsyNjUsNyBAQCBzbGFzaFVzYWdlKHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikKIAlIRUxQ MCgiICBcXGRUW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IGRhdGEgdHlwZXNcbiIpOwogCUhFTFAw KCIgIFxcZHVbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qgcm9sZXNcbiIpOwogCUhFTFAwKCIgIFxc ZHZbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qgdmlld3NcbiIpOworCUhFTFAwKCIgIFxcZFYgICAg IFtQQVRURVJOXSAgICAgIGxpc3Qgc2Vzc2lvbiB2YXJpYWJsZXNcbiIpOwogCUhFTFAwKCIgIFxc ZHhbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgZXh0ZW5zaW9uc1xuIik7CiAJSEVMUDAoIiAgXFxk WCAgICAgW1BBVFRFUk5dICAgICAgbGlzdCBleHRlbmRlZCBzdGF0aXN0aWNzXG4iKTsKIAlIRUxQ MCgiICBcXGR5WytdICBbUEFUVEVSTl0gICAgICBsaXN0IGV2ZW50IHRyaWdnZXJzXG4iKTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYwppbmRleCAwMjQ0Njk0NzRkYS4uN2NjMWZjNTcxODggMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmMKQEAgLTk2Myw2ICs5NjMsMTMgQEAgc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zv cl90cmlnZ2VyX29mX3RhYmxlID0gewogCS5yZWZuYW1lc3BhY2UgPSAiYzEucmVsbmFtZXNwYWNl IiwKIH07CiAKK3N0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl92YXJp YWJsZXMgPSB7CisJLm1pbl9zZXJ2ZXJfdmVyc2lvbiA9IDE4MDAwMCwKKwkuY2F0bmFtZSA9ICJw Z19jYXRhbG9nLnBnX3ZhcmlhYmxlIHYiLAorCS52aXNjb25kaXRpb24gPSAicGdfY2F0YWxvZy5w Z192YXJpYWJsZV9pc192aXNpYmxlKHYub2lkKSIsCisJLm5hbWVzcGFjZSA9ICJ2LnZhcm5hbWVz cGFjZSIsCisJLnJlc3VsdCA9ICJ2LnZhcm5hbWUiLAorfTsKIAogLyoKICAqIFF1ZXJpZXMgdG8g Z2V0IGxpc3RzIG9mIG5hbWVzIG9mIHZhcmlvdXMga2luZHMgb2YgdGhpbmdzLCBwb3NzaWJseQpA QCAtMTI4Myw2ICsxMjkwLDcgQEAgc3RhdGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0 ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJCQkJICogVEFCTEUgLi4uICovCiAJeyJV U0VSIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMsIE5VTEwsIE5VTEwsIEtleXdvcmRzX2Zvcl91 c2VyX3RoaW5nfSwKIAl7IlVTRVIgTUFQUElORyBGT1IiLCBOVUxMLCBOVUxMLCBOVUxMfSwKKwl7 IlZBUklBQkxFIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlc30sCiAJ eyJWSUVXIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzfSwKIAl7TlVMTH0J CQkJCQkvKiBlbmQgb2YgbGlzdCAqLwogfTsKQEAgLTE3MjIsNyArMTczMCw3IEBAIHBzcWxfY29t cGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCSJcXGRGIiwg IlxcZEZkIiwgIlxcZEZwIiwgIlxcZEZ0IiwgIlxcZGciLCAiXFxkaSIsICJcXGRsIiwgIlxcZEwi LAogCQkiXFxkbSIsICJcXGRuIiwgIlxcZG8iLCAiXFxkTyIsICJcXGRwIiwgIlxcZFAiLCAiXFxk UGkiLCAiXFxkUHQiLAogCQkiXFxkcmRzIiwgIlxcZHJnIiwgIlxcZFJzIiwgIlxcZFJwIiwgIlxc ZHMiLAotCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYiLCAiXFxkdSIsICJcXGR4IiwgIlxcZFgiLCAi XFxkeSIsCisJCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxkWCIs ICJcXGR5IiwgIlxcZFYiLAogCQkiXFxlY2hvIiwgIlxcZWRpdCIsICJcXGVmIiwgIlxcZWxpZiIs ICJcXGVsc2UiLCAiXFxlbmNvZGluZyIsCiAJCSJcXGVuZGlmIiwgIlxcZXJydmVyYm9zZSIsICJc XGV2IiwKIAkJIlxcZiIsCkBAIC0yMjI0LDYgKzIyMzIsOSBAQCBwc3FsX2NvbXBsZXRpb24oY29u c3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJCQkJCQkJCSAgIkFMTCIpOwog CWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlNZU1RFTSIsICJTRVQiLCBNYXRjaEFueSkpCiAJ CUNPTVBMRVRFX1dJVEgoIlRPIik7CisJLyogQUxURVIgVkFSSUFCTEUgPG5hbWU+ICovCisJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRF X1dJVEgoIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1BIik7CiAJLyogQUxURVIg VklFVyA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJWSUVXIiwgTWF0Y2hB bnkpKQogCQlDT01QTEVURV9XSVRIKCJBTFRFUiBDT0xVTU4iLCAiT1dORVIgVE8iLCAiUkVOQU1F IiwgIlJFU0VUIiwgIlNFVCIpOwpAQCAtMjgwNCw3ICsyODE1LDcgQEAgcHNxbF9jb21wbGV0aW9u KGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCQkJICAiUk9VVElORSIs ICJSVUxFIiwgIlNDSEVNQSIsICJTRVFVRU5DRSIsICJTRVJWRVIiLAogCQkJCQkgICJTVEFUSVNU SUNTIiwgIlNVQlNDUklQVElPTiIsICJUQUJMRSIsCiAJCQkJCSAgIlRBQkxFU1BBQ0UiLCAiVEVY VCBTRUFSQ0giLCAiVFJBTlNGT1JNIEZPUiIsCi0JCQkJCSAgIlRSSUdHRVIiLCAiVFlQRSIsICJW SUVXIik7CisJCQkJCSAgIlRSSUdHRVIiLCAiVFlQRSIsICJWQVJJQUJMRSIsICJWSUVXIik7CiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJBQ0NFU1MiLCAiTUVUSE9EIikpCiAJ CUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfYWNjZXNzX21ldGhvZHMpOwog CWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiQ09OU1RSQUlOVCIpKQpAQCAtMzU4 MCw2ICszNTkxLDEzIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3Rh cnQsIGludCBlbmQpCiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0Y2hBbnlFeGNlcHQo IiopIikpKQogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyogQ1JFQVRFIFZBUklB QkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNo ZXMgKi8KKwkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KKwll bHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlD T01QTEVURV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1h dGNoQW55LCAiQVMiKSkKKwkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRo IEFTIHR5cGVzICovCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0 X29mX2RhdGF0eXBlcyk7CiAKIC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBD UkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUg WyBPUiBSRVBMQUNFIF0gVklFVyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICovCkBAIC0zODQzLDYg KzM4NjEsMTIgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwg aW50IGVuZCkKIAllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlRSQU5TRk9STSIsICJGT1IiLCBN YXRjaEFueSwgIkxBTkdVQUdFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJDQVNDQURF IiwgIlJFU1RSSUNUIik7CiAKKwkvKiBEUk9QIFZBUklBQkxFICovCisJZWxzZSBpZiAoTWF0Y2hl cygiRFJPUCIsICJWQVJJQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVkFS SUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAiUkVTVFJJQ1Qi KTsKKwogLyogRVhFQ1VURSAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkVYRUNVVEUiKSkKIAkJQ09N UExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9wcmVwYXJlZF9zdGF0ZW1lbnRzKTsK QEAgLTQwNDYsNyArNDA3MCw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBp bnQgc3RhcnQsIGludCBlbmQpCiAJCSAqIG9iamVjdHMgc3VwcG9ydGVkLgogCQkgKi8KIAkJaWYg KEhlYWRNYXRjaGVzKCJBTFRFUiIsICJERUZBVUxUIiwgIlBSSVZJTEVHRVMiKSkKLQkJCUNPTVBM RVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NFRFVSRVMi LCAiUk9VVElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIpOworCQkJQ09NUExFVEVfV0lUSCgiVEFC TEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIs ICJUWVBFUyIsICJTQ0hFTUFTIiwgIlZBUklBQkxFUyIpOwogCQllbHNlCiAJCQlDT01QTEVURV9X SVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX2dyYW50YWJsZXMsCiAJCQkJ CQkJCQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIsCkBAIC00MDY4LDcgKzQwOTIsOCBAQCBw c3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJ CQkJCQkJCQkiU0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAogCQkJCQkJCQkJCQkiVEFC TEVTUEFDRSIsCi0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJCSJUWVBFIiwKKwkJCQkJ CQkJCQkJIlZBUklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZP S0UiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIs ICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJBTEwiKSkKQEAgLTQw NzYsNyArNDEwMSw4IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3Rh cnQsIGludCBlbmQpCiAJCQkJCSAgIlBST0NFRFVSRVMgSU4gU0NIRU1BIiwKIAkJCQkJICAiUk9V VElORVMgSU4gU0NIRU1BIiwKIAkJCQkJICAiU0VRVUVOQ0VTIElOIFNDSEVNQSIsCi0JCQkJCSAg IlRBQkxFUyBJTiBTQ0hFTUEiKTsKKwkJCQkJICAiVEFCTEVTIElOIFNDSEVNQSIsCisJCQkJCSAg IlZBUklBQkxFUyBJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JBTlR8UkVW T0tFIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikgfHwKIAkJCSBUYWlsTWF0Y2hlcygiUkVW T0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRjaEFueSwgIk9OIiwgIkZPUkVJR04i KSkKIAkJQ09NUExFVEVfV0lUSCgiREFUQSBXUkFQUEVSIiwgIlNFUlZFUiIpOwpAQCAtNDExMiw2 ICs0MTM4LDggQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwg aW50IGVuZCkKIAkJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVz cGFjZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVFlQRSIpKQogCQkJQ09NUExFVEVfV0lU SF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKKwkJZWxzZSBpZiAo VGFpbE1hdGNoZXMoIlZBUklBQkxFIikpCisJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShR dWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JB TlQiLCBNYXRjaEFueSwgTWF0Y2hBbnksIE1hdGNoQW55KSkKIAkJCUNPTVBMRVRFX1dJVEgoIlRP Iik7CiAJCWVsc2UKQEAgLTQ0MTUsNyArNDQ0Myw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBj aGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAKIC8qIFBSRVBBUkUgeHggQVMgKi8KIAll bHNlIGlmIChNYXRjaGVzKCJQUkVQQVJFIiwgTWF0Y2hBbnksICJBUyIpKQotCQlDT01QTEVURV9X SVRIKCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRPIiwgIkRFTEVURSBGUk9NIik7CisJ CUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRF IEZST00iLCAiTEVUIik7CiAKIC8qCiAgKiBQUkVQQVJFIFRSQU5TQUNUSU9OIGlzIG1pc3Npbmcg b24gcHVycG9zZS4gSXQncyBpbnRlbmRlZCBmb3IgdHJhbnNhY3Rpb24KQEAgLTQ4ODMsNiArNDkx MSw4IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBl bmQpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMpOwogCWVs c2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHYqIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FV RVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzKTsKKwllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJc XGRWKiIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92 YXJpYWJsZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHgqIikpCiAJCUNPTVBMRVRF X1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZXh0ZW5zaW9ucyk7CiAJZWxzZSBpZiAoVGFp bE1hdGNoZXNDUygiXFxkWCoiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFr ZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmluZGV4IDE2N2Y5MWE2ZTNmLi41 MDdmMzgwODIxOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC04MSw3ICs4MSw4IEBAIENBVEFMT0df SEVBREVSUyA6PSBcCiAJcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAogCXBnX3B1YmxpY2F0 aW9uX3JlbC5oIFwKIAlwZ19zdWJzY3JpcHRpb24uaCBcCi0JcGdfc3Vic2NyaXB0aW9uX3JlbC5o CisJcGdfc3Vic2NyaXB0aW9uX3JlbC5oIFwKKwlwZ192YXJpYWJsZS5oCiAKIEdFTkVSQVRFRF9I RUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkKIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24u YnVpbGQKaW5kZXggZjcwZDFkYWJhNTIuLjZlZWM3OWQyZWVjIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24u YnVpbGQKQEAgLTY5LDYgKzY5LDcgQEAgY2F0YWxvZ19oZWFkZXJzID0gWwogICAncGdfcHVibGlj YXRpb25fcmVsLmgnLAogICAncGdfc3Vic2NyaXB0aW9uLmgnLAogICAncGdfc3Vic2NyaXB0aW9u X3JlbC5oJywKKyAgJ3BnX3ZhcmlhYmxlLmgnLAogXQogCiAjIFRoZSAuZGF0IGZpbGVzIHdlIG5l ZWQgY2FuIGp1c3QgYmUgbGlzdGVkIGFscGhhYmV0aWNhbGx5LgpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNl LmgKaW5kZXggOGQ0MzRkNDhkNTcuLjE4ZWE2YWM4M2E1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNl LmgKQEAgLTk3LDYgKzk3LDggQEAgZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlkKGNvbnN0IGNo YXIgKnR5cG5hbWUpOwogZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlkRXh0ZW5kZWQoY29uc3Qg Y2hhciAqdHlwbmFtZSwgYm9vbCB0ZW1wX29rKTsKIGV4dGVybiBib29sIFR5cGVJc1Zpc2libGUo T2lkIHR5cGlkKTsKIAorZXh0ZXJuIGJvb2wgVmFyaWFibGVJc1Zpc2libGUoT2lkIHZhcmlkKTsK KwogZXh0ZXJuIEZ1bmNDYW5kaWRhdGVMaXN0IEZ1bmNuYW1lR2V0Q2FuZGlkYXRlcyhMaXN0ICpu YW1lcywKIAkJCQkJCQkJCQkJICAgaW50IG5hcmdzLCBMaXN0ICphcmduYW1lcywKIAkJCQkJCQkJ CQkJICAgYm9vbCBleHBhbmRfdmFyaWFkaWMsCkBAIC0xNjksNiArMTcxLDggQEAgZXh0ZXJuIFNl YXJjaFBhdGhNYXRjaGVyICpHZXRTZWFyY2hQYXRoTWF0Y2hlcihNZW1vcnlDb250ZXh0IGNvbnRl eHQpOwogZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpDb3B5U2VhcmNoUGF0aE1hdGNoZXIoU2Vh cmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogZXh0ZXJuIGJvb2wgU2VhcmNoUGF0aE1hdGNoZXNDdXJy ZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogCitleHRlcm4gT2lkCUxv b2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZhcm5hbWUsIGJv b2wgbWlzc2luZ19vayk7CisKIGV4dGVybiBPaWQJZ2V0X2NvbGxhdGlvbl9vaWQoTGlzdCAqY29s bG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9jb252ZXJzaW9uX29pZChM aXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlGaW5kRGVmYXVsdENv bnZlcnNpb25Qcm9jKGludDMyIGZvcl9lbmNvZGluZywgaW50MzIgdG9fZW5jb2RpbmcpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCmluZGV4IGQyNzJjZGYwOGI0Li41MjlkNTNjNmJi NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaApAQCAtNjgsNiArNjgsNyBAQCBN QUtFX1NZU0NBQ0hFKERFRkFDTFJPTEVOU1BPQkosIHBnX2RlZmF1bHRfYWNsX3JvbGVfbnNwX29i al9pbmRleCwgOCk7CiAjZGVmaW5lIERFRkFDTE9CSl9GVU5DVElPTgkJJ2YnIC8qIGZ1bmN0aW9u ICovCiAjZGVmaW5lIERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8qIHR5cGUgKi8KICNkZWZpbmUgREVG QUNMT0JKX05BTUVTUEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAqLworI2RlZmluZSBERUZBQ0xPQkpf VkFSSUFCTEUJCSdWJyAvKiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NFX1RP X0NMSUVOVF9DT0RFICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDU0YjUwZWU1ZDYx Li4yZWEwOTVmNmJiMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC02NDc4LDYgKzY0Nzgs OSBAQAogICBwcm9uYW1lID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScsIHByb2Nvc3QgPT4g JzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJn dHlwZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0s Cit7IG9pZCA9PiAnOTIyMScsIGRlc2NyID0+ICdpcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUg aW4gc2VhcmNoIHBhdGg/JywKKyAgcHJvbmFtZSA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScs IHByb2Nvc3QgPT4gJzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdi b29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCcsIHByb3NyYyA9PiAncGdfdmFyaWFibGVfaXNfdmlz aWJsZScgfSwKIAogeyBvaWQgPT4gJzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJyZW50 IHNlc3Npb25cJ3MgdGVtcCBzY2hlbWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3BnX215X3Rl bXBfc2NoZW1hJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjM4MTBlMDQwZjI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z192YXJpYWJsZS5oCkBAIC0wLDAgKzEsODEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq IHBnX3ZhcmlhYmxlLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzeXN0 ZW0gY2F0YWxvZyAocGdfdmFyaWFibGVzKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD YWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisgKgor ICogTk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQg ZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKyNpZm5kZWYgUEdfVkFSSUFCTEVfSAorI2RlZmluZSBQR19WQVJJQUJMRV9ICisKKyNp bmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVz cy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGVfZC5oIgorI2luY2x1ZGUgInV0aWxz L2FjbC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfdmFyaWFibGUgZGVmaW5pdGlv bi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ192 YXJpYWJsZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX3ZhcmlhYmxlLDky MjIsVmFyaWFibGVSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KKworCS8q IE9JRCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlPaWQJCQl2 YXJ0eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CisKKwkvKiB2YXJpYWJsZSBuYW1lICovCisJTmFt ZURhdGEJdmFybmFtZTsKKworCS8qIE9JRCBvZiBuYW1lc3BhY2UgY29udGFpbmluZyB2YXJpYWJs ZSBjbGFzcyAqLworCU9pZAkJCXZhcm5hbWVzcGFjZSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7 CisKKwkvKiB2YXJpYWJsZSBvd25lciAqLworCU9pZAkJCXZhcm93bmVyIEJLSV9MT09LVVAocGdf YXV0aGlkKTsKKworCS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCisJaW50MzIJCXZh cnR5cG1vZCBCS0lfREVGQVVMVCgtMSk7CisKKwkvKiB2YXJpYWJsZSBjb2xsYXRpb24gKi8KKwlP aWQJCQl2YXJjb2xsYXRpb24gQktJX0RFRkFVTFQoMCkgQktJX0xPT0tVUF9PUFQocGdfY29sbGF0 aW9uKTsKKworCisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmll bGRzIHN0YXJ0IGhlcmUgKi8KKworCS8qIGFjY2VzcyBwZXJtaXNzaW9ucyAqLworCWFjbGl0ZW0J CXZhcmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8pOworCisjZW5kaWYKK30gRm9ybURhdGFfcGdf dmFyaWFibGU7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3ZhcmlhYmxlIGNv cnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9m IHRoZSBwZ192YXJpYWJsZSByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlw ZWRlZiBGb3JtRGF0YV9wZ192YXJpYWJsZSAqRm9ybV9wZ192YXJpYWJsZTsKKworREVDTEFSRV9U T0FTVChwZ192YXJpYWJsZSwgOTIyMywgOTIyNCk7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BL RVkocGdfdmFyaWFibGVfb2lkX2luZGV4LCA5MjI1LCBWYXJpYWJsZU9pZEluZGV4SWQsIHBnX3Zh cmlhYmxlLCBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfdmFy aWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDkyMjYsIFZhcmlhYmxlTmFtZU5zcEluZGV4SWQsIHBn X3ZhcmlhYmxlLCBidHJlZSh2YXJuYW1lIG5hbWVfb3BzLCB2YXJuYW1lc3BhY2Ugb2lkX29wcykp OworCitleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3Rh dGUsCisJCQkJCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CitleHRlcm4gdm9pZCBE cm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCk7CisKK01BS0VfU1lTQ0FDSEUoVkFSSUFCTEVOQU1F TlNQLCBwZ192YXJpYWJsZV92YXJuYW1lX25zcF9pbmRleCwgOCk7CitNQUtFX1NZU0NBQ0hFKFZB UklBQkxFT0lELCBwZ192YXJpYWJsZV9vaWRfaW5kZXgsIDgpOworCisjZW5kaWYJCQkJCQkJLyog UEdfVkFSSUFCTEVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDg1YTYyYjUzOGU1Li44 MGVhNTkyOGVlZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjMwOSw2ICsyMzA5LDcgQEAg dHlwZWRlZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfVFNURU1QTEFURSwKIAlPQkpFQ1RfVFlQ RSwKIAlPQkpFQ1RfVVNFUl9NQVBQSU5HLAorCU9CSkVDVF9WQVJJQUJMRSwKIAlPQkpFQ1RfVklF VywKIH0gT2JqZWN0VHlwZTsKIApAQCAtMzQyNSw2ICszNDI2LDIxIEBAIHR5cGVkZWYgc3RydWN0 IEFsdGVyU3RhdHNTdG10CiAJYm9vbAkJbWlzc2luZ19vazsJCS8qIHNraXAgZXJyb3IgaWYgc3Rh dGlzdGljcyBvYmplY3QgaXMgbWlzc2luZyAqLwogfSBBbHRlclN0YXRzU3RtdDsKIAorCisvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJe0NyZWF0ZXxBbHRlcn0gVkFSSUFCTEUgU3RhdGVt ZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IENyZWF0 ZVNlc3Npb25WYXJTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICp2YXJpYWJs ZTsJCS8qIHRoZSB2YXJpYWJsZSB0byBjcmVhdGUgKi8KKwlUeXBlTmFtZSAgICp0eXBlTmFtZTsJ CS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCisJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsK Kwlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3Rz ICovCit9IENyZWF0ZVNlc3Npb25WYXJTdG10OworCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAqCQlDcmVhdGUgRnVuY3Rpb24gU3RhdGVtZW50CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggZjdmZTgzNGNmNDUuLmM4ODRjZDVjNDY3IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oCkBAIC00ODYsNiArNDg2LDggQEAgUEdfS0VZV09SRCgidmFsaWRhdG9yIiwgVkFM SURBVE9SLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1 ZSIsIFZBTFVFX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InZhbHVlcyIsIFZBTFVFUywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoInZhcmNoYXIiLCBWQVJDSEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdf S0VZV09SRCgidmFyaWFibGUiLCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQorUEdfS0VZV09SRCgidmFyaWFibGVzIiwgVkFSSUFCTEVTLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVO UkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9T RSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgK aW5kZXggN2ZkY2VjNmRkOTMuLjk0NjVkZjdiMmZmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90 Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAt NjgsNiArNjgsNyBAQCBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSQU5TRk9STSwgIkFMVEVSIFRS QU5TRk9STSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJJ R0dFUiwgIkFMVEVSIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0FMVEVSX1RZUEUsICJBTFRFUiBUWVBFIiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0FMVEVSX1VTRVJfTUFQUElORywgIkFMVEVSIFVTRVIgTUFQUElORyIsIHRydWUs IGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxURVJfVkFSSUFCTEUsICJBTFRFUiBW QVJJQUJMRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVklF VywgIkFMVEVSIFZJRVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FO QUxZWkUsICJBTkFMWVpFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf QkVHSU4sICJCRUdJTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xMjMsNiArMTI0LDcgQEAg UEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFJBTlNGT1JNLCAiQ1JFQVRFIFRSQU5TRk9STSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RSSUdHRVIsICJDUkVB VEUgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRF X1RZUEUsICJDUkVBVEUgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfQ1JFQVRFX1VTRVJfTUFQUElORywgIkNSRUFURSBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WQVJJQUJMRSwgIkNSRUFURSBWQVJJ QUJMRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZJRVcs ICJDUkVBVEUgVklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVB TExPQ0FURSwgIkRFQUxMT0NBVEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19ERUFMTE9DQVRFX0FMTCwgIkRFQUxMT0NBVEUgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxz ZSkKQEAgLTE3NSw2ICsxNzcsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJBTlNGT1JNLCAi RFJPUCBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RS T1BfVFJJR0dFUiwgIkRST1AgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfRFJPUF9UWVBFLCAiRFJPUCBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdf Q01EVEFHKENNRFRBR19EUk9QX1VTRVJfTUFQUElORywgIkRST1AgVVNFUiBNQVBQSU5HIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZBUklBQkxFLCAiRFJPUCBW QVJJQUJMRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9WSUVX LCAiRFJPUCBWSUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWEVD VVRFLCAiRVhFQ1VURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VY UExBSU4sICJFWFBMQUlOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3V0aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggNzMxZDg0 YjJhOTMuLjk4YWFiOTgyMjllIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAor KysgYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHR5cGVkZWYg c3RydWN0IEFycmF5VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1NDSEVNQQkJKEFD TF9VU0FHRXxBQ0xfQ1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UQUJMRVNQQUNFCShB Q0xfQ1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UWVBFCQkJKEFDTF9VU0FHRSkKKyNk ZWZpbmUgQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEUJCShBQ0xfU0VMRUNUfEFDTF9VUERBVEUpCiAK IC8qIG9wZXJhdGlvbiBjb2RlcyBmb3IgcGdfKl9hY2xtYXNrICovCiB0eXBlZGVmIGVudW0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRp bHMvbHN5c2NhY2hlLmgKaW5kZXggMjA0NDZmNmY4MzYuLjhhMzY4NGU3MTFmIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9s c3lzY2FjaGUuaApAQCAtMTM0LDYgKzEzNCw3IEBAIGV4dGVybiBjaGFyIGdldF9mdW5jX3Byb2tp bmQoT2lkIGZ1bmNpZCk7CiBleHRlcm4gYm9vbCBnZXRfZnVuY19sZWFrcHJvb2YoT2lkIGZ1bmNp ZCk7CiBleHRlcm4gUmVnUHJvY2VkdXJlIGdldF9mdW5jX3N1cHBvcnQoT2lkIGZ1bmNpZCk7CiBl eHRlcm4gT2lkCWdldF9yZWxuYW1lX3JlbGlkKGNvbnN0IGNoYXIgKnJlbG5hbWUsIE9pZCByZWxu YW1lc3BhY2UpOworZXh0ZXJuIE9pZAlnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJu YW1lLCBPaWQgdmFybmFtZXNwYWNlKTsKIGV4dGVybiBjaGFyICpnZXRfcmVsX25hbWUoT2lkIHJl bGlkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbF9uYW1lc3BhY2UoT2lkIHJlbGlkKTsKIGV4dGVybiBP aWQJZ2V0X3JlbF90eXBlX2lkKE9pZCByZWxpZCk7CkBAIC0yMDYsNiArMjA3LDE0IEBAIGV4dGVy biBjaGFyICpnZXRfcHVibGljYXRpb25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7 CiBleHRlcm4gT2lkCWdldF9zdWJzY3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJv b2wgbWlzc2luZ19vayk7CiBleHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBz dWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIAorZXh0ZXJuIGNoYXIgKmdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUoT2lkIHZhcmlkKTsKK2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlKE9pZCB2YXJpZCk7CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGUo T2lkIHZhcmlkKTsKK2V4dGVybiB2b2lkIGdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9k X2NvbGxpZChPaWQgdmFyaWQsCisJCQkJCQkJCQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQkJ CQlpbnQzMiAqdHlwbW9kLAorCQkJCQkJCQkJCQkJCU9pZCAqY29sbGlkKTsKKwogI2RlZmluZSB0 eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRP aWQpCiAvKiB0eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFu ZCBkb21haW5zIG92ZXIgYXJyYXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWluKHR5 cGlkKSAgKGdldF9iYXNlX2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CmluZGV4IDc0ZDlmZjI5OThkLi5jMzM2 ZjY3YTU5NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5 Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CkBAIC0x NTEsMyArMTUxLDIwIEBAIG93bmVyIG9mIHR5cGUgZGVwdGVzdF90CiBEUk9QIE9XTkVEIEJZIHJl Z3Jlc3NfZGVwX3VzZXIyLCByZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiByZWdyZXNzX2Rl cF91c2VyMjsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKy0tIGRlcGVuZGVuY3kgb24g dHlwZQorQ1JFQVRFIERPTUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdmFydHlw ZSBBUyAoYSBpbnQsIGIgaW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyB2YXJ0eXBlOworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKK0VSUk9S OiAgY2Fubm90IGRyb3AgdHlwZSB2YXJkb21haW4gYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVu ZCBvbiBpdAorREVUQUlMOiAgY29sdW1uIGMgb2YgY29tcG9zaXRlIHR5cGUgdmFydHlwZSBkZXBl bmRzIG9uIHR5cGUgdmFyZG9tYWluCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJv cCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBUWVBFIHZhcnR5cGU7CitFUlJPUjog IGNhbm5vdCBkcm9wIHR5cGUgdmFydHlwZSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9u IGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHZhcnR5 cGUKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2Jq ZWN0cyB0b28uCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHZh cnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0CmluZGV4IDIxNWViODk5YmUzLi5kOTk1MzMyMTQwMiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vaWRqb2lucy5vdXQKQEAgLTI2NiwzICsyNjYsNyBAQCBOT1RJQ0U6ICBjaGVj a2luZyBwZ19zdWJzY3JpcHRpb24ge3N1YmRiaWR9ID0+IHBnX2RhdGFiYXNlIHtvaWR9CiBOT1RJ Q0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1Ym93bmVyfSA9PiBwZ19hdXRoaWQge29p ZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3Nyc3ViaWR9ID0+IHBn X3N1YnNjcmlwdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3Jl bCB7c3JyZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3Zhcmlh YmxlIHt2YXJ0eXBlfSA9PiBwZ190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJp YWJsZSB7dmFybmFtZXNwYWNlfSA9PiBwZ19uYW1lc3BhY2Uge29pZH0KK05PVElDRTogIGNoZWNr aW5nIHBnX3ZhcmlhYmxlIHt2YXJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBj aGVja2luZyBwZ192YXJpYWJsZSB7dmFyY29sbGF0aW9ufSA9PiBwZ19jb2xsYXRpb24ge29pZH0K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IDNiYmU0YzVmOTc0Li5jODkwNjc0OTBm NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01ODI4LDYgKzU4MjgsMzAgQEAg Q09NTUlUOwogIyBmaW5hbCBPTl9FUlJPUl9ST0xMQkFDSzogb2ZmCiBEUk9QIFRBQkxFIGJsYTsK IERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JF QVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMi OworXGRWKyB2YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwg Q29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwg RGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisK K0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQgT04gVkFS SUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CitcZFYrIHZhcjEKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRp b24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZp bGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAg ICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1y dy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAg ICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAK KygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RS T1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZh bGlkIG11bHRpcGFydCBuYW1lcwogXGRBIHJlZ3Jlc3Npb24uaGVhcAogaW1wcm9wZXIgcXVhbGlm aWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IHJlZ3Jlc3Npb24uaGVhcApAQCAtNjA0 OSw2ICs2MDczLDEyIEBAIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1l bnRlZDogbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVwc19zdGF0CiBpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVz dWNoLm15ZXZ0CiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVz KTogbm9uZXN1Y2gubXlldnQKK1xkViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgoraW1wcm9w ZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IGhvc3QucmVncmVzc2lv bi5wdWJsaWMudmFyCitcZFYgcmVncmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFi YXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogcmVncmVzc2lvbnxteWRiLnB1Ymxp Yy52YXIKK1xkViBub25lc3VjaC5wdWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2Vz IGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVzdWNoLnB1YmxpYy52YXIKIC0tIGNoZWNrIHRoYXQg ZG90cyB3aXRoaW4gcXVvdGVkIG5hbWUgc2VnbWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5v LnN1Y2guYWNjZXNzLm1ldGhvZCIKIExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMKQEAgLTYyODMsNiAr NjMxMywxMiBAQCBMaXN0IG9mIHNjaGVtYXMKIC0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tCiAoMCByb3dzKQogCitcZFYgIm5vLnN1Y2gudmFyaWFibGUi CisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwg Q29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxp ZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIK IGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCkBAIC02NDUyLDYgKzY0ODgsMTIgQEAg aW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIAogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu ZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQg bmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0t LS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdh aW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNh dGlvbnMuCiBcZHQgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJl bGF0aW9uIgogICAgICAgTGlzdCBvZiByZWxhdGlvbnMKQEAgLTY1ODUsNiArNjYyNywxMiBAQCBM aXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLQogKDAgcm93cykKIAorXGRWIHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExp c3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25l ciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykK KwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBx dWFsaWZpY2F0aW9ucy4KIFxkdCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5v dCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2gudGFibGUucmVsYXRpb24iCkBAIC02NjMyLDYgKzY2ODAsOCBAQCBjcm9zcy1kYXRhYmFzZSBy ZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3Vj aC5zY2hlbQogY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAi bm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBc ZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQu c3RhdGlzdGljcyIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRl ZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQu c3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC52YXJpYWJsZSIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1l bnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFi bGUiCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7 CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYWNhNzY2MDQyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMCwwICsxLDU3IEBACitDUkVB VEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSBzaG91bGQgZmFpbCwgcHNldWRvdHlwZXMgYXJlIG5v dCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVtZW50OworRVJST1I6ICBz ZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlwZSBhbnllbGVtZW50CistLSBzaG91 bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjI7CitOT1RJ Q0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIyIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKKy0t IGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZhcjEgQVMgaW50Owor Tk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5n CistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworRVJST1I6ICBz ZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBhbHJlYWR5IGV4aXN0cworLS0gc2hvdWxkIGJlIG9rCitE Uk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIxOworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJs ZQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIx IElTICdzb21lIHZhcmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2Ny aXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1l ID0gJ3ZhcjEnOworICAgIG9ial9kZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgc29tZSB2YXJpYWJsZSBjb21tZW50CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKy0tLSBjaGVjayBhY2Nlc3MgcmlnaHRzIGFuZCBzdXBwb3J0ZWQgQUxURVIKK0NSRUFURSBT Q0hFTUEgc3ZhcnRlc3Q7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitD UkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSBzdmFydGVzdC52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworUkVWT0tFIEFM TCBPTiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7 CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIE9XTkVSIFRPIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIFJFTkFNRSBUTyB2YXJ4eDsKK0FM VEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcnh4IFNFVCBTQ0hFTUEgcHVibGljOworRFJPUCBWQVJJ QUJMRSBwdWJsaWMudmFyeHg7CitBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIKKyAgIElOIFNDSEVNQSBzdmFydGVzdAorICAgR1JBTlQg U0VMRUNUIE9OIFZBUklBQkxFUyBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKy0tIGNyZWF0 aW5nIHZhcmlhYmxlIHdpdGggZGVmYXVsdCBwcml2aWxlZ2VzCitTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50Owor U0VUIFJPTEUgVE8gREVGQVVMVDsKK1xkVisgc3ZhcnRlc3QudmFyMQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cworICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVy ICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAg ICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworRFJP UCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZQppbmRleCAyNDI5ZWMyYmJhYS4uZWQ2ODkzZDQ3OTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZQpAQCAtMTExLDcgKzExMSw3IEBAIHRlc3Q6IGpzb24ganNvbmIganNvbl9lbmNvZGlu ZyBqc29ucGF0aCBqc29ucGF0aF9lbmNvZGluZyBqc29uYl9qc29ucGF0aCBzcWxqc29uCiAjIE5C OiB0ZW1wLnNxbCBkb2VzIGEgcmVjb25uZWN0IHdoaWNoIHRyYW5zaWVudGx5IHVzZXMgMiBjb25u ZWN0aW9ucywKICMgc28ga2VlcCB0aGlzIHBhcmFsbGVsIGdyb3VwIHRvIGF0IG1vc3QgMTkgdGVz dHMKICMgLS0tLS0tLS0tLQotdGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVt cCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFi bGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3 aXRoIHhtbAordGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4g cmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVu Y2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbCBz ZXNzaW9uX3ZhcmlhYmxlcwogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJh bGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbAppbmRleCA4ZDc0ZWQ3MTIy Yy4uNmMxOGI3Zjg0MGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVu Y3kuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCkBAIC0xMTQs MyArMTE0LDE3IEBAIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1AgT1dORUQgQlkg cmVncmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3Nf ZGVwX3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworCistLSBkZXBlbmRlbmN5 IG9uIHR5cGUKK0NSRUFURSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZh cnR5cGUgQVMgKGEgaW50LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgdmFydHlwZTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsK K0RST1AgVFlQRSB2YXJ0eXBlOworCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBUWVBFIHZhcnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwu c3FsCmluZGV4IDNiM2M2ZjZlMjk0Li5iODBkNTZhMjdhZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHNxbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwK QEAgLTE1OTEsNiArMTU5MSwxOSBAQCBDT01NSVQ7CiBEUk9QIFRBQkxFIGJsYTsKIERST1AgRlVO Q1RJT04gcHNxbF9lcnJvcjsKIAorLS0gc2Vzc2lvbiB2YXJpYWJsZSB0ZXN0CitDUkVBVEUgUk9M RSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9v d25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CitcZFYr IHZhcjEKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQg T04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CitcZFYrIHZhcjEKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgUk9MRSByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworCiAtLSBjaGVjayBkZXNjcmliaW5nIGludmFsaWQgbXVsdGlwYXJ0 IG5hbWVzCiBcZEEgcmVncmVzc2lvbi5oZWFwCiBcZEEgbm9uZXN1Y2guaGVhcApAQCAtMTcwMiw2 ICsxNzE1LDkgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGRYIG5vbmVzdWNoLnB1Ymxp Yy5mdW5jX2RlcHNfc3RhdAogXGR5IHJlZ3Jlc3Npb24ubXlldnQKIFxkeSBub25lc3VjaC5teWV2 dAorXGRWIGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitcZFYgcmVncmVzc2lvbnxteWRiLnB1 YmxpYy52YXIKK1xkViBub25lc3VjaC5wdWJsaWMudmFyCiAKIC0tIGNoZWNrIHRoYXQgZG90cyB3 aXRoaW4gcXVvdGVkIG5hbWUgc2VnbWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5vLnN1Y2gu YWNjZXNzLm1ldGhvZCIKQEAgLTE3NDMsNiArMTc1OSw4IEBAIERST1AgRlVOQ1RJT04gcHNxbF9l cnJvcjsKIFxkeCAibm8uc3VjaC5pbnN0YWxsZWQuZXh0ZW5zaW9uIgogXGRYICJuby5zdWNoLmV4 dGVuZGVkLnN0YXRpc3RpY3MiCiBcZHkgIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8u c3VjaC52YXJpYWJsZSIKKwogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFs aWZpY2F0aW9ucy4KIFxkQSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2Qi CkBAIC0xNzgzLDYgKzE4MDEsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZHggIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YWxsZWQuZXh0ZW5zaW9uIgogXGRYICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIFxkeSAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC52YXJpYWJsZSIKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRv dHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAtMTgwNyw2ICsxODI2LDcgQEAgRFJPUCBG VU5DVElPTiBwc3FsX2Vycm9yOwogXGRQIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5wYXJ0aXRpb25lZC5yZWxhdGlvbiIKIFxkVCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVt YSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRYIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRh YmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCAibm8uc3VjaC5kYXRh YmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKQEAgLTE4MzIs NiArMTg1Miw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkUCAibm8uc3VjaC5kYXRh YmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5wYXJ0aXRpb25lZC5yZWxhdGlvbiIKIFxk VCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUi CiBcZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5k ZWQuc3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC52YXJpYWJsZSIKIAogLS0gY2hlY2sgXGRyZyBhbmQgXGR1CiBDUkVBVEUgUk9MRSBy ZWdyZXNzX2R1X3JvbGUwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40MmRmYjk1YTAyMgot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbApAQCAtMCwwICsxLDYxIEBACitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy OworCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0g c2hvdWxkIGZhaWwsIHBzZXVkb3R5cGVzIGFyZSBub3QgYWxsb3dlZAorQ1JFQVRFIFZBUklBQkxF IHZhcjIgQVMgYW55ZWxlbWVudDsKKworLS0gc2hvdWxkIGJlIG9rLCBkbyBub3RoaW5nCitEUk9Q IFZBUklBQkxFIElGIEVYSVNUUyB2YXIyOworCistLSBkbyBub3RoaW5nCitDUkVBVEUgVkFSSUFC TEUgSUYgTk9UIEVYSVNUUyB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGZhaWwKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIElG IEVYSVNUUyB2YXIxOworCistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgdmFy aWFibGUgY29tbWVudCc7CitTRUxFQ1QgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAn cGdfdmFyaWFibGUnKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBv cnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEg c3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjEgQVMgaW50OworCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRl cjsKKworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192 YXJpYWJsZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJP TSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFy MSBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRl c3QudmFyMSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXJ4eCBT RVQgU0NIRU1BIHB1YmxpYzsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyeHg7CisKK0FMVEVS IERFRkFVTFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgor ICAgSU4gU0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJl Z3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1 bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFU RSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisK K1xkVisgc3ZhcnRlc3QudmFyMQorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CisKK0RS T1AgU0NIRU1BIHN2YXJ0ZXN0OworCitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsK ZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggOGRlOTk3OGFkOGQuLmNlMjk5YTRiZTEzIDEw MDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtNTMzLDYgKzUzMyw3IEBAIENyZWF0ZVJvbGVT dG10CiBDcmVhdGVTY2hlbWFTdG10CiBDcmVhdGVTY2hlbWFTdG10Q29udGV4dAogQ3JlYXRlU2Vx U3RtdAorQ3JlYXRlU2Vzc2lvblZhclN0bXQKIENyZWF0ZVN0YXRzU3RtdAogQ3JlYXRlU3RtdAog Q3JlYXRlU3RtdENvbnRleHQKQEAgLTg3Miw2ICs4NzMsNyBAQCBGb3JtRGF0YV9wZ190c19wYXJz ZXIKIEZvcm1EYXRhX3BnX3RzX3RlbXBsYXRlCiBGb3JtRGF0YV9wZ190eXBlCiBGb3JtRGF0YV9w Z191c2VyX21hcHBpbmcKK0Zvcm1EYXRhX3BnX3ZhcmlhYmxlCiBGb3JtRXh0cmFEYXRhX3BnX2F0 dHJpYnV0ZQogRm9ybV9wZ19hZ2dyZWdhdGUKIEZvcm1fcGdfYW0KQEAgLTkzMSw2ICs5MzMsNyBA QCBGb3JtX3BnX3RzX3BhcnNlcgogRm9ybV9wZ190c190ZW1wbGF0ZQogRm9ybV9wZ190eXBlCiBG b3JtX3BnX3VzZXJfbWFwcGluZworRm9ybV9wZ192YXJpYWJsZQogRm9ybWF0Tm9kZQogRnJlZUJs b2NrTnVtYmVyQXJyYXkKIEZyZWVMaXN0RGF0YQpAQCAtMzA2Myw2ICszMDY2LDcgQEAgVmFyU3Ry aW5nCiBWYXJTdHJpbmdTb3J0U3VwcG9ydAogVmFyaWFibGUKIFZhcmlhYmxlQXNzaWduSG9vawor VmFyaWFibGVJbmZvCiBWYXJpYWJsZVNldEtpbmQKIFZhcmlhYmxlU2V0U3RtdAogVmFyaWFibGVT aG93U3RtdAotLSAKMi40NS4yCgo= --0000000000000e7560061ea66068--