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 1n2ryQ-0000cd-Ly for pgsql-hackers@arkaria.postgresql.org; Thu, 30 Dec 2021 09:43:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1n2ryO-0005Qj-Sn for pgsql-hackers@arkaria.postgresql.org; Thu, 30 Dec 2021 09:43:48 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n2ryO-0005Qa-4s for pgsql-hackers@lists.postgresql.org; Thu, 30 Dec 2021 09:43:48 +0000 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n2ryD-0001Hp-Pi for pgsql-hackers@postgresql.org; Thu, 30 Dec 2021 09:43:46 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 205B23200F81; Thu, 30 Dec 2021 04:43:35 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Thu, 30 Dec 2021 04:43:35 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc: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=fm1; bh=wsn5j+ yHmowcCH7mK5L7AZS5SbHne0NA3wKSKSLOfs0=; b=VlEip0VdxLBJ9/rTn4D67g ychuH4bKm8c+4NMkuditFW1hkSLMQIMjL2MA1YfnXpUCp78xCNs0nMx0tC2ECQ7v GEo8WQfrmhzXzUmXK3m0KD99YpgPoxscPrPfznpSwcvUp5lCpxpCXaTP0WCWfGvE Sh8A1mMp27npmzMmLUG2/DcIguJVNND3cKipJRNwnw+LeMAb+L01b8Vz2wSoD2vB +rGKCj0ifDnAJTGz2+pOT2JSlhv2gTN+/kYO/ybLMIBchAcsXoyEVcIATZobAqOG LPmVcCGxC57/WaslMOpXiBa67+TN6zhsJNz6TCyJZB+FDe4qulaUAS0fD9vJrRBg == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddruddvfedgtdejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptgfkffggfgfuhffvfhgjsehmtderredtfeejnecuhfhrohhmpefrvghtvghr ucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgvihhsvghnthhrrghuthesvghnthgvrh hprhhishgvuggsrdgtohhmqeenucggtffrrghtthgvrhhnpeekkeefheejkedugfevtdet feeuvedtheffffetkeeffffgffevhedvkeeiveeuleenucffohhmrghinhepphhgtgdrlh gsnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgv thgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 30 Dec 2021 04:43:32 -0500 (EST) Content-Type: multipart/mixed; boundary="------------DlbcwxvzFIE30L5TyUyoLRwk" Message-ID: <577603ec-787b-61b8-23a2-1bd0457ed1c7@enterprisedb.com> Date: Thu, 30 Dec 2021 10:43:30 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 Subject: Re: Non-decimal integer literals Content-Language: en-US From: Peter Eisentraut To: John Naylor Cc: pgsql-hackers References: <3260805.1631106874@sss.pgh.pa.us> <8f2cdc30-350a-9782-8d95-6865a4ccb857@postgresfriends.org> <31bba70a-f5a8-9276-37a6-fa6f2c4eee6c@enterprisedb.com> <0d895aa8-d1de-3637-9ad4-de0269918e77@enterprisedb.com> <0f37d2ec-6689-4d23-7ba5-4d2a73c2666f@enterprisedb.com> In-Reply-To: <0f37d2ec-6689-4d23-7ba5-4d2a73c2666f@enterprisedb.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------DlbcwxvzFIE30L5TyUyoLRwk Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit There has been some other refactoring going on, which made this patch set out of date. So here is an update. The old pg_strtouint64() has been removed, so there is no longer a naming concern with patch 0001. That one should be good to go. I also found that yet another way to parse integers in pg_atoi() has mostly faded away in utility, so I removed the last two callers and removed the function in 0002 and 0003. The remaining patches are as before, with some of the review comments applied. I still need to write some lexing unit tests for ecpg, which I haven't gotten to yet. This affects patches 0004 and 0005. As mentioned before, patches 0006 and 0007 are more feature previews at this point. On 01.12.21 16:47, Peter Eisentraut wrote: > On 25.11.21 18:51, John Naylor wrote: >> If we're going to change the comment anyway, "the parser" sounds more >> natural. Aside from that, 0001 and 0002 can probably be pushed now, if >> you like. > > done > >> --- a/src/interfaces/ecpg/preproc/pgc.l >> +++ b/src/interfaces/ecpg/preproc/pgc.l >> @@ -365,6 +365,10 @@ real ({integer}|{decimal})[Ee][-+]?{digit}+ >>   realfail1 ({integer}|{decimal})[Ee] >>   realfail2 ({integer}|{decimal})[Ee][-+] >> >> +integer_junk {integer}{ident_start} >> +decimal_junk {decimal}{ident_start} >> +real_junk {real}{ident_start} >> >> A comment might be good here to explain these are only in ECPG for >> consistency with the other scanners. Not really important, though. > > Yeah, it's a bit weird that not all the symbols are used in ecpg.  I'll > look into explaining this better. > >> 0006 >> >> +{hexfail} { >> + yyerror("invalid hexadecimal integer"); >> + } >> +{octfail} { >> + yyerror("invalid octal integer"); >>    } >> -{decimal} { >> +{binfail} { >> + yyerror("invalid binary integer"); >> + } >> >> It seems these could use SET_YYLLOC(), since the error cursor doesn't >> match other failure states: > > ok > >> We might consider some tests for ECPG since lack of coverage has been >> a problem. > > right > >> Also, I'm curious: how does the spec work as far as deciding the year >> of release, or feature-freezing of new items? > > The schedule has recently been extended again, so the current plan is > for SQL:202x with x=3, with feature freeze in mid-2022. > > So the feature patches in this thread are in my mind now targeting > PG15+1.  But the preparation work (up to v5-0005, and some other number > parsing refactoring that I'm seeing) could be considered for PG15. > > I'll move this to the next CF and come back with an updated patch set in > a little while. > > --------------DlbcwxvzFIE30L5TyUyoLRwk Content-Type: text/plain; charset=UTF-8; name="v6-0001-Move-scanint8-to-numutils.c.patch" Content-Disposition: attachment; filename="v6-0001-Move-scanint8-to-numutils.c.patch" Content-Transfer-Encoding: base64 RnJvbSA0YWExMzI5YzNhYWQ1MTJmMzNhNTZhMDVmY2M0NjU3OTNlZjE5YjFkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAzMCBEZWMgMjAyMSAxMDoyNjozNyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgMS83XSBNb3ZlIHNjYW5pbnQ4KCkgdG8gbnVtdXRpbHMuYwoKTW92ZSBz Y2FuaW50OCgpIHRvIG51bXV0aWxzLmMgYW5kIHJlbmFtZSB0byBwZ19zdHJ0b2ludDY0KCku ICBXZQphbHJlYWR5IGhhdmUgYSAiMTYiIGFuZCAiMzIiIHZlcnNpb24gb2YgdGhhdCwgYW5k IHRoZSBjb2RlIGluc2lkZSB0aGUKZnVuY3Rpb25zIHdhcyBhbGlnbmVkLCBzbyB0aGlzIG1v dmUgbWFrZXMgYWxsIHRocmVlIHZlcnNpb25zCmNvbnNpc3RlbnQuICBUaGUgQVBJIGlzIGFs c28gY2hhbmdlZCB0byBubyBsb25nZXIgcHJvdmlkZSB0aGUgZXJyb3JPSwpjYXNlLiAgVXNl cnMgdGhhdCBuZWVkIHRoZSBlcnJvciBjaGVja2luZyBjYW4gdXNlIHN0cnRvaTY0KCkuCgpE aXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQv YjIzOTU2NGMtY2FkMC1iMjNlLWM1N2UtMTY2ZDg4M2NiOTdkQGVudGVycHJpc2VkYi5jb20K LS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jICAgICAgICAgICAgIHwgMTIg KystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIHwgIDkg KystCiBzcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jICAgICAgICAgICAgICAgIHwgOTAg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvbnVtdXRpbHMu YyAgICAgICAgICAgIHwgODQgKysrKysrKysrKysrKysrKysrKwogc3JjL2Jpbi9wZ2JlbmNo L3BnYmVuY2guYyAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5jbHVkZS91dGls cy9idWlsdGlucy5oICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMv aW50OC5oICAgICAgICAgICAgICAgICAgICB8IDI1IC0tLS0tLQogNyBmaWxlcyBjaGFuZ2Vk LCAxMDMgaW5zZXJ0aW9ucygrKSwgMTIyIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyYy9pbmNsdWRlL3V0aWxzL2ludDguaAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9ub2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5j CmluZGV4IDhjZmU2ZjY3YzAuLjBlZWZkNTQyN2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9ub2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25v ZGUuYwpAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlv bi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKICNpbmNsdWRlICJ1dGlscy9i dWlsdGlucy5oIgotI2luY2x1ZGUgInV0aWxzL2ludDguaCIKICNpbmNsdWRlICJ1dGlscy9s c3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0 aWxzL3ZhcmJpdC5oIgpAQCAtMzUzLDcgKzM1Miw2IEBAIG1ha2VfY29uc3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBX0NvbnN0ICphY29uc3QpCiB7CiAJQ29uc3QJICAgKmNvbjsKIAlEYXR1 bQkJdmFsOwotCWludDY0CQl2YWw2NDsKIAlPaWQJCQl0eXBlaWQ7CiAJaW50CQkJdHlwZWxl bjsKIAlib29sCQl0eXBlYnl2YWw7CkBAIC0zODQsOCArMzgyLDE1IEBAIG1ha2VfY29uc3Qo UGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0NvbnN0ICphY29uc3QpCiAJCQlicmVhazsKIAogCQlj YXNlIFRfRmxvYXQ6CisJCXsKIAkJCS8qIGNvdWxkIGJlIGFuIG92ZXJzaXplIGludGVnZXIg YXMgd2VsbCBhcyBhIGZsb2F0IC4uLiAqLwotCQkJaWYgKHNjYW5pbnQ4KGFjb25zdC0+dmFs LmZ2YWwudmFsLCB0cnVlLCAmdmFsNjQpKQorCisJCQlpbnQ2NAkJdmFsNjQ7CisJCQljaGFy CSAgICplbmRwdHI7CisKKwkJCWVycm5vID0gMDsKKwkJCXZhbDY0ID0gc3RydG9pNjQoYWNv bnN0LT52YWwuZnZhbC52YWwsICZlbmRwdHIsIDEwKTsKKwkJCWlmIChlcnJubyA9PSAwICYm ICplbmRwdHIgPT0gJ1wwJykKIAkJCXsKIAkJCQkvKgogCQkJCSAqIEl0IG1pZ2h0IGFjdHVh bGx5IGZpdCBpbiBpbnQzMi4gUHJvYmFibHkgb25seSBJTlRfTUlOIGNhbgpAQCAtNDI1LDYg KzQzMCw3IEBAIG1ha2VfY29uc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0NvbnN0ICphY29u c3QpCiAJCQkJdHlwZWJ5dmFsID0gZmFsc2U7CiAJCQl9CiAJCQlicmVhazsKKwkJfQogCiAJ CWNhc2UgVF9TdHJpbmc6CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Bnb3V0cHV0L3Bnb3V0cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1 dC9wZ291dHB1dC5jCmluZGV4IDZmNmEyMDNkZWEuLjJmMGY0MGM3NWQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtMjEsNyArMjEs NiBAQAogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxwcm90by5oIgogI2luY2x1ZGUg InJlcGxpY2F0aW9uL29yaWdpbi5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Bnb3V0cHV0 LmgiCi0jaW5jbHVkZSAidXRpbHMvaW50OC5oIgogI2luY2x1ZGUgInV0aWxzL2ludmFsLmgi CiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRp bHMuaCIKQEAgLTIwNSw3ICsyMDQsOCBAQCBwYXJzZV9vdXRwdXRfcGFyYW1ldGVycyhMaXN0 ICpvcHRpb25zLCBQR091dHB1dERhdGEgKmRhdGEpCiAJCS8qIENoZWNrIGVhY2ggcGFyYW0s IHdoZXRoZXIgb3Igbm90IHdlIHJlY29nbml6ZSBpdCAqLwogCQlpZiAoc3RyY21wKGRlZmVs LT5kZWZuYW1lLCAicHJvdG9fdmVyc2lvbiIpID09IDApCiAJCXsKLQkJCWludDY0CQlwYXJz ZWQ7CisJCQl1bnNpZ25lZCBsb25nIHBhcnNlZDsKKwkJCWNoYXIJICAgKmVuZHB0cjsKIAog CQkJaWYgKHByb3RvY29sX3ZlcnNpb25fZ2l2ZW4pCiAJCQkJZXJlcG9ydChFUlJPUiwKQEAg LTIxMywxMiArMjEzLDEzIEBAIHBhcnNlX291dHB1dF9wYXJhbWV0ZXJzKExpc3QgKm9wdGlv bnMsIFBHT3V0cHV0RGF0YSAqZGF0YSkKIAkJCQkJCSBlcnJtc2coImNvbmZsaWN0aW5nIG9y IHJlZHVuZGFudCBvcHRpb25zIikpKTsKIAkJCXByb3RvY29sX3ZlcnNpb25fZ2l2ZW4gPSB0 cnVlOwogCi0JCQlpZiAoIXNjYW5pbnQ4KHN0clZhbChkZWZlbC0+YXJnKSwgdHJ1ZSwgJnBh cnNlZCkpCisJCQlwYXJzZWQgPSBzdHJ0b3VsKHN0clZhbChkZWZlbC0+YXJnKSwgJmVuZHB0 ciwgMTApOworCQkJaWYgKGVycm5vIHx8ICplbmRwdHIgIT0gJ1wwJykKIAkJCQllcmVwb3J0 KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxV RSksCiAJCQkJCQkgZXJybXNnKCJpbnZhbGlkIHByb3RvX3ZlcnNpb24iKSkpOwogCi0JCQlp ZiAocGFyc2VkID4gUEdfVUlOVDMyX01BWCB8fCBwYXJzZWQgPCAwKQorCQkJaWYgKHBhcnNl ZCA+IFBHX1VJTlQzMl9NQVgpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkJIGVycm1zZygicHJv dG9fdmVyc2lvbiBcIiVzXCIgb3V0IG9mIHJhbmdlIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9pbnQ4LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCmlu ZGV4IDIxNjgwODBkY2MuLmY4ZjU1NzUyNmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAt MjQsNyArMjQsNiBAQAogI2luY2x1ZGUgIm5vZGVzL3N1cHBvcnRub2Rlcy5oIgogI2luY2x1 ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5o IgotI2luY2x1ZGUgInV0aWxzL2ludDguaCIKIAogCiB0eXBlZGVmIHN0cnVjdApAQCAtNDUs OTkgKzQ0LDE0IEBAIHR5cGVkZWYgc3RydWN0CiAgKiBGb3JtYXR0aW5nIGFuZCBjb252ZXJz aW9uIHJvdXRpbmVzLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0vKgotICogc2NhbmludDggLS0tIHRyeSB0byBw YXJzZSBhIHN0cmluZyBpbnRvIGFuIGludDguCi0gKgotICogSWYgZXJyb3JPSyBpcyBmYWxz ZSwgZXJlcG9ydCBhIHVzZWZ1bCBlcnJvciBtZXNzYWdlIGlmIHRoZSBzdHJpbmcgaXMgYmFk LgotICogSWYgZXJyb3JPSyBpcyB0cnVlLCBqdXN0IHJldHVybiAiZmFsc2UiIGZvciBiYWQg aW5wdXQuCi0gKi8KLWJvb2wKLXNjYW5pbnQ4KGNvbnN0IGNoYXIgKnN0ciwgYm9vbCBlcnJv ck9LLCBpbnQ2NCAqcmVzdWx0KQotewotCWNvbnN0IGNoYXIgKnB0ciA9IHN0cjsKLQlpbnQ2 NAkJdG1wID0gMDsKLQlib29sCQluZWcgPSBmYWxzZTsKLQotCS8qCi0JICogRG8gb3VyIG93 biBzY2FuLCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHNzY2FuZiB3aGljaCBtaWdodCBiZSBi cm9rZW4KLQkgKiBmb3IgbG9uZyBsb25nLgotCSAqCi0JICogQXMgSU5UNjRfTUlOIGNhbid0 IGJlIHN0b3JlZCBhcyBhIHBvc2l0aXZlIDY0IGJpdCBpbnRlZ2VyLCBhY2N1bXVsYXRlCi0J ICogdmFsdWUgYXMgYSBuZWdhdGl2ZSBudW1iZXIuCi0JICovCi0KLQkvKiBza2lwIGxlYWRp bmcgc3BhY2VzICovCi0Jd2hpbGUgKCpwdHIgJiYgaXNzcGFjZSgodW5zaWduZWQgY2hhcikg KnB0cikpCi0JCXB0cisrOwotCi0JLyogaGFuZGxlIHNpZ24gKi8KLQlpZiAoKnB0ciA9PSAn LScpCi0JewotCQlwdHIrKzsKLQkJbmVnID0gdHJ1ZTsKLQl9Ci0JZWxzZSBpZiAoKnB0ciA9 PSAnKycpCi0JCXB0cisrOwotCi0JLyogcmVxdWlyZSBhdCBsZWFzdCBvbmUgZGlnaXQgKi8K LQlpZiAodW5saWtlbHkoIWlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpICpwdHIpKSkKLQkJZ290 byBpbnZhbGlkX3N5bnRheDsKLQotCS8qIHByb2Nlc3MgZGlnaXRzICovCi0Jd2hpbGUgKCpw dHIgJiYgaXNkaWdpdCgodW5zaWduZWQgY2hhcikgKnB0cikpCi0JewotCQlpbnQ4CQlkaWdp dCA9ICgqcHRyKysgLSAnMCcpOwotCi0JCWlmICh1bmxpa2VseShwZ19tdWxfczY0X292ZXJm bG93KHRtcCwgMTAsICZ0bXApKSB8fAotCQkJdW5saWtlbHkocGdfc3ViX3M2NF9vdmVyZmxv dyh0bXAsIGRpZ2l0LCAmdG1wKSkpCi0JCQlnb3RvIG91dF9vZl9yYW5nZTsKLQl9Ci0KLQkv KiBhbGxvdyB0cmFpbGluZyB3aGl0ZXNwYWNlLCBidXQgbm90IG90aGVyIHRyYWlsaW5nIGNo YXJzICovCi0Jd2hpbGUgKCpwdHIgIT0gJ1wwJyAmJiBpc3NwYWNlKCh1bnNpZ25lZCBjaGFy KSAqcHRyKSkKLQkJcHRyKys7Ci0KLQlpZiAodW5saWtlbHkoKnB0ciAhPSAnXDAnKSkKLQkJ Z290byBpbnZhbGlkX3N5bnRheDsKLQotCWlmICghbmVnKQotCXsKLQkJLyogY291bGQgZmFp bCBpZiBpbnB1dCBpcyBtb3N0IG5lZ2F0aXZlIG51bWJlciAqLwotCQlpZiAodW5saWtlbHko dG1wID09IFBHX0lOVDY0X01JTikpCi0JCQlnb3RvIG91dF9vZl9yYW5nZTsKLQkJdG1wID0g LXRtcDsKLQl9Ci0KLQkqcmVzdWx0ID0gdG1wOwotCXJldHVybiB0cnVlOwotCi1vdXRfb2Zf cmFuZ2U6Ci0JaWYgKCFlcnJvck9LKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2Rl KEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAotCQkJCSBlcnJtc2coInZh bHVlIFwiJXNcIiBpcyBvdXQgb2YgcmFuZ2UgZm9yIHR5cGUgJXMiLAotCQkJCQkJc3RyLCAi YmlnaW50IikpKTsKLQlyZXR1cm4gZmFsc2U7Ci0KLWludmFsaWRfc3ludGF4OgotCWlmICgh ZXJyb3JPSykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFM SURfVEVYVF9SRVBSRVNFTlRBVElPTiksCi0JCQkJIGVycm1zZygiaW52YWxpZCBpbnB1dCBz eW50YXggZm9yIHR5cGUgJXM6IFwiJXNcIiIsCi0JCQkJCQkiYmlnaW50Iiwgc3RyKSkpOwot CXJldHVybiBmYWxzZTsKLX0KLQogLyogaW50OGluKCkKICAqLwogRGF0dW0KIGludDhpbihQ R19GVU5DVElPTl9BUkdTKQogewotCWNoYXIJICAgKnN0ciA9IFBHX0dFVEFSR19DU1RSSU5H KDApOwotCWludDY0CQlyZXN1bHQ7CisJY2hhcgkgICAqbnVtID0gUEdfR0VUQVJHX0NTVFJJ TkcoMCk7CiAKLQkodm9pZCkgc2NhbmludDgoc3RyLCBmYWxzZSwgJnJlc3VsdCk7Ci0JUEdf UkVUVVJOX0lOVDY0KHJlc3VsdCk7CisJUEdfUkVUVVJOX0lOVDY0KHBnX3N0cnRvaW50NjQo bnVtKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bXV0 aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtdXRpbHMuYwppbmRleCA2YTljMDBm ZGQzLi43YWM3ZTVkYmQzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVt dXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtdXRpbHMuYwpAQCAtMzI1 LDYgKzMyNSw5MCBAQCBwZ19zdHJ0b2ludDMyKGNvbnN0IGNoYXIgKnMpCiAJcmV0dXJuIDA7 CQkJCQkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCiB9CiAKKy8qCisgKiBDb252ZXJ0IGlu cHV0IHN0cmluZyB0byBhIHNpZ25lZCA2NCBiaXQgaW50ZWdlci4KKyAqCisgKiBBbGxvd3Mg YW55IG51bWJlciBvZiBsZWFkaW5nIG9yIHRyYWlsaW5nIHdoaXRlc3BhY2UgY2hhcmFjdGVy cy4gV2lsbCB0aHJvdworICogZXJlcG9ydCgpIHVwb24gYmFkIGlucHV0IGZvcm1hdCBvciBv dmVyZmxvdy4KKyAqCisgKiBOQjogQWNjdW11bGF0ZSBpbnB1dCBhcyBhIG5lZ2F0aXZlIG51 bWJlciwgdG8gZGVhbCB3aXRoIHR3bydzIGNvbXBsZW1lbnQKKyAqIHJlcHJlc2VudGF0aW9u IG9mIHRoZSBtb3N0IG5lZ2F0aXZlIG51bWJlciwgd2hpY2ggY2FuJ3QgYmUgcmVwcmVzZW50 ZWQgYXMgYQorICogcG9zaXRpdmUgbnVtYmVyLgorICovCitpbnQ2NAorcGdfc3RydG9pbnQ2 NChjb25zdCBjaGFyICpzKQoreworCWNvbnN0IGNoYXIgKnB0ciA9IHM7CisJaW50NjQJCXRt cCA9IDA7CisJYm9vbAkJbmVnID0gZmFsc2U7CisKKwkvKgorCSAqIERvIG91ciBvd24gc2Nh biwgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBzc2NhbmYgd2hpY2ggbWlnaHQgYmUgYnJva2Vu CisJICogZm9yIGxvbmcgbG9uZy4KKwkgKgorCSAqIEFzIElOVDY0X01JTiBjYW4ndCBiZSBz dG9yZWQgYXMgYSBwb3NpdGl2ZSA2NCBiaXQgaW50ZWdlciwgYWNjdW11bGF0ZQorCSAqIHZh bHVlIGFzIGEgbmVnYXRpdmUgbnVtYmVyLgorCSAqLworCisJLyogc2tpcCBsZWFkaW5nIHNw YWNlcyAqLworCXdoaWxlICgqcHRyICYmIGlzc3BhY2UoKHVuc2lnbmVkIGNoYXIpICpwdHIp KQorCQlwdHIrKzsKKworCS8qIGhhbmRsZSBzaWduICovCisJaWYgKCpwdHIgPT0gJy0nKQor CXsKKwkJcHRyKys7CisJCW5lZyA9IHRydWU7CisJfQorCWVsc2UgaWYgKCpwdHIgPT0gJysn KQorCQlwdHIrKzsKKworCS8qIHJlcXVpcmUgYXQgbGVhc3Qgb25lIGRpZ2l0ICovCisJaWYg KHVubGlrZWx5KCFpc2RpZ2l0KCh1bnNpZ25lZCBjaGFyKSAqcHRyKSkpCisJCWdvdG8gaW52 YWxpZF9zeW50YXg7CisKKwkvKiBwcm9jZXNzIGRpZ2l0cyAqLworCXdoaWxlICgqcHRyICYm IGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpICpwdHIpKQorCXsKKwkJaW50OAkJZGlnaXQgPSAo KnB0cisrIC0gJzAnKTsKKworCQlpZiAodW5saWtlbHkocGdfbXVsX3M2NF9vdmVyZmxvdyh0 bXAsIDEwLCAmdG1wKSkgfHwKKwkJCXVubGlrZWx5KHBnX3N1Yl9zNjRfb3ZlcmZsb3codG1w LCBkaWdpdCwgJnRtcCkpKQorCQkJZ290byBvdXRfb2ZfcmFuZ2U7CisJfQorCisJLyogYWxs b3cgdHJhaWxpbmcgd2hpdGVzcGFjZSwgYnV0IG5vdCBvdGhlciB0cmFpbGluZyBjaGFycyAq LworCXdoaWxlICgqcHRyICE9ICdcMCcgJiYgaXNzcGFjZSgodW5zaWduZWQgY2hhcikgKnB0 cikpCisJCXB0cisrOworCisJaWYgKHVubGlrZWx5KCpwdHIgIT0gJ1wwJykpCisJCWdvdG8g aW52YWxpZF9zeW50YXg7CisKKwlpZiAoIW5lZykKKwl7CisJCS8qIGNvdWxkIGZhaWwgaWYg aW5wdXQgaXMgbW9zdCBuZWdhdGl2ZSBudW1iZXIgKi8KKwkJaWYgKHVubGlrZWx5KHRtcCA9 PSBQR19JTlQ2NF9NSU4pKQorCQkJZ290byBvdXRfb2ZfcmFuZ2U7CisJCXRtcCA9IC10bXA7 CisJfQorCisJcmV0dXJuIHRtcDsKKworb3V0X29mX3JhbmdlOgorCWVyZXBvcnQoRVJST1Is CisJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJ CSBlcnJtc2coInZhbHVlIFwiJXNcIiBpcyBvdXQgb2YgcmFuZ2UgZm9yIHR5cGUgJXMiLAor CQkJCQlzLCAiYmlnaW50IikpKTsKKworaW52YWxpZF9zeW50YXg6CisJZXJlcG9ydChFUlJP UiwKKwkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwK KwkJCSBlcnJtc2coImludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlICVzOiBcIiVzXCIi LAorCQkJCQkiYmlnaW50IiwgcykpKTsKKworCXJldHVybiAwOwkJCQkJLyoga2VlcCBjb21w aWxlciBxdWlldCAqLworfQorCiAvKgogICogcGdfaXRvYTogY29udmVydHMgYSBzaWduZWQg MTYtYml0IGludGVnZXIgdG8gaXRzIHN0cmluZyByZXByZXNlbnRhdGlvbgogICogYW5kIHJl dHVybnMgc3RybGVuKGEpLgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2gu YyBiL3NyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMKaW5kZXggZWE5NjM5OTg0Yy4uNmI1Zjhi YzA3MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYworKysgYi9zcmMv YmluL3BnYmVuY2gvcGdiZW5jaC5jCkBAIC03ODcsOCArNzg3LDggQEAgaXNfYW5faW50KGNv bnN0IGNoYXIgKnN0cikKIC8qCiAgKiBzdHJ0b2ludDY0IC0tIGNvbnZlcnQgYSBzdHJpbmcg dG8gNjQtYml0IGludGVnZXIKICAqCi0gKiBUaGlzIGZ1bmN0aW9uIGlzIGEgc2xpZ2h0bHkg bW9kaWZpZWQgdmVyc2lvbiBvZiBzY2FuaW50OCgpIGZyb20KLSAqIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9pbnQ4LmMuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGEgc2xpZ2h0bHkgbW9kaWZp ZWQgdmVyc2lvbiBvZiBwZ19zdHJ0b2ludDY0KCkgZnJvbQorICogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L251bXV0aWxzLmMuCiAgKgogICogVGhlIGZ1bmN0aW9uIHJldHVybnMgd2hldGhl ciB0aGUgY29udmVyc2lvbiB3b3JrZWQsIGFuZCBpZiBzbwogICogIipyZXN1bHQiIGlzIHNl dCB0byB0aGUgcmVzdWx0LgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvYnVpbHRp bnMuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2J1aWx0aW5zLmgKaW5kZXggYjA3ZWVmYWYxZS4u MWVmODM1OTkwNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYnVpbHRpbnMuaAor KysgYi9zcmMvaW5jbHVkZS91dGlscy9idWlsdGlucy5oCkBAIC00Niw2ICs0Niw3IEBAIGV4 dGVybiBpbnQJbmFtZXN0cmNtcChOYW1lIG5hbWUsIGNvbnN0IGNoYXIgKnN0cik7CiBleHRl cm4gaW50MzIgcGdfYXRvaShjb25zdCBjaGFyICpzLCBpbnQgc2l6ZSwgaW50IGMpOwogZXh0 ZXJuIGludDE2IHBnX3N0cnRvaW50MTYoY29uc3QgY2hhciAqcyk7CiBleHRlcm4gaW50MzIg cGdfc3RydG9pbnQzMihjb25zdCBjaGFyICpzKTsKK2V4dGVybiBpbnQ2NCBwZ19zdHJ0b2lu dDY0KGNvbnN0IGNoYXIgKnMpOwogZXh0ZXJuIGludAlwZ19pdG9hKGludDE2IGksIGNoYXIg KmEpOwogZXh0ZXJuIGludAlwZ191bHRvYV9uKHVpbnQzMiBsLCBjaGFyICphKTsKIGV4dGVy biBpbnQJcGdfdWxsdG9hX24odWludDY0IGwsIGNoYXIgKmEpOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvaW50OC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvaW50OC5oCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTcxMTg4ZjkwLi4wMDAwMDAwMDAwCi0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL2ludDguaAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAg QEAKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqIGludDguaAotICoJICBEZWNsYXJh dGlvbnMgZm9yIG9wZXJhdGlvbnMgb24gNjQtYml0IGludGVnZXJzLgotICoKLSAqCi0gKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCi0gKgotICogc3JjL2luY2x1ZGUv dXRpbHMvaW50OC5oCi0gKgotICogTk9URVMKLSAqIFRoZXNlIGRhdGEgdHlwZXMgYXJlIHN1 cHBvcnRlZCBvbiBhbGwgNjQtYml0IGFyY2hpdGVjdHVyZXMsIGFuZCBtYXkKLSAqCWJlIHN1 cHBvcnRlZCB0aHJvdWdoIGxpYnJhcmllcyBvbiBzb21lIDMyLWJpdCBtYWNoaW5lcy4gSWYg eW91ciBtYWNoaW5lCi0gKglpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZCwgdGhlbiBwbGVh c2UgdHJ5IHRvIG1ha2UgaXQgc28sIHRoZW4gcG9zdAotICoJcGF0Y2hlcyB0byB0aGUgcG9z dGdyZXNxbC5vcmcgaGFja2VycyBtYWlsaW5nIGxpc3QuCi0gKgotICotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gKi8KLSNpZm5kZWYgSU5UOF9ICi0jZGVmaW5lIElOVDhfSAotCi1leHRlcm4g Ym9vbCBzY2FuaW50OChjb25zdCBjaGFyICpzdHIsIGJvb2wgZXJyb3JPSywgaW50NjQgKnJl c3VsdCk7Ci0KLSNlbmRpZgkJCQkJCQkvKiBJTlQ4X0ggKi8KCmJhc2UtY29tbWl0OiA4MTEy YmNmMGNjNjAyZTAwZTk1ZWFiNmM0YmRjMGViNzNiNWI1NDdkCi0tIAoyLjM0LjEKCg== --------------DlbcwxvzFIE30L5TyUyoLRwk Content-Type: text/plain; charset=UTF-8; name="v6-0002-Remove-one-use-of-pg_atoi.patch" Content-Disposition: attachment; filename="v6-0002-Remove-one-use-of-pg_atoi.patch" Content-Transfer-Encoding: base64 RnJvbSA0NjUxZDBiMDllOWRjYWM1NTRlZmJhMDk5YTI3Yzk0NzQ4YjMzY2NiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAzMCBEZWMgMjAyMSAxMDoyNjozNyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgMi83XSBSZW1vdmUgb25lIHVzZSBvZiBwZ19hdG9pKCkKClRoZXJlIHdh cyBubyByZWFsIG5lZWQgdG8gdXNlIHRoaXMgaGVyZSBpbnN0ZWFkIG9mIGEgc2ltcGxlciBB UEkuCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX2dyYW0ueSB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9ncmFtLnkgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvanNvbnBhdGhfZ3JhbS55CmluZGV4IGJkNWQ0NDg4YTAuLjU5ODI2 NzI1NTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9ncmFt LnkKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX2dyYW0ueQpAQCAtMjMy LDcgKzIzMiw3IEBAIGFycmF5X2FjY2Vzc29yOgogCTsKIAogYW55X2xldmVsOgotCUlOVF9Q CQkJCQkJCXsgJCQgPSBwZ19hdG9pKCQxLnZhbCwgNCwgMCk7IH0KKwlJTlRfUAkJCQkJCQl7 ICQkID0gcGdfc3RydG9pbnQzMigkMS52YWwpOyB9CiAJfCBMQVNUX1AJCQkJCQl7ICQkID0g LTE7IH0KIAk7CiAKLS0gCjIuMzQuMQoK --------------DlbcwxvzFIE30L5TyUyoLRwk Content-Type: text/plain; charset=UTF-8; name="v6-0003-Remove-pg_atoi.patch" Content-Disposition: attachment; filename="v6-0003-Remove-pg_atoi.patch" Content-Transfer-Encoding: base64 RnJvbSBlMzJmMWVlZDc3ZDgwNDBlMmQ3OWU1MjUxYjNjOGY4OTdkYmViMjIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAzMCBEZWMgMjAyMSAxMDoyNjozNyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgMy83XSBSZW1vdmUgcGdfYXRvaSgpCgpUaGUgbGFzdCBjYWxsZXIgd2Fz IGludDJ2ZWN0b3JpbigpLCBhbmQgaGF2aW5nIHN1Y2ggYSBnZW5lcmFsIGZ1bmN0aW9uCmZv ciBvbmUgdXNlciBkaWRuJ3Qgc2VlbSB1c2VmdWwsIHNvIGp1c3QgcHV0IHRoZSByZXF1aXJl ZCBwYXJ0cyBpbmxpbmUKYW5kIHJlbW92ZSB0aGUgZnVuY3Rpb24uCi0tLQogc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludC5jICAgICAgfCAzMiArKysrKysrKysrLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9udW11dGlscy5jIHwgODggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIHNyYy9pbmNsdWRlL3V0aWxzL2J1aWx0aW5zLmggICAgIHwgIDEgLQogMyBmaWxl cyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA5MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvaW50LmMKaW5kZXggZTlmMTA4NDI1Yy4uZWQyYTkwMTZmNSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2ludC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9p bnQuYwpAQCAtMTQ2LDE1ICsxNDYsMzkgQEAgaW50MnZlY3RvcmluKFBHX0ZVTkNUSU9OX0FS R1MpCiAKIAlyZXN1bHQgPSAoaW50MnZlY3RvciAqKSBwYWxsb2MwKEludDJWZWN0b3JTaXpl KEZVTkNfTUFYX0FSR1MpKTsKIAotCWZvciAobiA9IDA7ICppbnRTdHJpbmcgJiYgbiA8IEZV TkNfTUFYX0FSR1M7IG4rKykKKwlmb3IgKG4gPSAwOyBuIDwgRlVOQ19NQVhfQVJHUzsgbisr KQogCXsKKwkJbG9uZwkJbDsKKwkJY2hhcgkgICAqZW5kcDsKKwogCQl3aGlsZSAoKmludFN0 cmluZyAmJiBpc3NwYWNlKCh1bnNpZ25lZCBjaGFyKSAqaW50U3RyaW5nKSkKIAkJCWludFN0 cmluZysrOwogCQlpZiAoKmludFN0cmluZyA9PSAnXDAnKQogCQkJYnJlYWs7Ci0JCXJlc3Vs dC0+dmFsdWVzW25dID0gcGdfYXRvaShpbnRTdHJpbmcsIHNpemVvZihpbnQxNiksICcgJyk7 Ci0JCXdoaWxlICgqaW50U3RyaW5nICYmICFpc3NwYWNlKCh1bnNpZ25lZCBjaGFyKSAqaW50 U3RyaW5nKSkKLQkJCWludFN0cmluZysrOworCisJCWVycm5vID0gMDsKKwkJbCA9IHN0cnRv bChpbnRTdHJpbmcsICZlbmRwLCAxMCk7CisKKwkJaWYgKGludFN0cmluZyA9PSBlbmRwKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRf UkVQUkVTRU5UQVRJT04pLAorCQkJCQkgZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5bnRheCBm b3IgdHlwZSAlczogXCIlc1wiIiwKKwkJCQkJCQkic21hbGxpbnQiLCBpbnRTdHJpbmcpKSk7 CisKKwkJaWYgKGVycm5vID09IEVSQU5HRSB8fCBsIDwgU0hSVF9NSU4gfHwgbCA+IFNIUlRf TUFYKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklD X1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJCSBlcnJtc2coInZhbHVlIFwiJXNcIiBpcyBv dXQgb2YgcmFuZ2UgZm9yIHR5cGUgJXMiLCBpbnRTdHJpbmcsCisJCQkJCQkJInNtYWxsaW50 IikpKTsKKworCQlpZiAoKmVuZHAgJiYgKmVuZHAgIT0gJyAnKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04p LAorCQkJCQkgZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSAlczogXCIl c1wiIiwKKwkJCQkJCQkiaW50ZWdlciIsIGludFN0cmluZykpKTsKKworCQlyZXN1bHQtPnZh bHVlc1tuXSA9IGw7CisJCWludFN0cmluZyA9IGVuZHA7CiAJfQogCXdoaWxlICgqaW50U3Ry aW5nICYmIGlzc3BhY2UoKHVuc2lnbmVkIGNoYXIpICppbnRTdHJpbmcpKQogCQlpbnRTdHJp bmcrKzsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW11dGlscy5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bXV0aWxzLmMKaW5kZXggN2FjN2U1ZGJkMy4uMThk ZTU0ZGE0MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bXV0aWxzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bXV0aWxzLmMKQEAgLTg1LDk0ICs4NSw2 IEBAIGRlY2ltYWxMZW5ndGg2NChjb25zdCB1aW50NjQgdikKIAlyZXR1cm4gdCArICh2ID49 IFBvd2Vyc09mVGVuW3RdKTsKIH0KIAotLyoKLSAqIHBnX2F0b2k6IGNvbnZlcnQgc3RyaW5n IHRvIGludGVnZXIKLSAqCi0gKiBhbGxvd3MgYW55IG51bWJlciBvZiBsZWFkaW5nIG9yIHRy YWlsaW5nIHdoaXRlc3BhY2UgY2hhcmFjdGVycy4KLSAqCi0gKiAnc2l6ZScgaXMgdGhlIHNp emVvZigpIHRoZSBkZXNpcmVkIGludGVncmFsIHJlc3VsdCAoMSwgMiwgb3IgNCBieXRlcyku Ci0gKgotICogYywgaWYgbm90IDAsIGlzIGEgdGVybWluYXRvciBjaGFyYWN0ZXIgdGhhdCBt YXkgYXBwZWFyIGFmdGVyIHRoZQotICogaW50ZWdlciAocGx1cyB3aGl0ZXNwYWNlKS4gIElm IDAsIHRoZSBzdHJpbmcgbXVzdCBlbmQgYWZ0ZXIgdGhlIGludGVnZXIuCi0gKgotICogVW5s aWtlIHBsYWluIGF0b2koKSwgdGhpcyB3aWxsIHRocm93IGVyZXBvcnQoKSB1cG9uIGJhZCBp bnB1dCBmb3JtYXQgb3IKLSAqIG92ZXJmbG93LgotICovCi1pbnQzMgotcGdfYXRvaShjb25z dCBjaGFyICpzLCBpbnQgc2l6ZSwgaW50IGMpCi17Ci0JbG9uZwkJbDsKLQljaGFyCSAgICpi YWRwOwotCi0JLyoKLQkgKiBTb21lIHZlcnNpb25zIG9mIHN0cnRvbCB0cmVhdCB0aGUgZW1w dHkgc3RyaW5nIGFzIGFuIGVycm9yLCBidXQgc29tZQotCSAqIHNlZW0gbm90IHRvLiAgTWFr ZSBhbiBleHBsaWNpdCB0ZXN0IHRvIGJlIHN1cmUgd2UgY2F0Y2ggaXQuCi0JICovCi0JaWYg KHMgPT0gTlVMTCkKLQkJZWxvZyhFUlJPUiwgIk5VTEwgcG9pbnRlciIpOwotCWlmICgqcyA9 PSAwKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9U RVhUX1JFUFJFU0VOVEFUSU9OKSwKLQkJCQkgZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5bnRh eCBmb3IgdHlwZSAlczogXCIlc1wiIiwKLQkJCQkJCSJpbnRlZ2VyIiwgcykpKTsKLQotCWVy cm5vID0gMDsKLQlsID0gc3RydG9sKHMsICZiYWRwLCAxMCk7Ci0KLQkvKiBXZSBtYWRlIG5v IHByb2dyZXNzIHBhcnNpbmcgdGhlIHN0cmluZywgc28gYmFpbCBvdXQgKi8KLQlpZiAocyA9 PSBiYWRwKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKLQkJCQkgZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5 bnRheCBmb3IgdHlwZSAlczogXCIlc1wiIiwKLQkJCQkJCSJpbnRlZ2VyIiwgcykpKTsKLQot CXN3aXRjaCAoc2l6ZSkKLQl7Ci0JCWNhc2Ugc2l6ZW9mKGludDMyKToKLQkJCWlmIChlcnJu byA9PSBFUkFOR0UKLSNpZiBkZWZpbmVkKEhBVkVfTE9OR19JTlRfNjQpCi0JCQkvKiB3b24n dCBnZXQgRVJBTkdFIG9uIHRoZXNlIHdpdGggNjQtYml0IGxvbmdzLi4uICovCi0JCQkJfHwg bCA8IElOVF9NSU4gfHwgbCA+IElOVF9NQVgKLSNlbmRpZgotCQkJCSkKLQkJCQllcmVwb3J0 KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9S QU5HRSksCi0JCQkJCQkgZXJybXNnKCJ2YWx1ZSBcIiVzXCIgaXMgb3V0IG9mIHJhbmdlIGZv ciB0eXBlICVzIiwgcywKLQkJCQkJCQkJImludGVnZXIiKSkpOwotCQkJYnJlYWs7Ci0JCWNh c2Ugc2l6ZW9mKGludDE2KToKLQkJCWlmIChlcnJubyA9PSBFUkFOR0UgfHwgbCA8IFNIUlRf TUlOIHx8IGwgPiBTSFJUX01BWCkKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCi0JCQkJCQkgZXJybXNn KCJ2YWx1ZSBcIiVzXCIgaXMgb3V0IG9mIHJhbmdlIGZvciB0eXBlICVzIiwgcywKLQkJCQkJ CQkJInNtYWxsaW50IikpKTsKLQkJCWJyZWFrOwotCQljYXNlIHNpemVvZihpbnQ4KToKLQkJ CWlmIChlcnJubyA9PSBFUkFOR0UgfHwgbCA8IFNDSEFSX01JTiB8fCBsID4gU0NIQVJfTUFY KQotCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNf VkFMVUVfT1VUX09GX1JBTkdFKSwKLQkJCQkJCSBlcnJtc2coInZhbHVlIFwiJXNcIiBpcyBv dXQgb2YgcmFuZ2UgZm9yIDgtYml0IGludGVnZXIiLCBzKSkpOwotCQkJYnJlYWs7Ci0JCWRl ZmF1bHQ6Ci0JCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgcmVzdWx0IHNpemU6ICVkIiwg c2l6ZSk7Ci0JfQotCi0JLyoKLQkgKiBTa2lwIGFueSB0cmFpbGluZyB3aGl0ZXNwYWNlOyBp ZiBhbnl0aGluZyBidXQgd2hpdGVzcGFjZSByZW1haW5zIGJlZm9yZQotCSAqIHRoZSB0ZXJt aW5hdGluZyBjaGFyYWN0ZXIsIGJhaWwgb3V0Ci0JICovCi0Jd2hpbGUgKCpiYWRwICYmICpi YWRwICE9IGMgJiYgaXNzcGFjZSgodW5zaWduZWQgY2hhcikgKmJhZHApKQotCQliYWRwKys7 Ci0KLQlpZiAoKmJhZHAgJiYgKmJhZHAgIT0gYykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCi0JCQkJIGVy cm1zZygiaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgJXM6IFwiJXNcIiIsCi0JCQkJ CQkiaW50ZWdlciIsIHMpKSk7Ci0KLQlyZXR1cm4gKGludDMyKSBsOwotfQotCiAvKgogICog Q29udmVydCBpbnB1dCBzdHJpbmcgdG8gYSBzaWduZWQgMTYgYml0IGludGVnZXIuCiAgKgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvYnVpbHRpbnMuaCBiL3NyYy9pbmNsdWRl L3V0aWxzL2J1aWx0aW5zLmgKaW5kZXggMWVmODM1OTkwNi4uNjAzMzlkM2RjZiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYnVpbHRpbnMuaAorKysgYi9zcmMvaW5jbHVkZS91 dGlscy9idWlsdGlucy5oCkBAIC00Myw3ICs0Myw2IEBAIGV4dGVybiB2b2lkIG5hbWVzdHJj cHkoTmFtZSBuYW1lLCBjb25zdCBjaGFyICpzdHIpOwogZXh0ZXJuIGludAluYW1lc3RyY21w KE5hbWUgbmFtZSwgY29uc3QgY2hhciAqc3RyKTsKIAogLyogbnVtdXRpbHMuYyAqLwotZXh0 ZXJuIGludDMyIHBnX2F0b2koY29uc3QgY2hhciAqcywgaW50IHNpemUsIGludCBjKTsKIGV4 dGVybiBpbnQxNiBwZ19zdHJ0b2ludDE2KGNvbnN0IGNoYXIgKnMpOwogZXh0ZXJuIGludDMy IHBnX3N0cnRvaW50MzIoY29uc3QgY2hhciAqcyk7CiBleHRlcm4gaW50NjQgcGdfc3RydG9p bnQ2NChjb25zdCBjaGFyICpzKTsKLS0gCjIuMzQuMQoK --------------DlbcwxvzFIE30L5TyUyoLRwk Content-Type: text/plain; charset=UTF-8; name="v6-0004-Add-test-case-for-trailing-junk-after-numeric-lit.patch" Content-Disposition: attachment; filename*0="v6-0004-Add-test-case-for-trailing-junk-after-numeric-lit.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmYjYwNmEyOWJhN2FlNDVlOGRjZjg0YTRiZTJmMzlhYTVhNTRhNjQ4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAzMCBEZWMgMjAyMSAxMDoyNjozNyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgNC83XSBBZGQgdGVzdCBjYXNlIGZvciB0cmFpbGluZyBqdW5rIGFmdGVy IG51bWVyaWMgbGl0ZXJhbHMKClBvc3RncmVTUUwgY3VycmVudGx5IGFjY2VwdHMgbnVtZXJp YyBsaXRlcmFscyB3aXRoIHRyYWlsaW5nCm5vbi1kaWdpdHMsIHN1Y2ggYXMgMTIzYWJjIHdo ZXJlIHRoZSBhYmMgaXMgdHJlYXRlZCBhcyB0aGUgbmV4dCB0b2tlbi4KVGhpcyBtYXkgYmUg YSBiaXQgc3VycHJpc2luZy4gIFRoaXMgY29tbWl0IGFkZHMgdGVzdCBjYXNlcyBmb3IgdGhp czsKc3Vic2VxdWVudCBjb21taXRzIGludGVuZCB0byBjaGFuZ2UgdGhpcyBiZWhhdmlvci4K CkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxh dC9iMjM5NTY0Yy1jYWQwLWIyM2UtYzU3ZS0xNjZkODgzY2I5N2RAZW50ZXJwcmlzZWRiLmNv bQotLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQgfCA1NSAr KysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL251bWVyb2xv Z3kuc3FsICAgICAgfCAxNCArKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9n eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0CmluZGV4 IDQ0ZDZjNDM1ZGUuLjMyYzZkODBjMDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9udW1lcm9sb2d5Lm91dApAQCAtMyw2ICszLDYxIEBACiAtLSBUZXN0IHZhcmlvdXMgY29t YmluYXRpb25zIG9mIG51bWVyaWMgdHlwZXMgYW5kIGZ1bmN0aW9ucy4KIC0tCiAtLQorLS0g VHJhaWxpbmcganVuayBpbiBudW1lcmljIGxpdGVyYWxzCistLQorU0VMRUNUIDEyM2FiYzsK KyBhYmMgCistLS0tLQorIDEyMworKDEgcm93KQorCitTRUxFQ1QgMHgwbzsKKyB4MG8gCist LS0tLQorICAgMAorKDEgcm93KQorCitTRUxFQ1QgMV8yXzM7CisgXzJfMyAKKy0tLS0tLQor ICAgIDEKKygxIHJvdykKKworU0VMRUNUIDAuYTsKKyBhIAorLS0tCisgMAorKDEgcm93KQor CitTRUxFQ1QgMC4wYTsKKyAgYSAgCistLS0tLQorIDAuMAorKDEgcm93KQorCitTRUxFQ1Qg LjBhOworICBhICAKKy0tLS0tCisgMC4wCisoMSByb3cpCisKK1NFTEVDVCAwLjBlMWE7Cisg YSAKKy0tLQorIDAKKygxIHJvdykKKworU0VMRUNUIDAuMGU7CisgIGUgIAorLS0tLS0KKyAw LjAKKygxIHJvdykKKworU0VMRUNUIDAuMGUrYTsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0 IG9yIG5lYXIgIisiCitMSU5FIDE6IFNFTEVDVCAwLjBlK2E7CisgICAgICAgICAgICAgICAg ICAgXgorLS0KIC0tIFRlc3QgaW1wbGljaXQgdHlwZSBjb252ZXJzaW9ucwogLS0gVGhpcyBm YWlscyBmb3IgUG9zdGdyZXMgdjYuMSAoYW5kIGVhcmxpZXI/KQogLS0gIHNvIGxldCdzIHRy eSBleHBsaWNpdCBjb252ZXJzaW9ucyBmb3Igbm93IC0gdGdsIDk3LzA1LzA3CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9udW1lcm9sb2d5LnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL251bWVyb2xvZ3kuc3FsCmluZGV4IGZkZGI1OGY4ZmQuLjcwNDQ3YTk1ZmEg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL251bWVyb2xvZ3kuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL251bWVyb2xvZ3kuc3FsCkBAIC0zLDYgKzMsMjAgQEAK IC0tIFRlc3QgdmFyaW91cyBjb21iaW5hdGlvbnMgb2YgbnVtZXJpYyB0eXBlcyBhbmQgZnVu Y3Rpb25zLgogLS0KIAorLS0KKy0tIFRyYWlsaW5nIGp1bmsgaW4gbnVtZXJpYyBsaXRlcmFs cworLS0KKworU0VMRUNUIDEyM2FiYzsKK1NFTEVDVCAweDBvOworU0VMRUNUIDFfMl8zOwor U0VMRUNUIDAuYTsKK1NFTEVDVCAwLjBhOworU0VMRUNUIC4wYTsKK1NFTEVDVCAwLjBlMWE7 CitTRUxFQ1QgMC4wZTsKK1NFTEVDVCAwLjBlK2E7CisKIC0tCiAtLSBUZXN0IGltcGxpY2l0 IHR5cGUgY29udmVyc2lvbnMKIC0tIFRoaXMgZmFpbHMgZm9yIFBvc3RncmVzIHY2LjEgKGFu ZCBlYXJsaWVyPykKLS0gCjIuMzQuMQoK --------------DlbcwxvzFIE30L5TyUyoLRwk Content-Type: text/plain; charset=UTF-8; name="v6-0005-Reject-trailing-junk-after-numeric-literals.patch" Content-Disposition: attachment; filename*0="v6-0005-Reject-trailing-junk-after-numeric-literals.patch" Content-Transfer-Encoding: base64 RnJvbSA4ZWUyYTQyMmVjODZhMDU1Y2NkZGQyNmYzOTc3NjBkMzcyYWVjNGE4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAzMCBEZWMgMjAyMSAxMDoyNjozNyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgNS83XSBSZWplY3QgdHJhaWxpbmcganVuayBhZnRlciBudW1lcmljIGxp dGVyYWxzCgpBZnRlciB0aGlzLCB0aGUgUG9zdGdyZVNRTCBsZXhlcnMgbm8gbG9uZ2VyIGFj Y2VwdCBudW1lcmljIGxpdGVyYWxzCndpdGggdHJhaWxpbmcgbm9uLWRpZ2l0cywgc3VjaCBh cyAxMjNhYmMsIHdoaWNoIHdvdWxkIGJlIHNjYW5uZWQgYXMKdHdvIHRva2VuczogMTIzIGFu ZCBhYmMuICBUaGlzIGlzIHVuZG9jdW1lbnRlZCBhbmQgc3VycHJpc2luZywgYW5kIGl0Cm1p Z2h0IGFsc28gaW50ZXJmZXJlIHdpdGggc29tZSBleHRlbmRlZCBudW1lcmljIGxpdGVyYWwg c3ludGF4IGJlaW5nCmNvbnRlbXBsYXRlZCBmb3IgdGhlIGZ1dHVyZS4KCkRpc2N1c3Npb246 IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC9iMjM5NTY0Yy1j YWQwLWIyM2UtYzU3ZS0xNjZkODgzY2I5N2RAZW50ZXJwcmlzZWRiLmNvbQotLS0KIHNyYy9i YWNrZW5kL3BhcnNlci9zY2FuLmwgICAgICAgICAgICAgICAgfCAyNyArKysrKystLS0tCiBz cmMvZmVfdXRpbHMvcHNxbHNjYW4ubCAgICAgICAgICAgICAgICAgIHwgMjEgKysrKystLS0K IHNyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubCAgICAgICAgfCAgNCArKwogc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCB8IDY4ICsrKysrKysrKy0t LS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCA1OSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3NjYW4ubAppbmRleCA3NmZkNjk5NmVkLi5mODg5YzJmYWY3 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9zY2FuLmwKQEAgLTM5OSw2ICszOTksMTAgQEAgcmVhbAkJCSh7aW50ZWdl cn18e2RlY2ltYWx9KVtFZV1bLStdP3tkaWdpdH0rCiByZWFsZmFpbDEJCSh7aW50ZWdlcn18 e2RlY2ltYWx9KVtFZV0KIHJlYWxmYWlsMgkJKHtpbnRlZ2VyfXx7ZGVjaW1hbH0pW0VlXVst K10KIAoraW50ZWdlcl9qdW5rCXtpbnRlZ2VyfXtpZGVudF9zdGFydH0KK2RlY2ltYWxfanVu awl7ZGVjaW1hbH17aWRlbnRfc3RhcnR9CityZWFsX2p1bmsJCXtyZWFsfXtpZGVudF9zdGFy dH0KKwogcGFyYW0JCQlcJHtpbnRlZ2VyfQogCiBvdGhlcgkJCS4KQEAgLTk5NiwxOSArMTAw MCwyNCBAQCBvdGhlcgkJCS4KIAkJCQkJcmV0dXJuIEZDT05TVDsKIAkJCQl9CiB7cmVhbGZh aWwxfQkJewotCQkJCQkvKgotCQkJCQkgKiB0aHJvdyBiYWNrIHRoZSBbRWVdLCBhbmQgZmln dXJlIG91dCB3aGV0aGVyIHdoYXQKLQkJCQkJICogcmVtYWlucyBpcyBhbiB7aW50ZWdlcn0g b3Ige2RlY2ltYWx9LgotCQkJCQkgKi8KLQkJCQkJeXlsZXNzKHl5bGVuZyAtIDEpOwogCQkJ CQlTRVRfWVlMTE9DKCk7Ci0JCQkJCXJldHVybiBwcm9jZXNzX2ludGVnZXJfbGl0ZXJhbCh5 eXRleHQsIHl5bHZhbCk7CisJCQkJCXl5ZXJyb3IoInRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVt ZXJpYyBsaXRlcmFsIik7CiAJCQkJfQoge3JlYWxmYWlsMn0JCXsKLQkJCQkJLyogdGhyb3cg YmFjayB0aGUgW0VlXVsrLV0sIGFuZCBwcm9jZWVkIGFzIGFib3ZlICovCi0JCQkJCXl5bGVz cyh5eWxlbmcgLSAyKTsKIAkJCQkJU0VUX1lZTExPQygpOwotCQkJCQlyZXR1cm4gcHJvY2Vz c19pbnRlZ2VyX2xpdGVyYWwoeXl0ZXh0LCB5eWx2YWwpOworCQkJCQl5eWVycm9yKCJ0cmFp bGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0ZXJhbCIpOworCQkJCX0KK3tpbnRlZ2VyX2p1 bmt9CXsKKwkJCQkJU0VUX1lZTExPQygpOworCQkJCQl5eWVycm9yKCJ0cmFpbGluZyBqdW5r IGFmdGVyIG51bWVyaWMgbGl0ZXJhbCIpOworCQkJCX0KK3tkZWNpbWFsX2p1bmt9CXsKKwkJ CQkJU0VUX1lZTExPQygpOworCQkJCQl5eWVycm9yKCJ0cmFpbGluZyBqdW5rIGFmdGVyIG51 bWVyaWMgbGl0ZXJhbCIpOworCQkJCX0KK3tyZWFsX2p1bmt9CQl7CisJCQkJCVNFVF9ZWUxM T0MoKTsKKwkJCQkJeXllcnJvcigidHJhaWxpbmcganVuayBhZnRlciBudW1lcmljIGxpdGVy YWwiKTsKIAkJCQl9CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2ZlX3V0aWxzL3BzcWxzY2FuLmwg Yi9zcmMvZmVfdXRpbHMvcHNxbHNjYW4ubAppbmRleCBkYjhhOGRmYWYyLi4wOTcwOWU2MTUx IDEwMDY0NAotLS0gYS9zcmMvZmVfdXRpbHMvcHNxbHNjYW4ubAorKysgYi9zcmMvZmVfdXRp bHMvcHNxbHNjYW4ubApAQCAtMzM3LDYgKzMzNywxMCBAQCByZWFsCQkJKHtpbnRlZ2VyfXx7 ZGVjaW1hbH0pW0VlXVstK10/e2RpZ2l0fSsKIHJlYWxmYWlsMQkJKHtpbnRlZ2VyfXx7ZGVj aW1hbH0pW0VlXQogcmVhbGZhaWwyCQkoe2ludGVnZXJ9fHtkZWNpbWFsfSlbRWVdWy0rXQog CitpbnRlZ2VyX2p1bmsJe2ludGVnZXJ9e2lkZW50X3N0YXJ0fQorZGVjaW1hbF9qdW5rCXtk ZWNpbWFsfXtpZGVudF9zdGFydH0KK3JlYWxfanVuawkJe3JlYWx9e2lkZW50X3N0YXJ0fQor CiBwYXJhbQkJCVwke2ludGVnZXJ9CiAKIC8qIHBzcWwtc3BlY2lmaWM6IGNoYXJhY3RlcnMg YWxsb3dlZCBpbiB2YXJpYWJsZSBuYW1lcyAqLwpAQCAtODU1LDE3ICs4NTksMTggQEAgb3Ro ZXIJCQkuCiAJCQkJCUVDSE87CiAJCQkJfQoge3JlYWxmYWlsMX0JCXsKLQkJCQkJLyoKLQkJ CQkJICogdGhyb3cgYmFjayB0aGUgW0VlXSwgYW5kIGZpZ3VyZSBvdXQgd2hldGhlciB3aGF0 Ci0JCQkJCSAqIHJlbWFpbnMgaXMgYW4ge2ludGVnZXJ9IG9yIHtkZWNpbWFsfS4KLQkJCQkJ ICogKGluIHBzcWwsIHdlIGRvbid0IGFjdHVhbGx5IGNhcmUuLi4pCi0JCQkJCSAqLwotCQkJ CQl5eWxlc3MoeXlsZW5nIC0gMSk7CiAJCQkJCUVDSE87CiAJCQkJfQoge3JlYWxmYWlsMn0J CXsKLQkJCQkJLyogdGhyb3cgYmFjayB0aGUgW0VlXVsrLV0sIGFuZCBwcm9jZWVkIGFzIGFi b3ZlICovCi0JCQkJCXl5bGVzcyh5eWxlbmcgLSAyKTsKKwkJCQkJRUNITzsKKwkJCQl9Cit7 aW50ZWdlcl9qdW5rfQl7CisJCQkJCUVDSE87CisJCQkJfQore2RlY2ltYWxfanVua30Jewor CQkJCQlFQ0hPOworCQkJCX0KK3tyZWFsX2p1bmt9CQl7CiAJCQkJCUVDSE87CiAJCQkJfQog CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcGdjLmwgYi9zcmMv aW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcGdjLmwKaW5kZXggYTJmOGM3ZjNkOC4uMTEwNDc4 MDU5YiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL3BnYy5sCisr KyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubApAQCAtMzY1LDYgKzM2NSwx MCBAQCByZWFsCQkJKHtpbnRlZ2VyfXx7ZGVjaW1hbH0pW0VlXVstK10/e2RpZ2l0fSsKIHJl YWxmYWlsMQkJKHtpbnRlZ2VyfXx7ZGVjaW1hbH0pW0VlXQogcmVhbGZhaWwyCQkoe2ludGVn ZXJ9fHtkZWNpbWFsfSlbRWVdWy0rXQogCitpbnRlZ2VyX2p1bmsJe2ludGVnZXJ9e2lkZW50 X3N0YXJ0fQorZGVjaW1hbF9qdW5rCXtkZWNpbWFsfXtpZGVudF9zdGFydH0KK3JlYWxfanVu awkJe3JlYWx9e2lkZW50X3N0YXJ0fQorCiBwYXJhbQkJCVwke2ludGVnZXJ9CiAKIC8qIHNw ZWNpYWwgY2hhcmFjdGVycyBmb3Igb3RoZXIgZGJtcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQKaW5kZXggMzJjNmQ4MGMwMy4uMmYxNzZjY2I1MiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0CkBAIC02LDU3 ICs2LDQxIEBACiAtLSBUcmFpbGluZyBqdW5rIGluIG51bWVyaWMgbGl0ZXJhbHMKIC0tCiBT RUxFQ1QgMTIzYWJjOwotIGFiYyAKLS0tLS0tCi0gMTIzCi0oMSByb3cpCi0KK0VSUk9SOiAg dHJhaWxpbmcganVuayBhZnRlciBudW1lcmljIGxpdGVyYWwgYXQgb3IgbmVhciAiMTIzYSIK K0xJTkUgMTogU0VMRUNUIDEyM2FiYzsKKyAgICAgICAgICAgICAgIF4KIFNFTEVDVCAweDBv OwotIHgwbyAKLS0tLS0tCi0gICAwCi0oMSByb3cpCi0KK0VSUk9SOiAgdHJhaWxpbmcganVu ayBhZnRlciBudW1lcmljIGxpdGVyYWwgYXQgb3IgbmVhciAiMHgiCitMSU5FIDE6IFNFTEVD VCAweDBvOworICAgICAgICAgICAgICAgXgogU0VMRUNUIDFfMl8zOwotIF8yXzMgCi0tLS0t LS0KLSAgICAxCi0oMSByb3cpCi0KK0VSUk9SOiAgdHJhaWxpbmcganVuayBhZnRlciBudW1l cmljIGxpdGVyYWwgYXQgb3IgbmVhciAiMV8iCitMSU5FIDE6IFNFTEVDVCAxXzJfMzsKKyAg ICAgICAgICAgICAgIF4KIFNFTEVDVCAwLmE7Ci0gYSAKLS0tLQotIDAKLSgxIHJvdykKLQor RVJST1I6ICB0cmFpbGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0ZXJhbCBhdCBvciBuZWFy ICIwLmEiCitMSU5FIDE6IFNFTEVDVCAwLmE7CisgICAgICAgICAgICAgICBeCiBTRUxFQ1Qg MC4wYTsKLSAgYSAgCi0tLS0tLQotIDAuMAotKDEgcm93KQotCitFUlJPUjogIHRyYWlsaW5n IGp1bmsgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsIGF0IG9yIG5lYXIgIjAuMGEiCitMSU5FIDE6 IFNFTEVDVCAwLjBhOworICAgICAgICAgICAgICAgXgogU0VMRUNUIC4wYTsKLSAgYSAgCi0t LS0tLQotIDAuMAotKDEgcm93KQotCitFUlJPUjogIHRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVt ZXJpYyBsaXRlcmFsIGF0IG9yIG5lYXIgIi4wYSIKK0xJTkUgMTogU0VMRUNUIC4wYTsKKyAg ICAgICAgICAgICAgIF4KIFNFTEVDVCAwLjBlMWE7Ci0gYSAKLS0tLQotIDAKLSgxIHJvdykK LQorRVJST1I6ICB0cmFpbGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0ZXJhbCBhdCBvciBu ZWFyICIwLjBlMWEiCitMSU5FIDE6IFNFTEVDVCAwLjBlMWE7CisgICAgICAgICAgICAgICBe CiBTRUxFQ1QgMC4wZTsKLSAgZSAgCi0tLS0tLQotIDAuMAotKDEgcm93KQotCitFUlJPUjog IHRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsIGF0IG9yIG5lYXIgIjAuMGUi CitMSU5FIDE6IFNFTEVDVCAwLjBlOworICAgICAgICAgICAgICAgXgogU0VMRUNUIDAuMGUr YTsKLUVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIisiCitFUlJPUjogIHRyYWls aW5nIGp1bmsgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsIGF0IG9yIG5lYXIgIjAuMGUrIgogTElO RSAxOiBTRUxFQ1QgMC4wZSthOwotICAgICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAg ICAgIF4KIC0tCiAtLSBUZXN0IGltcGxpY2l0IHR5cGUgY29udmVyc2lvbnMKIC0tIFRoaXMg ZmFpbHMgZm9yIFBvc3RncmVzIHY2LjEgKGFuZCBlYXJsaWVyPykKLS0gCjIuMzQuMQoK --------------DlbcwxvzFIE30L5TyUyoLRwk Content-Type: text/plain; charset=UTF-8; name="v6-0006-Non-decimal-integer-literals.patch" Content-Disposition: attachment; filename="v6-0006-Non-decimal-integer-literals.patch" Content-Transfer-Encoding: base64 RnJvbSA4Y2Y0ODRlZDQ3MjYzZWNmMjU3ZTM3NzA3MTVjZmE4MzM5NGYxZmE0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAzMCBEZWMgMjAyMSAxMDoyNjozNyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgNi83XSBOb24tZGVjaW1hbCBpbnRlZ2VyIGxpdGVyYWxzCgpBZGQgc3Vw cG9ydCBmb3IgaGV4YWRlY2ltYWwsIG9jdGFsLCBhbmQgYmluYXJ5IGludGVnZXIgbGl0ZXJh bHM6CgogICAgMHg0MkYKICAgIDBvMjczCiAgICAwYjEwMDEwMQoKcGVyIFNRTDoyMDJ4IGRy YWZ0LgoKVGhpcyBhZGRzIHN1cHBvcnQgaW4gdGhlIGxleGVyIGFzIHdlbGwgYXMgaW4gdGhl IGludGVnZXIgdHlwZSBpbnB1dApmdW5jdGlvbnMuCgpEaXNjdXNzaW9uOiBodHRwczovL3d3 dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvYjIzOTU2NGMtY2FkMC1iMjNlLWM1 N2UtMTY2ZDg4M2NiOTdkQGVudGVycHJpc2VkYi5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvc3lu dGF4LnNnbWwgICAgICAgICAgICAgICAgICAgfCAgMjYgKysrKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsIHwgICA2ICstCiBzcmMvYmFja2VuZC9jYXRh bG9nL3NxbF9mZWF0dXJlcy50eHQgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2Vy L3NjYW4ubCAgICAgICAgICAgICAgICAgIHwgIDk5ICsrKysrKysrKysrLS0tLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L251bXV0aWxzLmMgICAgICAgICAgIHwgMTQwICsrKysrKysrKysr KysrKysrKysrKwogc3JjL2ZlX3V0aWxzL3BzcWxzY2FuLmwgICAgICAgICAgICAgICAgICAg IHwgIDc4ICsrKysrKysrKy0tLQogc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL3BnYy5s ICAgICAgICAgIHwgIDkzICsrKysrKystLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2ludDIub3V0ICAgICAgICAgfCAgMTkgKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2ludDQub3V0ICAgICAgICAgfCAgMTkgKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2ludDgub3V0ICAgICAgICAgfCAgMTkgKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL251bWVyb2xvZ3kub3V0ICAgfCAgNTkgKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9pbnQyLnNxbCAgICAgICAgICAgICAgfCAgIDcgKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2ludDQuc3FsICAgICAgICAgICAgICB8ICAgNyArKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvaW50OC5zcWwgICAgICAgICAgICAgIHwgICA3ICsrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9udW1lcm9sb2d5LnNxbCAgICAgICAgfCAgMjEgKysrLQogMTUgZmlsZXMgY2hhbmdlZCwg NTExIGluc2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9zeW50YXguc2dtbCBiL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbAppbmRleCBk NjY1NjBiNTg3Li5hNGYwNDE5OWM2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3ludGF4 LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCkBAIC02OTQsNiArNjk0LDMy IEBAIDx0aXRsZT5OdW1lcmljIENvbnN0YW50czwvdGl0bGU+CiA8L2xpdGVyYWxsYXlvdXQ+ CiAgICAgPC9wYXJhPgogCisgICAgPHBhcmE+CisgICAgIEFkZGl0aW9uYWxseSwgbm9uLWRl Y2ltYWwgaW50ZWdlciBjb25zdGFudHMgY2FuIGJlIHVzZWQgaW4gdGhlc2UgZm9ybXM6Cis8 c3lub3BzaXM+CisweDxyZXBsYWNlYWJsZT5oZXhkaWdpdHM8L3JlcGxhY2VhYmxlPgorMG88 cmVwbGFjZWFibGU+b2N0ZGlnaXRzPC9yZXBsYWNlYWJsZT4KKzBiPHJlcGxhY2VhYmxlPmJp bmRpZ2l0czwvcmVwbGFjZWFibGU+Cis8L3N5bm9wc2lzPgorICAgICA8cmVwbGFjZWFibGU+ aGV4ZGlnaXRzPC9yZXBsYWNlYWJsZT4gaXMgb25lIG9yIG1vcmUgaGV4YWRlY2ltYWwgZGln aXRzCisgICAgICgwLTksIEEtRiksIDxyZXBsYWNlYWJsZT5vY3RkaWdpdHM8L3JlcGxhY2Vh YmxlPiBpcyBvbmUgb3IgbW9yZSBvY3RhbAorICAgICBkaWdpdHMgKDAtNyksIDxyZXBsYWNl YWJsZT5iaW5kaWdpdHM8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb3IgbW9yZSBiaW5hcnkKKyAg ICAgZGlnaXRzICgwIG9yIDEpLiAgSGV4YWRlY2ltYWwgZGlnaXRzIGFuZCB0aGUgcmFkaXgg cHJlZml4ZXMgY2FuIGJlIGluCisgICAgIHVwcGVyIG9yIGxvd2VyIGNhc2UuICBOb3RlIHRo YXQgb25seSBpbnRlZ2VycyBjYW4gaGF2ZSBub24tZGVjaW1hbCBmb3JtcywKKyAgICAgbm90 IG51bWJlcnMgd2l0aCBmcmFjdGlvbmFsIHBhcnRzLgorICAgIDwvcGFyYT4KKworICAgIDxw YXJhPgorICAgICBUaGVzZSBhcmUgc29tZSBleGFtcGxlcyBvZiB0aGlzOgorPGxpdGVyYWxs YXlvdXQ+MGIxMDAxMDEKKzBCMTAwMTEwMDEKKzBvMjczCiswTzc1NQorMHg0MmYKKzBYRkZG RgorPC9saXRlcmFsbGF5b3V0PgorICAgIDwvcGFyYT4KKwogICAgIDxwYXJhPgogICAgICA8 aW5kZXh0ZXJtPjxwcmltYXJ5PmludGVnZXI8L3ByaW1hcnk+PC9pbmRleHRlcm0+CiAgICAg IDxpbmRleHRlcm0+PHByaW1hcnk+YmlnaW50PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCmluZGV4IDExZDlk ZDYwYzIuLmNlODhjNDgzYTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5m b3JtYXRpb25fc2NoZW1hLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0 aW9uX3NjaGVtYS5zcWwKQEAgLTExOSw3ICsxMTksNyBAQCBDUkVBVEUgRlVOQ1RJT04gX3Bn X251bWVyaWNfcHJlY2lzaW9uKHR5cGlkIG9pZCwgdHlwbW9kIGludDQpIFJFVFVSTlMgaW50 ZWdlcgogICAgICAgICAgV0hFTiAxNzAwIC8qbnVtZXJpYyovIFRIRU4KICAgICAgICAgICAg ICAgQ0FTRSBXSEVOICQyID0gLTEKICAgICAgICAgICAgICAgICAgICBUSEVOIG51bGwKLSAg ICAgICAgICAgICAgICAgICBFTFNFICgoJDIgLSA0KSA+PiAxNikgJiA2NTUzNQorICAgICAg ICAgICAgICAgICAgIEVMU0UgKCgkMiAtIDQpID4+IDE2KSAmIDB4RkZGRgogICAgICAgICAg ICAgICAgICAgIEVORAogICAgICAgICAgV0hFTiA3MDAgLypmbG9hdDQqLyBUSEVOIDI0IC8q RkxUX01BTlRfRElHKi8KICAgICAgICAgIFdIRU4gNzAxIC8qZmxvYXQ4Ki8gVEhFTiA1MyAv KkRCTF9NQU5UX0RJRyovCkBAIC0xNDcsNyArMTQ3LDcgQEAgQ1JFQVRFIEZVTkNUSU9OIF9w Z19udW1lcmljX3NjYWxlKHR5cGlkIG9pZCwgdHlwbW9kIGludDQpIFJFVFVSTlMgaW50ZWdl cgogICAgICAgIFdIRU4gJDEgSU4gKDE3MDApIFRIRU4KICAgICAgICAgICAgIENBU0UgV0hF TiAkMiA9IC0xCiAgICAgICAgICAgICAgICAgIFRIRU4gbnVsbAotICAgICAgICAgICAgICAg ICBFTFNFICgkMiAtIDQpICYgNjU1MzUKKyAgICAgICAgICAgICAgICAgRUxTRSAoJDIgLSA0 KSAmIDB4RkZGRgogICAgICAgICAgICAgICAgICBFTkQKICAgICAgICBFTFNFIG51bGwKICAg RU5EOwpAQCAtMTYzLDcgKzE2Myw3IEBAIENSRUFURSBGVU5DVElPTiBfcGdfZGF0ZXRpbWVf cHJlY2lzaW9uKHR5cGlkIG9pZCwgdHlwbW9kIGludDQpIFJFVFVSTlMgaW50ZWdlcgogICAg ICAgIFdIRU4gJDEgSU4gKDEwODMsIDExMTQsIDExODQsIDEyNjYpIC8qIHRpbWUsIHRpbWVz dGFtcCwgc2FtZSArIHR6ICovCiAgICAgICAgICAgIFRIRU4gQ0FTRSBXSEVOICQyIDwgMCBU SEVOIDYgRUxTRSAkMiBFTkQKICAgICAgICBXSEVOICQxIElOICgxMTg2KSAvKiBpbnRlcnZh bCAqLwotICAgICAgICAgICBUSEVOIENBU0UgV0hFTiAkMiA8IDAgT1IgJDIgJiA2NTUzNSA9 IDY1NTM1IFRIRU4gNiBFTFNFICQyICYgNjU1MzUgRU5ECisgICAgICAgICAgIFRIRU4gQ0FT RSBXSEVOICQyIDwgMCBPUiAkMiAmIDB4RkZGRiA9IDB4RkZGRiBUSEVOIDYgRUxTRSAkMiAm IDB4RkZGRiBFTkQKICAgICAgICBFTFNFIG51bGwKICAgRU5EOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQgYi9zcmMvYmFja2VuZC9jYXRh bG9nL3NxbF9mZWF0dXJlcy50eHQKaW5kZXggYjhhNzhmNGQ0MS4uNTQ1Y2I0NTEzMSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dApAQCAtNTI2LDYgKzUyNiw3IEBA IFQ2NTIJU1FMLWR5bmFtaWMgc3RhdGVtZW50cyBpbiBTUUwgcm91dGluZXMJCQlOTwogVDY1 MwlTUUwtc2NoZW1hIHN0YXRlbWVudHMgaW4gZXh0ZXJuYWwgcm91dGluZXMJCQlZRVMJCiBU NjU0CVNRTC1keW5hbWljIHN0YXRlbWVudHMgaW4gZXh0ZXJuYWwgcm91dGluZXMJCQlOTwkK IFQ2NTUJQ3ljbGljYWxseSBkZXBlbmRlbnQgcm91dGluZXMJCQlZRVMJCitUNjYxCU5vbi1k ZWNpbWFsIGludGVnZXIgbGl0ZXJhbHMJCQlZRVMJU1FMOjIwMnggZHJhZnQKIFQ4MTEJQmFz aWMgU1FML0pTT04gY29uc3RydWN0b3IgZnVuY3Rpb25zCQkJTk8JCiBUODEyCVNRTC9KU09O OiBKU09OX09CSkVDVEFHRwkJCU5PCQogVDgxMwlTUUwvSlNPTjogSlNPTl9BUlJBWUFHRyB3 aXRoIE9SREVSIEJZCQkJTk8JCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvc2Nh bi5sIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3NjYW4ubAppbmRleCBmODg5YzJmYWY3Li5jNTUz MzhiNjAxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9zY2FuLmwKQEAgLTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMgdm9p ZCBhZGRsaXQoY2hhciAqeXRleHQsIGludCB5bGVuZywgY29yZV95eXNjYW5fdCB5eXNjYW5u ZXIpOwogc3RhdGljIHZvaWQgYWRkbGl0Y2hhcih1bnNpZ25lZCBjaGFyIHljaGFyLCBjb3Jl X3l5c2Nhbl90IHl5c2Nhbm5lcik7CiBzdGF0aWMgY2hhciAqbGl0YnVmZHVwKGNvcmVfeXlz Y2FuX3QgeXlzY2FubmVyKTsKIHN0YXRpYyB1bnNpZ25lZCBjaGFyIHVuZXNjYXBlX3Npbmds ZV9jaGFyKHVuc2lnbmVkIGNoYXIgYywgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpOwotc3Rh dGljIGludAlwcm9jZXNzX2ludGVnZXJfbGl0ZXJhbChjb25zdCBjaGFyICp0b2tlbiwgWVlT VFlQRSAqbHZhbCk7CitzdGF0aWMgaW50CXByb2Nlc3NfaW50ZWdlcl9saXRlcmFsKGNvbnN0 IGNoYXIgKnRva2VuLCBZWVNUWVBFICpsdmFsLCBpbnQgYmFzZSk7CiBzdGF0aWMgdm9pZCBh ZGR1bmljb2RlKHBnX3djaGFyIGMsIHl5c2Nhbl90IHl5c2Nhbm5lcik7CiAKICNkZWZpbmUg eXllcnJvcihtc2cpICBzY2FubmVyX3l5ZXJyb3IobXNnLCB5eXNjYW5uZXIpCkBAIC0zODUs MjUgKzM4NSw0MCBAQCBvcGVyYXRvcgkJe29wX2NoYXJzfSsKICAqIFVuYXJ5IG1pbnVzIGlz IG5vdCBwYXJ0IG9mIGEgbnVtYmVyIGhlcmUuICBJbnN0ZWFkIHdlIHBhc3MgaXQgc2VwYXJh dGVseSB0bwogICogdGhlIHBhcnNlciwgYW5kIHRoZXJlIGl0IGdldHMgY29lcmNlZCB2aWEg ZG9OZWdhdGUoKS4KICAqCi0gKiB7ZGVjaW1hbGZhaWx9IGlzIHVzZWQgYmVjYXVzZSB3ZSB3 b3VsZCBsaWtlICIxLi4xMCIgdG8gbGV4IGFzIDEsIGRvdF9kb3QsIDEwLgorICoge251bWVy aWNmYWlsfSBpcyB1c2VkIGJlY2F1c2Ugd2Ugd291bGQgbGlrZSAiMS4uMTAiIHRvIGxleCBh cyAxLCBkb3RfZG90LCAxMC4KICAqCiAgKiB7cmVhbGZhaWwxfSBhbmQge3JlYWxmYWlsMn0g YXJlIGFkZGVkIHRvIHByZXZlbnQgdGhlIG5lZWQgZm9yIHNjYW5uZXIKICAqIGJhY2t1cCB3 aGVuIHRoZSB7cmVhbH0gcnVsZSBmYWlscyB0byBtYXRjaCBjb21wbGV0ZWx5LgogICovCi1k aWdpdAkJCVswLTldCi0KLWludGVnZXIJCQl7ZGlnaXR9KwotZGVjaW1hbAkJCSgoe2RpZ2l0 fSpcLntkaWdpdH0rKXwoe2RpZ2l0fStcLntkaWdpdH0qKSkKLWRlY2ltYWxmYWlsCQl7ZGln aXR9K1wuXC4KLXJlYWwJCQkoe2ludGVnZXJ9fHtkZWNpbWFsfSlbRWVdWy0rXT97ZGlnaXR9 KwotcmVhbGZhaWwxCQkoe2ludGVnZXJ9fHtkZWNpbWFsfSlbRWVdCi1yZWFsZmFpbDIJCSh7 aW50ZWdlcn18e2RlY2ltYWx9KVtFZV1bLStdCi0KLWludGVnZXJfanVuawl7aW50ZWdlcn17 aWRlbnRfc3RhcnR9Ci1kZWNpbWFsX2p1bmsJe2RlY2ltYWx9e2lkZW50X3N0YXJ0fQorZGVj ZGlnaXQJCVswLTldCitoZXhkaWdpdAkJWzAtOUEtRmEtZl0KK29jdGRpZ2l0CQlbMC03XQor YmluZGlnaXQJCVswLTFdCisKK2RlY2ludGVnZXIJCXtkZWNkaWdpdH0rCitoZXhpbnRlZ2Vy CQkwW3hYXXtoZXhkaWdpdH0rCitvY3RpbnRlZ2VyCQkwW29PXXtvY3RkaWdpdH0rCitiaW5p bnRlZ2VyCQkwW2JCXXtiaW5kaWdpdH0rCisKK2hleGZhaWwJCQkwW3hYXQorb2N0ZmFpbAkJ CTBbb09dCitiaW5mYWlsCQkJMFtiQl0KKworbnVtZXJpYwkJCSgoe2RlY2ludGVnZXJ9XC57 ZGVjaW50ZWdlcn0/KXwoXC57ZGVjaW50ZWdlcn0pKQorbnVtZXJpY2ZhaWwJCXtkZWNkaWdp dH0rXC5cLgorCityZWFsCQkJKHtkZWNpbnRlZ2VyfXx7bnVtZXJpY30pW0VlXVstK10/e2Rl Y2RpZ2l0fSsKK3JlYWxmYWlsMQkJKHtkZWNpbnRlZ2VyfXx7bnVtZXJpY30pW0VlXQorcmVh bGZhaWwyCQkoe2RlY2ludGVnZXJ9fHtudW1lcmljfSlbRWVdWy0rXQorCitkZWNpbnRlZ2Vy X2p1bmsJe2RlY2ludGVnZXJ9e2lkZW50X3N0YXJ0fQoraGV4aW50ZWdlcl9qdW5rCXtoZXhp bnRlZ2VyfXtpZGVudF9zdGFydH0KK29jdGludGVnZXJfanVuawl7b2N0aW50ZWdlcn17aWRl bnRfc3RhcnR9CitiaW5pbnRlZ2VyX2p1bmsJe2JpbmludGVnZXJ9e2lkZW50X3N0YXJ0fQor bnVtZXJpY19qdW5rCXtudW1lcmljfXtpZGVudF9zdGFydH0KIHJlYWxfanVuawkJe3JlYWx9 e2lkZW50X3N0YXJ0fQogCi1wYXJhbQkJCVwke2ludGVnZXJ9CitwYXJhbQkJCVwke2RlY2lu dGVnZXJ9CiAKIG90aGVyCQkJLgogCkBAIC05NzksMjAgKzk5NCw0NCBAQCBvdGhlcgkJCS4K IAkJCQkJcmV0dXJuIFBBUkFNOwogCQkJCX0KIAote2ludGVnZXJ9CQl7Cit7ZGVjaW50ZWdl cn0JeworCQkJCQlTRVRfWVlMTE9DKCk7CisJCQkJCXJldHVybiBwcm9jZXNzX2ludGVnZXJf bGl0ZXJhbCh5eXRleHQsIHl5bHZhbCwgMTApOworCQkJCX0KK3toZXhpbnRlZ2VyfQl7CisJ CQkJCVNFVF9ZWUxMT0MoKTsKKwkJCQkJcmV0dXJuIHByb2Nlc3NfaW50ZWdlcl9saXRlcmFs KHl5dGV4dCArIDIsIHl5bHZhbCwgMTYpOworCQkJCX0KK3tvY3RpbnRlZ2VyfQl7CisJCQkJ CVNFVF9ZWUxMT0MoKTsKKwkJCQkJcmV0dXJuIHByb2Nlc3NfaW50ZWdlcl9saXRlcmFsKHl5 dGV4dCArIDIsIHl5bHZhbCwgOCk7CisJCQkJfQore2JpbmludGVnZXJ9CXsKKwkJCQkJU0VU X1lZTExPQygpOworCQkJCQlyZXR1cm4gcHJvY2Vzc19pbnRlZ2VyX2xpdGVyYWwoeXl0ZXh0 ICsgMiwgeXlsdmFsLCAyKTsKKwkJCQl9Cit7aGV4ZmFpbH0JCXsKKwkJCQkJU0VUX1lZTExP QygpOworCQkJCQl5eWVycm9yKCJpbnZhbGlkIGhleGFkZWNpbWFsIGludGVnZXIiKTsKKwkJ CQl9Cit7b2N0ZmFpbH0JCXsKIAkJCQkJU0VUX1lZTExPQygpOwotCQkJCQlyZXR1cm4gcHJv Y2Vzc19pbnRlZ2VyX2xpdGVyYWwoeXl0ZXh0LCB5eWx2YWwpOworCQkJCQl5eWVycm9yKCJp bnZhbGlkIG9jdGFsIGludGVnZXIiKTsKIAkJCQl9Ci17ZGVjaW1hbH0JCXsKK3tiaW5mYWls fQkJeworCQkJCQlTRVRfWVlMTE9DKCk7CisJCQkJCXl5ZXJyb3IoImludmFsaWQgYmluYXJ5 IGludGVnZXIiKTsKKwkJCQl9Cit7bnVtZXJpY30JCXsKIAkJCQkJU0VUX1lZTExPQygpOwog CQkJCQl5eWx2YWwtPnN0ciA9IHBzdHJkdXAoeXl0ZXh0KTsKIAkJCQkJcmV0dXJuIEZDT05T VDsKIAkJCQl9Ci17ZGVjaW1hbGZhaWx9CXsKK3tudW1lcmljZmFpbH0JewogCQkJCQkvKiB0 aHJvdyBiYWNrIHRoZSAuLiwgYW5kIHRyZWF0IGFzIGludGVnZXIgKi8KIAkJCQkJeXlsZXNz KHl5bGVuZyAtIDIpOwogCQkJCQlTRVRfWVlMTE9DKCk7Ci0JCQkJCXJldHVybiBwcm9jZXNz X2ludGVnZXJfbGl0ZXJhbCh5eXRleHQsIHl5bHZhbCk7CisJCQkJCXJldHVybiBwcm9jZXNz X2ludGVnZXJfbGl0ZXJhbCh5eXRleHQsIHl5bHZhbCwgMTApOwogCQkJCX0KIHtyZWFsfQkJ CXsKIAkJCQkJU0VUX1lZTExPQygpOwpAQCAtMTAwNywxMSArMTA0NiwyMyBAQCBvdGhlcgkJ CS4KIAkJCQkJU0VUX1lZTExPQygpOwogCQkJCQl5eWVycm9yKCJ0cmFpbGluZyBqdW5rIGFm dGVyIG51bWVyaWMgbGl0ZXJhbCIpOwogCQkJCX0KLXtpbnRlZ2VyX2p1bmt9CXsKK3tkZWNp bnRlZ2VyX2p1bmt9CXsKKwkJCQkJU0VUX1lZTExPQygpOworCQkJCQl5eWVycm9yKCJ0cmFp bGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0ZXJhbCIpOworCQkJCX0KK3toZXhpbnRlZ2Vy X2p1bmt9CXsKKwkJCQkJU0VUX1lZTExPQygpOworCQkJCQl5eWVycm9yKCJ0cmFpbGluZyBq dW5rIGFmdGVyIG51bWVyaWMgbGl0ZXJhbCIpOworCQkJCX0KK3tvY3RpbnRlZ2VyX2p1bmt9 CXsKKwkJCQkJU0VUX1lZTExPQygpOworCQkJCQl5eWVycm9yKCJ0cmFpbGluZyBqdW5rIGFm dGVyIG51bWVyaWMgbGl0ZXJhbCIpOworCQkJCX0KK3tiaW5pbnRlZ2VyX2p1bmt9CXsKIAkJ CQkJU0VUX1lZTExPQygpOwogCQkJCQl5eWVycm9yKCJ0cmFpbGluZyBqdW5rIGFmdGVyIG51 bWVyaWMgbGl0ZXJhbCIpOwogCQkJCX0KLXtkZWNpbWFsX2p1bmt9CXsKK3tudW1lcmljX2p1 bmt9CXsKIAkJCQkJU0VUX1lZTExPQygpOwogCQkJCQl5eWVycm9yKCJ0cmFpbGluZyBqdW5r IGFmdGVyIG51bWVyaWMgbGl0ZXJhbCIpOwogCQkJCX0KQEAgLTEzMDcsMTcgKzEzNTgsMTcg QEAgbGl0YnVmZHVwKGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogfQogCiAvKgotICogUHJv Y2VzcyB7aW50ZWdlcn0uICBOb3RlIHRoaXMgd2lsbCBhbHNvIGRvIHRoZSByaWdodCB0aGlu ZyB3aXRoIHtkZWNpbWFsfSwKKyAqIFByb2Nlc3MgeyppbnRlZ2VyfS4gIE5vdGUgdGhpcyB3 aWxsIGFsc28gZG8gdGhlIHJpZ2h0IHRoaW5nIHdpdGgge251bWVyaWN9LAogICogaWUgZGln aXRzIGFuZCBhIGRlY2ltYWwgcG9pbnQuCiAgKi8KIHN0YXRpYyBpbnQKLXByb2Nlc3NfaW50 ZWdlcl9saXRlcmFsKGNvbnN0IGNoYXIgKnRva2VuLCBZWVNUWVBFICpsdmFsKQorcHJvY2Vz c19pbnRlZ2VyX2xpdGVyYWwoY29uc3QgY2hhciAqdG9rZW4sIFlZU1RZUEUgKmx2YWwsIGlu dCBiYXNlKQogewogCWludAkJCXZhbDsKIAljaGFyCSAgICplbmRwdHI7CiAKIAllcnJubyA9 IDA7Ci0JdmFsID0gc3RydG9pbnQodG9rZW4sICZlbmRwdHIsIDEwKTsKKwl2YWwgPSBzdHJ0 b2ludCh0b2tlbiwgJmVuZHB0ciwgYmFzZSk7CiAJaWYgKCplbmRwdHIgIT0gJ1wwJyB8fCBl cnJubyA9PSBFUkFOR0UpCiAJewogCQkvKiBpbnRlZ2VyIHRvbyBsYXJnZSAob3IgY29udGFp bnMgZGVjaW1hbCBwdCksIHRyZWF0IGl0IGFzIGEgZmxvYXQgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW11dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bXV0aWxzLmMKaW5kZXggMThkZTU0ZGE0MC4uMzU4Y2VlMmVjNCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L251bXV0aWxzLmMKQEAgLTg1LDYgKzg1LDE3IEBAIGRlY2ltYWxMZW5ndGg2NChj b25zdCB1aW50NjQgdikKIAlyZXR1cm4gdCArICh2ID49IFBvd2Vyc09mVGVuW3RdKTsKIH0K IAorc3RhdGljIGNvbnN0IGludDggaGV4bG9va3VwWzEyOF0gPSB7CisJLTEsIC0xLCAtMSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisJ LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0x LCAtMSwgLTEsCisJLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0x LCAtMSwgLTEsIC0xLCAtMSwgLTEsCisJMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKwktMSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKwktMSwgLTEsIC0xLCAtMSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKwktMSwg MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0x LCAtMSwKKwktMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0x LCAtMSwgLTEsIC0xLCAtMSwKK307CisKIC8qCiAgKiBDb252ZXJ0IGlucHV0IHN0cmluZyB0 byBhIHNpZ25lZCAxNiBiaXQgaW50ZWdlci4KICAqCkBAIC0xMjAsNiArMTMxLDQ4IEBAIHBn X3N0cnRvaW50MTYoY29uc3QgY2hhciAqcykKIAkJZ290byBpbnZhbGlkX3N5bnRheDsKIAog CS8qIHByb2Nlc3MgZGlnaXRzICovCisJaWYgKHB0clswXSA9PSAnMCcgJiYgKHB0clsxXSA9 PSAneCcgfHwgcHRyWzFdID09ICdYJykpCisJeworCQlwdHIgKz0gMjsKKwkJd2hpbGUgKCpw dHIgJiYgaXN4ZGlnaXQoKHVuc2lnbmVkIGNoYXIpICpwdHIpKQorCQl7CisJCQlpbnQ4CQlk aWdpdCA9IGhleGxvb2t1cFsodW5zaWduZWQgY2hhcikgKnB0cl07CisKKwkJCWlmICh1bmxp a2VseShwZ19tdWxfczE2X292ZXJmbG93KHRtcCwgMTYsICZ0bXApKSB8fAorCQkJCXVubGlr ZWx5KHBnX3N1Yl9zMTZfb3ZlcmZsb3codG1wLCBkaWdpdCwgJnRtcCkpKQorCQkJCWdvdG8g b3V0X29mX3JhbmdlOworCisJCQlwdHIrKzsKKwkJfQorCX0KKwllbHNlIGlmIChwdHJbMF0g PT0gJzAnICYmIChwdHJbMV0gPT0gJ28nIHx8IHB0clsxXSA9PSAnTycpKQorCXsKKwkJcHRy ICs9IDI7CisKKwkJd2hpbGUgKCpwdHIgJiYgKCpwdHIgPj0gJzAnICYmICpwdHIgPD0gJzcn KSkKKwkJeworCQkJaW50OAkJZGlnaXQgPSAoKnB0cisrIC0gJzAnKTsKKworCQkJaWYgKHVu bGlrZWx5KHBnX211bF9zMTZfb3ZlcmZsb3codG1wLCA4LCAmdG1wKSkgfHwKKwkJCQl1bmxp a2VseShwZ19zdWJfczE2X292ZXJmbG93KHRtcCwgZGlnaXQsICZ0bXApKSkKKwkJCQlnb3Rv IG91dF9vZl9yYW5nZTsKKwkJfQorCX0KKwllbHNlIGlmIChwdHJbMF0gPT0gJzAnICYmIChw dHJbMV0gPT0gJ2InIHx8IHB0clsxXSA9PSAnQicpKQorCXsKKwkJcHRyICs9IDI7CisKKwkJ d2hpbGUgKCpwdHIgJiYgKCpwdHIgPj0gJzAnICYmICpwdHIgPD0gJzEnKSkKKwkJeworCQkJ aW50OAkJZGlnaXQgPSAoKnB0cisrIC0gJzAnKTsKKworCQkJaWYgKHVubGlrZWx5KHBnX211 bF9zMTZfb3ZlcmZsb3codG1wLCAyLCAmdG1wKSkgfHwKKwkJCQl1bmxpa2VseShwZ19zdWJf czE2X292ZXJmbG93KHRtcCwgZGlnaXQsICZ0bXApKSkKKwkJCQlnb3RvIG91dF9vZl9yYW5n ZTsKKwkJfQorCX0KKwllbHNlCisJewogCXdoaWxlICgqcHRyICYmIGlzZGlnaXQoKHVuc2ln bmVkIGNoYXIpICpwdHIpKQogCXsKIAkJaW50OAkJZGlnaXQgPSAoKnB0cisrIC0gJzAnKTsK QEAgLTEyOCw2ICsxODEsNyBAQCBwZ19zdHJ0b2ludDE2KGNvbnN0IGNoYXIgKnMpCiAJCQl1 bmxpa2VseShwZ19zdWJfczE2X292ZXJmbG93KHRtcCwgZGlnaXQsICZ0bXApKSkKIAkJCWdv dG8gb3V0X29mX3JhbmdlOwogCX0KKwl9CiAKIAkvKiBhbGxvdyB0cmFpbGluZyB3aGl0ZXNw YWNlLCBidXQgbm90IG90aGVyIHRyYWlsaW5nIGNoYXJzICovCiAJd2hpbGUgKCpwdHIgIT0g J1wwJyAmJiBpc3NwYWNlKCh1bnNpZ25lZCBjaGFyKSAqcHRyKSkKQEAgLTE5Niw2ICsyNTAs NDggQEAgcGdfc3RydG9pbnQzMihjb25zdCBjaGFyICpzKQogCQlnb3RvIGludmFsaWRfc3lu dGF4OwogCiAJLyogcHJvY2VzcyBkaWdpdHMgKi8KKwlpZiAocHRyWzBdID09ICcwJyAmJiAo cHRyWzFdID09ICd4JyB8fCBwdHJbMV0gPT0gJ1gnKSkKKwl7CisJCXB0ciArPSAyOworCQl3 aGlsZSAoKnB0ciAmJiBpc3hkaWdpdCgodW5zaWduZWQgY2hhcikgKnB0cikpCisJCXsKKwkJ CWludDgJCWRpZ2l0ID0gaGV4bG9va3VwWyh1bnNpZ25lZCBjaGFyKSAqcHRyXTsKKworCQkJ aWYgKHVubGlrZWx5KHBnX211bF9zMzJfb3ZlcmZsb3codG1wLCAxNiwgJnRtcCkpIHx8CisJ CQkJdW5saWtlbHkocGdfc3ViX3MzMl9vdmVyZmxvdyh0bXAsIGRpZ2l0LCAmdG1wKSkpCisJ CQkJZ290byBvdXRfb2ZfcmFuZ2U7CisKKwkJCXB0cisrOworCQl9CisJfQorCWVsc2UgaWYg KHB0clswXSA9PSAnMCcgJiYgKHB0clsxXSA9PSAnbycgfHwgcHRyWzFdID09ICdPJykpCisJ eworCQlwdHIgKz0gMjsKKworCQl3aGlsZSAoKnB0ciAmJiAoKnB0ciA+PSAnMCcgJiYgKnB0 ciA8PSAnNycpKQorCQl7CisJCQlpbnQ4CQlkaWdpdCA9ICgqcHRyKysgLSAnMCcpOworCisJ CQlpZiAodW5saWtlbHkocGdfbXVsX3MzMl9vdmVyZmxvdyh0bXAsIDgsICZ0bXApKSB8fAor CQkJCXVubGlrZWx5KHBnX3N1Yl9zMzJfb3ZlcmZsb3codG1wLCBkaWdpdCwgJnRtcCkpKQor CQkJCWdvdG8gb3V0X29mX3JhbmdlOworCQl9CisJfQorCWVsc2UgaWYgKHB0clswXSA9PSAn MCcgJiYgKHB0clsxXSA9PSAnYicgfHwgcHRyWzFdID09ICdCJykpCisJeworCQlwdHIgKz0g MjsKKworCQl3aGlsZSAoKnB0ciAmJiAoKnB0ciA+PSAnMCcgJiYgKnB0ciA8PSAnMScpKQor CQl7CisJCQlpbnQ4CQlkaWdpdCA9ICgqcHRyKysgLSAnMCcpOworCisJCQlpZiAodW5saWtl bHkocGdfbXVsX3MzMl9vdmVyZmxvdyh0bXAsIDIsICZ0bXApKSB8fAorCQkJCXVubGlrZWx5 KHBnX3N1Yl9zMzJfb3ZlcmZsb3codG1wLCBkaWdpdCwgJnRtcCkpKQorCQkJCWdvdG8gb3V0 X29mX3JhbmdlOworCQl9CisJfQorCWVsc2UKKwl7CiAJd2hpbGUgKCpwdHIgJiYgaXNkaWdp dCgodW5zaWduZWQgY2hhcikgKnB0cikpCiAJewogCQlpbnQ4CQlkaWdpdCA9ICgqcHRyKysg LSAnMCcpOwpAQCAtMjA0LDYgKzMwMCw3IEBAIHBnX3N0cnRvaW50MzIoY29uc3QgY2hhciAq cykKIAkJCXVubGlrZWx5KHBnX3N1Yl9zMzJfb3ZlcmZsb3codG1wLCBkaWdpdCwgJnRtcCkp KQogCQkJZ290byBvdXRfb2ZfcmFuZ2U7CiAJfQorCX0KIAogCS8qIGFsbG93IHRyYWlsaW5n IHdoaXRlc3BhY2UsIGJ1dCBub3Qgb3RoZXIgdHJhaWxpbmcgY2hhcnMgKi8KIAl3aGlsZSAo KnB0ciAhPSAnXDAnICYmIGlzc3BhY2UoKHVuc2lnbmVkIGNoYXIpICpwdHIpKQpAQCAtMjgw LDYgKzM3Nyw0OCBAQCBwZ19zdHJ0b2ludDY0KGNvbnN0IGNoYXIgKnMpCiAJCWdvdG8gaW52 YWxpZF9zeW50YXg7CiAKIAkvKiBwcm9jZXNzIGRpZ2l0cyAqLworCWlmIChwdHJbMF0gPT0g JzAnICYmIChwdHJbMV0gPT0gJ3gnIHx8IHB0clsxXSA9PSAnWCcpKQorCXsKKwkJcHRyICs9 IDI7CisJCXdoaWxlICgqcHRyICYmIGlzeGRpZ2l0KCh1bnNpZ25lZCBjaGFyKSAqcHRyKSkK KwkJeworCQkJaW50OAkJZGlnaXQgPSBoZXhsb29rdXBbKHVuc2lnbmVkIGNoYXIpICpwdHJd OworCisJCQlpZiAodW5saWtlbHkocGdfbXVsX3M2NF9vdmVyZmxvdyh0bXAsIDE2LCAmdG1w KSkgfHwKKwkJCQl1bmxpa2VseShwZ19zdWJfczY0X292ZXJmbG93KHRtcCwgZGlnaXQsICZ0 bXApKSkKKwkJCQlnb3RvIG91dF9vZl9yYW5nZTsKKworCQkJcHRyKys7CisJCX0KKwl9CisJ ZWxzZSBpZiAocHRyWzBdID09ICcwJyAmJiAocHRyWzFdID09ICdvJyB8fCBwdHJbMV0gPT0g J08nKSkKKwl7CisJCXB0ciArPSAyOworCisJCXdoaWxlICgqcHRyICYmICgqcHRyID49ICcw JyAmJiAqcHRyIDw9ICc3JykpCisJCXsKKwkJCWludDgJCWRpZ2l0ID0gKCpwdHIrKyAtICcw Jyk7CisKKwkJCWlmICh1bmxpa2VseShwZ19tdWxfczY0X292ZXJmbG93KHRtcCwgOCwgJnRt cCkpIHx8CisJCQkJdW5saWtlbHkocGdfc3ViX3M2NF9vdmVyZmxvdyh0bXAsIGRpZ2l0LCAm dG1wKSkpCisJCQkJZ290byBvdXRfb2ZfcmFuZ2U7CisJCX0KKwl9CisJZWxzZSBpZiAocHRy WzBdID09ICcwJyAmJiAocHRyWzFdID09ICdiJyB8fCBwdHJbMV0gPT0gJ0InKSkKKwl7CisJ CXB0ciArPSAyOworCisJCXdoaWxlICgqcHRyICYmICgqcHRyID49ICcwJyAmJiAqcHRyIDw9 ICcxJykpCisJCXsKKwkJCWludDgJCWRpZ2l0ID0gKCpwdHIrKyAtICcwJyk7CisKKwkJCWlm ICh1bmxpa2VseShwZ19tdWxfczY0X292ZXJmbG93KHRtcCwgMiwgJnRtcCkpIHx8CisJCQkJ dW5saWtlbHkocGdfc3ViX3M2NF9vdmVyZmxvdyh0bXAsIGRpZ2l0LCAmdG1wKSkpCisJCQkJ Z290byBvdXRfb2ZfcmFuZ2U7CisJCX0KKwl9CisJZWxzZQorCXsKIAl3aGlsZSAoKnB0ciAm JiBpc2RpZ2l0KCh1bnNpZ25lZCBjaGFyKSAqcHRyKSkKIAl7CiAJCWludDgJCWRpZ2l0ID0g KCpwdHIrKyAtICcwJyk7CkBAIC0yODgsNiArNDI3LDcgQEAgcGdfc3RydG9pbnQ2NChjb25z dCBjaGFyICpzKQogCQkJdW5saWtlbHkocGdfc3ViX3M2NF9vdmVyZmxvdyh0bXAsIGRpZ2l0 LCAmdG1wKSkpCiAJCQlnb3RvIG91dF9vZl9yYW5nZTsKIAl9CisJfQogCiAJLyogYWxsb3cg dHJhaWxpbmcgd2hpdGVzcGFjZSwgYnV0IG5vdCBvdGhlciB0cmFpbGluZyBjaGFycyAqLwog CXdoaWxlICgqcHRyICE9ICdcMCcgJiYgaXNzcGFjZSgodW5zaWduZWQgY2hhcikgKnB0cikp CmRpZmYgLS1naXQgYS9zcmMvZmVfdXRpbHMvcHNxbHNjYW4ubCBiL3NyYy9mZV91dGlscy9w c3Fsc2Nhbi5sCmluZGV4IDA5NzA5ZTYxNTEuLmFmMzhmMTczZmEgMTAwNjQ0Ci0tLSBhL3Ny Yy9mZV91dGlscy9wc3Fsc2Nhbi5sCisrKyBiL3NyYy9mZV91dGlscy9wc3Fsc2Nhbi5sCkBA IC0zMjMsMjUgKzMyMyw0MCBAQCBvcGVyYXRvcgkJe29wX2NoYXJzfSsKICAqIFVuYXJ5IG1p bnVzIGlzIG5vdCBwYXJ0IG9mIGEgbnVtYmVyIGhlcmUuICBJbnN0ZWFkIHdlIHBhc3MgaXQg c2VwYXJhdGVseSB0bwogICogdGhlIHBhcnNlciwgYW5kIHRoZXJlIGl0IGdldHMgY29lcmNl ZCB2aWEgZG9OZWdhdGUoKS4KICAqCi0gKiB7ZGVjaW1hbGZhaWx9IGlzIHVzZWQgYmVjYXVz ZSB3ZSB3b3VsZCBsaWtlICIxLi4xMCIgdG8gbGV4IGFzIDEsIGRvdF9kb3QsIDEwLgorICog e251bWVyaWNmYWlsfSBpcyB1c2VkIGJlY2F1c2Ugd2Ugd291bGQgbGlrZSAiMS4uMTAiIHRv IGxleCBhcyAxLCBkb3RfZG90LCAxMC4KICAqCiAgKiB7cmVhbGZhaWwxfSBhbmQge3JlYWxm YWlsMn0gYXJlIGFkZGVkIHRvIHByZXZlbnQgdGhlIG5lZWQgZm9yIHNjYW5uZXIKICAqIGJh Y2t1cCB3aGVuIHRoZSB7cmVhbH0gcnVsZSBmYWlscyB0byBtYXRjaCBjb21wbGV0ZWx5Lgog ICovCi1kaWdpdAkJCVswLTldCi0KLWludGVnZXIJCQl7ZGlnaXR9KwotZGVjaW1hbAkJCSgo e2RpZ2l0fSpcLntkaWdpdH0rKXwoe2RpZ2l0fStcLntkaWdpdH0qKSkKLWRlY2ltYWxmYWls CQl7ZGlnaXR9K1wuXC4KLXJlYWwJCQkoe2ludGVnZXJ9fHtkZWNpbWFsfSlbRWVdWy0rXT97 ZGlnaXR9KwotcmVhbGZhaWwxCQkoe2ludGVnZXJ9fHtkZWNpbWFsfSlbRWVdCi1yZWFsZmFp bDIJCSh7aW50ZWdlcn18e2RlY2ltYWx9KVtFZV1bLStdCi0KLWludGVnZXJfanVuawl7aW50 ZWdlcn17aWRlbnRfc3RhcnR9Ci1kZWNpbWFsX2p1bmsJe2RlY2ltYWx9e2lkZW50X3N0YXJ0 fQorZGVjZGlnaXQJCVswLTldCitoZXhkaWdpdAkJWzAtOUEtRmEtZl0KK29jdGRpZ2l0CQlb MC03XQorYmluZGlnaXQJCVswLTFdCisKK2RlY2ludGVnZXIJCXtkZWNkaWdpdH0rCitoZXhp bnRlZ2VyCQkwW3hYXXtoZXhkaWdpdH0rCitvY3RpbnRlZ2VyCQkwW29PXXtvY3RkaWdpdH0r CitiaW5pbnRlZ2VyCQkwW2JCXXtiaW5kaWdpdH0rCisKK2hleGZhaWwJCQkwW3hYXQorb2N0 ZmFpbAkJCTBbb09dCitiaW5mYWlsCQkJMFtiQl0KKworbnVtZXJpYwkJCSgoe2RlY2ludGVn ZXJ9XC57ZGVjaW50ZWdlcn0/KXwoXC57ZGVjaW50ZWdlcn0pKQorbnVtZXJpY2ZhaWwJCXtk ZWNkaWdpdH0rXC5cLgorCityZWFsCQkJKHtkZWNpbnRlZ2VyfXx7bnVtZXJpY30pW0VlXVst K10/e2RlY2RpZ2l0fSsKK3JlYWxmYWlsMQkJKHtkZWNpbnRlZ2VyfXx7bnVtZXJpY30pW0Vl XQorcmVhbGZhaWwyCQkoe2RlY2ludGVnZXJ9fHtudW1lcmljfSlbRWVdWy0rXQorCitkZWNp bnRlZ2VyX2p1bmsJe2RlY2ludGVnZXJ9e2lkZW50X3N0YXJ0fQoraGV4aW50ZWdlcl9qdW5r CXtoZXhpbnRlZ2VyfXtpZGVudF9zdGFydH0KK29jdGludGVnZXJfanVuawl7b2N0aW50ZWdl cn17aWRlbnRfc3RhcnR9CitiaW5pbnRlZ2VyX2p1bmsJe2JpbmludGVnZXJ9e2lkZW50X3N0 YXJ0fQorbnVtZXJpY19qdW5rCXtudW1lcmljfXtpZGVudF9zdGFydH0KIHJlYWxfanVuawkJ e3JlYWx9e2lkZW50X3N0YXJ0fQogCi1wYXJhbQkJCVwke2ludGVnZXJ9CitwYXJhbQkJCVwk e2RlY2ludGVnZXJ9CiAKIC8qIHBzcWwtc3BlY2lmaWM6IGNoYXJhY3RlcnMgYWxsb3dlZCBp biB2YXJpYWJsZSBuYW1lcyAqLwogdmFyaWFibGVfY2hhcglbQS1aYS16XDIwMC1cMzc3XzAt OV0KQEAgLTg0NCwxMyArODU5LDMxIEBAIG90aGVyCQkJLgogCQkJCQlFQ0hPOwogCQkJCX0K IAote2ludGVnZXJ9CQl7Cit7ZGVjaW50ZWdlcn0JeworCQkJCQlFQ0hPOworCQkJCX0KK3to ZXhpbnRlZ2VyfQl7CisJCQkJCUVDSE87CisJCQkJfQore29jdGludGVnZXJ9CXsKKwkJCQkJ RUNITzsKKwkJCQl9Cit7YmluaW50ZWdlcn0JeworCQkJCQlFQ0hPOworCQkJCX0KK3toZXhm YWlsfQkJewogCQkJCQlFQ0hPOwogCQkJCX0KLXtkZWNpbWFsfQkJewore29jdGZhaWx9CQl7 CiAJCQkJCUVDSE87CiAJCQkJfQote2RlY2ltYWxmYWlsfQl7Cit7YmluZmFpbH0JCXsKKwkJ CQkJRUNITzsKKwkJCQl9Cit7bnVtZXJpY30JCXsKKwkJCQkJRUNITzsKKwkJCQl9Cit7bnVt ZXJpY2ZhaWx9CXsKIAkJCQkJLyogdGhyb3cgYmFjayB0aGUgLi4sIGFuZCB0cmVhdCBhcyBp bnRlZ2VyICovCiAJCQkJCXl5bGVzcyh5eWxlbmcgLSAyKTsKIAkJCQkJRUNITzsKQEAgLTg2 NCwxMCArODk3LDE5IEBAIG90aGVyCQkJLgoge3JlYWxmYWlsMn0JCXsKIAkJCQkJRUNITzsK IAkJCQl9Ci17aW50ZWdlcl9qdW5rfQl7Cit7ZGVjaW50ZWdlcl9qdW5rfQl7CisJCQkJCUVD SE87CisJCQkJfQore2hleGludGVnZXJfanVua30JeworCQkJCQlFQ0hPOworCQkJCX0KK3tv Y3RpbnRlZ2VyX2p1bmt9CXsKKwkJCQkJRUNITzsKKwkJCQl9Cit7YmluaW50ZWdlcl9qdW5r fQl7CiAJCQkJCUVDSE87CiAJCQkJfQote2RlY2ltYWxfanVua30Jewore251bWVyaWNfanVu a30JewogCQkJCQlFQ0hPOwogCQkJCX0KIHtyZWFsX2p1bmt9CQl7CmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcGdjLmwgYi9zcmMvaW50ZXJmYWNlcy9lY3Bn L3ByZXByb2MvcGdjLmwKaW5kZXggMTEwNDc4MDU5Yi4uYzQ4MDViZDkxZiAxMDA2NDQKLS0t IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL3BnYy5sCisrKyBiL3NyYy9pbnRlcmZh Y2VzL2VjcGcvcHJlcHJvYy9wZ2MubApAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgYm9vbAkJ aW5jbHVkZV9uZXh0OwogI2RlZmluZSBzdGFydGxpdCgpCShsaXRlcmFsYnVmWzBdID0gJ1ww JywgbGl0ZXJhbGxlbiA9IDApCiBzdGF0aWMgdm9pZCBhZGRsaXQoY2hhciAqeXRleHQsIGlu dCB5bGVuZyk7CiBzdGF0aWMgdm9pZCBhZGRsaXRjaGFyKHVuc2lnbmVkIGNoYXIpOwotc3Rh dGljIGludAlwcm9jZXNzX2ludGVnZXJfbGl0ZXJhbChjb25zdCBjaGFyICp0b2tlbiwgWVlT VFlQRSAqbHZhbCk7CitzdGF0aWMgaW50CXByb2Nlc3NfaW50ZWdlcl9saXRlcmFsKGNvbnN0 IGNoYXIgKnRva2VuLCBZWVNUWVBFICpsdmFsLCBpbnQgYmFzZSk7CiBzdGF0aWMgdm9pZCBw YXJzZV9pbmNsdWRlKHZvaWQpOwogc3RhdGljIGJvb2wgZWNwZ19pc3NwYWNlKGNoYXIgY2gp Owogc3RhdGljIGJvb2wgaXNkZWZpbmUodm9pZCk7CkBAIC0zNTEsMjUgKzM1MSw0MCBAQCBv cGVyYXRvcgkJe29wX2NoYXJzfSsKICAqIFVuYXJ5IG1pbnVzIGlzIG5vdCBwYXJ0IG9mIGEg bnVtYmVyIGhlcmUuICBJbnN0ZWFkIHdlIHBhc3MgaXQgc2VwYXJhdGVseSB0bwogICogdGhl IHBhcnNlciwgYW5kIHRoZXJlIGl0IGdldHMgY29lcmNlZCB2aWEgZG9OZWdhdGUoKS4KICAq Ci0gKiB7ZGVjaW1hbGZhaWx9IGlzIHVzZWQgYmVjYXVzZSB3ZSB3b3VsZCBsaWtlICIxLi4x MCIgdG8gbGV4IGFzIDEsIGRvdF9kb3QsIDEwLgorICoge251bWVyaWNmYWlsfSBpcyB1c2Vk IGJlY2F1c2Ugd2Ugd291bGQgbGlrZSAiMS4uMTAiIHRvIGxleCBhcyAxLCBkb3RfZG90LCAx MC4KICAqCiAgKiB7cmVhbGZhaWwxfSBhbmQge3JlYWxmYWlsMn0gYXJlIGFkZGVkIHRvIHBy ZXZlbnQgdGhlIG5lZWQgZm9yIHNjYW5uZXIKICAqIGJhY2t1cCB3aGVuIHRoZSB7cmVhbH0g cnVsZSBmYWlscyB0byBtYXRjaCBjb21wbGV0ZWx5LgogICovCi1kaWdpdAkJCVswLTldCi0K LWludGVnZXIJCQl7ZGlnaXR9KwotZGVjaW1hbAkJCSgoe2RpZ2l0fSpcLntkaWdpdH0rKXwo e2RpZ2l0fStcLntkaWdpdH0qKSkKLWRlY2ltYWxmYWlsCQl7ZGlnaXR9K1wuXC4KLXJlYWwJ CQkoe2ludGVnZXJ9fHtkZWNpbWFsfSlbRWVdWy0rXT97ZGlnaXR9KwotcmVhbGZhaWwxCQko e2ludGVnZXJ9fHtkZWNpbWFsfSlbRWVdCi1yZWFsZmFpbDIJCSh7aW50ZWdlcn18e2RlY2lt YWx9KVtFZV1bLStdCi0KLWludGVnZXJfanVuawl7aW50ZWdlcn17aWRlbnRfc3RhcnR9Ci1k ZWNpbWFsX2p1bmsJe2RlY2ltYWx9e2lkZW50X3N0YXJ0fQorZGVjZGlnaXQJCVswLTldCito ZXhkaWdpdAkJWzAtOUEtRmEtZl0KK29jdGRpZ2l0CQlbMC03XQorYmluZGlnaXQJCVswLTFd CisKK2RlY2ludGVnZXIJCXtkZWNkaWdpdH0rCitoZXhpbnRlZ2VyCQkwW3hYXXtoZXhkaWdp dH0rCitvY3RpbnRlZ2VyCQkwW29PXXtvY3RkaWdpdH0rCitiaW5pbnRlZ2VyCQkwW2JCXXti aW5kaWdpdH0rCisKK2hleGZhaWwJCQkwW3hYXQorb2N0ZmFpbAkJCTBbb09dCitiaW5mYWls CQkJMFtiQl0KKworbnVtZXJpYwkJCSgoe2RlY2ludGVnZXJ9XC57ZGVjaW50ZWdlcn0/KXwo XC57ZGVjaW50ZWdlcn0pKQorbnVtZXJpY2ZhaWwJCXtkZWNkaWdpdH0rXC5cLgorCityZWFs CQkJKHtkZWNpbnRlZ2VyfXx7bnVtZXJpY30pW0VlXVstK10/e2RlY2RpZ2l0fSsKK3JlYWxm YWlsMQkJKHtkZWNpbnRlZ2VyfXx7bnVtZXJpY30pW0VlXQorcmVhbGZhaWwyCQkoe2RlY2lu dGVnZXJ9fHtudW1lcmljfSlbRWVdWy0rXQorCitkZWNpbnRlZ2VyX2p1bmsJe2RlY2ludGVn ZXJ9e2lkZW50X3N0YXJ0fQoraGV4aW50ZWdlcl9qdW5rCXtoZXhpbnRlZ2VyfXtpZGVudF9z dGFydH0KK29jdGludGVnZXJfanVuawl7b2N0aW50ZWdlcn17aWRlbnRfc3RhcnR9CitiaW5p bnRlZ2VyX2p1bmsJe2JpbmludGVnZXJ9e2lkZW50X3N0YXJ0fQorbnVtZXJpY19qdW5rCXtu dW1lcmljfXtpZGVudF9zdGFydH0KIHJlYWxfanVuawkJe3JlYWx9e2lkZW50X3N0YXJ0fQog Ci1wYXJhbQkJCVwke2ludGVnZXJ9CitwYXJhbQkJCVwke2RlY2ludGVnZXJ9CiAKIC8qIHNw ZWNpYWwgY2hhcmFjdGVycyBmb3Igb3RoZXIgZGJtcyAqLwogLyogd2UgaGF2ZSB0byByZWFj dCBkaWZmZXJlbnRseSBpbiBjb21wYXQgbW9kZSAqLwpAQCAtMzk5LDkgKzQxNCw2IEBAIGlu Y2x1ZGVfbmV4dAlbaUldW25OXVtjQ11bbExdW3VVXVtkRF1bZUVdX1tuTl1bZUVdW3hYXVt0 VF0KIGltcG9ydAkJCVtpSV1bbU1dW3BQXVtvT11bclJdW3RUXQogdW5kZWYJCQlbdVVdW25O XVtkRF1bZUVdW2ZGXQogCi0vKiBDIHZlcnNpb24gb2YgaGV4IG51bWJlciAqLwoteGNoCQkJ CTBbeFhdWzAtOUEtRmEtZl0qCi0KIGNjb21tZW50CQkiLy8iLipcbgogCiBpZgkJCQlbaUld W2ZGXQpAQCAtNDE0LDcgKzQyNiw3IEBAIGVuZGlmCQkJW2VFXVtuTl1bZERdW2lJXVtmRl0K IHN0cnVjdAkJCVtzU11bdFRdW3JSXVt1VV1bY0NdW3RUXQogCiBleGVjX3NxbAkJe2V4ZWN9 e3NwYWNlfSp7c3FsfXtzcGFjZX0qCi1pcGRpZ2l0CQkJKHtkaWdpdH18e2RpZ2l0fXtkaWdp dH18e2RpZ2l0fXtkaWdpdH17ZGlnaXR9KQoraXBkaWdpdAkJCSh7ZGVjZGlnaXR9fHtkZWNk aWdpdH17ZGVjZGlnaXR9fHtkZWNkaWdpdH17ZGVjZGlnaXR9e2RlY2RpZ2l0fSkKIGlwCQkJ CXtpcGRpZ2l0fVwue2lwZGlnaXR9XC57aXBkaWdpdH1cLntpcGRpZ2l0fQogCiAvKiB3ZSBt aWdodCB3YW50IHRvIHBhcnNlIGFsbCBjcHAgaW5jbHVkZSBmaWxlcyAqLwpAQCAtOTI5LDE3 ICs5NDEsMjAgQEAgY3BwbGluZQkJCXtzcGFjZX0qIyhbXmldW0EtWmEtel0qfHtpZn18e2lm ZGVmfXx7aWZuZGVmfXx7aW1wb3J0fSkoKFwvXCpbXiovXSpcKisKIH0gIC8qIDxTUUw+ICov CiAKIDxDLFNRTD57Ci17aW50ZWdlcn0JCXsKLQkJCQkJcmV0dXJuIHByb2Nlc3NfaW50ZWdl cl9saXRlcmFsKHl5dGV4dCwgJmJhc2VfeXlsdmFsKTsKK3tkZWNpbnRlZ2VyfQl7CisJCQkJ CXJldHVybiBwcm9jZXNzX2ludGVnZXJfbGl0ZXJhbCh5eXRleHQsICZiYXNlX3l5bHZhbCwg MTApOworCQkJCX0KK3toZXhpbnRlZ2VyfQl7CisJCQkJCXJldHVybiBwcm9jZXNzX2ludGVn ZXJfbGl0ZXJhbCh5eXRleHQgKyAyLCAmYmFzZV95eWx2YWwsIDE2KTsKIAkJCQl9Ci17ZGVj aW1hbH0JCXsKK3tudW1lcmljfQkJewogCQkJCQliYXNlX3l5bHZhbC5zdHIgPSBtbV9zdHJk dXAoeXl0ZXh0KTsKIAkJCQkJcmV0dXJuIEZDT05TVDsKIAkJCQl9Ci17ZGVjaW1hbGZhaWx9 CXsKK3tudW1lcmljZmFpbH0JewogCQkJCQkvKiB0aHJvdyBiYWNrIHRoZSAuLiwgYW5kIHRy ZWF0IGFzIGludGVnZXIgKi8KIAkJCQkJeXlsZXNzKHl5bGVuZyAtIDIpOwotCQkJCQlyZXR1 cm4gcHJvY2Vzc19pbnRlZ2VyX2xpdGVyYWwoeXl0ZXh0LCAmYmFzZV95eWx2YWwpOworCQkJ CQlyZXR1cm4gcHJvY2Vzc19pbnRlZ2VyX2xpdGVyYWwoeXl0ZXh0LCAmYmFzZV95eWx2YWws IDEwKTsKIAkJCQl9CiB7cmVhbH0JCQl7CiAJCQkJCWJhc2VfeXlsdmFsLnN0ciA9IG1tX3N0 cmR1cCh5eXRleHQpOwpAQCAtOTQ4LDE4ICs5NjMsMjUgQEAgY3BwbGluZQkJCXtzcGFjZX0q IyhbXmldW0EtWmEtel0qfHtpZn18e2lmZGVmfXx7aWZuZGVmfXx7aW1wb3J0fSkoKFwvXCpb XiovXSpcKisKIHtyZWFsZmFpbDF9CQl7CiAJCQkJCS8qCiAJCQkJCSAqIHRocm93IGJhY2sg dGhlIFtFZV0sIGFuZCBmaWd1cmUgb3V0IHdoZXRoZXIgd2hhdAotCQkJCQkgKiByZW1haW5z IGlzIGFuIHtpbnRlZ2VyfSBvciB7ZGVjaW1hbH0uCisJCQkJCSAqIHJlbWFpbnMgaXMgYW4g e2RlY2ludGVnZXJ9IG9yIHtudW1lcmljfS4KIAkJCQkJICovCiAJCQkJCXl5bGVzcyh5eWxl bmcgLSAxKTsKLQkJCQkJcmV0dXJuIHByb2Nlc3NfaW50ZWdlcl9saXRlcmFsKHl5dGV4dCwg JmJhc2VfeXlsdmFsKTsKKwkJCQkJcmV0dXJuIHByb2Nlc3NfaW50ZWdlcl9saXRlcmFsKHl5 dGV4dCwgJmJhc2VfeXlsdmFsLCAxMCk7CiAJCQkJfQoge3JlYWxmYWlsMn0JCXsKIAkJCQkJ LyogdGhyb3cgYmFjayB0aGUgW0VlXVsrLV0sIGFuZCBwcm9jZWVkIGFzIGFib3ZlICovCiAJ CQkJCXl5bGVzcyh5eWxlbmcgLSAyKTsKLQkJCQkJcmV0dXJuIHByb2Nlc3NfaW50ZWdlcl9s aXRlcmFsKHl5dGV4dCwgJmJhc2VfeXlsdmFsKTsKKwkJCQkJcmV0dXJuIHByb2Nlc3NfaW50 ZWdlcl9saXRlcmFsKHl5dGV4dCwgJmJhc2VfeXlsdmFsLCAxMCk7CiAJCQkJfQogfSAvKiA8 QyxTUUw+ICovCiAKKzxTUUw+e29jdGludGVnZXJ9CXsKKwkJCQkJcmV0dXJuIHByb2Nlc3Nf aW50ZWdlcl9saXRlcmFsKHl5dGV4dCArIDIsICZiYXNlX3l5bHZhbCwgOCk7CisJCQkJfQor PFNRTD57YmluaW50ZWdlcn0JeworCQkJCQlyZXR1cm4gcHJvY2Vzc19pbnRlZ2VyX2xpdGVy YWwoeXl0ZXh0ICsgMiwgJmJhc2VfeXlsdmFsLCAyKTsKKwkJCQl9CisKIDxTUUw+ewogOntp ZGVudGlmaWVyfSgoKCItPiJ8XC4pe2lkZW50aWZpZXJ9KXwoXFt7YXJyYXl9XF0pKSoJewog CQkJCQliYXNlX3l5bHZhbC5zdHIgPSBtbV9zdHJkdXAoeXl0ZXh0KzEpOwpAQCAtMTAxNSwx OSArMTAzNyw2IEBAIGNwcGxpbmUJCQl7c3BhY2V9KiMoW15pXVtBLVphLXpdKnx7aWZ9fHtp ZmRlZn18e2lmbmRlZn18e2ltcG9ydH0pKChcL1wqW14qL10qXCorCiAJCQkJCQkJcmV0dXJu IFNfQU5ZVEhJTkc7CiAJCQkJCSB9CiA8Qz57Y2NvbW1lbnR9CQl7IEVDSE87IH0KLTxDPnt4 Y2h9CQkJewotCQkJCQkJY2hhciogZW5kcHRyOwotCi0JCQkJCQllcnJubyA9IDA7Ci0JCQkJ CQliYXNlX3l5bHZhbC5pdmFsID0gc3RydG91bCgoY2hhciAqKXl5dGV4dCwmZW5kcHRyLDE2 KTsKLQkJCQkJCWlmICgqZW5kcHRyICE9ICdcMCcgfHwgZXJybm8gPT0gRVJBTkdFKQotCQkJ CQkJewotCQkJCQkJCWVycm5vID0gMDsKLQkJCQkJCQliYXNlX3l5bHZhbC5zdHIgPSBtbV9z dHJkdXAoeXl0ZXh0KTsKLQkJCQkJCQlyZXR1cm4gU0NPTlNUOwotCQkJCQkJfQotCQkJCQkJ cmV0dXJuIElDT05TVDsKLQkJCQkJfQogPEM+e2NwcGluY2x1ZGV9CQl7CiAJCQkJCQlpZiAo c3lzdGVtX2luY2x1ZGVzKQogCQkJCQkJewpAQCAtMTU1MiwxNyArMTU2MSwxNyBAQCBhZGRs aXRjaGFyKHVuc2lnbmVkIGNoYXIgeWNoYXIpCiB9CiAKIC8qCi0gKiBQcm9jZXNzIHtpbnRl Z2VyfS4gIE5vdGUgdGhpcyB3aWxsIGFsc28gZG8gdGhlIHJpZ2h0IHRoaW5nIHdpdGgge2Rl Y2ltYWx9LAorICogUHJvY2VzcyB7KmludGVnZXJ9LiAgTm90ZSB0aGlzIHdpbGwgYWxzbyBk byB0aGUgcmlnaHQgdGhpbmcgd2l0aCB7bnVtZXJpY30sCiAgKiBpZSBkaWdpdHMgYW5kIGEg ZGVjaW1hbCBwb2ludC4KICAqLwogc3RhdGljIGludAotcHJvY2Vzc19pbnRlZ2VyX2xpdGVy YWwoY29uc3QgY2hhciAqdG9rZW4sIFlZU1RZUEUgKmx2YWwpCitwcm9jZXNzX2ludGVnZXJf bGl0ZXJhbChjb25zdCBjaGFyICp0b2tlbiwgWVlTVFlQRSAqbHZhbCwgaW50IGJhc2UpCiB7 CiAJaW50CQkJdmFsOwogCWNoYXIJICAgKmVuZHB0cjsKIAogCWVycm5vID0gMDsKLQl2YWwg PSBzdHJ0b2ludCh0b2tlbiwgJmVuZHB0ciwgMTApOworCXZhbCA9IHN0cnRvaW50KHRva2Vu LCAmZW5kcHRyLCBiYXNlKTsKIAlpZiAoKmVuZHB0ciAhPSAnXDAnIHx8IGVycm5vID09IEVS QU5HRSkKIAl7CiAJCS8qIGludGVnZXIgdG9vIGxhcmdlIChvciBjb250YWlucyBkZWNpbWFs IHB0KSwgdHJlYXQgaXQgYXMgYSBmbG9hdCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9pbnQyLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW50 Mi5vdXQKaW5kZXggNTVlYTcyMDJjZC4uMjIwZTE0OTNlOCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9pbnQyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2ludDIub3V0CkBAIC0zMDYsMyArMzA2LDIyIEBAIEZST00gKFZBTFVFUyAoLTIu NTo6bnVtZXJpYyksCiAgIDIuNSB8ICAgICAgICAgIDMKICg3IHJvd3MpCiAKKy0tIG5vbi1k ZWNpbWFsIGxpdGVyYWxzCitTRUxFQ1QgaW50MiAnMGIxMDAxMDEnOworIGludDIgCistLS0t LS0KKyAgIDM3CisoMSByb3cpCisKK1NFTEVDVCBpbnQyICcwbzI3Myc7CisgaW50MiAKKy0t LS0tLQorICAxODcKKygxIHJvdykKKworU0VMRUNUIGludDIgJzB4NDJGJzsKKyBpbnQyIAor LS0tLS0tCisgMTA3MQorKDEgcm93KQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2ludDQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbnQ0Lm91 dAppbmRleCA5ZDIwYjMzODBmLi42ZmRiZDU4YjQwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2ludDQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvaW50NC5vdXQKQEAgLTQzNywzICs0MzcsMjIgQEAgU0VMRUNUIGxjbSgoLTIxNDc0ODM2 NDgpOjppbnQ0LCAxOjppbnQ0KTsgLS0gb3ZlcmZsb3cKIEVSUk9SOiAgaW50ZWdlciBvdXQg b2YgcmFuZ2UKIFNFTEVDVCBsY20oMjE0NzQ4MzY0Nzo6aW50NCwgMjE0NzQ4MzY0Njo6aW50 NCk7IC0tIG92ZXJmbG93CiBFUlJPUjogIGludGVnZXIgb3V0IG9mIHJhbmdlCistLSBub24t ZGVjaW1hbCBsaXRlcmFscworU0VMRUNUIGludDQgJzBiMTAwMTAxJzsKKyBpbnQ0IAorLS0t LS0tCisgICAzNworKDEgcm93KQorCitTRUxFQ1QgaW50NCAnMG8yNzMnOworIGludDQgCist LS0tLS0KKyAgMTg3CisoMSByb3cpCisKK1NFTEVDVCBpbnQ0ICcweDQyRic7CisgaW50NCAK Ky0tLS0tLQorIDEwNzEKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9pbnQ4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW50OC5v dXQKaW5kZXggMzY1NDBlYzQ1Ni4uZWRkMTVhNDM1MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9pbnQ4Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2ludDgub3V0CkBAIC05MzIsMyArOTMyLDIyIEBAIFNFTEVDVCBsY20oKC05MjIzMzcy MDM2ODU0Nzc1ODA4KTo6aW50OCwgMTo6aW50OCk7IC0tIG92ZXJmbG93CiBFUlJPUjogIGJp Z2ludCBvdXQgb2YgcmFuZ2UKIFNFTEVDVCBsY20oOTIyMzM3MjAzNjg1NDc3NTgwNzo6aW50 OCwgOTIyMzM3MjAzNjg1NDc3NTgwNjo6aW50OCk7IC0tIG92ZXJmbG93CiBFUlJPUjogIGJp Z2ludCBvdXQgb2YgcmFuZ2UKKy0tIG5vbi1kZWNpbWFsIGxpdGVyYWxzCitTRUxFQ1QgaW50 OCAnMGIxMDAxMDEnOworIGludDggCistLS0tLS0KKyAgIDM3CisoMSByb3cpCisKK1NFTEVD VCBpbnQ4ICcwbzI3Myc7CisgaW50OCAKKy0tLS0tLQorICAxODcKKygxIHJvdykKKworU0VM RUNUIGludDggJzB4NDJGJzsKKyBpbnQ4IAorLS0tLS0tCisgMTA3MQorKDEgcm93KQorCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dAppbmRleCAyZjE3NmNj YjUyLi5iZTM4NjhkNDBmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L251bWVyb2xvZ3kub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJv bG9neS5vdXQKQEAgLTMsMTQgKzMsMzMgQEAKIC0tIFRlc3QgdmFyaW91cyBjb21iaW5hdGlv bnMgb2YgbnVtZXJpYyB0eXBlcyBhbmQgZnVuY3Rpb25zLgogLS0KIC0tCi0tLSBUcmFpbGlu ZyBqdW5rIGluIG51bWVyaWMgbGl0ZXJhbHMKKy0tIG51bWVyaWMgbGl0ZXJhbHMKIC0tCitT RUxFQ1QgMGIxMDAxMDE7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAgICAgMzcKKygx IHJvdykKKworU0VMRUNUIDBvMjczOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICAg MTg3CisoMSByb3cpCisKK1NFTEVDVCAweDQyRjsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0K KyAgICAgMTA3MQorKDEgcm93KQorCistLSBlcnJvciBjYXNlcwogU0VMRUNUIDEyM2FiYzsK IEVSUk9SOiAgdHJhaWxpbmcganVuayBhZnRlciBudW1lcmljIGxpdGVyYWwgYXQgb3IgbmVh ciAiMTIzYSIKIExJTkUgMTogU0VMRUNUIDEyM2FiYzsKICAgICAgICAgICAgICAgIF4KIFNF TEVDVCAweDBvOwotRVJST1I6ICB0cmFpbGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0ZXJh bCBhdCBvciBuZWFyICIweCIKK0VSUk9SOiAgdHJhaWxpbmcganVuayBhZnRlciBudW1lcmlj IGxpdGVyYWwgYXQgb3IgbmVhciAiMHgwbyIKIExJTkUgMTogU0VMRUNUIDB4MG87CiAgICAg ICAgICAgICAgICBeCiBTRUxFQ1QgMV8yXzM7CkBAIC00MSw2ICs2MCw0MiBAQCBTRUxFQ1Qg MC4wZSthOwogRVJST1I6ICB0cmFpbGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0ZXJhbCBh dCBvciBuZWFyICIwLjBlKyIKIExJTkUgMTogU0VMRUNUIDAuMGUrYTsKICAgICAgICAgICAg ICAgIF4KK1NFTEVDVCAwYjsKK0VSUk9SOiAgaW52YWxpZCBiaW5hcnkgaW50ZWdlciBhdCBv ciBuZWFyICIwYiIKK0xJTkUgMTogU0VMRUNUIDBiOworICAgICAgICAgICAgICAgXgorU0VM RUNUIDFiOworRVJST1I6ICB0cmFpbGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0ZXJhbCBh dCBvciBuZWFyICIxYiIKK0xJTkUgMTogU0VMRUNUIDFiOworICAgICAgICAgICAgICAgXgor U0VMRUNUIDBiMHg7CitFUlJPUjogIHRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtZXJpYyBsaXRl cmFsIGF0IG9yIG5lYXIgIjBiMHgiCitMSU5FIDE6IFNFTEVDVCAwYjB4OworICAgICAgICAg ICAgICAgXgorU0VMRUNUIDBvOworRVJST1I6ICBpbnZhbGlkIG9jdGFsIGludGVnZXIgYXQg b3IgbmVhciAiMG8iCitMSU5FIDE6IFNFTEVDVCAwbzsKKyAgICAgICAgICAgICAgIF4KK1NF TEVDVCAxbzsKK0VSUk9SOiAgdHJhaWxpbmcganVuayBhZnRlciBudW1lcmljIGxpdGVyYWwg YXQgb3IgbmVhciAiMW8iCitMSU5FIDE6IFNFTEVDVCAxbzsKKyAgICAgICAgICAgICAgIF4K K1NFTEVDVCAwbzB4OworRVJST1I6ICB0cmFpbGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0 ZXJhbCBhdCBvciBuZWFyICIwbzB4IgorTElORSAxOiBTRUxFQ1QgMG8weDsKKyAgICAgICAg ICAgICAgIF4KK1NFTEVDVCAweDsKK0VSUk9SOiAgaW52YWxpZCBoZXhhZGVjaW1hbCBpbnRl Z2VyIGF0IG9yIG5lYXIgIjB4IgorTElORSAxOiBTRUxFQ1QgMHg7CisgICAgICAgICAgICAg ICBeCitTRUxFQ1QgMXg7CitFUlJPUjogIHRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtZXJpYyBs aXRlcmFsIGF0IG9yIG5lYXIgIjF4IgorTElORSAxOiBTRUxFQ1QgMXg7CisgICAgICAgICAg ICAgICBeCitTRUxFQ1QgMHgweTsKK0VSUk9SOiAgdHJhaWxpbmcganVuayBhZnRlciBudW1l cmljIGxpdGVyYWwgYXQgb3IgbmVhciAiMHgweSIKK0xJTkUgMTogU0VMRUNUIDB4MHk7Cisg ICAgICAgICAgICAgICBeCiAtLQogLS0gVGVzdCBpbXBsaWNpdCB0eXBlIGNvbnZlcnNpb25z CiAtLSBUaGlzIGZhaWxzIGZvciBQb3N0Z3JlcyB2Ni4xIChhbmQgZWFybGllcj8pCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbnQyLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2ludDIuc3FsCmluZGV4IDYxM2IzNDQ3MDQuLjBkZWUyMmZlNmQgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ludDIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2ludDIuc3FsCkBAIC0xMTIsMyArMTEyLDEwIEBAIENSRUFURSBUQUJMRSBJTlQy X1RCTChmMSBpbnQyKTsKICAgICAgICAgICAgICAoMC41OjpudW1lcmljKSwKICAgICAgICAg ICAgICAoMS41OjpudW1lcmljKSwKICAgICAgICAgICAgICAoMi41OjpudW1lcmljKSkgdCh4 KTsKKworCistLSBub24tZGVjaW1hbCBsaXRlcmFscworCitTRUxFQ1QgaW50MiAnMGIxMDAx MDEnOworU0VMRUNUIGludDIgJzBvMjczJzsKK1NFTEVDVCBpbnQyICcweDQyRic7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbnQ0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2ludDQuc3FsCmluZGV4IDU1ZWMwN2ExNDcuLjJhNjliMTYxNGUgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ludDQuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2ludDQuc3FsCkBAIC0xNzYsMyArMTc2LDEwIEBAIENSRUFURSBUQUJMRSBJTlQ0 X1RCTChmMSBpbnQ0KTsKIAogU0VMRUNUIGxjbSgoLTIxNDc0ODM2NDgpOjppbnQ0LCAxOjpp bnQ0KTsgLS0gb3ZlcmZsb3cKIFNFTEVDVCBsY20oMjE0NzQ4MzY0Nzo6aW50NCwgMjE0NzQ4 MzY0Njo6aW50NCk7IC0tIG92ZXJmbG93CisKKworLS0gbm9uLWRlY2ltYWwgbGl0ZXJhbHMK KworU0VMRUNUIGludDQgJzBiMTAwMTAxJzsKK1NFTEVDVCBpbnQ0ICcwbzI3Myc7CitTRUxF Q1QgaW50NCAnMHg0MkYnOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW50 OC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbnQ4LnNxbAppbmRleCAzMjk0MGI0ZGFh Li5iN2FkNjk2ZGQ4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbnQ4LnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbnQ4LnNxbApAQCAtMjUwLDMgKzI1MCwx MCBAQCBDUkVBVEUgVEFCTEUgSU5UOF9UQkwocTEgaW50OCwgcTIgaW50OCk7CiAKIFNFTEVD VCBsY20oKC05MjIzMzcyMDM2ODU0Nzc1ODA4KTo6aW50OCwgMTo6aW50OCk7IC0tIG92ZXJm bG93CiBTRUxFQ1QgbGNtKDkyMjMzNzIwMzY4NTQ3NzU4MDc6OmludDgsIDkyMjMzNzIwMzY4 NTQ3NzU4MDY6OmludDgpOyAtLSBvdmVyZmxvdworCisKKy0tIG5vbi1kZWNpbWFsIGxpdGVy YWxzCisKK1NFTEVDVCBpbnQ4ICcwYjEwMDEwMSc7CitTRUxFQ1QgaW50OCAnMG8yNzMnOwor U0VMRUNUIGludDggJzB4NDJGJzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L251bWVyb2xvZ3kuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbnVtZXJvbG9neS5zcWwK aW5kZXggNzA0NDdhOTVmYS4uZmQ3ZTAyZTUzNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvbnVtZXJvbG9neS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbnVt ZXJvbG9neS5zcWwKQEAgLTMsMTAgKzMsMTYgQEAKIC0tIFRlc3QgdmFyaW91cyBjb21iaW5h dGlvbnMgb2YgbnVtZXJpYyB0eXBlcyBhbmQgZnVuY3Rpb25zLgogLS0KIAorCiAtLQotLS0g VHJhaWxpbmcganVuayBpbiBudW1lcmljIGxpdGVyYWxzCistLSBudW1lcmljIGxpdGVyYWxz CiAtLQogCitTRUxFQ1QgMGIxMDAxMDE7CitTRUxFQ1QgMG8yNzM7CitTRUxFQ1QgMHg0MkY7 CisKKy0tIGVycm9yIGNhc2VzCiBTRUxFQ1QgMTIzYWJjOwogU0VMRUNUIDB4MG87CiBTRUxF Q1QgMV8yXzM7CkBAIC0xNyw2ICsyMywxOSBAQAogU0VMRUNUIDAuMGU7CiBTRUxFQ1QgMC4w ZSthOwogCitTRUxFQ1QgMGI7CitTRUxFQ1QgMWI7CitTRUxFQ1QgMGIweDsKKworU0VMRUNU IDBvOworU0VMRUNUIDFvOworU0VMRUNUIDBvMHg7CisKK1NFTEVDVCAweDsKK1NFTEVDVCAx eDsKK1NFTEVDVCAweDB5OworCisKIC0tCiAtLSBUZXN0IGltcGxpY2l0IHR5cGUgY29udmVy c2lvbnMKIC0tIFRoaXMgZmFpbHMgZm9yIFBvc3RncmVzIHY2LjEgKGFuZCBlYXJsaWVyPykK LS0gCjIuMzQuMQoK --------------DlbcwxvzFIE30L5TyUyoLRwk Content-Type: text/plain; charset=UTF-8; name="v6-0007-WIP-Underscores-in-numeric-literals.patch" Content-Disposition: attachment; filename="v6-0007-WIP-Underscores-in-numeric-literals.patch" Content-Transfer-Encoding: base64 RnJvbSBmYjE3ZTA5ODQ5Yzc0NDE0OTQ3YTQxMDdkZDEzODgzYjczNDc2MjljIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAzMCBEZWMgMjAyMSAxMDoyNjozNyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgNy83XSBXSVA6IFVuZGVyc2NvcmVzIGluIG51bWVyaWMgbGl0ZXJhbHMK CkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxh dC9iMjM5NTY0Yy1jYWQwLWIyM2UtYzU3ZS0xNjZkODgzY2I5N2RAZW50ZXJwcmlzZWRiLmNv bQotLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9NYWtlZmlsZSAgICAgICAgICAgICAgfCAgMiAr LQogc3JjL2JhY2tlbmQvcGFyc2VyL3NjYW4ubCAgICAgICAgICAgICAgICB8IDI2ICsrKysr KysrKysrKysrKy0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91 dCB8IDM0ICsrKysrKysrKysrKysrKysrKysrKy0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwv bnVtZXJvbG9neS5zcWwgICAgICB8ICA3ICsrKystCiA0IGZpbGVzIGNoYW5nZWQsIDU5IGlu c2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3BhcnNlci9NYWtlZmlsZQppbmRleCA1 ZGRiOWE5MmYwLi44MjdiYzRjMTg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv TWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL01ha2VmaWxlCkBAIC01Niw3ICs1 Niw3IEBAIGdyYW0uYzogQklTT05fQ0hFQ0tfQ01EID0gJChQRVJMKSAkKHNyY2RpcikvY2hl Y2tfa2V5d29yZHMucGwgJDwgJCh0b3Bfc3JjZGlyKS9zCiAKIAogc2Nhbi5jOiBGTEVYRkxB R1MgPSAtQ0YgLXAgLXAKLXNjYW4uYzogRkxFWF9OT19CQUNLVVA9eWVzCisjc2Nhbi5jOiBG TEVYX05PX0JBQ0tVUD15ZXMKIHNjYW4uYzogRkxFWF9GSVhfV0FSTklORz15ZXMKIAogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3NjYW4ubAppbmRleCBjNTUzMzhiNjAxLi43YjZlNmUzYzllIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9zY2Fu LmwKQEAgLTM5NSwxMCArMzk1LDEwIEBAIGhleGRpZ2l0CQlbMC05QS1GYS1mXQogb2N0ZGln aXQJCVswLTddCiBiaW5kaWdpdAkJWzAtMV0KIAotZGVjaW50ZWdlcgkJe2RlY2RpZ2l0fSsK LWhleGludGVnZXIJCTBbeFhde2hleGRpZ2l0fSsKLW9jdGludGVnZXIJCTBbb09de29jdGRp Z2l0fSsKLWJpbmludGVnZXIJCTBbYkJde2JpbmRpZ2l0fSsKK2RlY2ludGVnZXIJCXtkZWNk aWdpdH0oXz97ZGVjZGlnaXR9KSoKK2hleGludGVnZXIJCTBbeFhdKF8/e2hleGRpZ2l0fSkr CitvY3RpbnRlZ2VyCQkwW29PXShfP3tvY3RkaWdpdH0pKworYmluaW50ZWdlcgkJMFtiQl0o Xz97YmluZGlnaXR9KSsKIAogaGV4ZmFpbAkJCTBbeFhdCiBvY3RmYWlsCQkJMFtvT10KQEAg LTEzNjcsNiArMTM2NywyNCBAQCBwcm9jZXNzX2ludGVnZXJfbGl0ZXJhbChjb25zdCBjaGFy ICp0b2tlbiwgWVlTVFlQRSAqbHZhbCwgaW50IGJhc2UpCiAJaW50CQkJdmFsOwogCWNoYXIJ ICAgKmVuZHB0cjsKIAorCWlmIChzdHJjaHIodG9rZW4sICdfJykpCisJeworCQljaGFyCSAg ICpuZXd0b2tlbiA9IHBhbGxvYyhzdHJsZW4odG9rZW4pKTsKKwkJY29uc3QgY2hhciAqcDE7 CisJCWNoYXIJICAgKnAyOworCisJCXAxID0gdG9rZW47CisJCXAyID0gbmV3dG9rZW47CisJ CXdoaWxlICgqcDEpCisJCXsKKwkJCWlmICgqcDEgIT0gJ18nKQorCQkJCSpwMisrID0gKnAx OworCQkJcDErKzsKKwkJfQorCQkqcDIgPSAnXDAnOworCQl0b2tlbiA9IG5ld3Rva2VuOwor CX0KKwogCWVycm5vID0gMDsKIAl2YWwgPSBzdHJ0b2ludCh0b2tlbiwgJmVuZHB0ciwgYmFz ZSk7CiAJaWYgKCplbmRwdHIgIT0gJ1wwJyB8fCBlcnJubyA9PSBFUkFOR0UpCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dAppbmRleCBiZTM4NjhkNDBmLi5j ZjVkNTI4NTU4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVy b2xvZ3kub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5v dXQKQEAgLTIzLDYgKzIzLDM2IEBAIFNFTEVDVCAweDQyRjsKICAgICAgMTA3MQogKDEgcm93 KQogCitTRUxFQ1QgMV8wMDBfMDAwOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAxMDAw MDAwCisoMSByb3cpCisKK1NFTEVDVCAxXzJfMzsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0K KyAgICAgIDEyMworKDEgcm93KQorCitTRUxFQ1QgMHgxRUVFX0ZGRkY7CisgP2NvbHVtbj8g IAorLS0tLS0tLS0tLS0KKyA1MTg5Nzk1ODMKKygxIHJvdykKKworU0VMRUNUIDBvMl83MzsK KyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICAgIDE4NworKDEgcm93KQorCitTRUxFQ1Qg MGJfMTBfMDEwMTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICAgICAzNworKDEgcm93 KQorCiAtLSBlcnJvciBjYXNlcwogU0VMRUNUIDEyM2FiYzsKIEVSUk9SOiAgdHJhaWxpbmcg anVuayBhZnRlciBudW1lcmljIGxpdGVyYWwgYXQgb3IgbmVhciAiMTIzYSIKQEAgLTMyLDEw ICs2Miw2IEBAIFNFTEVDVCAweDBvOwogRVJST1I6ICB0cmFpbGluZyBqdW5rIGFmdGVyIG51 bWVyaWMgbGl0ZXJhbCBhdCBvciBuZWFyICIweDBvIgogTElORSAxOiBTRUxFQ1QgMHgwbzsK ICAgICAgICAgICAgICAgIF4KLVNFTEVDVCAxXzJfMzsKLUVSUk9SOiAgdHJhaWxpbmcganVu ayBhZnRlciBudW1lcmljIGxpdGVyYWwgYXQgb3IgbmVhciAiMV8iCi1MSU5FIDE6IFNFTEVD VCAxXzJfMzsKLSAgICAgICAgICAgICAgIF4KIFNFTEVDVCAwLmE7CiBFUlJPUjogIHRyYWls aW5nIGp1bmsgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsIGF0IG9yIG5lYXIgIjAuYSIKIExJTkUg MTogU0VMRUNUIDAuYTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL251bWVy b2xvZ3kuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbnVtZXJvbG9neS5zcWwKaW5kZXgg ZmQ3ZTAyZTUzNi4uOTcwNjU0ZjBiNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvbnVtZXJvbG9neS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbnVtZXJvbG9n eS5zcWwKQEAgLTEyLDEwICsxMiwxNSBAQAogU0VMRUNUIDBvMjczOwogU0VMRUNUIDB4NDJG OwogCitTRUxFQ1QgMV8wMDBfMDAwOworU0VMRUNUIDFfMl8zOworU0VMRUNUIDB4MUVFRV9G RkZGOworU0VMRUNUIDBvMl83MzsKK1NFTEVDVCAwYl8xMF8wMTAxOworCiAtLSBlcnJvciBj YXNlcwogU0VMRUNUIDEyM2FiYzsKIFNFTEVDVCAweDBvOwotU0VMRUNUIDFfMl8zOwogU0VM RUNUIDAuYTsKIFNFTEVDVCAwLjBhOwogU0VMRUNUIC4wYTsKLS0gCjIuMzQuMQoK --------------DlbcwxvzFIE30L5TyUyoLRwk--