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 1ote7D-0003Xi-EL for pgsql-hackers@arkaria.postgresql.org; Sat, 12 Nov 2022 00:11:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ote7B-0004xh-7d for pgsql-hackers@arkaria.postgresql.org; Sat, 12 Nov 2022 00:11:17 +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 1ote7A-0004xX-F4 for pgsql-hackers@lists.postgresql.org; Sat, 12 Nov 2022 00:11:16 +0000 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1ote75-0002K2-19 for pgsql-hackers@postgresql.org; Sat, 12 Nov 2022 00:11:15 +0000 Received: by mail-pl1-x633.google.com with SMTP id b21so5437669plc.9 for ; Fri, 11 Nov 2022 16:11:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=timescale.com; s=google; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=Y3R9W/Z/uNS+V0e4t+gFIHMzVZcSy9fzZW2ITVqAXfQ=; b=X5GM8KsUZZczMdS/szpMtxRbdGHibuiQDyGtijUu+ask5OawXd4fiW+Q3GQLmXX3pF TASQIsKuaVqxYODd1lj+kKC6bpff19TMTIbL6IeVkIOrz10lmu3gLAutLByaAfqvA22Z 6h2rhROZY8Aagmr3euUnUMZEmyifGess6+QiknLgln5ovlvWvO6rk2TTvv2M+ALwOniV MQZWgaxmE0nzgN+Lqym2ziOC0NwvX+mqcx5S7TaRHdREPZ0tClBMkIEueQKfFcXCXU3l T6GCDRutoKxdOnQacS6IapVFAZRzjR8wVXbrdNTpPsxH27qVx4Iymky0z3ehqa5LVHW2 3SuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Y3R9W/Z/uNS+V0e4t+gFIHMzVZcSy9fzZW2ITVqAXfQ=; b=lbh4wyX5YxTrv189+TewWaShsu/O4I8TxeurbkEYxneojvPF7sN3d9fRJ8f824TDQd KpP5wG4bQeee8VNN21GU7l4kMPreE0ZRT37zH6UbWv0VHM5G3frcbdFkQsdTLs9jNuU6 2e73GsPw4rvwv9IFc9a6IxugPetg2Mo1f6pDhxOribMsmwOdDNmHeddsxgUSmIrhwh3k 1tyc6uS86eSafhLQ7ggNFQTNmfMzXsZ/Wwll3vjmpbgEZ1+tdcO3jbxZx7J/yPP2l7PO TcRjY7t+RDyvmOJpHB807rQK++AxKnw3kS1bveJ3pwcKtdFXHmDhpMXnTpwmyuao4gGB u2IA== X-Gm-Message-State: ANoB5pl8HOZpYmZnj/cUrdAaIPhoQ60+uVi8umebPiWB5W8xtJt3YzJA K+sk/uxqCzXJNzvO5oKouWFvtw== X-Google-Smtp-Source: AA0mqf4EQLcFOZiGKd8JP3wUVIO0QFXxe74Xi67iSqyiSTH6GiKaJTskDvQJfk2o4SNJ9Ludu4JXOg== X-Received: by 2002:a17:90a:1749:b0:20a:c64c:ae80 with SMTP id 9-20020a17090a174900b0020ac64cae80mr4466067pjm.12.1668211869523; Fri, 11 Nov 2022 16:11:09 -0800 (PST) Received: from [192.168.1.21] ([50.53.8.205]) by smtp.gmail.com with ESMTPSA id x26-20020aa79a5a000000b0056bc5ad4862sm2124925pfj.28.2022.11.11.16.11.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 11 Nov 2022 16:11:08 -0800 (PST) Content-Type: multipart/mixed; boundary="------------w7aGMidJ0MCBor7IhJ4MAi0M" Message-ID: Date: Fri, 11 Nov 2022 16:11:07 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PoC] Let libpq reject unexpected authentication requests Content-Language: en-US To: Aleksander Alekseev , "pgsql-hackers@postgresql.org" Cc: Peter Eisentraut , Michael Paquier , "David G. Johnston" References: <9e5a8ccddb8355ea9fa4b75a1e3a9edc88a70cd3.camel@vmware.com> <914a0125-3dfb-920f-51b6-8d44a8edbdd2@enterprisedb.com> <949f1c20-771c-aef7-058f-2c10885db955@enterprisedb.com> <8e2e5fb6-8225-de8a-b0f9-178c27402367@enterprisedb.com> From: Jacob Champion In-Reply-To: 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. --------------w7aGMidJ0MCBor7IhJ4MAi0M Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 11/11/22 05:52, Aleksander Alekseev wrote: > I noticed that this patchset stuck a bit so I decided to take a look. Thanks! > Assigning a negative number to uint32 doesn't necessarily work on all > platforms. I suggest using PG_UINT32_MAX. Hmm -- on which platforms is "-1 converted to unsigned" not equivalent to the maximum value? Are they C-compliant? > The commit message IMO has a better description of "require". I > suggest adding the part about "This doesn't add any additional > security ..." to the documentation. Sounds good; see what you think of v12. > ``` > + * hard-coded certificate via sslcert, so we don't actually set any > certificates > + * here; we just it to record whether or not the server has actually asked for > ``` > > Something is off with the wording here in the "we just it to ..." part. Fixed. > The patchset seems to be in very good shape except for these few > nitpicks. I'm inclined to change its status to "Ready for Committer" > as soon as the new version will pass cfbot unless there are going to > be any objections from the community. Thank you! I expect a maintainer will need to weigh in on the cost/benefit of 0003 either way. --Jacob --------------w7aGMidJ0MCBor7IhJ4MAi0M Content-Type: text/plain; charset=UTF-8; name="since-v11.diff.txt" Content-Disposition: attachment; filename="since-v11.diff.txt" Content-Transfer-Encoding: base64 Y29tbWl0IGU3MWVhMGQwMzU2ZjVlZjJmYjQyMTRmYzk3OGY4MzVkOWZhODE1ZjgKQXV0aG9y OiBKYWNvYiBDaGFtcGlvbiA8amNoYW1waW9uQHRpbWVzY2FsZS5jb20+CkRhdGU6ICAgRnJp IE5vdiAxMSAxNTo1NToyMyAyMDIyIC0wODAwCgogICAgc3F1YXNoISBBZGQgc3NsY2VydG1v ZGUgb3B0aW9uIGZvciBjbGllbnQgY2VydGlmaWNhdGVzCiAgICAKICAgIEltcHJvdmUgZG9j cywgZml4IGNvbW1lbnQuCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAppbmRleCBjMDZiMDcxOGNmLi4zMmMwODcyZWVk IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvbGlicHEuc2dtbApAQCAtMTg0NCwxMyArMTg0NCwyMyBAQCBwb3N0Z3Jlc3FsOi8vJTJG dmFyJTJGbGliJTJGcG9zdGdyZXNxbC9kYm5hbWUKICAgICAgICAgICA8bGlzdGl0ZW0+CiAg ICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICAgdGhlIHNlcnZlciA8ZW1waGFzaXM+bXVz dDwvZW1waGFzaXM+IHJlcXVlc3QgYSBjZXJ0aWZpY2F0ZS4gVGhlCi0gICAgICAgICAgICBj b25uZWN0aW9uIHdpbGwgZmFpbCBpZiB0aGUgc2VydmVyIGF1dGhlbnRpY2F0ZXMgdGhlIGNs aWVudCBkZXNwaXRlCi0gICAgICAgICAgICBub3QgcmVxdWVzdGluZyBvciByZWNlaXZpbmcg b25lLgorICAgICAgICAgICAgY29ubmVjdGlvbiB3aWxsIGZhaWwgaWYgdGhlIGNsaWVudCBk b2VzIG5vdCBzZW5kIGEgY2VydGlmaWNhdGUgYW5kCisgICAgICAgICAgICB0aGUgc2VydmVy IHN1Y2Nlc3NmdWxseSBhdXRoZW50aWNhdGVzIHRoZSBjbGllbnQgYW55d2F5LgogICAgICAg ICAgICA8L3BhcmE+CiAgICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDwvdmFybGlz dGVudHJ5PgogICAgICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgICAgICA8L3BhcmE+CisKKyAg ICAgICA8bm90ZT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICA8bGl0ZXJhbD5zc2xjZXJ0 bW9kZT1yZXF1aXJlPC9saXRlcmFsPiBkb2Vzbid0IGFkZCBhbnkgYWRkaXRpb25hbAorICAg ICAgICAgc2VjdXJpdHksIHNpbmNlIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBz ZXJ2ZXIgaXMgdmFsaWRhdGluZyB0aGUKKyAgICAgICAgIGNlcnRpZmljYXRlIGNvcnJlY3Rs eTsgUG9zdGdyZVNRTCBzZXJ2ZXJzIGdlbmVyYWxseSByZXF1ZXN0IFRMUworICAgICAgICAg Y2VydGlmaWNhdGVzIGZyb20gY2xpZW50cyB3aGV0aGVyIHRoZXkgdmFsaWRhdGUgdGhlbSBv ciBub3QuIFRoZSBvcHRpb24KKyAgICAgICAgIG1heSBiZSB1c2VmdWwgd2hlbiB0cm91Ymxl c2hvb3RpbmcgbW9yZSBjb21wbGljYXRlZCBUTFMgc2V0dXBzLgorICAgICAgICA8L3BhcmE+ CisgICAgICAgPC9ub3RlPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50 cnk+CiAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXNlY3VyZS1vcGVu c3NsLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1zZWN1cmUtb3BlbnNzbC5jCmluZGV4 IDA0ZmEwMmFmOTQuLjI0MWEyOGEzMmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLXNlY3VyZS1vcGVuc3NsLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUt c2VjdXJlLW9wZW5zc2wuYwpAQCAtNDgyLDggKzQ4Miw4IEBAIHZlcmlmeV9jYihpbnQgb2ss IFg1MDlfU1RPUkVfQ1RYICpjdHgpCiAgKiBUaGlzIGNhbGxiYWNrIGxldHMgdXMgY2hvb3Nl IHRoZSBjbGllbnQgY2VydGlmaWNhdGUgd2Ugc2VuZCB0byB0aGUgc2VydmVyCiAgKiBhZnRl ciBzZWVpbmcgaXRzIENlcnRpZmljYXRlUmVxdWVzdC4gV2Ugb25seSBzdXBwb3J0IHNlbmRp bmcgYSBzaW5nbGUKICAqIGhhcmQtY29kZWQgY2VydGlmaWNhdGUgdmlhIHNzbGNlcnQsIHNv IHdlIGRvbid0IGFjdHVhbGx5IHNldCBhbnkgY2VydGlmaWNhdGVzCi0gKiBoZXJlOyB3ZSBq dXN0IGl0IHRvIHJlY29yZCB3aGV0aGVyIG9yIG5vdCB0aGUgc2VydmVyIGhhcyBhY3R1YWxs eSBhc2tlZCBmb3IKLSAqIG9uZSBhbmQgd2hldGhlciB3ZSBoYXZlIG9uZSB0byBzZW5kLgor ICogaGVyZTsgd2UganVzdCB1c2UgaXQgdG8gcmVjb3JkIHdoZXRoZXIgb3Igbm90IHRoZSBz ZXJ2ZXIgaGFzIGFjdHVhbGx5IGFza2VkCisgKiBmb3Igb25lIGFuZCB3aGV0aGVyIHdlIGhh dmUgb25lIHRvIHNlbmQuCiAgKi8KIHN0YXRpYyBpbnQKIGNlcnRfY2IoU1NMICpzc2wsIHZv aWQgKmFyZykK --------------w7aGMidJ0MCBor7IhJ4MAi0M Content-Type: text/x-patch; charset=UTF-8; name="v12-0001-libpq-let-client-reject-unexpected-auth-methods.patch" Content-Disposition: attachment; filename*0="v12-0001-libpq-let-client-reject-unexpected-auth-methods.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSBlYzI1MWQ3OGM4NDg4ZWU1NzhkOGM4NzY0NjRkMzczMGMxMzEwOTM5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8cGNoYW1waW9uQHZtd2Fy ZS5jb20+CkRhdGU6IE1vbiwgMjggRmViIDIwMjIgMDk6NDA6NDMgLTA4MDAKU3ViamVjdDog W1BBVENIIHYxMiAxLzNdIGxpYnBxOiBsZXQgY2xpZW50IHJlamVjdCB1bmV4cGVjdGVkIGF1 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 b24vdC8wMDFfcGFzc3dvcmQucGwKaW5kZXggNDJkM2Q0Yzc5Yi4uMDFmMjU2YmJiYyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvYXV0aGVudGljYXRpb24vdC8wMDFfcGFzc3dvcmQucGwKKysr IGIvc3JjL3Rlc3QvYXV0aGVudGljYXRpb24vdC8wMDFfcGFzc3dvcmQucGwKQEAgLTExNSw2 ICsxMTUsNzQgQEAgaXMoJHJlcywgJ3QnLAogCSJ1c2VycyB3aXRoIHRydXN0IGF1dGhlbnRp 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 LCAncGFzc3dvcmQnLCAwLApAQCAtMTI0LDYgKzE5MiwzMyBAQCB0ZXN0X2Nvbm4oJG5vZGUs 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 dF9jb25uKApAQCAtMTM3LDYgKzIzMiwzMyBAQCB0ZXN0X2Nvbm4oCiB0ZXN0X2Nvbm4oJG5v 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 cmFtX3JvbGUnLCAnc2NyYW0tc2hhLTI1NicsIDIsCkBAIC0xNTMsNiArMjc1LDMzIEBAIHRl 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 LzAwMV9hdXRoLnBsIGIvc3JjL3Rlc3QvbGRhcC90LzAwMV9hdXRoLnBsCmluZGV4IGZkOTA4 MzJiNzUuLjAzMTlmMmVlNzQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2xkYXAvdC8wMDFfYXV0 aC5wbAorKysgYi9zcmMvdGVzdC9sZGFwL3QvMDAxX2F1dGgucGwKQEAgLTIyMiw2ICsyMjIs 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== --------------w7aGMidJ0MCBor7IhJ4MAi0M Content-Type: text/x-patch; charset=UTF-8; name="v12-0002-Add-sslcertmode-option-for-client-certificates.patch" Content-Disposition: attachment; filename*0="v12-0002-Add-sslcertmode-option-for-client-certificates.patc"; filename*1="h" Content-Transfer-Encoding: base64 RnJvbSBkYjI5NmVhY2VmOTdlNDBhNjQ3MWJiNTg0MTlmMzZmNDRhYWIwNTJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amNoYW1waW9uQHRpbWVz Y2FsZS5jb20+CkRhdGU6IEZyaSwgMjQgSnVuIDIwMjIgMTU6NDA6NDIgLTA3MDAKU3ViamVj dDogW1BBVENIIHYxMiAyLzNdIEFkZCBzc2xjZXJ0bW9kZSBvcHRpb24gZm9yIGNsaWVudCBj ZXJ0aWZpY2F0ZXMKClRoZSBzc2xjZXJ0bW9kZSBvcHRpb24gY29udHJvbHMgd2hldGhlciB0 aGUgc2VydmVyIGlzIGFsbG93ZWQgYW5kL29yCnJlcXVpcmVkIHRvIHJlcXVlc3QgYSBjZXJ0 aWZpY2F0ZSBmcm9tIHRoZSBjbGllbnQuIFRoZXJlIGFyZSB0aHJlZQptb2RlczoKCi0gImFs bG93IiBpcyB0aGUgZGVmYXVsdCBhbmQgZm9sbG93cyB0aGUgY3VycmVudCBiZWhhdmlvciAt LSBhCiAgY29uZmlndXJlZCAgc3NsY2VydCBpcyBzZW50IGlmIHRoZSBzZXJ2ZXIgcmVxdWVz dHMgb25lICh3aGljaCwgd2l0aAogIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCB3aWxs IGhhcHBlbiB3aGVuZXZlciBUTFMgaXMgbmVnb3RpYXRlZCkuCgotICJkaXNhYmxlIiBjYXVz ZXMgdGhlIGNsaWVudCB0byByZWZ1c2UgdG8gc2VuZCBhIGNsaWVudCBjZXJ0aWZpY2F0ZQog IGV2ZW4gaWYgYW4gc3NsY2VydCBpcyBjb25maWd1cmVkLgoKLSAicmVxdWlyZSIgY2F1c2Vz IHRoZSBjbGllbnQgdG8gZmFpbCBpZiBhIGNsaWVudCBjZXJ0aWZpY2F0ZSBpcyBuZXZlcgog IHNlbnQgYW5kIHRoZSBzZXJ2ZXIgb3BlbnMgYSBjb25uZWN0aW9uIGFueXdheS4gVGhpcyBk b2Vzbid0IGFkZCBhbnkKICBhZGRpdGlvbmFsIHNlY3VyaXR5LCBzaW5jZSB0aGVyZSBpcyBu byBndWFyYW50ZWUgdGhhdCB0aGUgc2VydmVyIGlzCiAgdmFsaWRhdGluZyB0aGUgY2VydGlm aWNhdGUgY29ycmVjdGx5LCBidXQgaXQgbWF5IGhlbHAgdHJvdWJsZXNob290CiAgbW9yZSBj b21wbGljYXRlZCBUTFMgc2V0dXBzLgoKc3NsY2VydG1vZGU9cmVxdWlyZSBuZWVkcyB0aGUg T3BlblNTTCBpbXBsZW1lbnRhdGlvbiB0byBzdXBwb3J0ClNTTF9DVFhfc2V0X2NlcnRfY2Io KS4gTm90YWJseSwgTGlicmVTU0wgZG9lcyBub3QuCi0tLQogY29uZmlndXJlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDExICsrLS0KIGNvbmZpZ3VyZS5hYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwg ICAgICAgICAgICAgICAgICB8IDY0ICsrKysrKysrKysrKysrKysrKysrKysrKwogbWVzb24u YnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvaW5jbHVk ZS9wZ19jb25maWcuaC5pbiAgICAgICAgICAgICAgIHwgIDMgKysKIHNyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLWF1dGguYyAgICAgICAgICAgfCAyMSArKysrKysrKwogc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtY29ubmVjdC5jICAgICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKysr CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1zZWN1cmUtb3BlbnNzbC5jIHwgMzkgKysrKysr KysrKysrKystCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCAgICAgICAgIHwg IDMgKysKIHNyYy90ZXN0L3NzbC90LzAwMV9zc2x0ZXN0cy5wbCAgICAgICAgICAgfCA0MyAr KysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvbXN2Yy9Tb2x1dGlvbi5wbSAgICAgICAgICAg ICAgIHwgIDggKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAyNDUgaW5zZXJ0aW9ucygrKSwgOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXgg Mzk2NjM2OGI4ZC4uMzY4NTg4ZTk4ZCAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2Nv bmZpZ3VyZQpAQCAtMTI5OTIsMTMgKzEyOTkyLDE0IEBAIGVsc2UKIGZpCiAKICAgZmkKLSAg IyBGdW5jdGlvbiBpbnRyb2R1Y2VkIGluIE9wZW5TU0wgMS4wLjIuCi0gIGZvciBhY19mdW5j IGluIFg1MDlfZ2V0X3NpZ25hdHVyZV9uaWQKKyAgIyBGdW5jdGlvbnMgaW50cm9kdWNlZCBp biBPcGVuU1NMIDEuMC4yLiBMaWJyZVNTTCBkb2Vzbid0IGhhdmUgYWxsIG9mIHRoZXNlLgor ICBmb3IgYWNfZnVuYyBpbiBYNTA5X2dldF9zaWduYXR1cmVfbmlkIFNTTF9DVFhfc2V0X2Nl cnRfY2IKIGRvIDoKLSAgYWNfZm5fY19jaGVja19mdW5jICIkTElORU5PIiAiWDUwOV9nZXRf c2lnbmF0dXJlX25pZCIgImFjX2N2X2Z1bmNfWDUwOV9nZXRfc2lnbmF0dXJlX25pZCIKLWlm IHRlc3QgIngkYWNfY3ZfZnVuY19YNTA5X2dldF9zaWduYXR1cmVfbmlkIiA9IHh5ZXM7IHRo ZW4gOgorICBhc19hY192YXI9YCRhc19lY2hvICJhY19jdl9mdW5jXyRhY19mdW5jIiB8ICRh c190cl9zaGAKK2FjX2ZuX2NfY2hlY2tfZnVuYyAiJExJTkVOTyIgIiRhY19mdW5jIiAiJGFz X2FjX3ZhciIKK2lmIGV2YWwgdGVzdCBcInhcJCIkYXNfYWNfdmFyIlwiID0geCJ5ZXMiOyB0 aGVuIDoKICAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1g1MDlf R0VUX1NJR05BVFVSRV9OSUQgMQorI2RlZmluZSBgJGFzX2VjaG8gIkhBVkVfJGFjX2Z1bmMi IHwgJGFzX3RyX2NwcGAgMQogX0FDRU9GCiAKIGZpCmRpZmYgLS1naXQgYS9jb25maWd1cmUu YWMgYi9jb25maWd1cmUuYWMKaW5kZXggZjc2YjdlZTMxZi4uNDMxNTk0YjkyMSAxMDA2NDQK LS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMTM1NCw4ICsxMzU0 LDggQEAgaWYgdGVzdCAiJHdpdGhfc3NsIiA9IG9wZW5zc2wgOyB0aGVuCiAgICAgIEFDX1NF QVJDSF9MSUJTKENSWVBUT19uZXdfZXhfZGF0YSwgW2VheTMyIGNyeXB0b10sIFtdLCBbQUNf TVNHX0VSUk9SKFtsaWJyYXJ5ICdlYXkzMicgb3IgJ2NyeXB0bycgaXMgcmVxdWlyZWQgZm9y IE9wZW5TU0xdKV0pCiAgICAgIEFDX1NFQVJDSF9MSUJTKFNTTF9uZXcsIFtzc2xlYXkzMiBz c2xdLCBbXSwgW0FDX01TR19FUlJPUihbbGlicmFyeSAnc3NsZWF5MzInIG9yICdzc2wnIGlz IHJlcXVpcmVkIGZvciBPcGVuU1NMXSldKQogICBmaQotICAjIEZ1bmN0aW9uIGludHJvZHVj ZWQgaW4gT3BlblNTTCAxLjAuMi4KLSAgQUNfQ0hFQ0tfRlVOQ1MoW1g1MDlfZ2V0X3NpZ25h dHVyZV9uaWRdKQorICAjIEZ1bmN0aW9ucyBpbnRyb2R1Y2VkIGluIE9wZW5TU0wgMS4wLjIu IExpYnJlU1NMIGRvZXNuJ3QgaGF2ZSBhbGwgb2YgdGhlc2UuCisgIEFDX0NIRUNLX0ZVTkNT KFtYNTA5X2dldF9zaWduYXR1cmVfbmlkIFNTTF9DVFhfc2V0X2NlcnRfY2JdKQogICAjIEZ1 bmN0aW9ucyBpbnRyb2R1Y2VkIGluIE9wZW5TU0wgMS4xLjAuIFdlIHVzZWQgdG8gY2hlY2sg Zm9yCiAgICMgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiwgYnV0IHRoYXQgZGlkbid0IHdvcmsg d2l0aCAxLjEuMCwgYmVjYXVzZSBMaWJyZVNTTAogICAjIGRlZmluZXMgT1BFTlNTTF9WRVJT SU9OX05VTUJFUiB0byBjbGFpbSB2ZXJzaW9uIDIuMC4wLCBldmVuIHRob3VnaCBpdApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbGlicHEu c2dtbAppbmRleCAwNWQ5NjQ1ZjQwLi4zMmMwODcyZWVkIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvbGlicHEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbApAQCAtMTgx MCw2ICsxODEwLDYwIEBAIHBvc3RncmVzcWw6Ly8lMkZ2YXIlMkZsaWIlMkZwb3N0Z3Jlc3Fs L2RibmFtZQogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg ICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtY29ubmVjdC1zc2xjZXJ0bW9kZSIgeHJlZmxh YmVsPSJzc2xjZXJ0bW9kZSI+CisgICAgICA8dGVybT48bGl0ZXJhbD5zc2xjZXJ0bW9kZTwv bGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAg ICAgIFRoaXMgb3B0aW9uIGRldGVybWluZXMgd2hldGhlciBhIGNsaWVudCBjZXJ0aWZpY2F0 ZSBtYXkgYmUgc2VudCB0byB0aGUKKyAgICAgICAgc2VydmVyLCBhbmQgd2hldGhlciB0aGUg c2VydmVyIGlzIHJlcXVpcmVkIHRvIHJlcXVlc3Qgb25lLiBUaGVyZSBhcmUKKyAgICAgICAg dGhyZWUgbW9kZXM6CisKKyAgICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+ZGlzYWJsZTwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAg ICAgICAgIGEgY2xpZW50IGNlcnRpZmljYXRlIGlzIG5ldmVyIHNlbnQsIGV2ZW4gaWYgb25l IGlzIHByb3ZpZGVkIHZpYQorICAgICAgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtY29u bmVjdC1zc2xjZXJ0IiAvPgorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmFsbG93PC9saXRlcmFsPiAoZGVmYXVs dCk8L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAg ICAgICAgICAgIGEgY2VydGlmaWNhdGUgbWF5IGJlIHNlbnQsIGlmIHRoZSBzZXJ2ZXIgcmVx dWVzdHMgb25lIGFuZCBpdCBoYXMKKyAgICAgICAgICAgIGJlZW4gcHJvdmlkZWQgdmlhIDxs aXRlcmFsPnNzbGNlcnQ8L2xpdGVyYWw+CisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAg ICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+cmVxdWlyZTwvbGl0ZXJh bD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAg ICAgICAgICAgIHRoZSBzZXJ2ZXIgPGVtcGhhc2lzPm11c3Q8L2VtcGhhc2lzPiByZXF1ZXN0 IGEgY2VydGlmaWNhdGUuIFRoZQorICAgICAgICAgICAgY29ubmVjdGlvbiB3aWxsIGZhaWwg aWYgdGhlIGNsaWVudCBkb2VzIG5vdCBzZW5kIGEgY2VydGlmaWNhdGUgYW5kCisgICAgICAg ICAgICB0aGUgc2VydmVyIHN1Y2Nlc3NmdWxseSBhdXRoZW50aWNhdGVzIHRoZSBjbGllbnQg YW55d2F5LgorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICAg ICA8L3BhcmE+CisKKyAgICAgICA8bm90ZT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICA8 bGl0ZXJhbD5zc2xjZXJ0bW9kZT1yZXF1aXJlPC9saXRlcmFsPiBkb2Vzbid0IGFkZCBhbnkg YWRkaXRpb25hbAorICAgICAgICAgc2VjdXJpdHksIHNpbmNlIHRoZXJlIGlzIG5vIGd1YXJh bnRlZSB0aGF0IHRoZSBzZXJ2ZXIgaXMgdmFsaWRhdGluZyB0aGUKKyAgICAgICAgIGNlcnRp ZmljYXRlIGNvcnJlY3RseTsgUG9zdGdyZVNRTCBzZXJ2ZXJzIGdlbmVyYWxseSByZXF1ZXN0 IFRMUworICAgICAgICAgY2VydGlmaWNhdGVzIGZyb20gY2xpZW50cyB3aGV0aGVyIHRoZXkg dmFsaWRhdGUgdGhlbSBvciBub3QuIFRoZSBvcHRpb24KKyAgICAgICAgIG1heSBiZSB1c2Vm dWwgd2hlbiB0cm91Ymxlc2hvb3RpbmcgbW9yZSBjb21wbGljYXRlZCBUTFMgc2V0dXBzLgor ICAgICAgICA8L3BhcmE+CisgICAgICAgPC9ub3RlPgorICAgICAgPC9saXN0aXRlbT4KKyAg ICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtY29u bmVjdC1zc2xyb290Y2VydCIgeHJlZmxhYmVsPSJzc2xyb290Y2VydCI+CiAgICAgICA8dGVy bT48bGl0ZXJhbD5zc2xyb290Y2VydDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICA8bGlzdGl0 ZW0+CkBAIC03OTg1LDYgKzgwMzksMTYgQEAgbXlFdmVudFByb2MoUEdFdmVudElkIGV2dElk LCB2b2lkICpldnRJbmZvLCB2b2lkICpwYXNzVGhyb3VnaCkKICAgICAgPC9wYXJhPgogICAg IDwvbGlzdGl0ZW0+CiAKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgPGlu ZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48ZW52YXI+UEdTU0xDRVJUTU9ERTwvZW52YXI+ PC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8ZW52YXI+UEdTU0xDRVJU TU9ERTwvZW52YXI+IGJlaGF2ZXMgdGhlIHNhbWUgYXMgdGhlIDx4cmVmCisgICAgICBsaW5r ZW5kPSJsaWJwcS1jb25uZWN0LXNzbGNlcnRtb2RlIi8+IGNvbm5lY3Rpb24gcGFyYW1ldGVy LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKwogICAgIDxsaXN0aXRlbT4KICAg ICAgPHBhcmE+CiAgICAgICA8aW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQg Yi9tZXNvbi5idWlsZAppbmRleCBjZTJmMjIzYTQwLi5kZjFjZmUxMTFmIDEwMDY0NAotLS0g YS9tZXNvbi5idWlsZAorKysgYi9tZXNvbi5idWlsZApAQCAtMTE4MSw4ICsxMTgxLDkgQEAg aWYgZ2V0X29wdGlvbignc3NsJykgPT0gJ29wZW5zc2wnCiAgICAgWydDUllQVE9fbmV3X2V4 X2RhdGEnLCB7J3JlcXVpcmVkJzogdHJ1ZX1dLAogICAgIFsnU1NMX25ldycsIHsncmVxdWly ZWQnOiB0cnVlfV0sCiAKLSAgICAjIEZ1bmN0aW9uIGludHJvZHVjZWQgaW4gT3BlblNTTCAx LjAuMi4KKyAgICAjIEZ1bmN0aW9ucyBpbnRyb2R1Y2VkIGluIE9wZW5TU0wgMS4wLjIuIExp YnJlU1NMIGRvZXNuJ3QgaGF2ZSBhbGwgb2YgdGhlc2UuCiAgICAgWydYNTA5X2dldF9zaWdu YXR1cmVfbmlkJ10sCisgICAgWydTU0xfQ1RYX3NldF9jZXJ0X2NiJ10sCiAKICAgICAjIEZ1 bmN0aW9ucyBpbnRyb2R1Y2VkIGluIE9wZW5TU0wgMS4xLjAuIFdlIHVzZWQgdG8gY2hlY2sg Zm9yCiAgICAgIyBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSLCBidXQgdGhhdCBkaWRuJ3Qgd29y ayB3aXRoIDEuMS4wLCBiZWNhdXNlIExpYnJlU1NMCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9wZ19jb25maWcuaC5pbiBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCmluZGV4IGM1 YTgwYjgyOWUuLjA4MzgyZTg2OGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BnX2NvbmZp Zy5oLmluCisrKyBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCkBAIC0zOTcsNiArMzk3 LDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHNwaW5sb2Nrcy4gKi8KICN1bmRl ZiBIQVZFX1NQSU5MT0NLUwogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYFNT TF9DVFhfc2V0X2NlcnRfY2InIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfU1NMX0NUWF9T RVRfQ0VSVF9DQgorCiAvKiBEZWZpbmUgdG8gMSBpZiBzdGRib29sLmggY29uZm9ybXMgdG8g Qzk5LiAqLwogI3VuZGVmIEhBVkVfU1REQk9PTF9ICiAKZGlmZiAtLWdpdCBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLWF1dGguYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgu YwppbmRleCA1YTQ2Y2YwZWU5Li4yOTViOTc4NTI1IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1hdXRoLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0 aC5jCkBAIC04ODUsNiArODg1LDI3IEBAIGNoZWNrX2V4cGVjdGVkX2FyZXEoQXV0aFJlcXVl c3QgYXJlcSwgUEdjb25uICpjb25uKQogCWJvb2wJCXJlc3VsdCA9IHRydWU7CiAJY29uc3Qg Y2hhciAqcmVhc29uID0gTlVMTDsKIAorCWlmIChjb25uLT5zc2xjZXJ0bW9kZVswXSA9PSAn cicgLyogcmVxdWlyZSAqLworCQkmJiBhcmVxID09IEFVVEhfUkVRX09LKQorCXsKKwkJLyoK KwkJICogVHJhZGUgb2ZmIGEgbGl0dGxlIGJpdCBvZiBjb21wbGV4aXR5IHRvIHRyeSB0byBn ZXQgdGhlc2UgZXJyb3IKKwkJICogbWVzc2FnZXMgYXMgcHJlY2lzZSBhcyBwb3NzaWJsZS4K KwkJICovCisJCWlmICghY29ubi0+c3NsX2NlcnRfcmVxdWVzdGVkKQorCQl7CisJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkgbGlicHFf Z2V0dGV4dCgic2VydmVyIGRpZCBub3QgcmVxdWVzdCBhIGNlcnRpZmljYXRlIikpOworCQkJ cmV0dXJuIGZhbHNlOworCQl9CisJCWVsc2UgaWYgKCFjb25uLT5zc2xfY2VydF9zZW50KQor CQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJ CQkJCQkgbGlicHFfZ2V0dGV4dCgic2VydmVyIGFjY2VwdGVkIGNvbm5lY3Rpb24gd2l0aG91 dCBhIHZhbGlkIGNlcnRpZmljYXRlIikpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJfQor CiAJLyoKIAkgKiBJZiB0aGUgdXNlciByZXF1aXJlZCBhIHNwZWNpZmljIGF1dGggbWV0aG9k LCBvciBzcGVjaWZpZWQgYW4gYWxsb3dlZCBzZXQsCiAJICogdGhlbiByZWplY3QgYWxsIG90 aGVycyBoZXJlLCBhbmQgbWFrZSBzdXJlIHRoZSBzZXJ2ZXIgYWN0dWFsbHkgY29tcGxldGVz CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKaW5kZXggNDBmNTcxZmFkYi4uZWFjYThj ZWUxZiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCisr KyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwpAQCAtMTI1LDggKzEyNSwx MCBAQCBzdGF0aWMgaW50CWxkYXBTZXJ2aWNlTG9va3VwKGNvbnN0IGNoYXIgKnB1cmwsIFBR Y29ubmluZm9PcHRpb24gKm9wdGlvbnMsCiAjZGVmaW5lIERlZmF1bHRUYXJnZXRTZXNzaW9u QXR0cnMJImFueSIKICNpZmRlZiBVU0VfU1NMCiAjZGVmaW5lIERlZmF1bHRTU0xNb2RlICJw cmVmZXIiCisjZGVmaW5lIERlZmF1bHRTU0xDZXJ0TW9kZSAiYWxsb3ciCiAjZWxzZQogI2Rl ZmluZSBEZWZhdWx0U1NMTW9kZQkiZGlzYWJsZSIKKyNkZWZpbmUgRGVmYXVsdFNTTENlcnRN b2RlICJkaXNhYmxlIgogI2VuZGlmCiAjaWZkZWYgRU5BQkxFX0dTUwogI2luY2x1ZGUgImZl LWdzc2FwaS1jb21tb24uaCIKQEAgLTI4Myw2ICsyODUsMTAgQEAgc3RhdGljIGNvbnN0IGlu dGVybmFsUFFjb25uaW5mb09wdGlvbiBQUWNvbm5pbmZvT3B0aW9uc1tdID0gewogCQkiU1NM LUNsaWVudC1LZXkiLCAiIiwgNjQsCiAJb2Zmc2V0b2Yoc3RydWN0IHBnX2Nvbm4sIHNzbGtl eSl9LAogCisJeyJzc2xjZXJ0bW9kZSIsICJQR1NTTENFUlRNT0RFIiwgTlVMTCwgTlVMTCwK KwkJIlNTTC1DbGllbnQtQ2VydC1Nb2RlIiwgIiIsIDgsIC8qIHNpemVvZigiZGlzYWJsZSIp ID09IDggKi8KKwlvZmZzZXRvZihzdHJ1Y3QgcGdfY29ubiwgc3NsY2VydG1vZGUpfSwKKwog CXsic3NscGFzc3dvcmQiLCBOVUxMLCBOVUxMLCBOVUxMLAogCQkiU1NMLUNsaWVudC1LZXkt UGFzc3dvcmQiLCAiKiIsIDIwLAogCW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCBzc2xwYXNz d29yZCl9LApAQCAtMTUxNCw2ICsxNTIwLDU1IEBAIGR1cGxpY2F0ZToKIAkJcmV0dXJuIGZh bHNlOwogCX0KIAorCS8qCisJICogdmFsaWRhdGUgc3NsY2VydG1vZGUgb3B0aW9uCisJICov CisJaWYgKGNvbm4tPnNzbGNlcnRtb2RlKQorCXsKKwkJaWYgKHN0cmNtcChjb25uLT5zc2xj ZXJ0bW9kZSwgImRpc2FibGUiKSAhPSAwICYmCisJCQlzdHJjbXAoY29ubi0+c3NsY2VydG1v ZGUsICJhbGxvdyIpICE9IDAgJiYKKwkJCXN0cmNtcChjb25uLT5zc2xjZXJ0bW9kZSwgInJl cXVpcmUiKSAhPSAwKQorCQl7CisJCQljb25uLT5zdGF0dXMgPSBDT05ORUNUSU9OX0JBRDsK KwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJICBs aWJwcV9nZXR0ZXh0KCJpbnZhbGlkICVzIHZhbHVlOiBcIiVzXCJcbiIpLAorCQkJCQkJCSAg InNzbGNlcnRtb2RlIiwKKwkJCQkJCQkgIGNvbm4tPnNzbGNlcnRtb2RlKTsKKwkJCXJldHVy biBmYWxzZTsKKwkJfQorI2lmbmRlZiBVU0VfU1NMCisJCWlmIChzdHJjbXAoY29ubi0+c3Ns Y2VydG1vZGUsICJyZXF1aXJlIikgPT0gMCkKKwkJeworCQkJY29ubi0+c3RhdHVzID0gQ09O TkVDVElPTl9CQUQ7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdl LAorCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgic3NsY2VydG1vZGUgdmFsdWUgXCIlc1wiIGlu dmFsaWQgd2hlbiBTU0wgc3VwcG9ydCBpcyBub3QgY29tcGlsZWQgaW5cbiIpLAorCQkJCQkJ CSAgY29ubi0+c3NsY2VydG1vZGUpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisjZW5kaWYK KyNpZm5kZWYgSEFWRV9TU0xfQ1RYX1NFVF9DRVJUX0NCCisJCS8qCisJCSAqIFdpdGhvdXQg YSBjZXJ0aWZpY2F0ZSBjYWxsYmFjaywgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gY2Fu J3QKKwkJICogZmlndXJlIG91dCBpZiBhIGNlcnRmaWNhdGUgd2FzIGFjdHVhbGx5IHJlcXVl c3RlZCwgc28gInJlcXVpcmUiIGlzCisJCSAqIHVzZWxlc3MuCisJCSAqLworCQlpZiAoc3Ry Y21wKGNvbm4tPnNzbGNlcnRtb2RlLCAicmVxdWlyZSIpID09IDApCisJCXsKKwkJCWNvbm4t PnN0YXR1cyA9IENPTk5FQ1RJT05fQkFEOworCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4t PmVycm9yTWVzc2FnZSwKKwkJCQkJCQkgIGxpYnBxX2dldHRleHQoInNzbGNlcnRtb2RlIHZh bHVlIFwiJXNcIiBpcyBub3Qgc3VwcG9ydGVkIChjaGVjayBPcGVuU1NMIHZlcnNpb24pXG4i KSwKKwkJCQkJCQkgIGNvbm4tPnNzbGNlcnRtb2RlKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJ fQorI2VuZGlmCisJfQorCWVsc2UKKwl7CisJCWNvbm4tPnNzbGNlcnRtb2RlID0gc3RyZHVw KERlZmF1bHRTU0xDZXJ0TW9kZSk7CisJCWlmICghY29ubi0+c3NsY2VydG1vZGUpCisJCQln b3RvIG9vbV9lcnJvcjsKKwl9CisKIAkvKgogCSAqIHZhbGlkYXRlIGdzc2VuY21vZGUgb3B0 aW9uCiAJICovCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1zZWN1cmUt b3BlbnNzbC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtc2VjdXJlLW9wZW5zc2wuYwpp bmRleCBiNDJhOTA4NzMzLi4yNDFhMjhhMzJkIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1zZWN1cmUtb3BlbnNzbC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLXNlY3VyZS1vcGVuc3NsLmMKQEAgLTQ3NSw2ICs0NzUsMzMgQEAgdmVyaWZ5X2NiKGlu dCBvaywgWDUwOV9TVE9SRV9DVFggKmN0eCkKIAlyZXR1cm4gb2s7CiB9CiAKKyNpZmRlZiBI QVZFX1NTTF9DVFhfU0VUX0NFUlRfQ0IKKy8qCisgKiBDZXJ0aWZpY2F0ZSBzZWxlY3Rpb24g Y2FsbGJhY2sKKyAqCisgKiBUaGlzIGNhbGxiYWNrIGxldHMgdXMgY2hvb3NlIHRoZSBjbGll bnQgY2VydGlmaWNhdGUgd2Ugc2VuZCB0byB0aGUgc2VydmVyCisgKiBhZnRlciBzZWVpbmcg aXRzIENlcnRpZmljYXRlUmVxdWVzdC4gV2Ugb25seSBzdXBwb3J0IHNlbmRpbmcgYSBzaW5n bGUKKyAqIGhhcmQtY29kZWQgY2VydGlmaWNhdGUgdmlhIHNzbGNlcnQsIHNvIHdlIGRvbid0 IGFjdHVhbGx5IHNldCBhbnkgY2VydGlmaWNhdGVzCisgKiBoZXJlOyB3ZSBqdXN0IHVzZSBp dCB0byByZWNvcmQgd2hldGhlciBvciBub3QgdGhlIHNlcnZlciBoYXMgYWN0dWFsbHkgYXNr ZWQKKyAqIGZvciBvbmUgYW5kIHdoZXRoZXIgd2UgaGF2ZSBvbmUgdG8gc2VuZC4KKyAqLwor c3RhdGljIGludAorY2VydF9jYihTU0wgKnNzbCwgdm9pZCAqYXJnKQoreworCVBHY29ubiAq Y29ubiA9IGFyZzsKKwljb25uLT5zc2xfY2VydF9yZXF1ZXN0ZWQgPSB0cnVlOworCisJLyog RG8gd2UgaGF2ZSBhIGNlcnRpZmljYXRlIGxvYWRlZCB0byBzZW5kIGJhY2s/ICovCisJaWYg KFNTTF9nZXRfY2VydGlmaWNhdGUoc3NsKSkKKwkJY29ubi0+c3NsX2NlcnRfc2VudCA9IHRy dWU7CisKKwkvKgorCSAqIFRlbGwgT3BlblNTTCB0aGF0IHRoZSBjYWxsYmFjayBzdWNjZWVk ZWQ7IHdlJ3JlIG5vdCByZXF1aXJlZCB0byBhY3R1YWxseQorCSAqIG1ha2UgYW55IGNoYW5n ZXMgdG8gdGhlIFNTTCBoYW5kbGUuCisJICovCisJcmV0dXJuIDE7Cit9CisjZW5kaWYKIAog LyoKICAqIE9wZW5TU0wtc3BlY2lmaWMgd3JhcHBlciBhcm91bmQKQEAgLTk3MCw2ICs5OTcs MTEgQEAgaW5pdGlhbGl6ZV9TU0woUEdjb25uICpjb25uKQogCQlTU0xfQ1RYX3NldF9kZWZh dWx0X3Bhc3N3ZF9jYl91c2VyZGF0YShTU0xfY29udGV4dCwgY29ubik7CiAJfQogCisjaWZk ZWYgSEFWRV9TU0xfQ1RYX1NFVF9DRVJUX0NCCisJLyogU2V0IHVwIGEgY2VydGlmaWNhdGUg c2VsZWN0aW9uIGNhbGxiYWNrLiAqLworCVNTTF9DVFhfc2V0X2NlcnRfY2IoU1NMX2NvbnRl eHQsIGNlcnRfY2IsIGNvbm4pOworI2VuZGlmCisKIAkvKiBEaXNhYmxlIG9sZCBwcm90b2Nv bCB2ZXJzaW9ucyAqLwogCVNTTF9DVFhfc2V0X29wdGlvbnMoU1NMX2NvbnRleHQsIFNTTF9P UF9OT19TU0x2MiB8IFNTTF9PUF9OT19TU0x2Myk7CiAKQEAgLTExMzMsNyArMTE2NSwxMiBA QCBpbml0aWFsaXplX1NTTChQR2Nvbm4gKmNvbm4pCiAJZWxzZQogCQlmbmJ1ZlswXSA9ICdc MCc7CiAKLQlpZiAoZm5idWZbMF0gPT0gJ1wwJykKKwlpZiAoY29ubi0+c3NsY2VydG1vZGVb MF0gPT0gJ2QnKSAvKiBkaXNhYmxlICovCisJeworCQkvKiBkb24ndCBzZW5kIGEgY2xpZW50 IGNlcnQgZXZlbiBpZiB3ZSBoYXZlIG9uZSAqLworCQloYXZlX2NlcnQgPSBmYWxzZTsKKwl9 CisJZWxzZSBpZiAoZm5idWZbMF0gPT0gJ1wwJykKIAl7CiAJCS8qIG5vIGhvbWUgZGlyZWN0 b3J5LCBwcm9jZWVkIHdpdGhvdXQgYSBjbGllbnQgY2VydCAqLwogCQloYXZlX2NlcnQgPSBm YWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKaW5kZXggZTRkODhlMjJhMS4uYWQ2 ZjhiNzhjNiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgK KysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKQEAgLTM4NCw2ICszODQs NyBAQCBzdHJ1Y3QgcGdfY29ubgogCWNoYXIJICAgKnNzbGtleTsJCQkvKiBjbGllbnQga2V5 IGZpbGVuYW1lICovCiAJY2hhcgkgICAqc3NsY2VydDsJCS8qIGNsaWVudCBjZXJ0aWZpY2F0 ZSBmaWxlbmFtZSAqLwogCWNoYXIJICAgKnNzbHBhc3N3b3JkOwkvKiBjbGllbnQga2V5IGZp bGUgcGFzc3dvcmQgKi8KKwljaGFyCSAgICpzc2xjZXJ0bW9kZTsJLyogY2xpZW50IGNlcnQg bW9kZSAocmVxdWlyZSxhbGxvdyxkaXNhYmxlKSAqLwogCWNoYXIJICAgKnNzbHJvb3RjZXJ0 OwkvKiByb290IGNlcnRpZmljYXRlIGZpbGVuYW1lICovCiAJY2hhcgkgICAqc3NsY3JsOwkJ CS8qIGNlcnRpZmljYXRlIHJldm9jYXRpb24gbGlzdCBmaWxlbmFtZSAqLwogCWNoYXIJICAg KnNzbGNybGRpcjsJCS8qIGNlcnRpZmljYXRlIHJldm9jYXRpb24gbGlzdCBkaXJlY3Rvcnkg bmFtZSAqLwpAQCAtNTI1LDYgKzUyNiw4IEBAIHN0cnVjdCBwZ19jb25uCiAKIAkvKiBTU0wg c3RydWN0dXJlcyAqLwogCWJvb2wJCXNzbF9pbl91c2U7CisJYm9vbAkJc3NsX2NlcnRfcmVx dWVzdGVkOwkvKiBEaWQgdGhlIHNlcnZlciBhc2sgdXMgZm9yIGEgY2VydD8gKi8KKwlib29s CQlzc2xfY2VydF9zZW50OwkJLyogRGlkIHdlIHNlbmQgb25lIGluIHJlcGx5PyAqLwogCiAj aWZkZWYgVVNFX1NTTAogCWJvb2wJCWFsbG93X3NzbF90cnk7CS8qIEFsbG93ZWQgdG8gdHJ5 IFNTTCBuZWdvdGlhdGlvbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3NsL3QvMDAxX3Nz bHRlc3RzLnBsIGIvc3JjL3Rlc3Qvc3NsL3QvMDAxX3NzbHRlc3RzLnBsCmluZGV4IGZlNDIx NjFhMGYuLjAzZjBhM2VhZjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3NzbC90LzAwMV9zc2x0 ZXN0cy5wbAorKysgYi9zcmMvdGVzdC9zc2wvdC8wMDFfc3NsdGVzdHMucGwKQEAgLTQyLDYg KzQyLDEwIEBAIG15ICRTRVJWRVJIT1NUQUREUiA9ICcxMjcuMC4wLjEnOwogIyBUaGlzIGlz IHRoZSBwYXR0ZXJuIHRvIHVzZSBpbiBwZ19oYmEuY29uZiB0byBtYXRjaCBpbmNvbWluZyBj b25uZWN0aW9ucy4KIG15ICRTRVJWRVJIT1NUQ0lEUiA9ICcxMjcuMC4wLjEvMzInOwogCisj IERldGVybWluZSB3aGV0aGVyIGJ1aWxkIHN1cHBvcnRzIHNzbGNlcnRtb2RlPXJlcXVpcmUu CitteSAkc3VwcG9ydHNfc3NsY2VydG1vZGVfcmVxdWlyZSA9CisgIGNoZWNrX3BnX2NvbmZp ZygiI2RlZmluZSBIQVZFX1NTTF9DVFhfU0VUX0NFUlRfQ0IgMSIpOworCiAjIEFsbG9jYXRp b24gb2YgYmFzZSBjb25uZWN0aW9uIHN0cmluZyBzaGFyZWQgYW1vbmcgbXVsdGlwbGUgdGVz dHMuCiBteSAkY29tbW9uX2Nvbm5zdHI7CiAKQEAgLTE5MSw2ICsxOTUsMjIgQEAgJG5vZGUt PmNvbm5lY3Rfb2soCiAJIiRjb21tb25fY29ubnN0ciBzc2xyb290Y2VydD1zc2wvYm90aC1j YXMtMi5jcnQgc3NsbW9kZT12ZXJpZnktY2EiLAogCSJjZXJ0IHJvb3QgZmlsZSB0aGF0IGNv bnRhaW5zIHR3byBjZXJ0aWZpY2F0ZXMsIG9yZGVyIDIiKTsKIAorIyBzc2xjZXJ0bW9kZT1h bGxvdyBhbmQgPWRpc2FibGUgc2hvdWxkIGJvdGggd29yayB3aXRob3V0IGEgY2xpZW50IGNl cnRpZmljYXRlLgorJG5vZGUtPmNvbm5lY3Rfb2soCisJIiRjb21tb25fY29ubnN0ciBzc2xy b290Y2VydD1zc2wvcm9vdCtzZXJ2ZXJfY2EuY3J0IHNzbG1vZGU9cmVxdWlyZSBzc2xjZXJ0 bW9kZT1kaXNhYmxlIiwKKwkiY29ubmVjdCB3aXRoIHNzbGNlcnRtb2RlPWRpc2FibGUiKTsK KyRub2RlLT5jb25uZWN0X29rKAorCSIkY29tbW9uX2Nvbm5zdHIgc3Nscm9vdGNlcnQ9c3Ns L3Jvb3Qrc2VydmVyX2NhLmNydCBzc2xtb2RlPXJlcXVpcmUgc3NsY2VydG1vZGU9YWxsb3ci LAorCSJjb25uZWN0IHdpdGggc3NsY2VydG1vZGU9YWxsb3ciKTsKKworIyBzc2xjZXJ0bW9k ZT1yZXF1aXJlLCBob3dldmVyLCBzaG91bGQgZmFpbC4KKyRub2RlLT5jb25uZWN0X2ZhaWxz KAorCSIkY29tbW9uX2Nvbm5zdHIgc3Nscm9vdGNlcnQ9c3NsL3Jvb3Qrc2VydmVyX2NhLmNy dCBzc2xtb2RlPXJlcXVpcmUgc3NsY2VydG1vZGU9cmVxdWlyZSIsCisJImNvbm5lY3Qgd2l0 aCBzc2xjZXJ0bW9kZT1yZXF1aXJlIGZhaWxzIHdpdGhvdXQgYSBjbGllbnQgY2VydGlmaWNh dGUiLAorCWV4cGVjdGVkX3N0ZGVyciA9PiAkc3VwcG9ydHNfc3NsY2VydG1vZGVfcmVxdWly ZQorCQk/IHFyL3NlcnZlciBhY2NlcHRlZCBjb25uZWN0aW9uIHdpdGhvdXQgYSB2YWxpZCBj ZXJ0aWZpY2F0ZS8KKwkJOiBxci9zc2xjZXJ0bW9kZSB2YWx1ZSAicmVxdWlyZSIgaXMgbm90 IHN1cHBvcnRlZC8pOworCiAjIENSTCB0ZXN0cwogCiAjIEludmFsaWQgQ1JMIGZpbGVuYW1l IGlzIHRoZSBzYW1lIGFzIG5vIENSTCwgc3VjY2VlZHMKQEAgLTUzOCw2ICs1NTgsMjkgQEAg JG5vZGUtPmNvbm5lY3Rfb2soCiAJImNlcnRpZmljYXRlIGF1dGhvcml6YXRpb24gc3VjY2Vl ZHMgd2l0aCBjb3JyZWN0IGNsaWVudCBjZXJ0IGluIGVuY3J5cHRlZCBERVIgZm9ybWF0Igog KTsKIAorIyBjb3JyZWN0IGNsaWVudCBjZXJ0IHdpdGggcmVxdWlyZWQvYWxsb3dlZCBjZXJ0 aWZpY2F0ZSBhdXRoZW50aWNhdGlvbgoraWYgKCRzdXBwb3J0c19zc2xjZXJ0bW9kZV9yZXF1 aXJlKQoreworCSRub2RlLT5jb25uZWN0X29rKAorCQkiJGNvbW1vbl9jb25uc3RyIHVzZXI9 c3NsdGVzdHVzZXIgc3NsY2VydG1vZGU9cmVxdWlyZSBzc2xjZXJ0PXNzbC9jbGllbnQuY3J0 ICIKKwkJICAuIHNzbGtleSgnY2xpZW50LmtleScpLAorCQkiY2VydGlmaWNhdGUgYXV0aG9y aXphdGlvbiBzdWNjZWVkcyB3aXRoIHNzbGNlcnRtb2RlPXJlcXVpcmUiCisJKTsKK30KKyRu b2RlLT5jb25uZWN0X29rKAorCSIkY29tbW9uX2Nvbm5zdHIgdXNlcj1zc2x0ZXN0dXNlciBz c2xjZXJ0bW9kZT1hbGxvdyBzc2xjZXJ0PXNzbC9jbGllbnQuY3J0ICIKKwkgIC4gc3Nsa2V5 KCdjbGllbnQua2V5JyksCisJImNlcnRpZmljYXRlIGF1dGhvcml6YXRpb24gc3VjY2VlZHMg d2l0aCBzc2xjZXJ0bW9kZT1hbGxvdyIKKyk7CisKKyMgY2xpZW50IGNlcnQgaXNuJ3Qgc2Vu dCBpZiBjZXJ0aWZpY2F0ZSBhdXRoZW50aWNhdGlvbiBpcyBkaXNhYmxlZAorJG5vZGUtPmNv bm5lY3RfZmFpbHMoCisJIiRjb21tb25fY29ubnN0ciB1c2VyPXNzbHRlc3R1c2VyIHNzbGNl cnRtb2RlPWRpc2FibGUgc3NsY2VydD1zc2wvY2xpZW50LmNydCAiCisJICAuIHNzbGtleSgn Y2xpZW50LmtleScpLAorCSJjZXJ0aWZpY2F0ZSBhdXRob3JpemF0aW9uIGZhaWxzIHdpdGgg c3NsY2VydG1vZGU9ZGlzYWJsZSIsCisJZXhwZWN0ZWRfc3RkZXJyID0+IHFyL2Nvbm5lY3Rp b24gcmVxdWlyZXMgYSB2YWxpZCBjbGllbnQgY2VydGlmaWNhdGUvCispOworCiAjIGNvcnJl Y3QgY2xpZW50IGNlcnQgaW4gZW5jcnlwdGVkIFBFTSB3aXRoIHdyb25nIHBhc3N3b3JkCiAk bm9kZS0+Y29ubmVjdF9mYWlscygKIAkiJGNvbW1vbl9jb25uc3RyIHVzZXI9c3NsdGVzdHVz ZXIgc3NsY2VydD1zc2wvY2xpZW50LmNydCAiCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvbXN2 Yy9Tb2x1dGlvbi5wbSBiL3NyYy90b29scy9tc3ZjL1NvbHV0aW9uLnBtCmluZGV4IGMyYWNi NThkZjAuLmZmNmQ2ZjllMzUgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9tc3ZjL1NvbHV0aW9u LnBtCisrKyBiL3NyYy90b29scy9tc3ZjL1NvbHV0aW9uLnBtCkBAIC0zMjgsNiArMzI4LDcg QEAgc3ViIEdlbmVyYXRlRmlsZXMKIAkJSEFWRV9TRVRQUk9DVElUTEVfRkFTVCAgICAgICAg ICAgICAgICAgICA9PiB1bmRlZiwKIAkJSEFWRV9TT0NLTEVOX1QgICAgICAgICAgICAgICAg ICAgICAgICAgICA9PiAxLAogCQlIQVZFX1NQSU5MT0NLUyAgICAgICAgICAgICAgICAgICAg ICAgICAgID0+IDEsCisJCUhBVkVfU1NMX0NUWF9TRVRfQ0VSVF9DQiAgICAgICAgICAgICAg ICAgPT4gdW5kZWYsCiAJCUhBVkVfU1REQk9PTF9IICAgICAgICAgICAgICAgICAgICAgICAg ICAgPT4gMSwKIAkJSEFWRV9TVERJTlRfSCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9 PiAxLAogCQlIQVZFX1NURExJQl9IICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEs CkBAIC00ODksNiArNDkwLDEzIEBAIHN1YiBHZW5lcmF0ZUZpbGVzCiAKIAkJbXkgKCRkaWdp dDEsICRkaWdpdDIsICRkaWdpdDMpID0gJHNlbGYtPkdldE9wZW5TU0xWZXJzaW9uKCk7CiAK KwkJaWYgKCAgICgkZGlnaXQxID49ICczJyAmJiAkZGlnaXQyID49ICcwJyAmJiAkZGlnaXQz ID49ICcwJykKKwkJCXx8ICgkZGlnaXQxID49ICcxJyAmJiAkZGlnaXQyID49ICcxJyAmJiAk ZGlnaXQzID49ICcwJykKKwkJCXx8ICgkZGlnaXQxID49ICcxJyAmJiAkZGlnaXQyID49ICcw JyAmJiAkZGlnaXQzID49ICcyJykpCisJCXsKKwkJCSRkZWZpbmV7SEFWRV9TU0xfQ1RYX1NF VF9DRVJUX0NCfSA9IDE7CisJCX0KKwogCQkjIE1vcmUgc3ltYm9scyBhcmUgbmVlZGVkIHdp dGggT3BlblNTTCAxLjEuMCBhbmQgYWJvdmUuCiAJCWlmICggICAoJGRpZ2l0MSA+PSAnMycg JiYgJGRpZ2l0MiA+PSAnMCcgJiYgJGRpZ2l0MyA+PSAnMCcpCiAJCQl8fCAoJGRpZ2l0MSA+ PSAnMScgJiYgJGRpZ2l0MiA+PSAnMScgJiYgJGRpZ2l0MyA+PSAnMCcpKQotLSAKMi4yNS4x Cgo= --------------w7aGMidJ0MCBor7IhJ4MAi0M Content-Type: text/x-patch; charset=UTF-8; name="v12-0003-require_auth-decouple-SASL-and-SCRAM.patch" Content-Disposition: attachment; filename="v12-0003-require_auth-decouple-SASL-and-SCRAM.patch" Content-Transfer-Encoding: base64 RnJvbSA4NThkOTY3MzZkZmViYmE3Y2VhZjBlNTgyMWUyYzIyMmI2MGM2YzhmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amNoYW1waW9uQHRpbWVz Y2FsZS5jb20+CkRhdGU6IFR1ZSwgMTggT2N0IDIwMjIgMTY6NTU6MzYgLTA3MDAKU3ViamVj dDogW1BBVENIIHYxMiAzLzNdIHJlcXVpcmVfYXV0aDogZGVjb3VwbGUgU0FTTCBhbmQgU0NS QU0KClJhdGhlciB0aGFuIGFzc3VtZSB0aGF0IGFuIEFVVEhfUkVRX1NBU0wqIGNvZGUgcmVm ZXJzIHRvIFNDUkFNLVNIQS0yNTYsCmZ1dHVyZS1wcm9vZiBieSBzZXBhcmF0aW5nIHRoZSBz aW5nbGUgYWxsb3dsaXN0IGludG8gYSBsaXN0IG9mIGFsbG93ZWQKYXV0aGVudGljYXRpb24g cmVxdWVzdCBjb2RlcyBhbmQgYSBsaXN0IG9mIGFsbG93ZWQgU0FTTCBtZWNoYW5pc21zLgoK VGhlIHJlcXVpcmVfYXV0aCBjaGVjayBpcyBub3cgc2VwYXJhdGVkIGludG8gdHdvIHRpZXJz LiBUaGUKQVVUSF9SRVFfU0FTTCogY29kZXMgYXJlIGFsd2F5cyBhbGxvd2VkLiBJZiB0aGUg c2VydmVyIHNlbmRzIG9uZSwKcmVzcG9uc2liaWxpdHkgZm9yIHRoZSBjaGVjayB0aGVuIGZh bGxzIHRvIHBnX1NBU0xfaW5pdCgpLCB3aGljaApjb21wYXJlcyB0aGUgc2VsZWN0ZWQgbWVj aGFuaXNtIGFnYWluc3QgdGhlIGxpc3Qgb2YgYWxsb3dlZCBtZWNoYW5pc21zLgooT3RoZXIg U0NSQU0gY29kZSBpcyBhbHJlYWR5IHJlc3BvbnNpYmxlIGZvciByZWplY3RpbmcgdW5leHBl Y3RlZCBvcgpvdXQtb2Ytb3JkZXIgQVVUSF9SRVFfU0FTTF8qIGNvZGVzLCBzbyB0aGF0J3Mg bm90IGV4cGxpY2l0bHkgaGFuZGxlZAp3aXRoIHRoaXMgYWRkaXRpb24uKQoKU2luY2UgdGhl cmUncyBvbmx5IG9uZSByZWNvZ25pemVkIFNBU0wgbWVjaGFuaXNtLCBjb25uLT5zYXNsX21l Y2hzCmN1cnJlbnRseSBvbmx5IHBvaW50cyBhdCBzdGF0aWMgaGFyZGNvZGVkIGxpc3RzLiBX aGVuZXZlciBhIHNlY29uZAptZWNoYW5pc20gaXMgYWRkZWQsIHRoZSBsaXN0IHdpbGwgbmVl ZCB0byBiZSBtYW5hZ2VkIGR5bmFtaWNhbGx5LgotLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLWF1dGguYyAgICAgICAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKwogc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jICAgICAgICAgfCA0MiArKysrKysrKysrKysr KysrKysrLS0tLQogc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggICAgICAgICAg fCAgMiArKwogc3JjL3Rlc3QvYXV0aGVudGljYXRpb24vdC8wMDFfcGFzc3dvcmQucGwgfCAx MCArKystLS0KIHNyYy90ZXN0L3NzbC90LzAwMl9zY3JhbS5wbCAgICAgICAgICAgICAgIHwg IDYgKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLmMgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLmMKaW5kZXggMjk1Yjk3ODUyNS4uMjRjMzFh ZTYyNCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC5jCisrKyBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGguYwpAQCAtNTM2LDYgKzUzNiw0MSBAQCBw Z19TQVNMX2luaXQoUEdjb25uICpjb25uLCBpbnQgcGF5bG9hZGxlbikKIAkJZ290byBlcnJv cjsKIAl9CiAKKwkvKgorCSAqIEJlZm9yZSBnb2luZyBhaGVhZCB3aXRoIGFueSBTQVNMIGV4 Y2hhbmdlLCBlbnN1cmUgdGhhdCB0aGUgdXNlciBoYXMKKwkgKiBhbGxvd2VkIChvciwgYWx0 ZXJuYXRpdmVseSwgaGFzIG5vdCBmb3JiaWRkZW4pIHRoaXMgcGFydGljdWxhciBtZWNoYW5p c20uCisJICoKKwkgKiBJbiBhIGh5cG90aGV0aWNhbCBmdXR1cmUgd2hlcmUgYSBzZXJ2ZXIg cmVzcG9uZHMgd2l0aCBtdWx0aXBsZSBTQVNMCisJICogbWVjaGFuaXNtIGZhbWlsaWVzLCB3 ZSB3b3VsZCBuZWVkIHRvIGluc3RlYWQgY29uc3VsdCB0aGlzIGxpc3QgdXAgYWJvdmUsCisJ ICogZHVyaW5nIG1lY2hhbmlzbSBuZWdvdGlhdGlvbi4gV2UgZG9uJ3QgbGl2ZSBpbiB0aGF0 IHdvcmxkIHlldC4gVGhlIHNlcnZlcgorCSAqIHByZXNlbnRzIG9uZSBhdXRoIG1ldGhvZCBh bmQgd2UgZGVjaWRlIHdoZXRoZXIgdGhhdCdzIGFjY2VwdGFibGUgb3Igbm90LgorCSAqLwor CWlmIChjb25uLT5zYXNsX21lY2hzKQorCXsKKwkJY29uc3QgY2hhciAqKm1lY2g7CisJCWJv b2wJCWZvdW5kID0gZmFsc2U7CisKKwkJQXNzZXJ0KGNvbm4tPnJlcXVpcmVfYXV0aCk7CisK KwkJZm9yIChtZWNoID0gY29ubi0+c2FzbF9tZWNoczsgKm1lY2g7IG1lY2grKykKKwkJewor CQkJaWYgKHN0cmNtcCgqbWVjaCwgc2VsZWN0ZWRfbWVjaGFuaXNtKSA9PSAwKQorCQkJewor CQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCisJCWlmICgoY29u bi0+c2FzbF9tZWNoc19kZW5pZWQgJiYgZm91bmQpCisJCQl8fCAoIWNvbm4tPnNhc2xfbWVj aHNfZGVuaWVkICYmICFmb3VuZCkpCisJCXsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25u LT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJhdXRoIG1ldGhvZCBc IiVzXCIgcmVxdWlyZW1lbnQgZmFpbGVkOiBzZXJ2ZXIgcmVxdWVzdGVkIHVuYWNjZXB0YWJs ZSBTQVNMIG1lY2hhbmlzbSBcIiVzXCJcbiIpLAorCQkJCQkJCSAgY29ubi0+cmVxdWlyZV9h dXRoLCBzZWxlY3RlZF9tZWNoYW5pc20pOworCQkJZ290byBlcnJvcjsKKwkJfQorCX0KKwog CWlmIChjb25uLT5jaGFubmVsX2JpbmRpbmdbMF0gPT0gJ3InICYmCS8qIHJlcXVpcmUgKi8K IAkJc3RyY21wKHNlbGVjdGVkX21lY2hhbmlzbSwgU0NSQU1fU0hBXzI1Nl9QTFVTX05BTUUp ICE9IDApCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVj dC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCmluZGV4IGVhY2E4Y2Vl MWYuLmJlMDAyYjRmZGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNv bm5lY3QuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKQEAgLTEy NTksMTEgKzEyNTksMjUgQEAgY29ubmVjdE9wdGlvbnMyKFBHY29ubiAqY29ubikKIAkJYm9v bAkJZmlyc3QsIG1vcmU7CiAJCWJvb2wJCW5lZ2F0ZWQgPSBmYWxzZTsKIAorCQlzdGF0aWMg Y29uc3QgdWludDMyIGRlZmF1bHRfbWV0aG9kcyA9ICgKKwkJCTEgPDwgQVVUSF9SRVFfU0FT TAorCQkJfCAxIDw8IEFVVEhfUkVRX1NBU0xfQ09OVAorCQkJfCAxIDw8IEFVVEhfUkVRX1NB U0xfRklOCisJCSk7CisJCXN0YXRpYyBjb25zdCBjaGFyICpub19tZWNoc1tdID0geyBOVUxM IH07CisKIAkJLyoKLQkJICogQnkgZGVmYXVsdCwgc3RhcnQgZnJvbSBhbiBlbXB0eSBzZXQg b2YgYWxsb3dlZCBvcHRpb25zIGFuZCBhZGQgdG8gaXQuCisJCSAqIEJ5IGRlZmF1bHQsIHN0 YXJ0IGZyb20gYSBtaW5pbXVtIHNldCBvZiBhbGxvd2VkIG9wdGlvbnMgYW5kIGFkZCB0bwor CQkgKiBpdC4KKwkJICoKKwkJICogTkI6IFRoZSBTQVNMIG1ldGhvZCBjb2RlcyBhcmUgYWx3 YXlzICJhbGxvd2VkIiBoZXJlLiBJZiB0aGUgc2VydmVyCisJCSAqIHJlcXVlc3RzIFNBU0wg YXV0aCwgcGdfU0FTTF9pbml0KCkgd2lsbCBlbmZvcmNlIGFkaGVyZW5jZSB0byB0aGUKKwkJ ICogc2FzbF9tZWNocyBsaXN0LCB3aGljaCBieSBkZWZhdWx0IGlzIGVtcHR5LgogCQkgKi8K IAkJY29ubi0+YXV0aF9yZXF1aXJlZCA9IHRydWU7Ci0JCWNvbm4tPmFsbG93ZWRfYXV0aF9t ZXRob2RzID0gMDsKKwkJY29ubi0+YWxsb3dlZF9hdXRoX21ldGhvZHMgPSBkZWZhdWx0X21l dGhvZHM7CisJCWNvbm4tPnNhc2xfbWVjaHMgPSBub19tZWNoczsKKwkJY29ubi0+c2FzbF9t ZWNoc19kZW5pZWQgPSBmYWxzZTsKIAogCQlmb3IgKGZpcnN0ID0gdHJ1ZSwgbW9yZSA9IHRy dWU7IG1vcmU7IGZpcnN0ID0gZmFsc2UpCiAJCXsKQEAgLTEyODksNiArMTMwMyw5IEBAIGNv bm5lY3RPcHRpb25zMihQR2Nvbm4gKmNvbm4pCiAJCQkJCSAqLwogCQkJCQljb25uLT5hdXRo X3JlcXVpcmVkID0gZmFsc2U7CiAJCQkJCWNvbm4tPmFsbG93ZWRfYXV0aF9tZXRob2RzID0g LTE7CisKKwkJCQkJLyogY29ubi0+c2FzbF9tZWNocyBpcyBub3cgYSBsaXN0IG9mIGRlbmll ZCBtZWNoYW5pc21zLiAqLworCQkJCQljb25uLT5zYXNsX21lY2hzX2RlbmllZCA9IHRydWU7 CiAJCQkJfQogCQkJCWVsc2UgaWYgKCFuZWdhdGVkKQogCQkJCXsKQEAgLTEzMzUsMTAgKzEz NTIsMjMgQEAgY29ubmVjdE9wdGlvbnMyKFBHY29ubiAqY29ubikKIAkJCX0KIAkJCWVsc2Ug aWYgKHN0cmNtcChtZXRob2QsICJzY3JhbS1zaGEtMjU2IikgPT0gMCkKIAkJCXsKLQkJCQkv KiBUaGlzIGN1cnJlbnRseSBhc3N1bWVzIHRoYXQgU0NSQU0gaXMgdGhlIG9ubHkgU0FTTCBt ZXRob2QuICovCi0JCQkJYml0cyA9ICgxIDw8IEFVVEhfUkVRX1NBU0wpOwotCQkJCWJpdHMg fD0gKDEgPDwgQVVUSF9SRVFfU0FTTF9DT05UKTsKLQkJCQliaXRzIHw9ICgxIDw8IEFVVEhf UkVRX1NBU0xfRklOKTsKKwkJCQlzdGF0aWMgY29uc3QgY2hhciAqc2NyYW1fbWVjaHNbXSA9 IHsKKwkJCQkJU0NSQU1fU0hBXzI1Nl9OQU1FLAorCQkJCQlTQ1JBTV9TSEFfMjU2X1BMVVNf TkFNRSwKKwkJCQkJTlVMTCAvKiBsaXN0IHRlcm1pbmF0b3IgKi8KKwkJCQl9OworCisJCQkJ LyoKKwkJCQkgKiBUaGlzIGN1cnJlbnRseSBhc3N1bWVzIHRoYXQgU0NSQU0gaXMgdGhlIG9u bHkgU0FTTCBtZXRob2QuCisJCQkJICogT25jZSBhIHNlY29uZCBtZWNoYW5pc20gaXMgYWRk ZWQsIHRoaXMgY29kZSB3aWxsIG5lZWQgdG8gYWRkCisJCQkJICogdG8gdGhlIGxpc3QgaW5z dGVhZCBvZiByZXBsYWNpbmcgaXQgd2hvbGVzYWxlLgorCQkJCSAqLworCQkJCWlmIChjb25u LT5zYXNsX21lY2hzWzBdKQorCQkJCQlnb3RvIGR1cGxpY2F0ZTsKKwkJCQljb25uLT5zYXNs X21lY2hzID0gc2NyYW1fbWVjaHM7CisKKwkJCQlmcmVlKHBhcnQpOworCQkJCWNvbnRpbnVl OyAvKiBhdm9pZCB0aGUgYml0bWFzayBtYW5pcHVsYXRpb24gYmVsb3cgKi8KIAkJCX0KIAkJ CWVsc2UgaWYgKHN0cmNtcChtZXRob2QsICJub25lIikgPT0gMCkKIAkJCXsKZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvbGlicHEtaW50LmgKaW5kZXggYWQ2ZjhiNzhjNi4uNmZkYmE5NjBkYSAxMDA2NDQK LS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKKysrIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvbGlicHEtaW50LmgKQEAgLTQ2MSw2ICs0NjEsOCBAQCBzdHJ1Y3QgcGdf Y29ubgogCiAJYm9vbAkJYXV0aF9yZXF1aXJlZDsJLyogcmVxdWlyZSBhbiBhdXRoZW50aWNh dGlvbiBjaGFsbGVuZ2UgZnJvbSB0aGUgc2VydmVyPyAqLwogCXVpbnQzMgkJYWxsb3dlZF9h dXRoX21ldGhvZHM7CS8qIGJpdG1hc2sgb2YgYWNjZXB0YWJsZSBBdXRoUmVxdWVzdCBjb2Rl cyAqLworCWNvbnN0IGNoYXIgKipzYXNsX21lY2hzOwkvKiBsaXN0IG9mIGFsbG93ZWQvZGVu aWVkIFNBU0wgbWVjaGFuaXNtcyAqLworCWJvb2wJCXNhc2xfbWVjaHNfZGVuaWVkOwkvKiBp cyB0aGUgc2FzbF9tZWNocyBsaXN0IGZvcmJpZGRlbj8gKi8KIAogCS8qIFRyYW5zaWVudCBz dGF0ZSBuZWVkZWQgd2hpbGUgZXN0YWJsaXNoaW5nIGNvbm5lY3Rpb24gKi8KIAlQR1Rhcmdl dFNlcnZlclR5cGUgdGFyZ2V0X3NlcnZlcl90eXBlOwkvKiBkZXNpcmVkIHNlc3Npb24gcHJv cGVydGllcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvYXV0aGVudGljYXRpb24vdC8wMDFf cGFzc3dvcmQucGwgYi9zcmMvdGVzdC9hdXRoZW50aWNhdGlvbi90LzAwMV9wYXNzd29yZC5w bAppbmRleCAwMWYyNTZiYmJjLi45ZWY0MDg4ZGNlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9h dXRoZW50aWNhdGlvbi90LzAwMV9wYXNzd29yZC5wbAorKysgYi9zcmMvdGVzdC9hdXRoZW50 aWNhdGlvbi90LzAwMV9wYXNzd29yZC5wbApAQCAtMjQzLDIxICsyNDMsMjEgQEAgJG5vZGUt PmNvbm5lY3Rfb2soInVzZXI9c2NyYW1fcm9sZSByZXF1aXJlX2F1dGg9cGFzc3dvcmQsc2Ny YW0tc2hhLTI1NixtZDUiLAogIyAuLi5mYWlsIGZvciBvdGhlciBhdXRoIHR5cGVzLi4uCiAk bm9kZS0+Y29ubmVjdF9mYWlscygidXNlcj1zY3JhbV9yb2xlIHJlcXVpcmVfYXV0aD1wYXNz d29yZCIsCiAJInBhc3N3b3JkIGF1dGhlbnRpY2F0aW9uIGNhbiBiZSByZXF1aXJlZDogZmFp bHMgd2l0aCBTQ1JBTSBhdXRoIiwKLQlleHBlY3RlZF9zdGRlcnIgPT4gcXIvc2VydmVyIHJl cXVlc3RlZCBTQVNMIGF1dGhlbnRpY2F0aW9uLyk7CisJZXhwZWN0ZWRfc3RkZXJyID0+IHFy L3NlcnZlciByZXF1ZXN0ZWQgdW5hY2NlcHRhYmxlIFNBU0wgbWVjaGFuaXNtICJTQ1JBTS1T SEEtMjU2Ii8pOwogJG5vZGUtPmNvbm5lY3RfZmFpbHMoInVzZXI9c2NyYW1fcm9sZSByZXF1 aXJlX2F1dGg9bWQ1IiwKIAkibWQ1IGF1dGhlbnRpY2F0aW9uIGNhbiBiZSByZXF1aXJlZDog ZmFpbHMgd2l0aCBTQ1JBTSBhdXRoIiwKLQlleHBlY3RlZF9zdGRlcnIgPT4gcXIvc2VydmVy IHJlcXVlc3RlZCBTQVNMIGF1dGhlbnRpY2F0aW9uLyk7CisJZXhwZWN0ZWRfc3RkZXJyID0+ IHFyL3NlcnZlciByZXF1ZXN0ZWQgdW5hY2NlcHRhYmxlIFNBU0wgbWVjaGFuaXNtICJTQ1JB TS1TSEEtMjU2Ii8pOwogJG5vZGUtPmNvbm5lY3RfZmFpbHMoInVzZXI9c2NyYW1fcm9sZSBy ZXF1aXJlX2F1dGg9bm9uZSIsCiAJImFsbCBhdXRoZW50aWNhdGlvbiBjYW4gYmUgZm9yYmlk ZGVuOiBmYWlscyB3aXRoIFNDUkFNIGF1dGgiLAotCWV4cGVjdGVkX3N0ZGVyciA9PiBxci9z ZXJ2ZXIgcmVxdWVzdGVkIFNBU0wgYXV0aGVudGljYXRpb24vKTsKKwlleHBlY3RlZF9zdGRl cnIgPT4gcXIvc2VydmVyIHJlcXVlc3RlZCB1bmFjY2VwdGFibGUgU0FTTCBtZWNoYW5pc20g IlNDUkFNLVNIQS0yNTYiLyk7CiAKICMgLi4uYW5kIGFsbG93IFNDUkFNIGF1dGhlbnRpY2F0 aW9uIHRvIGJlIHByb2hpYml0ZWQuCiAkbm9kZS0+Y29ubmVjdF9mYWlscygidXNlcj1zY3Jh bV9yb2xlIHJlcXVpcmVfYXV0aD0hc2NyYW0tc2hhLTI1NiIsCiAJIlNDUkFNIGF1dGhlbnRp Y2F0aW9uIGNhbiBiZSBmb3JiaWRkZW46IGZhaWxzIHdpdGggU0NSQU0gYXV0aCIsCi0JZXhw ZWN0ZWRfc3RkZXJyID0+IHFyL3NlcnZlciByZXF1ZXN0ZWQgU0FTTCBhdXRoZW50aWNhdGlv bi8pOworCWV4cGVjdGVkX3N0ZGVyciA9PiBxci9zZXJ2ZXIgcmVxdWVzdGVkIHVuYWNjZXB0 YWJsZSBTQVNMIG1lY2hhbmlzbSAiU0NSQU0tU0hBLTI1NiIvKTsKICRub2RlLT5jb25uZWN0 X2ZhaWxzKCJ1c2VyPXNjcmFtX3JvbGUgcmVxdWlyZV9hdXRoPSFwYXNzd29yZCwhbWQ1LCFz Y3JhbS1zaGEtMjU2IiwKIAkibXVsdGlwbGUgYXV0aGVudGljYXRpb24gdHlwZXMgY2FuIGJl IGZvcmJpZGRlbjogZmFpbHMgd2l0aCBTQ1JBTSBhdXRoIiwKLQlleHBlY3RlZF9zdGRlcnIg PT4gcXIvc2VydmVyIHJlcXVlc3RlZCBTQVNMIGF1dGhlbnRpY2F0aW9uLyk7CisJZXhwZWN0 ZWRfc3RkZXJyID0+IHFyL3NlcnZlciByZXF1ZXN0ZWQgdW5hY2NlcHRhYmxlIFNBU0wgbWVj aGFuaXNtICJTQ1JBTS1TSEEtMjU2Ii8pOwogCiAjIFRlc3QgdGhhdCBiYWQgcGFzc3dvcmRz IGFyZSByZWplY3RlZC4KICRFTlZ7IlBHUEFTU1dPUkQifSA9ICdiYWRwYXNzJzsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3NzbC90LzAwMl9zY3JhbS5wbCBiL3NyYy90ZXN0L3NzbC90LzAw Ml9zY3JhbS5wbAppbmRleCBjZjYxYmM3ZDBkLi40NzJiMmVmZGYxIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9zc2wvdC8wMDJfc2NyYW0ucGwKKysrIGIvc3JjL3Rlc3Qvc3NsL3QvMDAyX3Nj cmFtLnBsCkBAIC0xNTAsNiArMTUwLDEyIEBAIGlmICgkc3VwcG9ydHNfdGxzX3NlcnZlcl9l bmRfcG9pbnQpCiAJJG5vZGUtPmNvbm5lY3Rfb2soCiAJCSIkY29tbW9uX2Nvbm5zdHIgdXNl cj1zc2x0ZXN0dXNlciBjaGFubmVsX2JpbmRpbmc9cmVxdWlyZSByZXF1aXJlX2F1dGg9c2Ny YW0tc2hhLTI1NiIsCiAJCSJTQ1JBTSB3aXRoIFNTTCwgY2hhbm5lbF9iaW5kaW5nPXJlcXVp cmUsIGFuZCByZXF1aXJlX2F1dGg9c2NyYW0tc2hhLTI1NiIpOworCSRub2RlLT5jb25uZWN0 X2ZhaWxzKAorCQkiJGNvbW1vbl9jb25uc3RyIHVzZXI9c3NsdGVzdHVzZXIgY2hhbm5lbF9i aW5kaW5nPXJlcXVpcmUgcmVxdWlyZV9hdXRoPXBhc3N3b3JkIiwKKwkJIlNDUkFNIHdpdGgg U1NMLCBjaGFubmVsX2JpbmRpbmc9cmVxdWlyZSwgYW5kIHJlcXVpcmVfYXV0aD1wYXNzd29y ZCIsCisJCWV4cGVjdGVkX3N0ZGVyciA9PgorCQkgIHFyL3NlcnZlciByZXF1ZXN0ZWQgdW5h Y2NlcHRhYmxlIFNBU0wgbWVjaGFuaXNtICJTQ1JBTS1TSEEtMjU2LVBMVVMiLworCSk7CiB9 CiBlbHNlCiB7Ci0tIAoyLjI1LjEKCg== --------------w7aGMidJ0MCBor7IhJ4MAi0M--