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: Bastien Nocera To: git-commits@fedoraproject.org Subject: [rpms/gnome-user-share] wip/oholy/f45-update: - Update to 2.29.91 Date: Wed, 24 Jun 2026 11:34:24 GMT Message-ID: <178230086409.1.8218230223086002151.rpms-gnome-user-share-f0a1c3ab37c0@fedoraproject.org> List-ID: X-Git-Repo: rpms/gnome-user-share X-Git-Branch: wip/oholy/f45-update X-Git-Rev: f0a1c3ab37c0e61608f5ad681176324b8b14cb88 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ25vbWUtdXNlci1z aGFyZQpCcmFuY2ggOiB3aXAvb2hvbHkvZjQ1LXVwZGF0ZQpDb21taXQgOiBmMGExYzNhYjM3YzBl NjE2MDhmNWFkNjgxMTc2MzI0YjhiMTRjYjg4CkF1dGhvciA6IEJhc3RpZW4gTm9jZXJhIDxoYWRl c3NAZmVkb3JhcHJvamVjdC5vcmc+CkRhdGUgICA6IDIwMTAtMDItMjRUMTE6MDY6MjIrMDA6MDAK U3RhdHMgIDogKzcvLTEwOTYgaW4gOCBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9y YXByb2plY3Qub3JnL3JwbXMvZ25vbWUtdXNlci1zaGFyZS9jL2YwYTFjM2FiMzdjMGU2MTYwOGY1 YWQ2ODExNzYzMjRiOGIxNGNiODg/YnJhbmNoPXdpcC9vaG9seS9mNDUtdXBkYXRlCgpMb2c6Ci0g VXBkYXRlIHRvIDIuMjkuOTEKCi0tLQpkaWZmIC0tZ2l0IGEvLmN2c2lnbm9yZSBiLy5jdnNpZ25v cmUKaW5kZXggM2VkNjVkNi4uNDdkMjM0ZiAxMDA2NDQKLS0tIGEvLmN2c2lnbm9yZQorKysgYi8u Y3ZzaWdub3JlCkBAIC0xICsxIEBACi1nbm9tZS11c2VyLXNoYXJlLTIuMjguMS50YXIuYnoyCitn bm9tZS11c2VyLXNoYXJlLTIuMjkuOTEudGFyLmJ6MgoKZGlmZiAtLWdpdCBhLzAwMDEtQXZvaWQt Y3Jhc2hpbmctd2hlbi1kYnVzX2dfcHJveHlfY2FsbC1mYWlscy1idXQtd2l0aC5wYXRjaCBiLzAw MDEtQXZvaWQtY3Jhc2hpbmctd2hlbi1kYnVzX2dfcHJveHlfY2FsbC1mYWlscy1idXQtd2l0aC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y5NmRiZC4uMDAwMDAwMAotLS0g YS8wMDAxLUF2b2lkLWNyYXNoaW5nLXdoZW4tZGJ1c19nX3Byb3h5X2NhbGwtZmFpbHMtYnV0LXdp dGgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1Gcm9tIGYyNmRkNGE3ZWJl ZDkwZDgxYTk0MmYwYTNjYWU4ZDc0MWJiYjRlZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+Ci1EYXRlOiBUdWUsIDEwIE5v diAyMDA5IDE2OjI3OjEzICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIEF2b2lkIGNyYXNoaW5nIHdo ZW4gZGJ1c19nX3Byb3h5X2NhbGwoKSBmYWlscyBidXQgd2l0aG91dCBhbiBlcnJvcgotCi1TZWUg aHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD01MzM5NzcKLS0tLQot IHNyYy9vYmV4ZnRwLmMgfCAgIDExICsrKysrKystLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCA3IGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvb2JleGZ0cC5j IGIvc3JjL29iZXhmdHAuYwotaW5kZXggMDJlODk1Ni4uMTAzN2ExMCAxMDA2NDQKLS0tLSBhL3Ny Yy9vYmV4ZnRwLmMKLSsrKyBiL3NyYy9vYmV4ZnRwLmMKLUBAIC0xMTAsMTEgKzExMCwxNCBAQCBv YmV4ZnRwX3N0b3AgKGdib29sZWFuIHN0b3BfbWFuYWdlcikKLSAJCXJldHVybjsKLSAKLSAJaWYg KGRidXNfZ19wcm94eV9jYWxsIChzZXJ2ZXJfcHJveHksICJDbG9zZSIsICZlcnIsIEdfVFlQRV9J TlZBTElELCBHX1RZUEVfSU5WQUxJRCkgPT0gRkFMU0UpIHsKLS0JCWlmIChnX2Vycm9yX21hdGNo ZXMgKGVyciwgREJVU19HRVJST1IsIERCVVNfR0VSUk9SX1JFTU9URV9FWENFUFRJT04pID09IEZB TFNFIHx8Ci0rCQlpZiAoZXJyID09IE5VTEwgfHwKLSsJCSAgICBnX2Vycm9yX21hdGNoZXMgKGVy ciwgREJVU19HRVJST1IsIERCVVNfR0VSUk9SX1JFTU9URV9FWENFUFRJT04pID09IEZBTFNFIHx8 Ci0gCQkgICAgZGJ1c19nX2Vycm9yX2hhc19uYW1lIChlcnIsICJvcmcub3Blbm9iZXguRXJyb3Iu Tm90U3RhcnRlZCIpID09IEZBTFNFKSB7Ci0tCQkJZ19wcmludGVyciAoIlN0b3BwaW5nIEJsdWV0 b290aCBPYmV4RlRQIHNlcnZlciBmYWlsZWQ6ICVzXG4iLAotLQkJCQkgICAgZXJyLT5tZXNzYWdl KTsKLS0JCQlnX2Vycm9yX2ZyZWUgKGVycik7Ci0rCQkJaWYgKGVyciAhPSBOVUxMKSB7Ci0rCQkJ CWdfcHJpbnRlcnIgKCJTdG9wcGluZyBCbHVldG9vdGggT2JleEZUUCBzZXJ2ZXIgZmFpbGVkOiAl c1xuIiwKLSsJCQkJCSAgICBlcnItPm1lc3NhZ2UpOwotKwkJCQlnX2Vycm9yX2ZyZWUgKGVycik7 Ci0rCQkJfQotIAkJCXJldHVybjsKLSAJCX0KLSAJCWdfZXJyb3JfZnJlZSAoZXJyKTsKLS0tIAot MS42LjUuMgotCgpkaWZmIC0tZ2l0IGEvMDAwMS1CdWctNTU4MjQ0LUVuYWJsaW5nLWdub21lLXVz ZXItc2hhcmUtcmVxdWlyZXMtY2hhLnBhdGNoIGIvMDAwMS1CdWctNTU4MjQ0LUVuYWJsaW5nLWdu b21lLXVzZXItc2hhcmUtcmVxdWlyZXMtY2hhLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA5YzMzYzA0Li4wMDAwMDAwCi0tLSBhLzAwMDEtQnVnLTU1ODI0NC1FbmFibGluZy1n bm9tZS11c2VyLXNoYXJlLXJlcXVpcmVzLWNoYS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY4 NCArMCwwIEBACi1Gcm9tIGI5Njk3MGE2YmY4ZjEwNzBhM2MwOGIxYzc4MWVmMDhkMmViY2U1MjUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhh ZGVzcy5uZXQ+Ci1EYXRlOiBUdWUsIDggU2VwIDIwMDkgMTc6MjY6MzUgKzAxMDAKLVN1YmplY3Q6 IFtQQVRDSF0gPT91dGYtOD9xP0J1Zz1DMj1BMDU1ODI0ND0yMC09MjBFbmFibGluZz0yMGdub21l LXVzZXItc2hhcmU9MjByZXF1aXJlcz0yMGNoYW5naW5nPTIwcHJlZmVyZW5jZT0yMGluPTIwY2Fw cGxldD89Ci1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PXV0Zi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLUFkZCBhIGNsdWVi YXIgdG8gdGhlIFB1YmxpYyBhbmQgRG93bmxvYWRzIGZvbGRlcnMsIHRvIGFsbG93IGxhdW5jaGlu ZwotdGhlIHNoYXJpbmcgcHJlZmVyZW5jZXMuCi0tLS0KLSBjb25maWd1cmUuaW4gICAgICAgICAg ICAgfCAgICA4ICsrCi0gcG8vUE9URklMRVMuaW4gICAgICAgICAgIHwgICAgMiArCi0gc3JjL01h a2VmaWxlLmFtICAgICAgICAgIHwgICAxMiArKwotIHNyYy9uYXV0aWx1cy1zaGFyZS1iYXIuYyB8 ICAyMjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSBzcmMvbmF1dGlsdXMt c2hhcmUtYmFyLmggfCAgIDYxICsrKysrKysrKysKLSBzcmMvc2hhcmUtZXh0ZW5zaW9uLmMgICAg fCAgMjkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSA2 IGZpbGVzIGNoYW5nZWQsIDYwMSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQotIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvbmF1dGlsdXMtc2hhcmUtYmFyLmMKLSBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL25hdXRpbHVzLXNoYXJlLWJhci5oCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9zaGFy ZS1leHRlbnNpb24uYwotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmlu Ci1pbmRleCAyNTZjNTk2Li5iOWY3NzJlIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmluCi0rKysg Yi9jb25maWd1cmUuaW4KLUBAIC0xMjQsNiArMTI0LDE0IEBAIEFDX0FSR19XSVRIKFttb2R1bGVz LXBhdGhdLAotIE1PRFVMRVNfUEFUSD0kd2l0aF9tb2R1bGVzX3BhdGgKLSBBQ19TVUJTVChNT0RV TEVTX1BBVEgpCi0gCi0rZG5sPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0rZG5sIENoZWNrIGZvciBuYXV0 aWx1cyBmb3IgdGhlIHNoYXJlIGJhcgotKwotK1BLR19DSEVDS19NT0RVTEVTKEVYVEVOU0lPTiwK LSsJCSAgIGxpYm5hdXRpbHVzLWV4dGVuc2lvbikKLStOQVVUSUxVU0RJUj1gcGtnLWNvbmZpZyAt LXZhcmlhYmxlPWV4dGVuc2lvbmRpciBsaWJuYXV0aWx1cy1leHRlbnNpb25gCi0rQUNfU1VCU1Qo TkFVVElMVVNESVIpCi0rCi0gZG5sID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gCi0gZG5sIFR1cm4gb24g dGhlIGFkZGl0aW9uYWwgd2FybmluZ3MgbGFzdCwgc28gLVdlcnJvciBkb2Vzbid0IGFmZmVjdCBv dGhlciB0ZXN0cy4KLWRpZmYgLS1naXQgYS9wby9QT1RGSUxFUy5pbiBiL3BvL1BPVEZJTEVTLmlu Ci1pbmRleCA2ZjdiZGVjLi5jMDk0ZmUwIDEwMDY0NAotLS0tIGEvcG8vUE9URklMRVMuaW4KLSsr KyBiL3BvL1BPVEZJTEVTLmluCi1AQCAtNCw2ICs0LDggQEAgZGF0YS9kZXNrdG9wX2dub21lX2Zp bGVfc2hhcmluZy5zY2hlbWFzLmluCi0gW3R5cGU6IGdldHRleHQvZ2xhZGVdZGF0YS9maWxlLXNo YXJlLXByb3BlcnRpZXMudWkKLSBkYXRhL2dub21lLXVzZXItc2hhcmUtcHJvcGVydGllcy5kZXNr dG9wLmluCi0gZGF0YS9nbm9tZS11c2VyLXNoYXJlLmRlc2t0b3AuaW4uaW4KLStzcmMvbmF1dGls dXMtc2hhcmUtYmFyLmMKLStzcmMvc2hhcmUtZXh0ZW5zaW9uLmMKLSBzcmMvZmlsZS1zaGFyZS1w cm9wZXJ0aWVzLmMKLSBzcmMvaHR0cC5jCi0gc3JjL29iZXhwdXNoLmMKLWRpZmYgLS1naXQgYS9z cmMvTWFrZWZpbGUuYW0gYi9zcmMvTWFrZWZpbGUuYW0KLWluZGV4IDA2YTUyNDMuLjQ3YjIyZTcg MTAwNjQ0Ci0tLS0gYS9zcmMvTWFrZWZpbGUuYW0KLSsrKyBiL3NyYy9NYWtlZmlsZS5hbQotQEAg LTI2LDYgKzI2LDcgQEAgSU5DTFVERVM9CVwKLSAJLURIVFRQRF9NT0RVTEVTX1BBVEg9XCIiJChN T0RVTEVTX1BBVEgpIlwiCVwKLSAJLUkkKHRvcF9zcmNkaXIpIAkJCQlcCi0gCS1JJCh0b3BfYnVp bGRkaXIpIAkJCQlcCi0rCSQoRVhURU5TSU9OX0NGTEFHUykJCQkJXAotIAkkKFVTRVJfU0hBUkVf Q0ZMQUdTKQkJCQlcCi0gCSQoVVNFUl9TSEFSRV9DT05GSUdfQ0ZMQUdTKQkJCVwKLSAJJChYX0NG TEFHUykKLUBAIC01Niw2ICs1NywxNyBAQCBnbm9tZV9maWxlX3NoYXJlX3Byb3BlcnRpZXNfU09V UkNFUyA9CVwKLSBnbm9tZV9maWxlX3NoYXJlX3Byb3BlcnRpZXNfTERBREQgPSBcCi0gCSQoVVNF Ul9TSEFSRV9DT05GSUdfTElCUykKLSAKLStuYXV0aWx1c19leHRlbnNpb25kaXIgPSAkKE5BVVRJ TFVTRElSKQotK25hdXRpbHVzX2V4dGVuc2lvbl9MVExJQlJBUklFUyA9IGxpYm5hdXRpbHVzLXNo YXJlLWV4dGVuc2lvbi5sYQotKwotK2xpYm5hdXRpbHVzX3NoYXJlX2V4dGVuc2lvbl9sYV9TT1VS Q0VTID0gICAgICAgICBcCi0rCW5hdXRpbHVzLXNoYXJlLWJhci5jICAgICAgICAgICAgICAgICAg ICAgXAotKwluYXV0aWx1cy1zaGFyZS1iYXIuaCAgICAgICAgICAgICAgICAgICAgIFwKLSsJc2hh cmUtZXh0ZW5zaW9uLmMgICAgICAgICAgICAgICAgICAgICAgICBcCi0rCSQoTlVMTCkKLSsKLSts aWJuYXV0aWx1c19zaGFyZV9leHRlbnNpb25fbGFfTElCQUREID0gJChFWFRFTlNJT05fTElCUykK LStsaWJuYXV0aWx1c19zaGFyZV9leHRlbnNpb25fbGFfTERGTEFHUyA9IC1hdm9pZC12ZXJzaW9u IC1tb2R1bGUgLW5vLXVuZGVmaW5lZAotIAotIEVYVFJBX0RJU1QgPSBtYXJzaGFsLmxpc3QKLSAK LWRpZmYgLS1naXQgYS9zcmMvbmF1dGlsdXMtc2hhcmUtYmFyLmMgYi9zcmMvbmF1dGlsdXMtc2hh cmUtYmFyLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5iM2M0MjdjCi0t LS0gL2Rldi9udWxsCi0rKysgYi9zcmMvbmF1dGlsdXMtc2hhcmUtYmFyLmMKLUBAIC0wLDAgKzEs MjI2IEBACi0rLyogLSotIE1vZGU6IEM7IHRhYi13aWR0aDogODsgaW5kZW50LXRhYnMtbW9kZTog bmlsOyBjLWJhc2ljLW9mZnNldDogOCAtKi0KLSsgKgotKyAqIENvcHlyaWdodCAoQykgMjAwNSBX aWxsaWFtIEpvbiBNY0Nhbm4gPG1jY2FubkBqaHUuZWR1PgotKyAqCi0rICogVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK LSsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQotKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICogKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KLSsgKgotKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICogTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rICoKLSsgKiBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQotKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCi0rICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0g U3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSsgKgotKyAqIEF1dGhvcnM6 IFdpbGxpYW0gSm9uIE1jQ2FubiA8bWNjYW5uQGpodS5lZHU+Ci0rICoKLSsgKi8KLSsKLSsjaW5j bHVkZSAiY29uZmlnLmgiCi0rCi0rI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0rI2luY2x1 ZGUgPGd0ay9ndGsuaD4KLSsKLSsjaW5jbHVkZSAibmF1dGlsdXMtc2hhcmUtYmFyLmgiCi0rCi0r c3RhdGljIHZvaWQgbmF1dGlsdXNfc2hhcmVfYmFyX2ZpbmFsaXplICAgKEdPYmplY3QgKm9iamVj dCk7Ci0rCi0rI2RlZmluZSBOQVVUSUxVU19TSEFSRV9CQVJfR0VUX1BSSVZBVEUobykgKEdfVFlQ RV9JTlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCBOQVVUSUxVU19UWVBFX1NIQVJFX0JBUiwgTmF1 dGlsdXNTaGFyZUJhclByaXZhdGUpKQotKwotK3N0cnVjdCBOYXV0aWx1c1NoYXJlQmFyUHJpdmF0 ZQotK3sKLSsgICAgICAgIEd0a1Rvb2x0aXBzICp0b29sdGlwczsKLSsgICAgICAgIEd0a1dpZGdl dCAgICpidXR0b247Ci0rICAgICAgICBHdGtXaWRnZXQgICAqbGFiZWw7Ci0rICAgICAgICBjaGFy ICAgICAgICAqc3RyOwotK307Ci0rCi0rZW51bSB7Ci0rCVBST1BfMCwKLSsJUFJPUF9MQUJFTAot K307Ci0rCi0rZW51bSB7Ci0rICAgICAgIEFDVElWQVRFLAotKyAgICAgICBMQVNUX1NJR05BTAot K307Ci0rCi0rc3RhdGljIGd1aW50ICAgICAgICAgICBzaWduYWxzIFtMQVNUX1NJR05BTF0gPSB7 IDAsIH07Ci0rCi0rR19ERUZJTkVfVFlQRSAoTmF1dGlsdXNTaGFyZUJhciwgbmF1dGlsdXNfc2hh cmVfYmFyLCBHVEtfVFlQRV9IQk9YKQotKwotK0d0a1dpZGdldCAqCi0rbmF1dGlsdXNfc2hhcmVf YmFyX2dldF9idXR0b24gKE5hdXRpbHVzU2hhcmVCYXIgKmJhcikKLSt7Ci0rICAgICAgICBHdGtX aWRnZXQgKmJ1dHRvbjsKLSsKLSsgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChiYXIgIT0g TlVMTCwgTlVMTCk7Ci0rCi0rICAgICAgICBidXR0b24gPSBiYXItPnByaXYtPmJ1dHRvbjsKLSsK LSsgICAgICAgIHJldHVybiBidXR0b247Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rbmF1dGlsdXNf c2hhcmVfYmFyX3NldF9wcm9wZXJ0eSAoR09iamVjdCAgICAgICAgICAgICpvYmplY3QsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgIHByb3BfaWQs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHVmFsdWUgICAgICAgKnZh bHVlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAgICAgICAg ICpwc3BlYykKLSt7Ci0rICAgICAgICBOYXV0aWx1c1NoYXJlQmFyICpzZWxmOwotKwotKyAgICAg ICAgc2VsZiA9IE5BVVRJTFVTX1NIQVJFX0JBUiAob2JqZWN0KTsKLSsKLSsgICAgICAgIHN3aXRj aCAocHJvcF9pZCkgewotKwljYXNlIFBST1BfTEFCRUw6IHsKLSsJCWNoYXIgKnN0cjsKLSsJCWdf ZnJlZSAoc2VsZi0+cHJpdi0+c3RyKTsKLSsJCXN0ciA9IGdfc3RyZHVwX3ByaW50ZiAoIjxpPiVz PC9pPiIsIGdfdmFsdWVfZ2V0X3N0cmluZyAodmFsdWUpKTsKLSsJCWd0a19sYWJlbF9zZXRfbWFy a3VwIChHVEtfTEFCRUwgKHNlbGYtPnByaXYtPmxhYmVsKSwgc3RyKTsKLSsJCXNlbGYtPnByaXYt PnN0ciA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOwotKwkJYnJlYWs7Ci0rCX0KLSsgICAg ICAgIGRlZmF1bHQ6Ci0rICAgICAgICAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9Q RVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7Ci0rICAgICAgICAgICAgICAgIGJyZWFr OwotKyAgICAgICAgfQotK30KLSsKLStzdGF0aWMgdm9pZAotK25hdXRpbHVzX3NoYXJlX2Jhcl9n ZXRfcHJvcGVydHkgKEdPYmplY3QgICAgKm9iamVjdCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGd1aW50ICAgICAgIHByb3BfaWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHVmFsdWUgICAgICp2YWx1ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdQYXJhbVNwZWMgKnBzcGVjKQotK3sKLSsgICAgICAgIE5hdXRpbHVzU2hhcmVCYXIgKnNl bGY7Ci0rCi0rICAgICAgICBzZWxmID0gTkFVVElMVVNfU0hBUkVfQkFSIChvYmplY3QpOwotKwot KyAgICAgICAgc3dpdGNoIChwcm9wX2lkKSB7Ci0rCWNhc2UgUFJPUF9MQUJFTDoKLSsJCWdfdmFs dWVfc2V0X3N0cmluZyAodmFsdWUsIHNlbGYtPnByaXYtPnN0cik7Ci0rCQlicmVhazsKLSsgICAg ICAgIGRlZmF1bHQ6Ci0rICAgICAgICAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9Q RVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7Ci0rICAgICAgICAgICAgICAgIGJyZWFr OwotKyAgICAgICAgfQotK30KLSsKLStzdGF0aWMgdm9pZAotK25hdXRpbHVzX3NoYXJlX2Jhcl9j bGFzc19pbml0IChOYXV0aWx1c1NoYXJlQmFyQ2xhc3MgKmtsYXNzKQotK3sKLSsgICAgICAgIEdP YmplY3RDbGFzcyAgICpvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyAoa2xhc3MpOwotKwot KyAgICAgICAgb2JqZWN0X2NsYXNzLT5maW5hbGl6ZSAgICAgPSBuYXV0aWx1c19zaGFyZV9iYXJf ZmluYWxpemU7Ci0rICAgICAgICBvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IG5hdXRpbHVz X3NoYXJlX2Jhcl9nZXRfcHJvcGVydHk7Ci0rICAgICAgICBvYmplY3RfY2xhc3MtPnNldF9wcm9w ZXJ0eSA9IG5hdXRpbHVzX3NoYXJlX2Jhcl9zZXRfcHJvcGVydHk7Ci0rCi0rICAgICAgICBnX3R5 cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGtsYXNzLCBzaXplb2YgKE5hdXRpbHVzU2hhcmVCYXJQcml2 YXRlKSk7Ci0rCi0rICAgICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChHX09C SkVDVF9DTEFTUyhrbGFzcyksCi0rCQkJCQkgUFJPUF9MQUJFTCwgZ19wYXJhbV9zcGVjX3N0cmlu ZyAoImxhYmVsIiwKLSsJCQkJCQkJCQkgICJsYWJlbCIsICJUaGUgd2lkZ2V0J3MgbWFpbiBsYWJl bCIsIE5VTEwsIEdfUEFSQU1fUkVBRFdSSVRFKSk7Ci0rCi0rCi0rICAgICAgICBzaWduYWxzIFtB Q1RJVkFURV0gPSBnX3NpZ25hbF9uZXcgKCJhY3RpdmF0ZSIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTIChrbGFzcyksCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX1JVTl9MQVNU LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1NUUlVDVF9P RkZTRVQgKE5hdXRpbHVzU2hhcmVCYXJDbGFzcywgYWN0aXZhdGUpLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9J RCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX05P TkUsIDApOwotKwotK30KLSsKLStzdGF0aWMgdm9pZAotK2J1dHRvbl9jbGlja2VkX2NiIChHdGtX aWRnZXQgICAgICAgKmJ1dHRvbiwKLSsgICAgICAgICAgICAgICAgICAgTmF1dGlsdXNTaGFyZUJh ciAqYmFyKQotK3sKLSsgICAgICAgIGdfc2lnbmFsX2VtaXQgKGJhciwgc2lnbmFscyBbQUNUSVZB VEVdLCAwKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStuYXV0aWx1c19zaGFyZV9iYXJfaW5pdCAo TmF1dGlsdXNTaGFyZUJhciAqYmFyKQotK3sKLSsJR3RrV2lkZ2V0ICAgKmxhYmVsOwotKyAgICAg ICAgR3RrV2lkZ2V0ICAgKmhib3g7Ci0rICAgICAgICBHdGtXaWRnZXQgICAqdmJveDsKLSsgICAg ICAgIEd0a1dpZGdldCAgICppbWFnZTsKLSsgICAgICAgIGNoYXIgICAgICAgICpoaW50OwotKwot KyAgICAgICAgYmFyLT5wcml2ID0gTkFVVElMVVNfU0hBUkVfQkFSX0dFVF9QUklWQVRFIChiYXIp OwotKwotKyAgICAgICAgYmFyLT5wcml2LT50b29sdGlwcyA9IGd0a190b29sdGlwc19uZXcgKCk7 Ci0rICAgICAgICBnX29iamVjdF9yZWYgKGJhci0+cHJpdi0+dG9vbHRpcHMpOwotKyAgICAgICAg Z3RrX29iamVjdF9zaW5rIChHVEtfT0JKRUNUIChiYXItPnByaXYtPnRvb2x0aXBzKSk7Ci0rCi0r ICAgICAgICBoYm94ID0gR1RLX1dJREdFVCAoYmFyKTsKLSsKLSsgICAgICAgIHZib3ggPSBndGtf dmJveF9uZXcgKEZBTFNFLCA2KTsKLSsgICAgICAgIGd0a193aWRnZXRfc2hvdyAodmJveCk7Ci0r ICAgICAgICBndGtfYm94X3BhY2tfc3RhcnQgKEdUS19CT1ggKGhib3gpLCB2Ym94LCBUUlVFLCBU UlVFLCAwKTsKLSsKLSsgICAgICAgIGxhYmVsID0gZ3RrX2xhYmVsX25ldyAoXygiUGVyc29uYWwg RmlsZSBTaGFyaW5nIikpOwotKyAgICAgICAgZ3RrX21pc2Nfc2V0X2FsaWdubWVudCAoR1RLX01J U0MgKGxhYmVsKSwgMC4wLCAwLjUpOwotKyAgICAgICAgZ3RrX3dpZGdldF9zaG93IChsYWJlbCk7 Ci0rICAgICAgICBndGtfYm94X3BhY2tfc3RhcnQgKEdUS19CT1ggKHZib3gpLCBsYWJlbCwgVFJV RSwgVFJVRSwgMCk7Ci0rCi0rICAgICAgICBiYXItPnByaXYtPmxhYmVsID0gZ3RrX2xhYmVsX25l dyAoIiIpOwotKyAgICAgICAgaGludCA9IGdfc3RyZHVwX3ByaW50ZiAoIjxpPiVzPC9pPiIsICIi KTsKLSsgICAgICAgIGd0a19sYWJlbF9zZXRfbWFya3VwIChHVEtfTEFCRUwgKGJhci0+cHJpdi0+ bGFiZWwpLCBoaW50KTsKLSsgICAgICAgIGd0a19taXNjX3NldF9hbGlnbm1lbnQgKEdUS19NSVND IChiYXItPnByaXYtPmxhYmVsKSwgMC4wLCAwLjUpOwotKyAgICAgICAgZ3RrX3dpZGdldF9zaG93 IChiYXItPnByaXYtPmxhYmVsKTsKLSsgICAgICAgIGd0a19ib3hfcGFja19zdGFydCAoR1RLX0JP WCAodmJveCksIGJhci0+cHJpdi0+bGFiZWwsIFRSVUUsIFRSVUUsIDApOwotKwotKyAgICAgICAg YmFyLT5wcml2LT5idXR0b24gPSBndGtfYnV0dG9uX25ld193aXRoX2xhYmVsIChfKCJMYXVuY2gg UHJlZmVyZW5jZXMiKSk7Ci0rICAgICAgICBndGtfd2lkZ2V0X3Nob3cgKGJhci0+cHJpdi0+YnV0 dG9uKTsKLSsgICAgICAgIGd0a19ib3hfcGFja19lbmQgKEdUS19CT1ggKGhib3gpLCBiYXItPnBy aXYtPmJ1dHRvbiwgRkFMU0UsIEZBTFNFLCAwKTsKLSsKLSsgICAgICAgIGltYWdlID0gZ3RrX2lt YWdlX25ld19mcm9tX2ljb25fbmFtZSAoImZvbGRlci1yZW1vdGUiLCBHVEtfSUNPTl9TSVpFX0JV VFRPTik7Ci0rICAgICAgICBndGtfd2lkZ2V0X3Nob3cgKGltYWdlKTsKLSsgICAgICAgIGd0a19i dXR0b25fc2V0X2ltYWdlIChHVEtfQlVUVE9OIChiYXItPnByaXYtPmJ1dHRvbiksIGltYWdlKTsK LSsKLSsgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QgKGJhci0+cHJpdi0+YnV0dG9uLCAiY2xpY2tl ZCIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChidXR0b25fY2xpY2tl ZF9jYiksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBiYXIpOwotKwotKyAgICAgICAgZ3Rr X3Rvb2x0aXBzX3NldF90aXAgKEdUS19UT09MVElQUyAoYmFyLT5wcml2LT50b29sdGlwcyksCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFyLT5wcml2LT5idXR0b24sCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXygiTGF1bmNoIFBlcnNvbmFsIEZpbGUgU2hhcmluZyBQ cmVmZXJlbmNlcyIpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotK30K LSsKLStzdGF0aWMgdm9pZAotK25hdXRpbHVzX3NoYXJlX2Jhcl9maW5hbGl6ZSAoR09iamVjdCAq b2JqZWN0KQotK3sKLSsgICAgICAgIE5hdXRpbHVzU2hhcmVCYXIgKmJhcjsKLSsKLSsgICAgICAg IGdfcmV0dXJuX2lmX2ZhaWwgKG9iamVjdCAhPSBOVUxMKTsKLSsgICAgICAgIGdfcmV0dXJuX2lm X2ZhaWwgKE5BVVRJTFVTX0lTX1NIQVJFX0JBUiAob2JqZWN0KSk7Ci0rCi0rICAgICAgICBiYXIg PSBOQVVUSUxVU19TSEFSRV9CQVIgKG9iamVjdCk7Ci0rCi0rICAgICAgICBnX3JldHVybl9pZl9m YWlsIChiYXItPnByaXYgIT0gTlVMTCk7Ci0rCi0rICAgICAgICBpZiAoYmFyLT5wcml2LT50b29s dGlwcyAhPSBOVUxMKSB7Ci0rICAgICAgICAgICAgICAgIGdfb2JqZWN0X3VucmVmIChiYXItPnBy aXYtPnRvb2x0aXBzKTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIEdfT0JKRUNUX0NMQVNTIChu YXV0aWx1c19zaGFyZV9iYXJfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUgKG9iamVjdCk7Ci0rfQot KwotK0d0a1dpZGdldCAqCi0rbmF1dGlsdXNfc2hhcmVfYmFyX25ldyAoY29uc3QgY2hhciAqbGFi ZWwpCi0rewotKyAgICAgICAgR09iamVjdCAqcmVzdWx0OwotKwotKyAgICAgICAgcmVzdWx0ID0g Z19vYmplY3RfbmV3IChOQVVUSUxVU19UWVBFX1NIQVJFX0JBUiwKLSsgICAgICAgIAkJICAgICAg ICJsYWJlbCIsIGxhYmVsLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsK LSsKLSsgICAgICAgIHJldHVybiBHVEtfV0lER0VUIChyZXN1bHQpOwotK30KLWRpZmYgLS1naXQg YS9zcmMvbmF1dGlsdXMtc2hhcmUtYmFyLmggYi9zcmMvbmF1dGlsdXMtc2hhcmUtYmFyLmgKLW5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5iN2ZiMWZkCi0tLS0gL2Rldi9udWxs Ci0rKysgYi9zcmMvbmF1dGlsdXMtc2hhcmUtYmFyLmgKLUBAIC0wLDAgKzEsNjEgQEAKLSsvKiAt Ki0gTW9kZTogQzsgdGFiLXdpZHRoOiA4OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IGMtYmFzaWMt b2Zmc2V0OiA4IC0qLQotKyAqCi0rICogQ29weXJpZ2h0IChDKSAyMDA1IFdpbGxpYW0gSm9uIE1j Q2FubiA8bWNjYW5uQGpodS5lZHU+Ci0rICoKLSsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAqIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Ci0rICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBv ZiB0aGUgTGljZW5zZSwgb3IKLSsgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgotKyAqCi0rICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCi0rICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICogR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsgKgotKyAqIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICog YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh cmUKLSsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJv c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKyAqCi0rICogQXV0aG9yczogV2lsbGlhbSBKb24g TWNDYW5uIDxtY2Nhbm5Aamh1LmVkdT4KLSsgKgotKyAqLwotKwotKyNpZm5kZWYgX19OQVVUSUxV U19TSEFSRV9CQVJfSAotKyNkZWZpbmUgX19OQVVUSUxVU19TSEFSRV9CQVJfSAotKwotKyNpbmNs dWRlIDxndGsvZ3RrLmg+Ci0rCi0rR19CRUdJTl9ERUNMUwotKwotKyNkZWZpbmUgTkFVVElMVVNf VFlQRV9TSEFSRV9CQVIgICAgICAgICAobmF1dGlsdXNfc2hhcmVfYmFyX2dldF90eXBlICgpKQot KyNkZWZpbmUgTkFVVElMVVNfU0hBUkVfQkFSKG8pICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lO U1RBTkNFX0NBU1QgKChvKSwgTkFVVElMVVNfVFlQRV9TSEFSRV9CQVIsIE5hdXRpbHVzU2hhcmVC YXIpKQotKyNkZWZpbmUgTkFVVElMVVNfU0hBUkVfQkFSX0NMQVNTKGspICAgICAoR19UWVBFX0NI RUNLX0NMQVNTX0NBU1QoKGspLCBOQVVUSUxVU19UWVBFX1NIQVJFX0JBUiwgTmF1dGlsdXNTaGFy ZUJhckNsYXNzKSkKLSsjZGVmaW5lIE5BVVRJTFVTX0lTX1NIQVJFX0JBUihvKSAgICAgICAgKEdf VFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIE5BVVRJTFVTX1RZUEVfU0hBUkVfQkFSKSkK LSsjZGVmaW5lIE5BVVRJTFVTX0lTX1NIQVJFX0JBUl9DTEFTUyhrKSAgKEdfVFlQRV9DSEVDS19D TEFTU19UWVBFICgoayksIE5BVVRJTFVTX1RZUEVfU0hBUkVfQkFSKSkKLSsjZGVmaW5lIE5BVVRJ TFVTX1NIQVJFX0JBUl9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChv KSwgTkFVVElMVVNfVFlQRV9TSEFSRV9CQVIsIE5hdXRpbHVzU2hhcmVCYXJDbGFzcykpCi0rCi0r dHlwZWRlZiBzdHJ1Y3QgTmF1dGlsdXNTaGFyZUJhclByaXZhdGUgTmF1dGlsdXNTaGFyZUJhclBy aXZhdGU7Ci0rCi0rdHlwZWRlZiBzdHJ1Y3QKLSt7Ci0rICAgICAgICBHdGtIQm94ICAgICAgICAg ICAgICAgICBib3g7Ci0rCi0rICAgICAgICBOYXV0aWx1c1NoYXJlQmFyUHJpdmF0ZSAqcHJpdjsK LSt9IE5hdXRpbHVzU2hhcmVCYXI7Ci0rCi0rdHlwZWRlZiBzdHJ1Y3QKLSt7Ci0rICAgICAgICBH dGtIQm94Q2xhc3MgICAgICAgICAgICBwYXJlbnRfY2xhc3M7Ci0rCi0rCXZvaWQgKCogYWN0aXZh dGUpIChOYXV0aWx1c1NoYXJlQmFyICpiYXIpOwotKwotK30gTmF1dGlsdXNTaGFyZUJhckNsYXNz OwotKwotK0dUeXBlICAgICAgIG5hdXRpbHVzX3NoYXJlX2Jhcl9nZXRfdHlwZSAgICAgICAgICAo dm9pZCk7Ci0rR3RrV2lkZ2V0ICAqbmF1dGlsdXNfc2hhcmVfYmFyX25ldyAgICAgICAgICAgICAg IChjb25zdCBjaGFyICpsYWJlbCk7Ci0rCi0rR3RrV2lkZ2V0ICAqbmF1dGlsdXNfc2hhcmVfYmFy X2dldF9idXR0b24gICAgICAgIChOYXV0aWx1c1NoYXJlQmFyICpiYXIpOwotKwotK0dfRU5EX0RF Q0xTCi0rCi0rI2VuZGlmIC8qIF9fR1NfU0hBUkVfQkFSX0ggKi8KLWRpZmYgLS1naXQgYS9zcmMv c2hhcmUtZXh0ZW5zaW9uLmMgYi9zcmMvc2hhcmUtZXh0ZW5zaW9uLmMKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4wMzZlY2QzCi0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMv c2hhcmUtZXh0ZW5zaW9uLmMKLUBAIC0wLDAgKzEsMjkyIEBACi0rLyogLSotIE1vZGU6IEM7IGlu ZGVudC10YWJzLW1vZGU6IG5pbDsgYy1iYXNpYy1vZmZzZXQ6IDg7IHRhYi13aWR0aDogOCAtKi0K LSsgKgotKyAqIENvcHlyaWdodCAoQykgMjAwMyBOb3ZlbGwsIEluYy4KLSsgKiBDb3B5cmlnaHQg KEMpIDIwMDMtMjAwNCBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDA1IFdpbGxp YW0gSm9uIE1jQ2FubiA8bWNjYW5uQGpodS5lZHU+Ci0rICoKLSsgKiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rICogbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMK LSsgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMiBvZiB0aGUKLSsgKiBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgotKyAqCi0rICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgKiBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotKyAq IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsgKgotKyAqIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwotKyAq IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlCi0r ICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0 ZSAzMzAsCi0rICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0rICoKLSsgKi8KLSsKLSsj aW5jbHVkZSAiY29uZmlnLmgiCi0rCi0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDxz dHJpbmcuaD4KLSsjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KLSsjaW5jbHVkZSA8Z3RrL2d0 ay5oPgotKyNpbmNsdWRlIDxsaWJuYXV0aWx1cy1leHRlbnNpb24vbmF1dGlsdXMtbWVudS1wcm92 aWRlci5oPgotKyNpbmNsdWRlIDxsaWJuYXV0aWx1cy1leHRlbnNpb24vbmF1dGlsdXMtbG9jYXRp b24td2lkZ2V0LXByb3ZpZGVyLmg+Ci0rCi0rI2luY2x1ZGUgIm5hdXRpbHVzLXNoYXJlLWJhci5o IgotKwotKyNkZWZpbmUgTkFVVElMVVNfVFlQRV9TSEFSRSAgKG5hdXRpbHVzX3NoYXJlX2dldF90 eXBlICgpKQotKyNkZWZpbmUgTkFVVElMVVNfU0hBUkUobykgICAgKEdfVFlQRV9DSEVDS19JTlNU QU5DRV9DQVNUICgobyksIE5BVVRJTFVTX1RZUEVfU0hBUkUsIE5hdXRpbHVzU2hhcmUpKQotKyNk ZWZpbmUgTkFVVElMVVNfSVNfU0hBUkUobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgo byksIE5BVVRJTFVTX1RZUEVfU0hBUkUpKQotKwotK3R5cGVkZWYgc3RydWN0IF9OYXV0aWx1c1No YXJlUHJpdmF0ZSBOYXV0aWx1c1NoYXJlUHJpdmF0ZTsKLSsKLSt0eXBlZGVmIHN0cnVjdAotK3sK LSsgICAgICAgIEdPYmplY3QgICAgICAgICAgICAgIHBhcmVudF9zbG90OwotKyAgICAgICAgTmF1 dGlsdXNTaGFyZVByaXZhdGUgKnByaXY7Ci0rfSBOYXV0aWx1c1NoYXJlOwotKwotK3R5cGVkZWYg c3RydWN0Ci0rewotKyAgICAgICAgR09iamVjdENsYXNzIHBhcmVudF9zbG90OwotK30gTmF1dGls dXNTaGFyZUNsYXNzOwotKwotKyNkZWZpbmUgTkFVVElMVVNfU0hBUkVfR0VUX1BSSVZBVEUobykg KEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCBOQVVUSUxVU19UWVBFX1NIQVJFLCBO YXV0aWx1c1NoYXJlUHJpdmF0ZSkpCi0rCi0rc3RydWN0IF9OYXV0aWx1c1NoYXJlUHJpdmF0ZQot K3sKLSsgICAgICAgIEdTTGlzdCAgICAgICAqd2lkZ2V0X2xpc3Q7Ci0rfTsKLSsKLStzdGF0aWMg R1R5cGUgbmF1dGlsdXNfc2hhcmVfZ2V0X3R5cGUgICAgICAodm9pZCk7Ci0rc3RhdGljIHZvaWQg IG5hdXRpbHVzX3NoYXJlX3JlZ2lzdGVyX3R5cGUgKEdUeXBlTW9kdWxlICptb2R1bGUpOwotKwot K3N0YXRpYyBHT2JqZWN0Q2xhc3MgKnBhcmVudF9jbGFzczsKLSsKLSsKLStzdGF0aWMgdm9pZAot K2xhdW5jaF9wcm9jZXNzIChjaGFyICoqYXJndiwgR3RrV2luZG93ICpwYXJlbnQpCi0rewotKyAg ICAgICAgR0Vycm9yICplcnJvcjsKLSsgICAgICAgIEd0a1dpZGdldCAqZGlhbG9nOwotKwotKyAg ICAgICAgZXJyb3IgPSBOVUxMOwotKyAgICAgICAgaWYgKCFnX3NwYXduX2FzeW5jIChOVUxMLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd2LCBOVUxMLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxM LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmZXJyb3IpKSB7Ci0rCi0rCi0rICAgICAgICAgICAgICAgIGRpYWxvZyA9IGd0 a19tZXNzYWdlX2RpYWxvZ19uZXcgKE5VTEwsIEdUS19ESUFMT0dfTU9EQUwsIEdUS19NRVNTQUdF X1dBUk5JTkcsCi0rCQkJCQkJIEdUS19CVVRUT05TX09LLCBfKCJVbmFibGUgdG8gbGF1bmNoIHRo ZSBQZXJzb25hbCBGaWxlIFNoYXJpbmcgcHJlZmVyZW5jZXMiKSk7Ci0rCi0rICAgICAgICAgICAg ICAgIGd0a19tZXNzYWdlX2RpYWxvZ19mb3JtYXRfc2Vjb25kYXJ5X3RleHQgKEdUS19NRVNTQUdF X0RJQUxPRyAoZGlhbG9nKSwgIiVzIiwgZXJyb3ItPm1lc3NhZ2UpOwotKwotKyAgICAgICAgICAg ICAgICBndGtfZGlhbG9nX3J1biAoR1RLX0RJQUxPRyAoZGlhbG9nKSk7Ci0rICAgICAgICAgICAg ICAgIGd0a193aWRnZXRfZGVzdHJveSAoZGlhbG9nKTsKLSsKLSsgICAgICAgICAgICAgICAgZ19l cnJvcl9mcmVlIChlcnJvcik7Ci0rICAgICAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rbGF1 bmNoX3ByZWZzX29uX3dpbmRvdyAoR3RrV2luZG93ICp3aW5kb3cpCi0rewotKyAgICAgICAgY2hh ciAqYXJndiBbMl07Ci0rCi0rICAgICAgICBhcmd2IFswXSA9IGdfYnVpbGRfZmlsZW5hbWUgKEJJ TkRJUiwgImdub21lLWZpbGUtc2hhcmUtcHJvcGVydGllcyIsIE5VTEwpOwotKyAgICAgICAgYXJn diBbMV0gPSBOVUxMOwotKwotKyAgICAgICAgbGF1bmNoX3Byb2Nlc3MgKGFyZ3YsIHdpbmRvdyk7 Ci0rCi0rICAgICAgICBnX2ZyZWUgKGFyZ3YgWzBdKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLSti YXJfYWN0aXZhdGVkX2NiIChOYXV0aWx1c1NoYXJlQmFyICpiYXIsCi0rICAgICAgICAgICAgICAg ICAgZ3BvaW50ZXIgICAgICAgICBkYXRhKQotK3sKLSsgICAgICAgIGxhdW5jaF9wcmVmc19vbl93 aW5kb3cgKEdUS19XSU5ET1cgKGRhdGEpKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStkZXN0cm95 ZWRfY2FsbGJhY2sgKEd0a1dpZGdldCAgICAqd2lkZ2V0LAotKyAgICAgICAgICAgICAgICAgICAg TmF1dGlsdXNTaGFyZSAqc2hhcmUpCi0rewotKyAgICAgICAgc2hhcmUtPnByaXYtPndpZGdldF9s aXN0ID0gZ19zbGlzdF9yZW1vdmUgKHNoYXJlLT5wcml2LT53aWRnZXRfbGlzdCwgd2lkZ2V0KTsK LSt9Ci0rCi0rc3RhdGljIHZvaWQKLSthZGRfd2lkZ2V0IChOYXV0aWx1c1NoYXJlICpzaGFyZSwK LSsgICAgICAgICAgICAgIEd0a1dpZGdldCAgICAqd2lkZ2V0KQotK3sKLSsgICAgICAgIHNoYXJl LT5wcml2LT53aWRnZXRfbGlzdCA9IGdfc2xpc3RfcHJlcGVuZCAoc2hhcmUtPnByaXYtPndpZGdl dF9saXN0LCB3aWRnZXQpOwotKwotKyAgICAgICAgZ19zaWduYWxfY29ubmVjdCAod2lkZ2V0LCAi ZGVzdHJveSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChkZXN0cm95 ZWRfY2FsbGJhY2spLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmUpOwotK30KLSsK LStzdGF0aWMgR3RrV2lkZ2V0ICoKLStuYXV0aWx1c19zaGFyZV9nZXRfbG9jYXRpb25fd2lkZ2V0 IChOYXV0aWx1c0xvY2F0aW9uV2lkZ2V0UHJvdmlkZXIgKmlmYWNlLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgICAgICAgICAgICp1cmks Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtXaWRnZXQgICAgICAgICAg ICAgICAgICAgICAgKndpbmRvdykKLSt7Ci0rCUdGaWxlICAgICAgICAgKmZpbGU7Ci0rCUd0a1dp ZGdldCAgICAgKmJhcjsKLSsJTmF1dGlsdXNTaGFyZSAqc2hhcmU7Ci0rCWd1aW50ICAgICAgICAg IGk7Ci0rCWdib29sZWFuICAgICAgIGVuYWJsZSA9IEZBTFNFOwotKwljb25zdCBHVXNlckRpcmVj dG9yeSBzcGVjaWFsX2RpcnNbXSA9IHsgR19VU0VSX0RJUkVDVE9SWV9QVUJMSUNfU0hBUkUsIEdf VVNFUl9ESVJFQ1RPUllfRE9XTkxPQUQgfTsKLSsJZ2Jvb2xlYW4gaXNfZGlyW10gPSB7IEZBTFNF LCBGQUxTRSB9OwotKwotKwlmaWxlID0gZ19maWxlX25ld19mb3JfdXJpICh1cmkpOwotKwotKwlm b3IgKGkgPSAwOyBpIDwgR19OX0VMRU1FTlRTIChzcGVjaWFsX2RpcnMpOyBpKyspIHsKLSsJCWNv bnN0IGNoYXIgKnBhdGg7Ci0rCi0rCQlwYXRoID0gZ19nZXRfdXNlcl9zcGVjaWFsX2RpciAoc3Bl Y2lhbF9kaXJzW2ldKTsKLSsJCWlmIChwYXRoICE9IE5VTEwpIHsKLSsJCQlHRmlsZSAqZGlyOwot KwkJCWRpciA9IGdfZmlsZV9uZXdfZm9yX3BhdGggKHBhdGgpOwotKwkJCWlmIChnX2ZpbGVfZXF1 YWwgKGRpciwgZmlsZSkpIHsKLSsJCQkJZW5hYmxlID0gVFJVRTsKLSsJCQkJaXNfZGlyW2ldID0g VFJVRTsKLSsJCQl9Ci0rCQkJZ19vYmplY3RfdW5yZWYgKGRpcik7Ci0rCQl9Ci0rCX0KLSsKLSsJ aWYgKGVuYWJsZSA9PSBGQUxTRSkKLSsJCXJldHVybiBOVUxMOwotKwotKwlzaGFyZSA9IE5BVVRJ TFVTX1NIQVJFIChpZmFjZSk7Ci0rCi0rCWlmIChpc19kaXJbMF0gIT0gRkFMU0UgJiYgaXNfZGly WzFdICE9IEZBTFNFKSB7Ci0rCQliYXIgPSBuYXV0aWx1c19zaGFyZV9iYXJfbmV3IChfKCJZb3Ug Y2FuIHNoYXJlIGZpbGVzIGZyb20gdGhpcyBmb2xkZXIgYW5kIHJlY2VpdmUgZmlsZXMgdG8gaXQi KSk7Ci0rCX0gZWxzZSBpZiAoaXNfZGlyWzBdICE9IEZBTFNFKSB7Ci0rCQliYXIgPSBuYXV0aWx1 c19zaGFyZV9iYXJfbmV3IChfKCJZb3UgY2FuIHNoYXJlIGZpbGVzIGZyb20gdGhpcyBmb2xkZXIg b3ZlciB0aGUgbmV0d29yayBhbmQgQmx1ZXRvb3RoIikpOwotKwl9IGVsc2UgewotKwkJYmFyID0g bmF1dGlsdXNfc2hhcmVfYmFyX25ldyAoXygiWW91IGNhbiByZWNlaXZlIGZpbGVzIG92ZXIgQmx1 ZXRvb3RoIGludG8gdGhpcyBmb2xkZXIiKSk7Ci0rCX0KLSsKLSsJYWRkX3dpZGdldCAoc2hhcmUs IG5hdXRpbHVzX3NoYXJlX2Jhcl9nZXRfYnV0dG9uIChOQVVUSUxVU19TSEFSRV9CQVIgKGJhcikp KTsKLSsKLSsJZ19zaWduYWxfY29ubmVjdCAoYmFyLCAiYWN0aXZhdGUiLAotKwkJCSAgR19DQUxM QkFDSyAoYmFyX2FjdGl2YXRlZF9jYiksCi0rCQkJICB3aW5kb3cpOwotKwotKwlndGtfd2lkZ2V0 X3Nob3cgKGJhcik7Ci0rCi0rCWdfb2JqZWN0X3VucmVmIChmaWxlKTsKLSsKLSsgICAgICAgIHJl dHVybiBiYXI7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rbmF1dGlsdXNfc2hhcmVfbG9jYXRpb25f d2lkZ2V0X3Byb3ZpZGVyX2lmYWNlX2luaXQgKE5hdXRpbHVzTG9jYXRpb25XaWRnZXRQcm92aWRl cklmYWNlICppZmFjZSkKLSt7Ci0rICAgICAgICBpZmFjZS0+Z2V0X3dpZGdldCA9IG5hdXRpbHVz X3NoYXJlX2dldF9sb2NhdGlvbl93aWRnZXQ7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rbmF1dGls dXNfc2hhcmVfaW5zdGFuY2VfaW5pdCAoTmF1dGlsdXNTaGFyZSAqc2hhcmUpCi0rewotKyAgICAg ICAgc2hhcmUtPnByaXYgPSBOQVVUSUxVU19TSEFSRV9HRVRfUFJJVkFURSAoc2hhcmUpOwotK30K LSsKLStzdGF0aWMgdm9pZAotK25hdXRpbHVzX3NoYXJlX2ZpbmFsaXplIChHT2JqZWN0ICpvYmpl Y3QpCi0rewotKyAgICAgICAgTmF1dGlsdXNTaGFyZSAqc2hhcmU7Ci0rCi0rICAgICAgICBnX3Jl dHVybl9pZl9mYWlsIChvYmplY3QgIT0gTlVMTCk7Ci0rICAgICAgICBnX3JldHVybl9pZl9mYWls IChOQVVUSUxVU19JU19TSEFSRSAob2JqZWN0KSk7Ci0rCi0rICAgICAgICBzaGFyZSA9IE5BVVRJ TFVTX1NIQVJFIChvYmplY3QpOwotKwotKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbCAoc2hhcmUt PnByaXYgIT0gTlVMTCk7Ci0rCi0rICAgICAgICBpZiAoc2hhcmUtPnByaXYtPndpZGdldF9saXN0 ICE9IE5VTEwpIHsKLSsgICAgICAgICAgICAgICAgZ19zbGlzdF9mcmVlIChzaGFyZS0+cHJpdi0+ d2lkZ2V0X2xpc3QpOwotKyAgICAgICAgfQotKwotKyAgICAgICAgR19PQkpFQ1RfQ0xBU1MgKHBh cmVudF9jbGFzcyktPmZpbmFsaXplIChvYmplY3QpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK25h dXRpbHVzX3NoYXJlX2NsYXNzX2luaXQgKE5hdXRpbHVzU2hhcmVDbGFzcyAqa2xhc3MpCi0rewot KyAgICAgICAgR09iamVjdENsYXNzICpvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyAoa2xh c3MpOwotKwotKyAgICAgICAgcGFyZW50X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50 IChrbGFzcyk7Ci0rCi0rICAgICAgICBvYmplY3RfY2xhc3MtPmZpbmFsaXplID0gbmF1dGlsdXNf c2hhcmVfZmluYWxpemU7Ci0rCi0rICAgICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGts YXNzLCBzaXplb2YgKE5hdXRpbHVzU2hhcmVQcml2YXRlKSk7Ci0rfQotKwotK3N0YXRpYyBHVHlw ZSBzaGFyZV90eXBlID0gMDsKLSsKLStzdGF0aWMgR1R5cGUKLStuYXV0aWx1c19zaGFyZV9nZXRf dHlwZSAodm9pZCkKLSt7Ci0rICAgICAgICByZXR1cm4gc2hhcmVfdHlwZTsKLSt9Ci0rCi0rc3Rh dGljIHZvaWQKLStuYXV0aWx1c19zaGFyZV9yZWdpc3Rlcl90eXBlIChHVHlwZU1vZHVsZSAqbW9k dWxlKQotK3sKLSsgICAgICAgIHN0YXRpYyBjb25zdCBHVHlwZUluZm8gaW5mbyA9IHsKLSsgICAg ICAgICAgICAgICAgc2l6ZW9mIChOYXV0aWx1c1NoYXJlQ2xhc3MpLAotKyAgICAgICAgICAgICAg ICAoR0Jhc2VJbml0RnVuYykgTlVMTCwKLSsgICAgICAgICAgICAgICAgKEdCYXNlRmluYWxpemVG dW5jKSBOVUxMLAotKyAgICAgICAgICAgICAgICAoR0NsYXNzSW5pdEZ1bmMpIG5hdXRpbHVzX3No YXJlX2NsYXNzX2luaXQsCi0rICAgICAgICAgICAgICAgIE5VTEwsCi0rICAgICAgICAgICAgICAg IE5VTEwsCi0rICAgICAgICAgICAgICAgIHNpemVvZiAoTmF1dGlsdXNTaGFyZSksCi0rICAgICAg ICAgICAgICAgIDAsCi0rICAgICAgICAgICAgICAgIChHSW5zdGFuY2VJbml0RnVuYykgbmF1dGls dXNfc2hhcmVfaW5zdGFuY2VfaW5pdCwKLSsgICAgICAgIH07Ci0rCi0rICAgICAgICBzdGF0aWMg Y29uc3QgR0ludGVyZmFjZUluZm8gbG9jYXRpb25fd2lkZ2V0X3Byb3ZpZGVyX2lmYWNlX2luZm8g PSB7Ci0rICAgICAgICAgICAgICAgIChHSW50ZXJmYWNlSW5pdEZ1bmMpIG5hdXRpbHVzX3NoYXJl X2xvY2F0aW9uX3dpZGdldF9wcm92aWRlcl9pZmFjZV9pbml0LAotKyAgICAgICAgICAgICAgICBO VUxMLAotKyAgICAgICAgICAgICAgICBOVUxMCi0rICAgICAgICB9OwotKwotKyAgICAgICAgc2hh cmVfdHlwZSA9IGdfdHlwZV9tb2R1bGVfcmVnaXN0ZXJfdHlwZSAobW9kdWxlLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfT0JKRUNULAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmF1dGls dXNTaGFyZSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZpbmZvLCAwKTsKLSsKLSsgICAgICAgIGdfdHlwZV9tb2R1bGVfYWRkX2ludGVyZmFjZSAo bW9kdWxlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZV90eXBl LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQVVUSUxVU19UWVBFX0xP Q0FUSU9OX1dJREdFVF9QUk9WSURFUiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmxvY2F0aW9uX3dpZGdldF9wcm92aWRlcl9pZmFjZV9pbmZvKTsKLSt9Ci0rCi0rdm9p ZAotK25hdXRpbHVzX21vZHVsZV9pbml0aWFsaXplIChHVHlwZU1vZHVsZSAqbW9kdWxlKQotK3sK LSsgICAgICAgIG5hdXRpbHVzX3NoYXJlX3JlZ2lzdGVyX3R5cGUgKG1vZHVsZSk7Ci0rICAgICAg ICBiaW5kdGV4dGRvbWFpbiAoR0VUVEVYVF9QQUNLQUdFLCBHTk9NRUxPQ0FMRURJUik7Ci0rICAg ICAgICBiaW5kX3RleHRkb21haW5fY29kZXNldCAoR0VUVEVYVF9QQUNLQUdFLCAiVVRGLTgiKTsK LSt9Ci0rCi0rdm9pZAotK25hdXRpbHVzX21vZHVsZV9zaHV0ZG93biAodm9pZCkKLSt7Ci0rfQot KwotK3ZvaWQKLStuYXV0aWx1c19tb2R1bGVfbGlzdF90eXBlcyAoY29uc3QgR1R5cGUgKip0eXBl cywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICpudW1fdHlwZXMp Ci0rewotKyAgICAgICAgc3RhdGljIEdUeXBlIHR5cGVfbGlzdCBbMV07Ci0rCi0rICAgICAgICB0 eXBlX2xpc3RbMF0gPSBOQVVUSUxVU19UWVBFX1NIQVJFOwotKwotKyAgICAgICAgKnR5cGVzID0g dHlwZV9saXN0OwotKyAgICAgICAgKm51bV90eXBlcyA9IDE7Ci0rfQotLS0gCi0xLjYuMi41Ci0K CmRpZmYgLS1naXQgYS8wMDAxLVVzZS1zYW1lLWRpcmVjdG9yaWVzLWluLW5hdXRpbHVzLWJhci1h bmQtYXBwLnBhdGNoIGIvMDAwMS1Vc2Utc2FtZS1kaXJlY3Rvcmllcy1pbi1uYXV0aWx1cy1iYXIt YW5kLWFwcC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDExY2NiYy4uMDAw MDAwMAotLS0gYS8wMDAxLVVzZS1zYW1lLWRpcmVjdG9yaWVzLWluLW5hdXRpbHVzLWJhci1hbmQt YXBwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzE2ICswLDAgQEAKLUZyb20gODE0YTY0N2Rl Y2UxNDk2MmY4NzgyMzE5NzBjZjAyMGYzNWYzODJlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KLURhdGU6IFR1ZSwgMyBO b3YgMjAwOSAwMTo1NDoxMiArMDAwMAotU3ViamVjdDogW1BBVENIXSBVc2Ugc2FtZSBkaXJlY3Rv cmllcyBpbiBuYXV0aWx1cyBiYXIgYW5kIGFwcAotCi1XZSB3ZXJlIHVzaW5nIGRpZmZlcmVudCB3 YXlzIHRvIGdldCB0aGUgcHVibGljIGFuZCBkb3dubG9hZHMgZGlyLgotV2hlcmVhcyB0aGUgbWFp biB1c2VyLXNoYXJlIGhhZCBmYWxsYmFja3MgdG8gYXZvaWQgc2hhcmluZyAkSE9NRSwKLXRoZSBu YXV0aWx1cyBiYXIgd2FzIHVzaW5nIHRoZSBzcGVjaWFsIGRpcnMgd2l0aG91dCBhbnkgZmFsbGJh Y2tzLgotCi1UaGlzIG1vdmVzIHRoZSBjb21tb24gY29kZSB0byB1c2VyX3NoYXJlLWNvbW1vbi5b Y2hdIGFuZCBtYWtlcyBzdXJlCi10aGF0IGZhbGxiYWNrcyBhcmUgdXNlZCBpbiBib3RoIGNhc2Vz LgotLS0tCi0gc3JjL01ha2VmaWxlLmFtICAgICAgICAgfCAgIDE2ICsrKysrLS0tCi0gc3JjL2h0 dHAuYyAgICAgICAgICAgICAgfCAgICAyICstCi0gc3JjL29iZXhmdHAuYyAgICAgICAgICAgfCAg ICAyICstCi0gc3JjL3NoYXJlLWV4dGVuc2lvbi5jICAgfCAgIDE4ICsrKystLS0tLS0KLSBzcmMv dXNlcl9zaGFyZS1jb21tb24uYyB8ICAgODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKLSBzcmMvdXNlcl9zaGFyZS1jb21tb24uaCB8ICAgMzAgKysrKysr KysrKysrKysrKwotIHNyYy91c2VyX3NoYXJlLmMgICAgICAgIHwgICAzNSArLS0tLS0tLS0tLS0t LS0tLS0tCi0gNyBmaWxlcyBjaGFuZ2VkLCAxMzkgaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25z KC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy91c2VyX3NoYXJlLWNvbW1vbi5jCi0gY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy91c2VyX3NoYXJlLWNvbW1vbi5oCi0KLWRpZmYgLS1naXQgYS9zcmMv TWFrZWZpbGUuYW0gYi9zcmMvTWFrZWZpbGUuYW0KLWluZGV4IGZhN2FhMGEuLjA5ZTgyZTMgMTAw NjQ0Ci0tLS0gYS9zcmMvTWFrZWZpbGUuYW0KLSsrKyBiL3NyYy9NYWtlZmlsZS5hbQotQEAgLTE0 LDYgKzE0LDkgQEAgYmluX1BST0dSQU1TPSBcCi0gbGliZXhlY19QUk9HUkFNUz0gXAotIAlnbm9t ZS11c2VyLXNoYXJlCi0gCi0rbm9pbnN0X0xUTElCUkFSSUVTID0gbGlidXNlci1zaGFyZS1jb21t b24ubGEKLStsaWJ1c2VyX3NoYXJlX2NvbW1vbl9sYV9TT1VSQ0VTID0gdXNlcl9zaGFyZS1jb21t b24uYyB1c2VyX3NoYXJlLWNvbW1vbi5oCi0rCi0gSU5DTFVERVM9CVwKLSAJLURQUkVGSVg9XCIi JChwcmVmaXgpIlwiIAkJCVwKLSAJLURCSU5ESVI9XCIiJChiaW5kaXIpIlwiIAkJCVwKLUBAIC00 NCw3ICs0Nyw4IEBAIGdub21lX3VzZXJfc2hhcmVfU09VUkNFUyA9CVwKLSAJb2JleHB1c2guaAkJ XAotIAkkKE1BUlNIQUxGSUxFUykKLSAKLS1nbm9tZV91c2VyX3NoYXJlX0xEQUREID0gXAotK2du b21lX3VzZXJfc2hhcmVfTERBREQgPQlcCi0rCWxpYnVzZXItc2hhcmUtY29tbW9uLmxhCVwKLSAJ JChVU0VSX1NIQVJFX0xJQlMpCVwKLSAJJChTRUxJTlVYX0xJQlMpCVwKLSAJJChYX0xJQlMpICQo WF9QUkVfTElCUykgLWxYMTEgJChYX0VYVFJBX0xJQlMpCi1AQCAtNjAsMTMgKzY0LDEzIEBAIGdu b21lX2ZpbGVfc2hhcmVfcHJvcGVydGllc19MREFERCA9IFwKLSBuYXV0aWx1c19leHRlbnNpb25k aXIgPSAkKE5BVVRJTFVTRElSKQotIG5hdXRpbHVzX2V4dGVuc2lvbl9MVExJQlJBUklFUyA9IGxp Ym5hdXRpbHVzLXNoYXJlLWV4dGVuc2lvbi5sYQotIAotLWxpYm5hdXRpbHVzX3NoYXJlX2V4dGVu c2lvbl9sYV9TT1VSQ0VTID0gICAgICAgICBcCi0tCW5hdXRpbHVzLXNoYXJlLWJhci5jICAgICAg ICAgICAgICAgICAgICAgXAotLQluYXV0aWx1cy1zaGFyZS1iYXIuaCAgICAgICAgICAgICAgICAg ICAgIFwKLS0Jc2hhcmUtZXh0ZW5zaW9uLmMgICAgICAgICAgICAgICAgICAgICAgICBcCi0rbGli bmF1dGlsdXNfc2hhcmVfZXh0ZW5zaW9uX2xhX1NPVVJDRVMgPQlcCi0rCW5hdXRpbHVzLXNoYXJl LWJhci5jCQkJXAotKwluYXV0aWx1cy1zaGFyZS1iYXIuaAkJCVwKLSsJc2hhcmUtZXh0ZW5zaW9u LmMJCQlcCi0gCSQoTlVMTCkKLSAKLS1saWJuYXV0aWx1c19zaGFyZV9leHRlbnNpb25fbGFfTElC QUREID0gJChFWFRFTlNJT05fTElCUykKLStsaWJuYXV0aWx1c19zaGFyZV9leHRlbnNpb25fbGFf TElCQUREID0gbGlidXNlci1zaGFyZS1jb21tb24ubGEgJChFWFRFTlNJT05fTElCUykKLSBsaWJu YXV0aWx1c19zaGFyZV9leHRlbnNpb25fbGFfTERGTEFHUyA9IC1hdm9pZC12ZXJzaW9uIC1tb2R1 bGUgLW5vLXVuZGVmaW5lZAotIAotIEVYVFJBX0RJU1QgPSBtYXJzaGFsLmxpc3QKLWRpZmYgLS1n aXQgYS9zcmMvaHR0cC5jIGIvc3JjL2h0dHAuYwotaW5kZXggMTY0YjI5MS4uMzY3Mzk0YSAxMDA2 NDQKLS0tLSBhL3NyYy9odHRwLmMKLSsrKyBiL3NyYy9odHRwLmMKLUBAIC00OCw3ICs0OCw3IEBA Ci0gI2luY2x1ZGUgPHNlbGludXgvc2VsaW51eC5oPgotICNlbmRpZgotIAotLSNpbmNsdWRlICJ1 c2VyX3NoYXJlLmgiCi0rI2luY2x1ZGUgInVzZXJfc2hhcmUtY29tbW9uLmgiCi0gI2luY2x1ZGUg InVzZXJfc2hhcmUtcHJpdmF0ZS5oIgotICNpbmNsdWRlICJodHRwLmgiCi0gCi1kaWZmIC0tZ2l0 IGEvc3JjL29iZXhmdHAuYyBiL3NyYy9vYmV4ZnRwLmMKLWluZGV4IDg5YTk4Y2UuLjAyZTg5NTYg MTAwNjQ0Ci0tLS0gYS9zcmMvb2JleGZ0cC5jCi0rKysgYi9zcmMvb2JleGZ0cC5jCi1AQCAtMzAs NyArMzAsNyBAQAotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSAKLSAjaW5jbHVkZSAib2JleGZ0cC5o IgotLSNpbmNsdWRlICJ1c2VyX3NoYXJlLmgiCi0rI2luY2x1ZGUgInVzZXJfc2hhcmUtY29tbW9u LmgiCi0gI2luY2x1ZGUgInVzZXJfc2hhcmUtcHJpdmF0ZS5oIgotIAotIHN0YXRpYyBEQnVzR0Nv bm5lY3Rpb24gKmNvbm5lY3Rpb24gPSBOVUxMOwotZGlmZiAtLWdpdCBhL3NyYy9zaGFyZS1leHRl bnNpb24uYyBiL3NyYy9zaGFyZS1leHRlbnNpb24uYwotaW5kZXggMjQ0NmQzZi4uMDQ0ODQxNCAx MDA2NDQKLS0tLSBhL3NyYy9zaGFyZS1leHRlbnNpb24uYwotKysrIGIvc3JjL3NoYXJlLWV4dGVu c2lvbi5jCi1AQCAtMzEsNiArMzEsNyBAQAotICNpbmNsdWRlIDxsaWJuYXV0aWx1cy1leHRlbnNp b24vbmF1dGlsdXMtbG9jYXRpb24td2lkZ2V0LXByb3ZpZGVyLmg+Ci0gCi0gI2luY2x1ZGUgIm5h dXRpbHVzLXNoYXJlLWJhci5oIgotKyNpbmNsdWRlICJ1c2VyX3NoYXJlLWNvbW1vbi5oIgotIAot ICNkZWZpbmUgTkFVVElMVVNfVFlQRV9TSEFSRSAgKG5hdXRpbHVzX3NoYXJlX2dldF90eXBlICgp KQotICNkZWZpbmUgTkFVVElMVVNfU0hBUkUobykgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9D QVNUICgobyksIE5BVVRJTFVTX1RZUEVfU0hBUkUsIE5hdXRpbHVzU2hhcmUpKQotQEAgLTE1NCwx OCArMTU1LDEzIEBAIG5hdXRpbHVzX3NoYXJlX2dldF9sb2NhdGlvbl93aWRnZXQgKE5hdXRpbHVz TG9jYXRpb25XaWRnZXRQcm92aWRlciAqaWZhY2UsCi0gCWdfb2JqZWN0X3VucmVmIChob21lKTsK LSAKLSAJZm9yIChpID0gMDsgaSA8IEdfTl9FTEVNRU5UUyAoc3BlY2lhbF9kaXJzKTsgaSsrKSB7 Ci0tCQljb25zdCBjaGFyICpwYXRoOwotLQotLQkJcGF0aCA9IGdfZ2V0X3VzZXJfc3BlY2lhbF9k aXIgKHNwZWNpYWxfZGlyc1tpXSk7Ci0tCQlpZiAocGF0aCAhPSBOVUxMKSB7Ci0tCQkJR0ZpbGUg KmRpcjsKLS0JCQlkaXIgPSBnX2ZpbGVfbmV3X2Zvcl9wYXRoIChwYXRoKTsKLS0JCQlpZiAoZ19m aWxlX2VxdWFsIChkaXIsIGZpbGUpKSB7Ci0tCQkJCWVuYWJsZSA9IFRSVUU7Ci0tCQkJCWlzX2Rp cltpXSA9IFRSVUU7Ci0tCQkJfQotLQkJCWdfb2JqZWN0X3VucmVmIChkaXIpOwotKwkJR0ZpbGUg KmRpcjsKLSsJCWRpciA9IGxvb2t1cF9kaXJfd2l0aF9mYWxsYmFjayAoc3BlY2lhbF9kaXJzW2ld KTsKLSsJCWlmIChnX2ZpbGVfZXF1YWwgKGRpciwgZmlsZSkpIHsKLSsJCQllbmFibGUgPSBUUlVF OwotKwkJCWlzX2RpcltpXSA9IFRSVUU7Ci0gCQl9Ci0rCQlnX29iamVjdF91bnJlZiAoZGlyKTsK LSAJfQotIAotIAlpZiAoZW5hYmxlID09IEZBTFNFKQotZGlmZiAtLWdpdCBhL3NyYy91c2VyX3No YXJlLWNvbW1vbi5jIGIvc3JjL3VzZXJfc2hhcmUtY29tbW9uLmMKLW5ldyBmaWxlIG1vZGUgMTAw NjQ0Ci1pbmRleCAwMDAwMDAwLi4zMTM4OWViCi0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvdXNl cl9zaGFyZS1jb21tb24uYwotQEAgLTAsMCArMSw4OSBAQAotKy8qIC0qLSBNb2RlOiBDOyBpbmRl bnQtdGFicy1tb2RlOiB0OyBjLWJhc2ljLW9mZnNldDogNDsgdGFiLXdpZHRoOiA0IC0qLSAqLwot KwotKy8qCi0rICogIENvcHlyaWdodCAoQykgMjAwNC0yMDA5IFJlZCBIYXQsIEluYy4KLSsgKgot KyAqICBOYXV0aWx1cyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKLSsgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMKLSsgKiAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCi0rICogIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rICoKLSsgKiAgTmF1dGlsdXMgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgKiAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK LSsgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZSBHTlUKLSsgKiAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgotKyAqCi0rICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rICogIEZvdW5kYXRpb24sIEluYy4s IDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgotKyAqCi0rICogIEF1dGhv cnM6IEFsZXhhbmRlciBMYXJzc29uIDxhbGV4bEByZWRoYXQuY29tPgotKyAqICBCYXN0aWVuIE5v Y2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+Ci0rICoKLSsgKi8KLSsKLSsjaW5jbHVkZSAidXNlcl9z aGFyZS1jb21tb24uaCIKLSsKLStzdGF0aWMgY2hhciAqCi0rbG9va3VwX3NwZWNpYWxfZGlyIChH VXNlckRpcmVjdG9yeSBkaXJlY3RvcnksCi0rCQkgICAgY29uc3QgY2hhciAqbmFtZSwKLSsJCSAg ICBnYm9vbGVhbiBjcmVhdGVfZGlyKQotK3sKLSsJY29uc3QgY2hhciAqc3BlY2lhbF9kaXI7Ci0r CWNoYXIgKmRpcjsKLSsKLSsJc3BlY2lhbF9kaXIgPSBnX2dldF91c2VyX3NwZWNpYWxfZGlyIChk aXJlY3RvcnkpOwotKwlpZiAoc3BlY2lhbF9kaXIgIT0gTlVMTCAmJiBzdHJjbXAgKHNwZWNpYWxf ZGlyLCBnX2dldF9ob21lX2RpciAoKSkgIT0gMCkgewotKwkJaWYgKGNyZWF0ZV9kaXIgIT0gRkFM U0UpCi0rCQkJZ19ta2Rpcl93aXRoX3BhcmVudHMgKHNwZWNpYWxfZGlyLCAwNzU1KTsKLSsJCXJl dHVybiBnX3N0cmR1cCAoc3BlY2lhbF9kaXIpOwotKwl9Ci0rCi0rCWRpciA9IGdfYnVpbGRfZmls ZW5hbWUgKGdfZ2V0X2hvbWVfZGlyICgpLCBuYW1lLCBOVUxMKTsKLSsJaWYgKGNyZWF0ZV9kaXIg IT0gRkFMU0UpCi0rCQlnX21rZGlyX3dpdGhfcGFyZW50cyAoZGlyLCAwNzU1KTsKLSsJcmV0dXJu IGRpcjsKLSt9Ci0rCi0rY2hhciAqCi0rbG9va3VwX3B1YmxpY19kaXIgKHZvaWQpCi0rewotKwly ZXR1cm4gbG9va3VwX3NwZWNpYWxfZGlyIChHX1VTRVJfRElSRUNUT1JZX1BVQkxJQ19TSEFSRSwK LSsJCQkJICAgIlB1YmxpYyIsCi0rCQkJCSAgIFRSVUUpOwotK30KLSsKLStjaGFyICoKLStsb29r dXBfZG93bmxvYWRfZGlyICh2b2lkKQotK3sKLSsJcmV0dXJuIGxvb2t1cF9zcGVjaWFsX2RpciAo R19VU0VSX0RJUkVDVE9SWV9ET1dOTE9BRCwKLSsJCQkJICAgIkRvd25sb2FkcyIsCi0rCQkJCSAg IFRSVUUpOwotK30KLSsKLStHRmlsZSAqCi0rbG9va3VwX2Rpcl93aXRoX2ZhbGxiYWNrIChHVXNl ckRpcmVjdG9yeSBkaXJlY3RvcnkpCi0rewotKwlHRmlsZSAqZmlsZTsKLSsJY2hhciAqcGF0aDsK LSsJY29uc3QgY2hhciAqbmFtZTsKLSsKLSsJaWYgKGRpcmVjdG9yeSA9PSBHX1VTRVJfRElSRUNU T1JZX1BVQkxJQ19TSEFSRSkKLSsJCW5hbWUgPSAiUHVibGljIjsKLSsJZWxzZSBpZiAoZGlyZWN0 b3J5ID09IEdfVVNFUl9ESVJFQ1RPUllfRE9XTkxPQUQpCi0rCQluYW1lID0gIkRvd25sb2FkcyI7 Ci0rCWVsc2UKLSsJCWdfYXNzZXJ0X25vdF9yZWFjaGVkICgpOwotKwotKwlwYXRoID0gbG9va3Vw X3NwZWNpYWxfZGlyIChkaXJlY3RvcnksCi0rCQkJCSAgIG5hbWUsCi0rCQkJCSAgIEZBTFNFKTsK LSsKLSsJaWYgKHBhdGggPT0gTlVMTCkKLSsJCXJldHVybiBOVUxMOwotKwotKwlmaWxlID0gZ19m aWxlX25ld19mb3JfcGF0aCAocGF0aCk7Ci0rCWdfZnJlZSAocGF0aCk7Ci0rCi0rCXJldHVybiBm aWxlOwotK30KLWRpZmYgLS1naXQgYS9zcmMvdXNlcl9zaGFyZS1jb21tb24uaCBiL3NyYy91c2Vy X3NoYXJlLWNvbW1vbi5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMWI4 N2M3YwotLS0tIC9kZXYvbnVsbAotKysrIGIvc3JjL3VzZXJfc2hhcmUtY29tbW9uLmgKLUBAIC0w LDAgKzEsMzAgQEAKLSsvKiAtKi0gTW9kZTogQzsgaW5kZW50LXRhYnMtbW9kZTogdDsgYy1iYXNp Yy1vZmZzZXQ6IDQ7IHRhYi13aWR0aDogNCAtKi0gKi8KLSsKLSsvKgotKyAqICBDb3B5cmlnaHQg KEMpIDIwMDQtMjAwOSBSZWQgSGF0LCBJbmMuCi0rICoKLSsgKiAgTmF1dGlsdXMgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rICogIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCi0rICog IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAyIG9mIHRoZQotKyAqICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgotKyAqCi0rICogIE5hdXRpbHVzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICogIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rICogIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsgKgotKyAqICBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQotKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl ZSBTb2Z0d2FyZQotKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRn ZSwgTUEgMDIxMzksIFVTQS4KLSsgKgotKyAqICBBdXRob3JzOiBBbGV4YW5kZXIgTGFyc3NvbiA8 YWxleGxAcmVkaGF0LmNvbT4KLSsgKiAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0 PgotKyAqCi0rICovCi0rCi0rI2luY2x1ZGUgPGdsaWIuaD4KLSsjaW5jbHVkZSA8Z2lvL2dpby5o PgotKwotK2NoYXIgKmxvb2t1cF9wdWJsaWNfZGlyICh2b2lkKTsKLStjaGFyICpsb29rdXBfZG93 bmxvYWRfZGlyICh2b2lkKTsKLStHRmlsZSAqbG9va3VwX2Rpcl93aXRoX2ZhbGxiYWNrIChHVXNl ckRpcmVjdG9yeSBkaXJlY3RvcnkpOwotZGlmZiAtLWdpdCBhL3NyYy91c2VyX3NoYXJlLmMgYi9z cmMvdXNlcl9zaGFyZS5jCi1pbmRleCBhYjZhN2NhLi4xOTc2NDI0IDEwMDY0NAotLS0tIGEvc3Jj L3VzZXJfc2hhcmUuYwotKysrIGIvc3JjL3VzZXJfc2hhcmUuYwotQEAgLTMxLDYgKzMxLDcgQEAK LSAKLSAjaW5jbHVkZSAidXNlcl9zaGFyZS5oIgotICNpbmNsdWRlICJ1c2VyX3NoYXJlLXByaXZh dGUuaCIKLSsjaW5jbHVkZSAidXNlcl9zaGFyZS1jb21tb24uaCIKLSAjaW5jbHVkZSAiaHR0cC5o IgotICNpbmNsdWRlICJvYmV4ZnRwLmgiCi0gI2luY2x1ZGUgIm9iZXhwdXNoLmgiCi1AQCAtMjYy LDQwICsyNjMsNiBAQCBibHVlel9pbml0ICh2b2lkKQotIAkJCSAgR19DQUxMQkFDSyAoZGVmYXVs dF9hZGFwdGVyX2NoYW5nZWQpLCBOVUxMKTsKLSB9Ci0gCi0tY2hhciAqCi0tbG9va3VwX3B1Ymxp Y19kaXIgKHZvaWQpCi0tewotLQljb25zdCBjaGFyICpwdWJsaWNfZGlyOwotLQljaGFyICpkaXI7 Ci0tCi0tCXB1YmxpY19kaXIgPSBnX2dldF91c2VyX3NwZWNpYWxfZGlyIChHX1VTRVJfRElSRUNU T1JZX1BVQkxJQ19TSEFSRSk7Ci0tCWlmIChwdWJsaWNfZGlyICE9IE5VTEwgJiYgc3RyY21wIChw dWJsaWNfZGlyLCBnX2dldF9ob21lX2RpciAoKSkgIT0gMCkgewotLQkJZ19ta2Rpcl93aXRoX3Bh cmVudHMgKHB1YmxpY19kaXIsIDA3NTUpOwotLQkJcmV0dXJuIGdfc3RyZHVwIChwdWJsaWNfZGly KTsKLS0JfQotLQotLQlkaXIgPSBnX2J1aWxkX2ZpbGVuYW1lIChnX2dldF9ob21lX2RpciAoKSwg IlB1YmxpYyIsIE5VTEwpOwotLQlnX21rZGlyX3dpdGhfcGFyZW50cyAoZGlyLCAwNzU1KTsKLS0J cmV0dXJuIGRpcjsKLS19Ci0tCi0tY2hhciAqCi0tbG9va3VwX2Rvd25sb2FkX2RpciAodm9pZCkK LS17Ci0tCWNvbnN0IGNoYXIgKmRvd25sb2FkX2RpcjsKLS0JY2hhciAqZGlyOwotLQotLQlkb3du bG9hZF9kaXIgPSBnX2dldF91c2VyX3NwZWNpYWxfZGlyIChHX1VTRVJfRElSRUNUT1JZX0RPV05M T0FEKTsKLS0JaWYgKGRvd25sb2FkX2RpciAhPSBOVUxMICYmIHN0cmNtcCAoZG93bmxvYWRfZGly LCBnX2dldF9ob21lX2RpciAoKSkgIT0gMCkgewotLQkJZ19ta2Rpcl93aXRoX3BhcmVudHMgKGRv d25sb2FkX2RpciwgMDc1NSk7Ci0tCQlyZXR1cm4gZ19zdHJkdXAgKGRvd25sb2FkX2Rpcik7Ci0t CX0KLS0KLS0JZGlyID0gZ19idWlsZF9maWxlbmFtZSAoZ19nZXRfaG9tZV9kaXIgKCksICJEb3du bG9hZCIsIE5VTEwpOwotLQlnX21rZGlyX3dpdGhfcGFyZW50cyAoZGlyLCAwNzU1KTsKLS0JcmV0 dXJuIGRpcjsKLS19Ci0tCi0gc3RhdGljIHZvaWQKLSBtaWdyYXRlX29sZF9jb25maWd1cmF0aW9u ICh2b2lkKQotIHsKLS0tIAotMS42LjUuMQotCgpkaWZmIC0tZ2l0IGEvZ25vbWUtdXNlci1zaGFy ZS0yLjI5Lnh4LWh0dHBkLWRvbnQtbG9jYWxpemUtcmVhbG0ucGF0Y2ggYi9nbm9tZS11c2VyLXNo YXJlLTIuMjkueHgtaHR0cGQtZG9udC1sb2NhbGl6ZS1yZWFsbS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMTU3NmZhZC4uMDAwMDAwMAotLS0gYS9nbm9tZS11c2VyLXNoYXJl LTIuMjkueHgtaHR0cGQtZG9udC1sb2NhbGl6ZS1yZWFsbS5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDI1ICswLDAgQEAKLUZyb20gMWEyYWZmMDhjMTZjODdmY2FlMTA1NjNhY2Q5NDg1NjI0YTVl MjYyZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFRvbWFzIEJ6YXRlayA8dGJ6YXRl a0ByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAyMiBGZWIgMjAxMCAxNDoyNjowNiArMDEwMAotU3Vi amVjdDogW1BBVENIXSBEb24ndCB1c2UgbG9jYWxpemVkIHJlYWxtIHN0cmluZyB3aGVuIHN0YXJ0 aW5nIGh0dHBkCi0KLS0tLQotIHNyYy9odHRwLmMgfCAgICAyICstCi0gMSBmaWxlcyBjaGFuZ2Vk LCAxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaHR0 cC5jIGIvc3JjL2h0dHAuYwotaW5kZXggMzY3Mzk0YS4uMzM2N2QyYSAxMDA2NDQKLS0tLSBhL3Ny Yy9odHRwLmMKLSsrKyBiL3NyYy9odHRwLmMKLUBAIC0zNjksNyArMzY5LDcgQEAgc3Bhd25faHR0 cGQgKGludCBwb3J0LCBwaWRfdCAqcGlkX291dCkKLSAJZnJlZTUgPSBlbnZbaSsrXSA9IGdfc3Ry ZHVwX3ByaW50ZiAoIlhER19QVUJMSUNTSEFSRV9ESVI9JXMiLCBwdWJsaWNfZGlyKTsKLSAJZnJl ZTYgPSBlbnZbaSsrXSA9IGdfc3RyZHVwX3ByaW50ZiAoIlhER19DT05GSUdfSE9NRT0lcyIsIGdf Z2V0X3VzZXJfY29uZmlnX2RpciAoKSk7Ci0gCWZyZWU3ID0gZW52W2krK10gPSBnX3N0cmR1cF9w cmludGYgKCJHVVNfU0hBUkVfTkFNRT0lcyIsIGdldF9zaGFyZV9uYW1lICgpKTsKLS0JZnJlZTgg PSBlbnZbaSsrXSA9IGdfc3RyZHVwX3ByaW50ZiAoIkdVU19MT0dJTl9MQUJFTD0lcyIsIF8oIlBs ZWFzZSBsb2cgaW4gYXMgdGhlIHVzZXIgZ3Vlc3QiKSk7Ci0rCWZyZWU4ID0gZW52W2krK10gPSBn X3N0cmR1cF9wcmludGYgKCJHVVNfTE9HSU5fTEFCRUw9JXMiLCAiUGxlYXNlIGxvZyBpbiBhcyB0 aGUgdXNlciBndWVzdCIpOwotIAlmcmVlOSA9IGVudltpKytdID0gZ19zdHJkdXBfcHJpbnRmICgi SFRUUF9NT0RVTEVTX1BBVEg9JXMiLGdldF9odHRwZF9tb2R1bGVzX3BhdGggKCkpOwotIAllbnZb aSsrXSA9ICJMQU5HPUMiOwotIAllbnZbaV0gPSBOVUxMOwotLS0gCi0xLjcuMAotCgpkaWZmIC0t Z2l0IGEvZ25vbWUtdXNlci1zaGFyZS5zcGVjIGIvZ25vbWUtdXNlci1zaGFyZS5zcGVjCmluZGV4 IDY0ZGZkMDIuLjgyMDQ1MTYgMTAwNjQ0Ci0tLSBhL2dub21lLXVzZXItc2hhcmUuc3BlYworKysg Yi9nbm9tZS11c2VyLXNoYXJlLnNwZWMKQEAgLTEsMjMgKzEsMTEgQEAKIFN1bW1hcnk6IEdub21l IHVzZXIgZmlsZSBzaGFyaW5nCiBOYW1lOiBnbm9tZS11c2VyLXNoYXJlCi1WZXJzaW9uOiAyLjI4 LjEKLVJlbGVhc2U6IDUlez9kaXN0fQorVmVyc2lvbjogMi4yOS45MQorUmVsZWFzZTogMSV7P2Rp c3R9CiBMaWNlbnNlOiBHUEx2MisKIEdyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVz CiBVUkw6IGh0dHA6Ly93d3cuZ25vbWUub3JnCiBTb3VyY2UwOiBodHRwOi8vZG93bmxvYWQuZ25v bWUub3JnL3NvdXJjZXMvZ25vbWUtdXNlci1zaGFyZS8yLjI4LyV7bmFtZX0tJXt2ZXJzaW9ufS50 YXIuYnoyCi0jIGh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU3ODA5 MAotUGF0Y2gwOiBtZW51LXBhdGgucGF0Y2gKLSMgaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9NTU4MjQ0Ci0jIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3df YnVnLmNnaT9pZD02MDA0OTkKLVBhdGNoMTogMDAwMS1CdWctNTU4MjQ0LUVuYWJsaW5nLWdub21l LXVzZXItc2hhcmUtcmVxdWlyZXMtY2hhLnBhdGNoCi0lZGVmaW5lCQlfZGVmYXVsdF9wYXRjaF9m dXp6IDIKLVBhdGNoMjogMDAwMS1Vc2Utc2FtZS1kaXJlY3Rvcmllcy1pbi1uYXV0aWx1cy1iYXIt YW5kLWFwcC5wYXRjaAotQnVpbGRSZXF1aXJlczogaW50bHRvb2wgYXV0b21ha2UgYXV0b2NvbmYg bGlidG9vbAotIyBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTUz Mzk3NwotUGF0Y2gzOiAwMDAxLUF2b2lkLWNyYXNoaW5nLXdoZW4tZGJ1c19nX3Byb3h5X2NhbGwt ZmFpbHMtYnV0LXdpdGgucGF0Y2gKLVBhdGNoNDogZ25vbWUtdXNlci1zaGFyZS0yLjI5Lnh4LWh0 dHBkLWRvbnQtbG9jYWxpemUtcmVhbG0ucGF0Y2gKLQogCiBCdWlsZFJvb3Q6ICV7X3RtcHBhdGh9 LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LXJvb3QtJSgle19faWRfdX0gLW4pCiBSZXF1 aXJlczogaHR0cGQgPj0gMi4yLjAKQEAgLTU3LDEzICs0NSw2IEBAIFRoZSBwcm9ncmFtIGFsc28g YWxsb3dzIHRvIHNoYXJlIGZpbGVzIHVzaW5nIE9iZXhGVFAgb3ZlciBCbHVldG9vdGguCiAKICVw cmVwCiAlc2V0dXAgLXEKLSVwYXRjaDAgLXAxIC1iIC5tZW51LXBhdGgKLSVwYXRjaDEgLXAxIC1i IC5jbHVlYmFyCi0lcGF0Y2gyIC1wMSAtYiAuZGlycwotJXBhdGNoMyAtcDEgLWIgLmV4aXQtY3Jh c2gKLSVwYXRjaDQgLXAxIC1iIC5odHRwZC1yZWFsbQotCi1hdXRvcmVjb25mIC1mIC1pCiAKICVi dWlsZAogJWNvbmZpZ3VyZQpAQCAtMTQ0LDYgKzEyNSw5IEBAIGd0ay11cGRhdGUtaWNvbi1jYWNo ZSAtLXF1aWV0ICV7X2RhdGFkaXJ9L2ljb25zL2hpY29sb3IgPiYvZGV2L251bGwgfHwgOgogJXtf bGliZGlyfS9uYXV0aWx1cy9leHRlbnNpb25zLTIuMC8qLnNvCiAKICVjaGFuZ2Vsb2cKKyogV2Vk IEZlYiAyNCAyMDEwIEJhc3RpZW4gTm9jZXJhIDxibm9jZXJhQHJlZGhhdC5jb20+IDIuMjkuOTEt MQorLSBVcGRhdGUgdG8gMi4yOS45MQorCiAqIE1vbiBGZWIgMjIgMjAxMCBUb21hcyBCemF0ZWsg PHRiemF0ZWtAcmVkaGF0LmNvbT4gMi4yOC4xLTUKIC0gRG9uJ3QgdXNlIGxvY2FsaXplZCByZWFs bSBzdHJpbmcgd2hlbiBzdGFydGluZyBodHRwZAogCgpkaWZmIC0tZ2l0IGEvbWVudS1wYXRoLnBh dGNoIGIvbWVudS1wYXRoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTcy OWI4Li4wMDAwMDAwCi0tLSBhL21lbnUtcGF0aC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEy ICswLDAgQEAKLWRpZmYgLXVwIGdub21lLXVzZXItc2hhcmUtMi4yNi4wL2hlbHAvQy9nbm9tZS11 c2VyLXNoYXJlLnhtbC5tZW51LXBhdGggZ25vbWUtdXNlci1zaGFyZS0yLjI2LjAvaGVscC9DL2du b21lLXVzZXItc2hhcmUueG1sCi0tLS0gZ25vbWUtdXNlci1zaGFyZS0yLjI2LjAvaGVscC9DL2du b21lLXVzZXItc2hhcmUueG1sLm1lbnUtcGF0aAkyMDA5LTA0LTA1IDIzOjAyOjU4LjcxMDA4MzQ4 NiAtMDQwMAotKysrIGdub21lLXVzZXItc2hhcmUtMi4yNi4wL2hlbHAvQy9nbm9tZS11c2VyLXNo YXJlLnhtbAkyMDA5LTA0LTA1IDIzOjA0OjAwLjE0Nzc5Nzc1NiAtMDQwMAotQEAgLTY2LDcgKzY2 LDcgQEAKLSAgICAgICAgPHRpdGxlPlN0YXJ0aW5nICZhcHA7PC90aXRsZT4KLSAKLSAgICAgICAg PHBhcmE+Ci0tICAgICAgICAgVGhlICZhcHA7IHNlcnZpY2UgaXMgbm9ybWFsbHkgc3RhcnRlZCBi eSA8YXBwbGljYXRpb24+Z25vbWUtc2Vzc2lvbjwvYXBwbGljYXRpb24+IHdoZW4geW91IGxvZyBp bi4gWW91IGNhbiBjaGFuZ2UgdGhpcyBieSBvcGVuaW5nIDxtZW51Y2hvaWNlPjxndWltZW51PlBy ZWZlcmVuY2VzPC9ndWltZW51PjxndWltZW51PlNlc3Npb25zPC9ndWltZW51PjwvbWVudWNob2lj ZT4gaW4gdGhlIDxndWltZW51PlN5c3RlbTwvZ3VpbWVudT4gbWVudSwgYW5kIG1vZGlmeWluZyB0 aGUgJ1VzZXIgU2hhcmluZycgZW50cnkgaW4gdGhlIGxpc3Qgb2Ygc3RhcnR1cCBwcm9ncmFtcy4K LSsgICAgICAgICBUaGUgJmFwcDsgc2VydmljZSBpcyBub3JtYWxseSBzdGFydGVkIGJ5IDxhcHBs aWNhdGlvbj5nbm9tZS1zZXNzaW9uPC9hcHBsaWNhdGlvbj4gd2hlbiB5b3UgbG9nIGluLiBZb3Ug Y2FuIGNoYW5nZSB0aGlzIGJ5IG9wZW5pbmcgPG1lbnVjaG9pY2U+PGd1aW1lbnU+UHJlZmVyZW5j ZXM8L2d1aW1lbnU+PGd1aW1lbnU+U3RhcnR1cCBBcHBsaWNhdGlvbnM8L2d1aW1lbnU+PC9tZW51 Y2hvaWNlPiBpbiB0aGUgPGd1aW1lbnU+U3lzdGVtPC9ndWltZW51PiBtZW51LCBhbmQgbW9kaWZ5 aW5nIHRoZSAnVXNlciBTaGFyaW5nJyBlbnRyeSBpbiB0aGUgbGlzdCBvZiBzdGFydHVwIHByb2dy YW1zLgotICAgICAgICA8L3BhcmE+Ci0gCi0gICAgICAgIDxwYXJhPgoKZGlmZiAtLWdpdCBhL3Nv dXJjZXMgYi9zb3VyY2VzCmluZGV4IGI1ODZiZGMuLmI1ZGUxNTMgMTAwNjQ0Ci0tLSBhL3NvdXJj ZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBAQAotNGRkZTc1ZGU2ODI4MDUzNTdhZjU5OTVhNzQ4 ZDZlNGUgIGdub21lLXVzZXItc2hhcmUtMi4yOC4xLnRhci5iejIKKzMxYTdkZDgyY2IyNmM5MDRm MTQ3MDJmYTk0YTFiYzUxICBnbm9tZS11c2VyLXNoYXJlLTIuMjkuOTEudGFyLmJ6Mgo=