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 1wVSvw-001yxa-2a for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Jun 2026 11:41:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wVSvv-00BzlY-15 for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Jun 2026 11:41:51 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVSvu-00BzlQ-2p for pgsql-hackers@lists.postgresql.org; Fri, 05 Jun 2026 11:41:51 +0000 Received: from mail-lj1-x231.google.com ([2a00:1450:4864:20::231]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wVSvs-00000001PVa-1tIl for pgsql-hackers@lists.postgresql.org; Fri, 05 Jun 2026 11:41:50 +0000 Received: by mail-lj1-x231.google.com with SMTP id 38308e7fff4ca-3965d76090bso16376231fa.2 for ; Fri, 05 Jun 2026 04:41:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780659707; cv=none; d=google.com; s=arc-20240605; b=b1gwtJU5yShNeU1lFINC+6uSDRHL+Ob7lzDmNY3ZFn/LGUd5LFbyN/7F9mGvviWC9K VaOeWi3iT9kDLrzCvUgRKE7R8KPanLE2rq1WjYsBmavKBTpsE+WJbCWp56CakrEfNhV0 gZVNYzzsaxf0Yub9h6XOzEg9jFZuOY68sKX7FleeUptS+a90mD0ALptLJNCC6Ff7DWHA Z+FJuVEF8RjDHGYaTaVMIm1PO6DEVN7qQ5dQfM6gjtvKXIEXpl8nnwHZu37RaPcc7dhv 8SwaTATQSlllNBr7y3OZWK4nHmTafppo+U1jLBoH6GaSF+e/53cDguKx3+zQz0W5YU6q VVsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=VXySz2AvdUJzHBP3Z2botuHSkZdo02KGiFkydb13560=; fh=jA1y0o48KsEr1ncbKeaqgkONBUmAh+4Dc8UAqTSPpFs=; b=X0e/91jalcxf9FQim77UkVksQHAB98IayN5ZnEf8oyVeQpYqW0IeR4BWd02Op2RUri zbHQhYQO+RuYvhwcfSkJ32go0slSii1zCq+80FNBNzRmggoih1wF2bm1GmSEGQyqfLd6 XBc7lPaYpNy2CIh7vrX0uE5BZy8fso5tRjplDqAdc6oSIkystVL2ox3ScavZcIZCDmnQ Iqt3vPV2Bo0hqXKHLgoKUw6dsVja4oVjCUbiG143ojDJAqhxcmmChnXKRega1QgSwgcs 2bQNPir7JR4l3Gv2vC1MKP8sv6/PaRmK0UJXHlVni+bePuw1VtrMABI3MJYQreB2E7sZ IJ3w==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780659707; x=1781264507; 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=VXySz2AvdUJzHBP3Z2botuHSkZdo02KGiFkydb13560=; b=Fzgmla7CmJAvb7H/aK19sWmUjoglqgmlAGYSylXql6hJJrLUvmpG5wrqwR0Y3MVOwZ 4ItPS0hMxPLn8Kk+OTG+x0r2GyngVxDkrflYzaVLGr7lEYdrk/zP4uokhX/Vz6kdi/0K tQ/KnEVK6NLZLOzlrn38we2Q9qnrYj4QLyDU/1tB+o4dmc+p7CFF+asama1sHkQzNkve hIjq1HIAjxA2VhHne5qs/ADTGB7hPBOrxrg5l7DLN5SRLeUbaFjB4W7bio85oNPRWFS9 lfaZBYIuOZuQAKeQDdTUTA+3/IADnUCpCSkLjWHSqZgIv/6tSwmyeL7ueD2jtPQ0w+24 0ayw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780659707; x=1781264507; 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=VXySz2AvdUJzHBP3Z2botuHSkZdo02KGiFkydb13560=; b=SOyH7v0M7d1dV4N58MPSUjrNpjlLGx+nzv9kdb0r+B2p9Mg6Z9kfZQFa+/Z6Rg7aIH QTkZO9dKF45REQQFkdXlEk6bgGNtvfHkzRxPgxZSElP5vNImmeCjvqhaIuaw7BjYb3Tt ecywz437ne1yfnbQTK0jbG0CL0XoDx6qlADY5VVJof675RrGbgK+N8wipsY6UpmsolfK OXy9A9xIfBWs9TTdfJAOfuWa8m/eF1mfUvOpMbBI1rfVlkYLcCG0jwl02hTj7k8qGNHO wOj43HJ6DOauzwUqmJhFRcVhGhycUDbuuao0wEUeImusPQlkz9MJVVlW0Cm1IQ59uLLk cViQ== X-Gm-Message-State: AOJu0Yy7elOX2vCJSENfp+SqFwUPKtoTQWJdFgZPxiPKT1jDSAQZEtqy AUtuqkIU2jNntNFf4b5gxQwSYFQnPw04Tp8ijaJQBb03h9Aeiu21MCs4SGKk3r4TBsHtSMM+RmT bGTK+viRnY1049sERNPJrIagK3kDWQyQChUQ= X-Gm-Gg: Acq92OEbS6hCIg54x+AgRrti+6SzMFxIc03X89JqkvA/YaBAxgFWM1JpUuum4zmGSQl EswM3aUJz+hu2sybfpE7YJj6fstZAjgcgP/gAevqHTZp1x0Bb+pyt+5WLKqzuqhA80vtF+F1BFO 1cnx8u/VHdgqZrUfOz53qVmxgzAAA1eBt8lS55Rnbpuo5ZnxfRoZvFHc0CxFldGBlCqAi5qibkt 8BIg5LMNSu4QLp+Wn0D8pAFqutwodd5HqJ92tyATd7Tca2CjM/cvV2efAd2u6OlrVP4LFF88QTR gS90QN74Pj//SC15z/wtsfhy X-Received: by 2002:a05:651c:b2a:b0:38e:8102:cbdd with SMTP id 38308e7fff4ca-396d074d71amr8997421fa.3.1780659706997; Fri, 05 Jun 2026 04:41:46 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nisha Moond Date: Fri, 5 Jun 2026 17:11:34 +0530 X-Gm-Features: AVHnY4LO4nu-reOy_1IQDTppvY4gp4p3Q9tZQBP6OknGoiImLoIChgjXW6vItNY Message-ID: Subject: Re: Support EXCEPT for TABLES IN SCHEMA publications To: Zsolt Parragi Cc: pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000004d5e23065380257b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004d5e23065380257b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jun 3, 2026 at 2:51=E2=80=AFAM Zsolt Parragi wrote: > > Hello > Hi, thanks for the tests. > In this simple script: > > CREATE SCHEMA s; > CREATE TABLE s.a(i int); > CREATE TABLE s.b(i int); > CREATE PUBLICATION p FOR TABLES IN SCHEMA s EXCEPT (TABLE s.b); > > SELECT * FROM pg_publication_tables WHERE pubname =3D 'p'; > SELECT * FROM pg_get_publication_tables(ARRAY['p'], 's.b'::regclass); > > Shouldn't the second select return an empty list? Currently it returns > one row for s.b. > Yes, it is a bug. The issue was that pg_get_publication_tables() could not distinguish between prexcept=3Dtrue and prexcept=3Dfalse. A reference note: This worked fine for FOR ALL TABLES publications because entries in pg_publication_rel always had prexcept=3Dfalse, so the presence of an entry implied the table was not published. With non-ALL TABLES publications, a table can now have both prexcept=3Dtrue (explicitly excluded) and prexcept=3Dfalse (excluded from a schema publication). Fixed. > And I think there's also a bug with CREATE PUBLICATION with IN SCHEMA > CURRENT_SCHEMA: > > CREATE SCHEMA s1; > CREATE TABLE s1.a(i int); > CREATE TABLE public.x(i int); > CREATE TABLE public.onlypub(i int); -- exists only in public, not in s1 > > CREATE PUBLICATION pn FOR TABLES IN SCHEMA s1 EXCEPT (TABLE public.x); > -- error out, good > SET search_path =3D s1, public; > CREATE PUBLICATION pn2 FOR TABLES IN SCHEMA s1 EXCEPT (TABLE onlypub); > -- error out, good > SET search_path =3D s1, public; > SELECT current_schema(); -- s1 > CREATE PUBLICATION pc FOR TABLES IN SCHEMA CURRENT_SCHEMA EXCEPT > (TABLE public.x); -- doesn't error out > CREATE PUBLICATION pc4 FOR TABLES IN SCHEMA CURRENT_SCHEMA EXCEPT > (TABLE onlypub); -- also doesn't error out > Yes, this is a bug. The CURRENT_SCHEMA case was missed when the patch was updated to allow only immediate schema tables in the EXCEPT clause. Attached are v10 patches with fixes for both issues. I also added the missing tab-completion for CURRENT_SCHEMA and added regression tests in publication.sql covering both scenarios. -- Thanks, Nisha --0000000000004d5e23065380257b Content-Type: application/octet-stream; name="v10-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Disposition: attachment; filename="v10-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq0umx1p0 RnJvbSBjZmNhZDA4ODY3NmE4ZDRjOTg4ZGQxYjg3YmNjMjc4YWYxZDY5MDNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBNb24sIDQgTWF5IDIwMjYgMTI6NDk6MjcgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MCAxLzNdIFN1cHBvcnQgRVhDRVBUIGNsYXVzZSBmb3Igc2NoZW1hLWxldmVsIHB1YmxpY2F0aW9u cwoKRXh0ZW5kIHRhYmxlIGV4Y2x1c2lvbiBzdXBwb3J0IGluIHB1YmxpY2F0aW9ucyB0byBhbGxv dyBzcGVjaWZpYwp0YWJsZXMgdG8gYmUgZXhjbHVkZWQgZnJvbSBzY2hlbWEtbGV2ZWwgcHVibGlj YXRpb25zIHVzaW5nIGFuCkVYQ0VQVCBjbGF1c2UgaW4gQ1JFQVRFIFBVQkxJQ0FUSU9OLgoKU3Vw cG9ydGVkIHN5bnRheDoKQ1JFQVRFIFBVQkxJQ0FUSU9OIDxwdWI+IEZPUiBUQUJMRVMgSU4gU0NI RU1BIHMgRVhDRVBUIChUQUJMRSB0MSwuLi4pOwotLS0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1 YmxpY2F0aW9uLnNnbWwgICAgfCAgMjIgKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmMgICAgICAgIHwgMTYxICsrKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9j b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgIHwgIDk3ICsrKysrKysrKystLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICB8ICA1NSArKysrKystCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIHwgIDMwICsrKy0KIHNyYy9i aW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgfCAgMTggKysrCiBzcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgIHwgIDM1ICsrKystCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAgICAgIHwgICAzICstCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgfCAxNDQgKysrKysrKysrKysrKysrKy0KIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgICAgfCAgODggKysrKysrKysr Ky0KIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgICAgICAgfCAxMzMgKysr KysrKysrKysrKysrLQogMTMgZmlsZXMgY2hhbmdlZCwgNzM0IGluc2VydGlvbnMoKyksIDU3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9u LnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDllNzg2 ODQ4N2RlLi4xNDMzZDI2NjBmZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21s CkBAIC0xMTcsNyArMTE3LDggQEAKICAgIG9yIDxsaXRlcmFsPkZPUiBBTEwgU0VRVUVOQ0VTPC9s aXRlcmFsPi4gVW5saWtlIHRhYmxlcywgc2VxdWVuY2VzIGNhbiBiZQogICAgc3luY2hyb25pemVk IGF0IGFueSB0aW1lLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlCiAgICA8eHJlZiBsaW5rZW5k PSJsb2dpY2FsLXJlcGxpY2F0aW9uLXNlcXVlbmNlcyIvPi4gV2hlbiBhIHB1YmxpY2F0aW9uIGlz Ci0gICBjcmVhdGVkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+LCBhIHRh YmxlIG9yIHNldCBvZiB0YWJsZXMgY2FuCisgICBjcmVhdGVkIHdpdGggPGxpdGVyYWw+Rk9SIEFM TCBUQUJMRVM8L2xpdGVyYWw+IG9yCisgICA8bGl0ZXJhbD5GT1IgVEFCTEVTIElOIFNDSEVNQTwv bGl0ZXJhbD4sIGEgdGFibGUgb3Igc2V0IG9mIHRhYmxlcyBjYW4KICAgIGJlIGV4cGxpY2l0bHkg ZXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlvbiB1c2luZyB0aGUKICAgIDxsaW5rIGxpbmtlbmQ9InNx bC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWV4Y2VwdC10YWJsZSI+PGxpdGVyYWw+RVhD RVBUPC9saXRlcmFsPjwvbGluaz4KICAgIGNsYXVzZS4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9w dWJsaWNhdGlvbi5zZ21sCmluZGV4IGY4MmQ2NDBlNmNhLi43ZmEwYmQxMWY3YiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yOCw3ICsyOCw3IEBAIENSRUFU RSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+CiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJs aWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKICAgICBU QUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfYW5kX2NvbHVtbnM8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXQotICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NI RU1BIH0gWywgLi4uIF0KKyAgICBUQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZXNfaW5fc2NoZW1hPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0KIAogPHBo cmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX2FsbF9v YmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKQEAgLTM5LDYgKzM5LDEw IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+CiAKICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFi bGVfb2JqZWN0PC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0KIAor PHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlc19pbl9zY2hl bWE8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKworICAgIHsgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9 IFsgRVhDRVBUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJsZV9v YmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KKwogPHBocmFzZT5hbmQgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBp czo8L3BocmFzZT4KIAogICAgIFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQpAQCAtMTQyLDYgKzE0Niw4IEBAIENS RUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9u ZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgogICAgICAgdGhlIHNw ZWNpZmllZCBsaXN0IG9mIHNjaGVtYXMsIGluY2x1ZGluZyB0YWJsZXMgY3JlYXRlZCBpbiB0aGUg ZnV0dXJlLgorICAgICAgVGFibGVzIGxpc3RlZCBpbiB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRl cmFsPiBjbGF1c2UgZm9yIGEgZ2l2ZW4gc2NoZW1hCisgICAgICBhcmUgZXhjbHVkZWQgZnJvbSB0 aGUgcHVibGljYXRpb24uCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KQEAgLTE3Myw3ICsx NzksNyBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPgogICAgICA8cGFyYT4KICAgICAgIE1hcmtzIHRoZSBwdWJsaWNh dGlvbiBhcyBvbmUgdGhhdCByZXBsaWNhdGVzIGNoYW5nZXMgZm9yIGFsbCB0YWJsZXMgaW4KICAg ICAgIHRoZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUu IFRhYmxlcyBsaXN0ZWQgaW4KLSAgICAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNl IGFyZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KKyAgICAgIHRoZSA8bGl0ZXJhbD5F WENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgcHVibGljYXRpb24u CiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC0x OTgsNyArMjA0LDggQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgog ICAgICAgVGhpcyBjbGF1c2Ugc3BlY2lmaWVzIGEgbGlzdCBvZiB0YWJsZXMgdG8gYmUgZXhjbHVk ZWQgZnJvbSB0aGUKLSAgICAgIHB1YmxpY2F0aW9uLgorICAgICAgcHVibGljYXRpb24uIEl0IGNh biBiZSB1c2VkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yCisgICAg ICA8bGl0ZXJhbD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4K ICAgICAgPHBhcmE+CiAgICAgICBGb3IgaW5oZXJpdGVkIHRhYmxlcywgaWYgPGxpdGVyYWw+T05M WTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkIGJlZm9yZSB0aGUKQEAgLTUxNSw2ICs1MjIsMTUgQEAg Q1JFQVRFIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gRk9SIFRBQkxFIHVzZXJz LCBkZXBhcnRtZW50cywgVEFCTEVTIEkKIENSRUFURSBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNh dGlvbiBGT1IgVEFCTEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNhbGVzOwogPC9wcm9ncmFtbGlz dGluZz48L3BhcmE+CiAKKyAgPHBhcmE+CisgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1 Ymxpc2hlcyBhbGwgY2hhbmdlcyBmb3IgYWxsIHRoZSB0YWJsZXMgcHJlc2VudCBpbgorICAgdGhl IHNjaGVtYSA8c3RydWN0bmFtZT5zYWxlczwvc3RydWN0bmFtZT4sIGV4Y2VwdAorICAgPHN0cnVj dG5hbWU+aW50ZXJuYWw8L3N0cnVjdG5hbWU+IGFuZCA8c3RydWN0bmFtZT5kcmFmdHM8L3N0cnVj dG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHNhbGVzX2ZpbHRl cmVkIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHNhbGVzIEVYQ0VQVCAoVEFCTEUgaW50ZXJuYWwsIGRy YWZ0cyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBDcmVh dGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdlcyBmb3IgdGFibGUgPHN0 cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgYnV0IHJlcGxpY2F0ZXMgb25seSBjb2x1 bW5zIDxzdHJ1Y3RuYW1lPnVzZXJfaWQ8L3N0cnVjdG5hbWU+IGFuZApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jCmluZGV4IDVjNDU3ZDlhY2E4Li40MDg5YjUwNWY4OSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtNDQ0LDEzICs0NDQsMTkgQEAgR2V0UHViUGFy dGl0aW9uT3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGljYXRpb25QYXJ0T3B0IHB1 Yl9wYXJ0b3B0LAogICoKICAqIE5vdGUgdGhhdCB0aGUgbGlzdCBvZiBhbmNlc3RvcnMgc2hvdWxk IGJlIG9yZGVyZWQgc3VjaCB0aGF0IHRoZSB0b3Btb3N0CiAgKiBhbmNlc3RvciBpcyBhdCB0aGUg ZW5kIG9mIHRoZSBsaXN0LgorICoKKyAqIGV4Y2VwdF9wdWJpZHMgaXMgYSBsaXN0IG9mIHB1Ymxp Y2F0aW9uIE9JRHMgd2hvc2Ugc2NoZW1hIG1lbWJlcnNoaXAKKyAqIHNob3VsZCBiZSBpZ25vcmVk IGZvciB0aGUgYW5jZXN0b3IgKGJlY2F1c2UgdGhlIGFuY2VzdG9yIGlzIGluIHRoZWlyCisgKiBF WENFUFQgY2xhdXNlKS4KICAqLwogT2lkCi1HZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9u KE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRv cE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAor CQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLCBMaXN0ICpleGNlcHRfcHViaWRzKQogewogCUxp c3RDZWxsICAgKmxjOwogCU9pZAkJCXRvcG1vc3RfcmVsaWQgPSBJbnZhbGlkT2lkOwogCWludAkJ CWxldmVsID0gMDsKKwlib29sCQljaGVja19zY2hlbWFzID0gIWxpc3RfbWVtYmVyX29pZChleGNl cHRfcHViaWRzLCBwdWJvaWQpOwogCiAJLyoKIAkgKiBGaW5kIHRoZSAidG9wbW9zdCIgYW5jZXN0 b3IgdGhhdCBpcyBpbiB0aGlzIHB1YmxpY2F0aW9uLgpAQCAtNDcwLDcgKzQ3Niw3IEBAIEdldFRv cE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLCBp bnQgKmFuY2VzdG9yX2xldmVsCiAJCQlpZiAoYW5jZXN0b3JfbGV2ZWwpCiAJCQkJKmFuY2VzdG9y X2xldmVsID0gbGV2ZWw7CiAJCX0KLQkJZWxzZQorCQllbHNlIGlmIChjaGVja19zY2hlbWFzKQog CQl7CiAJCQlhc2NoZW1hUHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdldF9yZWxfbmFt ZXNwYWNlKGFuY2VzdG9yKSk7CiAJCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFzY2hlbWFQdWJpZHMs IHB1Ym9pZCkpCkBAIC01NDUsMTggKzU1MSwzMCBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24o T2lkIHB1YmlkLCBQdWJsaWNhdGlvblJlbEluZm8gKnByaSwKIAkgKiBkdXBsaWNhdGVzLCBpdCdz IGhlcmUganVzdCB0byBwcm92aWRlIG5pY2VyIGVycm9yIG1lc3NhZ2UgaW4gY29tbW9uCiAJICog Y2FzZS4gVGhlIHJlYWwgcHJvdGVjdGlvbiBpcyB0aGUgdW5pcXVlIGtleSBvbiB0aGUgY2F0YWxv Zy4KIAkgKi8KLQlpZiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKFBVQkxJQ0FUSU9OUkVMTUFQLCBP YmplY3RJZEdldERhdHVtKHJlbGlkKSwKLQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocHViaWQp KSkKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFVCTElDQVRJT05SRUxNQVAsIE9iamVjdElkR2V0 RGF0dW0ocmVsaWQpLAorCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisKKwlpZiAo SGVhcFR1cGxlSXNWYWxpZCh0dXApKQogCXsKKwkJYm9vbAkJaXNfZXhjZXB0ID0gKChGb3JtX3Bn X3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdDsKKworCQlSZWxlYXNl U3lzQ2FjaGUodHVwKTsKIAkJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAog CQlpZiAoaWZfbm90X2V4aXN0cykKIAkJCXJldHVybiBJbnZhbGlkT2JqZWN0QWRkcmVzczsKIAot CQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCks Ci0JCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGlzIGFscmVhZHkgbWVtYmVyIG9mIHB1Ymxp Y2F0aW9uIFwiJXNcIiIsCi0JCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwp LCBwdWItPm5hbWUpKSk7CisJCWlmIChpc19leGNlcHQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJ0YWJs ZSBcIiVzXCIgY2Fubm90IGJlIGFkZGVkIGJlY2F1c2UgaXQgaXMgZXhjbHVkZWQgZnJvbSBwdWJs aWNhdGlvbiBcIiVzXCIiLAorCQkJCQkJCVJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1l KHRhcmdldHJlbCksCisJCQkJCQkJcHViLT5uYW1lKSkpOworCQllbHNlCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJy bXNnKCJyZWxhdGlvbiBcIiVzXCIgaXMgYWxyZWFkeSBtZW1iZXIgb2YgcHVibGljYXRpb24gXCIl c1wiIiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpLCBwdWItPm5h bWUpKSk7CiAJfQogCiAJY2hlY2tfcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKHByaSk7CkBAIC05 ODIsMTIgKzEwMDAsMTMgQEAgR2V0SW5jbHVkZWRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHVi aWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKICAqIEdldHMgbGlzdCBvZiB0YWJs ZSBvaWRzIHRoYXQgd2VyZSBzcGVjaWZpZWQgaW4gdGhlIEVYQ0VQVCBjbGF1c2UgZm9yIGEKICAq IHB1YmxpY2F0aW9uLgogICoKLSAqIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBGT1IgQUxMIFRB QkxFUyBwdWJsaWNhdGlvbnMuCisgKiBUaGlzIGlzIHVzZWQgZm9yIEZPUiBBTEwgVEFCTEVTIGFu ZCBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbnMsCisgKiBib3RoIG9mIHdoaWNoIHN1 cHBvcnQgRVhDRVBUIFRBQkxFLgogICovCiBMaXN0ICoKIEdldEV4Y2x1ZGVkUHVibGljYXRpb25U YWJsZXMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCiB7Ci0JQXNz ZXJ0KEdldFB1YmxpY2F0aW9uKHB1YmlkKS0+YWxsdGFibGVzKTsKKwlBc3NlcnQoR2V0UHVibGlj YXRpb24ocHViaWQpLT5hbGx0YWJsZXMgfHwgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKHB1YmlkKSk7 CiAKIAlyZXR1cm4gZ2V0X3B1YmxpY2F0aW9uX3JlbGF0aW9ucyhwdWJpZCwgcHViX3BhcnRvcHQs IHRydWUpOwogfQpAQCAtMTA0OSwxNSArMTA2OCwxNSBAQCBHZXRBbGxQdWJsaWNhdGlvblJlbGF0 aW9ucyhPaWQgcHViaWQsIGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KQogCVRhYmxlU2Nh bkRlc2Mgc2NhbjsKIAlIZWFwVHVwbGUJdHVwbGU7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwot CUxpc3QJICAgKmV4Y2VwdGxpc3QgPSBOSUw7CisJTGlzdAkgICAqZXhjZXB0X3JlbGlkcyA9IE5J TDsKIAogCUFzc2VydCghKHJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSAmJiBwdWJ2aWFyb290 KSk7CiAKIAkvKiBFWENFUFQgZmlsdGVyaW5nIGFwcGxpZXMgb25seSB0byByZWxhdGlvbnMsIG5v dCBzZXF1ZW5jZXMgKi8KIAlpZiAocmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OKQotCQlleGNl cHRsaXN0ID0gR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcyhwdWJpZCwgcHVidmlhcm9vdCA/ Ci0JCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCA6Ci0JCQkJCQkJCQkJCQkgIFBV QkxJQ0FUSU9OX1BBUlRfTEVBRik7CisJCWV4Y2VwdF9yZWxpZHMgPSBHZXRFeGNsdWRlZFB1Ymxp Y2F0aW9uVGFibGVzKHB1YmlkLCBwdWJ2aWFyb290ID8KKwkJCQkJCQkJCQkJCQkgUFVCTElDQVRJ T05fUEFSVF9ST09UIDoKKwkJCQkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9MRUFGKTsKIAog CWNsYXNzUmVsID0gdGFibGVfb3BlbihSZWxhdGlvblJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9j ayk7CiAKQEAgLTEwNzUsNyArMTA5NCw3IEBAIEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKE9p ZCBwdWJpZCwgY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpCiAKIAkJaWYgKGlzX3B1Ymxp c2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgogCQkJIShyZWxGb3JtLT5yZWxpc3BhcnRp dGlvbiAmJiBwdWJ2aWFyb290KSAmJgotCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRsaXN0LCBy ZWxpZCkpCisJCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdF9yZWxpZHMsIHJlbGlkKSkKIAkJCXJl c3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOwogCX0KIApAQCAtMTA5Nyw3ICsxMTE2 LDcgQEAgR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBjaGFyIHJlbGtpbmQs IGJvb2wgcHVidmlhcm9vdCkKIAogCQkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCBy ZWxGb3JtKSAmJgogCQkJCSFyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbiAmJgotCQkJCSFsaXN0X21l bWJlcl9vaWQoZXhjZXB0bGlzdCwgcmVsaWQpKQorCQkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0 X3JlbGlkcywgcmVsaWQpKQogCQkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQp OwogCQl9CiAKQEAgLTEyMzIsMjIgKzEyNTEsNjcgQEAgR2V0U2NoZW1hUHVibGljYXRpb25SZWxh dGlvbnMoT2lkIHNjaGVtYWlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCiAKIC8q CiAgKiBHZXRzIHRoZSBsaXN0IG9mIGFsbCByZWxhdGlvbnMgcHVibGlzaGVkIGJ5IEZPUiBUQUJM RVMgSU4gU0NIRU1BCi0gKiBwdWJsaWNhdGlvbi4KKyAqIHB1YmxpY2F0aW9uLCBleGNsdWRpbmcg YW55IHRhYmxlcyBsaXN0ZWQgaW4gdGhlIEVYQ0VQVCBjbGF1c2UuCiAgKi8KIExpc3QgKgogR2V0 QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRP cHQgcHViX3BhcnRvcHQpCiB7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwogCUxpc3QJICAgKnB1 YnNjaGVtYWxpc3QgPSBHZXRQdWJsaWNhdGlvblNjaGVtYXMocHViaWQpOworCUxpc3QJICAgKmV4 Y2VwdF9yZWxpZHMgPSBOSUw7CiAJTGlzdENlbGwgICAqY2VsbDsKIAorCS8qIGdldCB0aGUgbGlz dCBvZiB0YWJsZXMgZXhjbHVkZWQgdmlhIEVYQ0VQVCBUQUJMRSBmb3IgdGhpcyBwdWJsaWNhdGlv biAqLworCWlmIChwdWJzY2hlbWFsaXN0ICE9IE5JTCkKKwkJZXhjZXB0X3JlbGlkcyA9IEdldEV4 Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMocHViaWQsIHB1Yl9wYXJ0b3B0KTsKKwogCWZvcmVhY2go Y2VsbCwgcHVic2NoZW1hbGlzdCkKIAl7CiAJCU9pZAkJCXNjaGVtYWlkID0gbGZpcnN0X29pZChj ZWxsKTsKIAkJTGlzdAkgICAqc2NoZW1hUmVscyA9IE5JTDsKIAogCQlzY2hlbWFSZWxzID0gR2V0 U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoc2NoZW1haWQsIHB1Yl9wYXJ0b3B0KTsKLQkJcmVz dWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBzY2hlbWFSZWxzKTsKKworCQlpZiAoZXhjZXB0X3Jl bGlkcyAhPSBOSUwpCisJCXsKKwkJCS8qIGZpbHRlciBvdXQgYW55IHRhYmxlcyB0aGF0IGFwcGVh ciBpbiB0aGUgRVhDRVBUIGxpc3QgKi8KKwkJCUxpc3RDZWxsICAgKnJsYzsKKworCQkJZm9yZWFj aChybGMsIHNjaGVtYVJlbHMpCisJCQl7CisJCQkJT2lkCQkJcmVsaWQgPSBsZmlyc3Rfb2lkKHJs Yyk7CisJCQkJYm9vbAkJZXhjbHVkZWQgPSBsaXN0X21lbWJlcl9vaWQoZXhjZXB0X3JlbGlkcywg cmVsaWQpOworCisJCQkJLyoKKwkJCQkgKiBBbHNvIGV4Y2x1ZGUgYW55IHJlbGF0aW9uIHdob3Nl IHBhcnRpdGlvbiBhbmNlc3RvciBpcyBpbgorCQkJCSAqIHRoZSBFWENFUFQgbGlzdC4gIFRoaXMg bWF0dGVycyB3aGVuIHB1Yl9wYXJ0b3B0IGlzCisJCQkJICogUFVCTElDQVRJT05fUEFSVF9ST09U OiB0aGUgZXhjZXB0IGxpc3QgaG9sZHMgb25seSB0aGUgcm9vdAorCQkJCSAqIE9JRCwgYnV0IHRo ZSBzY2hlbWEgc2NhbiBtYXkgYWxzbyByZXR1cm4gaW5kaXZpZHVhbAorCQkJCSAqIHBhcnRpdGlv biByZWxhdGlvbnMgdGhhdCBsaXZlIGluIHRoZSBzYW1lIHNjaGVtYS4KKwkJCQkgKi8KKwkJCQlp ZiAoIWV4Y2x1ZGVkICYmIGdldF9yZWxfcmVsaXNwYXJ0aXRpb24ocmVsaWQpKQorCQkJCXsKKwkJ CQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9hbmNlc3RvcnMocmVsaWQpOwor CQkJCQlMaXN0Q2VsbCAgICphbGM7CisKKwkJCQkJZm9yZWFjaChhbGMsIGFuY2VzdG9ycykKKwkJ CQkJeworCQkJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChleGNlcHRfcmVsaWRzLCBsZmlyc3Rfb2lk KGFsYykpKQorCQkJCQkJeworCQkJCQkJCWV4Y2x1ZGVkID0gdHJ1ZTsKKwkJCQkJCQlicmVhazsK KwkJCQkJCX0KKwkJCQkJfQorCQkJCQlsaXN0X2ZyZWUoYW5jZXN0b3JzKTsKKwkJCQl9CisKKwkJ CQlpZiAoIWV4Y2x1ZGVkKQorCQkJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHJlbGlk KTsKKwkJCX0KKwkJCWxpc3RfZnJlZShzY2hlbWFSZWxzKTsKKwkJfQorCQllbHNlCisJCQlyZXN1 bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIHNjaGVtYVJlbHMpOwogCX0KIAogCXJldHVybiByZXN1 bHQ7CkBAIC0xMzI0LDYgKzEzODgsNyBAQCBpc190YWJsZV9wdWJsaXNoYWJsZV9pbl9wdWJsaWNh dGlvbihPaWQgcmVsaWQsIFB1YmxpY2F0aW9uICpwdWIpCiB7CiAJYm9vbAkJcmVsaXNwYXJ0aXRp b247CiAJTGlzdAkgICAqYW5jZXN0b3JzID0gTklMOworCUhlYXBUdXBsZQl0dXA7CiAKIAkvKgog CSAqIEZvciBub24tcHVidmlhcm9vdCBwdWJsaWNhdGlvbnMsIGEgcGFydGl0aW9uZWQgdGFibGUg aXMgbmV2ZXIgdGhlCkBAIC0xMzgwLDIwICsxNDQ1LDYyIEBAIGlzX3RhYmxlX3B1Ymxpc2hhYmxl X2luX3B1YmxpY2F0aW9uKE9pZCByZWxpZCwgUHVibGljYXRpb24gKnB1YikKIAkgKiBJZiBpdCdz IGZhbHNlLCB0aGUgcGFydGl0aW9uIGlzIGNvdmVyZWQgYnkgaXRzIGFuY2VzdG9yJ3MgcHJlc2Vu Y2UgaW4KIAkgKiB0aGUgcHVibGljYXRpb24sIGl0IHNob3VsZCBiZSBpbmNsdWRlZCAocmV0dXJu IHRydWUpLgogCSAqLwotCWlmIChyZWxpc3BhcnRpdGlvbiAmJgotCQlPaWRJc1ZhbGlkKEdldFRv cE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViLT5vaWQsIGFuY2VzdG9ycywgTlVMTCkpKQot CQlyZXR1cm4gIXB1Yi0+cHVidmlhcm9vdDsKKwlpZiAocmVsaXNwYXJ0aXRpb24pCisJeworCQlP aWQJCQlhbmNlc3Rvcl9vaWQ7CisKKwkJYW5jZXN0b3Jfb2lkID0gR2V0VG9wTW9zdEFuY2VzdG9y SW5QdWJsaWNhdGlvbihwdWItPm9pZCwgYW5jZXN0b3JzLCBOVUxMLCBOSUwpOworCQlpZiAoT2lk SXNWYWxpZChhbmNlc3Rvcl9vaWQpKQorCQl7CisJCQkvKgorCQkJICogVGhlIGFuY2VzdG9yIHdh cyBmb3VuZCBpbiB0aGUgcHVibGljYXRpb24gKHZpYSBleHBsaWNpdAorCQkJICogbWVtYmVyc2hp cCBvciBzY2hlbWEgbWVtYmVyc2hpcCksIGJ1dCBpdCBtYXkgYmUgZXhjbHVkZWQuIENoZWNrCisJ CQkgKiBmb3IgYSBwcmV4Y2VwdCByb3cgYmVmb3JlIGNvbmNsdWRpbmcgdGhlIHBhcnRpdGlvbiBp cworCQkJICogcHVibGlzaGVkLgorCQkJICovCisJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFVC TElDQVRJT05SRUxNQVAsCisJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShhbmNlc3Rvcl9vaWQp LAorCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocHViLT5vaWQpKTsKKwkJCWlmIChIZWFwVHVw bGVJc1ZhbGlkKHR1cCkpCisJCQl7CisJCQkJYm9vbAkJaXNfZXhjZXB0OworCisJCQkJaXNfZXhj ZXB0ID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2Vw dDsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlpZiAoaXNfZXhjZXB0KQorCQkJCQly ZXR1cm4gZmFsc2U7CisJCQl9CisJCQlyZXR1cm4gIXB1Yi0+cHVidmlhcm9vdDsKKwkJfQorCX0K IAogCS8qCiAJICogQ2hlY2sgd2hldGhlciB0aGUgdGFibGUgaXMgZXhwbGljaXRseSBwdWJsaXNo ZWQgdmlhIHBnX3B1YmxpY2F0aW9uX3JlbAogCSAqIG9yIHBnX3B1YmxpY2F0aW9uX25hbWVzcGFj ZS4KKwkgKgorCSAqIEEgcGdfcHVibGljYXRpb25fcmVsIHJvdyB3aXRoIHByZXhjZXB0PXRydWUg bWVhbnMgdGhlIHRhYmxlIGlzCisJICogZXhwbGljaXRseSBleGNsdWRlZCB2aWEgRVhDRVBUIGFu ZCBtdXN0IG5vdCBiZSByZXBvcnRlZCBhcyBwdWJsaXNoZWQsCisJICogZXZlbiBpZiBpdHMgc2No ZW1hIGlzIG90aGVyd2lzZSBpbmNsdWRlZC4gIEEgcm93IHdpdGggcHJleGNlcHQ9ZmFsc2UKKwkg KiBtZWFucyBpdCBpcyBleHBsaWNpdGx5IGluY2x1ZGVkLiAgSWYgbm8gcGdfcHVibGljYXRpb25f cmVsIHJvdyBleGlzdHMsCisJICogdGhlIHRhYmxlIGlzIHB1Ymxpc2hlZCBpZmYgaXRzIHNjaGVt YSBhcHBlYXJzIGluCisJICogcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLgogCSAqLwotCXJldHVy biAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKFBVQkxJQ0FUSU9OUkVMTUFQLAotCQkJCQkJCQkgIE9i amVjdElkR2V0RGF0dW0ocmVsaWQpLAotCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocHViLT5v aWQpKSB8fAotCQkJU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKFBVQkxJQ0FUSU9OTkFNRVNQQUNFTUFQ LAotCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0oZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpKSwK LQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHB1Yi0+b2lkKSkpOworCisJdHVwID0gU2VhcmNo U3lzQ2FjaGUyKFBVQkxJQ0FUSU9OUkVMTUFQLAorCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHJl bGlkKSwKKwkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWItPm9pZCkpOworCWlmIChIZWFwVHVw bGVJc1ZhbGlkKHR1cCkpCisJeworCQlib29sCQlpc19leGNlcHQ7CisKKwkJaXNfZXhjZXB0ID0g KChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdDsKKwkJ UmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCXJldHVybiAhaXNfZXhjZXB0OworCX0KKworCXJldHVy biBTZWFyY2hTeXNDYWNoZUV4aXN0czIoUFVCTElDQVRJT05OQU1FU1BBQ0VNQVAsCisJCQkJCQkJ CSBPYmplY3RJZEdldERhdHVtKGdldF9yZWxfbmFtZXNwYWNlKHJlbGlkKSksCisJCQkJCQkJCSBP YmplY3RJZEdldERhdHVtKHB1Yi0+b2lkKSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jCmluZGV4IDQ0MGFkYjM1NmFkLi5iOGQyZDhlMDNmMiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTE4MSw3ICsxODEsNyBAQCBwYXJzZV9w dWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKICAqLwogc3RhdGljIHZvaWQK IE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VT dGF0ZSAqcHN0YXRlLAotCQkJCQkJICAgTGlzdCAqKnJlbHMsIExpc3QgKipleGNlcHRyZWxzLCBM aXN0ICoqc2NoZW1hcykKKwkJCQkJCSAgIExpc3QgKipyZWxzLCBMaXN0ICoqZXhjZXB0X3B1YnRh YmxlcywgTGlzdCAqKnNjaGVtYXMpCiB7CiAJTGlzdENlbGwgICAqY2VsbDsKIAlQdWJsaWNhdGlv bk9ialNwZWMgKnB1Ym9iajsKQEAgLTIwMCw3ICsyMDAsNyBAQCBPYmplY3RzSW5QdWJsaWNhdGlv blRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJewog CQkJY2FzZSBQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEU6CiAJCQkJcHVib2JqLT5wdWJ0YWJs ZS0+ZXhjZXB0ID0gdHJ1ZTsKLQkJCQkqZXhjZXB0cmVscyA9IGxhcHBlbmQoKmV4Y2VwdHJlbHMs IHB1Ym9iai0+cHVidGFibGUpOworCQkJCSpleGNlcHRfcHVidGFibGVzID0gbGFwcGVuZCgqZXhj ZXB0X3B1YnRhYmxlcywgcHVib2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBV QkxJQ0FUSU9OT0JKX1RBQkxFOgogCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2VwdCA9IGZhbHNl OwpAQCAtMjI0LDYgKzIyNCwzOCBAQCBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpw dWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAogCQkJCS8qIEZpbHRlciBvdXQg ZHVwbGljYXRlcyBpZiB1c2VyIHNwZWNpZmllcyAic2NoMSwgc2NoMSIgKi8KIAkJCQkqc2NoZW1h cyA9IGxpc3RfYXBwZW5kX3VuaXF1ZV9vaWQoKnNjaGVtYXMsIHNjaGVtYWlkKTsKKworCQkJCS8q CisJCQkJICogUXVhbGlmeSB1bnF1YWxpZmllZCBFWENFUFQgdGFibGUgbmFtZXMgd2l0aCB0aGUg cmVzb2x2ZWQKKwkJCQkgKiBjdXJyZW50IHNjaGVtYSBhbmQgcmVqZWN0IGFueSBleHBsaWNpdGx5 IGNyb3NzLXNjaGVtYQorCQkJCSAqIGVudHJpZXMuICBUaGlzIG1pcnJvcnMgdGhlIHBhcnNlLXRp bWUgaGFuZGxpbmcgZG9uZSBmb3IKKwkJCQkgKiBUQUJMRVNfSU5fU0NIRU1BIGluIHByZXByb2Nl c3NfcHVib2JqX2xpc3QoKSwgZGVmZXJyZWQgaGVyZQorCQkJCSAqIGJlY2F1c2UgQ1VSUkVOVF9T Q0hFTUEgaXMgbm90IGtub3duIHVudGlsIGV4ZWN1dGlvbiB0aW1lLgorCQkJCSAqLworCQkJCWlm IChwdWJvYmotPmV4Y2VwdF90YWJsZXMgIT0gTklMKQorCQkJCXsKKwkJCQkJY2hhcgkgICAqY3Vy X3NjaGVtYV9uYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKHNjaGVtYWlkKTsKKworCQkJCQlmb3Jl YWNoX3B0cihQdWJsaWNhdGlvbk9ialNwZWMsIGVvYmosIHB1Ym9iai0+ZXhjZXB0X3RhYmxlcykK KwkJCQkJeworCQkJCQkJY29uc3QgY2hhciAqZW9ial9zY2hlbWFuYW1lID0KKwkJCQkJCQllb2Jq LT5wdWJ0YWJsZS0+cmVsYXRpb24tPnNjaGVtYW5hbWU7CisJCQkJCQljb25zdCBjaGFyICplb2Jq X3JlbG5hbWUgPQorCQkJCQkJCWVvYmotPnB1YnRhYmxlLT5yZWxhdGlvbi0+cmVsbmFtZTsKKwor CQkJCQkJaWYgKGVvYmpfc2NoZW1hbmFtZSA9PSBOVUxMKQorCQkJCQkJCWVvYmotPnB1YnRhYmxl LT5yZWxhdGlvbi0+c2NoZW1hbmFtZSA9IGN1cl9zY2hlbWFfbmFtZTsKKwkJCQkJCWVsc2UgaWYg KHN0cmNtcChlb2JqX3NjaGVtYW5hbWUsIGN1cl9zY2hlbWFfbmFtZSkgIT0gMCkKKwkJCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RF RklOSVRJT04pLAorCQkJCQkJCQkJZXJybXNnKCJ0YWJsZSBcIiVzXCIgaW4gRVhDRVBUIGNsYXVz ZSBkb2VzIG5vdCBiZWxvbmcgdG8gc2NoZW1hIFwiJXNcIiIsCisJCQkJCQkJCQkJICAgcXVvdGVf cXVhbGlmaWVkX2lkZW50aWZpZXIoZW9ial9zY2hlbWFuYW1lLCBlb2JqX3JlbG5hbWUpLAorCQkJ CQkJCQkJCSAgIGN1cl9zY2hlbWFfbmFtZSkpOworCisJCQkJCQkqZXhjZXB0X3B1YnRhYmxlcyA9 IGxhcHBlbmQoKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJCQkJCQkJCQkJZW9iai0+cHVidGFibGUp OworCQkJCQl9CisJCQkJfQogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGRu J3QgaGFwcGVuICovCkBAIC0zMDUsNyArMzM3LDcgQEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRf Y29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAlp ZiAocHVidmlhcm9vdCAmJiByZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7CiAJ CXB1Ymxpc2hfYXNfcmVsaWQKLQkJCT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihw dWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJCT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNh dGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMLCBOSUwpOwogCiAJCWlmICghT2lkSXNWYWxpZChw dWJsaXNoX2FzX3JlbGlkKSkKIAkJCXB1Ymxpc2hfYXNfcmVsaWQgPSByZWxpZDsKQEAgLTM4OSw3 ICs0MjEsNyBAQCBwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlv biByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCSAqLwogCWlmIChwdWJ2aWFyb290ICYmIHJl bGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKLQkJcHVibGlzaF9hc19yZWxpZCA9 IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywgTlVMTCk7 CisJCXB1Ymxpc2hfYXNfcmVsaWQgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1 YmlkLCBhbmNlc3RvcnMsIE5VTEwsIE5JTCk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hf YXNfcmVsaWQpKQogCQkJcHVibGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAtODQ5LDcgKzg4MSw3 IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRp b25TdG10ICpzdG10KQogCWNoYXIJCXB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM7CiAJQWNsUmVz dWx0CWFjbHJlc3VsdDsKIAlMaXN0CSAgICpyZWxhdGlvbnMgPSBOSUw7Ci0JTGlzdAkgICAqZXhj ZXB0cmVsYXRpb25zID0gTklMOworCUxpc3QJICAgKmV4Y2VwdF9wdWJ0YWJsZXMgPSBOSUw7CiAJ TGlzdAkgICAqc2NoZW1haWRsaXN0ID0gTklMOwogCiAJLyogbXVzdCBoYXZlIENSRUFURSBwcml2 aWxlZ2Ugb24gZGF0YWJhc2UgKi8KQEAgLTkzNiwxNiArOTY4LDE2IEBAIENyZWF0ZVB1YmxpY2F0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCiAJ LyogQXNzb2NpYXRlIG9iamVjdHMgd2l0aCB0aGUgcHVibGljYXRpb24uICovCiAJT2JqZWN0c0lu UHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAot CQkJCQkJCSAgICZleGNlcHRyZWxhdGlvbnMsICZzY2hlbWFpZGxpc3QpOworCQkJCQkJCSAgICZl eGNlcHRfcHVidGFibGVzLCAmc2NoZW1haWRsaXN0KTsKIAogCWlmIChzdG10LT5mb3JfYWxsX3Rh YmxlcykKIAl7CiAJCS8qIFByb2Nlc3MgRVhDRVBUIHRhYmxlIGxpc3QgKi8KLQkJaWYgKGV4Y2Vw dHJlbGF0aW9ucyAhPSBOSUwpCisJCWlmIChleGNlcHRfcHVidGFibGVzICE9IE5JTCkKIAkJewog CQkJTGlzdAkgICAqcmVsczsKIAotCQkJcmVscyA9IE9wZW5UYWJsZUxpc3QoZXhjZXB0cmVsYXRp b25zKTsKKwkJCXJlbHMgPSBPcGVuVGFibGVMaXN0KGV4Y2VwdF9wdWJ0YWJsZXMpOwogCQkJUHVi bGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKIAkJCUNsb3NlVGFi bGVMaXN0KHJlbHMpOwogCQl9CkBAIC05NTksNiArOTkxLDggQEAgQ3JlYXRlUHVibGljYXRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJfQogCWVs c2UgaWYgKCFzdG10LT5mb3JfYWxsX3NlcXVlbmNlcykKIAl7CisJCUxpc3QJICAgKmV4cGxpY2l0 cmVsaWRzID0gTklMOworCiAJCS8qIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHJlcXVpcmVzIHN1cGVy dXNlciAqLwogCQlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCAmJiAhc3VwZXJ1c2VyKCkpCiAJCQll cmVwb3J0KEVSUk9SLApAQCAtOTc3LDYgKzEwMTEsMTkgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkJCQkJCQkg ICBzY2hlbWFpZGxpc3QgIT0gTklMLAogCQkJCQkJCQkJICAgcHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3QpOwogCisJCQkvKgorCQkJICogQ29sbGVjdCBleHBsaWNpdCB0YWJsZSBPSURzIG5vdywg YmVmb3JlIHdlIGNsb3NlIHRoZSByZWxhdGlvbgorCQkJICogbGlzdCwgc28gdGhhdCBleGNlcHQt dGFibGUgdmFsaWRhdGlvbiBiZWxvdyBjYW4gY2hlY2sgZm9yCisJCQkgKiBjb250cmFkaWN0aW9u cyB3aXRob3V0IHJlbHlpbmcgb24gYSBjYXRhbG9nIHNjYW4gdGhhdCBtaWdodCBub3QKKwkJCSAq IHlldCBzZWUgdGhlIGp1c3QtaW5zZXJ0ZWQgcm93cy4KKwkJCSAqLworCQkJaWYgKGV4Y2VwdF9w dWJ0YWJsZXMgIT0gTklMKQorCQkJeworCQkJCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uUmVsSW5m bywgcHJpLCByZWxzKQorCQkJCQlleHBsaWNpdHJlbGlkcyA9IGxhcHBlbmRfb2lkKGV4cGxpY2l0 cmVsaWRzLAorCQkJCQkJCQkJCQkJIFJlbGF0aW9uR2V0UmVsaWQocHJpLT5yZWxhdGlvbikpOwor CQkJfQorCiAJCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQsIHJlbHMsIHRydWUsIE5VTEwp OwogCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CiAJCX0KQEAgLTk4OSw2ICsxMDM2LDM0IEBAIENy ZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10 ICpzdG10KQogCQkJICovCiAJCQlMb2NrU2NoZW1hTGlzdChzY2hlbWFpZGxpc3QpOwogCQkJUHVi bGljYXRpb25BZGRTY2hlbWFzKHB1Ym9pZCwgc2NoZW1haWRsaXN0LCB0cnVlLCBOVUxMKTsKKwor CQkJaWYgKGV4Y2VwdF9wdWJ0YWJsZXMgIT0gTklMKQorCQkJeworCQkJCUxpc3QJICAgKmV4Y2Vw dF9yZWxzOworCisJCQkJZXhjZXB0X3JlbHMgPSBPcGVuVGFibGVMaXN0KGV4Y2VwdF9wdWJ0YWJs ZXMpOworCisJCQkJLyoKKwkJCQkgKiBWYWxpZGF0ZSB0aGF0IGVhY2ggZXhjbHVkZWQgdGFibGUg aXMgbm90IGFsc28gaW4gdGhlCisJCQkJICogZXhwbGljaXQgdGFibGUgbGlzdCAod2hpY2ggd291 bGQgYmUgY29udHJhZGljdG9yeSkuIFVzZSB0aGUKKwkJCQkgKiBpbi1tZW1vcnkgZXhwbGljaXRy ZWxpZHMgY29sbGVjdGVkIGFib3ZlIHJhdGhlciB0aGFuCisJCQkJICogcmUtcmVhZGluZyB0aGUg Y2F0YWxvZywgd2hpY2ggbWF5IG5vdCB5ZXQgc2VlIHRoZQorCQkJCSAqIGp1c3QtaW5zZXJ0ZWQg cm93cy4KKwkJCQkgKi8KKwkJCQlmb3JlYWNoX3B0cihQdWJsaWNhdGlvblJlbEluZm8sIHByaSwg ZXhjZXB0X3JlbHMpCisJCQkJeworCQkJCQlPaWQJCQlleGNlcHRfcmVsaWQgPSBSZWxhdGlvbkdl dFJlbGlkKHByaS0+cmVsYXRpb24pOworCisJCQkJCWlmIChsaXN0X21lbWJlcl9vaWQoZXhwbGlj aXRyZWxpZHMsIGV4Y2VwdF9yZWxpZCkpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQll cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJCQllcnJtc2co InRhYmxlIFwiJXNcIiBjYW5ub3QgYXBwZWFyIGluIGJvdGggdGhlIHRhYmxlIGxpc3QgYW5kIHRo ZSBFWENFUFQgY2xhdXNlIiwKKwkJCQkJCQkJCSAgIFJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRp b25OYW1lKHByaS0+cmVsYXRpb24pKSk7CisJCQkJfQorCisJCQkJUHVibGljYXRpb25BZGRUYWJs ZXMocHVib2lkLCBleGNlcHRfcmVscywgdHJ1ZSwgTlVMTCk7CisJCQkJQ2xvc2VUYWJsZUxpc3Qo ZXhjZXB0X3JlbHMpOworCQkJfQogCQl9CiAJfQogCkBAIC0xNjgzLDEyICsxNzU4LDEyIEBAIEFs dGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAq c3RtdCkKIAllbHNlCiAJewogCQlMaXN0CSAgICpyZWxhdGlvbnMgPSBOSUw7Ci0JCUxpc3QJICAg KmV4Y2VwdHJlbGF0aW9ucyA9IE5JTDsKKwkJTGlzdAkgICAqZXhjZXB0X3B1YnRhYmxlcyA9IE5J TDsKIAkJTGlzdAkgICAqc2NoZW1haWRsaXN0ID0gTklMOwogCQlPaWQJCQlwdWJpZCA9IHB1YmZv cm0tPm9pZDsKIAogCQlPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3Rz LCBwc3RhdGUsICZyZWxhdGlvbnMsCi0JCQkJCQkJCSAgICZleGNlcHRyZWxhdGlvbnMsICZzY2hl bWFpZGxpc3QpOworCQkJCQkJCQkgICAmZXhjZXB0X3B1YnRhYmxlcywgJnNjaGVtYWlkbGlzdCk7 CiAKIAkJQ2hlY2tBbHRlclB1YmxpY2F0aW9uKHN0bXQsIHR1cCwgcmVsYXRpb25zLCBzY2hlbWFp ZGxpc3QpOwogCkBAIC0xNzExLDcgKzE3ODYsNyBAQCBBbHRlclB1YmxpY2F0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkJCWVycm1zZygicHVi bGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJCSAgIHN0bXQtPnB1Ym5hbWUp KTsKIAotCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNhdChyZWxhdGlvbnMsIGV4Y2VwdHJlbGF0aW9u cyk7CisJCXJlbGF0aW9ucyA9IGxpc3RfY29uY2F0KHJlbGF0aW9ucywgZXhjZXB0X3B1YnRhYmxl cyk7CiAJCUFsdGVyUHVibGljYXRpb25UYWJsZXMoc3RtdCwgdHVwLCByZWxhdGlvbnMsIHBzdGF0 ZS0+cF9zb3VyY2V0ZXh0LAogCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwpOwogCQlBbHRl clB1YmxpY2F0aW9uU2NoZW1hcyhzdG10LCB0dXAsIHNjaGVtYWlkbGlzdCk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpp bmRleCBmZjRlMTM4OGM1NS4uNzE3ZTAzYWFjN2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNTgsNiArNTgs NyBAQAogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVG dW5jcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXIuaCIKKyNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdGV0aW1lLmgiCiAjaW5jbHVkZSAidXRpbHMveG1s LmgiCiAKQEAgLTExMjcyLDcgKzExMjczLDcgQEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JF R0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogICogcHViX29i aiBpcyBvbmUgb2Y6CiAgKgogICoJCVRBQkxFIHRhYmxlIFssIC4uLl0KLSAqCQlUQUJMRVMgSU4g U0NIRU1BIHNjaGVtYSBbLCAuLi5dCisgKgkJVEFCTEVTIElOIFNDSEVNQSBzY2hlbWEgW0VYQ0VQ VCAoVEFCTEUgdGFibGUgWywgLi4uXSApXSBbLCAuLi5dCiAgKgogICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLwogCkBAIC0xMTMzMiwyMyArMTEzMzMsMjYgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJ CQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKIAkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNs YXVzZSA9ICQ0OwogCQkJCX0KLQkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElkCisJCQl8IFRB QkxFUyBJTl9QIFNDSEVNQSBDb2xJZCBvcHRfcHViX2V4Y2VwdF9jbGF1c2UKIAkJCQl7CiAJCQkJ CSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUg PSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NIRU1BOwogCQkJCQkkJC0+bmFtZSA9ICQ0Owor CQkJCQkkJC0+ZXhjZXB0X3RhYmxlcyA9ICQ1OwogCQkJCQkkJC0+bG9jYXRpb24gPSBANDsKIAkJ CQl9Ci0JCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBDVVJSRU5UX1NDSEVNQQorCQkJfCBUQUJMRVMg SU5fUCBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEgb3B0X3B1Yl9leGNlcHRfY2xhdXNlCiAJCQkJewog CQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0 eXBlID0gUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX0NVUl9TQ0hFTUE7CisJCQkJCSQkLT5leGNl cHRfdGFibGVzID0gJDU7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEA0OwogCQkJCX0KLQkJCXwgQ29s SWQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQl8IENvbElkIG9wdF9jb2x1bW5f bGlzdCBPcHRXaGVyZUNsYXVzZSBvcHRfcHViX2V4Y2VwdF9jbGF1c2UKIAkJCQl7CiAJCQkJCSQk ID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQ VUJMSUNBVElPTk9CSl9DT05USU5VQVRJT047CisJCQkJCSQkLT5leGNlcHRfdGFibGVzID0gJDQ7 CiAJCQkJCS8qCiAJCQkJCSAqIElmIGVpdGhlciBhIHJvdyBmaWx0ZXIgb3IgY29sdW1uIGxpc3Qg aXMgc3BlY2lmaWVkLCBjcmVhdGUKIAkJCQkJICogYSBQdWJsaWNhdGlvblRhYmxlIG9iamVjdC4K QEAgLTExMzkyLDEwICsxMTM5NiwxMSBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCSQkLT5w dWJ0YWJsZS0+Y29sdW1ucyA9ICQyOwogCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0g JDM7CiAJCQkJfQotCQkJfCBDVVJSRU5UX1NDSEVNQQorCQkJfCBDVVJSRU5UX1NDSEVNQSBvcHRf cHViX2V4Y2VwdF9jbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25P YmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9DT05USU5VQVRJ T047CisJCQkJCSQkLT5leGNlcHRfdGFibGVzID0gJDI7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAx OwogCQkJCX0KIAkJCQk7CkBAIC0yMDc4NCw2ICsyMDc4OSw4IEBAIHByZXByb2Nlc3NfcHViX2Fs bF9vYmp0eXBlX2xpc3QoTGlzdCAqYWxsX29iamVjdHNfbGlzdCwgTGlzdCAqKnB1Ym9iamVjdHMs CiAvKgogICogUHJvY2VzcyBwdWJvYmpzcGVjX2xpc3QgdG8gY2hlY2sgZm9yIGVycm9ycyBpbiBh bnkgb2YgdGhlIG9iamVjdHMgYW5kCiAgKiBjb252ZXJ0IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVB VElPTiBpbnRvIGFwcHJvcHJpYXRlIFB1YmxpY2F0aW9uT2JqU3BlY1R5cGUuCisgKiBBbHNvIGZs YXR0ZW5zIGV4Y2VwdF90YWJsZXMgZnJvbSBUQUJMRVMgSU4gU0NIRU1BIG5vZGVzIGludG8gdGhl IGxpc3Qgc28KKyAqIHRoYXQgT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoKSBzZWVzIHRoZW0g YXMgdG9wLWxldmVsIEVYQ0VQVF9UQUJMRSBlbnRyaWVzLgogICovCiBzdGF0aWMgdm9pZAogcHJl cHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3Qg eXlzY2FubmVyKQpAQCAtMjA4MTIsNiArMjA4MTksMTMgQEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlz dChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogCiAJCWlm IChwdWJvYmotPnB1Ym9ianR5cGUgPT0gUFVCTElDQVRJT05PQkpfVEFCTEUpCiAJCXsKKwkJCS8q IEVYQ0VQVCBpcyBub3QgdmFsaWQgZm9yIHRhYmxlIG9iamVjdHMgKi8KKwkJCWlmIChwdWJvYmot PmV4Y2VwdF90YWJsZXMgIT0gTklMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCWVycm1zZygiRVhDRVBUIGlzIG5vdCBhbGxv d2VkIGZvciBUQUJMRSBwdWJsaWNhdGlvbiBvYmplY3RzIiksCisJCQkJCQlwYXJzZXJfZXJycG9z aXRpb24ocHVib2JqLT5sb2NhdGlvbikpOworCiAJCQkvKiByZWxhdGlvbiBuYW1lIG9yIHB1YnRh YmxlIG11c3QgYmUgc2V0IGZvciB0aGlzIHR5cGUgb2Ygb2JqZWN0ICovCiAJCQlpZiAoIXB1Ym9i ai0+bmFtZSAmJiAhcHVib2JqLT5wdWJ0YWJsZSkKIAkJCQllcmVwb3J0KEVSUk9SLApAQCAtMjA4 NjAsNiArMjA4NzQsMzcgQEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVj X2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCiAJCQkJCQllcnJtc2coImludmFsaWQgc2NoZW1hIG5hbWUiKSwKIAkJCQkJ CXBhcnNlcl9lcnJwb3NpdGlvbihwdWJvYmotPmxvY2F0aW9uKSk7CisKKwkJCS8qCisJCQkgKiBG b3IgVEFCTEVTX0lOX1NDSEVNQSwgcXVhbGlmeSB1bnF1YWxpZmllZCBFWENFUFQgdGFibGUgbmFt ZXMKKwkJCSAqIHdpdGggdGhlIHBhcmVudCBzY2hlbWEgYW5kIHJlamVjdCBjcm9zcy1zY2hlbWEg ZW50cmllcyBhdCBwYXJzZQorCQkJICogdGltZSwgdGhlbiBmbGF0dGVuIGludG8gdGhlIHRvcC1s ZXZlbCBsaXN0LgorCQkJICoKKwkJCSAqIEZvciBUQUJMRVNfSU5fQ1VSX1NDSEVNQSB0aGUgc2No ZW1hIG5hbWUgaXMgbm90IHlldCBrbm93biwgc28KKwkJCSAqIHNraXAgYm90aCBzdGVwcyBoZXJl OyBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcygpIHdpbGwKKwkJCSAqIHF1YWxpZnkgbmFtZXMg YW5kIHZhbGlkYXRlIHNjaGVtYSBtZW1iZXJzaGlwIGF0IGV4ZWN1dGlvbiB0aW1lLgorCQkJICov CisJCQlpZiAocHVib2JqLT5wdWJvYmp0eXBlID09IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9T Q0hFTUEpCisJCQl7CisJCQkJZm9yZWFjaF9wdHIoUHVibGljYXRpb25PYmpTcGVjLCBlb2JqLCBw dWJvYmotPmV4Y2VwdF90YWJsZXMpCisJCQkJeworCQkJCQljb25zdCBjaGFyICplb2JqX3NjaGVt YW5hbWUgPSBlb2JqLT5wdWJ0YWJsZS0+cmVsYXRpb24tPnNjaGVtYW5hbWU7CisJCQkJCWNvbnN0 IGNoYXIgKmVvYmpfcmVsbmFtZSA9IGVvYmotPnB1YnRhYmxlLT5yZWxhdGlvbi0+cmVsbmFtZTsK KworCQkJCQlpZiAoZW9ial9zY2hlbWFuYW1lID09IE5VTEwpCisJCQkJCQllb2JqLT5wdWJ0YWJs ZS0+cmVsYXRpb24tPnNjaGVtYW5hbWUgPSBwdWJvYmotPm5hbWU7CisJCQkJCWVsc2UgaWYgKHN0 cmNtcChlb2JqX3NjaGVtYW5hbWUsIHB1Ym9iai0+bmFtZSkgIT0gMCkKKwkJCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9O KSwKKwkJCQkJCQkJZXJybXNnKCJ0YWJsZSBcIiVzXCIgaW4gRVhDRVBUIGNsYXVzZSBkb2VzIG5v dCBiZWxvbmcgdG8gc2NoZW1hIFwiJXNcIiIsCisJCQkJCQkJCQkgICBxdW90ZV9xdWFsaWZpZWRf aWRlbnRpZmllcihlb2JqX3NjaGVtYW5hbWUsIGVvYmpfcmVsbmFtZSksCisJCQkJCQkJCQkgICBw dWJvYmotPm5hbWUpLAorCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oZW9iai0+bG9jYXRpb24p KTsKKwkJCQl9CisJCQkJcHVib2Jqc3BlY19saXN0ID0gbGlzdF9jb25jYXQocHVib2Jqc3BlY19s aXN0LCBwdWJvYmotPmV4Y2VwdF90YWJsZXMpOworCQkJCXB1Ym9iai0+ZXhjZXB0X3RhYmxlcyA9 IE5JTDsKKwkJCX0KKwkJCS8qIEZvciBUQUJMRVNfSU5fQ1VSX1NDSEVNQTogbGVhdmUgZXhjZXB0 X3RhYmxlcyBmb3IgZXhlY3V0aW9uIHRpbWUgKi8KIAkJfQogCiAJCXByZXZvYmp0eXBlID0gcHVi b2JqLT5wdWJvYmp0eXBlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdv dXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0 cHV0LmMKaW5kZXggNGVjZmNiZmY3YWIuLjdlZTg0ZWMxYzgzIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTIwOTcsNiArMjA5Nyw3IEBAIGdldF9y ZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkg KiBhcmUgYWJzb3JiZWQgd2hpbGUgZGVjb2RpbmcgV0FMLgogCQkgKi8KIAkJTGlzdAkgICAqc2No ZW1hUHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYUlkKTsKKwkJTGlzdAkgICAq ZXhjZXB0X3B1YmlkczsKIAkJTGlzdENlbGwgICAqbGM7CiAJCU9pZAkJCXB1Ymxpc2hfYXNfcmVs aWQgPSByZWxpZDsKIAkJaW50CQkJcHVibGlzaF9hbmNlc3Rvcl9sZXZlbCA9IDA7CkBAIC0yMTA0 LDYgKzIxMDUsMjggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVs YXRpb24gcmVsYXRpb24pCiAJCWNoYXIJCXJlbGtpbmQgPSBnZXRfcmVsX3JlbGtpbmQocmVsaWQp OwogCQlMaXN0CSAgICpyZWxfcHVibGljYXRpb25zID0gTklMOwogCisJCS8qCisJCSAqIEZvciB0 aGUgc2NoZW1hIEVYQ0VQVCBjaGVjaywgd2UgbXVzdCBsb29rIHVwIHRoZSB0b3AtbW9zdCBhbmNl c3RvcgorCQkgKiByYXRoZXIgdGhhbiB0aGUgcmVsYXRpb24gaXRzZWxmLiAgY2hlY2tfcHVibGlj YXRpb25fYWRkX3JlbGF0aW9uKCkKKwkJICogcHJldmVudHMgaW5kaXZpZHVhbCBwYXJ0aXRpb25z IGZyb20gYXBwZWFyaW5nIGluIHRoZSBFWENFUFQgY2xhdXNlLAorCQkgKiBzbyBvbmx5IGEgcm9v dCAobm9uLXBhcnRpdGlvbikgdGFibGUgY2FuIGhhdmUgcHJleGNlcHQgPSB0cnVlLgorCQkgKiBV c2luZyB0aGUgcGFydGl0aW9uJ3Mgb3duIE9JRCB3b3VsZCBhbHdheXMgcmV0dXJuIE5JTCBhbmQg bWlzcyB0aGUKKwkJICogZXhjbHVzaW9uLgorCQkgKi8KKwkJT2lkCQkJcm9vdF9yZWxpZDsKKwor CQlpZiAoYW1fcGFydGl0aW9uKQorCQl7CisJCQlMaXN0CSAgICphbmNlc3RvcnMgPSBnZXRfcGFy dGl0aW9uX2FuY2VzdG9ycyhyZWxpZCk7CisKKwkJCXJvb3RfcmVsaWQgPSBsbGFzdF9vaWQoYW5j ZXN0b3JzKTsKKwkJCWxpc3RfZnJlZShhbmNlc3RvcnMpOworCQl9CisJCWVsc2UKKwkJCXJvb3Rf cmVsaWQgPSByZWxpZDsKKworCQlleGNlcHRfcHViaWRzID0gR2V0UmVsYXRpb25FeGNsdWRlZFB1 YmxpY2F0aW9ucyhyb290X3JlbGlkKTsKKwogCQkvKiBSZWxvYWQgcHVibGljYXRpb25zIGlmIG5l ZWRlZCBiZWZvcmUgdXNlLiAqLwogCQlpZiAoIXB1YmxpY2F0aW9uc192YWxpZCkKIAkJewpAQCAt MjI2Nyw3ICsyMjkwLDggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwg UmVsYXRpb24gcmVsYXRpb24pCiAKIAkJCQkJYW5jZXN0b3IgPSBHZXRUb3BNb3N0QW5jZXN0b3JJ blB1YmxpY2F0aW9uKHB1Yi0+b2lkLAogCQkJCQkJCQkJCQkJCQkJICAgYW5jZXN0b3JzLAotCQkJ CQkJCQkJCQkJCQkJICAgJmxldmVsKTsKKwkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCwKKwkJCQkJ CQkJCQkJCQkJCSAgIGV4Y2VwdF9wdWJpZHMpOwogCiAJCQkJCWlmIChhbmNlc3RvciAhPSBJbnZh bGlkT2lkKQogCQkJCQl7CkBAIC0yMjgxLDcgKzIzMDUsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnko UEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJCQl9CiAKIAkJCQlpZiAo bGlzdF9tZW1iZXJfb2lkKHB1YmlkcywgcHViLT5vaWQpIHx8Ci0JCQkJCWxpc3RfbWVtYmVyX29p ZChzY2hlbWFQdWJpZHMsIHB1Yi0+b2lkKSB8fAorCQkJCQkobGlzdF9tZW1iZXJfb2lkKHNjaGVt YVB1YmlkcywgcHViLT5vaWQpICYmCisJCQkJCSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdF9wdWJp ZHMsIHB1Yi0+b2lkKSkgfHwKIAkJCQkJYW5jZXN0b3JfcHVibGlzaGVkKQogCQkJCQlwdWJsaXNo ID0gdHJ1ZTsKIAkJCX0KQEAgLTIzNjAsNiArMjM4NSw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQ R091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCWxpc3RfZnJlZShwdWJp ZHMpOwogCQlsaXN0X2ZyZWUoc2NoZW1hUHViaWRzKTsKKwkJbGlzdF9mcmVlKGV4Y2VwdF9wdWJp ZHMpOwogCQlsaXN0X2ZyZWUocmVsX3B1YmxpY2F0aW9ucyk7CiAKIAkJZW50cnktPnJlcGxpY2F0 ZV92YWxpZCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGUxNDQ5NjU0Zjk2Li5lNWIxYTcwZTA1ZSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKQEAgLTcwMzgsNiArNzAzOCwyNCBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBj aGFyICpwYXR0ZXJuKQogCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1Ziwg XygiVGFibGVzIGZyb20gc2NoZW1hczoiKSwKIAkJCQkJCQkJCQkJCXRydWUsICZjb250KSkKIAkJ CQkJZ290byBlcnJvcl9yZXR1cm47CisKKwkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDAp CisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBHZXQgdGFibGVzIGluIHRoZSBFWENFUFQgY2xhdXNl IGZvciB0aGlzIHNjaGVtYQorCQkJCQkgKiBwdWJsaWNhdGlvbi4KKwkJCQkJICovCisJCQkJCXBy aW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJCQkgICJTRUxFQ1QgY29uY2F0KGMucmVsbmFt ZXNwYWNlOjpyZWduYW1lc3BhY2UsICcuJywgYy5yZWxuYW1lKVxuIgorCQkJCQkJCQkJICAiRlJP TSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNcbiIKKwkJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKKwkJCQkJ CQkJCSAgIldIRVJFIHByLnBycHViaWQgPSAnJXMnXG4iCisJCQkJCQkJCQkgICIgIEFORCBwci5w cmV4Y2VwdFxuIgorCQkJCQkJCQkJICAiT1JERVIgQlkgMSIsIHB1YmlkKTsKKwkJCQkJaWYgKCFh ZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJFeGNlcHQgdGFibGVzOiIpLAorCQkJ CQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOworCQkJCX0K IAkJCX0KIAkJfQogCQllbHNlCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZGU1NDdhOGNiMzcu LjUzYmI3Yzg2NzliIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMK KysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMDY1LDYgKzEwNjUsMjQg QEAgc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl90cmlnZ2VyX29mX3RhYmxlID0g ewogIlNFTEVDVCBuc3BuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgIlwKICIgV0hF UkUgbnNwbmFtZSBMSUtFICclcyciCiAKKyNkZWZpbmUgUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVz X2luX3NjaGVtYSBcCisiU0VMRUNUIG4ubnNwbmFtZSB8fCAnLicgfHwgYy5yZWxuYW1lICJcCisi ICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYyAiXAorIiAgICAgICBKT0lOIHBnX2NhdGFsb2cu cGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSBjLnJlbG5hbWVzcGFjZSAiXAorIiBXSEVSRSBjLnJl bGtpbmQgSU4gKCIgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUkVMQVRJT04pICIsICIgXAorCQkJCQkJ Q3BwQXNTdHJpbmcyKFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpICIpICJcCisiICAgQU5EIChu Lm5zcG5hbWUgfHwgJy4nIHx8IGMucmVsbmFtZSkgTElLRSAnJXMnICJcCisiICAgQU5EIG4ubnNw bmFtZSA9ICclcyciCisKKyNkZWZpbmUgUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2luX2N1cnJl bnRfc2NoZW1hIFwKKyJTRUxFQ1QgYy5yZWxuYW1lICJcCisiICBGUk9NIHBnX2NhdGFsb2cucGdf Y2xhc3MgYyAiXAorIiAgICAgICBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5v aWQgPSBjLnJlbG5hbWVzcGFjZSAiXAorIiBXSEVSRSBjLnJlbGtpbmQgSU4gKCIgQ3BwQXNTdHJp bmcyKFJFTEtJTkRfUkVMQVRJT04pICIsICIgXAorCQkJCQkJQ3BwQXNTdHJpbmcyKFJFTEtJTkRf UEFSVElUSU9ORURfVEFCTEUpICIpICJcCisiICAgQU5EIGMucmVsbmFtZSBMSUtFICclcycgIlwK KyIgICBBTkQgbi5uc3BuYW1lID0gcGdfY2F0YWxvZy5jdXJyZW50X3NjaGVtYSgpIgorCiAvKiBV c2UgQ09NUExFVEVfV0lUSF9RVUVSWV9WRVJCQVRJTSB3aXRoIHRoZXNlIHF1ZXJpZXMgZm9yIEdV QyBuYW1lczogKi8KICNkZWZpbmUgUXVlcnlfZm9yX2xpc3Rfb2ZfYWx0ZXJfc3lzdGVtX3NldF92 YXJzIFwKICJTRUxFQ1QgcGdfY2F0YWxvZy5sb3dlcihuYW1lKSBGUk9NIHBnX2NhdGFsb2cucGdf c2V0dGluZ3MgIlwKQEAgLTM3ODcsOCArMzgwNSwyMSBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSF9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0 X29mX3NjaGVtYXMKIAkJCQkJCQkJICIgQU5EIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXFxfJSUn IiwKIAkJCQkJCQkJICJDVVJSRU5UX1NDSEVNQSIpOwotCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hF TUEiLCBNYXRjaEFueSkgJiYgKCFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkpCi0JCUNPTVBMRVRF X1dJVEgoIldJVEggKCIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSkg JiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRIKCJFWENFUFQgKCBU QUJMRSIsICJXSVRIICgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJ T04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnks ICJFWENFUFQiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCBUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNo ZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIsICJJ TiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIikpCisJCUNPTVBMRVRFX1dJVEgo IlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJGT1IiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsICJDVVJSRU5UX1NDSEVNQSIs ICJFWENFUFQiLCAiKCIsICJUQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1FVRVJZX1ZFUkJBVElN KFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9jdXJyZW50X3NjaGVtYSk7CisJZWxzZSBpZiAo TWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEVT IiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiKSkKKwl7 CisJCXNldF9jb21wbGV0aW9uX3JlZmVyZW5jZShwcmV2NF93ZCk7CisJCUNPTVBMRVRFX1dJVEhf UVVFUllfVkVSQkFUSU0oUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2luX3NjaGVtYSk7CisJfQor CWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9S IiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwgIlRB QkxFIiwgTWF0Y2hBbnlOKSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRF X1dJVEgoIikiKTsKIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFBVQkxJQ0FUSU9OIDxuYW1lPiBbLi4u XSBXSVRIIiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55TiwgIldJVEgiLCAiKCIpKQogCQlDT01QTEVURV9XSVRIKCJwdWJsaXNoIiwgInB1Ymxp c2hfZ2VuZXJhdGVkX2NvbHVtbnMiLCAicHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QiKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAppbmRleCA4OWI0YmIxNGY2Mi4uNTNlM2Q3YzZm M2QgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKQEAgLTE5MSw3ICsxOTEsOCBA QCBleHRlcm4gTGlzdCAqR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3Vs dCwKIAkJCQkJCQkJCQkJUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAogCQkJCQkJCQkJ CQlPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9u KE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywKLQkJCQkJCQkJCQkJaW50ICphbmNlc3Rvcl9s ZXZlbCk7CisJCQkJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwsCisJCQkJCQkJCQkJCUxpc3Qg KmV4Y2VwdF9wdWJpZHMpOwogCiBleHRlcm4gYm9vbCBpc19wdWJsaXNoYWJsZV9yZWxhdGlvbihS ZWxhdGlvbiByZWwpOwogZXh0ZXJuIGJvb2wgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKE9pZCBwdWJp ZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggOTEzNzdhNmNkZTMuLjk4YTAzYzBlZWRhIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC00NDkzLDYgKzQ0OTMsOCBAQCB0eXBlZGVmIHN0cnVj dCBQdWJsaWNhdGlvbk9ialNwZWMKIAlQdWJsaWNhdGlvbk9ialNwZWNUeXBlIHB1Ym9ianR5cGU7 CS8qIHR5cGUgb2YgdGhpcyBwdWJsaWNhdGlvbiBvYmplY3QgKi8KIAljaGFyCSAgICpuYW1lOwog CVB1YmxpY2F0aW9uVGFibGUgKnB1YnRhYmxlOworCUxpc3QJICAgKmV4Y2VwdF90YWJsZXM7CS8q IHRhYmxlcyBzcGVjaWZpZWQgaW4gdGhlIEVYQ0VQVCBjbGF1c2UgKGZvcgorCQkJCQkJCQkgKiBU QUJMRVMgSU4gU0NIRU1BKSAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRp b24sIG9yIC0xIGlmIHVua25vd24gKi8KIH0gUHVibGljYXRpb25PYmpTcGVjOwogCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CmluZGV4IDI5ZTU0YjIxNGEwLi42ZGY0 MmE2MGY5YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlv bi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAg LTI3MCw2ICsyNzAsMTIgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVz X2V4Y2VwdHRhYmxlMiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKHRlc3QKIEVSUk9SOiAgc3ludGF4 IGVycm9yIGF0IG9yIG5lYXIgInRlc3RwdWJfdGJsMSIKIExJTkUgMTogLi4uX2ZvcmFsbHRhYmxl c19leGNlcHR0YWJsZTIgRk9SIEFMTCBUQUJMRVMgRVhDRVBUICh0ZXN0cHViX3RiLi4uCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorLS0gZmFpbCAtIEVYQ0VQVCBpcyBub3QgYWxsb3dlZCBmb3IgRk9SIFRBQkxFIHB1YmxpY2F0 aW9ucworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2VycgorICAgIEZPUiBUQUJM RSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMiBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsMyk7 CitFUlJPUjogIEVYQ0VQVCBpcyBub3QgYWxsb3dlZCBmb3IgVEFCTEUgcHVibGljYXRpb24gb2Jq ZWN0cworTElORSAyOiAgICAgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMSwgdGVzdHB1Yl90YmwyIEVY Q0VQVCAoVEFCTEUgdGVzdHAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLS0gU0VU IEFMTCBUQUJMRVMvU0VRVUVOQ0VTCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KQEAgLTQ3MCw3ICs0NzYsMTAzIEBAIEhJTlQ6ICBDaGFuZ2UgdGhlIHB1Ymxp Y2F0aW9uJ3MgRVhDRVBUIGNsYXVzZSB1c2luZyBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIEFM CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogRFJPUCBUQUJMRSB0ZXN0cHViX3Jvb3QsIHRl c3RwdWJfcGFydDEsIHRhYl9tYWluOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViODsKLS0tLSBU ZXN0cyBmb3IgcHVibGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIEVYQ0VQVCB0ZXN0cyBmb3IgVEFCTEVTIElO IFNDSEVNQQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CistLSBDcmVhdGUgdGFibGVzIGluIHB1 Yl90ZXN0IGZvciB0aGVzZSB0ZXN0cworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJs X3MxIChhIGludCBwcmltYXJ5IGtleSwgYiB0ZXh0KTsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50 ZXN0cHViX3RibF9zMiAoeCBpbnQgcHJpbWFyeSBrZXksIHkgdGV4dCk7CistLSBDcmVhdGUgc2Ft ZS1uYW1lZCB0YWJsZXMgaW4gcHVibGljIHRvIHZlcmlmeSB1bnF1YWxpZmllZCBFWENFUFQgZW50 cmllcworLS0gYXJlIHF1YWxpZmllZCB3aXRoIHRoZSBuYW1lZCBzY2hlbWEsIG5vdCBwdWJsaWMK K0NSRUFURSBUQUJMRSB0ZXN0cHViX25vcGsgKGZvbyBpbnQsIGJhciBpbnQpOworQ1JFQVRFIFRB QkxFIHRlc3RwdWJfdGJsX3MxIChhIGludCBwcmltYXJ5IGtleSwgYiB0ZXh0KTsKKy0tIEJhc2lj OiBleGNsdWRlIG9uZSB0YWJsZSBmcm9tIGEgc2NoZW1hIHB1YmxpY2F0aW9uCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1B IHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworXGRScCsg dGVzdHB1Yl9zY2hlbWFfZXhjZXB0MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MQor ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwg SW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVt bnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAg ICAgICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAicHViX3Rlc3Qi CitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKKworLS0gRXhj bHVkZSBtdWx0aXBsZSB0YWJsZXMgdXNpbmcgdW5xdWFsaWZpZWQgbmFtZXM7IHNhbWUtbmFtZWQg dGFibGVzIGV4aXN0IGluCistLSBwdWJsaWMgdG8gY29uZmlybSB1bnF1YWxpZmllZCBuYW1lcyBy ZXNvbHZlIHRvIHB1Yl90ZXN0LCBub3QgcHVibGljCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9zY2hlbWFfZXhjZXB0MgorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQ VCAoVEFCTEUgdGVzdHB1Yl9ub3BrLCB0ZXN0cHViX3RibF9zMSk7CitcZFJwKyB0ZXN0cHViX3Nj aGVtYV9leGNlcHQyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3NjaGVtYV9leGNlcHQyCisgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSBy b290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYg ICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIKK0V4Y2VwdCB0 YWJsZXM6CisgICAgInB1Yl90ZXN0LnRlc3RwdWJfbm9wayIKKyAgICAicHViX3Rlc3QudGVzdHB1 Yl90YmxfczEiCisKKy0tIGZhaWw6IEVYQ0VQVCB0YWJsZSBiZWxvbmdzIHRvIGEgZGlmZmVyZW50 IHNjaGVtYQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X3dyb25nc2NoZW1hCisg ICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVz dHB1Yl90YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1YmxpYy50ZXN0cHViX3RibDEiIGluIEVYQ0VQ VCBjbGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAicHViX3Rlc3QiCitMSU5FIDI6ICAg ICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0 cC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCistLSBmYWlsOiBjcm9zcy1zY2hlbWEgRVhDRVBUIG5vdCBhbGxvd2VkOyBlYWNoIEVY Q0VQVCBpcyBib3VuZCB0byBpdHMgaW1tZWRpYXRlIHNjaGVtYQorQ1JFQVRFIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZXhjZXB0X2Nyb3Nzc2NoZW1hCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVi X3Rlc3QsIHB1YmxpYyBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJs aWMudGVzdHB1Yl90YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3Mx IiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0byBzY2hlbWEgInB1YmxpYyIKK0xJ TkUgMjogLi4uUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0LCBwdWJsaWMgRVhDRVBUIChUQUJM RSBwdWJfdGVzdC50Li4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorLS0gTXVsdGlwbGUgc2NoZW1hcyBlYWNoIHdpdGggdGhl aXIgb3duIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9l eGNlcHRfbXVsdGkKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKSwKKyAgICAgICAgICAgICAgICAgIHB1YmxpYyBF WENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsMSk7CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9leGNlcHRf bXVsdGkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aQorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8 IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAg ICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAicHViX3Rlc3QiCisgICAgInB1YmxpYyIK K0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIgorICAgICJwdWJs aWMudGVzdHB1Yl90YmwxIgorCistLSBmYWlsOiB0YWJsZSBhcHBlYXJzIGluIGJvdGggdGhlIGV4 cGxpY2l0IHRhYmxlIGxpc3QgYW5kIHRoZSBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1Yl9leGNlcHRfY29uZmxpY3QKKyAgICBGT1IgVEFCTEUgcHViX3Rlc3QudGVzdHB1 Yl90YmxfczEsIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVz dC50ZXN0cHViX3RibF9zMSk7CitFUlJPUjogIHRhYmxlICJwdWJfdGVzdC50ZXN0cHViX3RibF9z MSIgY2Fubm90IGFwcGVhciBpbiBib3RoIHRoZSB0YWJsZSBsaXN0IGFuZCB0aGUgRVhDRVBUIGNs YXVzZQorLS0gZmFpbDogbm9uZXhpc3RlbnQgdGFibGUgaW4gRVhDRVBUIGNsYXVzZQorQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X25vcmVsCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hF TUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC5ub25leGlzdGVudF90YWJsZSk7CitF UlJPUjogIHJlbGF0aW9uICJwdWJfdGVzdC5ub25leGlzdGVudF90YWJsZSIgZG9lcyBub3QgZXhp c3QKKy0tIGZhaWw6IHBhcnRpdGlvbiBjYW5ub3QgYXBwZWFyIGluIEVYQ0VQVCBjbGF1c2U7IG9u bHkgcm9vdCB0YWJsZXMgYXJlIGFsbG93ZWQKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHVi X3BhcnRlZF9zIChhIGludCkgUEFSVElUSU9OIEJZIExJU1QgKGEpOworQ1JFQVRFIFRBQkxFIHB1 Yl90ZXN0LnRlc3RwdWJfcGFydF9zIFBBUlRJVElPTiBPRiBwdWJfdGVzdC50ZXN0cHViX3BhcnRl ZF9zIEZPUiBWQUxVRVMgSU4gKDEpOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0 X3BhcnRpdGlvbgorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFC TEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3MpOworRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSByZWxh dGlvbiAicHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3MiIGluIHRoZSBwdWJsaWNhdGlvbiBFWENFUFQg Y2xhdXNlCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBpbmRp dmlkdWFsIHBhcnRpdGlvbnMuCistLSBmYWlsOiBUQUJMRSBrZXl3b3JkIGlzIHJlcXVpcmVkIGZv ciB0aGUgZmlyc3QgZW50cnkgaW4gdGhlIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViX2V4Y2VwdF9ub2t3CisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Qg RVhDRVBUICh0ZXN0cHViX25vcGspOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAi dGVzdHB1Yl9ub3BrIgorTElORSAyOiAgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Qg RVhDRVBUICh0ZXN0cHViX25vcGspOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCistLSBDbGVhbnVwCitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2Vz OworRFJPUCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgcHViX3Rlc3QudGVzdHB1Yl90 YmxfczI7CitEUk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgQ0FTQ0FERTsKK0RS T1AgVEFCTEUgdGVzdHB1Yl9ub3BrLCB0ZXN0cHViX3RibF9zMTsKK0RST1AgUFVCTElDQVRJT04g dGVzdHB1Yl9zY2hlbWFfZXhjZXB0MSwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MiwgdGVzdHB1Yl9z Y2hlbWFfZXhjZXB0X211bHRpOworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCistLSBUZXN0cyBmb3IgcHVibGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIENSRUFURSBTRVFVRU5D RSByZWdyZXNzX3B1Yl9zZXEwOwogQ1JFQVRFIFNFUVVFTkNFIHB1Yl90ZXN0LnJlZ3Jlc3NfcHVi X3NlcTE7CiAtLSBGT1IgQUxMIFNFUVVFTkNFUwpAQCAtMTk1Myw2ICsyMDU1LDI3IEBAIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBBREQgVEFCTEVTIElOIFNDSEVNQSBmb28s IGJhciAoYSwgYik7CiBFUlJPUjogIGNvbHVtbiBzcGVjaWZpY2F0aW9uIG5vdCBhbGxvd2VkIGZv ciBzY2hlbWEKIExJTkUgMTogLi4uVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgQUREIFRBQkxFUyBJ TiBTQ0hFTUEgZm9vLCBiYXIgKGEsIGIpLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRVhDRVBUIGNsYXVzZSB3aXRo IENVUlJFTlRfU0NIRU1BOiBjcm9zcy1zY2hlbWEgZW50cnkgbXVzdCBiZSByZWplY3RlZAorU0VU IHNlYXJjaF9wYXRoID0gcHViX3Rlc3QxOworLS0gcXVhbGlmaWVkIG5hbWUgZnJvbSB3cm9uZyBz Y2hlbWEgLT4gZXJyb3IKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2N1cnNjaF9leGNlcHQg Rk9SIFRBQkxFUyBJTiBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEgRVhDRVBUIChUQUJMRSBwdWJfdGVz dDIudGJsMSk7CitFUlJPUjogIHRhYmxlICJwdWJfdGVzdDIudGJsMSIgaW4gRVhDRVBUIGNsYXVz ZSBkb2VzIG5vdCBiZWxvbmcgdG8gc2NoZW1hICJwdWJfdGVzdDEiCistLSB1bnF1YWxpZmllZCBu YW1lIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggY3VycmVudCBzY2hlbWEgKHB1Yl90ZXN0MS50 YmwpCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1Yl9jdXJzY2hfZXhjZXB0IEZPUiBUQUJMRVMgSU4gU0NIRU1BIENVUlJFTlRfU0NI RU1BIEVYQ0VQVCAoVEFCTEUgdGJsKTsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitcZFJw KyB0ZXN0cHViX2N1cnNjaF9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdAor ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwg SW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVt bnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAg ICAgICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAicHViX3Rlc3Qx IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rlc3QxLnRibCIKKworRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViX2N1cnNjaF9leGNlcHQ7CitSRVNFVCBzZWFyY2hfcGF0aDsKIC0tIGNsZWFudXAg cHViX3Rlc3QxIHNjaGVtYSBmb3IgaW52YWxpZGF0aW9uIHRlc3RzCiBBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViMl9mb3JzY2hlbWEgRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsKIERS T1AgUFVCTElDQVRJT04gdGVzdHB1YjNfZm9yc2NoZW1hLCB0ZXN0cHViNF9mb3JzY2hlbWEsIHRl c3RwdWI1X2ZvcnNjaGVtYSwgdGVzdHB1YjZfZm9yc2NoZW1hLCB0ZXN0cHViX2ZvcnRhYmxlOwpA QCAtMjMwNCw2ICsyNDI3LDcgQEAgRFJPUCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcl9k dW1teTsKIC0tIFRlc3QgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyh0ZXh0W10sIG9pZCkgZnVu Y3Rpb24KIENSRUFURSBTQ0hFTUEgZ3B0X3Rlc3Rfc2NoOwogQ1JFQVRFIFRBQkxFIGdwdF90ZXN0 X3NjaC50Ymxfc2NoIChpZCBpbnQpOworQ1JFQVRFIFRBQkxFIGdwdF90ZXN0X3NjaC50Ymxfc2No MiAoaWQgaW50KTsKIENSRUFURSBUQUJMRSB0Ymxfbm9ybWFsIChpZCBpbnQpOwogQ1JFQVRFIFRB QkxFIHRibF9wYXJlbnQgKGlkMSBpbnQsIGlkMiBpbnQsIGlkMyBpbnQpIFBBUlRJVElPTiBCWSBS QU5HRSAoaWQxKTsKIENSRUFURSBUQUJMRSB0YmxfcGFydDEgUEFSVElUSU9OIE9GIHRibF9wYXJl bnQgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMTApOwpAQCAtMjMxNCw2ICsyNDM4LDcgQEAgQ1JF QVRFIFBVQkxJQ0FUSU9OIHB1Yl9hbGxfbm9fdmlhcm9vdCBGT1IgQUxMIFRBQkxFUyBXSVRIIChw dWJsaXNoX3ZpYV9wYXJ0aXRpb24KIENSRUFURSBQVUJMSUNBVElPTiBwdWJfYWxsX2V4Y2VwdCBG T1IgQUxMIFRBQkxFUyBFWENFUFQgKFRBQkxFIHRibF9wYXJlbnQsIGdwdF90ZXN0X3NjaC50Ymxf c2NoKSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IHRydWUpOwogQ1JFQVRFIFBV QkxJQ0FUSU9OIHB1Yl9hbGxfZXhjZXB0X25vX3ZpYXJvb3QgRk9SIEFMTCBUQUJMRVMgRVhDRVBU IChUQUJMRSB0YmxfcGFyZW50LCBncHRfdGVzdF9zY2gudGJsX3NjaCkgV0lUSCAocHVibGlzaF92 aWFfcGFydGl0aW9uX3Jvb3QgPSBmYWxzZSk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX3NjaGVt YSBGT1IgVEFCTEVTIElOIFNDSEVNQSBncHRfdGVzdF9zY2g7CitDUkVBVEUgUFVCTElDQVRJT04g cHViX3NjaGVtYV9leGNlcHQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgZ3B0X3Rlc3Rfc2NoIEVYQ0VQ VCAoVEFCTEUgZ3B0X3Rlc3Rfc2NoLnRibF9zY2gpOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9u b3JtYWwgRk9SIFRBQkxFIHRibF9ub3JtYWwgV0hFUkUgKGlkIDwgMTApOwogQ1JFQVRFIFBVQkxJ Q0FUSU9OIHB1Yl9wYXJ0X2xlYWYgRk9SIFRBQkxFIHRibF9wYXJ0MSBXSVRIIChwdWJsaXNoX3Zp YV9wYXJ0aXRpb25fcm9vdCA9IGZhbHNlKTsKIENSRUFURSBQVUJMSUNBVElPTiBwdWJfcGFydF9w YXJlbnQgRk9SIFRBQkxFIHRibF9wYXJlbnQgKGlkMSwgaWQyKSBXSEVSRSAoaWQxID0gMTApIFdJ VEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZSk7CkBAIC0yNDY1LDYgKzI1OTAs MTggQEAgU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHViX2FsbF9leGNlcHRfbm9fdmlh cm9vdCddLCAndGJsX3BhcnQxJyk7IC0tIG5vIHIKIC0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0KICgwIHJvd3MpCiAKKy0tIHRlc3QgZm9yIEVYQ0VQVCBjbGF1c2Ugd2l0aCBzY2hl bWEgcHVibGljYXRpb24gKGJ1ZzogZXhjbHVkZWQgdGFibGUgd2FzIGluY29ycmVjdGx5IHJldHVy bmVkKQorU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHViX3NjaGVtYV9leGNlcHQnXSwg J2dwdF90ZXN0X3NjaC50Ymxfc2NoJyk7IC0tIG5vIHJlc3VsdCAoZXhjbHVkZWQpCisgcHVibmFt ZSB8IHJlbG5hbWUgfCBhdHRycyB8IHF1YWwgCistLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0r LS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfc2No ZW1hX2V4Y2VwdCddLCAnZ3B0X3Rlc3Rfc2NoLnRibF9zY2gyJyk7IC0tIG9uZSByb3cgKGluY2x1 ZGVkIHZpYSBzY2hlbWEpCisgICAgICBwdWJuYW1lICAgICAgfCByZWxuYW1lICB8IGF0dHJzIHwg cXVhbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLQorIHB1 Yl9zY2hlbWFfZXhjZXB0IHwgdGJsX3NjaDIgfCAxICAgICB8IAorKDEgcm93KQorCiAtLSB0d28g cm93cyB3aXRoIGRpZmZlcmVudCByb3cgZmlsdGVyCiBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFS UkFZWydwdWJfYWxsJywgJ3B1Yl9ub3JtYWwnXSwgJ3RibF9ub3JtYWwnKTsKICAgcHVibmFtZSAg IHwgIHJlbG5hbWUgICB8IGF0dHJzIHwgICBxdWFsICAgIApAQCAtMjUxNyw2ICsyNjU0LDcgQEAg RFJPUCBQVUJMSUNBVElPTiBwdWJfYWxsX25vX3ZpYXJvb3Q7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1 Yl9hbGxfZXhjZXB0OwogRFJPUCBQVUJMSUNBVElPTiBwdWJfYWxsX2V4Y2VwdF9ub192aWFyb290 OwogRFJPUCBQVUJMSUNBVElPTiBwdWJfc2NoZW1hOworRFJPUCBQVUJMSUNBVElPTiBwdWJfc2No ZW1hX2V4Y2VwdDsKIERST1AgUFVCTElDQVRJT04gcHViX25vcm1hbDsKIERST1AgUFVCTElDQVRJ T04gcHViX3BhcnRfbGVhZjsKIERST1AgUFVCTElDQVRJT04gcHViX3BhcnRfcGFyZW50OwpAQCAt MjUyNSw3ICsyNjYzLDkgQEAgRFJPUCBQVUJMSUNBVElPTiBwdWJfcGFydF9wYXJlbnRfY2hpbGQ7 CiBEUk9QIFZJRVcgZ3B0X3Rlc3RfdmlldzsKIERST1AgVEFCTEUgdGJsX25vcm1hbCwgdGJsX3Bh cmVudCwgdGJsX3BhcnQxOwogRFJPUCBTQ0hFTUEgZ3B0X3Rlc3Rfc2NoIENBU0NBREU7Ci1OT1RJ Q0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGdwdF90ZXN0X3NjaC50Ymxfc2NoCitOT1RJQ0U6 ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRl cyB0byB0YWJsZSBncHRfdGVzdF9zY2gudGJsX3NjaAorZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBn cHRfdGVzdF9zY2gudGJsX3NjaDIKIC0tIHN0YWdlIG9iamVjdHMgZm9yIHBnX2R1bXAgdGVzdHMK IENSRUFURSBTQ0hFTUEgcHVibWUgQ1JFQVRFIFRBQkxFIHQwIChjIGludCwgZCBpbnQpIENSRUFU RSBUQUJMRSB0MSAoYyBpbnQpOwogQ1JFQVRFIFNDSEVNQSBwdWJtZTIgQ1JFQVRFIFRBQkxFIHQw IChjIGludCwgZCBpbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGlj YXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDA0 MWUxNGE0ZGU2Li5iZDUyM2UzNzZiMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bApAQCAtMTIzLDYgKzEyMyw5IEBAIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRh Ymxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMCiBcZCB0ZXN0cHVi X3RibDEKIC0tIGZhaWwgLSBmaXJzdCB0YWJsZSBpbiB0aGUgRVhDRVBUIGxpc3Qgc2hvdWxkIHVz ZSBUQUJMRSBrZXl3b3JkCiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNf ZXhjZXB0dGFibGUyIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAodGVzdHB1Yl90YmwxLCB0ZXN0cHVi X3RibDIpOworLS0gZmFpbCAtIEVYQ0VQVCBpcyBub3QgYWxsb3dlZCBmb3IgRk9SIFRBQkxFIHB1 YmxpY2F0aW9ucworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2VycgorICAgIEZP UiBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMiBFWENFUFQgKFRBQkxFIHRlc3RwdWJf dGJsMyk7CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog LS0gU0VUIEFMTCBUQUJMRVMvU0VRVUVOQ0VTCkBAIC0yMjAsNyArMjIzLDcxIEBAIFJFU0VUIGNs aWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFRBQkxFIHRlc3RwdWJfcm9vdCwgdGVzdHB1Yl9wYXJ0 MSwgdGFiX21haW47CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWI4OwogCi0tLS0gVGVzdHMgZm9y IHB1YmxpY2F0aW9ucyB3aXRoIFNFUVVFTkNFUworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCistLSBFWENFUFQgdGVzdHMgZm9yIFRBQkxFUyBJTiBTQ0hFTUEK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU0VUIGNsaWVu dF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworLS0gQ3JlYXRlIHRhYmxlcyBpbiBwdWJfdGVzdCBm b3IgdGhlc2UgdGVzdHMKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSAoYSBp bnQgcHJpbWFyeSBrZXksIGIgdGV4dCk7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90 YmxfczIgKHggaW50IHByaW1hcnkga2V5LCB5IHRleHQpOworLS0gQ3JlYXRlIHNhbWUtbmFtZWQg dGFibGVzIGluIHB1YmxpYyB0byB2ZXJpZnkgdW5xdWFsaWZpZWQgRVhDRVBUIGVudHJpZXMKKy0t IGFyZSBxdWFsaWZpZWQgd2l0aCB0aGUgbmFtZWQgc2NoZW1hLCBub3QgcHVibGljCitDUkVBVEUg VEFCTEUgdGVzdHB1Yl9ub3BrIChmb28gaW50LCBiYXIgaW50KTsKK0NSRUFURSBUQUJMRSB0ZXN0 cHViX3RibF9zMSAoYSBpbnQgcHJpbWFyeSBrZXksIGIgdGV4dCk7CisKKy0tIEJhc2ljOiBleGNs dWRlIG9uZSB0YWJsZSBmcm9tIGEgc2NoZW1hIHB1YmxpY2F0aW9uCitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90 ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworXGRScCsgdGVzdHB1 Yl9zY2hlbWFfZXhjZXB0MQorCistLSBFeGNsdWRlIG11bHRpcGxlIHRhYmxlcyB1c2luZyB1bnF1 YWxpZmllZCBuYW1lczsgc2FtZS1uYW1lZCB0YWJsZXMgZXhpc3QgaW4KKy0tIHB1YmxpYyB0byBj b25maXJtIHVucXVhbGlmaWVkIG5hbWVzIHJlc29sdmUgdG8gcHViX3Rlc3QsIG5vdCBwdWJsaWMK K0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQyCisgICAgRk9SIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJf dGJsX3MxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIKKworLS0gZmFpbDogRVhDRVBU IHRhYmxlIGJlbG9uZ3MgdG8gYSBkaWZmZXJlbnQgc2NoZW1hCitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9leGNlcHRfd3JvbmdzY2hlbWEKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJf dGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0cHViX3RibDEpOworCistLSBmYWlsOiBjcm9z cy1zY2hlbWEgRVhDRVBUIG5vdCBhbGxvd2VkOyBlYWNoIEVYQ0VQVCBpcyBib3VuZCB0byBpdHMg aW1tZWRpYXRlIHNjaGVtYQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2Nyb3Nz c2NoZW1hCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QsIHB1YmxpYyBFWENFUFQg KFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJsaWMudGVzdHB1Yl90YmwxKTsKKwor LS0gTXVsdGlwbGUgc2NoZW1hcyBlYWNoIHdpdGggdGhlaXIgb3duIEVYQ0VQVCBjbGF1c2UKK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGkKKyAgICBGT1IgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJs X3MxKSwKKyAgICAgICAgICAgICAgICAgIHB1YmxpYyBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJs MSk7CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGkKKworLS0gZmFpbDogdGFibGUg YXBwZWFycyBpbiBib3RoIHRoZSBleHBsaWNpdCB0YWJsZSBsaXN0IGFuZCB0aGUgRVhDRVBUIGNs YXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2NvbmZsaWN0CisgICAgRk9S IFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0 IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworCistLSBmYWlsOiBub25l eGlzdGVudCB0YWJsZSBpbiBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9leGNlcHRfbm9yZWwKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQg KFRBQkxFIHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlKTsKKworLS0gZmFpbDogcGFydGl0aW9u IGNhbm5vdCBhcHBlYXIgaW4gRVhDRVBUIGNsYXVzZTsgb25seSByb290IHRhYmxlcyBhcmUgYWxs b3dlZAorQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgKGEgaW50KSBQQVJU SVRJT04gQlkgTElTVCAoYSk7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3Mg UEFSVElUSU9OIE9GIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgRk9SIFZBTFVFUyBJTiAoMSk7 CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfcGFydGl0aW9uCisgICAgRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3Bh cnRfcyk7CisKKy0tIGZhaWw6IFRBQkxFIGtleXdvcmQgaXMgcmVxdWlyZWQgZm9yIHRoZSBmaXJz dCBlbnRyeSBpbiB0aGUgRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJf ZXhjZXB0X25va3cKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRl c3RwdWJfbm9wayk7CisKKy0tIENsZWFudXAKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitE Uk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJfdGVzdC50ZXN0cHViX3RibF9z MjsKK0RST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBDQVNDQURFOworRFJPUCBU QUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJfdGJsX3MxOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX3NjaGVtYV9leGNlcHQxLCB0ZXN0cHViX3NjaGVtYV9leGNlcHQyLCB0ZXN0cHViX3NjaGVt YV9leGNlcHRfbXVsdGk7CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9ucyB3aXRoIFNFUVVFTkNFUworLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBDUkVBVEUgU0VRVUVOQ0Ug cmVncmVzc19wdWJfc2VxMDsKIENSRUFURSBTRVFVRU5DRSBwdWJfdGVzdC5yZWdyZXNzX3B1Yl9z ZXExOwogCkBAIC0xMTg5LDYgKzEyNTYsMTggQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFf Zm9yc2NoZW1hIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MSwgcHViX3Rlc3QxOwogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIEFERCBUQUJMRVMgSU4gU0NIRU1BIGZv byAoYSwgYik7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgQUREIFRBQkxF UyBJTiBTQ0hFTUEgZm9vLCBiYXIgKGEsIGIpOwogCistLSBFWENFUFQgY2xhdXNlIHdpdGggQ1VS UkVOVF9TQ0hFTUE6IGNyb3NzLXNjaGVtYSBlbnRyeSBtdXN0IGJlIHJlamVjdGVkCitTRVQgc2Vh cmNoX3BhdGggPSBwdWJfdGVzdDE7CistLSBxdWFsaWZpZWQgbmFtZSBmcm9tIHdyb25nIHNjaGVt YSAtPiBlcnJvcgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdCBGT1Ig VEFCTEVTIElOIFNDSEVNQSBDVVJSRU5UX1NDSEVNQSBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Mi50 YmwxKTsKKy0tIHVucXVhbGlmaWVkIG5hbWUgaW1wbGljaXRseSBxdWFsaWZpZWQgd2l0aCBjdXJy ZW50IHNjaGVtYSAocHViX3Rlc3QxLnRibCkKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VS Uk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2N1cnNjaF9leGNlcHQgRk9SIFRBQkxF UyBJTiBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEgRVhDRVBUIChUQUJMRSB0YmwpOworUkVTRVQgY2xp ZW50X21pbl9tZXNzYWdlczsKK1xkUnArIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdAorRFJPUCBQVUJM SUNBVElPTiB0ZXN0cHViX2N1cnNjaF9leGNlcHQ7CitSRVNFVCBzZWFyY2hfcGF0aDsKKwogLS0g Y2xlYW51cCBwdWJfdGVzdDEgc2NoZW1hIGZvciBpbnZhbGlkYXRpb24gdGVzdHMKIEFMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWIyX2ZvcnNjaGVtYSBEUk9QIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rl c3QxOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViM19mb3JzY2hlbWEsIHRlc3RwdWI0X2ZvcnNj aGVtYSwgdGVzdHB1YjVfZm9yc2NoZW1hLCB0ZXN0cHViNl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9y dGFibGU7CkBAIC0xNDQzLDYgKzE1MjIsNyBAQCBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyX2R1bW15OwogLS0gVGVzdCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKHRleHRbXSwg b2lkKSBmdW5jdGlvbgogQ1JFQVRFIFNDSEVNQSBncHRfdGVzdF9zY2g7CiBDUkVBVEUgVEFCTEUg Z3B0X3Rlc3Rfc2NoLnRibF9zY2ggKGlkIGludCk7CitDUkVBVEUgVEFCTEUgZ3B0X3Rlc3Rfc2No LnRibF9zY2gyIChpZCBpbnQpOwogQ1JFQVRFIFRBQkxFIHRibF9ub3JtYWwgKGlkIGludCk7CiBD UkVBVEUgVEFCTEUgdGJsX3BhcmVudCAoaWQxIGludCwgaWQyIGludCwgaWQzIGludCkgUEFSVElU SU9OIEJZIFJBTkdFIChpZDEpOwogQ1JFQVRFIFRBQkxFIHRibF9wYXJ0MSBQQVJUSVRJT04gT0Yg dGJsX3BhcmVudCBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CkBAIC0xNDU0LDYgKzE1MzQs NyBAQCBDUkVBVEUgUFVCTElDQVRJT04gcHViX2FsbF9ub192aWFyb290IEZPUiBBTEwgVEFCTEVT IFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbgogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9hbGxf ZXhjZXB0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAoVEFCTEUgdGJsX3BhcmVudCwgZ3B0X3Rlc3Rf c2NoLnRibF9zY2gpIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZSk7CiBD UkVBVEUgUFVCTElDQVRJT04gcHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdCBGT1IgQUxMIFRBQkxF UyBFWENFUFQgKFRBQkxFIHRibF9wYXJlbnQsIGdwdF90ZXN0X3NjaC50Ymxfc2NoKSBXSVRIIChw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZhbHNlKTsKIENSRUFURSBQVUJMSUNBVElPTiBw dWJfc2NoZW1hIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGdwdF90ZXN0X3NjaDsKK0NSRUFURSBQVUJM SUNBVElPTiBwdWJfc2NoZW1hX2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVNQSBncHRfdGVzdF9z Y2ggRVhDRVBUIChUQUJMRSBncHRfdGVzdF9zY2gudGJsX3NjaCk7CiBDUkVBVEUgUFVCTElDQVRJ T04gcHViX25vcm1hbCBGT1IgVEFCTEUgdGJsX25vcm1hbCBXSEVSRSAoaWQgPCAxMCk7CiBDUkVB VEUgUFVCTElDQVRJT04gcHViX3BhcnRfbGVhZiBGT1IgVEFCTEUgdGJsX3BhcnQxIFdJVEggKHB1 Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gZmFsc2UpOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1 Yl9wYXJ0X3BhcmVudCBGT1IgVEFCTEUgdGJsX3BhcmVudCAoaWQxLCBpZDIpIFdIRVJFIChpZDEg PSAxMCkgV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKTsKQEAgLTE1MTAs NiArMTU5MSwxMCBAQCBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfYWxsX2V4Y2Vw dF9ub192aWFyb290J10sICdncHRfdGVzdF9zY2gudGJsX3NjaAogU0VMRUNUICogRlJPTSB0ZXN0 X2dwdChBUlJBWVsncHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdCddLCAndGJsX3BhcmVudCcpOyAt LSBubyByZXN1bHQgKGV4Y2x1ZGVkKQogU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHVi X2FsbF9leGNlcHRfbm9fdmlhcm9vdCddLCAndGJsX3BhcnQxJyk7IC0tIG5vIHJlc3VsdAogCist LSB0ZXN0IGZvciBFWENFUFQgY2xhdXNlIHdpdGggc2NoZW1hIHB1YmxpY2F0aW9uIChidWc6IGV4 Y2x1ZGVkIHRhYmxlIHdhcyBpbmNvcnJlY3RseSByZXR1cm5lZCkKK1NFTEVDVCAqIEZST00gdGVz dF9ncHQoQVJSQVlbJ3B1Yl9zY2hlbWFfZXhjZXB0J10sICdncHRfdGVzdF9zY2gudGJsX3NjaCcp OyAtLSBubyByZXN1bHQgKGV4Y2x1ZGVkKQorU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsn cHViX3NjaGVtYV9leGNlcHQnXSwgJ2dwdF90ZXN0X3NjaC50Ymxfc2NoMicpOyAtLSBvbmUgcm93 IChpbmNsdWRlZCB2aWEgc2NoZW1hKQorCiAtLSB0d28gcm93cyB3aXRoIGRpZmZlcmVudCByb3cg ZmlsdGVyCiBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfYWxsJywgJ3B1Yl9ub3Jt YWwnXSwgJ3RibF9ub3JtYWwnKTsKIApAQCAtMTUzOCw2ICsxNjIzLDcgQEAgRFJPUCBQVUJMSUNB VElPTiBwdWJfYWxsX25vX3ZpYXJvb3Q7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9hbGxfZXhjZXB0 OwogRFJPUCBQVUJMSUNBVElPTiBwdWJfYWxsX2V4Y2VwdF9ub192aWFyb290OwogRFJPUCBQVUJM SUNBVElPTiBwdWJfc2NoZW1hOworRFJPUCBQVUJMSUNBVElPTiBwdWJfc2NoZW1hX2V4Y2VwdDsK IERST1AgUFVCTElDQVRJT04gcHViX25vcm1hbDsKIERST1AgUFVCTElDQVRJT04gcHViX3BhcnRf bGVhZjsKIERST1AgUFVCTElDQVRJT04gcHViX3BhcnRfcGFyZW50OwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzN19leGNlcHQucGwKaW5kZXggOGM1OGQyODJlZWUuLjE4YzdiMmMxZmNhIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCisrKyBiL3NyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwKQEAgLTI0LDE0ICsyNCwxNyBAQCBteSAkcmVz dWx0OwogCiBzdWIgdGVzdF9leGNlcHRfcm9vdF9wYXJ0aXRpb24KIHsKLQlteSAoJHB1YnZpYXJv b3QpID0gQF87CisJbXkgKCRwdWJ2aWFyb290LCAkcHVic3FsKSA9IEBfOworCSRwdWJzcWwgLy89 CisJICAiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBGT1IgQUxMIFRBQkxFUyBFWENF UFQgKFRBQkxFIHJvb3QxKSI7CisJJHB1YnNxbCAuPSAiIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290ID0gJHB1YnZpYXJvb3QpIjsKIAogCSMgSWYgdGhlIHJvb3QgcGFydGl0aW9uZWQg dGFibGUgaXMgaW4gdGhlIEVYQ0VQVCBjbGF1c2UsIGFsbCBpdHMKIAkjIHBhcnRpdGlvbnMgYXJl IGV4Y2x1ZGVkIGZyb20gcHVibGljYXRpb24sIHJlZ2FyZGxlc3Mgb2YgdGhlCiAJIyBwdWJsaXNo X3ZpYV9wYXJ0aXRpb25fcm9vdCBzZXR0aW5nLgogCSRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KAogCQkncG9zdGdyZXMnLCBxcSgKLQkJQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBG T1IgQUxMIFRBQkxFUyBFWENFUFQgKFRBQkxFIHJvb3QxKSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0 aXRpb25fcm9vdCA9ICRwdWJ2aWFyb290KTsKKwkJJHB1YnNxbDsKIAkJSU5TRVJUIElOVE8gcm9v dDEgVkFMVUVTICgxKSwgKDEwMSk7CiAJKSk7CiAJJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCkBAIC0yMjMsNiArMjI2LDEzMSBAQCAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoCiB0ZXN0X2V4Y2VwdF9yb290X3BhcnRpdGlvbignZmFsc2UnKTsKIHRlc3RfZXhjZXB0 X3Jvb3RfcGFydGl0aW9uKCd0cnVlJyk7CiAKKyMgU2FtZSB2YWxpZGF0aW9uIHVzaW5nIFRBQkxF UyBJTiBTQ0hFTUEgaW5zdGVhZCBvZiBGT1IgQUxMIFRBQkxFUy4KK215ICRzY2hlbWFfcHViID0K KyAgIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEg cHVibGljIEVYQ0VQVCAoVEFCTEUgcHVibGljLnJvb3QxKSI7Cit0ZXN0X2V4Y2VwdF9yb290X3Bh cnRpdGlvbignZmFsc2UnLCAkc2NoZW1hX3B1Yik7Cit0ZXN0X2V4Y2VwdF9yb290X3BhcnRpdGlv bigndHJ1ZScsICRzY2hlbWFfcHViKTsKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorIyBFWENFUFQgdGVzdCBjYXNlcyBmb3IgVEFCTEVTIElOIFNDSEVN QQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIENy ZWF0ZSBhIGRlZGljYXRlZCBzY2hlbWEgd2l0aCB0d28gdGFibGVzOiBvbmUgdG8gYmUgcHVibGlz aGVkIGFuZCBvbmUgdG8gYmUKKyMgZXhjbHVkZWQuICBBbHNvIGNyZWF0ZSBpbmhlcml0ZWQgdGFi bGVzIHRvIHZlcmlmeSBPTkxZIHNlbWFudGljcy4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBTQ0hFTUEgc2NoMTsKKwlDUkVBVEUgVEFCTEUg c2NoMS50YWJfcHVibGlzaGVkIEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSw1KSBBUyBhOwor CUNSRUFURSBUQUJMRSBzY2gxLnRhYl9leGNsdWRlZCBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVz KDEsNSkgQVMgYTsKKwlDUkVBVEUgVEFCTEUgc2NoMS5wYXJlbnQgKGEgaW50KTsKKwlDUkVBVEUg VEFCTEUgc2NoMS5jaGlsZCAoYiBpbnQpIElOSEVSSVRTIChzY2gxLnBhcmVudCk7CispKTsKKwor JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBT Q0hFTUEgc2NoMTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50YWJfcHVibGlzaGVkIChhIGludCk7CisJ Q1JFQVRFIFRBQkxFIHNjaDEudGFiX2V4Y2x1ZGVkIChhIGludCk7CisJQ1JFQVRFIFRBQkxFIHNj aDEucGFyZW50IChhIGludCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEuY2hpbGQgKGIgaW50KSBJTkhF UklUUyAoc2NoMS5wYXJlbnQpOworKSk7CisKKyMgQmFzaWMgdGVzdDogaW5pdGlhbCBzeW5jIHJl c3BlY3RzIEVYQ0VQVC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBQVUJMSUNBVElPTiBzY2hfcHViIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHNjaDEgRVhD RVBUIChUQUJMRSBzY2gxLnRhYl9leGNsdWRlZCkiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gc2NoX3N1YiBDT05ORUNU SU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHNjaF9wdWIiCispOworJG5vZGVf c3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAn c2NoX3N1YicpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX3B1Ymxpc2hlZCIpOwor aXMoJHJlc3VsdCwgcXEoNSksCisJJ1RBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBpbml0aWFsIHN5 bmMgY29waWVzIGluY2x1ZGVkIHRhYmxlJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFi X2V4Y2x1ZGVkIik7CitpcygkcmVzdWx0LCBxcSgwKSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENF UFQ6IGluaXRpYWwgc3luYyBza2lwcyBleGNsdWRlZCB0YWJsZScpOworCisjIERNTDogb25seSB0 aGUgaW5jbHVkZWQgdGFibGUgc2hvdWxkIGJlIHJlcGxpY2F0ZWQuCiskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYl9wdWJs aXNoZWQgVkFMVUVTICg2KTsKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYl9leGNsdWRlZCBWQUxVRVMg KDYpOworKSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3NjaF9zdWInKTsK KworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLnRhYl9wdWJsaXNoZWQiKTsKK2lzKCRyZXN1bHQs IHFxKDYpLAorCSdUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogRE1MIG9uIGluY2x1ZGVkIHRhYmxl IGlzIHJlcGxpY2F0ZWQnKTsKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfZXhjbHVkZWQi KTsKK2lzKCRyZXN1bHQsIHFxKDApLAorCSdUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogRE1MIG9u IGV4Y2x1ZGVkIHRhYmxlIGlzIG5vdCByZXBsaWNhdGVkJyk7CisKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gc2NoX3N1YicpOworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gc2No X3B1YicpOworCisjIEluaGVyaXRlZCB0YWJsZXM6IGV4Y2x1ZGluZyB0aGUgcGFyZW50ICh3aXRo b3V0IE9OTFkpIGFsc28gZXhjbHVkZXMgdGhlIGNoaWxkLgorJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHNjaF9wdWIgRk9SIFRBQkxF UyBJTiBTQ0hFTUEgc2NoMSBFWENFUFQgKFRBQkxFIHNjaDEucGFyZW50KSIKKyk7Ciskbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBz Y2hfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gc2NoX3B1 YiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9k ZV9wdWJsaXNoZXIsICdzY2hfc3ViJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHNjaDEuY2hpbGQgVkFMVUVTIChnZW5lcmF0ZV9zZXJp ZXMoMSw1KSwgZ2VuZXJhdGVfc2VyaWVzKDEsNSkpIgorKTsKKyRub2RlX3B1Ymxpc2hlci0+d2Fp dF9mb3JfY2F0Y2h1cCgnc2NoX3N1YicpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLmNoaWxk Iik7CitpcygkcmVzdWx0LCBxcSgwKSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IGV4Y2x1 ZGluZyBwYXJlbnQgKHdpdGhvdXQgT05MWSkgYWxzbyBleGNsdWRlcyBjaGlsZCcKKyk7CisKKyRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04g c2NoX3N1YicpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1Ag UFVCTElDQVRJT04gc2NoX3B1YicpOworCisjIFRlc3QgdGhhdCBFWENFUFQgKFRBQkxFIE9OTFkg cGFyZW50KSBleGNsdWRlcyBvbmx5IHRoZSBwYXJlbnQgaXRzZWxmLCBub3QgaXRzCisjIGNoaWxk LiAgVHJ1bmNhdGUgY2hpbGQgZmlyc3Qgc28gcm93cyBmcm9tIHRoZSBwcmV2aW91cyB0ZXN0IGFy ZSBub3QgY29waWVkIGJ5CisjIHRoZSBpbml0aWFsIHRhYmxlIHN5bmMgb2YgdGhlIG5leHQgc3Vi c2NyaXB0aW9uLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1RSVU5D QVRFIHNjaDEuY2hpbGQnKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAnVFJVTkNBVEUgc2NoMS5jaGlsZCcpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHNjaF9wdWIgRk9SIFRBQkxFUyBJTiBTQ0hF TUEgc2NoMSBFWENFUFQgKFRBQkxFIE9OTFkgc2NoMS5wYXJlbnQpIgorKTsKKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHNjaF9z dWIgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiBzY2hfcHViIgor KTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1 Ymxpc2hlciwgJ3NjaF9zdWInKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiSU5TRVJUIElOVE8gc2NoMS5jaGlsZCBWQUxVRVMgKGdlbmVyYXRlX3Nlcmllcygx LDUpLCBnZW5lcmF0ZV9zZXJpZXMoMSw1KSkiCispOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zv cl9jYXRjaHVwKCdzY2hfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEuY2hpbGQiKTsK K2lzKCRyZXN1bHQsIHFxKDUpLAorCSdUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogT05MWSBwYXJl bnQgaW4gRVhDRVBUIGRvZXMgbm90IGV4Y2x1ZGUgY2hpbGQnKTsKKworJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiBzY2hfc3ViJyk7Cisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiBz Y2hfcHViJyk7CisKKyMgQ2xlYW51cCBzY2hlbWEgdGFibGVzIGJlZm9yZSB0aGUgbXVsdGktcHVi bGljYXRpb24gc2VjdGlvbi4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICdEUk9QIFNDSEVNQSBzY2gxIENBU0NBREUnKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAnRFJPUCBTQ0hFTUEgc2NoMSBDQVNDQURFJyk7CisKICMgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICMgVGVzdCB3aGVuIGEgc3Vic2Ny aXB0aW9uIGlzIHN1YnNjcmliaW5nIHRvIG11bHRpcGxlIHB1YmxpY2F0aW9ucwogIyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjU0LDYgKzM4Miw3IEBA ICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAogCURST1AgUFVCTElDQVRJT04gdGFwX3B1YjI7 CiAJVFJVTkNBVEUgdGFiMTsKICkpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViJyk7CiAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcXEoVFJVTkNBVEUgdGFiMSkpOwogCiAjIE9LIHdoZW4gYSB0 YWJsZSBpcyBleGNsdWRlZCBieSBwdWIxIEVYQ0VQVCBjbGF1c2UsIGJ1dCBpdCBpcyBpbmNsdWRl ZCBieSBwdWIyCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --0000000000004d5e23065380257b Content-Type: application/octet-stream; name="v10-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Disposition: attachment; filename="v10-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq0umzqd1 RnJvbSBhMzRlOGEwYWMzNzdmYmUyN2FlYjQwY2NkNmQ1MDA0MWViMTkzNjVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBGcmksIDI5IE1heSAyMDI2IDIwOjA0OjU3ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTAgMi8zXSBBZGQgRVhDRVBUIHN1cHBvcnQgdG8gQUxURVIgUFVCTElDQVRJT04gQUREIFRBQkxF UyBJTgogU0NIRU1BCgpFeHRlbmQgdGhlIEVYQ0VQVCBjbGF1c2Ugc3VwcG9ydCB0byBhbGxvdyB0 YWJsZXMgdG8gYmUgZXhjbHVkZWQgd2hlbgphZGRpbmcgYSBzY2hlbWEgdG8gYSBwdWJsaWNhdGlv biB2aWEgQUxURVIgUFVCTElDQVRJT04gLi4uIEFERC4KClN5bnRheDoKICBBTFRFUiBQVUJMSUNB VElPTiBwdWIgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcyBFWENFUFQgKFRBQkxFIHMudDEpOwoKU2lu Y2UgcGdfZHVtcCB1c2VzIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBBREQsIHN1cHBvcnQgZm9yIGl0 IGlzCmluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9w dWJsaWNhdGlvbi5zZ21sICAgfCAgNDAgKysrKysrKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdf cHVibGljYXRpb24uYyAgICAgIHwgIDE5ICsrLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5jICAgIHwgMTA3ICsrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgIHwgIDMwICsrKysrLQogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgfCAgMjQgKysrKysKIHNyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgIHwgIDE3ICsrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IHwgIDMyICsrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgIHwgIDIwICsrKy0KIHNyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzN19leGNlcHQucGwgICAgIHwgIDMyICsrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgMzA2 IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbAppbmRleCBhYTMyYmIxNjllOS4uNzNmNjM3NWE2NmYgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTMxLDcgKzMxLDcgQEAgQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBSRU5BTUUgVE8gPHIKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4K IAogICAgIFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9hbmRfY29s dW1uczwvcmVwbGFjZWFibGU+IFssIC4uLiBdCi0gICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VS UkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQorICAgIFRBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlc19pbl9zY2hlbWE8L3JlcGxhY2VhYmxlPiBbLCAuLi4g XQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRp b25fYWxsX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIApAQCAtNDcs NiArNDcsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKIAogICAgIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0g KSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwv cmVwbGFjZWFibGU+ICkgXQogCis8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dGFibGVzX2luX3NjaGVtYTwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAg eyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxl PiB8IENVUlJFTlRfU0NIRU1BIH0gWyBFWENFUFQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXQorCiA8 cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxlX29i amVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCiAgICAgVEFCTEUgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdCkBA IC0xMTAsNiArMTE0LDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgICA8bGl0ZXJhbD5B REQgVEFCTEU8L2xpdGVyYWw+LgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUaGUgPGxpdGVy YWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgY2FuIGJlIHVzZWQgd2l0aAorICAgPGxpdGVyYWw+ QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGV4Y2x1ZGUgc3BlY2lmaWMgdGFibGVz IGZyb20gdGhlCisgICBwdWJsaWNhdGlvbi4gVXNpbmcgPGxpdGVyYWw+RFJPUCBUQUJMRVMgSU4g U0NIRU1BPC9saXRlcmFsPiBvbiBhIHB1YmxpY2F0aW9uCisgICB3aWxsIGF1dG9tYXRpY2FsbHkg YWxzbyByZW1vdmUgYW55IGFzc29jaWF0ZWQgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPgorICAg ZW50cmllcy4KKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgVGhlIGZvdXJ0aCB2YXJpYW50IG9m IHRoaXMgY29tbWFuZCBsaXN0ZWQgaW4gdGhlIHN5bm9wc2lzIGNhbiBjaGFuZ2UKICAgIGFsbCBv ZiB0aGUgcHVibGljYXRpb24gcHJvcGVydGllcyBzcGVjaWZpZWQgaW4KQEAgLTE5OCw2ICsyMTAs MjIgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+RVhDRVBU ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJsZV9vYmplY3Q8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgV2hlbiB1c2VkIHdpdGggPGxpdGVyYWw+QUREIFRBQkxFUyBJTiBT Q0hFTUE8L2xpdGVyYWw+LCBzcGVjaWZpZXMKKyAgICAgIHRhYmxlcyB0byBiZSBleGNsdWRlZCBm cm9tIHRoZSBwdWJsaWNhdGlvbi4gIEVhY2ggbmFtZWQKKyAgICAgIHRhYmxlIG11c3QgYmVsb25n IHRvIHRoZSBzY2hlbWEgc3BlY2lmaWVkIGluIHRoZSBzYW1lCisgICAgICA8bGl0ZXJhbD5UQUJM RVMgSU4gU0NIRU1BPC9saXRlcmFsPiBjbGF1c2UuICBUYWJsZSBuYW1lcyBtYXkgYmUKKyAgICAg IHNjaGVtYS1xdWFsaWZpZWQgb3IgdW5xdWFsaWZpZWQ7IHVucXVhbGlmaWVkIG5hbWVzIGFyZSBp bXBsaWNpdGx5CisgICAgICBxdWFsaWZpZWQgd2l0aCB0aGUgc2NoZW1hIG5hbWVkIGluIHRoZSBz YW1lIGNsYXVzZS4gIFNlZQorICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0 aW9uIi8+IGZvciBmdXJ0aGVyIGRldGFpbHMgb24gdGhlCisgICAgICBzZW1hbnRpY3Mgb2YgPGxp dGVyYWw+RVhDRVBUPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0ZXJh bD5TRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1l dGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVl PC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRl bT4KQEAgLTI4OCw2ICszMTYsMTYgQEAgQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRp b24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rp bmc+CiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIEFkZCBzY2hlbWEgPHN0cnVjdG5hbWU+c2Fs ZXM8L3N0cnVjdG5hbWU+IHRvIHRoZSBwdWJsaWNhdGlvbgorICAgPHN0cnVjdG5hbWU+c2FsZXNf cHVibGljYXRpb248L3N0cnVjdG5hbWU+LCBleGNsdWRpbmcgdGhlCisgICA8c3RydWN0bmFtZT5z YWxlcy5pbnRlcm5hbDwvc3RydWN0bmFtZT4gYW5kCisgICA8c3RydWN0bmFtZT5zYWxlcy5kcmFm dHM8L3N0cnVjdG5hbWU+IHRhYmxlczoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FU SU9OIHNhbGVzX3B1YmxpY2F0aW9uIEFERCBUQUJMRVMgSU4gU0NIRU1BIHNhbGVzIEVYQ0VQVCAo VEFCTEUgaW50ZXJuYWwsIGRyYWZ0cyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisK ICAgPHBhcmE+CiAgICBBZGQgdGFibGVzIDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiwK ICAgIDxzdHJ1Y3RuYW1lPmRlcGFydG1lbnRzPC9zdHJ1Y3RuYW1lPiBhbmQgc2NoZW1hCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKaW5kZXggNDA4OWI1MDVmODkuLmQxZmY4ODM5MDM3 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCkBAIC02NDksMTUgKzY0OSwxOCBA QCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJlbEluZm8g KnByaSwKIAkgKiBoZXJlLCBhcyBDcmVhdGVQdWJsaWNhdGlvbigpIGZ1bmN0aW9uIGludmFsaWRh dGVzIGFsbCByZWxhdGlvbnMgYXMgcGFydAogCSAqIG9mIGRlZmluaW5nIGEgRk9SIEFMTCBUQUJM RVMgcHVibGljYXRpb24uCiAJICoKLQkgKiBGb3IgQUxURVIgUFVCTElDQVRJT04sIGludmFsaWRh dGlvbiBpcyBuZWVkZWQgb25seSB3aGVuIGFkZGluZyBhbgotCSAqIEVYQ0VQVCB0YWJsZSB0byBh IHB1YmxpY2F0aW9uIGFscmVhZHkgbWFya2VkIGFzIEFMTCBUQUJMRVMuIEZvcgotCSAqIHB1Ymxp Y2F0aW9ucyB0aGF0IHdlcmUgb3JpZ2luYWxseSBlbXB0eSBvciBkZWZpbmVkIGFzIEFMTCBTRVFV RU5DRVMgYW5kCi0JICogYXJlIGJlaW5nIGNvbnZlcnRlZCB0byBBTEwgVEFCTEVTLCBpbnZhbGlk YXRpb24gaXMgc2tpcHBlZCBoZXJlLCBhcwotCSAqIEFsdGVyUHVibGljYXRpb25BbGxGbGFncygp IGZ1bmN0aW9uIGludmFsaWRhdGVzIGFsbCByZWxhdGlvbnMgd2hpbGUKLQkgKiBtYXJraW5nIHRo ZSBwdWJsaWNhdGlvbiBhcyBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uLgorCSAqIEZvciBBTFRFUiBQ VUJMSUNBVElPTiwgaW52YWxpZGF0aW9uIGlzIG5lZWRlZCB3aGVuIGFkZGluZyBhbiBFWENFUFQK KwkgKiB0YWJsZSB0byBlaXRoZXIgYSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiAocHViLT5h bGx0YWJsZXMgaXMgdHJ1ZSkKKwkgKiBvciBhIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpY2F0 aW9uIChpc19zY2hlbWFfcHVibGljYXRpb24gaXMgdHJ1ZSkuCisJICogVGhlIGV4Y2VwdGlvbjog d2hlbiBhIHB1YmxpY2F0aW9uIGlzIGJlaW5nIGNvbnZlcnRlZCB0byBGT1IgQUxMIFRBQkxFUwor CSAqIChwdWItPmFsbHRhYmxlcyBpcyBzdGlsbCBmYWxzZSBhdCB0aGlzIHBvaW50KSwKKwkgKiBB bHRlclB1YmxpY2F0aW9uQWxsRmxhZ3MoKSB3aWxsIHBlcmZvcm0gYSBmdWxsIGludmFsaWRhdGlv biwgc28gd2Ugc2tpcAorCSAqIGl0IGhlcmUuCiAJICovCi0JaW52YWxfZXhjZXB0X3RhYmxlID0g KGFsdGVyX3N0bXQgIT0gTlVMTCkgJiYgcHViLT5hbGx0YWJsZXMgJiYKLQkJKGFsdGVyX3N0bXQt PmZvcl9hbGxfdGFibGVzICYmIHByaS0+ZXhjZXB0KTsKKwlpbnZhbF9leGNlcHRfdGFibGUgPSAo YWx0ZXJfc3RtdCAhPSBOVUxMKSAmJiBwcmktPmV4Y2VwdCAmJgorCQkocHViLT5hbGx0YWJsZXMK KwkJID8gYWx0ZXJfc3RtdC0+Zm9yX2FsbF90YWJsZXMKKwkJIDogaXNfc2NoZW1hX3B1YmxpY2F0 aW9uKHB1YmlkKSk7CiAKIAlpZiAoIXByaS0+ZXhjZXB0IHx8IGludmFsX2V4Y2VwdF90YWJsZSkK IAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCmluZGV4IGI4ZDJkOGUwM2Yy Li5mNmQ1N2YzZWI3NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRp b25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAg LTcwLDYgKzcwLDEzIEBAIHN0YXRpYyB2b2lkIFB1YmxpY2F0aW9uRHJvcFRhYmxlcyhPaWQgcHVi aWQsIExpc3QgKnJlbHMsIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgdm9pZCBQdWJsaWNhdGlv bkFkZFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBib29sIGlmX25vdF9leGlzdHMs CiAJCQkJCQkJCSAgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpOwogc3RhdGljIHZvaWQgUHVi bGljYXRpb25Ecm9wU2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNjaGVtYXMsIGJvb2wgbWlzc2lu Z19vayk7CitzdGF0aWMgdm9pZCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhBbHRlclB1YmxpY2F0 aW9uU3RtdCAqc3RtdCwKKwkJCQkJCQkJCUhlYXBUdXBsZSB0dXAsIExpc3QgKnNjaGVtYWlkbGlz dCwKKwkJCQkJCQkJCUxpc3QgKmV4Y2VwdF9wdWJ0YWJsZXMpOworc3RhdGljIHZvaWQgQWx0ZXJQ dWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwK KwkJCQkJCQkJCQkJICAgSGVhcFR1cGxlIHR1cCwKKwkJCQkJCQkJCQkJICAgTGlzdCAqZXhjZXB0 X3B1YnRhYmxlcywKKwkJCQkJCQkJCQkJICAgTGlzdCAqc2NoZW1haWRsaXN0KTsKIHN0YXRpYyBj aGFyIGRlZkdldEdlbmVyYXRlZENvbHNPcHRpb24oRGVmRWxlbSAqZGVmKTsKIAogCkBAIC0xNTAw LDcgKzE1MDcsOCBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10 ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogICovCiBzdGF0aWMgdm9pZAogQWx0ZXJQdWJsaWNhdGlv blNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCi0JCQkJCQlIZWFwVHVwbGUgdHVw LCBMaXN0ICpzY2hlbWFpZGxpc3QpCisJCQkJCQlIZWFwVHVwbGUgdHVwLCBMaXN0ICpzY2hlbWFp ZGxpc3QsCisJCQkJCQlMaXN0ICpleGNlcHRfcHVidGFibGVzKQogewogCUZvcm1fcGdfcHVibGlj YXRpb24gcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVwKTsKIApA QCAtMTU3Nyw2ICsxNTg1LDk3IEBAIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGlj YXRpb25TdG10ICpzdG10LAogCQkgKi8KIAkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1YmZvcm0t Pm9pZCwgc2NoZW1haWRsaXN0LCB0cnVlLCBzdG10KTsKIAl9CisKKwkvKgorCSAqIEluY3JlbWVu dCB0aGUgY29tbWFuZCBjb3VudGVyIHNvIHRoYXQgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKCkgaW4K KwkgKiBHZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKCkgY2FuIHNlZSB0aGUganVzdC1pbnNl cnRlZCBzY2hlbWEKKwkgKiByb3dzIHdoZW4gQWx0ZXJQdWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRh YmxlcyBydW5zIG5leHQuCisJICovCisJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3Rz IHx8IHN0bXQtPmFjdGlvbiA9PSBBUF9TZXRPYmplY3RzKQorCQlDb21tYW5kQ291bnRlckluY3Jl bWVudCgpOworCisJQWx0ZXJQdWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRhYmxlcyhzdG10LCB0dXAs IGV4Y2VwdF9wdWJ0YWJsZXMsIHNjaGVtYWlkbGlzdCk7Cit9CisKKy8qCisgKiBBbHRlciB0aGUg RVhDRVBUIGxpc3Qgb2YgYSBzY2hlbWEtbGV2ZWwgcHVibGljYXRpb24uCisgKgorICogQWRkcywg cmVtb3Zlcywgb3IgcmVwbGFjZXMgZXhjZXB0LXRhYmxlIGVudHJpZXMgaW4gcGdfcHVibGljYXRp b25fcmVsCisgKiAocm93cyB3aXRoIHByZXhjZXB0ID0gdHJ1ZSkuICBUaGVzZSBlbnRyaWVzIHN1 cHByZXNzIHB1YmxpY2F0aW9uIG9mIHRoZQorICogbmFtZWQgdGFibGVzIHRoYXQgd291bGQgb3Ro ZXJ3aXNlIGJlIGNvdmVyZWQgYnkgYSBGT1IgVEFCTEVTIElOIFNDSEVNQQorICogY2xhdXNlLgor ICovCitzdGF0aWMgdm9pZAorQWx0ZXJQdWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRhYmxlcyhBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKKwkJCQkJCQkgSGVhcFR1cGxlIHR1cCwgTGlzdCAqZXhj ZXB0X3B1YnRhYmxlcywKKwkJCQkJCQkgTGlzdCAqc2NoZW1haWRsaXN0KQoreworCUZvcm1fcGdf cHVibGljYXRpb24gcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVw KTsKKwlPaWQJCQlwdWJpZCA9IHB1YmZvcm0tPm9pZDsKKworCS8qCisJICogTm90aGluZyB0byBk byBpZiBubyBFWENFUFQgZW50cmllcy4KKwkgKi8KKwlpZiAoIWV4Y2VwdF9wdWJ0YWJsZXMpCisJ CXJldHVybjsKKworCS8qCisJICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIEVYQ0VQVCBlbnRyaWVz IGZvciBzY2hlbWEtbGV2ZWwgcHVibGljYXRpb25zCisJICogb25seS4gIEZvciBGT1IgQUxMIFRB QkxFUyBwdWJsaWNhdGlvbnMsIEVYQ0VQVCBlbnRyaWVzIGFyZSBhbHJlYWR5CisJICogcHJvY2Vz c2VkIGJ5IEFsdGVyUHVibGljYXRpb25UYWJsZXMoKS4KKwkgKi8KKwlpZiAoc2NoZW1haWRsaXN0 ID09IE5JTCAmJiAhaXNfc2NoZW1hX3B1YmxpY2F0aW9uKHB1YmlkKSkKKwkJcmV0dXJuOworCisJ LyoKKwkgKiBEcm9wcGluZyBhIHNjaGVtYSBmcm9tIGEgcHVibGljYXRpb24gcmVtb3ZlcyBhbGwg aXRzIEVYQ0VQVCBlbnRyaWVzIHZpYQorCSAqIGNhc2NhZGUuIFRoZSBjb25jZXB0IG9mICJkcm9w IGFsbCBzY2hlbWEgdGFibGVzIGZyb20gdGhlIHB1YmxpY2F0aW9uCisJICogRVhDRVBUIHRoZXNl IG9uZXMiIGlzIG5vdCBzdXBwb3J0ZWQuCisJICovCisJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9E cm9wT2JqZWN0cykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiRVhDRVBUIGNsYXVzZSBpcyBub3Qgc3Vw cG9ydGVkIHdpdGggRFJPUCBpbiBBTFRFUiBQVUJMSUNBVElPTiIpKSk7CisKKwkvKgorCSAqIFhY WCBFWENFUFQgd2l0aCBTRVQgaXMgbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZC4gIFdvcmthcm91 bmQ6IERST1AgYW5kCisJICogcmUtQUREIHRoZSBzY2hlbWEgd2l0aCB0aGUgZGVzaXJlZCBFWENF UFQgbGlzdC4KKwkgKi8KKwlpZiAoc3RtdC0+YWN0aW9uID09IEFQX1NldE9iamVjdHMpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJCSBlcnJtc2coIkVYQ0VQVCBjbGF1c2UgaXMgbm90IHN1cHBvcnRlZCB3aXRoIFNFVCBp biBBTFRFUiBQVUJMSUNBVElPTiIpLAorCQkJCSBlcnJoaW50KCJEcm9wIGFuZCByZS1hZGQgdGhl IHNjaGVtYSB3aXRoIHRoZSBkZXNpcmVkIEVYQ0VQVCBsaXN0LiIpKSk7CisKKwlpZiAoc3RtdC0+ YWN0aW9uID09IEFQX0FkZE9iamVjdHMpCisJeworCQlMaXN0CSAgICpyZWxzOworCQlMaXN0CSAg ICpleHBsaWNpdHJlbGlkczsKKworCQlyZWxzID0gT3BlblRhYmxlTGlzdChleGNlcHRfcHVidGFi bGVzKTsKKworCQlleHBsaWNpdHJlbGlkcyA9IEdldEluY2x1ZGVkUHVibGljYXRpb25SZWxhdGlv bnMocHViaWQsCisJCQkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCisJCS8q CisJCSAqIFZhbGlkYXRlIHRoYXQgZWFjaCBleGNsdWRlZCB0YWJsZSBpcyBub3QgYWxzbyBpbiB0 aGUgZXhwbGljaXQgdGFibGUKKwkJICogbGlzdCAod2hpY2ggd291bGQgYmUgY29udHJhZGljdG9y eSkuCisJCSAqLworCQlmb3JlYWNoX3B0cihQdWJsaWNhdGlvblJlbEluZm8sIHByaSwgcmVscykK KwkJeworCQkJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHByaS0+cmVsYXRpb24pOwor CisJCQlpZiAobGlzdF9tZW1iZXJfb2lkKGV4cGxpY2l0cmVsaWRzLCByZWxpZCkpCisJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxV RSksCisJCQkJCQllcnJtc2coInRhYmxlIFwiJXNcIiBjYW5ub3QgYXBwZWFyIGluIGJvdGggdGhl IHRhYmxlIGxpc3QgYW5kIHRoZSBFWENFUFQgY2xhdXNlIiwKKwkJCQkJCQkgICBSZWxhdGlvbkdl dFF1YWxpZmllZFJlbGF0aW9uTmFtZShwcmktPnJlbGF0aW9uKSkpOworCQl9CisKKwkJUHVibGlj YXRpb25BZGRUYWJsZXMocHViaWQsIHJlbHMsIGZhbHNlLCBzdG10KTsKKworCQlDbG9zZVRhYmxl TGlzdChyZWxzKTsKKwl9CiB9CiAKIC8qCkBAIC0xNzg2LDEwICsxODg1LDEyIEBAIEFsdGVyUHVi bGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkK IAkJCQkJZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAogCQkJCQkJ ICAgc3RtdC0+cHVibmFtZSkpOwogCi0JCXJlbGF0aW9ucyA9IGxpc3RfY29uY2F0KHJlbGF0aW9u cywgZXhjZXB0X3B1YnRhYmxlcyk7CisJCWlmIChzdG10LT5mb3JfYWxsX3RhYmxlcykKKwkJCXJl bGF0aW9ucyA9IGxpc3RfY29uY2F0KHJlbGF0aW9ucywgZXhjZXB0X3B1YnRhYmxlcyk7CisKIAkJ QWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhzdG10LCB0dXAsIHJlbGF0aW9ucywgcHN0YXRlLT5wX3Nv dXJjZXRleHQsCiAJCQkJCQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCk7Ci0JCUFsdGVyUHVibGlj YXRpb25TY2hlbWFzKHN0bXQsIHR1cCwgc2NoZW1haWRsaXN0KTsKKwkJQWx0ZXJQdWJsaWNhdGlv blNjaGVtYXMoc3RtdCwgdHVwLCBzY2hlbWFpZGxpc3QsIGV4Y2VwdF9wdWJ0YWJsZXMpOwogCQlB bHRlclB1YmxpY2F0aW9uQWxsRmxhZ3Moc3RtdCwgcmVsLCB0dXApOwogCX0KIApkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK aW5kZXggYTBmN2Y4ZTIxNjguLjg1YWIzYjAwODc1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTUwMTksNiAr NTAxOSw3IEBAIGR1bXBQdWJsaWNhdGlvbk5hbWVzcGFjZShBcmNoaXZlICpmb3V0LCBjb25zdCBQ dWJsaWNhdGlvblNjaGVtYUluZm8gKnB1YnNpbmZvKQogCVB1YmxpY2F0aW9uSW5mbyAqcHViaW5m byA9IHB1YnNpbmZvLT5wdWJsaWNhdGlvbjsKIAlQUUV4cEJ1ZmZlciBxdWVyeTsKIAljaGFyCSAg ICp0YWc7CisJYm9vbAkJaGFzX2V4Y2VwdCA9IGZhbHNlOwogCiAJLyogRG8gbm90aGluZyBpZiBu b3QgZHVtcGluZyBzY2hlbWEgKi8KIAlpZiAoIWRvcHQtPmR1bXBTY2hlbWEpCkBAIC01MDI5LDcg KzUwMzAsMzQgQEAgZHVtcFB1YmxpY2F0aW9uTmFtZXNwYWNlKEFyY2hpdmUgKmZvdXQsIGNvbnN0 IFB1YmxpY2F0aW9uU2NoZW1hSW5mbyAqcHVic2luZm8pCiAJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1 ZmZlcigpOwogCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJBTFRFUiBQVUJMSUNBVElPTiAl cyAiLCBmbXRJZChwdWJpbmZvLT5kb2JqLm5hbWUpKTsKLQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVy eSwgIkFERCBUQUJMRVMgSU4gU0NIRU1BICVzO1xuIiwgZm10SWQoc2NoZW1haW5mby0+ZG9iai5u YW1lKSk7CisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJBREQgVEFCTEVTIElOIFNDSEVNQSAl cyIsIGZtdElkKHNjaGVtYWluZm8tPmRvYmoubmFtZSkpOworCisJLyoKKwkgKiBBcHBlbmQgRVhD RVBUIGNsYXVzZSBmb3IgYW55IHRhYmxlcyB0aGF0IGJlbG9uZyB0byB0aGlzIHNjaGVtYQorCSAq IGFuZCBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgcHVibGljYXRpb24uCisJICovCisJZm9yIChTaW1w bGVQdHJMaXN0Q2VsbCAqY2VsbCA9IHB1YmluZm8tPmV4Y2VwdF90YWJsZXMuaGVhZDsgY2VsbDsg Y2VsbCA9IGNlbGwtPm5leHQpCisJeworCQlUYWJsZUluZm8gICp0YmluZm8gPSAoVGFibGVJbmZv ICopIGNlbGwtPnB0cjsKKworCQlpZiAoc3RyY21wKHRiaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRv YmoubmFtZSwgc2NoZW1haW5mby0+ZG9iai5uYW1lKSA9PSAwKQorCQl7CisJCQlpZiAoIWhhc19l eGNlcHQpCisJCQl7CisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgRVhDRVBUICgi KTsKKwkJCQloYXNfZXhjZXB0ID0gdHJ1ZTsKKwkJCX0KKwkJCWVsc2UKKwkJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwgIiwgIik7CisKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAi VEFCTEUgT05MWSAlcyIsIGZtdElkKHRiaW5mby0+ZG9iai5uYW1lKSk7CisJCX0KKwl9CisKKwlp ZiAoaGFzX2V4Y2VwdCkKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIpIik7CisKKwlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIjtcbiIpOwogCiAJLyoKIAkgKiBUaGVyZSBpcyBu byBwb2ludCBpbiBjcmVhdGluZyBkcm9wIHF1ZXJ5IGFzIHRoZSBkcm9wIGlzIGRvbmUgYnkgc2No ZW1hCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDNlZTlmZGE1MGU0Li5iOGY0YWE3Njll YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTMyNDIsNiArMzI0MiwzMCBAQCBteSAl dGVzdHMgPSAoCiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAx LCB9LAogCX0sCiAKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjExJyA9PiB7CisJCWNyZWF0ZV9v cmRlciA9PiA1MCwKKwkJY3JlYXRlX3NxbCA9PgorCQkgICdDUkVBVEUgUFVCTElDQVRJT04gcHVi MTEgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgZHVtcF90ZXN0IEVYQ0VQVCAoVEFCTEUgdGVzdF90YWJs ZSk7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjExIFdJ VEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnKTtcRQorCQkJ Lio/CisJCQlcUUFMVEVSIFBVQkxJQ0FUSU9OIHB1YjExIEFERCBUQUJMRVMgSU4gU0NIRU1BIGR1 bXBfdGVzdCBFWENFUFQgKFRBQkxFIE9OTFkgdGVzdF90YWJsZSk7XEUKKwkJCS94bXMsCisJCWxp a2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0sCisKKwkn Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEyJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MCwKKwkJ Y3JlYXRlX3NxbCA9PgorCQkgICdDUkVBVEUgUFVCTElDQVRJT04gcHViMTIgRk9SIFRBQkxFUyBJ TiBTQ0hFTUEgZHVtcF90ZXN0IEVYQ0VQVCAoVEFCTEUgdGVzdF90YWJsZSwgZHVtcF90ZXN0LnRl c3Rfc2Vjb25kX3RhYmxlKTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgUFVCTElD QVRJT04gcHViMTIgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVu Y2F0ZScpO1xFCisJCQkuKj8KKwkJCVxRQUxURVIgUFVCTElDQVRJT04gcHViMTIgQUREIFRBQkxF UyBJTiBTQ0hFTUEgZHVtcF90ZXN0IEVYQ0VQVCAoVEFCTEUgT05MWSB0ZXN0X3RhYmxlLCBUQUJM RSBPTkxZIHRlc3Rfc2Vjb25kX3RhYmxlKTtcRQorCQkJL3htcywKKwkJbGlrZSA9PiB7ICVmdWxs X3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKwogCSdDUkVBVEUgU1VCU0NS SVBUSU9OIHN1YjEnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQljcmVhdGVfc3FsID0+ ICdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA1M2Ji N2M4Njc5Yi4uYTI5MDkwMmQ2MWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIzNzMsNiAr MjM3MywyMyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExF VEVfV0lUSF9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX3NjaGVtYXMKIAkJCQkJCQkJICIg QU5EIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXFxfJSUnIiwKIAkJCQkJCQkJICJDVVJSRU5UX1ND SEVNQSIpOworCS8qIEFmdGVyIGEgc2luZ2xlIHNjaGVtYSBuYW1lIGluIEFERCBjb250ZXh0LCBv ZmZlciBFWENFUFQgKCBUQUJMRSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNo QW55KSAmJgorCQkJICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSCgi RVhDRVBUICggVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55LCAiQUREIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwg IkVYQ0VQVCIpKQorCQlDT01QTEVURV9XSVRIKCIoIFRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hl cygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJUQUJMRVMiLCAiSU4i LCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIpKQorCQlDT01QTEVURV9XSVRIKCJU QUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsICJDVVJSRU5UX1NDSEVNQSIsICJF WENFUFQiLCAiKCIsICJUQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1FVRVJZX1ZFUkJBVElNKFF1 ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9jdXJyZW50X3NjaGVtYSk7CisJZWxzZSBpZiAoTWF0 Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJUQUJMRVMiLCAi SU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIsICJUQUJMRSIpKQorCXsKKwkJ c2V0X2NvbXBsZXRpb25fcmVmZXJlbmNlKHByZXY0X3dkKTsKKwkJQ09NUExFVEVfV0lUSF9RVUVS WV9WRVJCQVRJTShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNfaW5fc2NoZW1hKTsKKwl9CisJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJU QUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIsICJUQUJMRSIs IE1hdGNoQW55TikgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRI KCIpIik7CiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IFNFVCAoICovCiAJZWxzZSBpZiAo TWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgTWF0Y2hBbnlOLCAiU0VU IiwgIigiKSkKIAkJQ09NUExFVEVfV0lUSCgicHVibGlzaCIsICJwdWJsaXNoX2dlbmVyYXRlZF9j b2x1bW5zIiwgInB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290Iik7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CmluZGV4IDZkZjQyYTYwZjljLi44YjQ5MjM5YjU3NCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTU2NCwxMiAr NTY0LDQyIEBAIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9ub2t3CiBFUlJPUjog IHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJ0ZXN0cHViX25vcGsiCiBMSU5FIDI6ICAgICBGT1Ig VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm9wayk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gRVhDRVBUIHRlc3RzIGZvciBB TFRFUiBQVUJMSUNBVElPTgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CistLSBmYWls OiBub24tZXhpc3RpbmcgdGFibGUgaW4gRVhDRVBUIGNsYXVzZQorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBU IChUQUJMRSBwdWJfdGVzdC5ub25leGlzdGVudF90YWJsZSk7CitFUlJPUjogIHJlbGF0aW9uICJw dWJfdGVzdC5ub25leGlzdGVudF90YWJsZSIgZG9lcyBub3QgZXhpc3QKKy0tIGZhaWw6IEVYQ0VQ VCB0YWJsZSBiZWxvbmdzIHRvIGEgZGlmZmVyZW50IHNjaGVtYQorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBU IChUQUJMRSBwdWJsaWMudGVzdHB1Yl90YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1YmxpYy50ZXN0 cHViX3RibDEiIGluIEVYQ0VQVCBjbGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAicHVi X3Rlc3QiCitMSU5FIDE6IC4uLnhjZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVY Q0VQVCAoVEFCTEUgcHVibGljLnRlcy4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIGZhaWw6IFRBQkxFIGtleXdvcmQg aXMgcmVxdWlyZWQgZm9yIHRoZSBmaXJzdCBlbnRyeSBpbiBFWENFUFQgY2xhdXNlCitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJf dGVzdCBFWENFUFQgKHRlc3RwdWJfbm9wayk7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBu ZWFyICJ0ZXN0cHViX25vcGsiCitMSU5FIDE6IC4uLmx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4g U0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAodGVzdHB1Yl9uby4uLgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEFERDogcXVh bGlmaWVkIGFuZCB1bnF1YWxpZmllZCBuYW1lczsgdW5xdWFsaWZpZWQgaXMgaW1wbGljaXRseSBx dWFsaWZpZWQgd2l0aCB0aGUgc2NoZW1hCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVy X2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MxLCB0ZXN0cHViX3RibF9zMik7CitcZFJwKyB0ZXN0cHViX2FsdGVy X2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRl cyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwg RGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAgICAg IHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIKK0V4Y2VwdCB0YWJsZXM6 CisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIgorICAgICJwdWJfdGVzdC50ZXN0cHViX3Ri bF9zMiIKKwogLS0gQ2xlYW51cAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFC TEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOwogRFJP UCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRlZF9zIENBU0NBREU7CiBEUk9QIFRBQkxFIHRl c3RwdWJfbm9waywgdGVzdHB1Yl90YmxfczE7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2No ZW1hX2V4Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIsIHRlc3RwdWJfc2NoZW1hX2V4Y2Vw dF9tdWx0aTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MSwgdGVzdHB1 Yl9zY2hlbWFfZXhjZXB0MiwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X211bHRpLCB0ZXN0cHViX2Fs dGVyX2V4Y2VwdDsKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9ucyB3aXRoIFNFUVVFTkNFUwogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNh dGlvbi5zcWwKaW5kZXggYmQ1MjNlMzc2YjIuLmU5Mzg3NDE4OTA0IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHVibGljYXRpb24uc3FsCkBAIC0yNzgsMTIgKzI3OCwzMCBAQCBDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1Yl9leGNlcHRfcGFydGl0aW9uCiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9l eGNlcHRfbm9rdwogICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAodGVz dHB1Yl9ub3BrKTsKIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCistLSBFWENFUFQgdGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViX2FsdGVyX2V4Y2VwdDsKKworLS0gZmFpbDogbm9uLWV4aXN0aW5nIHRhYmxlIGluIEVYQ0VQ VCBjbGF1c2UKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJM RVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qubm9uZXhpc3RlbnRf dGFibGUpOworCistLSBmYWlsOiBFWENFUFQgdGFibGUgYmVsb25ncyB0byBhIGRpZmZlcmVudCBz Y2hlbWEKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJMRVMg SU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwdWJfdGJsMSk7CisK Ky0tIGZhaWw6IFRBQkxFIGtleXdvcmQgaXMgcmVxdWlyZWQgZm9yIHRoZSBmaXJzdCBlbnRyeSBp biBFWENFUFQgY2xhdXNlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBB REQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm9wayk7CisKKy0t IEFERDogcXVhbGlmaWVkIGFuZCB1bnF1YWxpZmllZCBuYW1lczsgdW5xdWFsaWZpZWQgaXMgaW1w bGljaXRseSBxdWFsaWZpZWQgd2l0aCB0aGUgc2NoZW1hCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX2FsdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCB0ZXN0cHViX3RibF9zMik7CitcZFJwKyB0ZXN0 cHViX2FsdGVyX2V4Y2VwdAorCiAtLSBDbGVhbnVwCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2Vz OwogRFJPUCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgcHViX3Rlc3QudGVzdHB1Yl90 YmxfczI7CiBEUk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgQ0FTQ0FERTsKIERS T1AgVEFCTEUgdGVzdHB1Yl9ub3BrLCB0ZXN0cHViX3RibF9zMTsKLURST1AgUFVCTElDQVRJT04g dGVzdHB1Yl9zY2hlbWFfZXhjZXB0MSwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MiwgdGVzdHB1Yl9z Y2hlbWFfZXhjZXB0X211bHRpOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNl cHQxLCB0ZXN0cHViX3NjaGVtYV9leGNlcHQyLCB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGks IHRlc3RwdWJfYWx0ZXJfZXhjZXB0OwogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIC0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCmluZGV4IDE4YzdiMmMxZmNhLi4wYmE2 ZDZmOGJiMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5w bAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCkBAIC0zNDcsNiAr MzQ3LDM4IEBAIGlzKCRyZXN1bHQsIHFxKDUpLAogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiBzY2hfc3ViJyk7CiAkbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiBzY2hfcHViJyk7CiAK KyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgQUxURVIg UFVCTElDQVRJT04gRVhDRVBUIGZvciBUQUJMRVMgSU4gU0NIRU1BCisjID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgVHJ1bmNhdGUgc3Vic2NyaWJlciB0 YWJsZXMgdG8gcmVtb3ZlIGRhdGEgYWNjdW11bGF0ZWQgZnJvbSBwcmV2aW91cyB0ZXN0cy4KKyRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSdUUlVOQ0FURSBzY2gxLnRh Yl9wdWJsaXNoZWQsIHNjaDEudGFiX2V4Y2x1ZGVkLCBzY2gxLnBhcmVudCwgc2NoMS5jaGlsZCcp OworCisjIEFERDogYWRkIGEgc2NoZW1hIHdpdGggYW4gZXhjZXB0ZWQgdGFibGU7IHZlcmlmeSB0 aGUgZXhjZXB0IGVudHJ5IHRha2VzIGVmZmVjdC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJDUkVBVEUgUFVCTElDQVRJT04gc2NoX3B1YiIpOworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgUFVCTElDQVRJT04gc2NoX3B1YiBB REQgVEFCTEVTIElOIFNDSEVNQSBzY2gxIEVYQ0VQVCAoVEFCTEUgc2NoMS50YWJfZXhjbHVkZWQp IgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg U1VCU0NSSVBUSU9OIHNjaF9zdWIgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJM SUNBVElPTiBzY2hfcHViIgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlw dGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3NjaF9zdWInKTsKKworJHJlc3VsdCA9CisgICRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikg RlJPTSBzY2gxLnRhYl9wdWJsaXNoZWQiKTsKK2lzKCRyZXN1bHQsIHFxKDYpLAorCSdBTFRFUiAu Li4gQUREIFRBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBpbmNsdWRlZCB0YWJsZSBzeW5jZWQnKTsK KyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki U0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfZXhjbHVkZWQiKTsKK2lzKCRyZXN1bHQsIHFx KDApLAorCSdBTFRFUiAuLi4gQUREIFRBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBleGNsdWRlZCB0 YWJsZSBub3Qgc3luY2VkJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gc2NoX3N1YicpOworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gc2NoX3B1YicpOworCiAjIENsZWFu dXAgc2NoZW1hIHRhYmxlcyBiZWZvcmUgdGhlIG11bHRpLXB1YmxpY2F0aW9uIHNlY3Rpb24uCiAk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTQ0hFTUEgc2NoMSBD QVNDQURFJyk7CiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1Ag U0NIRU1BIHNjaDEgQ0FTQ0FERScpOwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000004d5e23065380257b Content-Type: application/octet-stream; name="v10-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Disposition: attachment; filename="v10-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq0un3ch2 RnJvbSA0YjM1Y2Y1NjQxYjA1ZDBmYWM5NTgwZDc3MTc4YWRhM2E1ZWFkOGZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUdWUsIDIgSnVuIDIwMjYgMTE6Mzk6MzYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MCAzLzNdIEFkZCBFWENFUFQgc3VwcG9ydCB0byBBTFRFUiBQVUJMSUNBVElPTiBTRVQgVEFCTEVT IElOCiBTQ0hFTUEKCkV4dGVuZCBBbHRlclB1YmxpY2F0aW9uRXhjZXB0VGFibGVzKCkgd2l0aCB0 aGUgQVBfU2V0T2JqZWN0cyBjYXNlLAp3aGljaCByZWRlZmluZXMgdGhlIHB1YmxpY2F0aW9uIGFu ZCByZXBsYWNlcyB0aGUgZW50aXJlIEVYQ0VQVCBsaXN0LgoKU3ludGF4OgpBTFRFUiBQVUJMSUNB VElPTiBwdWIgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcyBFWENFUFQgKFRBQkxFIHQxKTsKClRoaXMg cGF0Y2ggYWxzbyBjbGVhbnMgdXAgRVhDRVBUIGVudHJpZXMgd2hlbiBhIHNjaGVtYSBpcyBkcm9w cGVkCmZyb20gdGhlIHB1YmxpY2F0aW9uLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbCAgICAgfCAgMjcgKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMgICAgICB8IDEzNSArKysrKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyB8ICAxMCArLQogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICB8ICAxNyArKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgfCAgODYgKysrKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICB8ICAzOCArKysrKysKIHNyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgICAgICAgfCAgODUgKysrKysrKysrKysrCiA3 IGZpbGVzIGNoYW5nZWQsIDM3MSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggNzNmNjM3NWE2NmYuLjgwYjAz OGU0YjJlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCkBAIC05Nyw3 ICs5NywxMSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICAgdXNlZCB3aXRoIGEgcHVibGlj YXRpb24gZGVmaW5lZCB3aXRoIDxsaXRlcmFsPkZPUiBUQUJMRTwvbGl0ZXJhbD4gb3IKICAgIDxs aXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwgcmVwbGFjZXMgdGhlIGxpc3Qg b2YgdGFibGVzL3NjaGVtYXMKICAgIGluIHRoZSBwdWJsaWNhdGlvbiB3aXRoIHRoZSBzcGVjaWZp ZWQgbGlzdDsgdGhlIGV4aXN0aW5nIHRhYmxlcyBvciBzY2hlbWFzCi0gICB0aGF0IHdlcmUgcHJl c2VudCBpbiB0aGUgcHVibGljYXRpb24gd2lsbCBiZSByZW1vdmVkLgorICAgdGhhdCB3ZXJlIHBy ZXNlbnQgaW4gdGhlIHB1YmxpY2F0aW9uIHdpbGwgYmUgcmVtb3ZlZC4gIFdoZW4KKyAgIDxsaXRl cmFsPlNFVCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBpcyB1c2VkIHdpdGggYW4KKyAgIDxs aXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlLCB0aGUgZXhjbHVkZWQgdGFibGVzIGZvciBl YWNoIHNjaGVtYSBhcmUKKyAgIHJlcGxhY2VkIHdpdGggdGhlIHNwZWNpZmllZCBsaXN0OyBpZiA8 bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGlzIG9taXR0ZWQKKyAgIGZvciBhIHNjaGVtYSwgYW55 IGV4aXN0aW5nIGV4Y2x1c2lvbnMgZm9yIHRoYXQgc2NoZW1hIGFyZSBjbGVhcmVkLgogICA8L3Bh cmE+CiAKICAgPHBhcmE+CkBAIC0xMTYsMTAgKzEyMCw4IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRP IDxyCiAKICAgPHBhcmE+CiAgICBUaGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2Ug Y2FuIGJlIHVzZWQgd2l0aAotICAgPGxpdGVyYWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVy YWw+IHRvIGV4Y2x1ZGUgc3BlY2lmaWMgdGFibGVzIGZyb20gdGhlCi0gICBwdWJsaWNhdGlvbi4g VXNpbmcgPGxpdGVyYWw+RFJPUCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBvbiBhIHB1Ymxp Y2F0aW9uCi0gICB3aWxsIGF1dG9tYXRpY2FsbHkgYWxzbyByZW1vdmUgYW55IGFzc29jaWF0ZWQg PGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPgotICAgZW50cmllcy4KKyAgIDxsaXRlcmFsPkFERCBU QUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBleGNsdWRlIHNwZWNpZmljIHRhYmxlcyBmcm9t IGEKKyAgIHNjaGVtYS1sZXZlbCBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpA QCAtMjE0LDcgKzIxNiw4IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgICAgPHRlcm0+PGxp dGVyYWw+RVhDRVBUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJs ZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KICAgICA8 bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgotICAgICAgV2hlbiB1c2VkIHdpdGggPGxpdGVyYWw+QURE IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LCBzcGVjaWZpZXMKKyAgICAgIFdoZW4gdXNlZCB3 aXRoIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPgorICAgICAgb3IgPGxp dGVyYWw+U0VUIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LCBzcGVjaWZpZXMKICAgICAgIHRh YmxlcyB0byBiZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4gIEVhY2ggbmFtZWQKICAg ICAgIHRhYmxlIG11c3QgYmVsb25nIHRvIHRoZSBzY2hlbWEgc3BlY2lmaWVkIGluIHRoZSBzYW1l CiAgICAgICA8bGl0ZXJhbD5UQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBjbGF1c2UuICBUYWJs ZSBuYW1lcyBtYXkgYmUKQEAgLTMyNiw2ICszMjksMTggQEAgQUxURVIgUFVCTElDQVRJT04gc2Fs ZXNfcHVibGljYXRpb24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgc2FsZXMgRVhDRVBUIChUQUJMRSBp bnQKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIFJlcGxhY2Ug dGhlIHNjaGVtYSBsaXN0IG9mIDxzdHJ1Y3RuYW1lPnNhbGVzX3B1YmxpY2F0aW9uPC9zdHJ1Y3Ru YW1lPiB3aXRoCisgICA8c3RydWN0bmFtZT5zYWxlczwvc3RydWN0bmFtZT4sIGV4Y2x1ZGluZyBv bmx5CisgICA8c3RydWN0bmFtZT5zYWxlcy5kcmFmdHM8L3N0cnVjdG5hbWU+LiBPdGhlciB0aGFu CisgICA8c3RydWN0bmFtZT5zYWxlcy5kcmFmdHM8L3N0cnVjdG5hbWU+LCBhbnkgcHJldmlvdXNs eSBleGNsdWRlZCB0YWJsZXMgZm9yIHNjaGVtYQorICAgPHN0cnVjdG5hbWU+c2FsZXM8L3N0cnVj dG5hbWU+IGFyZSBubyBsb25nZXIgZXhjbHVkZWQuIEFueSBzY2hlbWFzIHByZXZpb3VzbHkgaW4K KyAgIDxzdHJ1Y3RuYW1lPnNhbGVzX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiBhcmUgcmVtb3Zl ZDoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHNhbGVzX3B1YmxpY2F0aW9u IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHNhbGVzIEVYQ0VQVCAoVEFCTEUgZHJhZnRzKTsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIEFkZCB0YWJsZXMgPHN0cnVj dG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0 cnVjdG5hbWU+IGFuZCBzY2hlbWEKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMK aW5kZXggZjZkNTdmM2ViNzYuLmM4OTljOGMwZTA2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuYwpAQCAtMTU4OCw4ICsxNTg4LDggQEAgQWx0ZXJQdWJsaWNhdGlvblNjaGVt YXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAKIAkvKgogCSAqIEluY3JlbWVudCB0aGUg Y29tbWFuZCBjb3VudGVyIHNvIHRoYXQgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKCkgaW4KLQkgKiBH ZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKCkgY2FuIHNlZSB0aGUganVzdC1pbnNlcnRlZCBz Y2hlbWEKLQkgKiByb3dzIHdoZW4gQWx0ZXJQdWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRhYmxlcyBy dW5zIG5leHQuCisJICogR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcygpIGNhbiBzZWUgdGhl IGp1c3QtaW5zZXJ0ZWQgc2NoZW1hIHJvd3MKKwkgKiB3aGVuIEFsdGVyUHVibGljYXRpb25TY2hl bWFFeGNlcHRUYWJsZXMgcnVucyBuZXh0LgogCSAqLwogCWlmIChzdG10LT5hY3Rpb24gPT0gQVBf QWRkT2JqZWN0cyB8fCBzdG10LT5hY3Rpb24gPT0gQVBfU2V0T2JqZWN0cykKIAkJQ29tbWFuZENv dW50ZXJJbmNyZW1lbnQoKTsKQEAgLTE2MDcsMTYgKzE2MDcsMTggQEAgQWx0ZXJQdWJsaWNhdGlv blNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAgKi8KIHN0YXRpYyB2b2lkCiBB bHRlclB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0VGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpz dG10LAotCQkJCQkJCSBIZWFwVHVwbGUgdHVwLCBMaXN0ICpleGNlcHRfcHVidGFibGVzLAotCQkJ CQkJCSBMaXN0ICpzY2hlbWFpZGxpc3QpCisJCQkJCQkJCSAgIEhlYXBUdXBsZSB0dXAsIExpc3Qg KmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJCQkJCSAgIExpc3QgKnNjaGVtYWlkbGlzdCkKIHsKIAlG b3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RS VUNUKHR1cCk7CiAJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7CiAKIAkvKgotCSAqIE5vdGhp bmcgdG8gZG8gaWYgbm8gRVhDRVBUIGVudHJpZXMuCisJICogTm90aGluZyB0byBkbyBpZiB0aGVy ZSBhcmUgbm8gRVhDRVBUIGVudHJpZXMsIHVubGVzcyBoYW5kbGluZyB0aGUgU0VUCisJICogY29t bWFuZCwgYmVjYXVzZSBpZiB0aGUgdXNlciBoYXMgcmVtb3ZlZCBhbGwgZXhjZXB0aW9ucyB3ZSBu ZWVkIHRvIGRyb3AKKwkgKiBhbnkgZXhpc3Rpbmcgb25lcy4KIAkgKi8KLQlpZiAoIWV4Y2VwdF9w dWJ0YWJsZXMpCisJaWYgKCFleGNlcHRfcHVidGFibGVzICYmIHN0bXQtPmFjdGlvbiAhPSBBUF9T ZXRPYmplY3RzKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtMTYzNywxNiArMTYzOSw2IEBAIEFsdGVy UHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJt c2coIkVYQ0VQVCBjbGF1c2UgaXMgbm90IHN1cHBvcnRlZCB3aXRoIERST1AgaW4gQUxURVIgUFVC TElDQVRJT04iKSkpOwogCi0JLyoKLQkgKiBYWFggRVhDRVBUIHdpdGggU0VUIGlzIG5vdCBjdXJy ZW50bHkgaW1wbGVtZW50ZWQuICBXb3JrYXJvdW5kOiBEUk9QIGFuZAotCSAqIHJlLUFERCB0aGUg c2NoZW1hIHdpdGggdGhlIGRlc2lyZWQgRVhDRVBUIGxpc3QuCi0JICovCi0JaWYgKHN0bXQtPmFj dGlvbiA9PSBBUF9TZXRPYmplY3RzKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkgZXJybXNnKCJFWENFUFQgY2xhdXNl IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBTRVQgaW4gQUxURVIgUFVCTElDQVRJT04iKSwKLQkJCQkg ZXJyaGludCgiRHJvcCBhbmQgcmUtYWRkIHRoZSBzY2hlbWEgd2l0aCB0aGUgZGVzaXJlZCBFWENF UFQgbGlzdC4iKSkpOwotCiAJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3RzKQogCXsK IAkJTGlzdAkgICAqcmVsczsKQEAgLTE2NzQsNiArMTY2Niw4NCBAQCBBbHRlclB1YmxpY2F0aW9u U2NoZW1hRXhjZXB0VGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCiAJCVB1Ymxp Y2F0aW9uQWRkVGFibGVzKHB1YmlkLCByZWxzLCBmYWxzZSwgc3RtdCk7CiAKKwkJQ2xvc2VUYWJs ZUxpc3QocmVscyk7CisJfQorCWVsc2UJCQkJCQkvKiBBUF9TZXRPYmplY3RzICovCisJeworCQlM aXN0CSAgICpvbGRleGNlcHRyZWxpZHMgPSBOSUw7CisJCUxpc3QJICAgKm5ld2V4Y2VwdHJlbGlk cyA9IE5JTDsKKwkJTGlzdAkgICAqZGVscmVsaWRzID0gTklMOworCQlMaXN0CSAgICpyZWxzOwor CQlMaXN0CSAgICpleHBsaWNpdHJlbGlkczsKKworCQlyZWxzID0gT3BlblRhYmxlTGlzdChleGNl cHRfcHVidGFibGVzKTsKKworCQkvKiBDb2xsZWN0IE9JRHMgb2YgdGhlIGRlc2lyZWQgbmV3IEVY Q0VQVCBsaXN0LiAqLworCQlmb3JlYWNoX3B0cihQdWJsaWNhdGlvblJlbEluZm8sIHByaSwgcmVs cykKKwkJCW5ld2V4Y2VwdHJlbGlkcyA9IGxhcHBlbmRfb2lkKG5ld2V4Y2VwdHJlbGlkcywKKwkJ CQkJCQkJCQkgIFJlbGF0aW9uR2V0UmVsaWQocHJpLT5yZWxhdGlvbikpOworCisJCWV4cGxpY2l0 cmVsaWRzID0gR2V0SW5jbHVkZWRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwKKwkJCQkJCQkJ CQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisKKwkJLyoKKwkJICogVmFsaWRhdGUgdGhh dCBlYWNoIGV4Y2x1ZGVkIHRhYmxlIGlzIG5vdCBhbHNvIGluIHRoZSBleHBsaWNpdCB0YWJsZQor CQkgKiBsaXN0ICh3aGljaCB3b3VsZCBiZSBjb250cmFkaWN0b3J5KS4KKwkJICovCisJCWZvcmVh Y2hfcHRyKFB1YmxpY2F0aW9uUmVsSW5mbywgcHJpLCByZWxzKQorCQl7CisJCQlPaWQJCQlyZWxp ZCA9IFJlbGF0aW9uR2V0UmVsaWQocHJpLT5yZWxhdGlvbik7CisKKwkJCWlmIChsaXN0X21lbWJl cl9vaWQoZXhwbGljaXRyZWxpZHMsIHJlbGlkKSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCWVycm1zZygi dGFibGUgXCIlc1wiIGNhbm5vdCBhcHBlYXIgaW4gYm90aCB0aGUgdGFibGUgbGlzdCBhbmQgdGhl IEVYQ0VQVCBjbGF1c2UiLAorCQkJCQkJCSAgIFJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25O YW1lKHByaS0+cmVsYXRpb24pKSk7CisJCX0KKworCQkvKgorCQkgKiBHZXQgdGhlIGN1cnJlbnQg c2V0IG9mIEVYQ0VQVCBlbnRyaWVzLiAgT25seSBGT1IgQUxMIFRBQkxFUyBhbmQKKwkJICogc2No ZW1hLWxldmVsIHB1YmxpY2F0aW9ucyBjYW4gaGF2ZSBFWENFUFQgZW50cmllczsgZm9yIGFueSBv dGhlcgorCQkgKiBwdWJsaWNhdGlvbiB0eXBlIG9sZGV4Y2VwdHJlbGlkcyBzdGF5cyBOSUwuCisJ CSAqCisJCSAqIE5vdGU6IHdlIGNoZWNrIGlzX3NjaGVtYV9wdWJsaWNhdGlvbigpIGFnYWluc3Qg dGhlIGN1cnJlbnQgY2F0YWxvZworCQkgKiBzdGF0ZSAoYmVmb3JlIEFsdGVyUHVibGljYXRpb25T Y2hlbWFzIGhhcyBydW4pLCBzbyBpZiB0aGUgY2FsbGVyIGlzCisJCSAqIGRvaW5nIFNFVCBUQUJM RSB0MSB0byBjb252ZXJ0IGEgc2NoZW1hIHB1YmxpY2F0aW9uIGludG8gYSBwbGFpbgorCQkgKiB0 YWJsZSBwdWJsaWNhdGlvbiwgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKCkgc3RpbGwgcmV0dXJucyB0 cnVlIGhlcmUuCisJCSAqIFRoYXQgaXMgaW50ZW50aW9uYWw6IGl0IGxldHMgdXMgZGlzY292ZXIg YW5kIGNsZWFuIHVwIGFueSBzdGFsZQorCQkgKiBFWENFUFQgZW50cmllcyB0aGF0IGJlbG9uZyB0 byB0aGUgb2xkIHNjaGVtYSBkZWZpbml0aW9uLgorCQkgKi8KKwkJaWYgKEdldFB1YmxpY2F0aW9u KHB1YmlkKS0+YWxsdGFibGVzIHx8IGlzX3NjaGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpCisJCQlv bGRleGNlcHRyZWxpZHMgPSBHZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKHB1YmlkLAorCQkJ CQkJCQkJCQkJCQkgICBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCisJCS8qIEJ1aWxkIGEgbGlz dCBvZiBvbGQgRVhDRVBUIGVudHJpZXMgbm90IHByZXNlbnQgaW4gdGhlIG5ldyBsaXN0LiAqLwor CQlmb3JlYWNoX29pZChvbGRyZWxpZCwgb2xkZXhjZXB0cmVsaWRzKQorCQl7CisJCQlpZiAoIWxp c3RfbWVtYmVyX29pZChuZXdleGNlcHRyZWxpZHMsIG9sZHJlbGlkKSkKKwkJCQlkZWxyZWxpZHMg PSBsYXBwZW5kX29pZChkZWxyZWxpZHMsIG9sZHJlbGlkKTsKKwkJfQorCisJCS8qIERyb3Agb2xk IEVYQ0VQVCBlbnRyaWVzIG5vdCBwcmVzZW50IGluIHRoZSBuZXcgbGlzdC4gKi8KKwkJZm9yZWFj aF9vaWQocmVsaWQsIGRlbHJlbGlkcykKKwkJeworCQkJT2lkCQkJcHJvaWQ7CisJCQlPYmplY3RB ZGRyZXNzIG9iajsKKworCQkJcHJvaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFVCTElDQVRJT05SRUxN QVAsCisJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9vaWQsCisJCQkJCQkJCQlPYmpl Y3RJZEdldERhdHVtKHJlbGlkKSwKKwkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0ocHViaWQpKTsK KwkJCWlmIChPaWRJc1ZhbGlkKHByb2lkKSkKKwkJCXsKKwkJCQlPYmplY3RBZGRyZXNzU2V0KG9i aiwgUHVibGljYXRpb25SZWxSZWxhdGlvbklkLCBwcm9pZCk7CisJCQkJcGVyZm9ybURlbGV0aW9u KCZvYmosIERST1BfQ0FTQ0FERSwgMCk7CisJCQl9CisJCX0KKworCQkvKiBBZGQgbmV3IEVYQ0VQ VCBlbnRyaWVzLCBza2lwcGluZyBhbnkgYWxyZWFkeSBwcmVzZW50LiAqLworCQlQdWJsaWNhdGlv bkFkZFRhYmxlcyhwdWJpZCwgcmVscywgdHJ1ZSwgc3RtdCk7CisKIAkJQ2xvc2VUYWJsZUxpc3Qo cmVscyk7CiAJfQogfQpAQCAtMjMyMyw2ICsyMzkzLDcgQEAgUHVibGljYXRpb25Ecm9wU2NoZW1h cyhPaWQgcHViaWQsIExpc3QgKnNjaGVtYXMsIGJvb2wgbWlzc2luZ19vaykKIAlmb3JlYWNoKGxj LCBzY2hlbWFzKQogCXsKIAkJT2lkCQkJc2NoZW1haWQgPSBsZmlyc3Rfb2lkKGxjKTsKKwkJTGlz dAkgICAqZXhjZXB0X3JlbGlkczsKIAogCQlwc2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FU SU9OTkFNRVNQQUNFTUFQLAogCQkJCQkJCSAgIEFudW1fcGdfcHVibGljYXRpb25fbmFtZXNwYWNl X29pZCwKQEAgLTIzMzksOCArMjQxMCw0MCBAQCBQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKE9pZCBw dWJpZCwgTGlzdCAqc2NoZW1hcywgYm9vbCBtaXNzaW5nX29rKQogCQkJCQkJCWdldF9uYW1lc3Bh Y2VfbmFtZShzY2hlbWFpZCkpKSk7CiAJCX0KIAorCQkvKgorCQkgKiBDb2xsZWN0IEVYQ0VQVCBl bnRyaWVzIGZvciB0YWJsZXMgYmVsb25naW5nIHRvIHRoaXMgc2NoZW1hIGJlZm9yZQorCQkgKiBy ZW1vdmluZyB0aGUgc2NoZW1hIGVudHJ5LgorCQkgKi8KKwkJZXhjZXB0X3JlbGlkcyA9IEdldEV4 Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisK IAkJT2JqZWN0QWRkcmVzc1NldChvYmosIFB1YmxpY2F0aW9uTmFtZXNwYWNlUmVsYXRpb25JZCwg cHNpZCk7CiAJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCisJCS8q CisJCSAqIERyb3AgYW55IHByZXhjZXB0IHJvd3MgZm9yIHRhYmxlcyBiZWxvbmdpbmcgdG8gdGhp cyBzY2hlbWEuIFRoZXNlCisJCSAqIHJvd3MgaGF2ZSBubyBwZ19kZXBlbmQgZW50cnkgcG9pbnRp bmcgYXQgdGhlCisJCSAqIHBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSByb3csIHNvIHRoZXkgYXJl IG5vdCBjYXNjYWRlZCBieSB0aGUKKwkJICogcGVyZm9ybURlbGV0aW9uKCkgY2FsbCBhYm92ZSBh bmQgbXVzdCBiZSBjbGVhbmVkIHVwIGV4cGxpY2l0bHkuCisJCSAqLworCQlmb3JlYWNoX29pZChy ZWxpZCwgZXhjZXB0X3JlbGlkcykKKwkJeworCQkJT2lkCQkJcHJvaWQ7CisKKwkJCWlmIChnZXRf cmVsX25hbWVzcGFjZShyZWxpZCkgIT0gc2NoZW1haWQpCisJCQkJY29udGludWU7CisKKwkJCXBy b2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OUkVMTUFQLAorCQkJCQkJCQkJQW51bV9w Z19wdWJsaWNhdGlvbl9yZWxfb2lkLAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCks CisJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisJCQlpZiAoT2lkSXNWYWxpZChw cm9pZCkpCisJCQl7CisJCQkJT2JqZWN0QWRkcmVzc1NldChvYmosIFB1YmxpY2F0aW9uUmVsUmVs YXRpb25JZCwgcHJvaWQpOworCQkJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUs IDApOworCQkJfQorCQl9CisKKwkJbGlzdF9mcmVlKGV4Y2VwdF9yZWxpZHMpOwogCX0KIH0KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggN2VlODRl YzFjODMuLjk4MzFiZTU0YjQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9w Z291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0 L3Bnb3V0cHV0LmMKQEAgLTIyMjksNyArMjIyOSw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091 dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJICovCiAJCQlpZiAocHViLT5h bGx0YWJsZXMpCiAJCQl7Ci0JCQkJTGlzdAkgICAqZXhjZXB0cHViaWRzID0gTklMOworCQkJCUxp c3QJICAgKmV4Y2VwdF9wdWJpZHMgPSBOSUw7CiAKIAkJCQlpZiAoYW1fcGFydGl0aW9uKQogCQkJ CXsKQEAgLTIyNTIsNyArMjI1Miw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEg KmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJCQkgKiBjbGF1c2UuIFRoZXJlZm9yZSwgZm9y IGEgcGFydGl0aW9uLCBleGNsdXNpb24gbXVzdCBiZQogCQkJCQkgKiBldmFsdWF0ZWQgYXQgdGhl IHRvcC1tb3N0IGFuY2VzdG9yLgogCQkJCQkgKi8KLQkJCQkJZXhjZXB0cHViaWRzID0gR2V0UmVs YXRpb25FeGNsdWRlZFB1YmxpY2F0aW9ucyhsYXN0X2FuY2VzdG9yX3JlbGlkKTsKKwkJCQkJZXhj ZXB0X3B1YmlkcyA9IEdldFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMobGFzdF9hbmNlc3Rv cl9yZWxpZCk7CiAJCQkJfQogCQkJCWVsc2UKIAkJCQl7CkBAIC0yMjYwLDEzICsyMjYwLDEzIEBA IGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9u KQogCQkJCQkgKiBGb3IgYSByZWd1bGFyIHRhYmxlIG9yIGEgcm9vdCBwYXJ0aXRpb25lZCB0YWJs ZSwgY2hlY2sKIAkJCQkJICogZXhjbHVzaW9uIG9uIHRhYmxlIGl0c2VsZi4KIAkJCQkJICovCi0J CQkJCWV4Y2VwdHB1YmlkcyA9IEdldFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMocHViX3Jl bGlkKTsKKwkJCQkJZXhjZXB0X3B1YmlkcyA9IEdldFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlv bnMocHViX3JlbGlkKTsKIAkJCQl9CiAKLQkJCQlpZiAoIWxpc3RfbWVtYmVyX29pZChleGNlcHRw dWJpZHMsIHB1Yi0+b2lkKSkKKwkJCQlpZiAoIWxpc3RfbWVtYmVyX29pZChleGNlcHRfcHViaWRz LCBwdWItPm9pZCkpCiAJCQkJCXB1Ymxpc2ggPSB0cnVlOwogCi0JCQkJbGlzdF9mcmVlKGV4Y2Vw dHB1Ymlkcyk7CisJCQkJbGlzdF9mcmVlKGV4Y2VwdF9wdWJpZHMpOwogCiAJCQkJaWYgKCFwdWJs aXNoKQogCQkJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCBhMjkwOTAyZDYx ZS4uZThiZmIzNmNiMWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIzOTAsNiArMjM5MCwy MyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAl9CiAJZWxzZSBpZiAo TWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJUQUJMRVMi LCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIsICJUQUJMRSIsIE1hdGNo QW55TikgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQogCQlDT01QTEVURV9XSVRIKCIpIik7 CisJLyogQWZ0ZXIgYSBzaW5nbGUgc2NoZW1hIG5hbWUgaW4gU0VUIGNvbnRleHQsIG9mZmVyIEVY Q0VQVCAoIFRBQkxFICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueSwgIlNFVCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnkpICYm CisJCQkgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRIKCJFWENFUFQg KCBUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJTRVQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBU IikpCisJCUNPTVBMRVRFX1dJVEgoIiggVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRF UiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hF TUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7 CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNF VCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgIkNVUlJFTlRfU0NIRU1BIiwgIkVYQ0VQVCIs ICIoIiwgIlRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEhfUVVFUllfVkVSQkFUSU0oUXVlcnlfZm9y X2xpc3Rfb2ZfdGFibGVzX2luX2N1cnJlbnRfc2NoZW1hKTsKKwllbHNlIGlmIChNYXRjaGVzKCJB TFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJT Q0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIikpCisJeworCQlzZXRfY29t cGxldGlvbl9yZWZlcmVuY2UocHJldjRfd2QpOworCQlDT01QTEVURV9XSVRIX1FVRVJZX1ZFUkJB VElNKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9zY2hlbWEpOworCX0KKwllbHNlIGlmIChN YXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiU0VUIiwgIlRBQkxFUyIs ICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIiwgTWF0Y2hB bnlOKSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEgoIikiKTsK IAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gU0VUICggKi8KIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCBNYXRjaEFueU4sICJTRVQiLCAiKCIp KQogCQlDT01QTEVURV9XSVRIKCJwdWJsaXNoIiwgInB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMi LCAicHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QiKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggOGI0OTIzOWI1NzQuLjM1ZGI3ZTFmZjZkIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtNTk0LDYgKzU5NCw5MiBA QCBFeGNlcHQgdGFibGVzOgogICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKICAgICAicHVi X3Rlc3QudGVzdHB1Yl90YmxfczIiCiAKKy0tIFNFVDogcmVwbGFjZSB0aGUgZXhjZXB0IGxpc3Qg KGtlZXAgc2FtZSBzY2hlbWEsIGRpZmZlcmVudCBleGNlcHQgdGFibGUpCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBF WENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyKTsKK1xkUnArIHRlc3RwdWJfYWx0 ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3Qg fCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAg ICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxl czoKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczIiCisKKy0tIGZhaWw6IHRhYmxlIGluIEVY Q0VQVCBjbGF1c2UgYWxzbyBhcHBlYXJzIGluIHRoZSBleHBsaWNpdCB0YWJsZSBsaXN0CitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEUgcHViX3Rlc3QudGVz dHB1Yl90YmxfczEsIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJf dGVzdC50ZXN0cHViX3RibF9zMSk7CitFUlJPUjogIHRhYmxlICJwdWJfdGVzdC50ZXN0cHViX3Ri bF9zMSIgY2Fubm90IGFwcGVhciBpbiBib3RoIHRoZSB0YWJsZSBsaXN0IGFuZCB0aGUgRVhDRVBU IGNsYXVzZQorLS0gZXJyb3I6IGV4Y2VwdCB0YWJsZSdzIHNjaGVtYSAocHVibGljKSBub3QgaW4g dGhlIHB1YmxpY2F0aW9uJ3Mgc2NoZW1hIGxpc3QgKHB1Yl90ZXN0KQorQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhD RVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl90YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1YmxpYy50 ZXN0cHViX3RibDEiIGluIEVYQ0VQVCBjbGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAi cHViX3Rlc3QiCitMSU5FIDE6IC4uLnhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0 IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlcy4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFNFVDogdW5xdWFsaWZpZWQg bmFtZSBpbiBFWENFUFQgaXMgaW1wbGljaXRseSBxdWFsaWZpZWQgd2l0aCB0aGUgc2NoZW1hCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsX3MxKTsKK1xkUnArIHRlc3RwdWJf YWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAg ICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRh YmxlczoKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiCisKKy0tIFNFVCB3aXRob3V0IEVY Q0VQVCBjbGVhcnMgdGhlIGV4aXN0aW5nIGV4Y2VwdCBsaXN0CitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1xkUnAr IHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5z IHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAg ICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0Igor CistLSBTRVQgdG8gYSBkaWZmZXJlbnQgc2NoZW1hIHJlbW92ZXMgb2xkIHNjaGVtYSdzIEVYQ0VQ VCBlbnRyaWVzCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsX3MxKTsKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1B IHB1YmxpYzsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9h bHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxs IHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdl bmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6Cisg ICAgInB1YmxpYyIKKworLS0gZmFpbDogbm9uZXhpc3RlbnQgdGFibGUgaW4gRVhDRVBUIGNsYXVz ZSAoU0VUIHBhdGgpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQg VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Lm5vbmV4aXN0 ZW50X3RhYmxlKTsKK0VSUk9SOiAgcmVsYXRpb24gInB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxl IiBkb2VzIG5vdCBleGlzdAorLS0gU0VUOiBtdWx0aXBsZSBzY2hlbWFzIGVhY2ggd2l0aCB0aGVp ciBvd24gRVhDRVBUIGNsYXVzZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNl cHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50 ZXN0cHViX3RibF9zMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEVYQ0VQVCAoVEFCTEUgdGVzdHB1 Yl90YmwxKTsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9h bHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxs IHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdl bmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6Cisg ICAgInB1Yl90ZXN0IgorICAgICJwdWJsaWMiCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVz dC50ZXN0cHViX3RibF9zMSIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKworLS0gZXJyb3I6 IEVYQ0VQVCBpcyBub3QgYWxsb3dlZCB3aXRoIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfYWx0ZXJfZXhjZXB0IERST1AgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyKTsKK0VSUk9SOiAgRVhDRVBUIGNsYXVzZSBpcyBu b3Qgc3VwcG9ydGVkIHdpdGggRFJPUCBpbiBBTFRFUiBQVUJMSUNBVElPTgorLS0gRFJPUCBUQUJM RVMgSU4gU0NIRU1BIHJlbW92ZXMgYXNzb2NpYXRlZCBFWENFUFQgZW50cmllcworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90 ZXN0OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2FsdGVy X2V4Y2VwdAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2Vx dWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJh dGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9u ZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAi cHVibGljIgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKwogLS0g Q2xlYW51cAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rlc3Qu dGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHVibGljYXRpb24uc3FsCmluZGV4IGU5Mzg3NDE4OTA0Li45YjcxNDYzOWM3NSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMjk2LDYgKzI5Niw0NCBAQCBBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKHRlcwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQURE IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHVi X3RibF9zMSwgdGVzdHB1Yl90YmxfczIpOwogXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKIAor LS0gU0VUOiByZXBsYWNlIHRoZSBleGNlcHQgbGlzdCAoa2VlcCBzYW1lIHNjaGVtYSwgZGlmZmVy ZW50IGV4Y2VwdCB0YWJsZSkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0 IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVz dHB1Yl90YmxfczIpOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKworLS0gZmFpbDogdGFi bGUgaW4gRVhDRVBUIGNsYXVzZSBhbHNvIGFwcGVhcnMgaW4gdGhlIGV4cGxpY2l0IHRhYmxlIGxp c3QKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRSBwdWJf dGVzdC50ZXN0cHViX3RibF9zMSwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKTsKKworLS0gZXJyb3I6IGV4Y2VwdCB0YWJsZSdz IHNjaGVtYSAocHVibGljKSBub3QgaW4gdGhlIHB1YmxpY2F0aW9uJ3Mgc2NoZW1hIGxpc3QgKHB1 Yl90ZXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl90YmwxKTsK KworLS0gU0VUOiB1bnF1YWxpZmllZCBuYW1lIGluIEVYQ0VQVCBpcyBpbXBsaWNpdGx5IHF1YWxp ZmllZCB3aXRoIHRoZSBzY2hlbWEKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhj ZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90 YmxfczEpOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKworLS0gU0VUIHdpdGhvdXQgRVhD RVBUIGNsZWFycyB0aGUgZXhpc3RpbmcgZXhjZXB0IGxpc3QKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsg dGVzdHB1Yl9hbHRlcl9leGNlcHQKKworLS0gU0VUIHRvIGEgZGlmZmVyZW50IHNjaGVtYSByZW1v dmVzIG9sZCBzY2hlbWEncyBFWENFUFQgZW50cmllcworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJM RSB0ZXN0cHViX3RibF9zMSk7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2Vw dCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2Vw dAorCistLSBmYWlsOiBub25leGlzdGVudCB0YWJsZSBpbiBFWENFUFQgY2xhdXNlIChTRVQgcGF0 aCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4g U0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUp OworCistLSBTRVQ6IG11bHRpcGxlIHNjaGVtYXMgZWFjaCB3aXRoIHRoZWlyIG93biBFWENFUFQg Y2xhdXNlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVT IElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3Mx KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwdWJsaWMgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibDEpOworXGRS cCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKworLS0gZXJyb3I6IEVYQ0VQVCBpcyBub3QgYWxsb3dl ZCB3aXRoIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1Ag VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJf dGJsX3MyKTsKKworLS0gRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHJlbW92ZXMgYXNzb2NpYXRlZCBF WENFUFQgZW50cmllcworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJP UCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQK KwogLS0gQ2xlYW51cAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHVi X3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCBiL3NyYy90ZXN0L3N1YnNj cmlwdGlvbi90LzAzN19leGNlcHQucGwKaW5kZXggMGJhNmQ2ZjhiYjIuLjAxZWFmYjViN2M4IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCisrKyBiL3Ny Yy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwKQEAgLTM3Niw2ICszNzYsNjEgQEAg JHJlc3VsdCA9CiBpcygkcmVzdWx0LCBxcSgwKSwKIAknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4g U0NIRU1BIEVYQ0VQVDogZXhjbHVkZWQgdGFibGUgbm90IHN5bmNlZCcpOwogCisjIFNFVDogcmVw bGFjZSB0aGUgZXhjZXB0IGxpc3Q7IHRhYl9leGNsdWRlZCBpcyBub3cgaW5jbHVkZWQgYW5kIHRh Yl9wdWJsaXNoZWQgaXMgZXhjbHVkZWQuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJBTFRFUiBQVUJMSUNBVElPTiBzY2hfcHViIFNFVCBUQUJMRVMgSU4gU0NIRU1B IHNjaDEgRVhDRVBUIChUQUJMRSBzY2gxLnRhYl9wdWJsaXNoZWQpIgorKTsKKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gc2NoX3N1 YiBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJz Y3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICdzY2hfc3ViJyk7CisKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUlOU0VSVCBJTlRPIHNjaDEudGFi X3B1Ymxpc2hlZCBWQUxVRVMgKDcpOworCUlOU0VSVCBJTlRPIHNjaDEudGFiX2V4Y2x1ZGVkIFZB TFVFUyAoNyk7CispKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2NoX3N1 YicpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1ZGVkIFdIRVJFIGEgPSA3 Iik7CitpcygkcmVzdWx0LCBxcSgxKSwKKwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4gU0NIRU1B IEVYQ0VQVDogbmV3bHkgaW5jbHVkZWQgdGFibGUgaXMgcmVwbGljYXRlZCcKKyk7CiskcmVzdWx0 ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBj b3VudCgqKSBGUk9NIHNjaDEudGFiX3B1Ymxpc2hlZCBXSEVSRSBhID0gNyIpOworaXMoJHJlc3Vs dCwgcXEoMCksCisJJ0FMVEVSIC4uLiBTRVQgVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IG5vdy1l eGNsdWRlZCB0YWJsZSBpcyBub3QgcmVwbGljYXRlZCcKKyk7CisKKyMgU0VUIHdpdGhvdXQgRVhD RVBUOiBjbGVhcnMgdGhlIGV4Y2VwdCBsaXN0OyBib3RoIHRhYmxlcyBhcmUgbm93IHB1Ymxpc2hl ZC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJ Q0FUSU9OIHNjaF9wdWIgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgc2NoMSIpOworJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiBzY2hfc3Vi IFJFRlJFU0ggUFVCTElDQVRJT04iKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNj cmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3NjaF9zdWInKTsKKworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJSU5TRVJUIElOVE8gc2NoMS50YWJf cHVibGlzaGVkIFZBTFVFUyAoOCk7CisJSU5TRVJUIElOVE8gc2NoMS50YWJfZXhjbHVkZWQgVkFM VUVTICg4KTsKKykpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzY2hfc3Vi Jyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfcHVibGlzaGVkIFdIRVJFIGEgPSA4 Iik7CitpcygkcmVzdWx0LCBxcSgxKSwKKwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4gU0NIRU1B IChubyBFWENFUFQpOiB0YWJfcHVibGlzaGVkIHJlcGxpY2F0ZWQgYWZ0ZXIgZXhjZXB0IGxpc3Qg Y2xlYXJlZCcKKyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1ZGVkIFdIRVJF IGEgPSA4Iik7CitpcygkcmVzdWx0LCBxcSgxKSwKKwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4g U0NIRU1BIChubyBFWENFUFQpOiB0YWJfZXhjbHVkZWQgcmVwbGljYXRlZCBhZnRlciBleGNlcHQg bGlzdCBjbGVhcmVkJworKTsKKwogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICdEUk9QIFNVQlNDUklQVElPTiBzY2hfc3ViJyk7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiBzY2hfcHViJyk7CiAKQEAgLTQ0Myw2 ICs0OTgsMzYgQEAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9Q IFNVQlNDUklQVElPTiB0YXBfc3ViJyk7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViMScpOwogJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gdGFwX3B1YjInKTsKIAorIyBP SyB3aGVuIGEgdGFibGUgaXMgZXhjbHVkZWQgYnkgYSBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVCBw dWJsaWNhdGlvbiwKKyMgYnV0IGlzIGluY2x1ZGVkIGJ5IGFub3RoZXIgcHVibGljYXRpb24uCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnVFJVTkNBVEUgdGFiMScpOwor JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdUUlVOQ0FURSB0YWIxJyk7 CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFU RSBQVUJMSUNBVElPTiB0YXBfcHViMSBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWMgRVhDRVBU IChUQUJMRSBwdWJsaWMudGFiMSk7CisJQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWIyIEZPUiBU QUJMRSB0YWIxOworCUlOU0VSVCBJTlRPIHRhYjEgVkFMVUVTKDEpOworKSk7Ciskbm9kZV9zdWJz Y3JpYmVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1YiBD T05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWIxLCB0YXBf cHViMiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygk bm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHFxKElOU0VSVCBJTlRPIHRhYjEgVkFMVUVTKDIpKSk7Ciskbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWInKTsKKworJHJlc3VsdCA9CisgICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIxIE9S REVSIEJZIGEiKTsKK2lzKCAkcmVzdWx0LCBxcSgxCisyKSwKKwkiVEFCTEVTIElOIFNDSEVNQSBF WENFUFQ6IHRhYmxlIGV4Y2x1ZGVkIGluIHNjaGVtYSBwdWIgYnV0IGluY2x1ZGVkIGJ5IGFub3Ro ZXIgcHViIGlzIHJlcGxpY2F0ZWQiCispOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9OIHRhcF9zdWInKTsKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWIxJyk7Cisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiB0 YXBfcHViMicpOworCiAkbm9kZV9wdWJsaXNoZXItPnN0b3AoJ2Zhc3QnKTsKIAogZG9uZV90ZXN0 aW5nKCk7Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --0000000000004d5e23065380257b--