From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id 667422585D for ; Thu, 7 Mar 2024 22:26:28 +0100 (CET) Content-Type: multipart/mixed; boundary="===============2802522369604943511==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_webrtc-audio-processing=3A_update_to_1=2E3=3B_revbump_dependents?= To: ml@inbox.vuxu.org From: cinerea0 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 07 Mar 2024 22:26:28 +0100 List-Id: Message-Id: <20240307212628.667422585D@inbox.vuxu.org> GitHub notification mails are now in MIME to allow UTF8. --===============2802522369604943511== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgY2luZXJlYTAgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2Np bmVyZWEwL3ZvaWQtcGFja2FnZXMgd2VicnRjCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC80ODkwMgoKd2VicnRjLWF1ZGlvLXByb2Nlc3Npbmc6IHVwZGF0 ZSB0byAxLjM7IHJldmJ1bXAgZGVwZW5kZW50cwojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0g SSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipZRVMqKg0KDQotLS0NCg0KQGFoZXNm b3JkIEFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIG5lZ2F0aXZlIGNvbnNlcXVlbmNlcyBvZiBmb3Jj aW5nIGFic2VpbCB0byB1c2UgQysrMTcgeW91IGNhbiB0aGluayBvZj8KCkEgcGF0Y2ggZmlsZSBm cm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80ODkw Mi5wYXRjaCBpcyBhdHRhY2hlZA== --===============2802522369604943511== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-webrtc-48902.patch" RnJvbSAzZjVjM2FkODc5ZGI0OWFkYjdlNWMyNTczZDk5MmRhM2E5NjVjNWEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBjaW5lcmVhMCA8Y2luZXJlYTBAZGlzcm9vdC5vcmc+CkRhdGU6 IFRodSwgNyBNYXIgMjAyNCAxMDozMzoyNSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMS82XSBhYnNl aWwtY3BwOiB1c2UgQysrMTcKCi0tLQogc3JjcGtncy9hYnNlaWwtY3BwL3RlbXBsYXRlIHwgNSAr KystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Fic2VpbC1jcHAvdGVtcGxhdGUgYi9zcmNwa2dzL2Fic2VpbC1j cHAvdGVtcGxhdGUKaW5kZXggNzkwOWI1ZTE5ZTBhYTkuLmIxOWM0NDRhMWZlNGYxIDEwMDY0NAot LS0gYS9zcmNwa2dzL2Fic2VpbC1jcHAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hYnNlaWwtY3Bw L3RlbXBsYXRlCkBAIC0xLDkgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Fic2VpbC1j cHAnCiBwa2duYW1lPWFic2VpbC1jcHAKIHZlcnNpb249MjAyNDAxMTYuMQotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1NI QVJFRF9MSUJTPU9OIC1EQUJTTF9QUk9QQUdBVEVfQ1hYX1NURD1PTiIKK2NvbmZpZ3VyZV9hcmdz PSItREJVSUxEX1NIQVJFRF9MSUJTPU9OIC1EQUJTTF9QUk9QQUdBVEVfQ1hYX1NURD1PTgorIC1E Q01BS0VfQ1hYX1NUQU5EQVJEPTE3IgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgogc2hv cnRfZGVzYz0iQWJzZWlsIGNvbW1vbiBsaWJyYXJpZXMiCiBtYWludGFpbmVyPSJBbmRyZXcgSi4g SGVzZm9yZCA8YWpoQHNpZGViYW5kLm9yZz4iCgpGcm9tIDA5MzhmMDNjOGJlNzIxOGQ5NzFiNTcx MmZmODZhYzIwMjkyYTExZjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNpbmVyZWEw IDxjaW5lcmVhMEBkaXNyb290Lm9yZz4KRGF0ZTogVGh1LCA3IE1hciAyMDI0IDEwOjMzOjUyIC0w NTAwClN1YmplY3Q6IFtQQVRDSCAyLzZdIHdlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nOiB1cGRhdGUg dG8gMS4zCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMyArLQogLi4ueXRlLW9yZGVyLWFuZC1wb2ludGVyLXNpemUtZGV0ZWN0aW9uLnBhdGNo IHwgIDI0ICsrLS0KIC4uLi9wYXRjaGVzL2k2ODYtbm8tc3NlLnBhdGNoICAgICAgICAgICAgICAg ICB8ICAxNSArKysKIC4uLi9wYXRjaGVzL21pcHMucGF0Y2ggICAgICAgICAgICAgICAgICAgICAg ICB8IDExMyAtLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9wYXRjaGVzL211c2wucGF0Y2ggICAgICAg ICAgICAgICAgICAgICAgICB8ICA1MSArKysrKy0tLQogc3JjcGtncy93ZWJydGMtYXVkaW8tcHJv Y2Vzc2luZy90ZW1wbGF0ZSAgICAgIHwgIDMxICsrLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDc0IGlu c2VydGlvbnMoKyksIDE2MyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3BhdGNoZXMvaTY4Ni1uby1zc2UucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3BhdGNoZXMvbWlw cy5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4 IDliY2YwYzU3NTZiOGZkLi5lYTkyZmEwNzVmNzFmNSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGli cworKysgYi9jb21tb24vc2hsaWJzCkBAIC0xMDU3LDcgKzEwNTcsOCBAQCBsaWJpcHRjZGF0YS5z by4wIGxpYmlwdGNkYXRhLTEuMC40XzEKIGxpYnV0ZW1wdGVyLnNvLjAgbGlidXRlbXB0ZXItMS4x LjVfMQogbGlieGF0cmFja2VyLnNvLjIgbGlieGF0cmFja2VyLTEwLjAuMF8yCiBsaWJ0dW1ibGVy LTEuc28uMCB0dW1ibGVyLTQuOS4yXzEKLWxpYndlYnJ0Y19hdWRpb19wcm9jZXNzaW5nLnNvLjEg d2VicnRjLWF1ZGlvLXByb2Nlc3NpbmctMC4zXzEKK2xpYndlYnJ0Yy1hdWRpby1jb2RpbmctMS5z by4zIHdlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nLTEuM18xCitsaWJ3ZWJydGMtYXVkaW8tcHJvY2Vz c2luZy0xLnNvLjMgd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmctMS4zXzEKIGxpYmN1cHNtaW1lLnNv LjEgbGliY3Vwcy0xLjUuM18xCiBsaWJjdXBzcHBkYy5zby4xIGxpYmN1cHMtMS41LjNfMQogbGli Y3Vwc2NnaS5zby4xIGxpYmN1cHMtMS41LjNfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy93ZWJydGMt YXVkaW8tcHJvY2Vzc2luZy9wYXRjaGVzL0FkZC1nZW5lcmljLWJ5dGUtb3JkZXItYW5kLXBvaW50 ZXItc2l6ZS1kZXRlY3Rpb24ucGF0Y2ggYi9zcmNwa2dzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5n L3BhdGNoZXMvQWRkLWdlbmVyaWMtYnl0ZS1vcmRlci1hbmQtcG9pbnRlci1zaXplLWRldGVjdGlv bi5wYXRjaAppbmRleCAxMzM4Nzg0ZTY5ZWY4OC4uMjhmMWRiZGNkODY4NDQgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3Mvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9BZGQtZ2VuZXJpYy1ieXRl LW9yZGVyLWFuZC1wb2ludGVyLXNpemUtZGV0ZWN0aW9uLnBhdGNoCisrKyBiL3NyY3BrZ3Mvd2Vi cnRjLWF1ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9BZGQtZ2VuZXJpYy1ieXRlLW9yZGVyLWFuZC1w b2ludGVyLXNpemUtZGV0ZWN0aW9uLnBhdGNoCkBAIC0xLDIwICsxLDIwIEBACi1Gcm9tOiBUaGFu IDx0aGFuQHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDggSnVuIDIwMTYgMTk6MTA6MDggLTA0MDAK LVN1YmplY3Q6IEFkZCBnZW5lcmljIGJ5dGUgb3JkZXIgYW5kIHBvaW50ZXIgc2l6ZSBkZXRlY3Rp b24KK1Rha2VuIGZyb20gaHR0cHM6Ly9naXR3ZWIuZ2VudG9vLm9yZy9yZXBvL2dlbnRvby5naXQv dHJlZS9tZWRpYS1saWJzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL2ZpbGVzL3dlYnJ0Yy1hdWRp by1wcm9jZXNzaW5nLTEuMy1BZGQtZ2VuZXJpYy1ieXRlLW9yZGVyLWFuZC1wb2ludGVyLXNpemUt ZGV0ZWN0aW9uLnBhdGNoP2lkPTI5Y2QwZTYyMmI1NzRkZjZhZGZmNTcwNGFiNGUyMjA3MDk2MTk3 NjcKK2h0dHBzOi8vYnVncy5nZW50b28ub3JnLzkxNzQ5MworaHR0cHM6Ly9zb3VyY2VzLmRlYmlh bi5vcmcvc3JjL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nLzEuMC0wLjIvZGViaWFuL3BhdGNoZXMv QWRkLWdlbmVyaWMtYnl0ZS1vcmRlci1hbmQtcG9pbnRlci1zaXplLWRldGVjdGlvbi5wYXRjaC8K IAorRGVzY3JpcHRpb246IEFkZCBnZW5lcmljIGJ5dGUgb3JkZXIgYW5kIHBvaW50ZXIgc2l6ZSBk ZXRlY3Rpb24KK0F1dGhvcjogVGhhbiA8dGhhbkByZWRoYXQuY29tPgorT3JpZ2luOiBodHRwczov L2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05NTczOCNjNAorTGFzdC1VcGRh dGU6IDIwMjItMDItMDEKIC0tLQotIHdlYnJ0Yy90eXBlZGVmcy5oIHwgMTQgKysrKysrKysrKysr Ky0KLSAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1k aWZmIC0tZ2l0IGEvd2VicnRjL3R5cGVkZWZzLmggYi93ZWJydGMvdHlwZWRlZnMuaAotaW5kZXgg ZDg3NTQ5MC4uZGMwNzRmMSAxMDA2NDQKLS0tLSBhL3dlYnJ0Yy90eXBlZGVmcy5oCi0rKysgYi93 ZWJydGMvdHlwZWRlZnMuaAotQEAgLTQ4LDcgKzQ4LDE5IEBACitUaGlzIHBhdGNoIGhlYWRlciBm b2xsb3dzIERFUC0zOiBodHRwOi8vZGVwLmRlYmlhbi5uZXQvZGVwcy9kZXAzLworLS0tIGEvd2Vi cnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgKKysrKyBiL3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0v YXJjaC5oCitAQCAtNTgsNyArNTgsMTkgQEAKICAjZGVmaW5lIFdFQlJUQ19BUkNIXzMyX0JJVFMK ICAjZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4KICAjZWxzZQotLSNlcnJvciBQbGVh c2UgYWRkIHN1cHBvcnQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlIGluIHR5cGVkZWZzLmgKKy0jZXJy b3IgUGxlYXNlIGFkZCBzdXBwb3J0IGZvciB5b3VyIGFyY2hpdGVjdHVyZSBpbiBydGNfYmFzZS9z eXN0ZW0vYXJjaC5oCiArLyogaW5zdGVhZCBvZiBmYWlsaW5nLCB1c2UgdHlwaWNhbCB1bml4IGRl ZmluZXMuLi4gKi8KICsjaWYgX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFO X18KICsjZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4KZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9pNjg2LW5vLXNzZS5wYXRjaCBiL3Ny Y3BrZ3Mvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9pNjg2LW5vLXNzZS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uZGUxNDVhZjIwODMxMjIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3BhdGNo ZXMvaTY4Ni1uby1zc2UucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorVGFrZW4gZnJvbSBodHRwczov L2dpdHdlYi5nZW50b28ub3JnL3JlcG8vZ2VudG9vLmdpdC90cmVlL21lZGlhLWxpYnMvd2VicnRj LWF1ZGlvLXByb2Nlc3NpbmcvZmlsZXMvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmctMS4zLXg4Ni1u by1zc2UucGF0Y2g/aWQ9MjljZDBlNjIyYjU3NGRmNmFkZmY1NzA0YWI0ZTIyMDcwOTYxOTc2Nwor aHR0cHM6Ly9idWdzLmdlbnRvby5vcmcvOTIxMTQwCitodHRwczovL2dpdGxhYi5mcmVlZGVza3Rv cC5vcmcvcHVsc2VhdWRpby93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy8tL2lzc3Vlcy81CistLS0g YS93ZWJydGMvcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAorKysrIGIvd2VicnRjL3J0Y19iYXNlL3N5 c3RlbS9hcmNoLmgKK0BAIC0zNCw3ICszNCw3IEBACisgI2Vsc2UKKyAjZGVmaW5lIFdFQlJUQ19B UkNIXzMyX0JJVFMKKyAjZW5kaWYKKy0jZWxpZiBkZWZpbmVkKF9NX0lYODYpIHx8IGRlZmluZWQo X19pMzg2X18pCisrI2VsaWYgZGVmaW5lZChfX1NTRV9fKSAmJiAoZGVmaW5lZChfTV9JWDg2KSB8 fCBkZWZpbmVkKF9faTM4Nl9fKSkKKyAjZGVmaW5lIFdFQlJUQ19BUkNIX1g4Nl9GQU1JTFkKKyAj ZGVmaW5lIFdFQlJUQ19BUkNIX1g4NgorICNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklUUworCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3BhdGNoZXMvbWlwcy5w YXRjaCBiL3NyY3BrZ3Mvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9taXBzLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTlhYWYzOTIyMDgyOS4uMDAwMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy9wYXRjaGVzL21pcHMu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTMgKzAsMCBAQAotLS0tIHdlYnJ0Yy1hdWRpby1w cm9jZXNzaW5nLTAuM18zL2NvbmZpZ3VyZS5hYwkyMDE3LTExLTIyIDIwOjI2OjU0LjIwNzAwOTg4 MSArMDEwMAotKysrIHdlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nLTAuM18zL2NvbmZpZ3VyZS5hYwky MDE3LTExLTIyIDIwOjM3OjU3LjQ3Mjk5NjUyMSArMDEwMAotQEAgLTkwLDEwICs5MCwxNCBAQAot IAlbSEFWRV9ORU9OPTE7IEFSQ0hfQ0ZMQUdTPSIke0FSQ0hfQ0ZMQUdTfSAtRFdFQlJUQ19IQVNf TkVPTiAtRFdFQlJUQ19BUkNIX0FSTTY0Il0pCi0gQUNfQ0hFQ0tfREVDTFMoW19faTM4Nl9fXSwg W0hBVkVfWDg2PTFdKQotIEFDX0NIRUNLX0RFQ0xTKFtfX3g4Nl82NF9fXSwgW0hBVkVfWDg2PTFd KQotK0FDX0NIRUNLX0RFQ0xTKFtfX01JUFNFQl9fXSwgW0hBVkVfTUlQU0VCPTFdKQotK0FDX0NI RUNLX0RFQ0xTKFtfX01JUFNFTF9fXSwgW0hBVkVfTUlQU0VMPTFdKQotIAotIEFNX0NPTkRJVElP TkFMKEhBVkVfWDg2LCBbdGVzdCAieCR7SEFWRV9YODZ9IiA9ICJ4MSJdKQotIEFNX0NPTkRJVElP TkFMKEhBVkVfQVJNLCBbdGVzdCAieCR7SEFWRV9BUk19IiA9ICJ4MSJdKQotIEFNX0NPTkRJVElP TkFMKEhBVkVfQVJNVjcsIFt0ZXN0ICJ4JHtIQVZFX0FSTVY3fSIgPSAieDEiXSkKLStBTV9DT05E SVRJT05BTChIQVZFX01JUFNFQiwgW3Rlc3QgIngke0hBVkVfTUlQU0VCfSIgPSAieDEiXSkKLStB TV9DT05ESVRJT05BTChIQVZFX01JUFNFTCwgW3Rlc3QgIngke0hBVkVfTUlQU0VMfSIgPSAieDEi XSkKLSAKLSAjIEJvcnJvd2VkIGZyb20gcHVsc2VhdWRpbydzIGNvbmZpZ3VyZS5hYwotIEFDX0FS R19FTkFCTEUoW25lb25dLAotLS0tIHdlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nLTAuM18zL3dlYnJ0 Yy90eXBlZGVmcy5oCTIwMTUtMTAtMTUgMTI6NDg6MjUuMDAwMDAwMDAwICswMjAwCi0rKysgd2Vi cnRjLWF1ZGlvLXByb2Nlc3NpbmctMC4zXzMvd2VicnRjL3R5cGVkZWZzLmgJMjAxNy0xMS0yMiAy MDozOToyMC44MDA5OTQ4NDMgKzAxMDAKLUBAIC00Nyw2ICs0NywxMCBAQAotICNlbGlmIGRlZmlu ZWQoX19wbmFjbF9fKQotICNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklUUwotICNkZWZpbmUgV0VC UlRDX0FSQ0hfTElUVExFX0VORElBTgotKyNlbGlmIGRlZmluZWQoX19NSVBTRUxfXykKLSsjZGVm aW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4KLSsjZWxpZiBkZWZpbmVkKF9fTUlQU0VCX18p Ci0rI2RlZmluZSBXRUJSVENfQVJDSF9CSUdfRU5ESUFOCi0gI2Vsc2UKLSAjZXJyb3IgUGxlYXNl IGFkZCBzdXBwb3J0IGZvciB5b3VyIGFyY2hpdGVjdHVyZSBpbiB0eXBlZGVmcy5oCi0gI2VuZGlm Ci0tLS0gd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmctMC4zL3dlYnJ0Yy9jb21tb25fYXVkaW8vd2F2 X2ZpbGUuY2MJMjAxNS0xMS0xOSAxMzo0MTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyB3ZWJydGMt YXVkaW8tcHJvY2Vzc2luZy0wLjMvd2VicnRjL2NvbW1vbl9hdWRpby93YXZfZmlsZS5jYwkyMDE3 LTExLTIyIDIxOjAxOjQ2LjU1NDk2NzczNyArMDEwMAotQEAgLTY0LDkgKzY0LDYgQEAKLSB9Ci0g Ci0gc2l6ZV90IFdhdlJlYWRlcjo6UmVhZFNhbXBsZXMoc2l6ZV90IG51bV9zYW1wbGVzLCBpbnQx Nl90KiBzYW1wbGVzKSB7Ci0tI2lmbmRlZiBXRUJSVENfQVJDSF9MSVRUTEVfRU5ESUFOCi0tI2Vy cm9yICJOZWVkIHRvIGNvbnZlcnQgc2FtcGxlcyB0byBiaWctZW5kaWFuIHdoZW4gcmVhZGluZyBm cm9tIFdBViBmaWxlIgotLSNlbmRpZgotICAgLy8gVGhlcmUgY291bGQgYmUgbWV0YWRhdGEgYWZ0 ZXIgdGhlIGF1ZGlvOyBlbnN1cmUgd2UgZG9uJ3QgcmVhZCBpdC4KLSAgIG51bV9zYW1wbGVzID0g c3RkOjptaW4ocnRjOjpjaGVja2VkX2Nhc3Q8dWludDMyX3Q+KG51bV9zYW1wbGVzKSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgbnVtX3NhbXBsZXNfcmVtYWluaW5nXyk7Ci1AQCAtNzYsNiAr NzMsMTIgQEAKLSAgIFJUQ19DSEVDSyhyZWFkID09IG51bV9zYW1wbGVzIHx8IGZlb2YoZmlsZV9o YW5kbGVfKSk7Ci0gICBSVENfQ0hFQ0tfTEUocmVhZCwgbnVtX3NhbXBsZXNfcmVtYWluaW5nXyk7 Ci0gICBudW1fc2FtcGxlc19yZW1haW5pbmdfIC09IHJ0Yzo6Y2hlY2tlZF9jYXN0PHVpbnQzMl90 PihyZWFkKTsKLSsjaWZkZWYgV0VCUlRDX0FSQ0hfQklHX0VORElBTgotKyAgZm9yIChzaXplX3Qg aSA9IDA7IGkgPCByZWFkOyBpKyspIHsKLSsgICAgdWludDE2X3QgcyA9IHN0YXRpY19jYXN0PHVp bnQxNl90PihzYW1wbGVzW2ldKTsKLSsgICAgc2FtcGxlc1tpXSA9IHN0YXRpY19jYXN0PGludDE2 X3Q+KChzID4+IDgpIHwgKHMgPDwgOCkpOwotKyAgfQotKyNlbmRpZgotICAgcmV0dXJuIHJlYWQ7 Ci0gfQotIAotQEAgLTExOSwxMSArMTIyLDIwIEBACi0gfQotIAotIHZvaWQgV2F2V3JpdGVyOjpX cml0ZVNhbXBsZXMoY29uc3QgaW50MTZfdCogc2FtcGxlcywgc2l6ZV90IG51bV9zYW1wbGVzKSB7 Ci0tI2lmbmRlZiBXRUJSVENfQVJDSF9MSVRUTEVfRU5ESUFOCi0tI2Vycm9yICJOZWVkIHRvIGNv bnZlcnQgc2FtcGxlcyB0byBsaXR0bGUtZW5kaWFuIHdoZW4gd3JpdGluZyB0byBXQVYgZmlsZSIK LS0jZW5kaWYKLSsjaWZkZWYgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgotICAgY29uc3Qgc2l6 ZV90IHdyaXR0ZW4gPQotICAgICAgIGZ3cml0ZShzYW1wbGVzLCBzaXplb2YoKnNhbXBsZXMpLCBu dW1fc2FtcGxlcywgZmlsZV9oYW5kbGVfKTsKLSsjZWxzZQotKyAgc2l6ZV90IHdyaXR0ZW4gPSAw OwotKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1fc2FtcGxlczsgaSsrKSB7Ci0rICAgIHVp bnQxNl90IHMgPSBzdGF0aWNfY2FzdDx1aW50MTZfdD4oc2FtcGxlc1tpXSk7Ci0rICAgIHMgPSBz dGF0aWNfY2FzdDxpbnQxNl90Pigoczw8OCkgfCAocz4+OCkpOwotKyAgICBzaXplX3Qgc2l6ZSA9 IGZ3cml0ZSgmcywgc2l6ZW9mKHMpLCAxLCBmaWxlX2hhbmRsZV8pOwotKyAgICBpZiAoc2l6ZSA8 IDEpCi0rICAgICAgYnJlYWs7Ci0rICAgIHdyaXR0ZW4gKz0gc2l6ZTsKLSsgIH0KLSsjZW5kaWYK LSAgIFJUQ19DSEVDS19FUShudW1fc2FtcGxlcywgd3JpdHRlbik7Ci0gICBudW1fc2FtcGxlc18g Kz0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHdyaXR0ZW4pOwotICAgUlRDX0NIRUNLKHdyaXR0ZW4g PD0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpIHx8Ci0tLS0gd2VicnRjLWF1 ZGlvLXByb2Nlc3NpbmctMC4zL3dlYnJ0Yy9jb21tb25fYXVkaW8vd2F2X2hlYWRlci5jYwkyMDE1 LTEwLTE1IDEyOjQ4OjQ0LjAwMDAwMDAwMCArMDIwMAotKysrIHdlYnJ0Yy1hdWRpby1wcm9jZXNz aW5nLTAuMy93ZWJydGMvY29tbW9uX2F1ZGlvL3dhdl9oZWFkZXIuY2MJMjAxNy0xMS0yMiAyMTox MTozNi4yOTE5NTU4NTkgKzAxMDAKLUBAIC0xMjksNyArMTI5LDMwIEBACi0gICByZXR1cm4gc3Rk OjpzdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJngpLCA0KTsKLSB9Ci0gI2Vsc2UKLS0j ZXJyb3IgIldyaXRlIGJlLXRvLWxlIGNvbnZlcnNpb24gZnVuY3Rpb25zIgotK3N0YXRpYyBpbmxp bmUgdm9pZCBXcml0ZUxFMTYodWludDE2X3QqIGYsIHVpbnQxNl90IHgpIHsgKmYgPSAoeCA+PiA4 KSB8ICh4IDw8IDgpOyB9Ci0rc3RhdGljIGlubGluZSB2b2lkIFdyaXRlTEUzMih1aW50MzJfdCog ZiwgdWludDMyX3QgeCkgewotKyAgKmYgPSAoKHggJiAweGZmMDAwMDAwKSA+PiAyNCkgfAotKyAg ICAgICAoKHggJiAweDAwZmYwMDAwKSA+PiAgOCkgfAotKyAgICAgICAoKHggJiAweDAwMDBmZjAw KSA8PCAgOCkgfAotKyAgICAgICAoKHggJiAweDAwMDAwMGZmKSA8PCAyNCk7Ci0rfQotK3N0YXRp YyBpbmxpbmUgdm9pZCBXcml0ZUZvdXJDQyh1aW50MzJfdCogZiwgY2hhciBhLCBjaGFyIGIsIGNo YXIgYywgY2hhciBkKSB7Ci0rICAqZiA9IChzdGF0aWNfY2FzdDx1aW50MzJfdD4oYSkgPDwgMjQp Ci0rICAgICAgfCAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGIpIDw8IDE2KQotKyAgICAgIHwgKHN0 YXRpY19jYXN0PHVpbnQzMl90PihjKSA8PCA4KQotKyAgICAgIHwgc3RhdGljX2Nhc3Q8dWludDMy X3Q+KGQpOwotK30KLStzdGF0aWMgaW5saW5lIHVpbnQxNl90IFJlYWRMRTE2KHVpbnQxNl90IHgp IHsgcmV0dXJuICh4ID4+IDgpIHwgKHggPDwgOCk7IH0KLStzdGF0aWMgaW5saW5lIHVpbnQzMl90 IFJlYWRMRTMyKHVpbnQzMl90IHgpIHsKLSsgIHJldHVybiAoKHggPDwgMjQpICYgMHhmZjAwMDAw MCkgfAotKyAgICAgICAgICgoeCA8PCAgOCkgJiAweDAwZmYwMDAwKSB8Ci0rICAgICAgICAgKCh4 ID4+ICA4KSAmIDB4MDAwMGZmMDApIHwKLSsgICAgICAgICAoKHggPj4gMjQpICYgMHgwMDAwMDBm Zik7Ci0rfQotK3N0YXRpYyBpbmxpbmUgc3RkOjpzdHJpbmcgUmVhZEZvdXJDQyh1aW50MzJfdCB4 KSB7Ci0rICB1aW50MzJfdCBzID0gUmVhZExFMzIoeCk7Ci0rICByZXR1cm4gc3RkOjpzdHJpbmco cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJnMpLCA0KTsKLSt9Ci0gI2VuZGlmCi0gCi0gc3RhdGlj IGlubGluZSB1aW50MzJfdCBSaWZmQ2h1bmtTaXplKHVpbnQzMl90IGJ5dGVzX2luX3BheWxvYWQp IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9t dXNsLnBhdGNoIGIvc3JjcGtncy93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy9wYXRjaGVzL211c2wu cGF0Y2gKaW5kZXggYWRjYTc5YjZiNzQ4NjkuLjMzNWE0NDk2ODZiZjY1IDEwMDY0NAotLS0gYS9z cmNwa2dzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3BhdGNoZXMvbXVzbC5wYXRjaAorKysgYi9z cmNwa2dzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3BhdGNoZXMvbXVzbC5wYXRjaApAQCAtMSwy MCArMSwzMyBAQAotLS0tIGEvd2VicnRjL2Jhc2UvY2hlY2tzLmNjLm9yaWcJMjAxNi0wNi0yNSAw Nzo0NzozNC4wOTk1MTU1NDggKzAyMDAKLSsrKyBiL3dlYnJ0Yy9iYXNlL2NoZWNrcy5jYwkyMDE2 LTA2LTI1IDA3OjQ4OjI4LjU1NDEyMjQ2MyArMDIwMAotQEAgLTE2LDcgKzE2LDcgQEAKLSAjaW5j bHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RkbGliPgoraHR0cHM6Ly9naXRsYWIuZnJlZWRl c2t0b3Aub3JnL3B1bHNlYXVkaW8vd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvLS9tZXJnZV9yZXF1 ZXN0cy8zNworKHNlZSBhbHNvIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9wdWxzZWF1 ZGlvL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nLy0vbWVyZ2VfcmVxdWVzdHMvMzgpCisKK0Zyb20g ZGUxYjljNDQ0ZGYxZWQ2NmQ3MmE0YWIzZDBlNGRkMjE1MTAzNzkzNCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IE1hcmt1cyBWb2xrIDxmX2xfa0B0LW9ubGluZS5kZT4KK0RhdGU6IFRo dSwgMTQgU2VwIDIwMjMgMTY6MTI6MzIgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZmlsZV93cmFw cGVyLmg6IGFkZCBtaXNzaW5nIGluY2x1ZGUgZm9yIG11c2wKKwordGhpcyBmaXhlczoKK3wgSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC4uL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nLTEuMy93ZWJydGMv cnRjX2Jhc2Uvc3lzdGVtL2ZpbGVfd3JhcHBlci5jYzoxMToKK3wgLi4vd2VicnRjLWF1ZGlvLXBy b2Nlc3NpbmctMS4zL3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vZmlsZV93cmFwcGVyLmg6ODY6MjE6 IGVycm9yOiAnaW50NjRfdCcgaGFzIG5vdCBiZWVuIGRlY2xhcmVkCisKK2lmIGJ1aWx0IHdpdGgg bXVzbCBsaWJjCisKK1NpZ25lZC1vZmYtYnk6IE1hcmt1cyBWb2xrIDxmX2xfa0B0LW9ubGluZS5k ZT4KKy0tLQorIHdlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vZmlsZV93cmFwcGVyLmggfCAxICsKKyAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworZGlmZiAtLWdpdCBhL3dlYnJ0Yy9ydGNf YmFzZS9zeXN0ZW0vZmlsZV93cmFwcGVyLmggYi93ZWJydGMvcnRjX2Jhc2Uvc3lzdGVtL2ZpbGVf d3JhcHBlci5oCitpbmRleCA0MmM0NjNjLi5jMzRkMzY2IDEwMDY0NAorLS0tIGEvd2VicnRjL3J0 Y19iYXNlL3N5c3RlbS9maWxlX3dyYXBwZXIuaAorKysrIGIvd2VicnRjL3J0Y19iYXNlL3N5c3Rl bS9maWxlX3dyYXBwZXIuaAorQEAgLTEzLDYgKzEzLDcgQEAKICAKLS0jaWYgZGVmaW5lZChfX0dM SUJDWFhfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18p ICYmIGRlZmluZWQoX19HTElCQ1hYX18pCi0gI2luY2x1ZGUgPGN4eGFiaS5oPgotICNpbmNsdWRl IDxleGVjaW5mby5oPgotICNlbmRpZgotQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBQcmludEVycm9y KGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQotIC8vIHRvIGdldCB1c2FibGUgc3ltYm9scyBvbiBM aW51eC4gVGhpcyBpcyBjb3BpZWQgZnJvbSBWOC4gQ2hyb21pdW0gaGFzIGEgbW9yZQotIC8vIGFk dmFuY2VkIHN0YWNlIHRyYWNlIHN5c3RlbTsgYWxzbyBtb3JlIGRpZmZpY3VsdCB0byBjb3B5Lgot IHZvaWQgRHVtcEJhY2t0cmFjZSgpIHsKLS0jaWYgZGVmaW5lZChfX0dMSUJDWFhfXykgJiYgIWRl ZmluZWQoX19VQ0xJQkNfXykKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmIGRlZmluZWQoX19H TElCQ1hYX18pCi0gICB2b2lkKiB0cmFjZVsxMDBdOwotICAgaW50IHNpemUgPSBiYWNrdHJhY2Uo dHJhY2UsIHNpemVvZih0cmFjZSkgLyBzaXplb2YoKnRyYWNlKSk7Ci0gICBjaGFyKiogc3ltYm9s cyA9IGJhY2t0cmFjZV9zeW1ib2xzKHRyYWNlLCBzaXplKTsKKyAjaW5jbHVkZSA8c3RkZGVmLmg+ CisgI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgCisgI2luY2x1ZGUg PHN0cmluZz4KKyAKKy0tIAorR2l0TGFiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3dlYnJ0Yy1hdWRp by1wcm9jZXNzaW5nL3RlbXBsYXRlIGIvc3JjcGtncy93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy90 ZW1wbGF0ZQppbmRleCAzMGE0MjBiMjhmNTc1My4uZTUyNzdkMTdlMGI5ZTMgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3Mvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy93 ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy90ZW1wbGF0ZQpAQCAtMSwzOCArMSwzMyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcnCiBwa2duYW1lPXdlYnJ0Yy1h dWRpby1wcm9jZXNzaW5nCi12ZXJzaW9uPTAuMy4xCit2ZXJzaW9uPTEuMwogcmV2aXNpb249MQot YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotaG9zdG1ha2VkZXBlbmRzPSJhdXRvbWFrZSBsaWJ0 b29sIgorYnVpbGRfc3R5bGU9bWVzb24KK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKK21h a2VkZXBlbmRzPSJhYnNlaWwtY3BwLWRldmVsIgogc2hvcnRfZGVzYz0iQXVkaW9Qcm9jZXNzaW5n IGxpYnJhcnkgYmFzZWQgb24gR29vZ2xlJ3MgaW1wbGVtZW50YXRpb24gb2YgV2ViUlRDIgogbWFp bnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkJTRC0z LUNsYXVzZSIKLWhvbWVwYWdlPSJodHRwOi8vZnJlZWRlc2t0b3Aub3JnL3NvZnR3YXJlL3B1bHNl YXVkaW8vd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmciCi1kaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hMGZkZDkzOGZkODUyNzJkNjdl ODE1NzJjNWE0ZDllMjAwYTBjMTA0NzUzY2IzYzIwOWRlZDE3NWNlM2M1ZGJmCitob21lcGFnZT0i aHR0cHM6Ly9mcmVlZGVza3RvcC5vcmcvc29mdHdhcmUvcHVsc2VhdWRpby93ZWJydGMtYXVkaW8t cHJvY2Vzc2luZyIKK2Rpc3RmaWxlcz0iJHtGUkVFREVTS1RPUF9TSVRFfS9wdWxzZWF1ZGlvL3dl YnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nLSR7dmVyc2lvbn0u dGFyLmd6IgorY2hlY2tzdW09OTU1NTJmYzE3ZmFhMDIwMjEzMzcwN2JiYjM3MjdlOGMyY2Y2NGQ0 MjY2ZmUzMWJmZGIyMjk4ZDc2OWMxZGI3NQogCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KLQkjIERpc2FibGUgbmVvbiBmb3IgdGhlIGFybSogYXJjaGl0ZWN0dXJlcwotCWFybSopIGNv bmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLW5lb249bm8iIDs7Ci1lc2FjCi0KLXByZV9jb25maWd1 cmUoKSB7Ci0JIyBSZW1vdmUgZmFpbGluZyBzdGF0ZW1lbnQgUEtHX0NIRUNLX01PRFVMRShHTlVT VEwsIGdudXN0bCkKLQlzZWQgLWkgY29uZmlndXJlLmFjIC1lJy9pZiB0ZXN0ICJ4JHdpdGhfZ251 c3RsIiAhPSAieG5vIjsgdGhlbi8sKzJkJwotCWF1dG9yZWNvbmYgLWZpCi19CisjIFVwc3RyZWFt IGlzc3VlOiBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvcHVsc2VhdWRpby93ZWJydGMt YXVkaW8tcHJvY2Vzc2luZy8tL2lzc3Vlcy81CitpZiBbICIkWEJQU19NQUNISU5FIiA9ICJpNjg2 IiBdOyB0aGVuCisJQ1hYRkxBR1M9Ii1EUEZGRlRfU0lNRF9ESVNBQkxFPTEiCisJQ0ZMQUdTPSIt RFBGRkZUX1NJTURfRElTQUJMRT0xIgorZmkKIAogcG9zdF9pbnN0YWxsKCkgewogCXZsaWNlbnNl IENPUFlJTkcKIH0KIAogd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmctZGV2ZWxfcGFja2FnZSgpIHsK LQlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5k cz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IGFic2VpbC1jcHAtZGV2ZWwi CiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewog CQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwotCQl2bW92ZSAi dXNyL2xpYi8qLmEiCiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJfQogfQoKRnJvbSBlMmUwNThj MmZmODg1YTdhZDg5ZTU2ZjE5ZjFjMjc4OGE0YWExM2QzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBjaW5lcmVhMCA8Y2luZXJlYTBAZGlzcm9vdC5vcmc+CkRhdGU6IFRodSwgNyBNYXIg MjAyNCAxMDozNDoyOSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMy82XSBwdWxzZWF1ZGlvOiByZXZi dW1wIGZvciB3ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy0xLjMKCi0tLQogLi4uL3BhdGNoZXMvd2Vi cnRjLWF1ZGlvLXByb2Nlc3NpbmctMS5wYXRjaCAgIHwgNjc2ICsrKysrKysrKysrKysrKysrKwog c3JjcGtncy9wdWxzZWF1ZGlvL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiAy IGZpbGVzIGNoYW5nZWQsIDY3OSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHVsc2VhdWRpby9wYXRjaGVzL3dlYnJ0Yy1hdWRpby1wcm9j ZXNzaW5nLTEucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B1bHNlYXVkaW8vcGF0Y2hlcy93 ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy0xLnBhdGNoIGIvc3JjcGtncy9wdWxzZWF1ZGlvL3BhdGNo ZXMvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmctMS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAwMC4uMTI4MTY0MTZmMDQ5NDQKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3B1bHNlYXVkaW8vcGF0Y2hlcy93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy0xLnBhdGNo CkBAIC0wLDAgKzEsNjc2IEBACisjIFRoaXMgY2FuIGJlIGRyb3BwZWQgd2l0aCBQdWxzZUF1ZGlv IDE3CisKK0Zyb20gYjE2YjEwNzE3MWYyNGY3OTFmNzljMjA3MzBjZjZlYjNhZDQ2OTk0NCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFydW4gUmFnaGF2YW4gPGFydW5AYXN5bXB0b3Rp Yy5pbz4KK0RhdGU6IFR1ZSwgMjAgT2N0IDIwMjAgMTY6MTg6NTcgLTA0MDAKK1N1YmplY3Q6IFtQ QVRDSCAxLzNdIGVjaG8tY2FuY2VsLXRlc3Q6IERyb3AgcmVmZXJlbmNlcyB0byBpbnRlcm5hbCBt ZXNzYWdlCisgcXVldWUKKworV2UgZG9uJ3QgYWN0dWFsbHkgaW5pdGlhbGlzZSBvciB1c2UgaXQg aW4gdGhlIHRlc3QsIGFuZCB0aGlzIGp1c3QgY2F1c2VzCithIGNyYXNoIGF0IHRoZSBlbmQuCisK K1BhcnQtb2Y6IDxodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvcHVsc2VhdWRpby9wdWxz ZWF1ZGlvLy0vbWVyZ2VfcmVxdWVzdHMvMzk1PgorLS0tCisgc3JjL21vZHVsZXMvZWNoby1jYW5j ZWwvbW9kdWxlLWVjaG8tY2FuY2VsLmMgfCAyIC0tCisgMSBmaWxlIGNoYW5nZWQsIDIgZGVsZXRp b25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvbW9kdWxlcy9lY2hvLWNhbmNlbC9tb2R1bGUtZWNo by1jYW5jZWwuYyBiL3NyYy9tb2R1bGVzL2VjaG8tY2FuY2VsL21vZHVsZS1lY2hvLWNhbmNlbC5j CitpbmRleCAzZDYzZWE2MDg0Li5hZTFiZjlkNjg0IDEwMDY0NAorLS0tIGEvc3JjL21vZHVsZXMv ZWNoby1jYW5jZWwvbW9kdWxlLWVjaG8tY2FuY2VsLmMKKysrKyBiL3NyYy9tb2R1bGVzL2VjaG8t Y2FuY2VsL21vZHVsZS1lY2hvLWNhbmNlbC5jCitAQCAtMjM3MCw4ICsyMzcwLDYgQEAgaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgeworICAgICB9CisgCisgICAgIHUuZWMtPmRvbmUo dS5lYyk7CistICAgIHUuZWMtPm1zZy0+ZGVhZCA9IHRydWU7CistICAgIHBhX2VjaG9fY2FuY2Vs bGVyX21zZ191bnJlZih1LmVjLT5tc2cpOworIAorIG91dDoKKyAgICAgaWYgKHUuY2FwdHVyZWRf ZmlsZSkKKy0tIAorR2l0TGFiCisKKworRnJvbSAyMmJiYjViM2JhMGQyOGQ2MzBiMTA5NDRmZTE5 ZDdmOWVlZTNhMDBmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRWVybyBOdXJra2Fs YSA8ZWVyby5udXJra2FsYUBvZmZjb2RlLmZpPgorRGF0ZTogVHVlLCAyMCBPY3QgMjAyMCAxNjoy MDoyMyAtMDQwMAorU3ViamVjdDogW1BBVENIIDIvM10gZWNoby1jYW5jZWw6IGFkZCB3ZWJydGMg QUVDMyBzdXBwb3J0CisKK0Ryb3AgYSBudW1iZXIgb2Ygbm93IHVuc3VwcG9ydGVkIGZlYXR1cmVz LCBhbmQgYWRkIG5ldyBwYXJhbWV0ZXJzIGZvcgorcHJlLS9wb3N0LWFtcGxpZmljYXRpb24uCisK K1BhcnQtb2Y6IDxodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvcHVsc2VhdWRpby9wdWxz ZWF1ZGlvLy0vbWVyZ2VfcmVxdWVzdHMvMzk1PgorLS0tCisgc3JjL21vZHVsZXMvZWNoby1jYW5j ZWwvd2VicnRjLmNjIHwgNDMzICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmls ZSBjaGFuZ2VkLCAxMTMgaW5zZXJ0aW9ucygrKSwgMzIwIGRlbGV0aW9ucygtKQorCitkaWZmIC0t Z2l0IGEvc3JjL21vZHVsZXMvZWNoby1jYW5jZWwvd2VicnRjLmNjIGIvc3JjL21vZHVsZXMvZWNo by1jYW5jZWwvd2VicnRjLmNjCitpbmRleCA1NmRhYWIwZmQwLi5lZDRiYjY1YTU2IDEwMDY0NAor LS0tIGEvc3JjL21vZHVsZXMvZWNoby1jYW5jZWwvd2VicnRjLmNjCisrKysgYi9zcmMvbW9kdWxl cy9lY2hvLWNhbmNlbC93ZWJydGMuY2MKK0BAIC0zLDggKzMsOCBAQAorIAorICAgICBDb3B5cmln aHQgMjAxMSBDb2xsYWJvcmEgTHRkLgorICAgICAgICAgICAgICAgMjAxNSBBbGRlYmFyYW4gU29m dEJhbmsgR3JvdXAKKy0KKy0gICAgQ29udHJpYnV0b3I6IEFydW4gUmFnaGF2YW4gPG1haWxAYXJ1 bnJhZ2hhdmFuLm5ldD4KKysgICAgICAgICAgICAgIDIwMjAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBh c3ltcHRvdGljLmlvPgorKyAgICAgICAgICAgICAgMjAyMCBFZXJvIE51cmtrYWxhIDxlZXJvLm51 cmtrYWxhQG9mZmNvZGUuZmk+CisgCisgICAgIFB1bHNlQXVkaW8gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgICBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQKK0BAIC0zNCw4MCArMzQsNDcgQEAgUEFfQ19ERUNMX0JFR0lOCisgI2luY2x1ZGUgImVjaG8t Y2FuY2VsLmgiCisgUEFfQ19ERUNMX0VORAorIAorLSNpbmNsdWRlIDx3ZWJydGMvbW9kdWxlcy9h dWRpb19wcm9jZXNzaW5nL2luY2x1ZGUvYXVkaW9fcHJvY2Vzc2luZy5oPgorLSNpbmNsdWRlIDx3 ZWJydGMvbW9kdWxlcy9pbnRlcmZhY2UvbW9kdWxlX2NvbW1vbl90eXBlcy5oPgorLSNpbmNsdWRl IDx3ZWJydGMvc3lzdGVtX3dyYXBwZXJzL2luY2x1ZGUvdHJhY2UuaD4KKysjZGVmaW5lIFdFQlJU Q19BUE1fREVCVUdfRFVNUCAwCisrCisrI2luY2x1ZGUgPG1vZHVsZXMvYXVkaW9fcHJvY2Vzc2lu Zy9pbmNsdWRlL2F1ZGlvX3Byb2Nlc3NpbmcuaD4KKyAKKyAjZGVmaW5lIEJMT0NLX1NJWkVfVVMg MTAwMDAKKyAKKyAjZGVmaW5lIERFRkFVTFRfSElHSF9QQVNTX0ZJTFRFUiB0cnVlCisgI2RlZmlu ZSBERUZBVUxUX05PSVNFX1NVUFBSRVNTSU9OIHRydWUKKysjZGVmaW5lIERFRkFVTFRfVFJBTlNJ RU5UX05PSVNFX1NVUFBSRVNTSU9OIHRydWUKKyAjZGVmaW5lIERFRkFVTFRfQU5BTE9HX0dBSU5f Q09OVFJPTCB0cnVlCisgI2RlZmluZSBERUZBVUxUX0RJR0lUQUxfR0FJTl9DT05UUk9MIGZhbHNl CisgI2RlZmluZSBERUZBVUxUX01PQklMRSBmYWxzZQorLSNkZWZpbmUgREVGQVVMVF9ST1VUSU5H X01PREUgInNwZWFrZXJwaG9uZSIKKyAjZGVmaW5lIERFRkFVTFRfQ09NRk9SVF9OT0lTRSB0cnVl CisgI2RlZmluZSBERUZBVUxUX0RSSUZUX0NPTVBFTlNBVElPTiBmYWxzZQorLSNkZWZpbmUgREVG QVVMVF9WQUQgdHJ1ZQorLSNkZWZpbmUgREVGQVVMVF9FWFRFTkRFRF9GSUxURVIgZmFsc2UKKy0j ZGVmaW5lIERFRkFVTFRfSU5URUxMSUdJQklMSVRZX0VOSEFOQ0VSIGZhbHNlCistI2RlZmluZSBE RUZBVUxUX0VYUEVSSU1FTlRBTF9BR0MgZmFsc2UKKysjZGVmaW5lIERFRkFVTFRfVkFEIGZhbHNl CisgI2RlZmluZSBERUZBVUxUX0FHQ19TVEFSVF9WT0xVTUUgODUKKy0jZGVmaW5lIERFRkFVTFRf QkVBTUZPUk1JTkcgZmFsc2UKKy0jZGVmaW5lIERFRkFVTFRfVFJBQ0UgZmFsc2UKKysjZGVmaW5l IERFRkFVTFRfUE9TVEFNUF9FTkFCTEUgZmFsc2UKKysjZGVmaW5lIERFRkFVTFRfUE9TVEFNUF9H QUlOX0RCIDAKKysjZGVmaW5lIERFRkFVTFRfUFJFQU1QX0VOQUJMRSBmYWxzZQorKyNkZWZpbmUg REVGQVVMVF9QUkVBTVBfR0FJTl9EQiAwCisgCisgI2RlZmluZSBXRUJSVENfQUdDX01BWF9WT0xV TUUgMjU1CisrI2RlZmluZSBXRUJSVENfUE9TVEFNUF9HQUlOX01BWF9EQiA5MAorKyNkZWZpbmUg V0VCUlRDX1BSRUFNUF9HQUlOX01BWF9EQiA5MAorIAorIHN0YXRpYyBjb25zdCBjaGFyKiBjb25z dCB2YWxpZF9tb2RhcmdzW10gPSB7CistICAgICJoaWdoX3Bhc3NfZmlsdGVyIiwKKy0gICAgIm5v aXNlX3N1cHByZXNzaW9uIiwKKysgICAgImFnY19zdGFydF92b2x1bWUiLAorICAgICAiYW5hbG9n X2dhaW5fY29udHJvbCIsCisgICAgICJkaWdpdGFsX2dhaW5fY29udHJvbCIsCisrICAgICJoaWdo X3Bhc3NfZmlsdGVyIiwKKyAgICAgIm1vYmlsZSIsCistICAgICJyb3V0aW5nX21vZGUiLAorLSAg ICAiY29tZm9ydF9ub2lzZSIsCistICAgICJkcmlmdF9jb21wZW5zYXRpb24iLAorKyAgICAibm9p c2Vfc3VwcHJlc3Npb24iLAorKyAgICAicG9zdF9hbXBsaWZpZXIiLAorKyAgICAicG9zdF9hbXBs aWZpZXJfZ2FpbiIsCisrICAgICJwcmVfYW1wbGlmaWVyIiwKKysgICAgInByZV9hbXBsaWZpZXJf Z2FpbiIsCisrICAgICJ0cmFuc2llbnRfbm9pc2Vfc3VwcHJlc3Npb24iLAorICAgICAidm9pY2Vf ZGV0ZWN0aW9uIiwKKy0gICAgImV4dGVuZGVkX2ZpbHRlciIsCistICAgICJpbnRlbGxpZ2liaWxp dHlfZW5oYW5jZXIiLAorLSAgICAiZXhwZXJpbWVudGFsX2FnYyIsCistICAgICJhZ2Nfc3RhcnRf dm9sdW1lIiwKKy0gICAgImJlYW1mb3JtaW5nIiwKKy0gICAgIm1pY19nZW9tZXRyeSIsIC8qIGRv Y3VtZW50ZWQgaW4gcGFyc2VfbWljX2dlb21ldHJ5KCkgKi8KKy0gICAgInRhcmdldF9kaXJlY3Rp b24iLCAvKiBkb2N1bWVudGVkIGluIHBhcnNlX21pY19nZW9tZXRyeSgpICovCistICAgICJ0cmFj ZSIsCisgICAgIE5VTEwKKyB9OworIAorLXN0YXRpYyBpbnQgcm91dGluZ19tb2RlX2Zyb21fc3Ry aW5nKGNvbnN0IGNoYXIgKnJtb2RlKSB7CistICAgIGlmIChwYV9zdHJlcShybW9kZSwgInF1aWV0 LWVhcnBpZWNlLW9yLWhlYWRzZXQiKSkKKy0gICAgICAgIHJldHVybiB3ZWJydGM6OkVjaG9Db250 cm9sTW9iaWxlOjprUXVpZXRFYXJwaWVjZU9ySGVhZHNldDsKKy0gICAgZWxzZSBpZiAocGFfc3Ry ZXEocm1vZGUsICJlYXJwaWVjZSIpKQorLSAgICAgICAgcmV0dXJuIHdlYnJ0Yzo6RWNob0NvbnRy b2xNb2JpbGU6OmtFYXJwaWVjZTsKKy0gICAgZWxzZSBpZiAocGFfc3RyZXEocm1vZGUsICJsb3Vk LWVhcnBpZWNlIikpCistICAgICAgICByZXR1cm4gd2VicnRjOjpFY2hvQ29udHJvbE1vYmlsZTo6 a0xvdWRFYXJwaWVjZTsKKy0gICAgZWxzZSBpZiAocGFfc3RyZXEocm1vZGUsICJzcGVha2VycGhv bmUiKSkKKy0gICAgICAgIHJldHVybiB3ZWJydGM6OkVjaG9Db250cm9sTW9iaWxlOjprU3BlYWtl cnBob25lOworLSAgICBlbHNlIGlmIChwYV9zdHJlcShybW9kZSwgImxvdWQtc3BlYWtlcnBob25l IikpCistICAgICAgICByZXR1cm4gd2VicnRjOjpFY2hvQ29udHJvbE1vYmlsZTo6a0xvdWRTcGVh a2VycGhvbmU7CistICAgIGVsc2UKKy0gICAgICAgIHJldHVybiAtMTsKKy19CistCistY2xhc3Mg UGFXZWJydGNUcmFjZUNhbGxiYWNrIDogcHVibGljIHdlYnJ0Yzo6VHJhY2VDYWxsYmFjayB7Cist ICAgIHZvaWQgUHJpbnQod2VicnRjOjpUcmFjZUxldmVsIGxldmVsLCBjb25zdCBjaGFyICptZXNz YWdlLCBpbnQgbGVuZ3RoKQorLSAgICB7CistICAgICAgICBpZiAobGV2ZWwgJiB3ZWJydGM6OmtU cmFjZUVycm9yIHx8IGxldmVsICYgd2VicnRjOjprVHJhY2VDcml0aWNhbCkKKy0gICAgICAgICAg ICBwYV9sb2coIiVzIiwgbWVzc2FnZSk7CistICAgICAgICBlbHNlIGlmIChsZXZlbCAmIHdlYnJ0 Yzo6a1RyYWNlV2FybmluZykKKy0gICAgICAgICAgICBwYV9sb2dfd2FybigiJXMiLCBtZXNzYWdl KTsKKy0gICAgICAgIGVsc2UgaWYgKGxldmVsICYgd2VicnRjOjprVHJhY2VJbmZvKQorLSAgICAg ICAgICAgIHBhX2xvZ19pbmZvKCIlcyIsIG1lc3NhZ2UpOworLSAgICAgICAgZWxzZQorLSAgICAg ICAgICAgIHBhX2xvZ19kZWJ1ZygiJXMiLCBtZXNzYWdlKTsKKy0gICAgfQorLX07CistCisgc3Rh dGljIGludCB3ZWJydGNfdm9sdW1lX2Zyb21fcGEocGFfdm9sdW1lX3QgdikKKyB7CisgICAgIHJl dHVybiAodiAqIFdFQlJUQ19BR0NfTUFYX1ZPTFVNRSkgLyBQQV9WT0xVTUVfTk9STTsKK0BAIC0x MjAsOCArODcsNyBAQCBzdGF0aWMgcGFfdm9sdW1lX3Qgd2VicnRjX3ZvbHVtZV90b19wYShpbnQg dikKKyAKKyBzdGF0aWMgdm9pZCB3ZWJydGNfZWNfZml4YXRlX3NwZWMocGFfc2FtcGxlX3NwZWMg KnJlY19zcywgcGFfY2hhbm5lbF9tYXAgKnJlY19tYXAsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBhX3NhbXBsZV9zcGVjICpwbGF5X3NzLCBwYV9jaGFubmVsX21hcCAqcGxh eV9tYXAsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhX3NhbXBsZV9zcGVj ICpvdXRfc3MsIHBhX2NoYW5uZWxfbWFwICpvdXRfbWFwLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBib29sIGJlYW1mb3JtaW5nKQorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwYV9zYW1wbGVfc3BlYyAqb3V0X3NzLCBwYV9jaGFubmVsX21hcCAqb3V0X21h cCkKKyB7CisgICAgIHJlY19zcy0+Zm9ybWF0ID0gUEFfU0FNUExFX0ZMT0FUMzJORTsKKyAgICAg cGxheV9zcy0+Zm9ybWF0ID0gUEFfU0FNUExFX0ZMT0FUMzJORTsKK0BAIC0xMzksMTEwICsxMDUs MjIgQEAgc3RhdGljIHZvaWQgd2VicnRjX2VjX2ZpeGF0ZV9zcGVjKHBhX3NhbXBsZV9zcGVjICpy ZWNfc3MsIHBhX2NoYW5uZWxfbWFwICpyZWNfbWEKKyAgICAgKm91dF9zcyA9ICpyZWNfc3M7Cisg ICAgICpvdXRfbWFwID0gKnJlY19tYXA7CisgCistICAgIGlmIChiZWFtZm9ybWluZykgeworLSAg ICAgICAgLyogVGhlIGJlYW1mb3JtZXIgZ2l2ZXMgdXMgYSBzaW5nbGUgY2hhbm5lbCAqLworLSAg ICAgICAgb3V0X3NzLT5jaGFubmVscyA9IDE7CistICAgICAgICBwYV9jaGFubmVsX21hcF9pbml0 X21vbm8ob3V0X21hcCk7CistICAgIH0KKy0KKyAgICAgLyogUGxheWJhY2sgc3RyZWFtIHJhdGUg bmVlZHMgdG8gYmUgdGhlIHNhbWUgYXMgY2FwdHVyZSAqLworICAgICBwbGF5X3NzLT5yYXRlID0g cmVjX3NzLT5yYXRlOworIH0KKyAKKy1zdGF0aWMgYm9vbCBwYXJzZV9wb2ludChjb25zdCBjaGFy ICoqcG9pbnQsIGZsb2F0ICgmZilbM10pIHsKKy0gICAgaW50IHJldCwgbGVuZ3RoOworLQorLSAg ICByZXQgPSBzc2NhbmYoKnBvaW50LCAiJWcsJWcsJWclbiIsICZmWzBdLCAmZlsxXSwgJmZbMl0s ICZsZW5ndGgpOworLSAgICBpZiAocmV0ICE9IDMpCistICAgICAgICByZXR1cm4gZmFsc2U7Cist CistICAgIC8qIENvbnN1bWUgdGhlIGJ5dGVzIHdlJ3ZlIHJlYWQgc28gZmFyICovCistICAgICpw b2ludCArPSBsZW5ndGg7CistCistICAgIHJldHVybiB0cnVlOworLX0KKy0KKy1zdGF0aWMgYm9v bCBwYXJzZV9taWNfZ2VvbWV0cnkoY29uc3QgY2hhciAqKm1pY19nZW9tZXRyeSwgc3RkOjp2ZWN0 b3I8d2VicnRjOjpQb2ludD4mIGdlb21ldHJ5KSB7CistICAgIC8qIFRoZSBtaWNyb3Bob25lIGdl b21ldHJ5IGlzIGV4cHJlc3NlZCBhcyBjYXJ0ZXNpYW4gcG9pbnQgZm9ybToKKy0gICAgICogICB4 MSx5MSx6MSx4Mix5Mix6MiwuLi4KKy0gICAgICoKKy0gICAgICogV2hlcmUgeDEseTEsejEgaXMg dGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBtaWNyb3Bob25lIHdpdGggcmVnYXJkcyB0bworLSAg ICAgKiB0aGUgYXJyYXkncyAiY2VudGVyIiwgeDIseTIsejIgdGhlIHBvc2l0aW9uIG9mIHRoZSBz ZWNvbmQsIGFuZCBzbyBvbi4KKy0gICAgICoKKy0gICAgICogJ3gnIGlzIHRoZSBob3Jpem9udGFs IGNvb3JkaW5hdGUsIHdpdGggcG9zaXRpdmUgdmFsdWVzIGJlaW5nIHRvIHRoZQorLSAgICAgKiBy aWdodCBmcm9tIHRoZSBtaWMgYXJyYXkncyBwZXJzcGVjdGl2ZS4KKy0gICAgICoKKy0gICAgICog J3knIGlzIHRoZSBkZXB0aCBjb29yZGluYXRlLCB3aXRoIHBvc2l0aXZlIHZhbHVlcyBiZWluZyBp biBmcm9udCBvZiB0aGUKKy0gICAgICogYXJyYXkuCistICAgICAqCistICAgICAqICd6JyBpcyB0 aGUgdmVydGljYWwgY29vcmRpbmF0ZSwgd2l0aCBwb3NpdGl2ZSB2YWx1ZXMgYmVpbmcgYWJvdmUg dGhlCistICAgICAqIGFycmF5LgorLSAgICAgKgorLSAgICAgKiBBbGwgZGlzdGFuY2VzIGFyZSBp biBtZXRlcnMuCistICAgICAqLworLQorLSAgICAvKiBUaGUgdGFyZ2V0IGRpcmVjdGlvbiBpcyBl eHBlY3RlZCB0byBiZSBpbiBzcGhlcmljYWwgcG9pbnQgZm9ybToKKy0gICAgICogICBhLGUscgor LSAgICAgKgorLSAgICAgKiBXaGVyZSAnYScgaXMgdGhlIGF6aW11dGggb2YgdGhlIHRhcmdldCBw b2ludCByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mCistICAgICAqIHRoZSBhcnJheSwgJ2UnIGl0 cyBlbGV2YXRpb24sIGFuZCAncicgdGhlIHJhZGl1cy4KKy0gICAgICoKKy0gICAgICogMCByYWRp YW5zIGF6aW11dGggaXMgdG8gdGhlIHJpZ2h0IG9mIHRoZSBhcnJheSwgYW5kIHBvc2l0aXZlIGFu Z2xlcworLSAgICAgKiBtb3ZlIGluIGEgY291bnRlci1jbG9ja3dpc2UgZGlyZWN0aW9uLgorLSAg ICAgKgorLSAgICAgKiAwIHJhZGlhbnMgZWxldmF0aW9uIGlzIGhvcml6b250YWwgdy5yLnQuIHRo ZSBhcnJheSwgYW5kIHBvc2l0aXZlCistICAgICAqIGFuZ2xlcyBnbyB1cHdhcmRzLgorLSAgICAg KgorLSAgICAgKiByYWRpdXMgaXMgZGlzdGFuY2UgZnJvbSB0aGUgYXJyYXkgY2VudGVyIGluIG1l dGVycy4KKy0gICAgICovCistCistICAgIGxvbmcgdW5zaWduZWQgaW50IGk7CistICAgIGZsb2F0 IGZbM107CistCistICAgIGZvciAoaSA9IDA7IGkgPCBnZW9tZXRyeS5zaXplKCk7IGkrKykgewor LSAgICAgICAgaWYgKCFwYXJzZV9wb2ludChtaWNfZ2VvbWV0cnksIGYpKSB7CistICAgICAgICAg ICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFyc2UgY2hhbm5lbCAlbHUgaW4gbWljX2dlb21ldHJ5Iiwg aSk7CistICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworLSAgICAgICAgfQorLQorLSAgICAgICAg LyogRXhjZXB0IGZvciB0aGUgbGFzdCBwb2ludCwgd2Ugc2hvdWxkIGhhdmUgYSB0cmFpbGluZyBj b21tYSAqLworLSAgICAgICAgaWYgKGkgIT0gZ2VvbWV0cnkuc2l6ZSgpIC0gMSkgeworLSAgICAg ICAgICAgIGlmICgqKm1pY19nZW9tZXRyeSAhPSAnLCcpIHsKKy0gICAgICAgICAgICAgICAgcGFf bG9nKCJGYWlsZWQgdG8gcGFyc2UgY2hhbm5lbCAlbHUgaW4gbWljX2dlb21ldHJ5IiwgaSk7Cist ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKy0gICAgICAgICAgICB9CistCistICAgICAg ICAgICAgKCptaWNfZ2VvbWV0cnkpKys7CistICAgICAgICB9CistCistICAgICAgICBwYV9sb2df ZGVidWcoIkdvdCBtaWMgIyVsdSBwb3NpdGlvbjogKCVnLCAlZywgJWcpIiwgaSwgZlswXSwgZlsx XSwgZlsyXSk7CistCistICAgICAgICBnZW9tZXRyeVtpXS5jWzBdID0gZlswXTsKKy0gICAgICAg IGdlb21ldHJ5W2ldLmNbMV0gPSBmWzFdOworLSAgICAgICAgZ2VvbWV0cnlbaV0uY1syXSA9IGZb Ml07CistICAgIH0KKy0KKy0gICAgaWYgKCoqbWljX2dlb21ldHJ5ICE9ICdcMCcpIHsKKy0gICAg ICAgIHBhX2xvZygiRmFpbGVkIHRvIHBhcnNlIG1pY19nZW9tZXRyeSB2YWx1ZTogbW9yZSBwYXJh bWV0ZXJzIHRoYW4gZXhwZWN0ZWQiKTsKKy0gICAgICAgIHJldHVybiBmYWxzZTsKKy0gICAgfQor LQorLSAgICByZXR1cm4gdHJ1ZTsKKy19CistCisgYm9vbCBwYV93ZWJydGNfZWNfaW5pdChwYV9j b3JlICpjLCBwYV9lY2hvX2NhbmNlbGxlciAqZWMsCisgICAgICAgICAgICAgICAgICAgICAgICBw YV9zYW1wbGVfc3BlYyAqcmVjX3NzLCBwYV9jaGFubmVsX21hcCAqcmVjX21hcCwKKyAgICAgICAg ICAgICAgICAgICAgICAgIHBhX3NhbXBsZV9zcGVjICpwbGF5X3NzLCBwYV9jaGFubmVsX21hcCAq cGxheV9tYXAsCisgICAgICAgICAgICAgICAgICAgICAgICBwYV9zYW1wbGVfc3BlYyAqb3V0X3Nz LCBwYV9jaGFubmVsX21hcCAqb3V0X21hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz Ml90ICpuZnJhbWVzLCBjb25zdCBjaGFyICphcmdzKSB7CistICAgIHdlYnJ0Yzo6QXVkaW9Qcm9j ZXNzaW5nICphcG0gPSBOVUxMOworKyAgICB3ZWJydGM6OkF1ZGlvUHJvY2Vzc2luZyAqYXBtID0g d2VicnRjOjpBdWRpb1Byb2Nlc3NpbmdCdWlsZGVyKCkuQ3JlYXRlKCk7CisgICAgIHdlYnJ0Yzo6 UHJvY2Vzc2luZ0NvbmZpZyBwY29uZmlnOworLSAgICB3ZWJydGM6OkNvbmZpZyBjb25maWc7Cist ICAgIGJvb2wgaHBmLCBucywgYWdjLCBkZ2MsIG1vYmlsZSwgY24sIHZhZCwgZXh0X2ZpbHRlciwg aW50ZWxsaWdpYmlsaXR5LCBleHBlcmltZW50YWxfYWdjLCBiZWFtZm9ybWluZzsKKy0gICAgaW50 IHJtID0gLTEsIGk7CistICAgIHVpbnQzMl90IGFnY19zdGFydF92b2x1bWU7CisrICAgIHdlYnJ0 Yzo6QXVkaW9Qcm9jZXNzaW5nOjpDb25maWcgY29uZmlnOworKyAgICBib29sIGhwZiwgbnMsIHRu cywgYWdjLCBkZ2MsIG1vYmlsZSwgcHJlX2FtcCwgdmFkLCBwb3N0X2FtcDsKKysgICAgaW50IGk7 CisrICAgIHVpbnQzMl90IGFnY19zdGFydF92b2x1bWUsIHByZV9hbXBfZ2FpbiwgcG9zdF9hbXBf Z2FpbjsKKyAgICAgcGFfbW9kYXJncyAqbWE7CistICAgIGJvb2wgdHJhY2UgPSBmYWxzZTsKKyAK KyAgICAgaWYgKCEobWEgPSBwYV9tb2RhcmdzX25ldyhhcmdzLCB2YWxpZF9tb2RhcmdzKSkpIHsK KyAgICAgICAgIHBhX2xvZygiRmFpbGVkIHRvIHBhcnNlIHN1Ym1vZHVsZSBhcmd1bWVudHMuIik7 CitAQCAtMjYxLDYgKzEzOSwxMiBAQCBib29sIHBhX3dlYnJ0Y19lY19pbml0KHBhX2NvcmUgKmMs IHBhX2VjaG9fY2FuY2VsbGVyICplYywKKyAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgfQorIAor KyAgICB0bnMgPSBERUZBVUxUX1RSQU5TSUVOVF9OT0lTRV9TVVBQUkVTU0lPTjsKKysgICAgaWYg KHBhX21vZGFyZ3NfZ2V0X3ZhbHVlX2Jvb2xlYW4obWEsICJ0cmFuc2llbnRfbm9pc2Vfc3VwcHJl c3Npb24iLCAmdG5zKSA8IDApIHsKKysgICAgICAgIHBhX2xvZygiRmFpbGVkIHRvIHBhcnNlIHRy YW5zaWVudF9ub2lzZV9zdXBwcmVzc2lvbiB2YWx1ZSIpOworKyAgICAgICAgZ290byBmYWlsOwor KyAgICB9CisrCisgICAgIGFnYyA9IERFRkFVTFRfQU5BTE9HX0dBSU5fQ09OVFJPTDsKKyAgICAg aWYgKHBhX21vZGFyZ3NfZ2V0X3ZhbHVlX2Jvb2xlYW4obWEsICJhbmFsb2dfZ2Fpbl9jb250cm9s IiwgJmFnYykgPCAwKSB7CisgICAgICAgICBwYV9sb2coIkZhaWxlZCB0byBwYXJzZSBhbmFsb2df Z2Fpbl9jb250cm9sIHZhbHVlIik7CitAQCAtMjc4LDYyICsxNjIsNDcgQEAgYm9vbCBwYV93ZWJy dGNfZWNfaW5pdChwYV9jb3JlICpjLCBwYV9lY2hvX2NhbmNlbGxlciAqZWMsCisgICAgICAgICBn b3RvIGZhaWw7CisgICAgIH0KKyAKKy0gICAgbW9iaWxlID0gREVGQVVMVF9NT0JJTEU7CistICAg IGlmIChwYV9tb2RhcmdzX2dldF92YWx1ZV9ib29sZWFuKG1hLCAibW9iaWxlIiwgJm1vYmlsZSkg PCAwKSB7CistICAgICAgICBwYV9sb2coIkZhaWxlZCB0byBwYXJzZSBtb2JpbGUgdmFsdWUiKTsK KysgICAgcHJlX2FtcCA9IERFRkFVTFRfUFJFQU1QX0VOQUJMRTsKKysgICAgaWYgKHBhX21vZGFy Z3NfZ2V0X3ZhbHVlX2Jvb2xlYW4obWEsICJwcmVfYW1wbGlmaWVyIiwgJnByZV9hbXApIDwgMCkg eworKyAgICAgICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFyc2UgcHJlX2FtcGxpZmllciB2YWx1ZSIp OworICAgICAgICAgZ290byBmYWlsOworICAgICB9CistCistICAgIGVjLT5wYXJhbXMuZHJpZnRf Y29tcGVuc2F0aW9uID0gREVGQVVMVF9EUklGVF9DT01QRU5TQVRJT047CistICAgIGlmIChwYV9t b2RhcmdzX2dldF92YWx1ZV9ib29sZWFuKG1hLCAiZHJpZnRfY29tcGVuc2F0aW9uIiwgJmVjLT5w YXJhbXMuZHJpZnRfY29tcGVuc2F0aW9uKSA8IDApIHsKKy0gICAgICAgIHBhX2xvZygiRmFpbGVk IHRvIHBhcnNlIGRyaWZ0X2NvbXBlbnNhdGlvbiB2YWx1ZSIpOworKyAgICBwcmVfYW1wX2dhaW4g PSBERUZBVUxUX1BSRUFNUF9HQUlOX0RCOworKyAgICBpZiAocGFfbW9kYXJnc19nZXRfdmFsdWVf dTMyKG1hLCAicHJlX2FtcGxpZmllcl9nYWluIiwgJnByZV9hbXBfZ2FpbikgPCAwKSB7CisrICAg ICAgICBwYV9sb2coIkZhaWxlZCB0byBwYXJzZSBwcmVfYW1wbGlmaWVyX2dhaW4gdmFsdWUiKTsK KyAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgfQorLQorLSAgICBpZiAobW9iaWxlKSB7CistICAg ICAgICBpZiAoZWMtPnBhcmFtcy5kcmlmdF9jb21wZW5zYXRpb24pIHsKKy0gICAgICAgICAgICBw YV9sb2coIkNhbid0IHVzZSBkcmlmdF9jb21wZW5zYXRpb24gaW4gbW9iaWxlIG1vZGUiKTsKKy0g ICAgICAgICAgICBnb3RvIGZhaWw7CistICAgICAgICB9CistCistICAgICAgICBpZiAoKHJtID0g cm91dGluZ19tb2RlX2Zyb21fc3RyaW5nKHBhX21vZGFyZ3NfZ2V0X3ZhbHVlKG1hLCAicm91dGlu Z19tb2RlIiwgREVGQVVMVF9ST1VUSU5HX01PREUpKSkgPCAwKSB7CistICAgICAgICAgICAgcGFf bG9nKCJGYWlsZWQgdG8gcGFyc2Ugcm91dGluZ19tb2RlIHZhbHVlIik7CistICAgICAgICAgICAg Z290byBmYWlsOworLSAgICAgICAgfQorLQorLSAgICAgICAgY24gPSBERUZBVUxUX0NPTUZPUlRf Tk9JU0U7CistICAgICAgICBpZiAocGFfbW9kYXJnc19nZXRfdmFsdWVfYm9vbGVhbihtYSwgImNv bWZvcnRfbm9pc2UiLCAmY24pIDwgMCkgeworLSAgICAgICAgICAgIHBhX2xvZygiRmFpbGVkIHRv IHBhcnNlIGNuIHZhbHVlIik7CistICAgICAgICAgICAgZ290byBmYWlsOworLSAgICAgICAgfQor LSAgICB9IGVsc2UgeworLSAgICAgICAgaWYgKHBhX21vZGFyZ3NfZ2V0X3ZhbHVlKG1hLCAiY29t Zm9ydF9ub2lzZSIsIE5VTEwpIHx8IHBhX21vZGFyZ3NfZ2V0X3ZhbHVlKG1hLCAicm91dGluZ19t b2RlIiwgTlVMTCkpIHsKKy0gICAgICAgICAgICBwYV9sb2coIlRoZSByb3V0aW5nX21vZGUgYW5k IGNvbWZvcnRfbm9pc2Ugb3B0aW9ucyBhcmUgb25seSB2YWxpZCB3aXRoIG1vYmlsZT10cnVlIik7 CistICAgICAgICAgICAgZ290byBmYWlsOworLSAgICAgICAgfQorKyAgICBpZiAocHJlX2FtcF9n YWluID4gV0VCUlRDX1BSRUFNUF9HQUlOX01BWF9EQikgeworKyAgICAgICAgcGFfbG9nKCJQcmVh bXAgZ2FpbiBtdXN0IG5vdCBleGNlZWQgJXUiLCBXRUJSVENfUFJFQU1QX0dBSU5fTUFYX0RCKTsK KysgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgfQorIAorLSAgICB2YWQgPSBERUZBVUxUX1ZBRDsK Ky0gICAgaWYgKHBhX21vZGFyZ3NfZ2V0X3ZhbHVlX2Jvb2xlYW4obWEsICJ2b2ljZV9kZXRlY3Rp b24iLCAmdmFkKSA8IDApIHsKKy0gICAgICAgIHBhX2xvZygiRmFpbGVkIHRvIHBhcnNlIHZvaWNl X2RldGVjdGlvbiB2YWx1ZSIpOworKyAgICBwb3N0X2FtcCA9IERFRkFVTFRfUE9TVEFNUF9FTkFC TEU7CisrICAgIGlmIChwYV9tb2RhcmdzX2dldF92YWx1ZV9ib29sZWFuKG1hLCAicG9zdF9hbXBs aWZpZXIiLCAmcG9zdF9hbXApIDwgMCkgeworKyAgICAgICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFy c2UgcG9zdF9hbXBsaWZpZXIgdmFsdWUiKTsKKyAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgfQor LQorLSAgICBleHRfZmlsdGVyID0gREVGQVVMVF9FWFRFTkRFRF9GSUxURVI7CistICAgIGlmIChw YV9tb2RhcmdzX2dldF92YWx1ZV9ib29sZWFuKG1hLCAiZXh0ZW5kZWRfZmlsdGVyIiwgJmV4dF9m aWx0ZXIpIDwgMCkgeworLSAgICAgICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFyc2UgZXh0ZW5kZWRf ZmlsdGVyIHZhbHVlIik7CisrICAgIHBvc3RfYW1wX2dhaW4gPSBERUZBVUxUX1BPU1RBTVBfR0FJ Tl9EQjsKKysgICAgaWYgKHBhX21vZGFyZ3NfZ2V0X3ZhbHVlX3UzMihtYSwgInBvc3RfYW1wbGlm aWVyX2dhaW4iLCAmcG9zdF9hbXBfZ2FpbikgPCAwKSB7CisrICAgICAgICBwYV9sb2coIkZhaWxl ZCB0byBwYXJzZSBwb3N0X2FtcGxpZmllcl9nYWluIHZhbHVlIik7CisrICAgICAgICBnb3RvIGZh aWw7CisrICAgIH0KKysgICAgaWYgKHBvc3RfYW1wX2dhaW4gPiBXRUJSVENfUE9TVEFNUF9HQUlO X01BWF9EQikgeworKyAgICAgICAgcGFfbG9nKCJQb3N0YW1wIGdhaW4gbXVzdCBub3QgZXhjZWVk ICV1IiwgV0VCUlRDX1BPU1RBTVBfR0FJTl9NQVhfREIpOworICAgICAgICAgZ290byBmYWlsOwor ICAgICB9CisgCistICAgIGludGVsbGlnaWJpbGl0eSA9IERFRkFVTFRfSU5URUxMSUdJQklMSVRZ X0VOSEFOQ0VSOworLSAgICBpZiAocGFfbW9kYXJnc19nZXRfdmFsdWVfYm9vbGVhbihtYSwgImlu dGVsbGlnaWJpbGl0eV9lbmhhbmNlciIsICZpbnRlbGxpZ2liaWxpdHkpIDwgMCkgeworLSAgICAg ICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFyc2UgaW50ZWxsaWdpYmlsaXR5X2VuaGFuY2VyIHZhbHVl Iik7CisrICAgIG1vYmlsZSA9IERFRkFVTFRfTU9CSUxFOworKyAgICBpZiAocGFfbW9kYXJnc19n ZXRfdmFsdWVfYm9vbGVhbihtYSwgIm1vYmlsZSIsICZtb2JpbGUpIDwgMCkgeworKyAgICAgICAg cGFfbG9nKCJGYWlsZWQgdG8gcGFyc2UgbW9iaWxlIHZhbHVlIik7CisgICAgICAgICBnb3RvIGZh aWw7CisgICAgIH0KKyAKKy0gICAgZXhwZXJpbWVudGFsX2FnYyA9IERFRkFVTFRfRVhQRVJJTUVO VEFMX0FHQzsKKy0gICAgaWYgKHBhX21vZGFyZ3NfZ2V0X3ZhbHVlX2Jvb2xlYW4obWEsICJleHBl cmltZW50YWxfYWdjIiwgJmV4cGVyaW1lbnRhbF9hZ2MpIDwgMCkgeworLSAgICAgICAgcGFfbG9n KCJGYWlsZWQgdG8gcGFyc2UgZXhwZXJpbWVudGFsX2FnYyB2YWx1ZSIpOworKyAgICBlYy0+cGFy YW1zLmRyaWZ0X2NvbXBlbnNhdGlvbiA9IERFRkFVTFRfRFJJRlRfQ09NUEVOU0FUSU9OOworKwor KyAgICB2YWQgPSBERUZBVUxUX1ZBRDsKKysgICAgaWYgKHBhX21vZGFyZ3NfZ2V0X3ZhbHVlX2Jv b2xlYW4obWEsICJ2b2ljZV9kZXRlY3Rpb24iLCAmdmFkKSA8IDApIHsKKysgICAgICAgIHBhX2xv ZygiRmFpbGVkIHRvIHBhcnNlIHZvaWNlX2RldGVjdGlvbiB2YWx1ZSIpOworICAgICAgICAgZ290 byBmYWlsOworICAgICB9CisgCitAQCAtMzQ4LDgyICsyMTcsNyBAQCBib29sIHBhX3dlYnJ0Y19l Y19pbml0KHBhX2NvcmUgKmMsIHBhX2VjaG9fY2FuY2VsbGVyICplYywKKyAgICAgfQorICAgICBl Yy0+cGFyYW1zLndlYnJ0Yy5hZ2Nfc3RhcnRfdm9sdW1lID0gYWdjX3N0YXJ0X3ZvbHVtZTsKKyAK Ky0gICAgYmVhbWZvcm1pbmcgPSBERUZBVUxUX0JFQU1GT1JNSU5HOworLSAgICBpZiAocGFfbW9k YXJnc19nZXRfdmFsdWVfYm9vbGVhbihtYSwgImJlYW1mb3JtaW5nIiwgJmJlYW1mb3JtaW5nKSA8 IDApIHsKKy0gICAgICAgIHBhX2xvZygiRmFpbGVkIHRvIHBhcnNlIGJlYW1mb3JtaW5nIHZhbHVl Iik7CistICAgICAgICBnb3RvIGZhaWw7CistICAgIH0KKy0KKy0gICAgaWYgKGV4dF9maWx0ZXIp CistICAgICAgICBjb25maWcuU2V0PHdlYnJ0Yzo6RXh0ZW5kZWRGaWx0ZXI+KG5ldyB3ZWJydGM6 OkV4dGVuZGVkRmlsdGVyKHRydWUpKTsKKy0gICAgaWYgKGludGVsbGlnaWJpbGl0eSkKKy0gICAg ICAgIHBhX2xvZ193YXJuKCJUaGUgaW50ZWxsaWdpYmlsaXR5IGVuaGFuY2VyIGlzIG5vdCBjdXJy ZW50bHkgc3VwcG9ydGVkIik7CistICAgIGlmIChleHBlcmltZW50YWxfYWdjKQorLSAgICAgICAg Y29uZmlnLlNldDx3ZWJydGM6OkV4cGVyaW1lbnRhbEFnYz4obmV3IHdlYnJ0Yzo6RXhwZXJpbWVu dGFsQWdjKHRydWUsIGVjLT5wYXJhbXMud2VicnRjLmFnY19zdGFydF92b2x1bWUpKTsKKy0KKy0g ICAgdHJhY2UgPSBERUZBVUxUX1RSQUNFOworLSAgICBpZiAocGFfbW9kYXJnc19nZXRfdmFsdWVf Ym9vbGVhbihtYSwgInRyYWNlIiwgJnRyYWNlKSA8IDApIHsKKy0gICAgICAgIHBhX2xvZygiRmFp bGVkIHRvIHBhcnNlIHRyYWNlIHZhbHVlIik7CistICAgICAgICBnb3RvIGZhaWw7CistICAgIH0K Ky0KKy0gICAgaWYgKHRyYWNlKSB7CistICAgICAgICB3ZWJydGM6OlRyYWNlOjpDcmVhdGVUcmFj ZSgpOworLSAgICAgICAgd2VicnRjOjpUcmFjZTo6c2V0X2xldmVsX2ZpbHRlcih3ZWJydGM6OmtU cmFjZUFsbCk7CistICAgICAgICBlYy0+cGFyYW1zLndlYnJ0Yy50cmFjZV9jYWxsYmFjayA9IG5l dyBQYVdlYnJ0Y1RyYWNlQ2FsbGJhY2soKTsKKy0gICAgICAgIHdlYnJ0Yzo6VHJhY2U6OlNldFRy YWNlQ2FsbGJhY2soKFBhV2VicnRjVHJhY2VDYWxsYmFjayAqKSBlYy0+cGFyYW1zLndlYnJ0Yy50 cmFjZV9jYWxsYmFjayk7CistICAgIH0KKy0KKy0gICAgd2VicnRjX2VjX2ZpeGF0ZV9zcGVjKHJl Y19zcywgcmVjX21hcCwgcGxheV9zcywgcGxheV9tYXAsIG91dF9zcywgb3V0X21hcCwgYmVhbWZv cm1pbmcpOworLQorLSAgICAvKiBXZSBkbyB0aGlzIGFmdGVyIGZpeGF0ZSBiZWNhdXNlIHdlIG5l ZWQgdGhlIGNhcHR1cmUgY2hhbm5lbCBjb3VudCAqLworLSAgICBpZiAoYmVhbWZvcm1pbmcpIHsK Ky0gICAgICAgIHN0ZDo6dmVjdG9yPHdlYnJ0Yzo6UG9pbnQ+IGdlb21ldHJ5KHJlY19zcy0+Y2hh bm5lbHMpOworLSAgICAgICAgd2VicnRjOjpTcGhlcmljYWxQb2ludGYgZGlyZWN0aW9uKDAuMGYs IDAuMGYsIDAuMGYpOworLSAgICAgICAgY29uc3QgY2hhciAqbWljX2dlb21ldHJ5LCAqdGFyZ2V0 X2RpcmVjdGlvbjsKKy0KKy0gICAgICAgIGlmICghKG1pY19nZW9tZXRyeSA9IHBhX21vZGFyZ3Nf Z2V0X3ZhbHVlKG1hLCAibWljX2dlb21ldHJ5IiwgTlVMTCkpKSB7CistICAgICAgICAgICAgcGFf bG9nKCJtaWNfZ2VvbWV0cnkgbXVzdCBiZSBzZXQgaWYgYmVhbWZvcm1pbmcgaXMgZW5hYmxlZCIp OworLSAgICAgICAgICAgIGdvdG8gZmFpbDsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlmICgh cGFyc2VfbWljX2dlb21ldHJ5KCZtaWNfZ2VvbWV0cnksIGdlb21ldHJ5KSkgeworLSAgICAgICAg ICAgIHBhX2xvZygiRmFpbGVkIHRvIHBhcnNlIG1pY19nZW9tZXRyeSB2YWx1ZSIpOworLSAgICAg ICAgICAgIGdvdG8gZmFpbDsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlmICgodGFyZ2V0X2Rp cmVjdGlvbiA9IHBhX21vZGFyZ3NfZ2V0X3ZhbHVlKG1hLCAidGFyZ2V0X2RpcmVjdGlvbiIsIE5V TEwpKSkgeworLSAgICAgICAgICAgIGZsb2F0IGZbM107CistCistICAgICAgICAgICAgaWYgKCFw YXJzZV9wb2ludCgmdGFyZ2V0X2RpcmVjdGlvbiwgZikpIHsKKy0gICAgICAgICAgICAgICAgcGFf bG9nKCJGYWlsZWQgdG8gcGFyc2UgdGFyZ2V0X2RpcmVjdGlvbiB2YWx1ZSIpOworLSAgICAgICAg ICAgICAgICBnb3RvIGZhaWw7CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIGlmICgq dGFyZ2V0X2RpcmVjdGlvbiAhPSAnXDAnKSB7CistICAgICAgICAgICAgICAgIHBhX2xvZygiRmFp bGVkIHRvIHBhcnNlIHRhcmdldF9kaXJlY3Rpb24gdmFsdWU6IG1vcmUgcGFyYW1ldGVycyB0aGFu IGV4cGVjdGVkIik7CistICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKKy0gICAgICAgICAgICB9 CistCistI2RlZmluZSBJU19aRVJPKGYpICgoZikgPCAwLjAwMDAwMSAmJiAoZikgPiAtMC4wMDAw MDEpCistCistICAgICAgICAgICAgaWYgKCFJU19aRVJPKGZbMV0pIHx8ICFJU19aRVJPKGZbMl0p KSB7CistICAgICAgICAgICAgICAgIHBhX2xvZygiVGhlIGJlYW1mb3JtZXIgY3VycmVudGx5IG9u bHkgc3VwcG9ydHMgdGFyZ2V0aW5nIGFsb25nIHRoZSBhemltdXRoIik7CistICAgICAgICAgICAg ICAgIGdvdG8gZmFpbDsKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgZGlyZWN0aW9u LnNbMF0gPSBmWzBdOworLSAgICAgICAgICAgIGRpcmVjdGlvbi5zWzFdID0gZlsxXTsKKy0gICAg ICAgICAgICBkaXJlY3Rpb24uc1syXSA9IGZbMl07CistICAgICAgICB9CistCistICAgICAgICBp ZiAoIXRhcmdldF9kaXJlY3Rpb24pCistICAgICAgICAgICAgY29uZmlnLlNldDx3ZWJydGM6OkJl YW1mb3JtaW5nPihuZXcgd2VicnRjOjpCZWFtZm9ybWluZyh0cnVlLCBnZW9tZXRyeSkpOworLSAg ICAgICAgZWxzZQorLSAgICAgICAgICAgIGNvbmZpZy5TZXQ8d2VicnRjOjpCZWFtZm9ybWluZz4o bmV3IHdlYnJ0Yzo6QmVhbWZvcm1pbmcodHJ1ZSwgZ2VvbWV0cnksIGRpcmVjdGlvbikpOworLSAg ICB9CistCistICAgIGFwbSA9IHdlYnJ0Yzo6QXVkaW9Qcm9jZXNzaW5nOjpDcmVhdGUoY29uZmln KTsKKysgICAgd2VicnRjX2VjX2ZpeGF0ZV9zcGVjKHJlY19zcywgcmVjX21hcCwgcGxheV9zcywg cGxheV9tYXAsIG91dF9zcywgb3V0X21hcCk7CisgCisgICAgIHBjb25maWcgPSB7CisgICAgICAg ICB3ZWJydGM6OlN0cmVhbUNvbmZpZyhyZWNfc3MtPnJhdGUsIHJlY19zcy0+Y2hhbm5lbHMsIGZh bHNlKSwgLyogaW5wdXQgc3RyZWFtICovCitAQCAtNDM2LDQ2ICsyMzAsNjAgQEAgYm9vbCBwYV93 ZWJydGNfZWNfaW5pdChwYV9jb3JlICpjLCBwYV9lY2hvX2NhbmNlbGxlciAqZWMsCisgICAgICAg ICBnb3RvIGZhaWw7CisgICAgIH0KKyAKKysgICAgaWYgKHByZV9hbXApIHsKKysgICAgICAgY29u ZmlnLnByZV9hbXBsaWZpZXIuZW5hYmxlZCA9IHRydWU7CisrICAgICAgIGNvbmZpZy5wcmVfYW1w bGlmaWVyLmZpeGVkX2dhaW5fZmFjdG9yID0gKGZsb2F0KXByZV9hbXBfZ2FpbjsKKysgICAgfSBl bHNlCisrICAgICAgIGNvbmZpZy5wcmVfYW1wbGlmaWVyLmVuYWJsZWQgPSBmYWxzZTsKKysKKyAg ICAgaWYgKGhwZikKKy0gICAgICAgIGFwbS0+aGlnaF9wYXNzX2ZpbHRlcigpLT5FbmFibGUodHJ1 ZSk7CistCistICAgIGlmICghbW9iaWxlKSB7CistICAgICAgICBhcG0tPmVjaG9fY2FuY2VsbGF0 aW9uKCktPmVuYWJsZV9kcmlmdF9jb21wZW5zYXRpb24oZWMtPnBhcmFtcy5kcmlmdF9jb21wZW5z YXRpb24pOworLSAgICAgICAgYXBtLT5lY2hvX2NhbmNlbGxhdGlvbigpLT5FbmFibGUodHJ1ZSk7 CistICAgIH0gZWxzZSB7CistICAgICAgICBhcG0tPmVjaG9fY29udHJvbF9tb2JpbGUoKS0+c2V0 X3JvdXRpbmdfbW9kZShzdGF0aWNfY2FzdDx3ZWJydGM6OkVjaG9Db250cm9sTW9iaWxlOjpSb3V0 aW5nTW9kZT4ocm0pKTsKKy0gICAgICAgIGFwbS0+ZWNob19jb250cm9sX21vYmlsZSgpLT5lbmFi bGVfY29tZm9ydF9ub2lzZShjbik7CistICAgICAgICBhcG0tPmVjaG9fY29udHJvbF9tb2JpbGUo KS0+RW5hYmxlKHRydWUpOworLSAgICB9CisrICAgICAgICBjb25maWcuaGlnaF9wYXNzX2ZpbHRl ci5lbmFibGVkID0gdHJ1ZTsKKysgICAgZWxzZQorKyAgICAgICAgY29uZmlnLmhpZ2hfcGFzc19m aWx0ZXIuZW5hYmxlZCA9IGZhbHNlOworIAorLSAgICBpZiAobnMpIHsKKy0gICAgICAgIGFwbS0+ bm9pc2Vfc3VwcHJlc3Npb24oKS0+c2V0X2xldmVsKHdlYnJ0Yzo6Tm9pc2VTdXBwcmVzc2lvbjo6 a0hpZ2gpOworLSAgICAgICAgYXBtLT5ub2lzZV9zdXBwcmVzc2lvbigpLT5FbmFibGUodHJ1ZSk7 CistICAgIH0KKysgICAgY29uZmlnLmVjaG9fY2FuY2VsbGVyLmVuYWJsZWQgPSB0cnVlOworIAor LSAgICBpZiAoYWdjIHx8IGRnYykgeworLSAgICAgICAgaWYgKG1vYmlsZSAmJiBybSA8PSB3ZWJy dGM6OkVjaG9Db250cm9sTW9iaWxlOjprRWFycGllY2UpIHsKKy0gICAgICAgICAgICAvKiBNYXli ZSB0aGlzIHNob3VsZCBiZSBhIGtub2IsIGJ1dCB3ZSd2ZSBnb3QgYSBsb3Qgb2Yga25vYnMgYWxy ZWFkeSAqLworLSAgICAgICAgICAgIGFwbS0+Z2Fpbl9jb250cm9sKCktPnNldF9tb2RlKHdlYnJ0 Yzo6R2FpbkNvbnRyb2w6OmtGaXhlZERpZ2l0YWwpOworLSAgICAgICAgICAgIGVjLT5wYXJhbXMu d2VicnRjLmFnYyA9IGZhbHNlOworLSAgICAgICAgfSBlbHNlIGlmIChkZ2MpIHsKKy0gICAgICAg ICAgICBhcG0tPmdhaW5fY29udHJvbCgpLT5zZXRfbW9kZSh3ZWJydGM6OkdhaW5Db250cm9sOjpr QWRhcHRpdmVEaWdpdGFsKTsKKy0gICAgICAgICAgICBlYy0+cGFyYW1zLndlYnJ0Yy5hZ2MgPSBm YWxzZTsKKy0gICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgYXBtLT5nYWluX2NvbnRyb2wo KS0+c2V0X21vZGUod2VicnRjOjpHYWluQ29udHJvbDo6a0FkYXB0aXZlQW5hbG9nKTsKKy0gICAg ICAgICAgICBpZiAoYXBtLT5nYWluX2NvbnRyb2woKS0+c2V0X2FuYWxvZ19sZXZlbF9saW1pdHMo MCwgV0VCUlRDX0FHQ19NQVhfVk9MVU1FKSAhPQorLSAgICAgICAgICAgICAgICAgICAgd2VicnRj OjpBdWRpb1Byb2Nlc3Npbmc6OmtOb0Vycm9yKSB7CistICAgICAgICAgICAgICAgIHBhX2xvZygi RmFpbGVkIHRvIGluaXRpYWxpc2UgQUdDIik7CistICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsK Ky0gICAgICAgICAgICB9CistICAgICAgICAgICAgZWMtPnBhcmFtcy53ZWJydGMuYWdjID0gdHJ1 ZTsKKy0gICAgICAgIH0KKysgICAgaWYgKCFtb2JpbGUpCisrICAgICAgICBjb25maWcuZWNob19j YW5jZWxsZXIubW9iaWxlX21vZGUgPSBmYWxzZTsKKysgICAgZWxzZQorKyAgICAgICAgY29uZmln LmVjaG9fY2FuY2VsbGVyLm1vYmlsZV9tb2RlID0gdHJ1ZTsKKysKKysgICAgaWYgKG5zKQorKyAg ICAgICBjb25maWcubm9pc2Vfc3VwcHJlc3Npb24uZW5hYmxlZCA9IHRydWU7CisrICAgIGVsc2UK KysgICAgICAgY29uZmlnLm5vaXNlX3N1cHByZXNzaW9uLmVuYWJsZWQgPSBmYWxzZTsKKyAKKy0g ICAgICAgIGFwbS0+Z2Fpbl9jb250cm9sKCktPkVuYWJsZSh0cnVlKTsKKysgICAgaWYgKHRucykK KysgICAgICAgY29uZmlnLnRyYW5zaWVudF9zdXBwcmVzc2lvbi5lbmFibGVkID0gdHJ1ZTsKKysg ICAgZWxzZQorKyAgICAgICBjb25maWcudHJhbnNpZW50X3N1cHByZXNzaW9uLmVuYWJsZWQgPSBm YWxzZTsKKysKKysgICAgaWYgKGRnYykgeworKyAgICAgICAgZWMtPnBhcmFtcy53ZWJydGMuYWdj ID0gZmFsc2U7CisrICAgICAgICBjb25maWcuZ2Fpbl9jb250cm9sbGVyMS5lbmFibGVkID0gdHJ1 ZTsKKysgICAgICAgIGlmIChtb2JpbGUpCisrICAgICAgICAgICAgY29uZmlnLmdhaW5fY29udHJv bGxlcjEubW9kZSA9IHdlYnJ0Yzo6QXVkaW9Qcm9jZXNzaW5nOjpDb25maWc6OkdhaW5Db250cm9s bGVyMTo6a0ZpeGVkRGlnaXRhbDsKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBjb25maWcu Z2Fpbl9jb250cm9sbGVyMS5tb2RlID0gd2VicnRjOjpBdWRpb1Byb2Nlc3Npbmc6OkNvbmZpZzo6 R2FpbkNvbnRyb2xsZXIxOjprQWRhcHRpdmVEaWdpdGFsOworKyAgICB9IGVsc2UgaWYgKGFnYykg eworKyAgICAgICAgZWMtPnBhcmFtcy53ZWJydGMuYWdjID0gdHJ1ZTsKKysgICAgICAgIGNvbmZp Zy5nYWluX2NvbnRyb2xsZXIxLmVuYWJsZWQgPSB0cnVlOworKyAgICAgICAgY29uZmlnLmdhaW5f Y29udHJvbGxlcjEubW9kZSA9IHdlYnJ0Yzo6QXVkaW9Qcm9jZXNzaW5nOjpDb25maWc6OkdhaW5D b250cm9sbGVyMTo6a0FkYXB0aXZlQW5hbG9nOworKyAgICAgICAgY29uZmlnLmdhaW5fY29udHJv bGxlcjEuYW5hbG9nX2xldmVsX21pbmltdW0gPSAwOworKyAgICAgICAgY29uZmlnLmdhaW5fY29u dHJvbGxlcjEuYW5hbG9nX2xldmVsX21heGltdW0gPSBXRUJSVENfQUdDX01BWF9WT0xVTUU7Cisg ICAgIH0KKyAKKyAgICAgaWYgKHZhZCkKKy0gICAgICAgIGFwbS0+dm9pY2VfZGV0ZWN0aW9uKCkt PkVuYWJsZSh0cnVlKTsKKysgICAgICAgIGNvbmZpZy52b2ljZV9kZXRlY3Rpb24uZW5hYmxlZCA9 IHRydWU7CisrICAgIGVsc2UKKysgICAgICAgIGNvbmZpZy52b2ljZV9kZXRlY3Rpb24uZW5hYmxl ZCA9IGZhbHNlOworKworKyAgICBpZiAocG9zdF9hbXApIHsKKysgICAgICAgIGNvbmZpZy5nYWlu X2NvbnRyb2xsZXIyLmVuYWJsZWQgPSB0cnVlOworKyAgICAgICAgY29uZmlnLmdhaW5fY29udHJv bGxlcjIuZml4ZWRfZGlnaXRhbC5nYWluX2RiID0gKGZsb2F0KXBvc3RfYW1wX2dhaW47CisrICAg ICAgICBjb25maWcuZ2Fpbl9jb250cm9sbGVyMi5hZGFwdGl2ZV9kaWdpdGFsLmVuYWJsZWQgPSBm YWxzZTsKKysgICAgfSBlbHNlCisrICAgICAgICBjb25maWcuZ2Fpbl9jb250cm9sbGVyMi5lbmFi bGVkID0gZmFsc2U7CisgCisgICAgIGVjLT5wYXJhbXMud2VicnRjLmFwbSA9IGFwbTsKKyAgICAg ZWMtPnBhcmFtcy53ZWJydGMucmVjX3NzID0gKnJlY19zczsKK0BAIC00ODUsNiArMjkzLDggQEAg Ym9vbCBwYV93ZWJydGNfZWNfaW5pdChwYV9jb3JlICpjLCBwYV9lY2hvX2NhbmNlbGxlciAqZWMs CisgICAgICpuZnJhbWVzID0gZWMtPnBhcmFtcy53ZWJydGMuYmxvY2tzaXplOworICAgICBlYy0+ cGFyYW1zLndlYnJ0Yy5maXJzdCA9IHRydWU7CisgCisrICAgIGFwbS0+QXBwbHlDb25maWcoY29u ZmlnKTsKKysKKyAgICAgZm9yIChpID0gMDsgaSA8IHJlY19zcy0+Y2hhbm5lbHM7IGkrKykKKyAg ICAgICAgIGVjLT5wYXJhbXMud2VicnRjLnJlY19idWZmZXJbaV0gPSBwYV94bmV3KGZsb2F0LCAq bmZyYW1lcyk7CisgICAgIGZvciAoaSA9IDA7IGkgPCBwbGF5X3NzLT5jaGFubmVsczsgaSsrKQor QEAgLTQ5NiwxMCArMzA2LDcgQEAgYm9vbCBwYV93ZWJydGNfZWNfaW5pdChwYV9jb3JlICpjLCBw YV9lY2hvX2NhbmNlbGxlciAqZWMsCisgZmFpbDoKKyAgICAgaWYgKG1hKQorICAgICAgICAgcGFf bW9kYXJnc19mcmVlKG1hKTsKKy0gICAgaWYgKGVjLT5wYXJhbXMud2VicnRjLnRyYWNlX2NhbGxi YWNrKSB7CistICAgICAgICB3ZWJydGM6OlRyYWNlOjpSZXR1cm5UcmFjZSgpOworLSAgICAgICAg ZGVsZXRlICgoUGFXZWJydGNUcmFjZUNhbGxiYWNrICopIGVjLT5wYXJhbXMud2VicnRjLnRyYWNl X2NhbGxiYWNrKTsKKy0gICAgfSBpZiAoYXBtKQorKyAgICBpZiAoYXBtKQorICAgICAgICAgZGVs ZXRlIGFwbTsKKyAKKyAgICAgcmV0dXJuIGZhbHNlOworQEAgLTUxNSwxMiArMzIyLDYgQEAgdm9p ZCBwYV93ZWJydGNfZWNfcGxheShwYV9lY2hvX2NhbmNlbGxlciAqZWMsIGNvbnN0IHVpbnQ4X3Qg KnBsYXkpIHsKKyAgICAgcGFfZGVpbnRlcmxlYXZlKHBsYXksICh2b2lkICoqKSBidWYsIHNzLT5j aGFubmVscywgcGFfc2FtcGxlX3NpemUoc3MpLCBuKTsKKyAKKyAgICAgcGFfYXNzZXJ0X3NlKGFw bS0+UHJvY2Vzc1JldmVyc2VTdHJlYW0oYnVmLCBjb25maWcsIGNvbmZpZywgYnVmKSA9PSB3ZWJy dGM6OkF1ZGlvUHJvY2Vzc2luZzo6a05vRXJyb3IpOworLQorLSAgICAvKiBGSVhNRTogSWYgUHJv Y2Vzc1JldmVyc2VTdHJlYW0oKSBtYWtlcyBhbnkgY2hhbmdlcyB0byB0aGUgYXVkaW8sIHN1Y2gg YXMKKy0gICAgICogYXBwbHlpbmcgaW50ZWxsaWdpYmlsaXR5IGVuaGFuY2VtZW50LCB0aG9zZSBj aGFuZ2VzIGRvbid0IGhhdmUgYW55CistICAgICAqIGVmZmVjdC4gVGhpcyBmdW5jdGlvbiBpcyBj YWxsZWQgYXQgdGhlIHNvdXJjZSBzaWRlLCBidXQgdGhlIHByb2Nlc3NpbmcKKy0gICAgICogd291 bGQgaGF2ZSB0byBiZSBkb25lIGluIHRoZSBzaW5rIHRvIGJlIGFibGUgdG8gZmVlZCB0aGUgcHJv Y2Vzc2VkIGF1ZGlvCistICAgICAqIHRvIHNwZWFrZXJzLiAqLworIH0KKyAKKyB2b2lkIHBhX3dl YnJ0Y19lY19yZWNvcmQocGFfZWNob19jYW5jZWxsZXIgKmVjLCBjb25zdCB1aW50OF90ICpyZWMs IHVpbnQ4X3QgKm91dCkgeworQEAgLTUzOCw3ICszMzksNyBAQCB2b2lkIHBhX3dlYnJ0Y19lY19y ZWNvcmQocGFfZWNob19jYW5jZWxsZXIgKmVjLCBjb25zdCB1aW50OF90ICpyZWMsIHVpbnQ4X3Qg Km91dAorICAgICBpZiAoZWMtPnBhcmFtcy53ZWJydGMuYWdjKSB7CisgICAgICAgICBwYV92b2x1 bWVfdCB2ID0gcGFfZWNob19jYW5jZWxsZXJfZ2V0X2NhcHR1cmVfdm9sdW1lKGVjKTsKKyAgICAg ICAgIG9sZF92b2x1bWUgPSB3ZWJydGNfdm9sdW1lX2Zyb21fcGEodik7CistICAgICAgICBhcG0t PmdhaW5fY29udHJvbCgpLT5zZXRfc3RyZWFtX2FuYWxvZ19sZXZlbChvbGRfdm9sdW1lKTsKKysg ICAgICAgIGFwbS0+c2V0X3N0cmVhbV9hbmFsb2dfbGV2ZWwob2xkX3ZvbHVtZSk7CisgICAgIH0K KyAKKyAgICAgYXBtLT5zZXRfc3RyZWFtX2RlbGF5X21zKDApOworQEAgLTU1Myw3ICszNTQsNyBA QCB2b2lkIHBhX3dlYnJ0Y19lY19yZWNvcmQocGFfZWNob19jYW5jZWxsZXIgKmVjLCBjb25zdCB1 aW50OF90ICpyZWMsIHVpbnQ4X3QgKm91dAorICAgICAgICAgICAgIGVjLT5wYXJhbXMud2VicnRj LmZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgbmV3X3ZvbHVtZSA9IGVjLT5wYXJhbXMud2Vi cnRjLmFnY19zdGFydF92b2x1bWU7CisgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgIG5l d192b2x1bWUgPSBhcG0tPmdhaW5fY29udHJvbCgpLT5zdHJlYW1fYW5hbG9nX2xldmVsKCk7Cisr ICAgICAgICAgICAgbmV3X3ZvbHVtZSA9IGFwbS0+cmVjb21tZW5kZWRfc3RyZWFtX2FuYWxvZ19s ZXZlbCgpOworICAgICAgICAgfQorIAorICAgICAgICAgaWYgKG9sZF92b2x1bWUgIT0gbmV3X3Zv bHVtZSkKK0BAIC01NjQsOSArMzY1LDYgQEAgdm9pZCBwYV93ZWJydGNfZWNfcmVjb3JkKHBhX2Vj aG9fY2FuY2VsbGVyICplYywgY29uc3QgdWludDhfdCAqcmVjLCB1aW50OF90ICpvdXQKKyB9Cisg Cisgdm9pZCBwYV93ZWJydGNfZWNfc2V0X2RyaWZ0KHBhX2VjaG9fY2FuY2VsbGVyICplYywgZmxv YXQgZHJpZnQpIHsKKy0gICAgd2VicnRjOjpBdWRpb1Byb2Nlc3NpbmcgKmFwbSA9ICh3ZWJydGM6 OkF1ZGlvUHJvY2Vzc2luZyopZWMtPnBhcmFtcy53ZWJydGMuYXBtOworLQorLSAgICBhcG0tPmVj aG9fY2FuY2VsbGF0aW9uKCktPnNldF9zdHJlYW1fZHJpZnRfc2FtcGxlcyhkcmlmdCAqIGVjLT5w YXJhbXMud2VicnRjLmJsb2Nrc2l6ZSk7CisgfQorIAorIHZvaWQgcGFfd2VicnRjX2VjX3J1bihw YV9lY2hvX2NhbmNlbGxlciAqZWMsIGNvbnN0IHVpbnQ4X3QgKnJlYywgY29uc3QgdWludDhfdCAq cGxheSwgdWludDhfdCAqb3V0KSB7CitAQCAtNTc3LDExICszNzUsNiBAQCB2b2lkIHBhX3dlYnJ0 Y19lY19ydW4ocGFfZWNob19jYW5jZWxsZXIgKmVjLCBjb25zdCB1aW50OF90ICpyZWMsIGNvbnN0 IHVpbnQ4X3QgKgorIHZvaWQgcGFfd2VicnRjX2VjX2RvbmUocGFfZWNob19jYW5jZWxsZXIgKmVj KSB7CisgICAgIGludCBpOworIAorLSAgICBpZiAoZWMtPnBhcmFtcy53ZWJydGMudHJhY2VfY2Fs bGJhY2spIHsKKy0gICAgICAgIHdlYnJ0Yzo6VHJhY2U6OlJldHVyblRyYWNlKCk7CistICAgICAg ICBkZWxldGUgKChQYVdlYnJ0Y1RyYWNlQ2FsbGJhY2sgKikgZWMtPnBhcmFtcy53ZWJydGMudHJh Y2VfY2FsbGJhY2spOworLSAgICB9CistCisgICAgIGlmIChlYy0+cGFyYW1zLndlYnJ0Yy5hcG0p IHsKKyAgICAgICAgIGRlbGV0ZSAod2VicnRjOjpBdWRpb1Byb2Nlc3NpbmcqKWVjLT5wYXJhbXMu d2VicnRjLmFwbTsKKyAgICAgICAgIGVjLT5wYXJhbXMud2VicnRjLmFwbSA9IE5VTEw7CistLSAK K0dpdExhYgorCisKK0Zyb20gODRjNTMwNjZjNjU0MzlkZWI0MmQyOWJiYThjNjg5OWE0ZmEwZTMx OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFydW4gUmFnaGF2YW4gPGFydW5AYXN5 bXB0b3RpYy5pbz4KK0RhdGU6IFR1ZSwgMjAgT2N0IDIwMjAgMTc6Mjk6NTUgLTA0MDAKK1N1Ympl Y3Q6IFtQQVRDSCAzLzNdIGJ1aWxkLXN5czogQnVtcCB3ZWJydGMtYXVkaW8tcHJvY2Vzc2luZyBk ZXBlbmRlbmN5CisKK1RoZSBwYWNrYWdlIG5hbWUgYW5kIHZlcnNpb25pbmcgYXJlIGNoYW5naW5n IHVwc3RyZWFtLCBzbyBwcmVwYXJlIGZvcgordGhhdC4KKworUGFydC1vZjogPGh0dHBzOi8vZ2l0 bGFiLmZyZWVkZXNrdG9wLm9yZy9wdWxzZWF1ZGlvL3B1bHNlYXVkaW8vLS9tZXJnZV9yZXF1ZXN0 cy8zOTU+CistLS0KKyBtZXNvbi5idWlsZCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL21lc29uLmJ1aWxkIGIvbWVz b24uYnVpbGQKK2luZGV4IGI2NzhiYjUzMWEuLmExNjUyZTRkMzAgMTAwNjQ0CistLS0gYS9tZXNv bi5idWlsZAorKysrIGIvbWVzb24uYnVpbGQKK0BAIC03MjgsNyArNzI4LDcgQEAgaWYgZ2V0X29w dGlvbignZGFlbW9uJykKKyAgICAgY2RhdGEuc2V0KCdIQVZFX1NPWFInLCAxKQorICAgZW5kaWYK KyAKKy0gIHdlYnJ0Y19kZXAgPSBkZXBlbmRlbmN5KCd3ZWJydGMtYXVkaW8tcHJvY2Vzc2luZycs IHZlcnNpb24gOiAnPj0gMC4yJywgcmVxdWlyZWQgOiBnZXRfb3B0aW9uKCd3ZWJydGMtYWVjJykp CisrICB3ZWJydGNfZGVwID0gZGVwZW5kZW5jeSgnd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmctMScs IHZlcnNpb24gOiAnPj0gMS4wJywgcmVxdWlyZWQgOiBnZXRfb3B0aW9uKCd3ZWJydGMtYWVjJykp CisgICBpZiB3ZWJydGNfZGVwLmZvdW5kKCkKKyAgICAgY2RhdGEuc2V0KCdIQVZFX1dFQlJUQycs IDEpCisgICBlbmRpZgorLS0gCitHaXRMYWIKKworCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B1bHNl YXVkaW8vdGVtcGxhdGUgYi9zcmNwa2dzL3B1bHNlYXVkaW8vdGVtcGxhdGUKaW5kZXggYjE1M2Q4 MzUwMmE1YTIuLjcwOGFiNGY3OWFiMDY3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3B1bHNlYXVkaW8v dGVtcGxhdGUKKysrIGIvc3JjcGtncy9wdWxzZWF1ZGlvL3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE1 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwdWxzZWF1ZGlvJwogcGtnbmFtZT1wdWxzZWF1ZGlv CiB2ZXJzaW9uPTE2LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29u CiBjb25maWd1cmVfYXJncz0iLURqYWNrPWVuYWJsZWQgLURsaXJjPWRpc2FibGVkIC1EaGFsLWNv bXBhdD1mYWxzZSAtRG9yYz1lbmFibGVkCiAgLURndGs9ZGlzYWJsZWQgLURzeXN0ZW1kPWRpc2Fi bGVkIC1Ed2VicnRjLWFlYz1lbmFibGVkCiAgLURnc2V0dGluZ3M9ZW5hYmxlZCAtRGJsdWV6NT1l bmFibGVkCiAgLURibHVlejUtb2Zvbm8taGVhZHNldD1mYWxzZSAtRGJsdWV6NS1uYXRpdmUtaGVh ZHNldD10cnVlCiAgLURlbG9naW5kPWVuYWJsZWQgLUR1ZGV2cnVsZXNkaXI9L3Vzci9saWIvdWRl di9ydWxlcy5kCi0gLURiYXNoY29tcGxldGlvbmRpcj0vdXNyL3NoYXJlL2Jhc2gtY29tcGxldGlv bi9jb21wbGV0aW9ucyIKKyAtRGJhc2hjb21wbGV0aW9uZGlyPS91c3Ivc2hhcmUvYmFzaC1jb21w bGV0aW9uL2NvbXBsZXRpb25zCisgLURjcHBfc3RkPWMrKzE3IgogaG9zdG1ha2VkZXBlbmRzPSJt NCBnZXR0ZXh0IGxpYnRvb2wgb3JjLWRldmVsIHBlcmwtWE1MLVBhcnNlciBwa2ctY29uZmlnCiAg ZG94eWdlbiIKIG1ha2VkZXBlbmRzPSIkKHZvcHRfaWYgYXZhaGkgYXZhaGktbGlicy1kZXZlbCkg ZXVkZXYtbGlidWRldi1kZXZlbCBmZnR3LWRldmVsIGphY2stZGV2ZWwKCkZyb20gNTY1ODJhMjli ZTRkM2U0MmI1ZmE5OWY1MDkwMmRhZjYzODUzNjE2ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogY2luZXJlYTAgPGNpbmVyZWEwQGRpc3Jvb3Qub3JnPgpEYXRlOiBUaHUsIDcgTWFyIDIw MjQgMTA6MzQ6NTAgLTA1MDAKU3ViamVjdDogW1BBVENIIDQvNl0gcGlwZXdpcmU6IHJldmJ1bXAg Zm9yIHdlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nLTEuMwoKLS0tCiBzcmNwa2dzL3BpcGV3aXJlL3Rl bXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9waXBld2lyZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcGlw ZXdpcmUvdGVtcGxhdGUKaW5kZXggZDIzOTU2ZTEzZTNhNzguLjQ4NDgyOTJjMWQ4NDAzIDEwMDY0 NAotLS0gYS9zcmNwa2dzL3BpcGV3aXJlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcGlwZXdpcmUv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwaXBld2lyZScK IHBrZ25hbWU9cGlwZXdpcmUKIHZlcnNpb249MS4wLjMKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIK IGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iCiAgLS1hdXRvLWZlYXR1cmVzPWVu YWJsZWQKCkZyb20gMDQyOWJkMzRlNTBjNjliNjAwMTZkNWMzMTJlNzRkMGEyMzVlOGM4ZCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogY2luZXJlYTAgPGNpbmVyZWEwQGRpc3Jvb3Qub3Jn PgpEYXRlOiBUaHUsIDcgTWFyIDIwMjQgMTA6MzU6MjkgLTA1MDAKU3ViamVjdDogW1BBVENIIDUv Nl0gZ3N0LXBsdWdpbnMtYmFkMTogcmV2YnVtcCBmb3Igd2VicnRjLWF1ZGlvLXByb2Nlc3Npbmct MS4zCgotLS0KIHNyY3BrZ3MvZ3N0LXBsdWdpbnMtYmFkMS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ3N0LXBsdWdpbnMtYmFkMS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3N0LXBsdWdpbnMtYmFk MS90ZW1wbGF0ZQppbmRleCAxMGRjNDlmNGMxNTFiYy4uZGM0ZGI5MTBjNDNlODQgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ3N0LXBsdWdpbnMtYmFkMS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dzdC1w bHVnaW5zLWJhZDEvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdnc3QtcGx1Z2lucy1iYWQxJwogcGtnbmFtZT1nc3QtcGx1Z2lucy1iYWQxCiB2ZXJzaW9uPTEu MjIuOQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9z dHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EcGFja2FnZS1vcmlnaW49aHR0cHM6Ly92b2lk bGludXgub3JnIC1EZG9jPWRpc2FibGVkCgpGcm9tIDYyOTE5NTE0ZjdiYzVhYjVkZGE0NmZkYjY3 MDVmYWFiZTg2NzI1ZTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNpbmVyZWEwIDxj aW5lcmVhMEBkaXNyb290Lm9yZz4KRGF0ZTogVGh1LCA3IE1hciAyMDI0IDEwOjM1OjU1IC0wNTAw ClN1YmplY3Q6IFtQQVRDSCA2LzZdIGJhcmVzaXA6IHJldmJ1bXAgZm9yIHdlYnJ0Yy1hdWRpby1w cm9jZXNzaW5nLTEuMwoKLS0tCiBzcmNwa2dzL2JhcmVzaXAvdGVtcGxhdGUgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2JhcmVzaXAvdGVtcGxhdGUgYi9zcmNwa2dzL2JhcmVzaXAvdGVtcGxhdGUKaW5kZXgg MTJjODk1NGVmN2I5YjcuLmIxNmI2N2JlYWI4ZDJiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2JhcmVz aXAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9iYXJlc2lwL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmFyZXNpcCcKIHBrZ25hbWU9YmFyZXNpcAogdmVyc2lv bj0zLjYuMAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3Rt YWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnbGliLWRldmVsIgogbWFrZWRlcGVuZHM9ImxpYmdzbS1k ZXZlbCBsaWJwbmctZGV2ZWwgb3BlbnNzbC1kZXZlbCBsaWJzbmRmaWxlLWRldmVsCg== --===============2802522369604943511==--