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] rawhide: Update to the upstream version 1.94.100 (rhbz#2506519) Date: Tue, 11 Aug 2026 03:52:23 GMT Message-ID: <178642034341.1.2332160900453527821.rpms-libfprint-7b457eea05c9@fedoraproject.org> List-ID: X-Git-Repo: rpms/libfprint X-Git-Branch: rawhide X-Git-Rev: 7b457eea05c9d5c73a6ed3bd3325eac52374c2f9 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvbGliZnByaW50CiAgICAgICAgICAgIEJyYW5jaCA6IHJhd2hpZGUKICAgICAg ICAgICAgQ29tbWl0IDogN2I0NTdlZWEwNWM5ZDVjNzNhNmVkM2JkMzMyNWVhYzUyMzc0YzJmOQog ICAgICAgICAgICBBdXRob3IgOiBLYXRlIEhzdWFuIDxocGFAcmVkaGF0LmNvbT4KICAgICAgICAg ICAgRGF0ZSAgIDogMjAyNi0wOC0xMVQxMTo0NTowMSswODowMAogICAgICAgICAgICBTdGF0cyAg OiArMy8tNDA4NCBpbiAxMSBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0dHBzOi8vc3Jj LmZlZG9yYXByb2plY3Qub3JnL3JwbXMvbGliZnByaW50L2MvN2I0NTdlZWEwNWM5ZDVjNzNhNmVk M2JkMzMyNWVhYzUyMzc0YzJmOT9icmFuY2g9cmF3aGlkZQoKICAgICAgICAgICAgTG9nOgogICAg ICAgICAgICBVcGRhdGUgdG8gdGhlIHVwc3RyZWFtIHZlcnNpb24gMS45NC4xMDAgKHJoYnojMjUw NjUxOSkKClVwZGF0ZSB0byB0aGUgdXBzdHJlYW0gdmVyc2lvbiAxLjk0LjEwMC4KCi0tLQpkaWZm IC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggZGM0N2ZjNC4uNTg0OGI2YSAx MDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0yNywzICsyNyw0IEBA IGxpYmZwcmludC0wLjMuMC50YXIuYnoyCiAvbGliZnByaW50LXYxLjk0LjgudGFyLmd6CiAvbGli ZnByaW50LXYxLjk0LjkudGFyLmd6CiAvbGliZnByaW50LXYxLjk0LjEwLnRhci5negorL2xpYmZw cmludC12MS45NC4xMDAudGFyLmd6CgpkaWZmIC0tZ2l0IGEvMDAwMS1kb2MtSW5jbHVkZS1CaW5h cnktYnVmZmVyLUktTy1zZWN0aW9uLWZvci10aGUtYnl0ZS1yLnBhdGNoIGIvMDAwMS1kb2MtSW5j bHVkZS1CaW5hcnktYnVmZmVyLUktTy1zZWN0aW9uLWZvci10aGUtYnl0ZS1yLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZGYwNTY1Li4wMDAwMDAwCi0tLSBhLzAwMDEtZG9j LUluY2x1ZGUtQmluYXJ5LWJ1ZmZlci1JLU8tc2VjdGlvbi1mb3ItdGhlLWJ5dGUtci5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDE2MiArMCwwIEBACi1Gcm9tIDljMTQwMDM2ZTljNGQxNzNhMTli OGUzZDYxODc1MjZkNjhmYmQ5N2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VU Ri04P3E/TWFyY289MjBUcmV2aXNhbj0yMD0yOFRyZXZpPUMzPUIxbz0yOT89IDxtYWlsQDN2MW4w Lm5ldD4KLURhdGU6IFNhdCwgMjEgRmViIDIwMjYgMDU6NDA6NTYgKzAxMDAKLVN1YmplY3Q6IFtQ QVRDSCAxLzZdIGRvYzogSW5jbHVkZSBCaW5hcnkgYnVmZmVyIEkvTyBzZWN0aW9uIGZvciB0aGUg Ynl0ZQotIHJlYWRlci93cml0ZXIKLQotLS0tCi0gZG9jL2xpYmZwcmludC0yLXNlY3Rpb25zLnR4 dCB8IDEyMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIGRvYy9saWJmcHJp bnQtZG9jcy54bWwgICAgICAgfCAgIDYgKysKLSAyIGZpbGVzIGNoYW5nZWQsIDEyNiBpbnNlcnRp b25zKCspCi0KLWRpZmYgLS1naXQgYS9kb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0IGIvZG9j L2xpYmZwcmludC0yLXNlY3Rpb25zLnR4dAotaW5kZXggMGZiMGNmYS4uOWYzODA0ZiAxMDA2NDQK LS0tLSBhL2RvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQKLSsrKyBiL2RvYy9saWJmcHJpbnQt Mi1zZWN0aW9ucy50eHQKLUBAIC0xMzQsNiArMTM0LDEyNiBAQCBmcGlfbGluZV9hc21ibF9jdHgK LSBmcGlfYXNzZW1ibGVfbGluZXMKLSA8L1NFQ1RJT04+Ci0gCi0rPFNFQ1RJT04+Ci0rPEZJTEU+ ZnBpLWJ5dGUtcmVhZGVyPC9GSUxFPgotKzxUSVRMRT5GcGlCeXRlUmVhZGVyPC9USVRMRT4KLStG cGlCeXRlUmVhZGVyCi0rZnBpX2J5dGVfcmVhZGVyX25ldwotK2ZwaV9ieXRlX3JlYWRlcl9mcmVl Ci0rZnBpX2J5dGVfcmVhZGVyX2luaXQKLStmcGlfYnl0ZV9yZWFkZXJfcGVla19zdWJfcmVhZGVy Ci0rZnBpX2J5dGVfcmVhZGVyX2dldF9zdWJfcmVhZGVyCi0rZnBpX2J5dGVfcmVhZGVyX3NldF9w b3MKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X3BvcwotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfcmVtYWlu aW5nCi0rZnBpX2J5dGVfcmVhZGVyX2dldF9zaXplCi0rZnBpX2J5dGVfcmVhZGVyX3NraXAKLStm cGlfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQ4Ci0rZnBpX2J5dGVfcmVhZGVyX2dldF9pbnQ4Ci0rZnBp X2J5dGVfcmVhZGVyX3BlZWtfdWludDgKLStmcGlfYnl0ZV9yZWFkZXJfcGVla19pbnQ4Ci0rZnBp X2J5dGVfcmVhZGVyX2dldF91aW50MTZfbGUKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X2ludDE2X2xl Ci0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfdWludDE2X2xlCi0rZnBpX2J5dGVfcmVhZGVyX3BlZWtf aW50MTZfbGUKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQxNl9iZQotK2ZwaV9ieXRlX3JlYWRl cl9nZXRfaW50MTZfYmUKLStmcGlfYnl0ZV9yZWFkZXJfcGVla191aW50MTZfYmUKLStmcGlfYnl0 ZV9yZWFkZXJfcGVla19pbnQxNl9iZQotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfdWludDI0X2xlCi0r ZnBpX2J5dGVfcmVhZGVyX2dldF9pbnQyNF9sZQotK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX3VpbnQy NF9sZQotK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2xlCi0rZnBpX2J5dGVfcmVhZGVyX2dl dF91aW50MjRfYmUKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X2ludDI0X2JlCi0rZnBpX2J5dGVfcmVh ZGVyX3BlZWtfdWludDI0X2JlCi0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfYmUKLStmcGlf Ynl0ZV9yZWFkZXJfZ2V0X3VpbnQzMl9sZQotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfaW50MzJfbGUK LStmcGlfYnl0ZV9yZWFkZXJfcGVla191aW50MzJfbGUKLStmcGlfYnl0ZV9yZWFkZXJfcGVla19p bnQzMl9sZQotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfdWludDMyX2JlCi0rZnBpX2J5dGVfcmVhZGVy X2dldF9pbnQzMl9iZQotK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX3VpbnQzMl9iZQotK2ZwaV9ieXRl X3JlYWRlcl9wZWVrX2ludDMyX2JlCi0rZnBpX2J5dGVfcmVhZGVyX2dldF91aW50NjRfbGUKLStm cGlfYnl0ZV9yZWFkZXJfZ2V0X2ludDY0X2xlCi0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfdWludDY0 X2xlCi0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfaW50NjRfbGUKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0 X3VpbnQ2NF9iZQotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfaW50NjRfYmUKLStmcGlfYnl0ZV9yZWFk ZXJfcGVla191aW50NjRfYmUKLStmcGlfYnl0ZV9yZWFkZXJfcGVla19pbnQ2NF9iZQotK2ZwaV9i eXRlX3JlYWRlcl9nZXRfZmxvYXQzMl9sZQotK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX2Zsb2F0MzJf bGUKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X2Zsb2F0MzJfYmUKLStmcGlfYnl0ZV9yZWFkZXJfcGVl a19mbG9hdDMyX2JlCi0rZnBpX2J5dGVfcmVhZGVyX2dldF9mbG9hdDY0X2xlCi0rZnBpX2J5dGVf cmVhZGVyX3BlZWtfZmxvYXQ2NF9sZQotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfZmxvYXQ2NF9iZQot K2ZwaV9ieXRlX3JlYWRlcl9wZWVrX2Zsb2F0NjRfYmUKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X2Rh dGEKLStmcGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhCi0rZnBpX2J5dGVfcmVhZGVyX2R1cF9kYXRh Ci0rZnBpX2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMgotK2ZwaV9ieXRlX3JlYWRlcl9t YXNrZWRfc2Nhbl91aW50MzJfcGVlawotK2ZwaV9ieXRlX3JlYWRlcl9za2lwX3N0cmluZwotK2Zw aV9ieXRlX3JlYWRlcl9za2lwX3N0cmluZ191dGY4Ci0rZnBpX2J5dGVfcmVhZGVyX3NraXBfc3Ry aW5nX3V0ZjE2Ci0rZnBpX2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nX3V0ZjMyCi0rZnBpX2J5dGVf cmVhZGVyX3BlZWtfc3RyaW5nCi0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfc3RyaW5nX3V0ZjgKLStm cGlfYnl0ZV9yZWFkZXJfZ2V0X3N0cmluZ191dGY4Ci0rZnBpX2J5dGVfcmVhZGVyX2R1cF9zdHJp bmdfdXRmOAotK2ZwaV9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nX3V0ZjE2Ci0rZnBpX2J5dGVfcmVh ZGVyX2R1cF9zdHJpbmdfdXRmMzIKLSs8L1NFQ1RJT04+Ci0rCi0rPFNFQ1RJT04+Ci0rPEZJTEU+ ZnBpLWJ5dGUtd3JpdGVyPC9GSUxFPgotKzxUSVRMRT5GcGlCeXRlV3JpdGVyPC9USVRMRT4KLStG cGlCeXRlV3JpdGVyCi0rZnBpX2J5dGVfd3JpdGVyX25ldwotK2ZwaV9ieXRlX3dyaXRlcl9uZXdf d2l0aF9zaXplCi0rZnBpX2J5dGVfd3JpdGVyX25ld193aXRoX2RhdGEKLStmcGlfYnl0ZV93cml0 ZXJfaW5pdAotK2ZwaV9ieXRlX3dyaXRlcl9pbml0X3dpdGhfc2l6ZQotK2ZwaV9ieXRlX3dyaXRl cl9pbml0X3dpdGhfZGF0YQotK2ZwaV9ieXRlX3dyaXRlcl9yZXNldAotK2ZwaV9ieXRlX3dyaXRl cl9yZXNldF9hbmRfZ2V0X2RhdGEKLStmcGlfYnl0ZV93cml0ZXJfZnJlZQotK2ZwaV9ieXRlX3dy aXRlcl9mcmVlX2FuZF9nZXRfZGF0YQotK2ZwaV9ieXRlX3dyaXRlcl9nZXRfcmVtYWluaW5nCi0r ZnBpX2J5dGVfd3JpdGVyX2Vuc3VyZV9mcmVlX3NwYWNlCi0rZnBpX2J5dGVfd3JpdGVyX3B1dF91 aW50OAotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDE2X2JlCi0rZnBpX2J5dGVfd3JpdGVyX3B1 dF91aW50MjRfYmUKLStmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQzMl9iZQotK2ZwaV9ieXRlX3dy aXRlcl9wdXRfdWludDY0X2JlCi0rZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50MTZfbGUKLStmcGlf Ynl0ZV93cml0ZXJfcHV0X3VpbnQyNF9sZQotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDMyX2xl Ci0rZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50NjRfbGUKLStmcGlfYnl0ZV93cml0ZXJfcHV0X2lu dDgKLStmcGlfYnl0ZV93cml0ZXJfcHV0X2ludDE2X2JlCi0rZnBpX2J5dGVfd3JpdGVyX3B1dF9p bnQyNF9iZQotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfaW50MzJfYmUKLStmcGlfYnl0ZV93cml0ZXJf cHV0X2ludDY0X2JlCi0rZnBpX2J5dGVfd3JpdGVyX3B1dF9pbnQxNl9sZQotK2ZwaV9ieXRlX3dy aXRlcl9wdXRfaW50MjRfbGUKLStmcGlfYnl0ZV93cml0ZXJfcHV0X2ludDMyX2xlCi0rZnBpX2J5 dGVfd3JpdGVyX3B1dF9pbnQ2NF9sZQotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfZmxvYXQzMl9iZQot K2ZwaV9ieXRlX3dyaXRlcl9wdXRfZmxvYXQ2NF9iZQotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfZmxv YXQzMl9sZQotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfZmxvYXQ2NF9sZQotK2ZwaV9ieXRlX3dyaXRl cl9wdXRfc3RyaW5nX3V0ZjgKLStmcGlfYnl0ZV93cml0ZXJfcHV0X3N0cmluZ191dGYxNgotK2Zw aV9ieXRlX3dyaXRlcl9wdXRfc3RyaW5nX3V0ZjMyCi0rZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRh Ci0rZnBpX2J5dGVfd3JpdGVyX2ZpbGwKLSs8L1NFQ1RJT04+Ci0rCi0gPFNFQ1RJT04+Ci0gPEZJ TEU+ZnBpLWNvbnRleHQ8L0ZJTEU+Ci0gZnBpX2dldF9kcml2ZXJfdHlwZXMKLWRpZmYgLS1naXQg YS9kb2MvbGliZnByaW50LWRvY3MueG1sIGIvZG9jL2xpYmZwcmludC1kb2NzLnhtbAotaW5kZXgg MGE1N2VmYi4uMDliYjgyNiAxMDA2NDQKLS0tLSBhL2RvYy9saWJmcHJpbnQtZG9jcy54bWwKLSsr KyBiL2RvYy9saWJmcHJpbnQtZG9jcy54bWwKLUBAIC00OCw2ICs0OCwxMiBAQAotICAgICAgIDx4 aTppbmNsdWRlIGhyZWY9InhtbC9mcGktbG9nLnhtbCIvPgotICAgICA8L2NoYXB0ZXI+Ci0gCi0r ICAgIDxjaGFwdGVyIGlkPSJkcml2ZXItZGF0YSI+Ci0rICAgICAgPHRpdGxlPkJpbmFyeSBidWZm ZXIgSS9PPC90aXRsZT4KLSsgICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvZnBpLWJ5dGUtcmVh ZGVyLnhtbCIvPgotKyAgICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9mcGktYnl0ZS13cml0ZXIu eG1sIi8+Ci0rICAgIDwvY2hhcHRlcj4KLSsKLSAgICAgPGNoYXB0ZXIgaWQ9ImRyaXZlci1pbWci PgotICAgICAgIDx0aXRsZT5JbWFnZSBtYW5pcHVsYXRpb248L3RpdGxlPgotICAgICAgIDx4aTpp bmNsdWRlIGhyZWY9InhtbC9mcGktaW1hZ2UueG1sIi8+Ci0tLSAKLTIuNTQuMAotCgpkaWZmIC0t Z2l0IGEvMDAwMi1mcGktYnl0ZS13cml0ZXItQWRkLUFQSXMtdG8td3JpdGUtYW5kLWdldC1HQnl0 ZXMucGF0Y2ggYi8wMDAyLWZwaS1ieXRlLXdyaXRlci1BZGQtQVBJcy10by13cml0ZS1hbmQtZ2V0 LUdCeXRlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjg4M2NjOS4uMDAw MDAwMAotLS0gYS8wMDAyLWZwaS1ieXRlLXdyaXRlci1BZGQtQVBJcy10by13cml0ZS1hbmQtZ2V0 LUdCeXRlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0NSArMCwwIEBACi1Gcm9tIDE0NzYz ZDI5Y2YxZTVlYzk2MjhmZDYzOTAzNDY3NWU5YjIyYWZmMWUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2aXNhbj0yMD0yOFRyZXZpPUMzPUIxbz0y OT89IDxtYWlsQDN2MW4wLm5ldD4KLURhdGU6IE1vbiwgOCBKdW4gMjAyNiAxNDoxMTowOSArMDIw MAotU3ViamVjdDogW1BBVENIIDIvNl0gZnBpLWJ5dGUtd3JpdGVyOiBBZGQgQVBJcyB0byB3cml0 ZSBhbmQgZ2V0IEdCeXRlcwotCi1JdCBtYWtlcyBpdCBoYW5kaWVyIHRvIGhhbmRsZSBkYXRhIGVs ZW1lbnRzIHdpdGhvdXQgaGF2aW5nIHRvIGtlZXAgc2l6ZQotYW5kIGRhdGEgc2VwYXJhdGVkCi0t LS0KLSBkb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0IHwgIDIgKysKLSBsaWJmcHJpbnQvZnBp LWJ5dGUtd3JpdGVyLmMgIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ci0gbGliZnByaW50L2ZwaS1ieXRlLXdyaXRlci5oICB8IDIyICsrKysrKysrKysrKysrKysrKysr Ci0gMyBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9kb2Mv bGliZnByaW50LTItc2VjdGlvbnMudHh0IGIvZG9jL2xpYmZwcmludC0yLXNlY3Rpb25zLnR4dAot aW5kZXggOWYzODA0Zi4uOTk1YWQ1MCAxMDA2NDQKLS0tLSBhL2RvYy9saWJmcHJpbnQtMi1zZWN0 aW9ucy50eHQKLSsrKyBiL2RvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQKLUBAIC0yMjAsMTEg KzIyMCwxMyBAQCBmcGlfYnl0ZV93cml0ZXJfaW5pdAotIGZwaV9ieXRlX3dyaXRlcl9pbml0X3dp dGhfc2l6ZQotIGZwaV9ieXRlX3dyaXRlcl9pbml0X3dpdGhfZGF0YQotIGZwaV9ieXRlX3dyaXRl cl9yZXNldAotK2ZwaV9ieXRlX3dyaXRlcl9yZXNldF9hbmRfZ2V0X2J5dGVzCi0gZnBpX2J5dGVf d3JpdGVyX3Jlc2V0X2FuZF9nZXRfZGF0YQotIGZwaV9ieXRlX3dyaXRlcl9mcmVlCi0gZnBpX2J5 dGVfd3JpdGVyX2ZyZWVfYW5kX2dldF9kYXRhCi0gZnBpX2J5dGVfd3JpdGVyX2dldF9yZW1haW5p bmcKLSBmcGlfYnl0ZV93cml0ZXJfZW5zdXJlX2ZyZWVfc3BhY2UKLStmcGlfYnl0ZV93cml0ZXJf cHV0X2J5dGVzCi0gZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50OAotIGZwaV9ieXRlX3dyaXRlcl9w dXRfdWludDE2X2JlCi0gZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50MjRfYmUKLWRpZmYgLS1naXQg YS9saWJmcHJpbnQvZnBpLWJ5dGUtd3JpdGVyLmMgYi9saWJmcHJpbnQvZnBpLWJ5dGUtd3JpdGVy LmMKLWluZGV4IGNiMzUxNGEuLjAwZmY0NDcgMTAwNjQ0Ci0tLS0gYS9saWJmcHJpbnQvZnBpLWJ5 dGUtd3JpdGVyLmMKLSsrKyBiL2xpYmZwcmludC9mcGktYnl0ZS13cml0ZXIuYwotQEAgLTIxOSw2 ICsyMTksMzYgQEAgZnBpX2J5dGVfd3JpdGVyX3Jlc2V0X2FuZF9nZXRfZGF0YSAoRnBpQnl0ZVdy aXRlciAqIHdyaXRlcikKLSAgIHJldHVybiBkYXRhOwotIH0KLSAKLSsvKioKLSsgKiBmcGlfYnl0 ZV93cml0ZXJfcmVzZXRfYW5kX2dldF9ieXRlczoKLSsgKiBAd3JpdGVyOiAjRnBpQnl0ZVdyaXRl ciBpbnN0YW5jZQotKyAqCi0rICogUmVzZXRzIEB3cml0ZXIgYW5kIHJldHVybnMgdGhlIGN1cnJl bnQgZGF0YSBhcyBhICNHQnl0ZXMuCi0rICoKLSsgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6 IHRoZSBjdXJyZW50IGRhdGEgYXMgYSAjR0J5dGVzLgotKyAqLwotK0dCeXRlcyAqCi0rZnBpX2J5 dGVfd3JpdGVyX3Jlc2V0X2FuZF9nZXRfYnl0ZXMgKEZwaUJ5dGVXcml0ZXIgKiB3cml0ZXIpCi0r ewotKyAgR0J5dGVzICpieXRlczsKLSsKLSsgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh3cml0ZXIg IT0gTlVMTCwgTlVMTCk7Ci0rCi0rICBpZiAoIXdyaXRlci0+b3duZWQpCi0rICAgIHsKLSsgICAg ICBieXRlcyA9IGdfYnl0ZXNfbmV3IChnX3N0ZWFsX3BvaW50ZXIgKCZ3cml0ZXItPnBhcmVudC5k YXRhKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZXItPnBhcmVudC5zaXplKTsK LSsgICAgfQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgYnl0ZXMgPSBnX2J5dGVzX25ld190YWtl ICgoZ3BvaW50ZXIpIGdfc3RlYWxfcG9pbnRlciAoJndyaXRlci0+cGFyZW50LmRhdGEpLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLT5wYXJlbnQuc2l6ZSk7Ci0rICAg IH0KLSsKLSsgIGZwaV9ieXRlX3dyaXRlcl9yZXNldCAod3JpdGVyKTsKLSsgIHJldHVybiBnX3N0 ZWFsX3BvaW50ZXIgKCZieXRlcyk7Ci0rfQotKwotIC8qKgotICAqIGZwaV9ieXRlX3dyaXRlcl9m cmVlOgotICAqIEB3cml0ZXI6IChpbikgKHRyYW5zZmVyIGZ1bGwpOiAjRnBpQnl0ZVdyaXRlciBp bnN0YW5jZQotQEAgLTYwMiw2ICs2MzIsMTUgQEAgQ1JFQVRFX1dSSVRFX1NUUklOR19GVU5DICgz MiwgZ3VpbnQzMik7Ci0gICoKLSAgKiBSZXR1cm5zOiAlVFJVRSBpZiB0aGUgdmFsdWUgY291bGQg YmUgd3JpdHRlbgotICAqLwotKy8qKgotKyAqIGZwaV9ieXRlX3dyaXRlcl9wdXRfYnl0ZXM6Ci0r ICogQHdyaXRlcjogI0ZwaUJ5dGVXcml0ZXIgaW5zdGFuY2UKLSsgKiBAYnl0ZXM6ICh0cmFuc2Zl ciBub25lKTogRGF0YSB0byB3cml0ZQotKyAqCi0rICogV3JpdGVzIHRoZSBjb250ZW50cyBvZiBA Ynl0ZXMgdG8gQHdyaXRlci4KLSsgKgotKyAqIFJldHVybnM6ICVUUlVFIGlmIHRoZSB2YWx1ZSBj b3VsZCBiZSB3cml0dGVuCi0rICovCi0gLyoqCi0gICogZnBpX2J5dGVfd3JpdGVyX2ZpbGw6Ci0g ICogQHdyaXRlcjogI0ZwaUJ5dGVXcml0ZXIgaW5zdGFuY2UKLWRpZmYgLS1naXQgYS9saWJmcHJp bnQvZnBpLWJ5dGUtd3JpdGVyLmggYi9saWJmcHJpbnQvZnBpLWJ5dGUtd3JpdGVyLmgKLWluZGV4 IDliMjFiNWYuLjY5OWU4NWUgMTAwNjQ0Ci0tLS0gYS9saWJmcHJpbnQvZnBpLWJ5dGUtd3JpdGVy LmgKLSsrKyBiL2xpYmZwcmludC9mcGktYnl0ZS13cml0ZXIuaAotQEAgLTc3LDYgKzc3LDkgQEAg dm9pZCAgICAgICAgICAgIGZwaV9ieXRlX3dyaXRlcl9yZXNldCAgICAgICAgICAgICAgICAgICAo RnBpQnl0ZVdyaXRlciAqd3JpdGVyKTsKLSAKLSBndWludDggKiAgICAgICAgZnBpX2J5dGVfd3Jp dGVyX3Jlc2V0X2FuZF9nZXRfZGF0YSAgICAgIChGcGlCeXRlV3JpdGVyICp3cml0ZXIpOwotIAot KwotK0dCeXRlcyAqICAgICAgICBmcGlfYnl0ZV93cml0ZXJfcmVzZXRfYW5kX2dldF9ieXRlcyAg ICAgKEZwaUJ5dGVXcml0ZXIgKndyaXRlcik7Ci0rCi0gLyoqCi0gICogZnBpX2J5dGVfd3JpdGVy X2dldF9wb3M6Ci0gICogQHdyaXRlcjogI0ZwaUJ5dGVXcml0ZXIgaW5zdGFuY2UKLUBAIC0yMDQs NiArMjA3LDkgQEAgZ2Jvb2xlYW4gICAgICAgIGZwaV9ieXRlX3dyaXRlcl9wdXRfZmxvYXQ2NF9s ZSAgICAoRnBpQnl0ZVdyaXRlciAqd3JpdGVyLCBnZG91YmwKLSBnYm9vbGVhbiAgICAgICAgZnBp X2J5dGVfd3JpdGVyX3B1dF9kYXRhICAgICAgICAgIChGcGlCeXRlV3JpdGVyICp3cml0ZXIsIGNv bnN0IGd1aW50OCAqZGF0YSwgZ3VpbnQgc2l6ZSk7Ci0gCi0gCi0rZ2Jvb2xlYW4gICAgICAgIGZw aV9ieXRlX3dyaXRlcl9wdXRfYnl0ZXMgICAgICAgICAoRnBpQnl0ZVdyaXRlciAqd3JpdGVyLCBj b25zdCBHQnl0ZXMgKmJ5dGVzKTsKLSsKLSsKLSBnYm9vbGVhbiAgICAgICAgZnBpX2J5dGVfd3Jp dGVyX2ZpbGwgICAgICAgICAgICAgIChGcGlCeXRlV3JpdGVyICp3cml0ZXIsIGd1aW50OCB2YWx1 ZSwgZ3VpbnQgc2l6ZSk7Ci0gCi0gCi1AQCAtMzM4LDYgKzM0NCwxOCBAQCBmcGlfYnl0ZV93cml0 ZXJfcHV0X2RhdGFfaW5saW5lIChGcGlCeXRlV3JpdGVyICogd3JpdGVyLCBjb25zdCBndWludDgg KiBkYXRhLAotICAgcmV0dXJuIFRSVUU7Ci0gfQotIAotK3N0YXRpYyBpbmxpbmUgZ2Jvb2xlYW4K LStmcGlfYnl0ZV93cml0ZXJfcHV0X2J5dGVzX2lubGluZSAoRnBpQnl0ZVdyaXRlciAqIHdyaXRl ciwgY29uc3QgR0J5dGVzICogYnl0ZXMpCi0rewotKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHdy aXRlciAhPSBOVUxMLCBGQUxTRSk7Ci0rICBnX3JldHVybl92YWxfaWZfZmFpbCAoYnl0ZXMgIT0g TlVMTCwgRkFMU0UpOwotKyAgY29uc3QgZ3VpbnQ4ICpkYXRhOwotKyAgZ3NpemUgc2l6ZTsKLSsK LSsgIGRhdGEgPSBnX2J5dGVzX2dldF9kYXRhICgoR0J5dGVzICopIGJ5dGVzLCAmc2l6ZSk7Ci0r ICByZXR1cm4gZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhX2lubGluZSAod3JpdGVyLCBkYXRhLCBz aXplKTsKLSt9Ci0rCi0gc3RhdGljIGlubGluZSB2b2lkCi0gZnBpX2J5dGVfd3JpdGVyX2ZpbGxf dW5jaGVja2VkIChGcGlCeXRlV3JpdGVyICogd3JpdGVyLCBndWludDggdmFsdWUsIGd1aW50IHNp emUpCi0gewotQEAgLTQxMyw2ICs0MzEsMTAgQEAgZnBpX2J5dGVfd3JpdGVyX2ZpbGxfaW5saW5l IChGcGlCeXRlV3JpdGVyICogd3JpdGVyLCBndWludDggdmFsdWUsIGd1aW50IHNpemUpCi0gCi0g I2RlZmluZSBmcGlfYnl0ZV93cml0ZXJfcHV0X2RhdGEod3JpdGVyLCBkYXRhLCBzaXplKSBcCi0g ICAgIEdfTElLRUxZIChmcGlfYnl0ZV93cml0ZXJfcHV0X2RhdGFfaW5saW5lICh3cml0ZXIsIGRh dGEsIHNpemUpKQotKyNkZWZpbmUgZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhX3N0YXRpYyh3cml0 ZXIsIGRhdGEpIFwKLSsgICAgR19MSUtFTFkgKGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YV9pbmxp bmUgKHdyaXRlciwgZGF0YSwgc2l6ZW9mIChkYXRhKSkpCi0rI2RlZmluZSBmcGlfYnl0ZV93cml0 ZXJfcHV0X2J5dGVzKHdyaXRlciwgYnl0ZXMpIFwKLSsgICAgR19MSUtFTFkgKGZwaV9ieXRlX3dy aXRlcl9wdXRfYnl0ZXNfaW5saW5lICh3cml0ZXIsIGJ5dGVzKSkKLSAjZGVmaW5lIGZwaV9ieXRl X3dyaXRlcl9maWxsKHdyaXRlciwgdmFsLCBzaXplKSBcCi0gICAgIEdfTElLRUxZIChmcGlfYnl0 ZV93cml0ZXJfZmlsbF9pbmxpbmUgKHdyaXRlciwgdmFsLCBzaXplKSkKLSAKLS0tIAotMi41NC4w Ci0KCmRpZmYgLS1naXQgYS8wMDAzLWZwaS1ieXRlLXJlYWRlci1BZGQtc3VwcG9ydC10by1yZWFk LWFuZC1nZXQtcGVlay1HQnkucGF0Y2ggYi8wMDAzLWZwaS1ieXRlLXJlYWRlci1BZGQtc3VwcG9y dC10by1yZWFkLWFuZC1nZXQtcGVlay1HQnkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDM1MjdiYWMuLjAwMDAwMDAKLS0tIGEvMDAwMy1mcGktYnl0ZS1yZWFkZXItQWRkLXN1 cHBvcnQtdG8tcmVhZC1hbmQtZ2V0LXBlZWstR0J5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTg3ICswLDAgQEAKLUZyb20gZGM0OGFiOGI0MDE4ZDFjMWNjNDVjYWZhYWZiZGFjMGUzZDc3MjZm ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZp c2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5Pz0gPG1haWxAM3YxbjAubmV0PgotRGF0ZTogTW9uLCA4 IEp1biAyMDI2IDE0OjE1OjI4ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMy82XSBmcGktYnl0ZS1y ZWFkZXI6IEFkZCBzdXBwb3J0IHRvIHJlYWQgYW5kIGdldC9wZWVrIEdCeXRlcwotCi0tLS0KLSBk b2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0IHwgIDQgKysrCi0gbGliZnByaW50L2ZwaS1ieXRl LXJlYWRlci5jICB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIGxp YmZwcmludC9mcGktYnl0ZS1yZWFkZXIuaCAgfCA0MyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCi0gMyBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQg YS9kb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0IGIvZG9jL2xpYmZwcmludC0yLXNlY3Rpb25z LnR4dAotaW5kZXggOTk1YWQ1MC4uNTJkZGI0MiAxMDA2NDQKLS0tLSBhL2RvYy9saWJmcHJpbnQt Mi1zZWN0aW9ucy50eHQKLSsrKyBiL2RvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQKLUBAIC0x MzksOCArMTM5LDEwIEBAIGZwaV9hc3NlbWJsZV9saW5lcwotIDxUSVRMRT5GcGlCeXRlUmVhZGVy PC9USVRMRT4KLSBGcGlCeXRlUmVhZGVyCi0gZnBpX2J5dGVfcmVhZGVyX25ldwotK2ZwaV9ieXRl X3JlYWRlcl9uZXdfYnl0ZXMKLSBmcGlfYnl0ZV9yZWFkZXJfZnJlZQotIGZwaV9ieXRlX3JlYWRl cl9pbml0Ci0rZnBpX2J5dGVfcmVhZGVyX2luaXRfYnl0ZXMKLSBmcGlfYnl0ZV9yZWFkZXJfcGVl a19zdWJfcmVhZGVyCi0gZnBpX2J5dGVfcmVhZGVyX2dldF9zdWJfcmVhZGVyCi0gZnBpX2J5dGVf cmVhZGVyX3NldF9wb3MKLUBAIC0xNDgsNiArMTUwLDggQEAgZnBpX2J5dGVfcmVhZGVyX2dldF9w b3MKLSBmcGlfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFpbmluZwotIGZwaV9ieXRlX3JlYWRlcl9nZXRf c2l6ZQotIGZwaV9ieXRlX3JlYWRlcl9za2lwCi0rZnBpX2J5dGVfcmVhZGVyX2dldF9ieXRlcwot K2ZwaV9ieXRlX3JlYWRlcl9wZWVrX2J5dGVzCi0gZnBpX2J5dGVfcmVhZGVyX2dldF91aW50OAot IGZwaV9ieXRlX3JlYWRlcl9nZXRfaW50OAotIGZwaV9ieXRlX3JlYWRlcl9wZWVrX3VpbnQ4Ci1k aWZmIC0tZ2l0IGEvbGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5jIGIvbGliZnByaW50L2ZwaS1i eXRlLXJlYWRlci5jCi1pbmRleCAyM2JjNWU3Li4xNTkxODI1IDEwMDY0NAotLS0tIGEvbGliZnBy aW50L2ZwaS1ieXRlLXJlYWRlci5jCi0rKysgYi9saWJmcHJpbnQvZnBpLWJ5dGUtcmVhZGVyLmMK LUBAIC02NSw2ICs2NSwzMSBAQCBmcGlfYnl0ZV9yZWFkZXJfbmV3IChjb25zdCBndWludDggKiBk YXRhLCBndWludCBzaXplKQotICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0rLyoqCi0rICogZnBpX2J5 dGVfcmVhZGVyX25ld19ieXRlczogKHNraXApCi0rICogQGJ5dGVzOiAoaW4pICh0cmFuc2ZlciBu b25lKTogYSAjR0J5dGVzIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlCi0rICogICAgICNGcGlCeXRl UmVhZGVyIHNob3VsZCByZWFkCi0rICoKLSsgKiBDcmVhdGUgYSBuZXcgI0ZwaUJ5dGVSZWFkZXIg aW5zdGFuY2UsIHdoaWNoIHdpbGwgcmVhZCBmcm9tIEBieXRlcy4KLSsgKgotKyAqIEZyZWUtZnVu Y3Rpb246IGZwaV9ieXRlX3JlYWRlcl9mcmVlCi0rICoKLSsgKiBSZXR1cm5zOiAodHJhbnNmZXIg ZnVsbCk6IGEgbmV3ICNGcGlCeXRlUmVhZGVyIGluc3RhbmNlCi0rICovCi0rRnBpQnl0ZVJlYWRl ciAqCi0rZnBpX2J5dGVfcmVhZGVyX25ld19ieXRlcyAoR0J5dGVzICogYnl0ZXMpCi0rewotKyAg Y29uc3QgZ3VpbnQ4ICpkYXRhOwotKyAgZ3NpemUgc2l6ZSA9IDA7Ci0rCi0rICBnX3JldHVybl92 YWxfaWZfZmFpbCAoYnl0ZXMgIT0gTlVMTCwgTlVMTCk7Ci0rCi0rICBkYXRhID0gZ19ieXRlc19n ZXRfZGF0YSAoYnl0ZXMsICZzaXplKTsKLSsgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzaXplIDw9 IEdfTUFYVUlOVCwgTlVMTCk7Ci0rCi0rICByZXR1cm4gZnBpX2J5dGVfcmVhZGVyX25ldyAoZGF0 YSwgKGd1aW50KSBzaXplKTsKLSt9Ci0rCi0gLyoqCi0gICogZnBpX2J5dGVfcmVhZGVyX2ZyZWU6 Ci0gICogQHJlYWRlcjogKGluKSAodHJhbnNmZXIgZnVsbCk6IGEgI0ZwaUJ5dGVSZWFkZXIgaW5z dGFuY2UKLUBAIC0xMDAsNiArMTI1LDMwIEBAIGZwaV9ieXRlX3JlYWRlcl9pbml0IChGcGlCeXRl UmVhZGVyICogcmVhZGVyLCBjb25zdCBndWludDggKiBkYXRhLCBndWludCBzaXplKQotICAgcmVh ZGVyLT5ieXRlID0gMDsKLSB9Ci0gCi0rLyoqCi0rICogZnBpX2J5dGVfcmVhZGVyX2luaXRfYnl0 ZXM6Ci0rICogQHJlYWRlcjogYSAjRnBpQnl0ZVJlYWRlciBpbnN0YW5jZQotKyAqIEBieXRlczog KGluKSAodHJhbnNmZXIgbm9uZSk6IGEgI0dCeXRlcyBpbnN0YW5jZSBmcm9tIHdoaWNoCi0rICog ICAgIHRoZSAjRnBpQnl0ZVJlYWRlciBzaG91bGQgcmVhZAotKyAqCi0rICogSW5pdGlhbGl6ZXMg YSAjRnBpQnl0ZVJlYWRlciBpbnN0YW5jZSB0byByZWFkIGZyb20gQGJ5dGVzLiBUaGlzIGZ1bmN0 aW9uCi0rICogY2FuIGJlIGNhbGxlZCBvbiBhbHJlYWR5IGluaXRpYWxpemVkIGluc3RhbmNlcy4K LSsgKi8KLStGcGlCeXRlUmVhZGVyICoKLStmcGlfYnl0ZV9yZWFkZXJfaW5pdF9ieXRlcyAoRnBp Qnl0ZVJlYWRlciAqIHJlYWRlciwgR0J5dGVzICogYnl0ZXMpCi0rewotKyAgZ19yZXR1cm5fdmFs X2lmX2ZhaWwgKHJlYWRlciAhPSBOVUxMLCBOVUxMKTsKLSsgIGdfcmV0dXJuX3ZhbF9pZl9mYWls IChieXRlcyAhPSBOVUxMLCBOVUxMKTsKLSsKLSsgIGdzaXplIHNpemUgPSAwOwotKyAgY29uc3Qg Z3VpbnQ4ICpkYXRhID0gZ19ieXRlc19nZXRfZGF0YSAoYnl0ZXMsICZzaXplKTsKLSsKLSsgIGdf cmV0dXJuX3ZhbF9pZl9mYWlsIChzaXplIDw9IEdfTUFYVUlOVCwgTlVMTCk7Ci0rICBmcGlfYnl0 ZV9yZWFkZXJfaW5pdCAocmVhZGVyLCBkYXRhLCAoZ3VpbnQpIHNpemUpOwotKwotKyAgcmV0dXJu IHJlYWRlcjsKLSt9Ci0rCi0gLyoqCi0gICogZnBpX2J5dGVfcmVhZGVyX3BlZWtfc3ViX3JlYWRl cjogKHNraXApCi0gICogQHJlYWRlcjogYW4gZXhpc3RpbmcgYW5kIGluaXRpYWxpemVkICNGcGlC eXRlUmVhZGVyIGluc3RhbmNlCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2ZwaS1ieXRlLXJlYWRl ci5oIGIvbGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5oCi1pbmRleCBjNGU2NGQyLi4wNWEzOTg5 IDEwMDY0NAotLS0tIGEvbGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5oCi0rKysgYi9saWJmcHJp bnQvZnBpLWJ5dGUtcmVhZGVyLmgKLUBAIC01MCw2ICs1MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsK LSAKLSBGcGlCeXRlUmVhZGVyICogZnBpX2J5dGVfcmVhZGVyX25ldyAgICAgICAgICAgICAoY29u c3QgZ3VpbnQ4ICpkYXRhLCBndWludCBzaXplKSBHX0dOVUNfTUFMTE9DOwotIAotK0ZwaUJ5dGVS ZWFkZXIgKiBmcGlfYnl0ZV9yZWFkZXJfbmV3X2J5dGVzICAgICAgIChHQnl0ZXMgKmJ5dGVzKSBH X0dOVUNfTUFMTE9DOwotIAotIHZvaWQgICAgICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfZnJlZSAg ICAgICAgICAgIChGcGlCeXRlUmVhZGVyICpyZWFkZXIpOwotIAotQEAgLTU3LDYgKzU4LDkgQEAg dm9pZCAgICAgICAgICAgIGZwaV9ieXRlX3JlYWRlcl9mcmVlICAgICAgICAgICAgKEZwaUJ5dGVS ZWFkZXIgKnJlYWRlcik7Ci0gdm9pZCAgICAgICAgICAgIGZwaV9ieXRlX3JlYWRlcl9pbml0ICAg ICAgICAgICAgKEZwaUJ5dGVSZWFkZXIgKnJlYWRlciwgY29uc3QgZ3VpbnQ4ICpkYXRhLCBndWlu dCBzaXplKTsKLSAKLSAKLStGcGlCeXRlUmVhZGVyICogZnBpX2J5dGVfcmVhZGVyX2luaXRfYnl0 ZXMgICAgICAoRnBpQnl0ZVJlYWRlciAqcmVhZGVyLCBHQnl0ZXMgKmJ5dGVzKTsKLSsKLSsKLSBn Ym9vbGVhbiAgICAgICAgZnBpX2J5dGVfcmVhZGVyX3BlZWtfc3ViX3JlYWRlciAoRnBpQnl0ZVJl YWRlciAqIHJlYWRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRnBpQnl0ZVJlYWRlciAqIHN1Yl9yZWFkZXIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICBzaXplKTsKLUBA IC0yMjAsNiArMjI0LDEzIEBAIGdib29sZWFuICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2Rh dGEgICAgICAgIChGcGlCeXRlUmVhZGVyICogcmVhZGVyLCBndWludCBzCi0gCi0gZ2Jvb2xlYW4g ICAgICAgIGZwaV9ieXRlX3JlYWRlcl9wZWVrX2RhdGEgICAgICAgKGNvbnN0IEZwaUJ5dGVSZWFk ZXIgKiByZWFkZXIsIGd1aW50IHNpemUsIGNvbnN0IGd1aW50OCAqKiB2YWwpOwotIAotKwotK0dC eXRlcyAqICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2J5dGVzICAgICAgIChGcGlCeXRlUmVh ZGVyICpyZWFkZXIsIGd1aW50IHNpemUpOwotKwotKwotK0dCeXRlcyAqICAgICAgICBmcGlfYnl0 ZV9yZWFkZXJfcGVla19ieXRlcyAgICAgIChjb25zdCBGcGlCeXRlUmVhZGVyICpyZWFkZXIsIGd1 aW50IHNpemUpOwotKwotKwotICNkZWZpbmUgZnBpX2J5dGVfcmVhZGVyX2R1cF9zdHJpbmcocmVh ZGVyLHN0cikgXAotICAgICBmcGlfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZ191dGY4KHJlYWRlcixz dHIpCi0gCi1AQCAtNjQyLDYgKzY1MywzNCBAQCBmcGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhX2lu bGluZSAoY29uc3QgRnBpQnl0ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgc2l6ZSwgY29ucwotICAg cmV0dXJuIFRSVUU7Ci0gfQotIAotK3N0YXRpYyBpbmxpbmUgR0J5dGVzICoKLStmcGlfYnl0ZV9y ZWFkZXJfcGVla19ieXRlc19pbmxpbmUgKGNvbnN0IEZwaUJ5dGVSZWFkZXIgKnJlYWRlciwgZ3Vp bnQgc2l6ZSkKLSt7Ci0rICBjb25zdCBndWludDggKmRhdGE7Ci0rCi0rICBnX3JldHVybl92YWxf aWZfZmFpbCAocmVhZGVyICE9IE5VTEwsIE5VTEwpOwotKwotKyAgaWYgKEdfVU5MSUtFTFkgKHNp emUgPiByZWFkZXItPnNpemUgfHwgZnBpX2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmdfdW5jaGVj a2VkIChyZWFkZXIpIDwgc2l6ZSkpCi0rICAgIHJldHVybiBOVUxMOwotKwotKyAgZGF0YSA9IGZw aV9ieXRlX3JlYWRlcl9wZWVrX2RhdGFfdW5jaGVja2VkIChyZWFkZXIpOwotKyAgcmV0dXJuIGdf Ynl0ZXNfbmV3X3N0YXRpYyAoZGF0YSwgc2l6ZSk7Ci0rfQotKwotK3N0YXRpYyBpbmxpbmUgR0J5 dGVzICoKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X2J5dGVzX2lubGluZSAoRnBpQnl0ZVJlYWRlciAq cmVhZGVyLCBndWludCBzaXplKQotK3sKLSsgIGNvbnN0IGd1aW50OCAqZGF0YTsKLSsKLSsgIGdf cmV0dXJuX3ZhbF9pZl9mYWlsIChyZWFkZXIgIT0gTlVMTCwgTlVMTCk7Ci0rCi0rICBpZiAoR19V TkxJS0VMWSAoc2l6ZSA+IHJlYWRlci0+c2l6ZSB8fCBmcGlfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFp bmluZ191bmNoZWNrZWQgKHJlYWRlcikgPCBzaXplKSkKLSsgICAgcmV0dXJuIE5VTEw7Ci0rCi0r ICBkYXRhID0gZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhX3VuY2hlY2tlZCAocmVhZGVyLCBzaXpl KTsKLSsgIHJldHVybiBnX2J5dGVzX25ld19zdGF0aWMgKGRhdGEsIHNpemUpOwotK30KLSsKLSBz dGF0aWMgaW5saW5lIGd1aW50Ci0gZnBpX2J5dGVfcmVhZGVyX2dldF9wb3NfaW5saW5lIChjb25z dCBGcGlCeXRlUmVhZGVyICogcmVhZGVyKQotIHsKLUBAIC02NzIsNiArNzExLDEwIEBAIGZwaV9i eXRlX3JlYWRlcl9za2lwX2lubGluZSAoRnBpQnl0ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgbmJ5 dGVzKQotICAgICBHX0xJS0VMWShmcGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhX2lubGluZShyZWFk ZXIsc2l6ZSx2YWwpKQotICNkZWZpbmUgZnBpX2J5dGVfcmVhZGVyX3NraXAocmVhZGVyLG5ieXRl cykgXAotICAgICBHX0xJS0VMWShmcGlfYnl0ZV9yZWFkZXJfc2tpcF9pbmxpbmUocmVhZGVyLG5i eXRlcykpCi0rI2RlZmluZSBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2J5dGVzKHJlYWRlcixzaXplKSBc Ci0rICAgIGZwaV9ieXRlX3JlYWRlcl9nZXRfYnl0ZXNfaW5saW5lKHJlYWRlcixzaXplKQotKyNk ZWZpbmUgZnBpX2J5dGVfcmVhZGVyX3BlZWtfYnl0ZXMocmVhZGVyLHNpemUpIFwKLSsgICAgZnBp X2J5dGVfcmVhZGVyX3BlZWtfYnl0ZXNfaW5saW5lKHJlYWRlcixzaXplKQotIAotICNlbmRpZiAv KiBGUElfQllURV9SRUFERVJfRElTQUJMRV9JTkxJTkVTICovCi0gCi0tLSAKLTIuNTQuMAotCgpk aWZmIC0tZ2l0IGEvMDAwNC1mcGktYnl0ZS1yZWFkZXItQWRkLXN1cHBvcnQtdG8tcmVhZC10by1h LXN0YXRpYy1idWZmLnBhdGNoIGIvMDAwNC1mcGktYnl0ZS1yZWFkZXItQWRkLXN1cHBvcnQtdG8t cmVhZC10by1hLXN0YXRpYy1idWZmLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA3ZmUzYzIyLi4wMDAwMDAwCi0tLSBhLzAwMDQtZnBpLWJ5dGUtcmVhZGVyLUFkZC1zdXBwb3J0 LXRvLXJlYWQtdG8tYS1zdGF0aWMtYnVmZi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2MCAr MCwwIEBACi1Gcm9tIGY2YThjYWU1YjRmMTU1NTc2OTcwNmY3ZTViMjIyMTQ1ZmQzYmU4ZWUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2aXNhbj0y MD0yOFRyZXZpPUMzPUIxbz0yOT89IDxtYWlsQDN2MW4wLm5ldD4KLURhdGU6IE1vbiwgOCBKdW4g MjAyNiAxNDoxNjozNiArMDIwMAotU3ViamVjdDogW1BBVENIIDQvNl0gZnBpLWJ5dGUtcmVhZGVy OiBBZGQgc3VwcG9ydCB0byByZWFkIHRvIGEgc3RhdGljIGJ1ZmZlcgotCi1UaGlzIHdvcmtzIHRo cm91Z2ggbWFjcm9zIHdoZW4gdGhlIHNpemUgb2YgYSBidWZmZXIgaXMgc3RhdGljYWxseQotZGVm aW5lZAotLS0tCi0gZG9jL2xpYmZwcmludC0yLXNlY3Rpb25zLnR4dCB8ICAyICsrCi0gbGliZnBy aW50L2ZwaS1ieXRlLXJlYWRlci5jICB8IDM1ICsrKysrKysrKysrKysrKysrKysrKysKLSBsaWJm cHJpbnQvZnBpLWJ5dGUtcmVhZGVyLmggIHwgNTcgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCi0gMyBmaWxlcyBjaGFuZ2VkLCA5NCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1n aXQgYS9kb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0IGIvZG9jL2xpYmZwcmludC0yLXNlY3Rp b25zLnR4dAotaW5kZXggNTJkZGI0Mi4uMzkxZjFmNCAxMDA2NDQKLS0tLSBhL2RvYy9saWJmcHJp bnQtMi1zZWN0aW9ucy50eHQKLSsrKyBiL2RvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQKLUBA IC0xOTgsNiArMTk4LDggQEAgZnBpX2J5dGVfcmVhZGVyX2dldF9mbG9hdDY0X2JlCi0gZnBpX2J5 dGVfcmVhZGVyX3BlZWtfZmxvYXQ2NF9iZQotIGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YQotIGZw aV9ieXRlX3JlYWRlcl9wZWVrX2RhdGEKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGFfc3RhdGlj Ci0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0YV9zdGF0aWMKLSBmcGlfYnl0ZV9yZWFkZXJfZHVw X2RhdGEKLSBmcGlfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyCi0gZnBpX2J5dGVfcmVh ZGVyX21hc2tlZF9zY2FuX3VpbnQzMl9wZWVrCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2ZwaS1i eXRlLXJlYWRlci5jIGIvbGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5jCi1pbmRleCAxNTkxODI1 Li45NzA5YTQxIDEwMDY0NAotLS0tIGEvbGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5jCi0rKysg Yi9saWJmcHJpbnQvZnBpLWJ5dGUtcmVhZGVyLmMKLUBAIC04NDgsNiArODQ4LDQxIEBAIGZwaV9i eXRlX3JlYWRlcl9wZWVrX2RhdGEgKGNvbnN0IEZwaUJ5dGVSZWFkZXIgKiByZWFkZXIsIGd1aW50 IHNpemUsCi0gICByZXR1cm4gZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0YV9pbmxpbmUgKHJlYWRl ciwgc2l6ZSwgdmFsKTsKLSB9Ci0gCi0rLyoqCi0rICogZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRh X2ZpeGVkOgotKyAqIEByZWFkZXI6IGEgI0ZwaUJ5dGVSZWFkZXIgaW5zdGFuY2UKLSsgKiBAc2l6 ZTogU2l6ZSBpbiBieXRlcwotKyAqIEB2YWw6IChvdXQpIChhcnJheSBsZW5ndGg9c2l6ZSk6IGFk ZHJlc3Mgb2YgYSBidWZmZXIgdG8gY29weSBkYXRhIGludG8KLSsgKgotKyAqIENvcGllcyBAc2l6 ZSBieXRlcyBmcm9tIHRoZSBjdXJyZW50IGRhdGEgcG9zaXRpb24gaW50byBAdmFsIGlmIGF0Ci0r ICogbGVhc3QgQHNpemUgYnl0ZXMgYXJlIGxlZnQsIGFuZCB1cGRhdGVzIHRoZSBjdXJyZW50IHBv c2l0aW9uLgotKyAqCi0rICogUmV0dXJuczogJVRSVUUgaWYgc3VjY2Vzc2Z1bCwgJUZBTFNFIG90 aGVyd2lzZS4KLSsgKi8KLStnYm9vbGVhbgotKyhmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGFfc3Rh dGljKSAoRnBpQnl0ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgc2l6ZSwKLSsgICAgY29uc3QgZ3Vp bnQ4ICogdmFsKQotK3sKLSsgIHJldHVybiAoZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhX2lubGlu ZV9zdGF0aWMpIChyZWFkZXIsIHNpemUsIHZhbCk7Ci0rfQotKwotKy8qKgotKyAqIGZwaV9ieXRl X3JlYWRlcl9wZWVrX2RhdGFfZml4ZWQ6Ci0rICogQHJlYWRlcjogYSAjRnBpQnl0ZVJlYWRlciBp bnN0YW5jZQotKyAqIEBzaXplOiBTaXplIGluIGJ5dGVzCi0rICogQHZhbDogKG91dCkgKGFycmF5 IGxlbmd0aD1zaXplKTogYWRkcmVzcyBvZiBhIGJ1ZmZlciB0byBjb3B5IGRhdGEgaW50bwotKyAq Ci0rICogTGlrZSBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGFfZml4ZWQoKSBidXQgZG9lcyBub3Qg YWR2YW5jZSB0aGUgcG9zaXRpb24uCi0rICoKLSsgKiBSZXR1cm5zOiAlVFJVRSBpZiBzdWNjZXNz ZnVsLCAlRkFMU0Ugb3RoZXJ3aXNlLgotKyAqLwotK2dib29sZWFuCi0rKGZwaV9ieXRlX3JlYWRl cl9wZWVrX2RhdGFfc3RhdGljKSAoY29uc3QgRnBpQnl0ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQg c2l6ZSwKLSsgICAgZ3VpbnQ4ICogdmFsKQotK3sKLSsgIHJldHVybiAoZnBpX2J5dGVfcmVhZGVy X3BlZWtfZGF0YV9pbmxpbmVfc3RhdGljKSAocmVhZGVyLCBzaXplLCB2YWwpOwotK30KLSsKLSAv KioKLSAgKiBmcGlfYnl0ZV9yZWFkZXJfZHVwX2RhdGE6Ci0gICogQHJlYWRlcjogYSAjRnBpQnl0 ZVJlYWRlciBpbnN0YW5jZQotZGlmZiAtLWdpdCBhL2xpYmZwcmludC9mcGktYnl0ZS1yZWFkZXIu aCBiL2xpYmZwcmludC9mcGktYnl0ZS1yZWFkZXIuaAotaW5kZXggMDVhMzk4OS4uMjc4OTU5ZiAx MDA2NDQKLS0tLSBhL2xpYmZwcmludC9mcGktYnl0ZS1yZWFkZXIuaAotKysrIGIvbGliZnByaW50 L2ZwaS1ieXRlLXJlYWRlci5oCi1AQCAtMjIyLDkgKzIyMiwxNSBAQCBnYm9vbGVhbiAgICAgICAg ZnBpX2J5dGVfcmVhZGVyX2R1cF9kYXRhICAgICAgICAoRnBpQnl0ZVJlYWRlciAqIHJlYWRlciwg Z3VpbnQgcwotIGdib29sZWFuICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEgICAgICAg IChGcGlCeXRlUmVhZGVyICogcmVhZGVyLCBndWludCBzaXplLCBjb25zdCBndWludDggKiogdmFs KTsKLSAKLSAKLStnYm9vbGVhbiAgICAgICAgZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhX3N0YXRp YyAoRnBpQnl0ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgc2l6ZSwgY29uc3QgZ3VpbnQ4ICAqIHZh bCk7Ci0rCi0rCi0gZ2Jvb2xlYW4gICAgICAgIGZwaV9ieXRlX3JlYWRlcl9wZWVrX2RhdGEgICAg ICAgKGNvbnN0IEZwaUJ5dGVSZWFkZXIgKiByZWFkZXIsIGd1aW50IHNpemUsIGNvbnN0IGd1aW50 OCAqKiB2YWwpOwotIAotIAotK2dib29sZWFuICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfcGVla19k YXRhX3N0YXRpYyAoY29uc3QgRnBpQnl0ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgc2l6ZSwgZ3Vp bnQ4ICAgKiB2YWwpOwotKwotKwotIEdCeXRlcyAqICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfZ2V0 X2J5dGVzICAgICAgIChGcGlCeXRlUmVhZGVyICpyZWFkZXIsIGd1aW50IHNpemUpOwotIAotIAot QEAgLTY4MSw2ICs2ODcsMzIgQEAgZnBpX2J5dGVfcmVhZGVyX2dldF9ieXRlc19pbmxpbmUgKEZw aUJ5dGVSZWFkZXIgKnJlYWRlciwgZ3VpbnQgc2l6ZSkKLSAgIHJldHVybiBnX2J5dGVzX25ld19z dGF0aWMgKGRhdGEsIHNpemUpOwotIH0KLSAKLStzdGF0aWMgaW5saW5lIGdib29sZWFuCi0rKGZw aV9ieXRlX3JlYWRlcl9nZXRfZGF0YV9pbmxpbmVfc3RhdGljKSAoRnBpQnl0ZVJlYWRlciAqIHJl YWRlciwgZ3VpbnQgc2l6ZSwgY29uc3QgZ3VpbnQ4ICogdmFsKQotK3sKLSsgIGdfcmV0dXJuX3Zh bF9pZl9mYWlsIChyZWFkZXIgIT0gTlVMTCwgRkFMU0UpOwotKyAgZ19yZXR1cm5fdmFsX2lmX2Zh aWwgKHZhbCAhPSBOVUxMLCBGQUxTRSk7Ci0rCi0rICBpZiAoR19VTkxJS0VMWSAoc2l6ZSA+IHJl YWRlci0+c2l6ZSB8fCBmcGlfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFpbmluZ191bmNoZWNrZWQgKHJl YWRlcikgPCBzaXplKSkKLSsgICAgcmV0dXJuIEZBTFNFOwotKwotKyAgbWVtY3B5ICgodm9pZCAq KSB2YWwsIGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YV91bmNoZWNrZWQgKHJlYWRlciwgc2l6ZSks IHNpemUpOwotKyAgcmV0dXJuIFRSVUU7Ci0rfQotKwotK3N0YXRpYyBpbmxpbmUgZ2Jvb2xlYW4K LSsoZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0YV9pbmxpbmVfc3RhdGljKSAoY29uc3QgRnBpQnl0 ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgc2l6ZSwgZ3VpbnQ4ICogdmFsKQotK3sKLSsgIGdfcmV0 dXJuX3ZhbF9pZl9mYWlsIChyZWFkZXIgIT0gTlVMTCwgRkFMU0UpOwotKyAgZ19yZXR1cm5fdmFs X2lmX2ZhaWwgKHZhbCAhPSBOVUxMLCBGQUxTRSk7Ci0rCi0rICBpZiAoR19VTkxJS0VMWSAoc2l6 ZSA+IHJlYWRlci0+c2l6ZSB8fCBmcGlfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFpbmluZ191bmNoZWNr ZWQgKHJlYWRlcikgPCBzaXplKSkKLSsgICAgcmV0dXJuIEZBTFNFOwotKwotKyAgbWVtY3B5ICh2 YWwsIGZwaV9ieXRlX3JlYWRlcl9wZWVrX2RhdGFfdW5jaGVja2VkIChyZWFkZXIpLCBzaXplKTsK LSsgIHJldHVybiBUUlVFOwotK30KLSsKLSBzdGF0aWMgaW5saW5lIGd1aW50Ci0gZnBpX2J5dGVf cmVhZGVyX2dldF9wb3NfaW5saW5lIChjb25zdCBGcGlCeXRlUmVhZGVyICogcmVhZGVyKQotIHsK LUBAIC03MTYsNiArNzQ4LDMxIEBAIGZwaV9ieXRlX3JlYWRlcl9za2lwX2lubGluZSAoRnBpQnl0 ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgbmJ5dGVzKQotICNkZWZpbmUgZnBpX2J5dGVfcmVhZGVy X3BlZWtfYnl0ZXMocmVhZGVyLHNpemUpIFwKLSAgICAgZnBpX2J5dGVfcmVhZGVyX3BlZWtfYnl0 ZXNfaW5saW5lKHJlYWRlcixzaXplKQotIAotKy8qKgotKyAqIGZwaV9ieXRlX3JlYWRlcl9nZXRf ZGF0YV9zdGF0aWM6Ci0rICogQHJlYWRlcjogYSAjRnBpQnl0ZVJlYWRlcgotKyAqIEB2YWw6IGZp eGVkLXNpemUgYXJyYXkgKGUuZy4gYHVpbnQ4X3QgYnVmWzMyXWApCi0rICoKLSsgKiBSZWFkcyBA c2l6ZSBieXRlcyBmcm9tIEByZWFkZXIgZGlyZWN0bHkgaW50byBAdmFsLCB3aGVyZSBAc2l6ZSBp cwotKyAqIGRlZHVjZWQgdmlhIGBzaXplb2YoKWAgLSBvbmx5IHNhZmUgd2l0aCB0cnVlIEMgYXJy YXlzLgotKyAqCi0rICogUmV0dXJuczogJVRSVUUgb24gc3VjY2VzcywgJUZBTFNFIG90aGVyd2lz ZS4KLSsgKi8KLSsjZGVmaW5lIGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YV9zdGF0aWMocmVhZGVy LHZhbCkgXAotKyAgICAoZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhX3N0YXRpYykgKHJlYWRlcixz aXplb2YodmFsKSx2YWwpCi0rCi0rLyoqCi0rICogZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0YV9z dGF0aWM6Ci0rICogQHJlYWRlcjogYSAjRnBpQnl0ZVJlYWRlcgotKyAqIEB2YWw6IGZpeGVkLXNp emUgYXJyYXkgKGUuZy4gYHVpbnQ4X3QgYnVmWzMyXWApCi0rICoKLSsgKiBMaWtlIGZwaV9ieXRl X3JlYWRlcl9nZXRfZGF0YV9zdGF0aWMoKSBidXQgZG9lcyBub3QgYWR2YW5jZSB0aGUgcG9zaXRp b24uCi0rICoKLSsgKiBSZXR1cm5zOiAlVFJVRSBvbiBzdWNjZXNzLCAlRkFMU0Ugb3RoZXJ3aXNl LgotKyAqLwotKyNkZWZpbmUgZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0YV9zdGF0aWMocmVhZGVy LHZhbCkgXAotKyAgICAoZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0YV9zdGF0aWMpIChyZWFkZXIs c2l6ZW9mKHZhbCksdmFsKQotKwotICNlbmRpZiAvKiBGUElfQllURV9SRUFERVJfRElTQUJMRV9J TkxJTkVTICovCi0gCi0gR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKEZwaUJ5dGVSZWFk ZXIsIGZwaV9ieXRlX3JlYWRlcl9mcmVlKTsKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8w MDA1LWZwaS11c2ItdHJhbnNmZXItQWRkLW1pc3NpbmctZGVmaW5pdGlvbi1vZi1zZXRfc2hvcnQu cGF0Y2ggYi8wMDA1LWZwaS11c2ItdHJhbnNmZXItQWRkLW1pc3NpbmctZGVmaW5pdGlvbi1vZi1z ZXRfc2hvcnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5NjdkY2UuLjAw MDAwMDAKLS0tIGEvMDAwNS1mcGktdXNiLXRyYW5zZmVyLUFkZC1taXNzaW5nLWRlZmluaXRpb24t b2Ytc2V0X3Nob3J0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotRnJvbSBl N2M4MGU3NDhlZDNiMDBjNDMyZjNjMDBmMmVjN2I3MjYyNTI3ZGIzIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhUcmV2aT1DMz1C MW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+Ci1EYXRlOiBNb24sIDggSnVuIDIwMjYgMTM6Mjc6MzYg KzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA1LzZdIGZwaS11c2ItdHJhbnNmZXI6IEFkZCBtaXNzaW5n IGRlZmluaXRpb24gb2YKLSBzZXRfc2hvcnRfZXJyb3IoKQotCi1JdCB3YXMgaW4gdGhlIGhlYWRl ciBidXQgbm90IGltcGxlbWVudGVkCi0tLS0KLSBsaWJmcHJpbnQvZnBpLXVzYi10cmFuc2Zlci5j IHwgMjAgKysrKysrKysrKysrKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9u cygrKQotCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2ZwaS11c2ItdHJhbnNmZXIuYyBiL2xpYmZw cmludC9mcGktdXNiLXRyYW5zZmVyLmMKLWluZGV4IGFjNGY2MGMuLjA2N2FlMTggMTAwNjQ0Ci0t LS0gYS9saWJmcHJpbnQvZnBpLXVzYi10cmFuc2Zlci5jCi0rKysgYi9saWJmcHJpbnQvZnBpLXVz Yi10cmFuc2Zlci5jCi1AQCAtNTQ4LDMgKzU0OCwyMyBAQCBmcGlfdXNiX3RyYW5zZmVyX3N1Ym1p dF9zeW5jIChGcGlVc2JUcmFuc2ZlciAqdHJhbnNmZXIsCi0gCi0gICByZXR1cm4gcmVzOwotIH0K LSsKLSsvKioKLSsgKiBmcGlfdXNiX3RyYW5zZmVyX3NldF9zaG9ydF9lcnJvcjoKLSsgKiBAdHJh bnNmZXI6IFRoZSB0cmFuc2ZlciB0byBzdWJtaXQsIG11c3QgaGF2ZSBiZWVuIGZpbGxlZC4KLSsg KiBAc2hvcnRfaXNfZXJyb3I6IFdoZXRoZXIgYSBzaG9ydCB0cmFuc2ZlciBzaG91bGQgYmUgY29u c2lkZXJlZCBhbiBlcnJvcgotKyAqCi0rICogU2V0cyB3aGV0aGVyIGEgc2hvcnQgdHJhbnNmZXIg KGEgdHJhbnNmZXIgaW4gd2hpY2ggdGhlIHRyYW5zZmVycmVkIGxlbmd0aAotKyAqIGRvZXMgbm90 IG1hdGNoIHRoZSBleHBlY3RlZCBsZW5ndGgpIHNob3VsZCBiZSBjb25zaWRlcmVkIGFuIGVycm9y Ci0rICoKLSsgKiBCeSBkZWZhdWx0LCBzaG9ydCB0cmFuc2ZlcnMgYXJlIG5vdCBjb25zaWRlcmVk IGFuIGVycm9yLCBidXQKLSsgKiBkcml2ZXJzIGNhbiBlbmZvcmNlIGEgZnVydGhlciBjaGVjayBi eSBzZXR0aW5nIHRoaXMgZmxhZy4KLSsgKi8KLSt2b2lkCi0rZnBpX3VzYl90cmFuc2Zlcl9zZXRf c2hvcnRfZXJyb3IgKEZwaVVzYlRyYW5zZmVyICp0cmFuc2ZlciwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIHNob3J0X2lzX2Vycm9yKQotK3sKLSsg IGdfcmV0dXJuX2lmX2ZhaWwgKHRyYW5zZmVyKTsKLSsKLSsgIHRyYW5zZmVyLT5zaG9ydF9pc19l cnJvciA9IHNob3J0X2lzX2Vycm9yOwotK30KLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8w MDA2LWZwaS11c2ItdHJhbnNmZXItV3JhcC1nX2Vycm9yX25ldy1hcmd1bWVudHMucGF0Y2ggYi8w MDA2LWZwaS11c2ItdHJhbnNmZXItV3JhcC1nX2Vycm9yX25ldy1hcmd1bWVudHMucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2NzE2ODIuLjAwMDAwMDAKLS0tIGEvMDAwNi1m cGktdXNiLXRyYW5zZmVyLVdyYXAtZ19lcnJvcl9uZXctYXJndW1lbnRzLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMjYgKzAsMCBAQAotRnJvbSA5ZDRlN2ZjODdiNzY4MTljMDQ5ZmMyM2Y5MmIz ZGNjZGFmMzY1ZTc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP01h cmNvPTIwVHJldmlzYW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+Ci1E YXRlOiBNb24sIDggSnVuIDIwMjYgMTQ6MzY6MTAgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA2LzZd IGZwaS11c2ItdHJhbnNmZXI6IFdyYXAgZ19lcnJvcl9uZXcgYXJndW1lbnRzCi0KLS0tLQotIGxp YmZwcmludC9mcGktdXNiLXRyYW5zZmVyLmMgfCAzICsrLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2xpYmZwcmludC9mcGkt dXNiLXRyYW5zZmVyLmMgYi9saWJmcHJpbnQvZnBpLXVzYi10cmFuc2Zlci5jCi1pbmRleCAwNjdh ZTE4Li40NDhjNTY2IDEwMDY0NAotLS0tIGEvbGliZnByaW50L2ZwaS11c2ItdHJhbnNmZXIuYwot KysrIGIvbGliZnByaW50L2ZwaS11c2ItdHJhbnNmZXIuYwotQEAgLTM0NCw3ICszNDQsOCBAQCB0 cmFuc2Zlcl9maW5pc2hfY2IgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAq cmVzLCBncG9pbnRlciB1c2VyX2RhdAotICAgICB7Ci0gICAgICAgZXJyb3IgPSBnX2Vycm9yX25l dyAoR19VU0JfREVWSUNFX0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfVVNC X0RFVklDRV9FUlJPUl9JTywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5leHBlY3Rl ZCBzaG9ydCBlcnJvciBvZiAlemQgc2l6ZSAoZXhwZWN0ZWQgJXpkKSIsIHRyYW5zZmVyLT5hY3R1 YWxfbGVuZ3RoLCB0cmFuc2Zlci0+bGVuZ3RoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAiVW5leHBlY3RlZCBzaG9ydCBlcnJvciBvZiAlemQgc2l6ZSAoZXhwZWN0ZWQgJXpkKSIsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmZXItPmFjdHVhbF9sZW5ndGgsIHRyYW5z ZmVyLT5sZW5ndGgpOwotICAgICB9Ci0gCi0gICBjYWxsYmFjayA9IHRyYW5zZmVyLT5jYWxsYmFj azsKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8yYzc4NDJjOTA1MTQ3YTJkMTI3YzFiMTY4 YjJlOWQ0My5wYXRjaCBiLzJjNzg0MmM5MDUxNDdhMmQxMjdjMWIxNjhiMmU5ZDQzLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjY3OTk1Li4wMDAwMDAwCi0tLSBhLzJjNzg0 MmM5MDUxNDdhMmQxMjdjMWIxNjhiMmU5ZDQzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDIg KzAsMCBAQAotRnJvbSAyYzc4NDJjOTA1MTQ3YTJkMTI3YzFiMTY4YjJlOWQ0MzJiOGM5MWE0IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGFuaWVsIFNjaGFlZmVyIDxkaHNAZnJhbWUu d29yaz4KLURhdGU6IFRodSwgMTIgRmViIDIwMjYgMTY6MDg6MzEgKzA4MDAKLVN1YmplY3Q6IFtQ QVRDSF0gZm9jYWx0ZWNoX21vYzogYWRkIG5ldyBwaWQ6MHgwNzdBIHBpZDoweDA3OUEKLQotVGVz dGVkIG9uIHdvcmtpbmcgaGFyZHdhcmUgd2l0aCBleGFtcGxlcy9lbnJvbGwgYW5kIGV4YW1wbGVz L3ZlcmlmeQotCi1TaWduZWQtb2ZmLWJ5OiBEYW5pZWwgU2NoYWVmZXIgPGRoc0BmcmFtZS53b3Jr PgotLS0tCi0gZGF0YS9hdXRvc3VzcGVuZC5od2RiICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAyICsrCi0gbGliZnByaW50L2RyaXZlcnMvZm9jYWx0ZWNoX21vYy9mb2NhbHRlY2hfbW9jLmMg fCAyICsrCi0gMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBh L2RhdGEvYXV0b3N1c3BlbmQuaHdkYiBiL2RhdGEvYXV0b3N1c3BlbmQuaHdkYgotaW5kZXggZjQ5 ZTE3ZDYuLjlkMWZkMzUxIDEwMDY0NAotLS0tIGEvZGF0YS9hdXRvc3VzcGVuZC5od2RiCi0rKysg Yi9kYXRhL2F1dG9zdXNwZW5kLmh3ZGIKLUBAIC0xODUsNiArMTg1LDggQEAgdXNiOnYyODA4cEE5 OUEqCi0gdXNiOnYyODA4cEE1N0EqCi0gdXNiOnYyODA4cEE3OEEqCi0gdXNiOnYyODA4cDE1Nzkq Ci0rdXNiOnYyODA4cDA3N0EqCi0rdXNiOnYyODA4cDA3OUEqCi0gIElEX0FVVE9TVVNQRU5EPTEK LSAgSURfUEVSU0lTVD0wCi0gCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2RyaXZlcnMvZm9jYWx0 ZWNoX21vYy9mb2NhbHRlY2hfbW9jLmMgYi9saWJmcHJpbnQvZHJpdmVycy9mb2NhbHRlY2hfbW9j L2ZvY2FsdGVjaF9tb2MuYwotaW5kZXggMmQ0MTBmODguLjhiZDkzZTRiIDEwMDY0NAotLS0tIGEv bGliZnByaW50L2RyaXZlcnMvZm9jYWx0ZWNoX21vYy9mb2NhbHRlY2hfbW9jLmMKLSsrKyBiL2xp YmZwcmludC9kcml2ZXJzL2ZvY2FsdGVjaF9tb2MvZm9jYWx0ZWNoX21vYy5jCi1AQCAtMzUsNiAr MzUsOCBAQCBzdGF0aWMgY29uc3QgRnBJZEVudHJ5IGlkX3RhYmxlW10gPSB7Ci0gICB7IC52aWQg PSAweDI4MDgsICAucGlkID0gMHhhNTdhLCAgfSwKLSAgIHsgLnZpZCA9IDB4MjgwOCwgIC5waWQg PSAweGE3OGEsICB9LAotICAgeyAudmlkID0gMHgyODA4LCAgLnBpZCA9IDB4MTU3OSwgIH0sCi0r ICB7IC52aWQgPSAweDI4MDgsICAucGlkID0gMHgwNzdBLCAgfSwKLSsgIHsgLnZpZCA9IDB4Mjgw OCwgIC5waWQgPSAweDA3OUEsICB9LAotICAgeyAudmlkID0gMCwgIC5waWQgPSAwLCAgLmRyaXZl cl9kYXRhID0gMCB9LCAgIC8qIHRlcm1pbmF0aW5nIGVudHJ5ICovCi0gfTsKLSAKLS0tIAotR2l0 TGFiCi0KCmRpZmYgLS1naXQgYS9lZ2lzX3JlYWRlci5wYXRjaCBiL2VnaXNfcmVhZGVyLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1N2U4M2U1Li4wMDAwMDAwCi0tLSBhL2Vn aXNfcmVhZGVyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMwNCArMCwwIEBACi1Gcm9tIDli ZGRkOTBmMDZmNGQ5OTk3Mzg5NzQwYjQ4MGU3MWQzMmJiYzg1OWYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBKYXNvbiBIdWFuZyA8amFzb24uaHVhbmdAZWdpc3RlYy5jb20+Ci1EYXRl OiBXZWQsIDI4IEphbiAyMDI2IDIxOjA2OjQ4ICswODAwCi1TdWJqZWN0OiBbUEFUQ0ggMDEvMTNd IGVnaXNfZXR1OTA1OiBBZGQgMWM3YTowNWFlIGFuZCAxYzdhOjkyMDEgZmluZ2VycHJpbnQKLSBy ZWFkZXJzCi0KLS0tLQotIGRhdGEvYXV0b3N1c3BlbmQuaHdkYiAgICAgICAgICAgICAgICAgICB8 ICAgIDYgKwotIGxpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyB8IDE2MzUg KysrKysrKysrKysrKysrKysrKysrKysKLSBsaWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNf ZXR1OTA1LmggfCAgMjE0ICsrKwotIGxpYmZwcmludC9tZXNvbi5idWlsZCAgICAgICAgICAgICAg ICAgICB8ICAgIDIgKwotIG1lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgIDIgKwotIHRlc3RzL2VnaXNfZXR1OTA1L2N1c3RvbS5wY2FwbmcgICAgICAgICB8ICBCaW4g MCAtPiAzMzY0NCBieXRlcwotIHRlc3RzL2VnaXNfZXR1OTA1L2N1c3RvbS5weSAgICAgICAgICAg ICB8ICAxMDkgKysKLSB0ZXN0cy9lZ2lzX2V0dTkwNS9kZXZpY2UgICAgICAgICAgICAgICAgfCAg MzQ4ICsrKysrCi0gdGVzdHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgIHwgICAg MSArCi0gOSBmaWxlcyBjaGFuZ2VkLCAyMzE3IGluc2VydGlvbnMoKykKLSBjcmVhdGUgbW9kZSAx MDA2NDQgbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi0gY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuaAotIGNyZWF0 ZSBtb2RlIDEwMDY0NCB0ZXN0cy9lZ2lzX2V0dTkwNS9jdXN0b20ucGNhcG5nCi0gY3JlYXRlIG1v ZGUgMTAwNjQ0IHRlc3RzL2VnaXNfZXR1OTA1L2N1c3RvbS5weQotIGNyZWF0ZSBtb2RlIDEwMDY0 NCB0ZXN0cy9lZ2lzX2V0dTkwNS9kZXZpY2UKLQotZGlmZiAtLWdpdCBhL2RhdGEvYXV0b3N1c3Bl bmQuaHdkYiBiL2RhdGEvYXV0b3N1c3BlbmQuaHdkYgotaW5kZXggNTViNWNiNGMuLmEzZmYwMGFm IDEwMDY0NAotLS0tIGEvZGF0YS9hdXRvc3VzcGVuZC5od2RiCi0rKysgYi9kYXRhL2F1dG9zdXNw ZW5kLmh3ZGIKLUBAIC03Nyw2ICs3NywxMiBAQCB1c2I6djFDN0FwMDU3MSoKLSAgSURfQVVUT1NV U1BFTkQ9MQotICBJRF9QRVJTSVNUPTAKLSAKLSsjIFN1cHBvcnRlZCBieSBsaWJmcHJpbnQgZHJp dmVyIGVnaXNfZXR1OTA1Ci0rdXNiOnYxQzdBcDA1QUUqCi0rdXNiOnYxQzdBcDkyMDEqCi0rIElE X0FVVE9TVVNQRU5EPTEKLSsgSURfUEVSU0lTVD0wCi0rCi0gIyBTdXBwb3J0ZWQgYnkgbGliZnBy aW50IGRyaXZlciBlZ2lzbW9jCi0gdXNiOnYxQzdBcDA1ODIqCi0gdXNiOnYxQzdBcDA1ODMqCi1k aWZmIC0tZ2l0IGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIGIvbGli ZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0 NAotaW5kZXggMDAwMDAwMDAuLmJlMGM2ZTA1Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9saWJmcHJp bnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLUBAIC0wLDAgKzEsMTYzNSBAQAotKy8q Ci0rICogRHJpdmVyIGZvciBFZ2lzIFRlY2hub2xvZ3kgKExpZ2hUdW5pbmcpIE1hdGNoLU9uLUNo aXAgc2Vuc29ycwotKyAqCi0rICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSsgKiB2ZXJzaW9uIDIu MSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K LSsgKgotKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSsgKiBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyAqCi0rICogWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwot KyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl IEZyZWUgU29mdHdhcmUKLSsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCi0rICovCi0rCi0rI2RlZmlu ZSBGUF9DT01QT05FTlQgImVnaXNfZXR1OTA1IgotKwotKyNpbmNsdWRlIDxzdGRpby5oPgotKyNp bmNsdWRlIDxnbGliLmg+Ci0rI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgotKwotKyNpbmNsdWRlICJk cml2ZXJzX2FwaS5oIgotKyNpbmNsdWRlICJmcGktYnl0ZS13cml0ZXIuaCIKLSsKLSsjaW5jbHVk ZSAiZWdpc19ldHU5MDUuaCIKLSsKLStzdHJ1Y3QgX0ZwaURldmljZUVnaXNFdHU5MDUKLSt7Ci0r ICBGcERldmljZSAgICAgICAgcGFyZW50OwotKyAgRnBpU3NtICAgICAgICAgKnRhc2tfc3NtOwot KyAgRnBpU3NtICAgICAgICAgKmNtZF9zc207Ci0rICBGcGlVc2JUcmFuc2ZlciAqY21kX3RyYW5z ZmVyOwotKyAgR0NhbmNlbGxhYmxlICAgKmludGVycnVwdF9jYW5jZWxsYWJsZTsKLSsgIEdQdHJB cnJheSAgICAgICplbnJvbGxlZF9pZHM7Ci0rICBnaW50ICAgICAgICAgICAgbWF4X2Vucm9sbF9z dGFnZXM7Ci0rICBndWludDggICAgICAgICAgc2lkW0VHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RB VEFfU0laRV07Ci0rfTsKLSsKLStHX0RFRklORV9UWVBFIChGcGlEZXZpY2VFZ2lzRXR1OTA1LCBm cGlfZGV2aWNlX2VnaXNfZXR1OTA1LCBGUF9UWVBFX0RFVklDRSk7Ci0rCi0rc3RhdGljIGNvbnN0 IEZwSWRFbnRyeSBlZ2lzX2V0dTkwNV9pZF90YWJsZVtdID0gewotKyAgeyAudmlkID0gMHgxYzdh LCAucGlkID0gMHgwNWFlLCAuZHJpdmVyX2RhdGEgPSBFR0lTX0VUVTkwNV9EUklWRVJfQ0hFQ0tf UFJFRklYX1RZUEUxIH0sCi0rICB7IC52aWQgPSAweDFjN2EsIC5waWQgPSAweDkyMDEsIC5kcml2 ZXJfZGF0YSA9IEVHSVNfRVRVOTA1X0RSSVZFUl9DSEVDS19QUkVGSVhfVFlQRTEgfSwKLSsgIHsg LnZpZCA9IDAsICAgICAgLnBpZCA9IDAsICAgICAgLmRyaXZlcl9kYXRhID0gMCB9Ci0rfTsKLSsK LSt0eXBlZGVmIHZvaWQgKCpTeW5DbWRNc2dDYWxsYmFjaykgKEZwRGV2aWNlICpkZXZpY2UsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWNoYXIgICAqYnVmZmVyX2luLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgIGxlbmd0aF9pbiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICplcnJvcik7Ci0r Ci0rdHlwZWRlZiBzdHJ1Y3QgZWdpc19ldHU5MDVfY29tbWFuZF9kYXRhCi0rewotKyAgU3luQ21k TXNnQ2FsbGJhY2sgY2FsbGJhY2s7Ci0rICBndWNoYXIgICAgICAgICAgICpidWZmZXJfaW47Ci0r ICBnc2l6ZSAgICAgICAgICAgICBsZW5ndGhfaW47Ci0rfSBDb21tYW5kRGF0YTsKLSsKLStzdGF0 aWMgdm9pZAotK2VnaXNfZXR1OTA1X2NvbW1hbmRfZGF0YV9mcmVlIChDb21tYW5kRGF0YSAqZGF0 YSkKLSt7Ci0rICBnX2ZyZWUgKGRhdGEtPmJ1ZmZlcl9pbik7Ci0rICBnX2ZyZWUgKGRhdGEpOwot K30KLSsKLSt0eXBlZGVmIHN0cnVjdCBlZ2lzX2V0dTkwNV9lbnJvbGxfcHJpbnQKLSt7Ci0rICBG cFByaW50ICpwcmludDsKLSsgIGludCAgICAgIHN0YWdlOwotK30gRW5yb2xsUHJpbnQ7Ci0rCi0r c3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV9maW5nZXJfb25fc2Vuc29yX2NiIChGcGlVc2JUcmFu c2ZlciAqdHJhbnNmZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnBEZXZp Y2UgICAgICAgKmRldmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9p bnRlciAgICAgICAgdXNlcmRhdGEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R0Vycm9yICAgICAgICAgKmVycm9yKQotK3sKLSsgIGZwX2RiZyAoIkZpbmdlciBvbiBzZW5zb3Ig Y2FsbGJhY2siKTsKLSsgIGZwaV9kZXZpY2VfcmVwb3J0X2Zpbmdlcl9zdGF0dXMgKGRldmljZSwg RlBfRklOR0VSX1NUQVRVU19QUkVTRU5UKTsKLSsKLSsgIGZwaV9zc21fdXNiX3RyYW5zZmVyX2Ni ICh0cmFuc2ZlciwgZGV2aWNlLCB1c2VyZGF0YSwgZXJyb3IpOwotK30KLSsKLStzdGF0aWMgdm9p ZAotK2VnaXNfZXR1OTA1X3dhaXRfZmluZ2VyX29uX3NlbnNvciAoRnBpU3NtICAgKnNzbSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZwRGV2aWNlICpkZXZpY2UpCi0rewot KyAgZnBfZGJnICgiV2FpdCBmb3IgZmluZ2VyIG9uIHNlbnNvciIpOwotKyAgRnBpRGV2aWNlRWdp c0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7Ci0rCi0rICBn X2F1dG9wdHIoRnBpVXNiVHJhbnNmZXIpIHRyYW5zZmVyID0gZnBpX3VzYl90cmFuc2Zlcl9uZXcg KGRldmljZSk7Ci0rCi0rICBmcGlfdXNiX3RyYW5zZmVyX2ZpbGxfaW50ZXJydXB0ICh0cmFuc2Zl ciwgRUdJU19FVFU5MDVfRVBfQ01EX0lOVEVSUlVQVF9JTiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X1VTQl9JTlRFUlJVUFRfSU5fUkVDVl9MRU5HVEgp OwotKyAgdHJhbnNmZXItPnNzbSA9IHNzbTsKLSsgIC8qIEludGVycnVwdCBvbiB0aGlzIGRldmlj ZSBhbHdheXMgcmV0dXJucyAxIGJ5dGUgc2hvcnQ7IHRoaXMgaXMgZXhwZWN0ZWQgKi8KLSsgIHRy YW5zZmVyLT5zaG9ydF9pc19lcnJvciA9IEZBTFNFOwotKwotKyAgZnBpX2RldmljZV9yZXBvcnRf ZmluZ2VyX3N0YXR1cyAoZGV2aWNlLCBGUF9GSU5HRVJfU1RBVFVTX05FRURFRCk7Ci0rCi0rICBm cGlfdXNiX3RyYW5zZmVyX3N1Ym1pdCAoZ19zdGVhbF9wb2ludGVyICgmdHJhbnNmZXIpLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X1VTQl9JTlRFUlJVUFRfVElNRU9V VCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5pbnRlcnJ1cHRfY2FuY2VsbGFi bGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdpc19ldHU5MDVfZmluZ2VyX29uX3Nl bnNvcl9jYiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSt9Ci0rCi0rc3Rh dGljIGdib29sZWFuCi0rZWdpc19ldHU5MDVfdmFsaWRhdGVfcmVzcG9uc2VfcHJlZml4IChjb25z dCBndWNoYXIgKmJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGdzaXplICAgYnVmZmVyX2luX2xlbiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGd1Y2hhciAqdmFsaWRfcHJlZml4LAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3NpemUgICB2YWxpZF9wcmVmaXhfbGVu KQotK3sKLSsgIGNvbnN0IGdib29sZWFuIHJlc3VsdCA9IG1lbWNtcCAoYnVmZmVyX2luICsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVnaXNfZXR1OTA1X3JlYWRfcHJlZml4 X2xlbiArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9D SEVDS19CWVRFU19MRU5HVEgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 YWxpZF9wcmVmaXgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX3By ZWZpeF9sZW4pID09IDA7Ci0rCi0rICBmcF9kYmcgKCJSZXNwb25zZSBwcmVmaXggdmFsaWQ6ICVz IiwgcmVzdWx0ID8gInllcyIgOiAiTk8iKTsKLSsgIHJldHVybiByZXN1bHQ7Ci0rfQotKwotK3N0 YXRpYyBnYm9vbGVhbgotK2VnaXNfZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNlX3N1ZmZpeCAoY29u c3QgZ3VjaGFyICpidWZmZXJfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBnc2l6ZSAgIGJ1ZmZlcl9pbl9sZW4sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBndWNoYXIgKnZhbGlkX3N1ZmZpeCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdzaXplICAgdmFsaWRfc3VmZml4X2xl bikKLSt7Ci0rICBjb25zdCBnYm9vbGVhbiByZXN1bHQgPSBtZW1jbXAgKGJ1ZmZlcl9pbiArIChi dWZmZXJfaW5fbGVuIC0gdmFsaWRfc3VmZml4X2xlbiksCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZhbGlkX3N1ZmZpeCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmFsaWRfc3VmZml4X2xlbikgPT0gMDsKLSsKLSsgIGZwX2RiZyAoIlJlc3BvbnNlIHN1 ZmZpeCB2YWxpZDogJXMiLCByZXN1bHQgPyAieWVzIiA6ICJOTyIpOwotKyAgcmV0dXJuIHJlc3Vs dDsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV90YXNrX3NzbV9kb25lIChGcGlT c20gICAqc3NtLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZwRGV2aWNlICpkZXZpY2Us Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgKmVycm9yKQotK3sKLSsgIEZw aURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2Up OwotKwotKyAgZnBfZGJnICgiVGFzayBTU00gZG9uZSIpOwotKwotKyAgLyogdGFza19zc20gaXMg Z29pbmcgdG8gYmUgZnJlZWQgYnkgY29tcGxldGlvbiBvZiBTU00gKi8KLSsgIGdfYXNzZXJ0ICgh c2VsZi0+dGFza19zc20gfHwgc2VsZi0+dGFza19zc20gPT0gc3NtKTsKLSsgIHNlbGYtPnRhc2tf c3NtID0gTlVMTDsKLSsKLSsgIGdfY2xlYXJfcG9pbnRlciAoJnNlbGYtPmVucm9sbGVkX2lkcywg Z19wdHJfYXJyYXlfdW5yZWYpOwotKwotKyAgaWYgKGVycm9yKQotKyAgICBmcGlfZGV2aWNlX2Fj dGlvbl9lcnJvciAoZGV2aWNlLCBlcnJvcik7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19l dHU5MDVfY29tbWl0X3N0YXJ0X2NiIChGcERldmljZSAqZGV2aWNlLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3VjaGFyICAgKmJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdzaXplICAgICBsZW5ndGhfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHRXJyb3IgICAqZXJyb3IpCi0rewotKyAgZnBfZGJnICgiVGFzayBTU00gY29tbWl0IHN0 YXJ0IGNhbGxiYWNrIik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklD RV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsKLSsgIGlmIChlcnJvcikKLSsgICAgZnBpX3NzbV9t YXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sIGVycm9yKTsKLSsgIGVsc2UKLSsgICAgZnBpX3Nz bV9qdW1wX3RvX3N0YXRlIChzZWxmLT50YXNrX3NzbSwgRU5ST0xMX0NPTU1JVCk7Ci0rfQotKwot Ky8qCi0rICogR2VuZXJpYyBjYWxsYmFjayBmb3IgY29tbWFuZHMgdGhhdCBkb24ndCBuZWVkIHNw ZWNpYWwgaGFuZGxpbmcgb24gc3VjY2Vzcy4KLSsgKiBBZHZhbmNlcyB0aGUgdGFzayBTU00gdG8g dGhlIG5leHQgc3RhdGUgb24gc3VjY2Vzcywgb3IgbWFya3MgaXQgZmFpbGVkIG9uIGVycm9yLgot KyAqLwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfdGFza19zc21fbmV4dF9zdGF0ZV9jYiAo RnBEZXZpY2UgKmRldmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn dWNoYXIgICAqYnVmZmVyX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdzaXplICAgICBsZW5ndGhfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0Vycm9yICAgKmVycm9yKQotK3sKLSsgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBG UElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotKwotKyAgZnBfZGJnICgiVGFzayBTU00g bmV4dCBzdGF0ZSBjYWxsYmFjayIpOwotKwotKyAgaWYgKGVycm9yKQotKyAgICBmcGlfc3NtX21h cmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3IpOwotKyAgZWxzZQotKyAgICBmcGlfc3Nt X25leHRfc3RhdGUgKHNlbGYtPnRhc2tfc3NtKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lz X2V0dTkwNV9jbWRfcmVjZWl2ZV9jYiAoRnBpVXNiVHJhbnNmZXIgKnRyYW5zZmVyLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGcERldmljZSAgICAgICAqZGV2aWNlLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgdXNlcmRhdGEsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICplcnJvcikKLSt7Ci0rICBDb21tYW5k RGF0YSAqZGF0YSA9IHVzZXJkYXRhOwotKwotKyAgZnBfZGJnICgiQ29tbWFuZCByZWNlaXZlIGNh bGxiYWNrIik7Ci0rCi0rICBpZiAoZXJyb3IpCi0rICAgIHsKLSsgICAgICBmcGlfc3NtX21hcmtf ZmFpbGVkICh0cmFuc2Zlci0+c3NtLCBlcnJvcik7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0r ICBpZiAoZGF0YSA9PSBOVUxMIHx8IHRyYW5zZmVyLT5hY3R1YWxfbGVuZ3RoIDwgZWdpc19ldHU5 MDVfcmVhZF9wcmVmaXhfbGVuKQotKyAgICB7Ci0rICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAo dHJhbnNmZXItPnNzbSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vy cm9yX25ldyAoRlBfREVWSUNFX0VSUk9SX0dFTkVSQUwpKTsKLSsgICAgICByZXR1cm47Ci0rICAg IH0KLSsKLSsgIC8qIFN0b3JlIHRoZSByZXNwb25zZSBkYXRhIGFuZCBsZXQgdGhlIGNtZF9zc21f ZG9uZSBjYWxsYmFjayBpbnZva2UKLSsgICAqIHRoZSBhY3R1YWwgY2FsbGJhY2sgd2l0aCB0aGUg c3RvcmVkIGRhdGEgKi8KLSsgIGRhdGEtPmJ1ZmZlcl9pbiA9IGdfc3RlYWxfcG9pbnRlciAoJnRy YW5zZmVyLT5idWZmZXIpOwotKyAgZGF0YS0+bGVuZ3RoX2luID0gdHJhbnNmZXItPmFjdHVhbF9s ZW5ndGg7Ci0rCi0rICBmcGlfc3NtX21hcmtfY29tcGxldGVkICh0cmFuc2Zlci0+c3NtKTsKLSt9 Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV9jbWRfcnVuX3N0YXRlIChGcGlTc20gICAq c3NtLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZwRGV2aWNlICpkZXZpY2UpCi0rewot KyAgZ19hdXRvcHRyKEZwaVVzYlRyYW5zZmVyKSB0cmFuc2ZlciA9IE5VTEw7Ci0rICBGcGlEZXZp Y2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsK LSsgIHN3aXRjaCAoZnBpX3NzbV9nZXRfY3VyX3N0YXRlIChzc20pKQotKyAgICB7Ci0rICAgIGNh c2UgQ01EX1NFTkQ6Ci0rICAgICAgaWYgKHNlbGYtPmNtZF90cmFuc2ZlcikKLSsgICAgICAgIHsK LSsgICAgICAgICAgc2VsZi0+Y21kX3RyYW5zZmVyLT5zc20gPSBzc207Ci0rICAgICAgICAgIGZw aV91c2JfdHJhbnNmZXJfc3VibWl0IChnX3N0ZWFsX3BvaW50ZXIgKCZzZWxmLT5jbWRfdHJhbnNm ZXIpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfVVNC X1NFTkRfVElNRU9VVCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9k ZXZpY2VfZ2V0X2NhbmNlbGxhYmxlIChkZXZpY2UpLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZnBpX3NzbV91c2JfdHJhbnNmZXJfY2IsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMKTsKLSsgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICB9Ci0r Ci0rICAgICAgZnBpX3NzbV9uZXh0X3N0YXRlIChzc20pOwotKyAgICAgIGJyZWFrOwotKwotKyAg ICBjYXNlIENNRF9HRVQ6Ci0rICAgICAgdHJhbnNmZXIgPSBmcGlfdXNiX3RyYW5zZmVyX25ldyAo ZGV2aWNlKTsKLSsgICAgICB0cmFuc2Zlci0+c3NtID0gc3NtOwotKyAgICAgIGZwaV91c2JfdHJh bnNmZXJfZmlsbF9idWxrICh0cmFuc2ZlciwgRUdJU19FVFU5MDVfRVBfQ01EX0lOLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9VU0JfSU5fUkVDVl9MRU5H VEgpOwotKyAgICAgIGZwaV91c2JfdHJhbnNmZXJfc3VibWl0IChnX3N0ZWFsX3BvaW50ZXIgKCZ0 cmFuc2ZlciksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X1VT Ql9SRUNWX1RJTUVPVVQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9kZXZp Y2VfZ2V0X2NhbmNlbGxhYmxlIChkZXZpY2UpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlZ2lzX2V0dTkwNV9jbWRfcmVjZWl2ZV9jYiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZnBpX3NzbV9nZXRfZGF0YSAoc3NtKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIH0K LSt9Ci0rCi0rLyoKLSsgKiBDb21tYW5kIFNTTSBkb25lIGNhbGxiYWNrLgotKyAqIEFsd2F5cyBp bnZva2VzIHRoZSBjYWxsYmFjayB3aXRoIHN0b3JlZCBkYXRhIG9uIHN1Y2Nlc3Mgb3IgZXJyb3Iu Ci0rICovCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV9jbWRfc3NtX2RvbmUgKEZwaVNzbSAg ICpzc20sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBGcERldmljZSAqZGV2aWNlLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgKmVycm9yKQotK3sKLSsgIGdfYXV0b3B0 cihHRXJyb3IpIGxvY2FsX2Vycm9yID0gZXJyb3I7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpz ZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsgIENvbW1hbmREYXRhICpk YXRhID0gZnBpX3NzbV9nZXRfZGF0YSAoc3NtKTsKLSsKLSsgIGdfYXNzZXJ0IChzZWxmLT5jbWRf c3NtID09IHNzbSk7Ci0rICBnX2Fzc2VydCAoIXNlbGYtPmNtZF90cmFuc2ZlciB8fCBzZWxmLT5j bWRfdHJhbnNmZXItPnNzbSA9PSBzc20pOwotKwotKyAgc2VsZi0+Y21kX3NzbSA9IE5VTEw7Ci0r ICBzZWxmLT5jbWRfdHJhbnNmZXIgPSBOVUxMOwotKwotKyAgaWYgKGRhdGEgJiYgZGF0YS0+Y2Fs bGJhY2spCi0rICAgIHsKLSsgICAgICBkYXRhLT5jYWxsYmFjayAoZGV2aWNlLAotKyAgICAgICAg ICAgICAgICAgICAgICBnX3N0ZWFsX3BvaW50ZXIgKCZkYXRhLT5idWZmZXJfaW4pLAotKyAgICAg ICAgICAgICAgICAgICAgICBkYXRhLT5sZW5ndGhfaW4sCi0rICAgICAgICAgICAgICAgICAgICAg IGdfc3RlYWxfcG9pbnRlciAoJmxvY2FsX2Vycm9yKSk7Ci0rICAgIH0KLSt9Ci0rCi0rLyoKLSsg KiBEZXJpdmUgdGhlIDIgImNoZWNrIGJ5dGVzIiBmb3Igd3JpdGUgcGF5bG9hZHMKLSsgKiAzMi1i aXQgYmlnLWVuZGlhbiBzdW0gb2YgYWxsIDE2LWJpdCB3b3JkcyAoaW5jbHVkaW5nIGNoZWNrIGJ5 dGVzKSBNT0QgMHhGRkZGCi0rICogc2hvdWxkIGJlIDAsIG90aGVyd2lzZSB0aGUgZGV2aWNlIHdp bGwgcmVqZWN0IHRoZSBwYXlsb2FkCi0rICovCi0rc3RhdGljIGd1aW50MTYKLStlZ2lzX2V0dTkw NV9nZXRfY2hlY2tfYnl0ZXMgKEZwaUJ5dGVSZWFkZXIgKnJlYWRlcikKLSt7Ci0rICBmcF9kYmcg KCJHZXQgY2hlY2sgYnl0ZXMiKTsKLSsgIHNpemVfdCBzdW1fdmFsdWVzID0gMDsKLSsgIGd1aW50 MTYgdmFsOwotKwotKyAgZnBpX2J5dGVfcmVhZGVyX3NldF9wb3MgKHJlYWRlciwgMCk7Ci0rCi0r ICB3aGlsZSAoZnBpX2J5dGVfcmVhZGVyX2dldF91aW50MTZfYmUgKHJlYWRlciwgJnZhbCkpCi0r ICAgIHN1bV92YWx1ZXMgKz0gdmFsOwotKwotKyAgcmV0dXJuIEdfTUFYVUlOVDE2IC0gKHN1bV92 YWx1ZXMgJSBHX01BWFVJTlQxNik7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVf ZXhlY19jbWQgKEZwRGV2aWNlICAgICAgICAgKmRldmljZSwKLSsgICAgICAgICAgICAgICAgICAg ICAgZ3VjaGFyICAgICAgICAgICAqY21kLAotKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn c2l6ZSAgICAgICBjbWRfbGVuZ3RoLAotKyAgICAgICAgICAgICAgICAgICAgICBHRGVzdHJveU5v dGlmeSAgICBjbWRfZGVzdHJveSwKLSsgICAgICAgICAgICAgICAgICAgICAgU3luQ21kTXNnQ2Fs bGJhY2sgY2FsbGJhY2spCi0rewotKyAgZ19hdXRvKEZwaUJ5dGVXcml0ZXIpIHdyaXRlciA9IHsw fTsKLSsgIGdfYXV0b3B0cihGcGlVc2JUcmFuc2ZlcikgdHJhbnNmZXIgPSBOVUxMOwotKyAgRnBp RGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7 Ci0rICBnX2F1dG9mcmVlIENvbW1hbmREYXRhICpkYXRhID0gTlVMTDsKLSsgIGdzaXplIGJ1ZmZl cl9vdXRfbGVuZ3RoID0gMDsKLSsgIGdib29sZWFuIHdyaXR0ZW4gPSBUUlVFOwotKyAgZ3VpbnQx NiBjaGVja192YWx1ZTsKLSsKLSsgIGZwX2RiZyAoIkV4ZWN1dGUgY29tbWFuZCBhbmQgZ2V0IHJl c3BvbnNlIik7Ci0rCi0rICAvKgotKyAgICogYnVmZmVyX291dCBzaG91bGQgYmUgYSBmdWxseSBj b21wb3NlZCBjb21tYW5kICh3aXRoIHByZWZpeCwgY2hlY2sgYnl0ZXMsIGV0YykKLSsgICAqIHdo aWNoIGxvb2tzIGxpa2UgdGhpczoKLSsgICAqICAgRSBHIEkgUyAwMCAwMCAwMCAwMSB7Y2IxfSB7 Y2IyfSB7cGF5bG9hZH0KLSsgICAqIHdoZXJlIGNiMSBhbmQgY2IyIGFyZSBzb21lIGNoZWNrIGJ5 dGVzIGdlbmVyYXRlZCBieSB0aGUKLSsgICAqIGVnaXNfZXR1OTA1X2dldF9jaGVja19ieXRlcygp IG1ldGhvZCBhbmQgcGF5bG9hZCBpcyB3aGF0IGlzIHBhc3NlZCB2aWEgdGhlIGNtZAotKyAgICog cGFyYW1ldGVyCi0rICAgKi8KLSsgIGJ1ZmZlcl9vdXRfbGVuZ3RoID0gZWdpc19ldHU5MDVfd3Jp dGVfcHJlZml4X2xlbgotKyAgICAgICAgICAgICAgICAgICAgICArIEVHSVNfRVRVOTA1X0NIRUNL X0JZVEVTX0xFTkdUSAotKyAgICAgICAgICAgICAgICAgICAgICArIGNtZF9sZW5ndGg7Ci0rCi0r ICBmcGlfYnl0ZV93cml0ZXJfaW5pdF93aXRoX3NpemUgKCZ3cml0ZXIsIGJ1ZmZlcl9vdXRfbGVu Z3RoICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlcl9vdXRfbGVu Z3RoICUgMiA/IDEgOiAwKSwgVFJVRSk7Ci0rCi0rICAvKiBQcmVmaXggKi8KLSsgIHdyaXR0ZW4g Jj0gZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhICgmd3JpdGVyLCBlZ2lzX2V0dTkwNV93cml0ZV9w cmVmaXgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdpc19ldHU5 MDVfd3JpdGVfcHJlZml4X2xlbik7Ci0rCi0rICAvKiBDaGVjayBCeXRlcyAtIGxlYXZlIHRoZW0g YXMgMDAgZm9yIG5vdyB0aGVuIGxhdGVyIGdlbmVyYXRlIGFuZCBjb3B5IG92ZXIKLSsgICAqIHRo ZSByZWFsIG9uZXMgKi8KLSsgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX2NoYW5nZV9wb3Mg KCZ3cml0ZXIsIEVHSVNfRVRVOTA1X0NIRUNLX0JZVEVTX0xFTkdUSCk7Ci0rCi0rICAvKiBDb21t YW5kIFBheWxvYWQgKi8KLSsgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhICgm d3JpdGVyLCBjbWQsIGNtZF9sZW5ndGgpOwotKwotKyAgLyogTm93IGZldGNoIGFuZCBzZXQgdGhl ICJyZWFsIiBjaGVjayBieXRlcyBiYXNlZCBvbiB0aGUgY3VycmVudGx5Ci0rICAgKiBhc3NlbWJs ZWQgcGF5bG9hZCAqLwotKyAgY2hlY2tfdmFsdWUgPSBlZ2lzX2V0dTkwNV9nZXRfY2hlY2tfYnl0 ZXMgKEZQSV9CWVRFX1JFQURFUiAoJndyaXRlcikpOwotKyAgZnBpX2J5dGVfd3JpdGVyX3NldF9w b3MgKCZ3cml0ZXIsIGVnaXNfZXR1OTA1X3dyaXRlX3ByZWZpeF9sZW4pOwotKyAgd3JpdHRlbiAm PSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQxNl9iZSAoJndyaXRlciwgY2hlY2tfdmFsdWUpOwot KwotKyAgLyogZGVzdHJveSBjbWQgaWYgcmVxdWVzdGVkICovCi0rICBpZiAoY21kX2Rlc3Ryb3kp Ci0rICAgIGdfY2xlYXJfcG9pbnRlciAoJmNtZCwgY21kX2Rlc3Ryb3kpOwotKwotKyAgZ19hc3Nl cnQgKHNlbGYtPmNtZF9zc20gPT0gTlVMTCk7Ci0rICBzZWxmLT5jbWRfc3NtID0gZnBpX3NzbV9u ZXcgKGRldmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdpc19ldHU5MDVf Y21kX3J1bl9zdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01EX1NUQVRF Uyk7Ci0rCi0rICBkYXRhID0gZ19uZXcwIChDb21tYW5kRGF0YSwgMSk7Ci0rICBkYXRhLT5jYWxs YmFjayA9IGNhbGxiYWNrOwotKyAgZnBpX3NzbV9zZXRfZGF0YSAoc2VsZi0+Y21kX3NzbSwgZ19z dGVhbF9wb2ludGVyICgmZGF0YSksCi0rICAgICAgICAgICAgICAgICAgICAoR0Rlc3Ryb3lOb3Rp ZnkpIGVnaXNfZXR1OTA1X2NvbW1hbmRfZGF0YV9mcmVlKTsKLSsKLSsgIGlmICghd3JpdHRlbikK LSsgICAgewotKyAgICAgIGZwaV9zc21fc3RhcnQgKHNlbGYtPmNtZF9zc20sIGVnaXNfZXR1OTA1 X2NtZF9zc21fZG9uZSk7Ci0rICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+Y21kX3Nz bSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9yX25ldyAoRlBf REVWSUNFX0VSUk9SX1BST1RPKSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICB0cmFu c2ZlciA9IGZwaV91c2JfdHJhbnNmZXJfbmV3IChkZXZpY2UpOwotKyAgdHJhbnNmZXItPnNob3J0 X2lzX2Vycm9yID0gVFJVRTsKLSsgIHRyYW5zZmVyLT5zc20gPSBzZWxmLT5jbWRfc3NtOwotKwot KyAgZnBpX3VzYl90cmFuc2Zlcl9maWxsX2J1bGtfZnVsbCAodHJhbnNmZXIsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9FUF9DTURfT1VULAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2J5dGVfd3JpdGVyX3Jlc2V0X2FuZF9n ZXRfZGF0YSAoJndyaXRlciksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi dWZmZXJfb3V0X2xlbmd0aCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf ZnJlZSk7Ci0rCi0rICBnX2Fzc2VydCAoc2VsZi0+Y21kX3RyYW5zZmVyID09IE5VTEwpOwotKyAg c2VsZi0+Y21kX3RyYW5zZmVyID0gZ19zdGVhbF9wb2ludGVyICgmdHJhbnNmZXIpOwotKyAgZnBp X3NzbV9zdGFydCAoc2VsZi0+Y21kX3NzbSwgZWdpc19ldHU5MDVfY21kX3NzbV9kb25lKTsKLSt9 Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV9zZXRfcHJpbnRfZGF0YSAoRnBQcmludCAg ICAgKnByaW50LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqZGV2 aWNlX3ByaW50X2lkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAq dXNlcl9pZCkKLSt7Ci0rICBHVmFyaWFudCAqcHJpbnRfaWRfdmFyID0gTlVMTDsKLSsgIEdWYXJp YW50ICpmcGlfZGF0YSA9IE5VTEw7Ci0rICBnX2F1dG9mcmVlIGdjaGFyICpmaWxsX3VzZXJfaWQg PSBOVUxMOwotKwotKyAgaWYgKHVzZXJfaWQpCi0rICAgIGZpbGxfdXNlcl9pZCA9IGdfc3RyZHVw ICh1c2VyX2lkKTsKLSsgIGVsc2UKLSsgICAgZmlsbF91c2VyX2lkID0gZ19zdHJuZHVwIChkZXZp Y2VfcHJpbnRfaWQsIEVHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSk7Ci0rCi0rICBm cGlfcHJpbnRfZmlsbF9mcm9tX3VzZXJfaWQgKHByaW50LCBmaWxsX3VzZXJfaWQpOwotKwotKyAg ZnBpX3ByaW50X3NldF90eXBlIChwcmludCwgRlBJX1BSSU5UX1JBVyk7Ci0rICBmcGlfcHJpbnRf c2V0X2RldmljZV9zdG9yZWQgKHByaW50LCBUUlVFKTsKLSsKLSsgIGdfb2JqZWN0X3NldCAocHJp bnQsICJkZXNjcmlwdGlvbiIsIGZpbGxfdXNlcl9pZCwgTlVMTCk7Ci0rCi0rICBwcmludF9pZF92 YXIgPSBnX3ZhcmlhbnRfbmV3X2ZpeGVkX2FycmF5IChHX1ZBUklBTlRfVFlQRV9CWVRFLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlX3ByaW50X2lk LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5 MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mIChndWNoYXIpKTsKLSsgIGZwaV9kYXRhID0gZ192YXJpYW50 X25ldyAoIihAYXkpIiwgcHJpbnRfaWRfdmFyKTsKLSsgIGdfb2JqZWN0X3NldCAocHJpbnQsICJm cGktZGF0YSIsIGZwaV9kYXRhLCBOVUxMKTsKLSt9Ci0rCi0rc3RhdGljIEdQdHJBcnJheSAqCi0r ZWdpc19ldHU5MDVfZ2V0X2Vucm9sbGVkX3ByaW50cyAoRnBEZXZpY2UgKmRldmljZSkKLSt7Ci0r ICBnX2F1dG9wdHIoR1B0ckFycmF5KSByZXN1bHQgPSBnX3B0cl9hcnJheV9uZXdfd2l0aF9mcmVl X2Z1bmMgKGdfb2JqZWN0X3VucmVmKTsKLSsgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBG UElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotKwotKyAgaWYgKCFzZWxmLT5lbnJvbGxl ZF9pZHMpCi0rICAgIHJldHVybiBnX3N0ZWFsX3BvaW50ZXIgKCZyZXN1bHQpOwotKwotKyAgZm9y IChndWludCBpID0gMDsgaSA8IHNlbGYtPmVucm9sbGVkX2lkcy0+bGVuOyBpKyspCi0rICAgIHsK LSsgICAgICBGcFByaW50ICpwcmludCA9IGZwX3ByaW50X25ldyAoZGV2aWNlKTsKLSsgICAgICBl Z2lzX2V0dTkwNV9zZXRfcHJpbnRfZGF0YSAocHJpbnQsIGdfcHRyX2FycmF5X2luZGV4IChzZWxm LT5lbnJvbGxlZF9pZHMsIGkpLCBOVUxMKTsKLSsgICAgICBnX3B0cl9hcnJheV9hZGQgKHJlc3Vs dCwgZ19vYmplY3RfcmVmX3NpbmsgKHByaW50KSk7Ci0rICAgIH0KLSsKLSsgIHJldHVybiBnX3N0 ZWFsX3BvaW50ZXIgKCZyZXN1bHQpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1 X2xpc3RfZmlsbF9lbnJvbGxlZF9pZHNfY2IgKEZwRGV2aWNlICpkZXZpY2UsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VjaGFyICAgKmJ1ZmZlcl9pbiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSAgICAgbGVuZ3RoX2luLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICplcnJvcikK LSt7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkw NSAoZGV2aWNlKTsKLSsKLSsgIGZwX2RiZyAoIkxpc3QgY2FsbGJhY2siKTsKLSsKLSsgIGlmIChl cnJvcikKLSsgICAgewotKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3Nt LCBlcnJvcik7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICBnX2NsZWFyX3BvaW50ZXIg KCZzZWxmLT5lbnJvbGxlZF9pZHMsIGdfcHRyX2FycmF5X3VucmVmKTsKLSsgIHNlbGYtPmVucm9s bGVkX2lkcyA9IGdfcHRyX2FycmF5X25ld193aXRoX2ZyZWVfZnVuYyAoZ19mcmVlKTsKLSsKLSsg IEZwaUJ5dGVSZWFkZXIgcmVhZGVyOwotKyAgZ2Jvb2xlYW4gcmVhZCA9IFRSVUU7Ci0rCi0rICBm cGlfYnl0ZV9yZWFkZXJfaW5pdCAoJnJlYWRlciwgYnVmZmVyX2luLCBsZW5ndGhfaW4pOwotKwot KyAgcmVhZCAmPSBmcGlfYnl0ZV9yZWFkZXJfc2V0X3BvcyAoJnJlYWRlciwgRUdJU19FVFU5MDVf TElTVF9SRVNQT05TRV9QUkVGSVhfU0laRSk7Ci0rCi0rICAvKgotKyAgICogRWFjaCBmaW5nZXJw cmludCBJRCB3aWxsIGJlIHJldHVybmVkIGluIHRoaXMgcmVzcG9uc2UgYXMgYSAzMiBieXRlIGFy cmF5Ci0rICAgKiBUaGUgb3RoZXIgc3R1ZmYgaW4gdGhlIHBheWxvYWQgaXMgMTYgYnl0ZXMgbG9u Zywgc28gaWYgdGhlcmUgaXMgYXQgbGVhc3QgMQotKyAgICogcHJpbnQgdGhlbiB0aGUgbGVuZ3Ro IHNob3VsZCBiZSBhdCBsZWFzdCAxNiszMj00OCBieXRlcyBsb25nCi0rICAgKi8KLSsgIHdoaWxl IChyZWFkKQotKyAgICB7Ci0rICAgICAgY29uc3QgZ3VpbnQ4ICpkYXRhOwotKyAgICAgIGdfYXV0 b2ZyZWUgZ2NoYXIgKnByaW50X2lkID0gTlVMTDsKLSsKLSsgICAgICByZWFkICY9IGZwaV9ieXRl X3JlYWRlcl9nZXRfZGF0YSAoJnJlYWRlciwgRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9T SVpFLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YSk7Ci0r ICAgICAgaWYgKCFyZWFkKQotKyAgICAgICAgYnJlYWs7Ci0rCi0rICAgICAgcHJpbnRfaWQgPSBn X21lbWR1cDIgKGRhdGEsIEVHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSk7Ci0rICAg ICAgZ19wdHJfYXJyYXlfYWRkIChzZWxmLT5lbnJvbGxlZF9pZHMsIGdfc3RlYWxfcG9pbnRlciAo JnByaW50X2lkKSk7Ci0rICAgIH0KLSsKLSsgIGZwX2luZm8gKCJOdW1iZXIgb2YgY3VycmVudGx5 IGVucm9sbGVkIGZpbmdlcnByaW50cyBvbiB0aGUgZGV2aWNlIGlzICVkIiwKLSsgICAgICAgICAg IHNlbGYtPmVucm9sbGVkX2lkcy0+bGVuKTsKLSsKLSsgIGlmIChzZWxmLT50YXNrX3NzbSkKLSsg ICAgZnBpX3NzbV9uZXh0X3N0YXRlIChzZWxmLT50YXNrX3NzbSk7Ci0rfQotKwotK3N0YXRpYyB2 b2lkCi0rZWdpc19ldHU5MDVfbGlzdF9ydW5fc3RhdGUgKEZwaVNzbSAgICpzc20sCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZwRGV2aWNlICpkZXZpY2UpCi0rewotKyAgZ19hdXRvcHRy KEdQdHJBcnJheSkgZW5yb2xsZWRfcHJpbnRzID0gTlVMTDsKLSsKLSsgIHN3aXRjaCAoZnBpX3Nz bV9nZXRfY3VyX3N0YXRlIChzc20pKQotKyAgICB7Ci0rICAgIGNhc2UgTElTVF9HRVRfRU5ST0xM RURfSURTOgotKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNtZF9saXN0LCBj bWRfbGlzdF9sZW4sIE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVnaXNfZXR1 OTA1X2xpc3RfZmlsbF9lbnJvbGxlZF9pZHNfY2IpOwotKyAgICAgIGJyZWFrOwotKwotKyAgICBj YXNlIExJU1RfUkVUVVJOX0VOUk9MTEVEX1BSSU5UUzoKLSsgICAgICBlbnJvbGxlZF9wcmludHMg PSBlZ2lzX2V0dTkwNV9nZXRfZW5yb2xsZWRfcHJpbnRzIChkZXZpY2UpOwotKyAgICAgIGZwaV9k ZXZpY2VfbGlzdF9jb21wbGV0ZSAoZGV2aWNlLCBnX3N0ZWFsX3BvaW50ZXIgKCZlbnJvbGxlZF9w cmludHMpLCBOVUxMKTsKLSsgICAgICBmcGlfc3NtX25leHRfc3RhdGUgKHNzbSk7Ci0rICAgICAg YnJlYWs7Ci0rICAgIH0KLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV9saXN0IChG cERldmljZSAqZGV2aWNlKQotK3sKLSsgIGZwX2RiZyAoIkxpc3QiKTsKLSsgIEZwaURldmljZUVn aXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotKwotKyAg Z19hc3NlcnQgKHNlbGYtPnRhc2tfc3NtID09IE5VTEwpOwotKyAgc2VsZi0+dGFza19zc20gPSBm cGlfc3NtX25ldyAoZGV2aWNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdp c19ldHU5MDVfbGlzdF9ydW5fc3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMSVNUX1NUQVRFUyk7Ci0rICBmcGlfc3NtX3N0YXJ0IChzZWxmLT50YXNrX3NzbSwgZWdpc19l dHU5MDVfdGFza19zc21fZG9uZSk7Ci0rfQotKwotK3N0YXRpYyBndWNoYXIgKgotK2VnaXNfZXR1 OTA1X2dldF9kZWxldGVfY21kIChGcERldmljZSAqZGV2aWNlLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGcFByaW50ICAqZGVsZXRlX3ByaW50LAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnc2l6ZSAgICAqbGVuZ3RoX291dCkKLSt7Ci0rICBmcF9kYmcgKCJHZXQgZGVsZXRl IGNvbW1hbmQiKTsKLSsgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VH SVNfRVRVOTA1IChkZXZpY2UpOwotKyAgZ19hdXRvKEZwaUJ5dGVXcml0ZXIpIHdyaXRlciA9IHsw fTsKLSsgIGdfYXV0b3B0cihHVmFyaWFudCkgcHJpbnRfZGF0YSA9IE5VTEw7Ci0rICBnX2F1dG9w dHIoR1ZhcmlhbnQpIHByaW50X2RhdGFfaWRfdmFyID0gTlVMTDsKLSsgIGNvbnN0IGd1Y2hhciAq cHJpbnRfZGF0YV9pZCA9IE5VTEw7Ci0rICBnc2l6ZSBwcmludF9kYXRhX2lkX2xlbiA9IDA7Ci0r ICBnX2F1dG9mcmVlIGdjaGFyICpwcmludF9kZXNjcmlwdGlvbiA9IE5VTEw7Ci0rICBnX2F1dG9m cmVlIGd1Y2hhciAqZW5yb2xsZWRfcHJpbnRfaWQgPSBOVUxMOwotKyAgZ19hdXRvZnJlZSBndWNo YXIgKnJlc3VsdCA9IE5VTEw7Ci0rICBnYm9vbGVhbiB3cml0dGVuID0gVFJVRTsKLSsKLSsgIC8q Ci0rICAgKiBUaGUgZmluYWwgY29tbWFuZCBib2R5IHNob3VsZCBjb250YWluOgotKyAgICogMSkg aGFyZC1jb2RlZCAwMCAwMAotKyAgICogMikgMi1ieXRlIHNpemUgaW5kaWNpYXRvciwgMjAqTnVt YmVyIGRlbGV0ZWQgaWRlbnRpZmllcnMgcGx1cyA3IGluIGZvcm0gb2Y6Ci0rICAgKiAgICBudW1f dG9fZGVsZXRlICogMHgyMCArIDB4MDcKLSsgICAqICAgIFNpbmNlIG1heCBwcmludHMgY2FuIGJl IGhpZ2hlciB0aGFuIDcgdGhlbiB0aGlzIGdvZXMgdXAgdG8gMiBieXRlcwotKyAgICogICAgKGU5 ICsgOSA9IDEwOSkKLSsgICAqIDMpIEhhcmQtY29kZWQgcHJlZml4IChjbWRfZGVsZXRlX3ByZWZp eCkKLSsgICAqIDQpIDItYnl0ZSBzaXplIGluZGljaWF0b3IsIDIwKk51bWJlciBvZiBlbnJvbGxl ZCBpZGVudGlmaWVycyB3aXRob3V0IHBsdXMgNwotKyAgICogICAgKG51bV90b19kZWxldGUgKiAw eDIwKQotKyAgICogNSkgQWxsIG9mIHRoZSBjdXJyZW50bHkgcmVnaXN0ZXJlZCBwcmludHMgdG8g ZGVsZXRlIGluIHRoZWlyIDMyLWJ5dGUgZGV2aWNlCi0rICAgKiAgICBpZGVudGlmaWVycyAoZW5y b2xsZWRfbGlzdCkKLSsgICAqLwotKwotKyAgaW50IG51bV90b19kZWxldGUgPSAwOwotKyAgaWYg KGRlbGV0ZV9wcmludCkKLSsgICAgbnVtX3RvX2RlbGV0ZSA9IDE7Ci0rICBlbHNlIGlmIChzZWxm LT5lbnJvbGxlZF9pZHMpCi0rICAgIG51bV90b19kZWxldGUgPSBzZWxmLT5lbnJvbGxlZF9pZHMt PmxlbjsKLSsKLSsgIGNvbnN0IGdzaXplIGJvZHlfbGVuZ3RoID0gc2l6ZW9mIChndWNoYXIpICog RUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFICoKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbnVtX3RvX2RlbGV0ZTsKLSsgIC8qIHRvdGFsX2xlbmd0aCBpcyB0aGUgNiB2YXJp b3VzIGJ5dGVzIHBsdXMgcHJlZml4IGFuZCBib2R5IHBheWxvYWQgKi8KLSsgIGNvbnN0IGdzaXpl IHRvdGFsX2xlbmd0aCA9IChzaXplb2YgKGd1Y2hhcikgKiA2KSArIGNtZF9kZWxldGVfcHJlZml4 X2xlbiArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5X2xlbmd0aDsKLSsKLSsg IC8qIHByZS1maWxsIGVudGlyZSBwYXlsb2FkIHdpdGggMDBzICovCi0rICBmcGlfYnl0ZV93cml0 ZXJfaW5pdF93aXRoX3NpemUgKCZ3cml0ZXIsIHRvdGFsX2xlbmd0aCwgVFJVRSk7Ci0rCi0rICAv KiBzdGFydCB3aXRoIDAwIDAwIChqdXN0IG1vdmUgc3RhcnRpbmcgb2Zmc2V0IHVwIGJ5IDIpICov Ci0rICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9zZXRfcG9zICgmd3JpdGVyLCAyKTsKLSsK LSsgIC8qIFNpemUgQ291bnRlciBieXRlcyAqLwotKyAgLyogImVhc2llc3QiIHdheSB0byBoYW5k bGUgMi1ieXRlcyBzaXplIGZvciBjb3VudGVyIGlzIHRvIGhhcmQtY29kZSBsb2dpYyBmb3IKLSsg ICAqIHdoZW4gd2UgZ28gdG8gdGhlIDJuZCBieXRlCi0rICAgKiBub3RlIHRoaXMgd2lsbCBub3Qg d29yayBpbiBjYXNlIGFueSBtb2RlbCBldmVyIHN1cHBvcnRzIG1vcmUgdGhhbiAxNCBwcmludHMK LSsgICAqIChhc3N1bWVkIG1heCBpcyAxMCkgKi8KLSsgIGlmIChudW1fdG9fZGVsZXRlID4gNykK LSsgICAgewotKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50OCAoJndy aXRlciwgMHgwMSk7Ci0rICAgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4 ICgmd3JpdGVyLCAoKG51bV90b19kZWxldGUgLSA4KSAqIDB4MjApICsgMHgwNyk7Ci0rICAgIH0K LSsgIGVsc2UKLSsgICAgewotKyAgICAgIC8qIGZpcnN0IGJ5dGUgaXMgMHgwMCwganVzdCBza2lw IGl0ICovCi0rICAgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfY2hhbmdlX3BvcyAoJndy aXRlciwgMSk7Ci0rICAgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4ICgm d3JpdGVyLCAobnVtX3RvX2RlbGV0ZSAqIDB4MjApICsgMHgwNyk7Ci0rICAgIH0KLSsKLSsgIC8q IGNvbW1hbmQgcHJlZml4ICovCi0rICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0 YSAoJndyaXRlciwgY21kX2RlbGV0ZV9wcmVmaXgsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY21kX2RlbGV0ZV9wcmVmaXhfbGVuKTsKLSsKLSsgIC8qIDItYnl0ZXMg c2l6ZSBsb2dpYyBmb3IgY291bnRlciBhZ2FpbiAqLwotKyAgaWYgKG51bV90b19kZWxldGUgPiA3 KQotKyAgICB7Ci0rICAgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4ICgm d3JpdGVyLCAweDAxKTsKLSsgICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfdWlu dDggKCZ3cml0ZXIsIChudW1fdG9fZGVsZXRlIC0gOCkgKiAweDIwKTsKLSsgICAgfQotKyAgZWxz ZQotKyAgICB7Ci0rICAgICAgLyogZmlyc3QgYnl0ZSBpcyAweDAwLCBqdXN0IHNraXAgaXQgKi8K LSsgICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9jaGFuZ2VfcG9zICgmd3JpdGVyLCAx KTsKLSsgICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDggKCZ3cml0ZXIs IG51bV90b19kZWxldGUgKiAweDIwKTsKLSsgICAgfQotKwotKyAgLyogYXBwZW5kIGRlc2lyZWQg MzItYnl0ZSBmaW5nZXJwcmludCBJRHMgKi8KLSsgIC8qIGlmIHBhc3NlZCBhIGRlbGV0ZV9wcmlu dCB0aGVuIGZldGNoIGl0cyBkYXRhIGZyb20gdGhlIEZwUHJpbnQgKi8KLSsgIGlmIChkZWxldGVf cHJpbnQpCi0rICAgIHsKLSsgICAgICBnX29iamVjdF9nZXQgKGRlbGV0ZV9wcmludCwgImRlc2Ny aXB0aW9uIiwgJnByaW50X2Rlc2NyaXB0aW9uLCBOVUxMKTsKLSsgICAgICBnX29iamVjdF9nZXQg KGRlbGV0ZV9wcmludCwgImZwaS1kYXRhIiwgJnByaW50X2RhdGEsIE5VTEwpOwotKwotKyAgICAg IGlmICghZ192YXJpYW50X2NoZWNrX2Zvcm1hdF9zdHJpbmcgKHByaW50X2RhdGEsICIoQGF5KSIs IEZBTFNFKSkKLSsgICAgICAgIHsKLSsgICAgICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2Vs Zi0+dGFza19zc20sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2Vf ZXJyb3JfbmV3IChGUF9ERVZJQ0VfRVJST1JfREFUQV9JTlZBTElEKSk7Ci0rICAgICAgICAgIHJl dHVybiBOVUxMOwotKyAgICAgICAgfQotKwotKyAgICAgIGdfdmFyaWFudF9nZXQgKHByaW50X2Rh dGEsICIoQGF5KSIsICZwcmludF9kYXRhX2lkX3Zhcik7Ci0rICAgICAgcHJpbnRfZGF0YV9pZCA9 IGdfdmFyaWFudF9nZXRfZml4ZWRfYXJyYXkgKHByaW50X2RhdGFfaWRfdmFyLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpbnRfZGF0YV9pZF9s ZW4sIHNpemVvZiAoZ3VjaGFyKSk7Ci0rCi0rICAgICAgaWYgKCFnX3N0cl9oYXNfcHJlZml4IChw cmludF9kZXNjcmlwdGlvbiwgIkZQIikpCi0rICAgICAgICBmcF9kYmcgKCJGaW5nZXJwcmludCAn JXMnIHdhcyBub3QgY3JlYXRlZCBieSBsaWJmcHJpbnQ7IGRlbGV0aW5nIGFueXdheS4iLAotKyAg ICAgICAgICAgICAgICBwcmludF9kZXNjcmlwdGlvbik7Ci0rCi0rICAgICAgZnBfaW5mbyAoIkRl bGV0ZSBmaW5nZXJwcmludCAlcyIsIHByaW50X2Rlc2NyaXB0aW9uKTsKLSsKLSsgICAgICB3cml0 dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YSAoJndyaXRlciwgcHJpbnRfZGF0YV9pZCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVf RklOR0VSUFJJTlRfREFUQV9TSVpFKTsKLSsgICAgfQotKyAgLyogT3RoZXJ3aXNlIGFzc3VtZSB0 aGlzIGlzIGEgImNsZWFyIiAtIGp1c3QgbG9vcCB0aHJvdWdoIGFuZCBhcHBlbmQgYWxsIGVucm9s bGVkIElEcyAqLwotKyAgZWxzZSBpZiAoc2VsZi0+ZW5yb2xsZWRfaWRzKQotKyAgICB7Ci0rICAg ICAgZm9yIChndWludCBpID0gMDsgaSA8IHNlbGYtPmVucm9sbGVkX2lkcy0+bGVuICYmIHdyaXR0 ZW47IGkrKykKLSsgICAgICAgIHsKLSsgICAgICAgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0 ZXJfcHV0X2RhdGEgKCZ3cml0ZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnX3B0cl9hcnJheV9pbmRleCAoc2VsZi0+ZW5yb2xsZWRfaWRzLCBpKSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRV OTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSk7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgIGdf YXNzZXJ0ICh3cml0dGVuKTsKLSsKLSsgIGlmIChsZW5ndGhfb3V0KQotKyAgICAqbGVuZ3RoX291 dCA9IHRvdGFsX2xlbmd0aDsKLSsKLSsgIHJldHVybiBmcGlfYnl0ZV93cml0ZXJfcmVzZXRfYW5k X2dldF9kYXRhICgmd3JpdGVyKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV9k ZWxldGVfY2IgKEZwRGV2aWNlICpkZXZpY2UsCi0rICAgICAgICAgICAgICAgICAgICAgICBndWNo YXIgICAqYnVmZmVyX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgIGxlbmd0 aF9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICplcnJvcikKLSt7Ci0rICBm cF9kYmcgKCJEZWxldGUgY2FsbGJhY2siKTsKLSsgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYg PSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotKwotKyAgaWYgKGVycm9yKQotKyAg ICB7Ci0rICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sIGVycm9yKTsK LSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsgIC8qIENoZWNrIHRoYXQgdGhlIHJlYWQgcGF5 bG9hZCBpbmRpY2F0ZXMgInN1Y2Nlc3MiIHdpdGggdGhlIGRlbGV0ZSAqLwotKyAgaWYgKGVnaXNf ZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNlX3ByZWZpeCAoYnVmZmVyX2luLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoX2luLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwX2RlbGV0ZV9zdWNjZXNzX3ByZWZp eCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9kZWxl dGVfc3VjY2Vzc19wcmVmaXhfbGVuKSkKLSsgICAgewotKyAgICAgIGlmIChmcGlfZGV2aWNlX2dl dF9jdXJyZW50X2FjdGlvbiAoZGV2aWNlKSA9PSBGUElfREVWSUNFX0FDVElPTl9DTEVBUl9TVE9S QUdFKQotKyAgICAgICAgewotKyAgICAgICAgICBmcGlfZGV2aWNlX2NsZWFyX3N0b3JhZ2VfY29t cGxldGUgKGRldmljZSwgTlVMTCk7Ci0rICAgICAgICAgIGZwaV9zc21fbmV4dF9zdGF0ZSAoc2Vs Zi0+dGFza19zc20pOwotKyAgICAgICAgfQotKyAgICAgIGVsc2UgaWYgKGZwaV9kZXZpY2VfZ2V0 X2N1cnJlbnRfYWN0aW9uIChkZXZpY2UpID09IEZQSV9ERVZJQ0VfQUNUSU9OX0RFTEVURSkKLSsg ICAgICAgIHsKLSsgICAgICAgICAgZnBpX2RldmljZV9kZWxldGVfY29tcGxldGUgKGRldmljZSwg TlVMTCk7Ci0rICAgICAgICAgIGZwaV9zc21fbmV4dF9zdGF0ZSAoc2VsZi0+dGFza19zc20pOwot KyAgICAgICAgfQotKyAgICAgIGVsc2UKLSsgICAgICAgIHsKLSsgICAgICAgICAgZnBpX3NzbV9t YXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3X21zZyAoRlBfREVWSUNFX0VSUk9SX1BST1RPLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJV bnN1cHBvcnRlZCBkZWxldGUgYWN0aW9uLiIpKTsKLSsgICAgICAgIH0KLSsgICAgfQotKyAgZWxz ZQotKyAgICB7Ci0rICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXdfbXNnIChGUF9E RVZJQ0VfRVJST1JfUFJPVE8sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiRGVsZXRlIHByaW50IHdhcyBub3Qgc3VjY2Vzc2Z1bCIpKTsKLSsg ICAgfQotK30KLSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X2RlbGV0ZV9ydW5fc3RhdGUg KEZwaVNzbSAgICpzc20sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnBEZXZpY2Ug KmRldmljZSkKLSt7Ci0rICBnX2F1dG9mcmVlIGd1Y2hhciAqcGF5bG9hZCA9IE5VTEw7Ci0rICBn c2l6ZSBwYXlsb2FkX2xlbmd0aCA9IDA7Ci0rCi0rICBzd2l0Y2ggKGZwaV9zc21fZ2V0X2N1cl9z dGF0ZSAoc3NtKSkKLSsgICAgewotKyAgICBjYXNlIERFTEVURV9HRVRfRU5ST0xMRURfSURTOgot KyAgICAgIC8qIGdldCBlbnJvbGxlZF9pZHMgZnJvbSBkZXZpY2UgZm9yIHVzZSBidWlsZGluZyBk ZWxldGUgcGF5bG9hZCBiZWxvdyAqLwotKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZp Y2UsIGNtZF9saXN0LCBjbWRfbGlzdF9sZW4sIE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVnaXNfZXR1OTA1X2xpc3RfZmlsbF9lbnJvbGxlZF9pZHNfY2IpOwotKyAgICAgIGJy ZWFrOwotKwotKyAgICBjYXNlIERFTEVURV9ERUxFVEU6Ci0rICAgICAgaWYgKGZwaV9kZXZpY2Vf Z2V0X2N1cnJlbnRfYWN0aW9uIChkZXZpY2UpID09IEZQSV9ERVZJQ0VfQUNUSU9OX0RFTEVURSkK LSsgICAgICAgIHBheWxvYWQgPSBlZ2lzX2V0dTkwNV9nZXRfZGVsZXRlX2NtZCAoZGV2aWNlLCBm cGlfc3NtX2dldF9kYXRhIChzc20pLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmcGF5bG9hZF9sZW5ndGgpOwotKyAgICAgIGVsc2UKLSsgICAgICAgIHBh eWxvYWQgPSBlZ2lzX2V0dTkwNV9nZXRfZGVsZXRlX2NtZCAoZGV2aWNlLCBOVUxMLCAmcGF5bG9h ZF9sZW5ndGgpOwotKwotKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGdfc3Rl YWxfcG9pbnRlciAoJnBheWxvYWQpLCBwYXlsb2FkX2xlbmd0aCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ19mcmVlLCBlZ2lzX2V0dTkwNV9kZWxldGVfY2IpOwotKyAgICAgIGJyZWFr OwotKyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfY2xlYXJfc3RvcmFn ZSAoRnBEZXZpY2UgKmRldmljZSkKLSt7Ci0rICBmcF9kYmcgKCJDbGVhciBzdG9yYWdlIik7Ci0r ICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2 aWNlKTsKLSsKLSsgIGdfYXNzZXJ0IChzZWxmLT50YXNrX3NzbSA9PSBOVUxMKTsKLSsgIHNlbGYt PnRhc2tfc3NtID0gZnBpX3NzbV9uZXcgKGRldmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVnaXNfZXR1OTA1X2RlbGV0ZV9ydW5fc3RhdGUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBERUxFVEVfU1RBVEVTKTsKLSsgIGZwaV9zc21fc3RhcnQgKHNlbGYt PnRhc2tfc3NtLCBlZ2lzX2V0dTkwNV90YXNrX3NzbV9kb25lKTsKLSt9Ci0rCi0rc3RhdGljIHZv aWQKLStlZ2lzX2V0dTkwNV9kZWxldGUgKEZwRGV2aWNlICpkZXZpY2UpCi0rewotKyAgZnBfZGJn ICgiRGVsZXRlIik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9F R0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsgIEZwUHJpbnQgKmRlbGV0ZV9wcmludCA9IE5VTEw7Ci0r Ci0rICBmcGlfZGV2aWNlX2dldF9kZWxldGVfZGF0YSAoZGV2aWNlLCAmZGVsZXRlX3ByaW50KTsK LSsKLSsgIGdfYXNzZXJ0IChzZWxmLT50YXNrX3NzbSA9PSBOVUxMKTsKLSsgIHNlbGYtPnRhc2tf c3NtID0gZnBpX3NzbV9uZXcgKGRldmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVnaXNfZXR1OTA1X2RlbGV0ZV9ydW5fc3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBERUxFVEVfU1RBVEVTKTsKLSsgIC8qIHRoZSBwcmludCBpcyBvd25lZCBieSBs aWJmcHJpbnQgZHVyaW5nIGRlbGV0aW9uIHRhc2sgKi8KLSsgIGZwaV9zc21fc2V0X2RhdGEgKHNl bGYtPnRhc2tfc3NtLCBkZWxldGVfcHJpbnQsIE5VTEwpOwotKyAgZnBpX3NzbV9zdGFydCAoc2Vs Zi0+dGFza19zc20sIGVnaXNfZXR1OTA1X3Rhc2tfc3NtX2RvbmUpOwotK30KLSsKLStzdGF0aWMg dm9pZAotK2VnaXNfZXR1OTA1X2Vucm9sbF9zdGF0dXNfcmVwb3J0IChGcERldmljZSAgICAqZGV2 aWNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnJvbGxQcmludCAqZW5y b2xsX3ByaW50LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnJvbGxTdGF0 dXMgc3RhdHVzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAg ICAqZXJyb3IpCi0rewotKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0Vf RUdJU19FVFU5MDUgKGRldmljZSk7Ci0rCi0rICBzd2l0Y2ggKHN0YXR1cykKLSsgICAgewotKyAg ICBjYXNlIEVOUk9MTF9TVEFUVVNfREVWSUNFX0ZVTEw6Ci0rICAgIGNhc2UgRU5ST0xMX1NUQVRV U19EVVBMSUNBVEU6Ci0rICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20s IGVycm9yKTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBFTlJPTExfU1RBVFVTX1JFVFJZ OgotKyAgICAgIGZwaV9kZXZpY2VfZW5yb2xsX3Byb2dyZXNzIChkZXZpY2UsIGVucm9sbF9wcmlu dC0+c3RhZ2UsIE5VTEwsIGVycm9yKTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBFTlJP TExfU1RBVFVTX1BBUlRJQUxfT0s6Ci0rICAgICAgZW5yb2xsX3ByaW50LT5zdGFnZSsrOwotKyAg ICAgIGZwX2luZm8gKCJQYXJ0aWFsIGNhcHR1cmUgc3VjY2Vzc2Z1bC4gUGxlYXNlIHRvdWNoIHRo ZSBzZW5zb3IgYWdhaW4gKCVkLyVkKSIsCi0rICAgICAgICAgICAgICAgZW5yb2xsX3ByaW50LT5z dGFnZSwKLSsgICAgICAgICAgICAgICBzZWxmLT5tYXhfZW5yb2xsX3N0YWdlcyk7Ci0rICAgICAg ZnBpX2RldmljZV9lbnJvbGxfcHJvZ3Jlc3MgKGRldmljZSwgZW5yb2xsX3ByaW50LT5zdGFnZSwg ZW5yb2xsX3ByaW50LT5wcmludCwgTlVMTCk7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2Ug RU5ST0xMX1NUQVRVU19DT01QTEVURToKLSsgICAgICBmcF9pbmZvICgiRW5yb2xsbWVudCB3YXMg c3VjY2Vzc2Z1bCEiKTsKLSsgICAgICBmcGlfZGV2aWNlX2Vucm9sbF9jb21wbGV0ZSAoZGV2aWNl LCBnX29iamVjdF9yZWYgKGVucm9sbF9wcmludC0+cHJpbnQpLCBOVUxMKTsKLSsgICAgICBicmVh azsKLSsKLSsgICAgZGVmYXVsdDoKLSsgICAgICBpZiAoZXJyb3IpCi0rICAgICAgICBmcGlfc3Nt X21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3IpOwotKyAgICAgIGVsc2UKLSsgICAg ICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXdfbXNnIChGUF9ERVZJQ0VfRVJST1Jf R0VORVJBTCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlVua25vd24gZXJyb3IiKSk7Ci0rICAgIH0KLSt9Ci0rCi0rc3RhdGljIHZvaWQK LStlZ2lzX2V0dTkwNV9yZWFkX2NhcHR1cmVfY2IgKEZwRGV2aWNlICpkZXZpY2UsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBndWNoYXIgICAqYnVmZmVyX2luLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ3NpemUgICAgIGxlbmd0aF9pbiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdFcnJvciAgICplcnJvcikKLSt7Ci0rICBmcF9kYmcgKCJSZWFkIGNhcHR1 cmUgY2FsbGJhY2siKTsKLSsgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNF X0VHSVNfRVRVOTA1IChkZXZpY2UpOwotKyAgRW5yb2xsUHJpbnQgKmVucm9sbF9wcmludCA9IGZw aV9zc21fZ2V0X2RhdGEgKHNlbGYtPnRhc2tfc3NtKTsKLSsKLSsgIGlmIChlcnJvcikKLSsgICAg ewotKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLCBlcnJvcik7Ci0r ICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICAvKiBDaGVjayB0aGF0IHRoZSByZWFkIHBheWxv YWQgaW5kaWNhdGVzICJzdWNjZXNzIiAqLwotKyAgaWYgKGVnaXNfZXR1OTA1X3ZhbGlkYXRlX3Jl c3BvbnNlX3ByZWZpeCAoYnVmZmVyX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGVuZ3RoX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcnNwX3JlYWRfc3VjY2Vzc19wcmVmaXgsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfcmVhZF9zdWNjZXNzX3ByZWZpeF9sZW4p ICYmCi0rICAgICAgZWdpc19ldHU5MDVfdmFsaWRhdGVfcmVzcG9uc2Vfc3VmZml4IChidWZmZXJf aW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhf aW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfcmVh ZF9zdWNjZXNzX3N1ZmZpeCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJzcF9yZWFkX3N1Y2Nlc3Nfc3VmZml4X2xlbikpCi0rICAgIHsKLSsgICAgICBlZ2lz X2V0dTkwNV9lbnJvbGxfc3RhdHVzX3JlcG9ydCAoZGV2aWNlLCBlbnJvbGxfcHJpbnQsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVOUk9MTF9TVEFUVVNfUEFSVElB TF9PSywgTlVMTCk7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgewotKyAgICAgIC8qIElmIG5vdCBz dWNjZXNzIHRoZW4gdGhlIHNlbnNvciBjYW4gZWl0aGVyIHJlcG9ydCAib2ZmIGNlbnRlciIgb3Ig InNlbnNvciBpcyBkaXJ0eSIgKi8KLSsKLSsgICAgICAvKiAiT2ZmIGNlbnRlciIgKi8KLSsgICAg ICBpZiAoZWdpc19ldHU5MDVfdmFsaWRhdGVfcmVzcG9uc2VfcHJlZml4IChidWZmZXJfaW4sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoX2lu LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9y ZWFkX29mZmNlbnRlcl9wcmVmaXgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcnNwX3JlYWRfb2ZmY2VudGVyX3ByZWZpeF9sZW4pICYmCi0rICAgICAg ICAgIGVnaXNfZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNlX3N1ZmZpeCAoYnVmZmVyX2luLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aF9pbiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfcmVh ZF9vZmZjZW50ZXJfc3VmZml4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJzcF9yZWFkX29mZmNlbnRlcl9zdWZmaXhfbGVuKSkKLSsgICAgICAgIGVy cm9yID0gZnBpX2RldmljZV9yZXRyeV9uZXcgKEZQX0RFVklDRV9SRVRSWV9DRU5URVJfRklOR0VS KTsKLSsKLSsgICAgICAvKiAiU2Vuc29yIGlzIGRpcnR5IiAqLwotKyAgICAgIGVsc2UgaWYgKGVn aXNfZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNlX3ByZWZpeCAoYnVmZmVyX2luLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoX2luLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNw X3JlYWRfZGlydHlfcHJlZml4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcnNwX3JlYWRfZGlydHlfcHJlZml4X2xlbikpCi0rICAgICAgICBl cnJvciA9IGZwaV9kZXZpY2VfcmV0cnlfbmV3X21zZyAoRlBfREVWSUNFX1JFVFJZX1JFTU9WRV9G SU5HRVIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIllvdXIg ZGV2aWNlIGlzIGhhdmluZyB0cm91YmxlIHJlY29nbml6aW5nIHlvdS4gIgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWtlIHN1cmUgeW91ciBzZW5zb3IgaXMg Y2xlYW4uIik7Ci0rCi0rICAgICAgZWxzZQotKyAgICAgICAgZXJyb3IgPSBmcGlfZGV2aWNlX3Jl dHJ5X25ld19tc2cgKEZQX0RFVklDRV9SRVRSWV9SRU1PVkVfRklOR0VSLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIGZhaWx1cmUgdHJ5aW5nIHRv IHJlYWQgeW91ciBmaW5nZXIuICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiUGxlYXNlIHRyeSBhZ2Fpbi4iKTsKLSsKLSsgICAgICBlZ2lzX2V0dTkwNV9lbnJv bGxfc3RhdHVzX3JlcG9ydCAoZGV2aWNlLCBlbnJvbGxfcHJpbnQsIEVOUk9MTF9TVEFUVVNfUkVU UlksIGVycm9yKTsKLSsgICAgfQotKwotKyAgaWYgKGVucm9sbF9wcmludC0+c3RhZ2UgPT0gc2Vs Zi0+bWF4X2Vucm9sbF9zdGFnZXMpCi0rICAgIGZwaV9zc21fbmV4dF9zdGF0ZSAoc2VsZi0+dGFz a19zc20pOwotKyAgZWxzZQotKyAgICBmcGlfc3NtX2p1bXBfdG9fc3RhdGUgKHNlbGYtPnRhc2tf c3NtLCBFTlJPTExfQ0FQVFVSRV9TRU5TT1JfUkVTRVQpOwotK30KLSsKLStzdGF0aWMgdm9pZAot K2VnaXNfZXR1OTA1X2Vucm9sbF9kdXBsaWNhdGVfY2hlY2tfY2IgKEZwRGV2aWNlICpkZXZpY2Us Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VjaGFyICAgKmJ1ZmZl cl9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSAgICAg bGVuZ3RoX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJv ciAgICplcnJvcikKLSt7Ci0rICBmcF9kYmcgKCJUYXNrIFNTTSBlbnJvbGwgZHVwbGljYXRlIGNo ZWNrIGNhbGxiYWNrIik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklD RV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsKLSsgIGlmIChlcnJvcikKLSsgICAgewotKyAgICAg IGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLCBlcnJvcik7Ci0rICAgICAgcmV0 dXJuOwotKyAgICB9Ci0rCi0rICAvKiBDaGVjayB0aGF0IHRoZSByZWFkIHBheWxvYWQgcmVwb3J0 cyAibm90IHlldCBlbnJvbGxlZCIgKi8KLSsgIGlmIChlZ2lzX2V0dTkwNV92YWxpZGF0ZV9yZXNw b25zZV9zdWZmaXggKGJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxlbmd0aF9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJzcF9jaGVja19ub3RfeWV0X2Vucm9sbGVkX3N1ZmZpeCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9jaGVja19ub3RfeWV0X2Vu cm9sbGVkX3N1ZmZpeF9sZW4pKQotKyAgICBmcGlfc3NtX2p1bXBfdG9fc3RhdGUgKHNlbGYtPnRh c2tfc3NtLCBFTlJPTExfQ09NTUlUX1NUQVJUKTsKLSsgIGVsc2UKLSsgICAgZWdpc19ldHU5MDVf ZW5yb2xsX3N0YXR1c19yZXBvcnQgKGRldmljZSwgTlVMTCwgRU5ST0xMX1NUQVRVU19EVVBMSUNB VEUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vy cm9yX25ldyAoRlBfREVWSUNFX0VSUk9SX0RBVEFfRFVQTElDQVRFKSk7Ci0rfQotKwotK3N0YXRp YyB2b2lkCi0rZWdpc19ldHU5MDVfZW5yb2xsX2JlZ2luX2NiIChGcERldmljZSAqZGV2aWNlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VjaGFyICAgKmJ1ZmZlcl9pbiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAgICBsZW5ndGhfaW4sCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAqZXJyb3IpCi0rewotKyAgZnBfZGJnICgiRW5y b2xsIGJlZ2luIGNhbGxiYWNrIik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJ X0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsKLSsgIGlmIChlcnJvcikKLSsgICAgewot KyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLCBlcnJvcik7Ci0rICAg ICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICBGcGlCeXRlUmVhZGVyIHJlYWRlcjsKLSsKLSsgIGZw aV9ieXRlX3JlYWRlcl9pbml0ICgmcmVhZGVyLCBidWZmZXJfaW4sIGxlbmd0aF9pbik7Ci0rCi0r ICBmcGlfYnl0ZV9yZWFkZXJfc2V0X3BvcyAoJnJlYWRlciwgRUdJU19FVFU5MDVfTElTVF9SRVNQ T05TRV9QUkVGSVhfU0laRSk7Ci0rCi0rICBjb25zdCBndWludDggKmRhdGEgPSBOVUxMOwotKwot KyAgZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhICgmcmVhZGVyLCBFR0lTX0VUVTkwNV9GSU5HRVJQ UklOVF9EQVRBX1NJWkUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRhKTsKLSsK LSsgIGlmIChkYXRhKQotKyAgICBtZW1jcHkgKHNlbGYtPnNpZCwgZGF0YSwgRUdJU19FVFU5MDVf RklOR0VSUFJJTlRfREFUQV9TSVpFKTsKLSsKLSsgIGZwaV9zc21fbmV4dF9zdGF0ZSAoc2VsZi0+ dGFza19zc20pOwotK30KLSsKLSsvKgotKyAqIEJ1aWxkcyB0aGUgZnVsbCAiY2hlY2siIHBheWxv YWQgd2hpY2ggaW5jbHVkZXMgaWRlbnRpZmllcnMgZm9yIGFsbAotKyAqIGZpbmdlcnByaW50cyB3 aGljaCBjdXJyZW50bHkgc2hvdWxkIGV4aXN0IG9uIHRoZSBzdG9yYWdlLiBUaGlzIHBheWxvYWQg aXMKLSsgKiB1c2VkIGR1cmluZyBib3RoIGVucm9sbG1lbnQgYW5kIHZlcmlmeSBhY3Rpb25zLgot KyAqLwotK3N0YXRpYyBndWNoYXIgKgotK2VnaXNfZXR1OTA1X2dldF9jaGVja19jbWQgKEZwRGV2 aWNlICpkZXZpY2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgKmxlbmd0 aF9vdXQpCi0rewotKyAgZnBfZGJnICgiR2V0IGNoZWNrIGNvbW1hbmQiKTsKLSsgIEZwaURldmlj ZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotKyAg Z19hdXRvKEZwaUJ5dGVXcml0ZXIpIHdyaXRlciA9IHswfTsKLSsgIGdfYXV0b2ZyZWUgZ3VjaGFy ICpyZXN1bHQgPSBOVUxMOwotKyAgZ2Jvb2xlYW4gd3JpdHRlbiA9IFRSVUU7Ci0rCi0rICAvKgot KyAgICogVGhlIGZpbmFsIGNvbW1hbmQgYm9keSBzaG91bGQgY29udGFpbjoKLSsgICAqIDEpIGhh cmQtY29kZWQgMDAgMDAKLSsgICAqIDIpIDItYnl0ZSBzaXplIGluZGljaWF0b3IsIDIwKk51bWJl ciBlbnJvbGxlZCBpZGVudGlmaWVycyBwbHVzIDkgaW4gZm9ybSBvZjoKLSsgICAqICAgIChlbnJv bGxlZF9pZHMtPmxlbiArIDEpICogMHgyMCArIDB4MDkKLSsgICAqICAgIFNpbmNlIG1heCBwcmlu dHMgY2FuIGJlIGhpZ2hlciB0aGFuIDcgdGhlbiB0aGlzIGdvZXMgdXAgdG8gMiBieXRlcwotKyAg ICogICAgKGU5ICsgOSA9IDEwOSkKLSsgICAqIDMpIEhhcmQtY29kZWQgcHJlZml4IChjbWRfY2hl Y2tfcHJlZml4KQotKyAgICogNCkgMi1ieXRlIHNpemUgaW5kaWNpYXRvciwgMjAqTnVtYmVyIG9m IGVucm9sbGVkIGlkZW50aWZpZXJzIHdpdGhvdXQgcGx1cyA5Ci0rICAgKiAgICAoKGVucm9sbGVk X2lkcy0+bGVuICsgMSkgKiAweDIwKQotKyAgICogNSkgSGFyZC1jb2RlZCAzMiAqIDB4MDAgYnl0 ZXMKLSsgICAqIDYpIEFsbCBvZiB0aGUgY3VycmVudGx5IHJlZ2lzdGVyZWQgcHJpbnRzIGluIHRo ZWlyIDMyLWJ5dGUgZGV2aWNlIGlkZW50aWZpZXJzCi0rICAgKiAgICAoZW5yb2xsZWRfbGlzdCkK LSsgICAqIDcpIEhhcmQtY29kZWQgc3VmZml4IChjbWRfY2hlY2tfc3VmZml4KQotKyAgICovCi0r Ci0rICBnX2Fzc2VydCAoc2VsZi0+ZW5yb2xsZWRfaWRzKTsKLSsgIGNvbnN0IGdzaXplIGJvZHlf bGVuZ3RoID0gc2l6ZW9mIChndWNoYXIpICogc2VsZi0+ZW5yb2xsZWRfaWRzLT5sZW4gKgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJ WkU7Ci0rCi0rICAvKiBwcmVmaXggbGVuZ3RoIGNhbiBkZXBlbmQgb24gdGhlIHR5cGUgKi8KLSsg IGNvbnN0IGdzaXplIGNoZWNrX3ByZWZpeF9sZW5ndGggPSAoZnBpX2RldmljZV9nZXRfZHJpdmVy X2RhdGEgKGRldmljZSkgJgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF R0lTX0VUVTkwNV9EUklWRVJfQ0hFQ0tfUFJFRklYX1RZUEUyKSA/Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY21kX2NoZWNrX3ByZWZpeF90eXBlMl9sZW4gOgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZF9jaGVja19wcmVmaXhfdHlwZTFfbGVu OwotKwotKyAgLyogdG90YWxfbGVuZ3RoIGlzIHRoZSA2IHZhcmlvdXMgYnl0ZXMgcGx1cyBhbGwg b3RoZXIgcHJlZml4ZXMvc3VmZml4ZXMgYW5kCi0rICAgKiB0aGUgYm9keSBwYXlsb2FkICovCi0r ICBjb25zdCBnc2l6ZSB0b3RhbF9sZW5ndGggPSAoc2l6ZW9mIChndWNoYXIpICogNikKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsgY2hlY2tfcHJlZml4X2xlbmd0aAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKyBFR0lTX0VUVTkwNV9DTURfQ0hFQ0tfU0VQQVJBVE9SX0xF TkdUSAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBib2R5X2xlbmd0aAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKyBjbWRfY2hlY2tfc3VmZml4X2xlbjsKLSsKLSsgIC8q IHByZS1maWxsIGVudGlyZSBwYXlsb2FkIHdpdGggMDBzICovCi0rICBmcGlfYnl0ZV93cml0ZXJf aW5pdF93aXRoX3NpemUgKCZ3cml0ZXIsIHRvdGFsX2xlbmd0aCwgVFJVRSk7Ci0rCi0rICAvKiBz dGFydCB3aXRoIDAwIDAwIChqdXN0IG1vdmUgc3RhcnRpbmcgb2Zmc2V0IHVwIGJ5IDIpICovCi0r ICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9zZXRfcG9zICgmd3JpdGVyLCAyKTsKLSsKLSsg IC8qIFNpemUgQ291bnRlciBieXRlcyAqLwotKyAgLyogImVhc2llc3QiIHdheSB0byBoYW5kbGUg Mi1ieXRlcyBzaXplIGZvciBjb3VudGVyIGlzIHRvIGhhcmQtY29kZSBsb2dpYyBmb3IKLSsgICAq IHdoZW4gd2UgZ28gdG8gdGhlIDJuZCBieXRlCi0rICAgKiBub3RlIHRoaXMgd2lsbCBub3Qgd29y ayBpbiBjYXNlIGFueSBtb2RlbCBldmVyIHN1cHBvcnRzIG1vcmUgdGhhbiAxNCBwcmludHMKLSsg ICAqIChhc3N1bWVkIG1heCBpcyAxMCkgKi8KLSsgIGlmIChzZWxmLT5lbnJvbGxlZF9pZHMtPmxl biA+IDYpCi0rICAgIHsKLSsgICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfdWlu dDggKCZ3cml0ZXIsIDB4MDEpOwotKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1 dF91aW50OCAoJndyaXRlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgoc2VsZi0+ZW5yb2xsZWRfaWRzLT5sZW4gLSA3KSAqIDB4MjApCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIDB4MDkpOwotKyAgICB9Ci0rICBl bHNlCi0rICAgIHsKLSsgICAgICAvKiBmaXJzdCBieXRlIGlzIDB4MDAsIGp1c3Qgc2tpcCBpdCAq LwotKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX2NoYW5nZV9wb3MgKCZ3cml0ZXIs IDEpOwotKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50OCAoJndyaXRl ciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc2VsZi0+ ZW5yb2xsZWRfaWRzLT5sZW4gKyAxKSAqIDB4MjApICsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDkpOwotKyAgICB9Ci0rCi0rICAvKiBjb21tYW5kIHBy ZWZpeCAqLwotKyAgaWYgKGZwaV9kZXZpY2VfZ2V0X2RyaXZlcl9kYXRhIChkZXZpY2UpICYgRUdJ U19FVFU5MDVfRFJJVkVSX0NIRUNLX1BSRUZJWF9UWVBFMikKLSsgICAgd3JpdHRlbiAmPSBmcGlf Ynl0ZV93cml0ZXJfcHV0X2RhdGEgKCZ3cml0ZXIsIGNtZF9jaGVja19wcmVmaXhfdHlwZTIsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRfY2hlY2tfcHJlZml4 X3R5cGUyX2xlbik7Ci0rICBlbHNlCi0rICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1 dF9kYXRhICgmd3JpdGVyLCBjbWRfY2hlY2tfcHJlZml4X3R5cGUxLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kX2NoZWNrX3ByZWZpeF90eXBlMV9sZW4pOwot KwotKyAgLyogMi1ieXRlcyBzaXplIGxvZ2ljIGZvciBjb3VudGVyIGFnYWluICovCi0rICBpZiAo c2VsZi0+ZW5yb2xsZWRfaWRzLT5sZW4gPiA2KQotKyAgICB7Ci0rICAgICAgd3JpdHRlbiAmPSBm cGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4ICgmd3JpdGVyLCAweDAxKTsKLSsgICAgICB3cml0dGVu ICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDggKCZ3cml0ZXIsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi0+ZW5yb2xsZWRfaWRzLT5sZW4gLSA3 KSAqIDB4MjApOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICAvKiBmaXJzdCBieXRl IGlzIDB4MDAsIGp1c3Qgc2tpcCBpdCAqLwotKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3Jp dGVyX2NoYW5nZV9wb3MgKCZ3cml0ZXIsIDEpOwotKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVf d3JpdGVyX3B1dF91aW50OCAoJndyaXRlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzZWxmLT5lbnJvbGxlZF9pZHMtPmxlbiArIDEpICogMHgyMCk7Ci0r ICAgIH0KLSsKLSsgIC8qIGFkZCAwMHMgInNlcGFyYXRvciIgdG8gb2Zmc2V0IHBvc2l0aW9uICov Ci0rICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9jaGFuZ2VfcG9zICgmd3JpdGVyLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfQ01EX0NI RUNLX1NFUEFSQVRPUl9MRU5HVEgpOwotKwotKyAgZm9yIChndWludCBpID0gMDsgaSA8IHNlbGYt PmVucm9sbGVkX2lkcy0+bGVuICYmIHdyaXR0ZW47IGkrKykKLSsgICAgewotKyAgICAgIHdyaXR0 ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhICgmd3JpdGVyLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3B0cl9hcnJheV9pbmRleCAoc2VsZi0+ZW5y b2xsZWRfaWRzLCBpKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFKTsKLSsgICAgfQotKwotKyAgLyog Y29tbWFuZCBzdWZmaXggKi8KLSsgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRh ICgmd3JpdGVyLCBjbWRfY2hlY2tfc3VmZml4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNtZF9jaGVja19zdWZmaXhfbGVuKTsKLSsgIGdfYXNzZXJ0ICh3cml0dGVu KTsKLSsKLSsgIGlmIChsZW5ndGhfb3V0KQotKyAgICAqbGVuZ3RoX291dCA9IHRvdGFsX2xlbmd0 aDsKLSsKLSsgIHJldHVybiBmcGlfYnl0ZV93cml0ZXJfcmVzZXRfYW5kX2dldF9kYXRhICgmd3Jp dGVyKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV9lbnJvbGxfcnVuX3N0YXRl IChGcGlTc20gICAqc3NtLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZwRGV2aWNl ICpkZXZpY2UpCi0rewotKyAgZ19hdXRvKEZwaUJ5dGVXcml0ZXIpIHdyaXRlciA9IHswfTsKLSsg IEVnaXNtb2NTaWREYXRhIHNpZF9kYXRhID0gezB9OwotKyAgRW5yb2xsUHJpbnQgKmVucm9sbF9w cmludCA9IGZwaV9zc21fZ2V0X2RhdGEgKHNzbSk7Ci0rICBnX2F1dG9mcmVlIGd1Y2hhciAqcGF5 bG9hZCA9IE5VTEw7Ci0rICBnc2l6ZSBwYXlsb2FkX2xlbmd0aCA9IDA7Ci0rICBnX2F1dG9mcmVl IGdjaGFyICpkZXZpY2VfcHJpbnRfaWQgPSBOVUxMOwotKyAgZ19hdXRvZnJlZSBnY2hhciAqdXNl cl9pZCA9IE5VTEw7Ci0rCi0rICBzd2l0Y2ggKGZwaV9zc21fZ2V0X2N1cl9zdGF0ZSAoc3NtKSkK LSsgICAgewotKyAgICBjYXNlIEVOUk9MTF9TVEFSVDoKLSsgICAgICBlZ2lzX2V0dTkwNV9leGVj X2NtZCAoZGV2aWNlLCBjbWRfZW5yb2xsX3N0YXJ0aW5nLCBjbWRfZW5yb2xsX3N0YXJ0aW5nX2xl biwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWdpc19ldHU5MDVfZW5yb2xs X2JlZ2luX2NiKTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBFTlJPTExfQ0FQVFVSRV9T RU5TT1JfUkVTRVQ6Ci0rICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgY21kX3Nl bnNvcl9yZXNldCwgY21kX3NlbnNvcl9yZXNldF9sZW4sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5VTEwsIGVnaXNfZXR1OTA1X3Rhc2tfc3NtX25leHRfc3RhdGVfY2IpOwotKyAgICAg IGJyZWFrOwotKwotKyAgICBjYXNlIEVOUk9MTF9DQVBUVVJFX1NFTlNPUl9TVEFSVF9DQVBUVVJF OgotKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNtZF9zZW5zb3Jfc3RhcnRf Y2FwdHVyZSwgY21kX3NlbnNvcl9zdGFydF9jYXB0dXJlX2xlbiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdpc19ldHU5 MDVfdGFza19zc21fbmV4dF9zdGF0ZV9jYik7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2Ug RU5ST0xMX0NBUFRVUkVfV0FJVF9GSU5HRVI6Ci0rICAgICAgZWdpc19ldHU5MDVfd2FpdF9maW5n ZXJfb25fc2Vuc29yIChzc20sIGRldmljZSk7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2Ug RU5ST0xMX0NBUFRVUkVfUkVBRF9SRVNQT05TRToKLSsgICAgICBlZ2lzX2V0dTkwNV9leGVjX2Nt ZCAoZGV2aWNlLCBjbWRfcmVhZF9jYXB0dXJlLCBjbWRfcmVhZF9jYXB0dXJlX2xlbiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWdpc19ldHU5MDVfcmVhZF9jYXB0dXJlX2Ni KTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBFTlJPTExfRFVQTElDQVRFX0NIRUNLOgot KyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNtZF9kdXBsaWNhdGVfY2hlY2ss IGNtZF9kdXBsaWNhdGVfY2hlY2tfbGVuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLCBlZ2lzX2V0dTkwNV9lbnJvbGxfZHVwbGljYXRlX2NoZWNrX2NiKTsKLSsgICAgICBicmVh azsKLSsKLSsgICAgY2FzZSBFTlJPTExfQ09NTUlUX1NUQVJUOgotKyAgICAgIGVnaXNfZXR1OTA1 X2V4ZWNfY21kIChkZXZpY2UsIGNtZF9jb21taXRfc3RhcnRpbmcsIGNtZF9jb21taXRfc3RhcnRp bmdfbGVuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBlZ2lzX2V0dTkwNV9j b21taXRfc3RhcnRfY2IpOwotKyAgICAgIGJyZWFrOwotKwotKyAgICBjYXNlIEVOUk9MTF9DT01N SVQ6Ci0rICAgICAgdXNlcl9pZCA9IGZwaV9wcmludF9nZW5lcmF0ZV91c2VyX2lkIChlbnJvbGxf cHJpbnQtPnByaW50KTsKLSsgICAgICBmcF9kYmcgKCJOZXcgZmluZ2VycHJpbnQgSUQ6ICVzIiwg dXNlcl9pZCk7Ci0rCi0rICAgICAgc2lkX2RhdGEucmVzZXJ2ZV9wYXJhXzEgPSBFR0lTX0VUVTkw NV9QQVJBXzFfVkFMVUU7Ci0rICAgICAgc2lkX2RhdGEucmVzZXJ2ZV9wYXJhXzIgPSBFR0lTX0VU VTkwNV9QQVJBXzJfVkFMVUU7Ci0rICAgICAgc2lkX2RhdGEucmVzZXJ2ZV9wYXJhXzMgPSBFR0lT X0VUVTkwNV9QQVJBXzNfVkFMVUU7Ci0rICAgICAgbWVtY3B5IChzaWRfZGF0YS5yZXNlcnZlX3Bh cmFfNCwgdXNlcl9pZCwgTUlOIChFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJWkUsIHN0 cmxlbiAodXNlcl9pZCkpKTsKLSsgICAgICBlZ2lzX2V0dTkwNV9zZXRfcHJpbnRfZGF0YSAoZW5y b2xsX3ByaW50LT5wcmludCwgKGNvbnN0IGdjaGFyICopICZzaWRfZGF0YS5yZXNlcnZlX3BhcmFf NCwgdXNlcl9pZCk7Ci0rICAgICAgZnBpX2J5dGVfd3JpdGVyX2luaXQgKCZ3cml0ZXIpOwotKyAg ICAgIGlmICghZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhICgmd3JpdGVyLCBjbWRfbmV3X3ByaW50 X3ByZWZpeF90eXBlMiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21k X25ld19wcmludF9wcmVmaXhfdHlwZTJfbGVuKSkKLSsgICAgICAgIHsKLSsgICAgICAgICAgZnBp X3NzbV9tYXJrX2ZhaWxlZCAoc3NtLCBmcGlfZGV2aWNlX2Vycm9yX25ldyAoRlBfREVWSUNFX0VS Uk9SX1BST1RPKSk7Ci0rICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgfQotKyAgICAgIGlmICgh ZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhICgmd3JpdGVyLCAoZ3VpbnQ4ICopICZzaWRfZGF0YSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChFZ2lzbW9jU2lk RGF0YSkpKQotKyAgICAgICAgewotKyAgICAgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzc20s IGZwaV9kZXZpY2VfZXJyb3JfbmV3IChGUF9ERVZJQ0VfRVJST1JfUFJPVE8pKTsKLSsgICAgICAg ICAgYnJlYWs7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgcGF5bG9hZF9sZW5ndGggPSBmcGlfYnl0 ZV93cml0ZXJfZ2V0X3NpemUgKCZ3cml0ZXIpOwotKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21k IChkZXZpY2UsIGZwaV9ieXRlX3dyaXRlcl9yZXNldF9hbmRfZ2V0X2RhdGEgKCZ3cml0ZXIpLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkX2xlbmd0aCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ19mcmVlLCBlZ2lzX2V0dTkwNV90YXNrX3NzbV9uZXh0X3N0YXRl X2NiKTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBFTlJPTExfQ09NTUlUX1NFTlNPUl9S RVNFVDoKLSsgICAgICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBjbWRfc2Vuc29yX3Jl c2V0LCBjbWRfc2Vuc29yX3Jlc2V0X2xlbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCwgZWdpc19ldHU5MDVfdGFza19zc21fbmV4dF9zdGF0ZV9jYik7Ci0rICAgICAgYnJlYWs7 Ci0rCi0rICAgIGNhc2UgRU5ST0xMX0NPTVBMRVRFOgotKyAgICAgIGVnaXNfZXR1OTA1X2Vucm9s bF9zdGF0dXNfcmVwb3J0IChkZXZpY2UsIGVucm9sbF9wcmludCwgRU5ST0xMX1NUQVRVU19DT01Q TEVURSwgTlVMTCk7Ci0rICAgICAgZnBpX3NzbV9uZXh0X3N0YXRlIChzc20pOwotKyAgICAgIGJy ZWFrOwotKyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfZW5yb2xsIChG cERldmljZSAqZGV2aWNlKQotK3sKLSsgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElf REVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotKyAgRW5yb2xsUHJpbnQgKmVucm9sbF9wcmlu dCA9IGdfbmV3MCAoRW5yb2xsUHJpbnQsIDEpOwotKwotKyAgZnBfZGJnICgiRW5yb2xsIik7Ci0r Ci0rICBmcGlfZGV2aWNlX2dldF9lbnJvbGxfZGF0YSAoZGV2aWNlLCAmZW5yb2xsX3ByaW50LT5w cmludCk7Ci0rICBlbnJvbGxfcHJpbnQtPnN0YWdlID0gMDsKLSsKLSsgIGdfYXNzZXJ0IChzZWxm LT50YXNrX3NzbSA9PSBOVUxMKTsKLSsgIHNlbGYtPnRhc2tfc3NtID0gZnBpX3NzbV9uZXcgKGRl dmljZSwgZWdpc19ldHU5MDVfZW5yb2xsX3J1bl9zdGF0ZSwgRU5ST0xMX1NUQVRFUyk7Ci0rICBm cGlfc3NtX3NldF9kYXRhIChzZWxmLT50YXNrX3NzbSwgZ19zdGVhbF9wb2ludGVyICgmZW5yb2xs X3ByaW50KSwgZ19mcmVlKTsKLSsgIGZwaV9zc21fc3RhcnQgKHNlbGYtPnRhc2tfc3NtLCBlZ2lz X2V0dTkwNV90YXNrX3NzbV9kb25lKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkw NV9pZGVudGlmeV9jaGVja19jYiAoRnBEZXZpY2UgKmRldmljZSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3VjaGFyICAgKmJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3NpemUgICAgIGxlbmd0aF9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR0Vycm9yICAgKmVycm9yKQotK3sKLSsgIGZwX2RiZyAoIklkZW50aWZ5IGNoZWNr IGNhbGxiYWNrIik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9F R0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsgIGdjaGFyIGRldmljZV9wcmludF9pZFtFR0lTX0VUVTkw NV9GSU5HRVJQUklOVF9EQVRBX1NJWkVdOwotKyAgRnBQcmludCAqcHJpbnQgPSBOVUxMOwotKyAg RnBQcmludCAqdmVyaWZ5X3ByaW50ID0gTlVMTDsKLSsgIEdQdHJBcnJheSAqcHJpbnRzOwotKyAg Z2Jvb2xlYW4gZm91bmQgPSBGQUxTRTsKLSsgIGd1aW50IGluZGV4OwotKwotKyAgaWYgKGVycm9y KQotKyAgICB7Ci0rICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sIGVy cm9yKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsgIC8qIENoZWNrIHRoYXQgdGhlIHJl YWQgcGF5bG9hZCBpbmRpY2F0ZXMgIm1hdGNoIiAqLwotKyAgaWYgKGVnaXNfZXR1OTA1X3ZhbGlk YXRlX3Jlc3BvbnNlX3N1ZmZpeCAoYnVmZmVyX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcnNwX2lkZW50aWZ5X21hdGNoX3N1ZmZpeCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9pZGVudGlmeV9tYXRjaF9z dWZmaXhfbGVuKSkKLSsgICAgewotKyAgICAgIC8qCi0rICAgICAgICAgT24gc3VjY2VzcywgdGhl cmUgaXMgYSAzMiBieXRlIGFycmF5IG9mICJzb21ldGhpbmciKD8pIGluIGNoYXJzIDE0LTQ1Ci0r ICAgICAgICAgYW5kIHRoZW4gdGhlIDMyIGJ5dGUgYXJyYXkgSUQgb2YgdGhlIG1hdGNoZWQgcHJp bnQgY29tZXMgYXMgY2hhcnMgNDYtNzcKLSsgICAgICAgKi8KLSsgICAgICBtZW1jcHkgKGRldmlj ZV9wcmludF9pZCwKLSsgICAgICAgICAgICAgIGJ1ZmZlcl9pbiArIEVHSVNfRVRVOTA1X0lERU5U SUZZX1JFU1BPTlNFX1BSSU5UX0lEX09GRlNFVCwKLSsgICAgICAgICAgICAgIEVHSVNfRVRVOTA1 X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSk7Ci0rCi0rICAgICAgLyogQ3JlYXRlIGEgbmV3IHByaW50 IGZyb20gdGhpcyBkZXZpY2VfcHJpbnRfaWQgYW5kIHRoZW4gc2VlIGlmIGl0IG1hdGNoZXMKLSsg ICAgICAgKiB0aGUgb25lIGluZGljYXRlZAotKyAgICAgICAqLwotKyAgICAgIHByaW50ID0gZnBf cHJpbnRfbmV3IChkZXZpY2UpOwotKyAgICAgIGVnaXNfZXR1OTA1X3NldF9wcmludF9kYXRhIChw cmludCwgZGV2aWNlX3ByaW50X2lkLCBOVUxMKTsKLSsKLSsgICAgICBpZiAoIXByaW50KQotKyAg ICAgICAgewotKyAgICAgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXdfbXNn IChGUF9ERVZJQ0VfRVJST1JfREFUQV9JTlZBTElELAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gYnVpbGQgYSBwcmlu dCBmcm9tICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZGV2aWNlIHJlc3BvbnNlLiIpKTsKLSsgICAgICAgICAgcmV0dXJuOwotKyAg ICAgICAgfQotKwotKyAgICAgIGZwX2luZm8gKCJJZGVudGlmeSBzdWNjZXNzZnVsIGZvcjogJXMi LCBmcF9wcmludF9nZXRfZGVzY3JpcHRpb24gKHByaW50KSk7Ci0rCi0rICAgICAgaWYgKGZwaV9k ZXZpY2VfZ2V0X2N1cnJlbnRfYWN0aW9uIChkZXZpY2UpID09IEZQSV9ERVZJQ0VfQUNUSU9OX0lE RU5USUZZKQotKyAgICAgICAgewotKyAgICAgICAgICBmcGlfZGV2aWNlX2dldF9pZGVudGlmeV9k YXRhIChkZXZpY2UsICZwcmludHMpOwotKyAgICAgICAgICBmb3VuZCA9IGdfcHRyX2FycmF5X2Zp bmRfd2l0aF9lcXVhbF9mdW5jIChwcmludHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50LAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0VxdWFsRnVuYykgZnBfcHJpbnRfZXF1YWws Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZp bmRleCk7Ci0rCi0rICAgICAgICAgIGlmIChmb3VuZCkKLSsgICAgICAgICAgICBmcGlfZGV2aWNl X2lkZW50aWZ5X3JlcG9ydCAoZGV2aWNlLCBnX3B0cl9hcnJheV9pbmRleCAocHJpbnRzLCBpbmRl eCksIHByaW50LCBOVUxMKTsKLSsgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgIGZwaV9kZXZp Y2VfaWRlbnRpZnlfcmVwb3J0IChkZXZpY2UsIE5VTEwsIHByaW50LCBOVUxMKTsKLSsgICAgICAg IH0KLSsgICAgICBlbHNlCi0rICAgICAgICB7Ci0rICAgICAgICAgIGZwaV9kZXZpY2VfZ2V0X3Zl cmlmeV9kYXRhIChkZXZpY2UsICZ2ZXJpZnlfcHJpbnQpOwotKyAgICAgICAgICBmcF9pbmZvICgi VmVyaWZ5aW5nIGFnYWluc3Q6ICVzIiwgZnBfcHJpbnRfZ2V0X2Rlc2NyaXB0aW9uICh2ZXJpZnlf cHJpbnQpKTsKLSsKLSsgICAgICAgICAgaWYgKGZwX3ByaW50X2VxdWFsICh2ZXJpZnlfcHJpbnQs IHByaW50KSkKLSsgICAgICAgICAgICBmcGlfZGV2aWNlX3ZlcmlmeV9yZXBvcnQgKGRldmljZSwg RlBJX01BVENIX1NVQ0NFU1MsIHByaW50LCBOVUxMKTsKLSsgICAgICAgICAgZWxzZQotKyAgICAg ICAgICAgIGZwaV9kZXZpY2VfdmVyaWZ5X3JlcG9ydCAoZGV2aWNlLCBGUElfTUFUQ0hfRkFJTCwg cHJpbnQsIE5VTEwpOwotKyAgICAgICAgfQotKyAgICB9Ci0rICAvKiBJZiBkZXZpY2Ugd2FzIHN1 Y2Nlc3NmdWxseSByZWFkIGJ1dCBpdCB3YXMgYSAibm90IG1hdGNoZWQiICovCi0rICBlbHNlIGlm IChlZ2lzX2V0dTkwNV92YWxpZGF0ZV9yZXNwb25zZV9zdWZmaXggKGJ1ZmZlcl9pbiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoX2luLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfaWRl bnRpZnlfbm90bWF0Y2hfc3VmZml4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByc3BfaWRlbnRpZnlfbm90bWF0Y2hfc3VmZml4X2xlbikpCi0rICAg IHsKLSsgICAgICBmcF9pbmZvICgiUHJpbnQgd2FzIG5vdCBpZGVudGlmaWVkIGJ5IHRoZSBkZXZp Y2UiKTsKLSsKLSsgICAgICBpZiAoZnBpX2RldmljZV9nZXRfY3VycmVudF9hY3Rpb24gKGRldmlj ZSkgPT0gRlBJX0RFVklDRV9BQ1RJT05fVkVSSUZZKQotKyAgICAgICAgZnBpX2RldmljZV92ZXJp ZnlfcmVwb3J0IChkZXZpY2UsIEZQSV9NQVRDSF9GQUlMLCBOVUxMLCBOVUxMKTsKLSsgICAgICBl bHNlCi0rICAgICAgICBmcGlfZGV2aWNlX2lkZW50aWZ5X3JlcG9ydCAoZGV2aWNlLCBOVUxMLCBO VUxMLCBOVUxMKTsKLSsgICAgfQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgZnBpX3NzbV9tYXJr X2ZhaWxlZCAoc2VsZi0+dGFza19zc20sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBp X2RldmljZV9lcnJvcl9uZXdfbXNnIChGUF9ERVZJQ0VfRVJST1JfUFJPVE8sCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5yZWNvZ25pemVk IHJlc3BvbnNlIGZyb20gZGV2aWNlLiIpKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsg IGZwaV9zc21fbmV4dF9zdGF0ZSAoc2VsZi0+dGFza19zc20pOwotK30KLSsKLStzdGF0aWMgdm9p ZAotK2VnaXNfZXR1OTA1X2lkZW50aWZ5X3J1bl9zdGF0ZSAoRnBpU3NtICAgKnNzbSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZwRGV2aWNlICpkZXZpY2UpCi0rewotKyAgRnBp RGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7 Ci0rICBnX2F1dG9mcmVlIGd1Y2hhciAqcGF5bG9hZCA9IE5VTEw7Ci0rICBnc2l6ZSBwYXlsb2Fk X2xlbmd0aCA9IDA7Ci0rCi0rICBzd2l0Y2ggKGZwaV9zc21fZ2V0X2N1cl9zdGF0ZSAoc3NtKSkK LSsgICAgewotKyAgICBjYXNlIElERU5USUZZX0dFVF9FTlJPTExFRF9JRFM6Ci0rICAgICAgLyog Z2V0IGVucm9sbGVkX2lkcyBmcm9tIGRldmljZSBmb3IgdXNlIGluIGNoZWNrIHN0YWdlcyBiZWxv dyAqLwotKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNtZF9saXN0LCBjbWRf bGlzdF9sZW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVnaXNfZXR1OTA1 X2xpc3RfZmlsbF9lbnJvbGxlZF9pZHNfY2IpOwotKyAgICAgIGJyZWFrOwotKwotKyAgICBjYXNl IElERU5USUZZX0NIRUNLX0VOUk9MTEVEX05VTToKLSsgICAgICBpZiAoc2VsZi0+ZW5yb2xsZWRf aWRzLT5sZW4gPT0gMCkKLSsgICAgICAgIHsKLSsgICAgICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxl ZCAoZ19zdGVhbF9wb2ludGVyICgmc2VsZi0+dGFza19zc20pLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9yX25ldyAoRlBfREVWSUNFX0VSUk9SX0RBVEFf Tk9UX0ZPVU5EKSk7Ci0rICAgICAgICAgIHJldHVybjsKLSsgICAgICAgIH0KLSsgICAgICBmcGlf c3NtX25leHRfc3RhdGUgKHNzbSk7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2UgSURFTlRJ RllfU0VOU09SX1JFU0VUOgotKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNt ZF9zZW5zb3JfcmVzZXQsIGNtZF9zZW5zb3JfcmVzZXRfbGVuLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLCBlZ2lzX2V0dTkwNV90YXNrX3NzbV9uZXh0X3N0YXRlX2NiKTsKLSsg ICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBJREVOVElGWV9TRU5TT1JfSURFTlRJRlk6Ci0rICAg ICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgY21kX3NlbnNvcl9pZGVudGlmeSwgY21k X3NlbnNvcl9pZGVudGlmeV9sZW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws IGVnaXNfZXR1OTA1X3Rhc2tfc3NtX25leHRfc3RhdGVfY2IpOwotKyAgICAgIGJyZWFrOwotKwot KyAgICBjYXNlIElERU5USUZZX1dBSVRfRklOR0VSOgotKyAgICAgIGVnaXNfZXR1OTA1X3dhaXRf ZmluZ2VyX29uX3NlbnNvciAoc3NtLCBkZXZpY2UpOwotKyAgICAgIGJyZWFrOwotKwotKyAgICBj YXNlIElERU5USUZZX1NFTlNPUl9DSEVDSzoKLSsgICAgICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAo ZGV2aWNlLCBjbWRfc2Vuc29yX2NoZWNrLCBjbWRfc2Vuc29yX2NoZWNrX2xlbiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWdpc19ldHU5MDVfdGFza19zc21fbmV4dF9zdGF0 ZV9jYik7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2UgSURFTlRJRllfQ0hFQ0s6Ci0rICAg ICAgcGF5bG9hZCA9IGVnaXNfZXR1OTA1X2dldF9jaGVja19jbWQgKGRldmljZSwgJnBheWxvYWRf bGVuZ3RoKTsKLSsgICAgICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBnX3N0ZWFsX3Bv aW50ZXIgKCZwYXlsb2FkKSwgcGF5bG9hZF9sZW5ndGgsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdfZnJlZSwgZWdpc19ldHU5MDVfaWRlbnRpZnlfY2hlY2tfY2IpOwotKyAgICAgIGJy ZWFrOwotKwotKyAgICBjYXNlIElERU5USUZZX0NPTVBMRVRFX1NFTlNPUl9SRVNFVDoKLSsgICAg ICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBjbWRfc2Vuc29yX3Jlc2V0LCBjbWRfc2Vu c29yX3Jlc2V0X2xlbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWdpc19l dHU5MDVfdGFza19zc21fbmV4dF9zdGF0ZV9jYik7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIC8q Ci0rICAgICAqIEluIFdpbmRvd3MsIHRoZSBkcml2ZXIgc2VlbXMgYXQgdGhpcyBwb2ludCB0byB0 aGVuIGltbWVkaWF0ZWx5IHRha2UKLSsgICAgICogYW5vdGhlciByZWFkIGZyb20gdGhlIHNlbnNv cjsgdGhpcyBpcyBzdXNwZWN0ZWQgdG8gYmUgYW4gb24tY2hpcAotKyAgICAgKiAidmVyaWZ5Ii4g SG93ZXZlciwgYmVjYXVzZSB0aGUgdXNlcidzIGZpbmdlciBpcyBzdGlsbCBvbiB0aGUgc2Vuc29y IGZyb20KLSsgICAgICogdGhlIGlkZW50aWZ5LCB0aGVuIGl0IHNlZW1zIHRvIGFsd2F5cyByZXR1 cm4gcG9zaXRpdmUuIFdlIHdpbGwgY29uc2lkZXIKLSsgICAgICogdGhpcyBleHRyYSBzdGVwIHVu bmVjZXNzYXJ5IGFuZCBqdXN0IHNraXAgaXQgaW4gdGhpcyBkcml2ZXIuIFRoaXMgZHJpdmVyCi0r ICAgICAqIHdpbGwgaW5zdGVhZCBoYW5kbGUgbWF0Y2hpbmcgb2YgdGhlIEZwUHJpbnQgZnJvbSB0 aGUgZ2FsbGVyeSBpbiB0aGUKLSsgICAgICogInZlcmlmeSIgY2FzZSBvZiB0aGUgY2FsbGJhY2sg ZWdpc19ldHU5MDVfaWRlbnRpZnlfY2hlY2tfY2IuCi0rICAgICAqLwotKyAgICBjYXNlIElERU5U SUZZX0NPTVBMRVRFOgotKyAgICAgIGlmIChmcGlfZGV2aWNlX2dldF9jdXJyZW50X2FjdGlvbiAo ZGV2aWNlKSA9PSBGUElfREVWSUNFX0FDVElPTl9JREVOVElGWSkKLSsgICAgICAgIGZwaV9kZXZp Y2VfaWRlbnRpZnlfY29tcGxldGUgKGRldmljZSwgTlVMTCk7Ci0rICAgICAgZWxzZQotKyAgICAg ICAgZnBpX2RldmljZV92ZXJpZnlfY29tcGxldGUgKGRldmljZSwgTlVMTCk7Ci0rCi0rICAgICAg ZnBpX3NzbV9tYXJrX2NvbXBsZXRlZCAoc3NtKTsKLSsgICAgICBicmVhazsKLSsgICAgfQotK30K LSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X2lkZW50aWZ5X3ZlcmlmeSAoRnBEZXZpY2Ug KmRldmljZSkKLSt7Ci0rICBmcF9kYmcgKCJJZGVudGlmeSBvciBWZXJpZnkiKTsKLSsgIEZwaURl dmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwot KwotKyAgZ19hc3NlcnQgKHNlbGYtPnRhc2tfc3NtID09IE5VTEwpOwotKyAgc2VsZi0+dGFza19z c20gPSBmcGlfc3NtX25ldyAoZGV2aWNlLCBlZ2lzX2V0dTkwNV9pZGVudGlmeV9ydW5fc3RhdGUs IElERU5USUZZX1NUQVRFUyk7Ci0rICBmcGlfc3NtX3N0YXJ0IChzZWxmLT50YXNrX3NzbSwgZWdp c19ldHU5MDVfdGFza19zc21fZG9uZSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5 MDVfZndfdmVyc2lvbl9jYiAoRnBEZXZpY2UgKmRldmljZSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICBndWNoYXIgICAqYnVmZmVyX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg IGdzaXplICAgICBsZW5ndGhfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9y ICAgKmVycm9yKQotK3sKLSsgIGZwX2RiZyAoIkZpcm13YXJlIHZlcnNpb24gY2FsbGJhY2siKTsK LSsgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChk ZXZpY2UpOwotKyAgZ19hdXRvZnJlZSBnY2hhciAqZndfdmVyc2lvbiA9IE5VTEw7Ci0rICBnc2l6 ZSBwcmVmaXhfbGVuZ3RoOwotKyAgZ3VjaGFyICpmd192ZXJzaW9uX3N0YXJ0OwotKyAgZ3NpemUg ZndfdmVyc2lvbl9sZW5ndGg7Ci0rCi0rICBpZiAoZXJyb3IpCi0rICAgIHsKLSsgICAgICBmcGlf c3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3IpOwotKyAgICAgIHJldHVybjsK LSsgICAgfQotKwotKyAgLyogQ2hlY2sgdGhhdCB0aGUgcmVhZCBwYXlsb2FkIGluZGljYXRlcyAi c3VjY2VzcyIgKi8KLSsgIGlmICghZWdpc19ldHU5MDVfdmFsaWRhdGVfcmVzcG9uc2Vfc3VmZml4 IChidWZmZXJfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGVuZ3RoX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJzcF9md192ZXJzaW9uX3N1ZmZpeCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByc3BfZndfdmVyc2lvbl9zdWZmaXhfbGVuKSkKLSsgICAgewotKyAg ICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3X21zZyAoRlBfREVWSUNFX0VSUk9SX1BS T1RPLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkRldmljZSBmaXJtd2FyZSByZXNwb25zZSAiCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2FzIG5vdCB2YWxpZC4iKSk7Ci0rICAgICAg cmV0dXJuOwotKyAgICB9Ci0rCi0rICAvKgotKyAgICogRlcgVmVyc2lvbiBpcyAxMiBieXRlczog YSBjYXJyaWFnZSByZXR1cm4gKDB4MGQpIHBsdXMgdGhlIHZlcnNpb24gc3RyaW5nCi0rICAgKiBp dHNlbGYuIEFsd2F5cyBza2lwIFt0aGUgcmVhZCBwcmVmaXhdICsgWzIgKiBjaGVjayBieXRlc10g KyBbMyAqIDB4MDBdIHRoYXQKLSsgICAqIGNvbWUgd2l0aCBldmVyeSBwYXlsb2FkIFRoZW4gd2Ug d2lsbCBhbHNvIHNraXAgdGhlIGNhcnJpYWdlIHJldHVybiBhbmQgdGFrZQotKyAgICogYWxsIGJ1 dCB0aGUgbGFzdCAyIGJ5dGVzIGFzIHRoZSBGVyBWZXJzaW9uCi0rICAgKi8KLSsgIHByZWZpeF9s ZW5ndGggPSBlZ2lzX2V0dTkwNV9yZWFkX3ByZWZpeF9sZW4gKyAyICsgMyArIDE7Ci0rICBmd192 ZXJzaW9uX3N0YXJ0ID0gYnVmZmVyX2luICsgcHJlZml4X2xlbmd0aDsKLSsgIGZ3X3ZlcnNpb25f bGVuZ3RoID0gbGVuZ3RoX2luIC0gcHJlZml4X2xlbmd0aCAtIHJzcF9md192ZXJzaW9uX3N1ZmZp eF9sZW47Ci0rICBmd192ZXJzaW9uID0gZ19zdHJuZHVwICgoZ2NoYXIgKikgZndfdmVyc2lvbl9z dGFydCwgZndfdmVyc2lvbl9sZW5ndGgpOwotKwotKyAgZnBfaW5mbyAoIkRldmljZSBmaXJtd2Fy ZSB2ZXJzaW9uIGlzICVzIiwgZndfdmVyc2lvbik7Ci0rCi0rICBmcGlfc3NtX25leHRfc3RhdGUg KHNlbGYtPnRhc2tfc3NtKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV9jbWRf aW5pdF9jYiAoRnBEZXZpY2UgKmRldmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vj aGFyICAgKmJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgIGxl bmd0aF9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgKmVycm9yKQotK3sK LSsgIGZwX2RiZyAoImNtZCBpbml0IGNhbGxiYWNrIik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1 ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsKLSsgIGlmIChlcnJv cikKLSsgICAgewotKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLCBl cnJvcik7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICAvKiBDaGVjayB0aGF0IHRoZSBy ZWFkIHBheWxvYWQgaW5kaWNhdGVzICJzdWNjZXNzIiAqLwotKyAgaWYgKCFlZ2lzX2V0dTkwNV92 YWxpZGF0ZV9yZXNwb25zZV9zdWZmaXggKGJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhfaW4sCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwX2Z3X3ZlcnNpb25fc3VmZml4LAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9md192ZXJzaW9uX3N1 ZmZpeF9sZW4pKQotKyAgICB7Ci0rICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFz a19zc20sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXdf bXNnIChGUF9ERVZJQ0VfRVJST1JfUFJPVE8sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiY21kIGluaXQgcmVzcG9uc2UgIgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndhcyBub3QgdmFs aWQuIikpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZnBpX3NzbV9uZXh0X3N0YXRlIChz ZWxmLT50YXNrX3NzbSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfZGV2X2lu aXRfZG9uZSAoRnBpU3NtICAgKnNzbSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBGcERl dmljZSAqZGV2aWNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICplcnJv cikKLSt7Ci0rICBpZiAoZXJyb3IpCi0rICAgIHsKLSsgICAgICBnX3VzYl9kZXZpY2VfcmVsZWFz ZV9pbnRlcmZhY2UgKAotKyAgICAgICAgZnBpX2RldmljZV9nZXRfdXNiX2RldmljZSAoZGV2aWNl KSwgMCwgMCwgTlVMTCk7Ci0rICAgICAgZWdpc19ldHU5MDVfdGFza19zc21fZG9uZSAoc3NtLCBk ZXZpY2UsIGVycm9yKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsgIGVnaXNfZXR1OTA1 X3Rhc2tfc3NtX2RvbmUgKHNzbSwgZGV2aWNlLCBOVUxMKTsKLSsgIGZwaV9kZXZpY2Vfb3Blbl9j b21wbGV0ZSAoZGV2aWNlLCBOVUxMKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkw NV9kZXZfaW5pdF9oYW5kbGVyIChGcGlTc20gICAqc3NtLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZwRGV2aWNlICpkZXZpY2UpCi0rewotKyAgZ19hdXRvcHRyKEZwaVVzYlRyYW5z ZmVyKSB0cmFuc2ZlciA9IE5VTEw7Ci0rCi0rICBzd2l0Y2ggKGZwaV9zc21fZ2V0X2N1cl9zdGF0 ZSAoc3NtKSkKLSsgICAgewotKyAgICBjYXNlIERFVl9HRVRfRldfVkVSU0lPTjoKLSsgICAgICBl Z2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBjbWRfZndfdmVyc2lvbiwgY21kX2Z3X3ZlcnNp b25fbGVuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBlZ2lzX2V0dTkwNV9m d192ZXJzaW9uX2NiKTsKLSsgICAgICByZXR1cm47Ci0rCi0rICAgIGNhc2UgREVWX0lOSVRfQ09O VFJPTDoKLSsgICAgICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBjbWRfaW5pdCwgY21k X2luaXRfbGVuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBlZ2lzX2V0dTkw NV9jbWRfaW5pdF9jYik7Ci0rICAgICAgcmV0dXJuOwotKwotKyAgICBkZWZhdWx0OgotKyAgICAg IGdfYXNzZXJ0X25vdF9yZWFjaGVkICgpOwotKyAgICB9Ci0rCi0rICB0cmFuc2ZlciA9IGZwaV91 c2JfdHJhbnNmZXJfbmV3IChkZXZpY2UpOwotKyAgdHJhbnNmZXItPnNzbSA9IHNzbTsKLSsgIHRy YW5zZmVyLT5zaG9ydF9pc19lcnJvciA9IFRSVUU7Ci0rICBmcGlfdXNiX3RyYW5zZmVyX3N1Ym1p dCAoZ19zdGVhbF9wb2ludGVyICgmdHJhbnNmZXIpLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVHSVNfRVRVOTA1X1VTQl9DT05UUk9MX1RJTUVPVVQsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgZnBpX2RldmljZV9nZXRfY2FuY2VsbGFibGUgKGRldmljZSksCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgZnBpX3NzbV91c2JfdHJhbnNmZXJfY2IsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgTlVMTCk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVf cHJvYmUgKEZwRGV2aWNlICpkZXZpY2UpCi0rewotKyAgR1VzYkRldmljZSAqdXNiX2RldjsKLSsg IEdFcnJvciAqZXJyb3IgPSBOVUxMOwotKyAgZ19hdXRvZnJlZSBnY2hhciAqc2VyaWFsID0gTlVM TDsKLSsgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1 IChkZXZpY2UpOwotKwotKyAgZnBfZGJnICgiJXMgZW50ZXIgLS0+ICIsIEdfU1RSRlVOQyk7Ci0r Ci0rICAvKiBDbGFpbSB1c2IgaW50ZXJmYWNlICovCi0rICB1c2JfZGV2ID0gZnBpX2RldmljZV9n ZXRfdXNiX2RldmljZSAoZGV2aWNlKTsKLSsgIGlmICghZ191c2JfZGV2aWNlX29wZW4gKHVzYl9k ZXYsICZlcnJvcikpCi0rICAgIHsKLSsgICAgICBmcF9kYmcgKCIlcyBnX3VzYl9kZXZpY2Vfb3Bl biBmYWlsZWQgJXMiLCBHX1NUUkZVTkMsIGVycm9yLT5tZXNzYWdlKTsKLSsgICAgICBmcGlfZGV2 aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZpY2UsIE5VTEwsIE5VTEwsIGVycm9yKTsKLSsgICAgICBy ZXR1cm47Ci0rICAgIH0KLSsKLSsgIGlmICghZ191c2JfZGV2aWNlX3Jlc2V0ICh1c2JfZGV2LCAm ZXJyb3IpKQotKyAgICB7Ci0rICAgICAgZnBfZGJnICgiJXMgZ191c2JfZGV2aWNlX3Jlc2V0IGZh aWxlZCAlcyIsIEdfU1RSRlVOQywgZXJyb3ItPm1lc3NhZ2UpOwotKyAgICAgIGdfdXNiX2Rldmlj ZV9jbG9zZSAodXNiX2RldiwgTlVMTCk7Ci0rICAgICAgZnBpX2RldmljZV9wcm9iZV9jb21wbGV0 ZSAoZGV2aWNlLCBOVUxMLCBOVUxMLCBlcnJvcik7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0r Ci0rICBpZiAoIWdfdXNiX2RldmljZV9jbGFpbV9pbnRlcmZhY2UgKHVzYl9kZXYsIDAsIDAsICZl cnJvcikpCi0rICAgIHsKLSsgICAgICBmcF9kYmcgKCIlcyBnX3VzYl9kZXZpY2VfY2xhaW1faW50 ZXJmYWNlIGZhaWxlZCAlcyIsIEdfU1RSRlVOQywgZXJyb3ItPm1lc3NhZ2UpOwotKyAgICAgIGdf dXNiX2RldmljZV9jbG9zZSAodXNiX2RldiwgTlVMTCk7Ci0rICAgICAgZnBpX2RldmljZV9wcm9i ZV9jb21wbGV0ZSAoZGV2aWNlLCBOVUxMLCBOVUxMLCBlcnJvcik7Ci0rICAgICAgcmV0dXJuOwot KyAgICB9Ci0rCi0rICBpZiAoZ19zdHJjbXAwIChnX2dldGVudiAoIkZQX0RFVklDRV9FTVVMQVRJ T04iKSwgIjEiKSA9PSAwKQotKyAgICBzZXJpYWwgPSBnX3N0cmR1cCAoImVtdWxhdGVkLWRldmlj ZSIpOwotKyAgZWxzZQotKyAgICBzZXJpYWwgPSBnX3VzYl9kZXZpY2VfZ2V0X3N0cmluZ19kZXNj cmlwdG9yICh1c2JfZGV2LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnX3VzYl9kZXZpY2VfZ2V0X3NlcmlhbF9udW1iZXJfaW5kZXggKHVzYl9kZXYp LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZXJy b3IpOwotKwotKyAgaWYgKGVycm9yKQotKyAgICB7Ci0rICAgICAgZnBfZGJnICgiJXMgZ191c2Jf ZGV2aWNlX2dldF9zdHJpbmdfZGVzY3JpcHRvciBmYWlsZWQgJXMiLCBHX1NUUkZVTkMsIGVycm9y LT5tZXNzYWdlKTsKLSsgICAgICBnX3VzYl9kZXZpY2VfcmVsZWFzZV9pbnRlcmZhY2UgKGZwaV9k ZXZpY2VfZ2V0X3VzYl9kZXZpY2UgKEZQX0RFVklDRSAoZGV2aWNlKSksCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBOVUxMKTsKLSsgICAgICBnX3VzYl9kZXZp Y2VfY2xvc2UgKHVzYl9kZXYsIE5VTEwpOwotKyAgICAgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxl dGUgKGRldmljZSwgTlVMTCwgTlVMTCwgZXJyb3IpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQot KwotKyAgaWYgKGZwaV9kZXZpY2VfZ2V0X2RyaXZlcl9kYXRhIChkZXZpY2UpICYgRUdJU19FVFU5 MDVfRFJJVkVSX01BWF9FTlJPTExfU1RBR0VTXzIwKQotKyAgICBzZWxmLT5tYXhfZW5yb2xsX3N0 YWdlcyA9IDIwOwotKyAgZWxzZQotKyAgICBzZWxmLT5tYXhfZW5yb2xsX3N0YWdlcyA9IEVHSVNf RVRVOTA1X01BWF9FTlJPTExfU1RBR0VTX0RFRkFVTFQ7Ci0rCi0rICBmcGlfZGV2aWNlX3NldF9u cl9lbnJvbGxfc3RhZ2VzIChkZXZpY2UsIHNlbGYtPm1heF9lbnJvbGxfc3RhZ2VzKTsKLSsKLSsg IGdfdXNiX2RldmljZV9yZWxlYXNlX2ludGVyZmFjZSAoZnBpX2RldmljZV9nZXRfdXNiX2Rldmlj ZSAoRlBfREVWSUNFIChkZXZpY2UpKSwgMCwgMCwgTlVMTCk7Ci0rICBnX3VzYl9kZXZpY2VfY2xv c2UgKHVzYl9kZXYsIE5VTEwpOwotKwotKyAgZnBpX2RldmljZV9wcm9iZV9jb21wbGV0ZSAoZGV2 aWNlLCBzZXJpYWwsIE5VTEwsIGVycm9yKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0 dTkwNV9vcGVuIChGcERldmljZSAqZGV2aWNlKQotK3sKLSsgIGZwX2RiZyAoIk9wZW5pbmcgZGV2 aWNlIik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VU VTkwNSAoZGV2aWNlKTsKLSsgIGdfYXV0b3B0cihHRXJyb3IpIGVycm9yID0gTlVMTDsKLSsKLSsg IGlmICghZ191c2JfZGV2aWNlX3Jlc2V0IChmcGlfZGV2aWNlX2dldF91c2JfZGV2aWNlIChkZXZp Y2UpLCAmZXJyb3IpKQotKyAgICB7Ci0rICAgICAgZnBpX2RldmljZV9vcGVuX2NvbXBsZXRlIChk ZXZpY2UsIGdfc3RlYWxfcG9pbnRlciAoJmVycm9yKSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9 Ci0rCi0rICBpZiAoIWdfdXNiX2RldmljZV9jbGFpbV9pbnRlcmZhY2UgKGZwaV9kZXZpY2VfZ2V0 X3VzYl9kZXZpY2UgKGRldmljZSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDAsIDAsICZlcnJvcikpCi0rICAgIHsKLSsgICAgICBmcGlfZGV2aWNlX29wZW5fY29tcGxl dGUgKGRldmljZSwgZ19zdGVhbF9wb2ludGVyICgmZXJyb3IpKTsKLSsgICAgICByZXR1cm47Ci0r ICAgIH0KLSsKLSsgIGdfYXNzZXJ0IChzZWxmLT50YXNrX3NzbSA9PSBOVUxMKTsKLSsgIHNlbGYt PnRhc2tfc3NtID0gZnBpX3NzbV9uZXcgKGRldmljZSwgZWdpc19ldHU5MDVfZGV2X2luaXRfaGFu ZGxlciwgREVWX0lOSVRfU1RBVEVTKTsKLSsgIGZwaV9zc21fc3RhcnQgKHNlbGYtPnRhc2tfc3Nt LCBlZ2lzX2V0dTkwNV9kZXZfaW5pdF9kb25lKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lz X2V0dTkwNV9jYW5jZWwgKEZwRGV2aWNlICpkZXZpY2UpCi0rewotKyAgZnBfZGJnICgiQ2FuY2Vs Iik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkw NSAoZGV2aWNlKTsKLSsKLSsgIGdfY2FuY2VsbGFibGVfY2FuY2VsIChzZWxmLT5pbnRlcnJ1cHRf Y2FuY2VsbGFibGUpOwotKyAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5pbnRlcnJ1cHRfY2FuY2Vs bGFibGUpOwotKyAgc2VsZi0+aW50ZXJydXB0X2NhbmNlbGxhYmxlID0gZ19jYW5jZWxsYWJsZV9u ZXcgKCk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfc3VzcGVuZCAoRnBEZXZp Y2UgKmRldmljZSkKLSt7Ci0rICBmcF9kYmcgKCJTdXNwZW5kIik7Ci0rCi0rICBlZ2lzX2V0dTkw NV9jYW5jZWwgKGRldmljZSk7Ci0rICBnX2NhbmNlbGxhYmxlX2NhbmNlbCAoZnBpX2RldmljZV9n ZXRfY2FuY2VsbGFibGUgKGRldmljZSkpOwotKyAgZnBpX2RldmljZV9zdXNwZW5kX2NvbXBsZXRl IChkZXZpY2UsIE5VTEwpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X2Nsb3Nl IChGcERldmljZSAqZGV2aWNlKQotK3sKLSsgIGdfYXV0b3B0cihHRXJyb3IpIGVycm9yID0gTlVM TDsKLSsgIGZwX2RiZyAoIkNsb3NpbmcgZGV2aWNlIik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1 ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsgIEdFcnJvciAqZXJy b3IgPSBOVUxMOwotKwotKyAgZWdpc19ldHU5MDVfY2FuY2VsIChkZXZpY2UpOwotKyAgZ19jbGVh cl9vYmplY3QgKCZzZWxmLT5pbnRlcnJ1cHRfY2FuY2VsbGFibGUpOwotKwotKyAgZ191c2JfZGV2 aWNlX3JlbGVhc2VfaW50ZXJmYWNlIChmcGlfZGV2aWNlX2dldF91c2JfZGV2aWNlIChkZXZpY2Up LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAmZXJyb3IpOwotKyAg ZnBpX2RldmljZV9jbG9zZV9jb21wbGV0ZSAoZGV2aWNlLCBnX3N0ZWFsX3BvaW50ZXIgKCZlcnJv cikpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2ZwaV9kZXZpY2VfZWdpc19ldHU5MDVfaW5pdCAo RnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZikKLSt7Ci0rICBHX0RFQlVHX0hFUkUgKCk7Ci0rfQot KwotK3N0YXRpYyB2b2lkCi0rZnBpX2RldmljZV9lZ2lzX2V0dTkwNV9jbGFzc19pbml0IChGcGlE ZXZpY2VFZ2lzRXR1OTA1Q2xhc3MgKmtsYXNzKQotK3sKLSsgIEZwRGV2aWNlQ2xhc3MgKmRldl9j bGFzcyA9IEZQX0RFVklDRV9DTEFTUyAoa2xhc3MpOwotKwotKyAgZGV2X2NsYXNzLT5pZCA9IEZQ X0NPTVBPTkVOVDsKLSsgIGRldl9jbGFzcy0+ZnVsbF9uYW1lID0gRUdJU19FVFU5MDVfRFJJVkVS X0ZVTExOQU1FOwotKwotKyAgZGV2X2NsYXNzLT50eXBlID0gRlBfREVWSUNFX1RZUEVfVVNCOwot KyAgZGV2X2NsYXNzLT5zY2FuX3R5cGUgPSBGUF9TQ0FOX1RZUEVfUFJFU1M7Ci0rICBkZXZfY2xh c3MtPmlkX3RhYmxlID0gZWdpc19ldHU5MDVfaWRfdGFibGU7Ci0rICBkZXZfY2xhc3MtPm5yX2Vu cm9sbF9zdGFnZXMgPSBFR0lTX0VUVTkwNV9NQVhfRU5ST0xMX1NUQUdFU19ERUZBVUxUOwotKyAg ZGV2X2NsYXNzLT50ZW1wX2hvdF9zZWNvbmRzID0gLTE7Ci0rCi0rICBkZXZfY2xhc3MtPnByb2Jl ID0gZWdpc19ldHU5MDVfcHJvYmU7Ci0rICBkZXZfY2xhc3MtPm9wZW4gPSBlZ2lzX2V0dTkwNV9v cGVuOwotKyAgZGV2X2NsYXNzLT5jYW5jZWwgPSBlZ2lzX2V0dTkwNV9jYW5jZWw7Ci0rICBkZXZf Y2xhc3MtPnN1c3BlbmQgPSBlZ2lzX2V0dTkwNV9zdXNwZW5kOwotKyAgZGV2X2NsYXNzLT5jbG9z ZSA9IGVnaXNfZXR1OTA1X2Nsb3NlOwotKyAgZGV2X2NsYXNzLT5pZGVudGlmeSA9IGVnaXNfZXR1 OTA1X2lkZW50aWZ5X3ZlcmlmeTsKLSsgIGRldl9jbGFzcy0+dmVyaWZ5ID0gZWdpc19ldHU5MDVf aWRlbnRpZnlfdmVyaWZ5OwotKyAgZGV2X2NsYXNzLT5lbnJvbGwgPSBlZ2lzX2V0dTkwNV9lbnJv bGw7Ci0rICBkZXZfY2xhc3MtPmRlbGV0ZSA9IGVnaXNfZXR1OTA1X2RlbGV0ZTsKLSsgIGRldl9j bGFzcy0+Y2xlYXJfc3RvcmFnZSA9IGVnaXNfZXR1OTA1X2NsZWFyX3N0b3JhZ2U7Ci0rICBkZXZf Y2xhc3MtPmxpc3QgPSBlZ2lzX2V0dTkwNV9saXN0OwotKwotKyAgZnBpX2RldmljZV9jbGFzc19h dXRvX2luaXRpYWxpemVfZmVhdHVyZXMgKGRldl9jbGFzcyk7Ci0rICBkZXZfY2xhc3MtPmZlYXR1 cmVzIHw9IEZQX0RFVklDRV9GRUFUVVJFX0RVUExJQ0FURVNfQ0hFQ0s7Ci0rfQotZGlmZiAtLWdp dCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuaCBiL2xpYmZwcmludC9k cml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4 IDAwMDAwMDAwLi5lOTMxZGVjYQotLS0tIC9kZXYvbnVsbAotKysrIGIvbGliZnByaW50L2RyaXZl cnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5oCi1AQCAtMCwwICsxLDIxNCBAQAotKy8qCi0rICogRHJp dmVyIGZvciBFZ2lzIFRlY2hub2xvZ3kgKExpZ2hUdW5pbmcpIE1hdGNoLU9uLUNoaXAgc2Vuc29y cwotKyAqCi0rICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgotKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsgKgotKyAq IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAotKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCi0rICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSsgKiBMZXNzZXIgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyAqCi0rICogWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotKyAqIExpY2Vu c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m dHdhcmUKLSsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs b29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCi0rICovCi0rCi0rI3ByYWdtYSBvbmNlCi0r Ci0rI2luY2x1ZGUgImZwaS1kZXZpY2UuaCIKLSsjaW5jbHVkZSAiZnBpLXNzbS5oIgotKwotK0df REVDTEFSRV9GSU5BTF9UWVBFIChGcGlEZXZpY2VFZ2lzRXR1OTA1LCBmcGlfZGV2aWNlX2VnaXNf ZXR1OTA1LCBGUEksIERFVklDRV9FR0lTX0VUVTkwNSwgRnBEZXZpY2UpCi0rCi0rI2RlZmluZSBF R0lTX0VUVTkwNV9EUklWRVJfRlVMTE5BTUUgIkVnaXMgVGVjaG5vbG9neSAoTGlnaFR1bmluZykg TWF0Y2gtb24tQ2hpcCIKLSsKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X0RSSVZFUl9DSEVDS19QUkVG SVhfVFlQRTEgKDEgPDwgMCkKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X0RSSVZFUl9DSEVDS19QUkVG SVhfVFlQRTIgKDEgPDwgMSkKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X0RSSVZFUl9NQVhfRU5ST0xM X1NUQUdFU18yMCAoMSA8PCAyKQotKwotKyNkZWZpbmUgRUdJU19FVFU5MDVfRVBfQ01EX09VVCAo MHgwMiB8IEZQSV9VU0JfRU5EUE9JTlRfT1VUKQotKyNkZWZpbmUgRUdJU19FVFU5MDVfRVBfQ01E X0lOICgweDgxIHwgRlBJX1VTQl9FTkRQT0lOVF9JTikKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X0VQ X0NNRF9JTlRFUlJVUFRfSU4gMHg4MwotKwotKyNkZWZpbmUgRUdJU19FVFU5MDVfVVNCX0NPTlRS T0xfVElNRU9VVCA1MDAwCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9VU0JfU0VORF9USU1FT1VUIDUw MDAKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X1VTQl9SRUNWX1RJTUVPVVQgNTAwMAotKyNkZWZpbmUg RUdJU19FVFU5MDVfVVNCX0lOVEVSUlVQVF9USU1FT1VUIDAgLyogTm8gdGltZW91dCBmb3Igd2Fp dGluZyBmb3IgZmluZ2VyIGRvd24gKi8KLSsKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X1VTQl9JTl9S RUNWX0xFTkdUSCA0MDk2Ci0rI2RlZmluZSBFR0lTX0VUVTkwNV9VU0JfSU5URVJSVVBUX0lOX1JF Q1ZfTEVOR1RIIDY0Ci0rCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9NQVhfRU5ST0xMX1NUQUdFU19E RUZBVUxUIDEyCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9NQVhfRU5ST0xMX05VTSAxMgotKyNkZWZp bmUgRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFIDMyCi0rI2RlZmluZSBFR0lTX0VU VTkwNV9MSVNUX1JFU1BPTlNFX1BSRUZJWF9TSVpFIDE0Ci0rI2RlZmluZSBFR0lTX0VUVTkwNV9M SVNUX1JFU1BPTlNFX1NVRkZJWF9TSVpFIDIKLSsKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X1BBUkFf NF9TSVpFIDY4Ci0rCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9QQVJBXzFfVkFMVUUgMAotKyNkZWZp bmUgRUdJU19FVFU5MDVfUEFSQV8yX1ZBTFVFIDAKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X1BBUkFf M19WQUxVRSAzMgotKwotKyNwcmFnbWEgcGFjayhwdXNoLCAxKQotK3R5cGVkZWYgc3RydWN0Ci0r ewotKyAgZ3VjaGFyICByZXNlcnZlX3BhcmFfMTsKLSsgIGd1c2hvcnQgcmVzZXJ2ZV9wYXJhXzI7 Ci0rICBndXNob3J0IHJlc2VydmVfcGFyYV8zOwotKyAgZ3VjaGFyICByZXNlcnZlX3BhcmFfNFtF R0lTX0VUVTkwNV9QQVJBXzRfU0laRV07Ci0rfSBFZ2lzbW9jU2lkRGF0YTsKLSsjcHJhZ21hIHBh Y2socG9wKQotKwotKy8qIHN0YW5kYXJkIHByZWZpeGVzIGZvciBhbGwgcmVhZC93cml0ZXMgKi8K LSsKLStzdGF0aWMgZ3VjaGFyIGVnaXNfZXR1OTA1X3dyaXRlX3ByZWZpeFtdID0geydFJywgJ0cn LCAnSScsICdTJywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMX07Ci0rc3RhdGljIGdzaXplIGVnaXNf ZXR1OTA1X3dyaXRlX3ByZWZpeF9sZW4gPSBzaXplb2YgKGVnaXNfZXR1OTA1X3dyaXRlX3ByZWZp eCkgLyBzaXplb2YgKGVnaXNfZXR1OTA1X3dyaXRlX3ByZWZpeFswXSk7Ci0rCi0rc3RhdGljIGd1 Y2hhciBlZ2lzX2V0dTkwNV9yZWFkX3ByZWZpeFtdID0geydTJywgJ0knLCAnRycsICdFJywgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMX07Ci0rc3RhdGljIGdzaXplIGVnaXNfZXR1OTA1X3JlYWRfcHJl Zml4X2xlbiA9IHNpemVvZiAoZWdpc19ldHU5MDVfcmVhZF9wcmVmaXgpIC8gc2l6ZW9mIChlZ2lz X2V0dTkwNV9yZWFkX3ByZWZpeFswXSk7Ci0rCi0rCi0rLyogaGFyZC1jb2RlZCBjb21tYW5kIHBh eWxvYWRzICovCi0rCi0rc3RhdGljIGd1Y2hhciBjbWRfZndfdmVyc2lvbltdID0gezB4MDAsIDB4 MDAsIDB4MDAsIDB4MDcsIDB4NTAsIDB4N2YsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MGN9 OwotK3N0YXRpYyBnc2l6ZSBjbWRfZndfdmVyc2lvbl9sZW4gPSBzaXplb2YgKGNtZF9md192ZXJz aW9uKSAvIHNpemVvZiAoY21kX2Z3X3ZlcnNpb25bMF0pOwotK3N0YXRpYyBndWNoYXIgcnNwX2Z3 X3ZlcnNpb25fc3VmZml4W10gPSB7MHg5MCwgMHgwMH07Ci0rc3RhdGljIGdzaXplIHJzcF9md192 ZXJzaW9uX3N1ZmZpeF9sZW4gPSBzaXplb2YgKHJzcF9md192ZXJzaW9uX3N1ZmZpeCkgLyBzaXpl b2YgKHJzcF9md192ZXJzaW9uX3N1ZmZpeFswXSk7Ci0rCi0rc3RhdGljIGd1Y2hhciBjbWRfaW5p dFtdID0gezB4MDAsIDB4MDAsIDB4MDAsIDB4MjksIDB4NTAsIDB4ODEsIDB4ODAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDAsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIDB4MDAsIDB4MjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MTAsIDB4MDAsIDB4MTIsIDB4MDAsIDB4NDUsIDB4NjcsIDB4NjksIDB4NzMsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDYsIDB4NTAsIDB4NTMsIDB4NjUsIDB4NzMsIDB4 NzMsIDB4NjksIDB4NmYsIDB4NmUsIDB4MDAsIDB4NTEsIDB4YzYsIDB4YmQsIDB4NzF9OwotK3N0 YXRpYyBnc2l6ZSBjbWRfaW5pdF9sZW4gPSBzaXplb2YgKGNtZF9pbml0KSAvIHNpemVvZiAoY21k X2luaXRbMF0pOwotKwotK3N0YXRpYyBndWNoYXIgY21kX2xpc3RbXSA9IHsweDAwLCAweDAwLCAw eDAwLCAweDA3LCAweDUwLCAweDE5LCAweDA0LCAweDAwLCAweDAwLCAweDAxLCAweDQwfTsKLStz dGF0aWMgZ3NpemUgY21kX2xpc3RfbGVuID0gc2l6ZW9mIChjbWRfbGlzdCkgLyBzaXplb2YgKGNt ZF9saXN0WzBdKTsKLSsKLStzdGF0aWMgZ3VjaGFyIGNtZF9zZW5zb3JfcmVzZXRbXSA9IHsweDAw LCAweDAwLCAweDAwLCAweDA0LCAweDUwLCAweDFhLCAweDAwLCAweDAwfTsKLStzdGF0aWMgZ3Np emUgY21kX3NlbnNvcl9yZXNldF9sZW4gPSBzaXplb2YgKGNtZF9zZW5zb3JfcmVzZXQpIC8gc2l6 ZW9mIChjbWRfc2Vuc29yX3Jlc2V0WzBdKTsKLSsKLStzdGF0aWMgZ3VjaGFyIGNtZF9zZW5zb3Jf Y2hlY2tbXSA9IHsweDAwLCAweDAwLCAweDAwLCAweDA0LCAweDUwLCAweDE3LCAweDAyLCAweDAw fTsKLStzdGF0aWMgZ3NpemUgY21kX3NlbnNvcl9jaGVja19sZW4gPSBzaXplb2YgKGNtZF9zZW5z b3JfY2hlY2spIC8gc2l6ZW9mIChjbWRfc2Vuc29yX2NoZWNrWzBdKTsKLSsKLStzdGF0aWMgZ3Vj aGFyIGNtZF9zZW5zb3JfaWRlbnRpZnlbXSA9IHsweDAwLCAweDAwLCAweDAwLCAweDA0LCAweDUw LCAweDE3LCAweDAxLCAweDAxfTsKLStzdGF0aWMgZ3NpemUgY21kX3NlbnNvcl9pZGVudGlmeV9s ZW4gPSBzaXplb2YgKGNtZF9zZW5zb3JfaWRlbnRpZnkpIC8gc2l6ZW9mIChjbWRfc2Vuc29yX2lk ZW50aWZ5WzBdKTsKLSsKLStzdGF0aWMgZ3VjaGFyIHJzcF9pZGVudGlmeV9tYXRjaF9zdWZmaXhb XSA9IHsweDkwLCAweDAwfTsKLStzdGF0aWMgZ3NpemUgcnNwX2lkZW50aWZ5X21hdGNoX3N1ZmZp eF9sZW4gPSBzaXplb2YgKHJzcF9pZGVudGlmeV9tYXRjaF9zdWZmaXgpIC8gc2l6ZW9mIChyc3Bf aWRlbnRpZnlfbWF0Y2hfc3VmZml4WzBdKTsKLSsKLStzdGF0aWMgZ3VjaGFyIHJzcF9pZGVudGlm eV9ub3RtYXRjaF9zdWZmaXhbXSA9IHsweDkwLCAweDA0fTsKLStzdGF0aWMgZ3NpemUgcnNwX2lk ZW50aWZ5X25vdG1hdGNoX3N1ZmZpeF9sZW4gPSBzaXplb2YgKHJzcF9pZGVudGlmeV9ub3RtYXRj aF9zdWZmaXgpIC8gc2l6ZW9mIChyc3BfaWRlbnRpZnlfbm90bWF0Y2hfc3VmZml4WzBdKTsKLSsK LStzdGF0aWMgZ3VjaGFyIGNtZF9lbnJvbGxfc3RhcnRpbmdbXSA9IHsweDAwLCAweDAwLCAweDAw LCAweDA3LCAweDUwLCAweDE2LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDIwfTsKLStzdGF0 aWMgZ3NpemUgY21kX2Vucm9sbF9zdGFydGluZ19sZW4gPSBzaXplb2YgKGNtZF9lbnJvbGxfc3Rh cnRpbmcpIC8gc2l6ZW9mIChjbWRfZW5yb2xsX3N0YXJ0aW5nWzBdKTsKLSsKLStzdGF0aWMgZ3Vj aGFyIGNtZF9zZW5zb3Jfc3RhcnRfY2FwdHVyZVtdID0gezB4MDAsIDB4MDAsIDB4MDAsIDB4MDQs IDB4NTAsIDB4MTYsIDB4MDIsIDB4MDF9OwotK3N0YXRpYyBnc2l6ZSBjbWRfc2Vuc29yX3N0YXJ0 X2NhcHR1cmVfbGVuID0gc2l6ZW9mIChjbWRfc2Vuc29yX3N0YXJ0X2NhcHR1cmUpIC8gc2l6ZW9m IChjbWRfc2Vuc29yX3N0YXJ0X2NhcHR1cmVbMF0pOwotKwotK3N0YXRpYyBndWNoYXIgY21kX3Jl YWRfY2FwdHVyZVtdID0gezB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4NTAsIDB4MTYsIDB4MDIs IDB4MDIsIDB4MDAsIDB4MDAsIDB4MDJ9OwotK3N0YXRpYyBnc2l6ZSBjbWRfcmVhZF9jYXB0dXJl X2xlbiA9IHNpemVvZiAoY21kX3JlYWRfY2FwdHVyZSkgLyBzaXplb2YgKGNtZF9yZWFkX2NhcHR1 cmVbMF0pOwotKwotK3N0YXRpYyBndWNoYXIgY21kX2R1cGxpY2F0ZV9jaGVja1tdID0gezB4MDAs IDB4MDAsIDB4MDAsIDB4MDQsIDB4NTAsIDB4MTYsIDB4MDUsIDB4MDB9OwotK3N0YXRpYyBnc2l6 ZSBjbWRfZHVwbGljYXRlX2NoZWNrX2xlbiA9IHNpemVvZiAoY21kX2R1cGxpY2F0ZV9jaGVjaykg LyBzaXplb2YgKGNtZF9kdXBsaWNhdGVfY2hlY2tbMF0pOwotKwotK3N0YXRpYyBndWNoYXIgcnNw X3JlYWRfc3VjY2Vzc19wcmVmaXhbXSA9IHsweDAwLCAweDAwLCAweDAwLCAweDA0fTsKLStzdGF0 aWMgZ3NpemUgcnNwX3JlYWRfc3VjY2Vzc19wcmVmaXhfbGVuID0gc2l6ZW9mIChyc3BfcmVhZF9z dWNjZXNzX3ByZWZpeCkgLyBzaXplb2YgKHJzcF9yZWFkX3N1Y2Nlc3NfcHJlZml4WzBdKTsKLStz dGF0aWMgZ3VjaGFyIHJzcF9yZWFkX3N1Y2Nlc3Nfc3VmZml4W10gPSB7MHg5MCwgMHgwMH07Ci0r c3RhdGljIGdzaXplIHJzcF9yZWFkX3N1Y2Nlc3Nfc3VmZml4X2xlbiA9IHNpemVvZiAocnNwX3Jl YWRfc3VjY2Vzc19zdWZmaXgpIC8gc2l6ZW9mIChyc3BfcmVhZF9zdWNjZXNzX3N1ZmZpeFswXSk7 Ci0rc3RhdGljIGd1Y2hhciByc3BfcmVhZF9vZmZjZW50ZXJfcHJlZml4W10gPSB7MHgwMCwgMHgw MCwgMHgwMCwgMHgwNH07Ci0rc3RhdGljIGdzaXplIHJzcF9yZWFkX29mZmNlbnRlcl9wcmVmaXhf bGVuID0gc2l6ZW9mIChyc3BfcmVhZF9vZmZjZW50ZXJfcHJlZml4KSAvIHNpemVvZiAocnNwX3Jl YWRfb2ZmY2VudGVyX3ByZWZpeFswXSk7Ci0rc3RhdGljIGd1Y2hhciByc3BfcmVhZF9vZmZjZW50 ZXJfc3VmZml4W10gPSB7MHg2NCwgMHg5MX07Ci0rc3RhdGljIGdzaXplIHJzcF9yZWFkX29mZmNl bnRlcl9zdWZmaXhfbGVuID0gc2l6ZW9mIChyc3BfcmVhZF9vZmZjZW50ZXJfc3VmZml4KSAvIHNp emVvZiAocnNwX3JlYWRfb2ZmY2VudGVyX3N1ZmZpeFswXSk7Ci0rc3RhdGljIGd1Y2hhciByc3Bf cmVhZF9kaXJ0eV9wcmVmaXhbXSA9IHsweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDY0fTsKLStz dGF0aWMgZ3NpemUgcnNwX3JlYWRfZGlydHlfcHJlZml4X2xlbiA9IHNpemVvZiAocnNwX3JlYWRf ZGlydHlfcHJlZml4KSAvIHNpemVvZiAocnNwX3JlYWRfZGlydHlfcHJlZml4WzBdKTsKLSsKLStz dGF0aWMgZ3VjaGFyIGNtZF9jb21taXRfc3RhcnRpbmdbXSA9IHsweDAwLCAweDAwLCAweDAwLCAw eDA3LCAweDUwLCAweDE2LCAweDA1LCAweDAwLCAweDAwLCAweDAwLCAweDIwfTsKLStzdGF0aWMg Z3NpemUgY21kX2NvbW1pdF9zdGFydGluZ19sZW4gPSBzaXplb2YgKGNtZF9jb21taXRfc3RhcnRp bmcpIC8gc2l6ZW9mIChjbWRfY29tbWl0X3N0YXJ0aW5nWzBdKTsKLSsKLSsvKiBwcmVmaXhlcy9z dWZmaXhlcyBhbmQgb3RoZXIgdGhpbmdzIGZvciBkeW5hbWljYWxseSBjcmVhdGVkIGNvbW1hbmQg cGF5bG9hZHMgKi8KLSsKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X0NIRUNLX0JZVEVTX0xFTkdUSCAy Ci0rI2RlZmluZSBFR0lTX0VUVTkwNV9JREVOVElGWV9SRVNQT05TRV9QUklOVF9JRF9PRkZTRVQg NDYKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X0NNRF9DSEVDS19TRVBBUkFUT1JfTEVOR1RIIDMyCi0r Ci0rc3RhdGljIGd1Y2hhciBjbWRfbmV3X3ByaW50X3ByZWZpeF90eXBlMltdID0gezB4MDAsIDB4 MDAsIDB4MDAsIDB4NTAsIDB4NTAsIDB4MTYsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDl9 OwotK3N0YXRpYyBnc2l6ZSBjbWRfbmV3X3ByaW50X3ByZWZpeF90eXBlMl9sZW4gPSBzaXplb2Yg KGNtZF9uZXdfcHJpbnRfcHJlZml4X3R5cGUyKSAvIHNpemVvZiAoY21kX25ld19wcmludF9wcmVm aXhfdHlwZTJbMF0pOwotKwotK3N0YXRpYyBndWNoYXIgY21kX2RlbGV0ZV9wcmVmaXhbXSA9IHsw eDUwLCAweDE4LCAweDA0LCAweDAwLCAweDAwfTsKLStzdGF0aWMgZ3NpemUgY21kX2RlbGV0ZV9w cmVmaXhfbGVuID0gc2l6ZW9mIChjbWRfZGVsZXRlX3ByZWZpeCkgLyBzaXplb2YgKGNtZF9kZWxl dGVfcHJlZml4WzBdKTsKLStzdGF0aWMgZ3VjaGFyIHJzcF9kZWxldGVfc3VjY2Vzc19wcmVmaXhb XSA9IHsweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDkwLCAweDAwfTsKLStzdGF0aWMgZ3NpemUg cnNwX2RlbGV0ZV9zdWNjZXNzX3ByZWZpeF9sZW4gPSBzaXplb2YgKHJzcF9kZWxldGVfc3VjY2Vz c19wcmVmaXgpIC8gc2l6ZW9mIChyc3BfZGVsZXRlX3N1Y2Nlc3NfcHJlZml4WzBdKTsKLSsKLStz dGF0aWMgZ3VjaGFyIGNtZF9jaGVja19wcmVmaXhfdHlwZTFbXSA9IHsweDUwLCAweDE3LCAweDAz LCAweDAwLCAweDAwfTsKLStzdGF0aWMgZ3NpemUgY21kX2NoZWNrX3ByZWZpeF90eXBlMV9sZW4g PSBzaXplb2YgKGNtZF9jaGVja19wcmVmaXhfdHlwZTEpIC8gc2l6ZW9mIChjbWRfY2hlY2tfcHJl Zml4X3R5cGUxWzBdKTsKLStzdGF0aWMgZ3VjaGFyIGNtZF9jaGVja19wcmVmaXhfdHlwZTJbXSA9 IHsweDUwLCAweDE3LCAweDAzLCAweDgwLCAweDAwfTsKLStzdGF0aWMgZ3NpemUgY21kX2NoZWNr X3ByZWZpeF90eXBlMl9sZW4gPSBzaXplb2YgKGNtZF9jaGVja19wcmVmaXhfdHlwZTIpIC8gc2l6 ZW9mIChjbWRfY2hlY2tfcHJlZml4X3R5cGUyWzBdKTsKLStzdGF0aWMgZ3VjaGFyIGNtZF9jaGVj a19zdWZmaXhbXSA9IHsweDAwLCAweDQwfTsKLStzdGF0aWMgZ3NpemUgY21kX2NoZWNrX3N1ZmZp eF9sZW4gPSBzaXplb2YgKGNtZF9jaGVja19zdWZmaXgpIC8gc2l6ZW9mIChjbWRfY2hlY2tfc3Vm Zml4WzBdKTsKLStzdGF0aWMgZ3VjaGFyIHJzcF9jaGVja19ub3RfeWV0X2Vucm9sbGVkX3N1ZmZp eFtdID0gezB4OTAsIDB4MDR9OwotK3N0YXRpYyBnc2l6ZSByc3BfY2hlY2tfbm90X3lldF9lbnJv bGxlZF9zdWZmaXhfbGVuID0gc2l6ZW9mIChyc3BfY2hlY2tfbm90X3lldF9lbnJvbGxlZF9zdWZm aXgpIC8gc2l6ZW9mIChyc3BfY2hlY2tfbm90X3lldF9lbnJvbGxlZF9zdWZmaXhbMF0pOwotKwot KwotKy8qIFNTTSB0YXNrIHN0YXRlcyBhbmQgdmFyaW91cyBzdGF0dXMgZW51bXMgKi8KLSsKLSt0 eXBlZGVmIGVudW0gewotKyAgQ01EX1NFTkQsCi0rICBDTURfR0VULAotKyAgQ01EX1NUQVRFUywK LSt9IENvbW1hbmRTdGF0ZXM7Ci0rCi0rdHlwZWRlZiBlbnVtIHsKLSsgIERFVl9HRVRfRldfVkVS U0lPTiwKLSsgIERFVl9JTklUX0NPTlRST0wsCi0rICBERVZfSU5JVF9TVEFURVMsCi0rfSBEZXZp Y2VJbml0U3RhdGVzOwotKwotK3R5cGVkZWYgZW51bSB7Ci0rICBJREVOVElGWV9HRVRfRU5ST0xM RURfSURTLAotKyAgSURFTlRJRllfQ0hFQ0tfRU5ST0xMRURfTlVNLAotKyAgSURFTlRJRllfU0VO U09SX1JFU0VULAotKyAgSURFTlRJRllfU0VOU09SX0lERU5USUZZLAotKyAgSURFTlRJRllfV0FJ VF9GSU5HRVIsCi0rICBJREVOVElGWV9TRU5TT1JfQ0hFQ0ssCi0rICBJREVOVElGWV9DSEVDSywK LSsgIElERU5USUZZX0NPTVBMRVRFX1NFTlNPUl9SRVNFVCwKLSsgIElERU5USUZZX0NPTVBMRVRF LAotKyAgSURFTlRJRllfU1RBVEVTLAotK30gSWRlbnRpZnlTdGF0ZXM7Ci0rCi0rdHlwZWRlZiBl bnVtIHsKLSsgIEVOUk9MTF9TVEFSVCwKLSsgIEVOUk9MTF9DQVBUVVJFX1NFTlNPUl9SRVNFVCwK LSsgIEVOUk9MTF9DQVBUVVJFX1NFTlNPUl9TVEFSVF9DQVBUVVJFLAotKyAgRU5ST0xMX0NBUFRV UkVfV0FJVF9GSU5HRVIsCi0rICBFTlJPTExfQ0FQVFVSRV9SRUFEX1JFU1BPTlNFLAotKyAgRU5S T0xMX0RVUExJQ0FURV9DSEVDSywKLSsgIEVOUk9MTF9DT01NSVRfU1RBUlQsCi0rICBFTlJPTExf Q09NTUlULAotKyAgRU5ST0xMX0NPTU1JVF9TRU5TT1JfUkVTRVQsCi0rICBFTlJPTExfQ09NUExF VEUsCi0rICBFTlJPTExfU1RBVEVTLAotK30gRW5yb2xsU3RhdGVzOwotKwotK3R5cGVkZWYgZW51 bSB7Ci0rICBFTlJPTExfU1RBVFVTX0RFVklDRV9GVUxMLAotKyAgRU5ST0xMX1NUQVRVU19EVVBM SUNBVEUsCi0rICBFTlJPTExfU1RBVFVTX1BBUlRJQUxfT0ssCi0rICBFTlJPTExfU1RBVFVTX1JF VFJZLAotKyAgRU5ST0xMX1NUQVRVU19DT01QTEVURSwKLSt9IEVucm9sbFN0YXR1czsKLSsKLSt0 eXBlZGVmIGVudW0gewotKyAgTElTVF9HRVRfRU5ST0xMRURfSURTLAotKyAgTElTVF9SRVRVUk5f RU5ST0xMRURfUFJJTlRTLAotKyAgTElTVF9TVEFURVMsCi0rfSBMaXN0U3RhdGVzOwotKwotK3R5 cGVkZWYgZW51bSB7Ci0rICBERUxFVEVfR0VUX0VOUk9MTEVEX0lEUywKLSsgIERFTEVURV9ERUxF VEUsCi0rICBERUxFVEVfU1RBVEVTLAotK30gRGVsZXRlU3RhdGVzOwotZGlmZiAtLWdpdCBhL2xp YmZwcmludC9tZXNvbi5idWlsZCBiL2xpYmZwcmludC9tZXNvbi5idWlsZAotaW5kZXggYWUwZjZl MjQuLjA4MWIxOGRlIDEwMDY0NAotLS0tIGEvbGliZnByaW50L21lc29uLmJ1aWxkCi0rKysgYi9s aWJmcHJpbnQvbWVzb24uYnVpbGQKLUBAIC0xMjcsNiArMTI3LDggQEAgZHJpdmVyX3NvdXJjZXMg PSB7Ci0gICAgICAgICBbICdkcml2ZXJzL2VnaXMwNTcwLmMnIF0sCi0gICAgICdlZ2lzbW9jJyA6 Ci0gICAgICAgICBbICdkcml2ZXJzL2VnaXNtb2MvZWdpc21vYy5jJyBdLAotKyAgICAnZWdpc19l dHU5MDUnIDoKLSsgICAgICAgIFsgJ2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jJyBdLAot ICAgICAndmZzMDA1MCcgOgotICAgICAgICAgWyAnZHJpdmVycy92ZnMwMDUwLmMnIF0sCi0gICAg ICdlbGFuJyA6Ci1kaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWlsZAotaW5kZXgg MTRmYjExZjIuLjAyYjQzZTRmIDEwMDY0NAotLS0tIGEvbWVzb24uYnVpbGQKLSsrKyBiL21lc29u LmJ1aWxkCi1AQCAtMTMxLDYgKzEzMSw3IEBAIGRlZmF1bHRfZHJpdmVycyA9IFsKLSAgICAgJ2V0 ZXM2MDMnLAotICAgICAnZWdpczA1NzAnLAotICAgICAnZWdpc21vYycsCi0rICAgICdlZ2lzX2V0 dTkwNScsCi0gICAgICd2Y29tNXMnLAotICAgICAnc3luYXB0aWNzJywKLSAgICAgJ2VsYW4nLAot QEAgLTE2NSw2ICsxNjYsNyBAQCBlbmRpYW5faW5kZXBlbmRlbnRfZHJpdmVycyA9IHZpcnR1YWxf ZHJpdmVycyArIFsKLSAgICAgJ2FlczQwMDAnLAotICAgICAnZWdpczA1NzAnLAotICAgICAnZWdp c21vYycsCi0rICAgICdlZ2lzX2V0dTkwNScsCi0gICAgICdlbGFubW9jJywKLSAgICAgJ2V0ZXM2 MDMnLAotICAgICAnZm9jYWx0ZWNoX21vYycsCi1kaWZmIC0tZ2l0IGEvdGVzdHMvZWdpc19ldHU5 MDUvY3VzdG9tLnBjYXBuZyBiL3Rlc3RzL2VnaXNfZXR1OTA1L2N1c3RvbS5wY2FwbmcKLW5ldyBm aWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwLi5iMjFjNDYyMmExYjViNDRmMjUwNjU4ODJjZmYzZDNlMjY4N2Q3NmQxCi1HSVQgYmlu YXJ5IHBhdGNoCi1saXRlcmFsIDMzNjQ0Ci16Y21kNV8zd1R1M3hqbVQjTFZ6RzNmKnxPcVJEMn5R VjR6Q0dnTk8pJWpYKEBxdj1lIW1zKD9IIXFPQWpucHgjSW4KLXo1V05OZzFebjhBVEI9PDJUOCVf fXcySCt5N1dHbkZ0OCYjKEsmXzk7e3J8Sn4rV1g5KGQ3YWJvPEw+WUtYRUpsbgotenRoTjhXX0Zp WTdKKTVDemFkRiF4OUxFYDVjflh4JmRPbn5fIzV1KG9HV3g5T219fS11bykpYyRSI2NSZ1JZIWtP Ci16SH5YXmFuQSVCYHIlI0l4cElKTk92YnVAMHFRYHNoanZZSmZsK3UxRDxVOEcqUUZZVmklIzk4 eEVrQzhTdGZjP0kKLXpsQnR1WU9gY2dkKEo2NHdiazNTezwmMjU3R29yYFcpWGtoYz4kMkxKbSFB LSYmejFJejl6VlFwY0p5bFhfbCgrIQotem0pQjA2SlNrY2BPQzJwS0ZEPGB4UFRkdWdga3ozUnF7 NE9QYGtxNnZpXjZUbmNPcClxR2lUUE5TNUJZUy16bFBfCi16dD9CKnRZM2Y2VnowZFBgRkA4YSVA MkoqSiZxYyE7VUhZM05wNyVsSiVRcWk1Rmc2bTg8VTNBZkAlUSlGKGM4fGgKLXpgfTNXOFlPQnV0 Zj1hd0tSfGxgP2pmblRRaHMqZjApa19iNTtuSEReVzlUJnBAUH5UJUJAWGIxWllETT1qT2F1NAot ei10IShiZSY7K1ZhKTdFanVqZDE7JksjUTskKXtRe20mfEQrYWt9KEEyUkxPO1J9ZCVYUjdCQCtw YDNeWHVqbWJ0Ci16KC1xIVhzP0ZBfjlNKDkzVVVMOW48fX4/bmxAbFpTUCZFb1lZNWJ4e0ExNSEq Uzx7YytWaCkqMEB0djctZDVPMzwKLXptcCZSQDwkX24xRTJpPDY9PGBfcmsqa0xfUE5tbHpzZDh6 JVJwcjhuSzIoaURQY29PSDA+e2F4M09SK1g9MHt3SQotem8rOWRMVlpLWFVoeHVpbXBHX0tQSEVX eUw0P0YwN0lESl83ZXByOVNJTkp8M0p+UlY8QCN4KDQhX1NHNnZVZlAqCi16RFJSMXNJS3loVVp0 Z2clVTVjRH5VLS1qb213ISM+SlFxP3VJOFBlQ1VXdkVQJm8zJiNEfCQ9IXAmMCRpZWQ5VWAKLXpG NUV8IyRIejVaTTFPT2o5aT9fJVlFXzsrPXAycH5NZFNDI0ZMUT1DS1h3SzxXZldEO2RHeEJrUXtm RHg0PXxfZgotem11cj9KJWd0ZWJia0p8MmJ0KlQqU3d6Tl5xe1Fld2k5aHw4bWlSKj5qOSlTc19A NztfYSFVZjRASyFTWCY2VlJiCi16X1E4ST0zTyNNJHozfkE0eklvWEFqTl9gYGFmTXp6YkxIPmQm ZCF8RU81ek1WdUZlQGZLSTZFMHpDYDhwTHdlJEUKLXpSMWNTMGo+OCEtX2lYPlE4R1dOdXNtYz4w RGFnMkxTM1RhMEU4eHA8YnhWY0hHdVB2NDtlPSRsQzYyNTcoXllQcQotenpFPVdfdDJjaHU1P193 MTN0V3tPOzhRKXY9bTN3fngldmU1cXohZkI4PntJeDJpazZJZXVUJVpAckMwP3NgPypCCi16cipO YnkhLWtJLU9VTHJNeWkxUlRSb0MtKj9KMVp+YG8rSjkqUU5KNHombGomOG8mNEBAcDRKVyQ7Vj85 Njk0fDYKLXpUbF47VXglfk5AUzAoeWZwTDRZPzlUX0RfTiNvXl84XjxeUGxzPmAle0drZnB3QStG eXN7VGpOSVVGc0QjdmVPawotel8lSiRfY2pfRFRTYlM8KE1Pa1NAWTUmcXdgWlpXRHpmKnNoSE1A K3NlP2hNfis9IWxJMitja3VadVNrbjkmbl44Ci16Jn17UjVJXiU/QGBFaHpXI3lkSWNKdnRwfURt IWR5LUs/eyMjIWo5IXQ4ViU8PWxvfj9hRnhVTGshfTcyKXl0KiMKLXp6MG1jTm5wUkYjWklaNHwx ZCZ3SmVMbm9BZUJfO3w9YDZ6TXlzNiZGaV9tbjJLOHhGUj8qcm8tdExRWmNAVEkwUgotem0jWD9S SlYlUW5HPTJSX0l3UjhIJSVDU1pfTUZYaj83Nkx3UHZZMiUteVVyMnk+bGlKNjteZXBuUU5YKWU8 bUF5Ci16WEF2KFNeRnM0Vm90YDBIRUA4JnJpJDQ2TyoycFZTciV9dG8+dloyK0tBa2thKWFsc0Fn NlZXJUl3YyNLe0N6VD0KLXo5KHU+PjxkfVJDYnQtIUBtYD1gYzt3IUFgJH1fQWVNS1liZkJ3bSt9 YWUhQ3FiVCNwRTM4UGNyY1UkNio2KDBHWgoteiZNU0ZtQ3R9Xi1XQXJFWT8qPEFrSmY1IVliWVVh NkN4QC1TKkFJK0dlKjN3cWU7SipeKFZ9UjRjeDMlTkleJnFCCi16RTUyJj07ZlJnLUp4fV9vPyRS QTZ6SV49eWAoQ3wjWnF3Yys3eVFAI2NmNEhyYiVSJEF1ODtwN2VvXk5PJV5jNzYKLXolUzBWcD9O ZDZZb2E1O1YhWihqVG84Qm0+QH19eV4/JjFHUG9HeldoMFp5c21OYUV5emQ4X3YjJHdRM1o8REJA SgotejMlQnVVaGd5OD1BJkZ6e2FoKzRQOGhVelp7SkUhSVhnbUA0YTsqS2NkbUZEbDlxRXl5TUcr Y0dQeE5jX0pASmhwCi16MDFrTXRvUjlwZk07a05HUHVGSjk9cU8mYEQ1JlpocH4wMytxdGl+YVoz c0BPKGN7RilCXkA2aGs1TmRDRjgxTnUKLXo+dmZfPUA5M1A4SHowd0VhcHU/UChee1dLPURNM1cm WmVDaU9yekpsPigqYE55Mld7TTtYWEhJcUhRblMkQnhaZwotem1AdjJjVjVyaV9eKiZgRSVwSWwz WE5eOUVAZlIrZStRXmVmNCZWPH1ffDc0RTRXK3FVamhRcCg5MWF3VDU4byo1Ci16TVE0PEVqWVJx MEotZ3pXJFF0Pz4+JmdEaWgzanxNQH5MTGQ5M1FGZ1hZfjlGXzFvRG0qITc/biZqOUlxNVRTUEEK LXpyYiVgXippRjFIOXBlQm1gWUN2aT9qUWJvRm5AJillK2NxWXtTXjM1Nk1tNVNtNDlweER5JWJP SkZmQkpDQlZPUwotenkmWSNzJEN+YXAoRGsoI0hBWD5SeTlSb34qIUZYLVkyKUtPM3Bwdnoyan5C NjI8OWk1SmJ3Pnl4Pk8mSXhhTzJQCi16b3Bpcz1sVEolblZzdTNNJCR1N0V7M2FKVUNGPUF4O1Ju Jmw/PGQxOXVRUSR4ZTV1by1CREVVS2UkVWFPMiVYWS0KLXplKEBEbkJleENhaS17VklaZDtVRiZu SGZvRCghe2xscDQoPVBBKkNOcD81PyojT08oQ2JlI3wxNSUoKFNjVGViPwotemt+YmlNPk5XKHZV ISRrQ1RhQUQoSDlCeGJGcGJpQXsoVWRvX0tGdjNqa008QHBaQmorOG81KztmMDNSWHFsNFVECi16 WWJkeXxyfW1uJXo8UiNNaHYjP0ZwOHdBRWBRR15sIX1FKSNGMGhgREAwWWFhcWtiPk0pJXEjViNu YThsRil6dSsKLXpeRzZifE9MIWRTZGt3dSMwXllYc1JsQjYpcT5tP15vQll2LS0mQk9MckBSRkNI eHFza0ZZKXtEITE1YzY9S34tOAotejYhPjNfWXtre3sjI3ojX0NjTmE7N0BiQFlOJEw0N158UEdy bDd7eCVgTVdAJlJzRTx8ZiYzKHM9WGRJVmdWNzBgCi16QER0PkBnRStZKSZDeHJlOSVBJCl7YmFL cmUtVXlAKU1ANXVsfldpJGQyN1dEI2A5ZmBGTGs9fUt+P2A7Yz5jc1kKLXp0VllnXyRWWWlUK1V3 WWRmQHpkI29fey1XeTQxRUQ7RktEVEF4PHR+R31gVU1rS2NAKDU7YTxAYXwpeDt5PGMwNgotemZH Oyg9XmlifE8+WUFMKmJ2ZDJxdWxVQmNTSk8+OEFNTj9qc0pjc1FaeWRRRXQ5ezdFXkItSFoleT5U VjtyWDRsCi16PWJ3NzkoJkohd3tzVDhJdnp8WDZkYTZFKGBqdVh5YGUtZ2FlPXFUSmR2ZTR6Rlp3 QlhYQSY9JEZyR2hudkJoYGQKLXokVj5IODs2SkpKJUM/e1NKXiNmc1J2NkMqS0tkIX1NfEhEbjkh YlpWQGNkVXxseCN0TU8zJnstcSRNWGpBRHJ0QgoteiYrWGRJd1ohUkN3SyF+XlVqRztqJlRvbTZP VlMqQEJrQ2JXUHR4PUVgfCF+WnVzI1I7KzEtUVBrTk19MmsjI0dLCi16PUwyOHJ3QlRBKnw2Ritm cl5HamdeNW5wSG1se3BHRXxeQXtKaXAoMXN9VlRtU2xVZFNUKjdGeShUNUxEbUt2Uz4KLXola1Vh YUZUQkhRcV5+SmJxdEQoQXJjcFoydVdmVU8/YkVtfVl0S2lZK3g/ISgkTXNzeEs0anpoZT80KXZA cUJYKQoteilAd1Y1WVJeQldOZyo4ISYpPDJ7WVVCQnMyY2VJbWUlK3RXXlI5V2heIShfX3Q0K0l1 N3lUNXhHMi1QQyNgRCt0Ci16QHkob0FjfFAjfXJ0PUVwYE0rK3ope0pkQ3xNbD00O0Q1QU0tS1gk NE9GR3RzPWtKS29pM0o1SUotQCEjYXlzcEMKLXpAMW1+SDtDJCZgYj89Z3JsUEl8MG8tRVRtfDlS cWM+M2p9d059Yng9WFk9SUtRazU3VGtlPV4hdT1xX1RyJG43eAoteiFWaHZrPUopKVhqJSRzZDAz VXZXSGUwen4panQ9V3t8TkRvcColVV8xPDV0fmc3YFJ9WSZGV3tgNXpPZk9NRCNRCi16bHAzQTVB LXFPfEkkMzxANWFnN28oWTFzaFItPjctdHd6OT84ZzFzaWlCeilIRDRwa3puYDg1RkpMcjcwPWM3 KzcKLXpaKEhFeTw5ZSsyQXNmJXt2KnRJKF5NUXxmS0pjZWo2bm1mdCF9SHMoe2YrVmJjcm8tJF5w UX5taW9OYEU+R0BOTAotem0pbnlBeXQxRWVBWUx3RUpwVX5welQrVVQjRDA0Q0skVFkqJitre2Eo VHJ7MiVZSGlaYHdtfEhRO3UhbmBHMWJsCi16PT5ARylkajcobmAjODtkUmlha1MyUmExdWxUNG9m N3ZnbE9TeyNuJWxzWDtaOUt1SkZVKVFgTj5MRXI/KChfa2MKLXpadD5sQSQjcl4lQFdjQWFsc3wx V28pM0tKKUo0eV5yV35wMm0jdj9xVGhBWiNxU2RJJF5nRT55X3khJjIxa3h5egotej1QeDVwbXJ+ I1dDb31AKkdVRFhJZUtCMiQoTHQldjtWLXFzJDI9ZVNoZXVVVCpeVlh1YiRMazFDWm16OXpuVlYq Ci16ZUBMN3ZNa1FOfihzX1FMKG9McWwmP29SNkY4S1ApU05YVWV0OXs3RV5XVDRYaX1pZm5ye1Zk KWY0e0o7MllONigKLXp6dis9SiNgN196RzAjVytuJWNDQHgjdTZUV3M3TmRAWENJQU0zSEtqRnJJ KDZBSyMyVTxAdzAjWm8mYFpDSH1SWQotenZQRi1rXm5CbyN6MTdhc0hDeFlySVl5QCF2YCo+eXI4 aW5tVHFtVmdyOTBhTkB7PiVTZS0mfU1SNG9wME59YUFFCi16UEEqfm1xfWhqJElnI3t9V31RPFFL bCVNZmp+WUojelYhVXhTTXUpTT9FTkkyPVFuP0JITnU9I1lTZXNzYCM+NkgKLXpeODYkQVNkRzli SDlCSWokfXg7YV4qKCZ1TUBXdDgyfHZoS0BfWVYhcWFISUYwYmdxTC1zKWYpclN0c2UoVHx4dgot emplOUBvYE9SeG9LQ2FnQD5fYXg1VTtWfmI8TjNnYz1PM28kOEhmRll1ZEhnJTQqTmNlI0stPVFU PCtUJF55WElVCi16YFIza1ElfVk/Zlo+ZkgpWEQ7WFlIeGFLKGlFPW9hN3lUNXhCUio4XjYyfGxR YHwkQXtFQll6JEExM0BEe25ZUkkKLXp0KUZ8d2NzfXNhUGw1bUpufDQxLSh5PG9kPFEpZ1BaamFI NmcySSVaS2tqK1VpU05EUEMqYlV8R3E/TThIVzg7dwoteikjM29CKWFncCU8ZFFUOz99JlBjKFVZ Nyo5e3F3M0FBMmJEZXB9P1VUanZ6VV5MTClLJkg0JVVRMFJZPzBRfGN1Ci16Z1k1fVA9bE9wKWQ3 SjRNKm49Vzlgc0x9bC1NNz1iV1NofGxvS21CfDVoc14wOGE0WHg/T3I0YGU/bDhoN180IyUKLXpx dFNWe1Q4KTQmJDVNeVkhOEEoZWBUZHNLX1FHQ0Rjc315a09NTDdOdUdlYnpMMyhuRzRzb0FlTCYx Z2o/SHN2dgotenlZWVBCIX1HZ3AmJWRXWnQrZ0dEZEgjXio/WiklJS1kcEFRc05kN0tza09SWGRq OVJpPnJ4d2VWZk4mRHlvMTVwCi16YEY3UFZWTFpTMEdadyF8PkBOZlVJPkhhQGBDVDZTdmwtaktN P1ZHcl4yTz5xWGRZKXQkQ35pYG10dTVjTDdTQUcKLXpmNjMjUDZNTjAhQypYV3tOdzdVM25kYlNN aVBPYEZzcz5LQDJ7YC1SV2I+cmNRa0VEVWspRDZ0ZV9NUil8SHJpJQotel8hfGc2aCkoYEY8a1gl IWpPUFBpPmh6Q35Sc0ZNRkglUkNDZ0x+flR7bFhGZDc2JG58eGhJJUxuZGJTK2lQTlJGCi16PHA4 SkRzTFRJYCpRbXtyRSVCdkJPOSglI01yVH1hSEx+P3JZZGRKT3IkKCMhVSR6PmheWlh5aFo5ZUR8 QE88I0MKLXpLUUh7Z29tWHolWCo/aEooKH1oJHRrISlHaFVhZnN5Mz1+VF87Kz40fEZ9IWs4Z1ZX P0tobSglXndVJmN2VmVIRwotemd6QH5mSzc0cXg/NTlXbk95IW1CK3s4YzZBTzdIOSUtOUEjeXJp NEhtTTxRcFcoQz1Meyk7aDZ3eEI0Yj1kWE9vCi16YT8weTdJTnoqUC0/eWphPE9aZFo/UlU2dTVU e0ckZG0qbVA7T3UoMyY2Nz98U3o+ZlZkajdlO3YtcEAzS199cWYKLXpMaWwwKjxla3BEak9QUGk+ ZU9xc3MoLWVBbEZzeDBjSVluQ0ZFRDR0YnM3MmVVSzMyQ09yQyN5bXQ5c1B1fEZUMgotem1rfXFJ cTtuN05oPGI/OGxobypXQUhFfnpQcnpAcEhvUWhwJShmWjxVdXlLN3FiNWslWUx3M05vOUVjfWlz Umw9Ci16ZX17e0ZYYlpJMD1VbWsrPTI1akd6MH51eTgyIW9ad1Q2TlYmLTJTfmVCWEZKQFp0SHV6 cEFza1ojZnZBVSRPWG8KLXo8TjNJRW13an4zcTNTKi1tITNiRGN3SzVFNCk5YGJmXzhiN2MpNWh9 e09BJmtrRl4pK0M5eThTP25uS2VVJVVNOAoteldeNG1yX1MzYWR5VXZ8LXRtJUcod1ZnbDNEQXxJ eERMc0dOM2RAUTBGc1c2bVZ7KkhtZjdsJj1IIyZoKz5RcWdmCi16VCQxTUs5Wj9UNGRYaiMhKm9U amBQcFEqJEk7VSl9JWAtRzdrSDZFdHs9NHlmOzdndDZFbUhOKik9JCFUZSklXzYKLXpCZGtxSmpq cDtlbWAwZ0F8N3psTkRRNkNGTnt6TTxDem1pOUo/RiM2X1hTZDshb0AxNUZkQSoxQFBXfD9fKT8/ Mgotejl8cUdYbyMhdlZfeWZ+a18+S3FqZTBhfW1BRXxzP3Vocn5CSGw4MU8+cj48VHo9ITdfdUlH YzFXN0tgdSFTTVYmCi16UktJRlVpMzh1IXBedV98ZCNIWHEmJnM5ZXBTJHhAKTkmQyFLTHppKCRF dFAtPE40ait3KW9ncmdNSkc5PyFBTkUKLXprTlEzVHlBd1kqbykzS1ZRe2FDJCt3T0BASUBXfmV8 MW19KTZ0cWp9YDkmeERJS3twbGEyOCExWjB+b2J3VmhHSwotej1+QV5nOUk8WilvVEdAN09WUypA QmtDYldQdHg7V191LXA4Nm5aQCRfXjwxbiF1WkxVPmQlZHowQUsxZldfN1Q9Ci16LXwwTlJYTn1i ZWRyOyhmPmJXK1VNd3ZXKzAmJSszd2pBSjtWYCYwJGF0V2krQT4mKSglZHZGR3oyVyFnY2ZHLUMK LXpXYjNjaWNGK2c5WlYjcVdJP3crbkB3d0MlVVNPfTdwNjckX3BUeChXJExJSjxIbER3MEBqbVBN ViY0dyVja01XTQotel5aZX5nXzhISHxuM2pFWGB6eUpoPVhid3BwSntqUyU2ezdZKSRzSERXcXkz SVp3S3daalBRZjM4VGRXX3RgN1MlCi16ZGo0SkcpeElNaFhHekRKQGNiYGNwY0JkU0MjXzhXK1k0 UGdUMjVSaXJCKz1wUWhTazdhX1NEOD9iXjtuOyZrYVYKLXo5Tj81WE8oYWUoTnB0aiRzRH5JbXdl V2wmS0lUTnlQaFF0S2g0Szh8MU5LfGIqTCQoMD1rSmNJYHNaU3Z6aUZWPQotejJ5PDRjKFdkI3FH fEpAcGA5SFFBZm0zUmZ6YVlGdVB4fG4yQTBhaCpsSko5IUNJN3dIQyQmfjE7N2c0QGBFNCtiCi16 KHN9LUttKWlFaXkmdlpKQFBfOSRzKGY3NGI8SlpvcDh4WEFVbU1Re0tJWnd8XipuIys/RiNaPiU9 MGgyPCFrSHQKLXpWJjR3eCpMfDdWdEQ0SnN7QHVqTz9hQVNZZUxMWCZEZS1hJUd0WW41aG1XLXZe aSR5OXF3fnR2T1o9WEgtYllePgoteiZqJnZHRGV5YWR1SWl1Q2V9KDV+biYrP2gqbTdiJDQxTk82 PmI9NENlKWsrbmIpP18jO3lXdE5Qa1FvYSNPYyFlCi16OU4+aFhmYiY3KDxpZEhURD18N0tAdSUk WjtiVSE4Jit+elErYGpPOHpuNzJ4IyZ+e1E8NGN7IVJqWk1sd2RkRFMKLXpCOVZweV9BU29HfE5C KlEmaWxyV0Mkc2pnX0N6M2BpVk1gKmNlZGx7eVIoVWVlIXEkfWlmVFVEakB5YVhyREdnKwotek88 ZTdYMFBuNUQlTyVXczh2UFRDWkA7SGRkdn0wZVRvWm14ZjZnXmxDKlZ0K0QoMyV0SXlISU90Mk9z ZCpNOEdACi16NTU0QlZfZEllZT9PMzRseHJFTilOTDRVQEkoWT0wUUJ+RUljYkBRe1FSblFjQHsl JUxPM0xoPykyM2ZLZWJQMGwKLXpAWnxlVl5vRz4/OTsmfWY/e2xGM2EkSGByUF88WE95M0B5PDc9 Xl4mPEhOViM5Vlk3aVRmekB9b3NhJEtmRWt5LQotem13SERfeEtfRUBMcHxgZzFKPHVvakxXWnhr TWx8QypJc1MxfDFQd0ZJOT5WLWh5QmhzYVpGWn5zdk5fMz1qYzhiCi16QUshX35ZZ30+UFYwJTtq YjF8cE5yOysoQlRYcH05RzJjfTQ/YGg9cyZnOyVVVjd3RTFBTE4qPHlpbnpudCNAWWcKLXpvNHRw UXZGISs2SWhJfX1VTV53MGJEYTwwRzVkTkYkSV8mV2c2WSlZKWtiO1FLaF8+ZGBDRzhpPkhjNDxg al5xPwotekk5aW01ZEkjUyNqaz0zb0FDdCt5Pn5GI1BiXk9JVHRFMF5+QGZ0WEFXQTFmKWxYelhL SFYxZzZqd158bU9CZnc1Ci16VDVze3VQdm0mKHVfP1RjdEBtM1VmaUZHcio+OFZYOXNQNk1GUjRD YnNJNTR4emE7OW88dlcjY3R+flMxRktpb3cKLXpRKShGYm11aURCcDgyUWBBRCUyVm9KO3MmdVdT MnpJOypPdnkqUGpgSEdIXnR1cjxxYz4ma09fSWpmOURkY1RlSQoteiUhKGZjVFVVO3JMek9TNj5Y dHstaGgrQno0LWx0SXIrNlh1X2BxK2I1aHNeMDhieXdAXz9YKkJqa2ZCWHZifWVrCi16O25oYUA8 eCVVY00hPVVFeXwqISNNKE5mVkkmWk1+VX5ZPncyREh+Sm81SFV2dVh3Ni0pJUJEZzJrXjFSJntN QjUKLXp0Wj54N3Q7bHdicTJ4I2NFQU4mVV9CVmF+S0dNNlgpYnZyQG8xbC1QZSFjVTh7ZCpJPTQl VXE/VGdtIXBFcGZXcwotejl1KGsma0FTbjVJSnQhQnF4Qy1neFZVY3hlIWIycU9kcVhwRTtUKl5l RHFPK1UhZHlXayNnV0BRTWhyYTtGPk9kCi16PFdZNmwraz49P18tTHV3O2xPPnEpTXkqPXVga3hw SVVLMTk/dVMwJi07KkN2KXM2M20rKkJ2eXtZK0MwTGc0emMKLXpeVCtnT2M8O3ZHWFJPWXN4NzJ4 WEU3ZVp2PmRjVWdFQWVPZ0BVaE1WRk08djsyfHZqNzt2cHVaIXU2bEBOIzlpcwotel5mdzNhck91 TnxpfS1aIW5ve05jQl80IyVxeGpEOU9tUismbXpmJjghUXB5eGQtJXVsUGRARXkkRmYqMk0wQDxD Ci16dWxnPjkkNXB6cWc/XkloeVhNPTcoPExrcHhtRjB5K2xaNChJekIhZ3FtVVlaPkJHa3d0PD9C U29tMjlHTXhhXikKLXo7TG83OXhVazAwQDlrXkdHVnJDdyYtWWpMPz98OEZYaTxkNWF4REFqLXtv S1FUfiRwMDk5VG5fVzRVfWx1PCFBKgotenhzUXF5dVM9WDk7RlYpQlBQfDtnJSlodCFAYlRTLSlN PVp9RHxzVWx2Q3lmKHRCdW0+Z21+RjEpe08pQlFsfUgxCi16UmBvQlZRI2VgX3A7T1ROREYwWUhl fTApNllmYnBRSVE/NkA9PWJNdSZGeHNibFE+O1VpVVhXZCEjanpTT1BJME4KLXpWUyZZV0BWbHBh eSUjeGtYYiQjV3Rmdj4laHNXQml6bX1QPzI3SWFFdFlkP0hlPGE3NlUhJnNwZUgjNC1lKHpKPQot ekJPI3lTLW9kYCglUVhMWGlQTlFnSWhyKTUpV3tgSEVAM3FLbEBIJUJJalF2dTxuJHxAUT99I0d1 VGxMdTx5SXE4Ci16ZjM+YXp7UThATVhfUmpNe202KU4oX1lUUCNOWE5sLXk9N058QmtRYjtjN0dn MjBySEJOOXA8WiUyS3IhZGpASTMKLXpmdWkxfVNIZEBQSXNZRX1OVlZ9MV9tOyN5aXV4Xzx0SlpT NHpvaEZreE1wWFhmOFMxPUVANjQwSW5oVktgM2lBegotek55bz4+Vi0paDUtRCEpKFotUz1VTX1V OFJTQGB3b3dPdVlTZUg4ZmM1I2FCPlJuQDtFKXNMZV41dD5STEB6MX5TCi16S0l7VEJ8ODZxQjg/ MVo7ZTFCUTBeNztRWHxCaU9PITAzIzZPUHltNHMtNDJqem59OHFKND99YmxeM0MxNGlKOVcKLXpg Uzt1OUhEPit8ZTVyR2ZqWWBOVzV9MmIhNWp5e25eWTJzbypPOyohVXlTeGg+P2dBfnNlZy0tP080 dDx8REgjagotekUreCRZUE8wKFojS3xTaFNwRm1sS0lWMU14YTB3cVF9VGdFIzlEKEd7bUVXMmdN dGdzM0YtJmRuNllmQHVkWC0xCi16ZjlaRCRmWDZYTWk9eSNVLUFudUQtfVFyUCU9e2FEM2lFSG5f bFV9ZT1mVWFiIXRtUXs9SEd1SlVZR0RWeiQ8bFgKLXp3PyFxQWoqfndncW1aN1BTODRHdil9PkJF MnRVWUpZK3kxZnRrWnl9WXN+eGBfO01ePkp0Kkhoemw8SV5TYD92RQoteihFMGJCOGokTz1jNUJW NUlyTiRYKjhyKkc/bj9ETDAyT28mTjImckgmdU9HSGBjeGd4emMzb2piUEc9QmFEQWk+Ci16QTV5 KHNkWT1SSmt+JHhNeEB4QyViKXRfYSklbnpCaSpNJShpSnA1NjtSbiVxMjlyX1ljQVluVGYqRnMl bXBWV0cKLXpiZz1iVGQyUktOJDFsJkJWOF40R0Q8cGQ2Zk0mSitkS2xHX0JVT1FwKl5JfjJNb2Nn fElodDRNRz4+Pz5xfnFrewotdkYkJm9hX1dBTH1KUkxzTXt+NDg2YSNKSHZKemp3QypRdio3c310 QDZxKXJ6LTdmZEpye3t7TWd6dl9OcQotCi1saXRlcmFsIDAKLUhjbVY/ZDAwMDAxCi0KLWRpZmYg LS1naXQgYS90ZXN0cy9lZ2lzX2V0dTkwNS9jdXN0b20ucHkgYi90ZXN0cy9lZ2lzX2V0dTkwNS9j dXN0b20ucHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uYTg0MmYyNmUK LS0tLSAvZGV2L251bGwKLSsrKyBiL3Rlc3RzL2VnaXNfZXR1OTA1L2N1c3RvbS5weQotQEAgLTAs MCArMSwxMDkgQEAKLSsjIS91c3IvYmluL3B5dGhvbjMKLStpbXBvcnQgdHJhY2ViYWNrCi0rCi0r aW1wb3J0IHN5cwotK2ltcG9ydCBnaQotKwotK2dpLnJlcXVpcmVfdmVyc2lvbignRlByaW50Jywg JzIuMCcpCi0rZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBGUHJpbnQsIEdMaWIKLSsKLSsjIEV4 aXQgd2l0aCBlcnJvciBvbiBhbnkgZXhjZXB0aW9uLCBpbmNsdWRlZCB0aG9zZSBoYXBwZW5pbmcg aW4gYXN5bmMgY2FsbGJhY2tzCi0rc3lzLmV4Y2VwdGhvb2sgPSBsYW1iZGEgKmFyZ3M6ICh0cmFj ZWJhY2sucHJpbnRfZXhjZXB0aW9uKCphcmdzKSwgc3lzLmV4aXQoMSkpCi0rCi0rY3R4ID0gR0xp Yi5tYWluX2NvbnRleHRfZGVmYXVsdCgpCi0rCi0rYyA9IEZQcmludC5Db250ZXh0KCkKLStjLmVu dW1lcmF0ZSgpCi0rZGV2aWNlcyA9IGMuZ2V0X2RldmljZXMoKQotKwotK2QgPSBkZXZpY2VzWzBd Ci0rZGVsIGRldmljZXMKLSsKLSthc3NlcnQgZC5nZXRfZHJpdmVyKCkgPT0gImVnaXNfZXR1OTA1 IgotK2Fzc2VydCBub3QgZC5oYXNfZmVhdHVyZShGUHJpbnQuRGV2aWNlRmVhdHVyZS5DQVBUVVJF KQotK2Fzc2VydCBkLmhhc19mZWF0dXJlKEZQcmludC5EZXZpY2VGZWF0dXJlLklERU5USUZZKQot K2Fzc2VydCBkLmhhc19mZWF0dXJlKEZQcmludC5EZXZpY2VGZWF0dXJlLlZFUklGWSkKLSthc3Nl cnQgZC5oYXNfZmVhdHVyZShGUHJpbnQuRGV2aWNlRmVhdHVyZS5TVE9SQUdFKQotK2Fzc2VydCBk Lmhhc19mZWF0dXJlKEZQcmludC5EZXZpY2VGZWF0dXJlLlNUT1JBR0VfTElTVCkKLSthc3NlcnQg ZC5oYXNfZmVhdHVyZShGUHJpbnQuRGV2aWNlRmVhdHVyZS5TVE9SQUdFX0RFTEVURSkKLSthc3Nl cnQgZC5oYXNfZmVhdHVyZShGUHJpbnQuRGV2aWNlRmVhdHVyZS5TVE9SQUdFX0NMRUFSKQotKwot K2Qub3Blbl9zeW5jKCkKLSsKLStkZWYgZW5yb2xsX3Byb2dyZXNzKCphcmdzKToKLSsgICAgYXNz ZXJ0IGQuZ2V0X2Zpbmdlcl9zdGF0dXMoKSA9PSBGUHJpbnQuRmluZ2VyU3RhdHVzRmxhZ3MuUFJF U0VOVAotKyAgICBwcmludCgiZW5yb2xsIHByb2dyZXNzIHN0YWdlOiAiICsgIHN0cihhcmdzWzFd KSkKLSsKLStkZWYgaWRlbnRpZnlfZG9uZShkZXYsIHJlcyk6Ci0rICAgIGdsb2JhbCBpZGVudGlm aWVkCi0rICAgIGlkZW50aWZpZWQgPSBUcnVlCi0rICAgIGlkZW50aWZ5X21hdGNoLCBpZGVudGlm eV9wcmludCA9IGRldi5pZGVudGlmeV9maW5pc2gocmVzKQotKyAgICBwcmludCgiTUFUQ0ggRk9V TkQhIiBpZiBpZGVudGlmeV9tYXRjaCBlbHNlICJOTyBNQVRDSCBGT1VORCIpCi0rICAgIGFzc2Vy dCBpZGVudGlmeV9tYXRjaC5lcXVhbChpZGVudGlmeV9wcmludCkKLSsKLSsjIExpc3QKLStwcmlu dCgiLS0tIExJU1RJTkcgLS0tIikKLStzdG9yZWQgPSBkLmxpc3RfcHJpbnRzX3N5bmMoKQotK3By aW50czEgPSBsZW4oc3RvcmVkKQotK3ByaW50KGYiLS0tIExJU1QgRE9ORTogRm91bmQge3ByaW50 czF9IHByaW50cyBiZWZvcmUgZW5yb2xsLS0tIikKLSsKLSsjIEVucm9sbAotK3ByaW50KCItLS0g RU5ST0xMSU5HIC0tLSIpCi0rdGVtcGxhdGUgPSBGUHJpbnQuUHJpbnQubmV3KGQpCi0rCi0rYXNz ZXJ0IGQuZ2V0X2Zpbmdlcl9zdGF0dXMoKSA9PSBGUHJpbnQuRmluZ2VyU3RhdHVzRmxhZ3MuTk9O RQotK3AgPSBkLmVucm9sbF9zeW5jKHRlbXBsYXRlLCBOb25lLCBlbnJvbGxfcHJvZ3Jlc3MsIE5v bmUpCi0rYXNzZXJ0IGQuZ2V0X2Zpbmdlcl9zdGF0dXMoKSA9PSBGUHJpbnQuRmluZ2VyU3RhdHVz RmxhZ3MuTk9ORQotK3ByaW50KCItLS0gRU5ST0xMIERPTkUgLS0tIikKLStkZWwgdGVtcGxhdGUK LSsKLSsjIExpc3QKLStwcmludCgiLS0tIExJU1RJTkcgLS0tIikKLStzdG9yZWQgPSBkLmxpc3Rf cHJpbnRzX3N5bmMoKQotK3ByaW50czIgPSBsZW4oc3RvcmVkKQotK3ByaW50KGYiLS0tIExJU1Qg RE9ORTogRm91bmQge3ByaW50czJ9IHByaW50cyBhZnRlciBlbnJvbGwtLS0iKQotK2Fzc2VydCAo cHJpbnRzMiAtIHByaW50czEpID09IDEKLSsKLSsjIFZlcmlmeQotK3ByaW50KCItLS0gVkVSSUZZ SU5HIC0tLSIpCi0rYXNzZXJ0IGQuZ2V0X2Zpbmdlcl9zdGF0dXMoKSA9PSBGUHJpbnQuRmluZ2Vy U3RhdHVzRmxhZ3MuTk9ORQotK3ZlcmlmeV9yZXMsIHZlcmlmeV9wcmludCA9IGQudmVyaWZ5X3N5 bmMocCkKLSthc3NlcnQgZC5nZXRfZmluZ2VyX3N0YXR1cygpID09IEZQcmludC5GaW5nZXJTdGF0 dXNGbGFncy5OT05FCi0rcHJpbnQoZiItLS0gVkVSSUZZIERPTkU6IFJlc3VsdCB7dmVyaWZ5X3Jl c30gLS0tIikKLSsKLSsjIElkZW50aWZ5Ci0rcHJpbnQoIi0tLSBBU1lOQyBJREVOVElGWUlORyAt LS0iKQotK2lkZW50aWZpZWQgPSBGYWxzZQotK2Rlc2VyaWFsaXplZF9wcmludHMgPSBbXQotK2Zv ciBwIGluIHN0b3JlZDoKLSsgICAgZGVzZXJpYWxpemVkX3ByaW50cy5hcHBlbmQoRlByaW50LlBy aW50LmRlc2VyaWFsaXplKHAuc2VyaWFsaXplKCkpKQotKyAgICBhc3NlcnQgZGVzZXJpYWxpemVk X3ByaW50c1stMV0uZXF1YWwocCkKLSsKLStkLmlkZW50aWZ5KGRlc2VyaWFsaXplZF9wcmludHMs IGNhbGxiYWNrPWlkZW50aWZ5X2RvbmUpCi0rZGVsIGRlc2VyaWFsaXplZF9wcmludHMKLSsKLSt3 aGlsZSBub3QgaWRlbnRpZmllZDoKLSsgICAgY3R4Lml0ZXJhdGlvbihUcnVlKQotK3ByaW50KCIt LS0gSURFTlRJRlkgRE9ORSAtLS0iKQotKwotKyMgRGVsZXRlCi0rcHJpbnQoIi0tLSBERUxFVElO RyAtLS0iKQotK3BfdG9fZGVsZXRlID0gbmV4dCgoc3AgZm9yIHNwIGluIHN0b3JlZCBpZiBzcC5l cXVhbChwKSksIE5vbmUpCi0raWYgcF90b19kZWxldGU6Ci0rICAgIGQuZGVsZXRlX3ByaW50X3N5 bmMocF90b19kZWxldGUpCi0rICAgIHByaW50KCItLS0gREVMRVRFIERPTkUgLS0tIikKLStkZWwg cF90b19kZWxldGUKLStkZWwgcAotKwotKyMgTGlzdAotK3ByaW50KCItLS0gTElTVElORyAtLS0i KQotK3N0b3JlZCA9IGQubGlzdF9wcmludHNfc3luYygpCi0rcHJpbnRzMyA9IGxlbihzdG9yZWQp Ci0rcHJpbnQoZiItLS0gTElTVCBET05FOiBGb3VuZCB7cHJpbnRzM30gcHJpbnRzIGFmdGVyIGRl bGV0aW5nLS0tIikKLSthc3NlcnQgKHByaW50czIgLSBwcmludHMzKSA9PSAxCi0rZGVsIHN0b3Jl ZAotKwotK2QuY2xvc2Vfc3luYygpCi0rCi0rZGVsIGQKLStkZWwgYwotZGlmZiAtLWdpdCBhL3Rl c3RzL2VnaXNfZXR1OTA1L2RldmljZSBiL3Rlc3RzL2VnaXNfZXR1OTA1L2RldmljZQotbmV3IGZp bGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwLi40Yjc1MGE3OQotLS0tIC9kZXYvbnVsbAot KysrIGIvdGVzdHMvZWdpc19ldHU5MDUvZGV2aWNlCi1AQCAtMCwwICsxLDM0OCBAQAotK1A6IC9k ZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAwMDA6MDU6MDAuNC91c2IzLzMtMwotK046 IGJ1cy91c2IvMDAzLzAwMj0xMjAxMDAwMkZGMDAwMDQwN0ExQ0FFMDU0MjUzMDEwMjAzMDEwOTAy MjcwMDAxMDEwMEEwMzIwOTA0MDAwMDAzRkZGRkZGMDAwNzA1ODEwMjQwMDAwMDA3MDUwMjAyNDAw MDAwMDcwNTgzMDM0MDAwMDEKLStFOiBCVVNOVU09MDAzCi0rRTogREVWTkFNRT0vZGV2L2J1cy91 c2IvMDAzLzAwMgotK0U6IERFVk5VTT0wMDIKLStFOiBERVZUWVBFPXVzYl9kZXZpY2UKLStFOiBE UklWRVI9dXNiCi0rRTogSURfQlVTPXVzYgotK0U6IElEX01PREVMPUVUVTkwNUF4eC1FCi0rRTog SURfTU9ERUxfRU5DPUVUVTkwNUF4eC1FCi0rRTogSURfTU9ERUxfSUQ9MDVhZQotK0U6IElEX1BB VEg9cGNpLTAwMDA6MDU6MDAuNC11c2ItMDozCi0rRTogSURfUEFUSF9UQUc9cGNpLTAwMDBfMDVf MDBfNC11c2ItMF8zCi0rRTogSURfUEFUSF9XSVRIX1VTQl9SRVZJU0lPTj1wY2ktMDAwMDowNTow MC40LXVzYnYyLTA6MwotK0U6IElEX1JFVklTSU9OPTUzNDIKLStFOiBJRF9TRVJJQUw9RUdJU19F VFU5MDVBeHgtRV8wQTg2MDZQTkEzNTcKLStFOiBJRF9TRVJJQUxfU0hPUlQ9MEE4NjA2UE5BMzU3 Ci0rRTogSURfVVNCX0lOVEVSRkFDRVM9OmZmZmZmZjoKLStFOiBJRF9VU0JfTU9ERUw9RVRVOTA1 QXh4LUUKLStFOiBJRF9VU0JfTU9ERUxfRU5DPUVUVTkwNUF4eC1FCi0rRTogSURfVVNCX01PREVM X0lEPTA1YWUKLStFOiBJRF9VU0JfUkVWSVNJT049NTM0MgotK0U6IElEX1VTQl9TRVJJQUw9RUdJ U19FVFU5MDVBeHgtRV8wQTg2MDZQTkEzNTcKLStFOiBJRF9VU0JfU0VSSUFMX1NIT1JUPTBBODYw NlBOQTM1NwotK0U6IElEX1VTQl9WRU5ET1I9RUdJUwotK0U6IElEX1VTQl9WRU5ET1JfRU5DPUVH SVMKLStFOiBJRF9VU0JfVkVORE9SX0lEPTFjN2EKLStFOiBJRF9WRU5ET1I9RUdJUwotK0U6IElE X1ZFTkRPUl9FTkM9RUdJUwotK0U6IElEX1ZFTkRPUl9GUk9NX0RBVEFCQVNFPUxpZ2hUdW5pbmcg VGVjaG5vbG9neSBJbmMuCi0rRTogSURfVkVORE9SX0lEPTFjN2EKLStFOiBNQUpPUj0xODkKLStF OiBNSU5PUj0yNTcKLStFOiBQUk9EVUNUPTFjN2EvNWFlLzUzNDIKLStFOiBTVUJTWVNURU09dXNi Ci0rRTogVFlQRT0yNTUvMC8wCi0rQTogYXV0aG9yaXplZD0xXG4KLStBOiBhdm9pZF9yZXNldF9x dWlyaz0wXG4KLStBOiBiQ29uZmlndXJhdGlvblZhbHVlPTFcbgotK0E6IGJEZXZpY2VDbGFzcz1m ZlxuCi0rQTogYkRldmljZVByb3RvY29sPTAwXG4KLStBOiBiRGV2aWNlU3ViQ2xhc3M9MDBcbgot K0E6IGJNYXhQYWNrZXRTaXplMD02NFxuCi0rQTogYk1heFBvd2VyPTEwMG1BXG4KLStBOiBiTnVt Q29uZmlndXJhdGlvbnM9MVxuCi0rQTogYk51bUludGVyZmFjZXM9IDFcbgotK0E6IGJjZERldmlj ZT01MzQyXG4KLStBOiBibUF0dHJpYnV0ZXM9YTBcbgotK0E6IGJ1c251bT0zXG4KLStBOiBjb25m aWd1cmF0aW9uPQotK0g6IGRlc2NyaXB0b3JzPTEyMDEwMDAyRkYwMDAwNDA3QTFDQUUwNTQyNTMw MTAyMDMwMTA5MDIyNzAwMDEwMTAwQTAzMjA5MDQwMDAwMDNGRkZGRkYwMDA3MDU4MTAyNDAwMDAw MDcwNTAyMDI0MDAwMDAwNzA1ODMwMzQwMDAwMQotK0E6IGRldj0xODk6MjU3XG4KLStBOiBkZXZu dW09MlxuCi0rQTogZGV2cGF0aD0zXG4KLStMOiBkcml2ZXI9Li4vLi4vLi4vLi4vLi4vLi4vYnVz L3VzYi9kcml2ZXJzL3VzYgotK0w6IGZpcm13YXJlX25vZGU9Li4vLi4vLi4vLi4vLi4vTE5YU1lT VE06MDAvTE5YU1lCVVM6MDAvUE5QMEEwODowMC9kZXZpY2U6MGMvZGV2aWNlOjFiL2RldmljZTox Yy9kZXZpY2U6MWYKLStBOiBpZFByb2R1Y3Q9MDVhZVxuCi0rQTogaWRWZW5kb3I9MWM3YVxuCi0r QTogbHRtX2NhcGFibGU9bm9cbgotK0E6IG1hbnVmYWN0dXJlcj1FR0lTXG4KLStBOiBtYXhjaGls ZD0wXG4KLStBOiBwaHlzaWNhbF9sb2NhdGlvbi9kb2NrPW5vXG4KLStBOiBwaHlzaWNhbF9sb2Nh dGlvbi9ob3Jpem9udGFsX3Bvc2l0aW9uPWxlZnRcbgotK0E6IHBoeXNpY2FsX2xvY2F0aW9uL2xp ZD1ub1xuCi0rQTogcGh5c2ljYWxfbG9jYXRpb24vcGFuZWw9dG9wXG4KLStBOiBwaHlzaWNhbF9s b2NhdGlvbi92ZXJ0aWNhbF9wb3NpdGlvbj11cHBlclxuCi0rTDogcG9ydD0uLi8zLTA6MS4wL3Vz YjMtcG9ydDMKLStBOiBwb3dlci9hY3RpdmVfZHVyYXRpb249OTMxMzY3NThcbgotK0E6IHBvd2Vy L2FzeW5jPWVuYWJsZWRcbgotK0E6IHBvd2VyL2F1dG9zdXNwZW5kPTJcbgotK0E6IHBvd2VyL2F1 dG9zdXNwZW5kX2RlbGF5X21zPTIwMDBcbgotK0E6IHBvd2VyL2Nvbm5lY3RlZF9kdXJhdGlvbj05 MzEzOTYyMVxuCi0rQTogcG93ZXIvY29udHJvbD1vblxuCi0rQTogcG93ZXIvbGV2ZWw9b25cbgot K0E6IHBvd2VyL3BlcnNpc3Q9MVxuCi0rQTogcG93ZXIvcnVudGltZV9hY3RpdmVfa2lkcz0wXG4K LStBOiBwb3dlci9ydW50aW1lX2FjdGl2ZV90aW1lPTkzMTM4ODI2XG4KLStBOiBwb3dlci9ydW50 aW1lX2VuYWJsZWQ9Zm9yYmlkZGVuXG4KLStBOiBwb3dlci9ydW50aW1lX3N0YXR1cz1hY3RpdmVc bgotK0E6IHBvd2VyL3J1bnRpbWVfc3VzcGVuZGVkX3RpbWU9MFxuCi0rQTogcG93ZXIvcnVudGlt ZV91c2FnZT0xXG4KLStBOiBwb3dlci93YWtldXA9ZGlzYWJsZWRcbgotK0E6IHBvd2VyL3dha2V1 cF9hYm9ydF9jb3VudD1cbgotK0E6IHBvd2VyL3dha2V1cF9hY3RpdmU9XG4KLStBOiBwb3dlci93 YWtldXBfYWN0aXZlX2NvdW50PVxuCi0rQTogcG93ZXIvd2FrZXVwX2NvdW50PVxuCi0rQTogcG93 ZXIvd2FrZXVwX2V4cGlyZV9jb3VudD1cbgotK0E6IHBvd2VyL3dha2V1cF9sYXN0X3RpbWVfbXM9 XG4KLStBOiBwb3dlci93YWtldXBfbWF4X3RpbWVfbXM9XG4KLStBOiBwb3dlci93YWtldXBfdG90 YWxfdGltZV9tcz1cbgotK0E6IHByb2R1Y3Q9RVRVOTA1QXh4LUVcbgotK0E6IHF1aXJrcz0weDBc bgotK0E6IHJlbW92YWJsZT1maXhlZFxuCi0rQTogcnhfbGFuZXM9MVxuCi0rQTogc2VyaWFsPTBB ODYwNlBOQTM1N1xuCi0rQTogc3BlZWQ9MTJcbgotK0E6IHR4X2xhbmVzPTFcbgotK0E6IHVyYm51 bT01ODU1XG4KLStBOiB2ZXJzaW9uPSAyLjAwXG4KLSsKLStQOiAvZGV2aWNlcy9wY2kwMDAwOjAw LzAwMDA6MDA6MDguMS8wMDAwOjA1OjAwLjQvdXNiMwotK046IGJ1cy91c2IvMDAzLzAwMT0xMjAx MDAwMjA5MDAwMTQwNkIxRDAyMDAxNDA2MDMwMjAxMDEwOTAyMTkwMDAxMDEwMEUwMDAwOTA0MDAw MDAxMDkwMDAwMDAwNzA1ODEwMzA0MDAwQwotK0U6IEJVU05VTT0wMDMKLStFOiBDVVJSRU5UX1RB R1M9OnNlYXQ6Ci0rRTogREVWTkFNRT0vZGV2L2J1cy91c2IvMDAzLzAwMQotK0U6IERFVk5VTT0w MDEKLStFOiBERVZUWVBFPXVzYl9kZXZpY2UKLStFOiBEUklWRVI9dXNiCi0rRTogSURfQVVUT1NV U1BFTkQ9MQotK0U6IElEX0JVUz11c2IKLStFOiBJRF9GT1JfU0VBVD11c2ItcGNpLTAwMDBfMDVf MDBfNAotK0U6IElEX01PREVMPXhIQ0lfSG9zdF9Db250cm9sbGVyCi0rRTogSURfTU9ERUxfRU5D PXhIQ0lceDIwSG9zdFx4MjBDb250cm9sbGVyCi0rRTogSURfTU9ERUxfRlJPTV9EQVRBQkFTRT0y LjAgcm9vdCBodWIKLStFOiBJRF9NT0RFTF9JRD0wMDAyCi0rRTogSURfUEFUSD1wY2ktMDAwMDow NTowMC40Ci0rRTogSURfUEFUSF9UQUc9cGNpLTAwMDBfMDVfMDBfNAotK0U6IElEX1JFVklTSU9O PTA2MTQKLStFOiBJRF9TRVJJQUw9TGludXhfNi4xNC4wLTM3LWdlbmVyaWNfeGhjaS1oY2RfeEhD SV9Ib3N0X0NvbnRyb2xsZXJfMDAwMDowNTowMC40Ci0rRTogSURfU0VSSUFMX1NIT1JUPTAwMDA6 MDU6MDAuNAotK0U6IElEX1VTQl9JTlRFUkZBQ0VTPTowOTAwMDA6Ci0rRTogSURfVVNCX01PREVM PXhIQ0lfSG9zdF9Db250cm9sbGVyCi0rRTogSURfVVNCX01PREVMX0VOQz14SENJXHgyMEhvc3Rc eDIwQ29udHJvbGxlcgotK0U6IElEX1VTQl9NT0RFTF9JRD0wMDAyCi0rRTogSURfVVNCX1JFVklT SU9OPTA2MTQKLStFOiBJRF9VU0JfU0VSSUFMPUxpbnV4XzYuMTQuMC0zNy1nZW5lcmljX3hoY2kt aGNkX3hIQ0lfSG9zdF9Db250cm9sbGVyXzAwMDA6MDU6MDAuNAotK0U6IElEX1VTQl9TRVJJQUxf U0hPUlQ9MDAwMDowNTowMC40Ci0rRTogSURfVVNCX1ZFTkRPUj1MaW51eF82LjE0LjAtMzctZ2Vu ZXJpY194aGNpLWhjZAotK0U6IElEX1VTQl9WRU5ET1JfRU5DPUxpbnV4XHgyMDYuMTQuMC0zNy1n ZW5lcmljXHgyMHhoY2ktaGNkCi0rRTogSURfVVNCX1ZFTkRPUl9JRD0xZDZiCi0rRTogSURfVkVO RE9SPUxpbnV4XzYuMTQuMC0zNy1nZW5lcmljX3hoY2ktaGNkCi0rRTogSURfVkVORE9SX0VOQz1M aW51eFx4MjA2LjE0LjAtMzctZ2VuZXJpY1x4MjB4aGNpLWhjZAotK0U6IElEX1ZFTkRPUl9GUk9N X0RBVEFCQVNFPUxpbnV4IEZvdW5kYXRpb24KLStFOiBJRF9WRU5ET1JfSUQ9MWQ2YgotK0U6IE1B Sk9SPTE4OQotK0U6IE1JTk9SPTI1NgotK0U6IFBST0RVQ1Q9MWQ2Yi8yLzYxNAotK0U6IFNVQlNZ U1RFTT11c2IKLStFOiBUQUdTPTpzZWF0OgotK0U6IFRZUEU9OS8wLzEKLStBOiBhdXRob3JpemVk PTFcbgotK0E6IGF1dGhvcml6ZWRfZGVmYXVsdD0xXG4KLStBOiBhdm9pZF9yZXNldF9xdWlyaz0w XG4KLStBOiBiQ29uZmlndXJhdGlvblZhbHVlPTFcbgotK0E6IGJEZXZpY2VDbGFzcz0wOVxuCi0r QTogYkRldmljZVByb3RvY29sPTAxXG4KLStBOiBiRGV2aWNlU3ViQ2xhc3M9MDBcbgotK0E6IGJN YXhQYWNrZXRTaXplMD02NFxuCi0rQTogYk1heFBvd2VyPTBtQVxuCi0rQTogYk51bUNvbmZpZ3Vy YXRpb25zPTFcbgotK0E6IGJOdW1JbnRlcmZhY2VzPSAxXG4KLStBOiBiY2REZXZpY2U9MDYxNFxu Ci0rQTogYm1BdHRyaWJ1dGVzPWUwXG4KLStBOiBidXNudW09M1xuCi0rQTogY29uZmlndXJhdGlv bj0KLStIOiBkZXNjcmlwdG9ycz0xMjAxMDAwMjA5MDAwMTQwNkIxRDAyMDAxNDA2MDMwMjAxMDEw OTAyMTkwMDAxMDEwMEUwMDAwOTA0MDAwMDAxMDkwMDAwMDAwNzA1ODEwMzA0MDAwQwotK0E6IGRl dj0xODk6MjU2XG4KLStBOiBkZXZudW09MVxuCi0rQTogZGV2cGF0aD0wXG4KLStMOiBkcml2ZXI9 Li4vLi4vLi4vLi4vLi4vYnVzL3VzYi9kcml2ZXJzL3VzYgotK0w6IGZpcm13YXJlX25vZGU9Li4v Li4vLi4vLi4vTE5YU1lTVE06MDAvTE5YU1lCVVM6MDAvUE5QMEEwODowMC9kZXZpY2U6MGMvZGV2 aWNlOjFiL2RldmljZToxYwotK0E6IGlkUHJvZHVjdD0wMDAyXG4KLStBOiBpZFZlbmRvcj0xZDZi XG4KLStBOiBpbnRlcmZhY2VfYXV0aG9yaXplZF9kZWZhdWx0PTFcbgotK0E6IGx0bV9jYXBhYmxl PW5vXG4KLStBOiBtYW51ZmFjdHVyZXI9TGludXggNi4xNC4wLTM3LWdlbmVyaWMgeGhjaS1oY2Rc bgotK0E6IG1heGNoaWxkPTRcbgotK0E6IHBvd2VyL2FjdGl2ZV9kdXJhdGlvbj05MzEzNzk5M1xu Ci0rQTogcG93ZXIvYXN5bmM9ZW5hYmxlZFxuCi0rQTogcG93ZXIvYXV0b3N1c3BlbmQ9MFxuCi0r QTogcG93ZXIvYXV0b3N1c3BlbmRfZGVsYXlfbXM9MFxuCi0rQTogcG93ZXIvY29ubmVjdGVkX2R1 cmF0aW9uPTkzMTM5NzU4XG4KLStBOiBwb3dlci9jb250cm9sPWF1dG9cbgotK0E6IHBvd2VyL2xl dmVsPWF1dG9cbgotK0E6IHBvd2VyL3J1bnRpbWVfYWN0aXZlX2tpZHM9MVxuCi0rQTogcG93ZXIv cnVudGltZV9hY3RpdmVfdGltZT05MzEzOTIwNlxuCi0rQTogcG93ZXIvcnVudGltZV9lbmFibGVk PWVuYWJsZWRcbgotK0E6IHBvd2VyL3J1bnRpbWVfc3RhdHVzPWFjdGl2ZVxuCi0rQTogcG93ZXIv cnVudGltZV9zdXNwZW5kZWRfdGltZT0wXG4KLStBOiBwb3dlci9ydW50aW1lX3VzYWdlPTBcbgot K0E6IHBvd2VyL3dha2V1cD1kaXNhYmxlZFxuCi0rQTogcG93ZXIvd2FrZXVwX2Fib3J0X2NvdW50 PVxuCi0rQTogcG93ZXIvd2FrZXVwX2FjdGl2ZT1cbgotK0E6IHBvd2VyL3dha2V1cF9hY3RpdmVf Y291bnQ9XG4KLStBOiBwb3dlci93YWtldXBfY291bnQ9XG4KLStBOiBwb3dlci93YWtldXBfZXhw aXJlX2NvdW50PVxuCi0rQTogcG93ZXIvd2FrZXVwX2xhc3RfdGltZV9tcz1cbgotK0E6IHBvd2Vy L3dha2V1cF9tYXhfdGltZV9tcz1cbgotK0E6IHBvd2VyL3dha2V1cF90b3RhbF90aW1lX21zPVxu Ci0rQTogcHJvZHVjdD14SENJIEhvc3QgQ29udHJvbGxlclxuCi0rQTogcXVpcmtzPTB4MFxuCi0r QTogcmVtb3ZhYmxlPXVua25vd25cbgotK0E6IHJ4X2xhbmVzPTFcbgotK0E6IHNlcmlhbD0wMDAw OjA1OjAwLjRcbgotK0E6IHNwZWVkPTQ4MFxuCi0rQTogdHhfbGFuZXM9MVxuCi0rQTogdXJibnVt PTk4OVxuCi0rQTogdmVyc2lvbj0gMi4wMFxuCi0rCi0rUDogL2RldmljZXMvcGNpMDAwMDowMC8w MDAwOjAwOjA4LjEvMDAwMDowNTowMC40Ci0rRTogRFJJVkVSPXhoY2lfaGNkCi0rRTogSURfTU9E RUxfRlJPTV9EQVRBQkFTRT1SZW5vaXIvQ2V6YW5uZSBVU0IgMy4xCi0rRTogSURfUEFUSD1wY2kt MDAwMDowNTowMC40Ci0rRTogSURfUEFUSF9UQUc9cGNpLTAwMDBfMDVfMDBfNAotK0U6IElEX1BD SV9DTEFTU19GUk9NX0RBVEFCQVNFPVNlcmlhbCBidXMgY29udHJvbGxlcgotK0U6IElEX1BDSV9J TlRFUkZBQ0VfRlJPTV9EQVRBQkFTRT1YSENJCi0rRTogSURfUENJX1NVQkNMQVNTX0ZST01fREFU QUJBU0U9VVNCIGNvbnRyb2xsZXIKLStFOiBJRF9WRU5ET1JfRlJPTV9EQVRBQkFTRT1BZHZhbmNl ZCBNaWNybyBEZXZpY2VzLCBJbmMuIFtBTURdCi0rRTogTU9EQUxJQVM9cGNpOnYwMDAwMTAyMmQw MDAwMTYzOXN2MDAwMDE3QUFzZDAwMDAzODJGYmMwQ3NjMDNpMzAKLStFOiBQQ0lfQ0xBU1M9QzAz MzAKLStFOiBQQ0lfSUQ9MTAyMjoxNjM5Ci0rRTogUENJX1NMT1RfTkFNRT0wMDAwOjA1OjAwLjQK LStFOiBQQ0lfU1VCU1lTX0lEPTE3QUE6MzgyRgotK0U6IFNVQlNZU1RFTT1wY2kKLStBOiBhcmlf ZW5hYmxlZD0wXG4KLStBOiBicm9rZW5fcGFyaXR5X3N0YXR1cz0wXG4KLStBOiBjbGFzcz0weDBj MDMzMFxuCi0rSDogY29uZmlnPTIyMTAzOTE2MDcwNDEwMDAwMDMwMDMwQzEwMDA4MDAwMDQwMDQw RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQTE3MkYz ODAwMDAwMDAwNDgwMDAwMDAwMDAwMDAwMEZGMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NTAwODAw QUExNzJGMzgwMTY0MDNDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxMjAwMDAwMTBBMDAyMDBB MThGMDAwMDEwMjkwMDAwMDMwRDQwMDA0MDAwMDMxMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMUYwMDcxMDAwMDAwMDAwMDFFMDA4MDAxMDAwMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDVD MDg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDExMDAwNzgwMDBFMDBGMDAwMEYwMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMEIwMDAxMkEwMTAwMDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMDAw MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw 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 MDAwCi0rQTogY29uc2lzdGVudF9kbWFfbWFza19iaXRzPTY0XG4KLStBOiBjdXJyZW50X2xpbmtf c3BlZWQ9OC4wIEdUL3MgUENJZVxuCi0rQTogY3VycmVudF9saW5rX3dpZHRoPTE2XG4KLStBOiBk M2NvbGRfYWxsb3dlZD0xXG4KLStBOiBkYmM9ZGlzYWJsZWRcbgotK0E6IGRiY19iSW50ZXJmYWNl UHJvdG9jb2w9MDFcbgotK0E6IGRiY19iY2REZXZpY2U9MDAxMFxuCi0rQTogZGJjX2lkUHJvZHVj dD0wMDEwXG4KLStBOiBkYmNfaWRWZW5kb3I9MWQ2YlxuCi0rQTogZGJjX3BvbGxfaW50ZXJ2YWxf bXM9NjRcbgotK0E6IGRldmljZT0weDE2MzlcbgotK0E6IGRtYV9tYXNrX2JpdHM9NjRcbgotK0w6 IGRyaXZlcj0uLi8uLi8uLi8uLi9idXMvcGNpL2RyaXZlcnMveGhjaV9oY2QKLStBOiBkcml2ZXJf b3ZlcnJpZGU9KG51bGwpXG4KLStBOiBlbmFibGU9MVxuCi0rTDogZmlybXdhcmVfbm9kZT0uLi8u Li8uLi9MTlhTWVNUTTowMC9MTlhTWUJVUzowMC9QTlAwQTA4OjAwL2RldmljZTowYy9kZXZpY2U6 MWIKLStMOiBpb21tdT0uLi8uLi8wMDAwOjAwOjAwLjIvaW9tbXUvaXZoZDAKLStMOiBpb21tdV9n cm91cD0uLi8uLi8uLi8uLi9rZXJuZWwvaW9tbXVfZ3JvdXBzLzIwCi0rQTogaXJxPTQ0XG4KLStB OiBsaW5rL2wwc19hc3BtPTBcbgotK0E6IGxpbmsvbDFfYXNwbT0wXG4KLStBOiBsb2NhbF9jcHVs aXN0PTAtMTFcbgotK0E6IGxvY2FsX2NwdXM9ZmZmXG4KLStBOiBtYXhfbGlua19zcGVlZD04LjAg R1QvcyBQQ0llXG4KLStBOiBtYXhfbGlua193aWR0aD0xNlxuCi0rQTogbW9kYWxpYXM9cGNpOnYw MDAwMTAyMmQwMDAwMTYzOXN2MDAwMDE3QUFzZDAwMDAzODJGYmMwQ3NjMDNpMzBcbgotK0E6IG1z aV9idXM9MVxuCi0rQTogbXNpX2lycXMvNDU9bXNpeFxuCi0rQTogbXNpX2lycXMvNDY9bXNpeFxu Ci0rQTogbXNpX2lycXMvNDc9bXNpeFxuCi0rQTogbXNpX2lycXMvNDg9bXNpeFxuCi0rQTogbXNp X2lycXMvNDk9bXNpeFxuCi0rQTogbXNpX2lycXMvNTA9bXNpeFxuCi0rQTogbXNpX2lycXMvNTE9 bXNpeFxuCi0rQTogbXNpX2lycXMvNTI9bXNpeFxuCi0rQTogbnVtYV9ub2RlPS0xXG4KLStBOiBw b29scz1wb29saW5mbyAtIDAuMVxuYnVmZmVyLTIwNDggICAgICAgICAwICAgIDAgMjA0OCAgMFxu YnVmZmVyLTUxMiAgICAgICAgICAwICAgIDAgIDUxMiAgMFxuYnVmZmVyLTEyOCAgICAgICAgICAw ICAgIDAgIDEyOCAgMFxuYnVmZmVyLTMyICAgICAgICAgICAwICAgIDAgICAzMiAgMFxueEhDSSAx S0Igc3RyZWFtIGN0eCBhcnJheXMgICAgMCAgICAwIDEwMjQgIDBcbnhIQ0kgMjU2IGJ5dGUgc3Ry ZWFtIGN0eCBhcnJheXMgICAgMCAgICAwICAyNTYgIDBcbnhIQ0kgaW5wdXQvb3V0cHV0IGNvbnRl eHRzICAgIDQgICAgNSAyMTEyICA1XG54SENJIHJpbmcgc2VnbWVudHMgICAyMyAgIDIzIDQwOTYg MjNcbmJ1ZmZlci0yMDQ4ICAgICAgICAgMCAgICAwIDIwNDggIDBcbmJ1ZmZlci01MTIgICAgICAg ICAgMCAgICAwICA1MTIgIDBcbmJ1ZmZlci0xMjggICAgICAgICAgMCAgICAwICAxMjggIDBcbmJ1 ZmZlci0zMiAgICAgICAgICAgMCAgICAwICAgMzIgIDBcbgotK0E6IHBvd2VyL2FzeW5jPWVuYWJs ZWRcbgotK0E6IHBvd2VyL2NvbnRyb2w9b25cbgotK0E6IHBvd2VyL3J1bnRpbWVfYWN0aXZlX2tp ZHM9MVxuCi0rQTogcG93ZXIvcnVudGltZV9hY3RpdmVfdGltZT05MzEzOTUyM1xuCi0rQTogcG93 ZXIvcnVudGltZV9lbmFibGVkPWZvcmJpZGRlblxuCi0rQTogcG93ZXIvcnVudGltZV9zdGF0dXM9 YWN0aXZlXG4KLStBOiBwb3dlci9ydW50aW1lX3N1c3BlbmRlZF90aW1lPTBcbgotK0E6IHBvd2Vy L3J1bnRpbWVfdXNhZ2U9MVxuCi0rQTogcG93ZXIvd2FrZXVwPWVuYWJsZWRcbgotK0E6IHBvd2Vy L3dha2V1cF9hYm9ydF9jb3VudD0wXG4KLStBOiBwb3dlci93YWtldXBfYWN0aXZlPTBcbgotK0E6 IHBvd2VyL3dha2V1cF9hY3RpdmVfY291bnQ9MFxuCi0rQTogcG93ZXIvd2FrZXVwX2NvdW50PTBc bgotK0E6IHBvd2VyL3dha2V1cF9leHBpcmVfY291bnQ9MFxuCi0rQTogcG93ZXIvd2FrZXVwX2xh c3RfdGltZV9tcz0wXG4KLStBOiBwb3dlci93YWtldXBfbWF4X3RpbWVfbXM9MFxuCi0rQTogcG93 ZXIvd2FrZXVwX3RvdGFsX3RpbWVfbXM9MFxuCi0rQTogcG93ZXJfc3RhdGU9RDBcbgotK0E6IHJl c2V0X21ldGhvZD1wbVxuCi0rQTogcmVzb3VyY2U9MHgwMDAwMDAwMGQwNDAwMDAwIDB4MDAwMDAw MDBkMDRmZmZmZiAweDAwMDAwMDAwMDAxNDAyMDRcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAw MDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAw MDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAw MDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAw MDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgw MDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4 MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAw eDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAg MHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAw IDB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAw MCAweDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAw MDAgMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAw MDAwIDB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbgotK0E6IHJldmlzaW9u PTB4MDBcbgotK0E6IHN1YnN5c3RlbV9kZXZpY2U9MHgzODJmXG4KLStBOiBzdWJzeXN0ZW1fdmVu ZG9yPTB4MTdhYVxuCi0rQTogdmVuZG9yPTB4MTAyMlxuCi0rCi0rUDogL2RldmljZXMvcGNpMDAw MDowMC8wMDAwOjAwOjA4LjEKLStFOiBEUklWRVI9cGNpZXBvcnQKLStFOiBJRF9NT0RFTF9GUk9N X0RBVEFCQVNFPVJlbm9pciBJbnRlcm5hbCBQQ0llIEdQUCBCcmlkZ2UgdG8gQnVzCi0rRTogSURf UEFUSD1wY2ktMDAwMDowMDowOC4xCi0rRTogSURfUEFUSF9UQUc9cGNpLTAwMDBfMDBfMDhfMQot K0U6IElEX1BDSV9DTEFTU19GUk9NX0RBVEFCQVNFPUJyaWRnZQotK0U6IElEX1BDSV9JTlRFUkZB Q0VfRlJPTV9EQVRBQkFTRT1Ob3JtYWwgZGVjb2RlCi0rRTogSURfUENJX1NVQkNMQVNTX0ZST01f REFUQUJBU0U9UENJIGJyaWRnZQotK0U6IElEX1ZFTkRPUl9GUk9NX0RBVEFCQVNFPUFkdmFuY2Vk IE1pY3JvIERldmljZXMsIEluYy4gW0FNRF0KLStFOiBNT0RBTElBUz1wY2k6djAwMDAxMDIyZDAw MDAxNjM1c3YwMDAwMTAyMnNkMDAwMDE2MzViYzA2c2MwNGkwMAotK0U6IFBDSV9DTEFTUz02MDQw MAotK0U6IFBDSV9JRD0xMDIyOjE2MzUKLStFOiBQQ0lfU0xPVF9OQU1FPTAwMDA6MDA6MDguMQot K0U6IFBDSV9TVUJTWVNfSUQ9MTAyMjoxNjM1Ci0rRTogU1VCU1lTVEVNPXBjaQotK0E6IGFyaV9l bmFibGVkPTBcbgotK0E6IGJyb2tlbl9wYXJpdHlfc3RhdHVzPTBcbgotK0E6IGNsYXNzPTB4MDYw NDAwXG4KLStIOiBjb25maWc9MjIxMDM1MTYwNzA0MTAwMDAwMDAwNDA2MTAwMDgxMDAwMDAwMDAw MDAwMDAwMDAwMDAwNTA1MDAxMTExMDAwMDMwRDA2MEQwMDFFMDExRjBGQzAwMDAwMEZDMDAwMDAw MDAwMDAwMDA1MDAwMDAwMDAwMDAwMDAwRkYwMTAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAxNTgwM0M4MDAwMDAwMDAxMEEwNDIwMDIyODAwMDAwMTAyOTAwMDAwMzBENzAwMDQw MEMwMzMxMDAwMDAwMDAwMDAwNDAwMDE4MDAwMTAwMDAwMDAwMDAwMDAwMzEwMDAwMDAwMDAwMUUw MDgwMDE0MzAwMUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUMw ODEwMDAwMDBFMEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMEQwMDAwMDAyMjEwMzUxNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwN0NBMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwQjAwMDEyNzAxMDAwMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMTkwMDAxMkEwMDAwMDAwMDAwMDAwMDAwN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3 RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3RjAwMDAwMDAwMEQwMDAx NDA1RjAwMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAyNTAwMDE0MTAxMDAwMDgwMDEwMDAwODAwMDAwMDAwMDI2MDAwMTQ0MDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRkZG RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjI3MDAwMTAwMDAwMDAwMDAzODlDMDAwMDM4OUMw MDAwMzg5QzAwMDAzODlDMDAwMDM4OUMwMDAwMzg5QzAwMDAzODlDMDAwMDM4OUMwMDAwMzg5QzAw MDAzODlDMDAwMDM4OUMwMDAwMzg5QzAwMDAzODlDMDAwMDM4OUMwMDAwMzg5QzAwMDAzODlDMDAw 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 MDAKLStBOiBjb25zaXN0ZW50X2RtYV9tYXNrX2JpdHM9MzJcbgotK0E6IGN1cnJlbnRfbGlua19z cGVlZD04LjAgR1QvcyBQQ0llXG4KLStBOiBjdXJyZW50X2xpbmtfd2lkdGg9MTZcbgotK0E6IGQz Y29sZF9hbGxvd2VkPTFcbgotK0E6IGRldmljZT0weDE2MzVcbgotK0E6IGRtYV9tYXNrX2JpdHM9 MzJcbgotK0w6IGRyaXZlcj0uLi8uLi8uLi9idXMvcGNpL2RyaXZlcnMvcGNpZXBvcnQKLStBOiBk cml2ZXJfb3ZlcnJpZGU9KG51bGwpXG4KLStBOiBlbmFibGU9MlxuCi0rTDogZmlybXdhcmVfbm9k ZT0uLi8uLi9MTlhTWVNUTTowMC9MTlhTWUJVUzowMC9QTlAwQTA4OjAwL2RldmljZTowYwotK0w6 IGlvbW11PS4uLzAwMDA6MDA6MDAuMi9pb21tdS9pdmhkMAotK0w6IGlvbW11X2dyb3VwPS4uLy4u Ly4uL2tlcm5lbC9pb21tdV9ncm91cHMvOAotK0E6IGlycT0zM1xuCi0rQTogbG9jYWxfY3B1bGlz dD0wLTExXG4KLStBOiBsb2NhbF9jcHVzPWZmZlxuCi0rQTogbWF4X2xpbmtfc3BlZWQ9OC4wIEdU L3MgUENJZVxuCi0rQTogbWF4X2xpbmtfd2lkdGg9MTZcbgotK0E6IG1vZGFsaWFzPXBjaTp2MDAw MDEwMjJkMDAwMDE2MzVzdjAwMDAxMDIyc2QwMDAwMTYzNWJjMDZzYzA0aTAwXG4KLStBOiBtc2lf YnVzPTFcbgotK0E6IG1zaV9pcnFzLzMzPW1zaVxuCi0rQTogbnVtYV9ub2RlPS0xXG4KLStBOiBw b3dlci9hc3luYz1lbmFibGVkXG4KLStBOiBwb3dlci9hdXRvc3VzcGVuZF9kZWxheV9tcz0xMDBc bgotK0E6IHBvd2VyL2NvbnRyb2w9YXV0b1xuCi0rQTogcG93ZXIvcnVudGltZV9hY3RpdmVfa2lk cz01XG4KLStBOiBwb3dlci9ydW50aW1lX2FjdGl2ZV90aW1lPTkzMTM5NTM3XG4KLStBOiBwb3dl ci9ydW50aW1lX2VuYWJsZWQ9ZW5hYmxlZFxuCi0rQTogcG93ZXIvcnVudGltZV9zdGF0dXM9YWN0 aXZlXG4KLStBOiBwb3dlci9ydW50aW1lX3N1c3BlbmRlZF90aW1lPTBcbgotK0E6IHBvd2VyL3J1 bnRpbWVfdXNhZ2U9MFxuCi0rQTogcG93ZXIvd2FrZXVwPWRpc2FibGVkXG4KLStBOiBwb3dlci93 YWtldXBfYWJvcnRfY291bnQ9XG4KLStBOiBwb3dlci93YWtldXBfYWN0aXZlPVxuCi0rQTogcG93 ZXIvd2FrZXVwX2FjdGl2ZV9jb3VudD1cbgotK0E6IHBvd2VyL3dha2V1cF9jb3VudD1cbgotK0E6 IHBvd2VyL3dha2V1cF9leHBpcmVfY291bnQ9XG4KLStBOiBwb3dlci93YWtldXBfbGFzdF90aW1l X21zPVxuCi0rQTogcG93ZXIvd2FrZXVwX21heF90aW1lX21zPVxuCi0rQTogcG93ZXIvd2FrZXVw X3RvdGFsX3RpbWVfbXM9XG4KLStBOiBwb3dlcl9zdGF0ZT1EMFxuCi0rQTogcmVzZXRfbWV0aG9k PXBtXG4KLStBOiByZXNvdXJjZT0weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAw IDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAw MCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAw MDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAw MDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAw MDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAw MDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAw MDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAw MDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAw MDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAw MDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAw MDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAw MDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAw MDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAxMDAwIDB4MDAw MDAwMDAwMDAwMWZmZiAweDAwMDAwMDAwMDAwMDAxMDFcbjB4MDAwMDAwMDBkMDMwMDAwMCAweDAw MDAwMDAwZDA2ZmZmZmYgMHgwMDAwMDAwMDAwMDAwMjAwXG4weDAwMDAwMGZjZTAwMDAwMDAgMHgw MDAwMDBmY2YwMWZmZmZmIDB4MDAwMDAwMDAwMDEwMjIwMVxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4 MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbgotK0E6IHJldmlzaW9uPTB4MDBc bgotK0E6IHNlY29uZGFyeV9idXNfbnVtYmVyPTVcbgotK0E6IHN1Ym9yZGluYXRlX2J1c19udW1i ZXI9NVxuCi0rQTogc3Vic3lzdGVtX2RldmljZT0weDE2MzVcbgotK0E6IHN1YnN5c3RlbV92ZW5k b3I9MHgxMDIyXG4KLStBOiB2ZW5kb3I9MHgxMDIyXG4KLSsKLWRpZmYgLS1naXQgYS90ZXN0cy9t ZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCi1pbmRleCAwN2M5MjRiZS4uYjZlOGJmOTUg MTAwNjQ0Ci0tLS0gYS90ZXN0cy9tZXNvbi5idWlsZAotKysrIGIvdGVzdHMvbWVzb24uYnVpbGQK LUBAIC01Miw2ICs1Miw3IEBAIGRyaXZlcnNfdGVzdHMgPSBbCi0gICAgICduYjEwMTAnLAotICAg ICAnZWdpczA1NzAnLAotICAgICAnZWdpc21vYycsCi0rICAgICdlZ2lzX2V0dTkwNScsCi0gICAg ICdlZ2lzbW9jLTA1YTEnLAotICAgICAnZWdpc21vYy0wNTg2JywKLSAgICAgJ2VnaXNtb2MtMDU4 NycsCi0tLSAKLUdpdExhYgotCi0KLUZyb20gYzIxNmYwNGRkMWZkMWNmZTIxYTcxZDI2YmY2ZTE3 ZmMxYTM3OTgzYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9NYXJj bz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5Pz0gPG1haWxAM3YxbjAubmV0PgotRGF0 ZTogVHVlLCA5IEp1biAyMDI2IDE0OjE5OjE3ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMDIvMTNd IGVnaXNfZXR1OTA1OiBEbyBub3QgbGVhayB0aGUgdHJhbnNmZXIgYnVmZmVyCi0KLVRoZSBidWZm ZXIgaXMgbm93IG93bmVkIGJ5IHRoZSBkYXRhLCBzbyB3ZSBzaG91bGQgbm90IHN0ZWFsIGl0IHdo ZW4KLXBhc3NpbmcgaXQgYXJvdW5kIG9yIHdlJ2xsIGxlYWsuCi0tLS0KLSBsaWJmcHJpbnQvZHJp dmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgfCA2ICsrKystLQotIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJmcHJpbnQv ZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9j L2VnaXNfZXR1OTA1LmMKLWluZGV4IGJlMGM2ZTA1Li5mOTFmMDQ3MiAxMDA2NDQKLS0tLSBhL2xp YmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotKysrIGIvbGliZnByaW50L2Ry aXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1AQCAtMjA3LDcgKzIwNyw4IEBAIGVnaXNfZXR1 OTA1X2NtZF9yZWNlaXZlX2NiIChGcGlVc2JUcmFuc2ZlciAqdHJhbnNmZXIsCi0gICAgICAgZnBp X3NzbV9tYXJrX2ZhaWxlZCAodHJhbnNmZXItPnNzbSwgZXJyb3IpOwotICAgICAgIHJldHVybjsK LSAgICAgfQotLSAgaWYgKGRhdGEgPT0gTlVMTCB8fCB0cmFuc2Zlci0+YWN0dWFsX2xlbmd0aCA8 IGVnaXNfZXR1OTA1X3JlYWRfcHJlZml4X2xlbikKLSsKLSsgIGlmICh0cmFuc2Zlci0+YWN0dWFs X2xlbmd0aCA8IGVnaXNfZXR1OTA1X3JlYWRfcHJlZml4X2xlbikKLSAgICAgewotICAgICAgIGZw aV9zc21fbWFya19mYWlsZWQgKHRyYW5zZmVyLT5zc20sCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXcgKEZQX0RFVklDRV9FUlJPUl9HRU5FUkFMKSk7Ci1A QCAtMjE2LDYgKzIxNyw3IEBAIGVnaXNfZXR1OTA1X2NtZF9yZWNlaXZlX2NiIChGcGlVc2JUcmFu c2ZlciAqdHJhbnNmZXIsCi0gCi0gICAvKiBTdG9yZSB0aGUgcmVzcG9uc2UgZGF0YSBhbmQgbGV0 IHRoZSBjbWRfc3NtX2RvbmUgY2FsbGJhY2sgaW52b2tlCi0gICAgKiB0aGUgYWN0dWFsIGNhbGxi YWNrIHdpdGggdGhlIHN0b3JlZCBkYXRhICovCi0rICBnX2Fzc2VydCAoZGF0YSAhPSBOVUxMKTsK LSAgIGRhdGEtPmJ1ZmZlcl9pbiA9IGdfc3RlYWxfcG9pbnRlciAoJnRyYW5zZmVyLT5idWZmZXIp OwotICAgZGF0YS0+bGVuZ3RoX2luID0gdHJhbnNmZXItPmFjdHVhbF9sZW5ndGg7Ci0gCi1AQCAt MjgyLDcgKzI4NCw3IEBAIGVnaXNfZXR1OTA1X2NtZF9zc21fZG9uZSAoRnBpU3NtICAgKnNzbSwK LSAgIGlmIChkYXRhICYmIGRhdGEtPmNhbGxiYWNrKQotICAgICB7Ci0gICAgICAgZGF0YS0+Y2Fs bGJhY2sgKGRldmljZSwKLS0gICAgICAgICAgICAgICAgICAgICAgZ19zdGVhbF9wb2ludGVyICgm ZGF0YS0+YnVmZmVyX2luKSwKLSsgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+YnVmZmVyX2lu LAotICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5sZW5ndGhfaW4sCi0gICAgICAgICAgICAg ICAgICAgICAgIGdfc3RlYWxfcG9pbnRlciAoJmxvY2FsX2Vycm9yKSk7Ci0gICAgIH0KLS0tIAot R2l0TGFiCi0KLQotRnJvbSBmZGJjOWVlNjU1OGE1NGRjMzkzYTVkZmEwNGY2MjZiZTgzOTMxMTZj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlz YW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+Ci1EYXRlOiBUdWUsIDkg SnVuIDIwMjYgMTM6NTE6MjggKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAwMy8xM10gZWdpc19ldHU5 MDU6IFJlbW92ZSB1bnVzZWQgdHJhbnNmZXIKLQotLS0tCi0gbGliZnByaW50L2RyaXZlcnMvZWdp c21vYy9lZ2lzX2V0dTkwNS5jIHwgMTEgLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTEg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2Vn aXNfZXR1OTA1LmMgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLWlu ZGV4IGY5MWYwNDcyLi4wYmI5YTZiYSAxMDA2NDQKLS0tLSBhL2xpYmZwcmludC9kcml2ZXJzL2Vn aXNtb2MvZWdpc19ldHU5MDUuYwotKysrIGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lz X2V0dTkwNS5jCi1AQCAtMTQ0NSw4ICsxNDQ1LDYgQEAgc3RhdGljIHZvaWQKLSBlZ2lzX2V0dTkw NV9kZXZfaW5pdF9oYW5kbGVyIChGcGlTc20gICAqc3NtLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZwRGV2aWNlICpkZXZpY2UpCi0gewotLSAgZ19hdXRvcHRyKEZwaVVzYlRyYW5z ZmVyKSB0cmFuc2ZlciA9IE5VTEw7Ci0tCi0gICBzd2l0Y2ggKGZwaV9zc21fZ2V0X2N1cl9zdGF0 ZSAoc3NtKSkKLSAgICAgewotICAgICBjYXNlIERFVl9HRVRfRldfVkVSU0lPTjoKLUBAIC0xNDYy LDE1ICsxNDYwLDYgQEAgZWdpc19ldHU5MDVfZGV2X2luaXRfaGFuZGxlciAoRnBpU3NtICAgKnNz bSwKLSAgICAgZGVmYXVsdDoKLSAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCAoKTsKLSAgICAg fQotLQotLSAgdHJhbnNmZXIgPSBmcGlfdXNiX3RyYW5zZmVyX25ldyAoZGV2aWNlKTsKLS0gIHRy YW5zZmVyLT5zc20gPSBzc207Ci0tICB0cmFuc2Zlci0+c2hvcnRfaXNfZXJyb3IgPSBUUlVFOwot LSAgZnBpX3VzYl90cmFuc2Zlcl9zdWJtaXQgKGdfc3RlYWxfcG9pbnRlciAoJnRyYW5zZmVyKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9VU0JfQ09OVFJPTF9USU1F T1VULAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZ2V0X2NhbmNlbGxh YmxlIChkZXZpY2UpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9zc21fdXNiX3Ry YW5zZmVyX2NiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotIH0KLSAKLSBz dGF0aWMgdm9pZAotLS0gCi1HaXRMYWIKLQotCi1Gcm9tIGY1ODA2ODI1ZGU4MDNhN2JlY2QwMmI0 OWEzZjRhNmE4ZTMyNTc5ZmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04 P3E/TWFyY289MjBUcmV2aXNhbj0yMD0yOFRyZXZpPUMzPUIxbz0yOT89IDxtYWlsQDN2MW4wLm5l dD4KLURhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxMzo1NjowMiArMDIwMAotU3ViamVjdDogW1BBVENI IDA0LzEzXSBlZ2lzX2V0dTkwNTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQotCi0tLS0KLSBsaWJm cHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgfCAxIC0KLSAxIGZpbGUgY2hhbmdl ZCwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21v Yy9lZ2lzX2V0dTkwNS5jIGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5j Ci1pbmRleCAwYmI5YTZiYS4uM2Q1MmJmODkgMTAwNjQ0Ci0tLS0gYS9saWJmcHJpbnQvZHJpdmVy cy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLSsrKyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2Mv ZWdpc19ldHU5MDUuYwotQEAgLTk0Myw3ICs5NDMsNiBAQCBlZ2lzX2V0dTkwNV9nZXRfY2hlY2tf Y21kIChGcERldmljZSAqZGV2aWNlLAotICAgZnBfZGJnICgiR2V0IGNoZWNrIGNvbW1hbmQiKTsK LSAgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChk ZXZpY2UpOwotICAgZ19hdXRvKEZwaUJ5dGVXcml0ZXIpIHdyaXRlciA9IHswfTsKLS0gIGdfYXV0 b2ZyZWUgZ3VjaGFyICpyZXN1bHQgPSBOVUxMOwotICAgZ2Jvb2xlYW4gd3JpdHRlbiA9IFRSVUU7 Ci0gCi0gICAvKgotLS0gCi1HaXRMYWIKLQotCi1Gcm9tIDEyYWYyNWQ0M2I4OTAwNzdjYzEzYTA1 OTdiNzcyYzk0MDFjYTYyNzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04 P3E/TWFyY289MjBUcmV2aXNhbj0yMD0yOFRyZXZpPUMzPUIxbz0yOT89IDxtYWlsQDN2MW4wLm5l dD4KLURhdGU6IE1vbiwgOCBKdW4gMjAyNiAxMzoyODo1MCArMDIwMAotU3ViamVjdDogW1BBVENI IDA1LzEzXSBlZ2lzX2V0dTkwNTogU2V0IHNob3J0IGVycm9yIHVzaW5nIGZ1bmN0aW9uCi0KLS0t LQotIGxpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyB8IDQgKystLQotIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgYi9saWJmcHJpbnQv ZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLWluZGV4IDNkNTJiZjg5Li40ZTU4NTE1YyAx MDA2NDQKLS0tLSBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotKysr IGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1AQCAtOTcsNyArOTcs NyBAQCBlZ2lzX2V0dTkwNV93YWl0X2Zpbmdlcl9vbl9zZW5zb3IgKEZwaVNzbSAgICpzc20sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9VU0JfSU5URVJS VVBUX0lOX1JFQ1ZfTEVOR1RIKTsKLSAgIHRyYW5zZmVyLT5zc20gPSBzc207Ci0gICAvKiBJbnRl cnJ1cHQgb24gdGhpcyBkZXZpY2UgYWx3YXlzIHJldHVybnMgMSBieXRlIHNob3J0OyB0aGlzIGlz IGV4cGVjdGVkICovCi0tICB0cmFuc2Zlci0+c2hvcnRfaXNfZXJyb3IgPSBGQUxTRTsKLSsgIGZw aV91c2JfdHJhbnNmZXJfc2V0X3Nob3J0X2Vycm9yICh0cmFuc2ZlciwgRkFMU0UpOwotIAotICAg ZnBpX2RldmljZV9yZXBvcnRfZmluZ2VyX3N0YXR1cyAoZGV2aWNlLCBGUF9GSU5HRVJfU1RBVFVT X05FRURFRCk7Ci0gCi1AQCAtMzgyLDcgKzM4Miw3IEBAIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChG cERldmljZSAgICAgICAgICpkZXZpY2UsCi0gICAgIH0KLSAKLSAgIHRyYW5zZmVyID0gZnBpX3Vz Yl90cmFuc2Zlcl9uZXcgKGRldmljZSk7Ci0tICB0cmFuc2Zlci0+c2hvcnRfaXNfZXJyb3IgPSBU UlVFOwotKyAgZnBpX3VzYl90cmFuc2Zlcl9zZXRfc2hvcnRfZXJyb3IgKHRyYW5zZmVyLCBUUlVF KTsKLSAgIHRyYW5zZmVyLT5zc20gPSBzZWxmLT5jbWRfc3NtOwotIAotICAgZnBpX3VzYl90cmFu c2Zlcl9maWxsX2J1bGtfZnVsbCAodHJhbnNmZXIsCi0tLSAKLUdpdExhYgotCi0KLUZyb20gNDJm MGI5NmMxMDMxOTVhNmE3ZmE2YjQ1MjU4YjcyZTM5M2M5MDc5MyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9QzM9QjFv PTI5Pz0gPG1haWxAM3YxbjAubmV0PgotRGF0ZTogTW9uLCA4IEp1biAyMDI2IDEzOjMxOjU4ICsw MjAwCi1TdWJqZWN0OiBbUEFUQ0ggMDYvMTNdIGVnaXNfZXR1OTA1OiBSZWx5IG9uIGRlZmF1bHQg ZGV2aWNlIGNhbmNlbGxhYmxlIGZvciBhbGwKLSB0aGUgYWN0aW9ucwotCi1JIGRvbid0IHNlZSBh IHJlYXNvbiB3aHkgd2Ugc2hvdWxkIHJlbHkgb24gYSBkaWZmZXJlbnQgY2FuY2VsbGFibGUgZm9y Ci1pbnRlcnJ1cHRzLCBidXQgaGFwcHkgdG8gbGVhcm4gbW9yZSBhYm91dCB0aGlzCi0tLS0KLSBs aWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgfCAzMyArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAzMiBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5 MDUuYyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotaW5kZXggNGU1 ODUxNWMuLjNjMWRjZjczIDEwMDY0NAotLS0tIGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9l Z2lzX2V0dTkwNS5jCi0rKysgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1 LmMKLUBAIC0zMyw3ICszMyw2IEBAIHN0cnVjdCBfRnBpRGV2aWNlRWdpc0V0dTkwNQotICAgRnBp U3NtICAgICAgICAgKnRhc2tfc3NtOwotICAgRnBpU3NtICAgICAgICAgKmNtZF9zc207Ci0gICBG cGlVc2JUcmFuc2ZlciAqY21kX3RyYW5zZmVyOwotLSAgR0NhbmNlbGxhYmxlICAgKmludGVycnVw dF9jYW5jZWxsYWJsZTsKLSAgIEdQdHJBcnJheSAgICAgICplbnJvbGxlZF9pZHM7Ci0gICBnaW50 ICAgICAgICAgICAgbWF4X2Vucm9sbF9zdGFnZXM7Ci0gICBndWludDggICAgICAgICAgc2lkW0VH SVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRV07Ci1AQCAtODksOCArODgsNiBAQCBlZ2lz X2V0dTkwNV93YWl0X2Zpbmdlcl9vbl9zZW5zb3IgKEZwaVNzbSAgICpzc20sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGcERldmljZSAqZGV2aWNlKQotIHsKLSAgIGZwX2Ri ZyAoIldhaXQgZm9yIGZpbmdlciBvbiBzZW5zb3IiKTsKLS0gIEZwaURldmljZUVnaXNFdHU5MDUg KnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotLQotICAgZ19hdXRvcHRy KEZwaVVzYlRyYW5zZmVyKSB0cmFuc2ZlciA9IGZwaV91c2JfdHJhbnNmZXJfbmV3IChkZXZpY2Up OwotIAotICAgZnBpX3VzYl90cmFuc2Zlcl9maWxsX2ludGVycnVwdCAodHJhbnNmZXIsIEVHSVNf RVRVOTA1X0VQX0NNRF9JTlRFUlJVUFRfSU4sCi1AQCAtMTAzLDcgKzEwMCw3IEBAIGVnaXNfZXR1 OTA1X3dhaXRfZmluZ2VyX29uX3NlbnNvciAoRnBpU3NtICAgKnNzbSwKLSAKLSAgIGZwaV91c2Jf dHJhbnNmZXJfc3VibWl0IChnX3N0ZWFsX3BvaW50ZXIgKCZ0cmFuc2ZlciksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfVVNCX0lOVEVSUlVQVF9USU1FT1VULAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmludGVycnVwdF9jYW5jZWxsYWJsZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2dldF9jYW5jZWxsYWJsZSAoZGV2 aWNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZ2lzX2V0dTkwNV9maW5nZXJfb25f c2Vuc29yX2NiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotIH0KLUBAIC0x NTUxLDM3ICsxNTQ4LDExIEBAIGVnaXNfZXR1OTA1X29wZW4gKEZwRGV2aWNlICpkZXZpY2UpCi0g ICBmcGlfc3NtX3N0YXJ0IChzZWxmLT50YXNrX3NzbSwgZWdpc19ldHU5MDVfZGV2X2luaXRfZG9u ZSk7Ci0gfQotIAotLXN0YXRpYyB2b2lkCi0tZWdpc19ldHU5MDVfY2FuY2VsIChGcERldmljZSAq ZGV2aWNlKQotLXsKLS0gIGZwX2RiZyAoIkNhbmNlbCIpOwotLSAgRnBpRGV2aWNlRWdpc0V0dTkw NSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7Ci0tCi0tICBnX2NhbmNl bGxhYmxlX2NhbmNlbCAoc2VsZi0+aW50ZXJydXB0X2NhbmNlbGxhYmxlKTsKLS0gIGdfY2xlYXJf b2JqZWN0ICgmc2VsZi0+aW50ZXJydXB0X2NhbmNlbGxhYmxlKTsKLS0gIHNlbGYtPmludGVycnVw dF9jYW5jZWxsYWJsZSA9IGdfY2FuY2VsbGFibGVfbmV3ICgpOwotLX0KLS0KLS1zdGF0aWMgdm9p ZAotLWVnaXNfZXR1OTA1X3N1c3BlbmQgKEZwRGV2aWNlICpkZXZpY2UpCi0tewotLSAgZnBfZGJn ICgiU3VzcGVuZCIpOwotLQotLSAgZWdpc19ldHU5MDVfY2FuY2VsIChkZXZpY2UpOwotLSAgZ19j YW5jZWxsYWJsZV9jYW5jZWwgKGZwaV9kZXZpY2VfZ2V0X2NhbmNlbGxhYmxlIChkZXZpY2UpKTsK LS0gIGZwaV9kZXZpY2Vfc3VzcGVuZF9jb21wbGV0ZSAoZGV2aWNlLCBOVUxMKTsKLS19Ci0tCi0g c3RhdGljIHZvaWQKLSBlZ2lzX2V0dTkwNV9jbG9zZSAoRnBEZXZpY2UgKmRldmljZSkKLSB7Ci0g ICBnX2F1dG9wdHIoR0Vycm9yKSBlcnJvciA9IE5VTEw7Ci0gICBmcF9kYmcgKCJDbG9zaW5nIGRl dmljZSIpOwotLSAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19F VFU5MDUgKGRldmljZSk7Ci0tICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLS0KLS0gIGVnaXNfZXR1 OTA1X2NhbmNlbCAoZGV2aWNlKTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+aW50ZXJydXB0 X2NhbmNlbGxhYmxlKTsKLSAKLSAgIGdfdXNiX2RldmljZV9yZWxlYXNlX2ludGVyZmFjZSAoZnBp X2RldmljZV9nZXRfdXNiX2RldmljZSAoZGV2aWNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMCwgMCwgJmVycm9yKTsKLUBAIC0xNjEwLDggKzE1ODEsNiBAQCBmcGlfZGV2 aWNlX2VnaXNfZXR1OTA1X2NsYXNzX2luaXQgKEZwaURldmljZUVnaXNFdHU5MDVDbGFzcyAqa2xh c3MpCi0gCi0gICBkZXZfY2xhc3MtPnByb2JlID0gZWdpc19ldHU5MDVfcHJvYmU7Ci0gICBkZXZf Y2xhc3MtPm9wZW4gPSBlZ2lzX2V0dTkwNV9vcGVuOwotLSAgZGV2X2NsYXNzLT5jYW5jZWwgPSBl Z2lzX2V0dTkwNV9jYW5jZWw7Ci0tICBkZXZfY2xhc3MtPnN1c3BlbmQgPSBlZ2lzX2V0dTkwNV9z dXNwZW5kOwotICAgZGV2X2NsYXNzLT5jbG9zZSA9IGVnaXNfZXR1OTA1X2Nsb3NlOwotICAgZGV2 X2NsYXNzLT5pZGVudGlmeSA9IGVnaXNfZXR1OTA1X2lkZW50aWZ5X3ZlcmlmeTsKLSAgIGRldl9j bGFzcy0+dmVyaWZ5ID0gZWdpc19ldHU5MDVfaWRlbnRpZnlfdmVyaWZ5OwotLS0gCi1HaXRMYWIK LQotCi1Gcm9tIDRiOGY0NmYxZjljZTNkMmIyY2U5NmQwYjg3ZmRiNDY0ZjllNjdhYmUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2aXNhbj0yMD0y OFRyZXZpPUMzPUIxbz0yOT89IDxtYWlsQDN2MW4wLm5ldD4KLURhdGU6IE1vbiwgOCBKdW4gMjAy NiAxMzozMjo1MSArMDIwMAotU3ViamVjdDogW1BBVENIIDA3LzEzXSBlZ2lzX2V0dTkwNTogVXNl IGZwaS1ieXRlcy1yZWFkZXIgdG8gZ2V0IHRoZSBmaXJtd2FyZQotIHN0cmluZwotCi0tLS0KLSBs aWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgfCAzNyArKysrKysrKysrKysr KysrKysrLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1 OTA1LmMgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLWluZGV4IDNj MWRjZjczLi5jNGQ0MDkzZCAxMDA2NDQKLS0tLSBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2Mv ZWdpc19ldHU5MDUuYwotKysrIGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkw NS5jCi1AQCAtMTM0OCwxMiArMTM0OCwxNCBAQCBlZ2lzX2V0dTkwNV9md192ZXJzaW9uX2NiIChG cERldmljZSAqZGV2aWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAgICBs ZW5ndGhfaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgKmVycm9yKQot IHsKLS0gIGZwX2RiZyAoIkZpcm13YXJlIHZlcnNpb24gY2FsbGJhY2siKTsKLSAgIEZwaURldmlj ZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotLSAg Z19hdXRvZnJlZSBnY2hhciAqZndfdmVyc2lvbiA9IE5VTEw7Ci0tICBnc2l6ZSBwcmVmaXhfbGVu Z3RoOwotLSAgZ3VjaGFyICpmd192ZXJzaW9uX3N0YXJ0OwotKyAgRnBpQnl0ZVJlYWRlciByZWFk ZXI7Ci0rICBjb25zdCBndWludDggKmZ3X3ZlcnNpb25fZGF0YSA9IE5VTEw7Ci0rICBjb25zdCBn dWludCBwcmVmaXhfbGVuZ3RoID0gZWdpc19ldHU5MDVfcmVhZF9wcmVmaXhfbGVuICsgMiArIDMg KyAxOwotICAgZ3NpemUgZndfdmVyc2lvbl9sZW5ndGg7Ci0rICBnX2F1dG9mcmVlIGdjaGFyICpm d192ZXJzaW9uID0gTlVMTDsKLSsKLSsgIGZwX2RiZyAoIkZpcm13YXJlIHZlcnNpb24gY2FsbGJh Y2siKTsKLSAKLSAgIGlmIChlcnJvcikKLSAgICAgewotQEAgLTEzODAsMTAgKzEzODIsMjkgQEAg ZWdpc19ldHU5MDVfZndfdmVyc2lvbl9jYiAoRnBEZXZpY2UgKmRldmljZSwKLSAgICAqIGNvbWUg d2l0aCBldmVyeSBwYXlsb2FkIFRoZW4gd2Ugd2lsbCBhbHNvIHNraXAgdGhlIGNhcnJpYWdlIHJl dHVybiBhbmQgdGFrZQotICAgICogYWxsIGJ1dCB0aGUgbGFzdCAyIGJ5dGVzIGFzIHRoZSBGVyBW ZXJzaW9uCi0gICAgKi8KLS0gIHByZWZpeF9sZW5ndGggPSBlZ2lzX2V0dTkwNV9yZWFkX3ByZWZp eF9sZW4gKyAyICsgMyArIDE7Ci0tICBmd192ZXJzaW9uX3N0YXJ0ID0gYnVmZmVyX2luICsgcHJl Zml4X2xlbmd0aDsKLS0gIGZ3X3ZlcnNpb25fbGVuZ3RoID0gbGVuZ3RoX2luIC0gcHJlZml4X2xl bmd0aCAtIHJzcF9md192ZXJzaW9uX3N1ZmZpeF9sZW47Ci0tICBmd192ZXJzaW9uID0gZ19zdHJu ZHVwICgoZ2NoYXIgKikgZndfdmVyc2lvbl9zdGFydCwgZndfdmVyc2lvbl9sZW5ndGgpOwotKyAg ZnBpX2J5dGVfcmVhZGVyX2luaXQgKCZyZWFkZXIsIGJ1ZmZlcl9pbiwgbGVuZ3RoX2luKTsKLSsK LSsgIGlmICghZnBpX2J5dGVfcmVhZGVyX3NldF9wb3MgKCZyZWFkZXIsIHByZWZpeF9sZW5ndGgp KQotKyAgICB7Ci0rICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXdfbXNnIChGUF9E RVZJQ0VfRVJST1JfUFJPVE8sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiRGV2aWNlIGZpcm13YXJlIHJlc3BvbnNlICIKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0b28gc2hvcnQgZm9y IHByZWZpeC4iKSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICBmd192ZXJzaW9uX2xl bmd0aCA9IGZwaV9ieXRlX3JlYWRlcl9nZXRfcmVtYWluaW5nICgmcmVhZGVyKSAtIHJzcF9md192 ZXJzaW9uX3N1ZmZpeF9sZW47Ci0rCi0rICBpZiAoIWZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YSAo JnJlYWRlciwgZndfdmVyc2lvbl9sZW5ndGgsICZmd192ZXJzaW9uX2RhdGEpKQotKyAgICB7Ci0r ICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXdfbXNnIChGUF9ERVZJQ0VfRVJST1Jf UFJPVE8sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiRGV2aWNlIGZpcm13YXJlIHJlc3BvbnNlICIKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0b28gc2hvcnQgZm9yIHZlcnNpb24gc3Ry aW5nLiIpKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsgIGZ3X3ZlcnNpb24gPSBnX3N0 cm5kdXAgKChnY2hhciAqKSBmd192ZXJzaW9uX2RhdGEsIGZ3X3ZlcnNpb25fbGVuZ3RoKTsKLSAK LSAgIGZwX2luZm8gKCJEZXZpY2UgZmlybXdhcmUgdmVyc2lvbiBpcyAlcyIsIGZ3X3ZlcnNpb24p OwotIAotLS0gCi1HaXRMYWIKLQotCi1Gcm9tIGM2ZjlmMDk0YWZlYzJhMWJmNTNlNmE2MTMyZGJk ZTEzMDY1MGI5ZWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/TWFy Y289MjBUcmV2aXNhbj0yMD0yOFRyZXZpPUMzPUIxbz0yOT89IDxtYWlsQDN2MW4wLm5ldD4KLURh dGU6IE1vbiwgOCBKdW4gMjAyNiAxMzozOTozNCArMDIwMAotU3ViamVjdDogW1BBVENIIDA4LzEz XSBlZ2lzX2V0dTkwNTogZHJvcCB1bnVzZWQgc2lkIGZpZWxkCi0KLVdlIHJlYWQgaXQgYnV0IHdl IG5ldmVyIHVzZSBpdAotLS0tCi0gbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkw NS5jIHwgMTUgLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE1IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5j IGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1pbmRleCBjNGQ0MDkz ZC4uNDE4YjQzYTMgMTAwNjQ0Ci0tLS0gYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNf ZXR1OTA1LmMKLSsrKyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwot QEAgLTM1LDcgKzM1LDYgQEAgc3RydWN0IF9GcGlEZXZpY2VFZ2lzRXR1OTA1Ci0gICBGcGlVc2JU cmFuc2ZlciAqY21kX3RyYW5zZmVyOwotICAgR1B0ckFycmF5ICAgICAgKmVucm9sbGVkX2lkczsK LSAgIGdpbnQgICAgICAgICAgICBtYXhfZW5yb2xsX3N0YWdlczsKLS0gIGd1aW50OCAgICAgICAg ICBzaWRbRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFXTsKLSB9OwotIAotIEdfREVG SU5FX1RZUEUgKEZwaURldmljZUVnaXNFdHU5MDUsIGZwaV9kZXZpY2VfZWdpc19ldHU5MDUsIEZQ X1RZUEVfREVWSUNFKTsKLUBAIC05MTEsMjAgKzkxMCw2IEBAIGVnaXNfZXR1OTA1X2Vucm9sbF9i ZWdpbl9jYiAoRnBEZXZpY2UgKmRldmljZSwKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLS0g IEZwaUJ5dGVSZWFkZXIgcmVhZGVyOwotLQotLSAgZnBpX2J5dGVfcmVhZGVyX2luaXQgKCZyZWFk ZXIsIGJ1ZmZlcl9pbiwgbGVuZ3RoX2luKTsKLS0KLS0gIGZwaV9ieXRlX3JlYWRlcl9zZXRfcG9z ICgmcmVhZGVyLCBFR0lTX0VUVTkwNV9MSVNUX1JFU1BPTlNFX1BSRUZJWF9TSVpFKTsKLS0KLS0g IGNvbnN0IGd1aW50OCAqZGF0YSA9IE5VTEw7Ci0tCi0tICBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2Rh dGEgKCZyZWFkZXIsIEVHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmRhdGEpOwotLQotLSAgaWYgKGRhdGEpCi0tICAgIG1lbWNw eSAoc2VsZi0+c2lkLCBkYXRhLCBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJWkUpOwot LQotICAgZnBpX3NzbV9uZXh0X3N0YXRlIChzZWxmLT50YXNrX3NzbSk7Ci0gfQotIAotLS0gCi1H aXRMYWIKLQotCi1Gcm9tIDY1YzNkY2IxZWIzNWVjMGJkMTRiMTdiZWRmMzNkZTZjNjIxZjllZjMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2aXNh bj0yMD0yOFRyZXZpPUMzPUIxbz0yOT89IDxtYWlsQDN2MW4wLm5ldD4KLURhdGU6IE1vbiwgOCBK dW4gMjAyNiAxMzo0NDoxMyArMDIwMAotU3ViamVjdDogW1BBVENIIDA5LzEzXSBlZ2lzX2V0dTkw NTogQXZvaWQgcG90ZW50aWFsIHdyb25nIG1lbW9yeSBhY2Nlc3NlcwotCi0tLS0KLSBsaWJmcHJp bnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgfCA1MyArKysrKysrKysrKysrKysrKyst LS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5j IGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1pbmRleCA0MThiNDNh My4uYzliOWFiM2EgMTAwNjQ0Ci0tLS0gYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNf ZXR1OTA1LmMKLSsrKyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwot QEAgLTExMCwxMSArMTEwLDIxIEBAIGVnaXNfZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNlX3ByZWZp eCAoY29uc3QgZ3VjaGFyICpidWZmZXJfaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBndWNoYXIgKnZhbGlkX3ByZWZpeCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdzaXplICAgdmFsaWRfcHJlZml4X2xlbikKLSB7 Ci0tICBjb25zdCBnYm9vbGVhbiByZXN1bHQgPSBtZW1jbXAgKGJ1ZmZlcl9pbiArCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZ2lzX2V0dTkwNV9yZWFkX3ByZWZpeF9sZW4g KwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfQ0hFQ0tf QllURVNfTEVOR1RIKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRf cHJlZml4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9wcmVmaXhf bGVuKSA9PSAwOwotKyAgRnBpQnl0ZVJlYWRlciByZWFkZXI7Ci0rICBjb25zdCBndWludDggKmRh dGEgPSBOVUxMOwotKyAgZ2Jvb2xlYW4gcmVzdWx0OwotKwotKyAgZnBpX2J5dGVfcmVhZGVyX2lu aXQgKCZyZWFkZXIsIGJ1ZmZlcl9pbiwgYnVmZmVyX2luX2xlbik7Ci0rCi0rICBpZiAoIWZwaV9i eXRlX3JlYWRlcl9zZXRfcG9zICgmcmVhZGVyLCBlZ2lzX2V0dTkwNV9yZWFkX3ByZWZpeF9sZW4g KwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfQ0hFQ0tfQllU RVNfTEVOR1RIKSB8fAotKyAgICAgICFmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEgKCZyZWFkZXIs IHZhbGlkX3ByZWZpeF9sZW4sICZkYXRhKSkKLSsgICAgewotKyAgICAgIGZwX2RiZyAoIlJlc3Bv bnNlIHRvbyBzaG9ydCBmb3IgcHJlZml4IHZhbGlkYXRpb24iKTsKLSsgICAgICByZXR1cm4gRkFM U0U7Ci0rICAgIH0KLSsKLSsgIHJlc3VsdCA9IG1lbWNtcCAoZGF0YSwgdmFsaWRfcHJlZml4LCB2 YWxpZF9wcmVmaXhfbGVuKSA9PSAwOwotIAotICAgZnBfZGJnICgiUmVzcG9uc2UgcHJlZml4IHZh bGlkOiAlcyIsIHJlc3VsdCA/ICJ5ZXMiIDogIk5PIik7Ci0gICByZXR1cm4gcmVzdWx0OwotQEAg LTEyNiw5ICsxMzYsMjIgQEAgZWdpc19ldHU5MDVfdmFsaWRhdGVfcmVzcG9uc2Vfc3VmZml4IChj b25zdCBndWNoYXIgKmJ1ZmZlcl9pbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGd1Y2hhciAqdmFsaWRfc3VmZml4LAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgZ3NpemUgICB2YWxpZF9zdWZmaXhfbGVuKQotIHsKLS0g IGNvbnN0IGdib29sZWFuIHJlc3VsdCA9IG1lbWNtcCAoYnVmZmVyX2luICsgKGJ1ZmZlcl9pbl9s ZW4gLSB2YWxpZF9zdWZmaXhfbGVuKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFsaWRfc3VmZml4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxp ZF9zdWZmaXhfbGVuKSA9PSAwOwotKyAgRnBpQnl0ZVJlYWRlciByZWFkZXI7Ci0rICBjb25zdCBn dWludDggKmRhdGEgPSBOVUxMOwotKyAgZ2Jvb2xlYW4gcmVzdWx0OwotKwotKyAgZnBpX2J5dGVf cmVhZGVyX2luaXQgKCZyZWFkZXIsIGJ1ZmZlcl9pbiwgYnVmZmVyX2luX2xlbik7Ci0rCi0rICAv KiBHdWFyZCBhZ2FpbnN0IHVuc2lnbmVkIHVuZGVyZmxvdyBiZWZvcmUgY29tcHV0aW5nIHRoZSBz dWZmaXggcG9zaXRpb24uICovCi0rICBpZiAodmFsaWRfc3VmZml4X2xlbiA+IGJ1ZmZlcl9pbl9s ZW4gfHwKLSsgICAgICAhZnBpX2J5dGVfcmVhZGVyX3NldF9wb3MgKCZyZWFkZXIsIGJ1ZmZlcl9p bl9sZW4gLSB2YWxpZF9zdWZmaXhfbGVuKSB8fAotKyAgICAgICFmcGlfYnl0ZV9yZWFkZXJfZ2V0 X2RhdGEgKCZyZWFkZXIsIHZhbGlkX3N1ZmZpeF9sZW4sICZkYXRhKSkKLSsgICAgewotKyAgICAg IGZwX2RiZyAoIlJlc3BvbnNlIHRvbyBzaG9ydCBmb3Igc3VmZml4IHZhbGlkYXRpb24iKTsKLSsg ICAgICByZXR1cm4gRkFMU0U7Ci0rICAgIH0KLSsKLSsgIHJlc3VsdCA9IG1lbWNtcCAoZGF0YSwg dmFsaWRfc3VmZml4LCB2YWxpZF9zdWZmaXhfbGVuKSA9PSAwOwotIAotICAgZnBfZGJnICgiUmVz cG9uc2Ugc3VmZml4IHZhbGlkOiAlcyIsIHJlc3VsdCA/ICJ5ZXMiIDogIk5PIik7Ci0gICByZXR1 cm4gcmVzdWx0OwotQEAgLTE0NjcsMTAgKzE0OTAsMTAgQEAgZWdpc19ldHU5MDVfZGV2X2luaXRf aGFuZGxlciAoRnBpU3NtICAgKnNzbSwKLSBzdGF0aWMgdm9pZAotIGVnaXNfZXR1OTA1X3Byb2Jl IChGcERldmljZSAqZGV2aWNlKQotIHsKLS0gIEdVc2JEZXZpY2UgKnVzYl9kZXY7Ci0tICBHRXJy b3IgKmVycm9yID0gTlVMTDsKLSsgIGdfYXV0b3B0cihHRXJyb3IpIGVycm9yID0gTlVMTDsKLSAg IGdfYXV0b2ZyZWUgZ2NoYXIgKnNlcmlhbCA9IE5VTEw7Ci0gICBGcGlEZXZpY2VFZ2lzRXR1OTA1 ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsgIEdVc2JEZXZpY2Ug KnVzYl9kZXY7Ci0gCi0gICBmcF9kYmcgKCIlcyBlbnRlciAtLT4gIiwgR19TVFJGVU5DKTsKLSAK LUBAIC0xNDc5LDcgKzE1MDIsNyBAQCBlZ2lzX2V0dTkwNV9wcm9iZSAoRnBEZXZpY2UgKmRldmlj ZSkKLSAgIGlmICghZ191c2JfZGV2aWNlX29wZW4gKHVzYl9kZXYsICZlcnJvcikpCi0gICAgIHsK LSAgICAgICBmcF9kYmcgKCIlcyBnX3VzYl9kZXZpY2Vfb3BlbiBmYWlsZWQgJXMiLCBHX1NUUkZV TkMsIGVycm9yLT5tZXNzYWdlKTsKLS0gICAgICBmcGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRlIChk ZXZpY2UsIE5VTEwsIE5VTEwsIGVycm9yKTsKLSsgICAgICBmcGlfZGV2aWNlX3Byb2JlX2NvbXBs ZXRlIChkZXZpY2UsIE5VTEwsIE5VTEwsIGdfc3RlYWxfcG9pbnRlciAoJmVycm9yKSk7Ci0gICAg ICAgcmV0dXJuOwotICAgICB9Ci0gCi1AQCAtMTQ4Nyw3ICsxNTEwLDcgQEAgZWdpc19ldHU5MDVf cHJvYmUgKEZwRGV2aWNlICpkZXZpY2UpCi0gICAgIHsKLSAgICAgICBmcF9kYmcgKCIlcyBnX3Vz Yl9kZXZpY2VfcmVzZXQgZmFpbGVkICVzIiwgR19TVFJGVU5DLCBlcnJvci0+bWVzc2FnZSk7Ci0g ICAgICAgZ191c2JfZGV2aWNlX2Nsb3NlICh1c2JfZGV2LCBOVUxMKTsKLS0gICAgICBmcGlfZGV2 aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZpY2UsIE5VTEwsIE5VTEwsIGVycm9yKTsKLSsgICAgICBm cGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZpY2UsIE5VTEwsIE5VTEwsIGdfc3RlYWxfcG9p bnRlciAoJmVycm9yKSk7Ci0gICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi1AQCAtMTQ5NSw3ICsx NTE4LDcgQEAgZWdpc19ldHU5MDVfcHJvYmUgKEZwRGV2aWNlICpkZXZpY2UpCi0gICAgIHsKLSAg ICAgICBmcF9kYmcgKCIlcyBnX3VzYl9kZXZpY2VfY2xhaW1faW50ZXJmYWNlIGZhaWxlZCAlcyIs IEdfU1RSRlVOQywgZXJyb3ItPm1lc3NhZ2UpOwotICAgICAgIGdfdXNiX2RldmljZV9jbG9zZSAo dXNiX2RldiwgTlVMTCk7Ci0tICAgICAgZnBpX2RldmljZV9wcm9iZV9jb21wbGV0ZSAoZGV2aWNl LCBOVUxMLCBOVUxMLCBlcnJvcik7Ci0rICAgICAgZnBpX2RldmljZV9wcm9iZV9jb21wbGV0ZSAo ZGV2aWNlLCBOVUxMLCBOVUxMLCBnX3N0ZWFsX3BvaW50ZXIgKCZlcnJvcikpOwotICAgICAgIHJl dHVybjsKLSAgICAgfQotIAotQEAgLTE1MTIsNyArMTUzNSw3IEBAIGVnaXNfZXR1OTA1X3Byb2Jl IChGcERldmljZSAqZGV2aWNlKQotICAgICAgIGdfdXNiX2RldmljZV9yZWxlYXNlX2ludGVyZmFj ZSAoZnBpX2RldmljZV9nZXRfdXNiX2RldmljZSAoRlBfREVWSUNFIChkZXZpY2UpKSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIE5VTEwpOwotICAgICAgIGdf dXNiX2RldmljZV9jbG9zZSAodXNiX2RldiwgTlVMTCk7Ci0tICAgICAgZnBpX2RldmljZV9wcm9i ZV9jb21wbGV0ZSAoZGV2aWNlLCBOVUxMLCBOVUxMLCBlcnJvcik7Ci0rICAgICAgZnBpX2Rldmlj ZV9wcm9iZV9jb21wbGV0ZSAoZGV2aWNlLCBOVUxMLCBOVUxMLCBnX3N0ZWFsX3BvaW50ZXIgKCZl cnJvcikpOwotICAgICAgIHJldHVybjsKLSAgICAgfQotIAotQEAgLTE1MjYsNyArMTU0OSw3IEBA IGVnaXNfZXR1OTA1X3Byb2JlIChGcERldmljZSAqZGV2aWNlKQotICAgZ191c2JfZGV2aWNlX3Jl bGVhc2VfaW50ZXJmYWNlIChmcGlfZGV2aWNlX2dldF91c2JfZGV2aWNlIChGUF9ERVZJQ0UgKGRl dmljZSkpLCAwLCAwLCBOVUxMKTsKLSAgIGdfdXNiX2RldmljZV9jbG9zZSAodXNiX2RldiwgTlVM TCk7Ci0gCi0tICBmcGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZpY2UsIHNlcmlhbCwgTlVM TCwgZXJyb3IpOwotKyAgZnBpX2RldmljZV9wcm9iZV9jb21wbGV0ZSAoZGV2aWNlLCBzZXJpYWws IE5VTEwsIE5VTEwpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotLS0gCi1HaXRMYWIKLQotCi1Gcm9t IDViNTFmOWM4Y2NmMzM0MjQ2MzZlNGUzMmNiNjIwNTIwNGU4MTY5NDAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2aXNhbj0yMD0yOFRyZXZpPUMz PUIxbz0yOT89IDxtYWlsQDN2MW4wLm5ldD4KLURhdGU6IE1vbiwgOCBKdW4gMjAyNiAxMzo0Nzo0 MSArMDIwMAotU3ViamVjdDogW1BBVENIIDEwLzEzXSBlZ2lzX2V0dTkwNTogU2FuaXRpemUgcHJp bnQgZGF0YSBwYXJzaW5nCi0KLS0tLQotIGxpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19l dHU5MDUuYyB8IDIzICsrKysrKysrKysrKysrKystLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE2 IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJmcHJpbnQv ZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9j L2VnaXNfZXR1OTA1LmMKLWluZGV4IGM5YjlhYjNhLi4wYTU2NTVmMSAxMDA2NDQKLS0tLSBhL2xp YmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotKysrIGIvbGliZnByaW50L2Ry aXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1AQCAtMzE4LDcgKzMxOCw3IEBAIHN0YXRpYyBn dWludDE2Ci0gZWdpc19ldHU5MDVfZ2V0X2NoZWNrX2J5dGVzIChGcGlCeXRlUmVhZGVyICpyZWFk ZXIpCi0gewotICAgZnBfZGJnICgiR2V0IGNoZWNrIGJ5dGVzIik7Ci0tICBzaXplX3Qgc3VtX3Zh bHVlcyA9IDA7Ci0rICBndWludDY0IHN1bV92YWx1ZXMgPSAwOwotICAgZ3VpbnQxNiB2YWw7Ci0g Ci0gICBmcGlfYnl0ZV9yZWFkZXJfc2V0X3BvcyAocmVhZGVyLCAwKTsKLUBAIC01NjIsOCArNTYy LDYgQEAgZWdpc19ldHU5MDVfZ2V0X2RlbGV0ZV9jbWQgKEZwRGV2aWNlICpkZXZpY2UsCi0gICBj b25zdCBndWNoYXIgKnByaW50X2RhdGFfaWQgPSBOVUxMOwotICAgZ3NpemUgcHJpbnRfZGF0YV9p ZF9sZW4gPSAwOwotICAgZ19hdXRvZnJlZSBnY2hhciAqcHJpbnRfZGVzY3JpcHRpb24gPSBOVUxM OwotLSAgZ19hdXRvZnJlZSBndWNoYXIgKmVucm9sbGVkX3ByaW50X2lkID0gTlVMTDsKLS0gIGdf YXV0b2ZyZWUgZ3VjaGFyICpyZXN1bHQgPSBOVUxMOwotICAgZ2Jvb2xlYW4gd3JpdHRlbiA9IFRS VUU7Ci0gCi0gICAvKgotQEAgLTYzOSw3ICs2MzcsOCBAQCBlZ2lzX2V0dTkwNV9nZXRfZGVsZXRl X2NtZCAoRnBEZXZpY2UgKmRldmljZSwKLSAgICAgICBnX29iamVjdF9nZXQgKGRlbGV0ZV9wcmlu dCwgImRlc2NyaXB0aW9uIiwgJnByaW50X2Rlc2NyaXB0aW9uLCBOVUxMKTsKLSAgICAgICBnX29i amVjdF9nZXQgKGRlbGV0ZV9wcmludCwgImZwaS1kYXRhIiwgJnByaW50X2RhdGEsIE5VTEwpOwot IAotLSAgICAgIGlmICghZ192YXJpYW50X2NoZWNrX2Zvcm1hdF9zdHJpbmcgKHByaW50X2RhdGEs ICIoQGF5KSIsIEZBTFNFKSkKLSsgICAgICBpZiAoIXByaW50X2RhdGEgfHwKLSsgICAgICAgICAg IWdfdmFyaWFudF9jaGVja19mb3JtYXRfc3RyaW5nIChwcmludF9kYXRhLCAiKEBheSkiLCBGQUxT RSkpCi0gICAgICAgICB7Ci0gICAgICAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRh c2tfc3NtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9y X25ldyAoRlBfREVWSUNFX0VSUk9SX0RBVEFfSU5WQUxJRCkpOwotQEAgLTY1MCwxMSArNjQ5LDIx IEBAIGVnaXNfZXR1OTA1X2dldF9kZWxldGVfY21kIChGcERldmljZSAqZGV2aWNlLAotICAgICAg IHByaW50X2RhdGFfaWQgPSBnX3ZhcmlhbnRfZ2V0X2ZpeGVkX2FycmF5IChwcmludF9kYXRhX2lk X3ZhciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JnByaW50X2RhdGFfaWRfbGVuLCBzaXplb2YgKGd1Y2hhcikpOwotIAotLSAgICAgIGlmICghZ19z dHJfaGFzX3ByZWZpeCAocHJpbnRfZGVzY3JpcHRpb24sICJGUCIpKQotKyAgICAgIGlmIChwcmlu dF9kYXRhX2lkX2xlbiAhPSBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJWkUpCi0rICAg ICAgICB7Ci0rICAgICAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9yX25ld19tc2cg KEZQX0RFVklDRV9FUlJPUl9EQVRBX0lOVkFMSUQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JlZCBwcmludCBpZCBoYXMgIgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJ1bmV4cGVjdGVkIGxlbmd0aCAlenUiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50X2RhdGFfaWRfbGVuKSk7Ci0rICAgICAg ICAgIHJldHVybiBOVUxMOwotKyAgICAgICAgfQotKwotKyAgICAgIGlmICghcHJpbnRfZGVzY3Jp cHRpb24gfHwgIWdfc3RyX2hhc19wcmVmaXggKHByaW50X2Rlc2NyaXB0aW9uLCAiRlAiKSkKLSAg ICAgICAgIGZwX2RiZyAoIkZpbmdlcnByaW50ICclcycgd2FzIG5vdCBjcmVhdGVkIGJ5IGxpYmZw cmludDsgZGVsZXRpbmcgYW55d2F5LiIsCi0tICAgICAgICAgICAgICAgIHByaW50X2Rlc2NyaXB0 aW9uKTsKLSsgICAgICAgICAgICAgICAgcHJpbnRfZGVzY3JpcHRpb24gPyBwcmludF9kZXNjcmlw dGlvbiA6ICIobnVsbCkiKTsKLSAKLS0gICAgICBmcF9pbmZvICgiRGVsZXRlIGZpbmdlcnByaW50 ICVzIiwgcHJpbnRfZGVzY3JpcHRpb24pOwotKyAgICAgIGZwX2luZm8gKCJEZWxldGUgZmluZ2Vy cHJpbnQgJXMiLCBwcmludF9kZXNjcmlwdGlvbiA/IHByaW50X2Rlc2NyaXB0aW9uIDogIihudWxs KSIpOwotIAotICAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhICgmd3Jp dGVyLCBwcmludF9kYXRhX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJWkUpOwotLS0gCi1HaXRMYWIK LQotCi1Gcm9tIGMwYTk4MTEwNTMxZTc0YmViNTg3NmVmMDg0ZGEzZWQ4OTAxMTI4YzIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2aXNhbj0yMD0y OFRyZXZpPUMzPUIxbz0yOT89IDxtYWlsQDN2MW4wLm5ldD4KLURhdGU6IE1vbiwgOCBKdW4gMjAy NiAxMzo0ODowMCArMDIwMAotU3ViamVjdDogW1BBVENIIDExLzEzXSBlZ2lzX2V0dTkwNTogRG8g bm90IHRyeSB0byBjb250aW51ZSBhIGZhaWxlZCBTU00KLQotLS0tCi0gbGliZnByaW50L2RyaXZl cnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIHwgNCArKysrCi0gMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lz X2V0dTkwNS5jIGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1pbmRl eCAwYTU2NTVmMS4uZDQ1YjQ2ZTIgMTAwNjQ0Ci0tLS0gYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lz bW9jL2VnaXNfZXR1OTA1LmMKLSsrKyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19l dHU5MDUuYwotQEAgLTc1NSw2ICs3NTUsMTAgQEAgZWdpc19ldHU5MDVfZGVsZXRlX3J1bl9zdGF0 ZSAoRnBpU3NtICAgKnNzbSwKLSAgICAgICBlbHNlCi0gICAgICAgICBwYXlsb2FkID0gZWdpc19l dHU5MDVfZ2V0X2RlbGV0ZV9jbWQgKGRldmljZSwgTlVMTCwgJnBheWxvYWRfbGVuZ3RoKTsKLSAK LSsgICAgICAvKiBnZXRfZGVsZXRlX2NtZCBhbHJlYWR5IG1hcmtlZCB0YXNrX3NzbSBhcyBmYWls ZWQgKi8KLSsgICAgICBpZiAoIXBheWxvYWQpCi0rICAgICAgICByZXR1cm47Ci0rCi0gICAgICAg ZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgZ19zdGVhbF9wb2ludGVyICgmcGF5bG9hZCks IHBheWxvYWRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2ZyZWUsIGVn aXNfZXR1OTA1X2RlbGV0ZV9jYik7Ci0gICAgICAgYnJlYWs7Ci0tLSAKLUdpdExhYgotCi0KLUZy b20gMDZhZDQ0YmMxZGE3MzI1OThmODJhN2MxMWViMGJiYzI5ODUwYWMxMyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9 QzM9QjFvPTI5Pz0gPG1haWxAM3YxbjAubmV0PgotRGF0ZTogTW9uLCA4IEp1biAyMDI2IDE1OjE5 OjU0ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMTIvMTNdIGVnaXNfZXR1OTA1OiBJbXByb3ZlIHRo ZSBpZGVudGlmeSBjYWxsYmFjayBkYXRhIHJlYWRpbmcKLQotLS0tCi0gbGliZnByaW50L2RyaXZl cnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIHwgNDEgKysrKysrKysrKysrKystLS0tLS0tLS0tLQot IDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyBiL2xpYmZw cmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotaW5kZXggZDQ1YjQ2ZTIuLjdkZTMw NmI0IDEwMDY0NAotLS0tIGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5j Ci0rKysgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLUBAIC00OTYs MTEgKzQ5NiwxMCBAQCBlZ2lzX2V0dTkwNV9saXN0X2ZpbGxfZW5yb2xsZWRfaWRzX2NiIChGcERl dmljZSAqZGV2aWNlLAotICAgICovCi0gICB3aGlsZSAocmVhZCkKLSAgICAgewotLSAgICAgIGNv bnN0IGd1aW50OCAqZGF0YTsKLSsgICAgICBjb25zdCBndWludDggZGF0YVtFR0lTX0VUVTkwNV9G SU5HRVJQUklOVF9EQVRBX1NJWkVdOwotICAgICAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnByaW50X2lk ID0gTlVMTDsKLSAKLS0gICAgICByZWFkICY9IGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YSAoJnJl YWRlciwgRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YSk7Ci0rICAgICAgcmVhZCAmPSBmcGlfYnl0 ZV9yZWFkZXJfZ2V0X2RhdGFfc3RhdGljICgmcmVhZGVyLCBkYXRhKTsKLSAgICAgICBpZiAoIXJl YWQpCi0gICAgICAgICBicmVhazsKLSAKLUBAIC0xMTgyLDE1ICsxMTgxLDE2IEBAIGVnaXNfZXR1 OTA1X2lkZW50aWZ5X2NoZWNrX2NiIChGcERldmljZSAqZGV2aWNlLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnc2l6ZSAgICAgbGVuZ3RoX2luLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHRXJyb3IgICAqZXJyb3IpCi0gewotLSAgZnBfZGJnICgiSWRlbnRpZnkg Y2hlY2sgY2FsbGJhY2siKTsKLSAgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVW SUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotLSAgZ2NoYXIgZGV2aWNlX3ByaW50X2lkW0VHSVNf RVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRV07Ci0rICBndWludDggZGV2aWNlX3ByaW50X2lk W0VHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRV07Ci0gICBGcFByaW50ICpwcmludCA9 IE5VTEw7Ci0gICBGcFByaW50ICp2ZXJpZnlfcHJpbnQgPSBOVUxMOwotICAgR1B0ckFycmF5ICpw cmludHM7Ci0gICBnYm9vbGVhbiBmb3VuZCA9IEZBTFNFOwotICAgZ3VpbnQgaW5kZXg7Ci0gCi0r ICBmcF9kYmcgKCJJZGVudGlmeSBjaGVjayBjYWxsYmFjayIpOwotKwotICAgaWYgKGVycm9yKQot ICAgICB7Ci0gICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sIGVycm9y KTsKLUBAIC0xMjAzLDI5ICsxMjAzLDM0IEBAIGVnaXNfZXR1OTA1X2lkZW50aWZ5X2NoZWNrX2Ni IChGcERldmljZSAqZGV2aWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcnNwX2lkZW50aWZ5X21hdGNoX3N1ZmZpeCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9pZGVudGlmeV9tYXRjaF9zdWZmaXhfbGVuKSkK LSAgICAgewotKyAgICAgIEZwaUJ5dGVSZWFkZXIgcmVhZGVyOwotKwotICAgICAgIC8qCi0gICAg ICAgICAgT24gc3VjY2VzcywgdGhlcmUgaXMgYSAzMiBieXRlIGFycmF5IG9mICJzb21ldGhpbmci KD8pIGluIGNoYXJzIDE0LTQ1Ci0gICAgICAgICAgYW5kIHRoZW4gdGhlIDMyIGJ5dGUgYXJyYXkg SUQgb2YgdGhlIG1hdGNoZWQgcHJpbnQgY29tZXMgYXMgY2hhcnMgNDYtNzcKLSAgICAgICAgKi8K LS0gICAgICBtZW1jcHkgKGRldmljZV9wcmludF9pZCwKLS0gICAgICAgICAgICAgIGJ1ZmZlcl9p biArIEVHSVNfRVRVOTA1X0lERU5USUZZX1JFU1BPTlNFX1BSSU5UX0lEX09GRlNFVCwKLS0gICAg ICAgICAgICAgIEVHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSk7Ci0tCi0tICAgICAg LyogQ3JlYXRlIGEgbmV3IHByaW50IGZyb20gdGhpcyBkZXZpY2VfcHJpbnRfaWQgYW5kIHRoZW4g c2VlIGlmIGl0IG1hdGNoZXMKLS0gICAgICAgKiB0aGUgb25lIGluZGljYXRlZAotLSAgICAgICAq LwotLSAgICAgIHByaW50ID0gZnBfcHJpbnRfbmV3IChkZXZpY2UpOwotLSAgICAgIGVnaXNfZXR1 OTA1X3NldF9wcmludF9kYXRhIChwcmludCwgZGV2aWNlX3ByaW50X2lkLCBOVUxMKTsKLSsgICAg ICBmcGlfYnl0ZV9yZWFkZXJfaW5pdCAoJnJlYWRlciwgYnVmZmVyX2luLCBsZW5ndGhfaW4pOwot IAotLSAgICAgIGlmICghcHJpbnQpCi0rICAgICAgaWYgKCFmcGlfYnl0ZV9yZWFkZXJfc2V0X3Bv cyAoJnJlYWRlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VU VTkwNV9JREVOVElGWV9SRVNQT05TRV9QUklOVF9JRF9PRkZTRVQpIHx8Ci0rICAgICAgICAgICFm cGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGFfc3RhdGljICgmcmVhZGVyLCBkZXZpY2VfcHJpbnRfaWQp KQotICAgICAgICAgewotICAgICAgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNr X3NzbSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9u ZXdfbXNnIChGUF9ERVZJQ0VfRVJST1JfREFUQV9JTlZBTElELAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gYnVpbGQg YSBwcmludCBmcm9tICIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiZGV2aWNlIHJlc3BvbnNlLiIpKTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXdfbXNnIChGUF9ERVZJQ0VfRVJST1Jf UFJPVE8sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIklkZW50aWZ5IHJlc3BvbnNlIHRvbyAiCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNob3J0IGZvciBtYXRjaGVkIHBy aW50ICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiaWQuIikpOwotICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9Ci0gCi0rICAg ICAgZnBfZGJnICgiRGV2aWNlLXJlcG9ydGVkIG1hdGNoZWQgcHJpbnQgaWQ6ICVzIiwgZGV2aWNl X3ByaW50X2lkKTsKLSsKLSsgICAgICAvKiBDcmVhdGUgYSBuZXcgcHJpbnQgZnJvbSB0aGlzIGRl dmljZV9wcmludF9pZCBhbmQgdGhlbiBzZWUgaWYgaXQgbWF0Y2hlcwotKyAgICAgICAqIHRoZSBv bmUgaW5kaWNhdGVkCi0rICAgICAgICovCi0rICAgICAgcHJpbnQgPSBmcF9wcmludF9uZXcgKGRl dmljZSk7Ci0rICAgICAgZWdpc19ldHU5MDVfc2V0X3ByaW50X2RhdGEgKHByaW50LCAoY29uc3Qg Y2hhciAqKSBkZXZpY2VfcHJpbnRfaWQsIE5VTEwpOwotKwotICAgICAgIGZwX2luZm8gKCJJZGVu dGlmeSBzdWNjZXNzZnVsIGZvcjogJXMiLCBmcF9wcmludF9nZXRfZGVzY3JpcHRpb24gKHByaW50 KSk7Ci0gCi0gICAgICAgaWYgKGZwaV9kZXZpY2VfZ2V0X2N1cnJlbnRfYWN0aW9uIChkZXZpY2Up ID09IEZQSV9ERVZJQ0VfQUNUSU9OX0lERU5USUZZKQotLS0gCi1HaXRMYWIKLQotCi1Gcm9tIDZh NzFlMDM5YTEyZWFkMmIzMTIwYWQ0Nzg5YjkzYTQ0MTkzMDQ1ZWMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2aXNhbj0yMD0yOFRyZXZpPUMzPUIx bz0yOT89IDxtYWlsQDN2MW4wLm5ldD4KLURhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxMzo1NjoyNCAr MDIwMAotU3ViamVjdDogW1BBVENIIDEzLzEzXSBlZ2lzX2V0dTkwNTogRG91YmxlLWNoZWNrIHRo YXQgdGhlIGlkZW50aWZpZWQgSUQgaXMKLSBwYXJ0IG9mIHRoZSBlbnJvbGxlZCBsaXN0Ci0KLS0t LQotIGxpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyB8IDI3ICsrKysrKysr KysrKysrKysrKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKQotCi1k aWZmIC0tZ2l0IGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIGIvbGli ZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1pbmRleCA3ZGUzMDZiNC4uZGNk NzFmZjYgMTAwNjQ0Ci0tLS0gYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1 LmMKLSsrKyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotQEAgLTEy MDMsNiArMTIwMyw3IEBAIGVnaXNfZXR1OTA1X2lkZW50aWZ5X2NoZWNrX2NiIChGcERldmljZSAq ZGV2aWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNw X2lkZW50aWZ5X21hdGNoX3N1ZmZpeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJzcF9pZGVudGlmeV9tYXRjaF9zdWZmaXhfbGVuKSkKLSAgICAgewotKyAg ICAgIGdib29sZWFuIGlkX2tub3duID0gRkFMU0U7Ci0gICAgICAgRnBpQnl0ZVJlYWRlciByZWFk ZXI7Ci0gCi0gICAgICAgLyoKLUBAIC0xMjI1LDYgKzEyMjYsMzIgQEAgZWdpc19ldHU5MDVfaWRl bnRpZnlfY2hlY2tfY2IgKEZwRGV2aWNlICpkZXZpY2UsCi0gCi0gICAgICAgZnBfZGJnICgiRGV2 aWNlLXJlcG9ydGVkIG1hdGNoZWQgcHJpbnQgaWQ6ICVzIiwgZGV2aWNlX3ByaW50X2lkKTsKLSAK LSsgICAgICAvKiBXaGlsZSB0aGUgcmV0dXJuZWQgSUQgc2hvdWxkIGluZGVlZCBiZSBwYXJ0IG9m IHRoZSBlbnJvbGxlZCBsaXN0LCBzaW5jZQotKyAgICAgICAqIHdlIGdvdCBpdCwgbGV0J3MgZG91 YmxlIGNoZWNrIHRoYXQgdGhpcyBpcyByZWFsbHkgdGhlIGNhc2UuCi0rICAgICAgICovCi0rICAg ICAgaWYgKHNlbGYtPmVucm9sbGVkX2lkcykKLSsgICAgICAgIHsKLSsgICAgICAgICAgZm9yIChn dWludCBpID0gMDsgaSA8IHNlbGYtPmVucm9sbGVkX2lkcy0+bGVuOyBpKyspCi0rICAgICAgICAg ICAgewotKyAgICAgICAgICAgICAgaWYgKG1lbWNtcCAoZ19wdHJfYXJyYXlfaW5kZXggKHNlbGYt PmVucm9sbGVkX2lkcywgaSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VfcHJp bnRfaWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9GSU5HRVJQUklO VF9EQVRBX1NJWkUpID09IDApCi0rICAgICAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgICAg ICBpZF9rbm93biA9IFRSVUU7Ci0rICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAg ICAgICAgIH0KLSsgICAgICAgICAgICB9Ci0rICAgICAgICB9Ci0rCi0rICAgICAgaWYgKCFpZF9r bm93bikKLSsgICAgICAgIHsKLSsgICAgICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+ dGFza19zc20sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJy b3JfbmV3X21zZyAoRlBfREVWSUNFX0VSUk9SX1BST1RPLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXZpY2UgcmVwb3J0ZWQgYSBt YXRjaCAiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImZvciBhbiB1bmtub3duIHByaW50IGlkLiIpKTsKLSsgICAgICAgICAgcmV0dXJu OwotKyAgICAgICAgfQotKwotICAgICAgIC8qIENyZWF0ZSBhIG5ldyBwcmludCBmcm9tIHRoaXMg ZGV2aWNlX3ByaW50X2lkIGFuZCB0aGVuIHNlZSBpZiBpdCBtYXRjaGVzCi0gICAgICAgICogdGhl IG9uZSBpbmRpY2F0ZWQKLSAgICAgICAgKi8KLS0tIAotR2l0TGFiCi0KCmRpZmYgLS1naXQgYS9s aWJmcHJpbnQuc3BlYyBiL2xpYmZwcmludC5zcGVjCmluZGV4IDk2YTljYjIuLjdlNTRhYmQgMTAw NjQ0Ci0tLSBhL2xpYmZwcmludC5zcGVjCisrKyBiL2xpYmZwcmludC5zcGVjCkBAIC0xLDYgKzEs NiBAQAogTmFtZTogICAgICAgICAgIGxpYmZwcmludAogCi1WZXJzaW9uOiAgICAgICAgMS45NC4x MAorVmVyc2lvbjogICAgICAgIDEuOTQuMTAwCiBSZWxlYXNlOiAgICAgICAgJWF1dG9yZWxlYXNl CiBTdW1tYXJ5OiAgICAgICAgVG9vbGtpdCBmb3IgZmluZ2VycHJpbnQgc2Nhbm5lcgogCkBAIC0x MSwyMCArMTEsNiBAQCBMaWNlbnNlOiAgICAgICAgTEdQTC0yLjEtb3ItbGF0ZXIgQU5EIE5JU1Qt UEQKIFVSTDogICAgICAgICAgICBodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy93aWtpL1NvZnR3 YXJlL2ZwcmludC9saWJmcHJpbnQKIFNvdXJjZTA6ICAgICAgICBodHRwczovL2dpdGxhYi5mcmVl ZGVza3RvcC5vcmcvbGliZnByaW50L2xpYmZwcmludC8tL2FyY2hpdmUvdiV7dmVyc2lvbn0vbGli ZnByaW50LXYle3ZlcnNpb259LnRhci5negogCi0jIEJhY2twb3J0IGZyb20gdXBzdHJlYW0KLVBh dGNoMDAwMDE6ICAgICBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvbGliZnByaW50L2xp YmZwcmludC8tL2NvbW1pdC8yYzc4NDJjOTA1MTQ3YTJkMTI3YzFiMTY4YjJlOWQ0My5wYXRjaAot Ci0jIHRoZSB1cGRhdGVzIGZvciB0aGUgZnBpCi1QYXRjaDEwMDAxOiAgICAgMDAwMS1kb2MtSW5j bHVkZS1CaW5hcnktYnVmZmVyLUktTy1zZWN0aW9uLWZvci10aGUtYnl0ZS1yLnBhdGNoCi1QYXRj aDEwMDAyOiAgICAgMDAwMi1mcGktYnl0ZS13cml0ZXItQWRkLUFQSXMtdG8td3JpdGUtYW5kLWdl dC1HQnl0ZXMucGF0Y2gKLVBhdGNoMTAwMDM6ICAgICAwMDAzLWZwaS1ieXRlLXJlYWRlci1BZGQt c3VwcG9ydC10by1yZWFkLWFuZC1nZXQtcGVlay1HQnkucGF0Y2gKLVBhdGNoMTAwMDQ6ICAgICAw MDA0LWZwaS1ieXRlLXJlYWRlci1BZGQtc3VwcG9ydC10by1yZWFkLXRvLWEtc3RhdGljLWJ1ZmYu cGF0Y2gKLVBhdGNoMTAwMDU6ICAgICAwMDA1LWZwaS11c2ItdHJhbnNmZXItQWRkLW1pc3Npbmct ZGVmaW5pdGlvbi1vZi1zZXRfc2hvcnQucGF0Y2gKLVBhdGNoMTAwMDY6ICAgICAwMDA2LWZwaS11 c2ItdHJhbnNmZXItV3JhcC1nX2Vycm9yX25ldy1hcmd1bWVudHMucGF0Y2gKLSMgQWRkIEVHSVMg cmVhZGVycwotIyBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvbGliZnByaW50L2xpYmZw cmludC8tL21lcmdlX3JlcXVlc3RzLzU2MQotUGF0Y2gxMDAwNzogICAgIGVnaXNfcmVhZGVyLnBh dGNoCi0KIEJ1aWxkUmVxdWlyZXM6ICBtZXNvbgogQnVpbGRSZXF1aXJlczogIGdjYwogQnVpbGRS ZXF1aXJlczogIGdjYy1jKysKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBm M2EzM2ZmLi42NzUxMDE3IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEg KzEgQEAKLVNIQTUxMiAobGliZnByaW50LXYxLjk0LjEwLnRhci5neikgPSA3YTM0NmNiODM2MjNl NDQ0N2Q2N2M1YTkzMmNiMmQ5OGI2ZTQyZTM4ZWFlMTM0ZWIwM2ExYzhmNjFiMmExZTYwNmI3ODk2 NzYyOWJiZGRiMWRiMTc0ZDczMGIzMThjOTQyYzNhZTljZDQ1MmYzMGE2ZDI3M2Q5MTVmYzk3ZWM0 MworU0hBNTEyIChsaWJmcHJpbnQtdjEuOTQuMTAwLnRhci5neikgPSBjN2ExNjdiODQ5ZmQzY2Qw Y2NjODYxZDRjMDIxNTY4MjA5ZWVkYWIwMzhiYmJmZjE2MDgyNWFmNDFlZmFmNWRiNTVkMWMzOGRh OTg0MTlmYTAzNDMzMzgyMGI5MDE1MmRjOTRhOTc1ODI1ZDVkNjQ2ZjNmMWVmN2Y4ZDA0ZTI5OQo=