From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Michal Domonkos To: git-commits@fedoraproject.org Subject: [rpms/python3-rpm] epel10: Add support for %autosetup -C Date: Thu, 25 Jun 2026 07:43:27 GMT Message-ID: <178237340785.1.5304607219589051778.rpms-python3-rpm-6755696e77a3@fedoraproject.org> List-ID: X-Git-Repo: rpms/python3-rpm X-Git-Branch: epel10 X-Git-Rev: 6755696e77a37edde42725c0decab56f93e796d7 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvcHl0aG9uMy1ycG0KICAgICAgICAgICAgQnJhbmNoIDogZXBlbDEwCiAgICAg ICAgICAgIENvbW1pdCA6IDY3NTU2OTZlNzdhMzdlZGRlNDI3MjVjMGRlY2FiNTZmOTNlNzk2ZDcK ICAgICAgICAgICAgQXV0aG9yIDogTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29t PgogICAgICAgICAgICBEYXRlICAgOiAyMDI2LTA2LTE4VDA5OjQ5OjI4KzAyOjAwCiAgICAgICAg ICAgIFN0YXRzICA6ICsxMTcwLy0xIGluIDIgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBo dHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3B5dGhvbjMtcnBtL2MvNjc1NTY5NmU3 N2EzN2VkZGU0MjcyNWMwZGVjYWI1NmY5M2U3OTZkNz9icmFuY2g9ZXBlbDEwCgogICAgICAgICAg ICBMb2c6CiAgICAgICAgICAgIEFkZCBzdXBwb3J0IGZvciAlYXV0b3NldHVwIC1DCgpSZXNvbHZl czogUkhFTC0xNDEyNjkKCi0tLQpkaWZmIC0tZ2l0IGEvcnBtLTQuMTkueC1hZGQtYXV0b3NldHVw LUMucGF0Y2ggYi9ycG0tNC4xOS54LWFkZC1hdXRvc2V0dXAtQy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDcyMTFkCi0tLSAvZGV2L251bGwKKysrIGIvcnBtLTQu MTkueC1hZGQtYXV0b3NldHVwLUMucGF0Y2gKQEAgLTAsMCArMSwxMTY0IEBACitGcm9tIDkzZGNl YjBkYzFlMDVhNmU3MWU5NjZjMjc4MTQzNjRlYjc3MzQ2ZDIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBNYXR0ZW8gQ3JvY2UgPHRla25vcmF2ZXJAbWV0YS5jb20+CitEYXRlOiBUdWUs IDE2IEphbiAyMDI0IDE3OjI2OjE2IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0ggMDEvMTRdIGFkZCBi dWlsZCBkaXJlY3RvcnkgYXV0byBwYXRoIHRvICVhdXRvc2V0dXAKKworQWRkIGEgYC1DYCBmbGFn IHRvICVhdXRvc2V0dXAgYW5kICVzZXR1cCB3aGljaCBlbnN1cmVzIHRoYXQgdGhlIHNvdXJjZXMK K3dpbGwgYmUgZXh0cmFjdGVkIGluIHRoZSByb290IG9mIHRoZSBidWlsZCBkaXJlY3RvcnkuCitJ dCB3b3JrcyBieSBpbnNwZWN0aW5nIHRoZSBhcmNoaXZlIGFuZCBzdHJpcHBpbmcgdGhlIGZpcnN0 IHBhdGggZW50cnkKK2lmIHRoZSBhcmNoaXZlIGhhcyBhIHRvcCBsZXZlbCBkaXJlY3RvcnkgYWxv bmUgaW4gdGhlIHJvb3QuCisKK1RoZSBhcmNoaXZlIGluc3BlY3Rpb24gYW5kIHBhdGggc3RyaXBw aW5nIGlzIGltcGxlbWVudGVkIGluIHJwbXVuY29tcHJlc3MKK3doaWNoIG5vdyBoYXMgYSBuZXcg YC1DYCBmbGFnOgorCisgICAgJCB+L3JwbS91c3IvbGliL3JwbS9ycG11bmNvbXByZXNzIC14IC12 IC1DIHNvdXJjZS0xLjAuMCBzb3VyY2Utc2luZ2xlcm9vdC50YXIuZ3oKKyAgICBta2RpciAnc291 cmNlLTEuMC4wJyA7ICAvdXNyL2Jpbi9nemlwIC1kYyAgJ3NvdXJjZS1zaW5nbGVyb290LnRhci5n eicgfCAvdXNyL2Jpbi90YXIgLXh2dm9mIC0gIC1DICdzb3VyY2UtMS4wLjAnIC0tc3RyaXAtY29t cG9uZW50cz0xCisgICAgLXJ3LXItLXItLSByb290L3Jvb3QgICAgICAgIDMyIDIwMjQtMDEtMTYg MTk6MTMgc291cmNlLXh4eHh4eHh4eHgvZmlsZTEKKyAgICAtcnctci0tci0tIHJvb3Qvcm9vdCAg ICAgMzM4ODYgMjAyNC0wMS0xNiAxOToxMyBzb3VyY2UteHh4eHh4eHh4eC9maWxlMgorICAgIGRy d3hyLXhyLXggcm9vdC9yb290ICAgICAgICAgMCAyMDI0LTAxLTE2IDE5OjEzIHNvdXJjZS14eHh4 eHh4eHh4L2RpcjEvCisgICAgLXItLXItLXItLSByb290L3Jvb3QgICAgICAgMjEwIDIwMjQtMDEt MTYgMTk6MTMgc291cmNlLXh4eHh4eHh4eHgvZGlyMS9maWxlMworCisgICAgJCBmaW5kIHNvdXJj ZS0xLjAuMCAtbHMKKyAgICAgICAgOTIzNDEgICAgICAwIGRyd3hyLXhyLXggICAxIHRla25vcmF2 ZXIgdGVrbm9yYXZlciAgICAgICAyOCBKYW4gMTYgMTk6MTYgc291cmNlLTEuMC4wCisgICAgICAg IDkyMzQyICAgICAgNCAtcnctci0tci0tICAgMSB0ZWtub3JhdmVyIHRla25vcmF2ZXIgICAgICAg MzIgSmFuIDE2IDE5OjEzIHNvdXJjZS0xLjAuMC9maWxlMQorICAgICAgICA5MjM0MyAgICAgMzYg LXJ3LXItLXItLSAgIDEgdGVrbm9yYXZlciB0ZWtub3JhdmVyICAgIDMzODg2IEphbiAxNiAxOTox MyBzb3VyY2UtMS4wLjAvZmlsZTIKKyAgICAgICAgOTIzNDQgICAgICAwIGRyd3hyLXhyLXggICAx IHRla25vcmF2ZXIgdGVrbm9yYXZlciAgICAgICAxMCBKYW4gMTYgMTk6MTMgc291cmNlLTEuMC4w L2RpcjEKKyAgICAgICAgOTIzNDUgICAgICA0IC1yLS1yLS1yLS0gICAxIHRla25vcmF2ZXIgdGVr bm9yYXZlciAgICAgIDIxMCBKYW4gMTYgMTk6MTMgc291cmNlLTEuMC4wL2RpcjEvZmlsZTMKKwor ICAgICQgfi9ycG0vdXNyL2xpYi9ycG0vcnBtdW5jb21wcmVzcyAteCAtdiAtQyBzb3VyY2UtMi4w LjAgc291cmNlLW5vcm9vdC50YXIuZ3oKKyAgICBta2RpciAnc291cmNlLTIuMC4wJyA7ICAvdXNy L2Jpbi9nemlwIC1kYyAgJ3NvdXJjZS1ub3Jvb3QudGFyLmd6JyB8IC91c3IvYmluL3RhciAteHZ2 b2YgLSAgLUMgJ3NvdXJjZS0yLjAuMCcKKyAgICBkcnd4ci14ci14IHJvb3Qvcm9vdCAgICAgICAg IDAgMjAyNC0wMS0xNiAxOToxMyBkaXIxLworICAgIC1yLS1yLS1yLS0gcm9vdC9yb290ICAgICAg IDIxMCAyMDI0LTAxLTE2IDE5OjEzIGRpcjEvZmlsZTMKKyAgICAtcnctci0tci0tIHJvb3Qvcm9v dCAgICAgICAgMzIgMjAyNC0wMS0xNiAxOToxMyBmaWxlMQorICAgIC1ydy1yLS1yLS0gcm9vdC9y b290ICAgICAzMzg4NiAyMDI0LTAxLTE2IDE5OjEzIGZpbGUyCisKKyAgICAkIGZpbmQgc291cmNl LTIuMC4wIC1scworICAgICAgICA5MjM0NiAgICAgIDAgZHJ3eHIteHIteCAgIDEgdGVrbm9yYXZl ciB0ZWtub3JhdmVyICAgICAgIDI4IEphbiAxNiAxOToxNyBzb3VyY2UtMi4wLjAKKyAgICAgICAg OTIzNDcgICAgICAwIGRyd3hyLXhyLXggICAxIHRla25vcmF2ZXIgdGVrbm9yYXZlciAgICAgICAx MCBKYW4gMTYgMTk6MTMgc291cmNlLTIuMC4wL2RpcjEKKyAgICAgICAgOTIzNDggICAgICA0IC1y LS1yLS1yLS0gICAxIHRla25vcmF2ZXIgdGVrbm9yYXZlciAgICAgIDIxMCBKYW4gMTYgMTk6MTMg c291cmNlLTIuMC4wL2RpcjEvZmlsZTMKKyAgICAgICAgOTIzNDkgICAgICA0IC1ydy1yLS1yLS0g ICAxIHRla25vcmF2ZXIgdGVrbm9yYXZlciAgICAgICAzMiBKYW4gMTYgMTk6MTMgc291cmNlLTIu MC4wL2ZpbGUxCisgICAgICAgIDkyMzUwICAgICAzNiAtcnctci0tci0tICAgMSB0ZWtub3JhdmVy IHRla25vcmF2ZXIgICAgMzM4ODYgSmFuIDE2IDE5OjEzIHNvdXJjZS0yLjAuMC9maWxlMgorCitB bmQgaXQncyBleHBvc2VkIHRvICVhdXRvc2V0dXAKKworICAgICQgcnBtYnVpbGQgLWJwIHRlc3Qu c3BlYworICAgIEV4ZWN1dGluZyglcHJlcCk6IC9iaW4vc2ggLWUgL3Zhci90bXAvcnBtLXRtcC5O TDU1c0kKKyAgICArIHVtYXNrIDAyMgorICAgICsgY2QgL2hvbWUvdGVrbm9yYXZlci9ycG1idWls ZC9CVUlMRAorICAgICsgY2QgL2hvbWUvdGVrbm9yYXZlci9ycG1idWlsZC9CVUlMRAorICAgICsg cm0gLXJmIG5ldHBlcmYtMi43LjEKKyAgICArIC91c3IvbGliL3JwbS9ycG11bmNvbXByZXNzIC14 IC1DIG5ldHBlcmYtMi43LjEgL2hvbWUvdGVrbm9yYXZlci9ycG1idWlsZC9TT1VSQ0VTL25ldHBl cmYtM2JjNDU1Yi50YXIuZ3oKKyAgICArIFNUQVRVUz0wCisgICAgKyAnWycgMCAtbmUgMCAnXScK KyAgICArIGNkIG5ldHBlcmYtMi43LjEKKyAgICArIHJtIC1yZiAvaG9tZS90ZWtub3JhdmVyL3Jw bWJ1aWxkL0JVSUxEL25ldHBlcmYtMi43LjEtU1BFQ1BBUlRTCisgICAgKyAvdXNyL2Jpbi9ta2Rp ciAtcCAvaG9tZS90ZWtub3JhdmVyL3JwbWJ1aWxkL0JVSUxEL25ldHBlcmYtMi43LjEtU1BFQ1BB UlRTCisgICAgKyAvdXNyL2Jpbi9jaG1vZCAtUmYgYStyWCx1K3csZy13LG8tdyAuCisgICAgKyBS UE1fRUM9MAorICAgICsrIGpvYnMgLXAKKyAgICArIGV4aXQgMAorCisoYmFja3BvcnRlZCBmcm9t IGNvbW1pdCAzMzg1M2M3M2NmNmFmNWZmMzEwOGZlNWM1OWEwYTdhMTYxNGJlZDk5KQorLS0tCisg Q01ha2VMaXN0cy50eHQgICAgICAgIHwgIDUgKy0tCisgYnVpbGQvcGFyc2VQcmVwLmMgICAgIHwg MTMgKysrKystLS0KKyBkb2NzL21hbnVhbC9zcGVjLm1kICAgfCAgMyArKworIG1hY3Jvcy5pbiAg ICAgICAgICAgICB8ICA0ICstLQorIHRvb2xzL0NNYWtlTGlzdHMudHh0ICB8ICAxICsKKyB0b29s cy9ycG11bmNvbXByZXNzLmMgfCA3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tCisgNiBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2lu ZGV4IDZkYmYxNzlmMy4uN2I5ZmJmNTZmIDEwMDY0NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysr KyBiL0NNYWtlTGlzdHMudHh0CitAQCAtMjA1LDYgKzIwNSw3IEBAIHBrZ19jaGVja19tb2R1bGVz KFpTVEQgSU1QT1JURURfVEFSR0VUIGxpYnpzdGQ+PTEuMy44KQorIHBrZ19jaGVja19tb2R1bGVz KExJQkVMRiBJTVBPUlRFRF9UQVJHRVQgbGliZWxmKQorIHBrZ19jaGVja19tb2R1bGVzKExJQkRX IElNUE9SVEVEX1RBUkdFVCBsaWJkdykKKyBwa2dfY2hlY2tfbW9kdWxlcyhMSUJMWk1BIElNUE9S VEVEX1RBUkdFVCBsaWJsem1hPj01LjIuMCkKKytwa2dfY2hlY2tfbW9kdWxlcyhMSUJBUkNISVZF IFJFUVVJUkVEIElNUE9SVEVEX1RBUkdFVCBsaWJhcmNoaXZlKQorIAorICMgTHVhIG1vZHVsZSBk b2VzIG5vdCBzaGlwIGFuIElNUE9SVEVEIHRhcmdldCwgZGVmaW5lIG91ciBvd24KKyBhZGRfbGli cmFyeShMVUE6OkxVQSBJTlRFUkZBQ0UgSU1QT1JURUQpCitAQCAtMjY1LDEwICsyNjYsNiBAQCBp ZiAoV0lUSF9TRUxJTlVYKQorIAlwa2dfY2hlY2tfbW9kdWxlcyhTRUxJTlVYIFJFUVVJUkVEIElN UE9SVEVEX1RBUkdFVCBsaWJzZWxpbnV4KQorIGVuZGlmKCkKKyAKKy1pZiAoV0lUSF9BUkNISVZF KQorLQlwa2dfY2hlY2tfbW9kdWxlcyhMSUJBUkNISVZFIFJFUVVJUkVEIElNUE9SVEVEX1RBUkdF VCBsaWJhcmNoaXZlKQorLWVuZGlmKCkKKy0KKyBpZiAoV0lUSF9GU1ZFUklUWSkKKyAJcGtnX2No ZWNrX21vZHVsZXMoRlNWRVJJVFkgUkVRVUlSRUQgSU1QT1JURURfVEFSR0VUIGxpYmZzdmVyaXR5 KQorIGVuZGlmKCkKK2RpZmYgLS1naXQgYS9idWlsZC9wYXJzZVByZXAuYyBiL2J1aWxkL3BhcnNl UHJlcC5jCitpbmRleCAwN2Q5YTY5MjMuLjAyMmE1YmU3ZCAxMDA2NDQKKy0tLSBhL2J1aWxkL3Bh cnNlUHJlcC5jCisrKysgYi9idWlsZC9wYXJzZVByZXAuYworQEAgLTEyNCw3ICsxMjQsNyBAQCBl eGl0OgorICAqIEBwYXJhbSBxdWlldGx5CXNob3VsZCAtdnYgYmUgb21pdHRlZCBmcm9tIHRhcj8K KyAgKiBAcmV0dXJuCQlleHBhbmRlZCAlc2V0dXAgbWFjcm8gKE5VTEwgb24gZXJyb3IpCisgICov Cistc3RhdGljIGNoYXIgKmRvVW50YXIocnBtU3BlYyBzcGVjLCB1aW50MzJfdCBjLCBpbnQgcXVp ZXRseSkKKytzdGF0aWMgY2hhciAqZG9VbnRhcihycG1TcGVjIHNwZWMsIHVpbnQzMl90IGMsIGlu dCBxdWlldGx5LCBpbnQgYXV0b1BhdGgpCisgeworICAgICBjaGFyICpidWYgPSBOVUxMOworICAg ICBzdHJ1Y3QgU291cmNlICpzcDsKK0BAIC0xMzUsNyArMTM1LDkgQEAgc3RhdGljIGNoYXIgKmRv VW50YXIocnBtU3BlYyBzcGVjLCB1aW50MzJfdCBjLCBpbnQgcXVpZXRseSkKKyAgICAgfQorIAor ICAgICBidWYgPSBycG1FeHBhbmQoIiV7X19ycG11bmNvbXByZXNzfSAteCAiLAorLQkJICAgIHF1 aWV0bHkgPyAiIiA6ICItdiAiLCIle3NoZXNjYXBlOiIsIHNwLT5wYXRoLCAifSIsIE5VTEwpOwor KwkJICAgIHF1aWV0bHkgPyAiIiA6ICItdiAiLAorKwkJICAgIGF1dG9QYXRoID8gIi1DICV7YnVp bGRzdWJkaXJ9ICIgOiAiIiwKKysJCSAgICAiJXtzaGVzY2FwZToiLCBzcC0+cGF0aCwgIn0iLCBO VUxMKTsKKyAgICAgcnN0cmNhdCgmYnVmLAorIAkiXG5TVEFUVVM9JD9cbiIKKyAJImlmIFsgJFNU QVRVUyAtbmUgMCBdOyB0aGVuXG4iCitAQCAtMTY1LDEyICsxNjcsMTMgQEAgc3RhdGljIGludCBk b1NldHVwTWFjcm8ocnBtU3BlYyBzcGVjLCBjb25zdCBjaGFyICpsaW5lKQorICAgICBycG1SQyBy YyA9IFJQTVJDX0ZBSUw7CisgICAgIHVpbnQzMl90IG51bTsKKyAgICAgaW50IGxlYXZlRGlycyA9 IDAsIHNraXBEZWZhdWx0QWN0aW9uID0gMDsKKy0gICAgaW50IGNyZWF0ZURpciA9IDAsIHF1aWV0 bHkgPSAwOworKyAgICBpbnQgY3JlYXRlRGlyID0gMCwgcXVpZXRseSA9IDAsIGF1dG9QYXRoID0g MDsKKyAgICAgY2hhciAqIGRpck5hbWUgPSBOVUxMOworICAgICBzdHJ1Y3QgcG9wdE9wdGlvbiBv cHRpb25zVGFibGVbXSA9IHsKKyAJICAgIHsgTlVMTCwgJ2EnLCBQT1BUX0FSR19TVFJJTkcsIE5V TEwsICdhJywJTlVMTCwgTlVMTH0sCisgCSAgICB7IE5VTEwsICdiJywgUE9QVF9BUkdfU1RSSU5H LCBOVUxMLCAnYicsCU5VTEwsIE5VTEx9LAorIAkgICAgeyBOVUxMLCAnYycsIDAsICZjcmVhdGVE aXIsIDAsCQlOVUxMLCBOVUxMfSwKKysJICAgIHsgTlVMTCwgJ0MnLCAwLCAmYXV0b1BhdGgsIDAs CQlOVUxMLCBOVUxMfSwKKyAJICAgIHsgTlVMTCwgJ0QnLCAwLCAmbGVhdmVEaXJzLCAwLAkJTlVM TCwgTlVMTH0sCisgCSAgICB7IE5VTEwsICduJywgUE9QVF9BUkdfU1RSSU5HLCAmZGlyTmFtZSwg MCwJTlVMTCwgTlVMTH0sCisgCSAgICB7IE5VTEwsICdUJywgMCwgJnNraXBEZWZhdWx0QWN0aW9u LCAwLAlOVUxMLCBOVUxMfSwKK0BAIC0yMDIsNyArMjA1LDcgQEAgc3RhdGljIGludCBkb1NldHVw TWFjcm8ocnBtU3BlYyBzcGVjLCBjb25zdCBjaGFyICpsaW5lKQorIAkgICAgZ290byBleGl0Owor IAl9CisgCistCXsgICBjaGFyICpjaHB0ciA9IGRvVW50YXIoc3BlYywgbnVtLCBxdWlldGx5KTsK KysJeyAgIGNoYXIgKmNocHRyID0gZG9VbnRhcihzcGVjLCBudW0sIHF1aWV0bHksIDApOworIAkg ICAgaWYgKGNocHRyID09IE5VTEwpCisgCQlnb3RvIGV4aXQ7CisgCitAQCAtMjU5LDcgKzI2Miw3 IEBAIHN0YXRpYyBpbnQgZG9TZXR1cE1hY3JvKHJwbVNwZWMgc3BlYywgY29uc3QgY2hhciAqbGlu ZSkKKyAKKyAgICAgLyogZG8gdGhlIGRlZmF1bHQgYWN0aW9uICovCisgICAgaWYgKCFza2lwRGVm YXVsdEFjdGlvbikgeworLQljaGFyICpjaHB0ciA9IGRvVW50YXIoc3BlYywgMCwgcXVpZXRseSk7 CisrCWNoYXIgKmNocHRyID0gZG9VbnRhcihzcGVjLCAwLCBxdWlldGx5LCBhdXRvUGF0aCk7Cisg CWlmICghY2hwdHIpCisgCSAgICBnb3RvIGV4aXQ7CisgCWFwcGVuZEJ1ZihzcGVjLCBjaHB0ciwg MSk7CitkaWZmIC0tZ2l0IGEvZG9jcy9tYW51YWwvc3BlYy5tZCBiL2RvY3MvbWFudWFsL3NwZWMu bWQKK2luZGV4IDA5ODA5OTg3NS4uM2FjZTc5ZTU2IDEwMDY0NAorLS0tIGEvZG9jcy9tYW51YWwv c3BlYy5tZAorKysrIGIvZG9jcy9tYW51YWwvc3BlYy5tZAorQEAgLTQ4OSw2ICs0ODksOSBAQCBj YW4ganVzdCBjcmVhdGUgdGhlIGRpcmVjdG9yeS4gSXQgYWNjZXB0cyBhIG51bWJlciBvZiBvcHRp b25zOgorIC1hIE4gICAgICAgIHVucGFjayBzb3VyY2UgTiBhZnRlciBjaGFuZ2luZyB0byB0aGUg YnVpbGQgZGlyZWN0b3J5CisgLWIgTiAgICAgICAgdW5wYWNrIHNvdXJjZSBOIGJlZm9yZSBjaGFu Z2luZyB0byB0aGUgYnVpbGQgZGlyZWN0b3J5CisgLWMgICAgICAgICAgY3JlYXRlIHRoZSBidWls ZCBkaXJlY3RvcnkgKGFuZCBjaGFuZ2UgdG8gaXQpIGJlZm9yZSB1bnBhY2tpbmcKKystQyAgICAg ICAgICBDcmVhdGUgdGhlIGJ1aWxkIGRpcmVjdG9yeSBhbmQgZW5zdXJlIHRoZSBhcmNoaXZlIGNv bnRlbnRzCisrICAgICAgICAgICAgYXJlIHVucGFja2VkIHRoZXJlLCBzdHJpcHBpbmcgdGhlIHRv cCBsZXZlbCBkaXJlY3RvcnkgaW4gdGhlIGFyY2hpdmUKKysgICAgICAgICAgICBpZiBpdCBleGlz dHMKKyAtRCAgICAgICAgICBkbyBub3QgZGVsZXRlIHRoZSBidWlsZCBkaXJlY3RvcnkgcHJpb3Ig dG8gdW5wYWNraW5nICh1c2VkCisgICAgICAgICAgICAgd2hlbiBtb3JlIHRoYW4gb25lIHNvdXJj ZSBpcyB0byBiZSB1bnBhY2tlZCB3aXRoIGAtYWAgb3IgYC1iYCkKKyAtbiBESVIgICAgICBzZXQg dGhlIG5hbWUgb2YgYnVpbGQgZGlyZWN0b3J5IChkZWZhdWx0IGlzIGAle25hbWV9LSV7dmVyc2lv bn1gKQorZGlmZiAtLWdpdCBhL21hY3Jvcy5pbiBiL21hY3Jvcy5pbgoraW5kZXggZWY0MTNhMzU4 Li4xOWJlNzk5MDkgMTAwNjQ0CistLS0gYS9tYWNyb3MuaW4KKysrKyBiL21hY3Jvcy5pbgorQEAg LTEzMzgsOCArMTMzOCw4IEBAIGVuZAorICMgICAgICAgICAgIAl1c2FnZSBvZiBnaXQgcmVwb3Np dG9yeSBhbmQgcGVyLXBhdGNoIGNvbW1pdHMuCisgIyAtTgkJRGlzYWJsZSBhdXRvbWF0aWMgcGF0 Y2ggYXBwbGljYXRpb24KKyAjIC1wPG51bT4JVXNlIC1wPG51bT4gZm9yIHBhdGNoIGFwcGxpY2F0 aW9uCQorLSVhdXRvc2V0dXAoYTpiOmNEbjpUdk5TOnA6KVwKKy0lc2V0dXAgJXstYX0gJXstYn0g JXstY30gJXstRH0gJXstbn0gJXstVH0gJXshLXY6LXF9XAorKyVhdXRvc2V0dXAoYTpiOmNDRG46 VHZOUzpwOilcCisrJXNldHVwICV7LWF9ICV7LWJ9ICV7LWN9ICV7LUN9ICV7LUR9ICV7LW59ICV7 LVR9ICV7IS12Oi1xfVwKKyAley1TOiVnbG9iYWwgX19zY20gJXstUyp9fVwKKyAle2V4cGFuZDol X19zY21fc2V0dXBfJXtfX3NjbX0gJXshLXY6LXF9fVwKKyAleyEtTjolYXV0b3BhdGNoICV7LXZ9 ICV7LXA6LXAley1wKn19fQorZGlmZiAtLWdpdCBhL3Rvb2xzL0NNYWtlTGlzdHMudHh0IGIvdG9v bHMvQ01ha2VMaXN0cy50eHQKK2luZGV4IDViZTRjZjJkMC4uZWE0NTJlNzM4IDEwMDY0NAorLS0t IGEvdG9vbHMvQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rvb2xzL0NNYWtlTGlzdHMudHh0CitAQCAt MTksNiArMTksNyBAQCB0YXJnZXRfbGlua19saWJyYXJpZXMocnBtbHVhIFBSSVZBVEUgTFVBOjpM VUEpCisgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHJwbWJ1aWxkIFBSSVZBVEUgbGlicnBtYnVpbGQp CisgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHJwbXNwZWMgUFJJVkFURSBsaWJycG1idWlsZCkKKyB0 YXJnZXRfbGlua19saWJyYXJpZXMocnBtZGVwcyBQUklWQVRFIGxpYnJwbWJ1aWxkKQorK3Rhcmdl dF9saW5rX2xpYnJhcmllcyhycG11bmNvbXByZXNzIFBSSVZBVEUgUGtnQ29uZmlnOjpMSUJBUkNI SVZFKQorIAorIGlmIChIQVZFX1NUUkNIUk5VTCkKKyAJYWRkX2V4ZWN1dGFibGUocnBtc29ydCBy cG1zb3J0LmMpCitkaWZmIC0tZ2l0IGEvdG9vbHMvcnBtdW5jb21wcmVzcy5jIGIvdG9vbHMvcnBt dW5jb21wcmVzcy5jCitpbmRleCBlMTNjYzZhNjYuLmM0ODMyMzMyYyAxMDA2NDQKKy0tLSBhL3Rv b2xzL3JwbXVuY29tcHJlc3MuYworKysrIGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitAQCAtNiw2 ICs2LDkgQEAKKyAjaW5jbHVkZSA8c3RkaW8uaD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CisgCisr I2luY2x1ZGUgPGFyY2hpdmUuaD4KKysjaW5jbHVkZSA8YXJjaGl2ZV9lbnRyeS5oPgorKworICNp bmNsdWRlIDxycG0vcnBtY2xpLmg+CisgI2luY2x1ZGUgPHJwbS9ycG1zdHJpbmcuaD4KKyAKK0BA IC0xNCw2ICsxNyw3IEBACisgc3RhdGljIGludCB2ZXJib3NlID0gMDsKKyBzdGF0aWMgaW50IGV4 dHJhY3QgPSAwOworIHN0YXRpYyBpbnQgZHJ5cnVuID0gMDsKKytzdGF0aWMgY2hhciAqZHN0cGF0 aCA9IE5VTEw7CisgCisgc3RhdGljIHN0cnVjdCBwb3B0T3B0aW9uIG9wdGlvbnNUYWJsZVtdID0g eworICAgICB7ICJleHRyYWN0IiwgJ3gnLCBQT1BUX0FSR19WQUwsICZleHRyYWN0LCAxLAorQEAg LTIyLDYgKzI2LDggQEAgc3RhdGljIHN0cnVjdCBwb3B0T3B0aW9uIG9wdGlvbnNUYWJsZVtdID0g eworIAlOXygicHJvdmlkZSBtb3JlIGRldGFpbGVkIG91dHB1dCIpLCBOVUxMIH0sCisgICAgIHsg ImRyeS1ydW4iLCAnbicsIFBPUFRfQVJHX1ZBTCwgJmRyeXJ1biwgMSwKKyAJTl8oIm9ubHkgcHJp bnQgd2hhdCB3b3VsZCBiZSBkb25lIiksIE5VTEwgfSwKKysgICAgeyAicGF0aCIsICdDJywgUE9Q VF9BUkdfU1RSSU5HLCAmZHN0cGF0aCwgMCwKKysJTl8oImV4dHJhY3QgaW50byBhIHNwZWNpZmlj IHBhdGgiKSwgTlVMTCB9LAorIAorICAgICBQT1BUX0FVVE9BTElBUworICAgICBQT1BUX0FVVE9I RUxQCitAQCAtNzgsMTYgKzg0LDc4IEBAIHN0YXRpYyBjaGFyICpkb1VuY29tcHJlc3MoY29uc3Qg Y2hhciAqZm4pCisgICAgIHJldHVybiBjbWQ7CisgfQorIAorKy8qKgorKyAqIERldGVjdCBpZiBh biBhcmNoaXZlIGhhcyBhIHNpbmdsZSB0b3AgbGV2ZWwgZW50cnksIGFuZCBpdCdzIGEgZGlyZWN0 b3J5LgorKyAqCisrICogQHBhcmFtIHBhdGgJcGF0aCBvZiB0aGUgYXJjaGl2ZQorKyAqIEByZXR1 cm4JMSBpZiBhcmNoaXZlIGFzIG9ubHkgYSBkaXJlY3RvcnkgYXMgdG9wIGxldmVsIGVudHJ5LAor KyAqIAkJMCBpZiBpdCBjb250YWlucyBtdWx0aXBsZSB0b3AgbGV2ZWwgZW50cmllcyBvciBhIHNp bmdsZSBmaWxlCisrICogCQktMSBvbiBhcmNoaXZlIGVycm9yCisrICovCisrc3RhdGljIGludCBz aW5nbGVSb290KGNvbnN0IGNoYXIgKnBhdGgpCisreworKwlzdHJ1Y3QgYXJjaGl2ZSAqYTsKKysJ c3RydWN0IGFyY2hpdmVfZW50cnkgKmVudHJ5OworKwlpbnQgciwgcmV0ID0gLTEsIHJvb3RMZW47 CisrCWNoYXIgKnJvb3ROYW1lID0gTlVMTDsKKysKKysJYSA9IGFyY2hpdmVfcmVhZF9uZXcoKTsK KysJYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZmlsdGVyX2FsbChhKTsKKysJYXJjaGl2ZV9yZWFkX3N1 cHBvcnRfZm9ybWF0X2FsbChhKTsKKysJciA9IGFyY2hpdmVfcmVhZF9vcGVuX2ZpbGVuYW1lKGEs IHBhdGgsIDEwMjQwKTsKKysJaWYgKHIgIT0gQVJDSElWRV9PSykgeworKwkgICAgZ290byBhZnJl ZTsKKysJfQorKwlpZiAoYXJjaGl2ZV9yZWFkX25leHRfaGVhZGVyKGEsICZlbnRyeSkgIT0gQVJD SElWRV9PSykgeworKwkgICAgZ290byBhZnJlZTsKKysJfQorKwlyb290TmFtZSA9IHhzdHJkdXAo YXJjaGl2ZV9lbnRyeV9wYXRobmFtZShlbnRyeSkpOworKwlyb290TGVuID0gc3RybGVuKHJvb3RO YW1lKTsKKysJaWYgKGFyY2hpdmVfZW50cnlfZmlsZXR5cGUoZW50cnkpICE9IEFFX0lGRElSKSB7 CisrCSAgICAvKiBSb290IGVudHJ5IGlzIG5vdCBhIGRpcmVjdG9yeSAqLworKwkgICAgcmV0ID0g MDsKKysJICAgIGdvdG8gYWZyZWU7CisrCX0KKysJd2hpbGUgKGFyY2hpdmVfcmVhZF9uZXh0X2hl YWRlcihhLCAmZW50cnkpID09IEFSQ0hJVkVfT0spIHsKKysJICAgIGlmIChzdHJuY21wKHJvb3RO YW1lLCBhcmNoaXZlX2VudHJ5X3BhdGhuYW1lKGVudHJ5KSwgcm9vdExlbikpIHsKKysJCS8qIG11 bHRpcGxlIHRvcCBsZXZlbCBlbnRyaWVzICovCisrCQlyZXQgPSAwOworKwkJZ290byBhZnJlZTsK KysJICAgIH0KKysJfQorKwlyZXQgPSAxOworKworK2FmcmVlOgorKwlmcmVlKHJvb3ROYW1lKTsK KysJciA9IGFyY2hpdmVfcmVhZF9mcmVlKGEpOworKwlpZiAociAhPSBBUkNISVZFX09LKQorKwkg ICAgcmV0ID0gLTE7CisrCisrCXJldHVybiByZXQ7CisrfQorKworIHN0YXRpYyBjaGFyICpkb1Vu dGFyKGNvbnN0IGNoYXIgKmZuKQorIHsKKyAgICAgY29uc3Qgc3RydWN0IGFyY2hpdmVUeXBlX3Mg KmF0ID0gTlVMTDsKKyAgICAgY2hhciAqYnVmID0gTlVMTDsKKyAgICAgY2hhciAqdGFyID0gTlVM TDsKKyAgICAgY29uc3QgY2hhciAqdGFyb3B0cyA9IHZlcmJvc2UgPyAiLXh2dm9mIiA6ICIteG9m IjsKKysgICAgY2hhciAqbWtkaXIgPSBOVUxMOworKyAgICBjaGFyICpzdHJpcGNkID0gTlVMTDsK KyAKKyAgICAgaWYgKChhdCA9IGdldEFyY2hpdmVyKGZuKSkgPT0gTlVMTCkKKyAJZ290byBleGl0 OworIAorKyAgICBpZiAoZHN0cGF0aCkgeworKwkgICAgaW50IHNyID0gc2luZ2xlUm9vdChmbik7 CisrCisrCSAgICAvKiB0aGUgdHJpY2sgaXMgc2ltcGxlLCBpZiB0aGUgYXJjaGl2ZSBoYXMgbXVs dGlwbGUgZW50cmllcywKKysJICAgICAqIGp1c3QgZXh0cmFjdCBpdCBpbnRvIHRoZSBzcGVjaWZp ZWQgZGVzdGluYXRpb24gcGF0aCwgb3RoZXJ3aXNlCisrCSAgICAgKiBzdHJpcCB0aGUgZmlyc3Qg cGF0aCBlbnRyeSBhbmQgZXh0cmFjdCBpbiB0aGUgZGVzdGluYXRpb24gcGF0aAorKwkgICAgICov CisrCSAgICByYXNwcmludGYoJm1rZGlyLCAibWtkaXIgJyVzJyA7ICIsIGRzdHBhdGgpOworKwkg ICAgcmFzcHJpbnRmKCZzdHJpcGNkLCAiIC1DICclcycgJXMiLCBkc3RwYXRoLCBzciA/ICItLXN0 cmlwLWNvbXBvbmVudHM9MSIgOiAiIik7CisrICAgIH0KKyAgICAgdGFyID0gcnBtR2V0UGF0aCgi JXtfX3Rhcn0iLCBOVUxMKTsKKyAgICAgaWYgKGF0LT5jb21wcmVzc2VkICE9IENPTVBSRVNTRURf Tk9UKSB7CisgCWNoYXIgKnppcHBlciA9IE5VTEw7CitAQCAtOTYsNyArMTY0LDcgQEAgc3RhdGlj IGNoYXIgKmRvVW50YXIoY29uc3QgY2hhciAqZm4pCisgCXppcHBlciA9IHJwbUV4cGFuZChhdC0+ Y21kLCAiICIsIGF0LT51bnBhY2ssICIgIiwKKyAJCQkgICB2ZXJib3NlID8gIiIgOiBhdC0+cXVp ZXQsIE5VTEwpOworIAlpZiAobmVlZHRhcikgeworLQkgICAgcmFzcHJpbnRmKCZidWYsICIlcyAn JXMnIHwgJXMgJXMgLSIsIHppcHBlciwgZm4sIHRhciwgdGFyb3B0cyk7CisrCSAgICByYXNwcmlu dGYoJmJ1ZiwgIiVzICVzICclcycgfCAlcyAlcyAtICVzIiwgbWtkaXIgPzogIiIsIHppcHBlciwg Zm4sIHRhciwgdGFyb3B0cywgc3RyaXBjZCA/OiAiIik7CisgCX0gZWxzZSBpZiAoYXQtPmNvbXBy ZXNzZWQgPT0gQ09NUFJFU1NFRF9HRU0pIHsKKyAJICAgIGNoYXIgKnRtcCA9IHhzdHJkdXAoZm4p OworIAkgICAgY29uc3QgY2hhciAqYm4gPSBiYXNlbmFtZSh0bXApOworQEAgLTExOSwxMSArMTg3 LDEzIEBAIHN0YXRpYyBjaGFyICpkb1VudGFyKGNvbnN0IGNoYXIgKmZuKQorIAl9CisgCWZyZWUo emlwcGVyKTsKKyAgICAgfSBlbHNlIHsKKy0JcmFzcHJpbnRmKCZidWYsICIlcyAlcyAnJXMnIiwg dGFyLCB0YXJvcHRzLCBmbik7CisrCXJhc3ByaW50ZigmYnVmLCAiJXMgJXMgJXMgJyVzJyAlcyIs IG1rZGlyID86ICIiLCB0YXIsIHRhcm9wdHMsIGZuLCBzdHJpcGNkID86ICIiKTsKKyAgICAgfQor IAorIGV4aXQ6CisgICAgIGZyZWUodGFyKTsKKysgICAgZnJlZShta2Rpcik7CisrICAgIGZyZWUo c3RyaXBjZCk7CisgICAgIHJldHVybiBidWY7CisgfQorIAorLS0gCisyLjU0LjAKKworCitGcm9t IDhlZTgzYTMxNzRmNDk1NmJhYWQzZmViMTY0ZDY4ZDFiNDhlNjI5YjYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIEZlc3RpIDxmZmVzdGlAcmVkaGF0LmNvbT4KK0RhdGU6 IE1vbiwgMTcgSnVuIDIwMjQgMTU6MDM6MjggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAwMi8xNF0g UGFzcyBUWj1VVEMgdG8gemlwIGluIHJwbXVuY29tcHJlc3MKKworVGhlIFpJUCBmb3JtYXQgaGFz IG5vIG5vdGlvbiBvZiB0aW1lIHpvbmUsIHNvIHRpbWVzdGFtcHMgYXJlIG9ubHkKK21lYW5pbmdm dWwgaWYgaXQgaXMga25vd24gd2hhdCB0aW1lIHpvbmUgdGhleSB3ZXJlIGNyZWF0ZWQgaW4uIFBh c3MgVVRDCit0byBwcmV2ZW50IHRpbWUgc3RhbXBzIHRvIGRlcGVuZCBvbiBsb2NhbCB0aW1lIHpv bmUgc2V0dGluZyBhbmQgbWFrZQorYnVpbGRzIGZyb20gc291cmNlcyBpbiB6aXAgZmlsZXMgKG1v cmUpIHJlcHJvZHVjaWJsZS4KKworVGhlIG90aGVyIGFyY2hpdmUgZm9ybWF0cyAoN3ppcCB1c2lu ZyBVVEMsIFJ1YnkgZ2VtcyB1c2luZyB0YXIgYW5kIHRhcgoraXRzZWxmKSBkb24ndCBoYXZlIHRo aXMgaXNzdWUuIEV2ZXJ5dGhpbmcgZWxzZSBhcmUgc3RyZWFtIGNvbXByZXNzb3JzCit0aGF0IGRv bid0IGRlYWwgd2l0aCBmaWxlIG1ldGEgZGF0YS4KKworVGVzdGVkIG1hbnVhbGx5IHdpdGggRmVk b3JhJ3MgeHotamF2YS0xLjkuemlwIGFzIG1lbnRpb25lZCBpbiB0aGUgaXNzdWUuCisKK1Jlc29s dmVzOiAjMjk1NQorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYjg0NzYwOGNjMjIyMzZhZTE5 YWY1MWRjM2ZhZWYxNjM5OGRmNDExMCkKKy0tLQorIHRvb2xzL3JwbXVuY29tcHJlc3MuYyB8IDMx ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTcgaW5z ZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90b29scy9ycG11bmNv bXByZXNzLmMgYi90b29scy9ycG11bmNvbXByZXNzLmMKK2luZGV4IGM0ODMyMzMyYy4uNGM5ZTQ2 YWFkIDEwMDY0NAorLS0tIGEvdG9vbHMvcnBtdW5jb21wcmVzcy5jCisrKysgYi90b29scy9ycG11 bmNvbXByZXNzLmMKK0BAIC00MCwxOSArNDAsMjAgQEAgc3RydWN0IGFyY2hpdmVUeXBlX3Mgewor ICAgICBjb25zdCBjaGFyICpjbWQ7CisgICAgIGNvbnN0IGNoYXIgKnVucGFjazsKKyAgICAgY29u c3QgY2hhciAqcXVpZXQ7CisrICAgIGludCBzZXRUWjsKKyB9IGFyY2hpdmVUeXBlc1tdID0gewor LSAgICB7IENPTVBSRVNTRURfTk9ULAkwLAkiJXtfX2NhdH0iICwJIiIsCQkiIiB9LAorLSAgICB7 IENPTVBSRVNTRURfT1RIRVIsCTAsCSIle19fZ3ppcH0iLAkiLWRjIiwJCSIiICB9LAorLSAgICB7 IENPTVBSRVNTRURfQlpJUDIsCTAsCSIle19fYnppcDJ9IiwJIi1kYyIsCQkiIiB9LAorLSAgICB7 IENPTVBSRVNTRURfWklQLAkxLAkiJXtfX3VuemlwfSIsCSIiLAkJIi1xcSIgfSwKKy0gICAgeyBD T01QUkVTU0VEX0xaTUEsCTAsCSIle19feHp9IiwJIi1kYyIsCQkiIiB9LAorLSAgICB7IENPTVBS RVNTRURfWFosCTAsCSIle19feHp9IiwJIi1kYyIsCQkiIiB9LAorLSAgICB7IENPTVBSRVNTRURf TFpJUCwJMCwJIiV7X19semlwfSIsCSItZGMiLAkJIiIgfSwKKy0gICAgeyBDT01QUkVTU0VEX0xS WklQLAkwLAkiJXtfX2xyemlwfSIsCSItZHFvLSIsCSIiIH0sCistICAgIHsgQ09NUFJFU1NFRF83 WklQLAkxLAkiJXtfXzd6aXB9IiwJIngiLAkJIiIgfSwKKy0gICAgeyBDT01QUkVTU0VEX1pTVEQs CTAsCSIle19fenN0ZH0iLAkiLWRjIiwJCSIiIH0sCistICAgIHsgQ09NUFJFU1NFRF9HRU0sCTEs CSIle19fZ2VtfSIsCSJ1bnBhY2siLAkiIiB9LAorLSAgICB7IC0xLAkJMCwJTlVMTCwJCU5VTEws CQlOVUxMIH0sCisrICAgIHsgQ09NUFJFU1NFRF9OT1QsCTAsCSIle19fY2F0fSIgLAkiIiwJCSIi LCAwIH0sCisrICAgIHsgQ09NUFJFU1NFRF9PVEhFUiwJMCwJIiV7X19nemlwfSIsCSItZGMiLAkJ IiIsIDAgfSwKKysgICAgeyBDT01QUkVTU0VEX0JaSVAyLAkwLAkiJXtfX2J6aXAyfSIsCSItZGMi LAkJIiIsIDAgfSwKKysgICAgeyBDT01QUkVTU0VEX1pJUCwJMSwJIiV7X191bnppcH0iLAkiIiwJ CSItcXEiLCAxIH0sCisrICAgIHsgQ09NUFJFU1NFRF9MWk1BLAkwLAkiJXtfX3h6fSIsCSItZGMi LAkJIiIsIDAgfSwKKysgICAgeyBDT01QUkVTU0VEX1haLAkwLAkiJXtfX3h6fSIsCSItZGMiLAkJ IiIsIDAgfSwKKysgICAgeyBDT01QUkVTU0VEX0xaSVAsCTAsCSIle19fbHppcH0iLAkiLWRjIiwJ CSIiLCAwIH0sCisrICAgIHsgQ09NUFJFU1NFRF9MUlpJUCwJMCwJIiV7X19scnppcH0iLAkiLWRx by0iLAkiIiwgMCB9LAorKyAgICB7IENPTVBSRVNTRURfN1pJUCwJMSwJIiV7X183emlwfSIsCSJ4 IiwJCSIiLCAwIH0sCisrICAgIHsgQ09NUFJFU1NFRF9aU1RELAkwLAkiJXtfX3pzdGR9IiwJIi1k YyIsCQkiIiwgMCB9LAorKyAgICB7IENPTVBSRVNTRURfR0VNLAkxLAkiJXtfX2dlbX0iLAkidW5w YWNrIiwJIiIsIDAgfSwKKysgICAgeyAtMSwJCTAsCU5VTEwsCQlOVUxMLAkJTlVMTCwgMCB9LAor IH07CisgCisgc3RhdGljIGNvbnN0IHN0cnVjdCBhcmNoaXZlVHlwZV9zICpnZXRBcmNoaXZlcihj b25zdCBjaGFyICpmbikKK0BAIC03Nyw3ICs3OCw4IEBAIHN0YXRpYyBjaGFyICpkb1VuY29tcHJl c3MoY29uc3QgY2hhciAqZm4pCisgICAgIGNoYXIgKmNtZCA9IE5VTEw7CisgICAgIGNvbnN0IHN0 cnVjdCBhcmNoaXZlVHlwZV9zICphdCA9IGdldEFyY2hpdmVyKGZuKTsKKyAgICAgaWYgKGF0KSB7 CistCWNtZCA9IHJwbUV4cGFuZChhdC0+Y21kLCAiICIsIGF0LT51bnBhY2ssIE5VTEwpOworKwlj bWQgPSBycG1FeHBhbmQoYXQtPnNldFRaID8gIlRaPVVUQyAiIDogIiIsCisrCQkJYXQtPmNtZCwg IiAiLCBhdC0+dW5wYWNrLCBOVUxMKTsKKyAJLyogcGF0aCBtdXN0IG5vdCBiZSBleHBhbmRlZCAq LworIAljbWQgPSByc3Ryc2NhdCgmY21kLCAiICIsIGZuLCBOVUxMKTsKKyAgICAgfQorQEAgLTE2 MSw3ICsxNjMsOCBAQCBzdGF0aWMgY2hhciAqZG9VbnRhcihjb25zdCBjaGFyICpmbikKKyAJY2hh ciAqemlwcGVyID0gTlVMTDsKKyAJaW50IG5lZWR0YXIgPSAoYXQtPmV4dHJhY3RhYmxlID09IDAp OworIAorLQl6aXBwZXIgPSBycG1FeHBhbmQoYXQtPmNtZCwgIiAiLCBhdC0+dW5wYWNrLCAiICIs CisrCXppcHBlciA9IHJwbUV4cGFuZChhdC0+c2V0VFogPyAiVFo9VVRDICIgOiAiIiwKKysJCQkg ICBhdC0+Y21kLCAiICIsIGF0LT51bnBhY2ssICIgIiwKKyAJCQkgICB2ZXJib3NlID8gIiIgOiBh dC0+cXVpZXQsIE5VTEwpOworIAlpZiAobmVlZHRhcikgeworIAkgICAgcmFzcHJpbnRmKCZidWYs ICIlcyAlcyAnJXMnIHwgJXMgJXMgLSAlcyIsIG1rZGlyID86ICIiLCB6aXBwZXIsIGZuLCB0YXIs IHRhcm9wdHMsIHN0cmlwY2QgPzogIiIpOworLS0gCisyLjU0LjAKKworCitGcm9tIGM0ZjU2YzA4 OThiNDcwODExMDM0ZjYyMDk5ZjcwYmU3MzNkNThiMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBGbG9yaWFuIEZlc3RpIDxmZmVzdGlAcmVkaGF0LmNvbT4KK0RhdGU6IE1vbiwgMTcg SnVuIDIwMjQgMTg6MTk6NDUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAwMy8xNF0gRnJlZSBjbWQg Zm9yIC0tZHJ5LXJ1biB0b28KKworUHJldmVudCBtZW1vcnkgbGVhayBhbmQgdGhlIG1lbW9yeSBz YW5hdGl6ZXIgZmFpbGluZy4KKworKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZThhMjUyZGNh OWYwNzMxZGM1ZjI0ZDkxNDQ3YTY5MDYzNjNmZjllYykKKy0tLQorIHRvb2xzL3JwbXVuY29tcHJl c3MuYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKKworZGlmZiAtLWdpdCBhL3Rvb2xzL3JwbXVuY29tcHJlc3MuYyBiL3Rvb2xzL3JwbXVuY29t cHJlc3MuYworaW5kZXggNGM5ZTQ2YWFkLi5lODIzMmFjYmMgMTAwNjQ0CistLS0gYS90b29scy9y cG11bmNvbXByZXNzLmMKKysrKyBiL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworQEAgLTIzNCwxMCAr MjM0LDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgCSAgICBpZiAoV0lG RVhJVEVEKHN0YXR1cykgJiYgV0VYSVRTVEFUVVMoc3RhdHVzKSA9PSAwKQorIAkJZWMgPSBFWElU X1NVQ0NFU1M7CisgCX0KKy0JZnJlZShjbWQpOworICAgICB9CisgCisgZXhpdDoKKysgICAgZnJl ZShjbWQpOworICAgICBycG1jbGlGaW5pKG9wdENvbik7CisgICAgIHJldHVybiBlYzsKKyB9Cist LSAKKzIuNTQuMAorCisKK0Zyb20gYjk0ZDdiNTdhYWE4MGQ3YmIxNzFkYTg0NjIxNWYzMDZiM2Q3 OGMzZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBhbnUgTWF0aWxhaW5lbiA8cG1h dGlsYWlAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMjcgQXVnIDIwMjQgMTM6Mjc6MjAgKzAzMDAK K1N1YmplY3Q6IFtQQVRDSCAwNC8xNF0gV29yayBhcm91bmQgdW5vd25lZCBkaXJlY3RvcmllcyBp biBycG11bmNvbXByZXNzIC1DCisKK1NvbWUgYXJjaGl2ZXMgaGF2ZSBhIGRpcmVjdG9yeSBwcmVm aXggYnV0IGFyZSBtaXNzaW5nIHRoZSBsZWFkaW5nCitkaXJlY3RvcnkgZW50cnksIHdvcmsgYXJv dW5kIGl0IGJ5IGp1c3QgY29tcGFyaW5nIHRoZSBsZWFkaW5nIGRpcmVjdG9yeQorY29tcG9uZW50 cyAoaWYgYW55KSBhY3Jvc3MgdGhlIGFyY2hpdmUuCisKK0FkZCB0ZXN0cyBmb3IgdW5vd25lZCBk aXJlY3RvcmllcyB3aXRoIHJwbXVuY29tcHJlc3MgLUMKKworR05VIHRhciBzZWVtcyB0byBhbHdh eXMgcGxhY2UgdGhlIHJvb3QgZGlyZWN0b3J5IG5vZGUgaW4gdGhlcmUsIGJ1dAorY2xlYXJseSBu b3QgYWxsIGltcGxlbWVudGF0aW9ucyBkby4gT25lIG9mIHRoZW0gYmVpbmcgUHl0aG9uIHRhcmZp bGUKK2FzIG9mIFB5dGhvbiAzLjEyLjUsIHNvIHRoZSB0ZXN0LXRhcmJhbGxzIGNyZWF0ZWQgZnJv bSB0aGUgcHJlLWV4aXN0aW5nCitzb3VyY2Utc2luZ2xlcm9vdC50YXIuZ3ogY29udGVudCB3aXRo OgorCisJaW1wb3J0IHRhcmZpbGUKKworCXRhciA9IHRhcmZpbGUub3Blbigic291cmNlLXNpbmds ZXJvb3QtdW5vd25lZDEudGFyLmd6IiwgInc6Z3oiKQorCWZvciBuYW1lIGluIFsic291cmNlLXN0 cmlwL2ZpbGUxIiwgInNvdXJjZS1zdHJpcC9maWxlMiJdOgorCSAgICB0YXIuYWRkKG5hbWUpCisJ dGFyLmNsb3NlKCkKKworCXRhciA9IHRhcmZpbGUub3Blbigic291cmNlLXNpbmdsZXJvb3QtdW5v d25lZDIudGFyLmd6IiwgInc6Z3oiKQorCWZvciBuYW1lIGluIFsic291cmNlLXN0cmlwL2RpcjEi LCAic291cmNlLXN0cmlwL2ZpbGUxIiwKKwkJCSJzb3VyY2Utc3RyaXAvZmlsZTIiXToKKwkgICAg dGFyLmFkZChuYW1lKQorCXRhci5jbG9zZSgpCisKK0ZpeGVzOiAjMzI1MAorKGNoZXJyeSBwaWNr ZWQgZnJvbSBjb21taXQgNjcxZmM4ZTVkNjYzM2MxNGM5NjIxOTAzYTIzYzAwNDBhY2I0M2Y2NSkK Ky0tLQorIHRvb2xzL3JwbXVuY29tcHJlc3MuYyB8IDEzICsrKysrKysrLS0tLS0KKyAxIGZpbGUg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEv dG9vbHMvcnBtdW5jb21wcmVzcy5jIGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitpbmRleCBlODIz MmFjYmMuLjJjZjk4OGRhYyAxMDA2NDQKKy0tLSBhL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworKysr IGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitAQCAtMTEyLDE1ICsxMTIsMTggQEAgc3RhdGljIGlu dCBzaW5nbGVSb290KGNvbnN0IGNoYXIgKnBhdGgpCisgCSAgICBnb3RvIGFmcmVlOworIAl9Cisg CXJvb3ROYW1lID0geHN0cmR1cChhcmNoaXZlX2VudHJ5X3BhdGhuYW1lKGVudHJ5KSk7CistCXJv b3RMZW4gPSBzdHJsZW4ocm9vdE5hbWUpOworLQlpZiAoYXJjaGl2ZV9lbnRyeV9maWxldHlwZShl bnRyeSkgIT0gQUVfSUZESVIpIHsKKy0JICAgIC8qIFJvb3QgZW50cnkgaXMgbm90IGEgZGlyZWN0 b3J5ICovCisrCWNoYXIgKnNlcCA9IHN0cmNocihyb290TmFtZSwgJy8nKTsKKysJaWYgKHNlcCA9 PSBOVUxMKSB7CisrCSAgICAvKiBObyBkaXJlY3RvcmllcyBpbiB0aGUgcGF0aG5hbWUgKi8KKyAJ ICAgIHJldCA9IDA7CisgCSAgICBnb3RvIGFmcmVlOworIAl9CisrCisrCS8qIERvIGFsbCBlbnRy aWVzIGluIHRoZSBhcmNoaXZlIHN0YXJ0IHdpdGggdGhlIHNhbWUgbGVhZCBkaXJlY3Rvcnk/ICov CisrCXJvb3RMZW4gPSBzZXAgLSByb290TmFtZSArIDE7CisgCXdoaWxlIChhcmNoaXZlX3JlYWRf bmV4dF9oZWFkZXIoYSwgJmVudHJ5KSA9PSBBUkNISVZFX09LKSB7CistCSAgICBpZiAoc3RybmNt cChyb290TmFtZSwgYXJjaGl2ZV9lbnRyeV9wYXRobmFtZShlbnRyeSksIHJvb3RMZW4pKSB7Cist CQkvKiBtdWx0aXBsZSB0b3AgbGV2ZWwgZW50cmllcyAqLworKwkgICAgY29uc3QgY2hhciAqcCA9 IGFyY2hpdmVfZW50cnlfcGF0aG5hbWUoZW50cnkpOworKwkgICAgaWYgKHN0cm5jbXAocm9vdE5h bWUsIHAsIHJvb3RMZW4pKSB7CisgCQlyZXQgPSAwOworIAkJZ290byBhZnJlZTsKKyAJICAgIH0K Ky0tIAorMi41NC4wCisKKworRnJvbSBiNzU0YjdiYWEyYWIwN2NiNGI5ODdiNmM0ZDE2MGExMjE5 N2UzMjBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBGZXN0aSA8ZmZl c3RpQHJlZGhhdC5jb20+CitEYXRlOiBUaHUsIDI5IEF1ZyAyMDI0IDEyOjI5OjA1ICswMjAwCitT dWJqZWN0OiBbUEFUQ0ggMDUvMTRdIFJlcGxhY2UgZ2NjIG9ubHkgPyA6IG9wZXJhdG9yIHVzYWdl CisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGM5MDczM2Q5NmU5M2YzNTQ0ODUzODIxNzg3 MTkwZmJiMDE0NzJiMTUpCistLS0KKyB0b29scy9ycG11bmNvbXByZXNzLmMgfCAyMyArKysrKysr KysrKysrLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAxMCBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3Rvb2xzL3JwbXVuY29tcHJlc3MuYyBiL3Rvb2xz L3JwbXVuY29tcHJlc3MuYworaW5kZXggMmNmOTg4ZGFjLi5hM2I3NDY0ZDIgMTAwNjQ0CistLS0g YS90b29scy9ycG11bmNvbXByZXNzLmMKKysrKyBiL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworQEAg LTE1MiwxNCArMTUyLDE3IEBAIHN0YXRpYyBjaGFyICpkb1VudGFyKGNvbnN0IGNoYXIgKmZuKQor IAlnb3RvIGV4aXQ7CisgCisgICAgIGlmIChkc3RwYXRoKSB7CistCSAgICBpbnQgc3IgPSBzaW5n bGVSb290KGZuKTsKKy0KKy0JICAgIC8qIHRoZSB0cmljayBpcyBzaW1wbGUsIGlmIHRoZSBhcmNo aXZlIGhhcyBtdWx0aXBsZSBlbnRyaWVzLAorLQkgICAgICoganVzdCBleHRyYWN0IGl0IGludG8g dGhlIHNwZWNpZmllZCBkZXN0aW5hdGlvbiBwYXRoLCBvdGhlcndpc2UKKy0JICAgICAqIHN0cmlw IHRoZSBmaXJzdCBwYXRoIGVudHJ5IGFuZCBleHRyYWN0IGluIHRoZSBkZXN0aW5hdGlvbiBwYXRo CistCSAgICAgKi8KKy0JICAgIHJhc3ByaW50ZigmbWtkaXIsICJta2RpciAnJXMnIDsgIiwgZHN0 cGF0aCk7CistCSAgICByYXNwcmludGYoJnN0cmlwY2QsICIgLUMgJyVzJyAlcyIsIGRzdHBhdGgs IHNyID8gIi0tc3RyaXAtY29tcG9uZW50cz0xIiA6ICIiKTsKKysJaW50IHNyID0gc2luZ2xlUm9v dChmbik7CisrCisrCS8qIHRoZSB0cmljayBpcyBzaW1wbGUsIGlmIHRoZSBhcmNoaXZlIGhhcyBt dWx0aXBsZSBlbnRyaWVzLAorKwkgKiBqdXN0IGV4dHJhY3QgaXQgaW50byB0aGUgc3BlY2lmaWVk IGRlc3RpbmF0aW9uIHBhdGgsIG90aGVyd2lzZQorKwkgKiBzdHJpcCB0aGUgZmlyc3QgcGF0aCBl bnRyeSBhbmQgZXh0cmFjdCBpbiB0aGUgZGVzdGluYXRpb24gcGF0aAorKwkgKi8KKysJcmFzcHJp bnRmKCZta2RpciwgIm1rZGlyICclcycgOyAiLCBkc3RwYXRoKTsKKysJcmFzcHJpbnRmKCZzdHJp cGNkLCAiIC1DICclcycgJXMiLCBkc3RwYXRoLCBzciA/ICItLXN0cmlwLWNvbXBvbmVudHM9MSIg OiAiIik7CisrICAgIH0gZWxzZSB7CisrCW1rZGlyID0geHN0cmR1cCgiIik7CisrCXN0cmlwY2Qg PSB4c3RyZHVwKCIiKTsKKyAgICAgfQorICAgICB0YXIgPSBycG1HZXRQYXRoKCIle19fdGFyfSIs IE5VTEwpOworICAgICBpZiAoYXQtPmNvbXByZXNzZWQgIT0gQ09NUFJFU1NFRF9OT1QpIHsKK0BA IC0xNzAsNyArMTczLDcgQEAgc3RhdGljIGNoYXIgKmRvVW50YXIoY29uc3QgY2hhciAqZm4pCisg CQkJICAgYXQtPmNtZCwgIiAiLCBhdC0+dW5wYWNrLCAiICIsCisgCQkJICAgdmVyYm9zZSA/ICIi IDogYXQtPnF1aWV0LCBOVUxMKTsKKyAJaWYgKG5lZWR0YXIpIHsKKy0JICAgIHJhc3ByaW50Zigm YnVmLCAiJXMgJXMgJyVzJyB8ICVzICVzIC0gJXMiLCBta2RpciA/OiAiIiwgemlwcGVyLCBmbiwg dGFyLCB0YXJvcHRzLCBzdHJpcGNkID86ICIiKTsKKysJICAgIHJhc3ByaW50ZigmYnVmLCAiJXMg JXMgJyVzJyB8ICVzICVzIC0gJXMiLCBta2RpciwgemlwcGVyLCBmbiwgdGFyLCB0YXJvcHRzLCBz dHJpcGNkKTsKKyAJfSBlbHNlIGlmIChhdC0+Y29tcHJlc3NlZCA9PSBDT01QUkVTU0VEX0dFTSkg eworIAkgICAgY2hhciAqdG1wID0geHN0cmR1cChmbik7CisgCSAgICBjb25zdCBjaGFyICpibiA9 IGJhc2VuYW1lKHRtcCk7CitAQCAtMTkzLDcgKzE5Niw3IEBAIHN0YXRpYyBjaGFyICpkb1VudGFy KGNvbnN0IGNoYXIgKmZuKQorIAl9CisgCWZyZWUoemlwcGVyKTsKKyAgICAgfSBlbHNlIHsKKy0J cmFzcHJpbnRmKCZidWYsICIlcyAlcyAlcyAnJXMnICVzIiwgbWtkaXIgPzogIiIsIHRhciwgdGFy b3B0cywgZm4sIHN0cmlwY2QgPzogIiIpOworKwlyYXNwcmludGYoJmJ1ZiwgIiVzICVzICVzICcl cycgJXMiLCBta2RpciwgdGFyLCB0YXJvcHRzLCBmbiwgc3RyaXBjZCk7CisgICAgIH0KKyAKKyBl eGl0OgorLS0gCisyLjU0LjAKKworCitGcm9tIGRjMmEyZDA2MDA2YjNmNTVkZmQ0ZTgwYmNkOGY4 ZTgwMWZmMGMwYzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIEZlc3Rp IDxmZmVzdGlAcmVkaGF0LmNvbT4KK0RhdGU6IFRodSwgMjkgQXVnIDIwMjQgMTU6NDA6MTggKzAy MDAKK1N1YmplY3Q6IFtQQVRDSCAwNi8xNF0gUmV0dXJuIHVuaXF1ZSB0b3AgZGlyZWN0b3J5IGlm ZiBpdCBleGlzdHMKKworVXNlZCBpbiB0aGUgbmV4dCBjb21taXQuCisKKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IDdiNDZhMGQwYzMzNmVlODY1ODIxZGU1M2NkY2ZmZjA5NzUyNjY5ZWQpCist LS0KKyB0b29scy9ycG11bmNvbXByZXNzLmMgfCAxOCArKysrKysrKysrKy0tLS0tLS0KKyAxIGZp bGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBhL3Rvb2xzL3JwbXVuY29tcHJlc3MuYyBiL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworaW5kZXgg YTNiNzQ2NGQyLi44ODk1NmQxNzMgMTAwNjQ0CistLS0gYS90b29scy9ycG11bmNvbXByZXNzLmMK KysrKyBiL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworQEAgLTkwLDExICs5MCwxMSBAQCBzdGF0aWMg Y2hhciAqZG9VbmNvbXByZXNzKGNvbnN0IGNoYXIgKmZuKQorICAqIERldGVjdCBpZiBhbiBhcmNo aXZlIGhhcyBhIHNpbmdsZSB0b3AgbGV2ZWwgZW50cnksIGFuZCBpdCdzIGEgZGlyZWN0b3J5Lgor ICAqCisgICogQHBhcmFtIHBhdGgJcGF0aCBvZiB0aGUgYXJjaGl2ZQorLSAqIEByZXR1cm4JMSBp ZiBhcmNoaXZlIGFzIG9ubHkgYSBkaXJlY3RvcnkgYXMgdG9wIGxldmVsIGVudHJ5LAorLSAqIAkJ MCBpZiBpdCBjb250YWlucyBtdWx0aXBsZSB0b3AgbGV2ZWwgZW50cmllcyBvciBhIHNpbmdsZSBm aWxlCistICogCQktMSBvbiBhcmNoaXZlIGVycm9yCisrICogQHJldHVybglvbmx5IHRvcCBsZXZl bCBkaXJlY3RvcnkgKGlmIGFueSksCisrICogCQlOVUxMIGlmIGl0IGNvbnRhaW5zIG11bHRpcGxl IHRvcCBsZXZlbCBlbnRyaWVzIG9yIGEgc2luZ2xlIGZpbGUKKysgKiAJCW9yIG9uIGFyY2hpdmUg ZXJyb3IKKyAgKi8KKy1zdGF0aWMgaW50IHNpbmdsZVJvb3QoY29uc3QgY2hhciAqcGF0aCkKKytz dGF0aWMgY2hhciAqIHNpbmdsZVJvb3QoY29uc3QgY2hhciAqcGF0aCkKKyB7CisgCXN0cnVjdCBh cmNoaXZlICphOworIAlzdHJ1Y3QgYXJjaGl2ZV9lbnRyeSAqZW50cnk7CitAQCAtMTI4LDE1ICsx MjgsMTggQEAgc3RhdGljIGludCBzaW5nbGVSb290KGNvbnN0IGNoYXIgKnBhdGgpCisgCQlnb3Rv IGFmcmVlOworIAkgICAgfQorIAl9CisrCSpzZXAgPSAnXDAnOworIAlyZXQgPSAxOworIAorIGFm cmVlOgorLQlmcmVlKHJvb3ROYW1lKTsKKyAJciA9IGFyY2hpdmVfcmVhZF9mcmVlKGEpOworIAlp ZiAociAhPSBBUkNISVZFX09LKQorIAkgICAgcmV0ID0gLTE7CisgCistCXJldHVybiByZXQ7Cisr CWlmIChyZXQgIT0gMSkKKysJICAgIHJvb3ROYW1lID0gX2ZyZWUocm9vdE5hbWUpOworKworKwly ZXR1cm4gcm9vdE5hbWU7CisgfQorIAorIHN0YXRpYyBjaGFyICpkb1VudGFyKGNvbnN0IGNoYXIg KmZuKQorQEAgLTE1Miw3ICsxNTUsNyBAQCBzdGF0aWMgY2hhciAqZG9VbnRhcihjb25zdCBjaGFy ICpmbikKKyAJZ290byBleGl0OworIAorICAgICBpZiAoZHN0cGF0aCkgeworLQlpbnQgc3IgPSBz aW5nbGVSb290KGZuKTsKKysJY2hhciAqIHNyID0gc2luZ2xlUm9vdChmbik7CisgCisgCS8qIHRo ZSB0cmljayBpcyBzaW1wbGUsIGlmIHRoZSBhcmNoaXZlIGhhcyBtdWx0aXBsZSBlbnRyaWVzLAor IAkgKiBqdXN0IGV4dHJhY3QgaXQgaW50byB0aGUgc3BlY2lmaWVkIGRlc3RpbmF0aW9uIHBhdGgs IG90aGVyd2lzZQorQEAgLTE2MCw2ICsxNjMsNyBAQCBzdGF0aWMgY2hhciAqZG9VbnRhcihjb25z dCBjaGFyICpmbikKKyAJICovCisgCXJhc3ByaW50ZigmbWtkaXIsICJta2RpciAnJXMnIDsgIiwg ZHN0cGF0aCk7CisgCXJhc3ByaW50Zigmc3RyaXBjZCwgIiAtQyAnJXMnICVzIiwgZHN0cGF0aCwg c3IgPyAiLS1zdHJpcC1jb21wb25lbnRzPTEiIDogIiIpOworKwlmcmVlKHNyKTsKKyAgICAgfSBl bHNlIHsKKyAJbWtkaXIgPSB4c3RyZHVwKCIiKTsKKyAJc3RyaXBjZCA9IHhzdHJkdXAoIiIpOwor LS0gCisyLjU0LjAKKworCitGcm9tIDU4NDdhMzY2YzkxNzJlYWFiZDI3NDMxMTljOGY4Yjk0YjBi M2U5ZWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIEZlc3RpIDxmZmVz dGlAcmVkaGF0LmNvbT4KK0RhdGU6IFRodSwgMjkgQXVnIDIwMjQgMTU6MTE6NTEgKzAyMDAKK1N1 YmplY3Q6IFtQQVRDSCAwNy8xNF0gcnBtdW5jb21wcmVzczogU3VwcG9ydCAtQyBmb3IgemlwIGFu ZCA3emlwIGFyY2hpdmVzCisKK0FzIGJvdGggZG9uJ3Qgc3VwcG9ydCBhbiBlcXVpdmFsZW50IHRv IHRhcnMgLS1zdHJpcC1jb21wb25lbnRzPTEgd2UgbW92ZQordGhlIGZpbGVzIG91dCBvZiB0b3Ag ZGlyZWN0b3J5IG91cnNlbHZlcyB3aXRoIHNoZWxsIGNvbW1hbmRzLgorCitTdXBwb3J0IGZvciBS dWJ5IGdlbXMgaXMgc3RpbGwgbWlzc2luZyAtIGlmZiBhdCBhbGwgcG9zc2libGUgb3IKK2Rlc2ly YWJsZS4KKworUmVzb2x2ZXM6ICMzMjQ5CisoYmFja3BvcnRlZCBmcm9tIGNvbW1pdCBhYmYwNTc2 MTZkOGY3M2NjMDU0MDUyMDEyMWVhM2M0Y2FkNWQ4Y2RkKQorLS0tCisgdG9vbHMvcnBtdW5jb21w cmVzcy5jIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQor IDEgZmlsZSBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL3Rvb2xzL3JwbXVuY29tcHJlc3MuYyBiL3Rvb2xzL3JwbXVuY29tcHJlc3MuYwor aW5kZXggODg5NTZkMTczLi42OTJjYTMyMmYgMTAwNjQ0CistLS0gYS90b29scy9ycG11bmNvbXBy ZXNzLmMKKysrKyBiL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworQEAgLTQwLDE5ICs0MCwyMCBAQCBz dHJ1Y3QgYXJjaGl2ZVR5cGVfcyB7CisgICAgIGNvbnN0IGNoYXIgKmNtZDsKKyAgICAgY29uc3Qg Y2hhciAqdW5wYWNrOworICAgICBjb25zdCBjaGFyICpxdWlldDsKKysgICAgY29uc3QgY2hhciAq ZGVzdDsKKyAgICAgaW50IHNldFRaOworIH0gYXJjaGl2ZVR5cGVzW10gPSB7CistICAgIHsgQ09N UFJFU1NFRF9OT1QsCTAsCSIle19fY2F0fSIgLAkiIiwJCSIiLCAwIH0sCistICAgIHsgQ09NUFJF U1NFRF9PVEhFUiwJMCwJIiV7X19nemlwfSIsCSItZGMiLAkJIiIsIDAgfSwKKy0gICAgeyBDT01Q UkVTU0VEX0JaSVAyLAkwLAkiJXtfX2J6aXAyfSIsCSItZGMiLAkJIiIsIDAgfSwKKy0gICAgeyBD T01QUkVTU0VEX1pJUCwJMSwJIiV7X191bnppcH0iLAkiIiwJCSItcXEiLCAxIH0sCistICAgIHsg Q09NUFJFU1NFRF9MWk1BLAkwLAkiJXtfX3h6fSIsCSItZGMiLAkJIiIsIDAgfSwKKy0gICAgeyBD T01QUkVTU0VEX1haLAkwLAkiJXtfX3h6fSIsCSItZGMiLAkJIiIsIDAgfSwKKy0gICAgeyBDT01Q UkVTU0VEX0xaSVAsCTAsCSIle19fbHppcH0iLAkiLWRjIiwJCSIiLCAwIH0sCistICAgIHsgQ09N UFJFU1NFRF9MUlpJUCwJMCwJIiV7X19scnppcH0iLAkiLWRxby0iLAkiIiwgMCB9LAorLSAgICB7 IENPTVBSRVNTRURfN1pJUCwJMSwJIiV7X183emlwfSIsCSJ4IiwJCSIiLCAwIH0sCistICAgIHsg Q09NUFJFU1NFRF9aU1RELAkwLAkiJXtfX3pzdGR9IiwJIi1kYyIsCQkiIiwgMCB9LAorLSAgICB7 IENPTVBSRVNTRURfR0VNLAkxLAkiJXtfX2dlbX0iLAkidW5wYWNrIiwJIiIsIDAgfSwKKysgICAg eyBDT01QUkVTU0VEX05PVCwJMCwJIiV7X19jYXR9IiAsCSIiLAkJIiIsICIiLCAwIH0sCisrICAg IHsgQ09NUFJFU1NFRF9PVEhFUiwJMCwJIiV7X19nemlwfSIsCSItZGMiLAkJIiIsICIiLCAwIH0s CisrICAgIHsgQ09NUFJFU1NFRF9CWklQMiwJMCwJIiV7X19iemlwMn0iLAkiLWRjIiwJCSIiLCAi IiwgMCB9LAorKyAgICB7IENPTVBSRVNTRURfWklQLAkxLAkiJXtfX3VuemlwfSIsCSIiLAkJIi1x cSIsICItZCIsIDEgfSwKKysgICAgeyBDT01QUkVTU0VEX0xaTUEsCTAsCSIle19feHp9IiwJIi1k YyIsCQkiIiwgIiIsIDAgfSwKKysgICAgeyBDT01QUkVTU0VEX1haLAkwLAkiJXtfX3h6fSIsCSIt ZGMiLAkJIiIsICIiLCAwIH0sCisrICAgIHsgQ09NUFJFU1NFRF9MWklQLAkwLAkiJXtfX2x6aXB9 IiwJIi1kYyIsCQkiIiwgIiIsIDAgfSwKKysgICAgeyBDT01QUkVTU0VEX0xSWklQLAkwLAkiJXtf X2xyemlwfSIsCSItZHFvLSIsCSIiLCAiIiwgMCB9LAorKyAgICB7IENPTVBSRVNTRURfN1pJUCwJ MSwJIiV7X183emlwfSIsCSJ4IiwJCSItYnNvMCAtYnNwMCIsICItbyIsIDAgfSwKKysgICAgeyBD T01QUkVTU0VEX1pTVEQsCTAsCSIle19fenN0ZH0iLAkiLWRjIiwJCSIiLCAiIiwgMCB9LAorKyAg ICB7IENPTVBSRVNTRURfR0VNLAkxLAkiJXtfX2dlbX0iLAkidW5wYWNrIiwJIiIsICItLXRhcmdl dD0iLCAwIH0sCisgICAgIHsgLTEsCQkwLAlOVUxMLAkJTlVMTCwJCU5VTEwsIDAgfSwKKyB9Owor IAorQEAgLTE1NCwxNSArMTU1LDM3IEBAIHN0YXRpYyBjaGFyICpkb1VudGFyKGNvbnN0IGNoYXIg KmZuKQorICAgICBpZiAoKGF0ID0gZ2V0QXJjaGl2ZXIoZm4pKSA9PSBOVUxMKQorIAlnb3RvIGV4 aXQ7CisgCisrICAgIGludCBuZWVkdGFyID0gKGF0LT5leHRyYWN0YWJsZSA9PSAwKTsKKysKKyAg ICAgaWYgKGRzdHBhdGgpIHsKKyAJY2hhciAqIHNyID0gc2luZ2xlUm9vdChmbik7CisgCistCS8q IHRoZSB0cmljayBpcyBzaW1wbGUsIGlmIHRoZSBhcmNoaXZlIGhhcyBtdWx0aXBsZSBlbnRyaWVz LAorLQkgKiBqdXN0IGV4dHJhY3QgaXQgaW50byB0aGUgc3BlY2lmaWVkIGRlc3RpbmF0aW9uIHBh dGgsIG90aGVyd2lzZQorLQkgKiBzdHJpcCB0aGUgZmlyc3QgcGF0aCBlbnRyeSBhbmQgZXh0cmFj dCBpbiB0aGUgZGVzdGluYXRpb24gcGF0aAorKwkvKiBpZiB0aGUgYXJjaGl2ZSBoYXMgbXVsdGlw bGUgZW50cmllcywganVzdCBleHRyYWN0IGl0IGludG8gdGhlCisrCSAqIHNwZWNpZmllZCBkZXN0 aW5hdGlvbiBwYXRoLCBvdGhlcndpc2UgYWxzbyBzdHJpcCB0aGUgZmlyc3QgcGF0aAorKwkgKiBl bnRyeQorIAkgKi8KKy0JcmFzcHJpbnRmKCZta2RpciwgIm1rZGlyICclcycgOyAiLCBkc3RwYXRo KTsKKy0JcmFzcHJpbnRmKCZzdHJpcGNkLCAiIC1DICclcycgJXMiLCBkc3RwYXRoLCBzciA/ICIt LXN0cmlwLWNvbXBvbmVudHM9MSIgOiAiIik7CisrCWlmIChuZWVkdGFyKSB7CisrCSAgICByYXNw cmludGYoJm1rZGlyLCAibWtkaXIgLXAgJyVzJyA7ICIsIGRzdHBhdGgpOworKwkgICAgcmFzcHJp bnRmKCZzdHJpcGNkLCAiIC1DICclcycgJXMiLCBkc3RwYXRoLCBzciA/ICItLXN0cmlwLWNvbXBv bmVudHM9MSIgOiAiIik7CisrCX0gZWxzZSB7CisrCSAgICBpZiAoc3IpIHsKKysJCXJhc3ByaW50 ZigmbWtkaXIsICJta2RpciAtcCAnJXMnIDsgdG1wPWBta3RlbXAgLWQgLXAnJXMnYCA7ICIsCisr CQkJICBkc3RwYXRoLCBkc3RwYXRoKTsKKysJCWNoYXIgKiBtb3ZldXA7CisrCQkvKiBFeHRyYWN0 IGludG8gdGVtcCBkaXJlY3RvcnkgdG8gYXZvaWQgY29sbGlzaW9ucyAqLworKwkJLyogdGhlbiBt b3ZlIGZpbGVzIGluIHRvcCBkaXIgdHdvIGxldmVscyB1cCAqLworKwkJcmFzcHJpbnRmKAorKwkJ ICAgICZtb3ZldXAsCisrCQkgICAgIiAmJiAiCisrCQkgICAgIihzaG9wdCAtcyBkb3RnbG9iOyBt diBcIiR0bXBcIi8nJXMnLyogJyVzJykgJiYgIgorKwkJICAgICJybWRpciBcIiR0bXBcIi8nJXMn IFwiJHRtcFwiICIsIHNyLCBkc3RwYXRoLCBzcik7CisrCQlyYXNwcmludGYoJnN0cmlwY2QsICIl c1wiJHRtcFwiICVzIiwgYXQtPmRlc3QsIG1vdmV1cCk7CisrCQlmcmVlKG1vdmV1cCk7CisrCSAg ICB9IGVsc2UgeworKwkJcmFzcHJpbnRmKCZta2RpciwgIm1rZGlyIC1wICclcycgOyAiLCBkc3Rw YXRoKTsKKysJCXJhc3ByaW50Zigmc3RyaXBjZCwgIiVzJyVzJyIsIGF0LT5kZXN0LCBkc3RwYXRo KTsKKysJICAgIH0KKysJfQorIAlmcmVlKHNyKTsKKyAgICAgfSBlbHNlIHsKKyAJbWtkaXIgPSB4 c3RyZHVwKCIiKTsKK0BAIC0xNzEsNyArMTk0LDYgQEAgc3RhdGljIGNoYXIgKmRvVW50YXIoY29u c3QgY2hhciAqZm4pCisgICAgIHRhciA9IHJwbUdldFBhdGgoIiV7X190YXJ9IiwgTlVMTCk7Cisg ICAgIGlmIChhdC0+Y29tcHJlc3NlZCAhPSBDT01QUkVTU0VEX05PVCkgeworIAljaGFyICp6aXBw ZXIgPSBOVUxMOworLQlpbnQgbmVlZHRhciA9IChhdC0+ZXh0cmFjdGFibGUgPT0gMCk7CisgCisg CXppcHBlciA9IHJwbUV4cGFuZChhdC0+c2V0VFogPyAiVFo9VVRDICIgOiAiIiwKKyAJCQkgICBh dC0+Y21kLCAiICIsIGF0LT51bnBhY2ssICIgIiwKK0BAIC0xOTYsNyArMjE4LDcgQEAgc3RhdGlj IGNoYXIgKmRvVW50YXIoY29uc3QgY2hhciAqZm4pCisgCSAgICBmcmVlKGdlbSk7CisgCSAgICBm cmVlKHRtcCk7CisgCX0gZWxzZSB7CistCSAgICByYXNwcmludGYoJmJ1ZiwgIiVzICclcyciLCB6 aXBwZXIsIGZuKTsKKysJICAgIHJhc3ByaW50ZigmYnVmLCAiJXMlcyAnJXMnICVzIiwgbWtkaXIs IHppcHBlciwgZm4sIHN0cmlwY2QpOworIAl9CisgCWZyZWUoemlwcGVyKTsKKyAgICAgfSBlbHNl IHsKKy0tIAorMi41NC4wCisKKworRnJvbSAxMjdkNGEyOTQ3MDA1Njg4ZTY0NWI5ZTk1NDViMTc4 ZWZkNWMwZTZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGFudSBNYXRpbGFpbmVu IDxwbWF0aWxhaUByZWRoYXQuY29tPgorRGF0ZTogTW9uLCAyIFNlcCAyMDI0IDEwOjUxOjU3ICsw MzAwCitTdWJqZWN0OiBbUEFUQ0ggMDgvMTRdIEZpeCBycG11bmNvbXByZXNzIGdvaW5nIGludGVy YWN0aXZlIG9uIHJlLWV4dHJhY3Rpb24gb2YKKyB6aXAgLyA3emlwIGFyY2hpdmVzCisKK1Rlc3Rp bmcgdGhpcyBpcyBhIFBJVEEgY29tcGFyZWQgdG8gdGhlIGlzc3VlIGl0c2VsZjogd2UgY2FuJ3Qg dXNlIHRoZQorZXhpc3RpbmcgLUMgdGVzdHMgYmVjYXVzZSB0aGF0IGZhaWxzIGR1ZSB0byBtdiwg YW5kIHRvIGF2b2lkIC1DIHdlCituZWVkIHRvIGNvbnRyb2wgd2hlcmUgaXQgcnVucywgYW5kIHRv IGRvIHRoYXQgd2UgbmVlZCAtLWNoZGlyIHdoaWNoCitjYXVzZXMgZXh0cmEgd2FybmluZ3MgZnJv bSBicmFwIHNvIHdlIG5lZWQgdG8gaWdub3JlIHN0ZGVyciB3aGljaAord2Ugd291bGQgbm90IHdh bnQgdG8gZG8gaGVyZSwgcmVhbGx5LgorCitGaXhlczogIzI3NzkKKyhjaGVycnkgcGlja2VkIGZy b20gY29tbWl0IGZhM2VjN2UzZDczYTkzOTExYmI4ZDNkMWFjODdjMmQ2NGVlZGE2ODApCistLS0K KyB0b29scy9ycG11bmNvbXByZXNzLmMgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdG9vbHMvcnBtdW5jb21w cmVzcy5jIGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitpbmRleCA2OTJjYTMyMmYuLjMwYmQ3NGEy YSAxMDA2NDQKKy0tLSBhL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworKysrIGIvdG9vbHMvcnBtdW5j b21wcmVzcy5jCitAQCAtNDYsMTIgKzQ2LDEyIEBAIHN0cnVjdCBhcmNoaXZlVHlwZV9zIHsKKyAg ICAgeyBDT01QUkVTU0VEX05PVCwJMCwJIiV7X19jYXR9IiAsCSIiLAkJIiIsICIiLCAwIH0sCisg ICAgIHsgQ09NUFJFU1NFRF9PVEhFUiwJMCwJIiV7X19nemlwfSIsCSItZGMiLAkJIiIsICIiLCAw IH0sCisgICAgIHsgQ09NUFJFU1NFRF9CWklQMiwJMCwJIiV7X19iemlwMn0iLAkiLWRjIiwJCSIi LCAiIiwgMCB9LAorLSAgICB7IENPTVBSRVNTRURfWklQLAkxLAkiJXtfX3VuemlwfSIsCSIiLAkJ Ii1xcSIsICItZCIsIDEgfSwKKysgICAgeyBDT01QUkVTU0VEX1pJUCwJMSwJIiV7X191bnppcH0i LAkiLXUiLAkJIi1xcSIsICItZCIsIDEgfSwKKyAgICAgeyBDT01QUkVTU0VEX0xaTUEsCTAsCSIl e19feHp9IiwJIi1kYyIsCQkiIiwgIiIsIDAgfSwKKyAgICAgeyBDT01QUkVTU0VEX1haLAkwLAki JXtfX3h6fSIsCSItZGMiLAkJIiIsICIiLCAwIH0sCisgICAgIHsgQ09NUFJFU1NFRF9MWklQLAkw LAkiJXtfX2x6aXB9IiwJIi1kYyIsCQkiIiwgIiIsIDAgfSwKKyAgICAgeyBDT01QUkVTU0VEX0xS WklQLAkwLAkiJXtfX2xyemlwfSIsCSItZHFvLSIsCSIiLCAiIiwgMCB9LAorLSAgICB7IENPTVBS RVNTRURfN1pJUCwJMSwJIiV7X183emlwfSIsCSJ4IiwJCSItYnNvMCAtYnNwMCIsICItbyIsIDAg fSwKKysgICAgeyBDT01QUkVTU0VEXzdaSVAsCTEsCSIle19fN3ppcH0iLAkieCAteSIsCQkiLWJz bzAgLWJzcDAiLCAiLW8iLCAwIH0sCisgICAgIHsgQ09NUFJFU1NFRF9aU1RELAkwLAkiJXtfX3pz dGR9IiwJIi1kYyIsCQkiIiwgIiIsIDAgfSwKKyAgICAgeyBDT01QUkVTU0VEX0dFTSwJMSwJIiV7 X19nZW19IiwJInVucGFjayIsCSIiLCAiLS10YXJnZXQ9IiwgMCB9LAorICAgICB7IC0xLAkJMCwJ TlVMTCwJCU5VTEwsCQlOVUxMLCAwIH0sCistLSAKKzIuNTQuMAorCisKK0Zyb20gYjI4ZDFjNGI4 Y2FmYzQ1NDk4YjkzYTMyNGNiOGRkNTJhYjJhNzUzYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4KK0RhdGU6IFRodSwg MyBPY3QgMjAyNCAxMjo1MTowNSArMDMwMAorU3ViamVjdDogW1BBVENIIDA5LzE0XSBGaXggdXAg cnBtdW5jb21wcmVzcyBub3QgYmVpbmcgY29tcGlsZWQgYXMgQysrCisKK1RoaXMgb25lIGxvbmUg c291cmNlIGdvdCBvdmVybG9va2VkIGluIHRoZSBpbml0aWFsIEMrKyBlbmFibGVtZW50CitpbiBj b21taXQgMzdjZGNjMjkyNjllYjVjZDYwM2M2OWJlMDdmODNmMTEzY2U0NzljZC4gQysrIGRvZXNu J3QgbGlrZQoranVtcGluZyBvdmVyIHZhcmlhYmxlIGRlY2xhcmF0aW9ucywgc28ganVzdCBtb3Zl IHRoZSBkZWNsYXJhdGlvbnMKK2Vhcmx5IHRvIG1pbmltYWxseSBmaXggdGhlIGJ1aWxkLgorCitO aWNlbHkgZ29lcyB0byBzaG93IHRoZSBkYW5nZXIgb2Ygc3VjaCBoYWNrcyAtIHlvdSBjYW4gYWx3 YXlzIG1pc3MKK3NvbWV0aGluZy4gT24gdGhlIGxpYnJhcnkgc2lkZSB0aGluZ3MgYXJlIGxpa2Vs eSB0byBibG93IHVwIGluCitsaW5rYWdlIGJ1dCB5b3UgbmV2ZXIga25vdyByZWFsbHkuCisKKyhi YWNrcG9ydGVkIGZyb20gY29tbWl0IDgyNjMzOTUxOGE1ZWU0MzQ5OGFiMGZlMDQ3YTg3NTQwYTk4 MDIzMmUpCistLS0KKyB0b29scy9ycG11bmNvbXByZXNzLmMgfCA2ICsrKystLQorIDEgZmlsZSBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90 b29scy9ycG11bmNvbXByZXNzLmMgYi90b29scy9ycG11bmNvbXByZXNzLmMKK2luZGV4IDMwYmQ3 NGEyYS4uOTMyYWUzYTNkIDEwMDY0NAorLS0tIGEvdG9vbHMvcnBtdW5jb21wcmVzcy5jCisrKysg Yi90b29scy9ycG11bmNvbXByZXNzLmMKK0BAIC0xMDEsNiArMTAxLDcgQEAgc3RhdGljIGNoYXIg KiBzaW5nbGVSb290KGNvbnN0IGNoYXIgKnBhdGgpCisgCXN0cnVjdCBhcmNoaXZlX2VudHJ5ICpl bnRyeTsKKyAJaW50IHIsIHJldCA9IC0xLCByb290TGVuOworIAljaGFyICpyb290TmFtZSA9IE5V TEw7CisrCWNoYXIgKnNlcCA9IE5VTEw7CisgCisgCWEgPSBhcmNoaXZlX3JlYWRfbmV3KCk7Cisg CWFyY2hpdmVfcmVhZF9zdXBwb3J0X2ZpbHRlcl9hbGwoYSk7CitAQCAtMTEzLDcgKzExNCw3IEBA IHN0YXRpYyBjaGFyICogc2luZ2xlUm9vdChjb25zdCBjaGFyICpwYXRoKQorIAkgICAgZ290byBh ZnJlZTsKKyAJfQorIAlyb290TmFtZSA9IHhzdHJkdXAoYXJjaGl2ZV9lbnRyeV9wYXRobmFtZShl bnRyeSkpOworLQljaGFyICpzZXAgPSBzdHJjaHIocm9vdE5hbWUsICcvJyk7CisrCXNlcCA9IHN0 cmNocihyb290TmFtZSwgJy8nKTsKKyAJaWYgKHNlcCA9PSBOVUxMKSB7CisgCSAgICAvKiBObyBk aXJlY3RvcmllcyBpbiB0aGUgcGF0aG5hbWUgKi8KKyAJICAgIHJldCA9IDA7CitAQCAtMTUxLDEx ICsxNTIsMTIgQEAgc3RhdGljIGNoYXIgKmRvVW50YXIoY29uc3QgY2hhciAqZm4pCisgICAgIGNv bnN0IGNoYXIgKnRhcm9wdHMgPSB2ZXJib3NlID8gIi14dnZvZiIgOiAiLXhvZiI7CisgICAgIGNo YXIgKm1rZGlyID0gTlVMTDsKKyAgICAgY2hhciAqc3RyaXBjZCA9IE5VTEw7CisrICAgIGludCBu ZWVkdGFyID0gMDsKKyAKKyAgICAgaWYgKChhdCA9IGdldEFyY2hpdmVyKGZuKSkgPT0gTlVMTCkK KyAJZ290byBleGl0OworIAorLSAgICBpbnQgbmVlZHRhciA9IChhdC0+ZXh0cmFjdGFibGUgPT0g MCk7CisrICAgIG5lZWR0YXIgPSAoYXQtPmV4dHJhY3RhYmxlID09IDApOworIAorICAgICBpZiAo ZHN0cGF0aCkgeworIAljaGFyICogc3IgPSBzaW5nbGVSb290KGZuKTsKKy0tIAorMi41NC4wCisK KworRnJvbSAwOTg4YmI1NmFhODZjM2ZiMDcxOWU0NTkxMDYyMTA2ODgzMGY5MTZiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQu Y29tPgorRGF0ZTogVHVlLCA5IEp1biAyMDI2IDE1OjU3OjA4ICswMjAwCitTdWJqZWN0OiBbUEFU Q0ggMTAvMTRdIFJlZmFjdG9yIHNpbmdsZVJvb3QoKQorCitMb2NhdGUgdGhlIHNsYXNoIGZpcnN0 IGluIHRoZSByZXR1cm5lZCBjb25zdCBzdHJpbmcgYW5kIG9ubHkgZHVwbGljYXRlCitpdCB3aGVu IGFjdHVhbGx5IG5lZWRlZC4gVGhpcyB3aWxsIHNhdmUgdXMgYW4gZXh0cmEgc3RyaW5nIGNvcHkg aW4gdGhlCituZXh0IGNvbW1pdHMuCisKK05vIGZ1bmN0aW9uYWwgY2hhbmdlLgorCisoY2hlcnJ5 IHBpY2tlZCBmcm9tIGNvbW1pdCAyNDc0NGM1OWQzNTljYzUxZmM2NDRkZGYyNzA3YzRlZjFhNjM5 Y2Y2KQorLS0tCisgdG9vbHMvcnBtdW5jb21wcmVzcy5jIHwgMTggKysrKysrKysrKysrLS0tLS0t CisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS90b29scy9ycG11bmNvbXByZXNzLmMgYi90b29scy9ycG11bmNvbXByZXNzLmMK K2luZGV4IDkzMmFlM2EzZC4uNjhkMTQ4MWY2IDEwMDY0NAorLS0tIGEvdG9vbHMvcnBtdW5jb21w cmVzcy5jCisrKysgYi90b29scy9ycG11bmNvbXByZXNzLmMKK0BAIC0xMDAsOCArMTAwLDkgQEAg c3RhdGljIGNoYXIgKiBzaW5nbGVSb290KGNvbnN0IGNoYXIgKnBhdGgpCisgCXN0cnVjdCBhcmNo aXZlICphOworIAlzdHJ1Y3QgYXJjaGl2ZV9lbnRyeSAqZW50cnk7CisgCWludCByLCByZXQgPSAt MSwgcm9vdExlbjsKKysJY29uc3QgY2hhciAqcCA9IE5VTEw7CisrCWNvbnN0IGNoYXIgKnNlcCA9 IE5VTEw7CisgCWNoYXIgKnJvb3ROYW1lID0gTlVMTDsKKy0JY2hhciAqc2VwID0gTlVMTDsKKyAK KyAJYSA9IGFyY2hpdmVfcmVhZF9uZXcoKTsKKyAJYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZmlsdGVy X2FsbChhKTsKK0BAIC0xMTMsMjQgKzExNCwyOSBAQCBzdGF0aWMgY2hhciAqIHNpbmdsZVJvb3Qo Y29uc3QgY2hhciAqcGF0aCkKKyAJaWYgKGFyY2hpdmVfcmVhZF9uZXh0X2hlYWRlcihhLCAmZW50 cnkpICE9IEFSQ0hJVkVfT0spIHsKKyAJICAgIGdvdG8gYWZyZWU7CisgCX0KKy0Jcm9vdE5hbWUg PSB4c3RyZHVwKGFyY2hpdmVfZW50cnlfcGF0aG5hbWUoZW50cnkpKTsKKy0Jc2VwID0gc3RyY2hy KHJvb3ROYW1lLCAnLycpOworKworKwkvKiBFeHRyYWN0IHRoZSBsZWFkIGRpcmVjdG9yeSBmcm9t IHRoZSBmaXJzdCBlbnRyeSAqLworKwlwID0gYXJjaGl2ZV9lbnRyeV9wYXRobmFtZShlbnRyeSk7 CisrCXNlcCA9IHN0cmNocihwLCAnLycpOworIAlpZiAoc2VwID09IE5VTEwpIHsKKyAJICAgIC8q IE5vIGRpcmVjdG9yaWVzIGluIHRoZSBwYXRobmFtZSAqLworIAkgICAgcmV0ID0gMDsKKyAJICAg IGdvdG8gYWZyZWU7CisrCX0gZWxzZSB7CisrCSAgICByb290TmFtZSA9IHhzdHJkdXAocCk7Cisr CSAgICByb290TGVuID0gc2VwIC0gcCArIDE7CisgCX0KKyAKKyAJLyogRG8gYWxsIGVudHJpZXMg aW4gdGhlIGFyY2hpdmUgc3RhcnQgd2l0aCB0aGUgc2FtZSBsZWFkIGRpcmVjdG9yeT8gKi8KKy0J cm9vdExlbiA9IHNlcCAtIHJvb3ROYW1lICsgMTsKKyAJd2hpbGUgKGFyY2hpdmVfcmVhZF9uZXh0 X2hlYWRlcihhLCAmZW50cnkpID09IEFSQ0hJVkVfT0spIHsKKy0JICAgIGNvbnN0IGNoYXIgKnAg PSBhcmNoaXZlX2VudHJ5X3BhdGhuYW1lKGVudHJ5KTsKKysJICAgIHAgPSBhcmNoaXZlX2VudHJ5 X3BhdGhuYW1lKGVudHJ5KTsKKyAJICAgIGlmIChzdHJuY21wKHJvb3ROYW1lLCBwLCByb290TGVu KSkgeworIAkJcmV0ID0gMDsKKyAJCWdvdG8gYWZyZWU7CisgCSAgICB9CisgCX0KKy0JKnNlcCA9 ICdcMCc7CisrCisrCXJvb3ROYW1lW3Jvb3RMZW4gLSAxXSA9ICdcMCc7CisgCXJldCA9IDE7Cisg CisgYWZyZWU6CistLSAKKzIuNTQuMAorCisKK0Zyb20gM2E0NDEyMjg3MjBmNzFiY2MxMzJlNTM1 YzM2OTEzYmU5Y2M2OTMyMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhbCBE b21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxNjoz NDoyNSArMDIwMAorU3ViamVjdDogW1BBVENIIDExLzE0XSBJbnZlcnQgY29uZGl0aW9uYWwgaW4g c2luZ2xlUm9vdCgpCisKK05vIGZ1bmN0aW9uYWwgY2hhbmdlLCBqdXN0IG1ha2VzIHRoZSBuZXh0 IGNvbW1pdCBzaW1wbGVyLgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5NGNmY2NlZmY3 N2Q3MzBmMWMzNDMyZmRiNTcyZmMxNzVhM2ZmZGY2KQorLS0tCisgdG9vbHMvcnBtdW5jb21wcmVz cy5jIHwgOCArKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90b29scy9ycG11bmNvbXByZXNzLmMgYi90b29scy9y cG11bmNvbXByZXNzLmMKK2luZGV4IDY4ZDE0ODFmNi4uZWVmMmY0ZjBlIDEwMDY0NAorLS0tIGEv dG9vbHMvcnBtdW5jb21wcmVzcy5jCisrKysgYi90b29scy9ycG11bmNvbXByZXNzLmMKK0BAIC0x MTgsMTMgKzExOCwxMyBAQCBzdGF0aWMgY2hhciAqIHNpbmdsZVJvb3QoY29uc3QgY2hhciAqcGF0 aCkKKyAJLyogRXh0cmFjdCB0aGUgbGVhZCBkaXJlY3RvcnkgZnJvbSB0aGUgZmlyc3QgZW50cnkg Ki8KKyAJcCA9IGFyY2hpdmVfZW50cnlfcGF0aG5hbWUoZW50cnkpOworIAlzZXAgPSBzdHJjaHIo cCwgJy8nKTsKKy0JaWYgKHNlcCA9PSBOVUxMKSB7CisrCWlmIChzZXApIHsKKysJICAgIHJvb3RO YW1lID0geHN0cmR1cChwKTsKKysJICAgIHJvb3RMZW4gPSBzZXAgLSBwICsgMTsKKysJfSBlbHNl IHsKKyAJICAgIC8qIE5vIGRpcmVjdG9yaWVzIGluIHRoZSBwYXRobmFtZSAqLworIAkgICAgcmV0 ID0gMDsKKyAJICAgIGdvdG8gYWZyZWU7CistCX0gZWxzZSB7CistCSAgICByb290TmFtZSA9IHhz dHJkdXAocCk7CistCSAgICByb290TGVuID0gc2VwIC0gcCArIDE7CisgCX0KKyAKKyAJLyogRG8g YWxsIGVudHJpZXMgaW4gdGhlIGFyY2hpdmUgc3RhcnQgd2l0aCB0aGUgc2FtZSBsZWFkIGRpcmVj dG9yeT8gKi8KKy0tIAorMi41NC4wCisKKworRnJvbSAxOGNjOWUxNzVhYzY4MDcxNDgxNDQwOTlh Y2VhMjIxNDdkYTNkZGRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFsIERv bW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPgorRGF0ZTogVHVlLCA5IEp1biAyMDI2IDE2OjIw OjU5ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMTIvMTRdIEhhbmRsZSBzaW5nbGVyb290IGFyY2hp dmVzIHdpdGhvdXQgdHJhaWxpbmcgc2xhc2gKKworV2hpbGUgc29tZSB0YXIgaW1wbGVtZW50YXRp b25zIChsaWtlIEdOVSB0YXIpIGRvIGluY2x1ZGUgYSB0cmFpbGluZworc2xhc2ggaW4gZGlyZWN0 b3J5IGVudHJpZXMsIG90aGVycyAobGlrZSBwdGFyKDEpIHdyaXR0ZW4gaW4gUGVybCkgZG8KK25v dC4gSGFuZGxlIHRoZSBsYXR0ZXIgaW4gdGhlIHNpbmdsZXJvb3QgZGV0ZWN0aW9uIGxvZ2ljIGFz IHdlbGwuCisKK0FkZCBhIHRlc3QgYXJjaGl2ZSBnZW5lcmF0ZWQgd2l0aCBwdGFyKDEpIHRoYXQg aGFzIHRoZSBmb2xsb3dpbmcgbGF5b3V0OgorCisgICAgc291cmNlLXN0cmlwCisgICAgc291cmNl LXN0cmlwL2ZpbGUyCisgICAgc291cmNlLXN0cmlwL2ZpbGUxCisgICAgc291cmNlLXN0cmlwL2Rp cjEKKyAgICBzb3VyY2Utc3RyaXAvZGlyMS9maWxlMworCitGaXhlczogIzQxODIKKyhjaGVycnkg cGlja2VkIGZyb20gY29tbWl0IDI3ZmY0ZDQ1N2ZmNjY2NzNmNjZiMDkzMzIzNGU1ZWQ1NjkzMjY0 MWYpCistLS0KKyB0b29scy9ycG11bmNvbXByZXNzLmMgfCAzICsrKworIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3Rvb2xzL3JwbXVuY29tcHJlc3MuYyBi L3Rvb2xzL3JwbXVuY29tcHJlc3MuYworaW5kZXggZWVmMmY0ZjBlLi42YWZmNDc3NTcgMTAwNjQ0 CistLS0gYS90b29scy9ycG11bmNvbXByZXNzLmMKKysrKyBiL3Rvb2xzL3JwbXVuY29tcHJlc3Mu YworQEAgLTEyMSw2ICsxMjEsOSBAQCBzdGF0aWMgY2hhciAqIHNpbmdsZVJvb3QoY29uc3QgY2hh ciAqcGF0aCkKKyAJaWYgKHNlcCkgeworIAkgICAgcm9vdE5hbWUgPSB4c3RyZHVwKHApOworIAkg ICAgcm9vdExlbiA9IHNlcCAtIHAgKyAxOworKwl9IGVsc2UgaWYgKGFyY2hpdmVfZW50cnlfZmls ZXR5cGUoZW50cnkpID09IEFFX0lGRElSKSB7CisrCSAgICByb290TmFtZSA9IHJzdHJzY2F0KE5V TEwsIHAsICIvIiwgTlVMTCk7CisrCSAgICByb290TGVuID0gc3RybGVuKHJvb3ROYW1lKTsKKyAJ fSBlbHNlIHsKKyAJICAgIC8qIE5vIGRpcmVjdG9yaWVzIGluIHRoZSBwYXRobmFtZSAqLworIAkg ICAgcmV0ID0gMDsKKy0tIAorMi41NC4wCisKKworRnJvbSBjY2RkNDZkZTk5OTk1NWIyOGZmNWFl NTRiNzM4MTM3YThlMTRhOGM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFs IERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxMiBKdW4gMjAyNiAx MzoxMzoyMiArMDIwMAorU3ViamVjdDogW1BBVENIIDEzLzE0XSBQcmV2ZW50IGNvbW1hbmQgaW5q ZWN0aW9uIGluIHJwbXVuY29tcHJlc3MoMSkKKworV2hlbiBleHRyYWN0aW5nIGEgc2luZ2xlcm9v dCBhcmNoaXZlIGluIC1DIG1vZGUgd2l0aCBhbiBhcmNoaXZlciB0aGF0CitjYW4gdW5jb21wcmVz cyBhbmQgZXh0cmFjdCBpbiBvbmUgZ28gKHN1Y2ggYXMgemlwKSwgd2Ugd2lsbCBpbmNsdWRlIHRo ZQordG9wLWxldmVsIGRpcmVjdG9yeSBuYW1lIHZlcmJhdGltIGluIHRoZSBzaGVsbCBjb21tYW5k IHRoYXQgZG9lcyBvdXIgb3duCit2YXJpYW50IG9mIHRhcidzIC0tc3RyaXAtY29tcG9uZW50cz0x LiBUaGlzIGFsbG93cyBhbiBhdHRhY2tlciB0byBjcmFmdAorc3VjaCBhbiBhcmNoaXZlIHdoZXJl IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG5hbWUgY29udGFpbnMgYXJiaXRyYXJ5CitzaGVsbCBj b2RlIGVuY2xvc2VkIGluIHNpbmdsZSBxdW90ZXMsIHdoaWNoIHJwbXVuY29tcHJlc3Mgd2lsbCBo YXBwaWx5CitleGVjdXRlIHdoZW4gbWVyZWx5IGV4dHJhY3RpbmcgaXQuCisKK1RoYXQgaXMgbmFz dHkgc2luY2Ugb25lIGRvZXMgbm90IGV4cGVjdCBhIHV0aWxpdHkgbGlrZSBycG11bmNvbXByZXNz IHRvCisqZXhlY3V0ZSogYW55dGhpbmcgZnJvbSB0aGUgYXJjaGl2ZSB3aGVuIGV4dHJhY3Rpbmcg aXQuIFRoaXMgaXMgbm93IGV2ZW4KK21vcmUgcmVsZXZhbnQgd2l0aCBjb21taXQgYTY5OGQxYjZi MThlNDMwODA2YzU0NzU1YWY1NmQ0N2FjNDAxZTQzMCB3aGljaAorZXhwb3NlZCBycG11bmNvbXBy ZXNzIGZvciBnZW5lcmFsIHVzZSBieSBpbnN0YWxsaW5nIGl0IGludG8gJFBBVEguCisKK0ZpeCBi eSBzaW1wbHkgKm5vdCogcGFzc2luZyB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBuYW1lLCBhcyBy ZXR1cm5lZCBieQorc2luZ2xlUm9vdCgpLCB0byB0aGUgc2hlbGwsIGV2ZXIuIEx1Y2tpbHksIHdl IGRvbid0IHJlYWxseSBuZWVkIHRvIHNpbmNlCit3ZSBrbm93IHRoYXQgdGhlIHRlbXAgZGlyZWN0 b3J5IHdpbGwgb25seSBoYXZlIGEgc2luZ2xlIHRvcC1sZXZlbCBlbnRyeSwKK2FuZCB0aGVyZWZv cmUgY2FuIHVzZSBhIGdsb2IgdG8ganVzdCBsZXQgdGhlIHNoZWxsIGV4cGFuZCB0byBpdC4KKwor VGhpcyByZWxpZXMgb24gb3VyIHNpbmdsZXJvb3QgZGV0ZWN0aW9uIGxvZ2ljICphbmQqIHRoZSBh cmNoaXZlciBoYXZpbmcKK2EgY29tbW9uIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCBhIHNpbmdsZXJv b3QgYXJjaGl2ZSBpcywgb2YgY291cnNlLCB3aGljaAorbWF5IG5vdCBiZSBpZGVhbC4gV2hhdCBj b3VsZCB0aGVvcmV0aWNhbGx5IGhhcHBlbiBpcyB0aGF0IHdlIGNvbnNpZGVyIGFuCithcmNoaXZl IHNpbmdsZXJvb3QgYnV0IHRoZSBhcmNoaXZlciwgZm9yIHNvbWUgcmVhc29uLCBleHRyYWN0cyBt dWx0aXBsZQordG9wLWxldmVsIGVudHJpZXMsIG9yIHRoZSBzaW5nbGUgZW50cnkgd2lsbCBoYXZl IGEgZGlmZmVyZW50IG5hbWUuIFRoaXMKK2NvdWxkIHJlc3VsdCBpbiB0aGUgZGVzdGluYXRpb24g ZGlyZWN0b3J5IHRvIGhhdmUgYW4gdW5leHBlY3RlZCBsYXlvdXQKK29uY2Ugd2UgZG8gdGhlIG1v dmUuIFRoYXQgc2FpZCwgdGhpcyBpcyBhbGwganVzdCBzcGVjdWxhdGlvbiwgYW5kIGV2ZW4KK2lm IHRydWUsIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBzZWN1cml0eSBmbGF3IHVubGlrZSB0aGUgb25l IGJlaW5nIGZpeGVkLgorCitBbiBhbHRlcm5hdGl2ZSBmaXggd291bGQgYmUgc2FuaXRpemluZyB0 aGUgZGlyZWN0b3J5IG5hbWUgYmVmb3JlIHBhc3NpbmcKK2l0IHRvIHRoZSBzaGVsbCAobGlrZSB0 aGUgc3VnZ2VzdGVkIHBhdGNoIGluIENWRS0yMDI2LTQ0NjA0KSBidXQgdGhhdCBpcwordG9vIGJy aXR0bGUsIGVycm9yIHByb25lIGFuZCBqdXN0IHVubmVjZXNzYXJpbHkgY29tcGxpY2F0ZWQuCisK K0lkZWFsbHksIHdlIHdvdWxkIGp1c3Qgbm90IHNoZWxsIG91dCBhdCBhbGwsIGFuZCB1c2UgdGhl IGxpYmFyY2hpdmUgQVBJCit0byBkbyB0aGUgd2hvbGUgZGFuY2UsIHdoaWNoIHdlIG1heSBpbiB0 aGUgZnV0dXJlIChzZWUgIzQyMzYpLiBCdXQgZm9yCitub3csIHRoaXMgbWluaW1hbCBmaXggc2hv dWxkIGRvIHRoZSBqb2IuCisKK0FkZCBhbHNvIGEgdGVzdCBhcmNoaXZlIGNyZWF0ZWQgd2l0aCB0 aGUgZm9sbG93aW5nIFB5dGhvbiAzIGNvZGUgYWRhcHRlZAorZnJvbSB0aGUgQ1ZFOgorCisgICAg aW1wb3J0IHppcGZpbGUKKyAgICBuYW1lID0gImV2aWwnJCh0b3VjaCBiZWVuaGVyZSknIgorICAg IHdpdGggemlwZmlsZS5aaXBGaWxlKCJzb3VyY2Utc2luZ2xlcm9vdC1ldmlsLnppcCIsICJ3Iikg YXMgejoKKyAgICAgICAgei53cml0ZXN0cihmIntuYW1lfS9SRUFETUUudHh0IiwgIngiKQorCitG aXhlczogQ1ZFLTIwMjYtNDQ2MDQKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDA2OTNjZTc2 NzRjNDIzZjM4MmIxNDg3NjNhMjlmN2ZhYTBhYWNiNDEpCistLS0KKyB0b29scy9ycG11bmNvbXBy ZXNzLmMgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdG9vbHMvcnBtdW5jb21wcmVzcy5jIGIvdG9vbHMvcnBt dW5jb21wcmVzcy5jCitpbmRleCA2YWZmNDc3NTcuLjM2NTJjYzZiYiAxMDA2NDQKKy0tLSBhL3Rv b2xzL3JwbXVuY29tcHJlc3MuYworKysrIGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitAQCAtMTg4 LDggKzE4OCw4IEBAIHN0YXRpYyBjaGFyICpkb1VudGFyKGNvbnN0IGNoYXIgKmZuKQorIAkJcmFz cHJpbnRmKAorIAkJICAgICZtb3ZldXAsCisgCQkgICAgIiAmJiAiCistCQkgICAgIihzaG9wdCAt cyBkb3RnbG9iOyBtdiBcIiR0bXBcIi8nJXMnLyogJyVzJykgJiYgIgorLQkJICAgICJybWRpciBc IiR0bXBcIi8nJXMnIFwiJHRtcFwiICIsIHNyLCBkc3RwYXRoLCBzcik7CisrCQkgICAgIihzaG9w dCAtcyBkb3RnbG9iOyBtdiBcIiR0bXBcIi8qLyogJyVzJykgJiYgIgorKwkJICAgICJybWRpciBc IiR0bXBcIi8qIFwiJHRtcFwiICIsIGRzdHBhdGgpOworIAkJcmFzcHJpbnRmKCZzdHJpcGNkLCAi JXNcIiR0bXBcIiAlcyIsIGF0LT5kZXN0LCBtb3ZldXApOworIAkJZnJlZShtb3ZldXApOworIAkg ICAgfSBlbHNlIHsKKy0tIAorMi41NC4wCisKKworRnJvbSA2ZWUyMTg2YThiMjQ2ZDdjZDhlZmZm NmM0NDljNTA5NjY5MjA2NzYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFs IERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxMiBKdW4gMjAyNiAx MzoxNjozOSArMDIwMAorU3ViamVjdDogW1BBVENIIDE0LzE0XSBSZXZlcnQgIlJldHVybiB1bmlx dWUgdG9wIGRpcmVjdG9yeSBpZmYgaXQgZXhpc3RzIgorCitOb3cgdGhhdCB3ZSBubyBsb25nZXIg bmVlZCB0aGUgc2luZ2xlcm9vdCBuYW1lIGluIHRoZSBjYWxsZXIsIGdvIGJhY2sgdG8KK2p1c3Qg cmV0dXJuaW5nIGFuIGludGVnZXIuIFRoaXMgYWxzbyBwcmV2ZW50cyBhbiBhY2NpZGVudGFsIGlu Y2x1c2lvbiBvZgordGhlIG5hbWUgaW4gYSBzaGVsbCBjb21tYW5kIGluIHRoZSBmdXR1cmUgKHNl ZSBwcmV2aW91cyBjb21taXQpLgorCitBZGp1c3QgYW5kIHNpbXBsaWZ5IHRoZSBzaW5nbGVSb290 KCkgZGVzY3JpcHRpb24gY29tbWVudCB3aGlsZSBhdCBpdC4KKworVGhpcyByZXZlcnRzIGNvbW1p dCA3YjQ2YTBkMGMzMzZlZTg2NTgyMWRlNTNjZGNmZmYwOTc1MjY2OWVkLgorCisoY2hlcnJ5IHBp Y2tlZCBmcm9tIGNvbW1pdCAzYTkxNDVjZGRmZjQ3ZTYzMjRhOWZmZjNjOWE2YWUwMzZkN2E3ZGI1 KQorLS0tCisgdG9vbHMvcnBtdW5jb21wcmVzcy5jIHwgMTggKysrKysrKy0tLS0tLS0tLS0tCisg MSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS90b29scy9ycG11bmNvbXByZXNzLmMgYi90b29scy9ycG11bmNvbXByZXNzLmMKK2lu ZGV4IDM2NTJjYzZiYi4uNzIzM2U0YmI5IDEwMDY0NAorLS0tIGEvdG9vbHMvcnBtdW5jb21wcmVz cy5jCisrKysgYi90b29scy9ycG11bmNvbXByZXNzLmMKK0BAIC05MSwxMSArOTEsMTEgQEAgc3Rh dGljIGNoYXIgKmRvVW5jb21wcmVzcyhjb25zdCBjaGFyICpmbikKKyAgKiBEZXRlY3QgaWYgYW4g YXJjaGl2ZSBoYXMgYSBzaW5nbGUgdG9wIGxldmVsIGVudHJ5LCBhbmQgaXQncyBhIGRpcmVjdG9y eS4KKyAgKgorICAqIEBwYXJhbSBwYXRoCXBhdGggb2YgdGhlIGFyY2hpdmUKKy0gKiBAcmV0dXJu CW9ubHkgdG9wIGxldmVsIGRpcmVjdG9yeSAoaWYgYW55KSwKKy0gKiAJCU5VTEwgaWYgaXQgY29u dGFpbnMgbXVsdGlwbGUgdG9wIGxldmVsIGVudHJpZXMgb3IgYSBzaW5nbGUgZmlsZQorLSAqIAkJ b3Igb24gYXJjaGl2ZSBlcnJvcgorKyAqIEByZXR1cm4JMSBpZiB0aGUgYXJjaGl2ZSBoYXMgYSBz aW5nbGUgdG9wIGxldmVsLCBkaXJlY3RvcnkgZW50cnksCisrICogCQkwIG90aGVyd2lzZSwKKysg KiAJCS0xIG9uIGFyY2hpdmUgZXJyb3IKKyAgKi8KKy1zdGF0aWMgY2hhciAqIHNpbmdsZVJvb3Qo Y29uc3QgY2hhciAqcGF0aCkKKytzdGF0aWMgaW50IHNpbmdsZVJvb3QoY29uc3QgY2hhciAqcGF0 aCkKKyB7CisgCXN0cnVjdCBhcmNoaXZlICphOworIAlzdHJ1Y3QgYXJjaGl2ZV9lbnRyeSAqZW50 cnk7CitAQCAtMTM5LDE4ICsxMzksMTUgQEAgc3RhdGljIGNoYXIgKiBzaW5nbGVSb290KGNvbnN0 IGNoYXIgKnBhdGgpCisgCSAgICB9CisgCX0KKyAKKy0Jcm9vdE5hbWVbcm9vdExlbiAtIDFdID0g J1wwJzsKKyAJcmV0ID0gMTsKKyAKKyBhZnJlZToKKysJZnJlZShyb290TmFtZSk7CisgCXIgPSBh cmNoaXZlX3JlYWRfZnJlZShhKTsKKyAJaWYgKHIgIT0gQVJDSElWRV9PSykKKyAJICAgIHJldCA9 IC0xOworIAorLQlpZiAocmV0ICE9IDEpCistCSAgICByb290TmFtZSA9IF9mcmVlKHJvb3ROYW1l KTsKKy0KKy0JcmV0dXJuIHJvb3ROYW1lOworKwlyZXR1cm4gcmV0OworIH0KKyAKKyBzdGF0aWMg Y2hhciAqZG9VbnRhcihjb25zdCBjaGFyICpmbikKK0BAIC0xNjksNyArMTY2LDcgQEAgc3RhdGlj IGNoYXIgKmRvVW50YXIoY29uc3QgY2hhciAqZm4pCisgICAgIG5lZWR0YXIgPSAoYXQtPmV4dHJh Y3RhYmxlID09IDApOworIAorICAgICBpZiAoZHN0cGF0aCkgeworLQljaGFyICogc3IgPSBzaW5n bGVSb290KGZuKTsKKysJaW50IHNyID0gc2luZ2xlUm9vdChmbik7CisgCisgCS8qIGlmIHRoZSBh cmNoaXZlIGhhcyBtdWx0aXBsZSBlbnRyaWVzLCBqdXN0IGV4dHJhY3QgaXQgaW50byB0aGUKKyAJ ICogc3BlY2lmaWVkIGRlc3RpbmF0aW9uIHBhdGgsIG90aGVyd2lzZSBhbHNvIHN0cmlwIHRoZSBm aXJzdCBwYXRoCitAQCAtMTk3LDcgKzE5NCw2IEBAIHN0YXRpYyBjaGFyICpkb1VudGFyKGNvbnN0 IGNoYXIgKmZuKQorIAkJcmFzcHJpbnRmKCZzdHJpcGNkLCAiJXMnJXMnIiwgYXQtPmRlc3QsIGRz dHBhdGgpOworIAkgICAgfQorIAl9CistCWZyZWUoc3IpOworICAgICB9IGVsc2UgeworIAlta2Rp ciA9IHhzdHJkdXAoIiIpOworIAlzdHJpcGNkID0geHN0cmR1cCgiIik7CistLSAKKzIuNTQuMAor CgpkaWZmIC0tZ2l0IGEvcnBtLnNwZWMgYi9ycG0uc3BlYwppbmRleCBiNjU4M2EyLi5iNDlkYWZk IDEwMDY0NAotLS0gYS9ycG0uc3BlYworKysgYi9ycG0uc3BlYwpAQCAtMjcsNyArMjcsNyBAQAog CiAlZ2xvYmFsIHJwbXZlciA0LjE5LjEuMQogI2dsb2JhbCBzbmFwdmVyIHJjMQotJWdsb2JhbCBi YXNlcmVsZWFzZSAyMworJWdsb2JhbCBiYXNlcmVsZWFzZSAyNAogJWdsb2JhbCBzb3ZlciAxMAog CiAlZ2xvYmFsIHNyY3ZlciAle3JwbXZlcn0lez9zbmFwdmVyOi0le3NuYXB2ZXJ9fQpAQCAtMTc1 LDYgKzE3NSw4IEBAIHJwbS00LjE5LngtbXVsdGlzaWctdmVyaWZ5LWZpeGVzLnBhdGNoCiBycG0t NC4xOS54LW5zc3dpdGNoLWVuYWJsZS5wYXRjaAogMDAwMS1GaXgtZW1wdHktcGFzc3dvcmQtZmll bGQtaW4tcGFzc3dkLWdyb3VwLWNhdXNpbmctZW50LnBhdGNoCiAKK3JwbS00LjE5LngtYWRkLWF1 dG9zZXR1cC1DLnBhdGNoCisKICMgVGhlc2UgYXJlIG5vdCB5ZXQgdXBzdHJlYW0KIHJwbS00Ljcu MS1nZW9kZS1pNjg2LnBhdGNoCiAKQEAgLTY2NCw2ICs2NjYsOSBAQCBmaQogJWRvYyAle19kZWZh dWx0ZG9jZGlyfS9ycG0vQVBJLwogCiAlY2hhbmdlbG9nCisqIFRodSBKdW4gMTggMjAyNiBNaWNo YWwgRG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtMjQKKy0gQWRkIHN1 cHBvcnQgZm9yICUlYXV0b3NldHVwIC1DIChSSEVMLTE0MTI2OSkKKwogKiBUaHUgRmViIDA1IDIw MjYgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTkuMS4xLTIzCiAt IEZpeCBrZXkgaW1wb3J0IEFQSSB0byByZXR1cm4gTk9UVFJVU1RFRCBmb3IgZGlzYWJsZWQgYWxn b3JpdGhtcyAoUkhFTC0xMTIzOTQpCiAK