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 1lwKTy-0001kp-1T for pgsql-hackers@arkaria.postgresql.org; Thu, 24 Jun 2021 08:13:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lwKTw-0002J5-Km for pgsql-hackers@arkaria.postgresql.org; Thu, 24 Jun 2021 08:13:04 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lwKTv-0002Ir-Mq for pgsql-hackers@lists.postgresql.org; Thu, 24 Jun 2021 08:13:04 +0000 Received: from forward2-smtp.messagingengine.com ([66.111.4.226]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lwKTn-0001le-Js for pgsql-hackers@postgresql.org; Thu, 24 Jun 2021 08:13:01 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailforward.nyi.internal (Postfix) with ESMTP id 5FA55194035C for ; Thu, 24 Jun 2021 04:12:52 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Thu, 24 Jun 2021 04:12:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=XNGaCl DKQI722AqzoyKlCi2Dl6qINIai0la8J+ovnYU=; b=WinRTNZw9Jn0oneW99C0FC 6G89CJ2XmCd5/O1e3PL/YqAdL7iRbKIF4DMDMjKHVpVQDYkpD+/5WJOJXHbILmbq szFxmQA2/F+cqyPecWqsENwxqsLgB+v18vJMJ4FlZuAvnO4ZO2opTCBn9Ffvruer 9Nxi9zNO9pF1mBgwX2Ix6BjiQyyGK5l+HtawTI3fYUDcRp3o4MOZjcQIhhHFM95P xz4tW9RqagDynibu7UQiehfNsZ0XHsG9+/bIjETg02Va40/HDodCfIYXK1t6a9yq r4yZj1WkBhrexYuYuvXVisieHejPZgOkkuXQ0EOYO9CttYC2TLVXAPHzy9doPaUw == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrfeeghedgtdduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefuhffvfhfkffgfgggjtgesmhdtre ertdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdr vghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrth htvghrnhepudevieeguddtkeeffedtleevlefhuedvffdvhfekfeeiteevueffueejkeeg lefhnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepph gvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Thu, 24 Jun 2021 04:12:51 -0400 (EDT) Subject: Re: wrong relkind error messages From: Peter Eisentraut To: pgsql-hackers References: Message-ID: <01d4fd55-d4fe-5afc-446c-a7f99e043f3d@enterprisedb.com> Date: Thu, 24 Jun 2021 10:12:49 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------80830375E92DA52E5834045C" Content-Language: en-US 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. --------------80830375E92DA52E5834045C Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit On 13.04.20 15:54, Peter Eisentraut wrote: > I'm not a fan of error messages like > >     relation "%s" is not a table, foreign table, or materialized view > > It doesn't tell me what's wrong, it only tells me what else could have > worked.  It's also tedious to maintain and the number of combinations > grows over time. Another go at this. I believe in the attached patch I have addressed all the feedback during this thread last year. In particular, I have rephrased the detail message per discussion, and I have improved the messages produced by ATSimplePermissions() with more details. Examples: CREATE STATISTICS tststats.s2 ON a, b FROM tststats.ti; -ERROR: relation "ti" is not a table, foreign table, or materialized view +ERROR: cannot define statistics for relation "ti" +DETAIL: This operation is not supported for indexes. ALTER FOREIGN TABLE ft1 ALTER CONSTRAINT ft1_c9_check DEFERRABLE; -- ERROR -ERROR: "ft1" is not a table +ERROR: ALTER action ALTER CONSTRAINT cannot be performed on relation "ft1" +DETAIL: This operation is not supported for foreign tables. There might be room for some wordsmithing in a few places, but generally I think this is complete. --------------80830375E92DA52E5834045C Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v2-0001-Improve-error-messages-about-mismatching-relkind.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v2-0001-Improve-error-messages-about-mismatching-relkind.pat"; filename*1="ch" RnJvbSBiYzNjMTFjNzY0Mjc2NDYzODc3MThmYmJkZmI1MzRjNTZiODE5ZTQzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAyNCBKdW4gMjAyMSAxMDowODowMyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjJdIEltcHJvdmUgZXJyb3IgbWVzc2FnZXMgYWJvdXQgbWlzbWF0Y2hpbmcg cmVsa2luZAoKTW9zdCBlcnJvciBtZXNzYWdlcyBhYm91dCBhIHJlbGtpbmQgdGhhdCB3YXMg bm90IHN1cHBvcnRlZCBvcgphcHByb3ByaWF0ZSBmb3IgdGhlIGNvbW1hbmQgd2FzIG9mIHRo ZSBwYXR0ZXJuCgogICAgInJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSB0YWJsZSwgZm9yZWln biB0YWJsZSwgb3IgbWF0ZXJpYWxpemVkIHZpZXciCgpUaGlzIHN0eWxlIGNhbiBiZWNvbWUg dmVyYm9zZSBhbmQgdGVkaW91cyB0byBtYWludGFpbi4gIE1vcmVvdmVyLCBpdCdzCm5vdCB2 ZXJ5IGhlbHBmdWw6IElmIEknbSB0cnlpbmcgdG8gY3JlYXRlIGEgY29tbWVudCBvbiBhIFRP QVNUIHRhYmxlLAp3aGljaCBpcyBub3Qgc3VwcG9ydGVkLCB0aGVuIHRoZSBpbmZvcm1hdGlv biB0aGF0IEkgY291bGQgaGF2ZSBjcmVhdGVkCmEgY29tbWVudCBvbiBhIG1hdGVyaWFsaXpl ZCB2aWV3IGlzIHBvaW50bGVzcy4KCkluc3RlYWQsIHdyaXRlIHRoZSBwcmltYXJ5IGVycm9y IG1lc3NhZ2Ugc2hvcnRlciBhbmQgc2F5aW5nIG1vcmUKZGlyZWN0bHkgdGhhdCB3aGF0IHdh cyBhdHRlbXB0ZWQgaXMgbm90IHBvc3NpYmxlLiAgVGhlbiwgaW4gdGhlIGRldGFpbAptZXNz YWdlLCBleHBsYWluIHRoYXQgdGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB0 aGUgcmVsa2luZAp0aGUgb2JqZWN0IHdhcy4gIFRvIHNpbXBsaWZ5IHRoYXQsIGFkZCBhIG5l dyBmdW5jdGlvbgplcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKCkgdGhhdCBkb2Vz IHRoaXMuCgpJbiBwYXNzaW5nLCBtYWtlIHVzZSBvZiBSRUxLSU5EX0hBU19TVE9SQUdFKCkg d2hlcmUgYXBwcm9wcmlhdGUsCmluc3RlYWQgb2YgbGlzdGluZyBvdXQgdGhlIHJlbGtpbmRz IGluZGl2aWR1YWxseS4KLS0tCiBjb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfaGVh cC5vdXQgICAgICAgfCAgMTUgKy0KIGNvbnRyaWIvYW1jaGVjay92ZXJpZnlfaGVhcGFtLmMg ICAgICAgICAgICAgICB8ICAzOCArLQogY29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9w YWdlLm91dCAgICAgICAgIHwgICA2ICstCiBjb250cmliL3BhZ2VpbnNwZWN0L3Jhd3BhZ2Uu YyAgICAgICAgICAgICAgICAgfCAgMjggKy0KIGNvbnRyaWIvcGdfc3VyZ2VyeS9leHBlY3Rl ZC9oZWFwX3N1cmdlcnkub3V0ICB8ICAgNiArLQogY29udHJpYi9wZ19zdXJnZXJ5L2hlYXBf c3VyZ2VyeS5jICAgICAgICAgICAgIHwgIDU0ICsrLQogLi4uL3BnX3Zpc2liaWxpdHkvZXhw ZWN0ZWQvcGdfdmlzaWJpbGl0eS5vdXQgIHwgIDc1ICsrLS0KIGNvbnRyaWIvcGdfdmlzaWJp bGl0eS9wZ192aXNpYmlsaXR5LmMgICAgICAgICB8ICAgNSArLQogY29udHJpYi9wZ3N0YXR0 dXBsZS9leHBlY3RlZC9wZ3N0YXR0dXBsZS5vdXQgIHwgIDMwICstCiBjb250cmliL3Bnc3Rh dHR1cGxlL3Bnc3RhdGFwcHJveC5jICAgICAgICAgICAgfCAgIDUgKy0KIGNvbnRyaWIvcGdz dGF0dHVwbGUvcGdzdGF0aW5kZXguYyAgICAgICAgICAgICB8ICA3NSArLS0tCiBjb250cmli L3Bnc3RhdHR1cGxlL3Bnc3RhdHR1cGxlLmMgICAgICAgICAgICAgfCAgMzEgKy0KIHNyYy9i YWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMv YmFja2VuZC9jYXRhbG9nL3BnX2NsYXNzLmMgICAgICAgICAgICAgICAgfCAgNTIgKysrCiBz cmMvYmFja2VuZC9jYXRhbG9nL3RvYXN0aW5nLmMgICAgICAgICAgICAgICAgfCAgIDYgKy0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbW1lbnQuYyAgICAgICAgICAgICAgICB8ICAgNSAr LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgICAgICAgICAgICAgIHwgIDE2 ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9sb2NrY21kcy5jICAgICAgICAgICAgICAgfCAg IDUgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMgICAgICAgICAgICAgICB8 ICAgNSArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VxdWVuY2UuYyAgICAgICAgICAgICAg IHwgICA1ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYyAgICAgICAgICAg ICAgfCAgIDUgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAg ICAgICB8IDM1NiArKysrKysrKysrKy0tLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Ry aWdnZXIuYyAgICAgICAgICAgICAgICB8ICAxNSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgICA1ICstCiBzcmMvYmFja2VuZC9yZXdyaXRl L3Jld3JpdGVEZWZpbmUuYyAgICAgICAgICAgfCAgIDggKy0KIHNyYy9pbmNsdWRlL2NhdGFs b2cvcGdfY2xhc3MuaCAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCAgICAgfCAgIDkgKy0KIC4uLi9yZWdyZXNzL2V4 cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dCAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0ICAgIHwgICA2ICstCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2luZGV4aW5nLm91dCAgICAgICAgfCAgIDMgKy0KIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VxdWVuY2Uub3V0ICAgICAgICB8ICAgMyArLQogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zdGF0c19leHQub3V0ICAgICAgIHwgIDEyICstCiAzMiBm aWxlcyBjaGFuZ2VkLCA1MTEgaW5zZXJ0aW9ucygrKSwgMzc4IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2xhc3MuYwoKZGlmZiAt LWdpdCBhL2NvbnRyaWIvYW1jaGVjay9leHBlY3RlZC9jaGVja19oZWFwLm91dCBiL2NvbnRy aWIvYW1jaGVjay9leHBlY3RlZC9jaGVja19oZWFwLm91dAppbmRleCAxZmIzODIzMTQyLi5h ZDMwODZkMmFhIDEwMDY0NAotLS0gYS9jb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tf aGVhcC5vdXQKKysrIGIvY29udHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNrX2hlYXAub3V0 CkBAIC0xMzksNyArMTM5LDggQEAgQ1JFQVRFIFRBQkxFIHRlc3RfcGFydGl0aW9uZWQgKGEg aW50LCBiIHRleHQgZGVmYXVsdCByZXBlYXQoJ3gnLCA1MDAwKSkKIFNFTEVDVCAqIEZST00g dmVyaWZ5X2hlYXBhbSgndGVzdF9wYXJ0aXRpb25lZCcsCiAJCQkJCQkJc3RhcnRibG9jayA6 PSBOVUxMLAogCQkJCQkJCWVuZGJsb2NrIDo9IE5VTEwpOwotRVJST1I6ICAidGVzdF9wYXJ0 aXRpb25lZCIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0 YWJsZQorRVJST1I6ICBjYW5ub3QgY2hlY2sgcmVsYXRpb24gInRlc3RfcGFydGl0aW9uZWQi CitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBwYXJ0aXRp b25lZCB0YWJsZXMuCiAtLSBDaGVjayB0aGF0IHZhbGlkIG9wdGlvbnMgYXJlIG5vdCByZWpl Y3RlZCBub3IgY29ycnVwdGlvbiByZXBvcnRlZAogLS0gZm9yIGFuIGVtcHR5IHBhcnRpdGlv biB0YWJsZSAodGhlIGNoaWxkIG9uZSkKIENSRUFURSBUQUJMRSB0ZXN0X3BhcnRpdGlvbiBw YXJ0aXRpb24gT0YgdGVzdF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgxKTsKQEAgLTE2 NSwxOSArMTY2LDIyIEBAIENSRUFURSBJTkRFWCB0ZXN0X2luZGV4IE9OIHRlc3RfcGFydGl0 aW9uIChhKTsKIFNFTEVDVCAqIEZST00gdmVyaWZ5X2hlYXBhbSgndGVzdF9pbmRleCcsCiAJ CQkJCQkJc3RhcnRibG9jayA6PSBOVUxMLAogCQkJCQkJCWVuZGJsb2NrIDo9IE5VTEwpOwot RVJST1I6ICAidGVzdF9pbmRleCIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3 LCBvciBUT0FTVCB0YWJsZQorRVJST1I6ICBjYW5ub3QgY2hlY2sgcmVsYXRpb24gInRlc3Rf aW5kZXgiCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBp bmRleGVzLgogLS0gQ2hlY2sgdGhhdCB2aWV3cyBhcmUgcmVqZWN0ZWQKIENSRUFURSBWSUVX IHRlc3RfdmlldyBBUyBTRUxFQ1QgMTsKIFNFTEVDVCAqIEZST00gdmVyaWZ5X2hlYXBhbSgn dGVzdF92aWV3JywKIAkJCQkJCQlzdGFydGJsb2NrIDo9IE5VTEwsCiAJCQkJCQkJZW5kYmxv Y2sgOj0gTlVMTCk7Ci1FUlJPUjogICJ0ZXN0X3ZpZXciIGlzIG5vdCBhIHRhYmxlLCBtYXRl cmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAgY2Fubm90IGNoZWNrIHJl bGF0aW9uICJ0ZXN0X3ZpZXciCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3Vw cG9ydGVkIGZvciB2aWV3cy4KIC0tIENoZWNrIHRoYXQgc2VxdWVuY2VzIGFyZSByZWplY3Rl ZAogQ1JFQVRFIFNFUVVFTkNFIHRlc3Rfc2VxdWVuY2U7CiBTRUxFQ1QgKiBGUk9NIHZlcmlm eV9oZWFwYW0oJ3Rlc3Rfc2VxdWVuY2UnLAogCQkJCQkJCXN0YXJ0YmxvY2sgOj0gTlVMTCwK IAkJCQkJCQllbmRibG9jayA6PSBOVUxMKTsKLUVSUk9SOiAgInRlc3Rfc2VxdWVuY2UiIGlz IG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9S OiAgY2Fubm90IGNoZWNrIHJlbGF0aW9uICJ0ZXN0X3NlcXVlbmNlIgorREVUQUlMOiAgVGhp cyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3Igc2VxdWVuY2VzLgogLS0gQ2hlY2sg dGhhdCBmb3JlaWduIHRhYmxlcyBhcmUgcmVqZWN0ZWQKIENSRUFURSBGT1JFSUdOIERBVEEg V1JBUFBFUiBkdW1teTsKIENSRUFURSBTRVJWRVIgZHVtbXlfc2VydmVyIEZPUkVJR04gREFU QSBXUkFQUEVSIGR1bW15OwpAQCAtMTg1LDcgKzE4OSw4IEBAIENSRUFURSBGT1JFSUdOIFRB QkxFIHRlc3RfZm9yZWlnbl90YWJsZSAoKSBTRVJWRVIgZHVtbXlfc2VydmVyOwogU0VMRUNU ICogRlJPTSB2ZXJpZnlfaGVhcGFtKCd0ZXN0X2ZvcmVpZ25fdGFibGUnLAogCQkJCQkJCXN0 YXJ0YmxvY2sgOj0gTlVMTCwKIAkJCQkJCQllbmRibG9jayA6PSBOVUxMKTsKLUVSUk9SOiAg InRlc3RfZm9yZWlnbl90YWJsZSIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3 LCBvciBUT0FTVCB0YWJsZQorRVJST1I6ICBjYW5ub3QgY2hlY2sgcmVsYXRpb24gInRlc3Rf Zm9yZWlnbl90YWJsZSIKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0 ZWQgZm9yIGZvcmVpZ24gdGFibGVzLgogLS0gY2xlYW51cAogRFJPUCBUQUJMRSBoZWFwdGVz dDsKIERST1AgVEFCTEUgdGVzdF9wYXJ0aXRpb247CmRpZmYgLS1naXQgYS9jb250cmliL2Ft Y2hlY2svdmVyaWZ5X2hlYXBhbS5jIGIvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9oZWFwYW0u YwppbmRleCBhM2NhZWU3Y2RkLi4yMjYyNzE5MjNhIDEwMDY0NAotLS0gYS9jb250cmliL2Ft Y2hlY2svdmVyaWZ5X2hlYXBhbS5jCisrKyBiL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfaGVh cGFtLmMKQEAgLTE0Nyw3ICsxNDcsNiBAQCB0eXBlZGVmIHN0cnVjdCBIZWFwQ2hlY2tDb250 ZXh0CiB9IEhlYXBDaGVja0NvbnRleHQ7CiAKIC8qIEludGVybmFsIGltcGxlbWVudGF0aW9u ICovCi1zdGF0aWMgdm9pZCBzYW5pdHlfY2hlY2tfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsK IHN0YXRpYyB2b2lkIGNoZWNrX3R1cGxlKEhlYXBDaGVja0NvbnRleHQgKmN0eCk7CiBzdGF0 aWMgdm9pZCBjaGVja190b2FzdF90dXBsZShIZWFwVHVwbGUgdG9hc3R0dXAsIEhlYXBDaGVj a0NvbnRleHQgKmN0eCwKIAkJCQkJCQkgIFRvYXN0ZWRBdHRyaWJ1dGUgKnRhLCBpbnQzMiAq ZXhwZWN0ZWRfY2h1bmtfc2VxLApAQCAtMzAwLDcgKzI5OSwyMyBAQCB2ZXJpZnlfaGVhcGFt KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBPcGVuIHJlbGF0aW9uLCBjaGVjayByZWxraW5k IGFuZCBhY2Nlc3MgbWV0aG9kICovCiAJY3R4LnJlbCA9IHJlbGF0aW9uX29wZW4ocmVsaWQs IEFjY2Vzc1NoYXJlTG9jayk7Ci0Jc2FuaXR5X2NoZWNrX3JlbGF0aW9uKGN0eC5yZWwpOwor CisJLyoKKwkgKiBDaGVjayB0aGF0IGEgcmVsYXRpb24ncyByZWxraW5kIGFuZCBhY2Nlc3Mg bWV0aG9kIGFyZSBib3RoIHN1cHBvcnRlZC4KKwkgKi8KKwlpZiAoY3R4LnJlbC0+cmRfcmVs LT5yZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04gJiYKKwkJY3R4LnJlbC0+cmRfcmVsLT5y ZWxraW5kICE9IFJFTEtJTkRfTUFUVklFVyAmJgorCQljdHgucmVsLT5yZF9yZWwtPnJlbGtp bmQgIT0gUkVMS0lORF9UT0FTVFZBTFVFKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coImNhbm5vdCBj aGVjayByZWxhdGlvbiBcIiVzXCIiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo Y3R4LnJlbCkpLAorCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKGN0eC5y ZWwtPnJkX3JlbC0+cmVsa2luZCkpKTsKKworCWlmIChjdHgucmVsLT5yZF9yZWwtPnJlbGFt ICE9IEhFQVBfVEFCTEVfQU1fT0lEKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJvbmx5IGhl YXAgQU0gaXMgc3VwcG9ydGVkIikpKTsKIAogCS8qIEVhcmx5IGV4aXQgaWYgdGhlIHJlbGF0 aW9uIGlzIGVtcHR5ICovCiAJbmJsb2NrcyA9IFJlbGF0aW9uR2V0TnVtYmVyT2ZCbG9ja3Mo Y3R4LnJlbCk7CkBAIC01MjMsMjUgKzUzOCw2IEBAIHZlcmlmeV9oZWFwYW0oUEdfRlVOQ1RJ T05fQVJHUykKIAlQR19SRVRVUk5fTlVMTCgpOwogfQogCi0vKgotICogQ2hlY2sgdGhhdCBh IHJlbGF0aW9uJ3MgcmVsa2luZCBhbmQgYWNjZXNzIG1ldGhvZCBhcmUgYm90aCBzdXBwb3J0 ZWQuCi0gKi8KLXN0YXRpYyB2b2lkCi1zYW5pdHlfY2hlY2tfcmVsYXRpb24oUmVsYXRpb24g cmVsKQotewotCWlmIChyZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1JFTEFUSU9O ICYmCi0JCXJlbC0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfTUFUVklFVyAmJgotCQly ZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1RPQVNUVkFMVUUpCi0JCWVyZXBvcnQo RVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJ IGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3Ig VE9BU1QgdGFibGUiLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsK LQlpZiAocmVsLT5yZF9yZWwtPnJlbGFtICE9IEhFQVBfVEFCTEVfQU1fT0lEKQotCQllcmVw b3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKLQkJCQkgZXJybXNnKCJvbmx5IGhlYXAgQU0gaXMgc3VwcG9ydGVkIikpKTsKLX0KLQog LyoKICAqIFNoYXJlZCBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBmb3IgcmVwb3J0X2NvcnJ1 cHRpb24gYW5kCiAgKiByZXBvcnRfdG9hc3RfY29ycnVwdGlvbi4KZGlmZiAtLWdpdCBhL2Nv bnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvcGFnZS5vdXQgYi9jb250cmliL3BhZ2VpbnNw ZWN0L2V4cGVjdGVkL3BhZ2Uub3V0CmluZGV4IDRkYTI4ZjBhMWQuLjRlMzI1YWU1NmQgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvcGFnZS5vdXQKKysrIGIv Y29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9wYWdlLm91dApAQCAtMTgwLDkgKzE4MCwx MSBAQCBEUk9QIFRBQkxFIHRlc3QxOwogY3JlYXRlIHRhYmxlIHRlc3RfcGFydGl0aW9uZWQg KGEgaW50KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEpOwogY3JlYXRlIGluZGV4IHRlc3RfcGFy dGl0aW9uZWRfaW5kZXggb24gdGVzdF9wYXJ0aXRpb25lZCAoYSk7CiBzZWxlY3QgZ2V0X3Jh d19wYWdlKCd0ZXN0X3BhcnRpdGlvbmVkJywgMCk7IC0tIGVycm9yIGFib3V0IHBhcnRpdGlv bmVkIHRhYmxlCi1FUlJPUjogIGNhbm5vdCBnZXQgcmF3IHBhZ2UgZnJvbSBwYXJ0aXRpb25l ZCB0YWJsZSAidGVzdF9wYXJ0aXRpb25lZCIKK0VSUk9SOiAgY2Fubm90IGdldCByYXcgcGFn ZSBmcm9tIHJlbGF0aW9uICJ0ZXN0X3BhcnRpdGlvbmVkIgorREVUQUlMOiAgVGhpcyBvcGVy YXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgcGFydGl0aW9uZWQgdGFibGVzLgogc2VsZWN0 IGdldF9yYXdfcGFnZSgndGVzdF9wYXJ0aXRpb25lZF9pbmRleCcsIDApOyAtLSBlcnJvciBh Ym91dCBwYXJ0aXRpb25lZCBpbmRleAotRVJST1I6ICBjYW5ub3QgZ2V0IHJhdyBwYWdlIGZy b20gcGFydGl0aW9uZWQgaW5kZXggInRlc3RfcGFydGl0aW9uZWRfaW5kZXgiCitFUlJPUjog IGNhbm5vdCBnZXQgcmF3IHBhZ2UgZnJvbSByZWxhdGlvbiAidGVzdF9wYXJ0aXRpb25lZF9p bmRleCIKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHBh cnRpdGlvbmVkIGluZGV4ZXMuCiAtLSBhIHJlZ3VsYXIgdGFibGUgd2hpY2ggaXMgYSBtZW1i ZXIgb2YgYSBwYXJ0aXRpb24gc2V0IHNob3VsZCB3b3JrIHRob3VnaAogY3JlYXRlIHRhYmxl IHRlc3RfcGFydDEgcGFydGl0aW9uIG9mIHRlc3RfcGFydGl0aW9uZWQgZm9yIHZhbHVlcyBm cm9tICggMSApIHRvICgxMDApOwogc2VsZWN0IGdldF9yYXdfcGFnZSgndGVzdF9wYXJ0MScs IDApOyAtLSBnZXQgZmFydGhlciBhbmQgZXJyb3IgYWJvdXQgZW1wdHkgdGFibGUKZGlmZiAt LWdpdCBhL2NvbnRyaWIvcGFnZWluc3BlY3QvcmF3cGFnZS5jIGIvY29udHJpYi9wYWdlaW5z cGVjdC9yYXdwYWdlLmMKaW5kZXggNzI3MmIyMTAxNi4uZTlmZWU3M2JjNCAxMDA2NDQKLS0t IGEvY29udHJpYi9wYWdlaW5zcGVjdC9yYXdwYWdlLmMKKysrIGIvY29udHJpYi9wYWdlaW5z cGVjdC9yYXdwYWdlLmMKQEAgLTE1NSwzMiArMTU1LDEyIEBAIGdldF9yYXdfcGFnZV9pbnRl cm5hbCh0ZXh0ICpyZWxuYW1lLCBGb3JrTnVtYmVyIGZvcmtudW0sIEJsb2NrTnVtYmVyIGJs a25vKQogCXJlbHJ2ID0gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KHRleHRUb1F1YWxpZmll ZE5hbWVMaXN0KHJlbG5hbWUpKTsKIAlyZWwgPSByZWxhdGlvbl9vcGVucnYocmVscnYsIEFj Y2Vzc1NoYXJlTG9jayk7CiAKLQkvKiBDaGVjayB0aGF0IHRoaXMgcmVsYXRpb24gaGFzIHN0 b3JhZ2UgKi8KLQlpZiAocmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9WSUVXKQor CWlmICghUkVMS0lORF9IQVNfU1RPUkFHRShyZWwtPnJkX3JlbC0+cmVsa2luZCkpCiAJCWVy ZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSks Ci0JCQkJIGVycm1zZygiY2Fubm90IGdldCByYXcgcGFnZSBmcm9tIHZpZXcgXCIlc1wiIiwK LQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7Ci0JaWYgKHJlbC0+cmRf cmVsLT5yZWxraW5kID09IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEUpCi0JCWVyZXBvcnQoRVJS T1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVy cm1zZygiY2Fubm90IGdldCByYXcgcGFnZSBmcm9tIGNvbXBvc2l0ZSB0eXBlIFwiJXNcIiIs Ci0JCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwotCWlmIChyZWwtPnJk X3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCi0JCWVyZXBvcnQoRVJS T1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVy cm1zZygiY2Fubm90IGdldCByYXcgcGFnZSBmcm9tIGZvcmVpZ24gdGFibGUgXCIlc1wiIiwK LQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7Ci0JaWYgKHJlbC0+cmRf cmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCi0JCWVyZXBvcnQo RVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJ IGVycm1zZygiY2Fubm90IGdldCByYXcgcGFnZSBmcm9tIHBhcnRpdGlvbmVkIHRhYmxlIFwi JXNcIiIsCi0JCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwotCWlmIChy ZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX0lOREVYKQotCQll cmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUp LAotCQkJCSBlcnJtc2coImNhbm5vdCBnZXQgcmF3IHBhZ2UgZnJvbSBwYXJ0aXRpb25lZCBp bmRleCBcIiVzXCIiLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsK KwkJCQkgZXJybXNnKCJjYW5ub3QgZ2V0IHJhdyBwYWdlIGZyb20gcmVsYXRpb24gXCIlc1wi IiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCSBlcnJkZXRh aWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHJlbC0+cmRfcmVsLT5yZWxraW5kKSkpOwogCiAJ LyoKIAkgKiBSZWplY3QgYXR0ZW1wdHMgdG8gcmVhZCBub24tbG9jYWwgdGVtcG9yYXJ5IHJl bGF0aW9uczsgd2Ugd291bGQgYmUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3VyZ2VyeS9l eHBlY3RlZC9oZWFwX3N1cmdlcnkub3V0IGIvY29udHJpYi9wZ19zdXJnZXJ5L2V4cGVjdGVk L2hlYXBfc3VyZ2VyeS5vdXQKaW5kZXggZDRhNzU3ZmZhMC4uZGY3ZDEzYjA5MCAxMDA2NDQK LS0tIGEvY29udHJpYi9wZ19zdXJnZXJ5L2V4cGVjdGVkL2hlYXBfc3VyZ2VyeS5vdXQKKysr IGIvY29udHJpYi9wZ19zdXJnZXJ5L2V4cGVjdGVkL2hlYXBfc3VyZ2VyeS5vdXQKQEAgLTE3 MCw5ICsxNzAsMTEgQEAgcm9sbGJhY2s7CiAtLSBjaGVjayB0aGF0IGl0IGZhaWxzIG9uIGFu IHVuc3VwcG9ydGVkIHJlbGtpbmQKIGNyZWF0ZSB2aWV3IHZ3IGFzIHNlbGVjdCAxOwogc2Vs ZWN0IGhlYXBfZm9yY2Vfa2lsbCgndncnOjpyZWdjbGFzcywgQVJSQVlbJygwLCAxKSddOjp0 aWRbXSk7Ci1FUlJPUjogICJ2dyIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3 LCBvciBUT0FTVCB0YWJsZQorRVJST1I6ICBjYW5ub3Qgb3BlcmF0ZSBvbiByZWxhdGlvbiAi dnciCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aWV3 cy4KIHNlbGVjdCBoZWFwX2ZvcmNlX2ZyZWV6ZSgndncnOjpyZWdjbGFzcywgQVJSQVlbJygw LCAxKSddOjp0aWRbXSk7Ci1FUlJPUjogICJ2dyIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFs aXplZCB2aWV3LCBvciBUT0FTVCB0YWJsZQorRVJST1I6ICBjYW5ub3Qgb3BlcmF0ZSBvbiBy ZWxhdGlvbiAidnciCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVk IGZvciB2aWV3cy4KIC0tIGNsZWFudXAuCiBkcm9wIHZpZXcgdnc7CiBkcm9wIGV4dGVuc2lv biBwZ19zdXJnZXJ5OwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdXJnZXJ5L2hlYXBfc3Vy Z2VyeS5jIGIvY29udHJpYi9wZ19zdXJnZXJ5L2hlYXBfc3VyZ2VyeS5jCmluZGV4IGQzMWU1 ZjMxZmQuLjdlZGZlNGYzMjYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3VyZ2VyeS9oZWFw X3N1cmdlcnkuYworKysgYi9jb250cmliL3BnX3N1cmdlcnkvaGVhcF9zdXJnZXJ5LmMKQEAg LTM3LDcgKzM3LDYgQEAgc3RhdGljIGludDMyIHRpZGNtcChjb25zdCB2b2lkICphLCBjb25z dCB2b2lkICpiKTsKIHN0YXRpYyBEYXR1bSBoZWFwX2ZvcmNlX2NvbW1vbihGdW5jdGlvbkNh bGxJbmZvIGZjaW5mbywKIAkJCQkJCQkgICBIZWFwVHVwbGVGb3JjZU9wdGlvbiBoZWFwX2Zv cmNlX29wdCk7CiBzdGF0aWMgdm9pZCBzYW5pdHlfY2hlY2tfdGlkX2FycmF5KEFycmF5VHlw ZSAqdGEsIGludCAqbnRpZHMpOwotc3RhdGljIHZvaWQgc2FuaXR5X2NoZWNrX3JlbGF0aW9u KFJlbGF0aW9uIHJlbCk7CiBzdGF0aWMgQmxvY2tOdW1iZXIgZmluZF90aWRzX29uZV9wYWdl KEl0ZW1Qb2ludGVyIHRpZHMsIGludCBudGlkcywKIAkJCQkJCQkJCSAgT2Zmc2V0TnVtYmVy ICpuZXh0X3N0YXJ0X3B0cik7CiAKQEAgLTEwMSw4ICsxMDAsMjggQEAgaGVhcF9mb3JjZV9j b21tb24oRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIEhlYXBUdXBsZUZvcmNlT3B0aW9uIGhl YXBfZm9yY2Vfb3B0KQogCiAJcmVsID0gcmVsYXRpb25fb3BlbihyZWxpZCwgUm93RXhjbHVz aXZlTG9jayk7CiAKLQkvKiBDaGVjayB0YXJnZXQgcmVsYXRpb24uICovCi0Jc2FuaXR5X2No ZWNrX3JlbGF0aW9uKHJlbCk7CisJLyoKKwkgKiBDaGVjayB0YXJnZXQgcmVsYXRpb24uCisJ ICovCisJaWYgKHJlbC0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04gJiYK KwkJcmVsLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9NQVRWSUVXICYmCisJCXJlbC0+ cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfVE9BU1RWQUxVRSkKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJy bXNnKCJjYW5ub3Qgb3BlcmF0ZSBvbiByZWxhdGlvbiBcIiVzXCIiLAorCQkJCQkJUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUocmVsKSksCisJCQkJIGVycmRldGFpbF9yZWxraW5kX25vdF9z dXBwb3J0ZWQocmVsLT5yZF9yZWwtPnJlbGtpbmQpKSk7CisKKwlpZiAocmVsLT5yZF9yZWwt PnJlbGFtICE9IEhFQVBfVEFCTEVfQU1fT0lEKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJv bmx5IGhlYXAgQU0gaXMgc3VwcG9ydGVkIikpKTsKKworCS8qIE11c3QgYmUgb3duZXIgb2Yg dGhlIHRhYmxlIG9yIHN1cGVydXNlci4gKi8KKwlpZiAoIXBnX2NsYXNzX293bmVyY2hlY2so UmVsYXRpb25HZXRSZWxpZChyZWwpLCBHZXRVc2VySWQoKSkpCisJCWFjbGNoZWNrX2Vycm9y KEFDTENIRUNLX05PVF9PV05FUiwKKwkJCQkJICAgZ2V0X3JlbGtpbmRfb2JqdHlwZShyZWwt PnJkX3JlbC0+cmVsa2luZCksCisJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJl bCkpOwogCiAJdGlkcyA9ICgoSXRlbVBvaW50ZXIpIEFSUl9EQVRBX1BUUih0YSkpOwogCkBA IC0zNjMsMzUgKzM4Miw2IEBAIHNhbml0eV9jaGVja190aWRfYXJyYXkoQXJyYXlUeXBlICp0 YSwgaW50ICpudGlkcykKIAkqbnRpZHMgPSBBcnJheUdldE5JdGVtcyhBUlJfTkRJTSh0YSks IEFSUl9ESU1TKHRhKSk7CiB9CiAKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogc2FuaXR5 X2NoZWNrX3JlbGF0aW9uKCkKLSAqCi0gKiBQZXJmb3JtIHNhbml0eSBjaGVja3Mgb24gdGhl IGdpdmVuIHJlbGF0aW9uLgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKi8KLXN0YXRpYyB2 b2lkCi1zYW5pdHlfY2hlY2tfcmVsYXRpb24oUmVsYXRpb24gcmVsKQotewotCWlmIChyZWwt PnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1JFTEFUSU9OICYmCi0JCXJlbC0+cmRfcmVs LT5yZWxraW5kICE9IFJFTEtJTkRfTUFUVklFVyAmJgotCQlyZWwtPnJkX3JlbC0+cmVsa2lu ZCAhPSBSRUxLSU5EX1RPQVNUVkFMVUUpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNv ZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVycm1zZygiXCIlc1wiIGlz IG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUiLAotCQkJ CQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKLQotCWlmIChyZWwtPnJkX3Jl bC0+cmVsYW0gIT0gSEVBUF9UQUJMRV9BTV9PSUQpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBlcnJtc2co Im9ubHkgaGVhcCBBTSBpcyBzdXBwb3J0ZWQiKSkpOwotCi0JLyogTXVzdCBiZSBvd25lciBv ZiB0aGUgdGFibGUgb3Igc3VwZXJ1c2VyLiAqLwotCWlmICghcGdfY2xhc3Nfb3duZXJjaGVj ayhSZWxhdGlvbkdldFJlbGlkKHJlbCksIEdldFVzZXJJZCgpKSkKLQkJYWNsY2hlY2tfZXJy b3IoQUNMQ0hFQ0tfTk9UX09XTkVSLAotCQkJCQkgICBnZXRfcmVsa2luZF9vYmp0eXBlKHJl bC0+cmRfcmVsLT5yZWxraW5kKSwKLQkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo cmVsKSk7Ci19Ci0KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogZmluZF90aWRzX29uZV9w YWdlKCkKICAqCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Zpc2liaWxpdHkvZXhwZWN0ZWQv cGdfdmlzaWJpbGl0eS5vdXQgYi9jb250cmliL3BnX3Zpc2liaWxpdHkvZXhwZWN0ZWQvcGdf dmlzaWJpbGl0eS5vdXQKaW5kZXggMzE1NjMzYmZlYS4uOWRlNTRkYjJhMiAxMDA2NDQKLS0t IGEvY29udHJpYi9wZ192aXNpYmlsaXR5L2V4cGVjdGVkL3BnX3Zpc2liaWxpdHkub3V0Cisr KyBiL2NvbnRyaWIvcGdfdmlzaWJpbGl0eS9leHBlY3RlZC9wZ192aXNpYmlsaXR5Lm91dApA QCAtNDEsNjYgKzQxLDkxIEBAIFJPTExCQUNLOwogY3JlYXRlIHRhYmxlIHRlc3RfcGFydGl0 aW9uZWQgKGEgaW50KSBwYXJ0aXRpb24gYnkgbGlzdCAoYSk7CiAtLSB0aGVzZSBzaG91bGQg YWxsIGZhaWwKIHNlbGVjdCBwZ192aXNpYmlsaXR5KCd0ZXN0X3BhcnRpdGlvbmVkJywgMCk7 Ci1FUlJPUjogICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBub3QgYSB0YWJsZSwgbWF0ZXJpYWxp emVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJlbGF0aW9uICJ0ZXN0X3BhcnRp dGlvbmVkIiBpcyBvZiB3cm9uZyByZWxhdGlvbiBraW5kCitERVRBSUw6ICBUaGlzIG9wZXJh dGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBwYXJ0aXRpb25lZCB0YWJsZXMuCiBzZWxlY3Qg cGdfdmlzaWJpbGl0eV9tYXAoJ3Rlc3RfcGFydGl0aW9uZWQnKTsKLUVSUk9SOiAgInRlc3Rf cGFydGl0aW9uZWQiIGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9B U1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24gInRlc3RfcGFydGl0aW9uZWQiIGlzIG9mIHdy b25nIHJlbGF0aW9uIGtpbmQKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBw b3J0ZWQgZm9yIHBhcnRpdGlvbmVkIHRhYmxlcy4KIHNlbGVjdCBwZ192aXNpYmlsaXR5X21h cF9zdW1tYXJ5KCd0ZXN0X3BhcnRpdGlvbmVkJyk7Ci1FUlJPUjogICJ0ZXN0X3BhcnRpdGlv bmVkIiBpcyBub3QgYSB0YWJsZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxl CitFUlJPUjogIHJlbGF0aW9uICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBvZiB3cm9uZyByZWxh dGlvbiBraW5kCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZv ciBwYXJ0aXRpb25lZCB0YWJsZXMuCiBzZWxlY3QgcGdfY2hlY2tfZnJvemVuKCd0ZXN0X3Bh cnRpdGlvbmVkJyk7Ci1FUlJPUjogICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBub3QgYSB0YWJs ZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJlbGF0aW9u ICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBvZiB3cm9uZyByZWxhdGlvbiBraW5kCitERVRBSUw6 ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBwYXJ0aXRpb25lZCB0YWJs ZXMuCiBzZWxlY3QgcGdfdHJ1bmNhdGVfdmlzaWJpbGl0eV9tYXAoJ3Rlc3RfcGFydGl0aW9u ZWQnKTsKLUVSUk9SOiAgInRlc3RfcGFydGl0aW9uZWQiIGlzIG5vdCBhIHRhYmxlLCBtYXRl cmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24gInRlc3Rf cGFydGl0aW9uZWQiIGlzIG9mIHdyb25nIHJlbGF0aW9uIGtpbmQKK0RFVEFJTDogIFRoaXMg b3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHBhcnRpdGlvbmVkIHRhYmxlcy4KIGNy ZWF0ZSB0YWJsZSB0ZXN0X3BhcnRpdGlvbiBwYXJ0aXRpb24gb2YgdGVzdF9wYXJ0aXRpb25l ZCBmb3IgdmFsdWVzIGluICgxKTsKIGNyZWF0ZSBpbmRleCB0ZXN0X2luZGV4IG9uIHRlc3Rf cGFydGl0aW9uIChhKTsKIC0tIGluZGV4ZXMgZG8gbm90LCBzbyB0aGVzZSBhbGwgZmFpbAog c2VsZWN0IHBnX3Zpc2liaWxpdHkoJ3Rlc3RfaW5kZXgnLCAwKTsKLUVSUk9SOiAgInRlc3Rf aW5kZXgiIGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFi bGUKK0VSUk9SOiAgcmVsYXRpb24gInRlc3RfaW5kZXgiIGlzIG9mIHdyb25nIHJlbGF0aW9u IGtpbmQKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGlu ZGV4ZXMuCiBzZWxlY3QgcGdfdmlzaWJpbGl0eV9tYXAoJ3Rlc3RfaW5kZXgnKTsKLUVSUk9S OiAgInRlc3RfaW5kZXgiIGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3Ig VE9BU1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24gInRlc3RfaW5kZXgiIGlzIG9mIHdyb25n IHJlbGF0aW9uIGtpbmQKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0 ZWQgZm9yIGluZGV4ZXMuCiBzZWxlY3QgcGdfdmlzaWJpbGl0eV9tYXBfc3VtbWFyeSgndGVz dF9pbmRleCcpOwotRVJST1I6ICAidGVzdF9pbmRleCIgaXMgbm90IGEgdGFibGUsIG1hdGVy aWFsaXplZCB2aWV3LCBvciBUT0FTVCB0YWJsZQorRVJST1I6ICByZWxhdGlvbiAidGVzdF9p bmRleCIgaXMgb2Ygd3JvbmcgcmVsYXRpb24ga2luZAorREVUQUlMOiAgVGhpcyBvcGVyYXRp b24gaXMgbm90IHN1cHBvcnRlZCBmb3IgaW5kZXhlcy4KIHNlbGVjdCBwZ19jaGVja19mcm96 ZW4oJ3Rlc3RfaW5kZXgnKTsKLUVSUk9SOiAgInRlc3RfaW5kZXgiIGlzIG5vdCBhIHRhYmxl LCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24g InRlc3RfaW5kZXgiIGlzIG9mIHdyb25nIHJlbGF0aW9uIGtpbmQKK0RFVEFJTDogIFRoaXMg b3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGluZGV4ZXMuCiBzZWxlY3QgcGdfdHJ1 bmNhdGVfdmlzaWJpbGl0eV9tYXAoJ3Rlc3RfaW5kZXgnKTsKLUVSUk9SOiAgInRlc3RfaW5k ZXgiIGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUK K0VSUk9SOiAgcmVsYXRpb24gInRlc3RfaW5kZXgiIGlzIG9mIHdyb25nIHJlbGF0aW9uIGtp bmQKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGluZGV4 ZXMuCiBjcmVhdGUgdmlldyB0ZXN0X3ZpZXcgYXMgc2VsZWN0IDE7CiAtLSB2aWV3cyBkbyBu b3QgaGF2ZSBWTXMsIHNvIHRoZXNlIGFsbCBmYWlsCiBzZWxlY3QgcGdfdmlzaWJpbGl0eSgn dGVzdF92aWV3JywgMCk7Ci1FUlJPUjogICJ0ZXN0X3ZpZXciIGlzIG5vdCBhIHRhYmxlLCBt YXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24gInRl c3RfdmlldyIgaXMgb2Ygd3JvbmcgcmVsYXRpb24ga2luZAorREVUQUlMOiAgVGhpcyBvcGVy YXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3Igdmlld3MuCiBzZWxlY3QgcGdfdmlzaWJpbGl0 eV9tYXAoJ3Rlc3RfdmlldycpOwotRVJST1I6ICAidGVzdF92aWV3IiBpcyBub3QgYSB0YWJs ZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJlbGF0aW9u ICJ0ZXN0X3ZpZXciIGlzIG9mIHdyb25nIHJlbGF0aW9uIGtpbmQKK0RFVEFJTDogIFRoaXMg b3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpZXdzLgogc2VsZWN0IHBnX3Zpc2li aWxpdHlfbWFwX3N1bW1hcnkoJ3Rlc3RfdmlldycpOwotRVJST1I6ICAidGVzdF92aWV3IiBp cyBub3QgYSB0YWJsZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJP UjogIHJlbGF0aW9uICJ0ZXN0X3ZpZXciIGlzIG9mIHdyb25nIHJlbGF0aW9uIGtpbmQKK0RF VEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpZXdzLgogc2Vs ZWN0IHBnX2NoZWNrX2Zyb3plbigndGVzdF92aWV3Jyk7Ci1FUlJPUjogICJ0ZXN0X3ZpZXci IGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VS Uk9SOiAgcmVsYXRpb24gInRlc3RfdmlldyIgaXMgb2Ygd3JvbmcgcmVsYXRpb24ga2luZAor REVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3Igdmlld3MuCiBz ZWxlY3QgcGdfdHJ1bmNhdGVfdmlzaWJpbGl0eV9tYXAoJ3Rlc3RfdmlldycpOwotRVJST1I6 ICAidGVzdF92aWV3IiBpcyBub3QgYSB0YWJsZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRP QVNUIHRhYmxlCitFUlJPUjogIHJlbGF0aW9uICJ0ZXN0X3ZpZXciIGlzIG9mIHdyb25nIHJl bGF0aW9uIGtpbmQKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQg Zm9yIHZpZXdzLgogY3JlYXRlIHNlcXVlbmNlIHRlc3Rfc2VxdWVuY2U7CiAtLSBzZXF1ZW5j ZXMgZG8gbm90IGhhdmUgVk1zLCBzbyB0aGVzZSBhbGwgZmFpbAogc2VsZWN0IHBnX3Zpc2li aWxpdHkoJ3Rlc3Rfc2VxdWVuY2UnLCAwKTsKLUVSUk9SOiAgInRlc3Rfc2VxdWVuY2UiIGlz IG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9S OiAgcmVsYXRpb24gInRlc3Rfc2VxdWVuY2UiIGlzIG9mIHdyb25nIHJlbGF0aW9uIGtpbmQK K0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHNlcXVlbmNl cy4KIHNlbGVjdCBwZ192aXNpYmlsaXR5X21hcCgndGVzdF9zZXF1ZW5jZScpOwotRVJST1I6 ICAidGVzdF9zZXF1ZW5jZSIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBv ciBUT0FTVCB0YWJsZQorRVJST1I6ICByZWxhdGlvbiAidGVzdF9zZXF1ZW5jZSIgaXMgb2Yg d3JvbmcgcmVsYXRpb24ga2luZAorREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1 cHBvcnRlZCBmb3Igc2VxdWVuY2VzLgogc2VsZWN0IHBnX3Zpc2liaWxpdHlfbWFwX3N1bW1h cnkoJ3Rlc3Rfc2VxdWVuY2UnKTsKLUVSUk9SOiAgInRlc3Rfc2VxdWVuY2UiIGlzIG5vdCBh IHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAgcmVs YXRpb24gInRlc3Rfc2VxdWVuY2UiIGlzIG9mIHdyb25nIHJlbGF0aW9uIGtpbmQKK0RFVEFJ TDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHNlcXVlbmNlcy4KIHNl bGVjdCBwZ19jaGVja19mcm96ZW4oJ3Rlc3Rfc2VxdWVuY2UnKTsKLUVSUk9SOiAgInRlc3Rf c2VxdWVuY2UiIGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1Qg dGFibGUKK0VSUk9SOiAgcmVsYXRpb24gInRlc3Rfc2VxdWVuY2UiIGlzIG9mIHdyb25nIHJl bGF0aW9uIGtpbmQKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQg Zm9yIHNlcXVlbmNlcy4KIHNlbGVjdCBwZ190cnVuY2F0ZV92aXNpYmlsaXR5X21hcCgndGVz dF9zZXF1ZW5jZScpOwotRVJST1I6ICAidGVzdF9zZXF1ZW5jZSIgaXMgbm90IGEgdGFibGUs IG1hdGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0YWJsZQorRVJST1I6ICByZWxhdGlvbiAi dGVzdF9zZXF1ZW5jZSIgaXMgb2Ygd3JvbmcgcmVsYXRpb24ga2luZAorREVUQUlMOiAgVGhp cyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3Igc2VxdWVuY2VzLgogY3JlYXRlIGZv cmVpZ24gZGF0YSB3cmFwcGVyIGR1bW15OwogY3JlYXRlIHNlcnZlciBkdW1teV9zZXJ2ZXIg Zm9yZWlnbiBkYXRhIHdyYXBwZXIgZHVtbXk7CiBjcmVhdGUgZm9yZWlnbiB0YWJsZSB0ZXN0 X2ZvcmVpZ25fdGFibGUgKCkgc2VydmVyIGR1bW15X3NlcnZlcjsKIC0tIGZvcmVpZ24gdGFi bGVzIGRvIG5vdCBoYXZlIFZNcywgc28gdGhlc2UgYWxsIGZhaWwKIHNlbGVjdCBwZ192aXNp YmlsaXR5KCd0ZXN0X2ZvcmVpZ25fdGFibGUnLCAwKTsKLUVSUk9SOiAgInRlc3RfZm9yZWln bl90YWJsZSIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0 YWJsZQorRVJST1I6ICByZWxhdGlvbiAidGVzdF9mb3JlaWduX3RhYmxlIiBpcyBvZiB3cm9u ZyByZWxhdGlvbiBraW5kCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9y dGVkIGZvciBmb3JlaWduIHRhYmxlcy4KIHNlbGVjdCBwZ192aXNpYmlsaXR5X21hcCgndGVz dF9mb3JlaWduX3RhYmxlJyk7Ci1FUlJPUjogICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGlzIG5v dCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAg cmVsYXRpb24gInRlc3RfZm9yZWlnbl90YWJsZSIgaXMgb2Ygd3JvbmcgcmVsYXRpb24ga2lu ZAorREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgZm9yZWln biB0YWJsZXMuCiBzZWxlY3QgcGdfdmlzaWJpbGl0eV9tYXBfc3VtbWFyeSgndGVzdF9mb3Jl aWduX3RhYmxlJyk7Ci1FUlJPUjogICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGlzIG5vdCBhIHRh YmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAgcmVsYXRp b24gInRlc3RfZm9yZWlnbl90YWJsZSIgaXMgb2Ygd3JvbmcgcmVsYXRpb24ga2luZAorREVU QUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgZm9yZWlnbiB0YWJs ZXMuCiBzZWxlY3QgcGdfY2hlY2tfZnJvemVuKCd0ZXN0X2ZvcmVpZ25fdGFibGUnKTsKLUVS Uk9SOiAgInRlc3RfZm9yZWlnbl90YWJsZSIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXpl ZCB2aWV3LCBvciBUT0FTVCB0YWJsZQorRVJST1I6ICByZWxhdGlvbiAidGVzdF9mb3JlaWdu X3RhYmxlIiBpcyBvZiB3cm9uZyByZWxhdGlvbiBraW5kCitERVRBSUw6ICBUaGlzIG9wZXJh dGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBmb3JlaWduIHRhYmxlcy4KIHNlbGVjdCBwZ190 cnVuY2F0ZV92aXNpYmlsaXR5X21hcCgndGVzdF9mb3JlaWduX3RhYmxlJyk7Ci1FUlJPUjog ICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmll dywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24gInRlc3RfZm9yZWlnbl90YWJs ZSIgaXMgb2Ygd3JvbmcgcmVsYXRpb24ga2luZAorREVUQUlMOiAgVGhpcyBvcGVyYXRpb24g aXMgbm90IHN1cHBvcnRlZCBmb3IgZm9yZWlnbiB0YWJsZXMuCiAtLSBjaGVjayBzb21lIG9m IHRoZSBhbGxvd2VkIHJlbGtpbmRzCiBjcmVhdGUgdGFibGUgcmVndWxhcl90YWJsZSAoYSBp bnQsIGIgdGV4dCk7CiBhbHRlciB0YWJsZSByZWd1bGFyX3RhYmxlIGFsdGVyIGNvbHVtbiBi IHNldCBzdG9yYWdlIGV4dGVybmFsOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ192aXNpYmls aXR5L3BnX3Zpc2liaWxpdHkuYyBiL2NvbnRyaWIvcGdfdmlzaWJpbGl0eS9wZ192aXNpYmls aXR5LmMKaW5kZXggZGQwYzEyNGU2Mi4uYzZkOTgzMTgzZCAxMDA2NDQKLS0tIGEvY29udHJp Yi9wZ192aXNpYmlsaXR5L3BnX3Zpc2liaWxpdHkuYworKysgYi9jb250cmliL3BnX3Zpc2li aWxpdHkvcGdfdmlzaWJpbGl0eS5jCkBAIC03ODEsNiArNzgxLDcgQEAgY2hlY2tfcmVsYXRp b25fcmVsa2luZChSZWxhdGlvbiByZWwpCiAJCXJlbC0+cmRfcmVsLT5yZWxraW5kICE9IFJF TEtJTkRfVE9BU1RWQUxVRSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJD T0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEg dGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0YWJsZSIsCi0JCQkJCQlSZWxh dGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCQkJCSBlcnJtc2coInJlbGF0aW9uIFwi JXNcIiBpcyBvZiB3cm9uZyByZWxhdGlvbiBraW5kIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHJlbCkpLAorCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVk KHJlbC0+cmRfcmVsLT5yZWxraW5kKSkpOwogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ3N0 YXR0dXBsZS9leHBlY3RlZC9wZ3N0YXR0dXBsZS5vdXQgYi9jb250cmliL3Bnc3RhdHR1cGxl L2V4cGVjdGVkL3Bnc3RhdHR1cGxlLm91dAppbmRleCA0MGY3ODI1ZGRiLi5lNGFjODZmOWUz IDEwMDY0NAotLS0gYS9jb250cmliL3Bnc3RhdHR1cGxlL2V4cGVjdGVkL3Bnc3RhdHR1cGxl Lm91dAorKysgYi9jb250cmliL3Bnc3RhdHR1cGxlL2V4cGVjdGVkL3Bnc3RhdHR1cGxlLm91 dApAQCAtMTU1LDEzICsxNTUsMTcgQEAgY3JlYXRlIHRhYmxlIHRlc3RfcGFydGl0aW9uZWQg KGEgaW50KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEpOwogY3JlYXRlIGluZGV4IHRlc3RfcGFy dGl0aW9uZWRfaW5kZXggb24gdGVzdF9wYXJ0aXRpb25lZChhKTsKIC0tIHRoZXNlIHNob3Vs ZCBhbGwgZmFpbAogc2VsZWN0IHBnc3RhdHR1cGxlKCd0ZXN0X3BhcnRpdGlvbmVkJyk7Ci1F UlJPUjogICJ0ZXN0X3BhcnRpdGlvbmVkIiAocGFydGl0aW9uZWQgdGFibGUpIGlzIG5vdCBz dXBwb3J0ZWQKK0VSUk9SOiAgY2Fubm90IGdldCB0dXBsZS1sZXZlbCBzdGF0aXN0aWNzIGZv ciByZWxhdGlvbiAidGVzdF9wYXJ0aXRpb25lZCIKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9u IGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHBhcnRpdGlvbmVkIHRhYmxlcy4KIHNlbGVjdCBwZ3N0 YXR0dXBsZSgndGVzdF9wYXJ0aXRpb25lZF9pbmRleCcpOwotRVJST1I6ICAidGVzdF9wYXJ0 aXRpb25lZF9pbmRleCIgKHBhcnRpdGlvbmVkIGluZGV4KSBpcyBub3Qgc3VwcG9ydGVkCitF UlJPUjogIGNhbm5vdCBnZXQgdHVwbGUtbGV2ZWwgc3RhdGlzdGljcyBmb3IgcmVsYXRpb24g InRlc3RfcGFydGl0aW9uZWRfaW5kZXgiCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBu b3Qgc3VwcG9ydGVkIGZvciBwYXJ0aXRpb25lZCBpbmRleGVzLgogc2VsZWN0IHBnc3RhdHR1 cGxlX2FwcHJveCgndGVzdF9wYXJ0aXRpb25lZCcpOwotRVJST1I6ICAidGVzdF9wYXJ0aXRp b25lZCIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0YWJs ZQorRVJST1I6ICByZWxhdGlvbiAidGVzdF9wYXJ0aXRpb25lZCIgaXMgb2Ygd3JvbmcgcmVs YXRpb24ga2luZAorREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBm b3IgcGFydGl0aW9uZWQgdGFibGVzLgogc2VsZWN0IHBnX3JlbHBhZ2VzKCd0ZXN0X3BhcnRp dGlvbmVkJyk7Ci1FUlJPUjogICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBub3QgYSB0YWJsZSwg aW5kZXgsIG1hdGVyaWFsaXplZCB2aWV3LCBzZXF1ZW5jZSwgb3IgVE9BU1QgdGFibGUKK0VS Uk9SOiAgY2Fubm90IGdldCBwYWdlIGNvdW50IG9mIHJlbGF0aW9uICJ0ZXN0X3BhcnRpdGlv bmVkIgorREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgcGFy dGl0aW9uZWQgdGFibGVzLgogc2VsZWN0IHBnc3RhdGluZGV4KCd0ZXN0X3BhcnRpdGlvbmVk Jyk7CiBFUlJPUjogIHJlbGF0aW9uICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBub3QgYSBidHJl ZSBpbmRleAogc2VsZWN0IHBnc3RhdGdpbmluZGV4KCd0ZXN0X3BhcnRpdGlvbmVkJyk7CkBA IC0xNzEsMTEgKzE3NSwxNCBAQCBFUlJPUjogICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBub3Qg YW4gaW5kZXgKIGNyZWF0ZSB2aWV3IHRlc3RfdmlldyBhcyBzZWxlY3QgMTsKIC0tIHRoZXNl IHNob3VsZCBhbGwgZmFpbAogc2VsZWN0IHBnc3RhdHR1cGxlKCd0ZXN0X3ZpZXcnKTsKLUVS Uk9SOiAgInRlc3RfdmlldyIgKHZpZXcpIGlzIG5vdCBzdXBwb3J0ZWQKK0VSUk9SOiAgY2Fu bm90IGdldCB0dXBsZS1sZXZlbCBzdGF0aXN0aWNzIGZvciByZWxhdGlvbiAidGVzdF92aWV3 IgorREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3Igdmlld3Mu CiBzZWxlY3QgcGdzdGF0dHVwbGVfYXBwcm94KCd0ZXN0X3ZpZXcnKTsKLUVSUk9SOiAgInRl c3RfdmlldyIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0 YWJsZQorRVJST1I6ICByZWxhdGlvbiAidGVzdF92aWV3IiBpcyBvZiB3cm9uZyByZWxhdGlv biBraW5kCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2 aWV3cy4KIHNlbGVjdCBwZ19yZWxwYWdlcygndGVzdF92aWV3Jyk7Ci1FUlJPUjogICJ0ZXN0 X3ZpZXciIGlzIG5vdCBhIHRhYmxlLCBpbmRleCwgbWF0ZXJpYWxpemVkIHZpZXcsIHNlcXVl bmNlLCBvciBUT0FTVCB0YWJsZQorRVJST1I6ICBjYW5ub3QgZ2V0IHBhZ2UgY291bnQgb2Yg cmVsYXRpb24gInRlc3RfdmlldyIKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBz dXBwb3J0ZWQgZm9yIHZpZXdzLgogc2VsZWN0IHBnc3RhdGluZGV4KCd0ZXN0X3ZpZXcnKTsK IEVSUk9SOiAgcmVsYXRpb24gInRlc3RfdmlldyIgaXMgbm90IGEgYnRyZWUgaW5kZXgKIHNl bGVjdCBwZ3N0YXRnaW5pbmRleCgndGVzdF92aWV3Jyk7CkBAIC0xODcsMTEgKzE5NCwxNCBA QCBjcmVhdGUgc2VydmVyIGR1bW15X3NlcnZlciBmb3JlaWduIGRhdGEgd3JhcHBlciBkdW1t eTsKIGNyZWF0ZSBmb3JlaWduIHRhYmxlIHRlc3RfZm9yZWlnbl90YWJsZSAoKSBzZXJ2ZXIg ZHVtbXlfc2VydmVyOwogLS0gdGhlc2Ugc2hvdWxkIGFsbCBmYWlsCiBzZWxlY3QgcGdzdGF0 dHVwbGUoJ3Rlc3RfZm9yZWlnbl90YWJsZScpOwotRVJST1I6ICAidGVzdF9mb3JlaWduX3Rh YmxlIiAoZm9yZWlnbiB0YWJsZSkgaXMgbm90IHN1cHBvcnRlZAorRVJST1I6ICBjYW5ub3Qg Z2V0IHR1cGxlLWxldmVsIHN0YXRpc3RpY3MgZm9yIHJlbGF0aW9uICJ0ZXN0X2ZvcmVpZ25f dGFibGUiCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBm b3JlaWduIHRhYmxlcy4KIHNlbGVjdCBwZ3N0YXR0dXBsZV9hcHByb3goJ3Rlc3RfZm9yZWln bl90YWJsZScpOwotRVJST1I6ICAidGVzdF9mb3JlaWduX3RhYmxlIiBpcyBub3QgYSB0YWJs ZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJlbGF0aW9u ICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGlzIG9mIHdyb25nIHJlbGF0aW9uIGtpbmQKK0RFVEFJ TDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGZvcmVpZ24gdGFibGVz Lgogc2VsZWN0IHBnX3JlbHBhZ2VzKCd0ZXN0X2ZvcmVpZ25fdGFibGUnKTsKLUVSUk9SOiAg InRlc3RfZm9yZWlnbl90YWJsZSIgaXMgbm90IGEgdGFibGUsIGluZGV4LCBtYXRlcmlhbGl6 ZWQgdmlldywgc2VxdWVuY2UsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIGNhbm5vdCBnZXQg cGFnZSBjb3VudCBvZiByZWxhdGlvbiAidGVzdF9mb3JlaWduX3RhYmxlIgorREVUQUlMOiAg VGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgZm9yZWlnbiB0YWJsZXMuCiBz ZWxlY3QgcGdzdGF0aW5kZXgoJ3Rlc3RfZm9yZWlnbl90YWJsZScpOwogRVJST1I6ICByZWxh dGlvbiAidGVzdF9mb3JlaWduX3RhYmxlIiBpcyBub3QgYSBidHJlZSBpbmRleAogc2VsZWN0 IHBnc3RhdGdpbmluZGV4KCd0ZXN0X2ZvcmVpZ25fdGFibGUnKTsKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0YXBwcm94LmMgYi9jb250cmliL3Bnc3RhdHR1cGxl L3Bnc3RhdGFwcHJveC5jCmluZGV4IDFmZTE5M2JiMjUuLjNiODM2ZjM3MGUgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0YXBwcm94LmMKKysrIGIvY29udHJpYi9w Z3N0YXR0dXBsZS9wZ3N0YXRhcHByb3guYwpAQCAtMjg5LDggKzI4OSw5IEBAIHBnc3RhdHR1 cGxlX2FwcHJveF9pbnRlcm5hbChPaWQgcmVsaWQsIEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZv KQogCQkgIHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfVE9BU1RWQUxVRSkpCiAJ CWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAotCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSB0YWJsZSwgbWF0ZXJpYWxp emVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlIiwKLQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25O YW1lKHJlbCkpKSk7CisJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGlzIG9mIHdyb25n IHJlbGF0aW9uIGtpbmQiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSks CisJCQkJIGVycmRldGFpbF9yZWxraW5kX25vdF9zdXBwb3J0ZWQocmVsLT5yZF9yZWwtPnJl bGtpbmQpKSk7CiAKIAlpZiAocmVsLT5yZF9yZWwtPnJlbGFtICE9IEhFQVBfVEFCTEVfQU1f T0lEKQogCQllcmVwb3J0KEVSUk9SLCAoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCmRpZmYgLS1naXQgYS9jb250cmliL3Bnc3RhdHR1cGxlL3Bnc3RhdGluZGV4 LmMgYi9jb250cmliL3Bnc3RhdHR1cGxlL3Bnc3RhdGluZGV4LmMKaW5kZXggNTM2OGJiMzBm MC4uNmM0YjA1M2RkMCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXRp bmRleC5jCisrKyBiL2NvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0aW5kZXguYwpAQCAtMTI4 LDggKzEyOCw4IEBAIHR5cGVkZWYgc3RydWN0IEhhc2hJbmRleFN0YXQKIH0gSGFzaEluZGV4 U3RhdDsKIAogc3RhdGljIERhdHVtIHBnc3RhdGluZGV4X2ltcGwoUmVsYXRpb24gcmVsLCBG dW5jdGlvbkNhbGxJbmZvIGZjaW5mbyk7CitzdGF0aWMgaW50NjQgcGdfcmVscGFnZXNfaW1w bChSZWxhdGlvbiByZWwpOwogc3RhdGljIHZvaWQgR2V0SGFzaFBhZ2VTdGF0cyhQYWdlIHBh Z2UsIEhhc2hJbmRleFN0YXQgKnN0YXRzKTsKLXN0YXRpYyB2b2lkIGNoZWNrX3JlbGF0aW9u X3JlbGtpbmQoUmVsYXRpb24gcmVsKTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBwZ3N0YXRpbmRleCgpCkBAIC0z ODMsNyArMzgzLDYgQEAgRGF0dW0KIHBnX3JlbHBhZ2VzKFBHX0ZVTkNUSU9OX0FSR1MpCiB7 CiAJdGV4dAkgICAqcmVsbmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDApOwotCWludDY0CQly ZWxwYWdlczsKIAlSZWxhdGlvbglyZWw7CiAJUmFuZ2VWYXIgICAqcmVscnY7CiAKQEAgLTM5 NSwxNiArMzk0LDcgQEAgcGdfcmVscGFnZXMoUEdfRlVOQ1RJT05fQVJHUykKIAlyZWxydiA9 IG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdCh0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdChyZWxu YW1lKSk7CiAJcmVsID0gcmVsYXRpb25fb3BlbnJ2KHJlbHJ2LCBBY2Nlc3NTaGFyZUxvY2sp OwogCi0JLyogb25seSBzb21lIHJlbGtpbmRzIGhhdmUgc3RvcmFnZSAqLwotCWNoZWNrX3Jl bGF0aW9uX3JlbGtpbmQocmVsKTsKLQotCS8qIG5vdGU6IHRoaXMgd2lsbCB3b3JrIE9LIG9u IG5vbi1sb2NhbCB0ZW1wIHRhYmxlcyAqLwotCi0JcmVscGFnZXMgPSBSZWxhdGlvbkdldE51 bWJlck9mQmxvY2tzKHJlbCk7Ci0KLQlyZWxhdGlvbl9jbG9zZShyZWwsIEFjY2Vzc1NoYXJl TG9jayk7Ci0KLQlQR19SRVRVUk5fSU5UNjQocmVscGFnZXMpOworCVBHX1JFVFVSTl9JTlQ2 NChwZ19yZWxwYWdlc19pbXBsKHJlbCkpOwogfQogCiAvKiBObyBuZWVkIGZvciBzdXBlcnVz ZXIgY2hlY2tzIGluIHYxLjUsIHNlZSBhYm92ZSAqLwpAQCAtNDEyLDIzICs0MDIsMTMgQEAg RGF0dW0KIHBnX3JlbHBhZ2VzX3YxXzUoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAl0ZXh0CSAg ICpyZWxuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMCk7Ci0JaW50NjQJCXJlbHBhZ2VzOwog CVJlbGF0aW9uCXJlbDsKIAlSYW5nZVZhciAgICpyZWxydjsKIAogCXJlbHJ2ID0gbWFrZVJh bmdlVmFyRnJvbU5hbWVMaXN0KHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHJlbG5hbWUpKTsK IAlyZWwgPSByZWxhdGlvbl9vcGVucnYocmVscnYsIEFjY2Vzc1NoYXJlTG9jayk7CiAKLQkv KiBvbmx5IHNvbWUgcmVsa2luZHMgaGF2ZSBzdG9yYWdlICovCi0JY2hlY2tfcmVsYXRpb25f cmVsa2luZChyZWwpOwotCi0JLyogbm90ZTogdGhpcyB3aWxsIHdvcmsgT0sgb24gbm9uLWxv Y2FsIHRlbXAgdGFibGVzICovCi0KLQlyZWxwYWdlcyA9IFJlbGF0aW9uR2V0TnVtYmVyT2ZC bG9ja3MocmVsKTsKLQotCXJlbGF0aW9uX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsK LQotCVBHX1JFVFVSTl9JTlQ2NChyZWxwYWdlcyk7CisJUEdfUkVUVVJOX0lOVDY0KHBnX3Jl bHBhZ2VzX2ltcGwocmVsKSk7CiB9CiAKIC8qIE11c3Qga2VlcCBzdXBlcnVzZXIoKSBjaGVj aywgc2VlIGFib3ZlLiAqLwpAQCAtNDM2LDcgKzQxNiw2IEBAIERhdHVtCiBwZ19yZWxwYWdl c2J5aWQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19P SUQoMCk7Ci0JaW50NjQJCXJlbHBhZ2VzOwogCVJlbGF0aW9uCXJlbDsKIAogCWlmICghc3Vw ZXJ1c2VyKCkpCkBAIC00NDYsMTYgKzQyNSw3IEBAIHBnX3JlbHBhZ2VzYnlpZChQR19GVU5D VElPTl9BUkdTKQogCiAJcmVsID0gcmVsYXRpb25fb3BlbihyZWxpZCwgQWNjZXNzU2hhcmVM b2NrKTsKIAotCS8qIG9ubHkgc29tZSByZWxraW5kcyBoYXZlIHN0b3JhZ2UgKi8KLQljaGVj a19yZWxhdGlvbl9yZWxraW5kKHJlbCk7Ci0KLQkvKiBub3RlOiB0aGlzIHdpbGwgd29yayBP SyBvbiBub24tbG9jYWwgdGVtcCB0YWJsZXMgKi8KLQotCXJlbHBhZ2VzID0gUmVsYXRpb25H ZXROdW1iZXJPZkJsb2NrcyhyZWwpOwotCi0JcmVsYXRpb25fY2xvc2UocmVsLCBBY2Nlc3NT aGFyZUxvY2spOwotCi0JUEdfUkVUVVJOX0lOVDY0KHJlbHBhZ2VzKTsKKwlQR19SRVRVUk5f SU5UNjQocGdfcmVscGFnZXNfaW1wbChyZWwpKTsKIH0KIAogLyogTm8gbmVlZCBmb3Igc3Vw ZXJ1c2VyIGNoZWNrcyBpbiB2MS41LCBzZWUgYWJvdmUgKi8KQEAgLTQ2MywxMyArNDMzLDI0 IEBAIERhdHVtCiBwZ19yZWxwYWdlc2J5aWRfdjFfNShQR19GVU5DVElPTl9BUkdTKQogewog CU9pZAkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKLQlpbnQ2NAkJcmVscGFnZXM7CiAJ UmVsYXRpb24JcmVsOwogCiAJcmVsID0gcmVsYXRpb25fb3BlbihyZWxpZCwgQWNjZXNzU2hh cmVMb2NrKTsKIAotCS8qIG9ubHkgc29tZSByZWxraW5kcyBoYXZlIHN0b3JhZ2UgKi8KLQlj aGVja19yZWxhdGlvbl9yZWxraW5kKHJlbCk7CisJUEdfUkVUVVJOX0lOVDY0KHBnX3JlbHBh Z2VzX2ltcGwocmVsKSk7Cit9CisKK3N0YXRpYyBpbnQ2NAorcGdfcmVscGFnZXNfaW1wbChS ZWxhdGlvbiByZWwpCit7CisJaW50NjQJCXJlbHBhZ2VzOworCisJaWYgKCFSRUxLSU5EX0hB U19TVE9SQUdFKHJlbC0+cmRfcmVsLT5yZWxraW5kKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJj YW5ub3QgZ2V0IHBhZ2UgY291bnQgb2YgcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCVJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rf c3VwcG9ydGVkKHJlbC0+cmRfcmVsLT5yZWxraW5kKSkpOwogCiAJLyogbm90ZTogdGhpcyB3 aWxsIHdvcmsgT0sgb24gbm9uLWxvY2FsIHRlbXAgdGFibGVzICovCiAKQEAgLTQ3Nyw3ICs0 NTgsNyBAQCBwZ19yZWxwYWdlc2J5aWRfdjFfNShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVs YXRpb25fY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCi0JUEdfUkVUVVJOX0lOVDY0 KHJlbHBhZ2VzKTsKKwlyZXR1cm4gcmVscGFnZXM7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNzU0LDIxICs3 MzUsMyBAQCBHZXRIYXNoUGFnZVN0YXRzKFBhZ2UgcGFnZSwgSGFzaEluZGV4U3RhdCAqc3Rh dHMpCiAJfQogCXN0YXRzLT5mcmVlX3NwYWNlICs9IFBhZ2VHZXRFeGFjdEZyZWVTcGFjZShw YWdlKTsKIH0KLQotLyoKLSAqIGNoZWNrX3JlbGF0aW9uX3JlbGtpbmQgLSBjb252ZW5pZW5j ZSByb3V0aW5lIHRvIGNoZWNrIHRoYXQgcmVsYXRpb24KLSAqIGlzIG9mIHRoZSByZWxraW5k IHN1cHBvcnRlZCBieSB0aGUgY2FsbGVycwotICovCi1zdGF0aWMgdm9pZAotY2hlY2tfcmVs YXRpb25fcmVsa2luZChSZWxhdGlvbiByZWwpCi17Ci0JaWYgKHJlbC0+cmRfcmVsLT5yZWxr aW5kICE9IFJFTEtJTkRfUkVMQVRJT04gJiYKLQkJcmVsLT5yZF9yZWwtPnJlbGtpbmQgIT0g UkVMS0lORF9JTkRFWCAmJgotCQlyZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX01B VFZJRVcgJiYKLQkJcmVsLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9TRVFVRU5DRSAm JgotCQlyZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1RPQVNUVkFMVUUpCi0JCWVy ZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSks Ci0JCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlLCBpbmRleCwgbWF0ZXJpYWxp emVkIHZpZXcsIHNlcXVlbmNlLCBvciBUT0FTVCB0YWJsZSIsCi0JCQkJCQlSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZShyZWwpKSkpOwotfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ3N0YXR0 dXBsZS9wZ3N0YXR0dXBsZS5jIGIvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXR0dXBsZS5j CmluZGV4IDIxZmRlZmY4YWYuLmY0MDhlNmQ4NGQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdz dGF0dHVwbGUvcGdzdGF0dHVwbGUuYworKysgYi9jb250cmliL3Bnc3RhdHR1cGxlL3Bnc3Rh dHR1cGxlLmMKQEAgLTI4NCwzMSArMjg0LDIwIEBAIHBnc3RhdF9yZWxhdGlvbihSZWxhdGlv biByZWwsIEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvKQogCQkJCQllcnIgPSAidW5rbm93biBp bmRleCI7CiAJCQkJCWJyZWFrOwogCQkJfQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJp bmRleCBcIiVzXCIgKCVzKSBpcyBub3Qgc3VwcG9ydGVkIiwKKwkJCQkJCQlSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZShyZWwpLCBlcnIpKSk7CiAJCQlicmVhazsKLQkJY2FzZSBSRUxLSU5E X1ZJRVc6Ci0JCQllcnIgPSAidmlldyI7Ci0JCQlicmVhazsKLQkJY2FzZSBSRUxLSU5EX0NP TVBPU0lURV9UWVBFOgotCQkJZXJyID0gImNvbXBvc2l0ZSB0eXBlIjsKLQkJCWJyZWFrOwot CQljYXNlIFJFTEtJTkRfRk9SRUlHTl9UQUJMRToKLQkJCWVyciA9ICJmb3JlaWduIHRhYmxl IjsKLQkJCWJyZWFrOwotCQljYXNlIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEU6Ci0JCQll cnIgPSAicGFydGl0aW9uZWQgdGFibGUiOwotCQkJYnJlYWs7Ci0JCWNhc2UgUkVMS0lORF9Q QVJUSVRJT05FRF9JTkRFWDoKLQkJCWVyciA9ICJwYXJ0aXRpb25lZCBpbmRleCI7Ci0JCQli cmVhazsKKwogCQlkZWZhdWx0OgotCQkJZXJyID0gInVua25vd24iOwotCQkJYnJlYWs7CisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCisJCQkJCSBlcnJtc2coImNhbm5vdCBnZXQgdHVwbGUtbGV2ZWwgc3RhdGlz dGljcyBmb3IgcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKSwKKwkJCQkJIGVycmRldGFpbF9yZWxraW5kX25vdF9zdXBwb3J0ZWQocmVs LT5yZF9yZWwtPnJlbGtpbmQpKSk7CiAJfQogCi0JZXJlcG9ydChFUlJPUiwKLQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coIlwiJXNc IiAoJXMpIGlzIG5vdCBzdXBwb3J0ZWQiLAotCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShyZWwpLCBlcnIpKSk7CiAJcmV0dXJuIDA7CQkJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAq LwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCA2OWY5ZGQ1MWE3Li5kMjk3ZTc3MzYx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTI2LDYgKzI2LDcgQEAgT0JKUyA9IFwKIAlw YXJ0aXRpb24ubyBcCiAJcGdfYWdncmVnYXRlLm8gXAogCXBnX2Nhc3QubyBcCisJcGdfY2xh c3MubyBcCiAJcGdfY29sbGF0aW9uLm8gXAogCXBnX2NvbnN0cmFpbnQubyBcCiAJcGdfY29u dmVyc2lvbi5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2xhc3Mu YyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2xhc3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi4zMDRjMGFmODA4Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19jbGFzcy5jCkBAIC0wLDAgKzEsNTIgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2NsYXNzLmMKKyAqCSAgcm91dGluZXMgdG8gc3Vw cG9ydCBtYW5pcHVsYXRpb24gb2YgdGhlIHBnX2NsYXNzIHJlbGF0aW9uCisgKgorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNB VElPTgorICoJICBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NsYXNzLmMKKyAqCisgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX2NsYXNzLmgiCisKKy8qCisgKiBJc3N1ZSBhbiBlcnJkZXRhaWwoKSBp bmZvcm1pbmcgdGhhdCB0aGUgcmVsa2luZCBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzCisg KiBvcGVyYXRpb24uCisgKi8KK2ludAorZXJyZGV0YWlsX3JlbGtpbmRfbm90X3N1cHBvcnRl ZChjaGFyIHJlbGtpbmQpCit7CisJc3dpdGNoIChyZWxraW5kKQorCXsKKwkJY2FzZSBSRUxL SU5EX1JFTEFUSU9OOgorCQkJcmV0dXJuIGVycmRldGFpbCgiVGhpcyBvcGVyYXRpb24gaXMg bm90IHN1cHBvcnRlZCBmb3IgdGFibGVzLiIpOworCQljYXNlIFJFTEtJTkRfSU5ERVg6CisJ CQlyZXR1cm4gZXJyZGV0YWlsKCJUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZv ciBpbmRleGVzLiIpOworCQljYXNlIFJFTEtJTkRfU0VRVUVOQ0U6CisJCQlyZXR1cm4gZXJy ZGV0YWlsKCJUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBzZXF1ZW5jZXMu Iik7CisJCWNhc2UgUkVMS0lORF9UT0FTVFZBTFVFOgorCQkJcmV0dXJuIGVycmRldGFpbCgi VGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgVE9BU1QgdGFibGVzLiIpOwor CQljYXNlIFJFTEtJTkRfVklFVzoKKwkJCXJldHVybiBlcnJkZXRhaWwoIlRoaXMgb3BlcmF0 aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpZXdzLiIpOworCQljYXNlIFJFTEtJTkRfTUFU VklFVzoKKwkJCXJldHVybiBlcnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBw b3J0ZWQgZm9yIG1hdGVyaWFsaXplZCB2aWV3cy4iKTsKKwkJY2FzZSBSRUxLSU5EX0NPTVBP U0lURV9UWVBFOgorCQkJcmV0dXJuIGVycmRldGFpbCgiVGhpcyBvcGVyYXRpb24gaXMgbm90 IHN1cHBvcnRlZCBmb3IgY29tcG9zaXRlIHR5cGVzLiIpOworCQljYXNlIFJFTEtJTkRfRk9S RUlHTl9UQUJMRToKKwkJCXJldHVybiBlcnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlzIG5v dCBzdXBwb3J0ZWQgZm9yIGZvcmVpZ24gdGFibGVzLiIpOworCQljYXNlIFJFTEtJTkRfUEFS VElUSU9ORURfVEFCTEU6CisJCQlyZXR1cm4gZXJyZGV0YWlsKCJUaGlzIG9wZXJhdGlvbiBp cyBub3Qgc3VwcG9ydGVkIGZvciBwYXJ0aXRpb25lZCB0YWJsZXMuIik7CisJCWNhc2UgUkVM S0lORF9QQVJUSVRJT05FRF9JTkRFWDoKKwkJCXJldHVybiBlcnJkZXRhaWwoIlRoaXMgb3Bl cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHBhcnRpdGlvbmVkIGluZGV4ZXMuIik7CisJ CWRlZmF1bHQ6CisJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIHJlbGtpbmQ6ICclYyci LCByZWxraW5kKTsKKwkJCXJldHVybiAwOworCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvdG9hc3RpbmcuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvdG9hc3Rpbmcu YwppbmRleCBiZjgxZjZjY2M1Li4xNDdiNWFiYzE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3RvYXN0aW5nLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy90b2FzdGlu Zy5jCkBAIC05OSwxMCArOTksOCBAQCBCb290c3RyYXBUb2FzdFRhYmxlKGNoYXIgKnJlbE5h bWUsIE9pZCB0b2FzdE9pZCwgT2lkIHRvYXN0SW5kZXhPaWQpCiAKIAlpZiAocmVsLT5yZF9y ZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTiAmJgogCQlyZWwtPnJkX3JlbC0+cmVs a2luZCAhPSBSRUxLSU5EX01BVFZJRVcpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNv ZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVycm1zZygiXCIlc1wiIGlz IG5vdCBhIHRhYmxlIG9yIG1hdGVyaWFsaXplZCB2aWV3IiwKLQkJCQkJCXJlbE5hbWUpKSk7 CisJCWVsb2coRVJST1IsICJcIiVzXCIgaXMgbm90IGEgdGFibGUgb3IgbWF0ZXJpYWxpemVk IHZpZXciLAorCQkJIHJlbE5hbWUpOwogCiAJLyogY3JlYXRlX3RvYXN0X3RhYmxlIGRvZXMg YWxsIHRoZSB3b3JrICovCiAJaWYgKCFjcmVhdGVfdG9hc3RfdGFibGUocmVsLCB0b2FzdE9p ZCwgdG9hc3RJbmRleE9pZCwgKERhdHVtKSAwLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29tbWVudC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29tbWVudC5jCmlu ZGV4IDIxNmI4ZDMwNjguLjgzNGYxYTJhM2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvbW1lbnQuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb21tZW50LmMK QEAgLTk4LDggKzk4LDkgQEAgQ29tbWVudE9iamVjdChDb21tZW50U3RtdCAqc3RtdCkKIAkJ CQlyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUEFSVElUSU9ORURfVEFC TEUpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdf T0JKRUNUX1RZUEUpLAotCQkJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlLCB2 aWV3LCBtYXRlcmlhbGl6ZWQgdmlldywgY29tcG9zaXRlIHR5cGUsIG9yIGZvcmVpZ24gdGFi bGUiLAotCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbikpKSk7CisJ CQkJCQkgZXJybXNnKCJjYW5ub3Qgc2V0IGNvbW1lbnQgb24gcmVsYXRpb24gXCIlc1wiIiwK KwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKSwKKwkJCQkJCSBl cnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHJlbGF0aW9uLT5yZF9yZWwtPnJlbGtp bmQpKSk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9pbmRleGNtZHMuYwppbmRleCA3Njc3NGRjZTA2Li5jMTRjYTI3YzVlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9pbmRleGNtZHMuYwpAQCAtNjUwLDIyICs2NTAsMTIgQEAgRGVmaW5lSW5kZXgo T2lkIHJlbGF0aW9uSWQsCiAJCWNhc2UgUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRToKIAkJ CS8qIE9LICovCiAJCQlicmVhazsKLQkJY2FzZSBSRUxLSU5EX0ZPUkVJR05fVEFCTEU6Ci0K LQkJCS8qCi0JCQkgKiBDdXN0b20gZXJyb3IgbWVzc2FnZSBmb3IgRk9SRUlHTiBUQUJMRSBz aW5jZSB0aGUgdGVybSBpcyBjbG9zZQotCQkJICogdG8gYSByZWd1bGFyIHRhYmxlIGFuZCBj YW4gY29uZnVzZSB0aGUgdXNlci4KLQkJCSAqLwotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJCSBlcnJtc2coImNh bm5vdCBjcmVhdGUgaW5kZXggb24gZm9yZWlnbiB0YWJsZSBcIiVzXCIiLAotCQkJCQkJCVJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7Ci0JCQlicmVhazsKIAkJZGVmYXVsdDoK IAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNU X1RZUEUpLAotCQkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgdGFibGUgb3IgbWF0ZXJp YWxpemVkIHZpZXciLAotCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7 CisJCQkJCSBlcnJtc2coImNhbm5vdCBjcmVhdGUgaW5kZXggb24gcmVsYXRpb24gXCIlc1wi IiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSwKKwkJCQkJIGVycmRl dGFpbF9yZWxraW5kX25vdF9zdXBwb3J0ZWQocmVsLT5yZF9yZWwtPnJlbGtpbmQpKSk7CiAJ CQlicmVhazsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2xvY2tj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9sb2NrY21kcy5jCmluZGV4IDM0ZjIyNzBj ZWQuLjYyNDY1YmFjZDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2xvY2tj bWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbG9ja2NtZHMuYwpAQCAtODksOCAr ODksOSBAQCBSYW5nZVZhckNhbGxiYWNrRm9yTG9ja1RhYmxlKGNvbnN0IFJhbmdlVmFyICpy diwgT2lkIHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJCXJlbGtpbmQgIT0gUkVMS0lORF9WSUVX KQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNU X1RZUEUpLAotCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSB0YWJsZSBvciB2aWV3IiwK LQkJCQkJCXJ2LT5yZWxuYW1lKSkpOworCQkJCSBlcnJtc2coImNhbm5vdCBsb2NrIHJlbGF0 aW9uIFwiJXNcIiIsCisJCQkJCQlydi0+cmVsbmFtZSksCisJCQkJIGVycmRldGFpbF9yZWxr aW5kX25vdF9zdXBwb3J0ZWQocmVsa2luZCkpKTsKIAogCS8qCiAJICogTWFrZSBub3RlIGlm IGEgdGVtcG9yYXJ5IHJlbGF0aW9uIGhhcyBiZWVuIGFjY2Vzc2VkIGluIHRoaXMKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zZWNsYWJlbC5jCmluZGV4IDY5MDY3MTQyOTguLmRkYzAxOWNiMzkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtMTg4LDggKzE4OCw5IEBAIEV4ZWNTZWNMYWJl bFN0bXQoU2VjTGFiZWxTdG10ICpzdG10KQogCQkJCXJlbGF0aW9uLT5yZF9yZWwtPnJlbGtp bmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAkJCQllcmVwb3J0KEVSUk9SLAog CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJCQkgZXJy bXNnKCJcIiVzXCIgaXMgbm90IGEgdGFibGUsIHZpZXcsIG1hdGVyaWFsaXplZCB2aWV3LCBj b21wb3NpdGUgdHlwZSwgb3IgZm9yZWlnbiB0YWJsZSIsCi0JCQkJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJlbGF0aW9uKSkpKTsKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBzZXQg c2VjdXJpdHkgbGFiZWwgb24gcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKSwKKwkJCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9u b3Rfc3VwcG9ydGVkKHJlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQpKSk7CiAJCQlicmVhazsK IAkJZGVmYXVsdDoKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2VxdWVuY2UuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlcXVlbmNlLmMKaW5kZXgg MDQxNWRmOWNjYi4uZTNmOWY2ZDUzZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2VxdWVuY2UuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZS5jCkBA IC0xNjgwLDggKzE2ODAsOSBAQCBwcm9jZXNzX293bmVkX2J5KFJlbGF0aW9uIHNlcXJlbCwg TGlzdCAqb3duZWRfYnksIGJvb2wgZm9yX2lkZW50aXR5KQogCQkJICB0YWJsZXJlbC0+cmRf cmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpKQogCQkJZXJlcG9y dChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0J CQkJCSBlcnJtc2coInJlZmVyZW5jZWQgcmVsYXRpb24gXCIlc1wiIGlzIG5vdCBhIHRhYmxl IG9yIGZvcmVpZ24gdGFibGUiLAotCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRh YmxlcmVsKSkpKTsKKwkJCQkJIGVycm1zZygic2VxdWVuY2UgY2Fubm90IGJlIG93bmVkIGJ5 IHJlbGF0aW9uIFwiJXNcIiIsCisJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFi bGVyZWwpKSwKKwkJCQkJIGVycmRldGFpbF9yZWxraW5kX25vdF9zdXBwb3J0ZWQodGFibGVy ZWwtPnJkX3JlbC0+cmVsa2luZCkpKTsKIAogCQkvKiBXZSBpbnNpc3Qgb24gc2FtZSBvd25l ciBhbmQgc2NoZW1hICovCiAJCWlmIChzZXFyZWwtPnJkX3JlbC0+cmVsb3duZXIgIT0gdGFi bGVyZWwtPnJkX3JlbC0+cmVsb3duZXIpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9zdGF0c2NtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCmlu ZGV4IGIyNDRhMGZiZDcuLjQ4NTZmNGI0MWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3N0YXRzY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21k cy5jCkBAIC0xMzUsOCArMTM1LDkgQEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0 bXQgKnN0bXQpCiAJCQlyZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1BBUlRJVElP TkVEX1RBQkxFKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9X Uk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBpcyBu b3QgYSB0YWJsZSwgZm9yZWlnbiB0YWJsZSwgb3IgbWF0ZXJpYWxpemVkIHZpZXciLAotCQkJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQkJCSBlcnJtc2coImNh bm5vdCBkZWZpbmUgc3RhdGlzdGljcyBmb3IgcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCQlS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSwKKwkJCQkJIGVycmRldGFpbF9yZWxraW5k X25vdF9zdXBwb3J0ZWQocmVsLT5yZF9yZWwtPnJlbGtpbmQpKSk7CiAKIAkJLyogWW91IG11 c3Qgb3duIHRoZSByZWxhdGlvbiB0byBjcmVhdGUgc3RhdHMgb24gaXQgKi8KIAkJaWYgKCFw Z19jbGFzc19vd25lcmNoZWNrKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgc3R4b3duZXIpKQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCA0ZTIzYzdmY2U1Li44ZGZiZTRmZWUx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMzk4LDggKzM5OCw3IEBAIHN0 YXRpYyB2b2lkIEFUUmV3cml0ZVRhYmxlcyhBbHRlclRhYmxlU3RtdCAqcGFyc2V0cmVlLAog CQkJCQkJCUFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCk7CiBzdGF0aWMgdm9p ZCBBVFJld3JpdGVUYWJsZShBbHRlcmVkVGFibGVJbmZvICp0YWIsIE9pZCBPSUROZXdIZWFw LCBMT0NLTU9ERSBsb2NrbW9kZSk7CiBzdGF0aWMgQWx0ZXJlZFRhYmxlSW5mbyAqQVRHZXRR dWV1ZUVudHJ5KExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCk7Ci1zdGF0aWMgdm9pZCBB VFNpbXBsZVBlcm1pc3Npb25zKFJlbGF0aW9uIHJlbCwgaW50IGFsbG93ZWRfdGFyZ2V0cyk7 Ci1zdGF0aWMgdm9pZCBBVFdyb25nUmVsa2luZEVycm9yKFJlbGF0aW9uIHJlbCwgaW50IGFs bG93ZWRfdGFyZ2V0cyk7CitzdGF0aWMgdm9pZCBBVFNpbXBsZVBlcm1pc3Npb25zKEFsdGVy VGFibGVUeXBlIGNtZHR5cGUsIFJlbGF0aW9uIHJlbCwgaW50IGFsbG93ZWRfdGFyZ2V0cyk7 CiBzdGF0aWMgdm9pZCBBVFNpbXBsZVJlY3Vyc2lvbihMaXN0ICoqd3F1ZXVlLCBSZWxhdGlv biByZWwsCiAJCQkJCQkJICBBbHRlclRhYmxlQ21kICpjbWQsIGJvb2wgcmVjdXJzZSwgTE9D S01PREUgbG9ja21vZGUsCiAJCQkJCQkJICBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNv bnRleHQpOwpAQCAtMzM5NCw4ICszMzkzLDkgQEAgcmVuYW1lYXR0X2NoZWNrKE9pZCBteXJl bGlkLCBGb3JtX3BnX2NsYXNzIGNsYXNzZm9ybSwgYm9vbCByZWN1cnNpbmcpCiAJCXJlbGtp bmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkgZXJybXNnKCJc IiVzXCIgaXMgbm90IGEgdGFibGUsIHZpZXcsIG1hdGVyaWFsaXplZCB2aWV3LCBjb21wb3Np dGUgdHlwZSwgaW5kZXgsIG9yIGZvcmVpZ24gdGFibGUiLAotCQkJCQkJTmFtZVN0cihjbGFz c2Zvcm0tPnJlbG5hbWUpKSkpOworCQkJCSBlcnJtc2coImNhbm5vdCByZW5hbWUgY29sdW1u cyBvZiByZWxhdGlvbiBcIiVzXCIiLAorCQkJCQkJTmFtZVN0cihjbGFzc2Zvcm0tPnJlbG5h bWUpKSwKKwkJCQkgZXJyZGV0YWlsX3JlbGtpbmRfbm90X3N1cHBvcnRlZChyZWxraW5kKSkp OwogCiAJLyoKIAkgKiBwZXJtaXNzaW9ucyBjaGVja2luZy4gIG9ubHkgdGhlIG93bmVyIG9m IGEgY2xhc3MgY2FuIGNoYW5nZSBpdHMgc2NoZW1hLgpAQCAtNDQyMiw3ICs0NDIyLDcgQEAg QVRQcmVwQ21kKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAq Y21kLAogCXN3aXRjaCAoY21kLT5zdWJ0eXBlKQogCXsKIAkJY2FzZSBBVF9BZGRDb2x1bW46 CQkvKiBBREQgQ09MVU1OICovCi0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwKKwkJCUFU U2ltcGxlUGVybWlzc2lvbnMoY21kLT5zdWJ0eXBlLCByZWwsCiAJCQkJCQkJCUFUVF9UQUJM RSB8IEFUVF9DT01QT1NJVEVfVFlQRSB8IEFUVF9GT1JFSUdOX1RBQkxFKTsKIAkJCUFUUHJl cEFkZENvbHVtbih3cXVldWUsIHJlbCwgcmVjdXJzZSwgcmVjdXJzaW5nLCBmYWxzZSwgY21k LAogCQkJCQkJCWxvY2ttb2RlLCBjb250ZXh0KTsKQEAgLTQ0MzAsNyArNDQzMCw3IEBAIEFU UHJlcENtZChMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIEFsdGVyVGFibGVDbWQgKmNt ZCwKIAkJCXBhc3MgPSBBVF9QQVNTX0FERF9DT0w7CiAJCQlicmVhazsKIAkJY2FzZSBBVF9B ZGRDb2x1bW5Ub1ZpZXc6CS8qIGFkZCBjb2x1bW4gdmlhIENSRUFURSBPUiBSRVBMQUNFIFZJ RVcgKi8KLQkJCUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRfVklFVyk7CisJCQlBVFNp bXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwgcmVsLCBBVFRfVklFVyk7CiAJCQlBVFBy ZXBBZGRDb2x1bW4od3F1ZXVlLCByZWwsIHJlY3Vyc2UsIHJlY3Vyc2luZywgdHJ1ZSwgY21k LAogCQkJCQkJCWxvY2ttb2RlLCBjb250ZXh0KTsKIAkJCS8qIFJlY3Vyc2lvbiBvY2N1cnMg ZHVyaW5nIGV4ZWN1dGlvbiBwaGFzZSAqLwpAQCAtNDQ0NCw3ICs0NDQ0LDcgQEAgQVRQcmVw Q21kKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAqY21kLAog CQkJICogc3Vic3RpdHV0ZXMgZGVmYXVsdCB2YWx1ZXMgaW50byBJTlNFUlRzIGJlZm9yZSBp dCBleHBhbmRzCiAJCQkgKiBydWxlcy4KIAkJCSAqLwotCQkJQVRTaW1wbGVQZXJtaXNzaW9u cyhyZWwsIEFUVF9UQUJMRSB8IEFUVF9WSUVXIHwgQVRUX0ZPUkVJR05fVEFCTEUpOworCQkJ QVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFIHwgQVRU X1ZJRVcgfCBBVFRfRk9SRUlHTl9UQUJMRSk7CiAJCQlBVFNpbXBsZVJlY3Vyc2lvbih3cXVl dWUsIHJlbCwgY21kLCByZWN1cnNlLCBsb2NrbW9kZSwgY29udGV4dCk7CiAJCQkvKiBObyBj b21tYW5kLXNwZWNpZmljIHByZXAgbmVlZGVkICovCiAJCQlwYXNzID0gY21kLT5kZWYgPyBB VF9QQVNTX0FERF9PVEhFUkNPTlNUUiA6IEFUX1BBU1NfRFJPUDsKQEAgLTQ0NTIsNzcgKzQ0 NTIsNzcgQEAgQVRQcmVwQ21kKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJU YWJsZUNtZCAqY21kLAogCQljYXNlIEFUX0Nvb2tlZENvbHVtbkRlZmF1bHQ6CS8qIGFkZCBh IHByZS1jb29rZWQgZGVmYXVsdCAqLwogCQkJLyogVGhpcyBpcyBjdXJyZW50bHkgdXNlZCBv bmx5IGluIENSRUFURSBUQUJMRSAqLwogCQkJLyogKHNvIHRoZSBwZXJtaXNzaW9uIGNoZWNr IHJlYWxseSBpc24ndCBuZWNlc3NhcnkpICovCi0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJl bCwgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUpOworCQkJQVRTaW1wbGVQZXJtaXNz aW9ucyhjbWQtPnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUp OwogCQkJLyogVGhpcyBjb21tYW5kIG5ldmVyIHJlY3Vyc2VzICovCiAJCQlwYXNzID0gQVRf UEFTU19BRERfT1RIRVJDT05TVFI7CiAJCQlicmVhazsKIAkJY2FzZSBBVF9BZGRJZGVudGl0 eToKLQkJCUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRfVEFCTEUgfCBBVFRfVklFVyB8 IEFUVF9GT1JFSUdOX1RBQkxFKTsKKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5zdWJ0 eXBlLCByZWwsIEFUVF9UQUJMRSB8IEFUVF9WSUVXIHwgQVRUX0ZPUkVJR05fVEFCTEUpOwog CQkJLyogVGhpcyBjb21tYW5kIG5ldmVyIHJlY3Vyc2VzICovCiAJCQlwYXNzID0gQVRfUEFT U19BRERfT1RIRVJDT05TVFI7CiAJCQlicmVhazsKIAkJY2FzZSBBVF9TZXRJZGVudGl0eToK LQkJCUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRfVEFCTEUgfCBBVFRfVklFVyB8IEFU VF9GT1JFSUdOX1RBQkxFKTsKKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5zdWJ0eXBl LCByZWwsIEFUVF9UQUJMRSB8IEFUVF9WSUVXIHwgQVRUX0ZPUkVJR05fVEFCTEUpOwogCQkJ LyogVGhpcyBjb21tYW5kIG5ldmVyIHJlY3Vyc2VzICovCiAJCQkvKiBUaGlzIHNob3VsZCBy dW4gYWZ0ZXIgQWRkSWRlbnRpdHksIHNvIGRvIGl0IGluIE1JU0MgcGFzcyAqLwogCQkJcGFz cyA9IEFUX1BBU1NfTUlTQzsKIAkJCWJyZWFrOwogCQljYXNlIEFUX0Ryb3BJZGVudGl0eToK LQkJCUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRfVEFCTEUgfCBBVFRfVklFVyB8IEFU VF9GT1JFSUdOX1RBQkxFKTsKKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5zdWJ0eXBl LCByZWwsIEFUVF9UQUJMRSB8IEFUVF9WSUVXIHwgQVRUX0ZPUkVJR05fVEFCTEUpOwogCQkJ LyogVGhpcyBjb21tYW5kIG5ldmVyIHJlY3Vyc2VzICovCiAJCQlwYXNzID0gQVRfUEFTU19E Uk9QOwogCQkJYnJlYWs7CiAJCWNhc2UgQVRfRHJvcE5vdE51bGw6CS8qIEFMVEVSIENPTFVN TiBEUk9QIE5PVCBOVUxMICovCi0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RB QkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUpOworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQt PnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUpOwogCQkJQVRQ cmVwRHJvcE5vdE51bGwocmVsLCByZWN1cnNlLCByZWN1cnNpbmcpOwogCQkJQVRTaW1wbGVS ZWN1cnNpb24od3F1ZXVlLCByZWwsIGNtZCwgcmVjdXJzZSwgbG9ja21vZGUsIGNvbnRleHQp OwogCQkJcGFzcyA9IEFUX1BBU1NfRFJPUDsKIAkJCWJyZWFrOwogCQljYXNlIEFUX1NldE5v dE51bGw6CQkvKiBBTFRFUiBDT0xVTU4gU0VUIE5PVCBOVUxMICovCi0JCQlBVFNpbXBsZVBl cm1pc3Npb25zKHJlbCwgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUpOworCQkJQVRT aW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFIHwgQVRUX0ZP UkVJR05fVEFCTEUpOwogCQkJLyogTmVlZCBjb21tYW5kLXNwZWNpZmljIHJlY3Vyc2lvbiBk ZWNpc2lvbiAqLwogCQkJQVRQcmVwU2V0Tm90TnVsbCh3cXVldWUsIHJlbCwgY21kLCByZWN1 cnNlLCByZWN1cnNpbmcsCiAJCQkJCQkJIGxvY2ttb2RlLCBjb250ZXh0KTsKIAkJCXBhc3Mg PSBBVF9QQVNTX0NPTF9BVFRSUzsKIAkJCWJyZWFrOwogCQljYXNlIEFUX0NoZWNrTm90TnVs bDoJLyogY2hlY2sgY29sdW1uIGlzIGFscmVhZHkgbWFya2VkIE5PVCBOVUxMICovCi0JCQlB VFNpbXBsZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUp OworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxF IHwgQVRUX0ZPUkVJR05fVEFCTEUpOwogCQkJQVRTaW1wbGVSZWN1cnNpb24od3F1ZXVlLCBy ZWwsIGNtZCwgcmVjdXJzZSwgbG9ja21vZGUsIGNvbnRleHQpOwogCQkJLyogTm8gY29tbWFu ZC1zcGVjaWZpYyBwcmVwIG5lZWRlZCAqLwogCQkJcGFzcyA9IEFUX1BBU1NfQ09MX0FUVFJT OwogCQkJYnJlYWs7CiAJCWNhc2UgQVRfRHJvcEV4cHJlc3Npb246IC8qIEFMVEVSIENPTFVN TiBEUk9QIEVYUFJFU1NJT04gKi8KLQkJCUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRf VEFCTEUgfCBBVFRfRk9SRUlHTl9UQUJMRSk7CisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNt ZC0+c3VidHlwZSwgcmVsLCBBVFRfVEFCTEUgfCBBVFRfRk9SRUlHTl9UQUJMRSk7CiAJCQlB VFNpbXBsZVJlY3Vyc2lvbih3cXVldWUsIHJlbCwgY21kLCByZWN1cnNlLCBsb2NrbW9kZSwg Y29udGV4dCk7CiAJCQlBVFByZXBEcm9wRXhwcmVzc2lvbihyZWwsIGNtZCwgcmVjdXJzZSwg cmVjdXJzaW5nLCBsb2NrbW9kZSk7CiAJCQlwYXNzID0gQVRfUEFTU19EUk9QOwogCQkJYnJl YWs7CiAJCWNhc2UgQVRfU2V0U3RhdGlzdGljczoJLyogQUxURVIgQ09MVU1OIFNFVCBTVEFU SVNUSUNTICovCi0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RBQkxFIHwgQVRU X01BVFZJRVcgfCBBVFRfSU5ERVggfCBBVFRfUEFSVElUSU9ORURfSU5ERVggfCBBVFRfRk9S RUlHTl9UQUJMRSk7CisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwgcmVs LCBBVFRfVEFCTEUgfCBBVFRfTUFUVklFVyB8IEFUVF9JTkRFWCB8IEFUVF9QQVJUSVRJT05F RF9JTkRFWCB8IEFUVF9GT1JFSUdOX1RBQkxFKTsKIAkJCUFUU2ltcGxlUmVjdXJzaW9uKHdx dWV1ZSwgcmVsLCBjbWQsIHJlY3Vyc2UsIGxvY2ttb2RlLCBjb250ZXh0KTsKIAkJCS8qIE5v IGNvbW1hbmQtc3BlY2lmaWMgcHJlcCBuZWVkZWQgKi8KIAkJCXBhc3MgPSBBVF9QQVNTX01J U0M7CiAJCQlicmVhazsKIAkJY2FzZSBBVF9TZXRPcHRpb25zOgkJLyogQUxURVIgQ09MVU1O IFNFVCAoIG9wdGlvbnMgKSAqLwogCQljYXNlIEFUX1Jlc2V0T3B0aW9uczoJLyogQUxURVIg Q09MVU1OIFJFU0VUICggb3B0aW9ucyApICovCi0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJl bCwgQVRUX1RBQkxFIHwgQVRUX01BVFZJRVcgfCBBVFRfSU5ERVggfCBBVFRfRk9SRUlHTl9U QUJMRSk7CisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwgcmVsLCBBVFRf VEFCTEUgfCBBVFRfTUFUVklFVyB8IEFUVF9JTkRFWCB8IEFUVF9GT1JFSUdOX1RBQkxFKTsK IAkJCS8qIFRoaXMgY29tbWFuZCBuZXZlciByZWN1cnNlcyAqLwogCQkJcGFzcyA9IEFUX1BB U1NfTUlTQzsKIAkJCWJyZWFrOwogCQljYXNlIEFUX1NldFN0b3JhZ2U6CQkvKiBBTFRFUiBD T0xVTU4gU0VUIFNUT1JBR0UgKi8KLQkJCUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRf VEFCTEUgfCBBVFRfTUFUVklFVyB8IEFUVF9GT1JFSUdOX1RBQkxFKTsKKwkJCUFUU2ltcGxl UGVybWlzc2lvbnMoY21kLT5zdWJ0eXBlLCByZWwsIEFUVF9UQUJMRSB8IEFUVF9NQVRWSUVX IHwgQVRUX0ZPUkVJR05fVEFCTEUpOwogCQkJQVRTaW1wbGVSZWN1cnNpb24od3F1ZXVlLCBy ZWwsIGNtZCwgcmVjdXJzZSwgbG9ja21vZGUsIGNvbnRleHQpOwogCQkJLyogTm8gY29tbWFu ZC1zcGVjaWZpYyBwcmVwIG5lZWRlZCAqLwogCQkJcGFzcyA9IEFUX1BBU1NfTUlTQzsKIAkJ CWJyZWFrOwogCQljYXNlIEFUX1NldENvbXByZXNzaW9uOiAvKiBBTFRFUiBDT0xVTU4gU0VU IENPTVBSRVNTSU9OICovCi0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RBQkxF IHwgQVRUX01BVFZJRVcpOworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5cGUs IHJlbCwgQVRUX1RBQkxFIHwgQVRUX01BVFZJRVcpOwogCQkJLyogVGhpcyBjb21tYW5kIG5l dmVyIHJlY3Vyc2VzICovCiAJCQkvKiBObyBjb21tYW5kLXNwZWNpZmljIHByZXAgbmVlZGVk ICovCiAJCQlwYXNzID0gQVRfUEFTU19NSVNDOwogCQkJYnJlYWs7CiAJCWNhc2UgQVRfRHJv cENvbHVtbjoJCS8qIERST1AgQ09MVU1OICovCi0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJl bCwKKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5zdWJ0eXBlLCByZWwsCiAJCQkJCQkJ CUFUVF9UQUJMRSB8IEFUVF9DT01QT1NJVEVfVFlQRSB8IEFUVF9GT1JFSUdOX1RBQkxFKTsK IAkJCUFUUHJlcERyb3BDb2x1bW4od3F1ZXVlLCByZWwsIHJlY3Vyc2UsIHJlY3Vyc2luZywg Y21kLAogCQkJCQkJCSBsb2NrbW9kZSwgY29udGV4dCk7CkBAIC00NTMwLDEzICs0NTMwLDEz IEBAIEFUUHJlcENtZChMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIEFsdGVyVGFibGVD bWQgKmNtZCwKIAkJCXBhc3MgPSBBVF9QQVNTX0RST1A7CiAJCQlicmVhazsKIAkJY2FzZSBB VF9BZGRJbmRleDoJCS8qIEFERCBJTkRFWCAqLwotCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhy ZWwsIEFUVF9UQUJMRSk7CisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwg cmVsLCBBVFRfVEFCTEUpOwogCQkJLyogVGhpcyBjb21tYW5kIG5ldmVyIHJlY3Vyc2VzICov CiAJCQkvKiBObyBjb21tYW5kLXNwZWNpZmljIHByZXAgbmVlZGVkICovCiAJCQlwYXNzID0g QVRfUEFTU19BRERfSU5ERVg7CiAJCQlicmVhazsKIAkJY2FzZSBBVF9BZGRDb25zdHJhaW50 OgkvKiBBREQgQ09OU1RSQUlOVCAqLwotCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhyZWwsIEFU VF9UQUJMRSB8IEFUVF9GT1JFSUdOX1RBQkxFKTsKKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMo Y21kLT5zdWJ0eXBlLCByZWwsIEFUVF9UQUJMRSB8IEFUVF9GT1JFSUdOX1RBQkxFKTsKIAkJ CS8qIFJlY3Vyc2lvbiBvY2N1cnMgZHVyaW5nIGV4ZWN1dGlvbiBwaGFzZSAqLwogCQkJLyog Tm8gY29tbWFuZC1zcGVjaWZpYyBwcmVwIG5lZWRlZCBleGNlcHQgc2F2aW5nIHJlY3Vyc2Ug ZmxhZyAqLwogCQkJaWYgKHJlY3Vyc2UpCkBAIC00NTQ0LDEzICs0NTQ0LDEzIEBAIEFUUHJl cENtZChMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIEFsdGVyVGFibGVDbWQgKmNtZCwK IAkJCXBhc3MgPSBBVF9QQVNTX0FERF9DT05TVFI7CiAJCQlicmVhazsKIAkJY2FzZSBBVF9B ZGRJbmRleENvbnN0cmFpbnQ6IC8qIEFERCBDT05TVFJBSU5UIFVTSU5HIElOREVYICovCi0J CQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RBQkxFKTsKKwkJCUFUU2ltcGxlUGVy bWlzc2lvbnMoY21kLT5zdWJ0eXBlLCByZWwsIEFUVF9UQUJMRSk7CiAJCQkvKiBUaGlzIGNv bW1hbmQgbmV2ZXIgcmVjdXJzZXMgKi8KIAkJCS8qIE5vIGNvbW1hbmQtc3BlY2lmaWMgcHJl cCBuZWVkZWQgKi8KIAkJCXBhc3MgPSBBVF9QQVNTX0FERF9JTkRFWENPTlNUUjsKIAkJCWJy ZWFrOwogCQljYXNlIEFUX0Ryb3BDb25zdHJhaW50OiAvKiBEUk9QIENPTlNUUkFJTlQgKi8K LQkJCUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRfVEFCTEUgfCBBVFRfRk9SRUlHTl9U QUJMRSk7CisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwgcmVsLCBBVFRf VEFCTEUgfCBBVFRfRk9SRUlHTl9UQUJMRSk7CiAJCQlBVENoZWNrUGFydGl0aW9uc05vdElu VXNlKHJlbCwgbG9ja21vZGUpOwogCQkJLyogT3RoZXIgcmVjdXJzaW9uIG9jY3VycyBkdXJp bmcgZXhlY3V0aW9uIHBoYXNlICovCiAJCQkvKiBObyBjb21tYW5kLXNwZWNpZmljIHByZXAg bmVlZGVkIGV4Y2VwdCBzYXZpbmcgcmVjdXJzZSBmbGFnICovCkBAIC00NTU5LDcgKzQ1NTks NyBAQCBBVFByZXBDbWQoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRlclRhYmxl Q21kICpjbWQsCiAJCQlwYXNzID0gQVRfUEFTU19EUk9QOwogCQkJYnJlYWs7CiAJCWNhc2Ug QVRfQWx0ZXJDb2x1bW5UeXBlOgkvKiBBTFRFUiBDT0xVTU4gVFlQRSAqLwotCQkJQVRTaW1w bGVQZXJtaXNzaW9ucyhyZWwsCisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlw ZSwgcmVsLAogCQkJCQkJCQlBVFRfVEFCTEUgfCBBVFRfQ09NUE9TSVRFX1RZUEUgfCBBVFRf Rk9SRUlHTl9UQUJMRSk7CiAJCQkvKiBTZWUgY29tbWVudHMgZm9yIEFUUHJlcEFsdGVyQ29s dW1uVHlwZSAqLwogCQkJY21kID0gQVRQYXJzZVRyYW5zZm9ybUNtZCh3cXVldWUsIHRhYiwg cmVsLCBjbWQsIHJlY3Vyc2UsIGxvY2ttb2RlLApAQCAtNDU3MSw3ICs0NTcxLDcgQEAgQVRQ cmVwQ21kKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAqY21k LAogCQkJcGFzcyA9IEFUX1BBU1NfQUxURVJfVFlQRTsKIAkJCWJyZWFrOwogCQljYXNlIEFU X0FsdGVyQ29sdW1uR2VuZXJpY09wdGlvbnM6Ci0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJl bCwgQVRUX0ZPUkVJR05fVEFCTEUpOworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1 YnR5cGUsIHJlbCwgQVRUX0ZPUkVJR05fVEFCTEUpOwogCQkJLyogVGhpcyBjb21tYW5kIG5l dmVyIHJlY3Vyc2VzICovCiAJCQkvKiBObyBjb21tYW5kLXNwZWNpZmljIHByZXAgbmVlZGVk ICovCiAJCQlwYXNzID0gQVRfUEFTU19NSVNDOwpAQCAtNDU4MywxMyArNDU4MywxMyBAQCBB VFByZXBDbWQoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRlclRhYmxlQ21kICpj bWQsCiAJCQlicmVhazsKIAkJY2FzZSBBVF9DbHVzdGVyT246CQkvKiBDTFVTVEVSIE9OICov CiAJCWNhc2UgQVRfRHJvcENsdXN0ZXI6CS8qIFNFVCBXSVRIT1VUIENMVVNURVIgKi8KLQkJ CUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRfVEFCTEUgfCBBVFRfTUFUVklFVyk7CisJ CQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwgcmVsLCBBVFRfVEFCTEUgfCBB VFRfTUFUVklFVyk7CiAJCQkvKiBUaGVzZSBjb21tYW5kcyBuZXZlciByZWN1cnNlICovCiAJ CQkvKiBObyBjb21tYW5kLXNwZWNpZmljIHByZXAgbmVlZGVkICovCiAJCQlwYXNzID0gQVRf UEFTU19NSVNDOwogCQkJYnJlYWs7CiAJCWNhc2UgQVRfU2V0TG9nZ2VkOgkJLyogU0VUIExP R0dFRCAqLwotCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhyZWwsIEFUVF9UQUJMRSk7CisJCQlB VFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwgcmVsLCBBVFRfVEFCTEUpOwogCQkJ aWYgKHRhYi0+Y2hnUGVyc2lzdGVuY2UpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKQEAgLTQ2MDQsNyArNDYw NCw3IEBAIEFUUHJlcENtZChMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIEFsdGVyVGFi bGVDbWQgKmNtZCwKIAkJCXBhc3MgPSBBVF9QQVNTX01JU0M7CiAJCQlicmVhazsKIAkJY2Fz ZSBBVF9TZXRVbkxvZ2dlZDoJLyogU0VUIFVOTE9HR0VEICovCi0JCQlBVFNpbXBsZVBlcm1p c3Npb25zKHJlbCwgQVRUX1RBQkxFKTsKKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5z dWJ0eXBlLCByZWwsIEFUVF9UQUJMRSk7CiAJCQlpZiAodGFiLT5jaGdQZXJzaXN0ZW5jZSkK IAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05P VF9TVVBQT1JURUQpLApAQCAtNDYxOSwxMSArNDYxOSwxMSBAQCBBVFByZXBDbWQoTGlzdCAq KndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRlclRhYmxlQ21kICpjbWQsCiAJCQlwYXNzID0g QVRfUEFTU19NSVNDOwogCQkJYnJlYWs7CiAJCWNhc2UgQVRfRHJvcE9pZHM6CQkvKiBTRVQg V0lUSE9VVCBPSURTICovCi0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RBQkxF IHwgQVRUX0ZPUkVJR05fVEFCTEUpOworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1 YnR5cGUsIHJlbCwgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUpOwogCQkJcGFzcyA9 IEFUX1BBU1NfRFJPUDsKIAkJCWJyZWFrOwogCQljYXNlIEFUX1NldFRhYmxlU3BhY2U6CS8q IFNFVCBUQUJMRVNQQUNFICovCi0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RB QkxFIHwgQVRUX01BVFZJRVcgfCBBVFRfSU5ERVggfAorCQkJQVRTaW1wbGVQZXJtaXNzaW9u cyhjbWQtPnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFIHwgQVRUX01BVFZJRVcgfCBBVFRfSU5E RVggfAogCQkJCQkJCQlBVFRfUEFSVElUSU9ORURfSU5ERVgpOwogCQkJLyogVGhpcyBjb21t YW5kIG5ldmVyIHJlY3Vyc2VzICovCiAJCQlBVFByZXBTZXRUYWJsZVNwYWNlKHRhYiwgcmVs LCBjbWQtPm5hbWUsIGxvY2ttb2RlKTsKQEAgLTQ2MzIsMzAgKzQ2MzIsMzAgQEAgQVRQcmVw Q21kKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAqY21kLAog CQljYXNlIEFUX1NldFJlbE9wdGlvbnM6CS8qIFNFVCAoLi4uKSAqLwogCQljYXNlIEFUX1Jl c2V0UmVsT3B0aW9uczoJLyogUkVTRVQgKC4uLikgKi8KIAkJY2FzZSBBVF9SZXBsYWNlUmVs T3B0aW9uczoJLyogcmVzZXQgdGhlbSBhbGwsIHRoZW4gc2V0IGp1c3QgdGhlc2UgKi8KLQkJ CUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRfVEFCTEUgfCBBVFRfVklFVyB8IEFUVF9N QVRWSUVXIHwgQVRUX0lOREVYKTsKKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5zdWJ0 eXBlLCByZWwsIEFUVF9UQUJMRSB8IEFUVF9WSUVXIHwgQVRUX01BVFZJRVcgfCBBVFRfSU5E RVgpOwogCQkJLyogVGhpcyBjb21tYW5kIG5ldmVyIHJlY3Vyc2VzICovCiAJCQkvKiBObyBj b21tYW5kLXNwZWNpZmljIHByZXAgbmVlZGVkICovCiAJCQlwYXNzID0gQVRfUEFTU19NSVND OwogCQkJYnJlYWs7CiAJCWNhc2UgQVRfQWRkSW5oZXJpdDoJCS8qIElOSEVSSVQgKi8KLQkJ CUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRfVEFCTEUgfCBBVFRfRk9SRUlHTl9UQUJM RSk7CisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwgcmVsLCBBVFRfVEFC TEUgfCBBVFRfRk9SRUlHTl9UQUJMRSk7CiAJCQkvKiBUaGlzIGNvbW1hbmQgbmV2ZXIgcmVj dXJzZXMgKi8KIAkJCUFUUHJlcEFkZEluaGVyaXQocmVsKTsKIAkJCXBhc3MgPSBBVF9QQVNT X01JU0M7CiAJCQlicmVhazsKIAkJY2FzZSBBVF9Ecm9wSW5oZXJpdDoJLyogTk8gSU5IRVJJ VCAqLwotCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhyZWwsIEFUVF9UQUJMRSB8IEFUVF9GT1JF SUdOX1RBQkxFKTsKKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5zdWJ0eXBlLCByZWws IEFUVF9UQUJMRSB8IEFUVF9GT1JFSUdOX1RBQkxFKTsKIAkJCS8qIFRoaXMgY29tbWFuZCBu ZXZlciByZWN1cnNlcyAqLwogCQkJLyogTm8gY29tbWFuZC1zcGVjaWZpYyBwcmVwIG5lZWRl ZCAqLwogCQkJcGFzcyA9IEFUX1BBU1NfTUlTQzsKIAkJCWJyZWFrOwogCQljYXNlIEFUX0Fs dGVyQ29uc3RyYWludDoJLyogQUxURVIgQ09OU1RSQUlOVCAqLwotCQkJQVRTaW1wbGVQZXJt aXNzaW9ucyhyZWwsIEFUVF9UQUJMRSk7CisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+ c3VidHlwZSwgcmVsLCBBVFRfVEFCTEUpOwogCQkJLyogUmVjdXJzaW9uIG9jY3VycyBkdXJp bmcgZXhlY3V0aW9uIHBoYXNlICovCiAJCQlwYXNzID0gQVRfUEFTU19NSVNDOwogCQkJYnJl YWs7CiAJCWNhc2UgQVRfVmFsaWRhdGVDb25zdHJhaW50OiAvKiBWQUxJREFURSBDT05TVFJB SU5UICovCi0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RBQkxFIHwgQVRUX0ZP UkVJR05fVEFCTEUpOworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5cGUsIHJl bCwgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUpOwogCQkJLyogUmVjdXJzaW9uIG9j Y3VycyBkdXJpbmcgZXhlY3V0aW9uIHBoYXNlICovCiAJCQkvKiBObyBjb21tYW5kLXNwZWNp ZmljIHByZXAgbmVlZGVkIGV4Y2VwdCBzYXZpbmcgcmVjdXJzZSBmbGFnICovCiAJCQlpZiAo cmVjdXJzZSkKQEAgLTQ2NjMsNyArNDY2Myw3IEBAIEFUUHJlcENtZChMaXN0ICoqd3F1ZXVl LCBSZWxhdGlvbiByZWwsIEFsdGVyVGFibGVDbWQgKmNtZCwKIAkJCXBhc3MgPSBBVF9QQVNT X01JU0M7CiAJCQlicmVhazsKIAkJY2FzZSBBVF9SZXBsaWNhSWRlbnRpdHk6CS8qIFJFUExJ Q0EgSURFTlRJVFkgLi4uICovCi0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RB QkxFIHwgQVRUX01BVFZJRVcpOworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5 cGUsIHJlbCwgQVRUX1RBQkxFIHwgQVRUX01BVFZJRVcpOwogCQkJcGFzcyA9IEFUX1BBU1Nf TUlTQzsKIAkJCS8qIFRoaXMgY29tbWFuZCBuZXZlciByZWN1cnNlcyAqLwogCQkJLyogTm8g Y29tbWFuZC1zcGVjaWZpYyBwcmVwIG5lZWRlZCAqLwpAQCAtNDY3Niw3ICs0Njc2LDcgQEAg QVRQcmVwQ21kKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAq Y21kLAogCQljYXNlIEFUX0Rpc2FibGVUcmlnOgkvKiBESVNBQkxFIFRSSUdHRVIgdmFyaWFu dHMgKi8KIAkJY2FzZSBBVF9EaXNhYmxlVHJpZ0FsbDoKIAkJY2FzZSBBVF9EaXNhYmxlVHJp Z1VzZXI6Ci0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RBQkxFIHwgQVRUX0ZP UkVJR05fVEFCTEUpOworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5cGUsIHJl bCwgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUpOwogCQkJaWYgKHJlbC0+cmRfcmVs LT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCiAJCQkJQVRTaW1wbGVS ZWN1cnNpb24od3F1ZXVlLCByZWwsIGNtZCwgcmVjdXJzZSwgbG9ja21vZGUsIGNvbnRleHQp OwogCQkJcGFzcyA9IEFUX1BBU1NfTUlTQzsKQEAgLTQ2OTEsMjggKzQ2OTEsMjggQEAgQVRQ cmVwQ21kKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAqY21k LAogCQljYXNlIEFUX0Rpc2FibGVSb3dTZWN1cml0eToKIAkJY2FzZSBBVF9Gb3JjZVJvd1Nl Y3VyaXR5OgogCQljYXNlIEFUX05vRm9yY2VSb3dTZWN1cml0eToKLQkJCUFUU2ltcGxlUGVy bWlzc2lvbnMocmVsLCBBVFRfVEFCTEUpOworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQt PnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFKTsKIAkJCS8qIFRoZXNlIGNvbW1hbmRzIG5ldmVy IHJlY3Vyc2UgKi8KIAkJCS8qIE5vIGNvbW1hbmQtc3BlY2lmaWMgcHJlcCBuZWVkZWQgKi8K IAkJCXBhc3MgPSBBVF9QQVNTX01JU0M7CiAJCQlicmVhazsKIAkJY2FzZSBBVF9HZW5lcmlj T3B0aW9uczoKLQkJCUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRfRk9SRUlHTl9UQUJM RSk7CisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwgcmVsLCBBVFRfRk9S RUlHTl9UQUJMRSk7CiAJCQkvKiBObyBjb21tYW5kLXNwZWNpZmljIHByZXAgbmVlZGVkICov CiAJCQlwYXNzID0gQVRfUEFTU19NSVNDOwogCQkJYnJlYWs7CiAJCWNhc2UgQVRfQXR0YWNo UGFydGl0aW9uOgotCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhyZWwsIEFUVF9UQUJMRSB8IEFU VF9QQVJUSVRJT05FRF9JTkRFWCk7CisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3Vi dHlwZSwgcmVsLCBBVFRfVEFCTEUgfCBBVFRfUEFSVElUSU9ORURfSU5ERVgpOwogCQkJLyog Tm8gY29tbWFuZC1zcGVjaWZpYyBwcmVwIG5lZWRlZCAqLwogCQkJcGFzcyA9IEFUX1BBU1Nf TUlTQzsKIAkJCWJyZWFrOwogCQljYXNlIEFUX0RldGFjaFBhcnRpdGlvbjoKLQkJCUFUU2lt cGxlUGVybWlzc2lvbnMocmVsLCBBVFRfVEFCTEUpOworCQkJQVRTaW1wbGVQZXJtaXNzaW9u cyhjbWQtPnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFKTsKIAkJCS8qIE5vIGNvbW1hbmQtc3Bl Y2lmaWMgcHJlcCBuZWVkZWQgKi8KIAkJCXBhc3MgPSBBVF9QQVNTX01JU0M7CiAJCQlicmVh azsKIAkJY2FzZSBBVF9EZXRhY2hQYXJ0aXRpb25GaW5hbGl6ZToKLQkJCUFUU2ltcGxlUGVy bWlzc2lvbnMocmVsLCBBVFRfVEFCTEUpOworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQt PnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFKTsKIAkJCS8qIE5vIGNvbW1hbmQtc3BlY2lmaWMg cHJlcCBuZWVkZWQgKi8KIAkJCXBhc3MgPSBBVF9QQVNTX01JU0M7CiAJCQlicmVhazsKQEAg LTU5NDEsNiArNTk0MSwxNDUgQEAgQVRHZXRRdWV1ZUVudHJ5KExpc3QgKip3cXVldWUsIFJl bGF0aW9uIHJlbCkKIAlyZXR1cm4gdGFiOwogfQogCitzdGF0aWMgY29uc3QgY2hhciAqCith bHRlcl90YWJsZV90eXBlX3RvX3N0cmluZyhBbHRlclRhYmxlVHlwZSBjbWR0eXBlKQorewor CXN3aXRjaCAoY21kdHlwZSkKKwl7CisJCWNhc2UgQVRfQWRkQ29sdW1uOgorCQljYXNlIEFU X0FkZENvbHVtblJlY3Vyc2U6CisJCWNhc2UgQVRfQWRkQ29sdW1uVG9WaWV3OgorCQkJcmV0 dXJuICJBREQgQ09MVU1OIjsKKwkJY2FzZSBBVF9Db2x1bW5EZWZhdWx0OgorCQljYXNlIEFU X0Nvb2tlZENvbHVtbkRlZmF1bHQ6CisJCQlyZXR1cm4gIkFMVEVSIENPTFVNTiAuLi4gU0VU IERFRkFVTFQiOworCQljYXNlIEFUX0Ryb3BOb3ROdWxsOgorCQkJcmV0dXJuICJBTFRFUiBD T0xVTU4gLi4uIERST1AgTk9UIE5VTEwiOworCQljYXNlIEFUX1NldE5vdE51bGw6CisJCQly ZXR1cm4gIkFMVEVSIENPTFVNTiAuLi4gU0VUIE5PVCBOVUxMIjsKKwkJY2FzZSBBVF9Ecm9w RXhwcmVzc2lvbjoKKwkJCXJldHVybiAiQUxURVIgQ09MVU1OIC4uLiBEUk9QIEVYUFJFU1NJ T04iOworCQljYXNlIEFUX0NoZWNrTm90TnVsbDoKKwkJCXJldHVybiBOVUxMOwkJCS8qIG5v dCByZWFsIGdyYW1tYXIgKi8KKwkJY2FzZSBBVF9TZXRTdGF0aXN0aWNzOgorCQkJcmV0dXJu ICJBTFRFUiBDT0xVTU4gLi4uIFNFVCBTVEFUSVNUSUNTIjsKKwkJY2FzZSBBVF9TZXRPcHRp b25zOgorCQkJcmV0dXJuICJBTFRFUiBDT0xVTU4gLi4uIFNFVCI7CisJCWNhc2UgQVRfUmVz ZXRPcHRpb25zOgorCQkJcmV0dXJuICJBTFRFUiBDT0xVTU4gLi4uIFJFU0VUIjsKKwkJY2Fz ZSBBVF9TZXRTdG9yYWdlOgorCQkJcmV0dXJuICJBTFRFUiBDT0xVTU4gLi4uIFNFVCBTVE9S QUdFIjsKKwkJY2FzZSBBVF9TZXRDb21wcmVzc2lvbjoKKwkJCXJldHVybiAiQUxURVIgQ09M VU1OIC4uLiBTRVQgQ09NUFJFU1NJT04iOworCQljYXNlIEFUX0Ryb3BDb2x1bW46CisJCWNh c2UgQVRfRHJvcENvbHVtblJlY3Vyc2U6CisJCQlyZXR1cm4gIkRST1AgQ09MVU1OIjsKKwkJ Y2FzZSBBVF9BZGRJbmRleDoKKwkJY2FzZSBBVF9SZUFkZEluZGV4OgorCQkJcmV0dXJuIE5V TEw7CQkJLyogbm90IHJlYWwgZ3JhbW1hciAqLworCQljYXNlIEFUX0FkZENvbnN0cmFpbnQ6 CisJCWNhc2UgQVRfQWRkQ29uc3RyYWludFJlY3Vyc2U6CisJCWNhc2UgQVRfUmVBZGRDb25z dHJhaW50OgorCQljYXNlIEFUX1JlQWRkRG9tYWluQ29uc3RyYWludDoKKwkJY2FzZSBBVF9B ZGRJbmRleENvbnN0cmFpbnQ6CisJCQlyZXR1cm4gIkFERCBDT05TVFJBSU5UIjsKKwkJY2Fz ZSBBVF9BbHRlckNvbnN0cmFpbnQ6CisJCQlyZXR1cm4gIkFMVEVSIENPTlNUUkFJTlQiOwor CQljYXNlIEFUX1ZhbGlkYXRlQ29uc3RyYWludDoKKwkJY2FzZSBBVF9WYWxpZGF0ZUNvbnN0 cmFpbnRSZWN1cnNlOgorCQkJcmV0dXJuICJWQUxJREFURSBDT05TVFJBSU5UIjsKKwkJY2Fz ZSBBVF9Ecm9wQ29uc3RyYWludDoKKwkJY2FzZSBBVF9Ecm9wQ29uc3RyYWludFJlY3Vyc2U6 CisJCQlyZXR1cm4gIkRST1AgQ09OU1RSQUlOVCI7CisJCWNhc2UgQVRfUmVBZGRDb21tZW50 OgorCQkJcmV0dXJuIE5VTEw7CQkJLyogbm90IHJlYWwgZ3JhbW1hciAqLworCQljYXNlIEFU X0FsdGVyQ29sdW1uVHlwZToKKwkJCXJldHVybiAiQUxURVIgQ09MVU1OIC4uLiBTRVQgREFU QSBUWVBFIjsKKwkJY2FzZSBBVF9BbHRlckNvbHVtbkdlbmVyaWNPcHRpb25zOgorCQkJcmV0 dXJuICJBTFRFUiBDT0xVTU4gLi4uIE9QVElPTlMiOworCQljYXNlIEFUX0NoYW5nZU93bmVy OgorCQkJcmV0dXJuICJPV05FUiBUTyI7CisJCWNhc2UgQVRfQ2x1c3Rlck9uOgorCQkJcmV0 dXJuICJDTFVTVEVSIE9OIjsKKwkJY2FzZSBBVF9Ecm9wQ2x1c3RlcjoKKwkJCXJldHVybiAi U0VUIFdJVEhPVVQgQ0xVU1RFUiI7CisJCWNhc2UgQVRfU2V0TG9nZ2VkOgorCQkJcmV0dXJu ICJTRVQgTE9HR0VEIjsKKwkJY2FzZSBBVF9TZXRVbkxvZ2dlZDoKKwkJCXJldHVybiAiU0VU IFVOTE9HR0VEIjsKKwkJY2FzZSBBVF9Ecm9wT2lkczoKKwkJCXJldHVybiAiU0VUIFdJVEhP VVQgT0lEUyI7CisJCWNhc2UgQVRfU2V0VGFibGVTcGFjZToKKwkJCXJldHVybiAiU0VUIFRB QkxFU1BBQ0UiOworCQljYXNlIEFUX1NldFJlbE9wdGlvbnM6CisJCQlyZXR1cm4gIlNFVCI7 CisJCWNhc2UgQVRfUmVzZXRSZWxPcHRpb25zOgorCQkJcmV0dXJuICJSRVNFVCI7CisJCWNh c2UgQVRfUmVwbGFjZVJlbE9wdGlvbnM6CisJCQlyZXR1cm4gTlVMTDsJCQkvKiBub3QgcmVh bCBncmFtbWFyICovCisJCWNhc2UgQVRfRW5hYmxlVHJpZzoKKwkJCXJldHVybiAiRU5BQkxF IFRSSUdHRVIiOworCQljYXNlIEFUX0VuYWJsZUFsd2F5c1RyaWc6CisJCQlyZXR1cm4gIkVO QUJMRSBBTFdBWVMgVFJJR0dFUiI7CisJCWNhc2UgQVRfRW5hYmxlUmVwbGljYVRyaWc6CisJ CQlyZXR1cm4gIkVOQUJMRSBSRVBMSUNBIFRSSUdHRVIiOworCQljYXNlIEFUX0Rpc2FibGVU cmlnOgorCQkJcmV0dXJuICJESVNBQkxFIFRSSUdHRVIiOworCQljYXNlIEFUX0VuYWJsZVRy aWdBbGw6CisJCQlyZXR1cm4gIkVOQUJMRSBUUklHR0VSIEFMTCI7CisJCWNhc2UgQVRfRGlz YWJsZVRyaWdBbGw6CisJCQlyZXR1cm4gIkRJU0FCTEUgVFJJR0dFUiBBTEwiOworCQljYXNl IEFUX0VuYWJsZVRyaWdVc2VyOgorCQkJcmV0dXJuICJFTkFCTEUgVFJJR0dFUiBVU0VSIjsK KwkJY2FzZSBBVF9EaXNhYmxlVHJpZ1VzZXI6CisJCQlyZXR1cm4gIkRJU0FCTEUgVFJJR0dF UiBVU0VSIjsKKwkJY2FzZSBBVF9FbmFibGVSdWxlOgorCQkJcmV0dXJuICJFTkFCTEUgUlVM RSI7CisJCWNhc2UgQVRfRW5hYmxlQWx3YXlzUnVsZToKKwkJCXJldHVybiAiRU5BQkxFIEFM V0FZUyBSVUxFIjsKKwkJY2FzZSBBVF9FbmFibGVSZXBsaWNhUnVsZToKKwkJCXJldHVybiAi RU5BQkxFIFJFUExJQ0EgUlVMRSI7CisJCWNhc2UgQVRfRGlzYWJsZVJ1bGU6CisJCQlyZXR1 cm4gIkRJU0FCTEUgUlVMRSI7CisJCWNhc2UgQVRfQWRkSW5oZXJpdDoKKwkJCXJldHVybiAi SU5IRVJJVCI7CisJCWNhc2UgQVRfRHJvcEluaGVyaXQ6CisJCQlyZXR1cm4gIk5PIElOSEVS SVQiOworCQljYXNlIEFUX0FkZE9mOgorCQkJcmV0dXJuICJPRiI7CisJCWNhc2UgQVRfRHJv cE9mOgorCQkJcmV0dXJuICJOT1QgT0YiOworCQljYXNlIEFUX1JlcGxpY2FJZGVudGl0eToK KwkJCXJldHVybiAiUkVQTElDQSBJREVOVElUWSI7CisJCWNhc2UgQVRfRW5hYmxlUm93U2Vj dXJpdHk6CisJCQlyZXR1cm4gIkVOQUJMRSBST1cgU0VDVVJJVFkiOworCQljYXNlIEFUX0Rp c2FibGVSb3dTZWN1cml0eToKKwkJCXJldHVybiAiRElTQUJMRSBST1cgU0VDVVJJVFkiOwor CQljYXNlIEFUX0ZvcmNlUm93U2VjdXJpdHk6CisJCQlyZXR1cm4gIkZPUkNFIFJPVyBTRUNV UklUWSI7CisJCWNhc2UgQVRfTm9Gb3JjZVJvd1NlY3VyaXR5OgorCQkJcmV0dXJuICJOTyBG T1JDRSBST1cgU0VDVVJJVFkiOworCQljYXNlIEFUX0dlbmVyaWNPcHRpb25zOgorCQkJcmV0 dXJuICJPUFRJT05TIjsKKwkJY2FzZSBBVF9BdHRhY2hQYXJ0aXRpb246CisJCQlyZXR1cm4g IkFUVEFDSCBQQVJUSVRJT04iOworCQljYXNlIEFUX0RldGFjaFBhcnRpdGlvbjoKKwkJCXJl dHVybiAiREVUQUNIIFBBUlRJVElPTiI7CisJCWNhc2UgQVRfRGV0YWNoUGFydGl0aW9uRmlu YWxpemU6CisJCQlyZXR1cm4gIkRFVEFDSCBQQVJUSVRJT04gRklOQUxJWkUiOworCQljYXNl IEFUX0FkZElkZW50aXR5OgorCQkJcmV0dXJuICJBTFRFUiBDT0xVTU4gLi4uIEFERCBJREVO VElUWSI7CisJCWNhc2UgQVRfU2V0SWRlbnRpdHk6CisJCQlyZXR1cm4gIkFMVEVSIENPTFVN TiAuLi4gU0VUIjsKKwkJY2FzZSBBVF9Ecm9wSWRlbnRpdHk6CisJCQlyZXR1cm4gIkFMVEVS IENPTFVNTiAuLi4gRFJPUCBJREVOVElUWSI7CisJCWNhc2UgQVRfUmVBZGRTdGF0aXN0aWNz OgorCQkJcmV0dXJuIE5VTEw7CQkJLyogbm90IHJlYWwgZ3JhbW1hciAqLworCX0KKworCXJl dHVybiBOVUxMOworfQorCiAvKgogICogQVRTaW1wbGVQZXJtaXNzaW9ucwogICoKQEAgLTU5 NDksNyArNjA4OCw3IEBAIEFUR2V0UXVldWVFbnRyeShMaXN0ICoqd3F1ZXVlLCBSZWxhdGlv biByZWwpCiAgKiAtIEVuc3VyZSB0aGF0IGl0IGlzIG5vdCBhIHN5c3RlbSB0YWJsZQogICov CiBzdGF0aWMgdm9pZAotQVRTaW1wbGVQZXJtaXNzaW9ucyhSZWxhdGlvbiByZWwsIGludCBh bGxvd2VkX3RhcmdldHMpCitBVFNpbXBsZVBlcm1pc3Npb25zKEFsdGVyVGFibGVUeXBlIGNt ZHR5cGUsIFJlbGF0aW9uIHJlbCwgaW50IGFsbG93ZWRfdGFyZ2V0cykKIHsKIAlpbnQJCQlh Y3R1YWxfdGFyZ2V0OwogCkBAIC01OTg0LDcgKzYxMjMsMjAgQEAgQVRTaW1wbGVQZXJtaXNz aW9ucyhSZWxhdGlvbiByZWwsIGludCBhbGxvd2VkX3RhcmdldHMpCiAKIAkvKiBXcm9uZyB0 YXJnZXQgdHlwZT8gKi8KIAlpZiAoKGFjdHVhbF90YXJnZXQgJiBhbGxvd2VkX3RhcmdldHMp ID09IDApCi0JCUFUV3JvbmdSZWxraW5kRXJyb3IocmVsLCBhbGxvd2VkX3RhcmdldHMpOwor CXsKKwkJY29uc3QgY2hhciAqYWN0aW9uX3N0ciA9IGFsdGVyX3RhYmxlX3R5cGVfdG9fc3Ry aW5nKGNtZHR5cGUpOworCisJCWlmIChhY3Rpb25fc3RyKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBlcnJt c2coIkFMVEVSIGFjdGlvbiAlcyBjYW5ub3QgYmUgcGVyZm9ybWVkIG9uIHJlbGF0aW9uIFwi JXNcIiIsCisJCQkJCQkJYWN0aW9uX3N0ciwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVs KSksCisJCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHJlbC0+cmRfcmVs LT5yZWxraW5kKSkpOworCQllbHNlCisJCQkvKiBpbnRlcm5hbCBlcnJvcj8gKi8KKwkJCWVs b2coRVJST1IsICJpbnZhbGlkIEFMVEVSIGFjdGlvbiBhdHRlbXB0ZWQgb24gcmVsYXRpb24g XCIlc1wiIiwKKwkJCQkgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CisJfQogCiAJ LyogUGVybWlzc2lvbnMgY2hlY2tzICovCiAJaWYgKCFwZ19jbGFzc19vd25lcmNoZWNrKFJl bGF0aW9uR2V0UmVsaWQocmVsKSwgR2V0VXNlcklkKCkpKQpAQCAtNTk5OCw2NiArNjE1MCw2 IEBAIEFUU2ltcGxlUGVybWlzc2lvbnMoUmVsYXRpb24gcmVsLCBpbnQgYWxsb3dlZF90YXJn ZXRzKQogCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKIH0KIAotLyoK LSAqIEFUV3JvbmdSZWxraW5kRXJyb3IKLSAqCi0gKiBUaHJvdyBhbiBlcnJvciB3aGVuIGEg cmVsYXRpb24gaGFzIGJlZW4gZGV0ZXJtaW5lZCB0byBiZSBvZiB0aGUgd3JvbmcKLSAqIHR5 cGUuCi0gKi8KLXN0YXRpYyB2b2lkCi1BVFdyb25nUmVsa2luZEVycm9yKFJlbGF0aW9uIHJl bCwgaW50IGFsbG93ZWRfdGFyZ2V0cykKLXsKLQljaGFyCSAgICptc2c7Ci0KLQlzd2l0Y2gg KGFsbG93ZWRfdGFyZ2V0cykKLQl7Ci0JCWNhc2UgQVRUX1RBQkxFOgotCQkJbXNnID0gXygi XCIlc1wiIGlzIG5vdCBhIHRhYmxlIik7Ci0JCQlicmVhazsKLQkJY2FzZSBBVFRfVEFCTEUg fCBBVFRfVklFVzoKLQkJCW1zZyA9IF8oIlwiJXNcIiBpcyBub3QgYSB0YWJsZSBvciB2aWV3 Iik7Ci0JCQlicmVhazsKLQkJY2FzZSBBVFRfVEFCTEUgfCBBVFRfVklFVyB8IEFUVF9GT1JF SUdOX1RBQkxFOgotCQkJbXNnID0gXygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlLCB2aWV3LCBv ciBmb3JlaWduIHRhYmxlIik7Ci0JCQlicmVhazsKLQkJY2FzZSBBVFRfVEFCTEUgfCBBVFRf VklFVyB8IEFUVF9NQVRWSUVXIHwgQVRUX0lOREVYOgotCQkJbXNnID0gXygiXCIlc1wiIGlz IG5vdCBhIHRhYmxlLCB2aWV3LCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgaW5kZXgiKTsKLQkJ CWJyZWFrOwotCQljYXNlIEFUVF9UQUJMRSB8IEFUVF9NQVRWSUVXOgotCQkJbXNnID0gXygi XCIlc1wiIGlzIG5vdCBhIHRhYmxlIG9yIG1hdGVyaWFsaXplZCB2aWV3Iik7Ci0JCQlicmVh azsKLQkJY2FzZSBBVFRfVEFCTEUgfCBBVFRfTUFUVklFVyB8IEFUVF9JTkRFWDoKLQkJCW1z ZyA9IF8oIlwiJXNcIiBpcyBub3QgYSB0YWJsZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIGlu ZGV4Iik7Ci0JCQlicmVhazsKLQkJY2FzZSBBVFRfVEFCTEUgfCBBVFRfTUFUVklFVyB8IEFU VF9GT1JFSUdOX1RBQkxFOgotCQkJbXNnID0gXygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlLCBt YXRlcmlhbGl6ZWQgdmlldywgb3IgZm9yZWlnbiB0YWJsZSIpOwotCQkJYnJlYWs7Ci0JCWNh c2UgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEU6Ci0JCQltc2cgPSBfKCJcIiVzXCIg aXMgbm90IGEgdGFibGUgb3IgZm9yZWlnbiB0YWJsZSIpOwotCQkJYnJlYWs7Ci0JCWNhc2Ug QVRUX1RBQkxFIHwgQVRUX0NPTVBPU0lURV9UWVBFIHwgQVRUX0ZPUkVJR05fVEFCTEU6Ci0J CQltc2cgPSBfKCJcIiVzXCIgaXMgbm90IGEgdGFibGUsIGNvbXBvc2l0ZSB0eXBlLCBvciBm b3JlaWduIHRhYmxlIik7Ci0JCQlicmVhazsKLQkJY2FzZSBBVFRfVEFCTEUgfCBBVFRfTUFU VklFVyB8IEFUVF9JTkRFWCB8IEFUVF9GT1JFSUdOX1RBQkxFOgotCQkJbXNnID0gXygiXCIl c1wiIGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgaW5kZXgsIG9yIGZvcmVp Z24gdGFibGUiKTsKLQkJCWJyZWFrOwotCQljYXNlIEFUVF9WSUVXOgotCQkJbXNnID0gXygi XCIlc1wiIGlzIG5vdCBhIHZpZXciKTsKLQkJCWJyZWFrOwotCQljYXNlIEFUVF9GT1JFSUdO X1RBQkxFOgotCQkJbXNnID0gXygiXCIlc1wiIGlzIG5vdCBhIGZvcmVpZ24gdGFibGUiKTsK LQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJLyogc2hvdWxkbid0IGdldCBoZXJlLCBhZGQg YWxsIG5lY2Vzc2FyeSBjYXNlcyBhYm92ZSAqLwotCQkJbXNnID0gXygiXCIlc1wiIGlzIG9m IHRoZSB3cm9uZyB0eXBlIik7Ci0JCQlicmVhazsKLQl9Ci0KLQllcmVwb3J0KEVSUk9SLAot CQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkgZXJybXNnKG1z ZywgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKLX0KLQogLyoKICAqIEFUU2lt cGxlUmVjdXJzaW9uCiAgKgpAQCAtNjQ1Miw3ICs2NTQ0LDcgQEAgQVRFeGVjQWRkQ29sdW1u KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAog CiAJLyogQXQgdG9wIGxldmVsLCBwZXJtaXNzaW9uIGNoZWNrIHdhcyBkb25lIGluIEFUUHJl cENtZCwgZWxzZSBkbyBpdCAqLwogCWlmIChyZWN1cnNpbmcpCi0JCUFUU2ltcGxlUGVybWlz c2lvbnMocmVsLCBBVFRfVEFCTEUgfCBBVFRfRk9SRUlHTl9UQUJMRSk7CisJCUFUU2ltcGxl UGVybWlzc2lvbnMoKCpjbWQpLT5zdWJ0eXBlLCByZWwsIEFUVF9UQUJMRSB8IEFUVF9GT1JF SUdOX1RBQkxFKTsKIAogCWlmIChyZWwtPnJkX3JlbC0+cmVsaXNwYXJ0aXRpb24gJiYgIXJl Y3Vyc2luZykKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTgxODYsNyArODI3OCw3IEBAIEFURXhl Y0Ryb3BDb2x1bW4oTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpj b2xOYW1lLAogCiAJLyogQXQgdG9wIGxldmVsLCBwZXJtaXNzaW9uIGNoZWNrIHdhcyBkb25l IGluIEFUUHJlcENtZCwgZWxzZSBkbyBpdCAqLwogCWlmIChyZWN1cnNpbmcpCi0JCUFUU2lt cGxlUGVybWlzc2lvbnMocmVsLCBBVFRfVEFCTEUgfCBBVFRfRk9SRUlHTl9UQUJMRSk7CisJ CUFUU2ltcGxlUGVybWlzc2lvbnMoQVRfRHJvcENvbHVtbiwgcmVsLCBBVFRfVEFCTEUgfCBB VFRfRk9SRUlHTl9UQUJMRSk7CiAKIAkvKiBJbml0aWFsaXplIGFkZHJzIG9uIHRoZSBmaXJz dCBpbnZvY2F0aW9uICovCiAJQXNzZXJ0KCFyZWN1cnNpbmcgfHwgYWRkcnMgIT0gTlVMTCk7 CkBAIC04NjcwLDcgKzg3NjIsNyBAQCBBVEFkZENoZWNrQ29uc3RyYWludChMaXN0ICoqd3F1 ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAogCS8qIEF0IHRv cCBsZXZlbCwgcGVybWlzc2lvbiBjaGVjayB3YXMgZG9uZSBpbiBBVFByZXBDbWQsIGVsc2Ug ZG8gaXQgKi8KIAlpZiAocmVjdXJzaW5nKQotCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwg QVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUpOworCQlBVFNpbXBsZVBlcm1pc3Npb25z KEFUX0FkZENvbnN0cmFpbnQsIHJlbCwgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUp OwogCiAJLyoKIAkgKiBDYWxsIEFkZFJlbGF0aW9uTmV3Q29uc3RyYWludHMgdG8gZG8gdGhl IHdvcmssIG1ha2luZyBzdXJlIGl0IHdvcmtzIG9uCkBAIC0xMTI4Niw3ICsxMTM3OCw3IEBA IEFURXhlY0Ryb3BDb25zdHJhaW50KFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29uc3Ry TmFtZSwKIAogCS8qIEF0IHRvcCBsZXZlbCwgcGVybWlzc2lvbiBjaGVjayB3YXMgZG9uZSBp biBBVFByZXBDbWQsIGVsc2UgZG8gaXQgKi8KIAlpZiAocmVjdXJzaW5nKQotCQlBVFNpbXBs ZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUpOworCQlB VFNpbXBsZVBlcm1pc3Npb25zKEFUX0Ryb3BDb25zdHJhaW50LCByZWwsIEFUVF9UQUJMRSB8 IEFUVF9GT1JFSUdOX1RBQkxFKTsKIAogCWNvbnJlbCA9IHRhYmxlX29wZW4oQ29uc3RyYWlu dFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCkBAIC0xMzIwNSw4ICsxMzI5Nyw5 IEBAIEFURXhlY0NoYW5nZU93bmVyKE9pZCByZWxhdGlvbk9pZCwgT2lkIG5ld093bmVySWQs IGJvb2wgcmVjdXJzaW5nLCBMT0NLTU9ERSBsb2NrCiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0 KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJ CQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlLCB2aWV3LCBzZXF1ZW5jZSwgb3Ig Zm9yZWlnbiB0YWJsZSIsCi0JCQkJCQkJTmFtZVN0cih0dXBsZV9jbGFzcy0+cmVsbmFtZSkp KSk7CisJCQkJCSBlcnJtc2coImNhbm5vdCBjaGFuZ2Ugb3duZXIgb2YgcmVsYXRpb24gXCIl c1wiIiwKKwkJCQkJCQlOYW1lU3RyKHR1cGxlX2NsYXNzLT5yZWxuYW1lKSksCisJCQkJCSBl cnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHR1cGxlX2NsYXNzLT5yZWxraW5kKSkp OwogCX0KIAogCS8qCkBAIC0xMzYyMSw4ICsxMzcxNCw5IEBAIEFURXhlY1NldFJlbE9wdGlv bnMoUmVsYXRpb24gcmVsLCBMaXN0ICpkZWZMaXN0LCBBbHRlclRhYmxlVHlwZSBvcGVyYXRp b24sCiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJD T0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBh IHRhYmxlLCB2aWV3LCBtYXRlcmlhbGl6ZWQgdmlldywgaW5kZXgsIG9yIFRPQVNUIHRhYmxl IiwKLQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCQkJCQkgZXJy bXNnKCJjYW5ub3Qgc2V0IG9wdGlvbnMgZm9yIHJlbGF0aW9uIFwiJXNcIiIsCisJCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSksCisJCQkJCSBlcnJkZXRhaWxfcmVsa2lu ZF9ub3Rfc3VwcG9ydGVkKHJlbC0+cmRfcmVsLT5yZWxraW5kKSkpOwogCQkJYnJlYWs7CiAJ fQogCkBAIC0xNDE3Niw3ICsxNDI3MCw3IEBAIEFURXhlY0FkZEluaGVyaXQoUmVsYXRpb24g Y2hpbGRfcmVsLCBSYW5nZVZhciAqcGFyZW50LCBMT0NLTU9ERSBsb2NrbW9kZSkKIAkgKiBN dXN0IGJlIG93bmVyIG9mIGJvdGggcGFyZW50IGFuZCBjaGlsZCAtLSBjaGlsZCB3YXMgY2hl Y2tlZCBieQogCSAqIEFUU2ltcGxlUGVybWlzc2lvbnMgY2FsbCBpbiBBVFByZXBDbWQKIAkg Ki8KLQlBVFNpbXBsZVBlcm1pc3Npb25zKHBhcmVudF9yZWwsIEFUVF9UQUJMRSB8IEFUVF9G T1JFSUdOX1RBQkxFKTsKKwlBVFNpbXBsZVBlcm1pc3Npb25zKEFUX0FkZEluaGVyaXQsIHBh cmVudF9yZWwsIEFUVF9UQUJMRSB8IEFUVF9GT1JFSUdOX1RBQkxFKTsKIAogCS8qIFBlcm1h bmVudCByZWxzIGNhbm5vdCBpbmhlcml0IGZyb20gdGVtcG9yYXJ5IG9uZXMgKi8KIAlpZiAo cGFyZW50X3JlbC0+cmRfcmVsLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9U RU1QICYmCkBAIC0xNjUwNSwxNyArMTY1OTksMjcgQEAgUmFuZ2VWYXJDYWxsYmFja0ZvckFs dGVyUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxp ZCwKIAkgKiBEb24ndCBhbGxvdyBBTFRFUiBUQUJMRSAuLiBTRVQgU0NIRU1BIG9uIHJlbGF0 aW9ucyB0aGF0IGNhbid0IGJlIG1vdmVkCiAJICogdG8gYSBkaWZmZXJlbnQgc2NoZW1hLCBz dWNoIGFzIGluZGV4ZXMgYW5kIFRPQVNUIHRhYmxlcy4KIAkgKi8KLQlpZiAoSXNBKHN0bXQs IEFsdGVyT2JqZWN0U2NoZW1hU3RtdCkgJiYKLQkJcmVsa2luZCAhPSBSRUxLSU5EX1JFTEFU SU9OICYmCi0JCXJlbGtpbmQgIT0gUkVMS0lORF9WSUVXICYmCi0JCXJlbGtpbmQgIT0gUkVM S0lORF9NQVRWSUVXICYmCi0JCXJlbGtpbmQgIT0gUkVMS0lORF9TRVFVRU5DRSAmJgotCQly ZWxraW5kICE9IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSAmJgotCQlyZWxraW5kICE9IFJFTEtJ TkRfUEFSVElUSU9ORURfVEFCTEUpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUo RVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVycm1zZygiXCIlc1wiIGlzIG5v dCBhIHRhYmxlLCB2aWV3LCBtYXRlcmlhbGl6ZWQgdmlldywgc2VxdWVuY2UsIG9yIGZvcmVp Z24gdGFibGUiLAotCQkJCQkJcnYtPnJlbG5hbWUpKSk7CisJaWYgKElzQShzdG10LCBBbHRl ck9iamVjdFNjaGVtYVN0bXQpKQorCXsKKwkJaWYgKHJlbGtpbmQgPT0gUkVMS0lORF9JTkRF WCB8fCByZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVgpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJ CQkJIGVycm1zZygiY2Fubm90IGNoYW5nZSBzY2hlbWEgb2YgaW5kZXggXCIlc1wiIiwKKwkJ CQkJCQlydi0+cmVsbmFtZSksCisJCQkJCSBlcnJoaW50KCJDaGFuZ2UgdGhlIHNjaGVtYSBv ZiB0aGUgdGFibGUgaW5zdGVhZC4iKSkpOworCQllbHNlIGlmIChyZWxraW5kID09IFJFTEtJ TkRfQ09NUE9TSVRFX1RZUEUpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJIGVycm1zZygiY2Fubm90IGNoYW5n ZSBzY2hlbWEgb2YgY29tcG9zaXRlIHR5cGUgXCIlc1wiIiwKKwkJCQkJCQlydi0+cmVsbmFt ZSksCisJCQkJCSBlcnJoaW50KCJVc2UgQUxURVIgVFlQRSBpbnN0ZWFkLiIpKSk7CisJCWVs c2UgaWYgKHJlbGtpbmQgPT0gUkVMS0lORF9UT0FTVFZBTFVFKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBl cnJtc2coImNhbm5vdCBjaGFuZ2Ugc2NoZW1hIG9mIFRPQVNUIHRhYmxlIFwiJXNcIiIsCisJ CQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJCQkgZXJyaGludCgiQ2hhbmdlIHRoZSBzY2hlbWEg b2YgdGhlIHRhYmxlIGluc3RlYWQuIikpKTsKKwl9CiAKIAlSZWxlYXNlU3lzQ2FjaGUodHVw bGUpOwogfQpAQCAtMTcwNzcsNyArMTcxODEsNyBAQCBBVEV4ZWNBdHRhY2hQYXJ0aXRpb24o TGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBQYXJ0aXRpb25DbWQgKmNtZCwKIAkgKiBN dXN0IGJlIG93bmVyIG9mIGJvdGggcGFyZW50IGFuZCBzb3VyY2UgdGFibGUgLS0gcGFyZW50 IHdhcyBjaGVja2VkIGJ5CiAJICogQVRTaW1wbGVQZXJtaXNzaW9ucyBjYWxsIGluIEFUUHJl cENtZAogCSAqLwotCUFUU2ltcGxlUGVybWlzc2lvbnMoYXR0YWNocmVsLCBBVFRfVEFCTEUg fCBBVFRfRk9SRUlHTl9UQUJMRSk7CisJQVRTaW1wbGVQZXJtaXNzaW9ucyhBVF9BdHRhY2hQ YXJ0aXRpb24sIGF0dGFjaHJlbCwgQVRUX1RBQkxFIHwgQVRUX0ZPUkVJR05fVEFCTEUpOwog CiAJLyogQSBwYXJ0aXRpb24gY2FuIG9ubHkgaGF2ZSBvbmUgcGFyZW50ICovCiAJaWYgKGF0 dGFjaHJlbC0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YwppbmRleCAwN2M3M2YzOWRlLi45NTJjOGQ1ODJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dl ci5jCkBAIC0yODYsOCArMjg2LDkgQEAgQ3JlYXRlVHJpZ2dlcihDcmVhdGVUcmlnU3RtdCAq c3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJZWxzZQogCQllcmVwb3J0KEVSUk9S LAogCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJCSBlcnJt c2coIlwiJXNcIiBpcyBub3QgYSB0YWJsZSBvciB2aWV3IiwKLQkJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGNh bm5vdCBoYXZlIHRyaWdnZXJzIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJl bCkpLAorCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHJlbC0+cmRfcmVs LT5yZWxraW5kKSkpOwogCiAJaWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3Rl bVJlbGF0aW9uKHJlbCkpCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0xMjYyLDggKzEyNjMsOSBA QCBSZW1vdmVUcmlnZ2VyQnlJZChPaWQgdHJpZ09pZCkKIAkJcmVsLT5yZF9yZWwtPnJlbGtp bmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkgZXJybXNnKCJc IiVzXCIgaXMgbm90IGEgdGFibGUsIHZpZXcsIG9yIGZvcmVpZ24gdGFibGUiLAotCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKwkJCQkgZXJybXNnKCJyZWxhdGlv biBcIiVzXCIgY2Fubm90IGhhdmUgdHJpZ2dlcnMiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsKSksCisJCQkJIGVycmRldGFpbF9yZWxraW5kX25vdF9zdXBwb3J0ZWQo cmVsLT5yZF9yZWwtPnJlbGtpbmQpKSk7CiAKIAlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2Rz ICYmIElzU3lzdGVtUmVsYXRpb24ocmVsKSkKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTEzNjgs OCArMTM3MCw5IEBAIFJhbmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVUcmlnZ2VyKGNvbnN0IFJh bmdlVmFyICpydiwgT2lkIHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJCWZvcm0tPnJlbGtpbmQg IT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQko ZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkgZXJybXNnKCJcIiVz XCIgaXMgbm90IGEgdGFibGUsIHZpZXcsIG9yIGZvcmVpZ24gdGFibGUiLAotCQkJCQkJcnYt PnJlbG5hbWUpKSk7CisJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGNhbm5vdCBoYXZl IHRyaWdnZXJzIiwKKwkJCQkJCXJ2LT5yZWxuYW1lKSwKKwkJCQkgZXJyZGV0YWlsX3JlbGtp bmRfbm90X3N1cHBvcnRlZChmb3JtLT5yZWxraW5kKSkpOwogCiAJLyogeW91IG11c3Qgb3du IHRoZSB0YWJsZSB0byByZW5hbWUgb25lIG9mIGl0cyB0cmlnZ2VycyAqLwogCWlmICghcGdf Y2xhc3Nfb3duZXJjaGVjayhyZWxpZCwgR2V0VXNlcklkKCkpKQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMKaW5kZXggODFkM2U3OTkwYy4uM2FmY2Q2YjUxMSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC05NzYsOCArOTc2LDkgQEAgdHJhbnNmb3Jt VGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVz ZSAqdGFibGVfbGlrZV9jbGEKIAkJcmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxL SU5EX1BBUlRJVElPTkVEX1RBQkxFKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2Rl KEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBu b3QgYSB0YWJsZSwgdmlldywgbWF0ZXJpYWxpemVkIHZpZXcsIGNvbXBvc2l0ZSB0eXBlLCBv ciBmb3JlaWduIHRhYmxlIiwKLQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbGF0 aW9uKSkpKTsKKwkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgaXMgaW52YWxpZCBpbiBM SUtFIGNsYXVzZSIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbikp LAorCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHJlbGF0aW9uLT5yZF9y ZWwtPnJlbGtpbmQpKSk7CiAKIAljYW5jZWxfcGFyc2VyX2VycnBvc2l0aW9uX2NhbGxiYWNr KCZwY2JzdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0 ZURlZmluZS5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMKaW5kZXgg MjdlNGVmOTExYy4uNjU4OTM0NWFjNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0 ZS9yZXdyaXRlRGVmaW5lLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVm aW5lLmMKQEAgLTI2OCw4ICsyNjgsOSBAQCBEZWZpbmVRdWVyeVJld3JpdGUoY29uc3QgY2hh ciAqcnVsZW5hbWUsCiAJCWV2ZW50X3JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVM S0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29k ZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkgZXJybXNnKCJcIiVzXCIgaXMg bm90IGEgdGFibGUgb3IgdmlldyIsCi0JCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShl dmVudF9yZWxhdGlvbikpKSk7CisJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGNhbm5v dCBoYXZlIHJ1bGVzIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGV2ZW50X3Jl bGF0aW9uKSksCisJCQkJIGVycmRldGFpbF9yZWxraW5kX25vdF9zdXBwb3J0ZWQoZXZlbnRf cmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCkpKTsKIAogCWlmICghYWxsb3dTeXN0ZW1UYWJs ZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihldmVudF9yZWxhdGlvbikpCiAJCWVyZXBvcnQo RVJST1IsCkBAIC05MzUsNyArOTM2LDggQEAgUmFuZ2VWYXJDYWxsYmFja0ZvclJlbmFtZVJ1 bGUoY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKIAkJZm9y bS0+cmVsa2luZCAhPSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQogCQllcmVwb3J0KEVS Uk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJCSBl cnJtc2coIlwiJXNcIiBpcyBub3QgYSB0YWJsZSBvciB2aWV3IiwgcnYtPnJlbG5hbWUpKSk7 CisJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGNhbm5vdCBoYXZlIHJ1bGVzIiwgcnYt PnJlbG5hbWUpLAorCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKGZvcm0t PnJlbGtpbmQpKSk7CiAKIAlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVt Q2xhc3MocmVsaWQsIGZvcm0pKQogCQllcmVwb3J0KEVSUk9SLApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19jbGFzcy5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19j bGFzcy5oCmluZGV4IDNlMzc3Mjk0MzYuLjJjMzU0M2FhYzEgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY2xhc3MuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2NsYXNzLmgKQEAgLTIwMSw2ICsyMDEsNyBAQCBERUNMQVJFX0lOREVYKHBnX2NsYXNzX3Ri bHNwY19yZWxmaWxlbm9kZV9pbmRleCwgMzQ1NSwgb24gcGdfY2xhc3MgdXNpbmcgYnRyZWUo cgogCSAocmVsa2luZCkgPT0gUkVMS0lORF9UT0FTVFZBTFVFIHx8IFwKIAkgKHJlbGtpbmQp ID09IFJFTEtJTkRfTUFUVklFVykKIAorZXh0ZXJuIGludCBlcnJkZXRhaWxfcmVsa2luZF9u b3Rfc3VwcG9ydGVkKGNoYXIgcmVsa2luZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBFWFBPU0Vf VE9fQ0xJRU5UX0NPREUgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9hbHRlcl90YWJsZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVy X3RhYmxlLm91dAppbmRleCBmODFiZGY1MTNiLi44ZGNiMDBhYzY3IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dApAQCAtMTA4Nyw5ICsxMDg3LDEx IEBAIEVSUk9SOiAgY29sdW1uICJiYXIiIG9mIHJlbGF0aW9uICJhdGFjYzEiIGRvZXMgbm90 IGV4aXN0CiAtLSB0cnkgY3JlYXRpbmcgYSB2aWV3IGFuZCBhbHRlcmluZyB0aGF0LCBzaG91 bGQgZmFpbAogY3JlYXRlIHZpZXcgbXl2aWV3IGFzIHNlbGVjdCAqIGZyb20gYXRhY2MxOwog YWx0ZXIgdGFibGUgbXl2aWV3IGFsdGVyIGNvbHVtbiB0ZXN0IGRyb3Agbm90IG51bGw7Ci1F UlJPUjogICJteXZpZXciIGlzIG5vdCBhIHRhYmxlIG9yIGZvcmVpZ24gdGFibGUKK0VSUk9S OiAgQUxURVIgYWN0aW9uIEFMVEVSIENPTFVNTiAuLi4gRFJPUCBOT1QgTlVMTCBjYW5ub3Qg YmUgcGVyZm9ybWVkIG9uIHJlbGF0aW9uICJteXZpZXciCitERVRBSUw6ICBUaGlzIG9wZXJh dGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aWV3cy4KIGFsdGVyIHRhYmxlIG15dmlldyBh bHRlciBjb2x1bW4gdGVzdCBzZXQgbm90IG51bGw7Ci1FUlJPUjogICJteXZpZXciIGlzIG5v dCBhIHRhYmxlIG9yIGZvcmVpZ24gdGFibGUKK0VSUk9SOiAgQUxURVIgYWN0aW9uIEFMVEVS IENPTFVNTiAuLi4gU0VUIE5PVCBOVUxMIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gcmVsYXRp b24gIm15dmlldyIKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQg Zm9yIHZpZXdzLgogZHJvcCB2aWV3IG15dmlldzsKIGRyb3AgdGFibGUgYXRhY2MxOwogLS0g c2V0IG5vdCBudWxsIHZlcmlmaWVkIGJ5IGNvbnN0cmFpbnRzCkBAIC0xMzg3LDcgKzEzODks OCBAQCBzZWxlY3QgKiBmcm9tIG15dmlldzsKICgwIHJvd3MpCiAKIGFsdGVyIHRhYmxlIG15 dmlldyBkcm9wIGQ7Ci1FUlJPUjogICJteXZpZXciIGlzIG5vdCBhIHRhYmxlLCBjb21wb3Np dGUgdHlwZSwgb3IgZm9yZWlnbiB0YWJsZQorRVJST1I6ICBBTFRFUiBhY3Rpb24gRFJPUCBD T0xVTU4gY2Fubm90IGJlIHBlcmZvcm1lZCBvbiByZWxhdGlvbiAibXl2aWV3IgorREVUQUlM OiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3Igdmlld3MuCiBkcm9wIHZp ZXcgbXl2aWV3OwogLS0gdGVzdCBzb21lIGNvbW1hbmRzIHRvIG1ha2Ugc3VyZSB0aGV5IGZh aWwgb24gdGhlIGRyb3BwZWQgY29sdW1uCiBhbmFseXplIGF0YWNjMShhKTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKaW5kZXgg NGRjNWU2YWE1Zi4uN2FkNWZhZmU5MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKQEAgLTUwNCw5ICs1MDQsMTAgQEAgRFJP UCBUQUJMRSBub2luaF9jb25fY29weSwgbm9pbmhfY29uX2NvcHkxOwogQ1JFQVRFIFRBQkxF IGN0bHQ0IChhIGludCwgYiB0ZXh0KTsKIENSRUFURSBTRVFVRU5DRSBjdGxzZXExOwogQ1JF QVRFIFRBQkxFIGN0bHQxMCAoTElLRSBjdGxzZXExKTsgIC0tIGZhaWwKLUVSUk9SOiAgImN0 bHNlcTEiIGlzIG5vdCBhIHRhYmxlLCB2aWV3LCBtYXRlcmlhbGl6ZWQgdmlldywgY29tcG9z aXRlIHR5cGUsIG9yIGZvcmVpZ24gdGFibGUKK0VSUk9SOiAgcmVsYXRpb24gImN0bHNlcTEi IGlzIGludmFsaWQgaW4gTElLRSBjbGF1c2UKIExJTkUgMTogQ1JFQVRFIFRBQkxFIGN0bHQx MCAoTElLRSBjdGxzZXExKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBzZXF1ZW5j ZXMuCiBDUkVBVEUgVklFVyBjdGx2MSBBUyBTRUxFQ1QgKiBGUk9NIGN0bHQ0OwogQ1JFQVRF IFRBQkxFIGN0bHQxMSAoTElLRSBjdGx2MSk7CiBDUkVBVEUgVEFCTEUgY3RsdDExYSAoTElL RSBjdGx2MSBJTkNMVURJTkcgQUxMKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Zm9yZWlnbl9kYXRhLm91dAppbmRleCA1Mzg1Zjk4YTBmLi44MDlkNDBhNzlhIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fZGF0YS5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0CkBAIC03NDAsNyAr NzQwLDggQEAgRkRXIG9wdGlvbnM6IChkZWxpbWl0ZXIgJywnLCBxdW90ZSAnIicsICJiZSBx dW90ZWQiICd2YWx1ZScpCiAoMSByb3cpCiAKIENSRUFURSBJTkRFWCBpZF9mdDFfYzIgT04g ZnQxIChjMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBFUlJPUgotRVJST1I6 ICBjYW5ub3QgY3JlYXRlIGluZGV4IG9uIGZvcmVpZ24gdGFibGUgImZ0MSIKK0VSUk9SOiAg Y2Fubm90IGNyZWF0ZSBpbmRleCBvbiByZWxhdGlvbiAiZnQxIgorREVUQUlMOiAgVGhpcyBv cGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgZm9yZWlnbiB0YWJsZXMuCiBTRUxFQ1Qg KiBGUk9NIGZ0MTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLS0gRVJST1IKIEVSUk9SOiAgZm9yZWlnbi1kYXRhIHdyYXBwZXIgImR1bW15IiBoYXMg bm8gaGFuZGxlcgogRVhQTEFJTiBTRUxFQ1QgKiBGUk9NIGZ0MTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0tIEVSUk9SCkBAIC04NjQsNyArODY1LDggQEAgTElO RSAxOiBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBBREQgUFJJTUFSWSBLRVkgKGM3KTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIEFMVEVSIEZPUkVJR04gVEFC TEUgZnQxIEFERCBDT05TVFJBSU5UIGZ0MV9jOV9jaGVjayBDSEVDSyAoYzkgPCAwKSBOT1Qg VkFMSUQ7CiBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBBTFRFUiBDT05TVFJBSU5UIGZ0MV9j OV9jaGVjayBERUZFUlJBQkxFOyAtLSBFUlJPUgotRVJST1I6ICAiZnQxIiBpcyBub3QgYSB0 YWJsZQorRVJST1I6ICBBTFRFUiBhY3Rpb24gQUxURVIgQ09OU1RSQUlOVCBjYW5ub3QgYmUg cGVyZm9ybWVkIG9uIHJlbGF0aW9uICJmdDEiCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBp cyBub3Qgc3VwcG9ydGVkIGZvciBmb3JlaWduIHRhYmxlcy4KIEFMVEVSIEZPUkVJR04gVEFC TEUgZnQxIERST1AgQ09OU1RSQUlOVCBmdDFfYzlfY2hlY2s7CiBBTFRFUiBGT1JFSUdOIFRB QkxFIGZ0MSBEUk9QIENPTlNUUkFJTlQgbm9fY29uc3Q7ICAgICAgICAgICAgICAgLS0gRVJS T1IKIEVSUk9SOiAgY29uc3RyYWludCAibm9fY29uc3QiIG9mIHJlbGF0aW9uICJmdDEiIGRv ZXMgbm90IGV4aXN0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2lu ZGV4aW5nLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5kZXhpbmcub3V0Cmlu ZGV4IGM5M2Y0NDcwYzkuLjE5M2Y3ODAxOTEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvaW5kZXhpbmcub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvaW5kZXhpbmcub3V0CkBAIC0xMzcsNyArMTM3LDggQEAgc2VsZWN0IHJlbG5hbWUsIHJl bHBhcnRib3VuZCBmcm9tIHBnX2NsYXNzCiAoMiByb3dzKQogCiBhbHRlciB0YWJsZSBpZHhw YXJ0X2MgZGV0YWNoIHBhcnRpdGlvbiBpZHhwYXJ0MV9jOwotRVJST1I6ICAiaWR4cGFydF9j IiBpcyBub3QgYSB0YWJsZQorRVJST1I6ICBBTFRFUiBhY3Rpb24gREVUQUNIIFBBUlRJVElP TiBjYW5ub3QgYmUgcGVyZm9ybWVkIG9uIHJlbGF0aW9uICJpZHhwYXJ0X2MiCitERVRBSUw6 ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBwYXJ0aXRpb25lZCBpbmRl eGVzLgogZHJvcCB0YWJsZSBpZHhwYXJ0OwogLS0gSWYgYSBwYXJ0aXRpb24gYWxyZWFkeSBo YXMgYW4gaW5kZXgsIGRvbid0IGNyZWF0ZSBhIGR1cGxpY2F0aXZlIG9uZQogY3JlYXRlIHRh YmxlIGlkeHBhcnQgKGEgaW50LCBiIGludCkgcGFydGl0aW9uIGJ5IHJhbmdlIChhLCBiKTsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VxdWVuY2Uub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXF1ZW5jZS5vdXQKaW5kZXggOGI5MjhiMjg4 OC4uNzFjMmIwZjFkZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXF1ZW5jZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXF1ZW5jZS5v dXQKQEAgLTIxLDcgKzIxLDggQEAgQ1JFQVRFIFNFUVVFTkNFIHNlcXVlbmNlX3Rlc3R4IE9X TkVEIEJZIG5vYm9keTsgIC0tIG5vbnNlbnNlIHdvcmQKIEVSUk9SOiAgaW52YWxpZCBPV05F RCBCWSBvcHRpb24KIEhJTlQ6ICBTcGVjaWZ5IE9XTkVEIEJZIHRhYmxlLmNvbHVtbiBvciBP V05FRCBCWSBOT05FLgogQ1JFQVRFIFNFUVVFTkNFIHNlcXVlbmNlX3Rlc3R4IE9XTkVEIEJZ IHBnX2NsYXNzX29pZF9pbmRleC5vaWQ7ICAtLSBub3QgYSB0YWJsZQotRVJST1I6ICByZWZl cmVuY2VkIHJlbGF0aW9uICJwZ19jbGFzc19vaWRfaW5kZXgiIGlzIG5vdCBhIHRhYmxlIG9y IGZvcmVpZ24gdGFibGUKK0VSUk9SOiAgc2VxdWVuY2UgY2Fubm90IGJlIG93bmVkIGJ5IHJl bGF0aW9uICJwZ19jbGFzc19vaWRfaW5kZXgiCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBp cyBub3Qgc3VwcG9ydGVkIGZvciBpbmRleGVzLgogQ1JFQVRFIFNFUVVFTkNFIHNlcXVlbmNl X3Rlc3R4IE9XTkVEIEJZIHBnX2NsYXNzLnJlbG5hbWU7ICAtLSBub3Qgc2FtZSBzY2hlbWEK IEVSUk9SOiAgc2VxdWVuY2UgbXVzdCBiZSBpbiBzYW1lIHNjaGVtYSBhcyB0YWJsZSBpdCBp cyBsaW5rZWQgdG8KIENSRUFURSBUQUJMRSBzZXF1ZW5jZV90ZXN0X3RhYmxlIChhIGludCk7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5vdXQKaW5kZXggOGMyMTRk OGRmYy4uNjJiMDVjNzlmOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zdGF0c19leHQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNf ZXh0Lm91dApAQCAtMjExLDE0ICsyMTEsMTggQEAgQ1JFQVRFIFRBQkxFIHRzdHN0YXRzLnB0 IChhIGludCwgYiBpbnQsIGMgdGV4dCkgUEFSVElUSU9OIEJZIFJBTkdFIChhLCBiKTsKIENS RUFURSBUQUJMRSB0c3RzdGF0cy5wdDEgUEFSVElUSU9OIE9GIHRzdHN0YXRzLnB0IEZPUiBW QUxVRVMgRlJPTSAoLTEwLCAtMTApIFRPICgxMCwgMTApOwogQ1JFQVRFIFNUQVRJU1RJQ1Mg dHN0c3RhdHMuczEgT04gYSwgYiBGUk9NIHRzdHN0YXRzLnQ7CiBDUkVBVEUgU1RBVElTVElD UyB0c3RzdGF0cy5zMiBPTiBhLCBiIEZST00gdHN0c3RhdHMudGk7Ci1FUlJPUjogIHJlbGF0 aW9uICJ0aSIgaXMgbm90IGEgdGFibGUsIGZvcmVpZ24gdGFibGUsIG9yIG1hdGVyaWFsaXpl ZCB2aWV3CitFUlJPUjogIGNhbm5vdCBkZWZpbmUgc3RhdGlzdGljcyBmb3IgcmVsYXRpb24g InRpIgorREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgaW5k ZXhlcy4KIENSRUFURSBTVEFUSVNUSUNTIHRzdHN0YXRzLnMzIE9OIGEsIGIgRlJPTSB0c3Rz dGF0cy5zOwotRVJST1I6ICByZWxhdGlvbiAicyIgaXMgbm90IGEgdGFibGUsIGZvcmVpZ24g dGFibGUsIG9yIG1hdGVyaWFsaXplZCB2aWV3CitFUlJPUjogIGNhbm5vdCBkZWZpbmUgc3Rh dGlzdGljcyBmb3IgcmVsYXRpb24gInMiCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBu b3Qgc3VwcG9ydGVkIGZvciBzZXF1ZW5jZXMuCiBDUkVBVEUgU1RBVElTVElDUyB0c3RzdGF0 cy5zNCBPTiBhLCBiIEZST00gdHN0c3RhdHMudjsKLUVSUk9SOiAgcmVsYXRpb24gInYiIGlz IG5vdCBhIHRhYmxlLCBmb3JlaWduIHRhYmxlLCBvciBtYXRlcmlhbGl6ZWQgdmlldworRVJS T1I6ICBjYW5ub3QgZGVmaW5lIHN0YXRpc3RpY3MgZm9yIHJlbGF0aW9uICJ2IgorREVUQUlM OiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3Igdmlld3MuCiBDUkVBVEUg U1RBVElTVElDUyB0c3RzdGF0cy5zNSBPTiBhLCBiIEZST00gdHN0c3RhdHMubXY7CiBDUkVB VEUgU1RBVElTVElDUyB0c3RzdGF0cy5zNiBPTiBhLCBiIEZST00gdHN0c3RhdHMudHk7Ci1F UlJPUjogIHJlbGF0aW9uICJ0eSIgaXMgbm90IGEgdGFibGUsIGZvcmVpZ24gdGFibGUsIG9y IG1hdGVyaWFsaXplZCB2aWV3CitFUlJPUjogIGNhbm5vdCBkZWZpbmUgc3RhdGlzdGljcyBm b3IgcmVsYXRpb24gInR5IgorREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBv cnRlZCBmb3IgY29tcG9zaXRlIHR5cGVzLgogQ1JFQVRFIFNUQVRJU1RJQ1MgdHN0c3RhdHMu czcgT04gYSwgYiBGUk9NIHRzdHN0YXRzLmY7CiBDUkVBVEUgU1RBVElTVElDUyB0c3RzdGF0 cy5zOCBPTiBhLCBiIEZST00gdHN0c3RhdHMucHQ7CiBDUkVBVEUgU1RBVElTVElDUyB0c3Rz dGF0cy5zOSBPTiBhLCBiIEZST00gdHN0c3RhdHMucHQxOwotLSAKMi4zMi4wCgo= --------------80830375E92DA52E5834045C--