X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=K0ndDn284xMrPw9seaDyFgEl21bTj/6ZPxsFXR100FE=; b=dQ1ygSoiJlDCb78+Afa57EjF2h84Vu51zqq3Oa2OIK2jS7Eo4WrGvVAkSWglREREvi zLEIWvAEwsoWinZyNg2iWxJHMZrDSMoymm2u1mI5Su/IhaWQqQ3XE0ujX9PUggtA8eHM HfKZRKIe7V+MEtAxJbVO99avxFSCY9Z/RpBvgeEyD74Q831X9PBpqhaAUr4uDioQSI6B YayFlAdgcPk1pEMRsomtNN+4f0rYD9YnU91tUF9wjIfGJQvwekDbMSQquPaMZY+Eu/CS 3+UXry15xG+5wZ24Tscy4iAXnpWBB13w5Lv0ABhCmLlHBONlaDX/EM0d+MRWZdP+IHD6 seUg== MIME-Version: 1.0 X-Received: by 10.107.46.218 with SMTP id u87mr44356124iou.68.1432134928763; Wed, 20 May 2015 08:15:28 -0700 (PDT) In-Reply-To: <83mw106kgn.fsf@gnu.org> References: <201505042003 DOT t44K3odg011007 AT delorie DOT com> <83mw106kgn DOT fsf AT gnu DOT org> Date: Wed, 20 May 2015 18:15:28 +0300 Message-ID: Subject: Re: ANNOUNCE: DJGPP 2.05 beta 1 From: "Ozkan Sezer (sezeroz AT gmail DOT com)" To: djgpp AT delorie DOT com Content-Type: multipart/mixed; boundary=001a11354e16b385c8051684e5f1 Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --001a11354e16b385c8051684e5f1 Content-Type: text/plain; charset=UTF-8 On 5/20/15, Eli Zaretskii (eliz AT gnu DOT org) wrote: >> Date: Tue, 19 May 2015 23:04:07 +0300 >> From: "Ozkan Sezer (sezeroz AT gmail DOT com)" >> >> Besides, djgpp versions of zoneinfo programs (date.exe, zic.exe, >> zdump.exe) are built against toolchain-provided djgpp headers and >> linked against the toolchain-provided djgpp libs, which doesn't >> sound right: we should use the same methods building the programs >> from src/utils/, I can do that if this is aggreed upon. > > Sounds right to me. > OK then, here goes: Attached three files z1.diff, z2.diff, z_all.diff (and also the makefile itself atfer applying the patches, for convenience) ** z1.diff: - zic: define as dos-zic.exe or host-zic.exe depending on cross or native build. - host-zic: place in $(TOPDIR)/hostbin like other utils. - HOST_ZIC: new var for 'host-zic' for cross-builds. - LIBGCCA, DJGPP_DJL: copied defitinions from src/makefile.inc. - CFLAGS: add -nostdinc -I$(TOPDIR)/include - GCCFLAGS: (kept intact) - zdump.exe, zic.exe, date.exe: change rules to link against freshly built crt0.o and libc.a. - date.exe: remove logwtmpl.a building, because it was linking to locally built logwtmpl.a and logwtmp.o is simply an empty object for dos-targeting builds. ** z2.diff: debug flags: made them to work old compilers too, and cleaned/tidied a bit. ** z_all.diff: z1.diff and z2.diff combined Cross-build-tested on linux using a gcc3.4/dj2.03 and gcc5.1/dj2.05 based toolchains. OK for apply? -- O.S. --001a11354e16b385c8051684e5f1 Content-Type: text/plain; charset=US-ASCII; name="z1.diff" Content-Disposition: attachment; filename="z1.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 LSB6aWM6IGRlZmluZSBhcyBkb3MtemljLmV4ZSBvciBob3N0LXppYy5leGUgZGVwZW5kaW5nIG9u IGNyb3NzCiAgb3IgbmF0aXZlIGJ1aWxkLgotIGhvc3QtemljOiBwbGFjZSBpbiAkKFRPUERJUikv aG9zdGJpbiBsaWtlIG90aGVyIHV0aWxzLgotIEhPU1RfWklDOiBuZXcgdmFyIGZvciAnaG9zdC16 aWMnIGZvciBjcm9zcy1idWlsZHMuCi0gTElCR0NDQSwgREpHUFBfREpMOiBjb3BpZWQgZGVmaXRp bmlvbnMgZnJvbSBzcmMvbWFrZWZpbGUuaW5jLgotIENGTEFHUzogYWRkIC1ub3N0ZGluYyAtSSQo VE9QRElSKS9pbmNsdWRlCi0gR0NDRkxBR1M6IChrZXB0IGludGFjdCkKLSB6ZHVtcC5leGUsIHpp Yy5leGUsIGRhdGUuZXhlOiBjaGFuZ2UgcnVsZXMgdG8gbGluayBhZ2FpbnN0CiAgZnJlc2hseSBi dWlsdCBjcnQwLm8gYW5kIGxpYmMuYS4KLSBkYXRlLmV4ZTogcmVtb3ZlIGxvZ3d0bXBsLmEgYnVp bGRpbmcsIGJlY2F1c2UgaXQgd2FzIGxpbmtpbmcKICB0byBsb2NhbGx5IGJ1aWx0IGxvZ3d0bXBs LmEgYW5kIGxvZ3d0bXAubyBpcyBzaW1wbHkgYW4gZW1wdHkKICBvYmplY3QgZm9yIGRvcy10YXJn ZXRpbmcgYnVpbGRzLgoKLS0tIHpvbmVpbmZvL3NyYy9tYWtlZmlsZX4KKysrIHpvbmVpbmZvL3Ny Yy9tYWtlZmlsZQpAQCAtODcsNiArODcsMjEgQEAKIENST1NTX0dDQ19NQUpPUiA6PSAkKHdvcmQg MywgJChzaGVsbCAuLi8uLi9zcmMvbWlzYy5leGUgfCAkKENST1NTX0dDQykgLUUgLWREIC14IGMg LSB8IGVncmVwICdkZWZpbmVcICpfX0dOVUNfXycpKQogQ1JPU1NfR0NDX01JTk9SIDo9ICQod29y ZCAzLCAkKHNoZWxsIC4uLy4uL3NyYy9taXNjLmV4ZSB8ICQoQ1JPU1NfR0NDKSAtRSAtZEQgLXgg YyAtIHwgZWdyZXAgJ2RlZmluZVwgKl9fR05VQ19NSU5PUl9fJykpCiAKK2lmZXEgKCQoTElCR0ND QSksKQorTElCR0NDQSA6PSAkKHNoZWxsICQoQ1JPU1NfR0NDKSAkKEdDQ19PUFQpIC1wcmludC1m aWxlLW5hbWU9bGliZ2NjLmEpCitMSUJHQ0NBIDo9ICQoc3Vic3QgXCwvLCQoTElCR0NDQSkpCitl eHBvcnQgTElCR0NDQQorZW5kaWYKKworaWZlcSAoJChESkdQUF9ESkwpLCkKK0RKR1BQX0RKTCA6 PSAkKHNoZWxsICQoQ1JPU1NfR0NDKSAkKEdDQ19PUFQpIC1wcmludC1maWxlLW5hbWU9ZGpncHAt eC5kamwpCitpZmVxICgkKERKR1BQX0RKTCksZGpncHAteC5kamwpCitESkdQUF9ESkwgOj0gJChz aGVsbCAkKENST1NTX0dDQykgJChHQ0NfT1BUKSAtcHJpbnQtZmlsZS1uYW1lPWRqZ3BwLmRqbCkK K2VuZGlmCitESkdQUF9ESkwgOj0gJChzdWJzdCBcLC8sJChESkdQUF9ESkwpKQorZXhwb3J0IERK R1BQX0RKTAorZW5kaWYKKwogIyBBIHJlcGxhY2VtZW50IGZvciAocG9zc2libHkgbWlzc2luZykg VW5peCBwcm9ncmFtczoKIAogVVRJTD0JCSQoVE9QRElSKS9zcmMvbWlzYy5leGUKQEAgLTM0OSw3 ICszNjQsNyBAQAogCQktREhBVkVfU1RSRVJST1I9MSAtREhBVkVfU1lNTElOSz0wIC1ESEFWRV9T VERJTlRfSD0xXAogCQktRFNURF9JTlNQSVJFRCBcCiAJCS1ETE9DQUxFX0hPTUU9XCIvZGV2L2Vu di9ESkRJUn5jOi9kamdwcH4vc2hhcmUvbG9jYWxlXCIgXAotCQkkKENST1NTX0dDQ19ERUJVR19G TEFHUykgLU8yCisJCSQoQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTKSAtTzIgLW5vc3RkaW5jIC1JJChU T1BESVIpL2luY2x1ZGUKIAogIyBGbGFncyBmb3IgbmF0aXZlIGNvbXBpbGVyCiBHQ0NGTEFHUz0J LURIQVZFX0FESlRJTUU9MCAtREhBVkVfTE9OR19ET1VCTEU9MSAtREhBVkVfU0VUVElNRU9GREFZ PTEgXApAQCAtMzY4LDcgKzM4MywxMiBAQAogTERGTEFHUz0JJChMRkxBR1MpCiAKIEVYRUVYVD0J CS5leGUKLXppYz0JCS4vaG9zdC16aWMKK0hPU1RfWklDPQkkKFRPUERJUikvaG9zdGJpbi96aWMk KEVYRUVYVCkKK2lmZXEgKCQoQ1JPU1NfQlVJTEQpLDEpCit6aWM9CQkkKEhPU1RfWklDKQorZWxz ZQoremljPQkJemljJChFWEVFWFQpCitlbmRpZgogWklDPQkJJCh6aWMpICQoWkZMQUdTKQogCiAj IFRoZSBuYW1lIG9mIGEgUG9zaXgtY29tcGxpYW50IGBhd2snIG9uIHlvdXIgc3lzdGVtLgpAQCAt NTA4LDcgKzUyOCw3IEBACiAJCSQoVVRJTCkgY3AgemR1bXAubWFuICQoTUFORElSKS9jYXQ4L3pk dW1wLjgKIAkJJChVVElMKSBjcCB6aWMubWFuICQoTUFORElSKS9jYXQ4L3ppYy44CiAKLWFsbDoJ CXR6c2VsZWN0IGhvc3QtemljIHppYyQoRVhFRVhUKSB6ZHVtcCQoRVhFRVhUKSAkKExJQk9CSlMp CithbGw6CQl0enNlbGVjdCAkKEhPU1RfWklDKSB6aWMkKEVYRUVYVCkgemR1bXAkKEVYRUVYVCkg JChMSUJPQkpTKQogCiBBTEw6CQlhbGwgZGF0ZSQoRVhFRVhUKQogCkBAIC01MTcsMTggKzUzNywx OCBAQAogCQkgZWNobyAnc3RhdGljIGNoYXIgY29uc3QgVFpWRVJTSU9OW109IiQoVkVSU0lPTiki OycgJiYgXAogCQkgZWNobyAnc3RhdGljIGNoYXIgY29uc3QgUkVQT1JUX0JVR1NfVE9bXT0iJChC VUdFTUFJTCkiOycpID4kQAogCi16ZHVtcCQoRVhFRVhUKToJJChUWkRPQkpTKQotCQkkKENDKSAt byAkQCAkKENGTEFHUykgJChMREZMQUdTKSAkKFRaRE9CSlMpICQoTERMSUJTKQotCQkkKENST1NT X1NUUklQKSAkQAoremR1bXAkKEVYRUVYVCk6CSQoVFpET0JKUykgJChUT1BESVIpL2xpYi9jcnQw Lm8gJChUT1BESVIpL2xpYi9saWJjLmEKKwkJJChDUk9TU19MRCkgLXMgJChMREZMQUdTKSAkKFRP UERJUikvbGliL2NydDAubyAkKFRaRE9CSlMpIC1vICRAICQoVE9QRElSKS9saWIvbGliYy5hICQo TElCR0NDQSkgLVQgJChESkdQUF9ESkwpCisJCSQoVE9QRElSKS9ob3N0YmluL3N0dWJpZnkuZXhl ICRACiAKLWhvc3QtemljOgkkKFRaQ1NSQ1MpIHllYXJpc3R5cGUgdmVyc2lvbi5oCiskKEhPU1Rf WklDKToJJChUWkNTUkNTKSB5ZWFyaXN0eXBlIHZlcnNpb24uaAogCQkkKEdDQykgLURUWkRJUj1c Ii9kZXYvZW52L0RKRElSfmM6L2RqZ3Bwfi96b25laW5mb1wiIFwKIAkJJChHQ0NGTEFHUykgJChM REZMQUdTKSAkKFRaQ1NSQ1MpICQoTERMSUJTKSAtbyAkQAogCQkkKFNUUklQKSAkQAogCi16aWMk KEVYRUVYVCk6CSQoVFpDT0JKUykgeWVhcmlzdHlwZQotCQkkKENDKSAtbyAkQCAkKENGTEFHUykg JChMREZMQUdTKSAkKFRaQ09CSlMpICQoTERMSUJTKQotCQkkKENST1NTX1NUUklQKSAkQAoremlj JChFWEVFWFQpOgkkKFRaQ09CSlMpICQoVE9QRElSKS9saWIvY3J0MC5vICQoVE9QRElSKS9saWIv bGliYy5hIHllYXJpc3R5cGUKKwkJJChDUk9TU19MRCkgLXMgJChMREZMQUdTKSAkKFRPUERJUikv bGliL2NydDAubyAkKFRaQ09CSlMpIC1vICRAICQoVE9QRElSKS9saWIvbGliYy5hICQoTElCR0ND QSkgLVQgJChESkdQUF9ESkwpCisJCSQoVE9QRElSKS9ob3N0YmluL3N0dWJpZnkuZXhlICRACiAK IHllYXJpc3R5cGU6CXllYXJpc3R5cGUuc2gKIAkJJChVVElMKSBjcCB5ZWFyaXN0eXBlLnNoIHll YXJpc3R5cGUKQEAgLTU3OCwxNSArNTk4LDkgQEAKIAkJLSQoVVRJTCkgbWtkaXIgJChMSUJESVIp CiAJCSQoQ1JPU1NfQVIpIHJ1cyAkQCAkKExJQk9CSlMpCiAKLSMgV2UgdXNlIHRoZSBzeXN0ZW0n cyBsb2d3dG1wIGluIHByZWZlcmVuY2UgdG8gb3VycyBpZiBhdmFpbGFibGUuCi0KLWRhdGUkKEVY RUVYVCk6CSQoREFURU9CSlMpCi0JCSQoQ1JPU1NfQVIpIHJzIGxvZ3d0bXBsLmEgbG9nd3RtcC5v Ci0JCSQoQ0MpICQoQ0ZMQUdTKSBkYXRlLm8gbG9jYWx0aW1lLm8gYXNjdGltZS5vIHN0cmZ0aW1l Lm8gXAotCQkJJChMRExJQlMpIC1sYyBsb2d3dG1wbC5hIC1vICRACi0JCSQoQ1JPU1NfU1RSSVAp ICRACi0JCSQoVVRJTCkgcm0gbG9nd3RtcGwuYQotCQkkKENST1NTX1NUUklQKSAkQAorZGF0ZSQo RVhFRVhUKToJJChEQVRFT0JKUykgJChUT1BESVIpL2xpYi9jcnQwLm8gJChUT1BESVIpL2xpYi9s aWJjLmEKKwkJJChDUk9TU19MRCkgLXMgJChMREZMQUdTKSAkKFRPUERJUikvbGliL2NydDAubyAk KERBVEVPQkpTKSAtbyAkQCAkKFRPUERJUikvbGliL2xpYmMuYSAkKExJQkdDQ0EpIC1UICQoREpH UFBfREpMKQorCQkkKFRPUERJUikvaG9zdGJpbi9zdHViaWZ5LmV4ZSAkQAogCiB0enNlbGVjdDoJ dHpzZWxlY3Qua3NoCiAJCXNlZCBcCkBAIC02MTEsNyArNjI1LDcgQEAKIAogY2xlYW5fbWlzYzoK IAkJJChVVElMKSBybSBjb3JlICoubyAqLm91dCB0enNlbGVjdCB6ZHVtcCQoRVhFRVhUKSB6aWMk KEVYRUVYVCkgXAotCQkJeWVhcmlzdHlwZSBkYXRlJChFWEVFWFQpIGxvZ3d0bXBsKiAqLnRhci5n eiBob3N0LXppYyAqLmV4ZSAqLm1hbiBcCisJCQl5ZWFyaXN0eXBlIGRhdGUkKEVYRUVYVCkgbG9n d3RtcGwqICoudGFyLmd6ICQoSE9TVF9aSUMpICouZXhlICoubWFuIFwKIAkJCVREQVRBX2xpc3QK IGNsZWFuOgkJY2xlYW5fbWlzYwogCQkkKFVUSUwpIHJtIC1mIC1yIHR6cHVibGljCg== --001a11354e16b385c8051684e5f1 Content-Type: text/plain; charset=US-ASCII; name="z2.diff" Content-Disposition: attachment; filename="z2.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 ZGVidWcgZmxhZ3M6IG1hZGUgdGhlbSB0byB3b3JrIG9sZCBjb21waWxlcnMgdG9vLCBhbmQgY2xl YW5lZC90aWRpZWQgYSBiaXQuCgotLS0gem9uZWluZm8vc3JjL21ha2VmaWxlfgorKysgem9uZWlu Zm8vc3JjL21ha2VmaWxlCkBAIC0xNzcsOTcgKzE3Nyw0OCBAQAogIwktV3N1Z2dlc3QtYXR0cmli dXRlPW5vcmV0dXJuIC1Xc3VnZ2VzdC1hdHRyaWJ1dGU9cHVyZSAtV3RyYW1wb2xpbmVzIFwKICMJ LVd3cml0ZS1zdHJpbmdzCiAKK0NPTU1PTl9ERUJVR19GTEFHUyA9IC1EbGludCAtZyAtZm5vLWNv bW1vbiAtZnN0cmljdC1hbGlhc2luZyBcCisJLVdhbGwgLVcgLVdjYXN0LWFsaWduIC1XY2FzdC1x dWFsIC1XcG9pbnRlci1hcml0aCBcCisJLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3Npbmct cHJvdG90eXBlcyAtV3N0cmljdC1wcm90b3R5cGVzIFwKKwktV25lc3RlZC1leHRlcm5zIC1Xc2hh ZG93IC1Xd3JpdGUtc3RyaW5ncworCiAjIENyb3NzIGNvbXBpbGVyIGRlYnVnIGZsYWdzLgotQ1JP U1NfR0NDX0RFQlVHX0ZMQUdTX0ZPUl9BTEwgPSAtRGxpbnQgLWcyIC1mbm8tY29tbW9uIC1mc3Ry aWN0LWFsaWFzaW5nIFwKLQktV2FsbCAtV2V4dHJhIFwKLQktV2JhZC1mdW5jdGlvbi1jYXN0IC1X Y2FzdC1hbGlnbiAtV2Nhc3QtcXVhbCBcCi0JLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiBcCi0JLVdt aXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3Npbmctbm9yZXR1cm4gLVdtaXNzaW5nLXByb3RvdHlw ZXMgXAotCS1XbmVzdGVkLWV4dGVybnMgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV25vLXNpZ24t Y29tcGFyZSBcCi0JLVduby11bnVzZWQtcGFyYW1ldGVyICAtV3BvaW50ZXItYXJpdGggLVdzaGFk b3cgLVdzdHJpY3QtcHJvdG90eXBlcyBcCi0JLVd3cml0ZS1zdHJpbmdzCi0KLWlmZXEgKCQoQ1JP U1NfR0NDX01BSk9SKSwzKQotaWZlcSAoJChDUk9TU19HQ0NfTUlOT1IpLDQpCi1DUk9TU19HQ0Nf REVCVUdfRkxBR1MgPSAkKENST1NTX0dDQ19ERUJVR19GTEFHU19GT1JfQUxMKSAtV2NvbnZlcnNp b24gLVd0cmFkaXRpb25hbAoraWZlcSAoJChmaWx0ZXIgMiwkKENST1NTX0dDQ19NQUpPUikpLCkK KyMgZ2NjID49IDMueAorQ1JPU1NfR0NDM19ERkxBR1MgPSAtV2JhZC1mdW5jdGlvbi1jYXN0IC1X bm8tc2lnbi1jb21wYXJlIC1Xbm8tdW51c2VkLXBhcmFtZXRlcgoraWZlcSAoJChmaWx0ZXIgMywk KENST1NTX0dDQ19NQUpPUikpLCkKK2lmZXEgKCQoZmlsdGVyIDQsJChDUk9TU19HQ0NfTUFKT1Ip KSwpCisjIGdjYyA+PSA1LngKK0NST1NTX0dDQzRfREZMQUdTID0gLVduby10eXBlLWxpbWl0cwor ZWxzZQorIyBnY2MgPj0gNC54CitpZmVxICgkKGZpbHRlciAwIDEgMiwkKENST1NTX0dDQ19NSU5P UikpLCkKKyMgZ2NjID49IDQuMworQ1JPU1NfR0NDNF9ERkxBR1MgPSAtV25vLXR5cGUtbGltaXRz CitlbmRpZgogZW5kaWYKIGVuZGlmCi0KLWlmZXEgKCQoQ1JPU1NfR0NDX01BSk9SKSw0KQotIGlm ZXEgKCQoQ1JPU1NfR0NDX01JTk9SKSwwKQotQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX1NQRUNJQUwg PSAKLSBlbHNlCi0gIGlmZXEgKCQoQ1JPU1NfR0NDX01JTk9SKSwxKQotQ1JPU1NfR0NDX0RFQlVH X0ZMQUdTX1NQRUNJQUwgPSAKLSAgZWxzZQotICAgaWZlcSAoJChDUk9TU19HQ0NfTUlOT1IpLDIp Ci1DUk9TU19HQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCA9IC1Xb3Zlcmxlbmd0aC1zdHJpbmdzCi0g ICBlbHNlCi0gICAgaWZlcSAoJChDUk9TU19HQ0NfTUlOT1IpLDMpCi1DUk9TU19HQ0NfREVCVUdf RkxBR1NfU1BFQ0lBTCA9IC1Xb3Zlcmxlbmd0aC1zdHJpbmdzIC1Xbm8tc2lnbi1jb252ZXJzaW9u IC1Xbm8tdHlwZS1saW1pdHMKLSAgICBlbHNlCi0gICAgIGlmZXEgKCQoQ1JPU1NfR0NDX01JTk9S KSw0KQotQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX1NQRUNJQUwgPSAtV292ZXJsZW5ndGgtc3RyaW5n cyAtV25vLXNpZ24tY29udmVyc2lvbiAtV25vLXR5cGUtbGltaXRzCi0gICAgIGVsc2UKLSAgICAg IGlmZXEgKCQoQ1JPU1NfR0NDX01JTk9SKSw1KQotQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX1NQRUNJ QUwgPSAtV292ZXJsZW5ndGgtc3RyaW5ncyAtV25vLXNpZ24tY29udmVyc2lvbiAtV25vLXR5cGUt bGltaXRzCi0gICAgICBlbHNlCi0jIGdjYyA0LjYgYW5kIGxhdGVyIHdvcmtzLgotQ1JPU1NfR0ND X0RFQlVHX0ZMQUdTX1NQRUNJQUwgPSAtV292ZXJsZW5ndGgtc3RyaW5ncyAtV25vLXNpZ24tY29u dmVyc2lvbiAtV25vLXR5cGUtbGltaXRzIC1Xc3VnZ2VzdC1hdHRyaWJ1dGU9Y29uc3QgLVdzdWdn ZXN0LWF0dHJpYnV0ZT1ub3JldHVybiAtV3N1Z2dlc3QtYXR0cmlidXRlPXB1cmUgLVd0cmFtcG9s aW5lcwotICAgICAgZW5kaWYKLSAgICAgZW5kaWYKLSAgICBlbmRpZgotICAgZW5kaWYKLSAgZW5k aWYKLUNST1NTX0dDQ19ERUJVR19GTEFHUyA9ICQoQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX0ZPUl9B TEwpICQoQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX1NQRUNJQUwpCi0gZW5kaWYKIGVuZGlmCitDUk9T U19HQ0NfREVCVUdfRkxBR1MgPSAkKENPTU1PTl9ERUJVR19GTEFHUykgJChDUk9TU19HQ0MzX0RG TEFHUykgJChDUk9TU19HQ0M0X0RGTEFHUykKIAogIyBOYXRpdmUgY29tcGlsZXIgZGVidWcgZmxh Z3MuCi1HQ0NfREVCVUdfRkxBR1NfRk9SX0FMTCA9IC1EbGludCAtZzIgLWZuby1jb21tb24gLWZz dHJpY3QtYWxpYXNpbmcgXAotCS1XYWxsIC1XZXh0cmEgXAotCS1XYmFkLWZ1bmN0aW9uLWNhc3Qg LVdjYXN0LWFsaWduIC1XY2FzdC1xdWFsIFwKLQktV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIFwKLQkt V21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1ub3JldHVybiAtV21pc3NpbmctcHJvdG90 eXBlcyBcCi0JLVduZXN0ZWQtZXh0ZXJucyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xbm8tc2ln bi1jb21wYXJlIFwKLQktV25vLXVudXNlZC1wYXJhbWV0ZXIgIC1XcG9pbnRlci1hcml0aCAtV3No YWRvdyAtV3N0cmljdC1wcm90b3R5cGVzIFwKLQktV3dyaXRlLXN0cmluZ3MKLQotaWZlcSAoJChH Q0NfTUFKT1IpLDMpCi1pZmVxICgkKEdDQ19NSU5PUiksNCkKLUdDQ19ERUJVR19GTEFHUyA9ICQo R0NDX0RFQlVHX0ZMQUdTX0ZPUl9BTEwpIC1XY29udmVyc2lvbiAtV3RyYWRpdGlvbmFsCitpZmVx ICgkKGZpbHRlciAyLCQoR0NDX01BSk9SKSksKQorIyBnY2MgPj0gMy54CitHQ0MzX0RFQlVHX0ZM QUdTID0gLVdiYWQtZnVuY3Rpb24tY2FzdCAtV25vLXNpZ24tY29tcGFyZSAtV25vLXVudXNlZC1w YXJhbWV0ZXIKK2lmZXEgKCQoZmlsdGVyIDMsJChHQ0NfTUFKT1IpKSwpCitpZmVxICgkKGZpbHRl ciA0LCQoR0NDX01BSk9SKSksKQorIyBnY2MgPj0gNS54CitHQ0M0X0RFQlVHX0ZMQUdTID0gLVdu by10eXBlLWxpbWl0cworZWxzZQorIyBnY2MgPj0gNC54CitpZmVxICgkKGZpbHRlciAwIDEgMiwk KEdDQ19NSU5PUikpLCkKKyMgZ2NjID49IDQuMworR0NDNF9ERUJVR19GTEFHUyA9IC1Xbm8tdHlw ZS1saW1pdHMKK2VuZGlmCiBlbmRpZgogZW5kaWYKLQotaWZlcSAoJChHQ0NfTUFKT1IpLDQpCi0g aWZlcSAoJChHQ0NfTUlOT1IpLDApCi1HQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCA9IAotIGVsc2UK LSAgaWZlcSAoJChHQ0NfTUlOT1IpLDEpCi1HQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCA9IAotICBl bHNlCi0gICBpZmVxICgkKEdDQ19NSU5PUiksMikKLUdDQ19ERUJVR19GTEFHU19TUEVDSUFMID0g LVdvdmVybGVuZ3RoLXN0cmluZ3MKLSAgIGVsc2UKLSAgICBpZmVxICgkKEdDQ19NSU5PUiksMykK LUdDQ19ERUJVR19GTEFHU19TUEVDSUFMID0gLVdvdmVybGVuZ3RoLXN0cmluZ3MgLVduby1zaWdu LWNvbnZlcnNpb24gLVduby10eXBlLWxpbWl0cwotICAgIGVsc2UKLSAgICAgaWZlcSAoJChHQ0Nf TUlOT1IpLDQpCi1HQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCA9IC1Xb3Zlcmxlbmd0aC1zdHJpbmdz IC1Xbm8tc2lnbi1jb252ZXJzaW9uIC1Xbm8tdHlwZS1saW1pdHMKLSAgICAgZWxzZQotICAgICAg aWZlcSAoJChHQ0NfTUlOT1IpLDUpCi1HQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCA9IC1Xb3Zlcmxl bmd0aC1zdHJpbmdzIC1Xbm8tc2lnbi1jb252ZXJzaW9uIC1Xbm8tdHlwZS1saW1pdHMKLSAgICAg IGVsc2UKLSMgZ2NjIDQuNiBhbmQgbGF0ZXIgd29ya3MuCi1HQ0NfREVCVUdfRkxBR1NfU1BFQ0lB TCA9IC1Xb3Zlcmxlbmd0aC1zdHJpbmdzIC1Xbm8tc2lnbi1jb252ZXJzaW9uIC1Xbm8tdHlwZS1s aW1pdHMgLVdzdWdnZXN0LWF0dHJpYnV0ZT1jb25zdCAtV3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0 dXJuIC1Xc3VnZ2VzdC1hdHRyaWJ1dGU9cHVyZSAtV3RyYW1wb2xpbmVzCi0gICAgICBlbmRpZgot ICAgICBlbmRpZgotICAgIGVuZGlmCi0gICBlbmRpZgotICBlbmRpZgotR0NDX0RFQlVHX0ZMQUdT ID0gJChHQ0NfREVCVUdfRkxBR1NfRk9SX0FMTCkgJChHQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCkK LSBlbmRpZgogZW5kaWYKK0dDQ19ERUJVR19GTEFHUyA9ICQoQ09NTU9OX0RFQlVHX0ZMQUdTKSAk KEdDQzNfREVCVUdfRkxBR1MpICQoR0NDNF9ERUJVR19GTEFHUykKIAogIwogIyBJZiB5b3Ugd2Fu dCB0byB1c2UgU3lzdGVtIFYgY29tcGF0aWJpbGl0eSBjb2RlLCBhZGQK --001a11354e16b385c8051684e5f1 Content-Type: text/plain; charset=US-ASCII; name="z_all.diff" Content-Disposition: attachment; filename="z_all.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 ejEuZGlmZiBhbmQgejIuZGlmZiBjb21iaW5lZAoKLS0tIHpvbmVpbmZvL3NyYy9tYWtlZmlsZX4K KysrIHpvbmVpbmZvL3NyYy9tYWtlZmlsZQpAQCAtODcsNiArODcsMjEgQEAKIENST1NTX0dDQ19N QUpPUiA6PSAkKHdvcmQgMywgJChzaGVsbCAuLi8uLi9zcmMvbWlzYy5leGUgfCAkKENST1NTX0dD QykgLUUgLWREIC14IGMgLSB8IGVncmVwICdkZWZpbmVcICpfX0dOVUNfXycpKQogQ1JPU1NfR0ND X01JTk9SIDo9ICQod29yZCAzLCAkKHNoZWxsIC4uLy4uL3NyYy9taXNjLmV4ZSB8ICQoQ1JPU1Nf R0NDKSAtRSAtZEQgLXggYyAtIHwgZWdyZXAgJ2RlZmluZVwgKl9fR05VQ19NSU5PUl9fJykpCiAK K2lmZXEgKCQoTElCR0NDQSksKQorTElCR0NDQSA6PSAkKHNoZWxsICQoQ1JPU1NfR0NDKSAkKEdD Q19PUFQpIC1wcmludC1maWxlLW5hbWU9bGliZ2NjLmEpCitMSUJHQ0NBIDo9ICQoc3Vic3QgXCwv LCQoTElCR0NDQSkpCitleHBvcnQgTElCR0NDQQorZW5kaWYKKworaWZlcSAoJChESkdQUF9ESkwp LCkKK0RKR1BQX0RKTCA6PSAkKHNoZWxsICQoQ1JPU1NfR0NDKSAkKEdDQ19PUFQpIC1wcmludC1m aWxlLW5hbWU9ZGpncHAteC5kamwpCitpZmVxICgkKERKR1BQX0RKTCksZGpncHAteC5kamwpCitE SkdQUF9ESkwgOj0gJChzaGVsbCAkKENST1NTX0dDQykgJChHQ0NfT1BUKSAtcHJpbnQtZmlsZS1u YW1lPWRqZ3BwLmRqbCkKK2VuZGlmCitESkdQUF9ESkwgOj0gJChzdWJzdCBcLC8sJChESkdQUF9E SkwpKQorZXhwb3J0IERKR1BQX0RKTAorZW5kaWYKKwogIyBBIHJlcGxhY2VtZW50IGZvciAocG9z c2libHkgbWlzc2luZykgVW5peCBwcm9ncmFtczoKIAogVVRJTD0JCSQoVE9QRElSKS9zcmMvbWlz Yy5leGUKQEAgLTE2Miw5NyArMTc3LDQ4IEBACiAjCS1Xc3VnZ2VzdC1hdHRyaWJ1dGU9bm9yZXR1 cm4gLVdzdWdnZXN0LWF0dHJpYnV0ZT1wdXJlIC1XdHJhbXBvbGluZXMgXAogIwktV3dyaXRlLXN0 cmluZ3MKIAorQ09NTU9OX0RFQlVHX0ZMQUdTID0gLURsaW50IC1nIC1mbm8tY29tbW9uIC1mc3Ry aWN0LWFsaWFzaW5nIFwKKwktV2FsbCAtVyAtV2Nhc3QtYWxpZ24gLVdjYXN0LXF1YWwgLVdwb2lu dGVyLWFyaXRoIFwKKwktV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1wcm90b3R5cGVz IC1Xc3RyaWN0LXByb3RvdHlwZXMgXAorCS1XbmVzdGVkLWV4dGVybnMgLVdzaGFkb3cgLVd3cml0 ZS1zdHJpbmdzCisKICMgQ3Jvc3MgY29tcGlsZXIgZGVidWcgZmxhZ3MuCi1DUk9TU19HQ0NfREVC VUdfRkxBR1NfRk9SX0FMTCA9IC1EbGludCAtZzIgLWZuby1jb21tb24gLWZzdHJpY3QtYWxpYXNp bmcgXAotCS1XYWxsIC1XZXh0cmEgXAotCS1XYmFkLWZ1bmN0aW9uLWNhc3QgLVdjYXN0LWFsaWdu IC1XY2FzdC1xdWFsIFwKLQktV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIFwKLQktV21pc3NpbmctZGVj bGFyYXRpb25zIC1XbWlzc2luZy1ub3JldHVybiAtV21pc3NpbmctcHJvdG90eXBlcyBcCi0JLVdu ZXN0ZWQtZXh0ZXJucyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xbm8tc2lnbi1jb21wYXJlIFwK LQktV25vLXVudXNlZC1wYXJhbWV0ZXIgIC1XcG9pbnRlci1hcml0aCAtV3NoYWRvdyAtV3N0cmlj dC1wcm90b3R5cGVzIFwKLQktV3dyaXRlLXN0cmluZ3MKLQotaWZlcSAoJChDUk9TU19HQ0NfTUFK T1IpLDMpCi1pZmVxICgkKENST1NTX0dDQ19NSU5PUiksNCkKLUNST1NTX0dDQ19ERUJVR19GTEFH UyA9ICQoQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX0ZPUl9BTEwpIC1XY29udmVyc2lvbiAtV3RyYWRp dGlvbmFsCitpZmVxICgkKGZpbHRlciAyLCQoQ1JPU1NfR0NDX01BSk9SKSksKQorIyBnY2MgPj0g My54CitDUk9TU19HQ0MzX0RGTEFHUyA9IC1XYmFkLWZ1bmN0aW9uLWNhc3QgLVduby1zaWduLWNv bXBhcmUgLVduby11bnVzZWQtcGFyYW1ldGVyCitpZmVxICgkKGZpbHRlciAzLCQoQ1JPU1NfR0ND X01BSk9SKSksKQoraWZlcSAoJChmaWx0ZXIgNCwkKENST1NTX0dDQ19NQUpPUikpLCkKKyMgZ2Nj ID49IDUueAorQ1JPU1NfR0NDNF9ERkxBR1MgPSAtV25vLXR5cGUtbGltaXRzCitlbHNlCisjIGdj YyA+PSA0LngKK2lmZXEgKCQoZmlsdGVyIDAgMSAyLCQoQ1JPU1NfR0NDX01JTk9SKSksKQorIyBn Y2MgPj0gNC4zCitDUk9TU19HQ0M0X0RGTEFHUyA9IC1Xbm8tdHlwZS1saW1pdHMKIGVuZGlmCiBl bmRpZgotCi1pZmVxICgkKENST1NTX0dDQ19NQUpPUiksNCkKLSBpZmVxICgkKENST1NTX0dDQ19N SU5PUiksMCkKLUNST1NTX0dDQ19ERUJVR19GTEFHU19TUEVDSUFMID0gCi0gZWxzZQotICBpZmVx ICgkKENST1NTX0dDQ19NSU5PUiksMSkKLUNST1NTX0dDQ19ERUJVR19GTEFHU19TUEVDSUFMID0g Ci0gIGVsc2UKLSAgIGlmZXEgKCQoQ1JPU1NfR0NDX01JTk9SKSwyKQotQ1JPU1NfR0NDX0RFQlVH X0ZMQUdTX1NQRUNJQUwgPSAtV292ZXJsZW5ndGgtc3RyaW5ncwotICAgZWxzZQotICAgIGlmZXEg KCQoQ1JPU1NfR0NDX01JTk9SKSwzKQotQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX1NQRUNJQUwgPSAt V292ZXJsZW5ndGgtc3RyaW5ncyAtV25vLXNpZ24tY29udmVyc2lvbiAtV25vLXR5cGUtbGltaXRz Ci0gICAgZWxzZQotICAgICBpZmVxICgkKENST1NTX0dDQ19NSU5PUiksNCkKLUNST1NTX0dDQ19E RUJVR19GTEFHU19TUEVDSUFMID0gLVdvdmVybGVuZ3RoLXN0cmluZ3MgLVduby1zaWduLWNvbnZl cnNpb24gLVduby10eXBlLWxpbWl0cwotICAgICBlbHNlCi0gICAgICBpZmVxICgkKENST1NTX0dD Q19NSU5PUiksNSkKLUNST1NTX0dDQ19ERUJVR19GTEFHU19TUEVDSUFMID0gLVdvdmVybGVuZ3Ro LXN0cmluZ3MgLVduby1zaWduLWNvbnZlcnNpb24gLVduby10eXBlLWxpbWl0cwotICAgICAgZWxz ZQotIyBnY2MgNC42IGFuZCBsYXRlciB3b3Jrcy4KLUNST1NTX0dDQ19ERUJVR19GTEFHU19TUEVD SUFMID0gLVdvdmVybGVuZ3RoLXN0cmluZ3MgLVduby1zaWduLWNvbnZlcnNpb24gLVduby10eXBl LWxpbWl0cyAtV3N1Z2dlc3QtYXR0cmlidXRlPWNvbnN0IC1Xc3VnZ2VzdC1hdHRyaWJ1dGU9bm9y ZXR1cm4gLVdzdWdnZXN0LWF0dHJpYnV0ZT1wdXJlIC1XdHJhbXBvbGluZXMKLSAgICAgIGVuZGlm Ci0gICAgIGVuZGlmCi0gICAgZW5kaWYKLSAgIGVuZGlmCi0gIGVuZGlmCi1DUk9TU19HQ0NfREVC VUdfRkxBR1MgPSAkKENST1NTX0dDQ19ERUJVR19GTEFHU19GT1JfQUxMKSAkKENST1NTX0dDQ19E RUJVR19GTEFHU19TUEVDSUFMKQotIGVuZGlmCiBlbmRpZgorZW5kaWYKK0NST1NTX0dDQ19ERUJV R19GTEFHUyA9ICQoQ09NTU9OX0RFQlVHX0ZMQUdTKSAkKENST1NTX0dDQzNfREZMQUdTKSAkKENS T1NTX0dDQzRfREZMQUdTKQogCiAjIE5hdGl2ZSBjb21waWxlciBkZWJ1ZyBmbGFncy4KLUdDQ19E RUJVR19GTEFHU19GT1JfQUxMID0gLURsaW50IC1nMiAtZm5vLWNvbW1vbiAtZnN0cmljdC1hbGlh c2luZyBcCi0JLVdhbGwgLVdleHRyYSBcCi0JLVdiYWQtZnVuY3Rpb24tY2FzdCAtV2Nhc3QtYWxp Z24gLVdjYXN0LXF1YWwgXAotCS1XZm9ybWF0PTIgLVdpbml0LXNlbGYgXAotCS1XbWlzc2luZy1k ZWNsYXJhdGlvbnMgLVdtaXNzaW5nLW5vcmV0dXJuIC1XbWlzc2luZy1wcm90b3R5cGVzIFwKLQkt V25lc3RlZC1leHRlcm5zIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVduby1zaWduLWNvbXBhcmUg XAotCS1Xbm8tdW51c2VkLXBhcmFtZXRlciAgLVdwb2ludGVyLWFyaXRoIC1Xc2hhZG93IC1Xc3Ry aWN0LXByb3RvdHlwZXMgXAotCS1Xd3JpdGUtc3RyaW5ncwotCi1pZmVxICgkKEdDQ19NQUpPUiks MykKLWlmZXEgKCQoR0NDX01JTk9SKSw0KQotR0NDX0RFQlVHX0ZMQUdTID0gJChHQ0NfREVCVUdf RkxBR1NfRk9SX0FMTCkgLVdjb252ZXJzaW9uIC1XdHJhZGl0aW9uYWwKK2lmZXEgKCQoZmlsdGVy IDIsJChHQ0NfTUFKT1IpKSwpCisjIGdjYyA+PSAzLngKK0dDQzNfREVCVUdfRkxBR1MgPSAtV2Jh ZC1mdW5jdGlvbi1jYXN0IC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tdW51c2VkLXBhcmFtZXRlcgor aWZlcSAoJChmaWx0ZXIgMywkKEdDQ19NQUpPUikpLCkKK2lmZXEgKCQoZmlsdGVyIDQsJChHQ0Nf TUFKT1IpKSwpCisjIGdjYyA+PSA1LngKK0dDQzRfREVCVUdfRkxBR1MgPSAtV25vLXR5cGUtbGlt aXRzCitlbHNlCisjIGdjYyA+PSA0LngKK2lmZXEgKCQoZmlsdGVyIDAgMSAyLCQoR0NDX01JTk9S KSksKQorIyBnY2MgPj0gNC4zCitHQ0M0X0RFQlVHX0ZMQUdTID0gLVduby10eXBlLWxpbWl0cwor ZW5kaWYKIGVuZGlmCiBlbmRpZgotCi1pZmVxICgkKEdDQ19NQUpPUiksNCkKLSBpZmVxICgkKEdD Q19NSU5PUiksMCkKLUdDQ19ERUJVR19GTEFHU19TUEVDSUFMID0gCi0gZWxzZQotICBpZmVxICgk KEdDQ19NSU5PUiksMSkKLUdDQ19ERUJVR19GTEFHU19TUEVDSUFMID0gCi0gIGVsc2UKLSAgIGlm ZXEgKCQoR0NDX01JTk9SKSwyKQotR0NDX0RFQlVHX0ZMQUdTX1NQRUNJQUwgPSAtV292ZXJsZW5n dGgtc3RyaW5ncwotICAgZWxzZQotICAgIGlmZXEgKCQoR0NDX01JTk9SKSwzKQotR0NDX0RFQlVH X0ZMQUdTX1NQRUNJQUwgPSAtV292ZXJsZW5ndGgtc3RyaW5ncyAtV25vLXNpZ24tY29udmVyc2lv biAtV25vLXR5cGUtbGltaXRzCi0gICAgZWxzZQotICAgICBpZmVxICgkKEdDQ19NSU5PUiksNCkK LUdDQ19ERUJVR19GTEFHU19TUEVDSUFMID0gLVdvdmVybGVuZ3RoLXN0cmluZ3MgLVduby1zaWdu LWNvbnZlcnNpb24gLVduby10eXBlLWxpbWl0cwotICAgICBlbHNlCi0gICAgICBpZmVxICgkKEdD Q19NSU5PUiksNSkKLUdDQ19ERUJVR19GTEFHU19TUEVDSUFMID0gLVdvdmVybGVuZ3RoLXN0cmlu Z3MgLVduby1zaWduLWNvbnZlcnNpb24gLVduby10eXBlLWxpbWl0cwotICAgICAgZWxzZQotIyBn Y2MgNC42IGFuZCBsYXRlciB3b3Jrcy4KLUdDQ19ERUJVR19GTEFHU19TUEVDSUFMID0gLVdvdmVy bGVuZ3RoLXN0cmluZ3MgLVduby1zaWduLWNvbnZlcnNpb24gLVduby10eXBlLWxpbWl0cyAtV3N1 Z2dlc3QtYXR0cmlidXRlPWNvbnN0IC1Xc3VnZ2VzdC1hdHRyaWJ1dGU9bm9yZXR1cm4gLVdzdWdn ZXN0LWF0dHJpYnV0ZT1wdXJlIC1XdHJhbXBvbGluZXMKLSAgICAgIGVuZGlmCi0gICAgIGVuZGlm Ci0gICAgZW5kaWYKLSAgIGVuZGlmCi0gIGVuZGlmCi1HQ0NfREVCVUdfRkxBR1MgPSAkKEdDQ19E RUJVR19GTEFHU19GT1JfQUxMKSAkKEdDQ19ERUJVR19GTEFHU19TUEVDSUFMKQotIGVuZGlmCiBl bmRpZgorR0NDX0RFQlVHX0ZMQUdTID0gJChDT01NT05fREVCVUdfRkxBR1MpICQoR0NDM19ERUJV R19GTEFHUykgJChHQ0M0X0RFQlVHX0ZMQUdTKQogCiAjCiAjIElmIHlvdSB3YW50IHRvIHVzZSBT eXN0ZW0gViBjb21wYXRpYmlsaXR5IGNvZGUsIGFkZApAQCAtMzQ5LDcgKzMxNSw3IEBACiAJCS1E SEFWRV9TVFJFUlJPUj0xIC1ESEFWRV9TWU1MSU5LPTAgLURIQVZFX1NURElOVF9IPTFcCiAJCS1E U1REX0lOU1BJUkVEIFwKIAkJLURMT0NBTEVfSE9NRT1cIi9kZXYvZW52L0RKRElSfmM6L2RqZ3Bw fi9zaGFyZS9sb2NhbGVcIiBcCi0JCSQoQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTKSAtTzIKKwkJJChD Uk9TU19HQ0NfREVCVUdfRkxBR1MpIC1PMiAtbm9zdGRpbmMgLUkkKFRPUERJUikvaW5jbHVkZQog CiAjIEZsYWdzIGZvciBuYXRpdmUgY29tcGlsZXIKIEdDQ0ZMQUdTPQktREhBVkVfQURKVElNRT0w IC1ESEFWRV9MT05HX0RPVUJMRT0xIC1ESEFWRV9TRVRUSU1FT0ZEQVk9MSBcCkBAIC0zNjgsNyAr MzM0LDEyIEBACiBMREZMQUdTPQkkKExGTEFHUykKIAogRVhFRVhUPQkJLmV4ZQotemljPQkJLi9o b3N0LXppYworSE9TVF9aSUM9CSQoVE9QRElSKS9ob3N0YmluL3ppYyQoRVhFRVhUKQoraWZlcSAo JChDUk9TU19CVUlMRCksMSkKK3ppYz0JCSQoSE9TVF9aSUMpCitlbHNlCit6aWM9CQl6aWMkKEVY RUVYVCkKK2VuZGlmCiBaSUM9CQkkKHppYykgJChaRkxBR1MpCiAKICMgVGhlIG5hbWUgb2YgYSBQ b3NpeC1jb21wbGlhbnQgYGF3aycgb24geW91ciBzeXN0ZW0uCkBAIC01MDgsNyArNDc5LDcgQEAK IAkJJChVVElMKSBjcCB6ZHVtcC5tYW4gJChNQU5ESVIpL2NhdDgvemR1bXAuOAogCQkkKFVUSUwp IGNwIHppYy5tYW4gJChNQU5ESVIpL2NhdDgvemljLjgKIAotYWxsOgkJdHpzZWxlY3QgaG9zdC16 aWMgemljJChFWEVFWFQpIHpkdW1wJChFWEVFWFQpICQoTElCT0JKUykKK2FsbDoJCXR6c2VsZWN0 ICQoSE9TVF9aSUMpIHppYyQoRVhFRVhUKSB6ZHVtcCQoRVhFRVhUKSAkKExJQk9CSlMpCiAKIEFM TDoJCWFsbCBkYXRlJChFWEVFWFQpCiAKQEAgLTUxNywxOCArNDg4LDE4IEBACiAJCSBlY2hvICdz dGF0aWMgY2hhciBjb25zdCBUWlZFUlNJT05bXT0iJChWRVJTSU9OKSI7JyAmJiBcCiAJCSBlY2hv ICdzdGF0aWMgY2hhciBjb25zdCBSRVBPUlRfQlVHU19UT1tdPSIkKEJVR0VNQUlMKSI7JykgPiRA CiAKLXpkdW1wJChFWEVFWFQpOgkkKFRaRE9CSlMpCi0JCSQoQ0MpIC1vICRAICQoQ0ZMQUdTKSAk KExERkxBR1MpICQoVFpET0JKUykgJChMRExJQlMpCi0JCSQoQ1JPU1NfU1RSSVApICRACit6ZHVt cCQoRVhFRVhUKToJJChUWkRPQkpTKSAkKFRPUERJUikvbGliL2NydDAubyAkKFRPUERJUikvbGli L2xpYmMuYQorCQkkKENST1NTX0xEKSAtcyAkKExERkxBR1MpICQoVE9QRElSKS9saWIvY3J0MC5v ICQoVFpET0JKUykgLW8gJEAgJChUT1BESVIpL2xpYi9saWJjLmEgJChMSUJHQ0NBKSAtVCAkKERK R1BQX0RKTCkKKwkJJChUT1BESVIpL2hvc3RiaW4vc3R1YmlmeS5leGUgJEAKIAotaG9zdC16aWM6 CSQoVFpDU1JDUykgeWVhcmlzdHlwZSB2ZXJzaW9uLmgKKyQoSE9TVF9aSUMpOgkkKFRaQ1NSQ1Mp IHllYXJpc3R5cGUgdmVyc2lvbi5oCiAJCSQoR0NDKSAtRFRaRElSPVwiL2Rldi9lbnYvREpESVJ+ YzovZGpncHB+L3pvbmVpbmZvXCIgXAogCQkkKEdDQ0ZMQUdTKSAkKExERkxBR1MpICQoVFpDU1JD UykgJChMRExJQlMpIC1vICRACiAJCSQoU1RSSVApICRACiAKLXppYyQoRVhFRVhUKToJJChUWkNP QkpTKSB5ZWFyaXN0eXBlCi0JCSQoQ0MpIC1vICRAICQoQ0ZMQUdTKSAkKExERkxBR1MpICQoVFpD T0JKUykgJChMRExJQlMpCi0JCSQoQ1JPU1NfU1RSSVApICRACit6aWMkKEVYRUVYVCk6CSQoVFpD T0JKUykgJChUT1BESVIpL2xpYi9jcnQwLm8gJChUT1BESVIpL2xpYi9saWJjLmEgeWVhcmlzdHlw ZQorCQkkKENST1NTX0xEKSAtcyAkKExERkxBR1MpICQoVE9QRElSKS9saWIvY3J0MC5vICQoVFpD T0JKUykgLW8gJEAgJChUT1BESVIpL2xpYi9saWJjLmEgJChMSUJHQ0NBKSAtVCAkKERKR1BQX0RK TCkKKwkJJChUT1BESVIpL2hvc3RiaW4vc3R1YmlmeS5leGUgJEAKIAogeWVhcmlzdHlwZToJeWVh cmlzdHlwZS5zaAogCQkkKFVUSUwpIGNwIHllYXJpc3R5cGUuc2ggeWVhcmlzdHlwZQpAQCAtNTc4 LDE1ICs1NDksOSBAQAogCQktJChVVElMKSBta2RpciAkKExJQkRJUikKIAkJJChDUk9TU19BUikg cnVzICRAICQoTElCT0JKUykKIAotIyBXZSB1c2UgdGhlIHN5c3RlbSdzIGxvZ3d0bXAgaW4gcHJl ZmVyZW5jZSB0byBvdXJzIGlmIGF2YWlsYWJsZS4KLQotZGF0ZSQoRVhFRVhUKToJJChEQVRFT0JK UykKLQkJJChDUk9TU19BUikgcnMgbG9nd3RtcGwuYSBsb2d3dG1wLm8KLQkJJChDQykgJChDRkxB R1MpIGRhdGUubyBsb2NhbHRpbWUubyBhc2N0aW1lLm8gc3RyZnRpbWUubyBcCi0JCQkkKExETElC UykgLWxjIGxvZ3d0bXBsLmEgLW8gJEAKLQkJJChDUk9TU19TVFJJUCkgJEAKLQkJJChVVElMKSBy bSBsb2d3dG1wbC5hCi0JCSQoQ1JPU1NfU1RSSVApICRACitkYXRlJChFWEVFWFQpOgkkKERBVEVP QkpTKSAkKFRPUERJUikvbGliL2NydDAubyAkKFRPUERJUikvbGliL2xpYmMuYQorCQkkKENST1NT X0xEKSAtcyAkKExERkxBR1MpICQoVE9QRElSKS9saWIvY3J0MC5vICQoREFURU9CSlMpIC1vICRA ICQoVE9QRElSKS9saWIvbGliYy5hICQoTElCR0NDQSkgLVQgJChESkdQUF9ESkwpCisJCSQoVE9Q RElSKS9ob3N0YmluL3N0dWJpZnkuZXhlICRACiAKIHR6c2VsZWN0Ogl0enNlbGVjdC5rc2gKIAkJ c2VkIFwKQEAgLTYxMSw3ICs1NzYsNyBAQAogCiBjbGVhbl9taXNjOgogCQkkKFVUSUwpIHJtIGNv cmUgKi5vICoub3V0IHR6c2VsZWN0IHpkdW1wJChFWEVFWFQpIHppYyQoRVhFRVhUKSBcCi0JCQl5 ZWFyaXN0eXBlIGRhdGUkKEVYRUVYVCkgbG9nd3RtcGwqICoudGFyLmd6IGhvc3QtemljICouZXhl ICoubWFuIFwKKwkJCXllYXJpc3R5cGUgZGF0ZSQoRVhFRVhUKSBsb2d3dG1wbCogKi50YXIuZ3og JChIT1NUX1pJQykgKi5leGUgKi5tYW4gXAogCQkJVERBVEFfbGlzdAogY2xlYW46CQljbGVhbl9t aXNjCiAJCSQoVVRJTCkgcm0gLWYgLXIgdHpwdWJsaWMK --001a11354e16b385c8051684e5f1 Content-Type: application/octet-stream; name=makefile Content-Disposition: attachment; filename=makefile Content-Transfer-Encoding: base64 X-Attachment-Id: file0 IyA8cHJlPgojIFRoaXMgZmlsZSBpcyBpbiB0aGUgcHVibGljIGRvbWFpbiwgc28gY2xhcmlmaWVk IGFzIG9mCiMgMjAwOS0wNS0xNyBieSBBcnRodXIgRGF2aWQgT2xzb24uCgojIFBhY2thZ2UgbmFt ZSBmb3IgdGhlIGNvZGUgZGlzdHJpYnV0aW9uLgpQQUNLQUdFPQl0emNvZGUKCiMgVmVyc2lvbiBu dW1iZXJzIG9mIHRoZSBjb2RlIGFuZCBkYXRhIGRpc3RyaWJ1dGlvbnMuClZFUlNJT049CTIwMTNk CgojIEVtYWlsIGFkZHJlc3MgZm9yIGJ1ZyByZXBvcnRzLgpCVUdFTUFJTD0JdHpAaWFuYS5vcmcK CiMgQ2hhbmdlIHRoZSBsaW5lIGJlbG93IGZvciB5b3VyIHRpbWUgem9uZSAoYWZ0ZXIgZmluZGlu ZyB0aGUgem9uZSB5b3Ugd2FudCBpbgojIHRoZSB0aW1lIHpvbmUgZmlsZXMsIG9yIGFkZGluZyBp dCB0byBhIHRpbWUgem9uZSBmaWxlKS4KIyBBbHRlcm5hdGVseSwgaWYgeW91IGRpc2NvdmVyIHlv dSd2ZSBnb3QgdGhlIHdyb25nIHRpbWUgem9uZSwgeW91IGNhbiBqdXN0CiMJemljIC1sIHJpZ2h0 em9uZQojIHRvIGNvcnJlY3QgdGhpbmdzLgojIFVzZSB0aGUgY29tbWFuZAojCW1ha2Ugem9uZW5h bWVzCiMgdG8gZ2V0IGEgbGlzdCBvZiB0aGUgdmFsdWVzIHlvdSBjYW4gdXNlIGZvciBMT0NBTFRJ TUUuCgpMT0NBTFRJTUU9CUdNVAoKIyBJZiB5b3Ugd2FudCBzb21ldGhpbmcgb3RoZXIgdGhhbiBF YXN0ZXJuIFVuaXRlZCBTdGF0ZXMgdGltZSBhcyBhIHRlbXBsYXRlCiMgZm9yIGhhbmRsaW5nIFBP U0lYLXN0eWxlIHRpbWUgem9uZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMsCiMgY2hhbmdlIHRoZSBs aW5lIGJlbG93IChhZnRlciBmaW5kaW5nIHRoZSB6b25lIHlvdSB3YW50IGluIHRoZQojIHRpbWUg em9uZSBmaWxlcywgb3IgYWRkaW5nIGl0IHRvIGEgdGltZSB6b25lIGZpbGUpLgojIChXaGVuIGEg UE9TSVgtc3R5bGUgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgaGFuZGxlZCwgdGhlIHJ1bGVzIGlu IHRoZQojIHRlbXBsYXRlIGZpbGUgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lICJzcHJpbmcgZm9yd2Fy ZCIgYW5kICJmYWxsIGJhY2siIGRheXMgYW5kCiMgdGltZXM7IHRoZSBlbnZpcm9ubWVudCB2YXJp YWJsZSBpdHNlbGYgc3BlY2lmaWVzIFVUQyBvZmZzZXRzIG9mIHN0YW5kYXJkIGFuZAojIHN1bW1l ciB0aW1lLikKIyBBbHRlcm5hdGVseSwgaWYgeW91IGRpc2NvdmVyIHlvdSd2ZSBnb3QgdGhlIHdy b25nIHRpbWUgem9uZSwgeW91IGNhbiBqdXN0CiMJemljIC1wIHJpZ2h0em9uZQojIHRvIGNvcnJl Y3QgdGhpbmdzLgojIFVzZSB0aGUgY29tbWFuZAojCW1ha2Ugem9uZW5hbWVzCiMgdG8gZ2V0IGEg bGlzdCBvZiB0aGUgdmFsdWVzIHlvdSBjYW4gdXNlIGZvciBQT1NJWFJVTEVTLgojIElmIHlvdSB3 YW50IFBPU0lYIGNvbXBhdGliaWxpdHksIHVzZSAiQW1lcmljYS9OZXdfWW9yayIuCgpQT1NJWFJV TEVTPQlBbWVyaWNhL05ld19Zb3JrCgojIEFsc28gc2VlIFRaREVGUlVMRVNUUklORyBiZWxvdywg d2hpY2ggdGFrZXMgZWZmZWN0IG9ubHkKIyBpZiB0aGUgdGltZSB6b25lIGZpbGVzIGNhbm5vdCBi ZSBhY2Nlc3NlZC4KCiMgRXZlcnl0aGluZyBnZXRzIHB1dCBpbiBzdWJkaXJlY3RvcmllcyBvZi4g LiAuCgpUT1BESVI9CQkuLi8uLgoKIyAiQ29tcGlsZWQiIHRpbWUgem9uZSBpbmZvcm1hdGlvbiBp cyBwbGFjZWQgaW4gdGhlICJUWkRJUiIgZGlyZWN0b3J5CiMgKGFuZCBzdWJkaXJlY3Rvcmllcyku CiMgVXNlIGFuIGFic29sdXRlIHBhdGggbmFtZSBmb3IgVFpESVIgdW5sZXNzIHlvdSdyZSBqdXN0 IHRlc3RpbmcgdGhlIHNvZnR3YXJlLgoKVFpESVI9CQkkKFRPUERJUikvem9uZWluZm8KCiMgVHlw ZXMgdG8gdHJ5LCBhcyBhbiBhbHRlcm5hdGl2ZSB0byB0aW1lX3QuICBpbnQ2NF90IHNob3VsZCBi ZSBmaXJzdC4KVElNRV9UX0FMVEVSTkFUSVZFUz0gaW50NjRfdCBpbnQzMl90IHVpbnQzMl90IHVp bnQ2NF90CgojIFRoZSAidHpzZWxlY3QiLCAiemljIiwgYW5kICJ6ZHVtcCIgY29tbWFuZHMgZ2V0 IGluc3RhbGxlZCBpbi4gLiAuCgpFVENESVI9CQkkKFRPUERJUikvZXRjCgojIElmIHlvdSAibWFr ZSBJTlNUQUxMIiwgdGhlICJkYXRlIiBjb21tYW5kIGdldHMgaW5zdGFsbGVkIGluLiAuIC4KCkJJ TkRJUj0JCSQoVE9QRElSKS9ldGMKCiMgTWFudWFsIHBhZ2VzIGdvIGluIHN1YmRpcmVjdG9yaWVz IG9mLiAuIC4KClNIQVJFRElSPQkkKFRPUERJUikvc2hhcmUKTUFORElSPQkJJChTSEFSRURJUikv bWFuCgojIExpYnJhcnkgZnVuY3Rpb25zIGFyZSBwdXQgaW4gYW4gYXJjaGl2ZSBpbiBMSUJESVIu CgpMSUJESVI9CQkkKFRPUERJUikvbGliClRaTElCPQkJJChMSUJESVIpL2xpYnR6LmEKCiMgVGhp cyBkZWZpbmVzIHNldmVyYWwgdmFyaWFibGVzIHRoYXQgZW5hYmxlIHpvbmVpbmZvL3NyYy8qIGZp bGVzIHRvIGJlCiMgYnVpbHQgYm90aCBuYXRpdmVseSBhbmQgd2l0aCBjcm9zcy10b29scyBvbiBV bml4LgoKaW5jbHVkZSAkKFRPUERJUikvc3JjL21ha2VmaWxlLmRlZgpleHBvcnQgQ1JPU1NfQlVJ TEQKCiMgSWYgY3Jvc3MgY29tcGlsaW5nIHRoZSBuYXRpdmUgYW5kIGNyb3NzLWNvbXBpbGVyIHZl cnNpb25zIG1heSBub3QgbWF0Y2guCiMgQWxsb3cgZGlmZmVyZW50IGZsYWcgc2V0dGluZ3MgYWNj cm9yZGluZyB0aGUgY29tcGlsZXIgdmVyc2lvbi4KR0NDX01BSk9SIDo9ICQod29yZCAzLCAkKHNo ZWxsIC4uLy4uL3NyYy9taXNjLmV4ZSB8ICQoR0NDKSAtRSAtZEQgLXggYyAtIHwgZWdyZXAgJ2Rl ZmluZVwgKl9fR05VQ19fJykpCkdDQ19NSU5PUiA6PSAkKHdvcmQgMywgJChzaGVsbCAuLi8uLi9z cmMvbWlzYy5leGUgfCAkKEdDQykgLUUgLWREIC14IGMgLSB8IGVncmVwICdkZWZpbmVcICpfX0dO VUNfTUlOT1JfXycpKQpDUk9TU19HQ0NfTUFKT1IgOj0gJCh3b3JkIDMsICQoc2hlbGwgLi4vLi4v c3JjL21pc2MuZXhlIHwgJChDUk9TU19HQ0MpIC1FIC1kRCAteCBjIC0gfCBlZ3JlcCAnZGVmaW5l XCAqX19HTlVDX18nKSkKQ1JPU1NfR0NDX01JTk9SIDo9ICQod29yZCAzLCAkKHNoZWxsIC4uLy4u L3NyYy9taXNjLmV4ZSB8ICQoQ1JPU1NfR0NDKSAtRSAtZEQgLXggYyAtIHwgZWdyZXAgJ2RlZmlu ZVwgKl9fR05VQ19NSU5PUl9fJykpCgppZmVxICgkKExJQkdDQ0EpLCkKTElCR0NDQSA6PSAkKHNo ZWxsICQoQ1JPU1NfR0NDKSAkKEdDQ19PUFQpIC1wcmludC1maWxlLW5hbWU9bGliZ2NjLmEpCkxJ QkdDQ0EgOj0gJChzdWJzdCBcLC8sJChMSUJHQ0NBKSkKZXhwb3J0IExJQkdDQ0EKZW5kaWYKCmlm ZXEgKCQoREpHUFBfREpMKSwpCkRKR1BQX0RKTCA6PSAkKHNoZWxsICQoQ1JPU1NfR0NDKSAkKEdD Q19PUFQpIC1wcmludC1maWxlLW5hbWU9ZGpncHAteC5kamwpCmlmZXEgKCQoREpHUFBfREpMKSxk amdwcC14LmRqbCkKREpHUFBfREpMIDo9ICQoc2hlbGwgJChDUk9TU19HQ0MpICQoR0NDX09QVCkg LXByaW50LWZpbGUtbmFtZT1kamdwcC5kamwpCmVuZGlmCkRKR1BQX0RKTCA6PSAkKHN1YnN0IFws LywkKERKR1BQX0RKTCkpCmV4cG9ydCBESkdQUF9ESkwKZW5kaWYKCiMgQSByZXBsYWNlbWVudCBm b3IgKHBvc3NpYmx5IG1pc3NpbmcpIFVuaXggcHJvZ3JhbXM6CgpVVElMPQkJJChUT1BESVIpL3Ny Yy9taXNjLmV4ZQoKIyBJZiB5b3UgYWx3YXlzIHdhbnQgdGltZSB2YWx1ZXMgaW50ZXJwcmV0ZWQg YXMgInNlY29uZHMgc2luY2UgdGhlIGVwb2NoCiMgKG5vdCBjb3VudGluZyBsZWFwIHNlY29uZHMp IiwgdXNlCiMJUkVETz0JCXBvc2l4X29ubHkKIyBiZWxvdy4gIElmIHlvdSBhbHdheXMgd2FudCBy aWdodCB0aW1lIHZhbHVlcyBpbnRlcnByZXRlZCBhcyAic2Vjb25kcyBzaW5jZQojIHRoZSBlcG9j aCIgKGNvdW50aW5nIGxlYXAgc2Vjb25kcykiLCB1c2UKIwlSRURPPQkJcmlnaHRfb25seQojIGJl bG93LiAgSWYgeW91IHdhbnQgYm90aCBzZXRzIG9mIGRhdGEgYXZhaWxhYmxlLCB3aXRoIGxlYXAg c2Vjb25kcyBub3QKIyBjb3VudGVkIG5vcm1hbGx5LCB1c2UKIwlSRURPPQkJcG9zaXhfcmlnaHQK IyBiZWxvdy4gIElmIHlvdSB3YW50IGJvdGggc2V0cyBvZiBkYXRhIGF2YWlsYWJsZSwgd2l0aCBs ZWFwIHNlY29uZHMgY291bnRlZAojIG5vcm1hbGx5LCB1c2UKIwlSRURPPQkJcmlnaHRfcG9zaXgK IyBiZWxvdy4KIyBQT1NJWCBtYW5kYXRlcyB0aGF0IGxlYXAgc2Vjb25kcyBub3QgYmUgY291bnRl ZDsgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBpdCwKIyB1c2UgZWl0aGVyICJwb3NpeF9vbmx5IiBv ciAicG9zaXhfcmlnaHQiLgoKUkVETz0JCXBvc2l4X29ubHkKCiMgU2luY2UgIi4iIG1heSBub3Qg YmUgaW4gUEFUSC4uLgoKWUVBUklTVFlQRT0JLi95ZWFyaXN0eXBlCgojIE5vbi1kZWZhdWx0IGxp YnJhcmllcyBuZWVkZWQgdG8gbGluay4KIyBBZGQgLWxpbnRsIGlmIHlvdSB3YW50IHRvIHVzZSBg Z2V0dGV4dCcgb24gU29sYXJpcy4KTERMSUJTPQoKIyBBZGQgdGhlIGZvbGxvd2luZyB0byB0aGUg ZW5kIG9mIHRoZSAiQ0ZMQUdTPSIgbGluZSBhcyBuZWVkZWQuCiMgIC1ESEFWRV9BREpUSU1FPTAg aWYgYGFkanRpbWUnIGRvZXMgbm90IGV4aXN0IChTVlIwPykKIyAgLURIQVZFX0RPU19GSUxFX05B TUVTIGlmIGZpbGUgbmFtZXMgaGF2ZSBkcml2ZSBzcGVjaWZpZXJzIGV0Yy4gKE1TLURPUykKIyAg LURIQVZFX0dFVFRFWFQ9MSBpZiBgZ2V0dGV4dCcgd29ya3MgKEdOVSwgTGludXgsIFNvbGFyaXMp OyBhbHNvIHNlZSBMRExJQlMKIyAgLURIQVZFX0lOQ09NUEFUSUJMRV9DVElNRV9SPTEgaWYgeW91 ciBzeXN0ZW0ncyB0aW1lLmggZGVjbGFyZXMKIwljdGltZV9yIGFuZCBhc2N0aW1lX3IgaW5jb21w YXRpYmx5IHdpdGggdGhlIFBPU0lYIHN0YW5kYXJkIChTb2xhcmlzIDgpLgojICAtREhBVkVfSU5U VFlQRVNfSD0xIGlmIHlvdSBoYXZlIGEgcHJlLUM5OSBjb21waWxlciB3aXRoICJpbnR0eXBlcy5o IgojICAtREhBVkVfU0VUVElNRU9GREFZPTAgaWYgc2V0dGltZW9mZGF5IGRvZXMgbm90IGV4aXN0 IChTVlIwPykKIyAgLURIQVZFX1NFVFRJTUVPRkRBWT0xIGlmIHNldHRpbWVvZmRheSBoYXMganVz dCAxIGFyZyAoU1ZSNCkKIyAgLURIQVZFX1NFVFRJTUVPRkRBWT0yIGlmIHNldHRpbWVvZmRheSB1 c2VzIDJuZCBhcmcgKDQuM0JTRCkKIyAgLURIQVZFX1NFVFRJTUVPRkRBWT0zIGlmIHNldHRpbWVv ZmRheSBpZ25vcmVzIDJuZCBhcmcgKDQuNEJTRCkKIyAgLURIQVZFX1NURElOVF9IPTEgaWYgeW91 IGhhdmUgYSBwcmUtQzk5IGNvbXBpbGVyIHdpdGggInN0ZGludC5oIgojICAtREhBVkVfU1lNTElO Sz0wIGlmIHlvdXIgc3lzdGVtIGxhY2tzIHRoZSBzeW1saW5rIGZ1bmN0aW9uCiMgIC1ESEFWRV9T WVNfU1RBVF9IPTAgaWYgeW91ciBjb21waWxlciBsYWNrcyBhICJzeXMvc3RhdC5oIgojICAtREhB VkVfU1lTX1dBSVRfSD0wIGlmIHlvdXIgY29tcGlsZXIgbGFja3MgYSAic3lzL3dhaXQuaCIKIyAg LURIQVZFX1VOSVNURF9IPTAgaWYgeW91ciBjb21waWxlciBsYWNrcyBhICJ1bmlzdGQuaCIgKE1p Y3Jvc29mdCBDKysgNz8pCiMgIC1ESEFWRV9VVE1QWF9IPTEgaWYgeW91ciBjb21waWxlciBoYXMg YSAidXRtcHguaCIKIyAgLURMT0NBTEVfSE9NRT1cInBhdGhcIiBpZiBsb2NhbGVzIGFyZSBpbiAi cGF0aCIsIG5vdCAiL3Vzci9saWIvbG9jYWxlIgojICAtRE5PX1JVTl9USU1FX1dBUk5JTkdTX0FC T1VUX1lFQVJfMjAwMF9QUk9CTEVNU19USEFOS19ZT1U9MQojCWlmIHlvdSBkbyBub3Qgd2FudCBy dW4gdGltZSB3YXJuaW5ncyBhYm91dCBmb3JtYXRzIHRoYXQgbWF5IGNhdXNlCiMJeWVhciAyMDAw IGdyaWVmCiMgIC1EVElNRV9UX0ZMT0FUSU5HPTEgaWYgeW91ciB0aW1lX3QgKG9yIHRpbWVfdHop IGlzIGZsb2F0aW5nIHBvaW50CiMgIC1EdGltZV90ej1cIlRcIiB0byB1c2UgVCBhcyB0aGUgdGlt ZV90IHR5cGUsIHJhdGhlciB0aGFuIHRoZSBzeXN0ZW0gdGltZV90CiMgIC1EVFpfRE9NQUlOPVwi Zm9vXCIgdG8gdXNlICJmb28iIGZvciBnZXR0ZXh0IGRvbWFpbiBuYW1lOyBkZWZhdWx0IGlzICJ0 eiIKIyAgLVRUWl9ET01BSU5ESVI9XCIvcGF0aFwiIHRvIHVzZSAiL3BhdGgiIGZvciBnZXR0ZXh0 IGRpcmVjdG9yeTsKIwl0aGUgZGVmYXVsdCBpcyBzeXN0ZW0tc3VwcGxpZWQsIHR5cGljYWxseSAi L3Vzci9saWIvbG9jYWxlIgojICAtRFRaREVGUlVMRVNUUklORz1cIixkYXRlL3RpbWUsZGF0ZS90 aW1lXCIgdG8gZGVmYXVsdCB0byB0aGUgc3BlY2lmaWVkCiMJRFNUIHRyYW5zaXRpb25zIGlmIHRo ZSB0aW1lIHpvbmUgZmlsZXMgY2Fubm90IGJlIGFjY2Vzc2VkCiMgIC1EWklDX01BWF9BQkJSX0xF Tl9XT19XQVJOPTMKIwkob3Igc29tZSBvdGhlciBudW1iZXIpIHRvIHNldCB0aGUgbWF4aW11bSB0 aW1lIHpvbmUgYWJicmV2aWF0aW9uIGxlbmd0aAojCXRoYXQgemljIHdpbGwgYWNjZXB0IHdpdGhv dXQgYSB3YXJuaW5nICh0aGUgZGVmYXVsdCBpcyA2KQojICAkKEdDQ19ERUJVR19GTEFHUykgaWYg eW91IGFyZSB1c2luZyBHQ0MgYW5kIHdhbnQgbG90cyBvZiBjaGVja2luZwojR0NDX0RFQlVHX0ZM QUdTID0gLURsaW50IC1nMyAtTzMgLWZuby1jb21tb24gLWZzdHJpY3QtYWxpYXNpbmcgXAojCS1X YWxsIC1XZXh0cmEgXAojCS1XYmFkLWZ1bmN0aW9uLWNhc3QgLVdjYXN0LWFsaWduIC1XY2FzdC1x dWFsIFwKIwktV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIFwKIwktV21pc3NpbmctZGVjbGFyYXRpb25z IC1XbWlzc2luZy1ub3JldHVybiAtV21pc3NpbmctcHJvdG90eXBlcyBcCiMJLVduZXN0ZWQtZXh0 ZXJucyBcCiMJLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV25vLXNpZ24tY29tcGFyZSAtV25vLXNp Z24tY29udmVyc2lvbiBcCiMJLVduby10eXBlLWxpbWl0cyBcCiMJLVduby11bnVzZWQtcGFyYW1l dGVyIC1Xb3Zlcmxlbmd0aC1zdHJpbmdzIC1XcG9pbnRlci1hcml0aCBcCiMJLVdzaGFkb3cgLVdz dHJpY3QtcHJvdG90eXBlcyAtV3N1Z2dlc3QtYXR0cmlidXRlPWNvbnN0IFwKIwktV3N1Z2dlc3Qt YXR0cmlidXRlPW5vcmV0dXJuIC1Xc3VnZ2VzdC1hdHRyaWJ1dGU9cHVyZSAtV3RyYW1wb2xpbmVz IFwKIwktV3dyaXRlLXN0cmluZ3MKCkNPTU1PTl9ERUJVR19GTEFHUyA9IC1EbGludCAtZyAtZm5v LWNvbW1vbiAtZnN0cmljdC1hbGlhc2luZyBcCgktV2FsbCAtVyAtV2Nhc3QtYWxpZ24gLVdjYXN0 LXF1YWwgLVdwb2ludGVyLWFyaXRoIFwKCS1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5n LXByb3RvdHlwZXMgLVdzdHJpY3QtcHJvdG90eXBlcyBcCgktV25lc3RlZC1leHRlcm5zIC1Xc2hh ZG93IC1Xd3JpdGUtc3RyaW5ncwoKIyBDcm9zcyBjb21waWxlciBkZWJ1ZyBmbGFncy4KaWZlcSAo JChmaWx0ZXIgMiwkKENST1NTX0dDQ19NQUpPUikpLCkKIyBnY2MgPj0gMy54CkNST1NTX0dDQzNf REZMQUdTID0gLVdiYWQtZnVuY3Rpb24tY2FzdCAtV25vLXNpZ24tY29tcGFyZSAtV25vLXVudXNl ZC1wYXJhbWV0ZXIKaWZlcSAoJChmaWx0ZXIgMywkKENST1NTX0dDQ19NQUpPUikpLCkKaWZlcSAo JChmaWx0ZXIgNCwkKENST1NTX0dDQ19NQUpPUikpLCkKIyBnY2MgPj0gNS54CkNST1NTX0dDQzRf REZMQUdTID0gLVduby10eXBlLWxpbWl0cwplbHNlCiMgZ2NjID49IDQueAppZmVxICgkKGZpbHRl ciAwIDEgMiwkKENST1NTX0dDQ19NSU5PUikpLCkKIyBnY2MgPj0gNC4zCkNST1NTX0dDQzRfREZM QUdTID0gLVduby10eXBlLWxpbWl0cwplbmRpZgplbmRpZgplbmRpZgplbmRpZgpDUk9TU19HQ0Nf REVCVUdfRkxBR1MgPSAkKENPTU1PTl9ERUJVR19GTEFHUykgJChDUk9TU19HQ0MzX0RGTEFHUykg JChDUk9TU19HQ0M0X0RGTEFHUykKCiMgTmF0aXZlIGNvbXBpbGVyIGRlYnVnIGZsYWdzLgppZmVx ICgkKGZpbHRlciAyLCQoR0NDX01BSk9SKSksKQojIGdjYyA+PSAzLngKR0NDM19ERUJVR19GTEFH UyA9IC1XYmFkLWZ1bmN0aW9uLWNhc3QgLVduby1zaWduLWNvbXBhcmUgLVduby11bnVzZWQtcGFy YW1ldGVyCmlmZXEgKCQoZmlsdGVyIDMsJChHQ0NfTUFKT1IpKSwpCmlmZXEgKCQoZmlsdGVyIDQs JChHQ0NfTUFKT1IpKSwpCiMgZ2NjID49IDUueApHQ0M0X0RFQlVHX0ZMQUdTID0gLVduby10eXBl LWxpbWl0cwplbHNlCiMgZ2NjID49IDQueAppZmVxICgkKGZpbHRlciAwIDEgMiwkKEdDQ19NSU5P UikpLCkKIyBnY2MgPj0gNC4zCkdDQzRfREVCVUdfRkxBR1MgPSAtV25vLXR5cGUtbGltaXRzCmVu ZGlmCmVuZGlmCmVuZGlmCmVuZGlmCkdDQ19ERUJVR19GTEFHUyA9ICQoQ09NTU9OX0RFQlVHX0ZM QUdTKSAkKEdDQzNfREVCVUdfRkxBR1MpICQoR0NDNF9ERUJVR19GTEFHUykKCiMKIyBJZiB5b3Ug d2FudCB0byB1c2UgU3lzdGVtIFYgY29tcGF0aWJpbGl0eSBjb2RlLCBhZGQKIwktRFVTR19DT01Q QVQKIyB0byB0aGUgZW5kIG9mIHRoZSAiQ0ZMQUdTPSIgbGluZS4gIFRoaXMgYXJyYW5nZSBmb3Ig InRpbWV6b25lIiBhbmQgImRheWxpZ2h0IgojIHZhcmlhYmxlcyB0byBiZSBrZXB0IHVwLXRvLWRh dGUgYnkgdGhlIHRpbWUgY29udmVyc2lvbiBmdW5jdGlvbnMuICBOZWl0aGVyCiMgInRpbWV6b25l IiBub3IgImRheWxpZ2h0IiBpcyBkZXNjcmliZWQgaW4gWDNKMTEncyB3b3JrLgojCiMgSWYgeW91 ciBzeXN0ZW0gaGFzIGEgIkdNVCBvZmZzZXQiIGZpZWxkIGluIGl0cyAic3RydWN0IHRtInMKIyAo b3IgaWYgeW91IGRlY2lkZSB0byBhZGQgc3VjaCBhIGZpZWxkIGluIHlvdXIgc3lzdGVtJ3MgInRp bWUuaCIgZmlsZSksCiMgYWRkIHRoZSBuYW1lIHRvIGEgZGVmaW5lIHN1Y2ggYXMKIwktRFRNX0dN VE9GRj10bV9nbXRvZmYKIyBvcgojCS1EVE1fR01UT0ZGPV90bV9nbXRvZmYKIyB0byB0aGUgZW5k IG9mIHRoZSAiQ0ZMQUdTPSIgbGluZS4KIyBOZWl0aGVyIHRtX2dtdG9mZiBub3IgX3RtX2dtdG9m ZiBpcyBkZXNjcmliZWQgaW4gWDNKMTEncyB3b3JrOwojIGluIGl0cyB3b3JrLCB1c2Ugb2YgInRt X2dtdG9mZiIgaXMgZGVzY3JpYmVkIGFzIG5vbi1jb25mb3JtaW5nLgojIEJvdGggTGludXggYW5k IEJTRCBoYXZlIGRvbmUgdGhlIGVxdWl2YWxlbnQgb2YgZGVmaW5pbmcgVE1fR01UT0ZGIGluCiMg dGhlaXIgcmVjZW50IHJlbGVhc2VzLgojCiMgSWYgeW91ciBzeXN0ZW0gaGFzIGEgInpvbmUgYWJi cmV2aWF0aW9uIiBmaWVsZCBpbiBpdHMgInN0cnVjdCB0bSJzCiMgKG9yIGlmIHlvdSBkZWNpZGUg dG8gYWRkIHN1Y2ggYSBmaWVsZCBpbiB5b3VyIHN5c3RlbSdzICJ0aW1lLmgiIGZpbGUpLAojIGFk ZCB0aGUgbmFtZSB0byBhIGRlZmluZSBzdWNoIGFzCiMJLURUTV9aT05FPXRtX3pvbmUKIyBvcgoj CS1EVE1fWk9ORT1fdG1fem9uZQojIHRvIHRoZSBlbmQgb2YgdGhlICJDRkxBR1M9IiBsaW5lLgoj IE5laXRoZXIgdG1fem9uZSBub3IgX3RtX3pvbmUgaXMgZGVzY3JpYmVkIGluIFgzSjExJ3Mgd29y azsKIyBpbiBpdHMgd29yaywgdXNlIG9mICJ0bV96b25lIiBpcyBkZXNjcmliZWQgYXMgbm9uLWNv bmZvcm1pbmcuCiMgQm90aCBVQ0IgYW5kIFN1biBoYXZlIGRvbmUgdGhlIGVxdWl2YWxlbnQgb2Yg ZGVmaW5pbmcgVE1fWk9ORSBpbgojIHRoZWlyIHJlY2VudCByZWxlYXNlcy4KIwojIElmIHlvdSB3 YW50IGZ1bmN0aW9ucyB0aGF0IHdlcmUgaW5zcGlyZWQgYnkgZWFybHkgdmVyc2lvbnMgb2YgWDNK MTEncyB3b3JrLAojIGFkZAojCS1EU1REX0lOU1BJUkVECiMgdG8gdGhlIGVuZCBvZiB0aGUgIkNG TEFHUz0iIGxpbmUuICBUaGlzIGFycmFuZ2VzIGZvciB0aGUgZnVuY3Rpb25zCiMgInR6c2V0d2Fs bCIsICJvZmZ0aW1lIiwgInRpbWVsb2NhbCIsICJ0aW1lZ20iLCAidGltZW9mZiIsCiMgInBvc2l4 MnRpbWUiLCBhbmQgInRpbWUycG9zaXgiIHRvIGJlIGFkZGVkIHRvIHRoZSB0aW1lIGNvbnZlcnNp b24gbGlicmFyeS4KIyAidHpzZXR3YWxsIiBpcyBsaWtlICJ0enNldCIgZXhjZXB0IHRoYXQgaXQg YXJyYW5nZXMgZm9yIGxvY2FsIHdhbGwgY2xvY2sKIyB0aW1lIChyYXRoZXIgdGhhbiB0aGUgdGlt ZSBzcGVjaWZpZWQgaW4gdGhlIFRaIGVudmlyb25tZW50IHZhcmlhYmxlKQojIHRvIGJlIHVzZWQu CiMgIm9mZnRpbWUiIGlzIGxpa2UgImdtdGltZSIgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBhIHNl Y29uZCAobG9uZykgYXJndW1lbnQKIyB0aGF0IGdpdmVzIGFuIG9mZnNldCB0byBhZGQgdG8gdGhl IHRpbWVfdCB3aGVuIGNvbnZlcnRpbmcgaXQuCiMgInRpbWVsb2NhbCIgaXMgZXF1aXZhbGVudCB0 byAibWt0aW1lIi4KIyAidGltZWdtIiBpcyBsaWtlICJ0aW1lbG9jYWwiIGV4Y2VwdCB0aGF0IGl0 IHR1cm5zIGEgc3RydWN0IHRtIGludG8KIyBhIHRpbWVfdCB1c2luZyBVVEMgKHJhdGhlciB0aGFu IGxvY2FsIHRpbWUgYXMgInRpbWVsb2NhbCIgZG9lcykuCiMgInRpbWVvZmYiIGlzIGxpa2UgInRp bWVnbSIgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBhIHNlY29uZCAobG9uZykgYXJndW1lbnQKIyB0 aGF0IGdpdmVzIGFuIG9mZnNldCB0byB1c2Ugd2hlbiBjb252ZXJ0aW5nIHRvIGEgdGltZV90Lgoj ICJwb3NpeDJ0aW1lIiBhbmQgInRpbWUycG9zaXgiIGFyZSBkZXNjcmliZWQgaW4gYW4gaW5jbHVk ZWQgbWFudWFsIHBhZ2UuCiMgWDNKMTEncyB3b3JrIGRvZXMgbm90IGRlc2NyaWJlIGFueSBvZiB0 aGVzZSBmdW5jdGlvbnMuCiMgU3VuIGhhcyBwcm92aWRlZCAidHpzZXR3YWxsIiwgInRpbWVsb2Nh bCIsIGFuZCAidGltZWdtIiBpbiBTdW5PUyA0LjAuCiMgVGhlc2UgZnVuY3Rpb25zIG1heSB3ZWxs IGRpc2FwcGVhciBpbiBmdXR1cmUgcmVsZWFzZXMgb2YgdGhlIHRpbWUKIyBjb252ZXJzaW9uIHBh Y2thZ2UuCiMKIyBJZiB5b3UnbGwgbmV2ZXIgd2FudCB0byBoYW5kbGUgc29sYXItdGltZS1iYXNl ZCB0aW1lIHpvbmVzLCBhZGQKIwktRE5PU09MQVIKIyB0byB0aGUgZW5kIG9mIHRoZSAiQ0ZMQUdT PSIgbGluZQojIChhbmQgY29tbWVudCBvdXQgdGhlICJTREFUQT0iIGxpbmUgYmVsb3cpLgojIFRo aXMgcmVkdWNlcyAoc2xpZ2h0bHkpIHRoZSBydW4tdGltZSBkYXRhLXNwYWNlIHJlcXVpcmVtZW50 cyBvZgojIHRoZSB0aW1lIGNvbnZlcnNpb24gZnVuY3Rpb25zOyBpdCBtYXkgcmVkdWNlIHRoZSBh Y2NlcHRhYmlsaXR5IG9mIHlvdXIgc3lzdGVtCiMgdG8gZm9sa3MgaW4gb2lsLSBhbmQgY2FzaC1y aWNoIHBsYWNlcy4KIwojIElmIHlvdSB3YW50IHRvIGFsbG9jYXRlIHN0YXRlIHN0cnVjdHVyZXMg aW4gbG9jYWx0aW1lLCBhZGQKIwktREFMTF9TVEFURQojIHRvIHRoZSBlbmQgb2YgdGhlICJDRkxB R1M9IiBsaW5lLiAgU3RvcmFnZSBpcyBvYnRhaW5lZCBieSBjYWxsaW5nIG1hbGxvYy4KIwojIElm IHlvdSB3YW50IGFuICJhbHR6b25lIiB2YXJpYWJsZSAoYSBsYSBTeXN0ZW0gViBSZWxlYXNlIDMu MSksIGFkZAojCS1EQUxUWk9ORQojIHRvIHRoZSBlbmQgb2YgdGhlICJDRkxBR1M9IiBsaW5lLgoj IFRoaXMgdmFyaWFibGUgaXMgbm90IGRlc2NyaWJlZCBpbiBYM0oxMSdzIHdvcmsuCiMKIyBJZiB5 b3Ugd2FudCBhICJndGltZSIgZnVuY3Rpb24gKGEgbGEgTUFDSCksIGFkZAojCS1EQ01VQ1MKIyB0 byB0aGUgZW5kIG9mIHRoZSAiQ0ZMQUdTPSIgbGluZQojIFRoaXMgZnVuY3Rpb24gaXMgbm90IGRl c2NyaWJlZCBpbiBYM0oxMSdzIHdvcmsuCiMKIyBOSVNULVBDVFM6MTUxLTIsIFZlcnNpb24gMS40 LCAoMTk5My0xMi0wMykgaXMgYSB0ZXN0IHN1aXRlIHB1dAojIG91dCBieSB0aGUgTmF0aW9uYWwg SW5zdGl0dXRlIG9mIFN0YW5kYXJkcyBhbmQgVGVjaG5vbG9neQojIHdoaWNoIGNsYWltcyB0byB0 ZXN0IEMgYW5kIFBvc2l4IGNvbmZvcm1hbmNlLiAgSWYgeW91IHdhbnQgdG8gcGFzcyBQQ1RTLCBh ZGQKIwktRFBDVFMKIyB0byB0aGUgZW5kIG9mIHRoZSAiQ0ZMQUdTPSIgbGluZS4KIwojIElmIHlv dSB3YW50IHN0cmljdCBjb21wbGlhbmNlIHdpdGggWFBHNCBhcyBvZiAxOTk0LTA0LTA5LCBhZGQK IwktRFhQRzRfMTk5NF8wNF8wOQojIHRvIHRoZSBlbmQgb2YgdGhlICJDRkxBR1M9IiBsaW5lLiAg VGhpcyBjYXVzZXMgInN0cmZ0aW1lIiB0byBhbHdheXMgcmV0dXJuCiMgNTMgYXMgYSB3ZWVrIG51 bWJlciAocmF0aGVyIHRoYW4gNTIgb3IgNTMpIGZvciB0aG9zZSBkYXlzIGluIEphbnVhcnkgdGhh dAojIGJlZm9yZSB0aGUgZmlyc3QgTW9uZGF5IGluIEphbnVhcnkgd2hlbiBhICIlViIgZm9ybWF0 IGlzIHVzZWQgYW5kIEphbnVhcnkgMQojIGZhbGxzIG9uIGEgRnJpZGF5LCBTYXR1cmRheSwgb3Ig U3VuZGF5LgoKIyBJZiBjcm9zcyBjb21waWxpbmcgdGhlIG5hdGl2ZSBhbmQgY3Jvc3MtY29tcGls ZXIgdmVyc2lvbnMgbWF5IG5vdCBtYXRjaC4KIyBBbGxvdyBkaWZmZXJlbnQgZmxhZyBzZXR0aW5n cyBhY2Nyb3JkaW5nIHRoZSBjb21waWxlciB2ZXJzaW9uLgojIEZsYWdzIGZvciBjcm9zcyBjb21w aWxlcgpDRkxBR1M9CQktREhBVkVfQURKVElNRT0wIC1ESEFWRV9MT05HX0RPVUJMRT0xIC1ESEFW RV9TRVRUSU1FT0ZEQVk9MSBcCgkJLURIQVZFX1NUUkVSUk9SPTEgLURIQVZFX1NZTUxJTks9MCAt REhBVkVfU1RESU5UX0g9MVwKCQktRFNURF9JTlNQSVJFRCBcCgkJLURMT0NBTEVfSE9NRT1cIi9k ZXYvZW52L0RKRElSfmM6L2RqZ3Bwfi9zaGFyZS9sb2NhbGVcIiBcCgkJJChDUk9TU19HQ0NfREVC VUdfRkxBR1MpIC1PMiAtbm9zdGRpbmMgLUkkKFRPUERJUikvaW5jbHVkZQoKIyBGbGFncyBmb3Ig bmF0aXZlIGNvbXBpbGVyCkdDQ0ZMQUdTPQktREhBVkVfQURKVElNRT0wIC1ESEFWRV9MT05HX0RP VUJMRT0xIC1ESEFWRV9TRVRUSU1FT0ZEQVk9MSBcCgkJLURIQVZFX1NUUkVSUk9SPTEgLURIQVZF X1NZTUxJTks9MCAtREhBVkVfU1RESU5UX0g9MSBcCgkJLURTVERfSU5TUElSRUQgXAoJCS1ETE9D QUxFX0hPTUU9XCIvZGV2L2Vudi9ESkRJUn5jOi9kamdwcH4vc2hhcmUvbG9jYWxlXCIgXAoJCSQo R0NDX0RFQlVHX0ZMQUdTKSAtTzIKCiMgRG9uJ3QgdXNlIC1zIGhlcmUsIHNpbmNlICJnY2MgLXMi IG9uIERKJ3MgSXJpeCBtYWNoaW5lIGR1bXBzIGNvcmUKIyB3aGVuIGludm9rZWQgd2l0aCAtcy4g IFRvIHdvcmsgYXJvdW5kLCB3ZSB1c2Ugc3RyaXAgZXhwbGljaXRseS4KTEZMQUdTPQoKIyBMaW5r ZXIgZmxhZ3MuICBEZWZhdWx0IHRvICQoTEZMQUdTKSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxp dHkKIyB0byB0emNvZGUyMDEyaCBhbmQgZWFybGllci4KCkxERkxBR1M9CSQoTEZMQUdTKQoKRVhF RVhUPQkJLmV4ZQpIT1NUX1pJQz0JJChUT1BESVIpL2hvc3RiaW4vemljJChFWEVFWFQpCmlmZXEg KCQoQ1JPU1NfQlVJTEQpLDEpCnppYz0JCSQoSE9TVF9aSUMpCmVsc2UKemljPQkJemljJChFWEVF WFQpCmVuZGlmClpJQz0JCSQoemljKSAkKFpGTEFHUykKCiMgVGhlIG5hbWUgb2YgYSBQb3NpeC1j b21wbGlhbnQgYGF3aycgb24geW91ciBzeXN0ZW0uCkFXSz0JCWdhd2sKCiMgVGhlIGZ1bGwgcGF0 aCBuYW1lIG9mIGEgUG9zaXgtY29tcGxpYW50IHNoZWxsIHRoYXQgc3VwcG9ydHMgdGhlIEtvcm4g c2hlbGwncwojICdzZWxlY3QnIHN0YXRlbWVudCwgYXMgYW4gZXh0ZW5zaW9uLiAgVGhlc2UgZGF5 cywgQmFzaCBpcyB0aGUgbW9zdCBwb3B1bGFyLgpLU0hFTEw9CQkvYmluL2Jhc2gKCiMgVGhlIHBh dGggd2hlcmUgU0dNTCBEVERzIGFyZSBrZXB0LgojIFRoZSBkZWZhdWx0IGlzIGFwcHJvcHJpYXRl IGZvciBVYnVudHUgMTIuMTAuClNHTUxfVE9QRElSPSAvdXNyClNHTUxfRFRERElSPSAkKFNHTUxf VE9QRElSKS9zaGFyZS94bWwvdzNjLXNnbWwtbGliL3NjaGVtYS9kdGQKU0dNTF9TRUFSQ0hfUEFU SD0gJChTR01MX0RURERJUikvUkVDLWh0bWw0MDEtMTk5OTEyMjQKCiMgVGhlIGNhdGFsb2cgZmls ZShzKSB0byB1c2Ugd2hlbiB2YWxpZGF0aW5nLgpTR01MX0NBVEFMT0dfRklMRVM9IEhUTUw0LmNh dAoKIyBUaGUgbmFtZSwgYXJndW1lbnRzIGFuZCBlbnZpcm9ubWVudCBvZiBhIHByb2dyYW0gdG8g dmFsaWRhdGUgeW91ciB3ZWIgcGFnZXMuCiMgU2VlIDxodHRwOi8vd3d3LmpjbGFyay5jb20vc3Av PiBmb3IgYSB2YWxpZGF0b3IsIGFuZAojIDxodHRwOi8vdmFsaWRhdG9yLnczLm9yZy9zb3VyY2Uv PiBmb3IgYSB2YWxpZGF0aW9uIGxpYnJhcnkuClZBTElEQVRFID0gbnNnbWxzClZBTElEQVRFX0ZM QUdTID0gLXMgLUIgLXdhbGwgLXduby11bnVzZWQtcGFyYW0KVkFMSURBVEVfRU5WID0gXAogIFNH TUxfQ0FUQUxPR19GSUxFUz0kKFNHTUxfQ0FUQUxPR19GSUxFUykgXAogIFNHTUxfU0VBUkNIX1BB VEg9JChTR01MX1NFQVJDSF9QQVRIKSBcCiAgU1BfQ0hBUlNFVF9GSVhFRD1ZRVMgXAogIFNQX0VO Q09ESU5HPVVURi04CgojIElOVkFMSURfQ0hBUiBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0 IG1hdGNoZXMgaW52YWxpZCBjaGFyYWN0ZXJzIGluCiMgZGlzdHJpYnV0ZWQgZmlsZXMuICBGb3Ig bm93LCBzdGljayB0byBhIHNhZmUgc3Vic2V0IG9mIEFTQ0lJLgojIFRoZSBjYWxsZXIgbXVzdCBz ZXQgdGhlIHNoZWxsIHZhcmlhYmxlICdzaGFycCcgdG8gdGhlIGNoYXJhY3RlciAnIycsCiMgc2lu Y2UgTWFrZWZpbGUgbWFjcm9zIGNhbm5vdCBjb250YWluICcjJy4KIyBUQUJfQ0hBUiBpcyBhIHNp bmdsZSB0YWIgY2hhcmFjdGVyLCBpbiBzaW5nbGUgcXVvdGVzLgpUQUJfQ0hBUj0JJwknCklOVkFM SURfQ0hBUjE9CSQoVEFCX0NIQVIpJyAhXCInJCRzaGFycCckJCUmJ1wnJygpKissLi8wMTIzNDU2 Nzg5Ojs8PT4/QCcKSU5WQUxJRF9DSEFSMj0JJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xc Xl9gJwpJTlZBTElEX0NIQVIzPQknYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+JwpJTlZB TElEX0NIQVI9CSdbXl0nJChJTlZBTElEX0NIQVIxKSQoSU5WQUxJRF9DSEFSMikkKElOVkFMSURf Q0hBUjMpJy1dJwoKIyBGbGFncyB0byBnaXZlICd0YXInIHdoZW4gbWFraW5nIGEgZGlzdHJpYnV0 aW9uLgojIFRyeSB0byB1c2UgZmxhZ3MgYXBwcm9wcmlhdGUgZm9yIEdOVSB0YXIuCkdOVVRBUkZM QUdTPQktLW51bWVyaWMtb3duZXIgLS1vd25lcj0wIC0tZ3JvdXA9MCAtLW1vZGU9Z28rdSxnby13 ClRBUkZMQUdTPQlgaWYgdGFyICQoR05VVEFSRkxBR1MpIC0tdmVyc2lvbiA+L2Rldi9udWxsIDI+ JjE7IFwKCQkgdGhlbiBlY2hvICQoR05VVEFSRkxBR1MpOyBcCgkJIGVsc2UgOjsgXAoJCSBmaWAK CiMgRmxhZ3MgdG8gZ2l2ZSAnZ3ppcCcgd2hlbiBtYWtpbmcgYSBkaXN0cmlidXRpb24uCkdaSVBG TEFHUz0JLTluCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpjYz0JCSQoQ1JPU1NfR0NDKQpDQz0J CSQoY2MpIC1EVFpESVI9XCIvZGV2L2Vudi9ESkRJUn5jOi9kamdwcH4vem9uZWluZm9cIgoKVFpD U1JDUz0JemljLmMgbG9jYWx0aW1lLmMgYXNjdGltZS5jIHNjaGVjay5jIGlhbGxvYy5jClRaQ09C SlM9CXppYy5vIGxvY2FsdGltZS5vIGFzY3RpbWUubyBzY2hlY2subyBpYWxsb2MubwpUWkRTUkNT PQl6ZHVtcC5jIGxvY2FsdGltZS5jIGlhbGxvYy5jClRaRE9CSlM9CXpkdW1wLm8gbG9jYWx0aW1l Lm8gaWFsbG9jLm8KREFURVNSQ1M9CWRhdGUuYyBsb2NhbHRpbWUuYyBsb2d3dG1wLmMgc3RyZnRp bWUuYyBhc2N0aW1lLmMKREFURU9CSlM9CWRhdGUubyBsb2NhbHRpbWUubyBsb2d3dG1wLm8gc3Ry ZnRpbWUubyBhc2N0aW1lLm8KTElCU1JDUz0JbG9jYWx0aW1lLmMgYXNjdGltZS5jIGRpZmZ0aW1l LmMKTElCT0JKUz0JbG9jYWx0aW1lLm8gYXNjdGltZS5vIGRpZmZ0aW1lLm8KSEVBREVSUz0JdHpm aWxlLmggcHJpdmF0ZS5oCk5PTkxJQlNSQ1M9CXppYy5jIHpkdW1wLmMgc2NoZWNrLmMgaWFsbG9j LmMKTkVXVUNCU1JDUz0JZGF0ZS5jIGxvZ3d0bXAuYyBzdHJmdGltZS5jClNPVVJDRVM9CSQoSEVB REVSUykgJChMSUJTUkNTKSAkKE5PTkxJQlNSQ1MpICQoTkVXVUNCU1JDUykgdHpzZWxlY3Qua3No Ck1BTlM9CQluZXdjdGltZS4zIG5ld3N0cmZ0aW1lLjMgbmV3dHpzZXQuMyB0aW1lMnBvc2l4LjMg XAoJCQl0emZpbGUuNSB0enNlbGVjdC44IHppYy44IHpkdW1wLjgKQ09NTU9OPQkJTWFrZWZpbGUK RE9DUz0JCVJFQURNRSBUaGVvcnkgJChNQU5TKSBkYXRlLjEKUFJJTUFSWV9ZREFUQT0JYWZyaWNh IGFudGFyY3RpY2EgYXNpYSBhdXN0cmFsYXNpYSBcCgkJZXVyb3BlIG5vcnRoYW1lcmljYSBzb3V0 aGFtZXJpY2EKWURBVEE9CQkkKFBSSU1BUllfWURBVEEpIHBhY2lmaWNuZXcgZXRjZXRlcmEgYmFj a3dhcmQKTkRBVEE9CQlzeXN0ZW12IGZhY3RvcnkKU0RBVEE9CQlzb2xhcjg3IHNvbGFyODggc29s YXI4OQpUREFUQT0JCSQoWURBVEEpICQoTkRBVEEpICQoU0RBVEEpClRBQkRBVEE9CWlzbzMxNjYu dGFiIHpvbmUudGFiCkRBVEE9CQkkKFlEQVRBKSAkKE5EQVRBKSAkKFNEQVRBKSAkKFRBQkRBVEEp IGxlYXBzZWNvbmRzIHllYXJpc3R5cGUuc2gKV0VCX1BBR0VTPQl0ei1hcnQuaHRtIHR6LWxpbmsu aHRtCk1JU0M9CQl1c25vMTk4OCB1c25vMTk4OSB1c25vMTk4OWEgdXNubzE5OTUgdXNubzE5OTcg dXNubzE5OTggXAoJCQkkKFdFQl9QQUdFUykgY2hlY2t0YWIuYXdrIHdvcmttYW4uc2ggXAoJCQl6 b25laW5mbzJ0ZGYucGwKRU5DSElMQURBPQkkKENPTU1PTikgJChET0NTKSAkKFNPVVJDRVMpICQo REFUQSkgJChNSVNDKQoKIyBBbmQgZm9yIHRoZSBiZW5lZml0IG9mIGNzaCB1c2VycyBvbiBzeXN0 ZW1zIHRoYXQgYXNzdW1lIHRoZSB1c2VyCiMgc2hlbGwgc2hvdWxkIGJlIHVzZWQgdG8gaGFuZGxl IGNvbW1hbmRzIGluIE1ha2VmaWxlcy4gLiAuCgpTSEVMTD0JCS9iaW4vc2gKCklOU1RBTEw6CUFM TCBpbnN0YWxsIGRhdGUuMQoJCS0kKFVUSUwpIG1rZGlyICQoVE9QRElSKQoJCS0kKFVUSUwpIG1r ZGlyICQoQklORElSKQoJCSQoVVRJTCkgY3AgZGF0ZSQoRVhFRVhUKSAkKEJJTkRJUikvZGF0ZSQo RVhFRVhUKQoJCS0kKFVUSUwpIG1rZGlyICQoU0hBUkVESVIpCgkJLSQoVVRJTCkgbWtkaXIgJChN QU5ESVIpCgkJLSQoVVRJTCkgbWtkaXIgJChNQU5ESVIpL2NhdDEKCQktJChVVElMKSBybSAkKE1B TkRJUikvY2F0MS9kYXRlLjEKCQktZ3JvZmYgLW1tYW4gLVRhc2NpaSBkYXRlLjEgPiBkYXRlLm1h bgoJCSQoVVRJTCkgY3AgZGF0ZS5tYW4gJChNQU5ESVIpL2NhdDEvZGF0ZS4xCgppbnN0YWxsOglh bGwgJChEQVRBKSAkKFJFRE8pICQoVFpMSUIpICQoTUFOUykgJChUQUJEQVRBKQoJCSQoWklDKSAt eSAkKFlFQVJJU1RZUEUpIFwKCQkJLWQgJChUWkRJUikgLWwgJChMT0NBTFRJTUUpIC1wICQoUE9T SVhSVUxFUykKCQktJChVVElMKSBybSAtZiAkKFRaRElSKS9pc28zMTY2LnRhYiAkKFRaRElSKS96 b25lLnRhYgoJCSQoVVRJTCkgY3AgaXNvMzE2Ni50YWIgJChUWkRJUikvaXNvMzE2Ni50YWIKCQkk KFVUSUwpIGNwIHpvbmUudGFiICQoVFpESVIpL3pvbmUudGFiCgkJLSQoVVRJTCkgbWtkaXIgJChU T1BESVIpCgkJLSQoVVRJTCkgbWtkaXIgJChFVENESVIpCgkJJChVVElMKSBjcCB6aWMkKEVYRUVY VCkgJChFVENESVIpL3ppYyQoRVhFRVhUKQoJCSQoVVRJTCkgY3AgemR1bXAkKEVYRUVYVCkgJChF VENESVIpL3pkdW1wJChFWEVFWFQpCgkJJChVVElMKSBjcCB0enNlbGVjdCAkKEVUQ0RJUikvdHpz ZWxlY3QKCQktJChVVElMKSBta2RpciAkKFNIQVJFRElSKQoJCS0kKFVUSUwpIG1rZGlyICQoTUFO RElSKQoJCS0kKFVUSUwpIG1rZGlyICQoTUFORElSKS9jYXQzCgkJLSQoVVRJTCkgbWtkaXIgJChN QU5ESVIpL2NhdDUKCQktJChVVElMKSBta2RpciAkKE1BTkRJUikvY2F0OAoJCS0kKFVUSUwpIHJt IC1mICQoTUFORElSKS9jYXQzL25ld2N0aW1lLjMgXAoJCQkkKE1BTkRJUikvY2F0My9uZXd0enNl dC4zIFwKCQkJJChNQU5ESVIpL2NhdDUvdHpmaWxlLjUgXAoJCQkkKE1BTkRJUikvY2F0OC90enNl bGVjdC44IFwKCQkJJChNQU5ESVIpL2NhdDgvemR1bXAuOCBcCgkJCSQoTUFORElSKS9jYXQ4L3pp Yy44CgkJLWdyb2ZmIC1tbWFuIC1UYXNjaWkgbmV3Y3RpbWUuMyA+IG5ld2N0aW1lLm1hbgoJCS1n cm9mZiAtbW1hbiAtVGFzY2lpIG5ld3R6c2V0LjMgPiBuZXd0enNldC5tYW4KCQktZ3JvZmYgLW1t YW4gLVRhc2NpaSB0aW1lMnBvc2l4LjMgPiB0aW1lMnBvc2l4Lm1hbgoJCS1ncm9mZiAtbW1hbiAt VGFzY2lpIHR6ZmlsZS41ID4gdHpmaWxlLm1hbgoJCS1ncm9mZiAtbW1hbiAtVGFzY2lpIHR6c2Vs ZWN0LjggPiB0enNlbGVjdC5tYW4KCQktZ3JvZmYgLW1tYW4gLVRhc2NpaSB6ZHVtcC44ID4gemR1 bXAubWFuCgkJLWdyb2ZmIC1tbWFuIC1UYXNjaWkgemljLjggPiB6aWMubWFuCgkJJChVVElMKSBj cCBuZXdjdGltZS5tYW4gJChNQU5ESVIpL2NhdDMvbmV3Y3RpbWUuMwoJCSQoVVRJTCkgY3AgbmV3 dHpzZXQubWFuICQoTUFORElSKS9jYXQzL25ld3R6c2V0LjMKCQkkKFVUSUwpIGNwIHRpbWUycG9z aXgubWFuICQoTUFORElSKS9jYXQzL3RpbWUycG9zaXguMwoJCSQoVVRJTCkgY3AgdHpmaWxlLm1h biAkKE1BTkRJUikvY2F0NS90emZpbGUuNQoJCSQoVVRJTCkgY3AgdHpzZWxlY3QubWFuICQoTUFO RElSKS9jYXQ4L3R6c2VsZWN0LjgKCQkkKFVUSUwpIGNwIHpkdW1wLm1hbiAkKE1BTkRJUikvY2F0 OC96ZHVtcC44CgkJJChVVElMKSBjcCB6aWMubWFuICQoTUFORElSKS9jYXQ4L3ppYy44CgphbGw6 CQl0enNlbGVjdCAkKEhPU1RfWklDKSB6aWMkKEVYRUVYVCkgemR1bXAkKEVYRUVYVCkgJChMSUJP QkpTKQoKQUxMOgkJYWxsIGRhdGUkKEVYRUVYVCkKCnZlcnNpb24uaDoKCQkoZWNobyAnc3RhdGlj IGNoYXIgY29uc3QgUEtHVkVSU0lPTltdPSIoJChQQUNLQUdFKSkgIjsnICYmIFwKCQkgZWNobyAn c3RhdGljIGNoYXIgY29uc3QgVFpWRVJTSU9OW109IiQoVkVSU0lPTikiOycgJiYgXAoJCSBlY2hv ICdzdGF0aWMgY2hhciBjb25zdCBSRVBPUlRfQlVHU19UT1tdPSIkKEJVR0VNQUlMKSI7JykgPiRA Cgp6ZHVtcCQoRVhFRVhUKToJJChUWkRPQkpTKSAkKFRPUERJUikvbGliL2NydDAubyAkKFRPUERJ UikvbGliL2xpYmMuYQoJCSQoQ1JPU1NfTEQpIC1zICQoTERGTEFHUykgJChUT1BESVIpL2xpYi9j cnQwLm8gJChUWkRPQkpTKSAtbyAkQCAkKFRPUERJUikvbGliL2xpYmMuYSAkKExJQkdDQ0EpIC1U ICQoREpHUFBfREpMKQoJCSQoVE9QRElSKS9ob3N0YmluL3N0dWJpZnkuZXhlICRACgokKEhPU1Rf WklDKToJJChUWkNTUkNTKSB5ZWFyaXN0eXBlIHZlcnNpb24uaAoJCSQoR0NDKSAtRFRaRElSPVwi L2Rldi9lbnYvREpESVJ+YzovZGpncHB+L3pvbmVpbmZvXCIgXAoJCSQoR0NDRkxBR1MpICQoTERG TEFHUykgJChUWkNTUkNTKSAkKExETElCUykgLW8gJEAKCQkkKFNUUklQKSAkQAoKemljJChFWEVF WFQpOgkkKFRaQ09CSlMpICQoVE9QRElSKS9saWIvY3J0MC5vICQoVE9QRElSKS9saWIvbGliYy5h IHllYXJpc3R5cGUKCQkkKENST1NTX0xEKSAtcyAkKExERkxBR1MpICQoVE9QRElSKS9saWIvY3J0 MC5vICQoVFpDT0JKUykgLW8gJEAgJChUT1BESVIpL2xpYi9saWJjLmEgJChMSUJHQ0NBKSAtVCAk KERKR1BQX0RKTCkKCQkkKFRPUERJUikvaG9zdGJpbi9zdHViaWZ5LmV4ZSAkQAoKeWVhcmlzdHlw ZToJeWVhcmlzdHlwZS5zaAoJCSQoVVRJTCkgY3AgeWVhcmlzdHlwZS5zaCB5ZWFyaXN0eXBlCgpw b3NpeF9vbmx5OgkkKHppYykgJChUREFUQSkgVERBVEFfbGlzdAppZmVxICgkKENST1NTX0JVSUxE KSwxKQoJCSQoWklDKSAteSAkKFlFQVJJU1RZUEUpIC1kICQoVFpESVIpIC1MIC9kZXYvbnVsbCAk KFREQVRBKQplbHNlCgkJJChaSUMpIC15ICQoWUVBUklTVFlQRSkgLWQgJChUWkRJUikgLUwgL2Rl di9udWxsIEBUREFUQV9saXN0CmVuZGlmCgpyaWdodF9vbmx5OgkkKHppYykgbGVhcHNlY29uZHMg JChUREFUQSkgVERBVEFfbGlzdAppZmVxICgkKENST1NTX0JVSUxEKSwxKQoJCSQoWklDKSAteSAk KFlFQVJJU1RZUEUpIC1kICQoVFpESVIpIC1MIGxlYXBzZWNvbmRzICQoVERBVEEpCmVsc2UKCQkk KFpJQykgLXkgJChZRUFSSVNUWVBFKSAtZCAkKFRaRElSKSAtTCBsZWFwc2Vjb25kcyBAVERBVEFf bGlzdAplbmRpZgoKIyBJbiBlYXJsaWVyIHZlcnNpb25zIG9mIHRoaXMgbWFrZWZpbGUsIHRoZSBv dGhlciB0d28gZGlyZWN0b3JpZXMgd2VyZQojIHN1YmRpcmVjdG9yaWVzIG9mICQoVFpESVIpLiAg SG93ZXZlciwgdGhpcyBsZWQgdG8gY29uZmlndXJhdGlvbiBlcnJvcnMuCiMgRm9yIGV4YW1wbGUs IHdpdGggcG9zaXhfcmlnaHQgdW5kZXIgdGhlIGVhcmxpZXIgc2NoZW1lLAojIFRaPSdyaWdodC9B dXN0cmFsaWEvQWRlbGFpZGUnIGdvdCB5b3UgbG9jYWx0aW1lIHdpdGggbGVhcCBzZWNvbmRzLAoj IGJ1dCBnbXRpbWUgd2l0aG91dCBsZWFwIHNlY29uZHMsIHdoaWNoIGxlZCB0byBwcm9ibGVtcyB3 aXRoIGFwcGxpY2F0aW9ucwojIGxpa2Ugc2VuZG1haWwgdGhhdCBzdWJ0cmFjdCBnbXRpbWUgZnJv bSBsb2NhbHRpbWUuCiMgVGhlcmVmb3JlLCB0aGUgb3RoZXIgdHdvIGRpcmVjdG9yaWVzIGFyZSBu b3cgc2libGluZ3Mgb2YgJChUWkRJUikuCiMgWW91IG11c3QgcmVwbGFjZSBhbGwgb2YgJChUWkRJ UikgdG8gc3dpdGNoIGZyb20gbm90IHVzaW5nIGxlYXAgc2Vjb25kcwojIHRvIHVzaW5nIHRoZW0s IG9yIHZpY2UgdmVyc2EuCm90aGVyX3R3bzoJJCh6aWMpIGxlYXBzZWNvbmRzICQoVERBVEEpIFRE QVRBX2xpc3QKaWZlcSAoJChDUk9TU19CVUlMRCksMSkKCQkkKFpJQykgLXkgJChZRUFSSVNUWVBF KSAtZCAkKFRaRElSKS1wb3NpeCAtTCAvZGV2L251bGwgJChUREFUQSkKCQkkKFpJQykgLXkgJChZ RUFSSVNUWVBFKSBcCgkJCS1kICQoVFpESVIpLWxlYXBzIC1MIGxlYXBzZWNvbmRzICQoVERBVEEp CmVsc2UKCQkkKFpJQykgLXkgJChZRUFSSVNUWVBFKSAtZCAkKFRaRElSKS1wb3NpeCAtTCAvZGV2 L251bGwgQFREQVRBX2xpc3QKCQkkKFpJQykgLXkgJChZRUFSSVNUWVBFKSBcCgkJCS1kICQoVFpE SVIpLWxlYXBzIC1MIGxlYXBzZWNvbmRzIEBUREFUQV9saXN0CmVuZGlmCgpwb3NpeF9yaWdodDoJ cG9zaXhfb25seSBvdGhlcl90d28KCnJpZ2h0X3Bvc2l4OglyaWdodF9vbmx5IG90aGVyX3R3bwoK em9uZXM6CQkkKFJFRE8pCgokKFRaTElCKToJJChMSUJPQkpTKQoJCS0kKFVUSUwpIG1rZGlyICQo VE9QRElSKQoJCS0kKFVUSUwpIG1rZGlyICQoTElCRElSKQoJCSQoQ1JPU1NfQVIpIHJ1cyAkQCAk KExJQk9CSlMpCgpkYXRlJChFWEVFWFQpOgkkKERBVEVPQkpTKSAkKFRPUERJUikvbGliL2NydDAu byAkKFRPUERJUikvbGliL2xpYmMuYQoJCSQoQ1JPU1NfTEQpIC1zICQoTERGTEFHUykgJChUT1BE SVIpL2xpYi9jcnQwLm8gJChEQVRFT0JKUykgLW8gJEAgJChUT1BESVIpL2xpYi9saWJjLmEgJChM SUJHQ0NBKSAtVCAkKERKR1BQX0RKTCkKCQkkKFRPUERJUikvaG9zdGJpbi9zdHViaWZ5LmV4ZSAk QAoKdHpzZWxlY3Q6CXR6c2VsZWN0LmtzaAoJCXNlZCBcCgkJCS1lICdzfEFXSz1bXn1dKnxBV0s9 JChBV0spfGcnIFwKCQkJLWUgJ3N8XChQS0dWRVJTSU9OXCk9Lip8XDE9J1wnJygkKFBBQ0tBR0Up KSAnXCcnfCcgXAoJCQktZSAnc3xcKFJFUE9SVF9CVUdTX1RPXCk9Lip8XDE9JChCVUdFTUFJTCl8 JyBcCgkJCS1lICdzfFRaRElSPVtefV0qfFRaRElSPS9kZXYvZW52L0RKRElSL3pvbmVpbmZvfCcg XAoJCQktZSAnc3xcKFRaVkVSU0lPTlwpPS4qfFwxPSQoVkVSU0lPTil8JyBcCgkJCTwkPyA+JEAK CQljaG1vZCAreCAkQAoKY2hlY2s6CQljaGVja19jaGFyYWN0ZXJfc2V0IGNoZWNrX3RhYmxlcyBj aGVja193ZWIKCmNoZWNrX2NoYXJhY3Rlcl9zZXQ6ICQoRU5DSElMQURBKQoJCXNoYXJwPScjJzsg ISBncmVwIC1uICQoSU5WQUxJRF9DSEFSKSAkKEVOQ0hJTEFEQSkKCmNoZWNrX3RhYmxlczoJY2hl Y2t0YWIuYXdrICQoUFJJTUFSWV9ZREFUQSkKCQkkKEFXSykgLWYgY2hlY2t0YWIuYXdrICQoUFJJ TUFSWV9ZREFUQSkKCmNoZWNrX3dlYjoJJChXRUJfUEFHRVMpCgkJJChWQUxJREFURV9FTlYpICQo VkFMSURBVEUpICQoVkFMSURBVEVfRkxBR1MpICQoV0VCX1BBR0VTKQoKY2xlYW5fbWlzYzoKCQkk KFVUSUwpIHJtIGNvcmUgKi5vICoub3V0IHR6c2VsZWN0IHpkdW1wJChFWEVFWFQpIHppYyQoRVhF RVhUKSBcCgkJCXllYXJpc3R5cGUgZGF0ZSQoRVhFRVhUKSBsb2d3dG1wbCogKi50YXIuZ3ogJChI T1NUX1pJQykgKi5leGUgKi5tYW4gXAoJCQlUREFUQV9saXN0CmNsZWFuOgkJY2xlYW5fbWlzYwoJ CSQoVVRJTCkgcm0gLWYgLXIgdHpwdWJsaWMKCm1haW50YWluZXItY2xlYW46IGNsZWFuCgkJQGVj aG8gJ1RoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlOyBpdCcK CQlAZWNobyAnZGVsZXRlcyBmaWxlcyB0aGF0IG1heSBuZWVkIHNwZWNpYWwgdG9vbHMgdG8gcmVi dWlsZC4nCgkJcm0gLWYgKi5bMS04XS50eHQgKi5hc2MgKi50YXIuZ3oKCm5hbWVzOgoJCUAkKFVU SUwpIGVjaG8gJChFTkNISUxBREEpCgpwdWJsaWM6CQljaGVjayBjaGVja19wdWJsaWMgY2hlY2tf dGltZV90X2FsdGVybmF0aXZlcyBcCgkJc2V0LXRpbWVzdGFtcHMgdGFyYmFsbHMgc2lnbmF0dXJl cwoKIyBTZXQgdGhlIHRpbWUgc3RhbXBzIHRvIHRob3NlIG9mIHRoZSBnaXQgcmVwb3NpdG9yeSwg aWYgYXZhaWxhYmxlLAojIGFuZCBpZiB0aGUgZmlsZXMgaGF2ZSBub3QgY2hhbmdlZCBzaW5jZSB0 aGVuLgojIFRoaXMgdXNlcyBHTlUgJ3RvdWNoJyBzeW50YXggJ3RvdWNoIC1kQE4gRklMRScsCiMg d2hlcmUgTiBpcyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgMTk3MC4KIyBJZiBnaXQgb3Ig R05VICd0b3VjaCcgaXMgYWJzZW50LCBkbyBub3RoaW5nLgpzZXQtdGltZXN0YW1wczoKCQktVFo9 VVRDMCAmJiBleHBvcnQgVFogJiYgZmlsZXM9YGdpdCBscy1maWxlc2AgJiYgXAoJCXRvdWNoIC1k IEAxIHRlc3Qub3V0ICYmIHJtIC1mIHRlc3Qub3V0ICYmIFwKCQlmb3IgZmlsZSBpbiAkJGZpbGVz OyBkbyBcCgkJICB0ZXN0IC16ICJgZ2l0IGRpZmYgLS1uYW1lLW9ubHkgJCRmaWxlYCIgfHwgY29u dGludWU7IFwKCQkgIGNtZD0idG91Y2ggLWQgQGBnaXQgbG9nIC0xIC0tZm9ybWF0PSdmb3JtYXQ6 JWN0JyAkJGZpbGUgXAoJCQlgICQkZmlsZSIgJiYgXAoJCSAgZWNobyAiJCRjbWQiICYmIFwKCQkg ICQkY21kIHx8IGV4aXQ7IFwKCQlkb25lCgojIFRoZSB6aWNzIGJlbG93IGVuc3VyZSB0aGF0IGVh Y2ggZGF0YSBmaWxlIGNhbiBzdGFuZCBvbiBpdHMgb3duLgojIFdlIGFsc28gZG8gYW4gYWxsLWZp bGVzIHJ1biB0byBjYXRjaCBsaW5rcyB0byBsaW5rcy4KCmNoZWNrX3B1YmxpYzoJJChFTkNISUxB REEpCgkJbWFrZSBtYWludGFpbmVyLWNsZWFuCgkJbWFrZSAiQ0ZMQUdTPSQoQ1JPU1NfR0NDX0RF QlVHX0ZMQUdTKSIKCQlta2RpciB0enB1YmxpYwoJCWZvciBpIGluICQoVERBVEEpIDsgZG8gXAoJ CSAgJCh6aWMpIC12IC1kIHR6cHVibGljICQkaSAyPiYxIHx8IGV4aXQ7IFwKCQlkb25lCgkJJCh6 aWMpIC12IC1kIHR6cHVibGljICQoVERBVEEpCgkJcm0gLWYgLXIgdHpwdWJsaWMKCiMgQ2hlY2sg dGhhdCB0aGUgY29kZSB3b3JrcyB1bmRlciB2YXJpb3VzIGFsdGVybmF0aXZlCiMgaW1wbGVtZW50 YXRpb25zIG9mIHRpbWVfdC4KY2hlY2tfdGltZV90X2FsdGVybmF0aXZlczoKCQlta2RpciB0enB1 YmxpYwoJCXpvbmVzPWAkKEFXSykgJy9eW14jXS8geyBwcmludCAkJDMgfScgPHpvbmUudGFiYCAm JiBcCgkJZm9yIHR5cGUgaW4gJChUSU1FX1RfQUxURVJOQVRJVkVTKTsgZG8gXAoJCSAgbWtkaXIg dHpwdWJsaWMvJCR0eXBlICYmIFwKCQkgIG1ha2UgY2xlYW5fbWlzYyAmJiBcCgkJICBtYWtlIFRP UERJUj1gcHdkYC90enB1YmxpYy8kJHR5cGUgXAoJCSAgICBDRkxBR1M9JyQoQ0ZMQUdTKSAtRHRp bWVfdHo9JyInJCR0eXBlJyIgXAoJCSAgICBpbnN0YWxsICYmIFwKCQkgIGRpZmYgLXFyIHR6cHVi bGljL2ludDY0X3QvZXRjL3pvbmVpbmZvIHR6cHVibGljLyQkdHlwZS9ldGMvem9uZWluZm8gJiYg XAoJCSAgY2FzZSAkJHR5cGUgaW4gXAoJCSAgaW50MzJfdCkgcmFuZ2U9LTIxNDc0ODM2NDgsMjE0 NzQ4MzY0Nzs7IFwKCQkgIHVpbnQzMl90KSByYW5nZT0wLDQyOTQ5NjcyOTY7OyBcCgkJICBpbnQ2 NF90KSBjb250aW51ZTs7IFwKCQkgICp1KikgcmFuZ2U9MCwxMDAwMDAwMDAwMDs7IFwKCQkgICop IHJhbmdlPS0xMDAwMDAwMDAwMCwxMDAwMDAwMDAwMDs7IFwKCQkgIGVzYWMgJiYgXAoJCSAgZWNo byBjaGVja2luZyAkJHR5cGUgem9uZXMgLi4uICYmIFwKCQkgIHR6cHVibGljL2ludDY0X3QvZXRj L3pkdW1wIC1WIC10ICQkcmFuZ2UgJCR6b25lcyBcCgkJICAgICAgPnR6cHVibGljL2ludDY0X3Qu b3V0ICYmIFwKCQkgIHR6cHVibGljLyQkdHlwZS9ldGMvemR1bXAgLVYgLXQgJCRyYW5nZSAkJHpv bmVzIFwKCQkgICAgICA+dHpwdWJsaWMvJCR0eXBlLm91dCAmJiBcCgkJICBkaWZmIC11IHR6cHVi bGljL2ludDY0X3Qub3V0IHR6cHVibGljLyQkdHlwZS5vdXQgXAoJCSAgICB8fCBleGl0OyBcCgkJ ZG9uZQoJCXJtIC1mIC1yIHR6cHVibGljCgp0YXJiYWxsczoJdHpjb2RlJChWRVJTSU9OKS50YXIu Z3ogdHpkYXRhJChWRVJTSU9OKS50YXIuZ3oKCnR6Y29kZSQoVkVSU0lPTikudGFyLmd6OiAkKENP TU1PTikgJChET0NTKSAkKFNPVVJDRVMpICQoTUlTQykKCQlmb3IgaSBpbiAqLlsxLThdIDsgZG8g XAoJCSAgTENfQUxMPUMgc2ggd29ya21hbi5zaCAkJGkgPiAkJGkudHh0ICYmIFwKCQkgIHRvdWNo IC1yICQkaSAkJGkudHh0IHx8IGV4aXQ7IFwKCQlkb25lCgkJTENfQUxMPUMgJiYgZXhwb3J0IExD X0FMTCAmJiBcCgkJdGFyICQoVEFSRkxBR1MpIC1jZiAtIFwKCQkgICAgJChDT01NT04pICQoRE9D UykgJChTT1VSQ0VTKSAkKE1JU0MpICouWzEtOF0udHh0IHwgXAoJCSAgZ3ppcCAkKEdaSVBGTEFH UykgPiAkQAoKdHpkYXRhJChWRVJTSU9OKS50YXIuZ3o6ICQoQ09NTU9OKSAkKERBVEEpCgkJTENf QUxMPUMgJiYgZXhwb3J0IExDX0FMTCAmJiBcCgkJdGFyICQoVEFSRkxBR1MpIC1jZiAtICQoQ09N TU9OKSAkKERBVEEpIHwgXAoJCSAgZ3ppcCAkKEdaSVBGTEFHUykgPiAkQAoKc2lnbmF0dXJlczoJ dHpjb2RlJChWRVJTSU9OKS50YXIuZ3ouYXNjIHR6ZGF0YSQoVkVSU0lPTikudGFyLmd6LmFzYwoK dHpjb2RlJChWRVJTSU9OKS50YXIuZ3ouYXNjOiB0emNvZGUkKFZFUlNJT04pLnRhci5negoJCWdw ZyAtLWFybW9yIC0tZGV0YWNoLXNpZ24gJD8KCnR6ZGF0YSQoVkVSU0lPTikudGFyLmd6LmFzYzog dHpkYXRhJChWRVJTSU9OKS50YXIuZ3oKCQlncGcgLS1hcm1vciAtLWRldGFjaC1zaWduICQ/Cgp0 eXBlY2hlY2s6CgkJbWFrZSBjbGVhbgoJCWZvciBpIGluICJsb25nIGxvbmciIHVuc2lnbmVkIGRv dWJsZTsgXAoJCWRvIFwKCQkJbWFrZSBDRkxBR1M9Ii1EVFlQRUNIRUNLIC1EX190aW1lX3RfZGVm aW5lZCAtRF9USU1FX1QgXCItRHRpbWVfdD0kJGlcIiIgOyBcCgkJCS4vemR1bXAgLXYgRXVyb3Bl L1JvbWUgOyBcCgkJCW1ha2UgY2xlYW4gOyBcCgkJZG9uZQoKem9uZW5hbWVzOgkkKFREQVRBKQoJ CUAkKEFXSykgJy9eWm9uZS8geyBwcmludCAkJDIgfSAvXkxpbmsvIHsgcHJpbnQgJCQzIH0nICQo VERBVEEpCgpUREFUQV9saXN0OgkkKFREQVRBKQoJCWVjaG8gJChUREFUQSkgPiBUREFUQV9saXN0 Cgphc2N0aW1lLm86CXByaXZhdGUuaCB0emZpbGUuaApkYXRlLm86CQlwcml2YXRlLmgKZGlmZnRp bWUubzoJcHJpdmF0ZS5oCmlhbGxvYy5vOglwcml2YXRlLmgKbG9jYWx0aW1lLm86CXByaXZhdGUu aCB0emZpbGUuaApzY2hlY2subzoJcHJpdmF0ZS5oCnN0cmZ0aW1lLm86CXR6ZmlsZS5oCnpkdW1w Lm86CXZlcnNpb24uaAp6aWMubzoJCXByaXZhdGUuaCB0emZpbGUuaCB2ZXJzaW9uLmgKCi5LRUVQ X1NUQVRFOgo= --001a11354e16b385c8051684e5f1--