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: Kate Hsuan To: git-commits@fedoraproject.org Subject: [rpms/libfprint] f43: Add EGIS readers (rhbz#2480599) Date: Fri, 26 Jun 2026 07:19:22 GMT Message-ID: <178245836253.1.9282662469454704043.rpms-libfprint-f99efa9929b2@fedoraproject.org> List-ID: X-Git-Repo: rpms/libfprint X-Git-Branch: f43 X-Git-Rev: f99efa9929b2fd0a4cd0d165d8d76d75c66e8501 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvbGliZnByaW50CiAgICAgICAgICAgIEJyYW5jaCA6IGY0MwogICAgICAgICAg ICBDb21taXQgOiBmOTllZmE5OTI5YjJmZDBhNGNkMGQxNjVkOGQ3NmQ3NWM2NmU4NTAxCiAgICAg ICAgICAgIEF1dGhvciA6IEthdGUgSHN1YW4gPGhwYUByZWRoYXQuY29tPgogICAgICAgICAgICBE YXRlICAgOiAyMDI2LTA2LTI2VDE0OjUxOjAxKzA4OjAwCiAgICAgICAgICAgIFN0YXRzICA6ICs0 MDM3Ly0wIGluIDggZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRwczovL3NyYy5mZWRv cmFwcm9qZWN0Lm9yZy9ycG1zL2xpYmZwcmludC9jL2Y5OWVmYTk5MjliMmZkMGE0Y2QwZDE2NWQ4 ZDc2ZDc1YzY2ZTg1MDE/YnJhbmNoPWY0MwoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICBB ZGQgRUdJUyByZWFkZXJzIChyaGJ6IzI0ODA1OTkpCgpBZGQgRUdJUyBzdXBwb3J0LiBUaGUgTVIg Y2FuIGJlIGZvdW5kIGF0Cmh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9saWJmcHJpbnQv bGliZnByaW50Ly0vbWVyZ2VfcmVxdWVzdHMvNTYxCgpTaWduZWQtb2ZmLWJ5OiBLYXRlIEhzdWFu IDxocGFAcmVkaGF0LmNvbT4KCi0tLQpkaWZmIC0tZ2l0IGEvMDAwMS1kb2MtSW5jbHVkZS1CaW5h cnktYnVmZmVyLUktTy1zZWN0aW9uLWZvci10aGUtYnl0ZS1yLnBhdGNoIGIvMDAwMS1kb2MtSW5j bHVkZS1CaW5hcnktYnVmZmVyLUktTy1zZWN0aW9uLWZvci10aGUtYnl0ZS1yLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkZjA1NjUKLS0tIC9kZXYvbnVsbAorKysg Yi8wMDAxLWRvYy1JbmNsdWRlLUJpbmFyeS1idWZmZXItSS1PLXNlY3Rpb24tZm9yLXRoZS1ieXRl LXIucGF0Y2gKQEAgLTAsMCArMSwxNjIgQEAKK0Zyb20gOWMxNDAwMzZlOWM0ZDE3M2ExOWI4ZTNk NjE4NzUyNmQ2OGZiZDk3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/ cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5Pz0gPG1haWxAM3YxbjAubmV0 PgorRGF0ZTogU2F0LCAyMSBGZWIgMjAyNiAwNTo0MDo1NiArMDEwMAorU3ViamVjdDogW1BBVENI IDEvNl0gZG9jOiBJbmNsdWRlIEJpbmFyeSBidWZmZXIgSS9PIHNlY3Rpb24gZm9yIHRoZSBieXRl CisgcmVhZGVyL3dyaXRlcgorCistLS0KKyBkb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0IHwg MTIwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgZG9jL2xpYmZwcmludC1k b2NzLnhtbCAgICAgICB8ICAgNiArKworIDIgZmlsZXMgY2hhbmdlZCwgMTI2IGluc2VydGlvbnMo KykKKworZGlmZiAtLWdpdCBhL2RvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQgYi9kb2MvbGli ZnByaW50LTItc2VjdGlvbnMudHh0CitpbmRleCAwZmIwY2ZhLi45ZjM4MDRmIDEwMDY0NAorLS0t IGEvZG9jL2xpYmZwcmludC0yLXNlY3Rpb25zLnR4dAorKysrIGIvZG9jL2xpYmZwcmludC0yLXNl Y3Rpb25zLnR4dAorQEAgLTEzNCw2ICsxMzQsMTI2IEBAIGZwaV9saW5lX2FzbWJsX2N0eAorIGZw aV9hc3NlbWJsZV9saW5lcworIDwvU0VDVElPTj4KKyAKKys8U0VDVElPTj4KKys8RklMRT5mcGkt Ynl0ZS1yZWFkZXI8L0ZJTEU+CisrPFRJVExFPkZwaUJ5dGVSZWFkZXI8L1RJVExFPgorK0ZwaUJ5 dGVSZWFkZXIKKytmcGlfYnl0ZV9yZWFkZXJfbmV3CisrZnBpX2J5dGVfcmVhZGVyX2ZyZWUKKytm cGlfYnl0ZV9yZWFkZXJfaW5pdAorK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX3N1Yl9yZWFkZXIKKytm cGlfYnl0ZV9yZWFkZXJfZ2V0X3N1Yl9yZWFkZXIKKytmcGlfYnl0ZV9yZWFkZXJfc2V0X3Bvcwor K2ZwaV9ieXRlX3JlYWRlcl9nZXRfcG9zCisrZnBpX2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmcK KytmcGlfYnl0ZV9yZWFkZXJfZ2V0X3NpemUKKytmcGlfYnl0ZV9yZWFkZXJfc2tpcAorK2ZwaV9i eXRlX3JlYWRlcl9nZXRfdWludDgKKytmcGlfYnl0ZV9yZWFkZXJfZ2V0X2ludDgKKytmcGlfYnl0 ZV9yZWFkZXJfcGVla191aW50OAorK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX2ludDgKKytmcGlfYnl0 ZV9yZWFkZXJfZ2V0X3VpbnQxNl9sZQorK2ZwaV9ieXRlX3JlYWRlcl9nZXRfaW50MTZfbGUKKytm cGlfYnl0ZV9yZWFkZXJfcGVla191aW50MTZfbGUKKytmcGlfYnl0ZV9yZWFkZXJfcGVla19pbnQx Nl9sZQorK2ZwaV9ieXRlX3JlYWRlcl9nZXRfdWludDE2X2JlCisrZnBpX2J5dGVfcmVhZGVyX2dl dF9pbnQxNl9iZQorK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX3VpbnQxNl9iZQorK2ZwaV9ieXRlX3Jl YWRlcl9wZWVrX2ludDE2X2JlCisrZnBpX2J5dGVfcmVhZGVyX2dldF91aW50MjRfbGUKKytmcGlf Ynl0ZV9yZWFkZXJfZ2V0X2ludDI0X2xlCisrZnBpX2J5dGVfcmVhZGVyX3BlZWtfdWludDI0X2xl CisrZnBpX2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfbGUKKytmcGlfYnl0ZV9yZWFkZXJfZ2V0X3Vp bnQyNF9iZQorK2ZwaV9ieXRlX3JlYWRlcl9nZXRfaW50MjRfYmUKKytmcGlfYnl0ZV9yZWFkZXJf cGVla191aW50MjRfYmUKKytmcGlfYnl0ZV9yZWFkZXJfcGVla19pbnQyNF9iZQorK2ZwaV9ieXRl X3JlYWRlcl9nZXRfdWludDMyX2xlCisrZnBpX2J5dGVfcmVhZGVyX2dldF9pbnQzMl9sZQorK2Zw aV9ieXRlX3JlYWRlcl9wZWVrX3VpbnQzMl9sZQorK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX2ludDMy X2xlCisrZnBpX2J5dGVfcmVhZGVyX2dldF91aW50MzJfYmUKKytmcGlfYnl0ZV9yZWFkZXJfZ2V0 X2ludDMyX2JlCisrZnBpX2J5dGVfcmVhZGVyX3BlZWtfdWludDMyX2JlCisrZnBpX2J5dGVfcmVh ZGVyX3BlZWtfaW50MzJfYmUKKytmcGlfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQ2NF9sZQorK2ZwaV9i eXRlX3JlYWRlcl9nZXRfaW50NjRfbGUKKytmcGlfYnl0ZV9yZWFkZXJfcGVla191aW50NjRfbGUK KytmcGlfYnl0ZV9yZWFkZXJfcGVla19pbnQ2NF9sZQorK2ZwaV9ieXRlX3JlYWRlcl9nZXRfdWlu dDY0X2JlCisrZnBpX2J5dGVfcmVhZGVyX2dldF9pbnQ2NF9iZQorK2ZwaV9ieXRlX3JlYWRlcl9w ZWVrX3VpbnQ2NF9iZQorK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX2ludDY0X2JlCisrZnBpX2J5dGVf cmVhZGVyX2dldF9mbG9hdDMyX2xlCisrZnBpX2J5dGVfcmVhZGVyX3BlZWtfZmxvYXQzMl9sZQor K2ZwaV9ieXRlX3JlYWRlcl9nZXRfZmxvYXQzMl9iZQorK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX2Zs b2F0MzJfYmUKKytmcGlfYnl0ZV9yZWFkZXJfZ2V0X2Zsb2F0NjRfbGUKKytmcGlfYnl0ZV9yZWFk ZXJfcGVla19mbG9hdDY0X2xlCisrZnBpX2J5dGVfcmVhZGVyX2dldF9mbG9hdDY0X2JlCisrZnBp X2J5dGVfcmVhZGVyX3BlZWtfZmxvYXQ2NF9iZQorK2ZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YQor K2ZwaV9ieXRlX3JlYWRlcl9wZWVrX2RhdGEKKytmcGlfYnl0ZV9yZWFkZXJfZHVwX2RhdGEKKytm cGlfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyCisrZnBpX2J5dGVfcmVhZGVyX21hc2tl ZF9zY2FuX3VpbnQzMl9wZWVrCisrZnBpX2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nCisrZnBpX2J5 dGVfcmVhZGVyX3NraXBfc3RyaW5nX3V0ZjgKKytmcGlfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmdf dXRmMTYKKytmcGlfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmdfdXRmMzIKKytmcGlfYnl0ZV9yZWFk ZXJfcGVla19zdHJpbmcKKytmcGlfYnl0ZV9yZWFkZXJfcGVla19zdHJpbmdfdXRmOAorK2ZwaV9i eXRlX3JlYWRlcl9nZXRfc3RyaW5nX3V0ZjgKKytmcGlfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZ191 dGY4CisrZnBpX2J5dGVfcmVhZGVyX2R1cF9zdHJpbmdfdXRmMTYKKytmcGlfYnl0ZV9yZWFkZXJf ZHVwX3N0cmluZ191dGYzMgorKzwvU0VDVElPTj4KKysKKys8U0VDVElPTj4KKys8RklMRT5mcGkt Ynl0ZS13cml0ZXI8L0ZJTEU+CisrPFRJVExFPkZwaUJ5dGVXcml0ZXI8L1RJVExFPgorK0ZwaUJ5 dGVXcml0ZXIKKytmcGlfYnl0ZV93cml0ZXJfbmV3CisrZnBpX2J5dGVfd3JpdGVyX25ld193aXRo X3NpemUKKytmcGlfYnl0ZV93cml0ZXJfbmV3X3dpdGhfZGF0YQorK2ZwaV9ieXRlX3dyaXRlcl9p bml0CisrZnBpX2J5dGVfd3JpdGVyX2luaXRfd2l0aF9zaXplCisrZnBpX2J5dGVfd3JpdGVyX2lu aXRfd2l0aF9kYXRhCisrZnBpX2J5dGVfd3JpdGVyX3Jlc2V0CisrZnBpX2J5dGVfd3JpdGVyX3Jl c2V0X2FuZF9nZXRfZGF0YQorK2ZwaV9ieXRlX3dyaXRlcl9mcmVlCisrZnBpX2J5dGVfd3JpdGVy X2ZyZWVfYW5kX2dldF9kYXRhCisrZnBpX2J5dGVfd3JpdGVyX2dldF9yZW1haW5pbmcKKytmcGlf Ynl0ZV93cml0ZXJfZW5zdXJlX2ZyZWVfc3BhY2UKKytmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4 CisrZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50MTZfYmUKKytmcGlfYnl0ZV93cml0ZXJfcHV0X3Vp bnQyNF9iZQorK2ZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDMyX2JlCisrZnBpX2J5dGVfd3JpdGVy X3B1dF91aW50NjRfYmUKKytmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQxNl9sZQorK2ZwaV9ieXRl X3dyaXRlcl9wdXRfdWludDI0X2xlCisrZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50MzJfbGUKKytm cGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ2NF9sZQorK2ZwaV9ieXRlX3dyaXRlcl9wdXRfaW50OAor K2ZwaV9ieXRlX3dyaXRlcl9wdXRfaW50MTZfYmUKKytmcGlfYnl0ZV93cml0ZXJfcHV0X2ludDI0 X2JlCisrZnBpX2J5dGVfd3JpdGVyX3B1dF9pbnQzMl9iZQorK2ZwaV9ieXRlX3dyaXRlcl9wdXRf aW50NjRfYmUKKytmcGlfYnl0ZV93cml0ZXJfcHV0X2ludDE2X2xlCisrZnBpX2J5dGVfd3JpdGVy X3B1dF9pbnQyNF9sZQorK2ZwaV9ieXRlX3dyaXRlcl9wdXRfaW50MzJfbGUKKytmcGlfYnl0ZV93 cml0ZXJfcHV0X2ludDY0X2xlCisrZnBpX2J5dGVfd3JpdGVyX3B1dF9mbG9hdDMyX2JlCisrZnBp X2J5dGVfd3JpdGVyX3B1dF9mbG9hdDY0X2JlCisrZnBpX2J5dGVfd3JpdGVyX3B1dF9mbG9hdDMy X2xlCisrZnBpX2J5dGVfd3JpdGVyX3B1dF9mbG9hdDY0X2xlCisrZnBpX2J5dGVfd3JpdGVyX3B1 dF9zdHJpbmdfdXRmOAorK2ZwaV9ieXRlX3dyaXRlcl9wdXRfc3RyaW5nX3V0ZjE2CisrZnBpX2J5 dGVfd3JpdGVyX3B1dF9zdHJpbmdfdXRmMzIKKytmcGlfYnl0ZV93cml0ZXJfcHV0X2RhdGEKKytm cGlfYnl0ZV93cml0ZXJfZmlsbAorKzwvU0VDVElPTj4KKysKKyA8U0VDVElPTj4KKyA8RklMRT5m cGktY29udGV4dDwvRklMRT4KKyBmcGlfZ2V0X2RyaXZlcl90eXBlcworZGlmZiAtLWdpdCBhL2Rv Yy9saWJmcHJpbnQtZG9jcy54bWwgYi9kb2MvbGliZnByaW50LWRvY3MueG1sCitpbmRleCAwYTU3 ZWZiLi4wOWJiODI2IDEwMDY0NAorLS0tIGEvZG9jL2xpYmZwcmludC1kb2NzLnhtbAorKysrIGIv ZG9jL2xpYmZwcmludC1kb2NzLnhtbAorQEAgLTQ4LDYgKzQ4LDEyIEBACisgICAgICAgPHhpOmlu Y2x1ZGUgaHJlZj0ieG1sL2ZwaS1sb2cueG1sIi8+CisgICAgIDwvY2hhcHRlcj4KKyAKKysgICAg PGNoYXB0ZXIgaWQ9ImRyaXZlci1kYXRhIj4KKysgICAgICA8dGl0bGU+QmluYXJ5IGJ1ZmZlciBJ L088L3RpdGxlPgorKyAgICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9mcGktYnl0ZS1yZWFkZXIu eG1sIi8+CisrICAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2ZwaS1ieXRlLXdyaXRlci54bWwi Lz4KKysgICAgPC9jaGFwdGVyPgorKworICAgICA8Y2hhcHRlciBpZD0iZHJpdmVyLWltZyI+Cisg ICAgICAgPHRpdGxlPkltYWdlIG1hbmlwdWxhdGlvbjwvdGl0bGU+CisgICAgICAgPHhpOmluY2x1 ZGUgaHJlZj0ieG1sL2ZwaS1pbWFnZS54bWwiLz4KKy0tIAorMi41NC4wCisKCmRpZmYgLS1naXQg YS8wMDAyLWZwaS1ieXRlLXdyaXRlci1BZGQtQVBJcy10by13cml0ZS1hbmQtZ2V0LUdCeXRlcy5w YXRjaCBiLzAwMDItZnBpLWJ5dGUtd3JpdGVyLUFkZC1BUElzLXRvLXdyaXRlLWFuZC1nZXQtR0J5 dGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ODNjYzkKLS0t IC9kZXYvbnVsbAorKysgYi8wMDAyLWZwaS1ieXRlLXdyaXRlci1BZGQtQVBJcy10by13cml0ZS1h bmQtZ2V0LUdCeXRlcy5wYXRjaApAQCAtMCwwICsxLDE0NSBAQAorRnJvbSAxNDc2M2QyOWNmMWU1 ZWM5NjI4ZmQ2MzkwMzQ2NzVlOWIyMmFmZjFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/PSA8bWFp bEAzdjFuMC5uZXQ+CitEYXRlOiBNb24sIDggSnVuIDIwMjYgMTQ6MTE6MDkgKzAyMDAKK1N1Ympl Y3Q6IFtQQVRDSCAyLzZdIGZwaS1ieXRlLXdyaXRlcjogQWRkIEFQSXMgdG8gd3JpdGUgYW5kIGdl dCBHQnl0ZXMKKworSXQgbWFrZXMgaXQgaGFuZGllciB0byBoYW5kbGUgZGF0YSBlbGVtZW50cyB3 aXRob3V0IGhhdmluZyB0byBrZWVwIHNpemUKK2FuZCBkYXRhIHNlcGFyYXRlZAorLS0tCisgZG9j L2xpYmZwcmludC0yLXNlY3Rpb25zLnR4dCB8ICAyICsrCisgbGliZnByaW50L2ZwaS1ieXRlLXdy aXRlci5jICB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGxpYmZw cmludC9mcGktYnl0ZS13cml0ZXIuaCAgfCAyMiArKysrKysrKysrKysrKysrKysrKworIDMgZmls ZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZG9jL2xpYmZwcmlu dC0yLXNlY3Rpb25zLnR4dCBiL2RvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQKK2luZGV4IDlm MzgwNGYuLjk5NWFkNTAgMTAwNjQ0CistLS0gYS9kb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0 CisrKysgYi9kb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0CitAQCAtMjIwLDExICsyMjAsMTMg QEAgZnBpX2J5dGVfd3JpdGVyX2luaXQKKyBmcGlfYnl0ZV93cml0ZXJfaW5pdF93aXRoX3NpemUK KyBmcGlfYnl0ZV93cml0ZXJfaW5pdF93aXRoX2RhdGEKKyBmcGlfYnl0ZV93cml0ZXJfcmVzZXQK KytmcGlfYnl0ZV93cml0ZXJfcmVzZXRfYW5kX2dldF9ieXRlcworIGZwaV9ieXRlX3dyaXRlcl9y ZXNldF9hbmRfZ2V0X2RhdGEKKyBmcGlfYnl0ZV93cml0ZXJfZnJlZQorIGZwaV9ieXRlX3dyaXRl cl9mcmVlX2FuZF9nZXRfZGF0YQorIGZwaV9ieXRlX3dyaXRlcl9nZXRfcmVtYWluaW5nCisgZnBp X2J5dGVfd3JpdGVyX2Vuc3VyZV9mcmVlX3NwYWNlCisrZnBpX2J5dGVfd3JpdGVyX3B1dF9ieXRl cworIGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDgKKyBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQx Nl9iZQorIGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDI0X2JlCitkaWZmIC0tZ2l0IGEvbGliZnBy aW50L2ZwaS1ieXRlLXdyaXRlci5jIGIvbGliZnByaW50L2ZwaS1ieXRlLXdyaXRlci5jCitpbmRl eCBjYjM1MTRhLi4wMGZmNDQ3IDEwMDY0NAorLS0tIGEvbGliZnByaW50L2ZwaS1ieXRlLXdyaXRl ci5jCisrKysgYi9saWJmcHJpbnQvZnBpLWJ5dGUtd3JpdGVyLmMKK0BAIC0yMTksNiArMjE5LDM2 IEBAIGZwaV9ieXRlX3dyaXRlcl9yZXNldF9hbmRfZ2V0X2RhdGEgKEZwaUJ5dGVXcml0ZXIgKiB3 cml0ZXIpCisgICByZXR1cm4gZGF0YTsKKyB9CisgCisrLyoqCisrICogZnBpX2J5dGVfd3JpdGVy X3Jlc2V0X2FuZF9nZXRfYnl0ZXM6CisrICogQHdyaXRlcjogI0ZwaUJ5dGVXcml0ZXIgaW5zdGFu Y2UKKysgKgorKyAqIFJlc2V0cyBAd3JpdGVyIGFuZCByZXR1cm5zIHRoZSBjdXJyZW50IGRhdGEg YXMgYSAjR0J5dGVzLgorKyAqCisrICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiB0aGUgY3Vy cmVudCBkYXRhIGFzIGEgI0dCeXRlcy4KKysgKi8KKytHQnl0ZXMgKgorK2ZwaV9ieXRlX3dyaXRl cl9yZXNldF9hbmRfZ2V0X2J5dGVzIChGcGlCeXRlV3JpdGVyICogd3JpdGVyKQorK3sKKysgIEdC eXRlcyAqYnl0ZXM7CisrCisrICBnX3JldHVybl92YWxfaWZfZmFpbCAod3JpdGVyICE9IE5VTEws IE5VTEwpOworKworKyAgaWYgKCF3cml0ZXItPm93bmVkKQorKyAgICB7CisrICAgICAgYnl0ZXMg PSBnX2J5dGVzX25ldyAoZ19zdGVhbF9wb2ludGVyICgmd3JpdGVyLT5wYXJlbnQuZGF0YSksCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLT5wYXJlbnQuc2l6ZSk7CisrICAgIH0K KysgIGVsc2UKKysgICAgeworKyAgICAgIGJ5dGVzID0gZ19ieXRlc19uZXdfdGFrZSAoKGdwb2lu dGVyKSBnX3N0ZWFsX3BvaW50ZXIgKCZ3cml0ZXItPnBhcmVudC5kYXRhKSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHdyaXRlci0+cGFyZW50LnNpemUpOworKyAgICB9CisrCisr ICBmcGlfYnl0ZV93cml0ZXJfcmVzZXQgKHdyaXRlcik7CisrICByZXR1cm4gZ19zdGVhbF9wb2lu dGVyICgmYnl0ZXMpOworK30KKysKKyAvKioKKyAgKiBmcGlfYnl0ZV93cml0ZXJfZnJlZToKKyAg KiBAd3JpdGVyOiAoaW4pICh0cmFuc2ZlciBmdWxsKTogI0ZwaUJ5dGVXcml0ZXIgaW5zdGFuY2UK K0BAIC02MDIsNiArNjMyLDE1IEBAIENSRUFURV9XUklURV9TVFJJTkdfRlVOQyAoMzIsIGd1aW50 MzIpOworICAqCisgICogUmV0dXJuczogJVRSVUUgaWYgdGhlIHZhbHVlIGNvdWxkIGJlIHdyaXR0 ZW4KKyAgKi8KKysvKioKKysgKiBmcGlfYnl0ZV93cml0ZXJfcHV0X2J5dGVzOgorKyAqIEB3cml0 ZXI6ICNGcGlCeXRlV3JpdGVyIGluc3RhbmNlCisrICogQGJ5dGVzOiAodHJhbnNmZXIgbm9uZSk6 IERhdGEgdG8gd3JpdGUKKysgKgorKyAqIFdyaXRlcyB0aGUgY29udGVudHMgb2YgQGJ5dGVzIHRv IEB3cml0ZXIuCisrICoKKysgKiBSZXR1cm5zOiAlVFJVRSBpZiB0aGUgdmFsdWUgY291bGQgYmUg d3JpdHRlbgorKyAqLworIC8qKgorICAqIGZwaV9ieXRlX3dyaXRlcl9maWxsOgorICAqIEB3cml0 ZXI6ICNGcGlCeXRlV3JpdGVyIGluc3RhbmNlCitkaWZmIC0tZ2l0IGEvbGliZnByaW50L2ZwaS1i eXRlLXdyaXRlci5oIGIvbGliZnByaW50L2ZwaS1ieXRlLXdyaXRlci5oCitpbmRleCA5YjIxYjVm Li42OTllODVlIDEwMDY0NAorLS0tIGEvbGliZnByaW50L2ZwaS1ieXRlLXdyaXRlci5oCisrKysg Yi9saWJmcHJpbnQvZnBpLWJ5dGUtd3JpdGVyLmgKK0BAIC03Nyw2ICs3Nyw5IEBAIHZvaWQgICAg ICAgICAgICBmcGlfYnl0ZV93cml0ZXJfcmVzZXQgICAgICAgICAgICAgICAgICAgKEZwaUJ5dGVX cml0ZXIgKndyaXRlcik7CisgCisgZ3VpbnQ4ICogICAgICAgIGZwaV9ieXRlX3dyaXRlcl9yZXNl dF9hbmRfZ2V0X2RhdGEgICAgICAoRnBpQnl0ZVdyaXRlciAqd3JpdGVyKTsKKyAKKysKKytHQnl0 ZXMgKiAgICAgICAgZnBpX2J5dGVfd3JpdGVyX3Jlc2V0X2FuZF9nZXRfYnl0ZXMgICAgIChGcGlC eXRlV3JpdGVyICp3cml0ZXIpOworKworIC8qKgorICAqIGZwaV9ieXRlX3dyaXRlcl9nZXRfcG9z OgorICAqIEB3cml0ZXI6ICNGcGlCeXRlV3JpdGVyIGluc3RhbmNlCitAQCAtMjA0LDYgKzIwNyw5 IEBAIGdib29sZWFuICAgICAgICBmcGlfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0NjRfbGUgICAgKEZw aUJ5dGVXcml0ZXIgKndyaXRlciwgZ2RvdWJsCisgZ2Jvb2xlYW4gICAgICAgIGZwaV9ieXRlX3dy aXRlcl9wdXRfZGF0YSAgICAgICAgICAoRnBpQnl0ZVdyaXRlciAqd3JpdGVyLCBjb25zdCBndWlu dDggKmRhdGEsIGd1aW50IHNpemUpOworIAorIAorK2dib29sZWFuICAgICAgICBmcGlfYnl0ZV93 cml0ZXJfcHV0X2J5dGVzICAgICAgICAgKEZwaUJ5dGVXcml0ZXIgKndyaXRlciwgY29uc3QgR0J5 dGVzICpieXRlcyk7CisrCisrCisgZ2Jvb2xlYW4gICAgICAgIGZwaV9ieXRlX3dyaXRlcl9maWxs ICAgICAgICAgICAgICAoRnBpQnl0ZVdyaXRlciAqd3JpdGVyLCBndWludDggdmFsdWUsIGd1aW50 IHNpemUpOworIAorIAorQEAgLTMzOCw2ICszNDQsMTggQEAgZnBpX2J5dGVfd3JpdGVyX3B1dF9k YXRhX2lubGluZSAoRnBpQnl0ZVdyaXRlciAqIHdyaXRlciwgY29uc3QgZ3VpbnQ4ICogZGF0YSwK KyAgIHJldHVybiBUUlVFOworIH0KKyAKKytzdGF0aWMgaW5saW5lIGdib29sZWFuCisrZnBpX2J5 dGVfd3JpdGVyX3B1dF9ieXRlc19pbmxpbmUgKEZwaUJ5dGVXcml0ZXIgKiB3cml0ZXIsIGNvbnN0 IEdCeXRlcyAqIGJ5dGVzKQorK3sKKysgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh3cml0ZXIgIT0g TlVMTCwgRkFMU0UpOworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGJ5dGVzICE9IE5VTEwsIEZB TFNFKTsKKysgIGNvbnN0IGd1aW50OCAqZGF0YTsKKysgIGdzaXplIHNpemU7CisrCisrICBkYXRh ID0gZ19ieXRlc19nZXRfZGF0YSAoKEdCeXRlcyAqKSBieXRlcywgJnNpemUpOworKyAgcmV0dXJu IGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YV9pbmxpbmUgKHdyaXRlciwgZGF0YSwgc2l6ZSk7Cisr fQorKworIHN0YXRpYyBpbmxpbmUgdm9pZAorIGZwaV9ieXRlX3dyaXRlcl9maWxsX3VuY2hlY2tl ZCAoRnBpQnl0ZVdyaXRlciAqIHdyaXRlciwgZ3VpbnQ4IHZhbHVlLCBndWludCBzaXplKQorIHsK K0BAIC00MTMsNiArNDMxLDEwIEBAIGZwaV9ieXRlX3dyaXRlcl9maWxsX2lubGluZSAoRnBpQnl0 ZVdyaXRlciAqIHdyaXRlciwgZ3VpbnQ4IHZhbHVlLCBndWludCBzaXplKQorIAorICNkZWZpbmUg ZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhKHdyaXRlciwgZGF0YSwgc2l6ZSkgXAorICAgICBHX0xJ S0VMWSAoZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhX2lubGluZSAod3JpdGVyLCBkYXRhLCBzaXpl KSkKKysjZGVmaW5lIGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YV9zdGF0aWMod3JpdGVyLCBkYXRh KSBcCisrICAgIEdfTElLRUxZIChmcGlfYnl0ZV93cml0ZXJfcHV0X2RhdGFfaW5saW5lICh3cml0 ZXIsIGRhdGEsIHNpemVvZiAoZGF0YSkpKQorKyNkZWZpbmUgZnBpX2J5dGVfd3JpdGVyX3B1dF9i eXRlcyh3cml0ZXIsIGJ5dGVzKSBcCisrICAgIEdfTElLRUxZIChmcGlfYnl0ZV93cml0ZXJfcHV0 X2J5dGVzX2lubGluZSAod3JpdGVyLCBieXRlcykpCisgI2RlZmluZSBmcGlfYnl0ZV93cml0ZXJf ZmlsbCh3cml0ZXIsIHZhbCwgc2l6ZSkgXAorICAgICBHX0xJS0VMWSAoZnBpX2J5dGVfd3JpdGVy X2ZpbGxfaW5saW5lICh3cml0ZXIsIHZhbCwgc2l6ZSkpCisgCistLSAKKzIuNTQuMAorCgpkaWZm IC0tZ2l0IGEvMDAwMy1mcGktYnl0ZS1yZWFkZXItQWRkLXN1cHBvcnQtdG8tcmVhZC1hbmQtZ2V0 LXBlZWstR0J5LnBhdGNoIGIvMDAwMy1mcGktYnl0ZS1yZWFkZXItQWRkLXN1cHBvcnQtdG8tcmVh ZC1hbmQtZ2V0LXBlZWstR0J5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjM1MjdiYWMKLS0tIC9kZXYvbnVsbAorKysgYi8wMDAzLWZwaS1ieXRlLXJlYWRlci1BZGQt c3VwcG9ydC10by1yZWFkLWFuZC1nZXQtcGVlay1HQnkucGF0Y2gKQEAgLTAsMCArMSwxODcgQEAK K0Zyb20gZGM0OGFiOGI0MDE4ZDFjMWNjNDVjYWZhYWZiZGFjMGUzZDc3MjZmZCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJl dmk9QzM9QjFvPTI5Pz0gPG1haWxAM3YxbjAubmV0PgorRGF0ZTogTW9uLCA4IEp1biAyMDI2IDE0 OjE1OjI4ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMy82XSBmcGktYnl0ZS1yZWFkZXI6IEFkZCBz dXBwb3J0IHRvIHJlYWQgYW5kIGdldC9wZWVrIEdCeXRlcworCistLS0KKyBkb2MvbGliZnByaW50 LTItc2VjdGlvbnMudHh0IHwgIDQgKysrCisgbGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5jICB8 IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGxpYmZwcmludC9mcGkt Ynl0ZS1yZWFkZXIuaCAgfCA0MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMyBm aWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9kb2MvbGliZnBy aW50LTItc2VjdGlvbnMudHh0IGIvZG9jL2xpYmZwcmludC0yLXNlY3Rpb25zLnR4dAoraW5kZXgg OTk1YWQ1MC4uNTJkZGI0MiAxMDA2NDQKKy0tLSBhL2RvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50 eHQKKysrKyBiL2RvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQKK0BAIC0xMzksOCArMTM5LDEw IEBAIGZwaV9hc3NlbWJsZV9saW5lcworIDxUSVRMRT5GcGlCeXRlUmVhZGVyPC9USVRMRT4KKyBG cGlCeXRlUmVhZGVyCisgZnBpX2J5dGVfcmVhZGVyX25ldworK2ZwaV9ieXRlX3JlYWRlcl9uZXdf Ynl0ZXMKKyBmcGlfYnl0ZV9yZWFkZXJfZnJlZQorIGZwaV9ieXRlX3JlYWRlcl9pbml0CisrZnBp X2J5dGVfcmVhZGVyX2luaXRfYnl0ZXMKKyBmcGlfYnl0ZV9yZWFkZXJfcGVla19zdWJfcmVhZGVy CisgZnBpX2J5dGVfcmVhZGVyX2dldF9zdWJfcmVhZGVyCisgZnBpX2J5dGVfcmVhZGVyX3NldF9w b3MKK0BAIC0xNDgsNiArMTUwLDggQEAgZnBpX2J5dGVfcmVhZGVyX2dldF9wb3MKKyBmcGlfYnl0 ZV9yZWFkZXJfZ2V0X3JlbWFpbmluZworIGZwaV9ieXRlX3JlYWRlcl9nZXRfc2l6ZQorIGZwaV9i eXRlX3JlYWRlcl9za2lwCisrZnBpX2J5dGVfcmVhZGVyX2dldF9ieXRlcworK2ZwaV9ieXRlX3Jl YWRlcl9wZWVrX2J5dGVzCisgZnBpX2J5dGVfcmVhZGVyX2dldF91aW50OAorIGZwaV9ieXRlX3Jl YWRlcl9nZXRfaW50OAorIGZwaV9ieXRlX3JlYWRlcl9wZWVrX3VpbnQ4CitkaWZmIC0tZ2l0IGEv bGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5jIGIvbGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5j CitpbmRleCAyM2JjNWU3Li4xNTkxODI1IDEwMDY0NAorLS0tIGEvbGliZnByaW50L2ZwaS1ieXRl LXJlYWRlci5jCisrKysgYi9saWJmcHJpbnQvZnBpLWJ5dGUtcmVhZGVyLmMKK0BAIC02NSw2ICs2 NSwzMSBAQCBmcGlfYnl0ZV9yZWFkZXJfbmV3IChjb25zdCBndWludDggKiBkYXRhLCBndWludCBz aXplKQorICAgcmV0dXJuIHJldDsKKyB9CisgCisrLyoqCisrICogZnBpX2J5dGVfcmVhZGVyX25l d19ieXRlczogKHNraXApCisrICogQGJ5dGVzOiAoaW4pICh0cmFuc2ZlciBub25lKTogYSAjR0J5 dGVzIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlCisrICogICAgICNGcGlCeXRlUmVhZGVyIHNob3Vs ZCByZWFkCisrICoKKysgKiBDcmVhdGUgYSBuZXcgI0ZwaUJ5dGVSZWFkZXIgaW5zdGFuY2UsIHdo aWNoIHdpbGwgcmVhZCBmcm9tIEBieXRlcy4KKysgKgorKyAqIEZyZWUtZnVuY3Rpb246IGZwaV9i eXRlX3JlYWRlcl9mcmVlCisrICoKKysgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IGEgbmV3 ICNGcGlCeXRlUmVhZGVyIGluc3RhbmNlCisrICovCisrRnBpQnl0ZVJlYWRlciAqCisrZnBpX2J5 dGVfcmVhZGVyX25ld19ieXRlcyAoR0J5dGVzICogYnl0ZXMpCisreworKyAgY29uc3QgZ3VpbnQ4 ICpkYXRhOworKyAgZ3NpemUgc2l6ZSA9IDA7CisrCisrICBnX3JldHVybl92YWxfaWZfZmFpbCAo Ynl0ZXMgIT0gTlVMTCwgTlVMTCk7CisrCisrICBkYXRhID0gZ19ieXRlc19nZXRfZGF0YSAoYnl0 ZXMsICZzaXplKTsKKysgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzaXplIDw9IEdfTUFYVUlOVCwg TlVMTCk7CisrCisrICByZXR1cm4gZnBpX2J5dGVfcmVhZGVyX25ldyAoZGF0YSwgKGd1aW50KSBz aXplKTsKKyt9CisrCisgLyoqCisgICogZnBpX2J5dGVfcmVhZGVyX2ZyZWU6CisgICogQHJlYWRl cjogKGluKSAodHJhbnNmZXIgZnVsbCk6IGEgI0ZwaUJ5dGVSZWFkZXIgaW5zdGFuY2UKK0BAIC0x MDAsNiArMTI1LDMwIEBAIGZwaV9ieXRlX3JlYWRlcl9pbml0IChGcGlCeXRlUmVhZGVyICogcmVh ZGVyLCBjb25zdCBndWludDggKiBkYXRhLCBndWludCBzaXplKQorICAgcmVhZGVyLT5ieXRlID0g MDsKKyB9CisgCisrLyoqCisrICogZnBpX2J5dGVfcmVhZGVyX2luaXRfYnl0ZXM6CisrICogQHJl YWRlcjogYSAjRnBpQnl0ZVJlYWRlciBpbnN0YW5jZQorKyAqIEBieXRlczogKGluKSAodHJhbnNm ZXIgbm9uZSk6IGEgI0dCeXRlcyBpbnN0YW5jZSBmcm9tIHdoaWNoCisrICogICAgIHRoZSAjRnBp Qnl0ZVJlYWRlciBzaG91bGQgcmVhZAorKyAqCisrICogSW5pdGlhbGl6ZXMgYSAjRnBpQnl0ZVJl YWRlciBpbnN0YW5jZSB0byByZWFkIGZyb20gQGJ5dGVzLiBUaGlzIGZ1bmN0aW9uCisrICogY2Fu IGJlIGNhbGxlZCBvbiBhbHJlYWR5IGluaXRpYWxpemVkIGluc3RhbmNlcy4KKysgKi8KKytGcGlC eXRlUmVhZGVyICoKKytmcGlfYnl0ZV9yZWFkZXJfaW5pdF9ieXRlcyAoRnBpQnl0ZVJlYWRlciAq IHJlYWRlciwgR0J5dGVzICogYnl0ZXMpCisreworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHJl YWRlciAhPSBOVUxMLCBOVUxMKTsKKysgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChieXRlcyAhPSBO VUxMLCBOVUxMKTsKKysKKysgIGdzaXplIHNpemUgPSAwOworKyAgY29uc3QgZ3VpbnQ4ICpkYXRh ID0gZ19ieXRlc19nZXRfZGF0YSAoYnl0ZXMsICZzaXplKTsKKysKKysgIGdfcmV0dXJuX3ZhbF9p Zl9mYWlsIChzaXplIDw9IEdfTUFYVUlOVCwgTlVMTCk7CisrICBmcGlfYnl0ZV9yZWFkZXJfaW5p dCAocmVhZGVyLCBkYXRhLCAoZ3VpbnQpIHNpemUpOworKworKyAgcmV0dXJuIHJlYWRlcjsKKyt9 CisrCisgLyoqCisgICogZnBpX2J5dGVfcmVhZGVyX3BlZWtfc3ViX3JlYWRlcjogKHNraXApCisg ICogQHJlYWRlcjogYW4gZXhpc3RpbmcgYW5kIGluaXRpYWxpemVkICNGcGlCeXRlUmVhZGVyIGlu c3RhbmNlCitkaWZmIC0tZ2l0IGEvbGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5oIGIvbGliZnBy aW50L2ZwaS1ieXRlLXJlYWRlci5oCitpbmRleCBjNGU2NGQyLi4wNWEzOTg5IDEwMDY0NAorLS0t IGEvbGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5oCisrKysgYi9saWJmcHJpbnQvZnBpLWJ5dGUt cmVhZGVyLmgKK0BAIC01MCw2ICs1MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKKyAKKyBGcGlCeXRl UmVhZGVyICogZnBpX2J5dGVfcmVhZGVyX25ldyAgICAgICAgICAgICAoY29uc3QgZ3VpbnQ4ICpk YXRhLCBndWludCBzaXplKSBHX0dOVUNfTUFMTE9DOworIAorK0ZwaUJ5dGVSZWFkZXIgKiBmcGlf Ynl0ZV9yZWFkZXJfbmV3X2J5dGVzICAgICAgIChHQnl0ZXMgKmJ5dGVzKSBHX0dOVUNfTUFMTE9D OworIAorIHZvaWQgICAgICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfZnJlZSAgICAgICAgICAgIChG cGlCeXRlUmVhZGVyICpyZWFkZXIpOworIAorQEAgLTU3LDYgKzU4LDkgQEAgdm9pZCAgICAgICAg ICAgIGZwaV9ieXRlX3JlYWRlcl9mcmVlICAgICAgICAgICAgKEZwaUJ5dGVSZWFkZXIgKnJlYWRl cik7Cisgdm9pZCAgICAgICAgICAgIGZwaV9ieXRlX3JlYWRlcl9pbml0ICAgICAgICAgICAgKEZw aUJ5dGVSZWFkZXIgKnJlYWRlciwgY29uc3QgZ3VpbnQ4ICpkYXRhLCBndWludCBzaXplKTsKKyAK KyAKKytGcGlCeXRlUmVhZGVyICogZnBpX2J5dGVfcmVhZGVyX2luaXRfYnl0ZXMgICAgICAoRnBp Qnl0ZVJlYWRlciAqcmVhZGVyLCBHQnl0ZXMgKmJ5dGVzKTsKKysKKysKKyBnYm9vbGVhbiAgICAg ICAgZnBpX2J5dGVfcmVhZGVyX3BlZWtfc3ViX3JlYWRlciAoRnBpQnl0ZVJlYWRlciAqIHJlYWRl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnBp Qnl0ZVJlYWRlciAqIHN1Yl9yZWFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICBzaXplKTsKK0BAIC0yMjAsNiArMjI0 LDEzIEBAIGdib29sZWFuICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEgICAgICAgIChG cGlCeXRlUmVhZGVyICogcmVhZGVyLCBndWludCBzCisgCisgZ2Jvb2xlYW4gICAgICAgIGZwaV9i eXRlX3JlYWRlcl9wZWVrX2RhdGEgICAgICAgKGNvbnN0IEZwaUJ5dGVSZWFkZXIgKiByZWFkZXIs IGd1aW50IHNpemUsIGNvbnN0IGd1aW50OCAqKiB2YWwpOworIAorKworK0dCeXRlcyAqICAgICAg ICBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2J5dGVzICAgICAgIChGcGlCeXRlUmVhZGVyICpyZWFkZXIs IGd1aW50IHNpemUpOworKworKworK0dCeXRlcyAqICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfcGVl a19ieXRlcyAgICAgIChjb25zdCBGcGlCeXRlUmVhZGVyICpyZWFkZXIsIGd1aW50IHNpemUpOwor KworKworICNkZWZpbmUgZnBpX2J5dGVfcmVhZGVyX2R1cF9zdHJpbmcocmVhZGVyLHN0cikgXAor ICAgICBmcGlfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZ191dGY4KHJlYWRlcixzdHIpCisgCitAQCAt NjQyLDYgKzY1MywzNCBAQCBmcGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhX2lubGluZSAoY29uc3Qg RnBpQnl0ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgc2l6ZSwgY29ucworICAgcmV0dXJuIFRSVUU7 CisgfQorIAorK3N0YXRpYyBpbmxpbmUgR0J5dGVzICoKKytmcGlfYnl0ZV9yZWFkZXJfcGVla19i eXRlc19pbmxpbmUgKGNvbnN0IEZwaUJ5dGVSZWFkZXIgKnJlYWRlciwgZ3VpbnQgc2l6ZSkKKyt7 CisrICBjb25zdCBndWludDggKmRhdGE7CisrCisrICBnX3JldHVybl92YWxfaWZfZmFpbCAocmVh ZGVyICE9IE5VTEwsIE5VTEwpOworKworKyAgaWYgKEdfVU5MSUtFTFkgKHNpemUgPiByZWFkZXIt PnNpemUgfHwgZnBpX2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmdfdW5jaGVja2VkIChyZWFkZXIp IDwgc2l6ZSkpCisrICAgIHJldHVybiBOVUxMOworKworKyAgZGF0YSA9IGZwaV9ieXRlX3JlYWRl cl9wZWVrX2RhdGFfdW5jaGVja2VkIChyZWFkZXIpOworKyAgcmV0dXJuIGdfYnl0ZXNfbmV3X3N0 YXRpYyAoZGF0YSwgc2l6ZSk7CisrfQorKworK3N0YXRpYyBpbmxpbmUgR0J5dGVzICoKKytmcGlf Ynl0ZV9yZWFkZXJfZ2V0X2J5dGVzX2lubGluZSAoRnBpQnl0ZVJlYWRlciAqcmVhZGVyLCBndWlu dCBzaXplKQorK3sKKysgIGNvbnN0IGd1aW50OCAqZGF0YTsKKysKKysgIGdfcmV0dXJuX3ZhbF9p Zl9mYWlsIChyZWFkZXIgIT0gTlVMTCwgTlVMTCk7CisrCisrICBpZiAoR19VTkxJS0VMWSAoc2l6 ZSA+IHJlYWRlci0+c2l6ZSB8fCBmcGlfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFpbmluZ191bmNoZWNr ZWQgKHJlYWRlcikgPCBzaXplKSkKKysgICAgcmV0dXJuIE5VTEw7CisrCisrICBkYXRhID0gZnBp X2J5dGVfcmVhZGVyX2dldF9kYXRhX3VuY2hlY2tlZCAocmVhZGVyLCBzaXplKTsKKysgIHJldHVy biBnX2J5dGVzX25ld19zdGF0aWMgKGRhdGEsIHNpemUpOworK30KKysKKyBzdGF0aWMgaW5saW5l IGd1aW50CisgZnBpX2J5dGVfcmVhZGVyX2dldF9wb3NfaW5saW5lIChjb25zdCBGcGlCeXRlUmVh ZGVyICogcmVhZGVyKQorIHsKK0BAIC02NzIsNiArNzExLDEwIEBAIGZwaV9ieXRlX3JlYWRlcl9z a2lwX2lubGluZSAoRnBpQnl0ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgbmJ5dGVzKQorICAgICBH X0xJS0VMWShmcGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhX2lubGluZShyZWFkZXIsc2l6ZSx2YWwp KQorICNkZWZpbmUgZnBpX2J5dGVfcmVhZGVyX3NraXAocmVhZGVyLG5ieXRlcykgXAorICAgICBH X0xJS0VMWShmcGlfYnl0ZV9yZWFkZXJfc2tpcF9pbmxpbmUocmVhZGVyLG5ieXRlcykpCisrI2Rl ZmluZSBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2J5dGVzKHJlYWRlcixzaXplKSBcCisrICAgIGZwaV9i eXRlX3JlYWRlcl9nZXRfYnl0ZXNfaW5saW5lKHJlYWRlcixzaXplKQorKyNkZWZpbmUgZnBpX2J5 dGVfcmVhZGVyX3BlZWtfYnl0ZXMocmVhZGVyLHNpemUpIFwKKysgICAgZnBpX2J5dGVfcmVhZGVy X3BlZWtfYnl0ZXNfaW5saW5lKHJlYWRlcixzaXplKQorIAorICNlbmRpZiAvKiBGUElfQllURV9S RUFERVJfRElTQUJMRV9JTkxJTkVTICovCisgCistLSAKKzIuNTQuMAorCgpkaWZmIC0tZ2l0IGEv MDAwNC1mcGktYnl0ZS1yZWFkZXItQWRkLXN1cHBvcnQtdG8tcmVhZC10by1hLXN0YXRpYy1idWZm LnBhdGNoIGIvMDAwNC1mcGktYnl0ZS1yZWFkZXItQWRkLXN1cHBvcnQtdG8tcmVhZC10by1hLXN0 YXRpYy1idWZmLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmZTNj MjIKLS0tIC9kZXYvbnVsbAorKysgYi8wMDA0LWZwaS1ieXRlLXJlYWRlci1BZGQtc3VwcG9ydC10 by1yZWFkLXRvLWEtc3RhdGljLWJ1ZmYucGF0Y2gKQEAgLTAsMCArMSwxNjAgQEAKK0Zyb20gZjZh OGNhZTViNGYxNTU1NzY5NzA2ZjdlNWIyMjIxNDVmZDNiZThlZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9QzM9QjFv PTI5Pz0gPG1haWxAM3YxbjAubmV0PgorRGF0ZTogTW9uLCA4IEp1biAyMDI2IDE0OjE2OjM2ICsw MjAwCitTdWJqZWN0OiBbUEFUQ0ggNC82XSBmcGktYnl0ZS1yZWFkZXI6IEFkZCBzdXBwb3J0IHRv IHJlYWQgdG8gYSBzdGF0aWMgYnVmZmVyCisKK1RoaXMgd29ya3MgdGhyb3VnaCBtYWNyb3Mgd2hl biB0aGUgc2l6ZSBvZiBhIGJ1ZmZlciBpcyBzdGF0aWNhbGx5CitkZWZpbmVkCistLS0KKyBkb2Mv bGliZnByaW50LTItc2VjdGlvbnMudHh0IHwgIDIgKysKKyBsaWJmcHJpbnQvZnBpLWJ5dGUtcmVh ZGVyLmMgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKworIGxpYmZwcmludC9mcGktYnl0ZS1y ZWFkZXIuaCAgfCA1NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAzIGZp bGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2RvYy9saWJmcHJp bnQtMi1zZWN0aW9ucy50eHQgYi9kb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0CitpbmRleCA1 MmRkYjQyLi4zOTFmMWY0IDEwMDY0NAorLS0tIGEvZG9jL2xpYmZwcmludC0yLXNlY3Rpb25zLnR4 dAorKysrIGIvZG9jL2xpYmZwcmludC0yLXNlY3Rpb25zLnR4dAorQEAgLTE5OCw2ICsxOTgsOCBA QCBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2Zsb2F0NjRfYmUKKyBmcGlfYnl0ZV9yZWFkZXJfcGVla19m bG9hdDY0X2JlCisgZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhCisgZnBpX2J5dGVfcmVhZGVyX3Bl ZWtfZGF0YQorK2ZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YV9zdGF0aWMKKytmcGlfYnl0ZV9yZWFk ZXJfcGVla19kYXRhX3N0YXRpYworIGZwaV9ieXRlX3JlYWRlcl9kdXBfZGF0YQorIGZwaV9ieXRl X3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzIKKyBmcGlfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5f dWludDMyX3BlZWsKK2RpZmYgLS1naXQgYS9saWJmcHJpbnQvZnBpLWJ5dGUtcmVhZGVyLmMgYi9s aWJmcHJpbnQvZnBpLWJ5dGUtcmVhZGVyLmMKK2luZGV4IDE1OTE4MjUuLjk3MDlhNDEgMTAwNjQ0 CistLS0gYS9saWJmcHJpbnQvZnBpLWJ5dGUtcmVhZGVyLmMKKysrKyBiL2xpYmZwcmludC9mcGkt Ynl0ZS1yZWFkZXIuYworQEAgLTg0OCw2ICs4NDgsNDEgQEAgZnBpX2J5dGVfcmVhZGVyX3BlZWtf ZGF0YSAoY29uc3QgRnBpQnl0ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgc2l6ZSwKKyAgIHJldHVy biBmcGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhX2lubGluZSAocmVhZGVyLCBzaXplLCB2YWwpOwor IH0KKyAKKysvKioKKysgKiBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGFfZml4ZWQ6CisrICogQHJl YWRlcjogYSAjRnBpQnl0ZVJlYWRlciBpbnN0YW5jZQorKyAqIEBzaXplOiBTaXplIGluIGJ5dGVz CisrICogQHZhbDogKG91dCkgKGFycmF5IGxlbmd0aD1zaXplKTogYWRkcmVzcyBvZiBhIGJ1ZmZl ciB0byBjb3B5IGRhdGEgaW50bworKyAqCisrICogQ29waWVzIEBzaXplIGJ5dGVzIGZyb20gdGhl IGN1cnJlbnQgZGF0YSBwb3NpdGlvbiBpbnRvIEB2YWwgaWYgYXQKKysgKiBsZWFzdCBAc2l6ZSBi eXRlcyBhcmUgbGVmdCwgYW5kIHVwZGF0ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisrICoKKysg KiBSZXR1cm5zOiAlVFJVRSBpZiBzdWNjZXNzZnVsLCAlRkFMU0Ugb3RoZXJ3aXNlLgorKyAqLwor K2dib29sZWFuCisrKGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YV9zdGF0aWMpIChGcGlCeXRlUmVh ZGVyICogcmVhZGVyLCBndWludCBzaXplLAorKyAgICBjb25zdCBndWludDggKiB2YWwpCisrewor KyAgcmV0dXJuIChmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGFfaW5saW5lX3N0YXRpYykgKHJlYWRl ciwgc2l6ZSwgdmFsKTsKKyt9CisrCisrLyoqCisrICogZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0 YV9maXhlZDoKKysgKiBAcmVhZGVyOiBhICNGcGlCeXRlUmVhZGVyIGluc3RhbmNlCisrICogQHNp emU6IFNpemUgaW4gYnl0ZXMKKysgKiBAdmFsOiAob3V0KSAoYXJyYXkgbGVuZ3RoPXNpemUpOiBh ZGRyZXNzIG9mIGEgYnVmZmVyIHRvIGNvcHkgZGF0YSBpbnRvCisrICoKKysgKiBMaWtlIGZwaV9i eXRlX3JlYWRlcl9nZXRfZGF0YV9maXhlZCgpIGJ1dCBkb2VzIG5vdCBhZHZhbmNlIHRoZSBwb3Np dGlvbi4KKysgKgorKyAqIFJldHVybnM6ICVUUlVFIGlmIHN1Y2Nlc3NmdWwsICVGQUxTRSBvdGhl cndpc2UuCisrICovCisrZ2Jvb2xlYW4KKysoZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0YV9zdGF0 aWMpIChjb25zdCBGcGlCeXRlUmVhZGVyICogcmVhZGVyLCBndWludCBzaXplLAorKyAgICBndWlu dDggKiB2YWwpCisreworKyAgcmV0dXJuIChmcGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhX2lubGlu ZV9zdGF0aWMpIChyZWFkZXIsIHNpemUsIHZhbCk7CisrfQorKworIC8qKgorICAqIGZwaV9ieXRl X3JlYWRlcl9kdXBfZGF0YToKKyAgKiBAcmVhZGVyOiBhICNGcGlCeXRlUmVhZGVyIGluc3RhbmNl CitkaWZmIC0tZ2l0IGEvbGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5oIGIvbGliZnByaW50L2Zw aS1ieXRlLXJlYWRlci5oCitpbmRleCAwNWEzOTg5Li4yNzg5NTlmIDEwMDY0NAorLS0tIGEvbGli ZnByaW50L2ZwaS1ieXRlLXJlYWRlci5oCisrKysgYi9saWJmcHJpbnQvZnBpLWJ5dGUtcmVhZGVy LmgKK0BAIC0yMjIsOSArMjIyLDE1IEBAIGdib29sZWFuICAgICAgICBmcGlfYnl0ZV9yZWFkZXJf ZHVwX2RhdGEgICAgICAgIChGcGlCeXRlUmVhZGVyICogcmVhZGVyLCBndWludCBzCisgZ2Jvb2xl YW4gICAgICAgIGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YSAgICAgICAgKEZwaUJ5dGVSZWFkZXIg KiByZWFkZXIsIGd1aW50IHNpemUsIGNvbnN0IGd1aW50OCAqKiB2YWwpOworIAorIAorK2dib29s ZWFuICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGFfc3RhdGljIChGcGlCeXRlUmVhZGVy ICogcmVhZGVyLCBndWludCBzaXplLCBjb25zdCBndWludDggICogdmFsKTsKKysKKysKKyBnYm9v bGVhbiAgICAgICAgZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0YSAgICAgICAoY29uc3QgRnBpQnl0 ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgc2l6ZSwgY29uc3QgZ3VpbnQ4ICoqIHZhbCk7CisgCisg CisrZ2Jvb2xlYW4gICAgICAgIGZwaV9ieXRlX3JlYWRlcl9wZWVrX2RhdGFfc3RhdGljIChjb25z dCBGcGlCeXRlUmVhZGVyICogcmVhZGVyLCBndWludCBzaXplLCBndWludDggICAqIHZhbCk7Cisr CisrCisgR0J5dGVzICogICAgICAgIGZwaV9ieXRlX3JlYWRlcl9nZXRfYnl0ZXMgICAgICAgKEZw aUJ5dGVSZWFkZXIgKnJlYWRlciwgZ3VpbnQgc2l6ZSk7CisgCisgCitAQCAtNjgxLDYgKzY4Nywz MiBAQCBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2J5dGVzX2lubGluZSAoRnBpQnl0ZVJlYWRlciAqcmVh ZGVyLCBndWludCBzaXplKQorICAgcmV0dXJuIGdfYnl0ZXNfbmV3X3N0YXRpYyAoZGF0YSwgc2l6 ZSk7CisgfQorIAorK3N0YXRpYyBpbmxpbmUgZ2Jvb2xlYW4KKysoZnBpX2J5dGVfcmVhZGVyX2dl dF9kYXRhX2lubGluZV9zdGF0aWMpIChGcGlCeXRlUmVhZGVyICogcmVhZGVyLCBndWludCBzaXpl LCBjb25zdCBndWludDggKiB2YWwpCisreworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHJlYWRl ciAhPSBOVUxMLCBGQUxTRSk7CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAodmFsICE9IE5VTEws IEZBTFNFKTsKKysKKysgIGlmIChHX1VOTElLRUxZIChzaXplID4gcmVhZGVyLT5zaXplIHx8IGZw aV9ieXRlX3JlYWRlcl9nZXRfcmVtYWluaW5nX3VuY2hlY2tlZCAocmVhZGVyKSA8IHNpemUpKQor KyAgICByZXR1cm4gRkFMU0U7CisrCisrICBtZW1jcHkgKCh2b2lkICopIHZhbCwgZnBpX2J5dGVf cmVhZGVyX2dldF9kYXRhX3VuY2hlY2tlZCAocmVhZGVyLCBzaXplKSwgc2l6ZSk7CisrICByZXR1 cm4gVFJVRTsKKyt9CisrCisrc3RhdGljIGlubGluZSBnYm9vbGVhbgorKyhmcGlfYnl0ZV9yZWFk ZXJfcGVla19kYXRhX2lubGluZV9zdGF0aWMpIChjb25zdCBGcGlCeXRlUmVhZGVyICogcmVhZGVy LCBndWludCBzaXplLCBndWludDggKiB2YWwpCisreworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwg KHJlYWRlciAhPSBOVUxMLCBGQUxTRSk7CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAodmFsICE9 IE5VTEwsIEZBTFNFKTsKKysKKysgIGlmIChHX1VOTElLRUxZIChzaXplID4gcmVhZGVyLT5zaXpl IHx8IGZwaV9ieXRlX3JlYWRlcl9nZXRfcmVtYWluaW5nX3VuY2hlY2tlZCAocmVhZGVyKSA8IHNp emUpKQorKyAgICByZXR1cm4gRkFMU0U7CisrCisrICBtZW1jcHkgKHZhbCwgZnBpX2J5dGVfcmVh ZGVyX3BlZWtfZGF0YV91bmNoZWNrZWQgKHJlYWRlciksIHNpemUpOworKyAgcmV0dXJuIFRSVUU7 CisrfQorKworIHN0YXRpYyBpbmxpbmUgZ3VpbnQKKyBmcGlfYnl0ZV9yZWFkZXJfZ2V0X3Bvc19p bmxpbmUgKGNvbnN0IEZwaUJ5dGVSZWFkZXIgKiByZWFkZXIpCisgeworQEAgLTcxNiw2ICs3NDgs MzEgQEAgZnBpX2J5dGVfcmVhZGVyX3NraXBfaW5saW5lIChGcGlCeXRlUmVhZGVyICogcmVhZGVy LCBndWludCBuYnl0ZXMpCisgI2RlZmluZSBmcGlfYnl0ZV9yZWFkZXJfcGVla19ieXRlcyhyZWFk ZXIsc2l6ZSkgXAorICAgICBmcGlfYnl0ZV9yZWFkZXJfcGVla19ieXRlc19pbmxpbmUocmVhZGVy LHNpemUpCisgCisrLyoqCisrICogZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhX3N0YXRpYzoKKysg KiBAcmVhZGVyOiBhICNGcGlCeXRlUmVhZGVyCisrICogQHZhbDogZml4ZWQtc2l6ZSBhcnJheSAo ZS5nLiBgdWludDhfdCBidWZbMzJdYCkKKysgKgorKyAqIFJlYWRzIEBzaXplIGJ5dGVzIGZyb20g QHJlYWRlciBkaXJlY3RseSBpbnRvIEB2YWwsIHdoZXJlIEBzaXplIGlzCisrICogZGVkdWNlZCB2 aWEgYHNpemVvZigpYCAtIG9ubHkgc2FmZSB3aXRoIHRydWUgQyBhcnJheXMuCisrICoKKysgKiBS ZXR1cm5zOiAlVFJVRSBvbiBzdWNjZXNzLCAlRkFMU0Ugb3RoZXJ3aXNlLgorKyAqLworKyNkZWZp bmUgZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhX3N0YXRpYyhyZWFkZXIsdmFsKSBcCisrICAgIChm cGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGFfc3RhdGljKSAocmVhZGVyLHNpemVvZih2YWwpLHZhbCkK KysKKysvKioKKysgKiBmcGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhX3N0YXRpYzoKKysgKiBAcmVh ZGVyOiBhICNGcGlCeXRlUmVhZGVyCisrICogQHZhbDogZml4ZWQtc2l6ZSBhcnJheSAoZS5nLiBg dWludDhfdCBidWZbMzJdYCkKKysgKgorKyAqIExpa2UgZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRh X3N0YXRpYygpIGJ1dCBkb2VzIG5vdCBhZHZhbmNlIHRoZSBwb3NpdGlvbi4KKysgKgorKyAqIFJl dHVybnM6ICVUUlVFIG9uIHN1Y2Nlc3MsICVGQUxTRSBvdGhlcndpc2UuCisrICovCisrI2RlZmlu ZSBmcGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhX3N0YXRpYyhyZWFkZXIsdmFsKSBcCisrICAgIChm cGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhX3N0YXRpYykgKHJlYWRlcixzaXplb2YodmFsKSx2YWwp CisrCisgI2VuZGlmIC8qIEZQSV9CWVRFX1JFQURFUl9ESVNBQkxFX0lOTElORVMgKi8KKyAKKyBH X0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoRnBpQnl0ZVJlYWRlciwgZnBpX2J5dGVfcmVh ZGVyX2ZyZWUpOworLS0gCisyLjU0LjAKKwoKZGlmZiAtLWdpdCBhLzAwMDUtZnBpLXVzYi10cmFu c2Zlci1BZGQtbWlzc2luZy1kZWZpbml0aW9uLW9mLXNldF9zaG9ydC5wYXRjaCBiLzAwMDUtZnBp LXVzYi10cmFuc2Zlci1BZGQtbWlzc2luZy1kZWZpbml0aW9uLW9mLXNldF9zaG9ydC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTY3ZGNlCi0tLSAvZGV2L251bGwK KysrIGIvMDAwNS1mcGktdXNiLXRyYW5zZmVyLUFkZC1taXNzaW5nLWRlZmluaXRpb24tb2Ytc2V0 X3Nob3J0LnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAKK0Zyb20gZTdjODBlNzQ4ZWQzYjAwYzQzMmYz YzAwZjJlYzdiNzI2MjUyN2RiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRG LTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5Pz0gPG1haWxAM3YxbjAu bmV0PgorRGF0ZTogTW9uLCA4IEp1biAyMDI2IDEzOjI3OjM2ICswMjAwCitTdWJqZWN0OiBbUEFU Q0ggNS82XSBmcGktdXNiLXRyYW5zZmVyOiBBZGQgbWlzc2luZyBkZWZpbml0aW9uIG9mCisgc2V0 X3Nob3J0X2Vycm9yKCkKKworSXQgd2FzIGluIHRoZSBoZWFkZXIgYnV0IG5vdCBpbXBsZW1lbnRl ZAorLS0tCisgbGliZnByaW50L2ZwaS11c2ItdHJhbnNmZXIuYyB8IDIwICsrKysrKysrKysrKysr KysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBh L2xpYmZwcmludC9mcGktdXNiLXRyYW5zZmVyLmMgYi9saWJmcHJpbnQvZnBpLXVzYi10cmFuc2Zl ci5jCitpbmRleCBhYzRmNjBjLi4wNjdhZTE4IDEwMDY0NAorLS0tIGEvbGliZnByaW50L2ZwaS11 c2ItdHJhbnNmZXIuYworKysrIGIvbGliZnByaW50L2ZwaS11c2ItdHJhbnNmZXIuYworQEAgLTU0 OCwzICs1NDgsMjMgQEAgZnBpX3VzYl90cmFuc2Zlcl9zdWJtaXRfc3luYyAoRnBpVXNiVHJhbnNm ZXIgKnRyYW5zZmVyLAorIAorICAgcmV0dXJuIHJlczsKKyB9CisrCisrLyoqCisrICogZnBpX3Vz Yl90cmFuc2Zlcl9zZXRfc2hvcnRfZXJyb3I6CisrICogQHRyYW5zZmVyOiBUaGUgdHJhbnNmZXIg dG8gc3VibWl0LCBtdXN0IGhhdmUgYmVlbiBmaWxsZWQuCisrICogQHNob3J0X2lzX2Vycm9yOiBX aGV0aGVyIGEgc2hvcnQgdHJhbnNmZXIgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYW4gZXJyb3IKKysg KgorKyAqIFNldHMgd2hldGhlciBhIHNob3J0IHRyYW5zZmVyIChhIHRyYW5zZmVyIGluIHdoaWNo IHRoZSB0cmFuc2ZlcnJlZCBsZW5ndGgKKysgKiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQg bGVuZ3RoKSBzaG91bGQgYmUgY29uc2lkZXJlZCBhbiBlcnJvcgorKyAqCisrICogQnkgZGVmYXVs dCwgc2hvcnQgdHJhbnNmZXJzIGFyZSBub3QgY29uc2lkZXJlZCBhbiBlcnJvciwgYnV0CisrICog ZHJpdmVycyBjYW4gZW5mb3JjZSBhIGZ1cnRoZXIgY2hlY2sgYnkgc2V0dGluZyB0aGlzIGZsYWcu CisrICovCisrdm9pZAorK2ZwaV91c2JfdHJhbnNmZXJfc2V0X3Nob3J0X2Vycm9yIChGcGlVc2JU cmFuc2ZlciAqdHJhbnNmZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi b29sZWFuICAgICAgICBzaG9ydF9pc19lcnJvcikKKyt7CisrICBnX3JldHVybl9pZl9mYWlsICh0 cmFuc2Zlcik7CisrCisrICB0cmFuc2Zlci0+c2hvcnRfaXNfZXJyb3IgPSBzaG9ydF9pc19lcnJv cjsKKyt9CistLSAKKzIuNTQuMAorCgpkaWZmIC0tZ2l0IGEvMDAwNi1mcGktdXNiLXRyYW5zZmVy LVdyYXAtZ19lcnJvcl9uZXctYXJndW1lbnRzLnBhdGNoIGIvMDAwNi1mcGktdXNiLXRyYW5zZmVy LVdyYXAtZ19lcnJvcl9uZXctYXJndW1lbnRzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjA2NzE2ODIKLS0tIC9kZXYvbnVsbAorKysgYi8wMDA2LWZwaS11c2ItdHJh bnNmZXItV3JhcC1nX2Vycm9yX25ldy1hcmd1bWVudHMucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAor RnJvbSA5ZDRlN2ZjODdiNzY4MTljMDQ5ZmMyM2Y5MmIzZGNjZGFmMzY1ZTc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhUcmV2 aT1DMz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+CitEYXRlOiBNb24sIDggSnVuIDIwMjYgMTQ6 MzY6MTAgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA2LzZdIGZwaS11c2ItdHJhbnNmZXI6IFdyYXAg Z19lcnJvcl9uZXcgYXJndW1lbnRzCisKKy0tLQorIGxpYmZwcmludC9mcGktdXNiLXRyYW5zZmVy LmMgfCAzICsrLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKKworZGlmZiAtLWdpdCBhL2xpYmZwcmludC9mcGktdXNiLXRyYW5zZmVyLmMgYi9saWJmcHJp bnQvZnBpLXVzYi10cmFuc2Zlci5jCitpbmRleCAwNjdhZTE4Li40NDhjNTY2IDEwMDY0NAorLS0t IGEvbGliZnByaW50L2ZwaS11c2ItdHJhbnNmZXIuYworKysrIGIvbGliZnByaW50L2ZwaS11c2It dHJhbnNmZXIuYworQEAgLTM0NCw3ICszNDQsOCBAQCB0cmFuc2Zlcl9maW5pc2hfY2IgKEdPYmpl Y3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdAor ICAgICB7CisgICAgICAgZXJyb3IgPSBnX2Vycm9yX25ldyAoR19VU0JfREVWSUNFX0VSUk9SLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfVVNCX0RFVklDRV9FUlJPUl9JTywKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAiVW5leHBlY3RlZCBzaG9ydCBlcnJvciBvZiAlemQgc2l6 ZSAoZXhwZWN0ZWQgJXpkKSIsIHRyYW5zZmVyLT5hY3R1YWxfbGVuZ3RoLCB0cmFuc2Zlci0+bGVu Z3RoKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5leHBlY3RlZCBzaG9ydCBlcnJv ciBvZiAlemQgc2l6ZSAoZXhwZWN0ZWQgJXpkKSIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHJhbnNmZXItPmFjdHVhbF9sZW5ndGgsIHRyYW5zZmVyLT5sZW5ndGgpOworICAgICB9Cisg CisgICBjYWxsYmFjayA9IHRyYW5zZmVyLT5jYWxsYmFjazsKKy0tIAorMi41NC4wCisKCmRpZmYg LS1naXQgYS9lZ2lzX3JlYWRlci5wYXRjaCBiL2VnaXNfcmVhZGVyLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3ZTgzZTUKLS0tIC9kZXYvbnVsbAorKysgYi9lZ2lz X3JlYWRlci5wYXRjaApAQCAtMCwwICsxLDMzMDQgQEAKK0Zyb20gOWJkZGQ5MGYwNmY0ZDk5OTcz ODk3NDBiNDgwZTcxZDMyYmJjODU5ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEph c29uIEh1YW5nIDxqYXNvbi5odWFuZ0BlZ2lzdGVjLmNvbT4KK0RhdGU6IFdlZCwgMjggSmFuIDIw MjYgMjE6MDY6NDggKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAwMS8xM10gZWdpc19ldHU5MDU6IEFk ZCAxYzdhOjA1YWUgYW5kIDFjN2E6OTIwMSBmaW5nZXJwcmludAorIHJlYWRlcnMKKworLS0tCisg ZGF0YS9hdXRvc3VzcGVuZC5od2RiICAgICAgICAgICAgICAgICAgIHwgICAgNiArCisgbGliZnBy aW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIHwgMTYzNSArKysrKysrKysrKysrKysr KysrKysrKworIGxpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuaCB8ICAyMTQg KysrCisgbGliZnByaW50L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgIHwgICAgMiArCisg bWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCisgdGVzdHMv ZWdpc19ldHU5MDUvY3VzdG9tLnBjYXBuZyAgICAgICAgIHwgIEJpbiAwIC0+IDMzNjQ0IGJ5dGVz CisgdGVzdHMvZWdpc19ldHU5MDUvY3VzdG9tLnB5ICAgICAgICAgICAgIHwgIDEwOSArKworIHRl c3RzL2VnaXNfZXR1OTA1L2RldmljZSAgICAgICAgICAgICAgICB8ICAzNDggKysrKysKKyB0ZXN0 cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKKyA5IGZpbGVzIGNo YW5nZWQsIDIzMTcgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJmcHJpbnQv ZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgbGliZnBy aW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5oCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRl c3RzL2VnaXNfZXR1OTA1L2N1c3RvbS5wY2FwbmcKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMv ZWdpc19ldHU5MDUvY3VzdG9tLnB5CisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2VnaXNfZXR1 OTA1L2RldmljZQorCitkaWZmIC0tZ2l0IGEvZGF0YS9hdXRvc3VzcGVuZC5od2RiIGIvZGF0YS9h dXRvc3VzcGVuZC5od2RiCitpbmRleCA1NWI1Y2I0Yy4uYTNmZjAwYWYgMTAwNjQ0CistLS0gYS9k YXRhL2F1dG9zdXNwZW5kLmh3ZGIKKysrKyBiL2RhdGEvYXV0b3N1c3BlbmQuaHdkYgorQEAgLTc3 LDYgKzc3LDEyIEBAIHVzYjp2MUM3QXAwNTcxKgorICBJRF9BVVRPU1VTUEVORD0xCisgIElEX1BF UlNJU1Q9MAorIAorKyMgU3VwcG9ydGVkIGJ5IGxpYmZwcmludCBkcml2ZXIgZWdpc19ldHU5MDUK Kyt1c2I6djFDN0FwMDVBRSoKKyt1c2I6djFDN0FwOTIwMSoKKysgSURfQVVUT1NVU1BFTkQ9MQor KyBJRF9QRVJTSVNUPTAKKysKKyAjIFN1cHBvcnRlZCBieSBsaWJmcHJpbnQgZHJpdmVyIGVnaXNt b2MKKyB1c2I6djFDN0FwMDU4MioKKyB1c2I6djFDN0FwMDU4MyoKK2RpZmYgLS1naXQgYS9saWJm cHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgYi9saWJmcHJpbnQvZHJpdmVycy9l Z2lzbW9jL2VnaXNfZXR1OTA1LmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAw MC4uYmUwYzZlMDUKKy0tLSAvZGV2L251bGwKKysrKyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNt b2MvZWdpc19ldHU5MDUuYworQEAgLTAsMCArMSwxNjM1IEBACisrLyoKKysgKiBEcml2ZXIgZm9y IEVnaXMgVGVjaG5vbG9neSAoTGlnaFR1bmluZykgTWF0Y2gtT24tQ2hpcCBzZW5zb3JzCisrICoK KysgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisrICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyAqCisrICogVGhpcyBs aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICogTGljZW5zZSBhbG9u ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor KyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv c3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKysgKi8KKysKKysjZGVmaW5lIEZQX0NPTVBPTkVOVCAi ZWdpc19ldHU5MDUiCisrCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPGdsaWIuaD4K KysjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisrCisrI2luY2x1ZGUgImRyaXZlcnNfYXBpLmgiCisr I2luY2x1ZGUgImZwaS1ieXRlLXdyaXRlci5oIgorKworKyNpbmNsdWRlICJlZ2lzX2V0dTkwNS5o IgorKworK3N0cnVjdCBfRnBpRGV2aWNlRWdpc0V0dTkwNQorK3sKKysgIEZwRGV2aWNlICAgICAg ICBwYXJlbnQ7CisrICBGcGlTc20gICAgICAgICAqdGFza19zc207CisrICBGcGlTc20gICAgICAg ICAqY21kX3NzbTsKKysgIEZwaVVzYlRyYW5zZmVyICpjbWRfdHJhbnNmZXI7CisrICBHQ2FuY2Vs bGFibGUgICAqaW50ZXJydXB0X2NhbmNlbGxhYmxlOworKyAgR1B0ckFycmF5ICAgICAgKmVucm9s bGVkX2lkczsKKysgIGdpbnQgICAgICAgICAgICBtYXhfZW5yb2xsX3N0YWdlczsKKysgIGd1aW50 OCAgICAgICAgICBzaWRbRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFXTsKKyt9Owor KworK0dfREVGSU5FX1RZUEUgKEZwaURldmljZUVnaXNFdHU5MDUsIGZwaV9kZXZpY2VfZWdpc19l dHU5MDUsIEZQX1RZUEVfREVWSUNFKTsKKysKKytzdGF0aWMgY29uc3QgRnBJZEVudHJ5IGVnaXNf ZXR1OTA1X2lkX3RhYmxlW10gPSB7CisrICB7IC52aWQgPSAweDFjN2EsIC5waWQgPSAweDA1YWUs IC5kcml2ZXJfZGF0YSA9IEVHSVNfRVRVOTA1X0RSSVZFUl9DSEVDS19QUkVGSVhfVFlQRTEgfSwK KysgIHsgLnZpZCA9IDB4MWM3YSwgLnBpZCA9IDB4OTIwMSwgLmRyaXZlcl9kYXRhID0gRUdJU19F VFU5MDVfRFJJVkVSX0NIRUNLX1BSRUZJWF9UWVBFMSB9LAorKyAgeyAudmlkID0gMCwgICAgICAu cGlkID0gMCwgICAgICAuZHJpdmVyX2RhdGEgPSAwIH0KKyt9OworKworK3R5cGVkZWYgdm9pZCAo KlN5bkNtZE1zZ0NhbGxiYWNrKSAoRnBEZXZpY2UgKmRldmljZSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGd1Y2hhciAgICpidWZmZXJfaW4sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnc2l6ZSAgICAgbGVuZ3RoX2luLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgKmVycm9yKTsKKysKKyt0eXBlZGVmIHN0cnVj dCBlZ2lzX2V0dTkwNV9jb21tYW5kX2RhdGEKKyt7CisrICBTeW5DbWRNc2dDYWxsYmFjayBjYWxs YmFjazsKKysgIGd1Y2hhciAgICAgICAgICAgKmJ1ZmZlcl9pbjsKKysgIGdzaXplICAgICAgICAg ICAgIGxlbmd0aF9pbjsKKyt9IENvbW1hbmREYXRhOworKworK3N0YXRpYyB2b2lkCisrZWdpc19l dHU5MDVfY29tbWFuZF9kYXRhX2ZyZWUgKENvbW1hbmREYXRhICpkYXRhKQorK3sKKysgIGdfZnJl ZSAoZGF0YS0+YnVmZmVyX2luKTsKKysgIGdfZnJlZSAoZGF0YSk7CisrfQorKworK3R5cGVkZWYg c3RydWN0IGVnaXNfZXR1OTA1X2Vucm9sbF9wcmludAorK3sKKysgIEZwUHJpbnQgKnByaW50Owor KyAgaW50ICAgICAgc3RhZ2U7CisrfSBFbnJvbGxQcmludDsKKysKKytzdGF0aWMgdm9pZAorK2Vn aXNfZXR1OTA1X2Zpbmdlcl9vbl9zZW5zb3JfY2IgKEZwaVVzYlRyYW5zZmVyICp0cmFuc2ZlciwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcERldmljZSAgICAgICAqZGV2aWNl LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICB1c2Vy ZGF0YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAq ZXJyb3IpCisreworKyAgZnBfZGJnICgiRmluZ2VyIG9uIHNlbnNvciBjYWxsYmFjayIpOworKyAg ZnBpX2RldmljZV9yZXBvcnRfZmluZ2VyX3N0YXR1cyAoZGV2aWNlLCBGUF9GSU5HRVJfU1RBVFVT X1BSRVNFTlQpOworKworKyAgZnBpX3NzbV91c2JfdHJhbnNmZXJfY2IgKHRyYW5zZmVyLCBkZXZp Y2UsIHVzZXJkYXRhLCBlcnJvcik7CisrfQorKworK3N0YXRpYyB2b2lkCisrZWdpc19ldHU5MDVf d2FpdF9maW5nZXJfb25fc2Vuc29yIChGcGlTc20gICAqc3NtLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRnBEZXZpY2UgKmRldmljZSkKKyt7CisrICBmcF9kYmcgKCJXYWl0 IGZvciBmaW5nZXIgb24gc2Vuc29yIik7CisrICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0g RlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKKysKKysgIGdfYXV0b3B0cihGcGlVc2JU cmFuc2ZlcikgdHJhbnNmZXIgPSBmcGlfdXNiX3RyYW5zZmVyX25ldyAoZGV2aWNlKTsKKysKKysg IGZwaV91c2JfdHJhbnNmZXJfZmlsbF9pbnRlcnJ1cHQgKHRyYW5zZmVyLCBFR0lTX0VUVTkwNV9F UF9DTURfSU5URVJSVVBUX0lOLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RUdJU19FVFU5MDVfVVNCX0lOVEVSUlVQVF9JTl9SRUNWX0xFTkdUSCk7CisrICB0cmFuc2Zlci0+ c3NtID0gc3NtOworKyAgLyogSW50ZXJydXB0IG9uIHRoaXMgZGV2aWNlIGFsd2F5cyByZXR1cm5z IDEgYnl0ZSBzaG9ydDsgdGhpcyBpcyBleHBlY3RlZCAqLworKyAgdHJhbnNmZXItPnNob3J0X2lz X2Vycm9yID0gRkFMU0U7CisrCisrICBmcGlfZGV2aWNlX3JlcG9ydF9maW5nZXJfc3RhdHVzIChk ZXZpY2UsIEZQX0ZJTkdFUl9TVEFUVVNfTkVFREVEKTsKKysKKysgIGZwaV91c2JfdHJhbnNmZXJf c3VibWl0IChnX3N0ZWFsX3BvaW50ZXIgKCZ0cmFuc2ZlciksCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgRUdJU19FVFU5MDVfVVNCX0lOVEVSUlVQVF9USU1FT1VULAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYtPmludGVycnVwdF9jYW5jZWxsYWJsZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICBlZ2lzX2V0dTkwNV9maW5nZXJfb25fc2Vuc29yX2NiLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworK30KKysKKytzdGF0aWMgZ2Jvb2xlYW4KKytl Z2lzX2V0dTkwNV92YWxpZGF0ZV9yZXNwb25zZV9wcmVmaXggKGNvbnN0IGd1Y2hhciAqYnVmZmVy X2luLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3NpemUg ICBidWZmZXJfaW5fbGVuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgZ3VjaGFyICp2YWxpZF9wcmVmaXgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBnc2l6ZSAgIHZhbGlkX3ByZWZpeF9sZW4pCisreworKyAgY29uc3Qg Z2Jvb2xlYW4gcmVzdWx0ID0gbWVtY21wIChidWZmZXJfaW4gKworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoZWdpc19ldHU5MDVfcmVhZF9wcmVmaXhfbGVuICsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X0NIRUNLX0JZVEVTX0xFTkdU SCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX3ByZWZpeCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfcHJlZml4X2xlbikgPT0gMDsK KysKKysgIGZwX2RiZyAoIlJlc3BvbnNlIHByZWZpeCB2YWxpZDogJXMiLCByZXN1bHQgPyAieWVz IiA6ICJOTyIpOworKyAgcmV0dXJuIHJlc3VsdDsKKyt9CisrCisrc3RhdGljIGdib29sZWFuCisr ZWdpc19ldHU5MDVfdmFsaWRhdGVfcmVzcG9uc2Vfc3VmZml4IChjb25zdCBndWNoYXIgKmJ1ZmZl cl9pbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdzaXpl ICAgYnVmZmVyX2luX2xlbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGd1Y2hhciAqdmFsaWRfc3VmZml4LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgZ3NpemUgICB2YWxpZF9zdWZmaXhfbGVuKQorK3sKKysgIGNvbnN0 IGdib29sZWFuIHJlc3VsdCA9IG1lbWNtcCAoYnVmZmVyX2luICsgKGJ1ZmZlcl9pbl9sZW4gLSB2 YWxpZF9zdWZmaXhfbGVuKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFs aWRfc3VmZml4LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9zdWZm aXhfbGVuKSA9PSAwOworKworKyAgZnBfZGJnICgiUmVzcG9uc2Ugc3VmZml4IHZhbGlkOiAlcyIs IHJlc3VsdCA/ICJ5ZXMiIDogIk5PIik7CisrICByZXR1cm4gcmVzdWx0OworK30KKysKKytzdGF0 aWMgdm9pZAorK2VnaXNfZXR1OTA1X3Rhc2tfc3NtX2RvbmUgKEZwaVNzbSAgICpzc20sCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgRnBEZXZpY2UgKmRldmljZSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICBHRXJyb3IgICAqZXJyb3IpCisreworKyAgRnBpRGV2aWNlRWdpc0V0dTkw NSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7CisrCisrICBmcF9kYmcg KCJUYXNrIFNTTSBkb25lIik7CisrCisrICAvKiB0YXNrX3NzbSBpcyBnb2luZyB0byBiZSBmcmVl ZCBieSBjb21wbGV0aW9uIG9mIFNTTSAqLworKyAgZ19hc3NlcnQgKCFzZWxmLT50YXNrX3NzbSB8 fCBzZWxmLT50YXNrX3NzbSA9PSBzc20pOworKyAgc2VsZi0+dGFza19zc20gPSBOVUxMOworKwor KyAgZ19jbGVhcl9wb2ludGVyICgmc2VsZi0+ZW5yb2xsZWRfaWRzLCBnX3B0cl9hcnJheV91bnJl Zik7CisrCisrICBpZiAoZXJyb3IpCisrICAgIGZwaV9kZXZpY2VfYWN0aW9uX2Vycm9yIChkZXZp Y2UsIGVycm9yKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytlZ2lzX2V0dTkwNV9jb21taXRfc3Rh cnRfY2IgKEZwRGV2aWNlICpkZXZpY2UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn dWNoYXIgICAqYnVmZmVyX2luLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUg ICAgIGxlbmd0aF9pbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICpl cnJvcikKKyt7CisrICBmcF9kYmcgKCJUYXNrIFNTTSBjb21taXQgc3RhcnQgY2FsbGJhY2siKTsK KysgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChk ZXZpY2UpOworKworKyAgaWYgKGVycm9yKQorKyAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxm LT50YXNrX3NzbSwgZXJyb3IpOworKyAgZWxzZQorKyAgICBmcGlfc3NtX2p1bXBfdG9fc3RhdGUg KHNlbGYtPnRhc2tfc3NtLCBFTlJPTExfQ09NTUlUKTsKKyt9CisrCisrLyoKKysgKiBHZW5lcmlj IGNhbGxiYWNrIGZvciBjb21tYW5kcyB0aGF0IGRvbid0IG5lZWQgc3BlY2lhbCBoYW5kbGluZyBv biBzdWNjZXNzLgorKyAqIEFkdmFuY2VzIHRoZSB0YXNrIFNTTSB0byB0aGUgbmV4dCBzdGF0ZSBv biBzdWNjZXNzLCBvciBtYXJrcyBpdCBmYWlsZWQgb24gZXJyb3IuCisrICovCisrc3RhdGljIHZv aWQKKytlZ2lzX2V0dTkwNV90YXNrX3NzbV9uZXh0X3N0YXRlX2NiIChGcERldmljZSAqZGV2aWNl LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1Y2hhciAgICpidWZmZXJf aW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgIGxlbmd0 aF9pbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAqZXJy b3IpCisreworKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19F VFU5MDUgKGRldmljZSk7CisrCisrICBmcF9kYmcgKCJUYXNrIFNTTSBuZXh0IHN0YXRlIGNhbGxi YWNrIik7CisrCisrICBpZiAoZXJyb3IpCisrICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYt PnRhc2tfc3NtLCBlcnJvcik7CisrICBlbHNlCisrICAgIGZwaV9zc21fbmV4dF9zdGF0ZSAoc2Vs Zi0+dGFza19zc20pOworK30KKysKKytzdGF0aWMgdm9pZAorK2VnaXNfZXR1OTA1X2NtZF9yZWNl aXZlX2NiIChGcGlVc2JUcmFuc2ZlciAqdHJhbnNmZXIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEZwRGV2aWNlICAgICAgICpkZXZpY2UsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdwb2ludGVyICAgICAgICB1c2VyZGF0YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0Vycm9yICAgICAgICAgKmVycm9yKQorK3sKKysgIENvbW1hbmREYXRhICpkYXRhID0gdXNl cmRhdGE7CisrCisrICBmcF9kYmcgKCJDb21tYW5kIHJlY2VpdmUgY2FsbGJhY2siKTsKKysKKysg IGlmIChlcnJvcikKKysgICAgeworKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHRyYW5zZmVy LT5zc20sIGVycm9yKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysgIGlmIChkYXRhID09IE5V TEwgfHwgdHJhbnNmZXItPmFjdHVhbF9sZW5ndGggPCBlZ2lzX2V0dTkwNV9yZWFkX3ByZWZpeF9s ZW4pCisrICAgIHsKKysgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkICh0cmFuc2Zlci0+c3NtLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3IChGUF9ERVZJ Q0VfRVJST1JfR0VORVJBTCkpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgLyogU3Rv cmUgdGhlIHJlc3BvbnNlIGRhdGEgYW5kIGxldCB0aGUgY21kX3NzbV9kb25lIGNhbGxiYWNrIGlu dm9rZQorKyAgICogdGhlIGFjdHVhbCBjYWxsYmFjayB3aXRoIHRoZSBzdG9yZWQgZGF0YSAqLwor KyAgZGF0YS0+YnVmZmVyX2luID0gZ19zdGVhbF9wb2ludGVyICgmdHJhbnNmZXItPmJ1ZmZlcik7 CisrICBkYXRhLT5sZW5ndGhfaW4gPSB0cmFuc2Zlci0+YWN0dWFsX2xlbmd0aDsKKysKKysgIGZw aV9zc21fbWFya19jb21wbGV0ZWQgKHRyYW5zZmVyLT5zc20pOworK30KKysKKytzdGF0aWMgdm9p ZAorK2VnaXNfZXR1OTA1X2NtZF9ydW5fc3RhdGUgKEZwaVNzbSAgICpzc20sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgRnBEZXZpY2UgKmRldmljZSkKKyt7CisrICBnX2F1dG9wdHIoRnBp VXNiVHJhbnNmZXIpIHRyYW5zZmVyID0gTlVMTDsKKysgIEZwaURldmljZUVnaXNFdHU5MDUgKnNl bGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOworKworKyAgc3dpdGNoIChmcGlf c3NtX2dldF9jdXJfc3RhdGUgKHNzbSkpCisrICAgIHsKKysgICAgY2FzZSBDTURfU0VORDoKKysg ICAgICBpZiAoc2VsZi0+Y21kX3RyYW5zZmVyKQorKyAgICAgICAgeworKyAgICAgICAgICBzZWxm LT5jbWRfdHJhbnNmZXItPnNzbSA9IHNzbTsKKysgICAgICAgICAgZnBpX3VzYl90cmFuc2Zlcl9z dWJtaXQgKGdfc3RlYWxfcG9pbnRlciAoJnNlbGYtPmNtZF90cmFuc2ZlciksCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9VU0JfU0VORF9USU1FT1VULAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9nZXRfY2FuY2Vs bGFibGUgKGRldmljZSksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlf c3NtX3VzYl90cmFuc2Zlcl9jYiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5VTEwpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIH0KKysKKysgICAgICBmcGlfc3Nt X25leHRfc3RhdGUgKHNzbSk7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgQ01EX0dFVDoK KysgICAgICB0cmFuc2ZlciA9IGZwaV91c2JfdHJhbnNmZXJfbmV3IChkZXZpY2UpOworKyAgICAg IHRyYW5zZmVyLT5zc20gPSBzc207CisrICAgICAgZnBpX3VzYl90cmFuc2Zlcl9maWxsX2J1bGsg KHRyYW5zZmVyLCBFR0lTX0VUVTkwNV9FUF9DTURfSU4sCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVHSVNfRVRVOTA1X1VTQl9JTl9SRUNWX0xFTkdUSCk7CisrICAgICAgZnBp X3VzYl90cmFuc2Zlcl9zdWJtaXQgKGdfc3RlYWxfcG9pbnRlciAoJnRyYW5zZmVyKSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfVVNCX1JFQ1ZfVElNRU9VVCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9nZXRfY2FuY2VsbGFi bGUgKGRldmljZSksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVnaXNfZXR1OTA1 X2NtZF9yZWNlaXZlX2NiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfc3Nt X2dldF9kYXRhIChzc20pKTsKKysgICAgICBicmVhazsKKysgICAgfQorK30KKysKKysvKgorKyAq IENvbW1hbmQgU1NNIGRvbmUgY2FsbGJhY2suCisrICogQWx3YXlzIGludm9rZXMgdGhlIGNhbGxi YWNrIHdpdGggc3RvcmVkIGRhdGEgb24gc3VjY2VzcyBvciBlcnJvci4KKysgKi8KKytzdGF0aWMg dm9pZAorK2VnaXNfZXR1OTA1X2NtZF9zc21fZG9uZSAoRnBpU3NtICAgKnNzbSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIEZwRGV2aWNlICpkZXZpY2UsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICBHRXJyb3IgICAqZXJyb3IpCisreworKyAgZ19hdXRvcHRyKEdFcnJvcikgbG9jYWxf ZXJyb3IgPSBlcnJvcjsKKysgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNF X0VHSVNfRVRVOTA1IChkZXZpY2UpOworKyAgQ29tbWFuZERhdGEgKmRhdGEgPSBmcGlfc3NtX2dl dF9kYXRhIChzc20pOworKworKyAgZ19hc3NlcnQgKHNlbGYtPmNtZF9zc20gPT0gc3NtKTsKKysg IGdfYXNzZXJ0ICghc2VsZi0+Y21kX3RyYW5zZmVyIHx8IHNlbGYtPmNtZF90cmFuc2Zlci0+c3Nt ID09IHNzbSk7CisrCisrICBzZWxmLT5jbWRfc3NtID0gTlVMTDsKKysgIHNlbGYtPmNtZF90cmFu c2ZlciA9IE5VTEw7CisrCisrICBpZiAoZGF0YSAmJiBkYXRhLT5jYWxsYmFjaykKKysgICAgewor KyAgICAgIGRhdGEtPmNhbGxiYWNrIChkZXZpY2UsCisrICAgICAgICAgICAgICAgICAgICAgIGdf c3RlYWxfcG9pbnRlciAoJmRhdGEtPmJ1ZmZlcl9pbiksCisrICAgICAgICAgICAgICAgICAgICAg IGRhdGEtPmxlbmd0aF9pbiwKKysgICAgICAgICAgICAgICAgICAgICAgZ19zdGVhbF9wb2ludGVy ICgmbG9jYWxfZXJyb3IpKTsKKysgICAgfQorK30KKysKKysvKgorKyAqIERlcml2ZSB0aGUgMiAi Y2hlY2sgYnl0ZXMiIGZvciB3cml0ZSBwYXlsb2FkcworKyAqIDMyLWJpdCBiaWctZW5kaWFuIHN1 bSBvZiBhbGwgMTYtYml0IHdvcmRzIChpbmNsdWRpbmcgY2hlY2sgYnl0ZXMpIE1PRCAweEZGRkYK KysgKiBzaG91bGQgYmUgMCwgb3RoZXJ3aXNlIHRoZSBkZXZpY2Ugd2lsbCByZWplY3QgdGhlIHBh eWxvYWQKKysgKi8KKytzdGF0aWMgZ3VpbnQxNgorK2VnaXNfZXR1OTA1X2dldF9jaGVja19ieXRl cyAoRnBpQnl0ZVJlYWRlciAqcmVhZGVyKQorK3sKKysgIGZwX2RiZyAoIkdldCBjaGVjayBieXRl cyIpOworKyAgc2l6ZV90IHN1bV92YWx1ZXMgPSAwOworKyAgZ3VpbnQxNiB2YWw7CisrCisrICBm cGlfYnl0ZV9yZWFkZXJfc2V0X3BvcyAocmVhZGVyLCAwKTsKKysKKysgIHdoaWxlIChmcGlfYnl0 ZV9yZWFkZXJfZ2V0X3VpbnQxNl9iZSAocmVhZGVyLCAmdmFsKSkKKysgICAgc3VtX3ZhbHVlcyAr PSB2YWw7CisrCisrICByZXR1cm4gR19NQVhVSU5UMTYgLSAoc3VtX3ZhbHVlcyAlIEdfTUFYVUlO VDE2KTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytlZ2lzX2V0dTkwNV9leGVjX2NtZCAoRnBEZXZp Y2UgICAgICAgICAqZGV2aWNlLAorKyAgICAgICAgICAgICAgICAgICAgICBndWNoYXIgICAgICAg ICAgICpjbWQsCisrICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdzaXplICAgICAgIGNtZF9s ZW5ndGgsCisrICAgICAgICAgICAgICAgICAgICAgIEdEZXN0cm95Tm90aWZ5ICAgIGNtZF9kZXN0 cm95LAorKyAgICAgICAgICAgICAgICAgICAgICBTeW5DbWRNc2dDYWxsYmFjayBjYWxsYmFjaykK Kyt7CisrICBnX2F1dG8oRnBpQnl0ZVdyaXRlcikgd3JpdGVyID0gezB9OworKyAgZ19hdXRvcHRy KEZwaVVzYlRyYW5zZmVyKSB0cmFuc2ZlciA9IE5VTEw7CisrICBGcGlEZXZpY2VFZ2lzRXR1OTA1 ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKKysgIGdfYXV0b2ZyZWUg Q29tbWFuZERhdGEgKmRhdGEgPSBOVUxMOworKyAgZ3NpemUgYnVmZmVyX291dF9sZW5ndGggPSAw OworKyAgZ2Jvb2xlYW4gd3JpdHRlbiA9IFRSVUU7CisrICBndWludDE2IGNoZWNrX3ZhbHVlOwor KworKyAgZnBfZGJnICgiRXhlY3V0ZSBjb21tYW5kIGFuZCBnZXQgcmVzcG9uc2UiKTsKKysKKysg IC8qCisrICAgKiBidWZmZXJfb3V0IHNob3VsZCBiZSBhIGZ1bGx5IGNvbXBvc2VkIGNvbW1hbmQg KHdpdGggcHJlZml4LCBjaGVjayBieXRlcywgZXRjKQorKyAgICogd2hpY2ggbG9va3MgbGlrZSB0 aGlzOgorKyAgICogICBFIEcgSSBTIDAwIDAwIDAwIDAxIHtjYjF9IHtjYjJ9IHtwYXlsb2FkfQor KyAgICogd2hlcmUgY2IxIGFuZCBjYjIgYXJlIHNvbWUgY2hlY2sgYnl0ZXMgZ2VuZXJhdGVkIGJ5 IHRoZQorKyAgICogZWdpc19ldHU5MDVfZ2V0X2NoZWNrX2J5dGVzKCkgbWV0aG9kIGFuZCBwYXls b2FkIGlzIHdoYXQgaXMgcGFzc2VkIHZpYSB0aGUgY21kCisrICAgKiBwYXJhbWV0ZXIKKysgICAq LworKyAgYnVmZmVyX291dF9sZW5ndGggPSBlZ2lzX2V0dTkwNV93cml0ZV9wcmVmaXhfbGVuCisr ICAgICAgICAgICAgICAgICAgICAgICsgRUdJU19FVFU5MDVfQ0hFQ0tfQllURVNfTEVOR1RICisr ICAgICAgICAgICAgICAgICAgICAgICsgY21kX2xlbmd0aDsKKysKKysgIGZwaV9ieXRlX3dyaXRl cl9pbml0X3dpdGhfc2l6ZSAoJndyaXRlciwgYnVmZmVyX291dF9sZW5ndGggKworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyX291dF9sZW5ndGggJSAyID8gMSA6IDAp LCBUUlVFKTsKKysKKysgIC8qIFByZWZpeCAqLworKyAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0 ZXJfcHV0X2RhdGEgKCZ3cml0ZXIsIGVnaXNfZXR1OTA1X3dyaXRlX3ByZWZpeCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZ2lzX2V0dTkwNV93cml0ZV9wcmVmaXhf bGVuKTsKKysKKysgIC8qIENoZWNrIEJ5dGVzIC0gbGVhdmUgdGhlbSBhcyAwMCBmb3Igbm93IHRo ZW4gbGF0ZXIgZ2VuZXJhdGUgYW5kIGNvcHkgb3ZlcgorKyAgICogdGhlIHJlYWwgb25lcyAqLwor KyAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfY2hhbmdlX3BvcyAoJndyaXRlciwgRUdJU19F VFU5MDVfQ0hFQ0tfQllURVNfTEVOR1RIKTsKKysKKysgIC8qIENvbW1hbmQgUGF5bG9hZCAqLwor KyAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X2RhdGEgKCZ3cml0ZXIsIGNtZCwgY21k X2xlbmd0aCk7CisrCisrICAvKiBOb3cgZmV0Y2ggYW5kIHNldCB0aGUgInJlYWwiIGNoZWNrIGJ5 dGVzIGJhc2VkIG9uIHRoZSBjdXJyZW50bHkKKysgICAqIGFzc2VtYmxlZCBwYXlsb2FkICovCisr ICBjaGVja192YWx1ZSA9IGVnaXNfZXR1OTA1X2dldF9jaGVja19ieXRlcyAoRlBJX0JZVEVfUkVB REVSICgmd3JpdGVyKSk7CisrICBmcGlfYnl0ZV93cml0ZXJfc2V0X3BvcyAoJndyaXRlciwgZWdp c19ldHU5MDVfd3JpdGVfcHJlZml4X2xlbik7CisrICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRl cl9wdXRfdWludDE2X2JlICgmd3JpdGVyLCBjaGVja192YWx1ZSk7CisrCisrICAvKiBkZXN0cm95 IGNtZCBpZiByZXF1ZXN0ZWQgKi8KKysgIGlmIChjbWRfZGVzdHJveSkKKysgICAgZ19jbGVhcl9w b2ludGVyICgmY21kLCBjbWRfZGVzdHJveSk7CisrCisrICBnX2Fzc2VydCAoc2VsZi0+Y21kX3Nz bSA9PSBOVUxMKTsKKysgIHNlbGYtPmNtZF9zc20gPSBmcGlfc3NtX25ldyAoZGV2aWNlLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZ2lzX2V0dTkwNV9jbWRfcnVuX3N0YXRlLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTURfU1RBVEVTKTsKKysKKysgIGRhdGEg PSBnX25ldzAgKENvbW1hbmREYXRhLCAxKTsKKysgIGRhdGEtPmNhbGxiYWNrID0gY2FsbGJhY2s7 CisrICBmcGlfc3NtX3NldF9kYXRhIChzZWxmLT5jbWRfc3NtLCBnX3N0ZWFsX3BvaW50ZXIgKCZk YXRhKSwKKysgICAgICAgICAgICAgICAgICAgIChHRGVzdHJveU5vdGlmeSkgZWdpc19ldHU5MDVf Y29tbWFuZF9kYXRhX2ZyZWUpOworKworKyAgaWYgKCF3cml0dGVuKQorKyAgICB7CisrICAgICAg ZnBpX3NzbV9zdGFydCAoc2VsZi0+Y21kX3NzbSwgZWdpc19ldHU5MDVfY21kX3NzbV9kb25lKTsK KysgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT5jbWRfc3NtLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3IChGUF9ERVZJQ0VfRVJST1JfUFJP VE8pKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysKKysgIHRyYW5zZmVyID0gZnBpX3VzYl90 cmFuc2Zlcl9uZXcgKGRldmljZSk7CisrICB0cmFuc2Zlci0+c2hvcnRfaXNfZXJyb3IgPSBUUlVF OworKyAgdHJhbnNmZXItPnNzbSA9IHNlbGYtPmNtZF9zc207CisrCisrICBmcGlfdXNiX3RyYW5z ZmVyX2ZpbGxfYnVsa19mdWxsICh0cmFuc2ZlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVHSVNfRVRVOTA1X0VQX0NNRF9PVVQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmcGlfYnl0ZV93cml0ZXJfcmVzZXRfYW5kX2dldF9kYXRhICgmd3JpdGVy KSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9vdXRfbGVuZ3Ro LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19mcmVlKTsKKysKKysgIGdf YXNzZXJ0IChzZWxmLT5jbWRfdHJhbnNmZXIgPT0gTlVMTCk7CisrICBzZWxmLT5jbWRfdHJhbnNm ZXIgPSBnX3N0ZWFsX3BvaW50ZXIgKCZ0cmFuc2Zlcik7CisrICBmcGlfc3NtX3N0YXJ0IChzZWxm LT5jbWRfc3NtLCBlZ2lzX2V0dTkwNV9jbWRfc3NtX2RvbmUpOworK30KKysKKytzdGF0aWMgdm9p ZAorK2VnaXNfZXR1OTA1X3NldF9wcmludF9kYXRhIChGcFByaW50ICAgICAqcHJpbnQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpkZXZpY2VfcHJpbnRfaWQsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp1c2VyX2lkKQorK3sKKysg IEdWYXJpYW50ICpwcmludF9pZF92YXIgPSBOVUxMOworKyAgR1ZhcmlhbnQgKmZwaV9kYXRhID0g TlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKmZpbGxfdXNlcl9pZCA9IE5VTEw7CisrCisrICBp ZiAodXNlcl9pZCkKKysgICAgZmlsbF91c2VyX2lkID0gZ19zdHJkdXAgKHVzZXJfaWQpOworKyAg ZWxzZQorKyAgICBmaWxsX3VzZXJfaWQgPSBnX3N0cm5kdXAgKGRldmljZV9wcmludF9pZCwgRUdJ U19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFKTsKKysKKysgIGZwaV9wcmludF9maWxsX2Zy b21fdXNlcl9pZCAocHJpbnQsIGZpbGxfdXNlcl9pZCk7CisrCisrICBmcGlfcHJpbnRfc2V0X3R5 cGUgKHByaW50LCBGUElfUFJJTlRfUkFXKTsKKysgIGZwaV9wcmludF9zZXRfZGV2aWNlX3N0b3Jl ZCAocHJpbnQsIFRSVUUpOworKworKyAgZ19vYmplY3Rfc2V0IChwcmludCwgImRlc2NyaXB0aW9u IiwgZmlsbF91c2VyX2lkLCBOVUxMKTsKKysKKysgIHByaW50X2lkX3ZhciA9IGdfdmFyaWFudF9u ZXdfZml4ZWRfYXJyYXkgKEdfVkFSSUFOVF9UWVBFX0JZVEUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VfcHJpbnRfaWQsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9E QVRBX1NJWkUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YgKGd1Y2hhcikpOworKyAgZnBpX2RhdGEgPSBnX3ZhcmlhbnRfbmV3ICgiKEBheSkiLCBw cmludF9pZF92YXIpOworKyAgZ19vYmplY3Rfc2V0IChwcmludCwgImZwaS1kYXRhIiwgZnBpX2Rh dGEsIE5VTEwpOworK30KKysKKytzdGF0aWMgR1B0ckFycmF5ICoKKytlZ2lzX2V0dTkwNV9nZXRf ZW5yb2xsZWRfcHJpbnRzIChGcERldmljZSAqZGV2aWNlKQorK3sKKysgIGdfYXV0b3B0cihHUHRy QXJyYXkpIHJlc3VsdCA9IGdfcHRyX2FycmF5X25ld193aXRoX2ZyZWVfZnVuYyAoZ19vYmplY3Rf dW5yZWYpOworKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19F VFU5MDUgKGRldmljZSk7CisrCisrICBpZiAoIXNlbGYtPmVucm9sbGVkX2lkcykKKysgICAgcmV0 dXJuIGdfc3RlYWxfcG9pbnRlciAoJnJlc3VsdCk7CisrCisrICBmb3IgKGd1aW50IGkgPSAwOyBp IDwgc2VsZi0+ZW5yb2xsZWRfaWRzLT5sZW47IGkrKykKKysgICAgeworKyAgICAgIEZwUHJpbnQg KnByaW50ID0gZnBfcHJpbnRfbmV3IChkZXZpY2UpOworKyAgICAgIGVnaXNfZXR1OTA1X3NldF9w cmludF9kYXRhIChwcmludCwgZ19wdHJfYXJyYXlfaW5kZXggKHNlbGYtPmVucm9sbGVkX2lkcywg aSksIE5VTEwpOworKyAgICAgIGdfcHRyX2FycmF5X2FkZCAocmVzdWx0LCBnX29iamVjdF9yZWZf c2luayAocHJpbnQpKTsKKysgICAgfQorKworKyAgcmV0dXJuIGdfc3RlYWxfcG9pbnRlciAoJnJl c3VsdCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrZWdpc19ldHU5MDVfbGlzdF9maWxsX2Vucm9s bGVkX2lkc19jYiAoRnBEZXZpY2UgKmRldmljZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBndWNoYXIgICAqYnVmZmVyX2luLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdzaXplICAgICBsZW5ndGhfaW4sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgKmVycm9yKQorK3sKKysgIEZwaURldmlj ZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOworKwor KyAgZnBfZGJnICgiTGlzdCBjYWxsYmFjayIpOworKworKyAgaWYgKGVycm9yKQorKyAgICB7Cisr ICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sIGVycm9yKTsKKysgICAg ICByZXR1cm47CisrICAgIH0KKysKKysgIGdfY2xlYXJfcG9pbnRlciAoJnNlbGYtPmVucm9sbGVk X2lkcywgZ19wdHJfYXJyYXlfdW5yZWYpOworKyAgc2VsZi0+ZW5yb2xsZWRfaWRzID0gZ19wdHJf YXJyYXlfbmV3X3dpdGhfZnJlZV9mdW5jIChnX2ZyZWUpOworKworKyAgRnBpQnl0ZVJlYWRlciBy ZWFkZXI7CisrICBnYm9vbGVhbiByZWFkID0gVFJVRTsKKysKKysgIGZwaV9ieXRlX3JlYWRlcl9p bml0ICgmcmVhZGVyLCBidWZmZXJfaW4sIGxlbmd0aF9pbik7CisrCisrICByZWFkICY9IGZwaV9i eXRlX3JlYWRlcl9zZXRfcG9zICgmcmVhZGVyLCBFR0lTX0VUVTkwNV9MSVNUX1JFU1BPTlNFX1BS RUZJWF9TSVpFKTsKKysKKysgIC8qCisrICAgKiBFYWNoIGZpbmdlcnByaW50IElEIHdpbGwgYmUg cmV0dXJuZWQgaW4gdGhpcyByZXNwb25zZSBhcyBhIDMyIGJ5dGUgYXJyYXkKKysgICAqIFRoZSBv dGhlciBzdHVmZiBpbiB0aGUgcGF5bG9hZCBpcyAxNiBieXRlcyBsb25nLCBzbyBpZiB0aGVyZSBp cyBhdCBsZWFzdCAxCisrICAgKiBwcmludCB0aGVuIHRoZSBsZW5ndGggc2hvdWxkIGJlIGF0IGxl YXN0IDE2KzMyPTQ4IGJ5dGVzIGxvbmcKKysgICAqLworKyAgd2hpbGUgKHJlYWQpCisrICAgIHsK KysgICAgICBjb25zdCBndWludDggKmRhdGE7CisrICAgICAgZ19hdXRvZnJlZSBnY2hhciAqcHJp bnRfaWQgPSBOVUxMOworKworKyAgICAgIHJlYWQgJj0gZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRh ICgmcmVhZGVyLCBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJWkUsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRhKTsKKysgICAgICBpZiAoIXJlYWQp CisrICAgICAgICBicmVhazsKKysKKysgICAgICBwcmludF9pZCA9IGdfbWVtZHVwMiAoZGF0YSwg RUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFKTsKKysgICAgICBnX3B0cl9hcnJheV9h ZGQgKHNlbGYtPmVucm9sbGVkX2lkcywgZ19zdGVhbF9wb2ludGVyICgmcHJpbnRfaWQpKTsKKysg ICAgfQorKworKyAgZnBfaW5mbyAoIk51bWJlciBvZiBjdXJyZW50bHkgZW5yb2xsZWQgZmluZ2Vy cHJpbnRzIG9uIHRoZSBkZXZpY2UgaXMgJWQiLAorKyAgICAgICAgICAgc2VsZi0+ZW5yb2xsZWRf aWRzLT5sZW4pOworKworKyAgaWYgKHNlbGYtPnRhc2tfc3NtKQorKyAgICBmcGlfc3NtX25leHRf c3RhdGUgKHNlbGYtPnRhc2tfc3NtKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytlZ2lzX2V0dTkw NV9saXN0X3J1bl9zdGF0ZSAoRnBpU3NtICAgKnNzbSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRnBEZXZpY2UgKmRldmljZSkKKyt7CisrICBnX2F1dG9wdHIoR1B0ckFycmF5KSBlbnJv bGxlZF9wcmludHMgPSBOVUxMOworKworKyAgc3dpdGNoIChmcGlfc3NtX2dldF9jdXJfc3RhdGUg KHNzbSkpCisrICAgIHsKKysgICAgY2FzZSBMSVNUX0dFVF9FTlJPTExFRF9JRFM6CisrICAgICAg ZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgY21kX2xpc3QsIGNtZF9saXN0X2xlbiwgTlVM TCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdpc19ldHU5MDVfbGlzdF9maWxsX2Vu cm9sbGVkX2lkc19jYik7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgTElTVF9SRVRVUk5f RU5ST0xMRURfUFJJTlRTOgorKyAgICAgIGVucm9sbGVkX3ByaW50cyA9IGVnaXNfZXR1OTA1X2dl dF9lbnJvbGxlZF9wcmludHMgKGRldmljZSk7CisrICAgICAgZnBpX2RldmljZV9saXN0X2NvbXBs ZXRlIChkZXZpY2UsIGdfc3RlYWxfcG9pbnRlciAoJmVucm9sbGVkX3ByaW50cyksIE5VTEwpOwor KyAgICAgIGZwaV9zc21fbmV4dF9zdGF0ZSAoc3NtKTsKKysgICAgICBicmVhazsKKysgICAgfQor K30KKysKKytzdGF0aWMgdm9pZAorK2VnaXNfZXR1OTA1X2xpc3QgKEZwRGV2aWNlICpkZXZpY2Up CisreworKyAgZnBfZGJnICgiTGlzdCIpOworKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9 IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7CisrCisrICBnX2Fzc2VydCAoc2VsZi0+ dGFza19zc20gPT0gTlVMTCk7CisrICBzZWxmLT50YXNrX3NzbSA9IGZwaV9zc21fbmV3IChkZXZp Y2UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZ2lzX2V0dTkwNV9saXN0X3J1 bl9zdGF0ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJU1RfU1RBVEVTKTsK KysgIGZwaV9zc21fc3RhcnQgKHNlbGYtPnRhc2tfc3NtLCBlZ2lzX2V0dTkwNV90YXNrX3NzbV9k b25lKTsKKyt9CisrCisrc3RhdGljIGd1Y2hhciAqCisrZWdpc19ldHU5MDVfZ2V0X2RlbGV0ZV9j bWQgKEZwRGV2aWNlICpkZXZpY2UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZwUHJp bnQgICpkZWxldGVfcHJpbnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAg ICpsZW5ndGhfb3V0KQorK3sKKysgIGZwX2RiZyAoIkdldCBkZWxldGUgY29tbWFuZCIpOworKyAg RnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmlj ZSk7CisrICBnX2F1dG8oRnBpQnl0ZVdyaXRlcikgd3JpdGVyID0gezB9OworKyAgZ19hdXRvcHRy KEdWYXJpYW50KSBwcmludF9kYXRhID0gTlVMTDsKKysgIGdfYXV0b3B0cihHVmFyaWFudCkgcHJp bnRfZGF0YV9pZF92YXIgPSBOVUxMOworKyAgY29uc3QgZ3VjaGFyICpwcmludF9kYXRhX2lkID0g TlVMTDsKKysgIGdzaXplIHByaW50X2RhdGFfaWRfbGVuID0gMDsKKysgIGdfYXV0b2ZyZWUgZ2No YXIgKnByaW50X2Rlc2NyaXB0aW9uID0gTlVMTDsKKysgIGdfYXV0b2ZyZWUgZ3VjaGFyICplbnJv bGxlZF9wcmludF9pZCA9IE5VTEw7CisrICBnX2F1dG9mcmVlIGd1Y2hhciAqcmVzdWx0ID0gTlVM TDsKKysgIGdib29sZWFuIHdyaXR0ZW4gPSBUUlVFOworKworKyAgLyoKKysgICAqIFRoZSBmaW5h bCBjb21tYW5kIGJvZHkgc2hvdWxkIGNvbnRhaW46CisrICAgKiAxKSBoYXJkLWNvZGVkIDAwIDAw CisrICAgKiAyKSAyLWJ5dGUgc2l6ZSBpbmRpY2lhdG9yLCAyMCpOdW1iZXIgZGVsZXRlZCBpZGVu dGlmaWVycyBwbHVzIDcgaW4gZm9ybSBvZjoKKysgICAqICAgIG51bV90b19kZWxldGUgKiAweDIw ICsgMHgwNworKyAgICogICAgU2luY2UgbWF4IHByaW50cyBjYW4gYmUgaGlnaGVyIHRoYW4gNyB0 aGVuIHRoaXMgZ29lcyB1cCB0byAyIGJ5dGVzCisrICAgKiAgICAoZTkgKyA5ID0gMTA5KQorKyAg ICogMykgSGFyZC1jb2RlZCBwcmVmaXggKGNtZF9kZWxldGVfcHJlZml4KQorKyAgICogNCkgMi1i eXRlIHNpemUgaW5kaWNpYXRvciwgMjAqTnVtYmVyIG9mIGVucm9sbGVkIGlkZW50aWZpZXJzIHdp dGhvdXQgcGx1cyA3CisrICAgKiAgICAobnVtX3RvX2RlbGV0ZSAqIDB4MjApCisrICAgKiA1KSBB bGwgb2YgdGhlIGN1cnJlbnRseSByZWdpc3RlcmVkIHByaW50cyB0byBkZWxldGUgaW4gdGhlaXIg MzItYnl0ZSBkZXZpY2UKKysgICAqICAgIGlkZW50aWZpZXJzIChlbnJvbGxlZF9saXN0KQorKyAg ICovCisrCisrICBpbnQgbnVtX3RvX2RlbGV0ZSA9IDA7CisrICBpZiAoZGVsZXRlX3ByaW50KQor KyAgICBudW1fdG9fZGVsZXRlID0gMTsKKysgIGVsc2UgaWYgKHNlbGYtPmVucm9sbGVkX2lkcykK KysgICAgbnVtX3RvX2RlbGV0ZSA9IHNlbGYtPmVucm9sbGVkX2lkcy0+bGVuOworKworKyAgY29u c3QgZ3NpemUgYm9keV9sZW5ndGggPSBzaXplb2YgKGd1Y2hhcikgKiBFR0lTX0VUVTkwNV9GSU5H RVJQUklOVF9EQVRBX1NJWkUgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1fdG9f ZGVsZXRlOworKyAgLyogdG90YWxfbGVuZ3RoIGlzIHRoZSA2IHZhcmlvdXMgYnl0ZXMgcGx1cyBw cmVmaXggYW5kIGJvZHkgcGF5bG9hZCAqLworKyAgY29uc3QgZ3NpemUgdG90YWxfbGVuZ3RoID0g KHNpemVvZiAoZ3VjaGFyKSAqIDYpICsgY21kX2RlbGV0ZV9wcmVmaXhfbGVuICsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJvZHlfbGVuZ3RoOworKworKyAgLyogcHJlLWZpbGwgZW50 aXJlIHBheWxvYWQgd2l0aCAwMHMgKi8KKysgIGZwaV9ieXRlX3dyaXRlcl9pbml0X3dpdGhfc2l6 ZSAoJndyaXRlciwgdG90YWxfbGVuZ3RoLCBUUlVFKTsKKysKKysgIC8qIHN0YXJ0IHdpdGggMDAg MDAgKGp1c3QgbW92ZSBzdGFydGluZyBvZmZzZXQgdXAgYnkgMikgKi8KKysgIHdyaXR0ZW4gJj0g ZnBpX2J5dGVfd3JpdGVyX3NldF9wb3MgKCZ3cml0ZXIsIDIpOworKworKyAgLyogU2l6ZSBDb3Vu dGVyIGJ5dGVzICovCisrICAvKiAiZWFzaWVzdCIgd2F5IHRvIGhhbmRsZSAyLWJ5dGVzIHNpemUg Zm9yIGNvdW50ZXIgaXMgdG8gaGFyZC1jb2RlIGxvZ2ljIGZvcgorKyAgICogd2hlbiB3ZSBnbyB0 byB0aGUgMm5kIGJ5dGUKKysgICAqIG5vdGUgdGhpcyB3aWxsIG5vdCB3b3JrIGluIGNhc2UgYW55 IG1vZGVsIGV2ZXIgc3VwcG9ydHMgbW9yZSB0aGFuIDE0IHByaW50cworKyAgICogKGFzc3VtZWQg bWF4IGlzIDEwKSAqLworKyAgaWYgKG51bV90b19kZWxldGUgPiA3KQorKyAgICB7CisrICAgICAg d3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4ICgmd3JpdGVyLCAweDAxKTsKKysg ICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDggKCZ3cml0ZXIsICgobnVt X3RvX2RlbGV0ZSAtIDgpICogMHgyMCkgKyAweDA3KTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7 CisrICAgICAgLyogZmlyc3QgYnl0ZSBpcyAweDAwLCBqdXN0IHNraXAgaXQgKi8KKysgICAgICB3 cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9jaGFuZ2VfcG9zICgmd3JpdGVyLCAxKTsKKysgICAg ICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDggKCZ3cml0ZXIsIChudW1fdG9f ZGVsZXRlICogMHgyMCkgKyAweDA3KTsKKysgICAgfQorKworKyAgLyogY29tbWFuZCBwcmVmaXgg Ki8KKysgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhICgmd3JpdGVyLCBjbWRf ZGVsZXRlX3ByZWZpeCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj bWRfZGVsZXRlX3ByZWZpeF9sZW4pOworKworKyAgLyogMi1ieXRlcyBzaXplIGxvZ2ljIGZvciBj b3VudGVyIGFnYWluICovCisrICBpZiAobnVtX3RvX2RlbGV0ZSA+IDcpCisrICAgIHsKKysgICAg ICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDggKCZ3cml0ZXIsIDB4MDEpOwor KyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50OCAoJndyaXRlciwgKG51 bV90b19kZWxldGUgLSA4KSAqIDB4MjApOworKyAgICB9CisrICBlbHNlCisrICAgIHsKKysgICAg ICAvKiBmaXJzdCBieXRlIGlzIDB4MDAsIGp1c3Qgc2tpcCBpdCAqLworKyAgICAgIHdyaXR0ZW4g Jj0gZnBpX2J5dGVfd3JpdGVyX2NoYW5nZV9wb3MgKCZ3cml0ZXIsIDEpOworKyAgICAgIHdyaXR0 ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50OCAoJndyaXRlciwgbnVtX3RvX2RlbGV0ZSAq IDB4MjApOworKyAgICB9CisrCisrICAvKiBhcHBlbmQgZGVzaXJlZCAzMi1ieXRlIGZpbmdlcnBy aW50IElEcyAqLworKyAgLyogaWYgcGFzc2VkIGEgZGVsZXRlX3ByaW50IHRoZW4gZmV0Y2ggaXRz IGRhdGEgZnJvbSB0aGUgRnBQcmludCAqLworKyAgaWYgKGRlbGV0ZV9wcmludCkKKysgICAgewor KyAgICAgIGdfb2JqZWN0X2dldCAoZGVsZXRlX3ByaW50LCAiZGVzY3JpcHRpb24iLCAmcHJpbnRf ZGVzY3JpcHRpb24sIE5VTEwpOworKyAgICAgIGdfb2JqZWN0X2dldCAoZGVsZXRlX3ByaW50LCAi ZnBpLWRhdGEiLCAmcHJpbnRfZGF0YSwgTlVMTCk7CisrCisrICAgICAgaWYgKCFnX3ZhcmlhbnRf Y2hlY2tfZm9ybWF0X3N0cmluZyAocHJpbnRfZGF0YSwgIihAYXkpIiwgRkFMU0UpKQorKyAgICAg ICAgeworKyAgICAgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXcgKEZQX0RF VklDRV9FUlJPUl9EQVRBX0lOVkFMSUQpKTsKKysgICAgICAgICAgcmV0dXJuIE5VTEw7CisrICAg ICAgICB9CisrCisrICAgICAgZ192YXJpYW50X2dldCAocHJpbnRfZGF0YSwgIihAYXkpIiwgJnBy aW50X2RhdGFfaWRfdmFyKTsKKysgICAgICBwcmludF9kYXRhX2lkID0gZ192YXJpYW50X2dldF9m aXhlZF9hcnJheSAocHJpbnRfZGF0YV9pZF92YXIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZwcmludF9kYXRhX2lkX2xlbiwgc2l6ZW9mIChndWNo YXIpKTsKKysKKysgICAgICBpZiAoIWdfc3RyX2hhc19wcmVmaXggKHByaW50X2Rlc2NyaXB0aW9u LCAiRlAiKSkKKysgICAgICAgIGZwX2RiZyAoIkZpbmdlcnByaW50ICclcycgd2FzIG5vdCBjcmVh dGVkIGJ5IGxpYmZwcmludDsgZGVsZXRpbmcgYW55d2F5LiIsCisrICAgICAgICAgICAgICAgIHBy aW50X2Rlc2NyaXB0aW9uKTsKKysKKysgICAgICBmcF9pbmZvICgiRGVsZXRlIGZpbmdlcnByaW50 ICVzIiwgcHJpbnRfZGVzY3JpcHRpb24pOworKworKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVf d3JpdGVyX3B1dF9kYXRhICgmd3JpdGVyLCBwcmludF9kYXRhX2lkLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRB X1NJWkUpOworKyAgICB9CisrICAvKiBPdGhlcndpc2UgYXNzdW1lIHRoaXMgaXMgYSAiY2xlYXIi IC0ganVzdCBsb29wIHRocm91Z2ggYW5kIGFwcGVuZCBhbGwgZW5yb2xsZWQgSURzICovCisrICBl bHNlIGlmIChzZWxmLT5lbnJvbGxlZF9pZHMpCisrICAgIHsKKysgICAgICBmb3IgKGd1aW50IGkg PSAwOyBpIDwgc2VsZi0+ZW5yb2xsZWRfaWRzLT5sZW4gJiYgd3JpdHRlbjsgaSsrKQorKyAgICAg ICAgeworKyAgICAgICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YSAoJndy aXRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf cHRyX2FycmF5X2luZGV4IChzZWxmLT5lbnJvbGxlZF9pZHMsIGkpLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfRklOR0VSUFJJTlRf REFUQV9TSVpFKTsKKysgICAgICAgIH0KKysgICAgfQorKworKyAgZ19hc3NlcnQgKHdyaXR0ZW4p OworKworKyAgaWYgKGxlbmd0aF9vdXQpCisrICAgICpsZW5ndGhfb3V0ID0gdG90YWxfbGVuZ3Ro OworKworKyAgcmV0dXJuIGZwaV9ieXRlX3dyaXRlcl9yZXNldF9hbmRfZ2V0X2RhdGEgKCZ3cml0 ZXIpOworK30KKysKKytzdGF0aWMgdm9pZAorK2VnaXNfZXR1OTA1X2RlbGV0ZV9jYiAoRnBEZXZp Y2UgKmRldmljZSwKKysgICAgICAgICAgICAgICAgICAgICAgIGd1Y2hhciAgICpidWZmZXJfaW4s CisrICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSAgICAgbGVuZ3RoX2luLAorKyAgICAgICAg ICAgICAgICAgICAgICAgR0Vycm9yICAgKmVycm9yKQorK3sKKysgIGZwX2RiZyAoIkRlbGV0ZSBj YWxsYmFjayIpOworKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJ U19FVFU5MDUgKGRldmljZSk7CisrCisrICBpZiAoZXJyb3IpCisrICAgIHsKKysgICAgICBmcGlf c3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3IpOworKyAgICAgIHJldHVybjsK KysgICAgfQorKworKyAgLyogQ2hlY2sgdGhhdCB0aGUgcmVhZCBwYXlsb2FkIGluZGljYXRlcyAi c3VjY2VzcyIgd2l0aCB0aGUgZGVsZXRlICovCisrICBpZiAoZWdpc19ldHU5MDVfdmFsaWRhdGVf cmVzcG9uc2VfcHJlZml4IChidWZmZXJfaW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZW5ndGhfaW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByc3BfZGVsZXRlX3N1Y2Nlc3NfcHJlZml4LAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwX2RlbGV0ZV9zdWNjZXNzX3ByZWZp eF9sZW4pKQorKyAgICB7CisrICAgICAgaWYgKGZwaV9kZXZpY2VfZ2V0X2N1cnJlbnRfYWN0aW9u IChkZXZpY2UpID09IEZQSV9ERVZJQ0VfQUNUSU9OX0NMRUFSX1NUT1JBR0UpCisrICAgICAgICB7 CisrICAgICAgICAgIGZwaV9kZXZpY2VfY2xlYXJfc3RvcmFnZV9jb21wbGV0ZSAoZGV2aWNlLCBO VUxMKTsKKysgICAgICAgICAgZnBpX3NzbV9uZXh0X3N0YXRlIChzZWxmLT50YXNrX3NzbSk7Cisr ICAgICAgICB9CisrICAgICAgZWxzZSBpZiAoZnBpX2RldmljZV9nZXRfY3VycmVudF9hY3Rpb24g KGRldmljZSkgPT0gRlBJX0RFVklDRV9BQ1RJT05fREVMRVRFKQorKyAgICAgICAgeworKyAgICAg ICAgICBmcGlfZGV2aWNlX2RlbGV0ZV9jb21wbGV0ZSAoZGV2aWNlLCBOVUxMKTsKKysgICAgICAg ICAgZnBpX3NzbV9uZXh0X3N0YXRlIChzZWxmLT50YXNrX3NzbSk7CisrICAgICAgICB9CisrICAg ICAgZWxzZQorKyAgICAgICAgeworKyAgICAgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxm LT50YXNrX3NzbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9l cnJvcl9uZXdfbXNnIChGUF9ERVZJQ0VfRVJST1JfUFJPVE8sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVuc3VwcG9ydGVkIGRlbGV0 ZSBhY3Rpb24uIikpOworKyAgICAgICAgfQorKyAgICB9CisrICBlbHNlCisrICAgIHsKKysgICAg ICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9yX25ld19tc2cgKEZQX0RFVklDRV9FUlJPUl9QUk9U TywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJEZWxldGUgcHJpbnQgd2FzIG5vdCBzdWNjZXNzZnVsIikpOworKyAgICB9CisrfQorKworK3N0 YXRpYyB2b2lkCisrZWdpc19ldHU5MDVfZGVsZXRlX3J1bl9zdGF0ZSAoRnBpU3NtICAgKnNzbSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcERldmljZSAqZGV2aWNlKQorK3sKKysg IGdfYXV0b2ZyZWUgZ3VjaGFyICpwYXlsb2FkID0gTlVMTDsKKysgIGdzaXplIHBheWxvYWRfbGVu Z3RoID0gMDsKKysKKysgIHN3aXRjaCAoZnBpX3NzbV9nZXRfY3VyX3N0YXRlIChzc20pKQorKyAg ICB7CisrICAgIGNhc2UgREVMRVRFX0dFVF9FTlJPTExFRF9JRFM6CisrICAgICAgLyogZ2V0IGVu cm9sbGVkX2lkcyBmcm9tIGRldmljZSBmb3IgdXNlIGJ1aWxkaW5nIGRlbGV0ZSBwYXlsb2FkIGJl bG93ICovCisrICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgY21kX2xpc3QsIGNt ZF9saXN0X2xlbiwgTlVMTCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdpc19ldHU5 MDVfbGlzdF9maWxsX2Vucm9sbGVkX2lkc19jYik7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNh c2UgREVMRVRFX0RFTEVURToKKysgICAgICBpZiAoZnBpX2RldmljZV9nZXRfY3VycmVudF9hY3Rp b24gKGRldmljZSkgPT0gRlBJX0RFVklDRV9BQ1RJT05fREVMRVRFKQorKyAgICAgICAgcGF5bG9h ZCA9IGVnaXNfZXR1OTA1X2dldF9kZWxldGVfY21kIChkZXZpY2UsIGZwaV9zc21fZ2V0X2RhdGEg KHNzbSksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZw YXlsb2FkX2xlbmd0aCk7CisrICAgICAgZWxzZQorKyAgICAgICAgcGF5bG9hZCA9IGVnaXNfZXR1 OTA1X2dldF9kZWxldGVfY21kIChkZXZpY2UsIE5VTEwsICZwYXlsb2FkX2xlbmd0aCk7CisrCisr ICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgZ19zdGVhbF9wb2ludGVyICgmcGF5 bG9hZCksIHBheWxvYWRfbGVuZ3RoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2Zy ZWUsIGVnaXNfZXR1OTA1X2RlbGV0ZV9jYik7CisrICAgICAgYnJlYWs7CisrICAgIH0KKyt9Cisr Cisrc3RhdGljIHZvaWQKKytlZ2lzX2V0dTkwNV9jbGVhcl9zdG9yYWdlIChGcERldmljZSAqZGV2 aWNlKQorK3sKKysgIGZwX2RiZyAoIkNsZWFyIHN0b3JhZ2UiKTsKKysgIEZwaURldmljZUVnaXNF dHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOworKworKyAgZ19h c3NlcnQgKHNlbGYtPnRhc2tfc3NtID09IE5VTEwpOworKyAgc2VsZi0+dGFza19zc20gPSBmcGlf c3NtX25ldyAoZGV2aWNlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdpc19l dHU5MDVfZGVsZXRlX3J1bl9zdGF0ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IERFTEVURV9TVEFURVMpOworKyAgZnBpX3NzbV9zdGFydCAoc2VsZi0+dGFza19zc20sIGVnaXNf ZXR1OTA1X3Rhc2tfc3NtX2RvbmUpOworK30KKysKKytzdGF0aWMgdm9pZAorK2VnaXNfZXR1OTA1 X2RlbGV0ZSAoRnBEZXZpY2UgKmRldmljZSkKKyt7CisrICBmcF9kYmcgKCJEZWxldGUiKTsKKysg IEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZp Y2UpOworKyAgRnBQcmludCAqZGVsZXRlX3ByaW50ID0gTlVMTDsKKysKKysgIGZwaV9kZXZpY2Vf Z2V0X2RlbGV0ZV9kYXRhIChkZXZpY2UsICZkZWxldGVfcHJpbnQpOworKworKyAgZ19hc3NlcnQg KHNlbGYtPnRhc2tfc3NtID09IE5VTEwpOworKyAgc2VsZi0+dGFza19zc20gPSBmcGlfc3NtX25l dyAoZGV2aWNlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdpc19ldHU5MDVf ZGVsZXRlX3J1bl9zdGF0ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFTEVU RV9TVEFURVMpOworKyAgLyogdGhlIHByaW50IGlzIG93bmVkIGJ5IGxpYmZwcmludCBkdXJpbmcg ZGVsZXRpb24gdGFzayAqLworKyAgZnBpX3NzbV9zZXRfZGF0YSAoc2VsZi0+dGFza19zc20sIGRl bGV0ZV9wcmludCwgTlVMTCk7CisrICBmcGlfc3NtX3N0YXJ0IChzZWxmLT50YXNrX3NzbSwgZWdp c19ldHU5MDVfdGFza19zc21fZG9uZSk7CisrfQorKworK3N0YXRpYyB2b2lkCisrZWdpc19ldHU5 MDVfZW5yb2xsX3N0YXR1c19yZXBvcnQgKEZwRGV2aWNlICAgICpkZXZpY2UsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVucm9sbFByaW50ICplbnJvbGxfcHJpbnQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVucm9sbFN0YXR1cyBzdGF0dXMsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICplcnJvcikKKyt7Cisr ICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2 aWNlKTsKKysKKysgIHN3aXRjaCAoc3RhdHVzKQorKyAgICB7CisrICAgIGNhc2UgRU5ST0xMX1NU QVRVU19ERVZJQ0VfRlVMTDoKKysgICAgY2FzZSBFTlJPTExfU1RBVFVTX0RVUExJQ0FURToKKysg ICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3IpOworKyAgICAg IGJyZWFrOworKworKyAgICBjYXNlIEVOUk9MTF9TVEFUVVNfUkVUUlk6CisrICAgICAgZnBpX2Rl dmljZV9lbnJvbGxfcHJvZ3Jlc3MgKGRldmljZSwgZW5yb2xsX3ByaW50LT5zdGFnZSwgTlVMTCwg ZXJyb3IpOworKyAgICAgIGJyZWFrOworKworKyAgICBjYXNlIEVOUk9MTF9TVEFUVVNfUEFSVElB TF9PSzoKKysgICAgICBlbnJvbGxfcHJpbnQtPnN0YWdlKys7CisrICAgICAgZnBfaW5mbyAoIlBh cnRpYWwgY2FwdHVyZSBzdWNjZXNzZnVsLiBQbGVhc2UgdG91Y2ggdGhlIHNlbnNvciBhZ2FpbiAo JWQvJWQpIiwKKysgICAgICAgICAgICAgICBlbnJvbGxfcHJpbnQtPnN0YWdlLAorKyAgICAgICAg ICAgICAgIHNlbGYtPm1heF9lbnJvbGxfc3RhZ2VzKTsKKysgICAgICBmcGlfZGV2aWNlX2Vucm9s bF9wcm9ncmVzcyAoZGV2aWNlLCBlbnJvbGxfcHJpbnQtPnN0YWdlLCBlbnJvbGxfcHJpbnQtPnBy aW50LCBOVUxMKTsKKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBFTlJPTExfU1RBVFVTX0NP TVBMRVRFOgorKyAgICAgIGZwX2luZm8gKCJFbnJvbGxtZW50IHdhcyBzdWNjZXNzZnVsISIpOwor KyAgICAgIGZwaV9kZXZpY2VfZW5yb2xsX2NvbXBsZXRlIChkZXZpY2UsIGdfb2JqZWN0X3JlZiAo ZW5yb2xsX3ByaW50LT5wcmludCksIE5VTEwpOworKyAgICAgIGJyZWFrOworKworKyAgICBkZWZh dWx0OgorKyAgICAgIGlmIChlcnJvcikKKysgICAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNl bGYtPnRhc2tfc3NtLCBlcnJvcik7CisrICAgICAgZWxzZQorKyAgICAgICAgZnBpX3NzbV9tYXJr X2ZhaWxlZCAoc2VsZi0+dGFza19zc20sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm cGlfZGV2aWNlX2Vycm9yX25ld19tc2cgKEZQX0RFVklDRV9FUlJPUl9HRU5FUkFMLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93 biBlcnJvciIpKTsKKysgICAgfQorK30KKysKKytzdGF0aWMgdm9pZAorK2VnaXNfZXR1OTA1X3Jl YWRfY2FwdHVyZV9jYiAoRnBEZXZpY2UgKmRldmljZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGd1Y2hhciAgICpidWZmZXJfaW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnc2l6ZSAgICAgbGVuZ3RoX2luLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vy cm9yICAgKmVycm9yKQorK3sKKysgIGZwX2RiZyAoIlJlYWQgY2FwdHVyZSBjYWxsYmFjayIpOwor KyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRl dmljZSk7CisrICBFbnJvbGxQcmludCAqZW5yb2xsX3ByaW50ID0gZnBpX3NzbV9nZXRfZGF0YSAo c2VsZi0+dGFza19zc20pOworKworKyAgaWYgKGVycm9yKQorKyAgICB7CisrICAgICAgZnBpX3Nz bV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sIGVycm9yKTsKKysgICAgICByZXR1cm47Cisr ICAgIH0KKysKKysgIC8qIENoZWNrIHRoYXQgdGhlIHJlYWQgcGF5bG9hZCBpbmRpY2F0ZXMgInN1 Y2Nlc3MiICovCisrICBpZiAoZWdpc19ldHU5MDVfdmFsaWRhdGVfcmVzcG9uc2VfcHJlZml4IChi dWZmZXJfaW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZW5ndGhfaW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy c3BfcmVhZF9zdWNjZXNzX3ByZWZpeCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJzcF9yZWFkX3N1Y2Nlc3NfcHJlZml4X2xlbikgJiYKKysgICAgICBlZ2lz X2V0dTkwNV92YWxpZGF0ZV9yZXNwb25zZV9zdWZmaXggKGJ1ZmZlcl9pbiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aF9pbiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9yZWFkX3N1Y2Nlc3Nfc3VmZml4 LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwX3JlYWRf c3VjY2Vzc19zdWZmaXhfbGVuKSkKKysgICAgeworKyAgICAgIGVnaXNfZXR1OTA1X2Vucm9sbF9z dGF0dXNfcmVwb3J0IChkZXZpY2UsIGVucm9sbF9wcmludCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRU5ST0xMX1NUQVRVU19QQVJUSUFMX09LLCBOVUxMKTsKKysg ICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAgLyogSWYgbm90IHN1Y2Nlc3MgdGhlbiB0aGUg c2Vuc29yIGNhbiBlaXRoZXIgcmVwb3J0ICJvZmYgY2VudGVyIiBvciAic2Vuc29yIGlzIGRpcnR5 IiAqLworKworKyAgICAgIC8qICJPZmYgY2VudGVyIiAqLworKyAgICAgIGlmIChlZ2lzX2V0dTkw NV92YWxpZGF0ZV9yZXNwb25zZV9wcmVmaXggKGJ1ZmZlcl9pbiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhfaW4sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwX3JlYWRfb2ZmY2VudGVyX3By ZWZpeCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy c3BfcmVhZF9vZmZjZW50ZXJfcHJlZml4X2xlbikgJiYKKysgICAgICAgICAgZWdpc19ldHU5MDVf dmFsaWRhdGVfcmVzcG9uc2Vfc3VmZml4IChidWZmZXJfaW4sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoX2luLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9yZWFkX29mZmNlbnRlcl9zdWZm aXgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNw X3JlYWRfb2ZmY2VudGVyX3N1ZmZpeF9sZW4pKQorKyAgICAgICAgZXJyb3IgPSBmcGlfZGV2aWNl X3JldHJ5X25ldyAoRlBfREVWSUNFX1JFVFJZX0NFTlRFUl9GSU5HRVIpOworKworKyAgICAgIC8q ICJTZW5zb3IgaXMgZGlydHkiICovCisrICAgICAgZWxzZSBpZiAoZWdpc19ldHU5MDVfdmFsaWRh dGVfcmVzcG9uc2VfcHJlZml4IChidWZmZXJfaW4sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhfaW4sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfcmVhZF9kaXJ0eV9wcmVm aXgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByc3BfcmVhZF9kaXJ0eV9wcmVmaXhfbGVuKSkKKysgICAgICAgIGVycm9yID0gZnBpX2Rldmlj ZV9yZXRyeV9uZXdfbXNnIChGUF9ERVZJQ0VfUkVUUllfUkVNT1ZFX0ZJTkdFUiwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWW91ciBkZXZpY2UgaXMgaGF2aW5n IHRyb3VibGUgcmVjb2duaXppbmcgeW91LiAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIk1ha2Ugc3VyZSB5b3VyIHNlbnNvciBpcyBjbGVhbi4iKTsKKysKKysg ICAgICBlbHNlCisrICAgICAgICBlcnJvciA9IGZwaV9kZXZpY2VfcmV0cnlfbmV3X21zZyAoRlBf REVWSUNFX1JFVFJZX1JFTU9WRV9GSU5HRVIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIlVua25vd24gZmFpbHVyZSB0cnlpbmcgdG8gcmVhZCB5b3VyIGZpbmdl ci4gIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGVhc2Ug dHJ5IGFnYWluLiIpOworKworKyAgICAgIGVnaXNfZXR1OTA1X2Vucm9sbF9zdGF0dXNfcmVwb3J0 IChkZXZpY2UsIGVucm9sbF9wcmludCwgRU5ST0xMX1NUQVRVU19SRVRSWSwgZXJyb3IpOworKyAg ICB9CisrCisrICBpZiAoZW5yb2xsX3ByaW50LT5zdGFnZSA9PSBzZWxmLT5tYXhfZW5yb2xsX3N0 YWdlcykKKysgICAgZnBpX3NzbV9uZXh0X3N0YXRlIChzZWxmLT50YXNrX3NzbSk7CisrICBlbHNl CisrICAgIGZwaV9zc21fanVtcF90b19zdGF0ZSAoc2VsZi0+dGFza19zc20sIEVOUk9MTF9DQVBU VVJFX1NFTlNPUl9SRVNFVCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrZWdpc19ldHU5MDVfZW5y b2xsX2R1cGxpY2F0ZV9jaGVja19jYiAoRnBEZXZpY2UgKmRldmljZSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBndWNoYXIgICAqYnVmZmVyX2luLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAgICBsZW5ndGhfaW4sCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgKmVycm9yKQorK3sK KysgIGZwX2RiZyAoIlRhc2sgU1NNIGVucm9sbCBkdXBsaWNhdGUgY2hlY2sgY2FsbGJhY2siKTsK KysgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChk ZXZpY2UpOworKworKyAgaWYgKGVycm9yKQorKyAgICB7CisrICAgICAgZnBpX3NzbV9tYXJrX2Zh aWxlZCAoc2VsZi0+dGFza19zc20sIGVycm9yKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysK KysgIC8qIENoZWNrIHRoYXQgdGhlIHJlYWQgcGF5bG9hZCByZXBvcnRzICJub3QgeWV0IGVucm9s bGVkIiAqLworKyAgaWYgKGVnaXNfZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNlX3N1ZmZpeCAoYnVm ZmVyX2luLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVu Z3RoX2luLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNw X2NoZWNrX25vdF95ZXRfZW5yb2xsZWRfc3VmZml4LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcnNwX2NoZWNrX25vdF95ZXRfZW5yb2xsZWRfc3VmZml4X2xl bikpCisrICAgIGZwaV9zc21fanVtcF90b19zdGF0ZSAoc2VsZi0+dGFza19zc20sIEVOUk9MTF9D T01NSVRfU1RBUlQpOworKyAgZWxzZQorKyAgICBlZ2lzX2V0dTkwNV9lbnJvbGxfc3RhdHVzX3Jl cG9ydCAoZGV2aWNlLCBOVUxMLCBFTlJPTExfU1RBVFVTX0RVUExJQ0FURSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3IChGUF9ERVZJ Q0VfRVJST1JfREFUQV9EVVBMSUNBVEUpKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytlZ2lzX2V0 dTkwNV9lbnJvbGxfYmVnaW5fY2IgKEZwRGV2aWNlICpkZXZpY2UsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBndWNoYXIgICAqYnVmZmVyX2luLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ3NpemUgICAgIGxlbmd0aF9pbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdFcnJvciAgICplcnJvcikKKyt7CisrICBmcF9kYmcgKCJFbnJvbGwgYmVnaW4gY2FsbGJh Y2siKTsKKysgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRV OTA1IChkZXZpY2UpOworKworKyAgaWYgKGVycm9yKQorKyAgICB7CisrICAgICAgZnBpX3NzbV9t YXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sIGVycm9yKTsKKysgICAgICByZXR1cm47CisrICAg IH0KKysKKysgIEZwaUJ5dGVSZWFkZXIgcmVhZGVyOworKworKyAgZnBpX2J5dGVfcmVhZGVyX2lu aXQgKCZyZWFkZXIsIGJ1ZmZlcl9pbiwgbGVuZ3RoX2luKTsKKysKKysgIGZwaV9ieXRlX3JlYWRl cl9zZXRfcG9zICgmcmVhZGVyLCBFR0lTX0VUVTkwNV9MSVNUX1JFU1BPTlNFX1BSRUZJWF9TSVpF KTsKKysKKysgIGNvbnN0IGd1aW50OCAqZGF0YSA9IE5VTEw7CisrCisrICBmcGlfYnl0ZV9yZWFk ZXJfZ2V0X2RhdGEgKCZyZWFkZXIsIEVHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEpOworKworKyAgaWYgKGRhdGEpCisr ICAgIG1lbWNweSAoc2VsZi0+c2lkLCBkYXRhLCBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRB X1NJWkUpOworKworKyAgZnBpX3NzbV9uZXh0X3N0YXRlIChzZWxmLT50YXNrX3NzbSk7CisrfQor KworKy8qCisrICogQnVpbGRzIHRoZSBmdWxsICJjaGVjayIgcGF5bG9hZCB3aGljaCBpbmNsdWRl cyBpZGVudGlmaWVycyBmb3IgYWxsCisrICogZmluZ2VycHJpbnRzIHdoaWNoIGN1cnJlbnRseSBz aG91bGQgZXhpc3Qgb24gdGhlIHN0b3JhZ2UuIFRoaXMgcGF5bG9hZCBpcworKyAqIHVzZWQgZHVy aW5nIGJvdGggZW5yb2xsbWVudCBhbmQgdmVyaWZ5IGFjdGlvbnMuCisrICovCisrc3RhdGljIGd1 Y2hhciAqCisrZWdpc19ldHU5MDVfZ2V0X2NoZWNrX2NtZCAoRnBEZXZpY2UgKmRldmljZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSAgICAqbGVuZ3RoX291dCkKKyt7CisrICBm cF9kYmcgKCJHZXQgY2hlY2sgY29tbWFuZCIpOworKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2Vs ZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7CisrICBnX2F1dG8oRnBpQnl0ZVdy aXRlcikgd3JpdGVyID0gezB9OworKyAgZ19hdXRvZnJlZSBndWNoYXIgKnJlc3VsdCA9IE5VTEw7 CisrICBnYm9vbGVhbiB3cml0dGVuID0gVFJVRTsKKysKKysgIC8qCisrICAgKiBUaGUgZmluYWwg Y29tbWFuZCBib2R5IHNob3VsZCBjb250YWluOgorKyAgICogMSkgaGFyZC1jb2RlZCAwMCAwMAor KyAgICogMikgMi1ieXRlIHNpemUgaW5kaWNpYXRvciwgMjAqTnVtYmVyIGVucm9sbGVkIGlkZW50 aWZpZXJzIHBsdXMgOSBpbiBmb3JtIG9mOgorKyAgICogICAgKGVucm9sbGVkX2lkcy0+bGVuICsg MSkgKiAweDIwICsgMHgwOQorKyAgICogICAgU2luY2UgbWF4IHByaW50cyBjYW4gYmUgaGlnaGVy IHRoYW4gNyB0aGVuIHRoaXMgZ29lcyB1cCB0byAyIGJ5dGVzCisrICAgKiAgICAoZTkgKyA5ID0g MTA5KQorKyAgICogMykgSGFyZC1jb2RlZCBwcmVmaXggKGNtZF9jaGVja19wcmVmaXgpCisrICAg KiA0KSAyLWJ5dGUgc2l6ZSBpbmRpY2lhdG9yLCAyMCpOdW1iZXIgb2YgZW5yb2xsZWQgaWRlbnRp ZmllcnMgd2l0aG91dCBwbHVzIDkKKysgICAqICAgICgoZW5yb2xsZWRfaWRzLT5sZW4gKyAxKSAq IDB4MjApCisrICAgKiA1KSBIYXJkLWNvZGVkIDMyICogMHgwMCBieXRlcworKyAgICogNikgQWxs IG9mIHRoZSBjdXJyZW50bHkgcmVnaXN0ZXJlZCBwcmludHMgaW4gdGhlaXIgMzItYnl0ZSBkZXZp Y2UgaWRlbnRpZmllcnMKKysgICAqICAgIChlbnJvbGxlZF9saXN0KQorKyAgICogNykgSGFyZC1j b2RlZCBzdWZmaXggKGNtZF9jaGVja19zdWZmaXgpCisrICAgKi8KKysKKysgIGdfYXNzZXJ0IChz ZWxmLT5lbnJvbGxlZF9pZHMpOworKyAgY29uc3QgZ3NpemUgYm9keV9sZW5ndGggPSBzaXplb2Yg KGd1Y2hhcikgKiBzZWxmLT5lbnJvbGxlZF9pZHMtPmxlbiAqCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRTsKKysKKysgIC8qIHBy ZWZpeCBsZW5ndGggY2FuIGRlcGVuZCBvbiB0aGUgdHlwZSAqLworKyAgY29uc3QgZ3NpemUgY2hl Y2tfcHJlZml4X2xlbmd0aCA9IChmcGlfZGV2aWNlX2dldF9kcml2ZXJfZGF0YSAoZGV2aWNlKSAm CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X0RSSVZF Ul9DSEVDS19QUkVGSVhfVFlQRTIpID8KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjbWRfY2hlY2tfcHJlZml4X3R5cGUyX2xlbiA6CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY21kX2NoZWNrX3ByZWZpeF90eXBlMV9sZW47CisrCisrICAvKiB0b3Rh bF9sZW5ndGggaXMgdGhlIDYgdmFyaW91cyBieXRlcyBwbHVzIGFsbCBvdGhlciBwcmVmaXhlcy9z dWZmaXhlcyBhbmQKKysgICAqIHRoZSBib2R5IHBheWxvYWQgKi8KKysgIGNvbnN0IGdzaXplIHRv dGFsX2xlbmd0aCA9IChzaXplb2YgKGd1Y2hhcikgKiA2KQorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKyBjaGVja19wcmVmaXhfbGVuZ3RoCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArIEVHSVNfRVRVOTA1X0NNRF9DSEVDS19TRVBBUkFUT1JfTEVOR1RICisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArIGJvZHlfbGVuZ3RoCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArIGNtZF9jaGVja19zdWZmaXhfbGVuOworKworKyAgLyogcHJlLWZpbGwgZW50aXJl IHBheWxvYWQgd2l0aCAwMHMgKi8KKysgIGZwaV9ieXRlX3dyaXRlcl9pbml0X3dpdGhfc2l6ZSAo JndyaXRlciwgdG90YWxfbGVuZ3RoLCBUUlVFKTsKKysKKysgIC8qIHN0YXJ0IHdpdGggMDAgMDAg KGp1c3QgbW92ZSBzdGFydGluZyBvZmZzZXQgdXAgYnkgMikgKi8KKysgIHdyaXR0ZW4gJj0gZnBp X2J5dGVfd3JpdGVyX3NldF9wb3MgKCZ3cml0ZXIsIDIpOworKworKyAgLyogU2l6ZSBDb3VudGVy IGJ5dGVzICovCisrICAvKiAiZWFzaWVzdCIgd2F5IHRvIGhhbmRsZSAyLWJ5dGVzIHNpemUgZm9y IGNvdW50ZXIgaXMgdG8gaGFyZC1jb2RlIGxvZ2ljIGZvcgorKyAgICogd2hlbiB3ZSBnbyB0byB0 aGUgMm5kIGJ5dGUKKysgICAqIG5vdGUgdGhpcyB3aWxsIG5vdCB3b3JrIGluIGNhc2UgYW55IG1v ZGVsIGV2ZXIgc3VwcG9ydHMgbW9yZSB0aGFuIDE0IHByaW50cworKyAgICogKGFzc3VtZWQgbWF4 IGlzIDEwKSAqLworKyAgaWYgKHNlbGYtPmVucm9sbGVkX2lkcy0+bGVuID4gNikKKysgICAgewor KyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50OCAoJndyaXRlciwgMHgw MSk7CisrICAgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4ICgmd3JpdGVy LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzZWxmLT5l bnJvbGxlZF9pZHMtPmxlbiAtIDcpICogMHgyMCkKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsgMHgwOSk7CisrICAgIH0KKysgIGVsc2UKKysgICAgeworKyAg ICAgIC8qIGZpcnN0IGJ5dGUgaXMgMHgwMCwganVzdCBza2lwIGl0ICovCisrICAgICAgd3JpdHRl biAmPSBmcGlfYnl0ZV93cml0ZXJfY2hhbmdlX3BvcyAoJndyaXRlciwgMSk7CisrICAgICAgd3Jp dHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4ICgmd3JpdGVyLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzZWxmLT5lbnJvbGxlZF9pZHMtPmxl biArIDEpICogMHgyMCkgKworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwOSk7CisrICAgIH0KKysKKysgIC8qIGNvbW1hbmQgcHJlZml4ICovCisrICBpZiAo ZnBpX2RldmljZV9nZXRfZHJpdmVyX2RhdGEgKGRldmljZSkgJiBFR0lTX0VUVTkwNV9EUklWRVJf Q0hFQ0tfUFJFRklYX1RZUEUyKQorKyAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRf ZGF0YSAoJndyaXRlciwgY21kX2NoZWNrX3ByZWZpeF90eXBlMiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNtZF9jaGVja19wcmVmaXhfdHlwZTJfbGVuKTsKKysg IGVsc2UKKysgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X2RhdGEgKCZ3cml0ZXIs IGNtZF9jaGVja19wcmVmaXhfdHlwZTEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbWRfY2hlY2tfcHJlZml4X3R5cGUxX2xlbik7CisrCisrICAvKiAyLWJ5dGVz IHNpemUgbG9naWMgZm9yIGNvdW50ZXIgYWdhaW4gKi8KKysgIGlmIChzZWxmLT5lbnJvbGxlZF9p ZHMtPmxlbiA+IDYpCisrICAgIHsKKysgICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9w dXRfdWludDggKCZ3cml0ZXIsIDB4MDEpOworKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3Jp dGVyX3B1dF91aW50OCAoJndyaXRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzZWxmLT5lbnJvbGxlZF9pZHMtPmxlbiAtIDcpICogMHgyMCk7CisrICAg IH0KKysgIGVsc2UKKysgICAgeworKyAgICAgIC8qIGZpcnN0IGJ5dGUgaXMgMHgwMCwganVzdCBz a2lwIGl0ICovCisrICAgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfY2hhbmdlX3BvcyAo JndyaXRlciwgMSk7CisrICAgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4 ICgmd3JpdGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNlbGYtPmVucm9sbGVkX2lkcy0+bGVuICsgMSkgKiAweDIwKTsKKysgICAgfQorKworKyAgLyog YWRkIDAwcyAic2VwYXJhdG9yIiB0byBvZmZzZXQgcG9zaXRpb24gKi8KKysgIHdyaXR0ZW4gJj0g ZnBpX2J5dGVfd3JpdGVyX2NoYW5nZV9wb3MgKCZ3cml0ZXIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9DTURfQ0hFQ0tfU0VQQVJBVE9SX0xF TkdUSCk7CisrCisrICBmb3IgKGd1aW50IGkgPSAwOyBpIDwgc2VsZi0+ZW5yb2xsZWRfaWRzLT5s ZW4gJiYgd3JpdHRlbjsgaSsrKQorKyAgICB7CisrICAgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93 cml0ZXJfcHV0X2RhdGEgKCZ3cml0ZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdfcHRyX2FycmF5X2luZGV4IChzZWxmLT5lbnJvbGxlZF9pZHMsIGkpLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9G SU5HRVJQUklOVF9EQVRBX1NJWkUpOworKyAgICB9CisrCisrICAvKiBjb21tYW5kIHN1ZmZpeCAq LworKyAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X2RhdGEgKCZ3cml0ZXIsIGNtZF9j aGVja19zdWZmaXgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21k X2NoZWNrX3N1ZmZpeF9sZW4pOworKyAgZ19hc3NlcnQgKHdyaXR0ZW4pOworKworKyAgaWYgKGxl bmd0aF9vdXQpCisrICAgICpsZW5ndGhfb3V0ID0gdG90YWxfbGVuZ3RoOworKworKyAgcmV0dXJu IGZwaV9ieXRlX3dyaXRlcl9yZXNldF9hbmRfZ2V0X2RhdGEgKCZ3cml0ZXIpOworK30KKysKKytz dGF0aWMgdm9pZAorK2VnaXNfZXR1OTA1X2Vucm9sbF9ydW5fc3RhdGUgKEZwaVNzbSAgICpzc20s CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnBEZXZpY2UgKmRldmljZSkKKyt7Cisr ICBnX2F1dG8oRnBpQnl0ZVdyaXRlcikgd3JpdGVyID0gezB9OworKyAgRWdpc21vY1NpZERhdGEg c2lkX2RhdGEgPSB7MH07CisrICBFbnJvbGxQcmludCAqZW5yb2xsX3ByaW50ID0gZnBpX3NzbV9n ZXRfZGF0YSAoc3NtKTsKKysgIGdfYXV0b2ZyZWUgZ3VjaGFyICpwYXlsb2FkID0gTlVMTDsKKysg IGdzaXplIHBheWxvYWRfbGVuZ3RoID0gMDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKmRldmljZV9w cmludF9pZCA9IE5VTEw7CisrICBnX2F1dG9mcmVlIGdjaGFyICp1c2VyX2lkID0gTlVMTDsKKysK KysgIHN3aXRjaCAoZnBpX3NzbV9nZXRfY3VyX3N0YXRlIChzc20pKQorKyAgICB7CisrICAgIGNh c2UgRU5ST0xMX1NUQVJUOgorKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNt ZF9lbnJvbGxfc3RhcnRpbmcsIGNtZF9lbnJvbGxfc3RhcnRpbmdfbGVuLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLCBlZ2lzX2V0dTkwNV9lbnJvbGxfYmVnaW5fY2IpOworKyAg ICAgIGJyZWFrOworKworKyAgICBjYXNlIEVOUk9MTF9DQVBUVVJFX1NFTlNPUl9SRVNFVDoKKysg ICAgICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBjbWRfc2Vuc29yX3Jlc2V0LCBjbWRf c2Vuc29yX3Jlc2V0X2xlbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWdp c19ldHU5MDVfdGFza19zc21fbmV4dF9zdGF0ZV9jYik7CisrICAgICAgYnJlYWs7CisrCisrICAg IGNhc2UgRU5ST0xMX0NBUFRVUkVfU0VOU09SX1NUQVJUX0NBUFRVUkU6CisrICAgICAgZWdpc19l dHU5MDVfZXhlY19jbWQgKGRldmljZSwgY21kX3NlbnNvcl9zdGFydF9jYXB0dXJlLCBjbWRfc2Vu c29yX3N0YXJ0X2NhcHR1cmVfbGVuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZ2lzX2V0dTkwNV90YXNrX3NzbV9uZXh0 X3N0YXRlX2NiKTsKKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBFTlJPTExfQ0FQVFVSRV9X QUlUX0ZJTkdFUjoKKysgICAgICBlZ2lzX2V0dTkwNV93YWl0X2Zpbmdlcl9vbl9zZW5zb3IgKHNz bSwgZGV2aWNlKTsKKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBFTlJPTExfQ0FQVFVSRV9S RUFEX1JFU1BPTlNFOgorKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNtZF9y ZWFkX2NhcHR1cmUsIGNtZF9yZWFkX2NhcHR1cmVfbGVuLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMLCBlZ2lzX2V0dTkwNV9yZWFkX2NhcHR1cmVfY2IpOworKyAgICAgIGJyZWFr OworKworKyAgICBjYXNlIEVOUk9MTF9EVVBMSUNBVEVfQ0hFQ0s6CisrICAgICAgZWdpc19ldHU5 MDVfZXhlY19jbWQgKGRldmljZSwgY21kX2R1cGxpY2F0ZV9jaGVjaywgY21kX2R1cGxpY2F0ZV9j aGVja19sZW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVnaXNfZXR1OTA1 X2Vucm9sbF9kdXBsaWNhdGVfY2hlY2tfY2IpOworKyAgICAgIGJyZWFrOworKworKyAgICBjYXNl IEVOUk9MTF9DT01NSVRfU1RBUlQ6CisrICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmlj ZSwgY21kX2NvbW1pdF9zdGFydGluZywgY21kX2NvbW1pdF9zdGFydGluZ19sZW4sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVnaXNfZXR1OTA1X2NvbW1pdF9zdGFydF9jYik7 CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgRU5ST0xMX0NPTU1JVDoKKysgICAgICB1c2Vy X2lkID0gZnBpX3ByaW50X2dlbmVyYXRlX3VzZXJfaWQgKGVucm9sbF9wcmludC0+cHJpbnQpOwor KyAgICAgIGZwX2RiZyAoIk5ldyBmaW5nZXJwcmludCBJRDogJXMiLCB1c2VyX2lkKTsKKysKKysg ICAgICBzaWRfZGF0YS5yZXNlcnZlX3BhcmFfMSA9IEVHSVNfRVRVOTA1X1BBUkFfMV9WQUxVRTsK KysgICAgICBzaWRfZGF0YS5yZXNlcnZlX3BhcmFfMiA9IEVHSVNfRVRVOTA1X1BBUkFfMl9WQUxV RTsKKysgICAgICBzaWRfZGF0YS5yZXNlcnZlX3BhcmFfMyA9IEVHSVNfRVRVOTA1X1BBUkFfM19W QUxVRTsKKysgICAgICBtZW1jcHkgKHNpZF9kYXRhLnJlc2VydmVfcGFyYV80LCB1c2VyX2lkLCBN SU4gKEVHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSwgc3RybGVuICh1c2VyX2lkKSkp OworKyAgICAgIGVnaXNfZXR1OTA1X3NldF9wcmludF9kYXRhIChlbnJvbGxfcHJpbnQtPnByaW50 LCAoY29uc3QgZ2NoYXIgKikgJnNpZF9kYXRhLnJlc2VydmVfcGFyYV80LCB1c2VyX2lkKTsKKysg ICAgICBmcGlfYnl0ZV93cml0ZXJfaW5pdCAoJndyaXRlcik7CisrICAgICAgaWYgKCFmcGlfYnl0 ZV93cml0ZXJfcHV0X2RhdGEgKCZ3cml0ZXIsIGNtZF9uZXdfcHJpbnRfcHJlZml4X3R5cGUyLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRfbmV3X3ByaW50X3ByZWZp eF90eXBlMl9sZW4pKQorKyAgICAgICAgeworKyAgICAgICAgICBmcGlfc3NtX21hcmtfZmFpbGVk IChzc20sIGZwaV9kZXZpY2VfZXJyb3JfbmV3IChGUF9ERVZJQ0VfRVJST1JfUFJPVE8pKTsKKysg ICAgICAgICAgYnJlYWs7CisrICAgICAgICB9CisrICAgICAgaWYgKCFmcGlfYnl0ZV93cml0ZXJf cHV0X2RhdGEgKCZ3cml0ZXIsIChndWludDggKikgJnNpZF9kYXRhLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKEVnaXNtb2NTaWREYXRhKSkpCisrICAgICAg ICB7CisrICAgICAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNzbSwgZnBpX2RldmljZV9lcnJv cl9uZXcgKEZQX0RFVklDRV9FUlJPUl9QUk9UTykpOworKyAgICAgICAgICBicmVhazsKKysgICAg ICAgIH0KKysKKysgICAgICBwYXlsb2FkX2xlbmd0aCA9IGZwaV9ieXRlX3dyaXRlcl9nZXRfc2l6 ZSAoJndyaXRlcik7CisrICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgZnBpX2J5 dGVfd3JpdGVyX3Jlc2V0X2FuZF9nZXRfZGF0YSAoJndyaXRlciksCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBheWxvYWRfbGVuZ3RoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnX2ZyZWUsIGVnaXNfZXR1OTA1X3Rhc2tfc3NtX25leHRfc3RhdGVfY2IpOworKyAgICAgIGJy ZWFrOworKworKyAgICBjYXNlIEVOUk9MTF9DT01NSVRfU0VOU09SX1JFU0VUOgorKyAgICAgIGVn aXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNtZF9zZW5zb3JfcmVzZXQsIGNtZF9zZW5zb3Jf cmVzZXRfbGVuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBlZ2lzX2V0dTkw NV90YXNrX3NzbV9uZXh0X3N0YXRlX2NiKTsKKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBF TlJPTExfQ09NUExFVEU6CisrICAgICAgZWdpc19ldHU5MDVfZW5yb2xsX3N0YXR1c19yZXBvcnQg KGRldmljZSwgZW5yb2xsX3ByaW50LCBFTlJPTExfU1RBVFVTX0NPTVBMRVRFLCBOVUxMKTsKKysg ICAgICBmcGlfc3NtX25leHRfc3RhdGUgKHNzbSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKyt9 CisrCisrc3RhdGljIHZvaWQKKytlZ2lzX2V0dTkwNV9lbnJvbGwgKEZwRGV2aWNlICpkZXZpY2Up CisreworKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5 MDUgKGRldmljZSk7CisrICBFbnJvbGxQcmludCAqZW5yb2xsX3ByaW50ID0gZ19uZXcwIChFbnJv bGxQcmludCwgMSk7CisrCisrICBmcF9kYmcgKCJFbnJvbGwiKTsKKysKKysgIGZwaV9kZXZpY2Vf Z2V0X2Vucm9sbF9kYXRhIChkZXZpY2UsICZlbnJvbGxfcHJpbnQtPnByaW50KTsKKysgIGVucm9s bF9wcmludC0+c3RhZ2UgPSAwOworKworKyAgZ19hc3NlcnQgKHNlbGYtPnRhc2tfc3NtID09IE5V TEwpOworKyAgc2VsZi0+dGFza19zc20gPSBmcGlfc3NtX25ldyAoZGV2aWNlLCBlZ2lzX2V0dTkw NV9lbnJvbGxfcnVuX3N0YXRlLCBFTlJPTExfU1RBVEVTKTsKKysgIGZwaV9zc21fc2V0X2RhdGEg KHNlbGYtPnRhc2tfc3NtLCBnX3N0ZWFsX3BvaW50ZXIgKCZlbnJvbGxfcHJpbnQpLCBnX2ZyZWUp OworKyAgZnBpX3NzbV9zdGFydCAoc2VsZi0+dGFza19zc20sIGVnaXNfZXR1OTA1X3Rhc2tfc3Nt X2RvbmUpOworK30KKysKKytzdGF0aWMgdm9pZAorK2VnaXNfZXR1OTA1X2lkZW50aWZ5X2NoZWNr X2NiIChGcERldmljZSAqZGV2aWNlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn dWNoYXIgICAqYnVmZmVyX2luLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6 ZSAgICAgbGVuZ3RoX2luLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3Ig ICAqZXJyb3IpCisreworKyAgZnBfZGJnICgiSWRlbnRpZnkgY2hlY2sgY2FsbGJhY2siKTsKKysg IEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZp Y2UpOworKyAgZ2NoYXIgZGV2aWNlX3ByaW50X2lkW0VHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RB VEFfU0laRV07CisrICBGcFByaW50ICpwcmludCA9IE5VTEw7CisrICBGcFByaW50ICp2ZXJpZnlf cHJpbnQgPSBOVUxMOworKyAgR1B0ckFycmF5ICpwcmludHM7CisrICBnYm9vbGVhbiBmb3VuZCA9 IEZBTFNFOworKyAgZ3VpbnQgaW5kZXg7CisrCisrICBpZiAoZXJyb3IpCisrICAgIHsKKysgICAg ICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3IpOworKyAgICAgIHJl dHVybjsKKysgICAgfQorKworKyAgLyogQ2hlY2sgdGhhdCB0aGUgcmVhZCBwYXlsb2FkIGluZGlj YXRlcyAibWF0Y2giICovCisrICBpZiAoZWdpc19ldHU5MDVfdmFsaWRhdGVfcmVzcG9uc2Vfc3Vm Zml4IChidWZmZXJfaW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZW5ndGhfaW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByc3BfaWRlbnRpZnlfbWF0Y2hfc3VmZml4LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcnNwX2lkZW50aWZ5X21hdGNoX3N1ZmZpeF9sZW4pKQorKyAg ICB7CisrICAgICAgLyoKKysgICAgICAgICBPbiBzdWNjZXNzLCB0aGVyZSBpcyBhIDMyIGJ5dGUg YXJyYXkgb2YgInNvbWV0aGluZyIoPykgaW4gY2hhcnMgMTQtNDUKKysgICAgICAgICBhbmQgdGhl biB0aGUgMzIgYnl0ZSBhcnJheSBJRCBvZiB0aGUgbWF0Y2hlZCBwcmludCBjb21lcyBhcyBjaGFy cyA0Ni03NworKyAgICAgICAqLworKyAgICAgIG1lbWNweSAoZGV2aWNlX3ByaW50X2lkLAorKyAg ICAgICAgICAgICAgYnVmZmVyX2luICsgRUdJU19FVFU5MDVfSURFTlRJRllfUkVTUE9OU0VfUFJJ TlRfSURfT0ZGU0VULAorKyAgICAgICAgICAgICAgRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFU QV9TSVpFKTsKKysKKysgICAgICAvKiBDcmVhdGUgYSBuZXcgcHJpbnQgZnJvbSB0aGlzIGRldmlj ZV9wcmludF9pZCBhbmQgdGhlbiBzZWUgaWYgaXQgbWF0Y2hlcworKyAgICAgICAqIHRoZSBvbmUg aW5kaWNhdGVkCisrICAgICAgICovCisrICAgICAgcHJpbnQgPSBmcF9wcmludF9uZXcgKGRldmlj ZSk7CisrICAgICAgZWdpc19ldHU5MDVfc2V0X3ByaW50X2RhdGEgKHByaW50LCBkZXZpY2VfcHJp bnRfaWQsIE5VTEwpOworKworKyAgICAgIGlmICghcHJpbnQpCisrICAgICAgICB7CisrICAgICAg ICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9yX25ld19tc2cgKEZQX0RFVklDRV9FUlJP Ul9EQVRBX0lOVkFMSUQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBidWlsZCBhIHByaW50IGZyb20gIgorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXZp Y2UgcmVzcG9uc2UuIikpOworKyAgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisrCisrICAg ICAgZnBfaW5mbyAoIklkZW50aWZ5IHN1Y2Nlc3NmdWwgZm9yOiAlcyIsIGZwX3ByaW50X2dldF9k ZXNjcmlwdGlvbiAocHJpbnQpKTsKKysKKysgICAgICBpZiAoZnBpX2RldmljZV9nZXRfY3VycmVu dF9hY3Rpb24gKGRldmljZSkgPT0gRlBJX0RFVklDRV9BQ1RJT05fSURFTlRJRlkpCisrICAgICAg ICB7CisrICAgICAgICAgIGZwaV9kZXZpY2VfZ2V0X2lkZW50aWZ5X2RhdGEgKGRldmljZSwgJnBy aW50cyk7CisrICAgICAgICAgIGZvdW5kID0gZ19wdHJfYXJyYXlfZmluZF93aXRoX2VxdWFsX2Z1 bmMgKHByaW50cywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHJpbnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChHRXF1YWxGdW5jKSBmcF9wcmludF9lcXVhbCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmluZGV4KTsKKysKKysgICAg ICAgICAgaWYgKGZvdW5kKQorKyAgICAgICAgICAgIGZwaV9kZXZpY2VfaWRlbnRpZnlfcmVwb3J0 IChkZXZpY2UsIGdfcHRyX2FycmF5X2luZGV4IChwcmludHMsIGluZGV4KSwgcHJpbnQsIE5VTEwp OworKyAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgZnBpX2RldmljZV9pZGVudGlmeV9yZXBv cnQgKGRldmljZSwgTlVMTCwgcHJpbnQsIE5VTEwpOworKyAgICAgICAgfQorKyAgICAgIGVsc2UK KysgICAgICAgIHsKKysgICAgICAgICAgZnBpX2RldmljZV9nZXRfdmVyaWZ5X2RhdGEgKGRldmlj ZSwgJnZlcmlmeV9wcmludCk7CisrICAgICAgICAgIGZwX2luZm8gKCJWZXJpZnlpbmcgYWdhaW5z dDogJXMiLCBmcF9wcmludF9nZXRfZGVzY3JpcHRpb24gKHZlcmlmeV9wcmludCkpOworKworKyAg ICAgICAgICBpZiAoZnBfcHJpbnRfZXF1YWwgKHZlcmlmeV9wcmludCwgcHJpbnQpKQorKyAgICAg ICAgICAgIGZwaV9kZXZpY2VfdmVyaWZ5X3JlcG9ydCAoZGV2aWNlLCBGUElfTUFUQ0hfU1VDQ0VT UywgcHJpbnQsIE5VTEwpOworKyAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgZnBpX2Rldmlj ZV92ZXJpZnlfcmVwb3J0IChkZXZpY2UsIEZQSV9NQVRDSF9GQUlMLCBwcmludCwgTlVMTCk7Cisr ICAgICAgICB9CisrICAgIH0KKysgIC8qIElmIGRldmljZSB3YXMgc3VjY2Vzc2Z1bGx5IHJlYWQg YnV0IGl0IHdhcyBhICJub3QgbWF0Y2hlZCIgKi8KKysgIGVsc2UgaWYgKGVnaXNfZXR1OTA1X3Zh bGlkYXRlX3Jlc3BvbnNlX3N1ZmZpeCAoYnVmZmVyX2luLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhfaW4sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9pZGVudGlmeV9ub3RtYXRjaF9z dWZmaXgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJzcF9pZGVudGlmeV9ub3RtYXRjaF9zdWZmaXhfbGVuKSkKKysgICAgeworKyAgICAgIGZwX2lu Zm8gKCJQcmludCB3YXMgbm90IGlkZW50aWZpZWQgYnkgdGhlIGRldmljZSIpOworKworKyAgICAg IGlmIChmcGlfZGV2aWNlX2dldF9jdXJyZW50X2FjdGlvbiAoZGV2aWNlKSA9PSBGUElfREVWSUNF X0FDVElPTl9WRVJJRlkpCisrICAgICAgICBmcGlfZGV2aWNlX3ZlcmlmeV9yZXBvcnQgKGRldmlj ZSwgRlBJX01BVENIX0ZBSUwsIE5VTEwsIE5VTEwpOworKyAgICAgIGVsc2UKKysgICAgICAgIGZw aV9kZXZpY2VfaWRlbnRpZnlfcmVwb3J0IChkZXZpY2UsIE5VTEwsIE5VTEwsIE5VTEwpOworKyAg ICB9CisrICBlbHNlCisrICAgIHsKKysgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50 YXNrX3NzbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9yX25l d19tc2cgKEZQX0RFVklDRV9FUlJPUl9QUk9UTywKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbnJlY29nbml6ZWQgcmVzcG9uc2UgZnJvbSBk ZXZpY2UuIikpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgZnBpX3NzbV9uZXh0X3N0 YXRlIChzZWxmLT50YXNrX3NzbSk7CisrfQorKworK3N0YXRpYyB2b2lkCisrZWdpc19ldHU5MDVf aWRlbnRpZnlfcnVuX3N0YXRlIChGcGlTc20gICAqc3NtLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRnBEZXZpY2UgKmRldmljZSkKKyt7CisrICBGcGlEZXZpY2VFZ2lzRXR1OTA1 ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKKysgIGdfYXV0b2ZyZWUg Z3VjaGFyICpwYXlsb2FkID0gTlVMTDsKKysgIGdzaXplIHBheWxvYWRfbGVuZ3RoID0gMDsKKysK KysgIHN3aXRjaCAoZnBpX3NzbV9nZXRfY3VyX3N0YXRlIChzc20pKQorKyAgICB7CisrICAgIGNh c2UgSURFTlRJRllfR0VUX0VOUk9MTEVEX0lEUzoKKysgICAgICAvKiBnZXQgZW5yb2xsZWRfaWRz IGZyb20gZGV2aWNlIGZvciB1c2UgaW4gY2hlY2sgc3RhZ2VzIGJlbG93ICovCisrICAgICAgZWdp c19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgY21kX2xpc3QsIGNtZF9saXN0X2xlbiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWdpc19ldHU5MDVfbGlzdF9maWxsX2Vucm9s bGVkX2lkc19jYik7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgSURFTlRJRllfQ0hFQ0tf RU5ST0xMRURfTlVNOgorKyAgICAgIGlmIChzZWxmLT5lbnJvbGxlZF9pZHMtPmxlbiA9PSAwKQor KyAgICAgICAgeworKyAgICAgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChnX3N0ZWFsX3BvaW50 ZXIgKCZzZWxmLT50YXNrX3NzbSksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZw aV9kZXZpY2VfZXJyb3JfbmV3IChGUF9ERVZJQ0VfRVJST1JfREFUQV9OT1RfRk9VTkQpKTsKKysg ICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorKyAgICAgIGZwaV9zc21fbmV4dF9zdGF0ZSAo c3NtKTsKKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBJREVOVElGWV9TRU5TT1JfUkVTRVQ6 CisrICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgY21kX3NlbnNvcl9yZXNldCwg Y21kX3NlbnNvcl9yZXNldF9sZW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws IGVnaXNfZXR1OTA1X3Rhc2tfc3NtX25leHRfc3RhdGVfY2IpOworKyAgICAgIGJyZWFrOworKwor KyAgICBjYXNlIElERU5USUZZX1NFTlNPUl9JREVOVElGWToKKysgICAgICBlZ2lzX2V0dTkwNV9l eGVjX2NtZCAoZGV2aWNlLCBjbWRfc2Vuc29yX2lkZW50aWZ5LCBjbWRfc2Vuc29yX2lkZW50aWZ5 X2xlbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWdpc19ldHU5MDVfdGFz a19zc21fbmV4dF9zdGF0ZV9jYik7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgSURFTlRJ RllfV0FJVF9GSU5HRVI6CisrICAgICAgZWdpc19ldHU5MDVfd2FpdF9maW5nZXJfb25fc2Vuc29y IChzc20sIGRldmljZSk7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgSURFTlRJRllfU0VO U09SX0NIRUNLOgorKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNtZF9zZW5z b3JfY2hlY2ssIGNtZF9zZW5zb3JfY2hlY2tfbGVuLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMLCBlZ2lzX2V0dTkwNV90YXNrX3NzbV9uZXh0X3N0YXRlX2NiKTsKKysgICAgICBi cmVhazsKKysKKysgICAgY2FzZSBJREVOVElGWV9DSEVDSzoKKysgICAgICBwYXlsb2FkID0gZWdp c19ldHU5MDVfZ2V0X2NoZWNrX2NtZCAoZGV2aWNlLCAmcGF5bG9hZF9sZW5ndGgpOworKyAgICAg IGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGdfc3RlYWxfcG9pbnRlciAoJnBheWxvYWQp LCBwYXlsb2FkX2xlbmd0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19mcmVlLCBl Z2lzX2V0dTkwNV9pZGVudGlmeV9jaGVja19jYik7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNh c2UgSURFTlRJRllfQ09NUExFVEVfU0VOU09SX1JFU0VUOgorKyAgICAgIGVnaXNfZXR1OTA1X2V4 ZWNfY21kIChkZXZpY2UsIGNtZF9zZW5zb3JfcmVzZXQsIGNtZF9zZW5zb3JfcmVzZXRfbGVuLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBlZ2lzX2V0dTkwNV90YXNrX3NzbV9u ZXh0X3N0YXRlX2NiKTsKKysgICAgICBicmVhazsKKysKKysgICAgLyoKKysgICAgICogSW4gV2lu ZG93cywgdGhlIGRyaXZlciBzZWVtcyBhdCB0aGlzIHBvaW50IHRvIHRoZW4gaW1tZWRpYXRlbHkg dGFrZQorKyAgICAgKiBhbm90aGVyIHJlYWQgZnJvbSB0aGUgc2Vuc29yOyB0aGlzIGlzIHN1c3Bl Y3RlZCB0byBiZSBhbiBvbi1jaGlwCisrICAgICAqICJ2ZXJpZnkiLiBIb3dldmVyLCBiZWNhdXNl IHRoZSB1c2VyJ3MgZmluZ2VyIGlzIHN0aWxsIG9uIHRoZSBzZW5zb3IgZnJvbQorKyAgICAgKiB0 aGUgaWRlbnRpZnksIHRoZW4gaXQgc2VlbXMgdG8gYWx3YXlzIHJldHVybiBwb3NpdGl2ZS4gV2Ug d2lsbCBjb25zaWRlcgorKyAgICAgKiB0aGlzIGV4dHJhIHN0ZXAgdW5uZWNlc3NhcnkgYW5kIGp1 c3Qgc2tpcCBpdCBpbiB0aGlzIGRyaXZlci4gVGhpcyBkcml2ZXIKKysgICAgICogd2lsbCBpbnN0 ZWFkIGhhbmRsZSBtYXRjaGluZyBvZiB0aGUgRnBQcmludCBmcm9tIHRoZSBnYWxsZXJ5IGluIHRo ZQorKyAgICAgKiAidmVyaWZ5IiBjYXNlIG9mIHRoZSBjYWxsYmFjayBlZ2lzX2V0dTkwNV9pZGVu dGlmeV9jaGVja19jYi4KKysgICAgICovCisrICAgIGNhc2UgSURFTlRJRllfQ09NUExFVEU6Cisr ICAgICAgaWYgKGZwaV9kZXZpY2VfZ2V0X2N1cnJlbnRfYWN0aW9uIChkZXZpY2UpID09IEZQSV9E RVZJQ0VfQUNUSU9OX0lERU5USUZZKQorKyAgICAgICAgZnBpX2RldmljZV9pZGVudGlmeV9jb21w bGV0ZSAoZGV2aWNlLCBOVUxMKTsKKysgICAgICBlbHNlCisrICAgICAgICBmcGlfZGV2aWNlX3Zl cmlmeV9jb21wbGV0ZSAoZGV2aWNlLCBOVUxMKTsKKysKKysgICAgICBmcGlfc3NtX21hcmtfY29t cGxldGVkIChzc20pOworKyAgICAgIGJyZWFrOworKyAgICB9CisrfQorKworK3N0YXRpYyB2b2lk CisrZWdpc19ldHU5MDVfaWRlbnRpZnlfdmVyaWZ5IChGcERldmljZSAqZGV2aWNlKQorK3sKKysg IGZwX2RiZyAoIklkZW50aWZ5IG9yIFZlcmlmeSIpOworKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAq c2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7CisrCisrICBnX2Fzc2VydCAo c2VsZi0+dGFza19zc20gPT0gTlVMTCk7CisrICBzZWxmLT50YXNrX3NzbSA9IGZwaV9zc21fbmV3 IChkZXZpY2UsIGVnaXNfZXR1OTA1X2lkZW50aWZ5X3J1bl9zdGF0ZSwgSURFTlRJRllfU1RBVEVT KTsKKysgIGZwaV9zc21fc3RhcnQgKHNlbGYtPnRhc2tfc3NtLCBlZ2lzX2V0dTkwNV90YXNrX3Nz bV9kb25lKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytlZ2lzX2V0dTkwNV9md192ZXJzaW9uX2Ni IChGcERldmljZSAqZGV2aWNlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1Y2hhciAg ICpidWZmZXJfaW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgIGxlbmd0 aF9pbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAqZXJyb3IpCisrewor KyAgZnBfZGJnICgiRmlybXdhcmUgdmVyc2lvbiBjYWxsYmFjayIpOworKyAgRnBpRGV2aWNlRWdp c0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7CisrICBnX2F1 dG9mcmVlIGdjaGFyICpmd192ZXJzaW9uID0gTlVMTDsKKysgIGdzaXplIHByZWZpeF9sZW5ndGg7 CisrICBndWNoYXIgKmZ3X3ZlcnNpb25fc3RhcnQ7CisrICBnc2l6ZSBmd192ZXJzaW9uX2xlbmd0 aDsKKysKKysgIGlmIChlcnJvcikKKysgICAgeworKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQg KHNlbGYtPnRhc2tfc3NtLCBlcnJvcik7CisrICAgICAgcmV0dXJuOworKyAgICB9CisrCisrICAv KiBDaGVjayB0aGF0IHRoZSByZWFkIHBheWxvYWQgaW5kaWNhdGVzICJzdWNjZXNzIiAqLworKyAg aWYgKCFlZ2lzX2V0dTkwNV92YWxpZGF0ZV9yZXNwb25zZV9zdWZmaXggKGJ1ZmZlcl9pbiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhfaW4sCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwX2Z3X3ZlcnNp b25fc3VmZml4LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJzcF9md192ZXJzaW9uX3N1ZmZpeF9sZW4pKQorKyAgICB7CisrICAgICAgZnBpX3NzbV9tYXJr X2ZhaWxlZCAoc2VsZi0+dGFza19zc20sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBp X2RldmljZV9lcnJvcl9uZXdfbXNnIChGUF9ERVZJQ0VfRVJST1JfUFJPVE8sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGV2aWNlIGZpcm13 YXJlIHJlc3BvbnNlICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJ3YXMgbm90IHZhbGlkLiIpKTsKKysgICAgICByZXR1cm47CisrICAgIH0K KysKKysgIC8qCisrICAgKiBGVyBWZXJzaW9uIGlzIDEyIGJ5dGVzOiBhIGNhcnJpYWdlIHJldHVy biAoMHgwZCkgcGx1cyB0aGUgdmVyc2lvbiBzdHJpbmcKKysgICAqIGl0c2VsZi4gQWx3YXlzIHNr aXAgW3RoZSByZWFkIHByZWZpeF0gKyBbMiAqIGNoZWNrIGJ5dGVzXSArIFszICogMHgwMF0gdGhh dAorKyAgICogY29tZSB3aXRoIGV2ZXJ5IHBheWxvYWQgVGhlbiB3ZSB3aWxsIGFsc28gc2tpcCB0 aGUgY2FycmlhZ2UgcmV0dXJuIGFuZCB0YWtlCisrICAgKiBhbGwgYnV0IHRoZSBsYXN0IDIgYnl0 ZXMgYXMgdGhlIEZXIFZlcnNpb24KKysgICAqLworKyAgcHJlZml4X2xlbmd0aCA9IGVnaXNfZXR1 OTA1X3JlYWRfcHJlZml4X2xlbiArIDIgKyAzICsgMTsKKysgIGZ3X3ZlcnNpb25fc3RhcnQgPSBi dWZmZXJfaW4gKyBwcmVmaXhfbGVuZ3RoOworKyAgZndfdmVyc2lvbl9sZW5ndGggPSBsZW5ndGhf aW4gLSBwcmVmaXhfbGVuZ3RoIC0gcnNwX2Z3X3ZlcnNpb25fc3VmZml4X2xlbjsKKysgIGZ3X3Zl cnNpb24gPSBnX3N0cm5kdXAgKChnY2hhciAqKSBmd192ZXJzaW9uX3N0YXJ0LCBmd192ZXJzaW9u X2xlbmd0aCk7CisrCisrICBmcF9pbmZvICgiRGV2aWNlIGZpcm13YXJlIHZlcnNpb24gaXMgJXMi LCBmd192ZXJzaW9uKTsKKysKKysgIGZwaV9zc21fbmV4dF9zdGF0ZSAoc2VsZi0+dGFza19zc20p OworK30KKysKKytzdGF0aWMgdm9pZAorK2VnaXNfZXR1OTA1X2NtZF9pbml0X2NiIChGcERldmlj ZSAqZGV2aWNlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBndWNoYXIgICAqYnVmZmVyX2lu LAorKyAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSAgICAgbGVuZ3RoX2luLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAqZXJyb3IpCisreworKyAgZnBfZGJnICgiY21k IGluaXQgY2FsbGJhY2siKTsKKysgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVW SUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOworKworKyAgaWYgKGVycm9yKQorKyAgICB7CisrICAg ICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sIGVycm9yKTsKKysgICAgICBy ZXR1cm47CisrICAgIH0KKysKKysgIC8qIENoZWNrIHRoYXQgdGhlIHJlYWQgcGF5bG9hZCBpbmRp Y2F0ZXMgInN1Y2Nlc3MiICovCisrICBpZiAoIWVnaXNfZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNl X3N1ZmZpeCAoYnVmZmVyX2luLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxlbmd0aF9pbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByc3BfZndfdmVyc2lvbl9zdWZmaXgsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcnNwX2Z3X3ZlcnNpb25fc3VmZml4X2xlbikpCisrICAg IHsKKysgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9yX25ld19tc2cgKEZQX0RFVklDRV9F UlJPUl9QUk9UTywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJjbWQgaW5pdCByZXNwb25zZSAiCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2FzIG5vdCB2YWxpZC4iKSk7CisrICAgICAg cmV0dXJuOworKyAgICB9CisrICBmcGlfc3NtX25leHRfc3RhdGUgKHNlbGYtPnRhc2tfc3NtKTsK Kyt9CisrCisrc3RhdGljIHZvaWQKKytlZ2lzX2V0dTkwNV9kZXZfaW5pdF9kb25lIChGcGlTc20g ICAqc3NtLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZwRGV2aWNlICpkZXZpY2UsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgKmVycm9yKQorK3sKKysgIGlmIChl cnJvcikKKysgICAgeworKyAgICAgIGdfdXNiX2RldmljZV9yZWxlYXNlX2ludGVyZmFjZSAoCisr ICAgICAgICBmcGlfZGV2aWNlX2dldF91c2JfZGV2aWNlIChkZXZpY2UpLCAwLCAwLCBOVUxMKTsK KysgICAgICBlZ2lzX2V0dTkwNV90YXNrX3NzbV9kb25lIChzc20sIGRldmljZSwgZXJyb3IpOwor KyAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgZWdpc19ldHU5MDVfdGFza19zc21fZG9uZSAo c3NtLCBkZXZpY2UsIE5VTEwpOworKyAgZnBpX2RldmljZV9vcGVuX2NvbXBsZXRlIChkZXZpY2Us IE5VTEwpOworK30KKysKKytzdGF0aWMgdm9pZAorK2VnaXNfZXR1OTA1X2Rldl9pbml0X2hhbmRs ZXIgKEZwaVNzbSAgICpzc20sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnBEZXZp Y2UgKmRldmljZSkKKyt7CisrICBnX2F1dG9wdHIoRnBpVXNiVHJhbnNmZXIpIHRyYW5zZmVyID0g TlVMTDsKKysKKysgIHN3aXRjaCAoZnBpX3NzbV9nZXRfY3VyX3N0YXRlIChzc20pKQorKyAgICB7 CisrICAgIGNhc2UgREVWX0dFVF9GV19WRVJTSU9OOgorKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNf Y21kIChkZXZpY2UsIGNtZF9md192ZXJzaW9uLCBjbWRfZndfdmVyc2lvbl9sZW4sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVnaXNfZXR1OTA1X2Z3X3ZlcnNpb25fY2IpOwor KyAgICAgIHJldHVybjsKKysKKysgICAgY2FzZSBERVZfSU5JVF9DT05UUk9MOgorKyAgICAgIGVn aXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNtZF9pbml0LCBjbWRfaW5pdF9sZW4sCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVnaXNfZXR1OTA1X2NtZF9pbml0X2NiKTsK KysgICAgICByZXR1cm47CisrCisrICAgIGRlZmF1bHQ6CisrICAgICAgZ19hc3NlcnRfbm90X3Jl YWNoZWQgKCk7CisrICAgIH0KKysKKysgIHRyYW5zZmVyID0gZnBpX3VzYl90cmFuc2Zlcl9uZXcg KGRldmljZSk7CisrICB0cmFuc2Zlci0+c3NtID0gc3NtOworKyAgdHJhbnNmZXItPnNob3J0X2lz X2Vycm9yID0gVFJVRTsKKysgIGZwaV91c2JfdHJhbnNmZXJfc3VibWl0IChnX3N0ZWFsX3BvaW50 ZXIgKCZ0cmFuc2ZlciksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVf VVNCX0NPTlRST0xfVElNRU9VVCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2 aWNlX2dldF9jYW5jZWxsYWJsZSAoZGV2aWNlKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICBmcGlfc3NtX3VzYl90cmFuc2Zlcl9jYiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytlZ2lzX2V0dTkwNV9wcm9iZSAoRnBEZXZpY2Ug KmRldmljZSkKKyt7CisrICBHVXNiRGV2aWNlICp1c2JfZGV2OworKyAgR0Vycm9yICplcnJvciA9 IE5VTEw7CisrICBnX2F1dG9mcmVlIGdjaGFyICpzZXJpYWwgPSBOVUxMOworKyAgRnBpRGV2aWNl RWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7CisrCisr ICBmcF9kYmcgKCIlcyBlbnRlciAtLT4gIiwgR19TVFJGVU5DKTsKKysKKysgIC8qIENsYWltIHVz YiBpbnRlcmZhY2UgKi8KKysgIHVzYl9kZXYgPSBmcGlfZGV2aWNlX2dldF91c2JfZGV2aWNlIChk ZXZpY2UpOworKyAgaWYgKCFnX3VzYl9kZXZpY2Vfb3BlbiAodXNiX2RldiwgJmVycm9yKSkKKysg ICAgeworKyAgICAgIGZwX2RiZyAoIiVzIGdfdXNiX2RldmljZV9vcGVuIGZhaWxlZCAlcyIsIEdf U1RSRlVOQywgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxl dGUgKGRldmljZSwgTlVMTCwgTlVMTCwgZXJyb3IpOworKyAgICAgIHJldHVybjsKKysgICAgfQor KworKyAgaWYgKCFnX3VzYl9kZXZpY2VfcmVzZXQgKHVzYl9kZXYsICZlcnJvcikpCisrICAgIHsK KysgICAgICBmcF9kYmcgKCIlcyBnX3VzYl9kZXZpY2VfcmVzZXQgZmFpbGVkICVzIiwgR19TVFJG VU5DLCBlcnJvci0+bWVzc2FnZSk7CisrICAgICAgZ191c2JfZGV2aWNlX2Nsb3NlICh1c2JfZGV2 LCBOVUxMKTsKKysgICAgICBmcGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZpY2UsIE5VTEws IE5VTEwsIGVycm9yKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysKKysgIGlmICghZ191c2Jf ZGV2aWNlX2NsYWltX2ludGVyZmFjZSAodXNiX2RldiwgMCwgMCwgJmVycm9yKSkKKysgICAgewor KyAgICAgIGZwX2RiZyAoIiVzIGdfdXNiX2RldmljZV9jbGFpbV9pbnRlcmZhY2UgZmFpbGVkICVz IiwgR19TVFJGVU5DLCBlcnJvci0+bWVzc2FnZSk7CisrICAgICAgZ191c2JfZGV2aWNlX2Nsb3Nl ICh1c2JfZGV2LCBOVUxMKTsKKysgICAgICBmcGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZp Y2UsIE5VTEwsIE5VTEwsIGVycm9yKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysKKysgIGlm IChnX3N0cmNtcDAgKGdfZ2V0ZW52ICgiRlBfREVWSUNFX0VNVUxBVElPTiIpLCAiMSIpID09IDAp CisrICAgIHNlcmlhbCA9IGdfc3RyZHVwICgiZW11bGF0ZWQtZGV2aWNlIik7CisrICBlbHNlCisr ICAgIHNlcmlhbCA9IGdfdXNiX2RldmljZV9nZXRfc3RyaW5nX2Rlc2NyaXB0b3IgKHVzYl9kZXYs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdXNi X2RldmljZV9nZXRfc2VyaWFsX251bWJlcl9pbmRleCAodXNiX2RldiksCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcik7CisrCisrICBpZiAo ZXJyb3IpCisrICAgIHsKKysgICAgICBmcF9kYmcgKCIlcyBnX3VzYl9kZXZpY2VfZ2V0X3N0cmlu Z19kZXNjcmlwdG9yIGZhaWxlZCAlcyIsIEdfU1RSRlVOQywgZXJyb3ItPm1lc3NhZ2UpOworKyAg ICAgIGdfdXNiX2RldmljZV9yZWxlYXNlX2ludGVyZmFjZSAoZnBpX2RldmljZV9nZXRfdXNiX2Rl dmljZSAoRlBfREVWSUNFIChkZXZpY2UpKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDAsIDAsIE5VTEwpOworKyAgICAgIGdfdXNiX2RldmljZV9jbG9zZSAodXNiX2Rl diwgTlVMTCk7CisrICAgICAgZnBpX2RldmljZV9wcm9iZV9jb21wbGV0ZSAoZGV2aWNlLCBOVUxM LCBOVUxMLCBlcnJvcik7CisrICAgICAgcmV0dXJuOworKyAgICB9CisrCisrICBpZiAoZnBpX2Rl dmljZV9nZXRfZHJpdmVyX2RhdGEgKGRldmljZSkgJiBFR0lTX0VUVTkwNV9EUklWRVJfTUFYX0VO Uk9MTF9TVEFHRVNfMjApCisrICAgIHNlbGYtPm1heF9lbnJvbGxfc3RhZ2VzID0gMjA7CisrICBl bHNlCisrICAgIHNlbGYtPm1heF9lbnJvbGxfc3RhZ2VzID0gRUdJU19FVFU5MDVfTUFYX0VOUk9M TF9TVEFHRVNfREVGQVVMVDsKKysKKysgIGZwaV9kZXZpY2Vfc2V0X25yX2Vucm9sbF9zdGFnZXMg KGRldmljZSwgc2VsZi0+bWF4X2Vucm9sbF9zdGFnZXMpOworKworKyAgZ191c2JfZGV2aWNlX3Jl bGVhc2VfaW50ZXJmYWNlIChmcGlfZGV2aWNlX2dldF91c2JfZGV2aWNlIChGUF9ERVZJQ0UgKGRl dmljZSkpLCAwLCAwLCBOVUxMKTsKKysgIGdfdXNiX2RldmljZV9jbG9zZSAodXNiX2RldiwgTlVM TCk7CisrCisrICBmcGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZpY2UsIHNlcmlhbCwgTlVM TCwgZXJyb3IpOworK30KKysKKytzdGF0aWMgdm9pZAorK2VnaXNfZXR1OTA1X29wZW4gKEZwRGV2 aWNlICpkZXZpY2UpCisreworKyAgZnBfZGJnICgiT3BlbmluZyBkZXZpY2UiKTsKKysgIEZwaURl dmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwor KyAgZ19hdXRvcHRyKEdFcnJvcikgZXJyb3IgPSBOVUxMOworKworKyAgaWYgKCFnX3VzYl9kZXZp Y2VfcmVzZXQgKGZwaV9kZXZpY2VfZ2V0X3VzYl9kZXZpY2UgKGRldmljZSksICZlcnJvcikpCisr ICAgIHsKKysgICAgICBmcGlfZGV2aWNlX29wZW5fY29tcGxldGUgKGRldmljZSwgZ19zdGVhbF9w b2ludGVyICgmZXJyb3IpKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysKKysgIGlmICghZ191 c2JfZGV2aWNlX2NsYWltX2ludGVyZmFjZSAoZnBpX2RldmljZV9nZXRfdXNiX2RldmljZSAoZGV2 aWNlKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgJmVycm9y KSkKKysgICAgeworKyAgICAgIGZwaV9kZXZpY2Vfb3Blbl9jb21wbGV0ZSAoZGV2aWNlLCBnX3N0 ZWFsX3BvaW50ZXIgKCZlcnJvcikpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgZ19h c3NlcnQgKHNlbGYtPnRhc2tfc3NtID09IE5VTEwpOworKyAgc2VsZi0+dGFza19zc20gPSBmcGlf c3NtX25ldyAoZGV2aWNlLCBlZ2lzX2V0dTkwNV9kZXZfaW5pdF9oYW5kbGVyLCBERVZfSU5JVF9T VEFURVMpOworKyAgZnBpX3NzbV9zdGFydCAoc2VsZi0+dGFza19zc20sIGVnaXNfZXR1OTA1X2Rl dl9pbml0X2RvbmUpOworK30KKysKKytzdGF0aWMgdm9pZAorK2VnaXNfZXR1OTA1X2NhbmNlbCAo RnBEZXZpY2UgKmRldmljZSkKKyt7CisrICBmcF9kYmcgKCJDYW5jZWwiKTsKKysgIEZwaURldmlj ZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOworKwor KyAgZ19jYW5jZWxsYWJsZV9jYW5jZWwgKHNlbGYtPmludGVycnVwdF9jYW5jZWxsYWJsZSk7Cisr ICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmludGVycnVwdF9jYW5jZWxsYWJsZSk7CisrICBzZWxm LT5pbnRlcnJ1cHRfY2FuY2VsbGFibGUgPSBnX2NhbmNlbGxhYmxlX25ldyAoKTsKKyt9CisrCisr c3RhdGljIHZvaWQKKytlZ2lzX2V0dTkwNV9zdXNwZW5kIChGcERldmljZSAqZGV2aWNlKQorK3sK KysgIGZwX2RiZyAoIlN1c3BlbmQiKTsKKysKKysgIGVnaXNfZXR1OTA1X2NhbmNlbCAoZGV2aWNl KTsKKysgIGdfY2FuY2VsbGFibGVfY2FuY2VsIChmcGlfZGV2aWNlX2dldF9jYW5jZWxsYWJsZSAo ZGV2aWNlKSk7CisrICBmcGlfZGV2aWNlX3N1c3BlbmRfY29tcGxldGUgKGRldmljZSwgTlVMTCk7 CisrfQorKworK3N0YXRpYyB2b2lkCisrZWdpc19ldHU5MDVfY2xvc2UgKEZwRGV2aWNlICpkZXZp Y2UpCisreworKyAgZ19hdXRvcHRyKEdFcnJvcikgZXJyb3IgPSBOVUxMOworKyAgZnBfZGJnICgi Q2xvc2luZyBkZXZpY2UiKTsKKysgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVW SUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOworKyAgR0Vycm9yICplcnJvciA9IE5VTEw7CisrCisr ICBlZ2lzX2V0dTkwNV9jYW5jZWwgKGRldmljZSk7CisrICBnX2NsZWFyX29iamVjdCAoJnNlbGYt PmludGVycnVwdF9jYW5jZWxsYWJsZSk7CisrCisrICBnX3VzYl9kZXZpY2VfcmVsZWFzZV9pbnRl cmZhY2UgKGZwaV9kZXZpY2VfZ2V0X3VzYl9kZXZpY2UgKGRldmljZSksCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICZlcnJvcik7CisrICBmcGlfZGV2aWNlX2Nsb3Nl X2NvbXBsZXRlIChkZXZpY2UsIGdfc3RlYWxfcG9pbnRlciAoJmVycm9yKSk7CisrfQorKworK3N0 YXRpYyB2b2lkCisrZnBpX2RldmljZV9lZ2lzX2V0dTkwNV9pbml0IChGcGlEZXZpY2VFZ2lzRXR1 OTA1ICpzZWxmKQorK3sKKysgIEdfREVCVUdfSEVSRSAoKTsKKyt9CisrCisrc3RhdGljIHZvaWQK KytmcGlfZGV2aWNlX2VnaXNfZXR1OTA1X2NsYXNzX2luaXQgKEZwaURldmljZUVnaXNFdHU5MDVD bGFzcyAqa2xhc3MpCisreworKyAgRnBEZXZpY2VDbGFzcyAqZGV2X2NsYXNzID0gRlBfREVWSUNF X0NMQVNTIChrbGFzcyk7CisrCisrICBkZXZfY2xhc3MtPmlkID0gRlBfQ09NUE9ORU5UOworKyAg ZGV2X2NsYXNzLT5mdWxsX25hbWUgPSBFR0lTX0VUVTkwNV9EUklWRVJfRlVMTE5BTUU7CisrCisr ICBkZXZfY2xhc3MtPnR5cGUgPSBGUF9ERVZJQ0VfVFlQRV9VU0I7CisrICBkZXZfY2xhc3MtPnNj YW5fdHlwZSA9IEZQX1NDQU5fVFlQRV9QUkVTUzsKKysgIGRldl9jbGFzcy0+aWRfdGFibGUgPSBl Z2lzX2V0dTkwNV9pZF90YWJsZTsKKysgIGRldl9jbGFzcy0+bnJfZW5yb2xsX3N0YWdlcyA9IEVH SVNfRVRVOTA1X01BWF9FTlJPTExfU1RBR0VTX0RFRkFVTFQ7CisrICBkZXZfY2xhc3MtPnRlbXBf aG90X3NlY29uZHMgPSAtMTsKKysKKysgIGRldl9jbGFzcy0+cHJvYmUgPSBlZ2lzX2V0dTkwNV9w cm9iZTsKKysgIGRldl9jbGFzcy0+b3BlbiA9IGVnaXNfZXR1OTA1X29wZW47CisrICBkZXZfY2xh c3MtPmNhbmNlbCA9IGVnaXNfZXR1OTA1X2NhbmNlbDsKKysgIGRldl9jbGFzcy0+c3VzcGVuZCA9 IGVnaXNfZXR1OTA1X3N1c3BlbmQ7CisrICBkZXZfY2xhc3MtPmNsb3NlID0gZWdpc19ldHU5MDVf Y2xvc2U7CisrICBkZXZfY2xhc3MtPmlkZW50aWZ5ID0gZWdpc19ldHU5MDVfaWRlbnRpZnlfdmVy aWZ5OworKyAgZGV2X2NsYXNzLT52ZXJpZnkgPSBlZ2lzX2V0dTkwNV9pZGVudGlmeV92ZXJpZnk7 CisrICBkZXZfY2xhc3MtPmVucm9sbCA9IGVnaXNfZXR1OTA1X2Vucm9sbDsKKysgIGRldl9jbGFz cy0+ZGVsZXRlID0gZWdpc19ldHU5MDVfZGVsZXRlOworKyAgZGV2X2NsYXNzLT5jbGVhcl9zdG9y YWdlID0gZWdpc19ldHU5MDVfY2xlYXJfc3RvcmFnZTsKKysgIGRldl9jbGFzcy0+bGlzdCA9IGVn aXNfZXR1OTA1X2xpc3Q7CisrCisrICBmcGlfZGV2aWNlX2NsYXNzX2F1dG9faW5pdGlhbGl6ZV9m ZWF0dXJlcyAoZGV2X2NsYXNzKTsKKysgIGRldl9jbGFzcy0+ZmVhdHVyZXMgfD0gRlBfREVWSUNF X0ZFQVRVUkVfRFVQTElDQVRFU19DSEVDSzsKKyt9CitkaWZmIC0tZ2l0IGEvbGliZnByaW50L2Ry aXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5oIGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9l Z2lzX2V0dTkwNS5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLmU5MzFk ZWNhCistLS0gL2Rldi9udWxsCisrKysgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNf ZXR1OTA1LmgKK0BAIC0wLDAgKzEsMjE0IEBACisrLyoKKysgKiBEcml2ZXIgZm9yIEVnaXMgVGVj aG5vbG9neSAoTGlnaFR1bmluZykgTWF0Y2gtT24tQ2hpcCBzZW5zb3JzCisrICoKKysgKiBUaGlz IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisrICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgorKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyAqCisrICogVGhpcyBsaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICogYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQorKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICogTGljZW5zZSBhbG9uZyB3aXRoIHRo aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyAqIEZvdW5k YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg MDIxMTAtMTMwMSBVU0EKKysgKi8KKysKKysjcHJhZ21hIG9uY2UKKysKKysjaW5jbHVkZSAiZnBp LWRldmljZS5oIgorKyNpbmNsdWRlICJmcGktc3NtLmgiCisrCisrR19ERUNMQVJFX0ZJTkFMX1RZ UEUgKEZwaURldmljZUVnaXNFdHU5MDUsIGZwaV9kZXZpY2VfZWdpc19ldHU5MDUsIEZQSSwgREVW SUNFX0VHSVNfRVRVOTA1LCBGcERldmljZSkKKysKKysjZGVmaW5lIEVHSVNfRVRVOTA1X0RSSVZF Ul9GVUxMTkFNRSAiRWdpcyBUZWNobm9sb2d5IChMaWdoVHVuaW5nKSBNYXRjaC1vbi1DaGlwIgor KworKyNkZWZpbmUgRUdJU19FVFU5MDVfRFJJVkVSX0NIRUNLX1BSRUZJWF9UWVBFMSAoMSA8PCAw KQorKyNkZWZpbmUgRUdJU19FVFU5MDVfRFJJVkVSX0NIRUNLX1BSRUZJWF9UWVBFMiAoMSA8PCAx KQorKyNkZWZpbmUgRUdJU19FVFU5MDVfRFJJVkVSX01BWF9FTlJPTExfU1RBR0VTXzIwICgxIDw8 IDIpCisrCisrI2RlZmluZSBFR0lTX0VUVTkwNV9FUF9DTURfT1VUICgweDAyIHwgRlBJX1VTQl9F TkRQT0lOVF9PVVQpCisrI2RlZmluZSBFR0lTX0VUVTkwNV9FUF9DTURfSU4gKDB4ODEgfCBGUElf VVNCX0VORFBPSU5UX0lOKQorKyNkZWZpbmUgRUdJU19FVFU5MDVfRVBfQ01EX0lOVEVSUlVQVF9J TiAweDgzCisrCisrI2RlZmluZSBFR0lTX0VUVTkwNV9VU0JfQ09OVFJPTF9USU1FT1VUIDUwMDAK KysjZGVmaW5lIEVHSVNfRVRVOTA1X1VTQl9TRU5EX1RJTUVPVVQgNTAwMAorKyNkZWZpbmUgRUdJ U19FVFU5MDVfVVNCX1JFQ1ZfVElNRU9VVCA1MDAwCisrI2RlZmluZSBFR0lTX0VUVTkwNV9VU0Jf SU5URVJSVVBUX1RJTUVPVVQgMCAvKiBObyB0aW1lb3V0IGZvciB3YWl0aW5nIGZvciBmaW5nZXIg ZG93biAqLworKworKyNkZWZpbmUgRUdJU19FVFU5MDVfVVNCX0lOX1JFQ1ZfTEVOR1RIIDQwOTYK KysjZGVmaW5lIEVHSVNfRVRVOTA1X1VTQl9JTlRFUlJVUFRfSU5fUkVDVl9MRU5HVEggNjQKKysK KysjZGVmaW5lIEVHSVNfRVRVOTA1X01BWF9FTlJPTExfU1RBR0VTX0RFRkFVTFQgMTIKKysjZGVm aW5lIEVHSVNfRVRVOTA1X01BWF9FTlJPTExfTlVNIDEyCisrI2RlZmluZSBFR0lTX0VUVTkwNV9G SU5HRVJQUklOVF9EQVRBX1NJWkUgMzIKKysjZGVmaW5lIEVHSVNfRVRVOTA1X0xJU1RfUkVTUE9O U0VfUFJFRklYX1NJWkUgMTQKKysjZGVmaW5lIEVHSVNfRVRVOTA1X0xJU1RfUkVTUE9OU0VfU1VG RklYX1NJWkUgMgorKworKyNkZWZpbmUgRUdJU19FVFU5MDVfUEFSQV80X1NJWkUgNjgKKysKKysj ZGVmaW5lIEVHSVNfRVRVOTA1X1BBUkFfMV9WQUxVRSAwCisrI2RlZmluZSBFR0lTX0VUVTkwNV9Q QVJBXzJfVkFMVUUgMAorKyNkZWZpbmUgRUdJU19FVFU5MDVfUEFSQV8zX1ZBTFVFIDMyCisrCisr I3ByYWdtYSBwYWNrKHB1c2gsIDEpCisrdHlwZWRlZiBzdHJ1Y3QKKyt7CisrICBndWNoYXIgIHJl c2VydmVfcGFyYV8xOworKyAgZ3VzaG9ydCByZXNlcnZlX3BhcmFfMjsKKysgIGd1c2hvcnQgcmVz ZXJ2ZV9wYXJhXzM7CisrICBndWNoYXIgIHJlc2VydmVfcGFyYV80W0VHSVNfRVRVOTA1X1BBUkFf NF9TSVpFXTsKKyt9IEVnaXNtb2NTaWREYXRhOworKyNwcmFnbWEgcGFjayhwb3ApCisrCisrLyog c3RhbmRhcmQgcHJlZml4ZXMgZm9yIGFsbCByZWFkL3dyaXRlcyAqLworKworK3N0YXRpYyBndWNo YXIgZWdpc19ldHU5MDVfd3JpdGVfcHJlZml4W10gPSB7J0UnLCAnRycsICdJJywgJ1MnLCAweDAw LCAweDAwLCAweDAwLCAweDAxfTsKKytzdGF0aWMgZ3NpemUgZWdpc19ldHU5MDVfd3JpdGVfcHJl Zml4X2xlbiA9IHNpemVvZiAoZWdpc19ldHU5MDVfd3JpdGVfcHJlZml4KSAvIHNpemVvZiAoZWdp c19ldHU5MDVfd3JpdGVfcHJlZml4WzBdKTsKKysKKytzdGF0aWMgZ3VjaGFyIGVnaXNfZXR1OTA1 X3JlYWRfcHJlZml4W10gPSB7J1MnLCAnSScsICdHJywgJ0UnLCAweDAwLCAweDAwLCAweDAwLCAw eDAxfTsKKytzdGF0aWMgZ3NpemUgZWdpc19ldHU5MDVfcmVhZF9wcmVmaXhfbGVuID0gc2l6ZW9m IChlZ2lzX2V0dTkwNV9yZWFkX3ByZWZpeCkgLyBzaXplb2YgKGVnaXNfZXR1OTA1X3JlYWRfcHJl Zml4WzBdKTsKKysKKysKKysvKiBoYXJkLWNvZGVkIGNvbW1hbmQgcGF5bG9hZHMgKi8KKysKKytz dGF0aWMgZ3VjaGFyIGNtZF9md192ZXJzaW9uW10gPSB7MHgwMCwgMHgwMCwgMHgwMCwgMHgwNywg MHg1MCwgMHg3ZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwY307Cisrc3RhdGljIGdzaXpl IGNtZF9md192ZXJzaW9uX2xlbiA9IHNpemVvZiAoY21kX2Z3X3ZlcnNpb24pIC8gc2l6ZW9mIChj bWRfZndfdmVyc2lvblswXSk7Cisrc3RhdGljIGd1Y2hhciByc3BfZndfdmVyc2lvbl9zdWZmaXhb XSA9IHsweDkwLCAweDAwfTsKKytzdGF0aWMgZ3NpemUgcnNwX2Z3X3ZlcnNpb25fc3VmZml4X2xl biA9IHNpemVvZiAocnNwX2Z3X3ZlcnNpb25fc3VmZml4KSAvIHNpemVvZiAocnNwX2Z3X3ZlcnNp b25fc3VmZml4WzBdKTsKKysKKytzdGF0aWMgZ3VjaGFyIGNtZF9pbml0W10gPSB7MHgwMCwgMHgw MCwgMHgwMCwgMHgyOSwgMHg1MCwgMHg4MSwgMHg4MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwg MHgwMCwgMHgwMCwgMHgwMCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgw MCwgMHgyMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMCwgMHgwMCwg MHgxMiwgMHgwMCwgMHg0NSwgMHg2NywgMHg2OSwgMHg3MywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHg0NiwgMHg1MCwgMHg1MywgMHg2NSwgMHg3MywgMHg3MywgMHg2OSwgMHg2Ziwg MHg2ZSwgMHgwMCwgMHg1MSwgMHhjNiwgMHhiZCwgMHg3MX07Cisrc3RhdGljIGdzaXplIGNtZF9p bml0X2xlbiA9IHNpemVvZiAoY21kX2luaXQpIC8gc2l6ZW9mIChjbWRfaW5pdFswXSk7CisrCisr c3RhdGljIGd1Y2hhciBjbWRfbGlzdFtdID0gezB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4NTAs IDB4MTksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDEsIDB4NDB9OworK3N0YXRpYyBnc2l6ZSBjbWRf bGlzdF9sZW4gPSBzaXplb2YgKGNtZF9saXN0KSAvIHNpemVvZiAoY21kX2xpc3RbMF0pOworKwor K3N0YXRpYyBndWNoYXIgY21kX3NlbnNvcl9yZXNldFtdID0gezB4MDAsIDB4MDAsIDB4MDAsIDB4 MDQsIDB4NTAsIDB4MWEsIDB4MDAsIDB4MDB9OworK3N0YXRpYyBnc2l6ZSBjbWRfc2Vuc29yX3Jl c2V0X2xlbiA9IHNpemVvZiAoY21kX3NlbnNvcl9yZXNldCkgLyBzaXplb2YgKGNtZF9zZW5zb3Jf cmVzZXRbMF0pOworKworK3N0YXRpYyBndWNoYXIgY21kX3NlbnNvcl9jaGVja1tdID0gezB4MDAs IDB4MDAsIDB4MDAsIDB4MDQsIDB4NTAsIDB4MTcsIDB4MDIsIDB4MDB9OworK3N0YXRpYyBnc2l6 ZSBjbWRfc2Vuc29yX2NoZWNrX2xlbiA9IHNpemVvZiAoY21kX3NlbnNvcl9jaGVjaykgLyBzaXpl b2YgKGNtZF9zZW5zb3JfY2hlY2tbMF0pOworKworK3N0YXRpYyBndWNoYXIgY21kX3NlbnNvcl9p ZGVudGlmeVtdID0gezB4MDAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4NTAsIDB4MTcsIDB4MDEsIDB4 MDF9OworK3N0YXRpYyBnc2l6ZSBjbWRfc2Vuc29yX2lkZW50aWZ5X2xlbiA9IHNpemVvZiAoY21k X3NlbnNvcl9pZGVudGlmeSkgLyBzaXplb2YgKGNtZF9zZW5zb3JfaWRlbnRpZnlbMF0pOworKwor K3N0YXRpYyBndWNoYXIgcnNwX2lkZW50aWZ5X21hdGNoX3N1ZmZpeFtdID0gezB4OTAsIDB4MDB9 OworK3N0YXRpYyBnc2l6ZSByc3BfaWRlbnRpZnlfbWF0Y2hfc3VmZml4X2xlbiA9IHNpemVvZiAo cnNwX2lkZW50aWZ5X21hdGNoX3N1ZmZpeCkgLyBzaXplb2YgKHJzcF9pZGVudGlmeV9tYXRjaF9z dWZmaXhbMF0pOworKworK3N0YXRpYyBndWNoYXIgcnNwX2lkZW50aWZ5X25vdG1hdGNoX3N1ZmZp eFtdID0gezB4OTAsIDB4MDR9OworK3N0YXRpYyBnc2l6ZSByc3BfaWRlbnRpZnlfbm90bWF0Y2hf c3VmZml4X2xlbiA9IHNpemVvZiAocnNwX2lkZW50aWZ5X25vdG1hdGNoX3N1ZmZpeCkgLyBzaXpl b2YgKHJzcF9pZGVudGlmeV9ub3RtYXRjaF9zdWZmaXhbMF0pOworKworK3N0YXRpYyBndWNoYXIg Y21kX2Vucm9sbF9zdGFydGluZ1tdID0gezB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4NTAsIDB4 MTYsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjB9OworK3N0YXRpYyBnc2l6ZSBjbWRfZW5y b2xsX3N0YXJ0aW5nX2xlbiA9IHNpemVvZiAoY21kX2Vucm9sbF9zdGFydGluZykgLyBzaXplb2Yg KGNtZF9lbnJvbGxfc3RhcnRpbmdbMF0pOworKworK3N0YXRpYyBndWNoYXIgY21kX3NlbnNvcl9z dGFydF9jYXB0dXJlW10gPSB7MHgwMCwgMHgwMCwgMHgwMCwgMHgwNCwgMHg1MCwgMHgxNiwgMHgw MiwgMHgwMX07Cisrc3RhdGljIGdzaXplIGNtZF9zZW5zb3Jfc3RhcnRfY2FwdHVyZV9sZW4gPSBz aXplb2YgKGNtZF9zZW5zb3Jfc3RhcnRfY2FwdHVyZSkgLyBzaXplb2YgKGNtZF9zZW5zb3Jfc3Rh cnRfY2FwdHVyZVswXSk7CisrCisrc3RhdGljIGd1Y2hhciBjbWRfcmVhZF9jYXB0dXJlW10gPSB7 MHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHg1MCwgMHgxNiwgMHgwMiwgMHgwMiwgMHgwMCwgMHgw MCwgMHgwMn07Cisrc3RhdGljIGdzaXplIGNtZF9yZWFkX2NhcHR1cmVfbGVuID0gc2l6ZW9mIChj bWRfcmVhZF9jYXB0dXJlKSAvIHNpemVvZiAoY21kX3JlYWRfY2FwdHVyZVswXSk7CisrCisrc3Rh dGljIGd1Y2hhciBjbWRfZHVwbGljYXRlX2NoZWNrW10gPSB7MHgwMCwgMHgwMCwgMHgwMCwgMHgw NCwgMHg1MCwgMHgxNiwgMHgwNSwgMHgwMH07Cisrc3RhdGljIGdzaXplIGNtZF9kdXBsaWNhdGVf Y2hlY2tfbGVuID0gc2l6ZW9mIChjbWRfZHVwbGljYXRlX2NoZWNrKSAvIHNpemVvZiAoY21kX2R1 cGxpY2F0ZV9jaGVja1swXSk7CisrCisrc3RhdGljIGd1Y2hhciByc3BfcmVhZF9zdWNjZXNzX3By ZWZpeFtdID0gezB4MDAsIDB4MDAsIDB4MDAsIDB4MDR9OworK3N0YXRpYyBnc2l6ZSByc3BfcmVh ZF9zdWNjZXNzX3ByZWZpeF9sZW4gPSBzaXplb2YgKHJzcF9yZWFkX3N1Y2Nlc3NfcHJlZml4KSAv IHNpemVvZiAocnNwX3JlYWRfc3VjY2Vzc19wcmVmaXhbMF0pOworK3N0YXRpYyBndWNoYXIgcnNw X3JlYWRfc3VjY2Vzc19zdWZmaXhbXSA9IHsweDkwLCAweDAwfTsKKytzdGF0aWMgZ3NpemUgcnNw X3JlYWRfc3VjY2Vzc19zdWZmaXhfbGVuID0gc2l6ZW9mIChyc3BfcmVhZF9zdWNjZXNzX3N1ZmZp eCkgLyBzaXplb2YgKHJzcF9yZWFkX3N1Y2Nlc3Nfc3VmZml4WzBdKTsKKytzdGF0aWMgZ3VjaGFy IHJzcF9yZWFkX29mZmNlbnRlcl9wcmVmaXhbXSA9IHsweDAwLCAweDAwLCAweDAwLCAweDA0fTsK KytzdGF0aWMgZ3NpemUgcnNwX3JlYWRfb2ZmY2VudGVyX3ByZWZpeF9sZW4gPSBzaXplb2YgKHJz cF9yZWFkX29mZmNlbnRlcl9wcmVmaXgpIC8gc2l6ZW9mIChyc3BfcmVhZF9vZmZjZW50ZXJfcHJl Zml4WzBdKTsKKytzdGF0aWMgZ3VjaGFyIHJzcF9yZWFkX29mZmNlbnRlcl9zdWZmaXhbXSA9IHsw eDY0LCAweDkxfTsKKytzdGF0aWMgZ3NpemUgcnNwX3JlYWRfb2ZmY2VudGVyX3N1ZmZpeF9sZW4g PSBzaXplb2YgKHJzcF9yZWFkX29mZmNlbnRlcl9zdWZmaXgpIC8gc2l6ZW9mIChyc3BfcmVhZF9v ZmZjZW50ZXJfc3VmZml4WzBdKTsKKytzdGF0aWMgZ3VjaGFyIHJzcF9yZWFkX2RpcnR5X3ByZWZp eFtdID0gezB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4NjR9OworK3N0YXRpYyBnc2l6ZSByc3Bf cmVhZF9kaXJ0eV9wcmVmaXhfbGVuID0gc2l6ZW9mIChyc3BfcmVhZF9kaXJ0eV9wcmVmaXgpIC8g c2l6ZW9mIChyc3BfcmVhZF9kaXJ0eV9wcmVmaXhbMF0pOworKworK3N0YXRpYyBndWNoYXIgY21k X2NvbW1pdF9zdGFydGluZ1tdID0gezB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4NTAsIDB4MTYs IDB4MDUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjB9OworK3N0YXRpYyBnc2l6ZSBjbWRfY29tbWl0 X3N0YXJ0aW5nX2xlbiA9IHNpemVvZiAoY21kX2NvbW1pdF9zdGFydGluZykgLyBzaXplb2YgKGNt ZF9jb21taXRfc3RhcnRpbmdbMF0pOworKworKy8qIHByZWZpeGVzL3N1ZmZpeGVzIGFuZCBvdGhl ciB0aGluZ3MgZm9yIGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tbWFuZCBwYXlsb2FkcyAqLworKwor KyNkZWZpbmUgRUdJU19FVFU5MDVfQ0hFQ0tfQllURVNfTEVOR1RIIDIKKysjZGVmaW5lIEVHSVNf RVRVOTA1X0lERU5USUZZX1JFU1BPTlNFX1BSSU5UX0lEX09GRlNFVCA0NgorKyNkZWZpbmUgRUdJ U19FVFU5MDVfQ01EX0NIRUNLX1NFUEFSQVRPUl9MRU5HVEggMzIKKysKKytzdGF0aWMgZ3VjaGFy IGNtZF9uZXdfcHJpbnRfcHJlZml4X3R5cGUyW10gPSB7MHgwMCwgMHgwMCwgMHgwMCwgMHg1MCwg MHg1MCwgMHgxNiwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHg0OX07Cisrc3RhdGljIGdzaXpl IGNtZF9uZXdfcHJpbnRfcHJlZml4X3R5cGUyX2xlbiA9IHNpemVvZiAoY21kX25ld19wcmludF9w cmVmaXhfdHlwZTIpIC8gc2l6ZW9mIChjbWRfbmV3X3ByaW50X3ByZWZpeF90eXBlMlswXSk7Cisr Cisrc3RhdGljIGd1Y2hhciBjbWRfZGVsZXRlX3ByZWZpeFtdID0gezB4NTAsIDB4MTgsIDB4MDQs IDB4MDAsIDB4MDB9OworK3N0YXRpYyBnc2l6ZSBjbWRfZGVsZXRlX3ByZWZpeF9sZW4gPSBzaXpl b2YgKGNtZF9kZWxldGVfcHJlZml4KSAvIHNpemVvZiAoY21kX2RlbGV0ZV9wcmVmaXhbMF0pOwor K3N0YXRpYyBndWNoYXIgcnNwX2RlbGV0ZV9zdWNjZXNzX3ByZWZpeFtdID0gezB4MDAsIDB4MDAs IDB4MDAsIDB4MDIsIDB4OTAsIDB4MDB9OworK3N0YXRpYyBnc2l6ZSByc3BfZGVsZXRlX3N1Y2Nl c3NfcHJlZml4X2xlbiA9IHNpemVvZiAocnNwX2RlbGV0ZV9zdWNjZXNzX3ByZWZpeCkgLyBzaXpl b2YgKHJzcF9kZWxldGVfc3VjY2Vzc19wcmVmaXhbMF0pOworKworK3N0YXRpYyBndWNoYXIgY21k X2NoZWNrX3ByZWZpeF90eXBlMVtdID0gezB4NTAsIDB4MTcsIDB4MDMsIDB4MDAsIDB4MDB9Owor K3N0YXRpYyBnc2l6ZSBjbWRfY2hlY2tfcHJlZml4X3R5cGUxX2xlbiA9IHNpemVvZiAoY21kX2No ZWNrX3ByZWZpeF90eXBlMSkgLyBzaXplb2YgKGNtZF9jaGVja19wcmVmaXhfdHlwZTFbMF0pOwor K3N0YXRpYyBndWNoYXIgY21kX2NoZWNrX3ByZWZpeF90eXBlMltdID0gezB4NTAsIDB4MTcsIDB4 MDMsIDB4ODAsIDB4MDB9OworK3N0YXRpYyBnc2l6ZSBjbWRfY2hlY2tfcHJlZml4X3R5cGUyX2xl biA9IHNpemVvZiAoY21kX2NoZWNrX3ByZWZpeF90eXBlMikgLyBzaXplb2YgKGNtZF9jaGVja19w cmVmaXhfdHlwZTJbMF0pOworK3N0YXRpYyBndWNoYXIgY21kX2NoZWNrX3N1ZmZpeFtdID0gezB4 MDAsIDB4NDB9OworK3N0YXRpYyBnc2l6ZSBjbWRfY2hlY2tfc3VmZml4X2xlbiA9IHNpemVvZiAo Y21kX2NoZWNrX3N1ZmZpeCkgLyBzaXplb2YgKGNtZF9jaGVja19zdWZmaXhbMF0pOworK3N0YXRp YyBndWNoYXIgcnNwX2NoZWNrX25vdF95ZXRfZW5yb2xsZWRfc3VmZml4W10gPSB7MHg5MCwgMHgw NH07Cisrc3RhdGljIGdzaXplIHJzcF9jaGVja19ub3RfeWV0X2Vucm9sbGVkX3N1ZmZpeF9sZW4g PSBzaXplb2YgKHJzcF9jaGVja19ub3RfeWV0X2Vucm9sbGVkX3N1ZmZpeCkgLyBzaXplb2YgKHJz cF9jaGVja19ub3RfeWV0X2Vucm9sbGVkX3N1ZmZpeFswXSk7CisrCisrCisrLyogU1NNIHRhc2sg c3RhdGVzIGFuZCB2YXJpb3VzIHN0YXR1cyBlbnVtcyAqLworKworK3R5cGVkZWYgZW51bSB7Cisr ICBDTURfU0VORCwKKysgIENNRF9HRVQsCisrICBDTURfU1RBVEVTLAorK30gQ29tbWFuZFN0YXRl czsKKysKKyt0eXBlZGVmIGVudW0geworKyAgREVWX0dFVF9GV19WRVJTSU9OLAorKyAgREVWX0lO SVRfQ09OVFJPTCwKKysgIERFVl9JTklUX1NUQVRFUywKKyt9IERldmljZUluaXRTdGF0ZXM7Cisr CisrdHlwZWRlZiBlbnVtIHsKKysgIElERU5USUZZX0dFVF9FTlJPTExFRF9JRFMsCisrICBJREVO VElGWV9DSEVDS19FTlJPTExFRF9OVU0sCisrICBJREVOVElGWV9TRU5TT1JfUkVTRVQsCisrICBJ REVOVElGWV9TRU5TT1JfSURFTlRJRlksCisrICBJREVOVElGWV9XQUlUX0ZJTkdFUiwKKysgIElE RU5USUZZX1NFTlNPUl9DSEVDSywKKysgIElERU5USUZZX0NIRUNLLAorKyAgSURFTlRJRllfQ09N UExFVEVfU0VOU09SX1JFU0VULAorKyAgSURFTlRJRllfQ09NUExFVEUsCisrICBJREVOVElGWV9T VEFURVMsCisrfSBJZGVudGlmeVN0YXRlczsKKysKKyt0eXBlZGVmIGVudW0geworKyAgRU5ST0xM X1NUQVJULAorKyAgRU5ST0xMX0NBUFRVUkVfU0VOU09SX1JFU0VULAorKyAgRU5ST0xMX0NBUFRV UkVfU0VOU09SX1NUQVJUX0NBUFRVUkUsCisrICBFTlJPTExfQ0FQVFVSRV9XQUlUX0ZJTkdFUiwK KysgIEVOUk9MTF9DQVBUVVJFX1JFQURfUkVTUE9OU0UsCisrICBFTlJPTExfRFVQTElDQVRFX0NI RUNLLAorKyAgRU5ST0xMX0NPTU1JVF9TVEFSVCwKKysgIEVOUk9MTF9DT01NSVQsCisrICBFTlJP TExfQ09NTUlUX1NFTlNPUl9SRVNFVCwKKysgIEVOUk9MTF9DT01QTEVURSwKKysgIEVOUk9MTF9T VEFURVMsCisrfSBFbnJvbGxTdGF0ZXM7CisrCisrdHlwZWRlZiBlbnVtIHsKKysgIEVOUk9MTF9T VEFUVVNfREVWSUNFX0ZVTEwsCisrICBFTlJPTExfU1RBVFVTX0RVUExJQ0FURSwKKysgIEVOUk9M TF9TVEFUVVNfUEFSVElBTF9PSywKKysgIEVOUk9MTF9TVEFUVVNfUkVUUlksCisrICBFTlJPTExf U1RBVFVTX0NPTVBMRVRFLAorK30gRW5yb2xsU3RhdHVzOworKworK3R5cGVkZWYgZW51bSB7Cisr ICBMSVNUX0dFVF9FTlJPTExFRF9JRFMsCisrICBMSVNUX1JFVFVSTl9FTlJPTExFRF9QUklOVFMs CisrICBMSVNUX1NUQVRFUywKKyt9IExpc3RTdGF0ZXM7CisrCisrdHlwZWRlZiBlbnVtIHsKKysg IERFTEVURV9HRVRfRU5ST0xMRURfSURTLAorKyAgREVMRVRFX0RFTEVURSwKKysgIERFTEVURV9T VEFURVMsCisrfSBEZWxldGVTdGF0ZXM7CitkaWZmIC0tZ2l0IGEvbGliZnByaW50L21lc29uLmJ1 aWxkIGIvbGliZnByaW50L21lc29uLmJ1aWxkCitpbmRleCBhZTBmNmUyNC4uMDgxYjE4ZGUgMTAw NjQ0CistLS0gYS9saWJmcHJpbnQvbWVzb24uYnVpbGQKKysrKyBiL2xpYmZwcmludC9tZXNvbi5i dWlsZAorQEAgLTEyNyw2ICsxMjcsOCBAQCBkcml2ZXJfc291cmNlcyA9IHsKKyAgICAgICAgIFsg J2RyaXZlcnMvZWdpczA1NzAuYycgXSwKKyAgICAgJ2VnaXNtb2MnIDoKKyAgICAgICAgIFsgJ2Ry aXZlcnMvZWdpc21vYy9lZ2lzbW9jLmMnIF0sCisrICAgICdlZ2lzX2V0dTkwNScgOgorKyAgICAg ICAgWyAnZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMnIF0sCisgICAgICd2ZnMwMDUwJyA6 CisgICAgICAgICBbICdkcml2ZXJzL3ZmczAwNTAuYycgXSwKKyAgICAgJ2VsYW4nIDoKK2RpZmYg LS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCitpbmRleCAxNGZiMTFmMi4uMDJiNDNl NGYgMTAwNjQ0CistLS0gYS9tZXNvbi5idWlsZAorKysrIGIvbWVzb24uYnVpbGQKK0BAIC0xMzEs NiArMTMxLDcgQEAgZGVmYXVsdF9kcml2ZXJzID0gWworICAgICAnZXRlczYwMycsCisgICAgICdl Z2lzMDU3MCcsCisgICAgICdlZ2lzbW9jJywKKysgICAgJ2VnaXNfZXR1OTA1JywKKyAgICAgJ3Zj b201cycsCisgICAgICdzeW5hcHRpY3MnLAorICAgICAnZWxhbicsCitAQCAtMTY1LDYgKzE2Niw3 IEBAIGVuZGlhbl9pbmRlcGVuZGVudF9kcml2ZXJzID0gdmlydHVhbF9kcml2ZXJzICsgWworICAg ICAnYWVzNDAwMCcsCisgICAgICdlZ2lzMDU3MCcsCisgICAgICdlZ2lzbW9jJywKKysgICAgJ2Vn aXNfZXR1OTA1JywKKyAgICAgJ2VsYW5tb2MnLAorICAgICAnZXRlczYwMycsCisgICAgICdmb2Nh bHRlY2hfbW9jJywKK2RpZmYgLS1naXQgYS90ZXN0cy9lZ2lzX2V0dTkwNS9jdXN0b20ucGNhcG5n IGIvdGVzdHMvZWdpc19ldHU5MDUvY3VzdG9tLnBjYXBuZworbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMWM0NjIy YTFiNWI0NGYyNTA2NTg4MmNmZjNkM2UyNjg3ZDc2ZDEKK0dJVCBiaW5hcnkgcGF0Y2gKK2xpdGVy YWwgMzM2NDQKK3pjbWQ1XzN3VHUzeGptVCNMVnpHM2YqfE9xUkQyflFWNHpDR2dOTyklalgoQHF2 PWUhbXMoP0ghcU9Bam5weCNJbgorejVXTk5nMV5uOEFUQj08MlQ4JV99dzJIK3k3V0duRnQ4JiMo SyZfOTt7cnxKfitXWDkoZDdhYm88TD5ZS1hFSmxuCit6dGhOOFdfRmlZN0opNUN6YWRGIXg5TEVg NWN+WHgmZE9ufl8jNXUob0dXeDlPbX19LXVvKSljJFIjY1JnUlkha08KK3pIflheYW5BJUJgciUj SXhwSUpOT3ZidUAwcVFgc2hqdllKZmwrdTFEPFU4RypRRllWaSUjOTh4RWtDOFN0ZmM/SQoremxC dHVZT2BjZ2QoSjY0d2JrM1N7PCYyNTdHb3JgVylYa2hjPiQyTEptIUEtJiZ6MUl6OXpWUXBjSnls WF9sKCshCit6bSlCMDZKU2tjYE9DMnBLRkQ8YHhQVGR1Z2BrejNScXs0T1Bga3E2dmleNlRuY09w KXFHaVRQTlM1QllTLXpsUF8KK3p0P0IqdFkzZjZWejBkUGBGQDhhJUAySipKJnFjITtVSFkzTnA3 JWxKJVFxaTVGZzZtODxVM0FmQCVRKUYoYzh8aAoremB9M1c4WU9CdXRmPWF3S1J8bGA/amZuVFFo cypmMClrX2I1O25IRF5XOVQmcEBQflQlQkBYYjFaWURNPWpPYXU0Cit6LXQhKGJlJjsrVmEpN0Vq dWpkMTsmSyNROyQpe1F7bSZ8RCtha30oQTJSTE87Un1kJVhSN0JAK3BgM15YdWptYnQKK3ooLXEh WHM/RkF+OU0oOTNVVUw5bjx9fj9ubEBsWlNQJkVvWVk1Ynh7QTE1ISpTPHtjK1ZoKSowQHR2Ny1k NU8zPAorem1wJlJAPCRfbjFFMmk8Nj08YF9yayprTF9QTm1senNkOHolUnByOG5LMihpRFBjb09I MD57YXgzT1IrWD0we3dJCit6bys5ZExWWktYVWh4dWltcEdfS1BIRVd5TDQ/RjA3SURKXzdlcHI5 U0lOSnwzSn5SVjxAI3goNCFfU0c2dlVmUCoKK3pEUlIxc0lLeWhVWnRnZyVVNWNEflUtLWpvbXch Iz5KUXE/dUk4UGVDVVd2RVAmbzMmI0R8JD0hcCYwJGllZDlVYAorekY1RXwjJEh6NVpNMU9Pajlp P18lWUVfOys9cDJwfk1kU0MjRkxRPUNLWHdLPFdmV0Q7ZEd4QmtRe2ZEeDQ9fF9mCit6bXVyP0ol Z3RlYmJrSnwyYnQqVCpTd3pOXnF7UWV3aTlofDhtaVIqPmo5KVNzX0A3O19hIVVmNEBLIVNYJjZW UmIKK3pfUThJPTNPI00kejN+QTR6SW9YQWpOX2BgYWZNenpiTEg+ZCZkIXxFTzV6TVZ1RmVAZktJ NkUwekNgOHBMd2UkRQorelIxY1Mwaj44IS1faVg+UThHV051c21jPjBEYWcyTFMzVGEwRTh4cDxi eFZjSEd1UHY0O2U9JGxDNjI1NyheWVBxCit6ekU9V190MmNodTU/X3cxM3RXe087OFEpdj1tM3d+ eCV2ZTVxeiFmQjg+e0l4MmlrNklldVQlWkByQzA/c2A/KkIKK3pyKk5ieSEta0ktT1VMck15aTFS VFJvQy0qP0oxWn5gbytKOSpRTko0eiZsaiY4byY0QEBwNEpXJDtWPzk2OTR8NgorelRsXjtVeCV+ TkBTMCh5ZnBMNFk/OVRfRF9OI29eXzhePF5QbHM+YCV7R2tmcHdBK0Z5c3tUak5JVUZzRCN2ZU9r Cit6XyVKJF9jal9EVFNiUzwoTU9rU0BZNSZxd2BaWldEemYqc2hITUArc2U/aE1+Kz0hbEkyK2Nr dVp1U2tuOSZuXjgKK3omfXtSNUleJT9AYEVoelcjeWRJY0p2dHB9RG0hZHktSz97IyMhajkhdDhW JTw9bG9+P2FGeFVMayF9NzIpeXQqIworenowbWNObnBSRiNaSVo0fDFkJndKZUxub0FlQl87fD1g NnpNeXM2JkZpX21uMks4eEZSPypyby10TFFaY0BUSTBSCit6bSNYP1JKViVRbkc9MlJfSXdSOEgl JUNTWl9NRlhqPzc2THdQdlkyJS15VXIyeT5saUo2O15lcG5RTlgpZTxtQXkKK3pYQXYoU15GczRW b3RgMEhFQDgmcmkkNDZPKjJwVlNyJX10bz52WjIrS0Fra2EpYWxzQWc2VlclSXdjI0t7Q3pUPQor ejkodT4+PGR9UkNidC0hQG1gPWBjO3chQWAkfV9BZU1LWWJmQndtK31hZSFDcWJUI3BFMzhQY3Jj VSQ2KjYoMEdaCit6Jk1TRm1DdH1eLVdBckVZPyo8QWtKZjUhWWJZVWE2Q3hALVMqQUkrR2UqM3dx ZTtKKl4oVn1SNGN4MyVOSV4mcUIKK3pFNTImPTtmUmctSnh9X28/JFJBNnpJXj15YChDfCNacXdj Kzd5UUAjY2Y0SHJiJVIkQXU4O3A3ZW9eTk8lXmM3NgoreiVTMFZwP05kNllvYTU7ViFaKGpUbzhC bT5AfX15Xj8mMUdQb0d6V2gwWnlzbU5hRXl6ZDhfdiMkd1EzWjxEQkBKCit6MyVCdVVoZ3k4PUEm Rnp7YWgrNFA4aFV6WntKRSFJWGdtQDRhOypLY2RtRkRsOXFFeXlNRytjR1B4TmNfSkBKaHAKK3ow MWtNdG9SOXBmTTtrTkdQdUZKOT1xTyZgRDUmWmhwfjAzK3F0aX5hWjNzQE8oY3tGKUJeQDZoazVO ZENGODFOdQorej52Zl89QDkzUDhIejB3RWFwdT9QKF57V0s9RE0zVyZaZUNpT3J6Smw+KCpgTnky V3tNO1hYSElxSFFuUyRCeFpnCit6bUB2MmNWNXJpX14qJmBFJXBJbDNYTl45RUBmUitlK1FeZWY0 JlY8fV98NzRFNFcrcVVqaFFwKDkxYXdUNThvKjUKK3pNUTQ8RWpZUnEwSi1nelckUXQ/Pj4mZ0Rp aDNqfE1AfkxMZDkzUUZnWFl+OUZfMW9EbSohNz9uJmo5SXE1VFNQQQorenJiJWBeKmlGMUg5cGVC bWBZQ3ZpP2pRYm9GbkAmKWUrY3FZe1NeMzU2TW01U200OXB4RHklYk9KRmZCSkNCVk9TCit6eSZZ I3MkQ35hcChEaygjSEFYPlJ5OVJvfiohRlgtWTIpS08zcHB2ejJqfkI2Mjw5aTVKYnc+eXg+TyZJ eGFPMlAKK3pvcGlzPWxUSiVuVnN1M00kJHU3RXszYUpVQ0Y9QXg7Um4mbD88ZDE5dVFRJHhlNXVv LUJERVVLZSRVYU8yJVhZLQoremUoQERuQmV4Q2FpLXtWSVpkO1VGJm5IZm9EKCF7bGxwNCg9UEEq Q05wPzU/KiNPTyhDYmUjfDE1JSgoU2NUZWI/Cit6a35iaU0+TlcodlUhJGtDVGFBRChIOUJ4YkZw YmlBeyhVZG9fS0Z2M2prTTxAcFpCais4bzUrO2YwM1JYcWw0VUQKK3pZYmR5fHJ9bW4lejxSI01o diM/RnA4d0FFYFFHXmwhfUUpI0YwaGBEQDBZYWFxa2I+TSklcSNWI25hOGxGKXp1Kworel5HNmJ8 T0whZFNka3d1IzBeWVhzUmxCNilxPm0/Xm9CWXYtLSZCT0xyQFJGQ0h4cXNrRlkpe0QhMTVjNj1L fi04Cit6NiE+M19Ze2t7eyMjeiNfQ2NOYTs3QGJAWU4kTDQ3XnxQR3JsN3t4JWBNV0AmUnNFPHxm JjMocz1YZElWZ1Y3MGAKK3pARHQ+QGdFK1kpJkN4cmU5JUEkKXtiYUtyZS1VeUApTUA1dWx+V2kk ZDI3V0QjYDlmYEZMaz19S34/YDtjPmNzWQorenRWWWdfJFZZaVQrVXdZZGZAemQjb197LVd5NDFF RDtGS0RUQXg8dH5HfWBVTWtLY0AoNTthPEBhfCl4O3k8YzA2Cit6Zkc7KD1eaWJ8Tz5ZQUwqYnZk MnF1bFVCY1NKTz44QU1OP2pzSmNzUVp5ZFFFdDl7N0VeQi1IWiV5PlRWO3JYNGwKK3o9Ync3OSgm SiF3e3NUOEl2enxYNmRhNkUoYGp1WHlgZS1nYWU9cVRKZHZlNHpGWndCWFhBJj0kRnJHaG52Qmhg ZAoreiRWPkg4OzZKSkolQz97U0peI2ZzUnY2QypLS2QhfU18SERuOSFiWlZAY2RVfGx4I3RNTzMm ey1xJE1YakFEcnRCCit6JitYZEl3WiFSQ3dLIX5eVWpHO2omVG9tNk9WUypAQmtDYldQdHg9RWB8 IX5adXMjUjsrMS1RUGtOTX0yayMjR0sKK3o9TDI4cndCVEEqfDZGK2ZyXkdqZ141bnBIbWx7cEdF fF5Be0ppcCgxc31WVG1TbFVkU1QqN0Z5KFQ1TERtS3ZTPgoreiVrVWFhRlRCSFFxXn5KYnF0RChB cmNwWjJ1V2ZVTz9iRW19WXRLaVkreD8hKCRNc3N4SzRqemhlPzQpdkBxQlgpCit6KUB3VjVZUl5C V05nKjghJik8MntZVUJCczJjZUltZSUrdFdeUjlXaF4hKF9fdDQrSXU3eVQ1eEcyLVBDI2BEK3QK K3pAeShvQWN8UCN9cnQ9RXBgTSsreil7SmRDfE1sPTQ7RDVBTS1LWCQ0T0ZHdHM9a0pLb2kzSjVJ Si1AISNheXNwQworekAxbX5IO0MkJmBiPz1ncmxQSXwwby1FVG18OVJxYz4zan13Tn1ieD1YWT1J S1FrNTdUa2U9XiF1PXFfVHIkbjd4Cit6IVZodms9SikpWGolJHNkMDNVdldIZTB6filqdD1Xe3xO RG9wKiVVXzE8NXR+ZzdgUn1ZJkZXe2A1ek9mT01EI1EKK3pscDNBNUEtcU98SSQzPEA1YWc3byhZ MXNoUi0+Ny10d3o5PzhnMXNpaUJ6KUhENHBrem5gODVGSkxyNzA9YzcrNworelooSEV5PDllKzJB c2Yle3YqdEkoXk1RfGZLSmNlajZubWZ0IX1Icyh7ZitWYmNyby0kXnBRfm1pb05gRT5HQE5MCit6 bSlueUF5dDFFZUFZTHdFSnBVfnB6VCtVVCNEMDRDSyRUWSomK2t7YShUcnsyJVlIaVpgd218SFE7 dSFuYEcxYmwKK3o9PkBHKWRqNyhuYCM4O2RSaWFrUzJSYTF1bFQ0b2Y3dmdsT1N7I24lbHNYO1o5 S3VKRlUpUWBOPkxFcj8oKF9rYworelp0PmxBJCNyXiVAV2NBYWxzfDFXbykzS0opSjR5XnJXfnAy bSN2P3FUaEFaI3FTZEkkXmdFPnlfeSEmMjFreHl6Cit6PVB4NXBtcn4jV0NvfUAqR1VEWEllS0Iy JChMdCV2O1YtcXMkMj1lU2hldVVUKl5WWHViJExrMUNabXo5em5WVioKK3plQEw3dk1rUU5+KHNf UUwob0xxbCY/b1I2RjhLUClTTlhVZXQ5ezdFXldUNFhpfWlmbnJ7VmQpZjR7SjsyWU42KAorenp2 Kz1KI2A3X3pHMCNXK24lY0NAeCN1NlRXczdOZEBYQ0lBTTNIS2pGckkoNkFLIzJVPEB3MCNabyZg WkNIfVJZCit6dlBGLWtebkJvI3oxN2FzSEN4WXJJWXlAIXZgKj55cjhpbm1UcW1WZ3I5MGFOQHs+ JVNlLSZ9TVI0b3AwTn1hQUUKK3pQQSp+bXF9aGokSWcje31XfVE8UUtsJU1man5ZSiN6ViFVeFNN dSlNP0VOSTI9UW4/QkhOdT0jWVNlc3NgIz42SAorel44NiRBU2RHOWJIOUJJaiR9eDthXiooJnVN QFd0ODJ8dmhLQF9ZViFxYUhJRjBiZ3FMLXMpZilyU3RzZShUfHh2Cit6amU5QG9gT1J4b0tDYWdA Pl9heDVVO1Z+YjxOM2djPU8zbyQ4SGZGWXVkSGclNCpOY2UjSy09UVQ8K1QkXnlYSVUKK3pgUjNr USV9WT9mWj5mSClYRDtYWUh4YUsoaUU9b2E3eVQ1eEJSKjheNjJ8bFFgfCRBe0VCWXokQTEzQER7 bllSSQorenQpRnx3Y3N9c2FQbDVtSm58NDEtKHk8b2Q8USlnUFpqYUg2ZzJJJVpLa2orVWlTTkRQ QypiVXxHcT9NOEhXODt3Cit6KSMzb0IpYWdwJTxkUVQ7P30mUGMoVVk3Kjl7cXczQUEyYkRlcH0/ VVRqdnpVXkxMKUsmSDQlVVEwUlk/MFF8Y3UKK3pnWTV9UD1sT3ApZDdKNE0qbj1XOWBzTH1sLU03 PWJXU2h8bG9LbUJ8NWhzXjA4YTRYeD9PcjRgZT9sOGg3XzQjJQorenF0U1Z7VDgpNCYkNU15WSE4 QShlYFRkc0tfUUdDRGNzfXlrT01MN051R2ViekwzKG5HNHNvQWVMJjFnaj9Ic3Z2Cit6eVlZUEIh fUdncCYlZFdadCtnR0RkSCNeKj9aKSUlLWRwQVFzTmQ3S3NrT1JYZGo5Umk+cnh3ZVZmTiZEeW8x NXAKK3pgRjdQVlZMWlMwR1p3IXw+QE5mVUk+SGFAYENUNlN2bC1qS00/VkdyXjJPPnFYZFkpdCRD fmlgbXR1NWNMN1NBRworemY2MyNQNk1OMCFDKlhXe053N1UzbmRiU01pUE9gRnNzPktAMntgLVJX Yj5yY1FrRURVaylENnRlX01SKXxIcmklCit6XyF8ZzZoKShgRjxrWCUhak9QUGk+aHpDflJzRk1G SCVSQ0NnTH5+VHtsWEZkNzYkbnx4aEklTG5kYlMraVBOUkYKK3o8cDhKRHNMVElgKlFte3JFJUJ2 Qk85KCUjTXJUfWFITH4/cllkZEpPciQoIyFVJHo+aF5aWHloWjllRHxATzwjQworektRSHtnb21Y eiVYKj9oSigofWgkdGshKUdoVWFmc3kzPX5UXzsrPjR8Rn0hazhnVlc/S2htKCVed1UmY3ZWZUhH Cit6Z3pAfmZLNzRxeD81OVduT3khbUIrezhjNkFPN0g5JS05QSN5cmk0SG1NPFFwVyhDPUx7KTto Nnd4QjRiPWRYT28KK3phPzB5N0lOeipQLT95amE8T1pkWj9SVTZ1NVR7RyRkbSptUDtPdSgzJjY3 P3xTej5mVmRqN2U7di1wQDNLX31xZgorekxpbDAqPGVrcERqT1BQaT5lT3FzcygtZUFsRnN4MGNJ WW5DRkVENHRiczcyZVVLMzJDT3JDI3ltdDlzUHV8RlQyCit6bWt9cUlxO243Tmg8Yj84bGhvKldB SEV+elByekBwSG9RaHAlKGZaPFV1eUs3cWI1ayVZTHczTm85RWN9aXNSbD0KK3plfXt7RlhiWkkw PVVtays9MjVqR3owfnV5ODIhb1p3VDZOViYtMlN+ZUJYRkpAWnRIdXpwQXNrWiNmdkFVJE9Ybwor ejxOM0lFbXdqfjNxM1MqLW0hM2JEY3dLNUU0KTlgYmZfOGI3Yyk1aH17T0Ema2tGXikrQzl5OFM/ bm5LZVUlVU04Cit6V140bXJfUzNhZHlVdnwtdG0lRyh3VmdsM0RBfEl4RExzR04zZEBRMEZzVzZt VnsqSG1mN2wmPUgjJmgrPlFxZ2YKK3pUJDFNSzlaP1Q0ZFhqIyEqb1RqYFBwUSokSTtVKX0lYC1H N2tINkV0ez00eWY7N2d0NkVtSE4qKT0kIVRlKSVfNgorekJka3FKampwO2VtYDBnQXw3emxORFE2 Q0ZOe3pNPEN6bWk5Sj9GIzZfWFNkOyFvQDE1RmRBKjFAUFd8P18pPz8yCit6OXxxR1hvIyF2Vl95 Zn5rXz5LcWplMGF9bUFFfHM/dWhyfkJIbDgxTz5yPjxUej0hN191SUdjMVc3S2B1IVNNViYKK3pS S0lGVWkzOHUhcF51X3xkI0hYcSYmczllcFMkeEApOSZDIUtMemkoJEV0UC08TjRqK3cpb2dyZ01K Rzk/IUFORQoremtOUTNUeUF3WSpvKTNLVlF7YUMkK3dPQEBJQFd+ZXwxbX0pNnRxan1gOSZ4RElL e3BsYTI4ITFaMH5vYndWaEdLCit6PX5BXmc5STxaKW9UR0A3T1ZTKkBCa0NiV1B0eDtXX3UtcDg2 blpAJF9ePDFuIXVaTFU+ZCVkejBBSzFmV183VD0KK3otfDBOUlhOfWJlZHI7KGY+YlcrVU13dlcr MCYlKzN3akFKO1ZgJjAkYXRXaStBPiYpKCVkdkZHejJXIWdjZkctQworeldiM2NpY0YrZzlaViNx V0k/dytuQHd3QyVVU099N3A2NyRfcFR4KFckTElKPEhsRHcwQGptUE1WJjR3JWNrTVdNCit6Xlpl fmdfOEhIfG4zakVYYHp5Smg9WGJ3cHBKe2pTJTZ7N1kpJHNIRFdxeTNJWndLd1pqUFFmMzhUZFdf dGA3UyUKK3pkajRKRyl4SU1oWEd6REpAY2JgY3BjQmRTQyNfOFcrWTRQZ1QyNVJpckIrPXBRaFNr N2FfU0Q4P2JeO247JmthVgorejlOPzVYTyhhZShOcHRqJHNEfkltd2VXbCZLSVROeVBoUXRLaDRL OHwxTkt8YipMJCgwPWtKY0lgc1pTdnppRlY9Cit6Mnk8NGMoV2QjcUd8SkBwYDlIUUFmbTNSZnph WUZ1UHh8bjJBMGFoKmxKSjkhQ0k3d0hDJCZ+MTs3ZzRAYEU0K2IKK3ooc30tS20paUVpeSZ2WkpA UF85JHMoZjc0YjxKWm9wOHhYQVVtTVF7S0lad3xeKm4jKz9GI1o+JT0waDI8IWtIdAorelYmNHd4 Kkx8N1Z0RDRKc3tAdWpPP2FBU1llTExYJkRlLWElR3RZbjVobVctdl5pJHk5cXd+dHZPWj1YSC1i WV4+Cit6JmomdkdEZXlhZHVJaXVDZX0oNX5uJis/aCptN2IkNDFOTzY+Yj00Q2UpaytuYik/XyM7 eVd0TlBrUW9hI09jIWUKK3o5Tj5oWGZiJjcoPGlkSFREPXw3S0B1JSRaO2JVITgmK356UStgak84 em43MngjJn57UTw0Y3shUmpaTWx3ZGREUworekI5VnB5X0FTb0d8TkIqUSZpbHJXQyRzamdfQ3oz YGlWTWAqY2VkbHt5UihVZWUhcSR9aWZUVURqQHlhWHJER2crCit6TzxlN1gwUG41RCVPJVdzOHZQ VENaQDtIZGR2fTBlVG9abXhmNmdebEMqVnQrRCgzJXRJeUhJT3QyT3NkKk04R0AKK3o1NTRCVl9k SWVlP08zNGx4ckVOKU5MNFVASShZPTBRQn5FSWNiQFF7UVJuUWNAeyUlTE8zTGg/KTIzZktlYlAw bAorekBafGVWXm9HPj85OyZ9Zj97bEYzYSRIYHJQXzxYT3kzQHk8Nz1eXiY8SE5WIzlWWTdpVGZ6 QH1vc2EkS2ZFa3ktCit6bXdIRF94S19FQExwfGBnMUo8dW9qTFdaeGtNbHxDKklzUzF8MVB3Rkk5 PlYtaHlCaHNhWkZafnN2Tl8zPWpjOGIKK3pBSyFffllnfT5QVjAlO2piMXxwTnI7KyhCVFhwfTlH MmN9ND9gaD1zJmc7JVVWN3dFMUFMTio8eWluem50I0BZZworem80dHBRdkYhKzZJaEl9fVVNXncw YkRhPDBHNWRORiRJXyZXZzZZKVkpa2I7UUtoXz5kYENHOGk+SGM0PGBqXnE/Cit6STlpbTVkSSNT I2prPTNvQUN0K3k+fkYjUGJeT0lUdEUwXn5AZnRYQVdBMWYpbFh6WEtIVjFnNmp3XnxtT0JmdzUK K3pUNXN7dVB2bSYodV8/VGN0QG0zVWZpRkdyKj44Vlg5c1A2TUZSNENic0k1NHh6YTs5bzx2VyNj dH5+UzFGS2lvdworelEpKEZibXVpREJwODJRYEFEJTJWb0o7cyZ1V1Myekk7Kk92eSpQamBIR0he dHVyPHFjPiZrT19JamY5RGRjVGVJCit6JSEoZmNUVVU7ckx6T1M2Plh0ey1oaCtCejQtbHRJcis2 WHVfYHErYjVoc14wOGJ5d0BfP1gqQmprZkJYdmJ9ZWsKK3o7bmhhQDx4JVVjTSE9VUV5fCohI00o TmZWSSZaTX5Vflk+dzJESH5KbzVIVXZ1WHc2LSklQkRnMmteMVIme01CNQorenRaPng3dDtsd2Jx MngjY0VBTiZVX0JWYX5LR002WClidnJAbzFsLVBlIWNVOHtkKkk9NCVVcT9UZ20hcEVwZldzCit6 OXUoayZrQVNuNUlKdCFCcXhDLWd4VlVjeGUhYjJxT2RxWHBFO1QqXmVEcU8rVSFkeVdrI2dXQFFN aHJhO0Y+T2QKK3o8V1k2bCtrPj0/Xy1MdXc7bE8+cSlNeSo9dWBreHBJVUsxOT91UzAmLTsqQ3Yp czYzbSsqQnZ5e1krQzBMZzR6Yworel5UK2dPYzw7dkdYUk9Zc3g3MnhYRTdlWnY+ZGNVZ0VBZU9n QFVoTVZGTTx2OzJ8dmo3O3ZwdVohdTZsQE4jOWlzCit6XmZ3M2FyT3VOfGl9LVohbm97TmNCXzQj JXF4akQ5T21SKyZtemYmOCFRcHl4ZC0ldWxQZEBFeSRGZioyTTBAPEMKK3p1bGc+OSQ1cHpxZz9e SWh5WE09Nyg8TGtweG1GMHkrbFo0KEl6QiFncW1VWVo+Qkdrd3Q8P0JTb20yOUdNeGFeKQorejtM bzc5eFVrMDBAOWteR0dWckN3Ji1Zakw/P3w4RlhpPGQ1YXhEQWote29LUVR+JHAwOTlUbl9XNFV9 bHU8IUEqCit6eHNRcXl1Uz1YOTtGVilCUFB8O2clKWh0IUBiVFMtKU09Wn1EfHNVbHZDeWYodEJ1 bT5nbX5GMSl7TylCUWx9SDEKK3pSYG9CVlEjZWBfcDtPVE5ERjBZSGV9MCk2WWZicFFJUT82QD09 Yk11JkZ4c2JsUT47VWlVWFdkISNqelNPUEkwTgorelZTJllXQFZscGF5JSN4a1hiJCNXdGZ2PiVo c1dCaXptfVA/MjdJYUV0WWQ/SGU8YTc2VSEmc3BlSCM0LWUoeko9Cit6Qk8jeVMtb2RgKCVRWExY aVBOUWdJaHIpNSlXe2BIRUAzcUtsQEglQklqUXZ1PG4kfEBRP30jR3VUbEx1PHlJcTgKK3pmMz5h entROEBNWF9Sak17bTYpTihfWVRQI05YTmwteT03TnxCa1FiO2M3R2cyMHJIQk45cDxaJTJLciFk akBJMworemZ1aTF9U0hkQFBJc1lFfU5WVn0xX207I3lpdXhfPHRKWlM0em9oRmt4TXBYWGY4UzE9 RUA2NDBJbmhWS2AzaUF6Cit6TnlvPj5WLSloNS1EISkoWi1TPVVNfVU4UlNAYHdvd091WVNlSDhm YzUjYUI+Um5AO0Upc0xlXjV0PlJMQHoxflMKK3pLSXtUQnw4NnFCOD8xWjtlMUJRMF43O1FYfEJp T08hMDMjNk9QeW00cy00Mmp6bn04cUo0P31ibF4zQzE0aUo5VworemBTO3U5SEQ+K3xlNXJHZmpZ YE5XNX0yYiE1anl7bl5ZMnNvKk87KiFVeVN4aD4/Z0F+c2VnLS0/TzR0PHxESCNqCit6RSt4JFlQ TzAoWiNLfFNoU3BGbWxLSVYxTXhhMHdxUX1UZ0UjOUQoR3ttRVcyZ010Z3MzRi0mZG42WWZAdWRY LTEKK3pmOVpEJGZYNlhNaT15I1UtQW51RC19UXJQJT17YUQzaUVIbl9sVX1lPWZVYWIhdG1Rez1I R3VKVVlHRFZ6JDxsWAorenc/IXFBaip+d2dxbVo3UFM4NEd2KX0+QkUydFVZSlkreTFmdGtaeX1Z c354YF87TV4+SnQqSGh6bDxJXlNgP3ZFCit6KEUwYkI4aiRPPWM1QlY1SXJOJFgqOHIqRz9uP0RM MDJPbyZOMiZySCZ1T0dIYGN4Z3h6YzNvamJQRz1CYURBaT4KK3pBNXkoc2RZPVJKa34keE14QHhD JWIpdF9hKSVuekJpKk0lKGlKcDU2O1JuJXEyOXJfWWNBWW5UZipGcyVtcFZXRworemJnPWJUZDJS S04kMWwmQlY4XjRHRDxwZDZmTSZKK2RLbEdfQlVPUXAqXkl+Mk1vY2d8SWh0NE1HPj4/PnF+cWt7 Cit2RiQmb2FfV0FMfUpSTHNNe340ODZhI0pIdkp6andDKlF2KjdzfXRANnEpcnotN2ZkSnJ7e3tN Z3p2X05xCisKK2xpdGVyYWwgMAorSGNtVj9kMDAwMDEKKworZGlmZiAtLWdpdCBhL3Rlc3RzL2Vn aXNfZXR1OTA1L2N1c3RvbS5weSBiL3Rlc3RzL2VnaXNfZXR1OTA1L2N1c3RvbS5weQorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi5hODQyZjI2ZQorLS0tIC9kZXYvbnVsbAor KysrIGIvdGVzdHMvZWdpc19ldHU5MDUvY3VzdG9tLnB5CitAQCAtMCwwICsxLDEwOSBAQAorKyMh L3Vzci9iaW4vcHl0aG9uMworK2ltcG9ydCB0cmFjZWJhY2sKKysKKytpbXBvcnQgc3lzCisraW1w b3J0IGdpCisrCisrZ2kucmVxdWlyZV92ZXJzaW9uKCdGUHJpbnQnLCAnMi4wJykKKytmcm9tIGdp LnJlcG9zaXRvcnkgaW1wb3J0IEZQcmludCwgR0xpYgorKworKyMgRXhpdCB3aXRoIGVycm9yIG9u IGFueSBleGNlcHRpb24sIGluY2x1ZGVkIHRob3NlIGhhcHBlbmluZyBpbiBhc3luYyBjYWxsYmFj a3MKKytzeXMuZXhjZXB0aG9vayA9IGxhbWJkYSAqYXJnczogKHRyYWNlYmFjay5wcmludF9leGNl cHRpb24oKmFyZ3MpLCBzeXMuZXhpdCgxKSkKKysKKytjdHggPSBHTGliLm1haW5fY29udGV4dF9k ZWZhdWx0KCkKKysKKytjID0gRlByaW50LkNvbnRleHQoKQorK2MuZW51bWVyYXRlKCkKKytkZXZp Y2VzID0gYy5nZXRfZGV2aWNlcygpCisrCisrZCA9IGRldmljZXNbMF0KKytkZWwgZGV2aWNlcwor KworK2Fzc2VydCBkLmdldF9kcml2ZXIoKSA9PSAiZWdpc19ldHU5MDUiCisrYXNzZXJ0IG5vdCBk Lmhhc19mZWF0dXJlKEZQcmludC5EZXZpY2VGZWF0dXJlLkNBUFRVUkUpCisrYXNzZXJ0IGQuaGFz X2ZlYXR1cmUoRlByaW50LkRldmljZUZlYXR1cmUuSURFTlRJRlkpCisrYXNzZXJ0IGQuaGFzX2Zl YXR1cmUoRlByaW50LkRldmljZUZlYXR1cmUuVkVSSUZZKQorK2Fzc2VydCBkLmhhc19mZWF0dXJl KEZQcmludC5EZXZpY2VGZWF0dXJlLlNUT1JBR0UpCisrYXNzZXJ0IGQuaGFzX2ZlYXR1cmUoRlBy aW50LkRldmljZUZlYXR1cmUuU1RPUkFHRV9MSVNUKQorK2Fzc2VydCBkLmhhc19mZWF0dXJlKEZQ cmludC5EZXZpY2VGZWF0dXJlLlNUT1JBR0VfREVMRVRFKQorK2Fzc2VydCBkLmhhc19mZWF0dXJl KEZQcmludC5EZXZpY2VGZWF0dXJlLlNUT1JBR0VfQ0xFQVIpCisrCisrZC5vcGVuX3N5bmMoKQor KworK2RlZiBlbnJvbGxfcHJvZ3Jlc3MoKmFyZ3MpOgorKyAgICBhc3NlcnQgZC5nZXRfZmluZ2Vy X3N0YXR1cygpID09IEZQcmludC5GaW5nZXJTdGF0dXNGbGFncy5QUkVTRU5UCisrICAgIHByaW50 KCJlbnJvbGwgcHJvZ3Jlc3Mgc3RhZ2U6ICIgKyAgc3RyKGFyZ3NbMV0pKQorKworK2RlZiBpZGVu dGlmeV9kb25lKGRldiwgcmVzKToKKysgICAgZ2xvYmFsIGlkZW50aWZpZWQKKysgICAgaWRlbnRp ZmllZCA9IFRydWUKKysgICAgaWRlbnRpZnlfbWF0Y2gsIGlkZW50aWZ5X3ByaW50ID0gZGV2Lmlk ZW50aWZ5X2ZpbmlzaChyZXMpCisrICAgIHByaW50KCJNQVRDSCBGT1VORCEiIGlmIGlkZW50aWZ5 X21hdGNoIGVsc2UgIk5PIE1BVENIIEZPVU5EIikKKysgICAgYXNzZXJ0IGlkZW50aWZ5X21hdGNo LmVxdWFsKGlkZW50aWZ5X3ByaW50KQorKworKyMgTGlzdAorK3ByaW50KCItLS0gTElTVElORyAt LS0iKQorK3N0b3JlZCA9IGQubGlzdF9wcmludHNfc3luYygpCisrcHJpbnRzMSA9IGxlbihzdG9y ZWQpCisrcHJpbnQoZiItLS0gTElTVCBET05FOiBGb3VuZCB7cHJpbnRzMX0gcHJpbnRzIGJlZm9y ZSBlbnJvbGwtLS0iKQorKworKyMgRW5yb2xsCisrcHJpbnQoIi0tLSBFTlJPTExJTkcgLS0tIikK Kyt0ZW1wbGF0ZSA9IEZQcmludC5QcmludC5uZXcoZCkKKysKKythc3NlcnQgZC5nZXRfZmluZ2Vy X3N0YXR1cygpID09IEZQcmludC5GaW5nZXJTdGF0dXNGbGFncy5OT05FCisrcCA9IGQuZW5yb2xs X3N5bmModGVtcGxhdGUsIE5vbmUsIGVucm9sbF9wcm9ncmVzcywgTm9uZSkKKythc3NlcnQgZC5n ZXRfZmluZ2VyX3N0YXR1cygpID09IEZQcmludC5GaW5nZXJTdGF0dXNGbGFncy5OT05FCisrcHJp bnQoIi0tLSBFTlJPTEwgRE9ORSAtLS0iKQorK2RlbCB0ZW1wbGF0ZQorKworKyMgTGlzdAorK3By aW50KCItLS0gTElTVElORyAtLS0iKQorK3N0b3JlZCA9IGQubGlzdF9wcmludHNfc3luYygpCisr cHJpbnRzMiA9IGxlbihzdG9yZWQpCisrcHJpbnQoZiItLS0gTElTVCBET05FOiBGb3VuZCB7cHJp bnRzMn0gcHJpbnRzIGFmdGVyIGVucm9sbC0tLSIpCisrYXNzZXJ0IChwcmludHMyIC0gcHJpbnRz MSkgPT0gMQorKworKyMgVmVyaWZ5CisrcHJpbnQoIi0tLSBWRVJJRllJTkcgLS0tIikKKythc3Nl cnQgZC5nZXRfZmluZ2VyX3N0YXR1cygpID09IEZQcmludC5GaW5nZXJTdGF0dXNGbGFncy5OT05F CisrdmVyaWZ5X3JlcywgdmVyaWZ5X3ByaW50ID0gZC52ZXJpZnlfc3luYyhwKQorK2Fzc2VydCBk LmdldF9maW5nZXJfc3RhdHVzKCkgPT0gRlByaW50LkZpbmdlclN0YXR1c0ZsYWdzLk5PTkUKKytw cmludChmIi0tLSBWRVJJRlkgRE9ORTogUmVzdWx0IHt2ZXJpZnlfcmVzfSAtLS0iKQorKworKyMg SWRlbnRpZnkKKytwcmludCgiLS0tIEFTWU5DIElERU5USUZZSU5HIC0tLSIpCisraWRlbnRpZmll ZCA9IEZhbHNlCisrZGVzZXJpYWxpemVkX3ByaW50cyA9IFtdCisrZm9yIHAgaW4gc3RvcmVkOgor KyAgICBkZXNlcmlhbGl6ZWRfcHJpbnRzLmFwcGVuZChGUHJpbnQuUHJpbnQuZGVzZXJpYWxpemUo cC5zZXJpYWxpemUoKSkpCisrICAgIGFzc2VydCBkZXNlcmlhbGl6ZWRfcHJpbnRzWy0xXS5lcXVh bChwKQorKworK2QuaWRlbnRpZnkoZGVzZXJpYWxpemVkX3ByaW50cywgY2FsbGJhY2s9aWRlbnRp ZnlfZG9uZSkKKytkZWwgZGVzZXJpYWxpemVkX3ByaW50cworKworK3doaWxlIG5vdCBpZGVudGlm aWVkOgorKyAgICBjdHguaXRlcmF0aW9uKFRydWUpCisrcHJpbnQoIi0tLSBJREVOVElGWSBET05F IC0tLSIpCisrCisrIyBEZWxldGUKKytwcmludCgiLS0tIERFTEVUSU5HIC0tLSIpCisrcF90b19k ZWxldGUgPSBuZXh0KChzcCBmb3Igc3AgaW4gc3RvcmVkIGlmIHNwLmVxdWFsKHApKSwgTm9uZSkK KytpZiBwX3RvX2RlbGV0ZToKKysgICAgZC5kZWxldGVfcHJpbnRfc3luYyhwX3RvX2RlbGV0ZSkK KysgICAgcHJpbnQoIi0tLSBERUxFVEUgRE9ORSAtLS0iKQorK2RlbCBwX3RvX2RlbGV0ZQorK2Rl bCBwCisrCisrIyBMaXN0CisrcHJpbnQoIi0tLSBMSVNUSU5HIC0tLSIpCisrc3RvcmVkID0gZC5s aXN0X3ByaW50c19zeW5jKCkKKytwcmludHMzID0gbGVuKHN0b3JlZCkKKytwcmludChmIi0tLSBM SVNUIERPTkU6IEZvdW5kIHtwcmludHMzfSBwcmludHMgYWZ0ZXIgZGVsZXRpbmctLS0iKQorK2Fz c2VydCAocHJpbnRzMiAtIHByaW50czMpID09IDEKKytkZWwgc3RvcmVkCisrCisrZC5jbG9zZV9z eW5jKCkKKysKKytkZWwgZAorK2RlbCBjCitkaWZmIC0tZ2l0IGEvdGVzdHMvZWdpc19ldHU5MDUv ZGV2aWNlIGIvdGVzdHMvZWdpc19ldHU5MDUvZGV2aWNlCituZXcgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMDAwMDAwMDAuLjRiNzUwYTc5CistLS0gL2Rldi9udWxsCisrKysgYi90ZXN0cy9lZ2lz X2V0dTkwNS9kZXZpY2UKK0BAIC0wLDAgKzEsMzQ4IEBACisrUDogL2RldmljZXMvcGNpMDAwMDow MC8wMDAwOjAwOjA4LjEvMDAwMDowNTowMC40L3VzYjMvMy0zCisrTjogYnVzL3VzYi8wMDMvMDAy PTEyMDEwMDAyRkYwMDAwNDA3QTFDQUUwNTQyNTMwMTAyMDMwMTA5MDIyNzAwMDEwMTAwQTAzMjA5 MDQwMDAwMDNGRkZGRkYwMDA3MDU4MTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1ODMwMzQwMDAw MQorK0U6IEJVU05VTT0wMDMKKytFOiBERVZOQU1FPS9kZXYvYnVzL3VzYi8wMDMvMDAyCisrRTog REVWTlVNPTAwMgorK0U6IERFVlRZUEU9dXNiX2RldmljZQorK0U6IERSSVZFUj11c2IKKytFOiBJ RF9CVVM9dXNiCisrRTogSURfTU9ERUw9RVRVOTA1QXh4LUUKKytFOiBJRF9NT0RFTF9FTkM9RVRV OTA1QXh4LUUKKytFOiBJRF9NT0RFTF9JRD0wNWFlCisrRTogSURfUEFUSD1wY2ktMDAwMDowNTow MC40LXVzYi0wOjMKKytFOiBJRF9QQVRIX1RBRz1wY2ktMDAwMF8wNV8wMF80LXVzYi0wXzMKKytF OiBJRF9QQVRIX1dJVEhfVVNCX1JFVklTSU9OPXBjaS0wMDAwOjA1OjAwLjQtdXNidjItMDozCisr RTogSURfUkVWSVNJT049NTM0MgorK0U6IElEX1NFUklBTD1FR0lTX0VUVTkwNUF4eC1FXzBBODYw NlBOQTM1NworK0U6IElEX1NFUklBTF9TSE9SVD0wQTg2MDZQTkEzNTcKKytFOiBJRF9VU0JfSU5U RVJGQUNFUz06ZmZmZmZmOgorK0U6IElEX1VTQl9NT0RFTD1FVFU5MDVBeHgtRQorK0U6IElEX1VT Ql9NT0RFTF9FTkM9RVRVOTA1QXh4LUUKKytFOiBJRF9VU0JfTU9ERUxfSUQ9MDVhZQorK0U6IElE X1VTQl9SRVZJU0lPTj01MzQyCisrRTogSURfVVNCX1NFUklBTD1FR0lTX0VUVTkwNUF4eC1FXzBB ODYwNlBOQTM1NworK0U6IElEX1VTQl9TRVJJQUxfU0hPUlQ9MEE4NjA2UE5BMzU3CisrRTogSURf VVNCX1ZFTkRPUj1FR0lTCisrRTogSURfVVNCX1ZFTkRPUl9FTkM9RUdJUworK0U6IElEX1VTQl9W RU5ET1JfSUQ9MWM3YQorK0U6IElEX1ZFTkRPUj1FR0lTCisrRTogSURfVkVORE9SX0VOQz1FR0lT CisrRTogSURfVkVORE9SX0ZST01fREFUQUJBU0U9TGlnaFR1bmluZyBUZWNobm9sb2d5IEluYy4K KytFOiBJRF9WRU5ET1JfSUQ9MWM3YQorK0U6IE1BSk9SPTE4OQorK0U6IE1JTk9SPTI1NworK0U6 IFBST0RVQ1Q9MWM3YS81YWUvNTM0MgorK0U6IFNVQlNZU1RFTT11c2IKKytFOiBUWVBFPTI1NS8w LzAKKytBOiBhdXRob3JpemVkPTFcbgorK0E6IGF2b2lkX3Jlc2V0X3F1aXJrPTBcbgorK0E6IGJD b25maWd1cmF0aW9uVmFsdWU9MVxuCisrQTogYkRldmljZUNsYXNzPWZmXG4KKytBOiBiRGV2aWNl UHJvdG9jb2w9MDBcbgorK0E6IGJEZXZpY2VTdWJDbGFzcz0wMFxuCisrQTogYk1heFBhY2tldFNp emUwPTY0XG4KKytBOiBiTWF4UG93ZXI9MTAwbUFcbgorK0E6IGJOdW1Db25maWd1cmF0aW9ucz0x XG4KKytBOiBiTnVtSW50ZXJmYWNlcz0gMVxuCisrQTogYmNkRGV2aWNlPTUzNDJcbgorK0E6IGJt QXR0cmlidXRlcz1hMFxuCisrQTogYnVzbnVtPTNcbgorK0E6IGNvbmZpZ3VyYXRpb249CisrSDog ZGVzY3JpcHRvcnM9MTIwMTAwMDJGRjAwMDA0MDdBMUNBRTA1NDI1MzAxMDIwMzAxMDkwMjI3MDAw MTAxMDBBMDMyMDkwNDAwMDAwM0ZGRkZGRjAwMDcwNTgxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3 MDU4MzAzNDAwMDAxCisrQTogZGV2PTE4OToyNTdcbgorK0E6IGRldm51bT0yXG4KKytBOiBkZXZw YXRoPTNcbgorK0w6IGRyaXZlcj0uLi8uLi8uLi8uLi8uLi8uLi9idXMvdXNiL2RyaXZlcnMvdXNi CisrTDogZmlybXdhcmVfbm9kZT0uLi8uLi8uLi8uLi8uLi9MTlhTWVNUTTowMC9MTlhTWUJVUzow MC9QTlAwQTA4OjAwL2RldmljZTowYy9kZXZpY2U6MWIvZGV2aWNlOjFjL2RldmljZToxZgorK0E6 IGlkUHJvZHVjdD0wNWFlXG4KKytBOiBpZFZlbmRvcj0xYzdhXG4KKytBOiBsdG1fY2FwYWJsZT1u b1xuCisrQTogbWFudWZhY3R1cmVyPUVHSVNcbgorK0E6IG1heGNoaWxkPTBcbgorK0E6IHBoeXNp Y2FsX2xvY2F0aW9uL2RvY2s9bm9cbgorK0E6IHBoeXNpY2FsX2xvY2F0aW9uL2hvcml6b250YWxf cG9zaXRpb249bGVmdFxuCisrQTogcGh5c2ljYWxfbG9jYXRpb24vbGlkPW5vXG4KKytBOiBwaHlz aWNhbF9sb2NhdGlvbi9wYW5lbD10b3BcbgorK0E6IHBoeXNpY2FsX2xvY2F0aW9uL3ZlcnRpY2Fs X3Bvc2l0aW9uPXVwcGVyXG4KKytMOiBwb3J0PS4uLzMtMDoxLjAvdXNiMy1wb3J0MworK0E6IHBv d2VyL2FjdGl2ZV9kdXJhdGlvbj05MzEzNjc1OFxuCisrQTogcG93ZXIvYXN5bmM9ZW5hYmxlZFxu CisrQTogcG93ZXIvYXV0b3N1c3BlbmQ9MlxuCisrQTogcG93ZXIvYXV0b3N1c3BlbmRfZGVsYXlf bXM9MjAwMFxuCisrQTogcG93ZXIvY29ubmVjdGVkX2R1cmF0aW9uPTkzMTM5NjIxXG4KKytBOiBw b3dlci9jb250cm9sPW9uXG4KKytBOiBwb3dlci9sZXZlbD1vblxuCisrQTogcG93ZXIvcGVyc2lz dD0xXG4KKytBOiBwb3dlci9ydW50aW1lX2FjdGl2ZV9raWRzPTBcbgorK0E6IHBvd2VyL3J1bnRp bWVfYWN0aXZlX3RpbWU9OTMxMzg4MjZcbgorK0E6IHBvd2VyL3J1bnRpbWVfZW5hYmxlZD1mb3Ji aWRkZW5cbgorK0E6IHBvd2VyL3J1bnRpbWVfc3RhdHVzPWFjdGl2ZVxuCisrQTogcG93ZXIvcnVu dGltZV9zdXNwZW5kZWRfdGltZT0wXG4KKytBOiBwb3dlci9ydW50aW1lX3VzYWdlPTFcbgorK0E6 IHBvd2VyL3dha2V1cD1kaXNhYmxlZFxuCisrQTogcG93ZXIvd2FrZXVwX2Fib3J0X2NvdW50PVxu CisrQTogcG93ZXIvd2FrZXVwX2FjdGl2ZT1cbgorK0E6IHBvd2VyL3dha2V1cF9hY3RpdmVfY291 bnQ9XG4KKytBOiBwb3dlci93YWtldXBfY291bnQ9XG4KKytBOiBwb3dlci93YWtldXBfZXhwaXJl X2NvdW50PVxuCisrQTogcG93ZXIvd2FrZXVwX2xhc3RfdGltZV9tcz1cbgorK0E6IHBvd2VyL3dh a2V1cF9tYXhfdGltZV9tcz1cbgorK0E6IHBvd2VyL3dha2V1cF90b3RhbF90aW1lX21zPVxuCisr QTogcHJvZHVjdD1FVFU5MDVBeHgtRVxuCisrQTogcXVpcmtzPTB4MFxuCisrQTogcmVtb3ZhYmxl PWZpeGVkXG4KKytBOiByeF9sYW5lcz0xXG4KKytBOiBzZXJpYWw9MEE4NjA2UE5BMzU3XG4KKytB OiBzcGVlZD0xMlxuCisrQTogdHhfbGFuZXM9MVxuCisrQTogdXJibnVtPTU4NTVcbgorK0E6IHZl cnNpb249IDIuMDBcbgorKworK1A6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAw MDA6MDU6MDAuNC91c2IzCisrTjogYnVzL3VzYi8wMDMvMDAxPTEyMDEwMDAyMDkwMDAxNDA2QjFE MDIwMDE0MDYwMzAyMDEwMTA5MDIxOTAwMDEwMTAwRTAwMDA5MDQwMDAwMDEwOTAwMDAwMDA3MDU4 MTAzMDQwMDBDCisrRTogQlVTTlVNPTAwMworK0U6IENVUlJFTlRfVEFHUz06c2VhdDoKKytFOiBE RVZOQU1FPS9kZXYvYnVzL3VzYi8wMDMvMDAxCisrRTogREVWTlVNPTAwMQorK0U6IERFVlRZUEU9 dXNiX2RldmljZQorK0U6IERSSVZFUj11c2IKKytFOiBJRF9BVVRPU1VTUEVORD0xCisrRTogSURf QlVTPXVzYgorK0U6IElEX0ZPUl9TRUFUPXVzYi1wY2ktMDAwMF8wNV8wMF80CisrRTogSURfTU9E RUw9eEhDSV9Ib3N0X0NvbnRyb2xsZXIKKytFOiBJRF9NT0RFTF9FTkM9eEhDSVx4MjBIb3N0XHgy MENvbnRyb2xsZXIKKytFOiBJRF9NT0RFTF9GUk9NX0RBVEFCQVNFPTIuMCByb290IGh1YgorK0U6 IElEX01PREVMX0lEPTAwMDIKKytFOiBJRF9QQVRIPXBjaS0wMDAwOjA1OjAwLjQKKytFOiBJRF9Q QVRIX1RBRz1wY2ktMDAwMF8wNV8wMF80CisrRTogSURfUkVWSVNJT049MDYxNAorK0U6IElEX1NF UklBTD1MaW51eF82LjE0LjAtMzctZ2VuZXJpY194aGNpLWhjZF94SENJX0hvc3RfQ29udHJvbGxl cl8wMDAwOjA1OjAwLjQKKytFOiBJRF9TRVJJQUxfU0hPUlQ9MDAwMDowNTowMC40CisrRTogSURf VVNCX0lOVEVSRkFDRVM9OjA5MDAwMDoKKytFOiBJRF9VU0JfTU9ERUw9eEhDSV9Ib3N0X0NvbnRy b2xsZXIKKytFOiBJRF9VU0JfTU9ERUxfRU5DPXhIQ0lceDIwSG9zdFx4MjBDb250cm9sbGVyCisr RTogSURfVVNCX01PREVMX0lEPTAwMDIKKytFOiBJRF9VU0JfUkVWSVNJT049MDYxNAorK0U6IElE X1VTQl9TRVJJQUw9TGludXhfNi4xNC4wLTM3LWdlbmVyaWNfeGhjaS1oY2RfeEhDSV9Ib3N0X0Nv bnRyb2xsZXJfMDAwMDowNTowMC40CisrRTogSURfVVNCX1NFUklBTF9TSE9SVD0wMDAwOjA1OjAw LjQKKytFOiBJRF9VU0JfVkVORE9SPUxpbnV4XzYuMTQuMC0zNy1nZW5lcmljX3hoY2ktaGNkCisr RTogSURfVVNCX1ZFTkRPUl9FTkM9TGludXhceDIwNi4xNC4wLTM3LWdlbmVyaWNceDIweGhjaS1o Y2QKKytFOiBJRF9VU0JfVkVORE9SX0lEPTFkNmIKKytFOiBJRF9WRU5ET1I9TGludXhfNi4xNC4w LTM3LWdlbmVyaWNfeGhjaS1oY2QKKytFOiBJRF9WRU5ET1JfRU5DPUxpbnV4XHgyMDYuMTQuMC0z Ny1nZW5lcmljXHgyMHhoY2ktaGNkCisrRTogSURfVkVORE9SX0ZST01fREFUQUJBU0U9TGludXgg Rm91bmRhdGlvbgorK0U6IElEX1ZFTkRPUl9JRD0xZDZiCisrRTogTUFKT1I9MTg5CisrRTogTUlO T1I9MjU2CisrRTogUFJPRFVDVD0xZDZiLzIvNjE0CisrRTogU1VCU1lTVEVNPXVzYgorK0U6IFRB R1M9OnNlYXQ6CisrRTogVFlQRT05LzAvMQorK0E6IGF1dGhvcml6ZWQ9MVxuCisrQTogYXV0aG9y aXplZF9kZWZhdWx0PTFcbgorK0E6IGF2b2lkX3Jlc2V0X3F1aXJrPTBcbgorK0E6IGJDb25maWd1 cmF0aW9uVmFsdWU9MVxuCisrQTogYkRldmljZUNsYXNzPTA5XG4KKytBOiBiRGV2aWNlUHJvdG9j b2w9MDFcbgorK0E6IGJEZXZpY2VTdWJDbGFzcz0wMFxuCisrQTogYk1heFBhY2tldFNpemUwPTY0 XG4KKytBOiBiTWF4UG93ZXI9MG1BXG4KKytBOiBiTnVtQ29uZmlndXJhdGlvbnM9MVxuCisrQTog Yk51bUludGVyZmFjZXM9IDFcbgorK0E6IGJjZERldmljZT0wNjE0XG4KKytBOiBibUF0dHJpYnV0 ZXM9ZTBcbgorK0E6IGJ1c251bT0zXG4KKytBOiBjb25maWd1cmF0aW9uPQorK0g6IGRlc2NyaXB0 b3JzPTEyMDEwMDAyMDkwMDAxNDA2QjFEMDIwMDE0MDYwMzAyMDEwMTA5MDIxOTAwMDEwMTAwRTAw MDA5MDQwMDAwMDEwOTAwMDAwMDA3MDU4MTAzMDQwMDBDCisrQTogZGV2PTE4OToyNTZcbgorK0E6 IGRldm51bT0xXG4KKytBOiBkZXZwYXRoPTBcbgorK0w6IGRyaXZlcj0uLi8uLi8uLi8uLi8uLi9i dXMvdXNiL2RyaXZlcnMvdXNiCisrTDogZmlybXdhcmVfbm9kZT0uLi8uLi8uLi8uLi9MTlhTWVNU TTowMC9MTlhTWUJVUzowMC9QTlAwQTA4OjAwL2RldmljZTowYy9kZXZpY2U6MWIvZGV2aWNlOjFj CisrQTogaWRQcm9kdWN0PTAwMDJcbgorK0E6IGlkVmVuZG9yPTFkNmJcbgorK0E6IGludGVyZmFj ZV9hdXRob3JpemVkX2RlZmF1bHQ9MVxuCisrQTogbHRtX2NhcGFibGU9bm9cbgorK0E6IG1hbnVm YWN0dXJlcj1MaW51eCA2LjE0LjAtMzctZ2VuZXJpYyB4aGNpLWhjZFxuCisrQTogbWF4Y2hpbGQ9 NFxuCisrQTogcG93ZXIvYWN0aXZlX2R1cmF0aW9uPTkzMTM3OTkzXG4KKytBOiBwb3dlci9hc3lu Yz1lbmFibGVkXG4KKytBOiBwb3dlci9hdXRvc3VzcGVuZD0wXG4KKytBOiBwb3dlci9hdXRvc3Vz cGVuZF9kZWxheV9tcz0wXG4KKytBOiBwb3dlci9jb25uZWN0ZWRfZHVyYXRpb249OTMxMzk3NThc bgorK0E6IHBvd2VyL2NvbnRyb2w9YXV0b1xuCisrQTogcG93ZXIvbGV2ZWw9YXV0b1xuCisrQTog cG93ZXIvcnVudGltZV9hY3RpdmVfa2lkcz0xXG4KKytBOiBwb3dlci9ydW50aW1lX2FjdGl2ZV90 aW1lPTkzMTM5MjA2XG4KKytBOiBwb3dlci9ydW50aW1lX2VuYWJsZWQ9ZW5hYmxlZFxuCisrQTog cG93ZXIvcnVudGltZV9zdGF0dXM9YWN0aXZlXG4KKytBOiBwb3dlci9ydW50aW1lX3N1c3BlbmRl ZF90aW1lPTBcbgorK0E6IHBvd2VyL3J1bnRpbWVfdXNhZ2U9MFxuCisrQTogcG93ZXIvd2FrZXVw PWRpc2FibGVkXG4KKytBOiBwb3dlci93YWtldXBfYWJvcnRfY291bnQ9XG4KKytBOiBwb3dlci93 YWtldXBfYWN0aXZlPVxuCisrQTogcG93ZXIvd2FrZXVwX2FjdGl2ZV9jb3VudD1cbgorK0E6IHBv d2VyL3dha2V1cF9jb3VudD1cbgorK0E6IHBvd2VyL3dha2V1cF9leHBpcmVfY291bnQ9XG4KKytB OiBwb3dlci93YWtldXBfbGFzdF90aW1lX21zPVxuCisrQTogcG93ZXIvd2FrZXVwX21heF90aW1l X21zPVxuCisrQTogcG93ZXIvd2FrZXVwX3RvdGFsX3RpbWVfbXM9XG4KKytBOiBwcm9kdWN0PXhI Q0kgSG9zdCBDb250cm9sbGVyXG4KKytBOiBxdWlya3M9MHgwXG4KKytBOiByZW1vdmFibGU9dW5r bm93blxuCisrQTogcnhfbGFuZXM9MVxuCisrQTogc2VyaWFsPTAwMDA6MDU6MDAuNFxuCisrQTog c3BlZWQ9NDgwXG4KKytBOiB0eF9sYW5lcz0xXG4KKytBOiB1cmJudW09OTg5XG4KKytBOiB2ZXJz aW9uPSAyLjAwXG4KKysKKytQOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDguMS8wMDAw OjA1OjAwLjQKKytFOiBEUklWRVI9eGhjaV9oY2QKKytFOiBJRF9NT0RFTF9GUk9NX0RBVEFCQVNF PVJlbm9pci9DZXphbm5lIFVTQiAzLjEKKytFOiBJRF9QQVRIPXBjaS0wMDAwOjA1OjAwLjQKKytF OiBJRF9QQVRIX1RBRz1wY2ktMDAwMF8wNV8wMF80CisrRTogSURfUENJX0NMQVNTX0ZST01fREFU QUJBU0U9U2VyaWFsIGJ1cyBjb250cm9sbGVyCisrRTogSURfUENJX0lOVEVSRkFDRV9GUk9NX0RB VEFCQVNFPVhIQ0kKKytFOiBJRF9QQ0lfU1VCQ0xBU1NfRlJPTV9EQVRBQkFTRT1VU0IgY29udHJv bGxlcgorK0U6IElEX1ZFTkRPUl9GUk9NX0RBVEFCQVNFPUFkdmFuY2VkIE1pY3JvIERldmljZXMs IEluYy4gW0FNRF0KKytFOiBNT0RBTElBUz1wY2k6djAwMDAxMDIyZDAwMDAxNjM5c3YwMDAwMTdB QXNkMDAwMDM4MkZiYzBDc2MwM2kzMAorK0U6IFBDSV9DTEFTUz1DMDMzMAorK0U6IFBDSV9JRD0x MDIyOjE2MzkKKytFOiBQQ0lfU0xPVF9OQU1FPTAwMDA6MDU6MDAuNAorK0U6IFBDSV9TVUJTWVNf SUQ9MTdBQTozODJGCisrRTogU1VCU1lTVEVNPXBjaQorK0E6IGFyaV9lbmFibGVkPTBcbgorK0E6 IGJyb2tlbl9wYXJpdHlfc3RhdHVzPTBcbgorK0E6IGNsYXNzPTB4MGMwMzMwXG4KKytIOiBjb25m aWc9MjIxMDM5MTYwNzA0MTAwMDAwMzAwMzBDMTAwMDgwMDAwNDAwNDBEMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFBMTcyRjM4MDAwMDAwMDA0ODAwMDAw MDAwMDAwMDAwRkYwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1MDA4MDBBQTE3MkYzODAxNjQwM0M4 MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzEyMDAwMDAxMEEwMDIwMEExOEYwMDAwMTAyOTAwMDAw MzBENDAwMDQwMDAwMzExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRjAwNzEwMDAw MDAwMDAwMUUwMDgwMDEwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwNUMwODYwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTEwMDA3ODAwMEUw MEYwMDAwRjAwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwQjAwMDEyQTAxMDAwMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwMDAxMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKytBOiBjb25zaXN0 ZW50X2RtYV9tYXNrX2JpdHM9NjRcbgorK0E6IGN1cnJlbnRfbGlua19zcGVlZD04LjAgR1QvcyBQ Q0llXG4KKytBOiBjdXJyZW50X2xpbmtfd2lkdGg9MTZcbgorK0E6IGQzY29sZF9hbGxvd2VkPTFc bgorK0E6IGRiYz1kaXNhYmxlZFxuCisrQTogZGJjX2JJbnRlcmZhY2VQcm90b2NvbD0wMVxuCisr QTogZGJjX2JjZERldmljZT0wMDEwXG4KKytBOiBkYmNfaWRQcm9kdWN0PTAwMTBcbgorK0E6IGRi Y19pZFZlbmRvcj0xZDZiXG4KKytBOiBkYmNfcG9sbF9pbnRlcnZhbF9tcz02NFxuCisrQTogZGV2 aWNlPTB4MTYzOVxuCisrQTogZG1hX21hc2tfYml0cz02NFxuCisrTDogZHJpdmVyPS4uLy4uLy4u Ly4uL2J1cy9wY2kvZHJpdmVycy94aGNpX2hjZAorK0E6IGRyaXZlcl9vdmVycmlkZT0obnVsbClc bgorK0E6IGVuYWJsZT0xXG4KKytMOiBmaXJtd2FyZV9ub2RlPS4uLy4uLy4uL0xOWFNZU1RNOjAw L0xOWFNZQlVTOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjBjL2RldmljZToxYgorK0w6IGlvbW11PS4u Ly4uLzAwMDA6MDA6MDAuMi9pb21tdS9pdmhkMAorK0w6IGlvbW11X2dyb3VwPS4uLy4uLy4uLy4u L2tlcm5lbC9pb21tdV9ncm91cHMvMjAKKytBOiBpcnE9NDRcbgorK0E6IGxpbmsvbDBzX2FzcG09 MFxuCisrQTogbGluay9sMV9hc3BtPTBcbgorK0E6IGxvY2FsX2NwdWxpc3Q9MC0xMVxuCisrQTog bG9jYWxfY3B1cz1mZmZcbgorK0E6IG1heF9saW5rX3NwZWVkPTguMCBHVC9zIFBDSWVcbgorK0E6 IG1heF9saW5rX3dpZHRoPTE2XG4KKytBOiBtb2RhbGlhcz1wY2k6djAwMDAxMDIyZDAwMDAxNjM5 c3YwMDAwMTdBQXNkMDAwMDM4MkZiYzBDc2MwM2kzMFxuCisrQTogbXNpX2J1cz0xXG4KKytBOiBt c2lfaXJxcy80NT1tc2l4XG4KKytBOiBtc2lfaXJxcy80Nj1tc2l4XG4KKytBOiBtc2lfaXJxcy80 Nz1tc2l4XG4KKytBOiBtc2lfaXJxcy80OD1tc2l4XG4KKytBOiBtc2lfaXJxcy80OT1tc2l4XG4K KytBOiBtc2lfaXJxcy81MD1tc2l4XG4KKytBOiBtc2lfaXJxcy81MT1tc2l4XG4KKytBOiBtc2lf aXJxcy81Mj1tc2l4XG4KKytBOiBudW1hX25vZGU9LTFcbgorK0E6IHBvb2xzPXBvb2xpbmZvIC0g MC4xXG5idWZmZXItMjA0OCAgICAgICAgIDAgICAgMCAyMDQ4ICAwXG5idWZmZXItNTEyICAgICAg ICAgIDAgICAgMCAgNTEyICAwXG5idWZmZXItMTI4ICAgICAgICAgIDAgICAgMCAgMTI4ICAwXG5i dWZmZXItMzIgICAgICAgICAgIDAgICAgMCAgIDMyICAwXG54SENJIDFLQiBzdHJlYW0gY3R4IGFy cmF5cyAgICAwICAgIDAgMTAyNCAgMFxueEhDSSAyNTYgYnl0ZSBzdHJlYW0gY3R4IGFycmF5cyAg ICAwICAgIDAgIDI1NiAgMFxueEhDSSBpbnB1dC9vdXRwdXQgY29udGV4dHMgICAgNCAgICA1IDIx MTIgIDVcbnhIQ0kgcmluZyBzZWdtZW50cyAgIDIzICAgMjMgNDA5NiAyM1xuYnVmZmVyLTIwNDgg ICAgICAgICAwICAgIDAgMjA0OCAgMFxuYnVmZmVyLTUxMiAgICAgICAgICAwICAgIDAgIDUxMiAg MFxuYnVmZmVyLTEyOCAgICAgICAgICAwICAgIDAgIDEyOCAgMFxuYnVmZmVyLTMyICAgICAgICAg ICAwICAgIDAgICAzMiAgMFxuCisrQTogcG93ZXIvYXN5bmM9ZW5hYmxlZFxuCisrQTogcG93ZXIv Y29udHJvbD1vblxuCisrQTogcG93ZXIvcnVudGltZV9hY3RpdmVfa2lkcz0xXG4KKytBOiBwb3dl ci9ydW50aW1lX2FjdGl2ZV90aW1lPTkzMTM5NTIzXG4KKytBOiBwb3dlci9ydW50aW1lX2VuYWJs ZWQ9Zm9yYmlkZGVuXG4KKytBOiBwb3dlci9ydW50aW1lX3N0YXR1cz1hY3RpdmVcbgorK0E6IHBv d2VyL3J1bnRpbWVfc3VzcGVuZGVkX3RpbWU9MFxuCisrQTogcG93ZXIvcnVudGltZV91c2FnZT0x XG4KKytBOiBwb3dlci93YWtldXA9ZW5hYmxlZFxuCisrQTogcG93ZXIvd2FrZXVwX2Fib3J0X2Nv dW50PTBcbgorK0E6IHBvd2VyL3dha2V1cF9hY3RpdmU9MFxuCisrQTogcG93ZXIvd2FrZXVwX2Fj dGl2ZV9jb3VudD0wXG4KKytBOiBwb3dlci93YWtldXBfY291bnQ9MFxuCisrQTogcG93ZXIvd2Fr ZXVwX2V4cGlyZV9jb3VudD0wXG4KKytBOiBwb3dlci93YWtldXBfbGFzdF90aW1lX21zPTBcbgor K0E6IHBvd2VyL3dha2V1cF9tYXhfdGltZV9tcz0wXG4KKytBOiBwb3dlci93YWtldXBfdG90YWxf dGltZV9tcz0wXG4KKytBOiBwb3dlcl9zdGF0ZT1EMFxuCisrQTogcmVzZXRfbWV0aG9kPXBtXG4K KytBOiByZXNvdXJjZT0weDAwMDAwMDAwZDA0MDAwMDAgMHgwMDAwMDAwMGQwNGZmZmZmIDB4MDAw MDAwMDAwMDE0MDIwNFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMCAweDAw MDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAgMHgw MDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwIDB4 MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMCAw eDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAg MHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAw IDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAw MCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAw MDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAw MDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAw MDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAw MDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAw MDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuCisrQTogcmV2aXNpb249MHgwMFxuCisrQTogc3Vi c3lzdGVtX2RldmljZT0weDM4MmZcbgorK0E6IHN1YnN5c3RlbV92ZW5kb3I9MHgxN2FhXG4KKytB OiB2ZW5kb3I9MHgxMDIyXG4KKysKKytQOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDgu MQorK0U6IERSSVZFUj1wY2llcG9ydAorK0U6IElEX01PREVMX0ZST01fREFUQUJBU0U9UmVub2ly IEludGVybmFsIFBDSWUgR1BQIEJyaWRnZSB0byBCdXMKKytFOiBJRF9QQVRIPXBjaS0wMDAwOjAw OjA4LjEKKytFOiBJRF9QQVRIX1RBRz1wY2ktMDAwMF8wMF8wOF8xCisrRTogSURfUENJX0NMQVNT X0ZST01fREFUQUJBU0U9QnJpZGdlCisrRTogSURfUENJX0lOVEVSRkFDRV9GUk9NX0RBVEFCQVNF PU5vcm1hbCBkZWNvZGUKKytFOiBJRF9QQ0lfU1VCQ0xBU1NfRlJPTV9EQVRBQkFTRT1QQ0kgYnJp ZGdlCisrRTogSURfVkVORE9SX0ZST01fREFUQUJBU0U9QWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLiBbQU1EXQorK0U6IE1PREFMSUFTPXBjaTp2MDAwMDEwMjJkMDAwMDE2MzVzdjAwMDAxMDIy c2QwMDAwMTYzNWJjMDZzYzA0aTAwCisrRTogUENJX0NMQVNTPTYwNDAwCisrRTogUENJX0lEPTEw MjI6MTYzNQorK0U6IFBDSV9TTE9UX05BTUU9MDAwMDowMDowOC4xCisrRTogUENJX1NVQlNZU19J RD0xMDIyOjE2MzUKKytFOiBTVUJTWVNURU09cGNpCisrQTogYXJpX2VuYWJsZWQ9MFxuCisrQTog YnJva2VuX3Bhcml0eV9zdGF0dXM9MFxuCisrQTogY2xhc3M9MHgwNjA0MDBcbgorK0g6IGNvbmZp Zz0yMjEwMzUxNjA3MDQxMDAwMDAwMDA0MDYxMDAwODEwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MDUw MDExMTEwMDAwMzBEMDYwRDAwMUUwMTFGMEZDMDAwMDAwRkMwMDAwMDAwMDAwMDAwMDUwMDAwMDAw MDAwMDAwMDBGRjAxMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1ODAzQzgw MDAwMDAwMDEwQTA0MjAwMjI4MDAwMDAxMDI5MDAwMDAzMEQ3MDAwNDAwQzAzMzEwMDAwMDAwMDAw MDA0MDAwMTgwMDAxMDAwMDAwMDAwMDAwMDAzMTAwMDAwMDAwMDAxRTAwODAwMTQzMDAxRjAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QzA4MTAwMDAwMEUwRkUwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDAwMDAwMDIyMTAz NTE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDA3Q0EwMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDBCMDAwMTI3MDEwMDAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOTAw MDEyQTAwMDAwMDAwMDAwMDAwMDA3RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3 RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGMDAwMDAwMDAwRDAwMDE0MDVGMDAxRDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1 MDAwMTQxMDEwMDAwODAwMTAwMDA4MDAwMDAwMDAwMjYwMDAxNDQwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGRkZGRkZGRkZGRkZGRkZGRkZG RkZGRkZGRkZGRkZGMjcwMDAxMDAwMDAwMDAwMDM4OUMwMDAwMzg5QzAwMDAzODlDMDAwMDM4OUMw MDAwMzg5QzAwMDAzODlDMDAwMDM4OUMwMDAwMzg5QzAwMDAzODlDMDAwMDM4OUMwMDAwMzg5QzAw MDAzODlDMDAwMDM4OUMwMDAwMzg5QzAwMDAzODlDMDAwMDM4OUMwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorK0E6IGNvbnNpc3Rl bnRfZG1hX21hc2tfYml0cz0zMlxuCisrQTogY3VycmVudF9saW5rX3NwZWVkPTguMCBHVC9zIFBD SWVcbgorK0E6IGN1cnJlbnRfbGlua193aWR0aD0xNlxuCisrQTogZDNjb2xkX2FsbG93ZWQ9MVxu CisrQTogZGV2aWNlPTB4MTYzNVxuCisrQTogZG1hX21hc2tfYml0cz0zMlxuCisrTDogZHJpdmVy PS4uLy4uLy4uL2J1cy9wY2kvZHJpdmVycy9wY2llcG9ydAorK0E6IGRyaXZlcl9vdmVycmlkZT0o bnVsbClcbgorK0E6IGVuYWJsZT0yXG4KKytMOiBmaXJtd2FyZV9ub2RlPS4uLy4uL0xOWFNZU1RN OjAwL0xOWFNZQlVTOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjBjCisrTDogaW9tbXU9Li4vMDAwMDow MDowMC4yL2lvbW11L2l2aGQwCisrTDogaW9tbXVfZ3JvdXA9Li4vLi4vLi4va2VybmVsL2lvbW11 X2dyb3Vwcy84CisrQTogaXJxPTMzXG4KKytBOiBsb2NhbF9jcHVsaXN0PTAtMTFcbgorK0E6IGxv Y2FsX2NwdXM9ZmZmXG4KKytBOiBtYXhfbGlua19zcGVlZD04LjAgR1QvcyBQQ0llXG4KKytBOiBt YXhfbGlua193aWR0aD0xNlxuCisrQTogbW9kYWxpYXM9cGNpOnYwMDAwMTAyMmQwMDAwMTYzNXN2 MDAwMDEwMjJzZDAwMDAxNjM1YmMwNnNjMDRpMDBcbgorK0E6IG1zaV9idXM9MVxuCisrQTogbXNp X2lycXMvMzM9bXNpXG4KKytBOiBudW1hX25vZGU9LTFcbgorK0E6IHBvd2VyL2FzeW5jPWVuYWJs ZWRcbgorK0E6IHBvd2VyL2F1dG9zdXNwZW5kX2RlbGF5X21zPTEwMFxuCisrQTogcG93ZXIvY29u dHJvbD1hdXRvXG4KKytBOiBwb3dlci9ydW50aW1lX2FjdGl2ZV9raWRzPTVcbgorK0E6IHBvd2Vy L3J1bnRpbWVfYWN0aXZlX3RpbWU9OTMxMzk1MzdcbgorK0E6IHBvd2VyL3J1bnRpbWVfZW5hYmxl ZD1lbmFibGVkXG4KKytBOiBwb3dlci9ydW50aW1lX3N0YXR1cz1hY3RpdmVcbgorK0E6IHBvd2Vy L3J1bnRpbWVfc3VzcGVuZGVkX3RpbWU9MFxuCisrQTogcG93ZXIvcnVudGltZV91c2FnZT0wXG4K KytBOiBwb3dlci93YWtldXA9ZGlzYWJsZWRcbgorK0E6IHBvd2VyL3dha2V1cF9hYm9ydF9jb3Vu dD1cbgorK0E6IHBvd2VyL3dha2V1cF9hY3RpdmU9XG4KKytBOiBwb3dlci93YWtldXBfYWN0aXZl X2NvdW50PVxuCisrQTogcG93ZXIvd2FrZXVwX2NvdW50PVxuCisrQTogcG93ZXIvd2FrZXVwX2V4 cGlyZV9jb3VudD1cbgorK0E6IHBvd2VyL3dha2V1cF9sYXN0X3RpbWVfbXM9XG4KKytBOiBwb3dl ci93YWtldXBfbWF4X3RpbWVfbXM9XG4KKytBOiBwb3dlci93YWtldXBfdG90YWxfdGltZV9tcz1c bgorK0E6IHBvd2VyX3N0YXRlPUQwXG4KKytBOiByZXNldF9tZXRob2Q9cG1cbgorK0E6IHJlc291 cmNlPTB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAw MDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAw MDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAw MDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAw MDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAw MDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAw MDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAw MDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAw MDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAw MDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAw MDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAw MDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMCAweDAw MDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAgMHgw MDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDEwMDAgMHgwMDAwMDAwMDAwMDAxZmZmIDB4 MDAwMDAwMDAwMDAwMDEwMVxuMHgwMDAwMDAwMGQwMzAwMDAwIDB4MDAwMDAwMDBkMDZmZmZmZiAw eDAwMDAwMDAwMDAwMDAyMDBcbjB4MDAwMDAwZmNlMDAwMDAwMCAweDAwMDAwMGZjZjAxZmZmZmYg MHgwMDAwMDAwMDAwMTAyMjAxXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAw IDB4MDAwMDAwMDAwMDAwMDAwMFxuCisrQTogcmV2aXNpb249MHgwMFxuCisrQTogc2Vjb25kYXJ5 X2J1c19udW1iZXI9NVxuCisrQTogc3Vib3JkaW5hdGVfYnVzX251bWJlcj01XG4KKytBOiBzdWJz eXN0ZW1fZGV2aWNlPTB4MTYzNVxuCisrQTogc3Vic3lzdGVtX3ZlbmRvcj0weDEwMjJcbgorK0E6 IHZlbmRvcj0weDEwMjJcbgorKworZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVz dHMvbWVzb24uYnVpbGQKK2luZGV4IDA3YzkyNGJlLi5iNmU4YmY5NSAxMDA2NDQKKy0tLSBhL3Rl c3RzL21lc29uLmJ1aWxkCisrKysgYi90ZXN0cy9tZXNvbi5idWlsZAorQEAgLTUyLDYgKzUyLDcg QEAgZHJpdmVyc190ZXN0cyA9IFsKKyAgICAgJ25iMTAxMCcsCisgICAgICdlZ2lzMDU3MCcsCisg ICAgICdlZ2lzbW9jJywKKysgICAgJ2VnaXNfZXR1OTA1JywKKyAgICAgJ2VnaXNtb2MtMDVhMScs CisgICAgICdlZ2lzbW9jLTA1ODYnLAorICAgICAnZWdpc21vYy0wNTg3JywKKy0tIAorR2l0TGFi CisKKworRnJvbSBjMjE2ZjA0ZGQxZmQxY2ZlMjFhNzFkMjZiZjZlMTdmYzFhMzc5ODNhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9 MjhUcmV2aT1DMz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+CitEYXRlOiBUdWUsIDkgSnVuIDIw MjYgMTQ6MTk6MTcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAwMi8xM10gZWdpc19ldHU5MDU6IERv IG5vdCBsZWFrIHRoZSB0cmFuc2ZlciBidWZmZXIKKworVGhlIGJ1ZmZlciBpcyBub3cgb3duZWQg YnkgdGhlIGRhdGEsIHNvIHdlIHNob3VsZCBub3Qgc3RlYWwgaXQgd2hlbgorcGFzc2luZyBpdCBh cm91bmQgb3Igd2UnbGwgbGVhay4KKy0tLQorIGxpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdp c19ldHU5MDUuYyB8IDYgKysrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2Mv ZWdpc19ldHU5MDUuYyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwor aW5kZXggYmUwYzZlMDUuLmY5MWYwNDcyIDEwMDY0NAorLS0tIGEvbGliZnByaW50L2RyaXZlcnMv ZWdpc21vYy9lZ2lzX2V0dTkwNS5jCisrKysgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2Vn aXNfZXR1OTA1LmMKK0BAIC0yMDcsNyArMjA3LDggQEAgZWdpc19ldHU5MDVfY21kX3JlY2VpdmVf Y2IgKEZwaVVzYlRyYW5zZmVyICp0cmFuc2ZlciwKKyAgICAgICBmcGlfc3NtX21hcmtfZmFpbGVk ICh0cmFuc2Zlci0+c3NtLCBlcnJvcik7CisgICAgICAgcmV0dXJuOworICAgICB9CistICBpZiAo ZGF0YSA9PSBOVUxMIHx8IHRyYW5zZmVyLT5hY3R1YWxfbGVuZ3RoIDwgZWdpc19ldHU5MDVfcmVh ZF9wcmVmaXhfbGVuKQorKworKyAgaWYgKHRyYW5zZmVyLT5hY3R1YWxfbGVuZ3RoIDwgZWdpc19l dHU5MDVfcmVhZF9wcmVmaXhfbGVuKQorICAgICB7CisgICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxl ZCAodHJhbnNmZXItPnNzbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNl X2Vycm9yX25ldyAoRlBfREVWSUNFX0VSUk9SX0dFTkVSQUwpKTsKK0BAIC0yMTYsNiArMjE3LDcg QEAgZWdpc19ldHU5MDVfY21kX3JlY2VpdmVfY2IgKEZwaVVzYlRyYW5zZmVyICp0cmFuc2ZlciwK KyAKKyAgIC8qIFN0b3JlIHRoZSByZXNwb25zZSBkYXRhIGFuZCBsZXQgdGhlIGNtZF9zc21fZG9u ZSBjYWxsYmFjayBpbnZva2UKKyAgICAqIHRoZSBhY3R1YWwgY2FsbGJhY2sgd2l0aCB0aGUgc3Rv cmVkIGRhdGEgKi8KKysgIGdfYXNzZXJ0IChkYXRhICE9IE5VTEwpOworICAgZGF0YS0+YnVmZmVy X2luID0gZ19zdGVhbF9wb2ludGVyICgmdHJhbnNmZXItPmJ1ZmZlcik7CisgICBkYXRhLT5sZW5n dGhfaW4gPSB0cmFuc2Zlci0+YWN0dWFsX2xlbmd0aDsKKyAKK0BAIC0yODIsNyArMjg0LDcgQEAg ZWdpc19ldHU5MDVfY21kX3NzbV9kb25lIChGcGlTc20gICAqc3NtLAorICAgaWYgKGRhdGEgJiYg ZGF0YS0+Y2FsbGJhY2spCisgICAgIHsKKyAgICAgICBkYXRhLT5jYWxsYmFjayAoZGV2aWNlLAor LSAgICAgICAgICAgICAgICAgICAgICBnX3N0ZWFsX3BvaW50ZXIgKCZkYXRhLT5idWZmZXJfaW4p LAorKyAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5idWZmZXJfaW4sCisgICAgICAgICAgICAg ICAgICAgICAgIGRhdGEtPmxlbmd0aF9pbiwKKyAgICAgICAgICAgICAgICAgICAgICAgZ19zdGVh bF9wb2ludGVyICgmbG9jYWxfZXJyb3IpKTsKKyAgICAgfQorLS0gCitHaXRMYWIKKworCitGcm9t IGZkYmM5ZWU2NTU4YTU0ZGMzOTNhNWRmYTA0ZjYyNmJlODM5MzExNmMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2aXNhbj0yMD0yOFRyZXZpPUMz PUIxbz0yOT89IDxtYWlsQDN2MW4wLm5ldD4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxMzo1MToy OCArMDIwMAorU3ViamVjdDogW1BBVENIIDAzLzEzXSBlZ2lzX2V0dTkwNTogUmVtb3ZlIHVudXNl ZCB0cmFuc2ZlcgorCistLS0KKyBsaWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1 LmMgfCAxMSAtLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxMSBkZWxldGlvbnMoLSkKKwor ZGlmZiAtLWdpdCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyBiL2xp YmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYworaW5kZXggZjkxZjA0NzIuLjBi YjlhNmJhIDEwMDY0NAorLS0tIGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkw NS5jCisrKysgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKK0BAIC0x NDQ1LDggKzE0NDUsNiBAQCBzdGF0aWMgdm9pZAorIGVnaXNfZXR1OTA1X2Rldl9pbml0X2hhbmRs ZXIgKEZwaVNzbSAgICpzc20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnBEZXZp Y2UgKmRldmljZSkKKyB7CistICBnX2F1dG9wdHIoRnBpVXNiVHJhbnNmZXIpIHRyYW5zZmVyID0g TlVMTDsKKy0KKyAgIHN3aXRjaCAoZnBpX3NzbV9nZXRfY3VyX3N0YXRlIChzc20pKQorICAgICB7 CisgICAgIGNhc2UgREVWX0dFVF9GV19WRVJTSU9OOgorQEAgLTE0NjIsMTUgKzE0NjAsNiBAQCBl Z2lzX2V0dTkwNV9kZXZfaW5pdF9oYW5kbGVyIChGcGlTc20gICAqc3NtLAorICAgICBkZWZhdWx0 OgorICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkICgpOworICAgICB9CistCistICB0cmFuc2Zl ciA9IGZwaV91c2JfdHJhbnNmZXJfbmV3IChkZXZpY2UpOworLSAgdHJhbnNmZXItPnNzbSA9IHNz bTsKKy0gIHRyYW5zZmVyLT5zaG9ydF9pc19lcnJvciA9IFRSVUU7CistICBmcGlfdXNiX3RyYW5z ZmVyX3N1Ym1pdCAoZ19zdGVhbF9wb2ludGVyICgmdHJhbnNmZXIpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVHSVNfRVRVOTA1X1VTQl9DT05UUk9MX1RJTUVPVVQsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9nZXRfY2FuY2VsbGFibGUgKGRldmljZSksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX3NzbV91c2JfdHJhbnNmZXJfY2IsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgfQorIAorIHN0YXRpYyB2b2lkCistLSAK K0dpdExhYgorCisKK0Zyb20gZjU4MDY4MjVkZTgwM2E3YmVjZDAyYjQ5YTNmNGE2YThlMzI1Nzlm ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZp c2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5Pz0gPG1haWxAM3YxbjAubmV0PgorRGF0ZTogVHVlLCA5 IEp1biAyMDI2IDEzOjU2OjAyICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDQvMTNdIGVnaXNfZXR1 OTA1OiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCisKKy0tLQorIGxpYmZwcmludC9kcml2ZXJzL2Vn aXNtb2MvZWdpc19ldHU5MDUuYyB8IDEgLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0p CisKK2RpZmYgLS1naXQgYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMg Yi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKK2luZGV4IDBiYjlhNmJh Li4zZDUyYmY4OSAxMDA2NDQKKy0tLSBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19l dHU5MDUuYworKysrIGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCitA QCAtOTQzLDcgKzk0Myw2IEBAIGVnaXNfZXR1OTA1X2dldF9jaGVja19jbWQgKEZwRGV2aWNlICpk ZXZpY2UsCisgICBmcF9kYmcgKCJHZXQgY2hlY2sgY29tbWFuZCIpOworICAgRnBpRGV2aWNlRWdp c0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7CisgICBnX2F1 dG8oRnBpQnl0ZVdyaXRlcikgd3JpdGVyID0gezB9OworLSAgZ19hdXRvZnJlZSBndWNoYXIgKnJl c3VsdCA9IE5VTEw7CisgICBnYm9vbGVhbiB3cml0dGVuID0gVFJVRTsKKyAKKyAgIC8qCistLSAK K0dpdExhYgorCisKK0Zyb20gMTJhZjI1ZDQzYjg5MDA3N2NjMTNhMDU5N2I3NzJjOTQwMWNhNjI3 MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZp c2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5Pz0gPG1haWxAM3YxbjAubmV0PgorRGF0ZTogTW9uLCA4 IEp1biAyMDI2IDEzOjI4OjUwICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDUvMTNdIGVnaXNfZXR1 OTA1OiBTZXQgc2hvcnQgZXJyb3IgdXNpbmcgZnVuY3Rpb24KKworLS0tCisgbGliZnByaW50L2Ry aXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYmZwcmludC9k cml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2Mv ZWdpc19ldHU5MDUuYworaW5kZXggM2Q1MmJmODkuLjRlNTg1MTVjIDEwMDY0NAorLS0tIGEvbGli ZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCisrKysgYi9saWJmcHJpbnQvZHJp dmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKK0BAIC05Nyw3ICs5Nyw3IEBAIGVnaXNfZXR1OTA1 X3dhaXRfZmluZ2VyX29uX3NlbnNvciAoRnBpU3NtICAgKnNzbSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X1VTQl9JTlRFUlJVUFRfSU5fUkVDVl9MRU5H VEgpOworICAgdHJhbnNmZXItPnNzbSA9IHNzbTsKKyAgIC8qIEludGVycnVwdCBvbiB0aGlzIGRl dmljZSBhbHdheXMgcmV0dXJucyAxIGJ5dGUgc2hvcnQ7IHRoaXMgaXMgZXhwZWN0ZWQgKi8KKy0g IHRyYW5zZmVyLT5zaG9ydF9pc19lcnJvciA9IEZBTFNFOworKyAgZnBpX3VzYl90cmFuc2Zlcl9z ZXRfc2hvcnRfZXJyb3IgKHRyYW5zZmVyLCBGQUxTRSk7CisgCisgICBmcGlfZGV2aWNlX3JlcG9y dF9maW5nZXJfc3RhdHVzIChkZXZpY2UsIEZQX0ZJTkdFUl9TVEFUVVNfTkVFREVEKTsKKyAKK0BA IC0zODIsNyArMzgyLDcgQEAgZWdpc19ldHU5MDVfZXhlY19jbWQgKEZwRGV2aWNlICAgICAgICAg KmRldmljZSwKKyAgICAgfQorIAorICAgdHJhbnNmZXIgPSBmcGlfdXNiX3RyYW5zZmVyX25ldyAo ZGV2aWNlKTsKKy0gIHRyYW5zZmVyLT5zaG9ydF9pc19lcnJvciA9IFRSVUU7CisrICBmcGlfdXNi X3RyYW5zZmVyX3NldF9zaG9ydF9lcnJvciAodHJhbnNmZXIsIFRSVUUpOworICAgdHJhbnNmZXIt PnNzbSA9IHNlbGYtPmNtZF9zc207CisgCisgICBmcGlfdXNiX3RyYW5zZmVyX2ZpbGxfYnVsa19m dWxsICh0cmFuc2ZlciwKKy0tIAorR2l0TGFiCisKKworRnJvbSA0MmYwYjk2YzEwMzE5NWE2YTdm YTZiNDUyNThiNzJlMzkzYzkwNzkzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9V VEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/PSA8bWFpbEAzdjFu MC5uZXQ+CitEYXRlOiBNb24sIDggSnVuIDIwMjYgMTM6MzE6NTggKzAyMDAKK1N1YmplY3Q6IFtQ QVRDSCAwNi8xM10gZWdpc19ldHU5MDU6IFJlbHkgb24gZGVmYXVsdCBkZXZpY2UgY2FuY2VsbGFi bGUgZm9yIGFsbAorIHRoZSBhY3Rpb25zCisKK0kgZG9uJ3Qgc2VlIGEgcmVhc29uIHdoeSB3ZSBz aG91bGQgcmVseSBvbiBhIGRpZmZlcmVudCBjYW5jZWxsYWJsZSBmb3IKK2ludGVycnVwdHMsIGJ1 dCBoYXBweSB0byBsZWFybiBtb3JlIGFib3V0IHRoaXMKKy0tLQorIGxpYmZwcmludC9kcml2ZXJz L2VnaXNtb2MvZWdpc19ldHU5MDUuYyB8IDMzICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDMyIGRlbGV0aW9ucygtKQorCitkaWZmIC0t Z2l0IGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIGIvbGliZnByaW50 L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCitpbmRleCA0ZTU4NTE1Yy4uM2MxZGNmNzMg MTAwNjQ0CistLS0gYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKKysr KyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYworQEAgLTMzLDcgKzMz LDYgQEAgc3RydWN0IF9GcGlEZXZpY2VFZ2lzRXR1OTA1CisgICBGcGlTc20gICAgICAgICAqdGFz a19zc207CisgICBGcGlTc20gICAgICAgICAqY21kX3NzbTsKKyAgIEZwaVVzYlRyYW5zZmVyICpj bWRfdHJhbnNmZXI7CistICBHQ2FuY2VsbGFibGUgICAqaW50ZXJydXB0X2NhbmNlbGxhYmxlOwor ICAgR1B0ckFycmF5ICAgICAgKmVucm9sbGVkX2lkczsKKyAgIGdpbnQgICAgICAgICAgICBtYXhf ZW5yb2xsX3N0YWdlczsKKyAgIGd1aW50OCAgICAgICAgICBzaWRbRUdJU19FVFU5MDVfRklOR0VS UFJJTlRfREFUQV9TSVpFXTsKK0BAIC04OSw4ICs4OCw2IEBAIGVnaXNfZXR1OTA1X3dhaXRfZmlu Z2VyX29uX3NlbnNvciAoRnBpU3NtICAgKnNzbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZwRGV2aWNlICpkZXZpY2UpCisgeworICAgZnBfZGJnICgiV2FpdCBmb3IgZmlu Z2VyIG9uIHNlbnNvciIpOworLSAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJ Q0VfRUdJU19FVFU5MDUgKGRldmljZSk7CistCisgICBnX2F1dG9wdHIoRnBpVXNiVHJhbnNmZXIp IHRyYW5zZmVyID0gZnBpX3VzYl90cmFuc2Zlcl9uZXcgKGRldmljZSk7CisgCisgICBmcGlfdXNi X3RyYW5zZmVyX2ZpbGxfaW50ZXJydXB0ICh0cmFuc2ZlciwgRUdJU19FVFU5MDVfRVBfQ01EX0lO VEVSUlVQVF9JTiwKK0BAIC0xMDMsNyArMTAwLDcgQEAgZWdpc19ldHU5MDVfd2FpdF9maW5nZXJf b25fc2Vuc29yIChGcGlTc20gICAqc3NtLAorIAorICAgZnBpX3VzYl90cmFuc2Zlcl9zdWJtaXQg KGdfc3RlYWxfcG9pbnRlciAoJnRyYW5zZmVyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFR0lTX0VUVTkwNV9VU0JfSU5URVJSVVBUX1RJTUVPVVQsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi0+aW50ZXJydXB0X2NhbmNlbGxhYmxlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZwaV9kZXZpY2VfZ2V0X2NhbmNlbGxhYmxlIChkZXZpY2UpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVnaXNfZXR1OTA1X2Zpbmdlcl9vbl9zZW5zb3JfY2IsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgfQorQEAgLTE1NTEsMzcgKzE1NDgsMTEg QEAgZWdpc19ldHU5MDVfb3BlbiAoRnBEZXZpY2UgKmRldmljZSkKKyAgIGZwaV9zc21fc3RhcnQg KHNlbGYtPnRhc2tfc3NtLCBlZ2lzX2V0dTkwNV9kZXZfaW5pdF9kb25lKTsKKyB9CisgCistc3Rh dGljIHZvaWQKKy1lZ2lzX2V0dTkwNV9jYW5jZWwgKEZwRGV2aWNlICpkZXZpY2UpCisteworLSAg ZnBfZGJnICgiQ2FuY2VsIik7CistICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RF VklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKKy0KKy0gIGdfY2FuY2VsbGFibGVfY2FuY2VsIChz ZWxmLT5pbnRlcnJ1cHRfY2FuY2VsbGFibGUpOworLSAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5p bnRlcnJ1cHRfY2FuY2VsbGFibGUpOworLSAgc2VsZi0+aW50ZXJydXB0X2NhbmNlbGxhYmxlID0g Z19jYW5jZWxsYWJsZV9uZXcgKCk7CistfQorLQorLXN0YXRpYyB2b2lkCistZWdpc19ldHU5MDVf c3VzcGVuZCAoRnBEZXZpY2UgKmRldmljZSkKKy17CistICBmcF9kYmcgKCJTdXNwZW5kIik7Cist CistICBlZ2lzX2V0dTkwNV9jYW5jZWwgKGRldmljZSk7CistICBnX2NhbmNlbGxhYmxlX2NhbmNl bCAoZnBpX2RldmljZV9nZXRfY2FuY2VsbGFibGUgKGRldmljZSkpOworLSAgZnBpX2RldmljZV9z dXNwZW5kX2NvbXBsZXRlIChkZXZpY2UsIE5VTEwpOworLX0KKy0KKyBzdGF0aWMgdm9pZAorIGVn aXNfZXR1OTA1X2Nsb3NlIChGcERldmljZSAqZGV2aWNlKQorIHsKKyAgIGdfYXV0b3B0cihHRXJy b3IpIGVycm9yID0gTlVMTDsKKyAgIGZwX2RiZyAoIkNsb3NpbmcgZGV2aWNlIik7CistICBGcGlE ZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsK Ky0gIEdFcnJvciAqZXJyb3IgPSBOVUxMOworLQorLSAgZWdpc19ldHU5MDVfY2FuY2VsIChkZXZp Y2UpOworLSAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5pbnRlcnJ1cHRfY2FuY2VsbGFibGUpOwor IAorICAgZ191c2JfZGV2aWNlX3JlbGVhc2VfaW50ZXJmYWNlIChmcGlfZGV2aWNlX2dldF91c2Jf ZGV2aWNlIChkZXZpY2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAw LCAmZXJyb3IpOworQEAgLTE2MTAsOCArMTU4MSw2IEBAIGZwaV9kZXZpY2VfZWdpc19ldHU5MDVf Y2xhc3NfaW5pdCAoRnBpRGV2aWNlRWdpc0V0dTkwNUNsYXNzICprbGFzcykKKyAKKyAgIGRldl9j bGFzcy0+cHJvYmUgPSBlZ2lzX2V0dTkwNV9wcm9iZTsKKyAgIGRldl9jbGFzcy0+b3BlbiA9IGVn aXNfZXR1OTA1X29wZW47CistICBkZXZfY2xhc3MtPmNhbmNlbCA9IGVnaXNfZXR1OTA1X2NhbmNl bDsKKy0gIGRldl9jbGFzcy0+c3VzcGVuZCA9IGVnaXNfZXR1OTA1X3N1c3BlbmQ7CisgICBkZXZf Y2xhc3MtPmNsb3NlID0gZWdpc19ldHU5MDVfY2xvc2U7CisgICBkZXZfY2xhc3MtPmlkZW50aWZ5 ID0gZWdpc19ldHU5MDVfaWRlbnRpZnlfdmVyaWZ5OworICAgZGV2X2NsYXNzLT52ZXJpZnkgPSBl Z2lzX2V0dTkwNV9pZGVudGlmeV92ZXJpZnk7CistLSAKK0dpdExhYgorCisKK0Zyb20gNGI4ZjQ2 ZjFmOWNlM2QyYjJjZTk2ZDBiODdmZGI0NjRmOWU2N2FiZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5 Pz0gPG1haWxAM3YxbjAubmV0PgorRGF0ZTogTW9uLCA4IEp1biAyMDI2IDEzOjMyOjUxICswMjAw CitTdWJqZWN0OiBbUEFUQ0ggMDcvMTNdIGVnaXNfZXR1OTA1OiBVc2UgZnBpLWJ5dGVzLXJlYWRl ciB0byBnZXQgdGhlIGZpcm13YXJlCisgc3RyaW5nCisKKy0tLQorIGxpYmZwcmludC9kcml2ZXJz L2VnaXNtb2MvZWdpc19ldHU5MDUuYyB8IDM3ICsrKysrKysrKysrKysrKysrKystLS0tLS0KKyAx IGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKKworZGlmZiAt LWdpdCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyBiL2xpYmZwcmlu dC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYworaW5kZXggM2MxZGNmNzMuLmM0ZDQwOTNk IDEwMDY0NAorLS0tIGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCisr KysgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKK0BAIC0xMzQ4LDEy ICsxMzQ4LDE0IEBAIGVnaXNfZXR1OTA1X2Z3X3ZlcnNpb25fY2IgKEZwRGV2aWNlICpkZXZpY2Us CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgIGxlbmd0aF9pbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAqZXJyb3IpCisgeworLSAgZnBfZGJnICgi RmlybXdhcmUgdmVyc2lvbiBjYWxsYmFjayIpOworICAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2Vs ZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7CistICBnX2F1dG9mcmVlIGdjaGFy ICpmd192ZXJzaW9uID0gTlVMTDsKKy0gIGdzaXplIHByZWZpeF9sZW5ndGg7CistICBndWNoYXIg KmZ3X3ZlcnNpb25fc3RhcnQ7CisrICBGcGlCeXRlUmVhZGVyIHJlYWRlcjsKKysgIGNvbnN0IGd1 aW50OCAqZndfdmVyc2lvbl9kYXRhID0gTlVMTDsKKysgIGNvbnN0IGd1aW50IHByZWZpeF9sZW5n dGggPSBlZ2lzX2V0dTkwNV9yZWFkX3ByZWZpeF9sZW4gKyAyICsgMyArIDE7CisgICBnc2l6ZSBm d192ZXJzaW9uX2xlbmd0aDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKmZ3X3ZlcnNpb24gPSBOVUxM OworKworKyAgZnBfZGJnICgiRmlybXdhcmUgdmVyc2lvbiBjYWxsYmFjayIpOworIAorICAgaWYg KGVycm9yKQorICAgICB7CitAQCAtMTM4MCwxMCArMTM4MiwyOSBAQCBlZ2lzX2V0dTkwNV9md192 ZXJzaW9uX2NiIChGcERldmljZSAqZGV2aWNlLAorICAgICogY29tZSB3aXRoIGV2ZXJ5IHBheWxv YWQgVGhlbiB3ZSB3aWxsIGFsc28gc2tpcCB0aGUgY2FycmlhZ2UgcmV0dXJuIGFuZCB0YWtlCisg ICAgKiBhbGwgYnV0IHRoZSBsYXN0IDIgYnl0ZXMgYXMgdGhlIEZXIFZlcnNpb24KKyAgICAqLwor LSAgcHJlZml4X2xlbmd0aCA9IGVnaXNfZXR1OTA1X3JlYWRfcHJlZml4X2xlbiArIDIgKyAzICsg MTsKKy0gIGZ3X3ZlcnNpb25fc3RhcnQgPSBidWZmZXJfaW4gKyBwcmVmaXhfbGVuZ3RoOworLSAg ZndfdmVyc2lvbl9sZW5ndGggPSBsZW5ndGhfaW4gLSBwcmVmaXhfbGVuZ3RoIC0gcnNwX2Z3X3Zl cnNpb25fc3VmZml4X2xlbjsKKy0gIGZ3X3ZlcnNpb24gPSBnX3N0cm5kdXAgKChnY2hhciAqKSBm d192ZXJzaW9uX3N0YXJ0LCBmd192ZXJzaW9uX2xlbmd0aCk7CisrICBmcGlfYnl0ZV9yZWFkZXJf aW5pdCAoJnJlYWRlciwgYnVmZmVyX2luLCBsZW5ndGhfaW4pOworKworKyAgaWYgKCFmcGlfYnl0 ZV9yZWFkZXJfc2V0X3BvcyAoJnJlYWRlciwgcHJlZml4X2xlbmd0aCkpCisrICAgIHsKKysgICAg ICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9yX25ld19tc2cgKEZQX0RFVklDRV9FUlJPUl9QUk9U TywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJEZXZpY2UgZmlybXdhcmUgcmVzcG9uc2UgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvbyBzaG9ydCBmb3IgcHJlZml4LiIpKTsKKysg ICAgICByZXR1cm47CisrICAgIH0KKysKKysgIGZ3X3ZlcnNpb25fbGVuZ3RoID0gZnBpX2J5dGVf cmVhZGVyX2dldF9yZW1haW5pbmcgKCZyZWFkZXIpIC0gcnNwX2Z3X3ZlcnNpb25fc3VmZml4X2xl bjsKKysKKysgIGlmICghZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhICgmcmVhZGVyLCBmd192ZXJz aW9uX2xlbmd0aCwgJmZ3X3ZlcnNpb25fZGF0YSkpCisrICAgIHsKKysgICAgICBmcGlfc3NtX21h cmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBm cGlfZGV2aWNlX2Vycm9yX25ld19tc2cgKEZQX0RFVklDRV9FUlJPUl9QUk9UTywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXZpY2UgZmly bXdhcmUgcmVzcG9uc2UgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInRvbyBzaG9ydCBmb3IgdmVyc2lvbiBzdHJpbmcuIikpOworKyAgICAg IHJldHVybjsKKysgICAgfQorKworKyAgZndfdmVyc2lvbiA9IGdfc3RybmR1cCAoKGdjaGFyICop IGZ3X3ZlcnNpb25fZGF0YSwgZndfdmVyc2lvbl9sZW5ndGgpOworIAorICAgZnBfaW5mbyAoIkRl dmljZSBmaXJtd2FyZSB2ZXJzaW9uIGlzICVzIiwgZndfdmVyc2lvbik7CisgCistLSAKK0dpdExh YgorCisKK0Zyb20gYzZmOWYwOTRhZmVjMmExYmY1M2U2YTYxMzJkYmRlMTMwNjUwYjllZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIw PTI4VHJldmk9QzM9QjFvPTI5Pz0gPG1haWxAM3YxbjAubmV0PgorRGF0ZTogTW9uLCA4IEp1biAy MDI2IDEzOjM5OjM0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDgvMTNdIGVnaXNfZXR1OTA1OiBk cm9wIHVudXNlZCBzaWQgZmllbGQKKworV2UgcmVhZCBpdCBidXQgd2UgbmV2ZXIgdXNlIGl0Cist LS0KKyBsaWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgfCAxNSAtLS0tLS0t LS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgYi9saWJmcHJpbnQvZHJp dmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKK2luZGV4IGM0ZDQwOTNkLi40MThiNDNhMyAxMDA2 NDQKKy0tLSBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYworKysrIGIv bGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCitAQCAtMzUsNyArMzUsNiBA QCBzdHJ1Y3QgX0ZwaURldmljZUVnaXNFdHU5MDUKKyAgIEZwaVVzYlRyYW5zZmVyICpjbWRfdHJh bnNmZXI7CisgICBHUHRyQXJyYXkgICAgICAqZW5yb2xsZWRfaWRzOworICAgZ2ludCAgICAgICAg ICAgIG1heF9lbnJvbGxfc3RhZ2VzOworLSAgZ3VpbnQ4ICAgICAgICAgIHNpZFtFR0lTX0VUVTkw NV9GSU5HRVJQUklOVF9EQVRBX1NJWkVdOworIH07CisgCisgR19ERUZJTkVfVFlQRSAoRnBpRGV2 aWNlRWdpc0V0dTkwNSwgZnBpX2RldmljZV9lZ2lzX2V0dTkwNSwgRlBfVFlQRV9ERVZJQ0UpOwor QEAgLTkxMSwyMCArOTEwLDYgQEAgZWdpc19ldHU5MDVfZW5yb2xsX2JlZ2luX2NiIChGcERldmlj ZSAqZGV2aWNlLAorICAgICAgIHJldHVybjsKKyAgICAgfQorIAorLSAgRnBpQnl0ZVJlYWRlciBy ZWFkZXI7CistCistICBmcGlfYnl0ZV9yZWFkZXJfaW5pdCAoJnJlYWRlciwgYnVmZmVyX2luLCBs ZW5ndGhfaW4pOworLQorLSAgZnBpX2J5dGVfcmVhZGVyX3NldF9wb3MgKCZyZWFkZXIsIEVHSVNf RVRVOTA1X0xJU1RfUkVTUE9OU0VfUFJFRklYX1NJWkUpOworLQorLSAgY29uc3QgZ3VpbnQ4ICpk YXRhID0gTlVMTDsKKy0KKy0gIGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YSAoJnJlYWRlciwgRUdJ U19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmZGF0YSk7CistCistICBpZiAoZGF0YSkKKy0gICAgbWVtY3B5IChzZWxmLT5zaWQsIGRh dGEsIEVHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSk7CistCisgICBmcGlfc3NtX25l eHRfc3RhdGUgKHNlbGYtPnRhc2tfc3NtKTsKKyB9CisgCistLSAKK0dpdExhYgorCisKK0Zyb20g NjVjM2RjYjFlYjM1ZWMwYmQxNGIxN2JlZGYzM2RlNmM2MjFmOWVmMyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9QzM9 QjFvPTI5Pz0gPG1haWxAM3YxbjAubmV0PgorRGF0ZTogTW9uLCA4IEp1biAyMDI2IDEzOjQ0OjEz ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDkvMTNdIGVnaXNfZXR1OTA1OiBBdm9pZCBwb3RlbnRp YWwgd3JvbmcgbWVtb3J5IGFjY2Vzc2VzCisKKy0tLQorIGxpYmZwcmludC9kcml2ZXJzL2VnaXNt b2MvZWdpc19ldHU5MDUuYyB8IDUzICsrKysrKysrKysrKysrKysrKy0tLS0tLS0KKyAxIGZpbGUg Y2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgYi9saWJmcHJpbnQvZHJp dmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKK2luZGV4IDQxOGI0M2EzLi5jOWI5YWIzYSAxMDA2 NDQKKy0tLSBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYworKysrIGIv bGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCitAQCAtMTEwLDExICsxMTAs MjEgQEAgZWdpc19ldHU5MDVfdmFsaWRhdGVfcmVzcG9uc2VfcHJlZml4IChjb25zdCBndWNoYXIg KmJ1ZmZlcl9pbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGd1Y2hhciAqdmFsaWRfcHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgZ3NpemUgICB2YWxpZF9wcmVmaXhfbGVuKQorIHsKKy0gIGNvbnN0IGdib29s ZWFuIHJlc3VsdCA9IG1lbWNtcCAoYnVmZmVyX2luICsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGVnaXNfZXR1OTA1X3JlYWRfcHJlZml4X2xlbiArCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9DSEVDS19CWVRFU19MRU5HVEgpLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9wcmVmaXgsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX3ByZWZpeF9sZW4pID09IDA7CisrICBG cGlCeXRlUmVhZGVyIHJlYWRlcjsKKysgIGNvbnN0IGd1aW50OCAqZGF0YSA9IE5VTEw7CisrICBn Ym9vbGVhbiByZXN1bHQ7CisrCisrICBmcGlfYnl0ZV9yZWFkZXJfaW5pdCAoJnJlYWRlciwgYnVm ZmVyX2luLCBidWZmZXJfaW5fbGVuKTsKKysKKysgIGlmICghZnBpX2J5dGVfcmVhZGVyX3NldF9w b3MgKCZyZWFkZXIsIGVnaXNfZXR1OTA1X3JlYWRfcHJlZml4X2xlbiArCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9DSEVDS19CWVRFU19MRU5HVEgpIHx8Cisr ICAgICAgIWZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YSAoJnJlYWRlciwgdmFsaWRfcHJlZml4X2xl biwgJmRhdGEpKQorKyAgICB7CisrICAgICAgZnBfZGJnICgiUmVzcG9uc2UgdG9vIHNob3J0IGZv ciBwcmVmaXggdmFsaWRhdGlvbiIpOworKyAgICAgIHJldHVybiBGQUxTRTsKKysgICAgfQorKwor KyAgcmVzdWx0ID0gbWVtY21wIChkYXRhLCB2YWxpZF9wcmVmaXgsIHZhbGlkX3ByZWZpeF9sZW4p ID09IDA7CisgCisgICBmcF9kYmcgKCJSZXNwb25zZSBwcmVmaXggdmFsaWQ6ICVzIiwgcmVzdWx0 ID8gInllcyIgOiAiTk8iKTsKKyAgIHJldHVybiByZXN1bHQ7CitAQCAtMTI2LDkgKzEzNiwyMiBA QCBlZ2lzX2V0dTkwNV92YWxpZGF0ZV9yZXNwb25zZV9zdWZmaXggKGNvbnN0IGd1Y2hhciAqYnVm ZmVyX2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3Vj aGFyICp2YWxpZF9zdWZmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBnc2l6ZSAgIHZhbGlkX3N1ZmZpeF9sZW4pCisgeworLSAgY29uc3QgZ2Jvb2xlYW4g cmVzdWx0ID0gbWVtY21wIChidWZmZXJfaW4gKyAoYnVmZmVyX2luX2xlbiAtIHZhbGlkX3N1ZmZp eF9sZW4pLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9zdWZmaXgs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX3N1ZmZpeF9sZW4pID09 IDA7CisrICBGcGlCeXRlUmVhZGVyIHJlYWRlcjsKKysgIGNvbnN0IGd1aW50OCAqZGF0YSA9IE5V TEw7CisrICBnYm9vbGVhbiByZXN1bHQ7CisrCisrICBmcGlfYnl0ZV9yZWFkZXJfaW5pdCAoJnJl YWRlciwgYnVmZmVyX2luLCBidWZmZXJfaW5fbGVuKTsKKysKKysgIC8qIEd1YXJkIGFnYWluc3Qg dW5zaWduZWQgdW5kZXJmbG93IGJlZm9yZSBjb21wdXRpbmcgdGhlIHN1ZmZpeCBwb3NpdGlvbi4g Ki8KKysgIGlmICh2YWxpZF9zdWZmaXhfbGVuID4gYnVmZmVyX2luX2xlbiB8fAorKyAgICAgICFm cGlfYnl0ZV9yZWFkZXJfc2V0X3BvcyAoJnJlYWRlciwgYnVmZmVyX2luX2xlbiAtIHZhbGlkX3N1 ZmZpeF9sZW4pIHx8CisrICAgICAgIWZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YSAoJnJlYWRlciwg dmFsaWRfc3VmZml4X2xlbiwgJmRhdGEpKQorKyAgICB7CisrICAgICAgZnBfZGJnICgiUmVzcG9u c2UgdG9vIHNob3J0IGZvciBzdWZmaXggdmFsaWRhdGlvbiIpOworKyAgICAgIHJldHVybiBGQUxT RTsKKysgICAgfQorKworKyAgcmVzdWx0ID0gbWVtY21wIChkYXRhLCB2YWxpZF9zdWZmaXgsIHZh bGlkX3N1ZmZpeF9sZW4pID09IDA7CisgCisgICBmcF9kYmcgKCJSZXNwb25zZSBzdWZmaXggdmFs aWQ6ICVzIiwgcmVzdWx0ID8gInllcyIgOiAiTk8iKTsKKyAgIHJldHVybiByZXN1bHQ7CitAQCAt MTQ2NywxMCArMTQ5MCwxMCBAQCBlZ2lzX2V0dTkwNV9kZXZfaW5pdF9oYW5kbGVyIChGcGlTc20g ICAqc3NtLAorIHN0YXRpYyB2b2lkCisgZWdpc19ldHU5MDVfcHJvYmUgKEZwRGV2aWNlICpkZXZp Y2UpCisgeworLSAgR1VzYkRldmljZSAqdXNiX2RldjsKKy0gIEdFcnJvciAqZXJyb3IgPSBOVUxM OworKyAgZ19hdXRvcHRyKEdFcnJvcikgZXJyb3IgPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hh ciAqc2VyaWFsID0gTlVMTDsKKyAgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVW SUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOworKyAgR1VzYkRldmljZSAqdXNiX2RldjsKKyAKKyAg IGZwX2RiZyAoIiVzIGVudGVyIC0tPiAiLCBHX1NUUkZVTkMpOworIAorQEAgLTE0NzksNyArMTUw Miw3IEBAIGVnaXNfZXR1OTA1X3Byb2JlIChGcERldmljZSAqZGV2aWNlKQorICAgaWYgKCFnX3Vz Yl9kZXZpY2Vfb3BlbiAodXNiX2RldiwgJmVycm9yKSkKKyAgICAgeworICAgICAgIGZwX2RiZyAo IiVzIGdfdXNiX2RldmljZV9vcGVuIGZhaWxlZCAlcyIsIEdfU1RSRlVOQywgZXJyb3ItPm1lc3Nh Z2UpOworLSAgICAgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxldGUgKGRldmljZSwgTlVMTCwgTlVM TCwgZXJyb3IpOworKyAgICAgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxldGUgKGRldmljZSwgTlVM TCwgTlVMTCwgZ19zdGVhbF9wb2ludGVyICgmZXJyb3IpKTsKKyAgICAgICByZXR1cm47CisgICAg IH0KKyAKK0BAIC0xNDg3LDcgKzE1MTAsNyBAQCBlZ2lzX2V0dTkwNV9wcm9iZSAoRnBEZXZpY2Ug KmRldmljZSkKKyAgICAgeworICAgICAgIGZwX2RiZyAoIiVzIGdfdXNiX2RldmljZV9yZXNldCBm YWlsZWQgJXMiLCBHX1NUUkZVTkMsIGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICBnX3VzYl9kZXZp Y2VfY2xvc2UgKHVzYl9kZXYsIE5VTEwpOworLSAgICAgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxl dGUgKGRldmljZSwgTlVMTCwgTlVMTCwgZXJyb3IpOworKyAgICAgIGZwaV9kZXZpY2VfcHJvYmVf Y29tcGxldGUgKGRldmljZSwgTlVMTCwgTlVMTCwgZ19zdGVhbF9wb2ludGVyICgmZXJyb3IpKTsK KyAgICAgICByZXR1cm47CisgICAgIH0KKyAKK0BAIC0xNDk1LDcgKzE1MTgsNyBAQCBlZ2lzX2V0 dTkwNV9wcm9iZSAoRnBEZXZpY2UgKmRldmljZSkKKyAgICAgeworICAgICAgIGZwX2RiZyAoIiVz IGdfdXNiX2RldmljZV9jbGFpbV9pbnRlcmZhY2UgZmFpbGVkICVzIiwgR19TVFJGVU5DLCBlcnJv ci0+bWVzc2FnZSk7CisgICAgICAgZ191c2JfZGV2aWNlX2Nsb3NlICh1c2JfZGV2LCBOVUxMKTsK Ky0gICAgICBmcGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZpY2UsIE5VTEwsIE5VTEwsIGVy cm9yKTsKKysgICAgICBmcGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZpY2UsIE5VTEwsIE5V TEwsIGdfc3RlYWxfcG9pbnRlciAoJmVycm9yKSk7CisgICAgICAgcmV0dXJuOworICAgICB9Cisg CitAQCAtMTUxMiw3ICsxNTM1LDcgQEAgZWdpc19ldHU5MDVfcHJvYmUgKEZwRGV2aWNlICpkZXZp Y2UpCisgICAgICAgZ191c2JfZGV2aWNlX3JlbGVhc2VfaW50ZXJmYWNlIChmcGlfZGV2aWNlX2dl dF91c2JfZGV2aWNlIChGUF9ERVZJQ0UgKGRldmljZSkpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMCwgMCwgTlVMTCk7CisgICAgICAgZ191c2JfZGV2aWNlX2Nsb3Nl ICh1c2JfZGV2LCBOVUxMKTsKKy0gICAgICBmcGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZp Y2UsIE5VTEwsIE5VTEwsIGVycm9yKTsKKysgICAgICBmcGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRl IChkZXZpY2UsIE5VTEwsIE5VTEwsIGdfc3RlYWxfcG9pbnRlciAoJmVycm9yKSk7CisgICAgICAg cmV0dXJuOworICAgICB9CisgCitAQCAtMTUyNiw3ICsxNTQ5LDcgQEAgZWdpc19ldHU5MDVfcHJv YmUgKEZwRGV2aWNlICpkZXZpY2UpCisgICBnX3VzYl9kZXZpY2VfcmVsZWFzZV9pbnRlcmZhY2Ug KGZwaV9kZXZpY2VfZ2V0X3VzYl9kZXZpY2UgKEZQX0RFVklDRSAoZGV2aWNlKSksIDAsIDAsIE5V TEwpOworICAgZ191c2JfZGV2aWNlX2Nsb3NlICh1c2JfZGV2LCBOVUxMKTsKKyAKKy0gIGZwaV9k ZXZpY2VfcHJvYmVfY29tcGxldGUgKGRldmljZSwgc2VyaWFsLCBOVUxMLCBlcnJvcik7CisrICBm cGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZpY2UsIHNlcmlhbCwgTlVMTCwgTlVMTCk7Cisg fQorIAorIHN0YXRpYyB2b2lkCistLSAKK0dpdExhYgorCisKK0Zyb20gNWI1MWY5YzhjY2YzMzQy NDYzNmU0ZTMyY2I2MjA1MjA0ZTgxNjk0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5Pz0gPG1haWxA M3YxbjAubmV0PgorRGF0ZTogTW9uLCA4IEp1biAyMDI2IDEzOjQ3OjQxICswMjAwCitTdWJqZWN0 OiBbUEFUQ0ggMTAvMTNdIGVnaXNfZXR1OTA1OiBTYW5pdGl6ZSBwcmludCBkYXRhIHBhcnNpbmcK KworLS0tCisgbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIHwgMjMgKysr KysrKysrKysrKysrKy0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2Mv ZWdpc19ldHU5MDUuYyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwor aW5kZXggYzliOWFiM2EuLjBhNTY1NWYxIDEwMDY0NAorLS0tIGEvbGliZnByaW50L2RyaXZlcnMv ZWdpc21vYy9lZ2lzX2V0dTkwNS5jCisrKysgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2Vn aXNfZXR1OTA1LmMKK0BAIC0zMTgsNyArMzE4LDcgQEAgc3RhdGljIGd1aW50MTYKKyBlZ2lzX2V0 dTkwNV9nZXRfY2hlY2tfYnl0ZXMgKEZwaUJ5dGVSZWFkZXIgKnJlYWRlcikKKyB7CisgICBmcF9k YmcgKCJHZXQgY2hlY2sgYnl0ZXMiKTsKKy0gIHNpemVfdCBzdW1fdmFsdWVzID0gMDsKKysgIGd1 aW50NjQgc3VtX3ZhbHVlcyA9IDA7CisgICBndWludDE2IHZhbDsKKyAKKyAgIGZwaV9ieXRlX3Jl YWRlcl9zZXRfcG9zIChyZWFkZXIsIDApOworQEAgLTU2Miw4ICs1NjIsNiBAQCBlZ2lzX2V0dTkw NV9nZXRfZGVsZXRlX2NtZCAoRnBEZXZpY2UgKmRldmljZSwKKyAgIGNvbnN0IGd1Y2hhciAqcHJp bnRfZGF0YV9pZCA9IE5VTEw7CisgICBnc2l6ZSBwcmludF9kYXRhX2lkX2xlbiA9IDA7CisgICBn X2F1dG9mcmVlIGdjaGFyICpwcmludF9kZXNjcmlwdGlvbiA9IE5VTEw7CistICBnX2F1dG9mcmVl IGd1Y2hhciAqZW5yb2xsZWRfcHJpbnRfaWQgPSBOVUxMOworLSAgZ19hdXRvZnJlZSBndWNoYXIg KnJlc3VsdCA9IE5VTEw7CisgICBnYm9vbGVhbiB3cml0dGVuID0gVFJVRTsKKyAKKyAgIC8qCitA QCAtNjM5LDcgKzYzNyw4IEBAIGVnaXNfZXR1OTA1X2dldF9kZWxldGVfY21kIChGcERldmljZSAq ZGV2aWNlLAorICAgICAgIGdfb2JqZWN0X2dldCAoZGVsZXRlX3ByaW50LCAiZGVzY3JpcHRpb24i LCAmcHJpbnRfZGVzY3JpcHRpb24sIE5VTEwpOworICAgICAgIGdfb2JqZWN0X2dldCAoZGVsZXRl X3ByaW50LCAiZnBpLWRhdGEiLCAmcHJpbnRfZGF0YSwgTlVMTCk7CisgCistICAgICAgaWYgKCFn X3ZhcmlhbnRfY2hlY2tfZm9ybWF0X3N0cmluZyAocHJpbnRfZGF0YSwgIihAYXkpIiwgRkFMU0Up KQorKyAgICAgIGlmICghcHJpbnRfZGF0YSB8fAorKyAgICAgICAgICAhZ192YXJpYW50X2NoZWNr X2Zvcm1hdF9zdHJpbmcgKHByaW50X2RhdGEsICIoQGF5KSIsIEZBTFNFKSkKKyAgICAgICAgIHsK KyAgICAgICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3IChGUF9ERVZJQ0Vf RVJST1JfREFUQV9JTlZBTElEKSk7CitAQCAtNjUwLDExICs2NDksMjEgQEAgZWdpc19ldHU5MDVf Z2V0X2RlbGV0ZV9jbWQgKEZwRGV2aWNlICpkZXZpY2UsCisgICAgICAgcHJpbnRfZGF0YV9pZCA9 IGdfdmFyaWFudF9nZXRfZml4ZWRfYXJyYXkgKHByaW50X2RhdGFfaWRfdmFyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpbnRfZGF0YV9pZF9s ZW4sIHNpemVvZiAoZ3VjaGFyKSk7CisgCistICAgICAgaWYgKCFnX3N0cl9oYXNfcHJlZml4IChw cmludF9kZXNjcmlwdGlvbiwgIkZQIikpCisrICAgICAgaWYgKHByaW50X2RhdGFfaWRfbGVuICE9 IEVHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSkKKysgICAgICAgIHsKKysgICAgICAg ICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3X21zZyAoRlBfREVWSUNFX0VSUk9S X0RBVEFfSU5WQUxJRCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiU3RvcmVkIHByaW50IGlkIGhhcyAiCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuZXhwZWN0ZWQgbGVu Z3RoICV6dSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHJpbnRfZGF0YV9pZF9sZW4pKTsKKysgICAgICAgICAgcmV0dXJuIE5VTEw7 CisrICAgICAgICB9CisrCisrICAgICAgaWYgKCFwcmludF9kZXNjcmlwdGlvbiB8fCAhZ19zdHJf aGFzX3ByZWZpeCAocHJpbnRfZGVzY3JpcHRpb24sICJGUCIpKQorICAgICAgICAgZnBfZGJnICgi RmluZ2VycHJpbnQgJyVzJyB3YXMgbm90IGNyZWF0ZWQgYnkgbGliZnByaW50OyBkZWxldGluZyBh bnl3YXkuIiwKKy0gICAgICAgICAgICAgICAgcHJpbnRfZGVzY3JpcHRpb24pOworKyAgICAgICAg ICAgICAgICBwcmludF9kZXNjcmlwdGlvbiA/IHByaW50X2Rlc2NyaXB0aW9uIDogIihudWxsKSIp OworIAorLSAgICAgIGZwX2luZm8gKCJEZWxldGUgZmluZ2VycHJpbnQgJXMiLCBwcmludF9kZXNj cmlwdGlvbik7CisrICAgICAgZnBfaW5mbyAoIkRlbGV0ZSBmaW5nZXJwcmludCAlcyIsIHByaW50 X2Rlc2NyaXB0aW9uID8gcHJpbnRfZGVzY3JpcHRpb24gOiAiKG51bGwpIik7CisgCisgICAgICAg d3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X2RhdGEgKCZ3cml0ZXIsIHByaW50X2RhdGFf aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRV OTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSk7CistLSAKK0dpdExhYgorCisKK0Zyb20gYzBhOTgx MTA1MzFlNzRiZWI1ODc2ZWYwODRkYTNlZDg5MDExMjhjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5 Pz0gPG1haWxAM3YxbjAubmV0PgorRGF0ZTogTW9uLCA4IEp1biAyMDI2IDEzOjQ4OjAwICswMjAw CitTdWJqZWN0OiBbUEFUQ0ggMTEvMTNdIGVnaXNfZXR1OTA1OiBEbyBub3QgdHJ5IHRvIGNvbnRp bnVlIGEgZmFpbGVkIFNTTQorCistLS0KKyBsaWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNf ZXR1OTA1LmMgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2Rp ZmYgLS1naXQgYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgYi9saWJm cHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKK2luZGV4IDBhNTY1NWYxLi5kNDVi NDZlMiAxMDA2NDQKKy0tLSBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUu YworKysrIGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCitAQCAtNzU1 LDYgKzc1NSwxMCBAQCBlZ2lzX2V0dTkwNV9kZWxldGVfcnVuX3N0YXRlIChGcGlTc20gICAqc3Nt LAorICAgICAgIGVsc2UKKyAgICAgICAgIHBheWxvYWQgPSBlZ2lzX2V0dTkwNV9nZXRfZGVsZXRl X2NtZCAoZGV2aWNlLCBOVUxMLCAmcGF5bG9hZF9sZW5ndGgpOworIAorKyAgICAgIC8qIGdldF9k ZWxldGVfY21kIGFscmVhZHkgbWFya2VkIHRhc2tfc3NtIGFzIGZhaWxlZCAqLworKyAgICAgIGlm ICghcGF5bG9hZCkKKysgICAgICAgIHJldHVybjsKKysKKyAgICAgICBlZ2lzX2V0dTkwNV9leGVj X2NtZCAoZGV2aWNlLCBnX3N0ZWFsX3BvaW50ZXIgKCZwYXlsb2FkKSwgcGF5bG9hZF9sZW5ndGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfZnJlZSwgZWdpc19ldHU5MDVfZGVsZXRl X2NiKTsKKyAgICAgICBicmVhazsKKy0tIAorR2l0TGFiCisKKworRnJvbSAwNmFkNDRiYzFkYTcz MjU5OGY4MmE3YzExZWIwYmJjMjk4NTBhYzEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/PSA8bWFp bEAzdjFuMC5uZXQ+CitEYXRlOiBNb24sIDggSnVuIDIwMjYgMTU6MTk6NTQgKzAyMDAKK1N1Ympl Y3Q6IFtQQVRDSCAxMi8xM10gZWdpc19ldHU5MDU6IEltcHJvdmUgdGhlIGlkZW50aWZ5IGNhbGxi YWNrIGRhdGEgcmVhZGluZworCistLS0KKyBsaWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNf ZXR1OTA1LmMgfCA0MSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQs IDIzIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliZnBy aW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIGIvbGliZnByaW50L2RyaXZlcnMvZWdp c21vYy9lZ2lzX2V0dTkwNS5jCitpbmRleCBkNDViNDZlMi4uN2RlMzA2YjQgMTAwNjQ0CistLS0g YS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKKysrKyBiL2xpYmZwcmlu dC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYworQEAgLTQ5NiwxMSArNDk2LDEwIEBAIGVn aXNfZXR1OTA1X2xpc3RfZmlsbF9lbnJvbGxlZF9pZHNfY2IgKEZwRGV2aWNlICpkZXZpY2UsCisg ICAgKi8KKyAgIHdoaWxlIChyZWFkKQorICAgICB7CistICAgICAgY29uc3QgZ3VpbnQ4ICpkYXRh OworKyAgICAgIGNvbnN0IGd1aW50OCBkYXRhW0VHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFf U0laRV07CisgICAgICAgZ19hdXRvZnJlZSBnY2hhciAqcHJpbnRfaWQgPSBOVUxMOworIAorLSAg ICAgIHJlYWQgJj0gZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhICgmcmVhZGVyLCBFR0lTX0VUVTkw NV9GSU5HRVJQUklOVF9EQVRBX1NJWkUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZkYXRhKTsKKysgICAgICByZWFkICY9IGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0 YV9zdGF0aWMgKCZyZWFkZXIsIGRhdGEpOworICAgICAgIGlmICghcmVhZCkKKyAgICAgICAgIGJy ZWFrOworIAorQEAgLTExODIsMTUgKzExODEsMTYgQEAgZWdpc19ldHU5MDVfaWRlbnRpZnlfY2hl Y2tfY2IgKEZwRGV2aWNlICpkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdzaXplICAgICBsZW5ndGhfaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdF cnJvciAgICplcnJvcikKKyB7CistICBmcF9kYmcgKCJJZGVudGlmeSBjaGVjayBjYWxsYmFjayIp OworICAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUg KGRldmljZSk7CistICBnY2hhciBkZXZpY2VfcHJpbnRfaWRbRUdJU19FVFU5MDVfRklOR0VSUFJJ TlRfREFUQV9TSVpFXTsKKysgIGd1aW50OCBkZXZpY2VfcHJpbnRfaWRbRUdJU19FVFU5MDVfRklO R0VSUFJJTlRfREFUQV9TSVpFXTsKKyAgIEZwUHJpbnQgKnByaW50ID0gTlVMTDsKKyAgIEZwUHJp bnQgKnZlcmlmeV9wcmludCA9IE5VTEw7CisgICBHUHRyQXJyYXkgKnByaW50czsKKyAgIGdib29s ZWFuIGZvdW5kID0gRkFMU0U7CisgICBndWludCBpbmRleDsKKyAKKysgIGZwX2RiZyAoIklkZW50 aWZ5IGNoZWNrIGNhbGxiYWNrIik7CisrCisgICBpZiAoZXJyb3IpCisgICAgIHsKKyAgICAgICBm cGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3IpOworQEAgLTEyMDMsMjkg KzEyMDMsMzQgQEAgZWdpc19ldHU5MDVfaWRlbnRpZnlfY2hlY2tfY2IgKEZwRGV2aWNlICpkZXZp Y2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfaWRl bnRpZnlfbWF0Y2hfc3VmZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcnNwX2lkZW50aWZ5X21hdGNoX3N1ZmZpeF9sZW4pKQorICAgICB7CisrICAgICAg RnBpQnl0ZVJlYWRlciByZWFkZXI7CisrCisgICAgICAgLyoKKyAgICAgICAgICBPbiBzdWNjZXNz LCB0aGVyZSBpcyBhIDMyIGJ5dGUgYXJyYXkgb2YgInNvbWV0aGluZyIoPykgaW4gY2hhcnMgMTQt NDUKKyAgICAgICAgICBhbmQgdGhlbiB0aGUgMzIgYnl0ZSBhcnJheSBJRCBvZiB0aGUgbWF0Y2hl ZCBwcmludCBjb21lcyBhcyBjaGFycyA0Ni03NworICAgICAgICAqLworLSAgICAgIG1lbWNweSAo ZGV2aWNlX3ByaW50X2lkLAorLSAgICAgICAgICAgICAgYnVmZmVyX2luICsgRUdJU19FVFU5MDVf SURFTlRJRllfUkVTUE9OU0VfUFJJTlRfSURfT0ZGU0VULAorLSAgICAgICAgICAgICAgRUdJU19F VFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFKTsKKy0KKy0gICAgICAvKiBDcmVhdGUgYSBuZXcg cHJpbnQgZnJvbSB0aGlzIGRldmljZV9wcmludF9pZCBhbmQgdGhlbiBzZWUgaWYgaXQgbWF0Y2hl cworLSAgICAgICAqIHRoZSBvbmUgaW5kaWNhdGVkCistICAgICAgICovCistICAgICAgcHJpbnQg PSBmcF9wcmludF9uZXcgKGRldmljZSk7CistICAgICAgZWdpc19ldHU5MDVfc2V0X3ByaW50X2Rh dGEgKHByaW50LCBkZXZpY2VfcHJpbnRfaWQsIE5VTEwpOworKyAgICAgIGZwaV9ieXRlX3JlYWRl cl9pbml0ICgmcmVhZGVyLCBidWZmZXJfaW4sIGxlbmd0aF9pbik7CisgCistICAgICAgaWYgKCFw cmludCkKKysgICAgICBpZiAoIWZwaV9ieXRlX3JlYWRlcl9zZXRfcG9zICgmcmVhZGVyLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X0lERU5USUZZX1JF U1BPTlNFX1BSSU5UX0lEX09GRlNFVCkgfHwKKysgICAgICAgICAgIWZwaV9ieXRlX3JlYWRlcl9n ZXRfZGF0YV9zdGF0aWMgKCZyZWFkZXIsIGRldmljZV9wcmludF9pZCkpCisgICAgICAgICB7Cisg ICAgICAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9yX25ld19tc2cgKEZQX0RFVklD RV9FUlJPUl9EQVRBX0lOVkFMSUQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBidWlsZCBhIHByaW50IGZyb20gIgor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJkZXZpY2UgcmVzcG9uc2UuIikpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm cGlfZGV2aWNlX2Vycm9yX25ld19tc2cgKEZQX0RFVklDRV9FUlJPUl9QUk9UTywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSWRlbnRp ZnkgcmVzcG9uc2UgdG9vICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAic2hvcnQgZm9yIG1hdGNoZWQgcHJpbnQgIgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpZC4iKSk7 CisgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAKKysgICAgICBmcF9kYmcgKCJEZXZp Y2UtcmVwb3J0ZWQgbWF0Y2hlZCBwcmludCBpZDogJXMiLCBkZXZpY2VfcHJpbnRfaWQpOworKwor KyAgICAgIC8qIENyZWF0ZSBhIG5ldyBwcmludCBmcm9tIHRoaXMgZGV2aWNlX3ByaW50X2lkIGFu ZCB0aGVuIHNlZSBpZiBpdCBtYXRjaGVzCisrICAgICAgICogdGhlIG9uZSBpbmRpY2F0ZWQKKysg ICAgICAgKi8KKysgICAgICBwcmludCA9IGZwX3ByaW50X25ldyAoZGV2aWNlKTsKKysgICAgICBl Z2lzX2V0dTkwNV9zZXRfcHJpbnRfZGF0YSAocHJpbnQsIChjb25zdCBjaGFyICopIGRldmljZV9w cmludF9pZCwgTlVMTCk7CisrCisgICAgICAgZnBfaW5mbyAoIklkZW50aWZ5IHN1Y2Nlc3NmdWwg Zm9yOiAlcyIsIGZwX3ByaW50X2dldF9kZXNjcmlwdGlvbiAocHJpbnQpKTsKKyAKKyAgICAgICBp ZiAoZnBpX2RldmljZV9nZXRfY3VycmVudF9hY3Rpb24gKGRldmljZSkgPT0gRlBJX0RFVklDRV9B Q1RJT05fSURFTlRJRlkpCistLSAKK0dpdExhYgorCisKK0Zyb20gNmE3MWUwMzlhMTJlYWQyYjMx MjBhZDQ3ODliOTNhNDQxOTMwNDVlYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/ VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5Pz0gPG1haWxAM3Yx bjAubmV0PgorRGF0ZTogVHVlLCA5IEp1biAyMDI2IDEzOjU2OjI0ICswMjAwCitTdWJqZWN0OiBb UEFUQ0ggMTMvMTNdIGVnaXNfZXR1OTA1OiBEb3VibGUtY2hlY2sgdGhhdCB0aGUgaWRlbnRpZmll ZCBJRCBpcworIHBhcnQgb2YgdGhlIGVucm9sbGVkIGxpc3QKKworLS0tCisgbGliZnByaW50L2Ry aXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIHwgMjcgKysrKysrKysrKysrKysrKysrKysrKysr KworIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9saWJm cHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgYi9saWJmcHJpbnQvZHJpdmVycy9l Z2lzbW9jL2VnaXNfZXR1OTA1LmMKK2luZGV4IDdkZTMwNmI0Li5kY2Q3MWZmNiAxMDA2NDQKKy0t LSBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYworKysrIGIvbGliZnBy aW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCitAQCAtMTIwMyw2ICsxMjAzLDcgQEAg ZWdpc19ldHU5MDVfaWRlbnRpZnlfY2hlY2tfY2IgKEZwRGV2aWNlICpkZXZpY2UsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfaWRlbnRpZnlfbWF0Y2hf c3VmZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNw X2lkZW50aWZ5X21hdGNoX3N1ZmZpeF9sZW4pKQorICAgICB7CisrICAgICAgZ2Jvb2xlYW4gaWRf a25vd24gPSBGQUxTRTsKKyAgICAgICBGcGlCeXRlUmVhZGVyIHJlYWRlcjsKKyAKKyAgICAgICAv KgorQEAgLTEyMjUsNiArMTIyNiwzMiBAQCBlZ2lzX2V0dTkwNV9pZGVudGlmeV9jaGVja19jYiAo RnBEZXZpY2UgKmRldmljZSwKKyAKKyAgICAgICBmcF9kYmcgKCJEZXZpY2UtcmVwb3J0ZWQgbWF0 Y2hlZCBwcmludCBpZDogJXMiLCBkZXZpY2VfcHJpbnRfaWQpOworIAorKyAgICAgIC8qIFdoaWxl IHRoZSByZXR1cm5lZCBJRCBzaG91bGQgaW5kZWVkIGJlIHBhcnQgb2YgdGhlIGVucm9sbGVkIGxp c3QsIHNpbmNlCisrICAgICAgICogd2UgZ290IGl0LCBsZXQncyBkb3VibGUgY2hlY2sgdGhhdCB0 aGlzIGlzIHJlYWxseSB0aGUgY2FzZS4KKysgICAgICAgKi8KKysgICAgICBpZiAoc2VsZi0+ZW5y b2xsZWRfaWRzKQorKyAgICAgICAgeworKyAgICAgICAgICBmb3IgKGd1aW50IGkgPSAwOyBpIDwg c2VsZi0+ZW5yb2xsZWRfaWRzLT5sZW47IGkrKykKKysgICAgICAgICAgICB7CisrICAgICAgICAg ICAgICBpZiAobWVtY21wIChnX3B0cl9hcnJheV9pbmRleCAoc2VsZi0+ZW5yb2xsZWRfaWRzLCBp KSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZV9wcmludF9pZCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSkgPT0g MCkKKysgICAgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICAgIGlkX2tub3duID0gVFJV RTsKKysgICAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICAgICAgfQorKyAgICAg ICAgICAgIH0KKysgICAgICAgIH0KKysKKysgICAgICBpZiAoIWlkX2tub3duKQorKyAgICAgICAg eworKyAgICAgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXdfbXNnIChGUF9E RVZJQ0VfRVJST1JfUFJPVE8sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIkRldmljZSByZXBvcnRlZCBhIG1hdGNoICIKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9yIGFu IHVua25vd24gcHJpbnQgaWQuIikpOworKyAgICAgICAgICByZXR1cm47CisrICAgICAgICB9Cisr CisgICAgICAgLyogQ3JlYXRlIGEgbmV3IHByaW50IGZyb20gdGhpcyBkZXZpY2VfcHJpbnRfaWQg YW5kIHRoZW4gc2VlIGlmIGl0IG1hdGNoZXMKKyAgICAgICAgKiB0aGUgb25lIGluZGljYXRlZAor ICAgICAgICAqLworLS0gCitHaXRMYWIKKwoKZGlmZiAtLWdpdCBhL2xpYmZwcmludC5zcGVjIGIv bGliZnByaW50LnNwZWMKaW5kZXggZmJmZmVhNy4uOTZhOWNiMiAxMDA2NDQKLS0tIGEvbGliZnBy aW50LnNwZWMKKysrIGIvbGliZnByaW50LnNwZWMKQEAgLTE0LDYgKzE0LDE3IEBAIFNvdXJjZTA6 ICAgICAgICBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvbGliZnByaW50L2xpYmZwcmlu dC8tL2FyY2hpdmUvdiV7CiAjIEJhY2twb3J0IGZyb20gdXBzdHJlYW0KIFBhdGNoMDAwMDE6ICAg ICBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvbGliZnByaW50L2xpYmZwcmludC8tL2Nv bW1pdC8yYzc4NDJjOTA1MTQ3YTJkMTI3YzFiMTY4YjJlOWQ0My5wYXRjaAogCisjIHRoZSB1cGRh dGVzIGZvciB0aGUgZnBpCitQYXRjaDEwMDAxOiAgICAgMDAwMS1kb2MtSW5jbHVkZS1CaW5hcnkt YnVmZmVyLUktTy1zZWN0aW9uLWZvci10aGUtYnl0ZS1yLnBhdGNoCitQYXRjaDEwMDAyOiAgICAg MDAwMi1mcGktYnl0ZS13cml0ZXItQWRkLUFQSXMtdG8td3JpdGUtYW5kLWdldC1HQnl0ZXMucGF0 Y2gKK1BhdGNoMTAwMDM6ICAgICAwMDAzLWZwaS1ieXRlLXJlYWRlci1BZGQtc3VwcG9ydC10by1y ZWFkLWFuZC1nZXQtcGVlay1HQnkucGF0Y2gKK1BhdGNoMTAwMDQ6ICAgICAwMDA0LWZwaS1ieXRl LXJlYWRlci1BZGQtc3VwcG9ydC10by1yZWFkLXRvLWEtc3RhdGljLWJ1ZmYucGF0Y2gKK1BhdGNo MTAwMDU6ICAgICAwMDA1LWZwaS11c2ItdHJhbnNmZXItQWRkLW1pc3NpbmctZGVmaW5pdGlvbi1v Zi1zZXRfc2hvcnQucGF0Y2gKK1BhdGNoMTAwMDY6ICAgICAwMDA2LWZwaS11c2ItdHJhbnNmZXIt V3JhcC1nX2Vycm9yX25ldy1hcmd1bWVudHMucGF0Y2gKKyMgQWRkIEVHSVMgcmVhZGVycworIyBo dHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvbGliZnByaW50L2xpYmZwcmludC8tL21lcmdl X3JlcXVlc3RzLzU2MQorUGF0Y2gxMDAwNzogICAgIGVnaXNfcmVhZGVyLnBhdGNoCisKIEJ1aWxk UmVxdWlyZXM6ICBtZXNvbgogQnVpbGRSZXF1aXJlczogIGdjYwogQnVpbGRSZXF1aXJlczogIGdj Yy1jKysK