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 1uuPvA-0092Ds-Od for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Sep 2025 06:27:42 +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 1uuPv9-0051um-V0 for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Sep 2025 06:27:40 +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 1uuPv9-0051ue-2q for pgsql-hackers@lists.postgresql.org; Fri, 05 Sep 2025 06:27:40 +0000 Received: from mail-ot1-x331.google.com ([2607:f8b0:4864:20::331]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uuPv7-000dOD-0F for pgsql-hackers@lists.postgresql.org; Fri, 05 Sep 2025 06:27:38 +0000 Received: by mail-ot1-x331.google.com with SMTP id 46e09a7af769-7459de59821so1560023a34.1 for ; Thu, 04 Sep 2025 23:27:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757053656; x=1757658456; 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=LuRH3xi9XTzgvVsFmn1olJWeyAvgVOm5ktsFE6sZuKU=; b=SYNUSAeUfgaiMJ7kzlcZ7kovwMVvFRjRkFd7oi+ezWZv0p0m12YmVbvJEFnMvmUZB/ 5tpkmuYLUwqCmXQfVaVmLUD9GiUaEftVxJDTJ+o3U2hYeR8sJu616i5xo8nPpV3rUW2J kBAyp0BDy0YdHq9LtStB55RIqF5UwMzT2z0sixC2MBicsFF5JvR2OM5Robi6AmsghF6x umsrIsgdchmIdJO353m0JwOHK3ChbjO+B6NSupCbBVAmMamSSaYlK/Mn1+v7DaPSU2sm XN5JiBZBq/sJ1rjNn+5JcvNIxbQI1YXNS7g27ABYDzO96mLPOgm55orNbY7X9p/HTfVz cMPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757053656; x=1757658456; 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=LuRH3xi9XTzgvVsFmn1olJWeyAvgVOm5ktsFE6sZuKU=; b=sb2xtGMO8c5mVwR7KJHoIc91GtdrQHnWRCfqeKmBrXKVBciiwJfS5BcryvrQcDM2oT zzOZh7LSmG02kbIbqBjT7KdY9bF0+/TMtiz8CkKxd+9LFHOF6TtDS0R3dn0goM2MQVLD CKsTUI0Hhqm6RsuWUfpH9uOHCxFlkTg901B3KdJ3oa/CNIhHLAHP5IxEtDZMwaEHyWg0 6mS1hW8p9IMbzhkCCSrw1c49g0l779YILGaa6mlPUoZgWR2huzL6EszZaVYrrYu4nbhT RZ/8niAJJKLDvaD8CrGJJml+lE80VLh5ePSaxGZKqEPZwGQWRAtu60OXFdniX8UM2MA6 JjMg== X-Forwarded-Encrypted: i=1; AJvYcCUSHzO60Q+IPa+OhNMgHI0Mzk+TDhXb5PEDRQyl/mDTHoNB3siXfCq+UrVefyDuVfK9wiBPm66xfh8f4wsu@lists.postgresql.org X-Gm-Message-State: AOJu0Yy+rN1/5B0ZZesagkwzovC/IgEMPxpGf8Tkzg/UThRN+GiZg42H /D+E+zzba1Ls1adx3V50jR/Qn0ViVRvJdGmVSvIxp5KvjTgzC4KBqlxwq2QZADWo9Jn1DgXjLu2 wXQOyEZj0kxguAOCO5gioeaVxRThW1oE= X-Gm-Gg: ASbGncv1I/QSk9ObLNJqIr4R5MGw5cNWkMoMtZSRccevTF/hu11hUhadV9O2RapWtvT YAEH7kemMmp1bHy2jN4pfQ5fOfDZCqd5MsRWYTm/bwHZAC1jpzHCpaH/j+GGQq5yasyi3IHcVrL mxRejMEwv2HbCY/MUTD9YLsX7dExc5bvYA/hJEVRZ4BGFTAwLamScUUTSsrHbw2CBSR/pYiPxPU hyJ/+GObceDGIKjlmhLd8d0xiRNMRnL/IBm2/0g36504vpYLH3pBNiPRddSNr56tP0h9J0xk1L6 5kgGtc6j7g4bThwL5QHb X-Google-Smtp-Source: AGHT+IEGxfG4H7yuzHofTHFwguDaGwCSyjCV0pxMnQBD5+QKOJredIHxyHfTuAJoFk+Et6NQQFr7a8ZAEITjH7jc5Mc= X-Received: by 2002:a05:6830:6d26:b0:746:9f39:9a45 with SMTP id 46e09a7af769-7469f6765a7mr2973826a34.28.1757053656453; Thu, 04 Sep 2025 23:27:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Fri, 5 Sep 2025 11:57:23 +0530 X-Gm-Features: Ac12FXxqzMkFLjOCPjb4LXZKNujzrIXkRP7miqx-fL3bddGF5xdvcsMMuuuyLrw 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="0000000000000ba556063e07eff7" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000ba556063e07eff7 Content-Type: text/plain; charset="UTF-8" On Mon, 25 Aug 2025 at 13:38, Shlok Kyal wrote: > > On Thu, 21 Aug 2025 at 05:33, Peter Smith wrote: > > > > Hi Shlok, > > > > I reviewed your latest v20-0003 patch and have no more comments at > > this time; I only found one trivial typo. > > > > ====== > > src/bin/psql/describe.c > > > > 1. > > + /* > > + * Footers entries for a publication description or a table > > + * description > > + */ > > > > Typo. /Footers entries/Footer entries/ > > > > I have fixed it and attached the updated patches > The patches were not applying on HEAD and needed a Rebase. Here is the rebased patches Thanks, Shlok Kyal --0000000000000ba556063e07eff7 Content-Type: application/octet-stream; name="v23-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v23-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf6fxsuj0 RnJvbSA1MWU1NzAzMjg1MjM2MDJmMGI1MmFjMGM4ZDAwZmM0YWUzMGMyOWYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTE6NDE6MTggKzA1MzAKU3ViamVjdDogW1BBVENIIHYy MyAxLzNdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAog cmVzZXQgdGhlIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFk ZHMgYSBuZXcgUkVTRVQgY2xhdXNlIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVz ZXQKdGhlIHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0IHN0YXRlIHdoaWNoIGluY2x1ZGVzIHJl c2V0dGluZyB0aGUgcHVibGljYXRpb24KcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVTIGZs YWcgdG8gZmFsc2UgYW5kIGRyb3BwaW5nIHRoZSByZWxhdGlvbnMgYW5kCnNjaGVtYXMgdGhhdCBh cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KVXNhZ2U6CkFMVEVSIFBVQkxJQ0FU SU9OIHB1YjEgUkVTRVQ7Ci0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sICAgfCAgMzQgKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55ICAgICAgICAgICAgICAgICB8ICAgOSArKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5p bi5jICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24u b3V0IHwgMTE4ICsrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1 YmxpY2F0aW9uLnNxbCAgICAgIHwgIDU3ICsrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDMy MyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwKaW5kZXggZDVlYTM4M2U4YmMuLjE3OGYzOWQ5NTc1IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yNyw2ICsyNyw3IEBAIEFMVEVSIFBV QkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJs ZT4gRFJPUCA8cmVwbGFjCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKQogQUxU RVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZT5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8 IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9CiBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFJFTkFNRSBUTyA8cmVwbGFjZWFibGU+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBSRVNFVAogCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w dWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKQEAg LTY5LDE4ICs3MCwzMSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICA8L3BhcmE+CiAKICAg PHBhcmE+Ci0gICBUaGUgcmVtYWluaW5nIHZhcmlhbnRzIGNoYW5nZSB0aGUgb3duZXIgYW5kIHRo ZSBuYW1lIG9mIHRoZSBwdWJsaWNhdGlvbi4KKyAgIFRoZSA8bGl0ZXJhbD5PV05FUjwvbGl0ZXJh bD4gY2xhdXNlIHdpbGwgY2hhbmdlIHRoZSBvd25lciBvZiB0aGUKKyAgIHB1YmxpY2F0aW9uLgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgPGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPiBj bGF1c2Ugd2lsbCBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlCisgICBwdWJsaWNhdGlvbi4KKyAgPC9w YXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxsaXRlcmFsPlJFU0VUPC9saXRlcmFsPiBjbGF1c2Ug d2lsbCByZXNldCB0aGUgcHVibGljYXRpb24gdG8gdGhlIGRlZmF1bHQKKyAgIHN0YXRlLiBUaGlz IGluY2x1ZGVzIHJlc2V0dGluZyBhbGwgcHVibGljYXRpb24gcGFyYW1ldGVycywgc2V0dGluZyB0 aGUKKyAgIDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGZsYWcgdG8gPGxpdGVyYWw+ZmFs c2U8L2xpdGVyYWw+LCBhbmQKKyAgIHJlbW92aW5nIGFsbCBhc3NvY2lhdGVkIHRhYmxlcyBhbmQg c2NoZW1hcyBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgogICAg WW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIgUFVCTElD QVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRp dGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVyYWw+QURE IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAotICAgPGxpdGVyYWw+U0VUIFRBQkxFUyBJ TiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gcmVxdWlyZXMgdGhlCi0gICBpbnZv a2luZyB1c2VyIHRvIGJlIGEgc3VwZXJ1c2VyLgotICAgVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3Ug bXVzdCBiZSBhYmxlIHRvIDxsaXRlcmFsPlNFVCBST0xFPC9saXRlcmFsPiB0byB0aGUKLSAgIG5l dyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgPGxpdGVyYWw+Q1JFQVRFPC9s aXRlcmFsPgotICAgcHJpdmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4KKyAgIFRoZSA8bGl0ZXJhbD5B REQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5TRVQgVEFCTEVTIElO IFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKKyAgIDxsaXRlcmFsPlJFU0VU PC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52b2tpbmcgdXNlciB0byBi ZSBhCisgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3QgYmUgYWJsZSB0 bworICAgPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+IHRvIHRoZSBuZXcgb3duaW5nIHJvbGUs IGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHBy aXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuCiAgICBBbHNvLCB0aGUgbmV3IG93bmVyIG9mIGEKICAg IDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWFsbC10YWJs ZXMiPjxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPjwvbGluaz4KICAgIG9yIDxsaW5r IGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLXRhYmxlcy1pbi1zY2hl bWEiPjxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPjwvbGluaz4KQEAgLTIz MCw2ICsyNDQsMTIgQEAgQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gQUREIFRB QkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKICAgIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rp b25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgogQUxURVIgUFVC TElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMsIGRlcGFydG1l bnRzLCBUQUJMRVMgSU4gU0NIRU1BIHByb2R1Y3Rpb247Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KKworICA8cGFyYT4KKyAgIFJlc2V0IHRoZSBwdWJsaWNhdGlvbiA8c3RydWN0bmFtZT5wcm9k dWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVS IFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gUkVTRVQ7CiA8L3Byb2dyYW1saXN0 aW5nPjwvcGFyYT4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9u Y21kcy5jCmluZGV4IDNkZTU2ODc0NjFjLi41YTcyNDdiNjMyNCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTQ4LDYgKzQ4LDE1IEBACiAjaW5jbHVkZSAidXRpbHMv dmFybGVuYS5oIgogCiAKKy8qIENSRUFURSBQVUJMSUNBVElPTiBkZWZhdWx0IHZhbHVlcyBmb3Ig ZmxhZ3MgYW5kIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgUFVCX0RFRkFVTFRf QUNUSU9OX0lOU0VSVCB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUgdHJ1 ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFIHRydWUKKyNkZWZpbmUgUFVCX0RF RkFVTFRfQUNUSU9OX1RSVU5DQVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfVklBX1JPT1Qg ZmFsc2UKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyBmYWxzZQorI2RlZmluZSBQVUJf REVGQVVMVF9HRU5DT0xTIFBVQkxJU0hfR0VOQ09MU19OT05FCisKIC8qCiAgKiBJbmZvcm1hdGlv biB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjb2x1bW5zIGluIHRoZSByb3cgZmlsdGVyIGV4cHJlc3Np b24uIFNlZQogICogY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlciBmb3IgZGV0YWlscy4K QEAgLTkwLDEyICs5OSwxMiBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkqcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uc19naXZlbiA9IGZhbHNlOwogCiAJ LyogZGVmYXVsdHMgKi8KLQlwdWJhY3Rpb25zLT5wdWJpbnNlcnQgPSB0cnVlOwotCXB1YmFjdGlv bnMtPnB1YnVwZGF0ZSA9IHRydWU7Ci0JcHViYWN0aW9ucy0+cHViZGVsZXRlID0gdHJ1ZTsKLQlw dWJhY3Rpb25zLT5wdWJ0cnVuY2F0ZSA9IHRydWU7Ci0JKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9y b290ID0gZmFsc2U7Ci0JKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBQVUJMSVNIX0dFTkNP TFNfTk9ORTsKKwlwdWJhY3Rpb25zLT5wdWJpbnNlcnQgPSBQVUJfREVGQVVMVF9BQ1RJT05fSU5T RVJUOworCXB1YmFjdGlvbnMtPnB1YnVwZGF0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEU7 CisJcHViYWN0aW9ucy0+cHViZGVsZXRlID0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURTsKKwlw dWJhY3Rpb25zLT5wdWJ0cnVuY2F0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURTsKKwkq cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBQVUJfREVGQVVMVF9WSUFfUk9PVDsKKwkqcHVi bGlzaF9nZW5lcmF0ZWRfY29sdW1ucyA9IFBVQl9ERUZBVUxUX0dFTkNPTFM7CiAKIAkvKiBQYXJz ZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgb3B0aW9ucykKQEAgLTExODYsNiArMTE5NSw5OSBA QCBJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKExpc3QgKnJlbGlkcykKIAkJQ2FjaGVJbnZhbGlk YXRlUmVsY2FjaGVBbGwoKTsKIH0KIAorLyoKKyAqIFJlc2V0IHRoZSBwdWJsaWNhdGlvbi4KKyAq CisgKiBSZXNldCB0aGUgcHVibGljYXRpb24gcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVT IGZsYWcgdG8gZmFsc2UgYW5kIGRyb3AKKyAqIGFsbCByZWxhdGlvbnMgYW5kIHNjaGVtYXMgdGhh dCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KKyAqLworc3RhdGljIHZvaWQK K0FsdGVyUHVibGljYXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRp b25TdG10ICpzdG10LAorCQkJCQkgIFJlbGF0aW9uIHJlbCwgSGVhcFR1cGxlIHR1cCkKK3sKKwlG b3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RS VUNUKHR1cCk7CisJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7CisJTGlzdAkgICAqc2NoZW1h aWRzID0gTklMOworCUxpc3QJICAgKnJlbHMgPSBOSUw7CisJTGlzdAkgICAqcmVsaWRzID0gTklM OworCWJvb2wJCW51bGxzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKwlib29sCQlyZXBsYWNlc1tO YXR0c19wZ19wdWJsaWNhdGlvbl07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNhdGlv bl07CisKKwkvKiBSRVNFVCBwdWJsaWNhdGlvbiByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAo IXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlNV RkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIFJF U0VUIHB1YmxpY2F0aW9uIikpOworCisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykp OworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOworCW1lbXNldChyZXBsYWNl cywgZmFsc2UsIHNpemVvZihyZXBsYWNlcykpOworCisJLyogUmVzZXQgdGhlIHB1YmxpY2F0aW9u IHBhcmFtZXRlcnMgKi8KKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJpbnNlcnQgLSAx XSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJUKTsKKwlyZXBsYWNlc1tB bnVtX3BnX3B1YmxpY2F0aW9uX3B1Ymluc2VydCAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVt X3BnX3B1YmxpY2F0aW9uX3B1YnVwZGF0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxU X0FDVElPTl9VUERBVEUpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVidXBkYXRl IC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViZGVsZXRlIC0g MV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSk7CisJcmVwbGFjZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJkZWxldGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51 bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZB VUxUX0FDVElPTl9UUlVOQ0FURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0 cnVuY2F0ZSAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnZp YXJvb3QgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9WSUFfUk9PVCk7CisJcmVwbGFj ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFyb290IC0gMV0gPSB0cnVlOworCisJdmFsdWVz W0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29scyAtIDFdID0gQ2hhckdldERhdHVtKFBVQl9E RUZBVUxUX0dFTkNPTFMpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29s cyAtIDFdID0gdHJ1ZTsKKworCS8qIFNldCBBTEwgVEFCTEVTIGZsYWcgdG8gZmFsc2UgKi8KKwlp ZiAocHViZm9ybS0+cHViYWxsdGFibGVzKQorCXsKKwkJdmFsdWVzW0FudW1fcGdfcHVibGljYXRp b25fcHViYWxsdGFibGVzIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUxMX1RBQkxF Uyk7CisJCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSB0 cnVlOworCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOworCX0KKworCXR1cCA9IGhlYXBf bW9kaWZ5X3R1cGxlKHR1cCwgUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAor CQkJCQkJCXJlcGxhY2VzKTsKKworCS8qIFVwZGF0ZSB0aGUgY2F0YWxvZy4gKi8KKwlDYXRhbG9n VHVwbGVVcGRhdGUocmVsLCAmdHVwLT50X3NlbGYsIHR1cCk7CisKKwkvKiBSZW1vdmUgdGhlIGFz c29jaWF0ZWQgc2NoZW1hcyBmcm9tIHRoZSBwdWJsaWNhdGlvbiAqLworCXNjaGVtYWlkcyA9IEdl dFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisKKwkvKgorCSAqIFNjaGVtYSBsb2NrIGlzIGhl bGQgdW50aWwgdGhlIHB1YmxpY2F0aW9uIGlzIGFsdGVyZWQgdG8gcHJldmVudAorCSAqIGNvbmN1 cnJlbnQgc2NoZW1hIGRlbGV0aW9uLgorCSAqLworCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkcyk7 CisKKwkvKiBSZW1vdmUgU2NoZW1hcyAqLworCVB1YmxpY2F0aW9uRHJvcFNjaGVtYXMocHViaWQs IHNjaGVtYWlkcywgdHJ1ZSk7CisKKwkvKiBHZXQgYWxsIHJlbGF0aW9ucyBhc3NvY2lhdGVkIHdp dGggdGhlIHB1YmxpY2F0aW9uICovCisJcmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMo cHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisKKwlmb3JlYWNoX29pZChyZWxpZCwgcmVs aWRzKQorCXsKKwkJUHVibGljYXRpb25SZWxJbmZvICpyZWw7CisKKwkJcmVsID0gcGFsbG9jKHNp emVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKKwkJcmVsLT53aGVyZUNsYXVzZSA9IE5VTEw7CisJ CXJlbC0+Y29sdW1ucyA9IE5JTDsKKwkJcmVsLT5yZWxhdGlvbiA9IHRhYmxlX29wZW4ocmVsaWQs IFNoYXJlVXBkYXRlRXhjbHVzaXZlTG9jayk7CisJCXJlbHMgPSBsYXBwZW5kKHJlbHMsIHJlbCk7 CisJfQorCisJLyogUmVtb3ZlIHRoZSBhc3NvY2lhdGVkIHJlbGF0aW9ucyBmcm9tIHRoZSBwdWJs aWNhdGlvbiAqLworCVB1YmxpY2F0aW9uRHJvcFRhYmxlcyhwdWJpZCwgcmVscywgdHJ1ZSk7CisJ Q2xvc2VUYWJsZUxpc3QocmVscyk7Cit9CisKIC8qCiAgKiBBZGQgb3IgcmVtb3ZlIHRhYmxlIHRv L2Zyb20gcHVibGljYXRpb24uCiAgKi8KQEAgLTE1MDAsNiArMTYwMiw4IEBAIEFsdGVyUHVibGlj YXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAog CWlmIChzdG10LT5vcHRpb25zKQogCQlBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0 bXQsIHJlbCwgdHVwKTsKKwllbHNlIGlmIChzdG10LT5hY3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNh dGlvbikKKwkJQWx0ZXJQdWJsaWNhdGlvblJlc2V0KHBzdGF0ZSwgc3RtdCwgcmVsLCB0dXApOwog CWVsc2UKIAl7CiAJCUxpc3QJICAgKnJlbGF0aW9ucyA9IE5JTDsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDlm ZDQ4YWNiMWY4Li5jZTZlMGJlOGU5MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xMDg1MSw2ICsxMDg1MSw4 IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25PYmpTcGVjCiAgKgogICogQUxURVIgUFVCTElD QVRJT04gbmFtZSBTRVQgcHViX29iaiBbLCAuLi5dCiAgKgorICogQUxURVIgUFVCTElDQVRJT04g bmFtZSBSRVNFVAorICoKICAqIHB1Yl9vYmogaXMgb25lIG9mOgogICoKICAqCQlUQUJMRSB0YWJs ZV9uYW1lIFssIC4uLl0KQEAgLTEwODk3LDYgKzEwODk5LDEzIEBAIEFsdGVyUHVibGljYXRpb25T dG10OgogCQkJCQluLT5hY3Rpb24gPSBBUF9Ecm9wT2JqZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAorCQkJCXsKKwkJ CQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3Rt dCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJbi0+YWN0aW9uID0gQVBfUmVzZXRQdWJs aWNhdGlvbjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7CiAKIC8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDZiMjBhNDQwNGIyLi4wMTMzMmY0 ZTRkZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjI2Niw3ICsyMjY2LDcgQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8 bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1F IFRPIiwgIlNFVCIpOworCQlDT01QTEVURV9XSVRIKCJBREQiLCAiRFJPUCIsICJPV05FUiBUTyIs ICJSRU5BTUUgVE8iLCAiUkVTRVQiLCAiU0VUIik7CiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5h bWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIElOIFNDSEVNQSIsICJUQUJM RSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDg2YTIzNmJkNThiLi5hZjIyMGIwMjc4OCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDMwNSw2ICs0MzA1LDcgQEAgdHlwZWRlZiBlbnVt IEFsdGVyUHVibGljYXRpb25BY3Rpb24KIAlBUF9BZGRPYmplY3RzLAkJCQkvKiBhZGQgb2JqZWN0 cyB0byBwdWJsaWNhdGlvbiAqLwogCUFQX0Ryb3BPYmplY3RzLAkJCQkvKiByZW1vdmUgb2JqZWN0 cyBmcm9tIHB1YmxpY2F0aW9uICovCiAJQVBfU2V0T2JqZWN0cywJCQkJLyogc2V0IGxpc3Qgb2Yg b2JqZWN0cyAqLworCUFQX1Jlc2V0UHVibGljYXRpb24sCQkvKiByZXNldCB0aGUgcHVibGljYXRp b24gKi8KIH0gQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbjsKIAogdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQ dWJsaWNhdGlvblN0bXQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVi bGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQK aW5kZXggODk1Y2E4N2EwZGYuLmZjZmM4YTliNDg1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMTkyMyw2ICsxOTIzLDEyNCBAQCBUYWJsZXM6CiBEUk9Q IFBVQkxJQ0FUSU9OIHB1YjE7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjI7CiBEUk9QIFRBQkxFIGdl bmNvbHM7CistLSBUZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUCitDUkVBVEUg U0NIRU1BIHB1Yl9zY2gxOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDEgKGEgaW50KTsKK1NF VCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKKy0t IFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jl c2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29s dW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAg ICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNF VDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOworLS0gVmVyaWZ5IHRoYXQg YXNzb2NpYXRlZCB0YWJsZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGljYXRpb24gYWZ0ZXIg UkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorVGFibGVzOgorICAgICJwdWJfc2NoMS50 YmwxIgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVz dHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJh dGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAg ICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworLS0gVmVyaWZ5IHRoYXQgYXNzb2NpYXRl ZCBzY2hlbWFzIGFyZSByZW9tdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VUCitc ZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Ymxp YyIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRh YmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRl ZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAg ICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IFNFVCAoUFVCTElTSCA9ICcnKTsKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJhbWV0ZXIg aXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8 IGYgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJf cmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEg cm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCiso MSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFf UEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMg fCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAg fCB0CisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfR0VORVJBVEVEX0NPTFVNTlMgPSBzdG9yZWQpOworLS0g VmVyaWZ5IHRoYXQgJ1BVQkxJU0hfR0VORVJBVEVEX0NPTFVNTlMnIHBhcmFtZXRlciBpcyByZXNl dAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgc3RvcmVkICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAor ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRl cyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykK KworLS0gVmVyaWZ5IHRoYXQgb25seSBzdXBlcnVzZXIgY2FuIHJlc2V0IGEgcHVibGljYXRpb24K K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgT1dORVIgVE8gcmVncmVzc19wdWJsaWNh dGlvbl91c2VyMjsKK1NFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOyAtLSBmYWlsIC0gbXVzdCBiZSBzdXBlcnVz ZXIKK0VSUk9SOiAgbXVzdCBiZSBzdXBlcnVzZXIgdG8gUkVTRVQgcHVibGljYXRpb24KK1NFVCBS T0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldDsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgU0NIRU1BIHB1Yl9zY2gxOwog UkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIC0tIFRlc3QgdGhhdCB0aGUgSU5TRVJUIE9OIENP TkZMSUNUIGNvbW1hbmQgY29ycmVjdGx5IGNoZWNrcyBSRVBMSUNBIElERU5USVRZCiAtLSB3aGVu IHRoZSB0YXJnZXQgdGFibGUgaXMgcHVibGlzaGVkLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRp b24uc3FsCmluZGV4IDNmNDIzMDYxMzk1Li40OGZhNTNmYzZjNCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3B1YmxpY2F0aW9uLnNxbApAQCAtMTIyMiw2ICsxMjIyLDYzIEBAIERST1AgUFVCTElDQVRJT04g cHViMTsKIERST1AgUFVCTElDQVRJT04gcHViMjsKIERST1AgVEFCTEUgZ2VuY29sczsKIAorLS0g VGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRFIFNDSEVNQSBwdWJf c2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBG T1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CisKKy0tIFZlcmlmeSB0 aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAor CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50Ymwx OworCistLSBWZXJpZnkgdGhhdCBhc3NvY2lhdGVkIHRhYmxlcyBhcmUgcmVtb3ZlZCBmcm9tIHRo ZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7 CisKKy0tIFZlcmlmeSB0aGF0IGFzc29jaWF0ZWQgc2NoZW1hcyBhcmUgcmVvbXZlZCBmcm9tIHRo ZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0ggPSAnJyk7CisKKy0tIFZl cmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVz ZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHVi X3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CisKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0 CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9y ZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9HRU5F UkFURURfQ09MVU1OUyA9IHN0b3JlZCk7CisKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX0dFTkVS QVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0 CisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9u CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1 c2VyCitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CisKK0RST1AgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldDsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgU0NIRU1B IHB1Yl9zY2gxOworCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogCiAtLSBUZXN0IHRoYXQg dGhlIElOU0VSVCBPTiBDT05GTElDVCBjb21tYW5kIGNvcnJlY3RseSBjaGVja3MgUkVQTElDQSBJ REVOVElUWQotLSAKMi4zNC4xCgo= --0000000000000ba556063e07eff7 Content-Type: application/octet-stream; name="v23-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v23-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf6fxsup1 RnJvbSBlY2U3Yjk4NzE4ZTk2MGMyMWFiNTdmYzM5NTJjYTQxNTg5MjUwYTFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjIgSnVsIDIwMjUgMDA6MzM6NTUgKzA1MzAKU3ViamVjdDogW1BBVENIIHYy MyAyLzNdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFC TEUuCgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNB VElPTiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlz aGVyIHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJz Y3JpYmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRp b25zIHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6 CkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0MSx0 MjsKb3IKQUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg dDEsdDI7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdfcHVi bGljYXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdh bnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVk IHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0 aW9ucy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhj bHVkZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFz c29jaWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSAr CiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDggKy0K IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAyMiArLQog ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDQ5ICsrKy0K IGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAgNSArLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgIDk3ICsrKysr LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAyMTUg KysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAg ICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAg ICAgICAgICB8ICA0MSArKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291 dHB1dC5jICAgfCAgMjUgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgICAg ICAgICAgICB8ICAxNyArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAg ICAgICAgIHwgIDU1ICsrKystCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAg ICAgICAgIHwgIDE4ICsrCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAg ICAgICAgfCAgMjAgKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAg ICAgICB8ICA1OCArKysrLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAg ICAgICAgIHwgIDE1ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAg ICAgICAgfCAgMTAgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCAgICAg ICAgfCAgIDUgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAg ICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAg fCAgODkgKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAg ICAgICB8ICA0NSArKystCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAg ICAgICAgfCAgIDEgKwogLi4uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCAgICAg ICAgIHwgMTg2ICsrKysrKysrKysrKysrKwogMjUgZmlsZXMgY2hhbmdlZCwgODU4IGluc2VydGlv bnMoKyksIDE0MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApp bmRleCBlOTA5NWJlZGYyMS4uYWUzODYxOWUyMTkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NTY4LDYg KzY1NjgsMTUgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIGlmIHRoZXJlIGlzIG5v IHB1YmxpY2F0aW9uIHF1YWxpZnlpbmcgY29uZGl0aW9uLjwvcGFyYT48L2VudHJ5PgogICAgICA8 L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgIDxzdHJ1Y3RmaWVsZD5w cmV4Y2VwdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIHRoZSByZWxhdGlvbiBtdXN0IGJlIGV4Y2x1ZGVk CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnByYXR0cnM8L3N0cnVjdGZpZWxkPiA8dHlw ZT5pbnQydmVjdG9yPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5k ZXggOWNjZDVlYzUwMDYuLjBkMTA2ZWI5NWE3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9n aWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwKQEAgLTIyOTksMTAgKzIyOTksMTAgQEAgQ09OVEVYVDogIHByb2Nlc3NpbmcgcmVt b3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5TRVIK ICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgVG8gYWRkIHRhYmxlcyB0byBhIHB1YmxpY2F0aW9u LCB0aGUgdXNlciBtdXN0IGhhdmUgb3duZXJzaGlwIHJpZ2h0cyBvbiB0aGUKLSAgIHRhYmxlLiBU byBhZGQgYWxsIHRhYmxlcyBpbiBzY2hlbWEgdG8gYSBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVz dCBiZSBhCi0gICBzdXBlcnVzZXIuIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlz aGVzIGFsbCB0YWJsZXMgb3IgYWxsIHRhYmxlcyBpbgotICAgc2NoZW1hIGF1dG9tYXRpY2FsbHks IHRoZSB1c2VyIG11c3QgYmUgYSBzdXBlcnVzZXIuCisgICBUbyBjcmVhdGUgYSBwdWJsaWNhdGlv biB1c2luZyBGT1IgQUxMIFRBQkxFUyBvciBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEsCisgICB0 aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2VyLiBUbyBhZGQgQUxMIFRBQkxFUyBvciBBTEwgVEFC TEVTIElOIFNDSEVNQSB0byBhCisgICBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVzdCBiZSBhIHN1 cGVydXNlci4gVG8gYWRkIHRhYmxlcyB0byBhIHB1YmxpY2F0aW9uLAorICAgdGhlIHVzZXIgbXVz dCBoYXZlIG93bmVyc2hpcCByaWdodHMgb24gdGhlIHRhYmxlLgogICA8L3BhcmE+CiAKICAgPHBh cmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggMTc4ZjM5ZDk1 NzUuLjM4YjQ2NTczNzhhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1Ymxp Y2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21s CkBAIC0yMiw2ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNp c2Rpdj4KIDxzeW5vcHNpcz4KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCitBTFRFUiBQ VUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+IEFERCBBTEwgVEFCTEVTIFsgRVhDRVBUIFsgVEFCTEUgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdIF0KIEFM VEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT4gU0VUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9v YmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4u Ll0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1Ymxp Y2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApCkBAIC0zMyw2ICszNCwxMSBA QCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IFJFU0VUCiAKICAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4g XSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9u PC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBdCiAgICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VS UkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQorCis8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+ CisKKyAgICBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFt ZTwvcmVwbGFjZWFibGU+IFsgKiBdCisKIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4K IApAQCAtODgsOCArOTQsOSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAKICAgPHBhcmE+CiAgICBZb3Ug bXVzdCBvd24gdGhlIHB1YmxpY2F0aW9uIHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBQVUJMSUNBVElP TjwvY29tbWFuZD4uCi0gICBBZGRpbmcgYSB0YWJsZSB0byBhIHB1YmxpY2F0aW9uIGFkZGl0aW9u YWxseSByZXF1aXJlcyBvd25pbmcgdGhhdCB0YWJsZS4KLSAgIFRoZSA8bGl0ZXJhbD5BREQgVEFC TEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICBBZGRpbmcgYSB0YWJsZSB0byBvciBleGNsdWRp bmcgYSB0YWJsZSBmcm9tIGEgcHVibGljYXRpb24gYWRkaXRpb25hbGx5CisgICByZXF1aXJlcyBv d25pbmcgdGhhdCB0YWJsZS4gVGhlIDxsaXRlcmFsPkFERCBBTEwgVEFCTEVTPC9saXRlcmFsPiwK KyAgIDxsaXRlcmFsPkFERCBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCiAgICA8bGl0 ZXJhbD5TRVQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQK ICAgIDxsaXRlcmFsPlJFU0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUg aW52b2tpbmcgdXNlciB0byBiZSBhCiAgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwg eW91IG11c3QgYmUgYWJsZSB0bwpAQCAtMTI5LDcgKzEzNiw4IEBAIEFMVEVSIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQK ICAgICAgIHRhYmxlIG5hbWUsIG9ubHkgdGhhdCB0YWJsZSBpcyBhZmZlY3RlZC4gIElmIDxsaXRl cmFsPk9OTFk8L2xpdGVyYWw+IGlzIG5vdAogICAgICAgc3BlY2lmaWVkLCB0aGUgdGFibGUgYW5k IGFsbCBpdHMgZGVzY2VuZGFudCB0YWJsZXMgKGlmIGFueSkgYXJlCiAgICAgICBhZmZlY3RlZC4g IE9wdGlvbmFsbHksIDxsaXRlcmFsPio8L2xpdGVyYWw+IGNhbiBiZSBzcGVjaWZpZWQgYWZ0ZXIg dGhlIHRhYmxlCi0gICAgICBuYW1lIHRvIGV4cGxpY2l0bHkgaW5kaWNhdGUgdGhhdCBkZXNjZW5k YW50IHRhYmxlcyBhcmUgaW5jbHVkZWQuCisgICAgICBuYW1lIHRvIGV4cGxpY2l0bHkgaW5kaWNh dGUgdGhhdCBkZXNjZW5kYW50IHRhYmxlcyBhcmUgYWZmZWN0ZWQuIEZvcgorICAgICAgcGFydGl0 aW9uZWQgdGFibGVzLCA8bGl0ZXJhbD5PTkxZPC9saXRlcmFsPiBkb25vdCBoYXZlIGFueSBlZmZl Y3QuCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KQEAgLTIzNyw2ICsyNDUsMTQgQEAgQUxU RVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgbWFy a2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4KIAorICA8cGFyYT4K KyAgIEFsdGVyIHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVibGljYXRpb248 L3N0cnVjdG5hbWU+IHRvIHB1Ymxpc2gKKyAgIGFsbCB0YWJsZXMgZXhjZXB0IDxzdHJ1Y3RuYW1l PnVzZXJzPC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1Y3RuYW1lPmRlcGFydG1lbnRzPC9zdHJ1 Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25f cHVibGljYXRpb24gQUREIEFMTCBUQUJMRVMgRVhDRVBUIHVzZXJzLCBkZXBhcnRtZW50czsKKzwv cHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCiAgIDxwYXJhPgogICAgQWRkIHRhYmxlcyA8c3RydWN0 bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3Ry dWN0bmFtZT4gYW5kIHNjaGVtYQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf cHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNn bWwKaW5kZXggODAyNjMwZjJkZjEuLmJkZGZmOWNhMGNjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KLSAgICBb IEZPUiBBTEwgVEFCTEVTCisgICAgWyBGT1IgQUxMIFRBQkxFUyBbIEVYQ0VQVCBbIFRBQkxFIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2Vh YmxlPiBbLCAuLi4gXSBdCiAgICAgICB8IEZPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogICAgIFsgV0lU SCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8 L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3Jl cGxhY2VhYmxlPl0gWywgLi4uIF0gKSBdCiAKQEAgLTMwLDYgKzMwLDEwIEBAIENSRUFURSBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ CiAKICAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFi bGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBd IFssIC4uLiBdCiAgICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAu Li4gXQorCis8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNl cHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICBbIE9OTFkgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsg KiBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAKQEAgLTEyNSw3ICsxMjksOSBA QCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBNYXJrcyB0 aGUgcHVibGljYXRpb24gYXMgb25lIHRoYXQgcmVwbGljYXRlcyBjaGFuZ2VzIGZvciBhbGwgdGFi bGVzIGluCi0gICAgICB0aGUgZGF0YWJhc2UsIGluY2x1ZGluZyB0YWJsZXMgY3JlYXRlZCBpbiB0 aGUgZnV0dXJlLgorICAgICAgdGhlIGRhdGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQg aW4gdGhlIGZ1dHVyZS4gSWYKKyAgICAgIDxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0ZXJhbD4g aXMgc3BlY2lmaWVkLCB0aGVuIGV4Y2x1ZGUgcmVwbGljYXRpbmcKKyAgICAgIHRoZSBjaGFuZ2Vz IGZvciB0aGUgc3BlY2lmaWVkIHRhYmxlcy4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTE2MSw2ICsxNjcsMzYgQEAgQ1JFQVRFIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAg ICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9 InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWV4Y2VwdC10YWJsZSI+CisgICAgPHRl cm0+PGxpdGVyYWw+RVhDRVBUIFRBQkxFPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBjbGF1c2Ugc3BlY2lmaWVzIGEgbGlzdCBvZiB0YWJs ZXMgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGUKKyAgICAgIHB1YmxpY2F0aW9uLiBJdCBjYW4gb25s eSBiZSB1c2VkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+LgorICAgICAg SWYgPGxpdGVyYWw+T05MWTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkIGJlZm9yZSB0aGUgdGFibGUg bmFtZSwgb25seQorICAgICAgdGhhdCB0YWJsZSBpcyBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNh dGlvbi4gSWYgPGxpdGVyYWw+T05MWTwvbGl0ZXJhbD4gaXMKKyAgICAgIG5vdCBzcGVjaWZpZWQs IHRoZSB0YWJsZSBhbmQgYWxsIGl0cyBkZXNjZW5kYW50IHRhYmxlcyAoaWYgYW55KSBhcmUKKyAg ICAgIGV4Y2x1ZGVkLiBPcHRpb25hbGx5LCA8bGl0ZXJhbD4qPC9saXRlcmFsPiBjYW4gYmUgc3Bl Y2lmaWVkIGFmdGVyIHRoZQorICAgICAgdGFibGUgbmFtZSB0byBleHBsaWNpdGx5IGluZGljYXRl IHRoYXQgZGVzY2VuZGFudCB0YWJsZXMgYXJlIGV4Y2x1ZGVkLgorICAgICAgVGhpcyBkb2VzIG5v dCBhcHBseSB0byBhIHBhcnRpdGlvbmVkIHRhYmxlLCBob3dldmVyLiAgVGhlIHBhcnRpdGlvbmVk CisgICAgICB0YWJsZSBvciBpdHMgcGFydGl0aW9ucyBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgcHVi bGljYXRpb24gYmFzZWQgb24gdGhlCisgICAgICBwYXJhbWV0ZXIgPGxpdGVyYWw+cHVibGlzaF92 aWFfcGFydGl0aW9uX3Jvb3Q8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgor ICAgICAgV2hlbiA8bGl0ZXJhbD5wdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdDwvbGl0ZXJhbD4g aXMgc2V0IHRvCisgICAgICA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiwgc3BlY2lmeWluZyBhIHJv b3QgcGFydGl0aW9uZWQgdGFibGUgaW4KKyAgICAgIDxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0 ZXJhbD4gZXhjbHVkZXMgaXQgYW5kIGFsbCBpdHMgcGFydGl0aW9ucyBmcm9tCisgICAgICByZXBs aWNhdGlvbi4gU3BlY2lmeWluZyBhIGxlYWYgcGFydGl0aW9uIGhhcyBubyBlZmZlY3QsIGFzIGl0 cyBjaGFuZ2VzIGFyZQorICAgICAgc3RpbGwgcmVwbGljYXRlZCB2aWEgdGhlIHJvb3QgcGFydGl0 aW9uZWQgdGFibGUuIFdoZW4KKyAgICAgIDxsaXRlcmFsPnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9y b290PC9saXRlcmFsPiBpcyBzZXQgdG8KKyAgICAgIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPiwg c3BlY2lmeWluZyBhIHBhcnRpdGlvbmVkIHRhYmxlIG9yIG5vbi1sZWFmCisgICAgICBwYXJ0aXRp b24gaGFzIG5vIGVmZmVjdCwgYXMgY2hhbmdlcyBhcmUgcmVwbGljYXRlZCB2aWEgdGhlIGxlYWYK KyAgICAgIHBhcnRpdGlvbnMuIFNwZWNpZnlpbmcgYSBsZWFmIHBhcnRpdGlvbiBleGNsdWRlcyBv bmx5IHRoYXQgcGFydGl0aW9uIGZyb20KKyAgICAgIHJlcGxpY2F0aW9uLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5 IGlkPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgiPgogICAgIDx0ZXJtPjxsaXRl cmFsPldJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFy YW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZh bHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0 aXRlbT4KQEAgLTQ0Miw2ICs0NzgsMTUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25f cHVibGljYXRpb24gRk9SIFRBQkxFIHVzZXJzLCBkZXBhcnRtZW50cywgVEFCTEVTIEkKIENSRUFU RSBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBGT1IgVEFCTEVTIElOIFNDSEVNQSBtYXJr ZXRpbmcsIHNhbGVzOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKKyAgPHBhcmE+CisgICBD cmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdlcyBpbiBhbGwgdGhl IHRhYmxlcyBleGNlcHQgZm9yCisgICB0aGUgY2hhbmdlcyBvZiA8c3RydWN0bmFtZT51c2Vyczwv c3RydWN0bmFtZT4gYW5kCisgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT46 Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1Ig QUxMIFRBQkxFUyBFWENFUFQgdXNlcnMsIGRlcGFydG1lbnRzOworPC9wcm9ncmFtbGlzdGluZz4K KyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJs aXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlIDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1l PiwKICAgIGJ1dCByZXBsaWNhdGVzIG9ubHkgY29sdW1ucyA8c3RydWN0bmFtZT51c2VyX2lkPC9z dHJ1Y3RuYW1lPiBhbmQKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCAxYTMzOTYwMGJjNC4uY2E4 ZjZkYzliOWYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAgLTIxMDMsOCArMjEwMyw5IEBAIFNF TEVDVCAkMSBccGFyc2Ugc3RtdDEKICAgICAgICAgbGlzdGVkLgogICAgICAgICBJZiA8bGl0ZXJh bD54PC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgcmVzdWx0 cwogICAgICAgICBhcmUgZGlzcGxheWVkIGluIGV4cGFuZGVkIG1vZGUuCi0gICAgICAgIElmIDxs aXRlcmFsPis8L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIHRoZSB0 YWJsZXMgYW5kCi0gICAgICAgIHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcHVibGljYXRp b24gYXJlIHNob3duIGFzIHdlbGwuCisgICAgICAgIElmIDxsaXRlcmFsPis8L2xpdGVyYWw+IGlz IGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIHRoZSB0YWJsZXMsCisgICAgICAgIGV4Y2x1 ZGVkIHRhYmxlcyBhbmQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBwdWJsaWNhdGlvbiBh cmUgc2hvd24gYXMKKyAgICAgICAgd2VsbC4KICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xp c3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uLmMKaW5kZXggYjkxMWVmY2Y5Y2IuLmFmMWI4YzllZDY3IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jCkBAIC0zNTEsNyArMzUxLDggQEAgR2V0UHViUGFydGl0aW9uT3B0aW9u UmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAog ICogYW5jZXN0b3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KICAqLwogT2lkCi1HZXRUb3BN b3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50 ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1 Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLCBib29s IHB1YmFsbHRhYmxlcykKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAlPaWQJCQl0b3Btb3N0X3JlbGlk ID0gSW52YWxpZE9pZDsKQEAgLTM2MywzMiArMzY0LDQ0IEBAIEdldFRvcE1vc3RBbmNlc3Rvcklu UHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLCBpbnQgKmFuY2VzdG9yX2xl dmVsCiAJZm9yZWFjaChsYywgYW5jZXN0b3JzKQogCXsKIAkJT2lkCQkJYW5jZXN0b3IgPSBsZmly c3Rfb2lkKGxjKTsKLQkJTGlzdAkgICAqYXB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25z KGFuY2VzdG9yKTsKLQkJTGlzdAkgICAqYXNjaGVtYVB1YmlkcyA9IE5JTDsKKwkJTGlzdAkgICAq YXB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCBmYWxzZSk7CisJCUxp c3QJICAgKmFzY2hlbWFwdWJpZHMgPSBOSUw7CisJCUxpc3QJICAgKmFleGNlcHRwdWJpZHMgPSBO SUw7CisJCWJvb2wJCXNldF90b3AgPSBmYWxzZTsKIAogCQlsZXZlbCsrOwogCi0JCWlmIChsaXN0 X21lbWJlcl9vaWQoYXB1YmlkcywgcHVib2lkKSkKKwkJLyogY2hlY2sgaWYgbWVtYmVyIG9mIHRh YmxlIHB1YmxpY2F0aW9ucyAqLworCQlzZXRfdG9wID0gbGlzdF9tZW1iZXJfb2lkKGFwdWJpZHMs IHB1Ym9pZCk7CisJCWlmICghc2V0X3RvcCkKIAkJewotCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2Vz dG9yOworCQkJYXNjaGVtYXB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVsX25h bWVzcGFjZShhbmNlc3RvcikpOwogCi0JCQlpZiAoYW5jZXN0b3JfbGV2ZWwpCi0JCQkJKmFuY2Vz dG9yX2xldmVsID0gbGV2ZWw7CisJCQkvKiBjaGVjayBpZiBtZW1iZXIgb2Ygc2NoZW1hIHB1Ymxp Y2F0aW9ucyAqLworCQkJc2V0X3RvcCA9IGxpc3RfbWVtYmVyX29pZChhc2NoZW1hcHViaWRzLCBw dWJvaWQpOworCisJCQkvKgorCQkJICogSWYgdGhlIHB1YmxpY2F0aW9uIGlzIGFsbCB0YWJsZXMg cHVibGljYXRpb24gYW5kIHRoZSB0YWJsZSBpcworCQkJICogbm90IHBhcnQgb2YgZXhjZXB0aW9u IHRhYmxlcy4KKwkJCSAqLworCQkJaWYgKCFzZXRfdG9wICYmIHB1YmFsbHRhYmxlcykKKwkJCXsK KwkJCQlhZXhjZXB0cHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIHRy dWUpOworCQkJCXNldF90b3AgPSAhbGlzdF9tZW1iZXJfb2lkKGFleGNlcHRwdWJpZHMsIHB1Ym9p ZCk7CisJCQl9CiAJCX0KLQkJZWxzZQorCisJCWlmIChzZXRfdG9wKQogCQl7Ci0JCQlhc2NoZW1h UHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9y KSk7Ci0JCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFzY2hlbWFQdWJpZHMsIHB1Ym9pZCkpCi0JCQl7 Ci0JCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOworCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2Vz dG9yOwogCi0JCQkJaWYgKGFuY2VzdG9yX2xldmVsKQotCQkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBs ZXZlbDsKLQkJCX0KKwkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKKwkJCQkqYW5jZXN0b3JfbGV2ZWwg PSBsZXZlbDsKIAkJfQogCiAJCWxpc3RfZnJlZShhcHViaWRzKTsKLQkJbGlzdF9mcmVlKGFzY2hl bWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoYXNjaGVtYXB1Ymlkcyk7CisJCWxpc3RfZnJlZShhZXhj ZXB0cHViaWRzKTsKIAl9CiAKIAlyZXR1cm4gdG9wbW9zdF9yZWxpZDsKQEAgLTQ2Myw2ICs0NzYs MTcgQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJ bmZvICpwcmksCiAJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpLCBwdWIt Pm5hbWUpKSk7CiAJfQogCisJLyoKKwkgKiBDaGVjayBmb3IgcGFydGl0aW9ucyBvZiBwYXJ0aXRp b25lZCB0YWJsZSB3aGljaCBhcmUgc3BlY2lmaWVkIHdpdGgKKwkgKiBFWENFUFQgY2xhdXNlIGFu ZCBwYXJ0aXRpb25lZCB0YWJsZSBpcyBwdWJsaXNoZWQgd2l0aAorCSAqIHB1Ymxpc2hfdmlhX3Bh cnRpdGlvbl9yb290ID0gdHJ1ZS4KKwkgKi8KKwlpZiAocHViLT5hbGx0YWJsZXMgJiYgcHJpLT5l eGNlcHQgJiYgdGFyZ2V0cmVsLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uICYmCisJCXB1Yi0+cHVi dmlhcm9vdCkKKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShlcnJtc2coInBhcnRpdGlvbiBcIiVz XCIgd2lsbCBiZSByZXBsaWNhdGVkIGFzIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IGlzIFwi JXNcIiIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpLCAidHJ1ZSIp KSk7CisKIAljaGVja19wdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24odGFyZ2V0cmVsKTsKIAogCS8q IFZhbGlkYXRlIGFuZCB0cmFuc2xhdGUgY29sdW1uIG5hbWVzIGludG8gYSBCaXRtYXBzZXQgb2Yg YXR0bnVtcy4gKi8KQEAgLTQ3OSw2ICs1MDMsOCBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24o T2lkIHB1YmlkLCBQdWJsaWNhdGlvblJlbEluZm8gKnByaSwKIAkJT2JqZWN0SWRHZXREYXR1bShw dWJpZCk7CiAJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcmVsX3BycmVsaWQgLSAxXSA9CiAJ CU9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3Jl bF9wcmV4Y2VwdCAtIDFdID0KKwkJQm9vbEdldERhdHVtKHByaS0+ZXhjZXB0KTsKIAogCS8qIEFk ZCBxdWFsaWZpY2F0aW9ucywgaWYgYXZhaWxhYmxlICovCiAJaWYgKHByaS0+d2hlcmVDbGF1c2Ug IT0gTlVMTCkKQEAgLTc0Niw5ICs3NzIsOSBAQCBwdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBw dWJpZCwgT2lkIHNjaGVtYWlkLCBib29sIGlmX25vdF9leGlzdHMpCiAJcmV0dXJuIG15c2VsZjsK IH0KIAotLyogR2V0cyBsaXN0IG9mIHB1YmxpY2F0aW9uIG9pZHMgZm9yIGEgcmVsYXRpb24gKi8K Ky8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBvaWRzIGZvciBhIHJlbGF0aW9uIHRoYXQgbWF0 Y2hlcyB0aGUgZXhjZXB0X2ZsYWcgKi8KIExpc3QgKgotR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMo T2lkIHJlbGlkKQorR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkLCBib29sIGV4Y2Vw dF9mbGFnKQogewogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKIAlDYXRDTGlzdCAgICpwdWJyZWxs aXN0OwpAQCAtNzYyLDcgKzc4OCw4IEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxp ZCkKIAkJSGVhcFR1cGxlCXR1cCA9ICZwdWJyZWxsaXN0LT5tZW1iZXJzW2ldLT50dXBsZTsKIAkJ T2lkCQkJcHViaWQgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSkt PnBycHViaWQ7CiAKLQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CisJCWlm IChleGNlcHRfZmxhZyA9PSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVw KSktPnByZXhjZXB0KQorCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJ fQogCiAJUmVsZWFzZVN5c0NhY2hlTGlzdChwdWJyZWxsaXN0KTsKQEAgLTc3MSwxMyArNzk4LDE0 IEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKIH0KIAogLyoKLSAqIEdldHMg bGlzdCBvZiByZWxhdGlvbiBvaWRzIGZvciBhIHB1YmxpY2F0aW9uLgorICogR2V0cyBsaXN0IG9m IHJlbGF0aW9uIG9pZHMgZm9yIGEgcHVibGljYXRpb24gdGhhdCBtYXRjaGVzIHRoZSBleGNlcHRf ZmxhZy4KICAqCiAgKiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgRk9SIFRBQkxFIHB1YmxpY2F0 aW9ucywgdGhlIEZPUiBBTEwgVEFCTEVTCiAgKiBzaG91bGQgdXNlIEdldEFsbFRhYmxlc1B1Ymxp Y2F0aW9uUmVsYXRpb25zKCkuCiAgKi8KIExpc3QgKgotR2V0UHVibGljYXRpb25SZWxhdGlvbnMo T2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCitHZXRQdWJsaWNhdGlv blJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKKwkJ CQkJCWJvb2wgZXhjZXB0X2ZsYWcpCiB7CiAJTGlzdAkgICAqcmVzdWx0OwogCVJlbGF0aW9uCXB1 YnJlbHNyZWw7CkBAIC04MDIsOCArODMwLDExIEBAIEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9p ZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQogCQlGb3JtX3BnX3B1Ymxp Y2F0aW9uX3JlbCBwdWJyZWw7CiAKIAkJcHVicmVsID0gKEZvcm1fcGdfcHVibGljYXRpb25fcmVs KSBHRVRTVFJVQ1QodHVwKTsKLQkJcmVzdWx0ID0gR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRp b25zKHJlc3VsdCwgcHViX3BhcnRvcHQsCi0JCQkJCQkJCQkJCQlwdWJyZWwtPnBycmVsaWQpOwor CisJCWlmIChleGNlcHRfZmxhZyA9PSBwdWJyZWwtPnByZXhjZXB0KQorCQkJcmVzdWx0ID0gR2V0 UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKHJlc3VsdCwgcHViX3BhcnRvcHQsCisJCQkJCQkJ CQkJCQkJcHVicmVsLT5wcnJlbGlkKTsKKwogCX0KIAogCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7 CkBAIC04NjEsMTMgKzg5MiwxOSBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnModm9pZCkKICAq IHJvb3QgcGFydGl0aW9uZWQgdGFibGVzLgogICovCiBMaXN0ICoKLUdldEFsbFRhYmxlc1B1Ymxp Y2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKK0dldEFsbFRhYmxlc1B1YmxpY2F0aW9u UmVsYXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290KQogewogCVJlbGF0aW9uCWNsYXNz UmVsOwogCVNjYW5LZXlEYXRhIGtleVsxXTsKIAlUYWJsZVNjYW5EZXNjIHNjYW47CiAJSGVhcFR1 cGxlCXR1cGxlOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0CSAgICpleGNlcHRsaXN0 OworCisJZXhjZXB0bGlzdCA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBwdWJ2aWFy b290ID8KKwkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9BTEwgOgorCQkJCQkJCQkJCSBQVUJM SUNBVElPTl9QQVJUX1JPT1QsCisJCQkJCQkJCQkJIHRydWUpOwogCiAJY2xhc3NSZWwgPSB0YWJs ZV9vcGVuKFJlbGF0aW9uUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKIApAQCAtODg0LDcg KzkyMSw4IEBAIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9v dCkKIAkJT2lkCQkJcmVsaWQgPSByZWxGb3JtLT5vaWQ7CiAKIAkJaWYgKGlzX3B1Ymxpc2hhYmxl X2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJIShyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbiAm JiBwdWJ2aWFyb290KSkKKwkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYgcHVidmlhcm9v dCkgJiYKKwkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0bGlzdCwgcmVsaWQpKQogCQkJcmVzdWx0 ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJfQogCkBAIC05MDUsNyArOTQzLDggQEAg R2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQogCQkJT2lk CQkJcmVsaWQgPSByZWxGb3JtLT5vaWQ7CiAKIAkJCWlmIChpc19wdWJsaXNoYWJsZV9jbGFzcyhy ZWxpZCwgcmVsRm9ybSkgJiYKLQkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24pCisJCQkJIXJl bEZvcm0tPnJlbGlzcGFydGl0aW9uICYmCisJCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRsaXN0 LCByZWxpZCkpCiAJCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJCX0K IApAQCAtMTE2MCw3ICsxMTk5LDggQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5D VElPTl9BUkdTKQogCQkJICogdGhvc2UuIE90aGVyd2lzZSwgZ2V0IHRoZSBwYXJ0aXRpb25lZCB0 YWJsZSBpdHNlbGYuCiAJCQkgKi8KIAkJCWlmIChwdWJfZWxlbS0+YWxsdGFibGVzKQotCQkJCXB1 Yl9lbGVtX3RhYmxlcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKHB1Yl9lbGVt LT5wdWJ2aWFyb290KTsKKwkJCQlwdWJfZWxlbV90YWJsZXMgPSBHZXRBbGxUYWJsZXNQdWJsaWNh dGlvblJlbGF0aW9ucyhwdWJfZWxlbS0+b2lkLAorCQkJCQkJCQkJCQkJCQkJCSAgIHB1Yl9lbGVt LT5wdWJ2aWFyb290KTsKIAkJCWVsc2UKIAkJCXsKIAkJCQlMaXN0CSAgICpyZWxpZHMsCkBAIC0x MTY5LDcgKzEyMDksOCBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCQkJcmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViX2VsZW0tPm9pZCwK IAkJCQkJCQkJCQkJCSBwdWJfZWxlbS0+cHVidmlhcm9vdCA/CiAJCQkJCQkJCQkJCQkgUFVCTElD QVRJT05fUEFSVF9ST09UIDoKLQkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0xFQUYpOwor CQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfTEVBRiwKKwkJCQkJCQkJCQkJCSBmYWxzZSk7 CiAJCQkJc2NoZW1hcmVsaWRzID0gR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMocHVi X2VsZW0tPm9pZCwKIAkJCQkJCQkJCQkJCQkJCQlwdWJfZWxlbS0+cHVidmlhcm9vdCA/CiAJCQkJ CQkJCQkJCQkJCQkJUFVCTElDQVRJT05fUEFSVF9ST09UIDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmMKaW5kZXggNWE3MjQ3YjYzMjQuLjU4NWVhNTA0ZmZhIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMjAzLDYgKzIwMywxMSBAQCBPYmplY3Rz SW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJc3dpdGNoIChwdWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElD QVRJT05PQkpfVEFCTEU6CisJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CisJ CQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQlicmVhazsK KwkJCWNhc2UgUFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFi bGUtPmV4Y2VwdCA9IHRydWU7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1 YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1ND SEVNQToKQEAgLTI3Nyw3ICsyODIsNyBAQCBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2Vy KE5vZGUgKm5vZGUsIHJmX2NvbnRleHQgKmNvbnRleHQpCiAgKi8KIGJvb2wKIHB1Yl9yZl9jb250 YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICph bmNlc3RvcnMsCi0JCQkJCQkJICAgYm9vbCBwdWJ2aWFyb290KQorCQkJCQkJCSAgIGJvb2wgcHVi dmlhcm9vdCwgYm9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJSGVhcFR1cGxlCXJmdHVwbGU7CiAJT2lk CQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTMwNCw3ICszMDksOCBA QCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxh dGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9y ZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBHZXRUb3BN b3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQkJPSBH ZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsCisJ CQkJCQkJCQkJCSAgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9h c19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC0zNjQsNyArMzcwLDcg QEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVs YXRpb24sIExpc3QgKmFuY2VzdG9ycywKIGJvb2wKIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVt bihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJCQkJ Ym9vbCBwdWJ2aWFyb290LCBjaGFyIHB1YmdlbmNvbHNfdHlwZSwKLQkJCQkJCQlib29sICppbnZh bGlkX2NvbHVtbl9saXN0LAorCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzLCBib29sICppbnZhbGlk X2NvbHVtbl9saXN0LAogCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCkKIHsKIAlPaWQJCQly ZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMzg4LDcgKzM5NCw4IEBAIHB1 Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBM aXN0ICphbmNlc3RvcnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3Jl bC0+cmVsaXNwYXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFu Y2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlzaF9h c19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9y cywKKwkJCQkJCQkJCQkJCQkJICAgTlVMTCwgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElz VmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBA IC01MjQsNyArNTMxLDcgQEAgSW52YWxpZGF0ZVB1YlJlbFN5bmNDYWNoZShPaWQgcHViaWQsIGJv b2wgcHViYWxsdGFibGVzKQogCQkgKiBpdHMgbGVhdmVzLgogCQkgKi8KIAkJcmVsaWRzID0gR2V0 UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCi0JCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRf QUxMKTsKKwkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9BTEwsIGZhbHNlKTsKIAkJc2NoZW1h cmVsaWRzID0gR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCiAJCQkJCQkJ CQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKIApAQCAtOTIwLDUyICs5MjcsNTAgQEAgQ3Jl YXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQg KnN0bXQpCiAJLyogTWFrZSB0aGUgY2hhbmdlcyB2aXNpYmxlLiAqLwogCUNvbW1hbmRDb3VudGVy SW5jcmVtZW50KCk7CiAKLQkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNhdGlv bi4gKi8KLQlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCi0JewotCQkvKiBJbnZhbGlkYXRlIHJl bGNhY2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1aWx0LiAqLwotCQlDYWNoZUlu dmFsaWRhdGVSZWxjYWNoZUFsbCgpOwotCX0KLQllbHNlCi0JewotCQlPYmplY3RzSW5QdWJsaWNh dGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCi0JCQkJCQkJ CSAgICZzY2hlbWFpZGxpc3QpOworCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1 Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9ucywKKwkJCQkJCQkgICAmc2NoZW1haWRsaXN0KTsK IAotCQkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBzdXBlcnVzZXIgKi8KLQkJaWYg KHNjaGVtYWlkbGlzdCAhPSBOSUwgJiYgIXN1cGVydXNlcigpKQotCQkJZXJlcG9ydChFUlJPUiwK LQkJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAotCQkJCQllcnJt c2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJs aWNhdGlvbiIpKTsKKwkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBzdXBlcnVzZXIg Ki8KKwlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCAmJiAhc3VwZXJ1c2VyKCkpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJ CWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIEZPUiBUQUJMRVMgSU4gU0NIRU1B IHB1YmxpY2F0aW9uIikpOwogCi0JCWlmIChyZWxhdGlvbnMgIT0gTklMKQotCQl7Ci0JCQlMaXN0 CSAgICpyZWxzOworCWlmIChyZWxhdGlvbnMgIT0gTklMKQorCXsKKwkJTGlzdAkgICAqcmVsczsK IAotCQkJcmVscyA9IE9wZW5UYWJsZUxpc3QocmVsYXRpb25zKTsKLQkJCVRyYW5zZm9ybVB1Yldo ZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwKLQkJCQkJCQkJCSBwdWJsaXNo X3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJCXJlbHMgPSBPcGVuVGFibGVMaXN0KHJlbGF0aW9ucyk7 CisJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwK KwkJCQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKIAotCQkJQ2hlY2tQdWJSZWxh dGlvbkNvbHVtbkxpc3Qoc3RtdC0+cHVibmFtZSwgcmVscywKLQkJCQkJCQkJCSAgIHNjaGVtYWlk bGlzdCAhPSBOSUwsCi0JCQkJCQkJCQkgICBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJ CUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0KHN0bXQtPnB1Ym5hbWUsIHJlbHMsCisJCQkJCQkJ CSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwsCisJCQkJCQkJCSAgIHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290KTsKIAotCQkJUHVibGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBO VUxMKTsKLQkJCUNsb3NlVGFibGVMaXN0KHJlbHMpOwotCQl9CisJCVB1YmxpY2F0aW9uQWRkVGFi bGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7CisJCUNsb3NlVGFibGVMaXN0KHJlbHMpOwor CX0KIAotCQlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCkKLQkJewotCQkJLyoKLQkJCSAqIFNjaGVt YSBsb2NrIGlzIGhlbGQgdW50aWwgdGhlIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVu dAotCQkJICogY29uY3VycmVudCBzY2hlbWEgZGVsZXRpb24uCi0JCQkgKi8KLQkJCUxvY2tTY2hl bWFMaXN0KHNjaGVtYWlkbGlzdCk7Ci0JCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLCBz Y2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOwotCQl9CisJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwp CisJeworCQkvKgorCQkgKiBTY2hlbWEgbG9jayBpcyBoZWxkIHVudGlsIHRoZSBwdWJsaWNhdGlv biBpcyBjcmVhdGVkIHRvIHByZXZlbnQKKwkJICogY29uY3VycmVudCBzY2hlbWEgZGVsZXRpb24u CisJCSAqLworCQlMb2NrU2NoZW1hTGlzdChzY2hlbWFpZGxpc3QpOworCQlQdWJsaWNhdGlvbkFk ZFNjaGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOwogCX0KIAogCXRhYmxl X2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKKwkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3 aXRoIHRoZSBwdWJsaWNhdGlvbi4gKi8KKwlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJewor CQkvKiBJbnZhbGlkYXRlIHJlbGNhY2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1 aWx0LiAqLworCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOworCX0KKwogCUludm9rZU9i amVjdFBvc3RDcmVhdGVIb29rKFB1YmxpY2F0aW9uUmVsYXRpb25JZCwgcHVib2lkLCAwKTsKIAog CWlmICh3YWxfbGV2ZWwgIT0gV0FMX0xFVkVMX0xPR0lDQUwpCkBAIC0xMDI3LDcgKzEwMzIsNyBA QCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGlj YXRpb25TdG10ICpzdG10LAogCQkJCQkJICAgQWNjZXNzU2hhcmVMb2NrKTsKIAogCQlyb290X3Jl bGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwKLQkJCQkJCQkJCQkJ ICBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OX1BBUlRf Uk9PVCwgZmFsc2UpOwogCiAJCWZvcmVhY2gobGMsIHJvb3RfcmVsaWRzKQogCQl7CkBAIC0xMTQ3 LDcgKzExNTIsNyBAQCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUs IEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQkgKi8KIAkJaWYgKHJvb3RfcmVsaWRzID09 IE5JTCkKIAkJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwK LQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKKwkJCQkJCQkJCQkJIFBVQkxJQ0FU SU9OX1BBUlRfQUxMLCBmYWxzZSk7CiAJCWVsc2UKIAkJewogCQkJLyoKQEAgLTEyNDMsNiArMTI0 OCwyNyBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5j b2xzIC0gMV0gPSBDaGFyR2V0RGF0dW0oUFVCX0RFRkFVTFRfR0VOQ09MUyk7CiAJcmVwbGFjZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5jb2xzIC0gMV0gPSB0cnVlOwogCisJLyoKKwkgKiBM b2NrIHRoZSBwdWJsaWNhdGlvbiBzbyBub2JvZHkgZWxzZSBjYW4gZG8gYW55dGhpbmcgd2l0aCBp dC4gVGhpcworCSAqIHByZXZlbnRzIGNvbmN1cnJlbnQgcHVibGljYXRpb24gcGFyYW1ldGVyIGNo YW5nZXMsIGFkZC9kcm9wIHRhYmxlcyhzKQorCSAqIHRvIHRoZSBwdWJsaWNhdGlvbiBhbmQgYWRk L2Ryb3Agc2NoZW1hKHMpIHRvIHRoZSBwdWJsaWNhdGlvbi4KKwkgKi8KKwlMb2NrRGF0YWJhc2VP YmplY3QoUHVibGljYXRpb25SZWxhdGlvbklkLCBwdWJpZCwgMCwKKwkJCQkJICAgQWNjZXNzRXhj bHVzaXZlTG9jayk7CisKKwkvKgorCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgYnkgdGhlIHRpbWUg d2UgYWNxdWlyZSB0aGUgbG9jayBvbiBwdWJsaWNhdGlvbiwKKwkgKiBjb25jdXJyZW50IERETCBo YXMgcmVtb3ZlZCBpdC4gV2UgY2FuIHRlc3QgdGhpcyBieSBjaGVja2luZyB0aGUKKwkgKiBleGlz dGVuY2Ugb2YgcHVibGljYXRpb24uIFdlIGdldCB0aGUgdHVwbGUgYWdhaW4gdG8gYXZvaWQgdGhl IHJpc2sgb2YKKwkgKiBhbnkgcHVibGljYXRpb24gb3B0aW9uIGdldHRpbmcgY2hhbmdlZC4KKwkg Ki8KKwl0dXAgPSBTZWFyY2hTeXNDYWNoZUNvcHkxKFBVQkxJQ0FUSU9OT0lELCBPYmplY3RJZEdl dERhdHVtKHB1YmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCWVycm1z ZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJICAgc3RtdC0+cHVi bmFtZSkpOworCiAJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSAqLwogCWlmIChwdWJm b3JtLT5wdWJhbGx0YWJsZXMpCiAJewpAQCAtMTI3MCw3ICsxMjk2LDEwIEBAIEFsdGVyUHVibGlj YXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10 LAogCVB1YmxpY2F0aW9uRHJvcFNjaGVtYXMocHViaWQsIHNjaGVtYWlkcywgdHJ1ZSk7CiAKIAkv KiBHZXQgYWxsIHJlbGF0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uICovCi0J cmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRf Uk9PVCk7CisJaWYgKHB1YmZvcm0tPnB1YmFsbHRhYmxlcykKKwkJcmVsaWRzID0gR2V0UHVibGlj YXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwgdHJ1ZSk7CisJZWxz ZQorCQlyZWxpZHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05f UEFSVF9ST09ULCBmYWxzZSk7CiAKIAlmb3JlYWNoX29pZChyZWxpZCwgcmVsaWRzKQogCXsKQEAg LTEyODgsNiArMTMxNyw3OSBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAlDbG9zZVRhYmxlTGlzdChyZWxzKTsK IH0KIAorLyoKKyAqIENoZWNrIGlmIHRoZSBwdWJsaWNhdGlvbiBoYXMgZGVmYXVsdCB2YWx1ZXMu CisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBwdWJsaWNhdGlvbiBzYXRpc2ZpZXMgYWxsIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIGEpIFB1YmxpY2F0aW9uIGlzIG5vdCBzZXQgd2l0 aCAiRk9SIEFMTCBUQUJMRVMiCisgKiBiKSBQdWJsaWNhdGlvbiBpcyBoYXZpbmcgZGVmYXVsdCBw dWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCisgKiBjKSBQdWJsaWNhdGlvbiBpcyBub3QgYXNz b2NpYXRlZCB3aXRoIHNjaGVtYXMKKyAqIGQpIFB1YmxpY2F0aW9uIGlzIG5vdCBhc3NvY2lhdGVk IHdpdGggcmVsYXRpb25zCisgKi8KK3N0YXRpYyBib29sCitDaGVja1B1YmxpY2F0aW9uRGVmVmFs dWVzKEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZv cm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9y bS0+b2lkOworCUxpc3QJICAgKnB1Ym9ianMgPSBOSUw7CisKKwlpZiAocHViZm9ybS0+cHViYWxs dGFibGVzICE9IFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMpCisJCXJldHVybiBmYWxzZTsKKworCWlm IChwdWJmb3JtLT5wdWJpbnNlcnQgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0lOU0VSVCB8fAorCQlw dWJmb3JtLT5wdWJ1cGRhdGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURSB8fAorCQlwdWJm b3JtLT5wdWJkZWxldGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSB8fAorCQlwdWJmb3Jt LT5wdWJ0cnVuY2F0ZSAhPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEUgfHwKKwkJcHViZm9y bS0+cHVidmlhcm9vdCAhPSBQVUJfREVGQVVMVF9WSUFfUk9PVCkKKwkJcmV0dXJuIGZhbHNlOwor CisJcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisJaWYgKGxpc3RfbGVu Z3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwdWJvYmpzID0gR2V0UHVibGljYXRp b25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwgZmFsc2UpOworCWlmIChs aXN0X2xlbmd0aChwdWJvYmpzKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7Cit9 CisKKy8qCisgKiBTZXQgcHVibGljYXRpb24gdG8gcHVibGlzaCBhbGwgdGFibGVzLgorICovCitz dGF0aWMgdm9pZAorQWx0ZXJQdWJsaWNhdGlvblNldEFsbFRhYmxlcyhSZWxhdGlvbiByZWwsIEhl YXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtIFBHX1VTRURfRk9S X0FTU0VSVFNfT05MWSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVwKTsKKwli b29sCQludWxsc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVwbGFjZXNbTmF0dHNf cGdfcHVibGljYXRpb25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOwor CisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCUFzc2VydCghcHViZm9ybS0+cHViYWxsdGFi bGVzKTsKKyNlbmRpZgorCisJLyogQWRkIEFMTCBUQUJMRVMgdG8gdGhlIHB1YmxpY2F0aW9uIHJl cXVpcmVzIHN1cGVydXNlciAqLworCWlmICghc3VwZXJ1c2VyKCkpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCWVycm1z ZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gQUREIEFMTCBUQUJMRVMgdG8gdGhlIHB1YmxpY2F0aW9u IikpOworCisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxs cywgZmFsc2UsIHNpemVvZihudWxscykpOworCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVv ZihyZXBsYWNlcykpOworCisJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyAqLworCXZhbHVlc1tBbnVt X3BnX3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERhdHVtKHRydWUpOwor CXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSB0cnVlOwor CisJdHVwID0gaGVhcF9tb2RpZnlfdHVwbGUodHVwLCBSZWxhdGlvbkdldERlc2NyKHJlbCksIHZh bHVlcywgbnVsbHMsCisJCQkJCQkJcmVwbGFjZXMpOworCisJLyogVXBkYXRlIHRoZSBjYXRhbG9n LiAqLworCUNhdGFsb2dUdXBsZVVwZGF0ZShyZWwsICZ0dXAtPnRfc2VsZiwgdHVwKTsKK30KKwog LyoKICAqIEFkZCBvciByZW1vdmUgdGFibGUgdG8vZnJvbSBwdWJsaWNhdGlvbi4KICAqLwpAQCAt MTMyNiw3ICsxNDI4LDggQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9u U3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAllbHNlCQkJCQkJLyogQVBfU2V0T2JqZWN0cyAq LwogCXsKIAkJTGlzdAkgICAqb2xkcmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHVi aWQsCi0JCQkJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJCQkJCQkJCQkJCQkJ CVBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwKKwkJCQkJCQkJCQkJCQkJZmFsc2UpOwogCQlMaXN0CSAg ICpkZWxyZWxzID0gTklMOwogCQlMaXN0Q2VsbCAgICpvbGRsYzsKIApAQCAtMTQyNyw2ICsxNTMw LDcgQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwg SGVhcFR1cGxlIHR1cCwKIAkJCQlvbGRyZWwgPSBwYWxsb2Moc2l6ZW9mKFB1YmxpY2F0aW9uUmVs SW5mbykpOwogCQkJCW9sZHJlbC0+d2hlcmVDbGF1c2UgPSBOVUxMOwogCQkJCW9sZHJlbC0+Y29s dW1ucyA9IE5JTDsKKwkJCQlvbGRyZWwtPmV4Y2VwdCA9IGZhbHNlOwogCQkJCW9sZHJlbC0+cmVs YXRpb24gPSB0YWJsZV9vcGVuKG9sZHJlbGlkLAogCQkJCQkJCQkJCQkgIFNoYXJlVXBkYXRlRXhj bHVzaXZlTG9jayk7CiAJCQkJZGVscmVscyA9IGxhcHBlbmQoZGVscmVscywgb2xkcmVsKTsKQEAg LTE0NzcsNyArMTU4MSw4IEBAIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGljYXRp b25TdG10ICpzdG10LAogCQlMaXN0Q2VsbCAgICpsYzsKIAkJTGlzdAkgICAqcmVsb2lkczsKIAot CQlyZWxvaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViZm9ybS0+b2lkLCBQVUJMSUNB VElPTl9QQVJUX1JPT1QpOworCQlyZWxvaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHVi Zm9ybS0+b2lkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QsCisJCQkJCQkJCQkJICBmYWxzZSk7CiAK IAkJZm9yZWFjaChsYywgcmVsb2lkcykKIAkJewpAQCAtMTYwMCw2ICsxNzA1LDIwIEBAIEFsdGVy UHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3Rt dCkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfUFVCTElDQVRJ T04sCiAJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpOwogCisJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVz KQorCXsKKwkJYm9vbAkJaXNkZWZhdWx0ID0gQ2hlY2tQdWJsaWNhdGlvbkRlZlZhbHVlcyh0dXAp OworCisJCWlmICghaXNkZWZhdWx0KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShF UlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQllcnJtc2coImFkZGluZyBB TEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGlj YXRpb24gcGFyYW1ldGVyIHZhbHVlcyIpLAorCQkJCQllcnJkZXRhaWwoIkFMTCBUQUJMRVMgZmxh ZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29j aWF0ZWQuIiksCisJCQkJCWVycmhpbnQoIlVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQg dG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uIikpOworCisJCUFsdGVyUHVibGljYXRpb25TZXRBbGxU YWJsZXMocmVsLCB0dXApOworCX0KKwogCWlmIChzdG10LT5vcHRpb25zKQogCQlBbHRlclB1Ymxp Y2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsKIAllbHNlIGlmIChzdG10LT5h Y3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNhdGlvbikKQEAgLTE4MTIsNiArMTkzMSw3IEBAIE9wZW5U YWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQlwdWJfcmVsLT5yZWxhdGlvbiA9IHJlbDsKIAkJcHVi X3JlbC0+d2hlcmVDbGF1c2UgPSB0LT53aGVyZUNsYXVzZTsKIAkJcHViX3JlbC0+Y29sdW1ucyA9 IHQtPmNvbHVtbnM7CisJCXB1Yl9yZWwtPmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJcmVscyA9IGxh cHBlbmQocmVscywgcHViX3JlbCk7CiAJCXJlbGlkcyA9IGxhcHBlbmRfb2lkKHJlbGlkcywgbXly ZWxpZCk7CiAKQEAgLTE4ODQsNiArMjAwNCw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVz KQogCiAJCQkJLyogY2hpbGQgaW5oZXJpdHMgY29sdW1uIGxpc3QgZnJvbSBwYXJlbnQgKi8KIAkJ CQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJCQlwdWJfcmVsLT5leGNlcHQgPSB0 LT5leGNlcHQ7CiAJCQkJcmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJCQkJcmVsaWRz ID0gbGFwcGVuZF9vaWQocmVsaWRzLCBjaGlsZHJlbGlkKTsKIApAQCAtMTk1OSw4ICsyMDgwLDYg QEAgUHVibGljYXRpb25BZGRUYWJsZXMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29sIGlmX25v dF9leGlzdHMsCiB7CiAJTGlzdENlbGwgICAqbGM7CiAKLQlBc3NlcnQoIXN0bXQgfHwgIXN0bXQt PmZvcl9hbGxfdGFibGVzKTsKLQogCWZvcmVhY2gobGMsIHJlbHMpCiAJewogCQlQdWJsaWNhdGlv blJlbEluZm8gKnB1Yl9yZWwgPSAoUHVibGljYXRpb25SZWxJbmZvICopIGxmaXJzdChsYyk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDA4MmEzNTc1ZDYyLi5jMWQ4YWFhOTkwMSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTg2MjMsNyArODYyMyw3IEBAIEFURXhlY1NldEV4 cHJlc3Npb24oQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIg KmNvbE5hbWUsCiAJICogZXhwcmVzc2lvbnMuCiAJICovCiAJaWYgKGF0dGdlbmVyYXRlZCA9PSBB VFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwgJiYKLQkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMo UmVsYXRpb25HZXRSZWxpZChyZWwpKSAhPSBOSUwpCisJCUdldFJlbGF0aW9uUHVibGljYXRpb25z KFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgZmFsc2UpICE9IE5JTCkKIAkJZXJlcG9ydChFUlJPUiwK IAkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1z ZygiQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIHRhYmxlcyB0aGF0IGFyZSBwYXJ0IG9mIGEgcHVibGlj YXRpb24iKSwKQEAgLTE4ODE4LDcgKzE4ODE4LDcgQEAgQVRQcmVwQ2hhbmdlUGVyc2lzdGVuY2Uo QWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsIGJvb2wgdG9Mb2dnZWQpCiAJICog VU5MT0dHRUQsIGFzIFVOTE9HR0VEIHRhYmxlcyBjYW4ndCBiZSBwdWJsaXNoZWQuCiAJICovCiAJ aWYgKCF0b0xvZ2dlZCAmJgotCQlHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJl bGlkKHJlbCkpICE9IE5JTCkKKwkJbGlzdF9sZW5ndGgoR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMo UmVsYXRpb25HZXRSZWxpZChyZWwpLCBmYWxzZSkpID4gMCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKIAkJ CQkgZXJybXNnKCJjYW5ub3QgY2hhbmdlIHRhYmxlIFwiJXNcIiB0byB1bmxvZ2dlZCBiZWNhdXNl IGl0IGlzIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBjZTZlMGJlOGU5 MS4uMjUxMjg4OWNiOWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNDQ2LDcgKzQ0Niw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAJCQkJdHJhbnNmb3JtX2VsZW1lbnRfbGlzdCB0cmFuc2Zvcm1fdHlw ZV9saXN0CiAJCQkJVHJpZ2dlclRyYW5zaXRpb25zIFRyaWdnZXJSZWZlcmVuY2luZwogCQkJCXZh Y3V1bV9yZWxhdGlvbl9saXN0IG9wdF92YWN1dW1fcmVsYXRpb25fbGlzdAotCQkJCWRyb3Bfb3B0 aW9uX2xpc3QgcHViX29ial9saXN0CisJCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3Qg ZXhjZXB0X3B1Yl9vYmpfbGlzdAogCiAldHlwZSA8cmV0Y2xhdXNlPiByZXR1cm5pbmdfY2xhdXNl CiAldHlwZSA8bm9kZT4JcmV0dXJuaW5nX29wdGlvbgpAQCAtNTg0LDYgKzU4NCw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9kZT4JdmFyX3ZhbHVlIHpvbmVfdmFsdWUKICV0 eXBlIDxyb2xlc3BlYz4gYXV0aF9pZGVudCBSb2xlU3BlYyBvcHRfZ3JhbnRlZF9ieQogJXR5cGUg PHB1YmxpY2F0aW9ub2JqZWN0c3BlYz4gUHVibGljYXRpb25PYmpTcGVjCisldHlwZSA8cHVibGlj YXRpb25vYmplY3RzcGVjPiBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMKIAogJXR5cGUgPGtleXdv cmQ+IHVucmVzZXJ2ZWRfa2V5d29yZCB0eXBlX2Z1bmNfbmFtZV9rZXl3b3JkCiAldHlwZSA8a2V5 d29yZD4gY29sX25hbWVfa2V5d29yZCByZXNlcnZlZF9rZXl3b3JkCkBAIC0xMDcwMyw3ICsxMDcw NCw3IEBAIEFsdGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJn dHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKICAqCiAgKiBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBb V0lUSCBvcHRpb25zXQogICoKLSAqIENSRUFURSBQVUJMSUNBVElPTiBGT1IgQUxMIFRBQkxFUyBb V0lUSCBvcHRpb25zXQorICogQ1JFQVRFIFBVQkxJQ0FUSU9OIEZPUiBBTEwgVEFCTEVTIFtFWENF UFQgW1RBQkxFXSB0YWJsZSBbLCAuLi5dXSBbV0lUSCBvcHRpb25zXQogICoKICAqIENSRUFURSBQ VUJMSUNBVElPTiBGT1IgcHViX29iaiBbLCAuLi5dIFtXSVRIIG9wdGlvbnNdCiAgKgpAQCAtMTA3 MjMsMTIgKzEwNzI0LDEzIEBAIENyZWF0ZVB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+b3B0aW9u cyA9ICQ0OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgUFVCTElD QVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBvcHRfZGVmaW5pdGlvbgorCQkJfCBDUkVBVEUgUFVC TElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBleGNlcHRfcHViX29ial9saXN0IG9wdF9kZWZp bml0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShD cmVhdGVQdWJsaWNhdGlvblN0bXQpOwogCiAJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKLQkJCQkJbi0+ b3B0aW9ucyA9ICQ3OworCQkJCQluLT5vcHRpb25zID0gJDg7CisJCQkJCW4tPnB1Ym9iamVjdHMg PSAoTGlzdCAqKSQ3OwogCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CiAJCQkJCSQkID0g KE5vZGUgKikgbjsKIAkJCQl9CkBAIC0xMDc2Niw2ICsxMDc2OCw3IEBAIFB1YmxpY2F0aW9uT2Jq U3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQyOwogCQkJCQkkJC0+cHVidGFi bGUtPmNvbHVtbnMgPSAkMzsKIAkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0Owor CQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CiAJCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBD b2xJZAogCQkJCXsKQEAgLTEwODQxLDYgKzEwODQ0LDI1IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGlj YXRpb25PYmpTcGVjCiAJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KIAk7CiAKK0V4Y2Vw dFB1YmxpY2F0aW9uT2JqU3BlYzoKKwkJCSByZWxhdGlvbl9leHByCisJCQkJeworCQkJCQkkJCA9 IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVC TElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOworCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQ dWJsaWNhdGlvblRhYmxlKTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5leGNlcHQgPSB0cnVlOworCQkJ CQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDE7CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwor CQkJCX0KKwk7CisKK2V4Y2VwdF9wdWJfb2JqX2xpc3Q6CUVYQ0VQVCBvcHRfdGFibGUgRXhjZXB0 UHVibGljYXRpb25PYmpTcGVjCisJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQzKTsgfQorCQkJfCBl eGNlcHRfcHViX29ial9saXN0ICcsJyBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMKKwkJCQkJeyAk JCA9IGxhcHBlbmQoJDEsICQzKTsgfQorCQkJfCAgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTlVM TDsgfQorCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgUFVCTElDQVRJ T04gbmFtZSBTRVQgKCBvcHRpb25zICkKQEAgLTEwODUzLDYgKzEwODc1LDggQEAgcHViX29ial9s aXN0OglQdWJsaWNhdGlvbk9ialNwZWMKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFJF U0VUCiAgKgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBBREQgQUxMIFRBQkxFUyBFWENFUFQg W1RBQkxFXSB0YWJsZV9uYW1lIFssIC4uLl0KKyAqCiAgKiBwdWJfb2JqIGlzIG9uZSBvZjoKICAq CiAgKgkJVEFCTEUgdGFibGVfbmFtZSBbLCAuLi5dCkBAIC0xMDg3OSw2ICsxMDkwMywxNSBAQCBB bHRlclB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+YWN0aW9uID0gQVBfQWRkT2JqZWN0czsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBB RERfUCBBTEwgVEFCTEVTIGV4Y2VwdF9wdWJfb2JqX2xpc3QKKwkJCQl7CisJCQkJCUFsdGVyUHVi bGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0bXQpOworCQkJCQlu LT5wdWJuYW1lID0gJDM7CisJCQkJCW4tPnB1Ym9iamVjdHMgPSAkNzsKKwkJCQkJbi0+Zm9yX2Fs bF90YWJsZXMgPSB0cnVlOworCQkJCQluLT5hY3Rpb24gPSBBUF9BZGRPYmplY3RzOworCQkJCQkk JCA9IChOb2RlICopbjsKKwkJCQl9CiAJCQl8IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgU0VUIHB1 Yl9vYmpfbGlzdAogCQkJCXsKIAkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9k ZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRw dXQvcGdvdXRwdXQuYwppbmRleCA4MDU0MGMwMTdiZC4uYjlkNjc2ZDFmMTggMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtMjA2NSw3ICsyMDY1LDgg QEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRp b24pCiAJaWYgKCFlbnRyeS0+cmVwbGljYXRlX3ZhbGlkKQogCXsKIAkJT2lkCQkJc2NoZW1hSWQg PSBnZXRfcmVsX25hbWVzcGFjZShyZWxpZCk7Ci0JCUxpc3QJICAgKnB1YmlkcyA9IEdldFJlbGF0 aW9uUHVibGljYXRpb25zKHJlbGlkKTsKKwkJTGlzdAkgICAqcHViaWRzID0gR2V0UmVsYXRpb25Q dWJsaWNhdGlvbnMocmVsaWQsIGZhbHNlKTsKKwkJTGlzdAkgICAqZXhjZXB0VGFibGVQdWJpZHMg PSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgdHJ1ZSk7CiAKIAkJLyoKIAkJICogV2Ug ZG9uJ3QgYWNxdWlyZSBhIGxvY2sgb24gdGhlIG5hbWVzcGFjZSBzeXN0ZW0gdGFibGUgYXMgd2Ug YnVpbGQKQEAgLTIxNzYsMjIgKzIxNzcsNiBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXRE YXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJCU9pZAkJCXB1Yl9yZWxpZCA9IHJlbGlk OwogCQkJaW50CQkJYW5jZXN0b3JfbGV2ZWwgPSAwOwogCi0JCQkvKgotCQkJICogSWYgdGhpcyBp cyBhIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uLCBwaWNrIHRoZSBwYXJ0aXRpb24KLQkJCSAq IHJvb3QgYW5kIHNldCB0aGUgYW5jZXN0b3IgbGV2ZWwgYWNjb3JkaW5nbHkuCi0JCQkgKi8KLQkJ CWlmIChwdWItPmFsbHRhYmxlcykKLQkJCXsKLQkJCQlwdWJsaXNoID0gdHJ1ZTsKLQkJCQlpZiAo cHViLT5wdWJ2aWFyb290ICYmIGFtX3BhcnRpdGlvbikKLQkJCQl7Ci0JCQkJCUxpc3QJICAgKmFu Y2VzdG9ycyA9IGdldF9wYXJ0aXRpb25fYW5jZXN0b3JzKHJlbGlkKTsKLQotCQkJCQlwdWJfcmVs aWQgPSBsbGFzdF9vaWQoYW5jZXN0b3JzKTsKLQkJCQkJYW5jZXN0b3JfbGV2ZWwgPSBsaXN0X2xl bmd0aChhbmNlc3RvcnMpOwotCQkJCX0KLQkJCX0KLQogCQkJaWYgKCFwdWJsaXNoKQogCQkJewog CQkJCWJvb2wJCWFuY2VzdG9yX3B1Ymxpc2hlZCA9IGZhbHNlOwpAQCAtMjIxMCw3ICsyMTk1LDgg QEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRp b24pCiAKIAkJCQkJYW5jZXN0b3IgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1 Yi0+b2lkLAogCQkJCQkJCQkJCQkJCQkJICAgYW5jZXN0b3JzLAotCQkJCQkJCQkJCQkJCQkJICAg JmxldmVsKTsKKwkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCwKKwkJCQkJCQkJCQkJCQkJCSAgIHB1 Yi0+YWxsdGFibGVzKTsKIAogCQkJCQlpZiAoYW5jZXN0b3IgIT0gSW52YWxpZE9pZCkKIAkJCQkJ ewpAQCAtMjIyNSw2ICsyMjExLDggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAq ZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJCQlpZiAobGlzdF9tZW1iZXJfb2lkKHB1Ymlk cywgcHViLT5vaWQpIHx8CiAJCQkJCWxpc3RfbWVtYmVyX29pZChzY2hlbWFQdWJpZHMsIHB1Yi0+ b2lkKSB8fAorCQkJCQkocHViLT5hbGx0YWJsZXMgJiYKKwkJCQkJICFsaXN0X21lbWJlcl9vaWQo ZXhjZXB0VGFibGVQdWJpZHMsIHB1Yi0+b2lkKSkgfHwKIAkJCQkJYW5jZXN0b3JfcHVibGlzaGVk KQogCQkJCQlwdWJsaXNoID0gdHJ1ZTsKIAkJCX0KQEAgLTIzMDMsNiArMjI5MSw3IEBAIGdldF9y ZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJ CWxpc3RfZnJlZShwdWJpZHMpOwogCQlsaXN0X2ZyZWUoc2NoZW1hUHViaWRzKTsKKwkJbGlzdF9m cmVlKGV4Y2VwdFRhYmxlUHViaWRzKTsKIAkJbGlzdF9mcmVlKHJlbF9wdWJsaWNhdGlvbnMpOwog CiAJCWVudHJ5LT5yZXBsaWNhdGVfdmFsaWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNh Y2hlLmMKaW5kZXggNmZlMjY4YThlZWMuLmViY2Y2ZDNiZDMyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L3JlbGNhY2hlLmMKQEAgLTU3OTQsNiArNTc5NCw4IEBAIHZvaWQKIFJlbGF0aW9uQnVpbGRQdWJs aWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykK IHsKIAlMaXN0CSAgICpwdWJvaWRzOworCUxpc3QJICAgKmFsbHRhYmxlc3B1Ym9pZHM7CisJTGlz dAkgICAqZXhjZXB0cHVib2lkcyA9IE5JTDsKIAlMaXN0Q2VsbCAgICpsYzsKIAlNZW1vcnlDb250 ZXh0IG9sZGN4dDsKIAlPaWQJCQlzY2hlbWFpZDsKQEAgLTU4MzEsOSArNTgzMywxMCBAQCBSZWxh dGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRl c2MgKnB1YmRlc2MpCiAJcHViZGVzYy0+Z2VuY29sc192YWxpZF9mb3JfZGVsZXRlID0gdHJ1ZTsK IAogCS8qIEZldGNoIHRoZSBwdWJsaWNhdGlvbiBtZW1iZXJzaGlwIGluZm8uICovCi0JcHVib2lk cyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkKTsKKwlwdWJvaWRzID0gR2V0UmVsYXRp b25QdWJsaWNhdGlvbnMocmVsaWQsIGZhbHNlKTsKIAlzY2hlbWFpZCA9IFJlbGF0aW9uR2V0TmFt ZXNwYWNlKHJlbGF0aW9uKTsKIAlwdWJvaWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChwdWJv aWRzLCBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQpKTsKKwlleGNlcHRwdWJvaWRzID0g R2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQsIHRydWUpOwogCiAJaWYgKHJlbGF0aW9uLT5y ZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKQEAgLTU4NDUsMTQgKzU4NDgsMTkgQEAgUmVsYXRp b25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNj ICpwdWJkZXNjKQogCQkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKIAogCQkJcHVi b2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKLQkJCQkJCQkJCQkJIEdldFJl bGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yKSk7CisJCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1 YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpKTsKIAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1l c3BhY2UoYW5jZXN0b3IpOwogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVi b2lkcywKIAkJCQkJCQkJCQkJIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCkpOworCQkJ ZXhjZXB0cHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQoZXhjZXB0cHVib2lkcywKKwkJ CQkJCQkJCQkJCSAgIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKSk7CiAJ CX0KIAl9Ci0JcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0QWxs VGFibGVzUHVibGljYXRpb25zKCkpOwogCisJYWxsdGFibGVzcHVib2lkcyA9IEdldEFsbFRhYmxl c1B1YmxpY2F0aW9ucygpOworCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9p ZHMsCisJCQkJCQkJCQkgbGlzdF9kaWZmZXJlbmNlX29pZChhbGx0YWJsZXNwdWJvaWRzLAorCQkJ CQkJCQkJCQkJCQkgZXhjZXB0cHVib2lkcykpOwogCWZvcmVhY2gobGMsIHB1Ym9pZHMpCiAJewog CQlPaWQJCQlwdWJpZCA9IGxmaXJzdF9vaWQobGMpOwpAQCAtNTg4Myw3ICs1ODkxLDcgQEAgUmVs YXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25E ZXNjICpwdWJkZXNjKQogCQlpZiAoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1YmZv cm0tPnB1YnVwZGF0ZSB8fCBwdWJmb3JtLT5wdWJkZWxldGUpICYmCiAJCQlwdWJfcmZfY29udGFp bnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJ ICAgcHViZm9ybS0+cHVidmlhcm9vdCkpCisJCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9v dCwgcHViZm9ybS0+cHViYWxsdGFibGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0 ZSkKIAkJCQlwdWJkZXNjLT5yZl92YWxpZF9mb3JfdXBkYXRlID0gZmFsc2U7CkBAIC01OTAxLDYg KzU5MDksNyBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9u LCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCQlwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1 bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCiAJCQkJCQkJCQkJcHViZm9ybS0+cHVidmlh cm9vdCwKIAkJCQkJCQkJCQlwdWJmb3JtLT5wdWJnZW5jb2xzLAorCQkJCQkJCQkJCXB1YmZvcm0t PnB1YmFsbHRhYmxlcywKIAkJCQkJCQkJCQkmaW52YWxpZF9jb2x1bW5fbGlzdCwKIAkJCQkJCQkJ CQkmaW52YWxpZF9nZW5fY29sKSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggYmVhNzkzNDU2ZjkuLmM2 MzRmMGFhNjc2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE4Niw2ICsxODYsOCBAQCBzdGF0aWMgU2ltcGxl T2lkTGlzdCBleHRlbnNpb25faW5jbHVkZV9vaWRzID0ge05VTEwsIE5VTEx9Owogc3RhdGljIFNp bXBsZVN0cmluZ0xpc3QgZXh0ZW5zaW9uX2V4Y2x1ZGVfcGF0dGVybnMgPSB7TlVMTCwgTlVMTH07 CiBzdGF0aWMgU2ltcGxlT2lkTGlzdCBleHRlbnNpb25fZXhjbHVkZV9vaWRzID0ge05VTEwsIE5V TEx9OwogCitzdGF0aWMgU2ltcGxlUHRyTGlzdCBleGNlcHRpbmZvID0ge05VTEwsIE5VTEx9Owor CiBzdGF0aWMgY29uc3QgQ2F0YWxvZ0lkIG5pbENhdGFsb2dJZCA9IHswLCAwfTsKIAogLyogb3Zl cnJpZGUgZm9yIHN0YW5kYXJkIGV4dHJhX2Zsb2F0X2RpZ2l0cyBzZXR0aW5nICovCkBAIC00NTk3 LDggKzQ1OTksMzQgQEAgZHVtcFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1Ymxp Y2F0aW9uSW5mbyAqcHViaW5mbykKIAkJCQkJICBxcHVibmFtZSk7CiAKIAlpZiAocHViaW5mby0+ cHViYWxsdGFibGVzKQorCXsKKwkJU2ltcGxlUHRyTGlzdENlbGwgKmNlbGw7CisKIAkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksICIgRk9SIEFMTCBUQUJMRVMiKTsKIAorCQkvKiBJbmNsdWRl IGV4Y2VwdGlvbiB0YWJsZXMgaWYgdGhlIHB1YmxpY2F0aW9uIGhhcyBleGNlcHQgdGFibGVzICov CisJCWZvciAoY2VsbCA9IGV4Y2VwdGluZm8uaGVhZDsgY2VsbDsgY2VsbCA9IGNlbGwtPm5leHQp CisJCXsKKwkJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8gPSAoUHVibGljYXRpb25SZWxJ bmZvICopIGNlbGwtPnB0cjsKKwkJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKworCQkJaWYgKHB1Ymlu Zm8gPT0gcHVicmluZm8tPnB1YmxpY2F0aW9uKQorCQkJeworCQkJCXRiaW5mbyA9IHB1YnJpbmZv LT5wdWJ0YWJsZTsKKworCQkJCWlmIChmaXJzdCkKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LCAiIEVYQ0VQVCBUQUJMRSIpOworCQkJCQlmaXJzdCA9IGZhbHNlOworCQkJ CX0KKwkJCQllbHNlCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCIpOworCQkJ CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OTFkgJXMiLCBmbXRRdWFsaWZpZWREdW1wYWJs ZSh0YmluZm8pKTsKKwkJCX0KKwkJfQorCX0KKworCWZpcnN0ID0gdHJ1ZTsKIAlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwgIiBXSVRIIChwdWJsaXNoID0gJyIpOwogCWlmIChwdWJpbmZvLT5w dWJpbnNlcnQpCiAJewpAQCAtNDc2NCw2ICs0NzkyLDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMo QXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAlpbnQJ CQlpX3BycmVsaWQ7CiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJaW50CQkJaV9wcmF0dHJzOworCWlu dAkJCWlfcHJleGNlcHQ7CiAJaW50CQkJaSwKIAkJCQlqLAogCQkJCW50dXBzOwpAQCAtNDc3NSw4 ICs0ODA0LDE2IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5m byB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAKIAkvKiBDb2xsZWN0IGFsbCBwdWJsaWNhdGlv biBtZW1iZXJzaGlwIGluZm8uICovCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTUwMDAw KQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJICJTRUxFQ1QgdGFi bGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCxcbiIpOworCisJCWlmIChmb3V0LT5yZW1vdGVW ZXJzaW9uID49IDE5MDAwMCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIHByZXhj ZXB0LFxuIik7CisJCWVsc2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIGZhbHNl IEFTIHByZXhjZXB0LFxuIik7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJ CQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCwgIgogCQkJCQkJCSAi cGdfY2F0YWxvZy5wZ19nZXRfZXhwcihwcnF1YWwsIHBycmVsaWQpIEFTIHBycmVscXVhbCwgIgog CQkJCQkJCSAiKENBU0VcbiIKIAkJCQkJCQkgIiAgV0hFTiBwci5wcmF0dHJzIElTIE5PVCBOVUxM IFRIRU5cbiIKQEAgLTQ3ODcsNiArNDgyNCw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hp dmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCQkJCQkJICIg ICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10p XG4iCiAJCQkJCQkJICIgIEVMU0UgTlVMTCBFTkQpIHByYXR0cnMgIgogCQkJCQkJCSAiRlJPTSBw Z19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciIpOworCX0KIAllbHNlCiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHVi aWQsIHBycmVsaWQsICIKQEAgLTQ4MDIsNiArNDg0MCw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVz KEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJaV9w cnJlbGlkID0gUFFmbnVtYmVyKHJlcywgInBycmVsaWQiKTsKIAlpX3BycmVscXVhbCA9IFBRZm51 bWJlcihyZXMsICJwcnJlbHF1YWwiKTsKIAlpX3ByYXR0cnMgPSBQUWZudW1iZXIocmVzLCAicHJh dHRycyIpOworCWlfcHJleGNlcHQgPSBQUWZudW1iZXIocmVzLCAicHJleGNlcHQiKTsKIAogCS8q IHRoaXMgYWxsb2NhdGlvbiBtYXkgYmUgbW9yZSB0aGFuIHdlIG5lZWQgKi8KIAlwdWJyaW5mbyA9 IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKQEAgLTQ4MTMs NiArNDg1Miw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5m byB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCU9pZAkJCXBycmVsaWQgPSBhdG9vaWQoUFFn ZXR2YWx1ZShyZXMsIGksIGlfcHJyZWxpZCkpOwogCQlQdWJsaWNhdGlvbkluZm8gKnB1YmluZm87 CiAJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKwkJY2hhcgkgICAqcHJleGNlcHQgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfcHJleGNlcHQpKTsKIAogCQkvKgogCQkgKiBJZ25vcmUgYW55 IGVudHJpZXMgZm9yIHdoaWNoIHdlIGFyZW4ndCBpbnRlcmVzdGVkIGluIGVpdGhlciB0aGUKQEAg LTQ4MjYsNyArNDg2NiwxMSBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkJY29udGludWU7CiAKIAkJLyog T0ssIG1ha2UgYSBEdW1wYWJsZU9iamVjdCBmb3IgdGhpcyByZWxhdGlvbnNoaXAgKi8KLQkJcHVi cmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOworCQlpZiAoc3RyY21w KHByZXhjZXB0LCAiZiIpID09IDApCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19Q VUJMSUNBVElPTl9SRUw7CisJCWVsc2UKKwkJCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERP X1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw7CisKIAkJcHVicmluZm9bal0uZG9iai5jYXRJZC50YWJs ZW9pZCA9CiAJCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKIAkJcHVi cmluZm9bal0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lk KSk7CkBAIC00ODY3LDYgKzQ5MTEsOSBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpm b3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkvKiBEZWNpZGUgd2hl dGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFibGVQdWJsaWNhdGlvbk9i amVjdCgmKHB1YnJpbmZvW2pdLmRvYmopLCBmb3V0KTsKIAorCQlpZiAoc3RyY21wKHByZXhjZXB0 LCAidCIpID09IDApCisJCQlzaW1wbGVfcHRyX2xpc3RfYXBwZW5kKCZleGNlcHRpbmZvLCAmcHVi cmluZm9bal0pOworCiAJCWorKzsKIAl9CiAKQEAgLTExNzQzLDYgKzExNzkwLDkgQEAgZHVtcER1 bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2JqKQogCQljYXNl IERPX1BVQkxJQ0FUSU9OOgogCQkJZHVtcFB1YmxpY2F0aW9uKGZvdXQsIChjb25zdCBQdWJsaWNh dGlvbkluZm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2FzZSBET19QVUJMSUNBVElPTl9FWENF UFRfUkVMOgorCQkJLyogd2lsbCBiZSBkdW1wZWQgaW4gZHVtcFB1YmxpY2F0aW9uICovCisJCQli cmVhazsKIAkJY2FzZSBET19QVUJMSUNBVElPTl9SRUw6CiAJCQlkdW1wUHVibGljYXRpb25UYWJs ZShmb3V0LCAoY29uc3QgUHVibGljYXRpb25SZWxJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CkBA IC0yMDEwOSw2ICsyMDE1OSw3IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2Jq ZWN0ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19ERUZBVUxUX0FDTDoKIAkJCWNh c2UgRE9fUE9MSUNZOgogCQkJY2FzZSBET19QVUJMSUNBVElPTjoKKwkJCWNhc2UgRE9fUFVCTElD QVRJT05fRVhDRVBUX1JFTDoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgogCQkJY2FzZSBE T19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUE6CiAJCQljYXNlIERPX1NVQlNDUklQVElPTjoK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oCmluZGV4IGJjYzk0ZmYwN2NjLi43OWMyYmRkNGM4MiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBA IC04MSw2ICs4MSw3IEBAIHR5cGVkZWYgZW51bQogCURPX1JFRlJFU0hfTUFUVklFVywKIAlET19Q T0xJQ1ksCiAJRE9fUFVCTElDQVRJT04sCisJRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlE T19QVUJMSUNBVElPTl9SRUwsCiAJRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCURP X1JFTF9TVEFUUywKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCAyZDAyNDU2NjY0Yi4uNDdhNDUw YzgyMGMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTkyLDYgKzkyLDcgQEAgZW51bSBkYk9i amVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19GS19DT05TVFJBSU5ULAogCVBSSU9fUE9MSUNZLAog CVBSSU9fUFVCTElDQVRJT04sCisJUFJJT19QVUJMSUNBVElPTl9FWENFUFRfUkVMLAogCVBSSU9f UFVCTElDQVRJT05fUkVMLAogCVBSSU9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCVBS SU9fU1VCU0NSSVBUSU9OLApAQCAtMTQ3LDYgKzE0OCw3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJP YmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJW0RPX1JFRlJFU0hfTUFUVklFV10gPSBQUklPX1JFRlJF U0hfTUFUVklFVywKIAlbRE9fUE9MSUNZXSA9IFBSSU9fUE9MSUNZLAogCVtET19QVUJMSUNBVElP Tl0gPSBQUklPX1BVQkxJQ0FUSU9OLAorCVtET19QVUJMSUNBVElPTl9FWENFUFRfUkVMXSA9IFBS SU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlbRE9fUFVCTElDQVRJT05fUkVMXSA9IFBSSU9f UFVCTElDQVRJT05fUkVMLAogCVtET19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUFdID0gUFJJ T19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEsCiAJW0RPX1JFTF9TVEFUU10gPSBQUklPX1NU QVRJU1RJQ1NfREFUQV9EQVRBLApAQCAtNDQyLDYgKzQ0NCwxNyBAQCBET1R5cGVOYW1lQ29tcGFy ZShjb25zdCB2b2lkICpwMSwgY29uc3Qgdm9pZCAqcDIpCiAJCWlmIChjbXB2YWwgIT0gMCkKIAkJ CXJldHVybiBjbXB2YWw7CiAJfQorCWVsc2UgaWYgKG9iajEtPm9ialR5cGUgPT0gRE9fUFVCTElD QVRJT05fRVhDRVBUX1JFTCkKKwl7CisJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHJvYmoxID0gKihQ dWJsaWNhdGlvblJlbEluZm8gKmNvbnN0ICopIHAxOworCQlQdWJsaWNhdGlvblJlbEluZm8gKnBy b2JqMiA9ICooUHVibGljYXRpb25SZWxJbmZvICpjb25zdCAqKSBwMjsKKworCQkvKiBTb3J0IGJ5 IHB1YmxpY2F0aW9uIG5hbWUsIHNpbmNlIChuYW1lc3BhY2UsIG5hbWUpIG1hdGNoIHRoZSByZWwg Ki8KKwkJY21wdmFsID0gc3RyY21wKHByb2JqMS0+cHVibGljYXRpb24tPmRvYmoubmFtZSwKKwkJ CQkJCXByb2JqMi0+cHVibGljYXRpb24tPmRvYmoubmFtZSk7CisJCWlmIChjbXB2YWwgIT0gMCkK KwkJCXJldHVybiBjbXB2YWw7CisJfQogCWVsc2UgaWYgKG9iajEtPm9ialR5cGUgPT0gRE9fUFVC TElDQVRJT05fVEFCTEVfSU5fU0NIRU1BKQogCXsKIAkJUHVibGljYXRpb25TY2hlbWFJbmZvICpw c29iajEgPSAqKFB1YmxpY2F0aW9uU2NoZW1hSW5mbyAqY29uc3QgKikgcDE7CkBAIC0xNzE0LDYg KzE3MjcsMTEgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBj aGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIlBVQkxJQ0FUSU9OIChJRCAlZCBPSUQgJXUp IiwKIAkJCQkJIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQlyZXR1cm47CisJCWNh c2UgRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwK KwkJCQkJICJQVUJMSUNBVElPTiBFWENFUFQgVEFCTEUgKElEICVkIE9JRCAldSkiLAorCQkJCQkg b2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKIAkJY2FzZSBET19QVUJM SUNBVElPTl9SRUw6CiAJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCiAJCQkJCSAiUFVCTElDQVRJ T04gVEFCTEUgKElEICVkIE9JRCAldSkiLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBl N2EyZDY0Zjc0MS4uN2U0ZTU4OTkxOWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0z MzU0LDYgKzMzNTQsMjYgQEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+IHsgJWZ1bGxfcnVucywg c2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NSRUFURSBQVUJMSUNBVElPTiBw dWI2JyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MCwKKwkJY3JlYXRlX3NxbCA9PgorCQkgICdD UkVBVEUgUFVCTElDQVRJT04gcHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgZHVtcF90ZXN0LnRl c3RfdGFibGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1 YjYgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFibGUg V0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJ CQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9 LAorCX0sCisKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjcnID0+IHsKKwkJY3JlYXRlX29yZGVy ID0+IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI3IEZP UiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBkdW1wX3Rlc3QudGVzdF90YWJsZSwgZHVtcF90ZXN0 LnRlc3Rfc2Vjb25kX3RhYmxlOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQVUJM SUNBVElPTiBwdWI3IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIGR1bXBfdGVzdC50 ZXN0X3RhYmxlLCBPTkxZIGR1bXBfdGVzdC50ZXN0X3NlY29uZF90YWJsZSBXSVRIIChwdWJsaXNo ID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS94bSwKKwkJbGlr ZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKwogCSdD UkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQlj cmVhdGVfc3FsID0+ICdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNGFhNzkz ZDdkZTcuLjI3NzQ1NDhhMmM4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwor KysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMzAzOSwxNyArMzAzOSwzNCBAQCBkZXNj cmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCQkgICIg ICAgICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJz W3NdKVxuIgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKIAkJCQkJCQkJICAi RlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiICAgICBKT0lO IHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJpZFxu IgotCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lkID0g cHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIgorCQkJ CQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5vaWQg PSBwci5wcnB1YmlkXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMg T04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQgPSAn JXMnXG4iLAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOworCisJCQkJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMTkwMDAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiIEFORCBOT1Qg cHIucHJleGNlcHRcbiIpOworCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkJ ICAiVU5JT05cbiIKIAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKLQkJCQkJCQkJICAiICAg ICAsIE5VTExcbiIKLQkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5V TExcbiIKKwkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9n LnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5E IHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKLQkJCQkJCQkJ ICAiT1JERVIgQlkgMTsiLAotCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9pZCk7CisJCQkJCQkJ CSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1 Ymxpc2hhYmxlKCclcycpXG4iLAorCQkJCQkJCQkgIG9pZCk7CisKKwkJCQlpZiAocHNldC5zdmVy c2lvbiA+PSAxOTAwMDApCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJCQkg ICIgICAgIEFORCBOT1QgRVhJU1RTIChcbiIKKwkJCQkJCQkJCSAgIgkJU0VMRUNUIDFcbiIKKwkJ CQkJCQkJCSAgIgkJRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxuIgorCQkJ CQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGNcbiIKKwkJCQkJCQkJCSAgIgkJ T04gcHIucHJyZWxpZCA9IHBjLm9pZFxuIgorCQkJCQkJCQkJICAiCQlXSEVSRSBwci5wcnJlbGlk ID0gJyVzJyBBTkQgcHIucHJwdWJpZCA9IHAub2lkKVxuIiwKKwkJCQkJCQkJCSAgb2lkKTsKKwor CQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxOyIpOwogCQkJfQogCQkJ ZWxzZQogCQkJewpAQCAtNjY5Myw4ICs2NzEwLDEyIEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNv bnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCQkJICAiICAgICBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0 aW9uX3JlbCBwclxuIgogCQkJCQkJCSAgIldIRVJFIGMucmVsbmFtZXNwYWNlID0gbi5vaWRcbiIK IAkJCQkJCQkgICIgIEFORCBjLm9pZCA9IHByLnBycmVsaWRcbiIKLQkJCQkJCQkgICIgIEFORCBw ci5wcnB1YmlkID0gJyVzJ1xuIgotCQkJCQkJCSAgIk9SREVSIEJZIDEsMiIsIHB1YmlkKTsKKwkJ CQkJCQkgICIgIEFORCBwci5wcnB1YmlkID0gJyVzJ1xuIiwgcHViaWQpOworCisJCQlpZiAocHNl dC5zdmVyc2lvbiA+PSAxOTAwMDApCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIiAgQU5E IE5PVCBwci5wcmV4Y2VwdFxuIik7CisKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICJPUkRF UiBCWSAxLDIiKTsKIAkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygi VGFibGVzOiIpLCBmYWxzZSwgJmNvbnQpKQogCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCkBAIC02 NzEyLDYgKzY3MzMsMjMgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVy bikKIAkJCQkJZ290byBlcnJvcl9yZXR1cm47CiAJCQl9CiAJCX0KKwkJZWxzZQorCQl7CisJCQlp ZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJCQl7CisJCQkJLyogR2V0IHRoZSBleGNsdWRl ZCB0YWJsZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljYXRpb24gKi8KKwkJCQlwcmludGZQUUV4 cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1QgY29uY2F0KGMucmVsbmFtZXNwYWNlOjpy ZWduYW1lc3BhY2UsICcuJywgYy5yZWxuYW1lKVxuIgorCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFs b2cucGdfY2xhc3MgY1xuIgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJs aWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJF IHByLnBycHViaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIiAgQU5EIHByLnByZXhjZXB0XG4iCisJ CQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJCQkJaWYgKCFhZGRGb290ZXJUb1B1Ymxp Y2F0aW9uRGVzYygmYnVmLCBfKCJFeGNlcHQgdGFibGVzOiIpLAorCQkJCQkJCQkJCQkJdHJ1ZSwg JmNvbnQpKQorCQkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJCX0KKwkJfQogCiAJCXByaW50VGFi bGUoJmNvbnQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKIAkJcHJpbnRU YWJsZUNsZWFudXAoJmNvbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDAxMzMyZjRlNGRm Li41ZGI4ODEyYzBkOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjI2OSwxMSArMjI2OSwx NiBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lU SCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlJFU0VUIiwgIlNFVCIp OwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8KIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIikpCi0JCUNPTVBMRVRFX1dJ VEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKKwkJQ09NUExFVEVfV0lUSCgiQUxMIFRB QkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygi QUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIikp CisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikpCiAJCUNP TVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7Ci0JZWxz ZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8 U0VUIiwgIlRBQkxFIikgJiYKLQkJCSBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwllbHNlIGlm IChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIkFMTCIs ICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FV RVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFM VEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYgZW5k c193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5 X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBV QkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQiLCAi VEFCTEUiKSAmJiBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hF TUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKIAogCS8qCkBAIC0zNTg5LDYgKzM1 OTQsMTAgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAo TWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIikp CiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIs ICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiKSkKKwkJQ09N UExFVEVfV0lUSCgiRVhDRVBUIFRBQkxFIiwgIldJVEggKCIpOworCWVsc2UgaWYgKE1hdGNoZXMo IkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMi LCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hl cygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxF UyIsICJFWENFUFQiLCAiVEFCTEUiLCBNYXRjaEFueSkgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAn LCcpKQogCQlDT01QTEVURV9XSVRIKCJXSVRIICgiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVB VEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiKSkKIAkJQ09NUExF VEVfV0lUSCgiSU4gU0NIRU1BIik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5k ZXggNmUwNzQxOTBmZDIuLjAyMjQ2N2ZiNDVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5oCkBAIC0xMzksMTEgKzEzOSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblJl bEluZm8KIAlSZWxhdGlvbglyZWxhdGlvbjsKIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsKIAlMaXN0 CSAgICpjb2x1bW5zOworCWJvb2wJCWV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiBl eHRlcm4gUHVibGljYXRpb24gKkdldFB1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVi bGljYXRpb24gKkdldFB1YmxpY2F0aW9uQnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wg bWlzc2luZ19vayk7Ci1leHRlcm4gTGlzdCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJl bGlkKTsKK2V4dGVybiBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQsIGJv b2wgZXhjZXB0X2ZsYWcpOwogCiAvKi0tLS0tLS0tLQogICogRXhwZWN0ZWQgdmFsdWVzIGZvciBw dWJfcGFydG9wdCBwYXJhbWV0ZXIgb2YgR2V0UHVibGljYXRpb25SZWxhdGlvbnMoKSwKQEAgLTE2 MSw5ICsxNjIsMTAgQEAgdHlwZWRlZiBlbnVtIFB1YmxpY2F0aW9uUGFydE9wdAogCVBVQkxJQ0FU SU9OX1BBUlRfQUxMLAogfSBQdWJsaWNhdGlvblBhcnRPcHQ7CiAKLWV4dGVybiBMaXN0ICpHZXRQ dWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFy dG9wdCk7CitleHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQ dWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCisJCQkJCQkJCQkgYm9vbCBleGNlcHRfZmxh Zyk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpOwotZXh0ZXJu IExpc3QgKkdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCk7 CitleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1Ymlk LCBib29sIHB1YnZpYXJvb3QpOwogZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uU2NoZW1hcyhP aWQgcHViaWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9ucyhPaWQgc2NoZW1h aWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBzY2hl bWFpZCwKQEAgLTE3NCw3ICsxNzYsNyBAQCBleHRlcm4gTGlzdCAqR2V0UHViUGFydGl0aW9uT3B0 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 ZW5vZGVzLmgKaW5kZXggYWYyMjBiMDI3ODguLmYyY2M5Nzg0NDU2IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCkBAIC00MjY4LDYgKzQyNjgsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRh YmxlCiAJUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBiZSBwdWJsaXNoZWQg Ki8KIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KIAlMaXN0CSAg ICpjb2x1bW5zOwkJLyogTGlzdCBvZiBjb2x1bW5zIGluIGEgcHVibGljYXRpb24gdGFibGUgKi8K Kwlib29sCQlleGNlcHQ7CQkJLyogZXhjbHVkZSB0aGUgcmVsYXRpb24gKi8KIH0gUHVibGljYXRp b25UYWJsZTsKIAogLyoKQEAgLTQyNzYsNiArNDI3Nyw3IEBAIHR5cGVkZWYgc3RydWN0IFB1Ymxp Y2F0aW9uVGFibGUKIHR5cGVkZWYgZW51bSBQdWJsaWNhdGlvbk9ialNwZWNUeXBlCiB7CiAJUFVC TElDQVRJT05PQkpfVEFCTEUsCQkvKiBBIHRhYmxlICovCisJUFVCTElDQVRJT05PQkpfRVhDRVBU X1RBQkxFLAkvKiBBIHRhYmxlIHRvIGJlIGV4Y2x1ZGVkICovCiAJUFVCTElDQVRJT05PQkpfVEFC TEVTX0lOX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBzY2hlbWEgKi8KIAlQVUJMSUNBVElPTk9C Sl9UQUJMRVNfSU5fQ1VSX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBmaXJzdCBlbGVtZW50IG9m CiAJCQkJCQkJCQkJCSAqIHNlYXJjaF9wYXRoICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHVibGljYXRpb24ub3V0CmluZGV4IGZjZmM4YTliNDg1Li45YmZjNDMzNDRkNSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIxMywxMyArMjEzLDM3IEBA 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 ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzCkBAIC0yMzgsOCArMjYyLDI1 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 aGF0IGFzc29jaWF0ZWQgdGFibGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFm dGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTk2NCw2ICsy MDI4LDExIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAoMSByb3cp CiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEg cHVibGljOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMgSU4g U0NIRU1BJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQg QUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFM TCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNh dGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5v dCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElO VDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0 aW9uCiAtLSBWZXJpZnkgdGhhdCBhc3NvY2lhdGVkIHNjaGVtYXMgYXJlIHJlb212ZWQgZnJvbSB0 aGUgcHVibGljYXRpb24gYWZ0ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJfcmVzZXQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jl c2V0CkBAIC0xOTgyLDYgKzIwNTEsMTIgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBSRVNFVDsKICgxIHJvdykKIAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQg KFBVQkxJU0ggPSAnJyk7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gdGhlICdQVUJM SVNIJyBwYXJhbWV0ZXIgZG9lcyBub3QgaGF2ZSBkZWZhdWx0CistLSB2YWx1ZQorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3Nj aDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0 aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6 ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFz IHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4g UkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcg cGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAt MTk5OSw2ICsyMDc0LDEyIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 CiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNI X1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxF IHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgZG9lcyBub3QKKy0t IGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQg QUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFM TCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNh dGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5v dCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElO VDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0 aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRl ciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTIwMzcsOSAr MjExOCwxMyBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlcjI7CiBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIy OwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3Qg YmUgc3VwZXJ1c2VyCiBFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0 aW9uCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7CitFUlJPUjogIG11 c3QgYmUgc3VwZXJ1c2VyIHRvIEFERCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbgogU0VU IFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50 YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwog LS0gVGVzdCB0aGF0IHRoZSBJTlNFUlQgT04gQ09ORkxJQ1QgY29tbWFuZCBjb3JyZWN0bHkgY2hl Y2tzIFJFUExJQ0EgSURFTlRJVFkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1 YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRl eCA0OGZhNTNmYzZjNC4uZmJlMTlhNjk1OWIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlv bi5zcWwKQEAgLTEwNSwyMCArMTA1LDMzIEBAIFNFTEVDVCBwdWJuYW1lLCBwdWJhbGx0YWJsZXMg RlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZm9yYWxsCiBcZCsg dGVzdHB1Yl90YmwyCiBcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlcwogCitTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0 YWJsZXNfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJs MSwgdGVzdHB1Yl90YmwyOworLS0gc3BlY2lmeSBFWENFUFQgd2l0aG91dCBUQUJMRQorQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMSBGT1IgQUxMIFRB QkxFUyBFWENFUFQgdGVzdHB1Yl90YmwxOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKKwor XGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUKK1xkUnArIHRlc3RwdWJfZm9y YWxsdGFibGVzX2V4Y2VwdHRhYmxlMQorCiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMjsKLURST1Ag UFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3Rw dWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hOworRFJPUCBQVUJMSUNBVElPTiB0 ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEs IHRlc3RwdWJfZm9yX3RibF9zY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxl LCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiAKIENSRUFURSBUQUJMRSB0ZXN0 cHViX3RibDMgKGEgaW50KTsKIENSRUFURSBUQUJMRSB0ZXN0cHViX3RibDNhIChiIHRleHQpIElO SEVSSVRTICh0ZXN0cHViX3RibDMpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1In OwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWIzIEZPUiBUQUJMRSB0ZXN0cHViX3RibDM7CiBD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjQgRk9SIFRBQkxFIE9OTFkgdGVzdHB1Yl90YmwzOwor Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI1IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0 ZXN0cHViX3RibDM7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjYgRk9SIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIE9OTFkgdGVzdHB1Yl90YmwzOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdl czsKIFxkUnArIHRlc3RwdWIzCiBcZFJwKyB0ZXN0cHViNAorXGRScCsgdGVzdHB1YjUKK1xkUnAr IHRlc3RwdWI2CiAKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwzLCB0ZXN0cHViX3RibDNhOwotRFJP UCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1YjQ7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3Rw dWIzLCB0ZXN0cHViNCwgdGVzdHB1YjUsIHRlc3RwdWI2OwogCiAtLSBUZXN0cyBmb3IgcGFydGl0 aW9uZWQgdGFibGVzCiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CkBAIC0xMjI1 LDE3ICsxMjM4LDMwIEBAIERST1AgVEFCTEUgZ2VuY29sczsKIC0tIFRlc3RzIGZvciBBTFRFUiBQ VUJMSUNBVElPTiAuLi4gUkVTRVQKIENSRUFURSBTQ0hFTUEgcHViX3NjaDE7CiBDUkVBVEUgVEFC TEUgcHViX3NjaDEudGJsMSAoYSBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDIgKGEg aW50KTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOwogUkVTRVQgY2xpZW50X21pbl9tZXNz YWdlczsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1 YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVT IEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworCiAtLSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxF UycgZmxhZyBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBSRVNFVDsKIFxkUnArIHRlc3RwdWJfcmVzZXQKIAorLS0gU2hvdWxkIHdv cmsgbm93IGFmdGVyIHJlc2V0dGluZyB0aGUgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDEs IHB1Yl9zY2gxLnRibDI7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7CisKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg QUREIFRBQkxFIHB1Yl9zY2gxLnRibDE7CiAKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8g J0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg QUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0 aGF0IGFzc29jaWF0ZWQgdGFibGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFm dGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IFJFU0VUOwpAQCAtMTI0Myw2ICsxMjY5LDkgQEAgQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBSRVNFVDsKIAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQg VEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CiAKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8g J0ZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7 CisKIC0tIFZlcmlmeSB0aGF0IGFzc29jaWF0ZWQgc2NoZW1hcyBhcmUgcmVvbXZlZCBmcm9tIHRo ZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKQEAgLTEyNTAsNiArMTI3OSwxMCBAQCBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogCiBBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSCA9ICcnKTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBU QUJMRSB3aGVuIHRoZSAnUFVCTElTSCcgcGFyYW1ldGVyIGRvZXMgbm90IGhhdmUgZGVmYXVsdAor LS0gdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBw YXJhbWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0xMjU3LDYgKzEyOTAsMTAgQEAgQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBTRVQgKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UID0gJ3RydWUnKTsKIAorLS0gQ2Fu J3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFy YW1ldGVyIGRvZXMgbm90CistLSBoYXZlIGRlZmF1bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7 CisKIC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVy IGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IFJFU0VUOwpAQCAtMTI3MywxMCArMTMxMCwxNCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3Jlc2V0IFJFU0VUOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05F UiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyMjsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZh aWwgLSBtdXN0IGJlIHN1cGVydXNlcgorCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBj YW4gQUREIEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFM TCBUQUJMRVM7CiBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CiAKIERST1AgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1Ag VEFCTEUgcHViX3NjaDEudGJsMjsKIERST1AgU0NIRU1BIHB1Yl9zY2gxOwogCiBSRVNFVCBjbGll bnRfbWluX21lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29u LmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCmluZGV4IDU4NmZmYmE0 MzRlLi5lOGExMTdmMzQyMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29u LmJ1aWxkCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZApAQCAtNDIsNiAr NDIsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8wMzNfcnVuX2FzX3RhYmxlX293bmVyLnBsJywK ICAgICAgICd0LzAzNF90ZW1wb3JhbC5wbCcsCiAgICAgICAndC8wMzVfY29uZmxpY3RzLnBsJywK KyAgICAgICd0LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwnLAogICAgICAgJ3QvMTAw X2J1Z3MucGwnLAogICAgIF0sCiAgIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRp b24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uYTlkNzNmZTcyMWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCkBAIC0w LDAgKzEsMTg2IEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjUsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCisKKyMgTG9naWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBmb3Ig ZXhjZXB0IHRhYmxlIHB1YmxpY2F0aW9ucwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3Vz ZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxz OwordXNlIFRlc3Q6Ok1vcmU7CisKKyMgSW5pdGlhbGl6ZSBwdWJsaXNoZXIgbm9kZQorbXkgJG5v ZGVfcHVibGlzaGVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNoZXIn KTsKKyRub2RlX3B1Ymxpc2hlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7 Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0OworCisjIENyZWF0ZSBzdWJzY3JpYmVyIG5vZGUKK215 ICRub2RlX3N1YnNjcmliZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNj cmliZXInKTsKKyRub2RlX3N1YnNjcmliZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9n aWNhbCcpOworJG5vZGVfc3Vic2NyaWJlci0+c3RhcnQ7CisKKyMgVGVzdCByZXBsaWNhdGlvbiB3 aXRoIHB1YmxpY2F0aW9ucyBjcmVhdGVkIHVzaW5nIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJM RQorIyBjbGF1c2UuCisjIENyZWF0ZSBzY2hlbWFzIGFuZCB0YWJsZXMgb24gcHVibGlzaGVyCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgU0NI RU1BIHNjaDE7CisJQ1JFQVRFIFRBQkxFIHNjaDEudGFiMSBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2Vy aWVzKDEsMTApIEFTIGE7CisJQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxKGEgaW50KTsKKykpOwor CisjIENyZWF0ZSBzY2hlbWFzIGFuZCB0YWJsZXMgb24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBTQ0hFTUEgc2NoMTsK KwlDUkVBVEUgVEFCTEUgc2NoMS50YWIxIChhIGludCk7CisJQ1JFQVRFIFRBQkxFIHB1YmxpYy50 YWIxIChhIGludCk7CispKTsKKworIyBTZXR1cCBsb2dpY2FsIHJlcGxpY2F0aW9uCitteSAkcHVi bGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0 Z3Jlcyc7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg UFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHNj aDEudGFiMSIKKyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJDUkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWJfc2NoZW1hIENPTk5FQ1RJT04gJyRwdWJsaXNo ZXJfY29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEiCispOworCisjIFdhaXQgZm9y IGluaXRpYWwgdGFibGUgc3luYyB0byBmaW5pc2gKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9y X3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwKKwkndGFwX3N1Yl9zY2hlbWEnKTsK KworIyBDaGVjayB0aGUgdGFibGUgZGF0YSBkb2VzIG5vdCBzeW5jIGZvciBleGNsdWRlZCB0YWJs ZQorbXkgJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJTRUxFQ1QgY291bnQoKiksIG1pbihhKSwgbWF4KGEpIEZST00gc2NoMS50YWIxIik7Citpcygk cmVzdWx0LCBxcSgwfHwpLAorCSdjaGVjayB0aGVyZSBpcyBubyBpbml0aWFsIGRhdGEgY29waWVk IGZvciB0aGUgZXhjbHVkZWQgdGFibGUnKTsKKworIyBJbnNlcnQgc29tZSBkYXRhIGFuZCB2ZXJp ZnkgdGhhdCBpbnNlcnRlZCBkYXRhIGlzIG5vdCByZXBsaWNhdGVkCiskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyBzY2gxLnRhYjEgVkFMVUVTKGdl bmVyYXRlX3NlcmllcygxMSwyMCkpIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0 Y2h1cCgndGFwX3N1Yl9zY2hlbWEnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKiksIG1pbihhKSwgbWF4KGEpIEZS T00gc2NoMS50YWIxIik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hlY2sgcmVwbGljYXRlZCBp bnNlcnRzIG9uIHN1YnNjcmliZXInKTsKKworIyBBbHRlciBwdWJsaWNhdGlvbiB0byBleGNsdWRl IGRhdGEgY2hhbmdlcyBpbiBwdWJsaWMudGFiMSBhbmQgdmVyaWZ5IHRoYXQKKyMgc3Vic2NyaWJl ciBkb2VzIG5vdCBnZXQgdGhlIGNoYW5nZWQgZGF0YSBmb3IgdGhpcyB0YWJsZS4KKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUFMVEVSIFBVQkxJQ0FUSU9O IHRhcF9wdWJfc2NoZW1hIFJFU0VUOworCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1h IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBzY2gxLnRhYjEsIHB1YmxpYy50YWIxOworCUlO U0VSVCBJTlRPIHB1YmxpYy50YWIxIFZBTFVFUyhnZW5lcmF0ZV9zZXJpZXMoMSwxMCkpOworKSk7 Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisK KyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHB1YmxpYy50YWIxIik7CitpcygkcmVz dWx0LCBxcSgwfHwpLCAnY2hlY2sgcm93cyBvbiBzdWJzY3JpYmVyIGNhdGNodXAnKTsKKworIyBj bGVhbnVwCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJM SUNBVElPTiB0YXBfcHViX3NjaGVtYSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViX3NjaGVtYSIpOworCisKKyMgQ2hl Y2sgYmVoYXZpb3VyIG9mIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IGFuZCBFWENFUFQgY2xh dXNlIHdpdGgKKyMgcGFydGl0aW9uZWQgdGFibGUgb3IgcGFydGlpdGlvbnMgb2YgcGFydGl0aW9u ZWQgdGFibGUuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgK KwlDUkVBVEUgVEFCTEUgc2NoMS50MShhIGludCkgUEFSVElUSU9OIEJZIFJBTkdFKGEpOworCUNS RUFURSBUQUJMRSBzY2gxLnBhcnQxIFBBUlRJVElPTiBPRiBzY2gxLnQxIEZPUiBWQUxVRVMgRlJP TSAoMCkgVE8gKDUpOworCUlOU0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgxKTsKKykpOworCisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFRB QkxFIHNjaDEudDEoYSBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnBhcnQxKGEgaW50KTsKKykp OworCisjIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gZmFsc2UgYW5kIEVYQ0VQVCBzY2gx LnBhcnQxCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg UFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBzY2gx LnBhcnQxIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JF QVRFIFNVQlNDUklQVElPTiB0YXBfc3ViX3BhcnQgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25u c3RyJyBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQiCispOworJG5vZGVfc3Vic2NyaWJlci0+d2Fp dF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9wYXJ0Jyk7 Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gc2No MS50MSBWQUxVRVMgKDIpIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3Rh cF9zdWJfcGFydCcpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEudDEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdj aGVjayByb3dzIG9uIHBhcnRpdGlvbmVkIHRhYmxlJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS5wYXJ0MSIp OworaXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIHJvd3Mgb24gcGFydGl0aW9ucycpOworCisjIHB1 Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gZmFsc2UgYW5kIEVYQ0VQVCBzY2gxLnQxCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlBTFRFUiBQVUJMSUNB VElPTiB0YXBfcHViX3BhcnQgUkVTRVQ7CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0 IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBzY2gxLnQxOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcGFydCBS RUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3Jp cHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAo MykiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7 CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNF TEVDVCAqIEZST00gc2NoMS50MSIpOworaXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIHJvd3Mgb24g cGFydGl0aW9uZWQgdGFibGUnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnBhcnQxIik7CitpcyggJHJlc3Vs dCwgcXEoMQorMgorMyksICdjaGVjayByb3dzIG9uIHBhcnRpdGlvbnMnKTsKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJUUlVOQ0FURSBzY2gxLnQxIik7Ciskbm9kZV9w dWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViX3Bh cnQiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFBVQkxJ Q0FUSU9OIHRhcF9wdWJfcGFydDsiKTsKKworIyBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9 IHRydWUgYW5kIEVYQ0VQVCBzY2gxLnQxCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkn cG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEZPUiBBTEwg VEFCTEVTIEVYQ0VQVCBUQUJMRSBzY2gxLnQxIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9y b290KTsKKwlJTlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMSkKKykpOworJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1 Yl9wYXJ0IENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1 Yl9wYXJ0IgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5j KCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWJfcGFydCcpOworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgyKSIpOworJG5v ZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3BhcnQnKTsKKworJHJlc3Vs dCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJP TSBzY2gxLnQxIik7CitpcygkcmVzdWx0LCBxcSgpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25l ZCB0YWJsZScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdj aGVjayByb3dzIG9uIHBhcnRpdGlvbnMnKTsKKworIyBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9v dCA9IHRydWUgYW5kIEVYQ0VQVCBzY2gxLnBhcnQxCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgKKwkncG9zdGdyZXMnLCBxcSgKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgUkVT RVQ7CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEFERCBBTEwgVEFCTEVTIEVYQ0VQ VCBzY2gxLnBhcnQxOworCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBTRVQgKHB1Ymxp c2hfdmlhX3BhcnRpdGlvbl9yb290KTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX3BhcnQgUkVGUkVTSCBQ VUJMSUNBVElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5 bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9wYXJ0Jyk7Ciskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDMpIik7Cisk bm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworCiskcmVz dWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBG Uk9NIHNjaDEudDEiKTsKK2lzKCAkcmVzdWx0LCBxcSgxCisyCiszKSwgJ2NoZWNrIHJvd3Mgb24g cGFydGl0aW9uZWQgdGFibGUnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnBhcnQxIik7CitpcygkcmVzdWx0 LCBxcSgpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25zJyk7CisKKyRub2RlX3N1YnNjcmliZXIt PnN0b3AoJ2Zhc3QnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOworCitkb25lX3Rl c3RpbmcoKTsKLS0gCjIuMzQuMQoK --0000000000000ba556063e07eff7 Content-Type: application/octet-stream; name="v23-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v23-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf6fxsur2 RnJvbSA4YjQ0MzMwZDQ1MzQ2YjU3MjhmY2NjMzYyOWNkNGRiZWE3NWI2ZjQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFN1biwgMyBBdWcgMjAyNSAyMTowMToxMiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIz IDMvM10gU2tpcCBwdWJsaXNoaW5nIHRoZSBjb2x1bW5zIHNwZWNpZmllZCBpbiBGT1IgVEFCTEUK IEVYQ0VQVAoKQSBuZXcgIlRBQkxFIHRhYmxlX25hbWUgRVhDRVBUIChjb2x1bW5fbGlzdCkiIGNs YXVzZSBmb3IgQ1JFQVRFL0FMVEVSClBVQkxJQ0FUSU9OIGFsbG93cyBvbmUgb3IgbW9yZSBjb2x1 bW5zIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlzaGVyCndpbGwgbm90IHNlbmQgdGhlIGRhdGEg b2YgZXhjbHVkZWQgY29sdW1ucyB0byB0aGUgc3Vic2NyaWJlci4KClRoZSBuZXcgc3ludGF4IGFs bG93cyBzcGVjaWZ5aW5nIGV4Y2x1ZGVkIGNvbHVtbiBsaXN0IHdoZW4gY3JlYXRpbmcgb3IKYWx0 ZXJpbmcgYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6CkNSRUFURSBQVUJMSUNBVElPTiBwdWJu YW1lIEZPUiBUQUJMRSB0YWJuYW1lIEVYQ0VQVCAoY29sMSwgY29sMiwgY29sMykKb3IKQUxURVIg UFVCTElDQVRJT04gcHVibmFtZSBBREQgVEFCTEUgdGFibmFtZSBFWENFUFQgKGNvbDEsIGNvbDIs IGNvbDMpCgpXaGVuIGNvbHVtbiAicHJleGNlcHQiIG9mIHN5c3RlbSBjYXRhbG9nICJwZ19wdWJs aWNhdGlvbl9yZWwiIGlzIHNldAp0byAidHJ1ZSIsIGFuZCBjb2x1bW4gInByYXR0cnMiIG9mIHN5 c3RlbSBjYXRhbG9nICJwZ19wdWJsaWNhdGlvbl9yZWwiCmlzIG5vdCBOVUxMLCB0aGF0IG1lYW5z IHRoZSBwdWJsaWNhdGlvbiB3YXMgY3JlYXRlZCB3aXRoICJFWENFUFQKKGNvbHVtbi1saXN0KSIs IGFuZCB0aGUgY29sdW1ucyBpbiAicHJhdHRycyIgd2lsbCBiZSBleGNsdWRlZCBmcm9tCmJlaW5n IHB1Ymxpc2hlZC4KCnBnX2R1bXAgaXMgdXBkYXRlZCB0byBpZGVudGlmeSBhbmQgZHVtcCB0aGUg ZXhjbHVkZWQgY29sdW1uIGxpc3Qgb2YgdGhlCnB1YmxpY2F0aW9uLgoKVGhlIHBzcWwgXGQgZmFt aWx5IG9mIGNvbW1hbmRzIGNhbiBub3cgZGlzcGxheSBleGNsdWRlZCBjb2x1bW4gbGlzdC4gZS5n Lgpwc3FsIFxkUnArIHZhcmlhbnQgd2lsbCBub3cgZGlzcGxheSBhc3NvY2lhdGVkICJFWENFUFQg KGNvbHVtbl9saXN0KSIgaWYKYW55LgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAg ICAgICAgICAgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbCAgICAgICAgIHwgMTA2ICsrKysrLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbCAgICAgICB8ICAxMCArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVi bGljYXRpb24uc2dtbCAgICAgIHwgIDUyICsrKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVi bGljYXRpb24uYyAgICAgICAgICB8ICA3NSArKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmMgICAgICAgIHwgIDUyICsrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgICAgICB8ICA0NCArKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvdGFibGVzeW5jLmMgICB8ICA0MSArKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8ICA3MCArKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICstLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5j ICAgICAgICAgICAgICAgICAgICAgICB8IDI2MiArKysrKysrKysrKy0tLS0tLS0KIHNyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAgICAgIHwgICA2ICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oICAgICAgfCAgIDUgKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgICB8ICA4OCArKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgICAgICB8ICA1NSArKysrCiBzcmMvdGVz dC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3QvMDM3 X3JlcF9jaGFuZ2VzX2V4Y2VwdF9jb2xsaXN0LnBsICAgICAgIHwgMTkwICsrKysrKysrKysrKysK IDE5IGZpbGVzIGNoYW5nZWQsIDg5NyBpbnNlcnRpb25zKCspLCAyMTUgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X3JlcF9jaGFuZ2Vz X2V4Y2VwdF9jb2xsaXN0LnBsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBhZTM4NjE5ZTIxOS4uMTNhNGVj MzYzN2MgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NTczLDcgKzY1NzMsMTAgQEAgU0NSQU0tU0hBLTI1 NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVw bGFjZWFibGU+JmwKICAgICAgIDxzdHJ1Y3RmaWVsZD5wcmV4Y2VwdDwvc3RydWN0ZmllbGQ+IDx0 eXBlPmJvb2w8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KLSAgICAgICBUcnVl IGlmIHRoZSByZWxhdGlvbiBtdXN0IGJlIGV4Y2x1ZGVkCisgICAgICAgVHJ1ZSBpZiB0aGUgY29s dW1uIGxpc3Qgb3IgcmVsYXRpb24gbXVzdCBiZSBleGNsdWRlZCBmcm9tIHB1YmxpY2F0aW9uLgor ICAgICAgIElmIGEgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkIGluIDxsaXRlcmFsPnByYXR0cnM8 L2xpdGVyYWw+LCB0aGVuCisgICAgICAgZXhjbHVkZSBvbmx5IHRob3NlIGNvbHVtbnMuIElmIDxs aXRlcmFsPnByYXR0cnM8L2xpdGVyYWw+IGlzIG51bGwsCisgICAgICAgdGhlbiBleGNsdWRlIHRo ZSBlbnRpcmUgcmVsYXRpb24uCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDBkMTA2ZWI5NWE3Li5iZjBj NGE1ZTExZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0xMzcyLDEw ICsxMzcyLDEwIEBAIFB1YmxpY2F0aW9uczoKICAgPHRpdGxlPkNvbHVtbiBMaXN0czwvdGl0bGU+ CiAKICAgPHBhcmE+Ci0gICBFYWNoIHB1YmxpY2F0aW9uIGNhbiBvcHRpb25hbGx5IHNwZWNpZnkg d2hpY2ggY29sdW1ucyBvZiBlYWNoIHRhYmxlIGFyZQotICAgcmVwbGljYXRlZCB0byBzdWJzY3Jp YmVycy4gVGhlIHRhYmxlIG9uIHRoZSBzdWJzY3JpYmVyIHNpZGUgbXVzdCBoYXZlIGF0Ci0gICBs ZWFzdCBhbGwgdGhlIGNvbHVtbnMgdGhhdCBhcmUgcHVibGlzaGVkLiBJZiBubyBjb2x1bW4gbGlz dCBpcyBzcGVjaWZpZWQsCi0gICB0aGVuIGFsbCBjb2x1bW5zIG9uIHRoZSBwdWJsaXNoZXIgYXJl IHJlcGxpY2F0ZWQuCisgICBFYWNoIHB1YmxpY2F0aW9uIGNhbiBvcHRpb25hbGx5IHNwZWNpZnkg d2hpY2ggY29sdW1ucyBvZiBlYWNoIHRhYmxlIHNob3VsZCBiZQorICAgcmVwbGljYXRlZCBvciBl eGNsdWRlZCBmcm9tIHJlcGxpY2F0aW9uLiBUaGUgdGFibGUgb24gdGhlIHN1YnNjcmliZXIgc2lk ZQorICAgbXVzdCBoYXZlIGF0IGxlYXN0IGFsbCB0aGUgY29sdW1ucyB0aGF0IGFyZSBwdWJsaXNo ZWQuIElmIG5vIGNvbHVtbiBsaXN0IGlzCisgICBzcGVjaWZpZWQsIHRoZW4gYWxsIGNvbHVtbnMg b24gdGhlIHB1Ymxpc2hlciBhcmUgcmVwbGljYXRlZC4KICAgIFNlZSA8eHJlZiBsaW5rZW5kPSJz cWwtY3JlYXRlcHVibGljYXRpb24iLz4gZm9yIGRldGFpbHMgb24gdGhlIHN5bnRheC4KICAgPC9w YXJhPgogCkBAIC0xMzg5LDggKzEzODksMTEgQEAgUHVibGljYXRpb25zOgogCiAgIDxwYXJhPgog ICAgSWYgbm8gY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkLCBhbnkgY29sdW1ucyBhZGRlZCB0byB0 aGUgdGFibGUgbGF0ZXIgYXJlCi0gICBhdXRvbWF0aWNhbGx5IHJlcGxpY2F0ZWQuIFRoaXMgbWVh bnMgdGhhdCBoYXZpbmcgYSBjb2x1bW4gbGlzdCB3aGljaCBuYW1lcwotICAgYWxsIGNvbHVtbnMg aXMgbm90IHRoZSBzYW1lIGFzIGhhdmluZyBubyBjb2x1bW4gbGlzdCBhdCBhbGwuCisgICBhdXRv bWF0aWNhbGx5IHJlcGxpY2F0ZWQuIEhvd2V2ZXIsIGEgbm9ybWFsIGNvbHVtbiBsaXN0ICh3aXRo b3V0CisgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+KSBvbmx5IHJlcGxpY2F0ZXMgdGhlIHNw ZWNpZmllZCBjb2x1bW5zIGFuZCBubyBtb3JlLgorICAgVGhlcmVmb3JlLCBoYXZpbmcgYSBjb2x1 bW4gbGlzdCB0aGF0IG5hbWVzIGFsbCBjb2x1bW5zIGlzIG5vdCB0aGUgc2FtZSBhcworICAgaGF2 aW5nIG5vIGNvbHVtbiBsaXN0IGF0IGFsbCwgYXMgbW9yZSBjb2x1bW5zIG1heSBiZSBhZGRlZCB0 byB0aGUgdGFibGUKKyAgIGxhdGVyLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0xNDAyLDYg KzE0MDUsMTQgQEAgUHVibGljYXRpb25zOgogICAgR2VuZXJhdGVkIGNvbHVtbnMgY2FuIGFsc28g YmUgc3BlY2lmaWVkIGluIGEgY29sdW1uIGxpc3QuIFRoaXMgYWxsb3dzCiAgICBnZW5lcmF0ZWQg Y29sdW1ucyB0byBiZSBwdWJsaXNoZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHB1YmxpY2F0aW9uIHBh cmFtZXRlcgogICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy13 aXRoLXB1Ymxpc2gtZ2VuZXJhdGVkLWNvbHVtbnMiPgorICAgPGxpdGVyYWw+cHVibGlzaF9nZW5l cmF0ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xpbms+LiBTcGVjaWZ5aW5nIGdlbmVyYXRlZAorICAg Y29sdW1ucyB1c2luZyB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgZXhjbHVk ZXMgdGhvc2UgY29sdW1ucworICAgZnJvbSBiZWluZyBwdWJsaXNoZWQsIHJlZ2FyZGxlc3Mgb2Yg dGhlCisgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgt cHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRl ZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4gc2V0dGluZy4gSG93ZXZlciwgZm9yCisgICBnZW5l cmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBub3QgbGlzdGVkIGluIHRoZSA8bGl0ZXJhbD5FWENFUFQ8 L2xpdGVyYWw+CisgICBjbGF1c2UsIHdoZXRoZXIgdGhleSBhcmUgcHVibGlzaGVkIG9yIG5vdCBz dGlsbCBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZgorICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0 ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRoLXB1Ymxpc2gtZ2VuZXJhdGVkLWNvbHVtbnMiPgogICAg PGxpdGVyYWw+cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xpbms+LiBTZWUK ICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tZ2VuY29scyIvPiBmb3IgZGV0 YWlscy4KICAgPC9wYXJhPgpAQCAtMTQyMywxMSArMTQzNCwxNCBAQCBQdWJsaWNhdGlvbnM6CiAK ICAgPHBhcmE+CiAgICBJZiBhIHB1YmxpY2F0aW9uIHB1Ymxpc2hlcyA8Y29tbWFuZD5VUERBVEU8 L2NvbW1hbmQ+IG9yCi0gICA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+IG9wZXJhdGlvbnMsIGFu eSBjb2x1bW4gbGlzdCBtdXN0IGluY2x1ZGUgdGhlCi0gICB0YWJsZSdzIHJlcGxpY2EgaWRlbnRp dHkgY29sdW1ucyAoc2VlCi0gICA8eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ0YWJsZS1yZXBsaWNh LWlkZW50aXR5Ii8+KS4KKyAgIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4gb3BlcmF0aW9ucywg YW55IGNvbHVtbiBsaXN0IG11c3QgaW5jbHVkZSB0YWJsZSdzCisgICByZXBsaWNhIGlkZW50aXR5 IGNvbHVtbnMgYW5kIGFueSBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aAorICAgPGxpdGVyYWw+ RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgbXVzdCBub3QgaW5jbHVkZSB0aGUgdGFibGUncyByZXBs aWNhCisgICBpZGVudGl0eSBjb2x1bW5zIChzZWUgPHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydGFi bGUtcmVwbGljYS1pZGVudGl0eSIvPikuCiAgICBJZiBhIHB1YmxpY2F0aW9uIHB1Ymxpc2hlcyBv bmx5IDxjb21tYW5kPklOU0VSVDwvY29tbWFuZD4gb3BlcmF0aW9ucywgdGhlbgotICAgdGhlIGNv bHVtbiBsaXN0IG1heSBvbWl0IHJlcGxpY2EgaWRlbnRpdHkgY29sdW1ucy4KKyAgIHRoZSBjb2x1 bW4gbGlzdCBtYXkgb21pdCByZXBsaWNhIGlkZW50aXR5IGNvbHVtbnMgYW5kIHRoZSBjb2x1bW4g bGlzdAorICAgc3BlY2lmaWVkIHdpdGggPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2Ug bWF5IGluY2x1ZGUgcmVwbGljYSBpZGVudGl0eQorICAgY29sdW1ucy4KICAgPC9wYXJhPgogCiAg IDxwYXJhPgpAQCAtMTQ3MiwxOCArMTQ4NiwyMSBAQCBQdWJsaWNhdGlvbnM6CiAgICA8dGl0bGU+ RXhhbXBsZXM8L3RpdGxlPgogCiAgICA8cGFyYT4KLSAgICBDcmVhdGUgYSB0YWJsZSA8bGl0ZXJh bD50MTwvbGl0ZXJhbD4gdG8gYmUgdXNlZCBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUuCisgICAg Q3JlYXRlIHRhYmxlcyA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPnQyPC9saXRl cmFsPiB0byBiZSB1c2VkIGluCisgICAgdGhlIGZvbGxvd2luZyBleGFtcGxlLgogPHByb2dyYW1s aXN0aW5nPgogLyogcHViICMgKi8gQ1JFQVRFIFRBQkxFIHQxKGlkIGludCwgYSB0ZXh0LCBiIHRl eHQsIGMgdGV4dCwgZCB0ZXh0LCBlIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CisvKiBwdWIgIyAq LyBDUkVBVEUgVEFCTEUgdDIoaWQgaW50LCBhIHRleHQsIGIgdGV4dCwgYyB0ZXh0LCBkIHRleHQs IGUgdGV4dCwgUFJJTUFSWSBLRVkoaWQpKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAg ICA8cGFyYT4KICAgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiA8bGl0ZXJhbD5wMTwvbGl0ZXJhbD4u IEEgY29sdW1uIGxpc3QgaXMgZGVmaW5lZCBmb3IKLSAgICB0YWJsZSA8bGl0ZXJhbD50MTwvbGl0 ZXJhbD4gdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGF0IHdpbGwgYmUKLSAgICBy ZXBsaWNhdGVkLiBOb3RpY2UgdGhhdCB0aGUgb3JkZXIgb2YgY29sdW1uIG5hbWVzIGluIHRoZSBj b2x1bW4gbGlzdCBkb2VzCi0gICAgbm90IG1hdHRlci4KKyAgICB0YWJsZSA8bGl0ZXJhbD50MTwv bGl0ZXJhbD4sIGFuZCBhbm90aGVyIGNvbHVtbiBsaXN0IGlzIGRlZmluZWQgZm9yIHRhYmxlCisg ICAgPGxpdGVyYWw+dDI8L2xpdGVyYWw+IHVzaW5nIHRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVy YWw+IGNsYXVzZSB0byByZWR1Y2UKKyAgICB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhhdCB3aWxs IGJlIHJlcGxpY2F0ZWQuIE5vdGUgdGhhdCB0aGUgb3JkZXIgb2YgY29sdW1uCisgICAgbmFtZXMg aW4gdGhlIGNvbHVtbiBsaXN0cyBkb2VzIG5vdCBtYXR0ZXIuCiA8cHJvZ3JhbWxpc3Rpbmc+Ci0v KiBwdWIgIyAqLyBDUkVBVEUgUFVCTElDQVRJT04gcDEgRk9SIFRBQkxFIHQxIChpZCwgYiwgYSwg ZCk7CisvKiBwdWIgIyAqLyBDUkVBVEUgUFVCTElDQVRJT04gcDEgRk9SIFRBQkxFIHQxIChpZCwg YiwgYSwgZCksIHQyIEVYQ0VQVCAoZCwgYSk7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAog ICAgIDxwYXJhPgpAQCAtMTQ5Nyw2ICsxNTE0LDcgQEAgUHVibGljYXRpb25zOgogIHBvc3RncmVz IHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IG5vbmUgICAgICAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudDEiIChpZCwgYSwg YiwgZCkKKyAgICAicHVibGljLnQyIiBFWENFUFQgKGEsIGQpCiA8L3Byb2dyYW1saXN0aW5nPjwv cGFyYT4KIAogICAgIDxwYXJhPgpAQCAtMTUxNywyMyArMTUzNSw0MSBAQCBJbmRleGVzOgogICAg ICJ0MV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQogUHVibGljYXRpb25zOgogICAgICJw MSIgKGlkLCBhLCBiLCBkKQorCisvKiBwdWIgIyAqLyBcZCB0MgorICAgICAgICAgICAgICAgICBU YWJsZSAicHVibGljLnQyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8IERlZmF1bHQKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8CisgYSAg ICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwKKyBiICAgICAgfCB0ZXh0ICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGMgICAgICB8IHRleHQgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8CisgZCAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwK KyBlICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorSW5kZXhlczoKKyAg ICAidDJfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkKK1B1YmxpY2F0aW9uczoKKyAgICAi cDEiIEVYQ0VQVCAoYSwgZCkKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgICAgPHBhcmE+ Ci0gICAgIE9uIHRoZSBzdWJzY3JpYmVyIG5vZGUsIGNyZWF0ZSBhIHRhYmxlIDxsaXRlcmFsPnQx PC9saXRlcmFsPiB3aGljaCBub3cKLSAgICAgb25seSBuZWVkcyBhIHN1YnNldCBvZiB0aGUgY29s dW1ucyB0aGF0IHdlcmUgb24gdGhlIHB1Ymxpc2hlciB0YWJsZQotICAgICA8bGl0ZXJhbD50MTwv bGl0ZXJhbD4sIGFuZCBhbHNvIGNyZWF0ZSB0aGUgc3Vic2NyaXB0aW9uCisgICAgIE9uIHRoZSBz dWJzY3JpYmVyIG5vZGUsIGNyZWF0ZSB0YWJsZXMgPGxpdGVyYWw+dDE8L2xpdGVyYWw+IGFuZAor ICAgICA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4gd2hpY2ggbm93IG9ubHkgbmVlZHMgYSBzdWJzZXQg b2YgdGhlIGNvbHVtbnMgdGhhdAorICAgICB3ZXJlIG9uIHRoZSBwdWJsaXNoZXIgdGFibGVzIDxs aXRlcmFsPnQxPC9saXRlcmFsPiBhbmQKKyAgICAgPGxpdGVyYWw+dDI8L2xpdGVyYWw+LCBhbmQg YWxzbyBjcmVhdGUgdGhlIHN1YnNjcmlwdGlvbgogICAgICA8bGl0ZXJhbD5zMTwvbGl0ZXJhbD4g dGhhdCBzdWJzY3JpYmVzIHRvIHRoZSBwdWJsaWNhdGlvbgogICAgICA8bGl0ZXJhbD5wMTwvbGl0 ZXJhbD4uCiA8cHJvZ3JhbWxpc3Rpbmc+CiAvKiBzdWIgIyAqLyBDUkVBVEUgVEFCTEUgdDEoaWQg aW50LCBiIHRleHQsIGEgdGV4dCwgZCB0ZXh0LCBQUklNQVJZIEtFWShpZCkpOworLyogc3ViICMg Ki8gQ1JFQVRFIFRBQkxFIHQyKGlkIGludCwgYiB0ZXh0LCBjIHRleHQsIGUgdGV4dCwgUFJJTUFS WSBLRVkoaWQpKTsKIC8qIHN1YiAjICovIENSRUFURSBTVUJTQ1JJUFRJT04gczEKIC8qIHN1YiAt ICovIENPTk5FQ1RJT04gJ2hvc3Q9bG9jYWxob3N0IGRibmFtZT10ZXN0X3B1YiBhcHBsaWNhdGlv bl9uYW1lPXMxJwogLyogc3ViIC0gKi8gUFVCTElDQVRJT04gcDE7CiA8L3Byb2dyYW1saXN0aW5n PjwvcGFyYT4KIAogICAgIDxwYXJhPgotICAgICBPbiB0aGUgcHVibGlzaGVyIG5vZGUsIGluc2Vy dCBzb21lIHJvd3MgdG8gdGFibGUgPGxpdGVyYWw+dDE8L2xpdGVyYWw+LgorICAgICBPbiB0aGUg cHVibGlzaGVyIG5vZGUsIGluc2VydCBzb21lIHJvd3MgdG8gdGFibGVzIDxsaXRlcmFsPnQxPC9s aXRlcmFsPgorICAgICBhbmQgPGxpdGVyYWw+dDI8L2xpdGVyYWw+CiA8cHJvZ3JhbWxpc3Rpbmc+ CiAvKiBwdWIgIyAqLyBJTlNFUlQgSU5UTyB0MSBWQUxVRVMoMSwgJ2EtMScsICdiLTEnLCAnYy0x JywgJ2QtMScsICdlLTEnKTsKIC8qIHB1YiAjICovIElOU0VSVCBJTlRPIHQxIFZBTFVFUygyLCAn YS0yJywgJ2ItMicsICdjLTInLCAnZC0yJywgJ2UtMicpOwpAQCAtMTU0NSwxMSArMTU4MSwyMSBA QCBQdWJsaWNhdGlvbnM6CiAgIDIgfCBhLTIgfCBiLTIgfCBjLTIgfCBkLTIgfCBlLTIKICAgMyB8 IGEtMyB8IGItMyB8IGMtMyB8IGQtMyB8IGUtMwogKDMgcm93cykKKy8qIHB1YiAjICovIElOU0VS VCBJTlRPIHQyIFZBTFVFUygxLCAnYS0xJywgJ2ItMScsICdjLTEnLCAnZC0xJywgJ2UtMScpOwor LyogcHViICMgKi8gSU5TRVJUIElOVE8gdDIgVkFMVUVTKDIsICdhLTInLCAnYi0yJywgJ2MtMics ICdkLTInLCAnZS0yJyk7CisvKiBwdWIgIyAqLyBJTlNFUlQgSU5UTyB0MiBWQUxVRVMoMywgJ2Et MycsICdiLTMnLCAnYy0zJywgJ2QtMycsICdlLTMnKTsKKy8qIHB1YiAjICovIFNFTEVDVCAqIEZS T00gdDIgT1JERVIgQlkgaWQ7CisgaWQgfCAgYSAgfCAgYiAgfCAgYyAgfCAgZCAgfCAgZQorLS0t LSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLQorICAxIHwgYS0xIHwgYi0xIHwgYy0xIHwg ZC0xIHwgZS0xCisgIDIgfCBhLTIgfCBiLTIgfCBjLTIgfCBkLTIgfCBlLTIKKyAgMyB8IGEtMyB8 IGItMyB8IGMtMyB8IGQtMyB8IGUtMworKDMgcm93cykKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJh PgogCiAgICAgPHBhcmE+Ci0gICAgIE9ubHkgZGF0YSBmcm9tIHRoZSBjb2x1bW4gbGlzdCBvZiBw dWJsaWNhdGlvbiA8bGl0ZXJhbD5wMTwvbGl0ZXJhbD4gaXMKLSAgICAgcmVwbGljYXRlZC4KKyAg ICAgT25seSBkYXRhIHNwZWNpZmllZCBieSB0aGUgY29sdW1uIGxpc3RzIG9mIHB1YmxpY2F0aW9u CisgICAgIDxsaXRlcmFsPnAxPC9saXRlcmFsPiBpcyByZXBsaWNhdGVkLgogPHByb2dyYW1saXN0 aW5nPgogLyogc3ViICMgKi8gU0VMRUNUICogRlJPTSB0MSBPUkRFUiBCWSBpZDsKICBpZCB8ICBi ICB8ICBhICB8ICBkCkBAIC0xNTU4LDYgKzE2MDQsMTMgQEAgUHVibGljYXRpb25zOgogICAyIHwg Yi0yIHwgYS0yIHwgZC0yCiAgIDMgfCBiLTMgfCBhLTMgfCBkLTMKICgzIHJvd3MpCisvKiBzdWIg IyAqLyBTRUxFQ1QgKiBGUk9NIHQyIE9SREVSIEJZIGlkOworIGlkIHwgIGIgIHwgIGMgIHwgIGUK Ky0tLS0rLS0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8IGItMSB8IGMtMSB8IGUtMQorICAyIHwgYi0y IHwgYy0yIHwgZS0yCisgIDMgfCBiLTMgfCBjLTMgfCBlLTMKKygzIHJvd3MpCiA8L3Byb2dyYW1s aXN0aW5nPjwvcGFyYT4KIAogICA8L3NlY3QyPgpAQCAtMTY1NCw2ICsxNzA3LDE3IEBAIFB1Ymxp Y2F0aW9uczoKICAgIDwvaXRlbWl6ZWRsaXN0PgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBH ZW5lcmF0ZWQgY29sdW1ucyBzcGVjaWZpZWQgaW4gdGhlIGNvbHVtbiBsaXN0IHdpdGggdGhlCisg ICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgbm90IHB1Ymxpc2hlZCwgcmVn YXJkbGVzcyBvZiB0aGUgdmFsdWUKKyAgIG9mIHRoZSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl cHVibGljYXRpb24tcGFyYW1zLXdpdGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8 bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4gcGFyYW1l dGVyLiBIb3dldmVyLAorICAgZ2VuZXJhdGVkIGNvbHVtbnMgdGhhdCBhcmUgbm90IHBhcnQgb2Yg dGhlIGNvbHVtbiBsaXN0IHdpdGggdGhlCisgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNs YXVzZSBhcmUgcHVibGlzaGVkIGFjY29yZGluZyB0byB0aGUgdmFsdWUgb2YgdGhlCisgICA8bGlu ayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgtcHVibGlzaC1nZW5l cmF0ZWQtY29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9s aXRlcmFsPjwvbGluaz4gcGFyYW1ldGVyLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBUaGUg Zm9sbG93aW5nIHRhYmxlIHN1bW1hcml6ZXMgYmVoYXZpb3Igd2hlbiB0aGVyZSBhcmUgZ2VuZXJh dGVkIGNvbHVtbnMKICAgIGludm9sdmVkIGluIHRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uLiBSZXN1 bHRzIGFyZSBzaG93biBmb3Igd2hlbgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sCmluZGV4IDM4YjQ2NTczNzhhLi5mNzllZjc4OWQ5MyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMzIsNyArMzIsNyBAQCBBTFRFUiBQVUJMSUNBVElPTiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAK IDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9u X29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAotICAgIFRBQkxFIFsg T05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNl YWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFt ZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KKyAgICBU QUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwv cmVwbGFjZWFibGU+IFsgKiBdIFsgWyBFWENFUFQgXSAoIGNvbHVtbl9uYW1lIFssIC4uLiBdICkg XSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3Jl cGxhY2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5U X1NDSEVNQSB9IFssIC4uLiBdCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KQEAg LTI2MCw2ICsyNjAsMTQgQEAgQUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlv biBBREQgQUxMIFRBQkxFUyBFWENFUFQgdXNlcnMsIGRlcGFydG1lbnQKICAgIDxzdHJ1Y3RuYW1l PnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgog QUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMs IGRlcGFydG1lbnRzLCBUQUJMRVMgSU4gU0NIRU1BIHByb2R1Y3Rpb247Cis8L3Byb2dyYW1saXN0 aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAgIEFsdGVyIHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1l Pm15cHVibGljYXRpb248L3N0cnVjdG5hbWU+IHRvIGFkZCB0YWJsZQorICAgPHN0cnVjdG5hbWU+ dXNlcnM8L3N0cnVjdG5hbWU+IGV4Y2VwdCBjb2x1bW4KKyAgIDxzdHJ1Y3RuYW1lPnNlY3VyaXR5 X3Bpbjwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBw cm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1c2VycyBFWENFUFQgKHNlY3VyaXR5X3Bp bik7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IGJkZGZmOWNhMGNjLi4wNjkxYjEwMjg0MCAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yOCw3ICsyOCw3 IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+CiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFz ZT4KIAotICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiAp IF0gWywgLi4uIF0KKyAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBFWENFUFQgXSAoIGNvbHVt bl9uYW1lIFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBUQUJMRVMgSU4g U0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBs YWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9IFssIC4uLiBdCiAKIDxwaHJhc2U+d2hlcmUgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxl PiBpczo8L3BocmFzZT4KQEAgLTkyLDE3ICs5MiwyNCBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgICA8L3Bh cmE+CiAKICAgICAgPHBhcmE+Ci0gICAgICBXaGVuIGEgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVk LCBvbmx5IHRoZSBuYW1lZCBjb2x1bW5zIGFyZSByZXBsaWNhdGVkLgotICAgICAgVGhlIGNvbHVt biBsaXN0IGNhbiBjb250YWluIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBhcyB3ZWxsLiBJZiB0 aGUKLSAgICAgIGNvbHVtbiBsaXN0IGlzIG9taXR0ZWQsIHRoZSBwdWJsaWNhdGlvbiB3aWxsIHJl cGxpY2F0ZSBhbGwgbm9uLWdlbmVyYXRlZAotICAgICAgY29sdW1ucyAoaW5jbHVkaW5nIGFueSBh ZGRlZCBpbiB0aGUgZnV0dXJlKSBieSBkZWZhdWx0LiBTdG9yZWQgZ2VuZXJhdGVkCi0gICAgICBj b2x1bW5zIGNhbiBhbHNvIGJlIHJlcGxpY2F0ZWQgaWYgPGxpdGVyYWw+cHVibGlzaF9nZW5lcmF0 ZWRfY29sdW1uczwvbGl0ZXJhbD4KLSAgICAgIGlzIHNldCB0byA8bGl0ZXJhbD5zdG9yZWQ8L2xp dGVyYWw+LiBTcGVjaWZ5aW5nIGEgY29sdW1uIGxpc3QgaGFzIG5vCi0gICAgICBlZmZlY3Qgb24g PGxpdGVyYWw+VFJVTkNBVEU8L2xpdGVyYWw+IGNvbW1hbmRzLiBTZWUKKyAgICAgIFdoZW4gYSBj b2x1bW4gbGlzdCB3aXRob3V0IDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVk LCBvbmx5CisgICAgICB0aGUgbmFtZWQgY29sdW1ucyBhcmUgcmVwbGljYXRlZC4gVGhlIGNvbHVt biBsaXN0IGNhbiBjb250YWluIHN0b3JlZAorICAgICAgZ2VuZXJhdGVkIGNvbHVtbnMgYXMgd2Vs bC4gSWYgdGhlIGNvbHVtbiBsaXN0IGlzIG9taXR0ZWQsIHRoZSBwdWJsaWNhdGlvbgorICAgICAg d2lsbCByZXBsaWNhdGUgYWxsIG5vbi1nZW5lcmF0ZWQgY29sdW1ucyAoaW5jbHVkaW5nIGFueSBh ZGRlZCBpbiB0aGUKKyAgICAgIGZ1dHVyZSkgYnkgZGVmYXVsdC4gU3RvcmVkIGdlbmVyYXRlZCBj b2x1bW5zIGNhbiBhbHNvIGJlIHJlcGxpY2F0ZWQgaWYKKyAgICAgIDxsaXRlcmFsPnB1Ymxpc2hf Z2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+IGlzIHNldCB0bworICAgICAgPGxpdGVyYWw+c3Rv cmVkPC9saXRlcmFsPi4gU3BlY2lmeWluZyBhIGNvbHVtbiBsaXN0IGhhcyBubyBlZmZlY3Qgb24K KyAgICAgIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFsPiBjb21tYW5kcy4gU2VlCiAgICAgICA8 eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbC1saXN0cyIvPiBmb3IgZGV0YWls cyBhYm91dCBjb2x1bW4KICAgICAgIGxpc3RzLgogICAgICA8L3BhcmE+CiAKKyAgICAgPHBhcmE+ CisgICAgICBXaGVuIGEgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkIHdpdGggPGxpdGVyYWw+RVhD RVBUPC9saXRlcmFsPiwgdGhlIG5hbWVkCisgICAgICBjb2x1bW5zIGFyZSBub3QgcmVwbGljYXRl ZC4gU3BlY2lmeWluZyBhIGNvbHVtbiBsaXN0IGhhcyBubyBlZmZlY3Qgb24KKyAgICAgIDxsaXRl cmFsPlRSVU5DQVRFPC9saXRlcmFsPiBjb21tYW5kcy4KKyAgICAgPC9wYXJhPgorCiAgICAgIDxw YXJhPgogICAgICAgT25seSBwZXJzaXN0ZW50IGJhc2UgdGFibGVzIGFuZCBwYXJ0aXRpb25lZCB0 YWJsZXMgY2FuIGJlIHBhcnQgb2YgYQogICAgICAgcHVibGljYXRpb24uICBUZW1wb3JhcnkgdGFi bGVzLCB1bmxvZ2dlZCB0YWJsZXMsIGZvcmVpZ24gdGFibGVzLApAQCAtMzQ3LDEwICszNTQsMTIg QEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgQW55IGNvbHVtbiBsaXN0 IG11c3QgaW5jbHVkZSB0aGUgPGxpdGVyYWw+UkVQTElDQSBJREVOVElUWTwvbGl0ZXJhbD4gY29s dW1ucwotICAgaW4gb3JkZXIgZm9yIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4gb3IgPGNvbW1h bmQ+REVMRVRFPC9jb21tYW5kPgotICAgb3BlcmF0aW9ucyB0byBiZSBwdWJsaXNoZWQuIFRoZXJl IGFyZSBubyBjb2x1bW4gbGlzdCByZXN0cmljdGlvbnMgaWYgdGhlCi0gICBwdWJsaWNhdGlvbiBw dWJsaXNoZXMgb25seSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+IG9wZXJhdGlvbnMuCisgICBJ biBvcmRlciBmb3IgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiBvciA8Y29tbWFuZD5ERUxFVEU8 L2NvbW1hbmQ+CisgICBvcGVyYXRpb25zIHRvIHdvcmssIGFsbCB0aGUgPGxpdGVyYWw+UkVQTElD QSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucyBtdXN0CisgICBiZSBwdWJsaXNoZWQuIFNvLCBh bnkgY29sdW1uIGxpc3QgbXVzdCBuYW1lIGFsbAorICAgPGxpdGVyYWw+UkVQTElDQSBJREVOVElU WTwvbGl0ZXJhbD4gY29sdW1ucywgYW5kIGFueQorICAgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFs PiBjb2x1bW4gbGlzdCBtdXN0IG5vdCBuYW1lIGFueQorICAgPGxpdGVyYWw+UkVQTElDQSBJREVO VElUWTwvbGl0ZXJhbD4gY29sdW1ucy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMzczLDYg KzM4MiwxNiBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgdG8gYmUgcHVibGlzaGVkLgogICA8L3BhcmE+CiAK KyAgPHBhcmE+CisgICBUaGUgZ2VuZXJhdGVkIGNvbHVtbnMgdGhhdCBhcmUgcGFydCBvZiB0aGUg Y29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggdGhlCisgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVy YWw+IGNsYXVzZSBhcmUgbm90IHB1Ymxpc2hlZCwgcmVnYXJkbGVzcyBvZiB0aGUKKyAgIDxsaXRl cmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+IG9wdGlvbi4gSG93ZXZlciwg Z2VuZXJhdGVkCisgICBjb2x1bW5zIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBjb2x1bW4gbGlz dCBzcGVjaWZpZWQgd2l0aCB0aGUKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNl IGFyZSBwdWJsaXNoZWQgYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiB0aGUKKyAgIDxsaXRlcmFs PnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+IG9wdGlvbi4gU2VlCisgICA8eHJl ZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWdlbmNvbHMiLz4gZm9yIGRldGFpbHMuCisg IDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSByb3cgZmlsdGVyIG9uIGEgdGFibGUgYmVjb21l cyByZWR1bmRhbnQgaWYKICAgIDxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFs PiBpcyBzcGVjaWZpZWQgYW5kIHRoZSB0YWJsZQpAQCAtNDk0LDYgKzUxMywxNSBAQCBDUkVBVEUg UFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgdXNlcnMsIGRl cGFydG1lbnRzOwogPHByb2dyYW1saXN0aW5nPgogQ1JFQVRFIFBVQkxJQ0FUSU9OIHVzZXJzX2Zp bHRlcmVkIEZPUiBUQUJMRSB1c2VycyAodXNlcl9pZCwgZmlyc3RuYW1lKTsKIDwvcHJvZ3JhbWxp c3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBw dWJsaXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlCisgICA8c3RydWN0bmFtZT51c2Vyczwvc3Ry dWN0bmFtZT4gZXhjZXB0IGNoYW5nZXMgZm9yIGNvbHVtbgorICAgPHN0cnVjdG5hbWU+c2VjdXJp dHlfcGluPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQVUJMSUNBVElP TiB1c2Vyc19zYWZlIEZPUiBUQUJMRSB1c2VycyBFWENFUFQgKHNlY3VyaXR5X3Bpbik7Cis8L3By b2dyYW1saXN0aW5nPgorICA8L3BhcmE+CiAgPC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCBhZjFiOGM5ZWQ2Ny4uZDIxYjNmZjQ4 ZTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTI2MywxNCArMjYzLDE5 IEBAIGlzX3NjaGVtYV9wdWJsaWNhdGlvbihPaWQgcHViaWQpCiAgKiBJZiBhIGNvbHVtbiBsaXN0 IGlzIGZvdW5kLCB0aGUgY29ycmVzcG9uZGluZyBiaXRtYXAgaXMgcmV0dXJuZWQgdGhyb3VnaCB0 aGUKICAqIGNvbHMgcGFyYW1ldGVyLCBpZiBwcm92aWRlZC4gVGhlIGJpdG1hcCBpcyBjb25zdHJ1 Y3RlZCB3aXRoaW4gdGhlIGdpdmVuCiAgKiBtZW1vcnkgY29udGV4dCAobWN4dCkuCisgKgorICog SWYgYSBjb2x1bW4gbGlzdCBpcyBmb3VuZCBzcGVjaWZpZWQgd2l0aCBFWENFUFQgY2xhdXNlLCBl eGNlcHRfY29sdW1ucyBpcyBzZXQKKyAqIHRvIHRydWUuCiAgKi8KIGJvb2wKIGNoZWNrX2FuZF9m ZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVsaWQsIE1lbW9yeUNvbnRl eHQgbWN4dCwKLQkJCQkJCQlCaXRtYXBzZXQgKipjb2xzKQorCQkJCQkJCUJpdG1hcHNldCAqKmNv bHMsIGJvb2wgKmV4Y2VwdF9jb2x1bW5zKQogewogCUhlYXBUdXBsZQljZnR1cGxlOwogCWJvb2wJ CWZvdW5kID0gZmFsc2U7CiAKKwkqZXhjZXB0X2NvbHVtbnMgPSBmYWxzZTsKKwogCWlmIChwdWIt PmFsbHRhYmxlcykKIAkJcmV0dXJuIGZhbHNlOwogCkBAIC0yOTYsNiArMzAxLDE2IEBAIGNoZWNr X2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVsaWQsIE1lbW9y eUNvbnRleHQgbWN4dCwKIAkJCWZvdW5kID0gdHJ1ZTsKIAkJfQogCisJCS8qIExvb2t1cCB0aGUg ZXhjZXB0IGF0dHJpYnV0ZSAqLworCQljZmRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FU SU9OUkVMTUFQLCBjZnR1cGxlLAorCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3By ZXhjZXB0LCAmaXNudWxsKTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJQXNzZXJ0KCFwdWIt PmFsbHRhYmxlcyk7CisJCQkqZXhjZXB0X2NvbHVtbnMgPSBEYXR1bUdldEJvb2woY2ZkYXR1bSk7 CisJCX0KKwogCQlSZWxlYXNlU3lzQ2FjaGUoY2Z0dXBsZSk7CiAJfQogCkBAIC02NTcsMTAgKzY3 MiwxMiBAQCBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQoQml0bWFwc2V0ICpjb2x1bW5zLCBEYXR1 bSBwdWJjb2xzLCBNZW1vcnlDb250ZXh0IG1jeHQpCiAgKiBSZXR1cm5zIGEgYml0bWFwIHJlcHJl c2VudGluZyB0aGUgY29sdW1ucyBvZiB0aGUgc3BlY2lmaWVkIHRhYmxlLgogICoKICAqIEdlbmVy YXRlZCBjb2x1bW5zIGFyZSBpbmNsdWRlZCBpZiBpbmNsdWRlX2dlbmNvbHNfdHlwZSBpcwotICog UFVCTElTSF9HRU5DT0xTX1NUT1JFRC4KKyAqIFBVQkxJU0hfR0VOQ09MU19TVE9SRUQuIENvbHVt bnMgdGhhdCBhcmUgaW4gdGhlIGV4Y2VwdF9jb2xzIGFyZSBleGNsdWRlZCBmcm9tCisgKiB0aGUg Y29sdW1uIGxpc3QuCiAgKi8KIEJpdG1hcHNldCAqCi1wdWJfZm9ybV9jb2xzX21hcChSZWxhdGlv biByZWxhdGlvbiwgUHVibGlzaEdlbmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29sc190eXBlKQorcHVi X2Zvcm1fY29sc19tYXAoUmVsYXRpb24gcmVsYXRpb24sIFB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNs dWRlX2dlbmNvbHNfdHlwZSwKKwkJCQkgIEJpdG1hcHNldCAqZXhjZXB0X2NvbHMpCiB7CiAJQml0 bWFwc2V0ICAqcmVzdWx0ID0gTlVMTDsKIAlUdXBsZURlc2MJZGVzYyA9IFJlbGF0aW9uR2V0RGVz Y3IocmVsYXRpb24pOwpAQCAtNjgzLDYgKzcwMCw5IEBAIHB1Yl9mb3JtX2NvbHNfbWFwKFJlbGF0 aW9uIHJlbGF0aW9uLCBQdWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xzX3R5cGUpCiAJ CQkJY29udGludWU7CiAJCX0KIAorCQlpZiAoZXhjZXB0X2NvbHMgJiYgYm1zX2lzX21lbWJlcihh dHQtPmF0dG51bSwgZXhjZXB0X2NvbHMpKQorCQkJY29udGludWU7CisKIAkJcmVzdWx0ID0gYm1z X2FkZF9tZW1iZXIocmVzdWx0LCBhdHQtPmF0dG51bSk7CiAJfQogCkBAIC03ODcsOCArODA3LDEw IEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCwgYm9vbCBleGNlcHRfZmxhZykK IAl7CiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlzdC0+bWVtYmVyc1tpXS0+dHVwbGU7CiAJ CU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkp LT5wcnB1YmlkOworCQlib29sCQlpc19leGNlcHRfdGFibGUgPSAoKEZvcm1fcGdfcHVibGljYXRp b25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0ICYmCisJCQloZWFwX2F0dGlzbnVsbCh0 dXAsIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0cnMsIE5VTEwpOwogCi0JCWlmIChleGNl cHRfZmxhZyA9PSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnBy ZXhjZXB0KQorCQlpZiAoZXhjZXB0X2ZsYWcgPT0gaXNfZXhjZXB0X3RhYmxlKQogCQkJcmVzdWx0 ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJfQogCkBAIC04MjgsMTAgKzg1MCwxMiBA QCBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBw dWJfcGFydG9wdCwKIAl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXAgPSBzeXN0YWJsZV9nZXRu ZXh0KHNjYW4pKSkKIAl7CiAJCUZvcm1fcGdfcHVibGljYXRpb25fcmVsIHB1YnJlbDsKKwkJYm9v bAkJaGFzX2NvbGxpc3QgPSBmYWxzZTsKIAogCQlwdWJyZWwgPSAoRm9ybV9wZ19wdWJsaWNhdGlv bl9yZWwpIEdFVFNUUlVDVCh0dXApOworCQloYXNfY29sbGlzdCA9ICFoZWFwX2F0dGlzbnVsbCh0 dXAsIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0cnMsIE5VTEwpOwogCi0JCWlmIChleGNl cHRfZmxhZyA9PSBwdWJyZWwtPnByZXhjZXB0KQorCQlpZiAoZXhjZXB0X2ZsYWcgPT0gKHB1YnJl bC0+cHJleGNlcHQgJiYgIWhhc19jb2xsaXN0KSkKIAkJCXJlc3VsdCA9IEdldFB1YlBhcnRpdGlv bk9wdGlvblJlbGF0aW9ucyhyZXN1bHQsIHB1Yl9wYXJ0b3B0LAogCQkJCQkJCQkJCQkJCXB1YnJl bC0+cHJyZWxpZCk7CiAKQEAgLTEyODIsNiArMTMwNiw3IEBAIHBnX2dldF9wdWJsaWNhdGlvbl90 YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJT2lkCQkJc2NoZW1haWQgPSBnZXRfcmVsX25hbWVz cGFjZShyZWxpZCk7CiAJCURhdHVtCQl2YWx1ZXNbTlVNX1BVQkxJQ0FUSU9OX1RBQkxFU19FTEVN XSA9IHswfTsKIAkJYm9vbAkJbnVsbHNbTlVNX1BVQkxJQ0FUSU9OX1RBQkxFU19FTEVNXSA9IHsw fTsKKwkJQml0bWFwc2V0ICAqZXhjZXB0X2NvbHVtbnMgPSBOVUxMOwogCiAJCS8qCiAJCSAqIEZv cm0gdHVwbGUgd2l0aCBhcHByb3ByaWF0ZSBkYXRhLgpAQCAtMTMwNiwxMSArMTMzMSwyOSBAQCBw Z19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkJaWYgKEhlYXBU dXBsZUlzVmFsaWQocHVidHVwbGUpKQogCQl7Ci0JCQkvKiBMb29rdXAgdGhlIGNvbHVtbiBsaXN0 IGF0dHJpYnV0ZS4gKi8KIAkJCXZhbHVlc1syXSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElP TlJFTE1BUCwgcHVidHVwbGUsCiAJCQkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJh dHRycywKIAkJCQkJCQkJCQkmKG51bGxzWzJdKSk7CiAKKwkJCWlmICghbnVsbHNbMl0pCisJCQl7 CisJCQkJRGF0dW0JCWV4Y2VwdERhdHVtOworCQkJCWJvb2wJCWlzbnVsbDsKKworCQkJCS8qCisJ CQkJICogV2UgZmV0Y2ggcHVidHVwbGUgaWYgcHVibGljYXRpb24gaXMgbm90IEZPUiBBTEwgVEFC TEVTIGFuZAorCQkJCSAqIG5vdCBGT1IgVEFCTEVTIElOIFNDSEVNQS4gU28gaWYgcHJleGNlcHQg aXMgdHJ1ZSwgaXQKKwkJCQkgKiBpbmRpY2F0ZXMgdGhhdCBwcmF0dHJzIGNvbnRhaW5zIGNvbHVt bnMgdG8gYmUgZXhjbHVkZWQgZm9yCisJCQkJICogcmVwbGljYXRpb24uCisJCQkJICovCisJCQkJ ZXhjZXB0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHB1YnR1cGxl LAorCQkJCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByZXhjZXB0LAorCQkJCQkJ CQkJCQkgICZpc251bGwpOworCisJCQkJaWYgKCFpc251bGwgJiYgRGF0dW1HZXRCb29sKGV4Y2Vw dERhdHVtKSkKKwkJCQkJZXhjZXB0X2NvbHVtbnMgPSBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQo TlVMTCwgdmFsdWVzWzJdLCBOVUxMKTsKKwkJCX0KKwogCQkJLyogTnVsbCBpbmRpY2F0ZXMgbm8g ZmlsdGVyLiAqLwogCQkJdmFsdWVzWzNdID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVM TUFQLCBwdWJ0dXBsZSwKIAkJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcnF1YWws CkBAIC0xMzIyLDggKzEzNjUsMTIgQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5D VElPTl9BUkdTKQogCQkJbnVsbHNbM10gPSB0cnVlOwogCQl9CiAKLQkJLyogU2hvdyBhbGwgY29s dW1ucyB3aGVuIHRoZSBjb2x1bW4gbGlzdCBpcyBub3Qgc3BlY2lmaWVkLiAqLwotCQlpZiAobnVs bHNbMl0pCisJCS8qCisJCSAqIENvbnN0cnVjdCBjb2x1bW4gbGlzdCB0byBzaG93IGFsbCBjb2x1 bW5zIHdoZW4gbm8gY29sdW1uIGxpc3QgaXMKKwkJICogc3BlY2lmaWVkIG9yIHRvIHNob3cgcmVt YWluaW5nIGNvbHVtbnMgd2hlbiBhIGNvbHVtbiBsaXN0IGlzCisJCSAqIHByb3ZpZGVkIHdpdGgg RVhDRVBULgorCQkgKi8KKwkJaWYgKGV4Y2VwdF9jb2x1bW5zIHx8IG51bGxzWzJdKQogCQl7CiAJ CQlSZWxhdGlvbglyZWwgPSB0YWJsZV9vcGVuKHJlbGlkLCBBY2Nlc3NTaGFyZUxvY2spOwogCQkJ aW50CQkJbmF0dG51bXMgPSAwOwpAQCAtMTM1NCw2ICsxNDAxLDEzIEBAIHBnX2dldF9wdWJsaWNh dGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCWNvbnRpbnVlOwogCQkJCX0KIAor CQkJCS8qCisJCQkJICogU2tpcCBjb2x1bW5zIHRoYXQgYXJlIHBhcnQgb2YgY29sdW1uIGxpc3Qg c3BlY2lmaWVkIHdpdGgKKwkJCQkgKiBFWENFUFQuCisJCQkJICovCisJCQkJaWYgKGV4Y2VwdF9j b2x1bW5zICYmIGJtc19pc19tZW1iZXIoYXR0LT5hdHRudW0sIGV4Y2VwdF9jb2x1bW5zKSkKKwkJ CQkJY29udGludWU7CisKIAkJCQlhdHRudW1zW25hdHRudW1zKytdID0gYXR0LT5hdHRudW07CiAJ CQl9CiAKQEAgLTEzNjIsNiArMTQxNiwxMSBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBH X0ZVTkNUSU9OX0FSR1MpCiAJCQkJdmFsdWVzWzJdID0gUG9pbnRlckdldERhdHVtKGJ1aWxkaW50 MnZlY3RvcihhdHRudW1zLCBuYXR0bnVtcykpOwogCQkJCW51bGxzWzJdID0gZmFsc2U7CiAJCQl9 CisJCQllbHNlCisJCQl7CisJCQkJdmFsdWVzWzJdID0gKERhdHVtKSAwOworCQkJCW51bGxzWzJd ID0gdHJ1ZTsKKwkJCX0KIAogCQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwog CQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCmluZGV4IDU4NWVhNTA0ZmZh Li5mYWNiMjQwMWQ1NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRp b25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAg LTIwMyw3ICsyMDMsNiBAQCBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpz cGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJc3dpdGNoIChwdWJvYmotPnB1Ym9ianR5 cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEU6Ci0JCQkJcHVib2JqLT5wdWJ0 YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmot PnB1YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfRVhDRVBUX1RB QkxFOgpAQCAtMzU3LDggKzM1Niw4IEBAIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihP aWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAgKiBUaGlzIGZ1 bmN0aW9uIGV2YWx1YXRlcyB0d28gY29uZGl0aW9uczoKICAqCiAgKiAxLiBFbnN1cmVzIHRoYXQg YWxsIGNvbHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUgUkVQTElDQSBJREVOVElUWSBhcmUgY292ZXJl ZAotICogICAgYnkgdGhlIGNvbHVtbiBsaXN0LiBJZiBhbnkgY29sdW1uIGlzIG1pc3NpbmcsICpp bnZhbGlkX2NvbHVtbl9saXN0IGlzIHNldAotICogICAgdG8gdHJ1ZS4KKyAqICAgIGJ5IHRoZSBj b2x1bW4gbGlzdCBhbmQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBjb2x1bW4gbGlzdCBzcGVjaWZpZWQg d2l0aAorICogICAgRVhDRVBULiBJZiBhbnkgY29sdW1uIGlzIG1pc3NpbmcsICppbnZhbGlkX2Nv bHVtbl9saXN0IGlzIHNldCB0byB0cnVlLgogICogMi4gRW5zdXJlcyB0aGF0IGFsbCB0aGUgZ2Vu ZXJhdGVkIGNvbHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUgUkVQTElDQSBJREVOVElUWQogICogICAg YXJlIHB1Ymxpc2hlZCwgZWl0aGVyIGJ5IGJlaW5nIGV4cGxpY2l0bHkgbmFtZWQgaW4gdGhlIGNv bHVtbiBsaXN0IG9yLCBpZgogICogICAgbm8gY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkLCBieSBz ZXR0aW5nIHRoZSBvcHRpb24KQEAgLTM4MCw2ICszNzksNyBAQCBwdWJfY29udGFpbnNfaW52YWxp ZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAog CVR1cGxlRGVzYwlkZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWxhdGlvbik7CiAJUHVibGljYXRp b24gKnB1YjsKIAlpbnQJCQl4OworCWJvb2wJCWV4Y2VwdF9jb2x1bW5zID0gZmFsc2U7CiAKIAkq aW52YWxpZF9jb2x1bW5fbGlzdCA9IGZhbHNlOwogCSppbnZhbGlkX2dlbl9jb2wgPSBmYWxzZTsK QEAgLTQwMyw3ICs0MDMsOCBAQCBwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1Ymlk LCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCiAJLyogRmV0Y2ggdGhlIGNv bHVtbiBsaXN0ICovCiAJcHViID0gR2V0UHVibGljYXRpb24ocHViaWQpOwotCWNoZWNrX2FuZF9m ZXRjaF9jb2x1bW5fbGlzdChwdWIsIHB1Ymxpc2hfYXNfcmVsaWQsIE5VTEwsICZjb2x1bW5zKTsK KwljaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QocHViLCBwdWJsaXNoX2FzX3JlbGlkLCBOVUxM LCAmY29sdW1ucywKKwkJCQkJCQkJJmV4Y2VwdF9jb2x1bW5zKTsKIAogCWlmIChyZWxhdGlvbi0+ cmRfcmVsLT5yZWxyZXBsaWRlbnQgPT0gUkVQTElDQV9JREVOVElUWV9GVUxMKQogCXsKQEAgLTQ5 Myw4ICs0OTQsMTQgQEAgcHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVs YXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAkJCWF0dG51bSA9IGdldF9hdHRudW0o cHVibGlzaF9hc19yZWxpZCwgY29sbmFtZSk7CiAJCX0KIAotCQkvKiByZXBsaWNhIGlkZW50aXR5 IGNvbHVtbiwgbm90IGNvdmVyZWQgYnkgdGhlIGNvbHVtbiBsaXN0ICovCi0JCSppbnZhbGlkX2Nv bHVtbl9saXN0IHw9ICFibXNfaXNfbWVtYmVyKGF0dG51bSwgY29sdW1ucyk7CisJCS8qCisJCSAq IFJlcGxpY2EgaWRlbnRpdHkgY29sdW1uLCBub3QgY292ZXJlZCBieSB0aGUgY29sdW1uIGxpc3Qg b3IgaXMgcGFydAorCQkgKiBvZiBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aCBFWENFUFQuCisJ CSAqLworCQlpZiAoZXhjZXB0X2NvbHVtbnMpCisJCQkqaW52YWxpZF9jb2x1bW5fbGlzdCB8PSBi bXNfaXNfbWVtYmVyKGF0dG51bSwgY29sdW1ucyk7CisJCWVsc2UKKwkJCSppbnZhbGlkX2NvbHVt bl9saXN0IHw9ICFibXNfaXNfbWVtYmVyKGF0dG51bSwgY29sdW1ucyk7CiAKIAkJaWYgKCppbnZh bGlkX2NvbHVtbl9saXN0ICYmICppbnZhbGlkX2dlbl9jb2wpCiAJCQlicmVhazsKQEAgLTE0NTEs NiArMTQ1OCw3IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQg KnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQlIZWFwVHVwbGUJcmZ0dXBsZTsKIAkJCU5vZGUJICAg Km9sZHJlbHdoZXJlY2xhdXNlID0gTlVMTDsKIAkJCUJpdG1hcHNldCAgKm9sZGNvbHVtbnMgPSBO VUxMOworCQkJYm9vbAkJb2xkZXhjZXB0ID0gZmFsc2U7CiAKIAkJCS8qIGxvb2sgdXAgdGhlIGNh Y2hlIGZvciB0aGUgb2xkIHJlbG1hcCAqLwogCQkJcmZ0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMihQ VUJMSUNBVElPTlJFTE1BUCwKQEAgLTE0NjQsMjMgKzE0NzIsMjggQEAgQWx0ZXJQdWJsaWNhdGlv blRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJCWlm IChIZWFwVHVwbGVJc1ZhbGlkKHJmdHVwbGUpKQogCQkJewogCQkJCWJvb2wJCWlzbnVsbCA9IHRy dWU7Ci0JCQkJRGF0dW0JCXdoZXJlQ2xhdXNlRGF0dW07Ci0JCQkJRGF0dW0JCWNvbHVtbkxpc3RE YXR1bTsKKwkJCQlEYXR1bQkJZGF0dW07CiAKIAkJCQkvKiBMb2FkIHRoZSBXSEVSRSBjbGF1c2Ug Zm9yIHRoaXMgdGFibGUuICovCi0JCQkJd2hlcmVDbGF1c2VEYXR1bSA9IFN5c0NhY2hlR2V0QXR0 cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0dXBsZSwKLQkJCQkJCQkJCQkJCSAgIEFudW1fcGdfcHVi bGljYXRpb25fcmVsX3BycXVhbCwKLQkJCQkJCQkJCQkJCSAgICZpc251bGwpOworCQkJCWRhdHVt ID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCByZnR1cGxlLAorCQkJCQkJCQkJ CUFudW1fcGdfcHVibGljYXRpb25fcmVsX3BycXVhbCwKKwkJCQkJCQkJCQkmaXNudWxsKTsKIAkJ CQlpZiAoIWlzbnVsbCkKLQkJCQkJb2xkcmVsd2hlcmVjbGF1c2UgPSBzdHJpbmdUb05vZGUoVGV4 dERhdHVtR2V0Q1N0cmluZyh3aGVyZUNsYXVzZURhdHVtKSk7CisJCQkJCW9sZHJlbHdoZXJlY2xh dXNlID0gc3RyaW5nVG9Ob2RlKFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pKTsKIAogCQkJCS8q IFRyYW5zZm9ybSB0aGUgaW50MnZlY3RvciBjb2x1bW4gbGlzdCB0byBhIGJpdG1hcC4gKi8KLQkJ CQljb2x1bW5MaXN0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHJm dHVwbGUsCi0JCQkJCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0cnMsCi0J CQkJCQkJCQkJCQkgICZpc251bGwpOworCQkJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJ Q0FUSU9OUkVMTUFQLCByZnR1cGxlLAorCQkJCQkJCQkJCUFudW1fcGdfcHVibGljYXRpb25fcmVs X3ByYXR0cnMsCisJCQkJCQkJCQkJJmlzbnVsbCk7CisJCQkJaWYgKCFpc251bGwpCisJCQkJCW9s ZGNvbHVtbnMgPSBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQoTlVMTCwgZGF0dW0sIE5VTEwpOwog CisJCQkJLyogTG9hZCB0aGUgcHJleGNlcHQgZmxhZyBmb3IgdGhpcyB0YWJsZS4gKi8KKwkJCQlk YXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0dXBsZSwKKwkJCQkJ CQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2VwdCwKKwkJCQkJCQkJCQkmaXNudWxs KTsKIAkJCQlpZiAoIWlzbnVsbCkKLQkJCQkJb2xkY29sdW1ucyA9IHB1Yl9jb2xsaXN0X3RvX2Jp dG1hcHNldChOVUxMLCBjb2x1bW5MaXN0RGF0dW0sIE5VTEwpOworCQkJCQlvbGRleGNlcHQgPSBE YXR1bUdldEJvb2woZGF0dW0pOwogCiAJCQkJUmVsZWFzZVN5c0NhY2hlKHJmdHVwbGUpOwogCQkJ fQpAQCAtMTUwNywxMyArMTUyMCwxNCBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVi bGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJCSAqIENoZWNrIGlmIGFueSBv ZiB0aGUgbmV3IHNldCBvZiByZWxhdGlvbnMgbWF0Y2hlcyB3aXRoIHRoZQogCQkJCSAqIGV4aXN0 aW5nIHJlbGF0aW9ucyBpbiB0aGUgcHVibGljYXRpb24uIEFkZGl0aW9uYWxseSwgaWYgdGhlCiAJ CQkJICogcmVsYXRpb24gaGFzIGFuIGFzc29jaWF0ZWQgV0hFUkUgY2xhdXNlLCBjaGVjayB0aGUg V0hFUkUKLQkJCQkgKiBleHByZXNzaW9ucyBhbHNvIG1hdGNoLiBTYW1lIGZvciB0aGUgY29sdW1u IGxpc3QuIERyb3AgdGhlCi0JCQkJICogcmVzdC4KKwkJCQkgKiBleHByZXNzaW9ucyBhbHNvIG1h dGNoLiBTYW1lIGZvciB0aGUgY29sdW1uIGxpc3QgYW5kIGV4Y2VwdAorCQkJCSAqIGZsYWcuIERy b3AgdGhlIHJlc3QuCiAJCQkJICovCiAJCQkJaWYgKG5ld3JlbGlkID09IG9sZHJlbGlkKQogCQkJ CXsKIAkJCQkJaWYgKGVxdWFsKG9sZHJlbHdoZXJlY2xhdXNlLCBuZXdwdWJyZWwtPndoZXJlQ2xh dXNlKSAmJgotCQkJCQkJYm1zX2VxdWFsKG9sZGNvbHVtbnMsIG5ld2NvbHVtbnMpKQorCQkJCQkJ Ym1zX2VxdWFsKG9sZGNvbHVtbnMsIG5ld2NvbHVtbnMpICYmCisJCQkJCQlvbGRleGNlcHQgPT0g bmV3cHVicmVsLT5leGNlcHQpCiAJCQkJCXsKIAkJCQkJCWZvdW5kID0gdHJ1ZTsKIAkJCQkJCWJy ZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKaW5kZXggMjUxMjg4OWNiOWUuLjgwMDVhYmUwNzgwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKQEAgLTUyNyw3ICs1MjcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCU9wdFdo ZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcKICV0eXBlIDxsaXN0PglvcHRfY29sdW1uX2FuZF9w ZXJpb2RfbGlzdAogJXR5cGUgPGxpc3Q+CXJvd3Nmcm9tX2l0ZW0gcm93c2Zyb21fbGlzdCBvcHRf Y29sX2RlZl9saXN0Ci0ldHlwZSA8Ym9vbGVhbj4gb3B0X29yZGluYWxpdHkgb3B0X3dpdGhvdXRf b3ZlcmxhcHMKKyV0eXBlIDxib29sZWFuPiBvcHRfb3JkaW5hbGl0eSBvcHRfd2l0aG91dF9vdmVy bGFwcyBvcHRfZXhjZXB0CiAldHlwZSA8bGlzdD4JRXhjbHVzaW9uQ29uc3RyYWludExpc3QgRXhj bHVzaW9uQ29uc3RyYWludEVsZW0KICV0eXBlIDxsaXN0PglmdW5jX2FyZ19saXN0IGZ1bmNfYXJn X2xpc3Rfb3B0CiAldHlwZSA8bm9kZT4JZnVuY19hcmdfZXhwcgpAQCAtNDQ1MSw2ICs0NDUxLDEx IEBAIG9wdF93aXRob3V0X292ZXJsYXBzOgogCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBm YWxzZTsgfQogCTsKIAorb3B0X2V4Y2VwdDoKKwkJCUVYQ0VQVAkJCQkJCQkJCXsgJCQgPSB0cnVl OyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJCTsKKwogb3B0X2Nv bHVtbl9saXN0OgogCQkJJygnIGNvbHVtbkxpc3QgJyknCQkJCQkJeyAkJCA9ICQyOyB9CiAJCQl8 IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5JTDsgfQpAQCAtMTA3NjAsMTQgKzEwNzY1LDE1IEBA IENyZWF0ZVB1YmxpY2F0aW9uU3RtdDoKICAqIHJlbGF0aW9uX2V4cHIgaGVyZS4KICAqLwogUHVi bGljYXRpb25PYmpTcGVjOgotCQkJVEFCTEUgcmVsYXRpb25fZXhwciBvcHRfY29sdW1uX2xpc3Qg T3B0V2hlcmVDbGF1c2UKKwkJCVRBQkxFIHJlbGF0aW9uX2V4cHIgb3B0X2V4Y2VwdCBvcHRfY29s dW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGlj YXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9UQUJM RTsKIAkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7CiAJCQkJ CSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAkMjsKLQkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5z ID0gJDM7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKKwkJCQkJJCQtPnB1 YnRhYmxlLT5leGNlcHQgPSAkMzsKKwkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDQ7CisJ CQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNTsKIAkJCQkJJCQtPmxvY2F0aW9uID0g QDE7CiAJCQkJfQogCQkJfCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ29sSWQKQEAgLTEwNzgzLDcgKzEw Nzg5LDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJ Q0FUSU9OT0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BOwogCQkJCQkkJC0+bG9jYXRpb24gPSBANDsK IAkJCQl9Ci0JCQl8IENvbElkIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQorCQkJfCBD b2xJZCBvcHRfZXhjZXB0IG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQogCQkJCXsKIAkJ CQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwogCQkJCQkkJC0+cHVib2JqdHlw ZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsKQEAgLTEwNzkxLDcgKzEwNzk3LDcgQEAg UHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkgKiBJZiBlaXRoZXIgYSByb3cgZmlsdGVyIG9yIGNv bHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgY3JlYXRlCiAJCQkJCSAqIGEgUHVibGljYXRpb25UYWJs ZSBvYmplY3QuCiAJCQkJCSAqLwotCQkJCQlpZiAoJDIgfHwgJDMpCisJCQkJCWlmICgkMiB8fCAk MyB8fCAkNCkKIAkJCQkJewogCQkJCQkJLyoKIAkJCQkJCSAqIFRoZSBPcHRXaGVyZUNsYXVzZSBt dXN0IGJlIHN0b3JlZCBoZXJlIGJ1dCBpdCBpcwpAQCAtMTA4MDEsOCArMTA4MDcsOSBAQCBQdWJs aWNhdGlvbk9ialNwZWM6CiAJCQkJCQkgKi8KIAkJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2Rl KFB1YmxpY2F0aW9uVGFibGUpOwogCQkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9IG1ha2VS YW5nZVZhcihOVUxMLCAkMSwgQDEpOwotCQkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDI7 Ci0JCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDM7CisJCQkJCQkkJC0+cHVidGFi bGUtPmV4Y2VwdCA9ICQyOworCQkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDM7CisJCQkJ CQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CiAJCQkJCX0KIAkJCQkJZWxzZQogCQkJ CQl7CkBAIC0xMDgxMCwyNSArMTA4MTcsMjcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQl9 CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KLQkJCXwgQ29sSWQgaW5kaXJlY3Rpb24g b3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQl8IENvbElkIGluZGlyZWN0aW9uIG9w dF9leGNlcHQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCiAJCQkJewogCQkJCQkkJCA9 IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVC TElDQVRJT05PQkpfQ09OVElOVUFUSU9OOwogCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQ dWJsaWNhdGlvblRhYmxlKTsKIAkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9IG1ha2VSYW5n ZVZhckZyb21RdWFsaWZpZWROYW1lKCQxLCAkMiwgQDEsIHl5c2Nhbm5lcik7Ci0JCQkJCSQkLT5w dWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwotCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0g JDQ7CisJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gJDM7CisJCQkJCSQkLT5wdWJ0YWJsZS0+ Y29sdW1ucyA9ICQ0OworCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDU7CiAJCQkJ CSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJCS8qIGdyYW1tYXIgbGlrZSB0YWJsZW5hbWUg KiAsIE9OTFkgdGFibGVuYW1lLCBPTkxZICggdGFibGVuYW1lICkgKi8KLQkJCXwgZXh0ZW5kZWRf cmVsYXRpb25fZXhwciBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKKwkJCXwgZXh0ZW5k ZWRfcmVsYXRpb25fZXhwciBvcHRfZXhjZXB0IG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVz ZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwogCQkJCQkk JC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsKIAkJCQkJJCQtPnB1 YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+ cmVsYXRpb24gPSAkMTsKLQkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDI7Ci0JCQkJCSQk LT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkMzsKKwkJCQkJJCQtPnB1YnRhYmxlLT5leGNlcHQg PSAkMjsKKwkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDM7CisJCQkJCSQkLT5wdWJ0YWJs ZS0+d2hlcmVDbGF1c2UgPSAkNDsKIAkJCQl9CiAJCQl8IENVUlJFTlRfU0NIRU1BCiAJCQkJewpA QCAtMTk2OTYsNiArMTk3MDUsMTMgQEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJv YmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogCQkJCQkJZXJybXNnKCJpbnZh bGlkIHRhYmxlIG5hbWUiKSwKIAkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwdWJvYmotPmxvY2F0 aW9uKSk7CiAKKwkJCWlmIChwdWJvYmotPnB1YnRhYmxlICYmIHB1Ym9iai0+cHVidGFibGUtPmV4 Y2VwdCAmJgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmNvbHVtbnMgPT0gTlVMTCkKKwkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQll cnJtc2coInRhYmxlIHdpdGhvdXQgY29sdW1uIGxpc3QgY2Fubm90IHVzZSBFWENFUFQgY2xhdXNl IiksCisJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHVib2JqLT5sb2NhdGlvbikpOworCiAJCQlp ZiAocHVib2JqLT5uYW1lKQogCQkJewogCQkJCS8qIGNvbnZlcnQgaXQgdG8gUHVibGljYXRpb25U YWJsZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJs ZXN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKaW5k ZXggZDMzNTZiYzg0ZWUuLjY4ZmY1NTllODBjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvdGFibGVzeW5jLmMKQEAgLTgyMSwxMCArODIxLDE4IEBAIGNvcHlfcmVhZF9kYXRh KHZvaWQgKm91dGJ1ZiwgaW50IG1pbnJlYWQsIGludCBtYXhyZWFkKQogICogVGhpcyBmdW5jdGlv biBhbHNvIHJldHVybnMgKGEpIHRoZSByZWxhdGlvbiBxdWFsaWZpY2F0aW9ucyB0byBiZSB1c2Vk IGluCiAgKiB0aGUgQ09QWSBjb21tYW5kLCBhbmQgKGIpIHdoZXRoZXIgdGhlIHJlbW90ZSByZWxh dGlvbiBoYXMgcHVibGlzaGVkIGFueQogICogZ2VuZXJhdGVkIGNvbHVtbi4KKyAqCisgKiBXaXRo IHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIEVYQ0VQVCBxdWFsaWZpZXIgaW4gY29sdW1uIGxpc3Rz LCBpdCBpcyBub3cKKyAqIHBvc3NpYmxlIHRvIGRlZmluZSBhIHB1YmxpY2F0aW9uIHRoYXQgZXhj bHVkZXMgYWxsIGNvbHVtbnMgb2YgYSB0YWJsZS4gV2hlbgorICogdGhlIGNvbHVtbiBsaXN0IGlz IGZldGNoZWQgZnJvbSB0aGUgcmVtb3RlIHNlcnZlciBhbmQgaXMgTlVMTCwgaXQgbm9ybWFsbHkK KyAqIGluZGljYXRlcyB0aGF0IGFsbCBjb2x1bW5zIGFyZSBpbmNsdWRlZC4gVG8gZGlzdGluZ3Vp c2ggdGhpcyBmcm9tIHRoZSBjYXNlCisgKiB3aGVyZSBhbGwgY29sdW1ucyBhcmUgZXhwbGljaXRs eSBleGNsdWRlZCwgdGhlICdhbGxfY29sc19leGNsdWRlZCcgZmxhZyBoYXMKKyAqIGJlZW4gaW50 cm9kdWNlZC4KICAqLwogc3RhdGljIHZvaWQKIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIg Km5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJlbCwKLQkJCQkJ CUxpc3QgKipxdWFsLCBib29sICpnZW5jb2xfcHVibGlzaGVkKQorCQkJCQkJTGlzdCAqKnF1YWws IGJvb2wgKmdlbmNvbF9wdWJsaXNoZWQsCisJCQkJCQlib29sICphbGxfY29sc19leGNsdWRlZCkK IHsKIAlXYWxSY3ZFeGVjUmVzdWx0ICpyZXM7CiAJU3RyaW5nSW5mb0RhdGEgY21kOwpAQCAtODM4 LDYgKzg0Niw5IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIgKm5zcG5hbWUsIGNoYXIg KnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJlbCwKIAlCaXRtYXBzZXQgICppbmNsdWRl ZF9jb2xzID0gTlVMTDsKIAlpbnQJCQlzZXJ2ZXJfdmVyc2lvbiA9IHdhbHJjdl9zZXJ2ZXJfdmVy c2lvbihMb2dSZXBXb3JrZXJXYWxSY3ZDb25uKTsKIAorCUFzc2VydCgqZ2VuY29sX3B1Ymxpc2hl ZCA9PSBmYWxzZSk7CisJQXNzZXJ0KCphbGxfY29sc19leGNsdWRlZCA9PSBmYWxzZSk7CisKIAls cmVsLT5uc3BuYW1lID0gbnNwbmFtZTsKIAlscmVsLT5yZWxuYW1lID0gcmVsbmFtZTsKIApAQCAt ODg4LDcgKzg5OSw3IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIgKm5zcG5hbWUsIGNo YXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJlbCwKIAl7CiAJCVdhbFJjdkV4ZWNS ZXN1bHQgKnB1YnJlczsKIAkJVHVwbGVUYWJsZVNsb3QgKnRzbG90OwotCQlPaWQJCQlhdHRyc1Jv d1tdID0ge0lOVDJWRUNUT1JPSUR9OworCQlPaWQJCQlhdHRyc1Jvd1tdID0ge0lOVDJWRUNUT1JP SUQsIEJPT0xPSUR9OwogCiAJCS8qIEJ1aWxkIHRoZSBwdWJfbmFtZXMgY29tbWEtc2VwYXJhdGVk IHN0cmluZy4gKi8KIAkJcHViX25hbWVzID0gbWFrZVN0cmluZ0luZm8oKTsKQEAgLTkwMiw3ICs5 MTMsMTcgQEAgZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFtZSwgY2hhciAqcmVs bmFtZSwgTG9naWNhbFJlcFJlbGF0aW9uICpscmVsLAogCQlhcHBlbmRTdHJpbmdJbmZvKCZjbWQs CiAJCQkJCQkgIlNFTEVDVCBESVNUSU5DVCIKIAkJCQkJCSAiICAoQ0FTRSBXSEVOIChhcnJheV9s ZW5ndGgoZ3B0LmF0dHJzLCAxKSA9IGMucmVsbmF0dHMpIgotCQkJCQkJICIgICBUSEVOIE5VTEwg RUxTRSBncHQuYXR0cnMgRU5EKSIKKwkJCQkJCSAiICAgVEhFTiBOVUxMIEVMU0UgZ3B0LmF0dHJz IEVORCkiKTsKKworCQkvKgorCQkgKiBXaGVuIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgd2l0aCBF WENFUFQgKGNvbHVtbi1saXN0KSBhbmQgYWxsCisJCSAqIGNvbHVtbnMgYXJlIHNwZWNpZmllZCwg Z3B0LmF0dHJzIHdpbGwgYmUgTlVMTCBhbmQgbm8gY29sdW1ucyBhcmUKKwkJICogcHVibGlzaGVk IGluIHRoaXMgY2FzZS4KKwkJICovCisJCWlmIChzZXJ2ZXJfdmVyc2lvbiA+PSAxOTAwMDApCisJ CQlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsICIsIGdwdC5hdHRycyBJUyBOVUxMIEFORCBjLnJlbG5h dHRzID4gMCIpOworCisJCWFwcGVuZFN0cmluZ0luZm8oJmNtZCwKIAkJCQkJCSAiICBGUk9NIHBn X3B1YmxpY2F0aW9uIHAsIgogCQkJCQkJICIgIExBVEVSQUwgcGdfZ2V0X3B1YmxpY2F0aW9uX3Rh YmxlcyhwLnB1Ym5hbWUpIGdwdCwiCiAJCQkJCQkgIiAgcGdfY2xhc3MgYyIKQEAgLTkxMiw3ICs5 MzMsNyBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxu YW1lLCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCiAJCQkJCQkgcHViX25hbWVzLT5kYXRhKTsK IAogCQlwdWJyZXMgPSB3YWxyY3ZfZXhlYyhMb2dSZXBXb3JrZXJXYWxSY3ZDb25uLCBjbWQuZGF0 YSwKLQkJCQkJCQkgbGVuZ3Rob2YoYXR0cnNSb3cpLCBhdHRyc1Jvdyk7CisJCQkJCQkJIHNlcnZl cl92ZXJzaW9uID49IDE5MDAwMCA/IDIgOiAxLCBhdHRyc1Jvdyk7CiAKIAkJaWYgKHB1YnJlcy0+ c3RhdHVzICE9IFdBTFJDVl9PS19UVVBMRVMpCiAJCQllcmVwb3J0KEVSUk9SLApAQCAtOTU5LDYg Kzk4MCw5IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIgKm5zcG5hbWUsIGNoYXIgKnJl bG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJlbCwKIAkJCQkJaW5jbHVkZWRfY29scyA9IGJt c19hZGRfbWVtYmVyKGluY2x1ZGVkX2NvbHMsIGVsZW1zW25hdHRdKTsKIAkJCX0KIAorCQkJaWYg KHNlcnZlcl92ZXJzaW9uID49IDE5MDAwMCkKKwkJCQkqYWxsX2NvbHNfZXhjbHVkZWQgPSBEYXR1 bUdldEJvb2woc2xvdF9nZXRhdHRyKHRzbG90LCAyLCAmaXNudWxsKSk7CisKIAkJCUV4ZWNDbGVh clR1cGxlKHRzbG90KTsKIAkJfQogCQlFeGVjRHJvcFNpbmdsZVR1cGxlVGFibGVTbG90KHRzbG90 KTsKQEAgLTEwMjEsNyArMTA0NSw4IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIgKm5z cG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJlbCwKIAkJQXNzZXJ0 KCFpc251bGwpOwogCiAJCS8qIElmIHRoZSBjb2x1bW4gaXMgbm90IGluIHRoZSBjb2x1bW4gbGlz dCwgc2tpcCBpdC4gKi8KLQkJaWYgKGluY2x1ZGVkX2NvbHMgIT0gTlVMTCAmJiAhYm1zX2lzX21l bWJlcihhdHRudW0sIGluY2x1ZGVkX2NvbHMpKQorCQlpZiAoKmFsbF9jb2xzX2V4Y2x1ZGVkIHx8 CisJCQkoaW5jbHVkZWRfY29scyAhPSBOVUxMICYmICFibXNfaXNfbWVtYmVyKGF0dG51bSwgaW5j bHVkZWRfY29scykpKQogCQl7CiAJCQlFeGVjQ2xlYXJUdXBsZShzbG90KTsKIAkJCWNvbnRpbnVl OwpAQCAtMTE1MywxMSArMTE3OCwxNSBAQCBjb3B5X3RhYmxlKFJlbGF0aW9uIHJlbCkKIAlQYXJz ZVN0YXRlICpwc3RhdGU7CiAJTGlzdAkgICAqb3B0aW9ucyA9IE5JTDsKIAlib29sCQlnZW5jb2xf cHVibGlzaGVkID0gZmFsc2U7CisJYm9vbAkJYWxsX2NvbHNfZXhjbHVkZWQgPSBmYWxzZTsKIAog CS8qIEdldCB0aGUgcHVibGlzaGVyIHJlbGF0aW9uIGluZm8uICovCiAJZmV0Y2hfcmVtb3RlX3Rh YmxlX2luZm8oZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpLAog CQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksICZscmVsLCAmcXVhbCwKLQkJCQkJ CQkmZ2VuY29sX3B1Ymxpc2hlZCk7CisJCQkJCQkJJmdlbmNvbF9wdWJsaXNoZWQsICZhbGxfY29s c19leGNsdWRlZCk7CisKKwlpZiAoYWxsX2NvbHNfZXhjbHVkZWQpCisJCXJldHVybjsKIAogCS8q IFB1dCB0aGUgcmVsYXRpb24gaW50byByZWxtYXAuICovCiAJbG9naWNhbHJlcF9yZWxtYXBfdXBk YXRlKCZscmVsKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0 L3Bnb3V0cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5j CmluZGV4IGI5ZDY3NmQxZjE4Li4xY2Y5MGYxODc1ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCkBAIC0xODUsNiArMTg1LDE2IEBAIHR5cGVkZWYgc3Ry dWN0IFJlbGF0aW9uU3luY0VudHJ5CiAJICogcm93IGZpbHRlciBleHByZXNzaW9ucywgY29sdW1u IGxpc3QsIGV0Yy4KIAkgKi8KIAlNZW1vcnlDb250ZXh0IGVudHJ5X2N4dDsKKworCS8qCisJICog SW5kaWNhdGVzIHdoZXRoZXIgbm8gY29sdW1ucyBhcmUgcHVibGlzaGVkIGZvciBhIGdpdmVuIHJl bGF0aW9uLiBXaXRoCisJICogdGhlIGludHJvZHVjdGlvbiBvZiB0aGUgRVhDRVBUIHF1YWxpZmll ciBpbiBjb2x1bW4gbGlzdHMsIGl0IGlzIG5vdworCSAqIHBvc3NpYmxlIHRvIGRlZmluZSBhIHB1 YmxpY2F0aW9uIHRoYXQgZXhjbHVkZXMgYWxsIGNvbHVtbnMgb2YgYSB0YWJsZS4KKwkgKiBIb3dl dmVyLCB0aGUgJ2NvbHVtbnMnIGF0dHJpYnV0ZSBjYW5ub3QgcmVwcmVzZW50IHRoaXMgY2FzZSwg c2luY2UgYQorCSAqIE5VTEwgdmFsdWUgaW1wbGllcyB0aGF0IGFsbCBjb2x1bW5zIGFyZSBwdWJs aXNoZWQuIFRvIGRpc3Rpbmd1aXNoIHRoaXMKKwkgKiBzY2VuYXJpbywgdGhlICdhbGxfY29sc19l eGNsdWRlZCcgZmxhZyBpcyBpbnRyb2R1Y2VkLgorCSAqLworCWJvb2wJCWFsbF9jb2xzX2V4Y2x1 ZGVkOwogfSBSZWxhdGlvblN5bmNFbnRyeTsKIAogLyoKQEAgLTEwNjgsMTIgKzEwNzgsMjEgQEAg Y2hlY2tfYW5kX2luaXRfZ2VuY29sKFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRp b25zLAogCSAqLwogCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uLCBwdWIsIHB1YmxpY2F0aW9ucykK IAl7CisJCWJvb2wJCWhhc19jb2x1bW5fbGlzdCA9IGZhbHNlOworCQlib29sCQlleGNlcHRfY29s dW1ucyA9IGZhbHNlOworCisJCWhhc19jb2x1bW5fbGlzdCA9IGNoZWNrX2FuZF9mZXRjaF9jb2x1 bW5fbGlzdChwdWIsCisJCQkJCQkJCQkJCQkJICBlbnRyeS0+cHVibGlzaF9hc19yZWxpZCwKKwkJ CQkJCQkJCQkJCQkgIE5VTEwsIE5VTEwsCisJCQkJCQkJCQkJCQkJICAmZXhjZXB0X2NvbHVtbnMp OworCiAJCS8qCiAJCSAqIFRoZSBjb2x1bW4gbGlzdCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhl CiAJCSAqICdwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBwYXJhbWV0ZXIuIFRob3NlIHdpbGwg YmUgY2hlY2tlZCBsYXRlciwKLQkJICogc2VlIHBnb3V0cHV0X2NvbHVtbl9saXN0X2luaXQuCisJ CSAqIHNlZSBwZ291dHB1dF9jb2x1bW5fbGlzdF9pbml0LiBCdXQgd2hlbiBhIGNvbHVtbiBsaXN0 IGlzIHNwZWNpZmllZAorCQkgKiB3aXRoIEVYQ0VQVCwgaXQgc2hvdWxkIGJlIGNoZWNrZWQuCiAJ CSAqLwotCQlpZiAoY2hlY2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KHB1YiwgZW50cnktPnB1Ymxp c2hfYXNfcmVsaWQsIE5VTEwsIE5VTEwpKQorCQlpZiAoaGFzX2NvbHVtbl9saXN0ICYmICFleGNl cHRfY29sdW1ucykKIAkJCWNvbnRpbnVlOwogCiAJCWlmIChmaXJzdCkKQEAgLTExMjIsMTkgKzEx NDEsNDEgQEAgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdChQR091dHB1dERhdGEgKmRhdGEsIExp c3QgKnB1YmxpY2F0aW9ucywKIAl7CiAJCVB1YmxpY2F0aW9uICpwdWIgPSBsZmlyc3QobGMpOwog CQlCaXRtYXBzZXQgICpjb2xzID0gTlVMTDsKKwkJYm9vbAkJZXhjZXB0X2NvbHVtbnMgPSBmYWxz ZTsKKwkJYm9vbAkJYWxsX2NvbHNfZXhjbHVkZWQgPSBmYWxzZTsKIAogCQkvKiBSZXRyaWV2ZSB0 aGUgYml0bWFwIG9mIGNvbHVtbnMgZm9yIGEgY29sdW1uIGxpc3QgcHVibGljYXRpb24uICovCiAJ CWZvdW5kX3B1Yl9jb2xsaXN0IHw9IGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsCiAJ CQkJCQkJCQkJCQkJCSBlbnRyeS0+cHVibGlzaF9hc19yZWxpZCwKLQkJCQkJCQkJCQkJCQkJIGVu dHJ5LT5lbnRyeV9jeHQsICZjb2xzKTsKKwkJCQkJCQkJCQkJCQkJIGVudHJ5LT5lbnRyeV9jeHQs ICZjb2xzLAorCQkJCQkJCQkJCQkJCQkgJmV4Y2VwdF9jb2x1bW5zKTsKKworCQkvKgorCQkgKiBJ ZiBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQgd2l0aCBFWENFUFQgcmV0cmlldmUgYml0bWFwIG9m IGNvbHVtbnMKKwkJICogd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoaXMgY29sdW1uIGxpc3QuCisJ CSAqLworCQlpZiAoZXhjZXB0X2NvbHVtbnMpCisJCXsKKwkJCU1lbW9yeUNvbnRleHQgb2xkY3h0 ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVudHJ5LT5lbnRyeV9jeHQpOworCisJCQljb2xzID0g cHViX2Zvcm1fY29sc19tYXAocmVsYXRpb24sCisJCQkJCQkJCQkgZW50cnktPmluY2x1ZGVfZ2Vu Y29sc190eXBlLCBjb2xzKTsKKwkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOworCisJ CQlpZiAoIWNvbHMpCisJCQkJYWxsX2NvbHNfZXhjbHVkZWQgPSB0cnVlOworCQl9CiAKIAkJLyoK LQkJICogRm9yIG5vbi1jb2x1bW4gbGlzdCBwdWJsaWNhdGlvbnMg4oCUIGUuZy4gVEFCTEUgKHdp dGhvdXQgYSBjb2x1bW4KLQkJICogbGlzdCksIEFMTCBUQUJMRVMsIG9yIEFMTCBUQUJMRVMgSU4g U0NIRU1BLCB3ZSBjb25zaWRlciBhbGwgY29sdW1ucwotCQkgKiBvZiB0aGUgdGFibGUgKGluY2x1 ZGluZyBnZW5lcmF0ZWQgY29sdW1ucyB3aGVuCisJCSAqIElmICdjb2xzJyBpcyBudWxsLCBpdCBp bmRpY2F0ZXMgdGhhdCB0aGUgcHVibGljYXRpb24gaXMgZWl0aGVyIGEKKwkJICogbm9uLWNvbHVt biBsaXN0IHB1YmxpY2F0aW9uIG9yIG9uZSB3aGVyZSBhbGwgY29sdW1ucyBhcmUgZXhjbHVkZWQu CisJCSAqIFdoZW4gJ2FsbF9jb2xzX2V4Y2x1ZGVkJyBpcyB0cnVlLCBpdCBleHBsaWNpdGx5IG1l YW5zIGFsbCBjb2x1bW5zCisJCSAqIGhhdmUgYmVlbiBleGNsdWRlZC4gRm9yIG5vbi1jb2x1bW4g bGlzdCBwdWJsaWNhdGlvbnMg4oCUIGUuZy4gVEFCTEUKKwkJICogKHdpdGhvdXQgYSBjb2x1bW4g bGlzdCksIEFMTCBUQUJMRVMsIG9yIEFMTCBUQUJMRVMgSU4gU0NIRU1BLCB3ZQorCQkgKiBjb25z aWRlciBhbGwgY29sdW1ucyBvZiB0aGUgdGFibGUgKGluY2x1ZGluZyBnZW5lcmF0ZWQgY29sdW1u cyB3aGVuCiAJCSAqICdwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBwYXJhbWV0ZXIgaXMgdHJ1 ZSkuCiAJCSAqLwotCQlpZiAoIWNvbHMpCisJCWlmICghYWxsX2NvbHNfZXhjbHVkZWQgJiYgIWNv bHMpCiAJCXsKIAkJCS8qCiAJCQkgKiBDYWNoZSB0aGUgdGFibGUgY29sdW1ucyBmb3IgdGhlIGZp cnN0IHB1YmxpY2F0aW9uIHdpdGggbm8KQEAgLTExNDYsNyArMTE4Nyw3IEBAIHBnb3V0cHV0X2Nv bHVtbl9saXN0X2luaXQoUEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJ CQkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZW50cnktPmVu dHJ5X2N4dCk7CiAKIAkJCQlyZWxjb2xzID0gcHViX2Zvcm1fY29sc19tYXAocmVsYXRpb24sCi0J CQkJCQkJCQkJCWVudHJ5LT5pbmNsdWRlX2dlbmNvbHNfdHlwZSk7CisJCQkJCQkJCQkJCWVudHJ5 LT5pbmNsdWRlX2dlbmNvbHNfdHlwZSwgTlVMTCk7CiAJCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRv KG9sZGN4dCk7CiAJCQl9CiAKQEAgLTExNTYsOSArMTE5NywxMSBAQCBwZ291dHB1dF9jb2x1bW5f bGlzdF9pbml0KFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25zLAogCQlpZiAo Zmlyc3QpCiAJCXsKIAkJCWVudHJ5LT5jb2x1bW5zID0gY29sczsKKwkJCWVudHJ5LT5hbGxfY29s c19leGNsdWRlZCA9IGFsbF9jb2xzX2V4Y2x1ZGVkOwogCQkJZmlyc3QgPSBmYWxzZTsKIAkJfQot CQllbHNlIGlmICghYm1zX2VxdWFsKGVudHJ5LT5jb2x1bW5zLCBjb2xzKSkKKwkJZWxzZSBpZiAo KGVudHJ5LT5hbGxfY29sc19leGNsdWRlZCAhPSBhbGxfY29sc19leGNsdWRlZCkgfHwKKwkJCQkg IWJtc19lcXVhbChlbnRyeS0+Y29sdW1ucywgY29scykpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJ CQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJZXJybXNnKCJj YW5ub3QgdXNlIGRpZmZlcmVudCBjb2x1bW4gbGlzdHMgZm9yIHRhYmxlIFwiJXMuJXNcIiBpbiBk aWZmZXJlbnQgcHVibGljYXRpb25zIiwKQEAgLTE0ODIsNiArMTUyNSwxMyBAQCBwZ291dHB1dF9j aGFuZ2UoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4s CiAKIAlyZWxlbnRyeSA9IGdldF9yZWxfc3luY19lbnRyeShkYXRhLCByZWxhdGlvbik7CiAKKwkv KgorCSAqIElmIGFsbCBjb2x1bW5zIG9mIGEgdGFibGUgYXJlIHByZXNlbnQgaW4gY29sdW1uIGxp c3Qgc3BlY2lmaWVkIHdpdGgKKwkgKiBFWENFUFQsIHNraXAgcHVibGlzaGluZyB0aGUgY2hhbmdl cy4KKwkgKi8KKwlpZiAocmVsZW50cnktPmFsbF9jb2xzX2V4Y2x1ZGVkKQorCQlyZXR1cm47CisK IAkvKiBGaXJzdCBjaGVjayB0aGUgdGFibGUgZmlsdGVyICovCiAJc3dpdGNoIChhY3Rpb24pCiAJ ewpAQCAtMjA1OSw2ICsyMTA5LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAq ZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCWVudHJ5LT5wdWJsaXNoX2FzX3JlbGlkID0gSW52 YWxpZE9pZDsKIAkJZW50cnktPmNvbHVtbnMgPSBOVUxMOwogCQllbnRyeS0+YXR0cm1hcCA9IE5V TEw7CisJCWVudHJ5LT5hbGxfY29sc19leGNsdWRlZCA9IGZhbHNlOwogCX0KIAogCS8qIFZhbGlk YXRlIHRoZSBlbnRyeSAqLwpAQCAtMjEwOCw2ICsyMTU5LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5 KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCWVudHJ5LT5wdWJhY3Rp b25zLnB1YnVwZGF0ZSA9IGZhbHNlOwogCQllbnRyeS0+cHViYWN0aW9ucy5wdWJkZWxldGUgPSBm YWxzZTsKIAkJZW50cnktPnB1YmFjdGlvbnMucHVidHJ1bmNhdGUgPSBmYWxzZTsKKwkJZW50cnkt PmFsbF9jb2xzX2V4Y2x1ZGVkID0gZmFsc2U7CiAKIAkJLyoKIAkJICogVHVwbGUgc2xvdHMgY2xl YW51cHMuIChXaWxsIGJlIHJlYnVpbHQgbGF0ZXIgaWYgbmVlZGVkKS4KZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4 IGM2MzRmMGFhNjc2Li4zZjM5YjA5NTExYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC00ODY1LDI0ICs0ODY1 LDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGlu Zm9bXSwgaW50IG51bVRhYmxlcykKIAkJaWYgKHRiaW5mbyA9PSBOVUxMKQogCQkJY29udGludWU7 CiAKLQkJLyogT0ssIG1ha2UgYSBEdW1wYWJsZU9iamVjdCBmb3IgdGhpcyByZWxhdGlvbnNoaXAg Ki8KLQkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgImYiKSA9PSAwKQotCQkJcHVicmluZm9bal0uZG9i ai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOwotCQllbHNlCi0JCQlwdWJyaW5mb1tqXS5k b2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOwotCi0JCXB1YnJpbmZvW2pd LmRvYmouY2F0SWQudGFibGVvaWQgPQotCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Rh Ymxlb2lkKSk7Ci0JCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFs dWUocmVzLCBpLCBpX29pZCkpOwotCQlBc3NpZ25EdW1wSWQoJnB1YnJpbmZvW2pdLmRvYmopOwot CQlwdWJyaW5mb1tqXS5kb2JqLm5hbWVzcGFjZSA9IHRiaW5mby0+ZG9iai5uYW1lc3BhY2U7Ci0J CXB1YnJpbmZvW2pdLmRvYmoubmFtZSA9IHRiaW5mby0+ZG9iai5uYW1lOwotCQlwdWJyaW5mb1tq XS5wdWJsaWNhdGlvbiA9IHB1YmluZm87Ci0JCXB1YnJpbmZvW2pdLnB1YnRhYmxlID0gdGJpbmZv OwotCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3BycmVscXVhbCkpCi0JCQlwdWJyaW5mb1tq XS5wdWJyZWxxdWFsID0gTlVMTDsKLQkJZWxzZQotCQkJcHVicmluZm9bal0ucHVicmVscXVhbCA9 IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9wcnJlbHF1YWwpKTsKKwkJcHVicmluZm9b al0ucHViZXhjZXB0ID0gKHN0cmNtcChwcmV4Y2VwdCwgInQiKSA9PSAwKTsKIAogCQlpZiAoIVBR Z2V0aXNudWxsKHJlcywgaSwgaV9wcmF0dHJzKSkKIAkJewpAQCAtNDkwOCwxMCArNDg5MSwyOSBA QCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1td LCBpbnQgbnVtVGFibGVzKQogCQllbHNlCiAJCQlwdWJyaW5mb1tqXS5wdWJyYXR0cnMgPSBOVUxM OwogCisJCS8qIE9LLCBtYWtlIGEgRHVtcGFibGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlw ICovCisJCWlmIChwdWJyaW5mb1tqXS5wdWJleGNlcHQgJiYgIXB1YnJpbmZvW2pdLnB1YnJhdHRy cykKKwkJCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9S RUw7CisJCWVsc2UKKwkJCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9O X1JFTDsKKworCQlwdWJyaW5mb1tqXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KKwkJCWF0b29pZChQ UWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOworCQlwdWJyaW5mb1tqXS5kb2JqLmNhdElk Lm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElk KCZwdWJyaW5mb1tqXS5kb2JqKTsKKwkJcHVicmluZm9bal0uZG9iai5uYW1lc3BhY2UgPSB0Ymlu Zm8tPmRvYmoubmFtZXNwYWNlOworCQlwdWJyaW5mb1tqXS5kb2JqLm5hbWUgPSB0YmluZm8tPmRv YmoubmFtZTsKKwkJcHVicmluZm9bal0ucHVibGljYXRpb24gPSBwdWJpbmZvOworCQlwdWJyaW5m b1tqXS5wdWJ0YWJsZSA9IHRiaW5mbzsKKwkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV9wcnJl bHF1YWwpKQorCQkJcHVicmluZm9bal0ucHVicmVscXVhbCA9IE5VTEw7CisJCWVsc2UKKwkJCXB1 YnJpbmZvW2pdLnB1YnJlbHF1YWwgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJy ZWxxdWFsKSk7CisKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJ CXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmplY3QoJihwdWJyaW5mb1tqXS5kb2JqKSwgZm91 dCk7CiAKLQkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgInQiKSA9PSAwKQorCQlpZiAocHVicmluZm9b al0ucHViZXhjZXB0ICYmICFwdWJyaW5mb1tqXS5wdWJyYXR0cnMpCiAJCQlzaW1wbGVfcHRyX2xp c3RfYXBwZW5kKCZleGNlcHRpbmZvLCAmcHVicmluZm9bal0pOwogCiAJCWorKzsKQEAgLTQ5OTEs NyArNDk5MywxMiBAQCBkdW1wUHVibGljYXRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBQ dWJsaWNhdGlvblJlbEluZm8gKnB1YnJpbmZvKQogCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxl KHRiaW5mbykpOwogCiAJaWYgKHB1YnJpbmZvLT5wdWJyYXR0cnMpCisJeworCQlpZiAocHVicmlu Zm8tPnB1YmV4Y2VwdCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEVYQ0VQVCIp OworCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiICglcykiLCBwdWJyaW5mby0+cHVicmF0 dHJzKTsKKwl9CiAKIAlpZiAocHVicmluZm8tPnB1YnJlbHF1YWwpCiAJewpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5k ZXggNzljMmJkZDRjODIuLmNkODZlN2VkMTRhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTY4OSw2ICs2ODks NyBAQCB0eXBlZGVmIHN0cnVjdCBfUHVibGljYXRpb25SZWxJbmZvCiAJVGFibGVJbmZvICAqcHVi dGFibGU7CiAJY2hhcgkgICAqcHVicmVscXVhbDsKIAljaGFyCSAgICpwdWJyYXR0cnM7CisJYm9v bAkJcHViZXhjZXB0OwogfSBQdWJsaWNhdGlvblJlbEluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDI3 NzQ1NDhhMmM4Li45ZjVkNWIwNGZjYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTE1NjAsNiArMTU2MCw5MSBAQCBk ZXNjcmliZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJv b2wgc2hvd1N5c3RlbSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorLyoKKyAqIEFkZCBhIGZvb3RlciB0 byBhIHB1YmxpY2F0aW9uIGRlc2NyaXB0aW9uIG9yIGEgdGFibGUgZGVzY3JpcHRpb24uCisgKgor ICogJ2lzX3B1Yl9kZXNjJyAtIHRydWUgZm9yIGEgcHViIGRlc2M7IGZhbHNlIGZvciBhIHRhYmxl IGRlc2MKKyAqICdwdWJfc2NoZW1hcycgLSB0cnVlIGlmIHRoZSBwdWJfZGVzYyBvbmx5IHNob3dz IHNjaGVtYXMsIG90aGVyd2lzZSBmYWxzZQorICovCitzdGF0aWMgYm9vbAorYWRkRm9vdGVyVG9Q dWJsaWNhdGlvbk9yVGFibGVEZXNjKFBRRXhwQnVmZmVyIGJ1ZiwKKwkJCQkJCQkJICBwcmludFRh YmxlQ29udGVudCAqY29uc3QgY29udCwKKwkJCQkJCQkJICBjb25zdCBjaGFyICpmb290ZXJtc2cs CisJCQkJCQkJCSAgYm9vbCBpc19wdWJfZGVzYywgYm9vbCBwdWJfc2NoZW1hcykKK3sKKwlQR3Jl c3VsdCAgICpyZXM7CisJaW50CQkJY291bnQ7CisJaW50CQkJY29sID0gaXNfcHViX2Rlc2MgPyAx IDogMDsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi0+ZGF0YSk7CisJaWYgKCFyZXMpCisJCXJldHVy biBmYWxzZTsKKworCWNvdW50ID0gUFFudHVwbGVzKHJlcyk7CisJaWYgKGNvdW50ID4gMCkKKwkJ cHJpbnRUYWJsZUFkZEZvb3Rlcihjb250LCBmb290ZXJtc2cpOworCisJLyotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCSAqIERl c2NyaXB0aW9uIGNvbHVtbnMgZm9yOgorCSAqCisJICogUFVCICAgICAgVEJMCisJICogWzBdICAg ICAgLSAgICAgIDogc2NoZW1hIG5hbWUgKG5zcG5hbWUpCisJICogW2NvbF0gICAgLSAgICAgIDog dGFibGUgbmFtZSAocmVsbmFtZSkKKwkgKiAtICAgICAgICBbY29sXSAgOiBwdWJsaWNhdGlvbiBu YW1lIChwdWJuYW1lKQorCSAqIFtjb2wrMV0gIFtjb2wrMV06IHJvdyBmaWx0ZXIgZXhwcmVzc2lv biAocHJxdWFsKSwgbWF5IGJlIE5VTEwKKwkgKiBbY29sKzJdICBbY29sKzJdOiBjb2x1bW4gbGlz dCAoY29tbWEtc2VwYXJhdGVkKSwgbWF5IGJlIE5VTEwKKwkgKiBbY29sKzNdICBbY29sKzNdOiBl eGNlcHQgZmxhZyAoInQiIGlmIEVYQ0VQVCwgZWxzZSAiZiIpCisJICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCSAqLworCWZv ciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKwl7CisJCXByaW50ZlBRRXhwQnVmZmVyKGJ1 ZiwgIiAgICAiKTsgLyogaW5kZW50ICovCisKKwkJLyoKKwkJICogRm9vdGVyIGVudHJpZXMgZm9y IGEgcHVibGljYXRpb24gZGVzY3JpcHRpb24gb3IgYSB0YWJsZQorCQkgKiBkZXNjcmlwdGlvbgor CQkgKi8KKwkJaWYgKGlzX3B1Yl9kZXNjKQorCQl7CisJCQlpZiAocHViX3NjaGVtYXMpCisJCQl7 CisJCQkJLyogU2NoZW1hcyBvZiB0aGUgcHVibGljYXRpb24uLi4gKi8KKwkJCQlhcHBlbmRQUUV4 cEJ1ZmZlcihidWYsICJcIiVzXCIiLCBQUWdldHZhbHVlKHJlcywgaSwgMCkpOworCQkJfQorCQkJ ZWxzZQorCQkJeworCQkJCS8qIFRhYmxlcyBvZiB0aGUgcHVibGljYXRpb24uLi4gKi8KKwkJCQlh cHBlbmRQUUV4cEJ1ZmZlcihidWYsICJcIiVzLiVzXCIiLCBQUWdldHZhbHVlKHJlcywgaSwgMCks CisJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXMsIGksIGNvbCkpOworCQkJfQorCQl9CisJCWVsc2UK KwkJeworCQkJLyogUHVibGljYXRpb25zIG9mIHRoZSB0YWJsZS4uLiAqLworCQkJYXBwZW5kUFFF eHBCdWZmZXIoYnVmLCAiXCIlc1wiIiwgUFFnZXR2YWx1ZShyZXMsIGksIGNvbCkpOworCQl9CisK KwkJLyogQ29tbW9uIGZvb3RlciBvdXRwdXQgZm9yIGNvbHVtbiBsaXN0IGFuZC9vciByb3cgZmls dGVyICovCisJCWlmICghcHViX3NjaGVtYXMpCisJCXsKKwkJCWlmICghUFFnZXRpc251bGwocmVz LCBpLCBjb2wgKyAyKSkKKwkJCXsKKwkJCQlpZiAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBj b2wgKyAzKSwgInQiKSA9PSAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICIgRVhDRVBU Iik7CisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoYnVmLCAiICglcykiLCBQUWdldHZhbHVlKHJlcywg aSwgY29sICsgMikpOworCQkJfQorCisJCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgY29sICsg MSkpCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoYnVmLCAiIFdIRVJFICVzIiwgUFFnZXR2YWx1ZShy ZXMsIGksIGNvbCArIDEpKTsKKwkJfQorCisJCXByaW50VGFibGVBZGRGb290ZXIoY29udCwgYnVm LT5kYXRhKTsKKwl9CisKKwlQUWNsZWFyKHJlcyk7CisJcmV0dXJuIHRydWU7Cit9CisKIC8qCiAg KiBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyAoZm9yIFxkKQogICoKQEAgLTMwMTksMTYgKzMxMDQs MjcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJ LyogcHJpbnQgYW55IHB1YmxpY2F0aW9ucyAqLwogCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxMDAw MDApCiAJCXsKLQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwkJCWlmIChwc2V0LnN2 ZXJzaW9uID49IDE5MDAwMCkKIAkJCXsKIAkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCisJ CQkJLyoKKwkJCQkgKiBHZXQgYWxsIHB1YmxpY2F0aW9ucyBmb3IgdGhlIHNjaGVtYSB0aGF0IHRo aXMgcmVsYXRpb24gaXMKKwkJCQkgKiBwYXJ0IG9mCisJCQkJICovCiAJCQkJCQkJCSAgIlNFTEVD VCBwdWJuYW1lXG4iCiAJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCiAJCQkJCQkJCSAgIiAgICAg LCBOVUxMXG4iCisJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0 YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCiAJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9n LnBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSBwbiBPTiBwLm9pZCA9IHBuLnBucHViaWRcbiIKIAkJ CQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGMgT04gcGMucmVsbmFtZXNw YWNlID0gcG4ucG5uc3BpZFxuIgogCQkJCQkJCQkgICJXSEVSRSBwYy5vaWQgPSclcycgYW5kIHBn X2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKKworCQkJCS8qCisJ CQkJICogR2V0IGFsbCBwdWJsaWNhdGlvbnMgZm9yIHRoaXMgcmVsYXRpb24gY3JlYXRlZCB1c2lu ZyBGT1IKKwkJCQkgKiBUQUJMRQorCQkJCSAqLwogCQkJCQkJCQkgICJVTklPTlxuIgogCQkJCQkJ CQkgICJTRUxFQ1QgcHVibmFtZVxuIgogCQkJCQkJCQkgICIgICAgICwgcGdfZ2V0X2V4cHIocHIu cHJxdWFsLCBjLm9pZClcbiIKQEAgLTMwMzgsMzUgKzMxMzQsNjcgQEAgZGVzY3JpYmVPbmVUYWJs ZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkJICAiICAgICAgICAgICAg ICAgIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlXG4iCiAJCQkJCQkJCSAgIiAgICAgICAgICBXSEVS RSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCiAJCQkJ CQkJCSAgIiAgICAgICAgRUxTRSBOVUxMIEVORCkgIgorCQkJCQkJCQkgICIJCSwgcHJleGNlcHQg IgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgogCQkJCQkJ CQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5vaWQgPSBw ci5wcnB1YmlkXG4iCiAJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgT04g Yy5vaWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQgPSAnJXMn XG4iLAotCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOwotCi0JCQkJaWYgKHBzZXQuc3ZlcnNpb24g Pj0gMTkwMDAwKQotCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiIEFORCBOT1QgcHIu cHJleGNlcHRcbiIpOworCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJyAiCisJCQkJ CQkJCSAgIkFORAlwLnB1YmFsbHRhYmxlcyA9IGZhbHNlXG4iCisJCQkJCQkJCSAgIkFORCAgYy5y ZWxuYW1lc3BhY2UgTk9UIElOIChcbiAiCisJCQkJCQkJCSAgIiAJU0VMRUNUIHBubnNwaWQgRlJP TVxuIgorCQkJCQkJCQkgICIgCXBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fbmFtZXNwYWNlKVxu IgogCi0JCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkvKgorCQkJCSAqIEdldCBhbGwg Rk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb25zIHRoYXQgaW5jbHVkZSB0aGlzCisJCQkJICogcmVs YXRpb24KKwkJCQkgKi8KIAkJCQkJCQkJICAiVU5JT05cbiIKIAkJCQkJCQkJICAiU0VMRUNUIHB1 Ym5hbWVcbiIKIAkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiCQksIE5VTExcbiIK KwkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1 YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2Nh dGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIsCi0JCQkJCQkJCSAgb2lk KTsKLQotCQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKLQkJCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwKLQkJCQkJCQkJCSAgIiAgICAgQU5EIE5PVCBFWElTVFMgKFxuIgotCQkJCQkJ CQkJICAiCQlTRUxFQ1QgMVxuIgotCQkJCQkJCQkJICAiCQlGUk9NIHBnX2NhdGFsb2cucGdfcHVi bGljYXRpb25fcmVsIHByXG4iCi0JCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFz cyBwY1xuIgotCQkJCQkJCQkJICAiCQlPTiBwci5wcnJlbGlkID0gcGMub2lkXG4iCi0JCQkJCQkJ CQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAnJXMnIEFORCBwci5wcnB1YmlkID0gcC5vaWQpXG4i LAotCQkJCQkJCQkJICBvaWQpOwotCi0JCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9S REVSIEJZIDE7Iik7CisJCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRh bG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iCisJCQkJCQkJCSAgIiAgICAg QU5EIE5PVCBFWElTVFMgKFxuIgorCQkJCQkJCQkgICIJCVNFTEVDVCAxXG4iCisJCQkJCQkJCSAg IgkJRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxuIgorCQkJCQkJCQkgICIJ CUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwY1xuIgorCQkJCQkJCQkgICIJCU9OIHByLnBycmVs aWQgPSBwYy5vaWRcbiIKKwkJCQkJCQkJICAiCQlXSEVSRSBwci5wcnJlbGlkID0gJyVzJyBBTkQg cHIucHJwdWJpZCA9IHAub2lkKVxuIgorCQkJCQkJCQkgICJPUkRFUiBCWSAxOyIsCisJCQkJCQkJ CSAgb2lkLCBvaWQsIG9pZCwgb2lkLCBvaWQpOworCQkJfQorCQkJZWxzZSBpZiAocHNldC5zdmVy c2lvbiA+PSAxNTAwMDApCisJCQl7CisJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJ CQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKKwkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJ CQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1Ymxp Y2F0aW9uIHBcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRp b25fbmFtZXNwYWNlIHBuIE9OIHAub2lkID0gcG4ucG5wdWJpZFxuIgorCQkJCQkJCQkgICIgICAg IEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwYyBPTiBwYy5yZWxuYW1lc3BhY2UgPSBwbi5wbm5z cGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHBjLm9pZCA9JyVzJyBhbmQgcGdfY2F0YWxvZy5wZ19y ZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgorCQkJCQkJCQkgICJVTklPTlxuIgorCQkJ CQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgorCQkJCQkJCQkgICIgICAgICwgcGdfZ2V0X2V4cHIo cHIucHJxdWFsLCBjLm9pZClcbiIKKwkJCQkJCQkJICAiICAgICAsIChDQVNFIFdIRU4gcHIucHJh dHRycyBJUyBOT1QgTlVMTCBUSEVOXG4iCisJCQkJCQkJCSAgIiAgICAgICAgIChTRUxFQ1Qgc3Ry aW5nX2FnZyhhdHRuYW1lLCAnLCAnKVxuIgorCQkJCQkJCQkgICIgICAgICAgICAgIEZST00gcGdf Y2F0YWxvZy5nZW5lcmF0ZV9zZXJpZXMoMCwgcGdfY2F0YWxvZy5hcnJheV91cHBlcihwci5wcmF0 dHJzOjpwZ19jYXRhbG9nLmludDJbXSwgMSkpIHMsXG4iCisJCQkJCQkJCSAgIiAgICAgICAgICAg ICAgICBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZVxuIgorCQkJCQkJCQkgICIgICAgICAgICAgV0hF UkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxuIgorCQkJ CQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKKwkJCQkJCQkJICAiRlJPTSBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cu cGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJpZFxuIgorCQkJCQkJCQkg ICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lkID0gcHIucHJyZWxpZFxu IgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIgorCQkJCQkJCQkgICJVTklP TlxuIgorCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgorCQkJCQkJCQkgICIgICAgICwgTlVM TFxuIgorCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFs b2cucGdfcHVibGljYXRpb24gcFxuIgorCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBB TkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgorCQkJCQkJ CQkgICJPUkRFUiBCWSAxOyIsCisJCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwgb2lkKTsKIAkJCX0K IAkJCWVsc2UKIAkJCXsKQEAgLTMwODcsMzQgKzMyMTUsOCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0 YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCQkgIG9pZCwgb2lkKTsKIAkJCX0K IAotCQkJcmVzdWx0ID0gUFNRTGV4ZWMoYnVmLmRhdGEpOwotCQkJaWYgKCFyZXN1bHQpCisJCQlp ZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25PclRhYmxlRGVzYygmYnVmLCAmY29udCwgXygiUHVi bGljYXRpb25zOiIpLCBmYWxzZSwgZmFsc2UpKQogCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwotCQkJ ZWxzZQotCQkJCXR1cGxlcyA9IFBRbnR1cGxlcyhyZXN1bHQpOwotCi0JCQlpZiAodHVwbGVzID4g MCkKLQkJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBfKCJQdWJsaWNhdGlvbnM6IikpOwot Ci0JCQkvKiBNaWdodCBiZSBhbiBlbXB0eSBzZXQgLSB0aGF0J3Mgb2sgKi8KLQkJCWZvciAoaSA9 IDA7IGkgPCB0dXBsZXM7IGkrKykKLQkJCXsKLQkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCAi ICAgIFwiJXNcIiIsCi0JCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDApKTsKLQotCQkJ CS8qIGNvbHVtbiBsaXN0IChpZiBhbnkpICovCi0JCQkJaWYgKCFQUWdldGlzbnVsbChyZXN1bHQs IGksIDIpKQotCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiICglcykiLAotCQkJCQkJCQkJ ICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMikpOwotCi0JCQkJLyogcm93IGZpbHRlciAoaWYgYW55 KSAqLwotCQkJCWlmICghUFFnZXRpc251bGwocmVzdWx0LCBpLCAxKSkKLQkJCQkJYXBwZW5kUFFF eHBCdWZmZXIoJmJ1ZiwgIiBXSEVSRSAlcyIsCi0JCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0 LCBpLCAxKSk7Ci0KLQkJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBidWYuZGF0YSk7Ci0J CQl9Ci0JCQlQUWNsZWFyKHJlc3VsdCk7CiAJCX0KIAogCQkvKgpAQCAtNjQ5MSw0OSArNjU5Myw2 IEBAIGxpc3RQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAlyZXR1cm4gdHJ1ZTsK IH0KIAotLyoKLSAqIEFkZCBmb290ZXIgdG8gcHVibGljYXRpb24gZGVzY3JpcHRpb24uCi0gKi8K LXN0YXRpYyBib29sCi1hZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYyhQUUV4cEJ1ZmZlciBidWYs IGNvbnN0IGNoYXIgKmZvb3Rlcm1zZywKLQkJCQkJCSAgIGJvb2wgYXNfc2NoZW1hLCBwcmludFRh YmxlQ29udGVudCAqY29uc3QgY29udCkKLXsKLQlQR3Jlc3VsdCAgICpyZXM7Ci0JaW50CQkJY291 bnQgPSAwOwotCWludAkJCWkgPSAwOwotCi0JcmVzID0gUFNRTGV4ZWMoYnVmLT5kYXRhKTsKLQlp ZiAoIXJlcykKLQkJcmV0dXJuIGZhbHNlOwotCWVsc2UKLQkJY291bnQgPSBQUW50dXBsZXMocmVz KTsKLQotCWlmIChjb3VudCA+IDApCi0JCXByaW50VGFibGVBZGRGb290ZXIoY29udCwgZm9vdGVy bXNnKTsKLQotCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQotCXsKLQkJaWYgKGFzX3NjaGVt YSkKLQkJCXByaW50ZlBRRXhwQnVmZmVyKGJ1ZiwgIiAgICBcIiVzXCIiLCBQUWdldHZhbHVlKHJl cywgaSwgMCkpOwotCQllbHNlCi0JCXsKLQkJCXByaW50ZlBRRXhwQnVmZmVyKGJ1ZiwgIiAgICBc IiVzLiVzXCIiLCBQUWdldHZhbHVlKHJlcywgaSwgMCksCi0JCQkJCQkJICBQUWdldHZhbHVlKHJl cywgaSwgMSkpOwotCi0JCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgMykpCi0JCQkJYXBwZW5k UFFFeHBCdWZmZXIoYnVmLCAiICglcykiLCBQUWdldHZhbHVlKHJlcywgaSwgMykpOwotCi0JCQlp ZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgMikpCi0JCQkJYXBwZW5kUFFFeHBCdWZmZXIoYnVmLCAi IFdIRVJFICVzIiwgUFFnZXR2YWx1ZShyZXMsIGksIDIpKTsKLQkJfQotCi0JCXByaW50VGFibGVB ZGRGb290ZXIoY29udCwgYnVmLT5kYXRhKTsKLQl9Ci0KLQlQUWNsZWFyKHJlcyk7Ci0JcmV0dXJu IHRydWU7Ci19Ci0KIC8qCiAgKiBcZFJwKwogICogRGVzY3JpYmVzIHB1YmxpY2F0aW9ucyBpbmNs dWRpbmcgdGhlIGNvbnRlbnRzLgpAQCAtNjcwNCw2ICs2NzYzLDEyIEBAIGRlc2NyaWJlUHVibGlj YXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQllbHNlCiAJCQkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIoJmJ1ZiwKIAkJCQkJCQkJCSAiLCBOVUxMLCBOVUxMIik7CisKKwkJCWlmIChwc2V0LnN2 ZXJzaW9uID49IDE5MDAwMCkKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLCBwcmV4 Y2VwdCIpOworCQkJZWxzZQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsIE5VTEwi KTsKKwogCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkgICJcbkZST00gcGdfY2F0 YWxvZy5wZ19jbGFzcyBjLFxuIgogCQkJCQkJCSAgIiAgICAgcGdfY2F0YWxvZy5wZ19uYW1lc3Bh Y2UgbixcbiIKQEAgLTY3MTIsMTEgKzY3NzcsOCBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25z dCBjaGFyICpwYXR0ZXJuKQogCQkJCQkJCSAgIiAgQU5EIGMub2lkID0gcHIucHJyZWxpZFxuIgog CQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iLCBwdWJpZCk7CiAKLQkJCWlmIChw c2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiICBB TkQgTk9UIHByLnByZXhjZXB0XG4iKTsKLQogCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIk9S REVSIEJZIDEsMiIpOwotCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBf KCJUYWJsZXM6IiksIGZhbHNlLCAmY29udCkpCisJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRp b25PclRhYmxlRGVzYygmYnVmLCAmY29udCwgXygiVGFibGVzOiIpLCB0cnVlLCBmYWxzZSkpCiAJ CQkJZ290byBlcnJvcl9yZXR1cm47CiAKIAkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkK QEAgLTY3MjgsOCArNjc5MCw4IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBh dHRlcm4pCiAJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX25h bWVzcGFjZSBwbiBPTiBuLm9pZCA9IHBuLnBubnNwaWRcbiIKIAkJCQkJCQkJICAiV0hFUkUgcG4u cG5wdWJpZCA9ICclcydcbiIKIAkJCQkJCQkJICAiT1JERVIgQlkgMSIsIHB1YmlkKTsKLQkJCQlp ZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIlRhYmxlcyBmcm9tIHNjaGVt YXM6IiksCi0JCQkJCQkJCQkJCQl0cnVlLCAmY29udCkpCisJCQkJaWYgKCFhZGRGb290ZXJUb1B1 YmxpY2F0aW9uT3JUYWJsZURlc2MoJmJ1ZiwgJmNvbnQsCisJCQkJCQkJCQkJCQkJICAgXygiVGFi bGVzIGZyb20gc2NoZW1hczoiKSwgdHJ1ZSwgdHJ1ZSkpCiAJCQkJCWdvdG8gZXJyb3JfcmV0dXJu OwogCQkJfQogCQl9CkBAIC02NzM5LDE0ICs2ODAxLDE0IEBAIGRlc2NyaWJlUHVibGljYXRpb25z KGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQl7CiAJCQkJLyogR2V0IHRoZSBleGNsdWRlZCB0YWJs ZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljYXRpb24gKi8KIAkJCQlwcmludGZQUUV4cEJ1ZmZl cigmYnVmLAotCQkJCQkJCQkgICJTRUxFQ1QgY29uY2F0KGMucmVsbmFtZXNwYWNlOjpyZWduYW1l c3BhY2UsICcuJywgYy5yZWxuYW1lKVxuIgorCQkJCQkJCQkgICJTRUxFQ1QgYy5yZWxuYW1lc3Bh Y2U6OnJlZ25hbWVzcGFjZSwgYy5yZWxuYW1lLCBOVUxMLCBOVUxMXG4iCiAJCQkJCQkJCSAgIkZS T00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjXG4iCiAJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKIAkJCQkJ CQkJICAiV0hFUkUgcHIucHJwdWJpZCA9ICclcydcbiIKIAkJCQkJCQkJICAiICBBTkQgcHIucHJl eGNlcHRcbiIKIAkJCQkJCQkJICAiT1JERVIgQlkgMSIsIHB1YmlkKTsKLQkJCQlpZiAoIWFkZEZv b3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIkV4Y2VwdCB0YWJsZXM6IiksCi0JCQkJCQkJ CQkJCQl0cnVlLCAmY29udCkpCisJCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uT3JUYWJs ZURlc2MoJmJ1ZiwgJmNvbnQsCisJCQkJCQkJCQkJCQkJICAgXygiRXhjZXB0IHRhYmxlczoiKSwg dHJ1ZSwgZmFsc2UpKQogCQkJCQlnb3RvIGVycm9yX3JldHVybjsKIAkJCX0KIAkJfQpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCmluZGV4IDVkYjg4MTJjMGQ5Li41NjAwMmNmMWNjOSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYwpAQCAtMjI3Miw2ICsyMjcyLDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50 IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMiLCAiVEFCTEVTIElOIFND SEVNQSIsICJUQUJMRSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIpKQogCQlDT01QTEVURV9XSVRIKCJF WENFUFQgVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIs IE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lU SCgiRVhDRVBUICgiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIs IE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9R VUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVS IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENF UFQiLCAiVEFCTEUiKSkKQEAgLTM2MDIsNyArMzYwNCw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRz KGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIpKQogCQlDT01QTEVURV9XSVRIKCJJTiBTQ0hF TUEiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFu eSwgIkZPUiIsICJUQUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykp Ci0JCUNPTVBMRVRFX1dJVEgoIldIRVJFICgiLCAiV0lUSCAoIik7CisJCUNPTVBMRVRFX1dJVEgo IkVYQ0VQVCAoIiwgIldIRVJFICgiLCAiV0lUSCAoIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBQ VUJMSUNBVElPTiA8bmFtZT4gRk9SIFRBQkxFIiB3aXRoICI8dGFibGU+LCAuLi4iICovCiAJZWxz ZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAi VEFCTEUiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zf dGFibGVzKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24u aCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAppbmRleCAwMjI0NjdmYjQ1 Yy4uMmExZGM0OGNjYjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKQEAgLTE4 MSw3ICsxODEsOCBAQCBleHRlcm4gT2lkCUdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24o T2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAogZXh0ZXJuIGJvb2wgaXNfcHVibGlzaGFibGVf cmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIGV4dGVybiBib29sIGlzX3NjaGVtYV9wdWJsaWNhdGlv bihPaWQgcHViaWQpOwogZXh0ZXJuIGJvb2wgY2hlY2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KFB1 YmxpY2F0aW9uICpwdWIsIE9pZCByZWxpZCwKLQkJCQkJCQkJCQlNZW1vcnlDb250ZXh0IG1jeHQs IEJpdG1hcHNldCAqKmNvbHMpOworCQkJCQkJCQkJCU1lbW9yeUNvbnRleHQgbWN4dCwgQml0bWFw c2V0ICoqY29scywKKwkJCQkJCQkJCQlib29sICpleGNlcHRfY29sdW1ucyk7CiBleHRlcm4gT2Jq ZWN0QWRkcmVzcyBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlv blJlbEluZm8gKnByaSwKIAkJCQkJCQkJCQkJICBib29sIGlmX25vdF9leGlzdHMpOwogZXh0ZXJu IEJpdG1hcHNldCAqcHViX2NvbGxpc3RfdmFsaWRhdGUoUmVsYXRpb24gdGFyZ2V0cmVsLCBMaXN0 ICpjb2x1bW5zKTsKQEAgLTE5MSw2ICsxOTIsNyBAQCBleHRlcm4gT2JqZWN0QWRkcmVzcyBwdWJs aWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlkLAogZXh0ZXJuIEJpdG1h cHNldCAqcHViX2NvbGxpc3RfdG9fYml0bWFwc2V0KEJpdG1hcHNldCAqY29sdW1ucywgRGF0dW0g cHViY29scywKIAkJCQkJCQkJCQkgICBNZW1vcnlDb250ZXh0IG1jeHQpOwogZXh0ZXJuIEJpdG1h cHNldCAqcHViX2Zvcm1fY29sc19tYXAoUmVsYXRpb24gcmVsYXRpb24sCi0JCQkJCQkJCQlQdWJs aXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xzX3R5cGUpOworCQkJCQkJCQkJUHVibGlzaEdl bmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29sc190eXBlLAorCQkJCQkJCQkJQml0bWFwc2V0ICpleGNl cHRfY29scyk7CiAKICNlbmRpZgkJCQkJCQkvKiBQR19QVUJMSUNBVElPTl9IICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAppbmRleCBlN2Q3ZjNiYTg1Yy4uNmEyMTY4 ZmMzMmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVs LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaApAQCAtMzEs MTEgKzMxLDEyIEBAIENBVEFMT0cocGdfcHVibGljYXRpb25fcmVsLDYxMDYsUHVibGljYXRpb25S ZWxSZWxhdGlvbklkKQogCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KIAlPaWQJCQlwcnB1YmlkIEJL SV9MT09LVVAocGdfcHVibGljYXRpb24pOyAvKiBPaWQgb2YgdGhlIHB1YmxpY2F0aW9uICovCiAJ T2lkCQkJcHJyZWxpZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsJLyogT2lkIG9mIHRoZSByZWxhdGlv biAqLwotCWJvb2wJCXByZXhjZXB0IEJLSV9ERUZBVUxUKGYpOwkvKiBleGNsdWRlIHRoZSByZWxh dGlvbiAqLworCWJvb2wJCXByZXhjZXB0IEJLSV9ERUZBVUxUKGYpOwkvKiBleGNsdWRlIHRoZSBy ZWxhdGlvbiBvciBjb2x1bW5zICovCiAKICNpZmRlZglDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlh YmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCXBnX25vZGVfdHJlZSBwcnF1YWw7CQkv KiBxdWFsaWZpY2F0aW9ucyAqLwotCWludDJ2ZWN0b3IJcHJhdHRyczsJCS8qIGNvbHVtbnMgdG8g cmVwbGljYXRlICovCisJaW50MnZlY3RvcglwcmF0dHJzOwkJLyogY29sdW1ucyB0byByZXBsaWNh dGUgb3IgZXhjbHVkZSB0bworCQkJCQkJCQkgKiByZXBsaWNhdGUgKi8KICNlbmRpZgogfSBGb3Jt RGF0YV9wZ19wdWJsaWNhdGlvbl9yZWw7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJs aWNhdGlvbi5vdXQKaW5kZXggOWJmYzQzMzQ0ZDUuLjliMTY3MzAzZTU0IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMjEyNSw2ICsyMTI1LDk0IEBAIFNF VCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldDsKIERST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKIERST1AgVEFCTEUgcHViX3NjaDEu dGJsMjsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gVGVzdCBFWENFUFQgY29sdW1ucyBmb3IgQ1JFQVRFIFBVQkxJQ0FUSU9OCitT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3Rf ZXhjZXB0MSAoYSBpbnQgTk9UIE5VTEwsIGIgaW50LCBjIGludCBOT1QgTlVMTCwgZCBpbnQpOwor Q1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDIgKGEgaW50LCBiIGludCwgYyBp bnQsIGQgaW50KTsKKy0tIFZlcmlmeSB0aGF0IHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgd2l0aCBF WENFUFQKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBGT1IgVEFCTEUgcHViX3Rl c3RfZXhjZXB0MSwgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MiBFWENFUFQgKGIsIGMpOworU0VM RUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXMgV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHVi X2V4Y2VwdCc7CisgICAgcHVibmFtZSAgICAgfCBzY2hlbWFuYW1lIHwgICAgdGFibGVuYW1lICAg ICB8IGF0dG5hbWVzICB8IHJvd2ZpbHRlciAKKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHRlc3RwdWJfZXhj ZXB0IHwgcHVibGljICAgICB8IHB1Yl90ZXN0X2V4Y2VwdDEgfCB7YSxiLGMsZH0gfCAKKyB0ZXN0 cHViX2V4Y2VwdCB8IHB1Yl9zY2gxICAgfCBwdWJfdGVzdF9leGNlcHQyIHwge2EsZH0gICAgIHwg CisoMiByb3dzKQorCistLSBDYW5ub3QgdXNlIEVYQ0VQVCBjb2wtbGlzdHMgY29tYmluZWQgd2l0 aCBUQUJMRVMgSU4gU0NIRU1BCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZP UiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2gxLCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQ VCAoYiwgYyk7CitFUlJPUjogIGNhbm5vdCB1c2UgY29sdW1uIGxpc3QgZm9yIHJlbGF0aW9uICJw dWJsaWMucHViX3Rlc3RfZXhjZXB0MSIgaW4gcHVibGljYXRpb24gInRlc3RwdWJfZXhjZXB0MiIK K0RFVEFJTDogIENvbHVtbiBsaXN0cyBjYW5ub3QgYmUgc3BlY2lmaWVkIGluIHB1YmxpY2F0aW9u cyBjb250YWluaW5nIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGVsZW1lbnRzLgorLS0gU3ludGF4IGVy cm9yIEVYQ0VQVCB3aXRob3V0IGEgY29sLWxpc3QKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi X2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUOworRVJST1I6ICB0YWJs ZSB3aXRob3V0IGNvbHVtbiBsaXN0IGNhbm5vdCB1c2UgRVhDRVBUIGNsYXVzZQorTElORSAxOiBD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRSBwdWJfdGVzdF9leGNl cHQuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor LS0gVmVyaWZ5IG9rIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIFNFVCAuLi4gRVhDRVBUIChjb2wt bGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IFNFVCBUQUJMRSBwdWJfdGVz dF9leGNlcHQxIEVYQ0VQVCAoYSwgYiksIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDI7CitcZFJw KyB0ZXN0cHViX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy IHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IG5vbmUgICAgICAgICAgICAgIHwgZgorVGFibGVzOgorICAgICJwdWJfc2NoMS5wdWJfdGVzdF9l eGNlcHQyIgorICAgICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIgRVhDRVBUIChhLCBiKQorCist LSBWZXJpZnkgZmFpbHMgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJPUCAuLi4gRVhDRVBUIChj b2wtbGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IERST1AgVEFCTEUgcHVi X3Rlc3RfZXhjZXB0MSBFWENFUFQgKGEsIGIpOworRVJST1I6ICBjb2x1bW4gbGlzdCBtdXN0IG5v dCBiZSBzcGVjaWZpZWQgaW4gQUxURVIgUFVCTElDQVRJT04gLi4uIERST1AKKy0tIFZlcmlmeSBv ayAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDE7CistLSBWZXJpZnkgb2sgLSBBTFRF UiBQVUJMSUNBVElPTiAuLi4gQUREIC4uLiBFWENFUFQgKGNvbC1saXN0KQorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9leGNlcHQgQUREIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChj LCBkKTsKK1xkUnArIHRlc3RwdWJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9leGNlcHQKKyAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwg VHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitUYWJsZXM6CisgICAgInB1Yl9zY2gx LnB1Yl90ZXN0X2V4Y2VwdDIiCisgICAgInB1YmxpYy5wdWJfdGVzdF9leGNlcHQxIiBFWENFUFQg KGMsIGQpCisKKy0tIFZlcmlmeSBmYWlscyAtIEVYQ0VQVCBjb2wtbGlzdCBjYW5ub3QgY29udGFp biBSSSBjb2xzICh3aGVuIHVzaW5nIFJJIEZVTEwpCitBTFRFUiBUQUJMRSBwdWJfdGVzdF9leGNl cHQxIFJFUExJQ0EgSURFTlRJVFkgRlVMTDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBh ID0gMyBXSEVSRSBhID0gMTsKK0VSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAicHViX3Rlc3Rf ZXhjZXB0MSIKK0RFVEFJTDogIENvbHVtbiBsaXN0IHVzZWQgYnkgdGhlIHB1YmxpY2F0aW9uIGRv ZXMgbm90IGNvdmVyIHRoZSByZXBsaWNhIGlkZW50aXR5LgorLS0gVmVyaWZ5IGZhaWxzIC0gRVhD RVBUIGNvbC1saXN0IGNhbm5vdCBjb250YWluIFJJIGNvbHMgKHdoZW4gdXNpbmcgSU5ERVgpCitD UkVBVEUgVU5JUVVFIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4IE9OIHB1Yl90ZXN0X2V4 Y2VwdDEgKGEsIGMpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5U SVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4OworVVBEQVRFIHB1Yl90ZXN0 X2V4Y2VwdDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRh YmxlICJwdWJfdGVzdF9leGNlcHQxIgorREVUQUlMOiAgQ29sdW1uIGxpc3QgdXNlZCBieSB0aGUg cHVibGljYXRpb24gZG9lcyBub3QgY292ZXIgdGhlIHJlcGxpY2EgaWRlbnRpdHkuCitEUk9QIElO REVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4OworLS0gVmVyaWZ5IG9rIC0gbm8gY2xhc2ggYmV0 d2VlbiBSSSBjb2xzIGFuZCB0aGUgRVhDRVBUIGNvbC1saXN0CitDUkVBVEUgVU5JUVVFIElOREVY IHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHggT04gcHViX3Rlc3RfZXhjZXB0MSAoYSk7CitBTFRFUiBU QUJMRSBwdWJfdGVzdF9leGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggcHViX3Rl c3RfZXhjZXB0MV9hX2lkeDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVS RSBhID0gMTsKKy0tIFZlcmlmeSBkZXNjcmlwdGlvbiBvZiBhIHRhYmxlIHdpdGggcHVibGljYXRp b24gd2l0aCBFWENFUFQgY29sLWxpc3QKK1xkKyBwdWJfdGVzdF9leGNlcHQxCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIKKyBDb2x1 bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSB8 IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAg ICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAorIGMg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgfCBwbGFpbiAg IHwgICAgICAgICAgICAgIHwgCisgZCAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAg InB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHgiIFVOSVFVRSwgYnRyZWUgKGEpIFJFUExJQ0EgSURFTlRJ VFkKK1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9leGNlcHQiIEVYQ0VQVCAoYywgZCkKK05v dC1udWxsIGNvbnN0cmFpbnRzOgorICAgICJwdWJfdGVzdF9leGNlcHQxX2Ffbm90X251bGwiIE5P VCBOVUxMICJhIgorICAgICJwdWJfdGVzdF9leGNlcHQxX2Nfbm90X251bGwiIE5PVCBOVUxMICJj IgorCistLSBjbGVhbnVwCitEUk9QIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitEUk9Q IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0OworRFJPUCBUQUJMRSBwdWJfdGVzdF9leGNlcHQx OworRFJPUCBUQUJMRSBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOwogRFJPUCBTQ0hFTUEgcHVi X3NjaDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogLS0gVGVzdCB0aGF0IHRoZSBJTlNF UlQgT04gQ09ORkxJQ1QgY29tbWFuZCBjb3JyZWN0bHkgY2hlY2tzIFJFUExJQ0EgSURFTlRJVFkK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCBmYmUxOWE2OTU5Yi4uYTY5YWRm ODhlYjcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTEzMTgsNiArMTMx OCw2MSBAQCBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CiBEUk9QIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CiBEUk9QIFRBQkxF IHB1Yl9zY2gxLnRibDI7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gVGVzdCBFWENFUFQgY29sdW1ucyBmb3IgQ1JFQVRFIFBV QkxJQ0FUSU9OCisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBU QUJMRSBwdWJfdGVzdF9leGNlcHQxIChhIGludCBOT1QgTlVMTCwgYiBpbnQsIGMgaW50IE5PVCBO VUxMLCBkIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MiAoYSBp bnQsIGIgaW50LCBjIGludCwgZCBpbnQpOworCistLSBWZXJpZnkgdGhhdCBwdWJsaWNhdGlvbiBp cyBjcmVhdGVkIHdpdGggRVhDRVBUCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQg Rk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEsIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDIgRVhD RVBUIChiLCBjKTsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVzIFdIRVJFIHB1 Ym5hbWUgPSAndGVzdHB1Yl9leGNlcHQnOworCistLSBDYW5ub3QgdXNlIEVYQ0VQVCBjb2wtbGlz dHMgY29tYmluZWQgd2l0aCBUQUJMRVMgSU4gU0NIRU1BCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9leGNlcHQyIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2gxLCBUQUJMRSBwdWJfdGVz dF9leGNlcHQxIEVYQ0VQVCAoYiwgYyk7CisKKy0tIFN5bnRheCBlcnJvciBFWENFUFQgd2l0aG91 dCBhIGNvbC1saXN0CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJM RSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVDsKKworLS0gVmVyaWZ5IG9rIC0gQUxURVIgUFVCTElD QVRJT04gLi4uIFNFVCAuLi4gRVhDRVBUIChjb2wtbGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZXhjZXB0IFNFVCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYSwgYiksIHB1 Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDI7CitcZFJwKyB0ZXN0cHViX2V4Y2VwdAorCistLSBWZXJp ZnkgZmFpbHMgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJPUCAuLi4gRVhDRVBUIChjb2wtbGlz dCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IERST1AgVEFCTEUgcHViX3Rlc3Rf ZXhjZXB0MSBFWENFUFQgKGEsIGIpOworCistLSBWZXJpZnkgb2sgLSBBTFRFUiBQVUJMSUNBVElP TiAuLi4gRFJPUAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgRFJPUCBUQUJMRSBw dWJfdGVzdF9leGNlcHQxOworCistLSBWZXJpZnkgb2sgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4g QUREIC4uLiBFWENFUFQgKGNvbC1saXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNl cHQgQUREIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChjLCBkKTsKK1xkUnArIHRlc3Rw dWJfZXhjZXB0CisKKy0tIFZlcmlmeSBmYWlscyAtIEVYQ0VQVCBjb2wtbGlzdCBjYW5ub3QgY29u dGFpbiBSSSBjb2xzICh3aGVuIHVzaW5nIFJJIEZVTEwpCitBTFRFUiBUQUJMRSBwdWJfdGVzdF9l eGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgRlVMTDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNF VCBhID0gMyBXSEVSRSBhID0gMTsKKworLS0gVmVyaWZ5IGZhaWxzIC0gRVhDRVBUIGNvbC1saXN0 IGNhbm5vdCBjb250YWluIFJJIGNvbHMgKHdoZW4gdXNpbmcgSU5ERVgpCitDUkVBVEUgVU5JUVVF IElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEgKGEsIGMp OworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElO REVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4OworVVBEQVRFIHB1Yl90ZXN0X2V4Y2VwdDEgU0VU IGEgPSAzIFdIRVJFIGEgPSAxOworRFJPUCBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeDsK KworLS0gVmVyaWZ5IG9rIC0gbm8gY2xhc2ggYmV0d2VlbiBSSSBjb2xzIGFuZCB0aGUgRVhDRVBU IGNvbC1saXN0CitDUkVBVEUgVU5JUVVFIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHggT04g cHViX3Rlc3RfZXhjZXB0MSAoYSk7CitBTFRFUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIFJFUExJ Q0EgSURFTlRJVFkgVVNJTkcgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeDsKK1VQREFURSBw dWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsKKworLS0gVmVyaWZ5IGRlc2Ny aXB0aW9uIG9mIGEgdGFibGUgd2l0aCBwdWJsaWNhdGlvbiB3aXRoIEVYQ0VQVCBjb2wtbGlzdAor XGQrIHB1Yl90ZXN0X2V4Y2VwdDEKKworLS0gY2xlYW51cAorRFJPUCBJTkRFWCBwdWJfdGVzdF9l eGNlcHQxX2FfaWR4OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDsKK0RST1AgVEFC TEUgcHViX3Rlc3RfZXhjZXB0MTsKK0RST1AgVEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0 MjsKIERST1AgU0NIRU1BIHB1Yl9zY2gxOwogCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCmluZGV4IGU4YTExN2YzNDIxLi5lMDEwZGUxZTFkMCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCisrKyBiL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZApAQCAtNDMsNiArNDMsNyBAQCB0ZXN0cyArPSB7 CiAgICAgICAndC8wMzRfdGVtcG9yYWwucGwnLAogICAgICAgJ3QvMDM1X2NvbmZsaWN0cy5wbCcs CiAgICAgICAndC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsJywKKyAgICAgICd0LzAz N19yZXBfY2hhbmdlc19leGNlcHRfY29sbGlzdC5wbCcsCiAgICAgICAndC8xMDBfYnVncy5wbCcs CiAgICAgXSwKICAgfSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19y ZXBfY2hhbmdlc19leGNlcHRfY29sbGlzdC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz N19yZXBfY2hhbmdlc19leGNlcHRfY29sbGlzdC5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uNzllNjNjMGY0NDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzdfcmVwX2NoYW5nZXNfZXhjZXB0X2NvbGxpc3QucGwKQEAgLTAsMCAr MSwxOTAgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisKKyMgTG9naWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBmb3IgRVhDRVBU IChjb2x1bW4tbGlzdCkgcHVibGljYXRpb25zCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwor dXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFsaXplIHB1Ymxpc2hlciBub2RlCitteSAk bm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hl cicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwn KTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQor bXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vi c2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICds b2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKKworIyBJbml0aWFsIHNldHVwCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSAoCisJQ1JFQVRFIFND SEVNQSBzY2gxOworCUNSRUFURSBUQUJMRSB0YWIxIChhIGludCwgYiBpbnQgTk9UIE5VTEwsIGMg aW50KTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50YWIxIChhIGludCwgYiBpbnQsIGMgaW50KTsKKwlD UkVBVEUgVEFCTEUgdGFiMiAoYSBpbnQsIGIgaW50LCBjIGludCk7CisJQ1JFQVRFIFRBQkxFIHRh YjMgKGEgaW50LCBiZ2VuIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBj Z2VuIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RPUkVEKTsKKwlDUkVBVEUgVEFC TEUgdGFiNCAoYSBpbnQsIGJnZW4gaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9S RUQsIGNnZW4gaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBTVE9SRUQpOworCUNSRUFU RSBUQUJMRSB0YWI1IChhIGludCwgYiBpbnQsIGMgaW50KTsKKwlDUkVBVEUgVEFCTEUgdGFiNiAo YWdlbiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoMSkgU1RPUkVELCBiZ2VuIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTICgyKSBTVE9SRUQpOworCUlOU0VSVCBJTlRPIHRhYjEgVkFMVUVTICgxLCAy LCAzKTsKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYjEgVkFMVUVTICgxLCAyLCAzKTsKKwlDUkVBVEUg UFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgRk9SIFRBQkxFIHRhYjEgRVhDRVBUIChhKSwgc2NoMS50 YWIxIEVYQ0VQVCAoYiwgYyk7CispKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAor CSdwb3N0Z3JlcycsIHFxICgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRFIFRBQkxFIHRh YjEgKGEgaW50LCBiIGludCBOT1QgTlVMTCwgYyBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnRh YjEgKGEgaW50LCBiIGludCwgYyBpbnQpOworCUNSRUFURSBUQUJMRSB0YWIyIChhIGludCwgYiBp bnQsIGMgaW50KTsKKwlDUkVBVEUgVEFCTEUgdGFiMyAoYSBpbnQsIGJnZW4gaW50LCBjZ2VuIGlu dCk7CisJQ1JFQVRFIFRBQkxFIHRhYjQgKGEgaW50LCBiZ2VuIGludCwgY2dlbiBpbnQpOworCUNS RUFURSBUQUJMRSB0YWI1IChhIGludCwgYiBpbnQsIGMgaW50LCBkIGludCk7CisJQ1JFQVRFIFRB QkxFIHRhYjYgKGFnZW4gaW50LCBiZ2VuIGludCk7CispKTsKKworIyBTZXR1cCBsb2dpY2FsIHJl cGxpY2F0aW9uCitteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5z dHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViX2NvbCBDT05ORUNUSU9OICck cHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIgorKTsKKyRub2RlX3N1 YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3Rh cF9zdWJfY29sJyk7CisKKyMgVGVzdCBpbml0aWFsIHN5bmMKK215ICRyZXN1bHQgPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMSIpOwor aXMoJHJlc3VsdCwgcXEofDJ8MyksCisJJ2NoZWNrIGluaXRpYWwgc3luYyBmb3IgRVhDRVBUIChj b2x1bW4tbGlzdCkgcHVibGljYXRpb24nKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS50YWIxIik7CitpcygkcmVz dWx0LCBxcSgxfHwpLAorCSdjaGVjayBpbml0aWFsIHN5bmMgZm9yIEVYQ0VQVCAoY29sdW1uLWxp c3QpIHB1YmxpY2F0aW9uJyk7CisKKyMgVGVzdCBpbmNyZW1lbnRhbCBjaGFuZ2VzCiskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSAoCisJSU5TRVJUIElOVE8gdGFi MSBWQUxVRVMgKDQsIDUsIDYpOworCUlOU0VSVCBJTlRPIHNjaDEudGFiMSBWQUxVRVMgKDQsIDUs IDYpOworKSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29s Jyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJTRUxFQ1QgKiBGUk9NIHRhYjEgT1JERVIgQlkgYSIpOworaXMoICRyZXN1bHQsIHFxKHwyfDMK K3w1fDYpLAorCSdjaGVjayBpbmNyZW1lbnRhbCBpbnNlcnQgZm9yIEVYQ0VQVCAoY29sdW1uLWxp c3QpIHB1YmxpY2F0aW9uJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gc2NoMS50YWIxIE9SREVSIEJZIGEiKTsKK2lz KCAkcmVzdWx0LCBxcSgxfHwKKzR8fCksICdjaGVjayBpbmNyZW1lbnRhbCBpbnNlcnQgZm9yIEVY Q0VQVCAoY29sdW1uLWxpc3QpIHB1YmxpY2F0aW9uJyk7CisKKyMgVGVzdCBmb3IgdXBkYXRlCisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFVO SVFVRSBJTkRFWCBiX2lkeCBPTiB0YWIxIChiKTsKKwlBTFRFUiBUQUJMRSB0YWIxIFJFUExJQ0Eg SURFTlRJVFkgVVNJTkcgSU5ERVggYl9pZHg7CispKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBVTklRVUUgSU5ERVggYl9pZHggT04gdGFi MSAoYik7CisJQUxURVIgVEFCTEUgdGFiMSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIGJf aWR4OworCVVQREFURSB0YWIxIFNFVCBhID0gOTkxLCBiID0gOTkyLCBjID0gOTkzIFdIRVJFIGEg PSAxOworKSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29s Jyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJTRUxFQ1QgKiBGUk9NIHRhYjEgIE9SREVSIEJZIGEiKTsKK2lzKCAkcmVzdWx0LCBxcSh8NXw2 Cit8OTkyfDk5MyksCisJJ2NoZWNrIHVwZGF0ZSBmb3IgRVhDRVBUIChjb2x1bW4tbGlzdCkgcHVi bGljYXRpb24nKTsKKworIyBUZXN0IEFMVEVSIFBVQkxJQ0FUSU9OIGZvciBFWENFUFQgKGNvbHVt bi1saXN0KQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIg UFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgQUREIFRBQkxFIHRhYjIgRVhDRVBUKGIpIik7Ciskbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9O IHRhcF9zdWJfY29sIFJFRlJFU0ggUFVCTElDQVRJT04iKTsKKyRub2RlX3N1YnNjcmliZXItPndh aXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWJfY29sJyk7 CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyB0 YWIyIFZBTFVFUyAoMSwgMiwgMykiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1 cCgndGFwX3N1Yl9jb2wnKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMiIpOworaXMoJHJlc3VsdCwgcXEoMXx8Myks ICdjaGVjayBhbHRlciBwdWJsaWNhdGlvbiB3aXRoIEVYQ0VQVCAoY29sdW1uLWxpc3QpJyk7CisK KyMgVGVzdCBmb3IgcHVibGljYXRpb24gY3JlYXRlZCB3aXRoICdwdWJsaXNoX2dlbmVyYXRlZF9j b2x1bW5zJyBhcyAnc3RvcmVkJyBvbgorIyB0YWJsZSAndGFiMycgYW5kIHdpdGggY29sdW1uICdi Z2VuJyBpbiBjb2x1bW4gbGlzdCB3aXRoIEVYQ0VQVCBjbGF1c2UuCiskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcShJTlNFUlQgSU5UTyB0YWIzIFZBTFVFUyAoMSk7 CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgU0VUIChwdWJsaXNoX2dlbmVyYXRlZF9j b2x1bW5zID0gc3RvcmVkKTsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBTRVQgVEFC TEUgdGFiMyBFWENFUFQoYmdlbik7CispKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wgUkVGUkVTSCBQVUJM SUNBVElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMo JG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjMgVkFMVUVTICgyKSIpOworJG5vZGVf cHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9Cisg ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0 YWIzIE9SREVSIEJZIGEiKTsKKworIyBjb2x1bW4gJ2JnZW4nIGlzIHNwZWNpZmllZCBpbiBFWENF UFQgKGNvbHVtbS1saXN0KS4gU28gZGF0YSBjb3JyZXNwb25kaW5nIHRvCisjICdiZ2VuJyBpcyBu b3QgcmVwbGljYXRlZC4gUGFyYW1ldGVyICdwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBpcyBz ZXQgYXMKKyMgJ3N0b3JlZCcsIHNvIGRhdGEgY29ycmVzcG9uZGluZyB0byBjb2x1bW4gJ2NnZW4n IGlzIHJlcGxpY2F0ZWQuCitpcyggJHJlc3VsdCwgcXEoMXx8MworMnx8NiksCisJJ2NoZWNrIHB1 YmxpY2F0aW9uKHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgYXMgc3RvcmVkKSB3aXRoIGdlbmVy YXRlZCBjb2x1bW5zIGFuZCBFWENFUFQgKGNvbHVtbi1saXN0KScKKyk7CisKKyMgVGVzdCBmb3Ig cHVibGljYXRpb24gY3JlYXRlZCB3aXRoICdwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBhcyAn bm9uZScgb24KKyMgdGFibGUgd2l0aCBnZW5lcmF0ZWQgY29sdW1ucyBhbmQgY29sdW1uIGxpc3Qg c3BlY2lmaWVkIHdpdGggRVhDRVBUIGNsYXVzZS4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KAorCSdwb3N0Z3JlcycsIHFxKAorCUlOU0VSVCBJTlRPIHRhYjQgVkFMVUVTICgxKTsKKwlBTFRF UiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBTRVQgKHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMg PSBub25lKTsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBTRVQgVEFCTEUgdGFiNCBF WENFUFQoYmdlbik7CispKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNBVElPTiIp OworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVi bGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjQgVkFMVUVTICgyKSIpOworJG5vZGVfcHVibGlzaGVy LT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9CisgICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWI0IE9SREVS IEJZIGEiKTsKKworIyBjb2x1bW4gJ2JnZW4nIGlzIHNwZWNpZmllZCBpbiBFWENFUFQgKGNvbHVt bS1saXN0KS4gU28gZGF0YSBjb3JyZXNwb25kaW5nIHRvCisjICdiZ2VuJyBpcyBub3QgcmVwbGlj YXRlZC4gUGFyYW1ldGVyICdwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBpcyBzZXQgYXMKKyMg J25vbmUnLCBzbyBkYXRhIGNvcnJlc3BvbmRpbmcgdG8gY29sdW1uICdjZ2VuJyBpcyBub3QgcmVw bGljYXRlZC4KK2lzKCAkcmVzdWx0LCBxcSgxfHwKKzJ8fCksCisJJ2NoZWNrIHB1YmxpY2F0aW9u KHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgYXMgbm9uZSkgd2l0aCBnZW5lcmF0ZWQgY29sdW1u cyBhbmQgRVhDRVBUIChjb2x1bW4tbGlzdCknCispOworCisjIEFsbCBjb2x1bW5zIGFyZSBwcmVz ZW50IGluIEVYQ0VQVCAoY29sdW1uLWxpc3QpCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgK KwkncG9zdGdyZXMnLCBxcSgKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBTRVQgVEFC TEUgdGFiNSBFWENFUFQoYSwgYiwgYyk7CisJSU5TRVJUIElOVE8gdGFiNSBWQUxVRVMgKDEsIDIs IDMpOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxU RVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfY29sIFJFRlJFU0ggUFVCTElDQVRJT04iKTsKKyRub2Rl X3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwg J3RhcF9zdWJfY29sJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJJTlNFUlQgSU5UTyB0YWI1IFZBTFVFUyAoNCwgNSwgNikiKTsKKyRub2RlX3B1Ymxpc2hlci0+ d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiNSIpOworaXMoJHJl c3VsdCwgcXEoKSwgJ2FsbCBjb2x1bW5zIGFyZSBzcGVjaWZpZWQgaW4gRVhDRVBUIChjb2x1bW4t bGlzdCknKTsKKworIyBBZGQgYSBuZXcgY29sdW1uIGFuZCBjaGVjayB0aGF0IGl0IGlzIHJlcGxp Y2F0ZWQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUFM VEVSIFRBQkxFIHRhYjUgQUREIENPTFVNTiBkIGludDsKKykpOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiNSBWQUxVRVMgKDcsIDgsIDks IDEwKSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcp OworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJT RUxFQ1QgKiBGUk9NIHRhYjUiKTsKK2lzKCRyZXN1bHQsIHFxKHx8fDEwKSwgJ25ld2x5IGFkZGVk IGNvbHVtbiBhcmUgaXMgcmVwbGljYXRlZCcpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zdG9wKCdm YXN0Jyk7Ciskbm9kZV9wdWJsaXNoZXItPnN0b3AoJ2Zhc3QnKTsKKworZG9uZV90ZXN0aW5nKCk7 Ci0tIAoyLjM0LjEKCg== --0000000000000ba556063e07eff7--