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: Sergio Durigan Junior To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Reenable libipt. Date: Thu, 23 Jul 2026 18:33:35 GMT Message-ID: <178483161511.1.2402102434644587757.rpms-gdb-f77476195000@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: f774761950008e9d9b0aab80044f135191b1e63c ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogZjc3NDc2MTk1MDAwOGU5ZDliMGFhYjgwMDQ0ZjEzNTE5MWIxZTYzYwog ICAgICAgICAgICBBdXRob3IgOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhh dC5jb20+CiAgICAgICAgICAgIERhdGUgICA6IDIwMTgtMDgtMDhUMTg6MDA6MDYtMDQ6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzIwOTEvLTIwNDAgaW4gMTMgZmlsZShzKQogICAgICAgICAgICBV UkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jL2Y3NzQ3NjE5 NTAwMDhlOWQ5YjBhYWI4MDA0NGYxMzUxOTFiMWU2M2M/YnJhbmNoPWZpeC1kdXAtcGF0Y2gKCiAg ICAgICAgICAgIExvZzoKICAgICAgICAgICAgUmVlbmFibGUgbGliaXB0LgpSZWJ1aWxkIGR1ZSB0 byBuZXcgbGliaXB0IHJlbGVhc2UuCkFkanVzdCBidW5kbGVkIGxpYmlwdDsgcmVtb3ZlIHVubmVj ZXNzYXJ5IHBhdGNoLgpTeW5jIElQdjYgcGF0Y2ggd2l0aCBGLTI4IEdEQi4KCi0tLQpkaWZmIC0t Z2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggMGFiZTU4YS4uOTQ5YzIwNCAxMDA2 NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0xLDMgKzEsMyBAQAogL2dk Yi1saWJzdGRjKystdjMtcHl0aG9uLTguMS4xLTIwMTgwNjI2LnRhci54egotL3YxLjYuMS50YXIu Z3oKIC9nZGItOC4xLjkwLjIwMTgwNzI3LnRhci54egorL3YyLjAudGFyLmd6CgpkaWZmIC0tZ2l0 IGEvX2dkYi5zcGVjLlBhdGNoLmluY2x1ZGUgYi9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQppbmRl eCA4YmEwZTQ4Li45NDZjNGFmIDEwMDY0NAotLS0gYS9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQor KysgYi9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQpAQCAtNTA1LDggKzUwNSwxMSBAQCBQYXRjaDEy MDogZ2RiLXZsYS1pbnRlbC1maXgtcHJpbnQtY2hhci1hcnJheS5wYXRjaAogUGF0Y2gxMjE6IGdk Yi1yaGJ6MTU1MzEwNC1zMzkweC1hcmNoMTItdGVzdC5wYXRjaAogCiAjIEltcGxlbWVudCBJUHY2 IHN1cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIgKFJIIEJaIDg4MTg0OSwgU2VyZ2lvIER1cmlnYW4g SnVuaW9yKS4KLVBhdGNoMTIyOiBnZGItcmhiejg4MTg0OS1pcHY2LTFvZjIucGF0Y2gKK1BhdGNo MTIyOiBnZGItcmhiejg4MTg0OS1pcHY2LTFvZjMucGF0Y2gKIAotIyBJbXBsZW1lbnQgSVB2NiBz dXBwb3J0IGZvciBHREIvZ2Ric2VydmVyIChSSCBCWiA4ODE4NDksIFNlcmdpbyBEdXJpZ2FuIEp1 bmlvcikuCi1QYXRjaDEyMzogZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2YyLnBhdGNoCisKK1BhdGNo MTIzOiBnZGItcmhiejg4MTg0OS1pcHY2LTJvZjMucGF0Y2gKKworCitQYXRjaDEyNDogZ2RiLXJo Yno4ODE4NDktaXB2Ni0zb2YzLnBhdGNoCiAKCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMucGF0Y2gu aW5jbHVkZSBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCmluZGV4IDI3YTM5YjcuLjk3ZjEyYzQg MTAwNjQ0Ci0tLSBhL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3BlYy5wYXRj aC5pbmNsdWRlCkBAIC0xMjEsMyArMTIxLDQgQEAKICVwYXRjaDEyMSAtcDEKICVwYXRjaDEyMiAt cDEKICVwYXRjaDEyMyAtcDEKKyVwYXRjaDEyNCAtcDEKCmRpZmYgLS1naXQgYS9fcGF0Y2hfb3Jk ZXIgYi9fcGF0Y2hfb3JkZXIKaW5kZXggMTFiNDEzMS4uYjEwNTM2YyAxMDA2NDQKLS0tIGEvX3Bh dGNoX29yZGVyCisrKyBiL19wYXRjaF9vcmRlcgpAQCAtMTE5LDUgKzExOSw2IEBAIGdkYi10ZXN0 c3VpdGUtcmVhZGxpbmU2My1zaWdpbnQucGF0Y2gKIGdkYi1hcmNoZXIucGF0Y2gKIGdkYi12bGEt aW50ZWwtZml4LXByaW50LWNoYXItYXJyYXkucGF0Y2gKIGdkYi1yaGJ6MTU1MzEwNC1zMzkweC1h cmNoMTItdGVzdC5wYXRjaAotZ2RiLXJoYno4ODE4NDktaXB2Ni0xb2YyLnBhdGNoCi1nZGItcmhi ejg4MTg0OS1pcHY2LTJvZjIucGF0Y2gKK2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMy5wYXRjaAor Z2RiLXJoYno4ODE4NDktaXB2Ni0yb2YzLnBhdGNoCitnZGItcmhiejg4MTg0OS1pcHY2LTNvZjMu cGF0Y2gKCmRpZmYgLS1naXQgYS9nZGItcmhiejg4MTg0OS1pcHY2LTFvZjIucGF0Y2ggYi9nZGIt cmhiejg4MTg0OS1pcHY2LTFvZjIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDUwNTEwYzguLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYno4ODE4NDktaXB2Ni0xb2YyLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTkzNCArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2VyZ2lvIER1cmlnYW4gSnVuaW9yIDxzZXJnaW9k akByZWRoYXQuY29tPgotRGF0ZTogRnJpLCAxOCBNYXkgMjAxOCAwMToyOToyNCAtMDQwMAotU3Vi amVjdDogZ2RiLXJoYno4ODE4NDktaXB2Ni0xb2YyLnBhdGNoCi0KLTs7IEltcGxlbWVudCBJUHY2 IHN1cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIgKFJIIEJaIDg4MTg0OSwgU2VyZ2lvIER1cmlnYW4g SnVuaW9yKS4KLQotSW1wbGVtZW50IElQdjYgc3VwcG9ydCBmb3IgR0RCL2dkYnNlcnZlcgotCi1U aGlzIHBhdGNoIGltcGxlbWVudHMgSVB2NiBzdXBwb3J0IGZvciBib3RoIEdEQiBhbmQgZ2Ric2Vy dmVyLiAgQmFzZWQKLW9uIG15IHJlc2VhcmNoLCBpdCBpcyB0aGUgZm91cnRoIGF0dGVtcHQgdG8g ZG8gdGhhdCBzaW5jZSAyMDA2LiAgU2luY2UKLUkgdXNlZCBpZGVhcyBmcm9tIGFsbCBvZiB0aGUg cHJldmlvdXMgcGF0Y2hlcywgSSBhbHNvIGFkZGVkIHRoZWlyCi1hdXRob3JzJ3MgbmFtZXMgb24g dGhlIENoYW5nZUxvZ3MgYXMgYSB3YXkgdG8gcmVjb2duaXplIHRoZWlyCi1lZmZvcnRzLiAgRm9y IHJlZmVyZW5jZSBzYWtlLCB5b3UgY2FuIGZpbmQgdGhlIHByZXZpb3VzIGF0dGVtcHRzIGF0Ogot Ci0gIGh0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAwNi0wOS9tc2cwMDE5 Mi5odG1sCi0KLSAgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE0LTAy L21zZzAwMjQ4Lmh0bWwKLQotICBodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVz LzIwMTYtMDIvbXNnMDAyMjYuaHRtbAotCi1UaGUgYmFzaWMgaWRlYSBiZWhpbmQgdGhlIHBhdGNo IGlzIHRvIHN0YXJ0IHVzaW5nIHRoZSBuZXcKLSdnZXRhZGRyaW5mbycvJ2dldG5hbWVpbmZvJyBj YWxscywgd2hpY2ggYXJlIHJlc3BvbnNpYmxlIGZvcgotdHJhbnNsYXRpbmcgbmFtZXMgYW5kIGFk ZHJlc3NlcyBpbiBhIHByb3RvY29sLWluZGVwZW5kZW50IHdheS4gIFRoaXMKLW1lYW5zIHRoYXQg aWYgd2UgZXZlciBoYXZlIGEgbmV3IHZlcnNpb24gb2YgdGhlIElQIHByb3RvY29sLCB3ZSB3b24n dAotbmVlZCB0byBjaGFuZ2UgdGhlIGNvZGUgYWdhaW4gKG9yLCBhdCBsZWFzdCwgd29uJ3QgaGF2 ZSB0byBjaGFuZ2UgdGhlCi1tYWpvcml0eSBvZiB0aGUgY29kZSkuCi0KLVRoZSBmdW5jdGlvbiAn Z2V0YWRkcmluZm8nIHJldHVybnMgYSBsaW5rZWQgbGlzdCBvZiBwb3NzaWJsZSBhZGRyZXNzZXMK LXRvIGNvbm5lY3QgdG8uICBEZWFsaW5nIHdpdGggbXVsdGlwbGUgYWRkcmVzc2VzIHByb3ZlZCB0 byBiZSBhIGhhcmQKLXRhc2sgd2l0aCB0aGUgY3VycmVudCBUQ1AgYXV0by1yZXRyeSBtZWNoYW5p c20gaW1wbGVtZW50ZWQgb24KLXNlci10Y3A6bmV0X29wZW4uICBGb3IgZXhhbXBsZSwgd2hlbiBn ZGJzZXJ2ZXIgbGlzdGVuZWQgb25seSBvbiBhbgotSVB2NCBzb2NrZXQ6Ci0KLSAgJCAuL2dkYnNl cnZlciAtLW9uY2UgMTI3LjAuMC4xOjEyMzQgLi9hLm91dAotCi1hbmQgR0RCIHdhcyBpbnN0cnVj dGVkIHRvIHRyeSB0byBjb25uZWN0IHRvIGJvdGggSVB2NiBhbmQgSVB2NAotc29ja2V0czoKLQot ICAkIC4vZ2RiIC1leCAndGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBsb2NhbGhvc3Q6MTIzNCcgLi9h Lm91dAotCi10aGUgdXNlciB3b3VsZCBub3RpY2UgYSBzb21ld2hhdCBiaWcgZGVsYXkgYmVmb3Jl IEdEQiB3YXMgYWJsZSB0bwotY29ubmVjdCB0byB0aGUgSVB2NCBzb2NrZXQuICBUaGlzIGhhcHBl bmVkIGJlY2F1c2UgR0RCIHdhcyB0cnlpbmcgdG8KLWNvbm5lY3QgdG8gdGhlIElQdjYgc29ja2V0 IGZpcnN0LCBhbmQgaGFkIHRvIHdhaXQgdW50aWwgdGhlIGNvbm5lY3Rpb24KLXRpbWVkIG91dCBi ZWZvcmUgaXQgdHJpZWQgdG8gY29ubmVjdCB0byB0aGUgSVB2NCBzb2NrZXQuCi0KLUZvciB0aGF0 IHJlYXNvbiwgSSBoYWQgdG8gcmV3cml0ZSB0aGUgbWFpbiBsb29wIGFuZCBpbXBsZW1lbnQgYSBu ZXcKLW1ldGhvZCBmb3IgaGFuZGxpbmcgbXVsdGlwbGUgY29ubmVjdGlvbnMuICBBZnRlciBzb21l IGRpc2N1c3Npb24sCi1QZWRybyBhbmQgSSBhZ3JlZWQgb24gdGhlIGZvbGxvd2luZyBhbGdvcml0 aG06Ci0KLSAgMSkgRm9yIGVhY2ggZW50cnkgcmV0dXJuZWQgYnkgJ2dldGFkZHJpbmZvJywgd2Ug dHJ5IHRvIG9wZW4gYSBzb2NrZXQKLSAgYW5kIGNvbm5lY3QgdG8gaXQuCi0KLSAgMi5hKSBJZiB3 ZSBoYXZlIGEgc3VjY2Vzc2Z1bCAnY29ubmVjdCcsIHdlIGp1c3QgdXNlIHRoYXQgY29ubmVjdGlv bi4KLQotICAyLmIpIElmIHdlIGRvbid0IGhhdmUgYSBzdWNjZXNzZnVsbCAnY29ubmVjdCcsIGJ1 dCBpZiB3ZSd2ZSBnb3QgYQotICBFQ09OTlJFRlVTRUQgKG1lYW5pbmcgdGhlIHRoZSBjb25uZWN0 aW9uIHdhcyByZWZ1c2VkKSwgd2Uga2VlcCB0cmFjawotICBvZiB0aGlzIGZhY3QgYnkgdXNpbmcg YSBmbGFnLgotCi0gIDIuYykgSWYgd2UgZG9uJ3QgaGF2ZSBhIHN1Y2Nlc3NmdWxsICdjb25uZWN0 JywgYnV0IGlmIHdlJ3ZlIGdvdCBhCi0gIEVJTlBST0dSRVNTIChtZWFuaW5nIHRoYXQgdGhlIGNv bm5lY3Rpb24gaXMgaW4gcHJvZ3Jlc3MpLCB3ZSBwZXJmb3JtCi0gIGEgJ3NlbGVjdCcgY2FsbCBv biB0aGUgc29ja2V0IHVudGlsIHdlIGhhdmUgYSByZXN1bHQgKGVpdGhlciBhCi0gIHN1Y2Nlc3Nm dWwgY29ubmVjdGlvbiwgb3IgYW4gZXJyb3Igb24gdGhlIHNvY2tldCkuCi0KLSAgMykgSWYgdGNw X2F1dG9fcmV0cnkgaXMgdHJ1ZSwgYW5kIHdlIGhhdmVuJ3QgZ290dGVuIGEgc3VjY2Vzc2Z1bAot ICBjb25uZWN0aW9uLCBhbmQgYXQgbGVhc3Qgb25lIG9mIG91ciBhdHRlbXB0cyBmYWlsZWQgd2l0 aAotICBFQ09OTlJFRlVTRUQsIHRoZW4gd2Ugd2FpdCBhIGxpdHRsZSBiaXQgKGkuZS4sIGNhbGwK LSAgJ3dhaXRfZm9yX2Nvbm5lY3QnKSwgY2hlY2sgdG8gc2VlIGlmIHRoZXJlIHdhcyBhCi0gIHRp bWVvdXQvaW50ZXJydXB0aW9uIChpbiB3aGljaCBjYXNlIHdlIGJhaWwgb3V0KSwgYW5kIHRoZW4g Z28gYmFjawotICB0byAoMSkuCi0KLUFmdGVyIG11bHRpcGxlIHRlc3RzLCBJIHdhcyBhYmxlIHRv IGNvbm5lY3Qgd2l0aG91dCBkZWxheSBvbiB0aGUKLXNjZW5hcmlvIGRlc2NyaWJlZCBhYm92ZSwg YW5kIHdhcyBhbHNvIGFibGUgdG8gY29ubmVjdCBpbiBhbGwgb3RoZXIKLXR5cGVzIG9mIHNjZW5h cmlvcy4KLQotSSBhbHNvIGltcGxlbWVudGVkIHNvbWUgaG9zdG5hbWUgcGFyc2luZyBmdW5jdGlv bnMgKGFsb25nIHdpdGggdGhlaXIKLWNvcnJlc3BvbmRpbmcgdW5pdCB0ZXN0cykgd2hpY2ggYXJl IHVzZWQgdG8gaGVscCBHREIgYW5kIGdkYnNlcnZlciB0bwotcGFyc2UgaG9zdG5hbWUgc3RyaW5n cyBwcm92aWRlZCBieSB0aGUgdXNlci4gIFRoZXNlIG5ldyBmdW5jdGlvbnMgYXJlCi1saXZpbmcg aW5zaWRlIGNvbW1vbi9uZXRzdHVmZi5bY2hdLiAgSSd2ZSBoYWQgdG8gZG8gdGhhdCBzaW5jZSBJ UHY2Ci1pbnRyb2R1Y2VzIGEgbmV3IFVSTCBzY2hlbWUsIHdoaWNoIGRlZmluZXMgdGhhdCBzcXVh cmUgYnJhY2tldHMgY2FuIGJlCi11c2VkIHRvIGVuY2xvc2UgdGhlIGhvc3QgcGFydCBhbmQgZGlm ZmVyZW50aWF0ZSBpdCBmcm9tIHRoZQotcG9ydCAoZS5nLiwgIls6OjFdOjEyMzQiIG1lYW5zICJo b3N0IDo6MSwgcG9ydCAxMjM0IikuICBJIHNwZW50IHNvbWUKLXRpbWUgdGhpbmtpbmcgYWJvdXQg YSByZWFzb25hYmxlIHdheSB0byBpbnRlcnByZXQgd2hhdCB0aGUgdXNlciB3YW50cywKLWFuZCBJ IGNhbWUgdXAgd2l0aCB0aGUgZm9sbG93aW5nOgotCi0gIC0gSWYgdGhlIHVzZXIgaGFzIHByb3Zp ZGVkIGEgcHJlZml4IHRoYXQgZG9lc24ndCBzcGVjaWZ5IHRoZSBwcm90b2NvbAotICAgIHZlcnNp b24gKGkuZS4sICJ0Y3A6IiBvciAidWRwOiIpLCBvciBpZiB0aGUgdXNlciBoYXMgbm90IHByb3Zp ZGVkCi0gICAgYW55IHByZWZpeCwgZG9uJ3QgbWFrZSBhbnkgYXNzdW1wdGlvbnMgKGkuZS4sIGFz c3VtZSBBRl9VTlNQRUMgd2hlbgotICAgIGRlYWxpbmcgd2l0aCAnZ2V0YWRkcmluZm8nKSAqdW5s ZXNzKiB0aGUgaG9zdCBzdGFydHMgd2l0aCAiWyIgKGluCi0gICAgd2hpY2ggY2FzZSwgYXNzdW1l IGl0J3MgYW4gSVB2NiBob3N0KS4KLQotICAtIElmIHRoZSB1c2VyIGhhcyBwcm92aWRlZCBhIHBy ZWZpeCB0aGF0IGRvZXMgc3BlY2lmeSB0aGUgcHJvdG9jb2wKLSAgICB2ZXJzaW9uIChpLmUuLCAi dGNwNDoiLCAidGNwNjoiLCAidWRwNDoiIG9yICJ1ZHA2OiIpLCB0aGVuIHJlc3BlY3QKLSAgICB0 aGF0LgotCi1UaGlzIG1ldGhvZCBkb2Vzbid0IGZvbGxvdyBzdHJpY3RseSB3aGF0IFJGQyAyNzMy IHByb3Bvc2VzICh0aGF0Ci1saXRlcmFsIElQdjYgYWRkcmVzc2VzIHNob3VsZCBiZSBwcm92aWRl ZCBlbmNsb3NlZCBpbiAiWyIgYW5kICJdIikKLWJlY2F1c2UgSVB2NiBhZGRyZXNzZXMgc3RpbGwg Y2FuIGJlIHByb3ZpZGVkIHdpdGhvdXQgc3F1YXJlIGJyYWNrZXRzCi1pbiBvdXIgY2FzZSwgYnV0 IHNpbmNlIHdlIGhhdmUgcHJlZml4ZXMgdG8gc3BlY2lmeSBwcm90b2NvbCB2ZXJzaW9ucyBJCi10 aGluayB0aGlzIGlzIG5vdCBhbiBpc3N1ZS4KLQotQW5vdGhlciB0aGluZyB3b3J0aCBtZW50aW9u aW5nIGlzIHRoZSBuZXcgJ0dEQl9URVNUX1NPQ0tFVEhPU1QnCi10ZXN0Y2FzZSBwYXJhbWV0ZXIs IHdoaWNoIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHNwZWNpZnkgdGhlCi1ob3N0bmFtZSAod2l0aG91 dCB0aGUgcG9ydCkgdG8gYmUgdXNlZCB3aGVuIHRlc3RpbmcgR0RCIGFuZAotZ2Ric2VydmVyLiAg Rm9yIGV4YW1wbGUsIHRvIHJ1biBJUHY2IHRlc3RzOgotCi0gICQgbWFrZSBjaGVjay1nZGIgUlVO VEVTVEZMQUdTPSdHREJfVEVTVF9TT0NLRVRIT1NUPXRjcDY6Wzo6MV0nCi0KLU9yLCB0byBydW4g SVB2NCB0ZXN0czoKLQotICAkIG1ha2UgY2hlY2stZ2RiIFJVTlRFU1RGTEFHUz0nR0RCX1RFU1Rf U09DS0VUSE9TVD10Y3A0OjEyNy4wLjAuMScKLQotVGhpcyByZXF1aXJlZCBhIGZldyBjaGFuZ2Vz IG9uIHRoZSBnZGJzZXJ2ZXItYmFzZS5leHAsIGFuZCBhbHNvIGEKLW1pbmltYWwgYWRqdXN0bWVu dCBvbiBnZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHAuCi0KLUZpbmFsbHks IEkndmUgaW1wbGVtZW50ZWQgYSBuZXcgdGVzdGNhc2UsCi1nZGIuc2VydmVyL3NlcnZlci1jb25u ZWN0LmV4cCwgd2hpY2ggaXMgc3VwcG9zZWQgdG8gcnVuIG9uIHRoZSBuYXRpdmUKLWhvc3QgYW5k IHBlcmZvcm0gdmFyaW91cyAic21va2UgdGVzdHMiIHVzaW5nIGRpZmZlcmVudCBjb25uZWN0aW9u Ci1tZXRob2RzLgotCi1UaGlzIHBhdGNoIGhhcyBiZWVuIHJlZ3Jlc3Npb24tdGVzdGVkIG9uIEJ1 aWxkQm90IGFuZCBsb2NhbGx5LCBhbmQKLWFsc28gYnVpbHQgdXNpbmcgYSB4ODZfNjQtdzY0LW1p bmd3MzIgR0NDLCBhbmQgbm8gcHJvYmxlbXMgd2VyZSBmb3VuZC4KLQotZ2RiL0NoYW5nZUxvZzoK LTIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+ Ci0JICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQkgICAg UGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KLQkgICAgVHN1dG9tdSBTZWtpICA8 c2VraXJpa2lAZ21haWwuY29tPgotCSAgICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29t PgotCi0JKiBNYWtlZmlsZS5pbiAoU1VCRElSX1VOSVRURVNUU19TUkNTKTogQWRkCi0JJ3VuaXR0 ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3RzLmMnLgotCShDT01NT05fU0ZJTEVT KTogQWRkICdjb21tb24vbmV0c3R1ZmYuYycuCi0JKEhGSUxFU19OT19TUkNESVIpOiBBZGQgJ2Nv bW1vbi9uZXRzdHVmZi5oJy4KLQkqIE5FV1MgKENoYW5nZXMgc2luY2UgR0RCIDguMik6IE1lbnRp b24gSVB2NiBzdXBwb3J0LgotCSogY29tbW9uL25ldHN0dWZmLmM6IE5ldyBmaWxlLgotCSogY29t bW9uL25ldHN0dWZmLmg6IE5ldyBmaWxlLgotCSogc2VyLXRjcC5jOiBJbmNsdWRlICduZXRzdHVm Zi5oJyBhbmQgJ3dzcGlhcGkuaCcuCi0JKHdhaXRfZm9yX2Nvbm5lY3QpOiBVcGRhdGUgY29tbWVu dC4gIE5ldyBwYXJhbWV0ZXIKLQknZ2RiOjpvcHRpb25hbDxpbnQ+IHNvY2snIGluc3RlYWQgb2Yg J3N0cnVjdCBzZXJpYWwgKnNjYicuCi0JVXNlICdzb2NrJyBkaXJlY3RseSBpbnN0ZWFkIG9mICdz Y2ItPmZkJy4KLQkodHJ5X2Nvbm5lY3QpOiBOZXcgZnVuY3Rpb24sIHdpdGggY29kZSBmcm9tICdu ZXRfb3BlbicuCi0JKG5ldF9vcGVuKTogUmV3cml0ZSBtYWluIGxvb3AgdG8gZGVhbCB3aXRoIG11 bHRpcGxlCi0Jc29ja2V0cy9hZGRyZXNzZXMuICBIYW5kbGUgSVB2Ni1zdHlsZSBob3N0bmFtZXM7 IGltcGxlbWVudAotCXN1cHBvcnQgZm9yIElQdjYgY29ubmVjdGlvbnMuCi0JKiB1bml0dGVzdHMv cGFyc2UtY29ubmVjdGlvbi1zcGVjLXNlbGZ0ZXN0cy5jOiBOZXcgZmlsZS4KLQotZ2RiL2dkYnNl cnZlci9DaGFuZ2VMb2c6Ci0yMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJn aW9kakByZWRoYXQuY29tPgotCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+Ci0JICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+Ci0JICAg IFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KLQotCSogTWFrZWZpbGUuaW4gKFNG SUxFUyk6IEFkZCAnJChzcmNkaXIpL2NvbW1vbi9uZXRzdHVmZi5jJy4KLQkoT0JTKTogQWRkICdj b21tb24vbmV0c3R1ZmYubycuCi0JKEdEQlJFUExBWV9PQlMpOiBMaWtld2lzZS4KLQkqIGdkYnJl cGxheS5jOiBJbmNsdWRlICd3c3BpYXBpLmgnIGFuZCAnbmV0c3R1ZmYuaCcuCi0JKHJlbW90ZV9v cGVuKTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIElQdjYKLQljb25uZWN0aW9ucy4KLQkqIHJlbW90 ZS11dGlscy5jOiBJbmNsdWRlICduZXRzdHVmZi5oJywgJ2ZpbGVzdHVmZi5oJwotCWFuZCAnd3Nw aWFwaS5oJy4KLQkoaGFuZGxlX2FjY2VwdF9ldmVudCk6IEFjY2VwdCBjb25uZWN0aW9ucyBmcm9t IElQdjYgc291cmNlcy4KLQkocmVtb3RlX3ByZXBhcmUpOiBIYW5kbGUgSVB2Ni1zdHlsZSBob3N0 bmFtZXM7IGltcGxlbWVudAotCXN1cHBvcnQgZm9yIElQdjYgY29ubmVjdGlvbnMuCi0JKHJlbW90 ZV9vcGVuKTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIHByaW50aW5nIGNvbm5lY3Rpb25zIGZyb20K LQlJUHY2IHNvdXJjZXMuCi0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgotMjAxOC0wNy0xMSAg U2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLQkgICAgSmFuIEty YXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCSAgICBQYXVsIEZlcnRzZXIg IDxmZXJjZXJwYXZAZ21haWwuY29tPgotCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFp bC5jb20+Ci0KLQkqIFJFQURNRSAoVGVzdHN1aXRlIFBhcmFtZXRlcnMpOiBNZW50aW9uIG5ldyAn R0RCX1RFU1RfU09DS0VUSE9TVCcKLQlwYXJhbWV0ZXIuCi0JKiBib2FyZHMvbmF0aXZlLWV4dGVu ZGVkLWdkYnNlcnZlci5leHA6IERvIG5vdCBzZXQgJ3NvY2tldGhvc3QnCi0JYnkgZGVmYXVsdC4K LQkqIGJvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cDogTGlrZXdpc2UuCi0JKiBnZGIuc2VydmVy L3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHA6IEltcHJvdmUgcmVnZXhwIHVzZWQKLQlmb3Ig ZGV0ZWN0aW5nIHdoZW4gYSByZW1vdGUgZGVidWdnaW5nIGNvbm5lY3Rpb24gc3VjY2VlZHMuCi0J KiBnZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cDogTmV3IGZpbGUuCi0JKiBsaWIvZ2Ric2Vy dmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfY29tbV9wb3J0KToKLQlEbyBu b3QgcHJlZml4IHRoZSBwb3J0IG51bWJlciB3aXRoICI6Ii4KLQkoZ2Ric2VydmVyX3N0YXJ0KTog TmV3IGdsb2JhbCBHREJfVEVTVF9TT0NLRVRIT1NULiAgSW1wbGVtZW50Ci0Jc3VwcG9ydCBmb3Ig ZGV0ZWN0aW5nIGFuZCB1c2luZyBpdC4gIEFkZCAnJGRlYnVnaG9zdF9nZGJzZXJ2ZXInCi0JdG8g dGhlIGxpc3Qgb2YgYXJndW1lbnRzIHVzZWQgdG8gc3RhcnQgZ2Ric2VydmVyLiAgSGFuZGxlIGNh c2UKLQl3aGVuIGdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBhIG5ldHdvcmsgbmFtZS4KLQotZ2Ri L2RvYy9DaGFuZ2VMb2c6Ci0yMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJn aW9kakByZWRoYXQuY29tPgotCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+Ci0JICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+Ci0JICAg IFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KLQotCSogZ2RiLnRleGluZm8gKFJl bW90ZSBDb25uZWN0aW9uIENvbW1hbmRzKTogQWRkIGV4cGxhbmF0aW9uCi0JYWJvdXQgbmV3IElQ djYgc3VwcG9ydC4gIEFkZCBuZXcgY29ubmVjdGlvbiBwcmVmaXhlcy4KLQotZGlmZiAtLWdpdCBh L2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgotLS0tIGEvZ2RiL01ha2VmaWxlLmlu Ci0rKysgYi9nZGIvTWFrZWZpbGUuaW4KLUBAIC00MzAsNiArNDMwLDcgQEAgU1VCRElSX1VOSVRU RVNUU19TUkNTID0gXAotIAl1bml0dGVzdHMvb2Zmc2V0LXR5cGUtc2VsZnRlc3RzLmMgXAotIAl1 bml0dGVzdHMvb2JzZXJ2YWJsZS1zZWxmdGVzdHMuYyBcCi0gCXVuaXR0ZXN0cy9vcHRpb25hbC1z ZWxmdGVzdHMuYyBcCi0rCXVuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3Rz LmMgXAotIAl1bml0dGVzdHMvcHRpZC1zZWxmdGVzdHMuYyBcCi0gCXVuaXR0ZXN0cy9yc3AtbG93 LXNlbGZ0ZXN0cy5jIFwKLSAJdW5pdHRlc3RzL3Njb3BlZF9mZC1zZWxmdGVzdHMuYyBcCi1AQCAt OTY3LDYgKzk2OCw3IEBAIENPTU1PTl9TRklMRVMgPSBcCi0gCWNvbW1vbi9qb2ItY29udHJvbC5j IFwKLSAJY29tbW9uL2dkYl90aWxkZV9leHBhbmQuYyBcCi0gCWNvbW1vbi9nZGJfdmVjcy5jIFwK LSsJY29tbW9uL25ldHN0dWZmLmMgXAotIAljb21tb24vbmV3LW9wLmMgXAotIAljb21tb24vcGF0 aHN0dWZmLmMgXAotIAljb21tb24vcHJpbnQtdXRpbHMuYyBcCi1AQCAtMTQ0OCw2ICsxNDUwLDcg QEAgSEZJTEVTX05PX1NSQ0RJUiA9IFwKLSAJY29tbW9uL2dkYl92ZWNzLmggXAotIAljb21tb24v Z2RiX3dhaXQuaCBcCi0gCWNvbW1vbi9jb21tb24taW5mZXJpb3IuaCBcCi0rCWNvbW1vbi9uZXRz dHVmZi5oIFwKLSAJY29tbW9uL2hvc3QtZGVmcy5oIFwKLSAJY29tbW9uL3BhdGhzdHVmZi5oIFwK LSAJY29tbW9uL3ByaW50LXV0aWxzLmggXAotZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05F V1MKLS0tLSBhL2dkYi9ORVdTCi0rKysgYi9nZGIvTkVXUwotQEAgLTEsNiArMSwxMiBAQAotIAkJ V2hhdCBoYXMgY2hhbmdlZCBpbiBHREI/Ci0gCSAgICAgKE9yZ2FuaXplZCByZWxlYXNlIGJ5IHJl bGVhc2UpCi0gCi0rKioqIENoYW5nZXMgc2luY2UgR0RCIDguMgotKwotKyogR0RCIGFuZCBHREJz ZXJ2ZXIgbm93IHN1cHBvcnQgSVB2NiBjb25uZWN0aW9ucy4gIElQdjYgYWRkcmVzc2VzCi0rICBj YW4gYmUgcGFzc2VkIHVzaW5nIHRoZSAnW0FERFJFU1NdOlBPUlQnIG5vdGF0aW9uLCBvciB0aGUg cmVndWxhcgotKyAgJ0FERFJFU1M6UE9SVCcgbWV0aG9kLgotKwotICoqKiBDaGFuZ2VzIGluIEdE QiA4LjIKLSAKLSAqIFRoZSAnc2V0IGRpc2Fzc2VtYmxlci1vcHRpb25zJyBjb21tYW5kIG5vdyBz dXBwb3J0cyBzcGVjaWZ5aW5nIG9wdGlvbnMKLWRpZmYgLS1naXQgYS9nZGIvY29tbW9uL25ldHN0 dWZmLmMgYi9nZGIvY29tbW9uL25ldHN0dWZmLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLS0g L2Rldi9udWxsCi0rKysgYi9nZGIvY29tbW9uL25ldHN0dWZmLmMKLUBAIC0wLDAgKzEsMTU1IEBA Ci0rLyogT3BlcmF0aW9ucyBvbiBuZXR3b3JrIHN0dWZmLgotKyAgIENvcHlyaWdodCAoQykgMjAx OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBUaGlzIGZpbGUgaXMgcGFy dCBvZiBHREIuCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAgIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICAgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwot KwotKyNpbmNsdWRlICJjb21tb24tZGVmcy5oIgotKyNpbmNsdWRlICJuZXRzdHVmZi5oIgotKyNp bmNsdWRlIDxhbGdvcml0aG0+Ci0rCi0rI2lmZGVmIFVTRV9XSU4zMkFQSQotKyNpbmNsdWRlIDx3 aW5zb2NrMi5oPgotKyNpbmNsdWRlIDx3c3BpYXBpLmg+Ci0rI2Vsc2UKLSsjaW5jbHVkZSA8bmV0 aW5ldC9pbi5oPgotKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KLSsjaW5jbHVkZSA8bmV0ZGIuaD4K LSsjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotKyNpbmNsdWRlIDxuZXRpbmV0L3RjcC5oPgotKyNl bmRpZgotKwotKy8qIFNlZSBjb21tb24vbmV0c3R1ZmYuaC4gICovCi0rCi0rc2NvcGVkX2ZyZWVf YWRkcmluZm86On5zY29wZWRfZnJlZV9hZGRyaW5mbyAoKQotK3sKLSsgIGZyZWVhZGRyaW5mbyAo bV9yZXMpOwotK30KLSsKLSsvKiBTZWUgY29tbW9uL25ldHN0dWZmLmguICAqLwotKwotK3BhcnNl ZF9jb25uZWN0aW9uX3NwZWMKLStwYXJzZV9jb25uZWN0aW9uX3NwZWNfd2l0aG91dF9wcmVmaXgg KHN0ZDo6c3RyaW5nIHNwZWMsIHN0cnVjdCBhZGRyaW5mbyAqaGludCkKLSt7Ci0rICBwYXJzZWRf Y29ubmVjdGlvbl9zcGVjIHJldDsKLSsgIHNpemVfdCBsYXN0X2NvbG9uX3BvcyA9IDA7Ci0rICAv KiBXZSdyZSBkZWFsaW5nIHdpdGggSVB2NiBpZjoKLSsKLSsgICAgIC0gYWlfZmFtaWx5IGlzIEFG X0lORVQ2LCBvcgotKyAgICAgLSBhaV9mYW1pbHkgaXMgbm90IEFGX0lORVQsIGFuZAotKyAgICAg ICAtIHNwZWNbMF0gaXMgJ1snLCBvcgotKyAgICAgICAtIHRoZSBudW1iZXIgb2YgJzonIG9uIHNw ZWMgaXMgZ3JlYXRlciB0aGFuIDEuICAqLwotKyAgYm9vbCBpc19pcHY2ID0gKGhpbnQtPmFpX2Zh bWlseSA9PSBBRl9JTkVUNgotKwkJICB8fCAoaGludC0+YWlfZmFtaWx5ICE9IEFGX0lORVQKLSsJ CSAgICAgICYmIChzcGVjWzBdID09ICdbJwotKwkJCSAgfHwgc3RkOjpjb3VudCAoc3BlYy5iZWdp biAoKSwKLSsJCQkJCSBzcGVjLmVuZCAoKSwgJzonKSA+IDEpKSk7Ci0rCi0rICBpZiAoaXNfaXB2 NikKLSsgICAgewotKyAgICAgIGlmIChzcGVjWzBdID09ICdbJykKLSsJewotKwkgIC8qIElQdjYg YWRkcmVzc2VzIGNhbiBiZSB3cml0dGVuIGFzICdbQUREUl06UE9SVCcsIGFuZCB3ZQotKwkgICAg IHN1cHBvcnQgdGhpcyBub3RhdGlvbi4gICovCi0rCSAgc2l6ZV90IGNsb3NlX2JyYWNrZXRfcG9z ID0gc3BlYy5maW5kX2ZpcnN0X29mICgnXScpOwotKwotKwkgIGlmIChjbG9zZV9icmFja2V0X3Bv cyA9PSBzdGQ6OnN0cmluZzo6bnBvcykKLSsJICAgIGVycm9yIChfKCJNaXNzaW5nIGNsb3NlIGJy YWNrZXQgaW4gaG9zdG5hbWUgJyVzJyIpLAotKwkJICAgc3BlYy5jX3N0ciAoKSk7Ci0rCi0rCSAg aGludC0+YWlfZmFtaWx5ID0gQUZfSU5FVDY7Ci0rCi0rCSAgY29uc3QgY2hhciBjID0gc3BlY1tj bG9zZV9icmFja2V0X3BvcyArIDFdOwotKwotKwkgIGlmIChjID09ICdcMCcpCi0rCSAgICBsYXN0 X2NvbG9uX3BvcyA9IHN0ZDo6c3RyaW5nOjpucG9zOwotKwkgIGVsc2UgaWYgKGMgIT0gJzonKQot KwkgICAgZXJyb3IgKF8oIkludmFsaWQgY3J1ZnQgYWZ0ZXIgY2xvc2UgYnJhY2tldCBpbiAnJXMn IiksCi0rCQkgICBzcGVjLmNfc3RyICgpKTsKLSsKLSsJICAvKiBFcmFzZSBib3RoICdbJyBhbmQg J10nLiAgKi8KLSsJICBzcGVjLmVyYXNlICgwLCAxKTsKLSsJICBzcGVjLmVyYXNlIChjbG9zZV9i cmFja2V0X3BvcyAtIDEsIDEpOwotKwl9Ci0rICAgICAgZWxzZSBpZiAoc3BlYy5maW5kX2ZpcnN0 X29mICgnXScpICE9IHN0ZDo6c3RyaW5nOjpucG9zKQotKwllcnJvciAoXygiTWlzc2luZyBvcGVu IGJyYWNrZXQgaW4gaG9zdG5hbWUgJyVzJyIpLAotKwkgICAgICAgc3BlYy5jX3N0ciAoKSk7Ci0r ICAgIH0KLSsKLSsgIGlmIChsYXN0X2NvbG9uX3BvcyA9PSAwKQotKyAgICBsYXN0X2NvbG9uX3Bv cyA9IHNwZWMuZmluZF9sYXN0X29mICgnOicpOwotKwotKyAgLyogVGhlIGxlbmd0aCBvZiB0aGUg aG9zdG5hbWUgcGFydC4gICovCi0rICBzaXplX3QgaG9zdF9sZW47Ci0rCi0rICBpZiAobGFzdF9j b2xvbl9wb3MgIT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0rICAgIHsKLSsgICAgICAvKiBUaGUgdXNl ciBoYXMgcHJvdmlkZWQgYSBwb3J0LiAgKi8KLSsgICAgICBob3N0X2xlbiA9IGxhc3RfY29sb25f cG9zOwotKyAgICAgIHJldC5wb3J0X3N0ciA9IHNwZWMuc3Vic3RyIChsYXN0X2NvbG9uX3BvcyAr IDEpOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIGhvc3RfbGVuID0gc3BlYy5zaXplICgpOwotKwot KyAgcmV0Lmhvc3Rfc3RyID0gc3BlYy5zdWJzdHIgKDAsIGhvc3RfbGVuKTsKLSsKLSsgIC8qIERl ZmF1bHQgaG9zdG5hbWUgaXMgbG9jYWxob3N0LiAgKi8KLSsgIGlmIChyZXQuaG9zdF9zdHIuZW1w dHkgKCkpCi0rICAgIHJldC5ob3N0X3N0ciA9ICJsb2NhbGhvc3QiOwotKwotKyAgcmV0dXJuIHJl dDsKLSt9Ci0rCi0rLyogU2VlIGNvbW1vbi9uZXRzdHVmZi5oLiAgKi8KLSsKLStwYXJzZWRfY29u bmVjdGlvbl9zcGVjCi0rcGFyc2VfY29ubmVjdGlvbl9zcGVjIChjb25zdCBjaGFyICpzcGVjLCBz dHJ1Y3QgYWRkcmluZm8gKmhpbnQpCi0rewotKyAgLyogU3RydWN0IHRvIGhvbGQgdGhlIGFzc29j aWF0aW9uIGJldHdlZW4gdmFsaWQgcHJlZml4ZXMsIHRoZWlyCi0rICAgICBmYW1pbHkgYW5kIHNv Y2t0eXBlLiAgKi8KLSsgIHN0cnVjdCBob3N0X3ByZWZpeAotKyAgICB7Ci0rICAgICAgLyogVGhl IHByZWZpeC4gICovCi0rICAgICAgY29uc3QgY2hhciAqcHJlZml4OwotKwotKyAgICAgIC8qIFRo ZSAnYWlfZmFtaWx5Jy4gICovCi0rICAgICAgaW50IGZhbWlseTsKLSsKLSsgICAgICAvKiBUaGUg J2FpX3NvY2t0eXBlJy4gICovCi0rICAgICAgaW50IHNvY2t0eXBlOwotKyAgICB9OwotKyAgc3Rh dGljIGNvbnN0IHN0cnVjdCBob3N0X3ByZWZpeCBwcmVmaXhlc1tdID0KLSsgICAgewotKyAgICAg IHsgInVkcDoiLCAgQUZfVU5TUEVDLCBTT0NLX0RHUkFNIH0sCi0rICAgICAgeyAidGNwOiIsICBB Rl9VTlNQRUMsIFNPQ0tfU1RSRUFNIH0sCi0rICAgICAgeyAidWRwNDoiLCBBRl9JTkVULCAgIFNP Q0tfREdSQU0gfSwKLSsgICAgICB7ICJ0Y3A0OiIsIEFGX0lORVQsICAgU09DS19TVFJFQU0gfSwK LSsgICAgICB7ICJ1ZHA2OiIsIEFGX0lORVQ2LCAgU09DS19ER1JBTSB9LAotKyAgICAgIHsgInRj cDY6IiwgQUZfSU5FVDYsICBTT0NLX1NUUkVBTSB9LAotKyAgICB9OwotKwotKyAgZm9yIChjb25z dCBob3N0X3ByZWZpeCBwcmVmaXggOiBwcmVmaXhlcykKLSsgICAgaWYgKHN0YXJ0c3dpdGggKHNw ZWMsIHByZWZpeC5wcmVmaXgpKQotKyAgICAgIHsKLSsJc3BlYyArPSBzdHJsZW4gKHByZWZpeC5w cmVmaXgpOwotKwloaW50LT5haV9mYW1pbHkgPSBwcmVmaXguZmFtaWx5OwotKwloaW50LT5haV9z b2NrdHlwZSA9IHByZWZpeC5zb2NrdHlwZTsKLSsJaGludC0+YWlfcHJvdG9jb2wKLSsJICA9IGhp bnQtPmFpX3NvY2t0eXBlID09IFNPQ0tfREdSQU0gPyBJUFBST1RPX1VEUCA6IElQUFJPVE9fVENQ OwotKwlicmVhazsKLSsgICAgICB9Ci0rCi0rICByZXR1cm4gcGFyc2VfY29ubmVjdGlvbl9zcGVj X3dpdGhvdXRfcHJlZml4IChzcGVjLCBoaW50KTsKLSt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL2NvbW1v bi9uZXRzdHVmZi5oIGIvZ2RiL2NvbW1vbi9uZXRzdHVmZi5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0 NAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL2NvbW1vbi9uZXRzdHVmZi5oCi1AQCAtMCwwICsx LDc2IEBACi0rLyogT3BlcmF0aW9ucyBvbiBuZXR3b3JrIHN0dWZmLgotKyAgIENvcHlyaWdodCAo QykgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBUaGlzIGZpbGUg aXMgcGFydCBvZiBHREIuCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAg IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsg ICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICAgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u ICAqLwotKwotKyNpZm5kZWYgTkVUU1RVRkZfSAotKyNkZWZpbmUgTkVUU1RVRkZfSAotKwotKyNp bmNsdWRlIDxzdHJpbmc+Ci0rCi0rLyogTGlrZSBOSV9NQVhIT1NUL05JX01BWFNFUlYsIGJ1dCBl bm91Z2ggZm9yIG51bWVyaWMgZm9ybXMuICAqLwotKyNkZWZpbmUgR0RCX05JX01BWF9BRERSIDY0 Ci0rI2RlZmluZSBHREJfTklfTUFYX1BPUlQgMTYKLSsKLSsvKiBIZWxwZXIgY2xhc3MgdG8gZ3Vh cmFudGVlIHRoYXQgd2UgYWx3YXlzIGNhbGwgJ2ZyZWVhZGRyaW5mbycuICAqLwotKwotK2NsYXNz IHNjb3BlZF9mcmVlX2FkZHJpbmZvCi0rewotK3B1YmxpYzoKLSsgIC8qIERlZmF1bHQgY29uc3Ry dWN0b3IuICAqLwotKyAgZXhwbGljaXQgc2NvcGVkX2ZyZWVfYWRkcmluZm8gKHN0cnVjdCBhZGRy aW5mbyAqYWluZm8pCi0rICAgIDogbV9yZXMgKGFpbmZvKQotKyAgewotKyAgfQotKwotKyAgLyog RGVzdHJ1Y3RvciByZXNwb25zaWJsZSBmb3IgZnJlZSdpbmcgTV9SRVMgYnkgY2FsbGluZwotKyAg ICAgJ2ZyZWVhZGRyaW5mbycuICAqLwotKyAgfnNjb3BlZF9mcmVlX2FkZHJpbmZvICgpOwotKwot KyAgRElTQUJMRV9DT1BZX0FORF9BU1NJR04gKHNjb3BlZF9mcmVlX2FkZHJpbmZvKTsKLSsKLStw cml2YXRlOgotKyAgLyogVGhlIGFkZHJpbmZvIHJlc291cmNlLiAgKi8KLSsgIHN0cnVjdCBhZGRy aW5mbyAqbV9yZXM7Ci0rfTsKLSsKLSsvKiBUaGUgc3RydWN0IHdlIHJldHVybiBhZnRlciBwYXJz aW5nIHRoZSBjb25uZWN0aW9uIHNwZWMuICAqLwotKwotK3N0cnVjdCBwYXJzZWRfY29ubmVjdGlv bl9zcGVjCi0rewotKyAgLyogVGhlIGhvc3RuYW1lLiAgKi8KLSsgIHN0ZDo6c3RyaW5nIGhvc3Rf c3RyOwotKwotKyAgLyogVGhlIHBvcnQsIGlmIGFueS4gICovCi0rICBzdGQ6OnN0cmluZyBwb3J0 X3N0cjsKLSt9OwotKwotKwotKy8qIFBhcnNlIFNQRUMgKHdoaWNoIGlzIGEgc3RyaW5nIGluIHRo ZSBmb3JtIG9mICJBRERSOlBPUlQiKSBhbmQKLSsgICByZXR1cm4gYSAncGFyc2VkX2Nvbm5lY3Rp b25fc3BlYycgc3RydWN0dXJlIHdpdGggdGhlIHByb3BlciBmaWVsZHMKLSsgICBmaWxsZWQgaW4u ICBBbHNvIGFkanVzdCBISU5UIGFjY29yZGluZ2x5LiAgKi8KLStleHRlcm4gcGFyc2VkX2Nvbm5l Y3Rpb25fc3BlYwotKyAgcGFyc2VfY29ubmVjdGlvbl9zcGVjX3dpdGhvdXRfcHJlZml4IChzdGQ6 OnN0cmluZyBzcGVjLAotKwkJCQkJc3RydWN0IGFkZHJpbmZvICpoaW50KTsKLSsKLSsvKiBQYXJz ZSBTUEVDICh3aGljaCBpcyBhIHN0cmluZyBpbiB0aGUgZm9ybSBvZgotKyAgICJbdGNwWzZdOnx1 ZHBbNl06XUFERFI6UE9SVCIpIGFuZCByZXR1cm4gYSAncGFyc2VkX2Nvbm5lY3Rpb25fc3BlYycK LSsgICBzdHJ1Y3R1cmUgd2l0aCB0aGUgcHJvcGVyIGZpZWxkcyBmaWxsZWQgaW4uICBBbHNvIGFk anVzdCBISU5UCi0rICAgYWNjb3JkaW5nbHkuICAqLwotK2V4dGVybiBwYXJzZWRfY29ubmVjdGlv bl9zcGVjIHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAoY29uc3QgY2hhciAqc3BlYywKLSsJCQkJCQkg ICAgIHN0cnVjdCBhZGRyaW5mbyAqaGludCk7Ci0rCi0rI2VuZGlmIC8qICEgTkVUU1RVRkZfSCAq LwotZGlmZiAtLWdpdCBhL2dkYi9kb2MvQ2hhbmdlTG9nIGIvZ2RiL2RvYy9DaGFuZ2VMb2cKLS0t LSBhL2dkYi9kb2MvQ2hhbmdlTG9nCi0rKysgYi9nZGIvZG9jL0NoYW5nZUxvZwotQEAgLTEsMyAr MSwxMSBAQAotKzIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJl ZGhhdC5jb20+Ci0rCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+Ci0rCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgotKwkgICAgVHN1 dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgotKwotKwkqIGdkYi50ZXhpbmZvIChSZW1v dGUgQ29ubmVjdGlvbiBDb21tYW5kcyk6IEFkZCBleHBsYW5hdGlvbgotKwlhYm91dCBuZXcgSVB2 NiBzdXBwb3J0LiAgQWRkIG5ldyBjb25uZWN0aW9uIHByZWZpeGVzLgotKwotIDIwMTgtMDctMDIg IE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AbWlwcy5jb20+Ci0gCi0gCVBSIHRkZXAvODI4Mgot ZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCi0t LS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCi0rKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCi1AQCAt MjA1NDgsMTYgKzIwNTQ4LDI3IEBAIElmIHlvdSdyZSB1c2luZyBhIHNlcmlhbCBsaW5lLCB5b3Ug bWF5IHdhbnQgdG8gZ2l2ZSBAdmFsdWV7R0RCTn0gdGhlCi0gQGNvZGV7dGFyZ2V0fSBjb21tYW5k LgotIAotIEBpdGVtIHRhcmdldCByZW1vdGUgQGNvZGV7QHZhcntob3N0fTpAdmFye3BvcnR9fQot K0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle0B2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQotIEBp dGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3RjcDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0 ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwOkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQotK0Bp dGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3RjcDQ6QHZhcntob3N0fTpAdmFye3BvcnR9fQotK0Bp dGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3RjcDY6QHZhcntob3N0fTpAdmFye3BvcnR9fQotK0Bp dGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3RjcDY6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19Ci0g QGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7QHZhcntob3N0fTpAdmFye3BvcnR9 fQotK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle0B2YXJ7W2hvc3RdfTpAdmFy e3BvcnR9fQotIEBpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3RjcDpAdmFye2hv c3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNw OkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQotK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3Rl IEBjb2Rle3RjcDQ6QHZhcntob3N0fTpAdmFye3BvcnR9fQotK0BpdGVteCB0YXJnZXQgZXh0ZW5k ZWQtcmVtb3RlIEBjb2Rle3RjcDY6QHZhcntob3N0fTpAdmFye3BvcnR9fQotK0BpdGVteCB0YXJn ZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3RjcDY6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19Ci0g QGNpbmRleCBAYWNyb255bXtUQ1B9IHBvcnQsIEBjb2Rle3RhcmdldCByZW1vdGV9Ci0gRGVidWcg dXNpbmcgYSBAYWNyb255bXtUQ1B9IGNvbm5lY3Rpb24gdG8gQHZhcntwb3J0fSBvbiBAdmFye2hv c3R9LgotLVRoZSBAdmFye2hvc3R9IG1heSBiZSBlaXRoZXIgYSBob3N0IG5hbWUgb3IgYSBudW1l cmljIEBhY3Jvbnlte0lQfQotLWFkZHJlc3M7IEB2YXJ7cG9ydH0gbXVzdCBiZSBhIGRlY2ltYWwg bnVtYmVyLiAgVGhlIEB2YXJ7aG9zdH0gY291bGQgYmUKLS10aGUgdGFyZ2V0IG1hY2hpbmUgaXRz ZWxmLCBpZiBpdCBpcyBkaXJlY3RseSBjb25uZWN0ZWQgdG8gdGhlIG5ldCwgb3IKLS1pdCBtaWdo dCBiZSBhIHRlcm1pbmFsIHNlcnZlciB3aGljaCBpbiB0dXJuIGhhcyBhIHNlcmlhbCBsaW5lIHRv IHRoZQotLXRhcmdldC4KLStUaGUgQHZhcntob3N0fSBtYXkgYmUgZWl0aGVyIGEgaG9zdCBuYW1l LCBhIG51bWVyaWMgQGFjcm9ueW17SVB2NH0KLSthZGRyZXNzLCBvciBhIG51bWVyaWMgQGFjcm9u eW17SVB2Nn0gYWRkcmVzcyAod2l0aCBvciB3aXRob3V0IHRoZQotK3NxdWFyZSBicmFja2V0cyB0 byBzZXBhcmF0ZSB0aGUgYWRkcmVzcyBmcm9tIHRoZSBwb3J0KTsgQHZhcntwb3J0fQotK211c3Qg YmUgYSBkZWNpbWFsIG51bWJlci4gIFRoZSBAdmFye2hvc3R9IGNvdWxkIGJlIHRoZSB0YXJnZXQg bWFjaGluZQotK2l0c2VsZiwgaWYgaXQgaXMgZGlyZWN0bHkgY29ubmVjdGVkIHRvIHRoZSBuZXQs IG9yIGl0IG1pZ2h0IGJlIGEKLSt0ZXJtaW5hbCBzZXJ2ZXIgd2hpY2ggaW4gdHVybiBoYXMgYSBz ZXJpYWwgbGluZSB0byB0aGUgdGFyZ2V0LgotIAotIEZvciBleGFtcGxlLCB0byBjb25uZWN0IHRv IHBvcnQgMjgyOCBvbiBhIHRlcm1pbmFsIHNlcnZlciBuYW1lZAotIEBjb2Rle21hbnlmYXJtc306 Ci1AQCAtMjA1NjYsNiArMjA1NzcsMjggQEAgRm9yIGV4YW1wbGUsIHRvIGNvbm5lY3QgdG8gcG9y dCAyODI4IG9uIGEgdGVybWluYWwgc2VydmVyIG5hbWVkCi0gdGFyZ2V0IHJlbW90ZSBtYW55ZmFy bXM6MjgyOAotIEBlbmQgc21hbGxleGFtcGxlCi0gCi0rVG8gY29ubmVjdCB0byBwb3J0IDI4Mjgg b24gYSB0ZXJtaW5hbCBzZXJ2ZXIgd2hvc2UgYWRkcmVzcyBpcwotK0Bjb2RlezIwMDE6MGRiODo4 NWEzOjAwMDA6MDAwMDo4YTJlOjAzNzA6NzMzNH0sIHlvdSBjYW4gZWl0aGVyIHVzZSB0aGUKLStz cXVhcmUgYnJhY2tldCBzeW50YXg6Ci0rCi0rQHNtYWxsZXhhbXBsZQotK3RhcmdldCByZW1vdGUg WzIwMDE6MGRiODo4NWEzOjAwMDA6MDAwMDo4YTJlOjAzNzA6NzMzNF06MjgyOAotK0BlbmQgc21h bGxleGFtcGxlCi0rCi0rQG5vaW5kZW50Ci0rb3IgZXhwbGljaXRseSBzcGVjaWZ5IHRoZSBAYWNy b255bXtJUHY2fSBwcm90b2NvbDoKLSsKLStAc21hbGxleGFtcGxlCi0rdGFyZ2V0IHJlbW90ZSB0 Y3A2OjIwMDE6MGRiODo4NWEzOjAwMDA6MDAwMDo4YTJlOjAzNzA6NzMzNDoyODI4Ci0rQGVuZCBz bWFsbGV4YW1wbGUKLSsKLStUaGlzIGxhc3QgZXhhbXBsZSBtYXkgYmUgY29uZnVzaW5nIHRvIHRo ZSByZWFkZXIsIGJlY2F1c2UgdGhlcmUgaXMgbm8KLSt2aXNpYmxlIHNlcGFyYXRpb24gYmV0d2Vl biB0aGUgaG9zdG5hbWUgYW5kIHRoZSBwb3J0IG51bWJlci4KLStUaGVyZWZvcmUsIHdlIHJlY29t bWVuZCB0aGUgdXNlciB0byBwcm92aWRlIEBhY3Jvbnlte0lQdjZ9IGFkZHJlc3NlcwotK3VzaW5n IHNxdWFyZSBicmFja2V0cyBmb3IgY2xhcml0eS4gIEhvd2V2ZXIsIGl0IGlzIGltcG9ydGFudCB0 bwotK21lbnRpb24gdGhhdCBmb3IgQHZhbHVle0dEQk59IHRoZXJlIGlzIG5vIGFtYmlndWl0eTog dGhlIG51bWJlciBhZnRlcgotK3RoZSBsYXN0IGNvbG9uIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhl IHBvcnQgbnVtYmVyLgotKwotIElmIHlvdXIgcmVtb3RlIHRhcmdldCBpcyBhY3R1YWxseSBydW5u aW5nIG9uIHRoZSBzYW1lIG1hY2hpbmUgYXMgeW91cgotIGRlYnVnZ2VyIHNlc3Npb24gKGUuZy5A OiBhIHNpbXVsYXRvciBmb3IgeW91ciB0YXJnZXQgcnVubmluZyBvbiB0aGUKLSBzYW1lIGhvc3Qp LCB5b3UgY2FuIG9taXQgdGhlIGhvc3RuYW1lLiAgRm9yIGV4YW1wbGUsIHRvIGNvbm5lY3QgdG8K LUBAIC0yMDU3OSw3ICsyMDYxMiwxNSBAQCB0YXJnZXQgcmVtb3RlIDoxMjM0Ci0gTm90ZSB0aGF0 IHRoZSBjb2xvbiBpcyBzdGlsbCByZXF1aXJlZCBoZXJlLgotIAotIEBpdGVtIHRhcmdldCByZW1v dGUgQGNvZGV7dWRwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KLStAaXRlbXggdGFyZ2V0IHJlbW90 ZSBAY29kZXt1ZHA6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCByZW1v dGUgQGNvZGV7dWRwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCByZW1v dGUgQGNvZGV7dWRwNjpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KLStAaXRlbXggdGFyZ2V0IGV4 dGVuZGVkLXJlbW90ZSBAY29kZXt1ZHA6QHZhcntob3N0fTpAdmFye3BvcnR9fQotIEBpdGVteCB0 YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3VkcDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0r QGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwOkB2YXJ7W2hvc3RdfTpAdmFy e3BvcnR9fQotK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3VkcDQ6QHZhcnto b3N0fTpAdmFye3BvcnR9fQotK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3Vk cDY6QHZhcntob3N0fTpAdmFye3BvcnR9fQotK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3Rl IEBjb2Rle3VkcDY6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19Ci0gQGNpbmRleCBAYWNyb255bXtV RFB9IHBvcnQsIEBjb2Rle3RhcmdldCByZW1vdGV9Ci0gRGVidWcgdXNpbmcgQGFjcm9ueW17VURQ fSBwYWNrZXRzIHRvIEB2YXJ7cG9ydH0gb24gQHZhcntob3N0fS4gIEZvciBleGFtcGxlLCB0bwot IGNvbm5lY3QgdG8gQGFjcm9ueW17VURQfSBwb3J0IDI4Mjggb24gYSB0ZXJtaW5hbCBzZXJ2ZXIg bmFtZWQgQGNvZGV7bWFueWZhcm1zfToKLWRpZmYgLS1naXQgYS9nZGIvZ2Ric2VydmVyL0NoYW5n ZUxvZyBiL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCi0tLS0gYS9nZGIvZ2Ric2VydmVyL0NoYW5n ZUxvZwotKysrIGIvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cKLUBAIC0xLDMgKzEsMjIgQEAKLSsy MDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgot KwkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotKwkgICAg UGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KLSsJICAgIFRzdXRvbXUgU2VraSAg PHNla2lyaWtpQGdtYWlsLmNvbT4KLSsKLSsJKiBNYWtlZmlsZS5pbiAoU0ZJTEVTKTogQWRkICck KHNyY2RpcikvY29tbW9uL25ldHN0dWZmLmMnLgotKwkoT0JTKTogQWRkICdjb21tb24vbmV0c3R1 ZmYubycuCi0rCShHREJSRVBMQVlfT0JTKTogTGlrZXdpc2UuCi0rCSogZ2RicmVwbGF5LmM6IElu Y2x1ZGUgJ3dzcGlhcGkuaCcgYW5kICduZXRzdHVmZi5oJy4KLSsJKHJlbW90ZV9vcGVuKTogSW1w bGVtZW50IHN1cHBvcnQgZm9yIElQdjYKLSsJY29ubmVjdGlvbnMuCi0rCSogcmVtb3RlLXV0aWxz LmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgnLCAnZmlsZXN0dWZmLmgnCi0rCWFuZCAnd3NwaWFwaS5o Jy4KLSsJKGhhbmRsZV9hY2NlcHRfZXZlbnQpOiBBY2NlcHQgY29ubmVjdGlvbnMgZnJvbSBJUHY2 IHNvdXJjZXMuCi0rCShyZW1vdGVfcHJlcGFyZSk6IEhhbmRsZSBJUHY2LXN0eWxlIGhvc3RuYW1l czsgaW1wbGVtZW50Ci0rCXN1cHBvcnQgZm9yIElQdjYgY29ubmVjdGlvbnMuCi0rCShyZW1vdGVf b3Blbik6IEltcGxlbWVudCBzdXBwb3J0IGZvciBwcmludGluZyBjb25uZWN0aW9ucyBmcm9tCi0r CUlQdjYgc291cmNlcy4KLSsKLSAyMDE4LTA3LTExICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRo YXQuY29tPgotIAotIAlQUiBnZGIvMjMzNzcKLWRpZmYgLS1naXQgYS9nZGIvZ2Ric2VydmVyL01h a2VmaWxlLmluIGIvZ2RiL2dkYnNlcnZlci9NYWtlZmlsZS5pbgotLS0tIGEvZ2RiL2dkYnNlcnZl ci9NYWtlZmlsZS5pbgotKysrIGIvZ2RiL2dkYnNlcnZlci9NYWtlZmlsZS5pbgotQEAgLTIxMSw2 ICsyMTEsNyBAQCBTRklMRVMgPSBcCi0gCSQoc3JjZGlyKS9jb21tb24vam9iLWNvbnRyb2wuYyBc Ci0gCSQoc3JjZGlyKS9jb21tb24vZ2RiX3RpbGRlX2V4cGFuZC5jIFwKLSAJJChzcmNkaXIpL2Nv bW1vbi9nZGJfdmVjcy5jIFwKLSsJJChzcmNkaXIpL2NvbW1vbi9uZXRzdHVmZi5jIFwKLSAJJChz cmNkaXIpL2NvbW1vbi9uZXctb3AuYyBcCi0gCSQoc3JjZGlyKS9jb21tb24vcGF0aHN0dWZmLmMg XAotIAkkKHNyY2RpcikvY29tbW9uL3ByaW50LXV0aWxzLmMgXAotQEAgLTI1NCw2ICsyNTUsNyBA QCBPQlMgPSBcCi0gCWNvbW1vbi9mb3JtYXQubyBcCi0gCWNvbW1vbi9nZGJfdGlsZGVfZXhwYW5k Lm8gXAotIAljb21tb24vZ2RiX3ZlY3MubyBcCi0rCWNvbW1vbi9uZXRzdHVmZi5vIFwKLSAJY29t bW9uL25ldy1vcC5vIFwKLSAJY29tbW9uL3BhdGhzdHVmZi5vIFwKLSAJY29tbW9uL3ByaW50LXV0 aWxzLm8gXAotQEAgLTI5MCw2ICsyOTIsNyBAQCBHREJSRVBMQVlfT0JTID0gXAotIAljb21tb24v Y29tbW9uLWV4Y2VwdGlvbnMubyBcCi0gCWNvbW1vbi9jb21tb24tdXRpbHMubyBcCi0gCWNvbW1v bi9lcnJvcnMubyBcCi0rCWNvbW1vbi9uZXRzdHVmZi5vIFwKLSAJY29tbW9uL3ByaW50LXV0aWxz Lm8gXAotIAlnZGJyZXBsYXkubyBcCi0gCXV0aWxzLm8gXAotZGlmZiAtLWdpdCBhL2dkYi9nZGJz ZXJ2ZXIvZ2RicmVwbGF5LmMgYi9nZGIvZ2Ric2VydmVyL2dkYnJlcGxheS5jCi0tLS0gYS9nZGIv Z2Ric2VydmVyL2dkYnJlcGxheS5jCi0rKysgYi9nZGIvZ2Ric2VydmVyL2dkYnJlcGxheS5jCi1A QCAtNDYsOCArNDYsMTEgQEAKLSAKLSAjaWYgVVNFX1dJTjMyQVBJCi0gI2luY2x1ZGUgPHdpbnNv Y2syLmg+Ci0rI2luY2x1ZGUgPHdzcGlhcGkuaD4KLSAjZW5kaWYKLSAKLSsjaW5jbHVkZSAibmV0 c3R1ZmYuaCIKLSsKLSAjaWZuZGVmIEhBVkVfU09DS0xFTl9UCi0gdHlwZWRlZiBpbnQgc29ja2xl bl90OwotICNlbmRpZgotQEAgLTE0Miw1NiArMTQ1LDEwOCBAQCByZW1vdGVfY2xvc2UgKHZvaWQp Ci0gc3RhdGljIHZvaWQKLSByZW1vdGVfb3BlbiAoY2hhciAqbmFtZSkKLSB7Ci0tICBpZiAoIXN0 cmNociAobmFtZSwgJzonKSkKLSsgIGNoYXIgKmxhc3RfY29sb24gPSBzdHJyY2hyIChuYW1lLCAn OicpOwotKwotKyAgaWYgKGxhc3RfY29sb24gPT0gTlVMTCkKLSAgICAgewotICAgICAgIGZwcmlu dGYgKHN0ZGVyciwgIiVzOiBNdXN0IHNwZWNpZnkgdGNwIGNvbm5lY3Rpb24gYXMgaG9zdDphZGRy XG4iLCBuYW1lKTsKLSAgICAgICBmZmx1c2ggKHN0ZGVycik7Ci0gICAgICAgZXhpdCAoMSk7Ci0g ICAgIH0KLS0gIGVsc2UKLS0gICAgewotKwotICNpZmRlZiBVU0VfV0lOMzJBUEkKLS0gICAgICBz dGF0aWMgaW50IHdpbnNvY2tfaW5pdGlhbGl6ZWQ7Ci0rICBzdGF0aWMgaW50IHdpbnNvY2tfaW5p dGlhbGl6ZWQ7Ci0gI2VuZGlmCi0tICAgICAgY2hhciAqcG9ydF9zdHI7Ci0tICAgICAgaW50IHBv cnQ7Ci0tICAgICAgc3RydWN0IHNvY2thZGRyX2luIHNvY2thZGRyOwotLSAgICAgIHNvY2tsZW5f dCB0bXA7Ci0tICAgICAgaW50IHRtcF9kZXNjOwotKyAgY2hhciAqcG9ydF9zdHI7Ci0rICBpbnQg dG1wOwotKyAgaW50IHRtcF9kZXNjOwotKyAgc3RydWN0IGFkZHJpbmZvIGhpbnQ7Ci0rICBzdHJ1 Y3QgYWRkcmluZm8gKmFpbmZvOwotIAotLSAgICAgIHBvcnRfc3RyID0gc3RyY2hyIChuYW1lLCAn OicpOwotKyAgbWVtc2V0ICgmaGludCwgMCwgc2l6ZW9mIChoaW50KSk7Ci0rICAvKiBBc3N1bWUg bm8gcHJlZml4IHdpbGwgYmUgcGFzc2VkLCB0aGVyZWZvcmUgd2Ugc2hvdWxkIHVzZQotKyAgICAg QUZfVU5TUEVDLiAgKi8KLSsgIGhpbnQuYWlfZmFtaWx5ID0gQUZfVU5TUEVDOwotKyAgaGludC5h aV9zb2NrdHlwZSA9IFNPQ0tfU1RSRUFNOwotKyAgaGludC5haV9wcm90b2NvbCA9IElQUFJPVE9f VENQOwotIAotLSAgICAgIHBvcnQgPSBhdG9pIChwb3J0X3N0ciArIDEpOwotKyAgcGFyc2VkX2Nv bm5lY3Rpb25fc3BlYyBwYXJzZWQgPSBwYXJzZV9jb25uZWN0aW9uX3NwZWMgKG5hbWUsICZoaW50 KTsKLSsKLSsgIGlmIChwYXJzZWQucG9ydF9zdHIuZW1wdHkgKCkpCi0rICAgIGVycm9yIChfKCJN aXNzaW5nIHBvcnQgb24gaG9zdG5hbWUgJyVzJyIpLCBuYW1lKTsKLSAKLSAjaWZkZWYgVVNFX1dJ TjMyQVBJCi0tICAgICAgaWYgKCF3aW5zb2NrX2luaXRpYWxpemVkKQotLQl7Ci0tCSAgV1NBREFU QSB3c2FkOwotKyAgaWYgKCF3aW5zb2NrX2luaXRpYWxpemVkKQotKyAgICB7Ci0rICAgICAgV1NB REFUQSB3c2FkOwotIAotLQkgIFdTQVN0YXJ0dXAgKE1BS0VXT1JEICgxLCAwKSwgJndzYWQpOwot LQkgIHdpbnNvY2tfaW5pdGlhbGl6ZWQgPSAxOwotLQl9Ci0rICAgICAgV1NBU3RhcnR1cCAoTUFL RVdPUkQgKDEsIDApLCAmd3NhZCk7Ci0rICAgICAgd2luc29ja19pbml0aWFsaXplZCA9IDE7Ci0r ICAgIH0KLSAjZW5kaWYKLSAKLS0gICAgICB0bXBfZGVzYyA9IHNvY2tldCAoUEZfSU5FVCwgU09D S19TVFJFQU0sIDApOwotLSAgICAgIGlmICh0bXBfZGVzYyA9PSAtMSkKLS0JcGVycm9yX3dpdGhf bmFtZSAoIkNhbid0IG9wZW4gc29ja2V0Iik7Ci0rICBpbnQgciA9IGdldGFkZHJpbmZvIChwYXJz ZWQuaG9zdF9zdHIuY19zdHIgKCksIHBhcnNlZC5wb3J0X3N0ci5jX3N0ciAoKSwKLSsJCSAgICAg ICAmaGludCwgJmFpbmZvKTsKLSAKLS0gICAgICAvKiBBbGxvdyByYXBpZCByZXVzZSBvZiB0aGlz IHBvcnQuICovCi0tICAgICAgdG1wID0gMTsKLS0gICAgICBzZXRzb2Nrb3B0ICh0bXBfZGVzYywg U09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAoY2hhciAqKSAmdG1wLAotLQkJICBzaXplb2YgKHRt cCkpOwotKyAgaWYgKHIgIT0gMCkKLSsgICAgewotKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVz OiVzOiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiAlc1xuIiwKLSsJICAgICAgIHBhcnNlZC5ob3N0X3N0 ci5jX3N0ciAoKSwgcGFyc2VkLnBvcnRfc3RyLmNfc3RyICgpLAotKwkgICAgICAgZ2FpX3N0cmVy cm9yIChyKSk7Ci0rICAgICAgZmZsdXNoIChzdGRlcnIpOwotKyAgICAgIGV4aXQgKDEpOwotKyAg ICB9Ci0rCi0rICBzY29wZWRfZnJlZV9hZGRyaW5mbyBmcmVlX2FpbmZvIChhaW5mbyk7Ci0rCi0r ICBzdHJ1Y3QgYWRkcmluZm8gKnA7Ci0rCi0rICBmb3IgKHAgPSBhaW5mbzsgcCAhPSBOVUxMOyBw ID0gcC0+YWlfbmV4dCkKLSsgICAgewotKyAgICAgIHRtcF9kZXNjID0gc29ja2V0IChwLT5haV9m YW1pbHksIHAtPmFpX3NvY2t0eXBlLCBwLT5haV9wcm90b2NvbCk7Ci0gCi0tICAgICAgc29ja2Fk ZHIuc2luX2ZhbWlseSA9IFBGX0lORVQ7Ci0tICAgICAgc29ja2FkZHIuc2luX3BvcnQgPSBodG9u cyAocG9ydCk7Ci0tICAgICAgc29ja2FkZHIuc2luX2FkZHIuc19hZGRyID0gSU5BRERSX0FOWTsK LSsgICAgICBpZiAodG1wX2Rlc2MgPj0gMCkKLSsJYnJlYWs7Ci0rICAgIH0KLSsKLSsgIGlmIChw ID09IE5VTEwpCi0rICAgIHBlcnJvcl93aXRoX25hbWUgKCJDYW5ub3Qgb3BlbiBzb2NrZXQiKTsK LSAKLS0gICAgICBpZiAoYmluZCAodG1wX2Rlc2MsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2th ZGRyLCBzaXplb2YgKHNvY2thZGRyKSkKLS0JICB8fCBsaXN0ZW4gKHRtcF9kZXNjLCAxKSkKLS0J cGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGJpbmQgYWRkcmVzcyIpOwotKyAgLyogQWxsb3cgcmFw aWQgcmV1c2Ugb2YgdGhpcyBwb3J0LiAqLwotKyAgdG1wID0gMTsKLSsgIHNldHNvY2tvcHQgKHRt cF9kZXNjLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIsIChjaGFyICopICZ0bXAsCi0rCSAgICAg IHNpemVvZiAodG1wKSk7Ci0rCi0rICBzd2l0Y2ggKHAtPmFpX2ZhbWlseSkKLSsgICAgewotKyAg ICBjYXNlIEFGX0lORVQ6Ci0rICAgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikgcC0+YWlfYWRk ciktPnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNh c2UgQUZfSU5FVDY6Ci0rICAgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopIHAtPmFpX2FkZHIp LT5zaW42X2FkZHIgPSBpbjZhZGRyX2FueTsKLSsgICAgICBicmVhazsKLSsgICAgZGVmYXVsdDoK LSsgICAgICBmcHJpbnRmIChzdGRlcnIsICJJbnZhbGlkICdhaV9mYW1pbHknICVkXG4iLCBwLT5h aV9mYW1pbHkpOwotKyAgICAgIGV4aXQgKDEpOwotKyAgICB9Ci0rCi0rICBpZiAoYmluZCAodG1w X2Rlc2MsIHAtPmFpX2FkZHIsIHAtPmFpX2FkZHJsZW4pICE9IDApCi0rICAgIHBlcnJvcl93aXRo X25hbWUgKCJDYW4ndCBiaW5kIGFkZHJlc3MiKTsKLSsKLSsgIGlmIChwLT5haV9zb2NrdHlwZSA9 PSBTT0NLX0RHUkFNKQotKyAgICByZW1vdGVfZGVzYyA9IHRtcF9kZXNjOwotKyAgZWxzZQotKyAg ICB7Ci0rICAgICAgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2Ugc29ja2FkZHI7Ci0rICAgICAgc29j a2xlbl90IHNvY2thZGRyc2l6ZSA9IHNpemVvZiAoc29ja2FkZHIpOwotKyAgICAgIGNoYXIgb3Jp Z19ob3N0W0dEQl9OSV9NQVhfQUREUl0sIG9yaWdfcG9ydFtHREJfTklfTUFYX1BPUlRdOwotKwot KyAgICAgIGlmIChsaXN0ZW4gKHRtcF9kZXNjLCAxKSAhPSAwKQotKwlwZXJyb3Jfd2l0aF9uYW1l ICgiQ2FuJ3QgbGlzdGVuIG9uIHNvY2tldCIpOwotKwotKyAgICAgIHJlbW90ZV9kZXNjID0gYWNj ZXB0ICh0bXBfZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsCi0rCQkJICAgICZz b2NrYWRkcnNpemUpOwotIAotLSAgICAgIHRtcCA9IHNpemVvZiAoc29ja2FkZHIpOwotLSAgICAg IHJlbW90ZV9kZXNjID0gYWNjZXB0ICh0bXBfZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29j a2FkZHIsICZ0bXApOwotICAgICAgIGlmIChyZW1vdGVfZGVzYyA9PSAtMSkKLSAJcGVycm9yX3dp dGhfbmFtZSAoIkFjY2VwdCBmYWlsZWQiKTsKLSAKLUBAIC0yMDYsNiArMjYxLDE2IEBAIHJlbW90 ZV9vcGVuIChjaGFyICpuYW1lKQotICAgICAgIHNldHNvY2tvcHQgKHJlbW90ZV9kZXNjLCBJUFBS T1RPX1RDUCwgVENQX05PREVMQVksCi0gCQkgIChjaGFyICopICZ0bXAsIHNpemVvZiAodG1wKSk7 Ci0gCi0rICAgICAgaWYgKGdldG5hbWVpbmZvICgoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRk ciwgc29ja2FkZHJzaXplLAotKwkJICAgICAgIG9yaWdfaG9zdCwgc2l6ZW9mIChvcmlnX2hvc3Qp LAotKwkJICAgICAgIG9yaWdfcG9ydCwgc2l6ZW9mIChvcmlnX3BvcnQpLAotKwkJICAgICAgIE5J X05VTUVSSUNIT1NUIHwgTklfTlVNRVJJQ1NFUlYpID09IDApCi0rCXsKLSsJICBmcHJpbnRmIChz dGRlcnIsICJSZW1vdGUgZGVidWdnaW5nIGZyb20gaG9zdCAlcywgcG9ydCAlc1xuIiwKLSsJCSAg IG9yaWdfaG9zdCwgb3JpZ19wb3J0KTsKLSsJICBmZmx1c2ggKHN0ZGVycik7Ci0rCX0KLSsKLSAj aWZuZGVmIFVTRV9XSU4zMkFQSQotICAgICAgIGNsb3NlICh0bXBfZGVzYyk7CQkvKiBObyBsb25n ZXIgbmVlZCB0aGlzICovCi0gCi1kaWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRp bHMuYyBiL2dkYi9nZGJzZXJ2ZXIvcmVtb3RlLXV0aWxzLmMKLS0tLSBhL2dkYi9nZGJzZXJ2ZXIv cmVtb3RlLXV0aWxzLmMKLSsrKyBiL2dkYi9nZGJzZXJ2ZXIvcmVtb3RlLXV0aWxzLmMKLUBAIC0y Niw2ICsyNiw4IEBACi0gI2luY2x1ZGUgImRsbC5oIgotICNpbmNsdWRlICJyc3AtbG93LmgiCi0g I2luY2x1ZGUgImdkYnRocmVhZC5oIgotKyNpbmNsdWRlICJuZXRzdHVmZi5oIgotKyNpbmNsdWRl ICJmaWxlc3R1ZmYuaCIKLSAjaW5jbHVkZSA8Y3R5cGUuaD4KLSAjaWYgSEFWRV9TWVNfSU9DVExf SAotICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLUBAIC02Myw2ICs2NSw3IEBACi0gCi0gI2lmIFVT RV9XSU4zMkFQSQotICNpbmNsdWRlIDx3aW5zb2NrMi5oPgotKyNpbmNsdWRlIDx3c3BpYXBpLmg+ Ci0gI2VuZGlmCi0gCi0gI2lmIF9fUU5YX18KLUBAIC0xNTEsMTkgKzE1NCwxOCBAQCBlbmFibGVf YXN5bmNfbm90aWZpY2F0aW9uIChpbnQgZmQpCi0gc3RhdGljIGludAotIGhhbmRsZV9hY2NlcHRf ZXZlbnQgKGludCBlcnIsIGdkYl9jbGllbnRfZGF0YSBjbGllbnRfZGF0YSkKLSB7Ci0tICBzdHJ1 Y3Qgc29ja2FkZHJfaW4gc29ja2FkZHI7Ci0tICBzb2NrbGVuX3QgdG1wOwotKyAgc3RydWN0IHNv Y2thZGRyX3N0b3JhZ2Ugc29ja2FkZHI7Ci0rICBzb2NrbGVuX3QgbGVuID0gc2l6ZW9mIChzb2Nr YWRkcik7Ci0gCi0gICBpZiAoZGVidWdfdGhyZWFkcykKLSAgICAgZGVidWdfcHJpbnRmICgiaGFu ZGxpbmcgcG9zc2libGUgYWNjZXB0IGV2ZW50XG4iKTsKLSAKLS0gIHRtcCA9IHNpemVvZiAoc29j a2FkZHIpOwotLSAgcmVtb3RlX2Rlc2MgPSBhY2NlcHQgKGxpc3Rlbl9kZXNjLCAoc3RydWN0IHNv Y2thZGRyICopICZzb2NrYWRkciwgJnRtcCk7Ci0rICByZW1vdGVfZGVzYyA9IGFjY2VwdCAobGlz dGVuX2Rlc2MsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCAmbGVuKTsKLSAgIGlmIChy ZW1vdGVfZGVzYyA9PSAtMSkKLSAgICAgcGVycm9yX3dpdGhfbmFtZSAoIkFjY2VwdCBmYWlsZWQi KTsKLSAKLSAgIC8qIEVuYWJsZSBUQ1Aga2VlcCBhbGl2ZSBwcm9jZXNzLiAqLwotLSAgdG1wID0g MTsKLSsgIHNvY2tsZW5fdCB0bXAgPSAxOwotICAgc2V0c29ja29wdCAocmVtb3RlX2Rlc2MsIFNP TF9TT0NLRVQsIFNPX0tFRVBBTElWRSwKLSAJICAgICAgKGNoYXIgKikgJnRtcCwgc2l6ZW9mICh0 bXApKTsKLSAKLUBAIC0xOTIsOCArMTk0LDE5IEBAIGhhbmRsZV9hY2NlcHRfZXZlbnQgKGludCBl cnIsIGdkYl9jbGllbnRfZGF0YSBjbGllbnRfZGF0YSkKLSAgIGRlbGV0ZV9maWxlX2hhbmRsZXIg KGxpc3Rlbl9kZXNjKTsKLSAKLSAgIC8qIENvbnZlcnQgSVAgYWRkcmVzcyB0byBzdHJpbmcuICAq LwotLSAgZnByaW50ZiAoc3RkZXJyLCAiUmVtb3RlIGRlYnVnZ2luZyBmcm9tIGhvc3QgJXNcbiIs Ci0tCSAgIGluZXRfbnRvYSAoc29ja2FkZHIuc2luX2FkZHIpKTsKLSsgIGNoYXIgb3JpZ19ob3N0 W0dEQl9OSV9NQVhfQUREUl0sIG9yaWdfcG9ydFtHREJfTklfTUFYX1BPUlRdOwotKwotKyAgaW50 IHIgPSBnZXRuYW1laW5mbyAoKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsIGxlbiwKLSsJ CSAgICAgICBvcmlnX2hvc3QsIHNpemVvZiAob3JpZ19ob3N0KSwKLSsJCSAgICAgICBvcmlnX3Bv cnQsIHNpemVvZiAob3JpZ19wb3J0KSwKLSsJCSAgICAgICBOSV9OVU1FUklDSE9TVCB8IE5JX05V TUVSSUNTRVJWKTsKLSsKLSsgIGlmIChyICE9IDApCi0rICAgIGZwcmludGYgKHN0ZGVyciwgXygi Q291bGQgbm90IG9idGFpbiByZW1vdGUgYWRkcmVzczogJXNcbiIpLAotKwkgICAgIGdhaV9zdHJl cnJvciAocikpOwotKyAgZWxzZQotKyAgICBmcHJpbnRmIChzdGRlcnIsIF8oIlJlbW90ZSBkZWJ1 Z2dpbmcgZnJvbSBob3N0ICVzLCBwb3J0ICVzXG4iKSwKLSsJICAgICBvcmlnX2hvc3QsIG9yaWdf cG9ydCk7Ci0gCi0gICBlbmFibGVfYXN5bmNfbm90aWZpY2F0aW9uIChyZW1vdGVfZGVzYyk7Ci0g Ci1AQCAtMjIyLDEwICsyMzUsNyBAQCByZW1vdGVfcHJlcGFyZSAoY29uc3QgY2hhciAqbmFtZSkK LSAjaWZkZWYgVVNFX1dJTjMyQVBJCi0gICBzdGF0aWMgaW50IHdpbnNvY2tfaW5pdGlhbGl6ZWQ7 Ci0gI2VuZGlmCi0tICBpbnQgcG9ydDsKLS0gIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsK LSAgIHNvY2tsZW5fdCB0bXA7Ci0tICBjaGFyICpwb3J0X2VuZDsKLSAKLSAgIHJlbW90ZV9pc19z dGRpbyA9IDA7Ci0gICBpZiAoc3RyY21wIChuYW1lLCBTVERJT19DT05ORUNUSU9OX05BTUUpID09 IDApCi1AQCAtMjM4LDE3ICsyNDgsMjUgQEAgcmVtb3RlX3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5h bWUpCi0gICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi0tICBwb3J0X3N0ciA9IHN0cmNociAobmFt ZSwgJzonKTsKLS0gIGlmIChwb3J0X3N0ciA9PSBOVUxMKQotKyAgc3RydWN0IGFkZHJpbmZvIGhp bnQ7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gKmFpbmZvOwotKwotKyAgbWVtc2V0ICgmaGludCwgMCwg c2l6ZW9mIChoaW50KSk7Ci0rICAvKiBBc3N1bWUgbm8gcHJlZml4IHdpbGwgYmUgcGFzc2VkLCB0 aGVyZWZvcmUgd2Ugc2hvdWxkIHVzZQotKyAgICAgQUZfVU5TUEVDLiAgKi8KLSsgIGhpbnQuYWlf ZmFtaWx5ID0gQUZfVU5TUEVDOwotKyAgaGludC5haV9zb2NrdHlwZSA9IFNPQ0tfU1RSRUFNOwot KyAgaGludC5haV9wcm90b2NvbCA9IElQUFJPVE9fVENQOwotKwotKyAgcGFyc2VkX2Nvbm5lY3Rp b25fc3BlYyBwYXJzZWQKLSsgICAgPSBwYXJzZV9jb25uZWN0aW9uX3NwZWNfd2l0aG91dF9wcmVm aXggKG5hbWUsICZoaW50KTsKLSsKLSsgIGlmIChwYXJzZWQucG9ydF9zdHIuZW1wdHkgKCkpCi0g ICAgIHsKLSAgICAgICBjcy50cmFuc3BvcnRfaXNfcmVsaWFibGUgPSAwOwotICAgICAgIHJldHVy bjsKLSAgICAgfQotIAotLSAgcG9ydCA9IHN0cnRvdWwgKHBvcnRfc3RyICsgMSwgJnBvcnRfZW5k LCAxMCk7Ci0tICBpZiAocG9ydF9zdHJbMV0gPT0gJ1wwJyB8fCAqcG9ydF9lbmQgIT0gJ1wwJykK LS0gICAgZXJyb3IgKCJCYWQgcG9ydCBhcmd1bWVudDogJXMiLCBuYW1lKTsKLS0KLSAjaWZkZWYg VVNFX1dJTjMyQVBJCi0gICBpZiAoIXdpbnNvY2tfaW5pdGlhbGl6ZWQpCi0gICAgIHsKLUBAIC0y NTksOCArMjc3LDI2IEBAIHJlbW90ZV9wcmVwYXJlIChjb25zdCBjaGFyICpuYW1lKQotICAgICB9 Ci0gI2VuZGlmCi0gCi0tICBsaXN0ZW5fZGVzYyA9IHNvY2tldCAoUEZfSU5FVCwgU09DS19TVFJF QU0sIElQUFJPVE9fVENQKTsKLS0gIGlmIChsaXN0ZW5fZGVzYyA9PSAtMSkKLSsgIGludCByID0g Z2V0YWRkcmluZm8gKHBhcnNlZC5ob3N0X3N0ci5jX3N0ciAoKSwgcGFyc2VkLnBvcnRfc3RyLmNf c3RyICgpLAotKwkJICAgICAgICZoaW50LCAmYWluZm8pOwotKwotKyAgaWYgKHIgIT0gMCkKLSsg ICAgZXJyb3IgKF8oIiVzOiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiAlcyIpLCBuYW1lLCBnYWlfc3Ry ZXJyb3IgKHIpKTsKLSsKLSsgIHNjb3BlZF9mcmVlX2FkZHJpbmZvIGZyZWVhZGRyaW5mbyAoYWlu Zm8pOwotKwotKyAgc3RydWN0IGFkZHJpbmZvICppdGVyOwotKwotKyAgZm9yIChpdGVyID0gYWlu Zm87IGl0ZXIgIT0gTlVMTDsgaXRlciA9IGl0ZXItPmFpX25leHQpCi0rICAgIHsKLSsgICAgICBs aXN0ZW5fZGVzYyA9IGdkYl9zb2NrZXRfY2xvZXhlYyAoaXRlci0+YWlfZmFtaWx5LCBpdGVyLT5h aV9zb2NrdHlwZSwKLSsJCQkJCWl0ZXItPmFpX3Byb3RvY29sKTsKLSsKLSsgICAgICBpZiAobGlz dGVuX2Rlc2MgPj0gMCkKLSsJYnJlYWs7Ci0rICAgIH0KLSsKLSsgIGlmIChpdGVyID09IE5VTEwp Ci0gICAgIHBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBvcGVuIHNvY2tldCIpOwotIAotICAgLyog QWxsb3cgcmFwaWQgcmV1c2Ugb2YgdGhpcyBwb3J0LiAqLwotQEAgLTI2OCwxNCArMzA0LDI1IEBA IHJlbW90ZV9wcmVwYXJlIChjb25zdCBjaGFyICpuYW1lKQotICAgc2V0c29ja29wdCAobGlzdGVu X2Rlc2MsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgKGNoYXIgKikgJnRtcCwKLSAJICAgICAg c2l6ZW9mICh0bXApKTsKLSAKLS0gIHNvY2thZGRyLnNpbl9mYW1pbHkgPSBQRl9JTkVUOwotLSAg c29ja2FkZHIuc2luX3BvcnQgPSBodG9ucyAocG9ydCk7Ci0tICBzb2NrYWRkci5zaW5fYWRkci5z X2FkZHIgPSBJTkFERFJfQU5ZOwotKyAgc3dpdGNoIChpdGVyLT5haV9mYW1pbHkpCi0rICAgIHsK LSsgICAgY2FzZSBBRl9JTkVUOgotKyAgICAgICgoc3RydWN0IHNvY2thZGRyX2luICopIGl0ZXIt PmFpX2FkZHIpLT5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOwotKyAgICAgIGJyZWFrOwot KyAgICBjYXNlIEFGX0lORVQ2OgotKyAgICAgICgoc3RydWN0IHNvY2thZGRyX2luNiAqKSBpdGVy LT5haV9hZGRyKS0+c2luNl9hZGRyID0gaW42YWRkcl9hbnk7Ci0rICAgICAgYnJlYWs7Ci0rICAg IGRlZmF1bHQ6Ci0rICAgICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKLSsJ CSAgICAgIF8oIkludmFsaWQgJ2FpX2ZhbWlseScgJWRcbiIpLCBpdGVyLT5haV9mYW1pbHkpOwot KyAgICB9Ci0gCi0tICBpZiAoYmluZCAobGlzdGVuX2Rlc2MsIChzdHJ1Y3Qgc29ja2FkZHIgKikg JnNvY2thZGRyLCBzaXplb2YgKHNvY2thZGRyKSkKLS0gICAgICB8fCBsaXN0ZW4gKGxpc3Rlbl9k ZXNjLCAxKSkKLSsgIGlmIChiaW5kIChsaXN0ZW5fZGVzYywgaXRlci0+YWlfYWRkciwgaXRlci0+ YWlfYWRkcmxlbikgIT0gMCkKLSAgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGJpbmQgYWRk cmVzcyIpOwotIAotKyAgaWYgKGxpc3RlbiAobGlzdGVuX2Rlc2MsIDEpICE9IDApCi0rICAgIHBl cnJvcl93aXRoX25hbWUgKCJDYW4ndCBsaXN0ZW4gb24gc29ja2V0Iik7Ci0rCi0gICBjcy50cmFu c3BvcnRfaXNfcmVsaWFibGUgPSAxOwotIH0KLSAKLUBAIC0zNTAsMTggKzM5NywyNCBAQCByZW1v dGVfb3BlbiAoY29uc3QgY2hhciAqbmFtZSkKLSAjZW5kaWYgLyogVVNFX1dJTjMyQVBJICovCi0g ICBlbHNlCi0gICAgIHsKLS0gICAgICBpbnQgcG9ydDsKLS0gICAgICBzb2NrbGVuX3QgbGVuOwot LSAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsKLS0KLS0gICAgICBsZW4gPSBzaXpl b2YgKHNvY2thZGRyKTsKLS0gICAgICBpZiAoZ2V0c29ja25hbWUgKGxpc3Rlbl9kZXNjLAotLQkJ ICAgICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCAmbGVuKSA8IDAKLS0JICB8fCBs ZW4gPCBzaXplb2YgKHNvY2thZGRyKSkKLSsgICAgICBjaGFyIGxpc3Rlbl9wb3J0W0dEQl9OSV9N QVhfUE9SVF07Ci0rICAgICAgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2Ugc29ja2FkZHI7Ci0rICAg ICAgc29ja2xlbl90IGxlbiA9IHNpemVvZiAoc29ja2FkZHIpOwotKwotKyAgICAgIGlmIChnZXRz b2NrbmFtZSAobGlzdGVuX2Rlc2MsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCAmbGVu KSA8IDApCi0gCXBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBkZXRlcm1pbmUgcG9ydCIpOwotLSAg ICAgIHBvcnQgPSBudG9ocyAoc29ja2FkZHIuc2luX3BvcnQpOwotIAotLSAgICAgIGZwcmludGYg KHN0ZGVyciwgIkxpc3RlbmluZyBvbiBwb3J0ICVkXG4iLCBwb3J0KTsKLSsgICAgICBpbnQgciA9 IGdldG5hbWVpbmZvICgoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgbGVuLAotKwkJCSAg IE5VTEwsIDAsCi0rCQkJICAgbGlzdGVuX3BvcnQsIHNpemVvZiAobGlzdGVuX3BvcnQpLAotKwkJ CSAgIE5JX05VTUVSSUNTRVJWKTsKLSsKLSsgICAgICBpZiAociAhPSAwKQotKwlmcHJpbnRmIChz dGRlcnIsIF8oIkNhbid0IG9idGFpbiBwb3J0IHdoZXJlIHdlIGFyZSBsaXN0ZW5pbmc6ICVzIiks Ci0rCQkgZ2FpX3N0cmVycm9yIChyKSk7Ci0rICAgICAgZWxzZQotKwlmcHJpbnRmIChzdGRlcnIs IF8oIkxpc3RlbmluZyBvbiBwb3J0ICVzXG4iKSwgbGlzdGVuX3BvcnQpOwotKwotICAgICAgIGZm bHVzaCAoc3RkZXJyKTsKLSAKLSAgICAgICAvKiBSZWdpc3RlciB0aGUgZXZlbnQgbG9vcCBoYW5k bGVyLiAgKi8KLWRpZmYgLS1naXQgYS9nZGIvc2VyLXRjcC5jIGIvZ2RiL3Nlci10Y3AuYwotLS0t IGEvZ2RiL3Nlci10Y3AuYwotKysrIGIvZ2RiL3Nlci10Y3AuYwotQEAgLTI1LDYgKzI1LDcgQEAK LSAjaW5jbHVkZSAiY2xpL2NsaS1kZWNvZGUuaCIKLSAjaW5jbHVkZSAiY2xpL2NsaS1zZXRzaG93 LmgiCi0gI2luY2x1ZGUgImZpbGVzdHVmZi5oIgotKyNpbmNsdWRlICJuZXRzdHVmZi5oIgotIAot ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSAKLUBAIC0zOSw2ICs0MCw3IEBACi0gCi0gI2lmZGVm IFVTRV9XSU4zMkFQSQotICNpbmNsdWRlIDx3aW5zb2NrMi5oPgotKyNpbmNsdWRlIDx3c3BpYXBp Lmg+Ci0gI2lmbmRlZiBFVElNRURPVVQKLSAjZGVmaW5lIEVUSU1FRE9VVCBXU0FFVElNRURPVVQK LSAjZW5kaWYKLUBAIC04MSwxMiArODMsMTMgQEAgc3RhdGljIHVuc2lnbmVkIGludCB0Y3BfcmV0 cnlfbGltaXQgPSAxNTsKLSAKLSAjZGVmaW5lIFBPTExfSU5URVJWQUwgNQotIAotLS8qIEhlbHBl ciBmdW5jdGlvbiB0byB3YWl0IGEgd2hpbGUuICBJZiBTQ0IgaXMgbm9uLW51bGwsIHdhaXQgb24g aXRzCi0tICAgZmlsZSBkZXNjcmlwdG9yLiAgT3RoZXJ3aXNlIGp1c3Qgd2FpdCBvbiBhIHRpbWVv dXQsIHVwZGF0aW5nICpQT0xMUy4KLS0gICBSZXR1cm5zIC0xIG9uIHRpbWVvdXQgb3IgaW50ZXJy dXB0LCBvdGhlcndpc2UgdGhlIHZhbHVlIG9mIHNlbGVjdC4gICovCi0rLyogSGVscGVyIGZ1bmN0 aW9uIHRvIHdhaXQgYSB3aGlsZS4gIElmIFNPQ0sgaXMgbm90IC0xLCB3YWl0IG9uIGl0cwotKyAg IGZpbGUgZGVzY3JpcHRvci4gIE90aGVyd2lzZSBqdXN0IHdhaXQgb24gYSB0aW1lb3V0LCB1cGRh dGluZwotKyAgICpQT0xMUy4gIFJldHVybnMgLTEgb24gdGltZW91dCBvciBpbnRlcnJ1cHQsIG90 aGVyd2lzZSB0aGUgdmFsdWUgb2YKLSsgICBzZWxlY3QuICAqLwotIAotIHN0YXRpYyBpbnQKLS13 YWl0X2Zvcl9jb25uZWN0IChzdHJ1Y3Qgc2VyaWFsICpzY2IsIHVuc2lnbmVkIGludCAqcG9sbHMp Ci0rd2FpdF9mb3JfY29ubmVjdCAoaW50IHNvY2ssIHVuc2lnbmVkIGludCAqcG9sbHMpCi0gewot ICAgc3RydWN0IHRpbWV2YWwgdDsKLSAgIGludCBuOwotQEAgLTEyMCwyNCArMTIzLDI0IEBAIHdh aXRfZm9yX2Nvbm5lY3QgKHN0cnVjdCBzZXJpYWwgKnNjYiwgdW5zaWduZWQgaW50ICpwb2xscykK LSAgICAgICB0LnR2X3VzZWMgPSAwOwotICAgICB9Ci0gCi0tICBpZiAoc2NiKQotKyAgaWYgKHNv Y2sgPj0gMCkKLSAgICAgewotICAgICAgIGZkX3NldCByc2V0LCB3c2V0LCBlc2V0OwotIAotICAg ICAgIEZEX1pFUk8gKCZyc2V0KTsKLS0gICAgICBGRF9TRVQgKHNjYi0+ZmQsICZyc2V0KTsKLSsg ICAgICBGRF9TRVQgKHNvY2ssICZyc2V0KTsKLSAgICAgICB3c2V0ID0gcnNldDsKLSAgICAgICBl c2V0ID0gcnNldDsKLS0JICAKLSsKLSAgICAgICAvKiBQT1NJWCBzeXN0ZW1zIHJldHVybiBjb25u ZWN0aW9uIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBieSBzaWduYWxsaW5nCi0gCSB3c2V0LiAgV2luZG93 cyBzeXN0ZW1zIHJldHVybiBzdWNjZXNzIGluIHdzZXQgYW5kIGZhaWx1cmUgaW4KLSAJIGVzZXQu Ci0tICAgICAKLSsKLSAJIFdlIG11c3QgY2FsbCBzZWxlY3QgaGVyZSwgcmF0aGVyIHRoYW4gZ2Ri X3NlbGVjdCwgYmVjYXVzZQotIAkgdGhlIHNlcmlhbCBzdHJ1Y3R1cmUgaGFzIG5vdCB5ZXQgYmVl biBpbml0aWFsaXplZCAtIHRoZQotIAkgTWluR1cgc2VsZWN0IHdyYXBwZXIgd2lsbCBub3Qga25v dyB0aGF0IHRoaXMgRkQgcmVmZXJzCi0gCSB0byBhIHNvY2tldC4gICovCi0tICAgICAgbiA9IHNl bGVjdCAoc2NiLT5mZCArIDEsICZyc2V0LCAmd3NldCwgJmVzZXQsICZ0KTsKLSsgICAgICBuID0g c2VsZWN0IChzb2NrICsgMSwgJnJzZXQsICZ3c2V0LCAmZXNldCwgJnQpOwotICAgICB9Ci0gICBl bHNlCi0gICAgIC8qIFVzZSBnZGJfc2VsZWN0IGhlcmUsIHNpbmNlIHdlIGhhdmUgbm8gZmlsZSBk ZXNjcmlwdG9ycywgYW5kIG9uCi1AQCAtMTUzLDgwICsxNTYsMjggQEAgd2FpdF9mb3JfY29ubmVj dCAoc3RydWN0IHNlcmlhbCAqc2NiLCB1bnNpZ25lZCBpbnQgKnBvbGxzKQotICAgcmV0dXJuIG47 Ci0gfQotIAotLS8qIE9wZW4gYSB0Y3Agc29ja2V0LiAgKi8KLSsvKiBUcnkgdG8gY29ubmVjdCB0 byB0aGUgaG9zdCByZXByZXNlbnRlZCBieSBBSU5GTy4gIElmIHRoZSBjb25uZWN0aW9uCi0rICAg c3VjY2VlZHMsIHJldHVybiBpdHMgc29ja2V0LiAgT3RoZXJ3aXNlLCByZXR1cm4gLTEgYW5kIHNl dCBFUlJOTwotKyAgIGFjY29yZGluZ2x5LiAgUE9MTFMgaXMgdXNlZCB3aGVuICdjb25uZWN0JyBy ZXR1cm5zIEVJTlBST0dSRVNTLCBhbmQKLSsgICB3ZSBuZWVkIHRvIGludm9rZSAnd2FpdF9mb3Jf Y29ubmVjdCcgdG8gb2J0YWluIHRoZSBzdGF0dXMuICAqLwotIAotLWludAotLW5ldF9vcGVuIChz dHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIgKm5hbWUpCi0rc3RhdGljIGludAotK3RyeV9j b25uZWN0IChjb25zdCBzdHJ1Y3QgYWRkcmluZm8gKmFpbmZvLCB1bnNpZ25lZCBpbnQgKnBvbGxz KQotIHsKLS0gIGNoYXIgaG9zdG5hbWVbMTAwXTsKLS0gIGNvbnN0IGNoYXIgKnBvcnRfc3RyOwot LSAgaW50IG4sIHBvcnQsIHRtcDsKLS0gIGludCB1c2VfdWRwOwotLSAgc3RydWN0IGhvc3RlbnQg Kmhvc3RlbnQ7Ci0tICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc29ja2FkZHI7Ci0tI2lmZGVmIFVTRV9X SU4zMkFQSQotLSAgdV9sb25nIGlvYXJnOwotLSNlbHNlCi0tICBpbnQgaW9hcmc7Ci0tI2VuZGlm Ci0tICB1bnNpZ25lZCBpbnQgcG9sbHMgPSAwOwotLQotLSAgdXNlX3VkcCA9IDA7Ci0tICBpZiAo c3RhcnRzd2l0aCAobmFtZSwgInVkcDoiKSkKLS0gICAgewotLSAgICAgIHVzZV91ZHAgPSAxOwot LSAgICAgIG5hbWUgPSBuYW1lICsgNDsKLS0gICAgfQotLSAgZWxzZSBpZiAoc3RhcnRzd2l0aCAo bmFtZSwgInRjcDoiKSkKLS0gICAgbmFtZSA9IG5hbWUgKyA0OwotLQotLSAgcG9ydF9zdHIgPSBz dHJjaHIgKG5hbWUsICc6Jyk7Ci0tCi0tICBpZiAoIXBvcnRfc3RyKQotLSAgICBlcnJvciAoXygi bmV0X29wZW46IE5vIGNvbG9uIGluIGhvc3QgbmFtZSEiKSk7ICAvKiBTaG91bGRuJ3QgZXZlcgot LQkJCQkJCSAgICAgICBoYXBwZW4uICAqLwotLQotLSAgdG1wID0gc3RkOjptaW4gKHBvcnRfc3Ry IC0gbmFtZSwgKHB0cmRpZmZfdCkgc2l6ZW9mIGhvc3RuYW1lIC0gMSk7Ci0tICBzdHJuY3B5ICho b3N0bmFtZSwgbmFtZSwgdG1wKTsJLyogRG9uJ3Qgd2FudCBjb2xvbi4gICovCi0tICBob3N0bmFt ZVt0bXBdID0gJ1wwMDAnOwkvKiBUaWUgb2ZmIGhvc3QgbmFtZS4gICovCi0tICBwb3J0ID0gYXRv aSAocG9ydF9zdHIgKyAxKTsKLS0KLS0gIC8qIERlZmF1bHQgaG9zdG5hbWUgaXMgbG9jYWxob3N0 LiAgKi8KLS0gIGlmICghaG9zdG5hbWVbMF0pCi0tICAgIHN0cmNweSAoaG9zdG5hbWUsICJsb2Nh bGhvc3QiKTsKLS0KLS0gIGhvc3RlbnQgPSBnZXRob3N0YnluYW1lIChob3N0bmFtZSk7Ci0tICBp ZiAoIWhvc3RlbnQpCi0tICAgIHsKLS0gICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRl cnIsICIlczogdW5rbm93biBob3N0XG4iLCBob3N0bmFtZSk7Ci0tICAgICAgZXJybm8gPSBFTk9F TlQ7Ci0tICAgICAgcmV0dXJuIC0xOwotLSAgICB9Ci0rICBpbnQgc29jayA9IGdkYl9zb2NrZXRf Y2xvZXhlYyAoYWluZm8tPmFpX2ZhbWlseSwgYWluZm8tPmFpX3NvY2t0eXBlLAotKwkJCQkgYWlu Zm8tPmFpX3Byb3RvY29sKTsKLSAKLS0gIHNvY2thZGRyLnNpbl9mYW1pbHkgPSBQRl9JTkVUOwot LSAgc29ja2FkZHIuc2luX3BvcnQgPSBodG9ucyAocG9ydCk7Ci0tICBtZW1jcHkgKCZzb2NrYWRk ci5zaW5fYWRkci5zX2FkZHIsIGhvc3RlbnQtPmhfYWRkciwKLS0JICBzaXplb2YgKHN0cnVjdCBp bl9hZGRyKSk7Ci0tCi0tIHJldHJ5OgotLQotLSAgaWYgKHVzZV91ZHApCi0tICAgIHNjYi0+ZmQg PSBnZGJfc29ja2V0X2Nsb2V4ZWMgKFBGX0lORVQsIFNPQ0tfREdSQU0sIDApOwotLSAgZWxzZQot LSAgICBzY2ItPmZkID0gZ2RiX3NvY2tldF9jbG9leGVjIChQRl9JTkVULCBTT0NLX1NUUkVBTSwg MCk7Ci0tCi0tICBpZiAoc2NiLT5mZCA9PSAtMSkKLSsgIGlmIChzb2NrIDwgMCkKLSAgICAgcmV0 dXJuIC0xOwotLSAgCi0rCi0gICAvKiBTZXQgc29ja2V0IG5vbmJsb2NraW5nLiAgKi8KLS0gIGlv YXJnID0gMTsKLS0gIGlvY3RsIChzY2ItPmZkLCBGSU9OQklPLCAmaW9hcmcpOwotKyAgaW50IGlv YXJnID0gMTsKLSsKLSsgIGlvY3RsIChzb2NrLCBGSU9OQklPLCAmaW9hcmcpOwotIAotICAgLyog VXNlIE5vbi1ibG9ja2luZyBjb25uZWN0LiAgY29ubmVjdCgpIHdpbGwgcmV0dXJuIDAgaWYgY29u bmVjdGVkCi0gICAgICBhbHJlYWR5LiAgKi8KLS0gIG4gPSBjb25uZWN0IChzY2ItPmZkLCAoc3Ry dWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgc2l6ZW9mIChzb2NrYWRkcikpOwotLQotLSAgaWYg KG4gPCAwKQotKyAgaWYgKGNvbm5lY3QgKHNvY2ssIGFpbmZvLT5haV9hZGRyLCBhaW5mby0+YWlf YWRkcmxlbikgPCAwKQotICAgICB7Ci0gI2lmZGVmIFVTRV9XSU4zMkFQSQotICAgICAgIGludCBl cnIgPSBXU0FHZXRMYXN0RXJyb3IoKTsKLUBAIC0yMzQsMjEgKzE4NSwyNiBAQCBuZXRfb3BlbiAo c3RydWN0IHNlcmlhbCAqc2NiLCBjb25zdCBjaGFyICpuYW1lKQotICAgICAgIGludCBlcnIgPSBl cnJubzsKLSAjZW5kaWYKLSAKLS0gICAgICAvKiBNYXliZSB3ZSdyZSB3YWl0aW5nIGZvciB0aGUg cmVtb3RlIHRhcmdldCB0byBiZWNvbWUgcmVhZHkgdG8KLS0JIGFjY2VwdCBjb25uZWN0aW9ucy4g ICovCi0tICAgICAgaWYgKHRjcF9hdXRvX3JldHJ5Ci0rICAgICAgLyogSWYgd2UndmUgZ290IGEg ImNvbm5lY3Rpb24gcmVmdXNlZCIgZXJyb3IsIGp1c3QgcmV0dXJuCi0rCSAtMS4gIFRoZSBjYWxs ZXIgd2lsbCBrbm93IHdoYXQgdG8gZG8uICAqLwotKyAgICAgIGlmICgKLSAjaWZkZWYgVVNFX1dJ TjMyQVBJCi0tCSAgJiYgZXJyID09IFdTQUVDT05OUkVGVVNFRAotKwkgIGVyciA9PSBXU0FFQ09O TlJFRlVTRUQKLSAjZWxzZQotLQkgICYmIGVyciA9PSBFQ09OTlJFRlVTRUQKLSsJICBlcnIgPT0g RUNPTk5SRUZVU0VECi0gI2VuZGlmCi0tCSAgJiYgd2FpdF9mb3JfY29ubmVjdCAoTlVMTCwgJnBv bGxzKSA+PSAwKQotKwkgICkKLSAJewotLQkgIGNsb3NlIChzY2ItPmZkKTsKLS0JICBnb3RvIHJl dHJ5OwotKwkgIGNsb3NlIChzb2NrKTsKLSsJICBlcnJubyA9IGVycjsKLSsJICByZXR1cm4gLTE7 Ci0gCX0KLSAKLSAgICAgICBpZiAoCi0rCSAgLyogQW55IG90aGVyIGVycm9yIChleGNlcHQgRUlO UFJPR1JFU1MpIHdpbGwgYmUgInN3YWxsb3dlZCIKLSsJICAgICBoZXJlLiAgV2UgcmV0dXJuIHdp dGhvdXQgc3BlY2lmeWluZyBhIHJldHVybiB2YWx1ZSwgYW5kCi0rCSAgICAgc2V0IGVycm5vIGlm IHRoZSBjYWxsZXIgd2FudHMgdG8gaW5zcGVjdCB3aGF0Ci0rCSAgICAgaGFwcGVuZWQuICAqLwot ICNpZmRlZiBVU0VfV0lOMzJBUEkKLSAJICAvKiBVbmRlciBXaW5kb3dzLCBjYWxsaW5nICJjb25u ZWN0IiB3aXRoIGEgbm9uLWJsb2NraW5nIHNvY2tldAotIAkgICAgIHJlc3VsdHMgaW4gV1NBRVdP VUxEQkxPQ0ssIG5vdCBXU0FFSU5QUk9HUkVTUy4gICovCi1AQCAtMjU4LDY2ICsyMTQsMTY2IEBA IG5ldF9vcGVuIChzdHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIgKm5hbWUpCi0gI2VuZGlm Ci0gCSAgKQotIAl7Ci0rCSAgY2xvc2UgKHNvY2spOwotIAkgIGVycm5vID0gZXJyOwotLQkgIG5l dF9jbG9zZSAoc2NiKTsKLSAJICByZXR1cm4gLTE7Ci0gCX0KLSAKLSAgICAgICAvKiBMb29rcyBs aWtlIHdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIGNvbm5lY3QuICAqLwotLSAgICAgIGRvIAotLQl7 Ci0tCSAgbiA9IHdhaXRfZm9yX2Nvbm5lY3QgKHNjYiwgJnBvbGxzKTsKLS0JfSAKLSsgICAgICBp bnQgbjsKLSsKLSsgICAgICBkbwotKwluID0gd2FpdF9mb3JfY29ubmVjdCAoc29jaywgcG9sbHMp OwotICAgICAgIHdoaWxlIChuID09IDApOwotKwotICAgICAgIGlmIChuIDwgMCkKLSAJewotLQkg IG5ldF9jbG9zZSAoc2NiKTsKLSsJICBpbnQgc2F2ZWRfZXJybm8gPSBlcnJubzsKLSsKLSsJICAv KiBBIG5lZ2F0aXZlIHZhbHVlIGhlcmUgbWVhbnMgdGhhdCB3ZSBlaXRoZXIgdGltZWQgb3V0IG9y Ci0rCSAgICAgZ290IGludGVycnVwdGVkIGJ5IHRoZSB1c2VyLiAgSnVzdCByZXR1cm4uICAqLwot KwkgIGNsb3NlIChzb2NrKTsKLSsJICBlcnJubyA9IHNhdmVkX2Vycm5vOwotIAkgIHJldHVybiAt MTsKLSAJfQotICAgICB9Ci0gCi0gICAvKiBHb3Qgc29tZXRoaW5nLiAgSXMgaXQgYW4gZXJyb3I/ ICAqLwotLSAgewotLSAgICBpbnQgcmVzLCBlcnI7Ci0tICAgIHNvY2tsZW5fdCBsZW47Ci0tCi0t ICAgIGxlbiA9IHNpemVvZiAoZXJyKTsKLS0gICAgLyogT24gV2luZG93cywgdGhlIGZvdXJ0aCBw YXJhbWV0ZXIgdG8gZ2V0c29ja29wdCBpcyBhICJjaGFyICoiOwotLSAgICAgICBvbiBVTklYIHN5 c3RlbXMgaXQgaXMgZ2VuZXJhbGx5ICJ2b2lkICoiLiAgVGhlIGNhc3QgdG8gImNoYXIgKiIKLS0g ICAgICAgaXMgT0sgZXZlcnl3aGVyZSwgc2luY2UgaW4gQysrIGFueSBkYXRhIHBvaW50ZXIgdHlw ZSBjYW4gYmUKLS0gICAgICAgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gInZvaWQgKiIuICAqLwot LSAgICByZXMgPSBnZXRzb2Nrb3B0IChzY2ItPmZkLCBTT0xfU09DS0VULCBTT19FUlJPUiwgKGNo YXIgKikgJmVyciwgJmxlbik7Ci0tICAgIGlmIChyZXMgPCAwIHx8IGVycikKLS0gICAgICB7Ci0t CS8qIE1heWJlIHRoZSB0YXJnZXQgc3RpbGwgaXNuJ3QgcmVhZHkgdG8gYWNjZXB0IHRoZSBjb25u ZWN0aW9uLiAgKi8KLS0JaWYgKHRjcF9hdXRvX3JldHJ5Ci0rICBpbnQgZXJyOwotKyAgc29ja2xl bl90IGxlbiA9IHNpemVvZiAoZXJyKTsKLSsKLSsgIC8qIE9uIFdpbmRvd3MsIHRoZSBmb3VydGgg cGFyYW1ldGVyIHRvIGdldHNvY2tvcHQgaXMgYSAiY2hhciAqIjsKLSsgICAgIG9uIFVOSVggc3lz dGVtcyBpdCBpcyBnZW5lcmFsbHkgInZvaWQgKiIuICBUaGUgY2FzdCB0byAiY2hhciAqIgotKyAg ICAgaXMgT0sgZXZlcnl3aGVyZSwgc2luY2UgaW4gQysrIGFueSBkYXRhIHBvaW50ZXIgdHlwZSBj YW4gYmUKLSsgICAgIGltcGxpY2l0bHkgY29udmVydGVkIHRvICJ2b2lkICoiLiAgKi8KLSsgIGlu dCByZXQgPSBnZXRzb2Nrb3B0IChzb2NrLCBTT0xfU09DS0VULCBTT19FUlJPUiwgKGNoYXIgKikg JmVyciwgJmxlbik7Ci0rCi0rICBpZiAocmV0IDwgMCkKLSsgICAgewotKyAgICAgIGludCBzYXZl ZF9lcnJubyA9IGVycm5vOwotKwotKyAgICAgIGNsb3NlIChzb2NrKTsKLSsgICAgICBlcnJubyA9 IHNhdmVkX2Vycm5vOwotKyAgICAgIHJldHVybiAtMTsKLSsgICAgfQotKyAgZWxzZSBpZiAocmV0 ID09IDAgJiYgZXJyICE9IDApCi0rICAgIHsKLSsgICAgICBjbG9zZSAoc29jayk7Ci0rICAgICAg ZXJybm8gPSBlcnI7Ci0rICAgICAgcmV0dXJuIC0xOwotKyAgICB9Ci0rCi0rICAvKiBUaGUgY29u bmVjdGlvbiBzdWNjZWVkZWQuICBSZXR1cm4gdGhlIHNvY2tldC4gICovCi0rICByZXR1cm4gc29j azsKLSt9Ci0rCi0rLyogT3BlbiBhIHRjcCBzb2NrZXQuICAqLwotKwotK2ludAotK25ldF9vcGVu IChzdHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIgKm5hbWUpCi0rewotKyAgc3RydWN0IGFk ZHJpbmZvIGhpbnQ7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gKmFpbmZvOwotKwotKyAgbWVtc2V0ICgm aGludCwgMCwgc2l6ZW9mIChoaW50KSk7Ci0rICAvKiBBc3N1bWUgbm8gcHJlZml4IHdpbGwgYmUg cGFzc2VkLCB0aGVyZWZvcmUgd2Ugc2hvdWxkIHVzZQotKyAgICAgQUZfVU5TUEVDLiAgKi8KLSsg IGhpbnQuYWlfZmFtaWx5ID0gQUZfVU5TUEVDOwotKyAgaGludC5haV9zb2NrdHlwZSA9IFNPQ0tf U1RSRUFNOwotKyAgaGludC5haV9wcm90b2NvbCA9IElQUFJPVE9fVENQOwotKwotKyAgcGFyc2Vk X2Nvbm5lY3Rpb25fc3BlYyBwYXJzZWQgPSBwYXJzZV9jb25uZWN0aW9uX3NwZWMgKG5hbWUsICZo aW50KTsKLSsKLSsgIGlmIChwYXJzZWQucG9ydF9zdHIuZW1wdHkgKCkpCi0rICAgIGVycm9yIChf KCJNaXNzaW5nIHBvcnQgb24gaG9zdG5hbWUgJyVzJyIpLCBuYW1lKTsKLSsKLSsgIGludCByID0g Z2V0YWRkcmluZm8gKHBhcnNlZC5ob3N0X3N0ci5jX3N0ciAoKSwKLSsJCSAgICAgICBwYXJzZWQu cG9ydF9zdHIuY19zdHIgKCksCi0rCQkgICAgICAgJmhpbnQsICZhaW5mbyk7Ci0rCi0rICBpZiAo ciAhPSAwKQotKyAgICB7Ci0rICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLCBf KCIlczogY2Fubm90IHJlc29sdmUgbmFtZTogJXNcbiIpLAotKwkJCSAgbmFtZSwgZ2FpX3N0cmVy cm9yIChyKSk7Ci0rICAgICAgZXJybm8gPSBFTk9FTlQ7Ci0rICAgICAgcmV0dXJuIC0xOwotKyAg ICB9Ci0rCi0rICBzY29wZWRfZnJlZV9hZGRyaW5mbyBmcmVlX2FpbmZvIChhaW5mbyk7Ci0rCi0r ICAvKiBGbGFnIHRvIGluZGljYXRlIHdoZXRoZXIgd2UndmUgZ290IGEgY29ubmVjdGlvbiByZWZ1 c2VkLiAgSXQgd2lsbAotKyAgICAgYmUgdHJ1ZSBpZiBhbnkgb2YgdGhlIGNvbm5lY3Rpb25zIHRy aWVkIHdhcyByZWZ1c2VkLiAgKi8KLSsgIGJvb2wgZ290X2Nvbm5yZWZ1c2VkOwotKyAgLyogSWYg YSBjb25uZWN0aW9uIHN1Y2NlZWVkcywgU1VDQ0VTU19BSU5GTyB3aWxsIHBvaW50IHRvIHRoZQot KyAgICAgJ3N0cnVjdCBhZGRyaW5mbycgdGhhdCBzdWNjZWVkLiAgKi8KLSsgIHN0cnVjdCBhZGRy aW5mbyAqc3VjY2Vzc19haW5mbyA9IE5VTEw7Ci0rICB1bnNpZ25lZCBpbnQgcG9sbHMgPSAwOwot KwotKyAgLyogQXNzdW1lIHRoZSB3b3JzdC4gICovCi0rICBzY2ItPmZkID0gLTE7Ci0rCi0rICBk bwotKyAgICB7Ci0rICAgICAgZ290X2Nvbm5yZWZ1c2VkID0gZmFsc2U7Ci0rCi0rICAgICAgZm9y IChzdHJ1Y3QgYWRkcmluZm8gKml0ZXIgPSBhaW5mbzsgaXRlciAhPSBOVUxMOyBpdGVyID0gaXRl ci0+YWlfbmV4dCkKLSsJewotKwkgIC8qIEl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBwb3NzaWJs ZSBhZGRyZXNzZXMgdG8gY29ubmVjdAotKwkgICAgIHRvLiAgRm9yIGVhY2gsIHdlJ2xsIHRyeSB0 byBjb25uZWN0IGFuZCBzZWUgaWYgaXQKLSsJICAgICBzdWNjZWVkcy4gICovCi0rCSAgaW50IHNv Y2sgPSB0cnlfY29ubmVjdCAoaXRlciwgJnBvbGxzKTsKLSsKLSsJICBpZiAoc29jayA+PSAwKQot KwkgICAgewotKwkgICAgICAvKiBXZSd2ZSBnb3R0ZW4gYSBzdWNjZXNzZnVsIGNvbm5lY3Rpb24u ICBTYXZlIGl0cwotKwkJICdzdHJ1Y3QgYWRkcmluZm8nLCB0aGUgc29ja2V0LCBhbmQgYnJlYWsu ICAqLwotKwkgICAgICBzdWNjZXNzX2FpbmZvID0gaXRlcjsKLSsJICAgICAgc2NiLT5mZCA9IHNv Y2s7Ci0rCSAgICAgIGJyZWFrOwotKwkgICAgfQotKwkgIGVsc2UgaWYgKAotICNpZmRlZiBVU0Vf V0lOMzJBUEkKLS0JICAgICYmIGVyciA9PSBXU0FFQ09OTlJFRlVTRUQKLSsJICBlcnJubyA9PSBX U0FFQ09OTlJFRlVTRUQKLSAjZWxzZQotLQkgICAgJiYgZXJyID09IEVDT05OUkVGVVNFRAotKwkg IGVycm5vID09IEVDT05OUkVGVVNFRAotICNlbmRpZgotLQkgICAgJiYgd2FpdF9mb3JfY29ubmVj dCAoTlVMTCwgJnBvbGxzKSA+PSAwKQotLQkgIHsKLS0JICAgIGNsb3NlIChzY2ItPmZkKTsKLS0J ICAgIGdvdG8gcmV0cnk7Ci0tCSAgfQotLQlpZiAoZXJyKQotLQkgIGVycm5vID0gZXJyOwotLQlu ZXRfY2xvc2UgKHNjYik7Ci0tCXJldHVybiAtMTsKLS0gICAgICB9Ci0tICB9IAotKwkJICAgKQot KwkgICAgZ290X2Nvbm5yZWZ1c2VkID0gdHJ1ZTsKLSsJfQotKyAgICB9Ci0rICAvKiBKdXN0IHJl dHJ5IGlmOgotKwotKyAgICAgLSB0Y3BfYXV0b19yZXRyeSBpcyB0cnVlLCBhbmQKLSsgICAgIC0g V2UgaGF2ZW4ndCBnb3R0ZW4gYSBjb25uZWN0aW9uIHlldCwgYW5kCi0rICAgICAtIEFueSBvZiBv dXIgY29ubmVjdGlvbiBhdHRlbXB0cyByZXR1cm5lZCB3aXRoIEVDT05OUkVGVVNFRCwgYW5kCi0r ICAgICAtIHdhaXRfZm9yX2Nvbm5lY3Qgc2lnbmFscyB0aGF0IHdlIGNhbiBrZWVwIGdvaW5nLiAg Ki8KLSsgIHdoaWxlICh0Y3BfYXV0b19yZXRyeQotKwkgJiYgc3VjY2Vzc19haW5mbyA9PSBOVUxM Ci0rCSAmJiBnb3RfY29ubnJlZnVzZWQKLSsJICYmIHdhaXRfZm9yX2Nvbm5lY3QgKC0xLCAmcG9s bHMpID49IDApOwotKwotKyAgaWYgKHN1Y2Nlc3NfYWluZm8gPT0gTlVMTCkKLSsgICAgewotKyAg ICAgIG5ldF9jbG9zZSAoc2NiKTsKLSsgICAgICByZXR1cm4gLTE7Ci0rICAgIH0KLSAKLSAgIC8q IFR1cm4gb2ZmIG5vbmJsb2NraW5nLiAgKi8KLS0gIGlvYXJnID0gMDsKLSsjaWZkZWYgVVNFX1dJ TjMyQVBJCi0rICB1X2xvbmcgaW9hcmcgPSAwOwotKyNlbHNlCi0rICBpbnQgaW9hcmcgPSAwOwot KyNlbmRpZgotKwotICAgaW9jdGwgKHNjYi0+ZmQsIEZJT05CSU8sICZpb2FyZyk7Ci0gCi0tICBp ZiAodXNlX3VkcCA9PSAwKQotKyAgaWYgKHN1Y2Nlc3NfYWluZm8tPmFpX3NvY2t0eXBlID09IElQ UFJPVE9fVENQKQotICAgICB7Ci0gICAgICAgLyogRGlzYWJsZSBOYWdsZSBhbGdvcml0aG0uICBO ZWVkZWQgaW4gc29tZSBjYXNlcy4gICovCi0tICAgICAgdG1wID0gMTsKLSsgICAgICBpbnQgdG1w ID0gMTsKLSsKLSAgICAgICBzZXRzb2Nrb3B0IChzY2ItPmZkLCBJUFBST1RPX1RDUCwgVENQX05P REVMQVksCi0tCQkgIChjaGFyICopJnRtcCwgc2l6ZW9mICh0bXApKTsKLSsJCSAgKGNoYXIgKikg JnRtcCwgc2l6ZW9mICh0bXApKTsKLSAgICAgfQotIAotICNpZmRlZiBTSUdQSVBFCi1kaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwot LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSsrKyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdl TG9nCi1AQCAtMSwzICsxLDIzIEBACi0rMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9y ICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLSsJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4KLSsJICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5j b20+Ci0rCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+Ci0rCi0rCSogUkVB RE1FIChUZXN0c3VpdGUgUGFyYW1ldGVycyk6IE1lbnRpb24gbmV3ICdHREJfVEVTVF9TT0NLRVRI T1NUJwotKwlwYXJhbWV0ZXIuCi0rCSogYm9hcmRzL25hdGl2ZS1leHRlbmRlZC1nZGJzZXJ2ZXIu ZXhwOiBEbyBub3Qgc2V0ICdzb2NrZXRob3N0JwotKwlieSBkZWZhdWx0LgotKwkqIGJvYXJkcy9u YXRpdmUtZ2Ric2VydmVyLmV4cDogTGlrZXdpc2UuCi0rCSogZ2RiLnNlcnZlci9ydW4td2l0aG91 dC1sb2NhbC1iaW5hcnkuZXhwOiBJbXByb3ZlIHJlZ2V4cCB1c2VkCi0rCWZvciBkZXRlY3Rpbmcg d2hlbiBhIHJlbW90ZSBkZWJ1Z2dpbmcgY29ubmVjdGlvbiBzdWNjZWVkcy4KLSsJKiBnZGIuc2Vy dmVyL3NlcnZlci1jb25uZWN0LmV4cDogTmV3IGZpbGUuCi0rCSogbGliL2dkYnNlcnZlci1zdXBw b3J0LmV4cCAoZ2Ric2VydmVyX2RlZmF1bHRfZ2V0X2NvbW1fcG9ydCk6Ci0rCURvIG5vdCBwcmVm aXggdGhlIHBvcnQgbnVtYmVyIHdpdGggIjoiLgotKwkoZ2Ric2VydmVyX3N0YXJ0KTogTmV3IGds b2JhbCBHREJfVEVTVF9TT0NLRVRIT1NULiAgSW1wbGVtZW50Ci0rCXN1cHBvcnQgZm9yIGRldGVj dGluZyBhbmQgdXNpbmcgaXQuICBBZGQgJyRkZWJ1Z2hvc3RfZ2Ric2VydmVyJwotKwl0byB0aGUg bGlzdCBvZiBhcmd1bWVudHMgdXNlZCB0byBzdGFydCBnZGJzZXJ2ZXIuICBIYW5kbGUgY2FzZQot Kwl3aGVuIGdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBhIG5ldHdvcmsgbmFtZS4KLSsKLSAyMDE4 LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgotIAot IAlQUiBjKysvMjMzNzMKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL1JFQURNRSBiL2dkYi90 ZXN0c3VpdGUvUkVBRE1FCi0tLS0gYS9nZGIvdGVzdHN1aXRlL1JFQURNRQotKysrIGIvZ2RiL3Rl c3RzdWl0ZS9SRUFETUUKLUBAIC0yNTksNiArMjU5LDIwIEBAIFRoaXMgbWFrZSAobm90IHJ1bnRl c3QpIHZhcmlhYmxlIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGV0aGVyIHRoZQotIHRlc3RzdWl0ZSBw cmVsb2FkcyB0aGUgcmVhZDEuc28gbGlicmFyeSBpbnRvIGV4cGVjdC4gIEFueSBub24tZW1wdHkK LSB2YWx1ZSBtZWFucyB0cnVlLiAgU2VlICJSYWNlIGRldGVjdGlvbiIgYmVsb3cuCi0gCi0rR0RC X1RFU1RfU09DS0VUSE9TVAotKwotK1RoaXMgdmFyaWFibGUgY2FuIHByb3ZpZGUgdGhlIGhvc3Ru YW1lL2FkZHJlc3MgdGhhdCBzaG91bGQgYmUgdXNlZAotK3doZW4gcGVyZm9ybWluZyBHREJzZXJ2 ZXItcmVsYXRlZCB0ZXN0cy4gIFRoaXMgaXMgdXNlZnVsIGluIHNvbWUKLStzaXR1YXRpb25zLCBl LmcuLCB3aGVuIHlvdSB3YW50IHRvIHRlc3QgdGhlIElQdjYgY29ubmVjdGl2aXR5IG9mIEdEQgot K2FuZCBHREJzZXJ2ZXIsIG9yIHdoZW4gdXNpbmcgYSBkaWZmZXJlbnQgaG9zdG5hbWUvYWRkcmVz cyBpcyBuZWVkZWQuCi0rRm9yIGV4YW1wbGUsIHRvIG1ha2UgR0RCIGFuZCBHREJzZXJ2ZXIgdXNl IElQdjYtb25seSBjb25uZWN0aW9ucywgeW91Ci0rY2FuIGRvOgotKwotKwltYWtlIGNoZWNrIFRF U1RTPSJnZGIuc2VydmVyLyouZXhwIiBSVU5URVNURkxBR1M9J0dEQl9URVNUX1NPQ0tFVEhPU1Q9 dGNwNjpbOjoxXScKLSsKLStOb3RlIHRoYXQgb25seSBhIGhvc3RuYW1lL2FkZHJlc3MgY2FuIGJl IHByb3ZpZGVkLCB3aXRob3V0IGEgcG9ydAotK251bWJlci4KLSsKLSBSYWNlIGRldGVjdGlvbgot ICoqKioqKioqKioqKioqCi0gCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0 aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHAgYi9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUt ZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZl LWV4dGVuZGVkLWdkYnNlcnZlci5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2 ZS1leHRlbmRlZC1nZGJzZXJ2ZXIuZXhwCi1AQCAtMjQsOCArMjQsNiBAQCBsb2FkX2dlbmVyaWNf Y29uZmlnICJleHRlbmRlZC1nZGJzZXJ2ZXIiCi0gbG9hZF9ib2FyZF9kZXNjcmlwdGlvbiAiZ2Ri c2VydmVyLWJhc2UiCi0gbG9hZF9ib2FyZF9kZXNjcmlwdGlvbiAibG9jYWwtYm9hcmQiCi0gCi0t c2V0X2JvYXJkX2luZm8gc29ja2V0aG9zdCAibG9jYWxob3N0OiIKLS0KLSAjIFdlIHdpbGwgYmUg dXNpbmcgdGhlIGV4dGVuZGVkIEdEQiByZW1vdGUgcHJvdG9jb2wuCi0gc2V0X2JvYXJkX2luZm8g Z2RiX3Byb3RvY29sICJleHRlbmRlZC1yZW1vdGUiCi0gCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9ib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5leHAgYi9nZGIvdGVzdHN1aXRlL2JvYXJkcy9u YXRpdmUtZ2Ric2VydmVyLmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWdk YnNlcnZlci5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIu ZXhwCi1AQCAtMzAsNyArMzAsNiBAQCBzZXRfYm9hcmRfaW5mbyBnZGIsZG9fcmVsb2FkX29uX3J1 biAxCi0gIyBUaGVyZSdzIG5vIHN1cHBvcnQgZm9yIGFyZ3VtZW50LXBhc3NpbmcgKHlldCkuCi0g c2V0X2JvYXJkX2luZm8gbm9hcmdzIDEKLSAKLS1zZXRfYm9hcmRfaW5mbyBzb2NrZXRob3N0ICJs b2NhbGhvc3Q6IgotIHNldF9ib2FyZF9pbmZvIHVzZV9nZGJfc3R1YiAxCi0gc2V0X2JvYXJkX2lu Zm8gZXhpdF9pc19yZWxpYWJsZSAxCi0gCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu c2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5z ZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHAKLSsrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLnNlcnZlci9ydW4td2l0aG91dC1sb2NhbC1iaW5hcnkuZXhwCi1AQCAtNTMsNyArNTMs NyBAQCBzYXZlX3ZhcnMgeyBHREJGTEFHUyB9IHsKLSAgICAgc2V0IHVzZV9nZGJfc3R1YiAwCi0g Ci0gICAgIGdkYl90ZXN0ICJ0YXJnZXQgJHtnZGJzZXJ2ZXJfcHJvdG9jb2x9ICR7Z2Ric2VydmVy X2dkYnBvcnR9IiBcCi0tCSJSZW1vdGUgZGVidWdnaW5nIHVzaW5nICRnZGJzZXJ2ZXJfZ2RicG9y dCIgXAotKwkiUmVtb3RlIGRlYnVnZ2luZyB1c2luZyBbc3RyaW5nX3RvX3JlZ2V4cCAkZ2Ric2Vy dmVyX2dkYnBvcnRdIiBcCi0gCSJjb25uZWN0IHRvIGdkYnNlcnZlciIKLSAKLSAgICAgZ2RiX3Rl c3QgInJ1biIgXAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9zZXJ2ZXIt Y29ubmVjdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhw Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cAotQEAgLTAsMCArMSwxMTEgQEAKLSsjIFRo aXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCi0rIwotKyMgQ29w eXJpZ2h0IDIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLSsjIFRlc3QgbXVsdGlwbGUgdHlwZXMgb2YgY29ubmVj dGlvbiAoSVB2NCwgSVB2NiwgVENQLCBVRFApIGFuZCBtYWtlCi0rIyBzdXJlIGJvdGggZ2Ric2Vy dmVyIGFuZCBHREIgd29yay4KLSsKLStsb2FkX2xpYiBnZGJzZXJ2ZXItc3VwcG9ydC5leHAKLSsK LStzdGFuZGFyZF90ZXN0ZmlsZSBub3JtYWwuYwotKwotK2lmIHtbc2tpcF9nZGJzZXJ2ZXJfdGVz dHNdfSB7Ci0rICAgIHJldHVybiAwCi0rfQotKwotKyMgV2Ugd2FudCB0byBoYXZlIGNvbnRyb2wg b3ZlciB3aGVyZSB3ZSBzdGFydCBnZGJzZXJ2ZXIuCi0raWYgeyBbaXNfcmVtb3RlIHRhcmdldF0g fSB7Ci0rICAgIHJldHVybiAwCi0rfQotKwotK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZh aWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGUgZGVidWddIH0gewotKyAgICByZXR1 cm4gLTEKLSt9Ci0rCi0rIyBNYWtlIHN1cmUgd2UncmUgZGlzY29ubmVjdGVkLCBpbiBjYXNlIHdl J3JlIHRlc3Rpbmcgd2l0aCBhbgotKyMgZXh0ZW5kZWQtcmVtb3RlIGJvYXJkLCB0aGVyZWZvcmUg YWxyZWFkeSBjb25uZWN0ZWQuCi0rZ2RiX3Rlc3QgImRpc2Nvbm5lY3QiICIuKiIKLSsKLStzZXQg dGFyZ2V0X2V4ZWMgW2dkYnNlcnZlcl9kb3dubG9hZF9jdXJyZW50X3Byb2ddCi0rCi0rIyBBbiBh cnJheSBjb250YWluaW5nIHRoZSB0ZXN0IGluc3RydWN0aW9ucyBmb3IgZWFjaCBzY2VuYXJpby4g IFRoZQotKyMgZGVzY3JpcHRpb24gb2YgZWFjaCBmaWVsZCBpcyBhcyBmb2xsb3dzOgotKyMKLSsj IC0gVGhlIGNvbm5lY3Rpb24gc3BlY2lmaWNhdGlvbiB0byBiZSB1c2VkIHdoZW4gc3RhcnRpbmcK LSsjICAgZ2Ric2VydmVyL0dEQi4gIFRoaXMgc3RyaW5nIHdpbGwgYmUgdXNlZCB0byBzZXQgdGhl Ci0rIyAgIEdEQl9URVNUX1NPQ0tFVEhPU1Qgd2hlbiBjYWxsaW5nIGdkYnNlcnZlcl9zdGFydC4K LSsjCi0rIyAtIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgZ2Ric2VydmVyIHNob3VsZCBmYWls IHdoZW4gd2UgYXR0ZW1wdCB0bwotKyMgICBzdGFydCBpdC4gIFVzZWZ1bCB3aGVuIHRlc3Rpbmcg ZXJyb25lb3VzIGNvbm5lY3Rpb24gc3BlY3Mgc3VjaCBhcwotKyMgICAidGNwODoiLgotKyMKLSsj IC0gVGhlIHByZWZpeCB0aGF0IHNob3VsZCBiZSBwcmVwZW5kZWQgdG8gdGhlIHRlc3QgbWVzc2Fn ZXMuCi0rc2V0IHRlc3RfcGFyYW1zIFwKLSsgICAgeyBcCi0rCSAgeyAidGNwNDoxMjcuMC4wLjEi IDAgInRjcDQiIH0gXAotKwkgIHsgInRjcDY6OjoxIiAgICAgICAwICJ0Y3A2IiB9IFwKLSsJICB7 ICJ0Y3A2Ols6OjFdIiAgICAgMCAidGNwNi13aXRoLWJyYWNrZXRzIiB9IFwKLSsJICB7ICJ0Y3A6 bG9jYWxob3N0IiAgMCAidGNwIiB9IFwKLSsJICB7ICJ1ZHA0OjEyNy4wLjAuMSIgMCAidWRwNCIg fSBcCi0rCSAgeyAidWRwNjo6OjEiICAgICAgIDAgInVkcDYiIH0gXAotKwkgIHsgInVkcDY6Wzo6 MV0iICAgICAwICJ1ZHA2LXdpdGgtYnJhY2tldHMiIH0gXAotKwkgIHsgInRjcDg6MTIzIiAgICAg ICAxICJ0Y3A4IiB9IFwKLSsJICB7ICJ1ZHAxMjM6OjoiICAgICAgMSAidWRwMTIzIiB9IFwKLSsJ ICB7ICJnYXJiYWdlOjEyMzQiICAgMSAiZ2FyYmFnZToxMjM0IiB9IFwKLSsgICAgfQotKwotKyMg VGhlIGJlc3Qgd2F5IHRvIHRlc3QgZGlmZmVyZW50IHR5cGVzIG9mIGNvbm5lY3Rpb25zIGlzIHRv IHNldCB0aGUKLSsjIEdEQl9URVNUX1NPQ0tFVEhPU1QgdmFyaWFibGUgYWNjb3JkaW5nbHkuCi0r c2F2ZV92YXJzIHsgR0RCX1RFU1RfU09DS0VUSE9TVCB9IHsKLSsgICAgZm9yZWFjaCBsaW5lICR0 ZXN0X3BhcmFtcyB7Ci0rCXNldCBzb2NraG9zdCBbbGluZGV4ICRsaW5lIDBdCi0rCXNldCBnZGJz ZXJ2ZXJfc2hvdWxkX2ZhaWwgW2xpbmRleCAkbGluZSAxXQotKwlzZXQgcHJlZml4IFtsaW5kZXgg JGxpbmUgMl0KLSsKLSsJd2l0aF90ZXN0X3ByZWZpeCAkcHJlZml4IHsKLSsJICAgIHNldCBHREJf VEVTVF9TT0NLRVRIT1NUICRzb2NraG9zdAotKwkgICAgc2V0IHRlc3QgInN0YXJ0IGdkYnNlcnZl ciIKLSsKLSsJICAgICMgVHJ5IHRvIHN0YXJ0IGdkYnNlcnZlci4KLSsJICAgIHNldCBjYXRjaHJl cyBbY2F0Y2gge3NldCByZXMgW2dkYnNlcnZlcl9zdGFydCAiIiAkdGFyZ2V0X2V4ZWNdfSBlcnJt c2ddCi0rCi0rCSAgICBpZiB7ICRjYXRjaHJlcyAhPSAwIH0gewotKwkJaWYgeyAkZ2Ric2VydmVy X3Nob3VsZF9mYWlsIH0gewotKwkJICAgIHBhc3MgIiR0ZXN0OiBnZGJzZXJ2ZXIgZmFpbGVkIGFz IGV4cGVjdGVkIgotKwkJfSBlbHNlIHsKLSsJCSAgICBmYWlsICIkdGVzdDogJGVycm1zZyIKLSsJ CX0KLSsJCWNvbnRpbnVlCi0rCSAgICB9IGVsc2UgewotKwkJaWYgeyAkZ2Ric2VydmVyX3Nob3Vs ZF9mYWlsIH0gewotKwkJICAgIGZhaWwgIiR0ZXN0OiBnZGJzZXJ2ZXIgc2hvdWxkIGZhaWwgYnV0 IGRpZCBub3QiCi0rCQl9IGVsc2UgewotKwkJICAgIHBhc3MgIiR0ZXN0IgotKwkJfQotKwkgICAg fQotKwotKwkgICAgc2V0IGdkYnNlcnZlcl9wcm90b2NvbCBbbGluZGV4ICRyZXMgMF0KLSsJICAg IHNldCBnZGJzZXJ2ZXJfZ2RicG9ydCBbbGluZGV4ICRyZXMgMV0KLSsJICAgIHNldCB0ZXN0ICJj b25uZWN0IHRvIGdkYnNlcnZlciB1c2luZyAkc29ja2hvc3QiCi0rCi0rCSAgICBpZiB7IFtnZGJf dGFyZ2V0X2NtZCAkZ2Ric2VydmVyX3Byb3RvY29sICRnZGJzZXJ2ZXJfZ2RicG9ydF0gPT0gMCB9 IHsKLSsJCXBhc3MgJHRlc3QKLSsJICAgIH0gZWxzZSB7Ci0rCQlmYWlsICR0ZXN0Ci0rCSAgICB9 Ci0rCX0KLSsgICAgfQotK30KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2 ZXItc3VwcG9ydC5leHAgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAK LS0tLSBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cAotKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCi1AQCAtMjExLDcgKzIxMSw3IEBA IHByb2MgZ2Ric2VydmVyX2RlZmF1bHRfZ2V0X3JlbW90ZV9hZGRyZXNzIHsgaG9zdCBwb3J0IH0g ewotICMgRGVmYXVsdCByb3V0aW5lIHRvIGNvbXB1dGUgdGhlICJjb21tIiBhcmd1bWVudCBmb3Ig Z2Ric2VydmVyLgotIAotIHByb2MgZ2Ric2VydmVyX2RlZmF1bHRfZ2V0X2NvbW1fcG9ydCB7IHBv cnQgfSB7Ci0tICAgIHJldHVybiAiOiRwb3J0IgotKyAgICByZXR1cm4gIiRwb3J0IgotIH0KLSAK LSAjIFN0YXJ0IGEgZ2Ric2VydmVyIHByb2Nlc3Mgd2l0aCBpbml0aWFsIE9QVElPTlMgYW5kIHRy YWlsaW5nIEFSR1VNRU5UUy4KLUBAIC0yMjEsNiArMjIxLDcgQEAgcHJvYyBnZGJzZXJ2ZXJfZGVm YXVsdF9nZXRfY29tbV9wb3J0IHsgcG9ydCB9IHsKLSAKLSBwcm9jIGdkYnNlcnZlcl9zdGFydCB7 IG9wdGlvbnMgYXJndW1lbnRzIH0gewotICAgICBnbG9iYWwgcG9ydG51bQotKyAgICBnbG9iYWwg R0RCX1RFU1RfU09DS0VUSE9TVAotIAotICAgICAjIFBvcnQgaWQgLS0gZWl0aGVyIHNwZWNpZmll ZCBpbiBiYXNlYm9hcmQgZmlsZSwgb3IgbWFuYWdlZCBoZXJlLgotICAgICBpZiBbdGFyZ2V0X2lu Zm8gZXhpc3RzIGdkYixzb2NrZXRwb3J0XSB7Ci1AQCAtMjMxLDEwICsyMzIsMjIgQEAgcHJvYyBn ZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKLSAgICAgfQotIAotICAgICAj IEV4dHJhY3QgdGhlIGxvY2FsIGFuZCByZW1vdGUgaG9zdCBpZHMgZnJvbSB0aGUgdGFyZ2V0IGJv YXJkIHN0cnVjdC4KLS0gICAgaWYgW3RhcmdldF9pbmZvIGV4aXN0cyBzb2NrZXRob3N0XSB7Ci0r ICAgIGlmIHsgW2luZm8gZXhpc3RzIEdEQl9URVNUX1NPQ0tFVEhPU1RdIH0gewotKwkjIFRoZSB1 c2VyIGlzIG5vdCBzdXBwb3NlZCB0byBwcm92aWRlIGEgcG9ydCBudW1iZXIsIGp1c3QgYQotKwkj IGhvc3RuYW1lL2FkZHJlc3MsIHRoZXJlZm9yZSB3ZSBhZGQgdGhlIHRyYWlsaW5nICI6IiBoZXJl LgotKwlzZXQgZGVidWdob3N0ICIke0dEQl9URVNUX1NPQ0tFVEhPU1R9OiIKLSsJIyBFc2NhcGUg b3BlbiBhbmQgY2xvc2Ugc3F1YXJlIGJyYWNrZXRzLgotKwlzZXQgZGVidWdob3N0X3RtcCBbc3Ry aW5nIG1hcCB7IFsgXFxbIF0gXFxdIH0gJGRlYnVnaG9zdF0KLSsJIyBXZSBuZWVkIGEgImdkYnNl cnZlciIgdmVyc2lvbiBvZiB0aGUgZGVidWdob3N0LCB3aGljaCB3aWxsCi0rCSMgaGF2ZSB0aGUg cG9zc2libGUgY29ubmVjdGlvbiBwcmVmaXggc3RyaXBwZWQuICBUaGlzIGlzCi0rCSMgYmVjYXVz ZSBnZGJzZXJ2ZXIgY3VycmVudGx5IGRvZXNuJ3QgcmVjb2duaXplIHRoZSBwcmVmaXhlcy4KLSsJ cmVnc3ViIC1hbGwgIl5cKHRjcDp8dWRwOnx0Y3A0Onx1ZHA0Onx0Y3A2Onx1ZHA2OlwpIiAkZGVi dWdob3N0X3RtcCAiIiBkZWJ1Z2hvc3RfZ2Ric2VydmVyCi0rICAgIH0gZWxzZWlmIFt0YXJnZXRf aW5mbyBleGlzdHMgc29ja2V0aG9zdF0gewotIAlzZXQgZGVidWdob3N0IFt0YXJnZXRfaW5mbyBz b2NrZXRob3N0XQotKwlzZXQgZGVidWdob3N0X2dkYnNlcnZlciAkZGVidWdob3N0Ci0gICAgIH0g ZWxzZSB7Ci0gCXNldCBkZWJ1Z2hvc3QgImxvY2FsaG9zdDoiCi0rCXNldCBkZWJ1Z2hvc3RfZ2Ri c2VydmVyICRkZWJ1Z2hvc3QKLSAgICAgfQotIAotICAgICAjIFNvbWUgYm9hcmRzIHVzZSBhIGRp ZmZlcmVudCB2YWx1ZSBmb3IgdGhlIHBvcnQgdGhhdCBpcyBwYXNzZWQgdG8KLUBAIC0yNzcsOCAr MjkwLDE0IEBAIHByb2MgZ2Ric2VydmVyX3N0YXJ0IHsgb3B0aW9ucyBhcmd1bWVudHMgfSB7Ci0g CWlmIHsgJG9wdGlvbnMgIT0gIiIgfSB7Ci0gCSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQg IiAkb3B0aW9ucyIKLSAJfQotKwlpZiB7ICRkZWJ1Z2hvc3RfZ2Ric2VydmVyICE9ICIiIH0gewot KwkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIgJGRlYnVnaG9zdF9nZGJzZXJ2ZXIiCi0r CX0KLSAJaWYgeyAkcG9ydG51bSAhPSAiIiB9IHsKLS0JICAgIGFwcGVuZCBnZGJzZXJ2ZXJfY29t bWFuZCAiIFskZ2V0X2NvbW1fcG9ydCAkcG9ydG51bV0iCi0rCSAgICBpZiB7ICRkZWJ1Z2hvc3Rf Z2Ric2VydmVyID09ICIiIH0gewotKwkJYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIgIgotKwkg ICAgfQotKwkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICJbJGdldF9jb21tX3BvcnQgJHBv cnRudW1dIgotIAl9Ci0gCWlmIHsgJGFyZ3VtZW50cyAhPSAiIiB9IHsKLSAJICAgIGFwcGVuZCBn ZGJzZXJ2ZXJfY29tbWFuZCAiICRhcmd1bWVudHMiCi1AQCAtMzA3LDYgKzMyNiw5IEBAIHByb2Mg Z2Ric2VydmVyX3N0YXJ0IHsgb3B0aW9ucyBhcmd1bWVudHMgfSB7Ci0gCQkgICAgY29udGludWUK LSAJCX0KLSAJICAgIH0KLSsJICAgIC1yZSAiLio6IGNhbm5vdCByZXNvbHZlIG5hbWU6IE5hbWUg b3Igc2VydmljZSBub3Qga25vd25cclxuIiB7Ci0rCQllcnJvciAiZ2Ric2VydmVyIGNhbm5vdCBy ZXNvbHZlIG5hbWUuIgotKwkgICAgfQotIAkgICAgdGltZW91dCB7Ci0gCQllcnJvciAiVGltZW91 dCB3YWl0aW5nIGZvciBnZGJzZXJ2ZXIgcmVzcG9uc2UuIgotIAkgICAgfQotZGlmZiAtLWdpdCBh L2dkYi91bml0dGVzdHMvcGFyc2UtY29ubmVjdGlvbi1zcGVjLXNlbGZ0ZXN0cy5jIGIvZ2RiL3Vu aXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3RzLmMKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rp b24tc3BlYy1zZWxmdGVzdHMuYwotQEAgLTAsMCArMSwyNDkgQEAKLSsvKiBTZWxmIHRlc3RzIGZv ciBwYXJzaW5nIGNvbm5lY3Rpb24gc3BlY3MgZm9yIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsK LSsgICBDb3B5cmlnaHQgKEMpIDIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0r Ci0rICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgICBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICAgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot KyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSsKLSsjaW5jbHVkZSAiZGVmcy5oIgotKyNpbmNsdWRlICJz ZWxmdGVzdC5oIgotKyNpbmNsdWRlICJjb21tb24vbmV0c3R1ZmYuaCIKLSsjaW5jbHVkZSAiZGlh Z25vc3RpY3MuaCIKLSsjaWZkZWYgVVNFX1dJTjMyQVBJCi0rI2luY2x1ZGUgPHdpbnNvY2syLmg+ Ci0rI2luY2x1ZGUgPHdzcGlhcGkuaD4KLSsjZWxzZQotKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+ Ci0rI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotKyNpbmNsdWRlIDxuZXRkYi5oPgotKyNpbmNsdWRl IDxzeXMvc29ja2V0Lmg+Ci0rI2luY2x1ZGUgPG5ldGluZXQvdGNwLmg+Ci0rI2VuZGlmCi0rCi0r bmFtZXNwYWNlIHNlbGZ0ZXN0cyB7Ci0rbmFtZXNwYWNlIHBhcnNlX2Nvbm5lY3Rpb25fc3BlY190 ZXN0cyB7Ci0rCi0rLyogQXV4aWxpYXJ5IHN0cnVjdCB0aGF0IGhvbGRzIGluZm8gYWJvdXQgYSBz cGVjaWZpYyB0ZXN0IGZvciBhCi0rICAgY29ubmVjdGlvbiBzcGVjLiAgKi8KLSsKLStzdHJ1Y3Qg cGFyc2VfY29ubl90ZXN0Ci0rewotKyAgLyogVGhlIGNvbm5lY3Rpb24gc3BlYy4gICovCi0rICBj b25zdCBjaGFyICpjb25uc3BlYzsKLSsKLSsgIC8qIEV4cGVjdGVkIHJlc3VsdCBmcm9tICdwYXJz ZV9jb25uZWN0aW9uX3NwZWMnLiAgKi8KLSsgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgZXhwZWN0 ZWRfcmVzdWx0OwotKwotKyAgLyogVHJ1ZSBpZiB0aGlzIHRlc3Qgc2hvdWxkIGZhaWwsIGZhbHNl IG90aGVyd2lzZS4gIElmIHRydWUsIG9ubHkKLSsgICAgIHRoZSBDT05OU1BFQyBmaWVsZCBzaG91 bGQgYmUgY29uc2lkZXJlZCBhcyB2YWxpZC4gICovCi0rICBib29sIHNob3VsZF9mYWlsOwotKwot KyAgLyogVGhlIGV4cGVjdGVkIEFJX0ZBTUlMWSB0byBiZSBmb3VuZCBvbiB0aGUgJ3N0cnVjdCBh ZGRyaW5mbycKLSsgICAgIEhJTlQuICAqLwotKyAgaW50IGV4cF9haV9mYW1pbHk7Ci0rCi0rICAv KiBUaGUgZXhwZWN0ZWQgQUlfU09DS1RZUEUgdG8gYmUgZm91bmQgb24gdGhlICdzdHJ1Y3QgYWRk cmluZm8nCi0rICAgICBISU5ULiAgKi8KLSsgIGludCBleHBfYWlfc29ja3R5cGU7Ci0rCi0rICAv KiBUaGUgZXhwZWN0ZWQgQUlfUFJPVE9DT0wgdG8gYmUgZm91bmQgb24gdGhlICdzdHJ1Y3QgYWRk cmluZm8nCi0rICAgICBISU5ULiAgKi8KLSsgIGludCBleHBfYWlfcHJvdG9jb2w7Ci0rfTsKLSsK LSsvKiBTb21lIGRlZmluZXMgdG8gaGVscCB1cyBmaWxsIGEgJ3N0cnVjdCBwYXJzZV9jb25uX3Rl c3QnLiAgKi8KLSsKLSsvKiBJbml0aWFsaXplIGEgZnVsbCBlbnRyeS4gICovCi0rI2RlZmluZSBJ TklUX0VOVFJZKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgU0hPVUxEX0ZBSUwsIEVYUF9BSV9G QU1JTFksIFwKLSsJCSAgIEVYUF9BSV9TT0NLVFlQRSwgRVhQX0FJX1BST1RPQ09MKQkJCVwKLSsg IHsgQUREUiwgeyBFWFBfSE9TVCwgRVhQX1BPUlQgfSwgU0hPVUxEX0ZBSUwsIEVYUF9BSV9GQU1J TFksIFwKLSsgICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJPVE9DT0wgfQotKwotKy8qIElu aXRpYWxpemUgYW4gdW5wcmVmaXhlZCBlbnRyeS4gIEluIHRoaXMgY2FzZSwgd2UgZG9uJ3QgZXhw ZWN0Ci0rICAgYW55dGhpbmcgb24gdGhlICdzdHJ1Y3QgYWRkcmluZm8nIEhJTlQuICAqLwotKyNk ZWZpbmUgSU5JVF9VTlBSRUZJWEVEX0VOVFJZKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAot KyAgSU5JVF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBmYWxzZSwgMCwgMCwgMCkK LSsKLSsvKiBJbml0aWFsaXplZCBhbiB1bnByZWZpeGVkIElQdjYgZW50cnkuICBJbiB0aGlzIGNh c2UsIHdlIGRvbid0Ci0rICAgZXhwZWN0IGFueXRoaW5nIG9uIHRoZSAnc3RydWN0IGFkZHJpbmZv JyBISU5ULiAgKi8KLSsjZGVmaW5lIElOSVRfVU5QUkVGSVhFRF9JUFY2X0VOVFJZKEFERFIsIEVY UF9IT1NULCBFWFBfUE9SVCkgXAotKyAgSU5JVF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9Q T1JULCBmYWxzZSwgQUZfSU5FVDYsIDAsIDApCi0rCi0rLyogSW5pdGlhbGl6ZSBhIHByZWZpeGVk IGVudHJ5LiAgKi8KLSsjZGVmaW5lIElOSVRfUFJFRklYRURfRU5UUlkoQUREUiwgRVhQX0hPU1Qs IEVYUF9QT1JULCBFWFBfQUlfRkFNSUxZLCBcCi0rCQkJICAgIEVYUF9BSV9TT0NLVFlQRSwgRVhQ X0FJX1BST1RPQ09MKSBcCi0rICBJTklUX0VOVFJZIChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQs IGZhbHNlLCBFWFBfQUlfRkFNSUxZLCBcCi0rCSAgICAgIEVYUF9BSV9TT0NLVFlQRSwgRVhQX0FJ X1BST1RPQ09MKQotKwotKy8qIEluaXRpYWxpemUgYW4gZW50cnkgcHJlZml4ZWQgd2l0aCAidGNw NDoiLiAgKi8KLSsjZGVmaW5lIElOSVRfUFJFRklYRURfSVBWNF9UQ1AoQUREUiwgRVhQX0hPU1Qs IEVYUF9QT1JUKSBcCi0rICBJTklUX1BSRUZJWEVEX0VOVFJZIChBRERSLCBFWFBfSE9TVCwgRVhQ X1BPUlQsIEFGX0lORVQsIFNPQ0tfU1RSRUFNLCBcCi0rCQkgICAgICAgSVBQUk9UT19UQ1ApCi0r Ci0rLyogSW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVmaXhlZCB3aXRoICJ0Y3A2OiIuICAqLwotKyNk ZWZpbmUgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwK LSsgIElOSVRfUFJFRklYRURfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgQUZfSU5F VDYsIFNPQ0tfU1RSRUFNLCBcCi0rCQkgICAgICAgSVBQUk9UT19UQ1ApCi0rCi0rLyogSW5pdGlh bGl6ZSBhbiBlbnRyeSBwcmVmaXhlZCB3aXRoICJ1ZHA0OiIuICAqLwotKyNkZWZpbmUgSU5JVF9Q UkVGSVhFRF9JUFY0X1VEUChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwKLSsgIElOSVRfUFJF RklYRURfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgQUZfSU5FVCwgU09DS19ER1JB TSwgXAotKwkJICAgICAgIElQUFJPVE9fVURQKQotKwotKy8qIEluaXRpYWxpemUgYW4gZW50cnkg cHJlZml4ZWQgd2l0aCAidWRwNjoiLiAgKi8KLSsjZGVmaW5lIElOSVRfUFJFRklYRURfSVBWNl9V RFAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCi0rICBJTklUX1BSRUZJWEVEX0VOVFJZIChB RERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIEFGX0lORVQ2LCBTT0NLX0RHUkFNLCBcCi0rCQkgICAg ICAgSVBQUk9UT19VRFApCi0rCi0rLyogSW5pdGlhbGl6ZSBhIGJvZ3VzIGVudHJ5LCBpLmUuLCBh IGNvbm5lY3Rpb24gc3BlYyB0aGF0IHNob3VsZAotKyAgIGZhaWwuICAqLwotKyNkZWZpbmUgSU5J VF9CT0dVU19FTlRSWShBRERSKSBcCi0rICBJTklUX0VOVFJZIChBRERSLCAiIiwgIiIsIHRydWUs IDAsIDAsIDApCi0rCi0rLyogVGhlIHZhcmlhYmxlIHdoaWNoIGhvbGRzIGFsbCBvZiBvdXIgdGVz dHMuICAqLwotKwotK3N0YXRpYyBjb25zdCBwYXJzZV9jb25uX3Rlc3QgY29ubl90ZXN0W10gPQot KyAgewotKyAgICAvKiBVbnByZWZpeGVkIGFkZHJlc3Nlcy4gICovCi0rCi0rICAgIC8qIElQdjQs IGhvc3QgYW5kIHBvcnQgcHJlc2VudC4gICovCi0rICAgIElOSVRfVU5QUkVGSVhFRF9FTlRSWSAo IjEyNy4wLjAuMToxMjM0IiwgIjEyNy4wLjAuMSIsICIxMjM0IiksCi0rICAgIC8qIElQdjQsIG9u bHkgaG9zdC4gICovCi0rICAgIElOSVRfVU5QUkVGSVhFRF9FTlRSWSAoIjEyNy4wLjAuMSIsICIx MjcuMC4wLjEiLCAiIiksCi0rICAgIC8qIElQdjQsIG1pc3NpbmcgcG9ydC4gICovCi0rICAgIElO SVRfVU5QUkVGSVhFRF9FTlRSWSAoIjEyNy4wLjAuMToiLCAiMTI3LjAuMC4xIiwgIiIpLAotKwot KyAgICAvKiBJUHY2LCBob3N0IGFuZCBwb3J0IHByZXNlbnQsIG5vIGJyYWNrZXRzLiAgKi8KLSsg ICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiOjoxOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwKLSsg ICAgLyogSVB2NiwgbWlzc2luZyBwb3J0LCBubyBicmFja2V0cy4gICovCi0rICAgIElOSVRfVU5Q UkVGSVhFRF9FTlRSWSAoIjo6MToiLCAiOjoxIiwgIiIpLAotKyAgICAvKiBJUHY2LCBob3N0IGFu ZCBwb3J0IHByZXNlbnQsIHdpdGggYnJhY2tldHMuICAqLwotKyAgICBJTklUX1VOUFJFRklYRURf SVBWNl9FTlRSWSAoIls6OjFdOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwKLSsgICAgLyogSVB2Niwg b25seSBob3N0LCB3aXRoIGJyYWNrZXRzLiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0lQVjZf RU5UUlkgKCJbOjoxXSIsICI6OjEiLCAiIiksCi0rICAgIC8qIElQdjYsIG1pc3NpbmcgcG9ydCwg d2l0aCBicmFja2V0cy4gICovCi0rICAgIElOSVRfVU5QUkVGSVhFRF9JUFY2X0VOVFJZICgiWzo6 MV06IiwgIjo6MSIsICIiKSwKLSsKLSsgICAgLyogVW5zcGVjaWZpZWQsIG9ubHkgcG9ydC4gICov Ci0rICAgIElOSVRfVU5QUkVGSVhFRF9FTlRSWSAoIjoxMjM0IiwgImxvY2FsaG9zdCIsICIxMjM0 IiksCi0rCi0rICAgIC8qIFByZWZpeGVkIGFkZHJlc3Nlcy4gICovCi0rCi0rICAgIC8qIFByZWZp eGVkICJ0Y3A0OiIgSVB2NCwgaG9zdCBhbmQgcG9ydCBwcmVzZW50cy4gICovCi0rICAgIElOSVRf UFJFRklYRURfSVBWNF9UQ1AgKCJ0Y3A0OjEyNy4wLjAuMToxMjM0IiwgIjEyNy4wLjAuMSIsICIx MjM0IiksCi0rICAgIC8qIFByZWZpeGVkICJ0Y3A0OiIgSVB2NCwgb25seSBwb3J0LiAgKi8KLSsg ICAgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUCAoInRjcDQ6OjEyMzQiLCAibG9jYWxob3N0IiwgIjEy MzQiKSwKLSsgICAgLyogUHJlZml4ZWQgInRjcDQ6IiBJUHY0LCBvbmx5IGhvc3QuICAqLwotKyAg ICBJTklUX1BSRUZJWEVEX0lQVjRfVENQICgidGNwNDoxMjcuMC4wLjEiLCAiMTI3LjAuMC4xIiwg IiIpLAotKyAgICAvKiBQcmVmaXhlZCAidGNwNDoiIElQdjQsIG1pc3NpbmcgcG9ydC4gICovCi0r ICAgIElOSVRfUFJFRklYRURfSVBWNF9UQ1AgKCJ0Y3A0OjEyNy4wLjAuMToiLCAiMTI3LjAuMC4x IiwgIiIpLAotKwotKyAgICAvKiBQcmVmaXhlZCAidWRwNDoiIElQdjQsIGhvc3QgYW5kIHBvcnQg cHJlc2VudC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNF9VRFAgKCJ1ZHA0OjEyNy4wLjAu MToxMjM0IiwgIjEyNy4wLjAuMSIsICIxMjM0IiksCi0rICAgIC8qIFByZWZpeGVkICJ1ZHA0OiIg SVB2NCwgb25seSBwb3J0LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1VEUCAoInVkcDQ6 OjEyMzQiLCAibG9jYWxob3N0IiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4ZWQgInVkcDQ6IiBJ UHY0LCBvbmx5IGhvc3QuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVURQICgidWRwNDox MjcuMC4wLjEiLCAiMTI3LjAuMC4xIiwgIiIpLAotKyAgICAvKiBQcmVmaXhlZCAidWRwNDoiIElQ djQsIG1pc3NpbmcgcG9ydC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNF9VRFAgKCJ1ZHA0 OjEyNy4wLjAuMToiLCAiMTI3LjAuMC4xIiwgIiIpLAotKwotKwotKyAgICAvKiBQcmVmaXhlZCAi dGNwNjoiIElQdjYsIGhvc3QgYW5kIHBvcnQgcHJlc2VudC4gICovCi0rICAgIElOSVRfUFJFRklY RURfSVBWNl9UQ1AgKCJ0Y3A2Ojo6MToxMjM0IiwgIjo6MSIsICIxMjM0IiksCi0rICAgIC8qIFBy ZWZpeGVkICJ0Y3A2OiIgSVB2Niwgb25seSBwb3J0LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9J UFY2X1RDUCAoInRjcDY6OjEyMzQiLCAibG9jYWxob3N0IiwgIjEyMzQiKSwKLSsgICAgLyogUHJl Zml4ZWQgInRjcDY6IiBJUHY2LCBvbmx5IGhvc3QuICAqLwotKyAgICAvL0lOSVRfUFJFRklYRURf SVBWNl9UQ1AgKCJ0Y3A2Ojo6MSIsICI6OjEiLCAiIiksCi0rICAgIC8qIFByZWZpeGVkICJ0Y3A2 OiIgSVB2NiwgbWlzc2luZyBwb3J0LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAo InRjcDY6OjoxOiIsICI6OjEiLCAiIiksCi0rCi0rICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2 NiwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1VE UCAoInVkcDY6OjoxOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4ZWQgInVk cDY6IiBJUHY2LCBvbmx5IHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVURQICgi dWRwNjo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVmaXhlZCAidWRw NjoiIElQdjYsIG9ubHkgaG9zdC4gICovCi0rICAgIC8vSU5JVF9QUkVGSVhFRF9JUFY2X1VEUCAo InVkcDY6OjoxIiwgIjo6MSIsICIiKSwKLSsgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2LCBt aXNzaW5nIHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVURQICgidWRwNjo6OjE6 IiwgIjo6MSIsICIiKSwKLSsKLSsgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2IHdpdGggYnJh Y2tldHMsIGhvc3QgYW5kIHBvcnQgcHJlc2VudC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBW Nl9UQ1AgKCJ0Y3A2Ols6OjFdOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4 ZWQgInRjcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIG9ubHkgaG9zdC4gICovCi0rICAgIElOSVRf UFJFRklYRURfSVBWNl9UQ1AgKCJ0Y3A2Ols6OjFdIiwgIjo6MSIsICIiKSwKLSsgICAgLyogUHJl Zml4ZWQgInRjcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIG1pc3NpbmcgcG9ydC4gICovCi0rICAg IElOSVRfUFJFRklYRURfSVBWNl9UQ1AgKCJ0Y3A2Ols6OjFdOiIsICI6OjEiLCAiIiksCi0rCi0r ICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2NiB3aXRoIGJyYWNrZXRzLCBob3N0IGFuZCBwb3J0 IHByZXNlbnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVURQICgidWRwNjpbOjoxXTox MjM0IiwgIjo6MSIsICIxMjM0IiksCi0rICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2NiB3aXRo IGJyYWNrZXRzLCBvbmx5IGhvc3QuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVURQICgi dWRwNjpbOjoxXSIsICI6OjEiLCAiIiksCi0rICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2NiB3 aXRoIGJyYWNrZXRzLCBtaXNzaW5nIHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjZf VURQICgidWRwNjpbOjoxXToiLCAiOjoxIiwgIiIpLAotKwotKwotKyAgICAvKiBCb2d1cyBhZGRy ZXNzZXMuICAqLwotKyAgICBJTklUX0JPR1VTX0VOVFJZICgidGNwNjpbOjoxXTEyMzo0NCIpLAot KyAgICBJTklUX0JPR1VTX0VOVFJZICgiWzo6MSIpLAotKyAgICBJTklUX0JPR1VTX0VOVFJZICgi dGNwNjo6OjFdOiIpLAotKyAgfTsKLSsKLSsvKiBUZXN0IGEgY29ubmVjdGlvbiBzcGVjIEMuICAq LwotKwotK3N0YXRpYyB2b2lkCi0rdGVzdF9jb25uIChjb25zdCBwYXJzZV9jb25uX3Rlc3QgJmMp Ci0rewotKyAgc3RydWN0IGFkZHJpbmZvIGhpbnQ7Ci0rICBwYXJzZWRfY29ubmVjdGlvbl9zcGVj IHJldDsKLSsKLSsgIG1lbXNldCAoJmhpbnQsIDAsIHNpemVvZiAoaGludCkpOwotKwotKyAgVFJZ Ci0rICAgIHsKLSsgICAgICByZXQgPSBwYXJzZV9jb25uZWN0aW9uX3NwZWMgKGMuY29ubnNwZWMs ICZoaW50KTsKLSsgICAgfQotKyAgQ0FUQ0ggKGV4LCBSRVRVUk5fTUFTS19FUlJPUikKLSsgICAg ewotKyAgICAgIC8qIElmIHdlIGNhdWdodCBhbiBlcnJvciwgd2Ugc2hvdWxkIGNoZWNrIGlmIHRo aXMgY29ubmVjdGlvbgotKwkgc3BlYyB3YXMgc3VwcG9zZWQgdG8gZmFpbC4gICovCi0rICAgICAg U0VMRl9DSEVDSyAoYy5zaG91bGRfZmFpbCk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBF TkRfQ0FUQ0gKLSsKLSsgIFNFTEZfQ0hFQ0sgKCFjLnNob3VsZF9mYWlsKTsKLSsgIFNFTEZfQ0hF Q0sgKHJldC5ob3N0X3N0ciA9PSBjLmV4cGVjdGVkX3Jlc3VsdC5ob3N0X3N0cik7Ci0rICBTRUxG X0NIRUNLIChyZXQucG9ydF9zdHIgPT0gYy5leHBlY3RlZF9yZXN1bHQucG9ydF9zdHIpOwotKyAg U0VMRl9DSEVDSyAoaGludC5haV9mYW1pbHkgPT0gYy5leHBfYWlfZmFtaWx5KTsKLSsgIFNFTEZf Q0hFQ0sgKGhpbnQuYWlfc29ja3R5cGUgPT0gYy5leHBfYWlfc29ja3R5cGUpOwotKyAgU0VMRl9D SEVDSyAoaGludC5haV9wcm90b2NvbCA9PSBjLmV4cF9haV9wcm90b2NvbCk7Ci0rfQotKwotKy8q IFJ1biB0aGUgdGVzdHMgYXNzb2NpYXRlZCB3aXRoIHBhcnNpbmcgY29ubmVjdGlvbiBzcGVjcy4g ICovCi0rCi0rc3RhdGljIHZvaWQKLStydW5fdGVzdHMgKCkKLSt7Ci0rICBmb3IgKGNvbnN0IHBh cnNlX2Nvbm5fdGVzdCAmYyA6IGNvbm5fdGVzdCkKLSsgICAgdGVzdF9jb25uIChjKTsKLSt9Ci0r fSAvKiBuYW1lc3BhY2UgcGFyc2VfY29ubmVjdGlvbl9zcGVjX3Rlc3RzICovCi0rfSAvKiBuYW1l c3BhY2Ugc2VsZnRlc3RzICovCi0rCi0rdm9pZAotK19pbml0aWFsaXplX3BhcnNlX2Nvbm5lY3Rp b25fc3BlY19zZWxmdGVzdHMgKCkKLSt7Ci0rICBzZWxmdGVzdHM6OnJlZ2lzdGVyX3Rlc3QgKCJw YXJzZV9jb25uZWN0aW9uX3NwZWMiLAotKwkJCSAgICBzZWxmdGVzdHM6OnBhcnNlX2Nvbm5lY3Rp b25fc3BlY190ZXN0czo6cnVuX3Rlc3RzKTsKLSt9CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno4ODE4 NDktaXB2Ni0xb2YzLnBhdGNoIGIvZ2RiLXJoYno4ODE4NDktaXB2Ni0xb2YzLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjM2E2NjQKLS0tIC9kZXYvbnVsbAorKysg Yi9nZGItcmhiejg4MTg0OS1pcHY2LTFvZjMucGF0Y2gKQEAgLTAsMCArMSwxOTM0IEBACitGcm9t IEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2VyZ2lvIER1 cmlnYW4gSnVuaW9yIDxzZXJnaW9kakByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxOCBNYXkgMjAx OCAwMToyOToyNCAtMDQwMAorU3ViamVjdDogZ2RiLXJoYno4ODE4NDktaXB2Ni0xb2YzLnBhdGNo CisKKzs7IEltcGxlbWVudCBJUHY2IHN1cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIgKFJIIEJaIDg4 MTg0OSwgU2VyZ2lvIER1cmlnYW4gSnVuaW9yKS4KKworSW1wbGVtZW50IElQdjYgc3VwcG9ydCBm b3IgR0RCL2dkYnNlcnZlcgorCitUaGlzIHBhdGNoIGltcGxlbWVudHMgSVB2NiBzdXBwb3J0IGZv ciBib3RoIEdEQiBhbmQgZ2Ric2VydmVyLiAgQmFzZWQKK29uIG15IHJlc2VhcmNoLCBpdCBpcyB0 aGUgZm91cnRoIGF0dGVtcHQgdG8gZG8gdGhhdCBzaW5jZSAyMDA2LiAgU2luY2UKK0kgdXNlZCBp ZGVhcyBmcm9tIGFsbCBvZiB0aGUgcHJldmlvdXMgcGF0Y2hlcywgSSBhbHNvIGFkZGVkIHRoZWly CithdXRob3JzJ3MgbmFtZXMgb24gdGhlIENoYW5nZUxvZ3MgYXMgYSB3YXkgdG8gcmVjb2duaXpl IHRoZWlyCitlZmZvcnRzLiAgRm9yIHJlZmVyZW5jZSBzYWtlLCB5b3UgY2FuIGZpbmQgdGhlIHBy ZXZpb3VzIGF0dGVtcHRzIGF0OgorCisgIGh0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBh dGNoZXMvMjAwNi0wOS9tc2cwMDE5Mi5odG1sCisKKyAgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9t bC9nZGItcGF0Y2hlcy8yMDE0LTAyL21zZzAwMjQ4Lmh0bWwKKworICBodHRwczovL3NvdXJjZXdh cmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDIvbXNnMDAyMjYuaHRtbAorCitUaGUgYmFzaWMg aWRlYSBiZWhpbmQgdGhlIHBhdGNoIGlzIHRvIHN0YXJ0IHVzaW5nIHRoZSBuZXcKKydnZXRhZGRy aW5mbycvJ2dldG5hbWVpbmZvJyBjYWxscywgd2hpY2ggYXJlIHJlc3BvbnNpYmxlIGZvcgordHJh bnNsYXRpbmcgbmFtZXMgYW5kIGFkZHJlc3NlcyBpbiBhIHByb3RvY29sLWluZGVwZW5kZW50IHdh eS4gIFRoaXMKK21lYW5zIHRoYXQgaWYgd2UgZXZlciBoYXZlIGEgbmV3IHZlcnNpb24gb2YgdGhl IElQIHByb3RvY29sLCB3ZSB3b24ndAorbmVlZCB0byBjaGFuZ2UgdGhlIGNvZGUgYWdhaW4gKG9y LCBhdCBsZWFzdCwgd29uJ3QgaGF2ZSB0byBjaGFuZ2UgdGhlCittYWpvcml0eSBvZiB0aGUgY29k ZSkuCisKK1RoZSBmdW5jdGlvbiAnZ2V0YWRkcmluZm8nIHJldHVybnMgYSBsaW5rZWQgbGlzdCBv ZiBwb3NzaWJsZSBhZGRyZXNzZXMKK3RvIGNvbm5lY3QgdG8uICBEZWFsaW5nIHdpdGggbXVsdGlw bGUgYWRkcmVzc2VzIHByb3ZlZCB0byBiZSBhIGhhcmQKK3Rhc2sgd2l0aCB0aGUgY3VycmVudCBU Q1AgYXV0by1yZXRyeSBtZWNoYW5pc20gaW1wbGVtZW50ZWQgb24KK3Nlci10Y3A6bmV0X29wZW4u ICBGb3IgZXhhbXBsZSwgd2hlbiBnZGJzZXJ2ZXIgbGlzdGVuZWQgb25seSBvbiBhbgorSVB2NCBz b2NrZXQ6CisKKyAgJCAuL2dkYnNlcnZlciAtLW9uY2UgMTI3LjAuMC4xOjEyMzQgLi9hLm91dAor CithbmQgR0RCIHdhcyBpbnN0cnVjdGVkIHRvIHRyeSB0byBjb25uZWN0IHRvIGJvdGggSVB2NiBh bmQgSVB2NAorc29ja2V0czoKKworICAkIC4vZ2RiIC1leCAndGFyZ2V0IGV4dGVuZGVkLXJlbW90 ZSBsb2NhbGhvc3Q6MTIzNCcgLi9hLm91dAorCit0aGUgdXNlciB3b3VsZCBub3RpY2UgYSBzb21l d2hhdCBiaWcgZGVsYXkgYmVmb3JlIEdEQiB3YXMgYWJsZSB0bworY29ubmVjdCB0byB0aGUgSVB2 NCBzb2NrZXQuICBUaGlzIGhhcHBlbmVkIGJlY2F1c2UgR0RCIHdhcyB0cnlpbmcgdG8KK2Nvbm5l Y3QgdG8gdGhlIElQdjYgc29ja2V0IGZpcnN0LCBhbmQgaGFkIHRvIHdhaXQgdW50aWwgdGhlIGNv bm5lY3Rpb24KK3RpbWVkIG91dCBiZWZvcmUgaXQgdHJpZWQgdG8gY29ubmVjdCB0byB0aGUgSVB2 NCBzb2NrZXQuCisKK0ZvciB0aGF0IHJlYXNvbiwgSSBoYWQgdG8gcmV3cml0ZSB0aGUgbWFpbiBs b29wIGFuZCBpbXBsZW1lbnQgYSBuZXcKK21ldGhvZCBmb3IgaGFuZGxpbmcgbXVsdGlwbGUgY29u bmVjdGlvbnMuICBBZnRlciBzb21lIGRpc2N1c3Npb24sCitQZWRybyBhbmQgSSBhZ3JlZWQgb24g dGhlIGZvbGxvd2luZyBhbGdvcml0aG06CisKKyAgMSkgRm9yIGVhY2ggZW50cnkgcmV0dXJuZWQg YnkgJ2dldGFkZHJpbmZvJywgd2UgdHJ5IHRvIG9wZW4gYSBzb2NrZXQKKyAgYW5kIGNvbm5lY3Qg dG8gaXQuCisKKyAgMi5hKSBJZiB3ZSBoYXZlIGEgc3VjY2Vzc2Z1bCAnY29ubmVjdCcsIHdlIGp1 c3QgdXNlIHRoYXQgY29ubmVjdGlvbi4KKworICAyLmIpIElmIHdlIGRvbid0IGhhdmUgYSBzdWNj ZXNzZnVsbCAnY29ubmVjdCcsIGJ1dCBpZiB3ZSd2ZSBnb3QgYQorICBFQ09OTlJFRlVTRUQgKG1l YW5pbmcgdGhlIHRoZSBjb25uZWN0aW9uIHdhcyByZWZ1c2VkKSwgd2Uga2VlcCB0cmFjaworICBv ZiB0aGlzIGZhY3QgYnkgdXNpbmcgYSBmbGFnLgorCisgIDIuYykgSWYgd2UgZG9uJ3QgaGF2ZSBh IHN1Y2Nlc3NmdWxsICdjb25uZWN0JywgYnV0IGlmIHdlJ3ZlIGdvdCBhCisgIEVJTlBST0dSRVNT IChtZWFuaW5nIHRoYXQgdGhlIGNvbm5lY3Rpb24gaXMgaW4gcHJvZ3Jlc3MpLCB3ZSBwZXJmb3Jt CisgIGEgJ3NlbGVjdCcgY2FsbCBvbiB0aGUgc29ja2V0IHVudGlsIHdlIGhhdmUgYSByZXN1bHQg KGVpdGhlciBhCisgIHN1Y2Nlc3NmdWwgY29ubmVjdGlvbiwgb3IgYW4gZXJyb3Igb24gdGhlIHNv Y2tldCkuCisKKyAgMykgSWYgdGNwX2F1dG9fcmV0cnkgaXMgdHJ1ZSwgYW5kIHdlIGhhdmVuJ3Qg Z290dGVuIGEgc3VjY2Vzc2Z1bAorICBjb25uZWN0aW9uLCBhbmQgYXQgbGVhc3Qgb25lIG9mIG91 ciBhdHRlbXB0cyBmYWlsZWQgd2l0aAorICBFQ09OTlJFRlVTRUQsIHRoZW4gd2Ugd2FpdCBhIGxp dHRsZSBiaXQgKGkuZS4sIGNhbGwKKyAgJ3dhaXRfZm9yX2Nvbm5lY3QnKSwgY2hlY2sgdG8gc2Vl IGlmIHRoZXJlIHdhcyBhCisgIHRpbWVvdXQvaW50ZXJydXB0aW9uIChpbiB3aGljaCBjYXNlIHdl IGJhaWwgb3V0KSwgYW5kIHRoZW4gZ28gYmFjaworICB0byAoMSkuCisKK0FmdGVyIG11bHRpcGxl IHRlc3RzLCBJIHdhcyBhYmxlIHRvIGNvbm5lY3Qgd2l0aG91dCBkZWxheSBvbiB0aGUKK3NjZW5h cmlvIGRlc2NyaWJlZCBhYm92ZSwgYW5kIHdhcyBhbHNvIGFibGUgdG8gY29ubmVjdCBpbiBhbGwg b3RoZXIKK3R5cGVzIG9mIHNjZW5hcmlvcy4KKworSSBhbHNvIGltcGxlbWVudGVkIHNvbWUgaG9z dG5hbWUgcGFyc2luZyBmdW5jdGlvbnMgKGFsb25nIHdpdGggdGhlaXIKK2NvcnJlc3BvbmRpbmcg dW5pdCB0ZXN0cykgd2hpY2ggYXJlIHVzZWQgdG8gaGVscCBHREIgYW5kIGdkYnNlcnZlciB0bwor cGFyc2UgaG9zdG5hbWUgc3RyaW5ncyBwcm92aWRlZCBieSB0aGUgdXNlci4gIFRoZXNlIG5ldyBm dW5jdGlvbnMgYXJlCitsaXZpbmcgaW5zaWRlIGNvbW1vbi9uZXRzdHVmZi5bY2hdLiAgSSd2ZSBo YWQgdG8gZG8gdGhhdCBzaW5jZSBJUHY2CitpbnRyb2R1Y2VzIGEgbmV3IFVSTCBzY2hlbWUsIHdo aWNoIGRlZmluZXMgdGhhdCBzcXVhcmUgYnJhY2tldHMgY2FuIGJlCit1c2VkIHRvIGVuY2xvc2Ug dGhlIGhvc3QgcGFydCBhbmQgZGlmZmVyZW50aWF0ZSBpdCBmcm9tIHRoZQorcG9ydCAoZS5nLiwg Ils6OjFdOjEyMzQiIG1lYW5zICJob3N0IDo6MSwgcG9ydCAxMjM0IikuICBJIHNwZW50IHNvbWUK K3RpbWUgdGhpbmtpbmcgYWJvdXQgYSByZWFzb25hYmxlIHdheSB0byBpbnRlcnByZXQgd2hhdCB0 aGUgdXNlciB3YW50cywKK2FuZCBJIGNhbWUgdXAgd2l0aCB0aGUgZm9sbG93aW5nOgorCisgIC0g SWYgdGhlIHVzZXIgaGFzIHByb3ZpZGVkIGEgcHJlZml4IHRoYXQgZG9lc24ndCBzcGVjaWZ5IHRo ZSBwcm90b2NvbAorICAgIHZlcnNpb24gKGkuZS4sICJ0Y3A6IiBvciAidWRwOiIpLCBvciBpZiB0 aGUgdXNlciBoYXMgbm90IHByb3ZpZGVkCisgICAgYW55IHByZWZpeCwgZG9uJ3QgbWFrZSBhbnkg YXNzdW1wdGlvbnMgKGkuZS4sIGFzc3VtZSBBRl9VTlNQRUMgd2hlbgorICAgIGRlYWxpbmcgd2l0 aCAnZ2V0YWRkcmluZm8nKSAqdW5sZXNzKiB0aGUgaG9zdCBzdGFydHMgd2l0aCAiWyIgKGluCisg ICAgd2hpY2ggY2FzZSwgYXNzdW1lIGl0J3MgYW4gSVB2NiBob3N0KS4KKworICAtIElmIHRoZSB1 c2VyIGhhcyBwcm92aWRlZCBhIHByZWZpeCB0aGF0IGRvZXMgc3BlY2lmeSB0aGUgcHJvdG9jb2wK KyAgICB2ZXJzaW9uIChpLmUuLCAidGNwNDoiLCAidGNwNjoiLCAidWRwNDoiIG9yICJ1ZHA2OiIp LCB0aGVuIHJlc3BlY3QKKyAgICB0aGF0LgorCitUaGlzIG1ldGhvZCBkb2Vzbid0IGZvbGxvdyBz dHJpY3RseSB3aGF0IFJGQyAyNzMyIHByb3Bvc2VzICh0aGF0CitsaXRlcmFsIElQdjYgYWRkcmVz c2VzIHNob3VsZCBiZSBwcm92aWRlZCBlbmNsb3NlZCBpbiAiWyIgYW5kICJdIikKK2JlY2F1c2Ug SVB2NiBhZGRyZXNzZXMgc3RpbGwgY2FuIGJlIHByb3ZpZGVkIHdpdGhvdXQgc3F1YXJlIGJyYWNr ZXRzCitpbiBvdXIgY2FzZSwgYnV0IHNpbmNlIHdlIGhhdmUgcHJlZml4ZXMgdG8gc3BlY2lmeSBw cm90b2NvbCB2ZXJzaW9ucyBJCit0aGluayB0aGlzIGlzIG5vdCBhbiBpc3N1ZS4KKworQW5vdGhl ciB0aGluZyB3b3J0aCBtZW50aW9uaW5nIGlzIHRoZSBuZXcgJ0dEQl9URVNUX1NPQ0tFVEhPU1Qn Cit0ZXN0Y2FzZSBwYXJhbWV0ZXIsIHdoaWNoIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHNwZWNpZnkg dGhlCitob3N0bmFtZSAod2l0aG91dCB0aGUgcG9ydCkgdG8gYmUgdXNlZCB3aGVuIHRlc3Rpbmcg R0RCIGFuZAorZ2Ric2VydmVyLiAgRm9yIGV4YW1wbGUsIHRvIHJ1biBJUHY2IHRlc3RzOgorCisg ICQgbWFrZSBjaGVjay1nZGIgUlVOVEVTVEZMQUdTPSdHREJfVEVTVF9TT0NLRVRIT1NUPXRjcDY6 Wzo6MV0nCisKK09yLCB0byBydW4gSVB2NCB0ZXN0czoKKworICAkIG1ha2UgY2hlY2stZ2RiIFJV TlRFU1RGTEFHUz0nR0RCX1RFU1RfU09DS0VUSE9TVD10Y3A0OjEyNy4wLjAuMScKKworVGhpcyBy ZXF1aXJlZCBhIGZldyBjaGFuZ2VzIG9uIHRoZSBnZGJzZXJ2ZXItYmFzZS5leHAsIGFuZCBhbHNv IGEKK21pbmltYWwgYWRqdXN0bWVudCBvbiBnZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJp bmFyeS5leHAuCisKK0ZpbmFsbHksIEkndmUgaW1wbGVtZW50ZWQgYSBuZXcgdGVzdGNhc2UsCitn ZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cCwgd2hpY2ggaXMgc3VwcG9zZWQgdG8gcnVuIG9u IHRoZSBuYXRpdmUKK2hvc3QgYW5kIHBlcmZvcm0gdmFyaW91cyAic21va2UgdGVzdHMiIHVzaW5n IGRpZmZlcmVudCBjb25uZWN0aW9uCittZXRob2RzLgorCitUaGlzIHBhdGNoIGhhcyBiZWVuIHJl Z3Jlc3Npb24tdGVzdGVkIG9uIEJ1aWxkQm90IGFuZCBsb2NhbGx5LCBhbmQKK2Fsc28gYnVpbHQg dXNpbmcgYSB4ODZfNjQtdzY0LW1pbmd3MzIgR0NDLCBhbmQgbm8gcHJvYmxlbXMgd2VyZSBmb3Vu ZC4KKworZ2RiL0NoYW5nZUxvZzoKKzIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAg PHNlcmdpb2RqQHJlZGhhdC5jb20+CisJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4KKwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4K KwkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgorCSAgICBQZWRybyBBbHZl cyAgPHBhbHZlc0ByZWRoYXQuY29tPgorCisJKiBNYWtlZmlsZS5pbiAoU1VCRElSX1VOSVRURVNU U19TUkNTKTogQWRkCisJJ3VuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3Rz LmMnLgorCShDT01NT05fU0ZJTEVTKTogQWRkICdjb21tb24vbmV0c3R1ZmYuYycuCisJKEhGSUxF U19OT19TUkNESVIpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5oJy4KKwkqIE5FV1MgKENoYW5nZXMg c2luY2UgR0RCIDguMik6IE1lbnRpb24gSVB2NiBzdXBwb3J0LgorCSogY29tbW9uL25ldHN0dWZm LmM6IE5ldyBmaWxlLgorCSogY29tbW9uL25ldHN0dWZmLmg6IE5ldyBmaWxlLgorCSogc2VyLXRj cC5jOiBJbmNsdWRlICduZXRzdHVmZi5oJyBhbmQgJ3dzcGlhcGkuaCcuCisJKHdhaXRfZm9yX2Nv bm5lY3QpOiBVcGRhdGUgY29tbWVudC4gIE5ldyBwYXJhbWV0ZXIKKwknZ2RiOjpvcHRpb25hbDxp bnQ+IHNvY2snIGluc3RlYWQgb2YgJ3N0cnVjdCBzZXJpYWwgKnNjYicuCisJVXNlICdzb2NrJyBk aXJlY3RseSBpbnN0ZWFkIG9mICdzY2ItPmZkJy4KKwkodHJ5X2Nvbm5lY3QpOiBOZXcgZnVuY3Rp b24sIHdpdGggY29kZSBmcm9tICduZXRfb3BlbicuCisJKG5ldF9vcGVuKTogUmV3cml0ZSBtYWlu IGxvb3AgdG8gZGVhbCB3aXRoIG11bHRpcGxlCisJc29ja2V0cy9hZGRyZXNzZXMuICBIYW5kbGUg SVB2Ni1zdHlsZSBob3N0bmFtZXM7IGltcGxlbWVudAorCXN1cHBvcnQgZm9yIElQdjYgY29ubmVj dGlvbnMuCisJKiB1bml0dGVzdHMvcGFyc2UtY29ubmVjdGlvbi1zcGVjLXNlbGZ0ZXN0cy5jOiBO ZXcgZmlsZS4KKworZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2c6CisyMDE4LTA3LTExICBTZXJnaW8g RHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgorCSAgICBKYW4gS3JhdG9jaHZp bCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisJICAgIFBhdWwgRmVydHNlciAgPGZlcmNl cnBhdkBnbWFpbC5jb20+CisJICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4K KworCSogTWFrZWZpbGUuaW4gKFNGSUxFUyk6IEFkZCAnJChzcmNkaXIpL2NvbW1vbi9uZXRzdHVm Zi5jJy4KKwkoT0JTKTogQWRkICdjb21tb24vbmV0c3R1ZmYubycuCisJKEdEQlJFUExBWV9PQlMp OiBMaWtld2lzZS4KKwkqIGdkYnJlcGxheS5jOiBJbmNsdWRlICd3c3BpYXBpLmgnIGFuZCAnbmV0 c3R1ZmYuaCcuCisJKHJlbW90ZV9vcGVuKTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIElQdjYKKwlj b25uZWN0aW9ucy4KKwkqIHJlbW90ZS11dGlscy5jOiBJbmNsdWRlICduZXRzdHVmZi5oJywgJ2Zp bGVzdHVmZi5oJworCWFuZCAnd3NwaWFwaS5oJy4KKwkoaGFuZGxlX2FjY2VwdF9ldmVudCk6IEFj Y2VwdCBjb25uZWN0aW9ucyBmcm9tIElQdjYgc291cmNlcy4KKwkocmVtb3RlX3ByZXBhcmUpOiBI YW5kbGUgSVB2Ni1zdHlsZSBob3N0bmFtZXM7IGltcGxlbWVudAorCXN1cHBvcnQgZm9yIElQdjYg Y29ubmVjdGlvbnMuCisJKHJlbW90ZV9vcGVuKTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIHByaW50 aW5nIGNvbm5lY3Rpb25zIGZyb20KKwlJUHY2IHNvdXJjZXMuCisKK2dkYi90ZXN0c3VpdGUvQ2hh bmdlTG9nOgorMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVk aGF0LmNvbT4KKwkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PgorCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgorCSAgICBUc3V0b211 IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+CisKKwkqIFJFQURNRSAoVGVzdHN1aXRlIFBhcmFt ZXRlcnMpOiBNZW50aW9uIG5ldyAnR0RCX1RFU1RfU09DS0VUSE9TVCcKKwlwYXJhbWV0ZXIuCisJ KiBib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHA6IERvIG5vdCBzZXQgJ3NvY2tl dGhvc3QnCisJYnkgZGVmYXVsdC4KKwkqIGJvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cDogTGlr ZXdpc2UuCisJKiBnZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHA6IEltcHJv dmUgcmVnZXhwIHVzZWQKKwlmb3IgZGV0ZWN0aW5nIHdoZW4gYSByZW1vdGUgZGVidWdnaW5nIGNv bm5lY3Rpb24gc3VjY2VlZHMuCisJKiBnZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cDogTmV3 IGZpbGUuCisJKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJfZGVmYXVsdF9n ZXRfY29tbV9wb3J0KToKKwlEbyBub3QgcHJlZml4IHRoZSBwb3J0IG51bWJlciB3aXRoICI6Ii4K KwkoZ2Ric2VydmVyX3N0YXJ0KTogTmV3IGdsb2JhbCBHREJfVEVTVF9TT0NLRVRIT1NULiAgSW1w bGVtZW50CisJc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIGFuZCB1c2luZyBpdC4gIEFkZCAnJGRlYnVn aG9zdF9nZGJzZXJ2ZXInCisJdG8gdGhlIGxpc3Qgb2YgYXJndW1lbnRzIHVzZWQgdG8gc3RhcnQg Z2Ric2VydmVyLiAgSGFuZGxlIGNhc2UKKwl3aGVuIGdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBh IG5ldHdvcmsgbmFtZS4KKworZ2RiL2RvYy9DaGFuZ2VMb2c6CisyMDE4LTA3LTExICBTZXJnaW8g RHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgorCSAgICBKYW4gS3JhdG9jaHZp bCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisJICAgIFBhdWwgRmVydHNlciAgPGZlcmNl cnBhdkBnbWFpbC5jb20+CisJICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4K KworCSogZ2RiLnRleGluZm8gKFJlbW90ZSBDb25uZWN0aW9uIENvbW1hbmRzKTogQWRkIGV4cGxh bmF0aW9uCisJYWJvdXQgbmV3IElQdjYgc3VwcG9ydC4gIEFkZCBuZXcgY29ubmVjdGlvbiBwcmVm aXhlcy4KKworZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgor LS0tIGEvZ2RiL01ha2VmaWxlLmluCisrKysgYi9nZGIvTWFrZWZpbGUuaW4KK0BAIC00MzAsNiAr NDMwLDcgQEAgU1VCRElSX1VOSVRURVNUU19TUkNTID0gXAorIAl1bml0dGVzdHMvb2Zmc2V0LXR5 cGUtc2VsZnRlc3RzLmMgXAorIAl1bml0dGVzdHMvb2JzZXJ2YWJsZS1zZWxmdGVzdHMuYyBcCisg CXVuaXR0ZXN0cy9vcHRpb25hbC1zZWxmdGVzdHMuYyBcCisrCXVuaXR0ZXN0cy9wYXJzZS1jb25u ZWN0aW9uLXNwZWMtc2VsZnRlc3RzLmMgXAorIAl1bml0dGVzdHMvcHRpZC1zZWxmdGVzdHMuYyBc CisgCXVuaXR0ZXN0cy9yc3AtbG93LXNlbGZ0ZXN0cy5jIFwKKyAJdW5pdHRlc3RzL3Njb3BlZF9m ZC1zZWxmdGVzdHMuYyBcCitAQCAtOTY3LDYgKzk2OCw3IEBAIENPTU1PTl9TRklMRVMgPSBcCisg CWNvbW1vbi9qb2ItY29udHJvbC5jIFwKKyAJY29tbW9uL2dkYl90aWxkZV9leHBhbmQuYyBcCisg CWNvbW1vbi9nZGJfdmVjcy5jIFwKKysJY29tbW9uL25ldHN0dWZmLmMgXAorIAljb21tb24vbmV3 LW9wLmMgXAorIAljb21tb24vcGF0aHN0dWZmLmMgXAorIAljb21tb24vcHJpbnQtdXRpbHMuYyBc CitAQCAtMTQ0OCw2ICsxNDUwLDcgQEAgSEZJTEVTX05PX1NSQ0RJUiA9IFwKKyAJY29tbW9uL2dk Yl92ZWNzLmggXAorIAljb21tb24vZ2RiX3dhaXQuaCBcCisgCWNvbW1vbi9jb21tb24taW5mZXJp b3IuaCBcCisrCWNvbW1vbi9uZXRzdHVmZi5oIFwKKyAJY29tbW9uL2hvc3QtZGVmcy5oIFwKKyAJ Y29tbW9uL3BhdGhzdHVmZi5oIFwKKyAJY29tbW9uL3ByaW50LXV0aWxzLmggXAorZGlmZiAtLWdp dCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKKy0tLSBhL2dkYi9ORVdTCisrKysgYi9nZGIvTkVXUwor QEAgLTEsNiArMSwxMiBAQAorIAkJV2hhdCBoYXMgY2hhbmdlZCBpbiBHREI/CisgCSAgICAgKE9y Z2FuaXplZCByZWxlYXNlIGJ5IHJlbGVhc2UpCisgCisrKioqIENoYW5nZXMgc2luY2UgR0RCIDgu MgorKworKyogR0RCIGFuZCBHREJzZXJ2ZXIgbm93IHN1cHBvcnQgSVB2NiBjb25uZWN0aW9ucy4g IElQdjYgYWRkcmVzc2VzCisrICBjYW4gYmUgcGFzc2VkIHVzaW5nIHRoZSAnW0FERFJFU1NdOlBP UlQnIG5vdGF0aW9uLCBvciB0aGUgcmVndWxhcgorKyAgJ0FERFJFU1M6UE9SVCcgbWV0aG9kLgor KworICoqKiBDaGFuZ2VzIGluIEdEQiA4LjIKKyAKKyAqIFRoZSAnc2V0IGRpc2Fzc2VtYmxlci1v cHRpb25zJyBjb21tYW5kIG5vdyBzdXBwb3J0cyBzcGVjaWZ5aW5nIG9wdGlvbnMKK2RpZmYgLS1n aXQgYS9nZGIvY29tbW9uL25ldHN0dWZmLmMgYi9nZGIvY29tbW9uL25ldHN0dWZmLmMKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvY29tbW9uL25ldHN0dWZm LmMKK0BAIC0wLDAgKzEsMTU1IEBACisrLyogT3BlcmF0aW9ucyBvbiBuZXR3b3JrIHN0dWZmLgor KyAgIENvcHlyaWdodCAoQykgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysK KysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisr ICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlICJjb21tb24tZGVmcy5oIgorKyNpbmNs dWRlICJuZXRzdHVmZi5oIgorKyNpbmNsdWRlIDxhbGdvcml0aG0+CisrCisrI2lmZGVmIFVTRV9X SU4zMkFQSQorKyNpbmNsdWRlIDx3aW5zb2NrMi5oPgorKyNpbmNsdWRlIDx3c3BpYXBpLmg+Cisr I2Vsc2UKKysjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4K KysjaW5jbHVkZSA8bmV0ZGIuaD4KKysjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorKyNpbmNsdWRl IDxuZXRpbmV0L3RjcC5oPgorKyNlbmRpZgorKworKy8qIFNlZSBjb21tb24vbmV0c3R1ZmYuaC4g ICovCisrCisrc2NvcGVkX2ZyZWVfYWRkcmluZm86On5zY29wZWRfZnJlZV9hZGRyaW5mbyAoKQor K3sKKysgIGZyZWVhZGRyaW5mbyAobV9yZXMpOworK30KKysKKysvKiBTZWUgY29tbW9uL25ldHN0 dWZmLmguICAqLworKworK3BhcnNlZF9jb25uZWN0aW9uX3NwZWMKKytwYXJzZV9jb25uZWN0aW9u X3NwZWNfd2l0aG91dF9wcmVmaXggKHN0ZDo6c3RyaW5nIHNwZWMsIHN0cnVjdCBhZGRyaW5mbyAq aGludCkKKyt7CisrICBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIHJldDsKKysgIHNpemVfdCBsYXN0 X2NvbG9uX3BvcyA9IDA7CisrICAvKiBXZSdyZSBkZWFsaW5nIHdpdGggSVB2NiBpZjoKKysKKysg ICAgIC0gYWlfZmFtaWx5IGlzIEFGX0lORVQ2LCBvcgorKyAgICAgLSBhaV9mYW1pbHkgaXMgbm90 IEFGX0lORVQsIGFuZAorKyAgICAgICAtIHNwZWNbMF0gaXMgJ1snLCBvcgorKyAgICAgICAtIHRo ZSBudW1iZXIgb2YgJzonIG9uIHNwZWMgaXMgZ3JlYXRlciB0aGFuIDEuICAqLworKyAgYm9vbCBp c19pcHY2ID0gKGhpbnQtPmFpX2ZhbWlseSA9PSBBRl9JTkVUNgorKwkJICB8fCAoaGludC0+YWlf ZmFtaWx5ICE9IEFGX0lORVQKKysJCSAgICAgICYmIChzcGVjWzBdID09ICdbJworKwkJCSAgfHwg c3RkOjpjb3VudCAoc3BlYy5iZWdpbiAoKSwKKysJCQkJCSBzcGVjLmVuZCAoKSwgJzonKSA+IDEp KSk7CisrCisrICBpZiAoaXNfaXB2NikKKysgICAgeworKyAgICAgIGlmIChzcGVjWzBdID09ICdb JykKKysJeworKwkgIC8qIElQdjYgYWRkcmVzc2VzIGNhbiBiZSB3cml0dGVuIGFzICdbQUREUl06 UE9SVCcsIGFuZCB3ZQorKwkgICAgIHN1cHBvcnQgdGhpcyBub3RhdGlvbi4gICovCisrCSAgc2l6 ZV90IGNsb3NlX2JyYWNrZXRfcG9zID0gc3BlYy5maW5kX2ZpcnN0X29mICgnXScpOworKworKwkg IGlmIChjbG9zZV9icmFja2V0X3BvcyA9PSBzdGQ6OnN0cmluZzo6bnBvcykKKysJICAgIGVycm9y IChfKCJNaXNzaW5nIGNsb3NlIGJyYWNrZXQgaW4gaG9zdG5hbWUgJyVzJyIpLAorKwkJICAgc3Bl Yy5jX3N0ciAoKSk7CisrCisrCSAgaGludC0+YWlfZmFtaWx5ID0gQUZfSU5FVDY7CisrCisrCSAg Y29uc3QgY2hhciBjID0gc3BlY1tjbG9zZV9icmFja2V0X3BvcyArIDFdOworKworKwkgIGlmIChj ID09ICdcMCcpCisrCSAgICBsYXN0X2NvbG9uX3BvcyA9IHN0ZDo6c3RyaW5nOjpucG9zOworKwkg IGVsc2UgaWYgKGMgIT0gJzonKQorKwkgICAgZXJyb3IgKF8oIkludmFsaWQgY3J1ZnQgYWZ0ZXIg Y2xvc2UgYnJhY2tldCBpbiAnJXMnIiksCisrCQkgICBzcGVjLmNfc3RyICgpKTsKKysKKysJICAv KiBFcmFzZSBib3RoICdbJyBhbmQgJ10nLiAgKi8KKysJICBzcGVjLmVyYXNlICgwLCAxKTsKKysJ ICBzcGVjLmVyYXNlIChjbG9zZV9icmFja2V0X3BvcyAtIDEsIDEpOworKwl9CisrICAgICAgZWxz ZSBpZiAoc3BlYy5maW5kX2ZpcnN0X29mICgnXScpICE9IHN0ZDo6c3RyaW5nOjpucG9zKQorKwll cnJvciAoXygiTWlzc2luZyBvcGVuIGJyYWNrZXQgaW4gaG9zdG5hbWUgJyVzJyIpLAorKwkgICAg ICAgc3BlYy5jX3N0ciAoKSk7CisrICAgIH0KKysKKysgIGlmIChsYXN0X2NvbG9uX3BvcyA9PSAw KQorKyAgICBsYXN0X2NvbG9uX3BvcyA9IHNwZWMuZmluZF9sYXN0X29mICgnOicpOworKworKyAg LyogVGhlIGxlbmd0aCBvZiB0aGUgaG9zdG5hbWUgcGFydC4gICovCisrICBzaXplX3QgaG9zdF9s ZW47CisrCisrICBpZiAobGFzdF9jb2xvbl9wb3MgIT0gc3RkOjpzdHJpbmc6Om5wb3MpCisrICAg IHsKKysgICAgICAvKiBUaGUgdXNlciBoYXMgcHJvdmlkZWQgYSBwb3J0LiAgKi8KKysgICAgICBo b3N0X2xlbiA9IGxhc3RfY29sb25fcG9zOworKyAgICAgIHJldC5wb3J0X3N0ciA9IHNwZWMuc3Vi c3RyIChsYXN0X2NvbG9uX3BvcyArIDEpOworKyAgICB9CisrICBlbHNlCisrICAgIGhvc3RfbGVu ID0gc3BlYy5zaXplICgpOworKworKyAgcmV0Lmhvc3Rfc3RyID0gc3BlYy5zdWJzdHIgKDAsIGhv c3RfbGVuKTsKKysKKysgIC8qIERlZmF1bHQgaG9zdG5hbWUgaXMgbG9jYWxob3N0LiAgKi8KKysg IGlmIChyZXQuaG9zdF9zdHIuZW1wdHkgKCkpCisrICAgIHJldC5ob3N0X3N0ciA9ICJsb2NhbGhv c3QiOworKworKyAgcmV0dXJuIHJldDsKKyt9CisrCisrLyogU2VlIGNvbW1vbi9uZXRzdHVmZi5o LiAgKi8KKysKKytwYXJzZWRfY29ubmVjdGlvbl9zcGVjCisrcGFyc2VfY29ubmVjdGlvbl9zcGVj IChjb25zdCBjaGFyICpzcGVjLCBzdHJ1Y3QgYWRkcmluZm8gKmhpbnQpCisreworKyAgLyogU3Ry dWN0IHRvIGhvbGQgdGhlIGFzc29jaWF0aW9uIGJldHdlZW4gdmFsaWQgcHJlZml4ZXMsIHRoZWly CisrICAgICBmYW1pbHkgYW5kIHNvY2t0eXBlLiAgKi8KKysgIHN0cnVjdCBob3N0X3ByZWZpeAor KyAgICB7CisrICAgICAgLyogVGhlIHByZWZpeC4gICovCisrICAgICAgY29uc3QgY2hhciAqcHJl Zml4OworKworKyAgICAgIC8qIFRoZSAnYWlfZmFtaWx5Jy4gICovCisrICAgICAgaW50IGZhbWls eTsKKysKKysgICAgICAvKiBUaGUgJ2FpX3NvY2t0eXBlJy4gICovCisrICAgICAgaW50IHNvY2t0 eXBlOworKyAgICB9OworKyAgc3RhdGljIGNvbnN0IHN0cnVjdCBob3N0X3ByZWZpeCBwcmVmaXhl c1tdID0KKysgICAgeworKyAgICAgIHsgInVkcDoiLCAgQUZfVU5TUEVDLCBTT0NLX0RHUkFNIH0s CisrICAgICAgeyAidGNwOiIsICBBRl9VTlNQRUMsIFNPQ0tfU1RSRUFNIH0sCisrICAgICAgeyAi dWRwNDoiLCBBRl9JTkVULCAgIFNPQ0tfREdSQU0gfSwKKysgICAgICB7ICJ0Y3A0OiIsIEFGX0lO RVQsICAgU09DS19TVFJFQU0gfSwKKysgICAgICB7ICJ1ZHA2OiIsIEFGX0lORVQ2LCAgU09DS19E R1JBTSB9LAorKyAgICAgIHsgInRjcDY6IiwgQUZfSU5FVDYsICBTT0NLX1NUUkVBTSB9LAorKyAg ICB9OworKworKyAgZm9yIChjb25zdCBob3N0X3ByZWZpeCBwcmVmaXggOiBwcmVmaXhlcykKKysg ICAgaWYgKHN0YXJ0c3dpdGggKHNwZWMsIHByZWZpeC5wcmVmaXgpKQorKyAgICAgIHsKKysJc3Bl YyArPSBzdHJsZW4gKHByZWZpeC5wcmVmaXgpOworKwloaW50LT5haV9mYW1pbHkgPSBwcmVmaXgu ZmFtaWx5OworKwloaW50LT5haV9zb2NrdHlwZSA9IHByZWZpeC5zb2NrdHlwZTsKKysJaGludC0+ YWlfcHJvdG9jb2wKKysJICA9IGhpbnQtPmFpX3NvY2t0eXBlID09IFNPQ0tfREdSQU0gPyBJUFBS T1RPX1VEUCA6IElQUFJPVE9fVENQOworKwlicmVhazsKKysgICAgICB9CisrCisrICByZXR1cm4g cGFyc2VfY29ubmVjdGlvbl9zcGVjX3dpdGhvdXRfcHJlZml4IChzcGVjLCBoaW50KTsKKyt9Citk aWZmIC0tZ2l0IGEvZ2RiL2NvbW1vbi9uZXRzdHVmZi5oIGIvZ2RiL2NvbW1vbi9uZXRzdHVmZi5o CituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL2NvbW1vbi9u ZXRzdHVmZi5oCitAQCAtMCwwICsxLDc2IEBACisrLyogT3BlcmF0aW9ucyBvbiBuZXR3b3JrIHN0 dWZmLgorKyAgIENvcHlyaWdodCAoQykgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysKKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisrCisrICAgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgTkVUU1RVRkZfSAorKyNkZWZp bmUgTkVUU1RVRkZfSAorKworKyNpbmNsdWRlIDxzdHJpbmc+CisrCisrLyogTGlrZSBOSV9NQVhI T1NUL05JX01BWFNFUlYsIGJ1dCBlbm91Z2ggZm9yIG51bWVyaWMgZm9ybXMuICAqLworKyNkZWZp bmUgR0RCX05JX01BWF9BRERSIDY0CisrI2RlZmluZSBHREJfTklfTUFYX1BPUlQgMTYKKysKKysv KiBIZWxwZXIgY2xhc3MgdG8gZ3VhcmFudGVlIHRoYXQgd2UgYWx3YXlzIGNhbGwgJ2ZyZWVhZGRy aW5mbycuICAqLworKworK2NsYXNzIHNjb3BlZF9mcmVlX2FkZHJpbmZvCisreworK3B1YmxpYzoK KysgIC8qIERlZmF1bHQgY29uc3RydWN0b3IuICAqLworKyAgZXhwbGljaXQgc2NvcGVkX2ZyZWVf YWRkcmluZm8gKHN0cnVjdCBhZGRyaW5mbyAqYWluZm8pCisrICAgIDogbV9yZXMgKGFpbmZvKQor KyAgeworKyAgfQorKworKyAgLyogRGVzdHJ1Y3RvciByZXNwb25zaWJsZSBmb3IgZnJlZSdpbmcg TV9SRVMgYnkgY2FsbGluZworKyAgICAgJ2ZyZWVhZGRyaW5mbycuICAqLworKyAgfnNjb3BlZF9m cmVlX2FkZHJpbmZvICgpOworKworKyAgRElTQUJMRV9DT1BZX0FORF9BU1NJR04gKHNjb3BlZF9m cmVlX2FkZHJpbmZvKTsKKysKKytwcml2YXRlOgorKyAgLyogVGhlIGFkZHJpbmZvIHJlc291cmNl LiAgKi8KKysgIHN0cnVjdCBhZGRyaW5mbyAqbV9yZXM7CisrfTsKKysKKysvKiBUaGUgc3RydWN0 IHdlIHJldHVybiBhZnRlciBwYXJzaW5nIHRoZSBjb25uZWN0aW9uIHNwZWMuICAqLworKworK3N0 cnVjdCBwYXJzZWRfY29ubmVjdGlvbl9zcGVjCisreworKyAgLyogVGhlIGhvc3RuYW1lLiAgKi8K KysgIHN0ZDo6c3RyaW5nIGhvc3Rfc3RyOworKworKyAgLyogVGhlIHBvcnQsIGlmIGFueS4gICov CisrICBzdGQ6OnN0cmluZyBwb3J0X3N0cjsKKyt9OworKworKworKy8qIFBhcnNlIFNQRUMgKHdo aWNoIGlzIGEgc3RyaW5nIGluIHRoZSBmb3JtIG9mICJBRERSOlBPUlQiKSBhbmQKKysgICByZXR1 cm4gYSAncGFyc2VkX2Nvbm5lY3Rpb25fc3BlYycgc3RydWN0dXJlIHdpdGggdGhlIHByb3BlciBm aWVsZHMKKysgICBmaWxsZWQgaW4uICBBbHNvIGFkanVzdCBISU5UIGFjY29yZGluZ2x5LiAgKi8K KytleHRlcm4gcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYworKyAgcGFyc2VfY29ubmVjdGlvbl9zcGVj X3dpdGhvdXRfcHJlZml4IChzdGQ6OnN0cmluZyBzcGVjLAorKwkJCQkJc3RydWN0IGFkZHJpbmZv ICpoaW50KTsKKysKKysvKiBQYXJzZSBTUEVDICh3aGljaCBpcyBhIHN0cmluZyBpbiB0aGUgZm9y bSBvZgorKyAgICJbdGNwWzZdOnx1ZHBbNl06XUFERFI6UE9SVCIpIGFuZCByZXR1cm4gYSAncGFy c2VkX2Nvbm5lY3Rpb25fc3BlYycKKysgICBzdHJ1Y3R1cmUgd2l0aCB0aGUgcHJvcGVyIGZpZWxk cyBmaWxsZWQgaW4uICBBbHNvIGFkanVzdCBISU5UCisrICAgYWNjb3JkaW5nbHkuICAqLworK2V4 dGVybiBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAoY29uc3Qg Y2hhciAqc3BlYywKKysJCQkJCQkgICAgIHN0cnVjdCBhZGRyaW5mbyAqaGludCk7CisrCisrI2Vu ZGlmIC8qICEgTkVUU1RVRkZfSCAqLworZGlmZiAtLWdpdCBhL2dkYi9kb2MvQ2hhbmdlTG9nIGIv Z2RiL2RvYy9DaGFuZ2VMb2cKKy0tLSBhL2dkYi9kb2MvQ2hhbmdlTG9nCisrKysgYi9nZGIvZG9j L0NoYW5nZUxvZworQEAgLTEsMyArMSwxMSBAQAorKzIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2Fu IEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisrCSAgICBKYW4gS3JhdG9jaHZpbCAgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZA Z21haWwuY29tPgorKwkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgorKwor KwkqIGdkYi50ZXhpbmZvIChSZW1vdGUgQ29ubmVjdGlvbiBDb21tYW5kcyk6IEFkZCBleHBsYW5h dGlvbgorKwlhYm91dCBuZXcgSVB2NiBzdXBwb3J0LiAgQWRkIG5ldyBjb25uZWN0aW9uIHByZWZp eGVzLgorKworIDIwMTgtMDctMDIgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AbWlwcy5jb20+ CisgCisgCVBSIHRkZXAvODI4MgorZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9n ZGIvZG9jL2dkYi50ZXhpbmZvCistLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCisrKysgYi9nZGIv ZG9jL2dkYi50ZXhpbmZvCitAQCAtMjA1NDgsMTYgKzIwNTQ4LDI3IEBAIElmIHlvdSdyZSB1c2lu ZyBhIHNlcmlhbCBsaW5lLCB5b3UgbWF5IHdhbnQgdG8gZ2l2ZSBAdmFsdWV7R0RCTn0gdGhlCisg QGNvZGV7dGFyZ2V0fSBjb21tYW5kLgorIAorIEBpdGVtIHRhcmdldCByZW1vdGUgQGNvZGV7QHZh cntob3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle0B2YXJ7W2hv c3RdfTpAdmFye3BvcnR9fQorIEBpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3RjcDpAdmFye2hv c3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwOkB2YXJ7W2hv c3RdfTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3RjcDQ6QHZhcnto b3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3RjcDY6QHZhcnto b3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3RjcDY6QHZhcntb aG9zdF19OkB2YXJ7cG9ydH19CisgQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7 QHZhcntob3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBj b2Rle0B2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQorIEBpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVt b3RlIEBjb2Rle3RjcDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRl bmRlZC1yZW1vdGUgQGNvZGV7dGNwOkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQorK0BpdGVteCB0 YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3RjcDQ6QHZhcntob3N0fTpAdmFye3BvcnR9fQor K0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3RjcDY6QHZhcntob3N0fTpAdmFy e3BvcnR9fQorK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3RjcDY6QHZhcntb aG9zdF19OkB2YXJ7cG9ydH19CisgQGNpbmRleCBAYWNyb255bXtUQ1B9IHBvcnQsIEBjb2Rle3Rh cmdldCByZW1vdGV9CisgRGVidWcgdXNpbmcgYSBAYWNyb255bXtUQ1B9IGNvbm5lY3Rpb24gdG8g QHZhcntwb3J0fSBvbiBAdmFye2hvc3R9LgorLVRoZSBAdmFye2hvc3R9IG1heSBiZSBlaXRoZXIg YSBob3N0IG5hbWUgb3IgYSBudW1lcmljIEBhY3Jvbnlte0lQfQorLWFkZHJlc3M7IEB2YXJ7cG9y dH0gbXVzdCBiZSBhIGRlY2ltYWwgbnVtYmVyLiAgVGhlIEB2YXJ7aG9zdH0gY291bGQgYmUKKy10 aGUgdGFyZ2V0IG1hY2hpbmUgaXRzZWxmLCBpZiBpdCBpcyBkaXJlY3RseSBjb25uZWN0ZWQgdG8g dGhlIG5ldCwgb3IKKy1pdCBtaWdodCBiZSBhIHRlcm1pbmFsIHNlcnZlciB3aGljaCBpbiB0dXJu IGhhcyBhIHNlcmlhbCBsaW5lIHRvIHRoZQorLXRhcmdldC4KKytUaGUgQHZhcntob3N0fSBtYXkg YmUgZWl0aGVyIGEgaG9zdCBuYW1lLCBhIG51bWVyaWMgQGFjcm9ueW17SVB2NH0KKythZGRyZXNz LCBvciBhIG51bWVyaWMgQGFjcm9ueW17SVB2Nn0gYWRkcmVzcyAod2l0aCBvciB3aXRob3V0IHRo ZQorK3NxdWFyZSBicmFja2V0cyB0byBzZXBhcmF0ZSB0aGUgYWRkcmVzcyBmcm9tIHRoZSBwb3J0 KTsgQHZhcntwb3J0fQorK211c3QgYmUgYSBkZWNpbWFsIG51bWJlci4gIFRoZSBAdmFye2hvc3R9 IGNvdWxkIGJlIHRoZSB0YXJnZXQgbWFjaGluZQorK2l0c2VsZiwgaWYgaXQgaXMgZGlyZWN0bHkg Y29ubmVjdGVkIHRvIHRoZSBuZXQsIG9yIGl0IG1pZ2h0IGJlIGEKKyt0ZXJtaW5hbCBzZXJ2ZXIg d2hpY2ggaW4gdHVybiBoYXMgYSBzZXJpYWwgbGluZSB0byB0aGUgdGFyZ2V0LgorIAorIEZvciBl eGFtcGxlLCB0byBjb25uZWN0IHRvIHBvcnQgMjgyOCBvbiBhIHRlcm1pbmFsIHNlcnZlciBuYW1l ZAorIEBjb2Rle21hbnlmYXJtc306CitAQCAtMjA1NjYsNiArMjA1NzcsMjggQEAgRm9yIGV4YW1w bGUsIHRvIGNvbm5lY3QgdG8gcG9ydCAyODI4IG9uIGEgdGVybWluYWwgc2VydmVyIG5hbWVkCisg dGFyZ2V0IHJlbW90ZSBtYW55ZmFybXM6MjgyOAorIEBlbmQgc21hbGxleGFtcGxlCisgCisrVG8g Y29ubmVjdCB0byBwb3J0IDI4Mjggb24gYSB0ZXJtaW5hbCBzZXJ2ZXIgd2hvc2UgYWRkcmVzcyBp cworK0Bjb2RlezIwMDE6MGRiODo4NWEzOjAwMDA6MDAwMDo4YTJlOjAzNzA6NzMzNH0sIHlvdSBj YW4gZWl0aGVyIHVzZSB0aGUKKytzcXVhcmUgYnJhY2tldCBzeW50YXg6CisrCisrQHNtYWxsZXhh bXBsZQorK3RhcmdldCByZW1vdGUgWzIwMDE6MGRiODo4NWEzOjAwMDA6MDAwMDo4YTJlOjAzNzA6 NzMzNF06MjgyOAorK0BlbmQgc21hbGxleGFtcGxlCisrCisrQG5vaW5kZW50Cisrb3IgZXhwbGlj aXRseSBzcGVjaWZ5IHRoZSBAYWNyb255bXtJUHY2fSBwcm90b2NvbDoKKysKKytAc21hbGxleGFt cGxlCisrdGFyZ2V0IHJlbW90ZSB0Y3A2OjIwMDE6MGRiODo4NWEzOjAwMDA6MDAwMDo4YTJlOjAz NzA6NzMzNDoyODI4CisrQGVuZCBzbWFsbGV4YW1wbGUKKysKKytUaGlzIGxhc3QgZXhhbXBsZSBt YXkgYmUgY29uZnVzaW5nIHRvIHRoZSByZWFkZXIsIGJlY2F1c2UgdGhlcmUgaXMgbm8KKyt2aXNp YmxlIHNlcGFyYXRpb24gYmV0d2VlbiB0aGUgaG9zdG5hbWUgYW5kIHRoZSBwb3J0IG51bWJlci4K KytUaGVyZWZvcmUsIHdlIHJlY29tbWVuZCB0aGUgdXNlciB0byBwcm92aWRlIEBhY3Jvbnlte0lQ djZ9IGFkZHJlc3NlcworK3VzaW5nIHNxdWFyZSBicmFja2V0cyBmb3IgY2xhcml0eS4gIEhvd2V2 ZXIsIGl0IGlzIGltcG9ydGFudCB0bworK21lbnRpb24gdGhhdCBmb3IgQHZhbHVle0dEQk59IHRo ZXJlIGlzIG5vIGFtYmlndWl0eTogdGhlIG51bWJlciBhZnRlcgorK3RoZSBsYXN0IGNvbG9uIGlz IGNvbnNpZGVyZWQgdG8gYmUgdGhlIHBvcnQgbnVtYmVyLgorKworIElmIHlvdXIgcmVtb3RlIHRh cmdldCBpcyBhY3R1YWxseSBydW5uaW5nIG9uIHRoZSBzYW1lIG1hY2hpbmUgYXMgeW91cgorIGRl YnVnZ2VyIHNlc3Npb24gKGUuZy5AOiBhIHNpbXVsYXRvciBmb3IgeW91ciB0YXJnZXQgcnVubmlu ZyBvbiB0aGUKKyBzYW1lIGhvc3QpLCB5b3UgY2FuIG9taXQgdGhlIGhvc3RuYW1lLiAgRm9yIGV4 YW1wbGUsIHRvIGNvbm5lY3QgdG8KK0BAIC0yMDU3OSw3ICsyMDYxMiwxNSBAQCB0YXJnZXQgcmVt b3RlIDoxMjM0CisgTm90ZSB0aGF0IHRoZSBjb2xvbiBpcyBzdGlsbCByZXF1aXJlZCBoZXJlLgor IAorIEBpdGVtIHRhcmdldCByZW1vdGUgQGNvZGV7dWRwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0K KytAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt1ZHA6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19 CisrQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dWRwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19 CisrQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dWRwNjpAdmFye1tob3N0XX06QHZhcntwb3J0 fX0KKytAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt1ZHA6QHZhcntob3N0fTpA dmFye3BvcnR9fQorIEBpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3VkcDpAdmFy e2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7 dWRwOkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVt b3RlIEBjb2Rle3VkcDQ6QHZhcntob3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgZXh0 ZW5kZWQtcmVtb3RlIEBjb2Rle3VkcDY6QHZhcntob3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0 YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3VkcDY6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19 CisgQGNpbmRleCBAYWNyb255bXtVRFB9IHBvcnQsIEBjb2Rle3RhcmdldCByZW1vdGV9CisgRGVi dWcgdXNpbmcgQGFjcm9ueW17VURQfSBwYWNrZXRzIHRvIEB2YXJ7cG9ydH0gb24gQHZhcntob3N0 fS4gIEZvciBleGFtcGxlLCB0bworIGNvbm5lY3QgdG8gQGFjcm9ueW17VURQfSBwb3J0IDI4Mjgg b24gYSB0ZXJtaW5hbCBzZXJ2ZXIgbmFtZWQgQGNvZGV7bWFueWZhcm1zfToKK2RpZmYgLS1naXQg YS9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZyBiL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCistLS0g YS9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZworKysrIGIvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cK K0BAIC0xLDMgKzEsMjIgQEAKKysyMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxz ZXJnaW9kakByZWRoYXQuY29tPgorKwkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZp bEByZWRoYXQuY29tPgorKwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4K KysJICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KKysKKysJKiBNYWtlZmls ZS5pbiAoU0ZJTEVTKTogQWRkICckKHNyY2RpcikvY29tbW9uL25ldHN0dWZmLmMnLgorKwkoT0JT KTogQWRkICdjb21tb24vbmV0c3R1ZmYubycuCisrCShHREJSRVBMQVlfT0JTKTogTGlrZXdpc2Uu CisrCSogZ2RicmVwbGF5LmM6IEluY2x1ZGUgJ3dzcGlhcGkuaCcgYW5kICduZXRzdHVmZi5oJy4K KysJKHJlbW90ZV9vcGVuKTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIElQdjYKKysJY29ubmVjdGlv bnMuCisrCSogcmVtb3RlLXV0aWxzLmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgnLCAnZmlsZXN0dWZm LmgnCisrCWFuZCAnd3NwaWFwaS5oJy4KKysJKGhhbmRsZV9hY2NlcHRfZXZlbnQpOiBBY2NlcHQg Y29ubmVjdGlvbnMgZnJvbSBJUHY2IHNvdXJjZXMuCisrCShyZW1vdGVfcHJlcGFyZSk6IEhhbmRs ZSBJUHY2LXN0eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50CisrCXN1cHBvcnQgZm9yIElQdjYgY29u bmVjdGlvbnMuCisrCShyZW1vdGVfb3Blbik6IEltcGxlbWVudCBzdXBwb3J0IGZvciBwcmludGlu ZyBjb25uZWN0aW9ucyBmcm9tCisrCUlQdjYgc291cmNlcy4KKysKKyAyMDE4LTA3LTExICBQZWRy byBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgorIAorIAlQUiBnZGIvMjMzNzcKK2RpZmYgLS1n aXQgYS9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluIGIvZ2RiL2dkYnNlcnZlci9NYWtlZmlsZS5p bgorLS0tIGEvZ2RiL2dkYnNlcnZlci9NYWtlZmlsZS5pbgorKysrIGIvZ2RiL2dkYnNlcnZlci9N YWtlZmlsZS5pbgorQEAgLTIxMSw2ICsyMTEsNyBAQCBTRklMRVMgPSBcCisgCSQoc3JjZGlyKS9j b21tb24vam9iLWNvbnRyb2wuYyBcCisgCSQoc3JjZGlyKS9jb21tb24vZ2RiX3RpbGRlX2V4cGFu ZC5jIFwKKyAJJChzcmNkaXIpL2NvbW1vbi9nZGJfdmVjcy5jIFwKKysJJChzcmNkaXIpL2NvbW1v bi9uZXRzdHVmZi5jIFwKKyAJJChzcmNkaXIpL2NvbW1vbi9uZXctb3AuYyBcCisgCSQoc3JjZGly KS9jb21tb24vcGF0aHN0dWZmLmMgXAorIAkkKHNyY2RpcikvY29tbW9uL3ByaW50LXV0aWxzLmMg XAorQEAgLTI1NCw2ICsyNTUsNyBAQCBPQlMgPSBcCisgCWNvbW1vbi9mb3JtYXQubyBcCisgCWNv bW1vbi9nZGJfdGlsZGVfZXhwYW5kLm8gXAorIAljb21tb24vZ2RiX3ZlY3MubyBcCisrCWNvbW1v bi9uZXRzdHVmZi5vIFwKKyAJY29tbW9uL25ldy1vcC5vIFwKKyAJY29tbW9uL3BhdGhzdHVmZi5v IFwKKyAJY29tbW9uL3ByaW50LXV0aWxzLm8gXAorQEAgLTI5MCw2ICsyOTIsNyBAQCBHREJSRVBM QVlfT0JTID0gXAorIAljb21tb24vY29tbW9uLWV4Y2VwdGlvbnMubyBcCisgCWNvbW1vbi9jb21t b24tdXRpbHMubyBcCisgCWNvbW1vbi9lcnJvcnMubyBcCisrCWNvbW1vbi9uZXRzdHVmZi5vIFwK KyAJY29tbW9uL3ByaW50LXV0aWxzLm8gXAorIAlnZGJyZXBsYXkubyBcCisgCXV0aWxzLm8gXAor ZGlmZiAtLWdpdCBhL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMgYi9nZGIvZ2Ric2VydmVyL2dk YnJlcGxheS5jCistLS0gYS9nZGIvZ2Ric2VydmVyL2dkYnJlcGxheS5jCisrKysgYi9nZGIvZ2Ri c2VydmVyL2dkYnJlcGxheS5jCitAQCAtNDYsOCArNDYsMTEgQEAKKyAKKyAjaWYgVVNFX1dJTjMy QVBJCisgI2luY2x1ZGUgPHdpbnNvY2syLmg+CisrI2luY2x1ZGUgPHdzcGlhcGkuaD4KKyAjZW5k aWYKKyAKKysjaW5jbHVkZSAibmV0c3R1ZmYuaCIKKysKKyAjaWZuZGVmIEhBVkVfU09DS0xFTl9U CisgdHlwZWRlZiBpbnQgc29ja2xlbl90OworICNlbmRpZgorQEAgLTE0Miw1NiArMTQ1LDEwOCBA QCByZW1vdGVfY2xvc2UgKHZvaWQpCisgc3RhdGljIHZvaWQKKyByZW1vdGVfb3BlbiAoY2hhciAq bmFtZSkKKyB7CistICBpZiAoIXN0cmNociAobmFtZSwgJzonKSkKKysgIGNoYXIgKmxhc3RfY29s b24gPSBzdHJyY2hyIChuYW1lLCAnOicpOworKworKyAgaWYgKGxhc3RfY29sb24gPT0gTlVMTCkK KyAgICAgeworICAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVzOiBNdXN0IHNwZWNpZnkgdGNwIGNv bm5lY3Rpb24gYXMgaG9zdDphZGRyXG4iLCBuYW1lKTsKKyAgICAgICBmZmx1c2ggKHN0ZGVycik7 CisgICAgICAgZXhpdCAoMSk7CisgICAgIH0KKy0gIGVsc2UKKy0gICAgeworKworICNpZmRlZiBV U0VfV0lOMzJBUEkKKy0gICAgICBzdGF0aWMgaW50IHdpbnNvY2tfaW5pdGlhbGl6ZWQ7CisrICBz dGF0aWMgaW50IHdpbnNvY2tfaW5pdGlhbGl6ZWQ7CisgI2VuZGlmCistICAgICAgY2hhciAqcG9y dF9zdHI7CistICAgICAgaW50IHBvcnQ7CistICAgICAgc3RydWN0IHNvY2thZGRyX2luIHNvY2th ZGRyOworLSAgICAgIHNvY2tsZW5fdCB0bXA7CistICAgICAgaW50IHRtcF9kZXNjOworKyAgY2hh ciAqcG9ydF9zdHI7CisrICBpbnQgdG1wOworKyAgaW50IHRtcF9kZXNjOworKyAgc3RydWN0IGFk ZHJpbmZvIGhpbnQ7CisrICBzdHJ1Y3QgYWRkcmluZm8gKmFpbmZvOworIAorLSAgICAgIHBvcnRf c3RyID0gc3RyY2hyIChuYW1lLCAnOicpOworKyAgbWVtc2V0ICgmaGludCwgMCwgc2l6ZW9mICho aW50KSk7CisrICAvKiBBc3N1bWUgbm8gcHJlZml4IHdpbGwgYmUgcGFzc2VkLCB0aGVyZWZvcmUg d2Ugc2hvdWxkIHVzZQorKyAgICAgQUZfVU5TUEVDLiAgKi8KKysgIGhpbnQuYWlfZmFtaWx5ID0g QUZfVU5TUEVDOworKyAgaGludC5haV9zb2NrdHlwZSA9IFNPQ0tfU1RSRUFNOworKyAgaGludC5h aV9wcm90b2NvbCA9IElQUFJPVE9fVENQOworIAorLSAgICAgIHBvcnQgPSBhdG9pIChwb3J0X3N0 ciArIDEpOworKyAgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyBwYXJzZWQgPSBwYXJzZV9jb25uZWN0 aW9uX3NwZWMgKG5hbWUsICZoaW50KTsKKysKKysgIGlmIChwYXJzZWQucG9ydF9zdHIuZW1wdHkg KCkpCisrICAgIGVycm9yIChfKCJNaXNzaW5nIHBvcnQgb24gaG9zdG5hbWUgJyVzJyIpLCBuYW1l KTsKKyAKKyAjaWZkZWYgVVNFX1dJTjMyQVBJCistICAgICAgaWYgKCF3aW5zb2NrX2luaXRpYWxp emVkKQorLQl7CistCSAgV1NBREFUQSB3c2FkOworKyAgaWYgKCF3aW5zb2NrX2luaXRpYWxpemVk KQorKyAgICB7CisrICAgICAgV1NBREFUQSB3c2FkOworIAorLQkgIFdTQVN0YXJ0dXAgKE1BS0VX T1JEICgxLCAwKSwgJndzYWQpOworLQkgIHdpbnNvY2tfaW5pdGlhbGl6ZWQgPSAxOworLQl9Cisr ICAgICAgV1NBU3RhcnR1cCAoTUFLRVdPUkQgKDEsIDApLCAmd3NhZCk7CisrICAgICAgd2luc29j a19pbml0aWFsaXplZCA9IDE7CisrICAgIH0KKyAjZW5kaWYKKyAKKy0gICAgICB0bXBfZGVzYyA9 IHNvY2tldCAoUEZfSU5FVCwgU09DS19TVFJFQU0sIDApOworLSAgICAgIGlmICh0bXBfZGVzYyA9 PSAtMSkKKy0JcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IG9wZW4gc29ja2V0Iik7CisrICBpbnQg ciA9IGdldGFkZHJpbmZvIChwYXJzZWQuaG9zdF9zdHIuY19zdHIgKCksIHBhcnNlZC5wb3J0X3N0 ci5jX3N0ciAoKSwKKysJCSAgICAgICAmaGludCwgJmFpbmZvKTsKKyAKKy0gICAgICAvKiBBbGxv dyByYXBpZCByZXVzZSBvZiB0aGlzIHBvcnQuICovCistICAgICAgdG1wID0gMTsKKy0gICAgICBz ZXRzb2Nrb3B0ICh0bXBfZGVzYywgU09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAoY2hhciAqKSAm dG1wLAorLQkJICBzaXplb2YgKHRtcCkpOworKyAgaWYgKHIgIT0gMCkKKysgICAgeworKyAgICAg IGZwcmludGYgKHN0ZGVyciwgIiVzOiVzOiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiAlc1xuIiwKKysJ ICAgICAgIHBhcnNlZC5ob3N0X3N0ci5jX3N0ciAoKSwgcGFyc2VkLnBvcnRfc3RyLmNfc3RyICgp LAorKwkgICAgICAgZ2FpX3N0cmVycm9yIChyKSk7CisrICAgICAgZmZsdXNoIChzdGRlcnIpOwor KyAgICAgIGV4aXQgKDEpOworKyAgICB9CisrCisrICBzY29wZWRfZnJlZV9hZGRyaW5mbyBmcmVl X2FpbmZvIChhaW5mbyk7CisrCisrICBzdHJ1Y3QgYWRkcmluZm8gKnA7CisrCisrICBmb3IgKHAg PSBhaW5mbzsgcCAhPSBOVUxMOyBwID0gcC0+YWlfbmV4dCkKKysgICAgeworKyAgICAgIHRtcF9k ZXNjID0gc29ja2V0IChwLT5haV9mYW1pbHksIHAtPmFpX3NvY2t0eXBlLCBwLT5haV9wcm90b2Nv bCk7CisgCistICAgICAgc29ja2FkZHIuc2luX2ZhbWlseSA9IFBGX0lORVQ7CistICAgICAgc29j a2FkZHIuc2luX3BvcnQgPSBodG9ucyAocG9ydCk7CistICAgICAgc29ja2FkZHIuc2luX2FkZHIu c19hZGRyID0gSU5BRERSX0FOWTsKKysgICAgICBpZiAodG1wX2Rlc2MgPj0gMCkKKysJYnJlYWs7 CisrICAgIH0KKysKKysgIGlmIChwID09IE5VTEwpCisrICAgIHBlcnJvcl93aXRoX25hbWUgKCJD YW5ub3Qgb3BlbiBzb2NrZXQiKTsKKyAKKy0gICAgICBpZiAoYmluZCAodG1wX2Rlc2MsIChzdHJ1 Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBzaXplb2YgKHNvY2thZGRyKSkKKy0JICB8fCBsaXN0 ZW4gKHRtcF9kZXNjLCAxKSkKKy0JcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGJpbmQgYWRkcmVz cyIpOworKyAgLyogQWxsb3cgcmFwaWQgcmV1c2Ugb2YgdGhpcyBwb3J0LiAqLworKyAgdG1wID0g MTsKKysgIHNldHNvY2tvcHQgKHRtcF9kZXNjLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIsIChj aGFyICopICZ0bXAsCisrCSAgICAgIHNpemVvZiAodG1wKSk7CisrCisrICBzd2l0Y2ggKHAtPmFp X2ZhbWlseSkKKysgICAgeworKyAgICBjYXNlIEFGX0lORVQ6CisrICAgICAgKChzdHJ1Y3Qgc29j a2FkZHJfaW4gKikgcC0+YWlfYWRkciktPnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7Cisr ICAgICAgYnJlYWs7CisrICAgIGNhc2UgQUZfSU5FVDY6CisrICAgICAgKChzdHJ1Y3Qgc29ja2Fk ZHJfaW42ICopIHAtPmFpX2FkZHIpLT5zaW42X2FkZHIgPSBpbjZhZGRyX2FueTsKKysgICAgICBi cmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBmcHJpbnRmIChzdGRlcnIsICJJbnZhbGlkICdh aV9mYW1pbHknICVkXG4iLCBwLT5haV9mYW1pbHkpOworKyAgICAgIGV4aXQgKDEpOworKyAgICB9 CisrCisrICBpZiAoYmluZCAodG1wX2Rlc2MsIHAtPmFpX2FkZHIsIHAtPmFpX2FkZHJsZW4pICE9 IDApCisrICAgIHBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBiaW5kIGFkZHJlc3MiKTsKKysKKysg IGlmIChwLT5haV9zb2NrdHlwZSA9PSBTT0NLX0RHUkFNKQorKyAgICByZW1vdGVfZGVzYyA9IHRt cF9kZXNjOworKyAgZWxzZQorKyAgICB7CisrICAgICAgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2Ug c29ja2FkZHI7CisrICAgICAgc29ja2xlbl90IHNvY2thZGRyc2l6ZSA9IHNpemVvZiAoc29ja2Fk ZHIpOworKyAgICAgIGNoYXIgb3JpZ19ob3N0W0dEQl9OSV9NQVhfQUREUl0sIG9yaWdfcG9ydFtH REJfTklfTUFYX1BPUlRdOworKworKyAgICAgIGlmIChsaXN0ZW4gKHRtcF9kZXNjLCAxKSAhPSAw KQorKwlwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3QgbGlzdGVuIG9uIHNvY2tldCIpOworKworKyAg ICAgIHJlbW90ZV9kZXNjID0gYWNjZXB0ICh0bXBfZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAm c29ja2FkZHIsCisrCQkJICAgICZzb2NrYWRkcnNpemUpOworIAorLSAgICAgIHRtcCA9IHNpemVv ZiAoc29ja2FkZHIpOworLSAgICAgIHJlbW90ZV9kZXNjID0gYWNjZXB0ICh0bXBfZGVzYywgKHN0 cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZ0bXApOworICAgICAgIGlmIChyZW1vdGVfZGVz YyA9PSAtMSkKKyAJcGVycm9yX3dpdGhfbmFtZSAoIkFjY2VwdCBmYWlsZWQiKTsKKyAKK0BAIC0y MDYsNiArMjYxLDE2IEBAIHJlbW90ZV9vcGVuIChjaGFyICpuYW1lKQorICAgICAgIHNldHNvY2tv cHQgKHJlbW90ZV9kZXNjLCBJUFBST1RPX1RDUCwgVENQX05PREVMQVksCisgCQkgIChjaGFyICop ICZ0bXAsIHNpemVvZiAodG1wKSk7CisgCisrICAgICAgaWYgKGdldG5hbWVpbmZvICgoc3RydWN0 IHNvY2thZGRyICopICZzb2NrYWRkciwgc29ja2FkZHJzaXplLAorKwkJICAgICAgIG9yaWdfaG9z dCwgc2l6ZW9mIChvcmlnX2hvc3QpLAorKwkJICAgICAgIG9yaWdfcG9ydCwgc2l6ZW9mIChvcmln X3BvcnQpLAorKwkJICAgICAgIE5JX05VTUVSSUNIT1NUIHwgTklfTlVNRVJJQ1NFUlYpID09IDAp CisrCXsKKysJICBmcHJpbnRmIChzdGRlcnIsICJSZW1vdGUgZGVidWdnaW5nIGZyb20gaG9zdCAl cywgcG9ydCAlc1xuIiwKKysJCSAgIG9yaWdfaG9zdCwgb3JpZ19wb3J0KTsKKysJICBmZmx1c2gg KHN0ZGVycik7CisrCX0KKysKKyAjaWZuZGVmIFVTRV9XSU4zMkFQSQorICAgICAgIGNsb3NlICh0 bXBfZGVzYyk7CQkvKiBObyBsb25nZXIgbmVlZCB0aGlzICovCisgCitkaWZmIC0tZ2l0IGEvZ2Ri L2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYyBiL2dkYi9nZGJzZXJ2ZXIvcmVtb3RlLXV0aWxzLmMK Ky0tLSBhL2dkYi9nZGJzZXJ2ZXIvcmVtb3RlLXV0aWxzLmMKKysrKyBiL2dkYi9nZGJzZXJ2ZXIv cmVtb3RlLXV0aWxzLmMKK0BAIC0yNiw2ICsyNiw4IEBACisgI2luY2x1ZGUgImRsbC5oIgorICNp bmNsdWRlICJyc3AtbG93LmgiCisgI2luY2x1ZGUgImdkYnRocmVhZC5oIgorKyNpbmNsdWRlICJu ZXRzdHVmZi5oIgorKyNpbmNsdWRlICJmaWxlc3R1ZmYuaCIKKyAjaW5jbHVkZSA8Y3R5cGUuaD4K KyAjaWYgSEFWRV9TWVNfSU9DVExfSAorICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KK0BAIC02Myw2 ICs2NSw3IEBACisgCisgI2lmIFVTRV9XSU4zMkFQSQorICNpbmNsdWRlIDx3aW5zb2NrMi5oPgor KyNpbmNsdWRlIDx3c3BpYXBpLmg+CisgI2VuZGlmCisgCisgI2lmIF9fUU5YX18KK0BAIC0xNTEs MTkgKzE1NCwxOCBAQCBlbmFibGVfYXN5bmNfbm90aWZpY2F0aW9uIChpbnQgZmQpCisgc3RhdGlj IGludAorIGhhbmRsZV9hY2NlcHRfZXZlbnQgKGludCBlcnIsIGdkYl9jbGllbnRfZGF0YSBjbGll bnRfZGF0YSkKKyB7CistICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc29ja2FkZHI7CistICBzb2NrbGVu X3QgdG1wOworKyAgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2Ugc29ja2FkZHI7CisrICBzb2NrbGVu X3QgbGVuID0gc2l6ZW9mIChzb2NrYWRkcik7CisgCisgICBpZiAoZGVidWdfdGhyZWFkcykKKyAg ICAgZGVidWdfcHJpbnRmICgiaGFuZGxpbmcgcG9zc2libGUgYWNjZXB0IGV2ZW50XG4iKTsKKyAK Ky0gIHRtcCA9IHNpemVvZiAoc29ja2FkZHIpOworLSAgcmVtb3RlX2Rlc2MgPSBhY2NlcHQgKGxp c3Rlbl9kZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgJnRtcCk7CisrICByZW1v dGVfZGVzYyA9IGFjY2VwdCAobGlzdGVuX2Rlc2MsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2th ZGRyLCAmbGVuKTsKKyAgIGlmIChyZW1vdGVfZGVzYyA9PSAtMSkKKyAgICAgcGVycm9yX3dpdGhf bmFtZSAoIkFjY2VwdCBmYWlsZWQiKTsKKyAKKyAgIC8qIEVuYWJsZSBUQ1Aga2VlcCBhbGl2ZSBw cm9jZXNzLiAqLworLSAgdG1wID0gMTsKKysgIHNvY2tsZW5fdCB0bXAgPSAxOworICAgc2V0c29j a29wdCAocmVtb3RlX2Rlc2MsIFNPTF9TT0NLRVQsIFNPX0tFRVBBTElWRSwKKyAJICAgICAgKGNo YXIgKikgJnRtcCwgc2l6ZW9mICh0bXApKTsKKyAKK0BAIC0xOTIsOCArMTk0LDE5IEBAIGhhbmRs ZV9hY2NlcHRfZXZlbnQgKGludCBlcnIsIGdkYl9jbGllbnRfZGF0YSBjbGllbnRfZGF0YSkKKyAg IGRlbGV0ZV9maWxlX2hhbmRsZXIgKGxpc3Rlbl9kZXNjKTsKKyAKKyAgIC8qIENvbnZlcnQgSVAg YWRkcmVzcyB0byBzdHJpbmcuICAqLworLSAgZnByaW50ZiAoc3RkZXJyLCAiUmVtb3RlIGRlYnVn Z2luZyBmcm9tIGhvc3QgJXNcbiIsCistCSAgIGluZXRfbnRvYSAoc29ja2FkZHIuc2luX2FkZHIp KTsKKysgIGNoYXIgb3JpZ19ob3N0W0dEQl9OSV9NQVhfQUREUl0sIG9yaWdfcG9ydFtHREJfTklf TUFYX1BPUlRdOworKworKyAgaW50IHIgPSBnZXRuYW1laW5mbyAoKHN0cnVjdCBzb2NrYWRkciAq KSAmc29ja2FkZHIsIGxlbiwKKysJCSAgICAgICBvcmlnX2hvc3QsIHNpemVvZiAob3JpZ19ob3N0 KSwKKysJCSAgICAgICBvcmlnX3BvcnQsIHNpemVvZiAob3JpZ19wb3J0KSwKKysJCSAgICAgICBO SV9OVU1FUklDSE9TVCB8IE5JX05VTUVSSUNTRVJWKTsKKysKKysgIGlmIChyICE9IDApCisrICAg IGZwcmludGYgKHN0ZGVyciwgXygiQ291bGQgbm90IG9idGFpbiByZW1vdGUgYWRkcmVzczogJXNc biIpLAorKwkgICAgIGdhaV9zdHJlcnJvciAocikpOworKyAgZWxzZQorKyAgICBmcHJpbnRmIChz dGRlcnIsIF8oIlJlbW90ZSBkZWJ1Z2dpbmcgZnJvbSBob3N0ICVzLCBwb3J0ICVzXG4iKSwKKysJ ICAgICBvcmlnX2hvc3QsIG9yaWdfcG9ydCk7CisgCisgICBlbmFibGVfYXN5bmNfbm90aWZpY2F0 aW9uIChyZW1vdGVfZGVzYyk7CisgCitAQCAtMjIyLDEwICsyMzUsNyBAQCByZW1vdGVfcHJlcGFy ZSAoY29uc3QgY2hhciAqbmFtZSkKKyAjaWZkZWYgVVNFX1dJTjMyQVBJCisgICBzdGF0aWMgaW50 IHdpbnNvY2tfaW5pdGlhbGl6ZWQ7CisgI2VuZGlmCistICBpbnQgcG9ydDsKKy0gIHN0cnVjdCBz b2NrYWRkcl9pbiBzb2NrYWRkcjsKKyAgIHNvY2tsZW5fdCB0bXA7CistICBjaGFyICpwb3J0X2Vu ZDsKKyAKKyAgIHJlbW90ZV9pc19zdGRpbyA9IDA7CisgICBpZiAoc3RyY21wIChuYW1lLCBTVERJ T19DT05ORUNUSU9OX05BTUUpID09IDApCitAQCAtMjM4LDE3ICsyNDgsMjUgQEAgcmVtb3RlX3By ZXBhcmUgKGNvbnN0IGNoYXIgKm5hbWUpCisgICAgICAgcmV0dXJuOworICAgICB9CisgCistICBw b3J0X3N0ciA9IHN0cmNociAobmFtZSwgJzonKTsKKy0gIGlmIChwb3J0X3N0ciA9PSBOVUxMKQor KyAgc3RydWN0IGFkZHJpbmZvIGhpbnQ7CisrICBzdHJ1Y3QgYWRkcmluZm8gKmFpbmZvOworKwor KyAgbWVtc2V0ICgmaGludCwgMCwgc2l6ZW9mIChoaW50KSk7CisrICAvKiBBc3N1bWUgbm8gcHJl Zml4IHdpbGwgYmUgcGFzc2VkLCB0aGVyZWZvcmUgd2Ugc2hvdWxkIHVzZQorKyAgICAgQUZfVU5T UEVDLiAgKi8KKysgIGhpbnQuYWlfZmFtaWx5ID0gQUZfVU5TUEVDOworKyAgaGludC5haV9zb2Nr dHlwZSA9IFNPQ0tfU1RSRUFNOworKyAgaGludC5haV9wcm90b2NvbCA9IElQUFJPVE9fVENQOwor KworKyAgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyBwYXJzZWQKKysgICAgPSBwYXJzZV9jb25uZWN0 aW9uX3NwZWNfd2l0aG91dF9wcmVmaXggKG5hbWUsICZoaW50KTsKKysKKysgIGlmIChwYXJzZWQu cG9ydF9zdHIuZW1wdHkgKCkpCisgICAgIHsKKyAgICAgICBjcy50cmFuc3BvcnRfaXNfcmVsaWFi bGUgPSAwOworICAgICAgIHJldHVybjsKKyAgICAgfQorIAorLSAgcG9ydCA9IHN0cnRvdWwgKHBv cnRfc3RyICsgMSwgJnBvcnRfZW5kLCAxMCk7CistICBpZiAocG9ydF9zdHJbMV0gPT0gJ1wwJyB8 fCAqcG9ydF9lbmQgIT0gJ1wwJykKKy0gICAgZXJyb3IgKCJCYWQgcG9ydCBhcmd1bWVudDogJXMi LCBuYW1lKTsKKy0KKyAjaWZkZWYgVVNFX1dJTjMyQVBJCisgICBpZiAoIXdpbnNvY2tfaW5pdGlh bGl6ZWQpCisgICAgIHsKK0BAIC0yNTksOCArMjc3LDI2IEBAIHJlbW90ZV9wcmVwYXJlIChjb25z dCBjaGFyICpuYW1lKQorICAgICB9CisgI2VuZGlmCisgCistICBsaXN0ZW5fZGVzYyA9IHNvY2tl dCAoUEZfSU5FVCwgU09DS19TVFJFQU0sIElQUFJPVE9fVENQKTsKKy0gIGlmIChsaXN0ZW5fZGVz YyA9PSAtMSkKKysgIGludCByID0gZ2V0YWRkcmluZm8gKHBhcnNlZC5ob3N0X3N0ci5jX3N0ciAo KSwgcGFyc2VkLnBvcnRfc3RyLmNfc3RyICgpLAorKwkJICAgICAgICZoaW50LCAmYWluZm8pOwor KworKyAgaWYgKHIgIT0gMCkKKysgICAgZXJyb3IgKF8oIiVzOiBjYW5ub3QgcmVzb2x2ZSBuYW1l OiAlcyIpLCBuYW1lLCBnYWlfc3RyZXJyb3IgKHIpKTsKKysKKysgIHNjb3BlZF9mcmVlX2FkZHJp bmZvIGZyZWVhZGRyaW5mbyAoYWluZm8pOworKworKyAgc3RydWN0IGFkZHJpbmZvICppdGVyOwor KworKyAgZm9yIChpdGVyID0gYWluZm87IGl0ZXIgIT0gTlVMTDsgaXRlciA9IGl0ZXItPmFpX25l eHQpCisrICAgIHsKKysgICAgICBsaXN0ZW5fZGVzYyA9IGdkYl9zb2NrZXRfY2xvZXhlYyAoaXRl ci0+YWlfZmFtaWx5LCBpdGVyLT5haV9zb2NrdHlwZSwKKysJCQkJCWl0ZXItPmFpX3Byb3RvY29s KTsKKysKKysgICAgICBpZiAobGlzdGVuX2Rlc2MgPj0gMCkKKysJYnJlYWs7CisrICAgIH0KKysK KysgIGlmIChpdGVyID09IE5VTEwpCisgICAgIHBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBvcGVu IHNvY2tldCIpOworIAorICAgLyogQWxsb3cgcmFwaWQgcmV1c2Ugb2YgdGhpcyBwb3J0LiAqLwor QEAgLTI2OCwxNCArMzA0LDI1IEBAIHJlbW90ZV9wcmVwYXJlIChjb25zdCBjaGFyICpuYW1lKQor ICAgc2V0c29ja29wdCAobGlzdGVuX2Rlc2MsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgKGNo YXIgKikgJnRtcCwKKyAJICAgICAgc2l6ZW9mICh0bXApKTsKKyAKKy0gIHNvY2thZGRyLnNpbl9m YW1pbHkgPSBQRl9JTkVUOworLSAgc29ja2FkZHIuc2luX3BvcnQgPSBodG9ucyAocG9ydCk7Cist ICBzb2NrYWRkci5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOworKyAgc3dpdGNoIChpdGVy LT5haV9mYW1pbHkpCisrICAgIHsKKysgICAgY2FzZSBBRl9JTkVUOgorKyAgICAgICgoc3RydWN0 IHNvY2thZGRyX2luICopIGl0ZXItPmFpX2FkZHIpLT5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJf QU5ZOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIEFGX0lORVQ2OgorKyAgICAgICgoc3RydWN0 IHNvY2thZGRyX2luNiAqKSBpdGVyLT5haV9hZGRyKS0+c2luNl9hZGRyID0gaW42YWRkcl9hbnk7 CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgaW50ZXJuYWxfZXJyb3IgKF9f RklMRV9fLCBfX0xJTkVfXywKKysJCSAgICAgIF8oIkludmFsaWQgJ2FpX2ZhbWlseScgJWRcbiIp LCBpdGVyLT5haV9mYW1pbHkpOworKyAgICB9CisgCistICBpZiAoYmluZCAobGlzdGVuX2Rlc2Ms IChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBzaXplb2YgKHNvY2thZGRyKSkKKy0gICAg ICB8fCBsaXN0ZW4gKGxpc3Rlbl9kZXNjLCAxKSkKKysgIGlmIChiaW5kIChsaXN0ZW5fZGVzYywg aXRlci0+YWlfYWRkciwgaXRlci0+YWlfYWRkcmxlbikgIT0gMCkKKyAgICAgcGVycm9yX3dpdGhf bmFtZSAoIkNhbid0IGJpbmQgYWRkcmVzcyIpOworIAorKyAgaWYgKGxpc3RlbiAobGlzdGVuX2Rl c2MsIDEpICE9IDApCisrICAgIHBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBsaXN0ZW4gb24gc29j a2V0Iik7CisrCisgICBjcy50cmFuc3BvcnRfaXNfcmVsaWFibGUgPSAxOworIH0KKyAKK0BAIC0z NTAsMTggKzM5NywyNCBAQCByZW1vdGVfb3BlbiAoY29uc3QgY2hhciAqbmFtZSkKKyAjZW5kaWYg LyogVVNFX1dJTjMyQVBJICovCisgICBlbHNlCisgICAgIHsKKy0gICAgICBpbnQgcG9ydDsKKy0g ICAgICBzb2NrbGVuX3QgbGVuOworLSAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsK Ky0KKy0gICAgICBsZW4gPSBzaXplb2YgKHNvY2thZGRyKTsKKy0gICAgICBpZiAoZ2V0c29ja25h bWUgKGxpc3Rlbl9kZXNjLAorLQkJICAgICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRy LCAmbGVuKSA8IDAKKy0JICB8fCBsZW4gPCBzaXplb2YgKHNvY2thZGRyKSkKKysgICAgICBjaGFy IGxpc3Rlbl9wb3J0W0dEQl9OSV9NQVhfUE9SVF07CisrICAgICAgc3RydWN0IHNvY2thZGRyX3N0 b3JhZ2Ugc29ja2FkZHI7CisrICAgICAgc29ja2xlbl90IGxlbiA9IHNpemVvZiAoc29ja2FkZHIp OworKworKyAgICAgIGlmIChnZXRzb2NrbmFtZSAobGlzdGVuX2Rlc2MsIChzdHJ1Y3Qgc29ja2Fk ZHIgKikgJnNvY2thZGRyLCAmbGVuKSA8IDApCisgCXBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBk ZXRlcm1pbmUgcG9ydCIpOworLSAgICAgIHBvcnQgPSBudG9ocyAoc29ja2FkZHIuc2luX3BvcnQp OworIAorLSAgICAgIGZwcmludGYgKHN0ZGVyciwgIkxpc3RlbmluZyBvbiBwb3J0ICVkXG4iLCBw b3J0KTsKKysgICAgICBpbnQgciA9IGdldG5hbWVpbmZvICgoc3RydWN0IHNvY2thZGRyICopICZz b2NrYWRkciwgbGVuLAorKwkJCSAgIE5VTEwsIDAsCisrCQkJICAgbGlzdGVuX3BvcnQsIHNpemVv ZiAobGlzdGVuX3BvcnQpLAorKwkJCSAgIE5JX05VTUVSSUNTRVJWKTsKKysKKysgICAgICBpZiAo ciAhPSAwKQorKwlmcHJpbnRmIChzdGRlcnIsIF8oIkNhbid0IG9idGFpbiBwb3J0IHdoZXJlIHdl IGFyZSBsaXN0ZW5pbmc6ICVzIiksCisrCQkgZ2FpX3N0cmVycm9yIChyKSk7CisrICAgICAgZWxz ZQorKwlmcHJpbnRmIChzdGRlcnIsIF8oIkxpc3RlbmluZyBvbiBwb3J0ICVzXG4iKSwgbGlzdGVu X3BvcnQpOworKworICAgICAgIGZmbHVzaCAoc3RkZXJyKTsKKyAKKyAgICAgICAvKiBSZWdpc3Rl ciB0aGUgZXZlbnQgbG9vcCBoYW5kbGVyLiAgKi8KK2RpZmYgLS1naXQgYS9nZGIvc2VyLXRjcC5j IGIvZ2RiL3Nlci10Y3AuYworLS0tIGEvZ2RiL3Nlci10Y3AuYworKysrIGIvZ2RiL3Nlci10Y3Au YworQEAgLTI1LDYgKzI1LDcgQEAKKyAjaW5jbHVkZSAiY2xpL2NsaS1kZWNvZGUuaCIKKyAjaW5j bHVkZSAiY2xpL2NsaS1zZXRzaG93LmgiCisgI2luY2x1ZGUgImZpbGVzdHVmZi5oIgorKyNpbmNs dWRlICJuZXRzdHVmZi5oIgorIAorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAKK0BAIC0zOSw2 ICs0MCw3IEBACisgCisgI2lmZGVmIFVTRV9XSU4zMkFQSQorICNpbmNsdWRlIDx3aW5zb2NrMi5o PgorKyNpbmNsdWRlIDx3c3BpYXBpLmg+CisgI2lmbmRlZiBFVElNRURPVVQKKyAjZGVmaW5lIEVU SU1FRE9VVCBXU0FFVElNRURPVVQKKyAjZW5kaWYKK0BAIC04MSwxMiArODMsMTMgQEAgc3RhdGlj IHVuc2lnbmVkIGludCB0Y3BfcmV0cnlfbGltaXQgPSAxNTsKKyAKKyAjZGVmaW5lIFBPTExfSU5U RVJWQUwgNQorIAorLS8qIEhlbHBlciBmdW5jdGlvbiB0byB3YWl0IGEgd2hpbGUuICBJZiBTQ0Ig aXMgbm9uLW51bGwsIHdhaXQgb24gaXRzCistICAgZmlsZSBkZXNjcmlwdG9yLiAgT3RoZXJ3aXNl IGp1c3Qgd2FpdCBvbiBhIHRpbWVvdXQsIHVwZGF0aW5nICpQT0xMUy4KKy0gICBSZXR1cm5zIC0x IG9uIHRpbWVvdXQgb3IgaW50ZXJydXB0LCBvdGhlcndpc2UgdGhlIHZhbHVlIG9mIHNlbGVjdC4g ICovCisrLyogSGVscGVyIGZ1bmN0aW9uIHRvIHdhaXQgYSB3aGlsZS4gIElmIFNPQ0sgaXMgbm90 IC0xLCB3YWl0IG9uIGl0cworKyAgIGZpbGUgZGVzY3JpcHRvci4gIE90aGVyd2lzZSBqdXN0IHdh aXQgb24gYSB0aW1lb3V0LCB1cGRhdGluZworKyAgICpQT0xMUy4gIFJldHVybnMgLTEgb24gdGlt ZW91dCBvciBpbnRlcnJ1cHQsIG90aGVyd2lzZSB0aGUgdmFsdWUgb2YKKysgICBzZWxlY3QuICAq LworIAorIHN0YXRpYyBpbnQKKy13YWl0X2Zvcl9jb25uZWN0IChzdHJ1Y3Qgc2VyaWFsICpzY2Is IHVuc2lnbmVkIGludCAqcG9sbHMpCisrd2FpdF9mb3JfY29ubmVjdCAoaW50IHNvY2ssIHVuc2ln bmVkIGludCAqcG9sbHMpCisgeworICAgc3RydWN0IHRpbWV2YWwgdDsKKyAgIGludCBuOworQEAg LTEyMCwyNCArMTIzLDI0IEBAIHdhaXRfZm9yX2Nvbm5lY3QgKHN0cnVjdCBzZXJpYWwgKnNjYiwg dW5zaWduZWQgaW50ICpwb2xscykKKyAgICAgICB0LnR2X3VzZWMgPSAwOworICAgICB9CisgCist ICBpZiAoc2NiKQorKyAgaWYgKHNvY2sgPj0gMCkKKyAgICAgeworICAgICAgIGZkX3NldCByc2V0 LCB3c2V0LCBlc2V0OworIAorICAgICAgIEZEX1pFUk8gKCZyc2V0KTsKKy0gICAgICBGRF9TRVQg KHNjYi0+ZmQsICZyc2V0KTsKKysgICAgICBGRF9TRVQgKHNvY2ssICZyc2V0KTsKKyAgICAgICB3 c2V0ID0gcnNldDsKKyAgICAgICBlc2V0ID0gcnNldDsKKy0JICAKKysKKyAgICAgICAvKiBQT1NJ WCBzeXN0ZW1zIHJldHVybiBjb25uZWN0aW9uIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBieSBzaWduYWxs aW5nCisgCSB3c2V0LiAgV2luZG93cyBzeXN0ZW1zIHJldHVybiBzdWNjZXNzIGluIHdzZXQgYW5k IGZhaWx1cmUgaW4KKyAJIGVzZXQuCistICAgICAKKysKKyAJIFdlIG11c3QgY2FsbCBzZWxlY3Qg aGVyZSwgcmF0aGVyIHRoYW4gZ2RiX3NlbGVjdCwgYmVjYXVzZQorIAkgdGhlIHNlcmlhbCBzdHJ1 Y3R1cmUgaGFzIG5vdCB5ZXQgYmVlbiBpbml0aWFsaXplZCAtIHRoZQorIAkgTWluR1cgc2VsZWN0 IHdyYXBwZXIgd2lsbCBub3Qga25vdyB0aGF0IHRoaXMgRkQgcmVmZXJzCisgCSB0byBhIHNvY2tl dC4gICovCistICAgICAgbiA9IHNlbGVjdCAoc2NiLT5mZCArIDEsICZyc2V0LCAmd3NldCwgJmVz ZXQsICZ0KTsKKysgICAgICBuID0gc2VsZWN0IChzb2NrICsgMSwgJnJzZXQsICZ3c2V0LCAmZXNl dCwgJnQpOworICAgICB9CisgICBlbHNlCisgICAgIC8qIFVzZSBnZGJfc2VsZWN0IGhlcmUsIHNp bmNlIHdlIGhhdmUgbm8gZmlsZSBkZXNjcmlwdG9ycywgYW5kIG9uCitAQCAtMTUzLDgwICsxNTYs MjggQEAgd2FpdF9mb3JfY29ubmVjdCAoc3RydWN0IHNlcmlhbCAqc2NiLCB1bnNpZ25lZCBpbnQg KnBvbGxzKQorICAgcmV0dXJuIG47CisgfQorIAorLS8qIE9wZW4gYSB0Y3Agc29ja2V0LiAgKi8K KysvKiBUcnkgdG8gY29ubmVjdCB0byB0aGUgaG9zdCByZXByZXNlbnRlZCBieSBBSU5GTy4gIElm IHRoZSBjb25uZWN0aW9uCisrICAgc3VjY2VlZHMsIHJldHVybiBpdHMgc29ja2V0LiAgT3RoZXJ3 aXNlLCByZXR1cm4gLTEgYW5kIHNldCBFUlJOTworKyAgIGFjY29yZGluZ2x5LiAgUE9MTFMgaXMg dXNlZCB3aGVuICdjb25uZWN0JyByZXR1cm5zIEVJTlBST0dSRVNTLCBhbmQKKysgICB3ZSBuZWVk IHRvIGludm9rZSAnd2FpdF9mb3JfY29ubmVjdCcgdG8gb2J0YWluIHRoZSBzdGF0dXMuICAqLwor IAorLWludAorLW5ldF9vcGVuIChzdHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIgKm5hbWUp Cisrc3RhdGljIGludAorK3RyeV9jb25uZWN0IChjb25zdCBzdHJ1Y3QgYWRkcmluZm8gKmFpbmZv LCB1bnNpZ25lZCBpbnQgKnBvbGxzKQorIHsKKy0gIGNoYXIgaG9zdG5hbWVbMTAwXTsKKy0gIGNv bnN0IGNoYXIgKnBvcnRfc3RyOworLSAgaW50IG4sIHBvcnQsIHRtcDsKKy0gIGludCB1c2VfdWRw OworLSAgc3RydWN0IGhvc3RlbnQgKmhvc3RlbnQ7CistICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc29j a2FkZHI7CistI2lmZGVmIFVTRV9XSU4zMkFQSQorLSAgdV9sb25nIGlvYXJnOworLSNlbHNlCist ICBpbnQgaW9hcmc7CistI2VuZGlmCistICB1bnNpZ25lZCBpbnQgcG9sbHMgPSAwOworLQorLSAg dXNlX3VkcCA9IDA7CistICBpZiAoc3RhcnRzd2l0aCAobmFtZSwgInVkcDoiKSkKKy0gICAgewor LSAgICAgIHVzZV91ZHAgPSAxOworLSAgICAgIG5hbWUgPSBuYW1lICsgNDsKKy0gICAgfQorLSAg ZWxzZSBpZiAoc3RhcnRzd2l0aCAobmFtZSwgInRjcDoiKSkKKy0gICAgbmFtZSA9IG5hbWUgKyA0 OworLQorLSAgcG9ydF9zdHIgPSBzdHJjaHIgKG5hbWUsICc6Jyk7CistCistICBpZiAoIXBvcnRf c3RyKQorLSAgICBlcnJvciAoXygibmV0X29wZW46IE5vIGNvbG9uIGluIGhvc3QgbmFtZSEiKSk7 ICAvKiBTaG91bGRuJ3QgZXZlcgorLQkJCQkJCSAgICAgICBoYXBwZW4uICAqLworLQorLSAgdG1w ID0gc3RkOjptaW4gKHBvcnRfc3RyIC0gbmFtZSwgKHB0cmRpZmZfdCkgc2l6ZW9mIGhvc3RuYW1l IC0gMSk7CistICBzdHJuY3B5IChob3N0bmFtZSwgbmFtZSwgdG1wKTsJLyogRG9uJ3Qgd2FudCBj b2xvbi4gICovCistICBob3N0bmFtZVt0bXBdID0gJ1wwMDAnOwkvKiBUaWUgb2ZmIGhvc3QgbmFt ZS4gICovCistICBwb3J0ID0gYXRvaSAocG9ydF9zdHIgKyAxKTsKKy0KKy0gIC8qIERlZmF1bHQg aG9zdG5hbWUgaXMgbG9jYWxob3N0LiAgKi8KKy0gIGlmICghaG9zdG5hbWVbMF0pCistICAgIHN0 cmNweSAoaG9zdG5hbWUsICJsb2NhbGhvc3QiKTsKKy0KKy0gIGhvc3RlbnQgPSBnZXRob3N0Ynlu YW1lIChob3N0bmFtZSk7CistICBpZiAoIWhvc3RlbnQpCistICAgIHsKKy0gICAgICBmcHJpbnRm X3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIsICIlczogdW5rbm93biBob3N0XG4iLCBob3N0bmFtZSk7 CistICAgICAgZXJybm8gPSBFTk9FTlQ7CistICAgICAgcmV0dXJuIC0xOworLSAgICB9CisrICBp bnQgc29jayA9IGdkYl9zb2NrZXRfY2xvZXhlYyAoYWluZm8tPmFpX2ZhbWlseSwgYWluZm8tPmFp X3NvY2t0eXBlLAorKwkJCQkgYWluZm8tPmFpX3Byb3RvY29sKTsKKyAKKy0gIHNvY2thZGRyLnNp bl9mYW1pbHkgPSBQRl9JTkVUOworLSAgc29ja2FkZHIuc2luX3BvcnQgPSBodG9ucyAocG9ydCk7 CistICBtZW1jcHkgKCZzb2NrYWRkci5zaW5fYWRkci5zX2FkZHIsIGhvc3RlbnQtPmhfYWRkciwK Ky0JICBzaXplb2YgKHN0cnVjdCBpbl9hZGRyKSk7CistCistIHJldHJ5OgorLQorLSAgaWYgKHVz ZV91ZHApCistICAgIHNjYi0+ZmQgPSBnZGJfc29ja2V0X2Nsb2V4ZWMgKFBGX0lORVQsIFNPQ0tf REdSQU0sIDApOworLSAgZWxzZQorLSAgICBzY2ItPmZkID0gZ2RiX3NvY2tldF9jbG9leGVjIChQ Rl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7CistCistICBpZiAoc2NiLT5mZCA9PSAtMSkKKysgIGlm IChzb2NrIDwgMCkKKyAgICAgcmV0dXJuIC0xOworLSAgCisrCisgICAvKiBTZXQgc29ja2V0IG5v bmJsb2NraW5nLiAgKi8KKy0gIGlvYXJnID0gMTsKKy0gIGlvY3RsIChzY2ItPmZkLCBGSU9OQklP LCAmaW9hcmcpOworKyAgaW50IGlvYXJnID0gMTsKKysKKysgIGlvY3RsIChzb2NrLCBGSU9OQklP LCAmaW9hcmcpOworIAorICAgLyogVXNlIE5vbi1ibG9ja2luZyBjb25uZWN0LiAgY29ubmVjdCgp IHdpbGwgcmV0dXJuIDAgaWYgY29ubmVjdGVkCisgICAgICBhbHJlYWR5LiAgKi8KKy0gIG4gPSBj b25uZWN0IChzY2ItPmZkLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgc2l6ZW9mIChz b2NrYWRkcikpOworLQorLSAgaWYgKG4gPCAwKQorKyAgaWYgKGNvbm5lY3QgKHNvY2ssIGFpbmZv LT5haV9hZGRyLCBhaW5mby0+YWlfYWRkcmxlbikgPCAwKQorICAgICB7CisgI2lmZGVmIFVTRV9X SU4zMkFQSQorICAgICAgIGludCBlcnIgPSBXU0FHZXRMYXN0RXJyb3IoKTsKK0BAIC0yMzQsMjEg KzE4NSwyNiBAQCBuZXRfb3BlbiAoc3RydWN0IHNlcmlhbCAqc2NiLCBjb25zdCBjaGFyICpuYW1l KQorICAgICAgIGludCBlcnIgPSBlcnJubzsKKyAjZW5kaWYKKyAKKy0gICAgICAvKiBNYXliZSB3 ZSdyZSB3YWl0aW5nIGZvciB0aGUgcmVtb3RlIHRhcmdldCB0byBiZWNvbWUgcmVhZHkgdG8KKy0J IGFjY2VwdCBjb25uZWN0aW9ucy4gICovCistICAgICAgaWYgKHRjcF9hdXRvX3JldHJ5CisrICAg ICAgLyogSWYgd2UndmUgZ290IGEgImNvbm5lY3Rpb24gcmVmdXNlZCIgZXJyb3IsIGp1c3QgcmV0 dXJuCisrCSAtMS4gIFRoZSBjYWxsZXIgd2lsbCBrbm93IHdoYXQgdG8gZG8uICAqLworKyAgICAg IGlmICgKKyAjaWZkZWYgVVNFX1dJTjMyQVBJCistCSAgJiYgZXJyID09IFdTQUVDT05OUkVGVVNF RAorKwkgIGVyciA9PSBXU0FFQ09OTlJFRlVTRUQKKyAjZWxzZQorLQkgICYmIGVyciA9PSBFQ09O TlJFRlVTRUQKKysJICBlcnIgPT0gRUNPTk5SRUZVU0VECisgI2VuZGlmCistCSAgJiYgd2FpdF9m b3JfY29ubmVjdCAoTlVMTCwgJnBvbGxzKSA+PSAwKQorKwkgICkKKyAJeworLQkgIGNsb3NlIChz Y2ItPmZkKTsKKy0JICBnb3RvIHJldHJ5OworKwkgIGNsb3NlIChzb2NrKTsKKysJICBlcnJubyA9 IGVycjsKKysJICByZXR1cm4gLTE7CisgCX0KKyAKKyAgICAgICBpZiAoCisrCSAgLyogQW55IG90 aGVyIGVycm9yIChleGNlcHQgRUlOUFJPR1JFU1MpIHdpbGwgYmUgInN3YWxsb3dlZCIKKysJICAg ICBoZXJlLiAgV2UgcmV0dXJuIHdpdGhvdXQgc3BlY2lmeWluZyBhIHJldHVybiB2YWx1ZSwgYW5k CisrCSAgICAgc2V0IGVycm5vIGlmIHRoZSBjYWxsZXIgd2FudHMgdG8gaW5zcGVjdCB3aGF0Cisr CSAgICAgaGFwcGVuZWQuICAqLworICNpZmRlZiBVU0VfV0lOMzJBUEkKKyAJICAvKiBVbmRlciBX aW5kb3dzLCBjYWxsaW5nICJjb25uZWN0IiB3aXRoIGEgbm9uLWJsb2NraW5nIHNvY2tldAorIAkg ICAgIHJlc3VsdHMgaW4gV1NBRVdPVUxEQkxPQ0ssIG5vdCBXU0FFSU5QUk9HUkVTUy4gICovCitA QCAtMjU4LDY2ICsyMTQsMTY2IEBAIG5ldF9vcGVuIChzdHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0 IGNoYXIgKm5hbWUpCisgI2VuZGlmCisgCSAgKQorIAl7CisrCSAgY2xvc2UgKHNvY2spOworIAkg IGVycm5vID0gZXJyOworLQkgIG5ldF9jbG9zZSAoc2NiKTsKKyAJICByZXR1cm4gLTE7CisgCX0K KyAKKyAgICAgICAvKiBMb29rcyBsaWtlIHdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIGNvbm5lY3Qu ICAqLworLSAgICAgIGRvIAorLQl7CistCSAgbiA9IHdhaXRfZm9yX2Nvbm5lY3QgKHNjYiwgJnBv bGxzKTsKKy0JfSAKKysgICAgICBpbnQgbjsKKysKKysgICAgICBkbworKwluID0gd2FpdF9mb3Jf Y29ubmVjdCAoc29jaywgcG9sbHMpOworICAgICAgIHdoaWxlIChuID09IDApOworKworICAgICAg IGlmIChuIDwgMCkKKyAJeworLQkgIG5ldF9jbG9zZSAoc2NiKTsKKysJICBpbnQgc2F2ZWRfZXJy bm8gPSBlcnJubzsKKysKKysJICAvKiBBIG5lZ2F0aXZlIHZhbHVlIGhlcmUgbWVhbnMgdGhhdCB3 ZSBlaXRoZXIgdGltZWQgb3V0IG9yCisrCSAgICAgZ290IGludGVycnVwdGVkIGJ5IHRoZSB1c2Vy LiAgSnVzdCByZXR1cm4uICAqLworKwkgIGNsb3NlIChzb2NrKTsKKysJICBlcnJubyA9IHNhdmVk X2Vycm5vOworIAkgIHJldHVybiAtMTsKKyAJfQorICAgICB9CisgCisgICAvKiBHb3Qgc29tZXRo aW5nLiAgSXMgaXQgYW4gZXJyb3I/ICAqLworLSAgeworLSAgICBpbnQgcmVzLCBlcnI7CistICAg IHNvY2tsZW5fdCBsZW47CistCistICAgIGxlbiA9IHNpemVvZiAoZXJyKTsKKy0gICAgLyogT24g V2luZG93cywgdGhlIGZvdXJ0aCBwYXJhbWV0ZXIgdG8gZ2V0c29ja29wdCBpcyBhICJjaGFyICoi OworLSAgICAgICBvbiBVTklYIHN5c3RlbXMgaXQgaXMgZ2VuZXJhbGx5ICJ2b2lkICoiLiAgVGhl IGNhc3QgdG8gImNoYXIgKiIKKy0gICAgICAgaXMgT0sgZXZlcnl3aGVyZSwgc2luY2UgaW4gQysr IGFueSBkYXRhIHBvaW50ZXIgdHlwZSBjYW4gYmUKKy0gICAgICAgaW1wbGljaXRseSBjb252ZXJ0 ZWQgdG8gInZvaWQgKiIuICAqLworLSAgICByZXMgPSBnZXRzb2Nrb3B0IChzY2ItPmZkLCBTT0xf U09DS0VULCBTT19FUlJPUiwgKGNoYXIgKikgJmVyciwgJmxlbik7CistICAgIGlmIChyZXMgPCAw IHx8IGVycikKKy0gICAgICB7CistCS8qIE1heWJlIHRoZSB0YXJnZXQgc3RpbGwgaXNuJ3QgcmVh ZHkgdG8gYWNjZXB0IHRoZSBjb25uZWN0aW9uLiAgKi8KKy0JaWYgKHRjcF9hdXRvX3JldHJ5Cisr ICBpbnQgZXJyOworKyAgc29ja2xlbl90IGxlbiA9IHNpemVvZiAoZXJyKTsKKysKKysgIC8qIE9u IFdpbmRvd3MsIHRoZSBmb3VydGggcGFyYW1ldGVyIHRvIGdldHNvY2tvcHQgaXMgYSAiY2hhciAq IjsKKysgICAgIG9uIFVOSVggc3lzdGVtcyBpdCBpcyBnZW5lcmFsbHkgInZvaWQgKiIuICBUaGUg Y2FzdCB0byAiY2hhciAqIgorKyAgICAgaXMgT0sgZXZlcnl3aGVyZSwgc2luY2UgaW4gQysrIGFu eSBkYXRhIHBvaW50ZXIgdHlwZSBjYW4gYmUKKysgICAgIGltcGxpY2l0bHkgY29udmVydGVkIHRv ICJ2b2lkICoiLiAgKi8KKysgIGludCByZXQgPSBnZXRzb2Nrb3B0IChzb2NrLCBTT0xfU09DS0VU LCBTT19FUlJPUiwgKGNoYXIgKikgJmVyciwgJmxlbik7CisrCisrICBpZiAocmV0IDwgMCkKKysg ICAgeworKyAgICAgIGludCBzYXZlZF9lcnJubyA9IGVycm5vOworKworKyAgICAgIGNsb3NlIChz b2NrKTsKKysgICAgICBlcnJubyA9IHNhdmVkX2Vycm5vOworKyAgICAgIHJldHVybiAtMTsKKysg ICAgfQorKyAgZWxzZSBpZiAocmV0ID09IDAgJiYgZXJyICE9IDApCisrICAgIHsKKysgICAgICBj bG9zZSAoc29jayk7CisrICAgICAgZXJybm8gPSBlcnI7CisrICAgICAgcmV0dXJuIC0xOworKyAg ICB9CisrCisrICAvKiBUaGUgY29ubmVjdGlvbiBzdWNjZWVkZWQuICBSZXR1cm4gdGhlIHNvY2tl dC4gICovCisrICByZXR1cm4gc29jazsKKyt9CisrCisrLyogT3BlbiBhIHRjcCBzb2NrZXQuICAq LworKworK2ludAorK25ldF9vcGVuIChzdHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIgKm5h bWUpCisreworKyAgc3RydWN0IGFkZHJpbmZvIGhpbnQ7CisrICBzdHJ1Y3QgYWRkcmluZm8gKmFp bmZvOworKworKyAgbWVtc2V0ICgmaGludCwgMCwgc2l6ZW9mIChoaW50KSk7CisrICAvKiBBc3N1 bWUgbm8gcHJlZml4IHdpbGwgYmUgcGFzc2VkLCB0aGVyZWZvcmUgd2Ugc2hvdWxkIHVzZQorKyAg ICAgQUZfVU5TUEVDLiAgKi8KKysgIGhpbnQuYWlfZmFtaWx5ID0gQUZfVU5TUEVDOworKyAgaGlu dC5haV9zb2NrdHlwZSA9IFNPQ0tfU1RSRUFNOworKyAgaGludC5haV9wcm90b2NvbCA9IElQUFJP VE9fVENQOworKworKyAgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyBwYXJzZWQgPSBwYXJzZV9jb25u ZWN0aW9uX3NwZWMgKG5hbWUsICZoaW50KTsKKysKKysgIGlmIChwYXJzZWQucG9ydF9zdHIuZW1w dHkgKCkpCisrICAgIGVycm9yIChfKCJNaXNzaW5nIHBvcnQgb24gaG9zdG5hbWUgJyVzJyIpLCBu YW1lKTsKKysKKysgIGludCByID0gZ2V0YWRkcmluZm8gKHBhcnNlZC5ob3N0X3N0ci5jX3N0ciAo KSwKKysJCSAgICAgICBwYXJzZWQucG9ydF9zdHIuY19zdHIgKCksCisrCQkgICAgICAgJmhpbnQs ICZhaW5mbyk7CisrCisrICBpZiAociAhPSAwKQorKyAgICB7CisrICAgICAgZnByaW50Zl91bmZp bHRlcmVkIChnZGJfc3RkZXJyLCBfKCIlczogY2Fubm90IHJlc29sdmUgbmFtZTogJXNcbiIpLAor KwkJCSAgbmFtZSwgZ2FpX3N0cmVycm9yIChyKSk7CisrICAgICAgZXJybm8gPSBFTk9FTlQ7Cisr ICAgICAgcmV0dXJuIC0xOworKyAgICB9CisrCisrICBzY29wZWRfZnJlZV9hZGRyaW5mbyBmcmVl X2FpbmZvIChhaW5mbyk7CisrCisrICAvKiBGbGFnIHRvIGluZGljYXRlIHdoZXRoZXIgd2UndmUg Z290IGEgY29ubmVjdGlvbiByZWZ1c2VkLiAgSXQgd2lsbAorKyAgICAgYmUgdHJ1ZSBpZiBhbnkg b2YgdGhlIGNvbm5lY3Rpb25zIHRyaWVkIHdhcyByZWZ1c2VkLiAgKi8KKysgIGJvb2wgZ290X2Nv bm5yZWZ1c2VkOworKyAgLyogSWYgYSBjb25uZWN0aW9uIHN1Y2NlZWVkcywgU1VDQ0VTU19BSU5G TyB3aWxsIHBvaW50IHRvIHRoZQorKyAgICAgJ3N0cnVjdCBhZGRyaW5mbycgdGhhdCBzdWNjZWVk LiAgKi8KKysgIHN0cnVjdCBhZGRyaW5mbyAqc3VjY2Vzc19haW5mbyA9IE5VTEw7CisrICB1bnNp Z25lZCBpbnQgcG9sbHMgPSAwOworKworKyAgLyogQXNzdW1lIHRoZSB3b3JzdC4gICovCisrICBz Y2ItPmZkID0gLTE7CisrCisrICBkbworKyAgICB7CisrICAgICAgZ290X2Nvbm5yZWZ1c2VkID0g ZmFsc2U7CisrCisrICAgICAgZm9yIChzdHJ1Y3QgYWRkcmluZm8gKml0ZXIgPSBhaW5mbzsgaXRl ciAhPSBOVUxMOyBpdGVyID0gaXRlci0+YWlfbmV4dCkKKysJeworKwkgIC8qIEl0ZXJhdGUgb3Zl ciB0aGUgbGlzdCBvZiBwb3NzaWJsZSBhZGRyZXNzZXMgdG8gY29ubmVjdAorKwkgICAgIHRvLiAg Rm9yIGVhY2gsIHdlJ2xsIHRyeSB0byBjb25uZWN0IGFuZCBzZWUgaWYgaXQKKysJICAgICBzdWNj ZWVkcy4gICovCisrCSAgaW50IHNvY2sgPSB0cnlfY29ubmVjdCAoaXRlciwgJnBvbGxzKTsKKysK KysJICBpZiAoc29jayA+PSAwKQorKwkgICAgeworKwkgICAgICAvKiBXZSd2ZSBnb3R0ZW4gYSBz dWNjZXNzZnVsIGNvbm5lY3Rpb24uICBTYXZlIGl0cworKwkJICdzdHJ1Y3QgYWRkcmluZm8nLCB0 aGUgc29ja2V0LCBhbmQgYnJlYWsuICAqLworKwkgICAgICBzdWNjZXNzX2FpbmZvID0gaXRlcjsK KysJICAgICAgc2NiLT5mZCA9IHNvY2s7CisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKwkgIGVs c2UgaWYgKAorICNpZmRlZiBVU0VfV0lOMzJBUEkKKy0JICAgICYmIGVyciA9PSBXU0FFQ09OTlJF RlVTRUQKKysJICBlcnJubyA9PSBXU0FFQ09OTlJFRlVTRUQKKyAjZWxzZQorLQkgICAgJiYgZXJy ID09IEVDT05OUkVGVVNFRAorKwkgIGVycm5vID09IEVDT05OUkVGVVNFRAorICNlbmRpZgorLQkg ICAgJiYgd2FpdF9mb3JfY29ubmVjdCAoTlVMTCwgJnBvbGxzKSA+PSAwKQorLQkgIHsKKy0JICAg IGNsb3NlIChzY2ItPmZkKTsKKy0JICAgIGdvdG8gcmV0cnk7CistCSAgfQorLQlpZiAoZXJyKQor LQkgIGVycm5vID0gZXJyOworLQluZXRfY2xvc2UgKHNjYik7CistCXJldHVybiAtMTsKKy0gICAg ICB9CistICB9IAorKwkJICAgKQorKwkgICAgZ290X2Nvbm5yZWZ1c2VkID0gdHJ1ZTsKKysJfQor KyAgICB9CisrICAvKiBKdXN0IHJldHJ5IGlmOgorKworKyAgICAgLSB0Y3BfYXV0b19yZXRyeSBp cyB0cnVlLCBhbmQKKysgICAgIC0gV2UgaGF2ZW4ndCBnb3R0ZW4gYSBjb25uZWN0aW9uIHlldCwg YW5kCisrICAgICAtIEFueSBvZiBvdXIgY29ubmVjdGlvbiBhdHRlbXB0cyByZXR1cm5lZCB3aXRo IEVDT05OUkVGVVNFRCwgYW5kCisrICAgICAtIHdhaXRfZm9yX2Nvbm5lY3Qgc2lnbmFscyB0aGF0 IHdlIGNhbiBrZWVwIGdvaW5nLiAgKi8KKysgIHdoaWxlICh0Y3BfYXV0b19yZXRyeQorKwkgJiYg c3VjY2Vzc19haW5mbyA9PSBOVUxMCisrCSAmJiBnb3RfY29ubnJlZnVzZWQKKysJICYmIHdhaXRf Zm9yX2Nvbm5lY3QgKC0xLCAmcG9sbHMpID49IDApOworKworKyAgaWYgKHN1Y2Nlc3NfYWluZm8g PT0gTlVMTCkKKysgICAgeworKyAgICAgIG5ldF9jbG9zZSAoc2NiKTsKKysgICAgICByZXR1cm4g LTE7CisrICAgIH0KKyAKKyAgIC8qIFR1cm4gb2ZmIG5vbmJsb2NraW5nLiAgKi8KKy0gIGlvYXJn ID0gMDsKKysjaWZkZWYgVVNFX1dJTjMyQVBJCisrICB1X2xvbmcgaW9hcmcgPSAwOworKyNlbHNl CisrICBpbnQgaW9hcmcgPSAwOworKyNlbmRpZgorKworICAgaW9jdGwgKHNjYi0+ZmQsIEZJT05C SU8sICZpb2FyZyk7CisgCistICBpZiAodXNlX3VkcCA9PSAwKQorKyAgaWYgKHN1Y2Nlc3NfYWlu Zm8tPmFpX3NvY2t0eXBlID09IElQUFJPVE9fVENQKQorICAgICB7CisgICAgICAgLyogRGlzYWJs ZSBOYWdsZSBhbGdvcml0aG0uICBOZWVkZWQgaW4gc29tZSBjYXNlcy4gICovCistICAgICAgdG1w ID0gMTsKKysgICAgICBpbnQgdG1wID0gMTsKKysKKyAgICAgICBzZXRzb2Nrb3B0IChzY2ItPmZk LCBJUFBST1RPX1RDUCwgVENQX05PREVMQVksCistCQkgIChjaGFyICopJnRtcCwgc2l6ZW9mICh0 bXApKTsKKysJCSAgKGNoYXIgKikgJnRtcCwgc2l6ZW9mICh0bXApKTsKKyAgICAgfQorIAorICNp ZmRlZiBTSUdQSVBFCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgYi9nZGIv dGVzdHN1aXRlL0NoYW5nZUxvZworLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKysrKyBi L2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCitAQCAtMSwzICsxLDIzIEBACisrMjAxOC0wNy0xMSAg U2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKysJICAgIEphbiBL cmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysJICAgIFBhdWwgRmVydHNl ciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+CisrCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBn bWFpbC5jb20+CisrCisrCSogUkVBRE1FIChUZXN0c3VpdGUgUGFyYW1ldGVycyk6IE1lbnRpb24g bmV3ICdHREJfVEVTVF9TT0NLRVRIT1NUJworKwlwYXJhbWV0ZXIuCisrCSogYm9hcmRzL25hdGl2 ZS1leHRlbmRlZC1nZGJzZXJ2ZXIuZXhwOiBEbyBub3Qgc2V0ICdzb2NrZXRob3N0JworKwlieSBk ZWZhdWx0LgorKwkqIGJvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cDogTGlrZXdpc2UuCisrCSog Z2RiLnNlcnZlci9ydW4td2l0aG91dC1sb2NhbC1iaW5hcnkuZXhwOiBJbXByb3ZlIHJlZ2V4cCB1 c2VkCisrCWZvciBkZXRlY3Rpbmcgd2hlbiBhIHJlbW90ZSBkZWJ1Z2dpbmcgY29ubmVjdGlvbiBz dWNjZWVkcy4KKysJKiBnZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cDogTmV3IGZpbGUuCisr CSogbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cCAoZ2Ric2VydmVyX2RlZmF1bHRfZ2V0X2NvbW1f cG9ydCk6CisrCURvIG5vdCBwcmVmaXggdGhlIHBvcnQgbnVtYmVyIHdpdGggIjoiLgorKwkoZ2Ri c2VydmVyX3N0YXJ0KTogTmV3IGdsb2JhbCBHREJfVEVTVF9TT0NLRVRIT1NULiAgSW1wbGVtZW50 CisrCXN1cHBvcnQgZm9yIGRldGVjdGluZyBhbmQgdXNpbmcgaXQuICBBZGQgJyRkZWJ1Z2hvc3Rf Z2Ric2VydmVyJworKwl0byB0aGUgbGlzdCBvZiBhcmd1bWVudHMgdXNlZCB0byBzdGFydCBnZGJz ZXJ2ZXIuICBIYW5kbGUgY2FzZQorKwl3aGVuIGdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBhIG5l dHdvcmsgbmFtZS4KKysKKyAyMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJn aW9kakByZWRoYXQuY29tPgorIAorIAlQUiBjKysvMjMzNzMKK2RpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL1JFQURNRSBiL2dkYi90ZXN0c3VpdGUvUkVBRE1FCistLS0gYS9nZGIvdGVzdHN1aXRl L1JFQURNRQorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9SRUFETUUKK0BAIC0yNTksNiArMjU5LDIwIEBA IFRoaXMgbWFrZSAobm90IHJ1bnRlc3QpIHZhcmlhYmxlIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGV0 aGVyIHRoZQorIHRlc3RzdWl0ZSBwcmVsb2FkcyB0aGUgcmVhZDEuc28gbGlicmFyeSBpbnRvIGV4 cGVjdC4gIEFueSBub24tZW1wdHkKKyB2YWx1ZSBtZWFucyB0cnVlLiAgU2VlICJSYWNlIGRldGVj dGlvbiIgYmVsb3cuCisgCisrR0RCX1RFU1RfU09DS0VUSE9TVAorKworK1RoaXMgdmFyaWFibGUg Y2FuIHByb3ZpZGUgdGhlIGhvc3RuYW1lL2FkZHJlc3MgdGhhdCBzaG91bGQgYmUgdXNlZAorK3do ZW4gcGVyZm9ybWluZyBHREJzZXJ2ZXItcmVsYXRlZCB0ZXN0cy4gIFRoaXMgaXMgdXNlZnVsIGlu IHNvbWUKKytzaXR1YXRpb25zLCBlLmcuLCB3aGVuIHlvdSB3YW50IHRvIHRlc3QgdGhlIElQdjYg Y29ubmVjdGl2aXR5IG9mIEdEQgorK2FuZCBHREJzZXJ2ZXIsIG9yIHdoZW4gdXNpbmcgYSBkaWZm ZXJlbnQgaG9zdG5hbWUvYWRkcmVzcyBpcyBuZWVkZWQuCisrRm9yIGV4YW1wbGUsIHRvIG1ha2Ug R0RCIGFuZCBHREJzZXJ2ZXIgdXNlIElQdjYtb25seSBjb25uZWN0aW9ucywgeW91CisrY2FuIGRv OgorKworKwltYWtlIGNoZWNrIFRFU1RTPSJnZGIuc2VydmVyLyouZXhwIiBSVU5URVNURkxBR1M9 J0dEQl9URVNUX1NPQ0tFVEhPU1Q9dGNwNjpbOjoxXScKKysKKytOb3RlIHRoYXQgb25seSBhIGhv c3RuYW1lL2FkZHJlc3MgY2FuIGJlIHByb3ZpZGVkLCB3aXRob3V0IGEgcG9ydAorK251bWJlci4K KysKKyBSYWNlIGRldGVjdGlvbgorICoqKioqKioqKioqKioqCisgCitkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHAgYi9nZGIvdGVz dHN1aXRlL2JvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cAorLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHAKKysrKyBiL2dkYi90 ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1leHRlbmRlZC1nZGJzZXJ2ZXIuZXhwCitAQCAtMjQsOCAr MjQsNiBAQCBsb2FkX2dlbmVyaWNfY29uZmlnICJleHRlbmRlZC1nZGJzZXJ2ZXIiCisgbG9hZF9i b2FyZF9kZXNjcmlwdGlvbiAiZ2Ric2VydmVyLWJhc2UiCisgbG9hZF9ib2FyZF9kZXNjcmlwdGlv biAibG9jYWwtYm9hcmQiCisgCistc2V0X2JvYXJkX2luZm8gc29ja2V0aG9zdCAibG9jYWxob3N0 OiIKKy0KKyAjIFdlIHdpbGwgYmUgdXNpbmcgdGhlIGV4dGVuZGVkIEdEQiByZW1vdGUgcHJvdG9j b2wuCisgc2V0X2JvYXJkX2luZm8gZ2RiX3Byb3RvY29sICJleHRlbmRlZC1yZW1vdGUiCisgCitk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5leHAgYi9n ZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cAorLS0tIGEvZ2RiL3Rlc3Rz dWl0ZS9ib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvYm9h cmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwCitAQCAtMzAsNyArMzAsNiBAQCBzZXRfYm9hcmRfaW5m byBnZGIsZG9fcmVsb2FkX29uX3J1biAxCisgIyBUaGVyZSdzIG5vIHN1cHBvcnQgZm9yIGFyZ3Vt ZW50LXBhc3NpbmcgKHlldCkuCisgc2V0X2JvYXJkX2luZm8gbm9hcmdzIDEKKyAKKy1zZXRfYm9h cmRfaW5mbyBzb2NrZXRob3N0ICJsb2NhbGhvc3Q6IgorIHNldF9ib2FyZF9pbmZvIHVzZV9nZGJf c3R1YiAxCisgc2V0X2JvYXJkX2luZm8gZXhpdF9pc19yZWxpYWJsZSAxCisgCitkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cAor LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5l eHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9ydW4td2l0aG91dC1sb2NhbC1iaW5h cnkuZXhwCitAQCAtNTMsNyArNTMsNyBAQCBzYXZlX3ZhcnMgeyBHREJGTEFHUyB9IHsKKyAgICAg c2V0IHVzZV9nZGJfc3R1YiAwCisgCisgICAgIGdkYl90ZXN0ICJ0YXJnZXQgJHtnZGJzZXJ2ZXJf cHJvdG9jb2x9ICR7Z2Ric2VydmVyX2dkYnBvcnR9IiBcCistCSJSZW1vdGUgZGVidWdnaW5nIHVz aW5nICRnZGJzZXJ2ZXJfZ2RicG9ydCIgXAorKwkiUmVtb3RlIGRlYnVnZ2luZyB1c2luZyBbc3Ry aW5nX3RvX3JlZ2V4cCAkZ2Ric2VydmVyX2dkYnBvcnRdIiBcCisgCSJjb25uZWN0IHRvIGdkYnNl cnZlciIKKyAKKyAgICAgZ2RiX3Rlc3QgInJ1biIgXAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLnNlcnZlci9zZXJ2ZXItY29ubmVjdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2 ZXIvc2VydmVyLWNvbm5lY3QuZXhwCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVs bAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cAorQEAg LTAsMCArMSwxMTEgQEAKKysjIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUg ZGVidWdnZXIuCisrIworKyMgQ29weXJpZ2h0IDIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor KyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFRlc3QgbXVs dGlwbGUgdHlwZXMgb2YgY29ubmVjdGlvbiAoSVB2NCwgSVB2NiwgVENQLCBVRFApIGFuZCBtYWtl CisrIyBzdXJlIGJvdGggZ2Ric2VydmVyIGFuZCBHREIgd29yay4KKysKKytsb2FkX2xpYiBnZGJz ZXJ2ZXItc3VwcG9ydC5leHAKKysKKytzdGFuZGFyZF90ZXN0ZmlsZSBub3JtYWwuYworKworK2lm IHtbc2tpcF9nZGJzZXJ2ZXJfdGVzdHNdfSB7CisrICAgIHJldHVybiAwCisrfQorKworKyMgV2Ug d2FudCB0byBoYXZlIGNvbnRyb2wgb3ZlciB3aGVyZSB3ZSBzdGFydCBnZGJzZXJ2ZXIuCisraWYg eyBbaXNfcmVtb3RlIHRhcmdldF0gfSB7CisrICAgIHJldHVybiAwCisrfQorKworK2lmIHsgW3By ZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGUg ZGVidWddIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrIyBNYWtlIHN1cmUgd2UncmUgZGlz Y29ubmVjdGVkLCBpbiBjYXNlIHdlJ3JlIHRlc3Rpbmcgd2l0aCBhbgorKyMgZXh0ZW5kZWQtcmVt b3RlIGJvYXJkLCB0aGVyZWZvcmUgYWxyZWFkeSBjb25uZWN0ZWQuCisrZ2RiX3Rlc3QgImRpc2Nv bm5lY3QiICIuKiIKKysKKytzZXQgdGFyZ2V0X2V4ZWMgW2dkYnNlcnZlcl9kb3dubG9hZF9jdXJy ZW50X3Byb2ddCisrCisrIyBBbiBhcnJheSBjb250YWluaW5nIHRoZSB0ZXN0IGluc3RydWN0aW9u cyBmb3IgZWFjaCBzY2VuYXJpby4gIFRoZQorKyMgZGVzY3JpcHRpb24gb2YgZWFjaCBmaWVsZCBp cyBhcyBmb2xsb3dzOgorKyMKKysjIC0gVGhlIGNvbm5lY3Rpb24gc3BlY2lmaWNhdGlvbiB0byBi ZSB1c2VkIHdoZW4gc3RhcnRpbmcKKysjICAgZ2Ric2VydmVyL0dEQi4gIFRoaXMgc3RyaW5nIHdp bGwgYmUgdXNlZCB0byBzZXQgdGhlCisrIyAgIEdEQl9URVNUX1NPQ0tFVEhPU1Qgd2hlbiBjYWxs aW5nIGdkYnNlcnZlcl9zdGFydC4KKysjCisrIyAtIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIg Z2Ric2VydmVyIHNob3VsZCBmYWlsIHdoZW4gd2UgYXR0ZW1wdCB0bworKyMgICBzdGFydCBpdC4g IFVzZWZ1bCB3aGVuIHRlc3RpbmcgZXJyb25lb3VzIGNvbm5lY3Rpb24gc3BlY3Mgc3VjaCBhcwor KyMgICAidGNwODoiLgorKyMKKysjIC0gVGhlIHByZWZpeCB0aGF0IHNob3VsZCBiZSBwcmVwZW5k ZWQgdG8gdGhlIHRlc3QgbWVzc2FnZXMuCisrc2V0IHRlc3RfcGFyYW1zIFwKKysgICAgeyBcCisr CSAgeyAidGNwNDoxMjcuMC4wLjEiIDAgInRjcDQiIH0gXAorKwkgIHsgInRjcDY6OjoxIiAgICAg ICAwICJ0Y3A2IiB9IFwKKysJICB7ICJ0Y3A2Ols6OjFdIiAgICAgMCAidGNwNi13aXRoLWJyYWNr ZXRzIiB9IFwKKysJICB7ICJ0Y3A6bG9jYWxob3N0IiAgMCAidGNwIiB9IFwKKysJICB7ICJ1ZHA0 OjEyNy4wLjAuMSIgMCAidWRwNCIgfSBcCisrCSAgeyAidWRwNjo6OjEiICAgICAgIDAgInVkcDYi IH0gXAorKwkgIHsgInVkcDY6Wzo6MV0iICAgICAwICJ1ZHA2LXdpdGgtYnJhY2tldHMiIH0gXAor KwkgIHsgInRjcDg6MTIzIiAgICAgICAxICJ0Y3A4IiB9IFwKKysJICB7ICJ1ZHAxMjM6OjoiICAg ICAgMSAidWRwMTIzIiB9IFwKKysJICB7ICJnYXJiYWdlOjEyMzQiICAgMSAiZ2FyYmFnZToxMjM0 IiB9IFwKKysgICAgfQorKworKyMgVGhlIGJlc3Qgd2F5IHRvIHRlc3QgZGlmZmVyZW50IHR5cGVz IG9mIGNvbm5lY3Rpb25zIGlzIHRvIHNldCB0aGUKKysjIEdEQl9URVNUX1NPQ0tFVEhPU1QgdmFy aWFibGUgYWNjb3JkaW5nbHkuCisrc2F2ZV92YXJzIHsgR0RCX1RFU1RfU09DS0VUSE9TVCB9IHsK KysgICAgZm9yZWFjaCBsaW5lICR0ZXN0X3BhcmFtcyB7CisrCXNldCBzb2NraG9zdCBbbGluZGV4 ICRsaW5lIDBdCisrCXNldCBnZGJzZXJ2ZXJfc2hvdWxkX2ZhaWwgW2xpbmRleCAkbGluZSAxXQor KwlzZXQgcHJlZml4IFtsaW5kZXggJGxpbmUgMl0KKysKKysJd2l0aF90ZXN0X3ByZWZpeCAkcHJl Zml4IHsKKysJICAgIHNldCBHREJfVEVTVF9TT0NLRVRIT1NUICRzb2NraG9zdAorKwkgICAgc2V0 IHRlc3QgInN0YXJ0IGdkYnNlcnZlciIKKysKKysJICAgICMgVHJ5IHRvIHN0YXJ0IGdkYnNlcnZl ci4KKysJICAgIHNldCBjYXRjaHJlcyBbY2F0Y2gge3NldCByZXMgW2dkYnNlcnZlcl9zdGFydCAi IiAkdGFyZ2V0X2V4ZWNdfSBlcnJtc2ddCisrCisrCSAgICBpZiB7ICRjYXRjaHJlcyAhPSAwIH0g eworKwkJaWYgeyAkZ2Ric2VydmVyX3Nob3VsZF9mYWlsIH0geworKwkJICAgIHBhc3MgIiR0ZXN0 OiBnZGJzZXJ2ZXIgZmFpbGVkIGFzIGV4cGVjdGVkIgorKwkJfSBlbHNlIHsKKysJCSAgICBmYWls ICIkdGVzdDogJGVycm1zZyIKKysJCX0KKysJCWNvbnRpbnVlCisrCSAgICB9IGVsc2UgeworKwkJ aWYgeyAkZ2Ric2VydmVyX3Nob3VsZF9mYWlsIH0geworKwkJICAgIGZhaWwgIiR0ZXN0OiBnZGJz ZXJ2ZXIgc2hvdWxkIGZhaWwgYnV0IGRpZCBub3QiCisrCQl9IGVsc2UgeworKwkJICAgIHBhc3Mg IiR0ZXN0IgorKwkJfQorKwkgICAgfQorKworKwkgICAgc2V0IGdkYnNlcnZlcl9wcm90b2NvbCBb bGluZGV4ICRyZXMgMF0KKysJICAgIHNldCBnZGJzZXJ2ZXJfZ2RicG9ydCBbbGluZGV4ICRyZXMg MV0KKysJICAgIHNldCB0ZXN0ICJjb25uZWN0IHRvIGdkYnNlcnZlciB1c2luZyAkc29ja2hvc3Qi CisrCisrCSAgICBpZiB7IFtnZGJfdGFyZ2V0X2NtZCAkZ2Ric2VydmVyX3Byb3RvY29sICRnZGJz ZXJ2ZXJfZ2RicG9ydF0gPT0gMCB9IHsKKysJCXBhc3MgJHRlc3QKKysJICAgIH0gZWxzZSB7Cisr CQlmYWlsICR0ZXN0CisrCSAgICB9CisrCX0KKysgICAgfQorK30KK2RpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAgYi9nZGIvdGVzdHN1aXRlL2xpYi9n ZGJzZXJ2ZXItc3VwcG9ydC5leHAKKy0tLSBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1z dXBwb3J0LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhw CitAQCAtMjExLDcgKzIxMSw3IEBAIHByb2MgZ2Ric2VydmVyX2RlZmF1bHRfZ2V0X3JlbW90ZV9h ZGRyZXNzIHsgaG9zdCBwb3J0IH0geworICMgRGVmYXVsdCByb3V0aW5lIHRvIGNvbXB1dGUgdGhl ICJjb21tIiBhcmd1bWVudCBmb3IgZ2Ric2VydmVyLgorIAorIHByb2MgZ2Ric2VydmVyX2RlZmF1 bHRfZ2V0X2NvbW1fcG9ydCB7IHBvcnQgfSB7CistICAgIHJldHVybiAiOiRwb3J0IgorKyAgICBy ZXR1cm4gIiRwb3J0IgorIH0KKyAKKyAjIFN0YXJ0IGEgZ2Ric2VydmVyIHByb2Nlc3Mgd2l0aCBp bml0aWFsIE9QVElPTlMgYW5kIHRyYWlsaW5nIEFSR1VNRU5UUy4KK0BAIC0yMjEsNiArMjIxLDcg QEAgcHJvYyBnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfY29tbV9wb3J0IHsgcG9ydCB9IHsKKyAKKyBw cm9jIGdkYnNlcnZlcl9zdGFydCB7IG9wdGlvbnMgYXJndW1lbnRzIH0geworICAgICBnbG9iYWwg cG9ydG51bQorKyAgICBnbG9iYWwgR0RCX1RFU1RfU09DS0VUSE9TVAorIAorICAgICAjIFBvcnQg aWQgLS0gZWl0aGVyIHNwZWNpZmllZCBpbiBiYXNlYm9hcmQgZmlsZSwgb3IgbWFuYWdlZCBoZXJl LgorICAgICBpZiBbdGFyZ2V0X2luZm8gZXhpc3RzIGdkYixzb2NrZXRwb3J0XSB7CitAQCAtMjMx LDEwICsyMzIsMjIgQEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9 IHsKKyAgICAgfQorIAorICAgICAjIEV4dHJhY3QgdGhlIGxvY2FsIGFuZCByZW1vdGUgaG9zdCBp ZHMgZnJvbSB0aGUgdGFyZ2V0IGJvYXJkIHN0cnVjdC4KKy0gICAgaWYgW3RhcmdldF9pbmZvIGV4 aXN0cyBzb2NrZXRob3N0XSB7CisrICAgIGlmIHsgW2luZm8gZXhpc3RzIEdEQl9URVNUX1NPQ0tF VEhPU1RdIH0geworKwkjIFRoZSB1c2VyIGlzIG5vdCBzdXBwb3NlZCB0byBwcm92aWRlIGEgcG9y dCBudW1iZXIsIGp1c3QgYQorKwkjIGhvc3RuYW1lL2FkZHJlc3MsIHRoZXJlZm9yZSB3ZSBhZGQg dGhlIHRyYWlsaW5nICI6IiBoZXJlLgorKwlzZXQgZGVidWdob3N0ICIke0dEQl9URVNUX1NPQ0tF VEhPU1R9OiIKKysJIyBFc2NhcGUgb3BlbiBhbmQgY2xvc2Ugc3F1YXJlIGJyYWNrZXRzLgorKwlz ZXQgZGVidWdob3N0X3RtcCBbc3RyaW5nIG1hcCB7IFsgXFxbIF0gXFxdIH0gJGRlYnVnaG9zdF0K KysJIyBXZSBuZWVkIGEgImdkYnNlcnZlciIgdmVyc2lvbiBvZiB0aGUgZGVidWdob3N0LCB3aGlj aCB3aWxsCisrCSMgaGF2ZSB0aGUgcG9zc2libGUgY29ubmVjdGlvbiBwcmVmaXggc3RyaXBwZWQu ICBUaGlzIGlzCisrCSMgYmVjYXVzZSBnZGJzZXJ2ZXIgY3VycmVudGx5IGRvZXNuJ3QgcmVjb2du aXplIHRoZSBwcmVmaXhlcy4KKysJcmVnc3ViIC1hbGwgIl5cKHRjcDp8dWRwOnx0Y3A0Onx1ZHA0 Onx0Y3A2Onx1ZHA2OlwpIiAkZGVidWdob3N0X3RtcCAiIiBkZWJ1Z2hvc3RfZ2Ric2VydmVyCisr ICAgIH0gZWxzZWlmIFt0YXJnZXRfaW5mbyBleGlzdHMgc29ja2V0aG9zdF0geworIAlzZXQgZGVi dWdob3N0IFt0YXJnZXRfaW5mbyBzb2NrZXRob3N0XQorKwlzZXQgZGVidWdob3N0X2dkYnNlcnZl ciAkZGVidWdob3N0CisgICAgIH0gZWxzZSB7CisgCXNldCBkZWJ1Z2hvc3QgImxvY2FsaG9zdDoi CisrCXNldCBkZWJ1Z2hvc3RfZ2Ric2VydmVyICRkZWJ1Z2hvc3QKKyAgICAgfQorIAorICAgICAj IFNvbWUgYm9hcmRzIHVzZSBhIGRpZmZlcmVudCB2YWx1ZSBmb3IgdGhlIHBvcnQgdGhhdCBpcyBw YXNzZWQgdG8KK0BAIC0yNzcsOCArMjkwLDE0IEBAIHByb2MgZ2Ric2VydmVyX3N0YXJ0IHsgb3B0 aW9ucyBhcmd1bWVudHMgfSB7CisgCWlmIHsgJG9wdGlvbnMgIT0gIiIgfSB7CisgCSAgICBhcHBl bmQgZ2Ric2VydmVyX2NvbW1hbmQgIiAkb3B0aW9ucyIKKyAJfQorKwlpZiB7ICRkZWJ1Z2hvc3Rf Z2Ric2VydmVyICE9ICIiIH0geworKwkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIgJGRl YnVnaG9zdF9nZGJzZXJ2ZXIiCisrCX0KKyAJaWYgeyAkcG9ydG51bSAhPSAiIiB9IHsKKy0JICAg IGFwcGVuZCBnZGJzZXJ2ZXJfY29tbWFuZCAiIFskZ2V0X2NvbW1fcG9ydCAkcG9ydG51bV0iCisr CSAgICBpZiB7ICRkZWJ1Z2hvc3RfZ2Ric2VydmVyID09ICIiIH0geworKwkJYXBwZW5kIGdkYnNl cnZlcl9jb21tYW5kICIgIgorKwkgICAgfQorKwkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5k ICJbJGdldF9jb21tX3BvcnQgJHBvcnRudW1dIgorIAl9CisgCWlmIHsgJGFyZ3VtZW50cyAhPSAi IiB9IHsKKyAJICAgIGFwcGVuZCBnZGJzZXJ2ZXJfY29tbWFuZCAiICRhcmd1bWVudHMiCitAQCAt MzA3LDYgKzMyNiw5IEBAIHByb2MgZ2Ric2VydmVyX3N0YXJ0IHsgb3B0aW9ucyBhcmd1bWVudHMg fSB7CisgCQkgICAgY29udGludWUKKyAJCX0KKyAJICAgIH0KKysJICAgIC1yZSAiLio6IGNhbm5v dCByZXNvbHZlIG5hbWU6IE5hbWUgb3Igc2VydmljZSBub3Qga25vd25cclxuIiB7CisrCQllcnJv ciAiZ2Ric2VydmVyIGNhbm5vdCByZXNvbHZlIG5hbWUuIgorKwkgICAgfQorIAkgICAgdGltZW91 dCB7CisgCQllcnJvciAiVGltZW91dCB3YWl0aW5nIGZvciBnZGJzZXJ2ZXIgcmVzcG9uc2UuIgor IAkgICAgfQorZGlmZiAtLWdpdCBhL2dkYi91bml0dGVzdHMvcGFyc2UtY29ubmVjdGlvbi1zcGVj LXNlbGZ0ZXN0cy5jIGIvZ2RiL3VuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRl c3RzLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdW5p dHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYworQEAgLTAsMCArMSwyNDkg QEAKKysvKiBTZWxmIHRlc3RzIGZvciBwYXJzaW5nIGNvbm5lY3Rpb24gc3BlY3MgZm9yIEdEQiwg dGhlIEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQgKEMpIDIwMTggRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorKwor KyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSAi ZGVmcy5oIgorKyNpbmNsdWRlICJzZWxmdGVzdC5oIgorKyNpbmNsdWRlICJjb21tb24vbmV0c3R1 ZmYuaCIKKysjaW5jbHVkZSAiZGlhZ25vc3RpY3MuaCIKKysjaWZkZWYgVVNFX1dJTjMyQVBJCisr I2luY2x1ZGUgPHdpbnNvY2syLmg+CisrI2luY2x1ZGUgPHdzcGlhcGkuaD4KKysjZWxzZQorKyNp bmNsdWRlIDxuZXRpbmV0L2luLmg+CisrI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorKyNpbmNsdWRl IDxuZXRkYi5oPgorKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisrI2luY2x1ZGUgPG5ldGluZXQv dGNwLmg+CisrI2VuZGlmCisrCisrbmFtZXNwYWNlIHNlbGZ0ZXN0cyB7CisrbmFtZXNwYWNlIHBh cnNlX2Nvbm5lY3Rpb25fc3BlY190ZXN0cyB7CisrCisrLyogQXV4aWxpYXJ5IHN0cnVjdCB0aGF0 IGhvbGRzIGluZm8gYWJvdXQgYSBzcGVjaWZpYyB0ZXN0IGZvciBhCisrICAgY29ubmVjdGlvbiBz cGVjLiAgKi8KKysKKytzdHJ1Y3QgcGFyc2VfY29ubl90ZXN0CisreworKyAgLyogVGhlIGNvbm5l Y3Rpb24gc3BlYy4gICovCisrICBjb25zdCBjaGFyICpjb25uc3BlYzsKKysKKysgIC8qIEV4cGVj dGVkIHJlc3VsdCBmcm9tICdwYXJzZV9jb25uZWN0aW9uX3NwZWMnLiAgKi8KKysgIHBhcnNlZF9j b25uZWN0aW9uX3NwZWMgZXhwZWN0ZWRfcmVzdWx0OworKworKyAgLyogVHJ1ZSBpZiB0aGlzIHRl c3Qgc2hvdWxkIGZhaWwsIGZhbHNlIG90aGVyd2lzZS4gIElmIHRydWUsIG9ubHkKKysgICAgIHRo ZSBDT05OU1BFQyBmaWVsZCBzaG91bGQgYmUgY29uc2lkZXJlZCBhcyB2YWxpZC4gICovCisrICBi b29sIHNob3VsZF9mYWlsOworKworKyAgLyogVGhlIGV4cGVjdGVkIEFJX0ZBTUlMWSB0byBiZSBm b3VuZCBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycKKysgICAgIEhJTlQuICAqLworKyAgaW50IGV4 cF9haV9mYW1pbHk7CisrCisrICAvKiBUaGUgZXhwZWN0ZWQgQUlfU09DS1RZUEUgdG8gYmUgZm91 bmQgb24gdGhlICdzdHJ1Y3QgYWRkcmluZm8nCisrICAgICBISU5ULiAgKi8KKysgIGludCBleHBf YWlfc29ja3R5cGU7CisrCisrICAvKiBUaGUgZXhwZWN0ZWQgQUlfUFJPVE9DT0wgdG8gYmUgZm91 bmQgb24gdGhlICdzdHJ1Y3QgYWRkcmluZm8nCisrICAgICBISU5ULiAgKi8KKysgIGludCBleHBf YWlfcHJvdG9jb2w7CisrfTsKKysKKysvKiBTb21lIGRlZmluZXMgdG8gaGVscCB1cyBmaWxsIGEg J3N0cnVjdCBwYXJzZV9jb25uX3Rlc3QnLiAgKi8KKysKKysvKiBJbml0aWFsaXplIGEgZnVsbCBl bnRyeS4gICovCisrI2RlZmluZSBJTklUX0VOVFJZKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwg U0hPVUxEX0ZBSUwsIEVYUF9BSV9GQU1JTFksIFwKKysJCSAgIEVYUF9BSV9TT0NLVFlQRSwgRVhQ X0FJX1BST1RPQ09MKQkJCVwKKysgIHsgQUREUiwgeyBFWFBfSE9TVCwgRVhQX1BPUlQgfSwgU0hP VUxEX0ZBSUwsIEVYUF9BSV9GQU1JTFksIFwKKysgICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlf UFJPVE9DT0wgfQorKworKy8qIEluaXRpYWxpemUgYW4gdW5wcmVmaXhlZCBlbnRyeS4gIEluIHRo aXMgY2FzZSwgd2UgZG9uJ3QgZXhwZWN0CisrICAgYW55dGhpbmcgb24gdGhlICdzdHJ1Y3QgYWRk cmluZm8nIEhJTlQuICAqLworKyNkZWZpbmUgSU5JVF9VTlBSRUZJWEVEX0VOVFJZKEFERFIsIEVY UF9IT1NULCBFWFBfUE9SVCkgXAorKyAgSU5JVF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9Q T1JULCBmYWxzZSwgMCwgMCwgMCkKKysKKysvKiBJbml0aWFsaXplZCBhbiB1bnByZWZpeGVkIElQ djYgZW50cnkuICBJbiB0aGlzIGNhc2UsIHdlIGRvbid0CisrICAgZXhwZWN0IGFueXRoaW5nIG9u IHRoZSAnc3RydWN0IGFkZHJpbmZvJyBISU5ULiAgKi8KKysjZGVmaW5lIElOSVRfVU5QUkVGSVhF RF9JUFY2X0VOVFJZKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAorKyAgSU5JVF9FTlRSWSAo QUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBmYWxzZSwgQUZfSU5FVDYsIDAsIDApCisrCisrLyog SW5pdGlhbGl6ZSBhIHByZWZpeGVkIGVudHJ5LiAgKi8KKysjZGVmaW5lIElOSVRfUFJFRklYRURf RU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBFWFBfQUlfRkFNSUxZLCBcCisrCQkJICAg IEVYUF9BSV9TT0NLVFlQRSwgRVhQX0FJX1BST1RPQ09MKSBcCisrICBJTklUX0VOVFJZIChBRERS LCBFWFBfSE9TVCwgRVhQX1BPUlQsIGZhbHNlLCBFWFBfQUlfRkFNSUxZLCBcCisrCSAgICAgIEVY UF9BSV9TT0NLVFlQRSwgRVhQX0FJX1BST1RPQ09MKQorKworKy8qIEluaXRpYWxpemUgYW4gZW50 cnkgcHJlZml4ZWQgd2l0aCAidGNwNDoiLiAgKi8KKysjZGVmaW5lIElOSVRfUFJFRklYRURfSVBW NF9UQ1AoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCisrICBJTklUX1BSRUZJWEVEX0VOVFJZ IChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIEFGX0lORVQsIFNPQ0tfU1RSRUFNLCBcCisrCQkg ICAgICAgSVBQUk9UT19UQ1ApCisrCisrLyogSW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVmaXhlZCB3 aXRoICJ0Y3A2OiIuICAqLworKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUChBRERSLCBF WFBfSE9TVCwgRVhQX1BPUlQpIFwKKysgIElOSVRfUFJFRklYRURfRU5UUlkgKEFERFIsIEVYUF9I T1NULCBFWFBfUE9SVCwgQUZfSU5FVDYsIFNPQ0tfU1RSRUFNLCBcCisrCQkgICAgICAgSVBQUk9U T19UQ1ApCisrCisrLyogSW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVmaXhlZCB3aXRoICJ1ZHA0OiIu ICAqLworKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9JUFY0X1VEUChBRERSLCBFWFBfSE9TVCwgRVhQ X1BPUlQpIFwKKysgIElOSVRfUFJFRklYRURfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9S VCwgQUZfSU5FVCwgU09DS19ER1JBTSwgXAorKwkJICAgICAgIElQUFJPVE9fVURQKQorKworKy8q IEluaXRpYWxpemUgYW4gZW50cnkgcHJlZml4ZWQgd2l0aCAidWRwNjoiLiAgKi8KKysjZGVmaW5l IElOSVRfUFJFRklYRURfSVBWNl9VRFAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCisrICBJ TklUX1BSRUZJWEVEX0VOVFJZIChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIEFGX0lORVQ2LCBT T0NLX0RHUkFNLCBcCisrCQkgICAgICAgSVBQUk9UT19VRFApCisrCisrLyogSW5pdGlhbGl6ZSBh IGJvZ3VzIGVudHJ5LCBpLmUuLCBhIGNvbm5lY3Rpb24gc3BlYyB0aGF0IHNob3VsZAorKyAgIGZh aWwuICAqLworKyNkZWZpbmUgSU5JVF9CT0dVU19FTlRSWShBRERSKSBcCisrICBJTklUX0VOVFJZ IChBRERSLCAiIiwgIiIsIHRydWUsIDAsIDAsIDApCisrCisrLyogVGhlIHZhcmlhYmxlIHdoaWNo IGhvbGRzIGFsbCBvZiBvdXIgdGVzdHMuICAqLworKworK3N0YXRpYyBjb25zdCBwYXJzZV9jb25u X3Rlc3QgY29ubl90ZXN0W10gPQorKyAgeworKyAgICAvKiBVbnByZWZpeGVkIGFkZHJlc3Nlcy4g ICovCisrCisrICAgIC8qIElQdjQsIGhvc3QgYW5kIHBvcnQgcHJlc2VudC4gICovCisrICAgIElO SVRfVU5QUkVGSVhFRF9FTlRSWSAoIjEyNy4wLjAuMToxMjM0IiwgIjEyNy4wLjAuMSIsICIxMjM0 IiksCisrICAgIC8qIElQdjQsIG9ubHkgaG9zdC4gICovCisrICAgIElOSVRfVU5QUkVGSVhFRF9F TlRSWSAoIjEyNy4wLjAuMSIsICIxMjcuMC4wLjEiLCAiIiksCisrICAgIC8qIElQdjQsIG1pc3Np bmcgcG9ydC4gICovCisrICAgIElOSVRfVU5QUkVGSVhFRF9FTlRSWSAoIjEyNy4wLjAuMToiLCAi MTI3LjAuMC4xIiwgIiIpLAorKworKyAgICAvKiBJUHY2LCBob3N0IGFuZCBwb3J0IHByZXNlbnQs IG5vIGJyYWNrZXRzLiAgKi8KKysgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiOjoxOjEyMzQi LCAiOjoxIiwgIjEyMzQiKSwKKysgICAgLyogSVB2NiwgbWlzc2luZyBwb3J0LCBubyBicmFja2V0 cy4gICovCisrICAgIElOSVRfVU5QUkVGSVhFRF9FTlRSWSAoIjo6MToiLCAiOjoxIiwgIiIpLAor KyAgICAvKiBJUHY2LCBob3N0IGFuZCBwb3J0IHByZXNlbnQsIHdpdGggYnJhY2tldHMuICAqLwor KyAgICBJTklUX1VOUFJFRklYRURfSVBWNl9FTlRSWSAoIls6OjFdOjEyMzQiLCAiOjoxIiwgIjEy MzQiKSwKKysgICAgLyogSVB2Niwgb25seSBob3N0LCB3aXRoIGJyYWNrZXRzLiAgKi8KKysgICAg SU5JVF9VTlBSRUZJWEVEX0lQVjZfRU5UUlkgKCJbOjoxXSIsICI6OjEiLCAiIiksCisrICAgIC8q IElQdjYsIG1pc3NpbmcgcG9ydCwgd2l0aCBicmFja2V0cy4gICovCisrICAgIElOSVRfVU5QUkVG SVhFRF9JUFY2X0VOVFJZICgiWzo6MV06IiwgIjo6MSIsICIiKSwKKysKKysgICAgLyogVW5zcGVj aWZpZWQsIG9ubHkgcG9ydC4gICovCisrICAgIElOSVRfVU5QUkVGSVhFRF9FTlRSWSAoIjoxMjM0 IiwgImxvY2FsaG9zdCIsICIxMjM0IiksCisrCisrICAgIC8qIFByZWZpeGVkIGFkZHJlc3Nlcy4g ICovCisrCisrICAgIC8qIFByZWZpeGVkICJ0Y3A0OiIgSVB2NCwgaG9zdCBhbmQgcG9ydCBwcmVz ZW50cy4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNF9UQ1AgKCJ0Y3A0OjEyNy4wLjAuMTox MjM0IiwgIjEyNy4wLjAuMSIsICIxMjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ0Y3A0OiIgSVB2 NCwgb25seSBwb3J0LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUCAoInRjcDQ6OjEy MzQiLCAibG9jYWxob3N0IiwgIjEyMzQiKSwKKysgICAgLyogUHJlZml4ZWQgInRjcDQ6IiBJUHY0 LCBvbmx5IGhvc3QuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVENQICgidGNwNDoxMjcu MC4wLjEiLCAiMTI3LjAuMC4xIiwgIiIpLAorKyAgICAvKiBQcmVmaXhlZCAidGNwNDoiIElQdjQs IG1pc3NpbmcgcG9ydC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNF9UQ1AgKCJ0Y3A0OjEy Ny4wLjAuMToiLCAiMTI3LjAuMC4xIiwgIiIpLAorKworKyAgICAvKiBQcmVmaXhlZCAidWRwNDoi IElQdjQsIGhvc3QgYW5kIHBvcnQgcHJlc2VudC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBW NF9VRFAgKCJ1ZHA0OjEyNy4wLjAuMToxMjM0IiwgIjEyNy4wLjAuMSIsICIxMjM0IiksCisrICAg IC8qIFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwgb25seSBwb3J0LiAgKi8KKysgICAgSU5JVF9QUkVG SVhFRF9JUFY0X1VEUCAoInVkcDQ6OjEyMzQiLCAibG9jYWxob3N0IiwgIjEyMzQiKSwKKysgICAg LyogUHJlZml4ZWQgInVkcDQ6IiBJUHY0LCBvbmx5IGhvc3QuICAqLworKyAgICBJTklUX1BSRUZJ WEVEX0lQVjRfVURQICgidWRwNDoxMjcuMC4wLjEiLCAiMTI3LjAuMC4xIiwgIiIpLAorKyAgICAv KiBQcmVmaXhlZCAidWRwNDoiIElQdjQsIG1pc3NpbmcgcG9ydC4gICovCisrICAgIElOSVRfUFJF RklYRURfSVBWNF9VRFAgKCJ1ZHA0OjEyNy4wLjAuMToiLCAiMTI3LjAuMC4xIiwgIiIpLAorKwor KworKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYsIGhvc3QgYW5kIHBvcnQgcHJlc2VudC4g ICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9UQ1AgKCJ0Y3A2Ojo6MToxMjM0IiwgIjo6MSIs ICIxMjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2Niwgb25seSBwb3J0LiAgKi8K KysgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6OjEyMzQiLCAibG9jYWxob3N0Iiwg IjEyMzQiKSwKKysgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2LCBvbmx5IGhvc3QuICAqLwor KyAgICAvL0lOSVRfUFJFRklYRURfSVBWNl9UQ1AgKCJ0Y3A2Ojo6MSIsICI6OjEiLCAiIiksCisr ICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2NiwgbWlzc2luZyBwb3J0LiAgKi8KKysgICAgSU5J VF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6OjoxOiIsICI6OjEiLCAiIiksCisrCisrICAgIC8q IFByZWZpeGVkICJ1ZHA2OiIgSVB2NiwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KKysgICAg SU5JVF9QUkVGSVhFRF9JUFY2X1VEUCAoInVkcDY6OjoxOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwK KysgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2LCBvbmx5IHBvcnQuICAqLworKyAgICBJTklU X1BSRUZJWEVEX0lQVjZfVURQICgidWRwNjo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAor KyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYsIG9ubHkgaG9zdC4gICovCisrICAgIC8vSU5J VF9QUkVGSVhFRF9JUFY2X1VEUCAoInVkcDY6OjoxIiwgIjo6MSIsICIiKSwKKysgICAgLyogUHJl Zml4ZWQgInVkcDY6IiBJUHY2LCBtaXNzaW5nIHBvcnQuICAqLworKyAgICBJTklUX1BSRUZJWEVE X0lQVjZfVURQICgidWRwNjo6OjE6IiwgIjo6MSIsICIiKSwKKysKKysgICAgLyogUHJlZml4ZWQg InRjcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIGhvc3QgYW5kIHBvcnQgcHJlc2VudC4gICovCisr ICAgIElOSVRfUFJFRklYRURfSVBWNl9UQ1AgKCJ0Y3A2Ols6OjFdOjEyMzQiLCAiOjoxIiwgIjEy MzQiKSwKKysgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIG9ubHkg aG9zdC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9UQ1AgKCJ0Y3A2Ols6OjFdIiwgIjo6 MSIsICIiKSwKKysgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIG1p c3NpbmcgcG9ydC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9UQ1AgKCJ0Y3A2Ols6OjFd OiIsICI6OjEiLCAiIiksCisrCisrICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2NiB3aXRoIGJy YWNrZXRzLCBob3N0IGFuZCBwb3J0IHByZXNlbnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQ VjZfVURQICgidWRwNjpbOjoxXToxMjM0IiwgIjo6MSIsICIxMjM0IiksCisrICAgIC8qIFByZWZp eGVkICJ1ZHA2OiIgSVB2NiB3aXRoIGJyYWNrZXRzLCBvbmx5IGhvc3QuICAqLworKyAgICBJTklU X1BSRUZJWEVEX0lQVjZfVURQICgidWRwNjpbOjoxXSIsICI6OjEiLCAiIiksCisrICAgIC8qIFBy ZWZpeGVkICJ1ZHA2OiIgSVB2NiB3aXRoIGJyYWNrZXRzLCBtaXNzaW5nIHBvcnQuICAqLworKyAg ICBJTklUX1BSRUZJWEVEX0lQVjZfVURQICgidWRwNjpbOjoxXToiLCAiOjoxIiwgIiIpLAorKwor KworKyAgICAvKiBCb2d1cyBhZGRyZXNzZXMuICAqLworKyAgICBJTklUX0JPR1VTX0VOVFJZICgi dGNwNjpbOjoxXTEyMzo0NCIpLAorKyAgICBJTklUX0JPR1VTX0VOVFJZICgiWzo6MSIpLAorKyAg ICBJTklUX0JPR1VTX0VOVFJZICgidGNwNjo6OjFdOiIpLAorKyAgfTsKKysKKysvKiBUZXN0IGEg Y29ubmVjdGlvbiBzcGVjIEMuICAqLworKworK3N0YXRpYyB2b2lkCisrdGVzdF9jb25uIChjb25z dCBwYXJzZV9jb25uX3Rlc3QgJmMpCisreworKyAgc3RydWN0IGFkZHJpbmZvIGhpbnQ7CisrICBw YXJzZWRfY29ubmVjdGlvbl9zcGVjIHJldDsKKysKKysgIG1lbXNldCAoJmhpbnQsIDAsIHNpemVv ZiAoaGludCkpOworKworKyAgVFJZCisrICAgIHsKKysgICAgICByZXQgPSBwYXJzZV9jb25uZWN0 aW9uX3NwZWMgKGMuY29ubnNwZWMsICZoaW50KTsKKysgICAgfQorKyAgQ0FUQ0ggKGV4LCBSRVRV Uk5fTUFTS19FUlJPUikKKysgICAgeworKyAgICAgIC8qIElmIHdlIGNhdWdodCBhbiBlcnJvciwg d2Ugc2hvdWxkIGNoZWNrIGlmIHRoaXMgY29ubmVjdGlvbgorKwkgc3BlYyB3YXMgc3VwcG9zZWQg dG8gZmFpbC4gICovCisrICAgICAgU0VMRl9DSEVDSyAoYy5zaG91bGRfZmFpbCk7CisrICAgICAg cmV0dXJuOworKyAgICB9CisrICBFTkRfQ0FUQ0gKKysKKysgIFNFTEZfQ0hFQ0sgKCFjLnNob3Vs ZF9mYWlsKTsKKysgIFNFTEZfQ0hFQ0sgKHJldC5ob3N0X3N0ciA9PSBjLmV4cGVjdGVkX3Jlc3Vs dC5ob3N0X3N0cik7CisrICBTRUxGX0NIRUNLIChyZXQucG9ydF9zdHIgPT0gYy5leHBlY3RlZF9y ZXN1bHQucG9ydF9zdHIpOworKyAgU0VMRl9DSEVDSyAoaGludC5haV9mYW1pbHkgPT0gYy5leHBf YWlfZmFtaWx5KTsKKysgIFNFTEZfQ0hFQ0sgKGhpbnQuYWlfc29ja3R5cGUgPT0gYy5leHBfYWlf c29ja3R5cGUpOworKyAgU0VMRl9DSEVDSyAoaGludC5haV9wcm90b2NvbCA9PSBjLmV4cF9haV9w cm90b2NvbCk7CisrfQorKworKy8qIFJ1biB0aGUgdGVzdHMgYXNzb2NpYXRlZCB3aXRoIHBhcnNp bmcgY29ubmVjdGlvbiBzcGVjcy4gICovCisrCisrc3RhdGljIHZvaWQKKytydW5fdGVzdHMgKCkK Kyt7CisrICBmb3IgKGNvbnN0IHBhcnNlX2Nvbm5fdGVzdCAmYyA6IGNvbm5fdGVzdCkKKysgICAg dGVzdF9jb25uIChjKTsKKyt9CisrfSAvKiBuYW1lc3BhY2UgcGFyc2VfY29ubmVjdGlvbl9zcGVj X3Rlc3RzICovCisrfSAvKiBuYW1lc3BhY2Ugc2VsZnRlc3RzICovCisrCisrdm9pZAorK19pbml0 aWFsaXplX3BhcnNlX2Nvbm5lY3Rpb25fc3BlY19zZWxmdGVzdHMgKCkKKyt7CisrICBzZWxmdGVz dHM6OnJlZ2lzdGVyX3Rlc3QgKCJwYXJzZV9jb25uZWN0aW9uX3NwZWMiLAorKwkJCSAgICBzZWxm dGVzdHM6OnBhcnNlX2Nvbm5lY3Rpb25fc3BlY190ZXN0czo6cnVuX3Rlc3RzKTsKKyt9CgpkaWZm IC0tZ2l0IGEvZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2YyLnBhdGNoIGIvZ2RiLXJoYno4ODE4NDkt aXB2Ni0yb2YyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzljOTY2Li4w MDAwMDAwCi0tLSBhL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMm9mMi5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDYzICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+ Ci1EYXRlOiBGcmksIDEzIEp1bCAyMDE4IDE2OjIwOjM0IC0wNDAwCi1TdWJqZWN0OiBnZGItcmhi ejg4MTg0OS1pcHY2LTJvZjIucGF0Y2gKLQotOzsgSW1wbGVtZW50IElQdjYgc3VwcG9ydCBmb3Ig R0RCL2dkYnNlcnZlciAoUkggQlogODgxODQ5LCBTZXJnaW8gRHVyaWdhbiBKdW5pb3IpLgotCi1F eHBlY3QgZm9yIGFub3RoZXIgdmFyaWFudCBvZiBlcnJvciBtZXNzYWdlIHdoZW4gZ2Ric2VydmVy IGNhbm5vdCByZXNvbHZlIGhvc3RuYW1lCi0KLUkndmUgbm90aWNlZCB0aGF0IG9uIGEgZmV3IGhv c3RzLCB3aGVuIGdpdmVuIGFuIGludmFsaWQgaG9zdG5hbWUsCi1nZGJzZXJ2ZXIgZmFpbHMgd2l0 aDoKLQotICBzcGF3biAvLi4vLi4vZ2RiL2dkYnNlcnZlci9nZGJzZXJ2ZXIgLS1vbmNlIHRjcDg6 MTIzOjIzNTMgL2dkYi9idWlsZC9mZWRvcmEtczM5MHgvYnVpbGQvZ2RiL3Rlc3RzdWl0ZS9vdXRw dXRzL2dkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3Qvc2VydmVyLWNvbm5lY3QKLSAgdGNwODoxMjM6 MjM1MzogY2Fubm90IHJlc29sdmUgbmFtZTogTm8gYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggaG9z dG5hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KLSAgRXhpdGluZwotCi1VbmZvcnR1bmF0ZWx5LCB0aGlz IGNhdXNlcyBhIGZhaWwgb24gdGhlIG5ldwotZ2RiLnNlcnZlci9zZXJ2ZXItY29ubmVjdC5leHAg dGVzdCAoaW50cm9kdWNlZCBieSB0aGUgSVB2NiBwYXRjaCk6Ci0KLSAgRkFJTDogZ2RiLnNlcnZl ci9zZXJ2ZXItY29ubmVjdC5leHA6IHRjcDg6IHN0YXJ0IGdkYnNlcnZlcjogZ2Ric2VydmVyIHNo b3VsZCBmYWlsIGJ1dCBkaWQgbm90Ci0KLVRoaXMgaGFwcGVucyBiZWNhdXNlIHdlJ3JlIGV4cGVj dGluZyBmb3IgYW5vdGhlciB2YXJpYW50IG9mIHRoaXMgZXJyb3IKLW1lc3NhZ2U6Ci0KLSAgY2Fu bm90IHJlc29sdmUgbmFtZTogTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93bgotCi1UaGVyZWZvcmUs IHRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUgaGVscGVyIGZ1bmN0aW9uICdnZGJzZXJ2ZXJfc3RhcnQn IHRvCi1hbHNvIHJlY29nbml6ZSB0aGUgIk5vIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIGhvc3Ru YW1lIiBtZXNzYWdlLgotVGhpcyAiZml4ZXMiIHRoZSB0ZXN0Y2FzZSBvbiB0aGUgaG9zdHMgdGhh dCB1c2UgdGhpcyB2YXJpYW50LgotCi1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKLTIwMTgtMDct MTMgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0KLQkqIGxp Yi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAgKGdkYnNlcnZlcl9zdGFydCk6IEV4cGVjdCBmb3IgdGhl Ci0JbWVzc2FnZSAiTm8gYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggaG9zdG5hbWUiIHdoZW4gZ2Ri c2VydmVyCi0JY2Fubm90IHJlc29sdmUgdGhlIGhvc3RuYW1lLgotCi1kaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotLS0tIGEvZ2Ri L3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSsrKyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi1AQCAt MSwzICsxLDkgQEAKLSsyMDE4LTA3LTEzICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9k akByZWRoYXQuY29tPgotKwotKwkqIGxpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAgKGdkYnNlcnZl cl9zdGFydCk6IEV4cGVjdCBmb3IgdGhlCi0rCW1lc3NhZ2UgIk5vIGFkZHJlc3MgYXNzb2NpYXRl ZCB3aXRoIGhvc3RuYW1lIiB3aGVuIGdkYnNlcnZlcgotKwljYW5ub3QgcmVzb2x2ZSB0aGUgaG9z dG5hbWUuCi0rCi0gMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpA cmVkaGF0LmNvbT4KLSAJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KLSAJICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+Ci1kaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIGIvZ2RiL3Rlc3Rz dWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9n ZGJzZXJ2ZXItc3VwcG9ydC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1z dXBwb3J0LmV4cAotQEAgLTMyNiw3ICszMjYsNyBAQCBwcm9jIGdkYnNlcnZlcl9zdGFydCB7IG9w dGlvbnMgYXJndW1lbnRzIH0gewotIAkJICAgIGNvbnRpbnVlCi0gCQl9Ci0gCSAgICB9Ci0tCSAg ICAtcmUgIi4qOiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiBOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3du XHJcbiIgewotKwkgICAgLXJlICIuKjogY2Fubm90IHJlc29sdmUgbmFtZTogXChObyBhZGRyZXNz IGFzc29jaWF0ZWQgd2l0aCBob3N0bmFtZXxOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3duXClcclxu IiB7Ci0gCQllcnJvciAiZ2Ric2VydmVyIGNhbm5vdCByZXNvbHZlIG5hbWUuIgotIAkgICAgfQot IAkgICAgdGltZW91dCB7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2YzLnBh dGNoIGIvZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2YzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjM5MGJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejg4MTg0 OS1pcHY2LTJvZjMucGF0Y2gKQEAgLTAsMCArMSw1NCBAQAorRnJvbSBGRURPUkFfUEFUQ0hFUyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNlcmdpbyBEdXJpZ2FuIEp1bmlvciA8c2Vy Z2lvZGpAcmVkaGF0LmNvbT4KK0RhdGU6IE1vbiwgMzAgSnVsIDIwMTggMTU6MjM6MjcgLTA0MDAK K1N1YmplY3Q6IGdkYi1yaGJ6ODgxODQ5LWlwdjYtMm9mMy5wYXRjaAorCitNYXRjaCBhbnkga2lu ZCBvZiBlcnJvciBhZnRlciAiY2Fubm90IHJlc29sdmUgbmFtZSIgb24gbGliL2dkYnNlcnZlci1z dXBwb3J0LmV4cDpnZGJzZXJ2ZXJfc3RhcnQKKworT24gY29tbWl0OgorCitjb21taXQgN2YxZjdl MjM5MzlhZGM3ZDcxMDM2YTE3ZmM2MDgxZTNhZjdjYTU4NQorQXV0aG9yOiBTZXJnaW8gRHVyaWdh biBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+CitEYXRlOiAgIEZyaSBKdWwgMTMgMTY6MjA6 MzQgMjAxOCAtMDQwMAorCisgICAgRXhwZWN0IGZvciBhbm90aGVyIHZhcmlhbnQgb2YgZXJyb3Ig bWVzc2FnZSB3aGVuIGdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBob3N0bmFtZQorCitJIGV4dGVu ZGVkIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gYmVpbmcgdXNlZCB0byBpZGVudGlmeSB3aGV0aGVy CitnZGJzZXJ2ZXIgY291bGQgbm90IHJlc29sdmUgYSAoaG9zdCluYW1lLiAgVGhpcyB3YXMgbmVl ZGVkIGJlY2F1c2UgdGhlCitlcnJvciBtZXNzYWdlIGJlaW5nIHByaW50ZWQgaGFkIGEgZGlmZmVy ZW50IHZhcmlhdGlvbiBhY3Jvc3Mgc29tZQorc3lzdGVtcy4gIEhvd2V2ZXIsIGFzIGl0IHR1cm5z IG91dCwgSSd2ZSBqdXN0IG5vdGljZWQgdGhhdCB0aGUgbWVzc2FnZQoraGFzIHlldCBhbm90aGVy IHZhcmlhdGlvbjoKKworICB0YXJnZXQgcmVtb3RlIHRjcDg6MTIzOjIzNTMKKyAgdGNwODoxMjM6 MjM1MzogY2Fubm90IHJlc29sdmUgbmFtZTogU3lzdGVtIGVycm9yCisgICAgICAgICAgICAgICAg IF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorICB0Y3A4OjEyMzoyMzUzOiBObyBz dWNoIGZpbGUgb3IgZGlyZWN0b3J5LgorICAoZ2RiKSBGQUlMOiBnZGIuc2VydmVyL3NlcnZlci1j b25uZWN0LmV4cDogdGNwODogY29ubmVjdCB0byBnZGJzZXJ2ZXIgdXNpbmcgdGNwODoxMjMKKwor d2hpY2ggaXMgY2F1c2luZyBGQUlMcyBvbiBzb21lIHN5c3RlbXMgKG5hbWVseSwgRmVkb3JhLWk2 ODYgb24KK0J1aWxkQm90KS4KKworU28gaW5zdGVhZCBvZiB0cnlpbmcgdG8gcHJlZGljdCBldmVy eXRoaW5nIHRoYXQgY2FuIGJlIHByaW50ZWQsIEkKK2RlY2lkZWQgdG8ganVzdCBtYXRjaCBhbnl0 aGluZyBhZnRlciB0aGUgImNhbm5vdCByZXNvbHZlIG5hbWU6ICIgcGFydC4KK1RoaXMgcGF0Y2gg aW1wbGVtZW50cyB0aGF0LgorCitSZWdyZXNzaW9uIHRlc3RlZCBvbiB0aGUgQnVpbGRCb3QuCisK K2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgorMjAxOC0wNy0zMCAgU2VyZ2lvIER1cmlnYW4gSnVu aW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKworCSogbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4 cCAoZ2Ric2VydmVyX3N0YXJ0KTogTWF0Y2ggYW55IGtpbmQgb2YKKwllcnJvciBhZnRlciAiY2Fu bm90IHJlc29sdmUgbmFtZSIgc3RyaW5nLgorCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9s aWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1 cHBvcnQuZXhwCistLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAK KysrKyBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cAorQEAgLTMyNiw3 ICszMjYsNyBAQCBwcm9jIGdkYnNlcnZlcl9zdGFydCB7IG9wdGlvbnMgYXJndW1lbnRzIH0gewor IAkJICAgIGNvbnRpbnVlCisgCQl9CisgCSAgICB9CistCSAgICAtcmUgIi4qOiBjYW5ub3QgcmVz b2x2ZSBuYW1lOiBOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3duXHJcbiIgeworKwkgICAgLXJlICIu KjogY2Fubm90IHJlc29sdmUgbmFtZTogLipcclxuIiB7CisgCQllcnJvciAiZ2Ric2VydmVyIGNh bm5vdCByZXNvbHZlIG5hbWUuIgorIAkgICAgfQorIAkgICAgdGltZW91dCB7CgpkaWZmIC0tZ2l0 IGEvZ2RiLXJoYno4ODE4NDktaXB2Ni0zb2YzLnBhdGNoIGIvZ2RiLXJoYno4ODE4NDktaXB2Ni0z b2YzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4OWNiMTgKLS0t IC9kZXYvbnVsbAorKysgYi9nZGItcmhiejg4MTg0OS1pcHY2LTNvZjMucGF0Y2gKQEAgLTAsMCAr MSw3MiBAQAorRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFNlcmdpbyBEdXJpZ2FuIEp1bmlvciA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KK0RhdGU6IEZy aSwgMyBBdWcgMjAxOCAxODowNDozOCAtMDQwMAorU3ViamVjdDogZ2RiLXJoYno4ODE4NDktaXB2 Ni0zb2YzLnBhdGNoCisKK0ZpeCB0aGlua28gd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvIGRpc2Fi bGUgVENQJ3MgTmFnbGUgYWxnb3JpdGhtCisKK1RoaXMgcGF0Y2ggZml4ZXMgYSB0aGlua28gdGhh dCBoYXBwZW5lZCB3aGVuIEkgd2FzIGltcGxlbWVudGluZyB0aGUKK0lQdjYgc3VwcG9ydCBvbiBH REIvZ2Ric2VydmVyLiAgT24gY2VydGFpbiBzaXR1YXRpb25zLCBpdCBpcyBuZWNlc3NhcnkKK3Rv IGRpc2FibGUgVENQJ3MgTmFnbGUgYWxnb3JpdGhtIChOT0RFTEFZKS4gIEZvciBvYnZpb3VzIHJl YXNvbnMsIHRoaXMKK29ubHkgYXBwbGllcyB3aGVuIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBUQ1Ag Y29ubmVjdGlvbi4KKworV2hpbGUgaW1wbGVtZW50aW5nIHRoZSBJUHY2IHBhdGNoLCBJIG5vdGlj ZWQgdGhhdCB0aGUgbmV0X29wZW4KK2Z1bmN0aW9uIChvbiBnZGIvc2VyLXRjcC5jKSBrZXB0IGEg ZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlCitjb25uZWN0aW9uIHR5cGUgd2FzIFVEUCBvciBU Q1AuICBJIGVsaW1pbmF0ZWQgdGhhdCBmbGFnLCBhbmQgc3RhcnRlZAordXNpbmcgdGhlICdzdHJ1 Y3QgYWRkcmluZm8gKicgcmVsYXRlZCB0byB0aGUgc3VjY2Vzc2Z1bCBjb25uZWN0aW9uCitkaXJl Y3RseS4gIEhvd2V2ZXIsIEkgbWFkZSBhIG1pc3Rha2U6CisKKyAgaWYgKHN1Y2Nlc3NfYWluZm8t PmFpX3NvY2t0eXBlID09IElQUFJPVE9fVENQKQorICAgICAgICAgICAgICAgICAgICAgXl5eXl5e Xl5eXl4KKyAgICB7CisgICAgICAvKiBEaXNhYmxlIE5hZ2xlIGFsZ29yaXRobS4gIE5lZWRlZCBp biBzb21lIGNhc2VzLiAgKi8KKyAgICAgIGludCB0bXAgPSAxOworCisgICAgICBzZXRzb2Nrb3B0 IChzY2ItPmZkLCBJUFBST1RPX1RDUCwgVENQX05PREVMQVksCisJCSAgKGNoYXIgKikgJnRtcCwg c2l6ZW9mICh0bXApKTsKKyAgICB9CisKK1RoZSAnYWlfc29ja3R5cGUnIGZpZWxkIHNwZWNpZmll cyB0aGUgc29ja2V0IHR5cGUgKFNPQ0tfU1RSRUFNIG9yCitTT0NLX0RHUkFNKSwgYW5kIG5vdCB0 aGUgcHJvdG9jb2wuICBUaGlzIHRlc3Qgd2FzIGFsd2F5cyBmYWlsaW5nLCBhbmQKK3RoZSBOYWds ZSBhbGdvcml0aG0gd2FzIG5ldmVyIGJlaW5nIGRpc2FibGVkLgorCitUaGUgb2J2aW91cyBmaXgg aXMgdG8gdXNlIHRoZSAnYWlfcHJvdG9jb2wnIGZpZWxkLiAgVGhpcyBpcyB3aGF0IHRoaXMKK3Bh dGNoIGRvZXMuCisKK0h1Z2UgInRoYW5rIHlvdSIgdG8gSm9lbCBCcm9iZWNrZXIgd2hvIHJlcG9y dGVkIHRoZSByZWdyZXNzaW9uIChoZSB3YXMKK2V4cGVyaWVuY2luZyBhbiB1bnVzdWFsIGRlbGF5 IHdoaWxlIGRlYnVnZ2luZyBhIGJhcmUtbWV0YWwgcHJvZ3JhbQorcnVubmluZyB1bmRlciBRRU1V KSBhbmQgaGVscGVkIG1lIHNldCB1cCBhIHByb3BlciByZXByb2R1Y2VyIGZvciB0aGUKK2J1Zy4K KworZ2RiL0NoYW5nZUxvZzoKKzIwMTgtMDgtMDMgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNl cmdpb2RqQHJlZGhhdC5jb20+CisKKwkqIHNlci10Y3AuYyAobmV0X29wZW4pOiBGaXggdGhpbmtv IHdoZW4gZGVjaWRpbmcgd2hldGhlciB0bworCWRpc2FibGUgVENQJ3MgTmFnbGUgYWxnb3JpdGht ICh1c2UgImFpX3Byb3RvY29sIiBpbnN0ZWFkIG9mCisJImFpX3NvY2t0eXBlIikuCisKK2RpZmYg LS1naXQgYS9nZGIvQ2hhbmdlTG9nIGIvZ2RiL0NoYW5nZUxvZworLS0tIGEvZ2RiL0NoYW5nZUxv ZworKysrIGIvZ2RiL0NoYW5nZUxvZworQEAgLTEsMyArMSw5IEBACisrMjAxOC0wOC0wMyAgU2Vy Z2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKysKKysJKiBzZXItdGNw LmMgKG5ldF9vcGVuKTogRml4IHRoaW5rbyB3aGVuIGRlY2lkaW5nIHdoZXRoZXIgdG8KKysJZGlz YWJsZSBUQ1AncyBOYWdsZSBhbGdvcml0aG0gKHVzZSAiYWlfcHJvdG9jb2wiIGluc3RlYWQgb2YK KysJImFpX3NvY2t0eXBlIikuCisrCisgMjAxOC0wNy0yNSAgQWxhbiBIYXl3YXJkICA8YWxhbi5o YXl3YXJkQGFybS5jb20+CisgCisgCSogdGFyZ2V0LWRlc2NyaXB0aW9ucy5jICh0ZGVzY19yZWdp c3Rlcl9iaXRzaXplKTogUmVuYW1lLgorZGlmZiAtLWdpdCBhL2dkYi9zZXItdGNwLmMgYi9nZGIv c2VyLXRjcC5jCistLS0gYS9nZGIvc2VyLXRjcC5jCisrKysgYi9nZGIvc2VyLXRjcC5jCitAQCAt MzY3LDcgKzM2Nyw3IEBAIG5ldF9vcGVuIChzdHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIg Km5hbWUpCisgCisgICBpb2N0bCAoc2NiLT5mZCwgRklPTkJJTywgJmlvYXJnKTsKKyAKKy0gIGlm IChzdWNjZXNzX2FpbmZvLT5haV9zb2NrdHlwZSA9PSBJUFBST1RPX1RDUCkKKysgIGlmIChzdWNj ZXNzX2FpbmZvLT5haV9wcm90b2NvbCA9PSBJUFBST1RPX1RDUCkKKyAgICAgeworICAgICAgIC8q IERpc2FibGUgTmFnbGUgYWxnb3JpdGhtLiAgTmVlZGVkIGluIHNvbWUgY2FzZXMuICAqLworICAg ICAgIGludCB0bXAgPSAxOwoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXgg ZTAzYjdjZi4uMWM2ZDg2OCAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAg LTI2LDcgKzI2LDcgQEAgVmVyc2lvbjogOC4xLjkwLiV7c25hcHNyY30KIAogIyBUaGUgcmVsZWFz ZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQg MS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJw bSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiA0MCV7 P2Rpc3R9CitSZWxlYXNlOiA0MSV7P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMr IHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFu ZCBHUEwrIGFuZCBMR1BMdjIrIGFuZCBMR1BMdjMrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4g YW5kIEdGREwKIEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTE2OSwxNCArMTY5LDEx IEBAIFNvdXJjZTU6ICV7bGlic3RkY3h4cHl0aG9ufS50YXIueHoKIFNvdXJjZTY6IGdkYnR1aQog CiAjIGxpYmlwdDogSW50ZWwgUHJvY2Vzc29yIFRyYWNlIERlY29kZXIgTGlicmFyeQotJWdsb2Jh bCBsaWJpcHRfdmVyc2lvbiAxLjYuMQorJWdsb2JhbCBsaWJpcHRfdmVyc2lvbiAyLjAKICM9ZmVk b3JhCiBTb3VyY2U3OiB2JXtsaWJpcHRfdmVyc2lvbn0udGFyLmd6CiAjPWZlZG9yYQogUGF0Y2gx MTQyOiB2MS41LWxpYmlwdC1zdGF0aWMucGF0Y2gKLSMgW3JoZWwgZHRzIGxpYmlwdF0gRml4IFst V2Vycm9yPWltcGxpY2l0LWZhbGx0aHJvdWdoPV0gd2l0aCBnY2MtNy4xLjEuCi0jPXB1c2gramFu Ci1QYXRjaDExNzE6IHYxLjYuMS1pbXBsaWNpdC1mYWxsdGhyb3VnaC5wYXRjaAogCiAjIyBbdGVz dHN1aXRlXSBGaXggZmFsc2Ugc2VsZnRlc3QuZXhwIEZBSUwgZnJvbSBzeXN0ZW0gcmVhZGxpbmUt Ni4zKyAoUGF0cmljayBQYWxrYSkuCiAjIz1mZWRvcmF0ZXN0CkBAIC0yMzcsNyArMjM0LDcgQEAg QnVpbGRSZXF1aXJlczogZ3VpbGUtZGV2ZWwle2J1aWxkaXNhfQogJWlmIDAlez9lbDc6MX0gJiYg MCV7P3NjbDoxfQogQnVpbGRSZXF1aXJlczogY21ha2UKICVlbHNlCi0jQnVpbGRSZXF1aXJlczog bGliaXB0LWRldmVsJXtidWlsZGlzYX0KK0J1aWxkUmVxdWlyZXM6IGxpYmlwdC1kZXZlbCV7YnVp bGRpc2F9CiAlZW5kaWYKICVlbmRpZgogJWVuZGlmCkBAIC00MTUsNyArNDEyLDYgQEAgdGFyIHh6 ZiAle1NPVVJDRTd9CiAoCiAgY2QgcHJvY2Vzc29yLXRyYWNlLSV7bGliaXB0X3ZlcnNpb259CiAl cGF0Y2gxMTQyIC1wMQotJXBhdGNoMTE3MSAtcDEKICkKICVlbmRpZgogCkBAIC02MDgsNyArNjA0 LDcgQEAgJCg6IHBwYzY0IGhvc3QgYnVpbGQgY3Jhc2hlcyBvbiBwcGMgdmFyaWFudCBvZiBsaWJl eHBhdC5zbyApCVwKIAktLWRpc2FibGUtaW5wcm9jZXNzLWFnZW50CQkJCVwKICVlbmRpZgogCS0t d2l0aC1zeXN0ZW0temxpYgkJCQkJXAotJWlmIDAgJiYgJXtoYXZlX2xpYmlwdH0KKyVpZiAle2hh dmVfbGliaXB0fQogCS0td2l0aC1pbnRlbC1wdAkJCQkJCVwKICVlbHNlCiAJLS13aXRob3V0LWlu dGVsLXB0CQkJCQlcCkBAIC0xMDI2LDYgKzEwMjIsMTIgQEAgZmkKICVlbmRpZgogCiAlY2hhbmdl bG9nCisqIFdlZCBBdWcgIDggMjAxOCBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJl ZGhhdC5jb20+IC0gOC4xLjkwLjIwMTgwNzI3LTQxLmZjMjkKKy0gUmVlbmFibGUgbGliaXB0Lgor LSBSZWJ1aWxkIGR1ZSB0byBuZXcgbGliaXB0IHJlbGVhc2UuCistIEFkanVzdCBidW5kbGVkIGxp YmlwdDsgcmVtb3ZlIHVubmVjZXNzYXJ5IHBhdGNoLgorLSBTeW5jIElQdjYgcGF0Y2ggd2l0aCBG LTI4IEdEQi4KKwogKiBXZWQgQXVnICA4IDIwMTggU2VyZ2lvIER1cmlnYW4gSnVuaW9yIDxzZXJn aW9kakByZWRoYXQuY29tPiAtIDguMS45MC4yMDE4MDcyNy00MC5mYzI5CiAtIFRlbXBvcmFyaWx5 IGRpc2FibGUgbGliaXB0IChuZWVkZWQgdG8gdXBncmFkZSBsaWJpcHQgdG8gMi4wKS4KIAoKZGlm ZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDE5M2M1N2QuLjVkOGI4NTMgMTAwNjQ0 Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwzICsxLDMgQEAKIFNIQTUxMiAoZ2Ri LWxpYnN0ZGMrKy12My1weXRob24tOC4xLjEtMjAxODA2MjYudGFyLnh6KSA9IGE4YjFjNTRkZDM0 OGNmZWIzN2RhNzNmOTY4NzQyODk2YmUzZGQxM2E0MjE1ZjhkODUxOTg3MGMyYWJlYTkxNWY1MTc2 YzNmYTY5ODlkZGQxMGYyMDAyMGExNmYwZmFiMjBjYmFlNjhlZThkNThhODIyMzRkODc3ODAyMzUy MGY4Ci1TSEE1MTIgKHYxLjYuMS50YXIuZ3opID0gYzdjOWM4YmE3ODAyMWZmZjNmZGUxMmEyMTZm NTcyOWM2MDMxMTE0ZTVhNzI3ZjQ5YjdmZjFhMzFjNTNiNWRkYmEyNGQxYjNhZWUyNTJkODI3OGVj ZDFmYWZlNzhhNDRlZDA1OWMxMmI5ZWIyOWVjYTMzMDkzZTA3MjA2NzM0NjgKIFNIQTUxMiAoZ2Ri LTguMS45MC4yMDE4MDcyNy50YXIueHopID0gMGY4ZTljZmFlYWY5ZjIyMzYxYjNiOGQ1ZDQ5MGQw YThiZWEzZWVhYWEwYzY4MTNkNWRmMGE2ZDUyNjdmZjNmNTk3NzQ3Y2MwZTk3ZDcwYzQxOTZkNzhl ZTMyZTBlODJkNTg5MzI4M2Q3MWI0NDlkODk3MDM4OTNiZjFhZTAwMTQKK1NIQTUxMiAodjIuMC50 YXIuZ3opID0gZWM2MzE1MWU4NDJjODFjYzczZWExMWJhNTYwYjYzZTAwNWNlZmJlMTlkOThkZTI0 YWU1YzhjYWE0ZGU3YzljMWQ3MWQxZWM1YjYyMTRhMzQ3NTkyZWFjNjc1Yjc1YTNkMmIyNmQ0Njkx Y2E4NmY5MTAyMGViZmVhOGU5MTI5MzkKCmRpZmYgLS1naXQgYS92MS41LWxpYmlwdC1zdGF0aWMu cGF0Y2ggYi92MS41LWxpYmlwdC1zdGF0aWMucGF0Y2gKaW5kZXggNDc3YjZjNC4uNjU5OTQ0NSAx MDA2NDQKLS0tIGEvdjEuNS1saWJpcHQtc3RhdGljLnBhdGNoCisrKyBiL3YxLjUtbGliaXB0LXN0 YXRpYy5wYXRjaApAQCAtMSw2ICsxLDggQEAKLS0tLSBwcm9jZXNzb3ItdHJhY2UtMS41L2xpYmlw dC9DTWFrZUxpc3RzLnR4dC1vcmlnCTIwMTYtMDQtMDcgMDg6NTI6MTQuMDAwMDAwMDAwICswMjAw Ci0rKysgcHJvY2Vzc29yLXRyYWNlLTEuNS9saWJpcHQvQ01ha2VMaXN0cy50eHQJMjAxNi0wOC0x NyAyMzoxMjoyMy4yNDExMDkyNDQgKzAyMDAKLUBAIC04MSw3ICs4MSw3IEBAIGVuZGlmIChDTUFL RV9IT1NUX1dJTjMyKQorSW5kZXg6IHByb2Nlc3Nvci10cmFjZS0yLjAvbGliaXB0L0NNYWtlTGlz dHMudHh0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gcHJvY2Vzc29yLXRyYWNlLTIuMC5vcmlnL2xpYmlwdC9D TWFrZUxpc3RzLnR4dAorKysrIHByb2Nlc3Nvci10cmFjZS0yLjAvbGliaXB0L0NNYWtlTGlzdHMu dHh0CitAQCAtODUsNyArODUsNyBAQCBlbmRpZiAoQ01BS0VfSE9TVF9XSU4zMikKICAKICBzZXQo TElCSVBUX0ZJTEVTICR7TElCSVBUX0ZJTEVTfSAke0xJQklQVF9TRUNUSU9OX0ZJTEVTfSkKICAK QEAgLTksOCArMTEsMTAgQEAKICAgICR7TElCSVBUX0ZJTEVTfQogICkKICAKLS0tLSBwcm9jZXNz b3ItdHJhY2UtMS41L2xpYmlwdC9zcmMvcG9zaXgvaW5pdC5jLW9yaWcJMjAxNi0wNC0wNyAwODo1 MjoxNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBwcm9jZXNzb3ItdHJhY2UtMS41L2xpYmlwdC9zcmMv cG9zaXgvaW5pdC5jCTIwMTYtMDgtMjMgMDk6MDQ6MTEuNTQwMTc2NjY4ICswMjAwCitJbmRleDog cHJvY2Vzc29yLXRyYWNlLTIuMC9saWJpcHQvc3JjL3Bvc2l4L2luaXQuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIHByb2Nlc3Nvci10cmFjZS0yLjAub3JpZy9saWJpcHQvc3JjL3Bvc2l4L2luaXQuYworKysr IHByb2Nlc3Nvci10cmFjZS0yLjAvbGliaXB0L3NyYy9wb3NpeC9pbml0LmMKIEBAIC0yOSw3ICsy OSw3IEBACiAgI2luY2x1ZGUgInB0X2lsZC5oIgogIAoKZGlmZiAtLWdpdCBhL3YxLjYuMS1pbXBs aWNpdC1mYWxsdGhyb3VnaC5wYXRjaCBiL3YxLjYuMS1pbXBsaWNpdC1mYWxsdGhyb3VnaC5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGI4NDRkMy4uMDAwMDAwMAotLS0gYS92 MS42LjEtaW1wbGljaXQtZmFsbHRocm91Z2gucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMyAr MCwwIEBACi1nY2MtNy4xLjEtMS5mYzI3Lng4Nl82NAotL2hvbWUvamtyYXRvY2gvcmVkaGF0L2Zl ZG9yYS9saWJpcHQvbWFzdGVyL3Byb2Nlc3Nvci10cmFjZS0xLjYuMS9saWJpcHQvc3JjL3B0X2Js b2NrX2RlY29kZXIuYzogSW4gZnVuY3Rpb24g4oCYcHRfYmxrX3Byb2NlZWRfbm9fZXZlbnRfY2Fj aGVk4oCZOgotL2hvbWUvamtyYXRvY2gvcmVkaGF0L2ZlZG9yYS9saWJpcHQvbWFzdGVyL3Byb2Nl c3Nvci10cmFjZS0xLjYuMS9saWJpcHQvc3JjL3B0X2Jsb2NrX2RlY29kZXIuYzoyMjgyOjY6IGVy cm9yOiB0aGlzIHN0YXRlbWVudCBtYXkgZmFsbCB0aHJvdWdoIFstV2Vycm9yPWltcGxpY2l0LWZh bGx0aHJvdWdoPV0KLSAgIGlmIChiY2UuaXNpemUpIHsKLSAgICAgIF4KLS9ob21lL2prcmF0b2No L3JlZGhhdC9mZWRvcmEvbGliaXB0L21hc3Rlci9wcm9jZXNzb3ItdHJhY2UtMS42LjEvbGliaXB0 L3NyYy9wdF9ibG9ja19kZWNvZGVyLmM6MjMyODoyOiBub3RlOiBoZXJlCi0gIGNhc2UgcHRicV9k ZWNvZGU6IHsKLSAgXn5+fgotCi1kaWZmIC0tZ2l0IGEvbGliaXB0L3NyYy9wdF9ibG9ja19kZWNv ZGVyLmMgYi9saWJpcHQvc3JjL3B0X2Jsb2NrX2RlY29kZXIuYwotaW5kZXggMjE3ODNhNi4uOTFk NWJiMyAxMDA2NDQKLS0tLSBhL2xpYmlwdC9zcmMvcHRfYmxvY2tfZGVjb2Rlci5jCi0rKysgYi9s aWJpcHQvc3JjL3B0X2Jsb2NrX2RlY29kZXIuYwotQEAgLTIwOTUsNiArMjA5NSw5IEBAIHN0YXRp YyBpbnQgcHRfYmxrX3Byb2NlZWRfbm9fZXZlbnRfY2FjaGVkKHN0cnVjdCBwdF9ibG9ja19kZWNv ZGVyICpkZWNvZGVyLAotIAkJfQotIAotIAkJLyogRmFsbCB0aHJvdWdoIHRvIHB0YnFfZGVjb2Rl LiAqLwotKyNpZiBfX0dOVUNfXyA+PSA3Ci0rCQlfX2F0dHJpYnV0ZV9fICgoZmFsbHRocm91Z2gp KTsKLSsjZW5kaWYKLSAKLSAJY2FzZSBwdGJxX2RlY29kZTogewotIAkJc3RydWN0IHB0X2luc25f ZXh0IGlleHQ7Cg==