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: Petr Lautrbach To: git-commits@fedoraproject.org Subject: [rpms/policycoreutils] rawhide: SELinux userspace 3.11 release Date: Wed, 01 Jul 2026 20:00:48 GMT Message-ID: <178293604800.1.1203581824001178172.rpms-policycoreutils-117d3bf1b182@fedoraproject.org> List-ID: X-Git-Repo: rpms/policycoreutils X-Git-Branch: rawhide X-Git-Rev: 117d3bf1b1824a64a2e204880c1e7d748f48332b QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcG9saWN5Y29yZXV0 aWxzCkJyYW5jaCA6IHJhd2hpZGUKQ29tbWl0IDogMTE3ZDNiZjFiMTgyNGE2NGEyZTIwNDg4MGMx ZTdkNzQ4ZjQ4MzMyYgpBdXRob3IgOiBQZXRyIExhdXRyYmFjaCA8bGF1dHJiYWNoQHJlZGhhdC5j b20+CkRhdGUgICA6IDIwMjYtMDctMDFUMjE6NTY6NDUrMDI6MDAKU3RhdHMgIDogKzQ5Ly0xNjgw IGluIDI3IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBt cy9wb2xpY3ljb3JldXRpbHMvYy8xMTdkM2JmMWIxODI0YTY0YTJlMjA0ODgwYzFlN2Q3NDhmNDgz MzJiP2JyYW5jaD1yYXdoaWRlCgpMb2c6ClNFTGludXggdXNlcnNwYWNlIDMuMTEgcmVsZWFzZQoK LS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCBmMjQxZDhiLi4w NjFiOWNkIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTM3MCwz ICszNzAsNSBAQCBwb2xpY3ljb3JldXRpbHMtMi4wLjgzLnRnegogL3NlbGludXgtMy4xMC1yYzIu dGFyLmd6CiAvc2VsaW51eC0zLjEwLnRhci5negogL3NlbGludXgtMy4xMC50YXIuZ3ouYXNjCisv c2VsaW51eC0zLjExLnRhci5negorL3NlbGludXgtMy4xMS50YXIuZ3ouYXNjCgpkaWZmIC0tZ2l0 IGEvMDAwMS1Eb24tdC1iZS12ZXJib3NlLWlmLXlvdS1hcmUtbm90LW9uLWEtdHR5LnBhdGNoIGIv MDAwMS1Eb24tdC1iZS12ZXJib3NlLWlmLXlvdS1hcmUtbm90LW9uLWEtdHR5LnBhdGNoCmluZGV4 IGU1YjQ3MWEuLjdjNzVhODcgMTAwNjQ0Ci0tLSBhLzAwMDEtRG9uLXQtYmUtdmVyYm9zZS1pZi15 b3UtYXJlLW5vdC1vbi1hLXR0eS5wYXRjaAorKysgYi8wMDAxLURvbi10LWJlLXZlcmJvc2UtaWYt eW91LWFyZS1ub3Qtb24tYS10dHkucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIGE4NWFjMDRi MThmODIwMTcyOTFmYzIzNjY2MjIzNWUyMTNkNjFhZDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tIGU1NTlmOThhNmQ3M2E2MjNmZjczNWNhYjQzZDQ1YjVjOTg0MDM5NzAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCiBGcm9tOiBEYW4gV2Fsc2ggPGR3YWxzaEByZWRoYXQuY29tPgogRGF0 ZTogRnJpLCAxNCBGZWIgMjAxNCAxMjozMjoxMiAtMDUwMAogU3ViamVjdDogW1BBVENIXSBEb24n dCBiZSB2ZXJib3NlIGlmIHlvdSBhcmUgbm90IG9uIGEgdHR5CkBAIC0yMSw1ICsyMSw1IEBAIGlu ZGV4IGI3Y2Q3NjVjMTVlNC4uZjI1MThlOTZlMzRjIDEwMDc1NQogIFRIUkVBRFM9IiIKICBSUE1G SUxFUz0iIgogLS0gCi0yLjUyLjAKKzIuNTQuMAogCgpkaWZmIC0tZ2l0IGEvMDAwMi1zZXBvbGlj eS1nZW5lcmF0ZS1IYW5kbGUtbW9yZS1yZXNlcnZlZC1wb3J0LXR5cGVzLnBhdGNoIGIvMDAwMi1z ZXBvbGljeS1nZW5lcmF0ZS1IYW5kbGUtbW9yZS1yZXNlcnZlZC1wb3J0LXR5cGVzLnBhdGNoCmlu ZGV4IDUwZjc5NTEuLjEyNjc4ZmQgMTAwNjQ0Ci0tLSBhLzAwMDItc2Vwb2xpY3ktZ2VuZXJhdGUt SGFuZGxlLW1vcmUtcmVzZXJ2ZWQtcG9ydC10eXBlcy5wYXRjaAorKysgYi8wMDAyLXNlcG9saWN5 LWdlbmVyYXRlLUhhbmRsZS1tb3JlLXJlc2VydmVkLXBvcnQtdHlwZXMucGF0Y2gKQEAgLTEsNCAr MSw0IEBACi1Gcm9tIDEzMWQ4NDAwNWU3ZDE0YTc1ZmI4ZWIzZDc1ODBmM2U0MDAxYzRiYzMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDZiZTk5MjYzMDE3YzE2OWQwZjBiYzFlZDI0N2Uy MmE2OTY1ODNiYWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBNYXNhdGFrZSBZQU1B VE8gPHlhbWF0b0ByZWRoYXQuY29tPgogRGF0ZTogVGh1LCAxNCBEZWMgMjAxNyAxNTo1Nzo1OCAr MDkwMAogU3ViamVjdDogW1BBVENIXSBzZXBvbGljeS1nZW5lcmF0ZTogSGFuZGxlIG1vcmUgcmVz ZXJ2ZWQgcG9ydCB0eXBlcwpAQCAtNTMsNyArNTMsNyBAQCBodHRwczovL2xvcmUua2VybmVsLm9y Zy9zZWxpbnV4LzIwMTUwNjEwLjE5MDYzNS4xODY2MTI3OTUyODkxMTIwOTE1LnlhbWF0b0ByZWRo YQogIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIAogZGlm ZiAtLWdpdCBhL3B5dGhvbi9zZXBvbGljeS9zZXBvbGljeS9nZW5lcmF0ZS5weSBiL3B5dGhvbi9z ZXBvbGljeS9zZXBvbGljeS9nZW5lcmF0ZS5weQotaW5kZXggNzgwYTU2YjI4ZWM0Li5jZGU2YTg0 MGU0NTIgMTAwNjQ0CitpbmRleCAwZWRkYTU0YWQ1YTEuLjAyZDkwNjZjOGE0MiAxMDA2NDQKIC0t LSBhL3B5dGhvbi9zZXBvbGljeS9zZXBvbGljeS9nZW5lcmF0ZS5weQogKysrIGIvcHl0aG9uL3Nl cG9saWN5L3NlcG9saWN5L2dlbmVyYXRlLnB5CiBAQCAtMTAwLDcgKzEwMCw5IEBAIGRlZiBnZXRf YWxsX3BvcnRzKCk6CkBAIC02OCw1ICs2OCw1IEBAIGluZGV4IDc4MGE1NmIyOGVjNC4uY2RlNmE4 NDBlNDUyIDEwMDY0NAogICAgICAgICAgZGljdFsocFsnbG93J10sIHBbJ2hpZ2gnXSwgcFsncHJv dG9jb2wnXSldID0gKHBbJ3R5cGUnXSwgcC5nZXQoJ3JhbmdlJykpCiAgICAgIHJldHVybiBkaWN0 CiAtLSAKLTIuNTIuMAorMi41NC4wCiAKCmRpZmYgLS1naXQgYS8wMDAzLXNhbmRib3gtVXNlLW1h dGNoYm94LXdpbmRvdy1tYW5hZ2VyLWluc3RlYWQtb2Ytb3BlbmIucGF0Y2ggYi8wMDAzLXNhbmRi b3gtVXNlLW1hdGNoYm94LXdpbmRvdy1tYW5hZ2VyLWluc3RlYWQtb2Ytb3BlbmIucGF0Y2gKaW5k ZXggMGMyNjA4Zi4uNDg0MjE2NiAxMDA2NDQKLS0tIGEvMDAwMy1zYW5kYm94LVVzZS1tYXRjaGJv eC13aW5kb3ctbWFuYWdlci1pbnN0ZWFkLW9mLW9wZW5iLnBhdGNoCisrKyBiLzAwMDMtc2FuZGJv eC1Vc2UtbWF0Y2hib3gtd2luZG93LW1hbmFnZXItaW5zdGVhZC1vZi1vcGVuYi5wYXRjaApAQCAt MSw0ICsxLDQgQEAKLUZyb20gNzQwZWYyZTg3ZWUzNDYxMmFjNjJjNjBhNzBmYzE1NWU4YzY5ZjZm ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gMjExZDQ0YzJlN2I2MjlmM2FjMDczMTQ3 YTRjMzE0NDliY2JlNDQ3OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IFBldHIgTGF1 dHJiYWNoIDxwbGF1dHJiYUByZWRoYXQuY29tPgogRGF0ZTogV2VkLCAxOCBKdWwgMjAxOCAwOTow OTozNSArMDIwMAogU3ViamVjdDogW1BBVENIXSBzYW5kYm94OiBVc2UgbWF0Y2hib3gtd2luZG93 LW1hbmFnZXIgaW5zdGVhZCBvZiBvcGVuYm94CkBAIC0xMSwxMCArMTEsMTAgQEAgQ29udGVudC10 eXBlOiB0ZXh0L3BsYWluCiAgMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDE3IGRl bGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvc2FuZGJveC9zYW5kYm94IGIvc2FuZGJveC9zYW5k Ym94Ci1pbmRleCBlM2ZkNjExOWVkNGQuLmUwMTQyNWYwYzYzNyAxMDA2NDQKK2luZGV4IDRlN2Q1 NmZkZWRmZC4uNWY3OWM1MzY3YmRhIDEwMDY0NAogLS0tIGEvc2FuZGJveC9zYW5kYm94CiArKysg Yi9zYW5kYm94L3NhbmRib3gKLUBAIC0yNzAsNyArMjcwLDcgQEAgY2xhc3MgU2FuZGJveDoKK0BA IC0yNjYsNyArMjY2LDcgQEAgY2xhc3MgU2FuZGJveDoKICAgICAgICAgICAgICBjb3B5ZmlsZShm LCAiL3RtcCIsIHNlbGYuX190bXBkaXIpCiAgICAgICAgICAgICAgY29weWZpbGUoZiwgIi92YXIv dG1wIiwgc2VsZi5fX3RtcGRpcikKICAKQEAgLTIzLDcgKzIzLDcgQEAgaW5kZXggZTNmZDYxMTll ZDRkLi5lMDE0MjVmMGM2MzcgMTAwNjQ0CiAgICAgICAgICBleGVjZmlsZSA9IHNlbGYuX19ob21l ZGlyICsgIi8uc2FuZGJveHJjIgogICAgICAgICAgZmQgPSBvcGVuKGV4ZWNmaWxlLCAidysiKQog ICAgICAgICAgaWYgc2VsZi5fX29wdGlvbnMuc2Vzc2lvbjoKLUBAIC0zNzAsNyArMzcwLDcgQEAg c2FuZGJveCBbLWhdIFstbCBsZXZlbCBdIFstW1h8TV0gWy1IIGhvbWVkaXJdIFstVCB0ZW1wZGly XV0gWy1JIGluY2x1ZGVmaWxlIF0gWy0KK0BAIC0zNjYsNyArMzY2LDcgQEAgc2FuZGJveCBbLWhd IFstbCBsZXZlbCBdIFstW1h8TV0gWy1IIGhvbWVkaXJdIFstVCB0ZW1wZGlyXV0gWy1JIGluY2x1 ZGVmaWxlIF0gWy0KICAKICAgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKCItVyIsICItLXdpbmRv d21hbmFnZXIiLCBkZXN0PSJ3bSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJz dHJpbmciLApAQCAtNzEsNSArNzEsNSBAQCBpbmRleCAyODE2OTE4MmNlNDIuLmUyYTdhZDliMmFj NyAxMDA2NDQKICAgICAgaWYgWyAteiAiJFdBWUxBTkRfRElTUExBWSIgXTsgdGhlbgogICAgICAg ICAgRElTUExBWV9DT01NQU5EPScvdXNyL2Jpbi9YZXBoeXIgLXJlc2l6ZWFibGUgLXRpdGxlICIk VElUTEUiIC10ZXJtaW5hdGUgLXNjcmVlbiAkU0NSRUVOU0laRSAtZHBpICREUEkgLW5vbGlzdGVu IHRjcCAtZGlzcGxheWZkIDUgNT4mMSAyPi9kZXYvbnVsbCcKIC0tIAotMi41Mi4wCisyLjU0LjAK IAoKZGlmZiAtLWdpdCBhLzAwMDQtVXNlLVNIQS0yLWluc3RlYWQtb2YtU0hBLTEucGF0Y2ggYi8w MDA0LVVzZS1TSEEtMi1pbnN0ZWFkLW9mLVNIQS0xLnBhdGNoCmluZGV4IGMzYjVmZTYuLjkwMTNh NzMgMTAwNjQ0Ci0tLSBhLzAwMDQtVXNlLVNIQS0yLWluc3RlYWQtb2YtU0hBLTEucGF0Y2gKKysr IGIvMDAwNC1Vc2UtU0hBLTItaW5zdGVhZC1vZi1TSEEtMS5wYXRjaApAQCAtMSw0ICsxLDQgQEAK LUZyb20gZGNmMWIyODJkNDVkMzI2YjI0ZWU4YjcyM2U5NDg0ODY0NzQ0MGFmZCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb20gY2JhZjEwNDBjNjU1YmQ1NDRlZWRjYTNiOGUwNzA3MjBkZmMz YjJiZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IFBldHIgTGF1dHJiYWNoIDxwbGF1 dHJiYUByZWRoYXQuY29tPgogRGF0ZTogRnJpLCAzMCBKdWwgMjAyMSAxNDoxNDozNyArMDIwMAog U3ViamVjdDogW1BBVENIXSBVc2UgU0hBLTIgaW5zdGVhZCBvZiBTSEEtMQpAQCAtMTMsNyArMTMs NyBAQCBUaGUgdXNlIG9mIFNIQS0xIGluIFJIRUw5IGlzIGRlcHJlY2F0ZWQKICA0IGZpbGVzIGNo YW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEv cG9saWN5Y29yZXV0aWxzL3NldGZpbGVzL3Jlc3RvcmVjb24uOCBiL3BvbGljeWNvcmV1dGlscy9z ZXRmaWxlcy9yZXN0b3JlY29uLjgKLWluZGV4IDExMzQ0MjBlMGUyOC4uNzdkZDA1NDIxZDExIDEw MDY0NAoraW5kZXggYjdmZjk3MTVhNDliLi42NmI5YzgwMGRjNzMgMTAwNjQ0CiAtLS0gYS9wb2xp Y3ljb3JldXRpbHMvc2V0ZmlsZXMvcmVzdG9yZWNvbi44CiArKysgYi9wb2xpY3ljb3JldXRpbHMv c2V0ZmlsZXMvcmVzdG9yZWNvbi44CiBAQCAtMTAzLDE0ICsxMDMsMTQgQEAgZGlzcGxheSB1c2Fn ZSBpbmZvcm1hdGlvbiBhbmQgZXhpdC4KQEAgLTM0LDcgKzM0LDcgQEAgaW5kZXggMTEzNDQyMGUw ZTI4Li43N2RkMDU0MjFkMTEgMTAwNjQ0CiAgZW5hYmxlIHVzYWdlIG9mIHRoZQogIC5JUiBzZWN1 cml0eS5zZWhhc2gKICBleHRlbmRlZCBhdHRyaWJ1dGUuCi1AQCAtMjA4LDcgKzIwOCw3IEBAIHRo ZQorQEAgLTIxMSw3ICsyMTEsNyBAQCB0aGUKICAuQiBcLUQKICBvcHRpb24gdG8KICAuQiByZXN0 b3JlY29uCkBAIC00Myw3ICs0Myw3IEBAIGluZGV4IDExMzQ0MjBlMGUyOC4uNzdkZDA1NDIxZDEx IDEwMDY0NAogIGF0dHJpYnV0ZSBuYW1lZAogIC5JUiBzZWN1cml0eS5zZWhhc2gKICBvbiBlYWNo IGRpcmVjdG9yeSBzcGVjaWZpZWQgaW4KLUBAIC0yMjUsNyArMjI1LDcgQEAgZm9yIGZ1cnRoZXIg ZGV0YWlscy4KK0BAIC0yMjgsNyArMjI4LDcgQEAgZm9yIGZ1cnRoZXIgZGV0YWlscy4KICAuc3AK ICBUaGUKICAuQiBcLUkKQEAgLTkwLDcgKzkwLDcgQEAgaW5kZXggNTFkMTJhNGRiYjgwLi4wOWJm ZDhjNDBhYjQgMTAwNjQ0CiAgLkkgc2VjdXJpdHkuc2VoYXNoCiAgZGlyZWN0b3J5IGRpZ2VzdCBl bnRyaWVzLCBhbmQgaXMgc2hvd24gZm9yIHJlZmVyZW5jZSBvbmx5KS4KIGRpZmYgLS1naXQgYS9w b2xpY3ljb3JldXRpbHMvc2V0ZmlsZXMvcmVzdG9yZWNvbl94YXR0ci5jIGIvcG9saWN5Y29yZXV0 aWxzL3NldGZpbGVzL3Jlc3RvcmVjb25feGF0dHIuYwotaW5kZXggMzFmYjgyZmQyMDk5Li5iYzIy ZDNmZDQ1NjAgMTAwNjQ0CitpbmRleCBlODYwNGVjNjNjMjkuLjczODMxOWVkYjRhNCAxMDA2NDQK IC0tLSBhL3BvbGljeWNvcmV1dGlscy9zZXRmaWxlcy9yZXN0b3JlY29uX3hhdHRyLmMKICsrKyBi L3BvbGljeWNvcmV1dGlscy9zZXRmaWxlcy9yZXN0b3JlY29uX3hhdHRyLmMKIEBAIC0zOCw3ICsz OCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKQEAgLTEwMiw3ICsxMDIsNyBA QCBpbmRleCAzMWZiODJmZDIwOTkuLmJjMjJkM2ZkNDU2MCAxMDA2NDQKICAJdW5zaWduZWQgY2hh ciAqZmNfZGlnZXN0ID0gTlVMTDsKICAJc2l6ZV90IGksIGZjX2RpZ2VzdF9sZW4gPSAwLCBudW1f c3BlY2ZpbGVzOwogIAotQEAgLTEzMyw4ICsxMzMsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCitAQCAtMTM0LDggKzEzNCw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoq YXJndikKICAJCQlleGl0KC0xKTsKICAJCX0KICAKQEAgLTExMCw5ICsxMTAsOSBAQCBpbmRleCAz MWZiODJmZDIwOTkuLmJjMjJkM2ZkNDU2MCAxMDA2NDQKIC0JCWlmICghc2hhMV9idWYpIHsKICsJ CXNoYTI1Nl9idWYgPSBtYWxsb2MoZmNfZGlnZXN0X2xlbiAqIDIgKyAxKTsKICsJCWlmICghc2hh MjU2X2J1ZikgewotIAkJCWZwcmludGYoc3RkZXJyLAotIAkJCQkiRXJyb3IgYWxsb2NhdGluZyBk aWdlc3QgYnVmZmVyOiAlc1xuIiwKLSAJCQkJCQkJICAgIHN0cmVycm9yKGVycm5vKSk7CisgCQkJ ZnByaW50ZihzdGRlcnIsICJFcnJvciBhbGxvY2F0aW5nIGRpZ2VzdCBidWZmZXI6ICVzXG4iLAor IAkJCQlzdHJlcnJvcihlcnJubykpOworIAkJCXNlbGFiZWxfY2xvc2UoaG5kKTsKIEBAIC0xNDMs MTYgKzE0MywxNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgCQl9CiAgCkBA IC0xNzQsNSArMTc0LDUgQEAgaW5kZXggZDQzZTRhZDIwZjU0Li40NThmM2Y5ZjE2OTMgMTAwNjQ0 CiAgYW5kIHByb3ZpZGVkIHRoZQogIC5CIFwtbgogLS0gCi0yLjUyLjAKKzIuNTQuMAogCgpkaWZm IC0tZ2l0IGEvMDAwNS1weXRob24tc2Vwb2xpY3ktRml4LXNwZWMtZmlsZS1kZXBlbmRlbmNpZXMu cGF0Y2ggYi8wMDA1LXB5dGhvbi1zZXBvbGljeS1GaXgtc3BlYy1maWxlLWRlcGVuZGVuY2llcy5w YXRjaAppbmRleCBhMzdlMGIzLi41MTI4ZDViIDEwMDY0NAotLS0gYS8wMDA1LXB5dGhvbi1zZXBv bGljeS1GaXgtc3BlYy1maWxlLWRlcGVuZGVuY2llcy5wYXRjaAorKysgYi8wMDA1LXB5dGhvbi1z ZXBvbGljeS1GaXgtc3BlYy1maWxlLWRlcGVuZGVuY2llcy5wYXRjaApAQCAtMSw0ICsxLDQgQEAK LUZyb20gNDgzNzU5MmIwNGU3ZmM4NWEzMDYzZWIxNjljM2JiM2M3Y2U1OGM3MyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb20gMzNiOTBiM2YyZTc5MDRjMzcwMDNlNTI1Y2IwYTU0NTlkZWEz ZGIzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IFZpdCBNb2p6aXMgPHZtb2p6aXNA cmVkaGF0LmNvbT4KIERhdGU6IFR1ZSwgMzAgTWF5IDIwMjMgMDk6MDc6MjggKzAyMDAKIFN1Ympl Y3Q6IFtQQVRDSF0gcHl0aG9uL3NlcG9saWN5OiBGaXggc3BlYyBmaWxlIGRlcGVuZGVuY2llcwpA QCAtNDQsNSArNDQsNSBAQCBpbmRleCA0MzNjMjk4YTE3ZTAuLmE2ZDQ1MDhiYjY3MCAxMDA2NDQK ICAKICBtaWRfc2VjdGlvbj0iIiJcCiAtLSAKLTIuNTIuMAorMi41NC4wCiAKCmRpZmYgLS1naXQg YS8wMDA2LXNlcG9saWN5LUZpeC1kZXRlY3Rpb24tb2Ytd3JpdGVhYmxlLWxvY2F0aW9ucy5wYXRj aCBiLzAwMDYtc2Vwb2xpY3ktRml4LWRldGVjdGlvbi1vZi13cml0ZWFibGUtbG9jYXRpb25zLnBh dGNoCmluZGV4IDI2YTAwMjQuLjFhOGNjOWMgMTAwNjQ0Ci0tLSBhLzAwMDYtc2Vwb2xpY3ktRml4 LWRldGVjdGlvbi1vZi13cml0ZWFibGUtbG9jYXRpb25zLnBhdGNoCisrKyBiLzAwMDYtc2Vwb2xp Y3ktRml4LWRldGVjdGlvbi1vZi13cml0ZWFibGUtbG9jYXRpb25zLnBhdGNoCkBAIC0xLDQgKzEs NCBAQAotRnJvbSA5ZjI4MTFkMjRhNzA1YjZmYjRjMWMwMzM5ZGZlOWJkMzA5MDkyMjhiIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBiNWQ4NzE5ZmRjYWE3YTcyMDliYWNiNmUwZDJmNTdm MGY0Mjg3MDZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogUGV0ciBMYXV0cmJhY2gg PGxhdXRyYmFjaEByZWRoYXQuY29tPgogRGF0ZTogTW9uLCA1IE1heSAyMDI1IDE4OjI4OjQwICsw MjAwCiBTdWJqZWN0OiBbUEFUQ0hdIHNlcG9saWN5OiBGaXggZGV0ZWN0aW9uIG9mIHdyaXRlYWJs ZSBsb2NhdGlvbnMKQEAgLTI2LDE3ICsyNiwyMCBAQCBGaXhlczoKIAogU2lnbmVkLW9mZi1ieTog UGV0ciBMYXV0cmJhY2ggPGxhdXRyYmFjaEByZWRoYXQuY29tPgogLS0tCi0gcHl0aG9uL3NlcG9s aWN5L3NlcG9saWN5L2dlbmVyYXRlLnB5IHwgOCArKysrLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisgcHl0aG9uL3NlcG9saWN5L3NlcG9saWN5 L2dlbmVyYXRlLnB5IHwgMTEgKysrKy0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvcHl0aG9uL3NlcG9saWN5L3Nl cG9saWN5L2dlbmVyYXRlLnB5IGIvcHl0aG9uL3NlcG9saWN5L3NlcG9saWN5L2dlbmVyYXRlLnB5 Ci1pbmRleCBjZGU2YTg0MGU0NTIuLjliMzYwZTk2YzlkMSAxMDA2NDQKK2luZGV4IDAyZDkwNjZj OGE0Mi4uOWIzNjBlOTZjOWQxIDEwMDY0NAogLS0tIGEvcHl0aG9uL3NlcG9saWN5L3NlcG9saWN5 L2dlbmVyYXRlLnB5CiArKysgYi9weXRob24vc2Vwb2xpY3kvc2Vwb2xpY3kvZ2VuZXJhdGUucHkK LUBAIC0xMzI0LDE1ICsxMzI0LDE1IEBAIGFsbG93ICVzX3QgJXNfdDolc19zb2NrZXQgbmFtZV8l czsKK0BAIC0xMzI0LDE4ICsxMzI0LDE1IEBAIGFsbG93ICVzX3QgJXNfdDolc19zb2NrZXQgbmFt ZV8lczsKICAgICAgICAgIGltcG9ydCBkbmYKICAKICAgICAgICAgIHdpdGggZG5mLkJhc2UoKSBh cyBiYXNlOgorLSAgICAgICAgICAgIGlmIGJhc2UuY29uZi5zdWJzdGl0dXRpb25zLmdldCgncmVs ZWFzZXZlcicpIGlzIE5vbmU6CistICAgICAgICAgICAgICAgIGJhc2UuY29uZi5zdWJzdGl0dXRp b25zWydyZWxlYXNldmVyJ10gPSAnJworLQogKyAgICAgICAgICAgIGJhc2UuY29uZi5zdWJzdGl0 dXRpb25zLnVwZGF0ZV9mcm9tX2V0YygnLycpCiAgICAgICAgICAgICAgYmFzZS5yZWFkX2FsbF9y ZXBvcygpCiAgICAgICAgICAgICAgYmFzZS5maWxsX3NhY2sobG9hZF9zeXN0ZW1fcmVwbz1UcnVl KQpAQCAtNTIsNyArNTUsNyBAQCBpbmRleCBjZGU2YTg0MGU0NTIuLjliMzYwZTk2YzlkMSAxMDA2 NDQKICAgICAgICAgICAgICAgICAgc2VsZi5ycG1zLmFwcGVuZChwa2cubmFtZSkKICAgICAgICAg ICAgICAgICAgZm9yIGZuYW1lIGluIHBrZy5maWxlczoKICAgICAgICAgICAgICAgICAgICAgIGZv ciBiIGluIHNlbGYuREVGQVVMVF9ESVJTOgotQEAgLTEzNDUsNyArMTM0NSw3IEBAIGFsbG93ICVz X3QgJXNfdDolc19zb2NrZXQgbmFtZV8lczsKK0BAIC0xMzQ4LDcgKzEzNDUsNyBAQCBhbGxvdyAl c190ICVzX3Q6JXNfc29ja2V0IG5hbWVfJXM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmFkZF9kaXIoZm5hbWUpCiAgICAgICAgICAgICAgICAgIHNxID0gcXVlcnkuYXZh aWxhYmxlKCkKICAgICAgICAgICAgICAgICAgc3EgPSBzcS5maWx0ZXIocHJvdmlkZXM9cGtnLnNv dXJjZV9uYW1lKQpAQCAtNjIsNSArNjUsNSBAQCBpbmRleCBjZGU2YTg0MGU0NTIuLjliMzYwZTk2 YzlkMSAxMDA2NDQKICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYiBpbiBzZWxmLkRFRkFV TFRfRElSUzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgYiA9PSAiL2V0YyI6CiAt LSAKLTIuNTIuMAorMi41NC4wCiAKCmRpZmYgLS1naXQgYS8wMDA3LXJlc3RvcmVjb25kLUFkZC1G LWZvci1ydW4taW4tZm9yZWdyb3VuZC5wYXRjaCBiLzAwMDctcmVzdG9yZWNvbmQtQWRkLUYtZm9y LXJ1bi1pbi1mb3JlZ3JvdW5kLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4 M2M3YjIyLi4wMDAwMDAwCi0tLSBhLzAwMDctcmVzdG9yZWNvbmQtQWRkLUYtZm9yLXJ1bi1pbi1m b3JlZ3JvdW5kLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotRnJvbSA5Zjgw NDc2YzQ4ZTFkMGVlNjEwNjEwMmY2NzQ2ZmNiMGRhMDE2MjEzIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogUGV0ciBMYXV0cmJhY2ggPGxhdXRyYmFjaEByZWRoYXQuY29tPgotRGF0ZTog VGh1LCAyIEFwciAyMDI2IDE3OjE3OjEyICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIHJlc3RvcmVj b25kOiBBZGQgLUYgZm9yIHJ1biBpbiBmb3JlZ3JvdW5kCi1Db250ZW50LXR5cGU6IHRleHQvcGxh aW4KLQotU2lnbmVkLW9mZi1ieTogUGV0ciBMYXV0cmJhY2ggPGxhdXRyYmFjaEByZWRoYXQuY29t PgotLS0tCi0gcmVzdG9yZWNvbmQvcmVzdG9yZWNvbmQuOCB8ICA1ICsrKystCi0gcmVzdG9yZWNv bmQvcmVzdG9yZWNvbmQuYyB8IDEzICsrKysrKysrLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDEy IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9yZXN0b3JlY29u ZC9yZXN0b3JlY29uZC44IGIvcmVzdG9yZWNvbmQvcmVzdG9yZWNvbmQuOAotaW5kZXggYmY4ZWM4 NzU2MmY4Li5iYjk5YjI0YTJkNjkgMTAwNjQ0Ci0tLS0gYS9yZXN0b3JlY29uZC9yZXN0b3JlY29u ZC44Ci0rKysgYi9yZXN0b3JlY29uZC9yZXN0b3JlY29uZC44Ci1AQCAtMyw3ICszLDcgQEAKLSBy ZXN0b3JlY29uZCBcLSBkYWVtb24gdGhhdCB3YXRjaGVzIGZvciBmaWxlIGNyZWF0aW9uIGFuZCB0 aGVuIHNldHMgdGhlIGRlZmF1bHQgU0VMaW51eCBmaWxlIGNvbnRleHQKLSAKLSAuU0ggIlNZTk9Q U0lTIgotLS5CIHJlc3RvcmVjb25kICBbXC1kXSBbLWhdIFtcLWYgcmVzdG9yZWNvbmRfZmlsZSBd IFtcLXVdIFtcLXZdCi0rLkIgcmVzdG9yZWNvbmQgIFtcLWRdIFstaF0gW1wtZiByZXN0b3JlY29u ZF9maWxlIF0gW1wtRl0gW1wtdV0gW1wtdl0KLSAuUAotIAotIC5TSCAiREVTQ1JJUFRJT04iCi1A QCAtMjYsNiArMjYsOSBAQCBQcmludCB1c2FnZSBzdGF0ZW1lbnQuCi0gLkIgXC1mIHJlc3RvcmVj b25kX2ZpbGUKLSBVc2UgYWx0ZXJuYXRpdmUgcmVzdG9yZWNvbmQuY29uZiBmaWxlLgotIC5UUAot Ky5CIFwtRgotK1J1biBpbiBmb3JlZ3JvdW5kLCBkbyBub3QgYmVjb21lIGEgZGFlbW9uLgotKy5U UAotIC5CIFwtdQotIFR1cm5zIG9uIHVzZXIgbW9kZS4gIFJ1bnMgcmVzdG9yZWNvbmQgaW4gdGhl IHVzZXIgc2Vzc2lvbiBhbmQgcmVhZHMgL2V0Yy9zZWxpbnV4L3Jlc3RvcmVjb25kX3VzZXIuY29u Zi4gIFVzZXMgZGJ1cyB0byBtYWtlIHN1cmUgb25seSBvbmUgcmVzdG9yZWNvbmQgaXMgcnVubmlu ZyBwZXIgdXNlciBzZXNzaW9uLgotIC5UUAotZGlmZiAtLWdpdCBhL3Jlc3RvcmVjb25kL3Jlc3Rv cmVjb25kLmMgYi9yZXN0b3JlY29uZC9yZXN0b3JlY29uZC5jCi1pbmRleCBkNWY3MGZjMmUyYzEu LjM2ZjgyYWU1ZTljYiAxMDA2NDQKLS0tLSBhL3Jlc3RvcmVjb25kL3Jlc3RvcmVjb25kLmMKLSsr KyBiL3Jlc3RvcmVjb25kL3Jlc3RvcmVjb25kLmMKLUBAIC03Niw2ICs3Niw3IEBAIGludCBkZWJ1 Z19tb2RlID0gMDsKLSBpbnQgdGVybWluYXRlID0gMDsKLSBpbnQgbWFzdGVyX3dkID0gLTE7Ci0g aW50IHJ1bl9hc191c2VyID0gMDsKLStpbnQgZm9yZWdyb3VuZF9tb2RlID0gMDsKLSAKLSBzdGF0 aWMgdm9pZCBkb25lKHZvaWQpIHsKLSAJd2F0Y2hfbGlzdF9mcmVlKG1hc3Rlcl9mZCk7Ci1AQCAt MTI0LDcgKzEyNSw3IEBAIHN0YXRpYyB2b2lkIHRlcm1faGFuZGxlcihpbnQgcyBfX2F0dHJpYnV0 ZV9fICgodW51c2VkKSkpCi0gCi0gc3RhdGljIHZvaWQgdXNhZ2UoY2hhciAqcHJvZ3JhbSkKLSB7 Ci0tCXByaW50ZigiJXMgWy1kXSBbLWYgcmVzdG9yZWNvbmRfZmlsZSBdIFstdV0gWy12XSBcbiIs IHByb2dyYW0pOwotKwlwcmludGYoIiVzIFstZF0gWy1mIHJlc3RvcmVjb25kX2ZpbGUgXSBbLUZd IFstbl0gWy11XSBbLXZdIFxuIiwgcHJvZ3JhbSk7Ci0gfQotIAotIHZvaWQgZXhpdEFwcChjb25z dCBjaGFyICptc2cpCi1AQCAtMTY1LDcgKzE2Niw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKLSAJc2lnYWN0aW9uKFNJR1RFUk0sICZzYSwgTlVMTCk7Ci0gCi0gCWF0ZXhpdCgg ZG9uZSApOwotLQl3aGlsZSAoKG9wdCA9IGdldG9wdChhcmdjLCBhcmd2LCAiaGRmOnV2IikpID4g MCkgewotKwl3aGlsZSAoKG9wdCA9IGdldG9wdChhcmdjLCBhcmd2LCAiaGRmOkZ1diIpKSA+IDAp IHsKLSAJCXN3aXRjaCAob3B0KSB7Ci0gCQljYXNlICdkJzoKLSAJCQlkZWJ1Z19tb2RlID0gMTsK LUBAIC0xNzMsNiArMTc0LDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAkJ Y2FzZSAnZic6Ci0gCQkJd2F0Y2hfZmlsZSA9IG9wdGFyZzsKLSAJCQlicmVhazsKLSsJCWNhc2Ug J0YnOgotKwkJCWZvcmVncm91bmRfbW9kZSA9IDE7Ci0rCQkJYnJlYWs7Ci0gCQljYXNlICd1JzoK LSAJCQlydW5fYXNfdXNlciA9IDE7Ci0gCQkJYnJlYWs7Ci1AQCAtMjA5LDEzICsyMTMsMTIgQEAg aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAotIAlyZWFkX2NvbmZpZyhtYXN0ZXJf ZmQsIHdhdGNoX2ZpbGUpOwotIAotLQlpZiAoIWRlYnVnX21vZGUpIHsKLSsJaWYgKCFkZWJ1Z19t b2RlICYmICFmb3JlZ3JvdW5kX21vZGUpIHsKLSAJCWlmIChkYWVtb24oMCwgMCkgPCAwKQotIAkJ CWV4aXRBcHAoImRhZW1vbiIpOwotKwkJd3JpdGVfcGlkX2ZpbGUoKTsKLSAJfQotIAotLQl3cml0 ZV9waWRfZmlsZSgpOwotLQotIAl3aGlsZSAod2F0Y2gobWFzdGVyX2ZkLCB3YXRjaF9maWxlKSA9 PSAwKSB7Ci0gCX0KLSAKLS0tIAotMi41My4wCi0KCmRpZmYgLS1naXQgYS8wMDA4LXJlc3RvcmVj b25kLnNlcnZpY2UtVXNlLVR5cGUtc2ltcGxlLnBhdGNoIGIvMDAwOC1yZXN0b3JlY29uZC5zZXJ2 aWNlLVVzZS1UeXBlLXNpbXBsZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MzljZjI1MC4uMDAwMDAwMAotLS0gYS8wMDA4LXJlc3RvcmVjb25kLnNlcnZpY2UtVXNlLVR5cGUt c2ltcGxlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotRnJvbSAzZjA0ZmIx MTcyYzk0YTk4ZTVhNGRjMGUxZjY5MTcyZTNhY2JjN2Q3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogUGV0ciBMYXV0cmJhY2ggPGxhdXRyYmFjaEByZWRoYXQuY29tPgotRGF0ZTogVGh1 LCAyIEFwciAyMDI2IDE3OjE5OjA1ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIHJlc3RvcmVjb25k LnNlcnZpY2U6IFVzZSBUeXBlPXNpbXBsZQotQ29udGVudC10eXBlOiB0ZXh0L3BsYWluCi0KLVRo ZXJlJ3MgYSByYWNlIGNvbmRpdGlvbiB3aGVuIGRhZW1vbigpIGluIHBhcmVudCBwcm9jZXNzIGlt bWVkaWF0ZWx5Ci1leGl0cyB3aGlsZSBwaWQgZmlsZSBpcyBub3QgY3JlYXRlZCBvciB1cGRhdGVk LiBVc2luZyBUeXBlPWZvcmtpbmcgaXQKLWNhbiBjb25mdXNlIHN5c3RlbWQgd2hpY2ggdHJpZXMg dG8gb3BlbiBub24tZXhpc3RpbmcgcGlkIGZpbGUuIEl0J3MKLWJldHRlciB0byBydW4gcmVzdG9j b25kIGluIGZvcmVncm91bmQgYW5kIHVzZSBUeXBlPXNpbXBsZQotCi1GaXhlczoKLQotICAgIG9w ZW5hdCg4MDwvcnVuPiwgInJlc3RvcmVjb25kLnBpZCIsIE9fUkRPTkxZfE9fTk9GT0xMT1d8T19D TE9FWEVDfE9fUEFUSCkgPSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkpIDww LjAwMDAwNj4KLQotU2lnbmVkLW9mZi1ieTogUGV0ciBMYXV0cmJhY2ggPGxhdXRyYmFjaEByZWRo YXQuY29tPgotLS0tCi0gcmVzdG9yZWNvbmQvcmVzdG9yZWNvbmQuc2VydmljZSB8IDUgKystLS0K LSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvcmVzdG9yZWNvbmQvcmVzdG9yZWNvbmQuc2VydmljZSBiL3Jlc3RvcmVjb25kL3Jl c3RvcmVjb25kLnNlcnZpY2UKLWluZGV4IDBlNGVhNzJkMDhhZS4uNTZmOTcwNzA3ZDkzIDEwMDY0 NAotLS0tIGEvcmVzdG9yZWNvbmQvcmVzdG9yZWNvbmQuc2VydmljZQotKysrIGIvcmVzdG9yZWNv bmQvcmVzdG9yZWNvbmQuc2VydmljZQotQEAgLTUsOSArNSw4IEBAIENvbmRpdGlvblBhdGhFeGlz dHM9L2V0Yy9zZWxpbnV4L3Jlc3RvcmVjb25kLmNvbmYKLSBDb25kaXRpb25TZWN1cml0eT1zZWxp bnV4Ci0gCi0gW1NlcnZpY2VdCi0tVHlwZT1mb3JraW5nCi0tRXhlY1N0YXJ0PS91c3Ivc2Jpbi9y ZXN0b3JlY29uZAotLVBJREZpbGU9L3J1bi9yZXN0b3JlY29uZC5waWQKLStUeXBlPXNpbXBsZQot K0V4ZWNTdGFydD0vdXNyL3NiaW4vcmVzdG9yZWNvbmQgLUYKLSAKLSBbSW5zdGFsbF0KLSBXYW50 ZWRCeT1tdWx0aS11c2VyLnRhcmdldAotLS0gCi0yLjUzLjAKLQoKZGlmZiAtLWdpdCBhLzAwMDkt c2V1bnNoYXJlLWd1YXJkLWZhbGxpYmxlLWZ1bmN0aW9uLWNhbGxzLWJ5LWNoZWNraW5nLS5wYXRj aCBiLzAwMDktc2V1bnNoYXJlLWd1YXJkLWZhbGxpYmxlLWZ1bmN0aW9uLWNhbGxzLWJ5LWNoZWNr aW5nLS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDI4ZDJiZC4uMDAwMDAw MAotLS0gYS8wMDA5LXNldW5zaGFyZS1ndWFyZC1mYWxsaWJsZS1mdW5jdGlvbi1jYWxscy1ieS1j aGVja2luZy0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi1Gcm9tIDBlZGZj N2NkNDJmZGRlZDljNjk3MzcwZDY5MzJlZWNhZDJhYTc0NDkgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBSYWh1bCBTYW5kaHUgPG52cmF4bkBwb3N0ZW8udWs+Ci1EYXRlOiBUdWUsIDE0 IEFwciAyMDI2IDE4OjQwOjAwICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNldW5zaGFyZTogZ3Vh cmQgZmFsbGlibGUgZnVuY3Rpb24gY2FsbHMgYnkgY2hlY2tpbmcgcmV0dmFsCi1Db250ZW50LXR5 cGU6IHRleHQvcGxhaW4KLQotc2V1bnNoYXJlIGN1cnJlbnRseSBzZWdmYXVsdHMgaXMgcGFzc2Vk IC0ta2lsbCBhbmQgYW4gaW52YWxpZCBjb250ZXh0Ci12aWEgLVouCi0KLVNpZ25lZC1vZmYtYnk6 IFJhaHVsIFNhbmRodSA8bnZyYXhuQHBvc3Rlby51az4KLUFja2VkLWJ5OiBTdGVwaGVuIFNtYWxs ZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWlsLmNvbT4KLS0tLQotIHNhbmRib3gvc2V1bnNo YXJlLmMgfCAyNiArKysrKysrKysrKysrKysrKysrLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAx OSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9z ZXVuc2hhcmUuYyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLWluZGV4IDI1MTJhMThjN2I1Mi4uZTg5 YTlmZWNmOWY2IDEwMDY0NAotLS0tIGEvc2FuZGJveC9zZXVuc2hhcmUuYwotKysrIGIvc2FuZGJv eC9zZXVuc2hhcmUuYwotQEAgLTY3OSw5ICs2NzksMTkgQEAga2lsbGFsbCAoY29uc3QgY2hhciAq ZXhlY2NvbikKLSAJCXJldHVybiAtMTsKLSAJfQotIAlwaWRzID0gMDsKLS0JY29udGV4dF90IGNv bjsKLS0JY29uID0gY29udGV4dF9uZXcoZXhlY2Nvbik7Ci0tCWNvbnN0IGNoYXIgKm1jcyA9IGNv bnRleHRfcmFuZ2VfZ2V0KGNvbik7Ci0rCWNvbnRleHRfdCBjb24gPSBjb250ZXh0X25ldyhleGVj Y29uKTsKLSsJaWYgKCFjb24pIHsKLSsJCWZyZWUocGlkX3RhYmxlKTsKLSsJCSh2b2lkKWNsb3Nl ZGlyKGRpcik7Ci0rCQlyZXR1cm4gLTE7Ci0rCX0KLSsJY29uc3QgY2hhciAqY29uc3QgbWNzID0g Y29udGV4dF9yYW5nZV9nZXQoY29uKTsKLSsJaWYgKCFtY3MpIHsKLSsJCWNvbnRleHRfZnJlZShj b24pOwotKwkJZnJlZShwaWRfdGFibGUpOwotKwkJKHZvaWQpY2xvc2VkaXIoZGlyKTsKLSsJCXJl dHVybiAtMTsKLSsJfQotIAlwcmludGYoIm1jcz0lc1xuIiwgbWNzKTsKLSAJd2hpbGUgKChkZSA9 IHJlYWRkaXIgKGRpcikpICE9IE5VTEwpIHsKLSAJCWlmICghKHBpZCA9IChwaWRfdClhdG9pKGRl LT5kX25hbWUpKSB8fCBwaWQgPT0gc2VsZikKLUBAIC03MDgsMTEgKzcxOCwxMyBAQCBraWxsYWxs IChjb25zdCBjaGFyICpleGVjY29uKQotIAkJaWYgKGdldHBpZGNvbihpZCwgJnNjb24pID09IDAp IHsKLSAKLSAJCQljb250ZXh0X3QgcGlkY29uID0gY29udGV4dF9uZXcoc2Nvbik7Ci0tCQkJLyog QXR0ZW1wdCB0byBraWxsIHJlbWFpbmluZyBwcm9jZXNzZXMgKi8KLS0JCQlpZiAoc3RyY21wKGNv bnRleHRfcmFuZ2VfZ2V0KHBpZGNvbiksIG1jcykgPT0gMCkKLS0JCQkJa2lsbChpZCwgU0lHS0lM TCk7Ci0rCQkJaWYgKHBpZGNvbikgewotKwkJCQkvKiBBdHRlbXB0IHRvIGtpbGwgcmVtYWluaW5n IHByb2Nlc3NlcyAqLwotKwkJCQlpZiAoc3RyY21wKGNvbnRleHRfcmFuZ2VfZ2V0KHBpZGNvbiks IG1jcykgPT0gMCkKLSsJCQkJCWtpbGwoaWQsIFNJR0tJTEwpOwotIAotLQkJCWNvbnRleHRfZnJl ZShwaWRjb24pOwotKwkJCQljb250ZXh0X2ZyZWUocGlkY29uKTsKLSsJCQl9Ci0gCQkJZnJlZWNv bihzY29uKTsKLSAJCX0KLSAJCXJ1bm5pbmcrKzsKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQg YS8wMDEwLXNhbmRib3gtc2V1bnNoYXJlLXBhc3MtT19OT0ZPTExPVy10by1vcGVuYXQucGF0Y2gg Yi8wMDEwLXNhbmRib3gtc2V1bnNoYXJlLXBhc3MtT19OT0ZPTExPVy10by1vcGVuYXQucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxOTFkZWMuLjAwMDAwMDAKLS0tIGEvMDAx MC1zYW5kYm94LXNldW5zaGFyZS1wYXNzLU9fTk9GT0xMT1ctdG8tb3BlbmF0LnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotRnJvbSA4ZDJjNzM2MGY1NzQ5YjNjY2FjZDM0OGM0 OTUzOTlmMjQzMThkN2I0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBT bWFsbGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDEyIE1h eSAyMDI2IDE0OjM0OjAyIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNhbmRib3gvc2V1bnNoYXJl OiBwYXNzIE9fTk9GT0xMT1cgdG8gb3BlbmF0KCkKLUNvbnRlbnQtdHlwZTogdGV4dC9wbGFpbgot Ci1XZSBkbyBub3Qgd2FudCB0byBmb2xsb3cgc3ltbGlua3MgaGVyZS4KLQotQWNrZWQtYnk6IEph bWVzIENhcnRlciA8andjYXJ0MkBnbWFpbC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFNt YWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWlsLmNvbT4KLS0tLQotIHNhbmRib3gvc2V1 bnNoYXJlLmMgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zYW5kYm94L3NldW5zaGFyZS5jIGIvc2FuZGJveC9zZXVu c2hhcmUuYwotaW5kZXggZTg5YTlmZWNmOWY2Li5hMTkwMGVhYTc2MDAgMTAwNjQ0Ci0tLS0gYS9z YW5kYm94L3NldW5zaGFyZS5jCi0rKysgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1AQCAtNDI4LDcg KzQyOCw3IEBAIHN0YXRpYyBib29sIHJtX3JmKGludCB0YXJnZXRmZCwgY29uc3QgY2hhciAqcGF0 aCkgewotIAl9Ci0gCi0gCWlmIChTX0lTRElSKHN0YXRidWYuc3RfbW9kZSkpIHsKLS0JCWNvbnN0 IGludCBuZXdmZCA9IG9wZW5hdCh0YXJnZXRmZCwgcGF0aCwgT19SRE9OTFkgfCBPX0RJUkVDVE9S WSB8IE9fQ0xPRVhFQyk7Ci0rCQljb25zdCBpbnQgbmV3ZmQgPSBvcGVuYXQodGFyZ2V0ZmQsIHBh dGgsIE9fUkRPTkxZIHwgT19ESVJFQ1RPUlkgfCBPX05PRk9MTE9XIHwgT19DTE9FWEVDKTsKLSAJ CWlmIChuZXdmZCA8IDApIHsKLSAJCQlwZXJyb3IoIm9wZW5hdCIpOwotIAkJCXJldHVybiBmYWxz ZTsKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8wMDExLXNhbmRib3gtc2V1bnNoYXJlLXN3 aXRjaC1zZXVuc2hhcmVfbW91bnRfZmlsZS10by11c2UucGF0Y2ggYi8wMDExLXNhbmRib3gtc2V1 bnNoYXJlLXN3aXRjaC1zZXVuc2hhcmVfbW91bnRfZmlsZS10by11c2UucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0MzcxOTUuLjAwMDAwMDAKLS0tIGEvMDAxMS1zYW5kYm94 LXNldW5zaGFyZS1zd2l0Y2gtc2V1bnNoYXJlX21vdW50X2ZpbGUtdG8tdXNlLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotRnJvbSBlOTY0YTU3NGMyY2E4ZWMxYmNkMzE3MmRj MTg1YWRhODA0NGRjZWVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBT bWFsbGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDEyIE1h eSAyMDI2IDE1OjI2OjMxIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNhbmRib3gvc2V1bnNoYXJl OiBzd2l0Y2ggc2V1bnNoYXJlX21vdW50X2ZpbGUoKSB0byB1c2UKLSBvcGVuKCkKLUNvbnRlbnQt dHlwZTogdGV4dC9wbGFpbgotCi1zZXVuc2hhcmVfbW91bnRfZmlsZSgpIGN1cnJlbnRseSB1c2Vz IGZvcGVuKCkgdG8gY3JlYXRlIHRoZSBkc3QKLWlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4g U3dpdGNoIHRvIHVzaW5nIG9wZW4oKSB3aXRoCi1leHBsaWNpdGx5IHNwZWNpZmllZCBmbGFncyBp bmNsdWRpbmcgT19OT0ZPTExPVyBhbmQgYW4gZXhwbGljaXRseQotc3BlY2lmaWVkIG1vZGUgZm9y IHRoZSBuZXcgZmlsZS4KLQotU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBTbWFsbGV5IDxzdGVwaGVu LnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci1BY2tlZC1ieTogUGV0ciBMYXV0cmJhY2ggPGxhdXRy YmFjaEByZWRoYXQuY29tPgotLS0tCi0gc2FuZGJveC9zZXVuc2hhcmUuYyB8IDE0ICsrKysrKysr LS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL3NhbmRib3gvc2V1bnNoYXJlLmMgYi9zYW5kYm94L3NldW5zaGFyZS5j Ci1pbmRleCBhMTkwMGVhYTc2MDAuLjE3YTcyN2U3OGI1ZiAxMDA2NDQKLS0tLSBhL3NhbmRib3gv c2V1bnNoYXJlLmMKLSsrKyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLUBAIC0zMDQsMTggKzMwNCwy MCBAQCBzdGF0aWMgaW50IHNldW5zaGFyZV9tb3VudChjb25zdCBjaGFyICpzcmMsIGNvbnN0IGNo YXIgKmRzdCwgc3RydWN0IHN0YXQgKnNyY19zdAotICAqLwotIHN0YXRpYyBpbnQgc2V1bnNoYXJl X21vdW50X2ZpbGUoY29uc3QgY2hhciAqc3JjLCBjb25zdCBjaGFyICpkc3QpCi0gewotLQlpbnQg ZmxhZ3MgPSAwOwotLQotIAlpZiAodmVyYm9zZSkKLSAJCXByaW50ZihfKCJNb3VudGluZyAlcyBv biAlc1xuIiksIHNyYywgZHN0KTsKLSAKLSAJaWYgKGFjY2Vzcyhkc3QsIEZfT0spID09IC0xKSB7 Ci0tCQkgRklMRSAqZnB0cjsKLS0gICAgICAgICBmcHRyID0gZm9wZW4oZHN0LCAidyIpOwotLQkJ IGZjbG9zZShmcHRyKTsKLSsJCWludCBmZCA9IG9wZW4oZHN0LCBPX1dST05MWSB8IE9fQ1JFQVQg fCBPX05PRk9MTE9XIHwgT19DTE9FWEVDLCAwNjAwKTsKLSsJCWlmIChmZCA8IDApIHsKLSsJCQlm cHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIGNyZWF0ZSBtb3VudCBwb2ludCAlczogJW1cbiIp LCBkc3QpOwotKwkJCXJldHVybiAtMTsKLSsJCX0KLSsJCWNsb3NlKGZkKTsKLSAJfQotKwotIAkv KiBtb3VudCBmaWxlICovCi0tCWlmIChtb3VudChzcmMsIGRzdCwgTlVMTCwgTVNfQklORCB8IGZs YWdzLCBOVUxMKSA8IDApIHsKLSsJaWYgKG1vdW50KHNyYywgZHN0LCBOVUxMLCBNU19CSU5ELCBO VUxMKSA8IDApIHsKLSAJCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gbW91bnQgJXMgb24g JXM6ICVzXG4iKSwgc3JjLCBkc3QsIHN0cmVycm9yKGVycm5vKSk7Ci0gCQlyZXR1cm4gLTE7Ci0g CX0KLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8wMDEyLXNhbmRib3gtc2V1bnNoYXJlLWZp eC1lcnJvci1jaGVja2luZy1mb3Itc2V0ZnN1aWQucGF0Y2ggYi8wMDEyLXNhbmRib3gtc2V1bnNo YXJlLWZpeC1lcnJvci1jaGVja2luZy1mb3Itc2V0ZnN1aWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAyZDkzZTAuLjAwMDAwMDAKLS0tIGEvMDAxMi1zYW5kYm94LXNldW5z aGFyZS1maXgtZXJyb3ItY2hlY2tpbmctZm9yLXNldGZzdWlkLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMzMgKzAsMCBAQAotRnJvbSA5YzUzMjBjNmQ0YTFlYjkxYjU3ZTRlMTI3Mzc4ODJlZjEz MWMyZmFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBTbWFsbGV5IDxz dGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDEyIE1heSAyMDI2IDE1 OjM1OjUzIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNhbmRib3gvc2V1bnNoYXJlOiBmaXggZXJy b3IgY2hlY2tpbmcgZm9yIHNldGZzdWlkKCkKLUNvbnRlbnQtdHlwZTogdGV4dC9wbGFpbgotCi1z ZXRmc3VpZCgpIGRvZXNuJ3QgcmVsaWFibHkgc2V0IGVycm5vIG9yIHJldHVybiBhbnl0aGluZyBp bmRpY2F0aW5nCi1hbiBlcnJvci4KLQotU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBTbWFsbGV5IDxz dGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci1BY2tlZC1ieTogUGV0ciBMYXV0cmJhY2gg PGxhdXRyYmFjaEByZWRoYXQuY29tPgotLS0tCi0gc2FuZGJveC9zZXVuc2hhcmUuYyB8IDQgKyst LQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9zYW5kYm94L3NldW5zaGFyZS5jIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotaW5k ZXggMTdhNzI3ZTc4YjVmLi5iOWM4NWJmMjBmODUgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L3NldW5z aGFyZS5jCi0rKysgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1AQCAtODU4LDggKzg1OCw4IEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotIAkvKiBDaGFuZ2luZyBmc3VpZCBpcyB1 c3VhbGx5IHJlcXVpcmVkIHdoZW4gdXNlci1zcGVjaWZpZWQgZGlyZWN0b3J5IGlzCi0gCSAqIG9u IGFuIE5GUyBtb3VudC4gIEl0J3MgYWxzbyBkZXNpcmVkIHRvIGF2b2lkIGxlYWtpbmcgaW5mbyBh Ym91dAotIAkgKiBleGlzdGVuY2Ugb2YgdGhlIGZpbGVzIG5vdCBhY2Nlc3NpYmxlIHRvIHRoZSB1 c2VyLiAqLwotLQlpZiAoKCh1aWRfdClzZXRmc3VpZCh1aWQpICE9IDApICAgJiYgKGVycm5vICE9 IDApKSB7Ci0tCQlmcHJpbnRmKHN0ZGVyciwgXygiRXJyb3I6IHVuYWJsZSB0byBzZXRmc3VpZCAl bVxuIikpOwotKwlpZiAoKHVpZF90KXNldGZzdWlkKHVpZCkgIT0gMCkgewotKwkJZnByaW50Zihz dGRlcnIsIF8oIkVycm9yOiB1bmFibGUgdG8gc2V0ZnN1aWRcbiIpKTsKLSAKLSAJCXJldHVybiAt MTsKLSAJfQotLS0gCi0yLjU0LjAKLQoKZGlmZiAtLWdpdCBhLzAwMTMtc2FuZGJveC1zZXVuc2hh cmUtcmVtb3VudC10bXAtYW5kLXZhci10bXAtd2l0aC10aGUtcC5wYXRjaCBiLzAwMTMtc2FuZGJv eC1zZXVuc2hhcmUtcmVtb3VudC10bXAtYW5kLXZhci10bXAtd2l0aC10aGUtcC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRlN2YzMC4uMDAwMDAwMAotLS0gYS8wMDEzLXNh bmRib3gtc2V1bnNoYXJlLXJlbW91bnQtdG1wLWFuZC12YXItdG1wLXdpdGgtdGhlLXAucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi1Gcm9tIGY3ODcwOGVhNWQ2ZDNkNmRhNGZh MjA1MjdiNDU5ZmE1NTA3NWQ4YTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVw aGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwg MTIgTWF5IDIwMjYgMTY6MDY6MDUgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gc2FuZGJveC9zZXVu c2hhcmU6IHJlbW91bnQgL3RtcCBhbmQgL3Zhci90bXAgd2l0aCB0aGUgcHJvcGVyCi0gZmxhZ3MK LUNvbnRlbnQtdHlwZTogdGV4dC9wbGFpbgotCi1tb3VudCgyKSB3aXRoIE1TX0JJTkQgaWdub3Jl cyBhbnkgbm9zdWlkL25vZGV2L25vZXhlYyBmbGFncywgc28KLXNldW5zaGFyZV9tb3VudCgpIHdh cyBuZXZlciBzZXR0aW5nIHRob3NlIG9uIHRoZSAvdG1wIGFuZAotL3Zhci90bXAgbW91bnRzLiBG aXggc2V1bnNoYXJlX21vdW50KCkgdG8gcmVtb3VudCB0aGVtCi13aXRoIHRob3NlIGZsYWdzIGFm dGVyIHRoZSBiaW5kIG1vdW50LCB3aGljaCBkb2VzCi1zZXQgdGhlbSBwcm9wZXJseS4KLQotVGVz dDoKLW1rZGlyIHRtcAotc2V1bnNoYXJlIC10IHRtcCAvYmluL2Jhc2gKLWNwIC9iaW4vYmFzaCAv dG1wCi0vdG1wL2Jhc2gKLQotU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBTbWFsbGV5IDxzdGVwaGVu LnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci1BY2tlZC1ieTogUGV0ciBMYXV0cmJhY2ggPGxhdXRy YmFjaEByZWRoYXQuY29tPgotLS0tCi0gc2FuZGJveC9zZXVuc2hhcmUuYyB8IDIxICsrKysrKysr KysrKysrKystLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9zZXVuc2hhcmUuYyBiL3NhbmRib3gvc2V1 bnNoYXJlLmMKLWluZGV4IGI5Yzg1YmYyMGY4NS4uOTg1ZTBjZmJhMTk5IDEwMDY0NAotLS0tIGEv c2FuZGJveC9zZXVuc2hhcmUuYwotKysrIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotQEAgLTI2MCwy NiArMjYwLDMyIEBAIHN0YXRpYyBpbnQgdmVyaWZ5X3NoZWxsKGNvbnN0IGNoYXIgKnNoZWxsX25h bWUpCi0gICovCi0gc3RhdGljIGludCBzZXVuc2hhcmVfbW91bnQoY29uc3QgY2hhciAqc3JjLCBj b25zdCBjaGFyICpkc3QsIHN0cnVjdCBzdGF0ICpzcmNfc3QpCi0gewotLQlpbnQgZmxhZ3MgPSAw OwotKwlpbnQgYmluZF9mbGFncyA9IE1TX0JJTkQ7Ci0rCWludCBzZWNfZmxhZ3MgPSAwOwotIAlp bnQgaXNfdG1wID0gMDsKLSAKLSAJaWYgKHZlcmJvc2UpCi0gCQlwcmludGYoXygiTW91bnRpbmcg JXMgb24gJXNcbiIpLCBzcmMsIGRzdCk7Ci0gCi0gCWlmIChzdHJjbXAoIi90bXAiLCBkc3QpID09 IDApIHsKLS0JCWZsYWdzID0gZmxhZ3MgfCBNU19OT0RFViB8IE1TX05PU1VJRCB8IE1TX05PRVhF QzsKLSsJCXNlY19mbGFncyA9IE1TX05PREVWIHwgTVNfTk9TVUlEIHwgTVNfTk9FWEVDOwotIAkJ aXNfdG1wID0gMTsKLSAJfQotIAotIAlpZiAoc3RybmNtcCgiL3J1bi91c2VyIiwgZHN0LCA5KSA9 PSAwKSB7Ci0tCQlmbGFncyA9IGZsYWdzIHwgTVNfUkVDOwotKwkJYmluZF9mbGFncyB8PSBNU19S RUM7Ci0gCX0KLSAKLSAJLyogbW91bnQgZGlyZWN0b3J5ICovCi0tCWlmIChtb3VudChzcmMsIGRz dCwgTlVMTCwgTVNfQklORCB8IGZsYWdzLCBOVUxMKSA8IDApIHsKLSsJaWYgKG1vdW50KHNyYywg ZHN0LCBOVUxMLCBiaW5kX2ZsYWdzLCBOVUxMKSA8IDApIHsKLSAJCWZwcmludGYoc3RkZXJyLCBf KCJGYWlsZWQgdG8gbW91bnQgJXMgb24gJXM6ICVzXG4iKSwgc3JjLCBkc3QsIHN0cmVycm9yKGVy cm5vKSk7Ci0gCQlyZXR1cm4gLTE7Ci0gCX0KLSsJLyogcmVtb3VudCB3aXRoIHNlY3VyaXR5IGZs YWdzLCBpZ25vcmVkIG9uIG9yaWdpbmFsIGJpbmQgbW91bnQgKi8KLSsJaWYgKHNlY19mbGFncyAm JiBtb3VudChOVUxMLCBkc3QsIE5VTEwsIE1TX0JJTkQgfCBNU19SRU1PVU5UIHwgc2VjX2ZsYWdz LCBOVUxMKSA8IDApIHsKLSsJCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gcmVtb3VudCAl czogJW1cbiIpLCBkc3QpOwotKwkJcmV0dXJuIC0xOwotKwl9Ci0gCi0gCS8qIHZlcmlmeSB3aGV0 aGVyIHdlIG1vdW50ZWQgd2hhdCB3ZSBleHBlY3RlZCB0byBtb3VudCAqLwotIAlpZiAodmVyaWZ5 X2RpcmVjdG9yeShkc3QsIHNyY19zdCwgTlVMTCkgPCAwKSByZXR1cm4gLTE7Ci1AQCAtMjg5LDEw ICsyOTUsMTUgQEAgc3RhdGljIGludCBzZXVuc2hhcmVfbW91bnQoY29uc3QgY2hhciAqc3JjLCBj b25zdCBjaGFyICpkc3QsIHN0cnVjdCBzdGF0ICpzcmNfc3QKLSAJCWlmICh2ZXJib3NlKQotIAkJ CXByaW50ZihfKCJNb3VudGluZyAvdG1wIG9uIC92YXIvdG1wXG4iKSk7Ci0gCi0tCQlpZiAobW91 bnQoIi90bXAiLCAiL3Zhci90bXAiLCAgTlVMTCwgTVNfQklORCB8IGZsYWdzLCBOVUxMKSA8IDAp IHsKLSsJCWlmIChtb3VudCgiL3RtcCIsICIvdmFyL3RtcCIsICBOVUxMLCBNU19CSU5ELCBOVUxM KSA8IDApIHsKLSAJCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIG1vdW50IC90bXAgb24g L3Zhci90bXA6ICVzXG4iKSwgc3RyZXJyb3IoZXJybm8pKTsKLSAJCQlyZXR1cm4gLTE7Ci0gCQl9 Ci0rCQkvKiByZW1vdW50IHdpdGggc2VjdXJpdHkgZmxhZ3MsIGlnbm9yZWQgb24gb3JpZ2luYWwg YmluZCBtb3VudCAqLwotKwkJaWYgKG1vdW50KE5VTEwsICIvdmFyL3RtcCIsIE5VTEwsIE1TX0JJ TkQgfCBNU19SRU1PVU5UIHwgc2VjX2ZsYWdzLCBOVUxMKSA8IDApIHsKLSsJCQlmcHJpbnRmKHN0 ZGVyciwgXygiRmFpbGVkIHRvIHJlbW91bnQgL3Zhci90bXA6ICVtXG4iKSk7Ci0rCQkJcmV0dXJu IC0xOwotKwkJfQotIAl9Ci0gCi0gCXJldHVybiAwOwotLS0gCi0yLjU0LjAKLQoKZGlmZiAtLWdp dCBhLzAwMTQtc2FuZGJveC1zZXVuc2hhcmUtcHJldmVudC1yc3luYy1mcm9tLWludGVycHJldGlu Zy1wYS5wYXRjaCBiLzAwMTQtc2FuZGJveC1zZXVuc2hhcmUtcHJldmVudC1yc3luYy1mcm9tLWlu dGVycHJldGluZy1wYS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2ZmYjcz Ni4uMDAwMDAwMAotLS0gYS8wMDE0LXNhbmRib3gtc2V1bnNoYXJlLXByZXZlbnQtcnN5bmMtZnJv bS1pbnRlcnByZXRpbmctcGEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi1G cm9tIGRkNjIwZThhZjQ0ZTFjYjU5ZDcwODM3ZTgwYTVkNTVhOGQzZTc4OWYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3Jr QGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMTMgTWF5IDIwMjYgMDk6NDc6NTAgLTA0MDAKLVN1Ympl Y3Q6IFtQQVRDSF0gc2FuZGJveC9zZXVuc2hhcmU6IHByZXZlbnQgcnN5bmMgZnJvbSBpbnRlcnBy ZXRpbmcgcGF0aHMgYXMKLSBvcHRpb25zCi1Db250ZW50LXR5cGU6IHRleHQvcGxhaW4KLQotSW5z ZXJ0IGEgIi0tIiBhZnRlciBhbGwgbGVnaXRpbWF0ZSBvcHRpb25zIGJlZm9yZSBhbnkgZ2xvYiBv cgotcGF0aG5hbWVzIHRvIHByZXZlbnQgcnN5bmMgZnJvbSBpbnRlcnByZXRpbmcgdGhlbSBhcyBv cHRpb25zLgotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxl eS53b3JrQGdtYWlsLmNvbT4KLS0tLQotIHNhbmRib3gvc2V1bnNoYXJlLmMgfCAxNiArKysrKysr KystLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL3NhbmRib3gvc2V1bnNoYXJlLmMgYi9zYW5kYm94L3NldW5zaGFy ZS5jCi1pbmRleCA5ODVlMGNmYmExOTkuLmE0OGM4ODAzNjA4OCAxMDA2NDQKLS0tLSBhL3NhbmRi b3gvc2V1bnNoYXJlLmMKLSsrKyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLUBAIC0zOTEsOCArMzkx LDggQEAgc3RhdGljIGludCByc3luY2NtZChjb25zdCBjaGFyICogc3JjLCBjb25zdCBjaGFyICpk c3QsIGNoYXIgKioqY21kKSB7Ci0gCi0gCWZyZWUoYnVmKTsgYnVmID0gTlVMTDsKLSAKLS0JLyog cnN5bmMgIC10cmxIRHEgKyA8Z2xvYiBsaXN0PiArIGRzdCArIE5VTEwgKi8KLS0JKmNtZCA9IGNh bGxvYygyICsgZmdsb2IuZ2xfcGF0aGMgKyAyLCBzaXplb2YoY2hhciAqKSk7Ci0rCS8qIHJzeW5j IC10cmxIRHEgLS0gPGdsb2IgbGlzdD4gZHN0IE5VTEwgKi8KLSsJKmNtZCA9IGNhbGxvYygzICsg Zmdsb2IuZ2xfcGF0aGMgKyAyLCBzaXplb2YoY2hhciAqKSk7Ci0gCWlmICghICpjbWQpIHsKLSAJ CWZwcmludGYoc3RkZXJyLCBfKCJPdXQgb2YgbWVtb3J5XG4iKSk7Ci0gCQlyZXR1cm4gLTE7Ci1A QCAtNDAxLDggKzQwMSw5IEBAIHN0YXRpYyBpbnQgcnN5bmNjbWQoY29uc3QgY2hhciAqIHNyYywg Y29uc3QgY2hhciAqZHN0LCBjaGFyICoqKmNtZCkgewotIAlhcmdzID0gKmNtZDsKLSAJc3RyZHVw X29yX2VycihhcmdzLCAwLCAiL3Vzci9iaW4vcnN5bmMiKTsKLSAJc3RyZHVwX29yX2Vycihhcmdz LCAxLCAiLXRybEhEcSIpOwotKwlzdHJkdXBfb3JfZXJyKGFyZ3MsIDIsICItLSIpOwotIAotLQlm b3IgKCBpPTAsIGluZGV4ID0gMjsgaSA8IGZnbG9iLmdsX3BhdGhjOyBpKyspIHsKLSsJZm9yICgg aT0wLCBpbmRleCA9IDM7IGkgPCBmZ2xvYi5nbF9wYXRoYzsgaSsrKSB7Ci0gCQljb25zdCBjaGFy ICpwYXRoID0gZmdsb2IuZ2xfcGF0aHZbaV07Ci0gCQlpZiAoYmFkX3BhdGgocGF0aCkpIGNvbnRp bnVlOwotIAkJc3RyZHVwX29yX2VycihhcmdzLCBpbmRleCwgcGF0aCk7Ci1AQCAtNDk1LDcgKzQ5 Niw3IEBAIHN0YXRpYyBpbnQgY2xlYW51cF90bXBkaXIoY29uc3QgY2hhciAqdG1wZGlyLCBjb25z dCBjaGFyICpzcmMsCi0gCi0gCS8qIHJzeW5jIGZpbGVzIGJhY2sgKi8KLSAJaWYgKGNvcHlfY29u dGVudCkgewotLQkJYXJncyA9IGNhbGxvYyg3LCBzaXplb2YoY2hhciAqKSk7Ci0rCQlhcmdzID0g Y2FsbG9jKDgsIHNpemVvZihjaGFyICopKTsKLSAJCWlmICghIGFyZ3MpIHsKLSAJCQlmcHJpbnRm KHN0ZGVyciwgXygiT3V0IG9mIG1lbW9yeVxuIikpOwotIAkJCXJldHVybiAxOwotQEAgLTUwNSwx NyArNTA2LDE4IEBAIHN0YXRpYyBpbnQgY2xlYW51cF90bXBkaXIoY29uc3QgY2hhciAqdG1wZGly LCBjb25zdCBjaGFyICpzcmMsCi0gCQlzdHJkdXBfb3JfZXJyKGFyZ3MsIDEsICItLWV4Y2x1ZGU9 LlgxMS11bml4Iik7Ci0gCQlzdHJkdXBfb3JfZXJyKGFyZ3MsIDIsICItdXRybEhEcSIpOwotIAkJ c3RyZHVwX29yX2VycihhcmdzLCAzLCAiLS1kZWxldGUiKTsKLS0JCWlmIChhc3ByaW50ZigmYXJn c1s0XSwgIiVzLyIsIHRtcGRpcikgPT0gLTEpIHsKLSsJCXN0cmR1cF9vcl9lcnIoYXJncywgNCwg Ii0tIik7Ci0rCQlpZiAoYXNwcmludGYoJmFyZ3NbNV0sICIlcy8iLCB0bXBkaXIpID09IC0xKSB7 Ci0gCQkJZnByaW50ZihzdGRlcnIsIF8oIk91dCBvZiBtZW1vcnlcbiIpKTsKLSAJCQlmcmVlX2Fy Z3MoYXJncyk7Ci0gCQkJcmV0dXJuIDE7Ci0gCQl9Ci0tCQlpZiAoYXNwcmludGYoJmFyZ3NbNV0s ICIlcy8iLCBzcmMpID09IC0xKSB7Ci0rCQlpZiAoYXNwcmludGYoJmFyZ3NbNl0sICIlcy8iLCBz cmMpID09IC0xKSB7Ci0gCQkJZnByaW50ZihzdGRlcnIsIF8oIk91dCBvZiBtZW1vcnlcbiIpKTsK LSAJCQlmcmVlX2FyZ3MoYXJncyk7Ci0gCQkJcmV0dXJuIDE7Ci0gCQl9Ci0tCQlhcmdzWzZdID0g TlVMTDsKLSsJCWFyZ3NbN10gPSBOVUxMOwotIAotIAkJaWYgKHNwYXduX2NvbW1hbmQoYXJncywg cHdkLT5wd191aWQpICE9IDApIHsKLSAJCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIGNv cHkgZmlsZXMgZnJvbSB0aGUgcnVudGltZSB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4iKSk7Ci0tLSAK LTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAxNS1zYW5kYm94LXNldW5zaGFyZS1maXgtZ2V0b3B0 LWZsYWdzLnBhdGNoIGIvMDAxNS1zYW5kYm94LXNldW5zaGFyZS1maXgtZ2V0b3B0LWZsYWdzLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5M2U1YTIzLi4wMDAwMDAwCi0tLSBh LzAwMTUtc2FuZGJveC1zZXVuc2hhcmUtZml4LWdldG9wdC1mbGFncy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDQ0ICswLDAgQEAKLUZyb20gOWMyOTY1M2RjNmIwZjRlOWE3NGNkMTE5ZDYwYTg0 ZWQ4YzRhNmVjNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gU21hbGxl eSA8c3RlcGhlbi5zbWFsbGV5LndvcmtAZ21haWwuY29tPgotRGF0ZTogV2VkLCAxMyBNYXkgMjAy NiAwOTo1OTowOCAtMDQwMAotU3ViamVjdDogW1BBVENIXSBzYW5kYm94L3NldW5zaGFyZTogZml4 IGdldG9wdCBmbGFncwotQ29udGVudC10eXBlOiB0ZXh0L3BsYWluCi0KLS1rLCAtdiwgYW5kIC1D IGRvIE5PVCBhY2NlcHQgYW4gYXJndW1lbnQsIGFuZCB0aGUgb3B0c3RyaW5nCi13YXMgbm90IGNv cnJlY3QuCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5zbWFsbGV5 LndvcmtAZ21haWwuY29tPgotLS0tCi0gc2FuZGJveC9zZXVuc2hhcmUuYyB8IDggKysrKy0tLS0K LSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvc2FuZGJveC9zZXVuc2hhcmUuYyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLWluZGV4 IGE0OGM4ODAzNjA4OC4uMGRmYzVjYjJiODIwIDEwMDY0NAotLS0tIGEvc2FuZGJveC9zZXVuc2hh cmUuYwotKysrIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotQEAgLTc3NiwxMCArNzc2LDEwIEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotIAkJeyJob21lZGlyIiwgMSwgMCwgJ2gn fSwKLSAJCXsidG1wZGlyIiwgMSwgMCwgJ3QnfSwKLSAJCXsicnVudXNlcmRpciIsIDEsIDAsICdy J30sCi0tCQl7ImtpbGwiLCAxLCAwLCAnayd9LAotLQkJeyJ2ZXJib3NlIiwgMSwgMCwgJ3YnfSwK LSsJCXsia2lsbCIsIDAsIDAsICdrJ30sCi0rCQl7InZlcmJvc2UiLCAwLCAwLCAndid9LAotIAkJ eyJjb250ZXh0IiwgMSwgMCwgJ1onfSwKLS0JCXsiY2FwYWJpbGl0aWVzIiwgMSwgMCwgJ0MnfSwK LSsJCXsiY2FwYWJpbGl0aWVzIiwgMCwgMCwgJ0MnfSwKLSAJCXsid2F5bGFuZCIsIDEsIDAsICdX J30sCi0gCQl7InBpcGV3aXJlIiwgMSwgMCwgJ1AnfSwKLSAJCXtOVUxMLCAwLCAwLCAwfQotQEAg LTgxMSw3ICs4MTEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAJfQot IAotIAl3aGlsZSAoMSkgewotLQkJY2xmbGFnID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkNj dmg6cjp0Olc6WjoiLCBsb25nX29wdGlvbnMsIE5VTEwpOwotKwkJY2xmbGFnID0gZ2V0b3B0X2xv bmcoYXJnYywgYXJndiwgIkNrdmg6cjp0Olc6UDpaOiIsIGxvbmdfb3B0aW9ucywgTlVMTCk7Ci0g CQlpZiAoY2xmbGFnID09IC0xKQotIAkJCWJyZWFrOwotIAotLS0gCi0yLjU0LjAKLQoKZGlmZiAt LWdpdCBhLzAwMTYtc2FuZGJveC1zZXVuc2hhcmUtcHJldmVudC1wYXRoLXRyYXZlcnNhbC12aWEt Vy1QLnBhdGNoIGIvMDAxNi1zYW5kYm94LXNldW5zaGFyZS1wcmV2ZW50LXBhdGgtdHJhdmVyc2Fs LXZpYS1XLVAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0YzZhNzIuLjAw MDAwMDAKLS0tIGEvMDAxNi1zYW5kYm94LXNldW5zaGFyZS1wcmV2ZW50LXBhdGgtdHJhdmVyc2Fs LXZpYS1XLVAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi1Gcm9tIDVkYTRk OTA0ODAxNjRjMTNhNWJjOGY4YzgyMGU3MDE3OTA0OTllY2MgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWlsLmNv bT4KLURhdGU6IFdlZCwgMTMgTWF5IDIwMjYgMTA6MTM6MTcgLTA0MDAKLVN1YmplY3Q6IFtQQVRD SF0gc2FuZGJveC9zZXVuc2hhcmU6IHByZXZlbnQgcGF0aCB0cmF2ZXJzYWwgdmlhIC1XLy1QCi1D b250ZW50LXR5cGU6IHRleHQvcGxhaW4KLQotVGhlIC1XLy1QIG9wdGlvbnMgc3BlY2lmeSB0aGUg d2F5bGFuZCBvciBwaXBld2lyZSBzb2NrZXQgbmFtZSByZXNwZWN0aXZlbHkuCi1UaGUgb3B0aW9u IGFyZ3VtZW50IGlzIHRoZW4gY29uY2F0ZW5hdGVkIHdpdGggdGhlIHJ1bnVzZXJkaXIgdG8gY3Jl YXRlCi1hIHBhdGhuYW1lLiBXZSBkb24ndCB3YW50IHRvIGFsbG93IGl0IHRvIGJlIHVzZWQgdG8g Y29uc3RydWN0IGFyYml0cmFyeQotcGF0aHMgb3V0c2lkZSBvZiB0aGUgcnVudXNlcmRpci4gQWxz bywgY2hlY2sgYW5kIGhhbmRsZQotZXJyb3JzIHdoZW4gYmluZCBtb3VudGluZyB0aGUgcGlwZXdp cmUgc29ja2V0IGZpbGUuCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhl bi5zbWFsbGV5LndvcmtAZ21haWwuY29tPgotLS0tCi0gc2FuZGJveC9zZXVuc2hhcmUuYyB8IDkg KysrKysrKystCi0gMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQotCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9zZXVuc2hhcmUuYyBiL3NhbmRib3gvc2V1bnNoYXJl LmMKLWluZGV4IDBkZmM1Y2IyYjgyMC4uOTQ1YTNiMjFjMWNjIDEwMDY0NAotLS0tIGEvc2FuZGJv eC9zZXVuc2hhcmUuYwotKysrIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotQEAgLTg0OSw2ICs4NDks MTIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gCQl9Ci0gCX0KLSAKLSsJ aWYgKCh3YXlsYW5kX2Rpc3BsYXkgJiYgKHN0cmNocih3YXlsYW5kX2Rpc3BsYXksICcvJykgfHwg c3Ryc3RyKHdheWxhbmRfZGlzcGxheSwgIi4uIikpKSB8fAotKwkJKHBpcGV3aXJlX3NvY2tldCAm JiAoc3RyY2hyKHBpcGV3aXJlX3NvY2tldCwgJy8nKSB8fCBzdHJzdHIocGlwZXdpcmVfc29ja2V0 LCAiLi4iKSkpKSB7Ci0rCQlmcHJpbnRmKHN0ZGVyciwgXygiRXJyb3I6IC1XLy1QIG11c3QgYmUg YSBzb2NrZXQgbmFtZSwgbm90IGEgcGF0aFxuIikpOwotKwkJcmV0dXJuIC0xOwotKwl9Ci0rCi0g CWlmICghIGhvbWVkaXJfcyAmJiAhIHRtcGRpcl9zKSB7Ci0gCQlmcHJpbnRmKHN0ZGVyciwgXygi RXJyb3I6IHRtcGRpciBhbmQvb3IgaG9tZWRpciByZXF1aXJlZFxuICVzXG4iKSwgVVNBR0VfU1RS SU5HKTsKLSAJCXJldHVybiAtMTsKLUBAIC05OTAsNyArOTk2LDggQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KSB7Ci0gCQkJCQlwZXJyb3IoXygiT3V0IG9mIG1lbW9yeSIpKTsKLSAJ CQkJCWdvdG8gY2hpbGRlcnI7Ci0gCQkJCX0KLS0JCQkJc2V1bnNoYXJlX21vdW50X2ZpbGUocGlw ZXdpcmVfcGF0aCwgcGlwZXdpcmVfcGF0aF9zKTsKLSsJCQkJaWYgKHNldW5zaGFyZV9tb3VudF9m aWxlKHBpcGV3aXJlX3BhdGgsIHBpcGV3aXJlX3BhdGhfcykgPT0gLTEpCi0rCQkJCQlnb3RvIGNo aWxkZXJyOwotIAkJCX0KLSAJCX0KLSAKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8wMDE3 LXNhbmRib3gtc2V1bnNoYXJlLXZlcmlmeS1SVU5USU1FX0RJUi1iZWZvcmUtdXNlLnBhdGNoIGIv MDAxNy1zYW5kYm94LXNldW5zaGFyZS12ZXJpZnktUlVOVElNRV9ESVItYmVmb3JlLXVzZS5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ0NjIyMC4uMDAwMDAwMAotLS0gYS8w MDE3LXNhbmRib3gtc2V1bnNoYXJlLXZlcmlmeS1SVU5USU1FX0RJUi1iZWZvcmUtdXNlLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotRnJvbSBjY2VlYjFkZWY2MmVmNzhmZWQ4 MDI2ODRlOTUwMGNmYTFhZWZhNmIzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3Rl cGhlbiBTbWFsbGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci1EYXRlOiBXZWQs IDEzIE1heSAyMDI2IDEwOjMwOjIwIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNhbmRib3gvc2V1 bnNoYXJlOiB2ZXJpZnkgUlVOVElNRV9ESVIgYmVmb3JlIHVzZQotQ29udGVudC10eXBlOiB0ZXh0 L3BsYWluCi0KLVJVTlRJTUVfRElSIGNhbiBiZSBpbmhlcml0ZWQgZnJvbSBYREdfUlVOVElNRV9E SVIgb3Igc2V0IHRvIGEgZGVmYXVsdAotcGF0aC4gUmVnYXJkbGVzcywgd2Ugc2hvdWxkIHZlcmlm eSBpdCB0aGUgc2FtZSB3YXkgYXMgdGhlIG90aGVyCi11c2VyLXN1cHBsaWVkIGRpcmVjdG9yaWVz IGJlZm9yZSBmaXJzdCB1c2UuCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxleSA8c3Rl cGhlbi5zbWFsbGV5LndvcmtAZ21haWwuY29tPgotLS0tCi0gc2FuZGJveC9zZXVuc2hhcmUuYyB8 IDkgKysrKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0t Z2l0IGEvc2FuZGJveC9zZXVuc2hhcmUuYyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLWluZGV4IDk0 NWEzYjIxYzFjYy4uODkxODBkMGFhMWVkIDEwMDY0NAotLS0tIGEvc2FuZGJveC9zZXVuc2hhcmUu YwotKysrIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotQEAgLTk2NCw2ICs5NjQsMTUgQEAgaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gCQkJfQotIAkJfQotIAotKwkJaWYgKHJ1bnVz ZXJkaXJfcykgewotKwkJCXN0cnVjdCBzdGF0IHNiOwotKwotKwkJCWlmICh2ZXJpZnlfZGlyZWN0 b3J5KFJVTlRJTUVfRElSLCBOVUxMLCAmc2IpIDwgMCB8fAotKwkJCQljaGVja19vd25lcl91aWQo dWlkLCBSVU5USU1FX0RJUiwgJnNiKSA8IDApCi0rCQkJCWdvdG8gY2hpbGRlcnI7Ci0rCi0rCQl9 Ci0rCi0gCQlpZiAoKFhER19TRVNTSU9OX1RZUEUgPSBnZXRlbnYoIlhER19TRVNTSU9OX1RZUEUi KSkgIT0gTlVMTCkgewotIAkJCWlmICgoWERHX1NFU1NJT05fVFlQRSA9IHN0cmR1cChYREdfU0VT U0lPTl9UWVBFKSkgPT0gTlVMTCkgewotIAkJCQlwZXJyb3IoXygiT3V0IG9mIG1lbW9yeSIpKTsK LS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8wMDE4LXNhbmRib3gtc2V1bnNoYXJlLWRyb3At dW51c2VkLXJ1bnVzZXJkaXJfci5wYXRjaCBiLzAwMTgtc2FuZGJveC1zZXVuc2hhcmUtZHJvcC11 bnVzZWQtcnVudXNlcmRpcl9yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1 MDdkYjA4Li4wMDAwMDAwCi0tLSBhLzAwMTgtc2FuZGJveC1zZXVuc2hhcmUtZHJvcC11bnVzZWQt cnVudXNlcmRpcl9yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotRnJvbSBj MmY1NGFmZjEzNGJjYmE4YWU5NzAxZDI2ZDc3MTE1MzBkNzJiZTc2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogU3RlcGhlbiBTbWFsbGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0BnbWFp bC5jb20+Ci1EYXRlOiBXZWQsIDEzIE1heSAyMDI2IDEwOjM3OjU2IC0wNDAwCi1TdWJqZWN0OiBb UEFUQ0hdIHNhbmRib3gvc2V1bnNoYXJlOiBkcm9wIHVudXNlZCBydW51c2VyZGlyX3IKLUNvbnRl bnQtdHlwZTogdGV4dC9wbGFpbgotCi1ydW51c2VyZGlyX3IgaXMgY3JlYXRlZCBidXQgbmV2ZXIg dXNlZCBub3IgZGVsZXRlZC4gR2V0IHJpZCBvZiBpdC4KLQotU2lnbmVkLW9mZi1ieTogU3RlcGhl biBTbWFsbGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci0tLS0KLSBzYW5kYm94 L3NldW5zaGFyZS5jIHwgOCAtLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA4IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9zZXVuc2hhcmUuYyBiL3NhbmRib3gvc2V1bnNoYXJl LmMKLWluZGV4IDg5MTgwZDBhYTFlZC4uMmVlZjBlMmY4MDBlIDEwMDY0NAotLS0tIGEvc2FuZGJv eC9zZXVuc2hhcmUuYwotKysrIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotQEAgLTc2MywxNCArNzYz LDEyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotIAljaGFyICp0bXBkaXJf cyA9IE5VTEw7CS8qIHRtcGRpciBzcGVjJ2QgYnkgdXNlciBpbiBhcmd2W10gKi8KLSAJY2hhciAq dG1wZGlyX3IgPSBOVUxMOwkvKiB0bXBkaXIgY3JlYXRlZCBieSBzZXVuc2hhcmUgKi8KLSAJY2hh ciAqcnVudXNlcmRpcl9zID0gTlVMTDsJLyogL3Zhci9ydW4vdXNlci9VSUQgc3BlYydkIGJ5IHVz ZXIgaW4gYXJndltdICovCi0tCWNoYXIgKnJ1bnVzZXJkaXJfciA9IE5VTEw7CS8qIC92YXIvcnVu L3VzZXIvVUlEIGNyZWF0ZWQgYnkgc2V1bnNoYXJlICovCi0gCi0gCXN0cnVjdCBzdGF0IHN0X2N1 cmhvbWVkaXI7Ci0gCXN0cnVjdCBzdGF0IHN0X2hvbWVkaXI7Ci0gCXN0cnVjdCBzdGF0IHN0X3Rt cGRpcl9zOwotIAlzdHJ1Y3Qgc3RhdCBzdF90bXBkaXJfcjsKLSAJc3RydWN0IHN0YXQgc3RfcnVu dXNlcmRpcl9zOwotLQlzdHJ1Y3Qgc3RhdCBzdF9ydW51c2VyZGlyX3I7Ci0gCi0gCWNvbnN0IHN0 cnVjdCBvcHRpb24gbG9uZ19vcHRpb25zW10gPSB7Ci0gCQl7ImhvbWVkaXIiLCAxLCAwLCAnaCd9 LAotQEAgLTkwMiwxMiArOTAwLDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7 Ci0gCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIGNyZWF0ZSBydW50aW1lIHRlbXBvcmFy eSBkaXJlY3RvcnlcbiIpKTsKLSAJCXJldHVybiAtMTsKLSAJfQotLQkvKiBjcmVhdGUgcnVudGlt ZSBydW51c2VyZGlyICovCi0tCWlmIChydW51c2VyZGlyX3MgJiYgKHJ1bnVzZXJkaXJfciA9IGNy ZWF0ZV90bXBkaXIocnVudXNlcmRpcl9zLCAmc3RfcnVudXNlcmRpcl9zLAotLQkJCQkJCSAgJnN0 X3J1bnVzZXJkaXJfciwgcHdkLCBleGVjY29uKSkgPT0gTlVMTCkgewotLQkJZnByaW50ZihzdGRl cnIsIF8oIkZhaWxlZCB0byBjcmVhdGUgcnVudGltZSAkWERHX1JVTlRJTUVfRElSIGRpcmVjdG9y eVxuIikpOwotLQkJcmV0dXJuIC0xOwotLQl9Ci0gCi0gCS8qIHNwYXduIGNoaWxkIHByb2Nlc3Mg Ki8KLSAJY2hpbGQgPSBmb3JrKCk7Ci0tLSAKLTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAxOS1z YW5kYm94LXNldW5zaGFyZS1maXgta2lsbGFsbC1yZWFsbG9jLWFuZC1taXNzaW5nLXR5LnBhdGNo IGIvMDAxOS1zYW5kYm94LXNldW5zaGFyZS1maXgta2lsbGFsbC1yZWFsbG9jLWFuZC1taXNzaW5n LXR5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWI1NmY3Li4wMDAwMDAw Ci0tLSBhLzAwMTktc2FuZGJveC1zZXVuc2hhcmUtZml4LWtpbGxhbGwtcmVhbGxvYy1hbmQtbWlz c2luZy10eS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLUZyb20gNDdhOGJk NWQyOTQ1NWYxYjg0OTZhMmJjN2JhOTVmM2Y1MzVjMmJhNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5zbWFsbGV5LndvcmtAZ21haWwuY29t PgotRGF0ZTogV2VkLCAxMyBNYXkgMjAyNiAxMjoyMTo0NyAtMDQwMAotU3ViamVjdDogW1BBVENI XSBzYW5kYm94L3NldW5zaGFyZTogZml4IGtpbGxhbGwoKSByZWFsbG9jIGFuZCBtaXNzaW5nIHR5 cGUKLSBjb21wYXJpc29uCi1Db250ZW50LXR5cGU6IHRleHQvcGxhaW4KLQotVGhlIGtpbGxhbGwo KSByZWFsbG9jKCkgY2FuIHByb2R1Y2UgYW4gaW50ZWdlciBvdmVyZmxvdy4KLUNoZWNrIGFuZCBo YW5kbGUgdGhpcyBjb3JyZWN0bHkuCi0KLVRoZSBraWxsYWxsKCkgbG9naWMgYWxzbyBvbmx5IGNv bXBhcmVzIHRoZSBNQ1MgY2F0ZWdvcnkgc2V0IHdoZW4KLWRlY2lkaW5nIHdoZXRoZXIgdG8ga2ls bCB0aGUgcHJvY2Vzcy4gV2Ugc2hvdWxkIGF0IGxlYXN0IGFsc28gY29tcGFyZQotdGhlIHR5cGUg dG8gYXZvaWQgaW5jb3JyZWN0bHkga2lsbGluZyBhbiB1bnJlbGF0ZWQgcHJvY2VzcyB3aXRoCi10 aGUgc2FtZSBjYXRlZ29yeSBzZXQgKGUuZy4gaWYgbXVsdGlwbGUgYXBwbGljYXRpb25zIGFyZSBp bmRlcGVuZGVudGx5Ci1hc3NpZ25pbmcgY2F0ZWdvcnkgc2V0cyBvbiB0aGUgc2FtZSBzeXN0ZW0p LiBDaGVjayB0aGUgdHlwZSBhcyB3ZWxsLgotCi1raWxsYWxsKCkgc3RpbGwgc2VlbXMgZXJyb3Ig cHJvbmUgYW5kIEkgY291bGRuJ3QgZmluZCBhbnkgYWN0dWFsIHVzZXJzCi1vZiB0aGUgLWsvLS1r aWxsIG9wdGlvbiBmb3Igc2V1bnNoYXJlLiBDYW4gd2UganVzdCBkcm9wIHRoaXM/Ci0KLVNpZ25l ZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5zbWFsbGV5LndvcmtAZ21haWwuY29t PgotLS0tCi0gc2FuZGJveC9zZXVuc2hhcmUuYyB8IDI2ICsrKysrKysrKysrKysrKysrKystLS0t LS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9zYW5kYm94L3NldW5zaGFyZS5jIGIvc2FuZGJveC9zZXVuc2hhcmUuYwot aW5kZXggMmVlZjBlMmY4MDBlLi5lMjBjMGY4NzIzYWEgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L3Nl dW5zaGFyZS5jCi0rKysgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1AQCAtNjgwLDggKzY4MCw4IEBA IGtpbGxhbGwgKGNvbnN0IGNoYXIgKmV4ZWNjb24pCi0gCWNoYXIgKnNjb247Ci0gCXN0cnVjdCBk aXJlbnQgKmRlOwotIAlwaWRfdCAqcGlkX3RhYmxlLCBwaWQsIHNlbGY7Ci0tCWludCBpOwotLQlp bnQgcGlkcywgbWF4X3BpZHM7Ci0rCXVuc2lnbmVkIGludCBpOwotKwl1bnNpZ25lZCBpbnQgcGlk cywgbWF4X3BpZHM7Ci0gCWludCBydW5uaW5nID0gMDsKLSAJc2VsZiA9IGdldHBpZCgpOwotIAlp ZiAoIShkaXIgPSBvcGVuZGlyKFBST0NfQkFTRSkpKSB7Ci1AQCAtNzAxLDI2ICs3MDEsMzQgQEAg a2lsbGFsbCAoY29uc3QgY2hhciAqZXhlY2NvbikKLSAJCXJldHVybiAtMTsKLSAJfQotIAljb25z dCBjaGFyICpjb25zdCBtY3MgPSBjb250ZXh0X3JhbmdlX2dldChjb24pOwotLQlpZiAoIW1jcykg ewotKwljb25zdCBjaGFyICpjb25zdCB0eXBlID0gY29udGV4dF90eXBlX2dldChjb24pOwotKwlp ZiAoIW1jcyB8fCAhdHlwZSkgewotIAkJY29udGV4dF9mcmVlKGNvbik7Ci0gCQlmcmVlKHBpZF90 YWJsZSk7Ci0gCQkodm9pZCljbG9zZWRpcihkaXIpOwotIAkJcmV0dXJuIC0xOwotIAl9Ci0tCXBy aW50ZigibWNzPSVzXG4iLCBtY3MpOwotKwlpZiAodmVyYm9zZSkKLSsJCXByaW50ZigibWNzPSVz IHR5cGU9JXNcbiIsIG1jcywgdHlwZSk7Ci0gCXdoaWxlICgoZGUgPSByZWFkZGlyIChkaXIpKSAh PSBOVUxMKSB7Ci0gCQlpZiAoIShwaWQgPSAocGlkX3QpYXRvaShkZS0+ZF9uYW1lKSkgfHwgcGlk ID09IHNlbGYpCi0gCQkJY29udGludWU7Ci0gCi0gCQlpZiAocGlkcyA9PSBtYXhfcGlkcykgewot LQkJCXBpZF90ICpuZXdfcGlkX3RhYmxlID0gcmVhbGxvYyhwaWRfdGFibGUsIDIqcGlkcypzaXpl b2YocGlkX3QpKTsKLSsJCQltYXhfcGlkcyAqPSAyOwotKwkJCWlmIChtYXhfcGlkcyA8PSBwaWRz KQotKwkJCXsKLSsJCQkJZnJlZShwaWRfdGFibGUpOwotKwkJCQkodm9pZCljbG9zZWRpcihkaXIp OwotKwkJCQlyZXR1cm4gLTE7Ci0rCQkJfQotKwkJCXBpZF90ICpuZXdfcGlkX3RhYmxlID0gcmVh bGxvY2FycmF5KHBpZF90YWJsZSwgbWF4X3BpZHMsIHNpemVvZihwaWRfdCkpOwotIAkJCWlmICgh bmV3X3BpZF90YWJsZSkgewotIAkJCQlmcmVlKHBpZF90YWJsZSk7Ci0gCQkJCSh2b2lkKWNsb3Nl ZGlyKGRpcik7Ci0gCQkJCXJldHVybiAtMTsKLSAJCQl9Ci0gCQkJcGlkX3RhYmxlID0gbmV3X3Bp ZF90YWJsZTsKLS0JCQltYXhfcGlkcyAqPSAyOwotIAkJfQotIAkJcGlkX3RhYmxlW3BpZHMrK10g PSBwaWQ7Ci0gCX0KLUBAIC03MzQsOCArNzQyLDEyIEBAIGtpbGxhbGwgKGNvbnN0IGNoYXIgKmV4 ZWNjb24pCi0gCi0gCQkJY29udGV4dF90IHBpZGNvbiA9IGNvbnRleHRfbmV3KHNjb24pOwotIAkJ CWlmIChwaWRjb24pIHsKLSsJCQkJY29uc3QgY2hhciAqY29uc3QgcG1jcyA9IGNvbnRleHRfcmFu Z2VfZ2V0KHBpZGNvbik7Ci0rCQkJCWNvbnN0IGNoYXIgKmNvbnN0IHB0eXBlID0gY29udGV4dF90 eXBlX2dldChwaWRjb24pOwotKwotIAkJCQkvKiBBdHRlbXB0IHRvIGtpbGwgcmVtYWluaW5nIHBy b2Nlc3NlcyAqLwotLQkJCQlpZiAoc3RyY21wKGNvbnRleHRfcmFuZ2VfZ2V0KHBpZGNvbiksIG1j cykgPT0gMCkKLSsJCQkJaWYgKHBtY3MgJiYgcHR5cGUgJiYgIXN0cmNtcChwbWNzLCBtY3MpICYm Ci0rCQkJCQkhc3RyY21wKHB0eXBlLCB0eXBlKSkKLSAJCQkJCWtpbGwoaWQsIFNJR0tJTEwpOwot IAotIAkJCQljb250ZXh0X2ZyZWUocGlkY29uKTsKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQg YS8wMDIwLXNhbmRib3gtc2V1bnNoYXJlLXJld3JpdGUtdG8tcGluLWRpcmVjdG9yaWVzLWJlZm9y ZS0ucGF0Y2ggYi8wMDIwLXNhbmRib3gtc2V1bnNoYXJlLXJld3JpdGUtdG8tcGluLWRpcmVjdG9y aWVzLWJlZm9yZS0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2YjhlNmQu LjAwMDAwMDAKLS0tIGEvMDAyMC1zYW5kYm94LXNldW5zaGFyZS1yZXdyaXRlLXRvLXBpbi1kaXJl Y3Rvcmllcy1iZWZvcmUtLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjA2ICswLDAgQEAKLUZy b20gOWM0NGJiOTI5YTc5Mzc4OTdhNzg3NzkwZWNlNjc5NDY0MzQ1YzVkOSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5zbWFsbGV5LndvcmtA Z21haWwuY29tPgotRGF0ZTogVGh1LCAxNCBNYXkgMjAyNiAxMDozMjoxMyAtMDQwMAotU3ViamVj dDogW1BBVENIXSBzYW5kYm94L3NldW5zaGFyZTogcmV3cml0ZSB0byBwaW4gZGlyZWN0b3JpZXMg YmVmb3JlIHVzZQotQ29udGVudC10eXBlOiB0ZXh0L3BsYWluCi0KLVRvIGZ1bGx5IGVsaW1pbmF0 ZSBUT0NUT1UgaXNzdWVzIGluIHNldW5zaGFyZSwgd2UgbmVlZCB0byBwaW4gdGhlCi1kaXJlY3Rv cmllcyBhbmQgcGFzcyB0aGVtIHZpYSAvcHJvYy9zZWxmL2ZkL04gdG8gbW91bnQoMikuCi1UaGlz IGlzIGNvbXBsaWNhdGVkIGZ1cnRoZXIgYnkgdGhlIHVuc2hhcmluZyBvZiB0aGUgbW91bnQgbmFt ZXNwYWNlCi1pbiB0aGUgY2hpbGQgcHJvY2VzcyBhbmQgdGhlIG5lZWQgdG8gcmVtb3VudCBpbiBv cmRlciB0byBhcHBseQotbm9zdWlkL25vZGV2L25vZXhlYyBmbGFncy4gRG8gdGhlIGJlc3Qgd2Ug Y2FuIHdpdGggdGhlIGxlZ2FjeQotbW91bnQoMikgQVBJIGZvciBjb21wYXRpYmlsaXR5IG9uIG9s ZCBrZXJuZWxzIGFuZCByZXZpc2l0IGlmL3doZW4KLXdlIG1ha2Uga2VybmVscyB3aXRoIHRoZSBu ZXcgbW91bnQgQVBJIHRoZSBtaW5pbXVtIHJlcXVpcmVkIGZvcgotU0VMaW51eCB1c2Vyc3BhY2Uu Ci0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5zbWFsbGV5LndvcmtA Z21haWwuY29tPgotLS0tCi0gc2FuZGJveC9zZXVuc2hhcmUuYyB8IDQwNiArKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyNDEgaW5z ZXJ0aW9ucygrKSwgMTY1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9zZXVu c2hhcmUuYyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLWluZGV4IGUyMGMwZjg3MjNhYS4uNjExYmZl ODBkMDMwIDEwMDY0NAotLS0tIGEvc2FuZGJveC9zZXVuc2hhcmUuYwotKysrIGIvc2FuZGJveC9z ZXVuc2hhcmUuYwotQEAgLTE5NywzNSArMTk3LDMzIEBAIHN0YXRpYyBpbnQgY2hlY2tfb3duZXJf Z2lkKGdpZF90IGdpZCwgY29uc3QgY2hhciAqZmlsZSwgc3RydWN0IHN0YXQgKnN0KSB7Ci0gCXJl dHVybiAwOwotIH0KLSAKLS0jZGVmaW5lIGVxdWFsX3N0YXRzKG9uZSx0d28pIFwKLS0JKChvbmUp LT5zdF9kZXYgPT0gKHR3byktPnN0X2RldiAmJiAob25lKS0+c3RfaW5vID09ICh0d28pLT5zdF9p bm8gJiYgXAotLQkgKG9uZSktPnN0X3VpZCA9PSAodHdvKS0+c3RfdWlkICYmIChvbmUpLT5zdF9n aWQgPT0gKHR3byktPnN0X2dpZCAmJiBcCi0tCSAob25lKS0+c3RfbW9kZSA9PSAodHdvKS0+c3Rf bW9kZSkKLS0KLSAvKioKLS0gKiBTYW5pdHkgY2hlY2sgc3BlY2lmaWVkIGRpcmVjdG9yeS4gIFN0 b3JlIHN0YXQgaW5mbyBmb3IgZnV0dXJlIGNvbXBhcmlzb24sIG9yCi0tICogY29tcGFyZSB3aXRo IHByZXZpb3VzbHkgc2F2ZWQgaW5mbyB0byBkZXRlY3QgcmVwbGFjZWQgZGlyZWN0b3JpZXMuCi0t ICogTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBwZXJmb3JtIG93bmVyIGNoZWNrcy4KLSsg KiBPcGVuIGRpcmVjdG9yeSB3aXRoIE9fRElSRUNUT1JZfE9fTk9GT0xMT1cgYW5kIHJldHVybiBp dHMgZmQKLSsgKiBhbmQgZnN0YXQoKSByZXN1bHRzLiBUaGUgcmV0dXJuZWQgZmQgYW5kIGl0cyAv cHJvYy9zZWxmL2ZkL04KLSsgKiBwYXRoIGNhbiBiZSB1c2VkIGZvciBhbGwgc3Vic2VxdWVudCBv cGVyYXRpb25zIG9uIHRoZSBkaXJlY3RvcnkuCi0rICogTkIgQW55IG5vbi1maW5hbCBjb21wb25l bnRzIGluIHRoZSBAZGlyIHBhdGhuYW1lIGFyZSByZXNvbHZlZAotKyAqIGFzIHVzdWFsIGJ1dCB3 aWxsIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgZnN1aWQgb2YgdGhlIGNhbGxlci4KLSAgKi8KLS1z dGF0aWMgaW50IHZlcmlmeV9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyLCBzdHJ1Y3Qgc3RhdCAq c3RfaW4sIHN0cnVjdCBzdGF0ICpzdF9vdXQpIHsKLStzdGF0aWMgaW50IHBpbl9kaXIoY29uc3Qg Y2hhciAqZGlyLCBzdHJ1Y3Qgc3RhdCAqc3Rfb3V0KQotK3sKLSsJaW50IGZkOwotIAlzdHJ1Y3Qg c3RhdCBzYjsKLSAKLS0JaWYgKHN0X291dCA9PSBOVUxMKSBzdF9vdXQgPSAmc2I7Ci0tCi0tCWlm IChsc3RhdChkaXIsIHN0X291dCkgPT0gLTEpIHsKLS0JCWZwcmludGYoc3RkZXJyLCBfKCJGYWls ZWQgdG8gc3RhdCAlczogJXNcbiIpLCBkaXIsIHN0cmVycm9yKGVycm5vKSk7Ci0rCWZkID0gb3Bl bihkaXIsIE9fUkRPTkxZfE9fRElSRUNUT1JZfE9fTk9GT0xMT1d8T19DTE9FWEVDKTsKLSsJaWYg KGZkIDwgMCkgewotKwkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBvcGVuICVzOiAlbVxu IiksIGRpcik7Ci0gCQlyZXR1cm4gLTE7Ci0gCX0KLS0JaWYgKCEgU19JU0RJUihzdF9vdXQtPnN0 X21vZGUpKSB7Ci0tCQlmcHJpbnRmKHN0ZGVyciwgXygiRXJyb3I6ICVzIGlzIG5vdCBhIGRpcmVj dG9yeTogJXNcbiIpLCBkaXIsIHN0cmVycm9yKGVycm5vKSk7Ci0tCQlyZXR1cm4gLTE7Ci0tCX0K LS0JaWYgKHN0X2luICYmICFlcXVhbF9zdGF0cyhzdF9pbiwgc3Rfb3V0KSkgewotLQkJZnByaW50 ZihzdGRlcnIsIF8oIkVycm9yOiAlcyB3YXMgcmVwbGFjZWQgYnkgYSBkaWZmZXJlbnQgZGlyZWN0 b3J5XG4iKSwgZGlyKTsKLSsKLSsJaWYgKGZzdGF0KGZkLCAmc2IpIDwgMCkgewotKwkJZnByaW50 ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBzdGF0ICVzOiAlbVxuIiksIGRpcik7Ci0rCQljbG9zZShm ZCk7Ci0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLS0JcmV0dXJuIDA7Ci0rCWlmIChzdF9vdXQpCi0r CQkqc3Rfb3V0ID0gc2I7Ci0rCXJldHVybiBmZDsKLSB9Ci0gCi0gLyoqCi1AQCAtMjU2LDg1ICsy NTQsOTAgQEAgc3RhdGljIGludCB2ZXJpZnlfc2hlbGwoY29uc3QgY2hhciAqc2hlbGxfbmFtZSkK LSB9Ci0gCi0gLyoqCi0tICogTW91bnQgZGlyZWN0b3J5IGFuZCBjaGVjayB0aGF0IHdlIG1vdW50 ZWQgdGhlIHJpZ2h0IGRpcmVjdG9yeS4KLSsgKiBCaW5kLW1vdW50IGRpcmVjdG9yeSBAc3JjICh1 c2luZyBAc3JjX2ZkKSBvbiBkaXJlY3RvcnkgQGRzdCAodXNpbmcgQGRzdF9mZCksCi0rICogYXBw bHlpbmcgQGJpbmRfZmxhZ3MgZm9yIHRoZSBpbml0aWFsIGJpbmQgbW91bnQgYW5kIEBzZWNfZmxh Z3MgaWYKLSsgKiBub24temVybyB2aWEgcmVtb3VudC4KLSAgKi8KLS1zdGF0aWMgaW50IHNldW5z aGFyZV9tb3VudChjb25zdCBjaGFyICpzcmMsIGNvbnN0IGNoYXIgKmRzdCwgc3RydWN0IHN0YXQg KnNyY19zdCkKLStzdGF0aWMgaW50IHNldW5zaGFyZV9tb3VudChjb25zdCBjaGFyICpzcmMsIGlu dCBzcmNfZmQsCi0rCQkJICAgY29uc3QgY2hhciAqZHN0LCBpbnQgZHN0X2ZkLAotKwkJCSAgIGlu dCBiaW5kX2ZsYWdzLCBpbnQgc2VjX2ZsYWdzKQotIHsKLS0JaW50IGJpbmRfZmxhZ3MgPSBNU19C SU5EOwotLQlpbnQgc2VjX2ZsYWdzID0gMDsKLS0JaW50IGlzX3RtcCA9IDA7Ci0rCWNoYXIgc3Jj cHJvY2ZkWzMyXSwgZHN0cHJvY2ZkWzMyXTsKLSsKLSsJYmluZF9mbGFncyB8PSBNU19CSU5EOwot IAotIAlpZiAodmVyYm9zZSkKLSAJCXByaW50ZihfKCJNb3VudGluZyAlcyBvbiAlc1xuIiksIHNy YywgZHN0KTsKLSAKLS0JaWYgKHN0cmNtcCgiL3RtcCIsIGRzdCkgPT0gMCkgewotLQkJc2VjX2Zs YWdzID0gTVNfTk9ERVYgfCBNU19OT1NVSUQgfCBNU19OT0VYRUM7Ci0tCQlpc190bXAgPSAxOwot LQl9Ci0rCXNucHJpbnRmKHNyY3Byb2NmZCwgc2l6ZW9mKHNyY3Byb2NmZCksICIvcHJvYy9zZWxm L2ZkLyVkIiwgc3JjX2ZkKTsKLSsJc25wcmludGYoZHN0cHJvY2ZkLCBzaXplb2YoZHN0cHJvY2Zk KSwgIi9wcm9jL3NlbGYvZmQvJWQiLCBkc3RfZmQpOwotIAotLQlpZiAoc3RybmNtcCgiL3J1bi91 c2VyIiwgZHN0LCA5KSA9PSAwKSB7Ci0tCQliaW5kX2ZsYWdzIHw9IE1TX1JFQzsKLS0JfQotLQot LQkvKiBtb3VudCBkaXJlY3RvcnkgKi8KLS0JaWYgKG1vdW50KHNyYywgZHN0LCBOVUxMLCBiaW5k X2ZsYWdzLCBOVUxMKSA8IDApIHsKLS0JCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gbW91 bnQgJXMgb24gJXM6ICVzXG4iKSwgc3JjLCBkc3QsIHN0cmVycm9yKGVycm5vKSk7Ci0rCS8qIGJp bmQgbW91bnQgZGlyZWN0b3J5ICovCi0rCWlmIChtb3VudChzcmNwcm9jZmQsIGRzdHByb2NmZCwg TlVMTCwgYmluZF9mbGFncywgTlVMTCkgPCAwKSB7Ci0rCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFp bGVkIHRvIG1vdW50ICVzIG9uICVzOiAlbVxuIiksIHNyYywgZHN0KTsKLSAJCXJldHVybiAtMTsK LSAJfQotLQkvKiByZW1vdW50IHdpdGggc2VjdXJpdHkgZmxhZ3MsIGlnbm9yZWQgb24gb3JpZ2lu YWwgYmluZCBtb3VudCAqLwotLQlpZiAoc2VjX2ZsYWdzICYmIG1vdW50KE5VTEwsIGRzdCwgTlVM TCwgTVNfQklORCB8IE1TX1JFTU9VTlQgfCBzZWNfZmxhZ3MsIE5VTEwpIDwgMCkgewotKwotKwkv KgotKwkgKiBSZW1vdW50IHdpdGggc2VjdXJpdHkgZmxhZ3Mgc2V0IC0gcmVxdWlyZXMgdXNlIG9m IGRzdCBwYXRoIGFnYWluLgotKwkgKiBSZXZpc2l0IHdoZW4gd2UgbWlncmF0ZSB0byBvcGVuX3Ry ZWUoKS9tb3ZlX21vdW50KCkuCi0rCSAqLwotKwlpZiAoc2VjX2ZsYWdzICYmCi0rCSAgICBtb3Vu dChOVUxMLCBkc3QsIE5VTEwsIE1TX0JJTkQgfCBNU19SRU1PVU5UIHwgc2VjX2ZsYWdzLCBOVUxM KSA8IDApIHsKLSAJCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gcmVtb3VudCAlczogJW1c biIpLCBkc3QpOwotIAkJcmV0dXJuIC0xOwotIAl9Ci0gCi0tCS8qIHZlcmlmeSB3aGV0aGVyIHdl IG1vdW50ZWQgd2hhdCB3ZSBleHBlY3RlZCB0byBtb3VudCAqLwotLQlpZiAodmVyaWZ5X2RpcmVj dG9yeShkc3QsIHNyY19zdCwgTlVMTCkgPCAwKSByZXR1cm4gLTE7Ci0tCi0tCS8qIGJpbmQgbW91 bnQgL3RtcCBvbiAvdmFyL3RtcCB0b28gKi8KLS0JaWYgKGlzX3RtcCkgewotLQkJaWYgKHZlcmJv c2UpCi0tCQkJcHJpbnRmKF8oIk1vdW50aW5nIC90bXAgb24gL3Zhci90bXBcbiIpKTsKLS0KLS0J CWlmIChtb3VudCgiL3RtcCIsICIvdmFyL3RtcCIsICBOVUxMLCBNU19CSU5ELCBOVUxMKSA8IDAp IHsKLS0JCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIG1vdW50IC90bXAgb24gL3Zhci90 bXA6ICVzXG4iKSwgc3RyZXJyb3IoZXJybm8pKTsKLS0JCQlyZXR1cm4gLTE7Ci0tCQl9Ci0tCQkv KiByZW1vdW50IHdpdGggc2VjdXJpdHkgZmxhZ3MsIGlnbm9yZWQgb24gb3JpZ2luYWwgYmluZCBt b3VudCAqLwotLQkJaWYgKG1vdW50KE5VTEwsICIvdmFyL3RtcCIsIE5VTEwsIE1TX0JJTkQgfCBN U19SRU1PVU5UIHwgc2VjX2ZsYWdzLCBOVUxMKSA8IDApIHsKLS0JCQlmcHJpbnRmKHN0ZGVyciwg XygiRmFpbGVkIHRvIHJlbW91bnQgL3Zhci90bXA6ICVtXG4iKSk7Ci0tCQkJcmV0dXJuIC0xOwot LQkJfQotLQl9Ci0tCi0gCXJldHVybiAwOwotLQotIH0KLSAKLSAvKioKLS0gKiBNb3VudCBkaXJl Y3RvcnkgYW5kIGNoZWNrIHRoYXQgd2UgbW91bnRlZCB0aGUgcmlnaHQgZGlyZWN0b3J5LgotKyAq IEJpbmQtbW91bnQgYSBmaWxlIG5hbWVkIEBzcmNfbmFtZSBpbiBkaXJlY3RvcnkgQHNyY19kaXJm ZCBvbgotKyAqIGEgZmlsZSBuYW1lZCBAZHN0X25hbWUgaW4gZGlyZWN0b3J5IEBkc3RfZGlyZmQs IGNyZWF0aW5nIEBkc3RfbmFtZQotKyAqIGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4KLSAg Ki8KLS1zdGF0aWMgaW50IHNldW5zaGFyZV9tb3VudF9maWxlKGNvbnN0IGNoYXIgKnNyYywgY29u c3QgY2hhciAqZHN0KQotK3N0YXRpYyBpbnQgc2V1bnNoYXJlX21vdW50X2ZpbGUoaW50IHNyY19k aXJmZCwgY29uc3QgY2hhciAqc3JjX25hbWUsCi0rCQkJCWludCBkc3RfZGlyZmQsIGNvbnN0IGNo YXIgKmRzdF9uYW1lKQotIHsKLSsJY2hhciBzcmNwcm9jZmRbMzJdLCBkc3Rwcm9jZmRbMzJdOwot KwlpbnQgc3JjX2ZkID0gLTEsIGRzdF9mZCA9IC0xLCByYyA9IC0xOwotKwotIAlpZiAodmVyYm9z ZSkKLS0JCXByaW50ZihfKCJNb3VudGluZyAlcyBvbiAlc1xuIiksIHNyYywgZHN0KTsKLSsJCXBy aW50ZihfKCJNb3VudGluZyAlcyBvbiAlc1xuIiksIHNyY19uYW1lLCBkc3RfbmFtZSk7Ci0gCi0t CWlmIChhY2Nlc3MoZHN0LCBGX09LKSA9PSAtMSkgewotLQkJaW50IGZkID0gb3Blbihkc3QsIE9f V1JPTkxZIHwgT19DUkVBVCB8IE9fTk9GT0xMT1cgfCBPX0NMT0VYRUMsIDA2MDApOwotLQkJaWYg KGZkIDwgMCkgewotLQkJCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gY3JlYXRlIG1vdW50 IHBvaW50ICVzOiAlbVxuIiksIGRzdCk7Ci0tCQkJcmV0dXJuIC0xOwotLQkJfQotLQkJY2xvc2Uo ZmQpOwotKwlzcmNfZmQgPSBvcGVuYXQoc3JjX2RpcmZkLCBzcmNfbmFtZSwgT19QQVRIIHwgT19O T0ZPTExPVyB8IE9fQ0xPRVhFQyk7Ci0rCWlmIChzcmNfZmQgPCAwKSB7Ci0rCQlmcHJpbnRmKHN0 ZGVyciwgXygiRmFpbGVkIHRvIG9wZW4gJXM6ICVtXG4iKSwgc3JjX25hbWUpOwotKwkJZ290byBv dXQ7Ci0gCX0KLSAKLS0JLyogbW91bnQgZmlsZSAqLwotLQlpZiAobW91bnQoc3JjLCBkc3QsIE5V TEwsIE1TX0JJTkQsIE5VTEwpIDwgMCkgewotLQkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0 byBtb3VudCAlcyBvbiAlczogJXNcbiIpLCBzcmMsIGRzdCwgc3RyZXJyb3IoZXJybm8pKTsKLS0J CXJldHVybiAtMTsKLSsJZHN0X2ZkID0gb3BlbmF0KGRzdF9kaXJmZCwgZHN0X25hbWUsIE9fUEFU SCB8IE9fTk9GT0xMT1cgfCBPX0NMT0VYRUMpOwotKwlpZiAoZHN0X2ZkIDwgMCAmJiBlcnJubyA9 PSBFTk9FTlQpCi0rCQlkc3RfZmQgPSBvcGVuYXQoZHN0X2RpcmZkLCBkc3RfbmFtZSwKLSsJCQkJ T19XUk9OTFkgfCBPX0NSRUFUIHwgT19FWENMIHwgT19OT0ZPTExPVyB8Ci0rCQkJCU9fQ0xPRVhF QywgMDYwMCk7Ci0rCWlmIChkc3RfZmQgPCAwKSB7Ci0rCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFp bGVkIHRvIG9wZW4vY3JlYXRlICVzOiAlbVxuIiksIGRzdF9uYW1lKTsKLSsJCWdvdG8gb3V0Owot IAl9Ci0gCi0tCXJldHVybiAwOwotKwlzbnByaW50ZihzcmNwcm9jZmQsIHNpemVvZihzcmNwcm9j ZmQpLCAiL3Byb2Mvc2VsZi9mZC8lZCIsIHNyY19mZCk7Ci0rCXNucHJpbnRmKGRzdHByb2NmZCwg c2l6ZW9mKGRzdHByb2NmZCksICIvcHJvYy9zZWxmL2ZkLyVkIiwgZHN0X2ZkKTsKLSAKLSsJLyog bW91bnQgZmlsZSAqLwotKwlpZiAobW91bnQoc3JjcHJvY2ZkLCBkc3Rwcm9jZmQsIE5VTEwsIE1T X0JJTkQsIE5VTEwpIDwgMCkgewotKwkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBtb3Vu dCAlcyBvbiAlczogJW1cbiIpLCBzcmNfbmFtZSwKLSsJCQlkc3RfbmFtZSk7Ci0rCQlnb3RvIG91 dDsKLSsJfQotKwotKwlyYyA9IDA7Ci0rb3V0OgotKwlpZiAoc3JjX2ZkID49IDApCi0rCQljbG9z ZShzcmNfZmQpOwotKwlpZiAoZHN0X2ZkID49IDApCi0rCQljbG9zZShkc3RfZmQpOwotKwlyZXR1 cm4gcmM7Ci0gfQotIAotIC8qCi1AQCAtNTU2LDcgKzU1OSw4IEBAIGVycjoKLSAgKiB0byBjbGVh biBpdCB1cC4KLSAgKi8KLSBzdGF0aWMgY2hhciAqY3JlYXRlX3RtcGRpcihjb25zdCBjaGFyICpz cmMsIHN0cnVjdCBzdGF0ICpzcmNfc3QsCi0tCXN0cnVjdCBzdGF0ICpvdXRfc3QsIHN0cnVjdCBw YXNzd2QgKnB3ZCwgY29uc3QgY2hhciAqZXhlY2NvbikKLSsJCQlzdHJ1Y3Qgc3RhdCAqb3V0X3N0 LCBzdHJ1Y3QgcGFzc3dkICpwd2QsCi0rCQkJY29uc3QgY2hhciAqZXhlY2NvbikKLSB7Ci0gCWNo YXIgKnRtcGRpciA9IE5VTEw7Ci0gCWNoYXIgKipjbWQgPSBOVUxMOwotQEAgLTU2NCwyOSArNTY4 LDIzIEBAIHN0YXRpYyBjaGFyICpjcmVhdGVfdG1wZGlyKGNvbnN0IGNoYXIgKnNyYywgc3RydWN0 IHN0YXQgKnNyY19zdCwKLSAJc3RydWN0IHN0YXQgdG1wX3N0OwotIAljaGFyICpjb24gPSBOVUxM OwotIAotLQkvKiBnZXQgc2VsaW51eCBjb250ZXh0ICovCi0rCS8qIGdldCBzZWxpbnV4IGNvbnRl eHQgb2Ygc291cmNlIGRpcmVjdG9yeSAqLwotIAlpZiAoZXhlY2NvbikgewotIAkJaWYgKCh1aWRf dClzZXRmc3VpZChwd2QtPnB3X3VpZCkgIT0gMCkKLSAJCQlnb3RvIGVycjsKLS0KLS0JCWlmICgo ZmRfcyA9IG9wZW4oc3JjLCBPX1JET05MWSkpIDwgMCkgewotLQkJCWZwcmludGYoc3RkZXJyLCBf KCJGYWlsZWQgdG8gb3BlbiBkaXJlY3RvcnkgJXM6ICVzXG4iKSwgc3JjLCBzdHJlcnJvcihlcnJu bykpOwotLQkJCWdvdG8gZXJyOwotLQkJfQotLQkJaWYgKGZzdGF0KGZkX3MsICZ0bXBfc3QpID09 IC0xKSB7Ci0tCQkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBzdGF0IGRpcmVjdG9yeSAl czogJXNcbiIpLCBzcmMsIHN0cmVycm9yKGVycm5vKSk7Ci0rCQlpZiAoKGZkX3MgPSBwaW5fZGly KHNyYywgJnRtcF9zdCkpIDwgMCkKLSAJCQlnb3RvIGVycjsKLS0JCX0KLS0JCWlmICghZXF1YWxf c3RhdHMoc3JjX3N0LCAmdG1wX3N0KSkgewotLQkJCWZwcmludGYoc3RkZXJyLCBfKCJFcnJvcjog JXMgd2FzIHJlcGxhY2VkIGJ5IGEgZGlmZmVyZW50IGRpcmVjdG9yeVxuIiksIHNyYyk7Ci0rCQlp ZiAodG1wX3N0LnN0X2RldiAhPSBzcmNfc3QtPnN0X2RldiB8fAotKwkJICAgIHRtcF9zdC5zdF9p bm8gIT0gc3JjX3N0LT5zdF9pbm8pIHsKLSsJCQlmcHJpbnRmKHN0ZGVyciwKLSsJCQkJXygiJXMg d2FzIHJlcGxhY2VkIGJ5IGEgZGlmZmVyZW50IGRpcmVjdG9yeVxuIiksCi0rCQkJCXNyYyk7Ci0g CQkJZ290byBlcnI7Ci0gCQl9Ci0gCQlpZiAoZmdldGZpbGVjb24oZmRfcywgJmNvbikgPT0gLTEp IHsKLS0JCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIGdldCBjb250ZXh0IG9mIHRoZSBk aXJlY3RvcnkgJXM6ICVzXG4iKSwgc3JjLCBzdHJlcnJvcihlcnJubykpOwotKwkJCWZwcmludGYo c3RkZXJyLCBfKCJGYWlsZWQgdG8gZ2V0IGNvbnRleHQgb2YgdGhlIGRpcmVjdG9yeSAlczogJW1c biIpLCBzcmMpOwotIAkJCWdvdG8gZXJyOwotIAkJfQotLQotLQkJLyogb2sgdG8gbm90IHJlYWNo IHRoaXMgaWYgdGhlcmUgaXMgYW4gZXJyb3IgKi8KLSAJCWlmICgodWlkX3Qpc2V0ZnN1aWQoMCkg IT0gcHdkLT5wd191aWQpCi0gCQkJZ290byBlcnI7Ci0gCX0KLUBAIC02MDIsOSArNjAwLDkgQEAg c3RhdGljIGNoYXIgKmNyZWF0ZV90bXBkaXIoY29uc3QgY2hhciAqc3JjLCBzdHJ1Y3Qgc3RhdCAq c3JjX3N0LAotIAl9Ci0gCi0gCS8qIHRlbXBvcmFyeSBkaXJlY3RvcnkgbXVzdCBiZSBvd25lZCBi eSByb290OnVzZXIgKi8KLS0JaWYgKHZlcmlmeV9kaXJlY3RvcnkodG1wZGlyLCBOVUxMLCBvdXRf c3QpIDwgMCkgewotKwlmZF90ID0gcGluX2Rpcih0bXBkaXIsIG91dF9zdCk7Ci0rCWlmIChmZF90 IDwgMCkKLSAJCWdvdG8gZXJyOwotLQl9Ci0gCi0gCWlmIChjaGVja19vd25lcl91aWQoMCwgdG1w ZGlyLCBvdXRfc3QpIDwgMCkKLSAJCWdvdG8gZXJyOwotQEAgLTYxMywxOCArNjExLDYgQEAgc3Rh dGljIGNoYXIgKmNyZWF0ZV90bXBkaXIoY29uc3QgY2hhciAqc3JjLCBzdHJ1Y3Qgc3RhdCAqc3Jj X3N0LAotIAkJZ290byBlcnI7Ci0gCi0gCS8qIGNoYW5nZSBwZXJtaXNzaW9ucyBvZiB0aGUgdGVt cG9yYXJ5IGRpcmVjdG9yeSAqLwotLQlpZiAoKGZkX3QgPSBvcGVuKHRtcGRpciwgT19SRE9OTFkp KSA8IDApIHsKLS0JCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gb3BlbiBkaXJlY3Rvcnkg JXM6ICVzXG4iKSwgdG1wZGlyLCBzdHJlcnJvcihlcnJubykpOwotLQkJZ290byBlcnI7Ci0tCX0K LS0JaWYgKGZzdGF0KGZkX3QsICZ0bXBfc3QpID09IC0xKSB7Ci0tCQlmcHJpbnRmKHN0ZGVyciwg XygiRmFpbGVkIHRvIHN0YXQgZGlyZWN0b3J5ICVzOiAlc1xuIiksIHRtcGRpciwgc3RyZXJyb3Io ZXJybm8pKTsKLS0JCWdvdG8gZXJyOwotLQl9Ci0tCWlmICghZXF1YWxfc3RhdHMob3V0X3N0LCAm dG1wX3N0KSkgewotLQkJZnByaW50ZihzdGRlcnIsIF8oIkVycm9yOiAlcyB3YXMgcmVwbGFjZWQg YnkgYSBkaWZmZXJlbnQgZGlyZWN0b3J5XG4iKSwgdG1wZGlyKTsKLS0JCWdvdG8gZXJyOwotLQl9 Ci0gCWlmIChmY2htb2QoZmRfdCwgMDE3NzApID09IC0xKSB7Ci0gCQlmcHJpbnRmKHN0ZGVyciwg XygiVW5hYmxlIHRvIGNoYW5nZSBtb2RlIG9uICVzOiAlc1xuIiksIHRtcGRpciwgc3RyZXJyb3Io ZXJybm8pKTsKLSAJCWdvdG8gZXJyOwotQEAgLTY2NCwxMCArNjUwLDEwIEBAIHN0YXRpYyBjaGFy ICpjcmVhdGVfdG1wZGlyKGNvbnN0IGNoYXIgKnNyYywgc3RydWN0IHN0YXQgKnNyY19zdCwKLSBl cnI6Ci0gCWZyZWUodG1wZGlyKTsgdG1wZGlyID0gTlVMTDsKLSBnb29kOgotLQlmcmVlX2FyZ3Mo Y21kKTsKLS0JZnJlZWNvbihjb24pOyBjb24gPSBOVUxMOwotIAlpZiAoZmRfdCA+PSAwKSBjbG9z ZShmZF90KTsKLSAJaWYgKGZkX3MgPj0gMCkgY2xvc2UoZmRfcyk7Ci0rCWZyZWVfYXJncyhjbWQp OwotKwlmcmVlY29uKGNvbik7IGNvbiA9IE5VTEw7Ci0gCXJldHVybiB0bXBkaXI7Ci0gfQotIAot QEAgLTc3NiwxMiArNzYyLDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewot IAljaGFyICp0bXBkaXJfciA9IE5VTEw7CS8qIHRtcGRpciBjcmVhdGVkIGJ5IHNldW5zaGFyZSAq LwotIAljaGFyICpydW51c2VyZGlyX3MgPSBOVUxMOwkvKiAvdmFyL3J1bi91c2VyL1VJRCBzcGVj J2QgYnkgdXNlciBpbiBhcmd2W10gKi8KLSAKLS0Jc3RydWN0IHN0YXQgc3RfY3VyaG9tZWRpcjsK LSAJc3RydWN0IHN0YXQgc3RfaG9tZWRpcjsKLSAJc3RydWN0IHN0YXQgc3RfdG1wZGlyX3M7Ci0g CXN0cnVjdCBzdGF0IHN0X3RtcGRpcl9yOwotIAlzdHJ1Y3Qgc3RhdCBzdF9ydW51c2VyZGlyX3M7 Ci0gCi0rCWludCBmZDsKLSsKLSAJY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9 IHsKLSAJCXsiaG9tZWRpciIsIDEsIDAsICdoJ30sCi0gCQl7InRtcGRpciIsIDEsIDAsICd0J30s Ci1AQCAtODkzLDI0ICs4ODAsNDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7 Ci0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLS0JLyogdmVyaWZ5IGhvbWVkaXIgYW5kIHRtcGRpciAq LwotLQlpZiAoaG9tZWRpcl9zICYmICgKLS0JCXZlcmlmeV9kaXJlY3RvcnkoaG9tZWRpcl9zLCBO VUxMLCAmc3RfaG9tZWRpcikgPCAwIHx8Ci0tCQljaGVja19vd25lcl91aWQodWlkLCBob21lZGly X3MsICZzdF9ob21lZGlyKSkpIHJldHVybiAtMTsKLS0JaWYgKHRtcGRpcl9zICYmICgKLS0JCXZl cmlmeV9kaXJlY3RvcnkodG1wZGlyX3MsIE5VTEwsICZzdF90bXBkaXJfcykgPCAwIHx8Ci0tCQlj aGVja19vd25lcl91aWQodWlkLCB0bXBkaXJfcywgJnN0X3RtcGRpcl9zKSkpIHJldHVybiAtMTsK LS0JaWYgKHJ1bnVzZXJkaXJfcyAmJiAoCi0tCQl2ZXJpZnlfZGlyZWN0b3J5KHJ1bnVzZXJkaXJf cywgTlVMTCwgJnN0X3J1bnVzZXJkaXJfcykgPCAwIHx8Ci0tCQljaGVja19vd25lcl91aWQodWlk LCBydW51c2VyZGlyX3MsICZzdF9ydW51c2VyZGlyX3MpKSkgcmV0dXJuIC0xOwotKwkvKgotKwkg KiBQZXJmb3JtIGVhcmx5IHZhbGlkYXRpb24gb2YgdGhlIGNhbGxlci1wcm92aWRlZCBkaXJlY3Rv cmllcyBzbyB3ZQotKwkgKiBjYW4gZmFpbCBmYXN0LCBidXQgd2UgdW5mb3J0dW5hdGVseSBoYXZl IHRvIHJlZG8gdGhpcyBhZnRlcgotKwkgKiB1bnNoYXJpbmcgdGhlIG1vdW50IG5hbWVzcGFjZSBp biB0aGUgY2hpbGQgc28gdGhhdCBpdCBjYW4gdXNlCi0rCSAqIHRoZSBkZXNjcmlwdG9ycyBmb3Ig c3Vic2VxdWVudCBtb3VudCgyKSBjYWxscy4gT3RoZXJ3aXNlLAotKwkgKiB0aGV5IGVuZCB1cCB3 aXRoIGEgZGlmZmVyZW50IG1vdW50IG5hbWVzcGFjZSBhbmQgbW91bnQoMikgZmFpbHMKLSsJICog d2l0aCBlcnJubyBFSU5WQUwuCi0rCSAqLwotKwlpZiAoaG9tZWRpcl9zKSB7Ci0rCQlmZCA9IHBp bl9kaXIoaG9tZWRpcl9zLCAmc3RfaG9tZWRpcik7Ci0rCQlpZiAoZmQgPCAwKQotKwkJCXJldHVy biAtMTsKLSsJCWlmIChjaGVja19vd25lcl91aWQodWlkLCBob21lZGlyX3MsICZzdF9ob21lZGly KSkKLSsJCQlyZXR1cm4gLTE7Ci0rCQljbG9zZShmZCk7Ci0rCX0KLSsJaWYgKHRtcGRpcl9zKSB7 Ci0rCQlmZCA9IHBpbl9kaXIodG1wZGlyX3MsICZzdF90bXBkaXJfcyk7Ci0rCQlpZiAoZmQgPCAw KQotKwkJCXJldHVybiAtMTsKLSsJCWlmIChjaGVja19vd25lcl91aWQodWlkLCB0bXBkaXJfcywg JnN0X3RtcGRpcl9zKSkKLSsJCQlyZXR1cm4gLTE7Ci0rCQljbG9zZShmZCk7Ci0rCX0KLSsJaWYg KHJ1bnVzZXJkaXJfcykgewotKwkJZmQgPSBwaW5fZGlyKHJ1bnVzZXJkaXJfcywgJnN0X3J1bnVz ZXJkaXJfcyk7Ci0rCQlpZiAoZmQgPCAwKQotKwkJCXJldHVybiAtMTsKLSsJCWlmIChjaGVja19v d25lcl91aWQodWlkLCBydW51c2VyZGlyX3MsICZzdF9ydW51c2VyZGlyX3MpKQotKwkJCXJldHVy biAtMTsKLSsJCWNsb3NlKGZkKTsKLSsJfQotIAotIAlpZiAoKHVpZF90KXNldGZzdWlkKDApICE9 IHVpZCkgcmV0dXJuIC0xOwotIAotIAkvKiBjcmVhdGUgcnVudGltZSB0bXBkaXIgKi8KLS0JaWYg KHRtcGRpcl9zICYmICh0bXBkaXJfciA9IGNyZWF0ZV90bXBkaXIodG1wZGlyX3MsICZzdF90bXBk aXJfcywKLS0JCQkJCQkgICZzdF90bXBkaXJfciwgcHdkLCBleGVjY29uKSkgPT0gTlVMTCkgewot LQkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBjcmVhdGUgcnVudGltZSB0ZW1wb3Jhcnkg ZGlyZWN0b3J5XG4iKSk7Ci0tCQlyZXR1cm4gLTE7Ci0rCWlmICh0bXBkaXJfcykgewotKwkJdG1w ZGlyX3IgPSBjcmVhdGVfdG1wZGlyKHRtcGRpcl9zLCAmc3RfdG1wZGlyX3MsICZzdF90bXBkaXJf ciwKLSsJCQkJCSBwd2QsIGV4ZWNjb24pOwotKwkJaWYgKCF0bXBkaXJfcikgewotKwkJCWZwcmlu dGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gY3JlYXRlIHJ1bnRpbWUgdGVtcG9yYXJ5IGRpcmVjdG9y eVxuIikpOwotKwkJCXJldHVybiAtMTsKLSsJCX0KLSAJfQotIAotIAkvKiBzcGF3biBjaGlsZCBw cm9jZXNzICovCi1AQCAtOTI3LDExICs5MzksMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KSB7Ci0gCQljaGFyICpYREdfU0VTU0lPTl9UWVBFID0gTlVMTDsKLSAJCWludCByYyA9 IC0xOwotIAkJY2hhciAqcmVzb2x2ZWRfcGF0aCA9IE5VTEw7Ci0tCQljaGFyICp3YXlsYW5kX3Bh dGhfcyA9IE5VTEw7IC8qIC90bXAvLi4uL3dheWxhbmQtMCAqLwotLQkJY2hhciAqd2F5bGFuZF9w YXRoID0gTlVMTDsgLyogL3J1bi91c2VyL1VJRC93YXlsYW5kLTAgKi8KLS0JCWNoYXIgKnBpcGV3 aXJlX3BhdGhfcyA9IE5VTEw7IC8qIC90bXAvLi4uL3BpcGV3aXJlLTAgKi8KLS0JCWNoYXIgKnBp cGV3aXJlX3BhdGggPSBOVUxMOyAvKiAvcnVuL3VzZXIvVUlEL3BpcGV3aXJlLTAgKi8KLS0KLSsJ CWludCBmZF9ob21lZGlyX3MgPSAtMSwgZmRfY3VyaG9tZWRpciA9IC0xOwotKwkJaW50IGZkX3J1 bnVzZXJkaXJfcyA9IC0xLCBmZF9ydW50aW1lX2RpciA9IC0xOwotKwkJaW50IGZkX3RtcGRpcl9y ID0gLTEsIGZkX3RtcCA9IC0xLCBmZF92YXJfdG1wID0gLTE7Ci0rCQlzdHJ1Y3Qgc3RhdCBzYjsK LSAKLSAJCWlmICh1bnNoYXJlKENMT05FX05FV05TKSA8IDApIHsKLSAJCQlwZXJyb3IoXygiRmFp bGVkIHRvIHVuc2hhcmUiKSk7Ci1AQCAtOTQxLDE5ICs5NTIsNjcgQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KSB7Ci0gCQkvKiBSZW1vdW50IC8gYXMgU0xBVkUgc28gdGhhdCBub3Ro aW5nIG1vdW50ZWQgaW4gdGhlIG5hbWVzcGFjZSAKLSAJCSAgIHNob3dzIHVwIGluIHRoZSBwYXJl bnQgKi8KLSAJCWlmIChtb3VudCgibm9uZSIsICIvIiwgTlVMTCwgTVNfU0xBVkUgfCBNU19SRUMg LCBOVUxMKSA8IDApIHsKLS0JCQlwZXJyb3IoXygiRmFpbGVkIHRvIG1ha2UgLyBhIFNMQVZFIG1v dW50cG9pbnRcbiIpKTsKLSsKLSAJCQlnb3RvIGNoaWxkZXJyOwotIAkJfQotIAotIAkJLyogYXNz dW1lIGZzdWlkPT1ydWlkIGFmdGVyIHRoaXMgcG9pbnQgKi8KLSAJCWlmICgodWlkX3Qpc2V0ZnN1 aWQodWlkKSAhPSAwKSBnb3RvIGNoaWxkZXJyOwotIAotKwkJLyoKLSsJCSAqIE5vdyB3ZSBjYW4g cGluIHRoZSBzb3VyY2UgZGlyZWN0b3JpZXMgaW4gdGhpcyBuYW1lc3BhY2UKLSsJCSAqIGZvciBs YXRlciB1c2UgYnkgbW91bnQoMikuIFdlIHJlY2hlY2sgdGhhdCBlYWNoCi0rCQkgKiBkaXJlY3Rv cnkgaXMgdGhlIHNhbWUgaW5vZGUgYW5kIHN0aWxsIGhhcyB0aGUKLSsJCSAqIGV4cGVjdGVkIG93 bmVyc2hpcCBhcyB0aGUgZWFybHkgdmFsaWRhdGlvbi4KLSsJCSAqLwotKwkJaWYgKGhvbWVkaXJf cykgewotKwkJCWZkX2hvbWVkaXJfcyA9IHBpbl9kaXIoaG9tZWRpcl9zLCAmc2IpOwotKwkJCWlm IChmZF9ob21lZGlyX3MgPCAwKQotKwkJCQlnb3RvIGNoaWxkZXJyOwotKwkJCWlmIChzYi5zdF9k ZXYgIT0gc3RfaG9tZWRpci5zdF9kZXYgfHwKLSsJCQkJc2Iuc3RfaW5vICE9IHN0X2hvbWVkaXIu c3RfaW5vKQotKwkJCQlnb3RvIGNoaWxkZXJyOwotKwkJCWlmIChjaGVja19vd25lcl91aWQodWlk LCBob21lZGlyX3MsICZzYikpCi0rCQkJCWdvdG8gY2hpbGRlcnI7Ci0rCQl9Ci0rCQkvKgotKwkJ ICogTkIgV2UgZG9uJ3QgbmVlZCB0byByZS1waW4gdG1wZGlyX3MsIGp1c3QgdG1wZGlyX3IsCi0r CQkgKiBzaW5jZSB0aGUgY2hpbGQgbmV2ZXIgdXNlcyB0bXBkaXJfcy4KLSsJCSAqLwotKwkJaWYg KHRtcGRpcl9yKSB7Ci0rCQkJZmRfdG1wZGlyX3IgPSBwaW5fZGlyKHRtcGRpcl9yLCAmc2IpOwot KwkJCWlmIChmZCA8IDApCi0rCQkJCWdvdG8gY2hpbGRlcnI7Ci0rCQkJLyoKLSsJCQkgKiB0bXBk aXJfciBjaGVja3MgZGlmZmVyIGluIHRoYXQgaXQgaXMKLSsJCQkgKiByb290LW93bmVkIGFuZCB3 ZSBhbHNvIHdhbnQgdG8gdmFsaWRhdGUKLSsJCQkgKiB0aGF0IHRoZSBtb2RlIGlzIHN0aWxsIGNv cnJlY3QuCi0rCQkJICovCi0rCQkJaWYgKHNiLnN0X2RldiAhPSBzdF90bXBkaXJfci5zdF9kZXYg fHwKLSsJCQkJc2Iuc3RfaW5vICE9IHN0X3RtcGRpcl9yLnN0X2lubyB8fAotKwkJCQlzYi5zdF9t b2RlICE9IHN0X3RtcGRpcl9yLnN0X21vZGUpCi0rCQkJCWdvdG8gY2hpbGRlcnI7Ci0rCQkJaWYg KGNoZWNrX293bmVyX3VpZCgwLCB0bXBkaXJfciwgJnNiKSkKLSsJCQkJZ290byBjaGlsZGVycjsK LSsJCX0KLSsJCWlmIChydW51c2VyZGlyX3MpIHsKLSsJCQlmZF9ydW51c2VyZGlyX3MgPSBwaW5f ZGlyKHJ1bnVzZXJkaXJfcywgJnNiKTsKLSsJCQlpZiAoZmRfcnVudXNlcmRpcl9zIDwgMCkKLSsJ CQkJZ290byBjaGlsZGVycjsKLSsJCQlpZiAoc2Iuc3RfZGV2ICE9IHN0X3J1bnVzZXJkaXJfcy5z dF9kZXYgfHwKLSsJCQkJc2Iuc3RfaW5vICE9IHN0X3J1bnVzZXJkaXJfcy5zdF9pbm8pCi0rCQkJ CWdvdG8gY2hpbGRlcnI7Ci0rCQkJaWYgKGNoZWNrX293bmVyX3VpZCh1aWQsIHJ1bnVzZXJkaXJf cywgJnNiKSkKLSsJCQkJZ290byBjaGlsZGVycjsKLSsJCX0KLSsKLSAJCXJlc29sdmVkX3BhdGgg PSByZWFscGF0aChwd2QtPnB3X2RpcixOVUxMKTsKLSAJCWlmICghIHJlc29sdmVkX3BhdGgpIGdv dG8gY2hpbGRlcnI7Ci0gCi0tCQlpZiAodmVyaWZ5X2RpcmVjdG9yeShyZXNvbHZlZF9wYXRoLCBO VUxMLCAmc3RfY3VyaG9tZWRpcikgPCAwKQotKwkJZmRfY3VyaG9tZWRpciA9IHBpbl9kaXIocmVz b2x2ZWRfcGF0aCwgJnNiKTsKLSsJCWlmIChmZF9jdXJob21lZGlyIDwgMCkKLSAJCQlnb3RvIGNo aWxkZXJyOwotLQkJaWYgKGNoZWNrX293bmVyX3VpZCh1aWQsIHJlc29sdmVkX3BhdGgsICZzdF9j dXJob21lZGlyKSA8IDApCi0rCQlpZiAoY2hlY2tfb3duZXJfdWlkKHVpZCwgcmVzb2x2ZWRfcGF0 aCwgJnNiKSA8IDApCi0gCQkJZ290byBjaGlsZGVycjsKLSAKLSAJCWlmICgoUlVOVElNRV9ESVIg PSBnZXRlbnYoIlhER19SVU5USU1FX0RJUiIpKSAhPSBOVUxMKSB7Ci1AQCAtOTY5LDEyICsxMDI4 LDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotIAkJfQotIAotIAkJaWYg KHJ1bnVzZXJkaXJfcykgewotLQkJCXN0cnVjdCBzdGF0IHNiOwotLQotLQkJCWlmICh2ZXJpZnlf ZGlyZWN0b3J5KFJVTlRJTUVfRElSLCBOVUxMLCAmc2IpIDwgMCB8fAotLQkJCQljaGVja19vd25l cl91aWQodWlkLCBSVU5USU1FX0RJUiwgJnNiKSA8IDApCi0rCQkJZmRfcnVudGltZV9kaXIgPSBw aW5fZGlyKFJVTlRJTUVfRElSLCAmc2IpOwotKwkJCWlmIChmZF9ydW50aW1lX2RpciA8IDApCi0r CQkJCWdvdG8gY2hpbGRlcnI7Ci0rCQkJaWYgKGNoZWNrX293bmVyX3VpZCh1aWQsIFJVTlRJTUVf RElSLCAmc2IpIDwgMCkKLSAJCQkJZ290byBjaGlsZGVycjsKLS0KLSAJCX0KLSAKLSAJCWlmICgo WERHX1NFU1NJT05fVFlQRSA9IGdldGVudigiWERHX1NFU1NJT05fVFlQRSIpKSAhPSBOVUxMKSB7 Ci1AQCAtOTg1LDQyICsxMDQzLDU3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikg ewotIAkJfQotIAotIAkJaWYgKHJ1bnVzZXJkaXJfcyAmJiAod2F5bGFuZF9kaXNwbGF5IHx8IHBp cGV3aXJlX3NvY2tldCkpIHsKLS0JCQlpZiAod2F5bGFuZF9kaXNwbGF5KSB7Ci0tCQkJCWlmIChh c3ByaW50Zigmd2F5bGFuZF9wYXRoX3MsICIlcy8lcyIsIHJ1bnVzZXJkaXJfcywgd2F5bGFuZF9k aXNwbGF5KSA9PSAtMSkgewotLQkJCQkJcGVycm9yKF8oIk91dCBvZiBtZW1vcnkiKSk7Ci0rCQkJ aWYgKHdheWxhbmRfZGlzcGxheSAmJgotKwkJCSAgICBzZXVuc2hhcmVfbW91bnRfZmlsZShmZF9y dW50aW1lX2RpciwKLSsJCQkJCSAgICB3YXlsYW5kX2Rpc3BsYXksCi0rCQkJCQkgICAgZmRfcnVu dXNlcmRpcl9zLAotKwkJCQkJICAgIHdheWxhbmRfZGlzcGxheSkgPT0gLTEpCi0gCQkJCQlnb3Rv IGNoaWxkZXJyOwotLQkJCQl9Ci0gCi0tCQkJCWlmIChhc3ByaW50Zigmd2F5bGFuZF9wYXRoLCAi JXMvJXMiLCBSVU5USU1FX0RJUiwgd2F5bGFuZF9kaXNwbGF5KSA9PSAtMSkgewotLQkJCQkJcGVy cm9yKF8oIk91dCBvZiBtZW1vcnkiKSk7Ci0tCQkJCQlnb3RvIGNoaWxkZXJyOwotLQkJCQl9Ci0r CQkJaWYgKHBpcGV3aXJlX3NvY2tldCAmJgotKwkJCSAgICBzZXVuc2hhcmVfbW91bnRfZmlsZShm ZF9ydW50aW1lX2RpciwKLSsJCQkJCSAgICAicGlwZXdpcmUtMCIsCi0rCQkJCQkgICAgZmRfcnVu dXNlcmRpcl9zLAotKwkJCQkJICAgIHBpcGV3aXJlX3NvY2tldCkgPT0gLTEpCi0rCQkJCWdvdG8g Y2hpbGRlcnI7Ci0rCQl9Ci0gCi0tCQkJCWlmIChzZXVuc2hhcmVfbW91bnRfZmlsZSh3YXlsYW5k X3BhdGgsIHdheWxhbmRfcGF0aF9zKSA9PSAtMSkKLS0JCQkJCWdvdG8gY2hpbGRlcnI7Ci0rCQkv KiBtb3VudCBob21lZGlyLCBydW51c2VyZGlyIGFuZCB0bXBkaXIsIGluIHRoaXMgb3JkZXIgKi8K LSsJCWlmIChydW51c2VyZGlyX3MgJiYKLSsJCQlzZXVuc2hhcmVfbW91bnQocnVudXNlcmRpcl9z LCBmZF9ydW51c2VyZGlyX3MsCi0rCQkJCQlSVU5USU1FX0RJUiwgZmRfcnVudGltZV9kaXIsCi0r CQkJCQlNU19SRUMsIDApICE9IDApCi0rCQkJZ290byBjaGlsZGVycjsKLSsJCWlmIChob21lZGly X3MgJiYKLSsJCQlzZXVuc2hhcmVfbW91bnQoaG9tZWRpcl9zLCBmZF9ob21lZGlyX3MsCi0rCQkJ CQlyZXNvbHZlZF9wYXRoLCBmZF9jdXJob21lZGlyLAotKwkJCQkJMCwgMCkgIT0gMCkKLSsJCQln b3RvIGNoaWxkZXJyOwotKwkJaWYgKHRtcGRpcl9zKSB7Ci0rCQkJZmRfdG1wID0gb3BlbigiL3Rt cCIsIE9fUkRPTkxZIHwgT19ESVJFQ1RPUlkgfAotKwkJCQkgICAgICBPX05PRk9MTE9XIHwgT19D TE9FWEVDKTsKLSsJCQlpZiAoZmRfdG1wIDwgMCkgewotKwkJCQlwZXJyb3IoXygiRmFpbGVkIHRv IG9wZW4gL3RtcCIpKTsKLSsJCQkJZ290byBjaGlsZGVycjsKLSAJCQl9Ci0gCi0tCQkJaWYgKHBp cGV3aXJlX3NvY2tldCkgewotLQkJCQlpZiAoYXNwcmludGYoJnBpcGV3aXJlX3BhdGhfcywgIiVz LyVzIiwgcnVudXNlcmRpcl9zLCBwaXBld2lyZV9zb2NrZXQpID09IC0xKSB7Ci0tCQkJCQlwZXJy b3IoXygiT3V0IG9mIG1lbW9yeSIpKTsKLS0JCQkJCWdvdG8gY2hpbGRlcnI7Ci0tCQkJCX0KLS0J CQkJaWYgKGFzcHJpbnRmKCZwaXBld2lyZV9wYXRoLCAiJXMvcGlwZXdpcmUtMCIsIFJVTlRJTUVf RElSKSA9PSAtMSkgewotLQkJCQkJcGVycm9yKF8oIk91dCBvZiBtZW1vcnkiKSk7Ci0tCQkJCQln b3RvIGNoaWxkZXJyOwotLQkJCQl9Ci0tCQkJCWlmIChzZXVuc2hhcmVfbW91bnRfZmlsZShwaXBl d2lyZV9wYXRoLCBwaXBld2lyZV9wYXRoX3MpID09IC0xKQotLQkJCQkJZ290byBjaGlsZGVycjsK LSsJCQlpZiAoc2V1bnNoYXJlX21vdW50KHRtcGRpcl9yLCBmZF90bXBkaXJfciwKLSsJCQkJCSAg ICAiL3RtcCIsIGZkX3RtcCwgMCwKLSsJCQkJCSAgICBNU19OT0RFVnxNU19OT1NVSUR8TVNfTk9F WEVDKSA8IDApCi0rCQkJCWdvdG8gY2hpbGRlcnI7Ci0rCi0rCQkJZmRfdmFyX3RtcCA9IG9wZW4o Ii92YXIvdG1wIiwgT19SRE9OTFkgfCBPX0RJUkVDVE9SWSB8Ci0rCQkJCQlPX05PRk9MTE9XIHwg T19DTE9FWEVDKTsKLSsJCQlpZiAoZmRfdmFyX3RtcCA8IDApIHsKLSsJCQkJcGVycm9yKF8oIkZh aWxlZCB0byBvcGVuIC92YXIvdG1wIikpOwotKwkJCQlnb3RvIGNoaWxkZXJyOwotIAkJCX0KLS0J CX0KLSAKLS0JCS8qIG1vdW50IGhvbWVkaXIsIHJ1bnVzZXJkaXIgYW5kIHRtcGRpciwgaW4gdGhp cyBvcmRlciAqLwotLQkJaWYgKHJ1bnVzZXJkaXJfcyAmJglzZXVuc2hhcmVfbW91bnQocnVudXNl cmRpcl9zLCBSVU5USU1FX0RJUiwKLS0JCQkmc3RfcnVudXNlcmRpcl9zKSAhPSAwKSBnb3RvIGNo aWxkZXJyOwotLQkJaWYgKGhvbWVkaXJfcyAmJiBzZXVuc2hhcmVfbW91bnQoaG9tZWRpcl9zLCBy ZXNvbHZlZF9wYXRoLAotLQkJCSZzdF9ob21lZGlyKSAhPSAwKSBnb3RvIGNoaWxkZXJyOwotLQkJ aWYgKHRtcGRpcl9zICYmCXNldW5zaGFyZV9tb3VudCh0bXBkaXJfciwgIi90bXAiLAotLQkJCSZz dF90bXBkaXJfcikgIT0gMCkgZ290byBjaGlsZGVycjsKLSsJCQlpZiAoc2V1bnNoYXJlX21vdW50 KCIvdG1wIiwgZmRfdG1wZGlyX3IsCi0rCQkJCQkiL3Zhci90bXAiLCBmZF92YXJfdG1wLCAwLAot KwkJCQkJTVNfTk9ERVZ8TVNfTk9TVUlEfE1TX05PRVhFQykgPCAwKQotKwkJCQlnb3RvIGNoaWxk ZXJyOwotKwkJfQotIAotIAkJaWYgKGRyb3BfcHJpdnModWlkKSAhPSAwKSBnb3RvIGNoaWxkZXJy OwotIAotQEAgLTExMDEsMTEgKzExNzQsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KSB7Ci0gCQlleGVjdihhcmd2W29wdGluZF0sIGFyZ3YgKyBvcHRpbmQpOwotIAkJZnByaW50 ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBleGVjdXRlIGNvbW1hbmQgJXM6ICVzXG4iKSwgYXJndltv cHRpbmRdLCBzdHJlcnJvcihlcnJubykpOwotIGNoaWxkZXJyOgotKwkJaWYgKGZkX2hvbWVkaXJf cyA+PSAwKSBjbG9zZShmZF9ob21lZGlyX3MpOwotKwkJaWYgKGZkX2N1cmhvbWVkaXIgPj0gMCkg Y2xvc2UoZmRfY3VyaG9tZWRpcik7Ci0rCQlpZiAoZmRfcnVudXNlcmRpcl9zID49IDApIGNsb3Nl KGZkX3J1bnVzZXJkaXJfcyk7Ci0rCQlpZiAoZmRfcnVudGltZV9kaXIgPj0gMCkgY2xvc2UoZmRf cnVudGltZV9kaXIpOwotKwkJaWYgKGZkX3RtcGRpcl9yID49IDApIGNsb3NlKGZkX3RtcGRpcl9y KTsKLSsJCWlmIChmZF90bXAgPj0gMCkgY2xvc2UoZmRfdG1wKTsKLSsJCWlmIChmZF92YXJfdG1w ID49IDApIGNsb3NlKGZkX3Zhcl90bXApOwotIAkJZnJlZShyZXNvbHZlZF9wYXRoKTsKLS0JCWZy ZWUod2F5bGFuZF9wYXRoKTsKLS0JCWZyZWUod2F5bGFuZF9wYXRoX3MpOwotLQkJZnJlZShwaXBl d2lyZV9wYXRoKTsKLS0JCWZyZWUocGlwZXdpcmVfcGF0aF9zKTsKLSAJCWZyZWUoZGlzcGxheSk7 Ci0gCQlmcmVlKExBTkcpOwotIAkJZnJlZShSVU5USU1FX0RJUik7Ci0tLSAKLTIuNTQuMAotCgpk aWZmIC0tZ2l0IGEvMDAyMS1zYW5kYm94LXNldW5zaGFyZS1mdWxseS1jaGVjay1zZXRmc3VpZC1j YWxscy5wYXRjaCBiLzAwMjEtc2FuZGJveC1zZXVuc2hhcmUtZnVsbHktY2hlY2stc2V0ZnN1aWQt Y2FsbHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjN2Q1MGIuLjAwMDAw MDAKLS0tIGEvMDAyMS1zYW5kYm94LXNldW5zaGFyZS1mdWxseS1jaGVjay1zZXRmc3VpZC1jYWxs cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1OCArMCwwIEBACi1Gcm9tIDU5Y2ZlZDNiZjIz NTExZjc5MmJkZTMwODU3NTlhYjQ0ZWQ2NDNhNGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWlsLmNvbT4KLURh dGU6IFRodSwgMTQgTWF5IDIwMjYgMTE6MDM6NDAgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gc2Fu ZGJveC9zZXVuc2hhcmU6IGZ1bGx5IGNoZWNrIHNldGZzdWlkKCkgY2FsbHMKLUNvbnRlbnQtdHlw ZTogdGV4dC9wbGFpbgotCi1zZXRmc3VpZCgpIHJldHVybnMgdGhlIG9sZCBmc3VpZCB2YWx1ZSBh bmQgZG9lc24ndCBhbHdheXMKLXNldCBlcnJuby4gVGhlIGV4aXN0aW5nIGNvZGUgd2FzIGNoZWNr aW5nIHRoYXQgaXQgZGlkCi1zdWNjZXNzZnVsbHkgcmV0dXJuIHRoZSBvbGQgZnN1aWQgdmFsdWUg YnV0IG5vdCBleHBsaWNpdGx5Ci1jaGVja2luZyB0aGF0IHRoZSBuZXcgb25lIHdhcyBzZXQsIHdo aWNoIGNhbiBiZSBkb25lIGJ5Ci1hIHNlY29uZCBjYWxsIHRvIHNldGZzdWlkKCkgd2l0aCAtMSBh bmQgY2hlY2tpbmcgaXRzCi1yZXR1cm4gdmFsdWUuIEFkZCBhIHdyYXBwZXIgZm9yIHNldGZzdWlk KCkgYW5kIHVzZSBpdAotdGhyb3VnaG91dCB0byBlbnN1cmUgY29tcGxldGUgY2hlY2tpbmcuCi0K LVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5zbWFsbGV5LndvcmtAZ21h aWwuY29tPgotLS0tCi0gc2FuZGJveC9zZXVuc2hhcmUuYyB8IDYwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA0OCBpbnNlcnRp b25zKCspLCAxMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NhbmRib3gvc2V1bnNoYXJl LmMgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1pbmRleCA2MTFiZmU4MGQwMzAuLjk4ZmNlZjMyNjg1 MyAxMDA2NDQKLS0tLSBhL3NhbmRib3gvc2V1bnNoYXJlLmMKLSsrKyBiL3NhbmRib3gvc2V1bnNo YXJlLmMKLUBAIC00ODYsNiArNDg2LDQ0IEBAIHN0YXRpYyBib29sIHJtX3JmKGludCB0YXJnZXRm ZCwgY29uc3QgY2hhciAqcGF0aCkgewotIAlyZXR1cm4gdHJ1ZTsKLSB9Ci0gCi0rLyoKLSsgKiBz ZXRmc3VpZCgpIHJldHVybnMgdGhlIHByZXZpb3VzIGZzdWlkIHZhbHVlLAotKyAqIGFuZCBkb2Vz IG5vdCByZWxpYWJseSBzZXQgZXJybm8gb24gZXJyb3JzLgotKyAqIExldCdzIGRvIGJldHRlci4K LSsgKi8KLStzdGF0aWMgaW50IHNldGZzdWlkX2NoZWNrZWQodWlkX3Qgb2xkLCB1aWRfdCBuZXcp Ci0rewotKwlpbnQgcmM7Ci0rCi0rCXJjID0gc2V0ZnN1aWQobmV3KTsKLSsJaWYgKCh1aWRfdCly YyAhPSBvbGQpIHsKLSsJCWludCBzYXZlX2Vycm5vID0gZXJybm87Ci0rCQlmcHJpbnRmKHN0ZGVy ciwKLSsJCQkic2V0ZnN1aWQoJXUpOiBSZXR1cm5lZCB1bmV4cGVjdGVkIG9sZCB1aWQgJXVcbiIs Ci0rCQkJbmV3LCAodWlkX3QpcmMpOwotKwkJaWYgKHNhdmVfZXJybm8pCi0rCQkJZXJybm8gPSBz YXZlX2Vycm5vOwotKwkJZWxzZQotKwkJCWVycm5vID0gRVBFUk07Ci0rCQlyZXR1cm4gLTE7Ci0r CX0KLSsKLSsJcmMgPSBzZXRmc3VpZCgtMSk7Ci0rCWlmICgodWlkX3QpcmMgIT0gbmV3KSB7Ci0r CQlpbnQgc2F2ZV9lcnJubyA9IGVycm5vOwotKwkJZnByaW50ZihzdGRlcnIsCi0rCQkJInNldGZz dWlkKCV1KTogUHJvZHVjZWQgdW5leHBlY3RlZCBuZXcgdWlkICV1XG4iLAotKwkJCW5ldywodWlk X3QpcmMpOwotKwkJaWYgKHNhdmVfZXJybm8pCi0rCQkJZXJybm8gPSBzYXZlX2Vycm5vOwotKwkJ ZWxzZQotKwkJCWVycm5vID0gRVBFUk07Ci0rCQlyZXR1cm4gLTE7Ci0rCX0KLSsKLSsJcmV0dXJu IDA7Ci0rfQotKwotIC8qKgotICAqIENsZWFuIHVwIHJ1bnRpbWUgdGVtcG9yYXJ5IGRpcmVjdG9y eS4gIFJldHVybnMgMCBpZiBubyBwcm9ibGVtIHdhcyBkZXRlY3RlZCwKLSAgKiA+MCBpZiBzb21l IGVycm9yIHdhcyBkZXRlY3RlZCwgYnV0IGVycm9ycyBoZXJlIGFyZSB0cmVhdGVkIGFzIG5vbi1m YXRhbCBhbmQKLUBAIC01MjksMTAgKzU2Nyw4IEBAIHN0YXRpYyBpbnQgY2xlYW51cF90bXBkaXIo Y29uc3QgY2hhciAqdG1wZGlyLCBjb25zdCBjaGFyICpzcmMsCi0gCQlmcmVlX2FyZ3MoYXJncyk7 Ci0gCX0KLSAKLS0JaWYgKCh1aWRfdClzZXRmc3VpZCgwKSAhPSAwKSB7Ci0tCQkvKiBzZXRmc3Vp ZCBkb2VzIG5vdCByZXR1cm4gZXJyb3IsIGJ1dCB0aGlzIGNoZWNrIG1ha2VzIGNvZGUgY2hlY2tl cnMgaGFwcHkgKi8KLSsJaWYgKHNldGZzdWlkX2NoZWNrZWQoMCwgMCkgPCAwKQotIAkJcmMrKzsK LS0JfQotIAotIAkvKiBSZWN1cnNpdmVseSByZW1vdmUgdGhlIHJ1bnRpbWUgdGVtcCBkaXJlY3Rv cnkuICAqLwotIAlpZiAoIXJtX3JmKEFUX0ZEQ1dELCB0bXBkaXIpKSB7Ci1AQCAtNTQwLDcgKzU3 Niw3IEBAIHN0YXRpYyBpbnQgY2xlYW51cF90bXBkaXIoY29uc3QgY2hhciAqdG1wZGlyLCBjb25z dCBjaGFyICpzcmMsCi0gCQlyYysrOwotIAl9Ci0gCi0tCWlmICgodWlkX3Qpc2V0ZnN1aWQocHdk LT5wd191aWQpICE9IDApIHsKLSsJaWYgKHNldGZzdWlkX2NoZWNrZWQoMCwgcHdkLT5wd191aWQp IDwgMCkgewotIAkJZnByaW50ZihzdGRlcnIsIF8oInVuYWJsZSB0byBzd2l0Y2ggYmFjayB0byB1 c2VyIGFmdGVyIGNsZWFyaW5nIHRtcCBkaXJcbiIpKTsKLSAJCXJjKys7Ci0gCX0KLUBAIC01NzAs NyArNjA2LDcgQEAgc3RhdGljIGNoYXIgKmNyZWF0ZV90bXBkaXIoY29uc3QgY2hhciAqc3JjLCBz dHJ1Y3Qgc3RhdCAqc3JjX3N0LAotIAotIAkvKiBnZXQgc2VsaW51eCBjb250ZXh0IG9mIHNvdXJj ZSBkaXJlY3RvcnkgKi8KLSAJaWYgKGV4ZWNjb24pIHsKLS0JCWlmICgodWlkX3Qpc2V0ZnN1aWQo cHdkLT5wd191aWQpICE9IDApCi0rCQlpZiAoc2V0ZnN1aWRfY2hlY2tlZCgwLCBwd2QtPnB3X3Vp ZCkpCi0gCQkJZ290byBlcnI7Ci0gCQlpZiAoKGZkX3MgPSBwaW5fZGlyKHNyYywgJnRtcF9zdCkp IDwgMCkKLSAJCQlnb3RvIGVycjsKLUBAIC01ODUsNyArNjIxLDcgQEAgc3RhdGljIGNoYXIgKmNy ZWF0ZV90bXBkaXIoY29uc3QgY2hhciAqc3JjLCBzdHJ1Y3Qgc3RhdCAqc3JjX3N0LAotIAkJCWZw cmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gZ2V0IGNvbnRleHQgb2YgdGhlIGRpcmVjdG9yeSAl czogJW1cbiIpLCBzcmMpOwotIAkJCWdvdG8gZXJyOwotIAkJfQotLQkJaWYgKCh1aWRfdClzZXRm c3VpZCgwKSAhPSBwd2QtPnB3X3VpZCkKLSsJCWlmIChzZXRmc3VpZF9jaGVja2VkKHB3ZC0+cHdf dWlkLCAwKSA8IDApCi0gCQkJZ290byBlcnI7Ci0gCX0KLSAKLUBAIC02MjksNyArNjY1LDcgQEAg c3RhdGljIGNoYXIgKmNyZWF0ZV90bXBkaXIoY29uc3QgY2hhciAqc3JjLCBzdHJ1Y3Qgc3RhdCAq c3JjX3N0LAotIAkJfQotIAl9Ci0gCi0tCWlmICgodWlkX3Qpc2V0ZnN1aWQocHdkLT5wd191aWQp ICE9IDApCi0rCWlmIChzZXRmc3VpZF9jaGVja2VkKDAsIHB3ZC0+cHdfdWlkKSA8IDApCi0gCQln b3RvIGVycjsKLSAKLSAJaWYgKHJzeW5jY21kKHNyYywgdG1wZGlyLCAmY21kKSA8IDApIHsKLUBA IC02MzcsNyArNjczLDcgQEAgc3RhdGljIGNoYXIgKmNyZWF0ZV90bXBkaXIoY29uc3QgY2hhciAq c3JjLCBzdHJ1Y3Qgc3RhdCAqc3JjX3N0LAotIAl9Ci0gCi0gCS8qIG9rIHRvIG5vdCByZWFjaCB0 aGlzIGlmIHRoZXJlIGlzIGFuIGVycm9yICovCi0tCWlmICgodWlkX3Qpc2V0ZnN1aWQoMCkgIT0g cHdkLT5wd191aWQpCi0rCWlmIChzZXRmc3VpZF9jaGVja2VkKHB3ZC0+cHdfdWlkLCAwKSA8IDAp Ci0gCQlnb3RvIGVycjsKLSAKLSAJaWYgKHNwYXduX2NvbW1hbmQoY21kLCBwd2QtPnB3X3VpZCkg IT0gMCkgewotQEAgLTg3NCw5ICs5MTAsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpIHsKLSAJLyogQ2hhbmdpbmcgZnN1aWQgaXMgdXN1YWxseSByZXF1aXJlZCB3aGVuIHVzZXIt c3BlY2lmaWVkIGRpcmVjdG9yeSBpcwotIAkgKiBvbiBhbiBORlMgbW91bnQuICBJdCdzIGFsc28g ZGVzaXJlZCB0byBhdm9pZCBsZWFraW5nIGluZm8gYWJvdXQKLSAJICogZXhpc3RlbmNlIG9mIHRo ZSBmaWxlcyBub3QgYWNjZXNzaWJsZSB0byB0aGUgdXNlci4gKi8KLS0JaWYgKCh1aWRfdClzZXRm c3VpZCh1aWQpICE9IDApIHsKLSsJaWYgKHNldGZzdWlkX2NoZWNrZWQoMCwgdWlkKSA8IDApIHsK LSAJCWZwcmludGYoc3RkZXJyLCBfKCJFcnJvcjogdW5hYmxlIHRvIHNldGZzdWlkXG4iKSk7Ci0t Ci0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLUBAIC05MTMsNyArOTQ4LDggQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gCQljbG9zZShmZCk7Ci0gCX0KLSAKLS0JaWYgKCh1aWRf dClzZXRmc3VpZCgwKSAhPSB1aWQpIHJldHVybiAtMTsKLSsJaWYgKHNldGZzdWlkX2NoZWNrZWQo dWlkLCAwKSA8IDApCi0rCQlyZXR1cm4gLTE7Ci0gCi0gCS8qIGNyZWF0ZSBydW50aW1lIHRtcGRp ciAqLwotIAlpZiAodG1wZGlyX3MpIHsKLUBAIC05NTcsNyArOTkzLDcgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gCQl9Ci0gCi0gCQkvKiBhc3N1bWUgZnN1aWQ9PXJ1aWQg YWZ0ZXIgdGhpcyBwb2ludCAqLwotLQkJaWYgKCh1aWRfdClzZXRmc3VpZCh1aWQpICE9IDApIGdv dG8gY2hpbGRlcnI7Ci0rCQlpZiAoc2V0ZnN1aWRfY2hlY2tlZCgwLCB1aWQpIDwgMCkgZ290byBj aGlsZGVycjsKLSAKLSAJCS8qCi0gCQkgKiBOb3cgd2UgY2FuIHBpbiB0aGUgc291cmNlIGRpcmVj dG9yaWVzIGluIHRoaXMgbmFtZXNwYWNlCi0tLSAKLTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAy Mi1zYW5kYm94LXNldW5zaGFyZS1jaGVjay1vd25lci1pbi1zZXVuc2hhcmVfbW91bnRfZmlsLnBh dGNoIGIvMDAyMi1zYW5kYm94LXNldW5zaGFyZS1jaGVjay1vd25lci1pbi1zZXVuc2hhcmVfbW91 bnRfZmlsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NWFlZDdjLi4wMDAw MDAwCi0tLSBhLzAwMjItc2FuZGJveC1zZXVuc2hhcmUtY2hlY2stb3duZXItaW4tc2V1bnNoYXJl X21vdW50X2ZpbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLUZyb20gOGEz ZGU3MDYyMmQyNTJmMWVlMDcwZDZkOWU5YjAxOWI5YTZlZGQwOCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5zbWFsbGV5LndvcmtAZ21haWwu Y29tPgotRGF0ZTogRnJpLCAxNSBNYXkgMjAyNiAxMToxMTo0MyAtMDQwMAotU3ViamVjdDogW1BB VENIXSBzYW5kYm94L3NldW5zaGFyZTogY2hlY2sgb3duZXIgaW4gc2V1bnNoYXJlX21vdW50X2Zp bGUoKQotQ29udGVudC10eXBlOiB0ZXh0L3BsYWluCi0KLVdlIGN1cnJlbnRseSBhcHBseSBhbiBv d25lciBjaGVjayBvbiBkaXJlY3RvcmllcyBwcmlvciB0bwotY2FsbGluZyBzZXVuc2hhcmVfbW91 bnQoKSBvbiB0aGVtLiBEbyB0aGUgc2FtZSBmb3IKLXNldW5zaGFyZV9tb3VudF9maWxlKCksIGJ1 dCB0aGlzIGhhcyB0byBiZSBkb25lIGluc2lkZQotb2YgdGhlIGZ1bmN0aW9uIHNpbmNlIHdlIGRv IG5vdCBvcGVuIHRoZSBzb3VyY2UgYW5kCi1kZXN0aW5hdGlvbiBmaWxlcyB1bnRpbCB0aGVuLgot Ci1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdt YWlsLmNvbT4KLS0tLQotIHNhbmRib3gvc2V1bnNoYXJlLmMgfCAyMyArKysrKysrKysrKysrKysr KysrKy0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9zZXVuc2hhcmUuYyBiL3NhbmRib3gvc2V1bnNoYXJl LmMKLWluZGV4IDk4ZmNlZjMyNjg1My4uM2FmZTE1NTRhZTU2IDEwMDY0NAotLS0tIGEvc2FuZGJv eC9zZXVuc2hhcmUuYwotKysrIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotQEAgLTI5NiwxMSArMjk2 LDEyIEBAIHN0YXRpYyBpbnQgc2V1bnNoYXJlX21vdW50KGNvbnN0IGNoYXIgKnNyYywgaW50IHNy Y19mZCwKLSAgKiBhIGZpbGUgbmFtZWQgQGRzdF9uYW1lIGluIGRpcmVjdG9yeSBAZHN0X2RpcmZk LCBjcmVhdGluZyBAZHN0X25hbWUKLSAgKiBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QuCi0g ICovCi0tc3RhdGljIGludCBzZXVuc2hhcmVfbW91bnRfZmlsZShpbnQgc3JjX2RpcmZkLCBjb25z dCBjaGFyICpzcmNfbmFtZSwKLStzdGF0aWMgaW50IHNldW5zaGFyZV9tb3VudF9maWxlKHVpZF90 IHVpZCwgaW50IHNyY19kaXJmZCwgY29uc3QgY2hhciAqc3JjX25hbWUsCi0gCQkJCWludCBkc3Rf ZGlyZmQsIGNvbnN0IGNoYXIgKmRzdF9uYW1lKQotIHsKLSAJY2hhciBzcmNwcm9jZmRbMzJdLCBk c3Rwcm9jZmRbMzJdOwotIAlpbnQgc3JjX2ZkID0gLTEsIGRzdF9mZCA9IC0xLCByYyA9IC0xOwot KwlzdHJ1Y3Qgc3RhdCBzYjsKLSAKLSAJaWYgKHZlcmJvc2UpCi0gCQlwcmludGYoXygiTW91bnRp bmcgJXMgb24gJXNcbiIpLCBzcmNfbmFtZSwgZHN0X25hbWUpOwotQEAgLTMxMSw2ICszMTIsMTQg QEAgc3RhdGljIGludCBzZXVuc2hhcmVfbW91bnRfZmlsZShpbnQgc3JjX2RpcmZkLCBjb25zdCBj aGFyICpzcmNfbmFtZSwKLSAJCWdvdG8gb3V0OwotIAl9Ci0gCi0rCWlmIChmc3RhdChzcmNfZmQs ICZzYikgPCAwKSB7Ci0rCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIHN0YXQgJXM6ICVt XG4iKSwgc3JjX25hbWUpOwotKwkJZ290byBvdXQ7Ci0rCi0rCX0KLSsJaWYgKGNoZWNrX293bmVy X3VpZCh1aWQsIHNyY19uYW1lLCAmc2IpKQotKwkJZ290byBvdXQ7Ci0rCi0gCWRzdF9mZCA9IG9w ZW5hdChkc3RfZGlyZmQsIGRzdF9uYW1lLCBPX1BBVEggfCBPX05PRk9MTE9XIHwgT19DTE9FWEVD KTsKLSAJaWYgKGRzdF9mZCA8IDAgJiYgZXJybm8gPT0gRU5PRU5UKQotIAkJZHN0X2ZkID0gb3Bl bmF0KGRzdF9kaXJmZCwgZHN0X25hbWUsCi1AQCAtMzIxLDYgKzMzMCwxNCBAQCBzdGF0aWMgaW50 IHNldW5zaGFyZV9tb3VudF9maWxlKGludCBzcmNfZGlyZmQsIGNvbnN0IGNoYXIgKnNyY19uYW1l LAotIAkJZ290byBvdXQ7Ci0gCX0KLSAKLSsJaWYgKGZzdGF0KGRzdF9mZCwgJnNiKSA8IDApIHsK LSsJCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gc3RhdCAlczogJW1cbiIpLCBkc3RfbmFt ZSk7Ci0rCQlnb3RvIG91dDsKLSsKLSsJfQotKwlpZiAoY2hlY2tfb3duZXJfdWlkKHVpZCwgZHN0 X25hbWUsICZzYikpCi0rCQlnb3RvIG91dDsKLSsKLSAJc25wcmludGYoc3JjcHJvY2ZkLCBzaXpl b2Yoc3JjcHJvY2ZkKSwgIi9wcm9jL3NlbGYvZmQvJWQiLCBzcmNfZmQpOwotIAlzbnByaW50Zihk c3Rwcm9jZmQsIHNpemVvZihkc3Rwcm9jZmQpLCAiL3Byb2Mvc2VsZi9mZC8lZCIsIGRzdF9mZCk7 Ci0gCi1AQCAtMTA4MCwxNCArMTA5NywxNCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpIHsKLSAKLSAJCWlmIChydW51c2VyZGlyX3MgJiYgKHdheWxhbmRfZGlzcGxheSB8fCBwaXBl d2lyZV9zb2NrZXQpKSB7Ci0gCQkJaWYgKHdheWxhbmRfZGlzcGxheSAmJgotLQkJCSAgICBzZXVu c2hhcmVfbW91bnRfZmlsZShmZF9ydW50aW1lX2RpciwKLSsJCQkJc2V1bnNoYXJlX21vdW50X2Zp bGUodWlkLCBmZF9ydW50aW1lX2RpciwKLSAJCQkJCSAgICB3YXlsYW5kX2Rpc3BsYXksCi0gCQkJ CQkgICAgZmRfcnVudXNlcmRpcl9zLAotIAkJCQkJICAgIHdheWxhbmRfZGlzcGxheSkgPT0gLTEp Ci0gCQkJCQlnb3RvIGNoaWxkZXJyOwotIAotIAkJCWlmIChwaXBld2lyZV9zb2NrZXQgJiYKLS0J CQkgICAgc2V1bnNoYXJlX21vdW50X2ZpbGUoZmRfcnVudGltZV9kaXIsCi0rCQkJCXNldW5zaGFy ZV9tb3VudF9maWxlKHVpZCwgZmRfcnVudGltZV9kaXIsCi0gCQkJCQkgICAgInBpcGV3aXJlLTAi LAotIAkJCQkJICAgIGZkX3J1bnVzZXJkaXJfcywKLSAJCQkJCSAgICBwaXBld2lyZV9zb2NrZXQp ID09IC0xKQotLS0gCi0yLjU0LjAKLQoKZGlmZiAtLWdpdCBhLzAwMjMtc2FuZGJveC1zZXVuc2hh cmUtZml4LWZkX3RtcGRpcl9yLWNoZWNrLnBhdGNoIGIvMDAyMy1zYW5kYm94LXNldW5zaGFyZS1m aXgtZmRfdG1wZGlyX3ItY2hlY2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGYxNGM0YTIuLjAwMDAwMDAKLS0tIGEvMDAyMy1zYW5kYm94LXNldW5zaGFyZS1maXgtZmRfdG1w ZGlyX3ItY2hlY2sucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1Gcm9tIGQ5 OWI1YTMxM2EyNzkwYjFjYTcwMzAyMzExMmY1NDhjYmU2NTYxN2EgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWls LmNvbT4KLURhdGU6IFR1ZSwgMTkgTWF5IDIwMjYgMDg6MTM6NDAgLTA0MDAKLVN1YmplY3Q6IFtQ QVRDSF0gc2FuZGJveC9zZXVuc2hhcmU6IGZpeCBmZF90bXBkaXJfciBjaGVjawotQ29udGVudC10 eXBlOiB0ZXh0L3BsYWluCi0KLUNoZWNrIGZkX3RtcGRpcl9yIG5vdCBmZCBmb3IgYSBmYWlsZWQg cGluX2RpcigpIGhlcmUuCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhl bi5zbWFsbGV5LndvcmtAZ21haWwuY29tPgotLS0tCi0gc2FuZGJveC9zZXVuc2hhcmUuYyB8IDIg Ky0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlm ZiAtLWdpdCBhL3NhbmRib3gvc2V1bnNoYXJlLmMgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1pbmRl eCAzYWZlMTU1NGFlNTYuLjdhNDIzM2ZiZWUwMCAxMDA2NDQKLS0tLSBhL3NhbmRib3gvc2V1bnNo YXJlLmMKLSsrKyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLUBAIC0xMDM0LDcgKzEwMzQsNyBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAJCSAqLwotIAkJaWYgKHRtcGRpcl9y KSB7Ci0gCQkJZmRfdG1wZGlyX3IgPSBwaW5fZGlyKHRtcGRpcl9yLCAmc2IpOwotLQkJCWlmIChm ZCA8IDApCi0rCQkJaWYgKGZkX3RtcGRpcl9yIDwgMCkKLSAJCQkJZ290byBjaGlsZGVycjsKLSAJ CQkvKgotIAkJCSAqIHRtcGRpcl9yIGNoZWNrcyBkaWZmZXIgaW4gdGhhdCBpdCBpcwotLS0gCi0y LjU0LjAKLQoKZGlmZiAtLWdpdCBhL2NoYW5nZWxvZyBiL2NoYW5nZWxvZwppbmRleCBjYzY0MmM2 Li4xY2M5NzQ2IDEwMDY0NAotLS0gYS9jaGFuZ2Vsb2cKKysrIGIvY2hhbmdlbG9nCkBAIC0xLDMg KzEsOSBAQAorKiBXZWQgSnVsIDAxIDIwMjYgUGV0ciBMYXV0cmJhY2ggPGxhdXRyYmFjaEByZWRo YXQuY29tPiAtIDMuMTEtMQorLSBTRUxpbnV4IHVzZXJzcGFjZSAzLjExIHJlbGVhc2UKKworKiBX ZWQgSnVuIDAzIDIwMjYgUHl0aG9uIE1haW50IDxweXRob24tbWFpbnRAcmVkaGF0LmNvbT4KKy0g UmVidWlsdCBmb3IgUHl0aG9uIDMuMTUKKwogKiBNb24gTWF5IDI1IDIwMjYgUGV0ciBMYXV0cmJh Y2ggPGxhdXRyYmFjaEByZWRoYXQuY29tPiAtIDMuMTAtNAogLSBTZXZlcmFsIHNhbmRib3ggYW5k IHNldW5zaGFyZSBzZWN1cml0eSBpbXByb3ZlbWVudHMKIAoKZGlmZiAtLWdpdCBhL3BvbGljeWNv cmV1dGlscy5zcGVjIGIvcG9saWN5Y29yZXV0aWxzLnNwZWMKaW5kZXggNGFlOTI2NC4uZGM4MWU0 NSAxMDA2NDQKLS0tIGEvcG9saWN5Y29yZXV0aWxzLnNwZWMKKysrIGIvcG9saWN5Y29yZXV0aWxz LnNwZWMKQEAgLTEsNyArMSw3IEBACiAlZ2xvYmFsIGxpYmF1ZGl0dmVyICAgICA0LjAKLSVnbG9i YWwgbGlic2Vwb2x2ZXIgICAgIDMuMTAtMQotJWdsb2JhbCBsaWJzZW1hbmFnZXZlciAgMy4xMC0x Ci0lZ2xvYmFsIGxpYnNlbGludXh2ZXIgICAzLjEwLTEKKyVnbG9iYWwgbGlic2Vwb2x2ZXIgICAg IDMuMTEtMQorJWdsb2JhbCBsaWJzZW1hbmFnZXZlciAgMy4xMS0xCislZ2xvYmFsIGxpYnNlbGlu dXh2ZXIgICAzLjExLTEKIAogJWdsb2JhbCBnZW5lcmF0b3JzZGlyICV7X3ByZWZpeH0vbGliL3N5 c3RlbWQvc3lzdGVtLWdlbmVyYXRvcnMKIApAQCAtMTAsMTMgKzEwLDEzIEBACiAKIFN1bW1hcnk6 IFNFTGludXggcG9saWN5IGNvcmUgdXRpbGl0aWVzCiBOYW1lOiAgICBwb2xpY3ljb3JldXRpbHMK LVZlcnNpb246IDMuMTAKLVJlbGVhc2U6IDUlez9kaXN0fQorVmVyc2lvbjogMy4xMQorUmVsZWFz ZTogMSV7P2Rpc3R9CiBMaWNlbnNlOiBHUEwtMi4wLW9yLWxhdGVyCiAjIGh0dHBzOi8vZ2l0aHVi LmNvbS9TRUxpbnV4UHJvamVjdC9zZWxpbnV4L3dpa2kvUmVsZWFzZXMKIFNvdXJjZTA6IGh0dHBz Oi8vZ2l0aHViLmNvbS9TRUxpbnV4UHJvamVjdC9zZWxpbnV4L3JlbGVhc2VzL2Rvd25sb2FkLyV7 dmVyc2lvbn0vc2VsaW51eC0le3ZlcnNpb259LnRhci5negogU291cmNlMTogaHR0cHM6Ly9naXRo dWIuY29tL1NFTGludXhQcm9qZWN0L3NlbGludXgvcmVsZWFzZXMvZG93bmxvYWQvJXt2ZXJzaW9u fS9zZWxpbnV4LSV7dmVyc2lvbn0udGFyLmd6LmFzYwotU291cmNlMjogaHR0cHM6Ly9naXRodWIu Y29tL3BlcmZpbmlvbi5ncGcKK1NvdXJjZTI6IGh0dHBzOi8vZ2l0aHViLmNvbS9iYWNocmFkc3Vz aS5ncGcKIFNvdXJjZTM6IGNoYW5nZWxvZwogU291cmNlNDogbWFjcm9zCiBVUkw6ICAgICBodHRw czovL2dpdGh1Yi5jb20vU0VMaW51eFByb2plY3Qvc2VsaW51eApAQCAtMzcsNyArMzcsNyBAQCBT b3VyY2UyMjogc2VsaW51eC1ndWkuemlwCiAjIHdsYyAtLWtleSA8YXBpa2V5PiAtLXVybCBodHRw czovL3RyYW5zbGF0ZS5mZWRvcmFwcm9qZWN0Lm9yZy9hcGkvIGRvd25sb2FkIHNlbGludXgvc2Fu ZGJveCAtLW91dHB1dCAuLwogU291cmNlMjM6IHNlbGludXgtc2FuZGJveC56aXAKICMgaHR0cHM6 Ly9naXRodWIuY29tL2ZlZG9yYS1zZWxpbnV4L3NlbGludXgKLSMgJCBnaXQgZm9ybWF0LXBhdGNo IC1OIDMuMTAgLS0gcG9saWN5Y29yZXV0aWxzIHB5dGhvbiBndWkgc2FuZGJveCBkYnVzIHNlbW9k dWxlLXV0aWxzIHJlc3RvcmVjb25kCisjICQgZ2l0IGZvcm1hdC1wYXRjaCAtTiAzLjExIC0tIHBv bGljeWNvcmV1dGlscyBweXRob24gZ3VpIHNhbmRib3ggZGJ1cyBzZW1vZHVsZS11dGlscyByZXN0 b3JlY29uZAogIyAkIGZvciBqIGluIFswLTldKi5wYXRjaDsgZG8gcHJpbnRmICJQYXRjaCVzOiAl c1xuIiAke2ovLSovfSAkajsgZG9uZQogIyBQYXRjaCBsaXN0IHN0YXJ0CiBQYXRjaDAwMDE6IDAw MDEtRG9uLXQtYmUtdmVyYm9zZS1pZi15b3UtYXJlLW5vdC1vbi1hLXR0eS5wYXRjaApAQCAtNDYs MjMgKzQ2LDYgQEAgUGF0Y2gwMDAzOiAwMDAzLXNhbmRib3gtVXNlLW1hdGNoYm94LXdpbmRvdy1t YW5hZ2VyLWluc3RlYWQtb2Ytb3BlbmIucGF0Y2gKIFBhdGNoMDAwNDogMDAwNC1Vc2UtU0hBLTIt aW5zdGVhZC1vZi1TSEEtMS5wYXRjaAogUGF0Y2gwMDA1OiAwMDA1LXB5dGhvbi1zZXBvbGljeS1G aXgtc3BlYy1maWxlLWRlcGVuZGVuY2llcy5wYXRjaAogUGF0Y2gwMDA2OiAwMDA2LXNlcG9saWN5 LUZpeC1kZXRlY3Rpb24tb2Ytd3JpdGVhYmxlLWxvY2F0aW9ucy5wYXRjaAotUGF0Y2gwMDA3OiAw MDA3LXJlc3RvcmVjb25kLUFkZC1GLWZvci1ydW4taW4tZm9yZWdyb3VuZC5wYXRjaAotUGF0Y2gw MDA4OiAwMDA4LXJlc3RvcmVjb25kLnNlcnZpY2UtVXNlLVR5cGUtc2ltcGxlLnBhdGNoCi1QYXRj aDAwMDk6IDAwMDktc2V1bnNoYXJlLWd1YXJkLWZhbGxpYmxlLWZ1bmN0aW9uLWNhbGxzLWJ5LWNo ZWNraW5nLS5wYXRjaAotUGF0Y2gwMDEwOiAwMDEwLXNhbmRib3gtc2V1bnNoYXJlLXBhc3MtT19O T0ZPTExPVy10by1vcGVuYXQucGF0Y2gKLVBhdGNoMDAxMTogMDAxMS1zYW5kYm94LXNldW5zaGFy ZS1zd2l0Y2gtc2V1bnNoYXJlX21vdW50X2ZpbGUtdG8tdXNlLnBhdGNoCi1QYXRjaDAwMTI6IDAw MTItc2FuZGJveC1zZXVuc2hhcmUtZml4LWVycm9yLWNoZWNraW5nLWZvci1zZXRmc3VpZC5wYXRj aAotUGF0Y2gwMDEzOiAwMDEzLXNhbmRib3gtc2V1bnNoYXJlLXJlbW91bnQtdG1wLWFuZC12YXIt dG1wLXdpdGgtdGhlLXAucGF0Y2gKLVBhdGNoMDAxNDogMDAxNC1zYW5kYm94LXNldW5zaGFyZS1w cmV2ZW50LXJzeW5jLWZyb20taW50ZXJwcmV0aW5nLXBhLnBhdGNoCi1QYXRjaDAwMTU6IDAwMTUt c2FuZGJveC1zZXVuc2hhcmUtZml4LWdldG9wdC1mbGFncy5wYXRjaAotUGF0Y2gwMDE2OiAwMDE2 LXNhbmRib3gtc2V1bnNoYXJlLXByZXZlbnQtcGF0aC10cmF2ZXJzYWwtdmlhLVctUC5wYXRjaAot UGF0Y2gwMDE3OiAwMDE3LXNhbmRib3gtc2V1bnNoYXJlLXZlcmlmeS1SVU5USU1FX0RJUi1iZWZv cmUtdXNlLnBhdGNoCi1QYXRjaDAwMTg6IDAwMTgtc2FuZGJveC1zZXVuc2hhcmUtZHJvcC11bnVz ZWQtcnVudXNlcmRpcl9yLnBhdGNoCi1QYXRjaDAwMTk6IDAwMTktc2FuZGJveC1zZXVuc2hhcmUt Zml4LWtpbGxhbGwtcmVhbGxvYy1hbmQtbWlzc2luZy10eS5wYXRjaAotUGF0Y2gwMDIwOiAwMDIw LXNhbmRib3gtc2V1bnNoYXJlLXJld3JpdGUtdG8tcGluLWRpcmVjdG9yaWVzLWJlZm9yZS0ucGF0 Y2gKLVBhdGNoMDAyMTogMDAyMS1zYW5kYm94LXNldW5zaGFyZS1mdWxseS1jaGVjay1zZXRmc3Vp ZC1jYWxscy5wYXRjaAotUGF0Y2gwMDIyOiAwMDIyLXNhbmRib3gtc2V1bnNoYXJlLWNoZWNrLW93 bmVyLWluLXNldW5zaGFyZV9tb3VudF9maWwucGF0Y2gKLVBhdGNoMDAyMzogMDAyMy1zYW5kYm94 LXNldW5zaGFyZS1maXgtZmRfdG1wZGlyX3ItY2hlY2sucGF0Y2gKICMgUGF0Y2ggbGlzdCBlbmQK IAogIyBnZW5fY2hhbmdlbG9nCkBAIC00ODEsNyArNDY0LDQgQEAgVGhlIHBvbGljeWNvcmV1dGls cy1yZXN0b3JlY29uZCBwYWNrYWdlIGNvbnRhaW5zIHRoZSByZXN0b3JlY29uZCBzZXJ2aWNlLgog JXN5c3RlbWRfcG9zdHVuX3dpdGhfcmVzdGFydCByZXN0b3JlY29uZC5zZXJ2aWNlCiAKICVjaGFu Z2Vsb2cKLSogV2VkIEp1biAwMyAyMDI2IFB5dGhvbiBNYWludCA8cHl0aG9uLW1haW50QHJlZGhh dC5jb20+Ci0tIFJlYnVpbHQgZm9yIFB5dGhvbiAzLjE1Ci0KICVhZGRfY2hhbmdlbG9nICVTT1VS Q0UzCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggNTU3NTJlYi4uNjE3NTg3 MSAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0yLDUgKzIsNSBAQCBTSEE1 MTIgKHNlbGludXgtcG9saWN5Y29yZXV0aWxzLnppcCkgPSAwZGY5ZGMyNzRlMGQxYTJlNGUyNDY3 Zjk1YTE4YTViZjdiNmRlMjQyOAogU0hBNTEyIChzZWxpbnV4LXB5dGhvbi56aXApID0gMzVkMjA5 ZjhiY2ZmNDk4ZjY2NDY1NDk5ZmNjNGNlZjA3ODA3ODEyNzZhNGJhMDYwYjJkMWQ1NmVlZDFkZDcy ZDI1M2Y2YjBlYWU1ZjY3OWQ0NmNmNDI2Yjk2N2E3YWFkYWM5MDkzNjM1MTNiZTVkNDgzYzk1YTMx MjQ5ZWFjZGQKIFNIQTUxMiAoc2VsaW51eC1zYW5kYm94LnppcCkgPSBlY2JjMGM4MjgwZWI2YzAx M2IwMzlhMmU2M2VlNWEzNjFjZDg0ODA3NjEzOTYyYTAxMmFjMGE5ODA5MjM1N2U5ODA5YmVhMjNj M2M3MWJkOGFlNDc0NWIxZGQxMmE0ZmNlNDNkYjVlMWNhYjMxNjE0ZjM4NmEyYThkYjg4YjczMwog U0hBNTEyIChzZWxpbnV4LWd1aS56aXApID0gM2FlNDFlYmE1ZGQ2ZDM0ZTEwZGZkYjk3ZjQxOTRk MTcwYWNlMmYzMDQ0ZTk4NDA3N2RiN2QyNmQwNWJkYWFkODY2MjVlNDhlNTY5NGUzZTg2ODA0ODdh ZDk5YTUwODYxZDRiZWEzMGM0YmYwOGUyODIwZTNiN2E4NjcxMjcwYzcKLVNIQTUxMiAoc2VsaW51 eC0zLjEwLnRhci5neikgPSA0MGFkYTg1NzA5YWQyM2MzNjg1NzliYzY2MTY2MWFjNzdmNGFkYTZk OWE2NTI0M2JjMjVkZThlNDYyMDJiYWVkMjY0ZDFiNDlkZTE3NjVkNWRkMjFlYmM4ZDk0ZDg3MmI4 NmQyYjBlN2I1NmE3MjY5ZjE5NDJkNjA5ZmY3Mjc4ZQotU0hBNTEyIChzZWxpbnV4LTMuMTAudGFy Lmd6LmFzYykgPSA1ZWZhZWNiOTdiZTJkYTQzNWM3ZWNlODhlMjEzZGQ3NTNhNGM2ZWU2ZjZhMjcy NmYyNWI4MmIwZTMwYzc3YTUxMzZlZmI1OTNmYjk1OTBjMDM5NWYwYzYzZTk1MzZhYmY0MDdkY2Vj OTViM2Q2MjAyN2RlZmJlYWZhYTVkNGI5MQorU0hBNTEyIChzZWxpbnV4LTMuMTEudGFyLmd6KSA9 IDY3YTQ2MGUwZWU4YzY1MmVlODhiMWRlZmI1NmFlMmNiOWQ0NmM0NWEzYTkyZDRhZGQ2MzFjYjcw NzMzNzdhODQ2ZjMxOTAxYThmYTY1OWE2NjRlN2MzMTkwNTMxZjU4ZDc3NGM5OTMyMWQ3ODcwYjU0 MmE5OWUwMzNhMTZkZjMyCitTSEE1MTIgKHNlbGludXgtMy4xMS50YXIuZ3ouYXNjKSA9IDg2NmFj ZGMzNWZmMmU2NDUwY2VmZTFhNTM1MGM1MzdhYTU4NzdjMWVlNmMzOWI5ODVlM2JmZGU4ZjEyNTU4 YjlkZjg5MDQ1MGNlMzRiODQ2MzU5MGFiZTU0MDMzMDUyNDc0MjY3NDUzZDY4MjA2NzVmOWIxZDBl MzZkZDQzZmNmCg==