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.94.2) (envelope-from ) id 1rf3zs-00FE4E-SN for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Feb 2024 20:24:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rf3zq-005wFG-Jr for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Feb 2024 20:24:15 +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.94.2) (envelope-from ) id 1rf3zq-005wF8-27 for pgsql-hackers@lists.postgresql.org; Tue, 27 Feb 2024 20:24:14 +0000 Received: from lahtoruutu.iki.fi ([2a0b:5c81:1c1::37]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rf3zl-001YYc-WE for pgsql-hackers@postgresql.org; Tue, 27 Feb 2024 20:24:13 +0000 Received: from [172.20.6.221] (unknown [178.134.136.147]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: hlinnaka) by lahtoruutu.iki.fi (Postfix) with ESMTPSA id 4Tkpq754fcz49Q4j; Tue, 27 Feb 2024 22:24:03 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1709065446; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=xDCQyiqr4Y8r1ed+UHfgn3+LDwq5/wKbl5sbcS1lK4s=; b=UHga5XHHo6bhDgXfh7ooln6tpacE7ABGrRUAHXHLoQqTXAC5m0Vc5Tmqum3iGIxV+6Ayc+ 7hvVBwiOQGmuei7wyigad3lroobR2Wg++m2gswVQxQQfTZMneoxLjyQfnRkDEf3nWkGwwz WiCuSrSmCOFJl9cM49pdIVz1TtSvDYmJExIRzyN8PaPQlK86rH7EFedeO1epplhJudNSDc IdTXI5siQY0eeaoJ/tXiH3ckf53wiA4QjBn1eRP9Q9fVSTEgvSHMcJAe5EyYvyBTqmoyqz 2xIdTFVfUTjlJw0gNSLjhDCGjTofGOwqYDlNSR9p/Gm2s5gj9cIULf60MxChWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1709065446; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=xDCQyiqr4Y8r1ed+UHfgn3+LDwq5/wKbl5sbcS1lK4s=; b=WC6pys5wzajXB9rsWyS3zuolI102UAgzzWJXxKNiJ1YBwKGpO6w6bxJ39bavQfz7aaixsl kb3boVRa/Vqtt9VFGlEc1SFkqIoMrArBoc9FI59uGrIVdWDDjd4d8pVV2i0FKOOzeEXwo/ qLTPREDbjbkjRPyFheccUEFFWqvZ3dF5dFfTQv2yS0N5EyHLE2waW5F4JAWQq5UfTrency cJulSOfSvrnp6j4iZro8PAPnd8RGUBLS8LdPfNmbSm4evT6xnxMMXlcsiSCjc/e/EG6YYe ZykJuif1PKiOJteP0fh2EDB9yn/RbSH/WAL1SJni7bKYvIQx+dSvD+EUpESrGA== ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=hlinnaka smtp.mailfrom=hlinnaka@iki.fi ARC-Seal: i=1; s=lahtoruutu; d=iki.fi; t=1709065446; a=rsa-sha256; cv=none; b=sPmJTzYCoX2A8tKKgeX56et8Az0TBjtcw3m4O3myau3KEpQCTSfh+3bfve0huWrTaw6wpx vFnuN8b56nZnKLBHlTzgsw1I3np84aQ/b7506DsEbxgogOIWcJvEoM9kDzUWyyXdeG/NkI zldd9e7jSRjQx/dPfHY0yrZ/4O577kT01B8JAgS5vjeE8JimX7tud1WTVzOVkQ5mhuhlxr oFaPIgE2431Z/wpMZiYBgKD3Fg1ZoBPTlQ8Fhbb4ivTPr/gL8n/As/zqvGrkct3TkWjXde lRR3KKfcoZEgd7r8pJ7oAJn+4G7XxVlTeKYHZ0YmVQIyo2lJsWokDMAI9HO50w== Content-Type: multipart/mixed; boundary="------------k00xEuzw3fd0DU9gE1C2n8Fx" Message-ID: <3a0d22fa-7613-4881-aa19-ddd31fb92cc0@iki.fi> Date: Wed, 28 Feb 2024 00:24:01 +0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Relation bulk write facility To: Michael Paquier , Robert Haas Cc: Tom Lane , Noah Misch , Thomas Munro , Andres Freund , Peter Smith , vignesh C , pgsql-hackers , Melanie Plageman References: <20240224195024.af@rfd.leadboat.com> <20240224212936.f3zcbs24f7oaapm4@alap3.anarazel.de> <0C469A7A-548C-4B0C-9495-730FE80046E1@iki.fi> <31db8d41-2ac9-4b5e-b7a8-712d6d7d7aa2@iki.fi> <20240225194322.a5@rfd.leadboat.com> <1535845.1708890691@sss.pgh.pa.us> Content-Language: en-US From: Heikki Linnakangas In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------k00xEuzw3fd0DU9gE1C2n8Fx Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 26/02/2024 06:18, Michael Paquier wrote: > On Mon, Feb 26, 2024 at 09:42:03AM +0530, Robert Haas wrote: >> On Mon, Feb 26, 2024 at 1:21 AM Tom Lane wrote: >>> So, we now need to strip the remnants of AIX support from the code and >>> docs? I don't see that much of it, but it's misleading to leave it >>> there. >>> >>> (BTW, I still want to nuke the remaining snippets of HPPA support. >>> I don't think it does anybody any good to make it look like that's >>> still expected to work.) >> >> +1 for removing things that don't work (or that we think probably don't work). > > Seeing this stuff eat developer time because of the debugging of weird > issues while having a very limited impact for end-users is sad, so +1 > for a cleanup of any remnants if this disappears. Here's a patch to fully remove AIX support. One small issue that warrants some discussion (in sanity_check.sql): > --- When ALIGNOF_DOUBLE==4 (e.g. AIX), the C ABI may impose 8-byte alignment on > +-- When MAXIMUM_ALIGNOF==8 but ALIGNOF_DOUBLE==4, the C ABI may impose 8-byte alignment > -- some of the C types that correspond to TYPALIGN_DOUBLE SQL types. To ensure > -- catalog C struct layout matches catalog tuple layout, arrange for the tuple > -- offset of each fixed-width, attalign='d' catalog column to be divisible by 8 > -- unconditionally. Keep such columns before the first NameData column of the > -- catalog, since packagers can override NAMEDATALEN to an odd number. > +-- (XXX: I'm not sure if any of the supported platforms have MAXIMUM_ALIGNOF==8 and > +-- ALIGNOF_DOUBLE==4. Perhaps we should just require that > +-- ALIGNOF_DOUBLE==MAXIMUM_ALIGNOF) What do y'all think of adding a check for ALIGNOF_DOUBLE==MAXIMUM_ALIGNOF to configure.ac and meson.build? It's not a requirement today, but I believe AIX was the only platform where that was not true. With AIX gone, that combination won't be tested, and we will probably break it sooner or later. -- Heikki Linnakangas Neon (https://neon.tech) --------------k00xEuzw3fd0DU9gE1C2n8Fx Content-Type: text/x-patch; charset=UTF-8; name="0001-Remove-AIX-support.patch" Content-Disposition: attachment; filename="0001-Remove-AIX-support.patch" Content-Transfer-Encoding: base64 RnJvbSA1OWE2NmY1MDczNjVmZjljYjhjNDYyZDgyMDZiZTI4NWUzZTI2MzJkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFdlZCwgMjggRmViIDIwMjQgMDA6MjI6MjMgKzA0MDAK U3ViamVjdDogW1BBVENIIDEvMV0gUmVtb3ZlIEFJWCBzdXBwb3J0CgpUaGVyZSBpc24ndCBh IGxvdCBvZiB1c2VyIGRlbWFuZCBmb3IgQUlYIHN1cHBvcnQsIG5vIG9uZSBoYXMgc3RlcHBl ZAp1cCB0byB0aGUgcGxhdGUgdG8gcHJvcGVybHkgbWFpbnRhaW4gaXQsIHNvIGl0J3MgYmVz dCB0byByZW1vdmUgaXQKYWx0b2dldGhlci4gQUlYIGlzIHN0aWxsIHN1cHBvcnRlZCBmb3Ig c3RhYmxlIHZlcnNpb25zLgoKVGhlIGFjdXRlIGlzc3VlIHRoYXQgdHJpZ2dlcmVkIHRoaXMg ZGVjaXNpb24gd2FzIHRoYXQgYWZ0ZXIgY29tbWl0CjhhZjI1NjUyNDgsIHRoZSBBSVggYnVp bGRmYXJtIG1lbWJlcnMgaGF2ZSBiZWVuIGhpdHRpbmcgdGhpcwphc3NlcnRpb246CgogICAg VFJBUDogZmFpbGVkIEFzc2VydCgiKHVpbnRwdHJfdCkgYnVmZmVyID09IFRZUEVBTElHTihQ R19JT19BTElHTl9TSVpFLCBidWZmZXIpIiksIEZpbGU6ICJtZC5jIiwgTGluZTogNDcyLCBQ SUQ6IDI5NDk3MjgKCkFwcGVyZW50bHkgdGhlICJwZ19hdHRyaWJ1dGVfYWxpZ25lZChhKSIg YXR0cmlidXRlIGRvZXNuJ3Qgd29yayBvbiBBSVgKKGxpbmtlcj8pIGZvciB2YWx1ZXMgbGFy Z2VyIHRoYW4gUEdfSU9fQUxJR05fU0laRS4gVGhhdCBjb3VsZCBiZQp3b3JrZWQgYXJvdW5k LCBidXQgd2UgZGVjaWRlZCB0byBqdXN0IGRyb3AgdGhlIEFJWCBzdXBwb3J0IGluc3RlYWQu CgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkLzIw MjQwMjI0MTcyMzQ1LjMyJTQwcmZkLmxlYWRib2F0LmNvbQotLS0KIE1ha2VmaWxlICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBjb25maWcvYy1jb21w aWxlci5tNCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGNvbmZpZ3VyZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMwMSArLS0tLS0tLS0tLS0t LS0tLS0KIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAzNCArLQogZG9jL3NyYy9zZ21sL2RmdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgICAg IHwgIDE5IC0tCiBkb2Mvc3JjL3NnbWwvaW5zdGFsbGF0aW9uLnNnbWwgICAgICAgICAgICAg ICAgfCAxMTkgKy0tLS0tLQogZG9jL3NyYy9zZ21sL3J1bnRpbWUuc2dtbCAgICAgICAgICAg ICAgICAgICAgIHwgIDIzIC0tCiBtZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMjcgKy0KIHNyYy9NYWtlZmlsZS5zaGxpYiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAzMCAtLQogc3JjL2JhY2tlbmQvTWFrZWZpbGUgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIwIC0tCiBzcmMvYmFja2VuZC9tZXNvbi5idWlsZCAgICAg ICAgICAgICAgICAgICAgICAgfCAgMTUgLQogc3JjL2JhY2tlbmQvcG9ydC9haXgvbWtsZGV4 cG9ydC5zaCAgICAgICAgICAgIHwgIDYxIC0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Vycm9y L2Vsb2cuYyAgICAgICAgICAgICAgICB8ICAgMiAtCiBzcmMvYmFja2VuZC91dGlscy9taXNj L3BzX3N0YXR1cy5jICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9iaW4vcGdfYmFzZWJhY2t1 cC90LzAxMF9wZ19iYXNlYmFja3VwLnBsICB8ICAgMyAtCiBzcmMvYmluL3BnX3ZlcmlmeWJh Y2t1cC90LzAwOF91bnRhci5wbCAgICAgICAgfCAgIDMgLQogc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvdC8wMTBfY2xpZW50X3VudGFyLnBsIHwgICAzIC0KIHNyYy9pbmNsdWRlL2MuaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogc3JjL2luY2x1ZGUvcG9y dC9haXguaCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE0IC0KIHNyYy9pbmNsdWRlL3Bv cnQvYXRvbWljcy5oICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2luY2x1ZGUv c3RvcmFnZS9zX2xvY2suaCAgICAgICAgICAgICAgICAgIHwgIDMxICstCiBzcmMvaW50ZXJm YWNlcy9saWJwcS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbnRl cmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL21h a2VmaWxlcy9NYWtlZmlsZS5haXggICAgICAgICAgICAgICAgICAgIHwgIDM5IC0tLQogc3Jj L3BvcnQvUkVBRE1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBz cmMvcG9ydC9zdHJlcnJvci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgLQog c3JjL3RlbXBsYXRlL2FpeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI1IC0t CiBzcmMvdGVzdC9yZWdyZXNzL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgfCAgIDUg LQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zYW5pdHlfY2hlY2sub3V0ICAgIHwgICA1 ICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zYW5pdHlfY2hlY2suc3FsICAgICAgICAgfCAg IDUgKy0KIHNyYy90b29scy9nZW5fZXhwb3J0LnBsICAgICAgICAgICAgICAgICAgICAgICB8 ICAxMSArLQogc3JjL3Rvb2xzL3BnaW5jbHVkZS9jcGx1c3BsdXNjaGVjayAgICAgICAgICAg IHwgICAxIC0KIHNyYy90b29scy9wZ2luY2x1ZGUvaGVhZGVyc2NoZWNrICAgICAgICAgICAg ICB8ICAgMSAtCiAzMyBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCA3ODggZGVs ZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA3NTUgc3JjL2JhY2tlbmQvcG9ydC9haXgvbWts ZGV4cG9ydC5zaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL3BvcnQvYWl4LmgK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvbWFrZWZpbGVzL01ha2VmaWxlLmFpeAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyYy90ZW1wbGF0ZS9haXgKCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBi L01ha2VmaWxlCmluZGV4IDliYzFhNGVjMTdiLi44YTJlYzkzOTZiNiAxMDA2NDQKLS0tIGEv TWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEzLDYgKzEzLDggQEAKIAogIyBBSVggbWFr ZSBkZWZhdWx0cyB0byBidWlsZGluZyAqZXZlcnkqIHRhcmdldCBvZiB0aGUgZmlyc3QgcnVs ZS4gIFN0YXJ0IHdpdGgKICMgYSBzaW5nbGUtdGFyZ2V0LCBlbXB0eSBydWxlIHRvIG1ha2Ug dGhlIG90aGVyIHRhcmdldHMgbm9uLWRlZmF1bHQuCisjIChXZSBkb24ndCBzdXBwb3J0IEFJ WCBhbnltb3JlLCBidXQgaWYgc29tZW9uZSB0cmllcyB0byBidWlsZCBvbiBBSVggYW55d2F5 LAorIyBhdCBsZWFzdCB0aGV5J2xsIGdldCB0aGUgaW5zdHJ1Y3Rpb25zIHRvIHJ1biAnY29u ZmlndXJlJyBmaXJzdC4pCiBhbGw6CiAKIGFsbCBjaGVjayBpbnN0YWxsIGluc3RhbGxkaXJz IGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stcGFyYWxsZWwgdW5pbnN0YWxsIGNsZWFuIGRp c3RjbGVhbiBtYWludGFpbmVyLWNsZWFuIGRpc3QgZGlzdGNoZWNrIHdvcmxkIGNoZWNrLXdv cmxkIGluc3RhbGwtd29ybGQgaW5zdGFsbGNoZWNrLXdvcmxkOgpkaWZmIC0tZ2l0IGEvY29u ZmlnL2MtY29tcGlsZXIubTQgYi9jb25maWcvYy1jb21waWxlci5tNAppbmRleCA1ZGIwMmIy YWI3NS4uMzI2OGE3ODBiYjAgMTAwNjQ0Ci0tLSBhL2NvbmZpZy9jLWNvbXBpbGVyLm00Cisr KyBiL2NvbmZpZy9jLWNvbXBpbGVyLm00CkBAIC0xMzcsNyArMTM3LDcgQEAgaWYgdGVzdCB4 IiRwZ2FjX2N2X18xMjhiaXRfaW50IiA9IHh5ZXMgOyB0aGVuCiAgIEFDX0NBQ0hFX0NIRUNL KFtmb3IgX19pbnQxMjggYWxpZ25tZW50IGJ1Z10sIFtwZ2FjX2N2X18xMjhiaXRfaW50X2J1 Z10sCiAgIFtBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oWwogLyogVGhpcyBtdXN0 IG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGNvZGUgaW4gYy5oOiAqLwotI2lmIGRlZmluZWQo X19HTlVDX18pIHx8IGRlZmluZWQoX19TVU5QUk9fQykgfHwgZGVmaW5lZChfX0lCTUNfXykK KyNpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0MpCiAjZGVmaW5l IHBnX2F0dHJpYnV0ZV9hbGlnbmVkKGEpIF9fYXR0cmlidXRlX18oKGFsaWduZWQoYSkpKQog I2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKICNkZWZpbmUgcGdfYXR0cmlidXRlX2FsaWduZWQo YSkgX19kZWNsc3BlYyhhbGlnbihhKSkKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZp Z3VyZQppbmRleCA2Yjg3ZTVjOWE4Yy4uNGUyZGJhMzM4YmUgMTAwNzU1Ci0tLSBhL2NvbmZp Z3VyZQorKysgYi9jb25maWd1cmUKQEAgLTI5ODcsNyArMjk4Nyw2IEBAIGVsc2UKICMgLS13 aXRoLXRlbXBsYXRlIG5vdCBnaXZlbgogCiBjYXNlICRob3N0X29zIGluCi0gICAgIGFpeCop IHRlbXBsYXRlPWFpeCA7OwogICBjeWd3aW4qfG1zeXMqKSB0ZW1wbGF0ZT1jeWd3aW4gOzsK ICAgZGFyd2luKikgdGVtcGxhdGU9ZGFyd2luIDs7CiBkcmFnb25mbHkqKSB0ZW1wbGF0ZT1u ZXRic2QgOzsKQEAgLTM5MTcsMTAgKzM5MTYsMTAgQEAgZmkKIAogCiAKLWNhc2UgJHRlbXBs YXRlIGluCi0gIGFpeCkgcGdhY19jY19saXN0PSJnY2MgeGxjIjsgcGdhY19jeHhfbGlzdD0i ZysrIHhsQyI7OwotICAgICopIHBnYWNfY2NfbGlzdD0iZ2NjIGNjIjsgcGdhY19jeHhfbGlz dD0iZysrIGMrKyI7OwotZXNhYworIyBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIGxpc3Qgb2Yg Y29tcGlsZXJzIHRvIHRlc3QsIHRoZSBBQ19QUk9HX0NDIGFuZAorIyBBQ19QUk9HX0NYWCBt YWNyb3MgdGVzdCBmb3IgYSBsb25nIGxpc3Qgb2YgdW5zdXBwb3J0ZWQgY29tcGlsZXJzLgor cGdhY19jY19saXN0PSJnY2MgY2MiCitwZ2FjX2N4eF9saXN0PSJnKysgYysrIgogCiBhY19l eHQ9YwogYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKQEAgLTY4NzQsMTkwICs2ODczLDYgQEAg aWYgdGVzdCB4IiRwZ2FjX2N2X3Byb2dfQ1hYX2N4eGZsYWdzX19mbm9fc3RyaWN0X2FsaWFz aW5nIiA9IHgieWVzIjsgdGhlbgogZmkKIAogCi1lbGlmIHRlc3QgIiRQT1JUTkFNRSIgPSAi YWl4IjsgdGhlbgotICAjIEFJWCdzIHhsYyBoYXMgdG8gaGF2ZSBzdHJpY3QgYWxpYXNpbmcg dHVybmVkIG9mZiB0b28KLQoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyB3aGV0aGVyICR7Q0N9IHN1cHBvcnRzIC1xbm9hbnNpYWxpYXMsIGZv ciBDRkxBR1MiID4mNQotJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAke0NDfSBzdXBw b3J0cyAtcW5vYW5zaWFsaWFzLCBmb3IgQ0ZMQUdTLi4uICIgPiY2OyB9Ci1pZiAke3BnYWNf Y3ZfcHJvZ19DQ19jZmxhZ3NfX3Fub2Fuc2lhbGlhcys6fSBmYWxzZTsgdGhlbiA6Ci0gICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci1lbHNlCi0gIHBnYWNfc2F2ZV9DRkxBR1M9JENG TEFHUwotcGdhY19zYXZlX0NDPSRDQwotQ0M9JHtDQ30KLUNGTEFHUz0iJHtDRkxBR1N9IC1x bm9hbnNpYWxpYXMiCi1hY19zYXZlX2Nfd2Vycm9yX2ZsYWc9JGFjX2Nfd2Vycm9yX2ZsYWcK LWFjX2Nfd2Vycm9yX2ZsYWc9eWVzCi1jYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m dGVzdC4kYWNfZXh0Ci0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLWludAotbWFpbiAoKQot ewotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLWlmIGFjX2ZuX2NfdHJ5X2NvbXBp bGUgIiRMSU5FTk8iOyB0aGVuIDoKLSAgcGdhY19jdl9wcm9nX0NDX2NmbGFnc19fcW5vYW5z aWFsaWFzPXllcwotZWxzZQotICBwZ2FjX2N2X3Byb2dfQ0NfY2ZsYWdzX19xbm9hbnNpYWxp YXM9bm8KLWZpCi1ybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0LiRhY19leHQKLWFjX2Nfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJyb3Jf ZmxhZwotQ0ZMQUdTPSIkcGdhY19zYXZlX0NGTEFHUyIKLUNDPSIkcGdhY19zYXZlX0NDIgot ZmkKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk cGdhY19jdl9wcm9nX0NDX2NmbGFnc19fcW5vYW5zaWFsaWFzIiA+JjUKLSRhc19lY2hvICIk cGdhY19jdl9wcm9nX0NDX2NmbGFnc19fcW5vYW5zaWFsaWFzIiA+JjY7IH0KLWlmIHRlc3Qg eCIkcGdhY19jdl9wcm9nX0NDX2NmbGFnc19fcW5vYW5zaWFsaWFzIiA9IHgieWVzIjsgdGhl bgotICBDRkxBR1M9IiR7Q0ZMQUdTfSAtcW5vYW5zaWFsaWFzIgotZmkKLQotCi0gIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAk e0NYWH0gc3VwcG9ydHMgLXFub2Fuc2lhbGlhcywgZm9yIENYWEZMQUdTIiA+JjUKLSRhc19l Y2hvX24gImNoZWNraW5nIHdoZXRoZXIgJHtDWFh9IHN1cHBvcnRzIC1xbm9hbnNpYWxpYXMs IGZvciBDWFhGTEFHUy4uLiAiID4mNjsgfQotaWYgJHtwZ2FjX2N2X3Byb2dfQ1hYX2N4eGZs YWdzX19xbm9hbnNpYWxpYXMrOn0gZmFsc2U7IHRoZW4gOgotICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotZWxzZQotICBwZ2FjX3NhdmVfQ1hYRkxBR1M9JENYWEZMQUdTCi1wZ2Fj X3NhdmVfQ1hYPSRDWFgKLUNYWD0ke0NYWH0KLUNYWEZMQUdTPSIke0NYWEZMQUdTfSAtcW5v YW5zaWFsaWFzIgotYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWc9JGFjX2N4eF93ZXJyb3JfZmxh ZwotYWNfY3h4X3dlcnJvcl9mbGFnPXllcwotYWNfZXh0PWNwcAotYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKLWFjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKLWFjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCi1hY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLQotY2F0 IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotLyogZW5kIGNvbmZk ZWZzLmguICAqLwotCi1pbnQKLW1haW4gKCkKLXsKLQotICA7Ci0gIHJldHVybiAwOwotfQot X0FDRU9GCi1pZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSAg cGdhY19jdl9wcm9nX0NYWF9jeHhmbGFnc19fcW5vYW5zaWFsaWFzPXllcwotZWxzZQotICBw Z2FjX2N2X3Byb2dfQ1hYX2N4eGZsYWdzX19xbm9hbnNpYWxpYXM9bm8KLWZpCi1ybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQK LWFjX2V4dD1jCi1hY19jcHA9JyRDUFAgJENQUEZMQUdTJwotYWNfY29tcGlsZT0nJENDIC1j ICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotYWNfbGluaz0nJEND IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLWFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21w aWxlcl9nbnUKLQotYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxh ZwotQ1hYRkxBR1M9IiRwZ2FjX3NhdmVfQ1hYRkxBR1MiCi1DWFg9IiRwZ2FjX3NhdmVfQ1hY IgotZmkKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkcGdhY19jdl9wcm9nX0NYWF9jeHhmbGFnc19fcW5vYW5zaWFsaWFzIiA+JjUKLSRhc19l Y2hvICIkcGdhY19jdl9wcm9nX0NYWF9jeHhmbGFnc19fcW5vYW5zaWFsaWFzIiA+JjY7IH0K LWlmIHRlc3QgeCIkcGdhY19jdl9wcm9nX0NYWF9jeHhmbGFnc19fcW5vYW5zaWFsaWFzIiA9 IHgieWVzIjsgdGhlbgotICBDWFhGTEFHUz0iJHtDWFhGTEFHU30gLXFub2Fuc2lhbGlhcyIK LWZpCi0KLQotCi17ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIHdoZXRoZXIgJHtDQ30gc3VwcG9ydHMgLXFsb25nbG9uZywgZm9yIENGTEFHUyIg PiY1Ci0kYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICR7Q0N9IHN1cHBvcnRzIC1xbG9u Z2xvbmcsIGZvciBDRkxBR1MuLi4gIiA+JjY7IH0KLWlmICR7cGdhY19jdl9wcm9nX0NDX2Nm bGFnc19fcWxvbmdsb25nKzp9IGZhbHNlOyB0aGVuIDoKLSAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLWVsc2UKLSAgcGdhY19zYXZlX0NGTEFHUz0kQ0ZMQUdTCi1wZ2FjX3NhdmVf Q0M9JENDCi1DQz0ke0NDfQotQ0ZMQUdTPSIke0NGTEFHU30gLXFsb25nbG9uZyIKLWFjX3Nh dmVfY193ZXJyb3JfZmxhZz0kYWNfY193ZXJyb3JfZmxhZwotYWNfY193ZXJyb3JfZmxhZz15 ZXMKLWNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLS8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLQotaW50Ci1tYWluICgpCi17Ci0KLSAgOwotICByZXR1cm4g MDsKLX0KLV9BQ0VPRgotaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4g OgotICBwZ2FjX2N2X3Byb2dfQ0NfY2ZsYWdzX19xbG9uZ2xvbmc9eWVzCi1lbHNlCi0gIHBn YWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX3Fsb25nbG9uZz1ubwotZmkKLXJtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotYWNfY193 ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jX3dlcnJvcl9mbGFnCi1DRkxBR1M9IiRwZ2FjX3NhdmVf Q0ZMQUdTIgotQ0M9IiRwZ2FjX3NhdmVfQ0MiCi1maQoteyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRwZ2FjX2N2X3Byb2dfQ0NfY2ZsYWdzX19x bG9uZ2xvbmciID4mNQotJGFzX2VjaG8gIiRwZ2FjX2N2X3Byb2dfQ0NfY2ZsYWdzX19xbG9u Z2xvbmciID4mNjsgfQotaWYgdGVzdCB4IiRwZ2FjX2N2X3Byb2dfQ0NfY2ZsYWdzX19xbG9u Z2xvbmciID0geCJ5ZXMiOyB0aGVuCi0gIENGTEFHUz0iJHtDRkxBR1N9IC1xbG9uZ2xvbmci Ci1maQotCi0KLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyB3aGV0aGVyICR7Q1hYfSBzdXBwb3J0cyAtcWxvbmdsb25nLCBmb3IgQ1hYRkxB R1MiID4mNQotJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAke0NYWH0gc3VwcG9ydHMg LXFsb25nbG9uZywgZm9yIENYWEZMQUdTLi4uICIgPiY2OyB9Ci1pZiAke3BnYWNfY3ZfcHJv Z19DWFhfY3h4ZmxhZ3NfX3Fsb25nbG9uZys6fSBmYWxzZTsgdGhlbiA6Ci0gICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci1lbHNlCi0gIHBnYWNfc2F2ZV9DWFhGTEFHUz0kQ1hYRkxB R1MKLXBnYWNfc2F2ZV9DWFg9JENYWAotQ1hYPSR7Q1hYfQotQ1hYRkxBR1M9IiR7Q1hYRkxB R1N9IC1xbG9uZ2xvbmciCi1hY19zYXZlX2N4eF93ZXJyb3JfZmxhZz0kYWNfY3h4X3dlcnJv cl9mbGFnCi1hY19jeHhfd2Vycm9yX2ZsYWc9eWVzCi1hY19leHQ9Y3BwCi1hY19jcHA9JyRD WFhDUFAgJENQUEZMQUdTJwotYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKLWFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQot Ci1jYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0vKiBlbmQg Y29uZmRlZnMuaC4gICovCi0KLWludAotbWFpbiAoKQotewotCi0gIDsKLSAgcmV0dXJuIDA7 Ci19Ci1fQUNFT0YKLWlmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4g OgotICBwZ2FjX2N2X3Byb2dfQ1hYX2N4eGZsYWdzX19xbG9uZ2xvbmc9eWVzCi1lbHNlCi0g IHBnYWNfY3ZfcHJvZ19DWFhfY3h4ZmxhZ3NfX3Fsb25nbG9uZz1ubwotZmkKLXJtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAot YWNfZXh0PWMKLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi1hY19jb21waWxlPSckQ0MgLWMg JENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi1hY19saW5rPSckQ0Mg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgJExJQlMgPiY1JwotYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBp bGVyX2dudQotCi1hY19jeHhfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFn Ci1DWFhGTEFHUz0iJHBnYWNfc2F2ZV9DWFhGTEFHUyIKLUNYWD0iJHBnYWNfc2F2ZV9DWFgi Ci1maQoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRwZ2FjX2N2X3Byb2dfQ1hYX2N4eGZsYWdzX19xbG9uZ2xvbmciID4mNQotJGFzX2VjaG8g IiRwZ2FjX2N2X3Byb2dfQ1hYX2N4eGZsYWdzX19xbG9uZ2xvbmciID4mNjsgfQotaWYgdGVz dCB4IiRwZ2FjX2N2X3Byb2dfQ1hYX2N4eGZsYWdzX19xbG9uZ2xvbmciID0geCJ5ZXMiOyB0 aGVuCi0gIENYWEZMQUdTPSIke0NYWEZMQUdTfSAtcWxvbmdsb25nIgotZmkKLQotCiBmaQog CiAjIElmIHRoZSBjb21waWxlciBrbm93cyBob3cgdG8gaGlkZSBzeW1ib2xzLCBhZGQgdGhl IHN3aXRjaCBuZWVkZWQgZm9yIHRoYXQgdG8KQEAgLTcyMTIsMTAzICs3MDI3LDYgQEAgaWYg dGVzdCB4IiRwZ2FjX2N2X3Byb2dfQ1hYX2N4eGZsYWdzX19mdmlzaWJpbGl0eV9pbmxpbmVz X2hpZGRlbiIgPSB4InllcyI7IHRoZW4KIGZpCiAKICAgaGF2ZV92aXNpYmlsaXR5X2F0dHJp YnV0ZT0kcGdhY19jdl9wcm9nX0NDX2NmbGFnc19fZnZpc2liaWxpdHlfaGlkZGVuCi1lbGlm IHRlc3QgIiRQT1JUTkFNRSIgPSAiYWl4IjsgdGhlbgotICAjIE5vdGUgdGhhdCB4bGMgYWNj ZXB0cyAtZnZpc2liaWxpdHk9aGlkZGVuIGFzIGEgZmlsZS4KLSAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyICR7Q0N9IHN1cHBv cnRzIC1xdmlzaWJpbGl0eT1oaWRkZW4sIGZvciBDRkxBR1NfU0xfTU9EVUxFIiA+JjUKLSRh c19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJHtDQ30gc3VwcG9ydHMgLXF2aXNpYmlsaXR5 PWhpZGRlbiwgZm9yIENGTEFHU19TTF9NT0RVTEUuLi4gIiA+JjY7IH0KLWlmICR7cGdhY19j dl9wcm9nX0NDX2NmbGFnc19fcXZpc2liaWxpdHlfaGlkZGVuKzp9IGZhbHNlOyB0aGVuIDoK LSAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLWVsc2UKLSAgcGdhY19zYXZlX0NGTEFH Uz0kQ0ZMQUdTCi1wZ2FjX3NhdmVfQ0M9JENDCi1DQz0ke0NDfQotQ0ZMQUdTPSIke0NGTEFH U19TTF9NT0RVTEV9IC1xdmlzaWJpbGl0eT1oaWRkZW4iCi1hY19zYXZlX2Nfd2Vycm9yX2Zs YWc9JGFjX2Nfd2Vycm9yX2ZsYWcKLWFjX2Nfd2Vycm9yX2ZsYWc9eWVzCi1jYXQgY29uZmRl ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0vKiBlbmQgY29uZmRlZnMuaC4g ICovCi0KLWludAotbWFpbiAoKQotewotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YK LWlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSAgcGdhY19jdl9w cm9nX0NDX2NmbGFnc19fcXZpc2liaWxpdHlfaGlkZGVuPXllcwotZWxzZQotICBwZ2FjX2N2 X3Byb2dfQ0NfY2ZsYWdzX19xdmlzaWJpbGl0eV9oaWRkZW49bm8KLWZpCi1ybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWFj X2Nfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJyb3JfZmxhZwotQ0ZMQUdTPSIkcGdhY19z YXZlX0NGTEFHUyIKLUNDPSIkcGdhY19zYXZlX0NDIgotZmkKLXsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkcGdhY19jdl9wcm9nX0NDX2NmbGFn c19fcXZpc2liaWxpdHlfaGlkZGVuIiA+JjUKLSRhc19lY2hvICIkcGdhY19jdl9wcm9nX0ND X2NmbGFnc19fcXZpc2liaWxpdHlfaGlkZGVuIiA+JjY7IH0KLWlmIHRlc3QgeCIkcGdhY19j dl9wcm9nX0NDX2NmbGFnc19fcXZpc2liaWxpdHlfaGlkZGVuIiA9IHgieWVzIjsgdGhlbgot ICBDRkxBR1NfU0xfTU9EVUxFPSIke0NGTEFHU19TTF9NT0RVTEV9IC1xdmlzaWJpbGl0eT1o aWRkZW4iCi1maQotCi0KLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyB3aGV0aGVyICR7Q1hYfSBzdXBwb3J0cyAtcXZpc2liaWxpdHk9aGlk ZGVuLCBmb3IgQ1hYRkxBR1NfU0xfTU9EVUxFIiA+JjUKLSRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgJHtDWFh9IHN1cHBvcnRzIC1xdmlzaWJpbGl0eT1oaWRkZW4sIGZvciBDWFhG TEFHU19TTF9NT0RVTEUuLi4gIiA+JjY7IH0KLWlmICR7cGdhY19jdl9wcm9nX0NYWF9jeHhm bGFnc19fcXZpc2liaWxpdHlfaGlkZGVuKzp9IGZhbHNlOyB0aGVuIDoKLSAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLWVsc2UKLSAgcGdhY19zYXZlX0NYWEZMQUdTPSRDWFhGTEFH UwotcGdhY19zYXZlX0NYWD0kQ1hYCi1DWFg9JHtDWFh9Ci1DWFhGTEFHUz0iJHtDWFhGTEFH U19TTF9NT0RVTEV9IC1xdmlzaWJpbGl0eT1oaWRkZW4iCi1hY19zYXZlX2N4eF93ZXJyb3Jf ZmxhZz0kYWNfY3h4X3dlcnJvcl9mbGFnCi1hY19jeHhfd2Vycm9yX2ZsYWc9eWVzCi1hY19l eHQ9Y3BwCi1hY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLWFjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudQotCi1jYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz dC4kYWNfZXh0Ci0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLWludAotbWFpbiAoKQotewot Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLWlmIGFjX2ZuX2N4eF90cnlfY29tcGls ZSAiJExJTkVOTyI7IHRoZW4gOgotICBwZ2FjX2N2X3Byb2dfQ1hYX2N4eGZsYWdzX19xdmlz aWJpbGl0eV9oaWRkZW49eWVzCi1lbHNlCi0gIHBnYWNfY3ZfcHJvZ19DWFhfY3h4ZmxhZ3Nf X3F2aXNpYmlsaXR5X2hpZGRlbj1ubwotZmkKLXJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotYWNfZXh0PWMKLWFjX2NwcD0n JENQUCAkQ1BQRkxBR1MnCi1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCi1hY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMg PiY1JwotYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotCi1hY19jeHhf d2Vycm9yX2ZsYWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnCi1DWFhGTEFHUz0iJHBnYWNf c2F2ZV9DWFhGTEFHUyIKLUNYWD0iJHBnYWNfc2F2ZV9DWFgiCi1maQoteyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRwZ2FjX2N2X3Byb2dfQ1hY X2N4eGZsYWdzX19xdmlzaWJpbGl0eV9oaWRkZW4iID4mNQotJGFzX2VjaG8gIiRwZ2FjX2N2 X3Byb2dfQ1hYX2N4eGZsYWdzX19xdmlzaWJpbGl0eV9oaWRkZW4iID4mNjsgfQotaWYgdGVz dCB4IiRwZ2FjX2N2X3Byb2dfQ1hYX2N4eGZsYWdzX19xdmlzaWJpbGl0eV9oaWRkZW4iID0g eCJ5ZXMiOyB0aGVuCi0gIENYWEZMQUdTX1NMX01PRFVMRT0iJHtDWFhGTEFHU19TTF9NT0RV TEV9IC1xdmlzaWJpbGl0eT1oaWRkZW4iCi1maQotCi0gIGhhdmVfdmlzaWJpbGl0eV9hdHRy aWJ1dGU9JHBnYWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX3F2aXNpYmlsaXR5X2hpZGRlbgotICAj IE9sZCB4bGMgdmVyc2lvbnMgKDwxMy4xKSBkb24ndCBoYXZlIHN1cHBvcnQgZm9yIC1xdmlz aWJpbGl0eS4gVXNlIGV4cGZ1bGwgdG8gZm9yY2UKLSAgIyBhbGwgZXh0ZW5zaW9uIG1vZHVs ZSBzeW1ib2xzIHRvIGJlIGV4cG9ydGVkLgotICBpZiB0ZXN0ICIkcGdhY19jdl9wcm9nX0ND X2NmbGFnc19fcXZpc2liaWxpdHlfaGlkZGVuIiAhPSAieWVzIjsgdGhlbgotICAgIENGTEFH U19TTF9NT0RVTEU9IiRDRkxBR1NfU0xfTU9EVUxFIC1XbCwtYixleHBmdWxsIgotICBmaQog ZmkKIAogaWYgdGVzdCAiJGhhdmVfdmlzaWJpbGl0eV9hdHRyaWJ1dGUiID0gInllcyI7IHRo ZW4KQEAgLTEzMTY2LDggKzEyODg0LDcgQEAgZmkKIAogZmkKIAotIyBOb3RlOiBXZSBjYW4g dGVzdCBmb3IgbGlibGRhcF9yIG9ubHkgYWZ0ZXIgd2Uga25vdyBQVEhSRUFEX0xJQlM7Ci0j IGFsc28sIG9uIEFJWCwgd2UgbWF5IG5lZWQgdG8gaGF2ZSBvcGVuc3NsIGluIExJQlMgZm9y IHRoaXMgc3RlcC4KKyMgTm90ZTogV2UgY2FuIHRlc3QgZm9yIGxpYmxkYXBfciBvbmx5IGFm dGVyIHdlIGtub3cgUFRIUkVBRF9MSUJTCiBpZiB0ZXN0ICIkd2l0aF9sZGFwIiA9IHllcyA7 IHRoZW4KICAgX0xJQlM9IiRMSUJTIgogICBpZiB0ZXN0ICIkUE9SVE5BTUUiICE9ICJ3aW4z MiI7IHRoZW4KQEAgLTE1MDI1LDEwICsxNDc0Miw2IEBAIGZpCiAjIHNwZWxsaW5nIGl0IHVu ZGVyc3RhbmRzLCBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoCiAjIF9fZGVjbHNwZWMocmVz dHJpY3QpLiBUaGVyZWZvcmUgd2UgZGVmaW5lIHBnX3Jlc3RyaWN0IHRvIHRoZQogIyBhcHBy b3ByaWF0ZSBkZWZpbml0aW9uLCB3aGljaCBwcmVzdW1hYmx5IHdvbid0IGNvbmZsaWN0Lgot IwotIyBBbGxvdyBwbGF0Zm9ybXMgd2l0aCBidWdneSBjb21waWxlcnMgdG8gZm9yY2UgcmVz dHJpY3QgdG8gbm90IGJlCi0jIHVzZWQgYnkgc2V0dGluZyAkRk9SQ0VfRElTQUJMRV9SRVNU UklDVD15ZXMgaW4gdGhlIHJlbGV2YW50Ci0jIHRlbXBsYXRlLgogeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQy9DKysgcmVzdHJpY3Qg a2V5d29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgQy9DKysgcmVzdHJpY3Qg a2V5d29yZC4uLiAiID4mNjsgfQogaWYgJHthY19jdl9jX3Jlc3RyaWN0Kzp9IGZhbHNlOyB0 aGVuIDoKQEAgLTE1MDc1LDcgKzE0Nzg4LDcgQEAgX0FDRU9GCiAgOzsKICBlc2FjCiAKLWlm IHRlc3QgIiRhY19jdl9jX3Jlc3RyaWN0IiA9ICJubyIgLW8gIngkRk9SQ0VfRElTQUJMRV9S RVNUUklDVCIgPSAieHllcyI7IHRoZW4KK2lmIHRlc3QgIiRhY19jdl9jX3Jlc3RyaWN0IiA9 ICJubyI7IHRoZW4KICAgcGdfcmVzdHJpY3Q9IiIKIGVsc2UKICAgcGdfcmVzdHJpY3Q9IiRh Y19jdl9jX3Jlc3RyaWN0IgpAQCAtMTczOTEsNyArMTcxMDQsNyBAQCBlbHNlCiAvKiBlbmQg Y29uZmRlZnMuaC4gICovCiAKIC8qIFRoaXMgbXVzdCBtYXRjaCB0aGUgY29ycmVzcG9uZGlu ZyBjb2RlIGluIGMuaDogKi8KLSNpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9f U1VOUFJPX0MpIHx8IGRlZmluZWQoX19JQk1DX18pCisjaWYgZGVmaW5lZChfX0dOVUNfXykg fHwgZGVmaW5lZChfX1NVTlBST19DKQogI2RlZmluZSBwZ19hdHRyaWJ1dGVfYWxpZ25lZChh KSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKGEpKSkKICNlbGlmIGRlZmluZWQoX01TQ19WRVIp CiAjZGVmaW5lIHBnX2F0dHJpYnV0ZV9hbGlnbmVkKGEpIF9fZGVjbHNwZWMoYWxpZ24oYSkp CmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggNmU2NGVj ZTExZGEuLmU4ODUxZGFhNzk4IDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29u ZmlndXJlLmFjCkBAIC02Miw3ICs2Miw2IEBAIFBHQUNfQVJHX1JFUSh3aXRoLCB0ZW1wbGF0 ZSwgW05BTUVdLCBbb3ZlcnJpZGUgb3BlcmF0aW5nIHN5c3RlbSB0ZW1wbGF0ZV0sCiAjIC0t d2l0aC10ZW1wbGF0ZSBub3QgZ2l2ZW4KIAogY2FzZSAkaG9zdF9vcyBpbgotICAgICBhaXgq KSB0ZW1wbGF0ZT1haXggOzsKICAgY3lnd2luKnxtc3lzKikgdGVtcGxhdGU9Y3lnd2luIDs7 CiAgIGRhcndpbiopIHRlbXBsYXRlPWRhcndpbiA7OwogZHJhZ29uZmx5KikgdGVtcGxhdGU9 bmV0YnNkIDs7CkBAIC0zNzQsMTAgKzM3MywxMCBAQCBBQ19ERUZJTkVfVU5RVU9URUQoW1hM T0dfQkxDS1NaXSwgJHtYTE9HX0JMQ0tTWn0sIFsKICMgdmFyaWFibGUuCiBQR0FDX0FSR19S RVEod2l0aCwgQ0MsIFtDTURdLCBbc2V0IGNvbXBpbGVyIChkZXByZWNhdGVkKV0sIFtDQz0k d2l0aF9DQ10pCiAKLWNhc2UgJHRlbXBsYXRlIGluCi0gIGFpeCkgcGdhY19jY19saXN0PSJn Y2MgeGxjIjsgcGdhY19jeHhfbGlzdD0iZysrIHhsQyI7OwotICAgICopIHBnYWNfY2NfbGlz dD0iZ2NjIGNjIjsgcGdhY19jeHhfbGlzdD0iZysrIGMrKyI7OwotZXNhYworIyBJZiB5b3Ug ZG9uJ3Qgc3BlY2lmeSBhIGxpc3Qgb2YgY29tcGlsZXJzIHRvIHRlc3QsIHRoZSBBQ19QUk9H X0NDIGFuZAorIyBBQ19QUk9HX0NYWCBtYWNyb3MgdGVzdCBmb3IgYSBsb25nIGxpc3Qgb2Yg dW5zdXBwb3J0ZWQgY29tcGlsZXJzLgorcGdhY19jY19saXN0PSJnY2MgY2MiCitwZ2FjX2N4 eF9saXN0PSJnKysgYysrIgogCiBBQ19QUk9HX0NDKFskcGdhY19jY19saXN0XSkKIEFDX1BS T0dfQ0NfQzk5KCkKQEAgLTU5NCwxMiArNTkzLDYgQEAgZWxpZiB0ZXN0ICIkSUNDIiA9IHll czsgdGhlbgogICAjIE1ha2Ugc3VyZSBzdHJpY3QgYWxpYXNpbmcgaXMgb2ZmICh0aG91Z2gg dGhpcyBpcyBzYWlkIHRvIGJlIHRoZSBkZWZhdWx0KQogICBQR0FDX1BST0dfQ0NfQ0ZMQUdT X09QVChbLWZuby1zdHJpY3QtYWxpYXNpbmddKQogICBQR0FDX1BST0dfQ1hYX0NGTEFHU19P UFQoWy1mbm8tc3RyaWN0LWFsaWFzaW5nXSkKLWVsaWYgdGVzdCAiJFBPUlROQU1FIiA9ICJh aXgiOyB0aGVuCi0gICMgQUlYJ3MgeGxjIGhhcyB0byBoYXZlIHN0cmljdCBhbGlhc2luZyB0 dXJuZWQgb2ZmIHRvbwotICBQR0FDX1BST0dfQ0NfQ0ZMQUdTX09QVChbLXFub2Fuc2lhbGlh c10pCi0gIFBHQUNfUFJPR19DWFhfQ0ZMQUdTX09QVChbLXFub2Fuc2lhbGlhc10pCi0gIFBH QUNfUFJPR19DQ19DRkxBR1NfT1BUKFstcWxvbmdsb25nXSkKLSAgUEdBQ19QUk9HX0NYWF9D RkxBR1NfT1BUKFstcWxvbmdsb25nXSkKIGZpCiAKICMgSWYgdGhlIGNvbXBpbGVyIGtub3dz IGhvdyB0byBoaWRlIHN5bWJvbHMsIGFkZCB0aGUgc3dpdGNoIG5lZWRlZCBmb3IgdGhhdCB0 bwpAQCAtNjE4LDE2ICs2MTEsNiBAQCBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtbyAiJFNVTl9T VFVESU9fQ0MiID0geWVzIDsgdGhlbgogICBQR0FDX1BST0dfVkFSQ1hYX1ZBUkZMQUdTX09Q VChDWFgsIENYWEZMQUdTX1NMX01PRFVMRSwgWy1mdmlzaWJpbGl0eT1oaWRkZW5dKQogICBQ R0FDX1BST0dfVkFSQ1hYX1ZBUkZMQUdTX09QVChDWFgsIENYWEZMQUdTX1NMX01PRFVMRSwg Wy1mdmlzaWJpbGl0eS1pbmxpbmVzLWhpZGRlbl0pCiAgIGhhdmVfdmlzaWJpbGl0eV9hdHRy aWJ1dGU9JHBnYWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX2Z2aXNpYmlsaXR5X2hpZGRlbgotZWxp ZiB0ZXN0ICIkUE9SVE5BTUUiID0gImFpeCI7IHRoZW4KLSAgIyBOb3RlIHRoYXQgeGxjIGFj Y2VwdHMgLWZ2aXNpYmlsaXR5PWhpZGRlbiBhcyBhIGZpbGUuCi0gIFBHQUNfUFJPR19DQ19W QVJfT1BUKENGTEFHU19TTF9NT0RVTEUsIFstcXZpc2liaWxpdHk9aGlkZGVuXSkKLSAgUEdB Q19QUk9HX1ZBUkNYWF9WQVJGTEFHU19PUFQoQ1hYLCBDWFhGTEFHU19TTF9NT0RVTEUsIFst cXZpc2liaWxpdHk9aGlkZGVuXSkKLSAgaGF2ZV92aXNpYmlsaXR5X2F0dHJpYnV0ZT0kcGdh Y19jdl9wcm9nX0NDX2NmbGFnc19fcXZpc2liaWxpdHlfaGlkZGVuCi0gICMgT2xkIHhsYyB2 ZXJzaW9ucyAoPDEzLjEpIGRvbid0IGhhdmUgc3VwcG9ydCBmb3IgLXF2aXNpYmlsaXR5LiBV c2UgZXhwZnVsbCB0byBmb3JjZQotICAjIGFsbCBleHRlbnNpb24gbW9kdWxlIHN5bWJvbHMg dG8gYmUgZXhwb3J0ZWQuCi0gIGlmIHRlc3QgIiRwZ2FjX2N2X3Byb2dfQ0NfY2ZsYWdzX19x dmlzaWJpbGl0eV9oaWRkZW4iICE9ICJ5ZXMiOyB0aGVuCi0gICAgQ0ZMQUdTX1NMX01PRFVM RT0iJENGTEFHU19TTF9NT0RVTEUgLVdsLC1iLGV4cGZ1bGwiCi0gIGZpCiBmaQogCiBpZiB0 ZXN0ICIkaGF2ZV92aXNpYmlsaXR5X2F0dHJpYnV0ZSIgPSAieWVzIjsgdGhlbgpAQCAtMTQw Nyw4ICsxMzkwLDcgQEAgaWYgdGVzdCAiJHdpdGhfenN0ZCIgPSB5ZXMgOyB0aGVuCiAgIEFD X0NIRUNLX0xJQih6c3RkLCBaU1REX2NvbXByZXNzLCBbXSwgW0FDX01TR19FUlJPUihbbGli cmFyeSAnenN0ZCcgaXMgcmVxdWlyZWQgZm9yIFpTVEQgc3VwcG9ydF0pXSkKIGZpCiAKLSMg Tm90ZTogV2UgY2FuIHRlc3QgZm9yIGxpYmxkYXBfciBvbmx5IGFmdGVyIHdlIGtub3cgUFRI UkVBRF9MSUJTOwotIyBhbHNvLCBvbiBBSVgsIHdlIG1heSBuZWVkIHRvIGhhdmUgb3BlbnNz bCBpbiBMSUJTIGZvciB0aGlzIHN0ZXAuCisjIE5vdGU6IFdlIGNhbiB0ZXN0IGZvciBsaWJs ZGFwX3Igb25seSBhZnRlciB3ZSBrbm93IFBUSFJFQURfTElCUwogaWYgdGVzdCAiJHdpdGhf bGRhcCIgPSB5ZXMgOyB0aGVuCiAgIF9MSUJTPSIkTElCUyIKICAgaWYgdGVzdCAiJFBPUlRO QU1FIiAhPSAid2luMzIiOyB0aGVuCkBAIC0xNjY2LDEyICsxNjQ4LDggQEAgUEdBQ19UWVBF X0xPQ0FMRV9UCiAjIHNwZWxsaW5nIGl0IHVuZGVyc3RhbmRzLCBiZWNhdXNlIGl0IGNvbmZs aWN0cyB3aXRoCiAjIF9fZGVjbHNwZWMocmVzdHJpY3QpLiBUaGVyZWZvcmUgd2UgZGVmaW5l IHBnX3Jlc3RyaWN0IHRvIHRoZQogIyBhcHByb3ByaWF0ZSBkZWZpbml0aW9uLCB3aGljaCBw cmVzdW1hYmx5IHdvbid0IGNvbmZsaWN0LgotIwotIyBBbGxvdyBwbGF0Zm9ybXMgd2l0aCBi dWdneSBjb21waWxlcnMgdG8gZm9yY2UgcmVzdHJpY3QgdG8gbm90IGJlCi0jIHVzZWQgYnkg c2V0dGluZyAkRk9SQ0VfRElTQUJMRV9SRVNUUklDVD15ZXMgaW4gdGhlIHJlbGV2YW50Ci0j IHRlbXBsYXRlLgogQUNfQ19SRVNUUklDVAotaWYgdGVzdCAiJGFjX2N2X2NfcmVzdHJpY3Qi ID0gIm5vIiAtbyAieCRGT1JDRV9ESVNBQkxFX1JFU1RSSUNUIiA9ICJ4eWVzIjsgdGhlbgor aWYgdGVzdCAiJGFjX2N2X2NfcmVzdHJpY3QiID0gIm5vIjsgdGhlbgogICBwZ19yZXN0cmlj dD0iIgogZWxzZQogICBwZ19yZXN0cmljdD0iJGFjX2N2X2NfcmVzdHJpY3QiCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvZGZ1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZnVuYy5zZ21s CmluZGV4IDU1NGY5ZmFjNGNlLi5iOTRhZWZjZDBjYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2RmdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RmdW5jLnNnbWwKQEAgLTIwMiwy MyArMjAyLDQgQEAgZ2NjIC1HIC1vIGZvby5zbyBmb28ubwogICBzZXJ2ZXIgZXhwZWN0cyB0 byBmaW5kIHRoZSBzaGFyZWQgbGlicmFyeSBmaWxlcy4KICA8L3BhcmE+CiAKLTwhLS0KLVVu ZGVyIEFJWCwgb2JqZWN0IGZpbGVzIGFyZSBjb21waWxlZCBub3JtYWxseSBidXQgYnVpbGRp bmcgdGhlIHNoYXJlZAotbGlicmFyeSByZXF1aXJlcyBhIGNvdXBsZSBvZiBzdGVwcy4gIEZp cnN0LCBjcmVhdGUgdGhlIG9iamVjdCBmaWxlOgotLm5mCi1jYyA8b3RoZXIgZmxhZ3M+IC1j IGZvby5jCi0uZmkKLVlvdSBtdXN0IHRoZW4gY3JlYXRlIGEgc3ltYm9sIFwqKGxxZXhwb3J0 c1wqKHJxIGZpbGUgZm9yIHRoZSBvYmplY3QKLWZpbGU6Ci0ubmYKLW1rbGRleHBvcnQgZm9v Lm8gYHB3ZGAgJmd0OyBmb28uZXhwCi0uZmkKLUZpbmFsbHksIHlvdSBjYW4gY3JlYXRlIHRo ZSBzaGFyZWQgbGlicmFyeToKLS5uZgotbGQgPG90aGVyIGZsYWdzPiAtSDUxMiAtVDUxMiAt byBmb28uc28gLWUgX25vc3RhcnQgXGUKLSAgIC1iSTouLi4vbGliL3Bvc3RncmVzLmV4cCAt YkU6Zm9vLmV4cCBmb28ubyBcZQotICAgLWxtIC1sYyAyPi9kZXYvbnVsbAotLmZpCi0gIC0t PgotCiA8L3NlY3QyPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2luc3RhbGxhdGlvbi5z Z21sIGIvZG9jL3NyYy9zZ21sL2luc3RhbGxhdGlvbi5zZ21sCmluZGV4IGVkNWIyODVhNWVl Li5kOTAxNTc2ZDk4ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2luc3RhbGxhdGlvbi5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9pbnN0YWxsYXRpb24uc2dtbApAQCAtMzQwMSw3ICsz NDAxLDcgQEAgZXhwb3J0IE1BTlBBVEgKICAgPHBhcmE+CiAgICA8cHJvZHVjdG5hbWU+UG9z dGdyZVNRTDwvcHJvZHVjdG5hbWU+IGNhbiBiZSBleHBlY3RlZCB0byB3b3JrIG9uIGN1cnJl bnQKICAgIHZlcnNpb25zIG9mIHRoZXNlIG9wZXJhdGluZyBzeXN0ZW1zOiBMaW51eCwgV2lu ZG93cywKLSAgIEZyZWVCU0QsIE9wZW5CU0QsIE5ldEJTRCwgRHJhZ29uRmx5QlNELCBtYWNP UywgQUlYLCBTb2xhcmlzLCBhbmQgaWxsdW1vcy4KKyAgIEZyZWVCU0QsIE9wZW5CU0QsIE5l dEJTRCwgRHJhZ29uRmx5QlNELCBtYWNPUywgU29sYXJpcywgYW5kIGlsbHVtb3MuCiAgICBP dGhlciBVbml4LWxpa2Ugc3lzdGVtcyBtYXkgYWxzbyB3b3JrIGJ1dCBhcmUgbm90IGN1cnJl bnRseQogICAgYmVpbmcgdGVzdGVkLiAgSW4gbW9zdCBjYXNlcywgYWxsIENQVSBhcmNoaXRl Y3R1cmVzIHN1cHBvcnRlZCBieQogICAgYSBnaXZlbiBvcGVyYXRpbmcgc3lzdGVtIHdpbGwg d29yay4gIExvb2sgaW4KQEAgLTM0NDUsMTIzICszNDQ1LDYgQEAgZXhwb3J0IE1BTlBBVEgK ICAgIGluc3RhbGxhdGlvbiBpc3N1ZXMuCiAgIDwvcGFyYT4KIAotICA8c2VjdDIgaWQ9Imlu c3RhbGxhdGlvbi1ub3Rlcy1haXgiPgotICAgPHRpdGxlPkFJWDwvdGl0bGU+Ci0KLSAgIDxp bmRleHRlcm0gem9uZT0iaW5zdGFsbGF0aW9uLW5vdGVzLWFpeCI+Ci0gICAgPHByaW1hcnk+ QUlYPC9wcmltYXJ5PgotICAgIDxzZWNvbmRhcnk+aW5zdGFsbGF0aW9uIG9uPC9zZWNvbmRh cnk+Ci0gICA8L2luZGV4dGVybT4KLQotICAgPHBhcmE+Ci0gICAgWW91IGNhbiB1c2UgR0ND IG9yIHRoZSBuYXRpdmUgSUJNIGNvbXBpbGVyIDxjb21tYW5kPnhsYzwvY29tbWFuZD4KLSAg ICB0byBidWlsZCA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+Ci0gICAg b24gPHByb2R1Y3RuYW1lPkFJWDwvcHJvZHVjdG5hbWU+LgotICAgPC9wYXJhPgotCi0gICA8 cGFyYT4KLSAgICA8cHJvZHVjdG5hbWU+QUlYPC9wcm9kdWN0bmFtZT4gdmVyc2lvbnMgYmVm b3JlIDcuMSBhcmUgbm8gbG9uZ2VyCi0gICAgdGVzdGVkIG5vciBzdXBwb3J0ZWQgYnkgdGhl IDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KLSAgICBjb21tdW5pdHku Ci0gICA8L3BhcmE+Ci0KLSAgIDxzZWN0MyBpZD0iaW5zdGFsbGF0aW9uLW5vdGVzLWFpeC1t ZW0tbWFuYWdlbWVudCI+Ci0gICAgPHRpdGxlPk1lbW9yeSBNYW5hZ2VtZW50PC90aXRsZT4K LSAgICA8IS0tIGh0dHBzOi8vYXJjaGl2ZXMucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC82 MDNiZ3FtcGw5LmZzZkBkYmEyLmludC5saWJlcnR5cm1zLmNvbSAtLT4KLQotICAgIDxwYXJh PgotICAgICBBSVggY2FuIGJlIHNvbWV3aGF0IHBlY3VsaWFyIHdpdGggcmVnYXJkcyB0byB0 aGUgd2F5IGl0IGRvZXMKLSAgICAgbWVtb3J5IG1hbmFnZW1lbnQuICBZb3UgY2FuIGhhdmUg YSBzZXJ2ZXIgd2l0aCBtYW55IG11bHRpcGxlcyBvZgotICAgICBnaWdhYnl0ZXMgb2YgUkFN IGZyZWUsIGJ1dCBzdGlsbCBnZXQgb3V0IG9mIG1lbW9yeSBvciBhZGRyZXNzCi0gICAgIHNw YWNlIGVycm9ycyB3aGVuIHJ1bm5pbmcgYXBwbGljYXRpb25zLiAgT25lIGV4YW1wbGUKLSAg ICAgaXMgbG9hZGluZyBvZiBleHRlbnNpb25zIGZhaWxpbmcgd2l0aCB1bnVzdWFsIGVycm9y cy4KLSAgICAgRm9yIGV4YW1wbGUsIHJ1bm5pbmcgYXMgdGhlIG93bmVyIG9mIHRoZSBQb3N0 Z3JlU1FMIGluc3RhbGxhdGlvbjoKLTxzY3JlZW4+Ci09IyBDUkVBVEUgRVhURU5TSU9OIHBs cGVybDsKLUVSUk9SOiAgY291bGQgbm90IGxvYWQgbGlicmFyeSAiL29wdC9kYnMvcGdzcWwv bGliL3BscGVybC5zbyI6IEEgbWVtb3J5IGFkZHJlc3MgaXMgbm90IGluIHRoZSBhZGRyZXNz IHNwYWNlIGZvciB0aGUgcHJvY2Vzcy4KLTwvc2NyZWVuPgotICAgIFJ1bm5pbmcgYXMgYSBu b24tb3duZXIgaW4gdGhlIGdyb3VwIHBvc3Nlc3NpbmcgdGhlIFBvc3RncmVTUUwKLSAgICBp bnN0YWxsYXRpb246Ci08c2NyZWVuPgotPSMgQ1JFQVRFIEVYVEVOU0lPTiBwbHBlcmw7Ci1F UlJPUjogIGNvdWxkIG5vdCBsb2FkIGxpYnJhcnkgIi9vcHQvZGJzL3Bnc3FsL2xpYi9wbHBl cmwuc28iOiBCYWQgYWRkcmVzcwotPC9zY3JlZW4+Ci0gICAgIEFub3RoZXIgZXhhbXBsZSBp cyBvdXQgb2YgbWVtb3J5IGVycm9ycyBpbiB0aGUgUG9zdGdyZVNRTCBzZXJ2ZXIKLSAgICAg bG9ncywgd2l0aCBldmVyeSBtZW1vcnkgYWxsb2NhdGlvbiBuZWFyIG9yIGdyZWF0ZXIgdGhh biAyNTYgTUIKLSAgICAgZmFpbGluZy4KLSAgICA8L3BhcmE+Ci0KLSAgICA8cGFyYT4KLSAg ICAgVGhlIG92ZXJhbGwgY2F1c2Ugb2YgYWxsIHRoZXNlIHByb2JsZW1zIGlzIHRoZSBkZWZh dWx0IGJpdHRlZG5lc3MKLSAgICAgYW5kIG1lbW9yeSBtb2RlbCB1c2VkIGJ5IHRoZSBzZXJ2 ZXIgcHJvY2Vzcy4gIEJ5IGRlZmF1bHQsIGFsbAotICAgICBiaW5hcmllcyBidWlsdCBvbiBB SVggYXJlIDMyLWJpdC4gIFRoaXMgZG9lcyBub3QgZGVwZW5kIHVwb24KLSAgICAgaGFyZHdh cmUgdHlwZSBvciBrZXJuZWwgaW4gdXNlLiAgVGhlc2UgMzItYml0IHByb2Nlc3NlcyBhcmUK LSAgICAgbGltaXRlZCB0byA0IEdCIG9mIG1lbW9yeSBsYWlkIG91dCBpbiAyNTYgTUIgc2Vn bWVudHMgdXNpbmcgb25lCi0gICAgIG9mIGEgZmV3IG1vZGVscy4gIFRoZSBkZWZhdWx0IGFs bG93cyBmb3IgbGVzcyB0aGFuIDI1NiBNQiBpbiB0aGUKLSAgICAgaGVhcCBhcyBpdCBzaGFy ZXMgYSBzaW5nbGUgc2VnbWVudCB3aXRoIHRoZSBzdGFjay4KLSAgICA8L3BhcmE+Ci0KLSAg ICA8cGFyYT4KLSAgICAgSW4gdGhlIGNhc2Ugb2YgdGhlIDxsaXRlcmFsPnBscGVybDwvbGl0 ZXJhbD4gZXhhbXBsZSwgYWJvdmUsCi0gICAgIGNoZWNrIHlvdXIgdW1hc2sgYW5kIHRoZSBw ZXJtaXNzaW9ucyBvZiB0aGUgYmluYXJpZXMgaW4geW91cgotICAgICBQb3N0Z3JlU1FMIGlu c3RhbGxhdGlvbi4gIFRoZSBiaW5hcmllcyBpbnZvbHZlZCBpbiB0aGF0IGV4YW1wbGUKLSAg ICAgd2VyZSAzMi1iaXQgYW5kIGluc3RhbGxlZCBhcyBtb2RlIDc1MCBpbnN0ZWFkIG9mIDc1 NS4gIER1ZSB0byB0aGUKLSAgICAgcGVybWlzc2lvbnMgYmVpbmcgc2V0IGluIHRoaXMgZmFz aGlvbiwgb25seSB0aGUgb3duZXIgb3IgYSBtZW1iZXIKLSAgICAgb2YgdGhlIHBvc3Nlc3Np bmcgZ3JvdXAgY2FuIGxvYWQgdGhlIGxpYnJhcnkuICBTaW5jZSBpdCBpc24ndAotICAgICB3 b3JsZC1yZWFkYWJsZSwgdGhlIGxvYWRlciBwbGFjZXMgdGhlIG9iamVjdCBpbnRvIHRoZSBw cm9jZXNzJwotICAgICBoZWFwIGluc3RlYWQgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5IHNlZ21l bnRzIHdoZXJlIGl0IHdvdWxkCi0gICAgIG90aGVyd2lzZSBiZSBwbGFjZWQuCi0gICAgPC9w YXJhPgotCi0gICAgPHBhcmE+Ci0gICAgIFRoZSA8cXVvdGU+aWRlYWw8L3F1b3RlPiBzb2x1 dGlvbiBmb3IgdGhpcyBpcyB0byB1c2UgYSA2NC1iaXQKLSAgICAgYnVpbGQgb2YgUG9zdGdy ZVNRTCwgYnV0IHRoYXQgaXMgbm90IGFsd2F5cyBwcmFjdGljYWwsIGJlY2F1c2UKLSAgICAg c3lzdGVtcyB3aXRoIDMyLWJpdCBwcm9jZXNzb3JzIGNhbiBidWlsZCwgYnV0IG5vdCBydW4s IDY0LWJpdAotICAgICBiaW5hcmllcy4KLSAgICA8L3BhcmE+Ci0KLSAgICA8cGFyYT4KLSAg ICAgSWYgYSAzMi1iaXQgYmluYXJ5IGlzIGRlc2lyZWQsIHNldCA8c3ltYm9sPkxEUl9DTlRS TDwvc3ltYm9sPiB0bwotICAgICA8bGl0ZXJhbD5NQVhEQVRBPTB4PHJlcGxhY2VhYmxlPm48 L3JlcGxhY2VhYmxlPjAwMDAwMDA8L2xpdGVyYWw+LAotICAgICB3aGVyZSAxICZsdDs9IG4g Jmx0Oz0gOCwgYmVmb3JlIHN0YXJ0aW5nIHRoZSBQb3N0Z3JlU1FMIHNlcnZlciwKLSAgICAg YW5kIHRyeSBkaWZmZXJlbnQgdmFsdWVzIGFuZCA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25m PC9maWxlbmFtZT4KLSAgICAgc2V0dGluZ3MgdG8gZmluZCBhIGNvbmZpZ3VyYXRpb24gdGhh dCB3b3JrcyBzYXRpc2ZhY3RvcmlseS4gIFRoaXMKLSAgICAgdXNlIG9mIDxzeW1ib2w+TERS X0NOVFJMPC9zeW1ib2w+IHRlbGxzIEFJWCB0aGF0IHlvdSB3YW50IHRoZQotICAgICBzZXJ2 ZXIgdG8gaGF2ZSA8c3ltYm9sPk1BWERBVEE8L3N5bWJvbD4gYnl0ZXMgc2V0IGFzaWRlIGZv ciB0aGUKLSAgICAgaGVhcCwgYWxsb2NhdGVkIGluIDI1NiBNQiBzZWdtZW50cy4gIFdoZW4g eW91IGZpbmQgYSB3b3JrYWJsZQotICAgICBjb25maWd1cmF0aW9uLAotICAgICA8Y29tbWFu ZD5sZGVkaXQ8L2NvbW1hbmQ+IGNhbiBiZSB1c2VkIHRvIG1vZGlmeSB0aGUgYmluYXJpZXMg c28KLSAgICAgdGhhdCB0aGV5IGRlZmF1bHQgdG8gdXNpbmcgdGhlIGRlc2lyZWQgaGVhcCBz aXplLiAgUG9zdGdyZVNRTCBjYW4KLSAgICAgYWxzbyBiZSByZWJ1aWx0LCBwYXNzaW5nIDxs aXRlcmFsPmNvbmZpZ3VyZQotICAgICBMREZMQUdTPSItV2wsLWJtYXhkYXRhOjB4PHJlcGxh Y2VhYmxlPm48L3JlcGxhY2VhYmxlPjAwMDAwMDAiPC9saXRlcmFsPgotICAgICB0byBhY2hp ZXZlIHRoZSBzYW1lIGVmZmVjdC4KLSAgICA8L3BhcmE+Ci0KLSAgICA8cGFyYT4KLSAgICAg Rm9yIGEgNjQtYml0IGJ1aWxkLCBzZXQgPGVudmFyPk9CSkVDVF9NT0RFPC9lbnZhcj4gdG8g NjQgYW5kCi0gICAgIHBhc3MgPGxpdGVyYWw+Q0M9ImdjYyAtbWFpeDY0IjwvbGl0ZXJhbD4K LSAgICAgYW5kIDxsaXRlcmFsPkxERkxBR1M9Ii1XbCwtYmJpZ3RvYyI8L2xpdGVyYWw+Ci0g ICAgIHRvIDxjb21tYW5kPmNvbmZpZ3VyZTwvY29tbWFuZD4uICAoT3B0aW9ucyBmb3IKLSAg ICA8Y29tbWFuZD54bGM8L2NvbW1hbmQ+IG1pZ2h0IGRpZmZlci4pICBJZiB5b3Ugb21pdCB0 aGUgZXhwb3J0IG9mCi0gICAgPGVudmFyPk9CSkVDVF9NT0RFPC9lbnZhcj4sIHlvdXIgYnVp bGQgbWF5IGZhaWwgd2l0aCBsaW5rZXIgZXJyb3JzLiAgV2hlbgotICAgIDxlbnZhcj5PQkpF Q1RfTU9ERTwvZW52YXI+IGlzIHNldCwgaXQgdGVsbHMgQUlYJ3MgYnVpbGQgdXRpbGl0aWVz Ci0gICAgc3VjaCBhcyA8Y29tbWFuZD5hcjwvY29tbWFuZD4sIDxjb21tYW5kPmFzPC9jb21t YW5kPiwgYW5kIDxjb21tYW5kPmxkPC9jb21tYW5kPiB3aGF0Ci0gICAgdHlwZSBvZiBvYmpl Y3RzIHRvIGRlZmF1bHQgdG8gaGFuZGxpbmcuCi0gICAgPC9wYXJhPgotCi0gICAgPHBhcmE+ Ci0gICAgIEJ5IGRlZmF1bHQsIG92ZXJjb21taXQgb2YgcGFnaW5nIHNwYWNlIGNhbiBoYXBw ZW4uICBXaGlsZSB3ZSBoYXZlCi0gICAgIG5vdCBzZWVuIHRoaXMgb2NjdXIsIEFJWCB3aWxs IGtpbGwgcHJvY2Vzc2VzIHdoZW4gaXQgcnVucyBvdXQgb2YKLSAgICAgbWVtb3J5IGFuZCB0 aGUgb3ZlcmNvbW1pdCBpcyBhY2Nlc3NlZC4gIFRoZSBjbG9zZXN0IHRvIHRoaXMgdGhhdAot ICAgICB3ZSBoYXZlIHNlZW4gaXMgZm9yayBmYWlsaW5nIGJlY2F1c2UgdGhlIHN5c3RlbSBk ZWNpZGVkIHRoYXQKLSAgICAgdGhlcmUgd2FzIG5vdCBlbm91Z2ggbWVtb3J5IGZvciBhbm90 aGVyIHByb2Nlc3MuICBMaWtlIG1hbnkgb3RoZXIKLSAgICAgcGFydHMgb2YgQUlYLCB0aGUg cGFnaW5nIHNwYWNlIGFsbG9jYXRpb24gbWV0aG9kIGFuZAotICAgICBvdXQtb2YtbWVtb3J5 IGtpbGwgaXMgY29uZmlndXJhYmxlIG9uIGEgc3lzdGVtLSBvciBwcm9jZXNzLXdpZGUKLSAg ICAgYmFzaXMgaWYgdGhpcyBiZWNvbWVzIGEgcHJvYmxlbS4KLSAgICA8L3BhcmE+Ci0gICA8 L3NlY3QzPgotICA8L3NlY3QyPgotCiAgIDxzZWN0MiBpZD0iaW5zdGFsbGF0aW9uLW5vdGVz LWN5Z3dpbiI+CiAgICA8dGl0bGU+Q3lnd2luPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3J1bnRpbWUuc2dtbCBiL2RvYy9zcmMvc2dtbC9ydW50aW1lLnNnbWwKaW5k ZXggNjQ3NTNkOWMwMTQuLjYwNDdiODE3MWQ0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cnVudGltZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9ydW50aW1lLnNnbWwKQEAgLTg5MSwy OSArODkxLDYgQEAgcHNxbDogZXJyb3I6IGNvbm5lY3Rpb24gdG8gc2VydmVyIG9uIHNvY2tl dCAiL3RtcC8ucy5QR1NRTC41NDMyIiBmYWlsZWQ6IE5vIHN1Y2gKIAogCiAgICAgPHZhcmlh YmxlbGlzdD4KLSAgICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgIDx0ZXJtPjxzeXN0ZW1pdGVt IGNsYXNzPSJvc25hbWUiPkFJWDwvc3lzdGVtaXRlbT4KLSAgICAgIDxpbmRleHRlcm0+PHBy aW1hcnk+QUlYPC9wcmltYXJ5PjxzZWNvbmRhcnk+SVBDIGNvbmZpZ3VyYXRpb248L3NlY29u ZGFyeT48L2luZGV4dGVybT4KLSAgICAgIDwvdGVybT4KLSAgICAgIDxsaXN0aXRlbT4KLSAg ICAgICA8cGFyYT4KLSAgICAgICAgSXQgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkgdG8gZG8K LSAgICAgICAgYW55IHNwZWNpYWwgY29uZmlndXJhdGlvbiBmb3Igc3VjaCBwYXJhbWV0ZXJz IGFzCi0gICAgICAgIDx2YXJuYW1lPlNITU1BWDwvdmFybmFtZT4sIGFzIGl0IGFwcGVhcnMg dGhpcyBpcyBjb25maWd1cmVkIHRvCi0gICAgICAgIGFsbG93IGFsbCBtZW1vcnkgdG8gYmUg dXNlZCBhcyBzaGFyZWQgbWVtb3J5LiAgVGhhdCBpcyB0aGUKLSAgICAgICAgc29ydCBvZiBj b25maWd1cmF0aW9uIGNvbW1vbmx5IHVzZWQgZm9yIG90aGVyIGRhdGFiYXNlcyBzdWNoCi0g ICAgICAgIGFzIDxhcHBsaWNhdGlvbj5EQi8yPC9hcHBsaWNhdGlvbj4uPC9wYXJhPgotCi0g ICAgICAgPHBhcmE+IEl0IG1pZ2h0LCBob3dldmVyLCBiZSBuZWNlc3NhcnkgdG8gbW9kaWZ5 IHRoZSBnbG9iYWwKLSAgICAgICA8Y29tbWFuZD51bGltaXQ8L2NvbW1hbmQ+IGluZm9ybWF0 aW9uIGluCi0gICAgICAgPGZpbGVuYW1lPi9ldGMvc2VjdXJpdHkvbGltaXRzPC9maWxlbmFt ZT4sIGFzIHRoZSBkZWZhdWx0IGhhcmQKLSAgICAgICBsaW1pdHMgZm9yIGZpbGUgc2l6ZXMg KDx2YXJuYW1lPmZzaXplPC92YXJuYW1lPikgYW5kIG51bWJlcnMgb2YKLSAgICAgICBmaWxl cyAoPHZhcm5hbWU+bm9maWxlczwvdmFybmFtZT4pIG1pZ2h0IGJlIHRvbyBsb3cuCi0gICAg ICAgPC9wYXJhPgotICAgICAgPC9saXN0aXRlbT4KLSAgICAgPC92YXJsaXN0ZW50cnk+Ci0K LQogICAgICA8dmFybGlzdGVudHJ5PgogICAgICAgPHRlcm0+PHN5c3RlbWl0ZW0gY2xhc3M9 Im9zbmFtZSI+RnJlZUJTRDwvc3lzdGVtaXRlbT4KICAgICAgIDxpbmRleHRlcm0+PHByaW1h cnk+RnJlZUJTRDwvcHJpbWFyeT48c2Vjb25kYXJ5PklQQyBjb25maWd1cmF0aW9uPC9zZWNv bmRhcnk+PC9pbmRleHRlcm0+CmRpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1 aWxkCmluZGV4IDhlZDUxYjZhYWU4Li5jNjM3YTI2ZTI3NSAxMDA2NDQKLS0tIGEvbWVzb24u YnVpbGQKKysrIGIvbWVzb24uYnVpbGQKQEAgLTE5NiwyNiArMTk2LDcgQEAgZW5kaWYKICMg dGhhdCBwdXJwb3NlLgogcG9ydG5hbWUgPSBob3N0X3N5c3RlbQogCi1pZiBob3N0X3N5c3Rl bSA9PSAnYWl4JwotICBsaWJyYXJ5X3BhdGhfdmFyID0gJ0xJQlBBVEgnCi0KLSAgZXhwb3J0 X2ZpbGVfZm9ybWF0ID0gJ2FpeCcKLSAgZXhwb3J0X2ZtdCA9ICctV2wsLWJFOkAwQCcKLSAg bW9kX2xpbmtfYXJnc19mbXQgPSBbJy1XbCwtYkk6QDBAJ10KLSAgbW9kX2xpbmtfd2l0aF9k aXIgPSAnbGliZGlyJwotICBtb2RfbGlua193aXRoX25hbWUgPSAnQDBALmltcCcKLQotICAj IE06U1JFIHNldHMgYSBmbGFnIGluZGljYXRpbmcgdGhhdCBhbiBvYmplY3QgaXMgYSBzaGFy ZWQgbGlicmFyeS4gU2VlbXMgdG8KLSAgIyB3b3JrIGluIHNvbWUgY2lyY3Vtc3RhbmNlcyB3 aXRob3V0LCBidXQgcmVxdWlyZWQgaW4gb3RoZXJzLgotICBsZGZsYWdzX3NsICs9ICctV2ws LWJNOlNSRScKLSAgbGRmbGFnc19iZSArPSAnLVdsLC1icnRsbGliJwotCi0gICMgTmF0aXZl IG1lbXNldCgpIGlzIGZhc3RlciwgdGVzdGVkIG9uOgotICAjIC0gQUlYIDUuMSBhbmQgNS4y LCBYTEMgNi4wIChJQk0ncyBjYykKLSAgIyAtIEFJWCA1LjMgTUwzLCBnY2MgNC4wLjEKLSAg bWVtc2V0X2xvb3BfbGltaXQgPSAwCi0KLWVsaWYgaG9zdF9zeXN0ZW0gPT0gJ2N5Z3dpbicK K2lmIGhvc3Rfc3lzdGVtID09ICdjeWd3aW4nCiAgIHNlbWFfa2luZCA9ICd1bm5hbWVkX3Bv c2l4JwogICBjcHBmbGFncyArPSAnLURfR05VX1NPVVJDRScKICAgZGxzdWZmaXggPSAnLmRs bCcKQEAgLTE1NzEsNyArMTU1Miw3IEBAIGlmIGNjLmxpbmtzKCcnJwogICBpZiBub3QgbWVz b24uaXNfY3Jvc3NfYnVpbGQoKQogICAgIHIgPSBjYy5ydW4oJycnCiAgICAgLyogVGhpcyBt dXN0IG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGNvZGUgaW4gYy5oOiAqLwotICAgICNpZiBk ZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0MpIHx8IGRlZmluZWQoX19J Qk1DX18pCisgICAgI2lmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19TVU5QUk9f QykKICAgICAjZGVmaW5lIHBnX2F0dHJpYnV0ZV9hbGlnbmVkKGEpIF9fYXR0cmlidXRlX18o KGFsaWduZWQoYSkpKQogICAgICNlbGlmIGRlZmluZWQoX01TQ19WRVIpCiAgICAgI2RlZmlu ZSBwZ19hdHRyaWJ1dGVfYWxpZ25lZChhKSBfX2RlY2xzcGVjKGFsaWduKGEpKQpAQCAtMjM3 MSwxMCArMjM1Miw2IEBAIGVuZGlmCiAjIGNvbmZsaWN0LgogIwogIyBXZSBhc3N1bWUgQzk5 IHN1cHBvcnQsIHNvIHdlIGRvbid0IG5lZWQgdG8gbWFrZSB0aGlzIGNvbmRpdGlvbmFsLgot IwotIyBYWFg6IEhpc3RvcmljYWxseSB3ZSBhbGxvd2VkIHBsYXRmb3JtcyB0byBkaXNhYmxl IHJlc3RyaWN0IGluIHRlbXBsYXRlCi0jIGZpbGVzLCBidXQgdGhhdCB3YXMgb25seSBhZGRl ZCBmb3IgQUlYIHdoZW4gYnVpbGRpbmcgd2l0aCBYTEMsIHdoaWNoIHdlCi0jIGRvbid0IHN1 cHBvcnQgeWV0LgogY2RhdGEuc2V0KCdwZ19yZXN0cmljdCcsICdfX3Jlc3RyaWN0JykKIAog CmRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuc2hsaWIgYi9zcmMvTWFrZWZpbGUuc2hsaWIK aW5kZXggOGNhNTFjYTAzZjcuLjk4NmM3MWI1ZDIwIDEwMDY0NAotLS0gYS9zcmMvTWFrZWZp bGUuc2hsaWIKKysrIGIvc3JjL01ha2VmaWxlLnNobGliCkBAIC0xMDYsMjAgKzEwNiw2IEBA IGlmZGVmIFNPX01BSk9SX1ZFUlNJT04KIG92ZXJyaWRlIENQUEZMQUdTICs9IC1EU09fTUFK T1JfVkVSU0lPTj0kKFNPX01BSk9SX1ZFUlNJT04pCiBlbmRpZgogCi1pZmVxICgkKFBPUlRO QU1FKSwgYWl4KQotICBMSU5LLnNoYXJlZAkJPSAkKENPTVBJTEVSKQotICBpZmRlZiBTT19N QUpPUl9WRVJTSU9OCi0gICAgc2hsaWIJCT0gbGliJChOQU1FKSQoRExTVUZGSVgpLiQoU09f TUFKT1JfVkVSU0lPTikKLSAgZW5kaWYKLSAgaGFzbGliYXJ1bGUgICA9IHllcwotICAjICQo ZXhwb3J0c19maWxlKSBpcyBhbHNvIHVzYWJsZSBhcyBhbiBpbXBvcnQgZmlsZQotICBleHBv cnRzX2ZpbGUJCT0gbGliJChOQU1FKS5leHAKLSAgQlVJTEQuZXhwb3J0cwkJPSAoIGVjaG8g J1wjISAkKHNobGliKSc7ICQoQVdLKSAnL15bXlwjXS8ge3ByaW50ZiAiJXNcbiIsJCQxfScg JDwgKSA+ICRACi0gIGlmbmVxICgsJChTSExJQl9FWFBPUlRTKSkKLSAgICBMSU5LLnNoYXJl ZAkJKz0gLVdsLC1iRTokKGV4cG9ydHNfZmlsZSkKLSAgZW5kaWYKLWVuZGlmCi0KIGlmZXEg KCQoUE9SVE5BTUUpLCBkYXJ3aW4pCiAgIGlmZGVmIHNvbmFtZQogICAgICMgbGlua2FibGUg bGlicmFyeQpAQCAtMjY4LDE0ICsyNTQsNiBAQCAkKHN0bGliKTogJChPQkpTKSB8ICQoU0hM SUJfUFJFUkVRUykKIAl0b3VjaCAkQAogZW5kaWYgI2hhc2xpYmFydWxlCiAKLSMgQUlYIHdy YXBzIHNoYXJlZCBsaWJyYXJpZXMgaW5zaWRlIGEgc3RhdGljIGxpYnJhcnksIGNhbiBiZSB1 c2VkIGJvdGgKLSMgZm9yIHN0YXRpYyBhbmQgc2hhcmVkIGxpbmtpbmcKLWlmZXEgKCQoUE9S VE5BTUUpLCBhaXgpCi0kKHN0bGliKTogJChzaGxpYikKLQlybSAtZiAkKHN0bGliKQotCSQo QVIpICQoQVJPUFQpICQoc3RsaWIpICQoc2hsaWIpCi1lbmRpZiAjIGFpeAotCiBpZmVxICgs JChmaWx0ZXIgY3lnd2luIHdpbjMyLCQoUE9SVE5BTUUpKSkKIAogIyBOb3JtYWwgY2FzZQpA QCAtMjg5LDExICsyNjcsOCBAQCBpZm5lcSAoJChzaGxpYiksICQoc2hsaWJfbWFqb3IpKQog ZW5kaWYKICMgTWFrZSBzdXJlIHdlIGhhdmUgYSBsaW5rIHRvIGEgbmFtZSB3aXRob3V0IGFu eSB2ZXJzaW9uIG51bWJlcnMKIGlmbmVxICgkKHNobGliKSwgJChzaGxpYl9iYXJlKSkKLSMg ZXhjZXB0IG9uIEFJWCwgd2hlcmUgdGhhdCdzIG5vdCBhIHRoaW5nCi1pZm5lcSAoJChQT1JU TkFNRSksIGFpeCkKIAlybSAtZiAkKHNobGliX2JhcmUpCiAJJChMTl9TKSAkKHNobGliKSAk KHNobGliX2JhcmUpCi1lbmRpZiAjIGFpeAogZW5kaWYgIyBzaGxpYl9iYXJlCiBlbmRpZiAj IHNobGliX21ham9yCiAKQEAgLTQwMSwxMCArMzc2LDYgQEAgaW5zdGFsbC1saWItc3RhdGlj OiAkKHN0bGliKSBpbnN0YWxsZGlycy1saWIKIAogaW5zdGFsbC1saWItc2hhcmVkOiAkKHNo bGliKSBpbnN0YWxsZGlycy1saWIKIGlmZGVmIHNvbmFtZQotIyB3ZSBkb24ndCBpbnN0YWxs ICQoc2hsaWIpIG9uIEFJWAotIyAoc2VlIGh0dHA6Ly9hcmNoaXZlcy5wb3N0Z3Jlc3FsLm9y Zy9tZXNzYWdlLWlkLzUyRUYyMEIyRTMyMDk0NDNCQzM3NzM2RDAwQzNDMTM4MEE2RTc5RkVA RVhBRFYxLmhvc3QubWFnd2llbi5ndi5hdCkKLWlmbmVxICgkKFBPUlROQU1FKSwgYWl4KQot CSQoSU5TVEFMTF9TSExJQikgJDwgJyQoREVTVERJUikkKGxpYmRpcikvJChzaGxpYiknCiBp Zm5lcSAoJChQT1JUTkFNRSksIGN5Z3dpbikKIGlmbmVxICgkKFBPUlROQU1FKSwgd2luMzIp CiBpZm5lcSAoJChzaGxpYiksICQoc2hsaWJfbWFqb3IpKQpAQCAtNDE5LDcgKzM5MCw2IEBA IGlmbmVxICgkKHNobGliKSwgJChzaGxpYl9iYXJlKSkKIGVuZGlmCiBlbmRpZiAjIG5vdCB3 aW4zMgogZW5kaWYgIyBub3QgY3lnd2luCi1lbmRpZiAjIG5vdCBhaXgKIGlmbmVxICgsJChm aW5kc3RyaW5nICQoUE9SVE5BTUUpLHdpbjMyIGN5Z3dpbikpCiAJJChJTlNUQUxMX1NITElC KSAkPCAnJChERVNURElSKSQoYmluZGlyKS8kKHNobGliKScKIGVuZGlmCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL01ha2VmaWxlCmluZGV4IDdk MmVhN2Q1NGE2Li5kNjZlMmE0YjlmYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvTWFrZWZp bGUKKysrIGIvc3JjL2JhY2tlbmQvTWFrZWZpbGUKQEAgLTYyLDE0ICs2MiwxMiBAQCBhbGw6 IHN1Ym1ha2UtbGlicGdwb3J0IHN1Ym1ha2UtY2F0YWxvZy1oZWFkZXJzIHN1Ym1ha2UtdXRp bHMtaGVhZGVycyBwb3N0Z3JlcyAkKAogCiBpZm5lcSAoJChQT1JUTkFNRSksIGN5Z3dpbikK IGlmbmVxICgkKFBPUlROQU1FKSwgd2luMzIpCi1pZm5lcSAoJChQT1JUTkFNRSksIGFpeCkK IAogcG9zdGdyZXM6ICQoT0JKUykKIAkkKENDKSAkKENGTEFHUykgJChjYWxsIGV4cGFuZF9z dWJzeXMsJF4pICQoTERGTEFHUykgJChMSUJTKSAtbyAkQAogCiBlbmRpZgogZW5kaWYKLWVu ZGlmCiAKIGlmZXEgKCQoUE9SVE5BTUUpLCBjeWd3aW4pCiAKQEAgLTk2LDI0ICs5NCw2IEBA IGxpYnBvc3RncmVzLmE6IHBvc3RncmVzCiAKIGVuZGlmICMgd2luMzIKIAotaWZlcSAoJChQ T1JUTkFNRSksIGFpeCkKLQotcG9zdGdyZXM6ICQoUE9TVEdSRVNfSU1QKQotCSQoQ0MpICQo Q0ZMQUdTKSAkKGNhbGwgZXhwYW5kX3N1YnN5cywkKE9CSlMpKSAkKExERkxBR1MpIC1XbCwt YkU6JCh0b3BfYnVpbGRkaXIpL3NyYy9iYWNrZW5kLyQoUE9TVEdSRVNfSU1QKSAkKExJQlMp IC1XbCwtYnJ0bGxpYiAtbyAkQAotCi0jIExpbmtpbmcgdG8gYSBzaW5nbGUgLm8gd2l0aCAt ciBpcyBhIGxvdCBmYXN0ZXIgdGhhbiBidWlsZGluZyBhIC5hIG9yIHBhc3NpbmcKLSMgYWxs IG9iamVjdHMgdG8gTUtMREVYUE9SVC4KLSMKLSMgSXQgbG9va3MgYWxsdXJpbmcgdG8gdXNl ICQoQ0MpIC1yIGluc3RlYWQgb2YgbGQgLXIsIGJ1dCB0aGF0IGRvZXNuJ3QKLSMgdHJpdmlh bGx5IHdvcmsgd2l0aCBnY2MsIGR1ZSB0byBnY2Mgc3BlY2lmaWMgc3RhdGljIGxpYnJhcmll cyBsaW5rZWQgaW4gd2l0aAotIyAtci4KLSQoUE9TVEdSRVNfSU1QKTogJChPQkpTKQotCWxk IC1yIC1vIFNVQlNZUy5vICQoY2FsbCBleHBhbmRfc3Vic3lzLCReKQotCSQoTUtMREVYUE9S VCkgU1VCU1lTLm8gLiA+ICRACi0JQHJtIC1mIFNVQlNZUy5vCi0KLWVuZGlmICMgYWl4Ci0K ICQodG9wX2J1aWxkZGlyKS9zcmMvcG9ydC9saWJwZ3BvcnRfc3J2LmE6IHwgc3VibWFrZS1s aWJwZ3BvcnQKIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9tZXNvbi5idWlsZCBiL3Ny Yy9iYWNrZW5kL21lc29uLmJ1aWxkCmluZGV4IDg3NjdhYWJhNjc4Li40MzZjMDRhZjA4MCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQv bWVzb24uYnVpbGQKQEAgLTkxLDIxICs5MSw2IEBAIGlmIGNjLmdldF9pZCgpID09ICdtc3Zj JwogICAjIGJlIHJlc3RyaWN0ZWQgdG8gYl9wY2g9dHJ1ZS4KICAgYmFja2VuZF9saW5rX3dp dGggKz0gcG9zdGdyZXNfbGliCiAKLWVsaWYgaG9zdF9zeXN0ZW0gPT0gJ2FpeCcKLSAgIyBU aGUgJy4nIGFyZ3VtZW50IGxlYWRzIG1rbGRleHBvcnQuc2ggdG8gZW1pdCAiIyEgLiIsIHdo aWNoIHJlZmVycyB0byB0aGUKLSAgIyBtYWluIGV4ZWN1dGFibGUsIGFsbG93aW5nIGV4dGVu c2lvbiBsaWJyYXJpZXMgdG8gcmVzb2x2ZSB0aGVpciB1bmRlZmluZWQKLSAgIyBzeW1ib2xz IHRvIHN5bWJvbHMgaW4gdGhlIHBvc3RncmVzIGJpbmFyeS4KLSAgcG9zdGdyZXNfaW1wID0g Y3VzdG9tX3RhcmdldCgncG9zdGdyZXMuaW1wJywKLSAgICBjb21tYW5kOiBbZmlsZXMoJ3Bv cnQvYWl4L21rbGRleHBvcnQuc2gnKSwgJ0BJTlBVVEAnLCAnLiddLAotICAgIGlucHV0OiBw b3N0Z3Jlc19saWIsCi0gICAgb3V0cHV0OiAncG9zdGdyZXMuaW1wJywKLSAgICBjYXB0dXJl OiB0cnVlLAotICAgIGluc3RhbGw6IHRydWUsCi0gICAgaW5zdGFsbF9kaXI6IGRpcl9saWIs Ci0gICAgYnVpbGRfYnlfZGVmYXVsdDogZmFsc2UsCi0gICkKLSAgYmFja2VuZF9saW5rX2Fy Z3MgKz0gJy1XbCwtYkU6QDBAJy5mb3JtYXQocG9zdGdyZXNfaW1wLmZ1bGxfcGF0aCgpKQot ICBiYWNrZW5kX2xpbmtfZGVwZW5kcyArPSBwb3N0Z3Jlc19pbXAKIGVuZGlmCiAKIGJhY2tl bmRfaW5wdXQgPSBbXQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9haXgvbWtsZGV4 cG9ydC5zaCBiL3NyYy9iYWNrZW5kL3BvcnQvYWl4L21rbGRleHBvcnQuc2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNzU1CmluZGV4IGFkZjM3OTNlODY4Li4wMDAwMDAwMDAwMAotLS0gYS9z cmMvYmFja2VuZC9wb3J0L2FpeC9ta2xkZXhwb3J0LnNoCisrKyAvZGV2L251bGwKQEAgLTEs NjEgKzAsMCBAQAotIyEvYmluL3NoCi0jCi0jIG1rbGRleHBvcnQKLSMJY3JlYXRlIGFuIEFJ WCBleHBvcnRzIGZpbGUgZnJvbSBhbiBvYmplY3QgZmlsZQotIwotIyBzcmMvYmFja2VuZC9w b3J0L2FpeC9ta2xkZXhwb3J0LnNoCi0jCi0jIFVzYWdlOgotIwlta2xkZXhwb3J0IG9iamVj dGZpbGUgW2xvY2F0aW9uXQotIyB3aGVyZQotIwlvYmplY3RmaWxlIGlzIHRoZSBjdXJyZW50 IGxvY2F0aW9uIG9mIHRoZSBvYmplY3QgZmlsZS4KLSMJbG9jYXRpb24gaXMgdGhlIGV2ZW50 dWFsIChpbnN0YWxsZWQpIGxvY2F0aW9uIG9mIHRoZQotIwkJb2JqZWN0IGZpbGUgKGlmIGRp ZmZlcmVudCBmcm9tIHRoZSBjdXJyZW50Ci0jCQl3b3JraW5nIGRpcmVjdG9yeSkuCi0jCi0j IFtUaGlzIGZpbGUgY29tZXMgZnJvbSB0aGUgUG9zdGdyZXMgNC4yIGRpc3RyaWJ1dGlvbi4g LSBheSA3Lzk1XQotIwotIyBIZWFkZXI6IC91c3IvbG9jYWwvZGV2ZWwvcG9zdGdyZXMvc3Jj L3Rvb2xzL21rbGRleHBvcnQvUkNTL21rbGRleHBvcnQuc2gsdiAxLjIgMTk5NC8wMy8xMyAw NDo1OToxMiBhb2tpIEV4cAotIwotCi0jIHNldHRpbmcgdGhpcyB0byBubSAtQiBtaWdodCBi ZSBiZXR0ZXIKLSMgLi4uIGR1ZSB0byBjaGFuZ2VzIGluIEFJWCA0LnggLi4uCi0jIC4uLiBs ZXQgdXMgc2VhcmNoIGluIGRpZmZlcmVudCBkaXJlY3RvcmllcyAtIEdlcmhhcmQgUmVpdGhv ZmVyCi1pZiBbIC14IC91c3IvdWNiL25tIF0KLXRoZW4gTk09L3Vzci91Y2Ivbm0KLWVsaWYg WyAteCAvdXNyL2Jpbi9ubSBdCi10aGVuIE5NPS91c3IvYmluL25tCi1lbGlmIFsgLXggL3Vz ci9jY3MvYmluL25tIF0KLXRoZW4gTk09L3Vzci9jY3MvYmluL25tCi1lbGlmIFsgLXggL3Vz ci91c2cvYmluL25tIF0KLXRoZW4gTk09L3Vzci91c2cvYmluL25tCi1lbHNlIGVjaG8gIkZh dGFsIGVycm9yOiBjYW5ub3QgZmluZCBgbm0nIC4uLiBwbGVhc2UgY2hlY2sgeW91ciBpbnN0 YWxsYXRpb24uIgotICAgICBleGl0IDEKLWZpCi0KLUNNRE5BTUU9YGJhc2VuYW1lICQwYAot aWYgWyAteiAiJDEiIF07IHRoZW4KLQllY2hvICJVc2FnZTogJENNRE5BTUUgb2JqZWN0IFts b2NhdGlvbl0iCi0JZXhpdCAxCi1maQotT0JKTkFNRT1gYmFzZW5hbWUgJDFgCi1pZiBbICJg YmFzZW5hbWUgJE9CSk5BTUVgIiAhPSAiYGJhc2VuYW1lICRPQkpOQU1FIC5vYCIgXTsgdGhl bgotCU9CSk5BTUU9YGJhc2VuYW1lICRPQkpOQU1FIC5vYC5zbwotZmkKLWlmIFsgLXogIiQy IiBdOyB0aGVuCi0JZWNobyAnIyEnCi1lbHNlCi0JaWYgWyAiJDIiID0gIi4iIF07IHRoZW4K LQkJIyBmb3IgdGhlIGJhc2UgZXhlY3V0YWJsZSAoQUlYIDQuMiBhbmQgdXApCi0JCWVjaG8g JyMhIC4nCi0JZWxzZQotCQllY2hvICcjIScgJDIKLQlmaQotZmkKLSROTSAtQkNnICQxIHwg XAotCWVncmVwICcgW1REQl0gJyB8IFwKLQlzZWQgLWUgJ3MvLiogLy8nIHwgXAotCWVncmVw IC12ICdcJCcgfCBcCi0Jc2VkIC1lICdzL15bLl0vLycgfCBcCi0Jc29ydCB8IFwKLQl1bmlx CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMgYi9zcmMvYmFj a2VuZC91dGlscy9lcnJvci9lbG9nLmMKaW5kZXggYmJhMDBhMDA4N2YuLmM5NzE5ZjM1OGI2 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCkBAIC05MTEsOSArOTExLDcgQEAgZXJyY29k ZV9mb3JfZmlsZV9hY2Nlc3Modm9pZCkKIAkJCS8qIFdyb25nIG9iamVjdCB0eXBlIG9yIHN0 YXRlICovCiAJCWNhc2UgRU5PVERJUjoJCQkvKiBOb3QgYSBkaXJlY3RvcnkgKi8KIAkJY2Fz ZSBFSVNESVI6CQkJLyogSXMgYSBkaXJlY3RvcnkgKi8KLSNpZiBkZWZpbmVkKEVOT1RFTVBU WSkgJiYgKEVOT1RFTVBUWSAhPSBFRVhJU1QpIC8qIHNhbWUgY29kZSBvbiBBSVggKi8KIAkJ Y2FzZSBFTk9URU1QVFk6CQkJLyogRGlyZWN0b3J5IG5vdCBlbXB0eSAqLwotI2VuZGlmCiAJ CQllZGF0YS0+c3FsZXJyY29kZSA9IEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEU7CiAJCQli cmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wc19zdGF0dXMu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcHNfc3RhdHVzLmMKaW5kZXggOGY3N2Y0YjU2 M2EuLmRkYjQ1YTZiY2U4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bz X3N0YXR1cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcHNfc3RhdHVzLmMKQEAg LTUyLDcgKzUyLDcgQEAgYm9vbAkJdXBkYXRlX3Byb2Nlc3NfdGl0bGUgPSBERUZBVUxUX1VQ REFURV9QUk9DRVNTX1RJVExFOwogI2RlZmluZSBQU19VU0VfU0VUUFJPQ1RJVExFX0ZBU1QK ICNlbGlmIGRlZmluZWQoSEFWRV9TRVRQUk9DVElUTEUpCiAjZGVmaW5lIFBTX1VTRV9TRVRQ Uk9DVElUTEUKLSNlbGlmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9BSVgpIHx8 IGRlZmluZWQoX19zdW4pIHx8IGRlZmluZWQoX19kYXJ3aW5fXykKKyNlbGlmIGRlZmluZWQo X19saW51eF9fKSB8fCBkZWZpbmVkKF9fc3VuKSB8fCBkZWZpbmVkKF9fZGFyd2luX18pCiAj ZGVmaW5lIFBTX1VTRV9DTE9CQkVSX0FSR1YKICNlbGlmIGRlZmluZWQoV0lOMzIpCiAjZGVm aW5lIFBTX1VTRV9XSU4zMgpAQCAtNjIsNyArNjIsNyBAQCBib29sCQl1cGRhdGVfcHJvY2Vz c190aXRsZSA9IERFRkFVTFRfVVBEQVRFX1BST0NFU1NfVElUTEU7CiAKIAogLyogRGlmZmVy ZW50IHN5c3RlbXMgd2FudCB0aGUgYnVmZmVyIHBhZGRlZCBkaWZmZXJlbnRseSAqLwotI2lm IGRlZmluZWQoX0FJWCkgfHwgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19kYXJ3 aW5fXykKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX2Rhcndpbl9fKQog I2RlZmluZSBQU19QQURESU5HICdcMCcKICNlbHNlCiAjZGVmaW5lIFBTX1BBRERJTkcgJyAn CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wMTBfcGdfYmFzZWJhY2t1 cC5wbCBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzAxMF9wZ19iYXNlYmFja3VwLnBsCmlu ZGV4IDg2Y2MwMWE2NDBiLi5mYzZiMDAyMjRmNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3QvMDEwX3BnX2Jhc2ViYWNrdXAucGwKKysrIGIvc3JjL2Jpbi9wZ19iYXNl YmFja3VwL3QvMDEwX3BnX2Jhc2ViYWNrdXAucGwKQEAgLTQwMCw5ICs0MDAsNiBAQCBpcyhz Y2FsYXIoQHRibHNwY190YXJzKSwgMSwgJ29uZSB0YWJsZXNwYWNlIHRhciB3YXMgY3JlYXRl ZCcpOwogU0tJUDoKIHsKIAlteSAkdGFyID0gJEVOVntUQVJ9OwotCSMgZG9uJ3QgY2hlY2sg Zm9yIGEgd29ya2luZyB0YXIgaGVyZSwgdG8gYWNjb21tb2RhdGUgdmFyaW91cyBvZGQKLQkj IGNhc2VzIHN1Y2ggYXMgQUlYLiBJZiB0YXIgZG9lc24ndCB3b3JrIHRoZSBpbml0X2Zyb21f YmFja3VwIGJlbG93Ci0JIyB3aWxsIGZhaWwuCiAJc2tpcCAibm8gdGFyIHByb2dyYW0gYXZh aWxhYmxlIiwgMQogCSAgaWYgKCFkZWZpbmVkICR0YXIgfHwgJHRhciBlcSAnJyk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDA4X3VudGFyLnBsIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDhfdW50YXIucGwKaW5kZXggMzBkOWYzZjdmMGYu LmI0MjM1NTQxYWIwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAw OF91bnRhci5wbAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwOF91bnRhci5w bApAQCAtMTAzLDkgKzEwMyw2IEBAIGZvciBteSAkdGMgKEB0ZXN0X2NvbmZpZ3VyYXRpb24p CiAJICBTS0lQOgogCQl7CiAJCQlteSAkdGFyID0gJEVOVntUQVJ9OwotCQkJIyBkb24ndCBj aGVjayBmb3IgYSB3b3JraW5nIHRhciBoZXJlLCB0byBhY2NvbW1vZGF0ZSB2YXJpb3VzIG9k ZAotCQkJIyBjYXNlcyBzdWNoIGFzIEFJWC4gSWYgdGFyIGRvZXNuJ3Qgd29yayB0aGUgaW5p dF9mcm9tX2JhY2t1cCBiZWxvdwotCQkJIyB3aWxsIGZhaWwuCiAJCQlza2lwICJubyB0YXIg cHJvZ3JhbSBhdmFpbGFibGUiLCAxCiAJCQkgIGlmICghZGVmaW5lZCAkdGFyIHx8ICR0YXIg ZXEgJycpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9j bGllbnRfdW50YXIucGwgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRf dW50YXIucGwKaW5kZXggNDUwMTBkNzlhYzguLmU5YzJiY2Q3YWFkIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwKKysrIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMTBfY2xpZW50X3VudGFyLnBsCkBAIC0xMzMsOSAr MTMzLDYgQEAgZm9yIG15ICR0YyAoQHRlc3RfY29uZmlndXJhdGlvbikKIAkgIFNLSVA6CiAJ CXsKIAkJCW15ICR0YXIgPSAkRU5We1RBUn07Ci0JCQkjIGRvbid0IGNoZWNrIGZvciBhIHdv cmtpbmcgdGFyIGhlcmUsIHRvIGFjY29tbW9kYXRlIHZhcmlvdXMgb2RkCi0JCQkjIGNhc2Vz IHN1Y2ggYXMgQUlYLiBJZiB0YXIgZG9lc24ndCB3b3JrIHRoZSBpbml0X2Zyb21fYmFja3Vw IGJlbG93Ci0JCQkjIHdpbGwgZmFpbC4KIAkJCXNraXAgIm5vIHRhciBwcm9ncmFtIGF2YWls YWJsZSIsIDEKIAkJCSAgaWYgKCFkZWZpbmVkICR0YXIgfHwgJHRhciBlcSAnJyk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2MuaCBiL3NyYy9pbmNsdWRlL2MuaAppbmRleCAyZTNl YTIwNmUxYy4uY2M1M2YxNTQwNDEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2MuaAorKysg Yi9zcmMvaW5jbHVkZS9jLmgKQEAgLTEwNSw4ICsxMDUsNiBAQAogICogR0NDOiBodHRwczov L2djYy5nbnUub3JnL29ubGluZWRvY3MvZ2NjL1R5cGUtQXR0cmlidXRlcy5odG1sCiAgKiBD bGFuZzogaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy9kb2NzL0F0dHJpYnV0ZVJlZmVyZW5jZS5o dG1sCiAgKiBTdW5wcm86IGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2NkL0UxODY1OV8wMS9o dG1sLzgyMS0xMzg0L2dqemtlLmh0bWwKLSAqIFhMQzogaHR0cHM6Ly93d3cuaWJtLmNvbS9z dXBwb3J0L2tub3dsZWRnZWNlbnRlci9TU0dIMktfMTMuMS4yL2NvbS5pYm0ueGxjMTMxLmFp eC5kb2MvbGFuZ3VhZ2VfcmVmL2Z1bmN0aW9uX2F0dHJpYnV0ZXMuaHRtbAotICogWExDOiBo dHRwczovL3d3dy5pYm0uY29tL3N1cHBvcnQva25vd2xlZGdlY2VudGVyL1NTR0gyS18xMy4x LjIvY29tLmlibS54bGMxMzEuYWl4LmRvYy9sYW5ndWFnZV9yZWYvdHlwZV9hdHRyaWIuaHRt bAogICovCiAKIC8qCkBAIC0xNzEsOCArMTY5LDggQEAKICNkZWZpbmUgUEdfVVNFRF9GT1Jf QVNTRVJUU19PTkxZIHBnX2F0dHJpYnV0ZV91bnVzZWQoKQogI2VuZGlmCiAKLS8qIEdDQyBh bmQgWExDIHN1cHBvcnQgZm9ybWF0IGF0dHJpYnV0ZXMgKi8KLSNpZiBkZWZpbmVkKF9fR05V Q19fKSB8fCBkZWZpbmVkKF9fSUJNQ19fKQorLyogR0NDIHN1cHBvcnQgZm9ybWF0IGF0dHJp YnV0ZXMgKi8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKQogI2RlZmluZSBwZ19hdHRyaWJ1dGVf Zm9ybWF0X2FyZyhhKSBfX2F0dHJpYnV0ZV9fKChmb3JtYXRfYXJnKGEpKSkKICNkZWZpbmUg cGdfYXR0cmlidXRlX3ByaW50ZihmLGEpIF9fYXR0cmlidXRlX18oKGZvcm1hdChQR19QUklO VEZfQVRUUklCVVRFLCBmLCBhKSkpCiAjZWxzZQpAQCAtMTgwLDggKzE3OCw4IEBACiAjZGVm aW5lIHBnX2F0dHJpYnV0ZV9wcmludGYoZixhKQogI2VuZGlmCiAKLS8qIEdDQywgU3VucHJv IGFuZCBYTEMgc3VwcG9ydCBhbGlnbmVkLCBwYWNrZWQgYW5kIG5vcmV0dXJuICovCi0jaWYg ZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChfX1NVTlBST19DKSB8fCBkZWZpbmVkKF9f SUJNQ19fKQorLyogR0NDIGFuZCBTdW5wcm8gc3VwcG9ydCBhbGlnbmVkLCBwYWNrZWQgYW5k IG5vcmV0dXJuICovCisjaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChfX1NVTlBS T19DKQogI2RlZmluZSBwZ19hdHRyaWJ1dGVfYWxpZ25lZChhKSBfX2F0dHJpYnV0ZV9fKChh bGlnbmVkKGEpKSkKICNkZWZpbmUgcGdfYXR0cmlidXRlX25vcmV0dXJuKCkgX19hdHRyaWJ1 dGVfXygobm9yZXR1cm4pKQogI2RlZmluZSBwZ19hdHRyaWJ1dGVfcGFja2VkKCkgX19hdHRy aWJ1dGVfXygocGFja2VkKSkKQEAgLTIxMiw4ICsyMTAsOCBAQAogICogY2hvb3NlIG5vdCB0 by4gIEJ1dCwgaWYgcG9zc2libGUsIGRvbid0IGZvcmNlIGlubGluaW5nIGluIHVub3B0aW1p emVkCiAgKiBkZWJ1ZyBidWlsZHMuCiAgKi8KLSNpZiAoZGVmaW5lZChfX0dOVUNfXykgJiYg X19HTlVDX18gPiAzICYmIGRlZmluZWQoX19PUFRJTUlaRV9fKSkgfHwgZGVmaW5lZChfX1NV TlBST19DKSB8fCBkZWZpbmVkKF9fSUJNQ19fKQotLyogR0NDID4gMywgU3VucHJvIGFuZCBY TEMgc3VwcG9ydCBhbHdheXNfaW5saW5lIHZpYSBfX2F0dHJpYnV0ZV9fICovCisjaWYgKGRl ZmluZWQoX19HTlVDX18pICYmIF9fR05VQ19fID4gMyAmJiBkZWZpbmVkKF9fT1BUSU1JWkVf XykpIHx8IGRlZmluZWQoX19TVU5QUk9fQykKKy8qIEdDQyA+IDMgYW5kIFN1bnBybyBzdXBw b3J0IGFsd2F5c19pbmxpbmUgdmlhIF9fYXR0cmlidXRlX18gKi8KICNkZWZpbmUgcGdfYXR0 cmlidXRlX2Fsd2F5c19pbmxpbmUgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpIGlu bGluZQogI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKIC8qIE1TVkMgaGFzIGEgc3BlY2lhbCBr ZXl3b3JkIGZvciB0aGlzICovCkBAIC0yMjksOCArMjI3LDggQEAKICAqIGZvciBwcm9wZXIg Y29zdCBhdHRyaWJ1dGlvbi4gIE5vdGUgdGhhdCB1bmxpa2UgdGhlIHBnX2F0dHJpYnV0ZV9Y WFggbWFjcm9zCiAgKiBhYm92ZSwgdGhpcyBzaG91bGQgYmUgcGxhY2VkIGJlZm9yZSB0aGUg ZnVuY3Rpb24ncyByZXR1cm4gdHlwZSBhbmQgbmFtZS4KICAqLwotLyogR0NDLCBTdW5wcm8g YW5kIFhMQyBzdXBwb3J0IG5vaW5saW5lIHZpYSBfX2F0dHJpYnV0ZV9fICovCi0jaWYgKGRl ZmluZWQoX19HTlVDX18pICYmIF9fR05VQ19fID4gMikgfHwgZGVmaW5lZChfX1NVTlBST19D KSB8fCBkZWZpbmVkKF9fSUJNQ19fKQorLyogR0NDIGFuZCBTdW5wcm8gc3VwcG9ydCBub2lu bGluZSB2aWEgX19hdHRyaWJ1dGVfXyAqLworI2lmIChkZWZpbmVkKF9fR05VQ19fKSAmJiBf X0dOVUNfXyA+IDIpIHx8IGRlZmluZWQoX19TVU5QUk9fQykKICNkZWZpbmUgcGdfbm9pbmxp bmUgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQogLyogbXN2YyB2aWEgZGVjbHNwZWMgKi8K ICNlbGlmIGRlZmluZWQoX01TQ19WRVIpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0 L2FpeC5oIGIvc3JjL2luY2x1ZGUvcG9ydC9haXguaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggNWIxMTU5YzU3ODUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyYy9pbmNsdWRlL3Bv cnQvYWl4LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0vKgotICogc3JjL2lu Y2x1ZGUvcG9ydC9haXguaAotICovCi0jZGVmaW5lIENMQVNTX0NPTkZMSUNUCi0jZGVmaW5l IERJU0FCTEVfWE9QRU5fTkxTCi0KLS8qCi0gKiAiSUJNIFhMIEMvQysrIGZvciBBSVgsIFYx Mi4xIiBtaXNjb21waWxlcywgZm9yIDMyLWJpdCwgc29tZSBpbmxpbmUKLSAqIGV4cGFuc2lv bnMgb2YgZ2luQ29tcGFyZUl0ZW1Qb2ludGVycygpICJsb25nIGxvbmciIGFyaXRobWV0aWMu ICBUbyB0YWtlCi0gKiBhZHZhbnRhZ2Ugb2YgaW5saW5pbmcsIGJ1aWxkIGEgNjQtYml0IFBv c3RncmVTUUwuCi0gKi8KLSNpZiBkZWZpbmVkKF9fSUxQMzJfXykgJiYgZGVmaW5lZChfX0lC TUNfXykKLSNkZWZpbmUgUEdfRk9SQ0VfRElTQUJMRV9JTkxJTkUKLSNlbmRpZgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcG9ydC9hdG9taWNzLmggYi9zcmMvaW5jbHVkZS9wb3J0L2F0 b21pY3MuaAppbmRleCBiZjE1MTAzN2Y3Mi4uNTA0MzQ5MDgwZDQgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3BvcnQvYXRvbWljcy5oCisrKyBiL3NyYy9pbmNsdWRlL3BvcnQvYXRvbWlj cy5oCkBAIC04NCwxMSArODQsOSBAQAogICogdXNpbmcgY29tcGlsZXIgaW50cmluc2ljcyBh cmUgYSBnb29kIGlkZWEuCiAgKi8KIC8qCi0gKiBnY2Mgb3IgY29tcGF0aWJsZSwgaW5jbHVk aW5nIGNsYW5nIGFuZCBpY2MuICBFeGNsdWRlIHhsYy4gIFRoZSBwcGM2NGxlICJJQk0KLSAq IFhMIEMvQysrIGZvciBMaW51eCwgVjEzLjEuMiIgZW11bGF0ZXMgZ2NjLCBidXQgX19zeW5j X2xvY2tfdGVzdF9hbmRfc2V0KCkKLSAqIG9mIG9uZS1ieXRlIHR5cGVzIGVsaWNpdHMgU0lH U0VHVi4gIFRoYXQgYnVnIHdhcyBnb25lIGJ5IFYxMy4xLjUgKDIwMTYtMTIpLgorICogZ2Nj IG9yIGNvbXBhdGlibGUsIGluY2x1ZGluZyBjbGFuZyBhbmQgaWNjLgogICovCi0jaWYgKGRl ZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikpICYmICEoZGVm aW5lZChfX0lCTUNfXykgfHwgZGVmaW5lZChfX0lCTUNQUF9fKSkKKyNpZiBkZWZpbmVkKF9f R05VQ19fKSB8fCBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpCiAjaW5jbHVkZSAicG9ydC9h dG9taWNzL2dlbmVyaWMtZ2NjLmgiCiAjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQogI2luY2x1 ZGUgInBvcnQvYXRvbWljcy9nZW5lcmljLW1zdmMuaCIKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3N0b3JhZ2Uvc19sb2NrLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oCmlu ZGV4IDY5NTgyZjRhZTcxLi4yOWFjNmNkY2Q5MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv c3RvcmFnZS9zX2xvY2suaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oCkBA IC00MTQsMTIgKzQxNCw2IEBAIHR5cGVkZWYgdW5zaWduZWQgaW50IHNsb2NrX3Q7CiAgKiBh biBpc3luYyBpcyBhIHN1ZmZpY2llbnQgc3luY2hyb25pemF0aW9uIGJhcnJpZXIgYWZ0ZXIg YSBsd2FyeC9zdHdjeCBsb29wLgogICogQnV0IGlmIHRoZSBzcGlubG9jayBpcyBpbiBvcmRp bmFyeSBtZW1vcnksIHdlIGNhbiB1c2UgbHdzeW5jIGluc3RlYWQgZm9yCiAgKiBiZXR0ZXIg cGVyZm9ybWFuY2UuCi0gKgotICogT3JkaW5hcmlseSwgd2UnZCBjb2RlIHRoZSBicmFuY2hl cyBoZXJlIHVzaW5nIEdOVS1zdHlsZSBsb2NhbCBzeW1ib2xzLCB0aGF0Ci0gKiBpcyAiMWYi IHJlZmVyZW5jaW5nICIxOiIgYW5kIHNvIG9uLiAgQnV0IHNvbWUgcGVvcGxlIHJ1biBnY2Mg b24gQUlYIHdpdGgKLSAqIElCTSdzIGFzc2VtYmxlciBhcyBiYWNrZW5kLCBhbmQgSUJNJ3Mg YXNzZW1ibGVyIGRvZXNuJ3QgZG8gbG9jYWwgc3ltYm9scy4KLSAqIFNvIGhhbmQtY29kZSB0 aGUgYnJhbmNoIG9mZnNldHM7IGZvcnR1bmF0ZWx5LCBhbGwgUFBDIGluc3RydWN0aW9ucyBh cmUKLSAqIGV4YWN0bHkgNCBieXRlcyBlYWNoLCBzbyBpdCdzIG5vdCB0b28gaGFyZCB0byBj b3VudC4KICAqLwogc3RhdGljIF9faW5saW5lX18gaW50CiB0YXModm9sYXRpbGUgc2xvY2tf dCAqbG9jaykKQEAgLTQzMCwxNSArNDI0LDE3IEBAIHRhcyh2b2xhdGlsZSBzbG9ja190ICps b2NrKQogCV9fYXNtX18gX192b2xhdGlsZV9fKAogIglsd2FyeCAgICUwLDAsJTMsMQlcbiIK ICIJY21wd2kgICAlMCwwCQlcbiIKLSIJYm5lICAgICAkKzE2CQlcbiIJCS8qIGJyYW5jaCB0 byBsaSAlMSwxICovCisiCWJuZSAgICAgMWYJCQlcbiIKICIJYWRkaSAgICAlMCwlMCwxCQlc biIKICIJc3R3Y3guICAlMCwwLCUzCQlcbiIKLSIJYmVxICAgICAkKzEyCQlcbiIJCS8qIGJy YW5jaCB0byBsd3N5bmMgKi8KKyIJYmVxICAgICAyZgkJCVxuIgorIjE6IFxuIgogIglsaSAg ICAgICUxLDEJCVxuIgotIgliICAgICAgICQrMTIJCVxuIgkJLyogYnJhbmNoIHRvIGVuZCBv ZiBhc20gc2VxdWVuY2UgKi8KKyIJYiAgICAgICAzZgkJCVxuIgorIjI6IFxuIgogIglsd3N5 bmMJCQkJXG4iCiAiCWxpICAgICAgJTEsMAkJXG4iCi0KKyIzOiBcbiIKIDoJIj0mYiIoX3Qp LCAiPXIiKF9yZXMpLCAiK20iKCpsb2NrKQogOgkiciIobG9jaykKIDoJIm1lbW9yeSIsICJj YyIpOwpAQCAtNjY2LDIxICs2NjIsNiBAQCB0YXModm9sYXRpbGUgc2xvY2tfdCAqbG9jaykK IAogI2lmICFkZWZpbmVkKEhBU19URVNUX0FORF9TRVQpCS8qIFdlIGRpZG4ndCB0cmlnZ2Vy IGFib3ZlLCBsZXQncyB0cnkgaGVyZSAqLwogCi0jaWYgZGVmaW5lZChfQUlYKQkvKiBBSVgg Ki8KLS8qCi0gKiBBSVggKFBPV0VSKQotICovCi0jZGVmaW5lIEhBU19URVNUX0FORF9TRVQK LQotI2luY2x1ZGUgPHN5cy9hdG9taWNfb3AuaD4KLQotdHlwZWRlZiBpbnQgc2xvY2tfdDsK LQotI2RlZmluZSBUQVMobG9jaykJCQlfY2hlY2tfbG9jaygoc2xvY2tfdCAqKSAobG9jayks IDAsIDEpCi0jZGVmaW5lIFNfVU5MT0NLKGxvY2spCQlfY2xlYXJfbG9jaygoc2xvY2tfdCAq KSAobG9jayksIDApCi0jZW5kaWYJIC8qIF9BSVggKi8KLQotCiAvKiBUaGVzZSBhcmUgaW4g c3Vuc3R1ZGlvXyhzcGFyY3x4ODYpLnMgKi8KIAogI2lmIGRlZmluZWQoX19TVU5QUk9fQykg JiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19zcGFyY19fKSB8fCBkZWZpbmVkKF9fc3BhcmMpKQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvbGlicHEvTWFrZWZpbGUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQpp bmRleCAwODNjYTZmNGNjZS4uZmUyYWY1NzVjNWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL01ha2VmaWxlCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxl CkBAIC0xMTQsNyArMTE0LDcgQEAgYmFja2VuZF9zcmMgPSAkKHRvcF9zcmNkaXIpL3NyYy9i YWNrZW5kCiAjIGNvZGluZyBydWxlLgogbGlicHEtcmVmcy1zdGFtcDogJChzaGxpYikKIGlm bmVxICgkKGVuYWJsZV9jb3ZlcmFnZSksIHllcykKLWlmZXEgKCwkKGZpbHRlciBhaXggc29s YXJpcywkKFBPUlROQU1FKSkpCitpZmVxICgsJChmaWx0ZXIgc29sYXJpcywkKFBPUlROQU1F KSkpCiAJQGlmIG5tIC1BIC11ICQ8IDI+L2Rldi9udWxsIHwgZ3JlcCAtdiAtZSBfX2N4YV9h dGV4aXQgLWUgX190c2FuX2Z1bmNfZXhpdCB8IGdyZXAgZXhpdDsgdGhlbiBcCiAJCWVjaG8g J2xpYnBxIG11c3Qgbm90IGJlIGNhbGxpbmcgYW55IGZ1bmN0aW9uIHdoaWNoIGludm9rZXMg ZXhpdCc7IGV4aXQgMTsgXAogCWZpCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9tZXNvbi5idWlsZCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkCmluZGV4 IGE0N2I2ZjQyNWRkLi5iZTZmYWRhZWEyMyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv bGlicHEvbWVzb24uYnVpbGQKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVp bGQKQEAgLTU0LDkgKzU0LDggQEAgbGlicHFfY19hcmdzID0gWyctRFNPX01BSk9SX1ZFUlNJ T049NSddCiAjICAgIGxpYnBxX3N0LCBhbmQge3BncG9ydCxjb21tb259X3NobGliIGZvciBs aWJwcV9zaAogIwogIyBXZSBjb3VsZCB0cnkgdG8gYXZvaWQgYnVpbGRpbmcgdGhlIHNvdXJj ZSBmaWxlcyB0d2ljZSwgYnV0IGl0IHByb2JhYmx5IGFkZHMKLSMgbW9yZSBjb21wbGV4aXR5 IHRoYW4gaXRzIHdvcnRoIChBSVggZG9lc24ndCBzdXBwb3J0IGxpbmtfd2hvbGUgeWV0LCBy ZXVzaW5nCi0jIG9iamVjdCBmaWxlcyByZXF1aXJlcyBhbHNvIGxpbmtpbmcgdG8gdGhlIGxp YnJhcnkgb24gd2luZG93cyBvciBicmVha3MKLSMgcHJlY29tcGlsZWQgaGVhZGVycykuCisj IG1vcmUgY29tcGxleGl0eSB0aGFuIGl0cyB3b3J0aCAocmV1c2luZyBvYmplY3QgZmlsZXMg cmVxdWlyZXMgYWxzbyBsaW5raW5nCisjIHRvIHRoZSBsaWJyYXJ5IG9uIHdpbmRvd3Mgb3Ig YnJlYWtzIHByZWNvbXBpbGVkIGhlYWRlcnMpLgogbGlicHFfc3QgPSBzdGF0aWNfbGlicmFy eSgnbGlicHEnLAogICBsaWJwcV9zb3VyY2VzLAogICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBb bGlicHFfaW5jXSwKZGlmZiAtLWdpdCBhL3NyYy9tYWtlZmlsZXMvTWFrZWZpbGUuYWl4IGIv c3JjL21ha2VmaWxlcy9NYWtlZmlsZS5haXgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGRkMTZhN2EwMzc4Li4wMDAwMDAwMDAwMAotLS0gYS9zcmMvbWFrZWZpbGVzL01ha2Vm aWxlLmFpeAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLSMgTUFLRV9FWFBPUlRT IGlzIHJlcXVpcmVkIGZvciBzdnI0IGxvYWRlcnMgdGhhdCB3YW50IGEgZmlsZSBvZgotIyBz eW1ib2wgbmFtZXMgdG8gdGVsbCB0aGVtIHdoYXQgdG8gZXhwb3J0L2ltcG9ydC4KLU1BS0Vf RVhQT1JUUz0gdHJ1ZQotCi0jIC1ibGlicGF0aCBtdXN0IGNvbnRhaW4gQUxMIGRpcmVjdG9y aWVzIHdoZXJlIHdlIHNob3VsZCBsb29rIGZvciBsaWJyYXJpZXMKLWxpYnBhdGggOj0gJChz aGVsbCBlY2hvICQoc3Vic3QgLUwsOiwkKGZpbHRlciAtTC8lLCQoTERGTEFHUykpKSB8IHNl ZCAtZSdzLyAvL2cnKTovdXNyL2xpYjovbGliCi0KLSMgd2hlbiBidWlsZGluZyB3aXRoIGdj YywgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBsaWJnY2MgY2FuIGJlIGZvdW5kCi1pZmVxICgk KEdDQyksIHllcykKLWxpYnBhdGggOj0gJChsaWJwYXRoKTokKGRpciAkKHNoZWxsIGdjYyAt cHJpbnQtbGliZ2NjLWZpbGUtbmFtZSkpCi1lbmRpZgotCi1ycGF0aCA9IC1XbCwtYmxpYnBh dGg6JyQocnBhdGhkaXIpJChsaWJwYXRoKScKLQotTERGTEFHU19TTCArPSAtV2wsLWJub2Vu dHJ5IC1XbCwtSDUxMiAtV2wsLWJNOlNSRQotCi0jIGdjYyBuZWVkcyB0byBrbm93IGl0J3Mg YnVpbGRpbmcgYSBzaGFyZWQgbGliLCBvdGhlcndpc2UgaXQnbGwgbm90IGVtaXQKLSMgY29y cmVjdCBjb2RlIC8gbGluayB0byB0aGUgcmlnaHQgc3VwcG9ydCBsaWJyYXJpZXMKLWlmZXEg KCQoR0NDKSwgeWVzKQotTERGTEFHU19TTCArPSAtc2hhcmVkCi1lbmRpZgotCi0jIGVudiB2 YXIgbmFtZSB0byB1c2UgaW4gcGxhY2Ugb2YgTERfTElCUkFSWV9QQVRICi1sZF9saWJyYXJ5 X3BhdGhfdmFyID0gTElCUEFUSAotCi0KLVBPU1RHUkVTX0lNUD0gcG9zdGdyZXMuaW1wCi0K LWlmZGVmIFBHWFMKLUJFX0RMTExJQlM9IC1XbCwtYkk6JChwa2dsaWJkaXIpLyQoUE9TVEdS RVNfSU1QKQotZWxzZQotQkVfRExMTElCUz0gLVdsLC1iSTokKHRvcF9idWlsZGRpcikvc3Jj L2JhY2tlbmQvJChQT1NUR1JFU19JTVApCi1lbmRpZgotCi1NS0xERVhQT1JUX0RJUj1zcmMv YmFja2VuZC9wb3J0L2FpeAotTUtMREVYUE9SVD0kKHRvcF9zcmNkaXIpLyQoTUtMREVYUE9S VF9ESVIpL21rbGRleHBvcnQuc2gKLQotJSQoRExTVUZGSVgpOiAlLm8KLQkkKENDKSAkKENG TEFHUykgJCoubyAkKExERkxBR1MpICQoTERGTEFHU19TTCkgLW8gJEAgJChCRV9ETExMSUJT KQpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvUkVBRE1FIGIvc3JjL3BvcnQvUkVBRE1FCmluZGV4 IDk3ZjE4YTYyMzM4Li5lZDVjNTRhNzJmYSAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvUkVBRE1F CisrKyBiL3NyYy9wb3J0L1JFQURNRQpAQCAtMjgsNSArMjgsNSBAQCBhcHBsaWNhdGlvbnMu CiBmcm9tIGxpYnBncG9ydCBhcmUgbGlua2VkIGZpcnN0LiAgVGhpcyBhdm9pZHMgaGF2aW5n IGFwcGxpY2F0aW9ucwogZGVwZW5kZW50IG9uIHN5bWJvbHMgdGhhdCBhcmUgX3VzZWRfIGJ5 IGxpYnBxLCBidXQgbm90IGludGVuZGVkIHRvIGJlCiBleHBvcnRlZCBieSBsaWJwcS4gIGxp YnBxJ3MgbGlicGdwb3J0IHVzYWdlIGNoYW5nZXMgb3ZlciB0aW1lLCBzbyBzdWNoIGEKLWRl cGVuZGVuY3kgaXMgYSBwcm9ibGVtLiAgV2luZG93cywgTGludXgsIEFJWCwgYW5kIG1hY09T IHVzZSBhbiBleHBvcnQKK2RlcGVuZGVuY3kgaXMgYSBwcm9ibGVtLiAgV2luZG93cywgTGlu dXgsIGFuZCBtYWNPUyB1c2UgYW4gZXhwb3J0CiBsaXN0IHRvIGNvbnRyb2wgdGhlIHN5bWJv bHMgZXhwb3J0ZWQgYnkgbGlicHEuCmRpZmYgLS1naXQgYS9zcmMvcG9ydC9zdHJlcnJvci5j IGIvc3JjL3BvcnQvc3RyZXJyb3IuYwppbmRleCAxMDcwYTQ5ODAyZS4uNDkxOGJhODIxYzEg MTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L3N0cmVycm9yLmMKKysrIGIvc3JjL3BvcnQvc3RyZXJy b3IuYwpAQCAtMjE0LDEwICsyMTQsOCBAQCBnZXRfZXJybm9fc3ltYm9sKGludCBlcnJudW0p CiAJCQlyZXR1cm4gIkVOT1RDT05OIjsKIAkJY2FzZSBFTk9URElSOgogCQkJcmV0dXJuICJF Tk9URElSIjsKLSNpZiBkZWZpbmVkKEVOT1RFTVBUWSkgJiYgKEVOT1RFTVBUWSAhPSBFRVhJ U1QpIC8qIHNhbWUgY29kZSBvbiBBSVggKi8KIAkJY2FzZSBFTk9URU1QVFk6CiAJCQlyZXR1 cm4gIkVOT1RFTVBUWSI7Ci0jZW5kaWYKIAkJY2FzZSBFTk9UU09DSzoKIAkJCXJldHVybiAi RU5PVFNPQ0siOwogI2lmZGVmIEVOT1RTVVAKZGlmZiAtLWdpdCBhL3NyYy90ZW1wbGF0ZS9h aXggYi9zcmMvdGVtcGxhdGUvYWl4CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0 N2ZhODk5MGE3Yy4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjL3RlbXBsYXRlL2FpeAorKysgL2Rl di9udWxsCkBAIC0xLDI1ICswLDAgQEAKLSMgc3JjL3RlbXBsYXRlL2FpeAotCi0jIFNldCBk ZWZhdWx0IG9wdGlvbnMgaWYgdXNpbmcgeGxjLiAgVGhpcyBmb3JtZXJseSBpbmNsdWRlZCAt cXNyY21zZywgYnV0IHRoYXQKLSMgb3B0aW9uIGVsaWNpdHMgaW50ZXJuYWwgY29tcGlsZXIg ZXJyb3JzIGZyb20geGxjIHYxNi4xLjAuICBOb3RlOiBjb25maWd1cmUKLSMgd2lsbCBhZGQg LXFub2Fuc2lhbGlhcyBpZiB0aGUgY29tcGlsZXIgYWNjZXB0cyBpdCwgZXZlbiBpZiB1c2Vy IHNwZWNpZmllcyBhCi0jIG5vbi1kZWZhdWx0IENGTEFHUyBzZXR0aW5nLgotaWYgdGVzdCAi JEdDQyIgIT0geWVzIDsgdGhlbgotICBjYXNlICRob3N0X29zIGluCi0gICAgKikKLSAgICAg IENGTEFHUz0iLU8yIC1xbWF4bWVtPTE2Mzg0IgotICAgICAgOzsKLSAgZXNhYwotCi0gICMg RHVlIHRvIGEgY29tcGlsZXIgYnVnLCBzZWUgMjAxNzEwMTMwMjM1MzYuR0E0OTIxNDZAcmZk LmxlYWRib2F0LmNvbSBmb3IgZGV0YWlscywKLSAgIyBmb3JjZSByZXN0cmljdCBub3QgdG8g YmUgdXNlZCB3aGVuIGNvbXBpbGluZyB3aXRoIHhsYy4KLSAgRk9SQ0VfRElTQUJMRV9SRVNU UklDVD15ZXMKLWZpCi0KLSMgRXh0cmEgQ0ZMQUdTIGZvciBjb2RlIHRoYXQgd2lsbCBnbyBp bnRvIGEgc2hhcmVkIGxpYnJhcnkKLUNGTEFHU19TTD0iIgotCi0jIE5hdGl2ZSBtZW1zZXQo KSBpcyBmYXN0ZXIsIHRlc3RlZCBvbjoKLSMgCUFJWCA1LjEgYW5kIDUuMiwgWExDIDYuMCAo SUJNJ3MgY2MpCi0jIAlBSVggNS4zIE1MMywgZ2NjIDQuMC4xCi1NRU1TRVRfTE9PUF9MSU1J VD0wCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL01ha2VmaWxlIGIvc3JjL3Rlc3Qv cmVncmVzcy9NYWtlZmlsZQppbmRleCA3YzY2NWZmODkyZC4uNjQwOWE0ODVlODQgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvTWFrZWZpbGUKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9NYWtlZmlsZQpAQCAtNywxMSArNyw2IEBACiAjIEdOVSBtYWtlIHVzZXMgYSBtYWtlIGZp bGUgbmFtZWQgIkdOVW1ha2VmaWxlIiBpbiBwcmVmZXJlbmNlIHRvICJNYWtlZmlsZSIKICMg aWYgaXQgZXhpc3RzLiAgUG9zdGdyZXMgaXMgc2hpcHBlZCB3aXRoIGEgIkdOVW1ha2VmaWxl Ii4KIAotCi0jIEFJWCBtYWtlIGRlZmF1bHRzIHRvIGJ1aWxkaW5nICpldmVyeSogdGFyZ2V0 IG9mIHRoZSBmaXJzdCBydWxlLiAgU3RhcnQgd2l0aAotIyBhIHNpbmdsZS10YXJnZXQsIGVt cHR5IHJ1bGUgdG8gbWFrZSB0aGUgb3RoZXIgdGFyZ2V0cyBub24tZGVmYXVsdC4KLWFsbDoK LQogYWxsIGluc3RhbGwgY2xlYW4gY2hlY2sgaW5zdGFsbGNoZWNrOgogCUBlY2hvICJZb3Ug bXVzdCB1c2UgR05VIG1ha2UgdG8gdXNlIFBvc3RncmVzLiAgSXQgbWF5IGJlIGluc3RhbGxl ZCIKIAlAZWNobyAib24geW91ciBzeXN0ZW0gd2l0aCB0aGUgbmFtZSAnZ21ha2UnLiIKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2FuaXR5X2NoZWNrLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2FuaXR5X2NoZWNrLm91dAppbmRleCBjNWM2 NzViNzUwOC4uODI5NzJiNzBlNmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2FuaXR5X2NoZWNrLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nhbml0eV9jaGVjay5vdXQKQEAgLTI2LDEyICsyNiwxNSBAQCBTRUxFQ1QgcmVsbmFtZSwg cmVsa2luZAogKDAgcm93cykKIAogLS0KLS0tIFdoZW4gQUxJR05PRl9ET1VCTEU9PTQgKGUu Zy4gQUlYKSwgdGhlIEMgQUJJIG1heSBpbXBvc2UgOC1ieXRlIGFsaWdubWVudCBvbgorLS0g V2hlbiBNQVhJTVVNX0FMSUdOT0Y9PTggYnV0IEFMSUdOT0ZfRE9VQkxFPT00LCB0aGUgQyBB QkkgbWF5IGltcG9zZSA4LWJ5dGUgYWxpZ25tZW50CiAtLSBzb21lIG9mIHRoZSBDIHR5cGVz IHRoYXQgY29ycmVzcG9uZCB0byBUWVBBTElHTl9ET1VCTEUgU1FMIHR5cGVzLiAgVG8gZW5z dXJlCiAtLSBjYXRhbG9nIEMgc3RydWN0IGxheW91dCBtYXRjaGVzIGNhdGFsb2cgdHVwbGUg bGF5b3V0LCBhcnJhbmdlIGZvciB0aGUgdHVwbGUKIC0tIG9mZnNldCBvZiBlYWNoIGZpeGVk LXdpZHRoLCBhdHRhbGlnbj0nZCcgY2F0YWxvZyBjb2x1bW4gdG8gYmUgZGl2aXNpYmxlIGJ5 IDgKIC0tIHVuY29uZGl0aW9uYWxseS4gIEtlZXAgc3VjaCBjb2x1bW5zIGJlZm9yZSB0aGUg Zmlyc3QgTmFtZURhdGEgY29sdW1uIG9mIHRoZQogLS0gY2F0YWxvZywgc2luY2UgcGFja2Fn ZXJzIGNhbiBvdmVycmlkZSBOQU1FREFUQUxFTiB0byBhbiBvZGQgbnVtYmVyLgorLS0gKFhY WDogSSdtIG5vdCBzdXJlIGlmIGFueSBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtcyBoYXZl IE1BWElNVU1fQUxJR05PRj09OCBhbmQKKy0tIEFMSUdOT0ZfRE9VQkxFPT00LiAgUGVyaGFw cyB3ZSBzaG91bGQganVzdCByZXF1aXJlIHRoYXQKKy0tIEFMSUdOT0ZfRE9VQkxFPT1NQVhJ TVVNX0FMSUdOT0YpCiAtLQogV0lUSCBjaGVja19jb2x1bW5zIEFTICgKICBTRUxFQ1QgcmVs bmFtZSwgYXR0bmFtZSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nhbml0 eV9jaGVjay5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zYW5pdHlfY2hlY2suc3FsCmlu ZGV4IDdmMzM4ZDE5MWM2Li4yZTlkNWViZWYzZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2FuaXR5X2NoZWNrLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z YW5pdHlfY2hlY2suc3FsCkBAIC0yMSwxMiArMjEsMTUgQEAgU0VMRUNUIHJlbG5hbWUsIHJl bGtpbmQKICAgICAgICBBTkQgcmVsZmlsZW5vZGUgPD4gMDsKIAogLS0KLS0tIFdoZW4gQUxJ R05PRl9ET1VCTEU9PTQgKGUuZy4gQUlYKSwgdGhlIEMgQUJJIG1heSBpbXBvc2UgOC1ieXRl IGFsaWdubWVudCBvbgorLS0gV2hlbiBNQVhJTVVNX0FMSUdOT0Y9PTggYnV0IEFMSUdOT0Zf RE9VQkxFPT00LCB0aGUgQyBBQkkgbWF5IGltcG9zZSA4LWJ5dGUgYWxpZ25tZW50CiAtLSBz b21lIG9mIHRoZSBDIHR5cGVzIHRoYXQgY29ycmVzcG9uZCB0byBUWVBBTElHTl9ET1VCTEUg U1FMIHR5cGVzLiAgVG8gZW5zdXJlCiAtLSBjYXRhbG9nIEMgc3RydWN0IGxheW91dCBtYXRj aGVzIGNhdGFsb2cgdHVwbGUgbGF5b3V0LCBhcnJhbmdlIGZvciB0aGUgdHVwbGUKIC0tIG9m ZnNldCBvZiBlYWNoIGZpeGVkLXdpZHRoLCBhdHRhbGlnbj0nZCcgY2F0YWxvZyBjb2x1bW4g dG8gYmUgZGl2aXNpYmxlIGJ5IDgKIC0tIHVuY29uZGl0aW9uYWxseS4gIEtlZXAgc3VjaCBj b2x1bW5zIGJlZm9yZSB0aGUgZmlyc3QgTmFtZURhdGEgY29sdW1uIG9mIHRoZQogLS0gY2F0 YWxvZywgc2luY2UgcGFja2FnZXJzIGNhbiBvdmVycmlkZSBOQU1FREFUQUxFTiB0byBhbiBv ZGQgbnVtYmVyLgorLS0gKFhYWDogSSdtIG5vdCBzdXJlIGlmIGFueSBvZiB0aGUgc3VwcG9y dGVkIHBsYXRmb3JtcyBoYXZlIE1BWElNVU1fQUxJR05PRj09OCBhbmQKKy0tIEFMSUdOT0Zf RE9VQkxFPT00LiAgUGVyaGFwcyB3ZSBzaG91bGQganVzdCByZXF1aXJlIHRoYXQKKy0tIEFM SUdOT0ZfRE9VQkxFPT1NQVhJTVVNX0FMSUdOT0YpCiAtLQogV0lUSCBjaGVja19jb2x1bW5z IEFTICgKICBTRUxFQ1QgcmVsbmFtZSwgYXR0bmFtZSwKZGlmZiAtLWdpdCBhL3NyYy90b29s cy9nZW5fZXhwb3J0LnBsIGIvc3JjL3Rvb2xzL2dlbl9leHBvcnQucGwKaW5kZXggODg4Yzhh MTk3YTkuLmQ5ZmRhYWFmNmQwIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvZ2VuX2V4cG9ydC5w bAorKysgYi9zcmMvdG9vbHMvZ2VuX2V4cG9ydC5wbApAQCAtMTYsMTIgKzE2LDExIEBAIEdl dE9wdGlvbnMoCiAJJ2lucHV0OnMnID0+IFwkaW5wdXQsCiAJJ291dHB1dDpzJyA9PiBcJG91 dHB1dCkgb3IgZGllICJ3cm9uZyBhcmd1bWVudHMiOwogCi1pZiAobm90KCAgICRmb3JtYXQg ZXEgJ2FpeCcKLQkJb3IgJGZvcm1hdCBlcSAnZGFyd2luJworaWYgKG5vdCggICAkZm9ybWF0 IGVxICdkYXJ3aW4nCiAJCW9yICRmb3JtYXQgZXEgJ2dudScKIAkJb3IgJGZvcm1hdCBlcSAn d2luJykpCiB7Ci0JZGllICIkMDogJGZvcm1hdCBpcyBub3QgeWV0IGhhbmRsZWQgKG9ubHkg YWl4LCBkYXJ3aW4sIGdudSwgd2luIGFyZSlcbiI7CisJZGllICIkMDogJGZvcm1hdCBpcyBu b3QgeWV0IGhhbmRsZWQgKG9ubHkgZGFyd2luLCBnbnUsIHdpbiBhcmUpXG4iOwogfQogCiBv cGVuKG15ICRpbnB1dF9oYW5kbGUsICc8JywgJGlucHV0KQpAQCAtNTYsMTEgKzU1LDcgQEAg d2hpbGUgKDwkaW5wdXRfaGFuZGxlPikKIAl9CiAJZWxzaWYgKC9eKFxTKylccysoXFMrKS8p CiAJewotCQlpZiAoJGZvcm1hdCBlcSAnYWl4JykKLQkJewotCQkJcHJpbnQgJG91dHB1dF9o YW5kbGUgIiQxXG4iOwotCQl9Ci0JCWVsc2lmICgkZm9ybWF0IGVxICdkYXJ3aW4nKQorCQlp ZiAoJGZvcm1hdCBlcSAnZGFyd2luJykKIAkJewogCQkJcHJpbnQgJG91dHB1dF9oYW5kbGUg Il8kMVxuIjsKIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5jbHVkZS9jcGx1c3Bs dXNjaGVjayBiL3NyYy90b29scy9wZ2luY2x1ZGUvY3BsdXNwbHVzY2hlY2sKaW5kZXggN2Vk ZmM0NGI0OWEuLmE0NmZmNTJjYzFiIDEwMDc1NQotLS0gYS9zcmMvdG9vbHMvcGdpbmNsdWRl L2NwbHVzcGx1c2NoZWNrCisrKyBiL3NyYy90b29scy9wZ2luY2x1ZGUvY3BsdXNwbHVzY2hl Y2sKQEAgLTYxLDcgKzYxLDYgQEAgZG8KIAogCSMgVGhlc2UgZmlsZXMgYXJlIHBsYXRmb3Jt LXNwZWNpZmljLCBhbmQgYy5oIHdpbGwgaW5jbHVkZSB0aGUKIAkjIG9uZSB0aGF0J3MgcmVs ZXZhbnQgZm9yIG91ciBjdXJyZW50IHBsYXRmb3JtIGFueXdheS4KLQl0ZXN0ICIkZiIgPSBz cmMvaW5jbHVkZS9wb3J0L2FpeC5oICYmIGNvbnRpbnVlCiAJdGVzdCAiJGYiID0gc3JjL2lu Y2x1ZGUvcG9ydC9jeWd3aW4uaCAmJiBjb250aW51ZQogCXRlc3QgIiRmIiA9IHNyYy9pbmNs dWRlL3BvcnQvZGFyd2luLmggJiYgY29udGludWUKIAl0ZXN0ICIkZiIgPSBzcmMvaW5jbHVk ZS9wb3J0L2ZyZWVic2QuaCAmJiBjb250aW51ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3Bn aW5jbHVkZS9oZWFkZXJzY2hlY2sgYi9zcmMvdG9vbHMvcGdpbmNsdWRlL2hlYWRlcnNjaGVj awppbmRleCA4NGI4OTJiNWM1MS4uMGUyZDdmNTM3ZWYgMTAwNzU1Ci0tLSBhL3NyYy90b29s cy9wZ2luY2x1ZGUvaGVhZGVyc2NoZWNrCisrKyBiL3NyYy90b29scy9wZ2luY2x1ZGUvaGVh ZGVyc2NoZWNrCkBAIC01Nyw3ICs1Nyw2IEBAIGRvCiAKIAkjIFRoZXNlIGZpbGVzIGFyZSBw bGF0Zm9ybS1zcGVjaWZpYywgYW5kIGMuaCB3aWxsIGluY2x1ZGUgdGhlCiAJIyBvbmUgdGhh dCdzIHJlbGV2YW50IGZvciBvdXIgY3VycmVudCBwbGF0Zm9ybSBhbnl3YXkuCi0JdGVzdCAi JGYiID0gc3JjL2luY2x1ZGUvcG9ydC9haXguaCAmJiBjb250aW51ZQogCXRlc3QgIiRmIiA9 IHNyYy9pbmNsdWRlL3BvcnQvY3lnd2luLmggJiYgY29udGludWUKIAl0ZXN0ICIkZiIgPSBz cmMvaW5jbHVkZS9wb3J0L2Rhcndpbi5oICYmIGNvbnRpbnVlCiAJdGVzdCAiJGYiID0gc3Jj L2luY2x1ZGUvcG9ydC9mcmVlYnNkLmggJiYgY29udGludWUKLS0gCjIuMzkuMgoK --------------k00xEuzw3fd0DU9gE1C2n8Fx--