Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vNcjm-008wWD-1e for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Nov 2025 20:00:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vNcjl-003sf9-0Q for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Nov 2025 20:00:37 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vNcjk-003sf0-0o for pgsql-hackers@lists.postgresql.org; Mon, 24 Nov 2025 20:00:37 +0000 Received: from mail-yw1-x1134.google.com ([2607:f8b0:4864:20::1134]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vNcjc-001G5h-1u for pgsql-hackers@lists.postgresql.org; Mon, 24 Nov 2025 20:00:35 +0000 Received: by mail-yw1-x1134.google.com with SMTP id 00721157ae682-787df0d729dso46738557b3.3 for ; Mon, 24 Nov 2025 12:00:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764014429; x=1764619229; 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=/QB2ggVbqeBkrVw8H62qVfqFrdcsLqiJG6KzL4rwCqs=; b=Kel+I8qrjLKYFWESe8aBf9oWxoMXLdW0orPRZMZbSp/K2lPRyxAiK1C8IOeDX8Y5L1 kTJXqKXduq8R7AS7NaZNRNFtQDH0k2+Ee0KfTptC3hczpClBbgT0R63NJoHqnwPafzix zGdTAiHrzj7GMzuJn+YNb/LpIzWrzj/vA5EpRHALsdAjHLeaJGwoN4JjutfV9nlUPIvM /OuYicc6Ab7yWzKuXMOwZTsfQOWUY3p0cy10JWy0CyBtguVRKXBRVnP2SUnaFWPmL+A3 PlvDG/en/AH82AT5eoLMP1pJQQH6m5A35oi8pMb80LHawuWH7u5XABiHGT4vdZsuekRH nxng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764014429; x=1764619229; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/QB2ggVbqeBkrVw8H62qVfqFrdcsLqiJG6KzL4rwCqs=; b=qJ1dwp6YJw9MCx6G10r5tkekKwr2CWNYtputfq0dzEu9c7Q3EMFIUW9dNMwmu8ZIuJ H4iE7l7RPQ3Cvf6NDrPMoBcE/wppB1v5WbUeGZXQkFLNy2+ql7wwCjLKompb+4QC3JYD B6bTvn5iALs04k9Z5BTIZG1kTeWEwi0sk45hueDbe5fHPAkMC8BfdEUxTefhhQKlU//H ebDoG+53/Ft31bcqhsgaIPLf3IK0EvJ44C22EhkttZMIr/pnOTj8vnJzih65WblzqSKH rAB1Azjmglj4HnXkYGTmNISJugKUl0or4r/1sTzuEZWzIgoBkY1TLMD8AtrYAx4FDWT8 HDWw== X-Forwarded-Encrypted: i=1; AJvYcCWyelyrshTzAcVVv5DnMET3GydZKK/+sQ7l3nzVEEHckwhG6HRj0EiaT7MEM8lJ+krmLJ2nrCANAj7LaaPY@lists.postgresql.org X-Gm-Message-State: AOJu0YzRUY9+UZDqgEj4me36lcAZAztJC80FB9OPAhe7CN63K8yuDNog 6nL8ADu/n1NBx1WeBbKjxVQwu375bIiwu7qiLR6vroXbxVghxBSVGEWrJxrTYekrotomLoCEecw IlvtDIOa/8X4rJJzqGVwQWHFYiyUXbdf9WrY4JSs= X-Gm-Gg: ASbGncuuQOn6+3cZNM0MhAzPByQgEgLruQBNjzrVkBdJ6EbShkHv14fft6nUSdNXcXH cuXuXZuW+el7FL/UAMuykn/D+rBnv3OoN/xm5tJc9ziRoeEHVyzxxkqDRSTyVjwyIG9Ve8GNwhp 2hGQWgSb1ytWRlOrJYOdc2blJ+kGyvPC+ts2Mj5c5dKjB/WpM57SeKy5urE1KKHnyWNB/K7vNx5 Gv5jwgEZXxvujIIMkpW5UyTPuNSPICxpLFuJTVq+HHZZwmgzCHsdAb5Vk1GfRYmAnTvsCgHQ7Qp RgA/YWPJy7JYBzviX4W7uaieMG8P X-Google-Smtp-Source: AGHT+IFCJG+BR00+PwRbtnH2vtbXQDkblTzlQt9e/ULwKhSN9c3JF0erAjp/uIzZ8HGnSzTjJsPMtQAcl+S4RQJr2qU= X-Received: by 2002:a05:690c:630e:b0:787:f043:1eed with SMTP id 00721157ae682-78a8b54dbf7mr105535477b3.53.1764014428344; Mon, 24 Nov 2025 12:00:28 -0800 (PST) MIME-Version: 1.0 References: <9d6897bd-855d-44a6-8ebe-17b2b1d04430@uni-muenster.de> In-Reply-To: From: Pavel Stehule Date: Mon, 24 Nov 2025 20:59:48 +0100 X-Gm-Features: AWmQ_blUGnZvB6352ZxDR93hKgM65jSYCNToHM2Y6cSbrrsehoSwyY4JHRmVWbs Message-ID: Subject: Re: proposal: schema variables To: Jim Jones Cc: Bruce Momjian , Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers , jian he , Alvaro Herrera , PegoraroF10 Content-Type: multipart/mixed; boundary="000000000000618d5806445c9db6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000618d5806445c9db6 Content-Type: multipart/alternative; boundary="000000000000618d5606445c9db4" --000000000000618d5606445c9db4 Content-Type: text/plain; charset="UTF-8" Hi I was asked to write the most reduced implementation of session variables. I thought about possible reductions and there is one - catalog. We can implement temporary session variables. In this case the catalog is not necessary. After reduction the total size of the patchset is 134KB (doc + code + tests). The size of the previous patchset was 390KB. Unfortunately - without catalog some the dependency check is not available, and then features that depends on dependencies are not available: 1. no catalog, no dependencies - only buildin types can be used (no custom types, no domains), 2. no catalog, no dependencies - variables cannot be used in objects that depend on some objects (views, sql functions), 3. simplified syntax - only scalar types can be used (no arrays, no composites), 4. no catalog, no access rights, only owner check (variables can be used just by their creator (owner)), 5. no catalog, no plan cache invalidation support (instead type check before any usage), 6. no catalog, only temp variables are supported - schema cannot be specified, 7. without direct access from the expression executor - variables cannot be a parameter of CALL statement 8. session variables block parallel execution 9. no catalog, no object address - no event triggers for session variables 10. no catalog - DDL for session variables (CREATE TEMP VARIABLE, DROP VARIABLE) are not transactional. Without catalog, implementation of transactional DDL can be very difficult. Although there are lot of strong limits, I think so implemented feature can be still useful (parametrization of anonymous block and secure session scope storage) CREATE TEMP VARIABLE x AS int; CREATE TEMP VARIABLE y AS int; LET x = 100; SELECT VARIABLE(x); DO $$ BEGIN RAISE NOTICE '%', VARIABLE(x); LET y = VARIABLE(x) + 10; END $$; SELECT VARIABLE(y); DROP VARIABLE x; DROP VARIABLE y; This simple and reduced implementation doesn't block continuous development in different directions (without compatibility breaks). When I worked on this reduced version I found the importance of catalog based implementation. It is almost impossible to implement variables with life scope longer than transactions without a catalog. There is a strong necessity of using dependency mechanisms. With catalog, the plan cache invalidation can be used (instead typecheck). It is more robust. Comments, notes? Regards Pavel --000000000000618d5606445c9db4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

I was asked to write the = most reduced implementation of session variables. I thought about possible = reductions and there is one - catalog. We
can=C2=A0implement temp= orary session=C2=A0variables. In this case the=C2=A0catalog is not necessar= y. After reduction the total size of the patchset is 134KB (doc=C2=A0+ code= =C2=A0+ tests). The size of the previous patchset was 390KB.

=
Unfortunately - without catalog some the dependency check is not= available, and then features that depends on dependencies are not availabl= e:

1. no catalog, no dependencies - only buildin= =C2=A0types can be used (no custom types, no domains),
2. no cata= log, no dependencies - variables cannot be used in objects that depend on s= ome objects (views, sql functions),
3. simplified syntax - only s= calar types can be used (no arrays, no composites),
4. no catalog= , no access rights, only owner check (variables can be used just by their c= reator (owner)),
5. no catalog, no plan cache invalidation suppor= t (instead type check before any usage),
6. no catalog, only temp= variables are supported - schema cannot be specified,
7. without= direct access from the expression executor - variables cannot be a paramet= er of CALL statement
8. session variables block parallel executio= n
9. no catalog, no object address - no event triggers for sessio= n variables
10. no catalog - DDL for session variables (CREATE TE= MP VARIABLE, DROP VARIABLE) are not transactional. Without catalog, impleme= ntation of transactional DDL can be very difficult.

Although there are lot of strong limits, I think so implemented feature c= an be still useful (parametrization of anonymous block and secure session= =C2=A0scope storage)

CREATE TEMP VARIABLE x AS int;
CREATE TEMP VARIABLE y AS int;
LET x =3D 100;
SELECT VARIABLE(x);DO $$
BEGIN
=C2=A0 RAISE NOTICE '%', VARIABLE(= x);
=C2=A0 LET y =3D VARIABLE(x)=C2=A0+ 10;
=C2=A0END $= $;
SELECT VARIABLE(y);
DROP VARIABLE x;
DROP VARIABL= E y;

This simple and reduced implementation doesn&= #39;t block continuous development in different directions (without compati= bility breaks).

When I worked on this reduced vers= ion I found the importance of catalog based implementation. It is almost im= possible to implement variables with life scope longer than transactions wi= thout a catalog. There is a strong necessity of using dependency mechanisms= . With catalog, the plan cache invalidation can be used (instead typecheck)= . It is more robust.

Comments, notes?
Regards

Pavel





--000000000000618d5606445c9db4-- --000000000000618d5806445c9db6 Content-Type: text/x-patch; charset="UTF-8"; name="v20251124-0006-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Disposition: attachment; filename="v20251124-0006-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midkhnfy1 RnJvbSA2ZGExOGMyM2I2MDNkYzM3NzJhZjY0MzQzNTQ2ZWVmNjlkYjU1MzVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBNb24sIDI0IE5vdiAyMDI1IDE4OjA1OjAzICswMTAwClN1YmplY3Q6IFtQ QVRDSCA2LzddIExFVCBjb21tYW5kIC0gYXNzaWduIGEgcmVzdWx0IG9mIGV4cHJlc3Npb24gdG8g dGhlIAogc2Vzc2lvbiB2YXJpYWJsZQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRl eHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoK VGhlIHZhbHVlIGlzIGFzc2lnbmVkIHRvIHNlc3Npb24gdmFyaWFibGVzIHVzdWFsbHkgYnkgU0VU IGNvbW1hbmQuIFVuZm9ydHVuYXRlbHkKdGhlcmUgYXJlIHR3byByZWFzb25zIHdoeSBTRVQgc2hv dWxkIG5vdCBiZSB1c2VkIGZvciB0aGlzIHB1cnBvc2UgaW4gUG9zdGdyZXMuCgoxLiBVc2luZyBh X2V4cHIgaW5zaWRlIGdlbmVyaWNfc2V0IHJhbSBydWxlIHByb2R1Y2VzIHJlZHVjZSBjb25mbGlj dHMsIHNvIGl0IG5lZWRzCsKgIMKgdG90YWwgcmVpbXBsZW1lbnRhdGlvbiBvZiByZWxhdGVkIGdy YW0gcnVsZXMuCgoyLiBTRVQgaXMgbm8gcGxhbiBjb21tYW5kIC0gc28gaXQgZG9lc24ndCBzdXBw b3J0IHVzYWdlIG9mIHBhcmFtZXRlcnMuCgozLiBFeGNlcHRpbmcgaW1wbGVtZW50YXRpb24gaXNz dWVzLCB0aGVyZSBpcyBmYWN0LCBzbyBpZiB3ZSB1c2UgU0VUIGNvbW1hbmQKwqAgwqBmb3IgYXNz aWduaW5nIHZhbHVlcyB0byBzZXNzaW9uIHZhcmlhYmxlcywgdGhlbiB0aGVyZSBjYW4gYmUgY29s bGlzaW9ucwrCoCDCoGJldHdlZW4gc2Vzc2lvbiB2YXJpYWJsZXMgYW5kIEdVQywgYW5kIHRoZW4g d2UgbmVlZCBzb21lIGNvbmNlcHRzLCBob3cKwqAgwqB0aGVzZSBjb2xsaXNpb25zIHNob3VsZCBi ZSBzb2x2ZWQsIG9yIGhvdyB0byBwcm90ZWN0IHNlbGYgYWdhaW5zdCB0aGVzZQrCoCDCoGNvbGxp c2lvbnMuIFdpdGggdGhlIGRlZGljYXRlZCBjb21tYW5kLCB0aGUgY29sbGlzaW9ucyBiZXR3ZWVu IEdVQyBhbmQgc2Vzc2lvbgrCoCDCoHZhcmlhYmxlcyBhcmUgbm90IHBvc3NpYmxlLgoKVGhlIGNv bW1hbmQgTEVUIGlzIGV4ZWN1dGVkIGFzIHVzdWFsIHF1ZXJ5IGV4ZWN1dGlvbi4gVGhlIHJlc3Vs dCBpcyBzdG9yZWQKdG8gdGhlIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIChyZXN1bHRWYXJpYWJs ZSkgYnkgdXNpbmcgVmFyaWFibGVEZXN0UmVjZWl2ZXIuCgpJbXBsZW1lbnRhdGlvbnMgb2YgRVhQ TEFJTiBMRVQgYW5kIFBSRVBBUkUgTEVUIHN0YXRlbWVudHMgYXJlIG5vdCBzdXBwb3J0ZWQKbm93 LiBQb3N0cG9uZWQgdG8gbmV4dCBzdGVwIGR1ZSByZWR1Y2luZyBwYXRjaCBzaXplLgotLS0KIGRv Yy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNyArKysrCiBk b2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAgICAgfCAgIDEgKwogZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgICAzICsKIGRvYy9z cmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sICAgICAgICAgICB8ICAgMSArCiBkb2Mvc3Jj L3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDg2ICsrKysrKysrKysrKwog c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgICA4ICsrCiBz cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAgIDEgKwogc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgMTAzICsrKysrKysr KysrKy0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwg IDM4ICsrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgICAgICAgICAgICAg IHwgICA3ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8 ICAgOSArKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAx NSArKysKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAg OSArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICA1 ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNSAr KysKIHNyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgMyAr CiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4v ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dCAgICAgICAgfCAxMjMgKysrKysrKysr KysrKysrKysrCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbCAgICAg fCAgODcgKysrKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAg ICAgICAgICAgIHwgICAxICsKIDI0IGZpbGVzIGNoYW5nZWQsIDUyOSBpbnNlcnRpb25zKCspLCAy MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggMTUwYjA0ZjFkNGIuLjkyMTYzZDBhNzRhIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBA IC01NjgzLDEwICs1NjgzLDM3IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3Vy ZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgICBzZXNzaW9u IHZhcmlhYmxlIGlkZW50aWZpZXIsIGFuZCBjYW4gYmUgdXNlZCBvbmx5IGZvciBzZXNzaW9uIHZh cmlhYmxlCiAgICAgaWRlbnRpZmllci4gVGhlIHNwZWNpYWwgc3ludGF4IGZvciBhY2Nlc3Npbmcg c2Vzc2lvbiB2YXJpYWJsZXMgcmVtb3ZlcwogICAgIHJpc2sgb2YgY29sbGlzaW9ucyBiZXR3ZWVu IHZhcmlhYmxlIGlkZW50aWZpZXJzIGFuZCBjb2x1bW4gbmFtZXMuCisgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgc2V0IHdpdGgg dGhlIFNRTCBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+LiAgVGhlIHZhbHVl IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUgcmV0cmlldmVkCisgICAgd2l0aCB0aGUgU1FM IHN0YXRlbWVudCA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+LgogPHByb2dyYW1saXN0aW5nPgor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xFVCB2YXIxID0gY3VycmVudF9kYXRlOwor U0VMRUNUIFZBUklBQkxFKHZhcjEpOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgIG9yCisKKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuY3VycmVudF91c2VyX2lkIEFT IGludGVnZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgcHVibGljLmN1cnJlbnRfdXNlcl9p ZCBUTyBQVUJMSUM7CitMRVQgY3VycmVudF91c2VyX2lkID0gKFNFTEVDVCBpZCBGUk9NIHVzZXJz IFdIRVJFIHVzZW5hbWUgPSBzZXNzaW9uX3VzZXIpOwogU0VMRUNUIFZBUklBQkxFKGN1cnJlbnRf dXNlcl9pZCk7CiA8L3Byb2dyYW1saXN0aW5nPgogICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAg ICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50 IHNlc3Npb24uIFJldHJpZXZpbmcKKyAgICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBhIDxs aXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxlc3MgaXRzIHZhbHVlIGhhcworICAgIGJlZW4gc2V0 IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gdXNpbmcgdGhlCisgICAg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5v dCB0cmFuc2FjdGlvbmFsOgorICAgIGFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEg c2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5zYWN0aW9uIHdvbid0CisgICAgYmUgdW5kb25lIGlm IHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAoanVzdCBsaWtlIHZhcmlhYmxlcyBpbgor ICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAogIDxz ZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggYTczNDk5MTk2 NTguLmNkM2ZhYTY2N2YwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC0xNTcsNiArMTU3LDcg QEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJl Y3RvcnkuCiA8IUVOVElUWSBncmFudCAgICAgICAgICAgICAgU1lTVEVNICJncmFudC5zZ21sIj4K IDwhRU5USVRZIGltcG9ydEZvcmVpZ25TY2hlbWEgU1lTVEVNICJpbXBvcnRfZm9yZWlnbl9zY2hl bWEuc2dtbCI+CiA8IUVOVElUWSBpbnNlcnQgICAgICAgICAgICAgU1lTVEVNICJpbnNlcnQuc2dt bCI+Cis8IUVOVElUWSBsZXQgICAgICAgICAgICAgICAgU1lTVEVNICJsZXQuc2dtbCI+CiA8IUVO VElUWSBsaXN0ZW4gICAgICAgICAgICAgU1lTVEVNICJsaXN0ZW4uc2dtbCI+CiA8IUVOVElUWSBs b2FkICAgICAgICAgICAgICAgU1lTVEVNICJsb2FkLnNnbWwiPgogPCFFTlRJVFkgbG9jayAgICAg ICAgICAgICAgIFNZU1RFTSAibG9jay5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJs ZS5zZ21sCmluZGV4IDVlZDc0YzVjMTczLi4xMWIxZWY3NDIxMiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0xMDcsNiArMTA3LDggQEAgQ1JFQVRFIHsgVEVNUCB8IFRF TVBPUkFMIH0gVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2UKICAgIENyZWF0ZSBhbiBkYXRlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwv bGl0ZXJhbD46CiA8cHJvZ3JhbWxpc3Rpbmc+CiBDUkVBVEUgVEVNUE9SQVJZIFZBUklBQkxFIHZh cjEgQVMgZGF0ZTsKK0xFVCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIFZBUklBQkxFKHZh cjEpOwogPC9wcm9ncmFtbGlzdGluZz4KICAgPC9wYXJhPgogCkBAIC0xMjYsNiArMTI4LDcgQEAg Q1JFQVRFIFRFTVBPUkFSWSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CiAKICAgPHNpbXBsZWxpc3Qg dHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJs ZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1i ZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJp YWJsZS5zZ21sCmluZGV4IGU4NTE3YTc4MjAwLi5kZWRlNDJlNGZmYiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9k cm9wX3ZhcmlhYmxlLnNnbWwKQEAgLTc4LDYgKzc4LDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwog CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5k PSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwKaW5kZXggYzAzZTc2OTJjN2EuLjZmY2Q3YTgxMzIxIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5z Z21sCkBAIC0xODUsNiArMTg1LDcgQEAKICAgICZncmFudDsKICAgICZpbXBvcnRGb3JlaWduU2No ZW1hOwogICAgJmluc2VydDsKKyAgICZsZXQ7CiAgICAmbGlzdGVuOwogICAgJmxvYWQ7CiAgICAm bG9jazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA5NWQ3MDkx MWJjYy4uMzY0OTAzODdkYTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKQEAgLTE5LDE0ICsxOSwxOSBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUgImV4ZWN1 dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVy LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCisjaW5jbHVkZSAidGNvcC90Y29wcHJvdC5o IgogI2luY2x1ZGUgInV0aWxzL2FjbC5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAj aW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNp bmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgorI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNp bmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiAvKgpAQCAtMzI2LDMgKzMzMSw4NCBAQCBEcm9w VmFyaWFibGVCeU5hbWUoY2hhciAqdmFybmFtZSkKIAkJCQkJICAgSEFTSF9SRU1PVkUsCiAJCQkJ CSAgIE5VTEwpOwogfQorCisvKgorICogQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRl ZCBleHByZXNzaW9uIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3ZvaWQKK0V4ZWN1dGVM ZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCSAgIExldFN0bXQgKnN0bXQsCisJCQkgICBQ YXJhbUxpc3RJbmZvIHBhcmFtcywKKwkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAor CQkJICAgUXVlcnlDb21wbGV0aW9uICpxYykKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSBjYXN0Tm9k ZShRdWVyeSwgc3RtdC0+cXVlcnkpOworCUxpc3QJICAgKnJld3JpdHRlbjsKKwlEZXN0UmVjZWl2 ZXIgKmRlc3Q7CisJUGxhbm5lZFN0bXQgKnBsYW47CisJUXVlcnlEZXNjICAqcXVlcnlEZXNjOwor CWNoYXIJICAgKnZhcm5hbWUgPSBxdWVyeS0+cmVzdWx0VmFyaWFibGU7CisJU1ZhcmlhYmxlCXN2 YXI7CisKKwlzdmFyID0gc2VhcmNoX3ZhcmlhYmxlKHZhcm5hbWUpOworCisJLyogb25seSBvd25l ciBjYW4gc2V0IGNvbnRlbnQgb2YgdmFyaWFibGUgKi8KKwlpZiAoc3Zhci0+dmFyb3duZXIgIT0g R2V0VXNlcklkKCkgJiYgIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVycm1zZygicGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXMiLAorCQkJCQkJdmFybmFtZSkpKTsK KworCS8qIGNyZWF0ZSBhIGRlc3QgcmVjZWl2ZXIgZm9yIExFVCAqLworCWRlc3QgPSBDcmVhdGVW YXJpYWJsZURlc3RSZWNlaXZlcih2YXJuYW1lKTsKKworCS8qIHJ1biB0aGUgcXVlcnkgcmV3cml0 ZXIgKi8KKwlxdWVyeSA9IGNvcHlPYmplY3QocXVlcnkpOworCisJcmV3cml0dGVuID0gUXVlcnlS ZXdyaXRlKHF1ZXJ5KTsKKworCUFzc2VydChsaXN0X2xlbmd0aChyZXdyaXR0ZW4pID09IDEpOwor CisJcXVlcnkgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCByZXdyaXR0ZW4pOworCUFzc2VydChxdWVy eS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisKKwkvKiBwbGFuIHRoZSBxdWVyeSAqLwor CXBsYW4gPSBwZ19wbGFuX3F1ZXJ5KHF1ZXJ5LCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJ CSBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBwYXJhbXMsIE5VTEwpOworCisJLyoKKwkgKiBVc2Ug YSBzbmFwc2hvdCB3aXRoIGFuIHVwZGF0ZWQgY29tbWFuZCBJRCB0byBlbnN1cmUgdGhpcyBxdWVy eSBzZWVzIHRoZQorCSAqIHJlc3VsdHMgb2YgYW55IHByZXZpb3VzbHkgZXhlY3V0ZWQgcXVlcmll cy4gIChUaGlzIGNvdWxkIG9ubHkgbWF0dGVyIGlmCisJICogdGhlIHBsYW5uZXIgZXhlY3V0ZWQg YW4gYWxsZWdlZGx5LXN0YWJsZSBmdW5jdGlvbiB0aGF0IGNoYW5nZWQgdGhlCisJICogZGF0YWJh c2UgY29udGVudHMsIGJ1dCBsZXQncyBkbyBpdCBhbnl3YXkgdG8gYmUgcGFyYWxsZWwgdG8gdGhl IEVYUExBSU4KKwkgKiBjb2RlIHBhdGguKQorCSAqLworCVB1c2hDb3BpZWRTbmFwc2hvdChHZXRB Y3RpdmVTbmFwc2hvdCgpKTsKKwlVcGRhdGVBY3RpdmVTbmFwc2hvdENvbW1hbmRJZCgpOworCisJ LyogY3JlYXRlIGEgUXVlcnlEZXNjLCByZWRpcmVjdGluZyBvdXRwdXQgdG8gb3VyIHR1cGxlIHJl Y2VpdmVyICovCisJcXVlcnlEZXNjID0gQ3JlYXRlUXVlcnlEZXNjKHBsYW4sIHBzdGF0ZS0+cF9z b3VyY2V0ZXh0LAorCQkJCQkJCQlHZXRBY3RpdmVTbmFwc2hvdCgpLCBJbnZhbGlkU25hcHNob3Qs CisJCQkJCQkJCWRlc3QsIHBhcmFtcywgcXVlcnlFbnYsIDApOworCisJLyogY2FsbCBFeGVjdXRv clN0YXJ0IHRvIHByZXBhcmUgdGhlIHBsYW4gZm9yIGV4ZWN1dGlvbiAqLworCUV4ZWN1dG9yU3Rh cnQocXVlcnlEZXNjLCAwKTsKKworCS8qCisJICogUnVuIHRoZSBwbGFuIHRvIGNvbXBsZXRpb24u ICBUaGUgcmVzdWx0IHNob3VsZCBiZSBvbmx5IG9uZSByb3cuICBUbworCSAqIGNoZWNrIGlmIHRo ZXJlIGFyZSB0b28gbWFueSByZXN1bHQgcm93cywgd2UgdHJ5IHRvIGZldGNoIHR3by4KKwkgKi8K KwlFeGVjdXRvclJ1bihxdWVyeURlc2MsIEZvcndhcmRTY2FuRGlyZWN0aW9uLCAyTCk7CisKKwkv KiBzYXZlIHRoZSByb3djb3VudCBpZiB3ZSdyZSBnaXZlbiBhIFF1ZXJ5Q29tcGxldGlvbiB0byBm aWxsICovCisJaWYgKHFjKQorCQlTZXRRdWVyeUNvbXBsZXRpb24ocWMsIENNRFRBR19MRVQsIHF1 ZXJ5RGVzYy0+ZXN0YXRlLT5lc19wcm9jZXNzZWQpOworCisJLyogYW5kIGNsZWFuIHVwICovCisJ RXhlY3V0b3JGaW5pc2gocXVlcnlEZXNjKTsKKwlFeGVjdXRvckVuZChxdWVyeURlc2MpOworCisJ RnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOworCisJUG9wQWN0aXZlU25hcHNob3QoKTsKK30KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9k ZXMvbm9kZUZ1bmNzLmMKaW5kZXggYzc2MWZkZTZhY2IuLmQxMGMzMTdhMmNjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9u b2RlRnVuY3MuYwpAQCAtNDM3NCw2ICs0Mzc0LDE0IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fs a2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsK KwkJY2FzZSBUX0xldFN0bXQ6CisJCQl7CisJCQkJTGV0U3RtdCAgICAqc3RtdCA9IChMZXRTdG10 ICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzdG10LT5xdWVyeSkpCisJCQkJCXJldHVybiB0cnVl OworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CiAJCQl7CiAJCQkJUExB c3NpZ25TdG10ICpzdG10ID0gKFBMQXNzaWduU3RtdCAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm5lci5jCmluZGV4IGNjMDNiMDMxMWE0Li42YWNjNjNjOWJjZSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAtMzc1LDYgKzM3NSw3IEBAIHN0YW5kYXJkX3Bs YW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JP cHRpb25zLAogCWdsb2ItPnBhcnRpdGlvbl9kaXJlY3RvcnkgPSBOVUxMOwogCWdsb2ItPnJlbF9u b3RudWxsYXR0c19oYXNoID0gTlVMTDsKIAlnbG9iLT5zZXNzaW9uVmFyaWFibGVzID0gTklMOwor CWdsb2ItPnJlc3VsdFZhcmlhYmxlID0gcGFyc2UtPnJlc3VsdFZhcmlhYmxlOwogCiAJLyoKIAkg KiBBc3Nlc3Mgd2hldGhlciBpdCdzIGZlYXNpYmxlIHRvIHVzZSBwYXJhbGxlbCBtb2RlIGZvciB0 aGlzIHF1ZXJ5LiBXZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggYzM4OTdhYWZkMjEuLmQwMjRiOTMy ZDA4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTUyLDE1ICs1MiwxOCBAQAogI2luY2x1ZGUgInV0 aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMv cmVsLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lz Y2FjaGUuaCIKIAogCi0vKiBQYXNzdGhyb3VnaCBkYXRhIGZvciB0cmFuc2Zvcm1QTEFzc2lnblN0 bXRUYXJnZXQgKi8KKy8qIFBhc3N0aHJvdWdoIGRhdGEgZm9yIHRyYW5zZm9ybUFzc2lnblRhcmdl dCAqLwogdHlwZWRlZiBzdHJ1Y3QgU2VsZWN0U3RtdFBhc3N0aHJvdWdoCiB7Ci0JUExBc3NpZ25T dG10ICpzdG10OwkJCS8qIHRoZSBhc3NpZ25tZW50IHN0YXRlbWVudCAqLworCU5vZGUJICAgKnN0 bXQ7CQkJLyogdGhlIGFzc2lnbm1lbnQgc3RhdGVtZW50ICovCiAJTm9kZQkgICAqdGFyZ2V0OwkJ CS8qIG5vZGUgcmVwcmVzZW50aW5nIHRoZSB0YXJnZXQgdmFyaWFibGUgKi8KKwljaGFyCSAgICp0 YXJnZXRfbmFtZTsJLyogdGhlIG5hbWUgdXNlZCBieSBlcnIgKi8KIAlMaXN0CSAgICppbmRpcmVj dGlvbjsJLyogaW5kaXJlY3Rpb24geWV0IHRvIGJlIGFwcGxpZWQgdG8gdGFyZ2V0ICovCisJQ29l cmNpb25Db250ZXh0IGNjb250ZXh0OyAJLyogY29udGV4dCBpbmRpY2F0b3JzIHRvIGNvbnRyb2wg Y29lcmNpb25zICovCiB9IFNlbGVjdFN0bXRQYXNzdGhyb3VnaDsKIAogLyogSG9vayBmb3IgcGx1 Z2lucyB0byBnZXQgY29udHJvbCBhdCBlbmQgb2YgcGFyc2UgYW5hbHlzaXMgKi8KQEAgLTg0LDcg Kzg3LDcgQEAgc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1SZXR1cm5TdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgUmV0dXJuU3RtdCAqc3RtdCk7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybVVwZGF0ZVN0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAq dHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCVBMQXNz aWduU3RtdCAqc3RtdCk7Ci1zdGF0aWMgTGlzdCAqdHJhbnNmb3JtUExBc3NpZ25TdG10VGFyZ2V0 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGxpc3QsCitzdGF0aWMgTGlzdCAqdHJhbnNmb3Jt QXNzaWduVGFyZ2V0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGxpc3QsCiAJCQkJCQkJCQkJ IFNlbGVjdFN0bXRQYXNzdGhyb3VnaCAqcGFzc3RocnUpOwogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zv cm1EZWNsYXJlQ3Vyc29yU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIERlY2xh cmVDdXJzb3JTdG10ICpzdG10KTsKQEAgLTk0LDYgKzk3LDggQEAgc3RhdGljIFF1ZXJ5ICp0cmFu c2Zvcm1DcmVhdGVUYWJsZUFzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIENy ZWF0ZVRhYmxlQXNTdG10ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ2FsbFN0bXQo UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQlDYWxsU3RtdCAqc3RtdCk7CitzdGF0aWMgUXVl cnkgKnRyYW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCSAgIExldFN0 bXQgKnN0bXQpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtTG9ja2luZ0NsYXVzZShQYXJzZVN0YXRl ICpwc3RhdGUsIFF1ZXJ5ICpxcnksCiAJCQkJCQkJCSAgIExvY2tpbmdDbGF1c2UgKmxjLCBib29s IHB1c2hlZERvd24pOwogI2lmZGVmIERFQlVHX05PREVfVEVTVFNfRU5BQkxFRApAQCAtMzQxLDYg KzM0Niw3IEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpwYXJzZVRy ZWUpCiAJCQljYXNlIFRfVXBkYXRlU3RtdDoKIAkJCWNhc2UgVF9EZWxldGVTdG10OgogCQkJY2Fz ZSBUX01lcmdlU3RtdDoKKwkJCWNhc2UgVF9MZXRTdG10OgogCQkJCSh2b2lkKSB0ZXN0X3Jhd19l eHByZXNzaW9uX2NvdmVyYWdlKHBhcnNlVHJlZSwgTlVMTCk7CiAJCQkJYnJlYWs7CiAJCQlkZWZh dWx0OgpAQCAtNDIwLDYgKzQyNiwxMSBAQCB0cmFuc2Zvcm1TdG10KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTm9kZSAqcGFyc2VUcmVlKQogCQkJCQkJCQkJICAgKENhbGxTdG10ICopIHBhcnNlVHJlZSk7 CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXJlc3VsdCA9IHRyYW5zZm9ybUxl dFN0bXQocHN0YXRlLAorCQkJCQkJCQkJICAoTGV0U3RtdCAqKSBwYXJzZVRyZWUpOworCQkJYnJl YWs7CisKIAkJZGVmYXVsdDoKIAogCQkJLyoKQEAgLTQ4MSw2ICs0OTIsNyBAQCBzdG10X3JlcXVp cmVzX3BhcnNlX2FuYWx5c2lzKFJhd1N0bXQgKnBhcnNlVHJlZSkKIAkJY2FzZSBUX0V4cGxhaW5T dG10OgogCQljYXNlIFRfQ3JlYXRlVGFibGVBc1N0bXQ6CiAJCWNhc2UgVF9DYWxsU3RtdDoKKwkJ Y2FzZSBUX0xldFN0bXQ6CiAJCQlyZXN1bHQgPSB0cnVlOwogCQkJYnJlYWs7CiAKQEAgLTU0Niw2 ICs1NTgsNyBAQCBxdWVyeV9yZXF1aXJlc19yZXdyaXRlX3BsYW4oUXVlcnkgKnF1ZXJ5KQogCQkJ Y2FzZSBUX0V4cGxhaW5TdG10OgogCQkJY2FzZSBUX0NyZWF0ZVRhYmxlQXNTdG10OgogCQkJY2Fz ZSBUX0NhbGxTdG10OgorCQkJY2FzZSBUX0xldFN0bXQ6CiAJCQkJcmVzdWx0ID0gdHJ1ZTsKIAkJ CQlicmVhazsKIAkJCWRlZmF1bHQ6CkBAIC0xMzg5LDcgKzE0MDIsNyBAQCBjb3VudF9yb3dleHBy X2NvbHVtbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogICoKICAqIFRoaXMgZnVu Y3Rpb24gaXMgYWxzbyB1c2VkIHRvIHRyYW5zZm9ybSB0aGUgc291cmNlIGV4cHJlc3Npb24gb2Yg YQogICogUExBc3NpZ25TdG10LiAgSW4gdGhhdCB1c2FnZSwgcGFzc3RocnUgaXMgbm9uLU5VTEwg YW5kIHdlIG5lZWQgdG8KLSAqIGNhbGwgdHJhbnNmb3JtUExBc3NpZ25TdG10VGFyZ2V0IGFmdGVy IHRoZSBpbml0aWFsIHRyYW5zZm9ybWF0aW9uIG9mIHRoZQorICogY2FsbCB0cmFuc2Zvcm1Bc3Np Z25UYXJnZXQgYWZ0ZXIgdGhlIGluaXRpYWwgdHJhbnNmb3JtYXRpb24gb2YgdGhlCiAgKiBTRUxF Q1QncyB0YXJnZXRsaXN0LiAgKFdlIGNvdWxkIGdlbmVyYWxpemUgdGhpcyBpbnRvIGFuIGFyYml0 cmFyeSBjYWxsYmFjawogICogZnVuY3Rpb24sIGJ1dCBmb3Igbm93IHRoYXQgd291bGQganVzdCBi ZSBtb3JlIG5vdGF0aW9uIHdpdGggbm8gYmVuZWZpdC4pCiAgKiBBbGwgdGhlIHJlc3QgaXMgdGhl IHNhbWUgYXMgYSByZWd1bGFyIFNlbGVjdFN0bXQuCkBAIC0xNDQyLDggKzE0NTUsOCBAQCB0cmFu c2Zvcm1TZWxlY3RTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCwKIAkg KiBPdGhlcndpc2UsIG1hcmsgY29sdW1uIG9yaWdpbnMgKHdoaWNoIGFyZSB1c2VsZXNzIGluIGEg UExBc3NpZ25TdG10KS4KIAkgKi8KIAlpZiAocGFzc3RocnUpCi0JCXFyeS0+dGFyZ2V0TGlzdCA9 IHRyYW5zZm9ybVBMQXNzaWduU3RtdFRhcmdldChwc3RhdGUsIHFyeS0+dGFyZ2V0TGlzdCwKLQkJ CQkJCQkJCQkJCQkgIHBhc3N0aHJ1KTsKKwkJcXJ5LT50YXJnZXRMaXN0ID0gdHJhbnNmb3JtQXNz aWduVGFyZ2V0KHBzdGF0ZSwgcXJ5LT50YXJnZXRMaXN0LAorCQkJCQkJCQkJCQkJcGFzc3RocnUp OwogCWVsc2UKIAkJbWFya1RhcmdldExpc3RPcmlnaW5zKHBzdGF0ZSwgcXJ5LT50YXJnZXRMaXN0 KTsKIApAQCAtMjg0MSw5ICsyODU0LDExIEBAIHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0 YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAkJCQkJCSAgIEVYUFJfS0lORF9VUERB VEVfVEFSR0VUKTsKIAogCS8qIFNldCB1cCBwYXNzdGhyb3VnaCBkYXRhIGZvciB0cmFuc2Zvcm1Q TEFzc2lnblN0bXRUYXJnZXQgKi8KLQlwYXNzdGhydS5zdG10ID0gc3RtdDsKKwlwYXNzdGhydS5z dG10ID0gKE5vZGUgKikgc3RtdDsKIAlwYXNzdGhydS50YXJnZXQgPSB0YXJnZXQ7CisJcGFzc3Ro cnUudGFyZ2V0X25hbWUgPSBzdG10LT5uYW1lOwogCXBhc3N0aHJ1LmluZGlyZWN0aW9uID0gaW5k aXJlY3Rpb247CisJcGFzc3RocnUuY2NvbnRleHQgPSBDT0VSQ0lPTl9QTFBHU1FMOwogCiAJLyoK IAkgKiBUbyBhdm9pZCBkdXBsaWNhdGluZyBhIGxvdCBvZiBjb2RlLCB3ZSB1c2UgdHJhbnNmb3Jt U2VsZWN0U3RtdCB0byBkbwpAQCAtMjg2NiwxOCArMjg4MSwyMSBAQCB0cmFuc2Zvcm1QTEFzc2ln blN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAKIC8qCiAgKiBD YWxsYmFjayBmdW5jdGlvbiB0byBhZGp1c3QgYSBTRUxFQ1QncyB0bGlzdCB0byBtYWtlIHRoZSBv dXRwdXQgc3VpdGFibGUKLSAqIGZvciBhc3NpZ25tZW50IHRvIGEgUExBc3NpZ25TdG10J3MgdGFy Z2V0IHZhcmlhYmxlLgorICogZm9yIGFzc2lnbm1lbnQgdG8gYSBQTEFzc2lnblN0bXQncyB0YXJn ZXQgdmFyaWFibGUgcHIgTEVUJ3MgdGFyZ2V0CisgKiBzZXNzaW9uIHZhcmlhYmxlLgogICoKICAq IE5vdGU6IHdlIGFjdHVhbGx5IG1vZGlmeSB0aGUgdGxlLT5leHByIGluLXBsYWNlLCBidXQgdGhl IGZ1bmN0aW9uJ3MgQVBJCiAgKiBpcyBzZXQgdXAgdG8gbm90IHByZXN1bWUgdGhhdC4KICAqLwog c3RhdGljIExpc3QgKgotdHJhbnNmb3JtUExBc3NpZ25TdG10VGFyZ2V0KFBhcnNlU3RhdGUgKnBz dGF0ZSwgTGlzdCAqdGxpc3QsCi0JCQkJCQkJU2VsZWN0U3RtdFBhc3N0aHJvdWdoICpwYXNzdGhy dSkKK3RyYW5zZm9ybUFzc2lnblRhcmdldChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRsaXN0 LAorCQkJCQkgIFNlbGVjdFN0bXRQYXNzdGhyb3VnaCAqcGFzc3RocnUpCiB7Ci0JUExBc3NpZ25T dG10ICpzdG10ID0gcGFzc3RocnUtPnN0bXQ7CisJTm9kZQkgICAqc3RtdCA9IHBhc3N0aHJ1LT5z dG10OwogCU5vZGUJICAgKnRhcmdldCA9IHBhc3N0aHJ1LT50YXJnZXQ7CisJY2hhcgkgICAqdGFy Z2V0X25hbWUgPSBwYXNzdGhydS0+dGFyZ2V0X25hbWU7CiAJTGlzdAkgICAqaW5kaXJlY3Rpb24g PSBwYXNzdGhydS0+aW5kaXJlY3Rpb247CisJQ29lcmNpb25Db250ZXh0IGNjb250ZXh0ID0gcGFz c3RocnUtPmNjb250ZXh0OwogCU9pZAkJCXRhcmdldHR5cGU7CiAJaW50MzIJCXRhcmdldHR5cG1v ZDsKIAlPaWQJCQl0YXJnZXRjb2xsYXRpb247CkBAIC0yOTEyLDcgKzI5MzAsNyBAQCB0cmFuc2Zv cm1QTEFzc2lnblN0bXRUYXJnZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICp0bGlzdCwKIAkJ dGxlLT5leHByID0gKEV4cHIgKikKIAkJCXRyYW5zZm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihw c3RhdGUsCiAJCQkJCQkJCQkJICAgdGFyZ2V0LAotCQkJCQkJCQkJCSAgIHN0bXQtPm5hbWUsCisJ CQkJCQkJCQkJICAgdGFyZ2V0X25hbWUsCiAJCQkJCQkJCQkJICAgZmFsc2UsCiAJCQkJCQkJCQkJ ICAgdGFyZ2V0dHlwZSwKIAkJCQkJCQkJCQkgICB0YXJnZXR0eXBtb2QsCkBAIC0yOTIwLDEwICsy OTM4LDEwIEBAIHRyYW5zZm9ybVBMQXNzaWduU3RtdFRhcmdldChQYXJzZVN0YXRlICpwc3RhdGUs IExpc3QgKnRsaXN0LAogCQkJCQkJCQkJCSAgIGluZGlyZWN0aW9uLAogCQkJCQkJCQkJCSAgIGxp c3RfaGVhZChpbmRpcmVjdGlvbiksCiAJCQkJCQkJCQkJICAgKE5vZGUgKikgdGxlLT5leHByLAot CQkJCQkJCQkJCSAgIENPRVJDSU9OX1BMUEdTUUwsCisJCQkJCQkJCQkJICAgY2NvbnRleHQsCiAJ CQkJCQkJCQkJICAgZXhwckxvY2F0aW9uKHRhcmdldCkpOwogCX0KLQllbHNlIGlmICh0YXJnZXR0 eXBlICE9IHR5cGVfaWQgJiYKKwllbHNlIGlmIChJc0Eoc3RtdCwgUExBc3NpZ25TdG10KSAmJiB0 YXJnZXR0eXBlICE9IHR5cGVfaWQgJiYKIAkJCSAodGFyZ2V0dHlwZSA9PSBSRUNPUkRPSUQgfHwg SVNDT01QTEVYKHRhcmdldHR5cGUpKSAmJgogCQkJICh0eXBlX2lkID09IFJFQ09SRE9JRCB8fCBJ U0NPTVBMRVgodHlwZV9pZCkpKQogCXsKQEAgLTI5NDYsNyArMjk2NCw3IEBAIHRyYW5zZm9ybVBM QXNzaWduU3RtdFRhcmdldChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRsaXN0LAogCQkJY29l cmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwKIAkJCQkJCQkJICBvcmlnX2V4cHIsIHR5cGVfaWQs CiAJCQkJCQkJCSAgdGFyZ2V0dHlwZSwgdGFyZ2V0dHlwbW9kLAotCQkJCQkJCQkgIENPRVJDSU9O X1BMUEdTUUwsCisJCQkJCQkJCSAgY2NvbnRleHQsCiAJCQkJCQkJCSAgQ09FUkNFX0lNUExJQ0lU X0NBU1QsCiAJCQkJCQkJCSAgLTEpOwogCQkvKiBXaXRoIENPRVJDSU9OX1BMUEdTUUwsIHRoaXMg ZXJyb3IgaXMgcHJvYmFibHkgdW5yZWFjaGFibGUgKi8KQEAgLTI5NTUsNyArMjk3Myw3IEBAIHRy YW5zZm9ybVBMQXNzaWduU3RtdFRhcmdldChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRsaXN0 LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKIAkJCQkJIGVycm1z ZygidmFyaWFibGUgXCIlc1wiIGlzIG9mIHR5cGUgJXMiCiAJCQkJCQkJIiBidXQgZXhwcmVzc2lv biBpcyBvZiB0eXBlICVzIiwKLQkJCQkJCQlzdG10LT5uYW1lLAorCQkJCQkJCXRhcmdldF9uYW1l LAogCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldHR5cGUpLAogCQkJCQkJCWZvcm1hdF90eXBl X2JlKHR5cGVfaWQpKSwKIAkJCQkJIGVycmhpbnQoIllvdSB3aWxsIG5lZWQgdG8gcmV3cml0ZSBv ciBjYXN0IHRoZSBleHByZXNzaW9uLiIpLApAQCAtMzMxOSw2ICszMzM3LDU5IEBAIHRyYW5zZm9y bUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2FsbFN0bXQgKnN0bXQpCiAJcmV0dXJuIHJl c3VsdDsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUxldFN0bXQgLQorICoJICB0cmFuc2Zvcm0gYW4g TGV0IFN0YXRlbWVudAorICovCitzdGF0aWMgUXVlcnkgKgordHJhbnNmb3JtTGV0U3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCit7CisJUXVlcnkJICAgKnFyeTsKKwlRdWVy eQkgICAqcmVzdWx0OworCU5vZGUJICAgKnRhcmdldDsKKwlWYXJpYWJsZUZlbmNlICp2ZjsKKwlT ZWxlY3RTdG10UGFzc3Rocm91Z2ggcGFzc3RocnU7CisJUGFyYW0JICAgKnBhcmFtdmFyOworCisJ LyogZ3JhbSBhbGxvd3Mgb25seSBTRUxFQ1QgKi8KKwlBc3NlcnQoSXNBKHN0bXQtPnF1ZXJ5LCBT ZWxlY3RTdG10KSk7CisKKwkvKiBVc2UgaW1wbGljaXQgVmFyaWFibGVGZW5jZSBmb3IgZm9yY2lu ZyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCXZmID0gbWFrZU5vZGUoVmFyaWFibGVGZW5jZSk7CisJ dmYtPnZhcm5hbWUgPSBzdG10LT50YXJnZXQ7CisJdmYtPmxvY2F0aW9uID0gc3RtdC0+bG9jYXRp b247CisKKwl0YXJnZXQgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUgKikgdmYsIEVYUFJf S0lORF9MRVRfVEFSR0VUKTsKKworCXBhcmFtdmFyID0gY2FzdE5vZGUoUGFyYW0sIHRhcmdldCk7 CisKKwlBc3NlcnQocGFyYW12YXItPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSk7CisKKwkv KiBTZXQgdXAgcGFzc3Rocm91Z2ggZGF0YSBmb3IgdHJhbnNmb3JtQXNzaWduVGFyZ2V0ICovCisJ cGFzc3RocnUuc3RtdCA9IChOb2RlICopIHN0bXQ7CisJcGFzc3RocnUudGFyZ2V0ID0gKE5vZGUg KikgcGFyYW12YXI7CisJcGFzc3RocnUudGFyZ2V0X25hbWUgPSBwYXJhbXZhci0+cGFyYW12YXJu YW1lOworCXBhc3N0aHJ1LmluZGlyZWN0aW9uID0gTklMOworCXBhc3N0aHJ1LmNjb250ZXh0ID0g Q09FUkNJT05fQVNTSUdOTUVOVDsKKworCS8qIHdlIG5lZWQgdG8gcG9zdHBvbmUgY29udmVyc2lv biBvZiAidW5rbm93biIgdG8gdGV4dCAqLworCXBzdGF0ZS0+cF9yZXNvbHZlX3Vua25vd25zID0g ZmFsc2U7CisKKwlxcnkgPSB0cmFuc2Zvcm1TZWxlY3RTdG10KHBzdGF0ZSwgKFNlbGVjdFN0bXQg Kikgc3RtdC0+cXVlcnksICZwYXNzdGhydSk7CisKKwlxcnktPnJlc3VsdFZhcmlhYmxlID0gcGFy YW12YXItPnBhcmFtdmFybmFtZTsKKwlxcnktPmNhblNldFRhZyA9IHRydWU7CisKKwlzdG10LT5x dWVyeSA9IChOb2RlICopIHFyeTsKKworCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0 aWxpdHkgUXVlcnkgKi8KKwlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CisJcmVzdWx0LT5jb21t YW5kVHlwZSA9IENNRF9VVElMSVRZOworCXJlc3VsdC0+dXRpbGl0eVN0bXQgPSAoTm9kZSAqKSBz dG10OworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIFByb2R1Y2UgYSBzdHJpbmcgcmVw cmVzZW50YXRpb24gb2YgYSBMb2NrQ2xhdXNlU3RyZW5ndGggdmFsdWUuCiAgKiBUaGlzIHNob3Vs ZCBvbmx5IGJlIGFwcGxpZWQgdG8gdmFsaWQgdmFsdWVzIChub3QgTENTX05PTkUpLgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKaW5kZXggODM3MzMwYTgwN2YuLjMyN2VjZjg4NzEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTMwMSw3 ICszMDEsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlEcm9wVHJhbnNmb3JtU3RtdAog CQlEcm9wVXNlck1hcHBpbmdTdG10IEV4cGxhaW5TdG10IEZldGNoU3RtdAogCQlHcmFudFN0bXQg R3JhbnRSb2xlU3RtdCBJbXBvcnRGb3JlaWduU2NoZW1hU3RtdCBJbmRleFN0bXQgSW5zZXJ0U3Rt dAotCQlMaXN0ZW5TdG10IExvYWRTdG10IExvY2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4 cGxhaW5hYmxlU3RtdCBQcmVwYXJhYmxlU3RtdAorCQlMZXRTdG10IExpc3RlblN0bXQgTG9hZFN0 bXQgTG9ja1N0bXQgTWVyZ2VTdG10IE5vdGlmeVN0bXQgRXhwbGFpbmFibGVTdG10IFByZXBhcmFi bGVTdG10CiAJCUNyZWF0ZUZ1bmN0aW9uU3RtdCBBbHRlckZ1bmN0aW9uU3RtdCBSZWluZGV4U3Rt dCBSZW1vdmVBZ2dyU3RtdAogCQlSZW1vdmVGdW5jU3RtdCBSZW1vdmVPcGVyU3RtdCBSZW5hbWVT dG10IFJldHVyblN0bXQgUmV2b2tlU3RtdCBSZXZva2VSb2xlU3RtdAogCQlSdWxlQWN0aW9uU3Rt dCBSdWxlQWN0aW9uU3RtdE9yRW1wdHkgUnVsZVN0bXQKQEAgLTc0Nyw3ICs3NDcsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxp YXNlcywgTm9kZSAqcXVlcnkpOwogCUtFRVAgS0VZIEtFWVMKIAogCUxBQkVMIExBTkdVQUdFIExB UkdFX1AgTEFTVF9QIExBVEVSQUxfUAotCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVW RUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAorCUxFQURJTkcgTEVBS1BST09GIExFQVNU IExFVCBMRUZUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKIAlMT0NBTFRJTUUg TE9DQUxUSU1FU1RBTVAgTE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dHRUQgTFNOX1AKIAogCU1B UFBJTkcgTUFUQ0ggTUFUQ0hFRCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVSR0VfQUNU SU9OIE1FVEhPRApAQCAtMTA5NSw2ICsxMDk1LDcgQEAgc3RtdDoKIAkJCXwgSW1wb3J0Rm9yZWln blNjaGVtYVN0bXQKIAkJCXwgSW5kZXhTdG10CiAJCQl8IEluc2VydFN0bXQKKwkJCXwgTGV0U3Rt dAogCQkJfCBMaXN0ZW5TdG10CiAJCQl8IFJlZnJlc2hNYXRWaWV3U3RtdAogCQkJfCBMb2FkU3Rt dApAQCAtMTI5MzIsNiArMTI5MzMsMzcgQEAgb3B0X2hvbGQ6IC8qIEVNUFRZICovCQkJCQkJeyAk JCA9IDA7IH0KIAkJCXwgV0lUSE9VVCBIT0xECQkJCQl7ICQkID0gMDsgfQogCQk7CiAKKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorICoKKyAqCQlRVUVSWToKKyAqCQkJCUxFVCBTVEFURU1FTlQKKyAq CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCitMZXRTdG10OglMRVQgQ29sSWQgJz0nIGFfZXhwcgor CQkJCXsKKwkJCQkJTGV0U3RtdAkgICAqbiA9IG1ha2VOb2RlKExldFN0bXQpOworCQkJCQlTZWxl Y3RTdG10ICpzZWxlY3Q7CisJCQkJCVJlc1RhcmdldCAgKnJlczsKKworCQkJCQluLT50YXJnZXQg PSAkMjsKKworCQkJCQlzZWxlY3QgPSBtYWtlTm9kZShTZWxlY3RTdG10KTsKKwkJCQkJcmVzID0g bWFrZU5vZGUoUmVzVGFyZ2V0KTsKKworCQkJCQkvKiBjcmVhdGUgdGFyZ2V0IGxpc3QgZm9yIGlt cGxpY2l0IHF1ZXJ5ICovCisJCQkJCXJlcy0+bmFtZSA9IE5VTEw7CisJCQkJCXJlcy0+aW5kaXJl Y3Rpb24gPSBOSUw7CisJCQkJCXJlcy0+dmFsID0gKE5vZGUgKikgJDQ7CisJCQkJCXJlcy0+bG9j YXRpb24gPSBANDsKKworCQkJCQlzZWxlY3QtPnRhcmdldExpc3QgPSBsaXN0X21ha2UxKHJlcyk7 CisJCQkJCW4tPnF1ZXJ5ID0gKE5vZGUgKikgc2VsZWN0OworCisJCQkJCW4tPmxvY2F0aW9uID0g QDI7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCiAgKgogICoJCVFVRVJZOgpAQCAtMTgwMzcsNiArMTgwNjksNyBAQCB1bnJlc2VydmVk X2tleXdvcmQ6CiAJCQl8IExBUkdFX1AKIAkJCXwgTEFTVF9QCiAJCQl8IExFQUtQUk9PRgorCQkJ fCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElTVEVOCiAJCQl8IExPQUQKQEAgLTE4NjUzLDYgKzE4 Njg2LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBMRUFLUFJPT0YKIAkJCXwgTEVBU1QK IAkJCXwgTEVGVAorCQkJfCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElLRQogCQkJfCBMSVNURU4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCBiODM0MDU1N2IzNC4uYTliZDRlNjgxNTQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMKQEAgLTU4NCw2ICs1ODQsMTAgQEAgY2hlY2tfYWdnbGV2ZWxzX2Fu ZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQllcnJraW5k ID0gdHJ1ZTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQll cnJraW5kID0gdHJ1ZTsKKwkJCWJyZWFrOworCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50 aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCiAJCQkgKiBjb21waWxl ciB3aWxsIHdhcm4gaWYgd2UgYWRkIGEgbmV3IFBhcnNlRXhwcktpbmQgd2l0aG91dApAQCAtMTAy Myw2ICsxMDI3LDkgQEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0ZSAqcHN0YXRl LCBXaW5kb3dGdW5jICp3ZnVuYywKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVy cmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJ CQllcnJraW5kID0gdHJ1ZTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50 ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYwppbmRleCA4OTY2MWQzODM1Ny4uYTg0ODEwZWRiZDggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYwpAQCAtNTkxLDYgKzU5MSw5IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0 YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9O X0JPVU5EOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBjb2x1bW4gcmVmZXJlbmNlIGluIHBhcnRp dGlvbiBib3VuZCBleHByZXNzaW9uIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfTEVU X1RBUkdFVDoKKwkJCWVyciA9IF8oImNhbm5vdCB1c2UgY29sdW1uIHJlZmVyZW5jZSBhcyB0YXJn ZXQgb2YgTEVUIGNvbW1hbmQiKTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMg aW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBAIC05NjEs NiArOTY0LDcgQEAgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJL aW5kIHBfZXhwcl9raW5kKQogCQljYXNlIEVYUFJfS0lORF9SRVRVUk5JTkc6CiAJCWNhc2UgRVhQ Ul9LSU5EX1ZBTFVFUzoKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRToKKwkJY2FzZSBF WFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCXJlc3VsdCA9IHRydWU7CiAJCQlicmVhazsKIApAQCAt MTk4MCw2ICsxOTg0LDkgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1 YkxpbmsgKnN1YmxpbmspCiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJCQll cnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Np b24iKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJZXJyID0g XygiY2Fubm90IHVzZSBzdWJxdWVyeSBhcyBhIHRhcmdldCBvZiBMRVQgY29tbWFuZCIpOworCQkJ YnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6 IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKQEAgLTMzMzksNiArMzM0Niw4IEBAIFBhcnNlRXhwcktp bmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4gIkdFTkVSQVRFRCBBUyI7 CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQlyZXR1cm4gIkNZQ0xFIjsKKwkJY2Fz ZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCXJldHVybiAiTEVUIjsKIAogCQkJLyoKIAkJCSAq IFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRo ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggNzc4ZDY5YzZmM2MuLjEzNjE2YzliM2MyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI3ODMsNiArMjc4Myw5IEBAIGNoZWNrX3NyZl9j YWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9j YXRpb24pCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsK IAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRy dWU7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8g ZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCA3ZGM5YzBh NmM4MC4uM2YxYzhjYjVlODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j CisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0yMzcsNiArMjM3LDcgQEAgQ2xh c3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9kZSAqcGFyc2V0cmVlKQogCiAJCWNhc2Ug VF9DYWxsU3RtdDoKIAkJY2FzZSBUX0RvU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQl7CiAJ CQkJLyoKIAkJCQkgKiBDb21tYW5kcyBpbnNpZGUgdGhlIERPIGJsb2NrIG9yIHRoZSBjYWxsZWQg cHJvY2VkdXJlIG1pZ2h0CkBAIC0xMDc1LDYgKzEwNzYsMTEgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0 aWxpdHkoUGxhbm5lZFN0bXQgKnBzdG10LAogCQkJRHJvcFZhcmlhYmxlQnlOYW1lKCgoRHJvcFNl c3Npb25WYXJTdG10ICopIHBhcnNldHJlZSktPm5hbWUpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBU X0xldFN0bXQ6CisJCQlFeGVjdXRlTGV0U3RtdChwc3RhdGUsIChMZXRTdG10ICopIHBhcnNldHJl ZSwgcGFyYW1zLAorCQkJCQkJICAgcXVlcnlFbnYsIHFjKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1 bHQ6CiAJCQkvKiBBbGwgb3RoZXIgc3RhdGVtZW50IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dlciBz dXBwb3J0ICovCiAJCQlQcm9jZXNzVXRpbGl0eVNsb3cocHN0YXRlLCBwc3RtdCwgcXVlcnlTdHJp bmcsCkBAIC0yMjE5LDYgKzIyMjUsMTAgQEAgVXRpbGl0eUNvbnRhaW5zUXVlcnkoTm9kZSAqcGFy c2V0cmVlKQogCQkJCXJldHVybiBVdGlsaXR5Q29udGFpbnNRdWVyeShxcnktPnV0aWxpdHlTdG10 KTsKIAkJCXJldHVybiBxcnk7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlxcnkgPSBjYXN0Tm9k ZShRdWVyeSwgKChMZXRTdG10ICopIHBhcnNldHJlZSktPnF1ZXJ5KTsKKwkJCXJldHVybiBxcnk7 CisKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBOVUxMOwogCX0KQEAgLTI0MTQsNiArMjQyNCwxMCBA QCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9IENNRFRBR19TRUxF Q1Q7CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXRhZyA9IENNRFRBR19MRVQ7 CisJCQlicmVhazsKKwogCQkJLyogdXRpbGl0eSBzdGF0ZW1lbnRzIC0tLSBzYW1lIHdoZXRoZXIg cmF3IG9yIGNvb2tlZCAqLwogCQljYXNlIFRfVHJhbnNhY3Rpb25TdG10OgogCQkJewpAQCAtMzMw NCw2ICszMzE4LDcgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWJy ZWFrOwogCiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJbGV2 ID0gTE9HU1RNVF9BTEw7CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGQy NTdiNGZjMzdhLi40ZGEzNjE0NDE0NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTI2NSw4 ICsxMjY1LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHNxbF9jb21tYW5kc1tdID0gewog CSJBQk9SVCIsICJBTFRFUiIsICJBTkFMWVpFIiwgIkJFR0lOIiwgIkNBTEwiLCAiQ0hFQ0tQT0lO VCIsICJDTE9TRSIsICJDTFVTVEVSIiwKIAkiQ09NTUVOVCIsICJDT01NSVQiLCAiQ09QWSIsICJD UkVBVEUiLCAiREVBTExPQ0FURSIsICJERUNMQVJFIiwKIAkiREVMRVRFIEZST00iLCAiRElTQ0FS RCIsICJETyIsICJEUk9QIiwgIkVORCIsICJFWEVDVVRFIiwgIkVYUExBSU4iLAotCSJGRVRDSCIs ICJHUkFOVCIsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTElTVEVO IiwgIkxPQUQiLCAiTE9DSyIsCi0JIk1FUkdFIElOVE8iLCAiTU9WRSIsICJOT1RJRlkiLCAiUFJF UEFSRSIsCisJIkZFVENIIiwgIkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNF UlQgSU5UTyIsICJMRVQiLAorCSJMSVNURU4iLCAiTE9BRCIsICJMT0NLIiwgIk1FUkdFIElOVE8i LCAiTU9WRSIsICJOT1RJRlkiLCAiUFJFUEFSRSIsCiAJIlJFQVNTSUdOIiwgIlJFRlJFU0ggTUFU RVJJQUxJWkVEIFZJRVciLCAiUkVJTkRFWCIsICJSRUxFQVNFIiwKIAkiUkVTRVQiLCAiUkVWT0tF IiwgIlJPTExCQUNLIiwKIAkiU0FWRVBPSU5UIiwgIlNFQ1VSSVRZIExBQkVMIiwgIlNFTEVDVCIs ICJTRVQiLCAiU0hPVyIsICJTVEFSVCIsCkBAIC00Nzk4LDYgKzQ3OTgsMTEgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBTFVF UyIpICYmICFUYWlsTWF0Y2hlcygiREVGQVVMVCIsICJWQUxVRVMiKSkKIAkJQ09NUExFVEVfV0lU SCgiKCIpOwogCisvKiBMRVQgKi8KKwkvKiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxlPiB3aXRoICI9 IiAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRF X1dJVEgoIj0iKTsKKwogLyogTE9DSyAqLwogCS8qIENvbXBsZXRlIExPQ0sgW1RBQkxFXSBbT05M WV0gd2l0aCBhIGxpc3Qgb2YgdGFibGVzICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiTE9DSyIpKQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3Jj L2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IDYxMGI3NTc4OTllLi5j NGI0ZDllNjgzMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAt MTYsOCArMTYsMTAgQEAKICNkZWZpbmUgU0VTU0lPTlZBUklBQkxFX0gKIAogI2luY2x1ZGUgImNh dGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgIm5vZGVzL3BhcmFtcy5oIgogI2luY2x1 ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCiAjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgor I2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAKIGV4dGVybiB2b2lkIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpOwogZXh0ZXJuIHZv aWQgRHJvcFZhcmlhYmxlQnlOYW1lKGNoYXIgKnZhcm5hbWUpOwpAQCAtMzIsNCArMzQsNyBAQCBl eHRlcm4gdm9pZCBnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQoY2hhciAq dmFybmFtZSwKIAkJCQkJCQkJCQkJCQlpbnQzMiAqdHlwbW9kLAogCQkJCQkJCQkJCQkJCU9pZCAq Y29sbGlkKTsKIAorZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBMZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKKwkJCQkJCSAgIFF1ZXJ5RW52 aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKKwogI2VuZGlmCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKaW5kZXggNDg3NDY0YjE0YjEuLjNkZWNjNjM5ZDgxIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCkBAIC0xNDcsNiArMTQ3LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAkg Ki8KIAlpbnQJCQlyZXN1bHRSZWxhdGlvbiBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9y ZSk7CiAKKwkvKiB0YXJnZXQgdmFyaWFibGUgb2YgTEVUIHN0YXRlbWVudCAqLworCWNoYXIJICAg KnJlc3VsdFZhcmlhYmxlOworCiAJLyogaGFzIGFnZ3JlZ2F0ZXMgaW4gdGxpc3Qgb3IgaGF2aW5n UXVhbCAqLwogCWJvb2wJCWhhc0FnZ3MgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUp OwogCS8qIGhhcyB3aW5kb3cgZnVuY3Rpb25zIGluIHRsaXN0ICovCkBAIC0yMTcwLDYgKzIxNzMs MTggQEAgdHlwZWRlZiBzdHJ1Y3QgTWVyZ2VTdG10CiAJV2l0aENsYXVzZSAqd2l0aENsYXVzZTsJ CS8qIFdJVEggY2xhdXNlICovCiB9IE1lcmdlU3RtdDsKIAorLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoJCUxldCBTdGF0ZW1lbnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwor dHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJY2hhcgkgICAqdGFy Z2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLworCU5vZGUJICAgKnF1ZXJ5OwkJCS8qIHNvdXJj ZSBleHByZXNzaW9uICovCisJUGFyc2VMb2MJbG9jYXRpb247Cit9IExldFN0bXQ7CisKIC8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlTZWxlY3QgU3RhdGVtZW50CiAgKgpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRo bm9kZXMuaAppbmRleCA5N2EwMGRmOGQxZi4uNGFhMGEwN2Y0NGEgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rl cy5oCkBAIC0xOTIsNiArMTkyLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lckdsb2JhbAogCiAJ LyogbGlzdCBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzICovCiAJTGlzdAkgICAqc2Vzc2lvblZh cmlhYmxlczsKKworCS8qIG5hbWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSB1c2VkIGxpa2UgdGFyZ2V0 IG9mIExFVCBjb21tYW5kICovCisJY2hhcgkgICAqcmVzdWx0VmFyaWFibGU7CiB9IFBsYW5uZXJH bG9iYWw7CiAKIC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGgg YSBTdWJQbGFuIG5vZGUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA4YjFmMmJkM2I2OC4uMjE4MTky NzY4MmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTI1OCw2ICsyNTgsNyBAQCBQR19LRVlXT1JEKCJs ZWFkaW5nIiwgTEVBRElORywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoImxlYWtwcm9vZiIsIExFQUtQUk9PRiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgibGVhc3QiLCBMRUFTVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoImxlZnQiLCBMRUZULCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJF X0xBQkVMKQorUEdfS0VZV09SRCgibGV0IiwgTEVULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJsZXZlbCIsIExFVkVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsaWtlIiwgTElLRSwgVFlQRV9GVU5DX05BTUVfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxpbWl0IiwgTElNSVQsIFJFU0VSVkVEX0tFWVdP UkQsIEFTX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggODRlODg2OTQwZDguLjAy Njc0M2I3MzM3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisr KyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTgyLDYgKzgyLDcgQEAgdHlw ZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBSX0tJTkRfQ09QWV9XSEVSRSwJCS8qIFdIRVJF IGNvbmRpdGlvbiBpbiBDT1BZIEZST00gKi8KIAlFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTiwg LyogZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZvciBhIGNvbHVtbiAqLwogCUVYUFJfS0lORF9DWUNM RV9NQVJLLAkJLyogY3ljbGUgbWFyayB2YWx1ZSAqLworCUVYUFJfS0lORF9MRVRfVEFSR0VULAkJ Lyogb25seSBzZXNzaW9uIHZhcmlhYmxlcyAqLwogfSBQYXJzZUV4cHJLaW5kOwogCiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9j bWR0YWdsaXN0LmgKaW5kZXggN2U1OWQwYTUyNzUuLmZkMjEyMjU3MTY3IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaApAQCAtMTg1LDYgKzE4NSw3IEBAIFBHX0NNRFRBRyhDTURUQUdfR1JBTlQsICJHUkFO VCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfR1JBTlRfUk9MRSwgIkdS QU5UIFJPTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19JTVBPUlRf Rk9SRUlHTl9TQ0hFTUEsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCB0cnVlLCBmYWxzZSwgZmFs c2UpCiBQR19DTURUQUcoQ01EVEFHX0lOU0VSVCwgIklOU0VSVCIsIGZhbHNlLCBmYWxzZSwgdHJ1 ZSkKK1BHX0NNRFRBRyhDTURUQUdfTEVULCAiTEVUIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfTElTVEVOLCAiTElTVEVOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfTE9BRCwgIkxPQUQiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19MT0NLX1RBQkxFLCAiTE9DSyBUQUJMRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2Up CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz X2RtbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2Rt bC5vdXQKaW5kZXggMDFlZmE3MWM4ZjAuLjc5YTA2MmY2ZWZhIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0CkBAIC0xMzMsMyAr MTMzLDEyNiBAQCBSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOwogUkVTRVQgbWF4 X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKIERST1AgVEFCTEUgdGVzdHZhcl90ZXN0dGFi OwogRFJPUCBWQVJJQUJMRSB0ZW1wX3ZhcjAyOworQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdGVtcF92 YXIwMyBBUyBudW1lcmljOworLS0gTEVUIHN0bXQgaXMgbm90IGFsbG93ZWQgaW5zaWRlIENURQor V0lUSCB4IEFTIChMRVQgIHRlbXBfdmFyMDMgPSAzLjE0KSBTRUxFQ1QgKiBGUk9NIHg7CitFUlJP UjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitMSU5FIDE6IFdJVEggeCBBUyAoTEVU ICB0ZW1wX3ZhcjAzID0gMy4xNCkgU0VMRUNUICogRlJPTSB4OworICAgICAgICAgICAgICAgICAg IF4KKy0tIExFVCBzdG10IHJlcXVpcmVzIHJlc3VsdCB3aXRoIGV4YWN0bHkgb25lIHJvdworTEVU IHRlbXBfdmFyMDMgPSBnZW5lcmF0ZV9zZXJpZXMoMSwxKTsKK1NFTEVDVCBWQVJJQUJMRSh0ZW1w X3ZhcjAzKTsKKyB0ZW1wX3ZhcjAzIAorLS0tLS0tLS0tLS0tCisgICAgICAgICAgMQorKDEgcm93 KQorCistLSBzaG91bGQgZmFpbAorTEVUIHRlbXBfdmFyMDMgPSBnZW5lcmF0ZV9zZXJpZXMoMSwy KTsKK0VSUk9SOiAgZXhwcmVzc2lvbiByZXR1cm5lZCBtb3JlIHRoYW4gb25lIHJvdworTEVUIHRl bXBfdmFyMDMgPSBnZW5lcmF0ZV9zZXJpZXMoMSwwKTsKK0VSUk9SOiAgZXhwcmVzc2lvbiByZXR1 cm5lZCBubyByb3dzCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0dmFyX3NxbDAxKG51 bWVyaWMpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0xFVCB0ZW1wX3ZhcjAzID0gJDE7CiskJCBMQU5H VUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0dmFyX3NxbDAyKCkKK1JF VFVSTlMgbnVtZXJpYyBBUyAkJAorU0VMRUNUIFZBUklBQkxFKHRlbXBfdmFyMDMpOworJCQgTEFO R1VBR0Ugc3FsOworU0VMRUNUIHRlc3R2YXJfc3FsMDEoMy4xNCk7CisgdGVzdHZhcl9zcWwwMSAK Ky0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdGVzdHZhcl9zcWwwMigpLCBW QVJJQUJMRSh0ZW1wX3ZhcjAzKTsKKyB0ZXN0dmFyX3NxbDAyIHwgdGVtcF92YXIwMyAKKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAzLjE0IHwgICAgICAgMy4xNAorKDEg cm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0dmFyX3BsKHZhcmNoYXIpCitS RVRVUk5TIHZhcmNoYXIgQVMgJCQKK0JFR0lOCisgIExFVCB0ZW1wX3ZhcjAzID0gJDE6Om51bWVy aWM7CisgIFJFVFVSTiBWQVJJQUJMRSh0ZW1wX3ZhcjAzKTsKK0VORAorJCQgTEFOR1VBR0UgcGxw Z3NxbCBTRUNVUklUWSBERUZJTkVSOworU0VMRUNUIHRlc3R2YXJfcGwoJzMuMTQnKTsKKyB0ZXN0 dmFyX3BsIAorLS0tLS0tLS0tLS0tCisgMy4xNAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHRl bXBfdmFyMDM7CitTRVQgcGxhbl9jYWNoZV9tb2RlIHRvIGZvcmNlX2dlbmVyaWNfcGxhbjsKKy0t IHNob3VsZCBub3QgY3Jhc2gKK1NFTEVDVCB0ZXN0dmFyX3NxbDAxKDMuMTQpOworRVJST1I6ICBz ZXNzaW9uIHZhcmlhYmxlICJ0ZW1wX3ZhcjAzIiBkb2Vzbid0IGV4aXN0CitDT05URVhUOiAgU1FM IGZ1bmN0aW9uICJ0ZXN0dmFyX3NxbDAxIiBkdXJpbmcgaW5saW5pbmcKK1NFTEVDVCB0ZXN0dmFy X3NxbDAyKCksIFZBUklBQkxFKHRlbXBfdmFyMDMpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxl ICJ0ZW1wX3ZhcjAzIiBkb2Vzbid0IGV4aXN0CitTRUxFQ1QgdGVzdHZhcl9wbCgnMy4xNDE1OTIn KTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidGVtcF92YXIwMyIgZG9lc24ndCBleGlzdAor Q09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkxFVCB0ZW1wX3ZhcjAzID0gJDE6Om51bWVyaWMiCitQ TC9wZ1NRTCBmdW5jdGlvbiB0ZXN0dmFyX3BsKGNoYXJhY3RlciB2YXJ5aW5nKSBsaW5lIDMgYXQg U1FMIHN0YXRlbWVudAorLS0gY2FuIHdvcmsgYWdhaW4gaWYgd2UgY3JlYXRlIHZhcmlhYmxlCitD UkVBVEUgVEVNUCBWQVJJQUJMRSB0ZW1wX3ZhcjAzIEFTIG51bWVyaWM7CitTRUxFQ1QgdGVzdHZh cl9zcWwwMSgzLjE0KTsKKyB0ZXN0dmFyX3NxbDAxIAorLS0tLS0tLS0tLS0tLS0tCisgCisoMSBy b3cpCisKK1NFTEVDVCB0ZXN0dmFyX3NxbDAyKCksIFZBUklBQkxFKHRlbXBfdmFyMDMpOworIHRl c3R2YXJfc3FsMDIgfCB0ZW1wX3ZhcjAzIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor ICAgICAgICAgIDMuMTQgfCAgICAgICAzLjE0CisoMSByb3cpCisKK1NFTEVDVCB0ZXN0dmFyX3Bs KCczLjE0MTU5MicpOworIHRlc3R2YXJfcGwgCistLS0tLS0tLS0tLS0KKyAzLjE0MTU5MgorKDEg cm93KQorCitDUkVBVEUgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVzdF9yb2xlXzA0 OworU0VUIFJPTEUgcmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wNDsKKy0tIHNo b3VsZCBmYWlsCitTRUxFQ1QgdGVzdHZhcl9zcWwwMSgzLjE0KTsKK0VSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdGVtcF92YXIwMworQ09OVEVYVDogIFNRTCBm dW5jdGlvbiAidGVzdHZhcl9zcWwwMSIgc3RhdGVtZW50IDEKKy0tIHNob3VsZCBiZSBvayAoc2Vj dXJpdHkgZGVmaW5lcikKK1NFTEVDVCB0ZXN0dmFyX3BsKCczLjE0MTU5MicpOworIHRlc3R2YXJf cGwgCistLS0tLS0tLS0tLS0KKyAzLjE0MTU5MgorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZB VUxUOworRFJPUCBGVU5DVElPTiB0ZXN0dmFyX3NxbDAxKG51bWVyaWMpOworRFJPUCBGVU5DVElP TiB0ZXN0dmFyX3NxbDAyKCk7CitEUk9QIEZVTkNUSU9OIHRlc3R2YXJfcGwodmFyY2hhcik7CitE Uk9QIFJPTEUgcmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wNDsKK0RST1AgVkFS SUFCTEUgdGVtcF92YXIwMzsKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKKy0tIHRl c3QgZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKK0NSRUFURSBURU1QIFZBUklBQkxFIHRlbXBfdmFy MDQgQVMgaW50OworTEVUIHRlbXBfdmFyMDQgPSAkMSBcYmluZCAxMCBcZworU0VMRUNUIFZBUklB QkxFKHRlbXBfdmFyMDQpOworIHRlbXBfdmFyMDQgCistLS0tLS0tLS0tLS0KKyAgICAgICAgIDEw CisoMSByb3cpCisKK0xFVCB0ZW1wX3ZhcjA0ID0gJDEgXHBhcnNlIGxldHBzCitcYmluZF9uYW1l ZCBsZXRwcyAxMDAgXGcKK1NFTEVDVCBWQVJJQUJMRSh0ZW1wX3ZhcjA0KTsKKyB0ZW1wX3ZhcjA0 IAorLS0tLS0tLS0tLS0tCisgICAgICAgIDEwMAorKDEgcm93KQorCitcY2xvc2VfcHJlcGFyZWQg bGV0cHMKK0RST1AgVkFSSUFCTEUgdGVtcF92YXIwNDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCmluZGV4IGJmNTZiMTk0NjdiLi5iODQwOGM5N2Nh ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1s LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3Fs CkBAIC0xMTgsMyArMTE4LDkwIEBAIFJFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRo ZXI7CiAKIERST1AgVEFCTEUgdGVzdHZhcl90ZXN0dGFiOwogRFJPUCBWQVJJQUJMRSB0ZW1wX3Zh cjAyOworCitDUkVBVEUgVEVNUCBWQVJJQUJMRSB0ZW1wX3ZhcjAzIEFTIG51bWVyaWM7CisKKy0t IExFVCBzdG10IGlzIG5vdCBhbGxvd2VkIGluc2lkZSBDVEUKK1dJVEggeCBBUyAoTEVUICB0ZW1w X3ZhcjAzID0gMy4xNCkgU0VMRUNUICogRlJPTSB4OworCistLSBMRVQgc3RtdCByZXF1aXJlcyBy ZXN1bHQgd2l0aCBleGFjdGx5IG9uZSByb3cKK0xFVCB0ZW1wX3ZhcjAzID0gZ2VuZXJhdGVfc2Vy aWVzKDEsMSk7CitTRUxFQ1QgVkFSSUFCTEUodGVtcF92YXIwMyk7CisKKy0tIHNob3VsZCBmYWls CitMRVQgdGVtcF92YXIwMyA9IGdlbmVyYXRlX3NlcmllcygxLDIpOworTEVUIHRlbXBfdmFyMDMg PSBnZW5lcmF0ZV9zZXJpZXMoMSwwKTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdGVz dHZhcl9zcWwwMShudW1lcmljKQorUkVUVVJOUyB2b2lkIEFTICQkCitMRVQgdGVtcF92YXIwMyA9 ICQxOworJCQgTEFOR1VBR0Ugc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0 dmFyX3NxbDAyKCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJAorU0VMRUNUIFZBUklBQkxFKHRlbXBf dmFyMDMpOworJCQgTEFOR1VBR0Ugc3FsOworCitTRUxFQ1QgdGVzdHZhcl9zcWwwMSgzLjE0KTsK K1NFTEVDVCB0ZXN0dmFyX3NxbDAyKCksIFZBUklBQkxFKHRlbXBfdmFyMDMpOworCitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0dmFyX3BsKHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIg QVMgJCQKK0JFR0lOCisgIExFVCB0ZW1wX3ZhcjAzID0gJDE6Om51bWVyaWM7CisgIFJFVFVSTiBW QVJJQUJMRSh0ZW1wX3ZhcjAzKTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklUWSBE RUZJTkVSOworCitTRUxFQ1QgdGVzdHZhcl9wbCgnMy4xNCcpOworCitEUk9QIFZBUklBQkxFIHRl bXBfdmFyMDM7CisKK1NFVCBwbGFuX2NhY2hlX21vZGUgdG8gZm9yY2VfZ2VuZXJpY19wbGFuOwor CistLSBzaG91bGQgbm90IGNyYXNoCitTRUxFQ1QgdGVzdHZhcl9zcWwwMSgzLjE0KTsKK1NFTEVD VCB0ZXN0dmFyX3NxbDAyKCksIFZBUklBQkxFKHRlbXBfdmFyMDMpOworU0VMRUNUIHRlc3R2YXJf cGwoJzMuMTQxNTkyJyk7CisKKy0tIGNhbiB3b3JrIGFnYWluIGlmIHdlIGNyZWF0ZSB2YXJpYWJs ZQorQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdGVtcF92YXIwMyBBUyBudW1lcmljOworU0VMRUNUIHRl c3R2YXJfc3FsMDEoMy4xNCk7CitTRUxFQ1QgdGVzdHZhcl9zcWwwMigpLCBWQVJJQUJMRSh0ZW1w X3ZhcjAzKTsKK1NFTEVDVCB0ZXN0dmFyX3BsKCczLjE0MTU5MicpOworCitDUkVBVEUgUk9MRSBy ZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVzdF9yb2xlXzA0OworCitTRVQgUk9MRSByZWdyZXNz X3Nlc3Npb25fdmFyaWFibGVfdGVzdF9yb2xlXzA0OworCistLSBzaG91bGQgZmFpbAorU0VMRUNU IHRlc3R2YXJfc3FsMDEoMy4xNCk7CisKKy0tIHNob3VsZCBiZSBvayAoc2VjdXJpdHkgZGVmaW5l cikKK1NFTEVDVCB0ZXN0dmFyX3BsKCczLjE0MTU5MicpOworCitTRVQgUk9MRSBUTyBERUZBVUxU OworCitEUk9QIEZVTkNUSU9OIHRlc3R2YXJfc3FsMDEobnVtZXJpYyk7CitEUk9QIEZVTkNUSU9O IHRlc3R2YXJfc3FsMDIoKTsKK0RST1AgRlVOQ1RJT04gdGVzdHZhcl9wbCh2YXJjaGFyKTsKKwor RFJPUCBST0xFIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0X3JvbGVfMDQ7CisKK0RST1Ag VkFSSUFCTEUgdGVtcF92YXIwMzsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOwor CistLSB0ZXN0IGV4dGVuZGVkIHF1ZXJ5IHByb3RvY29sCitDUkVBVEUgVEVNUCBWQVJJQUJMRSB0 ZW1wX3ZhcjA0IEFTIGludDsKKworTEVUIHRlbXBfdmFyMDQgPSAkMSBcYmluZCAxMCBcZworU0VM RUNUIFZBUklBQkxFKHRlbXBfdmFyMDQpOworCitMRVQgdGVtcF92YXIwNCA9ICQxIFxwYXJzZSBs ZXRwcworXGJpbmRfbmFtZWQgbGV0cHMgMTAwIFxnCitTRUxFQ1QgVkFSSUFCTEUodGVtcF92YXIw NCk7CisKK1xjbG9zZV9wcmVwYXJlZCBsZXRwcworCitEUk9QIFZBUklBQkxFIHRlbXBfdmFyMDQ7 CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDczNDE1NjUyOTY2Li5jNzJiMmU4ZjFkMCAx MDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE1NDgsNiArMTU0OCw3IEBAIExhcmdlT2Jq ZWN0RGVzYwogTGF0Y2gKIExhdW5jaGVyTGFzdFN0YXJ0VGltZXNFbnRyeQogTGVycEZ1bmMKK0xl dFN0bXQKIExleERlc2NyCiBMZXhlbWVFbnRyeQogTGV4ZW1lSGFzaEtleQotLSAKMi41Mi4wCgo= --000000000000618d5806445c9db6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251124-0007-DISCARD-TEMP.patch" Content-Disposition: attachment; filename="v20251124-0007-DISCARD-TEMP.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midkhne80 RnJvbSA0M2RmMDk4OGY1NDM5MmJjNzc2YTMyMjMwM2ZmNzFkMzhlNTliMTg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBNb24sIDI0IE5vdiAyMDI1IDIwOjA0OjE2ICswMTAwClN1YmplY3Q6IFtQ QVRDSCA3LzddIERJU0NBUkQgVEVNUAoKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dt bCAgICAgICAgICAgICAgICAgfCAgMyArKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQu YyAgICAgICAgICAgICAgICB8ICAzICsrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jICAgICAgIHwgMjAgKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgIDIgKysKIC4uLi9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlc19kZGwub3V0ICAgICAgICB8ICA3ICsrKysrKysKIC4uLi9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsICAgICB8IDEwICsrKysrKysrKysKIDYgZmlsZXMg Y2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNn bWwKaW5kZXggYmY0NGM1MjNjYWMuLjI3MDBmN2I3Y2QwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2Rpc2NhcmQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbApA QCAtNzAsNyArNzAsOCBAQCBESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5DRVMgfCBURU1Q T1JBUlkgfCBURU1QIH0KICAgICA8dGVybT48bGl0ZXJhbD5URU1QT1JBUlk8L2xpdGVyYWw+IG9y IDxsaXRlcmFsPlRFTVA8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBh cmE+Ci0gICAgICBEcm9wcyBhbGwgdGVtcG9yYXJ5IHRhYmxlcyBjcmVhdGVkIGluIHRoZSBjdXJy ZW50IHNlc3Npb24uCisgICAgICBEcm9wcyBhbGwgdGVtcG9yYXJ5IHRhYmxlcyBhbmQgdGVtcG9y YXJ5IHNlc3Npb24gdmFyaWFibGVzIGNyZWF0ZWQgaW4KKyAgICAgIHRoZSBjdXJyZW50IHNlc3Np b24uCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMKaW5kZXggODEzMzlhNzVhNTIuLmRlMzIyYzM1YzUxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvZGlzY2FyZC5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvZGlz Y2FyZC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKICNpbmNsdWRlICJjb21tYW5k cy9zZXF1ZW5jZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNp bmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9wb3J0YWwuaCIKIApAQCAtNDYs NiArNDcsNyBAQCBEaXNjYXJkQ29tbWFuZChEaXNjYXJkU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExl dmVsKQogCiAJCWNhc2UgRElTQ0FSRF9URU1QOgogCQkJUmVzZXRUZW1wVGFibGVOYW1lc3BhY2Uo KTsKKwkJCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOwogCQkJYnJlYWs7CiAKIAkJZGVmYXVsdDoK QEAgLTc1LDQgKzc3LDUgQEAgRGlzY2FyZEFsbChib29sIGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFu Q2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFjZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNo ZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYwppbmRleCAzNjQ5MDM4N2RhMC4uNzgzN2UyMWNmMWMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTQxMiwzICs0MTIsMjMgQEAgRXhl Y3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsK IH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBvZiB0aGUgc2Vz c2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFueSBsaXN0IHRo YXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNlZCBieSB0aGUg RElTQ0FSRCBURU1QLgorICovCit2b2lkCitSZXNldFNlc3Npb25WYXJpYWJsZXModm9pZCkKK3sK KwkvKiBkZXN0cm95IGhhc2ggdGFibGUgYW5kIHJlc2V0IHJlbGF0ZWQgbWVtb3J5IGNvbnRleHQg Ki8KKwlpZiAoc2Vzc2lvbnZhcnMpCisJeworCQloYXNoX2Rlc3Ryb3koc2Vzc2lvbnZhcnMpOwor CQlzZXNzaW9udmFycyA9IE5VTEw7CisJfQorCisJLyogcmVsZWFzZSBtZW1vcnkgYWxsb2NhdGVk IGJ5IHNlc3Npb24gdmFyaWFibGVzICovCisJaWYgKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgIT0g TlVMTCkKKwkJTWVtb3J5Q29udGV4dFJlc2V0KFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworfQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3Jj L2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IGM0YjRkOWU2ODMyLi5j YzFhYTdjZTIzYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAt MzcsNCArMzcsNiBAQCBleHRlcm4gdm9pZCBnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1v ZF9jb2xsaWQoY2hhciAqdmFybmFtZSwKIGV4dGVybiB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJCQkJ CQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9uICpxYyk7CiAK K2V4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKTsKKwogI2VuZGlmCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQK aW5kZXggY2M2ZjU5ZThiZTUuLmYxMmQxZjFhNmFlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0CkBAIC00MSwzICs0MSwxMCBA QCBEUk9QIFZBUklBQkxFIHg7CiBTRVQgUk9MRSBUTyBERUZBVUxUOwogRFJPUCBST0xFIHJlZ3Jl c3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0X3JvbGVfMDE7CiBEUk9QIFJPTEUgcmVncmVzc19zZXNz aW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMjsKK0NSRUFURSBURU1QIFZBUklBQkxFIHggQVMgaW50 OworLS0gc2hvdWxkIGZhaWwKK0NSRUFURSBURU1QIFZBUklBQkxFIHggQVMgaW50OworRVJST1I6 ICBzZXNzaW9uIHZhcmlhYmxlICJ4IiBhbHJlYWR5IGV4aXN0cworRElTQ0FSRCBURU1QOworLS0g c2hvdWxkIGJlIG9rCitDUkVBVEUgVEVNUCBWQVJJQUJMRSB4IEFTIGludDsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCmluZGV4IDkyZTk3ZWEyYWIw Li5jNjlmZDRiZmE0NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXNfZGRsLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlc19kZGwuc3FsCkBAIC01NCwzICs1NCwxMyBAQCBEUk9QIFZBUklBQkxFIHg7CiBTRVQgUk9M RSBUTyBERUZBVUxUOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0X3Jv bGVfMDE7CiBEUk9QIFJPTEUgcmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMjsK KworQ1JFQVRFIFRFTVAgVkFSSUFCTEUgeCBBUyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsCitDUkVB VEUgVEVNUCBWQVJJQUJMRSB4IEFTIGludDsKKworRElTQ0FSRCBURU1QOworCistLSBzaG91bGQg YmUgb2sKK0NSRUFURSBURU1QIFZBUklBQkxFIHggQVMgaW50OwotLSAKMi41Mi4wCgo= --000000000000618d5806445c9db6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251124-0005-svariableReceiver.patch" Content-Disposition: attachment; filename="v20251124-0005-svariableReceiver.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midkhnge2 RnJvbSA3MmMzYjY2N2JiYmI0Yzk5ZWJhNDZmMDVhZjg3OWQ3NzBlZDJlM2QzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMSBKdW4gMjAyNSAyMToyMDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNS83 XSBzdmFyaWFibGVSZWNlaXZlcgoKYWxsb3dzIHRvIHN0b3JlIHJlc3VsdCBvZiB0aGUgcXVlcnkg dG8gc2Vzc2lvbiB2YXJpYWJsZQoKQ2hlY2sgY29ycmVjdCBmb3JtYXQgb2YgcmVzdWx0IC0gb25l IGNvbHVtbiwgb25lIHJvdy4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMgIHwgIDUwICsrKysrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZSAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkICAgICAgICAg fCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYyB8IDE0OSAr KysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgICAgICAgICAg ICAgICAgICB8ICAgNyArKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o ICB8ICAgMyArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIHwgIDIy ICsrKysKIHNyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oICAgICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICB8ICAgMSArCiA5IGZpbGVz IGNoYW5nZWQsIDIzNSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tl bmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9p bmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggMGRhYTQ2ZmRkZTMuLjk1ZDcwOTExYmNjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNzEsNiArMTcxLDU2IEBAIEdl dFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlY2hlY2soY2hhciAqdmFybmFtZSwKIAlyZXR1cm4gcmVz dWx0OwogfQogCisvKgorICogU3RvcmUgdGhlIGdpdmVuIHZhbHVlIGluIGEgc2Vzc2lvbiB2YXJp YWJsZSBpbiB0aGUgY2FjaGUuCisgKi8KK3ZvaWQKK1NldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBl Y2hlY2soY2hhciAqdmFybmFtZSwKKwkJCQkJCQkJT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsCisJ CQkJCQkJCURhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwor CXN2YXIgPSBzZWFyY2hfdmFyaWFibGUodmFybmFtZSk7CisKKwlpZiAoc3Zhci0+dmFydHlwZSAh PSB0eXBpZCB8fCBzdmFyLT52YXJ0eXBtb2QgIT0gdHlwbW9kKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coInNl c3Npb24gdmFyaWFibGUgJXMgaXMgbm90IG9mIGEgdHlwZSAlcyBidXQgdHlwZSAlcyIsCisJCQkJ CQl2YXJuYW1lLAorCQkJCQkJZm9ybWF0X3R5cGVfd2l0aF90eXBlbW9kKHR5cGlkLCB0eXBtb2Qp LAorCQkJCQkJZm9ybWF0X3R5cGVfd2l0aF90eXBlbW9kKHN2YXItPnZhcnR5cGUsIHN2YXItPnZh cnR5cG1vZCkpKSk7CisKKwkvKiBvbmx5IG93bmVyIGNhbiBzZXQgY29udGVudCBvZiB2YXJpYWJs ZSAqLworCWlmIChzdmFyLT52YXJvd25lciAhPSBHZXRVc2VySWQoKSAmJiAhc3VwZXJ1c2VyKCkp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJ VklMRUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSAlcyIsCisJCQkJCQl2YXJuYW1lKSkpOworCisJaWYgKCFzdmFyLT50eXBieXZhbCkKKwl7 CisJCWlmICghaXNudWxsKQorCQl7CisJCQlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKworCQkJLyoK KwkJCSAqIERvIGNvcHkgb2YgdmFsdWUgaW4gc2Vzc2lvbiB2YXJpYWJsZXMgY29udGV4dC4gVGhp cyBvcGVyYXRpb24KKwkJCSAqIGNhbiBmYWlsLCBzbyBkbyBpdCBiZWZvcmUgcmVsZWFzaW5nIHRo ZSBvbGQgY29udGVudC4KKwkJCSAqLworCQkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRv KFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworCQkJdmFsdWUgPSBkYXR1bUNvcHkodmFsdWUsIHN2 YXItPnR5cGJ5dmFsLCBzdmFyLT50eXBsZW4pOworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9s ZGN4dCk7CisJCX0KKworCQlpZiAoIXN2YXItPmlzbnVsbCkKKwkJCXBmcmVlKERhdHVtR2V0UG9p bnRlcihzdmFyLT52YWx1ZSkpOworCX0KKworCXN2YXItPnZhbHVlID0gdmFsdWU7CisJc3Zhci0+ aXNudWxsID0gaXNudWxsOworfQorCiAvKgogICogQ3JlYXRlcyBhIG5ldyB2YXJpYWJsZSAtIGRv ZXMgbmV3IGVudHJ5IGluIHNlc3Npb252YXJzCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQppbmRleCAx MTExOGQwY2UwMi4uNzEyNDhhMzRmMjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCkBAIC03Niw2ICs3 Niw3IEBAIE9CSlMgPSBcCiAJbm9kZVdpbmRvd0FnZy5vIFwKIAlub2RlV29ya3RhYmxlc2Nhbi5v IFwKIAlzcGkubyBcCisJc3ZhcmlhYmxlUmVjZWl2ZXIubyBcCiAJdHF1ZXVlLm8gXAogCXRzdG9y ZVJlY2VpdmVyLm8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVp bGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAppbmRleCAyY2VhNDFmODc3MS4u NDkxMDkyZmNjNGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxk CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCkBAIC02NCw2ICs2NCw3IEBA IGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ25vZGVXaW5kb3dBZ2cuYycsCiAgICdub2Rl V29ya3RhYmxlc2Nhbi5jJywKICAgJ3NwaS5jJywKKyAgJ3N2YXJpYWJsZVJlY2VpdmVyLmMnLAog ICAndHF1ZXVlLmMnLAogICAndHN0b3JlUmVjZWl2ZXIuYycsCiApCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uYjI3MDllOTIxMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5jCkBAIC0wLDAgKzEsMTQ5IEBACisvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5jCisgKgkgIEFuIGltcGxlbWVudGF0aW9uIG9m IERlc3RSZWNlaXZlciB0aGF0IHN0b3JlcyB0aGUgcmVzdWx0IHZhbHVlIGluCisgKgkgIGEgc2Vz c2lvbiB2YXJpYWJsZS4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgor ICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVj ZWl2ZXIuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jl cy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2RldG9hc3Qu aCIKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVy LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2Fj aGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCisvKgorICogVGhpcyBEZXN0UmVj ZWl2ZXIgaXMgdXNlZCBieSB0aGUgTEVUIGNvbW1hbmQgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCB0 byBhCisgKiBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIHJlc3VsdCBoYXMgdG8gaGF2ZSBvbmx5IG9u ZSB0dXBsZSB3aXRoIG9ubHkgb25lCisgKiBub24tZGVsZXRlZCBhdHRyaWJ1dGUuICBUaGUgcm93 IGNvdW50ZXIgKGZpZWxkICJyb3dzIikgaXMgaW5jcmVtZW50ZWQKKyAqIGFmdGVyIHJlY2Vpdmlu ZyBhIHJvdywgYW5kIGFuIGVycm9yIGlzIHJhaXNlZCB3aGVuIHRoZXJlIGFyZSBubyByb3dzIG9y CisgKiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSByZWNlaXZlZCByb3dzLiAgQSByZWNlaXZlZCB0 dXBsZSBjYW5ub3QgdG8gaGF2ZQorICogZGVsZXRlZCBhdHRyaWJ1dGVzLiAgVGhlIHZhbHVlIGlz IGRldG9hc3RlZCBiZWZvcmUgc3RvcmluZyBpdCBpbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUu CisgKi8KK3R5cGVkZWYgc3RydWN0Cit7CisJRGVzdFJlY2VpdmVyIHB1YjsKKwljaGFyCSAgICp2 YXJuYW1lOworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBtb2Q7CisJYm9vbAkJbmVlZF9kZXRv YXN0OwkvKiBkbyB3ZSBuZWVkIHRvIGRldG9hc3QgdGhlIGF0dHJpYnV0ZT8gKi8KKwlpbnQJCQly b3dzOwkJCS8qIHJvdyBjb3VudGVyICovCit9IFNWYXJpYWJsZVN0YXRlOworCisvKgorICogUHJl cGFyZSB0byByZWNlaXZlIHR1cGxlcyBmcm9tIGV4ZWN1dG9yLgorICovCitzdGF0aWMgdm9pZAor c3ZhcmlhYmxlU3RhcnR1cFJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlv biwgVHVwbGVEZXNjIHR5cGVpbmZvKQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0YXRlID0gKFNW YXJpYWJsZVN0YXRlICopIHNlbGY7CisJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cjsKKworCUFzc2Vy dChteVN0YXRlLT5wdWIubXlkZXN0ID09IERlc3RWYXJpYWJsZSk7CisJQXNzZXJ0KHR5cGVpbmZv LT5uYXR0cyA9PSAxKTsKKworCWF0dHIgPSBUdXBsZURlc2NBdHRyKHR5cGVpbmZvLCAwKTsKKwor CUFzc2VydCghYXR0ci0+YXR0aXNkcm9wcGVkKTsKKworCW15U3RhdGUtPnR5cGlkID0gYXR0ci0+ YXR0dHlwaWQ7CisJbXlTdGF0ZS0+dHlwbW9kID0gYXR0ci0+YXR0dHlwbW9kOworCisJbXlTdGF0 ZS0+bmVlZF9kZXRvYXN0ID0gYXR0ci0+YXR0bGVuID09IC0xOworCW15U3RhdGUtPnJvd3MgPSAw OworfQorCisvKgorICogUmVjZWl2ZSBhIHR1cGxlIGZyb20gdGhlIGV4ZWN1dG9yIGFuZCBzdG9y ZSBpdCBpbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworc3RhdGljIGJvb2wKK3N2YXJpYWJs ZVJlY2VpdmVTbG90KFR1cGxlVGFibGVTbG90ICpzbG90LCBEZXN0UmVjZWl2ZXIgKnNlbGYpCit7 CisJU1ZhcmlhYmxlU3RhdGUgKm15U3RhdGUgPSAoU1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlE YXR1bQkJdmFsdWU7CisJYm9vbAkJaXNudWxsOworCWJvb2wJCWZyZWV2YWwgPSBmYWxzZTsKKwor CS8qIG1ha2Ugc3VyZSB0aGUgdHVwbGUgaXMgZnVsbHkgZGVjb25zdHJ1Y3RlZCAqLworCXNsb3Rf Z2V0YWxsYXR0cnMoc2xvdCk7CisKKwl2YWx1ZSA9IHNsb3QtPnR0c192YWx1ZXNbMF07CisJaXNu dWxsID0gc2xvdC0+dHRzX2lzbnVsbFswXTsKKworCWlmIChteVN0YXRlLT5uZWVkX2RldG9hc3Qg JiYgIWlzbnVsbCAmJiBWQVJBVFRfSVNfRVhURVJOQUwoRGF0dW1HZXRQb2ludGVyKHZhbHVlKSkp CisJeworCQl2YWx1ZSA9IFBvaW50ZXJHZXREYXR1bShkZXRvYXN0X2V4dGVybmFsX2F0dHIoKHN0 cnVjdCB2YXJsZW5hICopCisJCQkJCQkJCQkJCQkJICBEYXR1bUdldFBvaW50ZXIodmFsdWUpKSk7 CisJCWZyZWV2YWwgPSB0cnVlOworCX0KKworCW15U3RhdGUtPnJvd3MgKz0gMTsKKworCWlmICht eVN0YXRlLT5yb3dzID4gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X1RPT19NQU5ZX1JPV1MpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0 aGFuIG9uZSByb3ciKSkpOworCisJU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVjaGVjayhteVN0 YXRlLT52YXJuYW1lLAorCQkJCQkJCQkJbXlTdGF0ZS0+dHlwaWQsIG15U3RhdGUtPnR5cG1vZCwK KwkJCQkJCQkJCXZhbHVlLCBpc251bGwpOworCisJaWYgKGZyZWV2YWwpCisJCXBmcmVlKERhdHVt R2V0UG9pbnRlcih2YWx1ZSkpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBDbGVhbiB1 cCBhdCBlbmQgb2YgdGhlIGV4ZWN1dG9yIHJ1bgorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxl U2h1dGRvd25SZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJaWYgKCgoU1ZhcmlhYmxl U3RhdGUgKikgc2VsZiktPnJvd3MgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX05PX0RBVEFfRk9VTkQpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24gcmV0dXJu ZWQgbm8gcm93cyIpKSk7Cit9CisKKy8qCisgKiBEZXN0cm95IHRoZSByZWNlaXZlciB3aGVuIHdl IGFyZSBkb25lIHdpdGggaXQKKyAqLworc3RhdGljIHZvaWQKK3N2YXJpYWJsZURlc3Ryb3lSZWNl aXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJcGZyZWUoKChTVmFyaWFibGVTdGF0ZSAqKSBz ZWxmKS0+dmFybmFtZSk7CisJcGZyZWUoc2VsZik7Cit9CisKKy8qCisgKiBJbml0aWFsbHkgY3Jl YXRlIGEgRGVzdFJlY2VpdmVyIG9iamVjdC4KKyAqLworRGVzdFJlY2VpdmVyICoKK0NyZWF0ZVZh cmlhYmxlRGVzdFJlY2VpdmVyKGNoYXIgKnZhcm5hbWUpCit7CisJU1ZhcmlhYmxlU3RhdGUgKnNl bGYgPSAoU1ZhcmlhYmxlU3RhdGUgKikgcGFsbG9jMChzaXplb2YoU1ZhcmlhYmxlU3RhdGUpKTsK KworCXNlbGYtPnB1Yi5yZWNlaXZlU2xvdCA9IHN2YXJpYWJsZVJlY2VpdmVTbG90OworCXNlbGYt PnB1Yi5yU3RhcnR1cCA9IHN2YXJpYWJsZVN0YXJ0dXBSZWNlaXZlcjsKKwlzZWxmLT5wdWIuclNo dXRkb3duID0gc3ZhcmlhYmxlU2h1dGRvd25SZWNlaXZlcjsKKwlzZWxmLT5wdWIuckRlc3Ryb3kg PSBzdmFyaWFibGVEZXN0cm95UmVjZWl2ZXI7CisJc2VsZi0+cHViLm15ZGVzdCA9IERlc3RWYXJp YWJsZTsKKworCXNlbGYtPnZhcm5hbWUgPSBwc3RyZHVwKHZhcm5hbWUpOworCisJcmV0dXJuIChE ZXN0UmVjZWl2ZXIgKikgc2VsZjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVz dC5jIGIvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKaW5kZXggYjYyMDc2NmM5MzguLjBjMWVlZWIy MmE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYworKysgYi9zcmMvYmFja2Vu ZC90Y29wL2Rlc3QuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL2Z1bmN0 aW9ucy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3RxdWV1ZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9y L3RzdG9yZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIu aCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0Lmgi CiAKQEAgLTE1NSw2ICsxNTYsOSBAQCBDcmVhdGVEZXN0UmVjZWl2ZXIoQ29tbWFuZERlc3QgZGVz dCkKIAogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgogCQkJcmV0dXJuIENyZWF0ZUV4cGxh aW5TZXJpYWxpemVEZXN0UmVjZWl2ZXIoTlVMTCk7CisKKwkJY2FzZSBEZXN0VmFyaWFibGU6CisJ CQlyZXR1cm4gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoTlVMTCk7CiAJfQogCiAJLyogc2hv dWxkIG5ldmVyIGdldCBoZXJlICovCkBAIC0xOTEsNiArMTk1LDcgQEAgRW5kQ29tbWFuZChjb25z dCBRdWVyeUNvbXBsZXRpb24gKnFjLCBDb21tYW5kRGVzdCBkZXN0LCBib29sIGZvcmNlX3VuZGVj b3JhdGVkX28KIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVl OgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJ CWJyZWFrOwogCX0KIH0KQEAgLTIzNyw2ICsyNDIsNyBAQCBOdWxsQ29tbWFuZChDb21tYW5kRGVz dCBkZXN0KQogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6 CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJ YnJlYWs7CiAJfQogfQpAQCAtMjgxLDYgKzI4Nyw3IEBAIFJlYWR5Rm9yUXVlcnkoQ29tbWFuZERl c3QgZGVzdCkKIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVl OgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJ CWJyZWFrOwogCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRl eCAzNjg3NDkwYmNiMS4uNjEwYjc1Nzg5OWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgKQEAgLTIzLDYgKzIzLDkgQEAgZXh0ZXJuIHZvaWQgQ3JlYXRlVmFyaWFibGUo UGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CiBleHRlcm4g dm9pZCBEcm9wVmFyaWFibGVCeU5hbWUoY2hhciAqdmFybmFtZSk7CiAKIGV4dGVybiBEYXR1bSBH ZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZWNoZWNrKGNoYXIgKnZhcm5hbWUsIE9pZCB0eXBpZCwg aW50MzIgdHlwbW9kLCBib29sICppc251bGwpOworZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlh YmxlV2l0aFR5cGVjaGVjayhjaGFyICp2YXJuYW1lLAorCQkJCQkJCQkJCQlPaWQgdHlwaWQsIGlu dDMyIHR5cG1vZCwKKwkJCQkJCQkJCQkJRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKTsKIAogZXh0 ZXJuIHZvaWQgZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKGNoYXIgKnZh cm5hbWUsCiAJCQkJCQkJCQkJCQkJT2lkICp0eXBpZCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFy aWFibGVSZWNlaXZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5k ZDAxYzkzYzllOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmgKQEAgLTAsMCArMSwyMiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgor ICogc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoJICBwcm90b3R5cGVzIGZvciBzdmFyaWFibGVSZWNl aXZlci5jCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBz cmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCisgKgorICotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKi8KKworI2lmbmRlZiBTVkFSSUFCTEVfUkVDRUlWRVJfSAorI2RlZmluZSBTVkFS SUFCTEVfUkVDRUlWRVJfSAorCisjaW5jbHVkZSAidGNvcC9kZXN0LmgiCisKK2V4dGVybiBEZXN0 UmVjZWl2ZXIgKkNyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKGNoYXIgKnZhcm5hbWUpOworCisj ZW5kaWYJCQkJCQkJLyogU1ZBUklBQkxFX1JFQ0VJVkVSX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3Rjb3AvZGVzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKaW5kZXggMDBjMDky ZTNkN2MuLjZjZTNlYTBlNjE3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaAor KysgYi9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaApAQCAtOTcsNiArOTcsNyBAQCB0eXBlZGVmIGVu dW0KIAlEZXN0VHJhbnNpZW50UmVsLAkJCS8qIHJlc3VsdHMgc2VudCB0byB0cmFuc2llbnQgcmVs YXRpb24gKi8KIAlEZXN0VHVwbGVRdWV1ZSwJCQkJLyogcmVzdWx0cyBzZW50IHRvIHR1cGxlIHF1 ZXVlICovCiAJRGVzdEV4cGxhaW5TZXJpYWxpemUsCQkvKiByZXN1bHRzIGFyZSBzZXJpYWxpemVk IGFuZCBkaXNjYXJkZWQgKi8KKwlEZXN0VmFyaWFibGUsCQkJCS8qIHJlc3VsdHMgc2VudCB0byBz ZXNzaW9uIHZhcmlhYmxlICovCiB9IENvbW1hbmREZXN0OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0t CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDFlODliMDdmMDdiLi43MzQxNTY1Mjk2NiAx MDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI2NzAsNiArMjY3MCw3IEBAIFNUUkxFTgog U1YKIFNWYXJpYWJsZURhdGEKIFNWYXJpYWJsZQorU1ZhcmlhYmxlU3RhdGUKIFNZTkNIUk9OSVpB VElPTl9CQVJSSUVSCiBTWVNURU1fSU5GTwogU2FtcGxlU2NhbgotLSAKMi41Mi4wCgo= --000000000000618d5806445c9db6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251124-0004-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Disposition: attachment; filename="v20251124-0004-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midkhngt3 RnJvbSBkZWQ0MjI2MTNlNTE3MjdkZGRjNWM2NWY2ZDM3YWVjMTY5NzA1Yjk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTYXQsIDIyIE5vdiAyMDI1IDA2OjQwOjQ2ICswMTAwClN1YmplY3Q6IFtQ QVRDSCA0LzddIGZpbGwgYW4gYXV4aWxpYXJ5IGJ1ZmZlciB3aXRoIHZhbHVlcyBvZiBzZXNzaW9u IAogdmFyaWFibGVzIHVzZWQgaW4gcXVlcnkKCmFuZCBsb2NrcyB2YXJpYWJsZXMgdXNlZCBpbiBx dWVyeS4gTm93IHdlIGNhbiByZWFkIHRoZSBjb250ZW50IG9mIGFueQpzZXNzaW9uIHZhcmlhYmxl LiBEaXJlY3QgcmVhZGluZyBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IgaXMgbm90IGFsbG93ZWQs CnNvIHdlIGNhbm5vdCB0byB1c2Ugc2Vzc2lvbiB2YXJpYWJsZXMgaW5zaWRlIENBTEwgb3IgRVhF Q1VURSBjb21tYW5kcwooY2FuIGJlIHN1cHBvcnRlZCB3aXRoIGRpcmVjdCBhY2Nlc3MgdG8gc2Vz c2lvbiB2YXJpYWJsZXMgKGZyb20gZXhwcmVzc2lvbgpleGVjdXRvcikgLSBwb3N0cG9uZWQpLgoK VXNpbmcgc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2tzIHBhcmFsbGVsIHF1ZXJ5IGV4ZWN1dGlvbi4g SXQgaXMgbm90CnRlY2huaWNhbCBwcm9ibGVtIChpdCBqdXN0IG5lZWRzIGEgc2VyaWFsaXphdGlv bi9kZXNlcmlhbGl6YXRpb24gb2YKZXNfc2Vzc2lvbl92YXJpYmxlcyBidWZmZXIpLCBidXQgaXQg aW5jcmVhc2VzIGEgc2l6ZSBvZiBwYXRjaCAoYW5kIHRoZW4KaXQgaXMgcG9zdHBvbmVkKS4KLS0t CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAgMjkgKysr Kwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgIDQ5ICsr KysrKysKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAx NCArKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQgICAgICAgIHwgMTM1 ICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAg ICAgICAgICAgIHwgICA1ICsKIC4uLi9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwu c3FsICAgICB8IDEyMCArKysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogNyBmaWxlcyBjaGFuZ2VkLCAzNTMgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vz c2lvbl92YXJpYWJsZXNfZG1sLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpp bmRleCBmMTU2OTg3OWI1Mi4uMDQ1N2E3Mjk1MzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpA QCAtMTA2OSw2ICsxMDY5LDM1IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3Rh dGUgKnN0YXRlLAogCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKIAkJ CQkJCX0KIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIFBBUkFNX1ZBUklBQkxFOgorCQkJCQkJewor CQkJCQkJCWludAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJCQkJCQkJU2Vzc2lv blZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzID0gTlVMTDsKKwkJCQkJCQlTZXNz aW9uVmFyaWFibGVWYWx1ZSAqdmFyOworCisJCQkJCQkJaWYgKHN0YXRlLT5wYXJlbnQgJiYgc3Rh dGUtPnBhcmVudC0+c3RhdGUpCisJCQkJCQkJeworCQkJCQkJCQllc19zZXNzaW9uX3ZhcmlhYmxl cyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQkJ ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX251bV9z ZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQl9CisKKwkJCQkJCQlBc3NlcnQoZXNfc2Vzc2lvbl92 YXJpYWJsZXMpOworCisJCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8KKwkJCQkJ CQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQorCQkJCQkJ CQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2Yg cmFuZ2UiKTsKKworCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFy YW1pZF07CisKKwkJCQkJCQkvKgorCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwgcGFzcyB0aGUgdmFs dWUgbGlrZSBhIGNvbnN0YW50LgorCQkJCQkJCSAqLworCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0g RUVPUF9DT05TVDsKKwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwudmFsdWUgPSB2YXItPnZhbHVl OworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsKKwkJCQkJ CQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQl9CisJCQkJCQlicmVh azsKIAkJCQkJZGVmYXVsdDoKIAkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgcGFyYW1r aW5kOiAlZCIsCiAJCQkJCQkJIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMKaW5kZXggMjdjOWVlYzY5N2IuLjE5OGJlMGNmMTQzIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGFydGl0aW9uLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvbWF0 dmlldy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRl ICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNp bmNsdWRlICJleGVjdXRvci9leGVjUGFydGl0aW9uLmgiCkBAIC0xOTYsNiArMTk3LDU0IEBAIHN0 YW5kYXJkX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBlZmxhZ3MpCiAJ QXNzZXJ0KHF1ZXJ5RGVzYy0+c291cmNlVGV4dCAhPSBOVUxMKTsKIAllc3RhdGUtPmVzX3NvdXJj ZVRleHQgPSBxdWVyeURlc2MtPnNvdXJjZVRleHQ7CiAKKwkvKgorCSAqIFRoZSBleGVjdXRvciBk b2Vzbid0IHdvcmsgd2l0aCBzZXNzaW9uIHZhcmlhYmxlcyBkaXJlY3RseS4gVmFsdWVzIG9mCisJ ICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgY29waWVkIHRvIGEgZGVkaWNhdGVkIGFy cmF5LCBhbmQgdGhpcworCSAqIGFycmF5IGlzIHBhc3NlZCB0byB0aGUgZXhlY3V0b3IuIFRoaXMg YXJyYXkgaXMgc3RhYmxlICJzbmFwc2hvdCIgb2YKKwkgKiB2YWx1ZXMgb2YgdXNlZCBzZXNzaW9u IHZhcmlhYmxlcy4gVGhlcmUgYXJlIHRocmVlIGJlbmVmaXRzIG9mIHRoaXMKKwkgKiBzdHJhdGVn eToKKwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0aCBleHRlcm5hbCBwYXJhbWV0ZXJzIGFuZCBw bHBnc3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0gc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHBh cmFsbGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRvbid0IG5lZWQgbWFrZSBmcmVzaCBjb3B5IGZv ciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxlICh0aGlzCisJICogaXMgbmVjZXNzYXJ5IGJl Y2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIGNoYW5nZWQK KwkgKiBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVmZXJlbmNlIHRv IHByZXZpb3VzbHkKKwkgKiByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVkKS4KKwkgKi8K KwlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCWlu dAkJCW5TZXNzaW9uVmFyaWFibGVzOworCQlpbnQJCQlpID0gMDsKKworCQkvKgorCQkgKiBJbiB0 aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQgd2UgaGF2ZSB0 bworCQkgKiBwcmVwYXJlIHRoZSBhcnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9mIHVzZWQgc2Vz c2lvbiB2YXJpYWJsZXMpCisJCSAqIGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJc1BhcmFsbGVs V29ya2VyKCkpOworCQluU2Vzc2lvblZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1ZXJ5RGVzYy0+ cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpOworCisJCS8qIGNyZWF0ZSB0aGUgYXJyYXkg dXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQll c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICopCisJ CQlwYWxsb2MoblNlc3Npb25WYXJpYWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFsdWUp KTsKKworCQkvKiBmaWxsIHRoZSBhcnJheSAqLworCQlmb3JlYWNoX25vZGUoUGFyYW0sIHBhcmFt LCBxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQllc3Rh dGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLnZhbHVlID0KKwkJCQlHZXRTZXNzaW9uVmFyaWFi bGVXaXRoVHlwZWNoZWNrKHBhcmFtLT5wYXJhbXZhcm5hbWUsCisJCQkJCQkJCQkJCQlwYXJhbS0+ cGFyYW10eXBlLAorCQkJCQkJCQkJCQkJcGFyYW0tPnBhcmFtdHlwbW9kLAorCQkJCQkJCQkJCQkJ JmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0uaXNudWxsKTsKKworCQkJaSsrOworCQl9 CisKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBuU2Vzc2lvblZhcmlhYmxl czsKKwl9CisKIAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5IGVudmlyb25tZW50LCBpZiBhbnks IGZyb20gcXVlcnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhl Y25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCAxOGFlOGYwZDRi Yi4uYjYwNDhkOTY5MDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC02NDUsNiArNjQ1LDE2IEBA IHR5cGVkZWYgc3RydWN0IEFzeW5jUmVxdWVzdAogCQkJCQkJCQkgKiB0dXBsZXMpICovCiB9IEFz eW5jUmVxdWVzdDsKIAorLyogLS0tLS0tLS0tLS0tLS0tLQorICogU2Vzc2lvblZhcmlhYmxlVmFs dWUKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgU2Vzc2lvblZhcmlh YmxlVmFsdWUKK3sKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOworfSBTZXNzaW9uVmFy aWFibGVWYWx1ZTsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJICBFU3RhdGUgaW5mb3JtYXRp b24KICAqCkBAIC03MDQsNiArNzE0LDEwIEBAIHR5cGVkZWYgc3RydWN0IEVTdGF0ZQogCVBhcmFt TGlzdEluZm8gZXNfcGFyYW1fbGlzdF9pbmZvOwkvKiB2YWx1ZXMgb2YgZXh0ZXJuYWwgcGFyYW1z ICovCiAJUGFyYW1FeGVjRGF0YSAqZXNfcGFyYW1fZXhlY192YWxzOwkvKiB2YWx1ZXMgb2YgaW50 ZXJuYWwgcGFyYW1zICovCiAKKwkvKiBTZXNzaW9uIHZhcmlhYmxlcyBpbmZvOiAqLworCWludAkJ CWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsJLyogbnVtYmVyIG9mIHVzZWQgdmFyaWFibGVzICov CisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzOyAvKiBhcnJheSBv ZiBjb3BpZXMgb2YgdmFsdWVzICovCisKIAlRdWVyeUVudmlyb25tZW50ICplc19xdWVyeUVudjsJ LyogcXVlcnkgZW52aXJvbm1lbnQgKi8KIAogCS8qIE90aGVyIHdvcmtpbmcgc3RhdGU6ICovCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2Rt bC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5v dXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAxZWZhNzFjOGYwCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlc19kbWwub3V0CkBAIC0wLDAgKzEsMTM1IEBACitDUkVBVEUgVEVNUCBWQVJJQUJMRSB0ZW1w X3ZhcjAxIEFTIGludDsKKy0tIHNob3VsZCBub3QgYmUgYWNjZXNzaWJsZSB3aXRob3V0IHZhcmlh YmxlJ3MgZmVuY2UKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdGVtcF92YXIwMTsKK0VSUk9SOiAg Y29sdW1uICJ0ZW1wX3ZhcjAxIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgdGVtcF92 YXIwMTsKKyAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxF KHRlbXBfdmFyMDEpOworIHRlbXBfdmFyMDEgCistLS0tLS0tLS0tLS0KKyAgICAgICAgICAgCiso MSByb3cpCisKKy0tIHNob3VsZCBub3QgY3Jhc2gKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJ Q0UgJyUnLCBWQVJJQUJMRSh0ZW1wX3ZhcjAxKTsKK0VORDsKKyQkOworTk9USUNFOiAgPE5VTEw+ CistLSB2YXJpYWJsZXMgY2Fubm90IGJlIHVzZWQgYnkgcGVyc2lzdGVudCBvYmplY3RzCistLSB0 aGF0IGNoZWNrcyBkZXBlbmRlbmN5CistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFRFTVAgVklFVyB0 ZW1wdiBBUyBTRUxFQ1QgVkFSSUFCTEUodGVtcF92YXIwMSk7CitFUlJPUjogIHNlc3Npb24gdmFy aWFibGUgInRlbXBfdmFyMDEiIGNhbm5vdCBiZSByZWZlcmVuY2VkIGluIGEgcGVyc2lzdGVudCBv YmplY3QKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3R2YXJfc3FsKCkKK1JFVFVSTlMg aW50IEFTICQkCitTRUxFQ1QgVkFSSUFCTEUodGVtcF92YXIwMSk7CiskJCBMQU5HVUFHRSBzcWw7 CitTRUxFQ1QgdGVzdHZhcl9zcWwoKTsKKyB0ZXN0dmFyX3NxbCAKKy0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgIAorKDEgcm93KQorCistLSBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2Vk IGFzIHBhcmFtZXRlciBvZiBDQUxMIG9yIEVYRUNVVEUKK0NSRUFURSBPUiBSRVBMQUNFIFBST0NF RFVSRSB0ZXN0dmFyX3Byb2MoaW50KQorQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScs ICQxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCBub3QgY3Jhc2gKK0NB TEwgdGVzdHZhcl9wcm9jKFZBUklBQkxFKHRlbXBfdmFyMDEpKTsKK0VSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSByZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBoZXJlCitMSU5FIDE6IENBTEwgdGVz dHZhcl9wcm9jKFZBUklBQkxFKHRlbXBfdmFyMDEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgorUFJFUEFSRSBwcmVwc3RtdChpbnQpIEFTIFNFTEVDVCAkMTsKKy0tIHNo b3VsZCBub3QgY3Jhc2gKK0VYRUNVVEUgcHJlcHN0bXQoVkFSSUFCTEUodGVtcF92YXIwMSkpOwor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUK K0xJTkUgMTogRVhFQ1VURSBwcmVwc3RtdChWQVJJQUJMRSh0ZW1wX3ZhcjAxKSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorRFJPUCBQUk9DRURVUkUgdGVzdHZhcl9wcm9j OworREVBTExPQ0FURSBwcmVwc3RtdDsKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJp YWJsZV90ZXN0X3JvbGVfMDM7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0dmFyX3Nk KCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFC TEUodGVtcF92YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gb25seSBvd25l ciBjYW4gcmVhZCBkYXRhCitTRVQgUk9MRSBUTyByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVz dF9yb2xlXzAzOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRSh0ZW1wX3ZhcjAxKTsK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdGVtcF92YXIw MQorLS0gZnggd2l0aCBzZWN1cml0eSBkZWZpbmVyIHNob3VsZCBiZSBvaworU0VMRUNUIHRlc3R2 YXJfc2QoKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUg dGVtcF92YXIwMQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIlZBUklBQkxFKHRlbXBf dmFyMDEpIgorUEwvcGdTUUwgZnVuY3Rpb24gdGVzdHZhcl9zZCgpIGxpbmUgMyBhdCBSQUlTRQor U0VUIFJPTEUgVE8gZGVmYXVsdDsKK0RST1AgVkFSSUFCTEUgdGVtcF92YXIwMTsKKy0tIHRoZXJl IGlzIG5vdCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbgorLS0gYnV0IHN0aWxsIGZ1bmN0aW9ucyB0 aGF0IHVzZXMgZHJvcHBlZCB2YXJpYWJsZXMKKy0tIHNob3VsZCBub3QgdG8gY3Jhc2gKK1NFTEVD VCB0ZXN0dmFyX3NkKCk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInRlbXBfdmFyMDEiIGRv ZXNuJ3QgZXhpc3QKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJWQVJJQUJMRSh0ZW1w X3ZhcjAxKSIKK1BML3BnU1FMIGZ1bmN0aW9uIHRlc3R2YXJfc2QoKSBsaW5lIDMgYXQgUkFJU0UK K1NFTEVDVCB0ZXN0dmFyX3NxbCgpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ0ZW1wX3Zh cjAxIiBkb2Vzbid0IGV4aXN0CitDT05URVhUOiAgU1FMIGZ1bmN0aW9uICJ0ZXN0dmFyX3NxbCIg ZHVyaW5nIGlubGluaW5nCitEUk9QIEZVTkNUSU9OIHRlc3R2YXJfc3FsKCk7CitEUk9QIEZVTkNU SU9OIHRlc3R2YXJfc2QoKTsKK0RST1AgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVz dF9yb2xlXzAzOworQ1JFQVRFIFRBQkxFIHRlc3R2YXJfdGVzdHRhYihhIGludCk7CitDUkVBVEUg VEVNUCBWQVJJQUJMRSB0ZW1wX3ZhcjAyIEFTIGludDsKK0lOU0VSVCBJTlRPIHRlc3R2YXJfdGVz dHRhYiBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApOworQ1JFQVRFIElOREVY IHRlc3R2YXJfdGVzdHRhYl9hIE9OIHRlc3R2YXJfdGVzdHRhYihhKTsKK0FOQUxZWkUgdGVzdHZh cl90ZXN0dGFiOworLS0gZm9yY2UgaW5kZXgKK1NFVCBlbmFibGVfc2Vxc2NhbiBUTyBPRkY7Cist LSBpbmRleCBzY2FuIHNob3VsZCBiZSB1c2VkCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gdGVzdHZhcl90ZXN0dGFiIFdIRVJFIGEgPSBWQVJJQUJMRSh0ZW1wX3ZhcjAyKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlc3R2YXJfdGVzdHRhYl9hIG9uIHRlc3R2 YXJfdGVzdHRhYgorICAgSW5kZXggQ29uZDogKGEgPSBWQVJJQUJMRVModGVtcF92YXIwMikpCiso MiByb3dzKQorCitEUk9QIElOREVYIHRlc3R2YXJfdGVzdHRhYl9hOworU0VUIGVuYWJsZV9zZXFz Y2FuIFRPIERFRkFVTFQ7CistLSBwYXJhbGxlbCBleGVjdXRpb24gc2hvdWxkIGJlIGJsb2NrZWQK Ky0tIEVuY291cmFnZSB1c2Ugb2YgcGFyYWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9j b3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxf dGFibGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVy ID0gMjsKKy0tIHBhcmFsbGVsIHBsYW4gc2hvdWxkIGJlIHVzZWQKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSB0ZXN0dmFyX3Rlc3R0YWIgV0hFUkUgYSA9IDEwMDsKKyAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEdhdGhlcgorICAgV29ya2VycyBQbGFubmVkOiAy CisgICAtPiAgUGFyYWxsZWwgU2VxIFNjYW4gb24gdGVzdHZhcl90ZXN0dGFiCisgICAgICAgICBG aWx0ZXI6IChhID0gMTAwKQorKDQgcm93cykKKworLS0gcGFyYWxsZWwgcGxhbiBzaG91bGQgbm90 IGJlIHVzZWQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0ZXN0dmFyX3Rlc3R0 YWIgV0hFUkUgYSA9IFZBUklBQkxFKHRlbXBfdmFyMDIpOworICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBTZXEgU2NhbiBvbiB0ZXN0dmFyX3Rlc3R0YWIKKyAgIEZpbHRlcjogKGEgPSBWQVJJQUJM RVModGVtcF92YXIwMikpCisoMiByb3dzKQorCitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0Owor UkVTRVQgcGFyYWxsZWxfdHVwbGVfY29zdDsKK1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2Fu X3NpemU7CitSRVNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOworRFJPUCBUQUJM RSB0ZXN0dmFyX3Rlc3R0YWI7CitEUk9QIFZBUklBQkxFIHRlbXBfdmFyMDI7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZQppbmRleCAzNzFjMGE2YmRkOS4uNDMwYmFmOGUwNGIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTQwLDMgKzE0MCw4IEBAIHRlc3Q6IGZhc3RfZGVm YXVsdAogIyBydW4gdGFibGVzcGFjZSB0ZXN0IGF0IHRoZSBlbmQgYmVjYXVzZSBpdCBkcm9wcyB0 aGUgdGFibGVzcGFjZSBjcmVhdGVkIGR1cmluZwogIyBzZXR1cCB0aGF0IG90aGVyIHRlc3RzIG1h eSB1c2UuCiB0ZXN0OiB0YWJsZXNwYWNlCisKKyMgLS0tLS0tLS0tLQorIyBBbm90aGVyIGdyb3Vw IG9mIHBhcmFsbGVsIHRlc3RzIChzZXNzaW9uIHZhcmlhYmxlcyByZWxhdGVkKQorIyAtLS0tLS0t LS0tCit0ZXN0OiBzZXNzaW9uX3ZhcmlhYmxlc19kZGwgc2Vzc2lvbl92YXJpYWJsZXNfZG1sCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmY1NmIxOTQ2N2IKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCkBA IC0wLDAgKzEsMTIwIEBACitDUkVBVEUgVEVNUCBWQVJJQUJMRSB0ZW1wX3ZhcjAxIEFTIGludDsK KworLS0gc2hvdWxkIG5vdCBiZSBhY2Nlc3NpYmxlIHdpdGhvdXQgdmFyaWFibGUncyBmZW5jZQor LS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB0ZW1wX3ZhcjAxOworCistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCBWQVJJQUJMRSh0ZW1wX3ZhcjAxKTsKKworLS0gc2hvdWxkIG5vdCBjcmFzaAorRE8gJCQK K0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScsIFZBUklBQkxFKHRlbXBfdmFyMDEpOworRU5EOwor JCQ7CisKKy0tIHZhcmlhYmxlcyBjYW5ub3QgYmUgdXNlZCBieSBwZXJzaXN0ZW50IG9iamVjdHMK Ky0tIHRoYXQgY2hlY2tzIGRlcGVuZGVuY3kKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgVEVNUCBW SUVXIHRlbXB2IEFTIFNFTEVDVCBWQVJJQUJMRSh0ZW1wX3ZhcjAxKTsKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gdGVzdHZhcl9zcWwoKQorUkVUVVJOUyBpbnQgQVMgJCQKK1NFTEVDVCBW QVJJQUJMRSh0ZW1wX3ZhcjAxKTsKKyQkIExBTkdVQUdFIHNxbDsKKworU0VMRUNUIHRlc3R2YXJf c3FsKCk7CisKKy0tIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgcGFyYW1ldGVy IG9mIENBTEwgb3IgRVhFQ1VURQorQ1JFQVRFIE9SIFJFUExBQ0UgUFJPQ0VEVVJFIHRlc3R2YXJf cHJvYyhpbnQpCitBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgJDE7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBzaG91bGQgbm90IGNyYXNoCitDQUxMIHRlc3R2YXJf cHJvYyhWQVJJQUJMRSh0ZW1wX3ZhcjAxKSk7CisKK1BSRVBBUkUgcHJlcHN0bXQoaW50KSBBUyBT RUxFQ1QgJDE7CisKKy0tIHNob3VsZCBub3QgY3Jhc2gKK0VYRUNVVEUgcHJlcHN0bXQoVkFSSUFC TEUodGVtcF92YXIwMSkpOworCitEUk9QIFBST0NFRFVSRSB0ZXN0dmFyX3Byb2M7CitERUFMTE9D QVRFIHByZXBzdG10OworCitDUkVBVEUgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVz dF9yb2xlXzAzOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0dmFyX3NkKCkKK1JF VFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUodGVt cF92YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBvbmx5IG93bmVyIGNh biByZWFkIGRhdGEKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0X3Jv bGVfMDM7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgVkFSSUFCTEUodGVtcF92YXIwMSk7CisK Ky0tIGZ4IHdpdGggc2VjdXJpdHkgZGVmaW5lciBzaG91bGQgYmUgb2sKK1NFTEVDVCB0ZXN0dmFy X3NkKCk7CisKK1NFVCBST0xFIFRPIGRlZmF1bHQ7CisKK0RST1AgVkFSSUFCTEUgdGVtcF92YXIw MTsKKworLS0gdGhlcmUgaXMgbm90IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCistLSBidXQgc3Rp bGwgZnVuY3Rpb25zIHRoYXQgdXNlcyBkcm9wcGVkIHZhcmlhYmxlcworLS0gc2hvdWxkIG5vdCB0 byBjcmFzaAorCitTRUxFQ1QgdGVzdHZhcl9zZCgpOworU0VMRUNUIHRlc3R2YXJfc3FsKCk7CisK K0RST1AgRlVOQ1RJT04gdGVzdHZhcl9zcWwoKTsKK0RST1AgRlVOQ1RJT04gdGVzdHZhcl9zZCgp OworCitEUk9QIFJPTEUgcmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMzsKKwor Q1JFQVRFIFRBQkxFIHRlc3R2YXJfdGVzdHRhYihhIGludCk7CitDUkVBVEUgVEVNUCBWQVJJQUJM RSB0ZW1wX3ZhcjAyIEFTIGludDsKKworSU5TRVJUIElOVE8gdGVzdHZhcl90ZXN0dGFiIFNFTEVD VCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCk7CisKK0NSRUFURSBJTkRFWCB0ZXN0dmFy X3Rlc3R0YWJfYSBPTiB0ZXN0dmFyX3Rlc3R0YWIoYSk7CisKK0FOQUxZWkUgdGVzdHZhcl90ZXN0 dGFiOworCistLSBmb3JjZSBpbmRleAorU0VUIGVuYWJsZV9zZXFzY2FuIFRPIE9GRjsKKworLS0g aW5kZXggc2NhbiBzaG91bGQgYmUgdXNlZAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIHRlc3R2YXJfdGVzdHRhYiBXSEVSRSBhID0gVkFSSUFCTEUodGVtcF92YXIwMik7CisKK0RS T1AgSU5ERVggdGVzdHZhcl90ZXN0dGFiX2E7CisKK1NFVCBlbmFibGVfc2Vxc2NhbiBUTyBERUZB VUxUOworCistLSBwYXJhbGxlbCBleGVjdXRpb24gc2hvdWxkIGJlIGJsb2NrZWQKKy0tIEVuY291 cmFnZSB1c2Ugb2YgcGFyYWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsK K1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nh bl9zaXplID0gMDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKKwor LS0gcGFyYWxsZWwgcGxhbiBzaG91bGQgYmUgdXNlZAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIHRlc3R2YXJfdGVzdHRhYiBXSEVSRSBhID0gMTAwOworCistLSBwYXJhbGxlbCBw bGFuIHNob3VsZCBub3QgYmUgdXNlZAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IHRlc3R2YXJfdGVzdHRhYiBXSEVSRSBhID0gVkFSSUFCTEUodGVtcF92YXIwMik7CisKK1JFU0VU IHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQg bWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJz X3Blcl9nYXRoZXI7CisKK0RST1AgVEFCTEUgdGVzdHZhcl90ZXN0dGFiOworRFJPUCBWQVJJQUJM RSB0ZW1wX3ZhcjAyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAwZmYzYjEwMjc3Yy4u MWU4OWIwN2YwN2IgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yNzI4LDYgKzI3Mjgs NyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQogU2Vzc2lvbgogU2Vzc2lvbkJhY2t1cFN0 YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlhYmxlVmFsdWUKIFNldENvbnN0cmFpbnRT dGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0Q29uc3RyYWludFRyaWdnZXJEYXRhCi0t IAoyLjUyLjAKCg== --000000000000618d5806445c9db6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251124-0003-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Disposition: attachment; filename="v20251124-0003-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midkhnh74 RnJvbSBjZWRlZDk5NmZjZDQ3MmIwNmRkZDU5MTgxOWEyZjQ3NmJmNDIwMzBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDIxIE5vdiAyMDI1IDIwOjQyOjU2ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAzLzddIGNvbGxlY3Qgc2Vzc2lvbiB2YXJpYWJsZXMgdXNlZCBpbiBwbGFuIGFuZCBhc3Np Z24gcGFyYW1pZAoKSW4gdGhlIHBsYW4gc3RhZ2Ugd2UgbmVlZCB0byBjb2xsZWN0IHVzZWQgc2Vz c2lvbiB2YXJpYWJsZXMuIE9uIHRoZQpvcmRlciBvZiB0aGlzIGxpc3QsIHRoZSBwYXJhbSBub2Rl cyBnZXRzIHBhcmFtaWQgKGZpeF9wYXJhbV9ub2RlKS4KVGhpcyBudW1iZXIgaXMgdXNlZCAobGF0 ZXIpIGFzIGluZGV4IHRvIGJ1ZmZlciBvZiB2YWx1ZXMgb2YgdGhlCnVzZWQgc2Vzc2lvbiB2YXJp YWJsZXMuIFRoZSBidWZmZXIgaXMgcHJlcGFyZWQgYW5kIGZpbGxlZCBieSBleGVjdXRvci4KClNv bWUgdW5zdXBwb3J0ZWQgb3B0aW1pemF0aW9ucyBhcmUgZGlzYWJsZWQ6CgoqIHBhcmFsbGVsIGV4 ZWN1dGlvbgoqIHNpbXBsZSBleHByZXNzaW9uIGV4ZWN1dGlvbiBpbiBQTC9wZ1NRTAoqIFNRTCBm dW5jdGlvbnMgaW5saW5pbmcKCkJlZm9yZSBleGVjdXRpb24gb2YgcXVlcnkgd2l0aCBzZXNzaW9u IHZhcmlhYmxlcyB3ZSBuZWVkIHRvIGNvbGxlY3QKdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4gVGhp cyBsaXN0IGlzIHVzZWQgZm9yIGxvYWRpbmcgdmFyaWFibGVzIHRvCmV4ZWN1dGVkIHF1ZXJ5LgoK cGxhbgotLS0KIGRvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sICAgICAgICAgICAgICAgIHwgIDYg KysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jICAgICAgICAgIHwgMTAgKysrCiBz cmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICB8IDM5ICsrKysrKysrKysK IHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgIHwgMTEgKysrCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgICAgICB8IDk0ICsrKysrKysrKysrKysr KysrKysrKystCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyB8ICAz ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgIHwgMzUgKysrKysr KystCiBzcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYyAgICAgICAgICAgICB8IDEwICsrLQog c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgfCAgMiArCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICB8ICA1ICsrCiBzcmMvaW5jbHVkZS9u b2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgICB8ICAzICsKIHNyYy9pbmNsdWRlL29wdGltaXpl ci9wbGFubWFpbi5oICAgICAgICAgIHwgIDIgKwogMTIgZmlsZXMgY2hhbmdlZCwgMjE0IGluc2Vy dGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BhcmFs bGVsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbAppbmRleCAxY2U5YWJmODZmNS4u MDBjMGY3MTVlZWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCkBAIC01MTUsNiArNTE1LDEyIEBAIEVYUExBSU4g U0VMRUNUICogRlJPTSBwZ2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwog ICAgICAgICBQbGFuIG5vZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5T dWJQbGFuPC9saXRlcmFsPi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgorCisgICAg PGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgIFVzYWdlIG9mIGEgc2Vzc2lvbiB2YXJp YWJsZS4KKyAgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgogICA8L2l0ZW1pemVkbGlzdD4K IAogIDxzZWN0MiBpZD0icGFyYWxsZWwtbGFiZWxpbmciPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3ku YwppbmRleCBmYmE1YjJlMGQwOS4uNjJkMjY1NjNkMTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5j eS5jCkBAIC0xOTAyLDYgKzE5MDIsMTYgQEAgZmluZF9leHByX3JlZmVyZW5jZXNfd2Fsa2VyKE5v ZGUgKm5vZGUsCiAJewogCQlQYXJhbQkgICAqcGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAorCQkv KgorCQkqIGNhdGFsb2cgbGVzcyBzZXNzaW9uIHZhcmlhYmxlIHZhcmlhYmxlIGNhbm5vdCBiZSB1 c2VkIGluIHBlcnNpc3RlbnQKKwkJKiBjYXRhbG9nIGJhc2VkIG9iamVjdC4KKwkJKi8KKwkJaWYg KHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJt c2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGNhbm5vdCBiZSByZWZlcmVuY2VkIGluIGEgcGVy c2lzdGVudCBvYmplY3QiLAorCQkJCQkJCXBhcmFtLT5wYXJhbXZhcm5hbWUpKSk7CisKIAkJLyog QSBwYXJhbWV0ZXIgbXVzdCBkZXBlbmQgb24gdGhlIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJ CWFkZF9vYmplY3RfYWRkcmVzcyhUeXBlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdHlwZSwgMCwK IAkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCA4NjFjMmE1NWY0ZS4uMGRhYTQ2ZmRkZTMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTEzMiw2ICsxMzIsNDUgQEAgZ2V0X3Nlc3Npb25f dmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKGNoYXIgKnZhcm5hbWUsCiAJKmNvbGxpZCA9IHN2 YXItPnZhcmNvbGxhdGlvbjsKIH0KIAorLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1 ZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoaW4gdGhlIGN1cnJlbnQgbWVtb3J5CisgKiBjb250 ZXh0KS4KKyAqLworRGF0dW0KK0dldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlY2hlY2soY2hhciAq dmFybmFtZSwKKwkJCQkJCQkJT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsCisJCQkJCQkJCWJvb2wg KmlzbnVsbCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlEYXR1bQkJcmVzdWx0OworCisJc3ZhciA9 IHNlYXJjaF92YXJpYWJsZSh2YXJuYW1lKTsKKworCWlmIChzdmFyLT52YXJ0eXBlICE9IHR5cGlk IHx8IHN2YXItPnZhcnR5cG1vZCAhPSB0eXBtb2QpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2 YXJpYWJsZSAlcyBpcyBub3Qgb2YgYSB0eXBlICVzIGJ1dCB0eXBlICVzIiwKKwkJCQkJCXZhcm5h bWUsCisJCQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2QodHlwaWQsIHR5cG1vZCksCisJCQkJ CQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2Qoc3Zhci0+dmFydHlwZSwgc3Zhci0+dmFydHlwbW9k KSkpKTsKKworCS8qIG9ubHkgb3duZXIgY2FuIGdldCBjb250ZW50IG9mIHZhcmlhYmxlICovCisJ aWYgKHN2YXItPnZhcm93bmVyICE9IEdldFVzZXJJZCgpICYmICFzdXBlcnVzZXIoKSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0Up LAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICVz IiwKKwkJCQkJCXZhcm5hbWUpKSk7CisKKwlpZiAoIXN2YXItPmlzbnVsbCkKKwkJcmVzdWx0ID0g ZGF0dW1Db3B5KHN2YXItPnZhbHVlLCBzdmFyLT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwll bHNlCisJCXJlc3VsdCA9IChEYXR1bSkgMDsKKworCSppc251bGwgPSBzdmFyLT5pc251bGw7CisK KwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogQ3JlYXRlcyBhIG5ldyB2YXJpYWJsZSAtIGRv ZXMgbmV3IGVudHJ5IGluIHNlc3Npb252YXJzCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jCmluZGV4IGM0ZmQ2NDZiOTk5Li5jYzAzYjAzMTFhNCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci9wbGFuL3BsYW5uZXIuYwpAQCAtMzc0LDYgKzM3NCw3IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVl cnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAog CWdsb2ItPmRlcGVuZHNPblJvbGUgPSBmYWxzZTsKIAlnbG9iLT5wYXJ0aXRpb25fZGlyZWN0b3J5 ID0gTlVMTDsKIAlnbG9iLT5yZWxfbm90bnVsbGF0dHNfaGFzaCA9IE5VTEw7CisJZ2xvYi0+c2Vz c2lvblZhcmlhYmxlcyA9IE5JTDsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFz aWJsZSB0byB1c2UgcGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTYxNyw2ICs2 MTgsOSBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlf c3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xv Yi0+cGFyYW1FeGVjVHlwZXM7CiAJLyogdXRpbGl0eVN0bXQgc2hvdWxkIGJlIG51bGwsIGJ1dCB3 ZSBtaWdodCBhcyB3ZWxsIGNvcHkgaXQgKi8KIAlyZXN1bHQtPnV0aWxpdHlTdG10ID0gcGFyc2Ut PnV0aWxpdHlTdG10OworCisJcmVzdWx0LT5zZXNzaW9uVmFyaWFibGVzID0gZ2xvYi0+c2Vzc2lv blZhcmlhYmxlczsKKwogCXJlc3VsdC0+c3RtdF9sb2NhdGlvbiA9IHBhcnNlLT5zdG10X2xvY2F0 aW9uOwogCXJlc3VsdC0+c3RtdF9sZW4gPSBwYXJzZS0+c3RtdF9sZW47CiAKQEAgLTgwNSw2ICs4 MDksMTMgQEAgc3VicXVlcnlfcGxhbm5lcihQbGFubmVyR2xvYmFsICpnbG9iLCBRdWVyeSAqcGFy c2UsIGNoYXIgKnBsYW5fbmFtZSwKIAkgKi8KIAlwdWxsX3VwX3N1YnF1ZXJpZXMocm9vdCk7CiAK KwkvKgorCSAqIENoZWNrIGlmIHNvbWUgc3VicXVlcnkgdXNlcyBhIHNlc3Npb24gdmFyaWFibGUu ICBUaGUgZmxhZworCSAqIGhhc1Nlc3Npb25WYXJpYWJsZXMgc2hvdWxkIGJlIHRydWUgaWYgdGhl IHF1ZXJ5IG9yIHNvbWUgc3VicXVlcnkgdXNlcyBhCisJICogc2Vzc2lvbiB2YXJpYWJsZS4KKwkg Ki8KKwlwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhyb290KTsKKwogCS8qCiAJICogSWYg dGhpcyBpcyBhIHNpbXBsZSBVTklPTiBBTEwgcXVlcnksIGZsYXR0ZW4gaXQgaW50byBhbiBhcHBl bmRyZWwuIFdlCiAJICogZG8gdGhpcyBub3cgYmVjYXVzZSBpdCByZXF1aXJlcyBhcHBseWluZyBw dWxsX3VwX3N1YnF1ZXJpZXMgdG8gdGhlIGxlYWYKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJl ZnMuYwppbmRleCBjY2RjOWJjMjY0YS4uNDhkZThiZjRmMTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9zZXRyZWZzLmMKQEAgLTIxMCw2ICsyMTAsOCBAQCBzdGF0aWMgTGlzdCAqc2V0X3JldHVy bmluZ19jbGF1c2VfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIHN0YXRpYyBMaXN0ICpz ZXRfd2luZG93YWdnX3J1bmNvbmRpdGlvbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAog CQkJCQkJCQkJCQkJICAgTGlzdCAqcnVuY29uZGl0aW9uLAogCQkJCQkJCQkJCQkJICAgUGxhbiAq cGxhbik7CitzdGF0aWMgYm9vbCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIo Tm9kZSAqbm9kZSwKKwkJCQkJCQkJCQkJCSBQbGFubmVySW5mbyAqcm9vdCk7CiAKIAogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCkBAIC0xMzQxLDYgKzEzNDMsNTAgQEAgc2V0X3BsYW5fcmVmcyhQbGFu bmVySW5mbyAqcm9vdCwgUGxhbiAqcGxhbiwgaW50IHJ0b2Zmc2V0KQogCXJldHVybiBwbGFuOwog fQogCisvKgorICogU2VhcmNoIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGVzIGluIHN1YnF1ZXJp ZXMKKyAqLwordm9pZAorcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMoUGxhbm5lckluZm8g KnJvb3QpCit7CisJUXVlcnkJICAgKnF1ZXJ5ID0gcm9vdC0+cGFyc2U7CisKKwlpZiAocXVlcnkt Pmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJeworCQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0g dHJ1ZTsKKwl9CisJZWxzZQorCXsKKwkJKHZvaWQpIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LAor CQkJCQkJCQkgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkg KHZvaWQgKikgcm9vdCwgMCk7CisJfQorfQorCitzdGF0aWMgYm9vbAorcHVsbF91cF9oYXNfc2Vz c2lvbl92YXJpYWJsZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpyb290KQorewor CWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwlpZiAoSXNBKG5vZGUsIFF1ZXJ5 KSkKKwl7CisJCVF1ZXJ5CSAgICpxdWVyeSA9IChRdWVyeSAqKSBub2RlOworCisJCWlmIChxdWVy eS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxl cyA9IHRydWU7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQkvKiByZWN1cnNlIGludG8gc3Vi c2VsZWN0cyAqLworCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIoKFF1ZXJ5ICopIG5vZGUsCisJ CQkJCQkJCSBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAo dm9pZCAqKSByb290LCAwKTsKKwl9CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9k ZSwgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgICh2b2lk ICopIHJvb3QpOworfQorCiAvKgogICogc2V0X2luZGV4b25seXNjYW5fcmVmZXJlbmNlcwogICoJ CURvIHNldF9wbGFuX3JlZmVyZW5jZXMgcHJvY2Vzc2luZyBvbiBhbiBJbmRleE9ubHlTY2FuCkBA IC0yMTQxLDYgKzIxODcsMTAgQEAgZml4X2V4cHJfY29tbW9uKFBsYW5uZXJJbmZvICpyb290LCBO b2RlICpub2RlKQogICogSWYgaXQncyBhIFBBUkFNX01VTFRJRVhQUiwgcmVwbGFjZSBpdCB3aXRo IHRoZSBhcHByb3ByaWF0ZSBQYXJhbSBmcm9tCiAgKiByb290LT5tdWx0aWV4cHJfcGFyYW1zOyBv dGhlcndpc2Ugbm8gY2hhbmdlIGlzIG5lZWRlZC4KICAqIEp1c3QgZm9yIHBhcmFub2lhJ3Mgc2Fr ZSwgd2UgbWFrZSBhIGNvcHkgb2YgdGhlIG5vZGUgaW4gZWl0aGVyIGNhc2UuCisgKgorICogSWYg aXQncyBhIFBBUkFNX1ZBUklBQkxFLCB0aGVuIHdlIGNvbGxlY3QgdXNlZCBzZXNzaW9uIHZhcmlh YmxlcyBpbgorICogdGhlIGxpc3Qgcm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlLiAgQWxzbywg YXNzaWduIHRoZSBwYXJhbWV0ZXIncworICogInBhcmFtaWQiIHRvIHRoZSBwYXJhbWV0ZXIncyBw b3NpdGlvbiBpbiB0aGF0IGxpc3QuCiAgKi8KIHN0YXRpYyBOb2RlICoKIGZpeF9wYXJhbV9ub2Rl KFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAqcCkKQEAgLTIxNTksNiArMjIwOSw0MyBAQCBmaXhf cGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFyYW0gKnApCiAJCQllbG9nKEVSUk9SLCAi dW5leHBlY3RlZCBQQVJBTV9NVUxUSUVYUFIgSUQ6ICVkIiwgcC0+cGFyYW1pZCk7CiAJCXJldHVy biBjb3B5T2JqZWN0KGxpc3RfbnRoKHBhcmFtcywgY29sbm8gLSAxKSk7CiAJfQorCisJaWYgKHAt PnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwl7CisJCWludAkJCW4gPSAwOworCisJCS8q IHdlIHdpbGwgbW9kaWZ5IG9iamVjdCAqLworCQlwID0gKFBhcmFtICopIGNvcHlPYmplY3QocCk7 CisKKwkJLyoKKwkJICogTm93LCB3ZSBjYW4gYWN0dWFsaXplIGxpc3Qgb2Ygc2Vzc2lvbiB2YXJp YWJsZXMsIGFuZCB3ZSBjYW4KKwkJICogY29tcGxldGUgcGFyYW1pZCBwYXJhbWV0ZXIuCisJCSAq LworCQlmb3JlYWNoX25vZGUoUGFyYW0sIHBhcmFtdmFyLCByb290LT5nbG9iLT5zZXNzaW9uVmFy aWFibGVzKQorCQl7CisJCQlpZiAoc3RyY21wKHBhcmFtdmFyLT5wYXJhbXZhcm5hbWUsIHAtPnBh cmFtdmFybmFtZSkgPT0gMCkKKwkJCXsKKwkJCQlwLT5wYXJhbWlkID0gcGFyYW12YXItPnBhcmFt aWQ7CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgcDsKKwkJCX0KKworCQkJbiArPSAxOworCQl9CisK KwkJcC0+cGFyYW1pZCA9IG47CisKKwkJLyoKKwkJICogQmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxl cyBhcmUgY2F0YWxvZ2xlc3MsIHdlIGNhbm5vdCB0byB1c2UgcGxhbgorCQkgKiBpbnZhbGlkYXRp b24uIFRoZW4gd2UgbmVlZCB0byBjaGVjayB0eXBlLCB0eXBtb2QsIGNvbGxpZCBhbnkgdGltZSwK KwkJICogd2hlbiB3ZSBsb2FkIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyB0byBwYXJhbWV0 ZXIncyBidWZmZXIuCisJCSAqIEZvciB0aGlzIHB1cnBvc2UgaXQgaXMgbW9yZSBlYXN5IHRvIHNh dmUgY29tcGxldGUgUGFyYW0gbm9kZS4KKwkJICovCisJCXJvb3QtPmdsb2ItPnNlc3Npb25WYXJp YWJsZXMgPSBsYXBwZW5kKHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMsIHApOworCisJCXJl dHVybiAoTm9kZSAqKSBwOworCX0KKwogCXJldHVybiAoTm9kZSAqKSBjb3B5T2JqZWN0KHApOwog fQogCkBAIC0yMjIwLDcgKzIzMDcsOSBAQCBmaXhfYWx0ZXJuYXRpdmVfc3VicGxhbihQbGFubmVy SW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVTdWJQbGFuICphc3BsYW4sCiAgKiByZXBsYWNpbmcgQWdn cmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGluaXRwbGFuIG91dHB1dCBQYXJh bXMsCiAgKiBjaG9vc2luZyB0aGUgYmVzdCBpbXBsZW1lbnRhdGlvbiBmb3IgQWx0ZXJuYXRpdmVT dWJQbGFucywKICAqIGxvb2tpbmcgdXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBh bmQgcmVsYXRlZCBub2RlcywKLSAqIGFuZCBhZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0 IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLgorICogYWRkaW5nIE9JRHMgZnJv bSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lkcywKKyAq IGFzc2lnbmluZyBwYXJhbXZhcmlkIHRvIFBBUkFNX1ZBUklBQkxFIHBhcmFtcywgYW5kIGNvbGxl Y3RpbmcgdGhlCisgKiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGUgcm9vdC0+Z2xvYi0+c2Vz c2lvblZhcmlhYmxlcyBsaXN0LgogICoKICAqICdub2RlJzogdGhlIGV4cHJlc3Npb24gdG8gYmUg bW9kaWZpZWQKICAqICdydG9mZnNldCc6IGhvdyBtdWNoIHRvIGluY3JlbWVudCB2YXJub3MgYnkK QEAgLTIyNDIsNyArMjMzMSw4IEBAIGZpeF9zY2FuX2V4cHIoUGxhbm5lckluZm8gKnJvb3QsIE5v ZGUgKm5vZGUsIGludCBydG9mZnNldCwgZG91YmxlIG51bV9leGVjKQogCQlyb290LT5tdWx0aWV4 cHJfcGFyYW1zICE9IE5JTCB8fAogCQlyb290LT5nbG9iLT5sYXN0UEhJZCAhPSAwIHx8CiAJCXJv b3QtPm1pbm1heF9hZ2dzICE9IE5JTCB8fAotCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5z KQorCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zIHx8CisJCXJvb3QtPmhhc1Nlc3Npb25W YXJpYWJsZXMpCiAJewogCQlyZXR1cm4gZml4X3NjYW5fZXhwcl9tdXRhdG9yKG5vZGUsICZjb250 ZXh0KTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9p bnRyZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCmluZGV4 IDc1ODE2OTU2NDdkLi4yODJiYjdkNWUyNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3ByZXAvcHJlcGpvaW50cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAv cHJlcGpvaW50cmVlLmMKQEAgLTE2NDksNiArMTY0OSw5IEBAIHB1bGxfdXBfc2ltcGxlX3N1YnF1 ZXJ5KFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSwK IAkvKiBJZiBzdWJxdWVyeSBoYWQgYW55IFJMUyBjb25kaXRpb25zLCBub3cgbWFpbiBxdWVyeSBk b2VzIHRvbyAqLwogCXBhcnNlLT5oYXNSb3dTZWN1cml0eSB8PSBzdWJxdWVyeS0+aGFzUm93U2Vj dXJpdHk7CiAKKwkvKiBpZiB0aGUgc3VicXVlcnkgaGFkIHNlc3Npb24gdmFyaWFibGVzLCB0aGUg bWFpbiBxdWVyeSBkb2VzIHRvbyAqLworCXBhcnNlLT5oYXNTZXNzaW9uVmFyaWFibGVzIHw9IHN1 YnF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJLyoKIAkgKiBzdWJxdWVyeSB3b24ndCBi ZSBwdWxsZWQgdXAgaWYgaXQgaGFzQWdncywgaGFzV2luZG93RnVuY3MsIG9yCiAJICogaGFzVGFy Z2V0U1JGcywgc28gbm8gd29yayBuZWVkZWQgb24gdGhvc2UgZmxhZ3MKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCAyMDJiYThlZDRiYi4uMTljYTM3N2UzNDAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJj YXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0 b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtOTQ1LDYgKzk0NiwxMyBA QCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtlcihOb2RlICpub2RlLCBtYXhfcGFyYWxsZWxfaGF6 YXJkX2NvbnRleHQgKmNvbnRleHQpCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKIAkJCXJldHVybiBmYWxzZTsKIAorCQkvKiB3ZSBkb24ndCBzdXBwb3J0IHBhc3Npbmcg c2Vzc2lvbiB2YXJpYWJsZXMgdG8gd29ya2VycyAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9 PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKG1heF9wYXJhbGxlbF9oYXphcmRfdGVzdChQ Uk9QQVJBTExFTF9SRVNUUklDVEVELCBjb250ZXh0KSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQor CiAJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VYRUMgfHwKIAkJCSFsaXN0X21lbWJl cl9pbnQoY29udGV4dC0+c2FmZV9wYXJhbV9pZHMsIHBhcmFtLT5wYXJhbWlkKSkKIAkJewpAQCAt MjQwMyw2ICsyNDExLDcgQEAgY29udmVydF9zYW9wX3RvX2hhc2hlZF9zYW9wX3dhbGtlcihOb2Rl ICpub2RlLCB2b2lkICpjb250ZXh0KQogICoJICB2YWx1ZSBvZiB0aGUgUGFyYW0uCiAgKiAyLiBG b2xkIHN0YWJsZSwgYXMgd2VsbCBhcyBpbW11dGFibGUsIGZ1bmN0aW9ucyB0byBjb25zdGFudHMu CiAgKiAzLiBSZWR1Y2UgUGxhY2VIb2xkZXJWYXIgbm9kZXMgdG8gdGhlaXIgY29udGFpbmVkIGV4 cHJlc3Npb25zLgorICogNC4gQ3VycmVudCB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGNhbiBi ZSB1c2VkIGZvciBlc3RpbWF0aW9uIHRvby4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwog Tm9kZSAqCkBAIC0yNTI5LDYgKzI1MzgsMjkgQEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRh dG9yKE5vZGUgKm5vZGUsCiAJCQkJCQl9CiAJCQkJCX0KIAkJCQl9CisJCQkJZWxzZSBpZiAocGFy YW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSAmJgorCQkJCQkJIGNvbnRleHQtPmVzdGlt YXRlKQorCQkJCXsKKwkJCQkJaW50MTYJCXR5cExlbjsKKwkJCQkJYm9vbAkJdHlwQnlWYWw7CisJ CQkJCURhdHVtCQlwdmFsOworCQkJCQlib29sCQlpc251bGw7CisKKwkJCQkJZ2V0X3R5cGxlbmJ5 dmFsKHBhcmFtLT5wYXJhbXR5cGUsICZ0eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJCQkJcHZhbCA9 IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlY2hlY2socGFyYW0tPnBhcmFtdmFybmFtZSwKKwkJ CQkJCQkJCQkJCQkJICAgcGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCQkJCQkJICAgcGFyYW0t PnBhcmFtdHlwbW9kLAorCQkJCQkJCQkJCQkJCQkgICAmaXNudWxsKTsKKworCQkJCQlyZXR1cm4g KE5vZGUgKikgbWFrZUNvbnN0KHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJCQkJCSAgcGFyYW0t PnBhcmFtdHlwbW9kLAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbWNvbGxpZCwKKwkJCQkJCQkJ CQkJICAoaW50KSB0eXBMZW4sCisJCQkJCQkJCQkJCSAgcHZhbCwKKwkJCQkJCQkJCQkJICBpc251 bGwsCisJCQkJCQkJCQkJCSAgdHlwQnlWYWwpOworCQkJCX0KIAogCQkJCS8qCiAJCQkJICogTm90 IHJlcGxhY2VhYmxlLCBzbyBqdXN0IGNvcHkgdGhlIFBhcmFtIChubyBuZWVkIHRvCkBAIC00ODI4 LDcgKzQ4NjAsOCBAQCBpbmxpbmVfZnVuY3Rpb24oT2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBl LCBPaWQgcmVzdWx0X2NvbGxpZCwKIAkJcXVlcnl0cmVlLT5saW1pdE9mZnNldCB8fAogCQlxdWVy eXRyZWUtPmxpbWl0Q291bnQgfHwKIAkJcXVlcnl0cmVlLT5zZXRPcGVyYXRpb25zIHx8Ci0JCWxp c3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkKKwkJKGxpc3RfbGVuZ3RoKHF1 ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkgfHwKKwkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFy aWFibGVzKQogCQlnb3RvIGZhaWw7CiAKIAkvKiBJZiB0aGUgZnVuY3Rpb24gcmVzdWx0IGlzIGNv bXBvc2l0ZSwgcmVzb2x2ZSBpdCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1n ci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwppbmRleCAwZmU2M2M2YmI4 My4uZDI2ZTc0NGUyOTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0xOTkxLDkgKzE5OTEsMTMg QEAgZ2V0X2NhbGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4cHIsIGludCBhcmdudW0pCiAJICov CiAJaWYgKElzQShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRydWU7Ci0JaWYgKElzQShhcmcsIFBh cmFtKSAmJgotCQkoKFBhcmFtICopIGFyZyktPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4pCi0J CXJldHVybiB0cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9 IChQYXJhbSAqKSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4gfHwg cC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmV0dXJuIHRydWU7CisJfQogCiAJ cmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmlu ZGV4IDk2YmU5NjhjM2Q0Li4zNjg3NDkwYmNiMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaApAQCAtMjIsNiArMjIsOCBAQAogZXh0ZXJuIHZvaWQgQ3JlYXRlVmFyaWFi bGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CiBleHRl cm4gdm9pZCBEcm9wVmFyaWFibGVCeU5hbWUoY2hhciAqdmFybmFtZSk7CiAKK2V4dGVybiBEYXR1 bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZWNoZWNrKGNoYXIgKnZhcm5hbWUsIE9pZCB0eXBp ZCwgaW50MzIgdHlwbW9kLCBib29sICppc251bGwpOworCiBleHRlcm4gdm9pZCBnZXRfc2Vzc2lv bl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQoY2hhciAqdmFybmFtZSwKIAkJCQkJCQkJCQkJ CQlPaWQgKnR5cGlkLAogCQkJCQkJCQkJCQkJCWludDMyICp0eXBtb2QsCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rl cy5oCmluZGV4IDQ2YTg2NTU2MjFkLi45N2EwMGRmOGQxZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgK QEAgLTE4OSw2ICsxODksOSBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVyR2xvYmFsCiAJLyogZXh0 ZW5zaW9uIHN0YXRlICovCiAJdm9pZAkgICoqZXh0ZW5zaW9uX3N0YXRlIHBnX25vZGVfYXR0cihy ZWFkX3dyaXRlX2lnbm9yZSk7CiAJaW50CQkJZXh0ZW5zaW9uX3N0YXRlX2FsbG9jYXRlZDsKKwor CS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCUxpc3QJICAgKnNlc3Npb25W YXJpYWJsZXM7CiB9IFBsYW5uZXJHbG9iYWw7CiAKIC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUg UGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFuIG5vZGUgKi8KQEAgLTU0Nyw2ICs1NTAsOCBA QCBzdHJ1Y3QgUGxhbm5lckluZm8KIAlib29sCQloYXNSZWN1cnNpb247CiAJLyogdHJ1ZSBpZiBh IHBsYW5uZXIgZXh0ZW5zaW9uIG1heSByZXBsYW4gdGhpcyBzdWJxdWVyeSAqLwogCWJvb2wJCWFz c3VtZVJlcGxhbm5pbmc7CisJLyogdHJ1ZSBpZiBzZXNzaW9uIHZhcmlhYmxlcyB3ZXJlIHVzZWQg Ki8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJLyoKIAkgKiBUaGUgcmFuZ2V0YWJs ZSBpbmRleCBmb3IgdGhlIFJURV9HUk9VUCBSVEUsIG9yIDAgaWYgdGhlcmUgaXMgbm8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmgKaW5kZXggYzQzOTNhOTQzMjEuLjYxNzU0YWU0ZWZjIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFu bm9kZXMuaApAQCAtMTU4LDYgKzE1OCw5IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAJ ICovCiAJTGlzdAkgICAqZXh0ZW5zaW9uX3N0YXRlOwogCisJLyogUEFSQU1fVkFSSUFCTEUgUGFy YW1zICovCisJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsKKwogCS8qIHN0YXRlbWVudCBsb2Nh dGlvbiBpbiBzb3VyY2Ugc3RyaW5nIChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KIAkvKiBzdGFydCBs b2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCXN0bXRfbG9jYXRpb247CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCBiL3NyYy9pbmNsdWRl L29wdGltaXplci9wbGFubWFpbi5oCmluZGV4IDAwYWRkZjE1OTkyLi5mYjgxY2ViMzc1ZiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKKysrIGIvc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKQEAgLTEzMiw0ICsxMzIsNiBAQCBleHRlcm4gdm9pZCBy ZWNvcmRfcGxhbl9mdW5jdGlvbl9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgZnVu Y2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX3R5cGVfZGVwZW5kZW5jeShQbGFubmVySW5m byAqcm9vdCwgT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5j aWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCk7CiAKK2V4dGVybiB2 b2lkIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290KTsKKwog I2VuZGlmCQkJCQkJCS8qIFBMQU5NQUlOX0ggKi8KLS0gCjIuNTIuMAoK --000000000000618d5806445c9db6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251124-0002-parsing-session-variable-fences.patch" Content-Disposition: attachment; filename="v20251124-0002-parsing-session-variable-fences.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midkhnhj5 RnJvbSA1NTFmYjhlMmE3YTc3ZWUxOTI3NjU5MDAxODM4YWEwYjA5YzdiYmM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDIxIE5vdiAyMDI1IDE1OjI4OjU5ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAyLzddIHBhcnNpbmcgc2Vzc2lvbiB2YXJpYWJsZSBmZW5jZXMKClRoZSBzZXNzaW9uIHZh cmlhYmxlcyBjYW4gYmUgdXNlZCBpbiBxdWVyeSBvbmx5IGluc2lkZSB0aGUgdmFyaWFibGUgZmVu Y2UuClRoaXMgaXMgc3BlY2lhbCBzeW50YXggVkFSSUFCTEUodmFybmFtZSksIHRoYXQgZWxpbWlu YXRlcyBhIHJpc2sgb2YKY29sbGlzaW9uIGJldHdlZW4gdmFyaWFibGUgYW5kIGNvbHVtbiBpZGVu dGlmaWVyLgoKVGhlIHNlc3Npb24gdmFyaWFibGVzIGNhbm5vdCBiZSB1c2VkIGFzIHBhcmFtZXRl cnMgb2YgQ0FMTCBvciBFWEVDVVRFCmNvbW1hbmRzLiBUaGVzZSBjb21tYW5kcyBldmFsdWF0ZXMg YXJndW1lbnRzIGJ5IGRpcmVjdCBjYWxsIG9mIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCBkaXJl Y3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGVzIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgp3 aWxsIGJlIGltcGxlbWVudGVkIGxhdGVyIChpbiBuZXh0IHN0ZXApCi0tLQogZG9jL3NyYy9zZ21s L2RkbC5zZ21sICAgICAgICAgICAgICAgICAgIHwgIDExICsrKwogc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHJlcGFyZS5jICAgICAgICAgIHwgICA4ICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMgfCAgMjEgKysrKysKIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5j ICAgICAgICAgICB8ICAgNiArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAg ICAgIHwgICA3ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgfCAg MTcgKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgIHwgMTE5ICsr KysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMg ICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICB8 ICAgNyArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgIHwgICA4ICsr CiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggfCAgIDUgKwogc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgIHwgIDEyICsrKwogc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9ub2RlLmggICAgICAgICB8ICAgMSArCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5j ICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAg ICAgICB8ICAgMSArCiAxNiBmaWxlcyBjaGFuZ2VkLCAyMjkgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvZGRsLnNnbWwKaW5kZXggMTBmMWEwMGMyNzUuLjE1MGIwNGYxZDRiIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01Njc2 LDYgKzU2NzYsMTcgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBX SEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwogICAgIFRoZSBzZXNzaW9uIHZh cmlhYmxlIGhvbGRzIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBwcml2 YXRlCiAgICAgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNzaW9u IGVuZHMuCiAgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEluIGFuIHF1ZXJ5IHRoZSBzZXNz aW9uIHZhcmlhYmxlIGNhbiBiZSB1c2VkIG9ubHkgaW5zaWRlCisgICAgPGZpcnN0dGVybT52YXJp YWJsZSBmZW5jZTwvZmlyc3R0ZXJtPi4gVGhpcyBpcyBzcGVjaWFsIHN5bnRheCBmb3IKKyAgICBz ZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXIsIGFuZCBjYW4gYmUgdXNlZCBvbmx5IGZvciBzZXNz aW9uIHZhcmlhYmxlCisgICAgaWRlbnRpZmllci4gVGhlIHNwZWNpYWwgc3ludGF4IGZvciBhY2Nl c3Npbmcgc2Vzc2lvbiB2YXJpYWJsZXMgcmVtb3ZlcworICAgIHJpc2sgb2YgY29sbGlzaW9ucyBi ZXR3ZWVuIHZhcmlhYmxlIGlkZW50aWZpZXJzIGFuZCBjb2x1bW4gbmFtZXMuCis8cHJvZ3JhbWxp c3Rpbmc+CitTRUxFQ1QgVkFSSUFCTEUoY3VycmVudF91c2VyX2lkKTsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICA8L3BhcmE+CiAgIDwvc2VjdDE+CiAKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDM0YjY0MTBkNmEyLi5mY2FkY2Q5YmMzZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYwpAQCAtMzQxLDYgKzM0MSwxNCBAQCBFdmFsdWF0ZVBhcmFtcyhQYXJz ZVN0YXRlICpwc3RhdGUsIFByZXBhcmVkU3RhdGVtZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAog CQlpKys7CiAJfQogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRzIG9mIEVYRUNVVEUgYXJlIGV2YWx1 YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9uIGV4ZWN1dG9yCisJICogY2FsbC4gIFRoaXMgbW9k ZSBkb2Vzbid0IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMgeWV0LiBJdCB3aWxsIGJlCisJICog ZW5hYmxlZCBsYXRlci4gVGhpcyBjYXNlIHNob3VsZCBiZSBibG9ja2VkIHBhcnNlciBieQorCSAq IGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMsIHNvIG9ubHkgYXNzZXJ0aW9ucyBp cyB1c2VkIGhlcmUuCisJICovCisJQXNzZXJ0KCFwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxl cyk7CisKIAkvKiBQcmVwYXJlIHRoZSBleHByZXNzaW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhw cnN0YXRlcyA9IEV4ZWNQcmVwYXJlRXhwckxpc3QocGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggZDc4ZTgyYjg3YzAuLjg2MWMyYTU1 ZjRlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xMTEsNiAr MTExLDI3IEBAIHNlYXJjaF92YXJpYWJsZShjaGFyICp2YXJuYW1lKQogCXJldHVybiBzdmFyOwog fQogCisvKgorICogUmV0dXJucyB0aGUgdHlwZSwgdHlwbW9kIGFuZCBjb2xsaWQgb2YgdGhlIGdp dmVuIHNlc3Npb24gdmFyaWFibGUuCisgKgorICogUmFpc2VzIGFuIGVycm9yIHdoZW4gdGhlIHZh cmlhYmxlIGRvZXNuJ3QgZXhpc3RzIGFuZCAqZXJyb3IgaXMgbnVsbC4KKyAqLwordm9pZAorZ2V0 X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKGNoYXIgKnZhcm5hbWUsCisJCQkJ CQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQlpbnQzMiAqdHlwbW9kLAorCQkJCQkJCQkJCU9p ZCAqY29sbGlkKQoreworCVNWYXJpYWJsZQlzdmFyOworCisJc3ZhciA9IHNlYXJjaF92YXJpYWJs ZSh2YXJuYW1lKTsKKworCS8qIG9ubHkgb3duZXIgY2FuIHNldCBjb250ZW50IG9mIHZhcmlhYmxl ICovCisJKnR5cGlkID0gc3Zhci0+dmFydHlwZTsKKwkqdHlwbW9kID0gc3Zhci0+dmFydHlwbW9k OworCSpjb2xsaWQgPSBzdmFyLT52YXJjb2xsYXRpb247Cit9CisKIC8qCiAgKiBDcmVhdGVzIGEg bmV3IHZhcmlhYmxlIC0gZG9lcyBuZXcgZW50cnkgaW4gc2Vzc2lvbnZhcnMKICAqCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jCmluZGV4IGVkZTgzOGNkNDBjLi5jNzYxZmRlNmFjYiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMKQEAgLTE2NjksNiArMTY2OSw5IEBAIGV4cHJMb2NhdGlvbihjb25zdCBOb2RlICpleHBy KQogCQljYXNlIFRfUGFyYW1SZWY6CiAJCQlsb2MgPSAoKGNvbnN0IFBhcmFtUmVmICopIGV4cHIp LT5sb2NhdGlvbjsKIAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCWxvYyA9 ICgoY29uc3QgVmFyaWFibGVGZW5jZSAqKSBleHByKS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJ Y2FzZSBUX0FfQ29uc3Q6CiAJCQlsb2MgPSAoKGNvbnN0IEFfQ29uc3QgKikgZXhwciktPmxvY2F0 aW9uOwogCQkJYnJlYWs7CkBAIC00NzAxLDYgKzQ3MDQsOSBAQCByYXdfZXhwcmVzc2lvbl90cmVl X3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJl YWs7CisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJLyogd2UgYXNzdW1lIHRoZSBmaWVsZHMg Y29udGFpbiBub3RoaW5nIGludGVyZXN0aW5nICovCisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJ CWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5v ZGVUYWcobm9kZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggM2IzOTJiMDg0YWQuLmMzODk3YWFm ZDIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTYxOCw2ICs2MTgsNyBAQCB0cmFuc2Zvcm1EZWxl dGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dp bmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JG cyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9o YXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9u VmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBA IC0xMDQzLDYgKzEwNDQsNyBAQCB0cmFuc2Zvcm1JbnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgSW5zZXJ0U3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9o YXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7 CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJs ZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE1MjYs NiArMTUyOCw3IEBAIHRyYW5zZm9ybVNlbGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxl Y3RTdG10ICpzdG10LAogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93 RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJ cXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFi bGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIHN0bXQt PmxvY2tpbmdDbGF1c2UpCiAJewpAQCAtMTc1Miw2ICsxNzU1LDcgQEAgdHJhbnNmb3JtVmFsdWVz Q2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50 cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhh c1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlh YmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2Nv bGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0yMDAzLDYgKzIwMDcsNyBAQCB0cmFuc2Zvcm1T ZXRPcGVyYXRpb25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlx cnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFz VGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBz dGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9o YXNTZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBsb2NraW5nQ2xhdXNlKQogCXsKQEAg LTI0NzUsNiArMjQ4MCw3IEBAIHRyYW5zZm9ybVJldHVyblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBSZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFz V2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNS RnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9u VmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVl cnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI1NDIsNiArMjU0OCw3IEBAIHRyYW5z Zm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCiAJ cXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNT dWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJs ZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xs YXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMGE1ZWZkNzMzZGMuLjgzNzMz MGE4MDdmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTUzMSw3ICs1MzEsNyBAQCBzdGF0aWMgTm9kZSAqbWFr ZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogJXR5cGUgPG5vZGU+CWRlZl9hcmcgY29sdW1uRWxlbSB3aGVyZV9jbGF1c2Ugd2hl cmVfb3JfY3VycmVudF9jbGF1c2UKIAkJCQlhX2V4cHIgYl9leHByIGNfZXhwciBBZXhwckNvbnN0 IGluZGlyZWN0aW9uX2VsIG9wdF9zbGljZV9ib3VuZAogCQkJCWNvbHVtbnJlZiBoYXZpbmdfY2xh dXNlIGZ1bmNfdGFibGUgeG1sdGFibGUgYXJyYXlfZXhwcgotCQkJCU9wdFdoZXJlQ2xhdXNlIG9w ZXJhdG9yX2RlZl9hcmcKKwkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnIHZhcmlh YmxlX2ZlbmNlCiAldHlwZSA8bGlzdD4Jb3B0X2NvbHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBl IDxsaXN0Pglyb3dzZnJvbV9pdGVtIHJvd3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAogJXR5 cGUgPGJvb2xlYW4+IG9wdF9vcmRpbmFsaXR5IG9wdF93aXRob3V0X292ZXJsYXBzCkBAIC04ODcs NyArODg3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJl bG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICAqLwogJW5vbmFzc29jCVVOQk9V TkRFRCBORVNURUQgLyogaWRlYWxseSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVO VCAqLwogJW5vbmFzc29jCUlERU5UIFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJ TkcgRk9MTE9XSU5HIENVQkUgUk9MTFVQCi0JCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFM VUVfUCBXSVRIIFdJVEhPVVQgUEFUSAorCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVF X1AgV0lUSCBXSVRIT1VUIFBBVEggVkFSSUFCTEUKICVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVs dGktY2hhcmFjdGVyIG9wcyBhbmQgdXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScr JyAnLScKICVsZWZ0CQknKicgJy8nICclJwpAQCAtMTU3MTksNiArMTU3MTksOCBAQCBjX2V4cHI6 CQljb2x1bW5yZWYJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCQllbHNlCiAJCQkJCQkkJCA9ICQy OwogCQkJCX0KKwkJCXwgdmFyaWFibGVfZmVuY2UKKwkJCQl7ICQkID0gJDE7IH0KIAkJCXwgY2Fz ZV9leHByCiAJCQkJeyAkJCA9ICQxOyB9CiAJCQl8IGZ1bmNfZXhwcgpAQCAtMTcxMjEsNiArMTcx MjMsMTcgQEAgY2FzZV9hcmc6CWFfZXhwcgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCAvKkVN UFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CiAJCTsKIAordmFyaWFibGVfZmVuY2U6CisJCQlW QVJJQUJMRSAnKCcgQ29sSWQgJyknCisJCQkJeworCQkJCQlWYXJpYWJsZUZlbmNlICp2ZiA9IG1h a2VOb2RlKFZhcmlhYmxlRmVuY2UpOworCisJCQkJCXZmLT52YXJuYW1lID0gJDM7CisJCQkJCXZm LT5sb2NhdGlvbiA9IEAzOworCQkJCQkkJCA9IChOb2RlICopIHZmOworCQkJCX0KKwkJOworCiBj b2x1bW5yZWY6CUNvbElkCiAJCQkJewogCQkJCQkkJCA9IG1ha2VDb2x1bW5SZWYoJDEsIE5JTCwg QDEsIHl5c2Nhbm5lcik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAzMmQ2YWU5MThjYS4u ODk2NjFkMzgzNTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTgsNiArMTgsNyBAQAog I2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Fn Z3JlZ2F0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRl ICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKQEAgLTc3 LDYgKzc4LDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVdob2xlUm93UmVmKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtVHlwZUNh c3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpOwogc3RhdGljIE5vZGUgKnRyYW5z Zm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2xsYXRlQ2xhdXNlICpjKTsK K3N0YXRpYyBOb2RlICp0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg VmFyaWFibGVGZW5jZSAqdmYpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25PYmplY3RDb25z dHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCUpzb25PYmplY3RDb25zdHJ1 Y3RvciAqY3Rvcik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbkFycmF5Q29uc3RydWN0b3Io UGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtMzcxLDYgKzM3MywxMCBAQCB0cmFuc2Zvcm1FeHByUmVj dXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQlyZXN1bHQgPSB0cmFuc2Zv cm1Kc29uRnVuY0V4cHIocHN0YXRlLCAoSnNvbkZ1bmNFeHByICopIGV4cHIpOwogCQkJYnJlYWs7 CiAKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQlyZXN1bHQgPSB0cmFuc2Zvcm1WYXJpYWJs ZUZlbmNlKHBzdGF0ZSwgKFZhcmlhYmxlRmVuY2UgKikgZXhwcik7CisJCQlicmVhazsKKwogCQlk ZWZhdWx0OgogCQkJLyogc2hvdWxkIG5vdCByZWFjaCBoZXJlICovCiAJCQllbG9nKEVSUk9SLCAi dW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGV4cHIpKTsKQEAgLTkw NCw2ICs5MTAsMTE5IEBAIHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFy YW1SZWYgKnByZWYpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIFJldHVybnMgdHJ1ZSBp ZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBraW5kIGlzIHZhbGlkIGZvciBzZXNzaW9uIHZhcmlhYmxl cy4KKyAqIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSB1c2VkIGV2ZXJ5d2hlcmUgd2hlcmUgZXh0 ZXJuYWwgcGFyYW1ldGVycyBjYW4gYmUKKyAqIHVzZWQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUg bm90IGFsbG93ZWQgaW4gRERMIGNvbW1hbmRzIG9yIGluIGNvbnN0cmFpbnRzLgorICoKKyAqIEFu IGlkZW50aWZpZXIgY2FuIGJlIHBhcnNlZCBhcyBhIHNlc3Npb24gdmFyaWFibGUgb25seSBmb3Ig ZXhwcmVzc2lvbiBraW5kcworICogd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFsbG93ZWQu ICBUaGlzIGlzIHRoZSBwcmltYXJ5IHVzYWdlIG9mIHRoaXMKKyAqIGZ1bmN0aW9uLgorICoKKyAq IFRoZSBzZWNvbmQgdXNhZ2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBkZWNpZGUgd2hldGhlciBh ICJjb2x1bW4gZG9lcyBub3QKKyAqIGV4aXN0IiBvciBhICJjb2x1bW4gb3IgdmFyaWFibGUgZG9l cyBub3QgZXhpc3QiIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIGJlCisgKiBwcmludGVkLiAgV2hlbiB3 ZSBhcmUgaW4gYW4gZXhwcmVzc2lvbiB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW5ub3QgYmUK KyAqIHVzZWQsIHdlIHJhaXNlIHRoZSBmaXJzdCBmb3JtIG9mIGVycm9yIG1lc3NhZ2UuCisgKi8K K3N0YXRpYyBib29sCitleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKFBhcnNlRXhw cktpbmQgcF9leHByX2tpbmQpCit7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisKKwlzd2l0Y2gg KHBfZXhwcl9raW5kKQorCXsKKwkJY2FzZSBFWFBSX0tJTkRfTk9ORToKKwkJCUFzc2VydChmYWxz ZSk7CQkvKiBjYW4ndCBoYXBwZW4gKi8KKwkJCXJldHVybiBmYWxzZTsKKworCQkJLyogc2Vzc2lv biB2YXJpYWJsZXMgYWxsb3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9PVEhFUjoKKwkJY2FzZSBF WFBSX0tJTkRfSk9JTl9PTjoKKwkJY2FzZSBFWFBSX0tJTkRfRlJPTV9TVUJTRUxFQ1Q6CisJCWNh c2UgRVhQUl9LSU5EX0ZST01fRlVOQ1RJT046CisJCWNhc2UgRVhQUl9LSU5EX1dIRVJFOgorCQlj YXNlIEVYUFJfS0lORF9IQVZJTkc6CisJCWNhc2UgRVhQUl9LSU5EX0ZJTFRFUjoKKwkJY2FzZSBF WFBSX0tJTkRfV0lORE9XX1BBUlRJVElPTjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX09SREVS OgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfUkFOR0U6CisJCWNhc2UgRVhQUl9LSU5E X1dJTkRPV19GUkFNRV9ST1dTOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfR1JPVVBT OgorCQljYXNlIEVYUFJfS0lORF9TRUxFQ1RfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9VUERB VEVfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfU09VUkNFOgorCQljYXNlIEVYUFJf S0lORF9NRVJHRV9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9SRVRVUk5JTkc6CisJCWNh c2UgRVhQUl9LSU5EX0dST1VQX0JZOgorCQljYXNlIEVYUFJfS0lORF9PUkRFUl9CWToKKwkJY2Fz ZSBFWFBSX0tJTkRfRElTVElOQ1RfT046CisJCWNhc2UgRVhQUl9LSU5EX0xJTUlUOgorCQljYXNl IEVYUFJfS0lORF9PRkZTRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1JFVFVSTklORzoKKwkJY2FzZSBF WFBSX0tJTkRfVkFMVUVTOgorCQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgorCQkJcmVz dWx0ID0gdHJ1ZTsKKwkJCWJyZWFrOworCisJCQkvKiBzZXNzaW9uIHZhcmlhYmxlcyBub3QgYWxs b3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9JTlNFUlRfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lO RF9FWEVDVVRFX1BBUkFNRVRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfQ0FMTF9BUkdVTUVOVDoKKwkJ Y2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKKwkJY2FzZSBFWFBSX0tJTkRfRE9NQUlO X0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJ TkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoK KwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfUFJFRElDQVRFOgorCQljYXNlIEVYUFJfS0lORF9TVEFU U19FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9UUklHR0VSX1dIRU46CisJCWNhc2UgRVhQ Ul9LSU5EX1BBUlRJVElPTl9CT1VORDoKKwkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9OX0VYUFJF U1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CisJCWNhc2UgRVhQUl9L SU5EX0pPSU5fVVNJTkc6CisJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQ Ul9LSU5EX0FMVEVSX0NPTF9UUkFOU0ZPUk06CisJCWNhc2UgRVhQUl9LSU5EX1BPTElDWToKKwkJ Y2FzZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKKwkJCXJlc3VsdCA9IGZhbHNlOworCQkJYnJlYWs7 CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIE5vZGUgKgordHJhbnNmb3JtVmFy aWFibGVGZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIFZhcmlhYmxlRmVuY2UgKnZmKQoreworCVBh cmFtCSAgICpwYXJhbTsKKwlPaWQJCQl0eXBpZDsKKwlpbnQzMgkJdHlwbW9kOworCU9pZAkJCWNv bGxpZDsKKworCS8qIFZhcmlhYmxlRmVuY2UgY2FuIGJlIHVzZWQgb25seSBpbiBjb250ZXh0IHdo ZW4gdmFyaWFibGVzIGFyZSBzdXBwb3J0ZWQgKi8KKwlpZiAoIWV4cHJfa2luZF9hbGxvd3Nfc2Vz c2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2co InNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSIpLAorCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7CisKKwlnZXRfc2Vz c2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmYtPnZhcm5hbWUsCisJCQkJCQkJCQkJ CSZ0eXBpZCwgJnR5cG1vZCwgJmNvbGxpZCk7CisKKworCXBhcmFtID0gbWFrZU5vZGUoUGFyYW0p OworCisJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCXBhcmFtLT5wYXJhbXZh cm5hbWUgPSBwc3RyZHVwKHZmLT52YXJuYW1lKTsKKwlwYXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7 CisJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOworCXBhcmFtLT5wYXJhbWNvbGxpZCA9IGNv bGxpZDsKKworCXBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKworCXJldHVy biAoTm9kZSAqKSBwYXJhbTsKK30KKwogLyogVGVzdCB3aGV0aGVyIGFuIGFfZXhwciBpcyBhIHBs YWluIE5VTEwgY29uc3RhbnQgb3Igbm90ICovCiBzdGF0aWMgYm9vbAogZXhwcklzTnVsbENvbnN0 YW50KE5vZGUgKmFyZykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJn ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKaW5kZXggNTFkNzcwM2VmZjcu LjI0NGVmY2RkZjMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2Uu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpAQCAtNDA1LDYgKzQwNSw3 IEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE1lcmdlU3RtdCAqc3Rt dCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IGZhbHNlOwogCXFyeS0+aGFzU3ViTGlua3MgPSBw c3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRl LT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3Rh dGUsIHFyeSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgzYi4u MmY0MjYyN2YwMDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTIwMzMsNiArMjAz MywxMyBAQCBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hhciAqKm5hbWUpCiAJ CQkJCQkgKGludCkgKChKc29uRnVuY0V4cHIgKikgbm9kZSktPm9wKTsKIAkJCX0KIAkJCWJyZWFr OworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCXsKKwkJCQkvKiByZXR1cm4gbGFzdCBmaWVs ZCBuYW1lICovCisJCQkJKm5hbWUgPSAoKFZhcmlhYmxlRmVuY2UgKikgbm9kZSktPnZhcm5hbWU7 CisJCQkJcmV0dXJuIDI7CisJCQl9CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwog CX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCA1NTZhYjA1N2U1YS4uZTA1MGRjMTM0 NWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTg4MTYsNiArODgxNiwxNCBAQCBn ZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCQl9 CiAJfQogCisJLyogTm90ZTogY2FuIGJlIGJlIHVzZWQgYnkgRVhQTEFJTiAqLworCWlmIChwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJYXBwZW5kU3RyaW5nSW5mbyhj b250ZXh0LT5idWYsICJWQVJJQUJMRVMoJXMpIiwKKwkJCQkJCSBxdW90ZV9pZGVudGlmaWVyKHBh cmFtLT5wYXJhbXZhcm5hbWUpKTsKKwkJcmV0dXJuOworCX0KKwogCS8qCiAJICogTm90IFBBUkFN X0VYRUMsIG9yIGNvdWxkbid0IGZpbmQgcmVmZXJlbnQ6IGp1c3QgcHJpbnQgJE4uCiAJICoKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRleCAxZWQ0MGQ4N2EzOC4uOTZi ZTk2OGMzZDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTIy LDQgKzIyLDkgQEAKIGV4dGVybiB2b2lkIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpOwogZXh0ZXJuIHZvaWQgRHJvcFZhcmlhYmxl QnlOYW1lKGNoYXIgKnZhcm5hbWUpOwogCitleHRlcm4gdm9pZCBnZXRfc2Vzc2lvbl92YXJpYWJs ZV90eXBlX3R5cG1vZF9jb2xsaWQoY2hhciAqdmFybmFtZSwKKwkJCQkJCQkJCQkJCQlPaWQgKnR5 cGlkLAorCQkJCQkJCQkJCQkJCWludDMyICp0eXBtb2QsCisJCQkJCQkJCQkJCQkJT2lkICpjb2xs aWQpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA1NjdlNTk3MGU1MC4uNDg3 NDY0YjE0YjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTE2Nyw2ICsxNjcsOCBAQCB0eXBl ZGVmIHN0cnVjdCBRdWVyeQogCWJvb2wJCWhhc1Jvd1NlY3VyaXR5IHBnX25vZGVfYXR0cihxdWVy eV9qdW1ibGVfaWdub3JlKTsKIAkvKiBwYXJzZXIgaGFzIGFkZGVkIGFuIFJURV9HUk9VUCBSVEUg Ki8KIAlib29sCQloYXNHcm91cFJURSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7 CisJLyogdXNlcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWJvb2wJCWhhc1Nlc3Npb25WYXJpYWJs ZXMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGlzIGEgUkVUVVJOIHN0 YXRlbWVudCAqLwogCWJvb2wJCWlzUmV0dXJuIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdu b3JlKTsKIApAQCAtMzIyLDYgKzMyNCwxNiBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbVJlZgogCVBh cnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8K IH0gUGFyYW1SZWY7CiAKKy8qCisgKiBWYXJpYWJsZUZlbmNlIC0gZW5zdXJlIHNvIGZpZWxkcyB3 aWxsIGJlIGludGVycHJldHRlZCBhcyBhIHZhcmlhYmxlCisgKi8KK3R5cGVkZWYgc3RydWN0IFZh cmlhYmxlRmVuY2UKK3sKKwlOb2RlVGFnCQl0eXBlOworCWNoYXIJICAgKnZhcm5hbWU7CQkvKiB2 YXJpYWJsZSBuYW1lICovCisJUGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwg b3IgLTEgaWYgdW5rbm93biAqLworfSBWYXJpYWJsZUZlbmNlOworCiAvKgogICogQV9FeHByIC0g aW5maXgsIHByZWZpeCwgYW5kIHBvc3RmaXggZXhwcmVzc2lvbnMKICAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaAppbmRleCAxYjQ0MzZmMmZmNi4uNzYwY2EwM2Y3ZTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o CkBAIC0zNzgsNiArMzc4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgQ29uc3QKICAqCQkJCW9mIHRoZSBg cGFyYW1pZCcgZmllbGQgY29udGFpbiB0aGUgU3ViTGluaydzIHN1YkxpbmtJZCwgYW5kCiAgKgkJ CQl0aGUgbG93LW9yZGVyIDE2IGJpdHMgY29udGFpbiB0aGUgY29sdW1uIG51bWJlci4gIChUaGlz IHR5cGUKICAqCQkJCW9mIFBhcmFtIGlzIGFsc28gY29udmVydGVkIHRvIFBBUkFNX0VYRUMgZHVy aW5nIHBsYW5uaW5nLikKKyAqCQlQQVJBTV9WQVJJQUJMRTogIFRoZSBwYXJhbWV0ZXIgaXMgYSBy ZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxlCisgKgkJCQkocGFyYW12YXJuYW1lIGhvbGRz IHRoZSB2YXJpYWJsZSdzIG5hbWUpLgogICovCiB0eXBlZGVmIGVudW0gUGFyYW1LaW5kCiB7CkBA IC0zODUsNiArMzg3LDcgQEAgdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogCVBBUkFNX0VYRUMsCiAJ UEFSQU1fU1VCTElOSywKIAlQQVJBTV9NVUxUSUVYUFIsCisJUEFSQU1fVkFSSUFCTEUsCiB9IFBh cmFtS2luZDsKIAogdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KQEAgLTM5OSw2ICs0MDIsOCBAQCB0eXBl ZGVmIHN0cnVjdCBQYXJhbQogCWludDMyCQlwYXJhbXR5cG1vZDsKIAkvKiBPSUQgb2YgY29sbGF0 aW9uLCBvciBJbnZhbGlkT2lkIGlmIG5vbmUgKi8KIAlPaWQJCQlwYXJhbWNvbGxpZDsKKwkvKiBP SUQgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLworCWNo YXIJICAgKnBhcmFtdmFybmFtZSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJ LyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlsb2NhdGlv bjsKIH0gUGFyYW07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5o IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCBmN2QwN2M4NDU0Mi4uODRl ODg2OTQwZDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysr IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtMjI4LDYgKzIyOCw3IEBAIHN0 cnVjdCBQYXJzZVN0YXRlCiAJYm9vbAkJcF9oYXNUYXJnZXRTUkZzOwogCWJvb2wJCXBfaGFzU3Vi TGlua3M7CiAJYm9vbAkJcF9oYXNNb2RpZnlpbmdDVEU7CisJYm9vbAkJcF9oYXNTZXNzaW9uVmFy aWFibGVzOwogCiAJTm9kZQkgICAqcF9sYXN0X3NyZjsJCS8qIG1vc3QgcmVjZW50IHNldC1yZXR1 cm5pbmcgZnVuYy9vcCBmb3VuZCAqLwogCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCBkMTk0MjViN2E3 MS4uOTY4NTc4NzRmZmUgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMK KysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtODI2OCw3ICs4MjY4LDggQEAg ZXhlY19pc19zaW1wbGVfcXVlcnkoUExwZ1NRTF9leHByICpleHByKQogCQlxdWVyeS0+c29ydENs YXVzZSB8fAogCQlxdWVyeS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnktPmxpbWl0Q291bnQgfHwK LQkJcXVlcnktPnNldE9wZXJhdGlvbnMpCisJCXF1ZXJ5LT5zZXRPcGVyYXRpb25zIHx8CisJCXF1 ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKgpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCBjODA2Njg4ODkyYi4uMGZmM2IxMDI3N2MgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0zMjE5LDYgKzMyMTksNyBAQCBWYWxpZGF0b3JWYWxpZGF0 ZUNCCiBWYWx1ZXNTY2FuCiBWYWx1ZXNTY2FuU3RhdGUKIFZhcgorVmFyaWFibGVGZW5jZQogVmFy Qml0CiBWYXJDaGFyCiBWYXJQYXJhbVN0YXRlCi0tIAoyLjUyLjAKCg== --000000000000618d5806445c9db6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251124-0001-CREATE-VARIABLE-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20251124-0001-CREATE-VARIABLE-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midkhnhw6 RnJvbSA0M2M4MGM2N2IzNTFmYWQxNjBmMjQ1ZjNhNDVkNDViM2NjZjBiYzE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE5IE5vdiAyMDI1IDE5OjM2OjA3ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAxLzddIENSRUFURSBWQVJJQUJMRSwgRFJPUCBWQVJJQUJMRQoKLS0tCiBkb2Mvc3JjL3Nn bWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjMgKysKIGRvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAxNSArKwogZG9jL3NyYy9zZ21s L3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAgICAgIHwgICAyICsKIGRvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8IDEzMiArKysrKysrKysrKwogZG9jL3Ny Yy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgIHwgIDg0ICsrKysrKysKIGRv Yy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMv YmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAyMTggKysrKysrKysrKysrKysr KysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNTUg KysrKy0KIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAy NiArKysKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAx MCArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgIDI1 ICsrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMjMg KysKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDIgKwog Li4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgICAgICAgIHwgIDQzICsrKysK IHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgMiArLQog Li4uL3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwgICAgIHwgIDU2ICsrKysr CiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDQgKwog MjEgZmlsZXMgY2hhbmdlZCwgNzE5IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlc19kZGwub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwu c2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCAwOWFkODQwMGZkMC4uMTBmMWEwMGMy NzUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv ZGRsLnNnbWwKQEAgLTU2NTUsNiArNTY1NSwyOSBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBG Uk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAg ICA8L3BhcmE+CiAgPC9zZWN0MT4KIAorICA8c2VjdDEgaWQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxl cyI+CisgICA8dGl0bGU+U2Vzc2lvbiBWYXJpYWJsZXM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJt IHpvbmU9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyI+CisgICAgPHByaW1hcnk+U2Vzc2lvbiB2YXJp YWJsZXM8L3ByaW1hcnk+CisgICA8L2luZGV4dGVybT4KKworICAgPGluZGV4dGVybT4KKyAgICA8 cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAg IDxwYXJhPgorICAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSB0ZW1wb3JhbCBkYXRhYmFzZSBvYmpl Y3RzIHRoYXQgY2FuIGhvbGQgYSB2YWx1ZS4KKyAgICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIGJl IGNyZWF0ZWQgYnkgdGhlIDxjb21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4KKyAgICBj b21tYW5kLiBPbmx5IG93bmVyIGNhbiB1c2Ugc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgVGhlIHNlc3Npb24gdmFyaWFibGUgaG9sZHMgdmFsdWUgaW4gc2Vz c2lvbiBtZW1vcnkuICBUaGlzIHZhbHVlIGlzIHByaXZhdGUKKyAgICB0byBlYWNoIHNlc3Npb24g YW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4KKyAgIDwvcGFyYT4KKyAgPC9z ZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFz ZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNn bWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBhNzZjZjVjMzgzZi4uNjRkNWZk NDAyMTkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0xNzI2LDYgKzE3MjYsMjEgQEAKICAgIDwvZ2xvc3Nk ZWY+CiAgIDwvZ2xvc3NlbnRyeT4KIAorICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2Vzc2lv bi12YXJpYWJsZSI+CisgICA8Z2xvc3N0ZXJtPlNlc3Npb24gdmFyaWFibGU8L2dsb3NzdGVybT4K KyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSB0ZW1wb3JhbCBkYXRhYmFzZSBvYmpl Y3QgdGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcworICAgICB2YWx1 ZSBpcyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vz c2lvbiBlbmRzLgorICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJs ZSBpcyBudWxsLiAgUmVhZCBvciB3cml0ZSBhY2Nlc3MKKyAgICAgdG8gc2Vzc2lvbiB2YXJpYWJs ZXMgaXMgYWxsb3dlZCBvbmx5IHRvIG93bmVyIChjcmVhdG9yKS4KKyAgICA8L3BhcmE+CisgICAg PHBhcmE+CisgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRs LXNlc3Npb24tdmFyaWFibGVzIi8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwv Z2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2hhcmVkLW1lbW9yeSI+ CiAgICA8Z2xvc3N0ZXJtPlNoYXJlZCBtZW1vcnk8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCBlMTY3NDA2Yzc0NC4uYTczNDk5MTk2NTggMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsbGZpbGVzLnNnbWwKQEAgLTk5LDYgKzk5LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2Fi bGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBjcmVhdGVU eXBlICAgICAgICAgU1lTVEVNICJjcmVhdGVfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVVz ZXIgICAgICAgICBTWVNURU0gImNyZWF0ZV91c2VyLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNl ck1hcHBpbmcgIFNZU1RFTSAiY3JlYXRlX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGNy ZWF0ZVZhcmlhYmxlICAgICBTWVNURU0gImNyZWF0ZV92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZ IGNyZWF0ZVZpZXcgICAgICAgICBTWVNURU0gImNyZWF0ZV92aWV3LnNnbWwiPgogPCFFTlRJVFkg ZGVhbGxvY2F0ZSAgICAgICAgIFNZU1RFTSAiZGVhbGxvY2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRl Y2xhcmUgICAgICAgICAgICBTWVNURU0gImRlY2xhcmUuc2dtbCI+CkBAIC0xNDcsNiArMTQ4LDcg QEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJl Y3RvcnkuCiA8IUVOVElUWSBkcm9wVHlwZSAgICAgICAgICAgU1lTVEVNICJkcm9wX3R5cGUuc2dt bCI+CiA8IUVOVElUWSBkcm9wVXNlciAgICAgICAgICAgU1lTVEVNICJkcm9wX3VzZXIuc2dtbCI+ CiA8IUVOVElUWSBkcm9wVXNlck1hcHBpbmcgICAgU1lTVEVNICJkcm9wX3VzZXJfbWFwcGluZy5z Z21sIj4KKzwhRU5USVRZIGRyb3BWYXJpYWJsZSAgICAgICBTWVNURU0gImRyb3BfdmFyaWFibGUu c2dtbCI+CiA8IUVOVElUWSBkcm9wVmlldyAgICAgICAgICAgU1lTVEVNICJkcm9wX3ZpZXcuc2dt bCI+CiA8IUVOVElUWSBlbmQgICAgICAgICAgICAgICAgU1lTVEVNICJlbmQuc2dtbCI+CiA8IUVO VElUWSBleGVjdXRlICAgICAgICAgICAgU1lTVEVNICJleGVjdXRlLnNnbWwiPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjVlZDc0YzVjMTczCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDEzMiBAQAorPCEtLQorZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4K KworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0i c3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyAgPHByaW1hcnk+Q1JFQVRFIFZBUklBQkxFPC9wcmltYXJ5 PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJp YWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5kZWZpbmluZzwvc2Vjb25kYXJ5PgorIDwvaW5k ZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFURSBWQVJJQUJMRTwv cmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5m bz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisK KyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIFZBUklBQkxFPC9yZWZuYW1lPgorICA8 cmVmcHVycG9zZT5kZWZpbmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVm bmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0NSRUFURSB7IFRFTVAg fCBURU1QT1JBTCB9IFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRh X3R5cGU8L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRo ZSA8Y29tbWFuZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgY3JlYXRlcyBhIHRl bXBvcmFsIHNlc3Npb24KKyAgIHZhcmlhYmxlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBU aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNl c3Npb24uICBSZXRyaWV2aW5nCisgICBhIHNlc3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5z IE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMgc2V0IHRvCisgICBzb21ldGhpbmcgZWxzZSBpbiB0 aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQu CisgICBUaGUgY29udGVudCBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9u YWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKKyAgIHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVy YWwgbGFuZ3VhZ2VzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxl cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CisgICBjb21t YW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdpdGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g Y29tbWFuZC4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2Fu bm90IGJlIHVzZWQgaW4gdmlld3Mgb3IgaW4gU1FMIGZ1bmN0aW9ucyB1c2luZworICAgU1FMLWNv bmZvcm1pbmcgc3R5bGUgc3ludGF4LgorICA8L3BhcmE+CisKKyAgPG5vdGU+CisgICA8cGFyYT4K KyAgICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgPHF1b3RlPnNoYWRvd2VkPC9xdW90ZT4gYnkg b3RoZXIgaWRlbnRpZmllcnMuCisgICAgRm9yIGRldGFpbHMsIHNlZSA8eHJlZiBsaW5rZW5kPSJk ZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4uCisgICA8L3BhcmE+CisgIDwvbm90ZT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZh cmlhYmxlbGlzdD4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW5h bWUiPgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBu YW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRl dmFyaWFibGUtZGF0YV90eXBlIj4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9m IHRoZSBkYXRhIHR5cGUgb2YgdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlLiBPbmx5IGJ1aWxk aW4gc2NhbGFyIGRhdGEgdHlwZXMgYXJlIGFsbG93ZWQuIEFycmF5cyBvciBjb21wb3NpdGUKKyAg ICAgIHR5cGVzIGFyZSBub3QgYWxsb3dlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVXNl IHRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIHRvIHJlbW92ZSBh IHNlc3Npb24KKyAgIHZhcmlhYmxlLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIENyZWF0ZSBh biBkYXRlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46Cis8cHJvZ3Jh bWxpc3Rpbmc+CitDUkVBVEUgVEVNUE9SQVJZIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFu ZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHByb2R1Y3RuYW1l PlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1w bGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9w dmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwv cmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lODUxN2E3ODIwMAotLS0gL2Rldi9udWxsCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsODQgQEAKKzwhLS0K K2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50 YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9wdmFyaWFibGUiPgorIDxpbmRleHRl cm0gem9uZT0ic3FsLWRyb3B2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkRST1AgVkFSSUFCTEU8L3By aW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9u IHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PnJlbW92aW5nPC9zZWNvbmRhcnk+Cisg PC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBWQVJJQUJM RTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNj aW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+ CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBWQVJJQUJMRTwvcmVmbmFtZT4KKyAg PHJlZnB1cnBvc2U+cmVtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8L3Jl Zm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFZBUklBQkxF IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KKzwvc3lu b3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2Ny aXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2Nv bW1hbmQ+IHJlbW92ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgQSBzZXNzaW9uIHZhcmlhYmxl IGNhbiBvbmx5IGJlIHJlbW92ZWQgYnkgaXRzIG93bmVyIG9yIGEgc3VwZXJ1c2VyLgorICA8L3Bh cmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3Rp dGxlPgorICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAg IDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiBhIHNlc3Npb24gdmFy aWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW1vdmUgdGhlIHNlc3Npb24g dmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46CisKKzxwcm9ncmFtbGlzdGluZz4KK0RS T1AgVkFSSUFCTEUgdmFyMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFy YT4KKyAgIFRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEK KyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8 L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90 aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBs aW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0Pgor IDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggMmNmMDJjMzdi MTcuLmMwM2U3NjkyYzdhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC0xMjcsNiArMTI3LDcgQEAKICAg ICZjcmVhdGVUeXBlOwogICAgJmNyZWF0ZVVzZXI7CiAgICAmY3JlYXRlVXNlck1hcHBpbmc7Cisg ICAmY3JlYXRlVmFyaWFibGU7CiAgICAmY3JlYXRlVmlldzsKICAgICZkZWFsbG9jYXRlOwogICAg JmRlY2xhcmU7CkBAIC0xNzUsNiArMTc2LDcgQEAKICAgICZkcm9wVHlwZTsKICAgICZkcm9wVXNl cjsKICAgICZkcm9wVXNlck1hcHBpbmc7CisgICAmZHJvcFZhcmlhYmxlOwogICAgJmRyb3BWaWV3 OwogICAgJmVuZDsKICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCBmOTlhY2Zk MmI0Yi4uMjlmZTg3MmRjMTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2Vm aWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC01Myw2ICs1Myw3IEBA IE9CSlMgPSBcCiAJc2NoZW1hY21kcy5vIFwKIAlzZWNsYWJlbC5vIFwKIAlzZXF1ZW5jZS5vIFwK KwlzZXNzaW9uX3ZhcmlhYmxlLm8gXAogCXN0YXRzY21kcy5vIFwKIAlzdWJzY3JpcHRpb25jbWRz Lm8gXAogCXRhYmxlY21kcy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ry b3BjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IGNlYjlhMjI5 YjYzLi45NTI0Zjg2Nzg1NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNt ZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC0yMiw2ICsyMiw3 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3Byb2MuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKKyNpbmNsdWRlICJjb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvbWVzb24uYnVpbGQKaW5kZXggOWY2NDBhZDQ4MTAuLmJlZWNmM2M4YWRmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9tZXNvbi5idWlsZApAQCAtNDEsNiArNDEsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmls ZXMoCiAgICdzY2hlbWFjbWRzLmMnLAogICAnc2VjbGFiZWwuYycsCiAgICdzZXF1ZW5jZS5jJywK KyAgJ3Nlc3Npb25fdmFyaWFibGUuYycsCiAgICdzdGF0c2NtZHMuYycsCiAgICdzdWJzY3JpcHRp b25jbWRzLmMnLAogICAndGFibGVjbWRzLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNzhlODJi ODdjMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtMCwwICsxLDIxOCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vz c2lvbl92YXJpYWJsZS5jCisgKgkgIHNlc3Npb24gdmFyaWFibGUgY3JlYXRpb24vbWFuaXB1bGF0 aW9uIGNvbW1hbmRzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAq CisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVz LmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19sYW5ndWFnZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu aCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5o IgorI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgorI2lu Y2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKKyNpbmNs dWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgorI2lu Y2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGUgc2Vzc2lvbiB2YXJpYWJsZXMg YXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5IChkYXRhLAorICogbWV0 YWRhdGEpIGluIHRoZSBkZWRpY2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dCBpbiBiaW5hcnkKKyAqIGZvcm1hdC4gVGhleSBhcmUgc3RvcmVkIGluIHRoZSAic2Vzc2lv bnZhcnMiIGhhc2ggdGFibGUsIHdob3NlIGtleSBpcyB0aGUKKyAqIG5hbWUgb2YgdGhlIHZhcmlh YmxlLgorICoKKyAqIE9ubHkgb3duZXIgKGNyZWF0b3IpIGNhbiBhY2Nlc3MgdGhlIHNlc3Npb24g dmFyaWFibGVzLiBCZWNhdXNlIHRoZXJlIGlzCisgKiBub3QgY2F0YWxvZyBzdXBwb3J0LCB0aGVy ZSBpcyBub3QgcG9zc2liaWxpdHkgdG8gdHJhY2sgZGVwZW5kZWNpZXMsIGFuZAorICogdGhlbiBv bmx5IGJ1aWxkaW4gdHlwZXMuCisgKi8KK3R5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKK3sK KwlOYW1lRGF0YQl2YXJuYW1lOworCisJT2lkCQkJdmFyb3duZXI7CisJT2lkCQkJdmFydHlwZTsK KwlpbnQzMgkJdmFydHlwbW9kOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKworCWJvb2wJCWlzbnVs bDsKKwlEYXR1bQkJdmFsdWU7CisKKwlpbnQxNgkJdHlwbGVuOworCWJvb2wJCXR5cGJ5dmFsOwor fSBTVmFyaWFibGVEYXRhOworCit0eXBlZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKKwor c3RhdGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lv biB2YXJpYWJsZXMgKi8KKworc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dCA9IE5VTEw7CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFibGUgZm9yIHN0b3Jpbmcg c2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVfc2Vzc2lvbnZhcnNf aGFzaHRhYmxlcyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOworCisJQXNzZXJ0KCFzZXNz aW9udmFycyk7CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQpCisJeworCQkvKiB3ZSBu ZWVkIG91ciBvd24gbG9uZy1saXZlZCBtZW1vcnkgY29udGV4dCAqLworCQlTVmFyaWFibGVNZW1v cnlDb250ZXh0ID0KKwkJCUFsbG9jU2V0Q29udGV4dENyZWF0ZShUb3BNZW1vcnlDb250ZXh0LAor CQkJCQkJCQkgICJzZXNzaW9uIHZhcmlhYmxlcyIsCisJCQkJCQkJCSAgQUxMT0NTRVRfU1RBUlRf U01BTExfU0laRVMpOworCX0KKworCXZhcnNfY3RsLmtleXNpemUgPSBOQU1FREFUQUxFTjsKKwl2 YXJzX2N0bC5lbnRyeXNpemUgPSBzaXplb2YoU1ZhcmlhYmxlRGF0YSk7CisJdmFyc19jdGwuaGN4 dCA9IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQ7CisKKwlzZXNzaW9udmFycyA9IGhhc2hfY3JlYXRl KCJTZXNzaW9uIHZhcmlhYmxlcyIsIDY0LCAmdmFyc19jdGwsCisJCQkJCQkJICBIQVNIX0VMRU0g fCBIQVNIX1NUUklOR1MgfCBIQVNIX0NPTlRFWFQpOworfQorCisvKgorICogUmV0dXJucyBlbnRy eSBvZiBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBuYW1lCisgKi8KK3N0YXRpYyBTVmFy aWFibGUKK3NlYXJjaF92YXJpYWJsZShjaGFyICp2YXJuYW1lKQoreworCVNWYXJpYWJsZQlzdmFy OworCisJaWYgKCFzZXNzaW9udmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMo KTsKKworCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgdmFybmFt ZSwKKwkJCQkJCQkJICAgSEFTSF9GSU5ELCBOVUxMKTsKKworCWlmICghc3ZhcikKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBl cnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJdmFy bmFtZSkpKTsKKworCXJldHVybiBzdmFyOworfQorCisvKgorICogQ3JlYXRlcyBhIG5ldyB2YXJp YWJsZSAtIGRvZXMgbmV3IGVudHJ5IGluIHNlc3Npb252YXJzCisgKgorICogVXNlZCBieSBDUkVB VEUgVkFSSUFCTEUgY29tbWFuZAorICovCit2b2lkCitDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRl ICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQoreworCU9pZAkJCXR5cGVpZDsK KwlpbnQzMgkJdHlwbW9kOworCU9pZAkJCXR5cGNvbGxhdGlvbjsKKwlPaWQJCQl2YXJvd25lciA9 IEdldFVzZXJJZCgpOworCVNWYXJpYWJsZQlzdmFyOworCWJvb2wJCWZvdW5kOworCUhlYXBUdXBs ZQlwcm9jdHVwOworCUZvcm1fcGdfcHJvYyBwcm9jOworCWludDE2CQl0eXBsZW47CisJYm9vbAkJ dHlwYnl2YWw7CisJT2lkCQkJdHlwaW5wdXQ7CisJT2lkCQkJdHlwaW9wYXJhbTsKKwlBY2xSZXN1 bHQJYWNscmVzdWx0OworCisJdHlwZW5hbWVUeXBlSWRBbmRNb2QocHN0YXRlLCBzdG10LT50eXBl TmFtZSwgJnR5cGVpZCwgJnR5cG1vZCk7CisKKwlpZiAoZ2V0X3R5cHR5cGUodHlwZWlkKSAhPSBU WVBUWVBFX0JBU0UpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9O R19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiJXMgaXMgbm90IGEgYmFzZSB0eXBlIiwKKwkJ CQkJCWZvcm1hdF90eXBlX2JlKHR5cGVpZCkpKSk7CisKKwlpZiAoT2lkSXNWYWxpZChnZXRfZWxl bWVudF90eXBlKHR5cGVpZCkpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coIiVzIHR5cGUgaXMgYW4gYXJyYXki LAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwZWlkKSkpKTsKKworCWFjbHJlc3VsdCA9IG9iamVj dF9hY2xjaGVjayhUeXBlUmVsYXRpb25JZCwgdHlwZWlkLCBHZXRVc2VySWQoKSwgQUNMX1VTQUdF KTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcl90eXBl KGFjbHJlc3VsdCwgdHlwZWlkKTsKKworCS8qIGFsbG93IG9ubHkgYnVpbGRpbiB0eXBlcyAqLwor CWdldFR5cGVJbnB1dEluZm8odHlwZWlkLCAmdHlwaW5wdXQsICZ0eXBpb3BhcmFtKTsKKworCXBy b2N0dXAgPSBTZWFyY2hTeXNDYWNoZTEoUFJPQ09JRCwgT2JqZWN0SWRHZXREYXR1bSh0eXBpbnB1 dCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZChwcm9jdHVwKSkKKwkJZWxvZyhFUlJPUiwgImNh bm5vdCB0byBmaW5kIGZ1bmN0aW9uIG9pZCAlZCIsIHR5cGlucHV0KTsKKworCXByb2MgPSAoRm9y bV9wZ19wcm9jKSBHRVRTVFJVQ1QocHJvY3R1cCk7CisJaWYgKHByb2MtPnByb2xhbmcgIT0gSU5U RVJOQUxsYW5ndWFnZUlkKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVf V1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coIiVzIGlzIG5vdCBhIGludGVybmFsIHR5 cGUiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwZWlkKSkpKTsKKworCVJlbGVhc2VTeXNDYWNo ZShwcm9jdHVwKTsKKworCWdldF90eXBsZW5ieXZhbCh0eXBlaWQsICZ0eXBsZW4sICZ0eXBieXZh bCk7CisJdHlwY29sbGF0aW9uID0gZ2V0X3R5cGNvbGxhdGlvbih0eXBlaWQpOworCisJaWYgKCFz ZXNzaW9udmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIg PSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgc3RtdC0+bmFtZSwKKwkJCQkJICAgSEFTSF9FTlRF UiwgJmZvdW5kKTsKKworCWlmIChmb3VuZCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFi bGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCXN0bXQtPm5hbWUpKSk7CisKKwluYW1l c3RyY3B5KCZzdmFyLT52YXJuYW1lLCBzdG10LT5uYW1lKTsKKwlzdmFyLT52YXJ0eXBlID0gdHlw ZWlkOworCXN2YXItPnZhcnR5cG1vZCA9IHR5cG1vZDsKKwlzdmFyLT52YXJjb2xsYXRpb24gPSB0 eXBjb2xsYXRpb247CisJc3Zhci0+dmFyb3duZXIgPSB2YXJvd25lcjsKKwlzdmFyLT50eXBsZW4g PSB0eXBsZW47CisJc3Zhci0+dHlwYnl2YWwgPSB0eXBieXZhbDsKKworCXN2YXItPnZhbHVlID0g KERhdHVtKSAwOworCXN2YXItPmlzbnVsbCA9IHRydWU7Cit9CisKKy8qCisgKiBEcm9wIHZhcmlh YmxlIGJ5IG5hbWUKKyAqLwordm9pZAorRHJvcFZhcmlhYmxlQnlOYW1lKGNoYXIgKnZhcm5hbWUp Cit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gc2VhcmNoX3ZhcmlhYmxlKHZhcm5hbWUp OworCisJLyogb25seSBvd25lciBjYW4gZ2V0IGNvbnRlbnQgb2YgdmFyaWFibGUgKi8KKwlpZiAo c3Zhci0+dmFyb3duZXIgIT0gR2V0VXNlcklkKCkgJiYgIXN1cGVydXNlcigpKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJ CQkJIGVycm1zZygibXVzdCBiZSBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxlICVzIiwKKwkJCQkJ CXZhcm5hbWUpKSk7CisKKwkodm9pZCkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsCisJCQkJCSAg IHZhcm5hbWUsCisJCQkJCSAgIEhBU0hfUkVNT1ZFLAorCQkJCQkgICBOVUxMKTsKK30KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CmluZGV4IGMzYTBhMzU0YTljLi4wYTVlZmQ3MzNkYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yOTAs MTMgKzI5MCwxMyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAq cmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlDb25zdHJhaW50c1NldFN0 bXQgQ29weVN0bXQgQ3JlYXRlQXNTdG10IENyZWF0ZUNhc3RTdG10CiAJCUNyZWF0ZURvbWFpblN0 bXQgQ3JlYXRlRXh0ZW5zaW9uU3RtdCBDcmVhdGVHcm91cFN0bXQgQ3JlYXRlT3BDbGFzc1N0bXQK IAkJQ3JlYXRlT3BGYW1pbHlTdG10IEFsdGVyT3BGYW1pbHlTdG10IENyZWF0ZVBMYW5nU3RtdAot CQlDcmVhdGVTY2hlbWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU3RtdCBDcmVhdGVTdGF0c1N0 bXQgQ3JlYXRlVGFibGVTcGFjZVN0bXQKLQkJQ3JlYXRlRmR3U3RtdCBDcmVhdGVGb3JlaWduU2Vy dmVyU3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CisJCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRl U2VxU3RtdCBDcmVhdGVTZXNzaW9uVmFyU3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0YXRzU3RtdAor CQlDcmVhdGVUYWJsZVNwYWNlU3RtdCBDcmVhdGVGZHdTdG10IENyZWF0ZUZvcmVpZ25TZXJ2ZXJT dG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKIAkJQ3JlYXRlQXNzZXJ0aW9uU3RtdCBDcmVhdGVU cmFuc2Zvcm1TdG10IENyZWF0ZVRyaWdTdG10IENyZWF0ZUV2ZW50VHJpZ1N0bXQKIAkJQ3JlYXRl VXNlclN0bXQgQ3JlYXRlVXNlck1hcHBpbmdTdG10IENyZWF0ZVJvbGVTdG10IENyZWF0ZVBvbGlj eVN0bXQKIAkJQ3JlYXRlZGJTdG10IERlY2xhcmVDdXJzb3JTdG10IERlZmluZVN0bXQgRGVsZXRl U3RtdCBEaXNjYXJkU3RtdCBEb1N0bXQKIAkJRHJvcE9wQ2xhc3NTdG10IERyb3BPcEZhbWlseVN0 bXQgRHJvcFN0bXQKLQkJRHJvcENhc3RTdG10IERyb3BSb2xlU3RtdAorCQlEcm9wQ2FzdFN0bXQg RHJvcFJvbGVTdG10IERyb3BTZXNzaW9uVmFyU3RtdAogCQlEcm9wZGJTdG10IERyb3BUYWJsZVNw YWNlU3RtdAogCQlEcm9wVHJhbnNmb3JtU3RtdAogCQlEcm9wVXNlck1hcHBpbmdTdG10IEV4cGxh aW5TdG10IEZldGNoU3RtdApAQCAtNzg5LDggKzc4OSw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVj dXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVy eSk7CiAJVUVTQ0FQRSBVTkJPVU5ERUQgVU5DT05ESVRJT05BTCBVTkNPTU1JVFRFRCBVTkVOQ1JZ UFRFRCBVTklPTiBVTklRVUUgVU5LTk9XTgogCVVOTElTVEVOIFVOTE9HR0VEIFVOVElMIFVQREFU RSBVU0VSIFVTSU5HCiAKLQlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURBVE9SIFZBTFVFX1Ag VkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlORwotCVZFUkJPU0UgVkVSU0lPTl9QIFZJRVcg VklFV1MgVklSVFVBTCBWT0xBVElMRQorCVZBQ1VVTSBWQUxJRCBWQUxJREFURSBWQUxJREFUT1Ig VkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJJQUJMRQorCVZBUllJTkcgVkVSQk9T RSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWSVJUVUFMIFZPTEFUSUxFCiAKIAlXQUlUIFdIRU4gV0hF UkUgV0hJVEVTUEFDRV9QIFdJTkRPVyBXSVRIIFdJVEhJTiBXSVRIT1VUIFdPUksgV1JBUFBFUiBX UklURQogCkBAIC0xMDU2LDYgKzEwNTYsNyBAQCBzdG10OgogCQkJfCBDcmVhdGVQb2xpY3lTdG10 CiAJCQl8IENyZWF0ZVBMYW5nU3RtdAogCQkJfCBDcmVhdGVTY2hlbWFTdG10CisJCQl8IENyZWF0 ZVNlc3Npb25WYXJTdG10CiAJCQl8IENyZWF0ZVNlcVN0bXQKIAkJCXwgQ3JlYXRlU3RtdAogCQkJ fCBDcmVhdGVTdWJzY3JpcHRpb25TdG10CkBAIC0xMDgzLDYgKzEwODQsNyBAQCBzdG10OgogCQkJ fCBEcm9wVGFibGVTcGFjZVN0bXQKIAkJCXwgRHJvcFRyYW5zZm9ybVN0bXQKIAkJCXwgRHJvcFJv bGVTdG10CisJCQl8IERyb3BTZXNzaW9uVmFyU3RtdAogCQkJfCBEcm9wVXNlck1hcHBpbmdTdG10 CiAJCQl8IERyb3BkYlN0bXQKIAkJCXwgRXhlY3V0ZVN0bXQKQEAgLTUzMzYsNiArNTMzOCw0NyBA QCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogCQkJCX0KIAkJOwogCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKyAqCisgKgkJUVVFUlkgOgorICoJCQkJQ1JFQVRFIHsgVEVNUCB8IFRFTVBPUkFS WSB9IFZBUklBQkxFIHZhcm5hbWUgW0FTXSB0eXBlCisgKgorICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LworCitDcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCUNSRUFURSBPcHRUZW1wIFZBUklBQkxFIENv bElkIG9wdF9hcyBUeXBlbmFtZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4g PSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CisKKwkJCQkJaWYgKCQyICE9IFJFTFBF UlNJU1RFTkNFX1RFTVApCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkgZXJybXNnKCJvbmx5IHRlbXBv cmFsIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdXBwb3J0ZWQiKSwKKwkJCQkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKEAyKSkpOworCisJCQkJCW4tPm5hbWUgPSAkNDsKKwkJCQkJbi0+dHlwZU5hbWUg PSAkNjsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKyAqCisgKgkJUVVFUlkgOgorICoJCQkJRFJPUCBWQVJJQUJMRSB2YXJuYW1lCisg KgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLworCitEcm9wU2Vzc2lvblZhclN0bXQ6CisJCQlEUk9Q IFZBUklBQkxFIENvbElkCisJCQkJeworCQkJCQlEcm9wU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtl Tm9kZShEcm9wU2Vzc2lvblZhclN0bXQpOworCisJCQkJCW4tPm5hbWUgPSAkMzsKKwkJCQkJJCQg PSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAg KiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0KQEAgLTE4MTU0LDYg KzE4MTk3LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBWQUxJREFURQogCQkJfCBWQUxJ REFUT1IKIAkJCXwgVkFMVUVfUAorCQkJfCBWQVJJQUJMRQogCQkJfCBWQVJZSU5HCiAJCQl8IFZF UlNJT05fUAogCQkJfCBWSUVXCkBAIC0xODgxMiw2ICsxODg1Niw3IEBAIGJhcmVfbGFiZWxfa2V5 d29yZDoKIAkJCXwgVkFMVUVfUAogCQkJfCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgorCQkJfCBWQVJJ QUJMRQogCQkJfCBWQVJJQURJQwogCQkJfCBWRVJCT1NFCiAJCQl8IFZFUlNJT05fUApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxp dHkuYwppbmRleCBkMThhM2E2MGE0Ni4uN2RjOWMwYTZjODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00 OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKKyNp bmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAgLTE4Myw2ICsxODQsNyBAQCBDbGFzc2lm eVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9DcmVh dGVSYW5nZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVSb2xlU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNj aGVtYVN0bXQ6CisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKIAkJY2FzZSBUX0NyZWF0 ZVNlcVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdGF0c1N0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdG10 OgpAQCAtMjAxLDYgKzIwMyw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRPbmx5KE5v ZGUgKnBhcnNldHJlZSkKIAkJY2FzZSBUX0Ryb3BUYWJsZVNwYWNlU3RtdDoKIAkJY2FzZSBUX0Ry b3BVc2VyTWFwcGluZ1N0bXQ6CiAJCWNhc2UgVF9Ecm9wZGJTdG10OgorCQljYXNlIFRfRHJvcFNl c3Npb25WYXJTdG10OgogCQljYXNlIFRfR3JhbnRSb2xlU3RtdDoKIAkJY2FzZSBUX0dyYW50U3Rt dDoKIAkJY2FzZSBUX0ltcG9ydEZvcmVpZ25TY2hlbWFTdG10OgpAQCAtMTA2Myw2ICsxMDY2LDE1 IEBAIHN0YW5kYXJkX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwKIAkJCX0KIAkJ CWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCUNyZWF0ZVZhcmlh YmxlKHBzdGF0ZSwgKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIHBhcnNldHJlZSk7CisJCQlicmVh azsKKworCQljYXNlIFRfRHJvcFNlc3Npb25WYXJTdG10OgorCQkJLyogTm8gZXZlbnQgdHJpZ2dl cnMgZm9yIGNhdGFsb2cgbGVzcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQkJRHJvcFZhcmlhYmxl QnlOYW1lKCgoRHJvcFNlc3Npb25WYXJTdG10ICopIHBhcnNldHJlZSktPm5hbWUpOworCQkJYnJl YWs7CisKIAkJZGVmYXVsdDoKIAkJCS8qIEFsbCBvdGhlciBzdGF0ZW1lbnQgdHlwZXMgaGF2ZSBl dmVudCB0cmlnZ2VyIHN1cHBvcnQgKi8KIAkJCVByb2Nlc3NVdGlsaXR5U2xvdyhwc3RhdGUsIHBz dG10LCBxdWVyeVN0cmluZywKQEAgLTEzODgsNiArMTQwMCw3IEBAIFByb2Nlc3NVdGlsaXR5U2xv dyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJfQogCQkJCWJyZWFrOwogCisKIAkJCQkvKgogCQkJ CSAqICoqKioqKioqKioqKiogb2JqZWN0IGNyZWF0aW9uIC8gZGVzdHJ1Y3Rpb24gKioqKioqKioq KioqKioKIAkJCQkgKi8KQEAgLTMyMzUsNiArMzI0OCwxNCBAQCBDcmVhdGVDb21tYW5kVGFnKE5v ZGUgKnBhcnNldHJlZSkKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVTZXNzaW9u VmFyU3RtdDoKKwkJCXRhZyA9IENNRFRBR19DUkVBVEVfVkFSSUFCTEU7CisJCQlicmVhazsKKwor CQljYXNlIFRfRHJvcFNlc3Npb25WYXJTdG10OgorCQkJdGFnID0gQ01EVEFHX0RST1BfVkFSSUFC TEU7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhXQVJOSU5HLCAidW5yZWNvZ25p emVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKHBhcnNldHJlZSkpOwpAQCAt Mzc3Myw2ICszNzk0LDExIEBAIEdldENvbW1hbmRMb2dMZXZlbChOb2RlICpwYXJzZXRyZWUpCiAJ CQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCWNhc2Ug VF9Ecm9wU2Vzc2lvblZhclN0bXQ6CisJCQlsZXYgPSBMT0dTVE1UX0RETDsKKwkJCWJyZWFrOwor CiAJCWRlZmF1bHQ6CiAJCQllbG9nKFdBUk5JTkcsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAl ZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcocGFyc2V0cmVlKSk7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMK aW5kZXggMjBkN2E2NWM2MTQuLmQyNTdiNGZjMzdhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBA IC0xMzYzLDYgKzEzNjMsNyBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRl cl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAuLi4gKi8KIAl7IlVT RVIiLCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlcywgTlVMTCwgTlVMTCwgS2V5d29yZHNfZm9yX3Vz ZXJfdGhpbmd9LAogCXsiVVNFUiBNQVBQSU5HIEZPUiIsIE5VTEwsIE5VTEwsIE5VTEx9LAorCXsi VkFSSUFCTEUiLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBUSElOR19OT19BTFRFUn0sCiAJeyJW SUVXIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzfSwKIAl7TlVMTH0JCQkJ CQkvKiBlbmQgb2YgbGlzdCAqLwogfTsKQEAgLTM3MjMsNyArMzcyNCw3IEBAIG1hdGNoX3ByZXZp b3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxvd2Vk IGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0 ZSAiQ1JFQVRFIFRFTVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMg Ki8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikpCi0J CUNPTVBMRVRFX1dJVEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVf V0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVkFSSUFCTEUiLCAiVklFVyIpOwogCS8qIENvbXBs ZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGggVEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlm IChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRB QkxFIiwgIlNFUVVFTkNFIik7CkBAIC00MDc2LDYgKzQwNzcsMTMgQEAgbWF0Y2hfcHJldmlvdXNf d29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQlDT01QTEVURV9XSVRIKCIsIiwgIikiKTsKIAl9CiAK Ky8qIENSRUFURSBWQVJJQUJMRSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJURU1Q fFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiQVMi KTsKKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCisJ CS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyB0eXBlcyAqLworCQlD T01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMpOwor CiAvKiBDUkVBVEUgVklFVyAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28g dXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFsgT1IgUkVQTEFDRSBdIFZJ RVcgPG5hbWU+IHdpdGggQVMgb3IgV0lUSCAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVB VEUiLCAiVklFVyIsIE1hdGNoQW55KSB8fApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZWQ0MGQ4N2Ez OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuaApAQCAtMCwwICsxLDI1IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzZXNzaW9u dmFyaWFibGUuaAorICoJICBwcm90b3R5cGVzIGZvciBzZXNzaW9udmFyaWFibGUuYy4KKyAqCisg KgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2Vu dHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisK KyNpZm5kZWYgU0VTU0lPTlZBUklBQkxFX0gKKyNkZWZpbmUgU0VTU0lPTlZBUklBQkxFX0gKKwor I2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJz ZV9ub2RlLmgiCisjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgorCitleHRlcm4gdm9pZCBD cmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpz dG10KTsKK2V4dGVybiB2b2lkIERyb3BWYXJpYWJsZUJ5TmFtZShjaGFyICp2YXJuYW1lKTsKKwor I2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggZDE0Mjk0YTRlY2UuLjU2N2U1OTcwZTUw IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zNTU1LDYgKzM1NTUsMjkgQEAgdHlwZWRlZiBz dHJ1Y3QgQWx0ZXJTdGF0c1N0bXQKIAlib29sCQltaXNzaW5nX29rOwkJLyogc2tpcCBlcnJvciBp ZiBzdGF0aXN0aWNzIG9iamVjdCBpcyBtaXNzaW5nICovCiB9IEFsdGVyU3RhdHNTdG10OwogCisK Ky8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlDcmVhdGUgVmFyaWFibGUgU3RhdGVtZW50 CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IENyZWF0ZVNl c3Npb25WYXJTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwljaGFyCSAgICpuYW1lOwkJLyogdGhl IHZhcmlhYmxlIHRvIGNyZWF0ZSAqLworCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhlIHR5 cGUgb2YgdmFyaWFibGUgKi8KK30gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CisKKy8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCQlEUk9QIFZhcmlhYmxlIFN0YXRlbWVudAorICogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBEcm9wU2Vzc2lvblZhclN0bXQKK3sK KwlOb2RlVGFnCQl0eXBlOworCWNoYXIJICAgKm5hbWU7Cit9IERyb3BTZXNzaW9uVmFyU3RtdDsK KworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJQ3JlYXRlIEZ1bmN0aW9uIFN0YXRl bWVudAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IDVkNGZl MjdlZjk2Li44YjFmMmJkM2I2OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtNDg5LDYgKzQ4OSw3IEBA IFBHX0tFWVdPUkQoInZhbGlkYXRvciIsIFZBTElEQVRPUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFsdWUiLCBWQUxVRV9QLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1ZXMiLCBWQUxVRVMsIENPTF9OQU1FX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJjaGFyIiwgVkFSQ0hBUiwgQ09MX05B TUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInZhcmlhYmxlIiwgVkFSSUFCTEUs IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcmlhZGljIiwg VkFSSUFESUMsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJ5 aW5nIiwgVkFSWUlORywgVU5SRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQo InZlcmJvc2UiLCBWRVJCT1NFLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90 Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBjNDYwNmQ2NTA0My4uN2U1OWQwYTUyNzUgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oCkBAIC0xMjMsNiArMTIzLDcgQEAgUEdfQ01EVEFHKENNRFRBR19DUkVBVEVf VFJBTlNGT1JNLCAiQ1JFQVRFIFRSQU5TRk9STSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfQ1JFQVRFX1RSSUdHRVIsICJDUkVBVEUgVFJJR0dFUiIsIHRydWUsIGZhbHNl LCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RZUEUsICJDUkVBVEUgVFlQRSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1VTRVJfTUFQUElORywg IkNSRUFURSBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01E VEFHX0NSRUFURV9WQVJJQUJMRSwgIkNSRUFURSBWQVJJQUJMRSIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZJRVcsICJDUkVBVEUgVklFVyIsIHRydWUsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExPQ0FURSwgIkRFQUxMT0NBVEUiLCBm YWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ERUFMTE9DQVRFX0FMTCwgIkRF QUxMT0NBVEUgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTE3NSw2ICsxNzYsNyBAQCBQ R19DTURUQUcoQ01EVEFHX0RST1BfVFJBTlNGT1JNLCAiRFJPUCBUUkFOU0ZPUk0iLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJJR0dFUiwgIkRST1AgVFJJR0dF UiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UWVBFLCAiRFJP UCBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1VTRVJf TUFQUElORywgIkRST1AgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01E VEFHKENNRFRBR19EUk9QX1ZBUklBQkxFLCAiRFJPUCBWQVJJQUJMRSIsIHRydWUsIGZhbHNlLCBm YWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9WSUVXLCAiRFJPUCBWSUVXIiwgdHJ1ZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWEVDVVRFLCAiRVhFQ1VURSIsIGZhbHNlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYUExBSU4sICJFWFBMQUlOIiwgZmFsc2Us IGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vz c2lvbl92YXJpYWJsZXNfZGRsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXNfZGRsLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uY2M2ZjU5ZThiZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQKQEAgLTAsMCArMSw0MyBAQAorU0VUIGxvZ19z dGF0ZW1lbnQgVE8gZGRsOworLS0gc2hvdWxkIHRvIGZhaWwKK0NSRUFURSBWQVJJQUJMRSB4IEFT IGludDsKK0VSUk9SOiAgb25seSB0ZW1wb3JhbCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3VwcG9y dGVkCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBURU1QT1JBUlkgVkFSSUFCTEUgeCBBUyBpbnQ7 CistLSBzaG91bGQgdG8gZmFpbAorQ1JFQVRFIFRFTVBPUkFSWSBWQVJJQUJMRSB4IEFTIGludDsK K0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAieCIgYWxyZWFkeSBleGlzdHMKKy0tIHNob3VsZCB0 byBmYWlsCitEUk9QIFZBUklBQkxFIHk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInkiIGRv ZXNuJ3QgZXhpc3QKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSB4OworQ1JFQVRFIFRZ UEUgdGVzdF90eXBlIEFTICh4IGludCwgeSBpbnQpOworLS0gc2hvdWxkIHRvIGZhaWwKK0NSRUFU RSBWQVJJQUJMRSB4IEFTIHRlc3RfdHlwZTsKK0VSUk9SOiAgb25seSB0ZW1wb3JhbCBzZXNzaW9u IHZhcmlhYmxlcyBhcmUgc3VwcG9ydGVkCitEUk9QIFRZUEUgdGVzdF90eXBlOworLS0gc2hvdWxk IHRvIGZhaWwKK0NSRUFURSBWQVJJQUJMRSB4IEFTIGludFtdOworRVJST1I6ICBvbmx5IHRlbXBv cmFsIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdXBwb3J0ZWQKK0NSRUFURSBET01BSU4gdGVzdF9k b21haW4gQVMgaW50OworLS0gc2hvdWxkIHRvIGZhaWwKK0NSRUFURSBWQVJJQUJMRSB4IEFTIHRl c3RfZG9tYWluOworRVJST1I6ICBvbmx5IHRlbXBvcmFsIHNlc3Npb24gdmFyaWFibGVzIGFyZSBz dXBwb3J0ZWQKK0RST1AgRE9NQUlOIHRlc3RfZG9tYWluOworQ1JFQVRFIFJPTEUgcmVncmVzc19z ZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMTsKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfc2Vzc2lv bl92YXJpYWJsZV90ZXN0X3JvbGVfMDI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Nlc3Npb25fdmFy aWFibGVfdGVzdF9yb2xlXzAxOworQ1JFQVRFIFRFTVAgVkFSSUFCTEUgeCBBUyBpbnQ7CitTRVQg Uk9MRSBUTyBkZWZhdWx0OworU0VUIFJPTEUgVE8gcmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rl c3Rfcm9sZV8wMjsKKy0tIHNob3VsZCB0byBmYWlsCitEUk9QIFZBUklBQkxFIHg7CitFUlJPUjog IG11c3QgYmUgb3duZXIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSB4CitTRVQgUk9MRSBUTyBkZWZhdWx0 OworU0VUIFJPTEUgVE8gcmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMTsKKy0t IHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSB4OworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RS T1AgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVzdF9yb2xlXzAxOworRFJPUCBST0xF IHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0X3JvbGVfMDI7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxl bF9zY2hlZHVsZQppbmRleCBmNTY0ODJmYjlmMS4uMzcxYzBhNmJkZDkgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZQpAQCAtMTE1LDcgKzExNSw3IEBAIHRlc3Q6IGpzb24ganNvbmIganNv bl9lbmNvZGluZyBqc29ucGF0aCBqc29ucGF0aF9lbmNvZGluZyBqc29uYl9qc29ucGF0aCBzcWxq c29uCiAjIE5COiB0ZW1wLnNxbCBkb2VzIHJlY29ubmVjdHMgd2hpY2ggdHJhbnNpZW50bHkgdXNl cyAyIGNvbm5lY3Rpb25zLAogIyBzbyBrZWVwIHRoaXMgcGFyYWxsZWwgZ3JvdXAgdG8gYXQgbW9z dCAxOSB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBj b3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBh bHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdl b2JqZWN0IHdpdGggeG1sCit0ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1w IGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJs ZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdp dGggeG1sIHNlc3Npb25fdmFyaWFibGVzX2RkbAogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBn cm91cCBvZiBwYXJhbGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzX2RkbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjkyZTk3ZWEyYWIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXNfZGRsLnNxbApAQCAtMCwwICsxLDU2IEBACitTRVQgbG9nX3N0YXRlbWVu dCBUTyBkZGw7CisKKy0tIHNob3VsZCB0byBmYWlsCitDUkVBVEUgVkFSSUFCTEUgeCBBUyBpbnQ7 CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFRFTVBPUkFSWSBWQVJJQUJMRSB4IEFTIGludDsK KworLS0gc2hvdWxkIHRvIGZhaWwKK0NSRUFURSBURU1QT1JBUlkgVkFSSUFCTEUgeCBBUyBpbnQ7 CisKKy0tIHNob3VsZCB0byBmYWlsCitEUk9QIFZBUklBQkxFIHk7CisKKy0tIHNob3VsZCBiZSBv aworRFJPUCBWQVJJQUJMRSB4OworCitDUkVBVEUgVFlQRSB0ZXN0X3R5cGUgQVMgKHggaW50LCB5 IGludCk7CisKKy0tIHNob3VsZCB0byBmYWlsCitDUkVBVEUgVkFSSUFCTEUgeCBBUyB0ZXN0X3R5 cGU7CisKK0RST1AgVFlQRSB0ZXN0X3R5cGU7CisKKy0tIHNob3VsZCB0byBmYWlsCitDUkVBVEUg VkFSSUFCTEUgeCBBUyBpbnRbXTsKKworQ1JFQVRFIERPTUFJTiB0ZXN0X2RvbWFpbiBBUyBpbnQ7 CisKKy0tIHNob3VsZCB0byBmYWlsCitDUkVBVEUgVkFSSUFCTEUgeCBBUyB0ZXN0X2RvbWFpbjsK KworRFJPUCBET01BSU4gdGVzdF9kb21haW47CisKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfc2Vzc2lv bl92YXJpYWJsZV90ZXN0X3JvbGVfMDE7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFy aWFibGVfdGVzdF9yb2xlXzAyOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Nlc3Npb25fdmFyaWFi bGVfdGVzdF9yb2xlXzAxOworCitDUkVBVEUgVEVNUCBWQVJJQUJMRSB4IEFTIGludDsKKworU0VU IFJPTEUgVE8gZGVmYXVsdDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90 ZXN0X3JvbGVfMDI7CisKKy0tIHNob3VsZCB0byBmYWlsCitEUk9QIFZBUklBQkxFIHg7CisKK1NF VCBST0xFIFRPIGRlZmF1bHQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVf dGVzdF9yb2xlXzAxOworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgeDsKKworU0VU IFJPTEUgVE8gREVGQVVMVDsKK0RST1AgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVz dF9yb2xlXzAxOworRFJPUCBST0xFIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0X3JvbGVf MDI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDU3YThmMDM2NmE1Li5jODA2Njg4ODky YiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTU2Miw2ICs1NjIsNyBAQCBDcmVhdGVS b2xlU3RtdAogQ3JlYXRlU2NoZW1hU3RtdAogQ3JlYXRlU2NoZW1hU3RtdENvbnRleHQKIENyZWF0 ZVNlcVN0bXQKK0NyZWF0ZVNlc3Npb25WYXJTdG10CiBDcmVhdGVTdGF0c1N0bXQKIENyZWF0ZVN0 bXQKIENyZWF0ZVN0bXRDb250ZXh0CkBAIC02NjQsNiArNjY1LDcgQEAgRHJvcEJlaGF2aW9yCiBE cm9wT3duZWRTdG10CiBEcm9wUmVwbGljYXRpb25TbG90Q21kCiBEcm9wUm9sZVN0bXQKK0Ryb3BT ZXNzaW9uVmFyU3RtdAogRHJvcFN0bXQKIERyb3BTdWJzY3JpcHRpb25TdG10CiBEcm9wVGFibGVT cGFjZVN0bXQKQEAgLTI2NjYsNiArMjY2OCw4IEBAIFNTTF9DVFgKIFNUQVJUVVBJTkZPCiBTVFJM RU4KIFNWCitTVmFyaWFibGVEYXRhCitTVmFyaWFibGUKIFNZTkNIUk9OSVpBVElPTl9CQVJSSUVS CiBTWVNURU1fSU5GTwogU2FtcGxlU2NhbgotLSAKMi41Mi4wCgo= --000000000000618d5806445c9db6--