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 1udwGr-002eyc-64 for pgsql-hackers@arkaria.postgresql.org; Mon, 21 Jul 2025 19:33:58 +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 1udwGq-002Yth-76 for pgsql-hackers@arkaria.postgresql.org; Mon, 21 Jul 2025 19:33:56 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1udwGp-002YtY-6y for pgsql-hackers@lists.postgresql.org; Mon, 21 Jul 2025 19:33:56 +0000 Received: from mail-oo1-xc34.google.com ([2607:f8b0:4864:20::c34]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1udwGm-0004k8-2i for pgsql-hackers@lists.postgresql.org; Mon, 21 Jul 2025 19:33:54 +0000 Received: by mail-oo1-xc34.google.com with SMTP id 006d021491bc7-61594007beeso1608567eaf.3 for ; Mon, 21 Jul 2025 12:33:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753126432; x=1753731232; 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=9Eerc4AOUbF36V098W8ijLN/1BcGTUl63GMnduSjH0A=; b=imCkqCMvj0Ouqp1MYG2zY1LXFiGv964aMRL7R6H7dPa1dZaUHKDzM3dI++6vSfpWSN 04qpeBu8Eh07T2oR0seGY2RKyBIU4R4T4ixqpMrcdcmFmIpTyrigOB6dlpIfOIx/UFUj gfrkqVUextKPE9LTrN677J3kjzluXnLsJNtZ7dKULMtgXB/D0RxkZnkghEAAx5MzSHYW XAULW1NlouLx3PbLh3qGLogffjNh86UpE98y7UIQmemp9Ot9cG5lUiGFgytCx9leQKZt EoMSdlPAUqTRx32rnW588PXhoBPCJtV6fpu8PsDiAV+9cGyL0jHOfsm708kAV7AXbu2G ka1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753126432; x=1753731232; 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=9Eerc4AOUbF36V098W8ijLN/1BcGTUl63GMnduSjH0A=; b=XXtHWup15eeyoefhe8MP1Iyj9cKiZf2I17Wk+DV3cTaNZk84l8LUMBqD7E0Lp7wgbw LboSoOU/dYjLMLACMLMw6B3E7AtlP7NUUZyixTzMhsObhXiNiLUMSWDnWP07BsGL2dlo 1Ox+k/RpKGKSv1i93uLuC17PapTuB8WAwcO8soHeGOBMY59gLoObVAKUSle7d4wU6NPp wsxiQapW0Ow289y5gjJeywrO136XbvM9+7U53KJjdUVkHeB6A255U4e01ZVFglfpbBQy nGhTHYWDp9vGpErOIWDfRtp4WbwVV0NgQQ1nKPzTslqH3kMPRq2vZ0nYtAa2h2CVoU2K ypvg== X-Forwarded-Encrypted: i=1; AJvYcCUYYJWMTtyu6MVoDaZmpc2DJUr3t3CWm3nBrhGY7Rs3hXAaUWNOJpe3kaMjou0zF9oNNMYwV+zL+G3lnap1@lists.postgresql.org X-Gm-Message-State: AOJu0YyjRRDaJjH50HNHf1RIfMA6jsuIIkmCR0HqkrLZdXDYDVGsmfWm Np9CryYtM6yE6nl7n0xfN/CcHgwTzhmCDnE/ZsWIYAxq81ET/uz2LlDtD/m9ME27PkLhkMLG1xZ 6YRQa9o8wJ1AqYjbJy7/6OCVMrryQ3uT65f0B X-Gm-Gg: ASbGncsYkD1E2yD7sXd1KeVVGPHCByXaTcPXMR3l3wrg5vpsXTCo2keFVn0b1hIiZ1E pS+6vL6qKP2YVZNBPAU3zysnz6iLqRSBRHyzG/qasS5vrykn65T1HPIwYSZN7CMwL2Lh4M6rziU uTfrZgGiRHSHWG2BBVoB2DQ1AC+0gdU9KAv7NbWSXYm2TibUeRbHZEzQvPaUFHDslFgbbR9ey7a DZdK5rFCw== X-Google-Smtp-Source: AGHT+IH9mG28qTJL/hc/h0PSxC4e9DK5Z+F2Va2JaWmTVU5hCG9R4UlG34Jop/yoakLpfb3hrKPMO1Yz4/8fw70wYdY= X-Received: by 2002:a05:6808:8510:b0:40b:3530:9d30 with SMTP id 5614622812f47-41d038e19f7mr14850006b6e.9.1753126431438; Mon, 21 Jul 2025 12:33:51 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Tue, 22 Jul 2025 01:03:37 +0530 X-Gm-Features: Ac12FXyV5PXLIWUDxrkTcMgWQcX4Cpd8C5UNHxOcpp9IZo7bJLbo1jVJexHkMlY 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="00000000000031e205063a758ebb" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000031e205063a758ebb Content-Type: text/plain; charset="UTF-8" On Mon, 21 Jul 2025 at 12:17, Peter Smith wrote: > > Hi Shlok. > > Some review comments for patch v16-0003. > > ====== > Commit message > > 1. > The column "prexcept" of system catalog "pg_publication_rel" is set to > "true" when publication is created with EXCEPT table or EXCEPT column > list. If column "prattrs" of system catalog "pg_publication_rel" is also > set or column "puballtables" of system catalog "pg_publication" is > "false", it indicates the column list is specified with EXCEPT clause > and columns in "prattrs" are excluded from being published. > > ~ > > Somehow, this seems to contain too much information, making it a bit > confusing. Can't you chop this down to something like below? > > SUGESTION > When column "prexcept" of system catalog "pg_publication_rel" is set > to "true", and column "prattrs" of system catalog "pg_publication_rel" > is not NULL, that means the publication was created with "EXCEPT > (column-list)", and the columns in "prattrs" will be excluded from > being published. > Modified the commit message as per suggestion. > ====== > doc/src/sgml/logical-replication.sgml > > 2. > 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. Generated > columns can be > + specified in a column list using the EXCEPT clause. This > + excludes the specified generated columns from being published, regardless of > + the > + publish_generated_columns setting. However, for > + generated columns that are not listed in the EXCEPT > + clause, whether they are published or not still depends on the value of > + > publish_generated_columns. See > for details. > > > ~~ > > For this part: > > "Generated columns can be specified in a column list using the > EXCEPT clause. This excludes the specified > generated columns from being published, regardless of..." > > I think the whole paragraph already said "Generated columns can also > be specified in a column list", so you don't need to repeat it. > Instead, maybe say something like below. > > SUGGESTION > Specifying generated columns in a column list using the > EXCEPT clause excludes those columns from being > published, regardless of... > > ~~~ > Modified > 3. > - Publication p1 > - Owner | All tables | Inserts | Updates | Deletes | Truncates | Via root > -----------+------------+---------+---------+---------+-----------+---------- > - postgres | f | t | t | t | t | f > + Publication p1 > + Owner | All tables | Inserts | Updates | Deletes | Truncates | > Generated columns | Via root > +--------+------------+---------+---------+---------+-----------+-------------------+---------- > + ubuntu | f | t | t | t | t | none > | f > Tables: > "public.t1" (id, a, b, d) > + "public.t2" EXCEPT (a, d) > > > > I noticed the Owner changed from "postgres" to "ubuntu". Do you think > it is better to keep this as "postgres" for the example? I agree that it is better to keep "postgres". I have reverted back to the use "postgres".. > > ====== > doc/src/sgml/ref/create_publication.sgml > > 4. > The tables added to a publication that publishes UPDATE and/or DELETE > operations must have REPLICA IDENTITY defined. Otherwise those > operations will be disallowed on those tables. > > 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. > > A row filter expression (i.e., the WHERE clause) must contain only > columns that are covered by the REPLICA IDENTITY, in order for UPDATE > and DELETE operations to be published. For publication of INSERT > operations, any column may be used in the WHERE expression. The row > filter allows simple expressions that don't have user-defined > functions, user-defined operators, user-defined types, user-defined > collations, non-immutable built-in functions, or references to system > columns. > > The generated columns that are part of the column list specified with > the EXCEPT clause are not published, regardless of the > publish_generated_columns option. However, generated columns that are > not part of the column list specified with the EXCEPT clause are > published according to the value of the publish_generated_columns > option. See Section 29.6 for details. > > The generated columns that are part of REPLICA IDENTITY must be > published explicitly either by listing them in the column list or by > enabling the publish_generated_columns option, in order for UPDATE and > DELETE operations to be published. > > ~~ > > Notice all those 5 paragraphs (above) are talking about REPLICA > IDENTITY, except the 4th paragraph. Maybe the 4th paragraph should be > moved to last, to keep all the REPLICA IDENTITY stuff together. > Fixed > ====== > src/backend/catalog/pg_publication.c > > 5. pub_form_cols_map > > * Returns a bitmap representing the columns of the specified table. > * > * Generated columns are included if include_gencols_type is > - * PUBLISH_GENCOLS_STORED. > + * PUBLISH_GENCOLS_STORED. Columns that are in the exceptcols are excluded from > + * the column list. > */ > Bitmapset * > -pub_form_cols_map(Relation relation, PublishGencolsType include_gencols_type) > +pub_form_cols_map(Relation relation, PublishGencolsType include_gencols_type, > + Bitmapset *except_cols) > > Forgot to add the underscore in the function comment. > > /exceptcols/except_cols/ > Fixed > ~~~ > > 6. pg_get_publication_tables > > + > + /* > + * We fetch pubtuple if publication is not FOR ALL TABLES and not > + * FOR TABLES IN SCHEMA. So if prexcept is true, it indicates that > + * prattrs contains columns to be excluded for replication. > + */ > + exceptDatum = SysCacheGetAttr(PUBLICATIONRELMAP, pubtuple, > + Anum_pg_publication_rel_prexcept, > + &isnull); > + > + if (!isnull && DatumGetBool(exceptDatum) && !nulls[2]) > + except_columns = pub_collist_to_bitmapset(NULL, values[2], NULL); > > But, you cannot have EXCEPT for null column list, so shouldn't the > !nulls[2] check be done to also guard the SysCacheGetAttr call? > Fixed > ====== > src/backend/parser/gram.y > > 7. > > Shlok wrote [1-reply #11] > 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. > > ~ > > Yeah, but IMO that leads to excessive duplicated code. I think the > code can perhaps be a lot simpler if the grammar is written more like > the synopsis: > > e.g. TABLE name opt_EXCEPT opt_column_list > > where - opt_EXCEPT is null, and opt_column_list is null... means no col list > where - opt_EXCEPT is null, and opt_column_list is not null... means > normal col list > where - opt_EXCEPT is not null, and opt_column_list not null... means > EXCEPT col list > where - opt_EXCEPT is not null, and opt_column_list null... SYNTAX ERROR > > So code it something like this (just adding opt_EXCEPT to the existing > productions) > > %type opt_ordinality opt_without_overlaps opt_EXCEPT > ... > opt_EXCEPT: > EXCEPT { $$ = true; } > | /*EMPTY*/ { $$ = false; } > ; > ... > TABLE relation_expr opt_EXCEPT opt_column_list OptWhereClause > { > $$ = makeNode(PublicationObjSpec); > $$->pubobjtype = PUBLICATIONOBJ_TABLE; > $$->pubtable = makeNode(PublicationTable); > $$->pubtable->relation = $2; > $$->pubtable->except = $3; > $$->pubtable->columns = $4; > if ($3 && !$4) > ereport(ERROR, > (errcode(ERRCODE_SYNTAX_ERROR), > errmsg("EXCEPT without column list"), > parser_errposition(@3))); > $$->pubtable->whereClause = $5; > $$->location = @1; > } > > etc. > I have modified it. I have created a function 'check_except_collist' to throw error, to avoid duplication code for error message. > ====== > src/bin/psql/describe.c > > 8. > if (!PQgetisnull(res, i, 3)) > + { > + if (!PQgetisnull(res, i, 4) && strcmp(PQgetvalue(res, i, 4), "t") == 0) > + appendPQExpBuffer(buf, " EXCEPT"); > appendPQExpBuffer(buf, " (%s)", PQgetvalue(res, i, 3)); > + } > > This growing list of columns makes it hard to understand this function > without looking back at the caller all the time. Maybe you can add a > function comment that at least explains what those attributes 1,2,3,4 > represent? > Added a comment > ====== > src/bin/psql/tab-complete.in.c > > 9. > + else if (Matches("ALTER", "PUBLICATION", MatchAny, "ADD|SET", > "TABLE", MatchAny)) > + COMPLETE_WITH("EXCEPT"); > > Since it is not allowed to have an EXCEPT with no column list, > shouldn't this say "EXCEPT ("? > Fixed > ~~~ > > 10. > else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE", > MatchAny) && !ends_with(prev_wd, ',')) > - COMPLETE_WITH("WHERE (", "WITH ("); > + COMPLETE_WITH("EXCEPT", "WHERE (", "WITH ("); > > Ditto. Since it is not allowed to have an EXCEPT with no column list, > shouldn't this say "EXCEPT ("? > Fixed > > ====== > src/test/regress/expected/publication.out > > 11. > +-- Verify that EXCEPT col-list cannot contain RI cols (when using INDEX) > +CREATE UNIQUE INDEX pub_test_except1_ac_idx ON pub_test_except1 (a, c); > +ALTER TABLE pub_test_except1 REPLICA IDENTITY USING INDEX > pub_test_except1_a_idx; > +ERROR: index "pub_test_except1_a_idx" for table "pub_test_except1" > does not exist > +UPDATE pub_test_except1 SET a = 3 WHERE a = 1; > +ERROR: cannot update table "pub_test_except1" > +DETAIL: Column list used by the publication does not cover the > replica identity. > +DROP INDEX pub_test_except1_ac_idx; > > > What's happening here? I'm not sure these are the kind of errors you > were trying to cause. > Yes, it is not the error I was trying to cause. I have modified it. > ====== > src/test/regress/sql/publication.sql > > 12. > +-- Verify that EXCEPT col-list cannot contain RI cols (when using RI FULL) > +ALTER TABLE pub_test_except1 REPLICA IDENTITY FULL; > +UPDATE pub_test_except1 SET a = 3 WHERE a = 1; > > > SUGGESTION. Change that comment to: > Verify fails - EXCEPT col-list cannot... > Fixed > ~~~ > > 13. > +-- Verify that EXCEPT col-list cannot contain RI cols (when using INDEX) > +CREATE UNIQUE INDEX pub_test_except1_ac_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_ac_idx; > > SUGGESTION. Change that comment to: > Verify fails - EXCEPT col-list cannot... > Fixed > ~~~ > > 14. > +-- Verify that so long as no clash between RI cols and the EXCEPT > +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; > + > > That comment doesn't make sense. Missing words? > Fixed > ====== > .../t/036_rep_changes_except_table.pl > > 15. > (I haven't reviewed this file in detail yet, but here is a general comment) > > I know this patch currently lives in the same thread as all the EXCEPT > TABLE stuff, but that seems just happenstance to me. IMO, this is a > separate enhancement that just shares the keyword EXCEPT. So, I felt > it should have quite separate tests too. > > e.g. How about: 037_rep_changes_except_collist.pl > Modified > ====== > [1] https://www.postgresql.org/message-id/CANhcyEW2LK4diNeCG862DE40yQoV3VAgf59kXUq2TuR8fnw5vQ%40mail.gmail.com Thanks, Shlok Kyal --00000000000031e205063a758ebb Content-Type: application/octet-stream; name="v17-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v17-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mddi5wlq0 RnJvbSA4MWM0ZjI4MGM5MGJiZjY5ZTdmZTBkMzk2ZDIyZTU0MGRhZmY2MTAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTE6NDE6MTggKzA1MzAKU3ViamVjdDogW1BBVENIIHYx NyAxLzNdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAog cmVzZXQgdGhlIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFk ZHMgYSBuZXcgUkVTRVQgY2xhdXNlIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVz ZXQKdGhlIHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0IHN0YXRlIHdoaWNoIGluY2x1ZGVzIHJl c2V0dGluZyB0aGUgcHVibGljYXRpb24KcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVTIGZs YWcgdG8gZmFsc2UgYW5kIGRyb3BwaW5nIHRoZSByZWxhdGlvbnMgYW5kCnNjaGVtYXMgdGhhdCBh cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KVXNhZ2U6CkFMVEVSIFBVQkxJQ0FU SU9OIHB1YjEgUkVTRVQ7Ci0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sICAgfCAgMzQgKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55ICAgICAgICAgICAgICAgICB8ICAgOSArKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5p bi5jICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24u b3V0IHwgMTE4ICsrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1 YmxpY2F0aW9uLnNxbCAgICAgIHwgIDU3ICsrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDMy MyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwKaW5kZXggZDVlYTM4M2U4YmMuLjE3OGYzOWQ5NTc1IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yNyw2ICsyNyw3IEBAIEFMVEVSIFBV QkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJs ZT4gRFJPUCA8cmVwbGFjCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKQogQUxU RVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZT5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8 IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9CiBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFJFTkFNRSBUTyA8cmVwbGFjZWFibGU+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBSRVNFVAogCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w dWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKQEAg LTY5LDE4ICs3MCwzMSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICA8L3BhcmE+CiAKICAg PHBhcmE+Ci0gICBUaGUgcmVtYWluaW5nIHZhcmlhbnRzIGNoYW5nZSB0aGUgb3duZXIgYW5kIHRo ZSBuYW1lIG9mIHRoZSBwdWJsaWNhdGlvbi4KKyAgIFRoZSA8bGl0ZXJhbD5PV05FUjwvbGl0ZXJh bD4gY2xhdXNlIHdpbGwgY2hhbmdlIHRoZSBvd25lciBvZiB0aGUKKyAgIHB1YmxpY2F0aW9uLgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgPGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPiBj bGF1c2Ugd2lsbCBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlCisgICBwdWJsaWNhdGlvbi4KKyAgPC9w YXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxsaXRlcmFsPlJFU0VUPC9saXRlcmFsPiBjbGF1c2Ug d2lsbCByZXNldCB0aGUgcHVibGljYXRpb24gdG8gdGhlIGRlZmF1bHQKKyAgIHN0YXRlLiBUaGlz IGluY2x1ZGVzIHJlc2V0dGluZyBhbGwgcHVibGljYXRpb24gcGFyYW1ldGVycywgc2V0dGluZyB0 aGUKKyAgIDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGZsYWcgdG8gPGxpdGVyYWw+ZmFs c2U8L2xpdGVyYWw+LCBhbmQKKyAgIHJlbW92aW5nIGFsbCBhc3NvY2lhdGVkIHRhYmxlcyBhbmQg c2NoZW1hcyBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgogICAg WW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIgUFVCTElD QVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRp dGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVyYWw+QURE IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAotICAgPGxpdGVyYWw+U0VUIFRBQkxFUyBJ TiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gcmVxdWlyZXMgdGhlCi0gICBpbnZv a2luZyB1c2VyIHRvIGJlIGEgc3VwZXJ1c2VyLgotICAgVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3Ug bXVzdCBiZSBhYmxlIHRvIDxsaXRlcmFsPlNFVCBST0xFPC9saXRlcmFsPiB0byB0aGUKLSAgIG5l dyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgPGxpdGVyYWw+Q1JFQVRFPC9s aXRlcmFsPgotICAgcHJpdmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4KKyAgIFRoZSA8bGl0ZXJhbD5B REQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5TRVQgVEFCTEVTIElO IFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKKyAgIDxsaXRlcmFsPlJFU0VU PC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52b2tpbmcgdXNlciB0byBi ZSBhCisgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3QgYmUgYWJsZSB0 bworICAgPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+IHRvIHRoZSBuZXcgb3duaW5nIHJvbGUs IGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHBy aXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuCiAgICBBbHNvLCB0aGUgbmV3IG93bmVyIG9mIGEKICAg IDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWFsbC10YWJs ZXMiPjxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPjwvbGluaz4KICAgIG9yIDxsaW5r IGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLXRhYmxlcy1pbi1zY2hl bWEiPjxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPjwvbGluaz4KQEAgLTIz MCw2ICsyNDQsMTIgQEAgQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gQUREIFRB QkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKICAgIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rp b25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgogQUxURVIgUFVC TElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMsIGRlcGFydG1l bnRzLCBUQUJMRVMgSU4gU0NIRU1BIHByb2R1Y3Rpb247Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KKworICA8cGFyYT4KKyAgIFJlc2V0IHRoZSBwdWJsaWNhdGlvbiA8c3RydWN0bmFtZT5wcm9k dWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVS IFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gUkVTRVQ7CiA8L3Byb2dyYW1saXN0 aW5nPjwvcGFyYT4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9u Y21kcy5jCmluZGV4IDFiZjdlYWFlNWIzLi5jM2FmMTBjNGRjNiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTQ5LDYgKzQ5LDE1IEBACiAjaW5jbHVkZSAidXRpbHMv dmFybGVuYS5oIgogCiAKKy8qIENSRUFURSBQVUJMSUNBVElPTiBkZWZhdWx0IHZhbHVlcyBmb3Ig ZmxhZ3MgYW5kIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgUFVCX0RFRkFVTFRf QUNUSU9OX0lOU0VSVCB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUgdHJ1 ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFIHRydWUKKyNkZWZpbmUgUFVCX0RF RkFVTFRfQUNUSU9OX1RSVU5DQVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfVklBX1JPT1Qg ZmFsc2UKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyBmYWxzZQorI2RlZmluZSBQVUJf REVGQVVMVF9HRU5DT0xTIFBVQkxJU0hfR0VOQ09MU19OT05FCisKIC8qCiAgKiBJbmZvcm1hdGlv biB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjb2x1bW5zIGluIHRoZSByb3cgZmlsdGVyIGV4cHJlc3Np b24uIFNlZQogICogY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlciBmb3IgZGV0YWlscy4K QEAgLTkxLDEyICsxMDAsMTIgQEAgcGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhQYXJzZVN0YXRl ICpwc3RhdGUsCiAJKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnNfZ2l2ZW4gPSBmYWxzZTsKIAog CS8qIGRlZmF1bHRzICovCi0JcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gdHJ1ZTsKLQlwdWJhY3Rp b25zLT5wdWJ1cGRhdGUgPSB0cnVlOwotCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IHRydWU7Ci0J cHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSB0cnVlOwotCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25f cm9vdCA9IGZhbHNlOwotCSpwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gUFVCTElTSF9HRU5D T0xTX05PTkU7CisJcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gUFVCX0RFRkFVTFRfQUNUSU9OX0lO U0VSVDsKKwlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVVBEQVRF OworCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEU7CisJ cHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEU7CisJ KnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gUFVCX0RFRkFVTFRfVklBX1JPT1Q7CisJKnB1 Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBQVUJfREVGQVVMVF9HRU5DT0xTOwogCiAJLyogUGFy c2Ugb3B0aW9ucyAqLwogCWZvcmVhY2gobGMsIG9wdGlvbnMpCkBAIC0xMTg3LDYgKzExOTYsOTkg QEAgSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiAJCUNhY2hlSW52YWxp ZGF0ZVJlbGNhY2hlQWxsKCk7CiB9CiAKKy8qCisgKiBSZXNldCB0aGUgcHVibGljYXRpb24uCisg KgorICogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcgQUxMIFRBQkxF UyBmbGFnIHRvIGZhbHNlIGFuZCBkcm9wCisgKiBhbGwgcmVsYXRpb25zIGFuZCBzY2hlbWFzIHRo YXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uCisgKi8KK3N0YXRpYyB2b2lk CitBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0 aW9uU3RtdCAqc3RtdCwKKwkJCQkJICBSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0dXApCit7CisJ Rm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNU UlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJICAgKnNjaGVt YWlkcyA9IE5JTDsKKwlMaXN0CSAgICpyZWxzID0gTklMOworCUxpc3QJICAgKnJlbGlkcyA9IE5J TDsKKwlib29sCQludWxsc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVwbGFjZXNb TmF0dHNfcGdfcHVibGljYXRpb25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRp b25dOworCisJLyogUkVTRVQgcHVibGljYXRpb24gcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJaWYg KCFzdXBlcnVzZXIoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5T VUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBS RVNFVCBwdWJsaWNhdGlvbiIpKTsKKworCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMp KTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKKwltZW1zZXQocmVwbGFj ZXMsIGZhbHNlLCBzaXplb2YocmVwbGFjZXMpKTsKKworCS8qIFJlc2V0IHRoZSBwdWJsaWNhdGlv biBwYXJhbWV0ZXJzICovCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViaW5zZXJ0IC0g MV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX0lOU0VSVCk7CisJcmVwbGFjZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJpbnNlcnQgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51 bV9wZ19wdWJsaWNhdGlvbl9wdWJ1cGRhdGUgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVM VF9BQ1RJT05fVVBEQVRFKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVwZGF0 ZSAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmRlbGV0ZSAt IDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEUpOworCXJlcGxhY2Vz W0FudW1fcGdfcHVibGljYXRpb25fcHViZGVsZXRlIC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0Fu dW1fcGdfcHVibGljYXRpb25fcHVidHJ1bmNhdGUgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVG QVVMVF9BQ1RJT05fVFJVTkNBVEUpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVi dHJ1bmNhdGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2 aWFyb290IC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfVklBX1JPT1QpOworCXJlcGxh Y2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVidmlhcm9vdCAtIDFdID0gdHJ1ZTsKKworCXZhbHVl c1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmdlbmNvbHMgLSAxXSA9IENoYXJHZXREYXR1bShQVUJf REVGQVVMVF9HRU5DT0xTKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmdlbmNv bHMgLSAxXSA9IHRydWU7CisKKwkvKiBTZXQgQUxMIFRBQkxFUyBmbGFnIHRvIGZhbHNlICovCisJ aWYgKHB1YmZvcm0tPnB1YmFsbHRhYmxlcykKKwl7CisJCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0 aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FMTF9UQUJM RVMpOworCQlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0g dHJ1ZTsKKwkJQ2FjaGVJbnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKKwl9CisKKwl0dXAgPSBoZWFw X21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscywK KwkJCQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhlIGNhdGFsb2cuICovCisJQ2F0YWxv Z1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOworCisJLyogUmVtb3ZlIHRoZSBh c3NvY2lhdGVkIHNjaGVtYXMgZnJvbSB0aGUgcHVibGljYXRpb24gKi8KKwlzY2hlbWFpZHMgPSBH ZXRQdWJsaWNhdGlvblNjaGVtYXMocHViaWQpOworCisJLyoKKwkgKiBTY2hlbWEgbG9jayBpcyBo ZWxkIHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBhbHRlcmVkIHRvIHByZXZlbnQKKwkgKiBjb25j dXJyZW50IHNjaGVtYSBkZWxldGlvbi4KKwkgKi8KKwlMb2NrU2NoZW1hTGlzdChzY2hlbWFpZHMp OworCisJLyogUmVtb3ZlIFNjaGVtYXMgKi8KKwlQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKHB1Ymlk LCBzY2hlbWFpZHMsIHRydWUpOworCisJLyogR2V0IGFsbCByZWxhdGlvbnMgYXNzb2NpYXRlZCB3 aXRoIHRoZSBwdWJsaWNhdGlvbiAqLworCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25z KHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCisJZm9yZWFjaF9vaWQocmVsaWQsIHJl bGlkcykKKwl7CisJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcmVsOworCisJCXJlbCA9IHBhbGxvYyhz aXplb2YoUHVibGljYXRpb25SZWxJbmZvKSk7CisJCXJlbC0+d2hlcmVDbGF1c2UgPSBOVUxMOwor CQlyZWwtPmNvbHVtbnMgPSBOSUw7CisJCXJlbC0+cmVsYXRpb24gPSB0YWJsZV9vcGVuKHJlbGlk LCBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOworCQlyZWxzID0gbGFwcGVuZChyZWxzLCByZWwp OworCX0KKworCS8qIFJlbW92ZSB0aGUgYXNzb2NpYXRlZCByZWxhdGlvbnMgZnJvbSB0aGUgcHVi bGljYXRpb24gKi8KKwlQdWJsaWNhdGlvbkRyb3BUYWJsZXMocHViaWQsIHJlbHMsIHRydWUpOwor CUNsb3NlVGFibGVMaXN0KHJlbHMpOworfQorCiAvKgogICogQWRkIG9yIHJlbW92ZSB0YWJsZSB0 by9mcm9tIHB1YmxpY2F0aW9uLgogICovCkBAIC0xNTAxLDYgKzE2MDMsOCBAQCBBbHRlclB1Ymxp Y2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAK IAlpZiAoc3RtdC0+b3B0aW9ucykKIAkJQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMocHN0YXRlLCBz dG10LCByZWwsIHR1cCk7CisJZWxzZSBpZiAoc3RtdC0+YWN0aW9uID09IEFQX1Jlc2V0UHVibGlj YXRpb24pCisJCUFsdGVyUHVibGljYXRpb25SZXNldChwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsK IAllbHNlCiAJewogCQlMaXN0CSAgICpyZWxhdGlvbnMgPSBOSUw7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA3 MzM0NWJiM2M3MC4uODUwZDBmZDJmZDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTA4MjUsNiArMTA4MjUs OCBAQCBwdWJfb2JqX2xpc3Q6CVB1YmxpY2F0aW9uT2JqU3BlYwogICoKICAqIEFMVEVSIFBVQkxJ Q0FUSU9OIG5hbWUgU0VUIHB1Yl9vYmogWywgLi4uXQogICoKKyAqIEFMVEVSIFBVQkxJQ0FUSU9O IG5hbWUgUkVTRVQKKyAqCiAgKiBwdWJfb2JqIGlzIG9uZSBvZjoKICAqCiAgKgkJVEFCTEUgdGFi bGVfbmFtZSBbLCAuLi5dCkBAIC0xMDg3MSw2ICsxMDg3MywxMyBAQCBBbHRlclB1YmxpY2F0aW9u U3RtdDoKIAkJCQkJbi0+YWN0aW9uID0gQVBfRHJvcE9iamVjdHM7CiAJCQkJCSQkID0gKE5vZGUg KikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQKKwkJCQl7CisJ CQkJCUFsdGVyUHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0 bXQpOworCQkJCQluLT5wdWJuYW1lID0gJDM7CisJCQkJCW4tPmFjdGlvbiA9IEFQX1Jlc2V0UHVi bGljYXRpb247CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBi L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCAzNzUyNDM2NDI5MC4uNzg0MGZk ZjYyZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIyNjMsNyArMjI2Myw3IEBAIG1hdGNo X3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCiAJLyogQUxURVIgUFVCTElDQVRJT04g PG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRj aEFueSkpCi0JCUNPTVBMRVRFX1dJVEgoIkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJFTkFN RSBUTyIsICJTRVQiKTsKKwkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8i LCAiUkVOQU1FIFRPIiwgIlJFU0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxu YW1lPiBBREQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiQUREIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFC TEUiKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA4NmEyMzZiZDU4Yi4uYWYyMjBiMDI3ODgg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQzMDUsNiArNDMwNSw3IEBAIHR5cGVkZWYgZW51 bSBBbHRlclB1YmxpY2F0aW9uQWN0aW9uCiAJQVBfQWRkT2JqZWN0cywJCQkJLyogYWRkIG9iamVj dHMgdG8gcHVibGljYXRpb24gKi8KIAlBUF9Ecm9wT2JqZWN0cywJCQkJLyogcmVtb3ZlIG9iamVj dHMgZnJvbSBwdWJsaWNhdGlvbiAqLwogCUFQX1NldE9iamVjdHMsCQkJCS8qIHNldCBsaXN0IG9m IG9iamVjdHMgKi8KKwlBUF9SZXNldFB1YmxpY2F0aW9uLAkJLyogcmVzZXQgdGhlIHB1YmxpY2F0 aW9uICovCiB9IEFsdGVyUHVibGljYXRpb25BY3Rpb247CiAKIHR5cGVkZWYgc3RydWN0IEFsdGVy UHVibGljYXRpb25TdG10CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0 CmluZGV4IDNhMmVhY2Q3OTNmLi4zNGNlY2FmYjRmNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTE5MzAsNiArMTkzMCwxMjQgQEAgVGFibGVzOgogRFJP UCBQVUJMSUNBVElPTiBwdWIxOwogRFJPUCBQVUJMSUNBVElPTiBwdWIyOwogRFJPUCBUQUJMRSBn ZW5jb2xzOworLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRF IFNDSEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7Cist LSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9y ZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNv bHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAg ICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVT RVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMTsKKy0tIFZlcmlmeSB0aGF0 IGFzc29jaWF0ZWQgdGFibGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVy IFJFU0VUCitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3NjaDEu dGJsMSIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVy YXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUg ICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKy0tIFZlcmlmeSB0aGF0IGFzc29jaWF0 ZWQgc2NoZW1hcyBhcmUgcmVvbXZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAor XGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVz IHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAg IHwgbm9uZSAgICAgICAgICAgICAgfCBmCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJs aWMiCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0 cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0 ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBTRVQgKFBVQkxJU0ggPSAnJyk7CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVy IGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAg fCBmICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgor KDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9W SUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklB X1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5z IHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAg IHwgdAorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwor XGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVz IHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAg IHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TID0gc3RvcmVkKTsKKy0t IFZlcmlmeSB0aGF0ICdQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIgaXMgcmVz ZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IHN0b3JlZCAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cp CisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9u CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1 c2VyCitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCitTRVQg Uk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQ7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsK IFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047 CiBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IGM5ZTMwOTE5MGRm Li41YTIzMDA3NzllYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRp b24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTIy NSw2ICsxMjI1LDYzIEBAIERST1AgUFVCTElDQVRJT04gcHViMTsKIERST1AgUFVCTElDQVRJT04g cHViMjsKIERST1AgVEFCTEUgZ2VuY29sczsKIAorLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FU SU9OIC4uLiBSRVNFVAorQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJf c2NoMS50YmwxIChhIGludCk7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNs aWVudF9taW5fbWVzc2FnZXM7CisKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOworCistLSBWZXJpZnkgdGhhdCBhc3Nv Y2lhdGVkIHRhYmxlcyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNF VAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CisKKy0tIFZlcmlmeSB0aGF0IGFzc29j aWF0ZWQgc2NoZW1hcyBhcmUgcmVvbXZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNF VAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBTRVQgKFBVQkxJU0ggPSAnJyk7CisKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJh bWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVl Jyk7CisKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1l dGVyIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUyA9IHN0b3JlZCk7 CisKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIg aXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKKy0tIFZlcmlmeSB0aGF0IG9ubHkg c3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CitTRVQgUk9MRSBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCitTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXI7CisKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKK0RST1Ag VEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgU0NIRU1BIHB1Yl9zY2gxOworCiBSRVNFVCBjbGll bnRfbWluX21lc3NhZ2VzOwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBST0xF IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKLS0g CjIuMzQuMQoK --00000000000031e205063a758ebb Content-Type: application/octet-stream; name="v17-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v17-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mddi5wmb2 RnJvbSBlNzQ3YjUzNTdjMTM4ODNiOTJmOTViZjUxMzZkNjIzZmM1ZjBiN2RjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTggSnVsIDIwMjUgMTU6MzE6NDQgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx NyAzLzNdIFNraXAgcHVibGlzaGluZyB0aGUgY29sdW1ucyBzcGVjaWZpZWQgaW4gRk9SIFRBQkxF CiBFWENFUFQKCkEgbmV3ICJUQUJMRSB0YWJsZV9uYW1lIEVYQ0VQVCAoY29sdW1uX2xpc3QpIiBj bGF1c2UgZm9yIENSRUFURS9BTFRFUgpQVUJMSUNBVElPTiBhbGxvd3Mgb25lIG9yIG1vcmUgY29s dW1ucyB0byBiZSBleGNsdWRlZC4gVGhlIHB1Ymxpc2hlcgp3aWxsIG5vdCBzZW5kIHRoZSBkYXRh IG9mIGV4Y2x1ZGVkIGNvbHVtbnMgdG8gdGhlIHN1YnNjcmliZXIuCgpUaGUgbmV3IHN5bnRheCBh bGxvd3Mgc3BlY2lmeWluZyBleGNsdWRlZCBjb2x1bW4gbGlzdCB3aGVuIGNyZWF0aW5nIG9yCmFs dGVyaW5nIGEgcHVibGljYXRpb24uIEZvciBleGFtcGxlOgpDUkVBVEUgUFVCTElDQVRJT04gcHVi bmFtZSBGT1IgVEFCTEUgdGFibmFtZSBFWENFUFQgKGNvbDEsIGNvbDIsIGNvbDMpCm9yCkFMVEVS IFBVQkxJQ0FUSU9OIHB1Ym5hbWUgQUREIFRBQkxFIHRhYm5hbWUgRVhDRVBUIChjb2wxLCBjb2wy LCBjb2wzKQoKV2hlbiBjb2x1bW4gInByZXhjZXB0IiBvZiBzeXN0ZW0gY2F0YWxvZyAicGdfcHVi bGljYXRpb25fcmVsIiBpcyBzZXQKdG8gInRydWUiLCBhbmQgY29sdW1uICJwcmF0dHJzIiBvZiBz eXN0ZW0gY2F0YWxvZyAicGdfcHVibGljYXRpb25fcmVsIgppcyBub3QgTlVMTCwgdGhhdCBtZWFu cyB0aGUgcHVibGljYXRpb24gd2FzIGNyZWF0ZWQgd2l0aCAiRVhDRVBUCihjb2x1bW4tbGlzdCki LCBhbmQgdGhlIGNvbHVtbnMgaW4gInByYXR0cnMiIHdpbGwgYmUgZXhjbHVkZWQgZnJvbQpiZWlu ZyBwdWJsaXNoZWQuCgpwZ19kdW1wIGlzIHVwZGF0ZWQgdG8gaWRlbnRpZnkgYW5kIGR1bXAgdGhl IGV4Y2x1ZGVkIGNvbHVtbiBsaXN0IG9mIHRoZQpwdWJsaWNhdGlvbi4KClRoZSBwc3FsIFxkIGZh bWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhjbHVkZWQgY29sdW1uIGxpc3QuIGUu Zy4KcHNxbCBcZFJwKyB2YXJpYW50IHdpbGwgbm93IGRpc3BsYXkgYXNzb2NpYXRlZCAiRVhDRVBU IChjb2x1bW5fbGlzdCkiIGlmCmFueS4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAg ICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwgICAgICAgICB8IDExNCArKysrKysrKysrLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2Fs dGVyX3B1YmxpY2F0aW9uLnNnbWwgICAgICAgfCAgMTAgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3B1YmxpY2F0aW9uLnNnbWwgICAgICB8ICA1MiArKysrLS0KIHNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfcHVibGljYXRpb24uYyAgICAgICAgICB8ICA2NiArKysrKysrLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICAgIHwgIDMwICsrKy0KIHNyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICA1OCArKysrKy0tCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jICAgfCAgNjEgKysrKysrLQogc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsrKy0tLQog c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8IDEwOSArKysrKysr KystLS0tCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAg IDQgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAgICB8ICAg NiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCAgICAgIHwgICA1 ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAgfCAgNzEg KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgICAg fCAgNTIgKysrKysrCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAgICAg ICAgfCAgIDEgKwogLi4uL3QvMDM3X3JlcF9jaGFuZ2VzX2V4Y2VwdF9jb2xsaXN0LnBsICAgICAg IHwgMTUwICsrKysrKysrKysrKysrKysrKwogMTggZmlsZXMgY2hhbmdlZCwgNzE0IGluc2VydGlv bnMoKyksIDEyNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzdfcmVwX2NoYW5nZXNfZXhjZXB0X2NvbGxpc3QucGwKCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CmluZGV4IDFiYjFkYjI2MDQ1Li5iMDQ1ZDgxNGYwNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY1NzMs NyArNjU3MywxMCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNv dW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPHN0cnVjdGZpZWxk PnByZXhjZXB0PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KICAgICAgIDwvcGFyYT4K ICAgICAgIDxwYXJhPgotICAgICAgIFRydWUgaWYgdGhlIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVk ZWQKKyAgICAgICBUcnVlIGlmIHRoZSBjb2x1bW4gbGlzdCBvciByZWxhdGlvbiBtdXN0IGJlIGV4 Y2x1ZGVkIGZyb20gcHVibGljYXRpb24uCisgICAgICAgSWYgYSBjb2x1bW4gbGlzdCBpcyBzcGVj aWZpZWQgaW4gPGxpdGVyYWw+cHJhdHRyczwvbGl0ZXJhbD4sIHRoZW4KKyAgICAgICBleGNsdWRl IG9ubHkgdGhvc2UgY29sdW1ucy4gSWYgPGxpdGVyYWw+cHJhdHRyczwvbGl0ZXJhbD4gaXMgbnVs bCwKKyAgICAgICB0aGVuIGV4Y2x1ZGUgdGhlIGVudGlyZSByZWxhdGlvbi4KICAgICAgIDwvcGFy YT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2lj YWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNn bWwKaW5kZXggMmU5ZjYwMTk0NzQuLjViM2VkMTNhNDIzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwKQEAgLTEzNzIsMTAgKzEzNzIsMTAgQEAgUHVibGljYXRpb25zOgogICA8 dGl0bGU+Q29sdW1uIExpc3RzPC90aXRsZT4KIAogICA8cGFyYT4KLSAgIEVhY2ggcHVibGljYXRp b24gY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB3aGljaCBjb2x1bW5zIG9mIGVhY2ggdGFibGUgYXJl Ci0gICByZXBsaWNhdGVkIHRvIHN1YnNjcmliZXJzLiBUaGUgdGFibGUgb24gdGhlIHN1YnNjcmli ZXIgc2lkZSBtdXN0IGhhdmUgYXQKLSAgIGxlYXN0IGFsbCB0aGUgY29sdW1ucyB0aGF0IGFyZSBw dWJsaXNoZWQuIElmIG5vIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwKLSAgIHRoZW4gYWxsIGNv bHVtbnMgb24gdGhlIHB1Ymxpc2hlciBhcmUgcmVwbGljYXRlZC4KKyAgIEVhY2ggcHVibGljYXRp b24gY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB3aGljaCBjb2x1bW5zIG9mIGVhY2ggdGFibGUgc2hv dWxkIGJlCisgICByZXBsaWNhdGVkIG9yIGV4Y2x1ZGVkIGZyb20gcmVwbGljYXRpb24uIFRoZSB0 YWJsZSBvbiB0aGUgc3Vic2NyaWJlciBzaWRlCisgICBtdXN0IGhhdmUgYXQgbGVhc3QgYWxsIHRo ZSBjb2x1bW5zIHRoYXQgYXJlIHB1Ymxpc2hlZC4gSWYgbm8gY29sdW1uIGxpc3QgaXMKKyAgIHNw ZWNpZmllZCwgdGhlbiBhbGwgY29sdW1ucyBvbiB0aGUgcHVibGlzaGVyIGFyZSByZXBsaWNhdGVk LgogICAgU2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbiIvPiBmb3IgZGV0 YWlscyBvbiB0aGUgc3ludGF4LgogICA8L3BhcmE+CiAKQEAgLTEzODksOCArMTM4OSwxMSBAQCBQ dWJsaWNhdGlvbnM6CiAKICAgPHBhcmE+CiAgICBJZiBubyBjb2x1bW4gbGlzdCBpcyBzcGVjaWZp ZWQsIGFueSBjb2x1bW5zIGFkZGVkIHRvIHRoZSB0YWJsZSBsYXRlciBhcmUKLSAgIGF1dG9tYXRp Y2FsbHkgcmVwbGljYXRlZC4gVGhpcyBtZWFucyB0aGF0IGhhdmluZyBhIGNvbHVtbiBsaXN0IHdo aWNoIG5hbWVzCi0gICBhbGwgY29sdW1ucyBpcyBub3QgdGhlIHNhbWUgYXMgaGF2aW5nIG5vIGNv bHVtbiBsaXN0IGF0IGFsbC4KKyAgIGF1dG9tYXRpY2FsbHkgcmVwbGljYXRlZC4gSG93ZXZlciwg YSBub3JtYWwgY29sdW1uIGxpc3QgKHdpdGhvdXQKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJh bD4pIG9ubHkgcmVwbGljYXRlcyB0aGUgc3BlY2lmaWVkIGNvbHVtbnMgYW5kIG5vIG1vcmUuCisg ICBUaGVyZWZvcmUsIGhhdmluZyBhIGNvbHVtbiBsaXN0IHRoYXQgbmFtZXMgYWxsIGNvbHVtbnMg aXMgbm90IHRoZSBzYW1lIGFzCisgICBoYXZpbmcgbm8gY29sdW1uIGxpc3QgYXQgYWxsLCBhcyBt b3JlIGNvbHVtbnMgbWF5IGJlIGFkZGVkIHRvIHRoZSB0YWJsZQorICAgbGF0ZXIuCiAgIDwvcGFy YT4KIAogICA8cGFyYT4KQEAgLTE0MDIsNiArMTQwNSwxNCBAQCBQdWJsaWNhdGlvbnM6CiAgICBH ZW5lcmF0ZWQgY29sdW1ucyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgaW4gYSBjb2x1bW4gbGlzdC4g VGhpcyBhbGxvd3MKICAgIGdlbmVyYXRlZCBjb2x1bW5zIHRvIGJlIHB1Ymxpc2hlZCwgcmVnYXJk bGVzcyBvZiB0aGUgcHVibGljYXRpb24gcGFyYW1ldGVyCiAgICA8bGluayBsaW5rZW5kPSJzcWwt Y3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+ CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4u IFNwZWNpZnlpbmcgZ2VuZXJhdGVkCisgICBjb2x1bW5zIGluIGEgY29sdW1uIGxpc3QgdXNpbmcg dGhlIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGV4Y2x1ZGVzCisgICB0aGUgc3Bl Y2lmaWVkIGdlbmVyYXRlZCBjb2x1bW5zIGZyb20gYmVpbmcgcHVibGlzaGVkLCByZWdhcmRsZXNz IG9mIHRoZQorICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy13 aXRoLXB1Ymxpc2gtZ2VuZXJhdGVkLWNvbHVtbnMiPgorICAgPGxpdGVyYWw+cHVibGlzaF9nZW5l cmF0ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xpbms+IHNldHRpbmcuIEhvd2V2ZXIsIGZvcgorICAg Z2VuZXJhdGVkIGNvbHVtbnMgdGhhdCBhcmUgbm90IGxpc3RlZCBpbiB0aGUgPGxpdGVyYWw+RVhD RVBUPC9saXRlcmFsPgorICAgY2xhdXNlLCB3aGV0aGVyIHRoZXkgYXJlIHB1Ymxpc2hlZCBvciBu b3Qgc3RpbGwgZGVwZW5kcyBvbiB0aGUgdmFsdWUgb2YKKyAgIDxsaW5rIGxpbmtlbmQ9InNxbC1j cmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtd2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4K ICAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPi4g U2VlCiAgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWdlbmNvbHMiLz4gZm9y IGRldGFpbHMuCiAgIDwvcGFyYT4KQEAgLTE0MjMsMTEgKzE0MzQsMTQgQEAgUHVibGljYXRpb25z OgogCiAgIDxwYXJhPgogICAgSWYgYSBwdWJsaWNhdGlvbiBwdWJsaXNoZXMgPGNvbW1hbmQ+VVBE QVRFPC9jb21tYW5kPiBvcgotICAgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcGVyYXRpb25z LCBhbnkgY29sdW1uIGxpc3QgbXVzdCBpbmNsdWRlIHRoZQotICAgdGFibGUncyByZXBsaWNhIGlk ZW50aXR5IGNvbHVtbnMgKHNlZQotICAgPHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydGFibGUtcmVw bGljYS1pZGVudGl0eSIvPikuCisgICA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+IG9wZXJhdGlv bnMsIGFueSBjb2x1bW4gbGlzdCBtdXN0IGluY2x1ZGUgdGFibGUncworICAgcmVwbGljYSBpZGVu dGl0eSBjb2x1bW5zIGFuZCBhbnkgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGgKKyAgIDxsaXRl cmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIG11c3Qgbm90IGluY2x1ZGUgdGhlIHRhYmxlJ3Mg cmVwbGljYQorICAgaWRlbnRpdHkgY29sdW1ucyAoc2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1hbHRl cnRhYmxlLXJlcGxpY2EtaWRlbnRpdHkiLz4pLgogICAgSWYgYSBwdWJsaWNhdGlvbiBwdWJsaXNo ZXMgb25seSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+IG9wZXJhdGlvbnMsIHRoZW4KLSAgIHRo ZSBjb2x1bW4gbGlzdCBtYXkgb21pdCByZXBsaWNhIGlkZW50aXR5IGNvbHVtbnMuCisgICB0aGUg Y29sdW1uIGxpc3QgbWF5IG9taXQgcmVwbGljYSBpZGVudGl0eSBjb2x1bW5zIGFuZCB0aGUgY29s dW1uIGxpc3QKKyAgIHNwZWNpZmllZCB3aXRoIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xh dXNlIG1heSBpbmNsdWRlIHJlcGxpY2EgaWRlbnRpdHkKKyAgIGNvbHVtbnMuCiAgIDwvcGFyYT4K IAogICA8cGFyYT4KQEAgLTE0NzIsMTggKzE0ODYsMjEgQEAgUHVibGljYXRpb25zOgogICAgPHRp dGxlPkV4YW1wbGVzPC90aXRsZT4KIAogICAgPHBhcmE+Ci0gICAgQ3JlYXRlIGEgdGFibGUgPGxp dGVyYWw+dDE8L2xpdGVyYWw+IHRvIGJlIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLgor ICAgIENyZWF0ZSB0YWJsZXMgPGxpdGVyYWw+dDE8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD50Mjwv bGl0ZXJhbD4gdG8gYmUgdXNlZCBpbgorICAgIHRoZSBmb2xsb3dpbmcgZXhhbXBsZS4KIDxwcm9n cmFtbGlzdGluZz4KIC8qIHB1YiAjICovIENSRUFURSBUQUJMRSB0MShpZCBpbnQsIGEgdGV4dCwg YiB0ZXh0LCBjIHRleHQsIGQgdGV4dCwgZSB0ZXh0LCBQUklNQVJZIEtFWShpZCkpOworLyogcHVi ICMgKi8gQ1JFQVRFIFRBQkxFIHQyKGlkIGludCwgYSB0ZXh0LCBiIHRleHQsIGMgdGV4dCwgZCB0 ZXh0LCBlIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4K IAogICAgPHBhcmE+CiAgICAgQ3JlYXRlIGEgcHVibGljYXRpb24gPGxpdGVyYWw+cDE8L2xpdGVy YWw+LiBBIGNvbHVtbiBsaXN0IGlzIGRlZmluZWQgZm9yCi0gICAgdGFibGUgPGxpdGVyYWw+dDE8 L2xpdGVyYWw+IHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhhdCB3aWxsIGJlCi0g ICAgcmVwbGljYXRlZC4gTm90aWNlIHRoYXQgdGhlIG9yZGVyIG9mIGNvbHVtbiBuYW1lcyBpbiB0 aGUgY29sdW1uIGxpc3QgZG9lcwotICAgIG5vdCBtYXR0ZXIuCisgICAgdGFibGUgPGxpdGVyYWw+ dDE8L2xpdGVyYWw+LCBhbmQgYW5vdGhlciBjb2x1bW4gbGlzdCBpcyBkZWZpbmVkIGZvciB0YWJs ZQorICAgIDxsaXRlcmFsPnQyPC9saXRlcmFsPiB1c2luZyB0aGUgPGxpdGVyYWw+RVhDRVBUPC9s aXRlcmFsPiBjbGF1c2UgdG8gcmVkdWNlCisgICAgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoYXQg d2lsbCBiZSByZXBsaWNhdGVkLiBOb3RlIHRoYXQgdGhlIG9yZGVyIG9mIGNvbHVtbgorICAgIG5h bWVzIGluIHRoZSBjb2x1bW4gbGlzdHMgZG9lcyBub3QgbWF0dGVyLgogPHByb2dyYW1saXN0aW5n PgotLyogcHViICMgKi8gQ1JFQVRFIFBVQkxJQ0FUSU9OIHAxIEZPUiBUQUJMRSB0MSAoaWQsIGIs IGEsIGQpOworLyogcHViICMgKi8gQ1JFQVRFIFBVQkxJQ0FUSU9OIHAxIEZPUiBUQUJMRSB0MSAo aWQsIGIsIGEsIGQpLCB0MiBFWENFUFQgKGQsIGEpOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+ CiAKICAgICA8cGFyYT4KQEAgLTE0OTEsMTIgKzE1MDgsMTMgQEAgUHVibGljYXRpb25zOgogICAg ICBmb3IgZWFjaCBwdWJsaWNhdGlvbi4KIDxwcm9ncmFtbGlzdGluZz4KIC8qIHB1YiAjICovIFxk UnArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gcDEKLSAgT3du ZXIgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBWaWEgcm9vdAotLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHBvc3RncmVzIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiBwMQorICBPd25lciAg IHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHBvc3RncmVzIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgogVGFibGVzOgog ICAgICJwdWJsaWMudDEiIChpZCwgYSwgYiwgZCkKKyAgICAicHVibGljLnQyIiBFWENFUFQgKGEs IGQpCiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICAgIDxwYXJhPgpAQCAtMTUxNywyMyAr MTUzNSw0MSBAQCBJbmRleGVzOgogICAgICJ0MV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlk KQogUHVibGljYXRpb25zOgogICAgICJwMSIgKGlkLCBhLCBiLCBkKQorCisvKiBwdWIgIyAqLyBc ZCB0MgorICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnQyIgorIENvbHVtbiB8ICBUeXBl ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQKKy0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCBub3QgbnVsbCB8CisgYSAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGMgICAg ICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8CisgZCAgICAgIHwgdGV4dCAgICB8 ICAgICAgICAgICB8ICAgICAgICAgIHwKKyBlICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgfAorSW5kZXhlczoKKyAgICAidDJfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChp ZCkKK1B1YmxpY2F0aW9uczoKKyAgICAicDEiIEVYQ0VQVCAoYSwgZCkKIDwvcHJvZ3JhbWxpc3Rp bmc+PC9wYXJhPgogCiAgICAgPHBhcmE+Ci0gICAgIE9uIHRoZSBzdWJzY3JpYmVyIG5vZGUsIGNy ZWF0ZSBhIHRhYmxlIDxsaXRlcmFsPnQxPC9saXRlcmFsPiB3aGljaCBub3cKLSAgICAgb25seSBu ZWVkcyBhIHN1YnNldCBvZiB0aGUgY29sdW1ucyB0aGF0IHdlcmUgb24gdGhlIHB1Ymxpc2hlciB0 YWJsZQotICAgICA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4sIGFuZCBhbHNvIGNyZWF0ZSB0aGUgc3Vi c2NyaXB0aW9uCisgICAgIE9uIHRoZSBzdWJzY3JpYmVyIG5vZGUsIGNyZWF0ZSB0YWJsZXMgPGxp dGVyYWw+dDE8L2xpdGVyYWw+IGFuZAorICAgICA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4gd2hpY2gg bm93IG9ubHkgbmVlZHMgYSBzdWJzZXQgb2YgdGhlIGNvbHVtbnMgdGhhdAorICAgICB3ZXJlIG9u IHRoZSBwdWJsaXNoZXIgdGFibGVzIDxsaXRlcmFsPnQxPC9saXRlcmFsPiBhbmQKKyAgICAgPGxp dGVyYWw+dDI8L2xpdGVyYWw+LCBhbmQgYWxzbyBjcmVhdGUgdGhlIHN1YnNjcmlwdGlvbgogICAg ICA8bGl0ZXJhbD5zMTwvbGl0ZXJhbD4gdGhhdCBzdWJzY3JpYmVzIHRvIHRoZSBwdWJsaWNhdGlv bgogICAgICA8bGl0ZXJhbD5wMTwvbGl0ZXJhbD4uCiA8cHJvZ3JhbWxpc3Rpbmc+CiAvKiBzdWIg IyAqLyBDUkVBVEUgVEFCTEUgdDEoaWQgaW50LCBiIHRleHQsIGEgdGV4dCwgZCB0ZXh0LCBQUklN QVJZIEtFWShpZCkpOworLyogc3ViICMgKi8gQ1JFQVRFIFRBQkxFIHQyKGlkIGludCwgYiB0ZXh0 LCBjIHRleHQsIGUgdGV4dCwgUFJJTUFSWSBLRVkoaWQpKTsKIC8qIHN1YiAjICovIENSRUFURSBT VUJTQ1JJUFRJT04gczEKIC8qIHN1YiAtICovIENPTk5FQ1RJT04gJ2hvc3Q9bG9jYWxob3N0IGRi bmFtZT10ZXN0X3B1YiBhcHBsaWNhdGlvbl9uYW1lPXMxJwogLyogc3ViIC0gKi8gUFVCTElDQVRJ T04gcDE7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICAgIDxwYXJhPgotICAgICBPbiB0 aGUgcHVibGlzaGVyIG5vZGUsIGluc2VydCBzb21lIHJvd3MgdG8gdGFibGUgPGxpdGVyYWw+dDE8 L2xpdGVyYWw+LgorICAgICBPbiB0aGUgcHVibGlzaGVyIG5vZGUsIGluc2VydCBzb21lIHJvd3Mg dG8gdGFibGVzIDxsaXRlcmFsPnQxPC9saXRlcmFsPgorICAgICBhbmQgPGxpdGVyYWw+dDI8L2xp dGVyYWw+CiA8cHJvZ3JhbWxpc3Rpbmc+CiAvKiBwdWIgIyAqLyBJTlNFUlQgSU5UTyB0MSBWQUxV RVMoMSwgJ2EtMScsICdiLTEnLCAnYy0xJywgJ2QtMScsICdlLTEnKTsKIC8qIHB1YiAjICovIElO U0VSVCBJTlRPIHQxIFZBTFVFUygyLCAnYS0yJywgJ2ItMicsICdjLTInLCAnZC0yJywgJ2UtMicp OwpAQCAtMTU0NSwxMSArMTU4MSwyMSBAQCBQdWJsaWNhdGlvbnM6CiAgIDIgfCBhLTIgfCBiLTIg fCBjLTIgfCBkLTIgfCBlLTIKICAgMyB8IGEtMyB8IGItMyB8IGMtMyB8IGQtMyB8IGUtMwogKDMg cm93cykKKy8qIHB1YiAjICovIElOU0VSVCBJTlRPIHQyIFZBTFVFUygxLCAnYS0xJywgJ2ItMScs ICdjLTEnLCAnZC0xJywgJ2UtMScpOworLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDIgVkFMVUVT KDIsICdhLTInLCAnYi0yJywgJ2MtMicsICdkLTInLCAnZS0yJyk7CisvKiBwdWIgIyAqLyBJTlNF UlQgSU5UTyB0MiBWQUxVRVMoMywgJ2EtMycsICdiLTMnLCAnYy0zJywgJ2QtMycsICdlLTMnKTsK Ky8qIHB1YiAjICovIFNFTEVDVCAqIEZST00gdDIgT1JERVIgQlkgaWQ7CisgaWQgfCAgYSAgfCAg YiAgfCAgYyAgfCAgZCAgfCAgZQorLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLQor ICAxIHwgYS0xIHwgYi0xIHwgYy0xIHwgZC0xIHwgZS0xCisgIDIgfCBhLTIgfCBiLTIgfCBjLTIg fCBkLTIgfCBlLTIKKyAgMyB8IGEtMyB8IGItMyB8IGMtMyB8IGQtMyB8IGUtMworKDMgcm93cykK IDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgICAgPHBhcmE+Ci0gICAgIE9ubHkgZGF0YSBm cm9tIHRoZSBjb2x1bW4gbGlzdCBvZiBwdWJsaWNhdGlvbiA8bGl0ZXJhbD5wMTwvbGl0ZXJhbD4g aXMKLSAgICAgcmVwbGljYXRlZC4KKyAgICAgT25seSBkYXRhIHNwZWNpZmllZCBieSB0aGUgY29s dW1uIGxpc3RzIG9mIHB1YmxpY2F0aW9uCisgICAgIDxsaXRlcmFsPnAxPC9saXRlcmFsPiBpcyBy ZXBsaWNhdGVkLgogPHByb2dyYW1saXN0aW5nPgogLyogc3ViICMgKi8gU0VMRUNUICogRlJPTSB0 MSBPUkRFUiBCWSBpZDsKICBpZCB8ICBiICB8ICBhICB8ICBkCkBAIC0xNTU4LDYgKzE2MDQsMTMg QEAgUHVibGljYXRpb25zOgogICAyIHwgYi0yIHwgYS0yIHwgZC0yCiAgIDMgfCBiLTMgfCBhLTMg fCBkLTMKICgzIHJvd3MpCisvKiBzdWIgIyAqLyBTRUxFQ1QgKiBGUk9NIHQyIE9SREVSIEJZIGlk OworIGlkIHwgIGIgIHwgIGMgIHwgIGUKKy0tLS0rLS0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8IGIt MSB8IGMtMSB8IGUtMQorICAyIHwgYi0yIHwgYy0yIHwgZS0yCisgIDMgfCBiLTMgfCBjLTMgfCBl LTMKKygzIHJvd3MpCiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICA8L3NlY3QyPgpAQCAt MTY1NCw2ICsxNzA3LDE3IEBAIFB1YmxpY2F0aW9uczoKICAgIDwvaXRlbWl6ZWRsaXN0PgogICA8 L3BhcmE+CiAKKyAgPHBhcmE+CisgICBHZW5lcmF0ZWQgY29sdW1ucyBzcGVjaWZpZWQgaW4gdGhl IGNvbHVtbiBsaXN0IHdpdGggdGhlCisgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVz ZSBhcmUgbm90IHB1Ymxpc2hlZCwgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUKKyAgIG9mIHRoZSA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgtcHVibGlzaC1n ZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5z PC9saXRlcmFsPjwvbGluaz4gcGFyYW1ldGVyLiBIb3dldmVyLAorICAgZ2VuZXJhdGVkIGNvbHVt bnMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIGNvbHVtbiBsaXN0IHdpdGggdGhlCisgICA8bGl0 ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgcHVibGlzaGVkIGFjY29yZGluZyB0byB0 aGUgdmFsdWUgb2YgdGhlCisgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24t cGFyYW1zLXdpdGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJs aXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4gcGFyYW1ldGVyLgorICA8L3Bh cmE+CisKICAgPHBhcmE+CiAgICBUaGUgZm9sbG93aW5nIHRhYmxlIHN1bW1hcml6ZXMgYmVoYXZp b3Igd2hlbiB0aGVyZSBhcmUgZ2VuZXJhdGVkIGNvbHVtbnMKICAgIGludm9sdmVkIGluIHRoZSBs b2dpY2FsIHJlcGxpY2F0aW9uLiBSZXN1bHRzIGFyZSBzaG93biBmb3Igd2hlbgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IGJkMjVhMWE3MjNjLi5jOGU5YzRiMjE2 YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMzIsNyArMzIs NyBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8 L3BocmFzZT4KIAotICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdI RVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2Vh YmxlPiApIF0gWywgLi4uIF0KKyAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBFWENFUFQgXSAo IGNvbHVtbl9uYW1lIFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBUQUJM RVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1l PC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9IFssIC4uLiBdCiAKIDxwaHJhc2U+d2hl cmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxh Y2VhYmxlPiBpczo8L3BocmFzZT4KQEAgLTI1OSw2ICsyNTksMTQgQEAgQUxURVIgUFVCTElDQVRJ T04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgQUxMIFRBQkxFUyBFWENFUFQgdXNlcnMsIGRl cGFydG1lbnQKICAgIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5h bWU+OgogPHByb2dyYW1saXN0aW5nPgogQUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJs aWNhdGlvbiBBREQgVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzLCBUQUJMRVMgSU4gU0NIRU1BIHBy b2R1Y3Rpb247Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAgIEFsdGVy IHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1lPm15cHVibGljYXRpb248L3N0cnVjdG5hbWU+IHRvIGFk ZCB0YWJsZQorICAgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGV4Y2VwdCBjb2x1bW4K KyAgIDxzdHJ1Y3RuYW1lPnNlY3VyaXR5X3Bpbjwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rp bmc+CitBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1 c2VycyBFWENFUFQgKHNlY3VyaXR5X3Bpbik7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAog ICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9u LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IGEy ZjljMGQ0ODI1Li44NjljOWYyZWQ3NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNh dGlvbi5zZ21sCkBAIC0yOCw3ICsyOCw3IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAKIDxwaHJhc2U+d2hlcmUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFj ZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAotICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAo IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4 cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KKyAgICBUQUJMRSBbIE9OTFkgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsg KiBdIFsgWyBFWENFUFQgXSAoIGNvbHVtbl9uYW1lIFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0g WywgLi4uIF0KICAgICBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9IFssIC4u LiBdCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2Vw dGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KQEAgLTkyLDE3ICs5MiwyNCBA QCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPgogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+Ci0gICAgICBXaGVuIGEg Y29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkLCBvbmx5IHRoZSBuYW1lZCBjb2x1bW5zIGFyZSByZXBs aWNhdGVkLgotICAgICAgVGhlIGNvbHVtbiBsaXN0IGNhbiBjb250YWluIHN0b3JlZCBnZW5lcmF0 ZWQgY29sdW1ucyBhcyB3ZWxsLiBJZiB0aGUKLSAgICAgIGNvbHVtbiBsaXN0IGlzIG9taXR0ZWQs IHRoZSBwdWJsaWNhdGlvbiB3aWxsIHJlcGxpY2F0ZSBhbGwgbm9uLWdlbmVyYXRlZAotICAgICAg Y29sdW1ucyAoaW5jbHVkaW5nIGFueSBhZGRlZCBpbiB0aGUgZnV0dXJlKSBieSBkZWZhdWx0LiBT dG9yZWQgZ2VuZXJhdGVkCi0gICAgICBjb2x1bW5zIGNhbiBhbHNvIGJlIHJlcGxpY2F0ZWQgaWYg PGxpdGVyYWw+cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD4KLSAgICAgIGlzIHNl dCB0byA8bGl0ZXJhbD5zdG9yZWQ8L2xpdGVyYWw+LiBTcGVjaWZ5aW5nIGEgY29sdW1uIGxpc3Qg aGFzIG5vCi0gICAgICBlZmZlY3Qgb24gPGxpdGVyYWw+VFJVTkNBVEU8L2xpdGVyYWw+IGNvbW1h bmRzLiBTZWUKKyAgICAgIFdoZW4gYSBjb2x1bW4gbGlzdCB3aXRob3V0IDxsaXRlcmFsPkVYQ0VQ VDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCBvbmx5CisgICAgICB0aGUgbmFtZWQgY29sdW1ucyBh cmUgcmVwbGljYXRlZC4gVGhlIGNvbHVtbiBsaXN0IGNhbiBjb250YWluIHN0b3JlZAorICAgICAg Z2VuZXJhdGVkIGNvbHVtbnMgYXMgd2VsbC4gSWYgdGhlIGNvbHVtbiBsaXN0IGlzIG9taXR0ZWQs IHRoZSBwdWJsaWNhdGlvbgorICAgICAgd2lsbCByZXBsaWNhdGUgYWxsIG5vbi1nZW5lcmF0ZWQg Y29sdW1ucyAoaW5jbHVkaW5nIGFueSBhZGRlZCBpbiB0aGUKKyAgICAgIGZ1dHVyZSkgYnkgZGVm YXVsdC4gU3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGNhbiBhbHNvIGJlIHJlcGxpY2F0ZWQgaWYK KyAgICAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+IGlzIHNl dCB0bworICAgICAgPGxpdGVyYWw+c3RvcmVkPC9saXRlcmFsPi4gU3BlY2lmeWluZyBhIGNvbHVt biBsaXN0IGhhcyBubyBlZmZlY3Qgb24KKyAgICAgIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFs PiBjb21tYW5kcy4gU2VlCiAgICAgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9u LWNvbC1saXN0cyIvPiBmb3IgZGV0YWlscyBhYm91dCBjb2x1bW4KICAgICAgIGxpc3RzLgogICAg ICA8L3BhcmE+CiAKKyAgICAgPHBhcmE+CisgICAgICBXaGVuIGEgY29sdW1uIGxpc3QgaXMgc3Bl Y2lmaWVkIHdpdGggPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiwgdGhlIG5hbWVkCisgICAgICBj b2x1bW5zIGFyZSBub3QgcmVwbGljYXRlZC4gU3BlY2lmeWluZyBhIGNvbHVtbiBsaXN0IGhhcyBu byBlZmZlY3Qgb24KKyAgICAgIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFsPiBjb21tYW5kcy4K KyAgICAgPC9wYXJhPgorCiAgICAgIDxwYXJhPgogICAgICAgT25seSBwZXJzaXN0ZW50IGJhc2Ug dGFibGVzIGFuZCBwYXJ0aXRpb25lZCB0YWJsZXMgY2FuIGJlIHBhcnQgb2YgYQogICAgICAgcHVi bGljYXRpb24uICBUZW1wb3JhcnkgdGFibGVzLCB1bmxvZ2dlZCB0YWJsZXMsIGZvcmVpZ24gdGFi bGVzLApAQCAtMzM1LDEwICszNDIsMTIgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgPC9wYXJhPgogCiAgIDxw YXJhPgotICAgQW55IGNvbHVtbiBsaXN0IG11c3QgaW5jbHVkZSB0aGUgPGxpdGVyYWw+UkVQTElD QSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucwotICAgaW4gb3JkZXIgZm9yIDxjb21tYW5kPlVQ REFURTwvY29tbWFuZD4gb3IgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPgotICAgb3BlcmF0aW9u cyB0byBiZSBwdWJsaXNoZWQuIFRoZXJlIGFyZSBubyBjb2x1bW4gbGlzdCByZXN0cmljdGlvbnMg aWYgdGhlCi0gICBwdWJsaWNhdGlvbiBwdWJsaXNoZXMgb25seSA8Y29tbWFuZD5JTlNFUlQ8L2Nv bW1hbmQ+IG9wZXJhdGlvbnMuCisgICBJbiBvcmRlciBmb3IgPGNvbW1hbmQ+VVBEQVRFPC9jb21t YW5kPiBvciA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+CisgICBvcGVyYXRpb25zIHRvIHdvcmss IGFsbCB0aGUgPGxpdGVyYWw+UkVQTElDQSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucyBtdXN0 CisgICBiZSBwdWJsaXNoZWQuIFNvLCBhbnkgY29sdW1uIGxpc3QgbXVzdCBuYW1lIGFsbAorICAg PGxpdGVyYWw+UkVQTElDQSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucywgYW5kIGFueQorICAg PGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjb2x1bW4gbGlzdCBtdXN0IG5vdCBuYW1lIGFueQor ICAgPGxpdGVyYWw+UkVQTElDQSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucy4KICAgPC9wYXJh PgogCiAgIDxwYXJhPgpAQCAtMzYxLDYgKzM3MCwxNiBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgdG8gYmUg cHVibGlzaGVkLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUaGUgZ2VuZXJhdGVkIGNvbHVt bnMgdGhhdCBhcmUgcGFydCBvZiB0aGUgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggdGhlCisg ICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgbm90IHB1Ymxpc2hlZCwgcmVn YXJkbGVzcyBvZiB0aGUKKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xp dGVyYWw+IG9wdGlvbi4gSG93ZXZlciwgZ2VuZXJhdGVkCisgICBjb2x1bW5zIHRoYXQgYXJlIG5v dCBwYXJ0IG9mIHRoZSBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aCB0aGUKKyAgIDxsaXRlcmFs PkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGFyZSBwdWJsaXNoZWQgYWNjb3JkaW5nIHRvIHRoZSB2 YWx1ZSBvZiB0aGUKKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVy YWw+IG9wdGlvbi4gU2VlCisgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWdl bmNvbHMiLz4gZm9yIGRldGFpbHMuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSByb3cg ZmlsdGVyIG9uIGEgdGFibGUgYmVjb21lcyByZWR1bmRhbnQgaWYKICAgIDxsaXRlcmFsPkZPUiBU QUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQgYW5kIHRoZSB0YWJsZQpAQCAt NDgyLDYgKzUwMSwxNSBAQCBDUkVBVEUgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1IgQUxM IFRBQkxFUyBFWENFUFQgdXNlcnMsIGRlcGFydG1lbnRzOwogPHByb2dyYW1saXN0aW5nPgogQ1JF QVRFIFBVQkxJQ0FUSU9OIHVzZXJzX2ZpbHRlcmVkIEZPUiBUQUJMRSB1c2VycyAodXNlcl9pZCwg Zmlyc3RuYW1lKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgQ3Jl YXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlCisg ICA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4gZXhjZXB0IGNoYW5nZXMgZm9yIGNvbHVt bgorICAgPHN0cnVjdG5hbWU+c2VjdXJpdHlfcGluPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlz dGluZz4KK0NSRUFURSBQVUJMSUNBVElPTiB1c2Vyc19zYWZlIEZPUiBUQUJMRSB1c2VycyBFWENF UFQgKHNlY3VyaXR5X3Bpbik7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CiAgPC9yZWZz ZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf cHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRl eCAxODc4ZmJhODc0OC4uNDAzNTFjMDU5NGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfcHVibGljYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uLmMKQEAgLTI2MywxNCArMjYzLDE5IEBAIGlzX3NjaGVtYV9wdWJsaWNhdGlvbihPaWQgcHVi aWQpCiAgKiBJZiBhIGNvbHVtbiBsaXN0IGlzIGZvdW5kLCB0aGUgY29ycmVzcG9uZGluZyBiaXRt YXAgaXMgcmV0dXJuZWQgdGhyb3VnaCB0aGUKICAqIGNvbHMgcGFyYW1ldGVyLCBpZiBwcm92aWRl ZC4gVGhlIGJpdG1hcCBpcyBjb25zdHJ1Y3RlZCB3aXRoaW4gdGhlIGdpdmVuCiAgKiBtZW1vcnkg Y29udGV4dCAobWN4dCkuCisgKgorICogSWYgYSBjb2x1bW4gbGlzdCBpcyBmb3VuZCBzcGVjaWZp ZWQgd2l0aCBFWENFUFQgY2xhdXNlLCBleGNlcHRfY29sdW1ucyBpcyBzZXQKKyAqIHRvIHRydWUu CiAgKi8KIGJvb2wKIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHVi LCBPaWQgcmVsaWQsIE1lbW9yeUNvbnRleHQgbWN4dCwKLQkJCQkJCQlCaXRtYXBzZXQgKipjb2xz KQorCQkJCQkJCUJpdG1hcHNldCAqKmNvbHMsIGJvb2wgKmV4Y2VwdF9jb2x1bW5zKQogewogCUhl YXBUdXBsZQljZnR1cGxlOwogCWJvb2wJCWZvdW5kID0gZmFsc2U7CiAKKwkqZXhjZXB0X2NvbHVt bnMgPSBmYWxzZTsKKwogCWlmIChwdWItPmFsbHRhYmxlcykKIAkJcmV0dXJuIGZhbHNlOwogCkBA IC0yOTYsNiArMzAxLDE2IEBAIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlv biAqcHViLCBPaWQgcmVsaWQsIE1lbW9yeUNvbnRleHQgbWN4dCwKIAkJCWZvdW5kID0gdHJ1ZTsK IAkJfQogCisJCS8qIExvb2t1cCB0aGUgZXhjZXB0IGF0dHJpYnV0ZSAqLworCQljZmRhdHVtID0g U3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCBjZnR1cGxlLAorCQkJCQkJCQkgIEFu dW1fcGdfcHVibGljYXRpb25fcmVsX3ByZXhjZXB0LCAmaXNudWxsKTsKKworCQlpZiAoIWlzbnVs bCkKKwkJeworCQkJQXNzZXJ0KCFwdWItPmFsbHRhYmxlcyk7CisJCQkqZXhjZXB0X2NvbHVtbnMg PSBEYXR1bUdldEJvb2woY2ZkYXR1bSk7CisJCX0KKwogCQlSZWxlYXNlU3lzQ2FjaGUoY2Z0dXBs ZSk7CiAJfQogCkBAIC02NDYsMTAgKzY2MSwxMiBAQCBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQo Qml0bWFwc2V0ICpjb2x1bW5zLCBEYXR1bSBwdWJjb2xzLCBNZW1vcnlDb250ZXh0IG1jeHQpCiAg KiBSZXR1cm5zIGEgYml0bWFwIHJlcHJlc2VudGluZyB0aGUgY29sdW1ucyBvZiB0aGUgc3BlY2lm aWVkIHRhYmxlLgogICoKICAqIEdlbmVyYXRlZCBjb2x1bW5zIGFyZSBpbmNsdWRlZCBpZiBpbmNs dWRlX2dlbmNvbHNfdHlwZSBpcwotICogUFVCTElTSF9HRU5DT0xTX1NUT1JFRC4KKyAqIFBVQkxJ U0hfR0VOQ09MU19TVE9SRUQuIENvbHVtbnMgdGhhdCBhcmUgaW4gdGhlIGV4Y2VwdF9jb2xzIGFy ZSBleGNsdWRlZCBmcm9tCisgKiB0aGUgY29sdW1uIGxpc3QuCiAgKi8KIEJpdG1hcHNldCAqCi1w dWJfZm9ybV9jb2xzX21hcChSZWxhdGlvbiByZWxhdGlvbiwgUHVibGlzaEdlbmNvbHNUeXBlIGlu Y2x1ZGVfZ2VuY29sc190eXBlKQorcHViX2Zvcm1fY29sc19tYXAoUmVsYXRpb24gcmVsYXRpb24s IFB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSwKKwkJCQkgIEJpdG1hcHNl dCAqZXhjZXB0X2NvbHMpCiB7CiAJQml0bWFwc2V0ICAqcmVzdWx0ID0gTlVMTDsKIAlUdXBsZURl c2MJZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsYXRpb24pOwpAQCAtNjcyLDYgKzY4OSw5IEBA IHB1Yl9mb3JtX2NvbHNfbWFwKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaXNoR2VuY29sc1R5cGUg aW5jbHVkZV9nZW5jb2xzX3R5cGUpCiAJCQkJY29udGludWU7CiAJCX0KIAorCQlpZiAoZXhjZXB0 X2NvbHMgJiYgYm1zX2lzX21lbWJlcihhdHQtPmF0dG51bSwgZXhjZXB0X2NvbHMpKQorCQkJY29u dGludWU7CisKIAkJcmVzdWx0ID0gYm1zX2FkZF9tZW1iZXIocmVzdWx0LCBhdHQtPmF0dG51bSk7 CiAJfQogCkBAIC03NzYsOCArNzk2LDEwIEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCBy ZWxpZCwgYm9vbCBleGNlcHRfZmxhZykKIAl7CiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlz dC0+bWVtYmVyc1tpXS0+dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0 aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcnB1YmlkOworCQlib29sCQlpc19leGNlcHRfdGFi bGUgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0 ICYmCisJCQloZWFwX2F0dGlzbnVsbCh0dXAsIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0 cnMsIE5VTEwpOwogCi0JCWlmIChleGNlcHRfZmxhZyA9PSAoKEZvcm1fcGdfcHVibGljYXRpb25f cmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0KQorCQlpZiAoZXhjZXB0X2ZsYWcgPT0gaXNf ZXhjZXB0X3RhYmxlKQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJ fQogCkBAIC0xMjg4LDYgKzEzMTAsNyBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCU9pZAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQp OwogCQlEYXR1bQkJdmFsdWVzW05VTV9QVUJMSUNBVElPTl9UQUJMRVNfRUxFTV0gPSB7MH07CiAJ CWJvb2wJCW51bGxzW05VTV9QVUJMSUNBVElPTl9UQUJMRVNfRUxFTV0gPSB7MH07CisJCUJpdG1h cHNldCAgKmV4Y2VwdF9jb2x1bW5zID0gTlVMTDsKIAogCQkvKgogCQkgKiBGb3JtIHR1cGxlIHdp dGggYXBwcm9wcmlhdGUgZGF0YS4KQEAgLTEzMTIsNyArMTMzNSw2IEBAIHBnX2dldF9wdWJsaWNh dGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAogCQlpZiAoSGVhcFR1cGxlSXNWYWxpZChw dWJ0dXBsZSkpCiAJCXsKLQkJCS8qIExvb2t1cCB0aGUgY29sdW1uIGxpc3QgYXR0cmlidXRlLiAq LwogCQkJdmFsdWVzWzJdID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCBwdWJ0 dXBsZSwKIAkJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmF0dHJzLAogCQkJCQkJ CQkJCSYobnVsbHNbMl0pKTsKQEAgLTEzMjEsNiArMTM0MywyNSBAQCBwZ19nZXRfcHVibGljYXRp b25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQl2YWx1ZXNbM10gPSBTeXNDYWNoZUdldEF0 dHIoUFVCTElDQVRJT05SRUxNQVAsIHB1YnR1cGxlLAogCQkJCQkJCQkJCUFudW1fcGdfcHVibGlj YXRpb25fcmVsX3BycXVhbCwKIAkJCQkJCQkJCQkmKG51bGxzWzNdKSk7CisKKwkJCWlmICghbnVs bHNbMl0pCisJCQl7CisJCQkJRGF0dW0JCWV4Y2VwdERhdHVtOworCQkJCWJvb2wJCWlzbnVsbDsK KworCQkJCS8qCisJCQkJICogV2UgZmV0Y2ggcHVidHVwbGUgaWYgcHVibGljYXRpb24gaXMgbm90 IEZPUiBBTEwgVEFCTEVTIGFuZAorCQkJCSAqIG5vdCBGT1IgVEFCTEVTIElOIFNDSEVNQS4gU28g aWYgcHJleGNlcHQgaXMgdHJ1ZSwgaXQKKwkJCQkgKiBpbmRpY2F0ZXMgdGhhdCBwcmF0dHJzIGNv bnRhaW5zIGNvbHVtbnMgdG8gYmUgZXhjbHVkZWQgZm9yCisJCQkJICogcmVwbGljYXRpb24uCisJ CQkJICovCisJCQkJZXhjZXB0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxN QVAsIHB1YnR1cGxlLAorCQkJCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByZXhj ZXB0LAorCQkJCQkJCQkJCQkgICZpc251bGwpOworCisJCQkJaWYgKCFpc251bGwgJiYgRGF0dW1H ZXRCb29sKGV4Y2VwdERhdHVtKSkKKwkJCQkJZXhjZXB0X2NvbHVtbnMgPSBwdWJfY29sbGlzdF90 b19iaXRtYXBzZXQoTlVMTCwgdmFsdWVzWzJdLCBOVUxMKTsKKwkJCX0KIAkJfQogCQllbHNlCiAJ CXsKQEAgLTEzMjgsOCArMTM2OSwxMiBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCQludWxsc1szXSA9IHRydWU7CiAJCX0KIAotCQkvKiBTaG93IGFsbCBj b2x1bW5zIHdoZW4gdGhlIGNvbHVtbiBsaXN0IGlzIG5vdCBzcGVjaWZpZWQuICovCi0JCWlmIChu dWxsc1syXSkKKwkJLyoKKwkJICogQ29uc3RydWN0IGNvbHVtbiBsaXN0IHRvIHNob3cgYWxsIGNv bHVtbnMgd2hlbiBubyBjb2x1bW4gbGlzdCBpcworCQkgKiBzcGVjaWZpZWQgb3IgdG8gc2hvdyBy ZW1haW5pbmcgY29sdW1ucyB3aGVuIGEgY29sdW1uIGxpc3QgaXMKKwkJICogcHJvdmlkZWQgd2l0 aCBFWENFUFQuCisJCSAqLworCQlpZiAoZXhjZXB0X2NvbHVtbnMgfHwgbnVsbHNbMl0pCiAJCXsK IAkJCVJlbGF0aW9uCXJlbCA9IHRhYmxlX29wZW4ocmVsaWQsIEFjY2Vzc1NoYXJlTG9jayk7CiAJ CQlpbnQJCQluYXR0bnVtcyA9IDA7CkBAIC0xMzYwLDYgKzE0MDUsMTMgQEAgcGdfZ2V0X3B1Ymxp Y2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCQkJCQkJY29udGludWU7CiAJCQkJfQog CisJCQkJLyoKKwkJCQkgKiBTa2lwIGNvbHVtbnMgdGhhdCBhcmUgcGFydCBvZiBjb2x1bW4gbGlz dCBzcGVjaWZpZWQgd2l0aAorCQkJCSAqIEVYQ0VQVC4KKwkJCQkgKi8KKwkJCQlpZiAoZXhjZXB0 X2NvbHVtbnMgJiYgYm1zX2lzX21lbWJlcihhdHQtPmF0dG51bSwgZXhjZXB0X2NvbHVtbnMpKQor CQkJCQljb250aW51ZTsKKwogCQkJCWF0dG51bXNbbmF0dG51bXMrK10gPSBhdHQtPmF0dG51bTsK IAkJCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCAwZDU5OTlm MzMwNy4uZGVlMTE4NjIyOWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5j CkBAIC0yMDQsNyArMjA0LDYgQEAgT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoTGlzdCAqcHVi b2Jqc3BlY19saXN0LCBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCXN3aXRjaCAocHVib2JqLT5wdWJv Ymp0eXBlKQogCQl7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFOgotCQkJCXB1Ym9iai0+ cHVidGFibGUtPmV4Y2VwdCA9IGZhbHNlOwogCQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVi b2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX0VYQ0VQ VF9UQUJMRToKQEAgLTM1OCw3ICszNTcsOCBAQCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1 bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogICogVGhp cyBmdW5jdGlvbiBldmFsdWF0ZXMgdHdvIGNvbmRpdGlvbnM6CiAgKgogICogMS4gRW5zdXJlcyB0 aGF0IGFsbCBjb2x1bW5zIHJlZmVyZW5jZWQgaW4gdGhlIFJFUExJQ0EgSURFTlRJVFkgYXJlIGNv dmVyZWQKLSAqICAgIGJ5IHRoZSBjb2x1bW4gbGlzdC4gSWYgYW55IGNvbHVtbiBpcyBtaXNzaW5n LCAqaW52YWxpZF9jb2x1bW5fbGlzdCBpcyBzZXQKKyAqICAgIGJ5IHRoZSBjb2x1bW4gbGlzdCBh bmQgYXJlIG5vdCBwYXJ0IG9mIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoIEVYQ0VQVC4KKyAq IAkgIElmIGFueSBjb2x1bW4gaXMgbWlzc2luZywgKmludmFsaWRfY29sdW1uX2xpc3QgaXMgc2V0 CiAgKiAgICB0byB0cnVlLgogICogMi4gRW5zdXJlcyB0aGF0IGFsbCB0aGUgZ2VuZXJhdGVkIGNv bHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUgUkVQTElDQSBJREVOVElUWQogICogICAgYXJlIHB1Ymxp c2hlZCwgZWl0aGVyIGJ5IGJlaW5nIGV4cGxpY2l0bHkgbmFtZWQgaW4gdGhlIGNvbHVtbiBsaXN0 IG9yLCBpZgpAQCAtMzgxLDYgKzM4MSw3IEBAIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihP aWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJVHVwbGVEZXNj CWRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbGF0aW9uKTsKIAlQdWJsaWNhdGlvbiAqcHViOwog CWludAkJCXg7CisJYm9vbAkJZXhjZXB0X2NvbHVtbnMgPSBmYWxzZTsKIAogCSppbnZhbGlkX2Nv bHVtbl9saXN0ID0gZmFsc2U7CiAJKmludmFsaWRfZ2VuX2NvbCA9IGZhbHNlOwpAQCAtNDA0LDcg KzQwNSw4IEBAIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9u IHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAKIAkvKiBGZXRjaCB0aGUgY29sdW1uIGxpc3Qg Ki8KIAlwdWIgPSBHZXRQdWJsaWNhdGlvbihwdWJpZCk7Ci0JY2hlY2tfYW5kX2ZldGNoX2NvbHVt bl9saXN0KHB1YiwgcHVibGlzaF9hc19yZWxpZCwgTlVMTCwgJmNvbHVtbnMpOworCWNoZWNrX2Fu ZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsIHB1Ymxpc2hfYXNfcmVsaWQsIE5VTEwsICZjb2x1bW5z LAorCQkJCQkJCQkmZXhjZXB0X2NvbHVtbnMpOwogCiAJaWYgKHJlbGF0aW9uLT5yZF9yZWwtPnJl bHJlcGxpZGVudCA9PSBSRVBMSUNBX0lERU5USVRZX0ZVTEwpCiAJewpAQCAtNDk0LDggKzQ5Niwx NCBAQCBwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxh dGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCQkJYXR0bnVtID0gZ2V0X2F0dG51bShwdWJsaXNoX2Fz X3JlbGlkLCBjb2xuYW1lKTsKIAkJfQogCi0JCS8qIHJlcGxpY2EgaWRlbnRpdHkgY29sdW1uLCBu b3QgY292ZXJlZCBieSB0aGUgY29sdW1uIGxpc3QgKi8KLQkJKmludmFsaWRfY29sdW1uX2xpc3Qg fD0gIWJtc19pc19tZW1iZXIoYXR0bnVtLCBjb2x1bW5zKTsKKwkJLyoKKwkJICogUmVwbGljYSBp ZGVudGl0eSBjb2x1bW4sIG5vdCBjb3ZlcmVkIGJ5IHRoZSBjb2x1bW4gbGlzdCBvciBpcyBwYXJ0 CisJCSAqIG9mIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoIEVYQ0VQVC4KKwkJICovCisJCWlm IChleGNlcHRfY29sdW1ucykKKwkJCSppbnZhbGlkX2NvbHVtbl9saXN0IHw9IGJtc19pc19tZW1i ZXIoYXR0bnVtLCBjb2x1bW5zKTsKKwkJZWxzZQorCQkJKmludmFsaWRfY29sdW1uX2xpc3QgfD0g IWJtc19pc19tZW1iZXIoYXR0bnVtLCBjb2x1bW5zKTsKIAogCQlpZiAoKmludmFsaWRfY29sdW1u X2xpc3QgJiYgKmludmFsaWRfZ2VuX2NvbCkKIAkJCWJyZWFrOwpAQCAtMTQ0OCw2ICsxNDU2LDcg QEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVh cFR1cGxlIHR1cCwKIAkJCUhlYXBUdXBsZQlyZnR1cGxlOwogCQkJTm9kZQkgICAqb2xkcmVsd2hl cmVjbGF1c2UgPSBOVUxMOwogCQkJQml0bWFwc2V0ICAqb2xkY29sdW1ucyA9IE5VTEw7CisJCQli b29sCQlvbGRleGNlcHQgPSBmYWxzZTsKIAogCQkJLyogbG9vayB1cCB0aGUgY2FjaGUgZm9yIHRo ZSBvbGQgcmVsbWFwICovCiAJCQlyZnR1cGxlID0gU2VhcmNoU3lzQ2FjaGUyKFBVQkxJQ0FUSU9O UkVMTUFQLApAQCAtMTQ2Myw2ICsxNDcyLDcgQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJCQlib29sCQlpc251bGwg PSB0cnVlOwogCQkJCURhdHVtCQl3aGVyZUNsYXVzZURhdHVtOwogCQkJCURhdHVtCQljb2x1bW5M aXN0RGF0dW07CisJCQkJRGF0dW0JCWV4Y2VwdERhdHVtOwogCiAJCQkJLyogTG9hZCB0aGUgV0hF UkUgY2xhdXNlIGZvciB0aGlzIHRhYmxlLiAqLwogCQkJCXdoZXJlQ2xhdXNlRGF0dW0gPSBTeXND YWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHJmdHVwbGUsCkBAIC0xNDc5LDYgKzE0ODks MTMgQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwg SGVhcFR1cGxlIHR1cCwKIAkJCQlpZiAoIWlzbnVsbCkKIAkJCQkJb2xkY29sdW1ucyA9IHB1Yl9j b2xsaXN0X3RvX2JpdG1hcHNldChOVUxMLCBjb2x1bW5MaXN0RGF0dW0sIE5VTEwpOwogCisJCQkJ ZXhjZXB0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHJmdHVwbGUs CisJCQkJCQkJCQkJCSAgQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJleGNlcHQsCisJCQkJCQkJ CQkJCSAgJmlzbnVsbCk7CisKKwkJCQlpZiAoIWlzbnVsbCkKKwkJCQkJb2xkZXhjZXB0ID0gRGF0 dW1HZXRCb29sKGV4Y2VwdERhdHVtKTsKKwogCQkJCVJlbGVhc2VTeXNDYWNoZShyZnR1cGxlKTsK IAkJCX0KIApAQCAtMTUxMCw3ICsxNTI3LDggQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJCQlpZiAobmV3cmVsaWQg PT0gb2xkcmVsaWQpCiAJCQkJewogCQkJCQlpZiAoZXF1YWwob2xkcmVsd2hlcmVjbGF1c2UsIG5l d3B1YnJlbC0+d2hlcmVDbGF1c2UpICYmCi0JCQkJCQlibXNfZXF1YWwob2xkY29sdW1ucywgbmV3 Y29sdW1ucykpCisJCQkJCQlibXNfZXF1YWwob2xkY29sdW1ucywgbmV3Y29sdW1ucykgJiYKKwkJ CQkJCW9sZGV4Y2VwdCA9PSBuZXdwdWJyZWwtPmV4Y2VwdCkKIAkJCQkJewogCQkJCQkJZm91bmQg PSB0cnVlOwogCQkJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBiZGJiY2NjZDQ3Zi4uZGY1ZWNm ZWRiZGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjA0LDYgKzIwNCw4IEBAIHN0YXRpYyBQYXJ0aXRpb25T dHJhdGVneSBwYXJzZVBhcnRpdGlvblN0cmF0ZWd5KGNoYXIgKnN0cmF0ZWd5LCBpbnQgbG9jYXRp b24sCiBzdGF0aWMgdm9pZCBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNf bGlzdCwKIAkJCQkJCQkJICAgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpOwogc3RhdGljIE5vZGUg Km1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5v ZGUgKnF1ZXJ5KTsKK3N0YXRpYyB2b2lkIGNoZWNrX2V4Y2VwdF9jb2xsaXN0KGJvb2wgZXhjZXB0 LCBMaXN0KiBjb2x1bW5zLCBpbnQgbG9jYXRpb24sCisJCQkJCQkJCSBjb3JlX3l5c2Nhbl90IHl5 c2Nhbm5lcik7CiAKICV9CiAKQEAgLTUyNiw3ICs1MjgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJl Y3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVl cnkpOwogCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcKICV0eXBlIDxsaXN0Pglv cHRfY29sdW1uX2FuZF9wZXJpb2RfbGlzdAogJXR5cGUgPGxpc3Q+CXJvd3Nmcm9tX2l0ZW0gcm93 c2Zyb21fbGlzdCBvcHRfY29sX2RlZl9saXN0Ci0ldHlwZSA8Ym9vbGVhbj4gb3B0X29yZGluYWxp dHkgb3B0X3dpdGhvdXRfb3ZlcmxhcHMKKyV0eXBlIDxib29sZWFuPiBvcHRfb3JkaW5hbGl0eSBv cHRfd2l0aG91dF9vdmVybGFwcyBvcHRfZXhjZXB0CiAldHlwZSA8bGlzdD4JRXhjbHVzaW9uQ29u c3RyYWludExpc3QgRXhjbHVzaW9uQ29uc3RyYWludEVsZW0KICV0eXBlIDxsaXN0PglmdW5jX2Fy Z19saXN0IGZ1bmNfYXJnX2xpc3Rfb3B0CiAldHlwZSA8bm9kZT4JZnVuY19hcmdfZXhwcgpAQCAt NDQyMSw2ICs0NDIzLDExIEBAIG9wdF93aXRob3V0X292ZXJsYXBzOgogCQkJfCAvKkVNUFRZKi8J CQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCTsKIAorb3B0X2V4Y2VwdDoKKwkJCUVYQ0VQVAkJCQkJ CQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGZhbHNlOyB9 CisJCTsKKwogb3B0X2NvbHVtbl9saXN0OgogCQkJJygnIGNvbHVtbkxpc3QgJyknCQkJCQkJeyAk JCA9ICQyOyB9CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5JTDsgfQpAQCAtMTA3MzQs MTQgKzEwNzQxLDE2IEBAIENyZWF0ZVB1YmxpY2F0aW9uU3RtdDoKICAqIHJlbGF0aW9uX2V4cHIg aGVyZS4KICAqLwogUHVibGljYXRpb25PYmpTcGVjOgotCQkJVEFCTEUgcmVsYXRpb25fZXhwciBv cHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKKwkJCVRBQkxFIHJlbGF0aW9uX2V4cHIgb3B0 X2V4Y2VwdCBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0g bWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJM SUNBVElPTk9CSl9UQUJMRTsKIAkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRp b25UYWJsZSk7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAkMjsKLQkJCQkJJCQtPnB1 YnRhYmxlLT5jb2x1bW5zID0gJDM7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAk NDsKKwkJCQkJJCQtPnB1YnRhYmxlLT5leGNlcHQgPSAkMzsKKwkJCQkJJCQtPnB1YnRhYmxlLT5j b2x1bW5zID0gJDQ7CisJCQkJCWNoZWNrX2V4Y2VwdF9jb2xsaXN0KCQzLCAkNCwgQDMsIHl5c2Nh bm5lcik7CisJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNTsKIAkJCQkJJCQtPmxv Y2F0aW9uID0gQDE7CiAJCQkJfQogCQkJfCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ29sSWQKQEAgLTEw NzU3LDcgKzEwNzY2LDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVib2JqdHlw ZSA9IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BOwogCQkJCQkkJC0+bG9jYXRp b24gPSBANDsKIAkJCQl9Ci0JCQl8IENvbElkIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVz ZQorCQkJfCBDb2xJZCBvcHRfZXhjZXB0IG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQog CQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwogCQkJCQkkJC0+ cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsKQEAgLTEwNzY1LDcgKzEw Nzc0LDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkgKiBJZiBlaXRoZXIgYSByb3cgZmls dGVyIG9yIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgY3JlYXRlCiAJCQkJCSAqIGEgUHVibGlj YXRpb25UYWJsZSBvYmplY3QuCiAJCQkJCSAqLwotCQkJCQlpZiAoJDIgfHwgJDMpCisJCQkJCWlm ICgkMiB8fCAkMyB8fCAkNCkKIAkJCQkJewogCQkJCQkJLyoKIAkJCQkJCSAqIFRoZSBPcHRXaGVy ZUNsYXVzZSBtdXN0IGJlIHN0b3JlZCBoZXJlIGJ1dCBpdCBpcwpAQCAtMTA3NzUsOCArMTA3ODQs MTAgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkJICovCiAJCQkJCQkkJC0+cHVidGFibGUg PSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKIAkJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRp b24gPSBtYWtlUmFuZ2VWYXIoTlVMTCwgJDEsIEAxKTsKLQkJCQkJCSQkLT5wdWJ0YWJsZS0+Y29s dW1ucyA9ICQyOwotCQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQzOworCQkJCQkJ JCQtPnB1YnRhYmxlLT5leGNlcHQgPSAkMjsKKwkJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9 ICQzOworCQkJCQkJY2hlY2tfZXhjZXB0X2NvbGxpc3QoJDIsICQzLCBAMiwgeXlzY2FubmVyKTsK KwkJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKIAkJCQkJfQogCQkJCQllbHNl CiAJCQkJCXsKQEAgLTEwNzg0LDI1ICsxMDc5NSwyOSBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJ CQkJCX0KIAkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CiAJCQkJfQotCQkJfCBDb2xJZCBpbmRpcmVj dGlvbiBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKKwkJCXwgQ29sSWQgaW5kaXJlY3Rp b24gb3B0X2V4Y2VwdCBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJCQkJ CSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUg PSBQVUJMSUNBVElPTk9CSl9DT05USU5VQVRJT047CiAJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VO b2RlKFB1YmxpY2F0aW9uVGFibGUpOwogCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gbWFr ZVJhbmdlVmFyRnJvbVF1YWxpZmllZE5hbWUoJDEsICQyLCBAMSwgeXlzY2FubmVyKTsKLQkJCQkJ JCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDM7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1 c2UgPSAkNDsKKwkJCQkJJCQtPnB1YnRhYmxlLT5leGNlcHQgPSAkMzsKKwkJCQkJJCQtPnB1YnRh YmxlLT5jb2x1bW5zID0gJDQ7CisJCQkJCWNoZWNrX2V4Y2VwdF9jb2xsaXN0KCQzLCAkNCwgQDMs IHl5c2Nhbm5lcik7CisJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNTsKIAkJCQkJ JCQtPmxvY2F0aW9uID0gQDE7CiAJCQkJfQogCQkJLyogZ3JhbW1hciBsaWtlIHRhYmxlbmFtZSAq ICwgT05MWSB0YWJsZW5hbWUsIE9OTFkgKCB0YWJsZW5hbWUgKSAqLwotCQkJfCBleHRlbmRlZF9y ZWxhdGlvbl9leHByIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQorCQkJfCBleHRlbmRl ZF9yZWxhdGlvbl9leHByIG9wdF9leGNlcHQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNl CiAJCQkJewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQk LT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElOVUFUSU9OOwogCQkJCQkkJC0+cHVi dGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKIAkJCQkJJCQtPnB1YnRhYmxlLT5y ZWxhdGlvbiA9ICQxOwotCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMjsKLQkJCQkJJCQt PnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQzOworCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9 ICQyOworCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKKwkJCQkJY2hlY2tfZXhjZXB0 X2NvbGxpc3QoJDIsICQzLCBAMiwgeXlzY2FubmVyKTsKKwkJCQkJJCQtPnB1YnRhYmxlLT53aGVy ZUNsYXVzZSA9ICQ0OwogCQkJCX0KIAkJCXwgQ1VSUkVOVF9TQ0hFTUEKIAkJCQl7CkBAIC0xOTgx OSw2ICsxOTgzNCwyMSBAQCBtYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBM aXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSkKIAlyZXR1cm4gKE5vZGUgKikgczsKIH0KIAorLyoK KyAqIFRocm93IGFuIGVycm9yIGlmIG5vIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCB3aXRoIEVY Q0VQVCBjbGF1c2UKKyAqLwordm9pZAorY2hlY2tfZXhjZXB0X2NvbGxpc3QoYm9vbCBleGNlcHQs IExpc3QqIGNvbHVtbnMsIGludCBsb2NhdGlvbiwKKwkJCQkJIGNvcmVfeXlzY2FuX3QgeXlzY2Fu bmVyKQoreworCWlmIChleGNlcHQgJiYgY29sdW1ucyA9PSBOVUxMKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnKCJFWENF UFQgY2xhdXNlIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgY29sdW1uIGxpc3QiKSwKKwkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKGxvY2F0aW9uKSkpOworfQorCisKIC8qIHBhcnNlcl9pbml0KCkKICAq IEluaXRpYWxpemUgdG8gcGFyc2Ugb25lIHF1ZXJ5IHN0cmluZwogICovCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCAwODExMWI1NzFkZS4uZDE4NjU2 NGMyOTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0 cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpA QCAtMTg1LDYgKzE4NSwxNiBAQCB0eXBlZGVmIHN0cnVjdCBSZWxhdGlvblN5bmNFbnRyeQogCSAq IHJvdyBmaWx0ZXIgZXhwcmVzc2lvbnMsIGNvbHVtbiBsaXN0LCBldGMuCiAJICovCiAJTWVtb3J5 Q29udGV4dCBlbnRyeV9jeHQ7CisKKwkvKgorCSAqIEluZGljYXRlcyB3aGV0aGVyIG5vIGNvbHVt bnMgYXJlIHB1Ymxpc2hlZCBmb3IgYSBnaXZlbiByZWxhdGlvbi4gV2l0aAorCSAqIHRoZSBpbnRy b2R1Y3Rpb24gb2YgdGhlIEVYQ0VQVCBjbGF1c2UgaW4gY29sdW1uIGxpc3RzLCBpdCBpcyBub3cK KwkgKiBwb3NzaWJsZSB0byBkZWZpbmUgYSBwdWJsaWNhdGlvbiB0aGF0IGV4Y2x1ZGVzIGFsbCBj b2x1bW5zIG9mIGEgdGFibGUuCisJICogSG93ZXZlciwgdGhlICdjb2x1bW5zJyBhdHRyaWJ1dGUg Y2Fubm90IHJlcHJlc2VudCB0aGlzIGNhc2UsIHNpbmNlIGEKKwkgKiBOVUxMIHZhbHVlIGltcGxp ZXMgdGhhdCBhbGwgY29sdW1ucyBhcmUgcHVibGlzaGVkLiBUbyBkaXN0aW5ndWlzaCB0aGlzCisJ ICogc2NlbmFyaW8sIHRoZSAnbm9fY29sc19wdWJsaXNoZWQnIGZsYWcgaXMgaW50cm9kdWNlZC4K KwkgKi8KKwlib29sCQlub19jb2xzX3B1Ymxpc2hlZDsKIH0gUmVsYXRpb25TeW5jRW50cnk7CiAK IC8qCkBAIC0xMDY4LDEyICsxMDc4LDIxIEBAIGNoZWNrX2FuZF9pbml0X2dlbmNvbChQR091dHB1 dERhdGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywKIAkgKi8KIAlmb3JlYWNoX3B0cihQdWJs aWNhdGlvbiwgcHViLCBwdWJsaWNhdGlvbnMpCiAJeworCQlib29sCQloYXNfY29sdW1uX2xpc3Qg PSBmYWxzZTsKKwkJYm9vbAkJZXhjZXB0X2NvbHVtbnMgPSBmYWxzZTsKKworCQloYXNfY29sdW1u X2xpc3QgPSBjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QocHViLAorCQkJCQkJCQkJCQkJCSAg ZW50cnktPnB1Ymxpc2hfYXNfcmVsaWQsCisJCQkJCQkJCQkJCQkJICBOVUxMLCBOVUxMLAorCQkJ CQkJCQkJCQkJCSAgJmV4Y2VwdF9jb2x1bW5zKTsKKwogCQkvKgogCQkgKiBUaGUgY29sdW1uIGxp c3QgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZQogCQkgKiAncHVibGlzaF9nZW5lcmF0ZWRfY29s dW1ucycgcGFyYW1ldGVyLiBUaG9zZSB3aWxsIGJlIGNoZWNrZWQgbGF0ZXIsCi0JCSAqIHNlZSBw Z291dHB1dF9jb2x1bW5fbGlzdF9pbml0LgorCQkgKiBzZWUgcGdvdXRwdXRfY29sdW1uX2xpc3Rf aW5pdC4gQnV0IHdoZW4gYSBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQKKwkJICogd2l0aCBFWENF UFQsIGl0IHNob3VsZCBiZSBjaGVja2VkLgogCQkgKi8KLQkJaWYgKGNoZWNrX2FuZF9mZXRjaF9j b2x1bW5fbGlzdChwdWIsIGVudHJ5LT5wdWJsaXNoX2FzX3JlbGlkLCBOVUxMLCBOVUxMKSkKKwkJ aWYgKGhhc19jb2x1bW5fbGlzdCAmJiAhZXhjZXB0X2NvbHVtbnMpCiAJCQljb250aW51ZTsKIAog CQlpZiAoZmlyc3QpCkBAIC0xMTIyLDExICsxMTQxLDMwIEBAIHBnb3V0cHV0X2NvbHVtbl9saXN0 X2luaXQoUEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJewogCQlQdWJs aWNhdGlvbiAqcHViID0gbGZpcnN0KGxjKTsKIAkJQml0bWFwc2V0ICAqY29scyA9IE5VTEw7CisJ CWJvb2wJCWV4Y2VwdF9jb2x1bW5zID0gZmFsc2U7CisJCWJvb2wJCW5vX2NvbF9wdWJsaXNoZWQg PSBmYWxzZTsKIAogCQkvKiBSZXRyaWV2ZSB0aGUgYml0bWFwIG9mIGNvbHVtbnMgZm9yIGEgY29s dW1uIGxpc3QgcHVibGljYXRpb24uICovCiAJCWZvdW5kX3B1Yl9jb2xsaXN0IHw9IGNoZWNrX2Fu ZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsCiAJCQkJCQkJCQkJCQkJCSBlbnRyeS0+cHVibGlzaF9h c19yZWxpZCwKLQkJCQkJCQkJCQkJCQkJIGVudHJ5LT5lbnRyeV9jeHQsICZjb2xzKTsKKwkJCQkJ CQkJCQkJCQkJIGVudHJ5LT5lbnRyeV9jeHQsICZjb2xzLAorCQkJCQkJCQkJCQkJCQkgJmV4Y2Vw dF9jb2x1bW5zKTsKKworCQkvKgorCQkgKiBJZiBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQgd2l0 aCBFWENFUFQgcmV0cmlldmUgYml0bWFwIG9mIGNvbHVtbnMKKwkJICogd2hpY2ggYXJlIG5vdCBw YXJ0IG9mIHRoaXMgY29sdW1uIGxpc3QuCisJCSAqLworCQlpZiAoZXhjZXB0X2NvbHVtbnMpCisJ CXsKKwkJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVudHJ5 LT5lbnRyeV9jeHQpOworCisJCQljb2xzID0gcHViX2Zvcm1fY29sc19tYXAocmVsYXRpb24sCisJ CQkJCQkJCQkgZW50cnktPmluY2x1ZGVfZ2VuY29sc190eXBlLCBjb2xzKTsKKwkJCU1lbW9yeUNv bnRleHRTd2l0Y2hUbyhvbGRjeHQpOworCisJCQlpZiAoIWNvbHMpCisJCQkJbm9fY29sX3B1Ymxp c2hlZCA9IHRydWU7CisJCX0KIAogCQkvKgogCQkgKiBGb3Igbm9uLWNvbHVtbiBsaXN0IHB1Ymxp Y2F0aW9ucyDigJQgZS5nLiBUQUJMRSAod2l0aG91dCBhIGNvbHVtbgpAQCAtMTEzNCw3ICsxMTcy LDcgQEAgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdChQR091dHB1dERhdGEgKmRhdGEsIExpc3Qg KnB1YmxpY2F0aW9ucywKIAkJICogb2YgdGhlIHRhYmxlIChpbmNsdWRpbmcgZ2VuZXJhdGVkIGNv bHVtbnMgd2hlbgogCQkgKiAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycgcGFyYW1ldGVyIGlz IHRydWUpLgogCQkgKi8KLQkJaWYgKCFjb2xzKQorCQlpZiAoIW5vX2NvbF9wdWJsaXNoZWQgJiYg IWNvbHMpCiAJCXsKIAkJCS8qCiAJCQkgKiBDYWNoZSB0aGUgdGFibGUgY29sdW1ucyBmb3IgdGhl IGZpcnN0IHB1YmxpY2F0aW9uIHdpdGggbm8KQEAgLTExNDYsNyArMTE4NCw3IEBAIHBnb3V0cHV0 X2NvbHVtbl9saXN0X2luaXQoUEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMs CiAJCQkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZW50cnkt PmVudHJ5X2N4dCk7CiAKIAkJCQlyZWxjb2xzID0gcHViX2Zvcm1fY29sc19tYXAocmVsYXRpb24s Ci0JCQkJCQkJCQkJCWVudHJ5LT5pbmNsdWRlX2dlbmNvbHNfdHlwZSk7CisJCQkJCQkJCQkJCWVu dHJ5LT5pbmNsdWRlX2dlbmNvbHNfdHlwZSwgTlVMTCk7CiAJCQkJTWVtb3J5Q29udGV4dFN3aXRj aFRvKG9sZGN4dCk7CiAJCQl9CiAKQEAgLTExNTYsOSArMTE5NCwxMSBAQCBwZ291dHB1dF9jb2x1 bW5fbGlzdF9pbml0KFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25zLAogCQlp ZiAoZmlyc3QpCiAJCXsKIAkJCWVudHJ5LT5jb2x1bW5zID0gY29sczsKKwkJCWVudHJ5LT5ub19j b2xzX3B1Ymxpc2hlZCA9IG5vX2NvbF9wdWJsaXNoZWQ7CiAJCQlmaXJzdCA9IGZhbHNlOwogCQl9 Ci0JCWVsc2UgaWYgKCFibXNfZXF1YWwoZW50cnktPmNvbHVtbnMsIGNvbHMpKQorCQllbHNlIGlm ICgoZW50cnktPm5vX2NvbHNfcHVibGlzaGVkICE9IG5vX2NvbF9wdWJsaXNoZWQpIHx8CisJCQkJ ICFibXNfZXF1YWwoZW50cnktPmNvbHVtbnMsIGNvbHMpKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJ CQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCWVycm1zZygi Y2Fubm90IHVzZSBkaWZmZXJlbnQgY29sdW1uIGxpc3RzIGZvciB0YWJsZSBcIiVzLiVzXCIgaW4g ZGlmZmVyZW50IHB1YmxpY2F0aW9ucyIsCkBAIC0xNDgyLDYgKzE1MjIsMTMgQEAgcGdvdXRwdXRf Y2hhbmdlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgUmVvcmRlckJ1ZmZlclRYTiAqdHhu LAogCiAJcmVsZW50cnkgPSBnZXRfcmVsX3N5bmNfZW50cnkoZGF0YSwgcmVsYXRpb24pOwogCisJ LyoKKwkgKiBJZiBhbGwgY29sdW1ucyBvZiBhIHRhYmxlIGFyZSBwcmVzZW50IGluIGNvbHVtbiBs aXN0IHNwZWNpZmllZCB3aXRoCisJICogRVhDRVBULCBza2lwIHB1Ymxpc2hpbmcgdGhlIGNoYW5n ZXMuCisJICovCisJaWYgKHJlbGVudHJ5LT5ub19jb2xzX3B1Ymxpc2hlZCkKKwkJcmV0dXJuOwor CiAJLyogRmlyc3QgY2hlY2sgdGhlIHRhYmxlIGZpbHRlciAqLwogCXN3aXRjaCAoYWN0aW9uKQog CXsKQEAgLTIwNTksNiArMjEwNiw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEg KmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQllbnRyeS0+cHVibGlzaF9hc19yZWxpZCA9IElu dmFsaWRPaWQ7CiAJCWVudHJ5LT5jb2x1bW5zID0gTlVMTDsKIAkJZW50cnktPmF0dHJtYXAgPSBO VUxMOworCQllbnRyeS0+bm9fY29sc19wdWJsaXNoZWQgPSBmYWxzZTsKIAl9CiAKIAkvKiBWYWxp ZGF0ZSB0aGUgZW50cnkgKi8KQEAgLTIxMDgsNiArMjE1Niw3IEBAIGdldF9yZWxfc3luY19lbnRy eShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQllbnRyeS0+cHViYWN0 aW9ucy5wdWJ1cGRhdGUgPSBmYWxzZTsKIAkJZW50cnktPnB1YmFjdGlvbnMucHViZGVsZXRlID0g ZmFsc2U7CiAJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YnRydW5jYXRlID0gZmFsc2U7CisJCWVudHJ5 LT5ub19jb2xzX3B1Ymxpc2hlZCA9IGZhbHNlOwogCiAJCS8qCiAJCSAqIFR1cGxlIHNsb3RzIGNs ZWFudXBzLiAoV2lsbCBiZSByZWJ1aWx0IGxhdGVyIGlmIG5lZWRlZCkuCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRl eCBmMDg1MzM4YjMyMi4uNGE2MDBmNDIwNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNDg0NiwyNCArNDg0 Niw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0Ymxp bmZvW10sIGludCBudW1UYWJsZXMpCiAJCWlmICh0YmluZm8gPT0gTlVMTCkKIAkJCWNvbnRpbnVl OwogCi0JCS8qIE9LLCBtYWtlIGEgRHVtcGFibGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlw ICovCi0JCWlmIChzdHJjbXAocHJleGNlcHQsICJmIikgPT0gMCkKLQkJCXB1YnJpbmZvW2pdLmRv Ymoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKLQkJZWxzZQotCQkJcHVicmluZm9bal0u ZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDsKLQotCQlwdWJyaW5mb1tq XS5kb2JqLmNhdElkLnRhYmxlb2lkID0KLQkJCWF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV90 YWJsZW9pZCkpOwotCQlwdWJyaW5mb1tqXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZh bHVlKHJlcywgaSwgaV9vaWQpKTsKLQkJQXNzaWduRHVtcElkKCZwdWJyaW5mb1tqXS5kb2JqKTsK LQkJcHVicmluZm9bal0uZG9iai5uYW1lc3BhY2UgPSB0YmluZm8tPmRvYmoubmFtZXNwYWNlOwot CQlwdWJyaW5mb1tqXS5kb2JqLm5hbWUgPSB0YmluZm8tPmRvYmoubmFtZTsKLQkJcHVicmluZm9b al0ucHVibGljYXRpb24gPSBwdWJpbmZvOwotCQlwdWJyaW5mb1tqXS5wdWJ0YWJsZSA9IHRiaW5m bzsKLQkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV9wcnJlbHF1YWwpKQotCQkJcHVicmluZm9b al0ucHVicmVscXVhbCA9IE5VTEw7Ci0JCWVsc2UKLQkJCXB1YnJpbmZvW2pdLnB1YnJlbHF1YWwg PSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJyZWxxdWFsKSk7CisJCXB1YnJpbmZv W2pdLnB1YmV4Y2VwdCA9IChzdHJjbXAocHJleGNlcHQsICJ0IikgPT0gMCk7CiAKIAkJaWYgKCFQ UWdldGlzbnVsbChyZXMsIGksIGlfcHJhdHRycykpCiAJCXsKQEAgLTQ4ODksMTAgKzQ4NzIsMjkg QEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9b XSwgaW50IG51bVRhYmxlcykKIAkJZWxzZQogCQkJcHVicmluZm9bal0ucHVicmF0dHJzID0gTlVM TDsKIAorCQkvKiBPSywgbWFrZSBhIER1bXBhYmxlT2JqZWN0IGZvciB0aGlzIHJlbGF0aW9uc2hp cCAqLworCQlpZiAocHVicmluZm9bal0ucHViZXhjZXB0ICYmICFwdWJyaW5mb1tqXS5wdWJyYXR0 cnMpCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9FWENFUFRf UkVMOworCQllbHNlCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElP Tl9SRUw7CisKKwkJcHVicmluZm9bal0uZG9iai5jYXRJZC50YWJsZW9pZCA9CisJCQlhdG9vaWQo UFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKKwkJcHVicmluZm9bal0uZG9iai5jYXRJ ZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJ ZCgmcHVicmluZm9bal0uZG9iaik7CisJCXB1YnJpbmZvW2pdLmRvYmoubmFtZXNwYWNlID0gdGJp bmZvLT5kb2JqLm5hbWVzcGFjZTsKKwkJcHVicmluZm9bal0uZG9iai5uYW1lID0gdGJpbmZvLT5k b2JqLm5hbWU7CisJCXB1YnJpbmZvW2pdLnB1YmxpY2F0aW9uID0gcHViaW5mbzsKKwkJcHVicmlu Zm9bal0ucHVidGFibGUgPSB0YmluZm87CisJCWlmIChQUWdldGlzbnVsbChyZXMsIGksIGlfcHJy ZWxxdWFsKSkKKwkJCXB1YnJpbmZvW2pdLnB1YnJlbHF1YWwgPSBOVUxMOworCQllbHNlCisJCQlw dWJyaW5mb1tqXS5wdWJyZWxxdWFsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3By cmVscXVhbCkpOworCiAJCS8qIERlY2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAqLwog CQlzZWxlY3REdW1wYWJsZVB1YmxpY2F0aW9uT2JqZWN0KCYocHVicmluZm9bal0uZG9iaiksIGZv dXQpOwogCi0JCWlmIChzdHJjbXAocHJleGNlcHQsICJ0IikgPT0gMCkKKwkJaWYgKHB1YnJpbmZv W2pdLnB1YmV4Y2VwdCAmJiAhcHVicmluZm9bal0ucHVicmF0dHJzKQogCQkJc2ltcGxlX3B0cl9s aXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJpbmZvW2pdKTsKIAogCQlqKys7CkBAIC00OTcy LDcgKzQ5NzQsMTIgQEAgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3Qg UHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbykKIAkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJs ZSh0YmluZm8pKTsKIAogCWlmIChwdWJyaW5mby0+cHVicmF0dHJzKQorCXsKKwkJaWYgKHB1YnJp bmZvLT5wdWJleGNlcHQpCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBFWENFUFQi KTsKKwogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiAoJXMpIiwgcHVicmluZm8tPnB1YnJh dHRycyk7CisJfQogCiAJaWYgKHB1YnJpbmZvLT5wdWJyZWxxdWFsKQogCXsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmlu ZGV4IGE5Y2JlZDhjOWNlLi4zYjNkODY3ZGI1OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC02ODIsNiArNjgy LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1B1YmxpY2F0aW9uUmVsSW5mbwogCVRhYmxlSW5mbyAgKnB1 YnRhYmxlOwogCWNoYXIJICAgKnB1YnJlbHF1YWw7CiAJY2hhcgkgICAqcHVicmF0dHJzOworCWJv b2wJCXB1YmV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAx MGI1ZjdmMjljYi4uYjRkOWMxZjJiMjEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0zMDE5LDEyICszMDE5LDE0IEBA IGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCS8qIHBy aW50IGFueSBwdWJsaWNhdGlvbnMgKi8KIAkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTAwMDAwKQog CQl7Ci0JCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCQkvKiBGSVhNRTogMTgwMDAw IHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE5MDAwMCBsYXRlciBmb3IgUEcxOS4gKi8KKwkJCWlmIChw c2V0LnN2ZXJzaW9uID49IDE4MDAwMCkKIAkJCXsKIAkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVm LAogCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgogCQkJCQkJCQkgICIgICAgICwgTlVMTFxu IgogCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgogCQkJ CQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgogCQkJCQkJCQkgICIg ICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4gT04gcC5vaWQg PSBwbi5wbnB1YmlkXG4iCiAJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNz IHBjIE9OIHBjLnJlbG5hbWVzcGFjZSA9IHBuLnBubnNwaWRcbiIKQEAgLTMwMzgsMzcgKzMwNDAs NjEgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJ CQkJCQkJICAiICAgICAgICAgICAgICAgIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlXG4iCiAJCQkJ CQkJCSAgIiAgICAgICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9 IHByYXR0cnNbc10pXG4iCiAJCQkJCQkJCSAgIiAgICAgICAgRUxTRSBOVUxMIEVORCkgIgorCQkJ CQkJCQkgICIJCSwgcHJleGNlcHQgIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVi bGljYXRpb24gcFxuIgogCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlv bl9yZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCiAJCQkJCQkJCSAgIgkJSk9JTiBwZ19j YXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJCSAgIldI RVJFIHByLnBycmVsaWQgPSAnJXMnXG4iLAotCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOwotCi0J CQkJLyogRklYTUU6IDE4MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxOTAwMDAgbGF0ZXIgZm9y IFBHMTkuICovCi0JCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgwMDAwKQotCQkJCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOwotCi0JCQkJYXBw ZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcycg IgorCQkJCQkJCQkgICJBTkQgIGMucmVsbmFtZXNwYWNlIE5PVCBJTiAoXG4gIgorCQkJCQkJCQkg ICIgCVNFTEVDVCBwbm5zcGlkIEZST01cbiIKKwkJCQkJCQkJICAiIAlwZ19jYXRhbG9nLnBnX3B1 YmxpY2F0aW9uX25hbWVzcGFjZSlcbiIKIAkJCQkJCQkJICAiVU5JT05cbiIKIAkJCQkJCQkJICAi U0VMRUNUIHB1Ym5hbWVcbiIKIAkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiCQks IE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMg QU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIsCi0JCQkJ CQkJCSAgb2lkKTsKLQotCQkJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8g MTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLwotCQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE4MDAw MCkKLQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkJCSAgIiAgICAgQU5EIE5P VCBFWElTVFMgKFxuIgotCQkJCQkJCQkJICAiCQlTRUxFQ1QgMVxuIgotCQkJCQkJCQkJICAiCQlG Uk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCi0JCQkJCQkJCQkgICIJCUpP SU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwY1xuIgotCQkJCQkJCQkJICAiCQlPTiBwci5wcnJlbGlk ID0gcGMub2lkXG4iCi0JCQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAnJXMnIEFORCBw ci5wcnB1YmlkID0gcC5vaWQpXG4iLAotCQkJCQkJCQkJICBvaWQpOwotCi0JCQkJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDE7Iik7CisJCQkJCQkJCSAgIldIRVJFIHAucHVi YWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycp XG4iCisJCQkJCQkJCSAgIiAgICAgQU5EIE5PVCBFWElTVFMgKFxuIgorCQkJCQkJCQkgICIJCVNF TEVDVCAxXG4iCisJCQkJCQkJCSAgIgkJRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3Jl bCBwclxuIgorCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwY1xuIgorCQkJ CQkJCQkgICIJCU9OIHByLnBycmVsaWQgPSBwYy5vaWRcbiIKKwkJCQkJCQkJICAiCQlXSEVSRSBw ci5wcnJlbGlkID0gJyVzJyBBTkQgcHIucHJwdWJpZCA9IHAub2lkKVxuIgorCQkJCQkJCQkgICJP UkRFUiBCWSAxOyIsCisJCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwgb2lkLCBvaWQpOworCQkJfQor CQkJZWxzZSBpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCQl7CisJCQkJcHJpbnRmUFFF eHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKKwkJCQkJCQkJICAi ICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiRlJP TSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBn X2NhdGFsb2cucGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHBuIE9OIHAub2lkID0gcG4ucG5wdWJp ZFxuIgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwYyBPTiBwYy5y ZWxuYW1lc3BhY2UgPSBwbi5wbm5zcGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHBjLm9pZCA9JyVz JyBhbmQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgorCQkJ CQkJCQkgICJVTklPTlxuIgorCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgorCQkJCQkJCQkg ICIgICAgICwgcGdfZ2V0X2V4cHIocHIucHJxdWFsLCBjLm9pZClcbiIKKwkJCQkJCQkJICAiICAg ICAsIChDQVNFIFdIRU4gcHIucHJhdHRycyBJUyBOT1QgTlVMTCBUSEVOXG4iCisJCQkJCQkJCSAg IiAgICAgICAgIChTRUxFQ1Qgc3RyaW5nX2FnZyhhdHRuYW1lLCAnLCAnKVxuIgorCQkJCQkJCQkg ICIgICAgICAgICAgIEZST00gcGdfY2F0YWxvZy5nZW5lcmF0ZV9zZXJpZXMoMCwgcGdfY2F0YWxv Zy5hcnJheV91cHBlcihwci5wcmF0dHJzOjpwZ19jYXRhbG9nLmludDJbXSwgMSkpIHMsXG4iCisJ CQkJCQkJCSAgIiAgICAgICAgICAgICAgICBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZVxuIgorCQkJ CQkJCQkgICIgICAgICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0g PSBwcmF0dHJzW3NdKVxuIgorCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKKwkJ CQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKKwkJCQkJCQkJICAi ICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIu cHJwdWJpZFxuIgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9O IGMub2lkID0gcHIucHJyZWxpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVz J1xuIgorCQkJCQkJCQkgICJVTklPTlxuIgorCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgor CQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJ CQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgorCQkJCQkJCQkgICJX SEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNo YWJsZSgnJXMnKVxuIgorCQkJCQkJCQkgICJPUkRFUiBCWSAxOyIsCisJCQkJCQkJCSAgb2lkLCBv aWQsIG9pZCwgb2lkKTsKIAkJCX0KIAkJCWVsc2UKIAkJCXsKQEAgLTMxMDYsOCArMzEzMiwxNSBA QCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCiAJCQkJ LyogY29sdW1uIGxpc3QgKGlmIGFueSkgKi8KIAkJCQlpZiAoIVBRZ2V0aXNudWxsKHJlc3VsdCwg aSwgMikpCi0JCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgKCVzKSIsCi0JCQkJCQkJCQkg IFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAyKSk7CisJCQkJeworCQkJCQlpZiAoIVBRZ2V0aXNudWxs KHJlc3VsdCwgaSwgMykgJiYKKwkJCQkJCXN0cmNtcChQUWdldHZhbHVlKHJlc3VsdCwgaSwgMyks ICJ0IikgPT0gMCkKKwkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgRVhDRVBUICglcyki LAorCQkJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDIpKTsKKwkJCQkJZWxzZQorCQkJ CQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIiAoJXMpIiwKKwkJCQkJCQkJCQkgIFBRZ2V0dmFs dWUocmVzdWx0LCBpLCAyKSk7CisJCQkJfQogCiAJCQkJLyogcm93IGZpbHRlciAoaWYgYW55KSAq LwogCQkJCWlmICghUFFnZXRpc251bGwocmVzdWx0LCBpLCAxKSkKQEAgLTY1MTMsNiArNjU0Niwx NSBAQCBhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYyhQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IGNo YXIgKmZvb3Rlcm1zZywKIAlpZiAoY291bnQgPiAwKQogCQlwcmludFRhYmxlQWRkRm9vdGVyKGNv bnQsIGZvb3Rlcm1zZyk7CiAKKwkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorCSAqIFB1YmxpY2F0aW9uIGRlc2NyaXB0aW9uIGNvbHVtbnM6CisJ ICogWzBdOiBzY2hlbWEgbmFtZSAobnNwbmFtZSkKKwkgKiBbMV06IHRhYmxlIG5hbWUgKHJlbG5h bWUpCisJICogWzJdOiByb3cgZmlsdGVyIGV4cHJlc3Npb24gKHBycXVhbCksIG1heSBiZSBOVUxM CisJICogWzNdOiBjb2x1bW4gbGlzdCAoY29tbWEtc2VwYXJhdGVkKSwgbWF5IGJlIE5VTEwKKwkg KiBbNF06IGV4Y2VwdCBmbGFnICgidCIgaWYgRVhDRVBULCBlbHNlICJmIikKKwkgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCSAqLwogCWZvciAo aSA9IDA7IGkgPCBjb3VudDsgaSsrKQogCXsKIAkJaWYgKGFzX3NjaGVtYSkKQEAgLTY1MjMsNyAr NjU2NSwxMSBAQCBhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYyhQUUV4cEJ1ZmZlciBidWYsIGNv bnN0IGNoYXIgKmZvb3Rlcm1zZywKIAkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzLCBpLCAxKSk7CiAK IAkJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCAzKSkKKwkJCXsKKwkJCQlpZiAoIVBRZ2V0aXNu dWxsKHJlcywgaSwgNCkgJiYgc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCA0KSwgInQiKSA9PSAw KQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICIgRVhDRVBUIik7CiAJCQkJYXBwZW5kUFFF eHBCdWZmZXIoYnVmLCAiICglcykiLCBQUWdldHZhbHVlKHJlcywgaSwgMykpOworCQkJfQogCiAJ CQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgMikpCiAJCQkJYXBwZW5kUFFFeHBCdWZmZXIoYnVm LCAiIFdIRVJFICVzIiwgUFFnZXR2YWx1ZShyZXMsIGksIDIpKTsKQEAgLTY3MDYsNiArNjc1Miwx MyBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJZWxzZQog CQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCiAJCQkJCQkJCQkgIiwgTlVMTCwgTlVMTCIp OworCisJCQkvKiBGSVhNRTogMTgwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE5MDAwMCBsYXRl ciBmb3IgUEcxOS4gKi8KKwkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE4MDAwMCkKKwkJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLCBwcmV4Y2VwdCIpOworCQkJZWxzZQorCQkJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsIE5VTEwiKTsKKwogCQkJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwKIAkJCQkJCQkgICJcbkZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjLFxuIgogCQkJCQkJ CSAgIiAgICAgcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbixcbiIKQEAgLTY3MTQsMTAgKzY3Njcs NiBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQkJCSAg IiAgQU5EIGMub2lkID0gcHIucHJyZWxpZFxuIgogCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQg PSAnJXMnXG4iLCBwdWJpZCk7CiAKLQkJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNoYW5n ZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLwotCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0g MTgwMDAwKQotCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgIEFORCBOT1QgcHIucHJleGNl cHRcbiIpOwotCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiT1JERVIgQlkgMSwyIik7CiAJ CQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIlRhYmxlczoiKSwgZmFs c2UsICZjb250KSkKIAkJCQlnb3RvIGVycm9yX3JldHVybjsKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpp bmRleCAwOGI5ZGY1YmMzYi4uN2IyYzI1MmNkZDcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAg LTIyNjksNiArMjI2OSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAog CQlDT01QTEVURV9XSVRIKCJBTEwgVEFCTEVTIiwgIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUi KTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi QUREIiwgIkFMTCIsICJUQUJMRVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiRVhDRVBUIFRBQkxFIik7 CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFE RHxTRVQiLCAiVEFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCAoIik7 CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFE RHxTRVQiLCAiVEFCTEUiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9y X2xpc3Rfb2ZfdGFibGVzKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55LCAiQUREIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikp CkBAIC0zNTk0LDcgKzM1OTYsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9p ZCwKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwg IkZPUiIsICJUQUJMRVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiSU4gU0NIRU1BIik7CiAJZWxzZSBp ZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFC TEUiLCBNYXRjaEFueSkgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQotCQlDT01QTEVURV9X SVRIKCJXSEVSRSAoIiwgIldJVEggKCIpOworCQlDT01QTEVURV9XSVRIKCJFWENFUFQgKCIsICJX SEVSRSAoIiwgIldJVEggKCIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgUFVCTElDQVRJT04gPG5h bWU+IEZPUiBUQUJMRSIgd2l0aCAiPHRhYmxlPiwgLi4uIiAqLwogCWVsc2UgaWYgKE1hdGNoZXMo IkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFIikpCiAJCUNP TVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggYTA5ZjBmMmFiOTkuLmVjNTJkMjNkNzc2 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCkBAIC0xODEsNyArMTgxLDggQEAg ZXh0ZXJuIE9pZAlHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExp c3QgKmFuY2VzdG9ycywKIGV4dGVybiBib29sIGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKFJlbGF0 aW9uIHJlbCk7CiBleHRlcm4gYm9vbCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKTsK IGV4dGVybiBib29sIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHVi LCBPaWQgcmVsaWQsCi0JCQkJCQkJCQkJTWVtb3J5Q29udGV4dCBtY3h0LCBCaXRtYXBzZXQgKipj b2xzKTsKKwkJCQkJCQkJCQlNZW1vcnlDb250ZXh0IG1jeHQsIEJpdG1hcHNldCAqKmNvbHMsCisJ CQkJCQkJCQkJYm9vbCAqZXhjZXB0X2NvbHVtbnMpOwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgcHVi bGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmks CiAJCQkJCQkJCQkJCSAgYm9vbCBpZl9ub3RfZXhpc3RzKTsKIGV4dGVybiBCaXRtYXBzZXQgKnB1 Yl9jb2xsaXN0X3ZhbGlkYXRlKFJlbGF0aW9uIHRhcmdldHJlbCwgTGlzdCAqY29sdW1ucyk7CkBA IC0xOTEsNiArMTkyLDcgQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgcHVibGljYXRpb25fYWRkX3Nj aGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwKIGV4dGVybiBCaXRtYXBzZXQgKnB1Yl9jb2xs aXN0X3RvX2JpdG1hcHNldChCaXRtYXBzZXQgKmNvbHVtbnMsIERhdHVtIHB1YmNvbHMsCiAJCQkJ CQkJCQkJICAgTWVtb3J5Q29udGV4dCBtY3h0KTsKIGV4dGVybiBCaXRtYXBzZXQgKnB1Yl9mb3Jt X2NvbHNfbWFwKFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJUHVibGlzaEdlbmNvbHNUeXBl IGluY2x1ZGVfZ2VuY29sc190eXBlKTsKKwkJCQkJCQkJCVB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNs dWRlX2dlbmNvbHNfdHlwZSwKKwkJCQkJCQkJCUJpdG1hcHNldCAqZXhjZXB0X2NvbHMpOwogCiAj ZW5kaWYJCQkJCQkJLyogUEdfUFVCTElDQVRJT05fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHVibGljYXRpb25fcmVsLmgKaW5kZXggZTdkN2YzYmE4NWMuLjZhMjE2OGZjMzJjIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKQEAgLTMxLDExICszMSwxMiBAQCBD QVRBTE9HKHBnX3B1YmxpY2F0aW9uX3JlbCw2MTA2LFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCkK IAlPaWQJCQlvaWQ7CQkJLyogb2lkICovCiAJT2lkCQkJcHJwdWJpZCBCS0lfTE9PS1VQKHBnX3B1 YmxpY2F0aW9uKTsgLyogT2lkIG9mIHRoZSBwdWJsaWNhdGlvbiAqLwogCU9pZAkJCXBycmVsaWQg QktJX0xPT0tVUChwZ19jbGFzcyk7CS8qIE9pZCBvZiB0aGUgcmVsYXRpb24gKi8KLQlib29sCQlw cmV4Y2VwdCBCS0lfREVGQVVMVChmKTsJLyogZXhjbHVkZSB0aGUgcmVsYXRpb24gKi8KKwlib29s CQlwcmV4Y2VwdCBCS0lfREVGQVVMVChmKTsJLyogZXhjbHVkZSB0aGUgcmVsYXRpb24gb3IgY29s dW1ucyAqLwogCiAjaWZkZWYJQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmll bGRzIHN0YXJ0IGhlcmUgKi8KIAlwZ19ub2RlX3RyZWUgcHJxdWFsOwkJLyogcXVhbGlmaWNhdGlv bnMgKi8KLQlpbnQydmVjdG9yCXByYXR0cnM7CQkvKiBjb2x1bW5zIHRvIHJlcGxpY2F0ZSAqLwor CWludDJ2ZWN0b3IJcHJhdHRyczsJCS8qIGNvbHVtbnMgdG8gcmVwbGljYXRlIG9yIGV4Y2x1ZGUg dG8KKwkJCQkJCQkJICogcmVwbGljYXRlICovCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfcHVibGlj YXRpb25fcmVsOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1Ymxp Y2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0Cmlu ZGV4IGU1M2NhZGY1YzJiLi41ZjE5NTRmZGNjOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIxMzIsNiArMjEzMiw3NyBAQCBTRVQgUk9MRSByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXI7CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9Q IFRBQkxFIHB1Yl9zY2gxLnRibDE7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDI7CistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRl c3QgRVhDRVBUIGNvbHVtbnMgZm9yIENSRUFURSBQVUJMSUNBVElPTgorU0VUIGNsaWVudF9taW5f bWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgKGEgaW50 IE5PVCBOVUxMLCBiIGludCwgYyBpbnQgTk9UIE5VTEwsIGQgaW50KTsKK0NSRUFURSBUQUJMRSBw dWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIChhIGludCwgYiBpbnQsIGMgaW50LCBkIGludCk7Cist LSBWZXJpZnkgdGhhdCBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHdpdGggRVhDRVBUCitDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEsIHB1 Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDIgRVhDRVBUIChiLCBjKTsKK1NFTEVDVCAqIEZST00gcGdf cHVibGljYXRpb25fdGFibGVzIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9leGNlcHQnOworICAg IHB1Ym5hbWUgICAgIHwgc2NoZW1hbmFtZSB8ICAgIHRhYmxlbmFtZSAgICAgfCBhdHRuYW1lcyAg fCByb3dmaWx0ZXIgCistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyB0ZXN0cHViX2V4Y2VwdCB8IHB1YmxpYyAg ICAgfCBwdWJfdGVzdF9leGNlcHQxIHwge2EsYixjLGR9IHwgCisgdGVzdHB1Yl9leGNlcHQgfCBw dWJfc2NoMSAgIHwgcHViX3Rlc3RfZXhjZXB0MiB8IHthLGR9ICAgICB8IAorKDIgcm93cykKKwor LS0gQ2Fubm90IHVzZSBFWENFUFQgY29sLWxpc3RzIGNvbWJpbmVkIHdpdGggVEFCTEVTIElOIFND SEVNQQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0MiBGT1IgVEFCTEVTIElOIFND SEVNQSBwdWJfc2NoMSwgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGIsIGMpOworRVJS T1I6ICBjYW5ub3QgdXNlIGNvbHVtbiBsaXN0IGZvciByZWxhdGlvbiAicHVibGljLnB1Yl90ZXN0 X2V4Y2VwdDEiIGluIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2V4Y2VwdDIiCitERVRBSUw6ICBDb2x1 bW4gbGlzdHMgY2Fubm90IGJlIHNwZWNpZmllZCBpbiBwdWJsaWNhdGlvbnMgY29udGFpbmluZyBG T1IgVEFCTEVTIElOIFNDSEVNQSBlbGVtZW50cy4KKy0tIFN5bnRheCBlcnJvciBFWENFUFQgd2l0 aG91dCBhIGNvbC1saXN0CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBU QUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVDsKK0VSUk9SOiAgRVhDRVBUIGNsYXVzZSBjYW5u b3QgYmUgdXNlZCB3aXRob3V0IGNvbHVtbiBsaXN0CitMSU5FIDE6IC4uLkJMSUNBVElPTiB0ZXN0 cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K Ky0tIFZlcmlmeSBvayAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBTRVQgLi4uIEVYQ0VQVCAoY29s LWxpc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBTRVQgVEFCTEUgcHViX3Rl c3RfZXhjZXB0MSBFWENFUFQgKGEsIGIpLCBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOworXGRS cCsgdGVzdHB1Yl9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2V4Y2VwdAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3NjaDEucHViX3Rlc3Rf ZXhjZXB0MiIKKyAgICAicHVibGljLnB1Yl90ZXN0X2V4Y2VwdDEiIEVYQ0VQVCAoYSwgYikKKwor LS0gVmVyaWZ5IGZhaWxzIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIERST1AgLi4uIEVYQ0VQVCAo Y29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxFIHB1 Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBiKTsKK0VSUk9SOiAgY29sdW1uIGxpc3QgbXVzdCBu b3QgYmUgc3BlY2lmaWVkIGluIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QCistLSBWZXJpZnkg b2sgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJPUAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9leGNlcHQgRFJPUCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxOworLS0gVmVyaWZ5IG9rIC0gQUxU RVIgUFVCTElDQVRJT04gLi4uIEFERCAuLi4gRVhDRVBUIChjb2wtbGlzdCkKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZXhjZXB0IEFERCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAo YywgZCk7CitcZFJwKyB0ZXN0cHViX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZXhjZXB0CisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorVGFibGVzOgorICAgICJwdWJfc2No MS5wdWJfdGVzdF9leGNlcHQyIgorICAgICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIgRVhDRVBU IChjLCBkKQorCistLSBWZXJpZnkgZmFpbHMgLSBFWENFUFQgY29sLWxpc3QgY2Fubm90IGNvbnRh aW4gUkkgY29scyAod2hlbiB1c2luZyBSSSBGVUxMKQorQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhj ZXB0MSBSRVBMSUNBIElERU5USVRZIEZVTEw7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQg YSA9IDMgV0hFUkUgYSA9IDE7CitFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInB1Yl90ZXN0 X2V4Y2VwdDEiCitERVRBSUw6ICBDb2x1bW4gbGlzdCB1c2VkIGJ5IHRoZSBwdWJsaWNhdGlvbiBk b2VzIG5vdCBjb3ZlciB0aGUgcmVwbGljYSBpZGVudGl0eS4KKy0tIFZlcmlmeSBmYWlscyAtIEVY Q0VQVCBjb2wtbGlzdCBjYW5ub3QgY29udGFpbiBSSSBjb2xzICh3aGVuIHVzaW5nIElOREVYKQor Q1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeCBPTiBwdWJfdGVzdF9l eGNlcHQxIChhLCBjKTsKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVO VElUWSBVU0lORyBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeDsKK1VQREFURSBwdWJfdGVz dF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsKK0VSUk9SOiAgY2Fubm90IHVwZGF0ZSB0 YWJsZSAicHViX3Rlc3RfZXhjZXB0MSIKK0RFVEFJTDogIENvbHVtbiBsaXN0IHVzZWQgYnkgdGhl IHB1YmxpY2F0aW9uIGRvZXMgbm90IGNvdmVyIHRoZSByZXBsaWNhIGlkZW50aXR5LgorRFJPUCBJ TkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeDsKKy0tIFZlcmlmeSBvayAtIG5vIGNsYXNoIGJl dHdlZW4gUkkgY29scyBhbmQgdGhlIEVYQ0VQVCBjb2wtbGlzdAorQ1JFQVRFIFVOSVFVRSBJTkRF WCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEgKGEpOworQUxURVIg VEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHB1Yl90 ZXN0X2V4Y2VwdDFfYV9pZHg7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hF UkUgYSA9IDE7CistLSBjbGVhbnVwCitEUk9QIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7 CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0OworRFJPUCBUQUJMRSBwdWJfdGVzdF9l eGNlcHQxOworRFJPUCBUQUJMRSBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOwogRFJPUCBTQ0hF TUEgcHViX3NjaDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRp b24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDk5ZTFm NTUzZDY1Li5mZWI5N2NmNTE4NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApA QCAtMTMyMSw2ICsxMzIxLDU4IEBAIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsK IERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUgcHViX3NjaDEudGJs MTsKIERST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKKworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBUZXN0IEVYQ0VQVCBjb2x1bW5z IGZvciBDUkVBVEUgUFVCTElDQVRJT04KKworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJS T1InOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgKGEgaW50IE5PVCBOVUxMLCBiIGlu dCwgYyBpbnQgTk9UIE5VTEwsIGQgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS5wdWJfdGVz dF9leGNlcHQyIChhIGludCwgYiBpbnQsIGMgaW50LCBkIGludCk7CisKKy0tIFZlcmlmeSB0aGF0 IHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgd2l0aCBFWENFUFQKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2V4Y2VwdCBGT1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSwgcHViX3NjaDEucHViX3Rl c3RfZXhjZXB0MiBFWENFUFQgKGIsIGMpOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90 YWJsZXMgV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2V4Y2VwdCc7CisKKy0tIENhbm5vdCB1c2Ug RVhDRVBUIGNvbC1saXN0cyBjb21iaW5lZCB3aXRoIFRBQkxFUyBJTiBTQ0hFTUEKK0NSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3NjaDEs IFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChiLCBjKTsKKworLS0gU3ludGF4IGVycm9y IEVYQ0VQVCB3aXRob3V0IGEgY29sLWxpc3QKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4 Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUOworCistLSBWZXJpZnkgb2sg LSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIC4uLiBFWENFUFQgKGNvbC1saXN0KQorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgU0VUIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhD RVBUIChhLCBiKSwgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MjsKK1xkUnArIHRlc3RwdWJfZXhj ZXB0CisKKy0tIFZlcmlmeSBmYWlscyAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QIC4uLiBF WENFUFQgKGNvbC1saXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgRFJPUCBU QUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYSwgYik7CisKKy0tIFZlcmlmeSBvayAtIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2Vw dCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDE7CisKKy0tIFZlcmlmeSBvayAtIEFMVEVSIFBV QkxJQ0FUSU9OIC4uLiBBREQgLi4uIEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX2V4Y2VwdCBBREQgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGMsIGQp OworXGRScCsgdGVzdHB1Yl9leGNlcHQKKworLS0gVmVyaWZ5IGZhaWxzIC0gRVhDRVBUIGNvbC1s aXN0IGNhbm5vdCBjb250YWluIFJJIGNvbHMgKHdoZW4gdXNpbmcgUkkgRlVMTCkKK0FMVEVSIFRB QkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBGVUxMOworVVBEQVRFIHB1Yl90 ZXN0X2V4Y2VwdDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworCistLSBWZXJpZnkgZmFpbHMgLSBF WENFUFQgY29sLWxpc3QgY2Fubm90IGNvbnRhaW4gUkkgY29scyAod2hlbiB1c2luZyBJTkRFWCkK K0NSRUFURSBVTklRVUUgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hY19pZHggT04gcHViX3Rlc3Rf ZXhjZXB0MSAoYSwgYyk7CitBTFRFUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIFJFUExJQ0EgSURF TlRJVFkgVVNJTkcgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hY19pZHg7CitVUERBVEUgcHViX3Rl c3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CitEUk9QIElOREVYIHB1Yl90ZXN0X2V4 Y2VwdDFfYWNfaWR4OworCistLSBWZXJpZnkgb2sgLSBubyBjbGFzaCBiZXR3ZWVuIFJJIGNvbHMg YW5kIHRoZSBFWENFUFQgY29sLWxpc3QKK0NSRUFURSBVTklRVUUgSU5ERVggcHViX3Rlc3RfZXhj ZXB0MV9hX2lkeCBPTiBwdWJfdGVzdF9leGNlcHQxIChhKTsKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0 X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2Ff aWR4OworVVBEQVRFIHB1Yl90ZXN0X2V4Y2VwdDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworCist LSBjbGVhbnVwCitEUk9QIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZXhjZXB0OworRFJPUCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxOworRFJP UCBUQUJMRSBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7 CiAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQK aW5kZXggZThhMTE3ZjM0MjEuLmUwMTBkZTFlMWQwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1 aWxkCkBAIC00Myw2ICs0Myw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAzNF90ZW1wb3JhbC5w bCcsCiAgICAgICAndC8wMzVfY29uZmxpY3RzLnBsJywKICAgICAgICd0LzAzNl9yZXBfY2hhbmdl c19leGNlcHRfdGFibGUucGwnLAorICAgICAgJ3QvMDM3X3JlcF9jaGFuZ2VzX2V4Y2VwdF9jb2xs aXN0LnBsJywKICAgICAgICd0LzEwMF9idWdzLnBsJywKICAgICBdLAogICB9LApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X3JlcF9jaGFuZ2VzX2V4Y2VwdF9jb2xsaXN0 LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X3JlcF9jaGFuZ2VzX2V4Y2VwdF9jb2xs aXN0LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yZDdiN2EwNDEy YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19yZXBfY2hh bmdlc19leGNlcHRfY29sbGlzdC5wbApAQCAtMCwwICsxLDE1MCBAQAorIyBDb3B5cmlnaHQgKGMp IDIwMjEtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBMb2dp Y2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZvciBleGNlcHQgdGFibGUgcHVibGljYXRpb25zCit1c2Ug c3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFs aXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93 c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMg Q3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5p dChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFy dDsKKworIyBUZXN0IGZvciBleGNlcHQgY29sdW1uIHB1YmxpY2F0aW9ucworIyBJbml0aWFsIHNl dHVwCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFNDSEVN QSBzY2gxIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVB VEUgVEFCTEUgdGFiMiAoYSBpbnQsIGIgaW50IE5PVCBOVUxMLCBjIGludCkiKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSBzY2gxLnRhYjIg KGEgaW50LCBiIGludCwgYyBpbnQpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGFiMyAoYSBpbnQsIGIgaW50LCBjIGludCkiKTsKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0YWI0 IChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwgYyBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNUT1JFRCkiCispOworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRhYjUgKGEgaW50LCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMykgU1RPUkVEKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdGFiMiBWQUxVRVMgKDEsIDIsIDMpIik7Ciskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyBzY2gxLnRhYjIg VkFMVUVTICgxLCAyLCAzKSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIEZPUiBUQUJMRSB0YWIyIEVYQ0VQ VCAoYSksIHNjaDEudGFiMiBFWENFUFQgKGIsIGMpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFNDSEVNQSBzY2gxIik7Ciskbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRhYjIgKGEgaW50LCBi IGludCBOT1QgTlVMTCwgYyBpbnQpIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMiAoYSBpbnQsIGIgaW50LCBjIGludCki KTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFC TEUgdGFiMyAoYSBpbnQsIGIgaW50LCBjIGludCkiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGFiNCAoYSBpbnQsIGIgaW50LCBjIGlu dCkiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg VEFCTEUgdGFiNSAoYSBpbnQsIGIgaW50LCBjIGludCkiKTsKKworIyBTZXR1cCBsb2dpY2FsIHJl cGxpY2F0aW9uCitteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5z dHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViX2NvbCBDT05ORUNUSU9OICck cHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIgorKTsKKyRub2RlX3N1 YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3Rh cF9zdWJfY29sJyk7CisKKyMgVGVzdCBpbml0aWFsIHN5bmMKK215ICRyZXN1bHQgPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMiIpOwor aXMoJHJlc3VsdCwgcXEofDJ8MyksCisJJ2NoZWNrIHRoYXQgaW5pdGlhbCBzeW5jIGZvciBleGNl cHQgY29sdW1uIHB1YmxpY2F0aW9uJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEudGFiMiIpOworaXMoJHJlc3Vs dCwgcXEoMXx8KSwgJ2NoZWNrIHRoYXQgaW5pdGlhbCBzeW5jIGZvciBleGNlcHQgY29sdW1uIHB1 YmxpY2F0aW9uJyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5T RVJUIElOVE8gdGFiMiBWQUxVRVMgKDQsIDUsIDYpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyBzY2gxLnRhYjIgVkFMVUVTICg0LCA1LCA2 KSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOwor CisjIFRlc3QgaW5jcmVtZW50YWwgY2hhbmdlcworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIyIik7CitpcyggJHJlc3Vs dCwgcXEofDJ8MworfDV8NiksCisJJ2NoZWNrIGluY3JlbWVudGFsIGluc2VydCBmb3IgZXhjZXB0 IGNvbHVtbiBwdWJsaWNhdGlvbicpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnRhYjIiKTsKK2lzKCAkcmVzdWx0 LCBxcSgxfHwKKzR8fCksICdjaGVjayBpbmNyZW1lbnRhbCBpbnNlcnQgZm9yIGV4Y2VwdCBjb2x1 bW4gcHVibGljYXRpb24nKTsKKworIyBUZXN0IGZvciB1cGRhdGUKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBVTklRVUUgSU5ERVggYl9pZHggT04gdGFi MiAoYikiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVS IFRBQkxFIHRhYjIgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBiX2lkeCIpOworJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBVTklRVUUgSU5ERVgg Yl9pZHggT04gdGFiMiAoYikiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJBTFRFUiBUQUJMRSB0YWIyIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggYl9p ZHgiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSB0 YWIyIFNFVCBhID0gMywgYiA9IDQsIGMgPSA1IFdIRVJFIGEgPSAxIik7Ciskbm9kZV9wdWJsaXNo ZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjIiKTsKK2lz KCAkcmVzdWx0LCBxcSh8NXw2Cit8NHw1KSwKKwknY2hlY2sgdXBkYXRlIGZvciBleGNlcHQgY29s dW1uIHB1YmxpY2F0aW9uJyk7CisKKyMgVGVzdCBBTFRFUiBQVUJMSUNBVElPTiBmb3IgRVhDRVBU IChjb2xfbGlzdCkKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFM VEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIEFERCBUQUJMRSB0YWIzIEVYQ0VQVChiKSIpOwor JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQ VElPTiB0YXBfc3ViX2NvbCBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVy LT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX2Nv bCcpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElO VE8gdGFiMyBWQUxVRVMgKDEsIDIsIDMpIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2Nh dGNodXAoJ3RhcF9zdWJfY29sJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjMiKTsKK2lzKCRyZXN1bHQsIHFxKDF8 fDMpLCAnY2hlY2sgYWx0ZXIgcHVibGljYXRpb24gd2l0aCBFWENFUFQnKTsKKworIyBUZXN0IGZv ciBwdWJsaWNhdGlvbiBjcmVhdGVkIHdpdGggcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucyBhcyB0 cnVlIG9uIHRhYmxlCisjIHdpdGggZ2VuZXJhdGVkIGNvbHVtbnMgYW5kIGNvbHVtbiBsaXN0IHNw ZWNpZmllZCB3aXRoIEVYQ0VQVAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIklOU0VSVCBJTlRPIHRhYjQgVkFMVUVTICgxKSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgU0VUIChw dWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zKSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgU0VUIFRBQkxFIHRh YjQgRVhDRVBUKGIpIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfY29sIFJFRlJFU0ggUFVCTElDQVRJT04iKTsK KyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxp c2hlciwgJ3RhcF9zdWJfY29sJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJJTlNFUlQgSU5UTyB0YWI0IFZBTFVFUyAoMikiKTsKKyRub2RlX3B1Ymxpc2hlci0+ d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiNCIpOworaXMoICRy ZXN1bHQsIHFxKDF8fDMKKzJ8fDYpLAorCSdjaGVjayBwdWJsaWNhdGlvbihwdWJsaXNoX2dlbmVy YXRlZF9jb2x1bW5zIGFzIHRydWUpIHdpdGggZ2VuZXJhdGVkIGNvbHVtbnMgYW5kIEVYQ0VQVCcK Kyk7CisKKyMgVGVzdCBmb3IgcHVibGljYXRpb24gY3JlYXRlZCB3aXRoIHB1Ymxpc2hfZ2VuZXJh dGVkX2NvbHVtbnMgYXMgZmFsc2Ugb24gdGFibGUKKyMgd2l0aCBnZW5lcmF0ZWQgY29sdW1ucyBh bmQgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggRVhDRVBUCiskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdGFiNSBWQUxVRVMgKDEpIik7Ciskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJMSUNBVElPTiB0 YXBfcHViX2NvbCBTRVQgKHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9bm9uZSkiKTsKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9OIHRh cF9wdWJfY29sIFNFVCBUQUJMRSB0YWI1IEVYQ0VQVChiKSIpOworJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX2NvbCBS RUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3Jp cHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX2NvbCcpOworCiskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdGFiNSBWQUxVRVMgKDIp Iik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7Cisk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qg KiBGUk9NIHRhYjUiKTsKK2lzKCAkcmVzdWx0LCBxcSgxfHwKKzJ8fCksCisJJ2NoZWNrIHB1Ymxp Y2F0aW9uKHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgYXMgZmFsc2UpIHdpdGggZ2VuZXJhdGVk IGNvbHVtbnMgYW5kIEVYQ0VQVCcKKyk7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3Qn KTsKKyRub2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjM0LjEKCg== --00000000000031e205063a758ebb Content-Type: application/octet-stream; name="v17-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v17-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mddi5wm71 RnJvbSBiZWJmODcxYzEwNjZlMWQ2NTdjMjBmNzQyZjRiZTM2Y2ZiNTRlMzdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjIgSnVsIDIwMjUgMDA6MzM6NTUgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx NyAyLzNdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFC 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 ICAgICAgIHwgIDQ1ICsrKy0KIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZCAgICAg ICAgICAgICB8ICAgMSArCiAuLi4vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsICAg ICAgICAgfCAgODMgKysrKysrKysKIDI1IGZpbGVzIGNoYW5nZWQsIDczMCBpbnNlcnRpb25zKCsp 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 L3B1YmxpY2F0aW9uY21kcy5jCmluZGV4IGMzYWYxMGM0ZGM2Li4wZDU5OTlmMzMwNyAxMDA2NDQK 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+cHViYWxsdGFibGVzKQogCXsKQEAgLTEyODksNiAr MTMxNSw3OSBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRl 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 bW92ZSB0YWJsZSB0by9mcm9tIHB1YmxpY2F0aW9uLgogICovCkBAIC0xNDI4LDYgKzE1MjcsNyBA QCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFw VHVwbGUgdHVwLAogCQkJCW9sZHJlbCA9IHBhbGxvYyhzaXplb2YoUHVibGljYXRpb25SZWxJbmZv KSk7CiAJCQkJb2xkcmVsLT53aGVyZUNsYXVzZSA9IE5VTEw7CiAJCQkJb2xkcmVsLT5jb2x1bW5z ID0gTklMOworCQkJCW9sZHJlbC0+ZXhjZXB0ID0gZmFsc2U7CiAJCQkJb2xkcmVsLT5yZWxhdGlv biA9IHRhYmxlX29wZW4ob2xkcmVsaWQsCiAJCQkJCQkJCQkJCSAgU2hhcmVVcGRhdGVFeGNsdXNp dmVMb2NrKTsKIAkJCQlkZWxyZWxzID0gbGFwcGVuZChkZWxyZWxzLCBvbGRyZWwpOwpAQCAtMTYw MSw2ICsxNzAxLDIwIEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09X TkVSLCBPQkpFQ1RfUFVCTElDQVRJT04sCiAJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpOwogCisJaWYg KHN0bXQtPmZvcl9hbGxfdGFibGVzKQorCXsKKwkJYm9vbAkJaXNkZWZhdWx0ID0gQ2hlY2tQdWJs aWNhdGlvbkRlZlZhbHVlcyh0dXApOworCisJCWlmICghaXNkZWZhdWx0KQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAor CQkJCQllcnJtc2coImFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0 byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcyIpLAorCQkJCQllcnJk ZXRhaWwoIkFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3Nj aGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuIiksCisJCQkJCWVycmhpbnQoIlVzZSBBTFRFUiBQ VUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uIikpOworCisJCUFs dGVyUHVibGljYXRpb25TZXRBbGxUYWJsZXMocmVsLCB0dXApOworCX0KKwogCWlmIChzdG10LT5v cHRpb25zKQogCQlBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwgdHVw KTsKIAllbHNlIGlmIChzdG10LT5hY3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNhdGlvbikKQEAgLTE4 MTMsNiArMTkyNyw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQlwdWJfcmVsLT5y ZWxhdGlvbiA9IHJlbDsKIAkJcHViX3JlbC0+d2hlcmVDbGF1c2UgPSB0LT53aGVyZUNsYXVzZTsK IAkJcHViX3JlbC0+Y29sdW1ucyA9IHQtPmNvbHVtbnM7CisJCXB1Yl9yZWwtPmV4Y2VwdCA9IHQt PmV4Y2VwdDsKIAkJcmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJCXJlbGlkcyA9IGxh cHBlbmRfb2lkKHJlbGlkcywgbXlyZWxpZCk7CiAKQEAgLTE4ODUsNiArMjAwMCw3IEBAIE9wZW5U YWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCiAJCQkJLyogY2hpbGQgaW5oZXJpdHMgY29sdW1uIGxp c3QgZnJvbSBwYXJlbnQgKi8KIAkJCQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJ CQlwdWJfcmVsLT5leGNlcHQgPSB0LT5leGNlcHQ7CiAJCQkJcmVscyA9IGxhcHBlbmQocmVscywg cHViX3JlbCk7CiAJCQkJcmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBjaGlsZHJlbGlkKTsK IApAQCAtMTk2MCw4ICsyMDc2LDYgQEAgUHVibGljYXRpb25BZGRUYWJsZXMoT2lkIHB1YmlkLCBM 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 aW5kZXggNjA0ZmMxMDk0MTYuLmYwODUzMzhiMzIyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE4NSw2ICsx ODUsOCBAQCBzdGF0aWMgU2ltcGxlT2lkTGlzdCBleHRlbnNpb25faW5jbHVkZV9vaWRzID0ge05V TEwsIE5VTEx9Owogc3RhdGljIFNpbXBsZVN0cmluZ0xpc3QgZXh0ZW5zaW9uX2V4Y2x1ZGVfcGF0 dGVybnMgPSB7TlVMTCwgTlVMTH07CiBzdGF0aWMgU2ltcGxlT2lkTGlzdCBleHRlbnNpb25fZXhj bHVkZV9vaWRzID0ge05VTEwsIE5VTEx9OwogCitzdGF0aWMgU2ltcGxlUHRyTGlzdCBleGNlcHRp bmZvID0ge05VTEwsIE5VTEx9OworCiBzdGF0aWMgY29uc3QgQ2F0YWxvZ0lkIG5pbENhdGFsb2dJ ZCA9IHswLCAwfTsKIAogLyogb3ZlcnJpZGUgZm9yIHN0YW5kYXJkIGV4dHJhX2Zsb2F0X2RpZ2l0 cyBzZXR0aW5nICovCkBAIC00NTc3LDggKzQ1NzksMzQgQEAgZHVtcFB1YmxpY2F0aW9uKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAqcHViaW5mbykKIAkJCQkJICBxcHVibmFt ZSk7CiAKIAlpZiAocHViaW5mby0+cHViYWxsdGFibGVzKQorCXsKKwkJU2ltcGxlUHRyTGlzdENl bGwgKmNlbGw7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgRk9SIEFMTCBUQUJM RVMiKTsKIAorCQkvKiBJbmNsdWRlIGV4Y2VwdGlvbiB0YWJsZXMgaWYgdGhlIHB1YmxpY2F0aW9u IGhhcyBleGNlcHQgdGFibGVzICovCisJCWZvciAoY2VsbCA9IGV4Y2VwdGluZm8uaGVhZDsgY2Vs bDsgY2VsbCA9IGNlbGwtPm5leHQpCisJCXsKKwkJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmlu Zm8gPSAoUHVibGljYXRpb25SZWxJbmZvICopIGNlbGwtPnB0cjsKKwkJCVRhYmxlSW5mbyAgKnRi aW5mbzsKKworCQkJaWYgKHB1YmluZm8gPT0gcHVicmluZm8tPnB1YmxpY2F0aW9uKQorCQkJewor CQkJCXRiaW5mbyA9IHB1YnJpbmZvLT5wdWJ0YWJsZTsKKworCQkJCWlmIChmaXJzdCkKKwkJCQl7 CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEVYQ0VQVCBUQUJMRSIpOworCQkJ CQlmaXJzdCA9IGZhbHNlOworCQkJCX0KKwkJCQllbHNlCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LCAiLCIpOworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OTFkgJXMi LCBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8pKTsKKwkJCX0KKwkJfQorCX0KKworCWZpcnN0 ID0gdHJ1ZTsKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBXSVRIIChwdWJsaXNoID0g JyIpOwogCWlmIChwdWJpbmZvLT5wdWJpbnNlcnQpCiAJewpAQCAtNDc0NCw2ICs0NzcyLDcgQEAg Z2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwg aW50IG51bVRhYmxlcykKIAlpbnQJCQlpX3BycmVsaWQ7CiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJ aW50CQkJaV9wcmF0dHJzOworCWludAkJCWlfcHJleGNlcHQ7CiAJaW50CQkJaSwKIAkJCQlqLAog CQkJCW50dXBzOwpAQCAtNDc1NSw4ICs0Nzg0LDE3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFy Y2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAKIAkvKiBD b2xsZWN0IGFsbCBwdWJsaWNhdGlvbiBtZW1iZXJzaGlwIGluZm8uICovCiAJaWYgKGZvdXQtPnJl bW90ZVZlcnNpb24gPj0gMTUwMDAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks CisJCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCxcbiIpOwor CisJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZv ciBQRzE5LiAqLworCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxODAwMDApCisJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBwcmV4Y2VwdCxcbiIpOworCQllbHNlCisJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmYWxzZSBBUyBwcmV4Y2VwdCxcbiIpOworCiAJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQs IHBycHViaWQsIHBycmVsaWQsICIKIAkJCQkJCQkgInBnX2NhdGFsb2cucGdfZ2V0X2V4cHIocHJx dWFsLCBwcnJlbGlkKSBBUyBwcnJlbHF1YWwsICIKIAkJCQkJCQkgIihDQVNFXG4iCiAJCQkJCQkJ ICIgIFdIRU4gcHIucHJhdHRycyBJUyBOT1QgTlVMTCBUSEVOXG4iCkBAIC00NzY3LDYgKzQ4MDUs NyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5m b1tdLCBpbnQgbnVtVGFibGVzKQogCQkJCQkJCSAiICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5w cnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxuIgogCQkJCQkJCSAiICBFTFNFIE5VTEwg RU5EKSBwcmF0dHJzICIKIAkJCQkJCQkgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9y ZWwgcHIiKTsKKwl9CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJ CQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLCAiCkBAIC00NzgyLDYg KzQ4MjEsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g dGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWlfcHJyZWxpZCA9IFBRZm51bWJlcihyZXMsICJw cnJlbGlkIik7CiAJaV9wcnJlbHF1YWwgPSBQUWZudW1iZXIocmVzLCAicHJyZWxxdWFsIik7CiAJ aV9wcmF0dHJzID0gUFFmbnVtYmVyKHJlcywgInByYXR0cnMiKTsKKwlpX3ByZXhjZXB0ID0gUFFm bnVtYmVyKHJlcywgInByZXhjZXB0Iik7CiAKIAkvKiB0aGlzIGFsbG9jYXRpb24gbWF5IGJlIG1v cmUgdGhhbiB3ZSBuZWVkICovCiAJcHVicmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2Yo UHVibGljYXRpb25SZWxJbmZvKSk7CkBAIC00NzkzLDYgKzQ4MzMsNyBAQCBnZXRQdWJsaWNhdGlv blRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVz KQogCQlPaWQJCQlwcnJlbGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3BycmVsaWQp KTsKIAkJUHVibGljYXRpb25JbmZvICpwdWJpbmZvOwogCQlUYWJsZUluZm8gICp0YmluZm87CisJ CWNoYXIJICAgKnByZXhjZXB0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ByZXhj ZXB0KSk7CiAKIAkJLyoKIAkJICogSWdub3JlIGFueSBlbnRyaWVzIGZvciB3aGljaCB3ZSBhcmVu J3QgaW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhlCkBAIC00ODA2LDcgKzQ4NDcsMTEgQEAgZ2V0UHVi bGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51 bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9LLCBtYWtlIGEgRHVtcGFibGVPYmplY3Qg Zm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERP X1BVQkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgImYiKSA9PSAwKQorCQkJ cHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOworCQllbHNlCisJ CQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOwor CiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVvaWQgPQogCQkJYXRvb2lkKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQub2lkID0g YXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOwpAQCAtNDg0Nyw2ICs0ODkyLDkgQEAg Z2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwg aW50IG51bVRhYmxlcykKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICov CiAJCXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmplY3QoJihwdWJyaW5mb1tqXS5kb2JqKSwg Zm91dCk7CiAKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgInQiKSA9PSAwKQorCQkJc2ltcGxlX3B0 cl9saXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJpbmZvW2pdKTsKKwogCQlqKys7CiAJfQog CkBAIC0xMTY0Miw2ICsxMTY5MCw5IEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0 LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBET19QVUJMSUNBVElPTjoKIAkJCWR1bXBQ dWJsaWNhdGlvbihmb3V0LCAoY29uc3QgUHVibGljYXRpb25JbmZvICopIGRvYmopOwogCQkJYnJl YWs7CisJCWNhc2UgRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCS8qIHdpbGwgYmUgZHVt cGVkIGluIGR1bXBQdWJsaWNhdGlvbiAqLworCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFVCTElDQVRJ T05fUkVMOgogCQkJZHVtcFB1YmxpY2F0aW9uVGFibGUoZm91dCwgKGNvbnN0IFB1YmxpY2F0aW9u UmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOwpAQCAtMTk5NTIsNiArMjAwMDMsNyBAQCBhZGRC 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 ZGV4IGQ4MzMwZTJiZDE3Li5iNmZlYWI5ODBhMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwK QEAgLTMzMDQsNiArMzMwNCwyNiBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2UgPT4geyAlZnVsbF9y 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 dGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCAzNGNlY2FmYjRmNS4uZTUzY2FkZjVjMmIgMTAwNjQ0 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 ZnkgdGhhdCBhc3NvY2lhdGVkIHRhYmxlcyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWNhdGlv biBhZnRlciBSRVNFVAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTE5NzEs NiArMjAzNSwxMSBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogKDEg cm93KQogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRVMgSU4gU0NI RU1BIHB1YmxpYzsKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVT IElOIFNDSEVNQScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg QUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIGFkZGlu ZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVi bGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNob3Vs ZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4K K0hJTlQ6ICBVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJs aWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQgYXNzb2NpYXRlZCBzY2hlbWFzIGFyZSByZW9tdmVkIGZy b20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAg 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 aW9uLnNxbAppbmRleCA1YTIzMDA3NzllYi4uOTllMWY1NTNkNjUgMTAwNjQ0Ci0tLSBhL3NyYy90 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 Uic7CkBAIC0xMjI4LDE3ICsxMjQxLDMwIEBAIERST1AgVEFCTEUgZ2VuY29sczsKIC0tIFRlc3Rz IGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQKIENSRUFURSBTQ0hFTUEgcHViX3NjaDE7 CiBDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAoYSBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9z Y2gxLnRibDIgKGEgaW50KTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOwogUkVTRVQgY2xp ZW50X21pbl9tZXNzYWdlczsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFM TCBUQUJMRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFE RCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworCiAtLSBWZXJpZnkgdGhh dCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIFxkUnArIHRlc3RwdWJfcmVzZXQKIAor LS0gU2hvdWxkIHdvcmsgbm93IGFmdGVyIHJlc2V0dGluZyB0aGUgcHVibGljYXRpb24KK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1 Yl9zY2gxLnRibDEsIHB1Yl9zY2gxLnRibDI7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CisKIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gxLnRibDE7CiAKKy0tIENhbid0IGFkZCBFWENF UFQgVEFCTEUgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisK IC0tIFZlcmlmeSB0aGF0IGFzc29jaWF0ZWQgdGFibGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHB1 YmxpY2F0aW9uIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwpAQCAtMTI0Niw2ICsxMjcyLDkgQEAgQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CiAKKy0tIENhbid0IGFkZCBFWENF UFQgVEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQScgcHVibGljYXRpb24KK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0IGFzc29jaWF0ZWQgc2NoZW1hcyBhcmUgcmVv bXZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAogXGRScCsgdGVzdHB1Yl9yZXNl dAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKQEAgLTEyNTMsNiArMTI4 MiwxMCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogCiBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSCA9ICcnKTsKIAorLS0gQ2FuJ3Qg YWRkIEVYQ0VQVCBUQUJMRSB3aGVuIHRoZSAnUFVCTElTSCcgcGFyYW1ldGVyIGRvZXMgbm90IGhh dmUgZGVmYXVsdAorLS0gdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQURE IEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0 ICdQVUJMSVNIJyBwYXJhbWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0xMjYwLDYgKzEyOTMsMTAgQEAg QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIAogQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UID0gJ3RydWUn KTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuICdQVUJMSVNIX1ZJQV9QQVJUSVRJ T05fUk9PVCcgcGFyYW1ldGVyIGRvZXMgbm90CistLSBoYXZlIGRlZmF1bHQgdmFsdWUKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9P VCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwpAQCAtMTI3NiwxMCArMTMxMywxNCBAQCBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogU0VUIFJPTEUgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg UkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorCistLSBWZXJpZnkgdGhhdCBvbmx5 IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgQUREIEFMTCBUQUJMRVM7CiBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7 CiAKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUgcHViX3NjaDEu dGJsMTsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKIERST1AgU0NIRU1BIHB1Yl9zY2gxOwog CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCmlu ZGV4IDU4NmZmYmE0MzRlLi5lOGExMTdmMzQyMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWls ZApAQCAtNDIsNiArNDIsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8wMzNfcnVuX2FzX3RhYmxl X293bmVyLnBsJywKICAgICAgICd0LzAzNF90ZW1wb3JhbC5wbCcsCiAgICAgICAndC8wMzVfY29u ZmxpY3RzLnBsJywKKyAgICAgICd0LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwnLAog ICAgICAgJ3QvMTAwX2J1Z3MucGwnLAogICAgIF0sCiAgIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsIGIvc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWQxMTUyODM4MDkKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3Rh YmxlLnBsCkBAIC0wLDAgKzEsODMgQEAKKworIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBMb2dpY2FsIHJlcGxpY2F0aW9u IHRlc3RzIGZvciBleGNlcHQgdGFibGUgcHVibGljYXRpb25zCit1c2Ugc3RyaWN0OwordXNlIHdh cm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6 VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFsaXplIHB1Ymxpc2hlciBu b2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXco J3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4g J2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmli ZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXIt Pm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFt aW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKKworIyBUZXN0IHJl cGxpY2F0aW9uIHdpdGggcHVibGljYXRpb25zIGNyZWF0ZWQgdXNpbmcgRk9SIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFCisjIGNsYXVzZS4KKyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxlcyBvbiBw dWJsaXNoZXIKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUg U0NIRU1BIHNjaDEiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBUQUJMRSBzY2gxLnRhYjEgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDEwKSBB UyBhIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRB QkxFIHB1YmxpYy50YWIxKGEgaW50KSIpOworCisjIENyZWF0ZSBzY2hlbWFzIGFuZCB0YWJsZXMg b24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJD UkVBVEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMSAoYSBpbnQpIik7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSBwdWJsaWMudGFiMSAoYSBpbnQp Iik7CisKKyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1Ymxpc2hlcl9jb25uc3Ry ID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRh cF9wdWJfc2NoZW1hIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBzY2gxLnRhYjEiCispOwor Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlND UklQVElPTiB0YXBfc3ViX3NjaGVtYSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBV QkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIgorKTsKKworIyBXYWl0IGZvciBpbml0aWFsIHRhYmxl IHN5bmMgdG8gZmluaXNoCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25f c3luYygkbm9kZV9wdWJsaXNoZXIsCisJJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyMgQ2hlY2sgdGhl IHRhYmxlIGRhdGEgZG9lcyBub3Qgc3luYyBmb3IgZXhjbHVkZWQgdGFibGUKK215ICRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50 KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8 KSwKKwknY2hlY2sgdGhlcmUgaXMgbm8gaW5pdGlhbCBkYXRhIGNvcGllZCBmb3IgdGhlIGV4Y2x1 ZGVkIHRhYmxlJyk7CisKKyMgSW5zZXJ0IHNvbWUgZGF0YSBhbmQgdmVyaWZ5IHRoYXQgaW5zZXJ0 ZWQgZGF0YSBpcyBub3QgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiSU5TRVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyhnZW5lcmF0ZV9zZXJpZXMo MTEsMjApKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJf c2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIp OworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBvbiBzdWJz Y3JpYmVyJyk7CisKKyMgQWx0ZXIgcHVibGljYXRpb24gdG8gZXhjbHVkZSBkYXRhIGNoYW5nZXMg aW4gcHVibGljLnRhYjEgYW5kIHZlcmlmeSB0aGF0CisjIHN1YnNjcmliZXIgZG9lcyBub3QgZ2V0 IHRoZSBjaGFuZ2VkIGRhdGEgZm9yIHRoaXMgdGFibGUuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBSRVNF VCIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgUFVC TElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHNjaDEu dGFiMSwgcHVibGljLnRhYjEiCispOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiSU5TRVJUIElOVE8gcHVibGljLnRhYjEgVkFMVUVTKGdlbmVyYXRlX3Nlcmllcygx LDEwKSkiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3Nj aGVtYScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBwdWJsaWMudGFiMSIp OworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJvd3Mgb24gc3Vic2NyaWJlciBjYXRjaHVw Jyk7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3QnKTsKKyRub2RlX3B1Ymxpc2hlci0+ c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzQuMQoK --00000000000031e205063a758ebb--