From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Jackson Subject: [PATCH 04/24] xentoolcore, _restrict_all: Introduce new library and implementation Date: Wed, 4 Oct 2017 16:57:10 +0100 Message-ID: <1507132650-25376-5-git-send-email-ian.jackson@eu.citrix.com> References: <1507132650-25376-1-git-send-email-ian.jackson@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1507132650-25376-1-git-send-email-ian.jackson@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xensource.com Cc: Ross Lagerwall , Stefano Stabellini , Wei Liu , Ian Jackson List-Id: xen-devel@lists.xenproject.org SW4gcHJhY3RpY2UsIHFlbXUgb3BlbnMgYSBncmVhdCBtYW55IGZkcy4gIFRyYWNraW5nIHRoZW0g YWxsIGRvd24gYW5kCnBsYXlpbmcgd2hhY2stYS1tb2xlIGlzIHVuYXR0cmFjdGl2ZS4gIEl0IGlz IGFsc28gcG90ZW50aWFsbHkgZnJhZ2lsZQppbiB0aGF0IGZ1dHVyZSBjaGFuZ2VzIG1pZ2h0IGFj Y2lkZW50YWxseSB1bmRvIG91ciBlZmZvcnRzLgoKSW5zdGVhZCwgd2UgYXJlIGdvaW5nIHRvIHRl YWNoIGFsbCB0aGUgWGVuIGxpYnJhcmllcyBob3cgdG8gcmVnaXN0ZXIKdGhlaXIgZmRzIHNvIHRo YXQgdGhleSBjYW4gYmUgbmV1dGVyZWQgd2l0aCBvbmUgcWVtdSBjYWxsLgoKUmlnaHQgbm93LCBu b3RoaW5nIHdpbGwgZ28gd3JvbmcgaWYgc29tZSB0cmllcyB0byBsaW5rIHdpdGhvdXQKLWx0b29s Y29yZSwgYnV0IHRoYXQgd2lsbCBzdG9wIHdvcmtpbmcgYXMgc29vbiBhcyB0aGUgZmlyc3Qgb3Ro ZXIgWGVuCmxpYnJhcnkgc3RhcnRzIHRvIHJlZ2lzdGVyLiAgU28gdGhpcyBwYXRjaCB3aWxsIGJl IGZvbGxvd2VkIGJ5IHRoZQpzdHViZG9tIGJ1aWxkIHVwZGF0ZSwgYW5kIHNob3VsZCBiZSBmb2xs b3dlZCBieSBhCk1JTklPU19VUFNUUkVBTV9SRVZJU0lPTiB1cGRhdGVkLgoKU2FkbHkgcWVtdSB1 cHN0cmVhbSdzIGNvbmZpZ3VyYXRpb24gYXJyYW5nZW1lbnRzIGFyZSB0b28gY3J1ZGUsIGJlaW5n CmtleWVkIHNvbGVseSBvZmYgdGhlIFhlbiB2ZXJzaW9uIG51bWJlci4gIFNvIHRoZXkgY2Fubm90 IHByb3ZpZGUKZm9yd2FyZC9iYWNrd2FyZCBidWlsZCBjb21wYXRpYmlsaXR5IGFjcm9zcyBjaGFu Z2VzIGluIHhlbi11bnN0YWJsZSwKbGlrZSB0aGlzIG9uZS4gIHFlbXUgcGF0Y2hlcyB0byBsaW5r IGFnYWluc3QgeGVudG9vbGNvcmUgc2hvdWxkIGJlCmFwcGxpZWQgaW4gcWVtdSB1cHN0cmVhbSBz byBhdm9pZCB0aGUgcWVtdSBidWlsZCBicmVha2luZyBhZ2FpbnN0IHRoZQpyZWxlYXNlZCB2ZXJz aW9uIG9mIFhlbiA0LjEwLgoKU2lnbmVkLW9mZi1ieTogSWFuIEphY2tzb24gPElhbi5KYWNrc29u QGV1LmNpdHJpeC5jb20+CkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgot LS0KdjI6IFJlbW92ZSBvYnNvbGV0ZSAieHh4IiBjb21tZW50LgogICAgTm8gbG9uZ2VyIGNsYWlt IHRvIHByb3ZpZGUgaWRlbXBvdGVuY3kuCiAgICBBZGQgcGFyYWdyYXBocyB0byBjb21taXQgbWVz c2FnZSBhYm91dCBjb21wYXRpYmlsaXR5LgoKU2lnbmVkLW9mZi1ieTogSWFuIEphY2tzb24gPElh bi5KYWNrc29uQGV1LmNpdHJpeC5jb20+Ci0tLQogLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogdG9vbHMvUnVsZXMubWsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKysKIHRvb2xzL2xpYnMvTWFrZWZpbGUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHRvb2xzL2xpYnMvdG9vbGNv cmUvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgIHwgMTAxICsrKysrKysrKysrKysrKysr KysrCiB0b29scy9saWJzL3Rvb2xjb3JlL2hhbmRsZXJlZy5jICAgICAgICAgICAgICAgICAgICB8 ICA3NyArKysrKysrKysrKysrKysrCiB0b29scy9saWJzL3Rvb2xjb3JlL2luY2x1ZGUveGVudG9v bGNvcmUuaCAgICAgICAgICB8ICA3MyArKysrKysrKysrKysrKysKIHRvb2xzL2xpYnMvdG9vbGNv cmUvaW5jbHVkZS94ZW50b29sY29yZV9pbnRlcm5hbC5oIHwgMTAyICsrKysrKysrKysrKysrKysr KysrKwogdG9vbHMvbGlicy90b29sY29yZS9saWJ4ZW50b29sY29yZS5tYXAgICAgICAgICAgICAg fCAgIDcgKysKIHRvb2xzL2xpYnMvdG9vbGNvcmUveGVudG9vbGNvcmUucGMuaW4gICAgICAgICAg ICAgIHwgICA5ICsrCiA5IGZpbGVzIGNoYW5nZWQsIDM4MCBpbnNlcnRpb25zKCspCiBjcmVhdGUg bW9kZSAxMDA2NDQgdG9vbHMvbGlicy90b29sY29yZS9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAw NjQ0IHRvb2xzL2xpYnMvdG9vbGNvcmUvaGFuZGxlcmVnLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 b29scy9saWJzL3Rvb2xjb3JlL2luY2x1ZGUveGVudG9vbGNvcmUuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHRvb2xzL2xpYnMvdG9vbGNvcmUvaW5jbHVkZS94ZW50b29sY29yZV9pbnRlcm5hbC5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvbGlicy90b29sY29yZS9saWJ4ZW50b29sY29yZS5tYXAK IGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9saWJzL3Rvb2xjb3JlL3hlbnRvb2xjb3JlLnBjLmlu CgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggY2MxNjY0OS4uMmM5 ZjkwNSAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC03Myw2ICs3 Myw3IEBAIHN0dWJkb20vbGlieGVuY2FsbC0qCiBzdHViZG9tL2xpYnhlbmV2dGNobi0qCiBzdHVi ZG9tL2xpYnhlbmZvcmVpZ25tZW1vcnktKgogc3R1YmRvbS9saWJ4ZW5nbnR0YWItKgorc3R1YmRv bS9saWJ4ZW50b29sY29yZS0qCiBzdHViZG9tL2xpYnhlbnRvb2xsb2ctKgogc3R1YmRvbS9sd2lw LSoKIHN0dWJkb20vbHdpcC8KQEAgLTk4LDYgKzk5LDggQEAgdG9vbHMvY29uZmlnLmNhY2hlCiBj b25maWcvVG9vbHMubWsKIGNvbmZpZy9TdHViZG9tLm1rCiBjb25maWcvRG9jcy5tawordG9vbHMv bGlicy90b29sY29yZS9oZWFkZXJzLmNoawordG9vbHMvbGlicy90b29sY29yZS94ZW50b29sY29y ZS5wYwogdG9vbHMvbGlicy90b29sbG9nL2hlYWRlcnMuY2hrCiB0b29scy9saWJzL3Rvb2xsb2cv eGVudG9vbGxvZy5wYwogdG9vbHMvbGlicy9ldnRjaG4vaGVhZGVycy5jaGsKQEAgLTM1Miw2ICsz NTUsNyBAQCB0b29scy9pbmNsdWRlL3hlbi1mb3JlaWduL2FybTY0LmgKIC5naXQKIHRvb2xzL21p c2MveGVuLWhwdG9vbAogdG9vbHMvbWlzYy94ZW4tbWZuZHVtcAordG9vbHMvbGlicy90b29sY29y ZS9pbmNsdWRlL18qLmgKIHRvb2xzL2xpYnhjL18qLltjaF0KIHRvb2xzL2xpYnhsL18qLltjaF0K IHRvb2xzL2xpYnhsL3Rlc3RpZGwKZGlmZiAtLWdpdCBhL3Rvb2xzL1J1bGVzLm1rIGIvdG9vbHMv UnVsZXMubWsKaW5kZXggZGJjNzYzNS4uNWUxYzdjYiAxMDA2NDQKLS0tIGEvdG9vbHMvUnVsZXMu bWsKKysrIGIvdG9vbHMvUnVsZXMubWsKQEAgLTEwLDYgKzEwLDcgQEAgZXhwb3J0IF9JTlNUQUxM IDo9ICQoSU5TVEFMTCkKIElOU1RBTEwgPSAkKFhFTl9ST09UKS90b29scy9jcm9zcy1pbnN0YWxs CiAKIFhFTl9JTkNMVURFICAgICAgICA9ICQoWEVOX1JPT1QpL3Rvb2xzL2luY2x1ZGUKK1hFTl9M SUJYRU5UT09MQ09SRSAgPSAkKFhFTl9ST09UKS90b29scy9saWJzL3Rvb2xjb3JlCiBYRU5fTElC WEVOVE9PTExPRyAgPSAkKFhFTl9ST09UKS90b29scy9saWJzL3Rvb2xsb2cKIFhFTl9MSUJYRU5F VlRDSE4gICA9ICQoWEVOX1JPT1QpL3Rvb2xzL2xpYnMvZXZ0Y2huCiBYRU5fTElCWEVOR05UVEFC ICAgPSAkKFhFTl9ST09UKS90b29scy9saWJzL2dudHRhYgpAQCAtMTAyLDYgKzEwMywxMSBAQCBT SERFUFNfbGlieGVudG9vbGxvZyA9CiBMRExJQlNfbGlieGVudG9vbGxvZyA9ICQoU0hERVBTX2xp YnhlbnRvb2xsb2cpICQoWEVOX0xJQlhFTlRPT0xMT0cpL2xpYnhlbnRvb2xsb2ckKGxpYmV4dGVu c2lvbikKIFNITElCX2xpYnhlbnRvb2xsb2cgID0gJChTSERFUFNfbGlieGVudG9vbGxvZykgLVds LC1ycGF0aC1saW5rPSQoWEVOX0xJQlhFTlRPT0xMT0cpCiAKK0NGTEFHU19saWJ4ZW50b29sY29y ZSA9IC1JJChYRU5fTElCWEVOVE9PTENPUkUpL2luY2x1ZGUgJChDRkxBR1NfeGVuaW5jbHVkZSkK K1NIREVQU19saWJ4ZW50b29sY29yZSA9CitMRExJQlNfbGlieGVudG9vbGNvcmUgPSAkKFNIREVQ U19saWJ4ZW50b29sY29yZSkgJChYRU5fTElCWEVOVE9PTENPUkUpL2xpYnhlbnRvb2xjb3JlJChs aWJleHRlbnNpb24pCitTSExJQl9saWJ4ZW50b29sY29yZSAgPSAkKFNIREVQU19saWJ4ZW50b29s Y29yZSkgLVdsLC1ycGF0aC1saW5rPSQoWEVOX0xJQlhFTlRPT0xDT1JFKQorCiBDRkxBR1NfbGli eGVuZXZ0Y2huID0gLUkkKFhFTl9MSUJYRU5FVlRDSE4pL2luY2x1ZGUgJChDRkxBR1NfeGVuaW5j bHVkZSkKIFNIREVQU19saWJ4ZW5ldnRjaG4gPQogTERMSUJTX2xpYnhlbmV2dGNobiA9ICQoU0hE RVBTX2xpYnhlbmV2dGNobikgJChYRU5fTElCWEVORVZUQ0hOKS9saWJ4ZW5ldnRjaG4kKGxpYmV4 dGVuc2lvbikKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvTWFrZWZpbGUgYi90b29scy9saWJzL01h a2VmaWxlCmluZGV4IDIwMzU4NzMuLmVhOWE2NGQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvTWFr ZWZpbGUKKysrIGIvdG9vbHMvbGlicy9NYWtlZmlsZQpAQCAtMiw2ICsyLDcgQEAgWEVOX1JPT1Qg PSAkKENVUkRJUikvLi4vLi4KIGluY2x1ZGUgJChYRU5fUk9PVCkvdG9vbHMvUnVsZXMubWsKIAog U1VCRElSUy15IDo9CitTVUJESVJTLXkgKz0gdG9vbGNvcmUKIFNVQkRJUlMteSArPSB0b29sbG9n CiBTVUJESVJTLXkgKz0gZXZ0Y2huCiBTVUJESVJTLXkgKz0gZ250dGFiCmRpZmYgLS1naXQgYS90 b29scy9saWJzL3Rvb2xjb3JlL01ha2VmaWxlIGIvdG9vbHMvbGlicy90b29sY29yZS9NYWtlZmls ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODZmODM5Ci0tLSAvZGV2L251 bGwKKysrIGIvdG9vbHMvbGlicy90b29sY29yZS9NYWtlZmlsZQpAQCAtMCwwICsxLDEwMSBAQAor WEVOX1JPT1QgPSAkKENVUkRJUikvLi4vLi4vLi4KK2luY2x1ZGUgJChYRU5fUk9PVCkvdG9vbHMv UnVsZXMubWsKKworTUFKT1IJPSAxCitNSU5PUgk9IDAKK1NITElCX0xERkxBR1MgKz0gLVdsLC0t dmVyc2lvbi1zY3JpcHQ9bGlieGVudG9vbGNvcmUubWFwCisKK0NGTEFHUwkrPSAtV2Vycm9yIC1X bWlzc2luZy1wcm90b3R5cGVzCitDRkxBR1MJKz0gLUkuL2luY2x1ZGUKKworU1JDUy15CSs9IGhh bmRsZXJlZy5jCisKK0xJQl9PQkpTIDo9ICQocGF0c3Vic3QgJS5jLCUubywkKFNSQ1MteSkpCitQ SUNfT0JKUyA6PSAkKHBhdHN1YnN0ICUuYywlLm9waWMsJChTUkNTLXkpKQorCitMSUIgOj0gbGli eGVudG9vbGNvcmUuYQoraWZuZXEgKCQobm9zaGFyZWRsaWJzKSx5KQorTElCICs9IGxpYnhlbnRv b2xjb3JlLnNvCitlbmRpZgorCitQS0dfQ09ORklHIDo9IHhlbnRvb2xjb3JlLnBjCitQS0dfQ09O RklHX1ZFUlNJT04gOj0gJChNQUpPUikuJChNSU5PUikKKworaWZuZXEgKCQoQ09ORklHX0xJQlhD X01JTklPUykseSkKK1BLR19DT05GSUdfSU5TVCA6PSAkKFBLR19DT05GSUcpCiskKFBLR19DT05G SUdfSU5TVCk6IFBLR19DT05GSUdfUFJFRklYID0gJChwcmVmaXgpCiskKFBLR19DT05GSUdfSU5T VCk6IFBLR19DT05GSUdfSU5DRElSID0gJChpbmNsdWRlZGlyKQorJChQS0dfQ09ORklHX0lOU1Qp OiBQS0dfQ09ORklHX0xJQkRJUiA9ICQobGliZGlyKQorZW5kaWYKKworUEtHX0NPTkZJR19MT0NB TCA6PSAkKGZvcmVhY2ggcGMsJChQS0dfQ09ORklHKSwkKFBLR19DT05GSUdfRElSKS8kKHBjKSkK KworJChQS0dfQ09ORklHX0xPQ0FMKTogUEtHX0NPTkZJR19QUkVGSVggPSAkKFhFTl9ST09UKQor JChQS0dfQ09ORklHX0xPQ0FMKTogUEtHX0NPTkZJR19JTkNESVIgPSAkKFhFTl9MSUJYRU5UT09M Q09SRSkvaW5jbHVkZQorJChQS0dfQ09ORklHX0xPQ0FMKTogUEtHX0NPTkZJR19MSUJESVIgPSAk KENVUkRJUikKKworQVVUT0lOQ1M9aW5jbHVkZS9feGVudG9vbGNvcmVfbGlzdC5oCisKKy5QSE9O WTogYWxsCithbGw6IGJ1aWxkCisKKy5QSE9OWTogYnVpbGQKK2J1aWxkOgorCSQoTUFLRSkgbGli cworCisuUEhPTlk6IGxpYnMKK2xpYnM6IGhlYWRlcnMuY2hrICQoTElCKSAkKFBLR19DT05GSUdf SU5TVCkgJChQS0dfQ09ORklHX0xPQ0FMKQorCislLm86ICQoQVVUT0lOQ1MpCislLm9waWM6ICQo QVVUT0lOQ1MpCisKK2hlYWRlcnMuY2hrOiAkKHdpbGRjYXJkIGluY2x1ZGUvKi5oKSAkKEFVVE9J TkNTKQorCitpbmNsdWRlL194ZW50b29sY29yZV9saXN0Lmg6ICQoWEVOX0lOQ0xVREUpL3hlbi1l eHRlcm5hbC9ic2Qtc3lzLXF1ZXVlLWgtc2VkZGVyeSAkKFhFTl9JTkNMVURFKS94ZW4tZXh0ZXJu YWwvYnNkLXN5cy1xdWV1ZS5oCisJJChQRVJMKSAkXiAtLXByZWZpeD14ZW50b29sY29yZSA+JEAu bmV3CisJJChjYWxsIG1vdmUtaWYtY2hhbmdlZCwkQC5uZXcsJEApCisKK2xpYnhlbnRvb2xjb3Jl LmE6ICQoTElCX09CSlMpCisJJChBUikgcmMgJEAgJF4KKworbGlieGVudG9vbGNvcmUuc286IGxp YnhlbnRvb2xjb3JlLnNvLiQoTUFKT1IpCisJJChTWU1MSU5LX1NITElCKSAkPCAkQAorbGlieGVu dG9vbGNvcmUuc28uJChNQUpPUik6IGxpYnhlbnRvb2xjb3JlLnNvLiQoTUFKT1IpLiQoTUlOT1Ip CisJJChTWU1MSU5LX1NITElCKSAkPCAkQAorCitsaWJ4ZW50b29sY29yZS5zby4kKE1BSk9SKS4k KE1JTk9SKTogJChQSUNfT0JKUykgbGlieGVudG9vbGNvcmUubWFwCisJJChDQykgJChMREZMQUdT KSAtV2wsJChTT05BTUVfTERGTEFHKSAtV2wsbGlieGVudG9vbGNvcmUuc28uJChNQUpPUikgJChT SExJQl9MREZMQUdTKSAtbyAkQCAkKFBJQ19PQkpTKSAkKEFQUEVORF9MREZMQUdTKQorCisuUEhP Tlk6IGluc3RhbGwKK2luc3RhbGw6IGJ1aWxkCisJJChJTlNUQUxMX0RJUikgJChERVNURElSKSQo bGliZGlyKQorCSQoSU5TVEFMTF9ESVIpICQoREVTVERJUikkKGluY2x1ZGVkaXIpCisJJChJTlNU QUxMX1NITElCKSBsaWJ4ZW50b29sY29yZS5zby4kKE1BSk9SKS4kKE1JTk9SKSAkKERFU1RESVIp JChsaWJkaXIpCisJJChJTlNUQUxMX0RBVEEpIGxpYnhlbnRvb2xjb3JlLmEgJChERVNURElSKSQo bGliZGlyKQorCSQoU1lNTElOS19TSExJQikgbGlieGVudG9vbGNvcmUuc28uJChNQUpPUikuJChN SU5PUikgJChERVNURElSKSQobGliZGlyKS9saWJ4ZW50b29sY29yZS5zby4kKE1BSk9SKQorCSQo U1lNTElOS19TSExJQikgbGlieGVudG9vbGNvcmUuc28uJChNQUpPUikgJChERVNURElSKSQobGli ZGlyKS9saWJ4ZW50b29sY29yZS5zbworCSQoSU5TVEFMTF9EQVRBKSBpbmNsdWRlL3hlbnRvb2xj b3JlLmggJChERVNURElSKSQoaW5jbHVkZWRpcikKKwkkKElOU1RBTExfREFUQSkgeGVudG9vbGNv cmUucGMgJChERVNURElSKSQoUEtHX0lOU1RBTExESVIpCisKKy5QSE9OWTogdWluc3RhbGwKK3Vu aW5zdGFsbDoKKwlybSAtZiAkKERFU1RESVIpJChQS0dfSU5TVEFMTERJUikveGVudG9vbGNvcmUu cGMKKwlybSAtZiAkKERFU1RESVIpJChpbmNsdWRlZGlyKS94ZW50b29sY29yZS5oCisJcm0gLWYg JChERVNURElSKSQobGliZGlyKS9saWJ4ZW50b29sY29yZS5zbworCXJtIC1mICQoREVTVERJUikk KGxpYmRpcikvbGlieGVudG9vbGNvcmUuc28uJChNQUpPUikKKwlybSAtZiAkKERFU1RESVIpJChs aWJkaXIpL2xpYnhlbnRvb2xjb3JlLnNvLiQoTUFKT1IpLiQoTUlOT1IpCisJcm0gLWYgJChERVNU RElSKSQobGliZGlyKS9saWJ4ZW50b29sY29yZS5hCisKKy5QSE9OWTogVEFHUworVEFHUzoKKwll dGFncyAtdCAqLmMgKi5oCisKKy5QSE9OWTogY2xlYW4KK2NsZWFuOgorCXJtIC1yZiAqLnJwbSAk KExJQikgKn4gJChERVBTX1JNKSAkKExJQl9PQkpTKSAkKFBJQ19PQkpTKQorCXJtIC1mIGxpYnhl bnRvb2xjb3JlLnNvLiQoTUFKT1IpLiQoTUlOT1IpIGxpYnhlbnRvb2xjb3JlLnNvLiQoTUFKT1Ip CisJcm0gLWYgaGVhZGVycy5jaGsKKwlybSAtZiB4ZW50b29sY29yZS5wYworCisuUEhPTlk6IGRp c3RjbGVhbgorZGlzdGNsZWFuOiBjbGVhbgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy90b29sY29y ZS9oYW5kbGVyZWcuYyBiL3Rvb2xzL2xpYnMvdG9vbGNvcmUvaGFuZGxlcmVnLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZlZmZiMQotLS0gL2Rldi9udWxsCisrKyBiL3Rv b2xzL2xpYnMvdG9vbGNvcmUvaGFuZGxlcmVnLmMKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIGhh bmRscmVnLmMKKyAqCisgKiBpbXBsZW1lbnRhdGlvbiBvZiB4ZW50b29sY29yZV9yZXN0cmljdF9h bGwKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgQ2l0cml4CisgKiBQYXJ0IG9mIGEgZ2VuZXJp YyBsb2dnaW5nIGludGVyZmFjZSB1c2VkIGJ5IHZhcmlvdXMgZG9tMCB1c2VybGFuZCBsaWJyYXJp ZXMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLgor ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KKyAqLworCisjaW5jbHVkZSAieGVudG9vbGNvcmVfaW50ZXJuYWwuaCIK KworI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKworc3RhdGljIHB0 aHJlYWRfbXV0ZXhfdCBoYW5kbGVzX2xvY2sgPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOwor c3RhdGljIFhFTlRPT0xDT1JFX0xJU1RfSEVBRCgsIFhlbnRvb2xjb3JlX19BY3RpdmVfSGFuZGxl KSBoYW5kbGVzOworCitzdGF0aWMgdm9pZCBsb2NrKHZvaWQpIHsKKyAgICBpbnQgZSA9IHB0aHJl YWRfbXV0ZXhfdW5sb2NrKCZoYW5kbGVzX2xvY2spOworICAgIGFzc2VydCghZSk7Cit9CisKK3N0 YXRpYyB2b2lkIHVubG9jayh2b2lkKSB7CisgICAgaW50IGUgPSBwdGhyZWFkX211dGV4X3VubG9j aygmaGFuZGxlc19sb2NrKTsKKyAgICBhc3NlcnQoIWUpOworfQorCit2b2lkIHhlbnRvb2xjb3Jl X19yZWdpc3Rlcl9hY3RpdmVfaGFuZGxlKFhlbnRvb2xjb3JlX19BY3RpdmVfSGFuZGxlICphaCkg eworICAgIGxvY2soKTsKKyAgICBYRU5UT09MQ09SRV9MSVNUX0lOU0VSVF9IRUFEKCZoYW5kbGVz LCBhaCwgZW50cnkpOworICAgIHVubG9jaygpOworfQorCit2b2lkIHhlbnRvb2xjb3JlX19kZXJl Z2lzdGVyX2FjdGl2ZV9oYW5kbGUoWGVudG9vbGNvcmVfX0FjdGl2ZV9IYW5kbGUgKmFoKSB7Cisg ICAgbG9jaygpOworICAgIFhFTlRPT0xDT1JFX0xJU1RfUkVNT1ZFKGFoLCBlbnRyeSk7CisgICAg dW5sb2NrKCk7Cit9CisKK2ludCB4ZW50b29sY29yZV9yZXN0cmljdF9hbGwodWludDMyX3QgZG9t aWQpIHsKKyAgICBpbnQgcjsKKyAgICBYZW50b29sY29yZV9fQWN0aXZlX0hhbmRsZSAqYWg7CisK KyAgICBsb2NrKCk7CisgICAgWEVOVE9PTENPUkVfTElTVF9GT1JFQUNIKGFoLCAmaGFuZGxlcywg ZW50cnkpIHsKKyAgICAgICAgciA9IGFoLT5yZXN0cmljdF9jYWxsYmFjayhhaCwgZG9taWQpOwor ICAgICAgICBpZiAocikgZ290byBvdXQ7CisgICAgfQorCisgICAgciA9IDA7Cisgb3V0OgorICAg IHVubG9jaygpOworICAgIHJldHVybiByOworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgor ICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQK KyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8K ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvdG9vbGNvcmUvaW5jbHVkZS94ZW50b29sY29yZS5oIGIv dG9vbHMvbGlicy90b29sY29yZS9pbmNsdWRlL3hlbnRvb2xjb3JlLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMzJlMmFmMQotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2xp YnMvdG9vbGNvcmUvaW5jbHVkZS94ZW50b29sY29yZS5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisg KiB4ZW50b29sY29yZS5oCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE3IENpdHJpeAorICogCisg KiBDb21tb24gZmVhdHVyZXMgdXNlZC9wcm92aWRlZCBieSBhbGwgWGVuIHRvb2xzIGxpYnJhcmll cworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247CisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZS4KKyAq CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCisgKi8KKworI2lmbmRlZiBYRU5UT09MQ09SRV9ICisjZGVmaW5lIFhFTlRP T0xDT1JFX0gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisvKgorICogaW50IHhlbnRvb2xjb3Jl X3Jlc3RyaWN0X2FsbCh1aW50MzJfdCBkb21pZCk7CisgKgorICogQXJyYW5nZXMgdGhhdCBYZW4g bGlicmFyeSBoYW5kbGVzIChmZHMgZXRjLikgd2hpY2ggYXJlIGN1cnJlbnRseSBoZWxkCisgKiBi eSBYZW4gbGlicmFyaWVzLCBjYW4gbm8gbG9uZ2VyIGJlIHVzZWQgb3RoZXIgdGhhbiB0byBhZmZl Y3QgZG9taWQuCisgKgorICogSWYgdGhpcyBjYW5ub3QgYmUgYWNoaWV2ZWQsIHJldHVybnMgLTEg YW5kIHNldHMgZXJybm8uCisgKiBJZiBjYWxsZWQgYWdhaW4gd2l0aCB0aGUgc2FtZSBkb21pZCwg aXQgbWF5IHN1Y2NlZWQsIG9yIGl0IG1heQorICogZmFpbCAoZXZlbiB0aG91Z2ggc3VjaCBhIGNh bGwgaXMgcG90ZW50aWFsbHkgbWVhbmluZ2Z1bCkuCisgKiAoSWYgY2FsbGVkIGFnYWluIHdpdGgg YSBkaWZmZXJlbnQgZG9taWQsIGl0IHdpbGwgbmVjZXNzYXJpbHkgZmFpbC4pCisgKgorICogID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisgKiAgSU1QT1JUQU5UIC0gSU1QTEVNRU5UQVRJT04gU1RBVFVTCisgKgorICog IFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBpbXBsZW1lbnRlZCBpbnNvZmFyIGFzIGl0IGFwcGVhcnMg bmVjZXNzYXJ5CisgKiAgZm9yIHRoZSBwdXJwb3NlcyBvZiBydW5uaW5nIGEgZGVwcml2aWxlZ2Vk IHFlbXUuCisgKgorICogIEhvd2V2ZXIsIHRoaXMgZnVuY3Rpb24gaXMgTk9UIGltcGxlbWVudGVk IGZvciBhbGwgWGVuIGxpYnJhcmllcy4KKyAqICBGb3IgZWFjaCB1c2UgY2FzZSBvZiB0aGlzIGZ1 bmN0aW9uLCB0aGUgZGVzaWduZXIgbXVzdCBldmFsdWF0ZSBhbmQKKyAqICBhdWRpdCB3aGV0aGVy IHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBzdWZmaWNpZW50IGluIHRoZWlyIHNwZWNpZmljCisgKiAg Y29udGV4dC4KKyAqCisgKiAgT2YgY291cnNlLCBwYXRjaGVzIHRvIGV4dGVuZCB0aGUgaW1wbGVt ZW50YXRpb24gYXJlIHZlcnkgd2VsY29tZS4KKyAqICA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoKKyAqIFRocmVh ZCBzYWZlLgorICoKKyAqIFdlIGV4cGVjdCB0aGF0IG5vIGNhbGxlcnMgZG8gdGhlIGZvbGxvd2lu ZzoKKyAqICAgLSBpbiBvbmUgdGhyZWFkIGNhbGwgeGVuX3NvbWVsaWJyYXJ5X29wZW58Y2xvc2UK KyAqICAgLSBpbiBhbm90aGVyIHRocmVhZCBjYWxsIGZvcmsKKyAqICAgLSBpbiB0aGUgY2hpbGQg b2YgdGhlIGZvcmssIGJlZm9yZSBleGVjLCBjYWxsCisgKiAgICAgeGVuX3NvbWVbb3RoZXJdbGli cmFyeV9vcGVufGNsb3NlIG9yIHhlbnRvb2xjb3JlX3Jlc3RyaWN0X2FsbAorICoKKyAqLworaW50 IHhlbnRvb2xjb3JlX3Jlc3RyaWN0X2FsbCh1aW50MzJfdCBkb21pZCk7CisKKyNlbmRpZiAvKiBY RU5UT09MQ09SRV9IICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisg KiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRo OiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlicy90b29sY29yZS9pbmNsdWRlL3hlbnRvb2xjb3JlX2ludGVybmFsLmggYi90b29s cy9saWJzL3Rvb2xjb3JlL2luY2x1ZGUveGVudG9vbGNvcmVfaW50ZXJuYWwuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzBlMjlkCi0tLSAvZGV2L251bGwKKysrIGIvdG9v bHMvbGlicy90b29sY29yZS9pbmNsdWRlL3hlbnRvb2xjb3JlX2ludGVybmFsLmgKQEAgLTAsMCAr MSwxMDIgQEAKKy8qCisgKiB4ZW50b29sY29yZV9pbnRlcm5hbC5oCisgKgorICogSW50ZXJmYWNl cyBvZiB4ZW50b29sY29yZSBkaXJlY3RlZCBpbnRlcm5hbGx5IGF0IG90aGVyIFhlbiBsaWJyYXJp ZXMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgQ2l0cml4CisgKiAKKyAqIENvbW1vbiBjb2Rl IHVzZWQgYnkgYWxsIFhlbiB0b29scyBsaWJyYXJpZXMKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOworICog dmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpZm5k ZWYgWEVOVE9PTENPUkVfSU5URVJOQUxfSAorI2RlZmluZSBYRU5UT09MQ09SRV9JTlRFUk5BTF9I CisKKyNpbmNsdWRlICJ4ZW50b29sY29yZS5oIgorI2luY2x1ZGUgIl94ZW50b29sY29yZV9saXN0 LmgiCisKKy8qLS0tLS0tLS0tLSBhY3RpdmUgaGFuZGxlIHJlZ2lzdHJhdGlvbiAtLS0tLS0tLS0t Ki8KKworLyoKKyAqIFRoaXMgaXMgYWxsIHRvIHN1cHBvcnQgeGVudG9vbGNvcmVfcmVzdHJpY3Rf YWxsCisgKgorICogQW55IGxpYnhsIGxpYnJhcnkgdGhhdCBvcGVucyBhIFhlbiBjb250cm9sIGhh bmRsZSBvZiBhbnkga2luZCB3aGljaAorICogbWlnaHQgYWxsb3cgbWFuaXB1bGF0aW9uIG9mIGRv bTAsIG9mIG90aGVyIGRvbWFpbnMsIG9yIG9mIHRoZSB3aG9sZQorICogbWFjaGluZSwgbXVzdDoK KyAqICAgSS4gYXJyYW5nZSB0aGF0IHRoZWlyIG93biBkYXRhc3RydWN0dXJlIGNvbnRhaW5zIGEK KyAqICAgICAgICAgIFhlbnRvb2xjb3JlX19BY3RpdmVfSGFuZGxlCisgKiAKKyAqICAgSUkuIGR1 cmluZyB0aGUgIm9wZW4gaGFuZGxlIiBmdW5jdGlvbgorICogICAgIDEuIGFsbG9jYXRlIHRoZSBt ZW1vcnkgZm9yIHRoZSBvd24gZGF0YXN0cnVjdHVyZSBhbmQgaW5pdGlhbGlzZSBpdAorICogICAg IDIuIHNldCBYZW50b29sY29yZV9fQWN0aXZlX0hhbmRsZS5yZXN0cmljdF9jYWxsYmFjaworICog ICAgIDMuIGNhbGwgeGVudG9vbGNvcmVfX3JlZ2lzdGVyX2FjdGl2ZV9oYW5kbGUKKyAqICAgICAg IDNhLiBpZiB0aGUgb3BlbiBmYWlscywgY2FsbCB4ZW50b29sY29yZV9fZGVyZWdpc3Rlcl9hY3Rp dmVfaGFuZGxlCisgKiAgICAgNC4gT05MWSBUSEVOIGFjdHVhbGx5IG9wZW4gdGhlIHJlbGV2YW50 IGZkIG9yIHdoYXRldmVyCisgKgorICogICBJSUkuIGR1cmluZyB0aGUgImNsb3NlIGhhbmRsZSIg ZnVuY3Rpb24KKyAqICAgICAxLiBGSVJTVCBjbG9zZSB0aGUgcmVsZXZhbnQgZmQgb3Igd2hhdGV2 ZXIKKyAqICAgICAyLiBjYWxsIHhlbnRvb2xjb3JlX19kZXJlZ2lzdGVyX2FjdGl2ZV9oYW5kbGUK KyAqCisgKiAgIElWLiBpbiB0aGUgcmVzdHJpY3RfY2FsbGJhY2sgZnVuY3Rpb24KKyAqICAgICAq IEFycmFuZ2UgdGhhdCB0aGUgZmQgKG9yIG90aGVyIGhhbmRsZSkgY2FuIG5vIGxvbmdlciBieSB1 c2VkCisgKiAgICAgICBvdGhlciB0aGFuIHdpdGggcmVzcGVjdCB0byBkb21haW4gZG9taWQuCisg KiAgICAgKiBGdXR1cmUgYXR0ZW1wdHMgdG8gbWFuaXB1bGF0ZSBvdGhlciBkb21haW5zIChvciB0 aGUgd2hvbGUKKyAqICAgICAgIGhvc3QpIHZpYSB0aGlzIGhhbmRsZSBtdXN0IGNhdXNlIGFuIGVy cm9yIHJldHVybiAoYW5kCisgKiAgICAgICBwZXJoYXBzIGEgbG9nIG1lc3NhZ2UpLCBub3QgYSBj cmFzaAorICogICAgICogSWYgc2VsZWN0aXZlIHJlc3RyaWN0aW9uIGlzIG5vdCBwb3NzaWJsZSwg dGhlIGhhbmRsZSBtdXN0CisgKiAgICAgICBiZSBjb21wbGV0ZWx5IGludmFsaWRhdGVkIHNvIHRo YXQgaXQgaXMgbm90IHVzZWFibGU7CisgKiAgICAgICBzdWJzZXF1ZW50IG1hbmlwdWxhdGlvbnMg bWF5IG5vdCBjcmFzaAorICogICAgICogVGhlIHJlc3RyaWN0X2NhbGxiYWNrIGZ1bmN0aW9uIHNo b3VsZCBub3Qgbm9ybWFsbHkgZmFpbAorICogICAgICAgaWYgdGhpcyBjYW4gYmUgZWFzaWx5IGF2 b2lkZWQgLSBpdCBpcyBiZXR0ZXIgdG8gbWFrZSB0aGUKKyAqICAgICAgIGhhbmRsZSBub25mdW5j dGlvbiBpbnN0ZWFkLgorICogICAgICogTkIgdGhhdCByZXN0cmljdF9jYWxsYmFjayBtaWdodCBi ZSBjYWxsZWQgYWdhaW4uICBUaGF0IG11c3QKKyAqICAgICAgIHdvcmsgcHJvcGVybHk6IGlmIHRo ZSBkb21pZCBpcyB0aGUgc2FtZSwgaXQgaXMgaWRlbXBvdGVudC4KKyAqICAgICAgIElmIHRoZSBk b21pZCBpcyBkaWZmZXJlbnQuIHRoZW4gZWl0aGVyIHRoZSBoYW5kbGUgbXVzdCBiZQorICogICAg ICAgY29tcGxldGVseSBpbnZhbGlkYXRlZCwgb3IgcmVzdHJpY3RfY2FsbGJhY2sgbXVzdCBmYWls LikKKyAqCisgKiBUaHJlYWQgc2FmZXR5OgorICogICAgeGVudG9vbGNvcmVfX1tkZV1yZWdpc3Rl cl9hY3RpdmVfaGFuZGxlIGFyZSB0aHJlYWRzYWZlCisgKiAgICAgIGJ1dCBNVVNUIE5PVCBiZSBj YWxsZWQgd2l0aGluIHJlc3RyaWN0X2NhbGxiYWNrCisgKgorICogRm9yayBzYWZldHk6CisgKiAg ICBMaWJyYXJpZXMgd2hpY2ggdXNlIHRoZXNlIGZ1bmN0aW9ucyBkbyBub3Qgb24gdGhhdCBhY2Nv dW50CisgKiAgICBuZWVkIHRvIHRha2UgYW55IHNwZWNpYWwgY2FyZSBvdmVyIGZvcmtzIG9jY3Vy cmluZyBpbgorICogICAgb3RoZXIgdGhyZWFkcywgcHJvdmlkZWQgdGhhdCB0aGV5IG9iZXkgdGhl IHJ1bGVzIGFib3ZlLgorICovCisKK3R5cGVkZWYgc3RydWN0IFhlbnRvb2xjb3JlX19BY3RpdmVf SGFuZGxlIFhlbnRvb2xjb3JlX19BY3RpdmVfSGFuZGxlOworCit0eXBlZGVmIGludCBYZW50b29s Y29yZV9fUmVzdHJpY3RfQ2FsbGJhY2soWGVudG9vbGNvcmVfX0FjdGl2ZV9IYW5kbGUqLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkKTsK Kworc3RydWN0IFhlbnRvb2xjb3JlX19BY3RpdmVfSGFuZGxlIHsKKyAgICBYZW50b29sY29yZV9f UmVzdHJpY3RfQ2FsbGJhY2sgKnJlc3RyaWN0X2NhbGxiYWNrOworICAgIFhFTlRPT0xDT1JFX0xJ U1RfRU5UUlkoWGVudG9vbGNvcmVfX0FjdGl2ZV9IYW5kbGUpIGVudHJ5OworfTsKKwordm9pZCB4 ZW50b29sY29yZV9fcmVnaXN0ZXJfYWN0aXZlX2hhbmRsZShYZW50b29sY29yZV9fQWN0aXZlX0hh bmRsZSopOwordm9pZCB4ZW50b29sY29yZV9fZGVyZWdpc3Rlcl9hY3RpdmVfaGFuZGxlKFhlbnRv b2xjb3JlX19BY3RpdmVfSGFuZGxlKik7CisKKyNlbmRpZiAvKiBYRU5UT09MQ09SRV9JTlRFUk5B TF9IICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUt c3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBp bmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGli cy90b29sY29yZS9saWJ4ZW50b29sY29yZS5tYXAgYi90b29scy9saWJzL3Rvb2xjb3JlL2xpYnhl bnRvb2xjb3JlLm1hcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjVkMjUx Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvbGlicy90b29sY29yZS9saWJ4ZW50b29sY29yZS5t YXAKQEAgLTAsMCArMSw3IEBACitWRVJTXzEuMCB7CisJZ2xvYmFsOgorCQl4ZW50b29sY29yZV9y ZXN0cmljdF9hbGw7CisJCXhlbnRvb2xjb3JlX19yZWdpc3Rlcl9hY3RpdmVfaGFuZGxlOworCQl4 ZW50b29sY29yZV9fZGVyZWdpc3Rlcl9hY3RpdmVfaGFuZGxlOworCWxvY2FsOiAqOyAvKiBEbyBu b3QgZXhwb3NlIGFueXRoaW5nIGJ5IGRlZmF1bHQgKi8KK307CmRpZmYgLS1naXQgYS90b29scy9s aWJzL3Rvb2xjb3JlL3hlbnRvb2xjb3JlLnBjLmluIGIvdG9vbHMvbGlicy90b29sY29yZS94ZW50 b29sY29yZS5wYy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWZmNGUy Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvbGlicy90b29sY29yZS94ZW50b29sY29yZS5wYy5p bgpAQCAtMCwwICsxLDkgQEAKK3ByZWZpeD1AQHByZWZpeEBACitpbmNsdWRlZGlyPUBAaW5jZGly QEAKK2xpYmRpcj1AQGxpYmRpckBACisKK05hbWU6IFhlbnRvb2xjb3JlCitEZXNjcmlwdGlvbjog Q2VudHJhbCBzdXBwb3J0IGZvciBYZW4gSHlwZXJ2aXNvciB1c2VybGFuZCBsaWJyYXJpZXMKK1Zl cnNpb246IEBAdmVyc2lvbkBACitDZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfQorTGliczogQEBsaWJz ZmxhZ0BAJHtsaWJkaXJ9IC1seGVudG9vbGNvcmUKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==