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 1rSSKU-00DsBK-4M for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jan 2024 01:45:27 +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 1rSSKR-000uNm-0X for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jan 2024 01:45:23 +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 1rSSKQ-000uNe-1B for pgsql-hackers@lists.postgresql.org; Wed, 24 Jan 2024 01:45:22 +0000 Received: from mail-il1-x12d.google.com ([2607:f8b0:4864:20::12d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rSSKE-0033LV-FQ for pgsql-hackers@postgresql.org; Wed, 24 Jan 2024 01:45:20 +0000 Received: by mail-il1-x12d.google.com with SMTP id e9e14a558f8ab-361a1f8c682so16731245ab.1 for ; Tue, 23 Jan 2024 17:45:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1706060709; x=1706665509; darn=postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=W52Xo6/rNktMZ9FXPAMmmx6OdPbW44y1KT+73Z0/v0Y=; b=t6KIt8N2hfrNnnFpCAX8FNcYZyv/m+Ra+vYCaHEXGtGI50cio08Me+ECqdML+0ihZW JqsxQbFZ39b2W7MnSNzHG95bmWb+Tfd4AXOiWidartBgwbJf40BbV1OGJe6Ch1wPiJb7 gPmx7QNgyEibqZkTTe1swBiW3Zx8nx/FogzbenSCF+WXiUvLTgcUgFZWYys8IhZNb373 XWMZB9EcorPsCCiFEzrn3pZ8SotlkpzSuGb0OAalF2ThgYvr1TVWYKKLb1jPvm6WjalQ MEhXEh8TgKPSoVLbh4MhZHNeTXJoTbT5NpcUTLhb5r7ZquwODZxXsfkq17cymPawBNkG hdrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706060709; x=1706665509; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=W52Xo6/rNktMZ9FXPAMmmx6OdPbW44y1KT+73Z0/v0Y=; b=nQOZWrTGBjRLO6+uvu0kLSzmQIxUDYHEZj04xnXOU3QrR//y/ng9vhhQHGKyuntNqS OAZjs/a9X8FRtTq8YzSjklE1HKcIxAAC6mI0RSUvQAk+1eQJM7PUbieVu6ifevsalssh WvuJIHqvCOxP1XQgthPaiYFEUNr2cDlrmySqoPPSGIMx0A/cRAGQyOk03+7ua48CHcaP g4gbyRKwAAj7xit1sDk/6bvcU9+/XixPqTzUdJD7OFVF6mr7WyZb5HcDoTXglHlHUqmI DbvZPeqM2s435+2finUGclNfnK2DUd8wMpLdiY0Q8hDlj/x2L+y1ekjxs9eq2MhoS2ir kHGA== X-Gm-Message-State: AOJu0YxQmtDoP6WdybVMHc/KlVmdq5Htg1kLX0ASkkUUCfkWIbuHyW3L JulYF2xddmbqePycAdEz4tkwAAjuBR9SSEavFG67KZ5qzFdoDTrgWQuStt/zQQ== X-Google-Smtp-Source: AGHT+IEwR3CNT+p+dChTtch2Bn0MZw15+J9oOJculCHaW2E0QJGcdCtf0OMWzuonyzJOFPiRe76Kug== X-Received: by 2002:a05:6e02:e46:b0:361:aaf2:e46e with SMTP id l6-20020a056e020e4600b00361aaf2e46emr768276ilk.44.1706060709136; Tue, 23 Jan 2024 17:45:09 -0800 (PST) Received: from [172.18.10.45] ([12.126.244.130]) by smtp.gmail.com with ESMTPSA id e13-20020a63e00d000000b005cfb6b8e471sm8366786pgh.14.2024.01.23.17.45.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jan 2024 17:45:08 -0800 (PST) Message-ID: <7338f22c4534322a08ab6ce9f879e2e308eb5e5d.camel@j-davis.com> Subject: Re: [17] CREATE SUBSCRIPTION ... SERVER From: Jeff Davis To: Ashutosh Bapat Cc: Bharath Rupireddy , Joe Conway , pgsql-hackers@postgresql.org Date: Tue, 23 Jan 2024 17:45:07 -0800 In-Reply-To: References: <149ff9264db27cdf724b65709fbbaee4bf316835.camel@j-davis.com> <830a2bc6cbbb2e6e01c6c0d9f31f320822e10603.camel@j-davis.com> <433d0845248e86c0317d9d396926182cfe157340.camel@j-davis.com> <05ae37abb207cd6bf6b126780024692d91402b0b.camel@j-davis.com> <93392ffa941ab0d436e19e0ab5d04d0e42c02d3f.camel@j-davis.com> <26be917cb07b6aa3ef5dd15f6b59d1b375ece6e8.camel@j-davis.com> <55201bd916e748acfc754c8f95880dae8e4e5ed0.camel@j-davis.com> <2a89b14a2b1622bffb8b137ca1f9ab7866f2d2b9.camel@j-davis.com> <61831790a0a937038f78ce09f8dd4cef7de7456a.camel@j-davis.com> <0910b47040406c1d24ec0150dafb5bae6b910ed7.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-YphDLf/Pjh4HkC3f/IWz" User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-YphDLf/Pjh4HkC3f/IWz Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2024-01-23 at 15:21 +0530, Ashutosh Bapat wrote: > I am with the prefix. The changes it causes make review difficult. If > you can separate those changes into a patch that will help. I ended up just removing the dummy FDW. Real users are likely to want to use postgres_fdw, and if not, it's easy enough to issue a CREATE FOREIGN DATA WRAPPER. Or I can bring it back if desired. Updated patch set (patches are renumbered): * removed dummy FDW and test churn * made a new pg_connection_validator function which leaves postgresql_fdw_validator in place. (I didn't document the new function -- should I?) * included your tests improvements * removed dependency from the subscription to the user mapping -- we don't depend on the user mapping for foreign tables, so we shouldn't depend on them here. Of course a change to a user mapping still invalidates the subscription worker and it will restart. * general cleanup Overall it's simpler and hopefully easier to review. The patch to introduce the pg_create_connection role could use some more discussion, but I believe 0001 and 0002 are nearly ready. Regards, Jeff Davis --=-YphDLf/Pjh4HkC3f/IWz Content-Disposition: attachment; filename="v9-0001-Add-SQL-function-pg_conninfo_from_server.patch" Content-Type: text/x-patch; name="v9-0001-Add-SQL-function-pg_conninfo_from_server.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBiYTAyMTI4MWZlNzkxMGZhMTk3ODg4YjI5OTI4MWFjYmZkYTMwYzM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDIzIEphbiAyMDI0IDExOjExOjIxIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2OSAxLzNdIEFk ZCBTUUwgZnVuY3Rpb24gcGdfY29ubmluZm9fZnJvbV9zZXJ2ZXIoKS4KClJldHJpZXZlcyB2YWxp ZCBQb3N0Z3JlcyBjb25uZWN0aW9uIHN0cmluZyBmcm9tIGEgZm9yZWlnbiBzZXJ2ZXIuIEFueQpm b3JlaWduIHNlcnZlciBtYXkgYmUgdXNlZCwgdGhvdWdoIGl0J3MgZXhwZWN0ZWQgdG8gcHJvdmlk ZSB2YWxpZApsaWJwcSBjb25uZWN0aW9uIG9wdGlvbnMuIEludmFsaWQgb3IgdW5yZWNvZ25pemVk IG9wdGlvbnMgd2lsbCBiZQppZ25vcmVkLgoKRXh0ZW5kcyB3YWxyZWNlaXZlciBBUEkgdG8gcmV0 dXJuIGF2YWlsYWJsZSBsaWJwcSBvcHRpb25zLgoKSW4gcHJlcGFyYXRpb24gZm9yIENSRUFURSBT VUJTQ1JJUFRJT04gLi4uIFNFUlZFUi4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20v MmE4OWIxNGEyYjE2MjJiZmZiOGIxMzdjYTFmOWFiNzg2NmYyZDJiOS5jYW1lbEBqLWRhdmlzLmNv bQotLS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCAgICB8ICAx NCArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCAgICAgfCAgIDYg KwogZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICsr CiBzcmMvYmFja2VuZC9mb3JlaWduL2ZvcmVpZ24uYyAgICAgICAgICAgICAgICAgfCAyNTUgKysr KysrKysrKysrKysrKystCiAuLi4vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMg ICAgICAgfCAgNDggKysrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAg ICAgICAgIHwgICA4ICsKIHNyYy9pbmNsdWRlL2ZvcmVpZ24vZm9yZWlnbi5oICAgICAgICAgICAg ICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oICAgICAg ICAgfCAgMjAgKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91dCAg ICB8ICA0NiArKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JlaWduX2RhdGEuc3FsICAgICAg ICAgfCAgNDAgKysrCiAxMCBmaWxlcyBjaGFuZ2VkLCA0NDkgaW5zZXJ0aW9ucygrKSwgOSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0 Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3 Lm91dAppbmRleCBiNWEzOGFlYjIxLi44YTdhMTVjYzUxIDEwMDY0NAotLS0gYS9jb250cmliL3Bv c3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTI0LDYgKzI0LDEzIEBAIENSRUFU RSBVU0VSIE1BUFBJTkcgRk9SIHB1YmxpYyBTRVJWRVIgdGVzdHNlcnZlcjEKIENSRUFURSBVU0VS IE1BUFBJTkcgRk9SIENVUlJFTlRfVVNFUiBTRVJWRVIgbG9vcGJhY2s7CiBDUkVBVEUgVVNFUiBN QVBQSU5HIEZPUiBDVVJSRU5UX1VTRVIgU0VSVkVSIGxvb3BiYWNrMjsKIENSRUFURSBVU0VSIE1B UFBJTkcgRk9SIHB1YmxpYyBTRVJWRVIgbG9vcGJhY2szOworLS0gdGVzdCBwZ19jb25uaW5mb19m cm9tX3NlcnZlcigpCitTRUxFQ1QgcGdfY29ubmluZm9fZnJvbV9zZXJ2ZXIoJ3Rlc3RzZXJ2ZXIx JywgQ1VSUkVOVF9VU0VSLCBmYWxzZSk7CisgICAgICBwZ19jb25uaW5mb19mcm9tX3NlcnZlciAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB1c2VyID0gJ3ZhbHVl JyBwYXNzd29yZCA9ICd2YWx1ZScKKygxIHJvdykKKwogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gY3JlYXRl IG9iamVjdHMgdXNlZCB0aHJvdWdoIEZEVyBsb29wYmFjayBzZXJ2ZXIKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K QEAgLTE5Niw2ICsyMDMsMTMgQEAgQUxURVIgVVNFUiBNQVBQSU5HIEZPUiBwdWJsaWMgU0VSVkVS IHRlc3RzZXJ2ZXIxCiAtLSBwZXJtaXR0ZWQgdG8gY2hlY2sgdmFsaWRhdGlvbi4KIEFMVEVSIFVT RVIgTUFQUElORyBGT1IgcHVibGljIFNFUlZFUiB0ZXN0c2VydmVyMQogCU9QVElPTlMgKEFERCBz c2xrZXkgJ3ZhbHVlJywgQUREIHNzbGNlcnQgJ3ZhbHVlJyk7CistLSBjaGVjayBwZ19jb25uaW5m b19mcm9tX3NlcnZlcigpIGFmdGVyIEFMVEVScworU0VMRUNUIHBnX2Nvbm5pbmZvX2Zyb21fc2Vy dmVyKCd0ZXN0c2VydmVyMScsIENVUlJFTlRfVVNFUiwgZmFsc2UpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19jb25uaW5mb19mcm9t X3NlcnZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHNlcnZpY2UgPSAndmFsdWUnIGNvbm5l Y3RfdGltZW91dCA9ICd2YWx1ZScgZGJuYW1lID0gJ3ZhbHVlJyBob3N0ID0gJ3ZhbHVlJyBob3N0 YWRkciA9ICd2YWx1ZScgcG9ydCA9ICd2YWx1ZScgYXBwbGljYXRpb25fbmFtZSA9ICd2YWx1ZScg a2VlcGFsaXZlcyA9ICd2YWx1ZScga2VlcGFsaXZlc19pZGxlID0gJ3ZhbHVlJyBrZWVwYWxpdmVz X2ludGVydmFsID0gJ3ZhbHVlJyB0Y3BfdXNlcl90aW1lb3V0ID0gJ3ZhbHVlJyBzc2xjb21wcmVz c2lvbiA9ICd2YWx1ZScgc3NsbW9kZSA9ICd2YWx1ZScgc3NsY2VydCA9ICd2YWx1ZScgc3Nsa2V5 ID0gJ3ZhbHVlJyBzc2xyb290Y2VydCA9ICd2YWx1ZScgc3NsY3JsID0gJ3ZhbHVlJyBrcmJzcnZu YW1lID0gJ3ZhbHVlJyBnc3NsaWIgPSAndmFsdWUnIGdzc2RlbGVnYXRpb24gPSAndmFsdWUnIHNz bHBhc3N3b3JkID0gJ2R1bW15JyBzc2xrZXkgPSAndmFsdWUnIHNzbGNlcnQgPSAndmFsdWUnCiso MSByb3cpCisKIEFMVEVSIEZPUkVJR04gVEFCTEUgZnQxIE9QVElPTlMgKHNjaGVtYV9uYW1lICdT IDEnLCB0YWJsZV9uYW1lICdUIDEnKTsKIEFMVEVSIEZPUkVJR04gVEFCTEUgZnQyIE9QVElPTlMg KHNjaGVtYV9uYW1lICdTIDEnLCB0YWJsZV9uYW1lICdUIDEnKTsKIEFMVEVSIEZPUkVJR04gVEFC TEUgZnQxIEFMVEVSIENPTFVNTiBjMSBPUFRJT05TIChjb2x1bW5fbmFtZSAnQyAxJyk7CmRpZmYg LS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCBiL2NvbnRy aWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCmluZGV4IGY0MTBjM2RiNGUuLjBk ODQ3ODEyMGQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19m ZHcuc3FsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCkBA IC0yOCw2ICsyOCw5IEBAIENSRUFURSBVU0VSIE1BUFBJTkcgRk9SIENVUlJFTlRfVVNFUiBTRVJW RVIgbG9vcGJhY2s7CiBDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBDVVJSRU5UX1VTRVIgU0VSVkVS IGxvb3BiYWNrMjsKIENSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHB1YmxpYyBTRVJWRVIgbG9vcGJh Y2szOwogCistLSB0ZXN0IHBnX2Nvbm5pbmZvX2Zyb21fc2VydmVyKCkKK1NFTEVDVCBwZ19jb25u aW5mb19mcm9tX3NlcnZlcigndGVzdHNlcnZlcjEnLCBDVVJSRU5UX1VTRVIsIGZhbHNlKTsKKwog LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0gY3JlYXRlIG9iamVjdHMgdXNlZCB0aHJvdWdoIEZEVyBsb29wYmFj ayBzZXJ2ZXIKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTIxMyw2ICsyMTYsOSBAQCBBTFRFUiBVU0VSIE1B UFBJTkcgRk9SIHB1YmxpYyBTRVJWRVIgdGVzdHNlcnZlcjEKIEFMVEVSIFVTRVIgTUFQUElORyBG T1IgcHVibGljIFNFUlZFUiB0ZXN0c2VydmVyMQogCU9QVElPTlMgKEFERCBzc2xrZXkgJ3ZhbHVl JywgQUREIHNzbGNlcnQgJ3ZhbHVlJyk7CiAKKy0tIGNoZWNrIHBnX2Nvbm5pbmZvX2Zyb21fc2Vy dmVyKCkgYWZ0ZXIgQUxURVJzCitTRUxFQ1QgcGdfY29ubmluZm9fZnJvbV9zZXJ2ZXIoJ3Rlc3Rz ZXJ2ZXIxJywgQ1VSUkVOVF9VU0VSLCBmYWxzZSk7CisKIEFMVEVSIEZPUkVJR04gVEFCTEUgZnQx IE9QVElPTlMgKHNjaGVtYV9uYW1lICdTIDEnLCB0YWJsZV9uYW1lICdUIDEnKTsKIEFMVEVSIEZP UkVJR04gVEFCTEUgZnQyIE9QVElPTlMgKHNjaGVtYV9uYW1lICdTIDEnLCB0YWJsZV9uYW1lICdU IDEnKTsKIEFMVEVSIEZPUkVJR04gVEFCTEUgZnQxIEFMVEVSIENPTFVNTiBjMSBPUFRJT05TIChj b2x1bW5fbmFtZSAnQyAxJyk7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIv ZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRleCAyMTBjN2MwYjAyLi43OWUxNzkyZWFlIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5jLnNn bWwKQEAgLTI3OTg1LDYgKzI3OTg1LDI1IEBAIHBvc3RncmVzPSMgU0VMRUNUICcwLzAnOjpwZ19s c24gKyBwZC5zZWdtZW50X251bWJlciAqIHBzLnNldHRpbmc6OmludCArIDpvZmZzZXQKICAgICAg ICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgogCisgICAgICA8cm93PgorICAgICAgIDxl bnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+ CisgICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT5wZ19jb25uaW5mb19mcm9t X3NlcnZlcjwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlv bj5wZ19jb25uaW5mb19mcm9tX3NlcnZlcjwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zZXJ2ZXJu YW1lPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+LCA8cGFyYW1ldGVyPnVzZXJuYW1lPC9w YXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+LCA8cGFyYW1ldGVyPmFwcGVuZF9vdmVycmlkZXM8 L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFsdWU+ dGV4dDwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAg ICBSZXR1cm5zIGNvbm5lY3Rpb24gc3RyaW5nIGdlbmVyYXRlZCBmcm9tIHRoZSBmb3JlaWduIHNl cnZlciBhbmQgdXNlcgorICAgICAgICBtYXBwaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4K KyAgICAgICAgPHJlcGxhY2VhYmxlPnNlcnZlcm5hbWU8L3JlcGxhY2VhYmxlPiBhbmQKKyAgICAg ICAgPHJlcGxhY2VhYmxlPnVzZXJuYW1lPC9yZXBsYWNlYWJsZT4uIElmCisgICAgICAgIDxyZXBs YWNlYWJsZT5hcHBlbmRfb3ZlcnJpZGVzPC9yZXBsYWNlYWJsZT4gaXMKKyAgICAgICAgPGxpdGVy YWw+dHJ1ZTwvbGl0ZXJhbD4sIGl0IGFwcGVuZHMgb3ZlcnJpZGUgcGFyYW1ldGVycyBuZWNlc3Nh cnkgZm9yCisgICAgICAgIG1ha2luZyBvdXRib3VuZCBjb25uZWN0aW9ucy4KKyAgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8cm93PgogICAgICAgIDxlbnRyeSBp ZD0icGctbG9naWNhbC1lbWl0LW1lc3NhZ2UiIHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KICAgICAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2ZvcmVpZ24vZm9yZWlnbi5jIGIvc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3Jl aWduLmMKaW5kZXggMDJlMTg5ODEzMS4uYjQ2MzVkNmViYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZm9yZWlnbi9mb3JlaWduLmMKKysrIGIvc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMK QEAgLTE4LDExICsxOCwxNSBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2ZXIu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2ZvcmVpZ25fdGFibGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2lu Y2x1ZGUgImZvcmVpZ24vZmR3YXBpLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mb3JlaWduLmgiCiAj aW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgImxpYi9zdHJpbmdpbmZvLmgiCisjaW5jbHVk ZSAibWIvcGdfd2NoYXIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJyZXBs aWNhdGlvbi93YWxyZWNlaXZlci5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgogI2luY2x1ZGUg InV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRl ICJ1dGlscy9yZWwuaCIKQEAgLTE5MCw2ICsxOTQsMTQ2IEBAIEdldEZvcmVpZ25TZXJ2ZXJCeU5h bWUoY29uc3QgY2hhciAqc3J2bmFtZSwgYm9vbCBtaXNzaW5nX29rKQogfQogCiAKKy8qCisgKiBW YWx1ZXMgaW4gY29ubmVjdGlvbiBzdHJpbmdzIG11c3QgYmUgZW5jbG9zZWQgaW4gc2luZ2xlIHF1 b3Rlcy4gU2luZ2xlCisgKiBxdW90ZXMgYW5kIGJhY2tzbGFzaGVzIG11c3QgYmUgZXNjYXBlZCB3 aXRoIGJhY2tzbGFzaC4gTkI6IHRoZXNlIHJ1bGVzIGFyZQorICogZGlmZmVyZW50IGZyb20gdGhl IHJ1bGVzIGZvciBlc2NhcGluZyBhIFNRTCBsaXRlcmFsLgorICovCitzdGF0aWMgdm9pZAorYXBw ZW5kRXNjYXBlZFZhbHVlKFN0cmluZ0luZm8gc3RyLCBjb25zdCBjaGFyICp2YWwpCit7CisJYXBw ZW5kU3RyaW5nSW5mb0NoYXIoc3RyLCAnXCcnKTsKKwlmb3IgKGludCBpID0gMDsgdmFsW2ldICE9 ICdcMCc7IGkrKykKKwl7CisJCWlmICh2YWxbaV0gPT0gJ1xcJyB8fCB2YWxbaV0gPT0gJ1wnJykK KwkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKHN0ciwgJ1xcJyk7CisJCWFwcGVuZFN0cmluZ0luZm9D aGFyKHN0ciwgdmFsW2ldKTsKKwl9CisJYXBwZW5kU3RyaW5nSW5mb0NoYXIoc3RyLCAnXCcnKTsK K30KKworCisvKgorICogQ2hlY2sgaWYgdGhlIHByb3ZpZGVkIG9wdGlvbiBpcyBvbmUgb2YgbGli cHEgY29ubmluZm8gb3B0aW9ucy4KKyAqIGNvbnRleHQgaXMgdGhlIE9pZCBvZiB0aGUgY2F0YWxv ZyB0aGUgb3B0aW9uIGNhbWUgZnJvbSwgb3IgMCBpZiB3ZQorICogZG9uJ3QgY2FyZS4KKyAqLwor c3RhdGljIGJvb2wKK2lzX2xpYnBxX2Nvbm5pbmZvX29wdGlvbihjb25zdCBjaGFyICpvcHRpb24s IE9pZCBjb250ZXh0KQoreworCWNvbnN0IENvbm5lY3Rpb25PcHRpb24gKm9wdDsKKworCS8qIHNr aXAgb3B0aW9ucyB0aGF0IG11c3QgYmUgb3ZlcnJpZGRlbiAqLworCWlmIChzdHJjbXAob3B0aW9u LCAiY2xpZW50X2VuY29kaW5nIikgPT0gMCkKKwkJcmV0dXJuIGZhbHNlOworCisJZm9yIChvcHQg PSB3YWxyY3ZfY29ubmluZm9fb3B0aW9ucygpOyBvcHQtPm9wdG5hbWU7IG9wdCsrKQorCXsKKwkJ aWYgKHN0cmNtcChvcHQtPm9wdG5hbWUsIG9wdGlvbikgPT0gMCkKKwkJeworCQkJaWYgKG9wdC0+ aXNkZWJ1ZykKKwkJCQlyZXR1cm4gZmFsc2U7CisKKwkJCWlmIChvcHQtPmlzc2VjcmV0IHx8IHN0 cmNtcChvcHQtPm9wdG5hbWUsICJ1c2VyIikgPT0gMCkKKwkJCQlyZXR1cm4gKGNvbnRleHQgPT0g VXNlck1hcHBpbmdSZWxhdGlvbklkKTsKKworCQkJcmV0dXJuIChjb250ZXh0ID09IEZvcmVpZ25T ZXJ2ZXJSZWxhdGlvbklkKTsKKwkJfQorCX0KKwlyZXR1cm4gZmFsc2U7Cit9CisKKworLyoKKyAq IEhlbHBlciBmb3IgRm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoKS4KKyAqCisgKiBUcmFu c2Zvcm0gYSBMaXN0IG9mIERlZkVsZW0gaW50byBhIGNvbm5lY3Rpb24gc3RyaW5nLgorICovCitz dGF0aWMgY2hhciAqCitvcHRpb25zX3RvX2Nvbm5pbmZvKExpc3QgKm9wdGlvbnMsIGJvb2wgYXBw ZW5kX292ZXJyaWRlcykKK3sKKwlTdHJpbmdJbmZvRGF0YQkgc3RyOworCUxpc3RDZWxsCQkqbGM7 CisJY2hhcgkJCSpzZXAgPSAiIjsKKworCWluaXRTdHJpbmdJbmZvKCZzdHIpOworCWZvcmVhY2go bGMsIG9wdGlvbnMpCisJeworCQlEZWZFbGVtICpkID0gKERlZkVsZW0gKikgbGZpcnN0KGxjKTsK KwkJY2hhciAqbmFtZSA9IGQtPmRlZm5hbWU7CisJCWNoYXIgKnZhbHVlOworCisJCS8qIGlnbm9y ZSB1bmtub3duIG9wdGlvbnMgKi8KKwkJaWYgKCFpc19saWJwcV9jb25uaW5mb19vcHRpb24obmFt ZSwgRm9yZWlnblNlcnZlclJlbGF0aW9uSWQpICYmCisJCQkhaXNfbGlicHFfY29ubmluZm9fb3B0 aW9uKG5hbWUsIFVzZXJNYXBwaW5nUmVsYXRpb25JZCkpCisJCQljb250aW51ZTsKKworCQl2YWx1 ZSA9IGRlZkdldFN0cmluZyhkKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvKCZzdHIsICIlcyVzID0g Iiwgc2VwLCBuYW1lKTsKKwkJYXBwZW5kRXNjYXBlZFZhbHVlKCZzdHIsIHZhbHVlKTsKKwkJc2Vw ID0gIiAiOworCX0KKworCS8qIG92ZXJyaWRlIGNsaWVudF9lbmNvZGluZyAqLworCWlmIChhcHBl bmRfb3ZlcnJpZGVzKQorCXsKKwkJYXBwZW5kU3RyaW5nSW5mbygmc3RyLCAiJXNjbGllbnRfZW5j b2RpbmcgPSAiLCBzZXApOworCQlhcHBlbmRFc2NhcGVkVmFsdWUoJnN0ciwgR2V0RGF0YWJhc2VF bmNvZGluZ05hbWUoKSk7CisJCXNlcCA9ICIgIjsKKwl9CisKKwlyZXR1cm4gc3RyLmRhdGE7Cit9 CisKKworLyoKKyAqIEdpdmVuIGEgdXNlciBJRCBhbmQgc2VydmVyIElELCByZXR1cm4gYSBwb3N0 Z3JlcyBjb25uZWN0aW9uIHN0cmluZyBzdWl0YWJsZQorICogdG8gcGFzcyB0byBsaWJwcS4KKyAq LworY2hhciAqCitGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhPaWQgdXNlcmlkLCBPaWQg c2VydmVyaWQsIGJvb2wgYXBwZW5kX292ZXJyaWRlcykKK3sKKwlzdGF0aWMgTWVtb3J5Q29udGV4 dAkgdG1wY29udGV4dCA9IE5VTEw7CisJRm9yZWlnblNlcnZlcgkJCSpzZXJ2ZXI7CisJVXNlck1h cHBpbmcJCQkJKnVtOworCUxpc3QJCQkJCSpvcHRpb25zOworCWNoYXIJCQkJCSpjb25uaW5mbzsK KwlNZW1vcnlDb250ZXh0CQkJIG9sZGNvbnRleHQ7CisKKwkvKiBMb2FkIHRoZSBsaWJyYXJ5IHBy b3ZpZGluZyB1cyBsaWJwcSBjYWxscy4gKi8KKwlsb2FkX2ZpbGUoImxpYnBxd2FscmVjZWl2ZXIi LCBmYWxzZSk7CisKKwkvKgorCSAqIFVzZSBhIHRlbXBvcmFyeSBjb250ZXh0IHJhdGhlciB0aGFu IHRyeWluZyB0byB0cmFjayBpbmRpdmlkdWFsCisJICogYWxsb2NhdGlvbnMgaW4gR2V0Rm9yZWln blNlcnZlcigpIGFuZCBHZXRVc2VyTWFwcGluZygpLgorCSAqLworCWlmICh0bXBjb250ZXh0ID09 IE5VTEwpCisJCXRtcGNvbnRleHQgPSBBbGxvY1NldENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29u dGV4dCwKKwkJCQkJCQkJCQkgICAidGVtcCBjb250ZXh0IGZvciBidWlsZGluZyBjb25uZWN0aW9u IHN0cmluZyIsCisJCQkJCQkJCQkJICAgQUxMT0NTRVRfREVGQVVMVF9TSVpFUyk7CisKKwlvbGRj b250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKHRtcGNvbnRleHQpOworCisJc2VydmVyID0g R2V0Rm9yZWlnblNlcnZlcihzZXJ2ZXJpZCk7CisJdW0gPSBHZXRVc2VyTWFwcGluZyh1c2VyaWQs IHNlcnZlcmlkKTsKKworCS8qIHVzZXIgbWFwcGluZyBvcHRpb25zIG92ZXJyaWRlIHNlcnZlciBv cHRpb25zICovCisJb3B0aW9ucyA9IGxpc3RfY29uY2F0KHNlcnZlci0+b3B0aW9ucywgdW0tPm9w dGlvbnMpOworCisJY29ubmluZm8gPSBvcHRpb25zX3RvX2Nvbm5pbmZvKG9wdGlvbnMsIGFwcGVu ZF9vdmVycmlkZXMpOworCisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworCisJ LyogY29weSBvbmx5IGNvbm5pbmZvIGludG8gdGhlIGN1cnJlbnQgY29udGV4dCAqLworCWNvbm5p bmZvID0gcHN0cmR1cChjb25uaW5mbyk7CisKKwlNZW1vcnlDb250ZXh0UmVzZXQodG1wY29udGV4 dCk7CisKKwlyZXR1cm4gY29ubmluZm87Cit9CisKKwogLyoKICAqIEdldFVzZXJNYXBwaW5nIC0g bG9vayB1cCB0aGUgdXNlciBtYXBwaW5nLgogICoKQEAgLTU0OSwxMCArNjkzLDEwMyBAQCBwZ19v cHRpb25zX3RvX3RhYmxlKFBHX0ZVTkNUSU9OX0FSR1MpCiB9CiAKIAorLyoKKyAqIHBnX2Nvbm5p bmZvX2Zyb21fc2VydmVyCisgKgorICogRXh0cmFjdCBjb25uZWN0aW9uIHN0cmluZyBmcm9tIHRo ZSBnaXZlbiBmb3JlaWduIHNlcnZlci4KKyAqLworRGF0dW0KK3BnX2Nvbm5pbmZvX2Zyb21fc2Vy dmVyKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJY2hhciAqc2VydmVyX25hbWUgPSB0ZXh0X3RvX2Nz dHJpbmcoUEdfR0VUQVJHX1RFWFRfUCgwKSk7CisJY2hhciAqdXNlcl9uYW1lID0gdGV4dF90b19j c3RyaW5nKFBHX0dFVEFSR19URVhUX1AoMSkpOworCWJvb2wgIGFwcGVuZF9vdmVycmlkZXMgPSBQ R19HRVRBUkdfQk9PTCgyKTsKKwlPaWQgc2VydmVyaWQgPSBnZXRfZm9yZWlnbl9zZXJ2ZXJfb2lk KHNlcnZlcl9uYW1lLCBmYWxzZSk7CisJT2lkIHVzZXJpZCA9IGdldF9yb2xlX29pZF9vcl9wdWJs aWModXNlcl9uYW1lKTsKKwlBY2xSZXN1bHQgYWNscmVzdWx0OworCWNoYXIgKmNvbm5pbmZvOwor CisJLyogaWYgdGhlIHNwZWNpZmllZCB1c2VyaWQgaXMgbm90IFBVQkxJQywgY2hlY2sgU0VUIFJP TEUgcHJpdmlsZWdlcyAqLworCWlmICh1c2VyaWQgIT0gQUNMX0lEX1BVQkxJQykKKwkJY2hlY2tf Y2FuX3NldF9yb2xlKEdldFVzZXJJZCgpLCB1c2VyaWQpOworCisJLyogQUNMIGNoZWNrIG9uIGZv cmVpZ24gc2VydmVyICovCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKEZvcmVpZ25TZXJ2 ZXJSZWxhdGlvbklkLCBzZXJ2ZXJpZCwKKwkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9VU0FHRSk7 CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVz dWx0LCBPQkpFQ1RfRk9SRUlHTl9TRVJWRVIsIHNlcnZlcl9uYW1lKTsKKworCWNvbm5pbmZvID0g Rm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcodXNlcmlkLCBzZXJ2ZXJpZCwKKwkJCQkJCQkJ CQkJIGFwcGVuZF9vdmVycmlkZXMpOworCisJUEdfUkVUVVJOX1RFWFRfUChjc3RyaW5nX3RvX3Rl eHQoY29ubmluZm8pKTsKK30KKworCisvKgorICogVmFsaWRhdGUgdGhlIGdlbmVyaWMgb3B0aW9u IGdpdmVuIHRvIFNFUlZFUiBvciBVU0VSIE1BUFBJTkcuCisgKiBSYWlzZSBhbiBFUlJPUiBpZiB0 aGUgb3B0aW9uIG9yIGl0cyB2YWx1ZSBpcyBjb25zaWRlcmVkIGludmFsaWQuCisgKgorICogVmFs aWQgc2VydmVyIG9wdGlvbnMgYXJlIGFsbCBsaWJwcSBjb25uaW5mbyBvcHRpb25zIGV4Y2VwdAor ICogdXNlciBhbmQgcGFzc3dvcmQgLS0gdGhlc2UgbWF5IG9ubHkgYXBwZWFyIGluIFVTRVIgTUFQ UElORyBvcHRpb25zLgorICovCitEYXR1bQorcGdfY29ubmVjdGlvbl92YWxpZGF0b3IoUEdfRlVO Q1RJT05fQVJHUykKK3sKKwlMaXN0CSAgICpvcHRpb25zX2xpc3QgPSB1bnRyYW5zZm9ybVJlbE9w dGlvbnMoUEdfR0VUQVJHX0RBVFVNKDApKTsKKwlPaWQJCQljYXRhbG9nID0gUEdfR0VUQVJHX09J RCgxKTsKKworCUxpc3RDZWxsICAgKmNlbGw7CisKKwkvKiBMb2FkIHRoZSBsaWJyYXJ5IHByb3Zp ZGluZyB1cyBsaWJwcSBjYWxscy4gKi8KKwlsb2FkX2ZpbGUoImxpYnBxd2FscmVjZWl2ZXIiLCBm YWxzZSk7CisKKwlmb3JlYWNoKGNlbGwsIG9wdGlvbnNfbGlzdCkKKwl7CisJCURlZkVsZW0gICAg KmRlZiA9IGxmaXJzdChjZWxsKTsKKworCQlpZiAoIWlzX2xpYnBxX2Nvbm5pbmZvX29wdGlvbihk ZWYtPmRlZm5hbWUsIGNhdGFsb2cpKQorCQl7CisJCQljb25zdCBDb25uZWN0aW9uT3B0aW9uICpv cHQ7CisJCQljb25zdCBjaGFyICpjbG9zZXN0X21hdGNoOworCQkJQ2xvc2VzdE1hdGNoU3RhdGUg bWF0Y2hfc3RhdGU7CisJCQlib29sCQloYXNfdmFsaWRfb3B0aW9ucyA9IGZhbHNlOworCisJCQkv KgorCQkJICogVW5rbm93biBvcHRpb24gc3BlY2lmaWVkLCBjb21wbGFpbiBhYm91dCBpdC4gUHJv dmlkZSBhIGhpbnQKKwkJCSAqIHdpdGggYSB2YWxpZCBvcHRpb24gdGhhdCBsb29rcyBzaW1pbGFy LCBpZiB0aGVyZSBpcyBvbmUuCisJCQkgKi8KKwkJCWluaXRDbG9zZXN0TWF0Y2goJm1hdGNoX3N0 YXRlLCBkZWYtPmRlZm5hbWUsIDQpOworCQkJZm9yIChvcHQgPSB3YWxyY3ZfY29ubmluZm9fb3B0 aW9ucygpOyBvcHQtPm9wdG5hbWU7IG9wdCsrKQorCQkJeworCQkJCWlmIChpc19saWJwcV9jb25u aW5mb19vcHRpb24ob3B0LT5vcHRuYW1lLCBjYXRhbG9nKSkKKwkJCQl7CisJCQkJCWhhc192YWxp ZF9vcHRpb25zID0gdHJ1ZTsKKwkJCQkJdXBkYXRlQ2xvc2VzdE1hdGNoKCZtYXRjaF9zdGF0ZSwg b3B0LT5vcHRuYW1lKTsKKwkJCQl9CisJCQl9CisKKwkJCWNsb3Nlc3RfbWF0Y2ggPSBnZXRDbG9z ZXN0TWF0Y2goJm1hdGNoX3N0YXRlKTsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiaW52YWxpZCBvcHRpb24gXCIl c1wiIiwgZGVmLT5kZWZuYW1lKSwKKwkJCQkJIGhhc192YWxpZF9vcHRpb25zID8gY2xvc2VzdF9t YXRjaCA/CisJCQkJCSBlcnJoaW50KCJQZXJoYXBzIHlvdSBtZWFudCB0aGUgb3B0aW9uIFwiJXNc Ii4iLAorCQkJCQkJCSBjbG9zZXN0X21hdGNoKSA6IDAgOgorCQkJCQkgZXJyaGludCgiVGhlcmUg YXJlIG5vIHZhbGlkIG9wdGlvbnMgaW4gdGhpcyBjb250ZXh0LiIpKSk7CisKKwkJCVBHX1JFVFVS Tl9CT09MKGZhbHNlKTsKKwkJfQorCX0KKworCVBHX1JFVFVSTl9CT09MKHRydWUpOworfQorCisK IC8qCiAgKiBEZXNjcmliZXMgdGhlIHZhbGlkIG9wdGlvbnMgZm9yIHBvc3RncmVzcWwgRkRXLCBz ZXJ2ZXIsIGFuZCB1c2VyIG1hcHBpbmcuCiAgKi8KLXN0cnVjdCBDb25uZWN0aW9uT3B0aW9uCitz dHJ1Y3QgVGVzdENvbm5lY3Rpb25PcHRpb24KIHsKIAljb25zdCBjaGFyICpvcHRuYW1lOwogCU9p ZAkJCW9wdGNvbnRleHQ7CQkvKiBPaWQgb2YgY2F0YWxvZyBpbiB3aGljaCBvcHRpb24gbWF5IGFw cGVhciAqLwpAQCAtNTYzLDcgKzgwMCw3IEBAIHN0cnVjdCBDb25uZWN0aW9uT3B0aW9uCiAgKgog ICogVGhlIGxpc3QgaXMgc21hbGwgLSBkb24ndCBib3RoZXIgd2l0aCBic2VhcmNoIGlmIGl0IHN0 YXlzIHNvLgogICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbm5lY3Rpb25PcHRpb24gbGlicHFf Y29ubmluZm9fb3B0aW9uc1tdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBUZXN0Q29ubmVjdGlv bk9wdGlvbiB0ZXN0X2Nvbm5pbmZvX29wdGlvbnNbXSA9IHsKIAl7ImF1dGh0eXBlIiwgRm9yZWln blNlcnZlclJlbGF0aW9uSWR9LAogCXsic2VydmljZSIsIEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklk fSwKIAl7InVzZXIiLCBVc2VyTWFwcGluZ1JlbGF0aW9uSWR9LApAQCAtNTg0LDE2ICs4MjEsMTYg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb25uZWN0aW9uT3B0aW9uIGxpYnBxX2Nvbm5pbmZvX29w dGlvbnNbXSA9IHsKIAogCiAvKgotICogQ2hlY2sgaWYgdGhlIHByb3ZpZGVkIG9wdGlvbiBpcyBv bmUgb2YgbGlicHEgY29ubmluZm8gb3B0aW9ucy4KKyAqIENoZWNrIGlmIHRoZSBwcm92aWRlZCBv cHRpb24gaXMgb25lIG9mIHRoZSB0ZXN0IGNvbm5pbmZvIG9wdGlvbnMuCiAgKiBjb250ZXh0IGlz IHRoZSBPaWQgb2YgdGhlIGNhdGFsb2cgdGhlIG9wdGlvbiBjYW1lIGZyb20sIG9yIDAgaWYgd2UK ICAqIGRvbid0IGNhcmUuCiAgKi8KIHN0YXRpYyBib29sCi1pc19jb25uaW5mb19vcHRpb24oY29u c3QgY2hhciAqb3B0aW9uLCBPaWQgY29udGV4dCkKK2lzX3Rlc3RfY29ubmluZm9fb3B0aW9uKGNv bnN0IGNoYXIgKm9wdGlvbiwgT2lkIGNvbnRleHQpCiB7Ci0JY29uc3Qgc3RydWN0IENvbm5lY3Rp b25PcHRpb24gKm9wdDsKKwljb25zdCBzdHJ1Y3QgVGVzdENvbm5lY3Rpb25PcHRpb24gKm9wdDsK IAotCWZvciAob3B0ID0gbGlicHFfY29ubmluZm9fb3B0aW9uczsgb3B0LT5vcHRuYW1lOyBvcHQr KykKKwlmb3IgKG9wdCA9IHRlc3RfY29ubmluZm9fb3B0aW9uczsgb3B0LT5vcHRuYW1lOyBvcHQr KykKIAkJaWYgKGNvbnRleHQgPT0gb3B0LT5vcHRjb250ZXh0ICYmIHN0cmNtcChvcHQtPm9wdG5h bWUsIG9wdGlvbikgPT0gMCkKIAkJCXJldHVybiB0cnVlOwogCXJldHVybiBmYWxzZTsKQEAgLTYy NCw5ICs4NjEsOSBAQCBwb3N0Z3Jlc3FsX2Zkd192YWxpZGF0b3IoUEdfRlVOQ1RJT05fQVJHUykK IAl7CiAJCURlZkVsZW0gICAgKmRlZiA9IGxmaXJzdChjZWxsKTsKIAotCQlpZiAoIWlzX2Nvbm5p bmZvX29wdGlvbihkZWYtPmRlZm5hbWUsIGNhdGFsb2cpKQorCQlpZiAoIWlzX3Rlc3RfY29ubmlu Zm9fb3B0aW9uKGRlZi0+ZGVmbmFtZSwgY2F0YWxvZykpCiAJCXsKLQkJCWNvbnN0IHN0cnVjdCBD b25uZWN0aW9uT3B0aW9uICpvcHQ7CisJCQljb25zdCBzdHJ1Y3QgVGVzdENvbm5lY3Rpb25PcHRp b24gKm9wdDsKIAkJCWNvbnN0IGNoYXIgKmNsb3Nlc3RfbWF0Y2g7CiAJCQlDbG9zZXN0TWF0Y2hT dGF0ZSBtYXRjaF9zdGF0ZTsKIAkJCWJvb2wJCWhhc192YWxpZF9vcHRpb25zID0gZmFsc2U7CkBA IC02MzYsNyArODczLDcgQEAgcG9zdGdyZXNxbF9mZHdfdmFsaWRhdG9yKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCQkgKiB3aXRoIGEgdmFsaWQgb3B0aW9uIHRoYXQgbG9va3Mgc2ltaWxhciwgaWYgdGhl cmUgaXMgb25lLgogCQkJICovCiAJCQlpbml0Q2xvc2VzdE1hdGNoKCZtYXRjaF9zdGF0ZSwgZGVm LT5kZWZuYW1lLCA0KTsKLQkJCWZvciAob3B0ID0gbGlicHFfY29ubmluZm9fb3B0aW9uczsgb3B0 LT5vcHRuYW1lOyBvcHQrKykKKwkJCWZvciAob3B0ID0gdGVzdF9jb25uaW5mb19vcHRpb25zOyBv cHQtPm9wdG5hbWU7IG9wdCsrKQogCQkJewogCQkJCWlmIChjYXRhbG9nID09IG9wdC0+b3B0Y29u dGV4dCkKIAkJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdh bHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xp YnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCmluZGV4IDc3NjY5MDc0ZTguLmExODQ1 ZTZkZmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2 ZXIvbGlicHF3YWxyZWNlaXZlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBx d2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCkBAIC01Miw2ICs1Miw3IEBAIHN0YXRpYyBX YWxSZWNlaXZlckNvbm4gKmxpYnBxcmN2X2Nvbm5lY3QoY29uc3QgY2hhciAqY29ubmluZm8sCiAJ CQkJCQkJCQkJIGNvbnN0IGNoYXIgKmFwcG5hbWUsIGNoYXIgKiplcnIpOwogc3RhdGljIHZvaWQg bGlicHFyY3ZfY2hlY2tfY29ubmluZm8oY29uc3QgY2hhciAqY29ubmluZm8sCiAJCQkJCQkJCQli b29sIG11c3RfdXNlX3Bhc3N3b3JkKTsKK3N0YXRpYyBjb25zdCBDb25uZWN0aW9uT3B0aW9uICps aWJwcXJjdl9jb25uaW5mb19vcHRpb25zKHZvaWQpOwogc3RhdGljIGNoYXIgKmxpYnBxcmN2X2dl dF9jb25uaW5mbyhXYWxSZWNlaXZlckNvbm4gKmNvbm4pOwogc3RhdGljIHZvaWQgbGlicHFyY3Zf Z2V0X3NlbmRlcmluZm8oV2FsUmVjZWl2ZXJDb25uICpjb25uLAogCQkJCQkJCQkJY2hhciAqKnNl bmRlcl9ob3N0LCBpbnQgKnNlbmRlcl9wb3J0KTsKQEAgLTg1LDYgKzg2LDcgQEAgc3RhdGljIHZv aWQgbGlicHFyY3ZfZGlzY29ubmVjdChXYWxSZWNlaXZlckNvbm4gKmNvbm4pOwogc3RhdGljIFdh bFJlY2VpdmVyRnVuY3Rpb25zVHlwZSBQUVdhbFJlY2VpdmVyRnVuY3Rpb25zID0gewogCS53YWxy Y3ZfY29ubmVjdCA9IGxpYnBxcmN2X2Nvbm5lY3QsCiAJLndhbHJjdl9jaGVja19jb25uaW5mbyA9 IGxpYnBxcmN2X2NoZWNrX2Nvbm5pbmZvLAorCS53YWxyY3ZfY29ubmluZm9fb3B0aW9ucyA9IGxp YnBxcmN2X2Nvbm5pbmZvX29wdGlvbnMsCiAJLndhbHJjdl9nZXRfY29ubmluZm8gPSBsaWJwcXJj dl9nZXRfY29ubmluZm8sCiAJLndhbHJjdl9nZXRfc2VuZGVyaW5mbyA9IGxpYnBxcmN2X2dldF9z ZW5kZXJpbmZvLAogCS53YWxyY3ZfaWRlbnRpZnlfc3lzdGVtID0gbGlicHFyY3ZfaWRlbnRpZnlf c3lzdGVtLApAQCAtMzM3LDYgKzMzOSw1MiBAQCBsaWJwcXJjdl9jaGVja19jb25uaW5mbyhjb25z dCBjaGFyICpjb25uaW5mbywgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCkKIAlQUWNvbm5pbmZvRnJl ZShvcHRzKTsKIH0KIAorc3RhdGljIGNvbnN0IENvbm5lY3Rpb25PcHRpb24gKgorbGlicHFyY3Zf Y29ubmluZm9fb3B0aW9ucyh2b2lkKQoreworCXN0YXRpYyBDb25uZWN0aW9uT3B0aW9uCSpjb25u ZWN0aW9uX29wdGlvbnMgPSBOVUxMOworCisJaWYgKGNvbm5lY3Rpb25fb3B0aW9ucyA9PSBOVUxM KQorCXsKKwkJUFFjb25uaW5mb09wdGlvbgkqY29ubmRlZmF1bHRzCT0gUFFjb25uZGVmYXVsdHMo KTsKKwkJUFFjb25uaW5mb09wdGlvbgkqbG9wdDsKKwkJQ29ubmVjdGlvbk9wdGlvbgkqdG1wX29w dGlvbnMJPSBOVUxMOworCQlDb25uZWN0aW9uT3B0aW9uCSpwb3B0OworCQlzaXplX3QJCQkJIG9w dGlvbnNfc2l6ZQk9IDA7CisJCWludAkJCQkJIG51bV9saWJwcV9vcHRzCT0gMDsKKworCQlmb3Ig KGxvcHQgPSBjb25uZGVmYXVsdHM7IGxvcHQtPmtleXdvcmQ7IGxvcHQrKykKKwkJCW51bV9saWJw cV9vcHRzKys7CisKKwkJLyogbGVhdmUgcm9vbSBmb3IgYWxsLXplcm8gZW50cnkgYXQgdGhlIGVu ZCAqLworCQlvcHRpb25zX3NpemUgPSBzaXplb2YoQ29ubmVjdGlvbk9wdGlvbikgKiAobnVtX2xp YnBxX29wdHMgKyAxKTsKKwkJdG1wX29wdGlvbnMgPSBNZW1vcnlDb250ZXh0QWxsb2NaZXJvKFRv cE1lbW9yeUNvbnRleHQsIG9wdGlvbnNfc2l6ZSk7CisKKwkJcG9wdCA9IHRtcF9vcHRpb25zOwor CQlmb3IgKGxvcHQgPSBjb25uZGVmYXVsdHM7IGxvcHQtPmtleXdvcmQ7IGxvcHQrKykKKwkJewor CQkJaWYgKHN0cmNocihsb3B0LT5kaXNwY2hhciwgJyonKSkKKwkJCQlwb3B0LT5pc3NlY3JldCA9 IHRydWU7CisJCQllbHNlIGlmIChzdHJjaHIobG9wdC0+ZGlzcGNoYXIsICdEJykpCisJCQkJcG9w dC0+aXNkZWJ1ZyA9IHRydWU7CisKKwkJCXBvcHQtPm9wdG5hbWUgPSBNZW1vcnlDb250ZXh0U3Ry ZHVwKFRvcE1lbW9yeUNvbnRleHQsCisJCQkJCQkJCQkJCQlsb3B0LT5rZXl3b3JkKTsKKwkJCXBv cHQrKzsKKwkJfQorCisJCS8qIGxhc3QgZW50cnkgaXMgYWxsIHplcm8gKi8KKwkJQXNzZXJ0KHBv cHQtPm9wdG5hbWUgPT0gTlVMTCk7CisKKwkJUFFjb25uaW5mb0ZyZWUoY29ubmRlZmF1bHRzKTsK KworCQkvKiBpZiBldmVyeXRoaW5nIHN1Y2NlZWRlZCwgc2V0IHN0YXRpYyB2YXJpYWJsZSAqLwor CQljb25uZWN0aW9uX29wdGlvbnMgPSB0bXBfb3B0aW9uczsKKwl9CisKKwlyZXR1cm4gY29ubmVj dGlvbl9vcHRpb25zOworfQorCiAvKgogICogUmV0dXJuIGEgdXNlci1kaXNwbGF5YWJsZSBjb25u aW5mbyBzdHJpbmcuICBBbnkgc2VjdXJpdHktc2Vuc2l0aXZlIGZpZWxkcwogICogYXJlIG9iZnVz Y2F0ZWQuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBhZDc0ZTA3ZGJiLi41ODkwZDIyZGQ5 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTc1MTYsNiArNzUxNiwxNCBAQAogICBwcm9u YW1lID0+ICdwb3N0Z3Jlc3FsX2Zkd192YWxpZGF0b3InLCBwcm9yZXR0eXBlID0+ICdib29sJywK ICAgcHJvYXJndHlwZXMgPT4gJ190ZXh0IG9pZCcsIHByb3NyYyA9PiAncG9zdGdyZXNxbF9mZHdf dmFsaWRhdG9yJyB9LAogCit7IG9pZCA9PiAnNjAxNScsIGRlc2NyID0+ICcoaW50ZXJuYWwpJywK KyAgcHJvbmFtZSA9PiAncGdfY29ubmVjdGlvbl92YWxpZGF0b3InLCBwcm9yZXR0eXBlID0+ICdi b29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ190ZXh0IG9pZCcsIHByb3NyYyA9PiAncGdfY29ubmVj dGlvbl92YWxpZGF0b3InIH0sCisKK3sgb2lkID0+ICc2MTIzJywgZGVzY3IgPT4gJ2V4dHJhY3Qg Y29ubmVjdGlvbiBzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gZm9yZWlnbiBzZXJ2ZXInLAorICBwcm9u YW1lID0+ICdwZ19jb25uaW5mb19mcm9tX3NlcnZlcicsIHByb3JldHR5cGUgPT4gJ3RleHQnLAor ICBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0IGJvb2wnLCBwcm9zcmMgPT4gJ3BnX2Nvbm5pbmZv X2Zyb21fc2VydmVyJyB9LAorCiB7IG9pZCA9PiAnMjI5MCcsIGRlc2NyID0+ICdJL08nLAogICBw cm9uYW1lID0+ICdyZWNvcmRfaW4nLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4g J3JlY29yZCcsCiAgIHByb2FyZ3R5cGVzID0+ICdjc3RyaW5nIG9pZCBpbnQ0JywgcHJvc3JjID0+ ICdyZWNvcmRfaW4nIH0sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9mb3JlaWduL2ZvcmVpZ24u aCBiL3NyYy9pbmNsdWRlL2ZvcmVpZ24vZm9yZWlnbi5oCmluZGV4IDgyYjgxNTMxMDAuLmI1Yjli OTdmNGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2ZvcmVpZ24vZm9yZWlnbi5oCisrKyBiL3Ny Yy9pbmNsdWRlL2ZvcmVpZ24vZm9yZWlnbi5oCkBAIC02OSw2ICs2OSw4IEBAIGV4dGVybiBGb3Jl aWduU2VydmVyICpHZXRGb3JlaWduU2VydmVyRXh0ZW5kZWQoT2lkIHNlcnZlcmlkLAogCQkJCQkJ CQkJCQkgICBiaXRzMTYgZmxhZ3MpOwogZXh0ZXJuIEZvcmVpZ25TZXJ2ZXIgKkdldEZvcmVpZ25T ZXJ2ZXJCeU5hbWUoY29uc3QgY2hhciAqc3J2bmFtZSwKIAkJCQkJCQkJCQkJIGJvb2wgbWlzc2lu Z19vayk7CitleHRlcm4gY2hhciAqRm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoT2lkIHVz ZXJpZCwgT2lkIHNlcnZlcmlkLAorCQkJCQkJCQkJCSAgIGJvb2wgYXBwZW5kX292ZXJyaWRlcyk7 CiBleHRlcm4gVXNlck1hcHBpbmcgKkdldFVzZXJNYXBwaW5nKE9pZCB1c2VyaWQsIE9pZCBzZXJ2 ZXJpZCk7CiBleHRlcm4gRm9yZWlnbkRhdGFXcmFwcGVyICpHZXRGb3JlaWduRGF0YVdyYXBwZXIo T2lkIGZkd2lkKTsKIGV4dGVybiBGb3JlaWduRGF0YVdyYXBwZXIgKkdldEZvcmVpZ25EYXRhV3Jh cHBlckV4dGVuZGVkKE9pZCBmZHdpZCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dhbHJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5o CmluZGV4IDA4OTk4OTFjZGIuLmEyZWNiZjgyNWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fs cmVjZWl2ZXIuaApAQCAtMjIzLDYgKzIyMywxNiBAQCB0eXBlZGVmIHN0cnVjdCBXYWxSY3ZFeGVj UmVzdWx0CiAJVHVwbGVEZXNjCXR1cGxlZGVzYzsKIH0gV2FsUmN2RXhlY1Jlc3VsdDsKIAorLyoK KyAqIERlc2NyaWJlcyB0aGUgdmFsaWQgb3B0aW9ucyBmb3IgcG9zdGdyZXNxbCBGRFcsIHNlcnZl ciwgYW5kIHVzZXIgbWFwcGluZy4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgQ29ubmVjdGlvbk9wdGlv bgoreworCWNvbnN0IGNoYXIgKm9wdG5hbWU7CisJYm9vbAkJaXNzZWNyZXQ7CQkvKiBpcyBvcHRp b24gZm9yIGEgcGFzc3dvcmQ/ICovCisJYm9vbAkJaXNkZWJ1ZzsJCS8qIGlzIG9wdGlvbiBhIGRl YnVnIG9wdGlvbj8gKi8KK30gQ29ubmVjdGlvbk9wdGlvbjsKKwogLyogV0FMIHJlY2VpdmVyIC0g bGlicHF3YWxyZWNlaXZlciBob29rcyAqLwogCiAvKgpAQCAtMjUwLDYgKzI2MCwxMyBAQCB0eXBl ZGVmIFdhbFJlY2VpdmVyQ29ubiAqKCp3YWxyY3ZfY29ubmVjdF9mbikgKGNvbnN0IGNoYXIgKmNv bm5pbmZvLAogdHlwZWRlZiB2b2lkICgqd2FscmN2X2NoZWNrX2Nvbm5pbmZvX2ZuKSAoY29uc3Qg Y2hhciAqY29ubmluZm8sCiAJCQkJCQkJCQkJICBib29sIG11c3RfdXNlX3Bhc3N3b3JkKTsKIAor LyoKKyAqIHdhbHJjdl9jb25uaW5mb19vcHRpb25zX2ZuCisgKgorICogUmV0dXJuIGEgcG9pbnRl ciB0byBhIHN0YXRpYyBhcnJheSBvZiB0aGUgYXZhaWxhYmxlIG9wdGlvbnMgZnJvbSBsaWJwcS4K KyAqLwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgQ29ubmVjdGlvbk9wdGlvbiAqKCp3YWxyY3ZfY29u bmluZm9fb3B0aW9uc19mbikgKHZvaWQpOworCiAvKgogICogd2FscmN2X2dldF9jb25uaW5mb19m bgogICoKQEAgLTM4OSw2ICs0MDYsNyBAQCB0eXBlZGVmIHN0cnVjdCBXYWxSZWNlaXZlckZ1bmN0 aW9uc1R5cGUKIHsKIAl3YWxyY3ZfY29ubmVjdF9mbiB3YWxyY3ZfY29ubmVjdDsKIAl3YWxyY3Zf Y2hlY2tfY29ubmluZm9fZm4gd2FscmN2X2NoZWNrX2Nvbm5pbmZvOworCXdhbHJjdl9jb25uaW5m b19vcHRpb25zX2ZuIHdhbHJjdl9jb25uaW5mb19vcHRpb25zOwogCXdhbHJjdl9nZXRfY29ubmlu Zm9fZm4gd2FscmN2X2dldF9jb25uaW5mbzsKIAl3YWxyY3ZfZ2V0X3NlbmRlcmluZm9fZm4gd2Fs cmN2X2dldF9zZW5kZXJpbmZvOwogCXdhbHJjdl9pZGVudGlmeV9zeXN0ZW1fZm4gd2FscmN2X2lk ZW50aWZ5X3N5c3RlbTsKQEAgLTQxMCw2ICs0MjgsOCBAQCBleHRlcm4gUEdETExJTVBPUlQgV2Fs UmVjZWl2ZXJGdW5jdGlvbnNUeXBlICpXYWxSZWNlaXZlckZ1bmN0aW9uczsKIAlXYWxSZWNlaXZl ckZ1bmN0aW9ucy0+d2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIGxvZ2ljYWwsIG11c3RfdXNlX3Bh c3N3b3JkLCBhcHBuYW1lLCBlcnIpCiAjZGVmaW5lIHdhbHJjdl9jaGVja19jb25uaW5mbyhjb25u aW5mbywgbXVzdF91c2VfcGFzc3dvcmQpIFwKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2 X2NoZWNrX2Nvbm5pbmZvKGNvbm5pbmZvLCBtdXN0X3VzZV9wYXNzd29yZCkKKyNkZWZpbmUgd2Fs cmN2X2Nvbm5pbmZvX29wdGlvbnMoKSBcCisJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9j b25uaW5mb19vcHRpb25zKCkKICNkZWZpbmUgd2FscmN2X2dldF9jb25uaW5mbyhjb25uKSBcCiAJ V2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9nZXRfY29ubmluZm8oY29ubikKICNkZWZpbmUg d2FscmN2X2dldF9zZW5kZXJpbmZvKGNvbm4sIHNlbmRlcl9ob3N0LCBzZW5kZXJfcG9ydCkgXApk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0CmluZGV4IDFkZmUyM2Nj MWUuLjAyMTE1MzFmMzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9y ZWlnbl9kYXRhLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fZGF0 YS5vdXQKQEAgLTY4OCw2ICs2ODgsNTIgQEAgRFJPUCBTRVJWRVIgczc7CiAgdDEgICAgIHwgcmVn cmVzc190ZXN0X3JvbGUKICg4IHJvd3MpCiAKKy0tCistLSB0ZXN0IHBnX2Nvbm5pbmZvX2Zyb21f c2VydmVyKCkuCistLQorLS0gdXNlIHRlc3QgdmFsaWRhdG9yIGZ1bmN0aW9uIChub3QgYWxsIGxp YnBxIG9wdGlvbnMgc3VwcG9ydGVkKQorQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIHJlZ3Jl c3NfY29ubmVjdGlvbl9mZHcKKyAgVkFMSURBVE9SIHBnX2Nvbm5lY3Rpb25fdmFsaWRhdG9yOwor XHNldCBWRVJCT1NJVFkgdGVyc2UKK0NSRUFURSBTRVJWRVIgY29ubmVjdGlvbl9zZXJ2ZXIgRk9S RUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19jb25uZWN0aW9uX2ZkdworICBPUFRJT05TIChob3N0 ICd0aGVob3N0JywgY2xpZW50X2VuY29kaW5nICdMQVRJTjEnKTsgLS0gZmFpbAorRVJST1I6ICBp bnZhbGlkIG9wdGlvbiAiY2xpZW50X2VuY29kaW5nIgorQ1JFQVRFIFNFUlZFUiBjb25uZWN0aW9u X3NlcnZlciBGT1JFSUdOIERBVEEgV1JBUFBFUiByZWdyZXNzX2Nvbm5lY3Rpb25fZmR3CisgIE9Q VElPTlMgKGhvc3QgJ3RoZWhvc3QnLCBub25zZW5zZSAnYXNkZicpOyAtLSBmYWlsCitFUlJPUjog IGludmFsaWQgb3B0aW9uICJub25zZW5zZSIKK0NSRUFURSBTRVJWRVIgY29ubmVjdGlvbl9zZXJ2 ZXIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19jb25uZWN0aW9uX2ZkdworICBPUFRJT05T IChob3N0ICd0aGVob3N0JywgcGFzc3dvcmQgJ3NlY3JldCcpOyAtLSBmYWlsCitFUlJPUjogIGlu dmFsaWQgb3B0aW9uICJwYXNzd29yZCIKK1xzZXQgVkVSQk9TSVRZIGRlZmF1bHQKK0NSRUFURSBT RVJWRVIgY29ubmVjdGlvbl9zZXJ2ZXIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19jb25u ZWN0aW9uX2ZkdworICBPUFRJT05TIChoc290ICd0aGVob3N0Jyk7IC0tIGZhaWwgLSBtaXNzcGVs bGluZworRVJST1I6ICBpbnZhbGlkIG9wdGlvbiAiaHNvdCIKK0hJTlQ6ICBQZXJoYXBzIHlvdSBt ZWFudCB0aGUgb3B0aW9uICJob3N0Ii4KK0NSRUFURSBTRVJWRVIgY29ubmVjdGlvbl9zZXJ2ZXIg Rk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19jb25uZWN0aW9uX2ZkdworICBPUFRJT05TICho b3N0ICd0aGVob3N0JywgcG9ydCAnNTQzMicpOworQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgcmVn cmVzc190ZXN0X3JvbGUgU0VSVkVSIGNvbm5lY3Rpb25fc2VydmVyCisgIE9QVElPTlMgKHVzZXIg J3JvbGUnLCBwYXNzd29yZCAnc2VjcmV0JywgaG9zdCAnb3RoZXJob3N0Jyk7IC0tIGZhaWwKK0VS Uk9SOiAgaW52YWxpZCBvcHRpb24gImhvc3QiCitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiByZWdy ZXNzX3Rlc3Rfcm9sZSBTRVJWRVIgY29ubmVjdGlvbl9zZXJ2ZXIKKyAgT1BUSU9OUyAodXNlciAn cm9sZScsIHBhc3N3b3JkICdzZWNyZXQnKTsKK0NSRUFURSBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJ QyBTRVJWRVIgY29ubmVjdGlvbl9zZXJ2ZXIKKyAgT1BUSU9OUyAodXNlciAncHVibGljdXNlcics IHBhc3N3b3JkICRwd2QkJ1wiJCMgc2VjcmV0JyRwd2QkKTsKK1NFTEVDVCBwZ19jb25uaW5mb19m cm9tX3NlcnZlcignY29ubmVjdGlvbl9zZXJ2ZXInLCAncmVncmVzc190ZXN0X3JvbGUnLCBmYWxz ZSk7CisgICAgICAgICAgICAgICAgICAgICBwZ19jb25uaW5mb19mcm9tX3NlcnZlciAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGhvc3QgPSAndGhlaG9zdCcgcG9ydCA9ICc1NDMy JyB1c2VyID0gJ3JvbGUnIHBhc3N3b3JkID0gJ3NlY3JldCcKKygxIHJvdykKKworU0VMRUNUIHBn X2Nvbm5pbmZvX2Zyb21fc2VydmVyKCdjb25uZWN0aW9uX3NlcnZlcicsICdyZWdyZXNzX3Rlc3Rf cm9sZTInLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2Nvbm5pbmZv X2Zyb21fc2VydmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgaG9zdCA9ICd0aGVob3N0JyBwb3J0ID0gJzU0MzInIHVzZXIgPSAncHVi bGljdXNlcicgcGFzc3dvcmQgPSAnXCdcXCIkIyBzZWNyZXRcJycKKygxIHJvdykKKworRFJPUCBV U0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3NfdGVzdF9yb2xlIFNFUlZFUiBjb25uZWN0aW9uX3NlcnZl cjsKK0RST1AgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIGNvbm5lY3Rpb25fc2VydmVy OworRFJPUCBTRVJWRVIgY29ubmVjdGlvbl9zZXJ2ZXI7CitEUk9QIEZPUkVJR04gREFUQSBXUkFQ UEVSIHJlZ3Jlc3NfY29ubmVjdGlvbl9mZHc7CiAtLSBDUkVBVEUgRk9SRUlHTiBUQUJMRQogQ1JF QVRFIFNDSEVNQSBmb3JlaWduX3NjaGVtYTsKIENSRUFURSBTRVJWRVIgczAgRk9SRUlHTiBEQVRB IFdSQVBQRVIgZHVtbXk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JlaWdu X2RhdGEuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yZWlnbl9kYXRhLnNxbAppbmRleCBl ZWZiODYwYWRjLi5hOGUyZWRmZWVlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9m b3JlaWduX2RhdGEuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5z cWwKQEAgLTI5MSw2ICsyOTEsNDYgQEAgUkVTRVQgUk9MRTsKIERST1AgU0VSVkVSIHM3OwogXGRl dQogCistLQorLS0gdGVzdCBwZ19jb25uaW5mb19mcm9tX3NlcnZlcigpLgorLS0KKworLS0gdXNl IHRlc3QgdmFsaWRhdG9yIGZ1bmN0aW9uIChub3QgYWxsIGxpYnBxIG9wdGlvbnMgc3VwcG9ydGVk KQorQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIHJlZ3Jlc3NfY29ubmVjdGlvbl9mZHcKKyAg VkFMSURBVE9SIHBnX2Nvbm5lY3Rpb25fdmFsaWRhdG9yOworCitcc2V0IFZFUkJPU0lUWSB0ZXJz ZQorQ1JFQVRFIFNFUlZFUiBjb25uZWN0aW9uX3NlcnZlciBGT1JFSUdOIERBVEEgV1JBUFBFUiBy ZWdyZXNzX2Nvbm5lY3Rpb25fZmR3CisgIE9QVElPTlMgKGhvc3QgJ3RoZWhvc3QnLCBjbGllbnRf ZW5jb2RpbmcgJ0xBVElOMScpOyAtLSBmYWlsCitDUkVBVEUgU0VSVkVSIGNvbm5lY3Rpb25fc2Vy dmVyIEZPUkVJR04gREFUQSBXUkFQUEVSIHJlZ3Jlc3NfY29ubmVjdGlvbl9mZHcKKyAgT1BUSU9O UyAoaG9zdCAndGhlaG9zdCcsIG5vbnNlbnNlICdhc2RmJyk7IC0tIGZhaWwKK0NSRUFURSBTRVJW RVIgY29ubmVjdGlvbl9zZXJ2ZXIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19jb25uZWN0 aW9uX2ZkdworICBPUFRJT05TIChob3N0ICd0aGVob3N0JywgcGFzc3dvcmQgJ3NlY3JldCcpOyAt LSBmYWlsCitcc2V0IFZFUkJPU0lUWSBkZWZhdWx0CisKK0NSRUFURSBTRVJWRVIgY29ubmVjdGlv bl9zZXJ2ZXIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19jb25uZWN0aW9uX2ZkdworICBP UFRJT05TIChoc290ICd0aGVob3N0Jyk7IC0tIGZhaWwgLSBtaXNzcGVsbGluZworCitDUkVBVEUg U0VSVkVSIGNvbm5lY3Rpb25fc2VydmVyIEZPUkVJR04gREFUQSBXUkFQUEVSIHJlZ3Jlc3NfY29u bmVjdGlvbl9mZHcKKyAgT1BUSU9OUyAoaG9zdCAndGhlaG9zdCcsIHBvcnQgJzU0MzInKTsKKwor Q1JFQVRFIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc190ZXN0X3JvbGUgU0VSVkVSIGNvbm5lY3Rp b25fc2VydmVyCisgIE9QVElPTlMgKHVzZXIgJ3JvbGUnLCBwYXNzd29yZCAnc2VjcmV0JywgaG9z dCAnb3RoZXJob3N0Jyk7IC0tIGZhaWwKKworQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgcmVncmVz c190ZXN0X3JvbGUgU0VSVkVSIGNvbm5lY3Rpb25fc2VydmVyCisgIE9QVElPTlMgKHVzZXIgJ3Jv bGUnLCBwYXNzd29yZCAnc2VjcmV0Jyk7CitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMg U0VSVkVSIGNvbm5lY3Rpb25fc2VydmVyCisgIE9QVElPTlMgKHVzZXIgJ3B1YmxpY3VzZXInLCBw YXNzd29yZCAkcHdkJCdcIiQjIHNlY3JldCckcHdkJCk7CisKK1NFTEVDVCBwZ19jb25uaW5mb19m cm9tX3NlcnZlcignY29ubmVjdGlvbl9zZXJ2ZXInLCAncmVncmVzc190ZXN0X3JvbGUnLCBmYWxz ZSk7CisKK1NFTEVDVCBwZ19jb25uaW5mb19mcm9tX3NlcnZlcignY29ubmVjdGlvbl9zZXJ2ZXIn LCAncmVncmVzc190ZXN0X3JvbGUyJywgZmFsc2UpOworCitEUk9QIFVTRVIgTUFQUElORyBGT1Ig cmVncmVzc190ZXN0X3JvbGUgU0VSVkVSIGNvbm5lY3Rpb25fc2VydmVyOworRFJPUCBVU0VSIE1B UFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgY29ubmVjdGlvbl9zZXJ2ZXI7CitEUk9QIFNFUlZFUiBj b25uZWN0aW9uX3NlcnZlcjsKK0RST1AgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19jb25u ZWN0aW9uX2ZkdzsKKwogLS0gQ1JFQVRFIEZPUkVJR04gVEFCTEUKIENSRUFURSBTQ0hFTUEgZm9y ZWlnbl9zY2hlbWE7CiBDUkVBVEUgU0VSVkVSIHMwIEZPUkVJR04gREFUQSBXUkFQUEVSIGR1bW15 OwotLSAKMi4zNC4xCgo= --=-YphDLf/Pjh4HkC3f/IWz Content-Disposition: attachment; filename="v9-0002-CREATE-SUSBCRIPTION-.-SERVER.patch" Content-Type: text/x-patch; name="v9-0002-CREATE-SUSBCRIPTION-.-SERVER.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA1ZDY3N2NhNzY1NGYwODMyODBiMjYzNGQ5NDFlMDkyNThmYTk5Yzc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDIgSmFuIDIwMjQgMTM6NDI6NDggLTA4MDAKU3ViamVjdDogW1BBVENIIHY5IDIvM10gQ1JF QVRFIFNVU0JDUklQVElPTiAuLi4gU0VSVkVSLgoKQWxsb3cgc3BlY2lmeWluZyBhIGZvcmVpZ24g c2VydmVyIGZvciBDUkVBVEUgU1VCU0NSSVBUSU9OLCByYXRoZXIgdGhhbgphIHJhdyBjb25uZWN0 aW9uIHN0cmluZyB3aXRoIENPTk5FQ1RJT04uCgpVc2luZyBhIGZvcmVpZ24gc2VydmVyIGFzIGEg bGF5ZXIgb2YgaW5kaXJlY3Rpb24gaW1wcm92ZXMgbWFuYWdlbWVudApvZiBtdWx0aXBsZSBzdWJz Y3JpcHRpb25zIHRvIHRoZSBzYW1lIHNlcnZlci4gSXQgYWxzbyBwcm92aWRlcwppbnRlZ3JhdGlv biB3aXRoIHVzZXIgbWFwcGluZ3MgaW4gY2FzZSBkaWZmZXJlbnQgc3Vic2NyaXB0aW9ucyBoYXZl CmRpZmZlcmVudCBvd25lcnMgb3IgYSBzdWJzY3JpcHRpb24gY2hhbmdlcyBvd25lcnMuCgpEaXNj dXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzYxODMxNzkwYTBhOTM3MDM4Zjc4Y2UwOWY4ZGQ0 Y2VmN2RlNzQ1NmEuY2FtZWxAai1kYXZpcy5jb20KUmV2aWV3ZWQtYnk6IEFzaHV0b3NoIEJhcGF0 Ci0tLQogY29udHJpYi9wb3N0Z3Jlc19mZHcvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAy ICsKIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCAgICB8ICAgOCAr CiBjb250cmliL3Bvc3RncmVzX2Zkdy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgIDUgKwog Y29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgICAgIHwgICA3ICsKIGNv bnRyaWIvcG9zdGdyZXNfZmR3L3QvMDEwX3N1YnNjcmlwdGlvbi5wbCAgICB8ICA3MSArKysrKysr KwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgICAgIHwgIDE4ICst CiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCAgICAgfCAgMTEgKy0K IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgICAgICAgICB8ICAzOSArKyst CiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgICAgICAgfCAxNjggKysr KysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9mb3JlaWduL2ZvcmVpZ24uYyAgICAgICAgICAg ICAgICAgfCAgMjUgKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAg ICAgICAgfCAgMjAgKysrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5j ICAgICAgfCAgMTYgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAg ICAgICB8ICAyNyArKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggICAgICAg ICB8ICAgNyArLQogc3JjL2luY2x1ZGUvZm9yZWlnbi9mb3JlaWduLmggICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 ICAgMyArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fZGF0YS5vdXQgICAgfCAg MTQgKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCAgICB8ICA1 MyArKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5zcWwgICAgICAgICB8 ICAxOCArKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCAgICAgICAgIHwg IDU4ICsrKysrKwogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDAxX3JlcF9jaGFuZ2VzLnBsICAg IHwgIDYwICsrKysrKysKIDIzIGZpbGVzIGNoYW5nZWQsIDYwMSBpbnNlcnRpb25zKCspLCAzMyBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3Bvc3RncmVzX2Zkdy90LzAx MF9zdWJzY3JpcHRpb24ucGwKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9NYWtl ZmlsZSBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L01ha2VmaWxlCmluZGV4IGMxYjBjYWQ0NTMuLmMz NDk4ZWE2YjQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L01ha2VmaWxlCisrKyBi L2NvbnRyaWIvcG9zdGdyZXNfZmR3L01ha2VmaWxlCkBAIC0xOCw2ICsxOCw4IEBAIERBVEEgPSBw b3N0Z3Jlc19mZHctLTEuMC5zcWwgcG9zdGdyZXNfZmR3LS0xLjAtLTEuMS5zcWwKIAogUkVHUkVT UyA9IHBvc3RncmVzX2ZkdwogCitUQVBfVEVTVFMgPSAxCisKIGlmZGVmIFVTRV9QR1hTCiBQR19D T05GSUcgPSBwZ19jb25maWcKIFBHWFMgOj0gJChzaGVsbCAkKFBHX0NPTkZJRykgLS1wZ3hzKQpk aWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91 dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKaW5kZXgg OGE3YTE1Y2M1MS4uZWNkMDIzMDczOCAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcv ZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBl Y3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC0yNzAsNiArMjcwLDE0IEBAIFNFTEVDVCBjMywgYzQg RlJPTSBmdDEgT1JERVIgQlkgYzMsIGMxIExJTUlUIDE7ICAtLSBzaG91bGQgd29yayBhZ2Fpbgog QU5BTFlaRSBmdDE7CiBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MiBPUFRJT05TICh1c2VfcmVtb3Rl X2VzdGltYXRlICd0cnVlJyk7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSB0ZXN0IHN1YnNjcmlwdGlvbgor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3BnZmR3X3N1YnNjcmlw dGlvbiBTRVJWRVIgdGVzdHNlcnZlcjEKKyAgUFVCTElDQVRJT04gcHViMSBXSVRIIChzbG90X25h bWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2UpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMg Y3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNh dGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFi bGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KK0RST1Ag U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfcGdmZHdfc3Vic2NyaXB0aW9uOworLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0gdGVzdCBlcnJvciBjYXNlIGZvciBjcmVhdGUgcHVibGljYXRpb24gb24gZm9yZWlnbiB0YWJs ZQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZnRibCBGT1IgVEFC TEUgZnQxOyAgLS0gc2hvdWxkIGZhaWwKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L21lc29uLmJ1aWxkIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvbWVzb24uYnVpbGQKaW5kZXggMmI4 NmQ4YTZlZS4uY2Y3MDcxZGJmOCAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvbWVz b24uYnVpbGQKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvbWVzb24uYnVpbGQKQEAgLTM5LDQg KzM5LDkgQEAgdGVzdHMgKz0gewogICAgIF0sCiAgICAgJ3JlZ3Jlc3NfYXJncyc6IFsnLS1kbHBh dGgnLCBtZXNvbi5idWlsZF9yb290KCkgLyAnc3JjL3Rlc3QvcmVncmVzcyddLAogICB9LAorICAn dGFwJzogeworICAgICd0ZXN0cyc6IFsKKyAgICAgICd0LzAxMF9zdWJzY3JpcHRpb24ucGwnLAor ICAgIF0sCisgIH0sCiB9CmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9z dGdyZXNfZmR3LnNxbCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3Fs CmluZGV4IDBkODQ3ODEyMGQuLjFjOWMxMjcwM2YgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Nx bC9wb3N0Z3Jlc19mZHcuc3FsCkBAIC0yNTQsNiArMjU0LDEzIEBAIFNFTEVDVCBjMywgYzQgRlJP TSBmdDEgT1JERVIgQlkgYzMsIGMxIExJTUlUIDE7ICAtLSBzaG91bGQgd29yayBhZ2FpbgogQU5B TFlaRSBmdDE7CiBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MiBPUFRJT05TICh1c2VfcmVtb3RlX2Vz dGltYXRlICd0cnVlJyk7CiAKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIHRlc3Qgc3Vic2NyaXB0aW9uCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfcGdmZHdfc3Vic2NyaXB0 aW9uIFNFUlZFUiB0ZXN0c2VydmVyMQorICBQVUJMSUNBVElPTiBwdWIxIFdJVEggKHNsb3RfbmFt ZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Bn ZmR3X3N1YnNjcmlwdGlvbjsKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gdGVzdCBlcnJvciBjYXNlIGZv ciBjcmVhdGUgcHVibGljYXRpb24gb24gZm9yZWlnbiB0YWJsZQogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZm IC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvdC8wMTBfc3Vic2NyaXB0aW9uLnBsIGIvY29u dHJpYi9wb3N0Z3Jlc19mZHcvdC8wMTBfc3Vic2NyaXB0aW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAuLmEzOWU4ZmRiYmEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250 cmliL3Bvc3RncmVzX2Zkdy90LzAxMF9zdWJzY3JpcHRpb24ucGwKQEAgLTAsMCArMSw3MSBAQAor CisjIENvcHlyaWdodCAoYykgMjAyMS0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorCisjIEJhc2ljIGxvZ2ljYWwgcmVwbGljYXRpb24gdGVzdAordXNlIHN0cmljdDsK K3VzZSB3YXJuaW5ncyBGQVRBTCA9PiAnYWxsJzsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVz dGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKKyMg SW5pdGlhbGl6ZSBwdWJsaXNoZXIgbm9kZQorbXkgJG5vZGVfcHVibGlzaGVyID0gUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNoZXInKTsKKyRub2RlX3B1Ymxpc2hlci0+aW5p dChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0 OworCisjIENyZWF0ZSBzdWJzY3JpYmVyIG5vZGUKK215ICRub2RlX3N1YnNjcmliZXIgPSBQb3N0 Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNjcmliZXInKTsKKyRub2RlX3N1YnNjcmli ZXItPmluaXQ7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKKworIyBDcmVhdGUgc29tZSBwcmVl eGlzdGluZyBjb250ZW50IG9uIHB1Ymxpc2hlcgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRhYl9pbnMgQVMgU0VMRUNUIGEsIGEgKyAxIGFz IGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAyKSBBUyBhIik7CisKKyMgUmVwbGljYXRlIHRo ZSBjaGFuZ2VzIHdpdGhvdXQgY29sdW1ucworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfbm9fY29sKCkiKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRhYl9ub19jb2wgZGVmYXVsdCBW QUxVRVMiKTsKKworIyBTZXR1cCBzdHJ1Y3R1cmUgb24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgRVhURU5TSU9OIHBvc3RncmVzX2Zk dyIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgVEFC TEUgdGFiX2lucyAoYSBpbnQsIGIgaW50KSIpOworCisjIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRp b24KK215ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcg ZGJuYW1lPXBvc3RncmVzJzsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1YiBGT1IgVEFCTEUgdGFiX2lucyIpOworCitteSAk cHVibGlzaGVyX2hvc3QgPSAkbm9kZV9wdWJsaXNoZXItPmhvc3Q7CitteSAkcHVibGlzaGVyX3Bv cnQgPSAkbm9kZV9wdWJsaXNoZXItPnBvcnQ7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNFUlZFUiB0YXBfc2VydmVyIEZPUkVJR04gREFUQSBXUkFQ UEVSIHBvc3RncmVzX2ZkdyBPUFRJT05TIChob3N0ICckcHVibGlzaGVyX2hvc3QnLCBwb3J0ICck cHVibGlzaGVyX3BvcnQnLCBkYm5hbWUgJ3Bvc3RncmVzJykiCispOworCiskbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgUFVC TElDIFNFUlZFUiB0YXBfc2VydmVyIgorKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBGT1JFSUdOIFRBQkxFIGZfdGFiX2lucyAoYSBpbnQsIGIg aW50KSBTRVJWRVIgdGFwX3NlcnZlciBPUFRJT05TKHRhYmxlX25hbWUgJ3RhYl9pbnMnKSIKKyk7 Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlND UklQVElPTiB0YXBfc3ViIFNFUlZFUiB0YXBfc2VydmVyIFBVQkxJQ0FUSU9OIHRhcF9wdWIgV0lU SCAocGFzc3dvcmRfcmVxdWlyZWQ9ZmFsc2UpIgorKTsKKworIyBXYWl0IGZvciBpbml0aWFsIHRh YmxlIHN5bmMgdG8gZmluaXNoCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRp b25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViJyk7CisKK215ICRyZXN1bHQgPQorICAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBG Uk9NIChTRUxFQ1QgZi5iID0gbC5iIGFzIG1hdGNoIEZST00gdGFiX2lucyBsLCBmX3RhYl9pbnMg ZiBXSEVSRSBsLmEgPSBmLmEpIFdIRVJFIG1hdGNoIik7CitpcygkcmVzdWx0LCBxcSgxMDAyKSwg J2NoZWNrIGluaXRpYWwgZGF0YSB3YXMgY29waWVkIHRvIHN1YnNjcmliZXInKTsKKworJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX2lucyBT RUxFQ1QgYSwgYSArIDEgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMTAwMywxMDUwKSBhIik7CisKKyRu b2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1YicpOworCiskcmVzdWx0ID0K KyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQo KikgRlJPTSAoU0VMRUNUIGYuYiA9IGwuYiBhcyBtYXRjaCBGUk9NIHRhYl9pbnMgbCwgZl90YWJf aW5zIGYgV0hFUkUgbC5hID0gZi5hKSBXSEVSRSBtYXRjaCIpOworaXMoJHJlc3VsdCwgcXEoMTA1 MCksICdjaGVjayBpbml0aWFsIGRhdGEgd2FzIGNvcGllZCB0byBzdWJzY3JpYmVyJyk7CisKK2Rv bmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3Jp cHRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKaW5k ZXggNmQzNmZmMGRjOS4uNmQyMTkxNDVhOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl9zdWJzY3JpcHRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNj cmlwdGlvbi5zZ21sCkBAIC0yMSw2ICsyMSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgog CiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgorQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VSVkVSIDxyZXBs YWNlYWJsZT5zZXJ2ZXJuYW1lPC9yZXBsYWNlYWJsZT4KIEFMVEVSIFNVQlNDUklQVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IENPTk5FQ1RJT04g JzxyZXBsYWNlYWJsZT5jb25uaW5mbzwvcmVwbGFjZWFibGU+JwogQUxURVIgU1VCU0NSSVBUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFBV QkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9uYW1l PC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fb3B0aW9uPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQogQUxURVIg U1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gQUREIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJs aWNhdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggKCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb3B0aW9uPC9yZXBsYWNlYWJsZT4gWz0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBd ICkgXQpAQCAtOTQsMTMgKzk1LDI0IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgPC9s aXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwt YWx0ZXJzdWJzY3JpcHRpb24tcGFyYW1zLXNlcnZlciI+CisgICAgPHRlcm0+PGxpdGVyYWw+U0VS VkVSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXJ2ZXJuYW1lPC9yZXBsYWNlYWJs ZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGlzIGNsYXVzZSByZXBsYWNlcyB0aGUgZm9yZWlnbiBzZXJ2ZXIgb3IgY29ubmVjdGlvbiBzdHJp bmcgb3JpZ2luYWxseQorICAgICAgc2V0IGJ5IDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJz Y3JpcHRpb24iLz4gd2l0aCB0aGUgZm9yZWlnbiBzZXJ2ZXIKKyAgICAgIDxyZXBsYWNlYWJsZT5z ZXJ2ZXJuYW1lPC9yZXBsYWNlYWJsZT4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1hbHRlcnN1YnNj cmlwdGlvbi1wYXJhbXMtY29ubmVjdGlvbiI+CiAgICAgPHRlcm0+PGxpdGVyYWw+Q09OTkVDVElP TiAnPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbm5pbmZvPC9yZXBsYWNlYWJsZT4n PC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgotICAgICAgVGhp cyBjbGF1c2UgcmVwbGFjZXMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIG9yaWdpbmFsbHkgc2V0IGJ5 Ci0gICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uIi8+LiAgU2VlIHRo ZXJlIGZvciBtb3JlCi0gICAgICBpbmZvcm1hdGlvbi4KKyAgICAgIFRoaXMgY2xhdXNlIHJlcGxh Y2VzIHRoZSBmb3JlaWduIHNlcnZlciBvciBjb25uZWN0aW9uIHN0cmluZyBvcmlnaW5hbGx5Cisg ICAgICBzZXQgYnkgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbiIvPiB3aXRo IHRoZSBjb25uZWN0aW9uCisgICAgICBzdHJpbmcgPHJlcGxhY2VhYmxlPmNvbm5pbmZvPC9yZXBs YWNlYWJsZT4uCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50 cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IGM3YWNl OTIyZjkuLjI0NTM4YmFmOTggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1 YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlv bi5zZ21sCkBAIC0yMiw3ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZz eW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4KLSAgICBD T05ORUNUSU9OICc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29ubmluZm88L3JlcGxh Y2VhYmxlPicKKyAgICB7IFNFUlZFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vy dmVybmFtZTwvcmVwbGFjZWFibGU+IHwgQ09OTkVDVElPTiAnPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbm5pbmZvPC9yZXBsYWNlYWJsZT4nIH0KICAgICBQVUJMSUNBVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fbmFtZTwvcmVwbGFjZWFibGU+ IFssIC4uLl0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vi c2NyaXB0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApIF0KIDwvc3lub3BzaXM+ CkBAIC03Nyw2ICs3NywxNSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5zdWJzY3JpcHRpb25fbmFtZTwvcmVwbGFjZWFibAogICAgIDwvbGlzdGl0 ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXN1YnNjcmlwdGlvbi1wYXJhbXMtc2VydmVyIj4KKyAgICA8dGVybT48bGl0ZXJhbD5TRVJWRVIg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlcnZlcm5hbWU8L3JlcGxhY2VhYmxlPjwv bGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEEgZm9y ZWlnbiBzZXJ2ZXIgdG8gdXNlIGZvciB0aGUgY29ubmVjdGlvbi4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0i c3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtY29ubmVjdGlvbiI+CiAgICAgPHRlcm0+PGxp dGVyYWw+Q09OTkVDVElPTiAnPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbm5pbmZv PC9yZXBsYWNlYWJsZT4nPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwppbmRleCBjNTE2YzI1YWM3Li41YTJlYWE4MDNkIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKQEAgLTIwLDEyICsyMCwxNSBAQAog I2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNp bmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19mb3JlaWdu X3NlcnZlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCisjaW5jbHVkZSAiZm9yZWlnbi9mb3JlaWduLmgiCiAjaW5jbHVkZSAibWlzY2FkbWlu LmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdy LmgiCisjaW5jbHVkZSAidXRpbHMvYWNsLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKICNp bmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCkBA IC00MCw3ICs0Myw3IEBAIHN0YXRpYyBMaXN0ICp0ZXh0YXJyYXlfdG9fc3RyaW5nbGlzdChBcnJh eVR5cGUgKnRleHRhcnJheSk7CiAgKiBGZXRjaCB0aGUgc3Vic2NyaXB0aW9uIGZyb20gdGhlIHN5 c2NhY2hlLgogICovCiBTdWJzY3JpcHRpb24gKgotR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwg Ym9vbCBtaXNzaW5nX29rKQorR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5n X29rLCBib29sIGFjbGNoZWNrKQogewogCUhlYXBUdXBsZQl0dXA7CiAJU3Vic2NyaXB0aW9uICpz dWI7CkBAIC03NSwxMCArNzgsMzYgQEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBt aXNzaW5nX29rKQogCXN1Yi0+cnVuYXNvd25lciA9IHN1YmZvcm0tPnN1YnJ1bmFzb3duZXI7CiAK IAkvKiBHZXQgY29ubmluZm8gKi8KLQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoU1VC U0NSSVBUSU9OT0lELAotCQkJCQkJCQkgICB0dXAsCi0JCQkJCQkJCSAgIEFudW1fcGdfc3Vic2Ny aXB0aW9uX3N1YmNvbm5pbmZvKTsKLQlzdWItPmNvbm5pbmZvID0gVGV4dERhdHVtR2V0Q1N0cmlu ZyhkYXR1bSk7CisJaWYgKE9pZElzVmFsaWQoc3ViZm9ybS0+c3Vic2VydmVyKSkKKwl7CisJCUFj bFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJLyogcmVjaGVjayBBQ0wgaWYgcmVxdWVzdGVkICovCisJ CWlmIChhY2xjaGVjaykKKwkJeworCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKEZvcmVp Z25TZXJ2ZXJSZWxhdGlvbklkLAorCQkJCQkJCQkJCXN1YmZvcm0tPnN1YnNlcnZlciwKKwkJCQkJ CQkJCQlzdWJmb3JtLT5zdWJvd25lciwgQUNMX1VTQUdFKTsKKworCQkJaWYgKGFjbHJlc3VsdCAh PSBBQ0xDSEVDS19PSykKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkJCSBlcnJtc2coInN1YnNjcmlwdGlvbiBv d25lciBcIiVzXCIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIG9uIGZvcmVpZ24gc2VydmVyIFwi JXNcIiIsCisJCQkJCQkJCUdldFVzZXJOYW1lRnJvbUlkKHN1YmZvcm0tPnN1Ym93bmVyLCBmYWxz ZSksCisJCQkJCQkJCUZvcmVpZ25TZXJ2ZXJOYW1lKHN1YmZvcm0tPnN1YnNlcnZlcikpKSk7CisJ CX0KKworCQlzdWItPmNvbm5pbmZvID0gRm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoc3Vi Zm9ybS0+c3Vib3duZXIsCisJCQkJCQkJCQkJCQkJICBzdWJmb3JtLT5zdWJzZXJ2ZXIsCisJCQkJ CQkJCQkJCQkJICB0cnVlKTsKKwl9CisJZWxzZQorCXsKKwkJZGF0dW0gPSBTeXNDYWNoZUdldEF0 dHJOb3ROdWxsKFNVQlNDUklQVElPTk9JRCwKKwkJCQkJCQkJCSAgIHR1cCwKKwkJCQkJCQkJCSAg IEFudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZvKTsKKwkJc3ViLT5jb25uaW5mbyA9IFRl eHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCX0KIAogCS8qIEdldCBzbG90bmFtZSAqLwogCWRh dHVtID0gU3lzQ2FjaGVHZXRBdHRyKFNVQlNDUklQVElPTk9JRCwKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3N1YnNjcmlwdGlvbmNtZHMuYwppbmRleCA3NWU2Y2Q4YWUzLi45ODNiNWQxN2ZlIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC0yNSwxNCArMjUsMTcgQEAKICNp bmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1 dGhpZF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZV9kLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19mb3JlaWduX3NlcnZlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2Ny aXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb25fcmVsLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBp bmcuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj dXRvci5oIgorI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgogI2luY2x1ZGUgIm1pc2NhZG1p bi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgpA QCAtNTc0LDYgKzU3Nyw3IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUs IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19z dWJzY3JpcHRpb25dOwogCU9pZAkJCW93bmVyID0gR2V0VXNlcklkKCk7CiAJSGVhcFR1cGxlCXR1 cDsKKwlPaWQJCQlzZXJ2ZXJpZDsKIAljaGFyCSAgICpjb25uaW5mbzsKIAljaGFyCQlvcmlnaW5u YW1lW05BTUVEQVRBTEVOXTsKIAlMaXN0CSAgICpwdWJsaWNhdGlvbnM7CkBAIC02NjYsMTUgKzY3 MCw0MCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJz Y3JpcHRpb25TdG10ICpzdG10LAogCWlmIChvcHRzLnN5bmNocm9ub3VzX2NvbW1pdCA9PSBOVUxM KQogCQlvcHRzLnN5bmNocm9ub3VzX2NvbW1pdCA9ICJvZmYiOwogCi0JY29ubmluZm8gPSBzdG10 LT5jb25uaW5mbzsKLQlwdWJsaWNhdGlvbnMgPSBzdG10LT5wdWJsaWNhdGlvbjsKLQogCS8qIExv YWQgdGhlIGxpYnJhcnkgcHJvdmlkaW5nIHVzIGxpYnBxIGNhbGxzLiAqLwogCWxvYWRfZmlsZSgi bGlicHF3YWxyZWNlaXZlciIsIGZhbHNlKTsKIAorCWlmIChzdG10LT5zZXJ2ZXJuYW1lKQorCXsK KwkJRm9yZWlnblNlcnZlcgkqc2VydmVyOworCisJCUFzc2VydCghc3RtdC0+Y29ubmluZm8pOwor CQljb25uaW5mbyA9IE5VTEw7CisKKwkJc2VydmVyID0gR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShz dG10LT5zZXJ2ZXJuYW1lLCBmYWxzZSk7CisJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhG b3JlaWduU2VydmVyUmVsYXRpb25JZCwgc2VydmVyLT5zZXJ2ZXJpZCwgb3duZXIsIEFDTF9VU0FH RSk7CisJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQlhY2xjaGVja19lcnJvcihh Y2xyZXN1bHQsIE9CSkVDVF9GT1JFSUdOX1NFUlZFUiwgc2VydmVyLT5zZXJ2ZXJuYW1lKTsKKwor CQkvKiBtYWtlIHN1cmUgYSB1c2VyIG1hcHBpbmcgZXhpc3RzICovCisJCUdldFVzZXJNYXBwaW5n KG93bmVyLCBzZXJ2ZXItPnNlcnZlcmlkKTsKKworCQlzZXJ2ZXJpZCA9IHNlcnZlci0+c2VydmVy aWQ7CisJCWNvbm5pbmZvID0gRm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcob3duZXIsIHNl cnZlcmlkLCB0cnVlKTsKKwl9CisJZWxzZQorCXsKKwkJQXNzZXJ0KHN0bXQtPmNvbm5pbmZvKTsK KworCQlzZXJ2ZXJpZCA9IEludmFsaWRPaWQ7CisJCWNvbm5pbmZvID0gc3RtdC0+Y29ubmluZm87 CisJfQorCiAJLyogQ2hlY2sgdGhlIGNvbm5lY3Rpb24gaW5mbyBzdHJpbmcuICovCiAJd2FscmN2 X2NoZWNrX2Nvbm5pbmZvKGNvbm5pbmZvLCBvcHRzLnBhc3N3b3JkcmVxdWlyZWQgJiYgIXN1cGVy dXNlcigpKTsKIAorCXB1YmxpY2F0aW9ucyA9IHN0bXQtPnB1YmxpY2F0aW9uOworCiAJLyogRXZl cnl0aGluZyBvaywgZm9ybSBhIG5ldyB0dXBsZS4gKi8KIAltZW1zZXQodmFsdWVzLCAwLCBzaXpl b2YodmFsdWVzKSk7CiAJbWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CkBAIC02 OTcsOCArNzI2LDEyIEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENy ZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9u X3N1YmRpc2FibGVvbmVyciAtIDFdID0gQm9vbEdldERhdHVtKG9wdHMuZGlzYWJsZW9uZXJyKTsK IAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3VicGFzc3dvcmRyZXF1aXJlZCAtIDFdID0g Qm9vbEdldERhdHVtKG9wdHMucGFzc3dvcmRyZXF1aXJlZCk7CiAJdmFsdWVzW0FudW1fcGdfc3Vi c2NyaXB0aW9uX3N1YnJ1bmFzb3duZXIgLSAxXSA9IEJvb2xHZXREYXR1bShvcHRzLnJ1bmFzb3du ZXIpOwotCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyAtIDFdID0KLQkJ Q1N0cmluZ0dldFRleHREYXR1bShjb25uaW5mbyk7CisJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0 aW9uX3N1YnNlcnZlciAtIDFdID0gc2VydmVyaWQ7CisJaWYgKCFPaWRJc1ZhbGlkKHNlcnZlcmlk KSkKKwkJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZvIC0gMV0gPQorCQkJ Q1N0cmluZ0dldFRleHREYXR1bShjb25uaW5mbyk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3N1 YnNjcmlwdGlvbl9zdWJjb25uaW5mbyAtIDFdID0gdHJ1ZTsKIAlpZiAob3B0cy5zbG90X25hbWUp CiAJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzbG90bmFtZSAtIDFdID0KIAkJCURp cmVjdEZ1bmN0aW9uQ2FsbDEobmFtZWluLCBDU3RyaW5nR2V0RGF0dW0ob3B0cy5zbG90X25hbWUp KTsKQEAgLTcxOSw2ICs3NTIsMTcgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAogCXJlY29yZERlcGVuZGVuY3lP bk93bmVyKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkLCBvd25lcik7CiAKKwlPYmplY3RB ZGRyZXNzU2V0KG15c2VsZiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOworCisJaWYg KHN0bXQtPnNlcnZlcm5hbWUpCisJeworCQlPYmplY3RBZGRyZXNzIHJlZmVyZW5jZWQ7CisJCUFz c2VydChPaWRJc1ZhbGlkKHNlcnZlcmlkKSk7CisKKwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVu Y2VkLCBGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgc2VydmVyaWQpOworCQlyZWNvcmREZXBlbmRl bmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKKwl9CisKIAlS ZXBsaWNhdGlvbk9yaWdpbk5hbWVGb3JMb2dpY2FsUmVwKHN1YmlkLCBJbnZhbGlkT2lkLCBvcmln aW5uYW1lLCBzaXplb2Yob3JpZ2lubmFtZSkpOwogCXJlcGxvcmlnaW5fY3JlYXRlKG9yaWdpbm5h bWUpOwogCkBAIC04MzUsOCArODc5LDYgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAlpZiAob3B0cy5lbmFibGVk KQogCQlBcHBseUxhdW5jaGVyV2FrZXVwQXRDb21taXQoKTsKIAotCU9iamVjdEFkZHJlc3NTZXQo bXlzZWxmLCBTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCk7Ci0KIAlJbnZva2VPYmplY3RQ b3N0Q3JlYXRlSG9vayhTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCwgMCk7CiAKIAlyZXR1 cm4gbXlzZWxmOwpAQCAtMTEwNCw3ICsxMTQ2LDE0IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQlhY2xjaGVja19l cnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIE9CSkVDVF9TVUJTQ1JJUFRJT04sCiAJCQkJCSAgIHN0 bXQtPnN1Ym5hbWUpOwogCi0Jc3ViID0gR2V0U3Vic2NyaXB0aW9uKHN1YmlkLCBmYWxzZSk7CisJ LyoKKwkgKiBTa2lwIEFDTCBjaGVja3Mgb24gdGhlIHN1YnNjcmlwdGlvbidzIGZvcmVpZ24gc2Vy dmVyLCBpZiBhbnkuIElmCisJICogY2hhbmdpbmcgdGhlIHNlcnZlciAob3IgcmVwbGFjaW5nIGl0 IHdpdGggYSByYXcgY29ubmVjdGlvbiksIHRoZW4gdGhlCisJICogb2xkIG9uZSB3aWxsIGJlIHJl bW92ZWQgYW55d2F5LiBJZiBjaGFuZ2luZyBzb21ldGhpbmcgdW5yZWxhdGVkLAorCSAqIHRoZXJl J3Mgbm8gbmVlZCB0byBkbyBhbiBhZGRpdGlvbmFsIEFDTCBjaGVjayBoZXJlOyB0aGF0IHdpbGwg YmUgZG9uZQorCSAqIGJ5IHRoZSBzdWJzY3JpcHRpb24gd29ya2VyIGFueXdheS4KKwkgKi8KKwlz dWIgPSBHZXRTdWJzY3JpcHRpb24oc3ViaWQsIGZhbHNlLCBmYWxzZSk7CiAKIAkvKgogCSAqIERv bid0IGFsbG93IG5vbi1zdXBlcnVzZXIgbW9kaWZpY2F0aW9uIG9mIGEgc3Vic2NyaXB0aW9uIHdp dGgKQEAgLTExMjQsNiArMTE3Myw4IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCW1lbXNldChudWxscywgZmFsc2Us IHNpemVvZihudWxscykpOwogCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBsYWNl cykpOwogCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQs IHN1YmlkKTsKKwogCXN3aXRjaCAoc3RtdC0+a2luZCkKIAl7CiAJCWNhc2UgQUxURVJfU1VCU0NS SVBUSU9OX09QVElPTlM6CkBAIC0xMjQ0LDcgKzEyOTUsODAgQEAgQWx0ZXJTdWJzY3JpcHRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJYnJl YWs7CiAJCQl9CiAKKwkJY2FzZSBBTFRFUl9TVUJTQ1JJUFRJT05fU0VSVkVSOgorCQkJeworCQkJ CUZvcmVpZ25TZXJ2ZXIJKm5ld19zZXJ2ZXI7CisJCQkJT2JqZWN0QWRkcmVzcwkgcmVmZXJlbmNl ZDsKKwkJCQlBY2xSZXN1bHQJCSBhY2xyZXN1bHQ7CisJCQkJY2hhcgkJCSpjb25uaW5mbzsKKwor CQkJCS8qCisJCQkJICogUmVtb3ZlIHdoYXQgd2FzIHRoZXJlIGJlZm9yZSwgZWl0aGVyIGFub3Ro ZXIgZm9yZWlnbiBzZXJ2ZXIKKwkJCQkgKiBvciBhIGNvbm5lY3Rpb24gc3RyaW5nLgorCQkJCSAq LworCQkJCWlmIChmb3JtLT5zdWJzZXJ2ZXIpCisJCQkJeworCQkJCQlkZWxldGVEZXBlbmRlbmN5 UmVjb3Jkc0ZvclNwZWNpZmljKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIGZvcm0tPm9pZCwKKwkJ CQkJCQkJCQkJCQkgICBERVBFTkRFTkNZX05PUk1BTCwKKwkJCQkJCQkJCQkJCQkgICBGb3JlaWdu U2VydmVyUmVsYXRpb25JZCwgZm9ybS0+c3Vic2VydmVyKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJ CXsKKwkJCQkJbnVsbHNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8gLSAxXSA9IHRy dWU7CisJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZvIC0gMV0g PSB0cnVlOworCQkJCX0KKworCQkJCS8qCisJCQkJICogRmluZCB0aGUgbmV3IHNlcnZlciBhbmQg dXNlciBtYXBwaW5nLiBDaGVjayBBQ0wgb2Ygc2VydmVyCisJCQkJICogYmFzZWQgb24gY3VycmVu dCB1c2VyIElELCBidXQgZmluZCB0aGUgdXNlciBtYXBwaW5nIGJhc2VkCisJCQkJICogb24gdGhl IHN1YnNjcmlwdGlvbiBvd25lci4KKwkJCQkgKi8KKwkJCQluZXdfc2VydmVyID0gR2V0Rm9yZWln blNlcnZlckJ5TmFtZShzdG10LT5zZXJ2ZXJuYW1lLCBmYWxzZSk7CisJCQkJYWNscmVzdWx0ID0g b2JqZWN0X2FjbGNoZWNrKEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklkLAorCQkJCQkJCQkJCQluZXdf c2VydmVyLT5zZXJ2ZXJpZCwKKwkJCQkJCQkJCQkJZm9ybS0+c3Vib3duZXIsIEFDTF9VU0FHRSk7 CisJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkJ CSBlcnJtc2coInN1YnNjcmlwdGlvbiBvd25lciBcIiVzXCIgZG9lcyBub3QgaGF2ZSBwZXJtaXNz aW9uIG9uIGZvcmVpZ24gc2VydmVyIFwiJXNcIiIsCisJCQkJCQkJCQlHZXRVc2VyTmFtZUZyb21J ZChmb3JtLT5zdWJvd25lciwgZmFsc2UpLAorCQkJCQkJCQkJRm9yZWlnblNlcnZlck5hbWUobmV3 X3NlcnZlci0+c2VydmVyaWQpKSkpOworCisJCQkJLyogbWFrZSBzdXJlIGEgdXNlciBtYXBwaW5n IGV4aXN0cyAqLworCQkJCUdldFVzZXJNYXBwaW5nKGZvcm0tPnN1Ym93bmVyLCBuZXdfc2VydmVy LT5zZXJ2ZXJpZCk7CisKKwkJCQljb25uaW5mbyA9IEZvcmVpZ25TZXJ2ZXJDb25uZWN0aW9uU3Ry aW5nKGZvcm0tPnN1Ym93bmVyLAorCQkJCQkJCQkJCQkJCQkgbmV3X3NlcnZlci0+c2VydmVyaWQs CisJCQkJCQkJCQkJCQkJCSB0cnVlKTsKKworCQkJCS8qIExvYWQgdGhlIGxpYnJhcnkgcHJvdmlk aW5nIHVzIGxpYnBxIGNhbGxzLiAqLworCQkJCWxvYWRfZmlsZSgibGlicHF3YWxyZWNlaXZlciIs IGZhbHNlKTsKKwkJCQkvKiBDaGVjayB0aGUgY29ubmVjdGlvbiBpbmZvIHN0cmluZy4gKi8KKwkJ CQl3YWxyY3ZfY2hlY2tfY29ubmluZm8oY29ubmluZm8sCisJCQkJCQkJCQkgIHN1Yi0+cGFzc3dv cmRyZXF1aXJlZCAmJiAhc3ViLT5vd25lcnN1cGVydXNlcik7CisKKwkJCQl2YWx1ZXNbQW51bV9w Z19zdWJzY3JpcHRpb25fc3Vic2VydmVyIC0gMV0gPSBuZXdfc2VydmVyLT5zZXJ2ZXJpZDsKKwkJ CQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzZXJ2ZXIgLSAxXSA9IHRydWU7CisK KwkJCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklk LCBuZXdfc2VydmVyLT5zZXJ2ZXJpZCk7CisJCQkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYs ICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CisKKwkJCQl1cGRhdGVfdHVwbGUgPSB0 cnVlOworCQkJfQorCQkJYnJlYWs7CisKIAkJY2FzZSBBTFRFUl9TVUJTQ1JJUFRJT05fQ09OTkVD VElPTjoKKwkJCS8qIHJlbW92ZSByZWZlcmVuY2UgdG8gZm9yZWlnbiBzZXJ2ZXIgYW5kIGRlcGVu ZGVuY2llcywgaWYgcHJlc2VudCAqLworCQkJaWYgKGZvcm0tPnN1YnNlcnZlcikKKwkJCXsKKwkJ CQlkZWxldGVEZXBlbmRlbmN5UmVjb3Jkc0ZvclNwZWNpZmljKFN1YnNjcmlwdGlvblJlbGF0aW9u SWQsIGZvcm0tPm9pZCwKKwkJCQkJCQkJCQkJCSAgIERFUEVOREVOQ1lfTk9STUFMLAorCQkJCQkJ CQkJCQkJICAgRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsIGZvcm0tPnN1YnNlcnZlcik7CisKKwkJ CQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vic2VydmVyIC0gMV0gPSBJbnZhbGlkT2lk OworCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnNlcnZlciAtIDFdID0gdHJ1 ZTsKKwkJCX0KKwogCQkJLyogTG9hZCB0aGUgbGlicmFyeSBwcm92aWRpbmcgdXMgbGlicHEgY2Fs bHMuICovCiAJCQlsb2FkX2ZpbGUoImxpYnBxd2FscmVjZWl2ZXIiLCBmYWxzZSk7CiAJCQkvKiBD aGVjayB0aGUgY29ubmVjdGlvbiBpbmZvIHN0cmluZy4gKi8KQEAgLTE0NTUsOCArMTU3OSw2IEBA IEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25T dG10ICpzdG10LAogCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAotCU9i amVjdEFkZHJlc3NTZXQobXlzZWxmLCBTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCk7Ci0K IAlJbnZva2VPYmplY3RQb3N0QWx0ZXJIb29rKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1Ymlk LCAwKTsKIAogCS8qIFdha2UgdXAgcmVsYXRlZCByZXBsaWNhdGlvbiB3b3JrZXJzIHRvIGhhbmRs ZSB0aGlzIGNoYW5nZSBxdWlja2x5LiAqLwpAQCAtMTU0MSw5ICsxNjYzLDI4IEBAIERyb3BTdWJz Y3JpcHRpb24oRHJvcFN1YnNjcmlwdGlvblN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAlz dWJuYW1lID0gcHN0cmR1cChOYW1lU3RyKCpEYXR1bUdldE5hbWUoZGF0dW0pKSk7CiAKIAkvKiBH ZXQgY29ubmluZm8gKi8KLQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoU1VCU0NSSVBU SU9OT0lELCB0dXAsCi0JCQkJCQkJCSAgIEFudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZv KTsKLQljb25uaW5mbyA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCWlmIChPaWRJc1Zh bGlkKGZvcm0tPnN1YnNlcnZlcikpCisJeworCQlBY2xSZXN1bHQgYWNscmVzdWx0OworCisJCWFj bHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgZm9ybS0+ c3Vic2VydmVyLAorCQkJCQkJCQkJZm9ybS0+c3Vib3duZXIsIEFDTF9VU0FHRSk7CisJCWlmIChh Y2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkgZXJybXNnKCJzdWJzY3Jp cHRpb24gb3duZXIgXCIlc1wiIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiBvbiBmb3JlaWduIHNl cnZlciBcIiVzXCIiLAorCQkJCQkJCUdldFVzZXJOYW1lRnJvbUlkKGZvcm0tPnN1Ym93bmVyLCBm YWxzZSksCisJCQkJCQkJRm9yZWlnblNlcnZlck5hbWUoZm9ybS0+c3Vic2VydmVyKSkpKTsKKwor CQljb25uaW5mbyA9IEZvcmVpZ25TZXJ2ZXJDb25uZWN0aW9uU3RyaW5nKGZvcm0tPnN1Ym93bmVy LAorCQkJCQkJCQkJCQkJIGZvcm0tPnN1YnNlcnZlciwgdHJ1ZSk7CisJfQorCWVsc2UKKwl7CisJ CWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJUFRJT05PSUQsIHR1cCwKKwkJ CQkJCQkJCSAgIEFudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZvKTsKKwkJY29ubmluZm8g PSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKwl9CiAKIAkvKiBHZXQgc2xvdG5hbWUgKi8K IAlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihTVUJTQ1JJUFRJT05PSUQsIHR1cCwKQEAgLTE2NDQs NiArMTc4NSw3IEBAIERyb3BTdWJzY3JpcHRpb24oRHJvcFN1YnNjcmlwdGlvblN0bXQgKnN0bXQs IGJvb2wgaXNUb3BMZXZlbCkKIAl9CiAKIAkvKiBDbGVhbiB1cCBkZXBlbmRlbmNpZXMgKi8KKwlk ZWxldGVEZXBlbmRlbmN5UmVjb3Jkc0ZvcihTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCwg ZmFsc2UpOwogCWRlbGV0ZVNoYXJlZERlcGVuZGVuY3lSZWNvcmRzRm9yKFN1YnNjcmlwdGlvblJl bGF0aW9uSWQsIHN1YmlkLCAwKTsKIAogCS8qIFJlbW92ZSBhbnkgYXNzb2NpYXRlZCByZWxhdGlv biBzeW5jaHJvbml6YXRpb24gc3RhdGVzLiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZm9y ZWlnbi9mb3JlaWduLmMgYi9zcmMvYmFja2VuZC9mb3JlaWduL2ZvcmVpZ24uYwppbmRleCBiNDYz NWQ2ZWJhLi5kYjJjZjY3ODBkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9mb3JlaWduL2ZvcmVp Z24uYworKysgYi9zcmMvYmFja2VuZC9mb3JlaWduL2ZvcmVpZ24uYwpAQCAtMTc5LDYgKzE3OSwz MSBAQCBHZXRGb3JlaWduU2VydmVyRXh0ZW5kZWQoT2lkIHNlcnZlcmlkLCBiaXRzMTYgZmxhZ3Mp CiB9CiAKIAorLyoKKyAqIEZvcmVpZ25TZXJ2ZXJOYW1lIC0gZ2V0IG5hbWUgb2YgZm9yZWlnbiBz ZXJ2ZXIuCisgKi8KK2NoYXIgKgorRm9yZWlnblNlcnZlck5hbWUoT2lkIHNlcnZlcmlkKQorewor CUZvcm1fcGdfZm9yZWlnbl9zZXJ2ZXIgc2VydmVyZm9ybTsKKwljaGFyICpzZXJ2ZXJuYW1lOwor CUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUxKEZPUkVJR05TRVJWRVJPSUQs IE9iamVjdElkR2V0RGF0dW0oc2VydmVyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBmb3JlaWduIHNlcnZl ciAldSIsIHNlcnZlcmlkKTsKKworCXNlcnZlcmZvcm0gPSAoRm9ybV9wZ19mb3JlaWduX3NlcnZl cikgR0VUU1RSVUNUKHRwKTsKKworCXNlcnZlcm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoc2VydmVy Zm9ybS0+c3J2bmFtZSkpOworCisJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKworCXJldHVybiBzZXJ2 ZXJuYW1lOworfQorCisKIC8qCiAgKiBHZXRGb3JlaWduU2VydmVyQnlOYW1lIC0gbG9vayB1cCB0 aGUgZm9yZWlnbiBzZXJ2ZXIgZGVmaW5pdGlvbiBieSBuYW1lLgogICovCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRl eCAzNDYwZmVhNTZiLi5jMjdlMGI4YjVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEwNjU0LDYgKzEwNjU0 LDE2IEBAIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQ6CiAJCQkJCW4tPm9wdGlvbnMgPSAkODsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQ1JFQVRFIFNVQlNDUklQVElPTiBuYW1l IFNFUlZFUiBuYW1lIFBVQkxJQ0FUSU9OIG5hbWVfbGlzdCBvcHRfZGVmaW5pdGlvbgorCQkJCXsK KwkJCQkJQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqbiA9CisJCQkJCQltYWtlTm9kZShDcmVhdGVT dWJzY3JpcHRpb25TdG10KTsKKwkJCQkJbi0+c3VibmFtZSA9ICQzOworCQkJCQluLT5zZXJ2ZXJu YW1lID0gJDU7CisJCQkJCW4tPnB1YmxpY2F0aW9uID0gJDc7CisJCQkJCW4tPm9wdGlvbnMgPSAk ODsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJOwogCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKQEAgLTEwNjgzLDYgKzEwNjkzLDE2IEBAIEFsdGVyU3Vic2NyaXB0aW9uU3RtdDoKIAkJ CQkJbi0+Y29ubmluZm8gPSAkNTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwg QUxURVIgU1VCU0NSSVBUSU9OIG5hbWUgU0VSVkVSIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyU3Vi c2NyaXB0aW9uU3RtdCAqbiA9CisJCQkJCQltYWtlTm9kZShBbHRlclN1YnNjcmlwdGlvblN0bXQp OworCisJCQkJCW4tPmtpbmQgPSBBTFRFUl9TVUJTQ1JJUFRJT05fU0VSVkVSOworCQkJCQluLT5z dWJuYW1lID0gJDM7CisJCQkJCW4tPnNlcnZlcm5hbWUgPSAkNTsKKwkJCQkJJCQgPSAoTm9kZSAq KSBuOworCQkJCX0KIAkJCXwgQUxURVIgU1VCU0NSSVBUSU9OIG5hbWUgUkVGUkVTSCBQVUJMSUNB VElPTiBvcHRfZGVmaW5pdGlvbgogCQkJCXsKIAkJCQkJQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpu ID0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IDliNTk4Y2Fm M2MuLjBhZGUzMTUwYmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvd29ya2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIu YwpAQCAtMzg5Nyw3ICszODk3LDcgQEAgbWF5YmVfcmVyZWFkX3N1YnNjcmlwdGlvbih2b2lkKQog CS8qIEVuc3VyZSBhbGxvY2F0aW9ucyBpbiBwZXJtYW5lbnQgY29udGV4dC4gKi8KIAlvbGRjdHgg PSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBwbHlDb250ZXh0KTsKIAotCW5ld3N1YiA9IEdldFN1 YnNjcmlwdGlvbihNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkLCB0cnVlKTsKKwluZXdzdWIgPSBH ZXRTdWJzY3JpcHRpb24oTXlMb2dpY2FsUmVwV29ya2VyLT5zdWJpZCwgdHJ1ZSwgdHJ1ZSk7CiAK IAkvKgogCSAqIEV4aXQgaWYgdGhlIHN1YnNjcmlwdGlvbiB3YXMgcmVtb3ZlZC4gVGhpcyBub3Jt YWxseSBzaG91bGQgbm90IGhhcHBlbgpAQCAtNDAwMyw3ICs0MDAzLDkgQEAgbWF5YmVfcmVyZWFk X3N1YnNjcmlwdGlvbih2b2lkKQogfQogCiAvKgotICogQ2FsbGJhY2sgZnJvbSBzdWJzY3JpcHRp b24gc3lzY2FjaGUgaW52YWxpZGF0aW9uLgorICogQ2FsbGJhY2sgZnJvbSBzdWJzY3JpcHRpb24g c3lzY2FjaGUgaW52YWxpZGF0aW9uLiBBbHNvIG5lZWRlZCBmb3Igc2VydmVyIG9yCisgKiB1c2Vy IG1hcHBpbmcgaW52YWxpZGF0aW9uLCB3aGljaCBjYW4gY2hhbmdlIHRoZSBjb25uZWN0aW9uIGlu Zm9ybWF0aW9uIGZvcgorICogc3Vic2NyaXB0aW9ucyB0aGF0IGNvbm5lY3QgdXNpbmcgYSBzZXJ2 ZXIgb2JqZWN0LgogICovCiBzdGF0aWMgdm9pZAogc3Vic2NyaXB0aW9uX2NoYW5nZV9jYihEYXR1 bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQpAQCAtNDYwMiw3ICs0NjA0LDcg QEAgSW5pdGlhbGl6ZUxvZ1JlcFdvcmtlcih2b2lkKQogCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5k KCk7CiAJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKEFwcGx5Q29udGV4dCk7CiAKLQlN eVN1YnNjcmlwdGlvbiA9IEdldFN1YnNjcmlwdGlvbihNeUxvZ2ljYWxSZXBXb3JrZXItPnN1Ymlk LCB0cnVlKTsKKwlNeVN1YnNjcmlwdGlvbiA9IEdldFN1YnNjcmlwdGlvbihNeUxvZ2ljYWxSZXBX b3JrZXItPnN1YmlkLCB0cnVlLCB0cnVlKTsKIAlpZiAoIU15U3Vic2NyaXB0aW9uKQogCXsKIAkJ ZXJlcG9ydChMT0csCkBAIC00NjM5LDYgKzQ2NDEsMTQgQEAgSW5pdGlhbGl6ZUxvZ1JlcFdvcmtl cih2b2lkKQogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKFNVQlNDUklQVElPTk9JRCwK IAkJCQkJCQkJICBzdWJzY3JpcHRpb25fY2hhbmdlX2NiLAogCQkJCQkJCQkgIChEYXR1bSkgMCk7 CisJLyogS2VlcCB1cyBpbmZvcm1lZCBhYm91dCBzdWJzY3JpcHRpb24gY2hhbmdlcy4gKi8KKwlD YWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhGT1JFSUdOU0VSVkVST0lELAorCQkJCQkJCQkg IHN1YnNjcmlwdGlvbl9jaGFuZ2VfY2IsCisJCQkJCQkJCSAgKERhdHVtKSAwKTsKKwkvKiBLZWVw IHVzIGluZm9ybWVkIGFib3V0IHN1YnNjcmlwdGlvbiBjaGFuZ2VzLiAqLworCUNhY2hlUmVnaXN0 ZXJTeXNjYWNoZUNhbGxiYWNrKFVTRVJNQVBQSU5HT0lELAorCQkJCQkJCQkgIHN1YnNjcmlwdGlv bl9jaGFuZ2VfY2IsCisJCQkJCQkJCSAgKERhdHVtKSAwKTsKIAogCUNhY2hlUmVnaXN0ZXJTeXNj YWNoZUNhbGxiYWNrKEFVVEhPSUQsCiAJCQkJCQkJCSAgc3Vic2NyaXB0aW9uX2NoYW5nZV9jYiwK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5jCmluZGV4IGJjMjBhMDI1Y2UuLjUzMTIwMDhhODIgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAt NDYzNCw2ICs0NjM0LDcgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCWludAkJ CWlfc3ViZGlzYWJsZW9uZXJyOwogCWludAkJCWlfc3VicGFzc3dvcmRyZXF1aXJlZDsKIAlpbnQJ CQlpX3N1YnJ1bmFzb3duZXI7CisJaW50CQkJaV9zdWJzZXJ2ZXJuYW1lOwogCWludAkJCWlfc3Vi Y29ubmluZm87CiAJaW50CQkJaV9zdWJzbG90bmFtZTsKIAlpbnQJCQlpX3N1YnN5bmNjb21taXQ7 CkBAIC00NzA1LDEwICs0NzA2LDEyIEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkK IAkJCQkJCSAgTE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsKIAogCWlmIChkb3B0LT5iaW5hcnlfdXBn cmFkZSAmJiBmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE3MDAwMCkKLQkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocXVlcnksICIgby5yZW1vdGVfbHNuIEFTIHN1Ym9yaWdpbnJlbW90ZWxzbixcbiIKKwkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgZnMuc3J2bmFtZSBBUyBzdWJzZXJ2ZXJuYW1l LFxuIgorCQkJCQkJCSAiIG8ucmVtb3RlX2xzbiBBUyBzdWJvcmlnaW5yZW1vdGVsc24sXG4iCiAJ CQkJCQkJICIgcy5zdWJlbmFibGVkXG4iKTsKIAllbHNlCi0JCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KHF1ZXJ5LCAiIE5VTEwgQVMgc3Vib3JpZ2lucmVtb3RlbHNuLFxuIgorCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihxdWVyeSwgIiBOVUxMIEFTIHN1YnNlcnZlcm5hbWUsXG4iCisJCQkJCQkJICIgTlVM TCBBUyBzdWJvcmlnaW5yZW1vdGVsc24sXG4iCiAJCQkJCQkJICIgZmFsc2UgQVMgc3ViZW5hYmxl ZFxuIik7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKQEAgLTQ3MTYsNiArNDcxOSw4 IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAogCWlmIChkb3B0LT5iaW5hcnlf dXBncmFkZSAmJiBmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE3MDAwMCkKIAkJYXBwZW5kUFFFeHBC dWZmZXJTdHIocXVlcnksCisJCQkJCQkJICJMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19mb3JlaWdu X3NlcnZlciBmcyBcbiIKKwkJCQkJCQkgIiAgICBPTiBmcy5vaWQgPSBzLnN1YnNlcnZlciBcbiIK IAkJCQkJCQkgIkxFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX29yaWdpbl9zdGF0 dXMgbyBcbiIKIAkJCQkJCQkgIiAgICBPTiBvLmV4dGVybmFsX2lkID0gJ3BnXycgfHwgcy5vaWQ6 OnRleHQgXG4iKTsKIApAQCAtNDc0MSw2ICs0NzQ2LDcgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNo aXZlICpmb3V0KQogCWlfc3ViZGlzYWJsZW9uZXJyID0gUFFmbnVtYmVyKHJlcywgInN1YmRpc2Fi bGVvbmVyciIpOwogCWlfc3VicGFzc3dvcmRyZXF1aXJlZCA9IFBRZm51bWJlcihyZXMsICJzdWJw YXNzd29yZHJlcXVpcmVkIik7CiAJaV9zdWJydW5hc293bmVyID0gUFFmbnVtYmVyKHJlcywgInN1 YnJ1bmFzb3duZXIiKTsKKwlpX3N1YnNlcnZlcm5hbWUgPSBQUWZudW1iZXIocmVzLCAic3Vic2Vy dmVybmFtZSIpOwogCWlfc3ViY29ubmluZm8gPSBQUWZudW1iZXIocmVzLCAic3ViY29ubmluZm8i KTsKIAlpX3N1YnNsb3RuYW1lID0gUFFmbnVtYmVyKHJlcywgInN1YnNsb3RuYW1lIik7CiAJaV9z dWJzeW5jY29tbWl0ID0gUFFmbnVtYmVyKHJlcywgInN1YnN5bmNjb21taXQiKTsKQEAgLTQ3NjAs NyArNDc2NiwxMCBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJCUFzc2lnbkR1 bXBJZCgmc3ViaW5mb1tpXS5kb2JqKTsKIAkJc3ViaW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJk dXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3VibmFtZSkpOwogCQlzdWJpbmZvW2ldLnJvbG5hbWUg PSBnZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJvd25lcikpOwotCisJCWlmIChQ UWdldGlzbnVsbChyZXMsIGksIGlfc3Vic2VydmVybmFtZSkpCisJCQlzdWJpbmZvW2ldLnN1YnNl cnZlcm5hbWUgPSBOVUxMOworCQllbHNlCisJCQlzdWJpbmZvW2ldLnN1YnNlcnZlcm5hbWUgPSBw Z19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3Vic2VydmVybmFtZSkpOwogCQlzdWJpbmZv W2ldLnN1YmJpbmFyeSA9CiAJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3ViYmlu YXJ5KSk7CiAJCXN1YmluZm9baV0uc3Vic3RyZWFtID0KQEAgLTQ5ODYsOSArNDk5NSwxNyBAQCBk dW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1 YmluZm8pCiAJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgU1VCU0NSSVBUSU9OICVzO1xu IiwKIAkJCQkJICBxc3VibmFtZSk7CiAKLQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFU RSBTVUJTQ1JJUFRJT04gJXMgQ09OTkVDVElPTiAiLAorCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiQ1JFQVRFIFNVQlNDUklQVElPTiAlcyAiLAogCQkJCQkgIHFzdWJuYW1lKTsKLQlhcHBlbmRT dHJpbmdMaXRlcmFsQUgocXVlcnksIHN1YmluZm8tPnN1YmNvbm5pbmZvLCBmb3V0KTsKKwlpZiAo c3ViaW5mby0+c3Vic2VydmVybmFtZSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAi U0VSVkVSICVzIiwgZm10SWQoc3ViaW5mby0+c3Vic2VydmVybmFtZSkpOworCX0KKwllbHNlCisJ eworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNPTk5FQ1RJT04gIik7CisJCWFwcGVuZFN0 cmluZ0xpdGVyYWxBSChxdWVyeSwgc3ViaW5mby0+c3ViY29ubmluZm8sIGZvdXQpOworCX0KIAog CS8qIEJ1aWxkIGxpc3Qgb2YgcXVvdGVkIHB1YmxpY2F0aW9ucyBhbmQgYXBwZW5kIHRoZW0gdG8g cXVlcnkuICovCiAJaWYgKCFwYXJzZVBHQXJyYXkoc3ViaW5mby0+c3VicHVibGljYXRpb25zLCAm cHVibmFtZXMsICZucHVibmFtZXMpKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggZjA3NzJkMjE1Ny4uODQ5OTUw ZTQ3MCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oCkBAIC02NTksNiArNjU5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1 YnNjcmlwdGlvbkluZm8KIAljaGFyCSAgICpzdWJkaXNhYmxlb25lcnI7CiAJY2hhcgkgICAqc3Vi cGFzc3dvcmRyZXF1aXJlZDsKIAljaGFyCSAgICpzdWJydW5hc293bmVyOworCWNoYXIJICAgKnN1 YnNlcnZlcm5hbWU7CiAJY2hhcgkgICAqc3ViY29ubmluZm87CiAJY2hhcgkgICAqc3Vic2xvdG5h bWU7CiAJY2hhcgkgICAqc3Vic3luY2NvbW1pdDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCBhZGE3MTFk MDJmLi42MTZjOTBjNDhiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMK KysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0zMzI3LDcgKzMzMjcsNyBAQCBw c3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCiAv KiBDUkVBVEUgU1VCU0NSSVBUSU9OICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlNV QlNDUklQVElPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQ09OTkVDVElPTiIpOwor CQlDT01QTEVURV9XSVRIKCJTRVJWRVIiLCAiQ09OTkVDVElPTiIpOwogCWVsc2UgaWYgKE1hdGNo ZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSwgIkNPTk5FQ1RJT04iLCBNYXRj aEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIlBVQkxJQ0FUSU9OIik7CiAJZWxzZSBpZiAoTWF0Y2hl cygiQ1JFQVRFIiwgIlNVQlNDUklQVElPTiIsIE1hdGNoQW55LCAiQ09OTkVDVElPTiIsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAppbmRleCBhYjIwNmJhZDdkLi4wMTE0MWZlYmI1 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKQEAgLTkzLDkgKzkzLDExIEBA IENBVEFMT0cocGdfc3Vic2NyaXB0aW9uLDYxMDAsU3Vic2NyaXB0aW9uUmVsYXRpb25JZCkgQktJ X1NIQVJFRF9SRUxBVElPTiBCS0lfUk9XCiAJYm9vbAkJc3VicnVuYXNvd25lcjsJLyogVHJ1ZSBp ZiByZXBsaWNhdGlvbiBzaG91bGQgZXhlY3V0ZSBhcyB0aGUKIAkJCQkJCQkJICogc3Vic2NyaXB0 aW9uIG93bmVyICovCiAKKwlPaWQJCQlzdWJzZXJ2ZXI7CQkvKiBTZXQgaWYgY29ubmVjdGluZyB3 aXRoIHNlcnZlciAqLworCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5n dGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAkvKiBDb25uZWN0aW9uIHN0cmluZyB0byB0aGUgcHVi bGlzaGVyICovCi0JdGV4dAkJc3ViY29ubmluZm8gQktJX0ZPUkNFX05PVF9OVUxMOworCXRleHQJ CXN1YmNvbm5pbmZvOwkvKiBTZXQgaWYgY29ubmVjdGluZyB3aXRoIGNvbm5lY3Rpb24gc3RyaW5n ICovCiAKIAkvKiBTbG90IG5hbWUgb24gcHVibGlzaGVyICovCiAJTmFtZURhdGEJc3Vic2xvdG5h bWUgQktJX0ZPUkNFX05VTEw7CkBAIC0xNjUsNyArMTY3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgU3Vi c2NyaXB0aW9uCiAgKi8KICNkZWZpbmUgTE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwgJ3AnCiAK LWV4dGVybiBTdWJzY3JpcHRpb24gKkdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlz c2luZ19vayk7CitleHRlcm4gU3Vic2NyaXB0aW9uICpHZXRTdWJzY3JpcHRpb24oT2lkIHN1Ymlk LCBib29sIG1pc3Npbmdfb2ssCisJCQkJCQkJCQkgYm9vbCBhY2xjaGVjayk7CiBleHRlcm4gdm9p ZCBGcmVlU3Vic2NyaXB0aW9uKFN1YnNjcmlwdGlvbiAqc3ViKTsKIGV4dGVybiB2b2lkIERpc2Fi bGVTdWJzY3JpcHRpb24oT2lkIHN1YmlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZm9y ZWlnbi9mb3JlaWduLmggYi9zcmMvaW5jbHVkZS9mb3JlaWduL2ZvcmVpZ24uaAppbmRleCBiNWI5 Yjk3ZjRkLi5hMmYwNGNlOWFmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9mb3JlaWduL2ZvcmVp Z24uaAorKysgYi9zcmMvaW5jbHVkZS9mb3JlaWduL2ZvcmVpZ24uaApAQCAtNjUsNiArNjUsNyBA QCB0eXBlZGVmIHN0cnVjdCBGb3JlaWduVGFibGUKIAogCiBleHRlcm4gRm9yZWlnblNlcnZlciAq R2V0Rm9yZWlnblNlcnZlcihPaWQgc2VydmVyaWQpOworZXh0ZXJuIGNoYXIgKkZvcmVpZ25TZXJ2 ZXJOYW1lKE9pZCBzZXJ2ZXJpZCk7CiBleHRlcm4gRm9yZWlnblNlcnZlciAqR2V0Rm9yZWlnblNl cnZlckV4dGVuZGVkKE9pZCBzZXJ2ZXJpZCwKIAkJCQkJCQkJCQkJICAgYml0czE2IGZsYWdzKTsK IGV4dGVybiBGb3JlaWduU2VydmVyICpHZXRGb3JlaWduU2VydmVyQnlOYW1lKGNvbnN0IGNoYXIg KnNydm5hbWUsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYjMxODFmMzRhZS4uNmQ2YjI0MmNl YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDA0MSw2ICs0MDQxLDcgQEAgdHlwZWRlZiBz dHJ1Y3QgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdAogewogCU5vZGVUYWcJCXR5cGU7CiAJY2hhcgkg ICAqc3VibmFtZTsJCS8qIE5hbWUgb2YgdGhlIHN1YnNjcmlwdGlvbiAqLworCWNoYXIJICAgKnNl cnZlcm5hbWU7CQkvKiBTZXJ2ZXIgbmFtZSBvZiBwdWJsaXNoZXIgKi8KIAljaGFyCSAgICpjb25u aW5mbzsJCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHB1Ymxpc2hlciAqLwogCUxpc3QJICAgKnB1 YmxpY2F0aW9uOwkvKiBPbmUgb3IgbW9yZSBwdWJsaWNhdGlvbiB0byBzdWJzY3JpYmUgdG8gKi8K IAlMaXN0CSAgICpvcHRpb25zOwkJLyogTGlzdCBvZiBEZWZFbGVtIG5vZGVzICovCkBAIC00MDQ5 LDYgKzQwNTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTdWJzY3JpcHRpb25TdG10CiB0eXBl ZGVmIGVudW0gQWx0ZXJTdWJzY3JpcHRpb25UeXBlCiB7CiAJQUxURVJfU1VCU0NSSVBUSU9OX09Q VElPTlMsCisJQUxURVJfU1VCU0NSSVBUSU9OX1NFUlZFUiwKIAlBTFRFUl9TVUJTQ1JJUFRJT05f Q09OTkVDVElPTiwKIAlBTFRFUl9TVUJTQ1JJUFRJT05fU0VUX1BVQkxJQ0FUSU9OLAogCUFMVEVS X1NVQlNDUklQVElPTl9BRERfUFVCTElDQVRJT04sCkBAIC00MDYzLDYgKzQwNjUsNyBAQCB0eXBl ZGVmIHN0cnVjdCBBbHRlclN1YnNjcmlwdGlvblN0bXQKIAlOb2RlVGFnCQl0eXBlOwogCUFsdGVy U3Vic2NyaXB0aW9uVHlwZSBraW5kOyAvKiBBTFRFUl9TVUJTQ1JJUFRJT05fT1BUSU9OUywgZXRj ICovCiAJY2hhcgkgICAqc3VibmFtZTsJCS8qIE5hbWUgb2YgdGhlIHN1YnNjcmlwdGlvbiAqLwor CWNoYXIJICAgKnNlcnZlcm5hbWU7CQkvKiBTZXJ2ZXIgbmFtZSBvZiBwdWJsaXNoZXIgKi8KIAlj aGFyCSAgICpjb25uaW5mbzsJCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHB1Ymxpc2hlciAqLwog CUxpc3QJICAgKnB1YmxpY2F0aW9uOwkvKiBPbmUgb3IgbW9yZSBwdWJsaWNhdGlvbiB0byBzdWJz Y3JpYmUgdG8gKi8KIAlMaXN0CSAgICpvcHRpb25zOwkJLyogTGlzdCBvZiBEZWZFbGVtIG5vZGVz ICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fZGF0YS5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fZGF0YS5vdXQKaW5kZXggMDIx MTUzMWYzMi4uMzBhYTIzYThmZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9mb3JlaWduX2RhdGEub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yZWln bl9kYXRhLm91dApAQCAtNzMzLDYgKzczMywyMCBAQCBTRUxFQ1QgcGdfY29ubmluZm9fZnJvbV9z ZXJ2ZXIoJ2Nvbm5lY3Rpb25fc2VydmVyJywgJ3JlZ3Jlc3NfdGVzdF9yb2xlMicsIGZhbHNlKQog RFJPUCBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3NfdGVzdF9yb2xlIFNFUlZFUiBjb25uZWN0aW9u X3NlcnZlcjsKIERST1AgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIGNvbm5lY3Rpb25f c2VydmVyOwogRFJPUCBTRVJWRVIgY29ubmVjdGlvbl9zZXJ2ZXI7CitTRVQgUk9MRSByZWdyZXNz X3Rlc3Rfcm9sZTsKK0NSRUFURSBTRVJWRVIgdDMgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVz c19jb25uZWN0aW9uX2ZkdzsgICAtLSBFUlJPUjogbm8gcGVybWlzc2lvbnMgb24gRkRXCitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBmb3JlaWduLWRhdGEgd3JhcHBlciByZWdyZXNzX2Nv bm5lY3Rpb25fZmR3CitSRVNFVCBST0xFOworR1JBTlQgVVNBR0UgT04gRk9SRUlHTiBEQVRBIFdS QVBQRVIgcmVncmVzc19jb25uZWN0aW9uX2ZkdyBUTyByZWdyZXNzX3Rlc3Rfcm9sZTsKK1NFVCBS T0xFIHJlZ3Jlc3NfdGVzdF9yb2xlOworQ1JFQVRFIFNFUlZFUiB0MyBGT1JFSUdOIERBVEEgV1JB UFBFUiByZWdyZXNzX2Nvbm5lY3Rpb25fZmR3OworSU1QT1JUIEZPUkVJR04gU0NIRU1BIGZvbyBG Uk9NIFNFUlZFUiB0MyBJTlRPIGJhcjsgLS0gZmFpbHMKK0VSUk9SOiAgc2NoZW1hICJiYXIiIGRv ZXMgbm90IGV4aXN0CitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIHQzIE9Q VElPTlMgKHVzZXIgJ3gnLCBwYXNzd29yZCAnc2VjcmV0Jyk7CitEUk9QIFVTRVIgTUFQUElORyBG T1IgUFVCTElDIFNFUlZFUiB0MzsKK0RST1AgU0VSVkVSIHQzOworUkVTRVQgUk9MRTsKK1JFVk9L RSBVU0FHRSBPTiBGT1JFSUdOIERBVEEgV1JBUFBFUiByZWdyZXNzX2Nvbm5lY3Rpb25fZmR3IEZS T00gcmVncmVzc190ZXN0X3JvbGU7CiBEUk9QIEZPUkVJR04gREFUQSBXUkFQUEVSIHJlZ3Jlc3Nf Y29ubmVjdGlvbl9mZHc7CiAtLSBDUkVBVEUgRk9SRUlHTiBUQUJMRQogQ1JFQVRFIFNDSEVNQSBm b3JlaWduX3NjaGVtYTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vi c2NyaXB0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91 dAppbmRleCBiMTVlZGRiZmYzLi5iMGExYTNjYzI2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC0xNDQsNiArMTQ0LDU5IEBAIEVSUk9SOiAgY291bGQg bm90IGNvbm5lY3QgdG8gdGhlIHB1Ymxpc2hlcjogaW52YWxpZCBwb3J0IG51bWJlcjogIi0xIgog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdmb29iYXInOwog RVJST1I6ICBpbnZhbGlkIGNvbm5lY3Rpb24gc3RyaW5nIHN5bnRheDogbWlzc2luZyAiPSIgYWZ0 ZXIgImZvb2JhciIgaW4gY29ubmVjdGlvbiBpbmZvIHN0cmluZwogCitSRVNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT047CitHUkFOVCBDUkVBVEUgT04gREFUQUJBU0UgUkVHUkVTU0lPTiBUTyByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19zdWJzY3JpcHRpb25fdXNlcjM7CitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YjYgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHBhc3N3b3JkPXJlZ3Jl c3NfZmFrZXBhc3N3b3JkJyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKHNsb3RfbmFtZSA9IE5P TkUsIGNvbm5lY3QgPSBmYWxzZSk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVk LCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5 b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUg c3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgorRFJPUCBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViNjsKKy0tIHRlc3QgdXNpbmcgYSBzZXJ2ZXIgb2JqZWN0IGlu c3RlYWQgb2YgY29ubmVjdGlvbiBzdHJpbmcKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsK K0NSRUFURSBGT1JFSUdOIERBVEEgV1JBUFBFUiByZWdyZXNzX2Nvbm5lY3Rpb25fZmR3CisgIFZB TElEQVRPUiBwZ19jb25uZWN0aW9uX3ZhbGlkYXRvcjsKK0NSRUFURSBTRVJWRVIgcmVncmVzc190 ZXN0c2VydmVyMSBGT1JFSUdOIERBVEEgV1JBUFBFUiByZWdyZXNzX2Nvbm5lY3Rpb25fZmR3Owor Q1JFQVRFIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIyIEZPUkVJR04gREFUQSBXUkFQUEVSIHJl Z3Jlc3NfY29ubmVjdGlvbl9mZHc7CitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyMyBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMQorICBPUFRJT05TIChw YXNzd29yZCAnc2VjcmV0Jyk7CitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyMyBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMgorICBPUFRJT05TIChwYXNz d29yZCAnc2VjcmV0Jyk7CitHUkFOVCBVU0FHRSBPTiBGT1JFSUdOIFNFUlZFUiByZWdyZXNzX3Rl c3RzZXJ2ZXIyIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOworU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKK0NSRUFURSBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViNiBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMSBQVUJMSUNBVElP TiB0ZXN0cHViCisgIFdJVEggKHNsb3RfbmFtZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7IC0t IGZhaWxzCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBmb3JlaWduIHNlcnZlciByZWdy ZXNzX3Rlc3RzZXJ2ZXIxCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgU0VS VkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjIgUFVCTElDQVRJT04gdGVzdHB1YgorICBXSVRIIChzbG90 X25hbWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2UpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3 YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBs aWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBl bmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KK1JF U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWI2IFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIxOyAtLSBmYWlscworRVJST1I6ICBzdWJz Y3JpcHRpb24gb3duZXIgInJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzIiBkb2VzIG5vdCBoYXZl IHBlcm1pc3Npb24gb24gZm9yZWlnbiBzZXJ2ZXIgInJlZ3Jlc3NfdGVzdHNlcnZlcjEiCitHUkFO VCBVU0FHRSBPTiBGT1JFSUdOIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIxIFRPIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIzOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYg U0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjE7CitEUk9QIFVTRVIgTUFQUElORyBGT1IgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlcjMgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjI7CitEUk9QIFNF UlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIyOworLS0gdGVzdCBhbiBGRFcgd2l0aCBubyB2YWxpZGF0 b3IKK0NSRUFURSBGT1JFSUdOIERBVEEgV1JBUFBFUiByZWdyZXNzX2ZkdzsKK0NSRUFURSBTRVJW RVIgcmVncmVzc190ZXN0c2VydmVyMyBGT1JFSUdOIERBVEEgV1JBUFBFUiByZWdyZXNzX2Zkdwor ICBPUFRJT05TIChhYmMgJ3h5eicpOworQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlcjMgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjMKKyAgT1BUSU9OUyAo cGFzc3dvcmQgJ3NlY3JldCcpOworR1JBTlQgVVNBR0UgT04gRk9SRUlHTiBTRVJWRVIgcmVncmVz c190ZXN0c2VydmVyMyBUTyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKK1NFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CitBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViNiBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMzsKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIx OworUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworRFJPUCBVU0VSIE1BUFBJTkcgRk9SIHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIzOworRFJP UCBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMzsKK0RST1AgRk9SRUlHTiBEQVRBIFdSQVBQRVIg cmVncmVzc19mZHc7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2OworRFJPUCBV U0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZFUiByZWdyZXNz X3Rlc3RzZXJ2ZXIxOworRFJPUCBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMTsKK0RST1AgRk9S RUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19jb25uZWN0aW9uX2ZkdzsKK1JFVk9LRSBDUkVBVEUg T04gREFUQUJBU0UgcmVncmVzc2lvbiBGUk9NIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOwor U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogXGRS cysKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCiAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9mb3JlaWduX2RhdGEuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yZWlnbl9kYXRh LnNxbAppbmRleCBhOGUyZWRmZWVlLi43OTU2NzA1MjE3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9mb3JlaWduX2RhdGEuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zv cmVpZ25fZGF0YS5zcWwKQEAgLTMyOSw2ICszMjksMjQgQEAgU0VMRUNUIHBnX2Nvbm5pbmZvX2Zy b21fc2VydmVyKCdjb25uZWN0aW9uX3NlcnZlcicsICdyZWdyZXNzX3Rlc3Rfcm9sZTInLCBmYWxz ZSkKIERST1AgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX3Rlc3Rfcm9sZSBTRVJWRVIgY29ubmVj dGlvbl9zZXJ2ZXI7CiBEUk9QIFVTRVIgTUFQUElORyBGT1IgUFVCTElDIFNFUlZFUiBjb25uZWN0 aW9uX3NlcnZlcjsKIERST1AgU0VSVkVSIGNvbm5lY3Rpb25fc2VydmVyOworCitTRVQgUk9MRSBy ZWdyZXNzX3Rlc3Rfcm9sZTsKK0NSRUFURSBTRVJWRVIgdDMgRk9SRUlHTiBEQVRBIFdSQVBQRVIg cmVncmVzc19jb25uZWN0aW9uX2ZkdzsgICAtLSBFUlJPUjogbm8gcGVybWlzc2lvbnMgb24gRkRX CitSRVNFVCBST0xFOworR1JBTlQgVVNBR0UgT04gRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVz c19jb25uZWN0aW9uX2ZkdyBUTyByZWdyZXNzX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIHJlZ3Jlc3Nf dGVzdF9yb2xlOworCitDUkVBVEUgU0VSVkVSIHQzIEZPUkVJR04gREFUQSBXUkFQUEVSIHJlZ3Jl c3NfY29ubmVjdGlvbl9mZHc7CisKK0lNUE9SVCBGT1JFSUdOIFNDSEVNQSBmb28gRlJPTSBTRVJW RVIgdDMgSU5UTyBiYXI7IC0tIGZhaWxzCisKK0NSRUFURSBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJ QyBTRVJWRVIgdDMgT1BUSU9OUyAodXNlciAneCcsIHBhc3N3b3JkICdzZWNyZXQnKTsKK0RST1Ag VVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIHQzOworRFJPUCBTRVJWRVIgdDM7CisKK1JF U0VUIFJPTEU7CitSRVZPS0UgVVNBR0UgT04gRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19j b25uZWN0aW9uX2ZkdyBGUk9NIHJlZ3Jlc3NfdGVzdF9yb2xlOworCiBEUk9QIEZPUkVJR04gREFU QSBXUkFQUEVSIHJlZ3Jlc3NfY29ubmVjdGlvbl9mZHc7CiAKIC0tIENSRUFURSBGT1JFSUdOIFRB QkxFCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAppbmRleCA0NDRlNTYzZmYzLi40 ZDQ0ZjE0MWI3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24u c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKQEAgLTg4LDYg Kzg4LDY0IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNSBDT05ORUNUSU9O ICdwb3J0PS0xJyBQVUJMSUNBVElPTiB0ZXN0cHViOwogLS0gZmFpbCAtIGludmFsaWQgY29ubmVj dGlvbiBzdHJpbmcgZHVyaW5nIEFMVEVSCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIENPTk5FQ1RJT04gJ2Zvb2Jhcic7CiAKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsK K0dSQU5UIENSRUFURSBPTiBEQVRBQkFTRSBSRUdSRVNTSU9OIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIzOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyMzsKKworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IENPTk5FQ1RJ T04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCBwYXNzd29yZD1yZWdyZXNzX2Zha2VwYXNz d29yZCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChzbG90X25hbWUgPSBOT05FLCBjb25uZWN0 ID0gZmFsc2UpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNjsKKworLS0gdGVz dCB1c2luZyBhIHNlcnZlciBvYmplY3QgaW5zdGVhZCBvZiBjb25uZWN0aW9uIHN0cmluZworCitS RVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitDUkVBVEUgRk9SRUlHTiBEQVRBIFdSQVBQRVIg cmVncmVzc19jb25uZWN0aW9uX2ZkdworICBWQUxJREFUT1IgcGdfY29ubmVjdGlvbl92YWxpZGF0 b3I7CitDUkVBVEUgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjEgRk9SRUlHTiBEQVRBIFdSQVBQ RVIgcmVncmVzc19jb25uZWN0aW9uX2ZkdzsKK0NSRUFURSBTRVJWRVIgcmVncmVzc190ZXN0c2Vy dmVyMiBGT1JFSUdOIERBVEEgV1JBUFBFUiByZWdyZXNzX2Nvbm5lY3Rpb25fZmR3OworQ1JFQVRF IFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMgU0VSVkVSIHJlZ3Jl c3NfdGVzdHNlcnZlcjEKKyAgT1BUSU9OUyAocGFzc3dvcmQgJ3NlY3JldCcpOworQ1JFQVRFIFVT RVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMgU0VSVkVSIHJlZ3Jlc3Nf dGVzdHNlcnZlcjIKKyAgT1BUSU9OUyAocGFzc3dvcmQgJ3NlY3JldCcpOworR1JBTlQgVVNBR0Ug T04gRk9SRUlHTiBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMiBUTyByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyMzsKKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyMzsKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBTRVJWRVIg cmVncmVzc190ZXN0c2VydmVyMSBQVUJMSUNBVElPTiB0ZXN0cHViCisgIFdJVEggKHNsb3RfbmFt ZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7IC0tIGZhaWxzCitDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YjYgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjIgUFVCTElDQVRJT04g dGVzdHB1YgorICBXSVRIIChzbG90X25hbWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2UpOworUkVT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViNiBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMTsgLS0gZmFpbHMKK0dSQU5UIFVTQUdF IE9OIEZPUkVJR04gU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjEgVE8gcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlcjM7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBTRVJWRVIg cmVncmVzc190ZXN0c2VydmVyMTsKK0RST1AgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyMyBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMjsKK0RST1AgU0VSVkVSIHJl Z3Jlc3NfdGVzdHNlcnZlcjI7CisKKy0tIHRlc3QgYW4gRkRXIHdpdGggbm8gdmFsaWRhdG9yCitD UkVBVEUgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19mZHc7CitDUkVBVEUgU0VSVkVSIHJl Z3Jlc3NfdGVzdHNlcnZlcjMgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19mZHcKKyAgT1BU SU9OUyAoYWJjICd4eXonKTsKK0NSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIzIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIzCisgIE9QVElPTlMgKHBhc3N3 b3JkICdzZWNyZXQnKTsKK0dSQU5UIFVTQUdFIE9OIEZPUkVJR04gU0VSVkVSIHJlZ3Jlc3NfdGVz dHNlcnZlcjMgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CisKK1NFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CitBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViNiBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMzsKK0FMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIxOwor CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitEUk9QIFVTRVIgTUFQUElORyBGT1IgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlcjMgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjM7CitEUk9Q IFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIzOworRFJPUCBGT1JFSUdOIERBVEEgV1JBUFBFUiBy ZWdyZXNzX2ZkdzsKKworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNjsKKworRFJP UCBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZFUiByZWdy ZXNzX3Rlc3RzZXJ2ZXIxOworRFJPUCBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMTsKK0RST1Ag Rk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19jb25uZWN0aW9uX2ZkdzsKK1JFVk9LRSBDUkVB VEUgT04gREFUQUJBU0UgcmVncmVzc2lvbiBGUk9NIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIz OworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwor CiBcZFJzKwogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCBQVUJMSUNB VElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwMV9yZXBfY2hhbmdlcy5wbCBiL3NyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAwMV9yZXBfY2hhbmdlcy5wbAppbmRleCA5Y2NlYmQ4OTBhLi44NjUz NDIzZDA4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMDFfcmVwX2NoYW5n ZXMucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDAxX3JlcF9jaGFuZ2VzLnBsCkBA IC0yNyw2ICsyNyw4IEBAICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJ IkNSRUFURSBUQUJMRSB0YWJfbm90cmVwIEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkg QVMgYSIpOwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRF IFRBQkxFIHRhYl9pbnMgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDEwMDIpIEFTIGEiKTsK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0 YWJfaW5zMiBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMikgQVMgYSIpOwogJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRFIFRBQkxFIHRhYl9mdWxs IEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgQVMgYSIpOwogJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfZnVsbDIgKHggdGV4dCki KTsKQEAgLTY1LDYgKzY3LDcgQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKICMgU2V0dXAgc3RydWN0dXJlIG9uIHN1YnNjcmliZXIKICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHRhYl9ub3RyZXAgKGEgaW50KSIpOwog JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgVEFCTEUgdGFi X2lucyAoYSBpbnQpIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IkNSRUFURSBUQUJMRSB0YWJfaW5zMiAoYSBpbnQpIik7CiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfZnVsbCAoYSBpbnQpIik7CiAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfZnVs bDIgKHggdGV4dCkiKTsKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLApA QCAtMTEwLDYgKzExMywyNSBAQCAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKIAkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJf Y29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1YiwgdGFwX3B1Yl9pbnNfb25seSIKICk7CiAKK215 ICRwdWJsaXNoZXJfaG9zdCA9ICRub2RlX3B1Ymxpc2hlci0+aG9zdDsKK215ICRwdWJsaXNoZXJf cG9ydCA9ICRub2RlX3B1Ymxpc2hlci0+cG9ydDsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJDUkVBVEUgRk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVzdF9jb25uZWN0 aW9uX2ZkdyBWQUxJREFUT1IgcGdfY29ubmVjdGlvbl92YWxpZGF0b3IiCispOworJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTRVJWRVIgdGFwX3N1YjJf c2VydmVyIEZPUkVJR04gREFUQSBXUkFQUEVSIHRlc3RfY29ubmVjdGlvbl9mZHcgT1BUSU9OUyAo aG9zdCAnJHB1Ymxpc2hlcl9ob3N0JywgcG9ydCAnJHB1Ymxpc2hlcl9wb3J0JywgZGJuYW1lICdw b3N0Z3JlcycpIgorKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIkNSRUFURSBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgdGFwX3N1YjJfc2VydmVy IgorKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBQ VUJMSUNBVElPTiB0YXBfc2ltcGxlX3B1YiBGT1IgVEFCTEUgdGFiX2luczIiKTsKKworJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04g dGFwX3N1YjIgU0VSVkVSIHRhcF9zdWIyX3NlcnZlciBQVUJMSUNBVElPTiB0YXBfc2ltcGxlX3B1 YiBXSVRIIChwYXNzd29yZF9yZXF1aXJlZD1mYWxzZSkiCispOworCiAjIFdhaXQgZm9yIGluaXRp YWwgdGFibGUgc3luYyB0byBmaW5pc2gKICRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNj cmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWInKTsKIApAQCAtMTIxLDExICsx NDMsMjIgQEAgJHJlc3VsdCA9CiAgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gdGFiX2lucyIpOwogaXMoJHJlc3VsdCwgcXEoMTAw MiksICdjaGVjayBpbml0aWFsIGRhdGEgd2FzIGNvcGllZCB0byBzdWJzY3JpYmVyJyk7CiAKKyRy ZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVD VCBjb3VudCgqKSBGUk9NIHRhYl9pbnMyIik7CitpcygkcmVzdWx0LCBxcSgxMDAyKSwgJ2NoZWNr IGluaXRpYWwgZGF0YSB3YXMgY29waWVkIHRvIHN1YnNjcmliZXInKTsKKworJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1YjIg Q09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyIpOworCiAkbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAogCSJJTlNFUlQgSU5UTyB0YWJfaW5zIFNFTEVDVCBnZW5lcmF0 ZV9zZXJpZXMoMSw1MCkiKTsKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJERUxFVEUgRlJPTSB0YWJfaW5zIFdIRVJFIGEgPiAyMCIpOwogJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlVQREFURSB0YWJfaW5zIFNFVCBhID0gLWEiKTsKIAorJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX2lu czIgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDUwKSIpOworCiskbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViMiBTRVJWRVIg dGFwX3N1YjJfc2VydmVyIik7CisKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCiAJIklOU0VSVCBJTlRPIHRhYl9yZXAgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDUwKSIp OwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRFTEVURSBGUk9NIHRh Yl9yZXAgV0hFUkUgYSA+IDIwIik7CkBAIC0xNTgsNiArMTkxLDEwIEBAICRyZXN1bHQgPSAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiU0VMRUNUIGNvdW50KCopLCBt aW4oYSksIG1heChhKSBGUk9NIHRhYl9pbnMiKTsKIGlzKCRyZXN1bHQsIHFxKDEwNTJ8MXwxMDAy KSwgJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBvbiBzdWJzY3JpYmVyJyk7CiAKKyRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50 KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHRhYl9pbnMyIik7CitpcygkcmVzdWx0LCBxcSgxMDUy fDF8MTAwMiksICdjaGVjayByZXBsaWNhdGVkIGluc2VydHMgb24gc3Vic2NyaWJlcicpOworCiAk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVD VCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSB0YWJfcmVwIik7CiBpcygkcmVzdWx0LCBx cSgyMHwtMjB8LTEpLCAnY2hlY2sgcmVwbGljYXRlZCBjaGFuZ2VzIG9uIHN1YnNjcmliZXInKTsK QEAgLTQ0OSwxMCArNDg2LDI3IEBAICRub2RlX3B1Ymxpc2hlci0+cG9sbF9xdWVyeV91bnRpbCgn cG9zdGdyZXMnLAogICBvciBkaWUKICAgIlRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBhcHBs eSB0byByZXN0YXJ0IGFmdGVyIGNoYW5naW5nIFBVQkxJQ0FUSU9OIjsKIAorIyB0ZXN0IHRoYXQg Y2hhbmdlcyB0byBhIGZvcmVpZ24gc2VydmVyIHN1YnNjcmlwdGlvbiBjYXVzZSB0aGUgd29ya2Vy CisjIHRvIHJlc3RhcnQKKyRvbGRwaWQgPSAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJTRUxFQ1QgcGlkIEZST00gcGdfc3RhdF9yZXBsaWNhdGlvbiBXSEVSRSBhcHBs aWNhdGlvbl9uYW1lID0gJ3RhcF9zdWIyJyBBTkQgc3RhdGUgPSAnc3RyZWFtaW5nJzsiCispOwor JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNFUlZFUiB0 YXBfc3ViMl9zZXJ2ZXIgT1BUSU9OUyAoc3NsbW9kZSAnZGlzYWJsZScpIgorKTsKKyRub2RlX3B1 Ymxpc2hlci0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgcGlkICE9ICRv bGRwaWQgRlJPTSBwZ19zdGF0X3JlcGxpY2F0aW9uIFdIRVJFIGFwcGxpY2F0aW9uX25hbWUgPSAn dGFwX3N1YjInIEFORCBzdGF0ZSA9ICdzdHJlYW1pbmcnOyIKKyAgKQorICBvciBkaWUKKyAgIlRp bWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBhcHBseSB0byByZXN0YXJ0IGFmdGVyIGNoYW5naW5n IFBVQkxJQ0FUSU9OIjsKKwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK IAkiSU5TRVJUIElOVE8gdGFiX2lucyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEwMDEsMTEwMCki KTsKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJERUxFVEUgRlJPTSB0 YWJfcmVwIik7CiAKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklO U0VSVCBJTlRPIHRhYl9pbnMyIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMTAwMSwxMTAwKSIpOwor CiAjIFJlc3RhcnQgdGhlIHB1Ymxpc2hlciBhbmQgY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBzdWJz Y3JpYmVyIHdoaWNoCiAjIHNob3VsZCBiZSBpbiBhIHN0cmVhbWluZyBzdGF0ZSBhZnRlciBjYXRj aGluZyB1cC4KICRub2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOwpAQCAtNDY1LDYgKzUxOSwx MSBAQCAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiBp cygkcmVzdWx0LCBxcSgxMTUyfDF8MTEwMCksCiAJJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBh ZnRlciBzdWJzY3JpcHRpb24gcHVibGljYXRpb24gY2hhbmdlJyk7CiAKKyRyZXN1bHQgPSAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBt aW4oYSksIG1heChhKSBGUk9NIHRhYl9pbnMyIik7CitpcygkcmVzdWx0LCBxcSgxMTUyfDF8MTEw MCksCisJJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBhZnRlciBzdWJzY3JpcHRpb24gcHVibGlj YXRpb24gY2hhbmdlJyk7CisKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKIAkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHRhYl9y ZXAiKTsKIGlzKCRyZXN1bHQsIHFxKDIwfC0yMHwtMSksCkBAIC01MzMsNiArNTkyLDcgQEAgJG5v ZGVfcHVibGlzaGVyLT5wb2xsX3F1ZXJ5X3VudGlsKCdwb3N0Z3JlcycsCiAKICMgY2hlY2sgYWxs IHRoZSBjbGVhbnVwCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRS T1AgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcmVuYW1lZCIpOworJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViMiIpOwogCiAkcmVz dWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3N1YnNjcmlwdGlvbiIpOwotLSAKMi4zNC4xCgo= --=-YphDLf/Pjh4HkC3f/IWz Content-Disposition: attachment; filename="v9-0003-Introduce-pg_create_connection-predefined-role.patch" Content-Type: text/x-patch; name="v9-0003-Introduce-pg_create_connection-predefined-role.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBiYzNjYmFhYzgyMWQxMGRjMzNmMmI2NDg0M2E4M2MxYWYxM2VjYmUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDIgSmFuIDIwMjQgMTM6MTM6NTQgLTA4MDAKU3ViamVjdDogW1BBVENIIHY5IDMvM10gSW50 cm9kdWNlIHBnX2NyZWF0ZV9jb25uZWN0aW9uIHByZWRlZmluZWQgcm9sZS4KCkluIGFkZGl0aW9u IHRvIHBnX2NyZWF0ZV9zdWJzY3JpcHRpb24sIG1lbWJlcnNoaXAgaW4gdGhpcyByb2xlIGlzCm5l Y2Vzc2FyeSB0byBjcmVhdGUgYSBzdWJzY3JpcHRpb24gd2l0aCBhIGNvbm5lY3Rpb24gc3RyaW5n IChDUkVBVEUKU1VCU0NSSVBUSU9OIC4uLiBDT05ORUNUSU9OICcuLi4nKS4gVGhlIHBnX2NyZWF0 ZV9zdWJzY3JpcHRpb24gcm9sZSBpcwphIG1lbWJlciBvZiBwZ19jcmVhdGVfY29ubmVjdGlvbiwg c28gYnkgZGVmYXVsdCBwZ19jcmVhdGVfc3Vic2NyaXB0aW9uCmhhcyB0aGUgc2FtZSBjYXBhYmls aXR5IGFzIGJlZm9yZS4KCkFuIGFkbWluaXN0cmF0b3IgbWF5IHJldm9rZSBwZ19jcmVhdGVfY29u bmVjdGlvbiBmcm9tCnBnX2NyZWF0ZV9zdWJzY3JpcHRpb24sIHdoaWNoIHdpbGwgZW5hYmxlIHRo ZSBwcml2aWxlZ2VzIHRvIGJlCnNlcGFyYXRlZC4gVGhhdCBpcywgcGVybWl0IENSRUFURSBTVUJT Q1JJUFRJT04gLi4uIFNFUlZFUiwgYnV0IG5vdApwZXJtaXQgQ1JFQVRFIFNVQlNDUklQVElPTiAu Li4gQ09OTkVDVElPTi4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vNjE4MzE3OTBh MGE5MzcwMzhmNzhjZTA5ZjhkZDRjZWY3ZGU3NDU2YS5jYW1lbEBqLWRhdmlzLmNvbQotLS0KIC4u Li9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCAgICB8ICAyICstCiBjb250 cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCAgICAgfCAgMiArLQogY29udHJp Yi9wb3N0Z3Jlc19mZHcvdC8wMTBfc3Vic2NyaXB0aW9uLnBsICAgIHwgIDIgKy0KIGRvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfc2VydmVyLnNnbWwgICAgICAgICAgICB8IDE0ICsrKysrKwogZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgICAgIHwgIDQgKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3NlcnZlci5zZ21sICAgICAgICAgICB8IDE0ICsrKysrKwogZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwgICAgIHwgIDQgKy0KIGRvYy9zcmMv c2dtbC91c2VyLW1hbmFnLnNnbWwgICAgICAgICAgICAgICAgICB8IDEyICsrKystCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsICAgICAgfCAgMiArCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9mb3JlaWduY21kcy5jICAgICAgICAgICAgfCAzMSArKysrKysrKysrKysKIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyAgICAgICB8IDMxICsrKysrKysr KystLQogc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMgICAgICAgICAgICAgICAgIHwgIDEg Kwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMzAgKysr KysrKysrKy0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1dGhpZC5kYXQgICAgICAgICAgICAg fCAgNSArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19mb3JlaWduX3NlcnZlci5oICAgICAgIHwg IDEgKwogc3JjL2luY2x1ZGUvZm9yZWlnbi9mb3JlaWduLmggICAgICAgICAgICAgICAgIHwgIDEg Kwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDMgKysK IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCAgICB8IDQ3ICsrKysr KysrKysrKysrKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgICAg ICAgICB8IDQ3ICsrKysrKysrKysrKysrKysrLS0KIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAw MV9yZXBfY2hhbmdlcy5wbCAgICB8ICAyICstCiAyMCBmaWxlcyBjaGFuZ2VkLCAyMzQgaW5zZXJ0 aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19m ZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVj dGVkL3Bvc3RncmVzX2Zkdy5vdXQKaW5kZXggZWNkMDIzMDczOC4uZWVjNTdjMGFhNiAxMDA2NDQK LS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysg Yi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC0yLDcg KzIsNyBAQAogLS0gY3JlYXRlIEZEVyBvYmplY3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBDUkVBVEUgRVhU RU5TSU9OIHBvc3RncmVzX2ZkdzsKLUNSRUFURSBTRVJWRVIgdGVzdHNlcnZlcjEgRk9SRUlHTiBE QVRBIFdSQVBQRVIgcG9zdGdyZXNfZmR3OworQ1JFQVRFIFNFUlZFUiB0ZXN0c2VydmVyMSBGT1JF SUdOIERBVEEgV1JBUFBFUiBwb3N0Z3Jlc19mZHcgRk9SIFNVQlNDUklQVElPTjsKIERPICRkJAog ICAgIEJFR0lOCiAgICAgICAgIEVYRUNVVEUgJCRDUkVBVEUgU0VSVkVSIGxvb3BiYWNrIEZPUkVJ R04gREFUQSBXUkFQUEVSIHBvc3RncmVzX2ZkdwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9z dGdyZXNfZmR3LnNxbAppbmRleCAxYzljMTI3MDNmLi5jMzVlOTc0YTk0IDEwMDY0NAotLS0gYS9j b250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbAorKysgYi9jb250cmliL3Bv c3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbApAQCAtNCw3ICs0LDcgQEAKIAogQ1JFQVRF IEVYVEVOU0lPTiBwb3N0Z3Jlc19mZHc7CiAKLUNSRUFURSBTRVJWRVIgdGVzdHNlcnZlcjEgRk9S RUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdyZXNfZmR3OworQ1JFQVRFIFNFUlZFUiB0ZXN0c2VydmVy MSBGT1JFSUdOIERBVEEgV1JBUFBFUiBwb3N0Z3Jlc19mZHcgRk9SIFNVQlNDUklQVElPTjsKIERP ICRkJAogICAgIEJFR0lOCiAgICAgICAgIEVYRUNVVEUgJCRDUkVBVEUgU0VSVkVSIGxvb3BiYWNr IEZPUkVJR04gREFUQSBXUkFQUEVSIHBvc3RncmVzX2ZkdwpkaWZmIC0tZ2l0IGEvY29udHJpYi9w b3N0Z3Jlc19mZHcvdC8wMTBfc3Vic2NyaXB0aW9uLnBsIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcv dC8wMTBfc3Vic2NyaXB0aW9uLnBsCmluZGV4IGEzOWU4ZmRiYmEuLjNhZTJiNmRhNGEgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3QvMDEwX3N1YnNjcmlwdGlvbi5wbAorKysgYi9j b250cmliL3Bvc3RncmVzX2Zkdy90LzAxMF9zdWJzY3JpcHRpb24ucGwKQEAgLTM4LDcgKzM4LDcg QEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBQVUJMSUNB VElPTiB0YXBfcHViIEZPUiBUQUJMRSB0YWIKIG15ICRwdWJsaXNoZXJfaG9zdCA9ICRub2RlX3B1 Ymxpc2hlci0+aG9zdDsKIG15ICRwdWJsaXNoZXJfcG9ydCA9ICRub2RlX3B1Ymxpc2hlci0+cG9y dDsKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJDUkVBVEUgU0VS VkVSIHRhcF9zZXJ2ZXIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdyZXNfZmR3IE9QVElPTlMg KGhvc3QgJyRwdWJsaXNoZXJfaG9zdCcsIHBvcnQgJyRwdWJsaXNoZXJfcG9ydCcsIGRibmFtZSAn cG9zdGdyZXMnKSIKKwkiQ1JFQVRFIFNFUlZFUiB0YXBfc2VydmVyIEZPUkVJR04gREFUQSBXUkFQ UEVSIHBvc3RncmVzX2ZkdyBGT1IgU1VCU0NSSVBUSU9OIE9QVElPTlMgKGhvc3QgJyRwdWJsaXNo ZXJfaG9zdCcsIHBvcnQgJyRwdWJsaXNoZXJfcG9ydCcsIGRibmFtZSAncG9zdGdyZXMnKSIKICk7 CiAKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLApkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zZXJ2ZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfc2VydmVyLnNnbWwKaW5kZXggNDY3YmY4NTU4OS4uMWE0MjI3ZTU0OCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zZXJ2ZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3NlcnZlci5zZ21sCkBAIC0yMiw2ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRh dGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIEFMVEVSIFNFUlZFUiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgVkVSU0lPTiAnPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld192ZXJzaW9uPC9yZXBsYWNlYWJsZT4nIF0K KyAgICBbIHsgRk9SIHwgTk8gfSBTVUJTQ1JJUFRJT04gXQogICAgIFsgT1BUSU9OUyAoIFsgQURE IHwgU0VUIHwgRFJPUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcHRpb248L3Jl cGxhY2VhYmxlPiBbJzxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFj ZWFibGU+J10gWywgLi4uIF0gKSBdCiBBTFRFUiBTRVJWRVIgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZT5uZXdf b3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJ T05fVVNFUiB9CiBBTFRFUiBTRVJWRVIgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNl YWJsZT4KQEAgLTcwLDYgKzcxLDE5IEBAIEFMVEVSIFNFUlZFUiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjCiAgICAgPC9s aXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxsaXRlcmFsPnsgRk9SIHwgTk8gfSBTVUJTQ1JJUFRJT048L2xpdGVyYWw+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGNsYXVzZSBzcGVjaWZpZXMg d2hldGhlciB0aGUgZm9yZWlnbiBzZXJ2ZXIgbWF5IGJlIHVzZWQgZm9yIGEKKyAgICAgIHN1YnNj cmlwdGlvbiAoc2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24iLz4pLiBU aGUgZGVmYXVsdAorICAgICAgaXMgPGxpdGVyYWw+Tk8gU1VCU0NSSVBUSU9OPC9saXRlcmFsPi4g T25seSBtZW1iZXJzIG9mIHRoZSByb2xlCisgICAgICA8bGl0ZXJhbD5wZ19jcmVhdGVfY29ubmVj dGlvbjwvbGl0ZXJhbD4gbWF5IHNwZWNpZnkgPGxpdGVyYWw+Rk9SCisgICAgICBTVUJTQ1JJUFRJ T048L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPk9QVElPTlMg KCBbIEFERCB8IFNFVCB8IERST1AgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0 aW9uPC9yZXBsYWNlYWJsZT4gWyc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8 L3JlcGxhY2VhYmxlPiddIFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRl bT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IDZkMjE5MTQ1 YTkuLjUxM2Y1NGM0YjQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2Ny aXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dt bApAQCAtMTAxLDcgKzEwMSw5IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgIDxwYXJh PgogICAgICAgVGhpcyBjbGF1c2UgcmVwbGFjZXMgdGhlIGZvcmVpZ24gc2VydmVyIG9yIGNvbm5l Y3Rpb24gc3RyaW5nIG9yaWdpbmFsbHkKICAgICAgIHNldCBieSA8eHJlZiBsaW5rZW5kPSJzcWwt Y3JlYXRlc3Vic2NyaXB0aW9uIi8+IHdpdGggdGhlIGZvcmVpZ24gc2VydmVyCi0gICAgICA8cmVw bGFjZWFibGU+c2VydmVybmFtZTwvcmVwbGFjZWFibGU+LgorICAgICAgPHJlcGxhY2VhYmxlPnNl cnZlcm5hbWU8L3JlcGxhY2VhYmxlPi4gVGhlIGZvcmVpZ24gc2VydmVyIG11c3QgaGF2ZSBiZWVu CisgICAgICBjcmVhdGVkIHdpdGggPGxpdGVyYWw+Rk9SIFNVQlNDUklQVElPTjwvbGl0ZXJhbD4g KHNlZSA8eHJlZgorICAgICAgbGlua2VuZD0ic3FsLWNyZWF0ZXNlcnZlciIvPikuCiAgICAgIDwv cGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zZXJ2ZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3NlcnZlci5zZ21sCmluZGV4IDA1ZjQwMTk0NTMuLjkxM2NlYmFiZjIgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NlcnZlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3NlcnZlci5zZ21sCkBAIC0yMyw2ICsyMyw3IEBAIFBvc3RncmVTUUwgZG9jdW1l bnRhdGlvbgogPHN5bm9wc2lzPgogQ1JFQVRFIFNFUlZFUiBbIElGIE5PVCBFWElTVFMgXSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2VydmVyX25hbWU8L3JlcGxhY2VhYmxlPiBbIFRZ UEUgJzxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXJ2ZXJfdHlwZTwvcmVwbGFjZWFi bGU+JyBdIFsgVkVSU0lPTiAnPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlcnZlcl92 ZXJzaW9uPC9yZXBsYWNlYWJsZT4nIF0KICAgICBGT1JFSUdOIERBVEEgV1JBUFBFUiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZmR3X25hbWU8L3JlcGxhY2VhYmxlPgorICAgIFsgeyBG T1IgfCBOTyB9IFNVQlNDUklQVElPTiBdCiAgICAgWyBPUFRJT05TICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+ICc8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPicgWywgLi4uIF0gKSBdCiA8L3N5bm9wc2lz PgogIDwvcmVmc3lub3BzaXNkaXY+CkBAIC0xMDQsNiArMTA1LDE5IEBAIENSRUFURSBTRVJWRVIg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlcnZlcl9u YW1lPC9yZXBsCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPnsgRk9SIHwgTk8gfSBTVUJTQ1JJUFRJT048 L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlz IGNsYXVzZSBzcGVjaWZpZXMgd2hldGhlciB0aGUgZm9yZWlnbiBzZXJ2ZXIgbWF5IGJlIHVzZWQg Zm9yIGEKKyAgICAgIHN1YnNjcmlwdGlvbiAoc2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVz dWJzY3JpcHRpb24iLz4pLiBUaGUgZGVmYXVsdAorICAgICAgaXMgPGxpdGVyYWw+Tk8gU1VCU0NS SVBUSU9OPC9saXRlcmFsPi4gT25seSBtZW1iZXJzIG9mIHRoZSByb2xlCisgICAgICA8bGl0ZXJh bD5wZ19jcmVhdGVfY29ubmVjdGlvbjwvbGl0ZXJhbD4gbWF5IHNwZWNpZnkgPGxpdGVyYWw+Rk9S CisgICAgICBTVUJTQ1JJUFRJT048L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJt PjxsaXRlcmFsPk9QVElPTlMgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9u PC9yZXBsYWNlYWJsZT4gJzxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVw bGFjZWFibGU+JyBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IDI0NTM4YmFmOTgu LmY4MGEwMjdkZGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlw dGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21s CkBAIC04MSw3ICs4MSw5IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsCiAgICAgPHRlcm0+PGxp dGVyYWw+U0VSVkVSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXJ2ZXJuYW1lPC9y ZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+ Ci0gICAgICBBIGZvcmVpZ24gc2VydmVyIHRvIHVzZSBmb3IgdGhlIGNvbm5lY3Rpb24uCisgICAg ICBBIGZvcmVpZ24gc2VydmVyIHRvIHVzZSBmb3IgdGhlIGNvbm5lY3Rpb24uIFRoZSBmb3JlaWdu IHNlcnZlciBtdXN0IGhhdmUKKyAgICAgIGJlZW4gY3JlYXRlZCB3aXRoIDxsaXRlcmFsPkZPUiBT VUJTQ1JJUFRJT048L2xpdGVyYWw+IChzZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InNxbC1jcmVh dGVzZXJ2ZXIiLz4pLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3VzZXItbWFuYWcuc2dtbCBiL2RvYy9z cmMvc2dtbC91c2VyLW1hbmFnLnNnbWwKaW5kZXggMWMwMTFhYzYyYi4uZGExYTM3ZTYwYiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3VzZXItbWFuYWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv dXNlci1tYW5hZy5zZ21sCkBAIC02ODcsMTEgKzY4NywxOSBAQCBEUk9QIFJPTEUgZG9vbWVkX3Jv bGU7CiAgICAgICAgPGVudHJ5PkFsbG93IHVzZSBvZiBjb25uZWN0aW9uIHNsb3RzIHJlc2VydmVk IHZpYQogICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1yZXNlcnZlZC1jb25uZWN0aW9ucyIvPi48 L2VudHJ5PgogICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5wZ19jcmVh dGVfY29ubmVjdGlvbjwvZW50cnk+CisgICAgICAgPGVudHJ5PkFsbG93IHVzZXJzIHRvIHNwZWNp ZnkgYSBjb25uZWN0aW9uIHN0cmluZyBkaXJlY3RseSBpbiA8bGluaworICAgICAgIGxpbmtlbmQ9 InNxbC1jcmVhdGVzdWJzY3JpcHRpb24iPjxjb21tYW5kPkNSRUFURQorICAgICAgIFNVQlNDUklQ VElPTjwvY29tbWFuZD48L2xpbms+LjwvZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgIDxyb3c+ CiAgICAgICAgPGVudHJ5PnBnX2NyZWF0ZV9zdWJzY3JpcHRpb248L2VudHJ5PgogICAgICAgIDxl bnRyeT5BbGxvdyB1c2VycyB3aXRoIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcGVybWlzc2lv biBvbiB0aGUKLSAgICAgICBkYXRhYmFzZSB0byBpc3N1ZQotICAgICAgIDxsaW5rIGxpbmtlbmQ9 InNxbC1jcmVhdGVzdWJzY3JpcHRpb24iPjxjb21tYW5kPkNSRUFURSBTVUJTQ1JJUFRJT048L2Nv bW1hbmQ+PC9saW5rPi48L2VudHJ5PgorICAgICAgIGRhdGFiYXNlIHRvIGlzc3VlIDxsaW5rCisg ICAgICAgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbiI+PGNvbW1hbmQ+Q1JFQVRFCisg ICAgICAgU1VCU0NSSVBUSU9OPC9jb21tYW5kPjwvbGluaz4uICBUaGlzIHJvbGUgaXMgYSBtZW1i ZXIgb2YKKyAgICAgICA8bGl0ZXJhbD5wZ19jcmVhdGVfY29ubmVjdGlvbjwvbGl0ZXJhbD4uPC9l bnRyeT4KICAgICAgIDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbCBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9ucy5zcWwKaW5kZXggZjMxNWZlY2YxOC4uNzM1MTI2 ODhkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNx bAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCkBAIC03ODEs MyArNzgxLDUgQEAgR1JBTlQgcGdfcmVhZF9hbGxfc2V0dGluZ3MgVE8gcGdfbW9uaXRvcjsKIEdS QU5UIHBnX3JlYWRfYWxsX3N0YXRzIFRPIHBnX21vbml0b3I7CiAKIEdSQU5UIHBnX3N0YXRfc2Nh bl90YWJsZXMgVE8gcGdfbW9uaXRvcjsKKworR1JBTlQgcGdfY3JlYXRlX2Nvbm5lY3Rpb24gVE8g cGdfY3JlYXRlX3N1YnNjcmlwdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2ZvcmVpZ25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9mb3JlaWduY21kcy5jCmluZGV4 IGNmNjFiYmFjMWYuLmY3NjY4OWI4YTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2ZvcmVpZ25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNtZHMuYwpA QCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2ZvcmVpZ25fZGF0YV93cmFwcGVyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19mb3JlaWduX3Nl cnZlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl90YWJsZS5oIgpAQCAtOTIzLDYg KzkyNCwxOCBAQCBDcmVhdGVGb3JlaWduU2VydmVyKENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10ICpz dG10KQogCWVsc2UKIAkJbnVsbHNbQW51bV9wZ19mb3JlaWduX3NlcnZlcl9zcnZ2ZXJzaW9uIC0g MV0gPSB0cnVlOwogCisJaWYgKHN0bXQtPmZvcnN1YnNjcmlwdGlvbikKKwl7CisJCWlmICghaGFz X3ByaXZzX29mX3JvbGUob3duZXJJZCwgUk9MRV9QR19DUkVBVEVfQ09OTkVDVElPTikpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxF R0UpLAorCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZCB0byBjcmVhdGUgc2VydmVyIGZv ciBzdWJzY3JpcHRpb24iKSwKKwkJCQkJIGVycmRldGFpbCgiT25seSByb2xlcyB3aXRoIHByaXZp bGVnZXMgb2YgdGhlIFwiJXNcIiByb2xlIG1heSBjcmVhdGUgZm9yZWlnbiBzZXJ2ZXJzIHdpdGgg Rk9SIFNVQlNDUklQVElPTiBzcGVjaWZpZWQuIiwKKwkJCQkJCQkgICAicGdfY3JlYXRlX3N1YnNj cmlwdGlvbiIpKSk7CisKKwkJdmFsdWVzW0FudW1fcGdfZm9yZWlnbl9zZXJ2ZXJfc3J2Zm9yc3Vi c2NyaXB0aW9uIC0gMV0gPSB0cnVlOworCX0KKwogCS8qIFN0YXJ0IHdpdGggYSBibGFuayBhY2wg Ki8KIAludWxsc1tBbnVtX3BnX2ZvcmVpZ25fc2VydmVyX3NydmFjbCAtIDFdID0gdHJ1ZTsKIApA QCAtOTc5LDYgKzk5Miw3IEBAIEFsdGVyRm9yZWlnblNlcnZlcihBbHRlckZvcmVpZ25TZXJ2ZXJT dG10ICpzdG10KQogCWJvb2wJCXJlcGxfbnVsbFtOYXR0c19wZ19mb3JlaWduX3NlcnZlcl07CiAJ Ym9vbAkJcmVwbF9yZXBsW05hdHRzX3BnX2ZvcmVpZ25fc2VydmVyXTsKIAlPaWQJCQlzcnZJZDsK Kwlib29sCQlmb3JzdWJzY3JpcHRpb247CiAJRm9ybV9wZ19mb3JlaWduX3NlcnZlciBzcnZGb3Jt OwogCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIApAQCAtMTAyMCw2ICsxMDM0LDIzIEBAIEFsdGVy Rm9yZWlnblNlcnZlcihBbHRlckZvcmVpZ25TZXJ2ZXJTdG10ICpzdG10KQogCQlyZXBsX3JlcGxb QW51bV9wZ19mb3JlaWduX3NlcnZlcl9zcnZ2ZXJzaW9uIC0gMV0gPSB0cnVlOwogCX0KIAorCWlm IChzdG10LT5oYXNfZm9yc3Vic2NyaXB0aW9uKQorCXsKKwkJcmVwbF92YWxbQW51bV9wZ19mb3Jl aWduX3NlcnZlcl9zcnZmb3JzdWJzY3JpcHRpb24gLSAxXSA9IHN0bXQtPmZvcnN1YnNjcmlwdGlv bjsKKwkJcmVwbF9yZXBsW0FudW1fcGdfZm9yZWlnbl9zZXJ2ZXJfc3J2Zm9yc3Vic2NyaXB0aW9u IC0gMV0gPSB0cnVlOworCQlmb3JzdWJzY3JpcHRpb24gPSBzdG10LT5mb3JzdWJzY3JpcHRpb247 CisJfQorCWVsc2UKKwkJZm9yc3Vic2NyaXB0aW9uID0gc3J2Rm9ybS0+c3J2Zm9yc3Vic2NyaXB0 aW9uOworCisJaWYgKGZvcnN1YnNjcmlwdGlvbiAmJgorCQkhaGFzX3ByaXZzX29mX3JvbGUoc3J2 Rm9ybS0+c3J2b3duZXIsIFJPTEVfUEdfQ1JFQVRFX0NPTk5FQ1RJT04pKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJ IGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQgdG8gYWx0ZXIgc2VydmVyIGZvciBzdWJzY3JpcHRp b24iKSwKKwkJCQkgZXJyZGV0YWlsKCJPbmx5IHJvbGVzIHdpdGggcHJpdmlsZWdlcyBvZiB0aGUg XCIlc1wiIHJvbGUgbWF5IGFsdGVyIGZvcmVpZ24gc2VydmVycyB3aXRoIEZPUiBTVUJTQ1JJUFRJ T04gc3BlY2lmaWVkLiIsCisJCQkJCQkgICAicGdfY3JlYXRlX2Nvbm5lY3Rpb24iKSkpOworCiAJ aWYgKHN0bXQtPm9wdGlvbnMpCiAJewogCQlGb3JlaWduRGF0YVdyYXBwZXIgKmZkdyA9IEdldEZv cmVpZ25EYXRhV3JhcHBlcihzcnZGb3JtLT5zcnZmZHcpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jCmluZGV4IDk4M2I1ZDE3ZmUuLjFlMGMyZTViOTkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKQEAgLTYwOCw5ICs2MDgsOSBAQCBDcmVhdGVT dWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpz dG10LAogCQlQcmV2ZW50SW5UcmFuc2FjdGlvbkJsb2NrKGlzVG9wTGV2ZWwsICJDUkVBVEUgU1VC U0NSSVBUSU9OIC4uLiBXSVRIIChjcmVhdGVfc2xvdCA9IHRydWUpIik7CiAKIAkvKgotCSAqIFdl IGRvbid0IHdhbnQgdG8gYWxsb3cgdW5wcml2aWxlZ2VkIHVzZXJzIHRvIGJlIGFibGUgdG8gdHJp Z2dlcgotCSAqIGF0dGVtcHRzIHRvIGFjY2VzcyBhcmJpdHJhcnkgbmV0d29yayBkZXN0aW5hdGlv bnMsIHNvIHJlcXVpcmUgdGhlIHVzZXIKLQkgKiB0byBoYXZlIGJlZW4gc3BlY2lmaWNhbGx5IGF1 dGhvcml6ZWQgdG8gY3JlYXRlIHN1YnNjcmlwdGlvbnMuCisJICogV2UgZG9uJ3Qgd2FudCB0byBh bGxvdyB1bnByaXZpbGVnZWQgdXNlcnMgdG8gdXRpbGl6ZSB0aGUgcmVzb3VyY2VzIHRoYXQKKwkg KiBhIHN1YnNjcmlwdGlvbiByZXF1aXJlcyAoc3VjaCBhcyBhIGJhY2tncm91bmQgd29ya2VyKSwg c28gcmVxdWlyZSB0aGUKKwkgKiB1c2VyIHRvIGhhdmUgYmVlbiBzcGVjaWZpY2FsbHkgYXV0aG9y aXplZCB0byBjcmVhdGUgc3Vic2NyaXB0aW9ucy4KIAkgKi8KIAlpZiAoIWhhc19wcml2c19vZl9y b2xlKG93bmVyLCBST0xFX1BHX0NSRUFURV9TVUJTQ1JJUFRJT04pKQogCQllcmVwb3J0KEVSUk9S LApAQCAtNjg1LDYgKzY4NSwxMiBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQlpZiAoYWNscmVzdWx0ICE9IEFD TENIRUNLX09LKQogCQkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfRk9SRUlHTl9T RVJWRVIsIHNlcnZlci0+c2VydmVybmFtZSk7CiAKKwkJaWYgKCFzZXJ2ZXItPmZvcnN1YnNjcmlw dGlvbikKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJtc2coImZvcmVpZ24gc2VydmVyIFwi JXNcIiBub3QgdXNhYmxlIGZvciBzdWJzY3JpcHRpb24iLAorCQkJCQkJCXNlcnZlci0+c2VydmVy bmFtZSksCisJCQkJCSBlcnJoaW50KCJTcGVjaWZ5IEZPUiBTVUJTQ1JJUFRJT04gd2hlbiBjcmVh dGluZyB0aGUgZm9yZWlnbiBzZXJ2ZXIuIikpKTsKKwogCQkvKiBtYWtlIHN1cmUgYSB1c2VyIG1h cHBpbmcgZXhpc3RzICovCiAJCUdldFVzZXJNYXBwaW5nKG93bmVyLCBzZXJ2ZXItPnNlcnZlcmlk KTsKIApAQCAtNjk1LDYgKzcwMSwxOSBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCXsKIAkJQXNzZXJ0KHN0bXQt PmNvbm5pbmZvKTsKIAorCQkvKgorCQkgKiBXZSBkb24ndCB3YW50IHRvIGFsbG93IHVucHJpdmls ZWdlZCB1c2VycyB0byBiZSBhYmxlIHRvIHRyaWdnZXIKKwkJICogYXR0ZW1wdHMgdG8gYWNjZXNz IGFyYml0cmFyeSBuZXR3b3JrIGRlc3RpbmF0aW9ucywgc28gcmVxdWlyZSB0aGUgdXNlcgorCQkg KiB0byBoYXZlIGJlZW4gc3BlY2lmaWNhbGx5IGF1dGhvcml6ZWQgdG8gY3JlYXRlIGNvbm5lY3Rp b25zLgorCQkgKi8KKwkJaWYgKCFoYXNfcHJpdnNfb2Zfcm9sZShvd25lciwgUk9MRV9QR19DUkVB VEVfQ09OTkVDVElPTikpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RF X0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmll ZCB0byBjcmVhdGUgc3Vic2NyaXB0aW9uIHdpdGggYSBjb25uZWN0aW9uIHN0cmluZyIpLAorCQkJ CQkgZXJyZGV0YWlsKCJPbmx5IHJvbGVzIHdpdGggcHJpdmlsZWdlcyBvZiB0aGUgXCIlc1wiIHJv bGUgbWF5IGNyZWF0ZSBzdWJzY3JpcHRpb25zIHdpdGggQ09OTkVDVElPTiBzcGVjaWZpZWQuIiwK KwkJCQkJCQkgICAicGdfY3JlYXRlX2Nvbm5lY3Rpb24iKSwKKwkJCQkJIGVycmhpbnQoIkNyZWF0 ZSBhIHN1YnNjcmlwdGlvbiB0byBhIGZvcmVpZ24gc2VydmVyIGJ5IHNwZWNpZnlpbmcgU0VSVkVS IGluc3RlYWQuIikpKTsKKwogCQlzZXJ2ZXJpZCA9IEludmFsaWRPaWQ7CiAJCWNvbm5pbmZvID0g c3RtdC0+Y29ubmluZm87CiAJfQpAQCAtMTMzNCw2ICsxMzUzLDEyIEBAIEFsdGVyU3Vic2NyaXB0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJ CQkJCQkJR2V0VXNlck5hbWVGcm9tSWQoZm9ybS0+c3Vib3duZXIsIGZhbHNlKSwKIAkJCQkJCQkJ CUZvcmVpZ25TZXJ2ZXJOYW1lKG5ld19zZXJ2ZXItPnNlcnZlcmlkKSkpKTsKIAorCQkJCWlmICgh bmV3X3NlcnZlci0+Zm9yc3Vic2NyaXB0aW9uKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ CShlcnJtc2coImZvcmVpZ24gc2VydmVyIFwiJXNcIiBub3QgdXNhYmxlIGZvciBzdWJzY3JpcHRp b24iLAorCQkJCQkJCQkJbmV3X3NlcnZlci0+c2VydmVybmFtZSksCisJCQkJCQkJIGVycmhpbnQo IlNwZWNpZnkgRk9SIFNVQlNDUklQVElPTiB3aGVuIGNyZWF0aW5nIHRoZSBmb3JlaWduIHNlcnZl ci4iKSkpOworCiAJCQkJLyogbWFrZSBzdXJlIGEgdXNlciBtYXBwaW5nIGV4aXN0cyAqLwogCQkJ CUdldFVzZXJNYXBwaW5nKGZvcm0tPnN1Ym93bmVyLCBuZXdfc2VydmVyLT5zZXJ2ZXJpZCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ZvcmVpZ24vZm9yZWlnbi5jIGIvc3JjL2JhY2tlbmQv Zm9yZWlnbi9mb3JlaWduLmMKaW5kZXggZGIyY2Y2NzgwZC4uODYwNmQ1N2IzOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMKKysrIGIvc3JjL2JhY2tlbmQvZm9yZWln bi9mb3JlaWduLmMKQEAgLTE0OCw2ICsxNDgsNyBAQCBHZXRGb3JlaWduU2VydmVyRXh0ZW5kZWQo T2lkIHNlcnZlcmlkLCBiaXRzMTYgZmxhZ3MpCiAJc2VydmVyLT5zZXJ2ZXJuYW1lID0gcHN0cmR1 cChOYW1lU3RyKHNlcnZlcmZvcm0tPnNydm5hbWUpKTsKIAlzZXJ2ZXItPm93bmVyID0gc2VydmVy Zm9ybS0+c3J2b3duZXI7CiAJc2VydmVyLT5mZHdpZCA9IHNlcnZlcmZvcm0tPnNydmZkdzsKKwlz ZXJ2ZXItPmZvcnN1YnNjcmlwdGlvbiA9IHNlcnZlcmZvcm0tPnNydmZvcnN1YnNjcmlwdGlvbjsK IAogCS8qIEV4dHJhY3Qgc2VydmVyIHR5cGUgKi8KIAlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihG T1JFSUdOU0VSVkVST0lELApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYzI3ZTBiOGI1ZC4uM2FiY2ViZDhiMyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CkBAIC0zNjYsNiArMzY2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNp dmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsK IAogJXR5cGUgPHN0cj4JCW9wdF90eXBlCiAldHlwZSA8c3RyPgkJZm9yZWlnbl9zZXJ2ZXJfdmVy c2lvbiBvcHRfZm9yZWlnbl9zZXJ2ZXJfdmVyc2lvbgorJXR5cGUgPGJvb2xlYW4+CWZvcl9zdWJz Y3JpcHRpb24gb3B0X2Zvcl9zdWJzY3JpcHRpb24KICV0eXBlIDxzdHI+CQlvcHRfaW5fZGF0YWJh c2UKIAogJXR5cGUgPHN0cj4JCXBhcmFtZXRlcl9uYW1lCkBAIC01Mzk3LDcgKzUzOTgsNyBAQCBn ZW5lcmljX29wdGlvbl9hcmc6CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIENyZWF0ZUZvcmVp Z25TZXJ2ZXJTdG10OiBDUkVBVEUgU0VSVkVSIG5hbWUgb3B0X3R5cGUgb3B0X2ZvcmVpZ25fc2Vy dmVyX3ZlcnNpb24KLQkJCQkJCSBGT1JFSUdOIERBVEFfUCBXUkFQUEVSIG5hbWUgY3JlYXRlX2dl bmVyaWNfb3B0aW9ucworCQkJCQkJIEZPUkVJR04gREFUQV9QIFdSQVBQRVIgbmFtZSBvcHRfZm9y X3N1YnNjcmlwdGlvbiBjcmVhdGVfZ2VuZXJpY19vcHRpb25zCiAJCQkJewogCQkJCQlDcmVhdGVG b3JlaWduU2VydmVyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10KTsK IApAQCAtNTQwNSwxMiArNTQwNiwxMyBAQCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdDogQ1JFQVRF IFNFUlZFUiBuYW1lIG9wdF90eXBlIG9wdF9mb3JlaWduX3NlcnZlcl92ZXJzaW9uCiAJCQkJCW4t PnNlcnZlcnR5cGUgPSAkNDsKIAkJCQkJbi0+dmVyc2lvbiA9ICQ1OwogCQkJCQluLT5mZHduYW1l ID0gJDk7Ci0JCQkJCW4tPm9wdGlvbnMgPSAkMTA7CisJCQkJCW4tPmZvcnN1YnNjcmlwdGlvbiA9 ICQxMDsKKwkJCQkJbi0+b3B0aW9ucyA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZh bHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQkJCXwgQ1JFQVRFIFNFUlZFUiBJ Rl9QIE5PVCBFWElTVFMgbmFtZSBvcHRfdHlwZSBvcHRfZm9yZWlnbl9zZXJ2ZXJfdmVyc2lvbgot CQkJCQkJIEZPUkVJR04gREFUQV9QIFdSQVBQRVIgbmFtZSBjcmVhdGVfZ2VuZXJpY19vcHRpb25z CisJCQkJCQkgRk9SRUlHTiBEQVRBX1AgV1JBUFBFUiBuYW1lIG9wdF9mb3Jfc3Vic2NyaXB0aW9u IGNyZWF0ZV9nZW5lcmljX29wdGlvbnMKIAkJCQl7CiAJCQkJCUNyZWF0ZUZvcmVpZ25TZXJ2ZXJT dG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlRm9yZWlnblNlcnZlclN0bXQpOwogCkBAIC01NDE4LDcg KzU0MjAsOCBAQCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdDogQ1JFQVRFIFNFUlZFUiBuYW1lIG9w dF90eXBlIG9wdF9mb3JlaWduX3NlcnZlcl92ZXJzaW9uCiAJCQkJCW4tPnNlcnZlcnR5cGUgPSAk NzsKIAkJCQkJbi0+dmVyc2lvbiA9ICQ4OwogCQkJCQluLT5mZHduYW1lID0gJDEyOwotCQkJCQlu LT5vcHRpb25zID0gJDEzOworCQkJCQluLT5mb3JzdWJzY3JpcHRpb24gPSAkMTM7CisJCQkJCW4t Pm9wdGlvbnMgPSAkMTQ7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9 IChOb2RlICopIG47CiAJCQkJfQpAQCAtNTQ0MCw2ICs1NDQzLDE2IEBAIG9wdF9mb3JlaWduX3Nl cnZlcl92ZXJzaW9uOgogCQkJfCAvKkVNUFRZKi8JCQkJeyAkJCA9IE5VTEw7IH0KIAkJOwogCitm b3Jfc3Vic2NyaXB0aW9uOgorCQkJRk9SIFNVQlNDUklQVElPTgkJeyAkJCA9IHRydWU7IH0KKwkJ CXwgTk8gU1VCU0NSSVBUSU9OCQl7ICQkID0gZmFsc2U7IH0KKwkJOworCitvcHRfZm9yX3N1YnNj cmlwdGlvbjoKKwkJCWZvcl9zdWJzY3JpcHRpb24JCXsgJCQgPSAkMTsgfQorCQkJfCAvKkVNUFRZ Ki8JCQkJeyAkJCA9IGZhbHNlOyB9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgog ICoJCVFVRVJZIDoKQEAgLTU0NTcsNiArNTQ3MCwxNSBAQCBBbHRlckZvcmVpZ25TZXJ2ZXJTdG10 OiBBTFRFUiBTRVJWRVIgbmFtZSBmb3JlaWduX3NlcnZlcl92ZXJzaW9uIGFsdGVyX2dlbmVyaWNf bwogCQkJCQluLT5oYXNfdmVyc2lvbiA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJ CQl9CisJCQl8IEFMVEVSIFNFUlZFUiBuYW1lIGZvcl9zdWJzY3JpcHRpb24KKwkJCQl7CisJCQkJ CUFsdGVyRm9yZWlnblNlcnZlclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlckZvcmVpZ25TZXJ2ZXJT dG10KTsKKworCQkJCQluLT5zZXJ2ZXJuYW1lID0gJDM7CisJCQkJCW4tPmZvcnN1YnNjcmlwdGlv biA9ICQ0OworCQkJCQluLT5oYXNfZm9yc3Vic2NyaXB0aW9uID0gdHJ1ZTsKKwkJCQkJJCQgPSAo Tm9kZSAqKSBuOworCQkJCX0KIAkJCXwgQUxURVIgU0VSVkVSIG5hbWUgZm9yZWlnbl9zZXJ2ZXJf dmVyc2lvbgogCQkJCXsKIAkJCQkJQWx0ZXJGb3JlaWduU2VydmVyU3RtdCAqbiA9IG1ha2VOb2Rl KEFsdGVyRm9yZWlnblNlcnZlclN0bXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19hdXRoaWQuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoaWQuZGF0CmluZGV4 IDgyYTJlYzI4NjIuLmRjZmFkN2EwYzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfYXV0aGlkLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1dGhpZC5kYXQKQEAg LTk0LDUgKzk0LDEwIEBACiAgIHJvbGNyZWF0ZXJvbGUgPT4gJ2YnLCByb2xjcmVhdGVkYiA9PiAn ZicsIHJvbGNhbmxvZ2luID0+ICdmJywKICAgcm9scmVwbGljYXRpb24gPT4gJ2YnLCByb2xieXBh c3NybHMgPT4gJ2YnLCByb2xjb25ubGltaXQgPT4gJy0xJywKICAgcm9scGFzc3dvcmQgPT4gJ19u dWxsXycsIHJvbHZhbGlkdW50aWwgPT4gJ19udWxsXycgfSwKK3sgb2lkID0+ICc2MTIyJywgb2lk X3N5bWJvbCA9PiAnUk9MRV9QR19DUkVBVEVfQ09OTkVDVElPTicsCisgIHJvbG5hbWUgPT4gJ3Bn X2NyZWF0ZV9jb25uZWN0aW9uJywgcm9sc3VwZXIgPT4gJ2YnLCByb2xpbmhlcml0ID0+ICd0JywK KyAgcm9sY3JlYXRlcm9sZSA9PiAnZicsIHJvbGNyZWF0ZWRiID0+ICdmJywgcm9sY2FubG9naW4g PT4gJ2YnLAorICByb2xyZXBsaWNhdGlvbiA9PiAnZicsIHJvbGJ5cGFzc3JscyA9PiAnZicsIHJv bGNvbm5saW1pdCA9PiAnLTEnLAorICByb2xwYXNzd29yZCA9PiAnX251bGxfJywgcm9sdmFsaWR1 bnRpbCA9PiAnX251bGxfJyB9LAogCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2ZvcmVpZ25fc2VydmVyLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fc2Vy dmVyLmgKaW5kZXggYTRiODE5MzZiMC4uNjczNmFmMjRmNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19mb3JlaWduX3NlcnZlci5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfZm9yZWlnbl9zZXJ2ZXIuaApAQCAtMzEsNiArMzEsNyBAQCBDQVRBTE9HKHBnX2ZvcmVpZ25f c2VydmVyLDE0MTcsRm9yZWlnblNlcnZlclJlbGF0aW9uSWQpCiAJTmFtZURhdGEJc3J2bmFtZTsJ CS8qIGZvcmVpZ24gc2VydmVyIG5hbWUgKi8KIAlPaWQJCQlzcnZvd25lciBCS0lfTE9PS1VQKHBn X2F1dGhpZCk7IC8qIHNlcnZlciBvd25lciAqLwogCU9pZAkJCXNydmZkdyBCS0lfTE9PS1VQKHBn X2ZvcmVpZ25fZGF0YV93cmFwcGVyKTsgLyogc2VydmVyIEZEVyAqLworCWJvb2wJCXNydmZvcnN1 YnNjcmlwdGlvbiBCS0lfREVGQVVMVChmKTsgLyogdXNhYmxlIGZvciBzdWJzY3JpcHRpb24gKi8K IAogI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFy dCBoZXJlICovCiAJdGV4dAkJc3J2dHlwZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2ZvcmVp Z24vZm9yZWlnbi5oIGIvc3JjL2luY2x1ZGUvZm9yZWlnbi9mb3JlaWduLmgKaW5kZXggYTJmMDRj ZTlhZi4uZTFkOTNjMjZiYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZm9yZWlnbi9mb3JlaWdu LmgKKysrIGIvc3JjL2luY2x1ZGUvZm9yZWlnbi9mb3JlaWduLmgKQEAgLTM2LDYgKzM2LDcgQEAg dHlwZWRlZiBzdHJ1Y3QgRm9yZWlnblNlcnZlcgogCU9pZAkJCXNlcnZlcmlkOwkJLyogc2VydmVy IE9pZCAqLwogCU9pZAkJCWZkd2lkOwkJCS8qIGZvcmVpZ24tZGF0YSB3cmFwcGVyICovCiAJT2lk CQkJb3duZXI7CQkJLyogc2VydmVyIG93bmVyIHVzZXIgT2lkICovCisJYm9vbAkJZm9yc3Vic2Ny aXB0aW9uOwkvKiB1c2FibGUgZm9yIGEgc3Vic2NyaXB0aW9uICovCiAJY2hhcgkgICAqc2VydmVy bmFtZTsJCS8qIG5hbWUgb2YgdGhlIHNlcnZlciAqLwogCWNoYXIJICAgKnNlcnZlcnR5cGU7CQkv KiBzZXJ2ZXIgdHlwZSwgb3B0aW9uYWwgKi8KIAljaGFyCSAgICpzZXJ2ZXJ2ZXJzaW9uOwkvKiBz ZXJ2ZXIgdmVyc2lvbiwgb3B0aW9uYWwgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA2ZDZi MjQyY2VjLi4wMDU0N2JiZDg4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yNzI2LDYgKzI3 MjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdAogCWNoYXIJICAg KnZlcnNpb247CQkvKiBvcHRpb25hbCBzZXJ2ZXIgdmVyc2lvbiAqLwogCWNoYXIJICAgKmZkd25h bWU7CQkvKiBGRFcgbmFtZSAqLwogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGp1c3QgZG8gbm90 aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cz8gKi8KKwlib29sCQlmb3JzdWJzY3JpcHRpb247CS8q IHVzYWJsZSBmb3Igc3Vic2NyaXB0aW9uICovCiAJTGlzdAkgICAqb3B0aW9uczsJCS8qIGdlbmVy aWMgb3B0aW9ucyB0byBzZXJ2ZXIgKi8KIH0gQ3JlYXRlRm9yZWlnblNlcnZlclN0bXQ7CiAKQEAg LTI3MzQsOCArMjczNSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBBbHRlckZvcmVpZ25TZXJ2ZXJTdG10 CiAJTm9kZVRhZwkJdHlwZTsKIAljaGFyCSAgICpzZXJ2ZXJuYW1lOwkJLyogc2VydmVyIG5hbWUg Ki8KIAljaGFyCSAgICp2ZXJzaW9uOwkJLyogb3B0aW9uYWwgc2VydmVyIHZlcnNpb24gKi8KKwli b29sCQlmb3JzdWJzY3JpcHRpb247CS8qIHVzYWJsZSBmb3Igc3Vic2NyaXB0aW9uICovCiAJTGlz dAkgICAqb3B0aW9uczsJCS8qIGdlbmVyaWMgb3B0aW9ucyB0byBzZXJ2ZXIgKi8KIAlib29sCQlo YXNfdmVyc2lvbjsJLyogdmVyc2lvbiBzcGVjaWZpZWQgKi8KKwlib29sCQloYXNfZm9yc3Vic2Ny aXB0aW9uOyAvKiBbRk9SfE5PXSBTVUJTQ1JJUFRJT04gc3BlY2lmaWVkICovCiB9IEFsdGVyRm9y ZWlnblNlcnZlclN0bXQ7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dAppbmRleCBiMGExYTNjYzI2Li41YmQ4MTJi MzkzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC0x NTMsMTkgKzE1Myw1OCBAQCBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0 IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZQogRFJPUCBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViNjsKIC0tIHRlc3QgdXNpbmcgYSBzZXJ2ZXIgb2JqZWN0IGluc3Rl YWQgb2YgY29ubmVjdGlvbiBzdHJpbmcKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0NS RUFURSBST0xFIHJlZ3Jlc3NfY29ubmVjdGlvbl9yb2xlOwogQ1JFQVRFIEZPUkVJR04gREFUQSBX UkFQUEVSIHJlZ3Jlc3NfY29ubmVjdGlvbl9mZHcKICAgVkFMSURBVE9SIHBnX2Nvbm5lY3Rpb25f dmFsaWRhdG9yOwotQ1JFQVRFIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIxIEZPUkVJR04gREFU QSBXUkFQUEVSIHJlZ3Jlc3NfY29ubmVjdGlvbl9mZHc7CitDUkVBVEUgU0VSVkVSIHJlZ3Jlc3Nf dGVzdHNlcnZlcjEgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19jb25uZWN0aW9uX2Zkdwor ICBGT1IgU1VCU0NSSVBUSU9OOwogQ1JFQVRFIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIyIEZP UkVJR04gREFUQSBXUkFQUEVSIHJlZ3Jlc3NfY29ubmVjdGlvbl9mZHc7CitBTFRFUiBTRVJWRVIg cmVncmVzc190ZXN0c2VydmVyMSBPV05FUiBUTyByZWdyZXNzX2Nvbm5lY3Rpb25fcm9sZTsKK0FM VEVSIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIyIE9XTkVSIFRPIHJlZ3Jlc3NfY29ubmVjdGlv bl9yb2xlOwogQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNl cjMgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjEKICAgT1BUSU9OUyAocGFzc3dvcmQgJ3NlY3Jl dCcpOwogQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMg U0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjIKICAgT1BUSU9OUyAocGFzc3dvcmQgJ3NlY3JldCcp OwogR1JBTlQgVVNBR0UgT04gRk9SRUlHTiBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMiBUTyBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKKy0tIHRlbXBvcmFyaWx5IHJldm9rZSBwZ19jcmVh dGVfY29ubmVjdGlvbiBmcm9tIHBnX2NyZWF0ZV9zdWJzY3JpcHRpb24KKy0tIHRvIHRlc3QgdGhh dCBDUkVBVEUgU1VCU0NSSVBUSU9OIC4uLiBDT05ORUNUSU9OIGZhaWxzCitSRVZPS0UgcGdfY3Jl YXRlX2Nvbm5lY3Rpb24gRlJPTSBwZ19jcmVhdGVfc3Vic2NyaXB0aW9uOwogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKKy0tIGZhaWwgLSBub3Qg YSBtZW1iZXIgb2YgcGdfY3JlYXRlX2Nvbm5lY3Rpb24sIGNhbm5vdCB1c2UgQ09OTkVDVElPTgor Q1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IENPTk5FQ1RJT04gJ2RibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCBwYXNzd29yZD1yZWdyZXNzX2Zha2VwYXNzd29yZCcgUFVCTElD QVRJT04gdGVzdHB1YiBXSVRIIChzbG90X25hbWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2UpOwor RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCB0byBjcmVhdGUgc3Vic2NyaXB0aW9uIHdpdGggYSBj b25uZWN0aW9uIHN0cmluZworREVUQUlMOiAgT25seSByb2xlcyB3aXRoIHByaXZpbGVnZXMgb2Yg dGhlICJwZ19jcmVhdGVfY29ubmVjdGlvbiIgcm9sZSBtYXkgY3JlYXRlIHN1YnNjcmlwdGlvbnMg d2l0aCBDT05ORUNUSU9OIHNwZWNpZmllZC4KK0hJTlQ6ICBDcmVhdGUgYSBzdWJzY3JpcHRpb24g dG8gYSBmb3JlaWduIHNlcnZlciBieSBzcGVjaWZ5aW5nIFNFUlZFUiBpbnN0ZWFkLgogQ1JFQVRF IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIx IFBVQkxJQ0FUSU9OIHRlc3RwdWIKLSAgV0lUSCAoc2xvdF9uYW1lID0gTk9ORSwgY29ubmVjdCA9 IGZhbHNlKTsgLS0gZmFpbHMKKyAgV0lUSCAoc2xvdF9uYW1lID0gTk9ORSwgY29ubmVjdCA9IGZh bHNlKTsgLS0gZmFpbCAtIG5vIFVTQUdFCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBm b3JlaWduIHNlcnZlciByZWdyZXNzX3Rlc3RzZXJ2ZXIxCitSRVNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT047CitHUkFOVCBVU0FHRSBPTiBGT1JFSUdOIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIx IFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViNiBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMSBQVUJMSUNBVElPTiB0ZXN0cHVi CisgIFdJVEggKHNsb3RfbmFtZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7CitXQVJOSU5HOiAg c3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRv IGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxp Y2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vi c2NyaXB0aW9uLgorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgU0VSVkVSIHJl Z3Jlc3NfdGVzdHNlcnZlcjI7IC0tIGZhaWwgLSBub3QgRk9SIFNVQlNDUklQVElPTgorRVJST1I6 ICBmb3JlaWduIHNlcnZlciAicmVncmVzc190ZXN0c2VydmVyMiIgbm90IHVzYWJsZSBmb3Igc3Vi c2NyaXB0aW9uCitISU5UOiAgU3BlY2lmeSBGT1IgU1VCU0NSSVBUSU9OIHdoZW4gY3JlYXRpbmcg dGhlIGZvcmVpZ24gc2VydmVyLgorRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNjsK K0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBTRVJWRVIgcmVncmVzc190ZXN0 c2VydmVyMiBQVUJMSUNBVElPTiB0ZXN0cHViCisgIFdJVEggKHNsb3RfbmFtZSA9IE5PTkUsIGNv bm5lY3QgPSBmYWxzZSk7IC0tIGZhaWwgLSBub3QgRk9SIFNVQlNDUklQVElPTgorRVJST1I6ICBm b3JlaWduIHNlcnZlciAicmVncmVzc190ZXN0c2VydmVyMiIgbm90IHVzYWJsZSBmb3Igc3Vic2Ny aXB0aW9uCitISU5UOiAgU3BlY2lmeSBGT1IgU1VCU0NSSVBUSU9OIHdoZW4gY3JlYXRpbmcgdGhl IGZvcmVpZ24gc2VydmVyLgorUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworUkVWT0tFIFVT QUdFIE9OIEZPUkVJR04gU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjEgRlJPTSByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyMzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlcjM7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfY29ubmVj dGlvbl9yb2xlOworQUxURVIgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjIgRk9SIFNVQlNDUklQ VElPTjsgLS0gZmFpbHMgLSBuZWVkIHBnX2NyZWF0ZV9jb25uZWN0aW9uCitFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIHRvIGFsdGVyIHNlcnZlciBmb3Igc3Vic2NyaXB0aW9uCitERVRBSUw6ICBP bmx5IHJvbGVzIHdpdGggcHJpdmlsZWdlcyBvZiB0aGUgInBnX2NyZWF0ZV9jb25uZWN0aW9uIiBy b2xlIG1heSBhbHRlciBmb3JlaWduIHNlcnZlcnMgd2l0aCBGT1IgU1VCU0NSSVBUSU9OIHNwZWNp ZmllZC4KK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0dSQU5UIHBnX2NyZWF0ZV9jb25u ZWN0aW9uIFRPIHJlZ3Jlc3NfY29ubmVjdGlvbl9yb2xlOworU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX2Nvbm5lY3Rpb25fcm9sZTsKK0FMVEVSIFNFUlZFUiByZWdyZXNzX3Rlc3Rz ZXJ2ZXIyIEZPUiBTVUJTQ1JJUFRJT047CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIzOwogQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI2IFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIyIFBVQkxJQ0FUSU9OIHRlc3RwdWIKICAgV0lU SCAoc2xvdF9uYW1lID0gTk9ORSwgY29ubmVjdCA9IGZhbHNlKTsKIFdBUk5JTkc6ICBzdWJzY3Jp cHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCkBAIC0xODAsNyArMjE5LDcg QEAgRFJPUCBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMjsKIC0tIHRlc3QgYW4gRkRXIHdpdGgg bm8gdmFsaWRhdG9yCiBDUkVBVEUgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVncmVzc19mZHc7CiBD UkVBVEUgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjMgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcmVn cmVzc19mZHcKLSAgT1BUSU9OUyAoYWJjICd4eXonKTsKKyAgRk9SIFNVQlNDUklQVElPTiBPUFRJ T05TIChhYmMgJ3h5eicpOwogQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlcjMgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjMKICAgT1BUSU9OUyAocGFzc3dv cmQgJ3NlY3JldCcpOwogR1JBTlQgVVNBR0UgT04gRk9SRUlHTiBTRVJWRVIgcmVncmVzc190ZXN0 c2VydmVyMyBUTyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKQEAgLTE5Niw2ICsyMzUsOCBA QCBEUk9QIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMgU0VSVkVS IHJlZ3Jlc3NfdGVzdHNlcnZlcjE7CiBEUk9QIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIxOwog RFJPUCBGT1JFSUdOIERBVEEgV1JBUFBFUiByZWdyZXNzX2Nvbm5lY3Rpb25fZmR3OwogUkVWT0tF IENSRUFURSBPTiBEQVRBQkFTRSByZWdyZXNzaW9uIEZST00gcmVncmVzc19zdWJzY3JpcHRpb25f dXNlcjM7CistLSByZS1ncmFudCBwZ19jcmVhdGVfY29ubmVjdGlvbiB0byBwZ19jcmVhdGVfc3Vi c2NyaXB0aW9uCitHUkFOVCBwZ19jcmVhdGVfY29ubmVjdGlvbiBUTyBwZ19jcmVhdGVfc3Vic2Ny aXB0aW9uOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyOwogXGRScysKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zdWJzY3JpcHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9u LnNxbAppbmRleCA0ZDQ0ZjE0MWI3Li4wNjhhOGY4YzQ3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1 YnNjcmlwdGlvbi5zcWwKQEAgLTk4LDE5ICs5OCw1NiBAQCBEUk9QIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWI2OwogLS0gdGVzdCB1c2luZyBhIHNlcnZlciBvYmplY3QgaW5zdGVhZCBvZiBj b25uZWN0aW9uIHN0cmluZwogCiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitDUkVBVEUg Uk9MRSByZWdyZXNzX2Nvbm5lY3Rpb25fcm9sZTsKIENSRUFURSBGT1JFSUdOIERBVEEgV1JBUFBF UiByZWdyZXNzX2Nvbm5lY3Rpb25fZmR3CiAgIFZBTElEQVRPUiBwZ19jb25uZWN0aW9uX3ZhbGlk YXRvcjsKLUNSRUFURSBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMSBGT1JFSUdOIERBVEEgV1JB UFBFUiByZWdyZXNzX2Nvbm5lY3Rpb25fZmR3OworQ1JFQVRFIFNFUlZFUiByZWdyZXNzX3Rlc3Rz ZXJ2ZXIxIEZPUkVJR04gREFUQSBXUkFQUEVSIHJlZ3Jlc3NfY29ubmVjdGlvbl9mZHcKKyAgRk9S IFNVQlNDUklQVElPTjsKIENSRUFURSBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMiBGT1JFSUdO IERBVEEgV1JBUFBFUiByZWdyZXNzX2Nvbm5lY3Rpb25fZmR3OworQUxURVIgU0VSVkVSIHJlZ3Jl c3NfdGVzdHNlcnZlcjEgT1dORVIgVE8gcmVncmVzc19jb25uZWN0aW9uX3JvbGU7CitBTFRFUiBT RVJWRVIgcmVncmVzc190ZXN0c2VydmVyMiBPV05FUiBUTyByZWdyZXNzX2Nvbm5lY3Rpb25fcm9s ZTsKIENSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNF UlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIxCiAgIE9QVElPTlMgKHBhc3N3b3JkICdzZWNyZXQnKTsK IENSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZF UiByZWdyZXNzX3Rlc3RzZXJ2ZXIyCiAgIE9QVElPTlMgKHBhc3N3b3JkICdzZWNyZXQnKTsKIEdS QU5UIFVTQUdFIE9OIEZPUkVJR04gU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjIgVE8gcmVncmVz c19zdWJzY3JpcHRpb25fdXNlcjM7CiAKKy0tIHRlbXBvcmFyaWx5IHJldm9rZSBwZ19jcmVhdGVf Y29ubmVjdGlvbiBmcm9tIHBnX2NyZWF0ZV9zdWJzY3JpcHRpb24KKy0tIHRvIHRlc3QgdGhhdCBD UkVBVEUgU1VCU0NSSVBUSU9OIC4uLiBDT05ORUNUSU9OIGZhaWxzCitSRVZPS0UgcGdfY3JlYXRl X2Nvbm5lY3Rpb24gRlJPTSBwZ19jcmVhdGVfc3Vic2NyaXB0aW9uOworCitTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOworCistLSBmYWlsIC0gbm90 IGEgbWVtYmVyIG9mIHBnX2NyZWF0ZV9jb25uZWN0aW9uLCBjYW5ub3QgdXNlIENPTk5FQ1RJT04K K0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBDT05ORUNUSU9OICdkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgcGFzc3dvcmQ9cmVncmVzc19mYWtlcGFzc3dvcmQnIFBVQkxJ Q0FUSU9OIHRlc3RwdWIgV0lUSCAoc2xvdF9uYW1lID0gTk9ORSwgY29ubmVjdCA9IGZhbHNlKTsK KworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IFNFUlZFUiByZWdyZXNzX3Rl c3RzZXJ2ZXIxIFBVQkxJQ0FUSU9OIHRlc3RwdWIKKyAgV0lUSCAoc2xvdF9uYW1lID0gTk9ORSwg Y29ubmVjdCA9IGZhbHNlKTsgLS0gZmFpbCAtIG5vIFVTQUdFCisKK1JFU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTjsKK0dSQU5UIFVTQUdFIE9OIEZPUkVJR04gU0VSVkVSIHJlZ3Jlc3NfdGVzdHNl cnZlcjEgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CiBTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOworCiBDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YjYgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjEgUFVCTElDQVRJT04g dGVzdHB1YgotICBXSVRIIChzbG90X25hbWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2UpOyAtLSBm YWlscworICBXSVRIIChzbG90X25hbWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2UpOworQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjI7 IC0tIGZhaWwgLSBub3QgRk9SIFNVQlNDUklQVElPTgorRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViNjsKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBTRVJWRVIg cmVncmVzc190ZXN0c2VydmVyMiBQVUJMSUNBVElPTiB0ZXN0cHViCisgIFdJVEggKHNsb3RfbmFt ZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7IC0tIGZhaWwgLSBub3QgRk9SIFNVQlNDUklQVElP TgorCitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitSRVZPS0UgVVNBR0UgT04gRk9SRUlH TiBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMSBGUk9NIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIzOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy MzsKKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX2Nvbm5lY3Rpb25fcm9sZTsK K0FMVEVSIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIyIEZPUiBTVUJTQ1JJUFRJT047IC0tIGZh aWxzIC0gbmVlZCBwZ19jcmVhdGVfY29ubmVjdGlvbgorUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OOworR1JBTlQgcGdfY3JlYXRlX2Nvbm5lY3Rpb24gVE8gcmVncmVzc19jb25uZWN0aW9uX3Jv bGU7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfY29ubmVjdGlvbl9yb2xlOwor QUxURVIgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjIgRk9SIFNVQlNDUklQVElPTjsKKworU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKKwogQ1JF QVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2 ZXIyIFBVQkxJQ0FUSU9OIHRlc3RwdWIKICAgV0lUSCAoc2xvdF9uYW1lID0gTk9ORSwgY29ubmVj dCA9IGZhbHNlKTsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKQEAgLTEyNCw3ICsxNjEs NyBAQCBEUk9QIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIyOwogLS0gdGVzdCBhbiBGRFcgd2l0 aCBubyB2YWxpZGF0b3IKIENSRUFURSBGT1JFSUdOIERBVEEgV1JBUFBFUiByZWdyZXNzX2ZkdzsK IENSRUFURSBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMyBGT1JFSUdOIERBVEEgV1JBUFBFUiBy ZWdyZXNzX2ZkdwotICBPUFRJT05TIChhYmMgJ3h5eicpOworICBGT1IgU1VCU0NSSVBUSU9OIE9Q VElPTlMgKGFiYyAneHl6Jyk7CiBDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyMyBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyMwogICBPUFRJT05TIChwYXNz d29yZCAnc2VjcmV0Jyk7CiBHUkFOVCBVU0FHRSBPTiBGT1JFSUdOIFNFUlZFUiByZWdyZXNzX3Rl c3RzZXJ2ZXIzIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOwpAQCAtMTQ0LDYgKzE4MSwx MCBAQCBEUk9QIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMgU0VS VkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjE7CiBEUk9QIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIx OwogRFJPUCBGT1JFSUdOIERBVEEgV1JBUFBFUiByZWdyZXNzX2Nvbm5lY3Rpb25fZmR3OwogUkVW T0tFIENSRUFURSBPTiBEQVRBQkFTRSByZWdyZXNzaW9uIEZST00gcmVncmVzc19zdWJzY3JpcHRp b25fdXNlcjM7CisKKy0tIHJlLWdyYW50IHBnX2NyZWF0ZV9jb25uZWN0aW9uIHRvIHBnX2NyZWF0 ZV9zdWJzY3JpcHRpb24KK0dSQU5UIHBnX2NyZWF0ZV9jb25uZWN0aW9uIFRPIHBnX2NyZWF0ZV9z dWJzY3JpcHRpb247CisKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlcjsKIAogXGRScysKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAwMV9yZXBfY2hhbmdlcy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwMV9yZXBfY2hh bmdlcy5wbAppbmRleCA4NjUzNDIzZDA4Li44MTg2MWY3N2UxIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMDFfcmVwX2NoYW5nZXMucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDAxX3JlcF9jaGFuZ2VzLnBsCkBAIC0xMTksNyArMTE5LDcgQEAgJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIkNSRUFURSBGT1JFSUdOIERBVEEgV1JB UFBFUiB0ZXN0X2Nvbm5lY3Rpb25fZmR3IFZBTElEQVRPUiBwZ19jb25uZWN0aW9uX3ZhbGlkYXRv ciIKICk7CiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKLQkiQ1JFQVRF IFNFUlZFUiB0YXBfc3ViMl9zZXJ2ZXIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVzdF9jb25uZWN0 aW9uX2ZkdyBPUFRJT05TIChob3N0ICckcHVibGlzaGVyX2hvc3QnLCBwb3J0ICckcHVibGlzaGVy X3BvcnQnLCBkYm5hbWUgJ3Bvc3RncmVzJykiCisJIkNSRUFURSBTRVJWRVIgdGFwX3N1YjJfc2Vy dmVyIEZPUkVJR04gREFUQSBXUkFQUEVSIHRlc3RfY29ubmVjdGlvbl9mZHcgRk9SIFNVQlNDUklQ VElPTiBPUFRJT05TIChob3N0ICckcHVibGlzaGVyX2hvc3QnLCBwb3J0ICckcHVibGlzaGVyX3Bv cnQnLCBkYm5hbWUgJ3Bvc3RncmVzJykiCiApOwogCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKLS0gCjIuMzQuMQoK --=-YphDLf/Pjh4HkC3f/IWz--