Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vi6aG-00EzRT-06 for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Jan 2026 07:55:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vi6ZG-00Gs9o-00 for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Jan 2026 07:54:26 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vi6ZF-00Gs9f-0c for pgsql-hackers@lists.postgresql.org; Tue, 20 Jan 2026 07:54:26 +0000 Received: from fout-a2-smtp.messagingengine.com ([103.168.172.145]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vi6ZC-001TqN-1r for pgsql-hackers@postgresql.org; Tue, 20 Jan 2026 07:54:25 +0000 Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfout.phl.internal (Postfix) with ESMTP id 2095DEC0237 for ; Tue, 20 Jan 2026 02:54:20 -0500 (EST) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-04.internal (MEProxy); Tue, 20 Jan 2026 02:54:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm1; t=1768895660; x=1768982060; bh=VW+GbpPFhLwuRjWMLmyd/pG+Lx66WzV+ Ux12hXx6JqI=; b=CbGml458OUHYxEETHVCIc0k3W7dXvWisH/9QLd816GkjVx3x Ou6GM/NL7fvvZcgbyEsFTA+hE0NkanDQLfCSsSVUi15/mbn0sl1O8gi7+Sy9fn0s UwZQJDjTdLSPUTTewxN8Ftehe1D9so2NihNFzJryHWqu7YEOQQNaoKjwRYjLspgJ 1DzXt1vh1HV7YUoZ6u3flgNSk9S4f8mvzEQF+9CSmxTdlOqROT4sKnccVJiiRvu8 NVfNVKGQy4YBnOUAbVMzf6PXWRRi6Or/GQVZ/KOR0UasE3lUQa3qz/vecP9PVrXO M76IRR7mpUu3TF4cuh440wQ0zqyjeoiLKyFz5w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1768895660; x= 1768982060; bh=VW+GbpPFhLwuRjWMLmyd/pG+Lx66WzV+Ux12hXx6JqI=; b=C PTB7WK6Lirlp/AAsEgxgRA1FJ+4Si7BMhR2ucITNoD2nZn8Ejbj1aRnXcQ1Ys01u H7nouYOvQ+epKYWPGgD3ug7q6iZOQvr9Or5otcAxItql+PqyRB7lJ2CHKi+m9ANy 9TBVkekXUfOB6Fc09zGBajH3qSTmlc0JYBYeDPvccz+hPOvTJrAcPX+1KoRaqxoD IKFxjQMD6Es+BPxRjCzQGOniL/c1XsjXBbrFIlf+0Jrt/lNmE7gFfKz78ZERd6cL +CCxd3/fn0Nxzm8aRp/gfQ4LwE4Apl5P2eluyce7f4tw3O209IDJp+sqfhtdxtEG uemdbKxaUq6HpEi4iyMFg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddufeelkeejucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfhffuvfesmhdtreertddvje enucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhesvghishgv nhhtrhgruhhtrdhorhhgqeenucggtffrrghtthgvrhhnpeehteekudegtdehtedttefhud ekjefgudeiheeiteffuedtteffkeekgfelvdffleenucevlhhushhtvghrufhiiigvpedt necurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrsegvihhsvghnthhrrghuthdroh hrghdpnhgspghrtghpthhtohepuddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohep phhgshhqlhdqhhgrtghkvghrshesphhoshhtghhrvghsqhhlrdhorhhg X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 20 Jan 2026 02:54:19 -0500 (EST) Content-Type: multipart/mixed; boundary="------------kUIyB2BTMQSNcbXKdwq8q0O0" Message-ID: Date: Tue, 20 Jan 2026 08:54:18 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Peter Eisentraut Subject: Fix accidentally cast away qualifiers To: pgsql-hackers 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. --------------kUIyB2BTMQSNcbXKdwq8q0O0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This patch fixes cases where a qualifier (const, in all cases here) was dropped by a cast, but the cast was otherwise necessary or desirable, so the straightforward fix is to add the qualifier into the cast. This was checked with gcc -Wcast-qual, but it doesn't fix all such warnings, only the trivially fixable ones. --------------kUIyB2BTMQSNcbXKdwq8q0O0 Content-Type: text/plain; charset=UTF-8; name="0001-Fix-accidentally-cast-away-qualifiers.patch" Content-Disposition: attachment; filename="0001-Fix-accidentally-cast-away-qualifiers.patch" Content-Transfer-Encoding: base64 RnJvbSBiOGNlOWZkNzM3N2U2NjZiYjlmYmQ3NzRlNDg3NDFhNzRkOWE3MDkxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogU2F0LCAxMyBEZWMgMjAyNSAyMzozNDozOCArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIEZpeCBhY2NpZGVudGFsbHkgY2FzdCBhd2F5IHF1YWxpZmllcnMKClRoaXMg Zml4ZXMgY2FzZXMgd2hlcmUgYSBxdWFsaWZpZXIgKGNvbnN0LCBpbiBhbGwgY2FzZXMgaGVy ZSkgd2FzCmRyb3BwZWQgYnkgYSBjYXN0LCBidXQgdGhlIGNhc3Qgd2FzIG90aGVyd2lzZSBu ZWNlc3Nhcnkgb3IgZGVzaXJhYmxlLApzbyB0aGUgc3RyYWlnaHRmb3J3YXJkIGZpeCBpcyB0 byBhZGQgdGhlIHF1YWxpZmllciBpbnRvIHRoZSBjYXN0LgotLS0KIGNvbnRyaWIvaW50YXJy YXkvX2ludF9zZWxmdW5jcy5jICAgICAgICAgICAgICB8ICAyICstCiBjb250cmliL3BhZ2Vp bnNwZWN0L2hlYXBmdW5jcy5jICAgICAgICAgICAgICAgfCAgMiArLQogY29udHJpYi91dWlk LW9zc3AvdXVpZC1vc3NwLmMgICAgICAgICAgICAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vdG9hc3RfY29tcHJlc3Npb24uYyB8ICA4ICsrLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0aW5zZXJ0LmMgICAgICAgICB8ICA0ICstCiBzcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9naW5zZXJ0LmMgICAgICAgfCAgNCArLQogc3JjL2Jh Y2tlbmQvYmFja3VwL2JhY2t1cF9tYW5pZmVzdC5jICAgICAgICAgIHwgIDIgKy0KIHNyYy9i YWNrZW5kL2JhY2t1cC9iYXNlYmFja3VwLmMgICAgICAgICAgICAgICB8ICAyICstCiBzcmMv YmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cF9pbmNyZW1lbnRhbC5jICAgfCAgNiArLS0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyAgICAgICAgICB8ICA0ICstCiBz cmMvYmFja2VuZC9saWJwcS9hdXRoLXNjcmFtLmMgICAgICAgICAgICAgICAgfCAgNCArLQog c3JjL2JhY2tlbmQvbGlicHEvY3J5cHQuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0K IHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2ICst LQogc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyAgICAgICAgICAgICAgICAgIHwgMTIg KystLS0KIHNyYy9iYWNrZW5kL25vZGVzL3RpZGJpdG1hcC5jICAgICAgICAgICAgICAgICB8 ICA0ICstCiBzcmMvYmFja2VuZC9zdGF0aXN0aWNzL2V4dGVuZGVkX3N0YXRzLmMgICAgICAg fCAgNCArLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htX21xLmMgICAgICAgICAgICAg IHwgIDIgKy0KIHNyYy9iYWNrZW5kL3RzZWFyY2gvc3BlbGwuYyAgICAgICAgICAgICAgICAg ICB8ICA0ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX3NwZ2lzdC5jICAgICAgICAg ICAgfCAgNCArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb24uYyAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGVfYnVpbHRpbi5j ICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jICAgICAg ICAgICAgfCAgOCArKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlc19naXN0 LmMgICAgICAgfCAgNCArLQogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3dhbG1ldGhvZHMuYyAg ICAgICAgICAgIHwgIDIgKy0KIHNyYy9iaW4vcGdfcmV3aW5kL2ZpbGVtYXAuYyAgICAgICAg ICAgICAgICAgICB8ICA0ICstCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9hc3RyZWFtZXJf dmVyaWZ5LmMgICAgfCAgMiArLQogc3JjL2Jpbi9wZ193YWxzdW1tYXJ5L3BnX3dhbHN1bW1h cnkuYyAgICAgICAgIHwgIDQgKy0KIHNyYy9jb21tb24vc2NyYW0tY29tbW9uLmMgICAgICAg ICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvY29tbW9uL3VuaWNvZGVfY2FzZS5jICAgICAg ICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2luY2x1ZGUvYWNjZXNzL3R1cG1hY3MuaCAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1vbi9oYXNoZm5fdW5z dGFibGUuaCAgICAgICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS91dGlscy9tZW11dGlscy5o ICAgICAgICAgICAgICAgICAgfCAxMiArKy0tLQogc3JjL2luY2x1ZGUvdmFyYXR0LmggICAg ICAgICAgICAgICAgICAgICAgICAgIHwgNDggKysrKysrKysrLS0tLS0tLS0tLQogc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtYXV0aC1zY3JhbS5jICAgICAgICAgIHwgIDIgKy0KIHNyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGguYyAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMv cG9ydC9wZ19jcmMzMmNfYXJtdjguYyAgICAgICAgICAgICAgICAgICAgfCAxMCArKy0tCiBz cmMvcG9ydC9wZ19wb3Bjb3VudF9hYXJjaDY0LmMgICAgICAgICAgICAgICAgfCAgNCArLQog c3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbnRlc3Rlci5jICAgICAgICAgIHwgIDggKyst LQogLi4uL21vZHVsZXMvbGlicHFfcGlwZWxpbmUvbGlicHFfcGlwZWxpbmUuYyAgIHwgIDIg Ky0KIC4uLi9tb2R1bGVzL3Rlc3RfdGlkc3RvcmUvdGVzdF90aWRzdG9yZS5jICAgICB8ICA4 ICsrLS0KIDQwIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCAxMTAgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9pbnRhcnJheS9faW50X3NlbGZ1bmNzLmMg Yi9jb250cmliL2ludGFycmF5L19pbnRfc2VsZnVuY3MuYwppbmRleCBjM2UxOWNkZjI3Zi4u NGE3MDUzMDI4YzYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaW50YXJyYXkvX2ludF9zZWxmdW5j cy5jCisrKyBiL2NvbnRyaWIvaW50YXJyYXkvX2ludF9zZWxmdW5jcy5jCkBAIC0zMjgsNyAr MzI4LDcgQEAgaW50X3F1ZXJ5X29wcl9zZWxlYyhJVEVNICppdGVtLCBEYXR1bSAqbWNlbGVt cywgZmxvYXQ0ICptY2VmcmVxcywKIHN0YXRpYyBpbnQKIGNvbXBhcmVfdmFsX2ludDQoY29u c3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIHsKLQlpbnQzMgkJa2V5ID0gKihpbnQzMiAq KSBhOworCWludDMyCQlrZXkgPSAqKGNvbnN0IGludDMyICopIGE7CiAJaW50MzIJCXZhbHVl ID0gRGF0dW1HZXRJbnQzMigqKGNvbnN0IERhdHVtICopIGIpOwogCiAJaWYgKGtleSA8IHZh bHVlKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wYWdlaW5zcGVjdC9oZWFwZnVuY3MuYyBiL2Nv bnRyaWIvcGFnZWluc3BlY3QvaGVhcGZ1bmNzLmMKaW5kZXggMWNmMGI0NGU3MzEuLjgyNzdm YTI1NmMzIDEwMDY0NAotLS0gYS9jb250cmliL3BhZ2VpbnNwZWN0L2hlYXBmdW5jcy5jCisr KyBiL2NvbnRyaWIvcGFnZWluc3BlY3QvaGVhcGZ1bmNzLmMKQEAgLTQ2LDcgKzQ2LDcgQEAg c3RhdGljIGlubGluZSBPaWQKIEhlYXBUdXBsZUhlYWRlckdldE9pZE9sZChjb25zdCBIZWFw VHVwbGVIZWFkZXJEYXRhICp0dXApCiB7CiAJaWYgKHR1cC0+dF9pbmZvbWFzayAmIEhFQVBf SEFTT0lEX09MRCkKLQkJcmV0dXJuICooKE9pZCAqKSAoKGNoYXIgKikgKHR1cCkgKyAodHVw KS0+dF9ob2ZmIC0gc2l6ZW9mKE9pZCkpKTsKKwkJcmV0dXJuICooKGNvbnN0IE9pZCAqKSAo KGNvbnN0IGNoYXIgKikgKHR1cCkgKyAodHVwKS0+dF9ob2ZmIC0gc2l6ZW9mKE9pZCkpKTsK IAllbHNlCiAJCXJldHVybiBJbnZhbGlkT2lkOwogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi91 dWlkLW9zc3AvdXVpZC1vc3NwLmMgYi9jb250cmliL3V1aWQtb3NzcC91dWlkLW9zc3AuYwpp bmRleCA3MGU2OThmNGFiMy4uYWE0ZDBiZWNhY2UgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdXVp ZC1vc3NwL3V1aWQtb3NzcC5jCisrKyBiL2NvbnRyaWIvdXVpZC1vc3NwL3V1aWQtb3NzcC5j CkBAIC0zMzcsNyArMzM3LDcgQEAgdXVpZF9nZW5lcmF0ZV9pbnRlcm5hbChpbnQgdiwgdW5z aWduZWQgY2hhciAqbnMsIGNvbnN0IGNoYXIgKnB0ciwgaW50IGxlbikKIAkJCQkJCWVsb2co RVJST1IsICJjb3VsZCBub3QgaW5pdGlhbGl6ZSAlcyBjb250ZXh0OiAlcyIsICJNRDUiLAog CQkJCQkJCSBwZ19jcnlwdG9oYXNoX2Vycm9yKGN0eCkpOwogCQkJCQlpZiAocGdfY3J5cHRv aGFzaF91cGRhdGUoY3R4LCBucywgc2l6ZW9mKHV1KSkgPCAwIHx8Ci0JCQkJCQlwZ19jcnlw dG9oYXNoX3VwZGF0ZShjdHgsICh1bnNpZ25lZCBjaGFyICopIHB0ciwgbGVuKSA8IDApCisJ CQkJCQlwZ19jcnlwdG9oYXNoX3VwZGF0ZShjdHgsIChjb25zdCB1bnNpZ25lZCBjaGFyICop IHB0ciwgbGVuKSA8IDApCiAJCQkJCQllbG9nKEVSUk9SLCAiY291bGQgbm90IHVwZGF0ZSAl cyBjb250ZXh0OiAlcyIsICJNRDUiLAogCQkJCQkJCSBwZ19jcnlwdG9oYXNoX2Vycm9yKGN0 eCkpOwogCQkJCQkvKiB3ZSBhc3N1bWUgc2l6ZW9mIE1ENSByZXN1bHQgaXMgMTYsIHNhbWUg YXMgVVVJRCBzaXplICovCkBAIC0zNTYsNyArMzU2LDcgQEAgdXVpZF9nZW5lcmF0ZV9pbnRl cm5hbChpbnQgdiwgdW5zaWduZWQgY2hhciAqbnMsIGNvbnN0IGNoYXIgKnB0ciwgaW50IGxl bikKIAkJCQkJCWVsb2coRVJST1IsICJjb3VsZCBub3QgaW5pdGlhbGl6ZSAlcyBjb250ZXh0 OiAlcyIsICJTSEExIiwKIAkJCQkJCQkgcGdfY3J5cHRvaGFzaF9lcnJvcihjdHgpKTsKIAkJ CQkJaWYgKHBnX2NyeXB0b2hhc2hfdXBkYXRlKGN0eCwgbnMsIHNpemVvZih1dSkpIDwgMCB8 fAotCQkJCQkJcGdfY3J5cHRvaGFzaF91cGRhdGUoY3R4LCAodW5zaWduZWQgY2hhciAqKSBw dHIsIGxlbikgPCAwKQorCQkJCQkJcGdfY3J5cHRvaGFzaF91cGRhdGUoY3R4LCAoY29uc3Qg dW5zaWduZWQgY2hhciAqKSBwdHIsIGxlbikgPCAwKQogCQkJCQkJZWxvZyhFUlJPUiwgImNv dWxkIG5vdCB1cGRhdGUgJXMgY29udGV4dDogJXMiLCAiU0hBMSIsCiAJCQkJCQkJIHBnX2Ny eXB0b2hhc2hfZXJyb3IoY3R4KSk7CiAJCQkJCWlmIChwZ19jcnlwdG9oYXNoX2ZpbmFsKGN0 eCwgc2hhMXJlc3VsdCwgc2l6ZW9mKHNoYTFyZXN1bHQpKSA8IDApCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3RvYXN0X2NvbXByZXNzaW9uLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvY29tbW9uL3RvYXN0X2NvbXByZXNzaW9uLmMKaW5kZXggMTMzNjMyOGNj MGIuLmQ0NDk2MTNiMjFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9u L3RvYXN0X2NvbXByZXNzaW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi90 b2FzdF9jb21wcmVzc2lvbi5jCkBAIC04OCw3ICs4OCw3IEBAIHBnbHpfZGVjb21wcmVzc19k YXR1bShjb25zdCBzdHJ1Y3QgdmFybGVuYSAqdmFsdWUpCiAJcmVzdWx0ID0gKHN0cnVjdCB2 YXJsZW5hICopIHBhbGxvYyhWQVJEQVRBX0NPTVBSRVNTRURfR0VUX0VYVFNJWkUodmFsdWUp ICsgVkFSSERSU1opOwogCiAJLyogZGVjb21wcmVzcyB0aGUgZGF0YSAqLwotCXJhd3NpemUg PSBwZ2x6X2RlY29tcHJlc3MoKGNoYXIgKikgdmFsdWUgKyBWQVJIRFJTWl9DT01QUkVTU0VE LAorCXJhd3NpemUgPSBwZ2x6X2RlY29tcHJlc3MoKGNvbnN0IGNoYXIgKikgdmFsdWUgKyBW QVJIRFJTWl9DT01QUkVTU0VELAogCQkJCQkJCSAgVkFSU0laRSh2YWx1ZSkgLSBWQVJIRFJT Wl9DT01QUkVTU0VELAogCQkJCQkJCSAgVkFSREFUQShyZXN1bHQpLAogCQkJCQkJCSAgVkFS REFUQV9DT01QUkVTU0VEX0dFVF9FWFRTSVpFKHZhbHVlKSwgdHJ1ZSk7CkBAIC0xMTYsNyAr MTE2LDcgQEAgcGdsel9kZWNvbXByZXNzX2RhdHVtX3NsaWNlKGNvbnN0IHN0cnVjdCB2YXJs ZW5hICp2YWx1ZSwKIAlyZXN1bHQgPSAoc3RydWN0IHZhcmxlbmEgKikgcGFsbG9jKHNsaWNl bGVuZ3RoICsgVkFSSERSU1opOwogCiAJLyogZGVjb21wcmVzcyB0aGUgZGF0YSAqLwotCXJh d3NpemUgPSBwZ2x6X2RlY29tcHJlc3MoKGNoYXIgKikgdmFsdWUgKyBWQVJIRFJTWl9DT01Q UkVTU0VELAorCXJhd3NpemUgPSBwZ2x6X2RlY29tcHJlc3MoKGNvbnN0IGNoYXIgKikgdmFs dWUgKyBWQVJIRFJTWl9DT01QUkVTU0VELAogCQkJCQkJCSAgVkFSU0laRSh2YWx1ZSkgLSBW QVJIRFJTWl9DT01QUkVTU0VELAogCQkJCQkJCSAgVkFSREFUQShyZXN1bHQpLAogCQkJCQkJ CSAgc2xpY2VsZW5ndGgsIGZhbHNlKTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBsejRfZGVjb21w cmVzc19kYXR1bShjb25zdCBzdHJ1Y3QgdmFybGVuYSAqdmFsdWUpCiAJcmVzdWx0ID0gKHN0 cnVjdCB2YXJsZW5hICopIHBhbGxvYyhWQVJEQVRBX0NPTVBSRVNTRURfR0VUX0VYVFNJWkUo dmFsdWUpICsgVkFSSERSU1opOwogCiAJLyogZGVjb21wcmVzcyB0aGUgZGF0YSAqLwotCXJh d3NpemUgPSBMWjRfZGVjb21wcmVzc19zYWZlKChjaGFyICopIHZhbHVlICsgVkFSSERSU1pf Q09NUFJFU1NFRCwKKwlyYXdzaXplID0gTFo0X2RlY29tcHJlc3Nfc2FmZSgoY29uc3QgY2hh ciAqKSB2YWx1ZSArIFZBUkhEUlNaX0NPTVBSRVNTRUQsCiAJCQkJCQkJCSAgVkFSREFUQShy ZXN1bHQpLAogCQkJCQkJCQkgIFZBUlNJWkUodmFsdWUpIC0gVkFSSERSU1pfQ09NUFJFU1NF RCwKIAkJCQkJCQkJICBWQVJEQVRBX0NPTVBSRVNTRURfR0VUX0VYVFNJWkUodmFsdWUpKTsK QEAgLTIyOSw3ICsyMjksNyBAQCBsejRfZGVjb21wcmVzc19kYXR1bV9zbGljZShjb25zdCBz dHJ1Y3QgdmFybGVuYSAqdmFsdWUsIGludDMyIHNsaWNlbGVuZ3RoKQogCXJlc3VsdCA9IChz dHJ1Y3QgdmFybGVuYSAqKSBwYWxsb2Moc2xpY2VsZW5ndGggKyBWQVJIRFJTWik7CiAKIAkv KiBkZWNvbXByZXNzIHRoZSBkYXRhICovCi0JcmF3c2l6ZSA9IExaNF9kZWNvbXByZXNzX3Nh ZmVfcGFydGlhbCgoY2hhciAqKSB2YWx1ZSArIFZBUkhEUlNaX0NPTVBSRVNTRUQsCisJcmF3 c2l6ZSA9IExaNF9kZWNvbXByZXNzX3NhZmVfcGFydGlhbCgoY29uc3QgY2hhciAqKSB2YWx1 ZSArIFZBUkhEUlNaX0NPTVBSRVNTRUQsCiAJCQkJCQkJCQkJICBWQVJEQVRBKHJlc3VsdCks CiAJCQkJCQkJCQkJICBWQVJTSVpFKHZhbHVlKSAtIFZBUkhEUlNaX0NPTVBSRVNTRUQsCiAJ CQkJCQkJCQkJICBzbGljZWxlbmd0aCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9uYnRyZWUvbmJ0aW5zZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idGlu c2VydC5jCmluZGV4IDYzZWRhMDhmN2EyLi5kMTdhYWE1YWEwZiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRpbnNlcnQuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idGluc2VydC5jCkBAIC0zMDIzLDggKzMwMjMsOCBAQCBfYnRfZGVh ZGJsb2NrcyhQYWdlIHBhZ2UsIE9mZnNldE51bWJlciAqZGVsZXRhYmxlLCBpbnQgbmRlbGV0 YWJsZSwKIHN0YXRpYyBpbmxpbmUgaW50CiBfYnRfYmxrX2NtcChjb25zdCB2b2lkICphcmcx LCBjb25zdCB2b2lkICphcmcyKQogewotCUJsb2NrTnVtYmVyIGIxID0gKigoQmxvY2tOdW1i ZXIgKikgYXJnMSk7Ci0JQmxvY2tOdW1iZXIgYjIgPSAqKChCbG9ja051bWJlciAqKSBhcmcy KTsKKwlCbG9ja051bWJlciBiMSA9ICooKGNvbnN0IEJsb2NrTnVtYmVyICopIGFyZzEpOwor CUJsb2NrTnVtYmVyIGIyID0gKigoY29uc3QgQmxvY2tOdW1iZXIgKikgYXJnMik7CiAKIAly ZXR1cm4gcGdfY21wX3UzMihiMSwgYjIpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZ2luc2VydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZ2luc2VydC5jCmluZGV4IDkyYzQ4ZTc2OGMzLi5mOTI4YmM3YzBlZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2luc2VydC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dpbnNlcnQuYwpAQCAtNjc3LDggKzY3Nyw4 IEBAIFhMb2dSZWNvcmRBc3NlbWJsZShSbWdySWQgcm1pZCwgdWludDggaW5mbywKIAkJCWlm IChyZWdidWYtPmZsYWdzICYgUkVHQlVGX1NUQU5EQVJEKQogCQkJewogCQkJCS8qIEFzc3Vt ZSB3ZSBjYW4gb21pdCBkYXRhIGJldHdlZW4gcGRfbG93ZXIgYW5kIHBkX3VwcGVyICovCi0J CQkJdWludDE2CQlsb3dlciA9ICgoUGFnZUhlYWRlcikgcGFnZSktPnBkX2xvd2VyOwotCQkJ CXVpbnQxNgkJdXBwZXIgPSAoKFBhZ2VIZWFkZXIpIHBhZ2UpLT5wZF91cHBlcjsKKwkJCQl1 aW50MTYJCWxvd2VyID0gKChjb25zdCBQYWdlSGVhZGVyRGF0YSAqKSBwYWdlKS0+cGRfbG93 ZXI7CisJCQkJdWludDE2CQl1cHBlciA9ICgoY29uc3QgUGFnZUhlYWRlckRhdGEgKikgcGFn ZSktPnBkX3VwcGVyOwogCiAJCQkJaWYgKGxvd2VyID49IFNpemVPZlBhZ2VIZWFkZXJEYXRh ICYmCiAJCQkJCXVwcGVyID4gbG93ZXIgJiYKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Jh Y2t1cC9iYWNrdXBfbWFuaWZlc3QuYyBiL3NyYy9iYWNrZW5kL2JhY2t1cC9iYWNrdXBfbWFu aWZlc3QuYwppbmRleCBjNjk3Y2FlZjg5NS4uMzc2MGIwMDM5MDcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2JhY2t1cC9iYWNrdXBfbWFuaWZlc3QuYworKysgYi9zcmMvYmFja2VuZC9i YWNrdXAvYmFja3VwX21hbmlmZXN0LmMKQEAgLTM4OCw3ICszODgsNyBAQCBBcHBlbmRTdHJp bmdUb01hbmlmZXN0KGJhY2t1cF9tYW5pZmVzdF9pbmZvICptYW5pZmVzdCwgY29uc3QgY2hh ciAqcykKIAlBc3NlcnQobWFuaWZlc3QgIT0gTlVMTCk7CiAJaWYgKG1hbmlmZXN0LT5zdGls bF9jaGVja3N1bW1pbmcpCiAJewotCQlpZiAocGdfY3J5cHRvaGFzaF91cGRhdGUobWFuaWZl c3QtPm1hbmlmZXN0X2N0eCwgKHVpbnQ4ICopIHMsIGxlbikgPCAwKQorCQlpZiAocGdfY3J5 cHRvaGFzaF91cGRhdGUobWFuaWZlc3QtPm1hbmlmZXN0X2N0eCwgKGNvbnN0IHVpbnQ4ICop IHMsIGxlbikgPCAwKQogCQkJZWxvZyhFUlJPUiwgImZhaWxlZCB0byB1cGRhdGUgY2hlY2tz dW0gb2YgYmFja3VwIG1hbmlmZXN0OiAlcyIsCiAJCQkJIHBnX2NyeXB0b2hhc2hfZXJyb3Io bWFuaWZlc3QtPm1hbmlmZXN0X2N0eCkpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2JhY2t1cC9iYXNlYmFja3VwLmMgYi9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cC5j CmluZGV4IGJhMDZhMzhjMDMzLi40NjNjMDc1NmI1ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYmFja3VwL2Jhc2ViYWNrdXAuYworKysgYi9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJh Y2t1cC5jCkBAIC0xMTA0LDcgKzExMDQsNyBAQCBzZW5kRmlsZVdpdGhDb250ZW50KGJic2lu ayAqc2luaywgY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNvbnRlbnQsCiAK IAlfdGFyV3JpdGVIZWFkZXIoc2luaywgZmlsZW5hbWUsIE5VTEwsICZzdGF0YnVmLCBmYWxz ZSk7CiAKLQlpZiAocGdfY2hlY2tzdW1fdXBkYXRlKCZjaGVja3N1bV9jdHgsICh1aW50OCAq KSBjb250ZW50LCBsZW4pIDwgMCkKKwlpZiAocGdfY2hlY2tzdW1fdXBkYXRlKCZjaGVja3N1 bV9jdHgsIChjb25zdCB1aW50OCAqKSBjb250ZW50LCBsZW4pIDwgMCkKIAkJZWxvZyhFUlJP UiwgImNvdWxkIG5vdCB1cGRhdGUgY2hlY2tzdW0gb2YgZmlsZSBcIiVzXCIiLAogCQkJIGZp bGVuYW1lKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYmFja3VwL2Jhc2ViYWNrdXBf aW5jcmVtZW50YWwuYyBiL3NyYy9iYWNrZW5kL2JhY2t1cC9iYXNlYmFja3VwX2luY3JlbWVu dGFsLmMKaW5kZXggNzdkY2UyNGFkMzguLmY1OGVkOWIxOThhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cF9pbmNyZW1lbnRhbC5jCisrKyBiL3NyYy9iYWNr ZW5kL2JhY2t1cC9iYXNlYmFja3VwX2luY3JlbWVudGFsLmMKQEAgLTkzMCw3ICs5MzAsNyBA QCBHZXRJbmNyZW1lbnRhbEZpbGVTaXplKHVuc2lnbmVkIG51bV9ibG9ja3NfcmVxdWlyZWQp CiBzdGF0aWMgdWludDMyCiBoYXNoX3N0cmluZ19wb2ludGVyKGNvbnN0IGNoYXIgKnMpCiB7 Ci0JdW5zaWduZWQgY2hhciAqc3MgPSAodW5zaWduZWQgY2hhciAqKSBzOworCWNvbnN0IHVu c2lnbmVkIGNoYXIgKnNzID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgczsKIAogCXJldHVy biBoYXNoX2J5dGVzKHNzLCBzdHJsZW4ocykpOwogfQpAQCAtMTA0OSw4ICsxMDQ5LDggQEAg bWFuaWZlc3RfcmVwb3J0X2Vycm9yKEpzb25NYW5pZmVzdFBhcnNlQ29udGV4dCAqY29udGV4 dCwgY29uc3QgY2hhciAqZm10LC4uLikKIHN0YXRpYyBpbnQKIGNvbXBhcmVfYmxvY2tfbnVt YmVycyhjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQogewotCUJsb2NrTnVtYmVyIGFh ID0gKihCbG9ja051bWJlciAqKSBhOwotCUJsb2NrTnVtYmVyIGJiID0gKihCbG9ja051bWJl ciAqKSBiOworCUJsb2NrTnVtYmVyIGFhID0gKihjb25zdCBCbG9ja051bWJlciAqKSBhOwor CUJsb2NrTnVtYmVyIGJiID0gKihjb25zdCBCbG9ja051bWJlciAqKSBiOwogCiAJcmV0dXJu IHBnX2NtcF91MzIoYWEsIGJiKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVJbmRleHNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNj YW4uYwppbmRleCA4NDgyM2YwYjYxNS4uYTYxNmFiZmYwNGMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlSW5kZXhzY2FuLmMKQEAgLTQ0Myw4ICs0NDMsOCBAQCBzdGF0aWMgaW50CiBy ZW9yZGVycXVldWVfY21wKGNvbnN0IHBhaXJpbmdoZWFwX25vZGUgKmEsIGNvbnN0IHBhaXJp bmdoZWFwX25vZGUgKmIsCiAJCQkJIHZvaWQgKmFyZykKIHsKLQlSZW9yZGVyVHVwbGUgKnJ0 YSA9IChSZW9yZGVyVHVwbGUgKikgYTsKLQlSZW9yZGVyVHVwbGUgKnJ0YiA9IChSZW9yZGVy VHVwbGUgKikgYjsKKwljb25zdCBSZW9yZGVyVHVwbGUgKnJ0YSA9IChjb25zdCBSZW9yZGVy VHVwbGUgKikgYTsKKwljb25zdCBSZW9yZGVyVHVwbGUgKnJ0YiA9IChjb25zdCBSZW9yZGVy VHVwbGUgKikgYjsKIAlJbmRleFNjYW5TdGF0ZSAqbm9kZSA9IChJbmRleFNjYW5TdGF0ZSAq KSBhcmc7CiAKIAkvKiBleGNoYW5nZSBhcmd1bWVudCBvcmRlciB0byBpbnZlcnQgdGhlIHNv cnQgb3JkZXIgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0u YyBiL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0uYwppbmRleCAzYzQxMTQ1ZDkyNi4u MDI2N2VkYjI5Y2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0u YworKysgYi9zcmMvYmFja2VuZC9saWJwcS9hdXRoLXNjcmFtLmMKQEAgLTE0OTAsOCArMTQ5 MCw4IEBAIHNjcmFtX21vY2tfc2FsdChjb25zdCBjaGFyICp1c2VybmFtZSwgcGdfY3J5cHRv aGFzaF90eXBlIGhhc2hfdHlwZSwKIAogCWN0eCA9IHBnX2NyeXB0b2hhc2hfY3JlYXRlKGhh c2hfdHlwZSk7CiAJaWYgKHBnX2NyeXB0b2hhc2hfaW5pdChjdHgpIDwgMCB8fAotCQlwZ19j cnlwdG9oYXNoX3VwZGF0ZShjdHgsICh1aW50OCAqKSB1c2VybmFtZSwgc3RybGVuKHVzZXJu YW1lKSkgPCAwIHx8Ci0JCXBnX2NyeXB0b2hhc2hfdXBkYXRlKGN0eCwgKHVpbnQ4ICopIG1v Y2tfYXV0aF9ub25jZSwgTU9DS19BVVRIX05PTkNFX0xFTikgPCAwIHx8CisJCXBnX2NyeXB0 b2hhc2hfdXBkYXRlKGN0eCwgKGNvbnN0IHVpbnQ4ICopIHVzZXJuYW1lLCBzdHJsZW4odXNl cm5hbWUpKSA8IDAgfHwKKwkJcGdfY3J5cHRvaGFzaF91cGRhdGUoY3R4LCAoY29uc3QgdWlu dDggKikgbW9ja19hdXRoX25vbmNlLCBNT0NLX0FVVEhfTk9OQ0VfTEVOKSA8IDAgfHwKIAkJ cGdfY3J5cHRvaGFzaF9maW5hbChjdHgsIHNoYV9kaWdlc3QsIGtleV9sZW5ndGgpIDwgMCkK IAl7CiAJCXBnX2NyeXB0b2hhc2hfZnJlZShjdHgpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvbGlicHEvY3J5cHQuYyBiL3NyYy9iYWNrZW5kL2xpYnBxL2NyeXB0LmMKaW5kZXggNGMx MDUyYjNkNDIuLjUyNzIyMDYwNDUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9saWJwcS9j cnlwdC5jCisrKyBiL3NyYy9iYWNrZW5kL2xpYnBxL2NyeXB0LmMKQEAgLTEzNiw3ICsxMzYs NyBAQCBlbmNyeXB0X3Bhc3N3b3JkKFBhc3N3b3JkVHlwZSB0YXJnZXRfdHlwZSwgY29uc3Qg Y2hhciAqcm9sZSwKIAkJCWNhc2UgUEFTU1dPUkRfVFlQRV9NRDU6CiAJCQkJZW5jcnlwdGVk X3Bhc3N3b3JkID0gcGFsbG9jKE1ENV9QQVNTV0RfTEVOICsgMSk7CiAKLQkJCQlpZiAoIXBn X21kNV9lbmNyeXB0KHBhc3N3b3JkLCAodWludDggKikgcm9sZSwgc3RybGVuKHJvbGUpLAor CQkJCWlmICghcGdfbWQ1X2VuY3J5cHQocGFzc3dvcmQsIChjb25zdCB1aW50OCAqKSByb2xl LCBzdHJsZW4ocm9sZSksCiAJCQkJCQkJCQllbmNyeXB0ZWRfcGFzc3dvcmQsICZlcnJzdHIp KQogCQkJCQllbG9nKEVSUk9SLCAicGFzc3dvcmQgZW5jcnlwdGlvbiBmYWlsZWQ6ICVzIiwg ZXJyc3RyKTsKIAkJCQlicmVhazsKQEAgLTI4NCw3ICsyODQsNyBAQCBwbGFpbl9jcnlwdF92 ZXJpZnkoY29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2hhZG93X3Bhc3MsCiAKIAkJ Y2FzZSBQQVNTV09SRF9UWVBFX01ENToKIAkJCWlmICghcGdfbWQ1X2VuY3J5cHQoY2xpZW50 X3Bhc3MsCi0JCQkJCQkJCSh1aW50OCAqKSByb2xlLAorCQkJCQkJCQkoY29uc3QgdWludDgg Kikgcm9sZSwKIAkJCQkJCQkJc3RybGVuKHJvbGUpLAogCQkJCQkJCQljcnlwdF9jbGllbnRf cGFzcywKIAkJCQkJCQkJJmVycnN0cikpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rl cy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGQy OTY2NGNhNWQ0Li4xOTllZDI3OTk1ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMv bm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTEw MDksMTQgKzEwMDksMTQgQEAgZXhwckNvbGxhdGlvbihjb25zdCBOb2RlICpleHByKQogCQkJ YnJlYWs7CiAJCWNhc2UgVF9Kc29uRXhwcjoKIAkJCXsKLQkJCQljb25zdCBKc29uRXhwciAq anNleHByID0gKEpzb25FeHByICopIGV4cHI7CisJCQkJY29uc3QgSnNvbkV4cHIgKmpzZXhw ciA9IChjb25zdCBKc29uRXhwciAqKSBleHByOwogCiAJCQkJY29sbCA9IGpzZXhwci0+Y29s bGF0aW9uOwogCQkJfQogCQkJYnJlYWs7CiAJCWNhc2UgVF9Kc29uQmVoYXZpb3I6CiAJCQl7 Ci0JCQkJY29uc3QgSnNvbkJlaGF2aW9yICpiZWhhdmlvciA9IChKc29uQmVoYXZpb3IgKikg ZXhwcjsKKwkJCQljb25zdCBKc29uQmVoYXZpb3IgKmJlaGF2aW9yID0gKGNvbnN0IEpzb25C ZWhhdmlvciAqKSBleHByOwogCiAJCQkJaWYgKGJlaGF2aW9yLT5leHByKQogCQkJCQljb2xs ID0gZXhwckNvbGxhdGlvbihiZWhhdmlvci0+ZXhwcik7CkBAIC0xNTkzLDcgKzE1OTMsNyBA QCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCX0KIAkJCWJyZWFrOwogCQlj YXNlIFRfSnNvbkJlaGF2aW9yOgotCQkJbG9jID0gZXhwckxvY2F0aW9uKCgoSnNvbkJlaGF2 aW9yICopIGV4cHIpLT5leHByKTsKKwkJCWxvYyA9IGV4cHJMb2NhdGlvbigoKGNvbnN0IEpz b25CZWhhdmlvciAqKSBleHByKS0+ZXhwcik7CiAJCQlicmVhazsKIAkJY2FzZSBUX051bGxU ZXN0OgogCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyBi L3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMKaW5kZXggYzhlZWYyYzc1ZDIuLjQwOTkw MTQzOTI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jCisrKyBi L3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMKQEAgLTczNiwxNyArNzM2LDE3IEBAIG91 dE5vZGUoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IHZvaWQgKm9iaikKIAkJX291dExpc3Qoc3Ry LCBvYmopOwogCS8qIG5vZGVSZWFkIGRvZXMgbm90IHdhbnQgdG8gc2VlIHsgfSBhcm91bmQg dGhlc2UhICovCiAJZWxzZSBpZiAoSXNBKG9iaiwgSW50ZWdlcikpCi0JCV9vdXRJbnRlZ2Vy KHN0ciwgKEludGVnZXIgKikgb2JqKTsKKwkJX291dEludGVnZXIoc3RyLCAoY29uc3QgSW50 ZWdlciAqKSBvYmopOwogCWVsc2UgaWYgKElzQShvYmosIEZsb2F0KSkKLQkJX291dEZsb2F0 KHN0ciwgKEZsb2F0ICopIG9iaik7CisJCV9vdXRGbG9hdChzdHIsIChjb25zdCBGbG9hdCAq KSBvYmopOwogCWVsc2UgaWYgKElzQShvYmosIEJvb2xlYW4pKQotCQlfb3V0Qm9vbGVhbihz dHIsIChCb29sZWFuICopIG9iaik7CisJCV9vdXRCb29sZWFuKHN0ciwgKGNvbnN0IEJvb2xl YW4gKikgb2JqKTsKIAllbHNlIGlmIChJc0Eob2JqLCBTdHJpbmcpKQotCQlfb3V0U3RyaW5n KHN0ciwgKFN0cmluZyAqKSBvYmopOworCQlfb3V0U3RyaW5nKHN0ciwgKGNvbnN0IFN0cmlu ZyAqKSBvYmopOwogCWVsc2UgaWYgKElzQShvYmosIEJpdFN0cmluZykpCi0JCV9vdXRCaXRT dHJpbmcoc3RyLCAoQml0U3RyaW5nICopIG9iaik7CisJCV9vdXRCaXRTdHJpbmcoc3RyLCAo Y29uc3QgQml0U3RyaW5nICopIG9iaik7CiAJZWxzZSBpZiAoSXNBKG9iaiwgQml0bWFwc2V0 KSkKLQkJb3V0Qml0bWFwc2V0KHN0ciwgKEJpdG1hcHNldCAqKSBvYmopOworCQlvdXRCaXRt YXBzZXQoc3RyLCAoY29uc3QgQml0bWFwc2V0ICopIG9iaik7CiAJZWxzZQogCXsKIAkJYXBw ZW5kU3RyaW5nSW5mb0NoYXIoc3RyLCAneycpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv bm9kZXMvdGlkYml0bWFwLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy90aWRiaXRtYXAuYwppbmRl eCA4MDVmZjIxYzdmMS4uZjFmOTI1Y2IxM2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25v ZGVzL3RpZGJpdG1hcC5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL3RpZGJpdG1hcC5jCkBA IC0xNDM5LDggKzE0MzksOCBAQCBzdGF0aWMgaW50CiB0Ym1fc2hhcmVkX2NvbXBhcmF0b3Io Y29uc3Qgdm9pZCAqbGVmdCwgY29uc3Qgdm9pZCAqcmlnaHQsIHZvaWQgKmFyZykKIHsKIAlQ YWdldGFibGVFbnRyeSAqYmFzZSA9IChQYWdldGFibGVFbnRyeSAqKSBhcmc7Ci0JUGFnZXRh YmxlRW50cnkgKmxwYWdlID0gJmJhc2VbKihpbnQgKikgbGVmdF07Ci0JUGFnZXRhYmxlRW50 cnkgKnJwYWdlID0gJmJhc2VbKihpbnQgKikgcmlnaHRdOworCVBhZ2V0YWJsZUVudHJ5ICps cGFnZSA9ICZiYXNlWyooY29uc3QgaW50ICopIGxlZnRdOworCVBhZ2V0YWJsZUVudHJ5ICpy cGFnZSA9ICZiYXNlWyooY29uc3QgaW50ICopIHJpZ2h0XTsKIAogCWlmIChscGFnZS0+Ymxv Y2tubyA8IHJwYWdlLT5ibG9ja25vKQogCQlyZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9zdGF0aXN0aWNzL2V4dGVuZGVkX3N0YXRzLmMgYi9zcmMvYmFja2VuZC9zdGF0 aXN0aWNzL2V4dGVuZGVkX3N0YXRzLmMKaW5kZXggYjlhOGYyNTcwNDIuLjM4OTVlZDcyZWY3 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2V4dGVuZGVkX3N0YXRzLmMK KysrIGIvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9leHRlbmRlZF9zdGF0cy5jCkBAIC05MTUs OCArOTE1LDggQEAgbXVsdGlfc29ydF9jb21wYXJlX2RpbXMoaW50IHN0YXJ0LCBpbnQgZW5k LAogaW50CiBjb21wYXJlX3NjYWxhcnNfc2ltcGxlKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZv aWQgKmIsIHZvaWQgKmFyZykKIHsKLQlyZXR1cm4gY29tcGFyZV9kYXR1bXNfc2ltcGxlKCoo RGF0dW0gKikgYSwKLQkJCQkJCQkJICooRGF0dW0gKikgYiwKKwlyZXR1cm4gY29tcGFyZV9k YXR1bXNfc2ltcGxlKCooY29uc3QgRGF0dW0gKikgYSwKKwkJCQkJCQkJICooY29uc3QgRGF0 dW0gKikgYiwKIAkJCQkJCQkJIChTb3J0U3VwcG9ydCkgYXJnKTsKIH0KIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htX21xLmMgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9zaG1fbXEuYwppbmRleCA0ZDZjYzE2YzBiYy4uM2NlNjA2OGFjNTQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3NobV9tcS5jCisrKyBiL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjL3NobV9tcS5jCkBAIC0xMDQxLDcgKzEwNDEsNyBAQCBzaG1fbXFf c2VuZF9ieXRlcyhzaG1fbXFfaGFuZGxlICptcWgsIFNpemUgbmJ5dGVzLCBjb25zdCB2b2lk ICpkYXRhLAogCQkJICovCiAJCQlwZ19tZW1vcnlfYmFycmllcigpOwogCQkJbWVtY3B5KCZt cS0+bXFfcmluZ1ttcS0+bXFfcmluZ19vZmZzZXQgKyBvZmZzZXRdLAotCQkJCSAgIChjaGFy ICopIGRhdGEgKyBzZW50LCBzZW5kbm93KTsKKwkJCQkgICAoY29uc3QgY2hhciAqKSBkYXRh ICsgc2VudCwgc2VuZG5vdyk7CiAJCQlzZW50ICs9IHNlbmRub3c7CiAKIAkJCS8qCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC90c2VhcmNoL3NwZWxsLmMgYi9zcmMvYmFja2VuZC90c2Vh cmNoL3NwZWxsLmMKaW5kZXggZTM0MzZkYmRkZDIuLmFkMGNlZWMzN2IwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC90c2VhcmNoL3NwZWxsLmMKKysrIGIvc3JjL2JhY2tlbmQvdHNlYXJj aC9zcGVsbC5jCkBAIC0yNDYzLDkgKzI0NjMsOSBAQCBTcGxpdFRvVmFyaWFudHMoSXNwZWxs RGljdCAqQ29uZiwgU1BOb2RlICpzbm9kZSwgU3BsaXRWYXIgKm9yaWcsIGNvbnN0IGNoYXIg KndvcgogCQl3aGlsZSAoU3RvcExvdyA8IFN0b3BIaWdoKQogCQl7CiAJCQlTdG9wTWlkZGxl ID0gU3RvcExvdyArICgoU3RvcEhpZ2ggLSBTdG9wTG93KSA+PiAxKTsKLQkJCWlmIChTdG9w TWlkZGxlLT52YWwgPT0gKCh1aW50OCAqKSAod29yZCkpW2xldmVsXSkKKwkJCWlmIChTdG9w TWlkZGxlLT52YWwgPT0gKChjb25zdCB1aW50OCAqKSAod29yZCkpW2xldmVsXSkKIAkJCQli cmVhazsKLQkJCWVsc2UgaWYgKFN0b3BNaWRkbGUtPnZhbCA8ICgodWludDggKikgKHdvcmQp KVtsZXZlbF0pCisJCQllbHNlIGlmIChTdG9wTWlkZGxlLT52YWwgPCAoKGNvbnN0IHVpbnQ4 ICopICh3b3JkKSlbbGV2ZWxdKQogCQkJCVN0b3BMb3cgPSBTdG9wTWlkZGxlICsgMTsKIAkJ CWVsc2UKIAkJCQlTdG9wSGlnaCA9IFN0b3BNaWRkbGU7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvZ2VvX3NwZ2lzdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dl b19zcGdpc3QuYwppbmRleCAxOWJjYWUzODQ4Yi4uN2ExOWNhMzg5MmIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fc3BnaXN0LmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2dlb19zcGdpc3QuYwpAQCAtOTIsOCArOTIsOCBAQAogc3RhdGljIGludAog Y29tcGFyZURvdWJsZXMoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIHsKLQlmbG9h dDgJCXggPSAqKGZsb2F0OCAqKSBhOwotCWZsb2F0OAkJeSA9ICooZmxvYXQ4ICopIGI7CisJ ZmxvYXQ4CQl4ID0gKihjb25zdCBmbG9hdDggKikgYTsKKwlmbG9hdDgJCXkgPSAqKGNvbnN0 IGZsb2F0OCAqKSBiOwogCiAJaWYgKHggPT0geSkKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb24uYwppbmRleCA3OGU4NDcyN2ZkYy4uMGIxNjEzOTg0NjUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb24uYwpAQCAtOTAxLDcgKzkwMSw3IEBAIGpzb25fYWdnX2ZpbmFsZm4oUEdfRlVOQ1RJ T05fQVJHUykKIHN0YXRpYyB1aW50MzIKIGpzb25fdW5pcXVlX2hhc2goY29uc3Qgdm9pZCAq a2V5LCBTaXplIGtleXNpemUpCiB7Ci0JY29uc3QgSnNvblVuaXF1ZUhhc2hFbnRyeSAqZW50 cnkgPSAoSnNvblVuaXF1ZUhhc2hFbnRyeSAqKSBrZXk7CisJY29uc3QgSnNvblVuaXF1ZUhh c2hFbnRyeSAqZW50cnkgPSAoY29uc3QgSnNvblVuaXF1ZUhhc2hFbnRyeSAqKSBrZXk7CiAJ dWludDMyCQloYXNoID0gaGFzaF9ieXRlc191aW50MzIoZW50cnktPm9iamVjdF9pZCk7CiAK IAloYXNoIF49IGhhc2hfYnl0ZXMoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgZW50cnktPmtl eSwgZW50cnktPmtleV9sZW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3BnX2xvY2FsZV9idWlsdGluLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxl X2J1aWx0aW4uYwppbmRleCAxZjVmYzFjOTdmMy4uYjVhZWI3YTMzN2EgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGVfYnVpbHRpbi5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGVfYnVpbHRpbi5jCkBAIC02Myw3ICs2Myw3IEBA IGluaXRjYXBfd2JuZXh0KHZvaWQgKnN0YXRlKQogCXdoaWxlICh3YnN0YXRlLT5vZmZzZXQg PCB3YnN0YXRlLT5sZW4gJiYKIAkJICAgd2JzdGF0ZS0+c3RyW3dic3RhdGUtPm9mZnNldF0g IT0gJ1wwJykKIAl7Ci0JCWNoYXIzMl90CXUgPSB1dGY4X3RvX3VuaWNvZGUoKHVuc2lnbmVk IGNoYXIgKikgd2JzdGF0ZS0+c3RyICsKKwkJY2hhcjMyX3QJdSA9IHV0ZjhfdG9fdW5pY29k ZSgoY29uc3QgdW5zaWduZWQgY2hhciAqKSB3YnN0YXRlLT5zdHIgKwogCQkJCQkJCQkJCXdi c3RhdGUtPm9mZnNldCk7CiAJCWJvb2wJCWN1cnJfYWxudW0gPSBwZ191X2lzYWxudW0odSwg d2JzdGF0ZS0+cG9zaXgpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv cmFuZ2V0eXBlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMuYwppbmRl eCA3MDFhYWNiYmZiMC4uMDZjYzNhZjRmNGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9yYW5nZXR5cGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Jhbmdl dHlwZXMuYwpAQCAtMjEwOCw3ICsyMTA4LDcgQEAgcmFuZ2VfZGVzZXJpYWxpemUoVHlwZUNh Y2hlRW50cnkgKnR5cGNhY2hlLCBjb25zdCBSYW5nZVR5cGUgKnJhbmdlLAogCXR5cGFsaWdu ID0gdHlwY2FjaGUtPnJuZ2VsZW10eXBlLT50eXBhbGlnbjsKIAogCS8qIGluaXRpYWxpemUg ZGF0YSBwb2ludGVyIGp1c3QgYWZ0ZXIgdGhlIHJhbmdlIE9JRCAqLwotCXB0ciA9IChjaGFy ICopIChyYW5nZSArIDEpOworCXB0ciA9IChjb25zdCBjaGFyICopIChyYW5nZSArIDEpOwog CiAJLyogZmV0Y2ggbG93ZXIgYm91bmQsIGlmIGFueSAqLwogCWlmIChSQU5HRV9IQVNfTEJP VU5EKGZsYWdzKSkKQEAgLTIxNTUsNyArMjE1NSw3IEBAIGNoYXIKIHJhbmdlX2dldF9mbGFn cyhjb25zdCBSYW5nZVR5cGUgKnJhbmdlKQogewogCS8qIGZldGNoIHRoZSBmbGFnIGJ5dGUg ZnJvbSBkYXR1bSdzIGxhc3QgYnl0ZSAqLwotCXJldHVybiAqKChjaGFyICopIHJhbmdlICsg VkFSU0laRShyYW5nZSkgLSAxKTsKKwlyZXR1cm4gKigoY29uc3QgY2hhciAqKSByYW5nZSAr IFZBUlNJWkUocmFuZ2UpIC0gMSk7CiB9CiAKIC8qCkBAIC0yMzYwLDggKzIzNjAsOCBAQCBy YW5nZV9jbXBfYm91bmRfdmFsdWVzKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgY29uc3Qg UmFuZ2VCb3VuZCAqYjEsCiBpbnQKIHJhbmdlX2NvbXBhcmUoY29uc3Qgdm9pZCAqa2V5MSwg Y29uc3Qgdm9pZCAqa2V5Miwgdm9pZCAqYXJnKQogewotCVJhbmdlVHlwZSAgKnIxID0gKihS YW5nZVR5cGUgKiopIGtleTE7Ci0JUmFuZ2VUeXBlICAqcjIgPSAqKFJhbmdlVHlwZSAqKikg a2V5MjsKKwlSYW5nZVR5cGUgICpyMSA9ICooUmFuZ2VUeXBlICpjb25zdCAqKSBrZXkxOwor CVJhbmdlVHlwZSAgKnIyID0gKihSYW5nZVR5cGUgKmNvbnN0ICopIGtleTI7CiAJVHlwZUNh Y2hlRW50cnkgKnR5cGNhY2hlID0gKFR5cGVDYWNoZUVudHJ5ICopIGFyZzsKIAlSYW5nZUJv dW5kCWxvd2VyMTsKIAlSYW5nZUJvdW5kCXVwcGVyMTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzX2dpc3QuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9yYW5nZXR5cGVzX2dpc3QuYwppbmRleCBjYjlmNzY5Y2RiMi4uMWEwMWE4ZjRjM2MgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzX2dpc3QuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlc19naXN0LmMKQEAgLTE3NjgsOCAr MTc2OCw4IEBAIGludGVydmFsX2NtcF91cHBlcihjb25zdCB2b2lkICphLCBjb25zdCB2b2lk ICpiLCB2b2lkICphcmcpCiBzdGF0aWMgaW50CiBjb21tb25fZW50cnlfY21wKGNvbnN0IHZv aWQgKmkxLCBjb25zdCB2b2lkICppMikKIHsKLQlkb3VibGUJCWRlbHRhMSA9ICgoQ29tbW9u RW50cnkgKikgaTEpLT5kZWx0YTsKLQlkb3VibGUJCWRlbHRhMiA9ICgoQ29tbW9uRW50cnkg KikgaTIpLT5kZWx0YTsKKwlkb3VibGUJCWRlbHRhMSA9ICgoY29uc3QgQ29tbW9uRW50cnkg KikgaTEpLT5kZWx0YTsKKwlkb3VibGUJCWRlbHRhMiA9ICgoY29uc3QgQ29tbW9uRW50cnkg KikgaTIpLT5kZWx0YTsKIAogCWlmIChkZWx0YTEgPCBkZWx0YTIpCiAJCXJldHVybiAtMTsK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC93YWxtZXRob2RzLmMgYi9zcmMv YmluL3BnX2Jhc2ViYWNrdXAvd2FsbWV0aG9kcy5jCmluZGV4IGY2ZTIzNzFmNDc3Li4xN2Qy MmM3OWY2OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3dhbG1ldGhvZHMu YworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvd2FsbWV0aG9kcy5jCkBAIC0zNTksNyAr MzU5LDcgQEAgZGlyX3dyaXRlKFdhbGZpbGUgKmYsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90 IGNvdW50KQogCQkJCXJldHVybiAtMTsKIAkJCX0KIAotCQkJaW5idWYgPSAoKGNoYXIgKikg aW5idWYpICsgY2h1bms7CisJCQlpbmJ1ZiA9ICgoY29uc3QgY2hhciAqKSBpbmJ1ZikgKyBj aHVuazsKIAkJfQogCiAJCS8qIE91ciBjYWxsZXIga2VlcHMgdHJhY2sgb2YgdGhlIHVuY29t cHJlc3NlZCBzaXplLiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXdpbmQvZmlsZW1h cC5jIGIvc3JjL2Jpbi9wZ19yZXdpbmQvZmlsZW1hcC5jCmluZGV4IDI2MTBiYWU3ZTA5Li5i NzljNDdmOTI1MiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19yZXdpbmQvZmlsZW1hcC5jCisr KyBiL3NyYy9iaW4vcGdfcmV3aW5kL2ZpbGVtYXAuYwpAQCAtNjk0LDggKzY5NCw4IEBAIGRh dGFzZWdwYXRoKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBGb3JrTnVtYmVyIGZvcmtudW0s IEJsb2NrTnVtYmVyIHNlZ25vKQogc3RhdGljIGludAogZmluYWxfZmlsZW1hcF9jbXAoY29u c3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIHsKLQlmaWxlX2VudHJ5X3QgKmZhID0gKigo ZmlsZV9lbnRyeV90ICoqKSBhKTsKLQlmaWxlX2VudHJ5X3QgKmZiID0gKigoZmlsZV9lbnRy eV90ICoqKSBiKTsKKwlmaWxlX2VudHJ5X3QgKmZhID0gKigoZmlsZV9lbnRyeV90ICpjb25z dCAqKSBhKTsKKwlmaWxlX2VudHJ5X3QgKmZiID0gKigoZmlsZV9lbnRyeV90ICpjb25zdCAq KSBiKTsKIAogCWlmIChmYS0+YWN0aW9uID4gZmItPmFjdGlvbikKIAkJcmV0dXJuIDE7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9hc3RyZWFtZXJfdmVyaWZ5LmMg Yi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9hc3RyZWFtZXJfdmVyaWZ5LmMKaW5kZXggNDQw Yzk2MjY5ZDcuLjBlZGM4MTIzYjQzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJh Y2t1cC9hc3RyZWFtZXJfdmVyaWZ5LmMKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAv YXN0cmVhbWVyX3ZlcmlmeS5jCkBAIC0yNjgsNyArMjY4LDcgQEAgbWVtYmVyX2NvbXB1dGVf Y2hlY2tzdW0oYXN0cmVhbWVyICpzdHJlYW1lciwgYXN0cmVhbWVyX21lbWJlciAqbWVtYmVy LAogCW15c3RyZWFtZXItPmNoZWNrc3VtX2J5dGVzICs9IGxlbjsKIAogCS8qIEZlZWQgdGhl c2UgYnl0ZXMgdG8gdGhlIGNoZWNrc3VtIGNhbGN1bGF0aW9uLiAqLwotCWlmIChwZ19jaGVj a3N1bV91cGRhdGUoY2hlY2tzdW1fY3R4LCAodWludDggKikgZGF0YSwgbGVuKSA8IDApCisJ aWYgKHBnX2NoZWNrc3VtX3VwZGF0ZShjaGVja3N1bV9jdHgsIChjb25zdCB1aW50OCAqKSBk YXRhLCBsZW4pIDwgMCkKIAl7CiAJCXJlcG9ydF9iYWNrdXBfZXJyb3IobXlzdHJlYW1lci0+ Y29udGV4dCwKIAkJCQkJCQkiY291bGQgbm90IHVwZGF0ZSBjaGVja3N1bSBvZiBmaWxlIFwi JXNcIiIsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbHN1bW1hcnkvcGdfd2Fsc3VtbWFy eS5jIGIvc3JjL2Jpbi9wZ193YWxzdW1tYXJ5L3BnX3dhbHN1bW1hcnkuYwppbmRleCA3NDg1 MWY4NGY5Mi4uYWEyMTRiODYxNmQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2Fsc3VtbWFy eS9wZ193YWxzdW1tYXJ5LmMKKysrIGIvc3JjL2Jpbi9wZ193YWxzdW1tYXJ5L3BnX3dhbHN1 bW1hcnkuYwpAQCAtMjE3LDggKzIxNyw4IEBAIGR1bXBfb25lX3JlbGF0aW9uKHdzX29wdGlv bnMgKm9wdCwgUmVsRmlsZUxvY2F0b3IgKnJsb2NhdG9yLAogc3RhdGljIGludAogY29tcGFy ZV9ibG9ja19udW1iZXJzKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCiB7Ci0JQmxv Y2tOdW1iZXIgYWEgPSAqKEJsb2NrTnVtYmVyICopIGE7Ci0JQmxvY2tOdW1iZXIgYmIgPSAq KEJsb2NrTnVtYmVyICopIGI7CisJQmxvY2tOdW1iZXIgYWEgPSAqKGNvbnN0IEJsb2NrTnVt YmVyICopIGE7CisJQmxvY2tOdW1iZXIgYmIgPSAqKGNvbnN0IEJsb2NrTnVtYmVyICopIGI7 CiAKIAlyZXR1cm4gcGdfY21wX3UzMihhYSwgYmIpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Nv bW1vbi9zY3JhbS1jb21tb24uYyBiL3NyYy9jb21tb24vc2NyYW0tY29tbW9uLmMKaW5kZXgg ZGJmMTg4YWU4NzIuLjI1OWZhNTU1NGI2IDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL3NjcmFt LWNvbW1vbi5jCisrKyBiL3NyYy9jb21tb24vc2NyYW0tY29tbW9uLmMKQEAgLTYxLDcgKzYx LDcgQEAgc2NyYW1fU2FsdGVkUGFzc3dvcmQoY29uc3QgY2hhciAqcGFzc3dvcmQsCiAJICov CiAKIAkvKiBGaXJzdCBpdGVyYXRpb24gKi8KLQlpZiAocGdfaG1hY19pbml0KGhtYWNfY3R4 LCAodWludDggKikgcGFzc3dvcmQsIHBhc3N3b3JkX2xlbikgPCAwIHx8CisJaWYgKHBnX2ht YWNfaW5pdChobWFjX2N0eCwgKGNvbnN0IHVpbnQ4ICopIHBhc3N3b3JkLCBwYXNzd29yZF9s ZW4pIDwgMCB8fAogCQlwZ19obWFjX3VwZGF0ZShobWFjX2N0eCwgc2FsdCwgc2FsdGxlbikg PCAwIHx8CiAJCXBnX2htYWNfdXBkYXRlKGhtYWNfY3R4LCAodWludDggKikgJm9uZSwgc2l6 ZW9mKHVpbnQzMikpIDwgMCB8fAogCQlwZ19obWFjX2ZpbmFsKGhtYWNfY3R4LCBVaV9wcmV2 LCBrZXlfbGVuZ3RoKSA8IDApCkBAIC04NCw3ICs4NCw3IEBAIHNjcmFtX1NhbHRlZFBhc3N3 b3JkKGNvbnN0IGNoYXIgKnBhc3N3b3JkLAogCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOwog I2VuZGlmCiAKLQkJaWYgKHBnX2htYWNfaW5pdChobWFjX2N0eCwgKHVpbnQ4ICopIHBhc3N3 b3JkLCBwYXNzd29yZF9sZW4pIDwgMCB8fAorCQlpZiAocGdfaG1hY19pbml0KGhtYWNfY3R4 LCAoY29uc3QgdWludDggKikgcGFzc3dvcmQsIHBhc3N3b3JkX2xlbikgPCAwIHx8CiAJCQlw Z19obWFjX3VwZGF0ZShobWFjX2N0eCwgKHVpbnQ4ICopIFVpX3ByZXYsIGtleV9sZW5ndGgp IDwgMCB8fAogCQkJcGdfaG1hY19maW5hbChobWFjX2N0eCwgVWksIGtleV9sZW5ndGgpIDwg MCkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi91bmljb2RlX2Nhc2UuYyBiL3NyYy9j b21tb24vdW5pY29kZV9jYXNlLmMKaW5kZXggNzFhY2QzOGQ2ZmUuLjBiOGQzZmZjMGI0IDEw MDY0NAotLS0gYS9zcmMvY29tbW9uL3VuaWNvZGVfY2FzZS5jCisrKyBiL3NyYy9jb21tb24v dW5pY29kZV9jYXNlLmMKQEAgLTIzMSw3ICsyMzEsNyBAQCBjb252ZXJ0X2Nhc2UoY2hhciAq ZHN0LCBzaXplX3QgZHN0c2l6ZSwgY29uc3QgY2hhciAqc3JjLCBzc2l6ZV90IHNyY2xlbiwK IAogCXdoaWxlICgoc3JjbGVuIDwgMCB8fCBzcmNvZmYgPCBzcmNsZW4pICYmIHNyY1tzcmNv ZmZdICE9ICdcMCcpCiAJewotCQljaGFyMzJfdAl1MSA9IHV0ZjhfdG9fdW5pY29kZSgodW5z aWduZWQgY2hhciAqKSBzcmMgKyBzcmNvZmYpOworCQljaGFyMzJfdAl1MSA9IHV0ZjhfdG9f dW5pY29kZSgoY29uc3QgdW5zaWduZWQgY2hhciAqKSBzcmMgKyBzcmNvZmYpOwogCQlpbnQJ CQl1MWxlbiA9IHVuaWNvZGVfdXRmOGxlbih1MSk7CiAJCWNoYXIzMl90CXNpbXBsZSA9IDA7 CiAJCWNvbnN0IGNoYXIzMl90ICpzcGVjaWFsID0gTlVMTDsKQEAgLTM3Myw3ICszNzMsNyBA QCBjaGVja19zcGVjaWFsX2NvbmRpdGlvbnMoaW50IGNvbmRpdGlvbnMsIGNvbnN0IGNoYXIg KnN0ciwgc2l6ZV90IGxlbiwKIAlpZiAoY29uZGl0aW9ucyA9PSAwKQogCQlyZXR1cm4gdHJ1 ZTsKIAllbHNlIGlmIChjb25kaXRpb25zID09IFBHX1VfRklOQUxfU0lHTUEpCi0JCXJldHVy biBjaGVja19maW5hbF9zaWdtYSgodW5zaWduZWQgY2hhciAqKSBzdHIsIGxlbiwgb2Zmc2V0 KTsKKwkJcmV0dXJuIGNoZWNrX2ZpbmFsX3NpZ21hKChjb25zdCB1bnNpZ25lZCBjaGFyICop IHN0ciwgbGVuLCBvZmZzZXQpOwogCiAJLyogbm8gb3RoZXIgY29uZGl0aW9ucyBzdXBwb3J0 ZWQgKi8KIAlBc3NlcnQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L3R1cG1hY3MuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90dXBtYWNzLmgKaW5kZXggZTZkZjgy NjQ3NTAuLjNlNTUzMDY1OGM5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdHVw bWFjcy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90dXBtYWNzLmgKQEAgLTE5MCw3ICsx OTAsNyBAQCBmZXRjaF9hdHQoY29uc3Qgdm9pZCAqVCwgYm9vbCBhdHRieXZhbCwgaW50IGF0 dGxlbikKIAk6IFwKIAkoIFwKIAkJQXNzZXJ0TWFjcm8oKGF0dGxlbikgPT0gLTIpLCBcCi0J CShjdXJfb2Zmc2V0KSArIChzdHJsZW4oKGNoYXIgKikgKGF0dHB0cikpICsgMSkgXAorCQko Y3VyX29mZnNldCkgKyAoc3RybGVuKChjb25zdCBjaGFyICopIChhdHRwdHIpKSArIDEpIFwK IAkpKSBcCiApCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1vbi9oYXNoZm5fdW5z dGFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9oYXNoZm5fdW5zdGFibGUuaAppbmRleCA0 Mjg5MzZiOGI2NC4uMTEyMjVmYWFmZGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1v bi9oYXNoZm5fdW5zdGFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tb24vaGFzaGZuX3Vu c3RhYmxlLmgKQEAgLTI2NCw3ICsyNjQsNyBAQCBmYXN0aGFzaF9hY2N1bV9jc3RyaW5nX2Fs aWduZWQoZmFzdGhhc2hfc3RhdGUgKmhzLCBjb25zdCBjaGFyICpzdHIpCiAJICovCiAJZm9y ICg7OykKIAl7Ci0JCXVpbnQ2NAkJY2h1bmsgPSAqKHVpbnQ2NCAqKSBzdHI7CisJCXVpbnQ2 NAkJY2h1bmsgPSAqKGNvbnN0IHVpbnQ2NCAqKSBzdHI7CiAKIAkJemVyb19ieXRlX2xvdyA9 IGhhc3plcm82NChjaHVuayk7CiAJCWlmICh6ZXJvX2J5dGVfbG93KQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdXRpbHMvbWVtdXRpbHMuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL21lbXV0 aWxzLmgKaW5kZXggMmJjMTNjM2EwNTQuLjExYWIxNzE3YTE2IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS91dGlscy9tZW11dGlscy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL21lbXV0 aWxzLmgKQEAgLTI1Myw3ICsyNTMsNyBAQCBwZ19tZW1vcnlfaXNfYWxsX3plcm9zKGNvbnN0 IHZvaWQgKnB0ciwgc2l6ZV90IGxlbikKIAkJICovCiAJCWZvciAoOyBwIDwgYWxpZ25lZF9l bmQ7IHAgKz0gc2l6ZW9mKHNpemVfdCkpCiAJCXsKLQkJCWlmICgqKHNpemVfdCAqKSBwICE9 IDApCisJCQlpZiAoKihjb25zdCBzaXplX3QgKikgcCAhPSAwKQogCQkJCXJldHVybiBmYWxz ZTsKIAkJfQogCkBAIC0yOTAsMTAgKzI5MCwxMCBAQCBwZ19tZW1vcnlfaXNfYWxsX3plcm9z KGNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90IGxlbikKIAkgKi8KIAlmb3IgKDsgcCA8IGFsaWdu ZWRfZW5kIC0gKHNpemVvZihzaXplX3QpICogNyk7IHAgKz0gc2l6ZW9mKHNpemVfdCkgKiA4 KQogCXsKLQkJaWYgKCgoKHNpemVfdCAqKSBwKVswXSAhPSAwKSB8ICgoKHNpemVfdCAqKSBw KVsxXSAhPSAwKSB8Ci0JCQkoKChzaXplX3QgKikgcClbMl0gIT0gMCkgfCAoKChzaXplX3Qg KikgcClbM10gIT0gMCkgfAotCQkJKCgoc2l6ZV90ICopIHApWzRdICE9IDApIHwgKCgoc2l6 ZV90ICopIHApWzVdICE9IDApIHwKLQkJCSgoKHNpemVfdCAqKSBwKVs2XSAhPSAwKSB8ICgo KHNpemVfdCAqKSBwKVs3XSAhPSAwKSkKKwkJaWYgKCgoKGNvbnN0IHNpemVfdCAqKSBwKVsw XSAhPSAwKSB8ICgoKGNvbnN0IHNpemVfdCAqKSBwKVsxXSAhPSAwKSB8CisJCQkoKChjb25z dCBzaXplX3QgKikgcClbMl0gIT0gMCkgfCAoKChjb25zdCBzaXplX3QgKikgcClbM10gIT0g MCkgfAorCQkJKCgoY29uc3Qgc2l6ZV90ICopIHApWzRdICE9IDApIHwgKCgoY29uc3Qgc2l6 ZV90ICopIHApWzVdICE9IDApIHwKKwkJCSgoKGNvbnN0IHNpemVfdCAqKSBwKVs2XSAhPSAw KSB8ICgoKGNvbnN0IHNpemVfdCAqKSBwKVs3XSAhPSAwKSkKIAkJCXJldHVybiBmYWxzZTsK IAl9CiAKQEAgLTMwNSw3ICszMDUsNyBAQCBwZ19tZW1vcnlfaXNfYWxsX3plcm9zKGNvbnN0 IHZvaWQgKnB0ciwgc2l6ZV90IGxlbikKIAkgKi8KIAlmb3IgKDsgcCA8IGFsaWduZWRfZW5k OyBwICs9IHNpemVvZihzaXplX3QpKQogCXsKLQkJaWYgKCooc2l6ZV90ICopIHAgIT0gMCkK KwkJaWYgKCooY29uc3Qgc2l6ZV90ICopIHAgIT0gMCkKIAkJCXJldHVybiBmYWxzZTsKIAl9 CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3ZhcmF0dC5oIGIvc3JjL2luY2x1ZGUvdmFy YXR0LmgKaW5kZXggZWNjZDNjYTA0ZDYuLjAzZTlkMTg2OWFhIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS92YXJhdHQuaAorKysgYi9zcmMvaW5jbHVkZS92YXJhdHQuaApAQCAtMTkzLDI1 ICsxOTMsMjUgQEAgdHlwZWRlZiBzdHJ1Y3QKICNpZmRlZiBXT1JEU19CSUdFTkRJQU4KIAog I2RlZmluZSBWQVJBVFRfSVNfNEIoUFRSKSBcCi0JKCgoKHZhcmF0dHJpYl8xYiAqKSAoUFRS KSktPnZhX2hlYWRlciAmIDB4ODApID09IDB4MDApCisJKCgoKGNvbnN0IHZhcmF0dHJpYl8x YiAqKSAoUFRSKSktPnZhX2hlYWRlciAmIDB4ODApID09IDB4MDApCiAjZGVmaW5lIFZBUkFU VF9JU180Ql9VKFBUUikgXAotCSgoKCh2YXJhdHRyaWJfMWIgKikgKFBUUikpLT52YV9oZWFk ZXIgJiAweEMwKSA9PSAweDAwKQorCSgoKChjb25zdCB2YXJhdHRyaWJfMWIgKikgKFBUUikp LT52YV9oZWFkZXIgJiAweEMwKSA9PSAweDAwKQogI2RlZmluZSBWQVJBVFRfSVNfNEJfQyhQ VFIpIFwKLQkoKCgodmFyYXR0cmliXzFiICopIChQVFIpKS0+dmFfaGVhZGVyICYgMHhDMCkg PT0gMHg0MCkKKwkoKCgoY29uc3QgdmFyYXR0cmliXzFiICopIChQVFIpKS0+dmFfaGVhZGVy ICYgMHhDMCkgPT0gMHg0MCkKICNkZWZpbmUgVkFSQVRUX0lTXzFCKFBUUikgXAotCSgoKCh2 YXJhdHRyaWJfMWIgKikgKFBUUikpLT52YV9oZWFkZXIgJiAweDgwKSA9PSAweDgwKQorCSgo KChjb25zdCB2YXJhdHRyaWJfMWIgKikgKFBUUikpLT52YV9oZWFkZXIgJiAweDgwKSA9PSAw eDgwKQogI2RlZmluZSBWQVJBVFRfSVNfMUJfRShQVFIpIFwKLQkoKCgodmFyYXR0cmliXzFi ICopIChQVFIpKS0+dmFfaGVhZGVyKSA9PSAweDgwKQorCSgoKChjb25zdCB2YXJhdHRyaWJf MWIgKikgKFBUUikpLT52YV9oZWFkZXIpID09IDB4ODApCiAjZGVmaW5lIFZBUkFUVF9OT1Rf UEFEX0JZVEUoUFRSKSBcCi0JKCooKHVpbnQ4ICopIChQVFIpKSAhPSAwKQorCSgqKChjb25z dCB1aW50OCAqKSAoUFRSKSkgIT0gMCkKIAogLyogVkFSU0laRV80QigpIHNob3VsZCBvbmx5 IGJlIHVzZWQgb24ga25vd24tYWxpZ25lZCBkYXRhICovCiAjZGVmaW5lIFZBUlNJWkVfNEIo UFRSKSBcCi0JKCgodmFyYXR0cmliXzRiICopIChQVFIpKS0+dmFfNGJ5dGUudmFfaGVhZGVy ICYgMHgzRkZGRkZGRikKKwkoKChjb25zdCB2YXJhdHRyaWJfNGIgKikgKFBUUikpLT52YV80 Ynl0ZS52YV9oZWFkZXIgJiAweDNGRkZGRkZGKQogI2RlZmluZSBWQVJTSVpFXzFCKFBUUikg XAotCSgoKHZhcmF0dHJpYl8xYiAqKSAoUFRSKSktPnZhX2hlYWRlciAmIDB4N0YpCisJKCgo Y29uc3QgdmFyYXR0cmliXzFiICopIChQVFIpKS0+dmFfaGVhZGVyICYgMHg3RikKICNkZWZp bmUgVkFSVEFHXzFCX0UoUFRSKSBcCi0JKCh2YXJ0YWdfZXh0ZXJuYWwpICgodmFyYXR0cmli XzFiX2UgKikgKFBUUikpLT52YV90YWcpCisJKCh2YXJ0YWdfZXh0ZXJuYWwpICgoY29uc3Qg dmFyYXR0cmliXzFiX2UgKikgKFBUUikpLT52YV90YWcpCiAKICNkZWZpbmUgU0VUX1ZBUlNJ WkVfNEIoUFRSLGxlbikgXAogCSgoKHZhcmF0dHJpYl80YiAqKSAoUFRSKSktPnZhXzRieXRl LnZhX2hlYWRlciA9IChsZW4pICYgMHgzRkZGRkZGRikKQEAgLTIyNiwyNSArMjI2LDI1IEBA IHR5cGVkZWYgc3RydWN0CiAjZWxzZQkJCQkJCQkvKiAhV09SRFNfQklHRU5ESUFOICovCiAK ICNkZWZpbmUgVkFSQVRUX0lTXzRCKFBUUikgXAotCSgoKCh2YXJhdHRyaWJfMWIgKikgKFBU UikpLT52YV9oZWFkZXIgJiAweDAxKSA9PSAweDAwKQorCSgoKChjb25zdCB2YXJhdHRyaWJf MWIgKikgKFBUUikpLT52YV9oZWFkZXIgJiAweDAxKSA9PSAweDAwKQogI2RlZmluZSBWQVJB VFRfSVNfNEJfVShQVFIpIFwKLQkoKCgodmFyYXR0cmliXzFiICopIChQVFIpKS0+dmFfaGVh ZGVyICYgMHgwMykgPT0gMHgwMCkKKwkoKCgoY29uc3QgdmFyYXR0cmliXzFiICopIChQVFIp KS0+dmFfaGVhZGVyICYgMHgwMykgPT0gMHgwMCkKICNkZWZpbmUgVkFSQVRUX0lTXzRCX0Mo UFRSKSBcCi0JKCgoKHZhcmF0dHJpYl8xYiAqKSAoUFRSKSktPnZhX2hlYWRlciAmIDB4MDMp ID09IDB4MDIpCisJKCgoKGNvbnN0IHZhcmF0dHJpYl8xYiAqKSAoUFRSKSktPnZhX2hlYWRl ciAmIDB4MDMpID09IDB4MDIpCiAjZGVmaW5lIFZBUkFUVF9JU18xQihQVFIpIFwKLQkoKCgo dmFyYXR0cmliXzFiICopIChQVFIpKS0+dmFfaGVhZGVyICYgMHgwMSkgPT0gMHgwMSkKKwko KCgoY29uc3QgdmFyYXR0cmliXzFiICopIChQVFIpKS0+dmFfaGVhZGVyICYgMHgwMSkgPT0g MHgwMSkKICNkZWZpbmUgVkFSQVRUX0lTXzFCX0UoUFRSKSBcCi0JKCgoKHZhcmF0dHJpYl8x YiAqKSAoUFRSKSktPnZhX2hlYWRlcikgPT0gMHgwMSkKKwkoKCgoY29uc3QgdmFyYXR0cmli XzFiICopIChQVFIpKS0+dmFfaGVhZGVyKSA9PSAweDAxKQogI2RlZmluZSBWQVJBVFRfTk9U X1BBRF9CWVRFKFBUUikgXAotCSgqKCh1aW50OCAqKSAoUFRSKSkgIT0gMCkKKwkoKigoY29u c3QgdWludDggKikgKFBUUikpICE9IDApCiAKIC8qIFZBUlNJWkVfNEIoKSBzaG91bGQgb25s eSBiZSB1c2VkIG9uIGtub3duLWFsaWduZWQgZGF0YSAqLwogI2RlZmluZSBWQVJTSVpFXzRC KFBUUikgXAotCSgoKCh2YXJhdHRyaWJfNGIgKikgKFBUUikpLT52YV80Ynl0ZS52YV9oZWFk ZXIgPj4gMikgJiAweDNGRkZGRkZGKQorCSgoKChjb25zdCB2YXJhdHRyaWJfNGIgKikgKFBU UikpLT52YV80Ynl0ZS52YV9oZWFkZXIgPj4gMikgJiAweDNGRkZGRkZGKQogI2RlZmluZSBW QVJTSVpFXzFCKFBUUikgXAotCSgoKCh2YXJhdHRyaWJfMWIgKikgKFBUUikpLT52YV9oZWFk ZXIgPj4gMSkgJiAweDdGKQorCSgoKChjb25zdCB2YXJhdHRyaWJfMWIgKikgKFBUUikpLT52 YV9oZWFkZXIgPj4gMSkgJiAweDdGKQogI2RlZmluZSBWQVJUQUdfMUJfRShQVFIpIFwKLQko KHZhcnRhZ19leHRlcm5hbCkgKCh2YXJhdHRyaWJfMWJfZSAqKSAoUFRSKSktPnZhX3RhZykK KwkoKHZhcnRhZ19leHRlcm5hbCkgKChjb25zdCB2YXJhdHRyaWJfMWJfZSAqKSAoUFRSKSkt PnZhX3RhZykKIAogI2RlZmluZSBTRVRfVkFSU0laRV80QihQVFIsbGVuKSBcCiAJKCgodmFy YXR0cmliXzRiICopIChQVFIpKS0+dmFfNGJ5dGUudmFfaGVhZGVyID0gKCgodWludDMyKSAo bGVuKSkgPDwgMikpCkBAIC0yNTgsMTAgKzI1OCwxMCBAQCB0eXBlZGVmIHN0cnVjdAogCiAj ZW5kaWYJCQkJCQkJLyogV09SRFNfQklHRU5ESUFOICovCiAKLSNkZWZpbmUgVkFSREFUQV80 QihQVFIpCQkoKCh2YXJhdHRyaWJfNGIgKikgKFBUUikpLT52YV80Ynl0ZS52YV9kYXRhKQot I2RlZmluZSBWQVJEQVRBXzRCX0MoUFRSKQkoKCh2YXJhdHRyaWJfNGIgKikgKFBUUikpLT52 YV9jb21wcmVzc2VkLnZhX2RhdGEpCi0jZGVmaW5lIFZBUkRBVEFfMUIoUFRSKQkJKCgodmFy YXR0cmliXzFiICopIChQVFIpKS0+dmFfZGF0YSkKLSNkZWZpbmUgVkFSREFUQV8xQl9FKFBU UikJKCgodmFyYXR0cmliXzFiX2UgKikgKFBUUikpLT52YV9kYXRhKQorI2RlZmluZSBWQVJE QVRBXzRCKFBUUikJCSgoKGNvbnN0IHZhcmF0dHJpYl80YiAqKSAoUFRSKSktPnZhXzRieXRl LnZhX2RhdGEpCisjZGVmaW5lIFZBUkRBVEFfNEJfQyhQVFIpCSgoKGNvbnN0IHZhcmF0dHJp Yl80YiAqKSAoUFRSKSktPnZhX2NvbXByZXNzZWQudmFfZGF0YSkKKyNkZWZpbmUgVkFSREFU QV8xQihQVFIpCQkoKChjb25zdCB2YXJhdHRyaWJfMWIgKikgKFBUUikpLT52YV9kYXRhKQor I2RlZmluZSBWQVJEQVRBXzFCX0UoUFRSKQkoKChjb25zdCB2YXJhdHRyaWJfMWJfZSAqKSAo UFRSKSktPnZhX2RhdGEpCiAKIC8qCiAgKiBFeHRlcm5hbGx5IHZpc2libGUgVE9BU1QgZnVu Y3Rpb25zIGFuZCBtYWNyb3MgYmVnaW4gaGVyZS4gIEFsbCBvZiB0aGVzZQpAQCAtNDkyLDE0 ICs0OTIsMTQgQEAgVkFSREFUQV9BTlkoY29uc3Qgdm9pZCAqUFRSKQogc3RhdGljIGlubGlu ZSBTaXplCiBWQVJEQVRBX0NPTVBSRVNTRURfR0VUX0VYVFNJWkUoY29uc3Qgdm9pZCAqUFRS KQogewotCXJldHVybiAoKHZhcmF0dHJpYl80YiAqKSBQVFIpLT52YV9jb21wcmVzc2VkLnZh X3RjaW5mbyAmIFZBUkxFTkFfRVhUU0laRV9NQVNLOworCXJldHVybiAoKGNvbnN0IHZhcmF0 dHJpYl80YiAqKSBQVFIpLT52YV9jb21wcmVzc2VkLnZhX3RjaW5mbyAmIFZBUkxFTkFfRVhU U0laRV9NQVNLOwogfQogCiAvKiBDb21wcmVzc2lvbiBtZXRob2Qgb2YgYSBjb21wcmVzc2Vk LWluLWxpbmUgdmFybGVuYSBkYXR1bSAqLwogc3RhdGljIGlubGluZSB1aW50MzIKIFZBUkRB VEFfQ09NUFJFU1NFRF9HRVRfQ09NUFJFU1NfTUVUSE9EKGNvbnN0IHZvaWQgKlBUUikKIHsK LQlyZXR1cm4gKCh2YXJhdHRyaWJfNGIgKikgUFRSKS0+dmFfY29tcHJlc3NlZC52YV90Y2lu Zm8gPj4gVkFSTEVOQV9FWFRTSVpFX0JJVFM7CisJcmV0dXJuICgoY29uc3QgdmFyYXR0cmli XzRiICopIFBUUiktPnZhX2NvbXByZXNzZWQudmFfdGNpbmZvID4+IFZBUkxFTkFfRVhUU0la RV9CSVRTOwogfQogCiAvKiBTYW1lIGZvciBleHRlcm5hbCBEYXR1bXM7IGJ1dCBub3RlIGFy Z3VtZW50IGlzIGEgc3RydWN0IHZhcmF0dF9leHRlcm5hbCAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1zY3JhbS5jIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtYXV0aC1zY3JhbS5jCmluZGV4IDA1MjczYzkxZjk4Li45OTEwM2I3ZTJiNiAxMDA2 NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1zY3JhbS5jCisrKyBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgtc2NyYW0uYwpAQCAtODE5LDcgKzgxOSw3IEBA IGNhbGN1bGF0ZV9jbGllbnRfcHJvb2YoZmVfc2NyYW1fc3RhdGUgKnN0YXRlLAogCQkJCQkg ICBzdHJsZW4oc3RhdGUtPnNlcnZlcl9maXJzdF9tZXNzYWdlKSkgPCAwIHx8CiAJCXBnX2ht YWNfdXBkYXRlKGN0eCwgKHVpbnQ4ICopICIsIiwgMSkgPCAwIHx8CiAJCXBnX2htYWNfdXBk YXRlKGN0eCwKLQkJCQkJICAgKHVpbnQ4ICopIGNsaWVudF9maW5hbF9tZXNzYWdlX3dpdGhv dXRfcHJvb2YsCisJCQkJCSAgIChjb25zdCB1aW50OCAqKSBjbGllbnRfZmluYWxfbWVzc2Fn ZV93aXRob3V0X3Byb29mLAogCQkJCQkgICBzdHJsZW4oY2xpZW50X2ZpbmFsX21lc3NhZ2Vf d2l0aG91dF9wcm9vZikpIDwgMCB8fAogCQlwZ19obWFjX2ZpbmFsKGN0eCwgQ2xpZW50U2ln bmF0dXJlLCBzdGF0ZS0+a2V5X2xlbmd0aCkgPCAwKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGguYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1 dGguYwppbmRleCBmMDhkYjMwZGJiNy4uZjA1YWFlYTk2NTEgMTAwNjQ0Ci0tLSBhL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGguYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1hdXRoLmMKQEAgLTEzNjksNyArMTM2OSw3IEBAIFBRZW5jcnlwdFBhc3N3b3JkKGNvbnN0 IGNoYXIgKnBhc3N3ZCwgY29uc3QgY2hhciAqdXNlcikKIAlpZiAoIWNyeXB0X3B3ZCkKIAkJ cmV0dXJuIE5VTEw7CiAKLQlpZiAoIXBnX21kNV9lbmNyeXB0KHBhc3N3ZCwgKHVpbnQ4ICop IHVzZXIsIHN0cmxlbih1c2VyKSwgY3J5cHRfcHdkLCAmZXJyc3RyKSkKKwlpZiAoIXBnX21k NV9lbmNyeXB0KHBhc3N3ZCwgKGNvbnN0IHVpbnQ4ICopIHVzZXIsIHN0cmxlbih1c2VyKSwg Y3J5cHRfcHdkLCAmZXJyc3RyKSkKIAl7CiAJCWZyZWUoY3J5cHRfcHdkKTsKIAkJcmV0dXJu IE5VTEw7CkBAIC0xNDgyLDcgKzE0ODIsNyBAQCBQUWVuY3J5cHRQYXNzd29yZENvbm4oUEdj b25uICpjb25uLCBjb25zdCBjaGFyICpwYXNzd2QsIGNvbnN0IGNoYXIgKnVzZXIsCiAJCXsK IAkJCWNvbnN0IGNoYXIgKmVycnN0ciA9IE5VTEw7CiAKLQkJCWlmICghcGdfbWQ1X2VuY3J5 cHQocGFzc3dkLCAodWludDggKikgdXNlciwgc3RybGVuKHVzZXIpLCBjcnlwdF9wd2QsICZl cnJzdHIpKQorCQkJaWYgKCFwZ19tZDVfZW5jcnlwdChwYXNzd2QsIChjb25zdCB1aW50OCAq KSB1c2VyLCBzdHJsZW4odXNlciksIGNyeXB0X3B3ZCwgJmVycnN0cikpCiAJCQl7CiAJCQkJ bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBlbmNyeXB0IHBhc3N3 b3JkOiAlcyIsIGVycnN0cik7CiAJCQkJZnJlZShjcnlwdF9wd2QpOwpkaWZmIC0tZ2l0IGEv c3JjL3BvcnQvcGdfY3JjMzJjX2FybXY4LmMgYi9zcmMvcG9ydC9wZ19jcmMzMmNfYXJtdjgu YwppbmRleCAwMzk5ODZjN2IzMy4uOWNhMGY3MjhkMzkgMTAwNjQ0Ci0tLSBhL3NyYy9wb3J0 L3BnX2NyYzMyY19hcm12OC5jCisrKyBiL3NyYy9wb3J0L3BnX2NyYzMyY19hcm12OC5jCkBA IC00MiwzMiArNDIsMzIgQEAgcGdfY29tcF9jcmMzMmNfYXJtdjgocGdfY3JjMzJjIGNyYywg Y29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikKIAlpZiAoIVBvaW50ZXJJc0FsaWduZWQo cCwgdWludDMyKSAmJgogCQlwICsgMiA8PSBwZW5kKQogCXsKLQkJY3JjID0gX19jcmMzMmNo KGNyYywgKih1aW50MTYgKikgcCk7CisJCWNyYyA9IF9fY3JjMzJjaChjcmMsICooY29uc3Qg dWludDE2ICopIHApOwogCQlwICs9IDI7CiAJfQogCWlmICghUG9pbnRlcklzQWxpZ25lZChw LCB1aW50NjQpICYmCiAJCXAgKyA0IDw9IHBlbmQpCiAJewotCQljcmMgPSBfX2NyYzMyY3co Y3JjLCAqKHVpbnQzMiAqKSBwKTsKKwkJY3JjID0gX19jcmMzMmN3KGNyYywgKihjb25zdCB1 aW50MzIgKikgcCk7CiAJCXAgKz0gNDsKIAl9CiAKIAkvKiBQcm9jZXNzIGVpZ2h0IGJ5dGVz IGF0IGEgdGltZSwgYXMgZmFyIGFzIHdlIGNhbi4gKi8KIAl3aGlsZSAocCArIDggPD0gcGVu ZCkKIAl7Ci0JCWNyYyA9IF9fY3JjMzJjZChjcmMsICoodWludDY0ICopIHApOworCQljcmMg PSBfX2NyYzMyY2QoY3JjLCAqKGNvbnN0IHVpbnQ2NCAqKSBwKTsKIAkJcCArPSA4OwogCX0K IAogCS8qIFByb2Nlc3MgcmVtYWluaW5nIDAtNyBieXRlcy4gKi8KIAlpZiAocCArIDQgPD0g cGVuZCkKIAl7Ci0JCWNyYyA9IF9fY3JjMzJjdyhjcmMsICoodWludDMyICopIHApOworCQlj cmMgPSBfX2NyYzMyY3coY3JjLCAqKGNvbnN0IHVpbnQzMiAqKSBwKTsKIAkJcCArPSA0Owog CX0KIAlpZiAocCArIDIgPD0gcGVuZCkKIAl7Ci0JCWNyYyA9IF9fY3JjMzJjaChjcmMsICoo dWludDE2ICopIHApOworCQljcmMgPSBfX2NyYzMyY2goY3JjLCAqKGNvbnN0IHVpbnQxNiAq KSBwKTsKIAkJcCArPSAyOwogCX0KIAlpZiAocCA8IHBlbmQpCmRpZmYgLS1naXQgYS9zcmMv cG9ydC9wZ19wb3Bjb3VudF9hYXJjaDY0LmMgYi9zcmMvcG9ydC9wZ19wb3Bjb3VudF9hYXJj aDY0LmMKaW5kZXggY2RhNzNjZjYwODguLjdjMjQ4YmE3NTYxIDEwMDY0NAotLS0gYS9zcmMv cG9ydC9wZ19wb3Bjb3VudF9hYXJjaDY0LmMKKysrIGIvc3JjL3BvcnQvcGdfcG9wY291bnRf YWFyY2g2NC5jCkBAIC0zODMsNyArMzgzLDcgQEAgcGdfcG9wY291bnRfbmVvbihjb25zdCBj aGFyICpidWYsIGludCBieXRlcykKIAkgKi8KIAlmb3IgKDsgYnl0ZXMgPj0gc2l6ZW9mKHVp bnQ2NCk7IGJ5dGVzIC09IHNpemVvZih1aW50NjQpKQogCXsKLQkJcG9wY250ICs9IHBnX3Bv cGNvdW50NjQoKigodWludDY0ICopIGJ1ZikpOworCQlwb3BjbnQgKz0gcGdfcG9wY291bnQ2 NCgqKChjb25zdCB1aW50NjQgKikgYnVmKSk7CiAJCWJ1ZiArPSBzaXplb2YodWludDY0KTsK IAl9CiAKQEAgLTQ2NSw3ICs0NjUsNyBAQCBwZ19wb3Bjb3VudF9tYXNrZWRfbmVvbihjb25z dCBjaGFyICpidWYsIGludCBieXRlcywgYml0czggbWFzaykKIAkgKi8KIAlmb3IgKDsgYnl0 ZXMgPj0gc2l6ZW9mKHVpbnQ2NCk7IGJ5dGVzIC09IHNpemVvZih1aW50NjQpKQogCXsKLQkJ cG9wY250ICs9IHBnX3BvcGNvdW50NjQoKigodWludDY0ICopIGJ1ZikgJiBtYXNrNjQpOwor CQlwb3BjbnQgKz0gcGdfcG9wY291bnQ2NCgqKChjb25zdCB1aW50NjQgKikgYnVmKSAmIG1h c2s2NCk7CiAJCWJ1ZiArPSBzaXplb2YodWludDY0KTsKIAl9CiAKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb250ZXN0ZXIuYyBiL3NyYy90ZXN0L2lzb2xhdGlv bi9pc29sYXRpb250ZXN0ZXIuYwppbmRleCBlMDFjMGM5ZGU5My4uYTBhZWMwNGQ5OTQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb250ZXN0ZXIuYworKysgYi9z cmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9udGVzdGVyLmMKQEAgLTQ5OCw4ICs0OTgsOCBA QCBydW5fbmFtZWRfcGVybXV0YXRpb25zKFRlc3RTcGVjICp0ZXN0c3BlYykKIHN0YXRpYyBp bnQKIHN0ZXBfcXNvcnRfY21wKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCiB7Ci0J U3RlcAkgICAqc3RlcGEgPSAqKChTdGVwICoqKSBhKTsKLQlTdGVwCSAgICpzdGVwYiA9ICoo KFN0ZXAgKiopIGIpOworCVN0ZXAJICAgKnN0ZXBhID0gKigoU3RlcCAqY29uc3QgKikgYSk7 CisJU3RlcAkgICAqc3RlcGIgPSAqKChTdGVwICpjb25zdCAqKSBiKTsKIAogCXJldHVybiBz dHJjbXAoc3RlcGEtPm5hbWUsIHN0ZXBiLT5uYW1lKTsKIH0KQEAgLTUwNyw4ICs1MDcsOCBA QCBzdGVwX3Fzb3J0X2NtcChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQogc3RhdGlj IGludAogc3RlcF9ic2VhcmNoX2NtcChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQog ewotCWNoYXIJICAgKnN0ZXBuYW1lID0gKGNoYXIgKikgYTsKLQlTdGVwCSAgICpzdGVwID0g KigoU3RlcCAqKikgYik7CisJY29uc3QgY2hhciAqc3RlcG5hbWUgPSAoY29uc3QgY2hhciAq KSBhOworCVN0ZXAJICAgKnN0ZXAgPSAqKChTdGVwICpjb25zdCAqKSBiKTsKIAogCXJldHVy biBzdHJjbXAoc3RlcG5hbWUsIHN0ZXAtPm5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS9saWJwcV9waXBlbGluZS5jIGIvc3JjL3Rlc3Qv bW9kdWxlcy9saWJwcV9waXBlbGluZS9saWJwcV9waXBlbGluZS5jCmluZGV4IDAzMzcxNzIx NDYwLi40YTliYjY1YjliYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9w aXBlbGluZS9saWJwcV9waXBlbGluZS5jCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFf cGlwZWxpbmUvbGlicHFfcGlwZWxpbmUuYwpAQCAtMTU3Niw3ICsxNTc2LDcgQEAgdGVzdF9z aW5nbGVyb3dtb2RlKFBHY29ubiAqY29ubikKIAkJCQkJCQkgICJTRUxFQ1QgZ2VuZXJhdGVf c2VyaWVzKDQyLCAkMSkiLAogCQkJCQkJCSAgMSwKIAkJCQkJCQkgIE5VTEwsCi0JCQkJCQkJ ICAoY29uc3QgY2hhciAqKikgcGFyYW0sCisJCQkJCQkJICAoY29uc3QgY2hhciAqY29uc3Qg KikgcGFyYW0sCiAJCQkJCQkJICBOVUxMLAogCQkJCQkJCSAgTlVMTCwKIAkJCQkJCQkgIDAp ICE9IDEpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfdGlkc3RvcmUvdGVz dF90aWRzdG9yZS5jIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3RpZHN0b3JlL3Rlc3RfdGlk c3RvcmUuYwppbmRleCA5YTNhMjA5ZGEwYi4uYzlhMDM1ZmE0OTQgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF90aWRzdG9yZS90ZXN0X3RpZHN0b3JlLmMKKysrIGIvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X3RpZHN0b3JlL3Rlc3RfdGlkc3RvcmUuYwpAQCAtNTYsMTYg KzU2LDE2IEBAIGl0ZW1wdHJfY21wKGNvbnN0IHZvaWQgKmxlZnQsIGNvbnN0IHZvaWQgKnJp Z2h0KQogCU9mZnNldE51bWJlciBsb2ZmLAogCQkJCXJvZmY7CiAKLQlsYmxrID0gSXRlbVBv aW50ZXJHZXRCbG9ja051bWJlcigoSXRlbVBvaW50ZXIpIGxlZnQpOwotCXJibGsgPSBJdGVt UG9pbnRlckdldEJsb2NrTnVtYmVyKChJdGVtUG9pbnRlcikgcmlnaHQpOworCWxibGsgPSBJ dGVtUG9pbnRlckdldEJsb2NrTnVtYmVyKChjb25zdCBJdGVtUG9pbnRlckRhdGEgKikgbGVm dCk7CisJcmJsayA9IEl0ZW1Qb2ludGVyR2V0QmxvY2tOdW1iZXIoKGNvbnN0IEl0ZW1Qb2lu dGVyRGF0YSAqKSByaWdodCk7CiAKIAlpZiAobGJsayA8IHJibGspCiAJCXJldHVybiAtMTsK IAlpZiAobGJsayA+IHJibGspCiAJCXJldHVybiAxOwogCi0JbG9mZiA9IEl0ZW1Qb2ludGVy R2V0T2Zmc2V0TnVtYmVyKChJdGVtUG9pbnRlcikgbGVmdCk7Ci0Jcm9mZiA9IEl0ZW1Qb2lu dGVyR2V0T2Zmc2V0TnVtYmVyKChJdGVtUG9pbnRlcikgcmlnaHQpOworCWxvZmYgPSBJdGVt UG9pbnRlckdldE9mZnNldE51bWJlcigoY29uc3QgSXRlbVBvaW50ZXJEYXRhICopIGxlZnQp OworCXJvZmYgPSBJdGVtUG9pbnRlckdldE9mZnNldE51bWJlcigoY29uc3QgSXRlbVBvaW50 ZXJEYXRhICopIHJpZ2h0KTsKIAogCWlmIChsb2ZmIDwgcm9mZikKIAkJcmV0dXJuIC0xOwot LSAKMi41Mi4wCgo= --------------kUIyB2BTMQSNcbXKdwq8q0O0--