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 1ud53H-002n1i-La for pgsql-hackers@arkaria.postgresql.org; Sat, 19 Jul 2025 10:44:24 +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 1ud53F-005P4m-Bd for pgsql-hackers@arkaria.postgresql.org; Sat, 19 Jul 2025 10:44:22 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ud53E-005P4X-Nt for pgsql-hackers@lists.postgresql.org; Sat, 19 Jul 2025 10:44:21 +0000 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1ud53B-008bjP-34 for pgsql-hackers@lists.postgresql.org; Sat, 19 Jul 2025 10:44:20 +0000 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-72c27166ab3so2223464a34.1 for ; Sat, 19 Jul 2025 03:44:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752921856; x=1753526656; 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=C4H7T0Zfxy7ZkE+EkmYE2QFn8ijcfsP5ZQ8dPRMnLPM=; b=Sy7XAhVBey7iqFczjMmC7o62SiliFQ//7HpA4VrrQHIJDcfIo+WYcyzGXd4GakBbm7 QIJ/9bMZMLrSSBq6nAGhpygeJoDS9ZzxTsz696gu8F+rT65R/3tVTnWfWvp7jmhnJ8LV 6IbKZIcdSxHsJ9VgcdfxVLc5gd/jQGLtT1EZ+bbjtSQV80pGXxV4h0Si+jvrFpbSWQ+P H8ViI1XoZR93w23n4GrFl8DeKkOpFfJNpJUiNf/U/PCG3MDnAHG6rIVl5VIssBQbQqHC 6M5Kz4FW0EW51Ko1m68Bpgu+70MEzzDzYsgg3uPK/H9l4PtfqugQ6zhedKtzjliedQML 2DSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752921856; x=1753526656; 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=C4H7T0Zfxy7ZkE+EkmYE2QFn8ijcfsP5ZQ8dPRMnLPM=; b=kWOHR+1XcckSWJCc4Xy2iYM9bVRCZiiDwXEm2Blq8pcboo2asUoCiRKg7nGcBIQPEK sp4DQQt85hVmQd3I5fjCh3mo9z3/xJzk7njlKYRTlEZbDqkh2xQWi+AG0VpcwUc0rx7u Q9O0M0wyGbpe6wVdrRgzazCFo5+latMZFnI/Wu/iYNn8PRfH7zLARJSm5d+qTRshmdvc nIvsDtqHoEmLOjV39BCx+I4hiXyrYdEZ41MpgygS/Tg4Fd56ciu8uiTAdtvAqE5QkHXW AfNKZVu9wujB5FZ49Q1nDP+asEmgKrwqQykkZ667ZgDS6W7D8ZMtWypAqq98KjaWHPgt 529Q== X-Forwarded-Encrypted: i=1; AJvYcCUMPs91/Tr34I7GP5Cysr/o4ZaGo4eTsK7XWCbRaSgXWQuq5aX7s9Hk5g0oKEl9cA21iIRcQUXJDzAzIMYd@lists.postgresql.org X-Gm-Message-State: AOJu0Yw0OP9N5LJrmT1mlU5ulzCjpYVYrxdX2SYXZ7yMHEdCtlMVvHKs L/Vff9PlXRTQBOnExPxwJOIPPErM+rCLCGRWmsswg1a9udIpNuBZ2aaxz5OcO5t503rJCyObGYN 4zWfyhqcScC580lGo5NHA2fGvOjYuPak= X-Gm-Gg: ASbGnctwnKApflxIuU8sObgZOaRjdq2MvMGj/jL99QlpqYoZPZreQQ2uvgPtI4KRp47 o+THrn76DXH72VsycmwbH4tqoxFDS9P1ch3fqq/3UUP/qK8pErlRCnFbT07fpf0B84zYDVbNo6K se1PYqyhY85QHXj24qyX807fzQdV8SReI243lhwfSlv2bl91jZXa1xVKhHIlNs9JQ6ENCX/LuxC MFZEPmgxIitYlnuHGeW X-Google-Smtp-Source: AGHT+IHihYEhJRvk8gHase1n5vRKuJSHer+jKlDPywKjO/t+G3Cs+mz4JUhg70NZZJabSEjlQoUKcn8xdiFypXJlWU8= X-Received: by 2002:a05:6808:2f0e:b0:3f6:abbf:bb88 with SMTP id 5614622812f47-41d0526d76bmr8959669b6e.29.1752921855898; Sat, 19 Jul 2025 03:44:15 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Sat, 19 Jul 2025 16:14:03 +0530 X-Gm-Features: Ac12FXyiOaUcfYweNCHke8xglAbxVLTOdunScOUGvaUe7OgLKTkY9UqHh93YJ04 Message-ID: Subject: Re: Skipping schema changes in publication To: Peter Smith Cc: Amit Kapila , "Zhijie Hou (Fujitsu)" , vignesh C , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000008a909d063a45ecb2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008a909d063a45ecb2 Content-Type: text/plain; charset="UTF-8" On Mon, 30 Jun 2025 at 11:37, Peter Smith wrote: > > Hi Shlok. > > Some review comments for v15-0003. > > ====== > doc/src/sgml/catalogs.sgml > > 1. > > - True if the relation must be excluded > + True if the column list or relation must be excluded from publication. > + If a column list is specified in prattrs, then > + exclude only those columns. If prattrs is NULL, > + then exclude the entire relation. > > > I noticed other fields on this page say "null" instead of "NULL". It > seems like "null" is more conventional. > Fixed > ====== > doc/src/sgml/logical-replication.sgml > > 2. > > If no column list is specified, any columns added to the table later are > automatically replicated. This means that having a column list which names > - all columns is not the same as having no column list at all. > + all columns is not the same as having no column list at all. > Similarly, if an > + column list is specified with EXCEPT, any columns added to the table later > + are also replicated automatically. > > > 2a. > CURRENTLY > If no column list or a column list with EXCEPT is specified, any > columns added to the table later are automatically replicated. This > means that having a column list which names all columns is not the > same as having no column list at all. If an column list is specified, > any columns added to the table later are automatically replicated. > > ~ > > That still doesn't quite make sense. I think instead of saying "This > means..." it needs to say something a bit like below: > > However, a normal column list (without EXCEPT) only > specified columns and no more. Therefore, having a column list that > names all columns is not the same as having no column list at all, as > more columns may be added to the table later. > Fixed > ~ > > 2b. > And the final sentence "If an column list..." looks like a cut/paste error (??) > Yes it was a mistake. > ~ > > 2c. > Maybe here EXCEPT should be written as EXCEPT > Fixed. > ~~~ > > 2.5A. > The description about generated columns still says this: > > CURRENT: > Generated columns can also be specified in a column list. This allows > generated columns to be published, regardless of the publication > parameter publish_generated_columns. See Section 29.6 for details. > > ~ > > But I don't think it is quite correct. IMO gencols behaviour is much > more subtle... > > e.g. > > a) Normal collist - these named cols are published REGARDLESS of the > 'publish_generated_cols' parameter (same as before) > > b) EXCEPT collist - you can specify gencols in the list REGARDLESS of > the 'publish_generated_cols' parameter, because since they are named > as "except" then they will not be published anyhow.... > > c) BUT for EXCEPT collist case, I think any gencols that are *not* > covered by that EXCEPT collist should follow the rules according to > the 'publish_generated_cols' parameter. > > So, it is much more tricky than the docs currently say: > Modified the documentation > Also > > 2.5B. > - The text says "See Section 29.6 for details," but there are no > examples of these combinations (e.g. EXCEPT collist and diff parameter > setting) > Added documentation. > 2.5C, > - The regression tests also need to be more complex to cover these > Added tests related to these > 2.5D. > - You might need to add something in the CREATE PUBLICATION "NOTES" > section after all -- even if it just refers to here. > Added documentation > ~~~ > > 3. > > Create a publication p1. A column list is defined for > - table t1 to reduce the number of columns that will be > - replicated. Notice that the order of column names in the column list does > - not matter. > + table t1, and another column list is defined for table > + t2 using the EXCEPT clause to reduce the number of > + columns that will be replicated. Note that the order of column names in > + the column lists does not matter. > > -/* pub # */ CREATE PUBLICATION p1 FOR TABLE t1 (id, b, a, d); > +/* pub # */ CREATE PUBLICATION p1 FOR TABLE t1 (id, b, a, d), t2 EXCEPT (d, a); > > > Maybe here EXCEPT should be written as EXCEPT > Fixed > ====== > doc/src/sgml/ref/create_publication.sgml > > 4. > > - When a column list is specified, only the named columns are replicated. > - The column list can contain stored generated columns as well. If the > - column list is omitted, the publication will replicate all non-generated > - columns (including any added in the future) by default. Stored generated > - columns can also be replicated if > publish_generated_columns > - is set to stored. Specifying a column list has no > - effect on TRUNCATE commands. See > + When a column list without EXCEPT is specified, only the named > columns are > + replicated. The column list can contain stored generated columns as well. > + If the column list is omitted, the publication will replicate > + all non-generated columns (including any added in the future) by default. > + Stored generated columns can also be replicated if > + publish_generated_columns is set to > + stored. Specifying a column list has no effect on > + TRUNCATE commands. See > for details about column > lists. > > > Maybe here EXCEPT should be written as EXCEPT > Fixed > ~~~ > > 5. > + > + When a column list is specified with EXCEPT, the named columns are not > + replicated. Specifying a column list has no effect on > + TRUNCATE commands. > + > > Maybe here EXCEPT should be written as EXCEPT. > Fixed > ** Note all the extra subtleties that I mentioned in the review > comment #2.5 above --- e.g. IMO any *un-listed* gencols still should > follow the parameter rules. > > ~~~ > > 6. > > Any column list must include the REPLICA IDENTITY columns > - in order for UPDATE or DELETE > - operations to be published. There are no column list restrictions if the > - publication publishes only INSERT operations. > + and any column list specified with EXCEPT must not include the > + REPLICA IDENTITY columns in order for > + UPDATE or DELETE operations to be > + published. There are no column list restrictions if the > publication publishes > + only INSERT operations. > > > 6a. > CURRENT: > Any column list must include the REPLICA IDENTITY columns, and any > column list specified with EXCEPT must not include the REPLICA > IDENTITY columns in order for UPDATE or DELETE operations to be > published. > > ~ > > I felt that might be better expressed the other way around. Also, it > might be better to say "not name" instead of "not include" because > EXCEPT + include seemed a bit contrary. > > > SUGGESTION (maybe like this) > In order for UPDATE or DELETE operations to work, all the REPLICA > IDENTITY columns must be published. So, any column list must name all > REPLICA IDENTITY columns, and any EXCEPT column list must not name any > REPLICA IDENTITY columns. > Fixed > ~~ > > 6b. > Maybe here EXCEPT should be written as EXCEPT > Fixed > ====== > src/backend/catalog/pg_publication.c > > check_and_fetch_column_list: > > 7. > + /* Lookup the except attribute */ > + cfdatum = SysCacheGetAttr(PUBLICATIONRELMAP, cftuple, > + Anum_pg_publication_rel_prexcept, &isnull); > + > + if (!isnull) > + { > + Assert(!pub->alltables); > + *except_columns = DatumGetBool(cfdatum); > + } > + > > I felt it would be safer to also assign *except_columns = false; > up-front so the caller could be sure this flag was meaningful on > return. > Fixed > ~~~ > > pub_form_cols_map: > > 8. > Maybe use snake case like for other params, so /excepcols/except_cols/ > Fixed > ~~~ > > pg_get_publication_tables: > > 9. > > I felt all the logic in this function maybe can be simpler: > > e.g. If you just have "Bitmapset *except_columns = NULL;" then null > nmeans there is no except columns; otherwise there is. This means you > don't need a separate 'bool except_column' variable. > > e.g. Assign the Bitmapset *except_columns after you already have the > values[2], instead of doing it later. > > e.g. The skip code if (except_columns && bms_is_member(att->attnum, > columns)) could just check the list member, I think, without the > additional bool. > > ~~~ > Fixed > 10. > + /* > + * We fetch pubtuple if publication is not FOR ALL TABLES and not > + * FOR TABLES IN SCHEMA. So if prexcept is true, it indicate that > + * prattrs contains columns to be excluded for replication. > + */ > + if (!isnull) > + except_columns = DatumGetBool(exceptDatum); > > > /indicate/indicates/ > Fixed > ====== > src/backend/parser/gram.y > > 11. > + | TABLE relation_expr EXCEPT opt_except_column_list OptWhereClause > + { > + $$ = makeNode(PublicationObjSpec); > + $$->pubobjtype = PUBLICATIONOBJ_TABLE; > + $$->pubtable = makeNode(PublicationTable); > + $$->pubtable->relation = $2; > + $$->pubtable->columns = $4; > + $$->pubtable->whereClause = $5; > + $$->pubtable->except = true; > + $$->location = @1; > + } > > I wasn't expecting you would need another 'opt_except_column_list' and > all the code duplication that causes. AFAIK, the syntax is identical > for 'opt_column_list' apart from the preceding EXCEPT so I thought all > you need is to allow the 'opt_column_list' to have an optional EXCEPT > qualifier. > The main reason I used a separate 'opt_except_column_list' is because 'opt_column_list' can also be NULL. But the column list specified with EXCEPT not be NULL. So, 'opt_except_column_list' is defined such that it cannot be null. > ====== > src/backend/replication/pgoutput/pgoutput.c > > 12. > + > + /* > + * Indicates whether no columns are published for a given relation. With > + * the introduction of the EXCEPT clause in column lists, it is now > + * possible to define a publication that excludes all columns of a table. > + * However, the 'columns' attribute cannot represent this case, since a > + * NULL value implies that all columns are published. To distinguish this > + * scenario, the 'no_cols_published' flag is introduced. > + */ > + bool no_cols_published; > } RelationSyncEntry; > > But, what about when Bitmapset *columns is not null, but has no bits > set -- doesn't that mean the same as "no columns"? > I think this is possible. A bitmapset which has no set bit is NULL. I saw following comment in bitmapset.c "By convention, we always represent a set with * the minimum possible number of words, i.e, there are never any trailing * zero words. Enforcing this requires that an empty set is represented as * NULL. Because an empty Bitmapset is represented as NULL, a non-NULL * Bitmapset always has at least 1 Bitmapword." > ====== > src/include/catalog/pg_publication.h > > 13. > extern Bitmapset *pub_form_cols_map(Relation relation, > - PublishGencolsType include_gencols_type); > + PublishGencolsType include_gencols_type, > + Bitmapset *exceptcols); > > Maybe snake-case like the other params: /exceptcols/except_cols/ > Fixed > ====== > src/test/regress/sql/publication.sql > > 14. > +-- Verify that publication is created with EXCEPT > +CREATE PUBLICATION testpub_except FOR TABLE pub_test_except1, > pub_sch1.pub_test_except2 EXCEPT (b, c); > +SELECT * FROM pg_publication_tables WHERE pubname = 'testpub_except'; > + > > I think tests should also use psql \dRp+ commands in places to show > that the "describe" stuff is working correctly. > > ~~~ Fixed > > 15. > +-- Check for invalid cases > +CREATE PUBLICATION testpub_except2 FOR TABLES IN SCHEMA pub_sch1, > TABLE pub_test_except1 EXCEPT (b, c); > +CREATE PUBLICATION testpub_except2 FOR TABLE pub_test_except1 EXCEPT; > > Should explain more about what you are testing here: > a) cannot use EXCEPT col-lists combined with TABLES IN SCHEMA > b) syntax error EXCEPT without a col-list > > ~~~ fixed > > 16. > +-- Verify that publication can be altered with EXCEPT > +ALTER PUBLICATION testpub_except SET TABLE pub_test_except1 EXCEPT > (a, b), pub_sch1.pub_test_except2; > +SELECT * FROM pg_publication_tables WHERE pubname = 'testpub_except'; > > The comment is a bit misleading because there are many kinds of > "alter". Maybe say more like > Verify ok - ALTER PUBLICATION ... SET ... EXCEPT (col-list) > > ~~~ Fixed > > 17. > +-- Verify ALTER PUBLICATION ... DROP > +ALTER PUBLICATION testpub_except DROP TABLE pub_test_except1 EXCEPT (a, b); > +ALTER PUBLICATION testpub_except DROP TABLE pub_test_except1; > > Should explain more: > +-- Verify fails - ALTER PUBLICATION ... DROP ... EXCEPT (col-list) > +-- Verify ok - ALTER PUBLICATION ... DROP ... > > ~~~ Fixed > > 18. > +ALTER PUBLICATION testpub_except ADD TABLE pub_test_except1 EXCEPT (c, d); > +SELECT * FROM pg_publication_tables WHERE pubname = 'testpub_except'; > > Missing comment: > +-- Verify ok - ALTER PUBLICATION ... ADD ... EXCEPT (col-list) > > ~~~ Fixed > > 19. > +-- Verify excluded columns cannot be part of REPLICA IDENTITY > +ALTER TABLE pub_test_except1 REPLICA IDENTITY FULL; > +UPDATE pub_test_except1 SET a = 3 WHERE a = 1; > > +CREATE UNIQUE INDEX pub_test_except1_a_idx ON pub_test_except1 (a, c); > +ALTER TABLE pub_test_except1 REPLICA IDENTITY USING INDEX > pub_test_except1_a_idx; > +UPDATE pub_test_except1 SET a = 3 WHERE a = 1; > > +DROP INDEX pub_test_except1_a_idx; > +CREATE UNIQUE INDEX pub_test_except1_a_idx ON pub_test_except1 (a); > +ALTER TABLE pub_test_except1 REPLICA IDENTITY USING INDEX > pub_test_except1_a_idx; > +UPDATE pub_test_except1 SET a = 3 WHERE a = 1; > + > +DROP INDEX pub_test_except1_a_idx; > > 19a. > IIUC, really there are multiple tests here, so I think it should all > be split and commented separately. > > a) Verify that EXCEPT col-list cannot contain RI cols (when using RI FULL) > b) Verify that EXCEPT col-list cannot contain RI cols (when using INDEX) > c) Verify that so long as no clash between RI cols and the EXCEPT > col-list, then it is ok > > ~ Fixed > > 19b. > IMO, some index names could be better: > > CREATE UNIQUE INDEX pub_test_except1_a_idx ON pub_test_except1 (a, c); > How about 'pub_test_except1_ac_idx'? > > ~~~ > Fixed > 20. > +DROP PUBLICATION testpub_except; > +DROP TABLE pub_test_except1; > +DROP TABLE pub_sch1.pub_test_except2; > > Add a "cleanup" comment. > Added I have addressed the comments and added the latest v16. Thanks and Regards, Shlok Kyal --0000000000008a909d063a45ecb2 Content-Type: application/octet-stream; name="v16-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v16-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mda4co831 RnJvbSAyNzc3NjI4Mjg2MTQ3YjQ0M2Q4YWIwMTAwM2Q3Y2YwZWM5NDQ4Yjk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTYgSnVsIDIwMjUgMTA6NTY6MTQgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx NiAyLzNdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFC TEUuCgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNB VElPTiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlz aGVyIHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJz Y3JpYmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRp b25zIHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6 CkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0MSx0 MjsKb3IKQUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg dDEsdDI7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdfcHVi bGljYXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdh bnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVk IHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0 aW9ucy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhj bHVkZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFz c29jaWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSAr CiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDggKy0K IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAyMSArLQog ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDM3ICsrKy0K IGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAgNSArLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgMTAzICsrKysr Ky0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICAgIHwgMTk4 ICsrKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAg ICAgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAg ICAgICAgICAgfCAgNDEgKysrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdv dXRwdXQuYyAgIHwgIDI1ICstLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyAg ICAgICAgICAgIHwgIDE3ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAg ICAgICAgICAgfCAgNTYgKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgICAgICAg ICAgICAgICAgfCAgIDcgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAg ICAgICAgIHwgIDIwICsrCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAg ICAgICAgfCAgNjIgKysrKystCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAg ICAgICAgICAgfCAgMTUgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAg ICAgICAgICB8ICAgOCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwu aCAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oICAg ICAgICB8ICAgNSArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAg ICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAg ICB8ICA4OSArKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAg ICAgICAgIHwgIDQ2ICsrKy0KIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZCAgICAg ICAgICAgICB8ICAgMSArCiAuLi4vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsICAg ICAgICAgfCAgODMgKysrKysrKysKIDI1IGZpbGVzIGNoYW5nZWQsIDczMSBpbnNlcnRpb25zKCsp LCAxMzMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbAoKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXgg MGQyM2JjMWIxMjIuLjFiYjFkYjI2MDQ1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxv Z3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNjU2OCw2ICs2NTY4 LDE1IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7 PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICBpZiB0aGVyZSBpcyBubyBwdWJs aWNhdGlvbiBxdWFsaWZ5aW5nIGNvbmRpdGlvbi48L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+ CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICA8c3RydWN0ZmllbGQ+cHJleGNl cHQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgVHJ1ZSBpZiB0aGUgcmVsYXRpb24gbXVzdCBiZSBleGNsdWRlZAorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5wcmF0dHJzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50 MnZlY3RvcjwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IGUy NmY3ZjU5ZDRhLi4yZTlmNjAxOTQ3NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwt cmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5z Z21sCkBAIC0yMjgzLDEwICsyMjgzLDEwIEBAIENPTlRFWFQ6ICBwcm9jZXNzaW5nIHJlbW90ZSBk YXRhIGZvciByZXBsaWNhdGlvbiBvcmlnaW4gInBnXzE2Mzk1IiBkdXJpbmcgIklOU0VSCiAgIDwv cGFyYT4KIAogICA8cGFyYT4KLSAgIFRvIGFkZCB0YWJsZXMgdG8gYSBwdWJsaWNhdGlvbiwgdGhl IHVzZXIgbXVzdCBoYXZlIG93bmVyc2hpcCByaWdodHMgb24gdGhlCi0gICB0YWJsZS4gVG8gYWRk IGFsbCB0YWJsZXMgaW4gc2NoZW1hIHRvIGEgcHVibGljYXRpb24sIHRoZSB1c2VyIG11c3QgYmUg YQotICAgc3VwZXJ1c2VyLiBUbyBjcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBh bGwgdGFibGVzIG9yIGFsbCB0YWJsZXMgaW4KLSAgIHNjaGVtYSBhdXRvbWF0aWNhbGx5LCB0aGUg dXNlciBtdXN0IGJlIGEgc3VwZXJ1c2VyLgorICAgVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdXNp bmcgRk9SIEFMTCBUQUJMRVMgb3IgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BLAorICAgdGhlIHVz ZXIgbXVzdCBiZSBhIHN1cGVydXNlci4gVG8gYWRkIEFMTCBUQUJMRVMgb3IgQUxMIFRBQkxFUyBJ TiBTQ0hFTUEgdG8gYQorICAgcHVibGljYXRpb24sIHRoZSB1c2VyIG11c3QgYmUgYSBzdXBlcnVz ZXIuIFRvIGFkZCB0YWJsZXMgdG8gYSBwdWJsaWNhdGlvbiwKKyAgIHRoZSB1c2VyIG11c3QgaGF2 ZSBvd25lcnNoaXAgcmlnaHRzIG9uIHRoZSB0YWJsZS4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDE3OGYzOWQ5NTc1Li5i ZDI1YTFhNzIzYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlv bi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAt MjIsNiArMjIsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+ CiA8c3lub3BzaXM+CiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IEFERCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uXQorQUxURVIgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBB REQgQUxMIFRBQkxFUyBbIEVYQ0VQVCBbIFRBQkxFIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBdCiBBTFRFUiBQ VUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+IFNFVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0 PC9yZXBsYWNlYWJsZT4gWywgLi4uXQogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCiBB TFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+IFNFVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlv bl9wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKQpAQCAtMzMsNiArMzQsMTEgQEAgQUxU RVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPiBSRVNFVAogCiAgICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBd IFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVw bGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRf U0NIRU1BIH0gWywgLi4uIF0KKworPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCisg ICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3Jl cGxhY2VhYmxlPiBbICogXQorCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAKQEAg LTg4LDggKzk0LDkgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNFVAogCiAgIDxwYXJhPgogICAgWW91IG11c3Qg b3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIgUFVCTElDQVRJT048L2Nv bW1hbmQ+LgotICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkg cmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVyYWw+QUREIFRBQkxFUyBJ TiBTQ0hFTUE8L2xpdGVyYWw+LAorICAgQWRkaW5nIGEgdGFibGUgdG8gb3IgZXhjbHVkaW5nIGEg dGFibGUgZnJvbSBhIHB1YmxpY2F0aW9uIGFkZGl0aW9uYWxseQorICAgcmVxdWlyZXMgb3duaW5n IHRoYXQgdGFibGUuIFRoZSA8bGl0ZXJhbD5BREQgQUxMIFRBQkxFUzwvbGl0ZXJhbD4sCisgICA8 bGl0ZXJhbD5BREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LAogICAgPGxpdGVyYWw+ U0VUIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gYW5kCiAgICA8 bGl0ZXJhbD5SRVNFVDwvbGl0ZXJhbD4gb2YgcHVibGljYXRpb24gcmVxdWlyZXMgdGhlIGludm9r aW5nIHVzZXIgdG8gYmUgYQogICAgc3VwZXJ1c2VyLiBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBt dXN0IGJlIGFibGUgdG8KQEAgLTEyOSw3ICsxMzYsNyBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAgICAg ICB0YWJsZSBuYW1lLCBvbmx5IHRoYXQgdGFibGUgaXMgYWZmZWN0ZWQuICBJZiA8bGl0ZXJhbD5P TkxZPC9saXRlcmFsPiBpcyBub3QKICAgICAgIHNwZWNpZmllZCwgdGhlIHRhYmxlIGFuZCBhbGwg aXRzIGRlc2NlbmRhbnQgdGFibGVzIChpZiBhbnkpIGFyZQogICAgICAgYWZmZWN0ZWQuICBPcHRp b25hbGx5LCA8bGl0ZXJhbD4qPC9saXRlcmFsPiBjYW4gYmUgc3BlY2lmaWVkIGFmdGVyIHRoZSB0 YWJsZQotICAgICAgbmFtZSB0byBleHBsaWNpdGx5IGluZGljYXRlIHRoYXQgZGVzY2VuZGFudCB0 YWJsZXMgYXJlIGluY2x1ZGVkLgorICAgICAgbmFtZSB0byBleHBsaWNpdGx5IGluZGljYXRlIHRo YXQgZGVzY2VuZGFudCB0YWJsZXMgYXJlIGFmZmVjdGVkLgogICAgICA8L3BhcmE+CiAKICAgICAg PHBhcmE+CkBAIC0yMzcsNiArMjQ0LDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNhbGVzX3B1Ymxp Y2F0aW9uIEFERCBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3Byb2dyYW1s aXN0aW5nPgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBBbHRlciBwdWJsaWNhdGlvbiA8c3Ry dWN0bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiB0byBwdWJsaXNoCisg ICBhbGwgdGFibGVzIGV4Y2VwdCA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4gYW5kCisg ICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+ CitBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBBTEwgVEFCTEVT IEVYQ0VQVCB1c2VycywgZGVwYXJ0bWVudHM7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKwog ICA8cGFyYT4KICAgIEFkZCB0YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAog ICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+IGFuZCBzY2hlbWEKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDgwMjYzMGYyZGYxLi5hMmY5 YzBkNDgyNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0y Miw3ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4K IDxzeW5vcHNpcz4KIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+Ci0gICAgWyBGT1IgQUxMIFRBQkxFUworICAgIFsgRk9S IEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogICAgICAgfCBG T1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVw bGFjZWFibGU+IFssIC4uLiBdIF0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQog CkBAIC0zMCw2ICszMCwxMCBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogCiAgICAgVEFCTEUgWyBPTkxZIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICog XSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNl YWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxFUyBJTiBT Q0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxh Y2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KKworPHBocmFzZT53aGVyZSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+ IGlzOjwvcGhyYXNlPgorCisgICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC0xMjUsNyArMTI5LDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8bGlzdGl0 ZW0+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9uZSB0aGF0 IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgotICAgICAgdGhlIGRhdGFiYXNl LCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgIHRoZSBkYXRh YmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuIElmCisgICAgICA8 bGl0ZXJhbD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlbiBleGNsdWRl IHJlcGxpY2F0aW5nCisgICAgICB0aGUgY2hhbmdlcyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZXMu CiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC0x NjEsNiArMTY3LDI0IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFy YW1zLWZvci1leGNlcHQtdGFibGUiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwv bGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMg Y2xhdXNlIHNwZWNpZmllcyBhIGxpc3Qgb2YgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkIGZyb20gdGhl CisgICAgICBwdWJsaWNhdGlvbi4gSXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIDxsaXRlcmFsPkZP UiBBTEwgVEFCTEVTPC9saXRlcmFsPi4KKyAgICAgIElmIDxsaXRlcmFsPk9OTFk8L2xpdGVyYWw+ IGlzIHNwZWNpZmllZCBiZWZvcmUgdGhlIHRhYmxlIG5hbWUsIG9ubHkKKyAgICAgIHRoYXQgdGFi bGUgaXMgZXhjbHVkZWQgZnJvbSB0aGUgcHVibGljYXRpb24uIElmIDxsaXRlcmFsPk9OTFk8L2xp dGVyYWw+IGlzCisgICAgICBub3Qgc3BlY2lmaWVkLCB0aGUgdGFibGUgYW5kIGFsbCBpdHMgZGVz Y2VuZGFudCB0YWJsZXMgKGlmIGFueSkgYXJlCisgICAgICBleGNsdWRlZC4gT3B0aW9uYWxseSwg PGxpdGVyYWw+KjwvbGl0ZXJhbD4gY2FuIGJlIHNwZWNpZmllZCBhZnRlciB0aGUKKyAgICAgIHRh YmxlIG5hbWUgdG8gZXhwbGljaXRseSBpbmRpY2F0ZSB0aGF0IGRlc2NlbmRhbnQgdGFibGVzIGFy ZSBleGNsdWRlZC4KKyAgICAgIFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gYSBwYXJ0aXRpb25lZCB0 YWJsZSwgaG93ZXZlci4gIFRoZSBwYXJ0aXRpb25zIG9mCisgICAgICBhIHBhcnRpdGlvbmVkIHRh YmxlIGFyZSBhbHdheXMgaW1wbGljaXRseSBjb25zaWRlcmVkIHBhcnQgb2YgdGhlCisgICAgICBw dWJsaWNhdGlvbiwgc28gdGhleSBhcmUgbmV2ZXIgZXhwbGljaXRseSBleGNsdWRlZCBmcm9tIHRo ZSBwdWJsaWNhdGlvbi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBh cmFtcy13aXRoIj4KICAgICA8dGVybT48bGl0ZXJhbD5XSVRIICggPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSAp PC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC00NDIsNiArNDY2LDE1IEBAIENS RUFURSBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEZPUiBUQUJMRSB1c2Vycywg ZGVwYXJ0bWVudHMsIFRBQkxFUyBJCiBDUkVBVEUgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRp b24gRk9SIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rp bmc+PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJs aXNoZXMgYWxsIGNoYW5nZXMgaW4gYWxsIHRoZSB0YWJsZXMgZXhjZXB0IGZvcgorICAgdGhlIGNo YW5nZXMgb2YgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGFuZAorICAgPHN0cnVjdG5h bWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFBV QkxJQ0FUSU9OIG15cHVibGljYXRpb24gRk9SIEFMTCBUQUJMRVMgRVhDRVBUIHVzZXJzLCBkZXBh cnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIENy ZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBjaGFuZ2VzIGZvciB0YWJsZSA8 c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICBidXQgcmVwbGljYXRlcyBvbmx5IGNv bHVtbnMgPHN0cnVjdG5hbWU+dXNlcl9pZDwvc3RydWN0bmFtZT4gYW5kCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVm LnNnbWwKaW5kZXggNGY3YjExMTc1YzYuLmNiNDIxNTA3MWQwIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5z Z21sCkBAIC0yMTAzLDggKzIxMDMsOSBAQCBTRUxFQ1QgJDEgXHBhcnNlIHN0bXQxCiAgICAgICAg IGxpc3RlZC4KICAgICAgICAgSWYgPGxpdGVyYWw+eDwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8g dGhlIGNvbW1hbmQgbmFtZSwgdGhlIHJlc3VsdHMKICAgICAgICAgYXJlIGRpc3BsYXllZCBpbiBl eHBhbmRlZCBtb2RlLgotICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRl ZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzIGFuZAotICAgICAgICBzY2hlbWFzIGFz c29jaWF0ZWQgd2l0aCBlYWNoIHB1YmxpY2F0aW9uIGFyZSBzaG93biBhcyB3ZWxsLgorICAgICAg ICBJZiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1l LCB0aGUgdGFibGVzLAorICAgICAgICBleGNsdWRlZCB0YWJsZXMgYW5kIHNjaGVtYXMgYXNzb2Np YXRlZCB3aXRoIGVhY2ggcHVibGljYXRpb24gYXJlIHNob3duIGFzCisgICAgICAgIHdlbGwuCiAg ICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5 PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IGQ2Zjk0ZGI1ZDk5Li4xODc4 ZmJhODc0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5j CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtMzUxLDcgKzM1 MSw4IEBAIEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0ICpyZXN1bHQsIFB1Ymxp Y2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKICAqIGFuY2VzdG9yIGlzIGF0IHRoZSBlbmQgb2Yg dGhlIGxpc3QuCiAgKi8KIE9pZAotR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQg cHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0b3JfbGV2ZWwpCitHZXRUb3BNb3N0 QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywKKwkJCQkJ CQkJaW50ICphbmNlc3Rvcl9sZXZlbCwgYm9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJTGlzdENlbGwg ICAqbGM7CiAJT2lkCQkJdG9wbW9zdF9yZWxpZCA9IEludmFsaWRPaWQ7CkBAIC0zNjMsMzIgKzM2 NCw0NCBAQCBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3Qg KmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbAogCWZvcmVhY2gobGMsIGFuY2VzdG9ycykK IAl7CiAJCU9pZAkJCWFuY2VzdG9yID0gbGZpcnN0X29pZChsYyk7Ci0JCUxpc3QJICAgKmFwdWJp ZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3Rvcik7Ci0JCUxpc3QJICAgKmFzY2hl bWFQdWJpZHMgPSBOSUw7CisJCUxpc3QJICAgKmFwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0 aW9ucyhhbmNlc3RvciwgZmFsc2UpOworCQlMaXN0CSAgICphc2NoZW1hcHViaWRzID0gTklMOwor CQlMaXN0CSAgICphZXhjZXB0cHViaWRzID0gTklMOworCQlib29sCQlzZXRfdG9wID0gZmFsc2U7 CiAKIAkJbGV2ZWwrKzsKIAotCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFwdWJpZHMsIHB1Ym9pZCkp CisJCS8qIGNoZWNrIGlmIG1lbWJlciBvZiB0YWJsZSBwdWJsaWNhdGlvbnMgKi8KKwkJc2V0X3Rv cCA9IGxpc3RfbWVtYmVyX29pZChhcHViaWRzLCBwdWJvaWQpOworCQlpZiAoIXNldF90b3ApCiAJ CXsKLQkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKKwkJCWFzY2hlbWFwdWJpZHMgPSBHZXRT Y2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpKTsKIAotCQkJaWYg KGFuY2VzdG9yX2xldmVsKQotCQkJCSphbmNlc3Rvcl9sZXZlbCA9IGxldmVsOworCQkJLyogY2hl Y2sgaWYgbWVtYmVyIG9mIHNjaGVtYSBwdWJsaWNhdGlvbnMgKi8KKwkJCXNldF90b3AgPSBsaXN0 X21lbWJlcl9vaWQoYXNjaGVtYXB1YmlkcywgcHVib2lkKTsKKworCQkJLyoKKwkJCSAqIElmIHRo ZSBwdWJsaWNhdGlvbiBpcyBhbGwgdGFibGVzIHB1YmxpY2F0aW9uIGFuZCB0aGUgdGFibGUgaXMK KwkJCSAqIG5vdCBwYXJ0IG9mIGV4Y2VwdGlvbiB0YWJsZXMuCisJCQkgKi8KKwkJCWlmICghc2V0 X3RvcCAmJiBwdWJhbGx0YWJsZXMpCisJCQl7CisJCQkJYWV4Y2VwdHB1YmlkcyA9IEdldFJlbGF0 aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKTsKKwkJCQlzZXRfdG9wID0gIWxpc3RfbWVt YmVyX29pZChhZXhjZXB0cHViaWRzLCBwdWJvaWQpOworCQkJfQogCQl9Ci0JCWVsc2UKKworCQlp ZiAoc2V0X3RvcCkKIAkJewotCQkJYXNjaGVtYVB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9u cyhnZXRfcmVsX25hbWVzcGFjZShhbmNlc3RvcikpOwotCQkJaWYgKGxpc3RfbWVtYmVyX29pZChh c2NoZW1hUHViaWRzLCBwdWJvaWQpKQotCQkJewotCQkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3Rv cjsKKwkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKIAotCQkJCWlmIChhbmNlc3Rvcl9sZXZl bCkKLQkJCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7Ci0JCQl9CisJCQlpZiAoYW5jZXN0b3Jf bGV2ZWwpCisJCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7CiAJCX0KIAogCQlsaXN0X2ZyZWUo YXB1Ymlkcyk7Ci0JCWxpc3RfZnJlZShhc2NoZW1hUHViaWRzKTsKKwkJbGlzdF9mcmVlKGFzY2hl bWFwdWJpZHMpOworCQlsaXN0X2ZyZWUoYWV4Y2VwdHB1Ymlkcyk7CiAJfQogCiAJcmV0dXJuIHRv cG1vc3RfcmVsaWQ7CkBAIC00NzksNiArNDkyLDggQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9u KE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJCU9iamVjdElkR2V0RGF0dW0o cHViaWQpOwogCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcnJlbGlkIC0gMV0gPQog CQlPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9y ZWxfcHJleGNlcHQgLSAxXSA9CisJCUJvb2xHZXREYXR1bShwcmktPmV4Y2VwdCk7CiAKIAkvKiBB ZGQgcXVhbGlmaWNhdGlvbnMsIGlmIGF2YWlsYWJsZSAqLwogCWlmIChwcmktPndoZXJlQ2xhdXNl ICE9IE5VTEwpCkBAIC03NDYsOSArNzYxLDkgQEAgcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQg cHViaWQsIE9pZCBzY2hlbWFpZCwgYm9vbCBpZl9ub3RfZXhpc3RzKQogCXJldHVybiBteXNlbGY7 CiB9CiAKLS8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBvaWRzIGZvciBhIHJlbGF0aW9uICov CisvKiBHZXRzIGxpc3Qgb2YgcHVibGljYXRpb24gb2lkcyBmb3IgYSByZWxhdGlvbiB0aGF0IG1h dGNoZXMgdGhlIGV4Y2VwdF9mbGFnICovCiBMaXN0ICoKLUdldFJlbGF0aW9uUHVibGljYXRpb25z KE9pZCByZWxpZCkKK0dldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCwgYm9vbCBleGNl cHRfZmxhZykKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CiAJQ2F0Q0xpc3QgICAqcHVicmVs bGlzdDsKQEAgLTc2Miw3ICs3NzcsOCBAQCBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVs aWQpCiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlzdC0+bWVtYmVyc1tpXS0+dHVwbGU7CiAJ CU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkp LT5wcnB1YmlkOwogCi0JCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcHViaWQpOworCQlp ZiAoZXhjZXB0X2ZsYWcgPT0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1 cCkpLT5wcmV4Y2VwdCkKKwkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcHViaWQpOwog CX0KIAogCVJlbGVhc2VTeXNDYWNoZUxpc3QocHVicmVsbGlzdCk7CkBAIC03NzEsMTMgKzc4Nywx NiBAQCBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQpCiB9CiAKIC8qCi0gKiBHZXRz IGxpc3Qgb2YgcmVsYXRpb24gb2lkcyBmb3IgYSBwdWJsaWNhdGlvbi4KKyAqIEdldHMgbGlzdCBv ZiByZWxhdGlvbiBvaWRzIGZvciBhIHB1YmxpY2F0aW9uLiBJZiBleGNlcHRfdGFibGUgaXMgdHJ1 ZSwgdGhlCisgKiBsaXN0IGNvbnRhaW5zIHJlbGF0aW9ucyBvaWRzIHRoYXQgZXhjbHVkZWQgZnJv bSBwdWJsaWNhdGlvbiwgZWxzZSB0aGUgbGlzdAorICogY29udGFpbnMgdGhlIHJlbGF0aW9uIG9p ZHMgdGhhdCBhcmUgcGFydCBvZiBwdWJsaWNhdGlvbi4KICAqCiAgKiBUaGlzIHNob3VsZCBvbmx5 IGJlIHVzZWQgRk9SIFRBQkxFIHB1YmxpY2F0aW9ucywgdGhlIEZPUiBBTEwgVEFCTEVTCiAgKiBz aG91bGQgdXNlIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKCkuCiAgKi8KLUxpc3Qg KgotR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQg cHViX3BhcnRvcHQpCitzdGF0aWMgTGlzdCAqCitHZXRQdWJJbmNsdWRlZE9yRXhjbHVkZWRSZWxz KE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAorCQkJCQkJCSBib29s IGV4Y2VwdF90YWJsZSkKIHsKIAlMaXN0CSAgICpyZXN1bHQ7CiAJUmVsYXRpb24JcHVicmVsc3Jl bDsKQEAgLTgwMiw4ICs4MjEsMTEgQEAgR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1Ymlk LCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCiAJCUZvcm1fcGdfcHVibGljYXRpb25f cmVsIHB1YnJlbDsKIAogCQlwdWJyZWwgPSAoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNU UlVDVCh0dXApOwotCQlyZXN1bHQgPSBHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMocmVz dWx0LCBwdWJfcGFydG9wdCwKLQkJCQkJCQkJCQkJCXB1YnJlbC0+cHJyZWxpZCk7CisKKwkJaWYg KChleGNlcHRfdGFibGUgJiYgcHVicmVsLT5wcmV4Y2VwdCkgfHwgIWV4Y2VwdF90YWJsZSkKKwkJ CXJlc3VsdCA9IEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhyZXN1bHQsIHB1Yl9wYXJ0 b3B0LAorCQkJCQkJCQkJCQkJCXB1YnJlbC0+cHJyZWxpZCk7CisKIAl9CiAKIAlzeXN0YWJsZV9l bmRzY2FuKHNjYW4pOwpAQCAtODE2LDYgKzgzOCwyNSBAQCBHZXRQdWJsaWNhdGlvblJlbGF0aW9u cyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIAlyZXR1cm4gcmVz dWx0OwogfQogCisvKgorICogR2V0cyBsaXN0IG9mIHJlbGF0aW9uIG9pZHMgZm9yIGEgcHVibGlj YXRpb24uCisgKgorICogVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIEZPUiBUQUJMRSBwdWJsaWNh dGlvbnMsIHRoZSBGT1IgQUxMIFRBQkxFUworICogc2hvdWxkIHVzZSBHZXRBbGxUYWJsZXNQdWJs aWNhdGlvblJlbGF0aW9ucygpLgorICovCitMaXN0ICoKK0dldFB1YmxpY2F0aW9uUmVsYXRpb25z KE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQoreworCXJldHVybiBH ZXRQdWJJbmNsdWRlZE9yRXhjbHVkZWRSZWxzKHB1YmlkLCBwdWJfcGFydG9wdCwgZmFsc2UpOwor fQorCisvKiBHZXQgbGlzdCBvZiByZWxhdGlvbiBvaWRzIGV4Y2x1ZGVkIGZyb20gdGhlIHB1Ymxp Y2F0aW9uICovCitMaXN0ICoKK0dldFB1YmxpY2F0aW9uRXhjbHVkZVJlbGF0aW9ucyhPaWQgcHVi aWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKK3sKKwlyZXR1cm4gR2V0UHViSW5j bHVkZWRPckV4Y2x1ZGVkUmVscyhwdWJpZCwgcHViX3BhcnRvcHQsIHRydWUpOworfQorCiAvKgog ICogR2V0cyBsaXN0IG9mIHB1YmxpY2F0aW9uIG9pZHMgZm9yIHB1YmxpY2F0aW9ucyBtYXJrZWQg YXMgRk9SIEFMTCBUQUJMRVMuCiAgKi8KQEAgLTg2MSwxMyArOTAyLDE2IEBAIEdldEFsbFRhYmxl c1B1YmxpY2F0aW9ucyh2b2lkKQogICogcm9vdCBwYXJ0aXRpb25lZCB0YWJsZXMuCiAgKi8KIExp c3QgKgotR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQor R2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBib29sIHB1YnZpYXJv b3QpCiB7CiAJUmVsYXRpb24JY2xhc3NSZWw7CiAJU2NhbktleURhdGEga2V5WzFdOwogCVRhYmxl U2NhbkRlc2Mgc2NhbjsKIAlIZWFwVHVwbGUJdHVwbGU7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklM OworCUxpc3QJICAgKmV4Y2VwdGxpc3Q7CisKKwlleGNlcHRsaXN0ID0gR2V0UHVibGljYXRpb25F eGNsdWRlUmVsYXRpb25zKHB1YmlkLCBwdWJ2aWFyb290ID8gUFVCTElDQVRJT05fUEFSVF9BTEwg OiBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOwogCiAJY2xhc3NSZWwgPSB0YWJsZV9vcGVuKFJlbGF0 aW9uUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKIApAQCAtODg0LDcgKzkyOCw4IEBAIEdl dEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKIAkJT2lkCQkJ cmVsaWQgPSByZWxGb3JtLT5vaWQ7CiAKIAkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlk LCByZWxGb3JtKSAmJgotCQkJIShyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290 KSkKKwkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYgcHVidmlhcm9vdCkgJiYKKwkJCSFs aXN0X21lbWJlcl9vaWQoZXhjZXB0bGlzdCwgcmVsaWQpKQogCQkJcmVzdWx0ID0gbGFwcGVuZF9v aWQocmVzdWx0LCByZWxpZCk7CiAJfQogCkBAIC05MDUsNyArOTUwLDggQEAgR2V0QWxsVGFibGVz UHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQogCQkJT2lkCQkJcmVsaWQgPSBy ZWxGb3JtLT5vaWQ7CiAKIAkJCWlmIChpc19wdWJsaXNoYWJsZV9jbGFzcyhyZWxpZCwgcmVsRm9y bSkgJiYKLQkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24pCisJCQkJIXJlbEZvcm0tPnJlbGlz cGFydGl0aW9uICYmCisJCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRsaXN0LCByZWxpZCkpCiAJ CQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJCX0KIApAQCAtMTE2MCw3 ICsxMjA2LDggQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQog CQkJICogdGhvc2UuIE90aGVyd2lzZSwgZ2V0IHRoZSBwYXJ0aXRpb25lZCB0YWJsZSBpdHNlbGYu CiAJCQkgKi8KIAkJCWlmIChwdWJfZWxlbS0+YWxsdGFibGVzKQotCQkJCXB1Yl9lbGVtX3RhYmxl cyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKHB1Yl9lbGVtLT5wdWJ2aWFyb290 KTsKKwkJCQlwdWJfZWxlbV90YWJsZXMgPSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9u cyhwdWJfZWxlbS0+b2lkLAorCQkJCQkJCQkJCQkJCQkJCSAgIHB1Yl9lbGVtLT5wdWJ2aWFyb290 KTsKIAkJCWVsc2UKIAkJCXsKIAkJCQlMaXN0CSAgICpyZWxpZHMsCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3B1YmxpY2F0aW9uY21kcy5jCmluZGV4IDRkMWVkODc1ODQ5Li5kMjVkZTMzMWMzNCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTIwNCw2ICsyMDQsMTEgQEAgT2Jq ZWN0c0luUHVibGljYXRpb25Ub09pZHMoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRl ICpwc3RhdGUsCiAJCXN3aXRjaCAocHVib2JqLT5wdWJvYmp0eXBlKQogCQl7CiAJCQljYXNlIFBV QkxJQ0FUSU9OT0JKX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2VwdCA9IGZhbHNl OworCQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CisJCQkJYnJl YWs7CisJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRToKKwkJCQlwdWJvYmotPnB1 YnRhYmxlLT5leGNlcHQgPSB0cnVlOwogCQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2Jq LT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19J Tl9TQ0hFTUE6CkBAIC0yNzgsNyArMjgzLDcgQEAgY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dh bGtlcihOb2RlICpub2RlLCByZl9jb250ZXh0ICpjb250ZXh0KQogICovCiBib29sCiBwdWJfcmZf Y29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlz dCAqYW5jZXN0b3JzLAotCQkJCQkJCSAgIGJvb2wgcHVidmlhcm9vdCkKKwkJCQkJCQkgICBib29s IHB1YnZpYXJvb3QsIGJvb2wgcHViYWxsdGFibGVzKQogewogCUhlYXBUdXBsZQlyZnR1cGxlOwog CU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWxhdGlvbik7CkBAIC0zMDUsNyArMzEw LDggQEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24g cmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAlpZiAocHVidmlhcm9vdCAmJiByZWxhdGlvbi0+ cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7CiAJCXB1Ymxpc2hfYXNfcmVsaWQKLQkJCT0gR2V0 VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJ CT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxM LAorCQkJCQkJCQkJCQkgIHB1YmFsbHRhYmxlcyk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxp c2hfYXNfcmVsaWQpKQogCQkJcHVibGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAtMzY1LDcgKzM3 MSw3IEBAIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9u IHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiBib29sCiBwdWJfY29udGFpbnNfaW52YWxpZF9j b2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCQkJ CQkJCWJvb2wgcHVidmlhcm9vdCwgY2hhciBwdWJnZW5jb2xzX3R5cGUsCi0JCQkJCQkJYm9vbCAq aW52YWxpZF9jb2x1bW5fbGlzdCwKKwkJCQkJCQlib29sIHB1YmFsbHRhYmxlcywgYm9vbCAqaW52 YWxpZF9jb2x1bW5fbGlzdCwKIAkJCQkJCQlib29sICppbnZhbGlkX2dlbl9jb2wpCiB7CiAJT2lk CQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTM4OSw3ICszOTUsOCBA QCBwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlv biwgTGlzdCAqYW5jZXN0b3JzLAogCSAqLwogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5y ZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKLQkJcHVibGlzaF9hc19yZWxpZCA9IEdldFRvcE1v c3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywgTlVMTCk7CisJCXB1Ymxp c2hfYXNfcmVsaWQgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNl c3RvcnMsCisJCQkJCQkJCQkJCQkJCSAgIE5VTEwsIHB1YmFsbHRhYmxlcyk7CiAKIAkJaWYgKCFP aWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVibGlzaF9hc19yZWxpZCA9IHJlbGlk OwpAQCAtOTIxLDUyICs5MjgsNTAgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJLyogTWFrZSB0aGUgY2hhbmdlcyB2 aXNpYmxlLiAqLwogCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CiAKLQkvKiBBc3NvY2lhdGUg b2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNhdGlvbi4gKi8KLQlpZiAoc3RtdC0+Zm9yX2FsbF90YWJs ZXMpCi0JewotCQkvKiBJbnZhbGlkYXRlIHJlbGNhY2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5m byBpcyByZWJ1aWx0LiAqLwotCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOwotCX0KLQll bHNlCi0JewotCQlPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBw c3RhdGUsICZyZWxhdGlvbnMsCi0JCQkJCQkJCSAgICZzY2hlbWFpZGxpc3QpOworCU9iamVjdHNJ blB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9ucywK KwkJCQkJCQkgICAmc2NoZW1haWRsaXN0KTsKIAotCQkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSBy ZXF1aXJlcyBzdXBlcnVzZXIgKi8KLQkJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwgJiYgIXN1cGVy dXNlcigpKQotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklD SUVOVF9QUklWSUxFR0UpLAotCQkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0 ZSBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbiIpKTsKKwkvKiBGT1IgVEFCTEVTIElO IFNDSEVNQSByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCAm JiAhc3VwZXJ1c2VyKCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lO U1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8g Y3JlYXRlIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpY2F0aW9uIikpOwogCi0JCWlmIChyZWxh dGlvbnMgIT0gTklMKQotCQl7Ci0JCQlMaXN0CSAgICpyZWxzOworCWlmIChyZWxhdGlvbnMgIT0g TklMKQorCXsKKwkJTGlzdAkgICAqcmVsczsKIAotCQkJcmVscyA9IE9wZW5UYWJsZUxpc3QocmVs YXRpb25zKTsKLQkJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUtPnBfc291 cmNldGV4dCwKLQkJCQkJCQkJCSBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJCXJlbHMg PSBPcGVuVGFibGVMaXN0KHJlbGF0aW9ucyk7CisJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhy ZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290KTsKIAotCQkJQ2hlY2tQdWJSZWxhdGlvbkNvbHVtbkxpc3Qoc3RtdC0+cHVibmFtZSwg cmVscywKLQkJCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwsCi0JCQkJCQkJCQkgICBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJCUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0KHN0 bXQtPnB1Ym5hbWUsIHJlbHMsCisJCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwsCisJCQkJ CQkJCSAgIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKIAotCQkJUHVibGljYXRpb25BZGRU YWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKLQkJCUNsb3NlVGFibGVMaXN0KHJlbHMp OwotCQl9CisJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7 CisJCUNsb3NlVGFibGVMaXN0KHJlbHMpOworCX0KIAotCQlpZiAoc2NoZW1haWRsaXN0ICE9IE5J TCkKLQkJewotCQkJLyoKLQkJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQgdW50aWwgdGhlIHB1Ymxp Y2F0aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVudAotCQkJICogY29uY3VycmVudCBzY2hlbWEgZGVs ZXRpb24uCi0JCQkgKi8KLQkJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7Ci0JCQlQdWJs aWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOwotCQl9 CisJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwpCisJeworCQkvKgorCQkgKiBTY2hlbWEgbG9jayBp cyBoZWxkIHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHRvIHByZXZlbnQKKwkJICog Y29uY3VycmVudCBzY2hlbWEgZGVsZXRpb24uCisJCSAqLworCQlMb2NrU2NoZW1hTGlzdChzY2hl bWFpZGxpc3QpOworCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3Qs IHRydWUsIE5VTEwpOwogCX0KIAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7 CiAKKwkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNhdGlvbi4gKi8KKwlpZiAo c3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJeworCQkvKiBJbnZhbGlkYXRlIHJlbGNhY2hlIHNvIHRo YXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1aWx0LiAqLworCQlDYWNoZUludmFsaWRhdGVSZWxj YWNoZUFsbCgpOworCX0KKwogCUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKFB1YmxpY2F0aW9u UmVsYXRpb25JZCwgcHVib2lkLCAwKTsKIAogCWlmICh3YWxfbGV2ZWwgIT0gV0FMX0xFVkVMX0xP R0lDQUwpCkBAIC0xMjQ0LDYgKzEyNDksMjcgQEAgQWx0ZXJQdWJsaWNhdGlvblJlc2V0KFBhcnNl U3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJdmFsdWVzW0FudW1f cGdfcHVibGljYXRpb25fcHViZ2VuY29scyAtIDFdID0gQ2hhckdldERhdHVtKFBVQl9ERUZBVUxU X0dFTkNPTFMpOwogCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29scyAtIDFd ID0gdHJ1ZTsKIAorCS8qCisJICogTG9jayB0aGUgcHVibGljYXRpb24gc28gbm9ib2R5IGVsc2Ug Y2FuIGRvIGFueXRoaW5nIHdpdGggaXQuIFRoaXMKKwkgKiBwcmV2ZW50cyBjb25jdXJyZW50IHB1 YmxpY2F0aW9uIHBhcmFtZXRlciBjaGFuZ2VzLCBhZGQvZHJvcCB0YWJsZXMocykKKwkgKiB0byB0 aGUgcHVibGljYXRpb24gYW5kIGFkZC9kcm9wIHNjaGVtYShzKSB0byB0aGUgcHVibGljYXRpb24u CisJICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFB1YmxpY2F0aW9uUmVsYXRpb25JZCwgcHViaWQs IDAsCisJCQkJCSAgIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOworCisJLyoKKwkgKiBJdCBpcyBwb3Nz aWJsZSB0aGF0IGJ5IHRoZSB0aW1lIHdlIGFjcXVpcmUgdGhlIGxvY2sgb24gcHVibGljYXRpb24s CisJICogY29uY3VycmVudCBEREwgaGFzIHJlbW92ZWQgaXQuIFdlIGNhbiB0ZXN0IHRoaXMgYnkg Y2hlY2tpbmcgdGhlCisJICogZXhpc3RlbmNlIG9mIHB1YmxpY2F0aW9uLiBXZSBnZXQgdGhlIHR1 cGxlIGFnYWluIHRvIGF2b2lkIHRoZSByaXNrIG9mCisJICogYW55IHB1YmxpY2F0aW9uIG9wdGlv biBnZXR0aW5nIGNoYW5nZWQuCisJICovCisJdHVwID0gU2VhcmNoU3lzQ2FjaGVDb3B5MShQVUJM SUNBVElPTk9JRCwgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklO RURfT0JKRUNUKSwKKwkJCQllcnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlz dCIsCisJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpKTsKKwogCS8qIFNldCBBTEwgVEFCTEVTIGZsYWcg dG8gZmFsc2UgKi8KIAlpZiAocHViZm9ybS0+cHViYWxsdGFibGVzKQogCXsKQEAgLTEyODEsNiAr MTMwNyw3OSBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAlDbG9zZVRhYmxlTGlzdChyZWxzKTsKIH0KIAorLyoK KyAqIENoZWNrIGlmIHRoZSBwdWJsaWNhdGlvbiBoYXMgZGVmYXVsdCB2YWx1ZXMuCisgKgorICog UmV0dXJucyB0cnVlIGlmIHRoZSBwdWJsaWNhdGlvbiBzYXRpc2ZpZXMgYWxsIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKKyAqIGEpIFB1YmxpY2F0aW9uIGlzIG5vdCBzZXQgd2l0aCAiRk9SIEFM TCBUQUJMRVMiCisgKiBiKSBQdWJsaWNhdGlvbiBpcyBoYXZpbmcgZGVmYXVsdCBwdWJsaWNhdGlv biBwYXJhbWV0ZXIgdmFsdWVzCisgKiBjKSBQdWJsaWNhdGlvbiBpcyBub3QgYXNzb2NpYXRlZCB3 aXRoIHNjaGVtYXMKKyAqIGQpIFB1YmxpY2F0aW9uIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggcmVs YXRpb25zCisgKi8KK3N0YXRpYyBib29sCitDaGVja1B1YmxpY2F0aW9uRGVmVmFsdWVzKEhlYXBU dXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVi bGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOwor CUxpc3QJICAgKnB1Ym9ianMgPSBOSUw7CisKKwlpZiAocHViZm9ybS0+cHViYWxsdGFibGVzICE9 IFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChwdWJmb3Jt LT5wdWJpbnNlcnQgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0lOU0VSVCB8fAorCQlwdWJmb3JtLT5w dWJ1cGRhdGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURSB8fAorCQlwdWJmb3JtLT5wdWJk ZWxldGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSB8fAorCQlwdWJmb3JtLT5wdWJ0cnVu Y2F0ZSAhPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEUgfHwKKwkJcHViZm9ybS0+cHVidmlh cm9vdCAhPSBQVUJfREVGQVVMVF9WSUFfUk9PVCkKKwkJcmV0dXJuIGZhbHNlOworCisJcHVib2Jq cyA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9i anMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwdWJvYmpzID0gR2V0UHVibGljYXRpb25SZWxhdGlv bnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9i anMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIFNldCBw dWJsaWNhdGlvbiB0byBwdWJsaXNoIGFsbCB0YWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitBbHRl clB1YmxpY2F0aW9uU2V0QWxsVGFibGVzKFJlbGF0aW9uIHJlbCwgSGVhcFR1cGxlIHR1cCkKK3sK KwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZID0g KEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCWJvb2wJCW51bGxzW05hdHRz X3BnX3B1YmxpY2F0aW9uXTsKKwlib29sCQlyZXBsYWNlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07 CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisKKyNpZmRlZiBVU0VfQVNT RVJUX0NIRUNLSU5HCisJQXNzZXJ0KCFwdWJmb3JtLT5wdWJhbGx0YWJsZXMpOworI2VuZGlmCisK KwkvKiBBZGQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGljYXRpb24gcmVxdWlyZXMgc3VwZXJ1c2Vy ICovCisJaWYgKCFzdXBlcnVzZXIoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVS UkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVy dXNlciB0byBBREQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGljYXRpb24iKSk7CisKKwltZW1zZXQo dmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9m KG51bGxzKSk7CisJbWVtc2V0KHJlcGxhY2VzLCBmYWxzZSwgc2l6ZW9mKHJlcGxhY2VzKSk7CisK KwkvKiBTZXQgQUxMIFRBQkxFUyBmbGFnICovCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25f cHViYWxsdGFibGVzIC0gMV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJcmVwbGFjZXNbQW51bV9w Z19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9IHRydWU7CisKKwl0dXAgPSBoZWFwX21v ZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscywKKwkJ CQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhlIGNhdGFsb2cuICovCisJQ2F0YWxvZ1R1 cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOworfQorCiAvKgogICogQWRkIG9yIHJl bW92ZSB0YWJsZSB0by9mcm9tIHB1YmxpY2F0aW9uLgogICovCkBAIC0xNDIwLDYgKzE1MTksNyBA QCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFw VHVwbGUgdHVwLAogCQkJCW9sZHJlbCA9IHBhbGxvYyhzaXplb2YoUHVibGljYXRpb25SZWxJbmZv KSk7CiAJCQkJb2xkcmVsLT53aGVyZUNsYXVzZSA9IE5VTEw7CiAJCQkJb2xkcmVsLT5jb2x1bW5z ID0gTklMOworCQkJCW9sZHJlbC0+ZXhjZXB0ID0gZmFsc2U7CiAJCQkJb2xkcmVsLT5yZWxhdGlv biA9IHRhYmxlX29wZW4ob2xkcmVsaWQsCiAJCQkJCQkJCQkJCSAgU2hhcmVVcGRhdGVFeGNsdXNp dmVMb2NrKTsKIAkJCQlkZWxyZWxzID0gbGFwcGVuZChkZWxyZWxzLCBvbGRyZWwpOwpAQCAtMTU5 Myw2ICsxNjkzLDIwIEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09X TkVSLCBPQkpFQ1RfUFVCTElDQVRJT04sCiAJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpOwogCisJaWYg KHN0bXQtPmZvcl9hbGxfdGFibGVzKQorCXsKKwkJYm9vbAkJaXNkZWZhdWx0ID0gQ2hlY2tQdWJs aWNhdGlvbkRlZlZhbHVlcyh0dXApOworCisJCWlmICghaXNkZWZhdWx0KQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAor CQkJCQllcnJtc2coImFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0 byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcyIpLAorCQkJCQllcnJk ZXRhaWwoIkFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3Nj aGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuIiksCisJCQkJCWVycmhpbnQoIlVzZSBBTFRFUiBQ VUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uIikpOworCisJCUFs dGVyUHVibGljYXRpb25TZXRBbGxUYWJsZXMocmVsLCB0dXApOworCX0KKwogCWlmIChzdG10LT5v cHRpb25zKQogCQlBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwgdHVw KTsKIAllbHNlIGlmIChzdG10LT5hY3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNhdGlvbikKQEAgLTE4 MDUsNiArMTkxOSw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQlwdWJfcmVsLT5y ZWxhdGlvbiA9IHJlbDsKIAkJcHViX3JlbC0+d2hlcmVDbGF1c2UgPSB0LT53aGVyZUNsYXVzZTsK IAkJcHViX3JlbC0+Y29sdW1ucyA9IHQtPmNvbHVtbnM7CisJCXB1Yl9yZWwtPmV4Y2VwdCA9IHQt PmV4Y2VwdDsKIAkJcmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJCXJlbGlkcyA9IGxh cHBlbmRfb2lkKHJlbGlkcywgbXlyZWxpZCk7CiAKQEAgLTE4NzcsNiArMTk5Miw3IEBAIE9wZW5U YWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCiAJCQkJLyogY2hpbGQgaW5oZXJpdHMgY29sdW1uIGxp c3QgZnJvbSBwYXJlbnQgKi8KIAkJCQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJ CQlwdWJfcmVsLT5leGNlcHQgPSB0LT5leGNlcHQ7CiAJCQkJcmVscyA9IGxhcHBlbmQocmVscywg cHViX3JlbCk7CiAJCQkJcmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBjaGlsZHJlbGlkKTsK IApAQCAtMTk1Miw4ICsyMDY4LDYgQEAgUHVibGljYXRpb25BZGRUYWJsZXMoT2lkIHB1YmlkLCBM aXN0ICpyZWxzLCBib29sIGlmX25vdF9leGlzdHMsCiB7CiAJTGlzdENlbGwgICAqbGM7CiAKLQlB c3NlcnQoIXN0bXQgfHwgIXN0bXQtPmZvcl9hbGxfdGFibGVzKTsKLQogCWZvcmVhY2gobGMsIHJl bHMpCiAJewogCQlQdWJsaWNhdGlvblJlbEluZm8gKnB1Yl9yZWwgPSAoUHVibGljYXRpb25SZWxJ bmZvICopIGxmaXJzdChsYyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IGNiODExNTIw YzI5Li40NzkxNmVmMzJhZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTg2MjMsNyAr ODYyMyw3IEBAIEFURXhlY1NldEV4cHJlc3Npb24oQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxh dGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsCiAJICogZXhwcmVzc2lvbnMuCiAJICovCiAJ aWYgKGF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwgJiYKLQkJR2V0 UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpKSAhPSBOSUwpCisJCUdl dFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgZmFsc2UpICE9IE5J TCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCiAJCQkJIGVycm1zZygiQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBu b3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIHRhYmxlcyB0aGF0 IGFyZSBwYXJ0IG9mIGEgcHVibGljYXRpb24iKSwKQEAgLTE4ODE4LDcgKzE4ODE4LDcgQEAgQVRQ cmVwQ2hhbmdlUGVyc2lzdGVuY2UoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWws IGJvb2wgdG9Mb2dnZWQpCiAJICogVU5MT0dHRUQsIGFzIFVOTE9HR0VEIHRhYmxlcyBjYW4ndCBi ZSBwdWJsaXNoZWQuCiAJICovCiAJaWYgKCF0b0xvZ2dlZCAmJgotCQlHZXRSZWxhdGlvblB1Ymxp Y2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCkpICE9IE5JTCkKKwkJbGlzdF9sZW5ndGgoR2V0 UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBmYWxzZSkpID4gMCkK IAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJF UkVRVUlTSVRFX1NUQVRFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY2hhbmdlIHRhYmxlIFwiJXNc IiB0byB1bmxvZ2dlZCBiZWNhdXNlIGl0IGlzIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIsCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQppbmRleCA4NTBkMGZkMmZkNS4uYmRiYmNjY2Q0N2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNDQ1 LDcgKzQ0NSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJdHJhbnNmb3JtX2VsZW1l bnRfbGlzdCB0cmFuc2Zvcm1fdHlwZV9saXN0CiAJCQkJVHJpZ2dlclRyYW5zaXRpb25zIFRyaWdn ZXJSZWZlcmVuY2luZwogCQkJCXZhY3V1bV9yZWxhdGlvbl9saXN0IG9wdF92YWN1dW1fcmVsYXRp b25fbGlzdAotCQkJCWRyb3Bfb3B0aW9uX2xpc3QgcHViX29ial9saXN0CisJCQkJZHJvcF9vcHRp b25fbGlzdCBwdWJfb2JqX2xpc3QgZXhjZXB0X3B1Yl9vYmpfbGlzdAogCiAldHlwZSA8cmV0Y2xh dXNlPiByZXR1cm5pbmdfY2xhdXNlCiAldHlwZSA8bm9kZT4JcmV0dXJuaW5nX29wdGlvbgpAQCAt NTg0LDYgKzU4NCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9kZT4JdmFy X3ZhbHVlIHpvbmVfdmFsdWUKICV0eXBlIDxyb2xlc3BlYz4gYXV0aF9pZGVudCBSb2xlU3BlYyBv cHRfZ3JhbnRlZF9ieQogJXR5cGUgPHB1YmxpY2F0aW9ub2JqZWN0c3BlYz4gUHVibGljYXRpb25P YmpTcGVjCisldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVjPiBFeGNlcHRQdWJsaWNhdGlvbk9i alNwZWMKIAogJXR5cGUgPGtleXdvcmQ+IHVucmVzZXJ2ZWRfa2V5d29yZCB0eXBlX2Z1bmNfbmFt ZV9rZXl3b3JkCiAldHlwZSA8a2V5d29yZD4gY29sX25hbWVfa2V5d29yZCByZXNlcnZlZF9rZXl3 b3JkCkBAIC0xMDY3Nyw3ICsxMDY3OCw3IEBAIEFsdGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdB VEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKICAqCiAgKiBDUkVB VEUgUFVCTElDQVRJT04gbmFtZSBbV0lUSCBvcHRpb25zXQogICoKLSAqIENSRUFURSBQVUJMSUNB VElPTiBGT1IgQUxMIFRBQkxFUyBbV0lUSCBvcHRpb25zXQorICogQ1JFQVRFIFBVQkxJQ0FUSU9O IEZPUiBBTEwgVEFCTEVTIFtFWENFUFQgW1RBQkxFXSB0YWJsZSBbLCAuLi5dXSBbV0lUSCBvcHRp b25zXQogICoKICAqIENSRUFURSBQVUJMSUNBVElPTiBGT1IgcHViX29iaiBbLCAuLi5dIFtXSVRI IG9wdGlvbnNdCiAgKgpAQCAtMTA2OTcsMTIgKzEwNjk4LDEzIEBAIENyZWF0ZVB1YmxpY2F0aW9u U3RtdDoKIAkJCQkJbi0+b3B0aW9ucyA9ICQ0OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJ fQotCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBvcHRfZGVmaW5p dGlvbgorCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBleGNlcHRf cHViX29ial9saXN0IG9wdF9kZWZpbml0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVQdWJsaWNhdGlv blN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVQdWJsaWNhdGlvblN0bXQpOwogCiAJCQkJCW4tPnB1 Ym5hbWUgPSAkMzsKLQkJCQkJbi0+b3B0aW9ucyA9ICQ3OworCQkJCQluLT5vcHRpb25zID0gJDg7 CisJCQkJCW4tPnB1Ym9iamVjdHMgPSAoTGlzdCAqKSQ3OwogCQkJCQluLT5mb3JfYWxsX3RhYmxl cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC0xMDc0MCw2ICsxMDc0 Miw3IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9 ICQyOwogCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKIAkJCQkJJCQtPnB1YnRhYmxl LT53aGVyZUNsYXVzZSA9ICQ0OworCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CiAJCQl8 IFRBQkxFUyBJTl9QIFNDSEVNQSBDb2xJZAogCQkJCXsKQEAgLTEwODE1LDYgKzEwODE4LDI1IEBA IHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25PYmpTcGVjCiAJCQkJCXsgJCQgPSBsYXBwZW5kKCQx LCAkMyk7IH0KIAk7CiAKK0V4Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYzoKKwkJCSByZWxhdGlvbl9l eHByCisJCQkJeworCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJ CSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOworCQkJCQkkJC0+ cHVidGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKKwkJCQkJJCQtPnB1YnRhYmxl LT5leGNlcHQgPSB0cnVlOworCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDE7CisJCQkJ CSQkLT5sb2NhdGlvbiA9IEAxOworCQkJCX0KKwk7CisKK2V4Y2VwdF9wdWJfb2JqX2xpc3Q6CUVY Q0VQVCBvcHRfdGFibGUgRXhjZXB0UHVibGljYXRpb25PYmpTcGVjCisJCQkJCXsgJCQgPSBsaXN0 X21ha2UxKCQzKTsgfQorCQkJfCBleGNlcHRfcHViX29ial9saXN0ICcsJyBFeGNlcHRQdWJsaWNh dGlvbk9ialNwZWMKKwkJCQkJeyAkJCA9IGxhcHBlbmQoJDEsICQzKTsgfQorCQkJfCAgLypFTVBU WSovCQkJCQkJCQl7ICQkID0gTlVMTDsgfQorCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAg KgogICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgKCBvcHRpb25zICkKQEAgLTEwODI3LDYg KzEwODQ5LDggQEAgcHViX29ial9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKICAqCiAgKiBBTFRF UiBQVUJMSUNBVElPTiBuYW1lIFJFU0VUCiAgKgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBB REQgQUxMIFRBQkxFUyBFWENFUFQgW1RBQkxFXSB0YWJsZV9uYW1lIFssIC4uLl0KKyAqCiAgKiBw dWJfb2JqIGlzIG9uZSBvZjoKICAqCiAgKgkJVEFCTEUgdGFibGVfbmFtZSBbLCAuLi5dCkBAIC0x MDg1Myw2ICsxMDg3NywxNSBAQCBBbHRlclB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+YWN0aW9u ID0gQVBfQWRkT2JqZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxU RVIgUFVCTElDQVRJT04gbmFtZSBBRERfUCBBTEwgVEFCTEVTIGV4Y2VwdF9wdWJfb2JqX2xpc3QK KwkJCQl7CisJCQkJCUFsdGVyUHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJs aWNhdGlvblN0bXQpOworCQkJCQluLT5wdWJuYW1lID0gJDM7CisJCQkJCW4tPnB1Ym9iamVjdHMg PSAkNzsKKwkJCQkJbi0+Zm9yX2FsbF90YWJsZXMgPSB0cnVlOworCQkJCQluLT5hY3Rpb24gPSBB UF9BZGRPYmplY3RzOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCQl8IEFMVEVSIFBV QkxJQ0FUSU9OIG5hbWUgU0VUIHB1Yl9vYmpfbGlzdAogCQkJCXsKIAkJCQkJQWx0ZXJQdWJsaWNh dGlvblN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCBmNGM5NzcyNjJjNS4uMDgx MTFiNTcxZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bn b3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQu YwpAQCAtMjA2NSw3ICsyMDY1LDggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAq ZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJaWYgKCFlbnRyeS0+cmVwbGljYXRlX3ZhbGlkKQog CXsKIAkJT2lkCQkJc2NoZW1hSWQgPSBnZXRfcmVsX25hbWVzcGFjZShyZWxpZCk7Ci0JCUxpc3QJ ICAgKnB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkKTsKKwkJTGlzdAkgICAq cHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQsIGZhbHNlKTsKKwkJTGlzdAkg ICAqZXhjZXB0VGFibGVQdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgdHJ1 ZSk7CiAKIAkJLyoKIAkJICogV2UgZG9uJ3QgYWNxdWlyZSBhIGxvY2sgb24gdGhlIG5hbWVzcGFj ZSBzeXN0ZW0gdGFibGUgYXMgd2UgYnVpbGQKQEAgLTIxNzYsMjIgKzIxNzcsNiBAQCBnZXRfcmVs X3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJCU9p ZAkJCXB1Yl9yZWxpZCA9IHJlbGlkOwogCQkJaW50CQkJYW5jZXN0b3JfbGV2ZWwgPSAwOwogCi0J CQkvKgotCQkJICogSWYgdGhpcyBpcyBhIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uLCBwaWNr IHRoZSBwYXJ0aXRpb24KLQkJCSAqIHJvb3QgYW5kIHNldCB0aGUgYW5jZXN0b3IgbGV2ZWwgYWNj b3JkaW5nbHkuCi0JCQkgKi8KLQkJCWlmIChwdWItPmFsbHRhYmxlcykKLQkJCXsKLQkJCQlwdWJs aXNoID0gdHJ1ZTsKLQkJCQlpZiAocHViLT5wdWJ2aWFyb290ICYmIGFtX3BhcnRpdGlvbikKLQkJ CQl7Ci0JCQkJCUxpc3QJICAgKmFuY2VzdG9ycyA9IGdldF9wYXJ0aXRpb25fYW5jZXN0b3JzKHJl bGlkKTsKLQotCQkJCQlwdWJfcmVsaWQgPSBsbGFzdF9vaWQoYW5jZXN0b3JzKTsKLQkJCQkJYW5j ZXN0b3JfbGV2ZWwgPSBsaXN0X2xlbmd0aChhbmNlc3RvcnMpOwotCQkJCX0KLQkJCX0KLQogCQkJ aWYgKCFwdWJsaXNoKQogCQkJewogCQkJCWJvb2wJCWFuY2VzdG9yX3B1Ymxpc2hlZCA9IGZhbHNl OwpAQCAtMjIxMCw3ICsyMTk1LDggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAq ZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJCQkJYW5jZXN0b3IgPSBHZXRUb3BNb3N0QW5j ZXN0b3JJblB1YmxpY2F0aW9uKHB1Yi0+b2lkLAogCQkJCQkJCQkJCQkJCQkJICAgYW5jZXN0b3Jz LAotCQkJCQkJCQkJCQkJCQkJICAgJmxldmVsKTsKKwkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCwK KwkJCQkJCQkJCQkJCQkJCSAgIHB1Yi0+YWxsdGFibGVzKTsKIAogCQkJCQlpZiAoYW5jZXN0b3Ig IT0gSW52YWxpZE9pZCkKIAkJCQkJewpAQCAtMjIyNSw2ICsyMjExLDggQEAgZ2V0X3JlbF9zeW5j X2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJCQlpZiAo bGlzdF9tZW1iZXJfb2lkKHB1YmlkcywgcHViLT5vaWQpIHx8CiAJCQkJCWxpc3RfbWVtYmVyX29p ZChzY2hlbWFQdWJpZHMsIHB1Yi0+b2lkKSB8fAorCQkJCQkocHViLT5hbGx0YWJsZXMgJiYKKwkJ CQkJICFsaXN0X21lbWJlcl9vaWQoZXhjZXB0VGFibGVQdWJpZHMsIHB1Yi0+b2lkKSkgfHwKIAkJ CQkJYW5jZXN0b3JfcHVibGlzaGVkKQogCQkJCQlwdWJsaXNoID0gdHJ1ZTsKIAkJCX0KQEAgLTIz MDMsNiArMjI5MSw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJl bGF0aW9uIHJlbGF0aW9uKQogCiAJCWxpc3RfZnJlZShwdWJpZHMpOwogCQlsaXN0X2ZyZWUoc2No ZW1hUHViaWRzKTsKKwkJbGlzdF9mcmVlKGV4Y2VwdFRhYmxlUHViaWRzKTsKIAkJbGlzdF9mcmVl KHJlbF9wdWJsaWNhdGlvbnMpOwogCiAJCWVudHJ5LT5yZXBsaWNhdGVfdmFsaWQgPSB0cnVlOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKaW5kZXggNTU5YmE5Y2RiMmMuLjVkNTVmMWY0ZWNl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKQEAgLTU3OTQsNiArNTc5NCw4IEBAIHZv aWQKIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1Ymxp Y2F0aW9uRGVzYyAqcHViZGVzYykKIHsKIAlMaXN0CSAgICpwdWJvaWRzOworCUxpc3QJICAgKmFs bHRhYmxlc3B1Ym9pZHM7CisJTGlzdAkgICAqZXhjZXB0cHVib2lkcyA9IE5JTDsKIAlMaXN0Q2Vs bCAgICpsYzsKIAlNZW1vcnlDb250ZXh0IG9sZGN4dDsKIAlPaWQJCQlzY2hlbWFpZDsKQEAgLTU4 MzEsOSArNTgzMywxMCBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJl bGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJcHViZGVzYy0+Z2VuY29sc192YWxp ZF9mb3JfZGVsZXRlID0gdHJ1ZTsKIAogCS8qIEZldGNoIHRoZSBwdWJsaWNhdGlvbiBtZW1iZXJz aGlwIGluZm8uICovCi0JcHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkKTsK KwlwdWJvaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQsIGZhbHNlKTsKIAlzY2hl bWFpZCA9IFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbGF0aW9uKTsKIAlwdWJvaWRzID0gbGlzdF9j b25jYXRfdW5pcXVlX29pZChwdWJvaWRzLCBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQp KTsKKwlleGNlcHRwdWJvaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQsIHRydWUp OwogCiAJaWYgKHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKQEAgLTU4NDUs MTQgKzU4NDgsMTkgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxh dGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQkJT2lkCQkJYW5jZXN0b3IgPSBsZmly c3Rfb2lkKGxjKTsKIAogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lk cywKLQkJCQkJCQkJCQkJIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yKSk7CisJCQkJ CQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpKTsKIAkJCXNj aGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpOwogCQkJcHVib2lkcyA9IGxpc3Rf Y29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKIAkJCQkJCQkJCQkJIEdldFNjaGVtYVB1YmxpY2F0 aW9ucyhzY2hlbWFpZCkpOworCQkJZXhjZXB0cHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9v aWQoZXhjZXB0cHVib2lkcywKKwkJCQkJCQkJCQkJCSAgIEdldFJlbGF0aW9uUHVibGljYXRpb25z KGFuY2VzdG9yLCB0cnVlKSk7CiAJCX0KIAl9Ci0JcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1 ZV9vaWQocHVib2lkcywgR2V0QWxsVGFibGVzUHVibGljYXRpb25zKCkpOwogCisJYWxsdGFibGVz cHVib2lkcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpOworCXB1Ym9pZHMgPSBsaXN0X2Nv bmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCisJCQkJCQkJCQkgbGlzdF9kaWZmZXJlbmNlX29pZChh bGx0YWJsZXNwdWJvaWRzLAorCQkJCQkJCQkJCQkJCQkgZXhjZXB0cHVib2lkcykpOwogCWZvcmVh Y2gobGMsIHB1Ym9pZHMpCiAJewogCQlPaWQJCQlwdWJpZCA9IGxmaXJzdF9vaWQobGMpOwpAQCAt NTg4Myw3ICs1ODkxLDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiBy ZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQlpZiAoIXB1YmZvcm0tPnB1YmFs bHRhYmxlcyAmJgogCQkJKHB1YmZvcm0tPnB1YnVwZGF0ZSB8fCBwdWJmb3JtLT5wdWJkZWxldGUp ICYmCiAJCQlwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJlbGF0aW9uLCBh bmNlc3RvcnMsCi0JCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9vdCkpCisJCQkJCQkJCQkJ ICAgcHViZm9ybS0+cHVidmlhcm9vdCwgcHViZm9ybS0+cHViYWxsdGFibGVzKSkKIAkJewogCQkJ aWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJCQlwdWJkZXNjLT5yZl92YWxpZF9mb3JfdXBkYXRl ID0gZmFsc2U7CkBAIC01OTAxLDYgKzU5MDksNyBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25E ZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCQlwdWJf Y29udGFpbnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCiAJCQkJ CQkJCQkJcHViZm9ybS0+cHVidmlhcm9vdCwKIAkJCQkJCQkJCQlwdWJmb3JtLT5wdWJnZW5jb2xz LAorCQkJCQkJCQkJCXB1YmZvcm0tPnB1YmFsbHRhYmxlcywKIAkJCQkJCQkJCQkmaW52YWxpZF9j b2x1bW5fbGlzdCwKIAkJCQkJCQkJCQkmaW52YWxpZF9nZW5fY29sKSkKIAkJewpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK aW5kZXggYzYyMjYxNzU1MjguLjc5NzQ3ZjlhOTlmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE4Myw2ICsx ODMsOCBAQCBzdGF0aWMgU2ltcGxlT2lkTGlzdCBleHRlbnNpb25faW5jbHVkZV9vaWRzID0ge05V TEwsIE5VTEx9Owogc3RhdGljIFNpbXBsZVN0cmluZ0xpc3QgZXh0ZW5zaW9uX2V4Y2x1ZGVfcGF0 dGVybnMgPSB7TlVMTCwgTlVMTH07CiBzdGF0aWMgU2ltcGxlT2lkTGlzdCBleHRlbnNpb25fZXhj bHVkZV9vaWRzID0ge05VTEwsIE5VTEx9OwogCitzdGF0aWMgU2ltcGxlUHRyTGlzdCBleGNlcHRp bmZvID0ge05VTEwsIE5VTEx9OworCiBzdGF0aWMgY29uc3QgQ2F0YWxvZ0lkIG5pbENhdGFsb2dJ ZCA9IHswLCAwfTsKIAogLyogb3ZlcnJpZGUgZm9yIHN0YW5kYXJkIGV4dHJhX2Zsb2F0X2RpZ2l0 cyBzZXR0aW5nICovCkBAIC00NTEyLDggKzQ1MTQsMzQgQEAgZHVtcFB1YmxpY2F0aW9uKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAqcHViaW5mbykKIAkJCQkJICBxcHVibmFt ZSk7CiAKIAlpZiAocHViaW5mby0+cHViYWxsdGFibGVzKQorCXsKKwkJU2ltcGxlUHRyTGlzdENl bGwgKmNlbGw7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgRk9SIEFMTCBUQUJM RVMiKTsKIAorCQkvKiBJbmNsdWRlIGV4Y2VwdGlvbiB0YWJsZXMgaWYgdGhlIHB1YmxpY2F0aW9u IGhhcyBleGNlcHQgdGFibGVzICovCisJCWZvciAoY2VsbCA9IGV4Y2VwdGluZm8uaGVhZDsgY2Vs bDsgY2VsbCA9IGNlbGwtPm5leHQpCisJCXsKKwkJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmlu Zm8gPSAoUHVibGljYXRpb25SZWxJbmZvICopIGNlbGwtPnB0cjsKKwkJCVRhYmxlSW5mbyAgKnRi aW5mbzsKKworCQkJaWYgKHB1YmluZm8gPT0gcHVicmluZm8tPnB1YmxpY2F0aW9uKQorCQkJewor CQkJCXRiaW5mbyA9IHB1YnJpbmZvLT5wdWJ0YWJsZTsKKworCQkJCWlmIChmaXJzdCkKKwkJCQl7 CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEVYQ0VQVCBUQUJMRSIpOworCQkJ CQlmaXJzdCA9IGZhbHNlOworCQkJCX0KKwkJCQllbHNlCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LCAiLCIpOworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OTFkgJXMi LCBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8pKTsKKwkJCX0KKwkJfQorCX0KKworCWZpcnN0 ID0gdHJ1ZTsKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBXSVRIIChwdWJsaXNoID0g JyIpOwogCWlmIChwdWJpbmZvLT5wdWJpbnNlcnQpCiAJewpAQCAtNDY3OSw2ICs0NzA3LDcgQEAg Z2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwg aW50IG51bVRhYmxlcykKIAlpbnQJCQlpX3BycmVsaWQ7CiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJ aW50CQkJaV9wcmF0dHJzOworCWludAkJCWlfcHJleGNlcHQ7CiAJaW50CQkJaSwKIAkJCQlqLAog CQkJCW50dXBzOwpAQCAtNDY5MCw4ICs0NzE5LDE3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFy Y2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAKIAkvKiBD b2xsZWN0IGFsbCBwdWJsaWNhdGlvbiBtZW1iZXJzaGlwIGluZm8uICovCiAJaWYgKGZvdXQtPnJl bW90ZVZlcnNpb24gPj0gMTUwMDAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks CisJCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCxcbiIpOwor CisJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZv ciBQRzE5LiAqLworCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxODAwMDApCisJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBwcmV4Y2VwdCxcbiIpOworCQllbHNlCisJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmYWxzZSBBUyBwcmV4Y2VwdCxcbiIpOworCiAJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQs IHBycHViaWQsIHBycmVsaWQsICIKIAkJCQkJCQkgInBnX2NhdGFsb2cucGdfZ2V0X2V4cHIocHJx dWFsLCBwcnJlbGlkKSBBUyBwcnJlbHF1YWwsICIKIAkJCQkJCQkgIihDQVNFXG4iCiAJCQkJCQkJ ICIgIFdIRU4gcHIucHJhdHRycyBJUyBOT1QgTlVMTCBUSEVOXG4iCkBAIC00NzAyLDYgKzQ3NDAs NyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5m b1tdLCBpbnQgbnVtVGFibGVzKQogCQkJCQkJCSAiICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5w cnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxuIgogCQkJCQkJCSAiICBFTFNFIE5VTEwg RU5EKSBwcmF0dHJzICIKIAkJCQkJCQkgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9y ZWwgcHIiKTsKKwl9CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJ CQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLCAiCkBAIC00NzE3LDYg KzQ3NTYsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g dGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWlfcHJyZWxpZCA9IFBRZm51bWJlcihyZXMsICJw cnJlbGlkIik7CiAJaV9wcnJlbHF1YWwgPSBQUWZudW1iZXIocmVzLCAicHJyZWxxdWFsIik7CiAJ aV9wcmF0dHJzID0gUFFmbnVtYmVyKHJlcywgInByYXR0cnMiKTsKKwlpX3ByZXhjZXB0ID0gUFFm bnVtYmVyKHJlcywgInByZXhjZXB0Iik7CiAKIAkvKiB0aGlzIGFsbG9jYXRpb24gbWF5IGJlIG1v cmUgdGhhbiB3ZSBuZWVkICovCiAJcHVicmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2Yo UHVibGljYXRpb25SZWxJbmZvKSk7CkBAIC00NzI4LDYgKzQ3NjgsNyBAQCBnZXRQdWJsaWNhdGlv blRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVz KQogCQlPaWQJCQlwcnJlbGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3BycmVsaWQp KTsKIAkJUHVibGljYXRpb25JbmZvICpwdWJpbmZvOwogCQlUYWJsZUluZm8gICp0YmluZm87CisJ CWNoYXIJICAgKnByZXhjZXB0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ByZXhj ZXB0KSk7CiAKIAkJLyoKIAkJICogSWdub3JlIGFueSBlbnRyaWVzIGZvciB3aGljaCB3ZSBhcmVu J3QgaW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhlCkBAIC00NzQxLDcgKzQ3ODIsMTEgQEAgZ2V0UHVi bGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51 bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9LLCBtYWtlIGEgRHVtcGFibGVPYmplY3Qg Zm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERP X1BVQkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgImYiKSA9PSAwKQorCQkJ cHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOworCQllbHNlCisJ CQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOwor CiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVvaWQgPQogCQkJYXRvb2lkKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQub2lkID0g YXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOwpAQCAtNDc4Miw2ICs0ODI3LDkgQEAg Z2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwg aW50IG51bVRhYmxlcykKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICov CiAJCXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmplY3QoJihwdWJyaW5mb1tqXS5kb2JqKSwg Zm91dCk7CiAKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgInQiKSA9PSAwKQorCQkJc2ltcGxlX3B0 cl9saXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJpbmZvW2pdKTsKKwogCQlqKys7CiAJfQog CkBAIC0xMTU2Miw2ICsxMTYxMCw5IEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0 LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBET19QVUJMSUNBVElPTjoKIAkJCWR1bXBQ dWJsaWNhdGlvbihmb3V0LCAoY29uc3QgUHVibGljYXRpb25JbmZvICopIGRvYmopOwogCQkJYnJl YWs7CisJCWNhc2UgRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCS8qIHdpbGwgYmUgZHVt cGVkIGluIGR1bXBQdWJsaWNhdGlvbiAqLworCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFVCTElDQVRJ T05fUkVMOgogCQkJZHVtcFB1YmxpY2F0aW9uVGFibGUoZm91dCwgKGNvbnN0IFB1YmxpY2F0aW9u UmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOwpAQCAtMTk4NzIsNiArMTk5MjMsNyBAQCBhZGRC b3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywK IAkJCWNhc2UgRE9fREVGQVVMVF9BQ0w6CiAJCQljYXNlIERPX1BPTElDWToKIAkJCWNhc2UgRE9f UFVCTElDQVRJT046CisJCQljYXNlIERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw6CiAJCQljYXNl IERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NI RU1BOgogCQkJY2FzZSBET19TVUJTQ1JJUFRJT046CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCAzOWVlZjFkNjYx Ny4uYTljYmVkOGM5Y2UgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtODEsNiArODEsNyBAQCB0eXBlZGVmIGVu dW0KIAlET19SRUZSRVNIX01BVFZJRVcsCiAJRE9fUE9MSUNZLAogCURPX1BVQkxJQ0FUSU9OLAor CURPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJRE9fUFVCTElDQVRJT05fUkVMLAogCURPX1BV QkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlET19SRUxfU1RBVFMsCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9z b3J0LmMKaW5kZXggNTM4ZTdkY2I0OTMuLjNlNWNlYTgzODRmIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29y dC5jCkBAIC05Miw2ICs5Miw3IEBAIGVudW0gZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBSSU9f RktfQ09OU1RSQUlOVCwKIAlQUklPX1BPTElDWSwKIAlQUklPX1BVQkxJQ0FUSU9OLAorCVBSSU9f UFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlQUklPX1BVQkxJQ0FUSU9OX1JFTCwKIAlQUklPX1BV QkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlQUklPX1NVQlNDUklQVElPTiwKQEAgLTE0Nyw2 ICsxNDgsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQogCVtE T19SRUZSRVNIX01BVFZJRVddID0gUFJJT19SRUZSRVNIX01BVFZJRVcsCiAJW0RPX1BPTElDWV0g PSBQUklPX1BPTElDWSwKIAlbRE9fUFVCTElDQVRJT05dID0gUFJJT19QVUJMSUNBVElPTiwKKwlb RE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTF0gPSBQUklPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUws CiAJW0RPX1BVQkxJQ0FUSU9OX1JFTF0gPSBQUklPX1BVQkxJQ0FUSU9OX1JFTCwKIAlbRE9fUFVC TElDQVRJT05fVEFCTEVfSU5fU0NIRU1BXSA9IFBSSU9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NI RU1BLAogCVtET19SRUxfU1RBVFNdID0gUFJJT19TVEFUSVNUSUNTX0RBVEFfREFUQSwKQEAgLTE0 OTgsNiArMTUwMCwxMSBAQCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpv YmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiUFVCTElDQVRJT04gKElEICVkIE9J RCAldSkiLAogCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAkJCXJldHVybjsK KwkJY2FzZSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOgorCQkJc25wcmludGYoYnVmLCBidWZz aXplLAorCQkJCQkgIlBVQkxJQ0FUSU9OIEVYQ0VQVCBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCisJ CQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOwogCQljYXNlIERP X1BVQkxJQ0FUSU9OX1JFTDoKIAkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKIAkJCQkJICJQVUJM SUNBVElPTiBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmlu ZGV4IDI0ODVkOGYzNjBlLi5iN2U5ODg5ZDNmMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwK QEAgLTMzMDIsNiArMzMwMiwyNiBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2UgPT4geyAlZnVsbF9y dW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ1JFQVRFIFBVQkxJQ0FU SU9OIHB1YjYnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUwLAorCQljcmVhdGVfc3FsID0+CisJ CSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI2IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBkdW1wX3Rl c3QudGVzdF90YWJsZTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgUFVCTElDQVRJ T04gcHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgT05MWSBkdW1wX3Rlc3QudGVzdF90 YWJsZSBXSVRIIChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7 XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+ IDEsIH0sCisJfSwKKworCSdDUkVBVEUgUFVCTElDQVRJT04gcHViNycgPT4geworCQljcmVhdGVf b3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1 YjcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIGR1bXBfdGVzdC50ZXN0X3RhYmxlLCBkdW1w X3Rlc3QudGVzdF9zZWNvbmRfdGFibGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRF IFBVQkxJQ0FUSU9OIHB1YjcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIE9OTFkgZHVtcF90 ZXN0LnRlc3RfdGFibGUsIE9OTFkgZHVtcF90ZXN0LnRlc3Rfc2Vjb25kX3RhYmxlIFdJVEggKHB1 Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnKTtcRQorCQkJL3htLAor CQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwl9LAor CiAJJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMScgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNTAs CiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMQpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBk ZDI1ZDJmZTdiOC4uMTBiNWY3ZjI5Y2IgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0zMDM5LDE3ICszMDM5LDM2IEBA IGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJ CSAgIiAgICAgICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9IHBy YXR0cnNbc10pXG4iCiAJCQkJCQkJCSAgIiAgICAgICAgRUxTRSBOVUxMIEVORCkgIgogCQkJCQkJ CQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgotCQkJCQkJCQkgICIgICAg IEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1 YmlkXG4iCi0JCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgT04gYy5v aWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQgPSAnJXMnXG4i CisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBw Lm9pZCA9IHByLnBycHViaWRcbiIKKwkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xh c3MgYyBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKKwkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxp ZCA9ICclcydcbiIsCisJCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCk7CisKKwkJCQkvKiBGSVhNRTog MTgwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE5MDAwMCBsYXRlciBmb3IgUEcxOS4gKi8KKwkJ CQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsICIgQU5EIE5PVCBwci5wcmV4Y2VwdFxuIik7CisKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAogCQkJCQkJCQkgICJVTklPTlxuIgogCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxu IgotCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgotCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgor CQkJCQkJCQkgICIJCSwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgogCQkJCQkJCQkg ICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgotCQkJCQkJCQkgICJXSEVSRSBw LnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgn JXMnKVxuIgotCQkJCQkJCQkgICJPUkRFUiBCWSAxOyIsCi0JCQkJCQkJCSAgb2lkLCBvaWQsIG9p ZCwgb2lkKTsKKwkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cu cGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIsCisJCQkJCQkJCSAgb2lkKTsKKwor CQkJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZv ciBQRzE5LiAqLworCQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE4MDAwMCkKKwkJCQkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJCSAgIiAgICAgQU5EIE5PVCBFWElTVFMgKFxuIgor CQkJCQkJCQkJICAiCQlTRUxFQ1QgMVxuIgorCQkJCQkJCQkJICAiCQlGUk9NIHBnX2NhdGFsb2cu cGdfcHVibGljYXRpb25fcmVsIHByXG4iCisJCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5w Z19jbGFzcyBwY1xuIgorCQkJCQkJCQkJICAiCQlPTiBwci5wcnJlbGlkID0gcGMub2lkXG4iCisJ CQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAnJXMnIEFORCBwci5wcnB1YmlkID0gcC5v aWQpXG4iLAorCQkJCQkJCQkJICBvaWQpOworCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1 ZiwgIk9SREVSIEJZIDE7Iik7CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC02NjkzLDggKzY3MTIs MTMgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkg ICIgICAgIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCiAJCQkJCQkJICAiV0hF UkUgYy5yZWxuYW1lc3BhY2UgPSBuLm9pZFxuIgogCQkJCQkJCSAgIiAgQU5EIGMub2lkID0gcHIu cHJyZWxpZFxuIgotCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iCi0JCQkJCQkJ ICAiT1JERVIgQlkgMSwyIiwgcHViaWQpOworCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAn JXMnXG4iLCBwdWJpZCk7CisKKwkJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNoYW5nZWQg dG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgw MDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgIEFORCBOT1QgcHIucHJleGNlcHRc biIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiT1JERVIgQlkgMSwyIik7CiAJCQlp ZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIlRhYmxlczoiKSwgZmFsc2Us ICZjb250KSkKIAkJCQlnb3RvIGVycm9yX3JldHVybjsKIApAQCAtNjcxMiw2ICs2NzM2LDI0IEBA IGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCWdvdG8gZXJy b3JfcmV0dXJuOwogCQkJfQogCQl9CisJCWVsc2UKKwkJeworCQkJLyogRklYTUU6IDE4MDAwMCBz aG91bGQgYmUgY2hhbmdlZCB0byAxOTAwMDAgbGF0ZXIgZm9yIFBHMTkuICovCisJCQlpZiAocHNl dC5zdmVyc2lvbiA+PSAxODAwMDApCisJCQl7CisJCQkJLyogR2V0IHRoZSBleGNsdWRlZCB0YWJs ZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljYXRpb24gKi8KKwkJCQlwcmludGZQUUV4cEJ1ZmZl cigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1QgY29uY2F0KGMucmVsbmFtZXNwYWNlOjpyZWduYW1l c3BhY2UsICcuJywgYy5yZWxuYW1lKVxuIgorCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdf Y2xhc3MgY1xuIgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlv bl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHByLnBy cHViaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIiAgQU5EIHByLnByZXhjZXB0XG4iCisJCQkJCQkJ CSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9u RGVzYygmYnVmLCBfKCJFeGNlcHQgdGFibGVzOiIpLAorCQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQp KQorCQkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJCX0KKwkJfQogCiAJCXByaW50VGFibGUoJmNv bnQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKIAkJcHJpbnRUYWJsZUNs ZWFudXAoJmNvbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j IGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDc4NDBmZGY2MmVhLi4wOGI5 ZGY1YmMzYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBi L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjI2NiwxMSArMjI2NiwxNiBAQCBt YXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiQURE IiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlJFU0VUIiwgIlNFVCIpOwogCS8q IEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRF UiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIikpCi0JCUNPTVBMRVRFX1dJVEgoIlRB QkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKKwkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyIs ICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIi LCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIikpCisJCUNP TVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikpCiAJCUNPTVBMRVRF X1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7Ci0JZWxzZSBpZiAo SGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwg IlRBQkxFIikgJiYKLQkJCSBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwllbHNlIGlmIChNYXRj aGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIkFMTCIsICJUQUJM RVMiLCAiRVhDRVBUIiwgIlRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1 ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYgZW5kc193aXRo KHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9s aXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FU SU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQiLCAiVEFCTEUi KSAmJiBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVF UlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKIAogCS8qCkBAIC0zNTgxLDYgKzM1ODYsMTAg QEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hl cygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIikpCiAJCUNP TVBMRVRFX1dJVEgoIlRBQkxFUyIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJM SUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiKSkKKwkJQ09NUExFVEVf V0lUSCgiRVhDRVBUIFRBQkxFIiwgIldJVEggKCIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhD RVBUIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JF QVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIsICJF WENFUFQiLCAiVEFCTEUiLCBNYXRjaEFueSkgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQog CQlDT01QTEVURV9XSVRIKCJXSVRIICgiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAi UFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiKSkKIAkJQ09NUExFVEVfV0lU SCgiSU4gU0NIRU1BIik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggNmUw NzQxOTBmZDIuLmEwOWYwZjJhYjk5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5o CkBAIC0xMzksMTEgKzEzOSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblJlbEluZm8K IAlSZWxhdGlvbglyZWxhdGlvbjsKIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsKIAlMaXN0CSAgICpj b2x1bW5zOworCWJvb2wJCWV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiBleHRlcm4g UHVibGljYXRpb24gKkdldFB1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVibGljYXRp b24gKkdldFB1YmxpY2F0aW9uQnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2lu Z19vayk7Ci1leHRlcm4gTGlzdCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKTsK K2V4dGVybiBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQsIGJvb2wgZXhj ZXB0X2ZsYWcpOwogCiAvKi0tLS0tLS0tLQogICogRXhwZWN0ZWQgdmFsdWVzIGZvciBwdWJfcGFy dG9wdCBwYXJhbWV0ZXIgb2YgR2V0UHVibGljYXRpb25SZWxhdGlvbnMoKSwKQEAgLTE2Miw4ICsx NjMsOSBAQCB0eXBlZGVmIGVudW0gUHVibGljYXRpb25QYXJ0T3B0CiB9IFB1YmxpY2F0aW9uUGFy dE9wdDsKIAogZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwg UHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KTsKK2V4dGVybiBMaXN0ICpHZXRQdWJsaWNh dGlvbkV4Y2x1ZGVSZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3Bh cnRvcHQpOwogZXh0ZXJuIExpc3QgKkdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucyh2b2lkKTsKLWV4 dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhib29sIHB1YnZpYXJv b3QpOworZXh0ZXJuIExpc3QgKkdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBw dWJpZCwgYm9vbCBwdWJ2aWFyb290KTsKIGV4dGVybiBMaXN0ICpHZXRQdWJsaWNhdGlvblNjaGVt YXMoT2lkIHB1YmlkKTsKIGV4dGVybiBMaXN0ICpHZXRTY2hlbWFQdWJsaWNhdGlvbnMoT2lkIHNj aGVtYWlkKTsKIGV4dGVybiBMaXN0ICpHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQg c2NoZW1haWQsCkBAIC0xNzQsNyArMTc2LDcgQEAgZXh0ZXJuIExpc3QgKkdldFB1YlBhcnRpdGlv bk9wdGlvblJlbGF0aW9ucyhMaXN0ICpyZXN1bHQsCiAJCQkJCQkJCQkJCVB1YmxpY2F0aW9uUGFy dE9wdCBwdWJfcGFydG9wdCwKIAkJCQkJCQkJCQkJT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJR2V0 VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMs Ci0JCQkJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwpOworCQkJCQkJCQkJCQlpbnQgKmFuY2Vz dG9yX2xldmVsLCBib29sIHB1YmFsbHRhYmxlcyk7CiAKIGV4dGVybiBib29sIGlzX3B1Ymxpc2hh YmxlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gYm9vbCBpc19zY2hlbWFfcHVibGlj YXRpb24oT2lkIHB1YmlkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVi bGljYXRpb25fcmVsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5o CmluZGV4IDkyY2MzNmRmZGY2Li5lN2Q3ZjNiYTg1YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uX3JlbC5oCkBAIC0zMSw2ICszMSw3IEBAIENBVEFMT0cocGdfcHVibGljYXRp b25fcmVsLDYxMDYsUHVibGljYXRpb25SZWxSZWxhdGlvbklkKQogCU9pZAkJCW9pZDsJCQkvKiBv aWQgKi8KIAlPaWQJCQlwcnB1YmlkIEJLSV9MT09LVVAocGdfcHVibGljYXRpb24pOyAvKiBPaWQg b2YgdGhlIHB1YmxpY2F0aW9uICovCiAJT2lkCQkJcHJyZWxpZCBCS0lfTE9PS1VQKHBnX2NsYXNz KTsJLyogT2lkIG9mIHRoZSByZWxhdGlvbiAqLworCWJvb2wJCXByZXhjZXB0IEJLSV9ERUZBVUxU KGYpOwkvKiBleGNsdWRlIHRoZSByZWxhdGlvbiAqLwogCiAjaWZkZWYJQ0FUQUxPR19WQVJMRU4J CQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAlwZ19ub2RlX3RyZWUg cHJxdWFsOwkJLyogcXVhbGlmaWNhdGlvbnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRp b25jbWRzLmgKaW5kZXggZjkwY2YxZWY4OTYuLjBhZDVkMjg3NTRkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuaApAQCAtMzIsMTAgKzMyLDExIEBAIGV4dGVybiBPYmplY3RB ZGRyZXNzIEFsdGVyUHVibGljYXRpb25Pd25lcihjb25zdCBjaGFyICpuYW1lLCBPaWQgbmV3T3du ZXJJZCk7CiBleHRlcm4gdm9pZCBBbHRlclB1YmxpY2F0aW9uT3duZXJfb2lkKE9pZCBwdWJpZCwg T2lkIG5ld093bmVySWQpOwogZXh0ZXJuIHZvaWQgSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhM aXN0ICpyZWxpZHMpOwogZXh0ZXJuIGJvb2wgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1u KE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sCi0JCQkJCQkJCQkJICAgTGlzdCAqYW5jZXN0 b3JzLCBib29sIHB1YnZpYXJvb3QpOworCQkJCQkJCQkJCSAgIExpc3QgKmFuY2VzdG9ycywgYm9v bCBwdWJ2aWFyb290LAorCQkJCQkJCQkJCSAgIGJvb2wgcHViYWxsdGFibGVzKTsKIGV4dGVybiBi b29sIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0 aW9uLAogCQkJCQkJCQkJCUxpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290LAotCQkJCQkJ CQkJCWNoYXIgcHViZ2VuY29sc190eXBlLAorCQkJCQkJCQkJCWNoYXIgcHViZ2VuY29sc190eXBl LCBib29sIHB1YmFsbHRhYmxlcywKIAkJCQkJCQkJCQlib29sICppbnZhbGlkX2NvbHVtbl9saXN0 LAogCQkJCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCk7CiBleHRlcm4gdm9pZCBJbnZhbGlk YXRlUHViUmVsU3luY0NhY2hlKE9pZCBwdWJpZCwgYm9vbCBwdWJhbGx0YWJsZXMpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCmluZGV4IGFmMjIwYjAyNzg4Li5mMmNjOTc4NDQ1NiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaApAQCAtNDI2OCw2ICs0MjY4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRp b25UYWJsZQogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gYmUgcHVibGlz aGVkICovCiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICovCiAJTGlz dAkgICAqY29sdW1uczsJCS8qIExpc3Qgb2YgY29sdW1ucyBpbiBhIHB1YmxpY2F0aW9uIHRhYmxl ICovCisJYm9vbAkJZXhjZXB0OwkJCS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiB9IFB1Ymxp Y2F0aW9uVGFibGU7CiAKIC8qCkBAIC00Mjc2LDYgKzQyNzcsNyBAQCB0eXBlZGVmIHN0cnVjdCBQ dWJsaWNhdGlvblRhYmxlCiB0eXBlZGVmIGVudW0gUHVibGljYXRpb25PYmpTcGVjVHlwZQogewog CVBVQkxJQ0FUSU9OT0JKX1RBQkxFLAkJLyogQSB0YWJsZSAqLworCVBVQkxJQ0FUSU9OT0JKX0VY Q0VQVF9UQUJMRSwJLyogQSB0YWJsZSB0byBiZSBleGNsdWRlZCAqLwogCVBVQkxJQ0FUSU9OT0JK X1RBQkxFU19JTl9TQ0hFTUEsCS8qIEFsbCB0YWJsZXMgaW4gc2NoZW1hICovCiAJUFVCTElDQVRJ T05PQkpfVEFCTEVTX0lOX0NVUl9TQ0hFTUEsCS8qIEFsbCB0YWJsZXMgaW4gZmlyc3QgZWxlbWVu dCBvZgogCQkJCQkJCQkJCQkgKiBzZWFyY2hfcGF0aCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCBlMDRmOTRiMzlmOC4uMTRiN2VkZTQ1MTUgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC0yMTAsMTMgKzIxMCwz NyBAQCBOb3QtbnVsbCBjb25zdHJhaW50czoKICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0 ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgbm9u ZSAgICAgICAgICAgICAgfCBmCiAoMSByb3cpCiAKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0g J0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0 YWJsZSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwxLCB0ZXN0cHViX3Ri bDI7CistLSBzcGVjaWZ5IEVYQ0VQVCB3aXRob3V0IFRBQkxFCitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCB0 ZXN0cHViX3RibDE7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworXGRScCsgdGVzdHB1Yl9m b3JhbGx0YWJsZXNfZXhjZXB0dGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6Cisg ICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDIiCisKK1xk UnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFi bGUxCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhj ZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKwogRFJPUCBUQUJMRSB0ZXN0 cHViX3RibDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHVi X2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJsX3NjaGVtYTsKK0RS T1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRl c3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRh Ymxlc19leGNlcHR0YWJsZSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxOwogQ1JF QVRFIFRBQkxFIHRlc3RwdWJfdGJsMyAoYSBpbnQpOwogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJs M2EgKGIgdGV4dCkgSU5IRVJJVFMgKHRlc3RwdWJfdGJsMyk7CiBTRVQgY2xpZW50X21pbl9tZXNz YWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjMgRk9SIFRBQkxFIHRl c3RwdWJfdGJsMzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNCBGT1IgVEFCTEUgT05MWSB0 ZXN0cHViX3RibDM7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjUgRk9SIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNiBG T1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CiBSRVNFVCBjbGll bnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1YjMKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMwpAQCAtMjM1LDggKzI1 OSwyNSBAQCBUYWJsZXM6CiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCiAKK1xk UnArIHRlc3RwdWI1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1YjUKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJh dGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAg ICAgICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90Ymwz IgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwzYSIKKworXGRScCsgdGVzdHB1YjYKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi NgorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290 IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2Vw dCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCisKIERST1AgVEFCTEUgdGVzdHB1 Yl90YmwzLCB0ZXN0cHViX3RibDNhOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1 YjQ7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNCwgdGVzdHB1YjUsIHRlc3Rw dWI2OwogLS0gVGVzdHMgZm9yIHBhcnRpdGlvbmVkIHRhYmxlcwogU0VUIGNsaWVudF9taW5fbWVz c2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ycGFydGVkOwpA QCAtMTkzMyw5ICsxOTc0LDE1IEBAIERST1AgVEFCTEUgZ2VuY29sczsKIC0tIFRlc3RzIGZvciBB TFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQKIENSRUFURSBTQ0hFTUEgcHViX3NjaDE7CiBDUkVB VEUgVEFCTEUgcHViX3NjaDEudGJsMSAoYSBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRi bDIgKGEgaW50KTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOwogUkVTRVQgY2xpZW50X21p bl9tZXNzYWdlczsKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVT JyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRB QkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJM RVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBw YXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBz ZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVz ZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAt LSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9y ZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTE5NTIsNyArMTk5OSwyNCBAQCBBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKICgxIHJvdykKIAorLS0gU2hvdWxkIHdvcmsgbm93IGFmdGVyIHJlc2V0 dGluZyB0aGUgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQURE IEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDEsIHB1Yl9zY2gxLnRibDI7Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Yl9zY2gxLnRi bDEiCisgICAgInB1Yl9zY2gxLnRibDIiCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgUkVTRVQ7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJf c2NoMS50YmwxOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIFRBQkxFJyBwdWJs aWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBF WENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVx dWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0 ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5k IG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRF UiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJp ZnkgdGhhdCB0YWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBl ZCBhZnRlciBSRVNFVAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTE5NzEs NiArMjAzNSwxMSBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogKDEg cm93KQogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRVMgSU4gU0NI RU1BIHB1YmxpYzsKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVT IElOIFNDSEVNQScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg QUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIGFkZGlu ZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVi bGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNob3Vs ZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4K K0hJTlQ6ICBVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJs aWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1Ymxp Y2F0aW9uIGFyZSBkcm9wcGVkIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 Yl9yZXNldApAQCAtMTk4OSw2ICsyMDU4LDEyIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgUkVTRVQ7CiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg U0VUIChQVUJMSVNIID0gJycpOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuIHRoZSAn UFVCTElTSCcgcGFyYW1ldGVyIGRvZXMgbm90IGhhdmUgZGVmYXVsdAorLS0gdmFsdWUKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJs aWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVU QUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2No ZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2UgQUxURVIgUFVCTElDQVRJT04g Li4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJ U0gnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQK QEAgLTIwMDYsNiArMjA4MSwxMiBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOwogKDEgcm93KQogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVC TElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBU QUJMRSB3aGVuICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGRvZXMgbm90 CistLSBoYXZlIGRlZmF1bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg QUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIGFkZGlu ZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVi bGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNob3Vs ZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4K K0hJTlQ6ICBVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJs aWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJh bWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CkBAIC0yMDQ0 LDkgKzIxMjUsMTMgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyMjsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBt dXN0IGJlIHN1cGVydXNlcgogRVJST1I6ICBtdXN0IGJlIHN1cGVydXNlciB0byBSRVNFVCBwdWJs aWNhdGlvbgorLS0gVmVyaWZ5IHRoYXQgb25seSBzdXBlcnVzZXIgY2FuIEFERCBBTEwgVEFCTEVT CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTOworRVJST1I6 ICBtdXN0IGJlIHN1cGVydXNlciB0byBBREQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGljYXRpb24K IFNFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKIERST1AgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldDsKIERST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgVEFCTEUgcHViX3Nj aDEudGJsMjsKIERST1AgU0NIRU1BIHB1Yl9zY2gxOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdl czsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0 aW9uLnNxbAppbmRleCA4NGFlYTcwMjdhMS4uNmU4MTRlZGFjZTYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9wdWJsaWNhdGlvbi5zcWwKQEAgLTEwNCwyMCArMTA0LDMzIEBAIFNFTEVDVCBwdWJuYW1lLCBw dWJhbGx0YWJsZXMgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJf Zm9yYWxsCiBcZCsgdGVzdHB1Yl90YmwyCiBcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlcwogCitT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxF IHRlc3RwdWJfdGJsMSwgdGVzdHB1Yl90YmwyOworLS0gc3BlY2lmeSBFWENFUFQgd2l0aG91dCBU QUJMRQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxl MSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgdGVzdHB1Yl90YmwxOworUkVTRVQgY2xpZW50X21pbl9t ZXNzYWdlczsKKworXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUKK1xkUnAr IHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMQorCiBEUk9QIFRBQkxFIHRlc3RwdWJf dGJsMjsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9y dGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hOworRFJPUCBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1 Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVz X2V4Y2VwdHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiAKIENSRUFU RSBUQUJMRSB0ZXN0cHViX3RibDMgKGEgaW50KTsKIENSRUFURSBUQUJMRSB0ZXN0cHViX3RibDNh IChiIHRleHQpIElOSEVSSVRTICh0ZXN0cHViX3RibDMpOwogU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWIzIEZPUiBUQUJMRSB0ZXN0 cHViX3RibDM7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjQgRk9SIFRBQkxFIE9OTFkgdGVz dHB1Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI1IEZPUiBBTEwgVEFCTEVTIEVY Q0VQVCBUQUJMRSB0ZXN0cHViX3RibDM7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjYgRk9S IEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIE9OTFkgdGVzdHB1Yl90YmwzOwogUkVTRVQgY2xpZW50 X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWIzCiBcZFJwKyB0ZXN0cHViNAorXGRScCsgdGVz dHB1YjUKK1xkUnArIHRlc3RwdWI2CiAKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwzLCB0ZXN0cHVi X3RibDNhOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1YjQ7CitEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNCwgdGVzdHB1YjUsIHRlc3RwdWI2OwogCiAtLSBUZXN0 cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJP Uic7CkBAIC0xMjI4LDE3ICsxMjQxLDMxIEBAIERST1AgVEFCTEUgZ2VuY29sczsKIC0tIFRlc3Rz IGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQKIENSRUFURSBTQ0hFTUEgcHViX3NjaDE7 CiBDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAoYSBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9z Y2gxLnRibDIgKGEgaW50KTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOwogUkVTRVQgY2xp ZW50X21pbl9tZXNzYWdlczsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFM TCBUQUJMRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFE RCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworCiAtLSBWZXJpZnkgdGhh dCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIFxkUnArIHRlc3RwdWJfcmVzZXQKIAor LS0gU2hvdWxkIHdvcmsgbm93IGFmdGVyIHJlc2V0dGluZyB0aGUgcHVibGljYXRpb24KK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1 Yl9zY2gxLnRibDEsIHB1Yl9zY2gxLnRibDI7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CisKIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gxLnRibDE7CiAKKy0tIENhbid0IGFkZCBFWENF UFQgVEFCTEUgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisK KwogLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24g YXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0xMjQ2LDYgKzEyNzMsOSBAQCBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKIAorLS0gQ2FuJ3QgYWRkIEVY Q0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BJyBwdWJsaWNhdGlvbgorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg cHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGgg dGhlIHB1YmxpY2F0aW9uIGFyZSBkcm9wcGVkIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jl c2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwpAQCAtMTI1Myw2ICsx MjgzLDEwIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAKIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOwogCistLSBDYW4n dCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gdGhlICdQVUJMSVNIJyBwYXJhbWV0ZXIgZG9lcyBub3Qg aGF2ZSBkZWZhdWx0CistLSB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRo YXQgJ1BVQkxJU0gnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKQEAgLTEyNjAsNiArMTI5NCwxMCBA QCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogCiBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1 ZScpOwogCistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJ VElPTl9ST09UJyBwYXJhbWV0ZXIgZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg cHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9S T09UJyBwYXJhbWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0xMjc2LDEwICsxMzE0LDE0IEBAIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBTRVQgUk9MRSBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCisKKy0tIFZlcmlmeSB0aGF0IG9u bHkgc3VwZXJ1c2VyIGNhbiBBREQgQUxMIFRBQkxFUworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cjsKIAogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2No MS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7 CiAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQK aW5kZXggNTg2ZmZiYTQzNGUuLmU4YTExN2YzNDIxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1 aWxkCkBAIC00Miw2ICs0Miw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAzM19ydW5fYXNfdGFi bGVfb3duZXIucGwnLAogICAgICAgJ3QvMDM0X3RlbXBvcmFsLnBsJywKICAgICAgICd0LzAzNV9j b25mbGljdHMucGwnLAorICAgICAgJ3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCcs CiAgICAgICAndC8xMDBfYnVncy5wbCcsCiAgICAgXSwKICAgfSwKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZDExNTI4MzgwOQotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRf dGFibGUucGwKQEAgLTAsMCArMSw4MyBAQAorCisjIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisjIExvZ2ljYWwgcmVwbGljYXRp b24gdGVzdHMgZm9yIGV4Y2VwdCB0YWJsZSBwdWJsaWNhdGlvbnMKK3VzZSBzdHJpY3Q7Cit1c2Ug d2FybmluZ3M7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FM OjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCisjIEluaXRpYWxpemUgcHVibGlzaGVy IG5vZGUKK215ICRub2RlX3B1Ymxpc2hlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5l dygncHVibGlzaGVyJyk7Ciskbm9kZV9wdWJsaXNoZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9 PiAnbG9naWNhbCcpOworJG5vZGVfcHVibGlzaGVyLT5zdGFydDsKKworIyBDcmVhdGUgc3Vic2Ny aWJlciBub2RlCitteSAkbm9kZV9zdWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rl ci0+bmV3KCdzdWJzY3JpYmVyJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5pbml0KGFsbG93c19zdHJl YW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3N1YnNjcmliZXItPnN0YXJ0OworCisjIFRlc3Qg cmVwbGljYXRpb24gd2l0aCBwdWJsaWNhdGlvbnMgY3JlYXRlZCB1c2luZyBGT1IgQUxMIFRBQkxF UyBFWENFUFQgVEFCTEUKKyMgY2xhdXNlLgorIyBDcmVhdGUgc2NoZW1hcyBhbmQgdGFibGVzIG9u IHB1Ymxpc2hlcgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFU RSBTQ0hFTUEgc2NoMSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMSBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsMTAp IEFTIGEiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUg VEFCTEUgcHVibGljLnRhYjEoYSBpbnQpIik7CisKKyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxl cyBvbiBzdWJzY3JpYmVyCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IkNSRUFURSBTQ0hFTUEgc2NoMSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJDUkVBVEUgVEFCTEUgc2NoMS50YWIxIChhIGludCkiKTsKKyRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxIChhIGlu dCkiKTsKKworIyBTZXR1cCBsb2dpY2FsIHJlcGxpY2F0aW9uCitteSAkcHVibGlzaGVyX2Nvbm5z dHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7Ciskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04g dGFwX3B1Yl9zY2hlbWEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHNjaDEudGFiMSIKKyk7 CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VC U0NSSVBUSU9OIHRhcF9zdWJfc2NoZW1hIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicg UFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEiCispOworCisjIFdhaXQgZm9yIGluaXRpYWwgdGFi bGUgc3luYyB0byBmaW5pc2gKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlv bl9zeW5jKCRub2RlX3B1Ymxpc2hlciwKKwkndGFwX3N1Yl9zY2hlbWEnKTsKKworIyBDaGVjayB0 aGUgdGFibGUgZGF0YSBkb2VzIG5vdCBzeW5jIGZvciBleGNsdWRlZCB0YWJsZQorbXkgJHJlc3Vs dCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291 bnQoKiksIG1pbihhKSwgbWF4KGEpIEZST00gc2NoMS50YWIxIik7CitpcygkcmVzdWx0LCBxcSgw fHwpLAorCSdjaGVjayB0aGVyZSBpcyBubyBpbml0aWFsIGRhdGEgY29waWVkIGZvciB0aGUgZXhj bHVkZWQgdGFibGUnKTsKKworIyBJbnNlcnQgc29tZSBkYXRhIGFuZCB2ZXJpZnkgdGhhdCBpbnNl cnRlZCBkYXRhIGlzIG5vdCByZXBsaWNhdGVkCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyBzY2gxLnRhYjEgVkFMVUVTKGdlbmVyYXRlX3Nlcmll cygxMSwyMCkpIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1 Yl9zY2hlbWEnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKiksIG1pbihhKSwgbWF4KGEpIEZST00gc2NoMS50YWIx Iik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hlY2sgcmVwbGljYXRlZCBpbnNlcnRzIG9uIHN1 YnNjcmliZXInKTsKKworIyBBbHRlciBwdWJsaWNhdGlvbiB0byBleGNsdWRlIGRhdGEgY2hhbmdl cyBpbiBwdWJsaWMudGFiMSBhbmQgdmVyaWZ5IHRoYXQKKyMgc3Vic2NyaWJlciBkb2VzIG5vdCBn ZXQgdGhlIGNoYW5nZWQgZGF0YSBmb3IgdGhpcyB0YWJsZS4KKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIFJF U0VUIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQ VUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgc2No MS50YWIxLCBwdWJsaWMudGFiMSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJJTlNFUlQgSU5UTyBwdWJsaWMudGFiMSBWQUxVRVMoZ2VuZXJhdGVfc2VyaWVz KDEsMTApKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJf c2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHB1YmxpYy50YWIx Iik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hlY2sgcm93cyBvbiBzdWJzY3JpYmVyIGNhdGNo dXAnKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c3RvcCgnZmFzdCcpOworJG5vZGVfcHVibGlzaGVy LT5zdG9wKCdmYXN0Jyk7CisKK2RvbmVfdGVzdGluZygpOwotLSAKMi4zNC4xCgo= --0000000000008a909d063a45ecb2 Content-Type: application/octet-stream; name="v16-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v16-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mda4co7y0 RnJvbSA4ZDM5N2M0MjQ0OWM2NzQ1ODNkNjliY2YyM2ExOTg4MjMzNDQxYjFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTE6NDE6MTggKzA1MzAKU3ViamVjdDogW1BBVENIIHYx NiAxLzNdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAog cmVzZXQgdGhlIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFk ZHMgYSBuZXcgUkVTRVQgY2xhdXNlIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVz ZXQKdGhlIHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0IHN0YXRlIHdoaWNoIGluY2x1ZGVzIHJl c2V0dGluZyB0aGUgcHVibGljYXRpb24KcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVTIGZs YWcgdG8gZmFsc2UgYW5kIGRyb3BwaW5nIHRoZSByZWxhdGlvbnMgYW5kCnNjaGVtYXMgdGhhdCBh cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KVXNhZ2U6CkFMVEVSIFBVQkxJQ0FU SU9OIHB1YjEgUkVTRVQ7Ci0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sICAgfCAgMzQgKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMgICAgfCAxMDggKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgIHwgICA5ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAg ICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5v dXQgfCAxMTggKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsICAgICAgfCAgNTcgKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMzE1 IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbAppbmRleCBkNWVhMzgzZThiYy4uMTc4ZjM5ZDk1NzUgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTI3LDYgKzI3LDcgQEAgQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBEUk9QIDxyZXBsYWMKIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApCiBBTFRF UiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwg Q1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KIEFMVEVSIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVOQU1FIFRPIDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFJFU0VUCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1 YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIApAQCAt NjksMTggKzcwLDMxIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgIDwvcGFyYT4KIAogICA8 cGFyYT4KLSAgIFRoZSByZW1haW5pbmcgdmFyaWFudHMgY2hhbmdlIHRoZSBvd25lciBhbmQgdGhl IG5hbWUgb2YgdGhlIHB1YmxpY2F0aW9uLgorICAgVGhlIDxsaXRlcmFsPk9XTkVSPC9saXRlcmFs PiBjbGF1c2Ugd2lsbCBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZQorICAgcHVibGljYXRpb24uCisg IDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSA8bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+IGNs YXVzZSB3aWxsIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGUKKyAgIHB1YmxpY2F0aW9uLgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBUaGUgPGxpdGVyYWw+UkVTRVQ8L2xpdGVyYWw+IGNsYXVzZSB3 aWxsIHJlc2V0IHRoZSBwdWJsaWNhdGlvbiB0byB0aGUgZGVmYXVsdAorICAgc3RhdGUuIFRoaXMg aW5jbHVkZXMgcmVzZXR0aW5nIGFsbCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzLCBzZXR0aW5nIHRo ZQorICAgPGxpdGVyYWw+QUxMIFRBQkxFUzwvbGl0ZXJhbD4gZmxhZyB0byA8bGl0ZXJhbD5mYWxz ZTwvbGl0ZXJhbD4sIGFuZAorICAgcmVtb3ZpbmcgYWxsIGFzc29jaWF0ZWQgdGFibGVzIGFuZCBz Y2hlbWFzIGZyb20gdGhlIHB1YmxpY2F0aW9uLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CiAgICBZ b3UgbXVzdCBvd24gdGhlIHB1YmxpY2F0aW9uIHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBQVUJMSUNB VElPTjwvY29tbWFuZD4uCiAgICBBZGRpbmcgYSB0YWJsZSB0byBhIHB1YmxpY2F0aW9uIGFkZGl0 aW9uYWxseSByZXF1aXJlcyBvd25pbmcgdGhhdCB0YWJsZS4KLSAgIFRoZSA8bGl0ZXJhbD5BREQg VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gYW5kCi0gICA8bGl0ZXJhbD5TRVQgVEFCTEVTIElO IFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUKLSAgIGludm9r aW5nIHVzZXIgdG8gYmUgYSBzdXBlcnVzZXIuCi0gICBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBt dXN0IGJlIGFibGUgdG8gPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+IHRvIHRoZQotICAgbmV3 IG93bmluZyByb2xlLCBhbmQgdGhhdCByb2xlIG11c3QgaGF2ZSA8bGl0ZXJhbD5DUkVBVEU8L2xp dGVyYWw+Ci0gICBwcml2aWxlZ2Ugb24gdGhlIGRhdGFiYXNlLgorICAgVGhlIDxsaXRlcmFsPkFE RCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwKKyAgIDxsaXRlcmFsPlNFVCBUQUJMRVMgSU4g U0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIGFuZAorICAgPGxpdGVyYWw+UkVTRVQ8 L2xpdGVyYWw+IG9mIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRoZSBpbnZva2luZyB1c2VyIHRvIGJl IGEKKyAgIHN1cGVydXNlci4gVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBiZSBhYmxlIHRv CisgICA8bGl0ZXJhbD5TRVQgUk9MRTwvbGl0ZXJhbD4gdG8gdGhlIG5ldyBvd25pbmcgcm9sZSwg YW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUKKyAgIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJp dmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4KICAgIEFsc28sIHRoZSBuZXcgb3duZXIgb2YgYQogICAg PGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy1mb3ItYWxsLXRhYmxl cyI+PGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+PC9saW5rPgogICAgb3IgPGxpbmsg bGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy1mb3ItdGFibGVzLWluLXNjaGVt YSI+PGxpdGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+PC9saW5rPgpAQCAtMjMw LDYgKzI0NCwxMiBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgVEFC TEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNhbGVzOwogICAgPHN0cnVjdG5hbWU+cHJvZHVjdGlv bl9wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT46CiA8cHJvZ3JhbWxpc3Rpbmc+CiBBTFRFUiBQVUJM SUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1c2VycywgZGVwYXJ0bWVu dHMsIFRBQkxFUyBJTiBTQ0hFTUEgcHJvZHVjdGlvbjsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJh PgorCisgIDxwYXJhPgorICAgUmVzZXQgdGhlIHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1lPnByb2R1 Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIg UFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBSRVNFVDsKIDwvcHJvZ3JhbWxpc3Rp bmc+PC9wYXJhPgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25j bWRzLmMKaW5kZXggMWJmN2VhYWU1YjMuLjRkMWVkODc1ODQ5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtNDksNiArNDksMTUgQEAKICNpbmNsdWRlICJ1dGlscy92 YXJsZW5hLmgiCiAKIAorLyogQ1JFQVRFIFBVQkxJQ0FUSU9OIGRlZmF1bHQgdmFsdWVzIGZvciBm bGFncyBhbmQgcHVibGljYXRpb24gcGFyYW1ldGVycyAqLworI2RlZmluZSBQVUJfREVGQVVMVF9B Q1RJT05fSU5TRVJUIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURSB0cnVl CisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEUgdHJ1ZQorI2RlZmluZSBQVUJfREVG QVVMVF9BQ1RJT05fVFJVTkNBVEUgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9WSUFfUk9PVCBm YWxzZQorI2RlZmluZSBQVUJfREVGQVVMVF9BTExfVEFCTEVTIGZhbHNlCisjZGVmaW5lIFBVQl9E RUZBVUxUX0dFTkNPTFMgUFVCTElTSF9HRU5DT0xTX05PTkUKKwogLyoKICAqIEluZm9ybWF0aW9u IHVzZWQgdG8gdmFsaWRhdGUgdGhlIGNvbHVtbnMgaW4gdGhlIHJvdyBmaWx0ZXIgZXhwcmVzc2lv bi4gU2VlCiAgKiBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2VyIGZvciBkZXRhaWxzLgpA QCAtOTEsMTIgKzEwMCwxMiBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkqcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uc19naXZlbiA9IGZhbHNlOwogCiAJ LyogZGVmYXVsdHMgKi8KLQlwdWJhY3Rpb25zLT5wdWJpbnNlcnQgPSB0cnVlOwotCXB1YmFjdGlv bnMtPnB1YnVwZGF0ZSA9IHRydWU7Ci0JcHViYWN0aW9ucy0+cHViZGVsZXRlID0gdHJ1ZTsKLQlw dWJhY3Rpb25zLT5wdWJ0cnVuY2F0ZSA9IHRydWU7Ci0JKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9y b290ID0gZmFsc2U7Ci0JKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBQVUJMSVNIX0dFTkNP TFNfTk9ORTsKKwlwdWJhY3Rpb25zLT5wdWJpbnNlcnQgPSBQVUJfREVGQVVMVF9BQ1RJT05fSU5T RVJUOworCXB1YmFjdGlvbnMtPnB1YnVwZGF0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEU7 CisJcHViYWN0aW9ucy0+cHViZGVsZXRlID0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURTsKKwlw dWJhY3Rpb25zLT5wdWJ0cnVuY2F0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURTsKKwkq cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBQVUJfREVGQVVMVF9WSUFfUk9PVDsKKwkqcHVi bGlzaF9nZW5lcmF0ZWRfY29sdW1ucyA9IFBVQl9ERUZBVUxUX0dFTkNPTFM7CiAKIAkvKiBQYXJz ZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgb3B0aW9ucykKQEAgLTExODcsNiArMTE5Niw5MSBA QCBJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKExpc3QgKnJlbGlkcykKIAkJQ2FjaGVJbnZhbGlk YXRlUmVsY2FjaGVBbGwoKTsKIH0KIAorLyoKKyAqIFJlc2V0IHRoZSBwdWJsaWNhdGlvbi4KKyAq CisgKiBSZXNldCB0aGUgcHVibGljYXRpb24gcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVT IGZsYWcgdG8gZmFsc2UgYW5kIGRyb3AKKyAqIGFsbCByZWxhdGlvbnMgYW5kIHNjaGVtYXMgdGhh dCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KKyAqLworc3RhdGljIHZvaWQK K0FsdGVyUHVibGljYXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRp b25TdG10ICpzdG10LAorCQkJCQkgIFJlbGF0aW9uIHJlbCwgSGVhcFR1cGxlIHR1cCkKK3sKKwlG b3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RS VUNUKHR1cCk7CisJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7CisJTGlzdAkgICAqc2NoZW1h cyA9IE5JTDsKKwlMaXN0CSAgICpyZWxzID0gTklMOworCUxpc3QJICAgKnJlbGlkcyA9IE5JTDsK Kwlib29sCQludWxsc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVwbGFjZXNbTmF0 dHNfcGdfcHVibGljYXRpb25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRpb25d OworCisJLyogUkVTRVQgcHVibGljYXRpb24gcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJaWYgKCFz dXBlcnVzZXIoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZG SUNJRU5UX1BSSVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBSRVNF VCBwdWJsaWNhdGlvbiIpKTsKKworCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsK KwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKKwltZW1zZXQocmVwbGFjZXMs IGZhbHNlLCBzaXplb2YocmVwbGFjZXMpKTsKKworCS8qIFJlc2V0IHRoZSBwdWJsaWNhdGlvbiBw YXJhbWV0ZXJzICovCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViaW5zZXJ0IC0gMV0g PSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX0lOU0VSVCk7CisJcmVwbGFjZXNbQW51 bV9wZ19wdWJsaWNhdGlvbl9wdWJpbnNlcnQgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9w Z19wdWJsaWNhdGlvbl9wdWJ1cGRhdGUgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9B Q1RJT05fVVBEQVRFKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVwZGF0ZSAt IDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmRlbGV0ZSAtIDFd ID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEUpOworCXJlcGxhY2VzW0Fu dW1fcGdfcHVibGljYXRpb25fcHViZGVsZXRlIC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1f cGdfcHVibGljYXRpb25fcHVidHJ1bmNhdGUgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVM VF9BQ1RJT05fVFJVTkNBVEUpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVidHJ1 bmNhdGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFy b290IC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfVklBX1JPT1QpOworCXJlcGxhY2Vz W0FudW1fcGdfcHVibGljYXRpb25fcHVidmlhcm9vdCAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tB bnVtX3BnX3B1YmxpY2F0aW9uX3B1YmdlbmNvbHMgLSAxXSA9IENoYXJHZXREYXR1bShQVUJfREVG QVVMVF9HRU5DT0xTKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmdlbmNvbHMg LSAxXSA9IHRydWU7CisKKwkvKiBTZXQgQUxMIFRBQkxFUyBmbGFnIHRvIGZhbHNlICovCisJaWYg KHB1YmZvcm0tPnB1YmFsbHRhYmxlcykKKwl7CisJCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9u X3B1YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMp OworCQlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gdHJ1 ZTsKKwkJQ2FjaGVJbnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKKwl9CisKKwl0dXAgPSBoZWFwX21v ZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscywKKwkJ CQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhlIGNhdGFsb2cuICovCisJQ2F0YWxvZ1R1 cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOworCisJLyogRHJvcCB0aGUgc2NoZW1h cyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uICovCisJc2NoZW1hcyA9IEdldFB1Ymxp Y2F0aW9uU2NoZW1hcyhwdWJpZCk7CisJUHVibGljYXRpb25Ecm9wU2NoZW1hcyhwdWJpZCwgc2No ZW1hcywgdHJ1ZSk7CisKKwkvKiBHZXQgYWxsIHJlbGF0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhl IHB1YmxpY2F0aW9uICovCisJcmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQs IFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisKKwlmb3JlYWNoX29pZChyZWxpZCwgcmVsaWRzKQor CXsKKwkJUHVibGljYXRpb25SZWxJbmZvICpyZWw7CisKKwkJcmVsID0gcGFsbG9jKHNpemVvZihQ dWJsaWNhdGlvblJlbEluZm8pKTsKKwkJcmVsLT53aGVyZUNsYXVzZSA9IE5VTEw7CisJCXJlbC0+ Y29sdW1ucyA9IE5JTDsKKwkJcmVsLT5yZWxhdGlvbiA9IHRhYmxlX29wZW4ocmVsaWQsIFNoYXJl VXBkYXRlRXhjbHVzaXZlTG9jayk7CisJCXJlbHMgPSBsYXBwZW5kKHJlbHMsIHJlbCk7CisJfQor CisJLyogRHJvcCB0aGUgcmVsYXRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24g Ki8KKwlQdWJsaWNhdGlvbkRyb3BUYWJsZXMocHViZm9ybS0+b2lkLCByZWxzLCB0cnVlKTsKKwlD bG9zZVRhYmxlTGlzdChyZWxzKTsKK30KKwogLyoKICAqIEFkZCBvciByZW1vdmUgdGFibGUgdG8v ZnJvbSBwdWJsaWNhdGlvbi4KICAqLwpAQCAtMTUwMSw2ICsxNTk1LDggQEAgQWx0ZXJQdWJsaWNh dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCiAJ aWYgKHN0bXQtPm9wdGlvbnMpCiAJCUFsdGVyUHVibGljYXRpb25PcHRpb25zKHBzdGF0ZSwgc3Rt dCwgcmVsLCB0dXApOworCWVsc2UgaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9SZXNldFB1YmxpY2F0 aW9uKQorCQlBbHRlclB1YmxpY2F0aW9uUmVzZXQocHN0YXRlLCBzdG10LCByZWwsIHR1cCk7CiAJ ZWxzZQogCXsKIAkJTGlzdAkgICAqcmVsYXRpb25zID0gTklMOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNzMz NDViYjNjNzAuLjg1MGQwZmQyZmQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEwODI1LDYgKzEwODI1LDgg QEAgcHViX29ial9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKICAqCiAgKiBBTFRFUiBQVUJMSUNB VElPTiBuYW1lIFNFVCBwdWJfb2JqIFssIC4uLl0KICAqCisgKiBBTFRFUiBQVUJMSUNBVElPTiBu YW1lIFJFU0VUCisgKgogICogcHViX29iaiBpcyBvbmUgb2Y6CiAgKgogICoJCVRBQkxFIHRhYmxl X25hbWUgWywgLi4uXQpAQCAtMTA4NzEsNiArMTA4NzMsMTMgQEAgQWx0ZXJQdWJsaWNhdGlvblN0 bXQ6CiAJCQkJCW4tPmFjdGlvbiA9IEFQX0Ryb3BPYmplY3RzOwogCQkJCQkkJCA9IChOb2RlICop IG47CiAJCQkJfQorCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFJFU0VUCisJCQkJeworCQkJ CQlBbHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25TdG10 KTsKKwkJCQkJbi0+cHVibmFtZSA9ICQzOworCQkJCQluLT5hY3Rpb24gPSBBUF9SZXNldFB1Ymxp Y2F0aW9uOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsKIAogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggMzc1MjQzNjQyOTAuLjc4NDBmZGY2 MmVhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMjYzLDcgKzIyNjMsNyBAQCBtYXRjaF9w cmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxu YW1lPiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnkpKQotCQlDT01QTEVURV9XSVRIKCJBREQiLCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUg VE8iLCAiU0VUIik7CisJCUNPTVBMRVRFX1dJVEgoIkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwg IlJFTkFNRSBUTyIsICJSRVNFVCIsICJTRVQiKTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFt ZT4gQUREICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRj aEFueSwgIkFERCIpKQogCQlDT01QTEVURV9XSVRIKCJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxF Iik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggODZhMjM2YmQ1OGIuLmFmMjIwYjAyNzg4IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC00MzA1LDYgKzQzMDUsNyBAQCB0eXBlZGVmIGVudW0g QWx0ZXJQdWJsaWNhdGlvbkFjdGlvbgogCUFQX0FkZE9iamVjdHMsCQkJCS8qIGFkZCBvYmplY3Rz IHRvIHB1YmxpY2F0aW9uICovCiAJQVBfRHJvcE9iamVjdHMsCQkJCS8qIHJlbW92ZSBvYmplY3Rz IGZyb20gcHVibGljYXRpb24gKi8KIAlBUF9TZXRPYmplY3RzLAkJCQkvKiBzZXQgbGlzdCBvZiBv YmplY3RzICovCisJQVBfUmVzZXRQdWJsaWNhdGlvbiwJCS8qIHJlc2V0IHRoZSBwdWJsaWNhdGlv biAqLwogfSBBbHRlclB1YmxpY2F0aW9uQWN0aW9uOwogCiB0eXBlZGVmIHN0cnVjdCBBbHRlclB1 YmxpY2F0aW9uU3RtdApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJs aWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApp bmRleCAzYTJlYWNkNzkzZi4uZTA0Zjk0YjM5ZjggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHVibGljYXRpb24ub3V0CkBAIC0xOTMwLDYgKzE5MzAsMTI0IEBAIFRhYmxlczoKIERST1Ag UFVCTElDQVRJT04gcHViMTsKIERST1AgUFVCTElDQVRJT04gcHViMjsKIERST1AgVEFCTEUgZ2Vu Y29sczsKKy0tIFRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQKK0NSRUFURSBT Q0hFTUEgcHViX3NjaDE7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAoYSBpbnQpOworU0VU IGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworLS0g VmVyaWZ5IHRoYXQgJ0FMTCBUQUJMRVMnIGZsYWcgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVz ZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlv biB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1 bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAg ICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VU OworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gxLnRibDE7CistLSBWZXJpZnkgdGhhdCB0 YWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBhZnRlciBS RVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitUYWJsZXM6CisgICAgInB1Yl9zY2gxLnRi bDEiCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0 cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0 ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CistLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFz c29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xk UnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy IHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IG5vbmUgICAgICAgICAgICAgIHwgZgorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAicHVibGlj IgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1 Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVk IGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAg ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg U0VUIChQVUJMSVNIID0gJycpOworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0gnIHBhcmFtZXRlciBp cyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwg VHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwg ZiAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9y ZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSBy b290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygx IHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfVklB X1BBUlRJVElPTl9ST09UID0gJ3RydWUnKTsKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJQV9Q QVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8 IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8 IHQKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xk UnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy IHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUyA9IHN0b3JlZCk7CistLSBW ZXJpZnkgdGhhdCAnUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUycgcGFyYW1ldGVyIGlzIHJlc2V0 CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBzdG9yZWQgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0Cisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVz IHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQor CistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBjYW4gcmVzZXQgYSBwdWJsaWNhdGlvbgor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNl cgorRVJST1I6ICBtdXN0IGJlIHN1cGVydXNlciB0byBSRVNFVCBwdWJsaWNhdGlvbgorU0VUIFJP TEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0OworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOworRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiBS RVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwog RFJPUCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciwgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCBjOWUzMDkxOTBkZi4u ODRhZWE3MDI3YTEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9u LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTEyMjUs NiArMTIyNSw2MyBAQCBEUk9QIFBVQkxJQ0FUSU9OIHB1YjE7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1 YjI7CiBEUk9QIFRBQkxFIGdlbmNvbHM7CiAKKy0tIFRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElP TiAuLi4gUkVTRVQKK0NSRUFURSBTQ0hFTUEgcHViX3NjaDE7CitDUkVBVEUgVEFCTEUgcHViX3Nj aDEudGJsMSAoYSBpbnQpOworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CitSRVNFVCBjbGll bnRfbWluX21lc3NhZ2VzOworCistLSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxhZyBpcyBy ZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMTsKKworLS0gVmVyaWZ5IHRoYXQgdGFibGVz IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQK K1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVT RVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworCistLSBWZXJpZnkgdGhhdCBzY2hlbWFz IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQK K1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVT RVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgU0VUIChQVUJMSVNIID0gJycpOworCistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1l dGVyIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScp OworCistLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRl ciBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfR0VORVJBVEVEX0NPTFVNTlMgPSBzdG9yZWQpOwor CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUycgcGFyYW1ldGVyIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1 cGVydXNlciBjYW4gcmVzZXQgYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJPTEUgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg UkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorU0VUIFJPTEUgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyOworCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitEUk9QIFRB QkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKKwogUkVTRVQgY2xpZW50 X21pbl9tZXNzYWdlczsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIsIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7Ci0tIAoy LjM0LjEKCg== --0000000000008a909d063a45ecb2 Content-Type: application/octet-stream; name="v16-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v16-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mda4co862 RnJvbSAyMjJlYTg1NTgwYTZjM2JlZWFmNDdiZTM3NTFkY2Y0NzUzYTc0N2QyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTggSnVsIDIwMjUgMTU6MzE6NDQgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx NiAzLzNdIFNraXAgcHVibGlzaGluZyB0aGUgY29sdW1ucyBzcGVjaWZpZWQgaW4gRk9SIFRBQkxF CiBFWENFUFQKCkEgbmV3ICJUQUJMRSB0YWJsZV9uYW1lIEVYQ0VQVCAoY29sdW1uX2xpc3QpIiBj bGF1c2UgZm9yIENSRUFURS9BTFRFUgpQVUJMSUNBVElPTiBhbGxvd3Mgb25lIG9yIG1vcmUgY29s dW1ucyB0byBiZSBleGNsdWRlZC4gVGhlIHB1Ymxpc2hlcgp3aWxsIG5vdCBzZW5kIHRoZSBkYXRh IG9mIGV4Y2x1ZGVkIGNvbHVtbnMgdG8gdGhlIHN1YnNjcmliZXIuCgpUaGUgbmV3IHN5bnRheCBh bGxvd3Mgc3BlY2lmeWluZyBleGNsdWRlZCBjb2x1bW4gbGlzdCB3aGVuIGNyZWF0aW5nIG9yCmFs dGVyaW5nIGEgcHVibGljYXRpb24uIEZvciBleGFtcGxlOgpDUkVBVEUgUFVCTElDQVRJT04gcHVi bmFtZSBGT1IgVEFCTEUgdGFibmFtZSBFWENFUFQgKGNvbDEsIGNvbDIsIGNvbDMpCm9yCkFMVEVS IFBVQkxJQ0FUSU9OIHB1Ym5hbWUgQUREIFRBQkxFIHRhYm5hbWUgRVhDRVBUIChjb2wxLCBjb2wy LCBjb2wzKQoKVGhlIGNvbHVtbiAicHJleGNlcHQiIG9mIHN5c3RlbSBjYXRhbG9nICJwZ19wdWJs aWNhdGlvbl9yZWwiIGlzIHNldCB0bwoidHJ1ZSIgd2hlbiBwdWJsaWNhdGlvbiBpcyBjcmVhdGVk IHdpdGggRVhDRVBUIHRhYmxlIG9yIEVYQ0VQVCBjb2x1bW4KbGlzdC4gSWYgY29sdW1uICJwcmF0 dHJzIiBvZiBzeXN0ZW0gY2F0YWxvZyAicGdfcHVibGljYXRpb25fcmVsIiBpcyBhbHNvCnNldCBv ciBjb2x1bW4gInB1YmFsbHRhYmxlcyIgb2Ygc3lzdGVtIGNhdGFsb2cgInBnX3B1YmxpY2F0aW9u IiBpcwoiZmFsc2UiLCBpdCBpbmRpY2F0ZXMgdGhlIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCB3 aXRoIEVYQ0VQVCBjbGF1c2UKYW5kIGNvbHVtbnMgaW4gInByYXR0cnMiIGFyZSBleGNsdWRlZCBm cm9tIGJlaW5nIHB1Ymxpc2hlZC4KCnBnX2R1bXAgaXMgdXBkYXRlZCB0byBpZGVudGlmeSBhbmQg ZHVtcCB0aGUgZXhjbHVkZWQgY29sdW1uIGxpc3Qgb2YgdGhlCnB1YmxpY2F0aW9uLgoKVGhlIHBz cWwgXGQgZmFtaWx5IG9mIGNvbW1hbmRzIGNhbiBub3cgZGlzcGxheSBleGNsdWRlZCBjb2x1bW4g bGlzdC4gZS5nLgpwc3FsIFxkUnArIHZhcmlhbnQgd2lsbCBub3cgZGlzcGxheSBhc3NvY2lhdGVk ICJFWENFUFQgKGNvbHVtbl9saXN0KSIgaWYKYW55LgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwt cmVwbGljYXRpb24uc2dtbCAgICAgICAgIHwgMTE0ICsrKysrKysrKysrKy0tLS0KIGRvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAxMCArLQogZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDUyICsrKysrKy0tCiBzcmMv YmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgICAgICAgICAgfCAgNjEgKysrKysrKyst CiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAgMzAgKysr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICA2NSAr KysrKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8 ICA2MSArKysrKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAg ICAgICB8ICA0NSArKysrLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAg ICAgICAgIHwgMTAwICsrKysrKysrKy0tLS0tCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uaCAgICAgICAgICB8ICAgNiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbl9yZWwuaCAgICAgIHwgICA1ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1Ymxp Y2F0aW9uLm91dCAgICAgfCAgNzIgKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsICAgICAgICAgIHwgIDUyICsrKysrKysrCiAuLi4vdC8wMzZfcmVwX2NoYW5n ZXNfZXhjZXB0X3RhYmxlLnBsICAgICAgICAgfCAxMjQgKysrKysrKysrKysrKysrKystCiAxNyBm aWxlcyBjaGFuZ2VkLCA2OTQgaW5zZXJ0aW9ucygrKSwgMTEzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKaW5kZXggMWJiMWRiMjYwNDUuLmIwNDVkODE0ZjA1IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAt NjU3Myw3ICs2NTczLDEwIEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRp b24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8c3RydWN0 ZmllbGQ+cHJleGNlcHQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgogICAgICAgPC9w YXJhPgogICAgICAgPHBhcmE+Ci0gICAgICAgVHJ1ZSBpZiB0aGUgcmVsYXRpb24gbXVzdCBiZSBl eGNsdWRlZAorICAgICAgIFRydWUgaWYgdGhlIGNvbHVtbiBsaXN0IG9yIHJlbGF0aW9uIG11c3Qg YmUgZXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlvbi4KKyAgICAgICBJZiBhIGNvbHVtbiBsaXN0IGlz IHNwZWNpZmllZCBpbiA8bGl0ZXJhbD5wcmF0dHJzPC9saXRlcmFsPiwgdGhlbgorICAgICAgIGV4 Y2x1ZGUgb25seSB0aG9zZSBjb2x1bW5zLiBJZiA8bGl0ZXJhbD5wcmF0dHJzPC9saXRlcmFsPiBp cyBudWxsLAorICAgICAgIHRoZW4gZXhjbHVkZSB0aGUgZW50aXJlIHJlbGF0aW9uLgogICAgICAg PC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv bG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbAppbmRleCAyZTlmNjAxOTQ3NC4uZGUzMmZkMzNhODcgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2lj YWwtcmVwbGljYXRpb24uc2dtbApAQCAtMTM3MiwxMCArMTM3MiwxMCBAQCBQdWJsaWNhdGlvbnM6 CiAgIDx0aXRsZT5Db2x1bW4gTGlzdHM8L3RpdGxlPgogCiAgIDxwYXJhPgotICAgRWFjaCBwdWJs aWNhdGlvbiBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHdoaWNoIGNvbHVtbnMgb2YgZWFjaCB0YWJs ZSBhcmUKLSAgIHJlcGxpY2F0ZWQgdG8gc3Vic2NyaWJlcnMuIFRoZSB0YWJsZSBvbiB0aGUgc3Vi c2NyaWJlciBzaWRlIG11c3QgaGF2ZSBhdAotICAgbGVhc3QgYWxsIHRoZSBjb2x1bW5zIHRoYXQg YXJlIHB1Ymxpc2hlZC4gSWYgbm8gY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkLAotICAgdGhlbiBh bGwgY29sdW1ucyBvbiB0aGUgcHVibGlzaGVyIGFyZSByZXBsaWNhdGVkLgorICAgRWFjaCBwdWJs aWNhdGlvbiBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHdoaWNoIGNvbHVtbnMgb2YgZWFjaCB0YWJs ZSBzaG91bGQgYmUKKyAgIHJlcGxpY2F0ZWQgb3IgZXhjbHVkZWQgZnJvbSByZXBsaWNhdGlvbi4g VGhlIHRhYmxlIG9uIHRoZSBzdWJzY3JpYmVyIHNpZGUKKyAgIG11c3QgaGF2ZSBhdCBsZWFzdCBh bGwgdGhlIGNvbHVtbnMgdGhhdCBhcmUgcHVibGlzaGVkLiBJZiBubyBjb2x1bW4gbGlzdCBpcwor ICAgc3BlY2lmaWVkLCB0aGVuIGFsbCBjb2x1bW5zIG9uIHRoZSBwdWJsaXNoZXIgYXJlIHJlcGxp Y2F0ZWQuCiAgICBTZWUgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uIi8+IGZv ciBkZXRhaWxzIG9uIHRoZSBzeW50YXguCiAgIDwvcGFyYT4KIApAQCAtMTM4OSw4ICsxMzg5LDEx IEBAIFB1YmxpY2F0aW9uczoKIAogICA8cGFyYT4KICAgIElmIG5vIGNvbHVtbiBsaXN0IGlzIHNw ZWNpZmllZCwgYW55IGNvbHVtbnMgYWRkZWQgdG8gdGhlIHRhYmxlIGxhdGVyIGFyZQotICAgYXV0 b21hdGljYWxseSByZXBsaWNhdGVkLiBUaGlzIG1lYW5zIHRoYXQgaGF2aW5nIGEgY29sdW1uIGxp c3Qgd2hpY2ggbmFtZXMKLSAgIGFsbCBjb2x1bW5zIGlzIG5vdCB0aGUgc2FtZSBhcyBoYXZpbmcg bm8gY29sdW1uIGxpc3QgYXQgYWxsLgorICAgYXV0b21hdGljYWxseSByZXBsaWNhdGVkLiBIb3dl dmVyLCBhIG5vcm1hbCBjb2x1bW4gbGlzdCAod2l0aG91dAorICAgPGxpdGVyYWw+RVhDRVBUPC9s aXRlcmFsPikgb25seSByZXBsaWNhdGVzIHRoZSBzcGVjaWZpZWQgY29sdW1ucyBhbmQgbm8gbW9y ZS4KKyAgIFRoZXJlZm9yZSwgaGF2aW5nIGEgY29sdW1uIGxpc3QgdGhhdCBuYW1lcyBhbGwgY29s dW1ucyBpcyBub3QgdGhlIHNhbWUgYXMKKyAgIGhhdmluZyBubyBjb2x1bW4gbGlzdCBhdCBhbGws IGFzIG1vcmUgY29sdW1ucyBtYXkgYmUgYWRkZWQgdG8gdGhlIHRhYmxlCisgICBsYXRlci4KICAg PC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMTQwMiw2ICsxNDA1LDE0IEBAIFB1YmxpY2F0aW9uczoK ICAgIEdlbmVyYXRlZCBjb2x1bW5zIGNhbiBhbHNvIGJlIHNwZWNpZmllZCBpbiBhIGNvbHVtbiBs aXN0LiBUaGlzIGFsbG93cwogICAgZ2VuZXJhdGVkIGNvbHVtbnMgdG8gYmUgcHVibGlzaGVkLCBy ZWdhcmRsZXNzIG9mIHRoZSBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIKICAgIDxsaW5rIGxpbmtlbmQ9 InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtd2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1 bW5zIj4KKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9s aW5rPi4gR2VuZXJhdGVkIGNvbHVtbnMgY2FuIGJlCisgICBzcGVjaWZpZWQgaW4gYSBjb2x1bW4g bGlzdCB1c2luZyB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UuIFRoaXMKKyAg IGV4Y2x1ZGVzIHRoZSBzcGVjaWZpZWQgZ2VuZXJhdGVkIGNvbHVtbnMgZnJvbSBiZWluZyBwdWJs aXNoZWQsIHJlZ2FyZGxlc3Mgb2YKKyAgIHRoZSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVi bGljYXRpb24tcGFyYW1zLXdpdGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8bGl0 ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4gc2V0dGluZy4g SG93ZXZlciwgZm9yCisgICBnZW5lcmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBub3QgbGlzdGVkIGlu IHRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+CisgICBjbGF1c2UsIHdoZXRoZXIgdGhleSBh cmUgcHVibGlzaGVkIG9yIG5vdCBzdGlsbCBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZgorICAgPGxp bmsgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRoLXB1Ymxpc2gtZ2Vu ZXJhdGVkLWNvbHVtbnMiPgogICAgPGxpdGVyYWw+cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uczwv bGl0ZXJhbD48L2xpbms+LiBTZWUKICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRp b24tZ2VuY29scyIvPiBmb3IgZGV0YWlscy4KICAgPC9wYXJhPgpAQCAtMTQyMywxMSArMTQzNCwx NCBAQCBQdWJsaWNhdGlvbnM6CiAKICAgPHBhcmE+CiAgICBJZiBhIHB1YmxpY2F0aW9uIHB1Ymxp c2hlcyA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+IG9yCi0gICA8Y29tbWFuZD5ERUxFVEU8L2Nv bW1hbmQ+IG9wZXJhdGlvbnMsIGFueSBjb2x1bW4gbGlzdCBtdXN0IGluY2x1ZGUgdGhlCi0gICB0 YWJsZSdzIHJlcGxpY2EgaWRlbnRpdHkgY29sdW1ucyAoc2VlCi0gICA8eHJlZiBsaW5rZW5kPSJz cWwtYWx0ZXJ0YWJsZS1yZXBsaWNhLWlkZW50aXR5Ii8+KS4KKyAgIDxjb21tYW5kPkRFTEVURTwv Y29tbWFuZD4gb3BlcmF0aW9ucywgYW55IGNvbHVtbiBsaXN0IG11c3QgaW5jbHVkZSB0YWJsZSdz CisgICByZXBsaWNhIGlkZW50aXR5IGNvbHVtbnMgYW5kIGFueSBjb2x1bW4gbGlzdCBzcGVjaWZp ZWQgd2l0aAorICAgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgbXVzdCBub3QgaW5j bHVkZSB0aGUgdGFibGUncyByZXBsaWNhCisgICBpZGVudGl0eSBjb2x1bW5zIChzZWUgPHhyZWYg bGlua2VuZD0ic3FsLWFsdGVydGFibGUtcmVwbGljYS1pZGVudGl0eSIvPikuCiAgICBJZiBhIHB1 YmxpY2F0aW9uIHB1Ymxpc2hlcyBvbmx5IDxjb21tYW5kPklOU0VSVDwvY29tbWFuZD4gb3BlcmF0 aW9ucywgdGhlbgotICAgdGhlIGNvbHVtbiBsaXN0IG1heSBvbWl0IHJlcGxpY2EgaWRlbnRpdHkg Y29sdW1ucy4KKyAgIHRoZSBjb2x1bW4gbGlzdCBtYXkgb21pdCByZXBsaWNhIGlkZW50aXR5IGNv bHVtbnMgYW5kIHRoZSBjb2x1bW4gbGlzdAorICAgc3BlY2lmaWVkIHdpdGggPGxpdGVyYWw+RVhD RVBUPC9saXRlcmFsPiBjbGF1c2UgbWF5IGluY2x1ZGUgcmVwbGljYSBpZGVudGl0eQorICAgY29s dW1ucy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMTQ3MiwxOCArMTQ4NiwyMSBAQCBQdWJs aWNhdGlvbnM6CiAgICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgogCiAgICA8cGFyYT4KLSAgICBD cmVhdGUgYSB0YWJsZSA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4gdG8gYmUgdXNlZCBpbiB0aGUgZm9s bG93aW5nIGV4YW1wbGUuCisgICAgQ3JlYXRlIHRhYmxlcyA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4g YW5kIDxsaXRlcmFsPnQyPC9saXRlcmFsPiB0byBiZSB1c2VkIGluCisgICAgdGhlIGZvbGxvd2lu ZyBleGFtcGxlLgogPHByb2dyYW1saXN0aW5nPgogLyogcHViICMgKi8gQ1JFQVRFIFRBQkxFIHQx KGlkIGludCwgYSB0ZXh0LCBiIHRleHQsIGMgdGV4dCwgZCB0ZXh0LCBlIHRleHQsIFBSSU1BUlkg S0VZKGlkKSk7CisvKiBwdWIgIyAqLyBDUkVBVEUgVEFCTEUgdDIoaWQgaW50LCBhIHRleHQsIGIg dGV4dCwgYyB0ZXh0LCBkIHRleHQsIGUgdGV4dCwgUFJJTUFSWSBLRVkoaWQpKTsKIDwvcHJvZ3Jh bWxpc3Rpbmc+PC9wYXJhPgogCiAgICA8cGFyYT4KICAgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiA8 bGl0ZXJhbD5wMTwvbGl0ZXJhbD4uIEEgY29sdW1uIGxpc3QgaXMgZGVmaW5lZCBmb3IKLSAgICB0 YWJsZSA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4gdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgY29sdW1u cyB0aGF0IHdpbGwgYmUKLSAgICByZXBsaWNhdGVkLiBOb3RpY2UgdGhhdCB0aGUgb3JkZXIgb2Yg Y29sdW1uIG5hbWVzIGluIHRoZSBjb2x1bW4gbGlzdCBkb2VzCi0gICAgbm90IG1hdHRlci4KKyAg ICB0YWJsZSA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4sIGFuZCBhbm90aGVyIGNvbHVtbiBsaXN0IGlz IGRlZmluZWQgZm9yIHRhYmxlCisgICAgPGxpdGVyYWw+dDI8L2xpdGVyYWw+IHVzaW5nIHRoZSA8 bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSB0byByZWR1Y2UKKyAgICB0aGUgbnVtYmVy IG9mIGNvbHVtbnMgdGhhdCB3aWxsIGJlIHJlcGxpY2F0ZWQuIE5vdGUgdGhhdCB0aGUgb3JkZXIg b2YgY29sdW1uCisgICAgbmFtZXMgaW4gdGhlIGNvbHVtbiBsaXN0cyBkb2VzIG5vdCBtYXR0ZXIu CiA8cHJvZ3JhbWxpc3Rpbmc+Ci0vKiBwdWIgIyAqLyBDUkVBVEUgUFVCTElDQVRJT04gcDEgRk9S IFRBQkxFIHQxIChpZCwgYiwgYSwgZCk7CisvKiBwdWIgIyAqLyBDUkVBVEUgUFVCTElDQVRJT04g cDEgRk9SIFRBQkxFIHQxIChpZCwgYiwgYSwgZCksIHQyIEVYQ0VQVCAoZCwgYSk7CiA8L3Byb2dy YW1saXN0aW5nPjwvcGFyYT4KIAogICAgIDxwYXJhPgpAQCAtMTQ5MSwxMiArMTUwOCwxMyBAQCBQ dWJsaWNhdGlvbnM6CiAgICAgIGZvciBlYWNoIHB1YmxpY2F0aW9uLgogPHByb2dyYW1saXN0aW5n PgogLyogcHViICMgKi8gXGRScCsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiBwMQotICBPd25lciAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290Ci0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcG9z dGdyZXMgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHAxCisgT3duZXIgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QKKy0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyB1YnVudHUgfCBmICAgICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBm CiBUYWJsZXM6CiAgICAgInB1YmxpYy50MSIgKGlkLCBhLCBiLCBkKQorICAgICJwdWJsaWMudDIi IEVYQ0VQVCAoYSwgZCkKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgICAgPHBhcmE+CkBA IC0xNTE3LDIzICsxNTM1LDQxIEBAIEluZGV4ZXM6CiAgICAgInQxX3BrZXkiIFBSSU1BUlkgS0VZ LCBidHJlZSAoaWQpCiBQdWJsaWNhdGlvbnM6CiAgICAgInAxIiAoaWQsIGEsIGIsIGQpCisKKy8q IHB1YiAjICovIFxkIHQyCisgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudDIiCisgQ29s dW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdAorLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwKKyBhICAgICAgfCB0ZXh0ICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgfAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8CisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwKKyBkICAgICAg fCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGUgICAgICB8IHRleHQgICAgfCAg ICAgICAgICAgfCAgICAgICAgICB8CitJbmRleGVzOgorICAgICJ0Ml9wa2V5IiBQUklNQVJZIEtF WSwgYnRyZWUgKGlkKQorUHVibGljYXRpb25zOgorICAgICJwMSIgRVhDRVBUIChhLCBkKQogPC9w cm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAgICA8cGFyYT4KLSAgICAgT24gdGhlIHN1YnNjcmli ZXIgbm9kZSwgY3JlYXRlIGEgdGFibGUgPGxpdGVyYWw+dDE8L2xpdGVyYWw+IHdoaWNoIG5vdwot ICAgICBvbmx5IG5lZWRzIGEgc3Vic2V0IG9mIHRoZSBjb2x1bW5zIHRoYXQgd2VyZSBvbiB0aGUg cHVibGlzaGVyIHRhYmxlCi0gICAgIDxsaXRlcmFsPnQxPC9saXRlcmFsPiwgYW5kIGFsc28gY3Jl YXRlIHRoZSBzdWJzY3JpcHRpb24KKyAgICAgT24gdGhlIHN1YnNjcmliZXIgbm9kZSwgY3JlYXRl IHRhYmxlcyA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4gYW5kCisgICAgIDxsaXRlcmFsPnQyPC9saXRl cmFsPiB3aGljaCBub3cgb25seSBuZWVkcyBhIHN1YnNldCBvZiB0aGUgY29sdW1ucyB0aGF0Cisg ICAgIHdlcmUgb24gdGhlIHB1Ymxpc2hlciB0YWJsZXMgPGxpdGVyYWw+dDE8L2xpdGVyYWw+IGFu ZAorICAgICA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4sIGFuZCBhbHNvIGNyZWF0ZSB0aGUgc3Vic2Ny aXB0aW9uCiAgICAgIDxsaXRlcmFsPnMxPC9saXRlcmFsPiB0aGF0IHN1YnNjcmliZXMgdG8gdGhl IHB1YmxpY2F0aW9uCiAgICAgIDxsaXRlcmFsPnAxPC9saXRlcmFsPi4KIDxwcm9ncmFtbGlzdGlu Zz4KIC8qIHN1YiAjICovIENSRUFURSBUQUJMRSB0MShpZCBpbnQsIGIgdGV4dCwgYSB0ZXh0LCBk IHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CisvKiBzdWIgIyAqLyBDUkVBVEUgVEFCTEUgdDIoaWQg aW50LCBiIHRleHQsIGMgdGV4dCwgZSB0ZXh0LCBQUklNQVJZIEtFWShpZCkpOwogLyogc3ViICMg Ki8gQ1JFQVRFIFNVQlNDUklQVElPTiBzMQogLyogc3ViIC0gKi8gQ09OTkVDVElPTiAnaG9zdD1s b2NhbGhvc3QgZGJuYW1lPXRlc3RfcHViIGFwcGxpY2F0aW9uX25hbWU9czEnCiAvKiBzdWIgLSAq LyBQVUJMSUNBVElPTiBwMTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgICAgPHBhcmE+ Ci0gICAgIE9uIHRoZSBwdWJsaXNoZXIgbm9kZSwgaW5zZXJ0IHNvbWUgcm93cyB0byB0YWJsZSA8 bGl0ZXJhbD50MTwvbGl0ZXJhbD4uCisgICAgIE9uIHRoZSBwdWJsaXNoZXIgbm9kZSwgaW5zZXJ0 IHNvbWUgcm93cyB0byB0YWJsZXMgPGxpdGVyYWw+dDE8L2xpdGVyYWw+CisgICAgIGFuZCA8bGl0 ZXJhbD50MjwvbGl0ZXJhbD4KIDxwcm9ncmFtbGlzdGluZz4KIC8qIHB1YiAjICovIElOU0VSVCBJ TlRPIHQxIFZBTFVFUygxLCAnYS0xJywgJ2ItMScsICdjLTEnLCAnZC0xJywgJ2UtMScpOwogLyog cHViICMgKi8gSU5TRVJUIElOVE8gdDEgVkFMVUVTKDIsICdhLTInLCAnYi0yJywgJ2MtMicsICdk LTInLCAnZS0yJyk7CkBAIC0xNTQ1LDExICsxNTgxLDIxIEBAIFB1YmxpY2F0aW9uczoKICAgMiB8 IGEtMiB8IGItMiB8IGMtMiB8IGQtMiB8IGUtMgogICAzIHwgYS0zIHwgYi0zIHwgYy0zIHwgZC0z IHwgZS0zCiAoMyByb3dzKQorLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDIgVkFMVUVTKDEsICdh LTEnLCAnYi0xJywgJ2MtMScsICdkLTEnLCAnZS0xJyk7CisvKiBwdWIgIyAqLyBJTlNFUlQgSU5U TyB0MiBWQUxVRVMoMiwgJ2EtMicsICdiLTInLCAnYy0yJywgJ2QtMicsICdlLTInKTsKKy8qIHB1 YiAjICovIElOU0VSVCBJTlRPIHQyIFZBTFVFUygzLCAnYS0zJywgJ2ItMycsICdjLTMnLCAnZC0z JywgJ2UtMycpOworLyogcHViICMgKi8gU0VMRUNUICogRlJPTSB0MiBPUkRFUiBCWSBpZDsKKyBp ZCB8ICBhICB8ICBiICB8ICBjICB8ICBkICB8ICBlCistLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0t LS0tKy0tLS0tCisgIDEgfCBhLTEgfCBiLTEgfCBjLTEgfCBkLTEgfCBlLTEKKyAgMiB8IGEtMiB8 IGItMiB8IGMtMiB8IGQtMiB8IGUtMgorICAzIHwgYS0zIHwgYi0zIHwgYy0zIHwgZC0zIHwgZS0z CisoMyByb3dzKQogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAgICA8cGFyYT4KLSAgICAg T25seSBkYXRhIGZyb20gdGhlIGNvbHVtbiBsaXN0IG9mIHB1YmxpY2F0aW9uIDxsaXRlcmFsPnAx PC9saXRlcmFsPiBpcwotICAgICByZXBsaWNhdGVkLgorICAgICBPbmx5IGRhdGEgc3BlY2lmaWVk IGJ5IHRoZSBjb2x1bW4gbGlzdHMgb2YgcHVibGljYXRpb24KKyAgICAgPGxpdGVyYWw+cDE8L2xp dGVyYWw+IGlzIHJlcGxpY2F0ZWQuCiA8cHJvZ3JhbWxpc3Rpbmc+CiAvKiBzdWIgIyAqLyBTRUxF Q1QgKiBGUk9NIHQxIE9SREVSIEJZIGlkOwogIGlkIHwgIGIgIHwgIGEgIHwgIGQKQEAgLTE1NTgs NiArMTYwNCwxMyBAQCBQdWJsaWNhdGlvbnM6CiAgIDIgfCBiLTIgfCBhLTIgfCBkLTIKICAgMyB8 IGItMyB8IGEtMyB8IGQtMwogKDMgcm93cykKKy8qIHN1YiAjICovIFNFTEVDVCAqIEZST00gdDIg T1JERVIgQlkgaWQ7CisgaWQgfCAgYiAgfCAgYyAgfCAgZQorLS0tLSstLS0tLSstLS0tLSstLS0t LQorICAxIHwgYi0xIHwgYy0xIHwgZS0xCisgIDIgfCBiLTIgfCBjLTIgfCBlLTIKKyAgMyB8IGIt MyB8IGMtMyB8IGUtMworKDMgcm93cykKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgIDwv c2VjdDI+CkBAIC0xNjU0LDYgKzE3MDcsMTcgQEAgUHVibGljYXRpb25zOgogICAgPC9pdGVtaXpl ZGxpc3Q+CiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIEdlbmVyYXRlZCBjb2x1bW5zIHNwZWNp ZmllZCBpbiB0aGUgY29sdW1uIGxpc3Qgd2l0aCB0aGUKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0 ZXJhbD4gY2xhdXNlIGFyZSBub3QgcHVibGlzaGVkLCByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZQor ICAgb2YgdGhlIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtd2l0 aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4KKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJh dGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPiBwYXJhbWV0ZXIuIEhvd2V2ZXIsCisgICBnZW5l cmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgY29sdW1uIGxpc3Qgd2l0aCB0 aGUKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGFyZSBwdWJsaXNoZWQgYWNj b3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiB0aGUKKyAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVw dWJsaWNhdGlvbi1wYXJhbXMtd2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4KKyAgIDxs aXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPiBwYXJhbWV0 ZXIuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSBmb2xsb3dpbmcgdGFibGUgc3VtbWFy aXplcyBiZWhhdmlvciB3aGVuIHRoZXJlIGFyZSBnZW5lcmF0ZWQgY29sdW1ucwogICAgaW52b2x2 ZWQgaW4gdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24uIFJlc3VsdHMgYXJlIHNob3duIGZvciB3aGVu CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggYmQyNWExYTcyM2Mu LmM4ZTljNGIyMTZjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0 aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCkBA IC0zMiw3ICszMiw3IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAogPHBocmFzZT53aGVyZSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4g aXMgb25lIG9mOjwvcGhyYXNlPgogCi0gICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4u IF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lv bjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQorICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyBb IEVYQ0VQVCBdICggY29sdW1uX25hbWUgWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4g XQogICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KIAog PHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29i amVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgpAQCAtMjU5LDYgKzI1OSwxNCBAQCBBTFRF UiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBBTEwgVEFCTEVTIEVYQ0VQ VCB1c2VycywgZGVwYXJ0bWVudAogICAgPHN0cnVjdG5hbWU+cHJvZHVjdGlvbl9wdWJsaWNhdGlv bjwvc3RydWN0bmFtZT46CiA8cHJvZ3JhbWxpc3Rpbmc+CiBBTFRFUiBQVUJMSUNBVElPTiBwcm9k dWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1c2VycywgZGVwYXJ0bWVudHMsIFRBQkxFUyBJ TiBTQ0hFTUEgcHJvZHVjdGlvbjsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJh PgorICAgQWx0ZXIgcHVibGljYXRpb24gPHN0cnVjdG5hbWU+bXlwdWJsaWNhdGlvbjwvc3RydWN0 bmFtZT4gdG8gYWRkIHRhYmxlCisgICA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4gZXhj ZXB0IGNvbHVtbgorICAgPHN0cnVjdG5hbWU+c2VjdXJpdHlfcGluPC9zdHJ1Y3RuYW1lPjoKKzxw cm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24g QUREIFRBQkxFIHVzZXJzIEVYQ0VQVCAoc2VjdXJpdHlfcGluKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+ PC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf cHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNn bWwKaW5kZXggYTJmOWMwZDQ4MjUuLjhlYzI2NmM5ZTk3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTI4LDcgKzI4LDcgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KIAogPHBo cmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb2Jq ZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCi0gICAgVEFCTEUgWyBPTkxZ IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxl PiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQorICAgIFRBQkxF IFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAqIF0gWyBbIEVYQ0VQVCBdICggY29sdW1uX25hbWUgWywgLi4uIF0gKSBdIFsg V0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NI RU1BIH0gWywgLi4uIF0KIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgpAQCAtOTIs MTcgKzkyLDI0IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KLSAg ICAgIFdoZW4gYSBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQsIG9ubHkgdGhlIG5hbWVkIGNvbHVt bnMgYXJlIHJlcGxpY2F0ZWQuCi0gICAgICBUaGUgY29sdW1uIGxpc3QgY2FuIGNvbnRhaW4gc3Rv cmVkIGdlbmVyYXRlZCBjb2x1bW5zIGFzIHdlbGwuIElmIHRoZQotICAgICAgY29sdW1uIGxpc3Qg aXMgb21pdHRlZCwgdGhlIHB1YmxpY2F0aW9uIHdpbGwgcmVwbGljYXRlIGFsbCBub24tZ2VuZXJh dGVkCi0gICAgICBjb2x1bW5zIChpbmNsdWRpbmcgYW55IGFkZGVkIGluIHRoZSBmdXR1cmUpIGJ5 IGRlZmF1bHQuIFN0b3JlZCBnZW5lcmF0ZWQKLSAgICAgIGNvbHVtbnMgY2FuIGFsc28gYmUgcmVw bGljYXRlZCBpZiA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFsPgot ICAgICAgaXMgc2V0IHRvIDxsaXRlcmFsPnN0b3JlZDwvbGl0ZXJhbD4uIFNwZWNpZnlpbmcgYSBj b2x1bW4gbGlzdCBoYXMgbm8KLSAgICAgIGVmZmVjdCBvbiA8bGl0ZXJhbD5UUlVOQ0FURTwvbGl0 ZXJhbD4gY29tbWFuZHMuIFNlZQorICAgICAgV2hlbiBhIGNvbHVtbiBsaXN0IHdpdGhvdXQgPGxp dGVyYWw+RVhDRVBUPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIG9ubHkKKyAgICAgIHRoZSBuYW1l ZCBjb2x1bW5zIGFyZSByZXBsaWNhdGVkLiBUaGUgY29sdW1uIGxpc3QgY2FuIGNvbnRhaW4gc3Rv cmVkCisgICAgICBnZW5lcmF0ZWQgY29sdW1ucyBhcyB3ZWxsLiBJZiB0aGUgY29sdW1uIGxpc3Qg aXMgb21pdHRlZCwgdGhlIHB1YmxpY2F0aW9uCisgICAgICB3aWxsIHJlcGxpY2F0ZSBhbGwgbm9u LWdlbmVyYXRlZCBjb2x1bW5zIChpbmNsdWRpbmcgYW55IGFkZGVkIGluIHRoZQorICAgICAgZnV0 dXJlKSBieSBkZWZhdWx0LiBTdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMgY2FuIGFsc28gYmUgcmVw bGljYXRlZCBpZgorICAgICAgPGxpdGVyYWw+cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0 ZXJhbD4gaXMgc2V0IHRvCisgICAgICA8bGl0ZXJhbD5zdG9yZWQ8L2xpdGVyYWw+LiBTcGVjaWZ5 aW5nIGEgY29sdW1uIGxpc3QgaGFzIG5vIGVmZmVjdCBvbgorICAgICAgPGxpdGVyYWw+VFJVTkNB VEU8L2xpdGVyYWw+IGNvbW1hbmRzLiBTZWUKICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwt cmVwbGljYXRpb24tY29sLWxpc3RzIi8+IGZvciBkZXRhaWxzIGFib3V0IGNvbHVtbgogICAgICAg bGlzdHMuCiAgICAgIDwvcGFyYT4KIAorICAgICA8cGFyYT4KKyAgICAgIFdoZW4gYSBjb2x1bW4g bGlzdCBpcyBzcGVjaWZpZWQgd2l0aCA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+LCB0aGUgbmFt ZWQKKyAgICAgIGNvbHVtbnMgYXJlIG5vdCByZXBsaWNhdGVkLiBTcGVjaWZ5aW5nIGEgY29sdW1u IGxpc3QgaGFzIG5vIGVmZmVjdCBvbgorICAgICAgPGxpdGVyYWw+VFJVTkNBVEU8L2xpdGVyYWw+ IGNvbW1hbmRzLgorICAgICA8L3BhcmE+CisKICAgICAgPHBhcmE+CiAgICAgICBPbmx5IHBlcnNp c3RlbnQgYmFzZSB0YWJsZXMgYW5kIHBhcnRpdGlvbmVkIHRhYmxlcyBjYW4gYmUgcGFydCBvZiBh CiAgICAgICBwdWJsaWNhdGlvbi4gIFRlbXBvcmFyeSB0YWJsZXMsIHVubG9nZ2VkIHRhYmxlcywg Zm9yZWlnbiB0YWJsZXMsCkBAIC0zMzUsMTAgKzM0MiwxMiBAQCBDUkVBVEUgUFVCTElDQVRJT04g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICA8L3Bh cmE+CiAKICAgPHBhcmE+Ci0gICBBbnkgY29sdW1uIGxpc3QgbXVzdCBpbmNsdWRlIHRoZSA8bGl0 ZXJhbD5SRVBMSUNBIElERU5USVRZPC9saXRlcmFsPiBjb2x1bW5zCi0gICBpbiBvcmRlciBmb3Ig PGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiBvciA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+Ci0g ICBvcGVyYXRpb25zIHRvIGJlIHB1Ymxpc2hlZC4gVGhlcmUgYXJlIG5vIGNvbHVtbiBsaXN0IHJl c3RyaWN0aW9ucyBpZiB0aGUKLSAgIHB1YmxpY2F0aW9uIHB1Ymxpc2hlcyBvbmx5IDxjb21tYW5k PklOU0VSVDwvY29tbWFuZD4gb3BlcmF0aW9ucy4KKyAgIEluIG9yZGVyIGZvciA8Y29tbWFuZD5V UERBVEU8L2NvbW1hbmQ+IG9yIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4KKyAgIG9wZXJhdGlv bnMgdG8gd29yaywgYWxsIHRoZSA8bGl0ZXJhbD5SRVBMSUNBIElERU5USVRZPC9saXRlcmFsPiBj b2x1bW5zIG11c3QKKyAgIGJlIHB1Ymxpc2hlZC4gU28sIGFueSBjb2x1bW4gbGlzdCBtdXN0IG5h bWUgYWxsCisgICA8bGl0ZXJhbD5SRVBMSUNBIElERU5USVRZPC9saXRlcmFsPiBjb2x1bW5zLCBh bmQgYW55CisgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNvbHVtbiBsaXN0IG11c3Qgbm90 IG5hbWUgYW55CisgICA8bGl0ZXJhbD5SRVBMSUNBIElERU5USVRZPC9saXRlcmFsPiBjb2x1bW5z LgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0zNTMsNiArMzYyLDE2IEBAIENSRUFURSBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ CiAgICBzeXN0ZW0gY29sdW1ucy4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgVGhlIGdlbmVy YXRlZCBjb2x1bW5zIHRoYXQgYXJlIHBhcnQgb2YgdGhlIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3 aXRoIHRoZQorICAgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgYXJlIG5vdCBwdWJs aXNoZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlCisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9j b2x1bW5zPC9saXRlcmFsPiBvcHRpb24uIEhvd2V2ZXIsIGdlbmVyYXRlZAorICAgY29sdW1ucyB0 aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggdGhlCisg ICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgcHVibGlzaGVkIGFjY29yZGlu ZyB0byB0aGUgdmFsdWUgb2YgdGhlCisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1 bW5zPC9saXRlcmFsPiBvcHRpb24uIFNlZQorICAgPHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBs aWNhdGlvbi1nZW5jb2xzIi8+IGZvciBkZXRhaWxzLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAg ICBUaGUgZ2VuZXJhdGVkIGNvbHVtbnMgdGhhdCBhcmUgcGFydCBvZiA8bGl0ZXJhbD5SRVBMSUNB IElERU5USVRZPC9saXRlcmFsPgogICAgbXVzdCBiZSBwdWJsaXNoZWQgZXhwbGljaXRseSBlaXRo ZXIgYnkgbGlzdGluZyB0aGVtIGluIHRoZSBjb2x1bW4gbGlzdCBvcgpAQCAtNDgyLDYgKzUwMSwx NSBAQCBDUkVBVEUgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1IgQUxMIFRBQkxFUyBFWENF UFQgdXNlcnMsIGRlcGFydG1lbnRzOwogPHByb2dyYW1saXN0aW5nPgogQ1JFQVRFIFBVQkxJQ0FU SU9OIHVzZXJzX2ZpbHRlcmVkIEZPUiBUQUJMRSB1c2VycyAodXNlcl9pZCwgZmlyc3RuYW1lKTsK IDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGlj YXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlCisgICA8c3RydWN0bmFt ZT51c2Vyczwvc3RydWN0bmFtZT4gZXhjZXB0IGNoYW5nZXMgZm9yIGNvbHVtbgorICAgPHN0cnVj dG5hbWU+c2VjdXJpdHlfcGluPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFU RSBQVUJMSUNBVElPTiB1c2Vyc19zYWZlIEZPUiBUQUJMRSB1c2VycyBFWENFUFQgKHNlY3VyaXR5 X3Bpbik7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CiAgPC9yZWZzZWN0MT4KIAogIDxy ZWZzZWN0MT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24u YyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCAxODc4ZmJhODc0 OC4uNmJjZTVhZGM3NGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTI2 MywxNCArMjYzLDE5IEBAIGlzX3NjaGVtYV9wdWJsaWNhdGlvbihPaWQgcHViaWQpCiAgKiBJZiBh IGNvbHVtbiBsaXN0IGlzIGZvdW5kLCB0aGUgY29ycmVzcG9uZGluZyBiaXRtYXAgaXMgcmV0dXJu ZWQgdGhyb3VnaCB0aGUKICAqIGNvbHMgcGFyYW1ldGVyLCBpZiBwcm92aWRlZC4gVGhlIGJpdG1h cCBpcyBjb25zdHJ1Y3RlZCB3aXRoaW4gdGhlIGdpdmVuCiAgKiBtZW1vcnkgY29udGV4dCAobWN4 dCkuCisgKgorICogSWYgYSBjb2x1bW4gbGlzdCBpcyBmb3VuZCBzcGVjaWZpZWQgd2l0aCBFWENF UFQgY2xhdXNlLCBleGNlcHRfY29sdW1ucyBpcyBzZXQKKyAqIHRvIHRydWUuCiAgKi8KIGJvb2wK IGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVsaWQs IE1lbW9yeUNvbnRleHQgbWN4dCwKLQkJCQkJCQlCaXRtYXBzZXQgKipjb2xzKQorCQkJCQkJCUJp dG1hcHNldCAqKmNvbHMsIGJvb2wgKmV4Y2VwdF9jb2x1bW5zKQogewogCUhlYXBUdXBsZQljZnR1 cGxlOwogCWJvb2wJCWZvdW5kID0gZmFsc2U7CiAKKwkqZXhjZXB0X2NvbHVtbnMgPSBmYWxzZTsK KwogCWlmIChwdWItPmFsbHRhYmxlcykKIAkJcmV0dXJuIGZhbHNlOwogCkBAIC0yOTYsNiArMzAx LDE2IEBAIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQg cmVsaWQsIE1lbW9yeUNvbnRleHQgbWN4dCwKIAkJCWZvdW5kID0gdHJ1ZTsKIAkJfQogCisJCS8q IExvb2t1cCB0aGUgZXhjZXB0IGF0dHJpYnV0ZSAqLworCQljZmRhdHVtID0gU3lzQ2FjaGVHZXRB dHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCBjZnR1cGxlLAorCQkJCQkJCQkgIEFudW1fcGdfcHVibGlj YXRpb25fcmVsX3ByZXhjZXB0LCAmaXNudWxsKTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJ QXNzZXJ0KCFwdWItPmFsbHRhYmxlcyk7CisJCQkqZXhjZXB0X2NvbHVtbnMgPSBEYXR1bUdldEJv b2woY2ZkYXR1bSk7CisJCX0KKwogCQlSZWxlYXNlU3lzQ2FjaGUoY2Z0dXBsZSk7CiAJfQogCkBA IC02NDYsMTAgKzY2MSwxMiBAQCBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQoQml0bWFwc2V0ICpj b2x1bW5zLCBEYXR1bSBwdWJjb2xzLCBNZW1vcnlDb250ZXh0IG1jeHQpCiAgKiBSZXR1cm5zIGEg Yml0bWFwIHJlcHJlc2VudGluZyB0aGUgY29sdW1ucyBvZiB0aGUgc3BlY2lmaWVkIHRhYmxlLgog ICoKICAqIEdlbmVyYXRlZCBjb2x1bW5zIGFyZSBpbmNsdWRlZCBpZiBpbmNsdWRlX2dlbmNvbHNf dHlwZSBpcwotICogUFVCTElTSF9HRU5DT0xTX1NUT1JFRC4KKyAqIFBVQkxJU0hfR0VOQ09MU19T VE9SRUQuIENvbHVtbnMgdGhhdCBhcmUgaW4gdGhlIGV4Y2VwdGNvbHMgYXJlIGV4Y2x1ZGVkIGZy b20KKyAqIHRoZSBjb2x1bW4gbGlzdC4KICAqLwogQml0bWFwc2V0ICoKLXB1Yl9mb3JtX2NvbHNf bWFwKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xz X3R5cGUpCitwdWJfZm9ybV9jb2xzX21hcChSZWxhdGlvbiByZWxhdGlvbiwgUHVibGlzaEdlbmNv bHNUeXBlIGluY2x1ZGVfZ2VuY29sc190eXBlLAorCQkJCSAgQml0bWFwc2V0ICpleGNlcHRfY29s cykKIHsKIAlCaXRtYXBzZXQgICpyZXN1bHQgPSBOVUxMOwogCVR1cGxlRGVzYwlkZXNjID0gUmVs YXRpb25HZXREZXNjcihyZWxhdGlvbik7CkBAIC02NzIsNiArNjg5LDkgQEAgcHViX2Zvcm1fY29s c19tYXAoUmVsYXRpb24gcmVsYXRpb24sIFB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNv bHNfdHlwZSkKIAkJCQljb250aW51ZTsKIAkJfQogCisJCWlmIChleGNlcHRfY29scyAmJiBibXNf aXNfbWVtYmVyKGF0dC0+YXR0bnVtLCBleGNlcHRfY29scykpCisJCQljb250aW51ZTsKKwogCQly ZXN1bHQgPSBibXNfYWRkX21lbWJlcihyZXN1bHQsIGF0dC0+YXR0bnVtKTsKIAl9CiAKQEAgLTc3 Niw4ICs3OTYsMTAgQEAgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkLCBib29sIGV4 Y2VwdF9mbGFnKQogCXsKIAkJSGVhcFR1cGxlCXR1cCA9ICZwdWJyZWxsaXN0LT5tZW1iZXJzW2ld LT50dXBsZTsKIAkJT2lkCQkJcHViaWQgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRT VFJVQ1QodHVwKSktPnBycHViaWQ7CisJCWJvb2wJCWlzX2V4Y2VwdF90YWJsZSA9ICgoRm9ybV9w Z19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0dXApKS0+cHJleGNlcHQgJiYKKwkJCWhlYXBf YXR0aXNudWxsKHR1cCwgQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJhdHRycywgTlVMTCk7CiAK LQkJaWYgKGV4Y2VwdF9mbGFnID09ICgoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVD VCh0dXApKS0+cHJleGNlcHQpCisJCWlmIChleGNlcHRfZmxhZyA9PSBpc19leGNlcHRfdGFibGUp CiAJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHB1YmlkKTsKIAl9CiAKQEAgLTEyODgs NiArMTMxMCw5IEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykK IAkJT2lkCQkJc2NoZW1haWQgPSBnZXRfcmVsX25hbWVzcGFjZShyZWxpZCk7CiAJCURhdHVtCQl2 YWx1ZXNbTlVNX1BVQkxJQ0FUSU9OX1RBQkxFU19FTEVNXSA9IHswfTsKIAkJYm9vbAkJbnVsbHNb TlVNX1BVQkxJQ0FUSU9OX1RBQkxFU19FTEVNXSA9IHswfTsKKwkJRGF0dW0JCWV4Y2VwdERhdHVt OworCQlib29sCQlpc251bGw7CisJCUJpdG1hcHNldCAgKmV4Y2VwdF9jb2x1bW5zID0gTlVMTDsK IAogCQkvKgogCQkgKiBGb3JtIHR1cGxlIHdpdGggYXBwcm9wcmlhdGUgZGF0YS4KQEAgLTEzMTIs NyArMTMzNyw2IEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykK IAogCQlpZiAoSGVhcFR1cGxlSXNWYWxpZChwdWJ0dXBsZSkpCiAJCXsKLQkJCS8qIExvb2t1cCB0 aGUgY29sdW1uIGxpc3QgYXR0cmlidXRlLiAqLwogCQkJdmFsdWVzWzJdID0gU3lzQ2FjaGVHZXRB dHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCBwdWJ0dXBsZSwKIAkJCQkJCQkJCQlBbnVtX3BnX3B1Ymxp Y2F0aW9uX3JlbF9wcmF0dHJzLAogCQkJCQkJCQkJCSYobnVsbHNbMl0pKTsKQEAgLTEzMjEsNiAr MTM0NSwxOCBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CQl2YWx1ZXNbM10gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHB1YnR1cGxl LAogCQkJCQkJCQkJCUFudW1fcGdfcHVibGljYXRpb25fcmVsX3BycXVhbCwKIAkJCQkJCQkJCQkm KG51bGxzWzNdKSk7CisKKwkJCS8qCisJCQkgKiBXZSBmZXRjaCBwdWJ0dXBsZSBpZiBwdWJsaWNh dGlvbiBpcyBub3QgRk9SIEFMTCBUQUJMRVMgYW5kIG5vdAorCQkJICogRk9SIFRBQkxFUyBJTiBT Q0hFTUEuIFNvIGlmIHByZXhjZXB0IGlzIHRydWUsIGl0IGluZGljYXRlcyB0aGF0CisJCQkgKiBw cmF0dHJzIGNvbnRhaW5zIGNvbHVtbnMgdG8gYmUgZXhjbHVkZWQgZm9yIHJlcGxpY2F0aW9uLgor CQkJICovCisJCQlleGNlcHREYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1B UCwgcHVidHVwbGUsCisJCQkJCQkJCQkJICBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2Vw dCwKKwkJCQkJCQkJCQkgICZpc251bGwpOworCisJCQlpZiAoIWlzbnVsbCAmJiBEYXR1bUdldEJv b2woZXhjZXB0RGF0dW0pICYmICFudWxsc1syXSkKKwkJCQlleGNlcHRfY29sdW1ucyA9IHB1Yl9j b2xsaXN0X3RvX2JpdG1hcHNldChOVUxMLCB2YWx1ZXNbMl0sIE5VTEwpOwogCQl9CiAJCWVsc2UK IAkJewpAQCAtMTMyOCw4ICsxMzY0LDEyIEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdf RlVOQ1RJT05fQVJHUykKIAkJCW51bGxzWzNdID0gdHJ1ZTsKIAkJfQogCi0JCS8qIFNob3cgYWxs IGNvbHVtbnMgd2hlbiB0aGUgY29sdW1uIGxpc3QgaXMgbm90IHNwZWNpZmllZC4gKi8KLQkJaWYg KG51bGxzWzJdKQorCQkvKgorCQkgKiBDb25zdHJ1Y3QgY29sdW1uIGxpc3QgdG8gc2hvdyBhbGwg Y29sdW1ucyB3aGVuIG5vIGNvbHVtbiBsaXN0IGlzCisJCSAqIHNwZWNpZmllZCBvciB0byBzaG93 IHJlbWFpbmluZyBjb2x1bW5zIHdoZW4gYSBjb2x1bW4gbGlzdCBpcworCQkgKiBwcm92aWRlZCB3 aXRoIEVYQ0VQVC4KKwkJICovCisJCWlmIChleGNlcHRfY29sdW1ucyB8fCBudWxsc1syXSkKIAkJ ewogCQkJUmVsYXRpb24JcmVsID0gdGFibGVfb3BlbihyZWxpZCwgQWNjZXNzU2hhcmVMb2NrKTsK IAkJCWludAkJCW5hdHRudW1zID0gMDsKQEAgLTEzNjAsNiArMTQwMCwxMyBAQCBwZ19nZXRfcHVi bGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJCQljb250aW51ZTsKIAkJCQl9 CiAKKwkJCQkvKgorCQkJCSAqIFNraXAgY29sdW1ucyB0aGF0IGFyZSBwYXJ0IG9mIGNvbHVtbiBs aXN0IHNwZWNpZmllZCB3aXRoCisJCQkJICogRVhDRVBULgorCQkJCSAqLworCQkJCWlmIChleGNl cHRfY29sdW1ucyAmJiBibXNfaXNfbWVtYmVyKGF0dC0+YXR0bnVtLCBleGNlcHRfY29sdW1ucykp CisJCQkJCWNvbnRpbnVlOworCiAJCQkJYXR0bnVtc1tuYXR0bnVtcysrXSA9IGF0dC0+YXR0bnVt OwogCQkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCmluZGV4IGQyNWRl MzMxYzM0Li5lOTQ1Mjc0OGIyYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMKQEAgLTIwNCw3ICsyMDQsNiBAQCBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpw dWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJc3dpdGNoIChwdWJvYmotPnB1 Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEU6Ci0JCQkJcHVib2Jq LT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBw dWJvYmotPnB1YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfRVhD RVBUX1RBQkxFOgpAQCAtMzU4LDcgKzM1Nyw4IEBAIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2Nv bHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAgKiBU aGlzIGZ1bmN0aW9uIGV2YWx1YXRlcyB0d28gY29uZGl0aW9uczoKICAqCiAgKiAxLiBFbnN1cmVz IHRoYXQgYWxsIGNvbHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUgUkVQTElDQSBJREVOVElUWSBhcmUg Y292ZXJlZAotICogICAgYnkgdGhlIGNvbHVtbiBsaXN0LiBJZiBhbnkgY29sdW1uIGlzIG1pc3Np bmcsICppbnZhbGlkX2NvbHVtbl9saXN0IGlzIHNldAorICogICAgYnkgdGhlIGNvbHVtbiBsaXN0 IGFuZCBhcmUgbm90IHBhcnQgb2YgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggRVhDRVBULgor ICogCSAgSWYgYW55IGNvbHVtbiBpcyBtaXNzaW5nLCAqaW52YWxpZF9jb2x1bW5fbGlzdCBpcyBz ZXQKICAqICAgIHRvIHRydWUuCiAgKiAyLiBFbnN1cmVzIHRoYXQgYWxsIHRoZSBnZW5lcmF0ZWQg Y29sdW1ucyByZWZlcmVuY2VkIGluIHRoZSBSRVBMSUNBIElERU5USVRZCiAgKiAgICBhcmUgcHVi bGlzaGVkLCBlaXRoZXIgYnkgYmVpbmcgZXhwbGljaXRseSBuYW1lZCBpbiB0aGUgY29sdW1uIGxp c3Qgb3IsIGlmCkBAIC0zODEsNiArMzgxLDcgQEAgcHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1u KE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAlUdXBsZURl c2MJZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsYXRpb24pOwogCVB1YmxpY2F0aW9uICpwdWI7 CiAJaW50CQkJeDsKKwlib29sCQlleGNlcHRfY29sdW1ucyA9IGZhbHNlOwogCiAJKmludmFsaWRf Y29sdW1uX2xpc3QgPSBmYWxzZTsKIAkqaW52YWxpZF9nZW5fY29sID0gZmFsc2U7CkBAIC00MDQs NyArNDA1LDggQEAgcHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRp b24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAogCS8qIEZldGNoIHRoZSBjb2x1bW4gbGlz dCAqLwogCXB1YiA9IEdldFB1YmxpY2F0aW9uKHB1YmlkKTsKLQljaGVja19hbmRfZmV0Y2hfY29s dW1uX2xpc3QocHViLCBwdWJsaXNoX2FzX3JlbGlkLCBOVUxMLCAmY29sdW1ucyk7CisJY2hlY2tf YW5kX2ZldGNoX2NvbHVtbl9saXN0KHB1YiwgcHVibGlzaF9hc19yZWxpZCwgTlVMTCwgJmNvbHVt bnMsCisJCQkJCQkJCSZleGNlcHRfY29sdW1ucyk7CiAKIAlpZiAocmVsYXRpb24tPnJkX3JlbC0+ cmVscmVwbGlkZW50ID09IFJFUExJQ0FfSURFTlRJVFlfRlVMTCkKIAl7CkBAIC00OTQsOCArNDk2 LDE0IEBAIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJl bGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJCQlhdHRudW0gPSBnZXRfYXR0bnVtKHB1Ymxpc2hf YXNfcmVsaWQsIGNvbG5hbWUpOwogCQl9CiAKLQkJLyogcmVwbGljYSBpZGVudGl0eSBjb2x1bW4s IG5vdCBjb3ZlcmVkIGJ5IHRoZSBjb2x1bW4gbGlzdCAqLwotCQkqaW52YWxpZF9jb2x1bW5fbGlz dCB8PSAhYm1zX2lzX21lbWJlcihhdHRudW0sIGNvbHVtbnMpOworCQkvKgorCQkgKiBSZXBsaWNh IGlkZW50aXR5IGNvbHVtbiwgbm90IGNvdmVyZWQgYnkgdGhlIGNvbHVtbiBsaXN0IG9yIGlzIHBh cnQKKwkJICogb2YgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggRVhDRVBULgorCQkgKi8KKwkJ aWYgKGV4Y2VwdF9jb2x1bW5zKQorCQkJKmludmFsaWRfY29sdW1uX2xpc3QgfD0gYm1zX2lzX21l bWJlcihhdHRudW0sIGNvbHVtbnMpOworCQllbHNlCisJCQkqaW52YWxpZF9jb2x1bW5fbGlzdCB8 PSAhYm1zX2lzX21lbWJlcihhdHRudW0sIGNvbHVtbnMpOwogCiAJCWlmICgqaW52YWxpZF9jb2x1 bW5fbGlzdCAmJiAqaW52YWxpZF9nZW5fY29sKQogCQkJYnJlYWs7CkBAIC0xNDQwLDYgKzE0NDgs NyBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBI ZWFwVHVwbGUgdHVwLAogCQkJSGVhcFR1cGxlCXJmdHVwbGU7CiAJCQlOb2RlCSAgICpvbGRyZWx3 aGVyZWNsYXVzZSA9IE5VTEw7CiAJCQlCaXRtYXBzZXQgICpvbGRjb2x1bW5zID0gTlVMTDsKKwkJ CWJvb2wJCW9sZGV4Y2VwdCA9IGZhbHNlOwogCiAJCQkvKiBsb29rIHVwIHRoZSBjYWNoZSBmb3Ig dGhlIG9sZCByZWxtYXAgKi8KIAkJCXJmdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoUFVCTElDQVRJ T05SRUxNQVAsCkBAIC0xNDU1LDYgKzE0NjQsNyBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFs dGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJCWJvb2wJCWlzbnVs bCA9IHRydWU7CiAJCQkJRGF0dW0JCXdoZXJlQ2xhdXNlRGF0dW07CiAJCQkJRGF0dW0JCWNvbHVt bkxpc3REYXR1bTsKKwkJCQlEYXR1bQkJZXhjZXB0RGF0dW07CiAKIAkJCQkvKiBMb2FkIHRoZSBX SEVSRSBjbGF1c2UgZm9yIHRoaXMgdGFibGUuICovCiAJCQkJd2hlcmVDbGF1c2VEYXR1bSA9IFN5 c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0dXBsZSwKQEAgLTE0NzEsNiArMTQ4 MSwxMyBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10 LCBIZWFwVHVwbGUgdHVwLAogCQkJCWlmICghaXNudWxsKQogCQkJCQlvbGRjb2x1bW5zID0gcHVi X2NvbGxpc3RfdG9fYml0bWFwc2V0KE5VTEwsIGNvbHVtbkxpc3REYXR1bSwgTlVMTCk7CiAKKwkJ CQlleGNlcHREYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0dXBs ZSwKKwkJCQkJCQkJCQkJICBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2VwdCwKKwkJCQkJ CQkJCQkJICAmaXNudWxsKTsKKworCQkJCWlmICghaXNudWxsKQorCQkJCQlvbGRleGNlcHQgPSBE YXR1bUdldEJvb2woZXhjZXB0RGF0dW0pOworCiAJCQkJUmVsZWFzZVN5c0NhY2hlKHJmdHVwbGUp OwogCQkJfQogCkBAIC0xNTAyLDcgKzE1MTksOCBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFs dGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJCWlmIChuZXdyZWxp ZCA9PSBvbGRyZWxpZCkKIAkJCQl7CiAJCQkJCWlmIChlcXVhbChvbGRyZWx3aGVyZWNsYXVzZSwg bmV3cHVicmVsLT53aGVyZUNsYXVzZSkgJiYKLQkJCQkJCWJtc19lcXVhbChvbGRjb2x1bW5zLCBu ZXdjb2x1bW5zKSkKKwkJCQkJCWJtc19lcXVhbChvbGRjb2x1bW5zLCBuZXdjb2x1bW5zKSAmJgor CQkJCQkJb2xkZXhjZXB0ID09IG5ld3B1YnJlbC0+ZXhjZXB0KQogCQkJCQl7CiAJCQkJCQlmb3Vu ZCA9IHRydWU7CiAJCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGJkYmJjY2NkNDdmLi45NWRi OWYxMmUzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC00NDYsNiArNDQ2LDcgQEAgc3RhdGljIE5vZGUgKm1h a2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUg KnF1ZXJ5KTsKIAkJCQlUcmlnZ2VyVHJhbnNpdGlvbnMgVHJpZ2dlclJlZmVyZW5jaW5nCiAJCQkJ dmFjdXVtX3JlbGF0aW9uX2xpc3Qgb3B0X3ZhY3V1bV9yZWxhdGlvbl9saXN0CiAJCQkJZHJvcF9v cHRpb25fbGlzdCBwdWJfb2JqX2xpc3QgZXhjZXB0X3B1Yl9vYmpfbGlzdAorCQkJCW9wdF9leGNl cHRfY29sdW1uX2xpc3QKIAogJXR5cGUgPHJldGNsYXVzZT4gcmV0dXJuaW5nX2NsYXVzZQogJXR5 cGUgPG5vZGU+CXJldHVybmluZ19vcHRpb24KQEAgLTQ0MjYsNiArNDQyNywxMCBAQCBvcHRfY29s dW1uX2xpc3Q6CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5JTDsgfQogCQk7CiAKK29w dF9leGNlcHRfY29sdW1uX2xpc3Q6CisJCQknKCcgY29sdW1uTGlzdCAnKScJCQkJCQl7ICQkID0g JDI7IH0KKwkJOworCiBjb2x1bW5MaXN0OgogCQkJY29sdW1uRWxlbQkJCQkJCQkJeyAkJCA9IGxp c3RfbWFrZTEoJDEpOyB9CiAJCQl8IGNvbHVtbkxpc3QgJywnIGNvbHVtbkVsZW0JCQkJeyAkJCA9 IGxhcHBlbmQoJDEsICQzKTsgfQpAQCAtMTA3NDQsNiArMTA3NDksMTcgQEAgUHVibGljYXRpb25P YmpTcGVjOgogCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CiAJCQkJCSQkLT5s b2NhdGlvbiA9IEAxOwogCQkJCX0KKwkJCXwgVEFCTEUgcmVsYXRpb25fZXhwciBFWENFUFQgb3B0 X2V4Y2VwdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQorCQkJCXsKKwkJCQkJJCQgPSBtYWtl Tm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOworCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FU SU9OT0JKX1RBQkxFOworCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRh YmxlKTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQyOworCQkJCQkkJC0+cHVidGFi bGUtPmNvbHVtbnMgPSAkNDsKKwkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ1Owor CQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAx OworCQkJCX0KIAkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElkCiAJCQkJewogCQkJCQkkJCA9 IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CkBAIC0xMDc4NCw2ICsxMDgwMCwzNCBAQCBQ dWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCX0KIAkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CiAJCQkJ fQorCQkJfCBDb2xJZCBFWENFUFQgb3B0X2V4Y2VwdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVz ZQorCQkJCXsKKwkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOworCQkJCQkk JC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsKKwkJCQkJLyoKKwkJ CQkJICogSWYgZWl0aGVyIGEgcm93IGZpbHRlciBvciBleGNsdWRlIGNvbHVtbiBsaXN0IGlzCisJ CQkJCSAqIHNwZWNpZmllZCwgY3JlYXRlIGEgUHVibGljYXRpb25UYWJsZSBvYmplY3QuCisJCQkJ CSAqLworCQkJCQlpZiAoJDMgfHwgJDQpCisJCQkJCXsKKwkJCQkJCS8qCisJCQkJCQkgKiBUaGUg T3B0V2hlcmVDbGF1c2UgbXVzdCBiZSBzdG9yZWQgaGVyZSBidXQgaXQgaXMKKwkJCQkJCSAqIHZh bGlkIG9ubHkgZm9yIHRhYmxlcy4gRm9yIG5vbi10YWJsZSBvYmplY3RzLCBhbgorCQkJCQkJICog ZXJyb3Igd2lsbCBiZSB0aHJvd24gbGF0ZXIgdmlhCisJCQkJCQkgKiBwcmVwcm9jZXNzX3B1Ym9i al9saXN0KCkuCisJCQkJCQkgKi8KKwkJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1Ymxp Y2F0aW9uVGFibGUpOworCQkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9IG1ha2VSYW5nZVZh cihOVUxMLCAkMSwgQDEpOworCQkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDM7CisJCQkJ CQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJCQkkJC0+cHVidGFibGUtPmV4 Y2VwdCA9IHRydWU7CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQkkJC0+bmFtZSA9 ICQxOworCQkJCQl9CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOworCQkJCX0KIAkJCXwgQ29sSWQg aW5kaXJlY3Rpb24gb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCiAJCQkJewogCQkJCQkk JCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CkBAIC0xMDc5NCw2ICsxMDgzOCwxNyBA QCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAk NDsKIAkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CiAJCQkJfQorCQkJfCBDb2xJZCBpbmRpcmVjdGlv biBFWENFUFQgb3B0X2V4Y2VwdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQorCQkJCXsKKwkJ CQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOworCQkJCQkkJC0+cHVib2JqdHlw ZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsKKwkJCQkJJCQtPnB1YnRhYmxlID0gbWFr ZU5vZGUoUHVibGljYXRpb25UYWJsZSk7CisJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSBt YWtlUmFuZ2VWYXJGcm9tUXVhbGlmaWVkTmFtZSgkMSwgJDIsIEAxLCB5eXNjYW5uZXIpOworCQkJ CQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkNDsKKwkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNs YXVzZSA9ICQ1OworCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSQkLT5s b2NhdGlvbiA9IEAxOworCQkJCX0KIAkJCS8qIGdyYW1tYXIgbGlrZSB0YWJsZW5hbWUgKiAsIE9O TFkgdGFibGVuYW1lLCBPTkxZICggdGFibGVuYW1lICkgKi8KIAkJCXwgZXh0ZW5kZWRfcmVsYXRp b25fZXhwciBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CkBAIC0xMDgwNCw2 ICsxMDg1OSwxNiBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29s dW1ucyA9ICQyOwogCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDM7CiAJCQkJfQor CQkJfCBleHRlbmRlZF9yZWxhdGlvbl9leHByIEVYQ0VQVCBvcHRfZXhjZXB0X2NvbHVtbl9saXN0 IE9wdFdoZXJlQ2xhdXNlCisJCQkJeworCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2Jq U3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElOVUFUSU9O OworCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKKwkJCQkJ JCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQxOworCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMg PSAkMzsKKwkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0OworCQkJCQkkJC0+cHVi dGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJfQogCQkJfCBDVVJSRU5UX1NDSEVNQQogCQkJCXsK IAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggMDgxMTFiNTcxZGUuLmQxODY1NjRj Mjk3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1 dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAg LTE4NSw2ICsxODUsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVsYXRpb25TeW5jRW50cnkKIAkgKiBy b3cgZmlsdGVyIGV4cHJlc3Npb25zLCBjb2x1bW4gbGlzdCwgZXRjLgogCSAqLwogCU1lbW9yeUNv bnRleHQgZW50cnlfY3h0OworCisJLyoKKwkgKiBJbmRpY2F0ZXMgd2hldGhlciBubyBjb2x1bW5z IGFyZSBwdWJsaXNoZWQgZm9yIGEgZ2l2ZW4gcmVsYXRpb24uIFdpdGgKKwkgKiB0aGUgaW50cm9k dWN0aW9uIG9mIHRoZSBFWENFUFQgY2xhdXNlIGluIGNvbHVtbiBsaXN0cywgaXQgaXMgbm93CisJ ICogcG9zc2libGUgdG8gZGVmaW5lIGEgcHVibGljYXRpb24gdGhhdCBleGNsdWRlcyBhbGwgY29s dW1ucyBvZiBhIHRhYmxlLgorCSAqIEhvd2V2ZXIsIHRoZSAnY29sdW1ucycgYXR0cmlidXRlIGNh bm5vdCByZXByZXNlbnQgdGhpcyBjYXNlLCBzaW5jZSBhCisJICogTlVMTCB2YWx1ZSBpbXBsaWVz IHRoYXQgYWxsIGNvbHVtbnMgYXJlIHB1Ymxpc2hlZC4gVG8gZGlzdGluZ3Vpc2ggdGhpcworCSAq IHNjZW5hcmlvLCB0aGUgJ25vX2NvbHNfcHVibGlzaGVkJyBmbGFnIGlzIGludHJvZHVjZWQuCisJ ICovCisJYm9vbAkJbm9fY29sc19wdWJsaXNoZWQ7CiB9IFJlbGF0aW9uU3luY0VudHJ5OwogCiAv KgpAQCAtMTA2OCwxMiArMTA3OCwyMSBAQCBjaGVja19hbmRfaW5pdF9nZW5jb2woUEdPdXRwdXRE YXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJICovCiAJZm9yZWFjaF9wdHIoUHVibGlj YXRpb24sIHB1YiwgcHVibGljYXRpb25zKQogCXsKKwkJYm9vbAkJaGFzX2NvbHVtbl9saXN0ID0g ZmFsc2U7CisJCWJvb2wJCWV4Y2VwdF9jb2x1bW5zID0gZmFsc2U7CisKKwkJaGFzX2NvbHVtbl9s aXN0ID0gY2hlY2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KHB1YiwKKwkJCQkJCQkJCQkJCQkgIGVu dHJ5LT5wdWJsaXNoX2FzX3JlbGlkLAorCQkJCQkJCQkJCQkJCSAgTlVMTCwgTlVMTCwKKwkJCQkJ CQkJCQkJCQkgICZleGNlcHRfY29sdW1ucyk7CisKIAkJLyoKIAkJICogVGhlIGNvbHVtbiBsaXN0 IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUKIAkJICogJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVt bnMnIHBhcmFtZXRlci4gVGhvc2Ugd2lsbCBiZSBjaGVja2VkIGxhdGVyLAotCQkgKiBzZWUgcGdv dXRwdXRfY29sdW1uX2xpc3RfaW5pdC4KKwkJICogc2VlIHBnb3V0cHV0X2NvbHVtbl9saXN0X2lu aXQuIEJ1dCB3aGVuIGEgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkCisJCSAqIHdpdGggRVhDRVBU LCBpdCBzaG91bGQgYmUgY2hlY2tlZC4KIAkJICovCi0JCWlmIChjaGVja19hbmRfZmV0Y2hfY29s dW1uX2xpc3QocHViLCBlbnRyeS0+cHVibGlzaF9hc19yZWxpZCwgTlVMTCwgTlVMTCkpCisJCWlm IChoYXNfY29sdW1uX2xpc3QgJiYgIWV4Y2VwdF9jb2x1bW5zKQogCQkJY29udGludWU7CiAKIAkJ aWYgKGZpcnN0KQpAQCAtMTEyMiwxMSArMTE0MSwzMCBAQCBwZ291dHB1dF9jb2x1bW5fbGlzdF9p bml0KFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25zLAogCXsKIAkJUHVibGlj YXRpb24gKnB1YiA9IGxmaXJzdChsYyk7CiAJCUJpdG1hcHNldCAgKmNvbHMgPSBOVUxMOworCQli b29sCQlleGNlcHRfY29sdW1ucyA9IGZhbHNlOworCQlib29sCQlub19jb2xfcHVibGlzaGVkID0g ZmFsc2U7CiAKIAkJLyogUmV0cmlldmUgdGhlIGJpdG1hcCBvZiBjb2x1bW5zIGZvciBhIGNvbHVt biBsaXN0IHB1YmxpY2F0aW9uLiAqLwogCQlmb3VuZF9wdWJfY29sbGlzdCB8PSBjaGVja19hbmRf ZmV0Y2hfY29sdW1uX2xpc3QocHViLAogCQkJCQkJCQkJCQkJCQkgZW50cnktPnB1Ymxpc2hfYXNf cmVsaWQsCi0JCQkJCQkJCQkJCQkJCSBlbnRyeS0+ZW50cnlfY3h0LCAmY29scyk7CisJCQkJCQkJ CQkJCQkJCSBlbnRyeS0+ZW50cnlfY3h0LCAmY29scywKKwkJCQkJCQkJCQkJCQkJICZleGNlcHRf Y29sdW1ucyk7CisKKwkJLyoKKwkJICogSWYgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkIHdpdGgg RVhDRVBUIHJldHJpZXZlIGJpdG1hcCBvZiBjb2x1bW5zCisJCSAqIHdoaWNoIGFyZSBub3QgcGFy dCBvZiB0aGlzIGNvbHVtbiBsaXN0LgorCQkgKi8KKwkJaWYgKGV4Y2VwdF9jb2x1bW5zKQorCQl7 CisJCQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlbnRyeS0+ ZW50cnlfY3h0KTsKKworCQkJY29scyA9IHB1Yl9mb3JtX2NvbHNfbWFwKHJlbGF0aW9uLAorCQkJ CQkJCQkJIGVudHJ5LT5pbmNsdWRlX2dlbmNvbHNfdHlwZSwgY29scyk7CisJCQlNZW1vcnlDb250 ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKworCQkJaWYgKCFjb2xzKQorCQkJCW5vX2NvbF9wdWJsaXNo ZWQgPSB0cnVlOworCQl9CiAKIAkJLyoKIAkJICogRm9yIG5vbi1jb2x1bW4gbGlzdCBwdWJsaWNh dGlvbnMg4oCUIGUuZy4gVEFCTEUgKHdpdGhvdXQgYSBjb2x1bW4KQEAgLTExMzQsNyArMTE3Miw3 IEBAIHBnb3V0cHV0X2NvbHVtbl9saXN0X2luaXQoUEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpw dWJsaWNhdGlvbnMsCiAJCSAqIG9mIHRoZSB0YWJsZSAoaW5jbHVkaW5nIGdlbmVyYXRlZCBjb2x1 bW5zIHdoZW4KIAkJICogJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIHBhcmFtZXRlciBpcyB0 cnVlKS4KIAkJICovCi0JCWlmICghY29scykKKwkJaWYgKCFub19jb2xfcHVibGlzaGVkICYmICFj b2xzKQogCQl7CiAJCQkvKgogCQkJICogQ2FjaGUgdGhlIHRhYmxlIGNvbHVtbnMgZm9yIHRoZSBm aXJzdCBwdWJsaWNhdGlvbiB3aXRoIG5vCkBAIC0xMTQ2LDcgKzExODQsNyBAQCBwZ291dHB1dF9j b2x1bW5fbGlzdF9pbml0KFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25zLAog CQkJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVudHJ5LT5l bnRyeV9jeHQpOwogCiAJCQkJcmVsY29scyA9IHB1Yl9mb3JtX2NvbHNfbWFwKHJlbGF0aW9uLAot CQkJCQkJCQkJCQllbnRyeS0+aW5jbHVkZV9nZW5jb2xzX3R5cGUpOworCQkJCQkJCQkJCQllbnRy eS0+aW5jbHVkZV9nZW5jb2xzX3R5cGUsIE5VTEwpOwogCQkJCU1lbW9yeUNvbnRleHRTd2l0Y2hU byhvbGRjeHQpOwogCQkJfQogCkBAIC0xMTU2LDkgKzExOTQsMTEgQEAgcGdvdXRwdXRfY29sdW1u X2xpc3RfaW5pdChQR091dHB1dERhdGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywKIAkJaWYg KGZpcnN0KQogCQl7CiAJCQllbnRyeS0+Y29sdW1ucyA9IGNvbHM7CisJCQllbnRyeS0+bm9fY29s c19wdWJsaXNoZWQgPSBub19jb2xfcHVibGlzaGVkOwogCQkJZmlyc3QgPSBmYWxzZTsKIAkJfQot CQllbHNlIGlmICghYm1zX2VxdWFsKGVudHJ5LT5jb2x1bW5zLCBjb2xzKSkKKwkJZWxzZSBpZiAo KGVudHJ5LT5ub19jb2xzX3B1Ymxpc2hlZCAhPSBub19jb2xfcHVibGlzaGVkKSB8fAorCQkJCSAh Ym1zX2VxdWFsKGVudHJ5LT5jb2x1bW5zLCBjb2xzKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQllcnJtc2coImNh bm5vdCB1c2UgZGlmZmVyZW50IGNvbHVtbiBsaXN0cyBmb3IgdGFibGUgXCIlcy4lc1wiIGluIGRp ZmZlcmVudCBwdWJsaWNhdGlvbnMiLApAQCAtMTQ4Miw2ICsxNTIyLDEzIEBAIHBnb3V0cHV0X2No YW5nZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwK IAogCXJlbGVudHJ5ID0gZ2V0X3JlbF9zeW5jX2VudHJ5KGRhdGEsIHJlbGF0aW9uKTsKIAorCS8q CisJICogSWYgYWxsIGNvbHVtbnMgb2YgYSB0YWJsZSBhcmUgcHJlc2VudCBpbiBjb2x1bW4gbGlz dCBzcGVjaWZpZWQgd2l0aAorCSAqIEVYQ0VQVCwgc2tpcCBwdWJsaXNoaW5nIHRoZSBjaGFuZ2Vz LgorCSAqLworCWlmIChyZWxlbnRyeS0+bm9fY29sc19wdWJsaXNoZWQpCisJCXJldHVybjsKKwog CS8qIEZpcnN0IGNoZWNrIHRoZSB0YWJsZSBmaWx0ZXIgKi8KIAlzd2l0Y2ggKGFjdGlvbikKIAl7 CkBAIC0yMDU5LDYgKzIxMDYsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpk YXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50cnktPnB1Ymxpc2hfYXNfcmVsaWQgPSBJbnZh bGlkT2lkOwogCQllbnRyeS0+Y29sdW1ucyA9IE5VTEw7CiAJCWVudHJ5LT5hdHRybWFwID0gTlVM TDsKKwkJZW50cnktPm5vX2NvbHNfcHVibGlzaGVkID0gZmFsc2U7CiAJfQogCiAJLyogVmFsaWRh dGUgdGhlIGVudHJ5ICovCkBAIC0yMTA4LDYgKzIxNTYsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnko UEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50cnktPnB1YmFjdGlv bnMucHVidXBkYXRlID0gZmFsc2U7CiAJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YmRlbGV0ZSA9IGZh bHNlOwogCQllbnRyeS0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0ZSA9IGZhbHNlOworCQllbnRyeS0+ bm9fY29sc19wdWJsaXNoZWQgPSBmYWxzZTsKIAogCQkvKgogCQkgKiBUdXBsZSBzbG90cyBjbGVh bnVwcy4gKFdpbGwgYmUgcmVidWlsdCBsYXRlciBpZiBuZWVkZWQpLgpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXgg Nzk3NDdmOWE5OWYuLjNhNmVlZWU0YzUxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTQ3ODEsMjQgKzQ3ODEs NyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5m b1tdLCBpbnQgbnVtVGFibGVzKQogCQlpZiAodGJpbmZvID09IE5VTEwpCiAJCQljb250aW51ZTsK IAotCQkvKiBPSywgbWFrZSBhIER1bXBhYmxlT2JqZWN0IGZvciB0aGlzIHJlbGF0aW9uc2hpcCAq LwotCQlpZiAoc3RyY21wKHByZXhjZXB0LCAiZiIpID09IDApCi0JCQlwdWJyaW5mb1tqXS5kb2Jq Lm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9SRUw7Ci0JCWVsc2UKLQkJCXB1YnJpbmZvW2pdLmRv Ymoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw7Ci0KLQkJcHVicmluZm9bal0u ZG9iai5jYXRJZC50YWJsZW9pZCA9Ci0JCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFi bGVvaWQpKTsKLQkJcHVicmluZm9bal0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1 ZShyZXMsIGksIGlfb2lkKSk7Ci0JCUFzc2lnbkR1bXBJZCgmcHVicmluZm9bal0uZG9iaik7Ci0J CXB1YnJpbmZvW2pdLmRvYmoubmFtZXNwYWNlID0gdGJpbmZvLT5kb2JqLm5hbWVzcGFjZTsKLQkJ cHVicmluZm9bal0uZG9iai5uYW1lID0gdGJpbmZvLT5kb2JqLm5hbWU7Ci0JCXB1YnJpbmZvW2pd LnB1YmxpY2F0aW9uID0gcHViaW5mbzsKLQkJcHVicmluZm9bal0ucHVidGFibGUgPSB0YmluZm87 Ci0JCWlmIChQUWdldGlzbnVsbChyZXMsIGksIGlfcHJyZWxxdWFsKSkKLQkJCXB1YnJpbmZvW2pd LnB1YnJlbHF1YWwgPSBOVUxMOwotCQllbHNlCi0JCQlwdWJyaW5mb1tqXS5wdWJyZWxxdWFsID0g cGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3BycmVscXVhbCkpOworCQlwdWJyaW5mb1tq XS5wdWJleGNlcHQgPSAoc3RyY21wKHByZXhjZXB0LCAidCIpID09IDApOwogCiAJCWlmICghUFFn ZXRpc251bGwocmVzLCBpLCBpX3ByYXR0cnMpKQogCQl7CkBAIC00ODI0LDEwICs0ODA3LDI5IEBA IGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10s IGludCBudW1UYWJsZXMpCiAJCWVsc2UKIAkJCXB1YnJpbmZvW2pdLnB1YnJhdHRycyA9IE5VTEw7 CiAKKwkJLyogT0ssIG1ha2UgYSBEdW1wYWJsZU9iamVjdCBmb3IgdGhpcyByZWxhdGlvbnNoaXAg Ki8KKwkJaWYgKHB1YnJpbmZvW2pdLnB1YmV4Y2VwdCAmJiAhcHVicmluZm9bal0ucHVicmF0dHJz KQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JF TDsKKwkJZWxzZQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05f UkVMOworCisJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVvaWQgPQorCQkJYXRvb2lkKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CisJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQu b2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQo JnB1YnJpbmZvW2pdLmRvYmopOworCQlwdWJyaW5mb1tqXS5kb2JqLm5hbWVzcGFjZSA9IHRiaW5m by0+ZG9iai5uYW1lc3BhY2U7CisJCXB1YnJpbmZvW2pdLmRvYmoubmFtZSA9IHRiaW5mby0+ZG9i ai5uYW1lOworCQlwdWJyaW5mb1tqXS5wdWJsaWNhdGlvbiA9IHB1YmluZm87CisJCXB1YnJpbmZv W2pdLnB1YnRhYmxlID0gdGJpbmZvOworCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3BycmVs cXVhbCkpCisJCQlwdWJyaW5mb1tqXS5wdWJyZWxxdWFsID0gTlVMTDsKKwkJZWxzZQorCQkJcHVi cmluZm9bal0ucHVicmVscXVhbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9wcnJl bHF1YWwpKTsKKwogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJ c2VsZWN0RHVtcGFibGVQdWJsaWNhdGlvbk9iamVjdCgmKHB1YnJpbmZvW2pdLmRvYmopLCBmb3V0 KTsKIAotCQlpZiAoc3RyY21wKHByZXhjZXB0LCAidCIpID09IDApCisJCWlmIChwdWJyaW5mb1tq XS5wdWJleGNlcHQgJiYgIXB1YnJpbmZvW2pdLnB1YnJhdHRycykKIAkJCXNpbXBsZV9wdHJfbGlz dF9hcHBlbmQoJmV4Y2VwdGluZm8sICZwdWJyaW5mb1tqXSk7CiAKIAkJaisrOwpAQCAtNDkwNyw3 ICs0OTA5LDEyIEBAIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1 YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8pCiAJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUo dGJpbmZvKSk7CiAKIAlpZiAocHVicmluZm8tPnB1YnJhdHRycykKKwl7CisJCWlmIChwdWJyaW5m by0+cHViZXhjZXB0KQorCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgRVhDRVBUIik7 CisKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgKCVzKSIsIHB1YnJpbmZvLT5wdWJyYXR0 cnMpOworCX0KIAogCWlmIChwdWJyaW5mby0+cHVicmVscXVhbCkKIAl7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRl eCBhOWNiZWQ4YzljZS4uM2IzZDg2N2RiNTggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNjgyLDYgKzY4Miw3 IEBAIHR5cGVkZWYgc3RydWN0IF9QdWJsaWNhdGlvblJlbEluZm8KIAlUYWJsZUluZm8gICpwdWJ0 YWJsZTsKIAljaGFyCSAgICpwdWJyZWxxdWFsOwogCWNoYXIJICAgKnB1YnJhdHRyczsKKwlib29s CQlwdWJleGNlcHQ7CiB9IFB1YmxpY2F0aW9uUmVsSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggMTBi NWY3ZjI5Y2IuLmRmZjlhMmEzMDA2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMzAxOSwxMiArMzAxOSwxNCBAQCBk ZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkvKiBwcmlu dCBhbnkgcHVibGljYXRpb25zICovCiAJCWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkKIAkJ ewotCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJLyogRklYTUU6IDE4MDAwMCBz aG91bGQgYmUgY2hhbmdlZCB0byAxOTAwMDAgbGF0ZXIgZm9yIFBHMTkuICovCisJCQlpZiAocHNl dC5zdmVyc2lvbiA+PSAxODAwMDApCiAJCQl7CiAJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwK IAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKIAkJCQkJCQkJICAiICAgICAsIE5VTExcbiIK IAkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJ CQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKIAkJCQkJCQkJICAiICAg ICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHBuIE9OIHAub2lkID0g cG4ucG5wdWJpZFxuIgogCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBw YyBPTiBwYy5yZWxuYW1lc3BhY2UgPSBwbi5wbm5zcGlkXG4iCkBAIC0zMDM4LDM3ICszMDQwLDYx IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJ CQkJCSAgIiAgICAgICAgICAgICAgICBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZVxuIgogCQkJCQkJ CQkgICIgICAgICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBw cmF0dHJzW3NdKVxuIgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKKwkJCQkJ CQkJICAiCQksIHByZXhjZXB0ICIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1Ymxp Y2F0aW9uIHBcbiIKIAkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25f cmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJpZFxuIgogCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0 YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVS RSBwci5wcnJlbGlkID0gJyVzJ1xuIiwKLQkJCQkJCQkJICBvaWQsIG9pZCwgb2lkKTsKLQotCQkJ CS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQ RzE5LiAqLwotCQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE4MDAwMCkKLQkJCQkJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJmJ1ZiwgIiBBTkQgTk9UIHByLnByZXhjZXB0XG4iKTsKLQotCQkJCWFwcGVu ZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQgPSAnJXMnICIK KwkJCQkJCQkJICAiQU5EICBjLnJlbG5hbWVzcGFjZSBOT1QgSU4gKFxuICIKKwkJCQkJCQkJICAi IAlTRUxFQ1QgcG5uc3BpZCBGUk9NXG4iCisJCQkJCQkJCSAgIiAJcGdfY2F0YWxvZy5wZ19wdWJs aWNhdGlvbl9uYW1lc3BhY2UpXG4iCiAJCQkJCQkJCSAgIlVOSU9OXG4iCiAJCQkJCQkJCSAgIlNF TEVDVCBwdWJuYW1lXG4iCiAJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCiAJCQkJCQkJCSAgIgkJLCBO VUxMXG4iCisJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCisJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxv Zy5wZ19wdWJsaWNhdGlvbiBwXG4iCisJCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFO RCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iCisJCQkJCQkJ CSAgIiAgICAgQU5EIE5PVCBFWElTVFMgKFxuIgorCQkJCQkJCQkgICIJCVNFTEVDVCAxXG4iCisJ CQkJCQkJCSAgIgkJRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxuIgorCQkJ CQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwY1xuIgorCQkJCQkJCQkgICIJCU9O IHByLnBycmVsaWQgPSBwYy5vaWRcbiIKKwkJCQkJCQkJICAiCQlXSEVSRSBwci5wcnJlbGlkID0g JyVzJyBBTkQgcHIucHJwdWJpZCA9IHAub2lkKVxuIgorCQkJCQkJCQkgICJPUkRFUiBCWSAxOyIs CisJCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwgb2lkLCBvaWQpOworCQkJfQorCQkJZWxzZSBpZiAo cHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCQl7CisJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1 ZiwKKwkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKKwkJCQkJCQkJICAiICAgICAsIE5VTExc biIKKwkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9n LnBnX3B1YmxpY2F0aW9uIHBcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdf cHVibGljYXRpb25fbmFtZXNwYWNlIHBuIE9OIHAub2lkID0gcG4ucG5wdWJpZFxuIgorCQkJCQkJ CQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwYyBPTiBwYy5yZWxuYW1lc3BhY2Ug PSBwbi5wbm5zcGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHBjLm9pZCA9JyVzJyBhbmQgcGdfY2F0 YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgorCQkJCQkJCQkgICJVTklP TlxuIgorCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgorCQkJCQkJCQkgICIgICAgICwgcGdf Z2V0X2V4cHIocHIucHJxdWFsLCBjLm9pZClcbiIKKwkJCQkJCQkJICAiICAgICAsIChDQVNFIFdI RU4gcHIucHJhdHRycyBJUyBOT1QgTlVMTCBUSEVOXG4iCisJCQkJCQkJCSAgIiAgICAgICAgIChT RUxFQ1Qgc3RyaW5nX2FnZyhhdHRuYW1lLCAnLCAnKVxuIgorCQkJCQkJCQkgICIgICAgICAgICAg IEZST00gcGdfY2F0YWxvZy5nZW5lcmF0ZV9zZXJpZXMoMCwgcGdfY2F0YWxvZy5hcnJheV91cHBl cihwci5wcmF0dHJzOjpwZ19jYXRhbG9nLmludDJbXSwgMSkpIHMsXG4iCisJCQkJCQkJCSAgIiAg ICAgICAgICAgICAgICBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZVxuIgorCQkJCQkJCQkgICIgICAg ICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3Nd KVxuIgorCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKIAkJCQkJCQkJICAiRlJP TSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiV0hFUkUgcC5wdWJh bGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylc biIsCi0JCQkJCQkJCSAgb2lkKTsKLQotCQkJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNo YW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLwotCQkJCWlmIChwc2V0LnN2ZXJzaW9u ID49IDE4MDAwMCkKLQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkJCSAgIiAg ICAgQU5EIE5PVCBFWElTVFMgKFxuIgotCQkJCQkJCQkJICAiCQlTRUxFQ1QgMVxuIgotCQkJCQkJ CQkJICAiCQlGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCi0JCQkJCQkJ CQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwY1xuIgotCQkJCQkJCQkJICAiCQlPTiBw ci5wcnJlbGlkID0gcGMub2lkXG4iCi0JCQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAn JXMnIEFORCBwci5wcnB1YmlkID0gcC5vaWQpXG4iLAotCQkJCQkJCQkJICBvaWQpOwotCi0JCQkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDE7Iik7CisJCQkJCQkJCSAgIiAg ICAgSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBy cHViaWRcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBj Lm9pZCA9IHByLnBycmVsaWRcbiIKKwkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydc biIKKwkJCQkJCQkJICAiVU5JT05cbiIKKwkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKKwkJ CQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJ CQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKKwkJCQkJCQkJICAiV0hF UkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFi bGUoJyVzJylcbiIKKwkJCQkJCQkJICAiT1JERVIgQlkgMTsiLAorCQkJCQkJCQkgIG9pZCwgb2lk LCBvaWQsIG9pZCk7CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC0zMTA2LDggKzMxMzIsMTUgQEAg ZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAogCQkJCS8q IGNvbHVtbiBsaXN0IChpZiBhbnkpICovCiAJCQkJaWYgKCFQUWdldGlzbnVsbChyZXN1bHQsIGks IDIpKQotCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiICglcykiLAotCQkJCQkJCQkJICBQ UWdldHZhbHVlKHJlc3VsdCwgaSwgMikpOworCQkJCXsKKwkJCQkJaWYgKCFQUWdldGlzbnVsbChy ZXN1bHQsIGksIDMpICYmCisJCQkJCQlzdHJjbXAoUFFnZXR2YWx1ZShyZXN1bHQsIGksIDMpLCAi dCIpID09IDApCisJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiIEVYQ0VQVCAoJXMpIiwK KwkJCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAyKSk7CisJCQkJCWVsc2UKKwkJCQkJ CWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgKCVzKSIsCisJCQkJCQkJCQkJICBQUWdldHZhbHVl KHJlc3VsdCwgaSwgMikpOworCQkJCX0KIAogCQkJCS8qIHJvdyBmaWx0ZXIgKGlmIGFueSkgKi8K IAkJCQlpZiAoIVBRZ2V0aXNudWxsKHJlc3VsdCwgaSwgMSkpCkBAIC02NTIzLDcgKzY1NTYsMTEg QEAgYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoUFFFeHBCdWZmZXIgYnVmLCBjb25zdCBjaGFy ICpmb290ZXJtc2csCiAJCQkJCQkJICBQUWdldHZhbHVlKHJlcywgaSwgMSkpOwogCiAJCQlpZiAo IVBRZ2V0aXNudWxsKHJlcywgaSwgMykpCisJCQl7CisJCQkJaWYgKCFQUWdldGlzbnVsbChyZXMs IGksIDQpICYmIHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgNCksICJ0IikgPT0gMCkKKwkJCQkJ YXBwZW5kUFFFeHBCdWZmZXIoYnVmLCAiIEVYQ0VQVCIpOwogCQkJCWFwcGVuZFBRRXhwQnVmZmVy KGJ1ZiwgIiAoJXMpIiwgUFFnZXR2YWx1ZShyZXMsIGksIDMpKTsKKwkJCX0KIAogCQkJaWYgKCFQ UWdldGlzbnVsbChyZXMsIGksIDIpKQogCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIiBXSEVS RSAlcyIsIFBRZ2V0dmFsdWUocmVzLCBpLCAyKSk7CkBAIC02NzA2LDYgKzY3NDMsMTMgQEAgZGVz Y3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCWVsc2UKIAkJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLAogCQkJCQkJCQkJICIsIE5VTEwsIE5VTEwiKTsKKworCQkJ LyogRklYTUU6IDE4MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxOTAwMDAgbGF0ZXIgZm9yIFBH MTkuICovCisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCisJCQkJYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgIiwgcHJleGNlcHQiKTsKKwkJCWVsc2UKKwkJCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cigmYnVmLCAiLCBOVUxMIik7CisKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJ CQkJCQkJICAiXG5GUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYyxcbiIKIAkJCQkJCQkgICIgICAg IHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4sXG4iCkBAIC02NzE0LDEwICs2NzU4LDYgQEAgZGVz Y3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkgICIgIEFORCBj Lm9pZCA9IHByLnBycmVsaWRcbiIKIAkJCQkJCQkgICIgIEFORCBwci5wcnB1YmlkID0gJyVzJ1xu IiwgcHViaWQpOwogCi0JCQkvKiBGSVhNRTogMTgwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE5 MDAwMCBsYXRlciBmb3IgUEcxOS4gKi8KLQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE4MDAwMCkK LQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiICBBTkQgTk9UIHByLnByZXhjZXB0XG4iKTsK LQogCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIk9SREVSIEJZIDEsMiIpOwogCQkJaWYgKCFh ZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJUYWJsZXM6IiksIGZhbHNlLCAmY29u dCkpCiAJCQkJZ290byBlcnJvcl9yZXR1cm47CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggMDhi OWRmNWJjM2IuLmQ0YzkxNTJiMWZmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMjY5LDYg KzIyNjksOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExF VEVfV0lUSCgiQUxMIFRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CiAJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJB TEwiLCAiVEFCTEVTIikpCiAJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOworCWVsc2Ug aWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwg IlRBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJFWENFUFQiKTsKIAllbHNlIGlm IChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJU QUJMRSIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90 YWJsZXMpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQiLCAiVEFCTEUiKSkKQEAgLTM1OTQs NyArMzU5Niw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2Ug aWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRB QkxFUyIpKQogCQlDT01QTEVURV9XSVRIKCJJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChNYXRjaGVz KCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRSIsIE1hdGNo QW55KSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCi0JCUNPTVBMRVRFX1dJVEgoIldIRVJF ICgiLCAiV0lUSCAoIik7CisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCIsICJXSEVSRSAoIiwgIldJ VEggKCIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgUFVCTElDQVRJT04gPG5hbWU+IEZPUiBUQUJM RSIgd2l0aCAiPHRhYmxlPiwgLi4uIiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQ VUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFIikpCiAJCUNPTVBMRVRFX1dJVEhf U0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmgKaW5kZXggYTA5ZjBmMmFiOTkuLmVjNTJkMjNkNzc2IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCkBAIC0xODEsNyArMTgxLDggQEAgZXh0ZXJuIE9pZAlH ZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9y cywKIGV4dGVybiBib29sIGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBl eHRlcm4gYm9vbCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKTsKIGV4dGVybiBib29s IGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVsaWQs Ci0JCQkJCQkJCQkJTWVtb3J5Q29udGV4dCBtY3h0LCBCaXRtYXBzZXQgKipjb2xzKTsKKwkJCQkJ CQkJCQlNZW1vcnlDb250ZXh0IG1jeHQsIEJpdG1hcHNldCAqKmNvbHMsCisJCQkJCQkJCQkJYm9v bCAqZXhjZXB0X2NvbHVtbnMpOwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgcHVibGljYXRpb25fYWRk X3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJCQkJCQkJCQkJ CSAgYm9vbCBpZl9ub3RfZXhpc3RzKTsKIGV4dGVybiBCaXRtYXBzZXQgKnB1Yl9jb2xsaXN0X3Zh bGlkYXRlKFJlbGF0aW9uIHRhcmdldHJlbCwgTGlzdCAqY29sdW1ucyk7CkBAIC0xOTEsNiArMTky LDcgQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgcHVi aWQsIE9pZCBzY2hlbWFpZCwKIGV4dGVybiBCaXRtYXBzZXQgKnB1Yl9jb2xsaXN0X3RvX2JpdG1h cHNldChCaXRtYXBzZXQgKmNvbHVtbnMsIERhdHVtIHB1YmNvbHMsCiAJCQkJCQkJCQkJICAgTWVt b3J5Q29udGV4dCBtY3h0KTsKIGV4dGVybiBCaXRtYXBzZXQgKnB1Yl9mb3JtX2NvbHNfbWFwKFJl bGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJUHVibGlzaEdlbmNvbHNUeXBlIGluY2x1ZGVfZ2Vu Y29sc190eXBlKTsKKwkJCQkJCQkJCVB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNf dHlwZSwKKwkJCQkJCQkJCUJpdG1hcHNldCAqZXhjZXB0X2NvbHMpOwogCiAjZW5kaWYJCQkJCQkJ LyogUEdfUFVCTElDQVRJT05fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbl9yZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25f cmVsLmgKaW5kZXggZTdkN2YzYmE4NWMuLjZhMjE2OGZjMzJjIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHVibGljYXRpb25fcmVsLmgKQEAgLTMxLDExICszMSwxMiBAQCBDQVRBTE9HKHBnX3B1 YmxpY2F0aW9uX3JlbCw2MTA2LFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCkKIAlPaWQJCQlvaWQ7 CQkJLyogb2lkICovCiAJT2lkCQkJcHJwdWJpZCBCS0lfTE9PS1VQKHBnX3B1YmxpY2F0aW9uKTsg LyogT2lkIG9mIHRoZSBwdWJsaWNhdGlvbiAqLwogCU9pZAkJCXBycmVsaWQgQktJX0xPT0tVUChw Z19jbGFzcyk7CS8qIE9pZCBvZiB0aGUgcmVsYXRpb24gKi8KLQlib29sCQlwcmV4Y2VwdCBCS0lf REVGQVVMVChmKTsJLyogZXhjbHVkZSB0aGUgcmVsYXRpb24gKi8KKwlib29sCQlwcmV4Y2VwdCBC S0lfREVGQVVMVChmKTsJLyogZXhjbHVkZSB0aGUgcmVsYXRpb24gb3IgY29sdW1ucyAqLwogCiAj aWZkZWYJQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhl cmUgKi8KIAlwZ19ub2RlX3RyZWUgcHJxdWFsOwkJLyogcXVhbGlmaWNhdGlvbnMgKi8KLQlpbnQy dmVjdG9yCXByYXR0cnM7CQkvKiBjb2x1bW5zIHRvIHJlcGxpY2F0ZSAqLworCWludDJ2ZWN0b3IJ cHJhdHRyczsJCS8qIGNvbHVtbnMgdG8gcmVwbGljYXRlIG9yIGV4Y2x1ZGUgdG8KKwkJCQkJCQkJ ICogcmVwbGljYXRlICovCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfcHVibGljYXRpb25fcmVsOwog CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CmluZGV4IDE0YjdlZGU0 NTE1Li4zM2M4ZjU2YjY1ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w dWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlv bi5vdXQKQEAgLTIxMzIsNiArMjEzMiw3OCBAQCBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXI7CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9QIFRBQkxFIHB1Yl9z Y2gxLnRibDE7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDI7CistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3QgRVhDRVBUIGNv bHVtbnMgZm9yIENSRUFURSBQVUJMSUNBVElPTgorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAn RVJST1InOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgKGEgaW50IE5PVCBOVUxMLCBi IGludCwgYyBpbnQgTk9UIE5VTEwsIGQgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS5wdWJf dGVzdF9leGNlcHQyIChhIGludCwgYiBpbnQsIGMgaW50LCBkIGludCk7CistLSBWZXJpZnkgdGhh dCBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHdpdGggRVhDRVBUCitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9leGNlcHQgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEsIHB1Yl9zY2gxLnB1Yl90 ZXN0X2V4Y2VwdDIgRVhDRVBUIChiLCBjKTsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25f dGFibGVzIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9leGNlcHQnOworICAgIHB1Ym5hbWUgICAg IHwgc2NoZW1hbmFtZSB8ICAgIHRhYmxlbmFtZSAgICAgfCBhdHRuYW1lcyAgfCByb3dmaWx0ZXIg CistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyB0ZXN0cHViX2V4Y2VwdCB8IHB1YmxpYyAgICAgfCBwdWJfdGVz dF9leGNlcHQxIHwge2EsYixjLGR9IHwgCisgdGVzdHB1Yl9leGNlcHQgfCBwdWJfc2NoMSAgIHwg cHViX3Rlc3RfZXhjZXB0MiB8IHthLGR9ICAgICB8IAorKDIgcm93cykKKworLS0gQ2Fubm90IHVz ZSBFWENFUFQgY29sLWxpc3RzIGNvbWJpbmVkIHdpdGggVEFCTEVTIElOIFNDSEVNQQorQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0MiBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfc2No MSwgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGIsIGMpOworRVJST1I6ICBjYW5ub3Qg dXNlIGNvbHVtbiBsaXN0IGZvciByZWxhdGlvbiAicHVibGljLnB1Yl90ZXN0X2V4Y2VwdDEiIGlu IHB1YmxpY2F0aW9uICJ0ZXN0cHViX2V4Y2VwdDIiCitERVRBSUw6ICBDb2x1bW4gbGlzdHMgY2Fu bm90IGJlIHNwZWNpZmllZCBpbiBwdWJsaWNhdGlvbnMgY29udGFpbmluZyBGT1IgVEFCTEVTIElO IFNDSEVNQSBlbGVtZW50cy4KKy0tIFN5bnRheCBlcnJvciBFWENFUFQgd2l0aG91dCBhIGNvbC1s aXN0CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRSBwdWJfdGVz dF9leGNlcHQxIEVYQ0VQVDsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIjsiCitM SU5FIDE6IC4uLkJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4 Y2VwdDEgRVhDRVBUOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFZlcmlmeSBvayAtIEFMVEVSIFBVQkxJ Q0FUSU9OIC4uLiBTRVQgLi4uIEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2V4Y2VwdCBTRVQgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGEsIGIpLCBw dWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOworXGRScCsgdGVzdHB1Yl9leGNlcHQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2V4 Y2VwdAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSBy b290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK1Rh YmxlczoKKyAgICAicHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MiIKKyAgICAicHVibGljLnB1Yl90 ZXN0X2V4Y2VwdDEiIEVYQ0VQVCAoYSwgYikKKworLS0gVmVyaWZ5IGZhaWxzIC0gQUxURVIgUFVC TElDQVRJT04gLi4uIERST1AgLi4uIEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBi KTsKK0VSUk9SOiAgY29sdW1uIGxpc3QgbXVzdCBub3QgYmUgc3BlY2lmaWVkIGluIEFMVEVSIFBV QkxJQ0FUSU9OIC4uLiBEUk9QCistLSBWZXJpZnkgb2sgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4g RFJPUAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgRFJPUCBUQUJMRSBwdWJfdGVz dF9leGNlcHQxOworLS0gVmVyaWZ5IG9rIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIEFERCAuLi4g RVhDRVBUIChjb2wtbGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IEFERCBU QUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYywgZCk7CitcZFJwKyB0ZXN0cHViX2V4Y2Vw dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWJfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1 bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAg ICAgIHwgZgorVGFibGVzOgorICAgICJwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIgorICAgICJw dWJsaWMucHViX3Rlc3RfZXhjZXB0MSIgRVhDRVBUIChjLCBkKQorCistLSBWZXJpZnkgdGhhdCBF WENFUFQgY29sLWxpc3QgY2Fubm90IGNvbnRhaW4gUkkgY29scyAod2hlbiB1c2luZyBSSSBGVUxM KQorQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIEZVTEw7CitV UERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CitFUlJPUjogIGNh bm5vdCB1cGRhdGUgdGFibGUgInB1Yl90ZXN0X2V4Y2VwdDEiCitERVRBSUw6ICBDb2x1bW4gbGlz dCB1c2VkIGJ5IHRoZSBwdWJsaWNhdGlvbiBkb2VzIG5vdCBjb3ZlciB0aGUgcmVwbGljYSBpZGVu dGl0eS4KKy0tIFZlcmlmeSB0aGF0IEVYQ0VQVCBjb2wtbGlzdCBjYW5ub3QgY29udGFpbiBSSSBj b2xzICh3aGVuIHVzaW5nIElOREVYKQorQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNl cHQxX2FjX2lkeCBPTiBwdWJfdGVzdF9leGNlcHQxIChhLCBjKTsKK0FMVEVSIFRBQkxFIHB1Yl90 ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBwdWJfdGVzdF9leGNlcHQx X2FfaWR4OworRVJST1I6ICBpbmRleCAicHViX3Rlc3RfZXhjZXB0MV9hX2lkeCIgZm9yIHRhYmxl ICJwdWJfdGVzdF9leGNlcHQxIiBkb2VzIG5vdCBleGlzdAorVVBEQVRFIHB1Yl90ZXN0X2V4Y2Vw dDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJw dWJfdGVzdF9leGNlcHQxIgorREVUQUlMOiAgQ29sdW1uIGxpc3QgdXNlZCBieSB0aGUgcHVibGlj YXRpb24gZG9lcyBub3QgY292ZXIgdGhlIHJlcGxpY2EgaWRlbnRpdHkuCitEUk9QIElOREVYIHB1 Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4OworLS0gVmVyaWZ5IHRoYXQgc28gbG9uZyBhcyBubyBjbGFz aCBiZXR3ZWVuIFJJIGNvbHMgYW5kIHRoZSBFWENFUFQKK0NSRUFURSBVTklRVUUgSU5ERVggcHVi X3Rlc3RfZXhjZXB0MV9hX2lkeCBPTiBwdWJfdGVzdF9leGNlcHQxIChhKTsKK0FMVEVSIFRBQkxF IHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBwdWJfdGVzdF9l eGNlcHQxX2FfaWR4OworVVBEQVRFIHB1Yl90ZXN0X2V4Y2VwdDEgU0VUIGEgPSAzIFdIRVJFIGEg PSAxOworLS0gY2xlYW51cAorRFJPUCBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4OworRFJP UCBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDsKK0RST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0 MTsKK0RST1AgVEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MjsKIERST1AgU0NIRU1BIHB1 Yl9zY2gxOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFJFU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCA2ZTgxNGVkYWNl Ni4uYmE1NzUyOWU1M2YgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0 aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTEz MjIsNiArMTMyMiw1OCBAQCBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CiBEUk9Q IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CiBE Uk9QIFRBQkxFIHB1Yl9zY2gxLnRibDI7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVGVzdCBFWENFUFQgY29sdW1ucyBmb3Ig Q1JFQVRFIFBVQkxJQ0FUSU9OCisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsK K0NSRUFURSBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIChhIGludCBOT1QgTlVMTCwgYiBpbnQsIGMg aW50IE5PVCBOVUxMLCBkIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhj ZXB0MiAoYSBpbnQsIGIgaW50LCBjIGludCwgZCBpbnQpOworCistLSBWZXJpZnkgdGhhdCBwdWJs aWNhdGlvbiBpcyBjcmVhdGVkIHdpdGggRVhDRVBUCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9leGNlcHQgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEsIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4 Y2VwdDIgRVhDRVBUIChiLCBjKTsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVz IFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9leGNlcHQnOworCistLSBDYW5ub3QgdXNlIEVYQ0VQ VCBjb2wtbGlzdHMgY29tYmluZWQgd2l0aCBUQUJMRVMgSU4gU0NIRU1BCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2gxLCBUQUJM RSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYiwgYyk7CisKKy0tIFN5bnRheCBlcnJvciBFWENF UFQgd2l0aG91dCBhIGNvbC1saXN0CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQy IEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVDsKKworLS0gVmVyaWZ5IG9rIC0gQUxU RVIgUFVCTElDQVRJT04gLi4uIFNFVCAuLi4gRVhDRVBUIChjb2wtbGlzdCkKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZXhjZXB0IFNFVCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAo YSwgYiksIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDI7CitcZFJwKyB0ZXN0cHViX2V4Y2VwdAor CistLSBWZXJpZnkgZmFpbHMgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJPUCAuLi4gRVhDRVBU IChjb2wtbGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IERST1AgVEFCTEUg cHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGEsIGIpOworCistLSBWZXJpZnkgb2sgLSBBTFRFUiBQ VUJMSUNBVElPTiAuLi4gRFJPUAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgRFJP UCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxOworCistLSBWZXJpZnkgb2sgLSBBTFRFUiBQVUJMSUNB VElPTiAuLi4gQUREIC4uLiBFWENFUFQgKGNvbC1saXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9leGNlcHQgQUREIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChjLCBkKTsKK1xk UnArIHRlc3RwdWJfZXhjZXB0CisKKy0tIFZlcmlmeSB0aGF0IEVYQ0VQVCBjb2wtbGlzdCBjYW5u b3QgY29udGFpbiBSSSBjb2xzICh3aGVuIHVzaW5nIFJJIEZVTEwpCitBTFRFUiBUQUJMRSBwdWJf dGVzdF9leGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgRlVMTDsKK1VQREFURSBwdWJfdGVzdF9leGNl cHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsKKworLS0gVmVyaWZ5IHRoYXQgRVhDRVBUIGNvbC1s aXN0IGNhbm5vdCBjb250YWluIFJJIGNvbHMgKHdoZW4gdXNpbmcgSU5ERVgpCitDUkVBVEUgVU5J UVVFIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEgKGEs IGMpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIFVTSU5H IElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBT RVQgYSA9IDMgV0hFUkUgYSA9IDE7CitEUk9QIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4 OworCistLSBWZXJpZnkgdGhhdCBzbyBsb25nIGFzIG5vIGNsYXNoIGJldHdlZW4gUkkgY29scyBh bmQgdGhlIEVYQ0VQVAorQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4 IE9OIHB1Yl90ZXN0X2V4Y2VwdDEgKGEpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBS RVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitVUERB VEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CisKKy0tIGNsZWFudXAK K0RST1AgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeDsKK0RST1AgUFVCTElDQVRJT04gdGVz dHB1Yl9leGNlcHQ7CitEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDE7CitEUk9QIFRBQkxFIHB1 Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDI7CiBEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIAogUkVTRVQg Y2xpZW50X21pbl9tZXNzYWdlczsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24v dC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCmluZGV4IDFkMTE1MjgzODA5Li42NjA0 Njc4MzZhNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3JlcF9jaGFu Z2VzX2V4Y2VwdF90YWJsZS5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVw X2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCkBAIC0xLDcgKzEsNyBAQAogCiAjIENvcHlyaWdodCAo YykgMjAyMS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogCi0jIExv Z2ljYWwgcmVwbGljYXRpb24gdGVzdHMgZm9yIGV4Y2VwdCB0YWJsZSBwdWJsaWNhdGlvbnMKKyMg TG9naWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBmb3IgZXhjZXB0IHRhYmxlIGFuZCBleGNlcHQgY29s dW1uIHB1YmxpY2F0aW9ucwogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5nczsKIHVzZSBQb3N0Z3Jl U1FMOjpUZXN0OjpDbHVzdGVyOwpAQCAtNzcsNiArNzcsMTI4IEBAICRyZXN1bHQgPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiU0VMRUNUIGNvdW50KCopLCBtaW4o YSksIG1heChhKSBGUk9NIHB1YmxpYy50YWIxIik7CiBpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hl Y2sgcm93cyBvbiBzdWJzY3JpYmVyIGNhdGNodXAnKTsKIAorIyBUZXN0IGZvciBleGNlcHQgY29s dW1uIHB1YmxpY2F0aW9ucworIyBJbml0aWFsIHNldHVwCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGFiMiAoYSBpbnQsIGIgaW50IE5PVCBO VUxMLCBjIGludCkiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBUQUJMRSBzY2gxLnRhYjIgKGEgaW50LCBiIGludCwgYyBpbnQpIik7Ciskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGFiMyAoYSBp bnQsIGIgaW50LCBjIGludCkiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIkNSRUFURSBUQUJMRSB0YWI0IChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNUT1JF RCkiCispOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRF IFRBQkxFIHRhYjUgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RP UkVELCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RPUkVEKSIKKyk7Ciskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdGFiMiBWQUxV RVMgKDEsIDIsIDMpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJJTlNFUlQgSU5UTyBzY2gxLnRhYjIgVkFMVUVTICgxLCAyLCAzKSIpOworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJf Y29sIEZPUiBUQUJMRSB0YWIyIEVYQ0VQVCAoYSksIHNjaDEudGFiMiBFWENFUFQgKGIsIGMpIgor KTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFC TEUgdGFiMiAoYSBpbnQsIGIgaW50IE5PVCBOVUxMLCBjIGludCkiKTsKKyRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgc2NoMS50YWIyIChhIGlu dCwgYiBpbnQsIGMgaW50KSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIkNSRUFURSBUQUJMRSB0YWIzIChhIGludCwgYiBpbnQsIGMgaW50KSIpOworJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0YWI0IChh IGludCwgYiBpbnQsIGMgaW50KSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0YWI1IChhIGludCwgYiBpbnQsIGMgaW50KSIpOworJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJ T04gdGFwX3N1Yl9jb2wgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElP TiB0YXBfcHViX2NvbCIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRp b25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX2NvbCcpOworCisjIFRlc3QgaW5pdGlh bCBzeW5jCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJTRUxFQ1QgKiBGUk9NIHRhYjIiKTsKK2lzKCRyZXN1bHQsIHFxKHwyfDMpLAorCSdjaGVjayB0 aGF0IGluaXRpYWwgc3luYyBmb3IgZXhjZXB0IGNvbHVtbiBwdWJsaWNhdGlvbicpOworJHJlc3Vs dCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJP TSBzY2gxLnRhYjIiKTsKK2lzKCRyZXN1bHQsIHFxKDF8fCksICdjaGVjayB0aGF0IGluaXRpYWwg c3luYyBmb3IgZXhjZXB0IGNvbHVtbiBwdWJsaWNhdGlvbicpOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjIgVkFMVUVTICg0LCA1LCA2KSIp OworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8g c2NoMS50YWIyIFZBTFVFUyAoNCwgNSwgNikiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3Jf Y2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKworIyBUZXN0IGluY3JlbWVudGFsIGNoYW5nZXMKKyRy ZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAq IEZST00gdGFiMiIpOworaXMoICRyZXN1bHQsIHFxKHwyfDMKK3w1fDYpLAorCSdjaGVjayBpbmNy ZW1lbnRhbCBpbnNlcnQgZm9yIGV4Y2VwdCBjb2x1bW4gcHVibGljYXRpb24nKTsKKyRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00g c2NoMS50YWIyIik7CitpcyggJHJlc3VsdCwgcXEoMXx8Cis0fHwpLCAnY2hlY2sgaW5jcmVtZW50 YWwgaW5zZXJ0IGZvciBleGNlcHQgY29sdW1uIHB1YmxpY2F0aW9uJyk7CisKKyMgVGVzdCBmb3Ig dXBkYXRlCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg VU5JUVVFIElOREVYIGJfaWR4IE9OIHRhYjIgKGIpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0YWIyIFJFUExJQ0EgSURFTlRJVFkgVVNJ TkcgSU5ERVggYl9pZHgiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJDUkVBVEUgVU5JUVVFIElOREVYIGJfaWR4IE9OIHRhYjIgKGIpIik7Ciskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGFiMiBSRVBMSUNB IElERU5USVRZIFVTSU5HIElOREVYIGJfaWR4Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGFiMiBTRVQgYSA9IDMsIGIgPSA0LCBjID0gNSBXSEVS RSBhID0gMSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2Nv bCcpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi U0VMRUNUICogRlJPTSB0YWIyIik7CitpcyggJHJlc3VsdCwgcXEofDV8NgorfDR8NSksCisJJ2No ZWNrIHVwZGF0ZSBmb3IgZXhjZXB0IGNvbHVtbiBwdWJsaWNhdGlvbicpOworCisjIFRlc3QgQUxU RVIgUFVCTElDQVRJT04gZm9yIEVYQ0VQVCAoY29sX2xpc3QpCiskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBBREQg VEFCTEUgdGFiMyBFWENFUFQoYikiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNB VElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5v ZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjMgVkFMVUVTICgxLCAyLCAzKSIpOworJG5v ZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9 ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0 YWIzIik7CitpcygkcmVzdWx0LCBxcSgxfHwzKSwgJ2NoZWNrIGFsdGVyIHB1YmxpY2F0aW9uIHdp dGggRVhDRVBUJyk7CisKKyMgVGVzdCBmb3IgcHVibGljYXRpb24gY3JlYXRlZCB3aXRoIHB1Ymxp c2hfZ2VuZXJhdGVkX2NvbHVtbnMgYXMgdHJ1ZSBvbiB0YWJsZQorIyB3aXRoIGdlbmVyYXRlZCBj b2x1bW5zIGFuZCBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aCBFWENFUFQKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyB0YWI0IFZBTFVFUyAoMSki KTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJ Q0FUSU9OIHRhcF9wdWJfY29sIFNFVCAocHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucykiKTsKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9O IHRhcF9wdWJfY29sIFNFVCBUQUJMRSB0YWI0IEVYQ0VQVChiKSIpOworJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX2Nv bCBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJz Y3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX2NvbCcpOworCiskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdGFiNCBWQUxVRVMg KDIpIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7 CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxF Q1QgKiBGUk9NIHRhYjQiKTsKK2lzKCAkcmVzdWx0LCBxcSgxfHwzCisyfHw2KSwKKwknY2hlY2sg cHVibGljYXRpb24ocHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucyBhcyB0cnVlKSB3aXRoIGdlbmVy YXRlZCBjb2x1bW5zIGFuZCBFWENFUFQnCispOworCisjIFRlc3QgZm9yIHB1YmxpY2F0aW9uIGNy ZWF0ZWQgd2l0aCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zIGFzIGZhbHNlIG9uIHRhYmxlCisj IHdpdGggZ2VuZXJhdGVkIGNvbHVtbnMgYW5kIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoIEVY Q0VQVAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRP IHRhYjUgVkFMVUVTICgxKSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgU0VUIChwdWJsaXNoX2dlbmVyYXRl ZF9jb2x1bW5zPW5vbmUpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBTRVQgVEFCTEUgdGFiNSBFWENFUFQo YikiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBT VUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNBVElPTiIpOworJG5vZGVfc3Vi c2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFw X3N1Yl9jb2wnKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklO U0VSVCBJTlRPIHRhYjUgVkFMVUVTICgyKSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9j YXRjaHVwKCd0YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWI1Iik7CitpcyggJHJlc3VsdCwgcXEo MXx8CisyfHwpLAorCSdjaGVjayBwdWJsaWNhdGlvbihwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5z IGFzIGZhbHNlKSB3aXRoIGdlbmVyYXRlZCBjb2x1bW5zIGFuZCBFWENFUFQnCispOworCiAkbm9k ZV9zdWJzY3JpYmVyLT5zdG9wKCdmYXN0Jyk7CiAkbm9kZV9wdWJsaXNoZXItPnN0b3AoJ2Zhc3Qn KTsKIAotLSAKMi4zNC4xCgo= --0000000000008a909d063a45ecb2--