Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oiemH-0008HD-Es for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Oct 2022 16:40:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oiemF-0005xG-AV for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Oct 2022 16:40:15 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oiemE-0005x2-HE for pgsql-hackers@lists.postgresql.org; Wed, 12 Oct 2022 16:40:15 +0000 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1oiem9-0004S6-7r for pgsql-hackers@postgresql.org; Wed, 12 Oct 2022 16:40:13 +0000 Received: by mail-pl1-x632.google.com with SMTP id c24so16731890pls.9 for ; Wed, 12 Oct 2022 09:40:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=timescale.com; s=google; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=mx2BVQqB8Yrq6ppyKv/3hePqhnwMt3YGXE5vlIUpHjg=; b=m9DCpAX1D7CC/aKuj5X5mioViLMea3HnWgegNIHd/7L+x6Fjq8HVHSwDJ8x0jexaeb b05wDOtaRJoN4JuilX3bRRYKoYSgUee77yH1C035cymBn7kn9QGVnpm2BE9tj9aZy7mV 2IkGqj0yCXaDXYnDVyYJDtOAXd8XFD0Eqx6lqehve17dJERoSM/MurQEM+JzaMRrhhrD hFpvvaRyPOKxAvLNA96IeQ3vec+35jTDPhZOAOC44f7c+PmGR4FYd+8frimYQaJNQrTk cSkw8a1422WpWeux/ObPF6JTvaLA2aMHJ25wYWPbiE4RVcfyTqIv0UiWa0VXe5lQPAaz 1DbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=mx2BVQqB8Yrq6ppyKv/3hePqhnwMt3YGXE5vlIUpHjg=; b=B7MQvKL4Wg9ZPwKbemq/DJOejlM3WaexPYY/GvbkFo68hbilD04hLHj+L/+w1uxqON +isZbXzrRzrILvIqutYSlwTzL0o0GGF3T+kiJ18WPaEHRX4TV/x11s6pZJlzuDH8ZWSK ZPtZSjpWFOoq+DzBuoU4Jw/YYwMTnS8mcDbtPBGRE2oHF2eo96En/5tPr1NDtsN1DLjU mpDJ5Iraus0gdTZ2JYSjKwC78SRRZ0GnjT/JrpU6lF4htdbDPFIfS4sYkv8Inij1sH9f iURcuom7UUjw//94gRBHGTt2NB8N4VCafixGz89fXS90Rhr6hiug2eexLOdFArd2wUwN BthA== X-Gm-Message-State: ACrzQf0GL0PGo38/UJuH2/xJKmIFBHer7/FByzbqOHuuDz7zNqOZZ0qP e/fS//Pnn1IZlacm1rYi/e6edA== X-Google-Smtp-Source: AMsMyM5MLtZVbQr6/1q05dfWs8sz9ZUbkim/hMxOH7FG8e0YuwqwLy3Sg//nPVEafCse29UsdOGRTA== X-Received: by 2002:a17:90a:e291:b0:20a:acde:1c43 with SMTP id d17-20020a17090ae29100b0020aacde1c43mr6114455pjz.62.1665592807865; Wed, 12 Oct 2022 09:40:07 -0700 (PDT) Received: from [192.168.1.21] ([50.126.126.51]) by smtp.gmail.com with ESMTPSA id k7-20020aa79987000000b00561b94ee263sm82155pfh.109.2022.10.12.09.40.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 12 Oct 2022 09:40:07 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------SCKnrpjZ8F0HlUONwDdA2KBD" Message-ID: Date: Wed, 12 Oct 2022 09:40:05 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: [PoC] Let libpq reject unexpected authentication requests To: Peter Eisentraut Cc: "pgsql-hackers@postgresql.org" , Michael Paquier , "David G. Johnston" References: <9e5a8ccddb8355ea9fa4b75a1e3a9edc88a70cd3.camel@vmware.com> <77358b4c-6497-e5d3-c13c-57522654af25@enterprisedb.com> <914a0125-3dfb-920f-51b6-8d44a8edbdd2@enterprisedb.com> <949f1c20-771c-aef7-058f-2c10885db955@enterprisedb.com> <8e2e5fb6-8225-de8a-b0f9-178c27402367@enterprisedb.com> Content-Language: en-US From: Jacob Champion In-Reply-To: <8e2e5fb6-8225-de8a-b0f9-178c27402367@enterprisedb.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------SCKnrpjZ8F0HlUONwDdA2KBD Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 10/5/22 06:33, Peter Eisentraut wrote: > I think it would be good to put some provisions in place here, even if > they are elementary. Otherwise, there will be a significant burden on > the person who implements the next SASL method (i.e., you ;-) ) to > figure that out then. Sounds good, I'll work on that. v10 does not yet make changes in this area. > I think you could just stick a string list of allowed SASL methods into > PGconn. > > By the way, I'm not sure all the bit fiddling is really worth it. An > array of integers (or unsigned char or whatever) would work just as > well. Especially if you are going to have a string list for SASL > anyway. You're not really saving any bits or bytes either way in the > normal case. Yeah, with the SASL case added in, the bitmasks might not be long for this world. It is nice to be able to invert the whole thing, but a separate boolean saying "invert the list" could accomplish the same goal and I think we'll need to have that for the SASL mechanism list anyway. > Minor comments: > > Pasting together error messages like with auth_description() isn't going > to work. You either need to expand the whole message in > check_expected_areq(), or perhaps rephrase the message like > > libpq_gettext("auth method \"%s\" required, but server requested \"%s\"\n"), > conn->require_auth, > auth_description(areq) > > and make auth_description() just return a single word not subject to > translation. Right. Michael tried to warn me about that upthread, but I only ended up fixing one of the two error cases for some reason. I've merged the two into one code path for v10. Quick error messaging bikeshed: do you prefer auth method "!password,!md5" requirement failed: ... or auth method requirement "!password,!md5" failed: ... ? > spurious whitespace change in fe-secure-openssl.c Fixed. > whitespace error in patch: > > .git/rebase-apply/patch:109: tab in indent. > via TLS, nor GSS authentication via its > encrypted transport.) Fixed. > In the 0002 patch, the configure test needs to be added to meson.build. Added. Thanks, --Jacob --------------SCKnrpjZ8F0HlUONwDdA2KBD Content-Type: text/plain; charset=UTF-8; name="since-v9.diff.txt" Content-Disposition: attachment; filename="since-v9.diff.txt" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sIGIvZG9jL3NyYy9zZ21sL2xp YnBxLnNnbWwKaW5kZXggNDVjNTIyOGNmZS4uYzA2YjA3MThjZiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2xpYnBxLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKQEAg LTEzMDYsNyArMTMwNiw3IEBAIHBvc3RncmVzcWw6Ly8lMkZ2YXIlMkZsaWIlMkZwb3N0Z3Jl c3FsL2RibmFtZQogICAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgIFRoZSBzZXJ2ZXIg bXVzdCBub3QgcHJvbXB0IHRoZSBjbGllbnQgZm9yIGFuIGF1dGhlbnRpY2F0aW9uCiAgICAg ICAgICAgICBleGNoYW5nZS4gKFRoaXMgZG9lcyBub3QgcHJvaGliaXQgY2xpZW50IGNlcnRp ZmljYXRlIGF1dGhlbnRpY2F0aW9uCi0JCQl2aWEgVExTLCBub3IgR1NTIGF1dGhlbnRpY2F0 aW9uIHZpYSBpdHMgZW5jcnlwdGVkIHRyYW5zcG9ydC4pCisgICAgICAgICAgICB2aWEgVExT LCBub3IgR1NTIGF1dGhlbnRpY2F0aW9uIHZpYSBpdHMgZW5jcnlwdGVkIHRyYW5zcG9ydC4p CiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAg PC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxk CmluZGV4IDkyNWRiNzBjOWQuLmJhZDAzNWM4ZTMgMTAwNjQ0Ci0tLSBhL21lc29uLmJ1aWxk CisrKyBiL21lc29uLmJ1aWxkCkBAIC0xMTczLDggKzExNzMsOSBAQCBpZiBnZXRfb3B0aW9u KCdzc2wnKSA9PSAnb3BlbnNzbCcKICAgICBbJ0NSWVBUT19uZXdfZXhfZGF0YScsIHsncmVx dWlyZWQnOiB0cnVlfV0sCiAgICAgWydTU0xfbmV3JywgeydyZXF1aXJlZCc6IHRydWV9XSwK IAotICAgICMgRnVuY3Rpb24gaW50cm9kdWNlZCBpbiBPcGVuU1NMIDEuMC4yLgorICAgICMg RnVuY3Rpb25zIGludHJvZHVjZWQgaW4gT3BlblNTTCAxLjAuMi4gTGlicmVTU0wgZG9lc24n dCBoYXZlIGFsbCBvZiB0aGVzZS4KICAgICBbJ1g1MDlfZ2V0X3NpZ25hdHVyZV9uaWQnXSwK KyAgICBbJ1NTTF9DVFhfc2V0X2NlcnRfY2InXSwKIAogICAgICMgRnVuY3Rpb25zIGludHJv ZHVjZWQgaW4gT3BlblNTTCAxLjEuMC4gV2UgdXNlZCB0byBjaGVjayBmb3IKICAgICAjIE9Q RU5TU0xfVkVSU0lPTl9OVU1CRVIsIGJ1dCB0aGF0IGRpZG4ndCB3b3JrIHdpdGggMS4xLjAs IGJlY2F1c2UgTGlicmVTU0wKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2Zl LWF1dGguYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGguYwppbmRleCA3OTM4ODhk MzBmLi4yOTViOTc4NTI1IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1h dXRoLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC5jCkBAIC04MzcsNyAr ODM3LDcgQEAgcGdfcGFzc3dvcmRfc2VuZGF1dGgoUEdjb25uICpjb25uLCBjb25zdCBjaGFy ICpwYXNzd29yZCwgQXV0aFJlcXVlc3QgYXJlcSkKIH0KIAogLyoKLSAqIFRyYW5zbGF0ZSBh biBBdXRoUmVxdWVzdCBpbnRvIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24uCisgKiBU cmFuc2xhdGUgYSBkaXNhbGxvd2VkIEF1dGhSZXF1ZXN0IGNvZGUgaW50byBhbiBlcnJvciBt ZXNzYWdlLgogICovCiBzdGF0aWMgY29uc3QgY2hhciAqCiBhdXRoX2Rlc2NyaXB0aW9uKEF1 dGhSZXF1ZXN0IGFyZXEpCkBAIC04NDUsMjMgKzg0NSwyMyBAQCBhdXRoX2Rlc2NyaXB0aW9u KEF1dGhSZXF1ZXN0IGFyZXEpCiAJc3dpdGNoIChhcmVxKQogCXsKIAkJY2FzZSBBVVRIX1JF UV9QQVNTV09SRDoKLQkJCXJldHVybiBsaWJwcV9nZXR0ZXh0KCJhIGNsZWFydGV4dCBwYXNz d29yZCIpOworCQkJcmV0dXJuIGxpYnBxX2dldHRleHQoInNlcnZlciByZXF1ZXN0ZWQgYSBj bGVhcnRleHQgcGFzc3dvcmQiKTsKIAkJY2FzZSBBVVRIX1JFUV9NRDU6Ci0JCQlyZXR1cm4g bGlicHFfZ2V0dGV4dCgiYSBoYXNoZWQgcGFzc3dvcmQiKTsKKwkJCXJldHVybiBsaWJwcV9n ZXR0ZXh0KCJzZXJ2ZXIgcmVxdWVzdGVkIGEgaGFzaGVkIHBhc3N3b3JkIik7CiAJCWNhc2Ug QVVUSF9SRVFfR1NTOgogCQljYXNlIEFVVEhfUkVRX0dTU19DT05UOgotCQkJcmV0dXJuIGxp YnBxX2dldHRleHQoIkdTU0FQSSBhdXRoZW50aWNhdGlvbiIpOworCQkJcmV0dXJuIGxpYnBx X2dldHRleHQoInNlcnZlciByZXF1ZXN0ZWQgR1NTQVBJIGF1dGhlbnRpY2F0aW9uIik7CiAJ CWNhc2UgQVVUSF9SRVFfU1NQSToKLQkJCXJldHVybiBsaWJwcV9nZXR0ZXh0KCJTU1BJIGF1 dGhlbnRpY2F0aW9uIik7CisJCQlyZXR1cm4gbGlicHFfZ2V0dGV4dCgic2VydmVyIHJlcXVl c3RlZCBTU1BJIGF1dGhlbnRpY2F0aW9uIik7CiAJCWNhc2UgQVVUSF9SRVFfU0NNX0NSRURT OgotCQkJcmV0dXJuIGxpYnBxX2dldHRleHQoIlVOSVggc29ja2V0IGNyZWRlbnRpYWxzIik7 CisJCQlyZXR1cm4gbGlicHFfZ2V0dGV4dCgic2VydmVyIHJlcXVlc3RlZCBVTklYIHNvY2tl dCBjcmVkZW50aWFscyIpOwogCQljYXNlIEFVVEhfUkVRX1NBU0w6CiAJCWNhc2UgQVVUSF9S RVFfU0FTTF9DT05UOgogCQljYXNlIEFVVEhfUkVRX1NBU0xfRklOOgotCQkJcmV0dXJuIGxp YnBxX2dldHRleHQoIlNBU0wgYXV0aGVudGljYXRpb24iKTsKKwkJCXJldHVybiBsaWJwcV9n ZXR0ZXh0KCJzZXJ2ZXIgcmVxdWVzdGVkIFNBU0wgYXV0aGVudGljYXRpb24iKTsKIAl9CiAK LQlyZXR1cm4gbGlicHFfZ2V0dGV4dCgiYW4gdW5rbm93biBhdXRoZW50aWNhdGlvbiB0eXBl Iik7CisJcmV0dXJuIGxpYnBxX2dldHRleHQoInNlcnZlciByZXF1ZXN0ZWQgYW4gdW5rbm93 biBhdXRoZW50aWNhdGlvbiB0eXBlIik7CiB9CiAKIC8qCkBAIC04ODMsNyArODgzLDcgQEAg c3RhdGljIGJvb2wKIGNoZWNrX2V4cGVjdGVkX2FyZXEoQXV0aFJlcXVlc3QgYXJlcSwgUEdj b25uICpjb25uKQogewogCWJvb2wJCXJlc3VsdCA9IHRydWU7Ci0JY2hhcgkgICAqcmVhc29u ID0gTlVMTDsKKwljb25zdCBjaGFyICpyZWFzb24gPSBOVUxMOwogCiAJaWYgKGNvbm4tPnNz bGNlcnRtb2RlWzBdID09ICdyJyAvKiByZXF1aXJlICovCiAJCSYmIGFyZXEgPT0gQVVUSF9S RVFfT0spCkBAIC05ODQsMTkgKzk4NCwxMiBAQCBjaGVja19leHBlY3RlZF9hcmVxKEF1dGhS ZXF1ZXN0IGFyZXEsIFBHY29ubiAqY29ubikKIAogCWlmICghcmVzdWx0KQogCXsKLQkJaWYg KHJlYXNvbikKLQkJewotCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2Fn ZSwKLQkJCQkJCQkgIGxpYnBxX2dldHRleHQoImF1dGggbWV0aG9kIFwiJXNcIiByZXF1aXJl bWVudCBmYWlsZWQ6ICVzXG4iKSwKLQkJCQkJCQkgIGNvbm4tPnJlcXVpcmVfYXV0aCwgcmVh c29uKTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5l cnJvck1lc3NhZ2UsCi0JCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJhdXRoIG1ldGhvZCBcIiVz XCIgcmVxdWlyZWQsIGJ1dCBzZXJ2ZXIgcmVxdWVzdGVkICVzXG4iKSwKLQkJCQkJCQkgIGNv bm4tPnJlcXVpcmVfYXV0aCwKLQkJCQkJCQkgIGF1dGhfZGVzY3JpcHRpb24oYXJlcSkpOwot CQl9CisJCWlmICghcmVhc29uKQorCQkJcmVhc29uID0gYXV0aF9kZXNjcmlwdGlvbihhcmVx KTsKKworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJ ICBsaWJwcV9nZXR0ZXh0KCJhdXRoIG1ldGhvZCBcIiVzXCIgcmVxdWlyZW1lbnQgZmFpbGVk OiAlc1xuIiksCisJCQkJCQkgIGNvbm4tPnJlcXVpcmVfYXV0aCwgcmVhc29uKTsKIAogCQly ZXR1cm4gcmVzdWx0OwogCX0K --------------SCKnrpjZ8F0HlUONwDdA2KBD Content-Type: text/x-patch; charset=UTF-8; name="v10-0001-libpq-let-client-reject-unexpected-auth-methods.patch" Content-Disposition: attachment; filename*0="v10-0001-libpq-let-client-reject-unexpected-auth-methods.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSBiZjMzZGMyZDdhYzQyZmY0YzE0YTE0OWI3MDdhM2VlNDdhYTNkNzZmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8cGNoYW1waW9uQHZtd2Fy ZS5jb20+CkRhdGU6IE1vbiwgMjggRmViIDIwMjIgMDk6NDA6NDMgLTA4MDAKU3ViamVjdDog W1BBVENIIHYxMCAxLzJdIGxpYnBxOiBsZXQgY2xpZW50IHJlamVjdCB1bmV4cGVjdGVkIGF1 dGggbWV0aG9kcwoKVGhlIHJlcXVpcmVfYXV0aCBjb25uZWN0aW9uIG9wdGlvbiBhbGxvd3Mg dGhlIGNsaWVudCB0byBjaG9vc2UgYSBsaXN0IG9mCmFjY2VwdGFibGUgYXV0aGVudGljYXRp b24gdHlwZXMgZm9yIHVzZSB3aXRoIHRoZSBzZXJ2ZXIuIFRoZXJlIGlzIG5vCm5lZ290aWF0 aW9uOiBpZiB0aGUgc2VydmVyIGRvZXMgbm90IHByZXNlbnQgb25lIG9mIHRoZSBhbGxvd2Vk CmF1dGhlbnRpY2F0aW9uIHJlcXVlc3RzLCB0aGUgY29ubmVjdGlvbiBmYWlscy4gQWRkaXRp b25hbGx5LCBhbGwgbWV0aG9kcwppbiB0aGUgbGlzdCBtYXkgYmUgbmVnYXRlZCwgZS5nLiAn IXBhc3N3b3JkJywgaW4gd2hpY2ggY2FzZSB0aGUgc2VydmVyCm11c3QgTk9UIHVzZSB0aGUg bGlzdGVkIGF1dGhlbnRpY2F0aW9uIHR5cGUuIFRoZSBzcGVjaWFsIG1ldGhvZCAibm9uZSIK YWxsb3dzL2Rpc2FsbG93cyB0aGUgdXNlIG9mIHVuYXV0aGVudGljYXRlZCBjb25uZWN0aW9u cyAoYnV0IGl0IGRvZXMgbm90CmdvdmVybiB0cmFuc3BvcnQtbGV2ZWwgYXV0aGVudGljYXRp b24gdmlhIFRMUyBvciBHU1NBUEkpLgoKSW50ZXJuYWxseSwgdGhlIHBhdGNoIGV4cGFuZHMg dGhlIHJvbGUgb2YgY2hlY2tfZXhwZWN0ZWRfYXJlcSgpIHRvCmVuc3VyZSB0aGF0IHRoZSBp bmNvbWluZyByZXF1ZXN0IGlzIGNvbXBhdGlibGUgd2l0aCBjb25uLT5yZXF1aXJlX2F1dGgu Ckl0IGFsc28gaW50cm9kdWNlcyBhIG5ldyBmbGFnLCBjb25uLT5jbGllbnRfZmluaXNoZWRf YXV0aCwgd2hpY2ggaXMgc2V0CmJ5IHZhcmlvdXMgYXV0aGVudGljYXRpb24gcm91dGluZXMg d2hlbiB0aGUgY2xpZW50IHNpZGUgb2YgdGhlIGhhbmRzaGFrZQppcyBmaW5pc2hlZC4gVGhp cyBzaWduYWxzIHRvIGNoZWNrX2V4cGVjdGVkX2FyZXEoKSB0aGF0IGFuIE9LIG1lc3NhZ2UK ZnJvbSB0aGUgc2VydmVyIGlzIGV4cGVjdGVkLCBhbmQgYWxsb3dzIHRoZSBjbGllbnQgdG8g Y29tcGxhaW4gaWYgdGhlCnNlcnZlciBmb3Jnb2VzIGF1dGhlbnRpY2F0aW9uIGVudGlyZWx5 LgoKKFNpbmNlIHRoZSBjbGllbnQgY2FuJ3QgZ2VuZXJhbGx5IHByb3ZlIHRoYXQgdGhlIHNl cnZlciBpcyBhY3R1YWxseQpkb2luZyB0aGUgd29yayBvZiBhdXRoZW50aWNhdGlvbiwgdGhp cyBsYXN0IHBhcnQgaXMgbW9zdGx5IHVzZWZ1bCBmb3IKU0NSQU0gd2l0aG91dCBjaGFubmVs IGJpbmRpbmcuIEl0IGNvdWxkIGFsc28gcHJvdmlkZSBhIGNsaWVudCB3aXRoIGEKZGVjZW50 IHNpZ25hbCB0aGF0LCBhdCB0aGUgdmVyeSBsZWFzdCwgaXQncyBub3QgY29ubmVjdGluZyB0 byBhIGRhdGFiYXNlCndpdGggdHJ1c3QgYXV0aCwgYW5kIHNvIHRoZSBjb25uZWN0aW9uIGNh biBiZSB0aWVkIHRvIHRoZSBjbGllbnQgaW4gYQpsYXRlciBhdWRpdC4pCgpEZWZpY2llbmNp ZXM6Ci0gVGhpcyBpcyB1bmxpa2VseSB0byBiZSB2ZXJ5IGZvcndhcmRzLWNvbXBhdGlibGUg YXQgdGhlIG1vbWVudCwKICBlc3BlY2lhbGx5IHdpdGggU0FTTC9TQ1JBTS4KLSBTU1BJIHN1 cHBvcnQgaXMgImltcGxlbWVudGVkIiBidXQgdW50ZXN0ZWQuCi0gcmVxdWlyZV9hdXRoPW5v bmUsc2NyYW0tc2hhLTI1NiBjdXJyZW50bHkgYWxsb3dzIHRoZSBzZXJ2ZXIgdG8gbGVhdmUg YQogIFNDUkFNIGV4Y2hhbmdlIHVuZmluaXNoZWQuIFRoaXMgaXMgbm90IG5ldC1uZXcgYmVo YXZpb3IgYnV0IG1heSBiZQogIHN1cnByaXNpbmcuCi0tLQogZG9jL3NyYy9zZ21sL2xpYnBx LnNnbWwgICAgICAgICAgICAgICAgICAgfCAxMDUgKysrKysrKysrKysrKysKIHNyYy9pbmNs dWRlL2xpYnBxL3BxY29tbS5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWF1dGgtc2NyYW0uYyAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLWF1dGguYyAgICAgICAgICAgIHwgMTM2ICsrKysrKysrKysrKysrKysrKwog c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jICAgICAgICAgfCAxNjQgKysrKysr KysrKysrKysrKysrKysrKwogc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggICAg ICAgICAgfCAgIDcgKwogc3JjL3Rlc3QvYXV0aGVudGljYXRpb24vdC8wMDFfcGFzc3dvcmQu cGwgfCAxNDkgKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L2tlcmJlcm9zL3QvMDAx X2F1dGgucGwgICAgICAgICAgIHwgIDI2ICsrKysKIHNyYy90ZXN0L2xkYXAvdC8wMDFfYXV0 aC5wbCAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy90ZXN0L3NzbC90LzAwMl9zY3JhbS5w bCAgICAgICAgICAgICAgIHwgIDI1ICsrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDYyMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgYi9kb2Mv c3JjL3NnbWwvbGlicHEuc2dtbAppbmRleCAzYzliZDNkNjczLi4wNWQ5NjQ1ZjQwIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbGli cHEuc2dtbApAQCAtMTIyMCw2ICsxMjIwLDEwMSBAQCBwb3N0Z3Jlc3FsOi8vJTJGdmFyJTJG bGliJTJGcG9zdGdyZXNxbC9kYm5hbWUKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFy bGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLWNvbm5lY3QtcmVx dWlyZS1hdXRoIiB4cmVmbGFiZWw9InJlcXVpcmVfYXV0aCI+CisgICAgICA8dGVybT48bGl0 ZXJhbD5yZXF1aXJlX2F1dGg8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgor ICAgICAgPHBhcmE+CisgICAgICAgIFNwZWNpZmllcyB0aGUgYXV0aGVudGljYXRpb24gbWV0 aG9kIHRoYXQgdGhlIGNsaWVudCByZXF1aXJlcyBmcm9tIHRoZQorICAgICAgICBzZXJ2ZXIu IElmIHRoZSBzZXJ2ZXIgZG9lcyBub3QgdXNlIHRoZSByZXF1aXJlZCBtZXRob2QgdG8gYXV0 aGVudGljYXRlCisgICAgICAgIHRoZSBjbGllbnQsIG9yIGlmIHRoZSBhdXRoZW50aWNhdGlv biBoYW5kc2hha2UgaXMgbm90IGZ1bGx5IGNvbXBsZXRlZCBieQorICAgICAgICB0aGUgc2Vy dmVyLCB0aGUgY29ubmVjdGlvbiB3aWxsIGZhaWwuIEEgY29tbWEtc2VwYXJhdGVkIGxpc3Qg b2YgbWV0aG9kcworICAgICAgICBtYXkgYWxzbyBiZSBwcm92aWRlZCwgb2Ygd2hpY2ggdGhl IHNlcnZlciBtdXN0IHVzZSBleGFjdGx5IG9uZSBpbiBvcmRlcgorICAgICAgICBmb3IgdGhl IGNvbm5lY3Rpb24gdG8gc3VjY2VlZC4gQnkgZGVmYXVsdCwgYW55IGF1dGhlbnRpY2F0aW9u IG1ldGhvZCBpcworICAgICAgICBhY2NlcHRlZCwgYW5kIHRoZSBzZXJ2ZXIgaXMgZnJlZSB0 byBza2lwIGF1dGhlbnRpY2F0aW9uIGFsdG9nZXRoZXIuCisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgTWV0aG9kcyBtYXkgYmUgbmVnYXRlZCB3aXRoIHRoZSBhZGRp dGlvbiBvZiBhIDxsaXRlcmFsPiE8L2xpdGVyYWw+CisgICAgICAgIHByZWZpeCwgaW4gd2hp Y2ggY2FzZSB0aGUgc2VydmVyIG11c3QgPGVtcGhhc2lzPm5vdDwvZW1waGFzaXM+IGF0dGVt cHQKKyAgICAgICAgdGhlIGxpc3RlZCBtZXRob2Q7IGFueSBvdGhlciBtZXRob2QgaXMgYWNj ZXB0ZWQsIGFuZCB0aGUgc2VydmVyIGlzIGZyZWUKKyAgICAgICAgbm90IHRvIGF1dGhlbnRp Y2F0ZSB0aGUgY2xpZW50IGF0IGFsbC4gSWYgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBpcwor ICAgICAgICBwcm92aWRlZCwgdGhlIHNlcnZlciBtYXkgbm90IGF0dGVtcHQgPGVtcGhhc2lz PmFueTwvZW1waGFzaXM+IG9mIHRoZQorICAgICAgICBsaXN0ZWQgbmVnYXRlZCBtZXRob2Rz LiBOZWdhdGVkIGFuZCBub24tbmVnYXRlZCBmb3JtcyBtYXkgbm90IGJlCisgICAgICAgIGNv bWJpbmVkIGluIHRoZSBzYW1lIHNldHRpbmcuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgQXMgYSBmaW5hbCBzcGVjaWFsIGNhc2UsIHRoZSA8bGl0ZXJhbD5ub25l PC9saXRlcmFsPiBtZXRob2QgcmVxdWlyZXMgdGhlCisgICAgICAgIHNlcnZlciBub3QgdG8g dXNlIGFuIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZS4gKEl0IG1heSBhbHNvIGJlIG5lZ2F0 ZWQsCisgICAgICAgIHRvIHJlcXVpcmUgc29tZSBmb3JtIG9mIGF1dGhlbnRpY2F0aW9uLikK KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgZm9sbG93aW5nIG1l dGhvZHMgbWF5IGJlIHNwZWNpZmllZDoKKworICAgICAgICA8dmFyaWFibGVsaXN0PgorICAg ICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD5wYXNzd29y ZDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8 cGFyYT4KKyAgICAgICAgICAgIFRoZSBzZXJ2ZXIgbXVzdCByZXF1ZXN0IHBsYWludGV4dCBw YXNzd29yZCBhdXRoZW50aWNhdGlvbi4KKyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD5tZDU8L2xpdGVyYWw+PC90 ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgICBUaGUgc2VydmVyIG11c3QgcmVxdWVzdCBNRDUgaGFzaGVkIHBhc3N3b3JkIGF1dGhl bnRpY2F0aW9uLgorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4K KyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5Pgor ICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmdzczwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAg ICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSBzZXJ2 ZXIgbXVzdCBlaXRoZXIgcmVxdWVzdCBhIEtlcmJlcm9zIGhhbmRzaGFrZSB2aWEKKyAgICAg ICAgICAgIDxhY3JvbnltPkdTU0FQSTwvYWNyb255bT4gb3IgZXN0YWJsaXNoIGEKKyAgICAg ICAgICAgIDxhY3JvbnltPkdTUzwvYWNyb255bT4tZW5jcnlwdGVkIGNoYW5uZWwgKHNlZSBh bHNvCisgICAgICAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LWdzc2VuY21v ZGUiIC8+KS4KKyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgICAgICA8dGVybT48bGl0ZXJhbD5zc3BpPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIHNlcnZl ciBtdXN0IHJlcXVlc3QgV2luZG93cyA8YWNyb255bT5TU1BJPC9hY3JvbnltPgorICAgICAg ICAgICAgYXV0aGVudGljYXRpb24uCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8 L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+c2NyYW0tc2hhLTI1NjwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4K KyAgICAgICAgICAgIFRoZSBzZXJ2ZXIgbXVzdCBzdWNjZXNzZnVsbHkgY29tcGxldGUgYSBT Q1JBTS1TSEEtMjU2IGF1dGhlbnRpY2F0aW9uCisgICAgICAgICAgICBleGNoYW5nZSB3aXRo IHRoZSBjbGllbnQuCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD48L3Rlcm0+CisgICAg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSBz ZXJ2ZXIgbXVzdCBub3QgcHJvbXB0IHRoZSBjbGllbnQgZm9yIGFuIGF1dGhlbnRpY2F0aW9u CisgICAgICAgICAgICBleGNoYW5nZS4gKFRoaXMgZG9lcyBub3QgcHJvaGliaXQgY2xpZW50 IGNlcnRpZmljYXRlIGF1dGhlbnRpY2F0aW9uCisgICAgICAgICAgICB2aWEgVExTLCBub3Ig R1NTIGF1dGhlbnRpY2F0aW9uIHZpYSBpdHMgZW5jcnlwdGVkIHRyYW5zcG9ydC4pCisgICAg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgICAgPC9wYXJhPgorICAg ICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3Rl bnRyeSBpZD0ibGlicHEtY29ubmVjdC1jaGFubmVsLWJpbmRpbmciIHhyZWZsYWJlbD0iY2hh bm5lbF9iaW5kaW5nIj4KICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNoYW5uZWxfYmluZGluZzwv bGl0ZXJhbD48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CkBAIC03NzczLDYgKzc4NjgsMTYg QEAgbXlFdmVudFByb2MoUEdFdmVudElkIGV2dElkLCB2b2lkICpldnRJbmZvLCB2b2lkICpw YXNzVGhyb3VnaCkKICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAKKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFy eT48ZW52YXI+UEdSRVFVSVJFQVVUSDwvZW52YXI+PC9wcmltYXJ5PgorICAgICAgPC9pbmRl eHRlcm0+CisgICAgICA8ZW52YXI+UEdSRVFVSVJFQVVUSDwvZW52YXI+IGJlaGF2ZXMgdGhl IHNhbWUgYXMgdGhlIDx4cmVmCisgICAgICBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LXJlcXVp cmUtYXV0aCIvPiBjb25uZWN0aW9uIHBhcmFtZXRlci4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisKICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgPGluZGV4 dGVybT4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBxL3BxY29tbS5oIGIvc3JjL2lu Y2x1ZGUvbGlicHEvcHFjb21tLmgKaW5kZXggZmNmNjhkZjM5Yi4uOTEyNDUxYzkxMyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGlicHEvcHFjb21tLmgKKysrIGIvc3JjL2luY2x1ZGUv bGlicHEvcHFjb21tLmgKQEAgLTEyMyw2ICsxMjMsNyBAQCBleHRlcm4gUEdETExJTVBPUlQg Ym9vbCBEYl91c2VyX25hbWVzcGFjZTsKICNkZWZpbmUgQVVUSF9SRVFfU0FTTAkgICAxMAkv KiBCZWdpbiBTQVNMIGF1dGhlbnRpY2F0aW9uICovCiAjZGVmaW5lIEFVVEhfUkVRX1NBU0xf Q09OVCAxMQkvKiBDb250aW51ZSBTQVNMIGF1dGhlbnRpY2F0aW9uICovCiAjZGVmaW5lIEFV VEhfUkVRX1NBU0xfRklOICAxMgkvKiBGaW5hbCBTQVNMIG1lc3NhZ2UgKi8KKyNkZWZpbmUg QVVUSF9SRVFfTUFYCSAgIEFVVEhfUkVRX1NBU0xfRklOCS8qIG1heGltdW0gQVVUSF9SRVFf KiB2YWx1ZSAqLwogCiB0eXBlZGVmIHVpbnQzMiBBdXRoUmVxdWVzdDsKIApkaWZmIC0tZ2l0 IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1zY3JhbS5jIGIvc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtYXV0aC1zY3JhbS5jCmluZGV4IDM1Y2ZkOTk4N2QuLmFkNTdkZjg4YjYg MTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgtc2NyYW0uYworKysg Yi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLXNjcmFtLmMKQEAgLTI4MCw2ICsyODAs NyBAQCBzY3JhbV9leGNoYW5nZSh2b2lkICpvcGFxLCBjaGFyICppbnB1dCwgaW50IGlucHV0 bGVuLAogCQkJfQogCQkJKmRvbmUgPSB0cnVlOwogCQkJc3RhdGUtPnN0YXRlID0gRkVfU0NS QU1fRklOSVNIRUQ7CisJCQlzdGF0ZS0+Y29ubi0+Y2xpZW50X2ZpbmlzaGVkX2F1dGggPSB0 cnVlOwogCQkJYnJlYWs7CiAKIAkJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWF1dGguYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGguYwpp bmRleCA0OWExYzYyNmY2Li41YTQ2Y2YwZWU5IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1hdXRoLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC5j CkBAIC0xMzcsNyArMTM3LDEwIEBAIHBnX0dTU19jb250aW51ZShQR2Nvbm4gKmNvbm4sIGlu dCBwYXlsb2FkbGVuKQogCX0KIAogCWlmIChtYWpfc3RhdCA9PSBHU1NfU19DT01QTEVURSkK Kwl7CisJCWNvbm4tPmNsaWVudF9maW5pc2hlZF9hdXRoID0gdHJ1ZTsKIAkJZ3NzX3JlbGVh c2VfbmFtZSgmbG1pbl9zLCAmY29ubi0+Z3RhcmdfbmFtKTsKKwl9CiAKIAlyZXR1cm4gU1RB VFVTX09LOwogfQpAQCAtMzI2LDYgKzMyOSw5IEBAIHBnX1NTUElfY29udGludWUoUEdjb25u ICpjb25uLCBpbnQgcGF5bG9hZGxlbikKIAkJRnJlZUNvbnRleHRCdWZmZXIob3V0YnVmLnBC dWZmZXJzWzBdLnB2QnVmZmVyKTsKIAl9CiAKKwlpZiAociA9PSBTRUNfRV9PSykKKwkJY29u bi0+Y2xpZW50X2ZpbmlzaGVkX2F1dGggPSB0cnVlOworCiAJLyogQ2xlYW51cCBpcyBoYW5k bGVkIGJ5IHRoZSBjb2RlIGluIGZyZWVQR2Nvbm4oKSAqLwogCXJldHVybiBTVEFUVVNfT0s7 CiB9CkBAIC04MzAsNiArODM2LDQ0IEBAIHBnX3Bhc3N3b3JkX3NlbmRhdXRoKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqcGFzc3dvcmQsIEF1dGhSZXF1ZXN0IGFyZXEpCiAJcmV0dXJu IHJldDsKIH0KIAorLyoKKyAqIFRyYW5zbGF0ZSBhIGRpc2FsbG93ZWQgQXV0aFJlcXVlc3Qg Y29kZSBpbnRvIGFuIGVycm9yIG1lc3NhZ2UuCisgKi8KK3N0YXRpYyBjb25zdCBjaGFyICoK K2F1dGhfZGVzY3JpcHRpb24oQXV0aFJlcXVlc3QgYXJlcSkKK3sKKwlzd2l0Y2ggKGFyZXEp CisJeworCQljYXNlIEFVVEhfUkVRX1BBU1NXT1JEOgorCQkJcmV0dXJuIGxpYnBxX2dldHRl eHQoInNlcnZlciByZXF1ZXN0ZWQgYSBjbGVhcnRleHQgcGFzc3dvcmQiKTsKKwkJY2FzZSBB VVRIX1JFUV9NRDU6CisJCQlyZXR1cm4gbGlicHFfZ2V0dGV4dCgic2VydmVyIHJlcXVlc3Rl ZCBhIGhhc2hlZCBwYXNzd29yZCIpOworCQljYXNlIEFVVEhfUkVRX0dTUzoKKwkJY2FzZSBB VVRIX1JFUV9HU1NfQ09OVDoKKwkJCXJldHVybiBsaWJwcV9nZXR0ZXh0KCJzZXJ2ZXIgcmVx dWVzdGVkIEdTU0FQSSBhdXRoZW50aWNhdGlvbiIpOworCQljYXNlIEFVVEhfUkVRX1NTUEk6 CisJCQlyZXR1cm4gbGlicHFfZ2V0dGV4dCgic2VydmVyIHJlcXVlc3RlZCBTU1BJIGF1dGhl bnRpY2F0aW9uIik7CisJCWNhc2UgQVVUSF9SRVFfU0NNX0NSRURTOgorCQkJcmV0dXJuIGxp YnBxX2dldHRleHQoInNlcnZlciByZXF1ZXN0ZWQgVU5JWCBzb2NrZXQgY3JlZGVudGlhbHMi KTsKKwkJY2FzZSBBVVRIX1JFUV9TQVNMOgorCQljYXNlIEFVVEhfUkVRX1NBU0xfQ09OVDoK KwkJY2FzZSBBVVRIX1JFUV9TQVNMX0ZJTjoKKwkJCXJldHVybiBsaWJwcV9nZXR0ZXh0KCJz ZXJ2ZXIgcmVxdWVzdGVkIFNBU0wgYXV0aGVudGljYXRpb24iKTsKKwl9CisKKwlyZXR1cm4g bGlicHFfZ2V0dGV4dCgic2VydmVyIHJlcXVlc3RlZCBhbiB1bmtub3duIGF1dGhlbnRpY2F0 aW9uIHR5cGUiKTsKK30KKworLyoKKyAqIENvbnZlbmllbmNlIG1hY3JvIGZvciBjaGVja2lu ZyB0aGUgYWxsb3dlZF9hdXRoX21ldGhvZHMgYml0bWFzay4gQ2FsbGVyIG11c3QKKyAqIGVu c3VyZSB0aGF0IHR5cGUgaXMgbm90IGdyZWF0ZXIgdGhhbiAzMSAoaGlnaCBiaXQgb2YgdGhl IGJpdG1hc2spLgorICovCisjZGVmaW5lIGF1dGhfYWxsb3dlZChjb25uLCB0eXBlKSBcCisJ KCgoY29ubiktPmFsbG93ZWRfYXV0aF9tZXRob2RzICYgKDEgPDwgKHR5cGUpKSkgIT0gMCkK KworU3RhdGljQXNzZXJ0RGVjbChBVVRIX1JFUV9NQVggPCBDSEFSX0JJVCAqIHNpemVvZigo KFBHY29ubil7MH0pLmFsbG93ZWRfYXV0aF9tZXRob2RzKSwKKwkJCQkgIkFVVEhfUkVRX01B WCBvdmVyZmxvd3MgdGhlIGFsbG93ZWRfYXV0aF9tZXRob2RzIGJpdG1hc2siKTsKKwogLyoK ICAqIFZlcmlmeSB0aGF0IHRoZSBhdXRoZW50aWNhdGlvbiByZXF1ZXN0IGlzIGV4cGVjdGVk LCBnaXZlbiB0aGUgY29ubmVjdGlvbgogICogcGFyYW1ldGVycy4gVGhpcyBpcyBlc3BlY2lh bGx5IGltcG9ydGFudCB3aGVuIHRoZSBjbGllbnQgd2lzaGVzIHRvCkBAIC04MzksNiArODgz LDk1IEBAIHN0YXRpYyBib29sCiBjaGVja19leHBlY3RlZF9hcmVxKEF1dGhSZXF1ZXN0IGFy ZXEsIFBHY29ubiAqY29ubikKIHsKIAlib29sCQlyZXN1bHQgPSB0cnVlOworCWNvbnN0IGNo YXIgKnJlYXNvbiA9IE5VTEw7CisKKwkvKgorCSAqIElmIHRoZSB1c2VyIHJlcXVpcmVkIGEg c3BlY2lmaWMgYXV0aCBtZXRob2QsIG9yIHNwZWNpZmllZCBhbiBhbGxvd2VkIHNldCwKKwkg KiB0aGVuIHJlamVjdCBhbGwgb3RoZXJzIGhlcmUsIGFuZCBtYWtlIHN1cmUgdGhlIHNlcnZl ciBhY3R1YWxseSBjb21wbGV0ZXMKKwkgKiBhbiBhdXRoZW50aWNhdGlvbiBleGNoYW5nZS4K KwkgKi8KKwlpZiAoY29ubi0+cmVxdWlyZV9hdXRoKQorCXsKKwkJc3dpdGNoIChhcmVxKQor CQl7CisJCQljYXNlIEFVVEhfUkVRX09LOgorCQkJCS8qCisJCQkJICogQ2hlY2sgdG8gbWFr ZSBzdXJlIHdlJ3ZlIGFjdHVhbGx5IGZpbmlzaGVkIG91ciBleGNoYW5nZSAob3IKKwkJCQkg KiBlbHNlIHRoYXQgdGhlIHVzZXIgaGFzIGFsbG93ZWQgYW4gYXV0aGVudGljYXRpb24tbGVz cworCQkJCSAqIGNvbm5lY3Rpb24pLgorCQkJCSAqCisJCQkJICogSWYgdGhlIHVzZXIgaGFz IGFsbG93ZWQgYm90aCBTQ1JBTSBhbmQgdW5hdXRoZW50aWNhdGVkCisJCQkJICogKHRydXN0 KSBjb25uZWN0aW9ucywgdGhlbiB0aGlzIGNoZWNrIHdpbGwgc2lsZW50bHkgYWNjZXB0CisJ CQkJICogcGFydGlhbCBTQ1JBTSBleGNoYW5nZXMsIHdoZXJlIGEgbWlzYmVoYXZpbmcgc2Vy dmVyIGRvZXMgbm90CisJCQkJICogcHJvdmlkZSBpdHMgdmVyaWZpZXIgYmVmb3JlIHNlbmRp bmcgYW4gT0suIFRoaXMgaXMgY29uc2lzdGVudAorCQkJCSAqIHdpdGggaGlzdG9yaWNhbCBi ZWhhdmlvciwgYnV0IGl0IG1heSBiZSBhIHBvaW50IHRvIHJldmlzaXQgaW4KKwkJCQkgKiB0 aGUgZnV0dXJlLCBzaW5jZSBpdCBjb3VsZCBhbGxvdyBhIHNlcnZlciB0aGF0IGRvZXNuJ3Qg a25vdworCQkJCSAqIHRoZSB1c2VyJ3MgcGFzc3dvcmQgdG8gc2lsZW50bHkgaGFydmVzdCBt YXRlcmlhbCBmb3IgYSBicnV0ZQorCQkJCSAqIGZvcmNlIGF0dGFjay4KKwkJCQkgKi8KKwkJ CQlpZiAoIWNvbm4tPmF1dGhfcmVxdWlyZWQgfHwgY29ubi0+Y2xpZW50X2ZpbmlzaGVkX2F1 dGgpCisJCQkJCWJyZWFrOworCisJCQkJLyoKKwkJCQkgKiBObyBleHBsaWNpdCBhdXRoZW50 aWNhdGlvbiByZXF1ZXN0IHdhcyBtYWRlIGJ5IHRoZSBzZXJ2ZXIgLS0KKwkJCQkgKiBvciBw ZXJoYXBzIGl0IHdhcyBtYWRlIGFuZCBub3QgY29tcGxldGVkLCBpbiB0aGUgY2FzZSBvZgor CQkJCSAqIFNDUkFNIC0tIGJ1dCB0aGVyZSBpcyBvbmUgc3BlY2lhbCBjYXNlIHRvIGNoZWNr LiBJZiB0aGUgdXNlcgorCQkJCSAqIGFsbG93ZWQgImdzcyIsIHRoZW4gYSBHU1MtZW5jcnlw dGVkIGNoYW5uZWwgYWxzbyBzYXRpc2ZpZXMKKwkJCQkgKiB0aGUgY2hlY2suCisJCQkJICov CisjaWZkZWYgRU5BQkxFX0dTUworCQkJCWlmIChhdXRoX2FsbG93ZWQoY29ubiwgQVVUSF9S RVFfR1NTKSAmJiBjb25uLT5nc3NlbmMpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBJZiBp bXBsaWNpdCBHU1MgYXV0aCBoYXMgYWxyZWFkeSBiZWVuIHBlcmZvcm1lZCB2aWEgR1NTCisJ CQkJCSAqIGVuY3J5cHRpb24sIHdlIGRvbid0IG5lZWQgdG8gaGF2ZSBwZXJmb3JtZWQgYW4K KwkJCQkJICogQVVUSF9SRVFfR1NTIGV4Y2hhbmdlLiBUaGlzIGFsbG93cyByZXF1aXJlX2F1 dGg9Z3NzIHRvIGJlCisJCQkJCSAqIGNvbWJpbmVkIHdpdGggZ3NzZW5jbW9kZSwgc2luY2Ug dGhlcmUgd29uJ3QgYmUgYW4KKwkJCQkJICogZXhwbGljaXQgYXV0aGVudGljYXRpb24gcmVx dWVzdCBpbiB0aGF0IGNhc2UuCisJCQkJCSAqLworCQkJCX0KKwkJCQllbHNlCisjZW5kaWYK KwkJCQl7CisJCQkJCXJlYXNvbiA9IGxpYnBxX2dldHRleHQoInNlcnZlciBkaWQgbm90IGNv bXBsZXRlIGF1dGhlbnRpY2F0aW9uIiksCisJCQkJCXJlc3VsdCA9IGZhbHNlOworCQkJCX0K KworCQkJCWJyZWFrOworCisJCQljYXNlIEFVVEhfUkVRX1BBU1NXT1JEOgorCQkJY2FzZSBB VVRIX1JFUV9NRDU6CisJCQljYXNlIEFVVEhfUkVRX0dTUzoKKwkJCWNhc2UgQVVUSF9SRVFf U1NQSToKKwkJCWNhc2UgQVVUSF9SRVFfR1NTX0NPTlQ6CisJCQljYXNlIEFVVEhfUkVRX1NB U0w6CisJCQljYXNlIEFVVEhfUkVRX1NBU0xfQ09OVDoKKwkJCWNhc2UgQVVUSF9SRVFfU0FT TF9GSU46CisJCQkJLyoKKwkJCQkgKiBXZSBkb24ndCBoYW5kbGUgdGhlc2Ugd2l0aCB0aGUg ZGVmYXVsdCBjYXNlLCB0byBhdm9pZAorCQkJCSAqIGJpdC1zaGlmdGluZyBwYXN0IHRoZSBl bmQgb2YgdGhlIGFsbG93ZWRfYXV0aF9tZXRob2RzIG1hc2sgaWYKKwkJCQkgKiB0aGUgc2Vy dmVyIHNlbmRzIGFuIHVuZXhwZWN0ZWQgQXV0aFJlcXVlc3QuCisJCQkJICovCisJCQkJcmVz dWx0ID0gYXV0aF9hbGxvd2VkKGNvbm4sIGFyZXEpOworCQkJCWJyZWFrOworCisJCQlkZWZh dWx0OgorCQkJCXJlc3VsdCA9IGZhbHNlOworCQkJCWJyZWFrOworCQl9CisJfQorCisJaWYg KCFyZXN1bHQpCisJeworCQlpZiAoIXJlYXNvbikKKwkJCXJlYXNvbiA9IGF1dGhfZGVzY3Jp cHRpb24oYXJlcSk7CisKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2Fn ZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiYXV0aCBtZXRob2QgXCIlc1wiIHJlcXVpcmVt ZW50IGZhaWxlZDogJXNcbiIpLAorCQkJCQkJICBjb25uLT5yZXF1aXJlX2F1dGgsIHJlYXNv bik7CisKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CiAKIAkvKgogCSAqIFdoZW4gY2hhbm5lbF9i aW5kaW5nPXJlcXVpcmUsIHdlIG11c3QgcHJvdGVjdCBhZ2FpbnN0IHR3byBjYXNlczogKDEp IHdlCkBAIC0xMDQwLDYgKzExNzMsOSBAQCBwZ19mZV9zZW5kYXV0aChBdXRoUmVxdWVzdCBh cmVxLCBpbnQgcGF5bG9hZGxlbiwgUEdjb25uICpjb25uKQogCQkJCQkJCQkJCSAiZmVfc2Vu ZGF1dGg6IGVycm9yIHNlbmRpbmcgcGFzc3dvcmQgYXV0aGVudGljYXRpb25cbiIpOwogCQkJ CQlyZXR1cm4gU1RBVFVTX0VSUk9SOwogCQkJCX0KKworCQkJCS8qIFdlIGV4cGVjdCBubyBm dXJ0aGVyIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3RzLiAqLworCQkJCWNvbm4tPmNsaWVudF9m aW5pc2hlZF9hdXRoID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KIApkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtY29ubmVjdC5jCmluZGV4IDc0NmU5YjRmMWUuLjQwZjU3MWZhZGIgMTAwNjQ0Ci0t LSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYworKysgYi9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1jb25uZWN0LmMKQEAgLTMwNyw2ICszMDcsMTAgQEAgc3RhdGljIGNv bnN0IGludGVybmFsUFFjb25uaW5mb09wdGlvbiBQUWNvbm5pbmZvT3B0aW9uc1tdID0gewog CQkiUmVxdWlyZS1QZWVyIiwgIiIsIDEwLAogCW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCBy ZXF1aXJlcGVlcil9LAogCisJeyJyZXF1aXJlX2F1dGgiLCAiUEdSRVFVSVJFQVVUSCIsIE5V TEwsIE5VTEwsCisJCSJSZXF1aXJlLUF1dGgiLCAiIiwgMTQsIC8qIHNpemVvZigic2NyYW0t c2hhLTI1NiIpID09IDE0ICovCisJb2Zmc2V0b2Yoc3RydWN0IHBnX2Nvbm4sIHJlcXVpcmVf YXV0aCl9LAorCiAJeyJzc2xfbWluX3Byb3RvY29sX3ZlcnNpb24iLCAiUEdTU0xNSU5QUk9U T0NPTFZFUlNJT04iLCAiVExTdjEuMiIsIE5VTEwsCiAJCSJTU0wtTWluaW11bS1Qcm90b2Nv bC1WZXJzaW9uIiwgIiIsIDgsCS8qIHNpemVvZigiVExTdjEueCIpID09IDggKi8KIAlvZmZz ZXRvZihzdHJ1Y3QgcGdfY29ubiwgc3NsX21pbl9wcm90b2NvbF92ZXJzaW9uKX0sCkBAIC0x MjQwLDYgKzEyNDQsMTY2IEBAIGNvbm5lY3RPcHRpb25zMihQR2Nvbm4gKmNvbm4pCiAJCX0K IAl9CiAKKwkvKgorCSAqIHBhcnNlIGFuZCB2YWxpZGF0ZSByZXF1aXJlX2F1dGggb3B0aW9u CisJICovCisJaWYgKGNvbm4tPnJlcXVpcmVfYXV0aCkKKwl7CisJCWNoYXIJICAgKnMgPSBj b25uLT5yZXF1aXJlX2F1dGg7CisJCWJvb2wJCWZpcnN0LCBtb3JlOworCQlib29sCQluZWdh dGVkID0gZmFsc2U7CisKKwkJLyoKKwkJICogQnkgZGVmYXVsdCwgc3RhcnQgZnJvbSBhbiBl bXB0eSBzZXQgb2YgYWxsb3dlZCBvcHRpb25zIGFuZCBhZGQgdG8gaXQuCisJCSAqLworCQlj b25uLT5hdXRoX3JlcXVpcmVkID0gdHJ1ZTsKKwkJY29ubi0+YWxsb3dlZF9hdXRoX21ldGhv ZHMgPSAwOworCisJCWZvciAoZmlyc3QgPSB0cnVlLCBtb3JlID0gdHJ1ZTsgbW9yZTsgZmly c3QgPSBmYWxzZSkKKwkJeworCQkJY2hhcgkgICAqbWV0aG9kLCAqcGFydDsKKwkJCXVpbnQz MgkJYml0czsKKworCQkJcGFydCA9IHBhcnNlX2NvbW1hX3NlcGFyYXRlZF9saXN0KCZzLCAm bW9yZSk7CisJCQlpZiAocGFydCA9PSBOVUxMKQorCQkJCWdvdG8gb29tX2Vycm9yOworCisJ CQkvKgorCQkJICogQ2hlY2sgZm9yIG5lZ2F0aW9uLCBlLmcuICchcGFzc3dvcmQnLiBJZiBv bmUgZWxlbWVudCBpcyBuZWdhdGVkLAorCQkJICogdGhleSBhbGwgaGF2ZSB0byBiZS4KKwkJ CSAqLworCQkJbWV0aG9kID0gcGFydDsKKwkJCWlmICgqbWV0aG9kID09ICchJykKKwkJCXsK KwkJCQlpZiAoZmlyc3QpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBTd2l0Y2ggdG8gYSBw ZXJtaXNzaXZlIHNldCBvZiBhbGxvd2VkIG9wdGlvbnMsIGFuZAorCQkJCQkgKiBzdWJ0cmFj dCBmcm9tIGl0LgorCQkJCQkgKi8KKwkJCQkJY29ubi0+YXV0aF9yZXF1aXJlZCA9IGZhbHNl OworCQkJCQljb25uLT5hbGxvd2VkX2F1dGhfbWV0aG9kcyA9IC0xOworCQkJCX0KKwkJCQll bHNlIGlmICghbmVnYXRlZCkKKwkJCQl7CisJCQkJCWNvbm4tPnN0YXR1cyA9IENPTk5FQ1RJ T05fQkFEOworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAor CQkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJuZWdhdGl2ZSByZXF1aXJlX2F1dGggbWV0aG9k IFwiJXNcIiBjYW5ub3QgYmUgbWl4ZWQgd2l0aCBub24tbmVnYXRpdmUgbWV0aG9kcyIpLAor CQkJCQkJCQkJICBtZXRob2QpOworCisJCQkJCWZyZWUocGFydCk7CisJCQkJCXJldHVybiBm YWxzZTsKKwkJCQl9CisKKwkJCQluZWdhdGVkID0gdHJ1ZTsKKwkJCQltZXRob2QrKzsKKwkJ CX0KKwkJCWVsc2UgaWYgKG5lZ2F0ZWQpCisJCQl7CisJCQkJY29ubi0+c3RhdHVzID0gQ09O TkVDVElPTl9CQUQ7CisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2Fn ZSwKKwkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJyZXF1aXJlX2F1dGggbWV0aG9kIFwiJXNc IiBjYW5ub3QgYmUgbWl4ZWQgd2l0aCBuZWdhdGl2ZSBtZXRob2RzIiksCisJCQkJCQkJCSAg bWV0aG9kKTsKKworCQkJCWZyZWUocGFydCk7CisJCQkJcmV0dXJuIGZhbHNlOworCQkJfQor CisJCQlpZiAoc3RyY21wKG1ldGhvZCwgInBhc3N3b3JkIikgPT0gMCkKKwkJCXsKKwkJCQli aXRzID0gKDEgPDwgQVVUSF9SRVFfUEFTU1dPUkQpOworCQkJfQorCQkJZWxzZSBpZiAoc3Ry Y21wKG1ldGhvZCwgIm1kNSIpID09IDApCisJCQl7CisJCQkJYml0cyA9ICgxIDw8IEFVVEhf UkVRX01ENSk7CisJCQl9CisJCQllbHNlIGlmIChzdHJjbXAobWV0aG9kLCAiZ3NzIikgPT0g MCkKKwkJCXsKKwkJCQliaXRzID0gKDEgPDwgQVVUSF9SRVFfR1NTKTsKKwkJCQliaXRzIHw9 ICgxIDw8IEFVVEhfUkVRX0dTU19DT05UKTsKKwkJCX0KKwkJCWVsc2UgaWYgKHN0cmNtcCht ZXRob2QsICJzc3BpIikgPT0gMCkKKwkJCXsKKwkJCQliaXRzID0gKDEgPDwgQVVUSF9SRVFf U1NQSSk7CisJCQkJYml0cyB8PSAoMSA8PCBBVVRIX1JFUV9HU1NfQ09OVCk7CisJCQl9CisJ CQllbHNlIGlmIChzdHJjbXAobWV0aG9kLCAic2NyYW0tc2hhLTI1NiIpID09IDApCisJCQl7 CisJCQkJLyogVGhpcyBjdXJyZW50bHkgYXNzdW1lcyB0aGF0IFNDUkFNIGlzIHRoZSBvbmx5 IFNBU0wgbWV0aG9kLiAqLworCQkJCWJpdHMgPSAoMSA8PCBBVVRIX1JFUV9TQVNMKTsKKwkJ CQliaXRzIHw9ICgxIDw8IEFVVEhfUkVRX1NBU0xfQ09OVCk7CisJCQkJYml0cyB8PSAoMSA8 PCBBVVRIX1JFUV9TQVNMX0ZJTik7CisJCQl9CisJCQllbHNlIGlmIChzdHJjbXAobWV0aG9k LCAibm9uZSIpID09IDApCisJCQl7CisJCQkJLyoKKwkJCQkgKiBTcGVjaWFsIGNhc2U6IGxl dCB0aGUgdXNlciBleHBsaWNpdGx5IGFsbG93IChvciBkaXNhbGxvdykKKwkJCQkgKiBjb25u ZWN0aW9ucyB3aGVyZSB0aGUgc2VydmVyIGRvZXMgbm90IHNlbmQgYW4gZXhwbGljaXQKKwkJ CQkgKiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UsIHN1Y2ggYXMgInRydXN0IiBhbmQgImNl cnQiIGF1dGguCisJCQkJICovCisJCQkJaWYgKG5lZ2F0ZWQpIC8qICIhbm9uZSIgKi8KKwkJ CQl7CisJCQkJCWlmIChjb25uLT5hdXRoX3JlcXVpcmVkKQorCQkJCQkJZ290byBkdXBsaWNh dGU7CisKKwkJCQkJY29ubi0+YXV0aF9yZXF1aXJlZCA9IHRydWU7CisJCQkJfQorCQkJCWVs c2UgLyogIm5vbmUiICovCisJCQkJeworCQkJCQlpZiAoIWNvbm4tPmF1dGhfcmVxdWlyZWQp CisJCQkJCQlnb3RvIGR1cGxpY2F0ZTsKKworCQkJCQljb25uLT5hdXRoX3JlcXVpcmVkID0g ZmFsc2U7CisJCQkJfQorCisJCQkJZnJlZShwYXJ0KTsKKwkJCQljb250aW51ZTsgLyogYXZv aWQgdGhlIGJpdG1hc2sgbWFuaXB1bGF0aW9uIGJlbG93ICovCisJCQl9CisJCQllbHNlCisJ CQl7CisJCQkJY29ubi0+c3RhdHVzID0gQ09OTkVDVElPTl9CQUQ7CisJCQkJYXBwZW5kUFFF eHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0 KCJpbnZhbGlkIHJlcXVpcmVfYXV0aCBtZXRob2Q6IFwiJXNcIiIpLAorCQkJCQkJCQkgIG1l dGhvZCk7CisKKwkJCQlmcmVlKHBhcnQpOworCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKwor CQkJLyogVXBkYXRlIHRoZSBiaXRtYXNrLiAqLworCQkJaWYgKG5lZ2F0ZWQpCisJCQl7CisJ CQkJaWYgKChjb25uLT5hbGxvd2VkX2F1dGhfbWV0aG9kcyAmIGJpdHMpID09IDApCisJCQkJ CWdvdG8gZHVwbGljYXRlOworCisJCQkJY29ubi0+YWxsb3dlZF9hdXRoX21ldGhvZHMgJj0g fmJpdHM7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJaWYgKChjb25uLT5hbGxvd2VkX2F1 dGhfbWV0aG9kcyAmIGJpdHMpID09IGJpdHMpCisJCQkJCWdvdG8gZHVwbGljYXRlOworCisJ CQkJY29ubi0+YWxsb3dlZF9hdXRoX21ldGhvZHMgfD0gYml0czsKKwkJCX0KKworCQkJZnJl ZShwYXJ0KTsKKwkJCWNvbnRpbnVlOworCitkdXBsaWNhdGU6CisJCQkvKgorCQkJICogQSBk dXBsaWNhdGVkIG1ldGhvZCBwcm9iYWJseSBpbmRpY2F0ZXMgYSB0eXBvIGluIGEgc2V0dGlu ZyB3aGVyZQorCQkJICogdHlwb3MgYXJlIGV4dHJlbWVseSByaXNreS4KKwkJCSAqLworCQkJ Y29ubi0+c3RhdHVzID0gQ09OTkVDVElPTl9CQUQ7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigm Y29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgicmVxdWlyZV9h dXRoIG1ldGhvZCBcIiVzXCIgaXMgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlIiksCisJCQkJ CQkJICBwYXJ0KTsKKworCQkJZnJlZShwYXJ0KTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQor CX0KKwogCS8qCiAJICogdmFsaWRhdGUgY2hhbm5lbF9iaW5kaW5nIG9wdGlvbgogCSAqLwpk aWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggYi9zcmMvaW50 ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaAppbmRleCBjNzVlZDYzYTJjLi5lNGQ4OGUyMmEx IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaAorKysgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaApAQCAtMzk2LDYgKzM5Niw3IEBAIHN0 cnVjdCBwZ19jb25uCiAJY2hhcgkgICAqc3NsX21pbl9wcm90b2NvbF92ZXJzaW9uOwkvKiBt aW5pbXVtIFRMUyBwcm90b2NvbCB2ZXJzaW9uICovCiAJY2hhcgkgICAqc3NsX21heF9wcm90 b2NvbF92ZXJzaW9uOwkvKiBtYXhpbXVtIFRMUyBwcm90b2NvbCB2ZXJzaW9uICovCiAJY2hh cgkgICAqdGFyZ2V0X3Nlc3Npb25fYXR0cnM7CS8qIGRlc2lyZWQgc2Vzc2lvbiBwcm9wZXJ0 aWVzICovCisJY2hhcgkgICAqcmVxdWlyZV9hdXRoOwkvKiBuYW1lIG9mIHRoZSBleHBlY3Rl ZCBhdXRoIG1ldGhvZCAqLwogCiAJLyogT3B0aW9uYWwgZmlsZSB0byB3cml0ZSB0cmFjZSBp bmZvIHRvICovCiAJRklMRQkgICAqUGZkZWJ1ZzsKQEAgLTQ1Nyw2ICs0NTgsOSBAQCBzdHJ1 Y3QgcGdfY29ubgogCWJvb2wJCXdyaXRlX2ZhaWxlZDsJLyogaGF2ZSB3ZSBoYWQgYSB3cml0 ZSBmYWlsdXJlIG9uIHNvY2s/ICovCiAJY2hhcgkgICAqd3JpdGVfZXJyX21zZzsJLyogd3Jp dGUgZXJyb3IgbWVzc2FnZSwgb3IgTlVMTCBpZiBPT00gKi8KIAorCWJvb2wJCWF1dGhfcmVx dWlyZWQ7CS8qIHJlcXVpcmUgYW4gYXV0aGVudGljYXRpb24gY2hhbGxlbmdlIGZyb20gdGhl IHNlcnZlcj8gKi8KKwl1aW50MzIJCWFsbG93ZWRfYXV0aF9tZXRob2RzOwkvKiBiaXRtYXNr IG9mIGFjY2VwdGFibGUgQXV0aFJlcXVlc3QgY29kZXMgKi8KKwogCS8qIFRyYW5zaWVudCBz dGF0ZSBuZWVkZWQgd2hpbGUgZXN0YWJsaXNoaW5nIGNvbm5lY3Rpb24gKi8KIAlQR1Rhcmdl dFNlcnZlclR5cGUgdGFyZ2V0X3NlcnZlcl90eXBlOwkvKiBkZXNpcmVkIHNlc3Npb24gcHJv cGVydGllcyAqLwogCWJvb2wJCXRyeV9uZXh0X2FkZHI7CS8qIHRpbWUgdG8gYWR2YW5jZSB0 byBuZXh0IGFkZHJlc3MvaG9zdD8gKi8KQEAgLTUxMiw2ICs1MTYsOSBAQCBzdHJ1Y3QgcGdf Y29ubgogCWJvb2wJCWVycm9yX3Jlc3VsdDsJLyogZG8gd2UgbmVlZCB0byBtYWtlIGFuIEVS Uk9SIHJlc3VsdD8gKi8KIAlQR3Jlc3VsdCAgICpuZXh0X3Jlc3VsdDsJLyogbmV4dCByZXN1 bHQgKHVzZWQgaW4gc2luZ2xlLXJvdyBtb2RlKSAqLwogCisJYm9vbAkJY2xpZW50X2Zpbmlz aGVkX2F1dGg7IC8qIGhhdmUgd2UgZmluaXNoZWQgb3VyIGhhbGYgb2YgdGhlCisJCQkJCQkJ CQkgICAqIGF1dGhlbnRpY2F0aW9uIGV4Y2hhbmdlPyAqLworCiAJLyogQXNzb3J0ZWQgc3Rh dGUgZm9yIFNBU0wsIFNTTCwgR1NTLCBldGMgKi8KIAljb25zdCBwZ19mZV9zYXNsX21lY2gg KnNhc2w7CiAJdm9pZAkgICAqc2FzbF9zdGF0ZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2F1 dGhlbnRpY2F0aW9uL3QvMDAxX3Bhc3N3b3JkLnBsIGIvc3JjL3Rlc3QvYXV0aGVudGljYXRp b24vdC8wMDFfcGFzc3dvcmQucGwKaW5kZXggOTNkZjc3YWE0ZS4uY2E4NzMxZDM3OSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvYXV0aGVudGljYXRpb24vdC8wMDFfcGFzc3dvcmQucGwKKysr IGIvc3JjL3Rlc3QvYXV0aGVudGljYXRpb24vdC8wMDFfcGFzc3dvcmQucGwKQEAgLTEwNyw2 ICsxMDcsNzQgQEAgaXMoJHJlcywgJ3QnLAogCSJ1c2VycyB3aXRoIHRydXN0IGF1dGhlbnRp Y2F0aW9uIHVzZSBTWVNURU1fVVNFUiA9IE5VTEwgaW4gcGFyYWxsZWwgd29ya2VycyIKICk7 CiAKKyMgQWxsIHBvc2l0aXZlIHJlcXVpcmVfYXV0aCBvcHRpb25zIHNob3VsZCBmYWlsLi4u Ciskbm9kZS0+Y29ubmVjdF9mYWlscygidXNlcj1zY3JhbV9yb2xlIHJlcXVpcmVfYXV0aD1n c3MiLAorCSJHU1MgYXV0aGVudGljYXRpb24gY2FuIGJlIHJlcXVpcmVkOiBmYWlscyB3aXRo IHRydXN0IGF1dGgiLAorCWV4cGVjdGVkX3N0ZGVyciA9PiBxci9zZXJ2ZXIgZGlkIG5vdCBj b21wbGV0ZSBhdXRoZW50aWNhdGlvbi8pOworJG5vZGUtPmNvbm5lY3RfZmFpbHMoInVzZXI9 c2NyYW1fcm9sZSByZXF1aXJlX2F1dGg9c3NwaSIsCisJIlNTUEkgYXV0aGVudGljYXRpb24g Y2FuIGJlIHJlcXVpcmVkOiBmYWlscyB3aXRoIHRydXN0IGF1dGgiLAorCWV4cGVjdGVkX3N0 ZGVyciA9PiBxci9zZXJ2ZXIgZGlkIG5vdCBjb21wbGV0ZSBhdXRoZW50aWNhdGlvbi8pOwor JG5vZGUtPmNvbm5lY3RfZmFpbHMoInVzZXI9c2NyYW1fcm9sZSByZXF1aXJlX2F1dGg9cGFz c3dvcmQiLAorCSJwYXNzd29yZCBhdXRoZW50aWNhdGlvbiBjYW4gYmUgcmVxdWlyZWQ6IGZh aWxzIHdpdGggdHJ1c3QgYXV0aCIsCisJZXhwZWN0ZWRfc3RkZXJyID0+IHFyL3NlcnZlciBk aWQgbm90IGNvbXBsZXRlIGF1dGhlbnRpY2F0aW9uLyk7Ciskbm9kZS0+Y29ubmVjdF9mYWls cygidXNlcj1zY3JhbV9yb2xlIHJlcXVpcmVfYXV0aD1tZDUiLAorCSJtZDUgYXV0aGVudGlj YXRpb24gY2FuIGJlIHJlcXVpcmVkOiBmYWlscyB3aXRoIHRydXN0IGF1dGgiLAorCWV4cGVj dGVkX3N0ZGVyciA9PiBxci9zZXJ2ZXIgZGlkIG5vdCBjb21wbGV0ZSBhdXRoZW50aWNhdGlv bi8pOworJG5vZGUtPmNvbm5lY3RfZmFpbHMoInVzZXI9c2NyYW1fcm9sZSByZXF1aXJlX2F1 dGg9c2NyYW0tc2hhLTI1NiIsCisJIlNDUkFNIGF1dGhlbnRpY2F0aW9uIGNhbiBiZSByZXF1 aXJlZDogZmFpbHMgd2l0aCB0cnVzdCBhdXRoIiwKKwlleHBlY3RlZF9zdGRlcnIgPT4gcXIv c2VydmVyIGRpZCBub3QgY29tcGxldGUgYXV0aGVudGljYXRpb24vKTsKKyRub2RlLT5jb25u ZWN0X2ZhaWxzKCJ1c2VyPXNjcmFtX3JvbGUgcmVxdWlyZV9hdXRoPXBhc3N3b3JkLHNjcmFt LXNoYS0yNTYiLAorCSJtdWx0aXBsZSBhdXRoZW50aWNhdGlvbiB0eXBlcyBjYW4gYmUgcmVx dWlyZWQ6IGZhaWxzIHdpdGggdHJ1c3QgYXV0aCIsCisJZXhwZWN0ZWRfc3RkZXJyID0+IHFy L3NlcnZlciBkaWQgbm90IGNvbXBsZXRlIGF1dGhlbnRpY2F0aW9uLyk7CisKKyMgLi4uYW5k IG5lZ2F0aXZlIHJlcXVpcmVfYXV0aCBvcHRpb25zIHNob3VsZCBzdWNjZWVkLgorJG5vZGUt PmNvbm5lY3Rfb2soInVzZXI9c2NyYW1fcm9sZSByZXF1aXJlX2F1dGg9IWdzcyIsCisJIkdT UyBhdXRoZW50aWNhdGlvbiBjYW4gYmUgZm9yYmlkZGVuOiBzdWNjZWVkcyB3aXRoIHRydXN0 IGF1dGgiKTsKKyRub2RlLT5jb25uZWN0X29rKCJ1c2VyPXNjcmFtX3JvbGUgcmVxdWlyZV9h dXRoPSFzc3BpIiwKKwkiU1NQSSBhdXRoZW50aWNhdGlvbiBjYW4gYmUgZm9yYmlkZGVuOiBz dWNjZWVkcyB3aXRoIHRydXN0IGF1dGgiKTsKKyRub2RlLT5jb25uZWN0X29rKCJ1c2VyPXNj cmFtX3JvbGUgcmVxdWlyZV9hdXRoPSFwYXNzd29yZCIsCisJInBhc3N3b3JkIGF1dGhlbnRp Y2F0aW9uIGNhbiBiZSBmb3JiaWRkZW46IHN1Y2NlZWRzIHdpdGggdHJ1c3QgYXV0aCIpOwor JG5vZGUtPmNvbm5lY3Rfb2soInVzZXI9c2NyYW1fcm9sZSByZXF1aXJlX2F1dGg9IW1kNSIs CisJIm1kNSBhdXRoZW50aWNhdGlvbiBjYW4gYmUgZm9yYmlkZGVuOiBzdWNjZWVkcyB3aXRo IHRydXN0IGF1dGgiKTsKKyRub2RlLT5jb25uZWN0X29rKCJ1c2VyPXNjcmFtX3JvbGUgcmVx dWlyZV9hdXRoPSFzY3JhbS1zaGEtMjU2IiwKKwkiU0NSQU0gYXV0aGVudGljYXRpb24gY2Fu IGJlIGZvcmJpZGRlbjogc3VjY2VlZHMgd2l0aCB0cnVzdCBhdXRoIik7Ciskbm9kZS0+Y29u bmVjdF9vaygidXNlcj1zY3JhbV9yb2xlIHJlcXVpcmVfYXV0aD0hcGFzc3dvcmQsIXNjcmFt LXNoYS0yNTYiLAorCSJtdWx0aXBsZSBhdXRoZW50aWNhdGlvbiB0eXBlcyBjYW4gYmUgZm9y YmlkZGVuOiBzdWNjZWVkcyB3aXRoIHRydXN0IGF1dGgiKTsKKworIyByZXF1aXJlX2F1dGg9 WyFdbm9uZSBzaG91bGQgaW50ZXJhY3QgY29ycmVjdGx5IHdpdGggdHJ1c3QgYXV0aC4KKyRu b2RlLT5jb25uZWN0X29rKCJ1c2VyPXNjcmFtX3JvbGUgcmVxdWlyZV9hdXRoPW5vbmUiLAor CSJhbGwgYXV0aGVudGljYXRpb24gY2FuIGJlIGZvcmJpZGRlbjogc3VjY2VlZHMgd2l0aCB0 cnVzdCBhdXRoIik7Ciskbm9kZS0+Y29ubmVjdF9mYWlscygidXNlcj1zY3JhbV9yb2xlIHJl cXVpcmVfYXV0aD0hbm9uZSIsCisJImFueSBhdXRoZW50aWNhdGlvbiBjYW4gYmUgcmVxdWly ZWQ6IGZhaWxzIHdpdGggdHJ1c3QgYXV0aCIsCisJZXhwZWN0ZWRfc3RkZXJyID0+IHFyL3Nl cnZlciBkaWQgbm90IGNvbXBsZXRlIGF1dGhlbnRpY2F0aW9uLyk7CisKKyMgTmVnYXRpdmUg YW5kIHBvc2l0aXZlIHJlcXVpcmVfYXV0aCBvcHRpb25zIGNhbid0IGJlIG1peGVkLgorJG5v ZGUtPmNvbm5lY3RfZmFpbHMoInVzZXI9c2NyYW1fcm9sZSByZXF1aXJlX2F1dGg9c2NyYW0t c2hhLTI1NiwhbWQ1IiwKKwkibmVnYXRpdmUgcmVxdWlyZV9hdXRoIG1ldGhvZHMgY2FuJ3Qg YmUgbWl4ZWQgd2l0aCBwb3NpdGl2ZSIsCisJZXhwZWN0ZWRfc3RkZXJyID0+IHFyL25lZ2F0 aXZlIHJlcXVpcmVfYXV0aCBtZXRob2QgIiFtZDUiIGNhbm5vdCBiZSBtaXhlZCB3aXRoIG5v bi1uZWdhdGl2ZSBtZXRob2RzLyk7Ciskbm9kZS0+Y29ubmVjdF9mYWlscygidXNlcj1zY3Jh bV9yb2xlIHJlcXVpcmVfYXV0aD0hcGFzc3dvcmQsc2NyYW0tc2hhLTI1NiIsCisJInBvc2l0 aXZlIHJlcXVpcmVfYXV0aCBtZXRob2RzIGNhbid0IGJlIG1peGVkIHdpdGggbmVnYXRpdmUi LAorCWV4cGVjdGVkX3N0ZGVyciA9PiBxci9yZXF1aXJlX2F1dGggbWV0aG9kICJzY3JhbS1z aGEtMjU2IiBjYW5ub3QgYmUgbWl4ZWQgd2l0aCBuZWdhdGl2ZSBtZXRob2RzLyk7CisKKyMg cmVxdWlyZV9hdXRoIG1ldGhvZHMgY2FuJ3QgYmUgZHVwbGljYXRlZC4KKyRub2RlLT5jb25u ZWN0X2ZhaWxzKCJ1c2VyPXNjcmFtX3JvbGUgcmVxdWlyZV9hdXRoPXBhc3N3b3JkLG1kNSxw YXNzd29yZCIsCisJInJlcXVpcmVfYXV0aCBtZXRob2RzIGNhbid0IGJlIGR1cGxpY2F0ZWQ6 IHBvc2l0aXZlIGNhc2UiLAorCWV4cGVjdGVkX3N0ZGVyciA9PiBxci9yZXF1aXJlX2F1dGgg bWV0aG9kICJwYXNzd29yZCIgaXMgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlLyk7Ciskbm9k ZS0+Y29ubmVjdF9mYWlscygidXNlcj1zY3JhbV9yb2xlIHJlcXVpcmVfYXV0aD0hcGFzc3dv cmQsIW1kNSwhcGFzc3dvcmQiLAorCSJyZXF1aXJlX2F1dGggbWV0aG9kcyBjYW4ndCBiZSBk dXBsaWNhdGVkOiBuZWdhdGl2ZSBjYXNlIiwKKwlleHBlY3RlZF9zdGRlcnIgPT4gcXIvcmVx dWlyZV9hdXRoIG1ldGhvZCAiIXBhc3N3b3JkIiBpcyBzcGVjaWZpZWQgbW9yZSB0aGFuIG9u Y2UvKTsKKyRub2RlLT5jb25uZWN0X2ZhaWxzKCJ1c2VyPXNjcmFtX3JvbGUgcmVxdWlyZV9h dXRoPW5vbmUsbWQ1LG5vbmUiLAorCSJyZXF1aXJlX2F1dGggbWV0aG9kcyBjYW4ndCBiZSBk dXBsaWNhdGVkOiBub25lIGNhc2UiLAorCWV4cGVjdGVkX3N0ZGVyciA9PiBxci9yZXF1aXJl X2F1dGggbWV0aG9kICJub25lIiBpcyBzcGVjaWZpZWQgbW9yZSB0aGFuIG9uY2UvKTsKKyRu b2RlLT5jb25uZWN0X2ZhaWxzKCJ1c2VyPXNjcmFtX3JvbGUgcmVxdWlyZV9hdXRoPSFub25l LCFtZDUsIW5vbmUiLAorCSJyZXF1aXJlX2F1dGggbWV0aG9kcyBjYW4ndCBiZSBkdXBsaWNh dGVkOiAhbm9uZSBjYXNlIiwKKwlleHBlY3RlZF9zdGRlcnIgPT4gcXIvcmVxdWlyZV9hdXRo IG1ldGhvZCAiIW5vbmUiIGlzIHNwZWNpZmllZCBtb3JlIHRoYW4gb25jZS8pOworCisjIFVu a25vd24gcmVxdWlyZV9hdXRoIG1ldGhvZHMgYXJlIGNhdWdodC4KKyRub2RlLT5jb25uZWN0 X2ZhaWxzKCJ1c2VyPXNjcmFtX3JvbGUgcmVxdWlyZV9hdXRoPW5vbmUsYWJjZGVmZyIsCisJ InVua25vd24gcmVxdWlyZV9hdXRoIG1ldGhvZHMgYXJlIHJlamVjdGVkIiwKKwlleHBlY3Rl ZF9zdGRlcnIgPT4gcXIvaW52YWxpZCByZXF1aXJlX2F1dGggbWV0aG9kOiAiYWJjZGVmZyIv KTsKKwogIyBGb3IgcGxhaW4gInBhc3N3b3JkIiBtZXRob2QsIGFsbCB1c2VycyBzaG91bGQg YWxzbyBiZSBhYmxlIHRvIGNvbm5lY3QuCiByZXNldF9wZ19oYmEoJG5vZGUsICdhbGwnLCAn YWxsJywgJ3Bhc3N3b3JkJyk7CiB0ZXN0X2Nvbm4oJG5vZGUsICd1c2VyPXNjcmFtX3JvbGUn LCAncGFzc3dvcmQnLCAwLApAQCAtMTE2LDYgKzE4NCwzMyBAQCB0ZXN0X2Nvbm4oJG5vZGUs ICd1c2VyPW1kNV9yb2xlJywgJ3Bhc3N3b3JkJywgMCwKIAlsb2dfbGlrZSA9PgogCSAgW3Fy L2Nvbm5lY3Rpb24gYXV0aGVudGljYXRlZDogaWRlbnRpdHk9Im1kNV9yb2xlIiBtZXRob2Q9 cGFzc3dvcmQvXSk7CiAKKyMgcmVxdWlyZV9hdXRoIHNob3VsZCBzdWNjZWVkIHdpdGggYSBw bGFpbnRleHQgcGFzc3dvcmQuLi4KKyRub2RlLT5jb25uZWN0X29rKCJ1c2VyPXNjcmFtX3Jv bGUgcmVxdWlyZV9hdXRoPXBhc3N3b3JkIiwKKwkicGFzc3dvcmQgYXV0aGVudGljYXRpb24g Y2FuIGJlIHJlcXVpcmVkOiB3b3JrcyB3aXRoIHBhc3N3b3JkIGF1dGgiKTsKKyRub2RlLT5j b25uZWN0X29rKCJ1c2VyPXNjcmFtX3JvbGUgcmVxdWlyZV9hdXRoPSFub25lIiwKKwkiYW55 IGF1dGhlbnRpY2F0aW9uIGNhbiBiZSByZXF1aXJlZDogd29ya3Mgd2l0aCBwYXNzd29yZCBh dXRoIik7Ciskbm9kZS0+Y29ubmVjdF9vaygidXNlcj1zY3JhbV9yb2xlIHJlcXVpcmVfYXV0 aD1zY3JhbS1zaGEtMjU2LHBhc3N3b3JkLG1kNSIsCisJIm11bHRpcGxlIGF1dGhlbnRpY2F0 aW9uIHR5cGVzIGNhbiBiZSByZXF1aXJlZDogd29ya3Mgd2l0aCBwYXNzd29yZCBhdXRoIik7 CisKKyMgLi4uZmFpbCBmb3Igb3RoZXIgYXV0aCB0eXBlcy4uLgorJG5vZGUtPmNvbm5lY3Rf ZmFpbHMoInVzZXI9c2NyYW1fcm9sZSByZXF1aXJlX2F1dGg9bWQ1IiwKKwkibWQ1IGF1dGhl bnRpY2F0aW9uIGNhbiBiZSByZXF1aXJlZDogZmFpbHMgd2l0aCBwYXNzd29yZCBhdXRoIiwK KwlleHBlY3RlZF9zdGRlcnIgPT4gcXIvc2VydmVyIHJlcXVlc3RlZCBhIGNsZWFydGV4dCBw YXNzd29yZC8pOworJG5vZGUtPmNvbm5lY3RfZmFpbHMoInVzZXI9c2NyYW1fcm9sZSByZXF1 aXJlX2F1dGg9c2NyYW0tc2hhLTI1NiIsCisJIlNDUkFNIGF1dGhlbnRpY2F0aW9uIGNhbiBi ZSByZXF1aXJlZDogZmFpbHMgd2l0aCBwYXNzd29yZCBhdXRoIiwKKwlleHBlY3RlZF9zdGRl cnIgPT4gcXIvc2VydmVyIHJlcXVlc3RlZCBhIGNsZWFydGV4dCBwYXNzd29yZC8pOworJG5v ZGUtPmNvbm5lY3RfZmFpbHMoInVzZXI9c2NyYW1fcm9sZSByZXF1aXJlX2F1dGg9bm9uZSIs CisJImFsbCBhdXRoZW50aWNhdGlvbiBjYW4gYmUgZm9yYmlkZGVuOiBmYWlscyB3aXRoIHBh c3N3b3JkIGF1dGgiLAorCWV4cGVjdGVkX3N0ZGVyciA9PiBxci9zZXJ2ZXIgcmVxdWVzdGVk IGEgY2xlYXJ0ZXh0IHBhc3N3b3JkLyk7CisKKyMgLi4uYW5kIGFsbG93IHBhc3N3b3JkIGF1 dGhlbnRpY2F0aW9uIHRvIGJlIHByb2hpYml0ZWQuCiskbm9kZS0+Y29ubmVjdF9mYWlscygi dXNlcj1zY3JhbV9yb2xlIHJlcXVpcmVfYXV0aD0hcGFzc3dvcmQiLAorCSJwYXNzd29yZCBh dXRoZW50aWNhdGlvbiBjYW4gYmUgZm9yYmlkZGVuOiBmYWlscyB3aXRoIHBhc3N3b3JkIGF1 dGgiLAorCWV4cGVjdGVkX3N0ZGVyciA9PiBxci9zZXJ2ZXIgcmVxdWVzdGVkIGEgY2xlYXJ0 ZXh0IHBhc3N3b3JkLyk7Ciskbm9kZS0+Y29ubmVjdF9mYWlscygidXNlcj1zY3JhbV9yb2xl IHJlcXVpcmVfYXV0aD0hcGFzc3dvcmQsIW1kNSwhc2NyYW0tc2hhLTI1NiIsCisJIm11bHRp cGxlIGF1dGhlbnRpY2F0aW9uIHR5cGVzIGNhbiBiZSBmb3JiaWRkZW46IGZhaWxzIHdpdGgg cGFzc3dvcmQgYXV0aCIsCisJZXhwZWN0ZWRfc3RkZXJyID0+IHFyL3NlcnZlciByZXF1ZXN0 ZWQgYSBjbGVhcnRleHQgcGFzc3dvcmQvKTsKKwogIyBGb3IgInNjcmFtLXNoYS0yNTYiIG1l dGhvZCwgdXNlciAic2NyYW1fcm9sZSIgc2hvdWxkIGJlIGFibGUgdG8gY29ubmVjdC4KIHJl c2V0X3BnX2hiYSgkbm9kZSwgJ2FsbCcsICdhbGwnLCAnc2NyYW0tc2hhLTI1NicpOwogdGVz dF9jb25uKApAQCAtMTI5LDYgKzIyNCwzMyBAQCB0ZXN0X2Nvbm4oCiB0ZXN0X2Nvbm4oJG5v ZGUsICd1c2VyPW1kNV9yb2xlJywgJ3NjcmFtLXNoYS0yNTYnLCAyLAogCWxvZ191bmxpa2Ug PT4gW3FyL2Nvbm5lY3Rpb24gYXV0aGVudGljYXRlZDovXSk7CiAKKyMgcmVxdWlyZV9hdXRo IHNob3VsZCBzdWNjZWVkIHdpdGggU0NSQU0uLi4KKyRub2RlLT5jb25uZWN0X29rKCJ1c2Vy PXNjcmFtX3JvbGUgcmVxdWlyZV9hdXRoPXNjcmFtLXNoYS0yNTYiLAorCSJTQ1JBTSBhdXRo ZW50aWNhdGlvbiBjYW4gYmUgcmVxdWlyZWQ6IHdvcmtzIHdpdGggU0NSQU0gYXV0aCIpOwor JG5vZGUtPmNvbm5lY3Rfb2soInVzZXI9c2NyYW1fcm9sZSByZXF1aXJlX2F1dGg9IW5vbmUi LAorCSJhbnkgYXV0aGVudGljYXRpb24gY2FuIGJlIHJlcXVpcmVkOiB3b3JrcyB3aXRoIFND UkFNIGF1dGgiKTsKKyRub2RlLT5jb25uZWN0X29rKCJ1c2VyPXNjcmFtX3JvbGUgcmVxdWly ZV9hdXRoPXBhc3N3b3JkLHNjcmFtLXNoYS0yNTYsbWQ1IiwKKwkibXVsdGlwbGUgYXV0aGVu dGljYXRpb24gdHlwZXMgY2FuIGJlIHJlcXVpcmVkOiB3b3JrcyB3aXRoIFNDUkFNIGF1dGgi KTsKKworIyAuLi5mYWlsIGZvciBvdGhlciBhdXRoIHR5cGVzLi4uCiskbm9kZS0+Y29ubmVj dF9mYWlscygidXNlcj1zY3JhbV9yb2xlIHJlcXVpcmVfYXV0aD1wYXNzd29yZCIsCisJInBh c3N3b3JkIGF1dGhlbnRpY2F0aW9uIGNhbiBiZSByZXF1aXJlZDogZmFpbHMgd2l0aCBTQ1JB TSBhdXRoIiwKKwlleHBlY3RlZF9zdGRlcnIgPT4gcXIvc2VydmVyIHJlcXVlc3RlZCBTQVNM IGF1dGhlbnRpY2F0aW9uLyk7Ciskbm9kZS0+Y29ubmVjdF9mYWlscygidXNlcj1zY3JhbV9y b2xlIHJlcXVpcmVfYXV0aD1tZDUiLAorCSJtZDUgYXV0aGVudGljYXRpb24gY2FuIGJlIHJl cXVpcmVkOiBmYWlscyB3aXRoIFNDUkFNIGF1dGgiLAorCWV4cGVjdGVkX3N0ZGVyciA9PiBx ci9zZXJ2ZXIgcmVxdWVzdGVkIFNBU0wgYXV0aGVudGljYXRpb24vKTsKKyRub2RlLT5jb25u ZWN0X2ZhaWxzKCJ1c2VyPXNjcmFtX3JvbGUgcmVxdWlyZV9hdXRoPW5vbmUiLAorCSJhbGwg YXV0aGVudGljYXRpb24gY2FuIGJlIGZvcmJpZGRlbjogZmFpbHMgd2l0aCBTQ1JBTSBhdXRo IiwKKwlleHBlY3RlZF9zdGRlcnIgPT4gcXIvc2VydmVyIHJlcXVlc3RlZCBTQVNMIGF1dGhl bnRpY2F0aW9uLyk7CisKKyMgLi4uYW5kIGFsbG93IFNDUkFNIGF1dGhlbnRpY2F0aW9uIHRv IGJlIHByb2hpYml0ZWQuCiskbm9kZS0+Y29ubmVjdF9mYWlscygidXNlcj1zY3JhbV9yb2xl IHJlcXVpcmVfYXV0aD0hc2NyYW0tc2hhLTI1NiIsCisJIlNDUkFNIGF1dGhlbnRpY2F0aW9u IGNhbiBiZSBmb3JiaWRkZW46IGZhaWxzIHdpdGggU0NSQU0gYXV0aCIsCisJZXhwZWN0ZWRf c3RkZXJyID0+IHFyL3NlcnZlciByZXF1ZXN0ZWQgU0FTTCBhdXRoZW50aWNhdGlvbi8pOwor JG5vZGUtPmNvbm5lY3RfZmFpbHMoInVzZXI9c2NyYW1fcm9sZSByZXF1aXJlX2F1dGg9IXBh c3N3b3JkLCFtZDUsIXNjcmFtLXNoYS0yNTYiLAorCSJtdWx0aXBsZSBhdXRoZW50aWNhdGlv biB0eXBlcyBjYW4gYmUgZm9yYmlkZGVuOiBmYWlscyB3aXRoIFNDUkFNIGF1dGgiLAorCWV4 cGVjdGVkX3N0ZGVyciA9PiBxci9zZXJ2ZXIgcmVxdWVzdGVkIFNBU0wgYXV0aGVudGljYXRp b24vKTsKKwogIyBUZXN0IHRoYXQgYmFkIHBhc3N3b3JkcyBhcmUgcmVqZWN0ZWQuCiAkRU5W eyJQR1BBU1NXT1JEIn0gPSAnYmFkcGFzcyc7CiB0ZXN0X2Nvbm4oJG5vZGUsICd1c2VyPXNj cmFtX3JvbGUnLCAnc2NyYW0tc2hhLTI1NicsIDIsCkBAIC0xNDUsNiArMjY3LDMzIEBAIHRl c3RfY29ubigkbm9kZSwgJ3VzZXI9bWQ1X3JvbGUnLCAnbWQ1JywgMCwKIAlsb2dfbGlrZSA9 PgogCSAgW3FyL2Nvbm5lY3Rpb24gYXV0aGVudGljYXRlZDogaWRlbnRpdHk9Im1kNV9yb2xl IiBtZXRob2Q9bWQ1L10pOwogCisjIHJlcXVpcmVfYXV0aCBzaG91bGQgc3VjY2VlZCB3aXRo IE1ENS4uLgorJG5vZGUtPmNvbm5lY3Rfb2soInVzZXI9bWQ1X3JvbGUgcmVxdWlyZV9hdXRo PW1kNSIsCisJIk1ENSBhdXRoZW50aWNhdGlvbiBjYW4gYmUgcmVxdWlyZWQ6IHdvcmtzIHdp dGggTUQ1IGF1dGgiKTsKKyRub2RlLT5jb25uZWN0X29rKCJ1c2VyPW1kNV9yb2xlIHJlcXVp cmVfYXV0aD0hbm9uZSIsCisJImFueSBhdXRoZW50aWNhdGlvbiBjYW4gYmUgcmVxdWlyZWQ6 IHdvcmtzIHdpdGggTUQ1IGF1dGgiKTsKKyRub2RlLT5jb25uZWN0X29rKCJ1c2VyPW1kNV9y b2xlIHJlcXVpcmVfYXV0aD1tZDUsc2NyYW0tc2hhLTI1NixwYXNzd29yZCIsCisJIm11bHRp cGxlIGF1dGhlbnRpY2F0aW9uIHR5cGVzIGNhbiBiZSByZXF1aXJlZDogd29ya3Mgd2l0aCBN RDUgYXV0aCIpOworCisjIC4uLmZhaWwgZm9yIG90aGVyIGF1dGggdHlwZXMuLi4KKyRub2Rl LT5jb25uZWN0X2ZhaWxzKCJ1c2VyPW1kNV9yb2xlIHJlcXVpcmVfYXV0aD1wYXNzd29yZCIs CisJInBhc3N3b3JkIGF1dGhlbnRpY2F0aW9uIGNhbiBiZSByZXF1aXJlZDogZmFpbHMgd2l0 aCBNRDUgYXV0aCIsCisJZXhwZWN0ZWRfc3RkZXJyID0+IHFyL3NlcnZlciByZXF1ZXN0ZWQg YSBoYXNoZWQgcGFzc3dvcmQvKTsKKyRub2RlLT5jb25uZWN0X2ZhaWxzKCJ1c2VyPW1kNV9y b2xlIHJlcXVpcmVfYXV0aD1zY3JhbS1zaGEtMjU2IiwKKwkiU0NSQU0gYXV0aGVudGljYXRp b24gY2FuIGJlIHJlcXVpcmVkOiBmYWlscyB3aXRoIE1ENSBhdXRoIiwKKwlleHBlY3RlZF9z dGRlcnIgPT4gcXIvc2VydmVyIHJlcXVlc3RlZCBhIGhhc2hlZCBwYXNzd29yZC8pOworJG5v ZGUtPmNvbm5lY3RfZmFpbHMoInVzZXI9bWQ1X3JvbGUgcmVxdWlyZV9hdXRoPW5vbmUiLAor CSJhbGwgYXV0aGVudGljYXRpb24gY2FuIGJlIGZvcmJpZGRlbjogZmFpbHMgd2l0aCBNRDUg YXV0aCIsCisJZXhwZWN0ZWRfc3RkZXJyID0+IHFyL3NlcnZlciByZXF1ZXN0ZWQgYSBoYXNo ZWQgcGFzc3dvcmQvKTsKKworIyAuLi5hbmQgYWxsb3cgTUQ1IGF1dGhlbnRpY2F0aW9uIHRv IGJlIHByb2hpYml0ZWQuCiskbm9kZS0+Y29ubmVjdF9mYWlscygidXNlcj1tZDVfcm9sZSBy ZXF1aXJlX2F1dGg9IW1kNSIsCisJInBhc3N3b3JkIGF1dGhlbnRpY2F0aW9uIGNhbiBiZSBm b3JiaWRkZW46IGZhaWxzIHdpdGggTUQ1IGF1dGgiLAorCWV4cGVjdGVkX3N0ZGVyciA9PiBx ci9zZXJ2ZXIgcmVxdWVzdGVkIGEgaGFzaGVkIHBhc3N3b3JkLyk7Ciskbm9kZS0+Y29ubmVj dF9mYWlscygidXNlcj1tZDVfcm9sZSByZXF1aXJlX2F1dGg9IXBhc3N3b3JkLCFtZDUsIXNj cmFtLXNoYS0yNTYiLAorCSJtdWx0aXBsZSBhdXRoZW50aWNhdGlvbiB0eXBlcyBjYW4gYmUg Zm9yYmlkZGVuOiBmYWlscyB3aXRoIE1ENSBhdXRoIiwKKwlleHBlY3RlZF9zdGRlcnIgPT4g cXIvc2VydmVyIHJlcXVlc3RlZCBhIGhhc2hlZCBwYXNzd29yZC8pOworCiAjIFRlc3QgU1lT VEVNX1VTRVIgPD4gTlVMTCB3aXRoIHBhcmFsbGVsIHdvcmtlcnMuCiAkbm9kZS0+c2FmZV9w c3FsKAogCSdwb3N0Z3JlcycsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9rZXJiZXJvcy90LzAw MV9hdXRoLnBsIGIvc3JjL3Rlc3Qva2VyYmVyb3MvdC8wMDFfYXV0aC5wbAppbmRleCBhMmJj OGE1MzUxLi42MWFlZGUxMmQxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9rZXJiZXJvcy90LzAw MV9hdXRoLnBsCisrKyBiL3NyYy90ZXN0L2tlcmJlcm9zL3QvMDAxX2F1dGgucGwKQEAgLTMx OCw2ICszMTgsMjQgQEAgdGVzdF9xdWVyeSgKIAknZ3NzZW5jbW9kZT1yZXF1aXJlJywKIAkn c2VuZGluZyAxMDBLIGxpbmVzIHdvcmtzJyk7CiAKKyMgcmVxdWlyZV9hdXRoPWdzcyBzaG91 bGQgc3VjY2VlZC4uLgorJG5vZGUtPmNvbm5lY3Rfb2soCisJJG5vZGUtPmNvbm5zdHIoJ3Bv c3RncmVzJykgLiAiIHVzZXI9dGVzdDEgaG9zdD0kaG9zdCBob3N0YWRkcj0kaG9zdGFkZHIg Z3NzZW5jbW9kZT1kaXNhYmxlIHJlcXVpcmVfYXV0aD1nc3MiLAorCSJHU1MgYXV0aGVudGlj YXRpb24gY2FuIGJlIHJlcXVlc3RlZDogd29ya3Mgd2l0aCBHU1MgYXV0aCB3aXRob3V0IGVu Y3J5cHRpb24iKTsKKyRub2RlLT5jb25uZWN0X29rKAorCSRub2RlLT5jb25uc3RyKCdwb3N0 Z3JlcycpIC4gIiB1c2VyPXRlc3QxIGhvc3Q9JGhvc3QgaG9zdGFkZHI9JGhvc3RhZGRyIGdz c2VuY21vZGU9cmVxdWlyZSByZXF1aXJlX2F1dGg9Z3NzIiwKKwkiR1NTIGF1dGhlbnRpY2F0 aW9uIGNhbiBiZSByZXF1ZXN0ZWQ6IHdvcmtzIHdpdGggR1NTIGF1dGggd2l0aCBlbmNyeXB0 aW9uIik7CisKKyMgLi4uYW5kIHJlcXVpcmVfYXV0aD1zc3BpIHNob3VsZCBmYWlsLgorJG5v ZGUtPmNvbm5lY3RfZmFpbHMoCisJJG5vZGUtPmNvbm5zdHIoJ3Bvc3RncmVzJykgLiAiIHVz ZXI9dGVzdDEgaG9zdD0kaG9zdCBob3N0YWRkcj0kaG9zdGFkZHIgZ3NzZW5jbW9kZT1kaXNh YmxlIHJlcXVpcmVfYXV0aD1zc3BpIiwKKwkiU1NQSSBhdXRoZW50aWNhdGlvbiBjYW4gYmUg cmVxdWVzdGVkOiBmYWlscyB3aXRoIEdTUyBhdXRoIHdpdGhvdXQgZW5jcnlwdGlvbiIsCisJ ZXhwZWN0ZWRfc3RkZXJyID0+IHFyL3NlcnZlciByZXF1ZXN0ZWQgR1NTQVBJIGF1dGhlbnRp Y2F0aW9uLyk7Ciskbm9kZS0+Y29ubmVjdF9mYWlscygKKwkkbm9kZS0+Y29ubnN0cigncG9z dGdyZXMnKSAuICIgdXNlcj10ZXN0MSBob3N0PSRob3N0IGhvc3RhZGRyPSRob3N0YWRkciBn c3NlbmNtb2RlPXJlcXVpcmUgcmVxdWlyZV9hdXRoPXNzcGkiLAorCSJTU1BJIGF1dGhlbnRp Y2F0aW9uIGNhbiBiZSByZXF1ZXN0ZWQ6IGZhaWxzIHdpdGggR1NTIGF1dGggd2l0aCBlbmNy eXB0aW9uIiwKKwlleHBlY3RlZF9zdGRlcnIgPT4gcXIvc2VydmVyIGRpZCBub3QgY29tcGxl dGUgYXV0aGVudGljYXRpb24vKTsKKwogIyBUZXN0IHRoYXQgU1lTVEVNX1VTRVIgd29ya3Mu CiB0ZXN0X3F1ZXJ5KCRub2RlLCAndGVzdDEnLCAnU0VMRUNUIFNZU1RFTV9VU0VSOycsCiAJ cXIvXmdzczp0ZXN0MVxAJHJlYWxtJC9zLCAnZ3NzZW5jbW9kZT1yZXF1aXJlJywgJ3Rlc3Rp bmcgc3lzdGVtX3VzZXInKTsKQEAgLTM2Myw2ICszODEsMTQgQEAgdGVzdF9hY2Nlc3MoCiB0 ZXN0X2FjY2Vzcygkbm9kZSwgJ3Rlc3QxJywgJ1NFTEVDVCB0cnVlJywgMiwgJ2dzc2VuY21v ZGU9ZGlzYWJsZScsCiAJJ2ZhaWxzIHdpdGggR1NTIGVuY3J5cHRpb24gZGlzYWJsZWQgYW5k IGhvc3Rnc3NlbmMgaGJhJyk7CiAKKyMgcmVxdWlyZV9hdXRoPWdzcyBzaG91bGQgc3VjY2Vl ZC4KKyRub2RlLT5jb25uZWN0X29rKAorCSRub2RlLT5jb25uc3RyKCdwb3N0Z3JlcycpIC4g IiB1c2VyPXRlc3QxIGhvc3Q9JGhvc3QgaG9zdGFkZHI9JGhvc3RhZGRyIGdzc2VuY21vZGU9 cmVxdWlyZSByZXF1aXJlX2F1dGg9Z3NzIiwKKwkiR1NTIGF1dGhlbnRpY2F0aW9uIGNhbiBi ZSByZXF1ZXN0ZWQ6IHdvcmtzIHdpdGggR1NTIGVuY3J5cHRpb24iKTsKKyRub2RlLT5jb25u ZWN0X29rKAorCSRub2RlLT5jb25uc3RyKCdwb3N0Z3JlcycpIC4gIiB1c2VyPXRlc3QxIGhv c3Q9JGhvc3QgaG9zdGFkZHI9JGhvc3RhZGRyIGdzc2VuY21vZGU9cmVxdWlyZSByZXF1aXJl X2F1dGg9Z3NzLHNjcmFtLXNoYS0yNTYiLAorCSJtdWx0aXBsZSBhdXRoZW50aWNhdGlvbiB0 eXBlcyBjYW4gYmUgcmVxdWVzdGVkOiB3b3JrcyB3aXRoIEdTUyBlbmNyeXB0aW9uIik7CisK IHVubGluaygkbm9kZS0+ZGF0YV9kaXIgLiAnL3BnX2hiYS5jb25mJyk7CiAkbm9kZS0+YXBw ZW5kX2NvbmYoJ3BnX2hiYS5jb25mJywKIAlxcXtob3N0bm9nc3NlbmMgYWxsIGFsbCAkaG9z dGFkZHIvMzIgZ3NzIG1hcD1teW1hcH0pOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbGRhcC90 LzAwMV9hdXRoLnBsIGIvc3JjL3Rlc3QvbGRhcC90LzAwMV9hdXRoLnBsCmluZGV4IDJmMDY0 ZjY5NDQuLjI1NDgzZTUwY2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2xkYXAvdC8wMDFfYXV0 aC5wbAorKysgYi9zcmMvdGVzdC9sZGFwL3QvMDAxX2F1dGgucGwKQEAgLTIyMCw2ICsyMjAs MTIgQEAgdGVzdF9hY2Nlc3MoCiAJCXFyL2Nvbm5lY3Rpb24gYXV0aGVudGljYXRlZDogaWRl bnRpdHk9InVpZD10ZXN0MSxkYz1leGFtcGxlLGRjPW5ldCIgbWV0aG9kPWxkYXAvCiAJXSwp OwogCisjIHJlcXVpcmVfYXV0aD1wYXNzd29yZCBzaG91bGQgY29tcGxldGUgc3VjY2Vzc2Z1 bGx5OyBvdGhlciBtZXRob2RzIHNob3VsZCBmYWlsLgorJG5vZGUtPmNvbm5lY3Rfb2soInVz ZXI9dGVzdDEgcmVxdWlyZV9hdXRoPXBhc3N3b3JkIiwKKwkicGFzc3dvcmQgYXV0aGVudGlj YXRpb24gY2FuIGJlIHJlcXVpcmVkOiB3b3JrcyB3aXRoIGxkYXAgYXV0aCIpOworJG5vZGUt PmNvbm5lY3RfZmFpbHMoInVzZXI9dGVzdDEgcmVxdWlyZV9hdXRoPXNjcmFtLXNoYS0yNTYi LAorCSJTQ1JBTSBhdXRoZW50aWNhdGlvbiBjYW4gYmUgcmVxdWlyZWQ6IGZhaWxzIHdpdGgg bGRhcCBhdXRoIik7CisKIG5vdGUgInNlYXJjaCtiaW5kIjsKIAogdW5saW5rKCRub2RlLT5k YXRhX2RpciAuICcvcGdfaGJhLmNvbmYnKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3NzbC90 LzAwMl9zY3JhbS5wbCBiL3NyYy90ZXN0L3NzbC90LzAwMl9zY3JhbS5wbAppbmRleCBkZWFh NGFhMDg2Li5jZjYxYmM3ZDBkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zc2wvdC8wMDJfc2Ny YW0ucGwKKysrIGIvc3JjL3Rlc3Qvc3NsL3QvMDAyX3NjcmFtLnBsCkBAIC0xMzYsNCArMTM2 LDI5IEBAICRub2RlLT5jb25uZWN0X29rKAogCQlxci9jb25uZWN0aW9uIGF1dGhlbnRpY2F0 ZWQ6IGlkZW50aXR5PSJzc2x0ZXN0dXNlciIgbWV0aG9kPXNjcmFtLXNoYS0yNTYvCiAJXSk7 CiAKKyMgY2hhbm5lbF9iaW5kaW5nIHNob3VsZCBjb250aW51ZSB0byBmdW5jdGlvbiBpbmRl cGVuZGVudGx5IG9mIHJlcXVpcmVfYXV0aC4KKyRub2RlLT5jb25uZWN0X29rKCIkY29tbW9u X2Nvbm5zdHIgdXNlcj1zc2x0ZXN0dXNlciBjaGFubmVsX2JpbmRpbmc9ZGlzYWJsZSByZXF1 aXJlX2F1dGg9c2NyYW0tc2hhLTI1NiIsCisJIlNDUkFNIHdpdGggU1NMLCBjaGFubmVsX2Jp bmRpbmc9ZGlzYWJsZSwgYW5kIHJlcXVpcmVfYXV0aD1zY3JhbS1zaGEtMjU2Iik7Ciskbm9k ZS0+Y29ubmVjdF9mYWlscygKKwkiJGNvbW1vbl9jb25uc3RyIHVzZXI9bWQ1dGVzdHVzZXIg cmVxdWlyZV9hdXRoPW1kNSBjaGFubmVsX2JpbmRpbmc9cmVxdWlyZSIsCisJImNoYW5uZWxf YmluZGluZyBjYW4gZmFpbCBldmVuIHdoZW4gcmVxdWlyZV9hdXRoIHN1Y2NlZWRzIiwKKwll eHBlY3RlZF9zdGRlcnIgPT4KKwkgIHFyL2NoYW5uZWwgYmluZGluZyByZXF1aXJlZCBidXQg bm90IHN1cHBvcnRlZCBieSBzZXJ2ZXIncyBhdXRoZW50aWNhdGlvbiByZXF1ZXN0LworKTsK K2lmICgkc3VwcG9ydHNfdGxzX3NlcnZlcl9lbmRfcG9pbnQpCit7CisJJG5vZGUtPmNvbm5l Y3Rfb2soCisJCSIkY29tbW9uX2Nvbm5zdHIgdXNlcj1zc2x0ZXN0dXNlciBjaGFubmVsX2Jp bmRpbmc9cmVxdWlyZSByZXF1aXJlX2F1dGg9c2NyYW0tc2hhLTI1NiIsCisJCSJTQ1JBTSB3 aXRoIFNTTCwgY2hhbm5lbF9iaW5kaW5nPXJlcXVpcmUsIGFuZCByZXF1aXJlX2F1dGg9c2Ny YW0tc2hhLTI1NiIpOworfQorZWxzZQoreworCSRub2RlLT5jb25uZWN0X2ZhaWxzKAorCQki JGNvbW1vbl9jb25uc3RyIHVzZXI9c3NsdGVzdHVzZXIgY2hhbm5lbF9iaW5kaW5nPXJlcXVp cmUgcmVxdWlyZV9hdXRoPXNjcmFtLXNoYS0yNTYiLAorCQkiU0NSQU0gd2l0aCBTU0wsIGNo YW5uZWxfYmluZGluZz1yZXF1aXJlLCBhbmQgcmVxdWlyZV9hdXRoPXNjcmFtLXNoYS0yNTYi LAorCQlleHBlY3RlZF9zdGRlcnIgPT4KKwkJICBxci9jaGFubmVsIGJpbmRpbmcgaXMgcmVx dWlyZWQsIGJ1dCBzZXJ2ZXIgZGlkIG5vdCBvZmZlciBhbiBhdXRoZW50aWNhdGlvbiBtZXRo b2QgdGhhdCBzdXBwb3J0cyBjaGFubmVsIGJpbmRpbmcvCisJKTsKK30KKwogZG9uZV90ZXN0 aW5nKCk7Ci0tIAoyLjI1LjEKCg== --------------SCKnrpjZ8F0HlUONwDdA2KBD Content-Type: text/x-patch; charset=UTF-8; name="v10-0002-Add-sslcertmode-option-for-client-certificates.patch" Content-Disposition: attachment; filename*0="v10-0002-Add-sslcertmode-option-for-client-certificates.patc"; filename*1="h" Content-Transfer-Encoding: base64 RnJvbSBkZWY2NzBhNDViNzk2M2YxZjUzN2I4M2MyNjQ5MzdlMTRjMjc5ZmQ2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amNoYW1waW9uQHRpbWVz Y2FsZS5jb20+CkRhdGU6IEZyaSwgMjQgSnVuIDIwMjIgMTU6NDA6NDIgLTA3MDAKU3ViamVj dDogW1BBVENIIHYxMCAyLzJdIEFkZCBzc2xjZXJ0bW9kZSBvcHRpb24gZm9yIGNsaWVudCBj ZXJ0aWZpY2F0ZXMKClRoZSBzc2xjZXJ0bW9kZSBvcHRpb24gY29udHJvbHMgd2hldGhlciB0 aGUgc2VydmVyIGlzIGFsbG93ZWQgYW5kL29yCnJlcXVpcmVkIHRvIHJlcXVlc3QgYSBjZXJ0 aWZpY2F0ZSBmcm9tIHRoZSBjbGllbnQuIFRoZXJlIGFyZSB0aHJlZQptb2RlczoKCi0gImFs bG93IiBpcyB0aGUgZGVmYXVsdCBhbmQgZm9sbG93cyB0aGUgY3VycmVudCBiZWhhdmlvciAt LSBhCiAgY29uZmlndXJlZCAgc3NsY2VydCBpcyBzZW50IGlmIHRoZSBzZXJ2ZXIgcmVxdWVz dHMgb25lICh3aGljaCwgd2l0aAogIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCB3aWxs IGhhcHBlbiB3aGVuZXZlciBUTFMgaXMgbmVnb3RpYXRlZCkuCgotICJkaXNhYmxlIiBjYXVz ZXMgdGhlIGNsaWVudCB0byByZWZ1c2UgdG8gc2VuZCBhIGNsaWVudCBjZXJ0aWZpY2F0ZQog IGV2ZW4gaWYgYW4gc3NsY2VydCBpcyBjb25maWd1cmVkLgoKLSAicmVxdWlyZSIgY2F1c2Vz IHRoZSBjbGllbnQgdG8gZmFpbCBpZiBhIGNsaWVudCBjZXJ0aWZpY2F0ZSBpcyBuZXZlcgog IHNlbnQgYW5kIHRoZSBzZXJ2ZXIgb3BlbnMgYSBjb25uZWN0aW9uIGFueXdheS4gVGhpcyBk b2Vzbid0IGFkZCBhbnkKICBhZGRpdGlvbmFsIHNlY3VyaXR5LCBzaW5jZSB0aGVyZSBpcyBu byBndWFyYW50ZWUgdGhhdCB0aGUgc2VydmVyIGlzCiAgdmFsaWRhdGluZyB0aGUgY2VydGlm aWNhdGUgY29ycmVjdGx5LCBidXQgaXQgbWF5IGhlbHAgdHJvdWJsZXNob290CiAgbW9yZSBj b21wbGljYXRlZCBUTFMgc2V0dXBzLgoKc3NsY2VydG1vZGU9cmVxdWlyZSBuZWVkcyB0aGUg T3BlblNTTCBpbXBsZW1lbnRhdGlvbiB0byBzdXBwb3J0ClNTTF9DVFhfc2V0X2NlcnRfY2Io KS4gTm90YWJseSwgTGlicmVTU0wgZG9lcyBub3QuCi0tLQogY29uZmlndXJlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDExICsrLS0tCiBjb25maWd1cmUuYWMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIGRvYy9zcmMvc2dtbC9saWJwcS5zZ21s ICAgICAgICAgICAgICAgICAgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKwogbWVzb24u YnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvaW5jbHVk ZS9wZ19jb25maWcuaC5pbiAgICAgICAgICAgICAgIHwgIDMgKysKIHNyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLWF1dGguYyAgICAgICAgICAgfCAyMSArKysrKysrKysKIHNyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyAgICAgICAgfCA1NSArKysrKysrKysrKysrKysrKysr KysrKysKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXNlY3VyZS1vcGVuc3NsLmMgfCAzOSAr KysrKysrKysrKysrKysrLQogc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggICAg ICAgICB8ICAzICsrCiBzcmMvdGVzdC9zc2wvdC8wMDFfc3NsdGVzdHMucGwgICAgICAgICAg IHwgNDMgKysrKysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvbXN2Yy9Tb2x1dGlvbi5wbSAg ICAgICAgICAgICAgIHwgIDggKysrKwogMTEgZmlsZXMgY2hhbmdlZCwgMjM1IGluc2VydGlv bnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmln dXJlCmluZGV4IGUwNGVlOWZiNDEuLmQ0Njg5NmU0NGUgMTAwNzU1Ci0tLSBhL2NvbmZpZ3Vy ZQorKysgYi9jb25maWd1cmUKQEAgLTEyOTAyLDEzICsxMjkwMiwxNCBAQCBlbHNlCiBmaQog CiAgIGZpCi0gICMgRnVuY3Rpb24gaW50cm9kdWNlZCBpbiBPcGVuU1NMIDEuMC4yLgotICBm b3IgYWNfZnVuYyBpbiBYNTA5X2dldF9zaWduYXR1cmVfbmlkCisgICMgRnVuY3Rpb25zIGlu dHJvZHVjZWQgaW4gT3BlblNTTCAxLjAuMi4gTGlicmVTU0wgZG9lc24ndCBoYXZlIGFsbCBv ZiB0aGVzZS4KKyAgZm9yIGFjX2Z1bmMgaW4gWDUwOV9nZXRfc2lnbmF0dXJlX25pZCBTU0xf Q1RYX3NldF9jZXJ0X2NiCiBkbyA6Ci0gIGFjX2ZuX2NfY2hlY2tfZnVuYyAiJExJTkVOTyIg Ilg1MDlfZ2V0X3NpZ25hdHVyZV9uaWQiICJhY19jdl9mdW5jX1g1MDlfZ2V0X3NpZ25hdHVy ZV9uaWQiCi1pZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNfWDUwOV9nZXRfc2lnbmF0dXJlX25pZCIg PSB4eWVzOyB0aGVuIDoKKyAgYXNfYWNfdmFyPWAkYXNfZWNobyAiYWNfY3ZfZnVuY18kYWNf ZnVuYyIgfCAkYXNfdHJfc2hgCithY19mbl9jX2NoZWNrX2Z1bmMgIiRMSU5FTk8iICIkYWNf ZnVuYyIgIiRhc19hY192YXIiCitpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX3ZhciJcIiA9 IHgieWVzIjsgdGhlbiA6CiAgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUg SEFWRV9YNTA5X0dFVF9TSUdOQVRVUkVfTklEIDEKKyNkZWZpbmUgYCRhc19lY2hvICJIQVZF XyRhY19mdW5jIiB8ICRhc190cl9jcHBgIDEKIF9BQ0VPRgogCiBmaQpkaWZmIC0tZ2l0IGEv Y29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IGYxNDZjODMwMWEuLjg0NThlMzc5 M2QgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTEz NTEsOCArMTM1MSw4IEBAIGlmIHRlc3QgIiR3aXRoX3NzbCIgPSBvcGVuc3NsIDsgdGhlbgog ICAgICBBQ19TRUFSQ0hfTElCUyhDUllQVE9fbmV3X2V4X2RhdGEsIFtlYXkzMiBjcnlwdG9d LCBbXSwgW0FDX01TR19FUlJPUihbbGlicmFyeSAnZWF5MzInIG9yICdjcnlwdG8nIGlzIHJl cXVpcmVkIGZvciBPcGVuU1NMXSldKQogICAgICBBQ19TRUFSQ0hfTElCUyhTU0xfbmV3LCBb c3NsZWF5MzIgc3NsXSwgW10sIFtBQ19NU0dfRVJST1IoW2xpYnJhcnkgJ3NzbGVheTMyJyBv ciAnc3NsJyBpcyByZXF1aXJlZCBmb3IgT3BlblNTTF0pXSkKICAgZmkKLSAgIyBGdW5jdGlv biBpbnRyb2R1Y2VkIGluIE9wZW5TU0wgMS4wLjIuCi0gIEFDX0NIRUNLX0ZVTkNTKFtYNTA5 X2dldF9zaWduYXR1cmVfbmlkXSkKKyAgIyBGdW5jdGlvbnMgaW50cm9kdWNlZCBpbiBPcGVu U1NMIDEuMC4yLiBMaWJyZVNTTCBkb2Vzbid0IGhhdmUgYWxsIG9mIHRoZXNlLgorICBBQ19D SEVDS19GVU5DUyhbWDUwOV9nZXRfc2lnbmF0dXJlX25pZCBTU0xfQ1RYX3NldF9jZXJ0X2Ni XSkKICAgIyBGdW5jdGlvbnMgaW50cm9kdWNlZCBpbiBPcGVuU1NMIDEuMS4wLiBXZSB1c2Vk IHRvIGNoZWNrIGZvcgogICAjIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIsIGJ1dCB0aGF0IGRp ZG4ndCB3b3JrIHdpdGggMS4xLjAsIGJlY2F1c2UgTGlicmVTU0wKICAgIyBkZWZpbmVzIE9Q RU5TU0xfVkVSU0lPTl9OVU1CRVIgdG8gY2xhaW0gdmVyc2lvbiAyLjAuMCwgZXZlbiB0aG91 Z2ggaXQKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sIGIvZG9jL3NyYy9z Z21sL2xpYnBxLnNnbWwKaW5kZXggMDVkOTY0NWY0MC4uYzA2YjA3MThjZiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNn bWwKQEAgLTE4MTAsNiArMTgxMCw1MCBAQCBwb3N0Z3Jlc3FsOi8vJTJGdmFyJTJGbGliJTJG cG9zdGdyZXNxbC9kYm5hbWUKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVu dHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLWNvbm5lY3Qtc3NsY2VydG1v ZGUiIHhyZWZsYWJlbD0ic3NsY2VydG1vZGUiPgorICAgICAgPHRlcm0+PGxpdGVyYWw+c3Ns Y2VydG1vZGU8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBUaGlzIG9wdGlvbiBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjbGllbnQg Y2VydGlmaWNhdGUgbWF5IGJlIHNlbnQgdG8gdGhlCisgICAgICAgIHNlcnZlciwgYW5kIHdo ZXRoZXIgdGhlIHNlcnZlciBpcyByZXF1aXJlZCB0byByZXF1ZXN0IG9uZS4gVGhlcmUgYXJl CisgICAgICAgIHRocmVlIG1vZGVzOgorCisgICAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAg ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmRpc2FibGU8 L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBh cmE+CisgICAgICAgICAgICBhIGNsaWVudCBjZXJ0aWZpY2F0ZSBpcyBuZXZlciBzZW50LCBl dmVuIGlmIG9uZSBpcyBwcm92aWRlZCB2aWEKKyAgICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9 ImxpYnBxLWNvbm5lY3Qtc3NsY2VydCIgLz4KKyAgICAgICAgICAgPC9wYXJhPgorICAgICAg ICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD5hbGxvdzwvbGl0ZXJh bD4gKGRlZmF1bHQpPC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAg PHBhcmE+CisgICAgICAgICAgICBhIGNlcnRpZmljYXRlIG1heSBiZSBzZW50LCBpZiB0aGUg c2VydmVyIHJlcXVlc3RzIG9uZSBhbmQgaXQgaGFzCisgICAgICAgICAgICBiZWVuIHByb3Zp ZGVkIHZpYSA8bGl0ZXJhbD5zc2xjZXJ0PC9saXRlcmFsPgorICAgICAgICAgICA8L3BhcmE+ CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisg ICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPnJlcXVp cmU8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAg PHBhcmE+CisgICAgICAgICAgICB0aGUgc2VydmVyIDxlbXBoYXNpcz5tdXN0PC9lbXBoYXNp cz4gcmVxdWVzdCBhIGNlcnRpZmljYXRlLiBUaGUKKyAgICAgICAgICAgIGNvbm5lY3Rpb24g d2lsbCBmYWlsIGlmIHRoZSBzZXJ2ZXIgYXV0aGVudGljYXRlcyB0aGUgY2xpZW50IGRlc3Bp dGUKKyAgICAgICAgICAgIG5vdCByZXF1ZXN0aW5nIG9yIHJlY2VpdmluZyBvbmUuCisgICAg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgICAgIDwvcGFyYT4KKyAg ICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0 ZW50cnkgaWQ9ImxpYnBxLWNvbm5lY3Qtc3Nscm9vdGNlcnQiIHhyZWZsYWJlbD0ic3Nscm9v dGNlcnQiPgogICAgICAgPHRlcm0+PGxpdGVyYWw+c3Nscm9vdGNlcnQ8L2xpdGVyYWw+PC90 ZXJtPgogICAgICAgPGxpc3RpdGVtPgpAQCAtNzk4NSw2ICs4MDI5LDE2IEBAIG15RXZlbnRQ cm9jKFBHRXZlbnRJZCBldnRJZCwgdm9pZCAqZXZ0SW5mbywgdm9pZCAqcGFzc1Rocm91Z2gp CiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogCisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+PGVudmFyPlBH U1NMQ0VSVE1PREU8L2VudmFyPjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAg ICAgPGVudmFyPlBHU1NMQ0VSVE1PREU8L2VudmFyPiBiZWhhdmVzIHRoZSBzYW1lIGFzIHRo ZSA8eHJlZgorICAgICAgbGlua2VuZD0ibGlicHEtY29ubmVjdC1zc2xjZXJ0bW9kZSIvPiBj b25uZWN0aW9uIHBhcmFtZXRlci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisK ICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgPGluZGV4dGVybT4KZGlmZiAt LWdpdCBhL21lc29uLmJ1aWxkIGIvbWVzb24uYnVpbGQKaW5kZXggOTI1ZGI3MGM5ZC4uYmFk MDM1YzhlMyAxMDA2NDQKLS0tIGEvbWVzb24uYnVpbGQKKysrIGIvbWVzb24uYnVpbGQKQEAg LTExNzMsOCArMTE3Myw5IEBAIGlmIGdldF9vcHRpb24oJ3NzbCcpID09ICdvcGVuc3NsJwog ICAgIFsnQ1JZUFRPX25ld19leF9kYXRhJywgeydyZXF1aXJlZCc6IHRydWV9XSwKICAgICBb J1NTTF9uZXcnLCB7J3JlcXVpcmVkJzogdHJ1ZX1dLAogCi0gICAgIyBGdW5jdGlvbiBpbnRy b2R1Y2VkIGluIE9wZW5TU0wgMS4wLjIuCisgICAgIyBGdW5jdGlvbnMgaW50cm9kdWNlZCBp biBPcGVuU1NMIDEuMC4yLiBMaWJyZVNTTCBkb2Vzbid0IGhhdmUgYWxsIG9mIHRoZXNlLgog ICAgIFsnWDUwOV9nZXRfc2lnbmF0dXJlX25pZCddLAorICAgIFsnU1NMX0NUWF9zZXRfY2Vy dF9jYiddLAogCiAgICAgIyBGdW5jdGlvbnMgaW50cm9kdWNlZCBpbiBPcGVuU1NMIDEuMS4w LiBXZSB1c2VkIHRvIGNoZWNrIGZvcgogICAgICMgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiwg YnV0IHRoYXQgZGlkbid0IHdvcmsgd2l0aCAxLjEuMCwgYmVjYXVzZSBMaWJyZVNTTApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4gYi9zcmMvaW5jbHVkZS9wZ19j b25maWcuaC5pbgppbmRleCBjNWE4MGI4MjllLi4wODM4MmU4NjhiIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbgorKysgYi9zcmMvaW5jbHVkZS9wZ19jb25maWcu aC5pbgpAQCAtMzk3LDYgKzM5Nyw5IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBz cGlubG9ja3MuICovCiAjdW5kZWYgSEFWRV9TUElOTE9DS1MKIAorLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIGBTU0xfQ1RYX3NldF9jZXJ0X2NiJyBmdW5jdGlvbi4gKi8KKyN1 bmRlZiBIQVZFX1NTTF9DVFhfU0VUX0NFUlRfQ0IKKwogLyogRGVmaW5lIHRvIDEgaWYgc3Rk Ym9vbC5oIGNvbmZvcm1zIHRvIEM5OS4gKi8KICN1bmRlZiBIQVZFX1NUREJPT0xfSAogCmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLmMgYi9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1hdXRoLmMKaW5kZXggNWE0NmNmMGVlOS4uMjk1Yjk3ODUyNSAxMDA2 NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC5jCisrKyBiL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLWF1dGguYwpAQCAtODg1LDYgKzg4NSwyNyBAQCBjaGVja19leHBl Y3RlZF9hcmVxKEF1dGhSZXF1ZXN0IGFyZXEsIFBHY29ubiAqY29ubikKIAlib29sCQlyZXN1 bHQgPSB0cnVlOwogCWNvbnN0IGNoYXIgKnJlYXNvbiA9IE5VTEw7CiAKKwlpZiAoY29ubi0+ c3NsY2VydG1vZGVbMF0gPT0gJ3InIC8qIHJlcXVpcmUgKi8KKwkJJiYgYXJlcSA9PSBBVVRI X1JFUV9PSykKKwl7CisJCS8qCisJCSAqIFRyYWRlIG9mZiBhIGxpdHRsZSBiaXQgb2YgY29t cGxleGl0eSB0byB0cnkgdG8gZ2V0IHRoZXNlIGVycm9yCisJCSAqIG1lc3NhZ2VzIGFzIHBy ZWNpc2UgYXMgcG9zc2libGUuCisJCSAqLworCQlpZiAoIWNvbm4tPnNzbF9jZXJ0X3JlcXVl c3RlZCkKKwkJeworCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmNvbm4tPmVycm9yTWVzc2Fn ZSwKKwkJCQkJCQkJIGxpYnBxX2dldHRleHQoInNlcnZlciBkaWQgbm90IHJlcXVlc3QgYSBj ZXJ0aWZpY2F0ZSIpKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQllbHNlIGlmICghY29u bi0+c3NsX2NlcnRfc2VudCkKKwkJeworCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmNvbm4t PmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJIGxpYnBxX2dldHRleHQoInNlcnZlciBhY2NlcHRl ZCBjb25uZWN0aW9uIHdpdGhvdXQgYSB2YWxpZCBjZXJ0aWZpY2F0ZSIpKTsKKwkJCXJldHVy biBmYWxzZTsKKwkJfQorCX0KKwogCS8qCiAJICogSWYgdGhlIHVzZXIgcmVxdWlyZWQgYSBz cGVjaWZpYyBhdXRoIG1ldGhvZCwgb3Igc3BlY2lmaWVkIGFuIGFsbG93ZWQgc2V0LAogCSAq IHRoZW4gcmVqZWN0IGFsbCBvdGhlcnMgaGVyZSwgYW5kIG1ha2Ugc3VyZSB0aGUgc2VydmVy IGFjdHVhbGx5IGNvbXBsZXRlcwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtY29ubmVjdC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCmluZGV4 IDQwZjU3MWZhZGIuLmVhY2E4Y2VlMWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWNvbm5lY3QuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0 LmMKQEAgLTEyNSw4ICsxMjUsMTAgQEAgc3RhdGljIGludAlsZGFwU2VydmljZUxvb2t1cChj b25zdCBjaGFyICpwdXJsLCBQUWNvbm5pbmZvT3B0aW9uICpvcHRpb25zLAogI2RlZmluZSBE ZWZhdWx0VGFyZ2V0U2Vzc2lvbkF0dHJzCSJhbnkiCiAjaWZkZWYgVVNFX1NTTAogI2RlZmlu ZSBEZWZhdWx0U1NMTW9kZSAicHJlZmVyIgorI2RlZmluZSBEZWZhdWx0U1NMQ2VydE1vZGUg ImFsbG93IgogI2Vsc2UKICNkZWZpbmUgRGVmYXVsdFNTTE1vZGUJImRpc2FibGUiCisjZGVm aW5lIERlZmF1bHRTU0xDZXJ0TW9kZSAiZGlzYWJsZSIKICNlbmRpZgogI2lmZGVmIEVOQUJM RV9HU1MKICNpbmNsdWRlICJmZS1nc3NhcGktY29tbW9uLmgiCkBAIC0yODMsNiArMjg1LDEw IEBAIHN0YXRpYyBjb25zdCBpbnRlcm5hbFBRY29ubmluZm9PcHRpb24gUFFjb25uaW5mb09w dGlvbnNbXSA9IHsKIAkJIlNTTC1DbGllbnQtS2V5IiwgIiIsIDY0LAogCW9mZnNldG9mKHN0 cnVjdCBwZ19jb25uLCBzc2xrZXkpfSwKIAorCXsic3NsY2VydG1vZGUiLCAiUEdTU0xDRVJU TU9ERSIsIE5VTEwsIE5VTEwsCisJCSJTU0wtQ2xpZW50LUNlcnQtTW9kZSIsICIiLCA4LCAv KiBzaXplb2YoImRpc2FibGUiKSA9PSA4ICovCisJb2Zmc2V0b2Yoc3RydWN0IHBnX2Nvbm4s IHNzbGNlcnRtb2RlKX0sCisKIAl7InNzbHBhc3N3b3JkIiwgTlVMTCwgTlVMTCwgTlVMTCwK IAkJIlNTTC1DbGllbnQtS2V5LVBhc3N3b3JkIiwgIioiLCAyMCwKIAlvZmZzZXRvZihzdHJ1 Y3QgcGdfY29ubiwgc3NscGFzc3dvcmQpfSwKQEAgLTE1MTQsNiArMTUyMCw1NSBAQCBkdXBs aWNhdGU6CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKKwkvKgorCSAqIHZhbGlkYXRlIHNzbGNl cnRtb2RlIG9wdGlvbgorCSAqLworCWlmIChjb25uLT5zc2xjZXJ0bW9kZSkKKwl7CisJCWlm IChzdHJjbXAoY29ubi0+c3NsY2VydG1vZGUsICJkaXNhYmxlIikgIT0gMCAmJgorCQkJc3Ry Y21wKGNvbm4tPnNzbGNlcnRtb2RlLCAiYWxsb3ciKSAhPSAwICYmCisJCQlzdHJjbXAoY29u bi0+c3NsY2VydG1vZGUsICJyZXF1aXJlIikgIT0gMCkKKwkJeworCQkJY29ubi0+c3RhdHVz ID0gQ09OTkVDVElPTl9CQUQ7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JN ZXNzYWdlLAorCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiaW52YWxpZCAlcyB2YWx1ZTogXCIl c1wiXG4iKSwKKwkJCQkJCQkgICJzc2xjZXJ0bW9kZSIsCisJCQkJCQkJICBjb25uLT5zc2xj ZXJ0bW9kZSk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKyNpZm5kZWYgVVNFX1NTTAorCQlp ZiAoc3RyY21wKGNvbm4tPnNzbGNlcnRtb2RlLCAicmVxdWlyZSIpID09IDApCisJCXsKKwkJ CWNvbm4tPnN0YXR1cyA9IENPTk5FQ1RJT05fQkFEOworCQkJYXBwZW5kUFFFeHBCdWZmZXIo JmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkgIGxpYnBxX2dldHRleHQoInNzbGNlcnRt b2RlIHZhbHVlIFwiJXNcIiBpbnZhbGlkIHdoZW4gU1NMIHN1cHBvcnQgaXMgbm90IGNvbXBp bGVkIGluXG4iKSwKKwkJCQkJCQkgIGNvbm4tPnNzbGNlcnRtb2RlKTsKKwkJCXJldHVybiBm YWxzZTsKKwkJfQorI2VuZGlmCisjaWZuZGVmIEhBVkVfU1NMX0NUWF9TRVRfQ0VSVF9DQgor CQkvKgorCQkgKiBXaXRob3V0IGEgY2VydGlmaWNhdGUgY2FsbGJhY2ssIHRoZSBjdXJyZW50 IGltcGxlbWVudGF0aW9uIGNhbid0CisJCSAqIGZpZ3VyZSBvdXQgaWYgYSBjZXJ0ZmljYXRl IHdhcyBhY3R1YWxseSByZXF1ZXN0ZWQsIHNvICJyZXF1aXJlIiBpcworCQkgKiB1c2VsZXNz LgorCQkgKi8KKwkJaWYgKHN0cmNtcChjb25uLT5zc2xjZXJ0bW9kZSwgInJlcXVpcmUiKSA9 PSAwKQorCQl7CisJCQljb25uLT5zdGF0dXMgPSBDT05ORUNUSU9OX0JBRDsKKwkJCWFwcGVu ZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJICBsaWJwcV9nZXR0 ZXh0KCJzc2xjZXJ0bW9kZSB2YWx1ZSBcIiVzXCIgaXMgbm90IHN1cHBvcnRlZCAoY2hlY2sg T3BlblNTTCB2ZXJzaW9uKVxuIiksCisJCQkJCQkJICBjb25uLT5zc2xjZXJ0bW9kZSk7CisJ CQlyZXR1cm4gZmFsc2U7CisJCX0KKyNlbmRpZgorCX0KKwllbHNlCisJeworCQljb25uLT5z c2xjZXJ0bW9kZSA9IHN0cmR1cChEZWZhdWx0U1NMQ2VydE1vZGUpOworCQlpZiAoIWNvbm4t PnNzbGNlcnRtb2RlKQorCQkJZ290byBvb21fZXJyb3I7CisJfQorCiAJLyoKIAkgKiB2YWxp ZGF0ZSBnc3NlbmNtb2RlIG9wdGlvbgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtc2VjdXJlLW9wZW5zc2wuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2Zl LXNlY3VyZS1vcGVuc3NsLmMKaW5kZXggYjQyYTkwODczMy4uMDRmYTAyYWY5NCAxMDA2NDQK LS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtc2VjdXJlLW9wZW5zc2wuYworKysgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1zZWN1cmUtb3BlbnNzbC5jCkBAIC00NzUsNiArNDc1 LDMzIEBAIHZlcmlmeV9jYihpbnQgb2ssIFg1MDlfU1RPUkVfQ1RYICpjdHgpCiAJcmV0dXJu IG9rOwogfQogCisjaWZkZWYgSEFWRV9TU0xfQ1RYX1NFVF9DRVJUX0NCCisvKgorICogQ2Vy dGlmaWNhdGUgc2VsZWN0aW9uIGNhbGxiYWNrCisgKgorICogVGhpcyBjYWxsYmFjayBsZXRz IHVzIGNob29zZSB0aGUgY2xpZW50IGNlcnRpZmljYXRlIHdlIHNlbmQgdG8gdGhlIHNlcnZl cgorICogYWZ0ZXIgc2VlaW5nIGl0cyBDZXJ0aWZpY2F0ZVJlcXVlc3QuIFdlIG9ubHkgc3Vw cG9ydCBzZW5kaW5nIGEgc2luZ2xlCisgKiBoYXJkLWNvZGVkIGNlcnRpZmljYXRlIHZpYSBz c2xjZXJ0LCBzbyB3ZSBkb24ndCBhY3R1YWxseSBzZXQgYW55IGNlcnRpZmljYXRlcworICog aGVyZTsgd2UganVzdCBpdCB0byByZWNvcmQgd2hldGhlciBvciBub3QgdGhlIHNlcnZlciBo YXMgYWN0dWFsbHkgYXNrZWQgZm9yCisgKiBvbmUgYW5kIHdoZXRoZXIgd2UgaGF2ZSBvbmUg dG8gc2VuZC4KKyAqLworc3RhdGljIGludAorY2VydF9jYihTU0wgKnNzbCwgdm9pZCAqYXJn KQoreworCVBHY29ubiAqY29ubiA9IGFyZzsKKwljb25uLT5zc2xfY2VydF9yZXF1ZXN0ZWQg PSB0cnVlOworCisJLyogRG8gd2UgaGF2ZSBhIGNlcnRpZmljYXRlIGxvYWRlZCB0byBzZW5k IGJhY2s/ICovCisJaWYgKFNTTF9nZXRfY2VydGlmaWNhdGUoc3NsKSkKKwkJY29ubi0+c3Ns X2NlcnRfc2VudCA9IHRydWU7CisKKwkvKgorCSAqIFRlbGwgT3BlblNTTCB0aGF0IHRoZSBj YWxsYmFjayBzdWNjZWVkZWQ7IHdlJ3JlIG5vdCByZXF1aXJlZCB0byBhY3R1YWxseQorCSAq IG1ha2UgYW55IGNoYW5nZXMgdG8gdGhlIFNTTCBoYW5kbGUuCisJICovCisJcmV0dXJuIDE7 Cit9CisjZW5kaWYKIAogLyoKICAqIE9wZW5TU0wtc3BlY2lmaWMgd3JhcHBlciBhcm91bmQK QEAgLTk3MCw2ICs5OTcsMTEgQEAgaW5pdGlhbGl6ZV9TU0woUEdjb25uICpjb25uKQogCQlT U0xfQ1RYX3NldF9kZWZhdWx0X3Bhc3N3ZF9jYl91c2VyZGF0YShTU0xfY29udGV4dCwgY29u bik7CiAJfQogCisjaWZkZWYgSEFWRV9TU0xfQ1RYX1NFVF9DRVJUX0NCCisJLyogU2V0IHVw IGEgY2VydGlmaWNhdGUgc2VsZWN0aW9uIGNhbGxiYWNrLiAqLworCVNTTF9DVFhfc2V0X2Nl cnRfY2IoU1NMX2NvbnRleHQsIGNlcnRfY2IsIGNvbm4pOworI2VuZGlmCisKIAkvKiBEaXNh YmxlIG9sZCBwcm90b2NvbCB2ZXJzaW9ucyAqLwogCVNTTF9DVFhfc2V0X29wdGlvbnMoU1NM X2NvbnRleHQsIFNTTF9PUF9OT19TU0x2MiB8IFNTTF9PUF9OT19TU0x2Myk7CiAKQEAgLTEx MzMsNyArMTE2NSwxMiBAQCBpbml0aWFsaXplX1NTTChQR2Nvbm4gKmNvbm4pCiAJZWxzZQog CQlmbmJ1ZlswXSA9ICdcMCc7CiAKLQlpZiAoZm5idWZbMF0gPT0gJ1wwJykKKwlpZiAoY29u bi0+c3NsY2VydG1vZGVbMF0gPT0gJ2QnKSAvKiBkaXNhYmxlICovCisJeworCQkvKiBkb24n dCBzZW5kIGEgY2xpZW50IGNlcnQgZXZlbiBpZiB3ZSBoYXZlIG9uZSAqLworCQloYXZlX2Nl cnQgPSBmYWxzZTsKKwl9CisJZWxzZSBpZiAoZm5idWZbMF0gPT0gJ1wwJykKIAl7CiAJCS8q IG5vIGhvbWUgZGlyZWN0b3J5LCBwcm9jZWVkIHdpdGhvdXQgYSBjbGllbnQgY2VydCAqLwog CQloYXZlX2NlcnQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBx L2xpYnBxLWludC5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKaW5kZXgg ZTRkODhlMjJhMS4uYWQ2ZjhiNzhjNiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGli cHEvbGlicHEtaW50LmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgK QEAgLTM4NCw2ICszODQsNyBAQCBzdHJ1Y3QgcGdfY29ubgogCWNoYXIJICAgKnNzbGtleTsJ CQkvKiBjbGllbnQga2V5IGZpbGVuYW1lICovCiAJY2hhcgkgICAqc3NsY2VydDsJCS8qIGNs aWVudCBjZXJ0aWZpY2F0ZSBmaWxlbmFtZSAqLwogCWNoYXIJICAgKnNzbHBhc3N3b3JkOwkv KiBjbGllbnQga2V5IGZpbGUgcGFzc3dvcmQgKi8KKwljaGFyCSAgICpzc2xjZXJ0bW9kZTsJ LyogY2xpZW50IGNlcnQgbW9kZSAocmVxdWlyZSxhbGxvdyxkaXNhYmxlKSAqLwogCWNoYXIJ ICAgKnNzbHJvb3RjZXJ0OwkvKiByb290IGNlcnRpZmljYXRlIGZpbGVuYW1lICovCiAJY2hh cgkgICAqc3NsY3JsOwkJCS8qIGNlcnRpZmljYXRlIHJldm9jYXRpb24gbGlzdCBmaWxlbmFt ZSAqLwogCWNoYXIJICAgKnNzbGNybGRpcjsJCS8qIGNlcnRpZmljYXRlIHJldm9jYXRpb24g bGlzdCBkaXJlY3RvcnkgbmFtZSAqLwpAQCAtNTI1LDYgKzUyNiw4IEBAIHN0cnVjdCBwZ19j b25uCiAKIAkvKiBTU0wgc3RydWN0dXJlcyAqLwogCWJvb2wJCXNzbF9pbl91c2U7CisJYm9v bAkJc3NsX2NlcnRfcmVxdWVzdGVkOwkvKiBEaWQgdGhlIHNlcnZlciBhc2sgdXMgZm9yIGEg Y2VydD8gKi8KKwlib29sCQlzc2xfY2VydF9zZW50OwkJLyogRGlkIHdlIHNlbmQgb25lIGlu IHJlcGx5PyAqLwogCiAjaWZkZWYgVVNFX1NTTAogCWJvb2wJCWFsbG93X3NzbF90cnk7CS8q IEFsbG93ZWQgdG8gdHJ5IFNTTCBuZWdvdGlhdGlvbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3Qvc3NsL3QvMDAxX3NzbHRlc3RzLnBsIGIvc3JjL3Rlc3Qvc3NsL3QvMDAxX3NzbHRlc3Rz LnBsCmluZGV4IGVmZTU2MzRmZmYuLjQ5MDAzYmExYjcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3NzbC90LzAwMV9zc2x0ZXN0cy5wbAorKysgYi9zcmMvdGVzdC9zc2wvdC8wMDFfc3NsdGVz dHMucGwKQEAgLTQyLDYgKzQyLDEwIEBAIG15ICRTRVJWRVJIT1NUQUREUiA9ICcxMjcuMC4w LjEnOwogIyBUaGlzIGlzIHRoZSBwYXR0ZXJuIHRvIHVzZSBpbiBwZ19oYmEuY29uZiB0byBt YXRjaCBpbmNvbWluZyBjb25uZWN0aW9ucy4KIG15ICRTRVJWRVJIT1NUQ0lEUiA9ICcxMjcu MC4wLjEvMzInOwogCisjIERldGVybWluZSB3aGV0aGVyIGJ1aWxkIHN1cHBvcnRzIHNzbGNl cnRtb2RlPXJlcXVpcmUuCitteSAkc3VwcG9ydHNfc3NsY2VydG1vZGVfcmVxdWlyZSA9Cisg IGNoZWNrX3BnX2NvbmZpZygiI2RlZmluZSBIQVZFX1NTTF9DVFhfU0VUX0NFUlRfQ0IgMSIp OworCiAjIEFsbG9jYXRpb24gb2YgYmFzZSBjb25uZWN0aW9uIHN0cmluZyBzaGFyZWQgYW1v bmcgbXVsdGlwbGUgdGVzdHMuCiBteSAkY29tbW9uX2Nvbm5zdHI7CiAKQEAgLTE5MSw2ICsx OTUsMjIgQEAgJG5vZGUtPmNvbm5lY3Rfb2soCiAJIiRjb21tb25fY29ubnN0ciBzc2xyb290 Y2VydD1zc2wvYm90aC1jYXMtMi5jcnQgc3NsbW9kZT12ZXJpZnktY2EiLAogCSJjZXJ0IHJv b3QgZmlsZSB0aGF0IGNvbnRhaW5zIHR3byBjZXJ0aWZpY2F0ZXMsIG9yZGVyIDIiKTsKIAor IyBzc2xjZXJ0bW9kZT1hbGxvdyBhbmQgPWRpc2FibGUgc2hvdWxkIGJvdGggd29yayB3aXRo b3V0IGEgY2xpZW50IGNlcnRpZmljYXRlLgorJG5vZGUtPmNvbm5lY3Rfb2soCisJIiRjb21t b25fY29ubnN0ciBzc2xyb290Y2VydD1zc2wvcm9vdCtzZXJ2ZXJfY2EuY3J0IHNzbG1vZGU9 cmVxdWlyZSBzc2xjZXJ0bW9kZT1kaXNhYmxlIiwKKwkiY29ubmVjdCB3aXRoIHNzbGNlcnRt b2RlPWRpc2FibGUiKTsKKyRub2RlLT5jb25uZWN0X29rKAorCSIkY29tbW9uX2Nvbm5zdHIg c3Nscm9vdGNlcnQ9c3NsL3Jvb3Qrc2VydmVyX2NhLmNydCBzc2xtb2RlPXJlcXVpcmUgc3Ns Y2VydG1vZGU9YWxsb3ciLAorCSJjb25uZWN0IHdpdGggc3NsY2VydG1vZGU9YWxsb3ciKTsK KworIyBzc2xjZXJ0bW9kZT1yZXF1aXJlLCBob3dldmVyLCBzaG91bGQgZmFpbC4KKyRub2Rl LT5jb25uZWN0X2ZhaWxzKAorCSIkY29tbW9uX2Nvbm5zdHIgc3Nscm9vdGNlcnQ9c3NsL3Jv b3Qrc2VydmVyX2NhLmNydCBzc2xtb2RlPXJlcXVpcmUgc3NsY2VydG1vZGU9cmVxdWlyZSIs CisJImNvbm5lY3Qgd2l0aCBzc2xjZXJ0bW9kZT1yZXF1aXJlIGZhaWxzIHdpdGhvdXQgYSBj bGllbnQgY2VydGlmaWNhdGUiLAorCWV4cGVjdGVkX3N0ZGVyciA9PiAkc3VwcG9ydHNfc3Ns Y2VydG1vZGVfcmVxdWlyZQorCQk/IHFyL3NlcnZlciBhY2NlcHRlZCBjb25uZWN0aW9uIHdp dGhvdXQgYSB2YWxpZCBjZXJ0aWZpY2F0ZS8KKwkJOiBxci9zc2xjZXJ0bW9kZSB2YWx1ZSAi cmVxdWlyZSIgaXMgbm90IHN1cHBvcnRlZC8pOworCiAjIENSTCB0ZXN0cwogCiAjIEludmFs aWQgQ1JMIGZpbGVuYW1lIGlzIHRoZSBzYW1lIGFzIG5vIENSTCwgc3VjY2VlZHMKQEAgLTUz OCw2ICs1NTgsMjkgQEAgJG5vZGUtPmNvbm5lY3Rfb2soCiAJImNlcnRpZmljYXRlIGF1dGhv cml6YXRpb24gc3VjY2VlZHMgd2l0aCBjb3JyZWN0IGNsaWVudCBjZXJ0IGluIGVuY3J5cHRl ZCBERVIgZm9ybWF0IgogKTsKIAorIyBjb3JyZWN0IGNsaWVudCBjZXJ0IHdpdGggcmVxdWly ZWQvYWxsb3dlZCBjZXJ0aWZpY2F0ZSBhdXRoZW50aWNhdGlvbgoraWYgKCRzdXBwb3J0c19z c2xjZXJ0bW9kZV9yZXF1aXJlKQoreworCSRub2RlLT5jb25uZWN0X29rKAorCQkiJGNvbW1v bl9jb25uc3RyIHVzZXI9c3NsdGVzdHVzZXIgc3NsY2VydG1vZGU9cmVxdWlyZSBzc2xjZXJ0 PXNzbC9jbGllbnQuY3J0ICIKKwkJICAuIHNzbGtleSgnY2xpZW50LmtleScpLAorCQkiY2Vy dGlmaWNhdGUgYXV0aG9yaXphdGlvbiBzdWNjZWVkcyB3aXRoIHNzbGNlcnRtb2RlPXJlcXVp cmUiCisJKTsKK30KKyRub2RlLT5jb25uZWN0X29rKAorCSIkY29tbW9uX2Nvbm5zdHIgdXNl cj1zc2x0ZXN0dXNlciBzc2xjZXJ0bW9kZT1hbGxvdyBzc2xjZXJ0PXNzbC9jbGllbnQuY3J0 ICIKKwkgIC4gc3Nsa2V5KCdjbGllbnQua2V5JyksCisJImNlcnRpZmljYXRlIGF1dGhvcml6 YXRpb24gc3VjY2VlZHMgd2l0aCBzc2xjZXJ0bW9kZT1hbGxvdyIKKyk7CisKKyMgY2xpZW50 IGNlcnQgaXNuJ3Qgc2VudCBpZiBjZXJ0aWZpY2F0ZSBhdXRoZW50aWNhdGlvbiBpcyBkaXNh YmxlZAorJG5vZGUtPmNvbm5lY3RfZmFpbHMoCisJIiRjb21tb25fY29ubnN0ciB1c2VyPXNz bHRlc3R1c2VyIHNzbGNlcnRtb2RlPWRpc2FibGUgc3NsY2VydD1zc2wvY2xpZW50LmNydCAi CisJICAuIHNzbGtleSgnY2xpZW50LmtleScpLAorCSJjZXJ0aWZpY2F0ZSBhdXRob3JpemF0 aW9uIGZhaWxzIHdpdGggc3NsY2VydG1vZGU9ZGlzYWJsZSIsCisJZXhwZWN0ZWRfc3RkZXJy ID0+IHFyL2Nvbm5lY3Rpb24gcmVxdWlyZXMgYSB2YWxpZCBjbGllbnQgY2VydGlmaWNhdGUv CispOworCiAjIGNvcnJlY3QgY2xpZW50IGNlcnQgaW4gZW5jcnlwdGVkIFBFTSB3aXRoIHdy b25nIHBhc3N3b3JkCiAkbm9kZS0+Y29ubmVjdF9mYWlscygKIAkiJGNvbW1vbl9jb25uc3Ry IHVzZXI9c3NsdGVzdHVzZXIgc3NsY2VydD1zc2wvY2xpZW50LmNydCAiCmRpZmYgLS1naXQg YS9zcmMvdG9vbHMvbXN2Yy9Tb2x1dGlvbi5wbSBiL3NyYy90b29scy9tc3ZjL1NvbHV0aW9u LnBtCmluZGV4IGMyYWNiNThkZjAuLmZmNmQ2ZjllMzUgMTAwNjQ0Ci0tLSBhL3NyYy90b29s cy9tc3ZjL1NvbHV0aW9uLnBtCisrKyBiL3NyYy90b29scy9tc3ZjL1NvbHV0aW9uLnBtCkBA IC0zMjgsNiArMzI4LDcgQEAgc3ViIEdlbmVyYXRlRmlsZXMKIAkJSEFWRV9TRVRQUk9DVElU TEVfRkFTVCAgICAgICAgICAgICAgICAgICA9PiB1bmRlZiwKIAkJSEFWRV9TT0NLTEVOX1Qg ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogCQlIQVZFX1NQSU5MT0NLUyAgICAg ICAgICAgICAgICAgICAgICAgICAgID0+IDEsCisJCUhBVkVfU1NMX0NUWF9TRVRfQ0VSVF9D QiAgICAgICAgICAgICAgICAgPT4gdW5kZWYsCiAJCUhBVkVfU1REQk9PTF9IICAgICAgICAg ICAgICAgICAgICAgICAgICAgPT4gMSwKIAkJSEFWRV9TVERJTlRfSCAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9PiAxLAogCQlIQVZFX1NURExJQl9IICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0+IDEsCkBAIC00ODksNiArNDkwLDEzIEBAIHN1YiBHZW5lcmF0ZUZpbGVz CiAKIAkJbXkgKCRkaWdpdDEsICRkaWdpdDIsICRkaWdpdDMpID0gJHNlbGYtPkdldE9wZW5T U0xWZXJzaW9uKCk7CiAKKwkJaWYgKCAgICgkZGlnaXQxID49ICczJyAmJiAkZGlnaXQyID49 ICcwJyAmJiAkZGlnaXQzID49ICcwJykKKwkJCXx8ICgkZGlnaXQxID49ICcxJyAmJiAkZGln aXQyID49ICcxJyAmJiAkZGlnaXQzID49ICcwJykKKwkJCXx8ICgkZGlnaXQxID49ICcxJyAm JiAkZGlnaXQyID49ICcwJyAmJiAkZGlnaXQzID49ICcyJykpCisJCXsKKwkJCSRkZWZpbmV7 SEFWRV9TU0xfQ1RYX1NFVF9DRVJUX0NCfSA9IDE7CisJCX0KKwogCQkjIE1vcmUgc3ltYm9s cyBhcmUgbmVlZGVkIHdpdGggT3BlblNTTCAxLjEuMCBhbmQgYWJvdmUuCiAJCWlmICggICAo JGRpZ2l0MSA+PSAnMycgJiYgJGRpZ2l0MiA+PSAnMCcgJiYgJGRpZ2l0MyA+PSAnMCcpCiAJ CQl8fCAoJGRpZ2l0MSA+PSAnMScgJiYgJGRpZ2l0MiA+PSAnMScgJiYgJGRpZ2l0MyA+PSAn MCcpKQotLSAKMi4yNS4xCgo= --------------SCKnrpjZ8F0HlUONwDdA2KBD--