Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vGxzH-009pxU-Fs for pgsql-hackers@arkaria.postgresql.org; Thu, 06 Nov 2025 11:17:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vGxzG-007Dfu-AR for pgsql-hackers@arkaria.postgresql.org; Thu, 06 Nov 2025 11:17:05 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vGxzF-007Dfi-DP for pgsql-hackers@lists.postgresql.org; Thu, 06 Nov 2025 11:17:04 +0000 Received: from mail-oi1-x232.google.com ([2607:f8b0:4864:20::232]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vGxzC-005i0X-0P for pgsql-hackers@lists.postgresql.org; Thu, 06 Nov 2025 11:17:03 +0000 Received: by mail-oi1-x232.google.com with SMTP id 5614622812f47-44ff2993953so342760b6e.3 for ; Thu, 06 Nov 2025 03:17:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762427821; x=1763032621; 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=8JNSLR7VZNUi+Y6tVg3kO0odDHSMrMYv4vyy0Dy+bx8=; b=UQXTXLwEZ2K9fYEUG1QKlSVayD8JtpNVkCtiMa3GtkYMrC3qph9dRTGxULczO2AQ5K SEDKkWxvRDXc43Oiqyoxvthx1VRNgT6Cv+SLq52nunbM7zO1VfqFwlXdiC5JW/8yqEYX 6oKh1diGl5Ta5yyRkUH1dKCEpGdJusDtquJXXjIcbb1LywL2jx9emxdP4PGH0Mq2Qh5t WvoZLfnmf5XdVm0LgZ5cefPa8nFGe5d7iTS7M7sXDzg5Fu+7u4c3mZQxPmPz9Dy/uNqn vnO7HLPvDyAdFvAzHk3zHxAF+M5J0sGoV0kqZaM7sN5To/bJItR920RYVTgU1XiuXRsX 87Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762427821; x=1763032621; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=8JNSLR7VZNUi+Y6tVg3kO0odDHSMrMYv4vyy0Dy+bx8=; b=tbCaRLFvZuOkG1DYihBi6K9GKaXeXXbLRqhSHDqlgXXuHVmlJ6ueMsWeZ81mnhGzVw G8Xreh4FcbgWmnrYRcxY7KYRAPUUUhPuUQxOmZ+NciAvyhf60xg/+QFte8/GerHxPP9f mAEUBmzuhexKbU145zMDnbWUYlumlozUs/8CpWmR+ocDnG93eyhyJmBv8FhGOL8EWh0F czoOnRa2zimWegXKQIzcBVMD6JRYo2+cXewyoz7ybhsKRNEbZSLiyj671XdvofMlTsWm UzC0V0kSAtftUHq6yk6j8r22zNqdRZdjiWK8qSPPGs6yOkjTOTDNuHzrxbjbhVJ9bPg8 clDQ== X-Forwarded-Encrypted: i=1; AJvYcCVFw3I0dGSWVCMEs8csXMhmdgWj13vTSpQE0xsvVNICXrKJMMcxrHqRZh1Ur5nV46X3P1KrhK/+VwbVQ2Jz@lists.postgresql.org X-Gm-Message-State: AOJu0YxUjgPsPyD9zsSmfs2alA2wZl+X5oisMwOmIcPFGM0ZuHD4DqYe tjc1B1zLiSCPsVmODcvSSu96fg+k2KTkEMk4lHVVl9W8kVl3BtwoEM1YH9kD1XNKNBOUVhmuE4u oDuaAnRSAwhtmWxS25BTBGAIEeW7qAmI= X-Gm-Gg: ASbGncu9nsIJRMyjwUyqUZwLoe7+CNdzi8vqUOTXjXdyHpYpcaRJF2Xmb2Xnm3X50bi QFevdh2alpvO6HQdSvsZjF9JA3oz5FJs8NUKpjcJoAXsHdbTAnmTTXke6nmoBgwYFN3PvpTuKVZ OnxgyD1lev7KdSME8Ylo8qAtByefU9+4KWdka8wH7fETFNzTjxcYFuSQa4Kq3GP949/4SLPfdlg G9dc+9HBrZYTl5Hq/zWFn98zHn7Y5Z2cvyjLCqjiKdsHYWYxIy59CScnIoDxScvpDpRRhoBhA== X-Google-Smtp-Source: AGHT+IHggpFHHFnnuxkiM51TAyoousPXvcCNrCorDnFIh17O3HBVJrodJmj/KxK1De+0IE4KdQHiWk1/dSeeD2XkX98= X-Received: by 2002:a05:6808:80af:b0:44d:bdeb:f57f with SMTP id 5614622812f47-44fed501ee0mr3258525b6e.48.1762427821314; Thu, 06 Nov 2025 03:17:01 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Thu, 6 Nov 2025 16:46:48 +0530 X-Gm-Features: AWmQ_bnWWzyAq65dtm2enWkPWHwYoqGnw41oNof4WTXdsMeHzQKM2jRJ9w677zc Message-ID: Subject: Re: Skipping schema changes in publication To: Peter Smith Cc: vignesh C , Amit Kapila , "Zhijie Hou (Fujitsu)" , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000003b97d90642eb344b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003b97d90642eb344b Content-Type: text/plain; charset="UTF-8" On Thu, 30 Oct 2025 at 11:34, Peter Smith wrote: > > Hi Vignesh > > Here are some review comments for the patch v24-0002. > > These comments are just for the SGML docs. The patch needs a rebase so > I was unable to review the code. > > ====== > Commit message > > 1. > A new column "prexcept" is added to table "pg_publication_rel", to maintain > the relations that the user wants to exclude from the publications. > > ~ > > /to maintain/to flag/ > > ====== > doc/src/sgml/logical-replication.sgml > > 2. > > - To add tables to a publication, the user must have ownership rights on the > - table. To add all tables in schema to a publication, the user must be a > - superuser. To create a publication that publishes all tables or > all tables in > - schema automatically, the user must be a superuser. > + To create a publication using FOR ALL TABLES or FOR ALL TABLES IN SCHEMA, > + the user must be a superuser. To add ALL TABLES or ALL TABLES IN SCHEMA to a > + publication, the user must be a superuser. To add tables to a publication, > + the user must have ownership rights on the table. > > > Those "FOR ALL TABLES" etc are missing SGML markup. > > ====== > doc/src/sgml/ref/alter_publication.sgml > > 3. > +ALTER PUBLICATION name > ADD ALL TABLES [ EXCEPT [ TABLE ] class="parameter">exception_object [, ... ] ] > > and > > + > +where class="parameter">exception_object is: > + > + [ ONLY ] table_name [ * ] > + > > It is not clear from the syntax which of these is possible. > > ... ADD ALL TABLES EXCEPT TABLE t1,t2,t3 > ... ADD ALL TABLES EXCEPT TABLE t1, TABLE t2, TABLES t3 > > IMO it is best put the "[TABLE]" within the exception_object: > [ TABLE ] [ ONLY ] table_name [ * ] > > Then both are possible, which is consistent with how "FOR TABLE" syntax works. > > Furthermore, you might want later to say EXCLUDE SEQUENCE, so doing it > this way makes that possible. > > ~~~ > > 4. > - Adding a table to a publication additionally requires owning that table. > - The ADD TABLES IN SCHEMA, > + Adding a table to or excluding a table from a publication additionally > + requires owning that table. The ADD ALL TABLES, > > This wording seems a bit awkward. How are re-phrasing like: > > SUGGESTION > Adding or excluding a table from a publication requires ownership of that table. > > ~~~ > > 5. > - name to explicitly indicate that descendant tables are included. > + name to explicitly indicate that descendant tables are affected. For > + partitioned tables, ONLY donot have any effect. > > typo: /donot/does not/ > > ====== > doc/src/sgml/ref/create_publication.sgml > > 6. > - [ FOR ALL TABLES > + [ FOR ALL TABLES [ EXCEPT [ TABLE ] class="parameter">exception_object [, ... ] ] > | FOR class="parameter">publication_object [, ... ] ] > [ WITH ( class="parameter">publication_parameter [= class="parameter">value] [, ... ] ) ] > > @@ -30,6 +30,10 @@ CREATE PUBLICATION class="parameter">name > > TABLE [ ONLY ] class="parameter">table_name [ * ] [ ( class="parameter">column_name [, ... ] ) ] [ WHERE ( > expression ) ] [, ... ] > TABLES IN SCHEMA { class="parameter">schema_name | CURRENT_SCHEMA } [, ... > ] > + > +where class="parameter">exception_object is: > + > + [ ONLY ] table_name [ * ] > > Same review comment as #3 before. > > I think it is clearer (and more flexible) to change the > exception_object to include [TABLE]. > [ TABLE ] [ ONLY ] table_name [ * ] > > It also helps pave the way for any future EXCLUDE SEQUENCE feature. > > ~~~ > > 7. > + > + This clause specifies a list of tables to be excluded from the > + publication. It can only be used with FOR ALL TABLES. > + If ONLY is specified before the table name, only > + that table is excluded from the publication. If > ONLY is > + not specified, the table and all its descendant tables (if any) are > + excluded. Optionally, * can be specified after the > + table name to explicitly indicate that descendant tables are excluded. > + This does not apply to a partitioned table, however. The partitioned > + table or its partitions are excluded from the publication based on the > + parameter publish_via_partition_root. > + > + > + When publish_via_partition_root is set to > + true, specifying a root partitioned table in > + EXCEPT TABLE excludes it and all its partitions from > + replication. Specifying a leaf partition has no effect, as its > changes are > + still replicated via the root partitioned table. When > + publish_via_partition_root is set to > + false, specifying a partitioned table or non-leaf > + partition has no effect, as changes are replicated via the leaf > + partitions. Specifying a leaf partition excludes only that partition from > + replication. > + > > I felt that the second paragraph should be started with the sentence > "The partitioned table or its partitions are excluded...", so then > everything related to "publish_via_partition_root" is kept together. > > ~~~ > > 8. > + > + Create a publication that publishes all changes in all the tables except for > + the changes of users and > + departments: > + > +CREATE PUBLICATION mypublication FOR ALL TABLES EXCEPT users, departments; > + > + > > The words "the changes of" are not needed, and you did not use that > wording in the ALTER PUBLICATION example. > > ====== > doc/src/sgml/ref/psql-ref.sgml > > 9. > If x is appended to the command name, the results > are displayed in expanded mode. > - If + is appended to the command name, the tables and > - schemas associated with each publication are shown as well. > + If + is appended to the command name, the tables, > + excluded tables and schemas associated with each publication > are shown as > + well. > > > /excluded tables and schemas/excluded tables, and schemas/ > Hi Peter, Vignesh Thanks for reviewing the patches. I have rebased the patches. I have modified the syntax for EXCEPT TABLE (002) patch. For example, now to exclude a table we need to specify like: CREATE PUBLICATION pub1 FOR ALL TABLE EXCEPT TABLE (t1, t2); We need to specify '()' around the table list. This patchset is the only rebased version. I will address all the comments in the next version of patch. Thanks, Shlok Kyal --0000000000003b97d90642eb344b Content-Type: application/octet-stream; name="v25-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v25-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhnbzpc90 RnJvbSA2MzJhMWY2YmFiNzMwNWI1NTgyMWQ3YjNjNmU0MmNkMmJiMTFjZDg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMzAgT2N0IDIwMjUgMTA6NTI6NTYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYy NSAxLzNdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbCAK IHJlc2V0IHRoZSBwdWJsaWNhdGlvbiB3aXRoIGRlZmF1bHQgdmFsdWVzLgoKVGhpcyBwYXRjaCBh ZGRzIGEgbmV3IFJFU0VUIGNsYXVzZSB0byBBTFRFUiBQVUJMSUNBVElPTiB3aGljaCB3aWxsIHJl c2V0CnRoZSBwdWJsaWNhdGlvbiB0byB0aGUgZGVmYXVsdCBzdGF0ZSB3aGljaCBpbmNsdWRlcyBy ZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uCnBhcmFtZXRlcnMsIHNldHRpbmcgQUxMIFRBQkxFUyBm bGFnIHRvIGZhbHNlIGFuZCBkcm9wcGluZyB0aGUgcmVsYXRpb25zIGFuZApzY2hlbWFzIHRoYXQg YXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uClVzYWdlOgpBTFRFUiBQVUJMSUNB VElPTiBwdWIxIFJFU0VUOwotLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24u c2dtbCAgIHwgIDM0ICsrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMgICAgfCAxMjQgKysrKysrKysrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueSAgICAgICAgICAgICAgICAgfCAgIDkgKysKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUu aW4uYyAgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgg ICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dCB8IDExOCArKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsICAgICAgfCAgNTcgKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAzMzEg aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJs aWNhdGlvbi5zZ21sCmluZGV4IGMzNmU3NTRmODg3Li44NWM3OWMxYTljYiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMjcsNiArMjcsNyBAQCBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IERST1AgPHJlcGxhYwogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBD VVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQogQUxURVIgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBS RU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVTRVQKIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVi bGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCkBAIC02 OSwxOCArNzAsMzEgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgPC9wYXJhPgogCiAgIDxw YXJhPgotICAgVGhlIHJlbWFpbmluZyB2YXJpYW50cyBjaGFuZ2UgdGhlIG93bmVyIGFuZCB0aGUg bmFtZSBvZiB0aGUgcHVibGljYXRpb24uCisgICBUaGUgPGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+ IGNsYXVzZSB3aWxsIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlCisgICBwdWJsaWNhdGlvbi4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxsaXRlcmFsPlJFTkFNRTwvbGl0ZXJhbD4gY2xh dXNlIHdpbGwgY2hhbmdlIHRoZSBuYW1lIG9mIHRoZQorICAgcHVibGljYXRpb24uCisgIDwvcGFy YT4KKworICA8cGFyYT4KKyAgIFRoZSA8bGl0ZXJhbD5SRVNFVDwvbGl0ZXJhbD4gY2xhdXNlIHdp bGwgcmVzZXQgdGhlIHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0CisgICBzdGF0ZS4gVGhpcyBp bmNsdWRlcyByZXNldHRpbmcgYWxsIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcgdGhl CisgICA8bGl0ZXJhbD5BTEwgVEFCTEVTPC9saXRlcmFsPiBmbGFnIHRvIDxsaXRlcmFsPmZhbHNl PC9saXRlcmFsPiwgYW5kCisgICByZW1vdmluZyBhbGwgYXNzb2NpYXRlZCB0YWJsZXMgYW5kIHNj aGVtYXMgZnJvbSB0aGUgcHVibGljYXRpb24uCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KICAgIFlv dSBtdXN0IG93biB0aGUgcHVibGljYXRpb24gdG8gdXNlIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FU SU9OPC9jb21tYW5kPi4KICAgIEFkZGluZyBhIHRhYmxlIHRvIGEgcHVibGljYXRpb24gYWRkaXRp b25hbGx5IHJlcXVpcmVzIG93bmluZyB0aGF0IHRhYmxlLgotICAgVGhlIDxsaXRlcmFsPkFERCBU QUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBhbmQKLSAgIDxsaXRlcmFsPlNFVCBUQUJMRVMgSU4g U0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRoZQotICAgaW52b2tp bmcgdXNlciB0byBiZSBhIHN1cGVydXNlci4KLSAgIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11 c3QgYmUgYWJsZSB0byA8bGl0ZXJhbD5TRVQgUk9MRTwvbGl0ZXJhbD4gdG8gdGhlCi0gICBuZXcg b3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlIDxsaXRlcmFsPkNSRUFURTwvbGl0 ZXJhbD4KLSAgIHByaXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuCisgICBUaGUgPGxpdGVyYWw+QURE IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LAorICAgPGxpdGVyYWw+U0VUIFRBQkxFUyBJTiBT Q0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gYW5kCisgICA8bGl0ZXJhbD5SRVNFVDwv bGl0ZXJhbD4gb2YgcHVibGljYXRpb24gcmVxdWlyZXMgdGhlIGludm9raW5nIHVzZXIgdG8gYmUg YQorICAgc3VwZXJ1c2VyLiBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBtdXN0IGJlIGFibGUgdG8K KyAgIDxsaXRlcmFsPlNFVCBST0xFPC9saXRlcmFsPiB0byB0aGUgbmV3IG93bmluZyByb2xlLCBh bmQgdGhhdCByb2xlIG11c3QgaGF2ZQorICAgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2 aWxlZ2Ugb24gdGhlIGRhdGFiYXNlLgogICAgQWxzbywgdGhlIG5ldyBvd25lciBvZiBhCiAgICA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLWZvci10YWJsZXMtaW4t c2NoZW1hIj48bGl0ZXJhbD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD48L2xpbms+CiAg ICBvciA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLWZvci1hbGwt dGFibGVzIj48bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD48L2xpbms+CkBAIC0yMzIs NiArMjQ2LDEyIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNhbGVzX3B1YmxpY2F0aW9uIEFERCBUQUJM RVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiAgICA8c3RydWN0bmFtZT5wcm9kdWN0aW9u X3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKIDxwcm9ncmFtbGlzdGluZz4KIEFMVEVSIFBVQkxJ Q0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gQUREIFRBQkxFIHVzZXJzLCBkZXBhcnRtZW50 cywgVEFCTEVTIElOIFNDSEVNQSBwcm9kdWN0aW9uOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+ CisKKyAgPHBhcmE+CisgICBSZXNldCB0aGUgcHVibGljYXRpb24gPHN0cnVjdG5hbWU+cHJvZHVj dGlvbl9wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQ VUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIFJFU0VUOwogPC9wcm9ncmFtbGlzdGlu Zz48L3BhcmE+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuYwppbmRleCAxZmFmM2E4YzM3Mi4uZWQ4OGMzMDY2NzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3B1YmxpY2F0aW9uY21kcy5jCkBAIC00OCw2ICs0OCwxNiBAQAogI2luY2x1ZGUgInV0aWxzL3Zh cmxlbmEuaCIKIAogCisvKiBDUkVBVEUgUFVCTElDQVRJT04gZGVmYXVsdCB2YWx1ZXMgZm9yIGZs YWdzIGFuZCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzICovCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FD VElPTl9JTlNFUlQgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fVVBEQVRFIHRydWUK KyNkZWZpbmUgUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSB0cnVlCisjZGVmaW5lIFBVQl9ERUZB VUxUX0FDVElPTl9UUlVOQ0FURSB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX1ZJQV9ST09UIGZh bHNlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMgZmFsc2UKKyNkZWZpbmUgUFVCX0RF RkFVTFRfQUxMX1NFUVVFTkNFUyBmYWxzZQorI2RlZmluZSBQVUJfREVGQVVMVF9HRU5DT0xTIFBV QkxJU0hfR0VOQ09MU19OT05FCisKIC8qCiAgKiBJbmZvcm1hdGlvbiB1c2VkIHRvIHZhbGlkYXRl IHRoZSBjb2x1bW5zIGluIHRoZSByb3cgZmlsdGVyIGV4cHJlc3Npb24uIFNlZQogICogY29udGFp bl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlciBmb3IgZGV0YWlscy4KQEAgLTkwLDEyICsxMDAsMTIg QEAgcGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJKnB1Ymxp c2hfZ2VuZXJhdGVkX2NvbHVtbnNfZ2l2ZW4gPSBmYWxzZTsKIAogCS8qIGRlZmF1bHRzICovCi0J cHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gdHJ1ZTsKLQlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSB0 cnVlOwotCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IHRydWU7Ci0JcHViYWN0aW9ucy0+cHVidHJ1 bmNhdGUgPSB0cnVlOwotCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZhbHNlOwotCSpw dWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gUFVCTElTSF9HRU5DT0xTX05PTkU7CisJcHViYWN0 aW9ucy0+cHViaW5zZXJ0ID0gUFVCX0RFRkFVTFRfQUNUSU9OX0lOU0VSVDsKKwlwdWJhY3Rpb25z LT5wdWJ1cGRhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVVBEQVRFOworCXB1YmFjdGlvbnMtPnB1 YmRlbGV0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEU7CisJcHViYWN0aW9ucy0+cHVidHJ1 bmNhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEU7CisJKnB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290ID0gUFVCX0RFRkFVTFRfVklBX1JPT1Q7CisJKnB1Ymxpc2hfZ2VuZXJhdGVkX2Nv bHVtbnMgPSBQVUJfREVGQVVMVF9HRU5DT0xTOwogCiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZv cmVhY2gobGMsIG9wdGlvbnMpCkBAIC0xMjA5LDYgKzEyMTksMTA2IEBAIEludmFsaWRhdGVQdWJs aWNhdGlvblJlbHMoTGlzdCAqcmVsaWRzKQogCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgp OwogfQogCisvKgorICogUmVzZXQgdGhlIHB1YmxpY2F0aW9uLgorICoKKyAqIFJlc2V0IHRoZSBw dWJsaWNhdGlvbiBwYXJhbWV0ZXJzLCBzZXR0aW5nIEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSBh bmQgZHJvcAorICogYWxsIHJlbGF0aW9ucyBhbmQgc2NoZW1hcyB0aGF0IGFyZSBhc3NvY2lhdGVk IHdpdGggdGhlIHB1YmxpY2F0aW9uLgorICovCitzdGF0aWMgdm9pZAorQWx0ZXJQdWJsaWNhdGlv blJlc2V0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCisJ CQkJCSAgUmVsYXRpb24gcmVsLCBIZWFwVHVwbGUgdHVwKQoreworCUZvcm1fcGdfcHVibGljYXRp b24gcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVwKTsKKwlPaWQJ CQlwdWJpZCA9IHB1YmZvcm0tPm9pZDsKKwlMaXN0CSAgICpzY2hlbWFpZHMgPSBOSUw7CisJTGlz dAkgICAqcmVscyA9IE5JTDsKKwlMaXN0CSAgICpyZWxpZHMgPSBOSUw7CisJYm9vbAkJbnVsbHNb TmF0dHNfcGdfcHVibGljYXRpb25dOworCWJvb2wJCXJlcGxhY2VzW05hdHRzX3BnX3B1YmxpY2F0 aW9uXTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKworCS8qIFJFU0VU IHB1YmxpY2F0aW9uIHJlcXVpcmVzIHN1cGVydXNlciAqLworCWlmICghc3VwZXJ1c2VyKCkpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxF R0UpLAorCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gUkVTRVQgcHVibGljYXRpb24i KSk7CisKKwltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51bGxz LCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisJbWVtc2V0KHJlcGxhY2VzLCBmYWxzZSwgc2l6ZW9m KHJlcGxhY2VzKSk7CisKKwkvKiBSZXNldCB0aGUgcHVibGljYXRpb24gcGFyYW1ldGVycyAqLwor CXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1Ymluc2VydCAtIDFdID0gQm9vbEdldERhdHVt KFBVQl9ERUZBVUxUX0FDVElPTl9JTlNFUlQpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRp b25fcHViaW5zZXJ0IC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25f cHVidXBkYXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURSk7 CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ1cGRhdGUgLSAxXSA9IHRydWU7CisK Kwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJkZWxldGUgLSAxXSA9IEJvb2xHZXREYXR1 bShQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0 aW9uX3B1YmRlbGV0ZSAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9u X3B1YnRydW5jYXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5D QVRFKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnRydW5jYXRlIC0gMV0gPSB0 cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHVidmlhcm9vdCAtIDFdID0gQm9v bEdldERhdHVtKFBVQl9ERUZBVUxUX1ZJQV9ST09UKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1Ymxp Y2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNh dGlvbl9wdWJnZW5jb2xzIC0gMV0gPSBDaGFyR2V0RGF0dW0oUFVCX0RFRkFVTFRfR0VOQ09MUyk7 CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5jb2xzIC0gMV0gPSB0cnVlOwor CisJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSAqLworCWlmIChwdWJmb3JtLT5wdWJh bGx0YWJsZXMpCisJeworCQl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMg LSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BTExfVEFCTEVTKTsKKwkJcmVwbGFjZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9IHRydWU7CisJCUNhY2hlSW52 YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CisJfQorCisJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBm YWxzZSAqLworCWlmIChwdWJmb3JtLT5wdWJhbGxzZXF1ZW5jZXMpCisJeworCQl2YWx1ZXNbQW51 bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGxzZXF1ZW5jZXMgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJf REVGQVVMVF9BTExfU0VRVUVOQ0VTKTsKKwkJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9w dWJhbGxzZXF1ZW5jZXMgLSAxXSA9IHRydWU7CisJfQorCisJdHVwID0gaGVhcF9tb2RpZnlfdHVw bGUodHVwLCBSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMsCisJCQkJCQkJcmVw bGFjZXMpOworCisJLyogVXBkYXRlIHRoZSBjYXRhbG9nLiAqLworCUNhdGFsb2dUdXBsZVVwZGF0 ZShyZWwsICZ0dXAtPnRfc2VsZiwgdHVwKTsKKworCS8qIFJlbW92ZSB0aGUgYXNzb2NpYXRlZCBz Y2hlbWFzIGZyb20gdGhlIHB1YmxpY2F0aW9uICovCisJc2NoZW1haWRzID0gR2V0UHVibGljYXRp b25TY2hlbWFzKHB1YmlkKTsKKworCS8qCisJICogU2NoZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0 aGUgcHVibGljYXRpb24gaXMgYWx0ZXJlZCB0byBwcmV2ZW50CisJICogY29uY3VycmVudCBzY2hl bWEgZGVsZXRpb24uCisJICovCisJTG9ja1NjaGVtYUxpc3Qoc2NoZW1haWRzKTsKKworCS8qIFJl bW92ZSBTY2hlbWFzICovCisJUHVibGljYXRpb25Ecm9wU2NoZW1hcyhwdWJpZCwgc2NoZW1haWRz LCB0cnVlKTsKKworCS8qIEdldCBhbGwgcmVsYXRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVi bGljYXRpb24gKi8KKwlyZWxpZHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVC TElDQVRJT05fUEFSVF9ST09UKTsKKworCWZvcmVhY2hfb2lkKHJlbGlkLCByZWxpZHMpCisJewor CQlQdWJsaWNhdGlvblJlbEluZm8gKnJlbDsKKworCQlyZWwgPSBwYWxsb2Moc2l6ZW9mKFB1Ymxp Y2F0aW9uUmVsSW5mbykpOworCQlyZWwtPndoZXJlQ2xhdXNlID0gTlVMTDsKKwkJcmVsLT5jb2x1 bW5zID0gTklMOworCQlyZWwtPnJlbGF0aW9uID0gdGFibGVfb3BlbihyZWxpZCwgU2hhcmVVcGRh dGVFeGNsdXNpdmVMb2NrKTsKKwkJcmVscyA9IGxhcHBlbmQocmVscywgcmVsKTsKKwl9CisKKwkv KiBSZW1vdmUgdGhlIGFzc29jaWF0ZWQgcmVsYXRpb25zIGZyb20gdGhlIHB1YmxpY2F0aW9uICov CisJUHVibGljYXRpb25Ecm9wVGFibGVzKHB1YmlkLCByZWxzLCB0cnVlKTsKKwlDbG9zZVRhYmxl TGlzdChyZWxzKTsKK30KKwogLyoKICAqIEFkZCBvciByZW1vdmUgdGFibGUgdG8vZnJvbSBwdWJs aWNhdGlvbi4KICAqLwpAQCAtMTU1Myw2ICsxNjYzLDggQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCiAJaWYgKHN0bXQt Pm9wdGlvbnMpCiAJCUFsdGVyUHVibGljYXRpb25PcHRpb25zKHBzdGF0ZSwgc3RtdCwgcmVsLCB0 dXApOworCWVsc2UgaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9SZXNldFB1YmxpY2F0aW9uKQorCQlB bHRlclB1YmxpY2F0aW9uUmVzZXQocHN0YXRlLCBzdG10LCByZWwsIHR1cCk7CiAJZWxzZQogCXsK IAkJTGlzdAkgICAqcmVsYXRpb25zID0gTklMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNTdmZTAxODY1NDcu LjJiODhjNzRhMzE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEwOTA5LDYgKzEwOTA5LDggQEAgcHViX29i al90eXBlX2xpc3Q6CVB1YmxpY2F0aW9uQWxsT2JqU3BlYwogICoKICAqIEFMVEVSIFBVQkxJQ0FU SU9OIG5hbWUgU0VUIHB1Yl9vYmogWywgLi4uXQogICoKKyAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5h bWUgUkVTRVQKKyAqCiAgKiBwdWJfb2JqIGlzIG9uZSBvZjoKICAqCiAgKgkJVEFCTEUgdGFibGVf bmFtZSBbLCAuLi5dCkBAIC0xMDk1NSw2ICsxMDk1NywxMyBAQCBBbHRlclB1YmxpY2F0aW9uU3Rt dDoKIAkJCQkJbi0+YWN0aW9uID0gQVBfRHJvcE9iamVjdHM7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKIAkJCQl9CisJCQl8IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQKKwkJCQl7CisJCQkJ CUFsdGVyUHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0bXQp OworCQkJCQluLT5wdWJuYW1lID0gJDM7CisJCQkJCW4tPmFjdGlvbiA9IEFQX1Jlc2V0UHVibGlj YXRpb247CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCAzMTZhMmRhZmJmMS4uZDE2MTgxYmMx MTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIyODgsNyArMjI4OCw3IEBAIG1hdGNoX3By ZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5h bWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFu eSkpCi0JCUNPTVBMRVRFX1dJVEgoIkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBU TyIsICJTRVQiKTsKKwkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAi UkVOQU1FIFRPIiwgIlJFU0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1l PiBBREQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiQUREIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUi KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBkMTQyOTRhNGVjZS4uNzc4ZWYwMzlkODYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQzMjYsNiArNDMyNiw3IEBAIHR5cGVkZWYgZW51bSBB bHRlclB1YmxpY2F0aW9uQWN0aW9uCiAJQVBfQWRkT2JqZWN0cywJCQkJLyogYWRkIG9iamVjdHMg dG8gcHVibGljYXRpb24gKi8KIAlBUF9Ecm9wT2JqZWN0cywJCQkJLyogcmVtb3ZlIG9iamVjdHMg ZnJvbSBwdWJsaWNhdGlvbiAqLwogCUFQX1NldE9iamVjdHMsCQkJCS8qIHNldCBsaXN0IG9mIG9i amVjdHMgKi8KKwlBUF9SZXNldFB1YmxpY2F0aW9uLAkJLyogcmVzZXQgdGhlIHB1YmxpY2F0aW9u ICovCiB9IEFsdGVyUHVibGljYXRpb25BY3Rpb247CiAKIHR5cGVkZWYgc3RydWN0IEFsdGVyUHVi bGljYXRpb25TdG10CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1Ymxp Y2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0Cmlu ZGV4IGU3MmQxMzA4OTY3Li5iYjYxNGJhNWQwYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIwMDksNiArMjAwOSwxMjQgQEAgVGFibGVzOgogRFJPUCBQ VUJMSUNBVElPTiBwdWIxOwogRFJPUCBQVUJMSUNBVElPTiBwdWIyOwogRFJPUCBUQUJMRSBnZW5j b2xzOworLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRFIFND SEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitTRVQg Y2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CistLSBW ZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNl dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg SW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVt bnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAg ICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMTsKKy0tIFZlcmlmeSB0aGF0IGFz c29jaWF0ZWQgdGFibGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJF U0VUCitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3NjaDEudGJs MSIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRh YmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRl ZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAg ICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKy0tIFZlcmlmeSB0aGF0IGFzc29jaWF0ZWQg c2NoZW1hcyBhcmUgcmVvbXZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAorXGRS cCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg R2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwg bm9uZSAgICAgICAgICAgICAgfCBmCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJsaWMi CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHVi X3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQg Y29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAg ICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBT RVQgKFBVQkxJU0ggPSAnJyk7CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBm ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jl c2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEg cm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFf UEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BB UlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0 cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwg VmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwg dAorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRS cCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg R2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwg bm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfcmVzZXQgU0VUIChQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TID0gc3RvcmVkKTsKKy0tIFZl cmlmeSB0aGF0ICdQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIgaXMgcmVzZXQK K1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IHN0b3JlZCAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisK Ky0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9uCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2Vy CitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCitTRVQgUk9M RSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQ7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIFJF U0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiAtLSBUZXN0IHRoYXQgdGhlIElOU0VSVCBPTiBDT05G TElDVCBjb21tYW5kIGNvcnJlY3RseSBjaGVja3MgUkVQTElDQSBJREVOVElUWQogLS0gd2hlbiB0 aGUgdGFyZ2V0IHRhYmxlIGlzIHB1Ymxpc2hlZC4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9u LnNxbAppbmRleCAwMDM5MGFlY2Q0Ny4uODI5NDY2ZDhkZTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9w dWJsaWNhdGlvbi5zcWwKQEAgLTEyNjgsNiArMTI2OCw2MyBAQCBEUk9QIFBVQkxJQ0FUSU9OIHB1 YjE7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjI7CiBEUk9QIFRBQkxFIGdlbmNvbHM7CiAKKy0tIFRl c3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQKK0NSRUFURSBTQ0hFTUEgcHViX3Nj aDE7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAoYSBpbnQpOworU0VUIGNsaWVudF9taW5f bWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9S IEFMTCBUQUJMRVM7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworCistLSBWZXJpZnkgdGhh dCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKwor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMTsK KworLS0gVmVyaWZ5IHRoYXQgYXNzb2NpYXRlZCB0YWJsZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUg cHVibGljYXRpb24gYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOwor CistLSBWZXJpZnkgdGhhdCBhc3NvY2lhdGVkIHNjaGVtYXMgYXJlIHJlb212ZWQgZnJvbSB0aGUg cHVibGljYXRpb24gYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOworCistLSBWZXJp ZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0 CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9y ZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFf UEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworCistLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFf UEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVz ZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfR0VORVJB VEVEX0NPTFVNTlMgPSBzdG9yZWQpOworCistLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9HRU5FUkFU RURfQ09MVU1OUycgcGFyYW1ldGVyIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAor CistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBjYW4gcmVzZXQgYSBwdWJsaWNhdGlvbgor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNl cgorU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOworCitEUk9QIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQ7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBw dWJfc2NoMTsKKwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIAogLS0gVGVzdCB0aGF0IHRo ZSBJTlNFUlQgT04gQ09ORkxJQ1QgY29tbWFuZCBjb3JyZWN0bHkgY2hlY2tzIFJFUExJQ0EgSURF TlRJVFkKLS0gCjIuMzQuMQoK --0000000000003b97d90642eb344b Content-Type: application/octet-stream; name="v25-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v25-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhnbzpcf2 RnJvbSBmYzg3MmIyZmI3NDAzN2RlNGY4OGE2NDc2ZTY0NGYwMGUyMjlhNTZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgNiBOb3YgMjAyNSAxNToyOTo0MCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI1 IDMvM10gU2tpcCBwdWJsaXNoaW5nIHRoZSBjb2x1bW5zIHNwZWNpZmllZCBpbiBGT1IgVEFCTEUK IEVYQ0VQVAoKQSBuZXcgIlRBQkxFIHRhYmxlX25hbWUgRVhDRVBUIChjb2x1bW5fbGlzdCkiIGNs YXVzZSBmb3IgQ1JFQVRFL0FMVEVSClBVQkxJQ0FUSU9OIGFsbG93cyBvbmUgb3IgbW9yZSBjb2x1 bW5zIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlzaGVyCndpbGwgbm90IHNlbmQgdGhlIGRhdGEg b2YgZXhjbHVkZWQgY29sdW1ucyB0byB0aGUgc3Vic2NyaWJlci4KClRoZSBuZXcgc3ludGF4IGFs bG93cyBzcGVjaWZ5aW5nIGV4Y2x1ZGVkIGNvbHVtbiBsaXN0IHdoZW4gY3JlYXRpbmcgb3IKYWx0 ZXJpbmcgYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6CkNSRUFURSBQVUJMSUNBVElPTiBwdWJu YW1lIEZPUiBUQUJMRSB0YWJuYW1lIEVYQ0VQVCAoY29sMSwgY29sMiwgY29sMykKb3IKQUxURVIg UFVCTElDQVRJT04gcHVibmFtZSBBREQgVEFCTEUgdGFibmFtZSBFWENFUFQgKGNvbDEsIGNvbDIs IGNvbDMpCgpXaGVuIGNvbHVtbiAicHJleGNlcHQiIG9mIHN5c3RlbSBjYXRhbG9nICJwZ19wdWJs aWNhdGlvbl9yZWwiIGlzIHNldAp0byAidHJ1ZSIsIGFuZCBjb2x1bW4gInByYXR0cnMiIG9mIHN5 c3RlbSBjYXRhbG9nICJwZ19wdWJsaWNhdGlvbl9yZWwiCmlzIG5vdCBOVUxMLCB0aGF0IG1lYW5z IHRoZSBwdWJsaWNhdGlvbiB3YXMgY3JlYXRlZCB3aXRoICJFWENFUFQKKGNvbHVtbi1saXN0KSIs IGFuZCB0aGUgY29sdW1ucyBpbiAicHJhdHRycyIgd2lsbCBiZSBleGNsdWRlZCBmcm9tCmJlaW5n IHB1Ymxpc2hlZC4KCnBnX2R1bXAgaXMgdXBkYXRlZCB0byBpZGVudGlmeSBhbmQgZHVtcCB0aGUg ZXhjbHVkZWQgY29sdW1uIGxpc3Qgb2YgdGhlCnB1YmxpY2F0aW9uLgoKVGhlIHBzcWwgXGQgZmFt aWx5IG9mIGNvbW1hbmRzIGNhbiBub3cgZGlzcGxheSBleGNsdWRlZCBjb2x1bW4gbGlzdC4gZS5n Lgpwc3FsIFxkUnArIHZhcmlhbnQgd2lsbCBub3cgZGlzcGxheSBhc3NvY2lhdGVkICJFWENFUFQg KGNvbHVtbl9saXN0KSIgaWYKYW55LgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAg ICAgICAgICAgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbCAgICAgICAgIHwgMTA2ICsrKysrLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbCAgICAgICB8ICAxMCArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVi bGljYXRpb24uc2dtbCAgICAgIHwgIDUyICsrKy0KIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Mu c2dtbCAgICAgICAgICAgICAgICB8ICAxMCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmMgICAgICAgICAgfCAgODYgKysrKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3Rl bV92aWV3cy5zcWwgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5jICAgICAgICB8ICA1MiArKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICAgICAgfCAgNDQgKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3RhYmxlc3luYy5jICAgfCAgNDEgKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9w Z291dHB1dC9wZ291dHB1dC5jICAgfCAgNzAgKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMgICAgICAgICAgICAgICAgICAgICB8ICA0NSArLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmggICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAyNjIgKysrKysrKysrKystLS0tLS0tCiBzcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgMTMgKy0KIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAgICAgIHwgICA2ICstCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oICAgICAgfCAgIDUgKy0KIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgICB8IDEzMCArKysrKysrLS0KIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICAgNSArLQogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICAgIHwgIDU1ICsrKysKIHNyYy90ZXN0 L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZCAgICAgICAgICAgICB8ICAgMSArCiAuLi4vdC8wMzhf cmVwX2NoYW5nZXNfZXhjZXB0X2NvbGxpc3QucGwgICAgICAgfCAxOTMgKysrKysrKysrKysrKwog MjMgZmlsZXMgY2hhbmdlZCwgOTU2IGluc2VydGlvbnMoKyksIDI0NSBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzhfcmVwX2NoYW5nZXNf ZXhjZXB0X2NvbGxpc3QucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDE0NGYzZmJkZWYyLi5jNWU5N2Qx NTc1ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY1ODYsNyArNjU4NiwxMCBAQCBTQ1JBTS1TSEEtMjU2 JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBs YWNlYWJsZT4mbAogICAgICAgPHN0cnVjdGZpZWxkPnByZXhjZXB0PC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Ym9vbDwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIFRydWUg aWYgdGhlIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVkZWQKKyAgICAgICBUcnVlIGlmIHRoZSBjb2x1 bW4gbGlzdCBvciByZWxhdGlvbiBtdXN0IGJlIGV4Y2x1ZGVkIGZyb20gcHVibGljYXRpb24uCisg ICAgICAgSWYgYSBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQgaW4gPGxpdGVyYWw+cHJhdHRyczwv bGl0ZXJhbD4sIHRoZW4KKyAgICAgICBleGNsdWRlIG9ubHkgdGhvc2UgY29sdW1ucy4gSWYgPGxp dGVyYWw+cHJhdHRyczwvbGl0ZXJhbD4gaXMgbnVsbCwKKyAgICAgICB0aGVuIGV4Y2x1ZGUgdGhl IGVudGlyZSByZWxhdGlvbi4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9z cmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggNzM1OWJkNzc1NjkuLjQyNDA1 Yzk1Njg3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTEzNzQsMTAg KzEzNzQsMTAgQEAgUHVibGljYXRpb25zOgogICA8dGl0bGU+Q29sdW1uIExpc3RzPC90aXRsZT4K IAogICA8cGFyYT4KLSAgIEVhY2ggcHVibGljYXRpb24gY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB3 aGljaCBjb2x1bW5zIG9mIGVhY2ggdGFibGUgYXJlCi0gICByZXBsaWNhdGVkIHRvIHN1YnNjcmli ZXJzLiBUaGUgdGFibGUgb24gdGhlIHN1YnNjcmliZXIgc2lkZSBtdXN0IGhhdmUgYXQKLSAgIGxl YXN0IGFsbCB0aGUgY29sdW1ucyB0aGF0IGFyZSBwdWJsaXNoZWQuIElmIG5vIGNvbHVtbiBsaXN0 IGlzIHNwZWNpZmllZCwKLSAgIHRoZW4gYWxsIGNvbHVtbnMgb24gdGhlIHB1Ymxpc2hlciBhcmUg cmVwbGljYXRlZC4KKyAgIEVhY2ggcHVibGljYXRpb24gY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB3 aGljaCBjb2x1bW5zIG9mIGVhY2ggdGFibGUgc2hvdWxkIGJlCisgICByZXBsaWNhdGVkIG9yIGV4 Y2x1ZGVkIGZyb20gcmVwbGljYXRpb24uIFRoZSB0YWJsZSBvbiB0aGUgc3Vic2NyaWJlciBzaWRl CisgICBtdXN0IGhhdmUgYXQgbGVhc3QgYWxsIHRoZSBjb2x1bW5zIHRoYXQgYXJlIHB1Ymxpc2hl ZC4gSWYgbm8gY29sdW1uIGxpc3QgaXMKKyAgIHNwZWNpZmllZCwgdGhlbiBhbGwgY29sdW1ucyBv biB0aGUgcHVibGlzaGVyIGFyZSByZXBsaWNhdGVkLgogICAgU2VlIDx4cmVmIGxpbmtlbmQ9InNx bC1jcmVhdGVwdWJsaWNhdGlvbiIvPiBmb3IgZGV0YWlscyBvbiB0aGUgc3ludGF4LgogICA8L3Bh cmE+CiAKQEAgLTEzOTEsOCArMTM5MSwxMSBAQCBQdWJsaWNhdGlvbnM6CiAKICAgPHBhcmE+CiAg ICBJZiBubyBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQsIGFueSBjb2x1bW5zIGFkZGVkIHRvIHRo ZSB0YWJsZSBsYXRlciBhcmUKLSAgIGF1dG9tYXRpY2FsbHkgcmVwbGljYXRlZC4gVGhpcyBtZWFu cyB0aGF0IGhhdmluZyBhIGNvbHVtbiBsaXN0IHdoaWNoIG5hbWVzCi0gICBhbGwgY29sdW1ucyBp cyBub3QgdGhlIHNhbWUgYXMgaGF2aW5nIG5vIGNvbHVtbiBsaXN0IGF0IGFsbC4KKyAgIGF1dG9t YXRpY2FsbHkgcmVwbGljYXRlZC4gSG93ZXZlciwgYSBub3JtYWwgY29sdW1uIGxpc3QgKHdpdGhv dXQKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4pIG9ubHkgcmVwbGljYXRlcyB0aGUgc3Bl Y2lmaWVkIGNvbHVtbnMgYW5kIG5vIG1vcmUuCisgICBUaGVyZWZvcmUsIGhhdmluZyBhIGNvbHVt biBsaXN0IHRoYXQgbmFtZXMgYWxsIGNvbHVtbnMgaXMgbm90IHRoZSBzYW1lIGFzCisgICBoYXZp bmcgbm8gY29sdW1uIGxpc3QgYXQgYWxsLCBhcyBtb3JlIGNvbHVtbnMgbWF5IGJlIGFkZGVkIHRv IHRoZSB0YWJsZQorICAgbGF0ZXIuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTE0MDQsNiAr MTQwNywxNCBAQCBQdWJsaWNhdGlvbnM6CiAgICBHZW5lcmF0ZWQgY29sdW1ucyBjYW4gYWxzbyBi ZSBzcGVjaWZpZWQgaW4gYSBjb2x1bW4gbGlzdC4gVGhpcyBhbGxvd3MKICAgIGdlbmVyYXRlZCBj b2x1bW5zIHRvIGJlIHB1Ymxpc2hlZCwgcmVnYXJkbGVzcyBvZiB0aGUgcHVibGljYXRpb24gcGFy YW1ldGVyCiAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdp dGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVy YXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4uIFNwZWNpZnlpbmcgZ2VuZXJhdGVkCisgICBj b2x1bW5zIHVzaW5nIHRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBleGNsdWRl cyB0aG9zZSBjb2x1bW5zCisgICBmcm9tIGJlaW5nIHB1Ymxpc2hlZCwgcmVnYXJkbGVzcyBvZiB0 aGUKKyAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtd2l0aC1w dWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4KKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVk X2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPiBzZXR0aW5nLiBIb3dldmVyLCBmb3IKKyAgIGdlbmVy YXRlZCBjb2x1bW5zIHRoYXQgYXJlIG5vdCBsaXN0ZWQgaW4gdGhlIDxsaXRlcmFsPkVYQ0VQVDwv bGl0ZXJhbD4KKyAgIGNsYXVzZSwgd2hldGhlciB0aGV5IGFyZSBwdWJsaXNoZWQgb3Igbm90IHN0 aWxsIGRlcGVuZHMgb24gdGhlIHZhbHVlIG9mCisgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl cHVibGljYXRpb24tcGFyYW1zLXdpdGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CiAgICA8 bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4uIFNlZQog ICAgPHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1nZW5jb2xzIi8+IGZvciBkZXRh aWxzLgogICA8L3BhcmE+CkBAIC0xNDI1LDExICsxNDM2LDE0IEBAIFB1YmxpY2F0aW9uczoKIAog ICA8cGFyYT4KICAgIElmIGEgcHVibGljYXRpb24gcHVibGlzaGVzIDxjb21tYW5kPlVQREFURTwv Y29tbWFuZD4gb3IKLSAgIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4gb3BlcmF0aW9ucywgYW55 IGNvbHVtbiBsaXN0IG11c3QgaW5jbHVkZSB0aGUKLSAgIHRhYmxlJ3MgcmVwbGljYSBpZGVudGl0 eSBjb2x1bW5zIChzZWUKLSAgIDx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnRhYmxlLXJlcGxpY2Et aWRlbnRpdHkiLz4pLgorICAgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcGVyYXRpb25zLCBh bnkgY29sdW1uIGxpc3QgbXVzdCBpbmNsdWRlIHRhYmxlJ3MKKyAgIHJlcGxpY2EgaWRlbnRpdHkg Y29sdW1ucyBhbmQgYW55IGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoCisgICA8bGl0ZXJhbD5F WENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBtdXN0IG5vdCBpbmNsdWRlIHRoZSB0YWJsZSdzIHJlcGxp Y2EKKyAgIGlkZW50aXR5IGNvbHVtbnMgKHNlZSA8eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ0YWJs ZS1yZXBsaWNhLWlkZW50aXR5Ii8+KS4KICAgIElmIGEgcHVibGljYXRpb24gcHVibGlzaGVzIG9u bHkgPGNvbW1hbmQ+SU5TRVJUPC9jb21tYW5kPiBvcGVyYXRpb25zLCB0aGVuCi0gICB0aGUgY29s dW1uIGxpc3QgbWF5IG9taXQgcmVwbGljYSBpZGVudGl0eSBjb2x1bW5zLgorICAgdGhlIGNvbHVt biBsaXN0IG1heSBvbWl0IHJlcGxpY2EgaWRlbnRpdHkgY29sdW1ucyBhbmQgdGhlIGNvbHVtbiBs aXN0CisgICBzcGVjaWZpZWQgd2l0aCA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBt YXkgaW5jbHVkZSByZXBsaWNhIGlkZW50aXR5CisgICBjb2x1bW5zLgogICA8L3BhcmE+CiAKICAg PHBhcmE+CkBAIC0xNDc0LDE4ICsxNDg4LDIxIEBAIFB1YmxpY2F0aW9uczoKICAgIDx0aXRsZT5F eGFtcGxlczwvdGl0bGU+CiAKICAgIDxwYXJhPgotICAgIENyZWF0ZSBhIHRhYmxlIDxsaXRlcmFs PnQxPC9saXRlcmFsPiB0byBiZSB1c2VkIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZS4KKyAgICBD cmVhdGUgdGFibGVzIDxsaXRlcmFsPnQxPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+dDI8L2xpdGVy YWw+IHRvIGJlIHVzZWQgaW4KKyAgICB0aGUgZm9sbG93aW5nIGV4YW1wbGUuCiA8cHJvZ3JhbWxp c3Rpbmc+CiAvKiBwdWIgIyAqLyBDUkVBVEUgVEFCTEUgdDEoaWQgaW50LCBhIHRleHQsIGIgdGV4 dCwgYyB0ZXh0LCBkIHRleHQsIGUgdGV4dCwgUFJJTUFSWSBLRVkoaWQpKTsKKy8qIHB1YiAjICov IENSRUFURSBUQUJMRSB0MihpZCBpbnQsIGEgdGV4dCwgYiB0ZXh0LCBjIHRleHQsIGQgdGV4dCwg ZSB0ZXh0LCBQUklNQVJZIEtFWShpZCkpOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAg IDxwYXJhPgogICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIDxsaXRlcmFsPnAxPC9saXRlcmFsPi4g QSBjb2x1bW4gbGlzdCBpcyBkZWZpbmVkIGZvcgotICAgIHRhYmxlIDxsaXRlcmFsPnQxPC9saXRl cmFsPiB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoYXQgd2lsbCBiZQotICAgIHJl cGxpY2F0ZWQuIE5vdGljZSB0aGF0IHRoZSBvcmRlciBvZiBjb2x1bW4gbmFtZXMgaW4gdGhlIGNv bHVtbiBsaXN0IGRvZXMKLSAgICBub3QgbWF0dGVyLgorICAgIHRhYmxlIDxsaXRlcmFsPnQxPC9s aXRlcmFsPiwgYW5kIGFub3RoZXIgY29sdW1uIGxpc3QgaXMgZGVmaW5lZCBmb3IgdGFibGUKKyAg ICA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4gdXNpbmcgdGhlIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJh bD4gY2xhdXNlIHRvIHJlZHVjZQorICAgIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGF0IHdpbGwg YmUgcmVwbGljYXRlZC4gTm90ZSB0aGF0IHRoZSBvcmRlciBvZiBjb2x1bW4KKyAgICBuYW1lcyBp biB0aGUgY29sdW1uIGxpc3RzIGRvZXMgbm90IG1hdHRlci4KIDxwcm9ncmFtbGlzdGluZz4KLS8q IHB1YiAjICovIENSRUFURSBQVUJMSUNBVElPTiBwMSBGT1IgVEFCTEUgdDEgKGlkLCBiLCBhLCBk KTsKKy8qIHB1YiAjICovIENSRUFURSBQVUJMSUNBVElPTiBwMSBGT1IgVEFCTEUgdDEgKGlkLCBi LCBhLCBkKSwgdDIgRVhDRVBUIChkLCBhKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAg ICAgPHBhcmE+CkBAIC0xNDk5LDYgKzE1MTYsNyBAQCBQdWJsaWNhdGlvbnM6CiAgcG9zdGdyZXMg fCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJs aWMudDEiIChpZCwgYSwgYiwgZCkKKyAgICAicHVibGljLnQyIiBFWENFUFQgKGEsIGQpCiA8L3By b2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICAgIDxwYXJhPgpAQCAtMTUxOSwyMyArMTUzNyw0MSBA QCBJbmRleGVzOgogICAgICJ0MV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQogUHVibGlj YXRpb25zOgogICAgICJwMSIgKGlkLCBhLCBiLCBkKQorCisvKiBwdWIgIyAqLyBcZCB0MgorICAg ICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnQyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBu b3QgbnVsbCB8CisgYSAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwKKyBi ICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGMgICAgICB8IHRleHQg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8CisgZCAgICAgIHwgdGV4dCAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwKKyBlICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAg fAorSW5kZXhlczoKKyAgICAidDJfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkKK1B1Ymxp Y2F0aW9uczoKKyAgICAicDEiIEVYQ0VQVCAoYSwgZCkKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJh PgogCiAgICAgPHBhcmE+Ci0gICAgIE9uIHRoZSBzdWJzY3JpYmVyIG5vZGUsIGNyZWF0ZSBhIHRh YmxlIDxsaXRlcmFsPnQxPC9saXRlcmFsPiB3aGljaCBub3cKLSAgICAgb25seSBuZWVkcyBhIHN1 YnNldCBvZiB0aGUgY29sdW1ucyB0aGF0IHdlcmUgb24gdGhlIHB1Ymxpc2hlciB0YWJsZQotICAg ICA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4sIGFuZCBhbHNvIGNyZWF0ZSB0aGUgc3Vic2NyaXB0aW9u CisgICAgIE9uIHRoZSBzdWJzY3JpYmVyIG5vZGUsIGNyZWF0ZSB0YWJsZXMgPGxpdGVyYWw+dDE8 L2xpdGVyYWw+IGFuZAorICAgICA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4gd2hpY2ggbm93IG9ubHkg bmVlZHMgYSBzdWJzZXQgb2YgdGhlIGNvbHVtbnMgdGhhdAorICAgICB3ZXJlIG9uIHRoZSBwdWJs aXNoZXIgdGFibGVzIDxsaXRlcmFsPnQxPC9saXRlcmFsPiBhbmQKKyAgICAgPGxpdGVyYWw+dDI8 L2xpdGVyYWw+LCBhbmQgYWxzbyBjcmVhdGUgdGhlIHN1YnNjcmlwdGlvbgogICAgICA8bGl0ZXJh bD5zMTwvbGl0ZXJhbD4gdGhhdCBzdWJzY3JpYmVzIHRvIHRoZSBwdWJsaWNhdGlvbgogICAgICA8 bGl0ZXJhbD5wMTwvbGl0ZXJhbD4uCiA8cHJvZ3JhbWxpc3Rpbmc+CiAvKiBzdWIgIyAqLyBDUkVB VEUgVEFCTEUgdDEoaWQgaW50LCBiIHRleHQsIGEgdGV4dCwgZCB0ZXh0LCBQUklNQVJZIEtFWShp ZCkpOworLyogc3ViICMgKi8gQ1JFQVRFIFRBQkxFIHQyKGlkIGludCwgYiB0ZXh0LCBjIHRleHQs IGUgdGV4dCwgUFJJTUFSWSBLRVkoaWQpKTsKIC8qIHN1YiAjICovIENSRUFURSBTVUJTQ1JJUFRJ T04gczEKIC8qIHN1YiAtICovIENPTk5FQ1RJT04gJ2hvc3Q9bG9jYWxob3N0IGRibmFtZT10ZXN0 X3B1YiBhcHBsaWNhdGlvbl9uYW1lPXMxJwogLyogc3ViIC0gKi8gUFVCTElDQVRJT04gcDE7CiA8 L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICAgIDxwYXJhPgotICAgICBPbiB0aGUgcHVibGlz aGVyIG5vZGUsIGluc2VydCBzb21lIHJvd3MgdG8gdGFibGUgPGxpdGVyYWw+dDE8L2xpdGVyYWw+ LgorICAgICBPbiB0aGUgcHVibGlzaGVyIG5vZGUsIGluc2VydCBzb21lIHJvd3MgdG8gdGFibGVz IDxsaXRlcmFsPnQxPC9saXRlcmFsPgorICAgICBhbmQgPGxpdGVyYWw+dDI8L2xpdGVyYWw+CiA8 cHJvZ3JhbWxpc3Rpbmc+CiAvKiBwdWIgIyAqLyBJTlNFUlQgSU5UTyB0MSBWQUxVRVMoMSwgJ2Et MScsICdiLTEnLCAnYy0xJywgJ2QtMScsICdlLTEnKTsKIC8qIHB1YiAjICovIElOU0VSVCBJTlRP IHQxIFZBTFVFUygyLCAnYS0yJywgJ2ItMicsICdjLTInLCAnZC0yJywgJ2UtMicpOwpAQCAtMTU0 NywxMSArMTU4MywyMSBAQCBQdWJsaWNhdGlvbnM6CiAgIDIgfCBhLTIgfCBiLTIgfCBjLTIgfCBk LTIgfCBlLTIKICAgMyB8IGEtMyB8IGItMyB8IGMtMyB8IGQtMyB8IGUtMwogKDMgcm93cykKKy8q IHB1YiAjICovIElOU0VSVCBJTlRPIHQyIFZBTFVFUygxLCAnYS0xJywgJ2ItMScsICdjLTEnLCAn ZC0xJywgJ2UtMScpOworLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDIgVkFMVUVTKDIsICdhLTIn LCAnYi0yJywgJ2MtMicsICdkLTInLCAnZS0yJyk7CisvKiBwdWIgIyAqLyBJTlNFUlQgSU5UTyB0 MiBWQUxVRVMoMywgJ2EtMycsICdiLTMnLCAnYy0zJywgJ2QtMycsICdlLTMnKTsKKy8qIHB1YiAj ICovIFNFTEVDVCAqIEZST00gdDIgT1JERVIgQlkgaWQ7CisgaWQgfCAgYSAgfCAgYiAgfCAgYyAg fCAgZCAgfCAgZQorLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLQorICAxIHwgYS0x IHwgYi0xIHwgYy0xIHwgZC0xIHwgZS0xCisgIDIgfCBhLTIgfCBiLTIgfCBjLTIgfCBkLTIgfCBl LTIKKyAgMyB8IGEtMyB8IGItMyB8IGMtMyB8IGQtMyB8IGUtMworKDMgcm93cykKIDwvcHJvZ3Jh bWxpc3Rpbmc+PC9wYXJhPgogCiAgICAgPHBhcmE+Ci0gICAgIE9ubHkgZGF0YSBmcm9tIHRoZSBj b2x1bW4gbGlzdCBvZiBwdWJsaWNhdGlvbiA8bGl0ZXJhbD5wMTwvbGl0ZXJhbD4gaXMKLSAgICAg cmVwbGljYXRlZC4KKyAgICAgT25seSBkYXRhIHNwZWNpZmllZCBieSB0aGUgY29sdW1uIGxpc3Rz IG9mIHB1YmxpY2F0aW9uCisgICAgIDxsaXRlcmFsPnAxPC9saXRlcmFsPiBpcyByZXBsaWNhdGVk LgogPHByb2dyYW1saXN0aW5nPgogLyogc3ViICMgKi8gU0VMRUNUICogRlJPTSB0MSBPUkRFUiBC WSBpZDsKICBpZCB8ICBiICB8ICBhICB8ICBkCkBAIC0xNTYwLDYgKzE2MDYsMTMgQEAgUHVibGlj YXRpb25zOgogICAyIHwgYi0yIHwgYS0yIHwgZC0yCiAgIDMgfCBiLTMgfCBhLTMgfCBkLTMKICgz IHJvd3MpCisvKiBzdWIgIyAqLyBTRUxFQ1QgKiBGUk9NIHQyIE9SREVSIEJZIGlkOworIGlkIHwg IGIgIHwgIGMgIHwgIGUKKy0tLS0rLS0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8IGItMSB8IGMtMSB8 IGUtMQorICAyIHwgYi0yIHwgYy0yIHwgZS0yCisgIDMgfCBiLTMgfCBjLTMgfCBlLTMKKygzIHJv d3MpCiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICA8L3NlY3QyPgpAQCAtMTY1Niw2ICsx NzA5LDE3IEBAIFB1YmxpY2F0aW9uczoKICAgIDwvaXRlbWl6ZWRsaXN0PgogICA8L3BhcmE+CiAK KyAgPHBhcmE+CisgICBHZW5lcmF0ZWQgY29sdW1ucyBzcGVjaWZpZWQgaW4gdGhlIGNvbHVtbiBs aXN0IHdpdGggdGhlCisgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgbm90 IHB1Ymxpc2hlZCwgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUKKyAgIG9mIHRoZSA8bGluayBsaW5r ZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgtcHVibGlzaC1nZW5lcmF0ZWQt Y29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFs PjwvbGluaz4gcGFyYW1ldGVyLiBIb3dldmVyLAorICAgZ2VuZXJhdGVkIGNvbHVtbnMgdGhhdCBh cmUgbm90IHBhcnQgb2YgdGhlIGNvbHVtbiBsaXN0IHdpdGggdGhlCisgICA8bGl0ZXJhbD5FWENF UFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgcHVibGlzaGVkIGFjY29yZGluZyB0byB0aGUgdmFsdWUg b2YgdGhlCisgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdp dGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVy YXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4gcGFyYW1ldGVyLgorICA8L3BhcmE+CisKICAg PHBhcmE+CiAgICBUaGUgZm9sbG93aW5nIHRhYmxlIHN1bW1hcml6ZXMgYmVoYXZpb3Igd2hlbiB0 aGVyZSBhcmUgZ2VuZXJhdGVkIGNvbHVtbnMKICAgIGludm9sdmVkIGluIHRoZSBsb2dpY2FsIHJl cGxpY2F0aW9uLiBSZXN1bHRzIGFyZSBzaG93biBmb3Igd2hlbgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDRhZmU2MmI3Y2ZkLi42MjIwNGI0YTQxNiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMzIsNyArMzIsNyBAQCBBTFRF UiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IFJFU0VUCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4K IAotICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJs ZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0g WywgLi4uIF0KKyAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBFWENFUFQgXSAoIGNvbHVtbl9u YW1lIFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBUQUJMRVMgSU4gU0NI RU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNl YWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9IFssIC4uLiBdCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBp czo8L3BocmFzZT4KQEAgLTI2Miw2ICsyNjIsMTQgQEAgQUxURVIgUFVCTElDQVRJT04gcHJvZHVj dGlvbl9wdWJsaWNhdGlvbiBBREQgQUxMIFRBQkxFUyBFWENFUFQgKHVzZXJzLCBkZXBhcnRtZW4K ICAgIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHBy b2dyYW1saXN0aW5nPgogQUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBB REQgVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzLCBUQUJMRVMgSU4gU0NIRU1BIHByb2R1Y3Rpb247 Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAgIEFsdGVyIHB1YmxpY2F0 aW9uIDxzdHJ1Y3RuYW1lPm15cHVibGljYXRpb248L3N0cnVjdG5hbWU+IHRvIGFkZCB0YWJsZQor ICAgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGV4Y2VwdCBjb2x1bW4KKyAgIDxzdHJ1 Y3RuYW1lPnNlY3VyaXR5X3Bpbjwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRF UiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1c2VycyBFWENF UFQgKHNlY3VyaXR5X3Bpbik7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICA8cGFyYT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IGQyOGE5YTEwYzg2 Li4yMWFlYzBhZTFjNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGlj YXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21s CkBAIC0yNyw3ICsyNyw3IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlz IG9uZSBvZjo8L3BocmFzZT4KIAotICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBd ICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248 L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KKyAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBF WENFUFQgXSAoIGNvbHVtbl9uYW1lIFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0K ICAgICBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNj aGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9IFssIC4uLiBdCiAKIDxw aHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFsbF9wdWJsaWNhdGlv bl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CkBAIC05NiwxNyArOTYs MjQgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgotICAgICAgV2hl biBhIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgb25seSB0aGUgbmFtZWQgY29sdW1ucyBhcmUg cmVwbGljYXRlZC4KLSAgICAgIFRoZSBjb2x1bW4gbGlzdCBjYW4gY29udGFpbiBzdG9yZWQgZ2Vu ZXJhdGVkIGNvbHVtbnMgYXMgd2VsbC4gSWYgdGhlCi0gICAgICBjb2x1bW4gbGlzdCBpcyBvbWl0 dGVkLCB0aGUgcHVibGljYXRpb24gd2lsbCByZXBsaWNhdGUgYWxsIG5vbi1nZW5lcmF0ZWQKLSAg ICAgIGNvbHVtbnMgKGluY2x1ZGluZyBhbnkgYWRkZWQgaW4gdGhlIGZ1dHVyZSkgYnkgZGVmYXVs dC4gU3RvcmVkIGdlbmVyYXRlZAotICAgICAgY29sdW1ucyBjYW4gYWxzbyBiZSByZXBsaWNhdGVk IGlmIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+Ci0gICAgICBp cyBzZXQgdG8gPGxpdGVyYWw+c3RvcmVkPC9saXRlcmFsPi4gU3BlY2lmeWluZyBhIGNvbHVtbiBs aXN0IGhhcyBubwotICAgICAgZWZmZWN0IG9uIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFsPiBj b21tYW5kcy4gU2VlCisgICAgICBXaGVuIGEgY29sdW1uIGxpc3Qgd2l0aG91dCA8bGl0ZXJhbD5F WENFUFQ8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgb25seQorICAgICAgdGhlIG5hbWVkIGNvbHVt bnMgYXJlIHJlcGxpY2F0ZWQuIFRoZSBjb2x1bW4gbGlzdCBjYW4gY29udGFpbiBzdG9yZWQKKyAg ICAgIGdlbmVyYXRlZCBjb2x1bW5zIGFzIHdlbGwuIElmIHRoZSBjb2x1bW4gbGlzdCBpcyBvbWl0 dGVkLCB0aGUgcHVibGljYXRpb24KKyAgICAgIHdpbGwgcmVwbGljYXRlIGFsbCBub24tZ2VuZXJh dGVkIGNvbHVtbnMgKGluY2x1ZGluZyBhbnkgYWRkZWQgaW4gdGhlCisgICAgICBmdXR1cmUpIGJ5 IGRlZmF1bHQuIFN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBjYW4gYWxzbyBiZSByZXBsaWNhdGVk IGlmCisgICAgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFsPiBp cyBzZXQgdG8KKyAgICAgIDxsaXRlcmFsPnN0b3JlZDwvbGl0ZXJhbD4uIFNwZWNpZnlpbmcgYSBj b2x1bW4gbGlzdCBoYXMgbm8gZWZmZWN0IG9uCisgICAgICA8bGl0ZXJhbD5UUlVOQ0FURTwvbGl0 ZXJhbD4gY29tbWFuZHMuIFNlZQogICAgICAgPHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNh dGlvbi1jb2wtbGlzdHMiLz4gZm9yIGRldGFpbHMgYWJvdXQgY29sdW1uCiAgICAgICBsaXN0cy4K ICAgICAgPC9wYXJhPgogCisgICAgIDxwYXJhPgorICAgICAgV2hlbiBhIGNvbHVtbiBsaXN0IGlz IHNwZWNpZmllZCB3aXRoIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4sIHRoZSBuYW1lZAorICAg ICAgY29sdW1ucyBhcmUgbm90IHJlcGxpY2F0ZWQuIFNwZWNpZnlpbmcgYSBjb2x1bW4gbGlzdCBo YXMgbm8gZWZmZWN0IG9uCisgICAgICA8bGl0ZXJhbD5UUlVOQ0FURTwvbGl0ZXJhbD4gY29tbWFu ZHMuCisgICAgIDwvcGFyYT4KKwogICAgICA8cGFyYT4KICAgICAgIE9ubHkgcGVyc2lzdGVudCBi YXNlIHRhYmxlcyBhbmQgcGFydGl0aW9uZWQgdGFibGVzIGNhbiBiZSBwYXJ0IG9mIGEKICAgICAg IHB1YmxpY2F0aW9uLiAgVGVtcG9yYXJ5IHRhYmxlcywgdW5sb2dnZWQgdGFibGVzLCBmb3JlaWdu IHRhYmxlcywKQEAgLTM2OCwxMCArMzc1LDEyIEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgIDwvcGFyYT4KIAog ICA8cGFyYT4KLSAgIEFueSBjb2x1bW4gbGlzdCBtdXN0IGluY2x1ZGUgdGhlIDxsaXRlcmFsPlJF UExJQ0EgSURFTlRJVFk8L2xpdGVyYWw+IGNvbHVtbnMKLSAgIGluIG9yZGVyIGZvciA8Y29tbWFu ZD5VUERBVEU8L2NvbW1hbmQ+IG9yIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4KLSAgIG9wZXJh dGlvbnMgdG8gYmUgcHVibGlzaGVkLiBUaGVyZSBhcmUgbm8gY29sdW1uIGxpc3QgcmVzdHJpY3Rp b25zIGlmIHRoZQotICAgcHVibGljYXRpb24gcHVibGlzaGVzIG9ubHkgPGNvbW1hbmQ+SU5TRVJU PC9jb21tYW5kPiBvcGVyYXRpb25zLgorICAgSW4gb3JkZXIgZm9yIDxjb21tYW5kPlVQREFURTwv Y29tbWFuZD4gb3IgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPgorICAgb3BlcmF0aW9ucyB0byB3 b3JrLCBhbGwgdGhlIDxsaXRlcmFsPlJFUExJQ0EgSURFTlRJVFk8L2xpdGVyYWw+IGNvbHVtbnMg bXVzdAorICAgYmUgcHVibGlzaGVkLiBTbywgYW55IGNvbHVtbiBsaXN0IG11c3QgbmFtZSBhbGwK KyAgIDxsaXRlcmFsPlJFUExJQ0EgSURFTlRJVFk8L2xpdGVyYWw+IGNvbHVtbnMsIGFuZCBhbnkK KyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY29sdW1uIGxpc3QgbXVzdCBub3QgbmFtZSBh bnkKKyAgIDxsaXRlcmFsPlJFUExJQ0EgSURFTlRJVFk8L2xpdGVyYWw+IGNvbHVtbnMuCiAgIDwv cGFyYT4KIAogICA8cGFyYT4KQEAgLTM5NCw2ICs0MDMsMTYgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgIHRv IGJlIHB1Ymxpc2hlZC4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgVGhlIGdlbmVyYXRlZCBj b2x1bW5zIHRoYXQgYXJlIHBhcnQgb2YgdGhlIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoIHRo ZQorICAgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgYXJlIG5vdCBwdWJsaXNoZWQs IHJlZ2FyZGxlc3Mgb2YgdGhlCisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5z PC9saXRlcmFsPiBvcHRpb24uIEhvd2V2ZXIsIGdlbmVyYXRlZAorICAgY29sdW1ucyB0aGF0IGFy ZSBub3QgcGFydCBvZiB0aGUgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggdGhlCisgICA8bGl0 ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgcHVibGlzaGVkIGFjY29yZGluZyB0byB0 aGUgdmFsdWUgb2YgdGhlCisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9s aXRlcmFsPiBvcHRpb24uIFNlZQorICAgPHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNhdGlv bi1nZW5jb2xzIi8+IGZvciBkZXRhaWxzLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBUaGUg cm93IGZpbHRlciBvbiBhIHRhYmxlIGJlY29tZXMgcmVkdW5kYW50IGlmCiAgICA8bGl0ZXJhbD5G T1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkIGFuZCB0aGUgdGFibGUK QEAgLTUxNiw2ICs1MzUsMTUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gRk9S IEFMTCBUQUJMRVMgRVhDRVBUICh1c2VycywgZGVwYXJ0bWVudHMpOwogQ1JFQVRFIFBVQkxJQ0FU SU9OIHVzZXJzX2ZpbHRlcmVkIEZPUiBUQUJMRSB1c2VycyAodXNlcl9pZCwgZmlyc3RuYW1lKTsK IDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGlj YXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlCisgICA8c3RydWN0bmFt ZT51c2Vyczwvc3RydWN0bmFtZT4gZXhjZXB0IGNoYW5nZXMgZm9yIGNvbHVtbgorICAgPHN0cnVj dG5hbWU+c2VjdXJpdHlfcGluPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFU RSBQVUJMSUNBVElPTiB1c2Vyc19zYWZlIEZPUiBUQUJMRSB1c2VycyBFWENFUFQgKHNlY3VyaXR5 X3Bpbik7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBDcmVh dGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgc2VxdWVuY2VzIGZvciBzeW5jaHJv bml6YXRpb246CiA8cHJvZ3JhbWxpc3Rpbmc+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lz dGVtLXZpZXdzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKaW5kZXggNzk3 MTQ5OGZlNzUuLjI0MzY5N2Q0ZDhjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZp ZXdzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCkBAIC0yNjk4LDYg KzI2OTgsMTYgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFy ZWRfeGFjdHMgcHB4CiAgICAgICAgRXhwcmVzc2lvbiBmb3IgdGhlIHRhYmxlJ3MgcHVibGljYXRp b24gcXVhbGlmeWluZyBjb25kaXRpb24KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZXhj ZXB0Y29sPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFRydWUgaWYgYSBjb2x1bW4gbGlzdCB3aXRoIDxsaXRlcmFsPkVY Q0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGlzIHNwZWNpZmllZAorICAgICAgIGZvciB0aGUgdGFibGUg aW4gdGhlIHB1YmxpY2F0aW9uLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgog ICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf cHVibGljYXRpb24uYwppbmRleCBiZWMzYTM0ZTQ4Zi4uMDJiYmE2YjA4Y2YgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTI2NiwxNCArMjY2LDE5IEBAIGlzX3NjaGVtYV9w dWJsaWNhdGlvbihPaWQgcHViaWQpCiAgKiBJZiBhIGNvbHVtbiBsaXN0IGlzIGZvdW5kLCB0aGUg Y29ycmVzcG9uZGluZyBiaXRtYXAgaXMgcmV0dXJuZWQgdGhyb3VnaCB0aGUKICAqIGNvbHMgcGFy YW1ldGVyLCBpZiBwcm92aWRlZC4gVGhlIGJpdG1hcCBpcyBjb25zdHJ1Y3RlZCB3aXRoaW4gdGhl IGdpdmVuCiAgKiBtZW1vcnkgY29udGV4dCAobWN4dCkuCisgKgorICogSWYgYSBjb2x1bW4gbGlz dCBpcyBmb3VuZCBzcGVjaWZpZWQgd2l0aCBFWENFUFQgY2xhdXNlLCBleGNlcHRfY29sdW1ucyBp cyBzZXQKKyAqIHRvIHRydWUuCiAgKi8KIGJvb2wKIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlz dChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVsaWQsIE1lbW9yeUNvbnRleHQgbWN4dCwKLQkJCQkJ CQlCaXRtYXBzZXQgKipjb2xzKQorCQkJCQkJCUJpdG1hcHNldCAqKmNvbHMsIGJvb2wgKmV4Y2Vw dF9jb2x1bW5zKQogewogCUhlYXBUdXBsZQljZnR1cGxlOwogCWJvb2wJCWZvdW5kID0gZmFsc2U7 CiAKKwkqZXhjZXB0X2NvbHVtbnMgPSBmYWxzZTsKKwogCWlmIChwdWItPmFsbHRhYmxlcykKIAkJ cmV0dXJuIGZhbHNlOwogCkBAIC0yOTksNiArMzA0LDE2IEBAIGNoZWNrX2FuZF9mZXRjaF9jb2x1 bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVsaWQsIE1lbW9yeUNvbnRleHQgbWN4dCwK IAkJCWZvdW5kID0gdHJ1ZTsKIAkJfQogCisJCS8qIExvb2t1cCB0aGUgZXhjZXB0IGF0dHJpYnV0 ZSAqLworCQljZmRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCBjZnR1 cGxlLAorCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByZXhjZXB0LCAmaXNudWxs KTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJQXNzZXJ0KCFwdWItPmFsbHRhYmxlcyk7CisJ CQkqZXhjZXB0X2NvbHVtbnMgPSBEYXR1bUdldEJvb2woY2ZkYXR1bSk7CisJCX0KKwogCQlSZWxl YXNlU3lzQ2FjaGUoY2Z0dXBsZSk7CiAJfQogCkBAIC02NjAsMTAgKzY3NSwxMiBAQCBwdWJfY29s bGlzdF90b19iaXRtYXBzZXQoQml0bWFwc2V0ICpjb2x1bW5zLCBEYXR1bSBwdWJjb2xzLCBNZW1v cnlDb250ZXh0IG1jeHQpCiAgKiBSZXR1cm5zIGEgYml0bWFwIHJlcHJlc2VudGluZyB0aGUgY29s dW1ucyBvZiB0aGUgc3BlY2lmaWVkIHRhYmxlLgogICoKICAqIEdlbmVyYXRlZCBjb2x1bW5zIGFy ZSBpbmNsdWRlZCBpZiBpbmNsdWRlX2dlbmNvbHNfdHlwZSBpcwotICogUFVCTElTSF9HRU5DT0xT X1NUT1JFRC4KKyAqIFBVQkxJU0hfR0VOQ09MU19TVE9SRUQuIENvbHVtbnMgdGhhdCBhcmUgaW4g dGhlIGV4Y2VwdF9jb2xzIGFyZSBleGNsdWRlZCBmcm9tCisgKiB0aGUgY29sdW1uIGxpc3QuCiAg Ki8KIEJpdG1hcHNldCAqCi1wdWJfZm9ybV9jb2xzX21hcChSZWxhdGlvbiByZWxhdGlvbiwgUHVi bGlzaEdlbmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29sc190eXBlKQorcHViX2Zvcm1fY29sc19tYXAo UmVsYXRpb24gcmVsYXRpb24sIFB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlw ZSwKKwkJCQkgIEJpdG1hcHNldCAqZXhjZXB0X2NvbHMpCiB7CiAJQml0bWFwc2V0ICAqcmVzdWx0 ID0gTlVMTDsKIAlUdXBsZURlc2MJZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsYXRpb24pOwpA QCAtNjg2LDYgKzcwMyw5IEBAIHB1Yl9mb3JtX2NvbHNfbWFwKFJlbGF0aW9uIHJlbGF0aW9uLCBQ dWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xzX3R5cGUpCiAJCQkJY29udGludWU7CiAJ CX0KIAorCQlpZiAoZXhjZXB0X2NvbHMgJiYgYm1zX2lzX21lbWJlcihhdHQtPmF0dG51bSwgZXhj ZXB0X2NvbHMpKQorCQkJY29udGludWU7CisKIAkJcmVzdWx0ID0gYm1zX2FkZF9tZW1iZXIocmVz dWx0LCBhdHQtPmF0dG51bSk7CiAJfQogCkBAIC03OTAsOCArODEwLDEwIEBAIEdldFJlbGF0aW9u UHVibGljYXRpb25zKE9pZCByZWxpZCwgYm9vbCBleGNlcHRfZmxhZykKIAl7CiAJCUhlYXBUdXBs ZQl0dXAgPSAmcHVicmVsbGlzdC0+bWVtYmVyc1tpXS0+dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0g KChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcnB1YmlkOworCQli b29sCQlpc19leGNlcHRfdGFibGUgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJV Q1QodHVwKSktPnByZXhjZXB0ICYmCisJCQloZWFwX2F0dGlzbnVsbCh0dXAsIEFudW1fcGdfcHVi bGljYXRpb25fcmVsX3ByYXR0cnMsIE5VTEwpOwogCi0JCWlmIChleGNlcHRfZmxhZyA9PSAoKEZv cm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0KQorCQlpZiAo ZXhjZXB0X2ZsYWcgPT0gaXNfZXhjZXB0X3RhYmxlKQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQo cmVzdWx0LCBwdWJpZCk7CiAJfQogCkBAIC04MzEsMTAgKzg1MywxMiBAQCBHZXRQdWJsaWNhdGlv blJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKIAl3 aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKIAl7 CiAJCUZvcm1fcGdfcHVibGljYXRpb25fcmVsIHB1YnJlbDsKKwkJYm9vbAkJaGFzX2NvbGxpc3Qg PSBmYWxzZTsKIAogCQlwdWJyZWwgPSAoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVD VCh0dXApOworCQloYXNfY29sbGlzdCA9ICFoZWFwX2F0dGlzbnVsbCh0dXAsIEFudW1fcGdfcHVi bGljYXRpb25fcmVsX3ByYXR0cnMsIE5VTEwpOwogCi0JCWlmIChleGNlcHRfZmxhZyA9PSBwdWJy ZWwtPnByZXhjZXB0KQorCQlpZiAoZXhjZXB0X2ZsYWcgPT0gKHB1YnJlbC0+cHJleGNlcHQgJiYg IWhhc19jb2xsaXN0KSkKIAkJCXJlc3VsdCA9IEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9u cyhyZXN1bHQsIHB1Yl9wYXJ0b3B0LAogCQkJCQkJCQkJCQkJCXB1YnJlbC0+cHJyZWxpZCk7CiAK QEAgLTExNjMsNyArMTE4Nyw3IEBAIEdldFB1YmxpY2F0aW9uQnlOYW1lKGNvbnN0IGNoYXIgKnB1 Ym5hbWUsIGJvb2wgbWlzc2luZ19vaykKIERhdHVtCiBwZ19nZXRfcHVibGljYXRpb25fdGFibGVz KFBHX0ZVTkNUSU9OX0FSR1MpCiB7Ci0jZGVmaW5lIE5VTV9QVUJMSUNBVElPTl9UQUJMRVNfRUxF TQk0CisjZGVmaW5lIE5VTV9QVUJMSUNBVElPTl9UQUJMRVNfRUxFTQk1CiAJRnVuY0NhbGxDb250 ZXh0ICpmdW5jY3R4OwogCUxpc3QJICAgKnRhYmxlX2luZm9zID0gTklMOwogCkBAIC0xMjcwLDYg KzEyOTQsOCBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CQkJCQkgICBJTlQyVkVDVE9ST0lELCAtMSwgMCk7CiAJCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBk ZXNjLCAoQXR0ck51bWJlcikgNCwgInF1YWwiLAogCQkJCQkJICAgUEdfTk9ERV9UUkVFT0lELCAt MSwgMCk7CisJCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNSwgImV4 Y2VwdGNvbCIsCisJCQkJCQkgICBCT09MT0lELCAtMSwgMCk7CiAKIAkJZnVuY2N0eC0+dHVwbGVf ZGVzYyA9IEJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOwogCQlmdW5jY3R4LT51c2VyX2ZjdHggPSB0 YWJsZV9pbmZvczsKQEAgLTEyOTEsNiArMTMxNyw3IEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJs ZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJT2lkCQkJc2NoZW1haWQgPSBnZXRfcmVsX25hbWVzcGFj ZShyZWxpZCk7CiAJCURhdHVtCQl2YWx1ZXNbTlVNX1BVQkxJQ0FUSU9OX1RBQkxFU19FTEVNXSA9 IHswfTsKIAkJYm9vbAkJbnVsbHNbTlVNX1BVQkxJQ0FUSU9OX1RBQkxFU19FTEVNXSA9IHswfTsK KwkJQml0bWFwc2V0ICAqZXhjZXB0X2NvbHVtbnMgPSBOVUxMOwogCiAJCS8qCiAJCSAqIEZvcm0g dHVwbGUgd2l0aCBhcHByb3ByaWF0ZSBkYXRhLgpAQCAtMTMxNSwxMSArMTM0MiwzNiBAQCBwZ19n ZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkJaWYgKEhlYXBUdXBs ZUlzVmFsaWQocHVidHVwbGUpKQogCQl7Ci0JCQkvKiBMb29rdXAgdGhlIGNvbHVtbiBsaXN0IGF0 dHJpYnV0ZS4gKi8KIAkJCXZhbHVlc1syXSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJF TE1BUCwgcHVidHVwbGUsCiAJCQkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJhdHRy cywKIAkJCQkJCQkJCQkmKG51bGxzWzJdKSk7CiAKKwkJCWlmICghbnVsbHNbMl0pCisJCQl7CisJ CQkJRGF0dW0JCWV4Y2VwdERhdHVtOworCQkJCWJvb2wJCWlzbnVsbDsKKworCQkJCS8qCisJCQkJ ICogV2UgZmV0Y2ggcHVidHVwbGUgaWYgcHVibGljYXRpb24gaXMgbm90IEZPUiBBTEwgVEFCTEVT IGFuZAorCQkJCSAqIG5vdCBGT1IgVEFCTEVTIElOIFNDSEVNQS4gU28gaWYgcHJleGNlcHQgaXMg dHJ1ZSwgaXQKKwkJCQkgKiBpbmRpY2F0ZXMgdGhhdCBwcmF0dHJzIGNvbnRhaW5zIGNvbHVtbnMg dG8gYmUgZXhjbHVkZWQgZm9yCisJCQkJICogcmVwbGljYXRpb24uCisJCQkJICovCisJCQkJZXhj ZXB0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHB1YnR1cGxlLAor CQkJCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByZXhjZXB0LAorCQkJCQkJCQkJ CQkgICZpc251bGwpOworCisJCQkJaWYgKCFpc251bGwgJiYgRGF0dW1HZXRCb29sKGV4Y2VwdERh dHVtKSkKKwkJCQl7CisJCQkJCWV4Y2VwdF9jb2x1bW5zID0gcHViX2NvbGxpc3RfdG9fYml0bWFw c2V0KE5VTEwsIHZhbHVlc1syXSwgTlVMTCk7CisKKwkJCQkJaWYgKGV4Y2VwdF9jb2x1bW5zKQor CQkJCQkJdmFsdWVzWzRdID0gQm9vbEdldERhdHVtKHRydWUpOworCQkJCQllbHNlCisJCQkJCQl2 YWx1ZXNbNF0gPSBCb29sR2V0RGF0dW0oZmFsc2UpOworCQkJCX0KKwkJCX0KKwogCQkJLyogTnVs bCBpbmRpY2F0ZXMgbm8gZmlsdGVyLiAqLwogCQkJdmFsdWVzWzNdID0gU3lzQ2FjaGVHZXRBdHRy KFBVQkxJQ0FUSU9OUkVMTUFQLCBwdWJ0dXBsZSwKIAkJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0 aW9uX3JlbF9wcnF1YWwsCkBAIC0xMzMxLDggKzEzODMsMTIgQEAgcGdfZ2V0X3B1YmxpY2F0aW9u X3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCQkJbnVsbHNbM10gPSB0cnVlOwogCQl9CiAKLQkJ LyogU2hvdyBhbGwgY29sdW1ucyB3aGVuIHRoZSBjb2x1bW4gbGlzdCBpcyBub3Qgc3BlY2lmaWVk LiAqLwotCQlpZiAobnVsbHNbMl0pCisJCS8qCisJCSAqIENvbnN0cnVjdCBjb2x1bW4gbGlzdCB0 byBzaG93IGFsbCBjb2x1bW5zIHdoZW4gbm8gY29sdW1uIGxpc3QgaXMKKwkJICogc3BlY2lmaWVk IG9yIHRvIHNob3cgcmVtYWluaW5nIGNvbHVtbnMgd2hlbiBhIGNvbHVtbiBsaXN0IGlzCisJCSAq IHByb3ZpZGVkIHdpdGggRVhDRVBULgorCQkgKi8KKwkJaWYgKGV4Y2VwdF9jb2x1bW5zIHx8IG51 bGxzWzJdKQogCQl7CiAJCQlSZWxhdGlvbglyZWwgPSB0YWJsZV9vcGVuKHJlbGlkLCBBY2Nlc3NT aGFyZUxvY2spOwogCQkJaW50CQkJbmF0dG51bXMgPSAwOwpAQCAtMTM2Myw2ICsxNDE5LDEzIEBA IHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCWNvbnRp bnVlOwogCQkJCX0KIAorCQkJCS8qCisJCQkJICogU2tpcCBjb2x1bW5zIHRoYXQgYXJlIHBhcnQg b2YgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGgKKwkJCQkgKiBFWENFUFQuCisJCQkJICovCisJ CQkJaWYgKGV4Y2VwdF9jb2x1bW5zICYmIGJtc19pc19tZW1iZXIoYXR0LT5hdHRudW0sIGV4Y2Vw dF9jb2x1bW5zKSkKKwkJCQkJY29udGludWU7CisKIAkJCQlhdHRudW1zW25hdHRudW1zKytdID0g YXR0LT5hdHRudW07CiAJCQl9CiAKQEAgLTEzNzEsNiArMTQzNCwxMSBAQCBwZ19nZXRfcHVibGlj YXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJdmFsdWVzWzJdID0gUG9pbnRlckdl dERhdHVtKGJ1aWxkaW50MnZlY3RvcihhdHRudW1zLCBuYXR0bnVtcykpOwogCQkJCW51bGxzWzJd ID0gZmFsc2U7CiAJCQl9CisJCQllbHNlCisJCQl7CisJCQkJdmFsdWVzWzJdID0gKERhdHVtKSAw OworCQkJCW51bGxzWzJdID0gdHJ1ZTsKKwkJCX0KIAogCQkJdGFibGVfY2xvc2UocmVsLCBBY2Nl c3NTaGFyZUxvY2spOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3Rl bV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXgg ZGVjOGRmNGY4ZWUuLjkwMDNmMjVmYWM0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Mu c3FsCkBAIC0zODgsNyArMzg4LDggQEAgQ1JFQVRFIFZJRVcgcGdfcHVibGljYXRpb25fdGFibGVz IEFTCiAgICAgICAgICAgV0hFUkUgYS5hdHRyZWxpZCA9IEdQVC5yZWxpZCBBTkQKICAgICAgICAg ICAgICAgICBhLmF0dG51bSA9IEFOWShHUFQuYXR0cnMpCiAgICAgICAgICkgQVMgYXR0bmFtZXMs Ci0gICAgICAgIHBnX2dldF9leHByKEdQVC5xdWFsLCBHUFQucmVsaWQpIEFTIHJvd2ZpbHRlcgor ICAgICAgICBwZ19nZXRfZXhwcihHUFQucXVhbCwgR1BULnJlbGlkKSBBUyByb3dmaWx0ZXIsCisg ICAgICAgIGdwdC5leGNlcHRjb2wgQVMgZXhjZXB0Y29sCiAgICAgRlJPTSBwZ19wdWJsaWNhdGlv biBQLAogICAgICAgICAgTEFURVJBTCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFAucHVibmFt ZSkgR1BULAogICAgICAgICAgcGdfY2xhc3MgQyBKT0lOIHBnX25hbWVzcGFjZSBOIE9OIChOLm9p ZCA9IEMucmVsbmFtZXNwYWNlKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpp bmRleCBlNzBmZGVmYmM5MC4uMTFlYzRlMjgxOGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5jCkBAIC0yMzcsNyArMjM3LDYgQEAgT2JqZWN0c0luUHVibGljYXRpb25Ub09p ZHMoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCXN3aXRjaCAo cHVib2JqLT5wdWJvYmp0eXBlKQogCQl7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFOgot CQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2VwdCA9IGZhbHNlOwogCQkJCSpyZWxzID0gbGFwcGVu ZCgqcmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBVQkxJQ0FU SU9OT0JKX0VYQ0VQVF9UQUJMRToKQEAgLTM5MSw4ICszOTAsOCBAQCBwdWJfcmZfY29udGFpbnNf aW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0 b3JzLAogICogVGhpcyBmdW5jdGlvbiBldmFsdWF0ZXMgdHdvIGNvbmRpdGlvbnM6CiAgKgogICog MS4gRW5zdXJlcyB0aGF0IGFsbCBjb2x1bW5zIHJlZmVyZW5jZWQgaW4gdGhlIFJFUExJQ0EgSURF TlRJVFkgYXJlIGNvdmVyZWQKLSAqICAgIGJ5IHRoZSBjb2x1bW4gbGlzdC4gSWYgYW55IGNvbHVt biBpcyBtaXNzaW5nLCAqaW52YWxpZF9jb2x1bW5fbGlzdCBpcyBzZXQKLSAqICAgIHRvIHRydWUu CisgKiAgICBieSB0aGUgY29sdW1uIGxpc3QgYW5kIGFyZSBub3QgcGFydCBvZiB0aGUgY29sdW1u IGxpc3Qgc3BlY2lmaWVkIHdpdGgKKyAqICAgIEVYQ0VQVC4gSWYgYW55IGNvbHVtbiBpcyBtaXNz aW5nLCAqaW52YWxpZF9jb2x1bW5fbGlzdCBpcyBzZXQgdG8gdHJ1ZS4KICAqIDIuIEVuc3VyZXMg dGhhdCBhbGwgdGhlIGdlbmVyYXRlZCBjb2x1bW5zIHJlZmVyZW5jZWQgaW4gdGhlIFJFUExJQ0Eg SURFTlRJVFkKICAqICAgIGFyZSBwdWJsaXNoZWQsIGVpdGhlciBieSBiZWluZyBleHBsaWNpdGx5 IG5hbWVkIGluIHRoZSBjb2x1bW4gbGlzdCBvciwgaWYKICAqICAgIG5vIGNvbHVtbiBsaXN0IGlz IHNwZWNpZmllZCwgYnkgc2V0dGluZyB0aGUgb3B0aW9uCkBAIC00MTQsNiArNDEzLDcgQEAgcHVi X2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExp c3QgKmFuY2VzdG9ycywKIAlUdXBsZURlc2MJZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsYXRp b24pOwogCVB1YmxpY2F0aW9uICpwdWI7CiAJaW50CQkJeDsKKwlib29sCQlleGNlcHRfY29sdW1u cyA9IGZhbHNlOwogCiAJKmludmFsaWRfY29sdW1uX2xpc3QgPSBmYWxzZTsKIAkqaW52YWxpZF9n ZW5fY29sID0gZmFsc2U7CkBAIC00MzcsNyArNDM3LDggQEAgcHViX2NvbnRhaW5zX2ludmFsaWRf Y29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAog CS8qIEZldGNoIHRoZSBjb2x1bW4gbGlzdCAqLwogCXB1YiA9IEdldFB1YmxpY2F0aW9uKHB1Ymlk KTsKLQljaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QocHViLCBwdWJsaXNoX2FzX3JlbGlkLCBO VUxMLCAmY29sdW1ucyk7CisJY2hlY2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KHB1YiwgcHVibGlz aF9hc19yZWxpZCwgTlVMTCwgJmNvbHVtbnMsCisJCQkJCQkJCSZleGNlcHRfY29sdW1ucyk7CiAK IAlpZiAocmVsYXRpb24tPnJkX3JlbC0+cmVscmVwbGlkZW50ID09IFJFUExJQ0FfSURFTlRJVFlf RlVMTCkKIAl7CkBAIC01MjcsOCArNTI4LDE0IEBAIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVt bihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJCQlhdHRu dW0gPSBnZXRfYXR0bnVtKHB1Ymxpc2hfYXNfcmVsaWQsIGNvbG5hbWUpOwogCQl9CiAKLQkJLyog cmVwbGljYSBpZGVudGl0eSBjb2x1bW4sIG5vdCBjb3ZlcmVkIGJ5IHRoZSBjb2x1bW4gbGlzdCAq LwotCQkqaW52YWxpZF9jb2x1bW5fbGlzdCB8PSAhYm1zX2lzX21lbWJlcihhdHRudW0sIGNvbHVt bnMpOworCQkvKgorCQkgKiBSZXBsaWNhIGlkZW50aXR5IGNvbHVtbiwgbm90IGNvdmVyZWQgYnkg dGhlIGNvbHVtbiBsaXN0IG9yIGlzIHBhcnQKKwkJICogb2YgY29sdW1uIGxpc3Qgc3BlY2lmaWVk IHdpdGggRVhDRVBULgorCQkgKi8KKwkJaWYgKGV4Y2VwdF9jb2x1bW5zKQorCQkJKmludmFsaWRf Y29sdW1uX2xpc3QgfD0gYm1zX2lzX21lbWJlcihhdHRudW0sIGNvbHVtbnMpOworCQllbHNlCisJ CQkqaW52YWxpZF9jb2x1bW5fbGlzdCB8PSAhYm1zX2lzX21lbWJlcihhdHRudW0sIGNvbHVtbnMp OwogCiAJCWlmICgqaW52YWxpZF9jb2x1bW5fbGlzdCAmJiAqaW52YWxpZF9nZW5fY29sKQogCQkJ YnJlYWs7CkBAIC0xNTE1LDYgKzE1MjIsNyBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVy UHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJSGVhcFR1cGxlCXJmdHVw bGU7CiAJCQlOb2RlCSAgICpvbGRyZWx3aGVyZWNsYXVzZSA9IE5VTEw7CiAJCQlCaXRtYXBzZXQg ICpvbGRjb2x1bW5zID0gTlVMTDsKKwkJCWJvb2wJCW9sZGV4Y2VwdCA9IGZhbHNlOwogCiAJCQkv KiBsb29rIHVwIHRoZSBjYWNoZSBmb3IgdGhlIG9sZCByZWxtYXAgKi8KIAkJCXJmdHVwbGUgPSBT ZWFyY2hTeXNDYWNoZTIoUFVCTElDQVRJT05SRUxNQVAsCkBAIC0xNTI4LDIzICsxNTM2LDI4IEBA IEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBU dXBsZSB0dXAsCiAJCQlpZiAoSGVhcFR1cGxlSXNWYWxpZChyZnR1cGxlKSkKIAkJCXsKIAkJCQli b29sCQlpc251bGwgPSB0cnVlOwotCQkJCURhdHVtCQl3aGVyZUNsYXVzZURhdHVtOwotCQkJCURh dHVtCQljb2x1bW5MaXN0RGF0dW07CisJCQkJRGF0dW0JCWRhdHVtOwogCiAJCQkJLyogTG9hZCB0 aGUgV0hFUkUgY2xhdXNlIGZvciB0aGlzIHRhYmxlLiAqLwotCQkJCXdoZXJlQ2xhdXNlRGF0dW0g PSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHJmdHVwbGUsCi0JCQkJCQkJCQkJ CQkgICBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcnF1YWwsCi0JCQkJCQkJCQkJCQkgICAmaXNu dWxsKTsKKwkJCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0 dXBsZSwKKwkJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcnF1YWwsCisJCQkJCQkJ CQkJJmlzbnVsbCk7CiAJCQkJaWYgKCFpc251bGwpCi0JCQkJCW9sZHJlbHdoZXJlY2xhdXNlID0g c3RyaW5nVG9Ob2RlKFRleHREYXR1bUdldENTdHJpbmcod2hlcmVDbGF1c2VEYXR1bSkpOworCQkJ CQlvbGRyZWx3aGVyZWNsYXVzZSA9IHN0cmluZ1RvTm9kZShUZXh0RGF0dW1HZXRDU3RyaW5nKGRh dHVtKSk7CiAKIAkJCQkvKiBUcmFuc2Zvcm0gdGhlIGludDJ2ZWN0b3IgY29sdW1uIGxpc3QgdG8g YSBiaXRtYXAuICovCi0JCQkJY29sdW1uTGlzdERhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJ Q0FUSU9OUkVMTUFQLCByZnR1cGxlLAotCQkJCQkJCQkJCQkJICBBbnVtX3BnX3B1YmxpY2F0aW9u X3JlbF9wcmF0dHJzLAotCQkJCQkJCQkJCQkJICAmaXNudWxsKTsKKwkJCQlkYXR1bSA9IFN5c0Nh Y2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0dXBsZSwKKwkJCQkJCQkJCQlBbnVtX3Bn X3B1YmxpY2F0aW9uX3JlbF9wcmF0dHJzLAorCQkJCQkJCQkJCSZpc251bGwpOworCQkJCWlmICgh aXNudWxsKQorCQkJCQlvbGRjb2x1bW5zID0gcHViX2NvbGxpc3RfdG9fYml0bWFwc2V0KE5VTEws IGRhdHVtLCBOVUxMKTsKIAorCQkJCS8qIExvYWQgdGhlIHByZXhjZXB0IGZsYWcgZm9yIHRoaXMg dGFibGUuICovCisJCQkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAs IHJmdHVwbGUsCisJCQkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJleGNlcHQsCisJ CQkJCQkJCQkJJmlzbnVsbCk7CiAJCQkJaWYgKCFpc251bGwpCi0JCQkJCW9sZGNvbHVtbnMgPSBw dWJfY29sbGlzdF90b19iaXRtYXBzZXQoTlVMTCwgY29sdW1uTGlzdERhdHVtLCBOVUxMKTsKKwkJ CQkJb2xkZXhjZXB0ID0gRGF0dW1HZXRCb29sKGRhdHVtKTsKIAogCQkJCVJlbGVhc2VTeXNDYWNo ZShyZnR1cGxlKTsKIAkJCX0KQEAgLTE1NzEsMTMgKzE1ODQsMTQgQEAgQWx0ZXJQdWJsaWNhdGlv blRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJCQkg KiBDaGVjayBpZiBhbnkgb2YgdGhlIG5ldyBzZXQgb2YgcmVsYXRpb25zIG1hdGNoZXMgd2l0aCB0 aGUKIAkJCQkgKiBleGlzdGluZyByZWxhdGlvbnMgaW4gdGhlIHB1YmxpY2F0aW9uLiBBZGRpdGlv bmFsbHksIGlmIHRoZQogCQkJCSAqIHJlbGF0aW9uIGhhcyBhbiBhc3NvY2lhdGVkIFdIRVJFIGNs YXVzZSwgY2hlY2sgdGhlIFdIRVJFCi0JCQkJICogZXhwcmVzc2lvbnMgYWxzbyBtYXRjaC4gU2Ft ZSBmb3IgdGhlIGNvbHVtbiBsaXN0LiBEcm9wIHRoZQotCQkJCSAqIHJlc3QuCisJCQkJICogZXhw cmVzc2lvbnMgYWxzbyBtYXRjaC4gU2FtZSBmb3IgdGhlIGNvbHVtbiBsaXN0IGFuZCBleGNlcHQK KwkJCQkgKiBmbGFnLiBEcm9wIHRoZSByZXN0LgogCQkJCSAqLwogCQkJCWlmIChuZXdyZWxpZCA9 PSBvbGRyZWxpZCkKIAkJCQl7CiAJCQkJCWlmIChlcXVhbChvbGRyZWx3aGVyZWNsYXVzZSwgbmV3 cHVicmVsLT53aGVyZUNsYXVzZSkgJiYKLQkJCQkJCWJtc19lcXVhbChvbGRjb2x1bW5zLCBuZXdj b2x1bW5zKSkKKwkJCQkJCWJtc19lcXVhbChvbGRjb2x1bW5zLCBuZXdjb2x1bW5zKSAmJgorCQkJ CQkJb2xkZXhjZXB0ID09IG5ld3B1YnJlbC0+ZXhjZXB0KQogCQkJCQl7CiAJCQkJCQlmb3VuZCA9 IHRydWU7CiAJCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDg3ZTc4ZjEzZDk0Li45NGYyZTY1 NDU1MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01MzUsNyArNTM1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VS ZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1 ZXJ5KTsKIAkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnCiAldHlwZSA8bGlzdD4J b3B0X2NvbHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBlIDxsaXN0Pglyb3dzZnJvbV9pdGVtIHJv d3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAotJXR5cGUgPGJvb2xlYW4+IG9wdF9vcmRpbmFs aXR5IG9wdF93aXRob3V0X292ZXJsYXBzCisldHlwZSA8Ym9vbGVhbj4gb3B0X29yZGluYWxpdHkg b3B0X3dpdGhvdXRfb3ZlcmxhcHMgb3B0X2V4Y2VwdAogJXR5cGUgPGxpc3Q+CUV4Y2x1c2lvbkNv bnN0cmFpbnRMaXN0IEV4Y2x1c2lvbkNvbnN0cmFpbnRFbGVtCiAldHlwZSA8bGlzdD4JZnVuY19h cmdfbGlzdCBmdW5jX2FyZ19saXN0X29wdAogJXR5cGUgPG5vZGU+CWZ1bmNfYXJnX2V4cHIKQEAg LTQ0ODAsNiArNDQ4MCwxMSBAQCBvcHRfd2l0aG91dF9vdmVybGFwczoKIAkJCXwgLypFTVBUWSov CQkJCQkJCQl7ICQkID0gZmFsc2U7IH0KIAk7CiAKK29wdF9leGNlcHQ6CisJCQlFWENFUFQJCQkJ CQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBmYWxzZTsg fQorCQk7CisKIG9wdF9jb2x1bW5fbGlzdDoKIAkJCScoJyBjb2x1bW5MaXN0ICcpJwkJCQkJCXsg JCQgPSAkMjsgfQogCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOSUw7IH0KQEAgLTEwNzk2 LDE0ICsxMDgwMSwxNSBAQCBDcmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAgKiByZWxhdGlvbl9leHBy IGhlcmUuCiAgKi8KIFB1YmxpY2F0aW9uT2JqU3BlYzoKLQkJCVRBQkxFIHJlbGF0aW9uX2V4cHIg b3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQlUQUJMRSByZWxhdGlvbl9leHByIG9w dF9leGNlcHQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCiAJCQkJewogCQkJCQkkJCA9 IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVC TElDQVRJT05PQkpfVEFCTEU7CiAJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0 aW9uVGFibGUpOwogCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDI7Ci0JCQkJCSQkLT5w dWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwotCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0g JDQ7CisJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gJDM7CisJCQkJCSQkLT5wdWJ0YWJsZS0+ Y29sdW1ucyA9ICQ0OworCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDU7CiAJCQkJ CSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElk CkBAIC0xMDgxOSw3ICsxMDgyNSw3IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJJCQtPnB1 Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fQ1VSX1NDSEVNQTsKIAkJCQkJJCQt PmxvY2F0aW9uID0gQDQ7CiAJCQkJfQotCQkJfCBDb2xJZCBvcHRfY29sdW1uX2xpc3QgT3B0V2hl cmVDbGF1c2UKKwkJCXwgQ29sSWQgb3B0X2V4Y2VwdCBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVD bGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJ CQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9DT05USU5VQVRJT047CkBAIC0xMDgy Nyw3ICsxMDgzMyw3IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJICogSWYgZWl0aGVyIGEg cm93IGZpbHRlciBvciBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQsIGNyZWF0ZQogCQkJCQkgKiBh IFB1YmxpY2F0aW9uVGFibGUgb2JqZWN0LgogCQkJCQkgKi8KLQkJCQkJaWYgKCQyIHx8ICQzKQor CQkJCQlpZiAoJDIgfHwgJDMgfHwgJDQpCiAJCQkJCXsKIAkJCQkJCS8qCiAJCQkJCQkgKiBUaGUg T3B0V2hlcmVDbGF1c2UgbXVzdCBiZSBzdG9yZWQgaGVyZSBidXQgaXQgaXMKQEAgLTEwODM3LDgg KzEwODQzLDkgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkJICovCiAJCQkJCQkkJC0+cHVi dGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKIAkJCQkJCSQkLT5wdWJ0YWJsZS0+ cmVsYXRpb24gPSBtYWtlUmFuZ2VWYXIoTlVMTCwgJDEsIEAxKTsKLQkJCQkJCSQkLT5wdWJ0YWJs ZS0+Y29sdW1ucyA9ICQyOwotCQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQzOwor CQkJCQkJJCQtPnB1YnRhYmxlLT5leGNlcHQgPSAkMjsKKwkJCQkJCSQkLT5wdWJ0YWJsZS0+Y29s dW1ucyA9ICQzOworCQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0OwogCQkJCQl9 CiAJCQkJCWVsc2UKIAkJCQkJewpAQCAtMTA4NDYsMjUgKzEwODUzLDI3IEBAIFB1YmxpY2F0aW9u T2JqU3BlYzoKIAkJCQkJfQogCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9Ci0JCQl8IENv bElkIGluZGlyZWN0aW9uIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQorCQkJfCBDb2xJ ZCBpbmRpcmVjdGlvbiBvcHRfZXhjZXB0IG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQog CQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwogCQkJCQkkJC0+ cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsKIAkJCQkJJCQtPnB1YnRh YmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+cmVs YXRpb24gPSBtYWtlUmFuZ2VWYXJGcm9tUXVhbGlmaWVkTmFtZSgkMSwgJDIsIEAxLCB5eXNjYW5u ZXIpOwotCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKLQkJCQkJJCQtPnB1YnRhYmxl LT53aGVyZUNsYXVzZSA9ICQ0OworCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9ICQzOworCQkJ CQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkNDsKKwkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNs YXVzZSA9ICQ1OwogCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CiAJCQkvKiBncmFtbWFy IGxpa2UgdGFibGVuYW1lICogLCBPTkxZIHRhYmxlbmFtZSwgT05MWSAoIHRhYmxlbmFtZSApICov Ci0JCQl8IGV4dGVuZGVkX3JlbGF0aW9uX2V4cHIgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xh dXNlCisJCQl8IGV4dGVuZGVkX3JlbGF0aW9uX2V4cHIgb3B0X2V4Y2VwdCBvcHRfY29sdW1uX2xp c3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25P YmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9DT05USU5VQVRJ T047CiAJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUpOwogCQkJ CQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDE7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1u cyA9ICQyOwotCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDM7CisJCQkJCSQkLT5w dWJ0YWJsZS0+ZXhjZXB0ID0gJDI7CisJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwor CQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CiAJCQkJfQogCQkJfCBDVVJSRU5U X1NDSEVNQQogCQkJCXsKQEAgLTE5ODU2LDYgKzE5ODY1LDEzIEBAIHByZXByb2Nlc3NfcHVib2Jq X2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKIAkJ CQkJCWVycm1zZygiaW52YWxpZCB0YWJsZSBuYW1lIiksCiAJCQkJCQlwYXJzZXJfZXJycG9zaXRp b24ocHVib2JqLT5sb2NhdGlvbikpOwogCisJCQlpZiAocHVib2JqLT5wdWJ0YWJsZSAmJiBwdWJv YmotPnB1YnRhYmxlLT5leGNlcHQgJiYKKwkJCQlwdWJvYmotPnB1YnRhYmxlLT5jb2x1bW5zID09 IE5VTEwpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAorCQkJCQkJZXJybXNnKCJ0YWJsZSB3aXRob3V0IGNvbHVtbiBsaXN0IGNhbm5vdCB1 c2UgRVhDRVBUIGNsYXVzZSIpLAorCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHB1Ym9iai0+bG9j YXRpb24pKTsKKwogCQkJaWYgKHB1Ym9iai0+bmFtZSkKIAkJCXsKIAkJCQkvKiBjb252ZXJ0IGl0 IHRvIFB1YmxpY2F0aW9uVGFibGUgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3RhYmxlc3luYy5jCmluZGV4IGU1YTI4NTZmZDE3Li42Y2EzMmZkODViYyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCkBAIC03MjAsMTAgKzcyMCwxOCBA QCBjb3B5X3JlYWRfZGF0YSh2b2lkICpvdXRidWYsIGludCBtaW5yZWFkLCBpbnQgbWF4cmVhZCkK ICAqIFRoaXMgZnVuY3Rpb24gYWxzbyByZXR1cm5zIChhKSB0aGUgcmVsYXRpb24gcXVhbGlmaWNh dGlvbnMgdG8gYmUgdXNlZCBpbgogICogdGhlIENPUFkgY29tbWFuZCwgYW5kIChiKSB3aGV0aGVy IHRoZSByZW1vdGUgcmVsYXRpb24gaGFzIHB1Ymxpc2hlZCBhbnkKICAqIGdlbmVyYXRlZCBjb2x1 bW4uCisgKgorICogV2l0aCB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSBFWENFUFQgcXVhbGlmaWVy IGluIGNvbHVtbiBsaXN0cywgaXQgaXMgbm93CisgKiBwb3NzaWJsZSB0byBkZWZpbmUgYSBwdWJs aWNhdGlvbiB0aGF0IGV4Y2x1ZGVzIGFsbCBjb2x1bW5zIG9mIGEgdGFibGUuIFdoZW4KKyAqIHRo ZSBjb2x1bW4gbGlzdCBpcyBmZXRjaGVkIGZyb20gdGhlIHJlbW90ZSBzZXJ2ZXIgYW5kIGlzIE5V TEwsIGl0IG5vcm1hbGx5CisgKiBpbmRpY2F0ZXMgdGhhdCBhbGwgY29sdW1ucyBhcmUgaW5jbHVk ZWQuIFRvIGRpc3Rpbmd1aXNoIHRoaXMgZnJvbSB0aGUgY2FzZQorICogd2hlcmUgYWxsIGNvbHVt bnMgYXJlIGV4cGxpY2l0bHkgZXhjbHVkZWQsIHRoZSAnYWxsX2NvbHNfZXhjbHVkZWQnIGZsYWcg aGFzCisgKiBiZWVuIGludHJvZHVjZWQuCiAgKi8KIHN0YXRpYyB2b2lkCiBmZXRjaF9yZW1vdGVf dGFibGVfaW5mbyhjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVsYXRp b24gKmxyZWwsCi0JCQkJCQlMaXN0ICoqcXVhbCwgYm9vbCAqZ2VuY29sX3B1Ymxpc2hlZCkKKwkJ CQkJCUxpc3QgKipxdWFsLCBib29sICpnZW5jb2xfcHVibGlzaGVkLAorCQkJCQkJYm9vbCAqYWxs X2NvbHNfZXhjbHVkZWQpCiB7CiAJV2FsUmN2RXhlY1Jlc3VsdCAqcmVzOwogCVN0cmluZ0luZm9E YXRhIGNtZDsKQEAgLTczNyw2ICs3NDUsOSBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhjaGFy ICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCiAJQml0 bWFwc2V0ICAqaW5jbHVkZWRfY29scyA9IE5VTEw7CiAJaW50CQkJc2VydmVyX3ZlcnNpb24gPSB3 YWxyY3Zfc2VydmVyX3ZlcnNpb24oTG9nUmVwV29ya2VyV2FsUmN2Q29ubik7CiAKKwlBc3NlcnQo KmdlbmNvbF9wdWJsaXNoZWQgPT0gZmFsc2UpOworCUFzc2VydCgqYWxsX2NvbHNfZXhjbHVkZWQg PT0gZmFsc2UpOworCiAJbHJlbC0+bnNwbmFtZSA9IG5zcG5hbWU7CiAJbHJlbC0+cmVsbmFtZSA9 IHJlbG5hbWU7CiAKQEAgLTc4Nyw3ICs3OTgsNyBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhj aGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCiAJ ewogCQlXYWxSY3ZFeGVjUmVzdWx0ICpwdWJyZXM7CiAJCVR1cGxlVGFibGVTbG90ICp0c2xvdDsK LQkJT2lkCQkJYXR0cnNSb3dbXSA9IHtJTlQyVkVDVE9ST0lEfTsKKwkJT2lkCQkJYXR0cnNSb3db XSA9IHtJTlQyVkVDVE9ST0lELCBCT09MT0lEfTsKIAogCQkvKiBCdWlsZCB0aGUgcHViX25hbWVz IGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcuICovCiAJCXB1Yl9uYW1lcyA9IG1ha2VTdHJpbmdJbmZv KCk7CkBAIC04MDEsNyArODEyLDE3IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIgKm5z cG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJlbCwKIAkJYXBwZW5k U3RyaW5nSW5mbygmY21kLAogCQkJCQkJICJTRUxFQ1QgRElTVElOQ1QiCiAJCQkJCQkgIiAgKENB U0UgV0hFTiAoYXJyYXlfbGVuZ3RoKGdwdC5hdHRycywgMSkgPSBjLnJlbG5hdHRzKSIKLQkJCQkJ CSAiICAgVEhFTiBOVUxMIEVMU0UgZ3B0LmF0dHJzIEVORCkiCisJCQkJCQkgIiAgIFRIRU4gTlVM TCBFTFNFIGdwdC5hdHRycyBFTkQpIik7CisKKwkJLyoKKwkJICogV2hlbiBwdWJsaWNhdGlvbiBp cyBjcmVhdGVkIHdpdGggRVhDRVBUIChjb2x1bW4tbGlzdCkgYW5kIGFsbAorCQkgKiBjb2x1bW5z IGFyZSBzcGVjaWZpZWQsIGdwdC5hdHRycyB3aWxsIGJlIE5VTEwgYW5kIG5vIGNvbHVtbnMgYXJl CisJCSAqIHB1Ymxpc2hlZCBpbiB0aGlzIGNhc2UuCisJCSAqLworCQlpZiAoc2VydmVyX3ZlcnNp b24gPj0gMTkwMDAwKQorCQkJYXBwZW5kU3RyaW5nSW5mbygmY21kLCAiLCBncHQuYXR0cnMgSVMg TlVMTCBBTkQgYy5yZWxuYXR0cyA+IDAiKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsCiAJ CQkJCQkgIiAgRlJPTSBwZ19wdWJsaWNhdGlvbiBwLCIKIAkJCQkJCSAiICBMQVRFUkFMIHBnX2dl dF9wdWJsaWNhdGlvbl90YWJsZXMocC5wdWJuYW1lKSBncHQsIgogCQkJCQkJICIgIHBnX2NsYXNz IGMiCkBAIC04MTEsNyArODMyLDcgQEAgZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNw bmFtZSwgY2hhciAqcmVsbmFtZSwgTG9naWNhbFJlcFJlbGF0aW9uICpscmVsLAogCQkJCQkJIHB1 Yl9uYW1lcy0+ZGF0YSk7CiAKIAkJcHVicmVzID0gd2FscmN2X2V4ZWMoTG9nUmVwV29ya2VyV2Fs UmN2Q29ubiwgY21kLmRhdGEsCi0JCQkJCQkJIGxlbmd0aG9mKGF0dHJzUm93KSwgYXR0cnNSb3cp OworCQkJCQkJCSBzZXJ2ZXJfdmVyc2lvbiA+PSAxOTAwMDAgPyAyIDogMSwgYXR0cnNSb3cpOwog CiAJCWlmIChwdWJyZXMtPnN0YXR1cyAhPSBXQUxSQ1ZfT0tfVFVQTEVTKQogCQkJZXJlcG9ydChF UlJPUiwKQEAgLTg1OCw2ICs4NzksOSBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhjaGFyICpu c3BuYW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCiAJCQkJCWlu Y2x1ZGVkX2NvbHMgPSBibXNfYWRkX21lbWJlcihpbmNsdWRlZF9jb2xzLCBlbGVtc1tuYXR0XSk7 CiAJCQl9CiAKKwkJCWlmIChzZXJ2ZXJfdmVyc2lvbiA+PSAxOTAwMDApCisJCQkJKmFsbF9jb2xz X2V4Y2x1ZGVkID0gRGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0c2xvdCwgMiwgJmlzbnVsbCkp OworCiAJCQlFeGVjQ2xlYXJUdXBsZSh0c2xvdCk7CiAJCX0KIAkJRXhlY0Ryb3BTaW5nbGVUdXBs ZVRhYmxlU2xvdCh0c2xvdCk7CkBAIC05MjAsNyArOTQ0LDggQEAgZmV0Y2hfcmVtb3RlX3RhYmxl X2luZm8oY2hhciAqbnNwbmFtZSwgY2hhciAqcmVsbmFtZSwgTG9naWNhbFJlcFJlbGF0aW9uICps cmVsLAogCQlBc3NlcnQoIWlzbnVsbCk7CiAKIAkJLyogSWYgdGhlIGNvbHVtbiBpcyBub3QgaW4g dGhlIGNvbHVtbiBsaXN0LCBza2lwIGl0LiAqLwotCQlpZiAoaW5jbHVkZWRfY29scyAhPSBOVUxM ICYmICFibXNfaXNfbWVtYmVyKGF0dG51bSwgaW5jbHVkZWRfY29scykpCisJCWlmICgqYWxsX2Nv bHNfZXhjbHVkZWQgfHwKKwkJCShpbmNsdWRlZF9jb2xzICE9IE5VTEwgJiYgIWJtc19pc19tZW1i ZXIoYXR0bnVtLCBpbmNsdWRlZF9jb2xzKSkpCiAJCXsKIAkJCUV4ZWNDbGVhclR1cGxlKHNsb3Qp OwogCQkJY29udGludWU7CkBAIC0xMDUyLDExICsxMDc3LDE1IEBAIGNvcHlfdGFibGUoUmVsYXRp b24gcmVsKQogCVBhcnNlU3RhdGUgKnBzdGF0ZTsKIAlMaXN0CSAgICpvcHRpb25zID0gTklMOwog CWJvb2wJCWdlbmNvbF9wdWJsaXNoZWQgPSBmYWxzZTsKKwlib29sCQlhbGxfY29sc19leGNsdWRl ZCA9IGZhbHNlOwogCiAJLyogR2V0IHRoZSBwdWJsaXNoZXIgcmVsYXRpb24gaW5mby4gKi8KIAlm ZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1l c3BhY2UocmVsKSksCiAJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSwgJmxyZWws ICZxdWFsLAotCQkJCQkJCSZnZW5jb2xfcHVibGlzaGVkKTsKKwkJCQkJCQkmZ2VuY29sX3B1Ymxp c2hlZCwgJmFsbF9jb2xzX2V4Y2x1ZGVkKTsKKworCWlmIChhbGxfY29sc19leGNsdWRlZCkKKwkJ cmV0dXJuOwogCiAJLyogUHV0IHRoZSByZWxhdGlvbiBpbnRvIHJlbG1hcC4gKi8KIAlsb2dpY2Fs cmVwX3JlbG1hcF91cGRhdGUoJmxyZWwpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0 cHV0L3Bnb3V0cHV0LmMKaW5kZXggYTk1OTNjNWQ5ZGEuLjdmNTM0NjE4Y2Y0IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTE4NSw2ICsxODUsMTYg QEAgdHlwZWRlZiBzdHJ1Y3QgUmVsYXRpb25TeW5jRW50cnkKIAkgKiByb3cgZmlsdGVyIGV4cHJl c3Npb25zLCBjb2x1bW4gbGlzdCwgZXRjLgogCSAqLwogCU1lbW9yeUNvbnRleHQgZW50cnlfY3h0 OworCisJLyoKKwkgKiBJbmRpY2F0ZXMgd2hldGhlciBubyBjb2x1bW5zIGFyZSBwdWJsaXNoZWQg Zm9yIGEgZ2l2ZW4gcmVsYXRpb24uIFdpdGgKKwkgKiB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSBF WENFUFQgcXVhbGlmaWVyIGluIGNvbHVtbiBsaXN0cywgaXQgaXMgbm93CisJICogcG9zc2libGUg dG8gZGVmaW5lIGEgcHVibGljYXRpb24gdGhhdCBleGNsdWRlcyBhbGwgY29sdW1ucyBvZiBhIHRh YmxlLgorCSAqIEhvd2V2ZXIsIHRoZSAnY29sdW1ucycgYXR0cmlidXRlIGNhbm5vdCByZXByZXNl bnQgdGhpcyBjYXNlLCBzaW5jZSBhCisJICogTlVMTCB2YWx1ZSBpbXBsaWVzIHRoYXQgYWxsIGNv bHVtbnMgYXJlIHB1Ymxpc2hlZC4gVG8gZGlzdGluZ3Vpc2ggdGhpcworCSAqIHNjZW5hcmlvLCB0 aGUgJ2FsbF9jb2xzX2V4Y2x1ZGVkJyBmbGFnIGlzIGludHJvZHVjZWQuCisJICovCisJYm9vbAkJ YWxsX2NvbHNfZXhjbHVkZWQ7CiB9IFJlbGF0aW9uU3luY0VudHJ5OwogCiAvKgpAQCAtMTA5MSwx MiArMTEwMSwyMSBAQCBjaGVja19hbmRfaW5pdF9nZW5jb2woUEdPdXRwdXREYXRhICpkYXRhLCBM aXN0ICpwdWJsaWNhdGlvbnMsCiAJICovCiAJZm9yZWFjaF9wdHIoUHVibGljYXRpb24sIHB1Yiwg cHVibGljYXRpb25zKQogCXsKKwkJYm9vbAkJaGFzX2NvbHVtbl9saXN0ID0gZmFsc2U7CisJCWJv b2wJCWV4Y2VwdF9jb2x1bW5zID0gZmFsc2U7CisKKwkJaGFzX2NvbHVtbl9saXN0ID0gY2hlY2tf YW5kX2ZldGNoX2NvbHVtbl9saXN0KHB1YiwKKwkJCQkJCQkJCQkJCQkgIGVudHJ5LT5wdWJsaXNo X2FzX3JlbGlkLAorCQkJCQkJCQkJCQkJCSAgTlVMTCwgTlVMTCwKKwkJCQkJCQkJCQkJCQkgICZl eGNlcHRfY29sdW1ucyk7CisKIAkJLyoKIAkJICogVGhlIGNvbHVtbiBsaXN0IHRha2VzIHByZWNl ZGVuY2Ugb3ZlciB0aGUKIAkJICogJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIHBhcmFtZXRl ci4gVGhvc2Ugd2lsbCBiZSBjaGVja2VkIGxhdGVyLAotCQkgKiBzZWUgcGdvdXRwdXRfY29sdW1u X2xpc3RfaW5pdC4KKwkJICogc2VlIHBnb3V0cHV0X2NvbHVtbl9saXN0X2luaXQuIEJ1dCB3aGVu IGEgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkCisJCSAqIHdpdGggRVhDRVBULCBpdCBzaG91bGQg YmUgY2hlY2tlZC4KIAkJICovCi0JCWlmIChjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QocHVi LCBlbnRyeS0+cHVibGlzaF9hc19yZWxpZCwgTlVMTCwgTlVMTCkpCisJCWlmIChoYXNfY29sdW1u X2xpc3QgJiYgIWV4Y2VwdF9jb2x1bW5zKQogCQkJY29udGludWU7CiAKIAkJaWYgKGZpcnN0KQpA QCAtMTE0NSwxOSArMTE2NCw0MSBAQCBwZ291dHB1dF9jb2x1bW5fbGlzdF9pbml0KFBHT3V0cHV0 RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25zLAogCXsKIAkJUHVibGljYXRpb24gKnB1YiA9 IGxmaXJzdChsYyk7CiAJCUJpdG1hcHNldCAgKmNvbHMgPSBOVUxMOworCQlib29sCQlleGNlcHRf Y29sdW1ucyA9IGZhbHNlOworCQlib29sCQlhbGxfY29sc19leGNsdWRlZCA9IGZhbHNlOwogCiAJ CS8qIFJldHJpZXZlIHRoZSBiaXRtYXAgb2YgY29sdW1ucyBmb3IgYSBjb2x1bW4gbGlzdCBwdWJs aWNhdGlvbi4gKi8KIAkJZm91bmRfcHViX2NvbGxpc3QgfD0gY2hlY2tfYW5kX2ZldGNoX2NvbHVt bl9saXN0KHB1YiwKIAkJCQkJCQkJCQkJCQkJIGVudHJ5LT5wdWJsaXNoX2FzX3JlbGlkLAotCQkJ CQkJCQkJCQkJCQkgZW50cnktPmVudHJ5X2N4dCwgJmNvbHMpOworCQkJCQkJCQkJCQkJCQkgZW50 cnktPmVudHJ5X2N4dCwgJmNvbHMsCisJCQkJCQkJCQkJCQkJCSAmZXhjZXB0X2NvbHVtbnMpOwor CisJCS8qCisJCSAqIElmIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCB3aXRoIEVYQ0VQVCByZXRy aWV2ZSBiaXRtYXAgb2YgY29sdW1ucworCQkgKiB3aGljaCBhcmUgbm90IHBhcnQgb2YgdGhpcyBj b2x1bW4gbGlzdC4KKwkJICovCisJCWlmIChleGNlcHRfY29sdW1ucykKKwkJeworCQkJTWVtb3J5 Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZW50cnktPmVudHJ5X2N4dCk7 CisKKwkJCWNvbHMgPSBwdWJfZm9ybV9jb2xzX21hcChyZWxhdGlvbiwKKwkJCQkJCQkJCSBlbnRy eS0+aW5jbHVkZV9nZW5jb2xzX3R5cGUsIGNvbHMpOworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRv KG9sZGN4dCk7CisKKwkJCWlmICghY29scykKKwkJCQlhbGxfY29sc19leGNsdWRlZCA9IHRydWU7 CisJCX0KIAogCQkvKgotCQkgKiBGb3Igbm9uLWNvbHVtbiBsaXN0IHB1YmxpY2F0aW9ucyDigJQg ZS5nLiBUQUJMRSAod2l0aG91dCBhIGNvbHVtbgotCQkgKiBsaXN0KSwgQUxMIFRBQkxFUywgb3Ig QUxMIFRBQkxFUyBJTiBTQ0hFTUEsIHdlIGNvbnNpZGVyIGFsbCBjb2x1bW5zCi0JCSAqIG9mIHRo ZSB0YWJsZSAoaW5jbHVkaW5nIGdlbmVyYXRlZCBjb2x1bW5zIHdoZW4KKwkJICogSWYgJ2NvbHMn IGlzIG51bGwsIGl0IGluZGljYXRlcyB0aGF0IHRoZSBwdWJsaWNhdGlvbiBpcyBlaXRoZXIgYQor CQkgKiBub24tY29sdW1uIGxpc3QgcHVibGljYXRpb24gb3Igb25lIHdoZXJlIGFsbCBjb2x1bW5z IGFyZSBleGNsdWRlZC4KKwkJICogV2hlbiAnYWxsX2NvbHNfZXhjbHVkZWQnIGlzIHRydWUsIGl0 IGV4cGxpY2l0bHkgbWVhbnMgYWxsIGNvbHVtbnMKKwkJICogaGF2ZSBiZWVuIGV4Y2x1ZGVkLiBG b3Igbm9uLWNvbHVtbiBsaXN0IHB1YmxpY2F0aW9ucyDigJQgZS5nLiBUQUJMRQorCQkgKiAod2l0 aG91dCBhIGNvbHVtbiBsaXN0KSwgQUxMIFRBQkxFUywgb3IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEs IHdlCisJCSAqIGNvbnNpZGVyIGFsbCBjb2x1bW5zIG9mIHRoZSB0YWJsZSAoaW5jbHVkaW5nIGdl bmVyYXRlZCBjb2x1bW5zIHdoZW4KIAkJICogJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIHBh cmFtZXRlciBpcyB0cnVlKS4KIAkJICovCi0JCWlmICghY29scykKKwkJaWYgKCFhbGxfY29sc19l eGNsdWRlZCAmJiAhY29scykKIAkJewogCQkJLyoKIAkJCSAqIENhY2hlIHRoZSB0YWJsZSBjb2x1 bW5zIGZvciB0aGUgZmlyc3QgcHVibGljYXRpb24gd2l0aCBubwpAQCAtMTE2OSw3ICsxMjEwLDcg QEAgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdChQR091dHB1dERhdGEgKmRhdGEsIExpc3QgKnB1 YmxpY2F0aW9ucywKIAkJCQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhlbnRyeS0+ZW50cnlfY3h0KTsKIAogCQkJCXJlbGNvbHMgPSBwdWJfZm9ybV9jb2xzX21h cChyZWxhdGlvbiwKLQkJCQkJCQkJCQkJZW50cnktPmluY2x1ZGVfZ2VuY29sc190eXBlKTsKKwkJ CQkJCQkJCQkJZW50cnktPmluY2x1ZGVfZ2VuY29sc190eXBlLCBOVUxMKTsKIAkJCQlNZW1vcnlD b250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKIAkJCX0KIApAQCAtMTE3OSw5ICsxMjIwLDExIEBAIHBn b3V0cHV0X2NvbHVtbl9saXN0X2luaXQoUEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNh dGlvbnMsCiAJCWlmIChmaXJzdCkKIAkJewogCQkJZW50cnktPmNvbHVtbnMgPSBjb2xzOworCQkJ ZW50cnktPmFsbF9jb2xzX2V4Y2x1ZGVkID0gYWxsX2NvbHNfZXhjbHVkZWQ7CiAJCQlmaXJzdCA9 IGZhbHNlOwogCQl9Ci0JCWVsc2UgaWYgKCFibXNfZXF1YWwoZW50cnktPmNvbHVtbnMsIGNvbHMp KQorCQllbHNlIGlmICgoZW50cnktPmFsbF9jb2xzX2V4Y2x1ZGVkICE9IGFsbF9jb2xzX2V4Y2x1 ZGVkKSB8fAorCQkJCSAhYm1zX2VxdWFsKGVudHJ5LT5jb2x1bW5zLCBjb2xzKSkKIAkJCWVyZXBv cnQoRVJST1IsCiAJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAog CQkJCQllcnJtc2coImNhbm5vdCB1c2UgZGlmZmVyZW50IGNvbHVtbiBsaXN0cyBmb3IgdGFibGUg XCIlcy4lc1wiIGluIGRpZmZlcmVudCBwdWJsaWNhdGlvbnMiLApAQCAtMTUwNSw2ICsxNTQ4LDEz IEBAIHBnb3V0cHV0X2NoYW5nZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFJlb3JkZXJC dWZmZXJUWE4gKnR4biwKIAogCXJlbGVudHJ5ID0gZ2V0X3JlbF9zeW5jX2VudHJ5KGRhdGEsIHJl bGF0aW9uKTsKIAorCS8qCisJICogSWYgYWxsIGNvbHVtbnMgb2YgYSB0YWJsZSBhcmUgcHJlc2Vu dCBpbiBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aAorCSAqIEVYQ0VQVCwgc2tpcCBwdWJsaXNo aW5nIHRoZSBjaGFuZ2VzLgorCSAqLworCWlmIChyZWxlbnRyeS0+YWxsX2NvbHNfZXhjbHVkZWQp CisJCXJldHVybjsKKwogCS8qIEZpcnN0IGNoZWNrIHRoZSB0YWJsZSBmaWx0ZXIgKi8KIAlzd2l0 Y2ggKGFjdGlvbikKIAl7CkBAIC0yMDc4LDYgKzIxMjgsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnko UEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50cnktPnB1Ymxpc2hf YXNfcmVsaWQgPSBJbnZhbGlkT2lkOwogCQllbnRyeS0+Y29sdW1ucyA9IE5VTEw7CiAJCWVudHJ5 LT5hdHRybWFwID0gTlVMTDsKKwkJZW50cnktPmFsbF9jb2xzX2V4Y2x1ZGVkID0gZmFsc2U7CiAJ fQogCiAJLyogVmFsaWRhdGUgdGhlIGVudHJ5ICovCkBAIC0yMTI3LDYgKzIxNzgsNyBAQCBnZXRf cmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJ ZW50cnktPnB1YmFjdGlvbnMucHVidXBkYXRlID0gZmFsc2U7CiAJCWVudHJ5LT5wdWJhY3Rpb25z LnB1YmRlbGV0ZSA9IGZhbHNlOwogCQllbnRyeS0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0ZSA9IGZh bHNlOworCQllbnRyeS0+YWxsX2NvbHNfZXhjbHVkZWQgPSBmYWxzZTsKIAogCQkvKgogCQkgKiBU dXBsZSBzbG90cyBjbGVhbnVwcy4gKFdpbGwgYmUgcmVidWlsdCBsYXRlciBpZiBuZWVkZWQpLgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKaW5kZXggZTM0YWFiYTc5MzcuLjFmZGI5MGY2NDgyIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAg LTQ5MzMsMjQgKzQ5MzMsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQlpZiAodGJpbmZvID09IE5VTEwp CiAJCQljb250aW51ZTsKIAotCQkvKiBPSywgbWFrZSBhIER1bXBhYmxlT2JqZWN0IGZvciB0aGlz IHJlbGF0aW9uc2hpcCAqLwotCQlpZiAoc3RyY21wKHByZXhjZXB0LCAiZiIpID09IDApCi0JCQlw dWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9SRUw7Ci0JCWVsc2UKLQkJ CXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw7Ci0K LQkJcHVicmluZm9bal0uZG9iai5jYXRJZC50YWJsZW9pZCA9Ci0JCQlhdG9vaWQoUFFnZXR2YWx1 ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKLQkJcHVicmluZm9bal0uZG9iai5jYXRJZC5vaWQgPSBh dG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7Ci0JCUFzc2lnbkR1bXBJZCgmcHVicmlu Zm9bal0uZG9iaik7Ci0JCXB1YnJpbmZvW2pdLmRvYmoubmFtZXNwYWNlID0gdGJpbmZvLT5kb2Jq Lm5hbWVzcGFjZTsKLQkJcHVicmluZm9bal0uZG9iai5uYW1lID0gdGJpbmZvLT5kb2JqLm5hbWU7 Ci0JCXB1YnJpbmZvW2pdLnB1YmxpY2F0aW9uID0gcHViaW5mbzsKLQkJcHVicmluZm9bal0ucHVi dGFibGUgPSB0YmluZm87Ci0JCWlmIChQUWdldGlzbnVsbChyZXMsIGksIGlfcHJyZWxxdWFsKSkK LQkJCXB1YnJpbmZvW2pdLnB1YnJlbHF1YWwgPSBOVUxMOwotCQllbHNlCi0JCQlwdWJyaW5mb1tq XS5wdWJyZWxxdWFsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3BycmVscXVhbCkp OworCQlwdWJyaW5mb1tqXS5wdWJleGNlcHQgPSAoc3RyY21wKHByZXhjZXB0LCAidCIpID09IDAp OwogCiAJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX3ByYXR0cnMpKQogCQl7CkBAIC00OTc2 LDEwICs0OTU5LDI5IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxl SW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCWVsc2UKIAkJCXB1YnJpbmZvW2pdLnB1 YnJhdHRycyA9IE5VTEw7CiAKKwkJLyogT0ssIG1ha2UgYSBEdW1wYWJsZU9iamVjdCBmb3IgdGhp cyByZWxhdGlvbnNoaXAgKi8KKwkJaWYgKHB1YnJpbmZvW2pdLnB1YmV4Y2VwdCAmJiAhcHVicmlu Zm9bal0ucHVicmF0dHJzKQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElD QVRJT05fRVhDRVBUX1JFTDsKKwkJZWxzZQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0g RE9fUFVCTElDQVRJT05fUkVMOworCisJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVvaWQg PQorCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CisJCXB1YnJpbmZv W2pdLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOwor CQlBc3NpZ25EdW1wSWQoJnB1YnJpbmZvW2pdLmRvYmopOworCQlwdWJyaW5mb1tqXS5kb2JqLm5h bWVzcGFjZSA9IHRiaW5mby0+ZG9iai5uYW1lc3BhY2U7CisJCXB1YnJpbmZvW2pdLmRvYmoubmFt ZSA9IHRiaW5mby0+ZG9iai5uYW1lOworCQlwdWJyaW5mb1tqXS5wdWJsaWNhdGlvbiA9IHB1Ymlu Zm87CisJCXB1YnJpbmZvW2pdLnB1YnRhYmxlID0gdGJpbmZvOworCQlpZiAoUFFnZXRpc251bGwo cmVzLCBpLCBpX3BycmVscXVhbCkpCisJCQlwdWJyaW5mb1tqXS5wdWJyZWxxdWFsID0gTlVMTDsK KwkJZWxzZQorCQkJcHVicmluZm9bal0ucHVicmVscXVhbCA9IHBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV9wcnJlbHF1YWwpKTsKKwogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRv IGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFibGVQdWJsaWNhdGlvbk9iamVjdCgmKHB1YnJpbmZv W2pdLmRvYmopLCBmb3V0KTsKIAotCQlpZiAoc3RyY21wKHByZXhjZXB0LCAidCIpID09IDApCisJ CWlmIChwdWJyaW5mb1tqXS5wdWJleGNlcHQgJiYgIXB1YnJpbmZvW2pdLnB1YnJhdHRycykKIAkJ CXNpbXBsZV9wdHJfbGlzdF9hcHBlbmQoJmV4Y2VwdGluZm8sICZwdWJyaW5mb1tqXSk7CiAKIAkJ aisrOwpAQCAtNTA1OSw3ICs1MDYxLDEyIEBAIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8pCiAJCQkJCSAgZm10UXVh bGlmaWVkRHVtcGFibGUodGJpbmZvKSk7CiAKIAlpZiAocHVicmluZm8tPnB1YnJhdHRycykKKwl7 CisJCWlmIChwdWJyaW5mby0+cHViZXhjZXB0KQorCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVl cnksICIgRVhDRVBUIik7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgKCVzKSIsIHB1 YnJpbmZvLT5wdWJyYXR0cnMpOworCX0KIAogCWlmIChwdWJyaW5mby0+cHVicmVscXVhbCkKIAl7 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaAppbmRleCA3MjNiNTU3NWM1My4uY2EyZDM1NmY3MmEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApA QCAtNjkwLDYgKzY5MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9QdWJsaWNhdGlvblJlbEluZm8KIAlU YWJsZUluZm8gICpwdWJ0YWJsZTsKIAljaGFyCSAgICpwdWJyZWxxdWFsOwogCWNoYXIJICAgKnB1 YnJhdHRyczsKKwlib29sCQlwdWJleGNlcHQ7CiB9IFB1YmxpY2F0aW9uUmVsSW5mbzsKIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKaW5kZXggNTBiMWQ0MzUzNTkuLjZjZWIxMDhhMzViIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMTU2MCw2 ICsxNTYwLDkxIEBAIGRlc2NyaWJlVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSwgYm9vbCBzaG93U3lzdGVtKQogCXJldHVybiB0cnVlOwogfQogCisvKgorICog QWRkIGEgZm9vdGVyIHRvIGEgcHVibGljYXRpb24gZGVzY3JpcHRpb24gb3IgYSB0YWJsZSBkZXNj cmlwdGlvbi4KKyAqCisgKiAnaXNfcHViX2Rlc2MnIC0gdHJ1ZSBmb3IgYSBwdWIgZGVzYzsgZmFs c2UgZm9yIGEgdGFibGUgZGVzYworICogJ3B1Yl9zY2hlbWFzJyAtIHRydWUgaWYgdGhlIHB1Yl9k ZXNjIG9ubHkgc2hvd3Mgc2NoZW1hcywgb3RoZXJ3aXNlIGZhbHNlCisgKi8KK3N0YXRpYyBib29s CithZGRGb290ZXJUb1B1YmxpY2F0aW9uT3JUYWJsZURlc2MoUFFFeHBCdWZmZXIgYnVmLAorCQkJ CQkJCQkgIHByaW50VGFibGVDb250ZW50ICpjb25zdCBjb250LAorCQkJCQkJCQkgIGNvbnN0IGNo YXIgKmZvb3Rlcm1zZywKKwkJCQkJCQkJICBib29sIGlzX3B1Yl9kZXNjLCBib29sIHB1Yl9zY2hl bWFzKQoreworCVBHcmVzdWx0ICAgKnJlczsKKwlpbnQJCQljb3VudDsKKwlpbnQJCQljb2wgPSBp c19wdWJfZGVzYyA/IDEgOiAwOworCisJcmVzID0gUFNRTGV4ZWMoYnVmLT5kYXRhKTsKKwlpZiAo IXJlcykKKwkJcmV0dXJuIGZhbHNlOworCisJY291bnQgPSBQUW50dXBsZXMocmVzKTsKKwlpZiAo Y291bnQgPiAwKQorCQlwcmludFRhYmxlQWRkRm9vdGVyKGNvbnQsIGZvb3Rlcm1zZyk7CisKKwkv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisJICogRGVzY3JpcHRpb24gY29sdW1ucyBmb3I6CisJICoKKwkgKiBQVUIgICAgICBU QkwKKwkgKiBbMF0gICAgICAtICAgICAgOiBzY2hlbWEgbmFtZSAobnNwbmFtZSkKKwkgKiBbY29s XSAgICAtICAgICAgOiB0YWJsZSBuYW1lIChyZWxuYW1lKQorCSAqIC0gICAgICAgIFtjb2xdICA6 IHB1YmxpY2F0aW9uIG5hbWUgKHB1Ym5hbWUpCisJICogW2NvbCsxXSAgW2NvbCsxXTogcm93IGZp bHRlciBleHByZXNzaW9uIChwcnF1YWwpLCBtYXkgYmUgTlVMTAorCSAqIFtjb2wrMl0gIFtjb2wr Ml06IGNvbHVtbiBsaXN0IChjb21tYS1zZXBhcmF0ZWQpLCBtYXkgYmUgTlVMTAorCSAqIFtjb2wr M10gIFtjb2wrM106IGV4Y2VwdCBmbGFnICgidCIgaWYgRVhDRVBULCBlbHNlICJmIikKKwkgKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisJICovCisJZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQorCXsKKwkJcHJpbnRm UFFFeHBCdWZmZXIoYnVmLCAiICAgICIpOyAvKiBpbmRlbnQgKi8KKworCQkvKgorCQkgKiBGb290 ZXIgZW50cmllcyBmb3IgYSBwdWJsaWNhdGlvbiBkZXNjcmlwdGlvbiBvciBhIHRhYmxlCisJCSAq IGRlc2NyaXB0aW9uCisJCSAqLworCQlpZiAoaXNfcHViX2Rlc2MpCisJCXsKKwkJCWlmIChwdWJf c2NoZW1hcykKKwkJCXsKKwkJCQkvKiBTY2hlbWFzIG9mIHRoZSBwdWJsaWNhdGlvbi4uLiAqLwor CQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIlwiJXNcIiIsIFBRZ2V0dmFsdWUocmVzLCBpLCAw KSk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJLyogVGFibGVzIG9mIHRoZSBwdWJsaWNhdGlv bi4uLiAqLworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIlwiJXMuJXNcIiIsIFBRZ2V0dmFs dWUocmVzLCBpLCAwKSwKKwkJCQkJCQkJICBQUWdldHZhbHVlKHJlcywgaSwgY29sKSk7CisJCQl9 CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBQdWJsaWNhdGlvbnMgb2YgdGhlIHRhYmxlLi4uICov CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICJcIiVzXCIiLCBQUWdldHZhbHVlKHJlcywgaSwg Y29sKSk7CisJCX0KKworCQkvKiBDb21tb24gZm9vdGVyIG91dHB1dCBmb3IgY29sdW1uIGxpc3Qg YW5kL29yIHJvdyBmaWx0ZXIgKi8KKwkJaWYgKCFwdWJfc2NoZW1hcykKKwkJeworCQkJaWYgKCFQ UWdldGlzbnVsbChyZXMsIGksIGNvbCArIDIpKQorCQkJeworCQkJCWlmIChzdHJjbXAoUFFnZXR2 YWx1ZShyZXMsIGksIGNvbCArIDMpLCAidCIpID09IDApCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVy KGJ1ZiwgIiBFWENFUFQiKTsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICIgKCVzKSIsIFBR Z2V0dmFsdWUocmVzLCBpLCBjb2wgKyAyKSk7CisJCQl9CisKKwkJCWlmICghUFFnZXRpc251bGwo cmVzLCBpLCBjb2wgKyAxKSkKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICIgV0hFUkUgJXMi LCBQUWdldHZhbHVlKHJlcywgaSwgY29sICsgMSkpOworCQl9CisKKwkJcHJpbnRUYWJsZUFkZEZv b3Rlcihjb250LCBidWYtPmRhdGEpOworCX0KKworCVBRY2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1 ZTsKK30KKwogLyoKICAqIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzIChmb3IgXGQpCiAgKgpAQCAt MzA1MywxNiArMzEzOCwyNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpz Y2hlbWFuYW1lLAogCQkvKiBwcmludCBhbnkgcHVibGljYXRpb25zICovCiAJCWlmIChwc2V0LnN2 ZXJzaW9uID49IDEwMDAwMCkKIAkJewotCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQor CQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQogCQkJewogCQkJCXByaW50ZlBRRXhwQnVm ZmVyKCZidWYsCisKKwkJCQkvKgorCQkJCSAqIEdldCBhbGwgcHVibGljYXRpb25zIGZvciB0aGUg c2NoZW1hIHRoYXQgdGhpcyByZWxhdGlvbiBpcworCQkJCSAqIHBhcnQgb2YKKwkJCQkgKi8KIAkJ CQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKIAkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKIAkJ CQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJ ICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKIAkJCQkJCQkJICAiICAgICBK T0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHBuIE9OIHAub2lkID0gcG4u cG5wdWJpZFxuIgogCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwYyBP TiBwYy5yZWxuYW1lc3BhY2UgPSBwbi5wbm5zcGlkXG4iCiAJCQkJCQkJCSAgIldIRVJFIHBjLm9p ZCA9JyVzJyBhbmQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxu IgorCisJCQkJLyoKKwkJCQkgKiBHZXQgYWxsIHB1YmxpY2F0aW9ucyBmb3IgdGhpcyByZWxhdGlv biBjcmVhdGVkIHVzaW5nIEZPUgorCQkJCSAqIFRBQkxFCisJCQkJICovCiAJCQkJCQkJCSAgIlVO SU9OXG4iCiAJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCiAJCQkJCQkJCSAgIiAgICAgLCBw Z19nZXRfZXhwcihwci5wcnF1YWwsIGMub2lkKVxuIgpAQCAtMzA3MiwzNSArMzE2OCw2NyBAQCBk ZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCQkg ICIgICAgICAgICAgICAgICAgcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGVcbiIKIAkJCQkJCQkJICAi ICAgICAgICAgIFdIRVJFIGF0dHJlbGlkID0gcHIucHJyZWxpZCBBTkQgYXR0bnVtID0gcHJhdHRy c1tzXSlcbiIKIAkJCQkJCQkJICAiICAgICAgICBFTFNFIE5VTEwgRU5EKSAiCisJCQkJCQkJCSAg IgkJLCBwcmV4Y2VwdCAiCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlv biBwXG4iCiAJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBw ciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKIAkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cu cGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKLQkJCQkJCQkJICAiV0hFUkUgcHIu cHJyZWxpZCA9ICclcydcbiIsCi0JCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCk7Ci0KLQkJCQlpZiAo cHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCi0JCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICIgQU5EIE5PVCBwci5wcmV4Y2VwdFxuIik7CisJCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQg PSAnJXMnICIKKwkJCQkJCQkJICAiQU5ECXAucHViYWxsdGFibGVzID0gZmFsc2VcbiIKKwkJCQkJ CQkJICAiQU5EICBjLnJlbG5hbWVzcGFjZSBOT1QgSU4gKFxuICIKKwkJCQkJCQkJICAiIAlTRUxF Q1QgcG5uc3BpZCBGUk9NXG4iCisJCQkJCQkJCSAgIiAJcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlv bl9uYW1lc3BhY2UpXG4iCiAKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCS8qCisJ CQkJICogR2V0IGFsbCBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbnMgdGhhdCBpbmNsdWRlIHRo aXMKKwkJCQkgKiByZWxhdGlvbgorCQkJCSAqLwogCQkJCQkJCQkgICJVTklPTlxuIgogCQkJCQkJ CQkgICJTRUxFQ1QgcHVibmFtZVxuIgogCQkJCQkJCQkgICIJCSwgTlVMTFxuIgogCQkJCQkJCQkg ICIJCSwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgogCQkJCQkJCQkgICJGUk9NIHBn X2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgotCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRh YmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIiwK LQkJCQkJCQkJICBvaWQpOwotCi0JCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQotCQkJ CQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCQkJICAiICAgICBBTkQgTk9UIEVYSVNU UyAoXG4iCi0JCQkJCQkJCQkgICIJCVNFTEVDVCAxXG4iCi0JCQkJCQkJCQkgICIJCUZST00gcGdf Y2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKLQkJCQkJCQkJCSAgIgkJSk9JTiBwZ19j YXRhbG9nLnBnX2NsYXNzIHBjXG4iCi0JCQkJCQkJCQkgICIJCU9OIHByLnBycmVsaWQgPSBwYy5v aWRcbiIKLQkJCQkJCQkJCSAgIgkJV0hFUkUgcHIucHJyZWxpZCA9ICclcycgQU5EIHByLnBycHVi aWQgPSBwLm9pZClcbiIsCi0JCQkJCQkJCQkgIG9pZCk7Ci0KLQkJCQlhcHBlbmRQUUV4cEJ1ZmZl clN0cigmYnVmLCAiT1JERVIgQlkgMTsiKTsKKwkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJs ZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKKwkJ CQkJCQkJICAiICAgICBBTkQgTk9UIEVYSVNUUyAoXG4iCisJCQkJCQkJCSAgIgkJU0VMRUNUIDFc biIKKwkJCQkJCQkJICAiCQlGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4i CisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjXG4iCisJCQkJCQkJCSAg IgkJT04gcHIucHJyZWxpZCA9IHBjLm9pZFxuIgorCQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVs aWQgPSAnJXMnIEFORCBwci5wcnB1YmlkID0gcC5vaWQpXG4iCisJCQkJCQkJCSAgIk9SREVSIEJZ IDE7IiwKKwkJCQkJCQkJICBvaWQsIG9pZCwgb2lkLCBvaWQsIG9pZCk7CisJCQl9CisJCQllbHNl IGlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwkJCXsKKwkJCQlwcmludGZQUUV4cEJ1ZmZl cigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgorCQkJCQkJCQkgICIgICAgICwg TlVMTFxuIgorCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICJGUk9NIHBnX2Nh dGFsb2cucGdfcHVibGljYXRpb24gcFxuIgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxv Zy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4gT04gcC5vaWQgPSBwbi5wbnB1YmlkXG4iCisJ CQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjIE9OIHBjLnJlbG5hbWVz cGFjZSA9IHBuLnBubnNwaWRcbiIKKwkJCQkJCQkJICAiV0hFUkUgcGMub2lkID0nJXMnIGFuZCBw Z19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iCisJCQkJCQkJCSAg IlVOSU9OXG4iCisJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCisJCQkJCQkJCSAgIiAgICAg LCBwZ19nZXRfZXhwcihwci5wcnF1YWwsIGMub2lkKVxuIgorCQkJCQkJCQkgICIgICAgICwgKENB U0UgV0hFTiBwci5wcmF0dHJzIElTIE5PVCBOVUxMIFRIRU5cbiIKKwkJCQkJCQkJICAiICAgICAg ICAgKFNFTEVDVCBzdHJpbmdfYWdnKGF0dG5hbWUsICcsICcpXG4iCisJCQkJCQkJCSAgIiAgICAg ICAgICAgRlJPTSBwZ19jYXRhbG9nLmdlbmVyYXRlX3NlcmllcygwLCBwZ19jYXRhbG9nLmFycmF5 X3VwcGVyKHByLnByYXR0cnM6OnBnX2NhdGFsb2cuaW50MltdLCAxKSkgcyxcbiIKKwkJCQkJCQkJ ICAiICAgICAgICAgICAgICAgIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlXG4iCisJCQkJCQkJCSAg IiAgICAgICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0 cnNbc10pXG4iCisJCQkJCQkJCSAgIiAgICAgICAgRUxTRSBOVUxMIEVORCkgIgorCQkJCQkJCQkg ICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgorCQkJCQkJCQkgICIgICAgIEpP SU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1Ymlk XG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQg PSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQgPSAnJXMnXG4iCisJ CQkJCQkJCSAgIlVOSU9OXG4iCisJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCisJCQkJCQkJ CSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAg IkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCisJCQkJCQkJCSAgIldIRVJFIHAu cHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCcl cycpXG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDE7IiwKKwkJCQkJCQkJICBvaWQsIG9pZCwgb2lk LCBvaWQpOwogCQkJfQogCQkJZWxzZQogCQkJewpAQCAtMzEyMSwzNCArMzI0OSw4IEBAIGRlc2Ny aWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJCSAgb2lk LCBvaWQpOwogCQkJfQogCi0JCQlyZXN1bHQgPSBQU1FMZXhlYyhidWYuZGF0YSk7Ci0JCQlpZiAo IXJlc3VsdCkKKwkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbk9yVGFibGVEZXNjKCZidWYs ICZjb250LCBfKCJQdWJsaWNhdGlvbnM6IiksIGZhbHNlLCBmYWxzZSkpCiAJCQkJZ290byBlcnJv cl9yZXR1cm47Ci0JCQllbHNlCi0JCQkJdHVwbGVzID0gUFFudHVwbGVzKHJlc3VsdCk7Ci0KLQkJ CWlmICh0dXBsZXMgPiAwKQotCQkJCXByaW50VGFibGVBZGRGb290ZXIoJmNvbnQsIF8oIlB1Ymxp Y2F0aW9uczoiKSk7Ci0KLQkJCS8qIE1pZ2h0IGJlIGFuIGVtcHR5IHNldCAtIHRoYXQncyBvayAq LwotCQkJZm9yIChpID0gMDsgaSA8IHR1cGxlczsgaSsrKQotCQkJewotCQkJCXByaW50ZlBRRXhw QnVmZmVyKCZidWYsICIgICAgXCIlc1wiIiwKLQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwg aSwgMCkpOwotCi0JCQkJLyogY29sdW1uIGxpc3QgKGlmIGFueSkgKi8KLQkJCQlpZiAoIVBRZ2V0 aXNudWxsKHJlc3VsdCwgaSwgMikpCi0JCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgKCVz KSIsCi0JCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAyKSk7Ci0KLQkJCQkvKiByb3cg ZmlsdGVyIChpZiBhbnkpICovCi0JCQkJaWYgKCFQUWdldGlzbnVsbChyZXN1bHQsIGksIDEpKQot CQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiIFdIRVJFICVzIiwKLQkJCQkJCQkJCSAgUFFn ZXR2YWx1ZShyZXN1bHQsIGksIDEpKTsKLQotCQkJCXByaW50VGFibGVBZGRGb290ZXIoJmNvbnQs IGJ1Zi5kYXRhKTsKLQkJCX0KLQkJCVBRY2xlYXIocmVzdWx0KTsKIAkJfQogCiAJCS8qCkBAIC02 NTMyLDQ5ICs2NjM0LDYgQEAgbGlzdFB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQog CXJldHVybiB0cnVlOwogfQogCi0vKgotICogQWRkIGZvb3RlciB0byBwdWJsaWNhdGlvbiBkZXNj cmlwdGlvbi4KLSAqLwotc3RhdGljIGJvb2wKLWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKFBR RXhwQnVmZmVyIGJ1ZiwgY29uc3QgY2hhciAqZm9vdGVybXNnLAotCQkJCQkJICAgYm9vbCBhc19z Y2hlbWEsIHByaW50VGFibGVDb250ZW50ICpjb25zdCBjb250KQotewotCVBHcmVzdWx0ICAgKnJl czsKLQlpbnQJCQljb3VudCA9IDA7Ci0JaW50CQkJaSA9IDA7Ci0KLQlyZXMgPSBQU1FMZXhlYyhi dWYtPmRhdGEpOwotCWlmICghcmVzKQotCQlyZXR1cm4gZmFsc2U7Ci0JZWxzZQotCQljb3VudCA9 IFBRbnR1cGxlcyhyZXMpOwotCi0JaWYgKGNvdW50ID4gMCkKLQkJcHJpbnRUYWJsZUFkZEZvb3Rl cihjb250LCBmb290ZXJtc2cpOwotCi0JZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCi0Jewot CQlpZiAoYXNfc2NoZW1hKQotCQkJcHJpbnRmUFFFeHBCdWZmZXIoYnVmLCAiICAgIFwiJXNcIiIs IFBRZ2V0dmFsdWUocmVzLCBpLCAwKSk7Ci0JCWVsc2UKLQkJewotCQkJcHJpbnRmUFFFeHBCdWZm ZXIoYnVmLCAiICAgIFwiJXMuJXNcIiIsIFBRZ2V0dmFsdWUocmVzLCBpLCAwKSwKLQkJCQkJCQkg IFBRZ2V0dmFsdWUocmVzLCBpLCAxKSk7Ci0KLQkJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCAz KSkKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICIgKCVzKSIsIFBRZ2V0dmFsdWUocmVzLCBp LCAzKSk7Ci0KLQkJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCAyKSkKLQkJCQlhcHBlbmRQUUV4 cEJ1ZmZlcihidWYsICIgV0hFUkUgJXMiLCBQUWdldHZhbHVlKHJlcywgaSwgMikpOwotCQl9Ci0K LQkJcHJpbnRUYWJsZUFkZEZvb3Rlcihjb250LCBidWYtPmRhdGEpOwotCX0KLQotCVBRY2xlYXIo cmVzKTsKLQlyZXR1cm4gdHJ1ZTsKLX0KLQogLyoKICAqIFxkUnArCiAgKiBEZXNjcmliZXMgcHVi bGljYXRpb25zIGluY2x1ZGluZyB0aGUgY29udGVudHMuCkBAIC02NzY0LDYgKzY4MjMsMTIgQEAg ZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCWVsc2UKIAkJCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAogCQkJCQkJCQkJICIsIE5VTEwsIE5VTEwiKTsKKwor CQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsICIsIHByZXhjZXB0Iik7CisJCQllbHNlCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwgIiwgTlVMTCIpOworCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJCSAg IlxuRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMsXG4iCiAJCQkJCQkJICAiICAgICBwZ19jYXRh bG9nLnBnX25hbWVzcGFjZSBuLFxuIgpAQCAtNjc3MiwxMSArNjgzNyw4IEBAIGRlc2NyaWJlUHVi bGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCQkJICAiICBBTkQgYy5vaWQgPSBw ci5wcnJlbGlkXG4iCiAJCQkJCQkJICAiICBBTkQgcHIucHJwdWJpZCA9ICclcydcbiIsIHB1Ymlk KTsKIAotCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQotCQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsICIgIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOwotCiAJCQlhcHBlbmRQUUV4cEJ1 ZmZlcigmYnVmLCAiT1JERVIgQlkgMSwyIik7Ci0JCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRp b25EZXNjKCZidWYsIF8oIlRhYmxlczoiKSwgZmFsc2UsICZjb250KSkKKwkJCWlmICghYWRkRm9v dGVyVG9QdWJsaWNhdGlvbk9yVGFibGVEZXNjKCZidWYsICZjb250LCBfKCJUYWJsZXM6IiksIHRy dWUsIGZhbHNlKSkKIAkJCQlnb3RvIGVycm9yX3JldHVybjsKIAogCQkJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMTUwMDAwKQpAQCAtNjc4OCw4ICs2ODUwLDggQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMo Y29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdf cHVibGljYXRpb25fbmFtZXNwYWNlIHBuIE9OIG4ub2lkID0gcG4ucG5uc3BpZFxuIgogCQkJCQkJ CQkgICJXSEVSRSBwbi5wbnB1YmlkID0gJyVzJ1xuIgogCQkJCQkJCQkgICJPUkRFUiBCWSAxIiwg cHViaWQpOwotCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiVGFi bGVzIGZyb20gc2NoZW1hczoiKSwKLQkJCQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQlpZiAo IWFkZEZvb3RlclRvUHVibGljYXRpb25PclRhYmxlRGVzYygmYnVmLCAmY29udCwKKwkJCQkJCQkJ CQkJCQkgICBfKCJUYWJsZXMgZnJvbSBzY2hlbWFzOiIpLCB0cnVlLCB0cnVlKSkKIAkJCQkJZ290 byBlcnJvcl9yZXR1cm47CiAJCQl9CiAJCX0KQEAgLTY3OTksMTQgKzY4NjEsMTQgQEAgZGVzY3Jp YmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCXsKIAkJCQkvKiBHZXQgdGhl IGV4Y2x1ZGVkIHRhYmxlcyBmb3IgdGhlIHNwZWNpZmllZCBwdWJsaWNhdGlvbiAqLwogCQkJCXBy aW50ZlBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJCSAgIlNFTEVDVCBjb25jYXQoYy5yZWxuYW1l c3BhY2U6OnJlZ25hbWVzcGFjZSwgJy4nLCBjLnJlbG5hbWUpXG4iCisJCQkJCQkJCSAgIlNFTEVD VCBjLnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCBjLnJlbG5hbWUsIE5VTEwsIE5VTExcbiIK IAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNcbiIKIAkJCQkJCQkJICAiICAg ICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIGMub2lkID0gcHIucHJy ZWxpZFxuIgogCQkJCQkJCQkgICJXSEVSRSBwci5wcnB1YmlkID0gJyVzJ1xuIgogCQkJCQkJCQkg ICIgIEFORCBwci5wcmV4Y2VwdFxuIgogCQkJCQkJCQkgICJPUkRFUiBCWSAxIiwgcHViaWQpOwot CQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiRXhjZXB0IHRhYmxl czoiKSwKLQkJCQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQlpZiAoIWFkZEZvb3RlclRvUHVi bGljYXRpb25PclRhYmxlRGVzYygmYnVmLCAmY29udCwKKwkJCQkJCQkJCQkJCQkgICBfKCJFeGNl cHQgdGFibGVzOiIpLCB0cnVlLCBmYWxzZSkpCiAJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCQkJ fQogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggYzVjOGU2ZTg1MzQuLmY3MmJlOTNkOTQy IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMjk0LDYgKzIyOTQsMTAgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMi LCAiVEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVS IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIpKQogCQlD T01QTEVURV9XSVRIKCJFWENFUFQgVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIs ICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIsIE1hdGNoQW55KSAm JiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCAoIik7 CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgTWF0 Y2hBbnlOLCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAllbHNlIGlmIChNYXRj aGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIp KQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMp OwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJB REQiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQiLCAiVEFCTEUiKSkKQEAgLTIzMTQsMTAgKzIz MTgsMTMgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRF X1dJVEgoIigiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCBNYXRjaEFueU4sICJXSEVSRSIsICIoIikpCiAJCUNPTVBMRVRFX1dJVEhfQVRUUihw cmV2M193ZCk7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRj aEFueSwgTWF0Y2hBbnlOLCAiRVhDRVBUIiwgIigiKSkKKwkJQ09NUExFVEVfV0lUSF9BVFRSKHBy ZXYzX3dkKTsKIAllbHNlIGlmIChIZWFkTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBN YXRjaEFueSwgIkFERHxTRVQiLCAiVEFCTEUiKSAmJgotCQkJICFUYWlsTWF0Y2hlcygiV0hFUkUi LCAiKCopIikpCisJCQkgIVRhaWxNYXRjaGVzKCJXSEVSRSIsICIoKikiKSAmJiAhVGFpbE1hdGNo ZXMoIkVYQ0VQVCIsICIoIikpCiAJCUNPTVBMRVRFX1dJVEgoIiwiLCAiV0hFUkUgKCIpOwotCWVs c2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQURE fFNFVCIsICJUQUJMRSIpKQorCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpICYmCisJCQkgIWVuZHNfd2l0aChw cmV2X3dkLCAnKCcpKQogCQlDT01QTEVURV9XSVRIKCIsIik7CiAJLyogQUxURVIgUFVCTElDQVRJ T04gPG5hbWU+IERST1AgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55LCAiRFJPUCIpKQpAQCAtMzYzNSw3ICszNjQyLDcgQEAgbWF0Y2hfcHJldmlv dXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBV QkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEVTIikpCiAJCUNPTVBMRVRFX1dJVEgo IklOIFNDSEVNQSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIs IE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFIiwgTWF0Y2hBbnkpICYmICFlbmRzX3dpdGgocHJldl93 ZCwgJywnKSkKLQkJQ09NUExFVEVfV0lUSCgiV0hFUkUgKCIsICJXSVRIICgiKTsKKwkJQ09NUExF VEVfV0lUSCgiRVhDRVBUICgiLCAiV0hFUkUgKCIsICJXSVRIICgiKTsKIAkvKiBDb21wbGV0ZSAi Q1JFQVRFIFBVQkxJQ0FUSU9OIDxuYW1lPiBGT1IgVEFCTEUiIHdpdGggIjx0YWJsZT4sIC4uLiIg Ki8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwg IkZPUiIsICJUQUJMRSIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3Jf bGlzdF9vZl90YWJsZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggMzRiN2ZkZGIwZTcu LjYwNjhhYmYzYWZhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTEyMjk4LDkgKzEyMjk4 LDkgQEAKICAgcHJvbmFtZSA9PiAncGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcycsIHByb3Jvd3Mg PT4gJzEwMDAnLAogICBwcm92YXJpYWRpYyA9PiAndGV4dCcsIHByb3JldHNldCA9PiAndCcsIHBy b3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywgcHJvYXJndHlwZXMg PT4gJ190ZXh0JywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3tfdGV4dCxvaWQsb2lkLGludDJ2ZWN0 b3IscGdfbm9kZV90cmVlfScsCi0gIHByb2FyZ21vZGVzID0+ICd7dixvLG8sbyxvfScsCi0gIHBy b2FyZ25hbWVzID0+ICd7cHVibmFtZSxwdWJpZCxyZWxpZCxhdHRycyxxdWFsfScsCisgIHByb2Fs bGFyZ3R5cGVzID0+ICd7X3RleHQsb2lkLG9pZCxpbnQydmVjdG9yLHBnX25vZGVfdHJlZSxib29s fScsCisgIHByb2FyZ21vZGVzID0+ICd7dixvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4g J3twdWJuYW1lLHB1YmlkLHJlbGlkLGF0dHJzLHF1YWwsZXhjZXB0Y29sfScsCiAgIHByb3NyYyA9 PiAncGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcycgfSwKIHsgb2lkID0+ICc4MDUyJywgZGVzY3Ig PT4gJ2dldCBPSURzIG9mIHNlcXVlbmNlcyBpbiBhIHB1YmxpY2F0aW9uJywKICAgcHJvbmFtZSA9 PiAncGdfZ2V0X3B1YmxpY2F0aW9uX3NlcXVlbmNlcycsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9y ZXRzZXQgPT4gJ3QnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCmluZGV4IDlhMDcy MTVhZTMwLi4wYWI4YTAwOGRjNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaApA QCAtMTg4LDcgKzE4OCw4IEBAIGV4dGVybiBPaWQJR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNh dGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCiBleHRlcm4gYm9vbCBpc19wdWJsaXNo YWJsZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJuIGJvb2wgaXNfc2NoZW1hX3B1Ymxp Y2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gYm9vbCBjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xp c3QoUHVibGljYXRpb24gKnB1YiwgT2lkIHJlbGlkLAotCQkJCQkJCQkJCU1lbW9yeUNvbnRleHQg bWN4dCwgQml0bWFwc2V0ICoqY29scyk7CisJCQkJCQkJCQkJTWVtb3J5Q29udGV4dCBtY3h0LCBC aXRtYXBzZXQgKipjb2xzLAorCQkJCQkJCQkJCWJvb2wgKmV4Y2VwdF9jb2x1bW5zKTsKIGV4dGVy biBPYmplY3RBZGRyZXNzIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1Ymxp Y2F0aW9uUmVsSW5mbyAqcHJpLAogCQkJCQkJCQkJCQkgIGJvb2wgaWZfbm90X2V4aXN0cyk7CiBl eHRlcm4gQml0bWFwc2V0ICpwdWJfY29sbGlzdF92YWxpZGF0ZShSZWxhdGlvbiB0YXJnZXRyZWws IExpc3QgKmNvbHVtbnMpOwpAQCAtMTk4LDYgKzE5OSw3IEBAIGV4dGVybiBPYmplY3RBZGRyZXNz IHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHB1YmlkLCBPaWQgc2NoZW1haWQsCiBleHRlcm4g Qml0bWFwc2V0ICpwdWJfY29sbGlzdF90b19iaXRtYXBzZXQoQml0bWFwc2V0ICpjb2x1bW5zLCBE YXR1bSBwdWJjb2xzLAogCQkJCQkJCQkJCSAgIE1lbW9yeUNvbnRleHQgbWN4dCk7CiBleHRlcm4g Qml0bWFwc2V0ICpwdWJfZm9ybV9jb2xzX21hcChSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJ CVB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSk7CisJCQkJCQkJCQlQdWJs aXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xzX3R5cGUsCisJCQkJCQkJCQlCaXRtYXBzZXQg KmV4Y2VwdF9jb2xzKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX1BVQkxJQ0FUSU9OX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCmluZGV4IGU3ZDdmM2JhODVjLi42 YTIxNjhmYzMyYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlv bl9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCkBA IC0zMSwxMSArMzEsMTIgQEAgQ0FUQUxPRyhwZ19wdWJsaWNhdGlvbl9yZWwsNjEwNixQdWJsaWNh dGlvblJlbFJlbGF0aW9uSWQpCiAJT2lkCQkJb2lkOwkJCS8qIG9pZCAqLwogCU9pZAkJCXBycHVi aWQgQktJX0xPT0tVUChwZ19wdWJsaWNhdGlvbik7IC8qIE9pZCBvZiB0aGUgcHVibGljYXRpb24g Ki8KIAlPaWQJCQlwcnJlbGlkIEJLSV9MT09LVVAocGdfY2xhc3MpOwkvKiBPaWQgb2YgdGhlIHJl bGF0aW9uICovCi0JYm9vbAkJcHJleGNlcHQgQktJX0RFRkFVTFQoZik7CS8qIGV4Y2x1ZGUgdGhl IHJlbGF0aW9uICovCisJYm9vbAkJcHJleGNlcHQgQktJX0RFRkFVTFQoZik7CS8qIGV4Y2x1ZGUg dGhlIHJlbGF0aW9uIG9yIGNvbHVtbnMgKi8KIAogI2lmZGVmCUNBVEFMT0dfVkFSTEVOCQkJLyog dmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCiAJcGdfbm9kZV90cmVlIHBycXVh bDsJCS8qIHF1YWxpZmljYXRpb25zICovCi0JaW50MnZlY3RvcglwcmF0dHJzOwkJLyogY29sdW1u cyB0byByZXBsaWNhdGUgKi8KKwlpbnQydmVjdG9yCXByYXR0cnM7CQkvKiBjb2x1bW5zIHRvIHJl cGxpY2F0ZSBvciBleGNsdWRlIHRvCisJCQkJCQkJCSAqIHJlcGxpY2F0ZSAqLwogI2VuZGlmCiB9 IEZvcm1EYXRhX3BnX3B1YmxpY2F0aW9uX3JlbDsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3B1YmxpY2F0aW9uLm91dAppbmRleCAwNjI0NjlkNzIyMC4uMTc0N2MyMmIyYmMgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC0xOTA0LDUyICsxOTA0LDUy IEBAIENSRUFURSBUQUJMRSBzY2gyLnRibDFfcGFydDEgUEFSVElUSU9OIE9GIHNjaDEudGJsMSBG T1IgVkFMVUVTIEZST00gKDEpIHRvICgxMCk7CiAtLSBTY2hlbWEgcHVibGljYXRpb24gdGhhdCBk b2VzIG5vdCBpbmNsdWRlIHRoZSBzY2hlbWEgdGhhdCBoYXMgdGhlIHBhcmVudCB0YWJsZQogQ1JF QVRFIFBVQkxJQ0FUSU9OIHB1YiBGT1IgVEFCTEVTIElOIFNDSEVNQSBzY2gyIFdJVEggKFBVQkxJ U0hfVklBX1BBUlRJVElPTl9ST09UPTEpOwogU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90 YWJsZXM7Ci0gcHVibmFtZSB8IHNjaGVtYW5hbWUgfCB0YWJsZW5hbWUgIHwgYXR0bmFtZXMgfCBy b3dmaWx0ZXIgCi0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCi0gcHViICAgICB8IHNjaDIgICAgICAgfCB0YmwxX3BhcnQxIHwge2F9ICAg ICAgfCAKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFtZSAgfCBhdHRuYW1lcyB8IHJv d2ZpbHRlciB8IGV4Y2VwdGNvbCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBwdWIgICAgIHwgc2NoMiAgICAg ICB8IHRibDFfcGFydDEgfCB7YX0gICAgICB8ICAgICAgICAgICB8IGYKICgxIHJvdykKIAogRFJP UCBQVUJMSUNBVElPTiBwdWI7CiAtLSBUYWJsZSBwdWJsaWNhdGlvbiB0aGF0IGRvZXMgbm90IGlu Y2x1ZGUgdGhlIHBhcmVudCB0YWJsZQogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YiBGT1IgVEFCTEUg c2NoMi50YmwxX3BhcnQxIFdJVEggKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UPTEpOwogU0VM RUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXM7Ci0gcHVibmFtZSB8IHNjaGVtYW5hbWUg fCB0YWJsZW5hbWUgIHwgYXR0bmFtZXMgfCByb3dmaWx0ZXIgCi0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gcHViICAgICB8IHNjaDIg ICAgICAgfCB0YmwxX3BhcnQxIHwge2F9ICAgICAgfCAKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8 IHRhYmxlbmFtZSAgfCBhdHRuYW1lcyB8IHJvd2ZpbHRlciB8IGV4Y2VwdGNvbCAKKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBwdWIgICAgIHwgc2NoMiAgICAgICB8IHRibDFfcGFydDEgfCB7YX0gICAgICB8ICAg ICAgICAgICB8IGYKICgxIHJvdykKIAogLS0gVGFibGUgcHVibGljYXRpb24gdGhhdCBpbmNsdWRl cyBib3RoIHRoZSBwYXJlbnQgdGFibGUgYW5kIHRoZSBjaGlsZCB0YWJsZQogQUxURVIgUFVCTElD QVRJT04gcHViIEFERCBUQUJMRSBzY2gxLnRibDE7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0 aW9uX3RhYmxlczsKLSBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFtZSB8IGF0dG5hbWVz IHwgcm93ZmlsdGVyIAotLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tCi0gcHViICAgICB8IHNjaDEgICAgICAgfCB0YmwxICAgICAgfCB7YX0g ICAgICB8IAorIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1lIHwgYXR0bmFtZXMgfCBy b3dmaWx0ZXIgfCBleGNlcHRjb2wgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBwdWIgICAgIHwgc2NoMSAgICAg ICB8IHRibDEgICAgICB8IHthfSAgICAgIHwgICAgICAgICAgIHwgZgogKDEgcm93KQogCiBEUk9Q IFBVQkxJQ0FUSU9OIHB1YjsKIC0tIFNjaGVtYSBwdWJsaWNhdGlvbiB0aGF0IGRvZXMgbm90IGlu Y2x1ZGUgdGhlIHNjaGVtYSB0aGF0IGhhcyB0aGUgcGFyZW50IHRhYmxlCiBDUkVBVEUgUFVCTElD QVRJT04gcHViIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHNjaDIgV0lUSCAoUFVCTElTSF9WSUFfUEFS VElUSU9OX1JPT1Q9MCk7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKLSBw dWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFtZSAgfCBhdHRuYW1lcyB8IHJvd2ZpbHRlciAK LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KLSBwdWIgICAgIHwgc2NoMiAgICAgICB8IHRibDFfcGFydDEgfCB7YX0gICAgICB8IAorIHB1 Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1lICB8IGF0dG5hbWVzIHwgcm93ZmlsdGVyIHwg ZXhjZXB0Y29sIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHB1YiAgICAgfCBzY2gyICAgICAgIHwgdGJsMV9w YXJ0MSB8IHthfSAgICAgIHwgICAgICAgICAgIHwgZgogKDEgcm93KQogCiBEUk9QIFBVQkxJQ0FU SU9OIHB1YjsKIC0tIFRhYmxlIHB1YmxpY2F0aW9uIHRoYXQgZG9lcyBub3QgaW5jbHVkZSB0aGUg cGFyZW50IHRhYmxlCiBDUkVBVEUgUFVCTElDQVRJT04gcHViIEZPUiBUQUJMRSBzY2gyLnRibDFf cGFydDEgV0lUSCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1Q9MCk7CiBTRUxFQ1QgKiBGUk9N IHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKLSBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFt ZSAgfCBhdHRuYW1lcyB8IHJvd2ZpbHRlciAKLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSBwdWIgICAgIHwgc2NoMiAgICAgICB8IHRi bDFfcGFydDEgfCB7YX0gICAgICB8IAorIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1l ICB8IGF0dG5hbWVzIHwgcm93ZmlsdGVyIHwgZXhjZXB0Y29sIAorLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHB1 YiAgICAgfCBzY2gyICAgICAgIHwgdGJsMV9wYXJ0MSB8IHthfSAgICAgIHwgICAgICAgICAgIHwg ZgogKDEgcm93KQogCiAtLSBUYWJsZSBwdWJsaWNhdGlvbiB0aGF0IGluY2x1ZGVzIGJvdGggdGhl IHBhcmVudCB0YWJsZSBhbmQgdGhlIGNoaWxkIHRhYmxlCiBBTFRFUiBQVUJMSUNBVElPTiBwdWIg QUREIFRBQkxFIHNjaDEudGJsMTsKIFNFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVz OwotIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1lICB8IGF0dG5hbWVzIHwgcm93Zmls dGVyIAotLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLQotIHB1YiAgICAgfCBzY2gyICAgICAgIHwgdGJsMV9wYXJ0MSB8IHthfSAgICAgIHwg CisgcHVibmFtZSB8IHNjaGVtYW5hbWUgfCB0YWJsZW5hbWUgIHwgYXR0bmFtZXMgfCByb3dmaWx0 ZXIgfCBleGNlcHRjb2wgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgcHViICAgICB8IHNjaDIgICAgICAgfCB0 YmwxX3BhcnQxIHwge2F9ICAgICAgfCAgICAgICAgICAgfCBmCiAoMSByb3cpCiAKIERST1AgUFVC TElDQVRJT04gcHViOwpAQCAtMTk2Miw5ICsxOTYyLDkgQEAgQ1JFQVRFIFRBQkxFIHNjaDEudGJs MV9wYXJ0MyAoYSBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKIEFMVEVSIFRBQkxFIHNjaDEu dGJsMSBBVFRBQ0ggUEFSVElUSU9OIHNjaDEudGJsMV9wYXJ0MyBGT1IgVkFMVUVTIEZST00gKDIw KSB0byAoMzApOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YiBGT1IgVEFCTEVTIElOIFNDSEVNQSBz Y2gxIFdJVEggKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UPTEpOwogU0VMRUNUICogRlJPTSBw Z19wdWJsaWNhdGlvbl90YWJsZXM7Ci0gcHVibmFtZSB8IHNjaGVtYW5hbWUgfCB0YWJsZW5hbWUg fCBhdHRuYW1lcyB8IHJvd2ZpbHRlciAKLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQotIHB1YiAgICAgfCBzY2gxICAgICAgIHwgdGJsMSAg ICAgIHwge2F9ICAgICAgfCAKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFtZSB8IGF0 dG5hbWVzIHwgcm93ZmlsdGVyIHwgZXhjZXB0Y29sIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgcHViICAgICB8 IHNjaDEgICAgICAgfCB0YmwxICAgICAgfCB7YX0gICAgICB8ICAgICAgICAgICB8IGYKICgxIHJv dykKIAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKQEAgLTIyMTEsNiArMjIxMSw5NCBAQCBT RVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfcmVzZXQ7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CiBEUk9QIFRBQkxFIHB1Yl9zY2gx LnRibDI7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tIFRlc3QgRVhDRVBUIGNvbHVtbnMgZm9yIENSRUFURSBQVUJMSUNBVElPTgor U0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0 X2V4Y2VwdDEgKGEgaW50IE5PVCBOVUxMLCBiIGludCwgYyBpbnQgTk9UIE5VTEwsIGQgaW50KTsK K0NSRUFURSBUQUJMRSBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIChhIGludCwgYiBpbnQsIGMg aW50LCBkIGludCk7CistLSBWZXJpZnkgdGhhdCBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHdpdGgg RVhDRVBUCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgRk9SIFRBQkxFIHB1Yl90 ZXN0X2V4Y2VwdDEsIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDIgRVhDRVBUIChiLCBjKTsKK1NF TEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVzIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1 Yl9leGNlcHQnOworICAgIHB1Ym5hbWUgICAgIHwgc2NoZW1hbmFtZSB8ICAgIHRhYmxlbmFtZSAg ICAgfCBhdHRuYW1lcyAgfCByb3dmaWx0ZXIgfCBleGNlcHRjb2wgCistLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyB0ZXN0cHViX2V4Y2VwdCB8IHB1YmxpYyAgICAgfCBwdWJfdGVzdF9leGNl cHQxIHwge2EsYixjLGR9IHwgICAgICAgICAgIHwgZgorIHRlc3RwdWJfZXhjZXB0IHwgcHViX3Nj aDEgICB8IHB1Yl90ZXN0X2V4Y2VwdDIgfCB7YSxkfSAgICAgfCAgICAgICAgICAgfCB0CisoMiBy b3dzKQorCistLSBDYW5ub3QgdXNlIEVYQ0VQVCBjb2wtbGlzdHMgY29tYmluZWQgd2l0aCBUQUJM RVMgSU4gU0NIRU1BCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJM RVMgSU4gU0NIRU1BIHB1Yl9zY2gxLCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYiwg Yyk7CitFUlJPUjogIGNhbm5vdCB1c2UgY29sdW1uIGxpc3QgZm9yIHJlbGF0aW9uICJwdWJsaWMu cHViX3Rlc3RfZXhjZXB0MSIgaW4gcHVibGljYXRpb24gInRlc3RwdWJfZXhjZXB0MiIKK0RFVEFJ TDogIENvbHVtbiBsaXN0cyBjYW5ub3QgYmUgc3BlY2lmaWVkIGluIHB1YmxpY2F0aW9ucyBjb250 YWluaW5nIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGVsZW1lbnRzLgorLS0gU3ludGF4IGVycm9yIEVY Q0VQVCB3aXRob3V0IGEgY29sLWxpc3QKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2Vw dDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUOworRVJST1I6ICB0YWJsZSB3aXRo b3V0IGNvbHVtbiBsaXN0IGNhbm5vdCB1c2UgRVhDRVBUIGNsYXVzZQorTElORSAxOiBDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQuLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gVmVy aWZ5IG9rIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIFNFVCAuLi4gRVhDRVBUIChjb2wtbGlzdCkK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IFNFVCBUQUJMRSBwdWJfdGVzdF9leGNl cHQxIEVYQ0VQVCAoYSwgYiksIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDI7CitcZFJwKyB0ZXN0 cHViX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAg ICAgICAgICAgICAgfCBmCitUYWJsZXM6CisgICAgInB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDIi CisgICAgInB1YmxpYy5wdWJfdGVzdF9leGNlcHQxIiBFWENFUFQgKGEsIGIpCisKKy0tIFZlcmlm eSBmYWlscyAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QIC4uLiBFWENFUFQgKGNvbC1saXN0 KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgRFJPUCBUQUJMRSBwdWJfdGVzdF9l eGNlcHQxIEVYQ0VQVCAoYSwgYik7CitFUlJPUjogIGNvbHVtbiBsaXN0IG11c3Qgbm90IGJlIHNw ZWNpZmllZCBpbiBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJPUAorLS0gVmVyaWZ5IG9rIC0gQUxU RVIgUFVCTElDQVRJT04gLi4uIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0 IERST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MTsKKy0tIFZlcmlmeSBvayAtIEFMVEVSIFBVQkxJ Q0FUSU9OIC4uLiBBREQgLi4uIEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2V4Y2VwdCBBREQgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGMsIGQpOwor XGRScCsgdGVzdHB1Yl9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZXhjZXB0CisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290 IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorVGFibGVzOgorICAgICJwdWJfc2NoMS5wdWJfdGVz dF9leGNlcHQyIgorICAgICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIgRVhDRVBUIChjLCBkKQor CistLSBWZXJpZnkgZmFpbHMgLSBFWENFUFQgY29sLWxpc3QgY2Fubm90IGNvbnRhaW4gUkkgY29s cyAod2hlbiB1c2luZyBSSSBGVUxMKQorQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBM SUNBIElERU5USVRZIEZVTEw7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hF UkUgYSA9IDE7CitFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInB1Yl90ZXN0X2V4Y2VwdDEi CitERVRBSUw6ICBDb2x1bW4gbGlzdCB1c2VkIGJ5IHRoZSBwdWJsaWNhdGlvbiBkb2VzIG5vdCBj b3ZlciB0aGUgcmVwbGljYSBpZGVudGl0eS4KKy0tIFZlcmlmeSBmYWlscyAtIEVYQ0VQVCBjb2wt bGlzdCBjYW5ub3QgY29udGFpbiBSSSBjb2xzICh3aGVuIHVzaW5nIElOREVYKQorQ1JFQVRFIFVO SVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeCBPTiBwdWJfdGVzdF9leGNlcHQxIChh LCBjKTsKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBVU0lO RyBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQx IFNFVCBhID0gMyBXSEVSRSBhID0gMTsKK0VSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAicHVi X3Rlc3RfZXhjZXB0MSIKK0RFVEFJTDogIENvbHVtbiBsaXN0IHVzZWQgYnkgdGhlIHB1YmxpY2F0 aW9uIGRvZXMgbm90IGNvdmVyIHRoZSByZXBsaWNhIGlkZW50aXR5LgorRFJPUCBJTkRFWCBwdWJf dGVzdF9leGNlcHQxX2FjX2lkeDsKKy0tIFZlcmlmeSBvayAtIG5vIGNsYXNoIGJldHdlZW4gUkkg Y29scyBhbmQgdGhlIEVYQ0VQVCBjb2wtbGlzdAorQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVz dF9leGNlcHQxX2FfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEgKGEpOworQUxURVIgVEFCTEUgcHVi X3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2Vw dDFfYV9pZHg7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7 CistLSBWZXJpZnkgZGVzY3JpcHRpb24gb2YgYSB0YWJsZSB3aXRoIHB1YmxpY2F0aW9uIHdpdGgg RVhDRVBUIGNvbC1saXN0CitcZCsgcHViX3Rlc3RfZXhjZXB0MQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUYWJsZSAicHVibGljLnB1Yl90ZXN0X2V4Y2VwdDEiCisgQ29sdW1uIHwgIFR5 cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgfCBTdGF0cyB0 YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgfCBwbGFp biAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKKyBjICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAg ICAgICAgICB8IAorIGQgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJwdWJfdGVz dF9leGNlcHQxX2FfaWR4IiBVTklRVUUsIGJ0cmVlIChhKSBSRVBMSUNBIElERU5USVRZCitQdWJs aWNhdGlvbnM6CisgICAgInRlc3RwdWJfZXhjZXB0IiBFWENFUFQgKGMsIGQpCitOb3QtbnVsbCBj b25zdHJhaW50czoKKyAgICAicHViX3Rlc3RfZXhjZXB0MV9hX25vdF9udWxsIiBOT1QgTlVMTCAi YSIKKyAgICAicHViX3Rlc3RfZXhjZXB0MV9jX25vdF9udWxsIiBOT1QgTlVMTCAiYyIKKworLS0g Y2xlYW51cAorRFJPUCBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4OworRFJPUCBQVUJMSUNB VElPTiB0ZXN0cHViX2V4Y2VwdDsKK0RST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MTsKK0RST1Ag VEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MjsKIERST1AgU0NIRU1BIHB1Yl9zY2gxOwog UkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIC0tIFRlc3QgdGhhdCB0aGUgSU5TRVJUIE9OIENP TkZMSUNUIGNvbW1hbmQgY29ycmVjdGx5IGNoZWNrcyBSRVBMSUNBIElERU5USVRZCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDJiZjk2OGFlM2QzLi43YTAzMGYzMDE1NSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE0NzYsOSArMTQ3NiwxMCBAQCBwZ19w dWJsaWNhdGlvbl90YWJsZXN8IFNFTEVDVCBwLnB1Ym5hbWUsCiAgICAgKCBTRUxFQ1QgYXJyYXlf YWdnKGEuYXR0bmFtZSBPUkRFUiBCWSBhLmF0dG51bSkgQVMgYXJyYXlfYWdnCiAgICAgICAgICAg IEZST00gcGdfYXR0cmlidXRlIGEKICAgICAgICAgICBXSEVSRSAoKGEuYXR0cmVsaWQgPSBncHQu cmVsaWQpIEFORCAoYS5hdHRudW0gPSBBTlkgKChncHQuYXR0cnMpOjpzbWFsbGludFtdKSkpKSBB UyBhdHRuYW1lcywKLSAgICBwZ19nZXRfZXhwcihncHQucXVhbCwgZ3B0LnJlbGlkKSBBUyByb3dm aWx0ZXIKKyAgICBwZ19nZXRfZXhwcihncHQucXVhbCwgZ3B0LnJlbGlkKSBBUyByb3dmaWx0ZXIs CisgICAgZ3B0LmV4Y2VwdGNvbAogICAgRlJPTSBwZ19wdWJsaWNhdGlvbiBwLAotICAgIExBVEVS QUwgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhWQVJJQURJQyBBUlJBWVsocC5wdWJuYW1lKTo6 dGV4dF0pIGdwdChwdWJpZCwgcmVsaWQsIGF0dHJzLCBxdWFsKSwKKyAgICBMQVRFUkFMIHBnX2dl dF9wdWJsaWNhdGlvbl90YWJsZXMoVkFSSUFESUMgQVJSQVlbKHAucHVibmFtZSk6OnRleHRdKSBn cHQocHViaWQsIHJlbGlkLCBhdHRycywgcXVhbCwgZXhjZXB0Y29sKSwKICAgICAocGdfY2xhc3Mg YwogICAgICBKT0lOIHBnX25hbWVzcGFjZSBuIE9OICgobi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkp KQogICBXSEVSRSAoYy5vaWQgPSBncHQucmVsaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRp b24uc3FsCmluZGV4IGY1YzYyMzM4ZTc4Li45MjY2MDcxZDYxOCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3B1YmxpY2F0aW9uLnNxbApAQCAtMTM2NCw2ICsxMzY0LDYxIEBAIFNFVCBST0xFIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlcjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1Ag VEFCTEUgcHViX3NjaDEudGJsMTsKIERST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKKworLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBU ZXN0IEVYQ0VQVCBjb2x1bW5zIGZvciBDUkVBVEUgUFVCTElDQVRJT04KKworU0VUIGNsaWVudF9t aW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgKGEg aW50IE5PVCBOVUxMLCBiIGludCwgYyBpbnQgTk9UIE5VTEwsIGQgaW50KTsKK0NSRUFURSBUQUJM RSBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIChhIGludCwgYiBpbnQsIGMgaW50LCBkIGludCk7 CisKKy0tIFZlcmlmeSB0aGF0IHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgd2l0aCBFWENFUFQKK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBGT1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0 MSwgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MiBFWENFUFQgKGIsIGMpOworU0VMRUNUICogRlJP TSBwZ19wdWJsaWNhdGlvbl90YWJsZXMgV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2V4Y2VwdCc7 CisKKy0tIENhbm5vdCB1c2UgRVhDRVBUIGNvbC1saXN0cyBjb21iaW5lZCB3aXRoIFRBQkxFUyBJ TiBTQ0hFTUEKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3NjaDEsIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChiLCBjKTsK KworLS0gU3ludGF4IGVycm9yIEVYQ0VQVCB3aXRob3V0IGEgY29sLWxpc3QKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBU OworCistLSBWZXJpZnkgb2sgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIC4uLiBFWENFUFQg KGNvbC1saXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgU0VUIFRBQkxFIHB1 Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBiKSwgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MjsK K1xkUnArIHRlc3RwdWJfZXhjZXB0CisKKy0tIFZlcmlmeSBmYWlscyAtIEFMVEVSIFBVQkxJQ0FU SU9OIC4uLiBEUk9QIC4uLiBFWENFUFQgKGNvbC1saXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9leGNlcHQgRFJPUCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYSwgYik7CisK Ky0tIFZlcmlmeSBvayAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDE7CisKKy0tIFZl cmlmeSBvayAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBBREQgLi4uIEVYQ0VQVCAoY29sLWxpc3Qp CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBBREQgVEFCTEUgcHViX3Rlc3RfZXhj ZXB0MSBFWENFUFQgKGMsIGQpOworXGRScCsgdGVzdHB1Yl9leGNlcHQKKworLS0gVmVyaWZ5IGZh aWxzIC0gRVhDRVBUIGNvbC1saXN0IGNhbm5vdCBjb250YWluIFJJIGNvbHMgKHdoZW4gdXNpbmcg UkkgRlVMTCkKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBG VUxMOworVVBEQVRFIHB1Yl90ZXN0X2V4Y2VwdDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworCist LSBWZXJpZnkgZmFpbHMgLSBFWENFUFQgY29sLWxpc3QgY2Fubm90IGNvbnRhaW4gUkkgY29scyAo d2hlbiB1c2luZyBJTkRFWCkKK0NSRUFURSBVTklRVUUgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9h Y19pZHggT04gcHViX3Rlc3RfZXhjZXB0MSAoYSwgYyk7CitBTFRFUiBUQUJMRSBwdWJfdGVzdF9l eGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hY19p ZHg7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CitEUk9Q IElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4OworCistLSBWZXJpZnkgb2sgLSBubyBjbGFz aCBiZXR3ZWVuIFJJIGNvbHMgYW5kIHRoZSBFWENFUFQgY29sLWxpc3QKK0NSRUFURSBVTklRVUUg SU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeCBPTiBwdWJfdGVzdF9leGNlcHQxIChhKTsKK0FM VEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBw dWJfdGVzdF9leGNlcHQxX2FfaWR4OworVVBEQVRFIHB1Yl90ZXN0X2V4Y2VwdDEgU0VUIGEgPSAz IFdIRVJFIGEgPSAxOworCistLSBWZXJpZnkgZGVzY3JpcHRpb24gb2YgYSB0YWJsZSB3aXRoIHB1 YmxpY2F0aW9uIHdpdGggRVhDRVBUIGNvbC1saXN0CitcZCsgcHViX3Rlc3RfZXhjZXB0MQorCist LSBjbGVhbnVwCitEUk9QIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZXhjZXB0OworRFJPUCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxOworRFJP UCBUQUJMRSBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7 CiAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQK aW5kZXggYjhlNWM1NGMzMTQuLmU4ZTY5Zjc0NDNkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1 aWxkCkBAIC00Nyw2ICs0Nyw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAzNV9jb25mbGljdHMu cGwnLAogICAgICAgJ3QvMDM2X3NlcXVlbmNlcy5wbCcsCiAgICAgICAndC8wMzdfcmVwX2NoYW5n ZXNfZXhjZXB0X3RhYmxlLnBsJywKKyAgICAgICd0LzAzOF9yZXBfY2hhbmdlc19leGNlcHRfY29s bGlzdC5wbCcsCiAgICAgICAndC8xMDBfYnVncy5wbCcsCiAgICAgXSwKICAgfSwKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzOF9yZXBfY2hhbmdlc19leGNlcHRfY29sbGlz dC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzOF9yZXBfY2hhbmdlc19leGNlcHRfY29s bGlzdC5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2RmZDI2NmJj M2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzhfcmVwX2No YW5nZXNfZXhjZXB0X2NvbGxpc3QucGwKQEAgLTAsMCArMSwxOTMgQEAKKyMgQ29weXJpZ2h0IChj KSAyMDIxLTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyMgTG9n aWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBmb3IgRVhDRVBUIChjb2x1bW4tbGlzdCkgcHVibGljYXRp b25zCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNs dXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKwor IyBJbml0aWFsaXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3Jl U1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5p bml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3Rh cnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBv c3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2Ny aWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3Jp YmVyLT5zdGFydDsKKworIyBJbml0aWFsIHNldHVwCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgKKwkncG9zdGdyZXMnLCBxcSAoCisJQ1JFQVRFIFNDSEVNQSBzY2gxOworCUNSRUFURSBUQUJM RSB0YWIxIChhIGludCwgYiBpbnQgTk9UIE5VTEwsIGMgaW50KTsKKwlDUkVBVEUgVEFCTEUgc2No MS50YWIxIChhIGludCwgYiBpbnQsIGMgaW50KTsKKwlDUkVBVEUgVEFCTEUgdGFiMiAoYSBpbnQs IGIgaW50LCBjIGludCk7CisJQ1JFQVRFIFRBQkxFIHRhYjMgKGEgaW50LCBiZ2VuIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBjZ2VuIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMykgU1RPUkVEKTsKKwlDUkVBVEUgVEFCTEUgdGFiNCAoYSBpbnQsIGJnZW4gaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGNnZW4gaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAzKSBTVE9SRUQpOworCUNSRUFURSBUQUJMRSB0YWI1IChhIGludCwgYiBp bnQsIGMgaW50KTsKKwlJTlNFUlQgSU5UTyB0YWIxIFZBTFVFUyAoMSwgMiwgMyk7CisJSU5TRVJU IElOVE8gc2NoMS50YWIxIFZBTFVFUyAoMSwgMiwgMyk7CisJQ1JFQVRFIFBVQkxJQ0FUSU9OIHRh cF9wdWJfY29sIEZPUiBUQUJMRSB0YWIxIEVYQ0VQVCAoYSksIHNjaDEudGFiMSBFWENFUFQgKGIs IGMpOworKSk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBx cSAoCisJQ1JFQVRFIFNDSEVNQSBzY2gxOworCUNSRUFURSBUQUJMRSB0YWIxIChhIGludCwgYiBp bnQgTk9UIE5VTEwsIGMgaW50KTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50YWIxIChhIGludCwgYiBp bnQsIGMgaW50KTsKKwlDUkVBVEUgVEFCTEUgdGFiMiAoYSBpbnQsIGIgaW50LCBjIGludCk7CisJ Q1JFQVRFIFRBQkxFIHRhYjMgKGEgaW50LCBiZ2VuIGludCwgY2dlbiBpbnQpOworCUNSRUFURSBU QUJMRSB0YWI0IChhIGludCwgYmdlbiBpbnQsIGNnZW4gaW50KTsKKwlDUkVBVEUgVEFCTEUgdGFi NSAoYSBpbnQsIGIgaW50LCBjIGludCwgZCBpbnQpOworKSk7CisKKyMgU2V0dXAgbG9naWNhbCBy ZXBsaWNhdGlvbgorbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25u c3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wgQ09OTkVDVElPTiAn JHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCIKKyk7Ciskbm9kZV9z dWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0 YXBfc3ViX2NvbCcpOworCisjIFRlc3QgaW5pdGlhbCBzeW5jCitteSAkcmVzdWx0ID0gJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjEiKTsK K2lzKCRyZXN1bHQsIHFxKHwyfDMpLAorCSdWZXJpZnkgaW5pdGlhbCBzeW5jIG9mIHRhYjEgaW4g YSBwdWJsaWNhdGlvbiB1c2luZyBFWENFUFQgKGNvbHVtbi1saXN0KScKKyk7CiskcmVzdWx0ID0g JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNj aDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMXx8KSwKKwknVmVyaWZ5IGluaXRpYWwgc3luYyBv ZiBzY2gxLnRhYjEgaW4gYSBwdWJsaWNhdGlvbiB1c2luZyBFWENFUFQgKGNvbHVtbi1saXN0KScK Kyk7CisKKyMgVGVzdCBpbmNyZW1lbnRhbCBjaGFuZ2VzCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgKKwkncG9zdGdyZXMnLCBxcSAoCisJSU5TRVJUIElOVE8gdGFiMSBWQUxVRVMgKDQsIDUs IDYpOworCUlOU0VSVCBJTlRPIHNjaDEudGFiMSBWQUxVRVMgKDQsIDUsIDYpOworKSk7Ciskbm9k ZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CiskcmVzdWx0ID0K KyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9N IHRhYjEgT1JERVIgQlkgYSIpOworaXMoICRyZXN1bHQsIHFxKHwyfDMKK3w1fDYpLAorCSdWZXJp ZnkgaW5jcmVtZW50YWwgaW5zZXJ0cyBvbiB0YWIxIGluIGEgcHVibGljYXRpb24gdXNpbmcgRVhD RVBUIChjb2x1bW4tbGlzdCknCispOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9NIHNjaDEudGFiMSBPUkRFUiBCWSBhIik7 CitpcyggJHJlc3VsdCwgcXEoMXx8Cis0fHwpLAorCSdWZXJpZnkgaW5jcmVtZW50YWwgaW5zZXJ0 cyBvbiBzY2gxLnRhYjEgaW4gYSBwdWJsaWNhdGlvbiB1c2luZyBFWENFUFQgKGNvbHVtbi1saXN0 KScKKyk7CisKKyMgVGVzdCBmb3IgdXBkYXRlCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo CisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFVOSVFVRSBJTkRFWCBiX2lkeCBPTiB0YWIxIChi KTsKKwlBTFRFUiBUQUJMRSB0YWIxIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggYl9pZHg7 CispKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNS RUFURSBVTklRVUUgSU5ERVggYl9pZHggT04gdGFiMSAoYik7CisJQUxURVIgVEFCTEUgdGFiMSBS RVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIGJfaWR4OworCVVQREFURSB0YWIxIFNFVCBhID0g OTkxLCBiID0gOTkyLCBjID0gOTkzIFdIRVJFIGEgPSAxOworKSk7Ciskbm9kZV9wdWJsaXNoZXIt PndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjEgIE9SREVS IEJZIGEiKTsKK2lzKCAkcmVzdWx0LCBxcSh8NXw2Cit8OTkyfDk5MyksCisJJ2NoZWNrIHVwZGF0 ZSBmb3IgRVhDRVBUIChjb2x1bW4tbGlzdCkgcHVibGljYXRpb24nKTsKKworIyBUZXN0IEFMVEVS IFBVQkxJQ0FUSU9OIGZvciBFWENFUFQgKGNvbHVtbi1saXN0KQorJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgQURE IFRBQkxFIHRhYjIgRVhDRVBUKGIpIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfY29sIFJFRlJFU0ggUFVCTElD QVRJT04iKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRu b2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWJfY29sJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyB0YWIyIFZBTFVFUyAoMSwgMiwgMykiKTsKKyRu b2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKyRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00g dGFiMiIpOworaXMoJHJlc3VsdCwgcXEoMXx8MyksICdjaGVjayBhbHRlciBwdWJsaWNhdGlvbiB3 aXRoIEVYQ0VQVCAoY29sdW1uLWxpc3QpJyk7CisKKyMgVGVzdCBmb3IgcHVibGljYXRpb24gY3Jl YXRlZCB3aXRoICdwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBhcyAnc3RvcmVkJyBvbgorIyB0 YWJsZSAndGFiMycgYW5kIHdpdGggY29sdW1uICdiZ2VuJyBpbiBjb2x1bW4gbGlzdCB3aXRoIEVY Q0VQVCBjbGF1c2UuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBx cShJTlNFUlQgSU5UTyB0YWIzIFZBTFVFUyAoMSk7CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1 Yl9jb2wgU0VUIChwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gc3RvcmVkKTsKKwlBTFRFUiBQ VUJMSUNBVElPTiB0YXBfcHViX2NvbCBTRVQgVEFCTEUgdGFiMyBFWENFUFQoYmdlbik7CispKTsK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJ UFRJT04gdGFwX3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNBVElPTiIpOworJG5vZGVfc3Vic2NyaWJl ci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9j b2wnKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJ TlRPIHRhYjMgVkFMVUVTICgyKSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVw KCd0YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIzIE9SREVSIEJZIGEiKTsKKworIyBjb2x1 bW4gJ2JnZW4nIGlzIHNwZWNpZmllZCBpbiBFWENFUFQgKGNvbHVtbS1saXN0KS4gU28gZGF0YSBj b3JyZXNwb25kaW5nIHRvCisjICdiZ2VuJyBpcyBub3QgcmVwbGljYXRlZC4gUGFyYW1ldGVyICdw dWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBpcyBzZXQgYXMKKyMgJ3N0b3JlZCcsIHNvIGRhdGEg Y29ycmVzcG9uZGluZyB0byBjb2x1bW4gJ2NnZW4nIGlzIHJlcGxpY2F0ZWQuCitpcyggJHJlc3Vs dCwgcXEoMXx8MworMnx8NiksCisJJ2NoZWNrIHB1YmxpY2F0aW9uKHB1Ymxpc2hfZ2VuZXJhdGVk X2NvbHVtbnMgYXMgc3RvcmVkKSB3aXRoIGdlbmVyYXRlZCBjb2x1bW5zIGFuZCBFWENFUFQgKGNv bHVtbi1saXN0KScKKyk7CisKKyMgVGVzdCBmb3IgcHVibGljYXRpb24gY3JlYXRlZCB3aXRoICdw dWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBhcyAnbm9uZScgb24KKyMgdGFibGUgd2l0aCBnZW5l cmF0ZWQgY29sdW1ucyBhbmQgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggRVhDRVBUIGNsYXVz ZS4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUlOU0VS VCBJTlRPIHRhYjQgVkFMVUVTICgxKTsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBT RVQgKHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBub25lKTsKKwlBTFRFUiBQVUJMSUNBVElP TiB0YXBfcHViX2NvbCBTRVQgVEFCTEUgdGFiNCBFWENFUFQoYmdlbik7CispKTsKKyRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFw X3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNBVElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9m b3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsKKwor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjQg VkFMVUVTICgyKSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3Vi X2NvbCcpOworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VMRUNUICogRlJPTSB0YWI0IE9SREVSIEJZIGEiKTsKKworIyBjb2x1bW4gJ2JnZW4n IGlzIHNwZWNpZmllZCBpbiBFWENFUFQgKGNvbHVtbS1saXN0KS4gU28gZGF0YSBjb3JyZXNwb25k aW5nIHRvCisjICdiZ2VuJyBpcyBub3QgcmVwbGljYXRlZC4gUGFyYW1ldGVyICdwdWJsaXNoX2dl bmVyYXRlZF9jb2x1bW5zJyBpcyBzZXQgYXMKKyMgJ25vbmUnLCBzbyBkYXRhIGNvcnJlc3BvbmRp bmcgdG8gY29sdW1uICdjZ2VuJyBpcyBub3QgcmVwbGljYXRlZC4KK2lzKCAkcmVzdWx0LCBxcSgx fHwKKzJ8fCksCisJJ2NoZWNrIHB1YmxpY2F0aW9uKHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMg YXMgbm9uZSkgd2l0aCBnZW5lcmF0ZWQgY29sdW1ucyBhbmQgRVhDRVBUIChjb2x1bW4tbGlzdCkn CispOworCisjIEFsbCBjb2x1bW5zIGFyZSBwcmVzZW50IGluIEVYQ0VQVCAoY29sdW1uLWxpc3Qp Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlBTFRFUiBQ VUJMSUNBVElPTiB0YXBfcHViX2NvbCBTRVQgVEFCTEUgdGFiNSBFWENFUFQoYSwgYiwgYyk7CisJ SU5TRVJUIElOVE8gdGFiNSBWQUxVRVMgKDEsIDIsIDMpOworKSk7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfY29s IFJFRlJFU0ggUFVCTElDQVRJT04iKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNj cmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWJfY29sJyk7CisKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyB0YWI1IFZBTFVFUyAo NCwgNSwgNikiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9j b2wnKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IlNFTEVDVCAqIEZST00gdGFiNSIpOworaXMoJHJlc3VsdCwgcXEoKSwgJ2FsbCBjb2x1bW5zIGFy ZSBzcGVjaWZpZWQgaW4gRVhDRVBUIChjb2x1bW4tbGlzdCknKTsKKworIyBBZGQgYSBuZXcgY29s dW1uIGFuZCBjaGVjayB0aGF0IGl0IGlzIHJlcGxpY2F0ZWQKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUFMVEVSIFRBQkxFIHRhYjUgQUREIENPTFVNTiBk IGludDsKKykpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5T RVJUIElOVE8gdGFiNSBWQUxVRVMgKDcsIDgsIDksIDEwKSIpOworJG5vZGVfcHVibGlzaGVyLT53 YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjUiKTsKK2lzKCRy ZXN1bHQsIHFxKHx8fDEwKSwgJ25ld2x5IGFkZGVkIGNvbHVtbiBpcyByZXBsaWNhdGVkJyk7CisK KyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3QnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RvcCgn ZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzQuMQoK --0000000000003b97d90642eb344b Content-Type: application/octet-stream; name="v25-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v25-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhnbzpcd1 RnJvbSBmNDk1YWY3NmVmOGVhN2IzZmM0YTc3OTQyM2I5NGRhMTA5MDcwN2NiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgNiBOb3YgMjAyNSAxNDoxOToyMiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI1 IDIvM10gU2tpcCBwdWJsaXNoaW5nIHRoZSB0YWJsZXMgc3BlY2lmaWVkIGluIEVYQ0VQVCBUQUJM RS4KCkEgbmV3ICJFWENFUFQgVEFCTEUiIGNsYXVzZSBmb3IgQ1JFQVRFL0FMVEVSIFBVQkxJQ0FU SU9OIGFsbG93cyBvbmUgb3IKbW9yZSB0YWJsZXMgdG8gYmUgZXhjbHVkZWQuIFRoZSBwdWJsaXNo ZXIgd2lsbCBub3Qgc2VuZCB0aGUgZGF0YSBvZgpleGNsdWRlZCB0YWJsZXMgdG8gdGhlIHN1YnNj cmliZXIuCgpUaGUgbmV3IHN5bnRheCBhbGxvd3Mgc3BlY2lmeWluZyBleGNsdWRlZCByZWxhdGlv bnMgd2hlbiBjcmVhdGluZyBvciBhbHRlcmluZwphIHB1YmxpY2F0aW9uLiBGb3IgZXhhbXBsZToK Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFICh0MSx0 Mik7Cm9yCkFMVEVSIFBVQkxJQ0FUSU9OIHB1YjEgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxF ICh0MSx0Mik7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdf cHVibGljYXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2Vy IHdhbnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRh dGVkIHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1Ymxp Y2F0aW9ucy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkg ZXhjbHVkZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5 IGFzc29jaWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9u LgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAg OSArCiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDgg Ky0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAyMiAr LQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDQ5ICsr Ky0KIGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAgNSAr LQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgIDk5ICsr KystLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jICAgICAgICB8IDI0 NiArKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAg ICAgICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAg ICAgICAgICAgIHwgIDQxICsrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdv dXRwdXQuYyAgIHwgIDI1ICstCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAg ICAgICAgICAgfCAgMTcgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAg ICAgICAgICB8ICA1NiArKystCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAg ICAgICAgIHwgIDE4ICsrCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAg ICAgICAgfCAgMjIgKy0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAg ICAgICB8ICA1OCArKysrLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAg ICAgICAgIHwgIDE1ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAg ICAgICAgfCAgMTAgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCAgICAg ICAgfCAgIDUgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAg ICB8ICAgNCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAg fCAxODUgKysrKysrKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3Fs ICAgICAgICAgIHwgIDQ1ICsrKy0KIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZCAg ICAgICAgICAgICB8ICAgMSArCiAuLi4vdC8wMzdfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBs ICAgICAgICAgfCAxODYgKysrKysrKysrKysrKwogMjUgZmlsZXMgY2hhbmdlZCwgOTQ3IGluc2Vy dGlvbnMoKyksIDE4NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzdfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAppbmRleCA2YzhhMGYxNzNjOS4uMTQ0ZjNmYmRlZjIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NTgx LDYgKzY1ODEsMTUgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBj b3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIGlmIHRoZXJlIGlz IG5vIHB1YmxpY2F0aW9uIHF1YWxpZnlpbmcgY29uZGl0aW9uLjwvcGFyYT48L2VudHJ5PgogICAg ICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgIDxzdHJ1Y3RmaWVs ZD5wcmV4Y2VwdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIHRoZSByZWxhdGlvbiBtdXN0IGJlIGV4Y2x1 ZGVkCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnByYXR0cnM8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQydmVjdG9yPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwt cmVwbGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwK aW5kZXggZGFhYjJjYWU5ODkuLjczNTliZDc3NTY5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv bG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxp Y2F0aW9uLnNnbWwKQEAgLTIzMDEsMTAgKzIzMDEsMTAgQEAgQ09OVEVYVDogIHByb2Nlc3Npbmcg cmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5T RVIKICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgVG8gYWRkIHRhYmxlcyB0byBhIHB1YmxpY2F0 aW9uLCB0aGUgdXNlciBtdXN0IGhhdmUgb3duZXJzaGlwIHJpZ2h0cyBvbiB0aGUKLSAgIHRhYmxl LiBUbyBhZGQgYWxsIHRhYmxlcyBpbiBzY2hlbWEgdG8gYSBwdWJsaWNhdGlvbiwgdGhlIHVzZXIg bXVzdCBiZSBhCi0gICBzdXBlcnVzZXIuIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVi bGlzaGVzIGFsbCB0YWJsZXMgb3IgYWxsIHRhYmxlcyBpbgotICAgc2NoZW1hIGF1dG9tYXRpY2Fs bHksIHRoZSB1c2VyIG11c3QgYmUgYSBzdXBlcnVzZXIuCisgICBUbyBjcmVhdGUgYSBwdWJsaWNh dGlvbiB1c2luZyBGT1IgQUxMIFRBQkxFUyBvciBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEsCisg ICB0aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2VyLiBUbyBhZGQgQUxMIFRBQkxFUyBvciBBTEwg VEFCTEVTIElOIFNDSEVNQSB0byBhCisgICBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVzdCBiZSBh IHN1cGVydXNlci4gVG8gYWRkIHRhYmxlcyB0byBhIHB1YmxpY2F0aW9uLAorICAgdGhlIHVzZXIg bXVzdCBoYXZlIG93bmVyc2hpcCByaWdodHMgb24gdGhlIHRhYmxlLgogICA8L3BhcmE+CiAKICAg PHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggODVjNzlj MWE5Y2IuLjRhZmU2MmI3Y2ZkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sCkBAIC0yMiw2ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5v cHNpc2Rpdj4KIDxzeW5vcHNpcz4KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCitBTFRF UiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IEFERCBBTEwgVEFCTEVTIFsgRVhDRVBUIFsgVEFCTEUgXSAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0g KSBdCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFNFVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGlj YXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uXQogQUxURVIgUFVCTElDQVRJT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxl PiBbLCAuLi5dCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKQpAQCAtMzMsNiAr MzQsMTEgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNFVAogCiAgICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbICgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4g WywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhw cmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxFUyBJTiBTQ0hFTUEg eyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxl PiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KKworPHBocmFzZT53aGVyZSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwv cGhyYXNlPgorCisgICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRh YmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXQorCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3Bz aXNkaXY+CiAKQEAgLTg4LDggKzk0LDkgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNFVAogCiAgIDxwYXJhPgog ICAgWW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIgUFVC TElDQVRJT048L2NvbW1hbmQ+LgotICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBh ZGRpdGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVyYWw+ QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LAorICAgQWRkaW5nIGEgdGFibGUgdG8gb3Ig ZXhjbHVkaW5nIGEgdGFibGUgZnJvbSBhIHB1YmxpY2F0aW9uIGFkZGl0aW9uYWxseQorICAgcmVx dWlyZXMgb3duaW5nIHRoYXQgdGFibGUuIFRoZSA8bGl0ZXJhbD5BREQgQUxMIFRBQkxFUzwvbGl0 ZXJhbD4sCisgICA8bGl0ZXJhbD5BREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LAog ICAgPGxpdGVyYWw+U0VUIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRp b24gYW5kCiAgICA8bGl0ZXJhbD5SRVNFVDwvbGl0ZXJhbD4gb2YgcHVibGljYXRpb24gcmVxdWly ZXMgdGhlIGludm9raW5nIHVzZXIgdG8gYmUgYQogICAgc3VwZXJ1c2VyLiBUbyBhbHRlciB0aGUg b3duZXIsIHlvdSBtdXN0IGJlIGFibGUgdG8KQEAgLTEzMCw3ICsxMzcsOCBAQCBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFJFU0VUCiAgICAgICB0YWJsZSBuYW1lLCBvbmx5IHRoYXQgdGFibGUgaXMgYWZmZWN0ZWQuICBJ ZiA8bGl0ZXJhbD5PTkxZPC9saXRlcmFsPiBpcyBub3QKICAgICAgIHNwZWNpZmllZCwgdGhlIHRh YmxlIGFuZCBhbGwgaXRzIGRlc2NlbmRhbnQgdGFibGVzIChpZiBhbnkpIGFyZQogICAgICAgYWZm ZWN0ZWQuICBPcHRpb25hbGx5LCA8bGl0ZXJhbD4qPC9saXRlcmFsPiBjYW4gYmUgc3BlY2lmaWVk IGFmdGVyIHRoZSB0YWJsZQotICAgICAgbmFtZSB0byBleHBsaWNpdGx5IGluZGljYXRlIHRoYXQg ZGVzY2VuZGFudCB0YWJsZXMgYXJlIGluY2x1ZGVkLgorICAgICAgbmFtZSB0byBleHBsaWNpdGx5 IGluZGljYXRlIHRoYXQgZGVzY2VuZGFudCB0YWJsZXMgYXJlIGFmZmVjdGVkLiBGb3IKKyAgICAg IHBhcnRpdGlvbmVkIHRhYmxlcywgPGxpdGVyYWw+T05MWTwvbGl0ZXJhbD4gZG9ub3QgaGF2ZSBh bnkgZWZmZWN0LgogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+CkBAIC0yMzksNiArMjQ3LDE0 IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNhbGVzX3B1YmxpY2F0aW9uIEFERCBUQUJMRVMgSU4gU0NI RU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3Byb2dyYW1saXN0aW5nPgogICA8L3BhcmE+CiAKKyAg PHBhcmE+CisgICBBbHRlciBwdWJsaWNhdGlvbiA8c3RydWN0bmFtZT5wcm9kdWN0aW9uX3B1Ymxp Y2F0aW9uPC9zdHJ1Y3RuYW1lPiB0byBwdWJsaXNoCisgICBhbGwgdGFibGVzIGV4Y2VwdCA8c3Ry dWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4gYW5kCisgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50 czwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBwcm9k dWN0aW9uX3B1YmxpY2F0aW9uIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCAodXNlcnMsIGRlcGFydG1l bnRzKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCiAgIDxwYXJhPgogICAgQWRkIHRhYmxl cyA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICA8c3RydWN0bmFtZT5kZXBhcnRt ZW50czwvc3RydWN0bmFtZT4gYW5kIHNjaGVtYQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1Ymxp Y2F0aW9uLnNnbWwKaW5kZXggNjZhNzBlNWM1YjUuLmQyOGE5YTEwYzg2IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTMyLDggKzMyLDEyIEBAIENSRUFURSBQ VUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+CiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFsbF9w dWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKLSAg ICBBTEwgVEFCTEVTCisgICAgQUxMIFRBQkxFUyBbIEVYQ0VQVCBbIFRBQkxFIF0gKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFss IC4uLiBdICkgXQogICAgIEFMTCBTRVFVRU5DRVMKKworPHBocmFzZT53aGVyZSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwv cGhyYXNlPgorCisgICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRh YmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lz ZGl2PgogCkBAIC0xNjAsNyArMTY0LDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8bGlzdGl0ZW0+CiAg ICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9uZSB0aGF0IHJlcGxp Y2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgotICAgICAgdGhlIGRhdGFiYXNlLCBpbmNs dWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgIHRoZSBkYXRhYmFzZSwg aW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuIElmCisgICAgICA8bGl0ZXJh bD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlbiBleGNsdWRlIHJlcGxp Y2F0aW5nCisgICAgICB0aGUgY2hhbmdlcyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZXMuCiAgICAg IDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC0xODAsNiAr MTg2LDM2IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5 PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLWZv ci1leGNlcHQtdGFibGUiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0ZXJh bD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgY2xhdXNl IHNwZWNpZmllcyBhIGxpc3Qgb2YgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkIGZyb20gdGhlCisgICAg ICBwdWJsaWNhdGlvbi4gSXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIDxsaXRlcmFsPkZPUiBBTEwg VEFCTEVTPC9saXRlcmFsPi4KKyAgICAgIElmIDxsaXRlcmFsPk9OTFk8L2xpdGVyYWw+IGlzIHNw ZWNpZmllZCBiZWZvcmUgdGhlIHRhYmxlIG5hbWUsIG9ubHkKKyAgICAgIHRoYXQgdGFibGUgaXMg ZXhjbHVkZWQgZnJvbSB0aGUgcHVibGljYXRpb24uIElmIDxsaXRlcmFsPk9OTFk8L2xpdGVyYWw+ IGlzCisgICAgICBub3Qgc3BlY2lmaWVkLCB0aGUgdGFibGUgYW5kIGFsbCBpdHMgZGVzY2VuZGFu dCB0YWJsZXMgKGlmIGFueSkgYXJlCisgICAgICBleGNsdWRlZC4gT3B0aW9uYWxseSwgPGxpdGVy YWw+KjwvbGl0ZXJhbD4gY2FuIGJlIHNwZWNpZmllZCBhZnRlciB0aGUKKyAgICAgIHRhYmxlIG5h bWUgdG8gZXhwbGljaXRseSBpbmRpY2F0ZSB0aGF0IGRlc2NlbmRhbnQgdGFibGVzIGFyZSBleGNs dWRlZC4KKyAgICAgIFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gYSBwYXJ0aXRpb25lZCB0YWJsZSwg aG93ZXZlci4gIFRoZSBwYXJ0aXRpb25lZAorICAgICAgdGFibGUgb3IgaXRzIHBhcnRpdGlvbnMg YXJlIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGJhc2VkIG9uIHRoZQorICAgICAgcGFy YW1ldGVyIDxsaXRlcmFsPnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PC9saXRlcmFsPi4KKyAg ICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAgIFdoZW4gPGxpdGVyYWw+cHVibGlzaF92aWFf cGFydGl0aW9uX3Jvb3Q8L2xpdGVyYWw+IGlzIHNldCB0bworICAgICAgPGxpdGVyYWw+dHJ1ZTwv bGl0ZXJhbD4sIHNwZWNpZnlpbmcgYSByb290IHBhcnRpdGlvbmVkIHRhYmxlIGluCisgICAgICA8 bGl0ZXJhbD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+IGV4Y2x1ZGVzIGl0IGFuZCBhbGwgaXRzIHBh cnRpdGlvbnMgZnJvbQorICAgICAgcmVwbGljYXRpb24uIFNwZWNpZnlpbmcgYSBsZWFmIHBhcnRp dGlvbiBoYXMgbm8gZWZmZWN0LCBhcyBpdHMgY2hhbmdlcyBhcmUKKyAgICAgIHN0aWxsIHJlcGxp Y2F0ZWQgdmlhIHRoZSByb290IHBhcnRpdGlvbmVkIHRhYmxlLiBXaGVuCisgICAgICA8bGl0ZXJh bD5wdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdDwvbGl0ZXJhbD4gaXMgc2V0IHRvCisgICAgICA8 bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4sIHNwZWNpZnlpbmcgYSBwYXJ0aXRpb25lZCB0YWJsZSBv ciBub24tbGVhZgorICAgICAgcGFydGl0aW9uIGhhcyBubyBlZmZlY3QsIGFzIGNoYW5nZXMgYXJl IHJlcGxpY2F0ZWQgdmlhIHRoZSBsZWFmCisgICAgICBwYXJ0aXRpb25zLiBTcGVjaWZ5aW5nIGEg bGVhZiBwYXJ0aXRpb24gZXhjbHVkZXMgb25seSB0aGF0IHBhcnRpdGlvbiBmcm9tCisgICAgICBy ZXBsaWNhdGlvbi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFt cy13aXRoIj4KICAgICA8dGVybT48bGl0ZXJhbD5XSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApPC9s aXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC00NjMsNiArNDk5LDE1IEBAIENSRUFU RSBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEZPUiBUQUJMRSB1c2VycywgZGVw YXJ0bWVudHMsIFRBQkxFUyBJCiBDUkVBVEUgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24g Rk9SIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+ PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNo ZXMgYWxsIGNoYW5nZXMgaW4gYWxsIHRoZSB0YWJsZXMgZXhjZXB0IGZvcgorICAgdGhlIGNoYW5n ZXMgb2YgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGFuZAorICAgPHN0cnVjdG5hbWU+ ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFBVQkxJ Q0FUSU9OIG15cHVibGljYXRpb24gRk9SIEFMTCBUQUJMRVMgRVhDRVBUICh1c2VycywgZGVwYXJ0 bWVudHMpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgQ3Jl YXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlIDxz dHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiwKICAgIGJ1dCByZXBsaWNhdGVzIG9ubHkgY29s dW1ucyA8c3RydWN0bmFtZT51c2VyX2lkPC9zdHJ1Y3RuYW1lPiBhbmQKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYu c2dtbAppbmRleCAxYWI0MjdkMThhZi4uOTk5OGFiMzI1NjUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNn bWwKQEAgLTIxMDMsOCArMjEwMyw5IEBAIFNFTEVDVCAkMSBccGFyc2Ugc3RtdDEKICAgICAgICAg bGlzdGVkLgogICAgICAgICBJZiA8bGl0ZXJhbD54PC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0 aGUgY29tbWFuZCBuYW1lLCB0aGUgcmVzdWx0cwogICAgICAgICBhcmUgZGlzcGxheWVkIGluIGV4 cGFuZGVkIG1vZGUuCi0gICAgICAgIElmIDxsaXRlcmFsPis8L2xpdGVyYWw+IGlzIGFwcGVuZGVk IHRvIHRoZSBjb21tYW5kIG5hbWUsIHRoZSB0YWJsZXMgYW5kCi0gICAgICAgIHNjaGVtYXMgYXNz b2NpYXRlZCB3aXRoIGVhY2ggcHVibGljYXRpb24gYXJlIHNob3duIGFzIHdlbGwuCisgICAgICAg IElmIDxsaXRlcmFsPis8L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUs IHRoZSB0YWJsZXMsCisgICAgICAgIGV4Y2x1ZGVkIHRhYmxlcyBhbmQgc2NoZW1hcyBhc3NvY2lh dGVkIHdpdGggZWFjaCBwdWJsaWNhdGlvbiBhcmUgc2hvd24gYXMKKyAgICAgICAgd2VsbC4KICAg ICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+ CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKaW5kZXggYWMyZjRlZTM1NjEuLmJlYzNh MzRlNDhmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMK KysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCkBAIC0zNTQsNyArMzU0 LDggQEAgR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGlj YXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAogICogYW5jZXN0b3IgaXMgYXQgdGhlIGVuZCBvZiB0 aGUgbGlzdC4KICAqLwogT2lkCi1HZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBw dWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RB bmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJ CQlpbnQgKmFuY2VzdG9yX2xldmVsLCBib29sIHB1YmFsbHRhYmxlcykKIHsKIAlMaXN0Q2VsbCAg ICpsYzsKIAlPaWQJCQl0b3Btb3N0X3JlbGlkID0gSW52YWxpZE9pZDsKQEAgLTM2NiwzMiArMzY3 LDQ0IEBAIEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAq YW5jZXN0b3JzLCBpbnQgKmFuY2VzdG9yX2xldmVsCiAJZm9yZWFjaChsYywgYW5jZXN0b3JzKQog CXsKIAkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKLQkJTGlzdAkgICAqYXB1Ymlk cyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yKTsKLQkJTGlzdAkgICAqYXNjaGVt YVB1YmlkcyA9IE5JTDsKKwkJTGlzdAkgICAqYXB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRp b25zKGFuY2VzdG9yLCBmYWxzZSk7CisJCUxpc3QJICAgKmFzY2hlbWFwdWJpZHMgPSBOSUw7CisJ CUxpc3QJICAgKmFleGNlcHRwdWJpZHMgPSBOSUw7CisJCWJvb2wJCXNldF90b3AgPSBmYWxzZTsK IAogCQlsZXZlbCsrOwogCi0JCWlmIChsaXN0X21lbWJlcl9vaWQoYXB1YmlkcywgcHVib2lkKSkK KwkJLyogY2hlY2sgaWYgbWVtYmVyIG9mIHRhYmxlIHB1YmxpY2F0aW9ucyAqLworCQlzZXRfdG9w ID0gbGlzdF9tZW1iZXJfb2lkKGFwdWJpZHMsIHB1Ym9pZCk7CisJCWlmICghc2V0X3RvcCkKIAkJ ewotCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOworCQkJYXNjaGVtYXB1YmlkcyA9IEdldFNj aGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVsX25hbWVzcGFjZShhbmNlc3RvcikpOwogCi0JCQlpZiAo YW5jZXN0b3JfbGV2ZWwpCi0JCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7CisJCQkvKiBjaGVj ayBpZiBtZW1iZXIgb2Ygc2NoZW1hIHB1YmxpY2F0aW9ucyAqLworCQkJc2V0X3RvcCA9IGxpc3Rf bWVtYmVyX29pZChhc2NoZW1hcHViaWRzLCBwdWJvaWQpOworCisJCQkvKgorCQkJICogSWYgdGhl IHB1YmxpY2F0aW9uIGlzIGFsbCB0YWJsZXMgcHVibGljYXRpb24gYW5kIHRoZSB0YWJsZSBpcwor CQkJICogbm90IHBhcnQgb2YgZXhjZXB0aW9uIHRhYmxlcy4KKwkJCSAqLworCQkJaWYgKCFzZXRf dG9wICYmIHB1YmFsbHRhYmxlcykKKwkJCXsKKwkJCQlhZXhjZXB0cHViaWRzID0gR2V0UmVsYXRp b25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIHRydWUpOworCQkJCXNldF90b3AgPSAhbGlzdF9tZW1i ZXJfb2lkKGFleGNlcHRwdWJpZHMsIHB1Ym9pZCk7CisJCQl9CiAJCX0KLQkJZWxzZQorCisJCWlm IChzZXRfdG9wKQogCQl7Ci0JCQlhc2NoZW1hUHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25z KGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKSk7Ci0JCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFz Y2hlbWFQdWJpZHMsIHB1Ym9pZCkpCi0JCQl7Ci0JCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9y OworCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOwogCi0JCQkJaWYgKGFuY2VzdG9yX2xldmVs KQotCQkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZlbDsKLQkJCX0KKwkJCWlmIChhbmNlc3Rvcl9s ZXZlbCkKKwkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZlbDsKIAkJfQogCiAJCWxpc3RfZnJlZShh cHViaWRzKTsKLQkJbGlzdF9mcmVlKGFzY2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoYXNjaGVt YXB1Ymlkcyk7CisJCWxpc3RfZnJlZShhZXhjZXB0cHViaWRzKTsKIAl9CiAKIAlyZXR1cm4gdG9w bW9zdF9yZWxpZDsKQEAgLTQ2Niw2ICs0NzksMTcgQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9u KE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJCQkJCQlSZWxhdGlvbkdldFJl bGF0aW9uTmFtZSh0YXJnZXRyZWwpLCBwdWItPm5hbWUpKSk7CiAJfQogCisJLyoKKwkgKiBDaGVj ayBmb3IgcGFydGl0aW9ucyBvZiBwYXJ0aXRpb25lZCB0YWJsZSB3aGljaCBhcmUgc3BlY2lmaWVk IHdpdGgKKwkgKiBFWENFUFQgY2xhdXNlIGFuZCBwYXJ0aXRpb25lZCB0YWJsZSBpcyBwdWJsaXNo ZWQgd2l0aAorCSAqIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZS4KKwkgKi8KKwlp ZiAocHViLT5hbGx0YWJsZXMgJiYgcHJpLT5leGNlcHQgJiYgdGFyZ2V0cmVsLT5yZF9yZWwtPnJl bGlzcGFydGl0aW9uICYmCisJCXB1Yi0+cHVidmlhcm9vdCkKKwkJZXJlcG9ydChXQVJOSU5HLAor CQkJCShlcnJtc2coInBhcnRpdGlvbiBcIiVzXCIgd2lsbCBiZSByZXBsaWNhdGVkIGFzIHB1Ymxp c2hfdmlhX3BhcnRpdGlvbl9yb290IGlzIFwiJXNcIiIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZSh0YXJnZXRyZWwpLCAidHJ1ZSIpKSk7CisKIAljaGVja19wdWJsaWNhdGlvbl9hZGRf cmVsYXRpb24odGFyZ2V0cmVsKTsKIAogCS8qIFZhbGlkYXRlIGFuZCB0cmFuc2xhdGUgY29sdW1u IG5hbWVzIGludG8gYSBCaXRtYXBzZXQgb2YgYXR0bnVtcy4gKi8KQEAgLTQ4Miw2ICs1MDYsOCBA QCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJlbEluZm8g KnByaSwKIAkJT2JqZWN0SWRHZXREYXR1bShwdWJpZCk7CiAJdmFsdWVzW0FudW1fcGdfcHVibGlj YXRpb25fcmVsX3BycmVsaWQgLSAxXSA9CiAJCU9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCXZh bHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2VwdCAtIDFdID0KKwkJQm9vbEdldERh dHVtKHByaS0+ZXhjZXB0KTsKIAogCS8qIEFkZCBxdWFsaWZpY2F0aW9ucywgaWYgYXZhaWxhYmxl ICovCiAJaWYgKHByaS0+d2hlcmVDbGF1c2UgIT0gTlVMTCkKQEAgLTc0OSw5ICs3NzUsOSBAQCBw dWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlkLCBib29sIGlmX25v dF9leGlzdHMpCiAJcmV0dXJuIG15c2VsZjsKIH0KIAotLyogR2V0cyBsaXN0IG9mIHB1YmxpY2F0 aW9uIG9pZHMgZm9yIGEgcmVsYXRpb24gKi8KKy8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBv aWRzIGZvciBhIHJlbGF0aW9uIHRoYXQgbWF0Y2hlcyB0aGUgZXhjZXB0X2ZsYWcgKi8KIExpc3Qg KgotR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKQorR2V0UmVsYXRpb25QdWJsaWNh dGlvbnMoT2lkIHJlbGlkLCBib29sIGV4Y2VwdF9mbGFnKQogewogCUxpc3QJICAgKnJlc3VsdCA9 IE5JTDsKIAlDYXRDTGlzdCAgICpwdWJyZWxsaXN0OwpAQCAtNzY1LDcgKzc5MSw4IEBAIEdldFJl bGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKIAkJSGVhcFR1cGxlCXR1cCA9ICZwdWJyZWxs aXN0LT5tZW1iZXJzW2ldLT50dXBsZTsKIAkJT2lkCQkJcHViaWQgPSAoKEZvcm1fcGdfcHVibGlj YXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnBycHViaWQ7CiAKLQkJcmVzdWx0ID0gbGFwcGVu ZF9vaWQocmVzdWx0LCBwdWJpZCk7CisJCWlmIChleGNlcHRfZmxhZyA9PSAoKEZvcm1fcGdfcHVi bGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0KQorCQkJcmVzdWx0ID0gbGFw cGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJfQogCiAJUmVsZWFzZVN5c0NhY2hlTGlzdChwdWJy ZWxsaXN0KTsKQEAgLTc3NCwxMyArODAxLDE0IEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9p ZCByZWxpZCkKIH0KIAogLyoKLSAqIEdldHMgbGlzdCBvZiByZWxhdGlvbiBvaWRzIGZvciBhIHB1 YmxpY2F0aW9uLgorICogR2V0cyBsaXN0IG9mIHJlbGF0aW9uIG9pZHMgZm9yIGEgcHVibGljYXRp b24gdGhhdCBtYXRjaGVzIHRoZSBleGNlcHRfZmxhZy4KICAqCiAgKiBUaGlzIHNob3VsZCBvbmx5 IGJlIHVzZWQgRk9SIFRBQkxFIHB1YmxpY2F0aW9ucywgdGhlIEZPUiBBTEwgVEFCTEVTL1NFUVVF TkNFUwogICogc2hvdWxkIHVzZSBHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucygpLgogICovCiBM aXN0ICoKLUdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0 T3B0IHB1Yl9wYXJ0b3B0KQorR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJs aWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCisJCQkJCQlib29sIGV4Y2VwdF9mbGFnKQogewog CUxpc3QJICAgKnJlc3VsdDsKIAlSZWxhdGlvbglwdWJyZWxzcmVsOwpAQCAtODA1LDggKzgzMywx MSBAQCBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9w dCBwdWJfcGFydG9wdCkKIAkJRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwgcHVicmVsOwogCiAJCXB1 YnJlbCA9IChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCk7Ci0JCXJlc3Vs dCA9IEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhyZXN1bHQsIHB1Yl9wYXJ0b3B0LAot CQkJCQkJCQkJCQkJcHVicmVsLT5wcnJlbGlkKTsKKworCQlpZiAoZXhjZXB0X2ZsYWcgPT0gcHVi cmVsLT5wcmV4Y2VwdCkKKwkJCXJlc3VsdCA9IEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9u cyhyZXN1bHQsIHB1Yl9wYXJ0b3B0LAorCQkJCQkJCQkJCQkJCXB1YnJlbC0+cHJyZWxpZCk7CisK IAl9CiAKIAlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOwpAQCAtODY2LDEzICs4OTcsMTkgQEAgR2V0 QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpCiAgKiBwdWJsaWNhdGlvbi4KICAqLwogTGlzdCAq Ci1HZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucyhjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9v dCkKK0dldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgY2hhciByZWxraW5kLCBi b29sIHB1YnZpYXJvb3QpCiB7CiAJUmVsYXRpb24JY2xhc3NSZWw7CiAJU2NhbktleURhdGEga2V5 WzFdOwogCVRhYmxlU2NhbkRlc2Mgc2NhbjsKIAlIZWFwVHVwbGUJdHVwbGU7CiAJTGlzdAkgICAq cmVzdWx0ID0gTklMOworCUxpc3QJICAgKmV4Y2VwdGxpc3Q7CisKKwlleGNlcHRsaXN0ID0gR2V0 UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsIHB1YnZpYXJvb3QgPworCQkJCQkJCQkJCSBQVUJM SUNBVElPTl9QQVJUX0FMTCA6CisJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwKKwkJ CQkJCQkJCQkgdHJ1ZSk7CiAKIAlBc3NlcnQoIShyZWxraW5kID09IFJFTEtJTkRfU0VRVUVOQ0Ug JiYgcHVidmlhcm9vdCkpOwogCkBAIC04OTEsNyArOTI4LDggQEAgR2V0QWxsUHVibGljYXRpb25S ZWxhdGlvbnMoY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpCiAJCU9pZAkJCXJlbGlkID0g cmVsRm9ybS0+b2lkOwogCiAJCWlmIChpc19wdWJsaXNoYWJsZV9jbGFzcyhyZWxpZCwgcmVsRm9y bSkgJiYKLQkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYgcHVidmlhcm9vdCkpCisJCQkh KHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3QpICYmCisJCQkhbGlzdF9tZW1i ZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3Vs dCwgcmVsaWQpOwogCX0KIApAQCAtOTEyLDcgKzk1MCw4IEBAIEdldEFsbFB1YmxpY2F0aW9uUmVs YXRpb25zKGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KQogCQkJT2lkCQkJcmVsaWQgPSBy ZWxGb3JtLT5vaWQ7CiAKIAkJCWlmIChpc19wdWJsaXNoYWJsZV9jbGFzcyhyZWxpZCwgcmVsRm9y bSkgJiYKLQkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24pCisJCQkJIXJlbEZvcm0tPnJlbGlz cGFydGl0aW9uICYmCisJCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRsaXN0LCByZWxpZCkpCiAJ CQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJCX0KIApAQCAtMTE2OCw3 ICsxMjA3LDggQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQog CQkJICogdGhvc2UuIE90aGVyd2lzZSwgZ2V0IHRoZSBwYXJ0aXRpb25lZCB0YWJsZSBpdHNlbGYu CiAJCQkgKi8KIAkJCWlmIChwdWJfZWxlbS0+YWxsdGFibGVzKQotCQkJCXB1Yl9lbGVtX3RhYmxl cyA9IEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKFJFTEtJTkRfUkVMQVRJT04sCisJCQkJcHVi X2VsZW1fdGFibGVzID0gR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMocHViX2VsZW0tPm9pZCwK KwkJCQkJCQkJCQkJCQkJCSBSRUxLSU5EX1JFTEFUSU9OLAogCQkJCQkJCQkJCQkJCQkJIHB1Yl9l bGVtLT5wdWJ2aWFyb290KTsKIAkJCWVsc2UKIAkJCXsKQEAgLTExNzgsNyArMTIxOCw4IEBAIHBn X2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQlyZWxpZHMgPSBH ZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJfZWxlbS0+b2lkLAogCQkJCQkJCQkJCQkJIHB1Yl9l bGVtLT5wdWJ2aWFyb290ID8KIAkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX1JPT1QgOgot CQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfTEVBRik7CisJCQkJCQkJCQkJCQkgUFVCTElD QVRJT05fUEFSVF9MRUFGLAorCQkJCQkJCQkJCQkJIGZhbHNlKTsKIAkJCQlzY2hlbWFyZWxpZHMg PSBHZXRBbGxTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJfZWxlbS0+b2lkLAogCQkJCQkJ CQkJCQkJCQkJCXB1Yl9lbGVtLT5wdWJ2aWFyb290ID8KIAkJCQkJCQkJCQkJCQkJCQlQVUJMSUNB VElPTl9QQVJUX1JPT1QgOgpAQCAtMTM2Nyw3ICsxNDA4LDcgQEAgcGdfZ2V0X3B1YmxpY2F0aW9u X3NlcXVlbmNlcyhQR19GVU5DVElPTl9BUkdTKQogCQlwdWJsaWNhdGlvbiA9IEdldFB1YmxpY2F0 aW9uQnlOYW1lKHB1Ym5hbWUsIGZhbHNlKTsKIAogCQlpZiAocHVibGljYXRpb24tPmFsbHNlcXVl bmNlcykKLQkJCXNlcXVlbmNlcyA9IEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKFJFTEtJTkRf U0VRVUVOQ0UsIGZhbHNlKTsKKwkJCXNlcXVlbmNlcyA9IEdldEFsbFB1YmxpY2F0aW9uUmVsYXRp b25zKHB1YmxpY2F0aW9uLT5vaWQsIFJFTEtJTkRfU0VRVUVOQ0UsIGZhbHNlKTsKIAogCQlmdW5j Y3R4LT51c2VyX2ZjdHggPSAodm9pZCAqKSBzZXF1ZW5jZXM7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHVibGljYXRpb25jbWRzLmMKaW5kZXggZWQ4OGMzMDY2NzcuLmU3MGZkZWZiYzkwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMTgwLDYgKzE4MCwzOSBAQCBwYXJz ZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAl9CiB9CiAKKy8qCisg KiBDb252ZXJ0IHRoZSBQdWJsaWNhdGlvbk9ialNwZWMgbGlzdCB3aGljaCBpcyBwYXJ0IG9mCisg KiBQdWJsaWNhdGlvbkFsbE9ialNwZWNUeXBlIGxpc3QgaW50byBQdWJsaWNhdGlvblRhYmxlIGxp c3QuCisgKi8KK3N0YXRpYyB2b2lkCitPYmplY3RzSW5BbGxQdWJsaWNhdGlvblRvT2lkcyhMaXN0 ICpwdWJhbGxvYmpzcGVjX2xpc3QsCisJCQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg KipyZWxzKQoreworCWlmICghcHViYWxsb2Jqc3BlY19saXN0KQorCQlyZXR1cm47CisKKwlmb3Jl YWNoX3B0cihQdWJsaWNhdGlvbkFsbE9ialNwZWMsIHB1YmFsbG9iaiwgcHViYWxsb2Jqc3BlY19s aXN0KQorCXsKKwkJc3dpdGNoIChwdWJhbGxvYmotPnB1Ym9ianR5cGUpCisJCXsKKwkJCWNhc2Ug UFVCTElDQVRJT05fQUxMX1NFUVVFTkNFUzoKKwkJCQlicmVhazsKKwkJCWNhc2UgUFVCTElDQVRJ T05fQUxMX1RBQkxFUzoKKwkJCQlmb3JlYWNoX3B0cihQdWJsaWNhdGlvbk9ialNwZWMsIHB1Ym9i aiwgcHViYWxsb2JqLT5leGNlcHRfb2JqZWN0cykKKwkJCQl7CisJCQkJCXB1Ym9iai0+cHVidGFi bGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2JqLT5w dWJ0YWJsZSk7CisJCQkJfQorCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQkvKiBzaG91bGRu J3QgaGFwcGVuICovCisJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgcHVibGljYXRpb24gb2JqZWN0 IHR5cGUgJWQiLAorCQkJCQkgcHViYWxsb2JqLT5wdWJvYmp0eXBlKTsKKwkJCQlicmVhazsKKwkJ fQorCX0KK30KKwogLyoKICAqIENvbnZlcnQgdGhlIFB1YmxpY2F0aW9uT2JqU3BlY1R5cGUgbGlz dCBpbnRvIHNjaGVtYSBvaWQgbGlzdCBhbmQKICAqIFB1YmxpY2F0aW9uVGFibGUgbGlzdC4KQEAg LTIwNCw2ICsyMzcsMTEgQEAgT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoTGlzdCAqcHVib2Jq c3BlY19saXN0LCBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCXN3aXRjaCAocHVib2JqLT5wdWJvYmp0 eXBlKQogCQl7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVi dGFibGUtPmV4Y2VwdCA9IGZhbHNlOworCQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2Jq LT5wdWJ0YWJsZSk7CisJCQkJYnJlYWs7CisJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9U QUJMRToKKwkJCQlwdWJvYmotPnB1YnRhYmxlLT5leGNlcHQgPSB0cnVlOwogCQkJCSpyZWxzID0g bGFwcGVuZCgqcmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBV QkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUE6CkBAIC0yNzgsNyArMzE2LDcgQEAgY29udGFp bl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlcihOb2RlICpub2RlLCByZl9jb250ZXh0ICpjb250ZXh0 KQogICovCiBib29sCiBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBS ZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJCSAgIGJvb2wgcHVidmlh cm9vdCkKKwkJCQkJCQkgICBib29sIHB1YnZpYXJvb3QsIGJvb2wgcHViYWxsdGFibGVzKQogewog CUhlYXBUdXBsZQlyZnR1cGxlOwogCU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWxh dGlvbik7CkBAIC0zMDUsNyArMzQzLDggQEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1u KE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAlpZiAocHVi dmlhcm9vdCAmJiByZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7CiAJCXB1Ymxp c2hfYXNfcmVsaWQKLQkJCT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwg YW5jZXN0b3JzLCBOVUxMKTsKKwkJCT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihw dWJpZCwgYW5jZXN0b3JzLCBOVUxMLAorCQkJCQkJCQkJCQkgIHB1YmFsbHRhYmxlcyk7CiAKIAkJ aWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVibGlzaF9hc19yZWxpZCA9 IHJlbGlkOwpAQCAtMzY1LDcgKzQwNCw3IEBAIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVt bihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiBib29sCiBw dWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwg TGlzdCAqYW5jZXN0b3JzLAogCQkJCQkJCWJvb2wgcHVidmlhcm9vdCwgY2hhciBwdWJnZW5jb2xz X3R5cGUsCi0JCQkJCQkJYm9vbCAqaW52YWxpZF9jb2x1bW5fbGlzdCwKKwkJCQkJCQlib29sIHB1 YmFsbHRhYmxlcywgYm9vbCAqaW52YWxpZF9jb2x1bW5fbGlzdCwKIAkJCQkJCQlib29sICppbnZh bGlkX2dlbl9jb2wpCiB7CiAJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9u KTsKQEAgLTM4OSw3ICs0MjgsOCBAQCBwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1 YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCSAqLwogCWlmIChwdWJ2 aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKLQkJcHVibGlz aF9hc19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2Vz dG9ycywgTlVMTCk7CisJCXB1Ymxpc2hfYXNfcmVsaWQgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1 YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsCisJCQkJCQkJCQkJCQkJCSAgIE5VTEwsIHB1YmFs bHRhYmxlcyk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVi bGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAtNTI1LDcgKzU2NSw3IEBAIEludmFsaWRhdGVQdWJS ZWxTeW5jQ2FjaGUoT2lkIHB1YmlkLCBib29sIHB1YmFsbHRhYmxlcykKIAkJICogaXRzIGxlYXZl cy4KIAkJICovCiAJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLAotCQkJ CQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0FMTCk7CisJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BB UlRfQUxMLCBmYWxzZSk7CiAJCXNjaGVtYXJlbGlkcyA9IEdldEFsbFNjaGVtYVB1YmxpY2F0aW9u UmVsYXRpb25zKHB1YmlkLAogCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9QQVJUX0FMTCk7CiAK QEAgLTkzMyw1NiArOTczLDU0IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCS8qIE1ha2UgdGhlIGNoYW5nZXMgdmlz aWJsZS4gKi8KIAlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwogCi0JLyogQXNzb2NpYXRlIG9i amVjdHMgd2l0aCB0aGUgcHVibGljYXRpb24uICovCiAJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVz KQotCXsKLQkJLyoKLQkJICogSW52YWxpZGF0ZSByZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9u IGluZm8gaXMgcmVidWlsdC4gU2VxdWVuY2VzCi0JCSAqIHB1YmxpY2F0aW9uIGRvZXNuJ3QgcmVx dWlyZSBpbnZhbGlkYXRpb24sIGFzIHJlcGxpY2EgaWRlbnRpdHkKLQkJICogY2hlY2tzIGRvbid0 IGFwcGx5IHRvIHRoZW0uCi0JCSAqLwotCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOwot CX0KKwkJT2JqZWN0c0luQWxsUHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0 YXRlLCAmcmVsYXRpb25zKTsKKwogCWVsc2UgaWYgKCFzdG10LT5mb3JfYWxsX3NlcXVlbmNlcykK LQl7CiAJCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0 ZSwgJnJlbGF0aW9ucywKIAkJCQkJCQkJICAgJnNjaGVtYWlkbGlzdCk7CiAKLQkJLyogRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCi0JCWlmIChzY2hlbWFpZGxpc3Qg IT0gTklMICYmICFzdXBlcnVzZXIoKSkKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCWVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCQkJZXJybXNnKCJtdXN0IGJlIHN1 cGVydXNlciB0byBjcmVhdGUgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljYXRpb24iKSk7CisJ LyogRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJaWYgKHNjaGVt YWlkbGlzdCAhPSBOSUwgJiYgIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVy cmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coIm11c3Qg YmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbiIp KTsKIAotCQlpZiAocmVsYXRpb25zICE9IE5JTCkKLQkJewotCQkJTGlzdAkgICAqcmVsczsKKwlp ZiAocmVsYXRpb25zICE9IE5JTCkKKwl7CisJCUxpc3QJICAgKnJlbHM7CiAKLQkJCXJlbHMgPSBP cGVuVGFibGVMaXN0KHJlbGF0aW9ucyk7Ci0JCQlUcmFuc2Zvcm1QdWJXaGVyZUNsYXVzZXMocmVs cywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCi0JCQkJCQkJCQkgcHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3QpOworCQlyZWxzID0gT3BlblRhYmxlTGlzdChyZWxhdGlvbnMpOworCQlUcmFuc2Zvcm1Q dWJXaGVyZUNsYXVzZXMocmVscywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkJCSBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CiAKLQkJCUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0 KHN0bXQtPnB1Ym5hbWUsIHJlbHMsCi0JCQkJCQkJCQkgICBzY2hlbWFpZGxpc3QgIT0gTklMLAot CQkJCQkJCQkJICAgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOworCQlDaGVja1B1YlJlbGF0 aW9uQ29sdW1uTGlzdChzdG10LT5wdWJuYW1lLCByZWxzLAorCQkJCQkJCQkgICBzY2hlbWFpZGxp c3QgIT0gTklMLAorCQkJCQkJCQkgICBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CiAKLQkJ CVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7Ci0JCQlDbG9z ZVRhYmxlTGlzdChyZWxzKTsKLQkJfQorCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQsIHJl bHMsIHRydWUsIE5VTEwpOworCQlDbG9zZVRhYmxlTGlzdChyZWxzKTsKKwl9CiAKLQkJaWYgKHNj aGVtYWlkbGlzdCAhPSBOSUwpCi0JCXsKLQkJCS8qCi0JCQkgKiBTY2hlbWEgbG9jayBpcyBoZWxk IHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHRvIHByZXZlbnQKLQkJCSAqIGNvbmN1 cnJlbnQgc2NoZW1hIGRlbGV0aW9uLgotCQkJICovCi0JCQlMb2NrU2NoZW1hTGlzdChzY2hlbWFp ZGxpc3QpOwotCQkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1Ym9pZCwgc2NoZW1haWRsaXN0LCB0 cnVlLCBOVUxMKTsKLQkJfQorCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMKQorCXsKKwkJLyoKKwkJ ICogU2NoZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0aGUgcHVibGljYXRpb24gaXMgY3JlYXRlZCB0 byBwcmV2ZW50CisJCSAqIGNvbmN1cnJlbnQgc2NoZW1hIGRlbGV0aW9uLgorCQkgKi8KKwkJTG9j a1NjaGVtYUxpc3Qoc2NoZW1haWRsaXN0KTsKKwkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1Ym9p ZCwgc2NoZW1haWRsaXN0LCB0cnVlLCBOVUxMKTsKIAl9CiAKIAl0YWJsZV9jbG9zZShyZWwsIFJv d0V4Y2x1c2l2ZUxvY2spOwogCisJLyogQXNzb2NpYXRlIG9iamVjdHMgd2l0aCB0aGUgcHVibGlj YXRpb24uICovCisJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVzKQorCXsKKwkJLyogSW52YWxpZGF0 ZSByZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9uIGluZm8gaXMgcmVidWlsdC4gKi8KKwkJQ2Fj aGVJbnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKKwl9CisKIAlJbnZva2VPYmplY3RQb3N0Q3JlYXRl SG9vayhQdWJsaWNhdGlvblJlbGF0aW9uSWQsIHB1Ym9pZCwgMCk7CiAKIAlpZiAod2FsX2xldmVs ICE9IFdBTF9MRVZFTF9MT0dJQ0FMKQpAQCAtMTA1MSw3ICsxMDg5LDcgQEAgQWx0ZXJQdWJsaWNh dGlvbk9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3Rt dCwKIAkJCQkJCSAgIEFjY2Vzc1NoYXJlTG9jayk7CiAKIAkJcm9vdF9yZWxpZHMgPSBHZXRQdWJs aWNhdGlvblJlbGF0aW9ucyhwdWJmb3JtLT5vaWQsCi0JCQkJCQkJCQkJCSAgUFVCTElDQVRJT05f UEFSVF9ST09UKTsKKwkJCQkJCQkJCQkJICBQVUJMSUNBVElPTl9QQVJUX1JPT1QsIGZhbHNlKTsK IAogCQlmb3JlYWNoKGxjLCByb290X3JlbGlkcykKIAkJewpAQCAtMTE3MSw3ICsxMjA5LDcgQEAg QWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0 aW9uU3RtdCAqc3RtdCwKIAkJICovCiAJCWlmIChyb290X3JlbGlkcyA9PSBOSUwpCiAJCQlyZWxp ZHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJmb3JtLT5vaWQsCi0JCQkJCQkJCQkJCSBQ VUJMSUNBVElPTl9QQVJUX0FMTCk7CisJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0FMTCwg ZmFsc2UpOwogCQllbHNlCiAJCXsKIAkJCS8qCkBAIC0xMjY3LDYgKzEzMDUsMjcgQEAgQWx0ZXJQ dWJsaWNhdGlvblJlc2V0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQg KnN0bXQsCiAJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29scyAtIDFdID0gQ2hh ckdldERhdHVtKFBVQl9ERUZBVUxUX0dFTkNPTFMpOwogCXJlcGxhY2VzW0FudW1fcGdfcHVibGlj YXRpb25fcHViZ2VuY29scyAtIDFdID0gdHJ1ZTsKIAorCS8qCisJICogTG9jayB0aGUgcHVibGlj YXRpb24gc28gbm9ib2R5IGVsc2UgY2FuIGRvIGFueXRoaW5nIHdpdGggaXQuIFRoaXMKKwkgKiBw cmV2ZW50cyBjb25jdXJyZW50IHB1YmxpY2F0aW9uIHBhcmFtZXRlciBjaGFuZ2VzLCBhZGQvZHJv cCB0YWJsZXMocykKKwkgKiB0byB0aGUgcHVibGljYXRpb24gYW5kIGFkZC9kcm9wIHNjaGVtYShz KSB0byB0aGUgcHVibGljYXRpb24uCisJICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFB1YmxpY2F0 aW9uUmVsYXRpb25JZCwgcHViaWQsIDAsCisJCQkJCSAgIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOwor CisJLyoKKwkgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IGJ5IHRoZSB0aW1lIHdlIGFjcXVpcmUgdGhl IGxvY2sgb24gcHVibGljYXRpb24sCisJICogY29uY3VycmVudCBEREwgaGFzIHJlbW92ZWQgaXQu IFdlIGNhbiB0ZXN0IHRoaXMgYnkgY2hlY2tpbmcgdGhlCisJICogZXhpc3RlbmNlIG9mIHB1Ymxp Y2F0aW9uLiBXZSBnZXQgdGhlIHR1cGxlIGFnYWluIHRvIGF2b2lkIHRoZSByaXNrIG9mCisJICog YW55IHB1YmxpY2F0aW9uIG9wdGlvbiBnZXR0aW5nIGNoYW5nZWQuCisJICovCisJdHVwID0gU2Vh cmNoU3lzQ2FjaGVDb3B5MShQVUJMSUNBVElPTk9JRCwgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkp OworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVy cmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQllcnJtc2coInB1YmxpY2F0aW9u IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpKTsKKwogCS8q IFNldCBBTEwgVEFCTEVTIGZsYWcgdG8gZmFsc2UgKi8KIAlpZiAocHViZm9ybS0+cHViYWxsdGFi bGVzKQogCXsKQEAgLTEzMDEsNyArMTM2MCwxMCBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAlQdWJsaWNhdGlv bkRyb3BTY2hlbWFzKHB1YmlkLCBzY2hlbWFpZHMsIHRydWUpOwogCiAJLyogR2V0IGFsbCByZWxh dGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiAqLwotCXJlbGlkcyA9IEdldFB1 YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCWlmIChw dWJmb3JtLT5wdWJhbGx0YWJsZXMpCisJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25z KHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QsIHRydWUpOworCWVsc2UKKwkJcmVsaWRzID0g R2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwgZmFs c2UpOwogCiAJZm9yZWFjaF9vaWQocmVsaWQsIHJlbGlkcykKIAl7CkBAIC0xMzE5LDYgKzEzODEs NzkgQEAgQWx0ZXJQdWJsaWNhdGlvblJlc2V0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJs aWNhdGlvblN0bXQgKnN0bXQsCiAJQ2xvc2VUYWJsZUxpc3QocmVscyk7CiB9CiAKKy8qCisgKiBD aGVjayBpZiB0aGUgcHVibGljYXRpb24gaGFzIGRlZmF1bHQgdmFsdWVzLgorICoKKyAqIFJldHVy bnMgdHJ1ZSBpZiB0aGUgcHVibGljYXRpb24gc2F0aXNmaWVzIGFsbCB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6CisgKiBhKSBQdWJsaWNhdGlvbiBpcyBub3Qgc2V0IHdpdGggIkZPUiBBTEwgVEFC TEVTIgorICogYikgUHVibGljYXRpb24gaXMgaGF2aW5nIGRlZmF1bHQgcHVibGljYXRpb24gcGFy YW1ldGVyIHZhbHVlcworICogYykgUHVibGljYXRpb24gaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBz Y2hlbWFzCisgKiBkKSBQdWJsaWNhdGlvbiBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHJlbGF0aW9u cworICovCitzdGF0aWMgYm9vbAorQ2hlY2tQdWJsaWNhdGlvbkRlZlZhbHVlcyhIZWFwVHVwbGUg dHVwKQoreworCUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0 aW9uKSBHRVRTVFJVQ1QodHVwKTsKKwlPaWQJCQlwdWJpZCA9IHB1YmZvcm0tPm9pZDsKKwlMaXN0 CSAgICpwdWJvYmpzID0gTklMOworCisJaWYgKHB1YmZvcm0tPnB1YmFsbHRhYmxlcyAhPSBQVUJf REVGQVVMVF9BTExfVEFCTEVTKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAocHViZm9ybS0+cHVi aW5zZXJ0ICE9IFBVQl9ERUZBVUxUX0FDVElPTl9JTlNFUlQgfHwKKwkJcHViZm9ybS0+cHVidXBk YXRlICE9IFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUgfHwKKwkJcHViZm9ybS0+cHViZGVsZXRl ICE9IFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEUgfHwKKwkJcHViZm9ybS0+cHVidHJ1bmNhdGUg IT0gUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFIHx8CisJCXB1YmZvcm0tPnB1YnZpYXJvb3Qg IT0gUFVCX0RFRkFVTFRfVklBX1JPT1QpCisJCXJldHVybiBmYWxzZTsKKworCXB1Ym9ianMgPSBH ZXRQdWJsaWNhdGlvblNjaGVtYXMocHViaWQpOworCWlmIChsaXN0X2xlbmd0aChwdWJvYmpzKSkK KwkJcmV0dXJuIGZhbHNlOworCisJcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1 YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QsIGZhbHNlKTsKKwlpZiAobGlzdF9sZW5ndGgocHVi b2JqcykpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogU2V0 IHB1YmxpY2F0aW9uIHRvIHB1Ymxpc2ggYWxsIHRhYmxlcy4KKyAqLworc3RhdGljIHZvaWQKK0Fs dGVyUHVibGljYXRpb25TZXRBbGxUYWJsZXMoUmVsYXRpb24gcmVsLCBIZWFwVHVwbGUgdHVwKQor eworCUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFkg PSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CisJYm9vbAkJbnVsbHNbTmF0 dHNfcGdfcHVibGljYXRpb25dOworCWJvb2wJCXJlcGxhY2VzW05hdHRzX3BnX3B1YmxpY2F0aW9u XTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKworI2lmZGVmIFVTRV9B U1NFUlRfQ0hFQ0tJTkcKKwlBc3NlcnQoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyk7CisjZW5kaWYK KworCS8qIEFkZCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbiByZXF1aXJlcyBzdXBlcnVz ZXIgKi8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coIm11c3QgYmUgc3Vw ZXJ1c2VyIHRvIEFERCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbiIpKTsKKworCW1lbXNl dCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXpl b2YobnVsbHMpKTsKKwltZW1zZXQocmVwbGFjZXMsIGZhbHNlLCBzaXplb2YocmVwbGFjZXMpKTsK KworCS8qIFNldCBBTEwgVEFCTEVTIGZsYWcgKi8KKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJhbGx0YWJsZXMgLSAxXSA9IEJvb2xHZXREYXR1bSh0cnVlKTsKKwlyZXBsYWNlc1tBbnVt X3BnX3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gdHJ1ZTsKKworCXR1cCA9IGhlYXBf bW9kaWZ5X3R1cGxlKHR1cCwgUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAor CQkJCQkJCXJlcGxhY2VzKTsKKworCS8qIFVwZGF0ZSB0aGUgY2F0YWxvZy4gKi8KKwlDYXRhbG9n VHVwbGVVcGRhdGUocmVsLCAmdHVwLT50X3NlbGYsIHR1cCk7Cit9CisKIC8qCiAgKiBBZGQgb3Ig cmVtb3ZlIHRhYmxlIHRvL2Zyb20gcHVibGljYXRpb24uCiAgKi8KQEAgLTEzNTcsNyArMTQ5Miw4 IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhl YXBUdXBsZSB0dXAsCiAJZWxzZQkJCQkJCS8qIEFQX1NldE9iamVjdHMgKi8KIAl7CiAJCUxpc3QJ ICAgKm9sZHJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLAotCQkJCQkJCQkJ CQkJCQlQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9Q QVJUX1JPT1QsCisJCQkJCQkJCQkJCQkJCWZhbHNlKTsKIAkJTGlzdAkgICAqZGVscmVscyA9IE5J TDsKIAkJTGlzdENlbGwgICAqb2xkbGM7CiAKQEAgLTE0NTgsNiArMTU5NCw3IEBAIEFsdGVyUHVi bGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAs CiAJCQkJb2xkcmVsID0gcGFsbG9jKHNpemVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKIAkJCQlv bGRyZWwtPndoZXJlQ2xhdXNlID0gTlVMTDsKIAkJCQlvbGRyZWwtPmNvbHVtbnMgPSBOSUw7CisJ CQkJb2xkcmVsLT5leGNlcHQgPSBmYWxzZTsKIAkJCQlvbGRyZWwtPnJlbGF0aW9uID0gdGFibGVf b3BlbihvbGRyZWxpZCwKIAkJCQkJCQkJCQkJICBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOwog CQkJCWRlbHJlbHMgPSBsYXBwZW5kKGRlbHJlbHMsIG9sZHJlbCk7CkBAIC0xNTA4LDcgKzE2NDUs OCBAQCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwK IAkJTGlzdENlbGwgICAqbGM7CiAJCUxpc3QJICAgKnJlbG9pZHM7CiAKLQkJcmVsb2lkcyA9IEdl dFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwgUFVCTElDQVRJT05fUEFSVF9ST09U KTsKKwkJcmVsb2lkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwgUFVC TElDQVRJT05fUEFSVF9ST09ULAorCQkJCQkJCQkJCSAgZmFsc2UpOwogCiAJCWZvcmVhY2gobGMs IHJlbG9pZHMpCiAJCXsKQEAgLTE2NjEsNiArMTc5OSwyMCBAQCBBbHRlclB1YmxpY2F0aW9uKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCWFjbGNoZWNr X2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgT0JKRUNUX1BVQkxJQ0FUSU9OLAogCQkJCQkgICBz dG10LT5wdWJuYW1lKTsKIAorCWlmIChzdG10LT5mb3JfYWxsX3RhYmxlcykKKwl7CisJCWJvb2wJ CWlzZGVmYXVsdCA9IENoZWNrUHVibGljYXRpb25EZWZWYWx1ZXModHVwKTsKKworCQlpZiAoIWlz ZGVmYXVsdCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElE X09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJZXJybXNnKCJhZGRpbmcgQUxMIFRBQkxFUyByZXF1 aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRl ciB2YWx1ZXMiKSwKKwkJCQkJZXJyZGV0YWlsKCJBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBi ZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLiIpLAorCQkJ CQllcnJoaW50KCJVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBw dWJsaWNhdGlvbiIpKTsKKworCQlBbHRlclB1YmxpY2F0aW9uU2V0QWxsVGFibGVzKHJlbCwgdHVw KTsKKwl9CisKIAlpZiAoc3RtdC0+b3B0aW9ucykKIAkJQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMo cHN0YXRlLCBzdG10LCByZWwsIHR1cCk7CiAJZWxzZSBpZiAoc3RtdC0+YWN0aW9uID09IEFQX1Jl c2V0UHVibGljYXRpb24pCkBAIC0xODczLDYgKzIwMjUsNyBAQCBPcGVuVGFibGVMaXN0KExpc3Qg KnRhYmxlcykKIAkJcHViX3JlbC0+cmVsYXRpb24gPSByZWw7CiAJCXB1Yl9yZWwtPndoZXJlQ2xh dXNlID0gdC0+d2hlcmVDbGF1c2U7CiAJCXB1Yl9yZWwtPmNvbHVtbnMgPSB0LT5jb2x1bW5zOwor CQlwdWJfcmVsLT5leGNlcHQgPSB0LT5leGNlcHQ7CiAJCXJlbHMgPSBsYXBwZW5kKHJlbHMsIHB1 Yl9yZWwpOwogCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIG15cmVsaWQpOwogCkBAIC0x OTQ1LDYgKzIwOTgsNyBAQCBPcGVuVGFibGVMaXN0KExpc3QgKnRhYmxlcykKIAogCQkJCS8qIGNo aWxkIGluaGVyaXRzIGNvbHVtbiBsaXN0IGZyb20gcGFyZW50ICovCiAJCQkJcHViX3JlbC0+Y29s dW1ucyA9IHQtPmNvbHVtbnM7CisJCQkJcHViX3JlbC0+ZXhjZXB0ID0gdC0+ZXhjZXB0OwogCQkJ CXJlbHMgPSBsYXBwZW5kKHJlbHMsIHB1Yl9yZWwpOwogCQkJCXJlbGlkcyA9IGxhcHBlbmRfb2lk KHJlbGlkcywgY2hpbGRyZWxpZCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggM2Fh YzQ1OWU0ODMuLjdmYzhmMDhiMGViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtODY1 MSw3ICs4NjUxLDcgQEAgQVRFeGVjU2V0RXhwcmVzc2lvbihBbHRlcmVkVGFibGVJbmZvICp0YWIs IFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAkgKiBleHByZXNzaW9ucy4KIAkg Ki8KIAlpZiAoYXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCAmJgot CQlHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCkpICE9IE5JTCkK KwkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBmYWxzZSkg IT0gTklMKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9O IGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gdGFibGVz IHRoYXQgYXJlIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIpLApAQCAtMTg4NDYsNyArMTg4NDYsNyBA QCBBVFByZXBDaGFuZ2VQZXJzaXN0ZW5jZShBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9u IHJlbCwgYm9vbCB0b0xvZ2dlZCkKIAkgKiBVTkxPR0dFRCwgYXMgVU5MT0dHRUQgdGFibGVzIGNh bid0IGJlIHB1Ymxpc2hlZC4KIAkgKi8KIAlpZiAoIXRvTG9nZ2VkICYmCi0JCUdldFJlbGF0aW9u UHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkgIT0gTklMKQorCQlsaXN0X2xlbmd0 aChHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCksIGZhbHNlKSkg PiAwKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9J Tl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImNhbm5vdCBjaGFuZ2UgdGFibGUg XCIlc1wiIHRvIHVubG9nZ2VkIGJlY2F1c2UgaXQgaXMgcGFydCBvZiBhIHB1YmxpY2F0aW9uIiwK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IDJiODhjNzRhMzE5Li44N2U3OGYxM2Q5NCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC00NTQsNiArNDU0LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlUcmlnZ2VyVHJh bnNpdGlvbnMgVHJpZ2dlclJlZmVyZW5jaW5nCiAJCQkJdmFjdXVtX3JlbGF0aW9uX2xpc3Qgb3B0 X3ZhY3V1bV9yZWxhdGlvbl9saXN0CiAJCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3Qg cHViX29ial90eXBlX2xpc3QKKwkJCQlleGNlcHRfcHViX29ial9saXN0IGV4Y2VwdF9jbGF1c2UK IAogJXR5cGUgPHJldGNsYXVzZT4gcmV0dXJuaW5nX2NsYXVzZQogJXR5cGUgPG5vZGU+CXJldHVy bmluZ19vcHRpb24KQEAgLTU5MSw2ICs1OTIsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog JXR5cGUgPG5vZGU+CXZhcl92YWx1ZSB6b25lX3ZhbHVlCiAldHlwZSA8cm9sZXNwZWM+IGF1dGhf aWRlbnQgUm9sZVNwZWMgb3B0X2dyYW50ZWRfYnkKICV0eXBlIDxwdWJsaWNhdGlvbm9iamVjdHNw ZWM+IFB1YmxpY2F0aW9uT2JqU3BlYworJXR5cGUgPHB1YmxpY2F0aW9ub2JqZWN0c3BlYz4gRXhj ZXB0UHVibGljYXRpb25PYmpTcGVjCiAldHlwZSA8cHVibGljYXRpb25hbGxvYmplY3RzcGVjPiBQ dWJsaWNhdGlvbkFsbE9ialNwZWMKIAogJXR5cGUgPGtleXdvcmQ+IHVucmVzZXJ2ZWRfa2V5d29y ZCB0eXBlX2Z1bmNfbmFtZV9rZXl3b3JkCkBAIC0xMDgwMiw2ICsxMDgwNCw3IEBAIFB1YmxpY2F0 aW9uT2JqU3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQyOwogCQkJCQkkJC0+ cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKIAkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9 ICQ0OworCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CiAJCQl8IFRBQkxFUyBJTl9QIFND SEVNQSBDb2xJZAogCQkJCXsKQEAgLTEwODc4LDEwICsxMDg4MSwxMyBAQCBwdWJfb2JqX2xpc3Q6 CVB1YmxpY2F0aW9uT2JqU3BlYwogCTsKIAogUHVibGljYXRpb25BbGxPYmpTcGVjOgotCQkJCUFM TCBUQUJMRVMKKwkJCQlBTEwgVEFCTEVTIGV4Y2VwdF9jbGF1c2UKIAkJCQkJewogCQkJCQkJJCQg PSBtYWtlTm9kZShQdWJsaWNhdGlvbkFsbE9ialNwZWMpOwogCQkJCQkJJCQtPnB1Ym9ianR5cGUg PSBQVUJMSUNBVElPTl9BTExfVEFCTEVTOworCQkJCQkJJCQtPmV4Y2VwdF9vYmplY3RzID0gKExp c3QgKikgJDM7CisJCQkJCQlpZigkJC0+ZXhjZXB0X29iamVjdHMgIT0gTlVMTCkKKwkJCQkJCQlw cmVwcm9jZXNzX3B1Ym9ial9saXN0KCQkLT5leGNlcHRfb2JqZWN0cywgeXlzY2FubmVyKTsKIAkJ CQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCQl9CiAJCQkJfCBBTEwgU0VRVUVOQ0VTCkBAIC0x MDg5OCw2ICsxMDkwNCwyOCBAQCBwdWJfb2JqX3R5cGVfbGlzdDoJUHVibGljYXRpb25BbGxPYmpT cGVjCiAJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KIAk7CiAKK2V4Y2VwdF9jbGF1c2U6 CisJCQlFWENFUFQgb3B0X3RhYmxlICcoJyBleGNlcHRfcHViX29ial9saXN0ICcpJwl7ICQkID0g JDQ7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQkJCXsgJCQgPSBOSUw7IH0KKwkJOworCitFeGNl cHRQdWJsaWNhdGlvbk9ialNwZWM6CisJCQkgcmVsYXRpb25fZXhwcgorCQkJCXsKKwkJCQkJJCQg PSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOworCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBV QkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRTsKKwkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUo UHVibGljYXRpb25UYWJsZSk7CisJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gdHJ1ZTsKKwkJ CQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQxOworCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsK KwkJCQl9CisJOworCitleGNlcHRfcHViX29ial9saXN0OiBFeGNlcHRQdWJsaWNhdGlvbk9ialNw ZWMKKwkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJCQl8IGV4Y2VwdF9wdWJfb2JqX2xp c3QgJywnIEV4Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYworCQkJCQl7ICQkID0gbGFwcGVuZCgkMSwg JDMpOyB9CisJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC0xMDkxMSw2ICsxMDkz OSw4IEBAIHB1Yl9vYmpfdHlwZV9saXN0OglQdWJsaWNhdGlvbkFsbE9ialNwZWMKICAqCiAgKiBB TFRFUiBQVUJMSUNBVElPTiBuYW1lIFJFU0VUCiAgKgorICogQUxURVIgUFVCTElDQVRJT04gbmFt ZSBBREQgQUxMIFRBQkxFUyBFWENFUFQgW1RBQkxFXSAodGFibGVfbmFtZSBbLCAuLi5dKQorICoK ICAqIHB1Yl9vYmogaXMgb25lIG9mOgogICoKICAqCQlUQUJMRSB0YWJsZV9uYW1lIFssIC4uLl0K QEAgLTEwOTM3LDYgKzEwOTY3LDE1IEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJCQluLT5h Y3Rpb24gPSBBUF9BZGRPYmplY3RzOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJ fCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIEFERF9QIEFMTCBUQUJMRVMgZXhjZXB0X2NsYXVzZQor CQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclB1Ymxp Y2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJbi0+cHVib2JqZWN0cyA9 IChMaXN0ICopICQ3OworCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CisJCQkJCW4tPmFj dGlvbiA9IEFQX0FkZE9iamVjdHM7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJCXwg QUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgcHViX29ial9saXN0CiAJCQkJewogCQkJCQlBbHRl clB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25TdG10KTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmluZGV4IDk0MmUxYWJk YjU4Li5hOTU5M2M1ZDlkYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdv dXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9w Z291dHB1dC5jCkBAIC0yMDg0LDcgKzIwODQsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRw dXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAlpZiAoIWVudHJ5LT5yZXBsaWNhdGVf dmFsaWQpCiAJewogCQlPaWQJCQlzY2hlbWFJZCA9IGdldF9yZWxfbmFtZXNwYWNlKHJlbGlkKTsK LQkJTGlzdAkgICAqcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQpOworCQlM aXN0CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2UpOwor CQlMaXN0CSAgICpleGNlcHRUYWJsZVB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJl bGlkLCB0cnVlKTsKIAogCQkvKgogCQkgKiBXZSBkb24ndCBhY3F1aXJlIGEgbG9jayBvbiB0aGUg bmFtZXNwYWNlIHN5c3RlbSB0YWJsZSBhcyB3ZSBidWlsZApAQCAtMjE5NSwyMiArMjE5Niw2IEBA IGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9u KQogCQkJT2lkCQkJcHViX3JlbGlkID0gcmVsaWQ7CiAJCQlpbnQJCQlhbmNlc3Rvcl9sZXZlbCA9 IDA7CiAKLQkJCS8qCi0JCQkgKiBJZiB0aGlzIGlzIGEgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRp b24sIHBpY2sgdGhlIHBhcnRpdGlvbgotCQkJICogcm9vdCBhbmQgc2V0IHRoZSBhbmNlc3RvciBs ZXZlbCBhY2NvcmRpbmdseS4KLQkJCSAqLwotCQkJaWYgKHB1Yi0+YWxsdGFibGVzKQotCQkJewot CQkJCXB1Ymxpc2ggPSB0cnVlOwotCQkJCWlmIChwdWItPnB1YnZpYXJvb3QgJiYgYW1fcGFydGl0 aW9uKQotCQkJCXsKLQkJCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9hbmNl c3RvcnMocmVsaWQpOwotCi0JCQkJCXB1Yl9yZWxpZCA9IGxsYXN0X29pZChhbmNlc3RvcnMpOwot CQkJCQlhbmNlc3Rvcl9sZXZlbCA9IGxpc3RfbGVuZ3RoKGFuY2VzdG9ycyk7Ci0JCQkJfQotCQkJ fQotCiAJCQlpZiAoIXB1Ymxpc2gpCiAJCQl7CiAJCQkJYm9vbAkJYW5jZXN0b3JfcHVibGlzaGVk ID0gZmFsc2U7CkBAIC0yMjI5LDcgKzIyMTQsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRw dXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJCQlhbmNlc3RvciA9IEdldFRv cE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViLT5vaWQsCiAJCQkJCQkJCQkJCQkJCQkgICBh bmNlc3RvcnMsCi0JCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwpOworCQkJCQkJCQkJCQkJCQkJICAg JmxldmVsLAorCQkJCQkJCQkJCQkJCQkJICAgcHViLT5hbGx0YWJsZXMpOwogCiAJCQkJCWlmIChh bmNlc3RvciAhPSBJbnZhbGlkT2lkKQogCQkJCQl7CkBAIC0yMjQ0LDYgKzIyMzAsOCBAQCBnZXRf cmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAog CQkJCWlmIChsaXN0X21lbWJlcl9vaWQocHViaWRzLCBwdWItPm9pZCkgfHwKIAkJCQkJbGlzdF9t ZW1iZXJfb2lkKHNjaGVtYVB1YmlkcywgcHViLT5vaWQpIHx8CisJCQkJCShwdWItPmFsbHRhYmxl cyAmJgorCQkJCQkgIWxpc3RfbWVtYmVyX29pZChleGNlcHRUYWJsZVB1YmlkcywgcHViLT5vaWQp KSB8fAogCQkJCQlhbmNlc3Rvcl9wdWJsaXNoZWQpCiAJCQkJCXB1Ymxpc2ggPSB0cnVlOwogCQkJ fQpAQCAtMjMyMiw2ICsyMzEwLDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAq ZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJbGlzdF9mcmVlKHB1Ymlkcyk7CiAJCWxpc3Rf ZnJlZShzY2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoZXhjZXB0VGFibGVQdWJpZHMpOwogCQls aXN0X2ZyZWUocmVsX3B1YmxpY2F0aW9ucyk7CiAKIAkJZW50cnktPnJlcGxpY2F0ZV92YWxpZCA9 IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCA5MTVkMGJjOTA4NC4uOTZk ZDBjY2Y0MWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTc5NCw2ICs1Nzk0 LDggQEAgdm9pZAogUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlv biwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogewogCUxpc3QJICAgKnB1Ym9pZHM7CisJTGlz dAkgICAqYWxsdGFibGVzcHVib2lkczsKKwlMaXN0CSAgICpleGNlcHRwdWJvaWRzID0gTklMOwog CUxpc3RDZWxsICAgKmxjOwogCU1lbW9yeUNvbnRleHQgb2xkY3h0OwogCU9pZAkJCXNjaGVtYWlk OwpAQCAtNTgzMSw5ICs1ODMzLDEwIEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVs YXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAlwdWJkZXNjLT5nZW5j b2xzX3ZhbGlkX2Zvcl9kZWxldGUgPSB0cnVlOwogCiAJLyogRmV0Y2ggdGhlIHB1YmxpY2F0aW9u IG1lbWJlcnNoaXAgaW5mby4gKi8KLQlwdWJvaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMo cmVsaWQpOworCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2Up OwogCXNjaGVtYWlkID0gUmVsYXRpb25HZXROYW1lc3BhY2UocmVsYXRpb24pOwogCXB1Ym9pZHMg PSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhz Y2hlbWFpZCkpOworCWV4Y2VwdHB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxp ZCwgdHJ1ZSk7CiAKIAlpZiAocmVsYXRpb24tPnJkX3JlbC0+cmVsaXNwYXJ0aXRpb24pCiAJewpA QCAtNTg0NSwxNCArNTg0OCwxOSBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0 aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCQlPaWQJCQlhbmNlc3Rv ciA9IGxmaXJzdF9vaWQobGMpOwogCiAJCQlwdWJvaWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29p ZChwdWJvaWRzLAotCQkJCQkJCQkJCQkgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3Ip KTsKKwkJCQkJCQkJCQkJIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCBmYWxzZSkp OwogCQkJc2NoZW1haWQgPSBnZXRfcmVsX25hbWVzcGFjZShhbmNlc3Rvcik7CiAJCQlwdWJvaWRz ID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChwdWJvaWRzLAogCQkJCQkJCQkJCQkgR2V0U2NoZW1h UHVibGljYXRpb25zKHNjaGVtYWlkKSk7CisJCQlleGNlcHRwdWJvaWRzID0gbGlzdF9jb25jYXRf dW5pcXVlX29pZChleGNlcHRwdWJvaWRzLAorCQkJCQkJCQkJCQkJICAgR2V0UmVsYXRpb25QdWJs aWNhdGlvbnMoYW5jZXN0b3IsIHRydWUpKTsKIAkJfQogCX0KLQlwdWJvaWRzID0gbGlzdF9jb25j YXRfdW5pcXVlX29pZChwdWJvaWRzLCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnMoKSk7CiAKKwlh bGx0YWJsZXNwdWJvaWRzID0gR2V0QWxsVGFibGVzUHVibGljYXRpb25zKCk7CisJcHVib2lkcyA9 IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKKwkJCQkJCQkJCSBsaXN0X2RpZmZlcmVu Y2Vfb2lkKGFsbHRhYmxlc3B1Ym9pZHMsCisJCQkJCQkJCQkJCQkJCSBleGNlcHRwdWJvaWRzKSk7 CiAJZm9yZWFjaChsYywgcHVib2lkcykKIAl7CiAJCU9pZAkJCXB1YmlkID0gbGZpcnN0X29pZChs Yyk7CkBAIC01ODgzLDcgKzU4OTEsNyBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJl bGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCWlmICghcHViZm9y bS0+cHViYWxsdGFibGVzICYmCiAJCQkocHViZm9ybS0+cHVidXBkYXRlIHx8IHB1YmZvcm0tPnB1 YmRlbGV0ZSkgJiYKIAkJCXB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihwdWJpZCwgcmVs YXRpb24sIGFuY2VzdG9ycywKLQkJCQkJCQkJCQkgICBwdWJmb3JtLT5wdWJ2aWFyb290KSkKKwkJ CQkJCQkJCQkgICBwdWJmb3JtLT5wdWJ2aWFyb290LCBwdWJmb3JtLT5wdWJhbGx0YWJsZXMpKQog CQl7CiAJCQlpZiAocHViZm9ybS0+cHVidXBkYXRlKQogCQkJCXB1YmRlc2MtPnJmX3ZhbGlkX2Zv cl91cGRhdGUgPSBmYWxzZTsKQEAgLTU5MDEsNiArNTkwOSw3IEBAIFJlbGF0aW9uQnVpbGRQdWJs aWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykK IAkJCXB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihwdWJpZCwgcmVsYXRpb24sIGFuY2VzdG9y cywKIAkJCQkJCQkJCQlwdWJmb3JtLT5wdWJ2aWFyb290LAogCQkJCQkJCQkJCXB1YmZvcm0tPnB1 YmdlbmNvbHMsCisJCQkJCQkJCQkJcHViZm9ybS0+cHViYWxsdGFibGVzLAogCQkJCQkJCQkJCSZp bnZhbGlkX2NvbHVtbl9saXN0LAogCQkJCQkJCQkJCSZpbnZhbGlkX2dlbl9jb2wpKQogCQl7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYwppbmRleCBhMDA5MThiYWNiNC4uZTM0YWFiYTc5MzcgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAt MTg2LDYgKzE4Niw4IEBAIHN0YXRpYyBTaW1wbGVPaWRMaXN0IGV4dGVuc2lvbl9pbmNsdWRlX29p ZHMgPSB7TlVMTCwgTlVMTH07CiBzdGF0aWMgU2ltcGxlU3RyaW5nTGlzdCBleHRlbnNpb25fZXhj bHVkZV9wYXR0ZXJucyA9IHtOVUxMLCBOVUxMfTsKIHN0YXRpYyBTaW1wbGVPaWRMaXN0IGV4dGVu c2lvbl9leGNsdWRlX29pZHMgPSB7TlVMTCwgTlVMTH07CiAKK3N0YXRpYyBTaW1wbGVQdHJMaXN0 IGV4Y2VwdGluZm8gPSB7TlVMTCwgTlVMTH07CisKIHN0YXRpYyBjb25zdCBDYXRhbG9nSWQgbmls Q2F0YWxvZ0lkID0gezAsIDB9OwogCiAvKiBvdmVycmlkZSBmb3Igc3RhbmRhcmQgZXh0cmFfZmxv YXRfZGlnaXRzIHNldHRpbmcgKi8KQEAgLTQ2NjIsNyArNDY2NCwzNCBAQCBkdW1wUHVibGljYXRp b24oQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpwdWJpbmZvKQogCWlmIChw dWJpbmZvLT5wdWJhbGx0YWJsZXMgJiYgcHViaW5mby0+cHViYWxsc2VxdWVuY2VzKQogCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBGT1IgQUxMIFRBQkxFUywgQUxMIFNFUVVFTkNFUyIp OwogCWVsc2UgaWYgKHB1YmluZm8tPnB1YmFsbHRhYmxlcykKKwl7CisJCVNpbXBsZVB0ckxpc3RD ZWxsICpjZWxsOworCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEZPUiBBTEwgVEFC TEVTIik7CisKKwkJLyogSW5jbHVkZSBleGNlcHRpb24gdGFibGVzIGlmIHRoZSBwdWJsaWNhdGlv biBoYXMgZXhjZXB0IHRhYmxlcyAqLworCQlmb3IgKGNlbGwgPSBleGNlcHRpbmZvLmhlYWQ7IGNl bGw7IGNlbGwgPSBjZWxsLT5uZXh0KQorCQl7CisJCQlQdWJsaWNhdGlvblJlbEluZm8gKnB1YnJp bmZvID0gKFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBjZWxsLT5wdHI7CisJCQlUYWJsZUluZm8gICp0 YmluZm87CisKKwkJCWlmIChwdWJpbmZvID09IHB1YnJpbmZvLT5wdWJsaWNhdGlvbikKKwkJCXsK KwkJCQl0YmluZm8gPSBwdWJyaW5mby0+cHVidGFibGU7CisKKwkJCQlpZiAoZmlyc3QpCisJCQkJ eworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBFWENFUFQgVEFCTEUgKCIpOwor CQkJCQlmaXJzdCA9IGZhbHNlOworCQkJCX0KKwkJCQllbHNlCisJCQkJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LCAiLCAiKTsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIk9OTFkg JXMiLCBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8pKTsKKwkJCX0KKwkJfQorCQlpZiAoIWZp cnN0KQorCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIpIik7CisJfQogCWVsc2UgaWYg KHB1YmluZm8tPnB1YmFsbHNlcXVlbmNlcykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks ICIgRk9SIEFMTCBTRVFVRU5DRVMiKTsKIApAQCAtNDgzMSw2ICs0ODYwLDcgQEAgZ2V0UHVibGlj YXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRh YmxlcykKIAlpbnQJCQlpX3BycmVsaWQ7CiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJaW50CQkJaV9w cmF0dHJzOworCWludAkJCWlfcHJleGNlcHQ7CiAJaW50CQkJaSwKIAkJCQlqLAogCQkJCW50dXBz OwpAQCAtNDg0Miw4ICs0ODcyLDE2IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZv dXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAKIAkvKiBDb2xsZWN0IGFs bCBwdWJsaWNhdGlvbiBtZW1iZXJzaGlwIGluZm8uICovCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNp b24gPj0gMTUwMDAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJ ICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCxcbiIpOworCisJCWlmIChm b3V0LT5yZW1vdGVWZXJzaW9uID49IDE5MDAwMCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1 ZXJ5LCAiIHByZXhjZXB0LFxuIik7CisJCWVsc2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1 ZXJ5LCAiIGZhbHNlIEFTIHByZXhjZXB0LFxuIik7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo cXVlcnksCi0JCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCwg IgogCQkJCQkJCSAicGdfY2F0YWxvZy5wZ19nZXRfZXhwcihwcnF1YWwsIHBycmVsaWQpIEFTIHBy cmVscXVhbCwgIgogCQkJCQkJCSAiKENBU0VcbiIKIAkJCQkJCQkgIiAgV0hFTiBwci5wcmF0dHJz IElTIE5PVCBOVUxMIFRIRU5cbiIKQEAgLTQ4NTQsNiArNDg5Miw3IEBAIGdldFB1YmxpY2F0aW9u VGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMp CiAJCQkJCQkJICIgICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9 IHByYXR0cnNbc10pXG4iCiAJCQkJCQkJICIgIEVMU0UgTlVMTCBFTkQpIHByYXR0cnMgIgogCQkJ CQkJCSAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciIpOworCX0KIAllbHNl CiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lk LCBvaWQsIHBycHViaWQsIHBycmVsaWQsICIKQEAgLTQ4NjksNiArNDkwOCw3IEBAIGdldFB1Ymxp Y2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1U YWJsZXMpCiAJaV9wcnJlbGlkID0gUFFmbnVtYmVyKHJlcywgInBycmVsaWQiKTsKIAlpX3BycmVs cXVhbCA9IFBRZm51bWJlcihyZXMsICJwcnJlbHF1YWwiKTsKIAlpX3ByYXR0cnMgPSBQUWZudW1i ZXIocmVzLCAicHJhdHRycyIpOworCWlfcHJleGNlcHQgPSBQUWZudW1iZXIocmVzLCAicHJleGNl cHQiKTsKIAogCS8qIHRoaXMgYWxsb2NhdGlvbiBtYXkgYmUgbW9yZSB0aGFuIHdlIG5lZWQgKi8K IAlwdWJyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihQdWJsaWNhdGlvblJlbEluZm8p KTsKQEAgLTQ4ODAsNiArNDkyMCw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZv dXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCU9pZAkJCXBycmVsaWQg PSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJyZWxpZCkpOwogCQlQdWJsaWNhdGlvbklu Zm8gKnB1YmluZm87CiAJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKwkJY2hhcgkgICAqcHJleGNlcHQg PSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJleGNlcHQpKTsKIAogCQkvKgogCQkg KiBJZ25vcmUgYW55IGVudHJpZXMgZm9yIHdoaWNoIHdlIGFyZW4ndCBpbnRlcmVzdGVkIGluIGVp dGhlciB0aGUKQEAgLTQ4OTMsNyArNDkzNCwxMSBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNo aXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkJY29udGlu dWU7CiAKIAkJLyogT0ssIG1ha2UgYSBEdW1wYWJsZU9iamVjdCBmb3IgdGhpcyByZWxhdGlvbnNo aXAgKi8KLQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOwor CQlpZiAoc3RyY21wKHByZXhjZXB0LCAiZiIpID09IDApCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9i alR5cGUgPSBET19QVUJMSUNBVElPTl9SRUw7CisJCWVsc2UKKwkJCXB1YnJpbmZvW2pdLmRvYmou b2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw7CisKIAkJcHVicmluZm9bal0uZG9i ai5jYXRJZC50YWJsZW9pZCA9CiAJCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVv aWQpKTsKIAkJcHVicmluZm9bal0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfb2lkKSk7CkBAIC00OTM0LDYgKzQ5NzksOSBAQCBnZXRQdWJsaWNhdGlvblRhYmxl cyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkv KiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFibGVQ dWJsaWNhdGlvbk9iamVjdCgmKHB1YnJpbmZvW2pdLmRvYmopLCBmb3V0KTsKIAorCQlpZiAoc3Ry Y21wKHByZXhjZXB0LCAidCIpID09IDApCisJCQlzaW1wbGVfcHRyX2xpc3RfYXBwZW5kKCZleGNl cHRpbmZvLCAmcHVicmluZm9bal0pOworCiAJCWorKzsKIAl9CiAKQEAgLTExODEyLDYgKzExODYw LDkgQEAgZHVtcER1bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpk b2JqKQogCQljYXNlIERPX1BVQkxJQ0FUSU9OOgogCQkJZHVtcFB1YmxpY2F0aW9uKGZvdXQsIChj b25zdCBQdWJsaWNhdGlvbkluZm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2FzZSBET19QVUJM SUNBVElPTl9FWENFUFRfUkVMOgorCQkJLyogd2lsbCBiZSBkdW1wZWQgaW4gZHVtcFB1YmxpY2F0 aW9uICovCisJCQlicmVhazsKIAkJY2FzZSBET19QVUJMSUNBVElPTl9SRUw6CiAJCQlkdW1wUHVi bGljYXRpb25UYWJsZShmb3V0LCAoY29uc3QgUHVibGljYXRpb25SZWxJbmZvICopIGRvYmopOwog CQkJYnJlYWs7CkBAIC0yMDE4Miw2ICsyMDIzMyw3IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVz KER1bXBhYmxlT2JqZWN0ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19ERUZBVUxU X0FDTDoKIAkJCWNhc2UgRE9fUE9MSUNZOgogCQkJY2FzZSBET19QVUJMSUNBVElPTjoKKwkJCWNh c2UgRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVM OgogCQkJY2FzZSBET19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUE6CiAJCQljYXNlIERPX1NV QlNDUklQVElPTjoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDcyYTAwZTFiYzIwLi43MjNiNTU3NWM1MyAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oCkBAIC04MSw2ICs4MSw3IEBAIHR5cGVkZWYgZW51bQogCURPX1JFRlJFU0hfTUFU VklFVywKIAlET19QT0xJQ1ksCiAJRE9fUFVCTElDQVRJT04sCisJRE9fUFVCTElDQVRJT05fRVhD RVBUX1JFTCwKIAlET19QVUJMSUNBVElPTl9SRUwsCiAJRE9fUFVCTElDQVRJT05fVEFCTEVfSU5f U0NIRU1BLAogCURPX1JFTF9TVEFUUywKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCAxNjRjNzZl MDg2NC4uZjNjMzBmM2JlMzcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3Nv cnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTkyLDYgKzkyLDcg QEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19GS19DT05TVFJBSU5ULAogCVBS SU9fUE9MSUNZLAogCVBSSU9fUFVCTElDQVRJT04sCisJUFJJT19QVUJMSUNBVElPTl9FWENFUFRf UkVMLAogCVBSSU9fUFVCTElDQVRJT05fUkVMLAogCVBSSU9fUFVCTElDQVRJT05fVEFCTEVfSU5f U0NIRU1BLAogCVBSSU9fU1VCU0NSSVBUSU9OLApAQCAtMTQ3LDYgKzE0OCw3IEBAIHN0YXRpYyBj b25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJW0RPX1JFRlJFU0hfTUFUVklFV10g PSBQUklPX1JFRlJFU0hfTUFUVklFVywKIAlbRE9fUE9MSUNZXSA9IFBSSU9fUE9MSUNZLAogCVtE T19QVUJMSUNBVElPTl0gPSBQUklPX1BVQkxJQ0FUSU9OLAorCVtET19QVUJMSUNBVElPTl9FWENF UFRfUkVMXSA9IFBSSU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlbRE9fUFVCTElDQVRJT05f UkVMXSA9IFBSSU9fUFVCTElDQVRJT05fUkVMLAogCVtET19QVUJMSUNBVElPTl9UQUJMRV9JTl9T Q0hFTUFdID0gUFJJT19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEsCiAJW0RPX1JFTF9TVEFU U10gPSBQUklPX1NUQVRJU1RJQ1NfREFUQV9EQVRBLApAQCAtNDQzLDYgKzQ0NSwxNyBAQCBET1R5 cGVOYW1lQ29tcGFyZShjb25zdCB2b2lkICpwMSwgY29uc3Qgdm9pZCAqcDIpCiAJCWlmIChjbXB2 YWwgIT0gMCkKIAkJCXJldHVybiBjbXB2YWw7CiAJfQorCWVsc2UgaWYgKG9iajEtPm9ialR5cGUg PT0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCkKKwl7CisJCVB1YmxpY2F0aW9uUmVsSW5mbyAq cHJvYmoxID0gKihQdWJsaWNhdGlvblJlbEluZm8gKmNvbnN0ICopIHAxOworCQlQdWJsaWNhdGlv blJlbEluZm8gKnByb2JqMiA9ICooUHVibGljYXRpb25SZWxJbmZvICpjb25zdCAqKSBwMjsKKwor CQkvKiBTb3J0IGJ5IHB1YmxpY2F0aW9uIG5hbWUsIHNpbmNlIChuYW1lc3BhY2UsIG5hbWUpIG1h dGNoIHRoZSByZWwgKi8KKwkJY21wdmFsID0gc3RyY21wKHByb2JqMS0+cHVibGljYXRpb24tPmRv YmoubmFtZSwKKwkJCQkJCXByb2JqMi0+cHVibGljYXRpb24tPmRvYmoubmFtZSk7CisJCWlmIChj bXB2YWwgIT0gMCkKKwkJCXJldHVybiBjbXB2YWw7CisJfQogCWVsc2UgaWYgKG9iajEtPm9ialR5 cGUgPT0gRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BKQogCXsKIAkJUHVibGljYXRpb25T Y2hlbWFJbmZvICpwc29iajEgPSAqKFB1YmxpY2F0aW9uU2NoZW1hSW5mbyAqY29uc3QgKikgcDE7 CkBAIC0xNzE1LDYgKzE3MjgsMTEgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9i amVjdCAqb2JqLCBjaGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIlBVQkxJQ0FUSU9OIChJ RCAlZCBPSUQgJXUpIiwKIAkJCQkJIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQly ZXR1cm47CisJCWNhc2UgRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCXNucHJpbnRmKGJ1 ZiwgYnVmc2l6ZSwKKwkJCQkJICJQVUJMSUNBVElPTiBFWENFUFQgVEFCTEUgKElEICVkIE9JRCAl dSkiLAorCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKIAkJ Y2FzZSBET19QVUJMSUNBVElPTl9SRUw6CiAJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCiAJCQkJ CSAiUFVCTElDQVRJT04gVEFCTEUgKElEICVkIE9JRCAldSkiLApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVt cC5wbAppbmRleCA0NDVhNTQxYWJmNi4uMTU2MzE5YjgwMzggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsCkBAIC0zMTcwLDYgKzMxNzAsMjYgQEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+IHsg JWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NSRUFURSBQ VUJMSUNBVElPTiBwdWI4JyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MCwKKwkJY3JlYXRlX3Nx bCA9PgorCQkgICdDUkVBVEUgUFVCTElDQVRJT04gcHViOCBGT1IgQUxMIFRBQkxFUyBFWENFUFQg KGR1bXBfdGVzdC50ZXN0X3RhYmxlKTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUg UFVCTElDQVRJT04gcHViOCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKE9OTFkgZHVtcF90 ZXN0LnRlc3RfdGFibGUpIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwg dHJ1bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9w b3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCisJJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI5JyA9PiB7 CisJCWNyZWF0ZV9vcmRlciA9PiA1MCwKKwkJY3JlYXRlX3NxbCA9PgorCQkgICdDUkVBVEUgUFVC TElDQVRJT04gcHViOSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKGR1bXBfdGVzdC50ZXN0 X3RhYmxlLCBkdW1wX3Rlc3QudGVzdF9zZWNvbmRfdGFibGUpOycsCisJCXJlZ2V4cCA9PiBxci9e CisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWI5IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJM RSAoT05MWSBkdW1wX3Rlc3QudGVzdF90YWJsZSwgT05MWSBkdW1wX3Rlc3QudGVzdF9zZWNvbmRf dGFibGUpIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUn KTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEg PT4gMSwgfSwKKwl9LAorCiAJJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMScgPT4gewogCQljcmVh dGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3Vi MQpAQCAtNTE1Nyw3ICs1MTc3LDcgQEAgZm9yZWFjaCBteSAkcnVuIChzb3J0IGtleXMgJXBnZHVt cF9ydW5zKQogCQkjCiAJCSMgRWl0aGVyICJhbGxfcnVucyIgc2hvdWxkIGJlIHNldCBvciB0aGVy ZSBzaG91bGQgYmUgYSAibGlrZSIgbGlzdCwKIAkJIyBldmVuIGlmIGl0IGlzIGVtcHR5LiAgKFRo aXMgbWFrZXMgdGhlIHRlc3QgbW9yZSBzZWxmLWRvY3VtZW50aW5nLikKLQkJaWYgKCFkZWZpbmVk KCR0ZXN0c3skdGVzdH0tPnthbGxfcnVuc30pCisJCWlmICggICAhZGVmaW5lZCgkdGVzdHN7JHRl c3R9LT57YWxsX3J1bnN9KQogCQkJJiYgIWRlZmluZWQoJHRlc3RzeyR0ZXN0fS0+e2xpa2V9KSkK IAkJewogCQkJZGllICJtaXNzaW5nIFwibGlrZVwiIGluIHRlc3QgXCIkdGVzdFwiIjsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMK aW5kZXggMzZmMjQ1MDI4NDIuLjUwYjFkNDM1MzU5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMzA3MywxNyArMzA3 MywzNCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAog CQkJCQkJCQkgICIgICAgICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRu dW0gPSBwcmF0dHJzW3NdKVxuIgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIK IAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJ ICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0g cHIucHJwdWJpZFxuIgotCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBj IE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0g JyVzJ1xuIgorCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwg cHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9n LnBnX2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHBy LnBycmVsaWQgPSAnJXMnXG4iLAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOworCisJCQkJaWYg KHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVm LCAiIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOworCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1 ZiwKIAkJCQkJCQkJICAiVU5JT05cbiIKIAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKLQkJ CQkJCQkJICAiICAgICAsIE5VTExcbiIKLQkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJ CQkJICAiCQksIE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiRlJP TSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiV0hFUkUgcC5wdWJh bGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylc biIKLQkJCQkJCQkJICAiT1JERVIgQlkgMTsiLAotCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9p ZCk7CisJCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3Jl bGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iLAorCQkJCQkJCQkgIG9pZCk7CisKKwkJCQlp ZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYs CisJCQkJCQkJCQkgICIgICAgIEFORCBOT1QgRVhJU1RTIChcbiIKKwkJCQkJCQkJCSAgIgkJU0VM RUNUIDFcbiIKKwkJCQkJCQkJCSAgIgkJRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3Jl bCBwclxuIgorCQkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGNcbiIKKwkJ CQkJCQkJCSAgIgkJT04gcHIucHJyZWxpZCA9IHBjLm9pZFxuIgorCQkJCQkJCQkJICAiCQlXSEVS RSBwci5wcnJlbGlkID0gJyVzJyBBTkQgcHIucHJwdWJpZCA9IHAub2lkKVxuIiwKKwkJCQkJCQkJ CSAgb2lkKTsKKworCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxOyIp OwogCQkJfQogCQkJZWxzZQogCQkJewpAQCAtNjc1Myw4ICs2NzcwLDEyIEBAIGRlc2NyaWJlUHVi bGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCQkJICAiICAgICBwZ19jYXRhbG9n LnBnX3B1YmxpY2F0aW9uX3JlbCBwclxuIgogCQkJCQkJCSAgIldIRVJFIGMucmVsbmFtZXNwYWNl ID0gbi5vaWRcbiIKIAkJCQkJCQkgICIgIEFORCBjLm9pZCA9IHByLnBycmVsaWRcbiIKLQkJCQkJ CQkgICIgIEFORCBwci5wcnB1YmlkID0gJyVzJ1xuIgotCQkJCQkJCSAgIk9SREVSIEJZIDEsMiIs IHB1YmlkKTsKKwkJCQkJCQkgICIgIEFORCBwci5wcnB1YmlkID0gJyVzJ1xuIiwgcHViaWQpOwor CisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwgIiAgQU5EIE5PVCBwci5wcmV4Y2VwdFxuIik7CisKKwkJCWFwcGVuZFBRRXhwQnVmZmVy KCZidWYsICJPUkRFUiBCWSAxLDIiKTsKIAkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRl c2MoJmJ1ZiwgXygiVGFibGVzOiIpLCBmYWxzZSwgJmNvbnQpKQogCQkJCWdvdG8gZXJyb3JfcmV0 dXJuOwogCkBAIC02NzcyLDYgKzY3OTMsMjMgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3Qg Y2hhciAqcGF0dGVybikKIAkJCQkJZ290byBlcnJvcl9yZXR1cm47CiAJCQl9CiAJCX0KKwkJZWxz ZQorCQl7CisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJCQl7CisJCQkJLyogR2V0 IHRoZSBleGNsdWRlZCB0YWJsZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljYXRpb24gKi8KKwkJ CQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1QgY29uY2F0KGMucmVs bmFtZXNwYWNlOjpyZWduYW1lc3BhY2UsICcuJywgYy5yZWxuYW1lKVxuIgorCQkJCQkJCQkgICJG Uk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0 YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJ CQkJCSAgIldIRVJFIHByLnBycHViaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIiAgQU5EIHByLnBy ZXhjZXB0XG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJCQkJaWYgKCFhZGRG b290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJFeGNlcHQgdGFibGVzOiIpLAorCQkJCQkJ CQkJCQkJdHJ1ZSwgJmNvbnQpKQorCQkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJCX0KKwkJfQog CiAJCXByaW50VGFibGUoJmNvbnQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxl KTsKIAkJcHJpbnRUYWJsZUNsZWFudXAoJmNvbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4 IGQxNjE4MWJjMTE1Li5jNWM4ZTZlODUzNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjI5 MSwxMSArMjI5MSwxNiBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJ Q09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlJF U0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8KIAllbHNl IGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIikpCi0J CUNPTVBMRVRFX1dJVEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKKwkJQ09NUExFVEVf V0lUSCgiQUxMIFRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJZWxzZSBp ZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwi LCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVsc2UgaWYg KE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRB QkxFIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Rh Ymxlcyk7Ci0JZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYKLQkJCSBlbmRzX3dpdGgocHJldl93ZCwgJywn KSkKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi QUREIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikpCisJCUNPTVBMRVRFX1dJ VEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVh ZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRB QkxFIikgJiYgZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1B X1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVhZE1hdGNoZXMo IkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIs ICJFWENFUFQiLCAiVEFCTEUiKSAmJiBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKIAkJQ09NUExF VEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKIAogCS8qCkBA IC0zNjIyLDYgKzM2MjcsMTAgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQs CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJG T1IiLCAiQUxMIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiKTsKIAll bHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIs ICJBTEwiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIsICJXSVRI ICgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFu eSwgIkZPUiIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIpKQorCQlDT01QTEVURV9XSVRIKCJU QUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIiwgTWF0Y2hBbnkp ICYmICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKIAkJQ09NUExFVEVfV0lUSCgiV0lUSCAoIik7 CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJG T1IiLCAiVEFCTEVTIikpCiAJCUNPTVBMRVRFX1dJVEgoIklOIFNDSEVNQSIpOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5oCmluZGV4IDIyZjQ4YmI4OTc1Li45YTA3MjE1YWUzMCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaApAQCAtMTQ2LDExICsxNDYsMTIgQEAgdHlw ZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25SZWxJbmZvCiAJUmVsYXRpb24JcmVsYXRpb247CiAJTm9k ZQkgICAqd2hlcmVDbGF1c2U7CiAJTGlzdAkgICAqY29sdW1uczsKKwlib29sCQlleGNlcHQ7CiB9 IFB1YmxpY2F0aW9uUmVsSW5mbzsKIAogZXh0ZXJuIFB1YmxpY2F0aW9uICpHZXRQdWJsaWNhdGlv bihPaWQgcHViaWQpOwogZXh0ZXJuIFB1YmxpY2F0aW9uICpHZXRQdWJsaWNhdGlvbkJ5TmFtZShj b25zdCBjaGFyICpwdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwotZXh0ZXJuIExpc3QgKkdldFJl bGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCk7CitleHRlcm4gTGlzdCAqR2V0UmVsYXRpb25Q dWJsaWNhdGlvbnMoT2lkIHJlbGlkLCBib29sIGV4Y2VwdF9mbGFnKTsKIAogLyotLS0tLS0tLS0K ICAqIEV4cGVjdGVkIHZhbHVlcyBmb3IgcHViX3BhcnRvcHQgcGFyYW1ldGVyIG9mIEdldFB1Ymxp Y2F0aW9uUmVsYXRpb25zKCksCkBAIC0xNjgsOSArMTY5LDEwIEBAIHR5cGVkZWYgZW51bSBQdWJs aWNhdGlvblBhcnRPcHQKIAlQVUJMSUNBVElPTl9QQVJUX0FMTCwKIH0gUHVibGljYXRpb25QYXJ0 T3B0OwogCi1leHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQ dWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpOworZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0 aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAor CQkJCQkJCQkJIGJvb2wgZXhjZXB0X2ZsYWcpOwogZXh0ZXJuIExpc3QgKkdldEFsbFRhYmxlc1B1 YmxpY2F0aW9ucyh2b2lkKTsKLWV4dGVybiBMaXN0ICpHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9u cyhjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9vdCk7CitleHRlcm4gTGlzdCAqR2V0QWxsUHVi bGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9v dCk7CiBleHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25TY2hlbWFzKE9pZCBwdWJpZCk7CiBleHRl cm4gTGlzdCAqR2V0U2NoZW1hUHVibGljYXRpb25zKE9pZCBzY2hlbWFpZCk7CiBleHRlcm4gTGlz dCAqR2V0U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLApAQCAtMTgxLDcg KzE4Myw3IEBAIGV4dGVybiBMaXN0ICpHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMoTGlz dCAqcmVzdWx0LAogCQkJCQkJCQkJCQlQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCiAJ CQkJCQkJCQkJCU9pZCByZWxpZCk7CiBleHRlcm4gT2lkCUdldFRvcE1vc3RBbmNlc3RvckluUHVi bGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJCQkJCQlpbnQgKmFu Y2VzdG9yX2xldmVsKTsKKwkJCQkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCwgYm9vbCBwdWJh bGx0YWJsZXMpOwogCiBleHRlcm4gYm9vbCBpc19wdWJsaXNoYWJsZV9yZWxhdGlvbihSZWxhdGlv biByZWwpOwogZXh0ZXJuIGJvb2wgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAppbmRleCA5MmNjMzZkZmRmNi4u ZTdkN2YzYmE4NWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRp b25fcmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaApA QCAtMzEsNiArMzEsNyBAQCBDQVRBTE9HKHBnX3B1YmxpY2F0aW9uX3JlbCw2MTA2LFB1YmxpY2F0 aW9uUmVsUmVsYXRpb25JZCkKIAlPaWQJCQlvaWQ7CQkJLyogb2lkICovCiAJT2lkCQkJcHJwdWJp ZCBCS0lfTE9PS1VQKHBnX3B1YmxpY2F0aW9uKTsgLyogT2lkIG9mIHRoZSBwdWJsaWNhdGlvbiAq LwogCU9pZAkJCXBycmVsaWQgQktJX0xPT0tVUChwZ19jbGFzcyk7CS8qIE9pZCBvZiB0aGUgcmVs YXRpb24gKi8KKwlib29sCQlwcmV4Y2VwdCBCS0lfREVGQVVMVChmKTsJLyogZXhjbHVkZSB0aGUg cmVsYXRpb24gKi8KIAogI2lmZGVmCUNBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3Ro IGZpZWxkcyBzdGFydCBoZXJlICovCiAJcGdfbm9kZV90cmVlIHBycXVhbDsJCS8qIHF1YWxpZmlj YXRpb25zICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCmluZGV4IGY5MGNm MWVmODk2Li4wYWQ1ZDI4NzU0ZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmgKQEAgLTMyLDEwICszMiwxMSBAQCBleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlclB1YmxpY2F0 aW9uT3duZXIoY29uc3QgY2hhciAqbmFtZSwgT2lkIG5ld093bmVySWQpOwogZXh0ZXJuIHZvaWQg QWx0ZXJQdWJsaWNhdGlvbk93bmVyX29pZChPaWQgcHViaWQsIE9pZCBuZXdPd25lcklkKTsKIGV4 dGVybiB2b2lkIEludmFsaWRhdGVQdWJsaWNhdGlvblJlbHMoTGlzdCAqcmVsaWRzKTsKIGV4dGVy biBib29sIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9u IHJlbGF0aW9uLAotCQkJCQkJCQkJCSAgIExpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290 KTsKKwkJCQkJCQkJCQkgICBMaXN0ICphbmNlc3RvcnMsIGJvb2wgcHVidmlhcm9vdCwKKwkJCQkJ CQkJCQkgICBib29sIHB1YmFsbHRhYmxlcyk7CiBleHRlcm4gYm9vbCBwdWJfY29udGFpbnNfaW52 YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwKIAkJCQkJCQkJCQlMaXN0 ICphbmNlc3RvcnMsIGJvb2wgcHVidmlhcm9vdCwKLQkJCQkJCQkJCQljaGFyIHB1YmdlbmNvbHNf dHlwZSwKKwkJCQkJCQkJCQljaGFyIHB1YmdlbmNvbHNfdHlwZSwgYm9vbCBwdWJhbGx0YWJsZXMs CiAJCQkJCQkJCQkJYm9vbCAqaW52YWxpZF9jb2x1bW5fbGlzdCwKIAkJCQkJCQkJCQlib29sICpp bnZhbGlkX2dlbl9jb2wpOwogZXh0ZXJuIHZvaWQgSW52YWxpZGF0ZVB1YlJlbFN5bmNDYWNoZShP aWQgcHViaWQsIGJvb2wgcHViYWxsdGFibGVzKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA3 NzhlZjAzOWQ4Ni4uMzA1YzI0NmVhMDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQyNzEs NiArNDI3MSw3IEBAIHR5cGVkZWYgc3RydWN0IFB1YmxpY2F0aW9uVGFibGUKIAlSYW5nZVZhciAg ICpyZWxhdGlvbjsJCS8qIHJlbGF0aW9uIHRvIGJlIHB1Ymxpc2hlZCAqLwogCU5vZGUJICAgKndo ZXJlQ2xhdXNlOwkvKiBxdWFsaWZpY2F0aW9ucyAqLwogCUxpc3QJICAgKmNvbHVtbnM7CQkvKiBM aXN0IG9mIGNvbHVtbnMgaW4gYSBwdWJsaWNhdGlvbiB0YWJsZSAqLworCWJvb2wJCWV4Y2VwdDsJ CQkvKiBleGNsdWRlIHRoZSByZWxhdGlvbiAqLwogfSBQdWJsaWNhdGlvblRhYmxlOwogCiAvKgpA QCAtNDI3OSw2ICs0MjgwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJsZQogdHlw ZWRlZiBlbnVtIFB1YmxpY2F0aW9uT2JqU3BlY1R5cGUKIHsKIAlQVUJMSUNBVElPTk9CSl9UQUJM RSwJCS8qIEEgdGFibGUgKi8KKwlQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEUsCS8qIEEgdGFi bGUgdG8gYmUgZXhjbHVkZWQgKi8KIAlQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NIRU1BLAkv KiBBbGwgdGFibGVzIGluIHNjaGVtYSAqLwogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9DVVJf U0NIRU1BLAkvKiBBbGwgdGFibGVzIGluIGZpcnN0IGVsZW1lbnQgb2YKIAkJCQkJCQkJCQkJICog c2VhcmNoX3BhdGggKi8KQEAgLTQzMDcsNiArNDMwOSw3IEBAIHR5cGVkZWYgc3RydWN0IFB1Ymxp Y2F0aW9uQWxsT2JqU3BlYwogewogCU5vZGVUYWcJCXR5cGU7CiAJUHVibGljYXRpb25BbGxPYmpU eXBlIHB1Ym9ianR5cGU7CS8qIHR5cGUgb2YgdGhpcyBwdWJsaWNhdGlvbiBvYmplY3QgKi8KKwlM aXN0ICpleGNlcHRfb2JqZWN0czsJLyogTGlzdCBvZiBwdWJsaWNhdGlvbiBvYmplY3QgdG8gYmUg ZXhjbHVkZWQgKi8KIAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAt MSBpZiB1bmtub3duICovCiB9IFB1YmxpY2F0aW9uQWxsT2JqU3BlYzsKIApAQCAtNDM0Miw2ICs0 MzQ1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQdWJsaWNhdGlvblN0bXQKIAkgKiBvYmplY3Rz LgogCSAqLwogCUxpc3QJICAgKnB1Ym9iamVjdHM7CQkvKiBPcHRpb25hbCBsaXN0IG9mIHB1Ymxp Y2F0aW9uIG9iamVjdHMgKi8KKwlib29sCQlmb3JfYWxsX3RhYmxlczsgLyogU3BlY2lhbCBwdWJs aWNhdGlvbiBmb3IgYWxsIHRhYmxlcyBpbiBkYiAqLwogCUFsdGVyUHVibGljYXRpb25BY3Rpb24g YWN0aW9uOwkvKiBXaGF0IGFjdGlvbiB0byBwZXJmb3JtIHdpdGggdGhlIGdpdmVuCiAJCQkJCQkJ CQkgKiBvYmplY3RzICovCiB9IEFsdGVyUHVibGljYXRpb25TdG10OwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCBiYjYxNGJhNWQwYS4uMDYyNDY5ZDcyMjAg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC0yMTMsMTMg KzIxMywzNyBAQCBOb3QtbnVsbCBjb25zdHJhaW50czoKICByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAg ICAgICB8IGYgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgogKDEgcm93KQogCitTRVQg Y2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFICh0 ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMik7CistLSBzcGVjaWZ5IEVYQ0VQVCB3aXRob3V0IFRB QkxFCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUx IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAodGVzdHB1Yl90YmwxKTsKK1JFU0VUIGNsaWVudF9taW5f bWVzc2FnZXM7CitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9m b3JhbGx0YWJsZXNfZXhjZXB0dGFibGUKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAg ICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgorICAgICJw dWJsaWMudGVzdHB1Yl90YmwyIgorCitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0 YWJsZTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxCisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5v bmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJf dGJsMSIKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVz dHB1Yl9mb3JfdGJsX3NjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJs ZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxf c2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSwgdGVzdHB1Yl9mb3JhbGx0 YWJsZXNfZXhjZXB0dGFibGUxOwogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsMyAoYSBpbnQpOwog Q1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsM2EgKGIgdGV4dCkgSU5IRVJJVFMgKHRlc3RwdWJfdGJs Myk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1YjMgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMzsKIENSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViNCBGT1IgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFICh0ZXN0cHViX3RibDMpOworQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoT05M WSB0ZXN0cHViX3RibDMpOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3Rw dWIzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViMwpAQCAtMjM4LDggKzI2MiwyNSBAQCBUYWJsZXM6CiBUYWJs ZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCiAKK1xkUnArIHRlc3RwdWI1CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlv biB0ZXN0cHViNQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwg c2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2Vu ZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2Vw dCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCisgICAgInB1YmxpYy50ZXN0cHVi X3RibDNhIgorCitcZFJwKyB0ZXN0cHViNgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjYKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJsaWMu dGVzdHB1Yl90YmwzIgorCiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMywgdGVzdHB1Yl90YmwzYTsK LURST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0OworRFJPUCBQVUJMSUNBVElPTiB0 ZXN0cHViMywgdGVzdHB1YjQsIHRlc3RwdWI1LCB0ZXN0cHViNjsKIC0tLSBUZXN0cyBmb3IgcHVi bGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCiBDUkVBVEUgU0VRVUVOQ0UgcmVncmVzc19wdWJfc2Vx MDsKIENSRUFURSBTRVFVRU5DRSBwdWJfdGVzdC5yZWdyZXNzX3B1Yl9zZXExOwpAQCAtMjAxMiwx MTAgKzIwNTMsMTUwIEBAIERST1AgVEFCTEUgZ2VuY29sczsKIC0tIFRlc3RzIGZvciBBTFRFUiBQ VUJMSUNBVElPTiAuLi4gUkVTRVQKIENSRUFURSBTQ0hFTUEgcHViX3NjaDE7CiBDUkVBVEUgVEFC TEUgcHViX3NjaDEudGJsMSAoYSBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDIgKGEg aW50KTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOwogUkVTRVQgY2xpZW50X21pbl9tZXNz YWdlczsKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVTJyBwdWJs aWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBF WENFUFQgVEFCTEUgKHB1Yl9zY2gxLnRibDEpOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyBy ZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFt ZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBh bmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZl cmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9yZXNldAotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1u cyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAg ICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAg ICAgICAgfCBmCiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVT RVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAotICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwg VmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCiAoMSByb3cpCiAKKy0tIFNob3VsZCB3 b3JrIG5vdyBhZnRlciByZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAocHViX3NjaDEudGJs MSwgcHViX3NjaDEudGJsMik7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jl c2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5j ZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQg Y29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxl czoKKyAgICAicHViX3NjaDEudGJsMSIKKyAgICAicHViX3NjaDEudGJsMiIKKworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gxLnRibDE7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxF IHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAocHViX3NjaDEudGJsMSk7CitFUlJPUjog IGFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1 bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFn IHNob3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2Np YXRlZC4KK0hJTlQ6ICBVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRo ZSBwdWJsaWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQgYXNzb2NpYXRlZCB0YWJsZXMgYXJlIHJlbW92 ZWQgZnJvbSB0aGUgcHVibGljYXRpb24gYWZ0ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJfcmVzZXQK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX3Jlc2V0Ci0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5z IHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAg IHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwg VHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAg ICAgICB8IGYKIFRhYmxlczoKICAgICAicHViX3NjaDEudGJsMSIKIAogQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIFxkUnArIHRlc3RwdWJfcmVzZXQKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0 Ci0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3Qg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ci0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBB bGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg R2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKICgx IHJvdykKIAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEVTIElOIFND SEVNQSBwdWJsaWM7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxF UyBJTiBTQ0hFTUEnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAocHViX3NjaDEudGJsMSk7CitFUlJPUjogIGFk ZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQg cHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNo b3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRl ZC4KK0hJTlQ6ICBVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBw dWJsaWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQgYXNzb2NpYXRlZCBzY2hlbWFzIGFyZSByZW9tdmVk IGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9yZXNldAotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8 IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8 IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAg ICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJsaWMiCiAKIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9y ZXNldAotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSBy b290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBm CiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNI ID0gJycpOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuIHRoZSAnUFVCTElTSCcgcGFy YW1ldGVyIGRvZXMgbm90IGhhdmUgZGVmYXVsdAorLS0gdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChwdWJfc2NoMS50Ymwx KTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRv IGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwg VEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3Vs ZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQg dG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1l dGVyIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAotICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAg ICAgfCBmICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVz ZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNl cyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBj b2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBm ICAgICAgIHwgZiAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCiAoMSByb3cpCiAKIEFM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9yZXNldAotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1u cyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAg ICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAg ICAgICAgfCBmCiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VU IChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CistLSBDYW4ndCBhZGQgRVhD RVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgZG9l cyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHB1Yl9zY2gxLnRibDEpOworRVJST1I6 ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZh dWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxh ZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29j aWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0 aGUgcHVibGljYXRpb24KIC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9P VCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAot ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRl cyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQot IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IHQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxs IHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdl bmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCB0CiAoMSBy b3cpCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0ZXN0 cHViX3Jlc2V0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9yZXNldAotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0 ZWQgY29sdW1ucyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9u ZSAgICAgICAgICAgICAgfCBmCiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgU0VUIChQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TID0gc3RvcmVkKTsKIC0tIFZlcmlm eSB0aGF0ICdQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIgaXMgcmVzZXQKIFxk UnArIHRlc3RwdWJfcmVzZXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0Ci0gICAgICAgICAgT3duZXIgICAgICAgICAg IHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy IHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IHN0b3JlZCAgICAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9v dCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBzdG9yZWQgICAgICAgICAgICB8IGYKICgxIHJvdykKIAogQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBSRVNFVDsKIFxkUnArIHRlc3RwdWJfcmVzZXQKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0Ci0g ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVz IHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0g cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwg c2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2Vu ZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKICgxIHJv dykKIAogLS0gVmVyaWZ5IHRoYXQgb25seSBzdXBlcnVzZXIgY2FuIHJlc2V0IGEgcHVibGljYXRp b24KQEAgLTIxMjMsOSArMjIwNCwxMyBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIyOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsg LS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCiBFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRv IFJFU0VUIHB1YmxpY2F0aW9uCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBjYW4gQURE IEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJM RVM7CitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIEFERCBBTEwgVEFCTEVTIHRvIHRoZSBw dWJsaWNhdGlvbgogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwogRFJPUCBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOworRFJPUCBU QUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiBSRVNFVCBjbGllbnRf bWluX21lc3NhZ2VzOwogLS0gVGVzdCB0aGF0IHRoZSBJTlNFUlQgT04gQ09ORkxJQ1QgY29tbWFu ZCBjb3JyZWN0bHkgY2hlY2tzIFJFUExJQ0EgSURFTlRJVFkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1Ymxp Y2F0aW9uLnNxbAppbmRleCA4Mjk0NjZkOGRlMC4uZjVjNjIzMzhlNzggMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTEwNSwyMCArMTA1LDMzIEBAIFNFTEVDVCBwdWJuYW1l LCBwdWJhbGx0YWJsZXMgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lID0gJ3Rlc3Rw dWJfZm9yYWxsCiBcZCsgdGVzdHB1Yl90YmwyCiBcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlcwog CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFICh0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMik7CistLSBzcGVjaWZ5IEVYQ0VQVCB3aXRo b3V0IFRBQkxFCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0 dGFibGUxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAodGVzdHB1Yl90YmwxKTsKK1JFU0VUIGNsaWVu dF9taW5fbWVzc2FnZXM7CisKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxl CitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKwogRFJPUCBUQUJMRSB0 ZXN0cHViX3RibDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0 cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJsX3NjaGVtYTsK K0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUs IHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hLCB0ZXN0cHViX2ZvcmFs bHRhYmxlc19leGNlcHR0YWJsZSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxOwog CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1 Yl90YmwzYSAoYiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWlu X21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFC TEUgdGVzdHB1Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBP TkxZIHRlc3RwdWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRB QkxFUyBFWENFUFQgVEFCTEUgKHRlc3RwdWJfdGJsMyk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1YjYgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChPTkxZIHRlc3RwdWJfdGJsMyk7CiBS RVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1YjMKIFxkUnArIHRlc3RwdWI0 CitcZFJwKyB0ZXN0cHViNQorXGRScCsgdGVzdHB1YjYKIAogRFJPUCBUQUJMRSB0ZXN0cHViX3Ri bDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNDsK K0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0ZXN0cHViNSwgdGVzdHB1YjY7 CiAKIC0tLSBUZXN0cyBmb3IgcHVibGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCiBDUkVBVEUgU0VR VUVOQ0UgcmVncmVzc19wdWJfc2VxMDsKQEAgLTEyNzEsMTcgKzEyODQsMzAgQEAgRFJPUCBUQUJM RSBnZW5jb2xzOwogLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAogQ1JF QVRFIFNDSEVNQSBwdWJfc2NoMTsKIENSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7 CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMiAoYSBpbnQpOwogU0VUIGNsaWVudF9taW5fbWVz c2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFM TCBUQUJMRVM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogCistLSBDYW4ndCBhZGQgRVhD RVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUycgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChwdWJfc2NoMS50 YmwxKTsKKwogLS0gVmVyaWZ5IHRoYXQgJ0FMTCBUQUJMRVMnIGZsYWcgaXMgcmVzZXQKIFxkUnAr IHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBc ZFJwKyB0ZXN0cHViX3Jlc2V0CiAKKy0tIFNob3VsZCB3b3JrIG5vdyBhZnRlciByZXNldHRpbmcg dGhlIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwg VEFCTEVTIEVYQ0VQVCBUQUJMRSAocHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMik7CitcZFJw KyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 CisKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gxLnRi bDE7CiAKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRp b24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBU IFRBQkxFIChwdWJfc2NoMS50YmwxKTsKKwogLS0gVmVyaWZ5IHRoYXQgYXNzb2NpYXRlZCB0YWJs ZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGljYXRpb24gYWZ0ZXIgUkVTRVQKIFxkUnArIHRl c3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0x Mjg5LDYgKzEzMTUsOSBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwog CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1 YmxpYzsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMgSU4g U0NIRU1BJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQg QUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHB1Yl9zY2gxLnRibDEpOworCiAtLSBWZXJpZnkgdGhh dCBhc3NvY2lhdGVkIHNjaGVtYXMgYXJlIHJlb212ZWQgZnJvbSB0aGUgcHVibGljYXRpb24gYWZ0 ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgUkVTRVQ7CkBAIC0xMjk2LDYgKzEzMjUsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBSRVNFVDsKIAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQg KFBVQkxJU0ggPSAnJyk7CiAKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgd2hlbiB0aGUgJ1BV QkxJU0gnIHBhcmFtZXRlciBkb2VzIG5vdCBoYXZlIGRlZmF1bHQKKy0tIHZhbHVlCitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAocHVi X3NjaDEudGJsMSk7CisKIC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJhbWV0ZXIgaXMgcmVz ZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg UkVTRVQ7CkBAIC0xMzAzLDYgKzEzMzYsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBSRVNFVDsKIAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJ U0hfVklBX1BBUlRJVElPTl9ST09UID0gJ3RydWUnKTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBU QUJMRSB3aGVuICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGRvZXMgbm90 CistLSBoYXZlIGRlZmF1bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg QUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChwdWJfc2NoMS50YmwxKTsKKwogLS0gVmVyaWZ5 IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgaXMgcmVzZXQKIFxk UnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 CkBAIC0xMzE5LDEwICsxMzU2LDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg UkVTRVQ7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlcjI7CiBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwog QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUg c3VwZXJ1c2VyCisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiBBREQgQUxMIFRB QkxFUworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKIFNF VCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKIAogRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2No MS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKaW5kZXggODVkMTBhODk5OTQuLmI4ZTVjNTRj MzE0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKKysrIGIv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCkBAIC00Niw2ICs0Niw3IEBAIHRlc3Rz ICs9IHsKICAgICAgICd0LzAzNF90ZW1wb3JhbC5wbCcsCiAgICAgICAndC8wMzVfY29uZmxpY3Rz LnBsJywKICAgICAgICd0LzAzNl9zZXF1ZW5jZXMucGwnLAorICAgICAgJ3QvMDM3X3JlcF9jaGFu Z2VzX2V4Y2VwdF90YWJsZS5wbCcsCiAgICAgICAndC8xMDBfYnVncy5wbCcsCiAgICAgXSwKICAg fSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19yZXBfY2hhbmdlc19l eGNlcHRfdGFibGUucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfcmVwX2NoYW5nZXNf ZXhjZXB0X3RhYmxlLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4w OTZlMDYwNjM2NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz N19yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKQEAgLTAsMCArMSwxODYgQEAKKworIyBDb3B5 cmlnaHQgKGMpIDIwMjEtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAK KworIyBMb2dpY2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZvciBleGNlcHQgdGFibGUgcHVibGljYXRp b25zCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNs dXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKwor IyBJbml0aWFsaXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3Jl U1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5p bml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3Rh cnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBv c3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2Ny aWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3Jp YmVyLT5zdGFydDsKKworIyBUZXN0IHJlcGxpY2F0aW9uIHdpdGggcHVibGljYXRpb25zIGNyZWF0 ZWQgdXNpbmcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFCisjIGNsYXVzZS4KKyMgQ3JlYXRl IHNjaGVtYXMgYW5kIHRhYmxlcyBvbiBwdWJsaXNoZXIKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBTQ0hFTUEgc2NoMTsKKwlDUkVBVEUgVEFC TEUgc2NoMS50YWIxIEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgQVMgYTsKKwlDUkVB VEUgVEFCTEUgcHVibGljLnRhYjEoYSBpbnQpOworKSk7CisKKyMgQ3JlYXRlIHNjaGVtYXMgYW5k IHRhYmxlcyBvbiBzdWJzY3JpYmVyCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bv c3RncmVzJywgcXEoCisJQ1JFQVRFIFNDSEVNQSBzY2gxOworCUNSRUFURSBUQUJMRSBzY2gxLnRh YjEgKGEgaW50KTsKKwlDUkVBVEUgVEFCTEUgcHVibGljLnRhYjEgKGEgaW50KTsKKykpOworCisj IFNldHVwIGxvZ2ljYWwgcmVwbGljYXRpb24KK215ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2Rl X3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3Nj aGVtYSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHNjaDEudGFiMSkiCispOworCiskbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElP TiB0YXBfc3ViX3NjaGVtYSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FU SU9OIHRhcF9wdWJfc2NoZW1hIgorKTsKKworIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMg dG8gZmluaXNoCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygk bm9kZV9wdWJsaXNoZXIsCisJJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyMgQ2hlY2sgdGhlIHRhYmxl IGRhdGEgZG9lcyBub3Qgc3luYyBmb3IgZXhjbHVkZWQgdGFibGUKK215ICRyZXN1bHQgPSAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBt aW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwKKwkn Y2hlY2sgdGhlcmUgaXMgbm8gaW5pdGlhbCBkYXRhIGNvcGllZCBmb3IgdGhlIGV4Y2x1ZGVkIHRh YmxlJyk7CisKKyMgSW5zZXJ0IHNvbWUgZGF0YSBhbmQgdmVyaWZ5IHRoYXQgaW5zZXJ0ZWQgZGF0 YSBpcyBub3QgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiSU5TRVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyhnZW5lcmF0ZV9zZXJpZXMoMTEsMjAp KSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1h Jyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMo JHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBvbiBzdWJzY3JpYmVy Jyk7CisKKyMgQWx0ZXIgcHVibGljYXRpb24gdG8gZXhjbHVkZSBkYXRhIGNoYW5nZXMgaW4gcHVi bGljLnRhYjEgYW5kIHZlcmlmeSB0aGF0CisjIHN1YnNjcmliZXIgZG9lcyBub3QgZ2V0IHRoZSBj aGFuZ2VkIGRhdGEgZm9yIHRoaXMgdGFibGUuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgK KwkncG9zdGdyZXMnLCBxcSgKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBSRVNF VDsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBBREQgQUxMIFRBQkxFUyBFWENF UFQgVEFCTEUgKHNjaDEudGFiMSwgcHVibGljLnRhYjEpOworCUlOU0VSVCBJTlRPIHB1YmxpYy50 YWIxIFZBTFVFUyhnZW5lcmF0ZV9zZXJpZXMoMSwxMCkpOworKSk7Ciskbm9kZV9wdWJsaXNoZXIt PndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4o YSksIG1heChhKSBGUk9NIHB1YmxpYy50YWIxIik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hl Y2sgcm93cyBvbiBzdWJzY3JpYmVyIGNhdGNodXAnKTsKKworIyBjbGVhbnVwCiskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViX3Nj aGVtYSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNV QlNDUklQVElPTiB0YXBfc3ViX3NjaGVtYSIpOworCisKKyMgQ2hlY2sgYmVoYXZpb3VyIG9mIHB1 Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IGFuZCBFWENFUFQgY2xhdXNlIHdpdGgKKyMgcGFydGl0 aW9uZWQgdGFibGUgb3IgcGFydGlpdGlvbnMgb2YgcGFydGl0aW9uZWQgdGFibGUuCiskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgVEFCTEUgc2No MS50MShhIGludCkgUEFSVElUSU9OIEJZIFJBTkdFKGEpOworCUNSRUFURSBUQUJMRSBzY2gxLnBh cnQxIFBBUlRJVElPTiBPRiBzY2gxLnQxIEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDUpOworCUlO U0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgxKTsKKykpOworCiskbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFRBQkxFIHNjaDEudDEoYSBpbnQp OworCUNSRUFURSBUQUJMRSBzY2gxLnBhcnQxKGEgaW50KTsKKykpOworCisjIHB1Ymxpc2hfdmlh X3BhcnRpdGlvbl9yb290ID0gZmFsc2UgYW5kIEVYQ0VQVCBzY2gxLnBhcnQxCiskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1 Yl9wYXJ0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoc2NoMS5wYXJ0MSkiKTsKKyRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9O IHRhcF9zdWJfcGFydCBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9O IHRhcF9wdWJfcGFydCIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRp b25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMiki KTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7CisK KyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVD VCAqIEZST00gc2NoMS50MSIpOworaXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIHJvd3Mgb24gcGFy dGl0aW9uZWQgdGFibGUnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnBhcnQxIik7CitpcygkcmVzdWx0LCBx cSgpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25zJyk7CisKKyMgcHVibGlzaF92aWFfcGFydGl0 aW9uX3Jvb3QgPSBmYWxzZSBhbmQgRVhDRVBUIHNjaDEudDEKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFy dCBSRVNFVDsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgQUREIEFMTCBUQUJMRVMg RVhDRVBUIChzY2gxLnQxKTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX3BhcnQgUkVGUkVTSCBQVUJMSUNB VElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5v ZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9wYXJ0Jyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDMpIik7Ciskbm9kZV9w dWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworCiskcmVzdWx0ID0g JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNj aDEudDEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dzIG9uIHBhcnRpdGlvbmVkIHRh YmxlJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIlNFTEVDVCAqIEZST00gc2NoMS5wYXJ0MSIpOworaXMoICRyZXN1bHQsIHFxKDEKKzIKKzMp LCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25zJyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiVFJVTkNBVEUgc2NoMS50MSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0 X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0Iik7Ciskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElPTiB0YXBfcHVi X3BhcnQ7Iik7CisKKyMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlIGFuZCBFWENF UFQgc2NoMS50MQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEo CisJQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBGT1IgQUxMIFRBQkxFUyBFWENFUFQg VEFCTEUgKHNjaDEudDEpIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKKwlJTlNF UlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMSkKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0IENPTk5F Q1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IgorKTsK KyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxp c2hlciwgJ3RhcF9zdWJfcGFydCcpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIklOU0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgyKSIpOworJG5vZGVfcHVibGlzaGVy LT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3BhcnQnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnQxIik7 CitpcygkcmVzdWx0LCBxcSgpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25lZCB0YWJsZScpOwor CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxF Q1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dzIG9u IHBhcnRpdGlvbnMnKTsKKworIyBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IHRydWUgYW5k IEVYQ0VQVCBzY2gxLnBhcnQxCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdy ZXMnLCBxcSgKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgUkVTRVQ7CisJQUxURVIg UFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCAoc2NoMS5wYXJ0 MSk7CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IFNFVCAocHVibGlzaF92aWFfcGFy dGl0aW9uX3Jvb3QpOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcGFydCBSRUZSRVNIIFBVQkxJQ0FUSU9O Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9w dWJsaXNoZXIsICd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJJTlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMykiKTsKKyRub2RlX3B1Ymxp c2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7CisKKyRyZXN1bHQgPSAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS50 MSIpOworaXMoICRyZXN1bHQsIHFxKDEKKzIKKzMpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25l ZCB0YWJsZScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdj aGVjayByb3dzIG9uIHBhcnRpdGlvbnMnKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c3RvcCgnZmFz dCcpOworJG5vZGVfcHVibGlzaGVyLT5zdG9wKCdmYXN0Jyk7CisKK2RvbmVfdGVzdGluZygpOwot LSAKMi4zNC4xCgo= --0000000000003b97d90642eb344b--