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 1uTv6q-00C9l5-6t for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Jun 2025 04:18:12 +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 1uTv6o-008qDn-A7 for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Jun 2025 04:18:10 +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 1uTv6n-008qDe-Aw for pgsql-hackers@lists.postgresql.org; Tue, 24 Jun 2025 04:18:10 +0000 Received: from mail-yw1-x1130.google.com ([2607:f8b0:4864:20::1130]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uTv6l-003f68-1Y for pgsql-hackers@lists.postgresql.org; Tue, 24 Jun 2025 04:18:09 +0000 Received: by mail-yw1-x1130.google.com with SMTP id 00721157ae682-708d90aa8f9so116677b3.3 for ; Mon, 23 Jun 2025 21:18:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750738686; x=1751343486; 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=EZic9JQbRYYGR5mDYSg5vJ40u87NKm7tWY88AW51Xy8=; b=M15IQwv63fm81m52wnPl+qy5KD3On9waRnFtj8D2Vx5h+cXzvjDRe5US65iZKyRrbs 9Geibmy0as1ft8O1v7EXFyQpjO3MyTiY/NAorIE2T1QI441y5ygDuPOJ6p555BbOyvyF jIvJ+9yZrz92WZHuR4bUkkviLgwCJcegNTHwl2AFg9yr7ZPZxkI7okp8Ukd6F9006oGm DmDwUk4olqXfaOIO0Qewpkhfv49rKqeHon+ZEZr/fP7nBay20nNhDZzuQ0SmCH1IAkaP 2U6vHNLY4yjnQrChhihsncgQuOel0prAcwdVjbsOAyNf1b0qDKD0qF1d1mrxxWOncuBX 7pCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750738686; x=1751343486; 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=EZic9JQbRYYGR5mDYSg5vJ40u87NKm7tWY88AW51Xy8=; b=L143PZS2PsMMWV/2NPmWlTvLTYoli8MXG5oS/OG1KdLoR+bO/SeEQXR8UM7ulcwrih L7BHvXrEszAg6wjJ+hJ2/lPqu/nn34BWTo2Z7hj4e4a1DqFwmETiWzfqBuvQ08/m9W97 39Ahm8K8n8zlP4wPDP1Ea52x5j6mBxh0pVPApCavHHEfhKdWBXWn3cQoUVyklJZgS1C1 79VztYOGXfMSPVw9ZTDuTuJIRFgvc4VjIZPO5/3YY9WeJ36zBflC8/LZWG0Ldy0Cfha1 4g+puiISJ8ixGrSIoiEmex9GCNchMwZvt26SjsrULAh0E3k61F62T6ow9Nh2H5a7IbB6 1k7g== X-Forwarded-Encrypted: i=1; AJvYcCW/j1pynQCEZG4gC7n3xmtzo6i3LmUziuc4oGj270tbcL0N07vgjPo0KMBn6Rstc1ztf3EsVHGJRi5ZD8Op@lists.postgresql.org X-Gm-Message-State: AOJu0YxoDFrs2bBi8OxdctFUAfgl+daHuqgMo2yapMawdnCkEG8j8Sjp L00J3Ql5/PI0cGz07TfCz9mXXGEussN6yfeHBdM8OhHH+VvmA+cwCzmW5HV7SiP37iU6gGvKlN5 UUhP/y1bkSwYYalHywCkkmedVImFVF4w= X-Gm-Gg: ASbGncsluMAVXw/3YiVrr0VT9ckKWd3mEnuFz2j5MmkivgbpwDPviZuGNvm6O7LNfxs F7ypK2XtAw+wmfIx25qzJcrBf9JVn/KpRJl6qh8yNFxs+fH4qF+p3dOD6zdzMRXncP0+PJTZBTL jeFzKNveITjSmUSi2R4oGC1PLgR/IBkKI37ccf2Rt/42Jg/A== X-Google-Smtp-Source: AGHT+IHEwj0OJKDUxH8efFKoiyx9sgrdQM8b6ZwgTZd8M++BtdEEVZpAcvA3jiy0Tpit74EBJ5yLGl1nLlUKCUEDIQ8= X-Received: by 2002:a05:690c:350f:b0:70c:b983:f058 with SMTP id 00721157ae682-712c63ef84fmr205848827b3.14.1750738686475; Mon, 23 Jun 2025 21:18:06 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Tue, 24 Jun 2025 09:47:53 +0530 X-Gm-Features: Ac12FXz4F0QnW1r25mDfM6BPUDYLnGeOotx4e2MPX-z-7D7nSOIW_4mZ59Akk0c 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="0000000000008103210638499d9e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008103210638499d9e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 20 Jun 2025 at 09:28, Peter Smith wrote: > > On Thu, Jun 19, 2025 at 4:42=E2=80=AFPM Shlok Kyal wrote: > ... > > > 3. > > > TBH, I was wondering why a new catalog attribute was necessary... > > > > > > Can't you simply re-use the existing attribute "prattrs" attribute. > > > e.g. let's just define negative means exclude. > > > > > > e.g. a value of 1 3 means only the 1st and 3rd columns are published > > > e.g. a value of -1 -3 means all columns except 1st and 3rd columns ar= e published > > > e.g. a value of null mean all columns are published > > > > > > (mixes of negative and positive will not be possible) > > > > > > > Currently I have added a new attribute 'prexcludeattrs' in > > pg_publication_rel table. I used this approach because it will be > > easier for user to get the exclude column list, in code no extra > > processing is required to get the exclude column list. > > > > For an approach to use negative numbers for exclude columns. I see an > > advantage that we do not need to introduce a new column for > > pg_publication_rel. But in code, each time we want to get a column > > list or exclude column list we need an extra processing of 'prattrs' > > columns. Also I don't see any existing catalog table using a negative > > attribute for column list. > > > > Based on above observations, I feel that the current is better. > > > > Please correct me if I missed an advantage for the approach you suggest= ed. > > > > OK. Maybe using negative numbers was a bridge too far... > > But IMO it is not good to have 2 separate attributes for the lists. > Doing so implies they can coexist, but that is not true. I felt there > are not really 2 "kinds" of columns list anyway -- there is just a > "column list" which defines columns that are either included or > excluded from the publication determined by EXCEPT. > > Having dual lists gets weird/confusing to describe them -- you end up > continually having to refer to the other one to clarify behaviour. > > e.g. Does 'prattrs' value NULL mean publish everything? Well, no... > that depends if there is a non null 'prexcludeattrs' > e.g. Does 'prexcludeattrs' value NULL mean publish everything? Well, > no... that depends if there is a non null 'prattrs' > > Furthermore, all the code is doubling up referring to "column list" > and "exclude column list" -- code / docs / comments / error messages. > There are quite a lot of places the patch touches that I thought were > not really needed if you don't have 2 different kinds of column-lists. > > To summarise, I felt it would be better to just keep the existing > 'prattrs' as the one-and-only column list, but add another BOOLEAN > attribute to flag whether 'prattrs' columns should be included or > excluded. > > prattrs; prattrs_exclude; Means > -------------------------------------------- > 1 2 3 f only cols 1,2,3 will be published > 4 5 6 t only cols 4,5,6 will NOT be publishe= d > null f all cols are published (flag is ign= ored) > null t all cols are published (flag is ign= ored) > I agree with your point and also it would be a better approach. In patch 0001 an column 'prexcept' was added in pg_publication_rel. We use that only for publication with all tables. I have reused this column for patch 0003. If publication is not for all tables and the 'prexcept' flag is true, it implies that the columns in 'prattrs' are to be excluded from being published. I have included the changes for it in v14-0003 patch. > > > 5. > > > + > > > + Alter publication mypublication to add t= able > > > + users except column > > > + security_pin: > > > + > > > +ALTER PUBLICATION production_publication ADD TABLE users EXCEPT (sec= urity_pin); > > > > > > Those tags don't seem correct. e.g. "users" and "security_pin" are no= t > > > (???). > > > > > > Perhaps, every other example here is wrong too and you just copied > > > them? Anyway, something here looks wrong to me. > > > > > I saw different documents and usage of tags seems not well defined. > > For example for table we are using tags in document > > create_publication.sgml, update.sgml is used, in document > > table.sgml, advanced.sgml is used, and in > > logical-replication.sgml is used. Similarly for column > > names , or are used in different > > parts of the document. > > > > I kept the changed tag to for the column for this patch. > > Do you have any suggestions? > > No, for this patch I think it is best that you just follow nearby code > (as you are already doing). I plan to raise another thread to ask what > are the guidelines for this sort of markup which is currently used > inconsistently in different places. Thanks for starting a thread for it. > > ////////// > > Below are a few more review comments for v13-0003 > > =3D=3D=3D=3D=3D=3D > Commit message > > 1. > Typo /THe/The/ > > ~~~ Fixed > 2. > The new syntax allows specifying excluded column list when creating or > altering a publication. For example: > CREATE PUBLICATION pubname FOR TABLE tabname EXCEPT (exclude_column_list) > or > ALTER PUBLICATION pubname ADD TABLE tabname EXCEPT (exclude_column_list) > > ~ > > I felt since you say these "For example:" it would be better to give > real examples. > e.g. say "(col1,col2,col3)" instead of "(exclude_column_list)". > Fixed > ~~~ > > 3. > Typo /family of command/family of commands/ > > =3D=3D=3D=3D=3D=3D > doc/src/sgml/logical-replication.sgml > > 4. > I am not sure that it was a good idea to be making a new term called > an "exclude column list"... because in introduces a new concept of > something that sounds like it is a different kind of list, and now you > have to keep referring everywhere to both to "column list" versus > "exclude column list". All the doubling up add more complication I > think. > > IMO really there is just a "column list". Whether that list is for > exclusion or not just depends on the presence of EXCEPT. So I felt > maybe all places mentioning "exclude column list" could be rephrased. > > =3D=3D=3D=3D=3D=3D > src/backend/catalog/pg_publication.c > > 5. > +/* > + * Returns true if the relation has exluded column list associated with = the > + * publication, false otherwise. > + * > + * If a exclude column list is found, the corresponding bitmap is return= ed > + * through the cols parameter, if provided. The bitmap is constructed > within the > + * given memory context (mcxt). > + */ > + > > Typo /exluded column/an excluded column/ > Typo /exclude column list/excluded column list/ > updated the comment according to latest implementation > ~~~ > > 6. > +/* > + * pub_exclude_collist_validate > + * Process and validate the 'excluded columns' list and ensure the colum= ns > + * are all valid to exclude from publication. Checks for and raises an > + * ERROR for any unknown columns, system columns, duplicate columns, or > + * generated columns. > + * > > Why can't you exclude generated columns? > > e.g. Maybe PUBLICATION says publish_generated_columns=3Dstored and there > are 100s of such columns, but the user just wants to exclude one of > them. Why say they cannot do that? Hmm. Perhaps this is being already > handled elsewhere, in which case this comment still seems misleading. > I have removed this restriction. Now we can specify stored generated columns in EXCEPT (column_list) when we use the 'publish_generated_columns' flag. > =3D=3D=3D=3D=3D=3D > src/backend/commands/publicationcmds.c > > 7. > + * With REPLICA IDENTITY FULL, no column list and no excluded column > + * list is allowed. > > Really, just "no column list is allowed." same as it said before. > > =3D=3D=3D=3D=3D=3D Fixed Thanks and Regards, Shlok Kyal --0000000000008103210638499d9e Content-Type: application/octet-stream; name="v14-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v14-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mca0foqu0 RnJvbSA4NWFlOWJkOWEwOTVhN2Q5ZDYzMDQ0YWViYWE3MDU3NDIyYzAxM2YxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTE6NDE6MTggKzA1MzAKU3ViamVjdDogW1BBVENIIHYx NCAxLzNdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAog cmVzZXQgdGhlIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFk ZHMgYSBuZXcgUkVTRVQgY2xhdXNlIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVz ZXQKdGhlIHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0IHN0YXRlIHdoaWNoIGluY2x1ZGVzIHJl c2V0dGluZyB0aGUgcHVibGljYXRpb24KcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVTIGZs YWcgdG8gZmFsc2UgYW5kIGRyb3BwaW5nIHRoZSByZWxhdGlvbnMgYW5kCnNjaGVtYXMgdGhhdCBh cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KVXNhZ2U6CkFMVEVSIFBVQkxJQ0FU SU9OIHB1YjEgUkVTRVQ7Ci0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sICAgfCAgMzUgKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMgICAgfCAxMTEgKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgIHwgICA5ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAg ICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5v dXQgfCAxMjAgKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsICAgICAgfCAgNTcgKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAzMjEg aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJs aWNhdGlvbi5zZ21sCmluZGV4IGQ1ZWEzODNlOGJjLi4wNjQ1MmFmOTIxNCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMjcsNiArMjcsNyBAQCBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IERST1AgPHJlcGxhYwogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBD VVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQogQUxURVIgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBS RU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVTRVQKIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVi bGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCkBAIC02 OSwxOCArNzAsMzIgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgPC9wYXJhPgogCiAgIDxw YXJhPgotICAgVGhlIHJlbWFpbmluZyB2YXJpYW50cyBjaGFuZ2UgdGhlIG93bmVyIGFuZCB0aGUg bmFtZSBvZiB0aGUgcHVibGljYXRpb24uCisgICBUaGUgPGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+ IGNsYXVzZSB3aWxsIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlCisgICBwdWJsaWNhdGlvbi4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxsaXRlcmFsPlJFTkFNRTwvbGl0ZXJhbD4gY2xh dXNlIHdpbGwgY2hhbmdlIHRoZSBuYW1lIG9mIHRoZQorICAgcHVibGljYXRpb24uCisgIDwvcGFy YT4KKworICA8cGFyYT4KKyAgIFRoZSA8bGl0ZXJhbD5SRVNFVDwvbGl0ZXJhbD4gY2xhdXNlIHdp bGwgcmVzZXQgdGhlIHB1YmxpY2F0aW9uIHRvIHRoZQorICAgZGVmYXVsdCBzdGF0ZSB3aGljaCBp bmNsdWRlcyByZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcKKyAg IDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGZsYWcgdG8gPGxpdGVyYWw+ZmFsc2U8L2xp dGVyYWw+IGFuZAorICAgZHJvcHBpbmcgYWxsIHJlbGF0aW9ucyBhbmQgc2NoZW1hcyB0aGF0IGFy ZSBhc3NvY2lhdGVkIHdpdGggdGhlCisgICBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxw YXJhPgogICAgWW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxU RVIgUFVCTElDQVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNh dGlvbiBhZGRpdGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxp dGVyYWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAotICAgPGxpdGVyYWw+U0VU IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gcmVxdWlyZXMgdGhl Ci0gICBpbnZva2luZyB1c2VyIHRvIGJlIGEgc3VwZXJ1c2VyLgotICAgVG8gYWx0ZXIgdGhlIG93 bmVyLCB5b3UgbXVzdCBiZSBhYmxlIHRvIDxsaXRlcmFsPlNFVCBST0xFPC9saXRlcmFsPiB0byB0 aGUKLSAgIG5ldyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgPGxpdGVyYWw+ Q1JFQVRFPC9saXRlcmFsPgotICAgcHJpdmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4KKyAgIFRoZSA8 bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5TRVQg VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKKyAgIDxsaXRl cmFsPlJFU0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52b2tpbmcg dXNlciB0byBiZSBhCisgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3Qg YmUgYWJsZSB0bworICAgPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+IHRvIHRoZSBuZXcgb3du aW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVBVEU8L2xp dGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuCiAgICBBbHNvLCB0aGUgbmV3IG93bmVy IG9mIGEKICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9y LWFsbC10YWJsZXMiPjxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPjwvbGluaz4KICAg IG9yIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLXRhYmxl cy1pbi1zY2hlbWEiPjxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPjwvbGlu az4KQEAgLTIzMCw2ICsyNDUsMTIgQEAgQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRp b24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKICAgIDxzdHJ1Y3RuYW1l PnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgog QUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMs IGRlcGFydG1lbnRzLCBUQUJMRVMgSU4gU0NIRU1BIHByb2R1Y3Rpb247Cis8L3Byb2dyYW1saXN0 aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAgIFJlc2V0IHRoZSBwdWJsaWNhdGlvbiA8c3RydWN0 bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGlu Zz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gUkVTRVQ7CiA8L3By b2dyYW1saXN0aW5nPjwvcGFyYT4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jCmluZGV4IDBiMjNkOTRjMzhlLi4xNTlkYzM3ODFkMCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTQ5LDYgKzQ5LDE1IEBACiAjaW5jbHVk ZSAidXRpbHMvdmFybGVuYS5oIgogCiAKKy8qIENSRUFURSBQVUJMSUNBVElPTiBkZWZhdWx0IHZh bHVlcyBmb3IgZmxhZ3MgYW5kIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgUFVC X0RFRkFVTFRfQUNUSU9OX0lOU0VSVCB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9V UERBVEUgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFIHRydWUKKyNkZWZp bmUgUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRf VklBX1JPT1QgZmFsc2UKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyBmYWxzZQorI2Rl ZmluZSBQVUJfREVGQVVMVF9HRU5DT0xTIFBVQkxJU0hfR0VOQ09MU19OT05FCisKIC8qCiAgKiBJ bmZvcm1hdGlvbiB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjb2x1bW5zIGluIHRoZSByb3cgZmlsdGVy IGV4cHJlc3Npb24uIFNlZQogICogY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlciBmb3Ig ZGV0YWlscy4KQEAgLTkxLDEyICsxMDAsMTIgQEAgcGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhQ YXJzZVN0YXRlICpwc3RhdGUsCiAJKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnNfZ2l2ZW4gPSBm YWxzZTsKIAogCS8qIGRlZmF1bHRzICovCi0JcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gdHJ1ZTsK LQlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSB0cnVlOwotCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9 IHRydWU7Ci0JcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSB0cnVlOwotCSpwdWJsaXNoX3ZpYV9w YXJ0aXRpb25fcm9vdCA9IGZhbHNlOwotCSpwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gUFVC TElTSF9HRU5DT0xTX05PTkU7CisJcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gUFVCX0RFRkFVTFRf QUNUSU9OX0lOU0VSVDsKKwlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSBQVUJfREVGQVVMVF9BQ1RJ T05fVVBEQVRFOworCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9E RUxFVEU7CisJcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJV TkNBVEU7CisJKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gUFVCX0RFRkFVTFRfVklBX1JP T1Q7CisJKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBQVUJfREVGQVVMVF9HRU5DT0xTOwog CiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZvcmVhY2gobGMsIG9wdGlvbnMpCkBAIC0xMTg3LDYg KzExOTYsOTQgQEAgSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiAJCUNh Y2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CiB9CiAKKy8qCisgKiBSZXNldCB0aGUgcHVibGlj YXRpb24uCisgKgorICogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcg QUxMIFRBQkxFUyBmbGFnIHRvIGZhbHNlIGFuZCBkcm9wCisgKiBhbGwgcmVsYXRpb25zIGFuZCBz Y2hlbWFzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uCisgKi8KK3N0 YXRpYyB2b2lkCitBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKKwkJCQkJICBSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0 dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRp b24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJ ICAgKnNjaGVtYXMgPSBOSUw7CisJTGlzdAkgICAqcmVscyA9IE5JTDsKKwlib29sCQludWxsc1tO YXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVwbGFjZXNbTmF0dHNfcGdfcHVibGljYXRp b25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCU9iamVjdEFkZHJl c3Mgb2JqOworCUxpc3RDZWxsICAgKmxjOworCU9pZAkJCXByaWQ7CisKKwkvKiBSRVNFVCBwdWJs aWNhdGlvbiByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwK KwkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uIikpOwor CisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFs c2UsIHNpemVvZihudWxscykpOworCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBs YWNlcykpOworCisJLyogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKwl2YWx1 ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJpbnNlcnQgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJf REVGQVVMVF9BQ1RJT05fSU5TRVJUKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1 Ymluc2VydCAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVw ZGF0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUpOworCXJl cGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVidXBkYXRlIC0gMV0gPSB0cnVlOworCisJdmFs dWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViZGVsZXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVC X0RFRkFVTFRfQUNUSU9OX0RFTEVURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9w dWJkZWxldGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0 cnVuY2F0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSk7 CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gdHJ1ZTsK KworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9IEJvb2xHZXRE YXR1bShQVUJfREVGQVVMVF9WSUFfUk9PVCk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJ2aWFyb290IC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25f cHViZ2VuY29scyAtIDFdID0gQ2hhckdldERhdHVtKFBVQl9ERUZBVUxUX0dFTkNPTFMpOworCXJl cGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29scyAtIDFdID0gdHJ1ZTsKKworCS8q IFNldCBBTEwgVEFCTEVTIGZsYWcgdG8gZmFsc2UgKi8KKwlpZiAocHViZm9ybS0+cHViYWxsdGFi bGVzKQorCXsKKwkJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0g PSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyk7CisJCXJlcGxhY2VzW0FudW1f cGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSB0cnVlOworCQlDYWNoZUludmFsaWRh dGVSZWxjYWNoZUFsbCgpOworCX0KKworCXR1cCA9IGhlYXBfbW9kaWZ5X3R1cGxlKHR1cCwgUmVs YXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAorCQkJCQkJCXJlcGxhY2VzKTsKKwor CS8qIFVwZGF0ZSB0aGUgY2F0YWxvZy4gKi8KKwlDYXRhbG9nVHVwbGVVcGRhdGUocmVsLCAmdHVw LT50X3NlbGYsIHR1cCk7CisKKwkvKiBEcm9wIHRoZSBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0 aGUgcHVibGljYXRpb24gKi8KKwlzY2hlbWFzID0gR2V0UHVibGljYXRpb25TY2hlbWFzKHB1Ymlk KTsKKwlQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKHB1YmlkLCBzY2hlbWFzLCBmYWxzZSk7CisKKwkv KiBEcm9wIHRoZSByZWxhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiAqLwor CXJlbHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05fUEFSVF9S T09UKTsKKwlmb3JlYWNoKGxjLCByZWxzKQorCXsKKwkJT2lkCQkJcmVsaWQgPSBsZmlyc3Rfb2lk KGxjKTsKKworCQlwcmlkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OUkVMTUFQLCBBbnVt X3BnX3B1YmxpY2F0aW9uX3JlbF9vaWQsCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShyZWxp ZCksCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOworCQlpZiAoIU9pZElzVmFs aWQocHJpZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgaXMgbm90IHBhcnQg b2YgdGhlIHB1YmxpY2F0aW9uIiwKKwkJCQkJCQlnZXRfcmVsX25hbWUocmVsaWQpKSkpOworCisJ CU9iamVjdEFkZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQsIHByaWQpOwor CQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAwKTsKKwl9Cit9CisKIC8qCiAg KiBBZGQgb3IgcmVtb3ZlIHRhYmxlIHRvL2Zyb20gcHVibGljYXRpb24uCiAgKi8KQEAgLTE1MDEs NiArMTU5OCw4IEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAogCWlmIChzdG10LT5vcHRpb25zKQogCQlBbHRlclB1Ymxp Y2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsKKwllbHNlIGlmIChzdG10LT5h Y3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNhdGlvbikKKwkJQWx0ZXJQdWJsaWNhdGlvblJlc2V0KHBz dGF0ZSwgc3RtdCwgcmVsLCB0dXApOwogCWVsc2UKIAl7CiAJCUxpc3QJICAgKnJlbGF0aW9ucyA9 IE5JTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CmluZGV4IDUwZjUzMTU5ZDU4Li5lMTZmNDgzMjk2MyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC0xMDc2MCw2ICsxMDc2MCw4IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25PYmpT cGVjCiAgKgogICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgcHViX29iaiBbLCAuLi5dCiAg KgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAorICoKICAqIHB1Yl9vYmogaXMgb25l IG9mOgogICoKICAqCQlUQUJMRSB0YWJsZV9uYW1lIFssIC4uLl0KQEAgLTEwODA2LDYgKzEwODA4 LDEzIEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJCQluLT5hY3Rpb24gPSBBUF9Ecm9wT2Jq ZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFVCTElDQVRJ T04gbmFtZSBSRVNFVAorCQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtl Tm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJ bi0+YWN0aW9uID0gQVBfUmVzZXRQdWJsaWNhdGlvbjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJ CQkJfQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmlu ZGV4IDJjMGI0ZjI4YzE0Li4yM2NiMjdiNGIwNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAt MjI0Miw3ICsyMjQyLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAK IAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRF UiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRS T1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCIpOworCQlDT01QTEVURV9XSVRIKCJB REQiLCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiUkVTRVQiLCAiU0VUIik7CiAJ LyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVfV0lUSCgi VEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGJh MTI2NzhkMWNiLi45MDViNThlMDI3OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDI3Miw2 ICs0MjcyLDcgQEAgdHlwZWRlZiBlbnVtIEFsdGVyUHVibGljYXRpb25BY3Rpb24KIAlBUF9BZGRP YmplY3RzLAkJCQkvKiBhZGQgb2JqZWN0cyB0byBwdWJsaWNhdGlvbiAqLwogCUFQX0Ryb3BPYmpl Y3RzLAkJCQkvKiByZW1vdmUgb2JqZWN0cyBmcm9tIHB1YmxpY2F0aW9uICovCiAJQVBfU2V0T2Jq ZWN0cywJCQkJLyogc2V0IGxpc3Qgb2Ygb2JqZWN0cyAqLworCUFQX1Jlc2V0UHVibGljYXRpb24s CQkvKiByZXNldCB0aGUgcHVibGljYXRpb24gKi8KIH0gQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbjsK IAogdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQdWJsaWNhdGlvblN0bXQKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggNGRlOTZjMDRmOWQuLmIyZmZlMGE4YzIwIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMTkyMyw2ICsx OTIzLDEyNiBAQCBUYWJsZXM6CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjE7CiBEUk9QIFBVQkxJQ0FU SU9OIHB1YjI7CiBEUk9QIFRBQkxFIGdlbmNvbHM7CistLSBUZXN0cyBmb3IgQUxURVIgUFVCTElD QVRJT04gLi4uIFJFU0VUCitDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOworQ1JFQVRFIFRBQkxFIHB1 Yl9zY2gxLnRibDEgKGEgaW50KTsKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsK K0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOworUkVTRVQg Y2xpZW50X21pbl9tZXNzYWdlczsKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jl c2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEg cm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2No MS50YmwxOworLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGlj YXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgor VGFibGVzOgorICAgICJwdWJfc2NoMS50YmwxIgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Ymxp YzsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkFMTCIKK0xJTkUgMTogQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViLi4u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFZlcmlm eSB0aGF0IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBl ZCBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8 IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8 IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJ U0ggPSAnJyk7CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9O X1JPT1QgPSAndHJ1ZScpOworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9S T09UJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0 CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3Qg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgdAorKDEgcm93 KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1 Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVk IGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAg ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg U0VUIChQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TID0gc3RvcmVkKTsKKy0tIFZlcmlmeSB0aGF0 ICdQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVy YXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHN0b3Jl ZCAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKKy0tIFZlcmlm eSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7 CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCitFUlJPUjog IG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCitTRVQgUk9MRSByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXI7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitEUk9Q IFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIFJFU0VUIGNsaWVu dF9taW5fbWVzc2FnZXM7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDY4MDAxZGU0MDAwLi4xNWIyYjFjZmQy OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTIyMiw2ICsxMjIyLDYz IEBAIERST1AgUFVCTElDQVRJT04gcHViMTsKIERST1AgUFVCTElDQVRJT04gcHViMjsKIERST1Ag VEFCTEUgZ2VuY29sczsKIAorLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNF VAorQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChh IGludCk7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CisKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CitcZFJw KyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwor XGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFE RCBUQUJMRSBwdWJfc2NoMS50YmwxOworCistLSBWZXJpZnkgdGhhdCB0YWJsZXMgYXNzb2NpYXRl ZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBhZnRlciBSRVNFVAorXGRScCsgdGVz dHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnAr IHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxM IFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworCistLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29j aWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnAr IHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VU IChQVUJMSVNIID0gJycpOworCistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworCist LSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyBy ZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBTRVQgKFBVQkxJU0hfR0VORVJBVEVEX0NPTFVNTlMgPSBzdG9yZWQpOworCistLSBW ZXJpZnkgdGhhdCAnUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUycgcGFyYW1ldGVyIGlzIHJlc2V0 CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNl ciBjYW4gcmVzZXQgYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyOworCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitEUk9QIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKKwogUkVTRVQgY2xpZW50X21pbl9t ZXNzYWdlczsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIsIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7Ci0tIAoyLjM0LjEK Cg== --0000000000008103210638499d9e Content-Type: application/octet-stream; name="v14-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v14-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mca0for02 RnJvbSAxNzZhZDQ5MWE1ZWE2ZDdlZWU4MjIwYTdlOTgxMDUwMzQ0NWQ4NDQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjQgSnVuIDIwMjUgMDE6MzU6NTUgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx NCAzLzNdIFNraXAgcHVibGlzaGluZyB0aGUgY29sdW1ucyBzcGVjaWZpZWQgaW4gRk9SIFRBQkxF CiBFWENFUFQKCkEgbmV3ICJUQUJMRSB0YWJsZV9uYW1lIEVYQ0VQVCAoY29sdW1uX2xpc3QpIiBj bGF1c2UgZm9yIENSRUFURS9BTFRFUgpQVUJMSUNBVElPTiBhbGxvd3Mgb25lIG9yIG1vcmUgY29s dW1ucyB0byBiZSBleGNsdWRlZC4gVGhlIHB1Ymxpc2hlcgp3aWxsIG5vdCBzZW5kIHRoZSBkYXRh IG9mIGV4Y2x1ZGVkIGNvbHVtbnMgdG8gdGhlIHN1YnNjcmliZXIuCgpUaGUgbmV3IHN5bnRheCBh bGxvd3Mgc3BlY2lmeWluZyBleGNsdWRlZCBjb2x1bW4gbGlzdCB3aGVuIGNyZWF0aW5nIG9yCmFs dGVyaW5nIGEgcHVibGljYXRpb24uIEZvciBleGFtcGxlOgpDUkVBVEUgUFVCTElDQVRJT04gcHVi bmFtZSBGT1IgVEFCTEUgdGFibmFtZSBFWENFUFQgKGNvbDEsIGNvbDIsIGNvbDMpCm9yCkFMVEVS IFBVQkxJQ0FUSU9OIHB1Ym5hbWUgQUREIFRBQkxFIHRhYm5hbWUgRVhDRVBUIChjb2wxLCBjb2wy LCBjb2wzKQoKQ29sdW1uIGxpc3Qgc3BlY2lmZWQgd2l0aCBFWENFUFQgaXMgc3RvcmVkIGluIGNv bHVtbiAicHJhdHRycyIgaW4gdGFibGUKInBnX3B1YmxpY2F0aW9uX3JlbCIgYW5kIGFsc28gY29s dW1uICJwcmV4Y2VwdCIgaXMgc2V0IHRvICJ0cnVlIiwgdG8gbWFpbnRhaW4KdGhlIGNvbHVtbiBs aXN0IHRoYXQgdXNlciB3YW50cyB0byBleGNsdWRlIGZyb20gdGhlIHB1YmxpY2F0aW9uLgoKcGdf ZHVtcCBpcyB1cGRhdGVkIHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCBjb2x1bW4g bGlzdCBvZiB0aGUKcHVibGljYXRpb24uCgpUaGUgcHNxbCBcZCBmYW1pbHkgb2YgY29tbWFuZHMg Y2FuIG5vdyBkaXNwbGF5IGV4Y2x1ZGVkIGNvbHVtbiBsaXN0LiBlLmcuCnBzcWwgXGRScCsgdmFy aWFudCB3aWxsIG5vdyBkaXNwbGF5IGFzc29jaWF0ZWQgIkVYQ0VQVCAoY29sdW1uX2xpc3QpIiBp ZgphbnkuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgIDUgKy0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgICAgICAgICB8 IDk3ICsrKysrKysrKysrKysrLS0tLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRp b24uc2dtbCAgICAgICB8IDEwICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlv bi5zZ21sICAgICAgfCAxNyArKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u LmMgICAgICAgICAgfCA5MiArKysrKysrKysrKysrKystLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3B1YmxpY2F0aW9uY21kcy5jICAgICAgICB8IDM1ICsrKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysKIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8IDUyICsrKysrKysrLS0KIHNy Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrLQogc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgODUgKysrKysrKysrKyst LS0tLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAgICAgIHwgMTAg Ky0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggICAgICB8ICA1ICst CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAgfCA2NyArKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgICAg fCA0NiArKysrKysrKysKIC4uLi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgICAg ICAgICB8IDk0ICsrKysrKysrKysrKysrKysrLQogMTYgZmlsZXMgY2hhbmdlZCwgNjA3IGluc2Vy dGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggNGUzN2M5MjhiNDQu LjViYmQ5NWFhZWJiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNjU3Myw3ICs2NTczLDEwIEBAIFNDUkFN LVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJs ZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8c3RydWN0ZmllbGQ+cHJleGNlcHQ8L3N0cnVjdGZp ZWxkPiA8dHlwZT5ib29sPC90eXBlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+Ci0gICAg ICAgVHJ1ZSBpZiB0aGUgcmVsYXRpb24gbXVzdCBiZSBleGNsdWRlZAorICAgICAgIFRydWUgaWYg dGhlIHJlbGF0aW9uIG9yIGNvbHVtbiBsaXN0IG11c3QgYmUgZXhjbHVkZWQuIElmIHB1YmxpY2F0 aW9uIGlzCisgICAgICAgY3JlYXRlZCA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4g YW5kIGl0IGlzIHNwZWNpZmllZCBhcyB0cnVlLAorICAgICAgIHRoZSByZWxhdGlvbiBzaG91bGQg YmUgZXhjbHVkZWQuIEVsc2UgaWYgaXQgaXMgdHJ1ZSB0aGUgY29sdW1ucyBpbgorICAgICAgIDxs aXRlcmFsPnByYXR0cnM8L2xpdGVyYWw+IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIGJlaW5nIHB1 Ymxpc2hlZC4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9s b2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggM2QwZDI5Y2Y4YjEuLjJkMDFlNjc5NjkxIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTEzNDAsMTAgKzEzNDAsMTAg QEAgUHVibGljYXRpb25zOgogICA8dGl0bGU+Q29sdW1uIExpc3RzPC90aXRsZT4KIAogICA8cGFy YT4KLSAgIEVhY2ggcHVibGljYXRpb24gY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB3aGljaCBjb2x1 bW5zIG9mIGVhY2ggdGFibGUgYXJlCi0gICByZXBsaWNhdGVkIHRvIHN1YnNjcmliZXJzLiBUaGUg dGFibGUgb24gdGhlIHN1YnNjcmliZXIgc2lkZSBtdXN0IGhhdmUgYXQKLSAgIGxlYXN0IGFsbCB0 aGUgY29sdW1ucyB0aGF0IGFyZSBwdWJsaXNoZWQuIElmIG5vIGNvbHVtbiBsaXN0IGlzIHNwZWNp ZmllZCwKLSAgIHRoZW4gYWxsIGNvbHVtbnMgb24gdGhlIHB1Ymxpc2hlciBhcmUgcmVwbGljYXRl ZC4KKyAgIEVhY2ggcHVibGljYXRpb24gY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB3aGljaCBjb2x1 bW5zIG9mIGVhY2ggdGFibGUgc2hvdWxkIGJlCisgICByZXBsaWNhdGVkIG9yIGV4Y2x1ZGVkIGZy b20gcmVwbGljYXRpb24uIE9uIHRoZSBzdWJzY3JpYmVyIHNpZGUsIHRoZSB0YWJsZQorICAgbXVz dCBpbmNsdWRlIGF0IGxlYXN0IGFsbCB0aGUgY29sdW1ucyB0aGF0IGFyZSBwdWJsaXNoZWQuIElm IG5vIGNvbHVtbiBsaXN0CisgICBpcyBwcm92aWRlZCwgYWxsIGNvbHVtbnMgZnJvbSB0aGUgcHVi bGlzaGVyIGFyZSByZXBsaWNhdGVkIGJ5IGRlZmF1bHQuCiAgICBTZWUgPHhyZWYgbGlua2VuZD0i c3FsLWNyZWF0ZXB1YmxpY2F0aW9uIi8+IGZvciBkZXRhaWxzIG9uIHRoZSBzeW50YXguCiAgIDwv cGFyYT4KIApAQCAtMTM1Niw5ICsxMzU2LDExIEBAIFB1YmxpY2F0aW9uczoKICAgPC9wYXJhPgog CiAgIDxwYXJhPgotICAgSWYgbm8gY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkLCBhbnkgY29sdW1u cyBhZGRlZCB0byB0aGUgdGFibGUgbGF0ZXIgYXJlCi0gICBhdXRvbWF0aWNhbGx5IHJlcGxpY2F0 ZWQuIFRoaXMgbWVhbnMgdGhhdCBoYXZpbmcgYSBjb2x1bW4gbGlzdCB3aGljaCBuYW1lcwotICAg YWxsIGNvbHVtbnMgaXMgbm90IHRoZSBzYW1lIGFzIGhhdmluZyBubyBjb2x1bW4gbGlzdCBhdCBh bGwuCisgICBJZiBubyBjb2x1bW4gbGlzdCBvciBhIGNvbHVtbiBsaXN0IHdpdGggRVhDRVBUIGlz IHNwZWNpZmllZCwgYW55IGNvbHVtbnMKKyAgIGFkZGVkIHRvIHRoZSB0YWJsZSBsYXRlciBhcmUg YXV0b21hdGljYWxseSByZXBsaWNhdGVkLiBUaGlzIG1lYW5zIHRoYXQgaGF2aW5nCisgICBhIGNv bHVtbiBsaXN0IHdoaWNoIG5hbWVzIGFsbCBjb2x1bW5zIGlzIG5vdCB0aGUgc2FtZSBhcyBoYXZp bmcgbm8KKyAgIGNvbHVtbiBsaXN0IGF0IGFsbC4gSWYgYW4gY29sdW1uIGxpc3QgaXMgc3BlY2lm aWVkLCBhbnkgY29sdW1ucyBhZGRlZCB0byB0aGUKKyAgIHRhYmxlIGxhdGVyIGFyZSBhdXRvbWF0 aWNhbGx5IHJlcGxpY2F0ZWQuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTEzNzAsOCArMTM3 MiwxMyBAQCBQdWJsaWNhdGlvbnM6CiAgICBHZW5lcmF0ZWQgY29sdW1ucyBjYW4gYWxzbyBiZSBz cGVjaWZpZWQgaW4gYSBjb2x1bW4gbGlzdC4gVGhpcyBhbGxvd3MKICAgIGdlbmVyYXRlZCBjb2x1 bW5zIHRvIGJlIHB1Ymxpc2hlZCwgcmVnYXJkbGVzcyBvZiB0aGUgcHVibGljYXRpb24gcGFyYW1l dGVyCiAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgt cHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+Ci0gICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRl ZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4uIFNlZQotICAgPHhyZWYgbGlua2VuZD0ibG9naWNh bC1yZXBsaWNhdGlvbi1nZW5jb2xzIi8+IGZvciBkZXRhaWxzLgorICAgPGxpdGVyYWw+cHVibGlz aF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xpbms+LiBHZW5lcmF0ZWQgY29sdW1ucyBj YW4KKyAgIGJlIGluY2x1ZGVkIGluIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoIEVYQ0VQVCBj bGF1c2UgaWYgcHVibGljYXRpb24KKyAgIHBhcmFtZXRlcgorICAgPGxpbmsgbGlua2VuZD0ic3Fs LWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRoLXB1Ymxpc2gtZ2VuZXJhdGVkLWNvbHVtbnMi PgorICAgPGxpdGVyYWw+cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xpbms+ IGlzIG5vdCBzZXQgdG8KKyAgIDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+LiBTcGVjaWZpZWQgZ2Vu ZXJhdGVkIGNvbHVtbnMgd2lsbCBub3QgYmUgcHVibGlzaGVkLgorICAgU2VlIDx4cmVmIGxpbmtl bmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tZ2VuY29scyIvPiBmb3IgZGV0YWlscy4KICAgPC9wYXJh PgogCiAgIDxwYXJhPgpAQCAtMTM5MSwxMSArMTM5OCwxMyBAQCBQdWJsaWNhdGlvbnM6CiAKICAg PHBhcmE+CiAgICBJZiBhIHB1YmxpY2F0aW9uIHB1Ymxpc2hlcyA8Y29tbWFuZD5VUERBVEU8L2Nv bW1hbmQ+IG9yCi0gICA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+IG9wZXJhdGlvbnMsIGFueSBj b2x1bW4gbGlzdCBtdXN0IGluY2x1ZGUgdGhlCi0gICB0YWJsZSdzIHJlcGxpY2EgaWRlbnRpdHkg Y29sdW1ucyAoc2VlCisgICA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+IG9wZXJhdGlvbnMsIGFu eSBjb2x1bW4gbGlzdCBtdXN0IGluY2x1ZGUgdGFibGUncworICAgcmVwbGljYSBpZGVudGl0eSBj b2x1bW5zIGFuZCBhbnkgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggRVhDRVBUIGNsYXVzZQor ICAgbXVzdCBub3QgaW5jbHVkZSB0aGUgdGFibGUncyByZXBsaWNhIGlkZW50aXR5IGNvbHVtbnMg KHNlZQogICAgPHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydGFibGUtcmVwbGljYS1pZGVudGl0eSIv PikuCiAgICBJZiBhIHB1YmxpY2F0aW9uIHB1Ymxpc2hlcyBvbmx5IDxjb21tYW5kPklOU0VSVDwv Y29tbWFuZD4gb3BlcmF0aW9ucywgdGhlbgotICAgdGhlIGNvbHVtbiBsaXN0IG1heSBvbWl0IHJl cGxpY2EgaWRlbnRpdHkgY29sdW1ucy4KKyAgIHRoZSBjb2x1bW4gbGlzdCBtYXkgb21pdCByZXBs aWNhIGlkZW50aXR5IGNvbHVtbnMgYW5kIHRoZSBjb2x1bW4gbGlzdAorICAgc3BlY2lmaWVkIHdp dGggRVhDRVBUIGNsYXVzZSBtYXkgaW5jbHVkZSByZXBsaWNhIGlkZW50aXR5IGNvbHVtbnMuCiAg IDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTE0NDAsMTggKzE0NDksMjAgQEAgUHVibGljYXRpb25z OgogICAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KIAogICAgPHBhcmE+Ci0gICAgQ3JlYXRlIGEg dGFibGUgPGxpdGVyYWw+dDE8L2xpdGVyYWw+IHRvIGJlIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBl eGFtcGxlLgorICAgIENyZWF0ZSB0YWJsZXMgPGxpdGVyYWw+dDE8L2xpdGVyYWw+LCA8bGl0ZXJh bD50MjwvbGl0ZXJhbD4gdG8gYmUgdXNlZCBpbiB0aGUKKyAgICBmb2xsb3dpbmcgZXhhbXBsZS4K IDxwcm9ncmFtbGlzdGluZz4KIC8qIHB1YiAjICovIENSRUFURSBUQUJMRSB0MShpZCBpbnQsIGEg dGV4dCwgYiB0ZXh0LCBjIHRleHQsIGQgdGV4dCwgZSB0ZXh0LCBQUklNQVJZIEtFWShpZCkpOwor LyogcHViICMgKi8gQ1JFQVRFIFRBQkxFIHQyKGlkIGludCwgYSB0ZXh0LCBiIHRleHQsIGMgdGV4 dCwgZCB0ZXh0LCBlIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CiA8L3Byb2dyYW1saXN0aW5nPjwv cGFyYT4KIAogICAgPHBhcmE+CiAgICAgQ3JlYXRlIGEgcHVibGljYXRpb24gPGxpdGVyYWw+cDE8 L2xpdGVyYWw+LiBBIGNvbHVtbiBsaXN0IGlzIGRlZmluZWQgZm9yCi0gICAgdGFibGUgPGxpdGVy YWw+dDE8L2xpdGVyYWw+IHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhhdCB3aWxs IGJlCi0gICAgcmVwbGljYXRlZC4gTm90aWNlIHRoYXQgdGhlIG9yZGVyIG9mIGNvbHVtbiBuYW1l cyBpbiB0aGUgY29sdW1uIGxpc3QgZG9lcwotICAgIG5vdCBtYXR0ZXIuCisgICAgdGFibGUgPGxp dGVyYWw+dDE8L2xpdGVyYWw+IGFuZCBhIGNvbHVtbiBsaXN0IGlzIGRlZmluZWQgZm9yIHRhYmxl CisgICAgPGxpdGVyYWw+dDI8L2xpdGVyYWw+IHdpdGggRVhDRVBUIGNsYXVzZSB0byByZWR1Y2Ug dGhlIG51bWJlciBvZiBjb2x1bW5zIHRoYXQgd2lsbCBiZQorICAgIHJlcGxpY2F0ZWQuIE5vdGlj ZSB0aGF0IHRoZSBvcmRlciBvZiBjb2x1bW4gbmFtZXMgaW4gdGhlIGNvbHVtbiBsaXN0cyBkb2Vz IG5vdCBtYXR0ZXIuCiA8cHJvZ3JhbWxpc3Rpbmc+Ci0vKiBwdWIgIyAqLyBDUkVBVEUgUFVCTElD QVRJT04gcDEgRk9SIFRBQkxFIHQxIChpZCwgYiwgYSwgZCk7CisvKiBwdWIgIyAqLyBDUkVBVEUg UFVCTElDQVRJT04gcDEgRk9SIFRBQkxFIHQxIChpZCwgYiwgYSwgZCksIHQyIEVYQ0VQVCAoZCwg YSk7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICAgIDxwYXJhPgpAQCAtMTQ1OSwxMiAr MTQ3MCwxMyBAQCBQdWJsaWNhdGlvbnM6CiAgICAgIGZvciBlYWNoIHB1YmxpY2F0aW9uLgogPHBy b2dyYW1saXN0aW5nPgogLyogcHViICMgKi8gXGRScCsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiBwMQotICBPd25lciAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290Ci0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCi0gcG9zdGdyZXMgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFB1YmxpY2F0aW9uIHAxCisgT3duZXIgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QK Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyB1YnVudHUgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAg ICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50MSIgKGlkLCBhLCBiLCBkKQorICAg ICJwdWJsaWMudDIiIEVYQ0VQVCAoYSwgZCkKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAg ICAgPHBhcmE+CkBAIC0xNDg1LDIzICsxNDk3LDQxIEBAIEluZGV4ZXM6CiAgICAgInQxX3BrZXki IFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCiBQdWJsaWNhdGlvbnM6CiAgICAgInAxIiAoaWQsIGEs IGIsIGQpCisKKy8qIHB1YiAjICovIFxkIHQyCisgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJs aWMudDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVs dAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisg aWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwKKyBhICAgICAgfCB0ZXh0 ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8CisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwKKyBkICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGUgICAgICB8 IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8CitJbmRleGVzOgorICAgICJ0Ml9wa2V5 IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorUHVibGljYXRpb25zOgorICAgICJwMSIgRVhDRVBU IChhLCBkKQogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAgICA8cGFyYT4KLSAgICAgT24g dGhlIHN1YnNjcmliZXIgbm9kZSwgY3JlYXRlIGEgdGFibGUgPGxpdGVyYWw+dDE8L2xpdGVyYWw+ IHdoaWNoIG5vdwotICAgICBvbmx5IG5lZWRzIGEgc3Vic2V0IG9mIHRoZSBjb2x1bW5zIHRoYXQg d2VyZSBvbiB0aGUgcHVibGlzaGVyIHRhYmxlCi0gICAgIDxsaXRlcmFsPnQxPC9saXRlcmFsPiwg YW5kIGFsc28gY3JlYXRlIHRoZSBzdWJzY3JpcHRpb24KKyAgICAgT24gdGhlIHN1YnNjcmliZXIg bm9kZSwgY3JlYXRlIHRhYmxlcyA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4gYW5kCisgICAgIDxsaXRl cmFsPnQyPC9saXRlcmFsPiB3aGljaCBub3cgb25seSBuZWVkcyBhIHN1YnNldCBvZiB0aGUgY29s dW1ucyB0aGF0CisgICAgIHdlcmUgb24gdGhlIHB1Ymxpc2hlciB0YWJsZXMgPGxpdGVyYWw+dDE8 L2xpdGVyYWw+IGFuZAorICAgICA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4sIGFuZCBhbHNvIGNyZWF0 ZSB0aGUgc3Vic2NyaXB0aW9uCiAgICAgIDxsaXRlcmFsPnMxPC9saXRlcmFsPiB0aGF0IHN1YnNj cmliZXMgdG8gdGhlIHB1YmxpY2F0aW9uCiAgICAgIDxsaXRlcmFsPnAxPC9saXRlcmFsPi4KIDxw cm9ncmFtbGlzdGluZz4KIC8qIHN1YiAjICovIENSRUFURSBUQUJMRSB0MShpZCBpbnQsIGIgdGV4 dCwgYSB0ZXh0LCBkIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CisvKiBzdWIgIyAqLyBDUkVBVEUg VEFCTEUgdDIoaWQgaW50LCBiIHRleHQsIGMgdGV4dCwgZSB0ZXh0LCBQUklNQVJZIEtFWShpZCkp OwogLyogc3ViICMgKi8gQ1JFQVRFIFNVQlNDUklQVElPTiBzMQogLyogc3ViIC0gKi8gQ09OTkVD VElPTiAnaG9zdD1sb2NhbGhvc3QgZGJuYW1lPXRlc3RfcHViIGFwcGxpY2F0aW9uX25hbWU9czEn CiAvKiBzdWIgLSAqLyBQVUJMSUNBVElPTiBwMTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgog CiAgICAgPHBhcmE+Ci0gICAgIE9uIHRoZSBwdWJsaXNoZXIgbm9kZSwgaW5zZXJ0IHNvbWUgcm93 cyB0byB0YWJsZSA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4uCisgICAgIE9uIHRoZSBwdWJsaXNoZXIg bm9kZSwgaW5zZXJ0IHNvbWUgcm93cyB0byB0YWJsZXMgPGxpdGVyYWw+dDE8L2xpdGVyYWw+Cisg ICAgIGFuZCA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4KIDxwcm9ncmFtbGlzdGluZz4KIC8qIHB1YiAj ICovIElOU0VSVCBJTlRPIHQxIFZBTFVFUygxLCAnYS0xJywgJ2ItMScsICdjLTEnLCAnZC0xJywg J2UtMScpOwogLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDEgVkFMVUVTKDIsICdhLTInLCAnYi0y JywgJ2MtMicsICdkLTInLCAnZS0yJyk7CkBAIC0xNTEzLDYgKzE1NDMsMTYgQEAgUHVibGljYXRp b25zOgogICAyIHwgYS0yIHwgYi0yIHwgYy0yIHwgZC0yIHwgZS0yCiAgIDMgfCBhLTMgfCBiLTMg fCBjLTMgfCBkLTMgfCBlLTMKICgzIHJvd3MpCisvKiBwdWIgIyAqLyBJTlNFUlQgSU5UTyB0MiBW QUxVRVMoMSwgJ2EtMScsICdiLTEnLCAnYy0xJywgJ2QtMScsICdlLTEnKTsKKy8qIHB1YiAjICov IElOU0VSVCBJTlRPIHQyIFZBTFVFUygyLCAnYS0yJywgJ2ItMicsICdjLTInLCAnZC0yJywgJ2Ut MicpOworLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDIgVkFMVUVTKDMsICdhLTMnLCAnYi0zJywg J2MtMycsICdkLTMnLCAnZS0zJyk7CisvKiBwdWIgIyAqLyBTRUxFQ1QgKiBGUk9NIHQyIE9SREVS IEJZIGlkOworIGlkIHwgIGEgIHwgIGIgIHwgIGMgIHwgIGQgIHwgIGUKKy0tLS0rLS0tLS0rLS0t LS0rLS0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8IGEtMSB8IGItMSB8IGMtMSB8IGQtMSB8IGUtMQor ICAyIHwgYS0yIHwgYi0yIHwgYy0yIHwgZC0yIHwgZS0yCisgIDMgfCBhLTMgfCBiLTMgfCBjLTMg fCBkLTMgfCBlLTMKKygzIHJvd3MpCiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICAgIDxw YXJhPgpAQCAtMTUyNiw2ICsxNTY2LDEzIEBAIFB1YmxpY2F0aW9uczoKICAgMiB8IGItMiB8IGEt MiB8IGQtMgogICAzIHwgYi0zIHwgYS0zIHwgZC0zCiAoMyByb3dzKQorLyogc3ViICMgKi8gU0VM RUNUICogRlJPTSB0MiBPUkRFUiBCWSBpZDsKKyBpZCB8ICBiICB8ICBjICB8ICBlCistLS0tKy0t LS0tKy0tLS0tKy0tLS0tCisgIDEgfCBiLTEgfCBjLTEgfCBlLTEKKyAgMiB8IGItMiB8IGMtMiB8 IGUtMgorICAzIHwgYi0zIHwgYy0zIHwgZS0zCisoMyByb3dzKQogPC9wcm9ncmFtbGlzdGluZz48 L3BhcmE+CiAKICAgPC9zZWN0Mj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dt bAppbmRleCAzN2UyYzg0YmMxMC4uMTBiMjQ5NzEwYmMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3B1YmxpY2F0aW9uLnNnbWwKQEAgLTMyLDcgKzMyLDcgQEAgQUxURVIgUFVCTElDQVRJT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNFVAogCiA8 cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9v YmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKLSAgICBUQUJMRSBbIE9O TFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFi bGU+IFsgKiBdIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8 L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBdCisgICAgVEFC TEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3Jl cGxhY2VhYmxlPiBbICogXSBbIFsgRVhDRVBUIF0gKCBjb2x1bW5fbmFtZSBbLCAuLi4gXSApIF0g WyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBs YWNlYWJsZT4gKSBdIFssIC4uLiBdCiAgICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9T Q0hFTUEgfSBbLCAuLi4gXQogCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CkBAIC0y NjAsNiArMjYwLDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24g QUREIEFMTCBUQUJMRVMgRVhDRVBUIHVzZXJzLCBkZXBhcnRtZW50CiAgICA8c3RydWN0bmFtZT5w cm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKIDxwcm9ncmFtbGlzdGluZz4KIEFM VEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gQUREIFRBQkxFIHVzZXJzLCBk ZXBhcnRtZW50cywgVEFCTEVTIElOIFNDSEVNQSBwcm9kdWN0aW9uOworPC9wcm9ncmFtbGlzdGlu Zz48L3BhcmE+CisKKyAgPHBhcmE+CisgICBBbHRlciBwdWJsaWNhdGlvbiA8c3RydWN0bmFtZT5t eXB1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiB0byBhZGQgdGFibGUKKyAgIDxzdHJ1Y3RuYW1lPnVz ZXJzPC9zdHJ1Y3RuYW1lPiBleGNlcHQgY29sdW1uCisgICA8c3RydWN0bmFtZT5zZWN1cml0eV9w aW48L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgUFVCTElDQVRJT04gcHJv ZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMgRVhDRVBUIChzZWN1cml0eV9waW4p OwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfcHVibGljYXRpb24uc2dtbAppbmRleCA3ZmQ4ODcyZGI1Zi4uYWRlZTdkNmQzZDEgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbApAQCAtMjgsNyArMjgsNyBA QCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPgogCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+ CiAKLSAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFi bGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBd IFssIC4uLiBdCisgICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbIFsgRVhDRVBUIF0gKCBjb2x1bW5f bmFtZSBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBdCiAgICAgVEFCTEVTIElOIFND SEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFj ZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQogCiA8cGhyYXNlPndoZXJlIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4g aXM6PC9waHJhc2U+CkBAIC0xMDMsNiArMTAzLDEyIEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgICBsaXN0 cy4KICAgICAgPC9wYXJhPgogCisgICAgIDxwYXJhPgorICAgICAgV2hlbiBhIGNvbHVtbiBsaXN0 IGlzIHNwZWNpZmllZCB3aXRoIEVYQ0VQVCwgdGhlIG5hbWVkIGNvbHVtbnMgYXJlIG5vdAorICAg ICAgcmVwbGljYXRlZC4gU3BlY2lmeWluZyBhIGNvbHVtbiBsaXN0IGhhcyBubyBlZmZlY3Qgb24K KyAgICAgIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFsPiBjb21tYW5kcy4KKyAgICAgPC9wYXJh PgorCiAgICAgIDxwYXJhPgogICAgICAgT25seSBwZXJzaXN0ZW50IGJhc2UgdGFibGVzIGFuZCBw YXJ0aXRpb25lZCB0YWJsZXMgY2FuIGJlIHBhcnQgb2YgYQogICAgICAgcHVibGljYXRpb24uICBU ZW1wb3JhcnkgdGFibGVzLCB1bmxvZ2dlZCB0YWJsZXMsIGZvcmVpZ24gdGFibGVzLApAQCAtNDc0 LDYgKzQ4MCwxNSBAQCBDUkVBVEUgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1IgQUxMIFRB QkxFUyBFWENFUFQgdXNlcnMsIGRlcGFydG1lbnRzOwogPHByb2dyYW1saXN0aW5nPgogQ1JFQVRF IFBVQkxJQ0FUSU9OIHVzZXJzX2ZpbHRlcmVkIEZPUiBUQUJMRSB1c2VycyAodXNlcl9pZCwgZmly c3RuYW1lKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgQ3JlYXRl IGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlCisgICA8 c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4gZXhjZXB0IGNoYW5nZXMgZm9yIGNvbHVtbgor ICAgPHN0cnVjdG5hbWU+c2VjdXJpdHlfcGluPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGlu Zz4KK0NSRUFURSBQVUJMSUNBVElPTiB1c2Vyc19zYWZlIEZPUiBUQUJMRSB1c2VycyBFWENFUFQg KHNlY3VyaXR5X3Bpbik7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CiAgPC9yZWZzZWN0 MT4KIAogIDxyZWZzZWN0MT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVi bGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCBl YzU4MGUzYjA1MC4uZTQ1OTFjYjBiMzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfcHVibGljYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u LmMKQEAgLTI2MywxMyArMjYzLDE3IEBAIGlzX3NjaGVtYV9wdWJsaWNhdGlvbihPaWQgcHViaWQp CiAgKiBJZiBhIGNvbHVtbiBsaXN0IGlzIGZvdW5kLCB0aGUgY29ycmVzcG9uZGluZyBiaXRtYXAg aXMgcmV0dXJuZWQgdGhyb3VnaCB0aGUKICAqIGNvbHMgcGFyYW1ldGVyLCBpZiBwcm92aWRlZC4g VGhlIGJpdG1hcCBpcyBjb25zdHJ1Y3RlZCB3aXRoaW4gdGhlIGdpdmVuCiAgKiBtZW1vcnkgY29u dGV4dCAobWN4dCkuCisgKgorICogSWYgYSBjb2x1bW4gbGlzdCBpcyBmb3VuZCBzcGVjaWZpZWQg d2l0aCBFWENFUFQgY2xhdXNlLCBleGNlcHRfY29sdW1ucyBpcyBzZXQKKyAqIHRvIHRydWUuCiAg Ki8KIGJvb2wKIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBP aWQgcmVsaWQsIE1lbW9yeUNvbnRleHQgbWN4dCwKLQkJCQkJCQlCaXRtYXBzZXQgKipjb2xzKQor CQkJCQkJCUJpdG1hcHNldCAqKmNvbHMsIGJvb2wgKmV4Y2VwdF9jb2x1bW5zKQogewogCUhlYXBU dXBsZQljZnR1cGxlOwogCWJvb2wJCWZvdW5kID0gZmFsc2U7CisJYm9vbAkJZXhjZXB0ID0gZmFs c2U7CiAKIAlpZiAocHViLT5hbGx0YWJsZXMpCiAJCXJldHVybiBmYWxzZTsKQEAgLTI5Niw2ICsz MDAsMTUgQEAgY2hlY2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KFB1YmxpY2F0aW9uICpwdWIsIE9p ZCByZWxpZCwgTWVtb3J5Q29udGV4dCBtY3h0LAogCQkJZm91bmQgPSB0cnVlOwogCQl9CiAKKwkJ LyogZXhjZXB0IGZvdW5kPyAqLworCQljZmRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FU SU9OUkVMTUFQLCBjZnR1cGxlLAorCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3By ZXhjZXB0LCAmaXNudWxsKTsKKworCQlpZiAoIWlzbnVsbCkKKwkJCWV4Y2VwdCA9IERhdHVtR2V0 Qm9vbChjZmRhdHVtKTsKKworCQkqZXhjZXB0X2NvbHVtbnMgPSBleGNlcHQgJiYgIXB1Yi0+YWxs dGFibGVzOworCiAJCVJlbGVhc2VTeXNDYWNoZShjZnR1cGxlKTsKIAl9CiAKQEAgLTQ3OSw3ICs0 OTIsOSBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJl bEluZm8gKnByaSwKIAljaGVja19wdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24odGFyZ2V0cmVsKTsK IAogCS8qIFZhbGlkYXRlIGFuZCB0cmFuc2xhdGUgY29sdW1uIG5hbWVzIGludG8gYSBCaXRtYXBz ZXQgb2YgYXR0bnVtcy4gKi8KLQlhdHRudW1zID0gcHViX2NvbGxpc3RfdmFsaWRhdGUocHJpLT5y ZWxhdGlvbiwgcHJpLT5jb2x1bW5zKTsKKwlhdHRudW1zID0gcHViX2NvbGxpc3RfdmFsaWRhdGUo cHJpLT5yZWxhdGlvbiwgcHJpLT5jb2x1bW5zLAorCQkJCQkJCQkgICBwcmktPmV4Y2VwdCAmJiAh cHViLT5hbGx0YWJsZXMsCisJCQkJCQkJCSAgIHB1Yi0+cHViZ2VuY29sc190eXBlKTsKIAogCS8q IEZvcm0gYSB0dXBsZS4gKi8KIAltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CkBA IC01NjgsNyArNTgzLDggQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVi bGljYXRpb25SZWxJbmZvICpwcmksCiAgKiBjb3JyZXNwb25kaW5nIGF0dG51bXMuCiAgKi8KIEJp dG1hcHNldCAqCi1wdWJfY29sbGlzdF92YWxpZGF0ZShSZWxhdGlvbiB0YXJnZXRyZWwsIExpc3Qg KmNvbHVtbnMpCitwdWJfY29sbGlzdF92YWxpZGF0ZShSZWxhdGlvbiB0YXJnZXRyZWwsIExpc3Qg KmNvbHVtbnMsIGJvb2wgZXhjZXB0X2NvbHVtbnMsCisJCQkJCSBQdWJsaXNoR2VuY29sc1R5cGUg cHViZ2VuY29sc190eXBlKQogewogCUJpdG1hcHNldCAgKnNldCA9IE5VTEw7CiAJTGlzdENlbGwg ICAqbGM7CkBAIC01OTEsNiArNjA3LDE5IEBAIHB1Yl9jb2xsaXN0X3ZhbGlkYXRlKFJlbGF0aW9u IHRhcmdldHJlbCwgTGlzdCAqY29sdW1ucykKIAkJCQkJZXJybXNnKCJjYW5ub3QgdXNlIHN5c3Rl bSBjb2x1bW4gXCIlc1wiIGluIHB1YmxpY2F0aW9uIGNvbHVtbiBsaXN0IiwKIAkJCQkJCSAgIGNv bG5hbWUpKTsKIAorCQkvKgorCQkgKiBDaGVjayBpZiBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0 aCBFWENFUFQgaGF2ZSBhbnkgc3RvcmVkCisJCSAqIGdlbmVyYXRlZCBjb2x1bW4gYW5kICdwdWJs aXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBpcyBub3Qgc2V0IHRvCisJCSAqICdzdG9yZWQnLgorCQkg Ki8KKwkJaWYgKGV4Y2VwdF9jb2x1bW5zICYmCisJCQlUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGF0 dG51bSAtIDEpLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQgJiYK KwkJCXB1YmdlbmNvbHNfdHlwZSAhPSBQVUJMSVNIX0dFTkNPTFNfU1RPUkVEKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQ09MVU1OX1JFRkVSRU5DRSks CisJCQkJCWVycm1zZygiY2Fubm90IHVzZSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbiBcIiVzXCIg aW4gcHVibGljYXRpb24gY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggRVhDRVBUIHdoZW4gXCIl c1wiIHNldCB0byBcIiVzXCIiLAorCQkJCQkJICAgY29sbmFtZSwgInB1Ymxpc2hfZ2VuZXJhdGVk X2NvbHVtbnMiLCAic3RvcmVkIikpOworCiAJCWlmIChUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGF0 dG51bSAtIDEpLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQog CQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQ09MVU1OX1JF RkVSRU5DRSksCkBAIC02NDYsMTAgKzY3NSwxMiBAQCBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQo Qml0bWFwc2V0ICpjb2x1bW5zLCBEYXR1bSBwdWJjb2xzLCBNZW1vcnlDb250ZXh0IG1jeHQpCiAg KiBSZXR1cm5zIGEgYml0bWFwIHJlcHJlc2VudGluZyB0aGUgY29sdW1ucyBvZiB0aGUgc3BlY2lm aWVkIHRhYmxlLgogICoKICAqIEdlbmVyYXRlZCBjb2x1bW5zIGFyZSBpbmNsdWRlZCBpZiBpbmNs dWRlX2dlbmNvbHNfdHlwZSBpcwotICogUFVCTElTSF9HRU5DT0xTX1NUT1JFRC4KKyAqIFBVQkxJ U0hfR0VOQ09MU19TVE9SRUQuIENvbHVtbnMgdGhhdCBhcmUgaW4gdGhlIGV4Y2x1ZGVjb2xzIGFy ZSBleGNsdWRlZCBmcm9tCisgKiB0aGUgY29sdW1uIGxpc3QuCiAgKi8KIEJpdG1hcHNldCAqCi1w dWJfZm9ybV9jb2xzX21hcChSZWxhdGlvbiByZWxhdGlvbiwgUHVibGlzaEdlbmNvbHNUeXBlIGlu Y2x1ZGVfZ2VuY29sc190eXBlKQorcHViX2Zvcm1fY29sc19tYXAoUmVsYXRpb24gcmVsYXRpb24s IFB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSwKKwkJCQkgIEJpdG1hcHNl dCAqZXhjbHVkZWNvbHMpCiB7CiAJQml0bWFwc2V0ICAqcmVzdWx0ID0gTlVMTDsKIAlUdXBsZURl c2MJZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsYXRpb24pOwpAQCAtNjcyLDYgKzcwMyw5IEBA IHB1Yl9mb3JtX2NvbHNfbWFwKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaXNoR2VuY29sc1R5cGUg aW5jbHVkZV9nZW5jb2xzX3R5cGUpCiAJCQkJY29udGludWU7CiAJCX0KIAorCQlpZiAoZXhjbHVk ZWNvbHMgJiYgYm1zX2lzX21lbWJlcihhdHQtPmF0dG51bSwgZXhjbHVkZWNvbHMpKQorCQkJY29u dGludWU7CisKIAkJcmVzdWx0ID0gYm1zX2FkZF9tZW1iZXIocmVzdWx0LCBhdHQtPmF0dG51bSk7 CiAJfQogCkBAIC03NzYsOSArODEwLDE0IEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCBy ZWxpZCwgYm9vbCBleGNlcHRfZmxhZykKIAl7CiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlz dC0+bWVtYmVyc1tpXS0+dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0 aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcnB1YmlkOworCQlIZWFwVHVwbGUJcHVidHVwID0g U2VhcmNoU3lzQ2FjaGUxKFBVQkxJQ0FUSU9OT0lELCBPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7 CisJCWJvb2wJCWlzX3RhYmxlX2V4Y2x1ZGVkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRT VFJVQ1QocHVidHVwKSktPnB1YmFsbHRhYmxlcyAmJgorCQkJKChGb3JtX3BnX3B1YmxpY2F0aW9u X3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdDsKIAotCQlpZiAoZXhjZXB0X2ZsYWcgPT0g KChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdCkKKwkJ aWYgKGV4Y2VwdF9mbGFnID09IGlzX3RhYmxlX2V4Y2x1ZGVkKQogCQkJcmVzdWx0ID0gbGFwcGVu ZF9vaWQocmVzdWx0LCBwdWJpZCk7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHB1YnR1cCk7CiAJfQog CiAJUmVsZWFzZVN5c0NhY2hlTGlzdChwdWJyZWxsaXN0KTsKQEAgLTEyNjMsNiArMTMwMiwxMSBA QCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCU9pZAkJCXNj aGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpOwogCQlEYXR1bQkJdmFsdWVzW05VTV9Q VUJMSUNBVElPTl9UQUJMRVNfRUxFTV0gPSB7MH07CiAJCWJvb2wJCW51bGxzW05VTV9QVUJMSUNB VElPTl9UQUJMRVNfRUxFTV0gPSB7MH07CisJCURhdHVtCQljb2x1bW5zRGF0dW07CisJCURhdHVt CQlleGNlcHREYXR1bTsKKwkJQml0bWFwc2V0ICAqY29sdW1ucyA9IE5VTEw7CisJCWJvb2wJCWV4 Y2VwdCA9IGZhbHNlOworCQlib29sCQlpc251bGw7CiAKIAkJLyoKIAkJICogRm9ybSB0dXBsZSB3 aXRoIGFwcHJvcHJpYXRlIGRhdGEuCkBAIC0xMjg3LDEwICsxMzMxLDIyIEBAIHBnX2dldF9wdWJs aWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAogCQlpZiAoSGVhcFR1cGxlSXNWYWxp ZChwdWJ0dXBsZSkpCiAJCXsKLQkJCS8qIExvb2t1cCB0aGUgY29sdW1uIGxpc3QgYXR0cmlidXRl LiAqLwotCQkJdmFsdWVzWzJdID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCBw dWJ0dXBsZSwKLQkJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmF0dHJzLAotCQkJ CQkJCQkJCSYobnVsbHNbMl0pKTsKKwkJCWV4Y2VwdERhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBV QkxJQ0FUSU9OUkVMTUFQLCBwdWJ0dXBsZSwKKwkJCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRp b25fcmVsX3ByZXhjZXB0LAorCQkJCQkJCQkJCSAgJmlzbnVsbCk7CisKKwkJCWlmICghaXNudWxs KQorCQkJCWV4Y2VwdCA9IERhdHVtR2V0Qm9vbChleGNlcHREYXR1bSk7CisKKwkJCWNvbHVtbnNE YXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcHVidHVwbGUsCisJCQkJ CQkJCQkJICAgQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJhdHRycywKKwkJCQkJCQkJCQkgICAm KG51bGxzWzJdKSk7CisKKwkJCS8qIGlmIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCB3aXRoIEVY Q0VQVCAqLworCQkJaWYgKCFwdWItPmFsbHRhYmxlcyAmJiBleGNlcHQpCisJCQkJY29sdW1ucyA9 IHB1Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChOVUxMLCBjb2x1bW5zRGF0dW0sIE5VTEwpOworCQkJ ZWxzZQorCQkJCXZhbHVlc1syXSA9IGNvbHVtbnNEYXR1bTsKIAogCQkJLyogTnVsbCBpbmRpY2F0 ZXMgbm8gZmlsdGVyLiAqLwogCQkJdmFsdWVzWzNdID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FU SU9OUkVMTUFQLCBwdWJ0dXBsZSwKQEAgLTEzMDMsOCArMTM1OSwxMiBAQCBwZ19nZXRfcHVibGlj YXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQludWxsc1szXSA9IHRydWU7CiAJCX0K IAotCQkvKiBTaG93IGFsbCBjb2x1bW5zIHdoZW4gdGhlIGNvbHVtbiBsaXN0IGlzIG5vdCBzcGVj aWZpZWQuICovCi0JCWlmIChudWxsc1syXSkKKwkJLyoKKwkJICogQ29uc3RydWN0IGNvbHVtbiBs aXN0IHRvIHNob3cgYWxsIGNvbHVtbnMgd2hlbiBubyBjb2x1bW4gbGlzdCBpcworCQkgKiBzcGVj aWZpZWQgb3IgdG8gc2hvdyByZW1haW5pbmcgY29sdW1ucyB3aGVuIGEgY29sdW1uIGxpc3QgaXMK KwkJICogcHJvdmlkZWQgd2l0aCBFWENFUFQuCisJCSAqLworCQlpZiAoKCFwdWItPmFsbHRhYmxl cyAmJiBleGNlcHQpIHx8IG51bGxzWzJdKQogCQl7CiAJCQlSZWxhdGlvbglyZWwgPSB0YWJsZV9v cGVuKHJlbGlkLCBBY2Nlc3NTaGFyZUxvY2spOwogCQkJaW50CQkJbmF0dG51bXMgPSAwOwpAQCAt MTMzNSw2ICsxMzk1LDE0IEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05f QVJHUykKIAkJCQkJCWNvbnRpbnVlOwogCQkJCX0KIAorCQkJCS8qCisJCQkJICogU2tpcCBjb2x1 bW5zIHRoYXQgYXJlIHBhcnQgb2YgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGgKKwkJCQkgKiBF WENFUFQuCisJCQkJICovCisJCQkJaWYgKCghcHViLT5hbGx0YWJsZXMgJiYgZXhjZXB0KSAmJgor CQkJCQlibXNfaXNfbWVtYmVyKGF0dC0+YXR0bnVtLCBjb2x1bW5zKSkKKwkJCQkJY29udGludWU7 CisKIAkJCQlhdHRudW1zW25hdHRudW1zKytdID0gYXR0LT5hdHRudW07CiAJCQl9CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggNTE5NGIyZmI2ZTIuLjg1MTNlNTc5 ZGY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMjA0LDcgKzIw NCw2IEBAIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwg UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQlzd2l0Y2ggKHB1Ym9iai0+cHVib2JqdHlwZSkKIAkJewog CQkJY2FzZSBQVUJMSUNBVElPTk9CSl9UQUJMRToKLQkJCQlwdWJvYmotPnB1YnRhYmxlLT5leGNl cHQgPSBmYWxzZTsKIAkJCQkqcmVscyA9IGxhcHBlbmQoKnJlbHMsIHB1Ym9iai0+cHVidGFibGUp OwogCQkJCWJyZWFrOwogCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEU6CkBAIC0z NTgsNyArMzU3LDggQEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwg UmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKICAqIFRoaXMgZnVuY3Rpb24gZXZh bHVhdGVzIHR3byBjb25kaXRpb25zOgogICoKICAqIDEuIEVuc3VyZXMgdGhhdCBhbGwgY29sdW1u cyByZWZlcmVuY2VkIGluIHRoZSBSRVBMSUNBIElERU5USVRZIGFyZSBjb3ZlcmVkCi0gKiAgICBi eSB0aGUgY29sdW1uIGxpc3QuIElmIGFueSBjb2x1bW4gaXMgbWlzc2luZywgKmludmFsaWRfY29s dW1uX2xpc3QgaXMgc2V0CisgKiAgICBieSB0aGUgY29sdW1uIGxpc3QgYW5kIGFyZSBub3QgcGFy dCBvZiBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aCBFWENFUFQuCisgKiAJICBJZiBhbnkgY29s dW1uIGlzIG1pc3NpbmcsICppbnZhbGlkX2NvbHVtbl9saXN0IGlzIHNldAogICogICAgdG8gdHJ1 ZS4KICAqIDIuIEVuc3VyZXMgdGhhdCBhbGwgdGhlIGdlbmVyYXRlZCBjb2x1bW5zIHJlZmVyZW5j ZWQgaW4gdGhlIFJFUExJQ0EgSURFTlRJVFkKICAqICAgIGFyZSBwdWJsaXNoZWQsIGVpdGhlciBi eSBiZWluZyBleHBsaWNpdGx5IG5hbWVkIGluIHRoZSBjb2x1bW4gbGlzdCBvciwgaWYKQEAgLTM4 MSw2ICszODEsNyBAQCBwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxh dGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCVR1cGxlRGVzYwlkZXNjID0gUmVsYXRp b25HZXREZXNjcihyZWxhdGlvbik7CiAJUHVibGljYXRpb24gKnB1YjsKIAlpbnQJCQl4OworCWJv b2wJCWV4Y2VwdF9jb2x1bW5zID0gZmFsc2U7CiAKIAkqaW52YWxpZF9jb2x1bW5fbGlzdCA9IGZh bHNlOwogCSppbnZhbGlkX2dlbl9jb2wgPSBmYWxzZTsKQEAgLTQwNCw3ICs0MDUsOCBAQCBwdWJf Y29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlz dCAqYW5jZXN0b3JzLAogCiAJLyogRmV0Y2ggdGhlIGNvbHVtbiBsaXN0ICovCiAJcHViID0gR2V0 UHVibGljYXRpb24ocHViaWQpOwotCWNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsIHB1 Ymxpc2hfYXNfcmVsaWQsIE5VTEwsICZjb2x1bW5zKTsKKwljaGVja19hbmRfZmV0Y2hfY29sdW1u X2xpc3QocHViLCBwdWJsaXNoX2FzX3JlbGlkLCBOVUxMLCAmY29sdW1ucywKKwkJCQkJCQkJJmV4 Y2VwdF9jb2x1bW5zKTsKIAogCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxyZXBsaWRlbnQgPT0g UkVQTElDQV9JREVOVElUWV9GVUxMKQogCXsKQEAgLTQ5NCw4ICs0OTYsMTQgQEAgcHViX2NvbnRh aW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFu Y2VzdG9ycywKIAkJCWF0dG51bSA9IGdldF9hdHRudW0ocHVibGlzaF9hc19yZWxpZCwgY29sbmFt ZSk7CiAJCX0KIAotCQkvKiByZXBsaWNhIGlkZW50aXR5IGNvbHVtbiwgbm90IGNvdmVyZWQgYnkg dGhlIGNvbHVtbiBsaXN0ICovCi0JCSppbnZhbGlkX2NvbHVtbl9saXN0IHw9ICFibXNfaXNfbWVt YmVyKGF0dG51bSwgY29sdW1ucyk7CisJCS8qCisJCSAqIFJlcGxpY2EgaWRlbnRpdHkgY29sdW1u LCBub3QgY292ZXJlZCBieSB0aGUgY29sdW1uIGxpc3Qgb3IgaXMgcGFydAorCQkgKiBvZiBjb2x1 bW4gbGlzdCBzcGVjaWZpZWQgd2l0aCBFWENFUFQuCisJCSAqLworCQlpZiAoZXhjZXB0X2NvbHVt bnMpCisJCQkqaW52YWxpZF9jb2x1bW5fbGlzdCB8PSBibXNfaXNfbWVtYmVyKGF0dG51bSwgY29s dW1ucyk7CisJCWVsc2UKKwkJCSppbnZhbGlkX2NvbHVtbl9saXN0IHw9ICFibXNfaXNfbWVtYmVy KGF0dG51bSwgY29sdW1ucyk7CiAKIAkJaWYgKCppbnZhbGlkX2NvbHVtbl9saXN0ICYmICppbnZh bGlkX2dlbl9jb2wpCiAJCQlicmVhazsKQEAgLTE0NDMsNiArMTQ1MSw3IEBAIEFsdGVyUHVibGlj YXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJ CQlIZWFwVHVwbGUJcmZ0dXBsZTsKIAkJCU5vZGUJICAgKm9sZHJlbHdoZXJlY2xhdXNlID0gTlVM TDsKIAkJCUJpdG1hcHNldCAgKm9sZGNvbHVtbnMgPSBOVUxMOworCQkJYm9vbAkJb2xkZXhjZXB0 ID0gZmFsc2U7CiAKIAkJCS8qIGxvb2sgdXAgdGhlIGNhY2hlIGZvciB0aGUgb2xkIHJlbG1hcCAq LwogCQkJcmZ0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMihQVUJMSUNBVElPTlJFTE1BUCwKQEAgLTE0 NTgsNiArMTQ2Nyw3IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0 bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJYm9vbAkJaXNudWxsID0gdHJ1ZTsKIAkJCQlE YXR1bQkJd2hlcmVDbGF1c2VEYXR1bTsKIAkJCQlEYXR1bQkJY29sdW1uTGlzdERhdHVtOworCQkJ CURhdHVtCQlleGNlcHREYXR1bTsKIAogCQkJCS8qIExvYWQgdGhlIFdIRVJFIGNsYXVzZSBmb3Ig dGhpcyB0YWJsZS4gKi8KIAkJCQl3aGVyZUNsYXVzZURhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBV QkxJQ0FUSU9OUkVMTUFQLCByZnR1cGxlLApAQCAtMTQ3NCw2ICsxNDg0LDEzIEBAIEFsdGVyUHVi bGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAs CiAJCQkJaWYgKCFpc251bGwpCiAJCQkJCW9sZGNvbHVtbnMgPSBwdWJfY29sbGlzdF90b19iaXRt YXBzZXQoTlVMTCwgY29sdW1uTGlzdERhdHVtLCBOVUxMKTsKIAorCQkJCWV4Y2VwdERhdHVtID0g U3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCByZnR1cGxlLAorCQkJCQkJCQkJCQkg IEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByZXhjZXB0LAorCQkJCQkJCQkJCQkgICZpc251bGwp OworCisJCQkJaWYgKCFpc251bGwpCisJCQkJCW9sZGV4Y2VwdCA9IERhdHVtR2V0Qm9vbChleGNl cHREYXR1bSk7CisKIAkJCQlSZWxlYXNlU3lzQ2FjaGUocmZ0dXBsZSk7CiAJCQl9CiAKQEAgLTE0 OTMsNyArMTUxMCw5IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0 bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJICogaXMgY2hlYXAgZW5vdWdoIHRoYXQgdGhh dCBzZWVtcyBoYXJtbGVzcy4KIAkJCQkgKi8KIAkJCQluZXdjb2x1bW5zID0gcHViX2NvbGxpc3Rf dmFsaWRhdGUobmV3cHVicmVsLT5yZWxhdGlvbiwKLQkJCQkJCQkJCQkJCSAgbmV3cHVicmVsLT5j b2x1bW5zKTsKKwkJCQkJCQkJCQkJCSAgbmV3cHVicmVsLT5jb2x1bW5zLAorCQkJCQkJCQkJCQkJ ICBuZXdwdWJyZWwtPmV4Y2VwdCAmJiAhcHViZm9ybS0+cHViYWxsdGFibGVzLAorCQkJCQkJCQkJ CQkJICBwdWJmb3JtLT5wdWJnZW5jb2xzKTsKIAogCQkJCS8qCiAJCQkJICogQ2hlY2sgaWYgYW55 IG9mIHRoZSBuZXcgc2V0IG9mIHJlbGF0aW9ucyBtYXRjaGVzIHdpdGggdGhlCkBAIC0xNTA1LDcg KzE1MjQsOCBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpz dG10LCBIZWFwVHVwbGUgdHVwLAogCQkJCWlmIChuZXdyZWxpZCA9PSBvbGRyZWxpZCkKIAkJCQl7 CiAJCQkJCWlmIChlcXVhbChvbGRyZWx3aGVyZWNsYXVzZSwgbmV3cHVicmVsLT53aGVyZUNsYXVz ZSkgJiYKLQkJCQkJCWJtc19lcXVhbChvbGRjb2x1bW5zLCBuZXdjb2x1bW5zKSkKKwkJCQkJCWJt c19lcXVhbChvbGRjb2x1bW5zLCBuZXdjb2x1bW5zKSAmJgorCQkJCQkJb2xkZXhjZXB0ID09IG5l d3B1YnJlbC0+ZXhjZXB0KQogCQkJCQl7CiAJCQkJCQlmb3VuZCA9IHRydWU7CiAJCQkJCQlicmVh azsKQEAgLTE1MjIsNiArMTU0Miw3IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJs aWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJb2xkcmVsID0gcGFsbG9jKHNp emVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKIAkJCQlvbGRyZWwtPndoZXJlQ2xhdXNlID0gTlVM TDsKIAkJCQlvbGRyZWwtPmNvbHVtbnMgPSBOSUw7CisJCQkJb2xkcmVsLT5leGNlcHQgPSBmYWxz ZTsKIAkJCQlvbGRyZWwtPnJlbGF0aW9uID0gdGFibGVfb3BlbihvbGRyZWxpZCwKIAkJCQkJCQkJ CQkJICBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOwogCQkJCWRlbHJlbHMgPSBsYXBwZW5kKGRl bHJlbHMsIG9sZHJlbCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBkN2ZlOTVhODQwZi4uNjQ4MjdkYzFiMDkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQpAQCAtNDQ2LDYgKzQ0Niw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJz aXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7 CiAJCQkJVHJpZ2dlclRyYW5zaXRpb25zIFRyaWdnZXJSZWZlcmVuY2luZwogCQkJCXZhY3V1bV9y ZWxhdGlvbl9saXN0IG9wdF92YWN1dW1fcmVsYXRpb25fbGlzdAogCQkJCWRyb3Bfb3B0aW9uX2xp c3QgcHViX29ial9saXN0IGV4Y2VwdF9wdWJfb2JqX2xpc3QKKwkJCQlvcHRfZXhjbHVkZV9jb2x1 bW5fbGlzdAogCiAldHlwZSA8cmV0Y2xhdXNlPiByZXR1cm5pbmdfY2xhdXNlCiAldHlwZSA8bm9k ZT4JcmV0dXJuaW5nX29wdGlvbgpAQCAtNDQxMyw2ICs0NDE0LDEwIEBAIG9wdF9jb2x1bW5fbGlz dDoKIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTklMOyB9CiAJCTsKIAorb3B0X2V4Y2x1 ZGVfY29sdW1uX2xpc3Q6CisJCQknKCcgY29sdW1uTGlzdCAnKScJCQkJCQl7ICQkID0gJDI7IH0K KwkJOworCiBjb2x1bW5MaXN0OgogCQkJY29sdW1uRWxlbQkJCQkJCQkJeyAkJCA9IGxpc3RfbWFr ZTEoJDEpOyB9CiAJCQl8IGNvbHVtbkxpc3QgJywnIGNvbHVtbkVsZW0JCQkJeyAkJCA9IGxhcHBl bmQoJDEsICQzKTsgfQpAQCAtMTA2NzksNiArMTA2ODQsMTcgQEAgUHVibGljYXRpb25PYmpTcGVj OgogCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CiAJCQkJCSQkLT5sb2NhdGlv biA9IEAxOwogCQkJCX0KKwkJCXwgVEFCTEUgcmVsYXRpb25fZXhwciBFWENFUFQgb3B0X2V4Y2x1 ZGVfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKKwkJCQl7CisJCQkJCSQkID0gbWFrZU5vZGUo UHVibGljYXRpb25PYmpTcGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9C Sl9UQUJMRTsKKwkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7 CisJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAkMjsKKwkJCQkJJCQtPnB1YnRhYmxlLT5j b2x1bW5zID0gJDQ7CisJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNTsKKwkJCQkJ JCQtPnB1YnRhYmxlLT5leGNlcHQgPSB0cnVlOworCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKKwkJ CQl9CiAJCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBDb2xJZAogCQkJCXsKIAkJCQkJJCQgPSBtYWtl Tm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwpAQCAtMTA3MTksNiArMTA3MzUsMzQgQEAgUHVibGlj YXRpb25PYmpTcGVjOgogCQkJCQl9CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KKwkJ CXwgQ29sSWQgRVhDRVBUIG9wdF9leGNsdWRlX2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJ CQkJeworCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5w dWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElOVUFUSU9OOworCQkJCQkvKgorCQkJCQkg KiBJZiBlaXRoZXIgYSByb3cgZmlsdGVyIG9yIGV4Y2x1ZGUgY29sdW1uIGxpc3QgaXMKKwkJCQkJ ICogc3BlY2lmaWVkLCBjcmVhdGUgYSBQdWJsaWNhdGlvblRhYmxlIG9iamVjdC4KKwkJCQkJICov CisJCQkJCWlmICgkMyB8fCAkNCkKKwkJCQkJeworCQkJCQkJLyoKKwkJCQkJCSAqIFRoZSBPcHRX aGVyZUNsYXVzZSBtdXN0IGJlIHN0b3JlZCBoZXJlIGJ1dCBpdCBpcworCQkJCQkJICogdmFsaWQg b25seSBmb3IgdGFibGVzLiBGb3Igbm9uLXRhYmxlIG9iamVjdHMsIGFuCisJCQkJCQkgKiBlcnJv ciB3aWxsIGJlIHRocm93biBsYXRlciB2aWEKKwkJCQkJCSAqIHByZXByb2Nlc3NfcHVib2JqX2xp c3QoKS4KKwkJCQkJCSAqLworCQkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRp b25UYWJsZSk7CisJCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gbWFrZVJhbmdlVmFyKE5V TEwsICQxLCBAMSk7CisJCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKKwkJCQkJCSQk LT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKKwkJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0 ID0gdHJ1ZTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCSQkLT5uYW1lID0gJDE7 CisJCQkJCX0KKwkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CisJCQkJfQogCQkJfCBDb2xJZCBpbmRp cmVjdGlvbiBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0g bWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKQEAgLTEwNzI5LDYgKzEwNzczLDE3IEBAIFB1 YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0Owog CQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CisJCQl8IENvbElkIGluZGlyZWN0aW9uIEVY Q0VQVCBvcHRfZXhjbHVkZV9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQorCQkJCXsKKwkJCQkJ JCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOworCQkJCQkkJC0+cHVib2JqdHlwZSA9 IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsKKwkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5v ZGUoUHVibGljYXRpb25UYWJsZSk7CisJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSBtYWtl UmFuZ2VWYXJGcm9tUXVhbGlmaWVkTmFtZSgkMSwgJDIsIEAxLCB5eXNjYW5uZXIpOworCQkJCQkk JC0+cHVidGFibGUtPmNvbHVtbnMgPSAkNDsKKwkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVz ZSA9ICQ1OworCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSQkLT5sb2Nh dGlvbiA9IEAxOworCQkJCX0KIAkJCS8qIGdyYW1tYXIgbGlrZSB0YWJsZW5hbWUgKiAsIE9OTFkg dGFibGVuYW1lLCBPTkxZICggdGFibGVuYW1lICkgKi8KIAkJCXwgZXh0ZW5kZWRfcmVsYXRpb25f ZXhwciBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CkBAIC0xMDczOSw2ICsx MDc5NCwxNiBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1u cyA9ICQyOwogCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDM7CiAJCQkJfQorCQkJ fCBleHRlbmRlZF9yZWxhdGlvbl9leHByIEVYQ0VQVCBvcHRfZXhjbHVkZV9jb2x1bW5fbGlzdCBP cHRXaGVyZUNsYXVzZQorCQkJCXsKKwkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNw ZWMpOworCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsK KwkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7CisJCQkJCSQk LT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAkMTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0g JDM7CisJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKKwkJCQkJJCQtPnB1YnRh YmxlLT5leGNlcHQgPSB0cnVlOworCQkJCX0KIAkJCXwgQ1VSUkVOVF9TQ0hFTUEKIAkJCQl7CiAJ CQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmluZGV4IDU1MTJiNGNiYTdmLi5iZTlmNTQ4MDA3 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCkBAIC0x ODUsNiArMTg1LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVsYXRpb25TeW5jRW50cnkKIAkgKiByb3cg ZmlsdGVyIGV4cHJlc3Npb25zLCBjb2x1bW4gbGlzdCwgZXRjLgogCSAqLwogCU1lbW9yeUNvbnRl eHQgZW50cnlfY3h0OworCisJLyogSW5kaWNhdGUgaWYgbm8gY29sdW1uIGlzIGluY2x1ZGVkIGlu IHRoZSBwdWJsaWNhdGlvbiAqLworCWJvb2wJCW5vX2NvbHNfcHVibGlzaGVkOwogfSBSZWxhdGlv blN5bmNFbnRyeTsKIAogLyoKQEAgLTEwNjYsMTIgKzEwNjksMTkgQEAgY2hlY2tfYW5kX2luaXRf Z2VuY29sKFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25zLAogCSAqLwogCWZv cmVhY2hfcHRyKFB1YmxpY2F0aW9uLCBwdWIsIHB1YmxpY2F0aW9ucykKIAl7CisJCWJvb2wJCWZv dW5kID0gZmFsc2U7CisJCWJvb2wJCWV4Y2VwdF9jb2x1bW5zID0gZmFsc2U7CisKKwkJZm91bmQg PSBjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QocHViLCBlbnRyeS0+cHVibGlzaF9hc19yZWxp ZCwgTlVMTCwKKwkJCQkJCQkJCQkJTlVMTCwgJmV4Y2VwdF9jb2x1bW5zKTsKKwogCQkvKgogCQkg KiBUaGUgY29sdW1uIGxpc3QgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZQogCQkgKiAncHVibGlz aF9nZW5lcmF0ZWRfY29sdW1ucycgcGFyYW1ldGVyLiBUaG9zZSB3aWxsIGJlIGNoZWNrZWQgbGF0 ZXIsCi0JCSAqIHNlZSBwZ291dHB1dF9jb2x1bW5fbGlzdF9pbml0LgorCQkgKiBzZWUgcGdvdXRw dXRfY29sdW1uX2xpc3RfaW5pdC4gQnV0IHdoZW4gYSBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQK KwkJICogd2l0aCBFWENFUFQsIGl0IHNob3VsZCBiZSBjaGVja2VkLgogCQkgKi8KLQkJaWYgKGNo ZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsIGVudHJ5LT5wdWJsaXNoX2FzX3JlbGlkLCBO VUxMLCBOVUxMKSkKKwkJaWYgKGZvdW5kICYmICFleGNlcHRfY29sdW1ucykKIAkJCWNvbnRpbnVl OwogCiAJCWlmIChmaXJzdCkKQEAgLTExMjAsMTEgKzExMzAsMzAgQEAgcGdvdXRwdXRfY29sdW1u X2xpc3RfaW5pdChQR091dHB1dERhdGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywKIAl7CiAJ CVB1YmxpY2F0aW9uICpwdWIgPSBsZmlyc3QobGMpOwogCQlCaXRtYXBzZXQgICpjb2xzID0gTlVM TDsKKwkJYm9vbAkJZXhjZXB0X2NvbHVtbnMgPSBmYWxzZTsKKwkJYm9vbAkJbm9fY29sX3B1Ymxp c2hlZCA9IGZhbHNlOwogCiAJCS8qIFJldHJpZXZlIHRoZSBiaXRtYXAgb2YgY29sdW1ucyBmb3Ig YSBjb2x1bW4gbGlzdCBwdWJsaWNhdGlvbi4gKi8KIAkJZm91bmRfcHViX2NvbGxpc3QgfD0gY2hl Y2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KHB1YiwKIAkJCQkJCQkJCQkJCQkJIGVudHJ5LT5wdWJs aXNoX2FzX3JlbGlkLAotCQkJCQkJCQkJCQkJCQkgZW50cnktPmVudHJ5X2N4dCwgJmNvbHMpOwor CQkJCQkJCQkJCQkJCQkgZW50cnktPmVudHJ5X2N4dCwgJmNvbHMsCisJCQkJCQkJCQkJCQkJCSAm ZXhjZXB0X2NvbHVtbnMpOworCisJCS8qCisJCSAqIElmIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmll ZCB3aXRoIEVYQ0VQVCByZXRyaWV2ZSBiaXRtYXAgb2YgY29sdW1ucworCQkgKiB3aGljaCBhcmUg bm90IHBhcnQgb2YgdGhpcyBjb2x1bW4gbGlzdC4KKwkJICovCisJCWlmIChleGNlcHRfY29sdW1u cykKKwkJeworCQkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8o ZW50cnktPmVudHJ5X2N4dCk7CisKKwkJCWNvbHMgPSBwdWJfZm9ybV9jb2xzX21hcChyZWxhdGlv biwKKwkJCQkJCQkJCSBlbnRyeS0+aW5jbHVkZV9nZW5jb2xzX3R5cGUsIGNvbHMpOworCQkJTWVt b3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CisKKwkJCWlmICghY29scykKKwkJCQlub19jb2xf cHVibGlzaGVkID0gdHJ1ZTsKKwkJfQogCiAJCS8qCiAJCSAqIEZvciBub24tY29sdW1uIGxpc3Qg cHVibGljYXRpb25zIOKAlCBlLmcuIFRBQkxFICh3aXRob3V0IGEgY29sdW1uCkBAIC0xMTMyLDcg KzExNjEsNyBAQCBwZ291dHB1dF9jb2x1bW5fbGlzdF9pbml0KFBHT3V0cHV0RGF0YSAqZGF0YSwg TGlzdCAqcHVibGljYXRpb25zLAogCQkgKiBvZiB0aGUgdGFibGUgKGluY2x1ZGluZyBnZW5lcmF0 ZWQgY29sdW1ucyB3aGVuCiAJCSAqICdwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBwYXJhbWV0 ZXIgaXMgdHJ1ZSkuCiAJCSAqLwotCQlpZiAoIWNvbHMpCisJCWlmICghbm9fY29sX3B1Ymxpc2hl ZCAmJiAhY29scykKIAkJewogCQkJLyoKIAkJCSAqIENhY2hlIHRoZSB0YWJsZSBjb2x1bW5zIGZv ciB0aGUgZmlyc3QgcHVibGljYXRpb24gd2l0aCBubwpAQCAtMTE0NCw3ICsxMTczLDcgQEAgcGdv dXRwdXRfY29sdW1uX2xpc3RfaW5pdChQR091dHB1dERhdGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0 aW9ucywKIAkJCQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhl bnRyeS0+ZW50cnlfY3h0KTsKIAogCQkJCXJlbGNvbHMgPSBwdWJfZm9ybV9jb2xzX21hcChyZWxh dGlvbiwKLQkJCQkJCQkJCQkJZW50cnktPmluY2x1ZGVfZ2VuY29sc190eXBlKTsKKwkJCQkJCQkJ CQkJZW50cnktPmluY2x1ZGVfZ2VuY29sc190eXBlLCBOVUxMKTsKIAkJCQlNZW1vcnlDb250ZXh0 U3dpdGNoVG8ob2xkY3h0KTsKIAkJCX0KIApAQCAtMTE1NCw5ICsxMTgzLDExIEBAIHBnb3V0cHV0 X2NvbHVtbl9saXN0X2luaXQoUEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMs CiAJCWlmIChmaXJzdCkKIAkJewogCQkJZW50cnktPmNvbHVtbnMgPSBjb2xzOworCQkJZW50cnkt Pm5vX2NvbHNfcHVibGlzaGVkID0gbm9fY29sX3B1Ymxpc2hlZDsKIAkJCWZpcnN0ID0gZmFsc2U7 CiAJCX0KLQkJZWxzZSBpZiAoIWJtc19lcXVhbChlbnRyeS0+Y29sdW1ucywgY29scykpCisJCWVs c2UgaWYgKChlbnRyeS0+bm9fY29sc19wdWJsaXNoZWQgIT0gbm9fY29sX3B1Ymxpc2hlZCkgfHwK KwkJCQkgIWJtc19lcXVhbChlbnRyeS0+Y29sdW1ucywgY29scykpCiAJCQllcmVwb3J0KEVSUk9S LAogCQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJZXJy bXNnKCJjYW5ub3QgdXNlIGRpZmZlcmVudCBjb2x1bW4gbGlzdHMgZm9yIHRhYmxlIFwiJXMuJXNc IiBpbiBkaWZmZXJlbnQgcHVibGljYXRpb25zIiwKQEAgLTE0ODAsNiArMTUxMSwxMyBAQCBwZ291 dHB1dF9jaGFuZ2UoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhO ICp0eG4sCiAKIAlyZWxlbnRyeSA9IGdldF9yZWxfc3luY19lbnRyeShkYXRhLCByZWxhdGlvbik7 CiAKKwkvKgorCSAqIElmIGFsbCBjb2x1bW5zIG9mIGEgdGFibGUgaXMgcHJlc2VudCBpbiBjb2x1 bW4gbGlzdCBzcGVjaWZpZWQgd2l0aAorCSAqIEVYQ0VQVCwgc2tpcCBwdWJsaXNoaW5nIHRoZSBj aGFuZ2VzLgorCSAqLworCWlmIChyZWxlbnRyeS0+bm9fY29sc19wdWJsaXNoZWQpCisJCXJldHVy bjsKKwogCS8qIEZpcnN0IGNoZWNrIHRoZSB0YWJsZSBmaWx0ZXIgKi8KIAlzd2l0Y2ggKGFjdGlv bikKIAl7CkBAIC0yMDU3LDYgKzIwOTUsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXRE YXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50cnktPnB1Ymxpc2hfYXNfcmVsaWQg PSBJbnZhbGlkT2lkOwogCQllbnRyeS0+Y29sdW1ucyA9IE5VTEw7CiAJCWVudHJ5LT5hdHRybWFw ID0gTlVMTDsKKwkJZW50cnktPm5vX2NvbHNfcHVibGlzaGVkID0gZmFsc2U7CiAJfQogCiAJLyog VmFsaWRhdGUgdGhlIGVudHJ5ICovCkBAIC0yMTA2LDYgKzIxNDUsNyBAQCBnZXRfcmVsX3N5bmNf ZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50cnktPnB1 YmFjdGlvbnMucHVidXBkYXRlID0gZmFsc2U7CiAJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YmRlbGV0 ZSA9IGZhbHNlOwogCQllbnRyeS0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0ZSA9IGZhbHNlOworCQll bnRyeS0+bm9fY29sc19wdWJsaXNoZWQgPSBmYWxzZTsKIAogCQkvKgogCQkgKiBUdXBsZSBzbG90 cyBjbGVhbnVwcy4gKFdpbGwgYmUgcmVidWlsdCBsYXRlciBpZiBuZWVkZWQpLgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK aW5kZXggNmNjNTVhZmQ0OTguLjI1ZjkxNjFmMzVlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTQ3ODAsMTAg KzQ3ODAsMTAgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZv IHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9LLCBtYWtl IGEgRHVtcGFibGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCWlmIChzdHJjbXAo cHJleGNlcHQsICJmIikgPT0gMCkKLQkJCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BV QkxJQ0FUSU9OX1JFTDsKLQkJZWxzZQorCQlpZiAoc3RyY21wKHByZXhjZXB0LCAidCIpID09IDAg JiYgUFFnZXRpc251bGwocmVzLCBpLCBpX3ByYXR0cnMpKQogCQkJcHVicmluZm9bal0uZG9iai5v YmpUeXBlID0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDsKKwkJZWxzZQorCQkJcHVicmluZm9b al0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOwogCiAJCXB1YnJpbmZvW2pdLmRv YmouY2F0SWQudGFibGVvaWQgPQogCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxl b2lkKSk7CkBAIC00Nzk3LDYgKzQ3OTcsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZl ICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkJcHVicmluZm9b al0ucHVicmVscXVhbCA9IE5VTEw7CiAJCWVsc2UKIAkJCXB1YnJpbmZvW2pdLnB1YnJlbHF1YWwg PSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJyZWxxdWFsKSk7CisJCXB1YnJpbmZv W2pdLnB1YmV4Y2VwdCA9IChzdHJjbXAocHJleGNlcHQsICJ0IikgPT0gMCk7CiAKIAkJaWYgKCFQ UWdldGlzbnVsbChyZXMsIGksIGlfcHJhdHRycykpCiAJCXsKQEAgLTQ4MjUsNyArNDgyNiw3IEBA IGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10s IGludCBudW1UYWJsZXMpCiAJCS8qIERlY2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAq LwogCQlzZWxlY3REdW1wYWJsZVB1YmxpY2F0aW9uT2JqZWN0KCYocHVicmluZm9bal0uZG9iaiks IGZvdXQpOwogCi0JCWlmIChzdHJjbXAocHJleGNlcHQsICJ0IikgPT0gMCkKKwkJaWYgKHN0cmNt cChwcmV4Y2VwdCwgInQiKSA9PSAwICYmIFBRZ2V0aXNudWxsKHJlcywgaSwgaV9wcmF0dHJzKSkK IAkJCXNpbXBsZV9wdHJfbGlzdF9hcHBlbmQoJmV4Y2VwdGluZm8sICZwdWJyaW5mb1tqXSk7CiAK IAkJaisrOwpAQCAtNDkwNSw3ICs0OTA2LDEyIEBAIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8pCiAJCQkJCSAgZm10 UXVhbGlmaWVkRHVtcGFibGUodGJpbmZvKSk7CiAKIAlpZiAocHVicmluZm8tPnB1YnJhdHRycykK LQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgKCVzKSIsIHB1YnJpbmZvLT5wdWJyYXR0cnMp OworCXsKKwkJaWYgKHB1YnJpbmZvLT5wdWJleGNlcHQpCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihx dWVyeSwgIiBFWENFUFQgKCVzKSIsIHB1YnJpbmZvLT5wdWJyYXR0cnMpOworCQllbHNlCisJCQlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiAoJXMpIiwgcHVicmluZm8tPnB1YnJhdHRycyk7CisJ fQogCiAJaWYgKHB1YnJpbmZvLT5wdWJyZWxxdWFsKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDA5NmYy OTM0NmQ4Li5kYWY2ZmI1MWEzZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC02ODEsNiArNjgxLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgX1B1YmxpY2F0aW9uUmVsSW5mbwogCVRhYmxlSW5mbyAgKnB1YnRhYmxlOwog CWNoYXIJICAgKnB1YnJlbHF1YWw7CiAJY2hhcgkgICAqcHVicmF0dHJzOworCWJvb2wJCXB1YmV4 Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAxMGI1ZjdmMjlj Yi4uYTU1YzRjNjUwNWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0zMDE5LDEyICszMDE5LDE0IEBAIGRlc2NyaWJl T25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCS8qIHByaW50IGFueSBw dWJsaWNhdGlvbnMgKi8KIAkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTAwMDAwKQogCQl7Ci0JCQlp ZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCQkvKiBGSVhNRTogMTgwMDAwIHNob3VsZCBi ZSBjaGFuZ2VkIHRvIDE5MDAwMCBsYXRlciBmb3IgUEcxOS4gKi8KKwkJCWlmIChwc2V0LnN2ZXJz aW9uID49IDE4MDAwMCkKIAkJCXsKIAkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJ CQkgICJTRUxFQ1QgcHVibmFtZVxuIgogCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgogCQkJCQkJ CQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgogCQkJCQkJCQkgICJG Uk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgogCQkJCQkJCQkgICIgICAgIEpPSU4g cGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4gT04gcC5vaWQgPSBwbi5wbnB1 YmlkXG4iCiAJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjIE9OIHBj LnJlbG5hbWVzcGFjZSA9IHBuLnBubnNwaWRcbiIKQEAgLTMwMzgsMzcgKzMwNDAsNjEgQEAgZGVz Y3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkJICAi ICAgICAgICAgICAgICAgIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlXG4iCiAJCQkJCQkJCSAgIiAg ICAgICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNb c10pXG4iCiAJCQkJCQkJCSAgIiAgICAgICAgRUxTRSBOVUxMIEVORCkgIgorCQkJCQkJCQkgICIJ CSwgcHJleGNlcHQgIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24g cFxuIgogCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIg T04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCiAJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBn X2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJCSAgIldIRVJFIHByLnBy cmVsaWQgPSAnJXMnXG4iLAotCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOwotCi0JCQkJLyogRklY TUU6IDE4MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxOTAwMDAgbGF0ZXIgZm9yIFBHMTkuICov Ci0JCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgwMDAwKQotCQkJCQlhcHBlbmRQUUV4cEJ1ZmZl clN0cigmYnVmLCAiIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOwotCi0JCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwKKwkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcycgIgorCQkJCQkJ CQkgICJBTkQgIGMucmVsbmFtZXNwYWNlIE5PVCBJTiAoXG4gIgorCQkJCQkJCQkgICIgCVNFTEVD VCBwbm5zcGlkIEZST01cbiIKKwkJCQkJCQkJICAiIAlwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9u X25hbWVzcGFjZSlcbiIKIAkJCQkJCQkJICAiVU5JT05cbiIKIAkJCQkJCQkJICAiU0VMRUNUIHB1 Ym5hbWVcbiIKIAkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiCQksIE5VTExcbiIK KwkJCQkJCQkJICAiCQksIE5VTExcbiIKKwkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1 YmxpY2F0aW9uIHBcbiIKKwkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2Nh dGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKKwkJCQkJCQkJICAiICAg ICBBTkQgTk9UIEVYSVNUUyAoXG4iCisJCQkJCQkJCSAgIgkJU0VMRUNUIDFcbiIKKwkJCQkJCQkJ ICAiCQlGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCisJCQkJCQkJCSAg IgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjXG4iCisJCQkJCQkJCSAgIgkJT04gcHIucHJy ZWxpZCA9IHBjLm9pZFxuIgorCQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAnJXMnIEFO RCBwci5wcnB1YmlkID0gcC5vaWQpXG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDE7IiwKKwkJCQkJ CQkJICBvaWQsIG9pZCwgb2lkLCBvaWQsIG9pZCk7CisJCQl9CisJCQllbHNlIGlmIChwc2V0LnN2 ZXJzaW9uID49IDE1MDAwMCkKKwkJCXsKKwkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJ CQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgorCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJ CQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVi bGljYXRpb24gcFxuIgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNh dGlvbl9uYW1lc3BhY2UgcG4gT04gcC5vaWQgPSBwbi5wbnB1YmlkXG4iCisJCQkJCQkJCSAgIiAg ICAgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjIE9OIHBjLnJlbG5hbWVzcGFjZSA9IHBuLnBu bnNwaWRcbiIKKwkJCQkJCQkJICAiV0hFUkUgcGMub2lkID0nJXMnIGFuZCBwZ19jYXRhbG9nLnBn X3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iCisJCQkJCQkJCSAgIlVOSU9OXG4iCisJ CQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCisJCQkJCQkJCSAgIiAgICAgLCBwZ19nZXRfZXhw cihwci5wcnF1YWwsIGMub2lkKVxuIgorCQkJCQkJCQkgICIgICAgICwgKENBU0UgV0hFTiBwci5w cmF0dHJzIElTIE5PVCBOVUxMIFRIRU5cbiIKKwkJCQkJCQkJICAiICAgICAgICAgKFNFTEVDVCBz dHJpbmdfYWdnKGF0dG5hbWUsICcsICcpXG4iCisJCQkJCQkJCSAgIiAgICAgICAgICAgRlJPTSBw Z19jYXRhbG9nLmdlbmVyYXRlX3NlcmllcygwLCBwZ19jYXRhbG9nLmFycmF5X3VwcGVyKHByLnBy YXR0cnM6OnBnX2NhdGFsb2cuaW50MltdLCAxKSkgcyxcbiIKKwkJCQkJCQkJICAiICAgICAgICAg ICAgICAgIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlXG4iCisJCQkJCQkJCSAgIiAgICAgICAgICBX SEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCisJ CQkJCQkJCSAgIiAgICAgICAgRUxTRSBOVUxMIEVORCkgIgogCQkJCQkJCQkgICJGUk9NIHBnX2Nh dGFsb2cucGdfcHVibGljYXRpb24gcFxuIgotCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRhYmxl cyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIiwKLQkJ CQkJCQkJICBvaWQpOwotCi0JCQkJLyogRklYTUU6IDE4MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0 byAxOTAwMDAgbGF0ZXIgZm9yIFBHMTkuICovCi0JCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgw MDAwKQotCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCQkJICAiICAgICBBTkQg Tk9UIEVYSVNUUyAoXG4iCi0JCQkJCQkJCQkgICIJCVNFTEVDVCAxXG4iCi0JCQkJCQkJCQkgICIJ CUZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKLQkJCQkJCQkJCSAgIgkJ Sk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjXG4iCi0JCQkJCQkJCQkgICIJCU9OIHByLnBycmVs aWQgPSBwYy5vaWRcbiIKLQkJCQkJCQkJCSAgIgkJV0hFUkUgcHIucHJyZWxpZCA9ICclcycgQU5E IHByLnBycHViaWQgPSBwLm9pZClcbiIsCi0JCQkJCQkJCQkgIG9pZCk7Ci0KLQkJCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMTsiKTsKKwkJCQkJCQkJICAiICAgICBKT0lO IHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJpZFxu IgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lkID0g cHIucHJyZWxpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIgorCQkJ CQkJCQkgICJVTklPTlxuIgorCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgorCQkJCQkJCQkg ICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICJG Uk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgorCQkJCQkJCQkgICJXSEVSRSBwLnB1 YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMn KVxuIgorCQkJCQkJCQkgICJPUkRFUiBCWSAxOyIsCisJCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwg b2lkKTsKIAkJCX0KIAkJCWVsc2UKIAkJCXsKQEAgLTMxMDYsOCArMzEzMiwxNSBAQCBkZXNjcmli ZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCiAJCQkJLyogY29sdW1u IGxpc3QgKGlmIGFueSkgKi8KIAkJCQlpZiAoIVBRZ2V0aXNudWxsKHJlc3VsdCwgaSwgMikpCi0J CQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgKCVzKSIsCi0JCQkJCQkJCQkgIFBRZ2V0dmFs dWUocmVzdWx0LCBpLCAyKSk7CisJCQkJeworCQkJCQlpZiAoIVBRZ2V0aXNudWxsKHJlc3VsdCwg aSwgMykgJiYKKwkJCQkJCXN0cmNtcChQUWdldHZhbHVlKHJlc3VsdCwgaSwgMyksICJ0IikgPT0g MCkKKwkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgRVhDRVBUICglcykiLAorCQkJCQkJ CQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDIpKTsKKwkJCQkJZWxzZQorCQkJCQkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwgIiAoJXMpIiwKKwkJCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0 LCBpLCAyKSk7CisJCQkJfQogCiAJCQkJLyogcm93IGZpbHRlciAoaWYgYW55KSAqLwogCQkJCWlm ICghUFFnZXRpc251bGwocmVzdWx0LCBpLCAxKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHVibGljYXRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRp b24uaAppbmRleCAzM2I3NzE5OTBiZC4uOWFjOTQxNTljMTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmgKQEAgLTE4MCwxNiArMTgwLDIwIEBAIGV4dGVybiBPaWQJR2V0VG9wTW9z dEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCiBleHRl cm4gYm9vbCBpc19wdWJsaXNoYWJsZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJuIGJv b2wgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gYm9vbCBjaGVja19h bmRfZmV0Y2hfY29sdW1uX2xpc3QoUHVibGljYXRpb24gKnB1YiwgT2lkIHJlbGlkLAotCQkJCQkJ CQkJCU1lbW9yeUNvbnRleHQgbWN4dCwgQml0bWFwc2V0ICoqY29scyk7CisJCQkJCQkJCQkJTWVt b3J5Q29udGV4dCBtY3h0LCBCaXRtYXBzZXQgKipjb2xzLAorCQkJCQkJCQkJCWJvb2wgKmV4Y2Vw dF9jb2x1bW5zKTsKIGV4dGVybiBPYmplY3RBZGRyZXNzIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlv bihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCQkJCQkJCQkJCQkgIGJvb2wg aWZfbm90X2V4aXN0cyk7Ci1leHRlcm4gQml0bWFwc2V0ICpwdWJfY29sbGlzdF92YWxpZGF0ZShS ZWxhdGlvbiB0YXJnZXRyZWwsIExpc3QgKmNvbHVtbnMpOworZXh0ZXJuIEJpdG1hcHNldCAqcHVi X2NvbGxpc3RfdmFsaWRhdGUoUmVsYXRpb24gdGFyZ2V0cmVsLCBMaXN0ICpjb2x1bW5zLAorCQkJ CQkJCQkJICAgYm9vbCBleGNlcHRfY29sdW1ucywKKwkJCQkJCQkJCSAgIFB1Ymxpc2hHZW5jb2xz VHlwZSBwdWJnZW5jb2xzX3R5cGUpOwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgcHVibGljYXRpb25f YWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwKIAkJCQkJCQkJCQkJYm9vbCBpZl9u b3RfZXhpc3RzKTsKIAogZXh0ZXJuIEJpdG1hcHNldCAqcHViX2NvbGxpc3RfdG9fYml0bWFwc2V0 KEJpdG1hcHNldCAqY29sdW1ucywgRGF0dW0gcHViY29scywKIAkJCQkJCQkJCQkgICBNZW1vcnlD b250ZXh0IG1jeHQpOwogZXh0ZXJuIEJpdG1hcHNldCAqcHViX2Zvcm1fY29sc19tYXAoUmVsYXRp b24gcmVsYXRpb24sCi0JCQkJCQkJCQlQdWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xz X3R5cGUpOworCQkJCQkJCQkJUHVibGlzaEdlbmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29sc190eXBl LAorCQkJCQkJCQkJQml0bWFwc2V0ICpleGNsdWRlY29scyk7CiAKICNlbmRpZgkJCQkJCQkvKiBQ R19QVUJMSUNBVElPTl9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1 YmxpY2F0aW9uX3JlbC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwu aAppbmRleCBlN2Q3ZjNiYTg1Yy4uNmEyMTY4ZmMzMmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbl9yZWwuaApAQCAtMzEsMTEgKzMxLDEyIEBAIENBVEFMT0cocGdfcHVibGlj YXRpb25fcmVsLDYxMDYsUHVibGljYXRpb25SZWxSZWxhdGlvbklkKQogCU9pZAkJCW9pZDsJCQkv KiBvaWQgKi8KIAlPaWQJCQlwcnB1YmlkIEJLSV9MT09LVVAocGdfcHVibGljYXRpb24pOyAvKiBP aWQgb2YgdGhlIHB1YmxpY2F0aW9uICovCiAJT2lkCQkJcHJyZWxpZCBCS0lfTE9PS1VQKHBnX2Ns YXNzKTsJLyogT2lkIG9mIHRoZSByZWxhdGlvbiAqLwotCWJvb2wJCXByZXhjZXB0IEJLSV9ERUZB VUxUKGYpOwkvKiBleGNsdWRlIHRoZSByZWxhdGlvbiAqLworCWJvb2wJCXByZXhjZXB0IEJLSV9E RUZBVUxUKGYpOwkvKiBleGNsdWRlIHRoZSByZWxhdGlvbiBvciBjb2x1bW5zICovCiAKICNpZmRl ZglDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAq LwogCXBnX25vZGVfdHJlZSBwcnF1YWw7CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwotCWludDJ2ZWN0 b3IJcHJhdHRyczsJCS8qIGNvbHVtbnMgdG8gcmVwbGljYXRlICovCisJaW50MnZlY3RvcglwcmF0 dHJzOwkJLyogY29sdW1ucyB0byByZXBsaWNhdGUgb3IgZXhjbHVkZSB0bworCQkJCQkJCQkgKiBy ZXBsaWNhdGUgKi8KICNlbmRpZgogfSBGb3JtRGF0YV9wZ19wdWJsaWNhdGlvbl9yZWw7CiAKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggNWQwMjUzMjg3MDQu LjgzM2MxOTMwNWE5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1Ymxp Y2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91 dApAQCAtMjEyNSw2ICsyMTI1LDczIEBAIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUgcHViX3NjaDEu dGJsMTsKIERST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVGVzdCBFWENFUFQgY29sdW1u cyBmb3IgQ1JFQVRFIFBVQkxJQ0FUSU9OCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJP Uic7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSAoYSBpbnQgTk9UIE5VTEwsIGIgaW50 LCBjIGludCBOT1QgTlVMTCwgZCBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnB1Yl90ZXN0 X2V4Y2VwdDIgKGEgaW50LCBiIGludCwgYyBpbnQsIGQgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJf dGVzdF9leGNlcHQzIChhIGludCwgZ2VuMSBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRCwgZ2VuMiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwor LS0gVmVyaWZ5IHRoYXQgcHVibGljYXRpb24gaXMgY3JlYXRlZCB3aXRoIEVYQ0VQVAorQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxLCBw dWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIEVYQ0VQVCAoYiwgYyk7CitTRUxFQ1QgKiBGUk9NIHBn X3B1YmxpY2F0aW9uX3RhYmxlcyBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZXhjZXB0JzsKKyAg ICBwdWJuYW1lICAgICB8IHNjaGVtYW5hbWUgfCAgICB0YWJsZW5hbWUgICAgIHwgYXR0bmFtZXMg IHwgcm93ZmlsdGVyIAorLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgdGVzdHB1Yl9leGNlcHQgfCBwdWJsaWMg ICAgIHwgcHViX3Rlc3RfZXhjZXB0MSB8IHthLGIsYyxkfSB8IAorIHRlc3RwdWJfZXhjZXB0IHwg cHViX3NjaDEgICB8IHB1Yl90ZXN0X2V4Y2VwdDIgfCB7YSxkfSAgICAgfCAKKygyIHJvd3MpCisK Ky0tIENoZWNrIGZvciBpbnZhbGlkIGNhc2VzCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9l eGNlcHQyIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2gxLCBUQUJMRSBwdWJfdGVzdF9leGNl cHQxIEVYQ0VQVCAoYiwgYyk7CitFUlJPUjogIGNhbm5vdCB1c2UgY29sdW1uIGxpc3QgZm9yIHJl bGF0aW9uICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIgaW4gcHVibGljYXRpb24gInRlc3RwdWJf ZXhjZXB0MiIKK0RFVEFJTDogIENvbHVtbiBsaXN0cyBjYW5ub3QgYmUgc3BlY2lmaWVkIGluIHB1 YmxpY2F0aW9ucyBjb250YWluaW5nIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGVsZW1lbnRzLgorQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0MiBGT1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0 MSBFWENFUFQ7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICI7IgorTElORSAxOiAu Li5CTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVY Q0VQVDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQy IEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQzIEVYQ0VQVCAoZ2VuMSk7CitFUlJPUjogIGNhbm5v dCB1c2Ugc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4gImdlbjEiIGluIHB1YmxpY2F0aW9uIGNvbHVt biBsaXN0IHNwZWNpZmllZCB3aXRoIEVYQ0VQVCB3aGVuICJwdWJsaXNoX2dlbmVyYXRlZF9jb2x1 bW5zIiBzZXQgdG8gInN0b3JlZCIKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIg Rk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDMgRVhDRVBUIChnZW4yKSB3aXRoIChwdWJsaXNoX2dl bmVyYXRlZF9jb2x1bW5zKTsKK0VSUk9SOiAgY2Fubm90IHVzZSB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW4gImdlbjIiIGluIHB1YmxpY2F0aW9uIGNvbHVtbiBsaXN0CistLSBWZXJpZnkgdGhhdCBw dWJsaWNhdGlvbiBjYW4gYmUgYWx0ZXJlZCB3aXRoIEVYQ0VQVAorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9leGNlcHQgU0VUIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBiKSwg cHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MjsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25f dGFibGVzIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9leGNlcHQnOworICAgIHB1Ym5hbWUgICAg IHwgc2NoZW1hbmFtZSB8ICAgIHRhYmxlbmFtZSAgICAgfCBhdHRuYW1lcyAgfCByb3dmaWx0ZXIg CistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyB0ZXN0cHViX2V4Y2VwdCB8IHB1YmxpYyAgICAgfCBwdWJfdGVz dF9leGNlcHQxIHwge2MsZH0gICAgIHwgCisgdGVzdHB1Yl9leGNlcHQgfCBwdWJfc2NoMSAgIHwg cHViX3Rlc3RfZXhjZXB0MiB8IHthLGIsYyxkfSB8IAorKDIgcm93cykKKworLS0gVmVyaWZ5IEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2Vw dCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBiKTsKK0VSUk9SOiAgY29s dW1uIGxpc3QgbXVzdCBub3QgYmUgc3BlY2lmaWVkIGluIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBE Uk9QCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0 X2V4Y2VwdDE7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBBREQgVEFCTEUgcHVi X3Rlc3RfZXhjZXB0MSBFWENFUFQgKGMsIGQpOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlv bl90YWJsZXMgV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2V4Y2VwdCc7CisgICAgcHVibmFtZSAg ICAgfCBzY2hlbWFuYW1lIHwgICAgdGFibGVuYW1lICAgICB8IGF0dG5hbWVzICB8IHJvd2ZpbHRl ciAKKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorIHRlc3RwdWJfZXhjZXB0IHwgcHVibGljICAgICB8IHB1Yl90 ZXN0X2V4Y2VwdDEgfCB7YSxifSAgICAgfCAKKyB0ZXN0cHViX2V4Y2VwdCB8IHB1Yl9zY2gxICAg fCBwdWJfdGVzdF9leGNlcHQyIHwge2EsYixjLGR9IHwgCisoMiByb3dzKQorCistLSBWZXJpZnkg ZXhjbHVkZWQgY29sdW1ucyBjYW5ub3QgYmUgcGFydCBvZiBSRVBMSUNBIElERU5USVRZCitBTFRF UiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgRlVMTDsKK1VQREFURSBw dWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsKK0VSUk9SOiAgY2Fubm90IHVw ZGF0ZSB0YWJsZSAicHViX3Rlc3RfZXhjZXB0MSIKK0RFVEFJTDogIENvbHVtbiBsaXN0IHVzZWQg YnkgdGhlIHB1YmxpY2F0aW9uIGRvZXMgbm90IGNvdmVyIHRoZSByZXBsaWNhIGlkZW50aXR5Lgor Q1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4IE9OIHB1Yl90ZXN0X2V4 Y2VwdDEgKGEsIGMpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5U SVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitVUERBVEUgcHViX3Rlc3Rf ZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CitFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFi bGUgInB1Yl90ZXN0X2V4Y2VwdDEiCitERVRBSUw6ICBDb2x1bW4gbGlzdCB1c2VkIGJ5IHRoZSBw dWJsaWNhdGlvbiBkb2VzIG5vdCBjb3ZlciB0aGUgcmVwbGljYSBpZGVudGl0eS4KK0RST1AgSU5E RVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeDsKK0NSRUFURSBVTklRVUUgSU5ERVggcHViX3Rlc3Rf ZXhjZXB0MV9hX2lkeCBPTiBwdWJfdGVzdF9leGNlcHQxIChhKTsKK0FMVEVSIFRBQkxFIHB1Yl90 ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBwdWJfdGVzdF9leGNlcHQx X2FfaWR4OworVVBEQVRFIHB1Yl90ZXN0X2V4Y2VwdDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOwor RFJPUCBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX2V4Y2VwdDsKK0RST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MTsKK0RST1AgVEFCTEUgcHVi X3NjaDEucHViX3Rlc3RfZXhjZXB0MjsKK0RST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MzsKIERS T1AgU0NIRU1BIHB1Yl9zY2gxOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFJFU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1 YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRl eCBhZjMxYTIyMTRjYS4uM2RiYmRkYjE5NTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlv bi5zcWwKQEAgLTEzMTgsNiArMTMxOCw1MiBAQCBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXI7CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9QIFRBQkxFIHB1Yl9z Y2gxLnRibDE7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDI7CisKKy0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVGVzdCBFWENFUFQg Y29sdW1ucyBmb3IgQ1JFQVRFIFBVQkxJQ0FUSU9OCisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2Vz ID0gJ0VSUk9SJzsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIChhIGludCBOT1QgTlVM TCwgYiBpbnQsIGMgaW50IE5PVCBOVUxMLCBkIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEu cHViX3Rlc3RfZXhjZXB0MiAoYSBpbnQsIGIgaW50LCBjIGludCwgZCBpbnQpOworQ1JFQVRFIFRB QkxFIHB1Yl90ZXN0X2V4Y2VwdDMgKGEgaW50LCBnZW4xIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgU1RPUkVELCBnZW4yIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTCk7CisKKy0tIFZlcmlmeSB0aGF0IHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgd2l0aCBFWENF UFQKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBGT1IgVEFCTEUgcHViX3Rlc3Rf ZXhjZXB0MSwgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MiBFWENFUFQgKGIsIGMpOworU0VMRUNU ICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXMgV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2V4 Y2VwdCc7CisKKy0tIENoZWNrIGZvciBpbnZhbGlkIGNhc2VzCitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2gxLCBUQUJMRSBwdWJf dGVzdF9leGNlcHQxIEVYQ0VQVCAoYiwgYyk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9l eGNlcHQyIEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVDsKK0NSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDMgRVhDRVBUIChn ZW4xKTsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90 ZXN0X2V4Y2VwdDMgRVhDRVBUIChnZW4yKSB3aXRoIChwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5z KTsKKworLS0gVmVyaWZ5IHRoYXQgcHVibGljYXRpb24gY2FuIGJlIGFsdGVyZWQgd2l0aCBFWENF UFQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IFNFVCBUQUJMRSBwdWJfdGVzdF9l eGNlcHQxIEVYQ0VQVCAoYSwgYiksIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDI7CitTRUxFQ1Qg KiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlcyBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZXhj ZXB0JzsKKworLS0gVmVyaWZ5IEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBU IChhLCBiKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IERST1AgVEFCTEUgcHVi X3Rlc3RfZXhjZXB0MTsKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgQUREIFRB QkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChjLCBkKTsKK1NFTEVDVCAqIEZST00gcGdfcHVi bGljYXRpb25fdGFibGVzIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9leGNlcHQnOworCistLSBW ZXJpZnkgZXhjbHVkZWQgY29sdW1ucyBjYW5ub3QgYmUgcGFydCBvZiBSRVBMSUNBIElERU5USVRZ CitBTFRFUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgRlVMTDsKK1VQ REFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsKK0NSRUFURSBVTklR VUUgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeCBPTiBwdWJfdGVzdF9leGNlcHQxIChhLCBj KTsKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJ TkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4OworVVBEQVRFIHB1Yl90ZXN0X2V4Y2VwdDEgU0VU IGEgPSAzIFdIRVJFIGEgPSAxOworRFJPUCBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4Owor Q1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4IE9OIHB1Yl90ZXN0X2V4 Y2VwdDEgKGEpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZ IFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitVUERBVEUgcHViX3Rlc3RfZXhj ZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CisKK0RST1AgSU5ERVggcHViX3Rlc3RfZXhjZXB0 MV9hX2lkeDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQ7CitEUk9QIFRBQkxFIHB1 Yl90ZXN0X2V4Y2VwdDE7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDI7CitE Uk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDM7CiBEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIAogUkVT RVQgY2xpZW50X21pbl9tZXNzYWdlczsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRp b24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCmluZGV4IDFkMTE1MjgzODA5Li5h ZWZhNjdlNjE0NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3JlcF9j aGFuZ2VzX2V4Y2VwdF90YWJsZS5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZf cmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCkBAIC0xLDcgKzEsNyBAQAogCiAjIENvcHlyaWdo dCAoYykgMjAyMS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogCi0j IExvZ2ljYWwgcmVwbGljYXRpb24gdGVzdHMgZm9yIGV4Y2VwdCB0YWJsZSBwdWJsaWNhdGlvbnMK KyMgTG9naWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBmb3IgZXhjZXB0IHRhYmxlIGFuZCBleGNlcHQg Y29sdW1uIHB1YmxpY2F0aW9ucwogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5nczsKIHVzZSBQb3N0 Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwpAQCAtNzcsNiArNzcsOTggQEAgJHJlc3VsdCA9ICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1QgY291bnQoKiksIG1p bihhKSwgbWF4KGEpIEZST00gcHVibGljLnRhYjEiKTsKIGlzKCRyZXN1bHQsIHFxKDB8fCksICdj aGVjayByb3dzIG9uIHN1YnNjcmliZXIgY2F0Y2h1cCcpOwogCisjIFRlc3QgZm9yIGV4Y2VwdCBj b2x1bW4gcHVibGljYXRpb25zCisjIEluaXRpYWwgc2V0dXAKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0YWIyIChhIGludCwgYiBpbnQgTk9U IE5VTEwsIGMgaW50KSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMiAoYSBpbnQsIGIgaW50LCBjIGludCkiKTsKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0YWIzIChh IGludCwgYiBpbnQsIGMgaW50KSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRhYjQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RP UkVEKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJU IElOVE8gdGFiMiBWQUxVRVMgKDEsIDIsIDMpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyBzY2gxLnRhYjIgVkFMVUVTICgxLCAyLCAzKSIp OworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRhcF9wdWJfY29sIEZPUiBUQUJMRSB0YWIyIEVYQ0VQVCAoYSksIHNjaDEudGFiMiBF WENFUFQgKGIsIGMpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJDUkVBVEUgVEFCTEUgdGFiMiAoYSBpbnQsIGIgaW50IE5PVCBOVUxMLCBjIGludCkiKTsK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUg c2NoMS50YWIyIChhIGludCwgYiBpbnQsIGMgaW50KSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0YWIzIChhIGludCwgYiBpbnQsIGMg aW50KSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFU RSBUQUJMRSB0YWI0IChhIGludCwgYiBpbnQsIGMgaW50KSIpOworJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wg Q09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCIK Kyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9w dWJsaXNoZXIsICd0YXBfc3ViX2NvbCcpOworCisjIFRlc3QgaW5pdGlhbCBzeW5jCiskcmVzdWx0 ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9N IHRhYjIiKTsKK2lzKCRyZXN1bHQsIHFxKHwyfDMpLAorCSdjaGVjayB0aGF0IGluaXRpYWwgc3lu YyBmb3IgZXhjZXB0IGNvbHVtbiBwdWJsaWNhdGlvbicpOworJHJlc3VsdCA9ICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnRhYjIiKTsK K2lzKCRyZXN1bHQsIHFxKDF8fCksICdjaGVjayB0aGF0IGluaXRpYWwgc3luYyBmb3IgZXhjZXB0 IGNvbHVtbiBwdWJsaWNhdGlvbicpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIklOU0VSVCBJTlRPIHRhYjIgVkFMVUVTICg0LCA1LCA2KSIpOworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gc2NoMS50YWIyIFZBTFVF UyAoNCwgNSwgNikiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1 Yl9jb2wnKTsKKworIyBUZXN0IGluY3JlbWVudGFsIGNoYW5nZXMKKyRyZXN1bHQgPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMiIpOwor aXMoICRyZXN1bHQsIHFxKHwyfDMKK3w1fDYpLAorCSdjaGVjayBpbmNyZW1lbnRhbCBpbnNlcnQg Zm9yIGV4Y2VwdCBjb2x1bW4gcHVibGljYXRpb24nKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS50YWIyIik7Citp cyggJHJlc3VsdCwgcXEoMXx8Cis0fHwpLCAnY2hlY2sgaW5jcmVtZW50YWwgaW5zZXJ0IGZvciBl eGNlcHQgY29sdW1uIHB1YmxpY2F0aW9uJyk7CisKKyMgVGVzdCBmb3IgdXBkYXRlCiskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVU5JUVVFIElOREVYIGJf aWR4IE9OIHRhYjIgKGIpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJBTFRFUiBUQUJMRSB0YWIyIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggYl9pZHgi KTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVU5J UVVFIElOREVYIGJfaWR4IE9OIHRhYjIgKGIpIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGFiMiBSRVBMSUNBIElERU5USVRZIFVTSU5H IElOREVYIGJfaWR4Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJVUERBVEUgdGFiMiBTRVQgYSA9IDMsIGIgPSA0LCBjID0gNSBXSEVSRSBhID0gMSIpOworJG5v ZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9 ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0 YWIyIik7CitpcyggJHJlc3VsdCwgcXEofDV8NgorfDR8NSksCisJJ2NoZWNrIHVwZGF0ZSBmb3Ig ZXhjZXB0IGNvbHVtbiBwdWJsaWNhdGlvbicpOworCisjIFRlc3QgQUxURVIgUFVCTElDQVRJT04g Zm9yIEVYQ0VQVCAoY29sX2xpc3QpCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBBREQgVEFCTEUgdGFiMyBFWENF UFQoYikiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRF UiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNBVElPTiIpOworJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjMgVkFMVUVT ICgxLCAyLCAzKSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3Vi X2NvbCcpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiU0VMRUNUICogRlJPTSB0YWIzIik7CitpcygkcmVzdWx0LCBxcSgxfHwzKSwgJ2NoZWNrIGFs dGVyIHB1YmxpY2F0aW9uIHdpdGggRVhDRVBUJyk7CisKKyMgVGVzdCBmb3IgcHVibGljYXRpb24g Y3JlYXRlZCBvbiB0YWJsZSB3aXRoIGdlbmVyYXRlZCBjb2x1bW5zIGFuZCBjb2x1bW4gbGlzdAor IyBzcGVjaWZpZWQgd2l0aCBFWENFUFQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJJTlNFUlQgSU5UTyB0YWI0IFZBTFVFUyAoMSkiKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIFNF VCAocHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucykiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIFNFVCBUQUJM RSB0YWI0IEVYQ0VQVChiKSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX2NvbCBSRUZSRVNIIFBVQkxJQ0FUSU9O Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8g dGFiNCBWQUxVRVMgKDIpIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3Rh cF9zdWJfY29sJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjQiKTsKK2lzKCAkcmVzdWx0LCBxcSgxfHwzCisyfHw2 KSwgJ2NoZWNrIHB1YmxpY2F0aW9uIHdpdGggZ2VuZXJhdGVkIGNvbHVtbnMgYW5kIEVYQ0VQVCcp OworCiAkbm9kZV9zdWJzY3JpYmVyLT5zdG9wKCdmYXN0Jyk7CiAkbm9kZV9wdWJsaXNoZXItPnN0 b3AoJ2Zhc3QnKTsKIAotLSAKMi4zNC4xCgo= --0000000000008103210638499d9e Content-Type: application/octet-stream; name="v14-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v14-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mca0foqy1 RnJvbSAzYjBhMzY4NDgzMDJlODlkMzRhODNmN2E3ZDcyOTFhYTkxMWI4MjkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTk6MDg6MzUgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx NCAyLzNdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFC TEUuCgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNB VElPTiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlz aGVyIHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJz Y3JpYmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRp b25zIHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6 CkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0MSx0 MjsKb3IKQUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg dDEsdDI7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdfcHVi bGljYXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdh bnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVk IHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0 aW9ucy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhj bHVkZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFz c29jaWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSAr CiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDggKy0K IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAxOSArLQog ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDI5ICsrLQog ZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAgIHwgICA1ICstCiBz cmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgICAgICAgICAgfCAgNjggKysrKy0t CiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAxOTcgKysr KysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAg ICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAg ICAgICB8ICA0MSArKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1 dC5jICAgfCAgMjUgKy0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAg ICAgICAgfCAgMTYgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAg ICAgICB8ICA1NiArKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAg ICAgICB8ICAgNyArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAg ICAgfCAgMjAgKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAg ICB8ICA2MiArKysrKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAg ICAgICB8ICAxMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAg ICAgIHwgICA3ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggICAgICAg IHwgICA1ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAg fCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgICAgIHwg IDk3ICsrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAg ICAgIHwgIDQ3ICsrKystCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAg ICAgICAgfCAgIDEgKwogLi4uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCAgICAg ICAgIHwgIDgzICsrKysrKysrCiAyNSBmaWxlcyBjaGFuZ2VkLCA2ODkgaW5zZXJ0aW9ucygrKSwg MTM0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGZh ODZjNTY5ZGM0Li40ZTM3YzkyOGI0NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY1NjgsNiArNjU2OCwx NSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0Ozwv cmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgaWYgdGhlcmUgaXMgbm8gcHVibGlj YXRpb24gcXVhbGlmeWluZyBjb25kaXRpb24uPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93Pgog CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgPHN0cnVjdGZpZWxkPnByZXhjZXB0 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIFRydWUgaWYgdGhlIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVkZWQKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KICAgICAgICA8c3RydWN0ZmllbGQ+cHJhdHRyczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDJ2 ZWN0b3I8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlv bi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAppbmRleCBjMzJl NmJjMDAwZC4uM2QwZDI5Y2Y4YjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dt bApAQCAtMjI1MSwxMCArMjI1MSwxMCBAQCBDT05URVhUOiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0 YSBmb3IgcmVwbGljYXRpb24gb3JpZ2luICJwZ18xNjM5NSIgZHVyaW5nICJJTlNFUgogICA8L3Bh cmE+CiAKICAgPHBhcmE+Ci0gICBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sIHRoZSB1 c2VyIG11c3QgaGF2ZSBvd25lcnNoaXAgcmlnaHRzIG9uIHRoZQotICAgdGFibGUuIFRvIGFkZCBh bGwgdGFibGVzIGluIHNjaGVtYSB0byBhIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEK LSAgIHN1cGVydXNlci4gVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxs IHRhYmxlcyBvciBhbGwgdGFibGVzIGluCi0gICBzY2hlbWEgYXV0b21hdGljYWxseSwgdGhlIHVz ZXIgbXVzdCBiZSBhIHN1cGVydXNlci4KKyAgIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIHVzaW5n IEZPUiBBTEwgVEFCTEVTIG9yIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSwKKyAgIHRoZSB1c2Vy IG11c3QgYmUgYSBzdXBlcnVzZXIuIFRvIGFkZCBBTEwgVEFCTEVTIG9yIEFMTCBUQUJMRVMgSU4g U0NIRU1BIHRvIGEKKyAgIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2Vy LiBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sCisgICB0aGUgdXNlciBtdXN0IGhhdmUg b3duZXJzaGlwIHJpZ2h0cyBvbiB0aGUgdGFibGUuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCAwNjQ1MmFmOTIxNC4uMzdl MmM4NGJjMTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIy LDYgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2Pgog PHN5bm9wc2lzPgogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBBREQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLl0KK0FMVEVSIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQURE IEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBTRVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwv cmVwbGFjZWFibGU+IFssIC4uLl0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gRFJPUCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uXQogQUxU RVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25f cGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKQEAgLTMzLDYgKzM0LDExIEBAIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gUkVTRVQKIAogICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBb IFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1ND SEVNQSB9IFssIC4uLiBdCisKKzxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKworICAg IFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAqIF0KKwogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC04 OSw4ICs5NSw5IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAogICA8cGFyYT4KICAgIFlvdSBtdXN0IG93 biB0aGUgcHVibGljYXRpb24gdG8gdXNlIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FUSU9OPC9jb21t YW5kPi4KLSAgIEFkZGluZyBhIHRhYmxlIHRvIGEgcHVibGljYXRpb24gYWRkaXRpb25hbGx5IHJl cXVpcmVzIG93bmluZyB0aGF0IHRhYmxlLgotICAgVGhlIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4g U0NIRU1BPC9saXRlcmFsPiwKKyAgIEFkZGluZyBhIHRhYmxlIHRvIG9yIGV4Y2x1ZGluZyBhIHRh YmxlIGZyb20gYSBwdWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkKKyAgIHJlcXVpcmVzIG93bmluZyB0 aGF0IHRhYmxlLiBUaGUgPGxpdGVyYWw+QUREIEFMTCBUQUJMRVM8L2xpdGVyYWw+LAorICAgPGxp dGVyYWw+QUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwKICAgIDxsaXRlcmFsPlNF VCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIGFuZAogICAgPGxp dGVyYWw+UkVTRVQ8L2xpdGVyYWw+IG9mIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRoZSBpbnZva2lu ZyB1c2VyIHRvIGJlIGEKICAgIHN1cGVydXNlci4gVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVz dCBiZSBhYmxlIHRvCkBAIC0yMzgsNiArMjQ1LDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNhbGVz X3B1YmxpY2F0aW9uIEFERCBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3By b2dyYW1saXN0aW5nPgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBBbHRlciBwdWJsaWNhdGlv biA8c3RydWN0bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiB0byBwdWJs aXNoCisgICBhbGwgdGFibGVzIGV4Y2VwdCA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4g YW5kCisgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxp c3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBBTEwg VEFCTEVTIEVYQ0VQVCB1c2VycywgZGVwYXJ0bWVudHM7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KKwogICA8cGFyYT4KICAgIEFkZCB0YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5h bWU+LAogICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+IGFuZCBzY2hlbWEK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDgwMjYzMGYyZGYx Li43ZmQ4ODcyZGI1ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGlj YXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21s CkBAIC0yMiw3ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNp c2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+Ci0gICAgWyBGT1IgQUxMIFRBQkxFUworICAg IFsgRk9SIEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogICAg ICAgfCBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVj dDwvcmVwbGFjZWFibGU+IFssIC4uLiBdIF0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBd ICkgXQogCkBAIC0zMCw2ICszMCwxMCBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogCiAgICAgVEFCTEUgWyBPTkxZ IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxl PiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxF UyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8 L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KKworPHBocmFzZT53aGVy ZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFj ZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXQogPC9zeW5vcHNpcz4KICA8 L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0xMjUsNyArMTI5LDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8 bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9u ZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgotICAgICAgdGhlIGRh dGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgIHRo ZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuIElmCisg ICAgICA8bGl0ZXJhbD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlbiBl eGNsdWRlIHJlcGxpY2F0aW5nCisgICAgICB0aGUgY2hhbmdlcyBmb3IgdGhlIHNwZWNpZmllZCB0 YWJsZXMuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+ CkBAIC0xNjEsNiArMTY3LDE2IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwv dmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlcHVibGljYXRp b24tcGFyYW1zLWZvci1leGNlcHQtdGFibGUiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkVYQ0VQVCBU QUJMRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoaXMgY2xhdXNlIHNwZWNpZmllcyBhIGxpc3Qgb2YgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkIGZy b20gdGhlCisgICAgICBwdWJsaWNhdGlvbi4gSXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIDxsaXRl cmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRoIj4KICAgICA8dGVybT48bGl0ZXJhbD5XSVRIICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFj ZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFi bGU+XSBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC00NDIs NiArNDU4LDE1IEBAIENSRUFURSBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEZP UiBUQUJMRSB1c2VycywgZGVwYXJ0bWVudHMsIFRBQkxFUyBJCiBDUkVBVEUgUFVCTElDQVRJT04g c2FsZXNfcHVibGljYXRpb24gRk9SIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsK IDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGlj YXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgaW4gYWxsIHRoZSB0YWJsZXMgZXhjZXB0 IGZvcgorICAgdGhlIGNoYW5nZXMgb2YgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGFu ZAorICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0 aW5nPgorQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gRk9SIEFMTCBUQUJMRVMgRVhD RVBUIHVzZXJzLCBkZXBhcnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwog ICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBjaGFu Z2VzIGZvciB0YWJsZSA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICBidXQgcmVw bGljYXRlcyBvbmx5IGNvbHVtbnMgPHN0cnVjdG5hbWU+dXNlcl9pZDwvc3RydWN0bmFtZT4gYW5k CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggNTcwZWYyMWQxZmMuLmQ5Y2Q5NmRjYWJhIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMTAzLDggKzIxMDMsOSBAQCBTRUxFQ1QgJDEgXHBhcnNl IHN0bXQxCiAgICAgICAgIGxpc3RlZC4KICAgICAgICAgSWYgPGxpdGVyYWw+eDwvbGl0ZXJhbD4g aXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwgdGhlIHJlc3VsdHMKICAgICAgICAgYXJl IGRpc3BsYXllZCBpbiBleHBhbmRlZCBtb2RlLgotICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRl cmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzIGFuZAotICAg ICAgICBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1YmxpY2F0aW9uIGFyZSBzaG93biBh cyB3ZWxsLgorICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0 aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzLAorICAgICAgICBleGNsdWRlZCB0YWJsZXMgYW5k IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcHVibGljYXRpb24gYXJlIHNob3duIGFzCisg ICAgICAgIHdlbGwuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAg IDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IGQ2 Zjk0ZGI1ZDk5Li5lYzU4MGUzYjA1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24u YwpAQCAtMzUxLDcgKzM1MSw4IEBAIEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0 ICpyZXN1bHQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKICAqIGFuY2VzdG9yIGlz IGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCiAgKi8KIE9pZAotR2V0VG9wTW9zdEFuY2VzdG9ySW5Q dWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0b3JfbGV2 ZWwpCitHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFu Y2VzdG9ycywKKwkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCwgYm9vbCBwdWJhbGx0YWJsZXMp CiB7CiAJTGlzdENlbGwgICAqbGM7CiAJT2lkCQkJdG9wbW9zdF9yZWxpZCA9IEludmFsaWRPaWQ7 CkBAIC0zNjMsMzIgKzM2NCw0NCBAQCBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9p ZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbAogCWZvcmVhY2go bGMsIGFuY2VzdG9ycykKIAl7CiAJCU9pZAkJCWFuY2VzdG9yID0gbGZpcnN0X29pZChsYyk7Ci0J CUxpc3QJICAgKmFwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3Rvcik7Ci0J CUxpc3QJICAgKmFzY2hlbWFQdWJpZHMgPSBOSUw7CisJCUxpc3QJICAgKmFwdWJpZHMgPSBHZXRS ZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpOworCQlMaXN0CSAgICphc2NoZW1h cHViaWRzID0gTklMOworCQlMaXN0CSAgICphZXhjZXB0cHViaWRzID0gTklMOworCQlib29sCQlz ZXRfdG9wID0gZmFsc2U7CiAKIAkJbGV2ZWwrKzsKIAotCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFw dWJpZHMsIHB1Ym9pZCkpCisJCS8qIGNoZWNrIGlmIG1lbWJlciBvZiB0YWJsZSBwdWJsaWNhdGlv bnMgKi8KKwkJc2V0X3RvcCA9IGxpc3RfbWVtYmVyX29pZChhcHViaWRzLCBwdWJvaWQpOworCQlp ZiAoIXNldF90b3ApCiAJCXsKLQkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKKwkJCWFzY2hl bWFwdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0 b3IpKTsKIAotCQkJaWYgKGFuY2VzdG9yX2xldmVsKQotCQkJCSphbmNlc3Rvcl9sZXZlbCA9IGxl dmVsOworCQkJLyogY2hlY2sgaWYgbWVtYmVyIG9mIHNjaGVtYSBwdWJsaWNhdGlvbnMgKi8KKwkJ CXNldF90b3AgPSBsaXN0X21lbWJlcl9vaWQoYXNjaGVtYXB1YmlkcywgcHVib2lkKTsKKworCQkJ LyoKKwkJCSAqIElmIHRoZSBwdWJsaWNhdGlvbiBpcyBhbGwgdGFibGVzIHB1YmxpY2F0aW9uIGFu ZCB0aGUgdGFibGUgaXMKKwkJCSAqIG5vdCBwYXJ0IG9mIGV4Y2VwdGlvbiB0YWJsZXMuCisJCQkg Ki8KKwkJCWlmICghc2V0X3RvcCAmJiBwdWJhbGx0YWJsZXMpCisJCQl7CisJCQkJYWV4Y2VwdHB1 YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKTsKKwkJCQlzZXRf dG9wID0gIWxpc3RfbWVtYmVyX29pZChhZXhjZXB0cHViaWRzLCBwdWJvaWQpOworCQkJfQogCQl9 Ci0JCWVsc2UKKworCQlpZiAoc2V0X3RvcCkKIAkJewotCQkJYXNjaGVtYVB1YmlkcyA9IEdldFNj aGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVsX25hbWVzcGFjZShhbmNlc3RvcikpOwotCQkJaWYgKGxp c3RfbWVtYmVyX29pZChhc2NoZW1hUHViaWRzLCBwdWJvaWQpKQotCQkJewotCQkJCXRvcG1vc3Rf cmVsaWQgPSBhbmNlc3RvcjsKKwkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKIAotCQkJCWlm IChhbmNlc3Rvcl9sZXZlbCkKLQkJCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7Ci0JCQl9CisJ CQlpZiAoYW5jZXN0b3JfbGV2ZWwpCisJCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7CiAJCX0K IAogCQlsaXN0X2ZyZWUoYXB1Ymlkcyk7Ci0JCWxpc3RfZnJlZShhc2NoZW1hUHViaWRzKTsKKwkJ bGlzdF9mcmVlKGFzY2hlbWFwdWJpZHMpOworCQlsaXN0X2ZyZWUoYWV4Y2VwdHB1Ymlkcyk7CiAJ fQogCiAJcmV0dXJuIHRvcG1vc3RfcmVsaWQ7CkBAIC00NzksNiArNDkyLDggQEAgcHVibGljYXRp b25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJCU9i amVjdElkR2V0RGF0dW0ocHViaWQpOwogCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9w cnJlbGlkIC0gMV0gPQogCQlPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKKwl2YWx1ZXNbQW51bV9w Z19wdWJsaWNhdGlvbl9yZWxfcHJleGNlcHQgLSAxXSA9CisJCUJvb2xHZXREYXR1bShwcmktPmV4 Y2VwdCk7CiAKIAkvKiBBZGQgcXVhbGlmaWNhdGlvbnMsIGlmIGF2YWlsYWJsZSAqLwogCWlmIChw cmktPndoZXJlQ2xhdXNlICE9IE5VTEwpCkBAIC03NDYsOSArNzYxLDkgQEAgcHVibGljYXRpb25f YWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwgYm9vbCBpZl9ub3RfZXhpc3RzKQog CXJldHVybiBteXNlbGY7CiB9CiAKLS8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBvaWRzIGZv ciBhIHJlbGF0aW9uICovCisvKiBHZXRzIGxpc3Qgb2YgcHVibGljYXRpb24gb2lkcyBmb3IgYSBy ZWxhdGlvbiB0aGF0IG1hdGNoZXMgdGhlIGV4Y2VwdF9mbGFnICovCiBMaXN0ICoKLUdldFJlbGF0 aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKK0dldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCBy ZWxpZCwgYm9vbCBleGNlcHRfZmxhZykKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CiAJQ2F0 Q0xpc3QgICAqcHVicmVsbGlzdDsKQEAgLTc2Miw3ICs3NzcsOCBAQCBHZXRSZWxhdGlvblB1Ymxp Y2F0aW9ucyhPaWQgcmVsaWQpCiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlzdC0+bWVtYmVy c1tpXS0+dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkg R0VUU1RSVUNUKHR1cCkpLT5wcnB1YmlkOwogCi0JCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3Vs dCwgcHViaWQpOworCQlpZiAoZXhjZXB0X2ZsYWcgPT0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3Jl bCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdCkKKwkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJl c3VsdCwgcHViaWQpOwogCX0KIAogCVJlbGVhc2VTeXNDYWNoZUxpc3QocHVicmVsbGlzdCk7CkBA IC04NjEsMTMgKzg3NywxNiBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnModm9pZCkKICAqIHJv b3QgcGFydGl0aW9uZWQgdGFibGVzLgogICovCiBMaXN0ICoKLUdldEFsbFRhYmxlc1B1YmxpY2F0 aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKK0dldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVs YXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290KQogewogCVJlbGF0aW9uCWNsYXNzUmVs OwogCVNjYW5LZXlEYXRhIGtleVsxXTsKIAlUYWJsZVNjYW5EZXNjIHNjYW47CiAJSGVhcFR1cGxl CXR1cGxlOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0CSAgICpleGNlcHRsaXN0Owor CisJZXhjZXB0bGlzdCA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElP Tl9QQVJUX0FMTCk7CiAKIAljbGFzc1JlbCA9IHRhYmxlX29wZW4oUmVsYXRpb25SZWxhdGlvbklk LCBBY2Nlc3NTaGFyZUxvY2spOwogCkBAIC04ODQsNyArOTAzLDggQEAgR2V0QWxsVGFibGVzUHVi bGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQogCQlPaWQJCQlyZWxpZCA9IHJlbEZv cm0tPm9pZDsKIAogCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZvcm0pICYm Ci0JCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3QpKQorCQkJIShyZWxG b3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSAmJgorCQkJIWxpc3RfbWVtYmVyX29p ZChleGNlcHRsaXN0LCByZWxpZCkpCiAJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHJl bGlkKTsKIAl9CiAKQEAgLTkwNSw3ICs5MjUsOCBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJl bGF0aW9ucyhib29sIHB1YnZpYXJvb3QpCiAJCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsK IAogCQkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJCSFy ZWxGb3JtLT5yZWxpc3BhcnRpdGlvbikKKwkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYK KwkJCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCQlyZXN1bHQgPSBs YXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAkJfQogCkBAIC0xMTYwLDcgKzExODEsOCBAQCBw Z19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkgKiB0aG9zZS4g T3RoZXJ3aXNlLCBnZXQgdGhlIHBhcnRpdGlvbmVkIHRhYmxlIGl0c2VsZi4KIAkJCSAqLwogCQkJ aWYgKHB1Yl9lbGVtLT5hbGx0YWJsZXMpCi0JCQkJcHViX2VsZW1fdGFibGVzID0gR2V0QWxsVGFi bGVzUHVibGljYXRpb25SZWxhdGlvbnMocHViX2VsZW0tPnB1YnZpYXJvb3QpOworCQkJCXB1Yl9l bGVtX3RhYmxlcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKHB1Yl9lbGVtLT5v aWQsCisJCQkJCQkJCQkJCQkJCQkJICAgcHViX2VsZW0tPnB1YnZpYXJvb3QpOwogCQkJZWxzZQog CQkJewogCQkJCUxpc3QJICAgKnJlbGlkcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25j bWRzLmMKaW5kZXggMTU5ZGMzNzgxZDAuLjUxOTRiMmZiNmUyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMjA0LDYgKzIwNCwxMSBAQCBPYmplY3RzSW5QdWJsaWNh dGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ c3dpdGNoIChwdWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpf VEFCTEU6CisJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CisJCQkJKnJlbHMg PSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQlicmVhazsKKwkJCWNhc2Ug UFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2Vw dCA9IHRydWU7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsK IAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQToKQEAg LTI3OCw3ICsyODMsNyBAQCBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2VyKE5vZGUgKm5v ZGUsIHJmX2NvbnRleHQgKmNvbnRleHQpCiAgKi8KIGJvb2wKIHB1Yl9yZl9jb250YWluc19pbnZh bGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMs Ci0JCQkJCQkJICAgYm9vbCBwdWJ2aWFyb290KQorCQkJCQkJCSAgIGJvb2wgcHVidmlhcm9vdCwg Ym9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJSGVhcFR1cGxlCXJmdHVwbGU7CiAJT2lkCQkJcmVsaWQg PSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTMwNSw3ICszMTAsOCBAQCBwdWJfcmZf Y29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlz dCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlz cGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBHZXRUb3BNb3N0QW5jZXN0 b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQkJPSBHZXRUb3BNb3N0 QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsCisJCQkJCQkJCQkJ CSAgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkp CiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC0zNjUsNyArMzcxLDcgQEAgcHViX3Jm X2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExp c3QgKmFuY2VzdG9ycywKIGJvb2wKIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHVi aWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJCQkJYm9vbCBwdWJ2 aWFyb290LCBjaGFyIHB1YmdlbmNvbHNfdHlwZSwKLQkJCQkJCQlib29sICppbnZhbGlkX2NvbHVt bl9saXN0LAorCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzLCBib29sICppbnZhbGlkX2NvbHVtbl9s aXN0LAogCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCkKIHsKIAlPaWQJCQlyZWxpZCA9IFJl bGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMzg5LDcgKzM5NSw4IEBAIHB1Yl9jb250YWlu c19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNl c3RvcnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3JlbC0+cmVsaXNw YXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5Q dWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlzaF9hc19yZWxpZCA9 IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywKKwkJCQkJ CQkJCQkJCQkJICAgTlVMTCwgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVi bGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC05MjEsNTIg KzkyOCw1MCBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1 YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkvKiBNYWtlIHRoZSBjaGFuZ2VzIHZpc2libGUuICovCiAJ Q29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKIAotCS8qIEFzc29jaWF0ZSBvYmplY3RzIHdpdGgg dGhlIHB1YmxpY2F0aW9uLiAqLwotCWlmIChzdG10LT5mb3JfYWxsX3RhYmxlcykKLQl7Ci0JCS8q IEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlvbiBpbmZvIGlzIHJlYnVpbHQu ICovCi0JCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7Ci0JfQotCWVsc2UKLQl7Ci0JCU9i amVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0 aW9ucywKLQkJCQkJCQkJICAgJnNjaGVtYWlkbGlzdCk7CisJT2JqZWN0c0luUHVibGljYXRpb25U b09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAorCQkJCQkJCSAgICZz Y2hlbWFpZGxpc3QpOwogCi0JCS8qIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHJlcXVpcmVzIHN1cGVy dXNlciAqLwotCQlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCAmJiAhc3VwZXJ1c2VyKCkpCi0JCQll cmVwb3J0KEVSUk9SLAotCQkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVH RSksCi0JCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIEZPUiBUQUJMRVMg SU4gU0NIRU1BIHB1YmxpY2F0aW9uIikpOworCS8qIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHJlcXVp cmVzIHN1cGVydXNlciAqLworCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMICYmICFzdXBlcnVzZXIo KSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BS SVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBjcmVhdGUgRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcHVibGljYXRpb24iKSk7CiAKLQkJaWYgKHJlbGF0aW9ucyAhPSBOSUwp Ci0JCXsKLQkJCUxpc3QJICAgKnJlbHM7CisJaWYgKHJlbGF0aW9ucyAhPSBOSUwpCisJeworCQlM aXN0CSAgICpyZWxzOwogCi0JCQlyZWxzID0gT3BlblRhYmxlTGlzdChyZWxhdGlvbnMpOwotCQkJ VHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAotCQkJ CQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKKwkJcmVscyA9IE9wZW5UYWJsZUxp c3QocmVsYXRpb25zKTsKKwkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+ cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQkgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCi0J CQlDaGVja1B1YlJlbGF0aW9uQ29sdW1uTGlzdChzdG10LT5wdWJuYW1lLCByZWxzLAotCQkJCQkJ CQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCwKLQkJCQkJCQkJCSAgIHB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290KTsKKwkJQ2hlY2tQdWJSZWxhdGlvbkNvbHVtbkxpc3Qoc3RtdC0+cHVibmFtZSwg cmVscywKKwkJCQkJCQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCwKKwkJCQkJCQkJICAgcHVibGlz aF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCi0JCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQs IHJlbHMsIHRydWUsIE5VTEwpOwotCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7Ci0JCX0KKwkJUHVi bGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKKwkJQ2xvc2VUYWJs ZUxpc3QocmVscyk7CisJfQogCi0JCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMKQotCQl7Ci0JCQkv KgotCQkJICogU2NoZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0aGUgcHVibGljYXRpb24gaXMgY3Jl YXRlZCB0byBwcmV2ZW50Ci0JCQkgKiBjb25jdXJyZW50IHNjaGVtYSBkZWxldGlvbi4KLQkJCSAq LwotCQkJTG9ja1NjaGVtYUxpc3Qoc2NoZW1haWRsaXN0KTsKLQkJCVB1YmxpY2F0aW9uQWRkU2No ZW1hcyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7Ci0JCX0KKwlpZiAoc2NoZW1h aWRsaXN0ICE9IE5JTCkKKwl7CisJCS8qCisJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQgdW50aWwg dGhlIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVudAorCQkgKiBjb25jdXJyZW50IHNj aGVtYSBkZWxldGlvbi4KKwkJICovCisJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7CisJ CVB1YmxpY2F0aW9uQWRkU2NoZW1hcyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7 CiAJfQogCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAorCS8qIEFzc29j aWF0ZSBvYmplY3RzIHdpdGggdGhlIHB1YmxpY2F0aW9uLiAqLworCWlmIChzdG10LT5mb3JfYWxs X3RhYmxlcykKKwl7CisJCS8qIEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlv biBpbmZvIGlzIHJlYnVpbHQuICovCisJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CisJ fQorCiAJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soUHVibGljYXRpb25SZWxhdGlvbklkLCBw dWJvaWQsIDApOwogCiAJaWYgKHdhbF9sZXZlbCAhPSBXQUxfTEVWRUxfTE9HSUNBTCkKQEAgLTEy NDYsNiArMTI1MSwyNyBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJnZW5jb2xzIC0gMV0gPSBDaGFyR2V0RGF0dW0oUFVCX0RFRkFVTFRfR0VOQ09MUyk7CiAJ cmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5jb2xzIC0gMV0gPSB0cnVlOwogCisJ LyoKKwkgKiBMb2NrIHRoZSBwdWJsaWNhdGlvbiBzbyBub2JvZHkgZWxzZSBjYW4gZG8gYW55dGhp bmcgd2l0aCBpdC4gVGhpcworCSAqIHByZXZlbnRzIGNvbmN1cnJlbnQgcHVibGljYXRpb24gcGFy YW1ldGVyIGNoYW5nZXMsIGFkZC9kcm9wIHRhYmxlcyhzKQorCSAqIHRvIHRoZSBwdWJsaWNhdGlv biBhbmQgYWRkL2Ryb3Agc2NoZW1hKHMpIHRvIHRoZSBwdWJsaWNhdGlvbi4KKwkgKi8KKwlMb2Nr RGF0YWJhc2VPYmplY3QoUHVibGljYXRpb25SZWxhdGlvbklkLCBwdWJpZCwgMCwKKwkJCQkJICAg QWNjZXNzRXhjbHVzaXZlTG9jayk7CisKKwkvKgorCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgYnkg dGhlIHRpbWUgd2UgYWNxdWlyZSB0aGUgbG9jayBvbiBwdWJsaWNhdGlvbiwKKwkgKiBjb25jdXJy ZW50IERETCBoYXMgcmVtb3ZlZCBpdC4gV2UgY2FuIHRlc3QgdGhpcyBieSBjaGVja2luZyB0aGUK KwkgKiBleGlzdGVuY2Ugb2YgcHVibGljYXRpb24uIFdlIGdldCB0aGUgdHVwbGUgYWdhaW4gdG8g YXZvaWQgdGhlIHJpc2sgb2YKKwkgKiBhbnkgcHVibGljYXRpb24gb3B0aW9uIGdldHRpbmcgY2hh bmdlZC4KKwkgKi8KKwl0dXAgPSBTZWFyY2hTeXNDYWNoZUNvcHkxKFBVQkxJQ0FUSU9OT0lELCBP YmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAor CQkJCWVycm1zZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJICAg c3RtdC0+cHVibmFtZSkpOworCiAJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSAqLwog CWlmIChwdWJmb3JtLT5wdWJhbGx0YWJsZXMpCiAJewpAQCAtMTI4NCw2ICsxMzEwLDc5IEBAIEFs dGVyUHVibGljYXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25T dG10ICpzdG10LAogCX0KIH0KIAorLyoKKyAqIENoZWNrIGlmIHRoZSBwdWJsaWNhdGlvbiBoYXMg ZGVmYXVsdCB2YWx1ZXMuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBwdWJsaWNhdGlvbiBz YXRpc2ZpZXMgYWxsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIGEpIFB1YmxpY2F0aW9u IGlzIG5vdCBzZXQgd2l0aCAiRk9SIEFMTCBUQUJMRVMiCisgKiBiKSBQdWJsaWNhdGlvbiBpcyBo YXZpbmcgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCisgKiBjKSBQdWJsaWNh dGlvbiBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHNjaGVtYXMKKyAqIGQpIFB1YmxpY2F0aW9uIGlz IG5vdCBhc3NvY2lhdGVkIHdpdGggcmVsYXRpb25zCisgKi8KK3N0YXRpYyBib29sCitDaGVja1B1 YmxpY2F0aW9uRGVmVmFsdWVzKEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlv biBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJ CXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJICAgKnB1Ym9ianMgPSBOSUw7CisKKwlpZiAo cHViZm9ybS0+cHViYWxsdGFibGVzICE9IFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMpCisJCXJldHVy biBmYWxzZTsKKworCWlmIChwdWJmb3JtLT5wdWJpbnNlcnQgIT0gUFVCX0RFRkFVTFRfQUNUSU9O X0lOU0VSVCB8fAorCQlwdWJmb3JtLT5wdWJ1cGRhdGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX1VQ REFURSB8fAorCQlwdWJmb3JtLT5wdWJkZWxldGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVU RSB8fAorCQlwdWJmb3JtLT5wdWJ0cnVuY2F0ZSAhPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNB VEUgfHwKKwkJcHViZm9ybS0+cHVidmlhcm9vdCAhPSBQVUJfREVGQVVMVF9WSUFfUk9PVCkKKwkJ cmV0dXJuIGZhbHNlOworCisJcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7 CisJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwdWJvYmpz ID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7 CisJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4g dHJ1ZTsKK30KKworLyoKKyAqIFNldCBwdWJsaWNhdGlvbiB0byBwdWJsaXNoIGFsbCB0YWJsZXMu CisgKi8KK3N0YXRpYyB2b2lkCitBbHRlclB1YmxpY2F0aW9uU2V0QWxsVGFibGVzKFJlbGF0aW9u IHJlbCwgSGVhcFR1cGxlIHR1cCkKK3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gUEdf VVNFRF9GT1JfQVNTRVJUU19PTkxZID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0 dXApOworCWJvb2wJCW51bGxzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKwlib29sCQlyZXBsYWNl c1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNh dGlvbl07CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisJQXNzZXJ0KCFwdWJmb3JtLT5w dWJhbGx0YWJsZXMpOworI2VuZGlmCisKKwkvKiBBZGQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGlj YXRpb24gcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJaWYgKCFzdXBlcnVzZXIoKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJ CQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBBREQgQUxMIFRBQkxFUyB0byB0aGUgcHVi bGljYXRpb24iKSk7CisKKwltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVt c2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisJbWVtc2V0KHJlcGxhY2VzLCBmYWxz ZSwgc2l6ZW9mKHJlcGxhY2VzKSk7CisKKwkvKiBTZXQgQUxMIFRBQkxFUyBmbGFnICovCisJdmFs dWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSBCb29sR2V0RGF0dW0o dHJ1ZSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9 IHRydWU7CisKKwl0dXAgPSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3Io cmVsKSwgdmFsdWVzLCBudWxscywKKwkJCQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhl IGNhdGFsb2cuICovCisJQ2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXAp OworfQorCiAvKgogICogQWRkIG9yIHJlbW92ZSB0YWJsZSB0by9mcm9tIHB1YmxpY2F0aW9uLgog ICovCkBAIC0xNTk2LDYgKzE2OTUsMjAgQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCQlhY2xjaGVja19lcnJvcihBQ0xD SEVDS19OT1RfT1dORVIsIE9CSkVDVF9QVUJMSUNBVElPTiwKIAkJCQkJICAgc3RtdC0+cHVibmFt ZSk7CiAKKwlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJeworCQlib29sCQlpc2RlZmF1bHQg PSBDaGVja1B1YmxpY2F0aW9uRGVmVmFsdWVzKHR1cCk7CisKKwkJaWYgKCFpc2RlZmF1bHQpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVG SU5JVElPTiksCisJCQkJCWVycm1zZygiYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1 YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzIiks CisJCQkJCWVycmRldGFpbCgiQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBu byB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4iKSwKKwkJCQkJZXJyaGludCgi VXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24i KSk7CisKKwkJQWx0ZXJQdWJsaWNhdGlvblNldEFsbFRhYmxlcyhyZWwsIHR1cCk7CisJfQorCiAJ aWYgKHN0bXQtPm9wdGlvbnMpCiAJCUFsdGVyUHVibGljYXRpb25PcHRpb25zKHBzdGF0ZSwgc3Rt dCwgcmVsLCB0dXApOwogCWVsc2UgaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9SZXNldFB1YmxpY2F0 aW9uKQpAQCAtMTgwOCw2ICsxOTIxLDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJ CXB1Yl9yZWwtPnJlbGF0aW9uID0gcmVsOwogCQlwdWJfcmVsLT53aGVyZUNsYXVzZSA9IHQtPndo ZXJlQ2xhdXNlOwogCQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJcHViX3JlbC0+ ZXhjZXB0ID0gdC0+ZXhjZXB0OwogCQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJ cmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBteXJlbGlkKTsKIApAQCAtMTg4MCw2ICsxOTk0 LDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAKIAkJCQkvKiBjaGlsZCBpbmhlcml0 cyBjb2x1bW4gbGlzdCBmcm9tIHBhcmVudCAqLwogCQkJCXB1Yl9yZWwtPmNvbHVtbnMgPSB0LT5j b2x1bW5zOworCQkJCXB1Yl9yZWwtPmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJCQlyZWxzID0gbGFw cGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIGNo aWxkcmVsaWQpOwogCkBAIC0xOTU1LDggKzIwNzAsNiBAQCBQdWJsaWNhdGlvbkFkZFRhYmxlcyhP aWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgaWZfbm90X2V4aXN0cywKIHsKIAlMaXN0Q2VsbCAg ICpsYzsKIAotCUFzc2VydCghc3RtdCB8fCAhc3RtdC0+Zm9yX2FsbF90YWJsZXMpOwotCiAJZm9y ZWFjaChsYywgcmVscykKIAl7CiAJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHViX3JlbCA9IChQdWJs aWNhdGlvblJlbEluZm8gKikgbGZpcnN0KGxjKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5k ZXggZWE5Njk0N2Q4MTMuLjhhODI2OGEwNWQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpA QCAtODYyNCw3ICs4NjI0LDcgQEAgQVRFeGVjU2V0RXhwcmVzc2lvbihBbHRlcmVkVGFibGVJbmZv ICp0YWIsIFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAkgKiBleHByZXNzaW9u cy4KIAkgKi8KIAlpZiAoYXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVB TCAmJgotCQlHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCkpICE9 IE5JTCkKKwkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBm YWxzZSkgIT0gTklMKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJBTFRFUiBUQUJMRSAvIFNFVCBFWFBS RVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgb24g dGFibGVzIHRoYXQgYXJlIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIpLApAQCAtMTg3OTQsNyArMTg3 OTQsNyBAQCBBVFByZXBDaGFuZ2VQZXJzaXN0ZW5jZShBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJl bGF0aW9uIHJlbCwgYm9vbCB0b0xvZ2dlZCkKIAkgKiBVTkxPR0dFRCwgYXMgVU5MT0dHRUQgdGFi bGVzIGNhbid0IGJlIHB1Ymxpc2hlZC4KIAkgKi8KIAlpZiAoIXRvTG9nZ2VkICYmCi0JCUdldFJl bGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkgIT0gTklMKQorCQlsaXN0 X2xlbmd0aChHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCksIGZh bHNlKSkgPiAwKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNU X05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImNhbm5vdCBjaGFuZ2Ug dGFibGUgXCIlc1wiIHRvIHVubG9nZ2VkIGJlY2F1c2UgaXQgaXMgcGFydCBvZiBhIHB1YmxpY2F0 aW9uIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CmluZGV4IGUxNmY0ODMyOTYzLi5kN2ZlOTVhODQwZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC00NDUsNyArNDQ1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQl0cmFu c2Zvcm1fZWxlbWVudF9saXN0IHRyYW5zZm9ybV90eXBlX2xpc3QKIAkJCQlUcmlnZ2VyVHJhbnNp dGlvbnMgVHJpZ2dlclJlZmVyZW5jaW5nCiAJCQkJdmFjdXVtX3JlbGF0aW9uX2xpc3Qgb3B0X3Zh Y3V1bV9yZWxhdGlvbl9saXN0Ci0JCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3QKKwkJ CQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpfbGlzdCBleGNlcHRfcHViX29ial9saXN0CiAKICV0 eXBlIDxyZXRjbGF1c2U+IHJldHVybmluZ19jbGF1c2UKICV0eXBlIDxub2RlPglyZXR1cm5pbmdf b3B0aW9uCkBAIC01ODQsNiArNTg0LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBl IDxub2RlPgl2YXJfdmFsdWUgem9uZV92YWx1ZQogJXR5cGUgPHJvbGVzcGVjPiBhdXRoX2lkZW50 IFJvbGVTcGVjIG9wdF9ncmFudGVkX2J5CiAldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVjPiBQ dWJsaWNhdGlvbk9ialNwZWMKKyV0eXBlIDxwdWJsaWNhdGlvbm9iamVjdHNwZWM+IEV4Y2VwdFB1 YmxpY2F0aW9uT2JqU3BlYwogCiAldHlwZSA8a2V5d29yZD4gdW5yZXNlcnZlZF9rZXl3b3JkIHR5 cGVfZnVuY19uYW1lX2tleXdvcmQKICV0eXBlIDxrZXl3b3JkPiBjb2xfbmFtZV9rZXl3b3JkIHJl c2VydmVkX2tleXdvcmQKQEAgLTEwNjEyLDcgKzEwNjEzLDcgQEAgQWx0ZXJPd25lclN0bXQ6IEFM VEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwog ICoKICAqIENSRUFURSBQVUJMSUNBVElPTiBuYW1lIFtXSVRIIG9wdGlvbnNdCiAgKgotICogQ1JF QVRFIFBVQkxJQ0FUSU9OIEZPUiBBTEwgVEFCTEVTIFtXSVRIIG9wdGlvbnNdCisgKiBDUkVBVEUg UFVCTElDQVRJT04gRk9SIEFMTCBUQUJMRVMgW0VYQ0VQVCBbVEFCTEVdIHRhYmxlIFssIC4uLl1d IFtXSVRIIG9wdGlvbnNdCiAgKgogICogQ1JFQVRFIFBVQkxJQ0FUSU9OIEZPUiBwdWJfb2JqIFss IC4uLl0gW1dJVEggb3B0aW9uc10KICAqCkBAIC0xMDYzMiwxMiArMTA2MzMsMTMgQEAgQ3JlYXRl UHVibGljYXRpb25TdG10OgogCQkJCQluLT5vcHRpb25zID0gJDQ7CiAJCQkJCSQkID0gKE5vZGUg KikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBQVUJMSUNBVElPTiBuYW1lIEZPUiBBTEwgVEFCTEVT IG9wdF9kZWZpbml0aW9uCisJCQl8IENSRUFURSBQVUJMSUNBVElPTiBuYW1lIEZPUiBBTEwgVEFC TEVTIGV4Y2VwdF9wdWJfb2JqX2xpc3Qgb3B0X2RlZmluaXRpb24KIAkJCQl7CiAJCQkJCUNyZWF0 ZVB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVB1YmxpY2F0aW9uU3RtdCk7CiAK IAkJCQkJbi0+cHVibmFtZSA9ICQzOwotCQkJCQluLT5vcHRpb25zID0gJDc7CisJCQkJCW4tPm9w dGlvbnMgPSAkODsKKwkJCQkJbi0+cHVib2JqZWN0cyA9IChMaXN0ICopJDc7CiAJCQkJCW4tPmZv cl9hbGxfdGFibGVzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KQEAgLTEw Njc1LDYgKzEwNjc3LDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVidGFibGUt PnJlbGF0aW9uID0gJDI7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwogCQkJCQkk JC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwog CQkJCX0KIAkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElkCiAJCQkJewpAQCAtMTA3NTAsNiAr MTA3NTMsMjUgQEAgcHViX29ial9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKIAkJCQkJeyAkJCA9 IGxhcHBlbmQoJDEsICQzKTsgfQogCTsKIAorRXhjZXB0UHVibGljYXRpb25PYmpTcGVjOgorCQkJ IHJlbGF0aW9uX2V4cHIKKwkJCQl7CisJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpT cGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEU7 CisJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUpOworCQkJCQkk JC0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24g PSAkMTsKKwkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CisJCQkJfQorCTsKKworZXhjZXB0X3B1Yl9v YmpfbGlzdDoJRVhDRVBUIG9wdF90YWJsZSBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMKKwkJCQkJ eyAkJCA9IGxpc3RfbWFrZTEoJDMpOyB9CisJCQl8IGV4Y2VwdF9wdWJfb2JqX2xpc3QgJywnIEV4 Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYworCQkJCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CisJ CQl8ICAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJOworCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFNFVCAoIG9wdGlvbnMgKQpA QCAtMTA3NjIsNiArMTA3ODQsOCBAQCBwdWJfb2JqX2xpc3Q6CVB1YmxpY2F0aW9uT2JqU3BlYwog ICoKICAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQKICAqCisgKiBBTFRFUiBQVUJMSUNB VElPTiBuYW1lIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBbVEFCTEVdIHRhYmxlX25hbWUgWywgLi4u XQorICoKICAqIHB1Yl9vYmogaXMgb25lIG9mOgogICoKICAqCQlUQUJMRSB0YWJsZV9uYW1lIFss IC4uLl0KQEAgLTEwNzg4LDYgKzEwODEyLDE1IEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJ CQluLT5hY3Rpb24gPSBBUF9BZGRPYmplY3RzOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJ fQorCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIEFERF9QIEFMTCBUQUJMRVMgZXhjZXB0X3B1 Yl9vYmpfbGlzdAorCQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9k ZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJbi0+ cHVib2JqZWN0cyA9ICQ3OworCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CisJCQkJCW4t PmFjdGlvbiA9IEFQX0FkZE9iamVjdHM7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJ CXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgcHViX29ial9saXN0CiAJCQkJewogCQkJCQlB bHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25TdG10KTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmluZGV4IDY5M2E3 NjZlNmQ3Li41NTEyYjRjYmE3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v cGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1 dC9wZ291dHB1dC5jCkBAIC0yMDYzLDcgKzIwNjMsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdP dXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAlpZiAoIWVudHJ5LT5yZXBsaWNh dGVfdmFsaWQpCiAJewogCQlPaWQJCQlzY2hlbWFJZCA9IGdldF9yZWxfbmFtZXNwYWNlKHJlbGlk KTsKLQkJTGlzdAkgICAqcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQpOwor CQlMaXN0CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2Up OworCQlMaXN0CSAgICpleGNlcHRUYWJsZVB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25z KHJlbGlkLCB0cnVlKTsKIAogCQkvKgogCQkgKiBXZSBkb24ndCBhY3F1aXJlIGEgbG9jayBvbiB0 aGUgbmFtZXNwYWNlIHN5c3RlbSB0YWJsZSBhcyB3ZSBidWlsZApAQCAtMjE3NCwyMiArMjE3NSw2 IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0 aW9uKQogCQkJT2lkCQkJcHViX3JlbGlkID0gcmVsaWQ7CiAJCQlpbnQJCQlhbmNlc3Rvcl9sZXZl bCA9IDA7CiAKLQkJCS8qCi0JCQkgKiBJZiB0aGlzIGlzIGEgRk9SIEFMTCBUQUJMRVMgcHVibGlj YXRpb24sIHBpY2sgdGhlIHBhcnRpdGlvbgotCQkJICogcm9vdCBhbmQgc2V0IHRoZSBhbmNlc3Rv ciBsZXZlbCBhY2NvcmRpbmdseS4KLQkJCSAqLwotCQkJaWYgKHB1Yi0+YWxsdGFibGVzKQotCQkJ ewotCQkJCXB1Ymxpc2ggPSB0cnVlOwotCQkJCWlmIChwdWItPnB1YnZpYXJvb3QgJiYgYW1fcGFy dGl0aW9uKQotCQkJCXsKLQkJCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9h bmNlc3RvcnMocmVsaWQpOwotCi0JCQkJCXB1Yl9yZWxpZCA9IGxsYXN0X29pZChhbmNlc3RvcnMp OwotCQkJCQlhbmNlc3Rvcl9sZXZlbCA9IGxpc3RfbGVuZ3RoKGFuY2VzdG9ycyk7Ci0JCQkJfQot CQkJfQotCiAJCQlpZiAoIXB1Ymxpc2gpCiAJCQl7CiAJCQkJYm9vbAkJYW5jZXN0b3JfcHVibGlz aGVkID0gZmFsc2U7CkBAIC0yMjA4LDcgKzIxOTMsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdP dXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJCQlhbmNlc3RvciA9IEdl dFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViLT5vaWQsCiAJCQkJCQkJCQkJCQkJCQkg ICBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwpOworCQkJCQkJCQkJCQkJCQkJ ICAgJmxldmVsLAorCQkJCQkJCQkJCQkJCQkJICAgcHViLT5hbGx0YWJsZXMpOwogCiAJCQkJCWlm IChhbmNlc3RvciAhPSBJbnZhbGlkT2lkKQogCQkJCQl7CkBAIC0yMjIzLDYgKzIyMDksOCBAQCBn ZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikK IAogCQkJCWlmIChsaXN0X21lbWJlcl9vaWQocHViaWRzLCBwdWItPm9pZCkgfHwKIAkJCQkJbGlz dF9tZW1iZXJfb2lkKHNjaGVtYVB1YmlkcywgcHViLT5vaWQpIHx8CisJCQkJCShwdWItPmFsbHRh YmxlcyAmJgorCQkJCQkgIWxpc3RfbWVtYmVyX29pZChleGNlcHRUYWJsZVB1YmlkcywgcHViLT5v aWQpKSB8fAogCQkJCQlhbmNlc3Rvcl9wdWJsaXNoZWQpCiAJCQkJCXB1Ymxpc2ggPSB0cnVlOwog CQkJfQpAQCAtMjMwMSw2ICsyMjg5LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0 YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJbGlzdF9mcmVlKHB1Ymlkcyk7CiAJCWxp c3RfZnJlZShzY2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoZXhjZXB0VGFibGVQdWJpZHMpOwog CQlsaXN0X2ZyZWUocmVsX3B1YmxpY2F0aW9ucyk7CiAKIAkJZW50cnktPnJlcGxpY2F0ZV92YWxp ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCA1NTliYTljZGIyYy4u YmZmZGFiMmFiNjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hl LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTc5NCw2ICs1 Nzk0LDggQEAgdm9pZAogUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxh dGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogewogCUxpc3QJICAgKnB1Ym9pZHM7CisJ TGlzdAkgICAqYWxsdGFibGVzcHVib2lkczsKKwlMaXN0CSAgICpleGNlcHRwdWJvaWRzID0gTklM OwogCUxpc3RDZWxsICAgKmxjOwogCU1lbW9yeUNvbnRleHQgb2xkY3h0OwogCU9pZAkJCXNjaGVt YWlkOwpAQCAtNTgzMSw3ICs1ODMzLDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhS ZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCXB1YmRlc2MtPmdl bmNvbHNfdmFsaWRfZm9yX2RlbGV0ZSA9IHRydWU7CiAKIAkvKiBGZXRjaCB0aGUgcHVibGljYXRp b24gbWVtYmVyc2hpcCBpbmZvLiAqLwotCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhyZWxpZCk7CisJcHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBmYWxz ZSk7CiAJc2NoZW1haWQgPSBSZWxhdGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7CiAJcHVib2lk cyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVibGljYXRpb25z KHNjaGVtYWlkKSk7CiAKQEAgLTU4NDUsMTQgKzU4NDcsMTkgQEAgUmVsYXRpb25CdWlsZFB1Ymxp Y2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQog CQkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKIAogCQkJcHVib2lkcyA9IGxpc3Rf Y29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKLQkJCQkJCQkJCQkJIEdldFJlbGF0aW9uUHVibGlj YXRpb25zKGFuY2VzdG9yKSk7CisJCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhh bmNlc3RvciwgZmFsc2UpKTsKIAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0 b3IpOwogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKIAkJCQkJ CQkJCQkJIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCkpOworCQkJZXhjZXB0cHVib2lk cyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQoZXhjZXB0cHVib2lkcywKKwkJCQkJCQkJCQkJCSAg IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKSk7CiAJCX0KIAl9Ci0JcHVi b2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0QWxsVGFibGVzUHVibGlj YXRpb25zKCkpOwogCisJYWxsdGFibGVzcHVib2lkcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9u cygpOworCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCisJCQkJCQkJ CQkgbGlzdF9kaWZmZXJlbmNlX29pZChhbGx0YWJsZXNwdWJvaWRzLAorCQkJCQkJCQkJCQkJCQkg ZXhjZXB0cHVib2lkcykpOwogCWZvcmVhY2gobGMsIHB1Ym9pZHMpCiAJewogCQlPaWQJCQlwdWJp ZCA9IGxmaXJzdF9vaWQobGMpOwpAQCAtNTg4Myw3ICs1ODkwLDcgQEAgUmVsYXRpb25CdWlsZFB1 YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNj KQogCQlpZiAoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1YmZvcm0tPnB1YnVwZGF0 ZSB8fCBwdWJmb3JtLT5wdWJkZWxldGUpICYmCiAJCQlwdWJfcmZfY29udGFpbnNfaW52YWxpZF9j b2x1bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJICAgcHViZm9ybS0+ cHVidmlhcm9vdCkpCisJCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9vdCwgcHViZm9ybS0+ cHViYWxsdGFibGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJCQlwdWJk ZXNjLT5yZl92YWxpZF9mb3JfdXBkYXRlID0gZmFsc2U7CkBAIC01OTAxLDYgKzU5MDgsNyBAQCBS ZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlv bkRlc2MgKnB1YmRlc2MpCiAJCQlwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJl bGF0aW9uLCBhbmNlc3RvcnMsCiAJCQkJCQkJCQkJcHViZm9ybS0+cHVidmlhcm9vdCwKIAkJCQkJ CQkJCQlwdWJmb3JtLT5wdWJnZW5jb2xzLAorCQkJCQkJCQkJCXB1YmZvcm0tPnB1YmFsbHRhYmxl cywKIAkJCQkJCQkJCQkmaW52YWxpZF9jb2x1bW5fbGlzdCwKIAkJCQkJCQkJCQkmaW52YWxpZF9n ZW5fY29sKSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggYThmMDMwOWU4ZmMuLjZjYzU1YWZkNDk4IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKQEAgLTE4Myw2ICsxODMsOCBAQCBzdGF0aWMgU2ltcGxlT2lkTGlzdCBleHRl bnNpb25faW5jbHVkZV9vaWRzID0ge05VTEwsIE5VTEx9Owogc3RhdGljIFNpbXBsZVN0cmluZ0xp c3QgZXh0ZW5zaW9uX2V4Y2x1ZGVfcGF0dGVybnMgPSB7TlVMTCwgTlVMTH07CiBzdGF0aWMgU2lt cGxlT2lkTGlzdCBleHRlbnNpb25fZXhjbHVkZV9vaWRzID0ge05VTEwsIE5VTEx9OwogCitzdGF0 aWMgU2ltcGxlUHRyTGlzdCBleGNlcHRpbmZvID0ge05VTEwsIE5VTEx9OworCiBzdGF0aWMgY29u c3QgQ2F0YWxvZ0lkIG5pbENhdGFsb2dJZCA9IHswLCAwfTsKIAogLyogb3ZlcnJpZGUgZm9yIHN0 YW5kYXJkIGV4dHJhX2Zsb2F0X2RpZ2l0cyBzZXR0aW5nICovCkBAIC00NTEwLDggKzQ1MTIsMzQg QEAgZHVtcFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAq cHViaW5mbykKIAkJCQkJICBxcHVibmFtZSk7CiAKIAlpZiAocHViaW5mby0+cHViYWxsdGFibGVz KQorCXsKKwkJU2ltcGxlUHRyTGlzdENlbGwgKmNlbGw7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIgRk9SIEFMTCBUQUJMRVMiKTsKIAorCQkvKiBJbmNsdWRlIGV4Y2VwdGlvbiB0 YWJsZXMgaWYgdGhlIHB1YmxpY2F0aW9uIGhhcyBleGNlcHQgdGFibGVzICovCisJCWZvciAoY2Vs bCA9IGV4Y2VwdGluZm8uaGVhZDsgY2VsbDsgY2VsbCA9IGNlbGwtPm5leHQpCisJCXsKKwkJCVB1 YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8gPSAoUHVibGljYXRpb25SZWxJbmZvICopIGNlbGwt PnB0cjsKKwkJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKworCQkJaWYgKHB1YmluZm8gPT0gcHVicmlu Zm8tPnB1YmxpY2F0aW9uKQorCQkJeworCQkJCXRiaW5mbyA9IHB1YnJpbmZvLT5wdWJ0YWJsZTsK KworCQkJCWlmIChmaXJzdCkKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LCAiIEVYQ0VQVCBUQUJMRSIpOworCQkJCQlmaXJzdCA9IGZhbHNlOworCQkJCX0KKwkJCQllbHNl CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCIpOworCQkJCWFwcGVuZFBRRXhw QnVmZmVyKHF1ZXJ5LCAiIE9OTFkgJXMiLCBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8pKTsK KwkJCX0KKwkJfQorCX0KKworCWZpcnN0ID0gdHJ1ZTsKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgIiBXSVRIIChwdWJsaXNoID0gJyIpOwogCWlmIChwdWJpbmZvLT5wdWJpbnNlcnQpCiAJ ewpAQCAtNDY3Nyw2ICs0NzA1LDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91 dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAlpbnQJCQlpX3BycmVsaWQ7 CiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJaW50CQkJaV9wcmF0dHJzOworCWludAkJCWlfcHJleGNl cHQ7CiAJaW50CQkJaSwKIAkJCQlqLAogCQkJCW50dXBzOwpAQCAtNDY4OCw4ICs0NzE3LDE3IEBA IGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10s IGludCBudW1UYWJsZXMpCiAKIAkvKiBDb2xsZWN0IGFsbCBwdWJsaWNhdGlvbiBtZW1iZXJzaGlw IGluZm8uICovCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTUwMDAwKQorCXsKKwkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwg cHJwdWJpZCwgcHJyZWxpZCxcbiIpOworCisJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNo YW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQlpZiAoZm91dC0+cmVtb3RlVmVy c2lvbiA+PSAxODAwMDApCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBwcmV4Y2Vw dCxcbiIpOworCQllbHNlCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmYWxzZSBB UyBwcmV4Y2VwdCxcbiIpOworCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJ CSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHViaWQsIHBycmVsaWQsICIKIAkJCQkJCQkgInBn X2NhdGFsb2cucGdfZ2V0X2V4cHIocHJxdWFsLCBwcnJlbGlkKSBBUyBwcnJlbHF1YWwsICIKIAkJ CQkJCQkgIihDQVNFXG4iCiAJCQkJCQkJICIgIFdIRU4gcHIucHJhdHRycyBJUyBOT1QgTlVMTCBU SEVOXG4iCkBAIC00NzAwLDYgKzQ3MzgsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZl ICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkJCQkJCSAiICAg ICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxu IgogCQkJCQkJCSAiICBFTFNFIE5VTEwgRU5EKSBwcmF0dHJzICIKIAkJCQkJCQkgIkZST00gcGdf Y2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIiKTsKKwl9CiAJZWxzZQogCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1Ymlk LCBwcnJlbGlkLCAiCkBAIC00NzE1LDYgKzQ3NTQsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhB cmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWlfcHJy ZWxpZCA9IFBRZm51bWJlcihyZXMsICJwcnJlbGlkIik7CiAJaV9wcnJlbHF1YWwgPSBQUWZudW1i ZXIocmVzLCAicHJyZWxxdWFsIik7CiAJaV9wcmF0dHJzID0gUFFmbnVtYmVyKHJlcywgInByYXR0 cnMiKTsKKwlpX3ByZXhjZXB0ID0gUFFmbnVtYmVyKHJlcywgInByZXhjZXB0Iik7CiAKIAkvKiB0 aGlzIGFsbG9jYXRpb24gbWF5IGJlIG1vcmUgdGhhbiB3ZSBuZWVkICovCiAJcHVicmluZm8gPSBw Z19tYWxsb2MobnR1cHMgKiBzaXplb2YoUHVibGljYXRpb25SZWxJbmZvKSk7CkBAIC00NzI2LDYg KzQ3NjYsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g dGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQlPaWQJCQlwcnJlbGlkID0gYXRvb2lkKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3BycmVsaWQpKTsKIAkJUHVibGljYXRpb25JbmZvICpwdWJpbmZvOwog CQlUYWJsZUluZm8gICp0YmluZm87CisJCWNoYXIJICAgKnByZXhjZXB0ID0gcGdfc3RyZHVwKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3ByZXhjZXB0KSk7CiAKIAkJLyoKIAkJICogSWdub3JlIGFueSBl bnRyaWVzIGZvciB3aGljaCB3ZSBhcmVuJ3QgaW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhlCkBAIC00 NzM5LDcgKzQ3ODAsMTEgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFi bGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9L LCBtYWtlIGEgRHVtcGFibGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCXB1YnJp bmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHN0cmNtcChw cmV4Y2VwdCwgImYiKSA9PSAwKQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVC TElDQVRJT05fUkVMOworCQllbHNlCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19Q VUJMSUNBVElPTl9FWENFUFRfUkVMOworCiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVv aWQgPQogCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CiAJCXB1YnJp bmZvW2pdLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkp OwpAQCAtNDc4MCw2ICs0ODI1LDkgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91 dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJLyogRGVjaWRlIHdoZXRo ZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmpl Y3QoJihwdWJyaW5mb1tqXS5kb2JqKSwgZm91dCk7CiAKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwg InQiKSA9PSAwKQorCQkJc2ltcGxlX3B0cl9saXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJp bmZvW2pdKTsKKwogCQlqKys7CiAJfQogCkBAIC0xMTU0NCw2ICsxMTU5Miw5IEBAIGR1bXBEdW1w YWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBE T19QVUJMSUNBVElPTjoKIAkJCWR1bXBQdWJsaWNhdGlvbihmb3V0LCAoY29uc3QgUHVibGljYXRp b25JbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9fUFVCTElDQVRJT05fRVhDRVBU X1JFTDoKKwkJCS8qIHdpbGwgYmUgZHVtcGVkIGluIGR1bXBQdWJsaWNhdGlvbiAqLworCQkJYnJl YWs7CiAJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgogCQkJZHVtcFB1YmxpY2F0aW9uVGFibGUo Zm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOwpAQCAt MTk3ODMsNiArMTk4MzQsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVj dCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fREVGQVVMVF9BQ0w6CiAJCQljYXNl IERPX1BPTElDWToKIAkJCWNhc2UgRE9fUFVCTElDQVRJT046CisJCQljYXNlIERPX1BVQkxJQ0FU SU9OX0VYQ0VQVF9SRUw6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCWNhc2UgRE9f UFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BOgogCQkJY2FzZSBET19TVUJTQ1JJUFRJT046CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaAppbmRleCA3NDE3ZWFiNmFlZi4uMDk2ZjI5MzQ2ZDggMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAt ODEsNiArODEsNyBAQCB0eXBlZGVmIGVudW0KIAlET19SRUZSRVNIX01BVFZJRVcsCiAJRE9fUE9M SUNZLAogCURPX1BVQkxJQ0FUSU9OLAorCURPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJRE9f UFVCTElDQVRJT05fUkVMLAogCURPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlET19S RUxfU1RBVFMsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggMGIwOTc3Nzg4ZjEuLjU2ZDY3NDBi OWVhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC05Miw2ICs5Miw3IEBAIGVudW0gZGJPYmpl Y3RUeXBlUHJpb3JpdGllcwogCVBSSU9fRktfQ09OU1RSQUlOVCwKIAlQUklPX1BPTElDWSwKIAlQ UklPX1BVQkxJQ0FUSU9OLAorCVBSSU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlQUklPX1BV QkxJQ0FUSU9OX1JFTCwKIAlQUklPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlQUklP X1NVQlNDUklQVElPTiwKQEAgLTE0Nyw2ICsxNDgsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2Jq ZWN0VHlwZVByaW9yaXR5W10gPQogCVtET19SRUZSRVNIX01BVFZJRVddID0gUFJJT19SRUZSRVNI X01BVFZJRVcsCiAJW0RPX1BPTElDWV0gPSBQUklPX1BPTElDWSwKIAlbRE9fUFVCTElDQVRJT05d ID0gUFJJT19QVUJMSUNBVElPTiwKKwlbRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTF0gPSBQUklP X1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJW0RPX1BVQkxJQ0FUSU9OX1JFTF0gPSBQUklPX1BV QkxJQ0FUSU9OX1JFTCwKIAlbRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BXSA9IFBSSU9f UFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCVtET19SRUxfU1RBVFNdID0gUFJJT19TVEFU SVNUSUNTX0RBVEFfREFUQSwKQEAgLTE0OTgsNiArMTUwMCwxMSBAQCBkZXNjcmliZUR1bXBhYmxl T2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJ CSAiUFVCTElDQVRJT04gKElEICVkIE9JRCAldSkiLAogCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+ Y2F0SWQub2lkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVM OgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlBVQkxJQ0FUSU9OIEVYQ0VQVCBU QUJMRSAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQp OworCQkJcmV0dXJuOwogCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCXNucHJpbnRmKGJ1 ZiwgYnVmc2l6ZSwKIAkJCQkJICJQVUJMSUNBVElPTiBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdf ZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDM4NmUyMWUwYzU5Li4xNTJmZDdmZjA4NiAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTMyNzMsNiArMzI3MywyNiBAQCBteSAldGVzdHMg PSAoCiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAog CX0sCiAKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjYnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+ IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI2IEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCBkdW1wX3Rlc3QudGVzdF90YWJsZTsnLAorCQlyZWdleHAgPT4gcXIv XgorCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFC TEUgT05MWSBkdW1wX3Rlc3QudGVzdF90YWJsZSBXSVRIIChwdWJsaXNoID0gJ2luc2VydCwgdXBk YXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1 bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKworCSdDUkVBVEUgUFVCTElDQVRJ T04gcHViNycgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJ ICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIGR1 bXBfdGVzdC50ZXN0X3RhYmxlLCBkdW1wX3Rlc3QudGVzdF9zZWNvbmRfdGFibGU7JywKKwkJcmVn ZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjcgRk9SIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFibGUsIE9OTFkgZHVtcF90ZXN0LnRl c3Rfc2Vjb25kX3RhYmxlIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwg dHJ1bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9w b3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCiAJJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMScgPT4g ewogCQljcmVhdGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBTVUJTQ1JJ UFRJT04gc3ViMQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYwppbmRleCBkZDI1ZDJmZTdiOC4uMTBiNWY3ZjI5Y2IgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CkBAIC0zMDM5LDE3ICszMDM5LDM2IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNo YXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJCSAgIiAgICAgICAgICBXSEVSRSBhdHRyZWxpZCA9IHBy LnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCiAJCQkJCQkJCSAgIiAgICAgICAg RUxTRSBOVUxMIEVORCkgIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRp b24gcFxuIgotCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9y ZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCi0JCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19j YXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJCSAgIldI RVJFIHByLnBycmVsaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBn X3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKKwkJCQkJCQkJICAi CQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKKwkJ CQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIsCisJCQkJCQkJCSAgb2lkLCBvaWQs IG9pZCk7CisKKwkJCQkvKiBGSVhNRTogMTgwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE5MDAw MCBsYXRlciBmb3IgUEcxOS4gKi8KKwkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCisJ CQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIgQU5EIE5PVCBwci5wcmV4Y2VwdFxuIik7 CisKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJCQkgICJVTklPTlxuIgogCQkJ CQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgotCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgotCQkJ CQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgorCQkJCQkJCQkg ICIJCSwgTlVMTFxuIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24g cFxuIgotCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19y ZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgotCQkJCQkJCQkgICJPUkRFUiBCWSAxOyIs Ci0JCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwgb2lkKTsKKwkJCQkJCQkJICAiV0hFUkUgcC5wdWJh bGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylc biIsCisJCQkJCQkJCSAgb2lkKTsKKworCQkJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNo YW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQkJCWlmIChwc2V0LnN2ZXJzaW9u ID49IDE4MDAwMCkKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJCSAgIiAg ICAgQU5EIE5PVCBFWElTVFMgKFxuIgorCQkJCQkJCQkJICAiCQlTRUxFQ1QgMVxuIgorCQkJCQkJ CQkJICAiCQlGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCisJCQkJCQkJ CQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwY1xuIgorCQkJCQkJCQkJICAiCQlPTiBw ci5wcnJlbGlkID0gcGMub2lkXG4iCisJCQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAn JXMnIEFORCBwci5wcnB1YmlkID0gcC5vaWQpXG4iLAorCQkJCQkJCQkJICBvaWQpOworCisJCQkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDE7Iik7CiAJCQl9CiAJCQllbHNl CiAJCQl7CkBAIC02NjkzLDggKzY3MTIsMTMgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3Qg Y2hhciAqcGF0dGVybikKIAkJCQkJCQkgICIgICAgIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25f cmVsIHByXG4iCiAJCQkJCQkJICAiV0hFUkUgYy5yZWxuYW1lc3BhY2UgPSBuLm9pZFxuIgogCQkJ CQkJCSAgIiAgQU5EIGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCSAgIiAgQU5EIHByLnBy cHViaWQgPSAnJXMnXG4iCi0JCQkJCQkJICAiT1JERVIgQlkgMSwyIiwgcHViaWQpOworCQkJCQkJ CSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iLCBwdWJpZCk7CisKKwkJCS8qIEZJWE1FOiAx ODAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQkJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgwMDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYs ICIgIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LCAiT1JERVIgQlkgMSwyIik7CiAJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZi dWYsIF8oIlRhYmxlczoiKSwgZmFsc2UsICZjb250KSkKIAkJCQlnb3RvIGVycm9yX3JldHVybjsK IApAQCAtNjcxMiw2ICs2NzM2LDI0IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIg KnBhdHRlcm4pCiAJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCQkJfQogCQl9CisJCWVsc2UKKwkJ eworCQkJLyogRklYTUU6IDE4MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxOTAwMDAgbGF0ZXIg Zm9yIFBHMTkuICovCisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCisJCQl7CisJCQkJ LyogR2V0IHRoZSBleGNsdWRlZCB0YWJsZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljYXRpb24g Ki8KKwkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1QgY29uY2F0 KGMucmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2UsICcuJywgYy5yZWxuYW1lKVxuIgorCQkJCQkJ CQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgorCQkJCQkJCQkgICIgICAgIEpPSU4g cGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4i CisJCQkJCQkJCSAgIldIRVJFIHByLnBycHViaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIiAgQU5E IHByLnByZXhjZXB0XG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJCQkJaWYg KCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJFeGNlcHQgdGFibGVzOiIpLAor CQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQorCQkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJCX0K KwkJfQogCiAJCXByaW50VGFibGUoJmNvbnQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5s b2dmaWxlKTsKIAkJcHJpbnRUYWJsZUNsZWFudXAoJmNvbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IDIzY2IyN2I0YjA1Li4wNDM3NjI4YTZlMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpA QCAtMjI0NSwxMSArMjI0NSwxNiBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9p ZCwKIAkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRP IiwgIlJFU0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8K IAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQURE IikpCi0JCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKKwkJQ09N UExFVEVfV0lUSCgiQUxMIFRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIs ICJBTEwiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VU IiwgIlRBQkxFIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0 X29mX3RhYmxlcyk7Ci0JZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYKLQkJCSBlbmRzX3dpdGgocHJldl93 ZCwgJywnKSkKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiQUREIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikpCisJCUNPTVBM RVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBp ZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VU IiwgIlRBQkxFIikgJiYgZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEhf U0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVhZE1h dGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRB QkxFUyIsICJFWENFUFQiLCAiVEFCTEUiKSAmJiBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKIAkJ Q09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKIAog CS8qCkBAIC0zNTM2LDcgKzM1NDEsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFu eSwgIkZPUiIsICJBTEwiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIik7CiAJZWxzZSBpZiAo TWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwg IlRBQkxFUyIpKQotCQlDT01QTEVURV9XSVRIKCJXSVRIICgiKTsKKwkJQ09NUExFVEVfV0lUSCgi RVhDRVBUIFRBQkxFIiwgIldJVEggKCIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQ VUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIpKQogCQlDT01QTEVURV9XSVRI KCJJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZf d2QsICcsJykpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggNDhjN2QxYTg2 MTUuLjMzYjc3MTk5MGJkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCkBAIC0x MzksMTEgKzEzOSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblJlbEluZm8KIAlSZWxh dGlvbglyZWxhdGlvbjsKIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsKIAlMaXN0CSAgICpjb2x1bW5z OworCWJvb2wJCWV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiBleHRlcm4gUHVibGlj YXRpb24gKkdldFB1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVibGljYXRpb24gKkdl dFB1YmxpY2F0aW9uQnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7 Ci1leHRlcm4gTGlzdCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKTsKK2V4dGVy biBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQsIGJvb2wgZXhjZXB0X2Zs YWcpOwogCiAvKi0tLS0tLS0tLQogICogRXhwZWN0ZWQgdmFsdWVzIGZvciBwdWJfcGFydG9wdCBw YXJhbWV0ZXIgb2YgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoKSwKQEAgLTE2Myw3ICsxNjQsNyBA QCB0eXBlZGVmIGVudW0gUHVibGljYXRpb25QYXJ0T3B0CiAKIGV4dGVybiBMaXN0ICpHZXRQdWJs aWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9w dCk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpOwotZXh0ZXJu IExpc3QgKkdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCk7 CitleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1Ymlk LCBib29sIHB1YnZpYXJvb3QpOwogZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uU2NoZW1hcyhP aWQgcHViaWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9ucyhPaWQgc2NoZW1h aWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBzY2hl bWFpZCwKQEAgLTE3NCw3ICsxNzUsNyBAQCBleHRlcm4gTGlzdCAqR2V0UHViUGFydGl0aW9uT3B0 aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwKIAkJCQkJCQkJCQkJUHVibGljYXRpb25QYXJ0T3B0 IHB1Yl9wYXJ0b3B0LAogCQkJCQkJCQkJCQlPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlHZXRUb3BN b3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywKLQkJ CQkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCk7CisJCQkJCQkJCQkJCWludCAqYW5jZXN0b3Jf bGV2ZWwsIGJvb2wgcHViYWxsdGFibGVzKTsKIAogZXh0ZXJuIGJvb2wgaXNfcHVibGlzaGFibGVf cmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIGV4dGVybiBib29sIGlzX3NjaGVtYV9wdWJsaWNhdGlv bihPaWQgcHViaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbl9yZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKaW5k ZXggOTJjYzM2ZGZkZjYuLmU3ZDdmM2JhODVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVi bGljYXRpb25fcmVsLmgKQEAgLTMxLDYgKzMxLDcgQEAgQ0FUQUxPRyhwZ19wdWJsaWNhdGlvbl9y ZWwsNjEwNixQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQpCiAJT2lkCQkJb2lkOwkJCS8qIG9pZCAq LwogCU9pZAkJCXBycHViaWQgQktJX0xPT0tVUChwZ19wdWJsaWNhdGlvbik7IC8qIE9pZCBvZiB0 aGUgcHVibGljYXRpb24gKi8KIAlPaWQJCQlwcnJlbGlkIEJLSV9MT09LVVAocGdfY2xhc3MpOwkv KiBPaWQgb2YgdGhlIHJlbGF0aW9uICovCisJYm9vbAkJcHJleGNlcHQgQktJX0RFRkFVTFQoZik7 CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiAKICNpZmRlZglDQVRBTE9HX1ZBUkxFTgkJCS8q IHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCXBnX25vZGVfdHJlZSBwcnF1 YWw7CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuaAppbmRleCBmOTBjZjFlZjg5Ni4uMGFkNWQyODc1NGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3B1YmxpY2F0aW9uY21kcy5oCkBAIC0zMiwxMCArMzIsMTEgQEAgZXh0ZXJuIE9iamVjdEFkZHJl c3MgQWx0ZXJQdWJsaWNhdGlvbk93bmVyKGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuZXdPd25lcklk KTsKIGV4dGVybiB2b2lkIEFsdGVyUHVibGljYXRpb25Pd25lcl9vaWQoT2lkIHB1YmlkLCBPaWQg bmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKExpc3Qg KnJlbGlkcyk7CiBleHRlcm4gYm9vbCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lk IHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkgICBMaXN0ICphbmNlc3RvcnMs IGJvb2wgcHVidmlhcm9vdCk7CisJCQkJCQkJCQkJICAgTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1 YnZpYXJvb3QsCisJCQkJCQkJCQkJICAgYm9vbCBwdWJhbGx0YWJsZXMpOwogZXh0ZXJuIGJvb2wg cHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24s CiAJCQkJCQkJCQkJTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1YnZpYXJvb3QsCi0JCQkJCQkJCQkJ Y2hhciBwdWJnZW5jb2xzX3R5cGUsCisJCQkJCQkJCQkJY2hhciBwdWJnZW5jb2xzX3R5cGUsIGJv b2wgcHViYWxsdGFibGVzLAogCQkJCQkJCQkJCWJvb2wgKmludmFsaWRfY29sdW1uX2xpc3QsCiAJ CQkJCQkJCQkJYm9vbCAqaW52YWxpZF9nZW5fY29sKTsKIGV4dGVybiB2b2lkIEludmFsaWRhdGVQ dWJSZWxTeW5jQ2FjaGUoT2lkIHB1YmlkLCBib29sIHB1YmFsbHRhYmxlcyk7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKaW5kZXggOTA1YjU4ZTAyNzkuLmQ5MDFjYjBmZmE3IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCkBAIC00MjM1LDYgKzQyMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRh YmxlCiAJUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBiZSBwdWJsaXNoZWQg Ki8KIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KIAlMaXN0CSAg ICpjb2x1bW5zOwkJLyogTGlzdCBvZiBjb2x1bW5zIGluIGEgcHVibGljYXRpb24gdGFibGUgKi8K Kwlib29sCQlleGNlcHQ7CQkJLyogZXhjbHVkZSB0aGUgcmVsYXRpb24gKi8KIH0gUHVibGljYXRp b25UYWJsZTsKIAogLyoKQEAgLTQyNDMsNiArNDI0NCw3IEBAIHR5cGVkZWYgc3RydWN0IFB1Ymxp Y2F0aW9uVGFibGUKIHR5cGVkZWYgZW51bSBQdWJsaWNhdGlvbk9ialNwZWNUeXBlCiB7CiAJUFVC TElDQVRJT05PQkpfVEFCTEUsCQkvKiBBIHRhYmxlICovCisJUFVCTElDQVRJT05PQkpfRVhDRVBU X1RBQkxFLAkvKiBBIHRhYmxlIHRvIGJlIGV4Y2x1ZGVkICovCiAJUFVCTElDQVRJT05PQkpfVEFC TEVTX0lOX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBzY2hlbWEgKi8KIAlQVUJMSUNBVElPTk9C Sl9UQUJMRVNfSU5fQ1VSX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBmaXJzdCBlbGVtZW50IG9m CiAJCQkJCQkJCQkJCSAqIHNlYXJjaF9wYXRoICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHVibGljYXRpb24ub3V0CmluZGV4IGIyZmZlMGE4YzIwLi41ZDAyNTMyODcwNCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIwOSwxMyArMjA5LDM3IEBA IE5vdC1udWxsIGNvbnN0cmFpbnRzOgogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKICgxIHJvdykKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJS T1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxl IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMjsK Ky0tIHNwZWNpZnkgRVhDRVBUIHdpdGhvdXQgVEFCTEUKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIHRlc3Rw dWJfdGJsMTsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitcZFJwKyB0ZXN0cHViX2ZvcmFs bHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAi cHVibGljLnRlc3RwdWJfdGJsMSIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMiIKKworXGRScCsg dGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitFeGNlcHQg dGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCiBEUk9QIFRBQkxFIHRlc3RwdWJf dGJsMjsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9y dGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hOworRFJPUCBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1 Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVz X2V4Y2VwdHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiBDUkVBVEUg VEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAo YiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2Vz ID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1 Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3Rw dWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENF UFQgVEFCTEUgdGVzdHB1Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNsaWVudF9t aW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViMwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzCkBAIC0yMzQsOCArMjU4LDI1 IEBAIFRhYmxlczoKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKIAorXGRScCsg dGVzdHB1YjUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViNQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQg Y29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAg ICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCisg ICAgInB1YmxpYy50ZXN0cHViX3RibDNhIgorCitcZFJwKyB0ZXN0cHViNgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI2Cisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVz IHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRh YmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3Ri bDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNDsK K0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0ZXN0cHViNSwgdGVzdHB1YjY7 CiAtLSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQgY2xpZW50X21pbl9tZXNzYWdl cyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JwYXJ0ZWQ7CkBAIC0x OTI2LDkgKzE5NjcsMTUgQEAgRFJPUCBUQUJMRSBnZW5jb2xzOwogLS0gVGVzdHMgZm9yIEFMVEVS IFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAogQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKIENSRUFURSBU QUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMiAo YSBpbnQpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CiBSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1 YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVT IEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyBy ZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFt ZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBh bmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZl cmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9yZXNldApAQCAtMTk0NSw3ICsxOTkyLDI0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAg ICAgICAgIHwgZgogKDEgcm93KQogCistLSBTaG91bGQgd29yayBub3cgYWZ0ZXIgcmVzZXR0aW5n IHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxM IFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsKK1xkUnAr IHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg QWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdl bmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg dCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5v bmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3NjaDEudGJsMSIK KyAgICAicHViX3NjaDEudGJsMiIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gx LnRibDE7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0 aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQ VCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJl cyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2 YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8g dGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBV QkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZlcmlmeSB0 aGF0IHRhYmxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uIGFyZSBkcm9wcGVkIGFm dGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTk2MywxNyAr MjAyNywyMCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKICgxIHJvdykKIAotQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVi bGljOwotRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiQUxMIgotTElORSAxOiBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWIu Li4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7Cist LSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1 YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVT IEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyBy ZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFt ZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBh bmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZl cmlmeSB0aGF0IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJv cHBlZCBhZnRlciBSRVNFVAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KICByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCi0oMSByb3cpCitUYWJs ZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJsaWMiCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CkBAIC0xOTg0LDYgKzIwNTEsMTIg QEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKICgxIHJvdykKIAogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0ggPSAnJyk7CistLSBDYW4n dCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gdGhlICdQVUJMSVNIJyBwYXJhbWV0ZXIgZG9lcyBub3Qg aGF2ZSBkZWZhdWx0CistLSB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5n IEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJs aWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxk IG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgor SElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1Ymxp Y2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJw KyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMjAwMSw2ICsyMDc0LDEyIEBAIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0 cnVlJyk7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJ VElPTl9ST09UJyBwYXJhbWV0ZXIgZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg cHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1 YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitE RVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9z Y2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElP TiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVC TElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1 Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTIwMzksOSArMjExOCwxMyBAQCBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBT RVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCiBFUlJPUjogIG11 c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCistLSBWZXJpZnkgdGhhdCBvbmx5 IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgQUREIEFMTCBUQUJMRVM7CitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIEFERCBB TEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbgogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJf c2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3Nj aDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDE1YjJiMWNmZDI4Li5h ZjMxYTIyMTRjYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTA0LDIw ICsxMDQsMzMgQEAgU0VMRUNUIHB1Ym5hbWUsIHB1YmFsbHRhYmxlcyBGUk9NIHBnX3B1YmxpY2F0 aW9uIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9mb3JhbGwKIFxkKyB0ZXN0cHViX3RibDIKIFxk UnArIHRlc3RwdWJfZm9yYWxsdGFibGVzCiAKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VS Uk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJs ZSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDI7 CistLSBzcGVjaWZ5IEVYQ0VQVCB3aXRob3V0IFRBQkxFCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCB0ZXN0 cHViX3RibDE7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworCitcZFJwKyB0ZXN0cHViX2Zv cmFsbHRhYmxlc19leGNlcHR0YWJsZQorXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0 dGFibGUxCisKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwyOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRl c3RwdWJfZm9yX3RibF9zY2hlbWE7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFi bGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJs X3NjaGVtYSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUsIHRlc3RwdWJfZm9yYWxs dGFibGVzX2V4Y2VwdHRhYmxlMTsKIAogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsMyAoYSBpbnQp OwogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsM2EgKGIgdGV4dCkgSU5IRVJJVFMgKHRlc3RwdWJf dGJsMyk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1YjMgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMzsKIENSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViNCBGT1IgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMzsKK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgT05M WSB0ZXN0cHViX3RibDM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1 YjMKIFxkUnArIHRlc3RwdWI0CitcZFJwKyB0ZXN0cHViNQorXGRScCsgdGVzdHB1YjYKIAogRFJP UCBUQUJMRSB0ZXN0cHViX3RibDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWIzLCB0ZXN0cHViNDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0 ZXN0cHViNSwgdGVzdHB1YjY7CiAKIC0tIFRlc3RzIGZvciBwYXJ0aXRpb25lZCB0YWJsZXMKIFNF VCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKQEAgLTEyMjUsMjMgKzEyMzgsMzkgQEAg RFJPUCBUQUJMRSBnZW5jb2xzOwogLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBS RVNFVAogQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKIENSRUFURSBUQUJMRSBwdWJfc2NoMS50Ymwx IChhIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMiAoYSBpbnQpOwogU0VUIGNsaWVu dF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgRk9SIEFMTCBUQUJMRVM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogCistLSBDYW4n dCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUycgcHVibGljYXRpb24KK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0 CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOwogXGRScCsgdGVzdHB1Yl9yZXNldAogCistLSBTaG91bGQgd29yayBub3cgYWZ0ZXIgcmVz ZXR0aW5nIHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsK K1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKKwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3Nj aDEudGJsMTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIFRBQkxFJyBwdWJs aWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBF WENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29j aWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnAr IHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBc ZFJwKyB0ZXN0cHViX3Jlc2V0CiAKLUFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQURE IEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworCistLSBDYW4ndCBhZGQgRVhDRVBU IFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1YmxpY2F0aW9uCitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJf c2NoMS50YmwxOwogCiAtLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0aGUg cHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJfcmVzZXQK QEAgLTEyNTAsNiArMTI3OSwxMCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOwogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSCA9ICcn KTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuIHRoZSAnUFVCTElTSCcgcGFyYW1l dGVyIGRvZXMgbm90IGhhdmUgZGVmYXVsdAorLS0gdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisK IC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJhbWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRlc3Rw dWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0xMjU3 LDYgKzEyOTAsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIAog QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfVklBX1BBUlRJVElP Tl9ST09UID0gJ3RydWUnKTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuICdQVUJM SVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGRvZXMgbm90CistLSBoYXZlIGRlZmF1 bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0 CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwpAQCAtMTI3MywxMCArMTMx MCwxNCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIy OwogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorCistLSBW ZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7CiBTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXI7CiAKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1Ag VEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKIERST1AgU0NI RU1BIHB1Yl9zY2gxOwogCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L21lc29uLmJ1aWxkCmluZGV4IDU4NmZmYmE0MzRlLi5lOGExMTdmMzQyMSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlw dGlvbi9tZXNvbi5idWlsZApAQCAtNDIsNiArNDIsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8w MzNfcnVuX2FzX3RhYmxlX293bmVyLnBsJywKICAgICAgICd0LzAzNF90ZW1wb3JhbC5wbCcsCiAg ICAgICAndC8wMzVfY29uZmxpY3RzLnBsJywKKyAgICAgICd0LzAzNl9yZXBfY2hhbmdlc19leGNl cHRfdGFibGUucGwnLAogICAgICAgJ3QvMTAwX2J1Z3MucGwnLAogICAgIF0sCiAgIH0sCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3Rh YmxlLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90 YWJsZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWQxMTUyODM4 MDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2No YW5nZXNfZXhjZXB0X3RhYmxlLnBsCkBAIC0wLDAgKzEsODMgQEAKKworIyBDb3B5cmlnaHQgKGMp IDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBMb2dp Y2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZvciBleGNlcHQgdGFibGUgcHVibGljYXRpb25zCit1c2Ug c3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFs aXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93 c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMg Q3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5p dChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFy dDsKKworIyBUZXN0IHJlcGxpY2F0aW9uIHdpdGggcHVibGljYXRpb25zIGNyZWF0ZWQgdXNpbmcg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFCisjIGNsYXVzZS4KKyMgQ3JlYXRlIHNjaGVtYXMg YW5kIHRhYmxlcyBvbiBwdWJsaXNoZXIKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJDUkVBVEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSBzY2gxLnRhYjEgQVMgU0VMRUNUIGdlbmVyYXRl X3NlcmllcygxLDEwKSBBUyBhIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxKGEgaW50KSIpOworCisjIENyZWF0ZSBzY2hl bWFzIGFuZCB0YWJsZXMgb24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJDUkVBVEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMSAoYSBpbnQpIik7Cisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSBwdWJs aWMudGFiMSAoYSBpbnQpIik7CisKKyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1 Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9z dGdyZXMnOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRF IFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBz Y2gxLnRhYjEiCispOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViX3NjaGVtYSBDT05ORUNUSU9OICckcHVibGlz aGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIgorKTsKKworIyBXYWl0IGZv ciBpbml0aWFsIHRhYmxlIHN5bmMgdG8gZmluaXNoCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zv cl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsCisJJ3RhcF9zdWJfc2NoZW1hJyk7 CisKKyMgQ2hlY2sgdGhlIHRhYmxlIGRhdGEgZG9lcyBub3Qgc3luYyBmb3IgZXhjbHVkZWQgdGFi bGUKK215ICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMo JHJlc3VsdCwgcXEoMHx8KSwKKwknY2hlY2sgdGhlcmUgaXMgbm8gaW5pdGlhbCBkYXRhIGNvcGll ZCBmb3IgdGhlIGV4Y2x1ZGVkIHRhYmxlJyk7CisKKyMgSW5zZXJ0IHNvbWUgZGF0YSBhbmQgdmVy aWZ5IHRoYXQgaW5zZXJ0ZWQgZGF0YSBpcyBub3QgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyhn ZW5lcmF0ZV9zZXJpZXMoMTEsMjApKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2Nh dGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBG Uk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJlcGxpY2F0ZWQg aW5zZXJ0cyBvbiBzdWJzY3JpYmVyJyk7CisKKyMgQWx0ZXIgcHVibGljYXRpb24gdG8gZXhjbHVk ZSBkYXRhIGNoYW5nZXMgaW4gcHVibGljLnRhYjEgYW5kIHZlcmlmeSB0aGF0CisjIHN1YnNjcmli ZXIgZG9lcyBub3QgZ2V0IHRoZSBjaGFuZ2VkIGRhdGEgZm9yIHRoaXMgdGFibGUuCiskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJMSUNBVElPTiB0YXBf cHViX3NjaGVtYSBSRVNFVCIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgQUREIEFMTCBUQUJMRVMgRVhD RVBUIFRBQkxFIHNjaDEudGFiMSwgcHVibGljLnRhYjEiCispOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gcHVibGljLnRhYjEgVkFMVUVTKGdl bmVyYXRlX3NlcmllcygxLDEwKSkiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCd0YXBfc3ViX3NjaGVtYScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJP TSBwdWJsaWMudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJvd3Mgb24gc3Vi c2NyaWJlciBjYXRjaHVwJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3QnKTsKKyRu b2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzQu MQoK --0000000000008103210638499d9e--