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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Drop ia64 patches and .spec support. Date: Sat, 27 Jun 2026 23:56:18 GMT Message-ID: <178260457844.1.2212969911785025386.rpms-gdb-b6e7beb35ce0@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: b6e7beb35ce00e9b49646c5a0f2a0269df3d1a58 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogYjZlN2JlYjM1Y2UwMGU5YjQ5NjQ2YzVhMGYy YTAyNjlkZjNkMWE1OApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxMy0wOC0wMlQyMjo0OTo1NiswMjowMApTdGF0cyAgOiArOC8t Njg5IGluIDggZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9y cG1zL2dkYi9jL2I2ZTdiZWIzNWNlMDBlOWI0OTY0NmM1YTBmMmEwMjY5ZGYzZDFhNTg/YnJhbmNo PWdkYi0xNy4yLXJlYmFzZS1mNDQKCkxvZzoKRHJvcCBpYTY0IHBhdGNoZXMgYW5kIC5zcGVjIHN1 cHBvcnQuCgotLS0KZGlmZiAtLWdpdCBhL2dkYi02LjMtZ2NvcmUtdGhyZWFkLTIwMDUwMjA0LnBh dGNoIGIvZ2RiLTYuMy1nY29yZS10aHJlYWQtMjAwNTAyMDQucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDMxZWNiYmEuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuMy1nY29yZS10aHJl YWQtMjAwNTAyMDQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0yMDA1LTAy LTA3ICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KLQotICAgICAgICAqIGxp bnV4LW5hdC5jIChsaW51eF9uYXRfeGZlcl9tZW1vcnkpOiBEb24ndCB1c2UKLSAgICAgICAgbGlu dXhfcHJvY194ZmVyX21lbW9yeSBmb3IgaWE2NC4KLQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvZ2RiL2xpbnV4LW5hdC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5v cmlnL2dkYi9saW51eC1uYXQuYwkyMDA5LTA4LTA0IDA2OjI5OjQ3LjAwMDAwMDAwMCArMDIwMAot KysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2xpbnV4LW5hdC5jCTIwMDktMDgtMDQgMDY6Mjk6 NTUuMDAwMDAwMDAwICswMjAwCi1AQCAtNDQ5NSwxMCArNDQ5NSwxNSBAQCBsaW51eF94ZmVyX3Bh cnRpYWwgKHN0cnVjdCB0YXJnZXRfb3BzICpvCi0gCW9mZnNldCAmPSAoKFVMT05HRVNUKSAxIDw8 IGFkZHJfYml0KSAtIDE7Ci0gICAgIH0KLSAKLSsjaWZuZGVmIE5BVElWRV9YRkVSX1VOV0lORF9U QUJMRQotKyAgLyogRklYTUU6IEZvciBpYTY0LCB3ZSBjYW5ub3QgY3VycmVudGx5IHVzZSBsaW51 eF9wcm9jX3hmZXJfbWVtb3J5Ci0rCSAgICBmb3IgYWNjZXNzaW5nIHRocmVhZCBzdG9yYWdlLiAg UmV2ZXJ0IHdoZW4gQnVnemlsbGEgMTQ3NDM2Ci0rCSAgICBpcyBmaXhlZC4gICovCi0gICB4ZmVy ID0gbGludXhfcHJvY194ZmVyX3BhcnRpYWwgKG9wcywgb2JqZWN0LCBhbm5leCwgcmVhZGJ1Ziwg d3JpdGVidWYsCi0gCQkJCSAgb2Zmc2V0LCBsZW4pOwotICAgaWYgKHhmZXIgIT0gMCkKLSAgICAg cmV0dXJuIHhmZXI7Ci0rI2VuZGlmCi0gCi0gICByZXR1cm4gc3VwZXJfeGZlcl9wYXJ0aWFsIChv cHMsIG9iamVjdCwgYW5uZXgsIHJlYWRidWYsIHdyaXRlYnVmLAotIAkJCSAgICAgb2Zmc2V0LCBs ZW4pOwoKZGlmZiAtLWdpdCBhL2dkYi02LjMtaWE2NC1nY29yZS1wYWdlMC0yMDA1MDQyMS5wYXRj aCBiL2dkYi02LjMtaWE2NC1nY29yZS1wYWdlMC0yMDA1MDQyMS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggYzJjMDAyNi4uMDAwMDAwMAotLS0gYS9nZGItNi4zLWlhNjQtZ2Nv cmUtcGFnZTAtMjAwNTA0MjEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1J bmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvZ2NvcmUuYwotPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjUuNTAuMjAxMzAxMTgub3JpZy9nZGIvZ2NvcmUuYwkyMDEzLTAxLTE4IDIzOjUwOjU2LjY5 ODU3MzE4NiArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL2djb3JlLmMJMjAxMy0w MS0xOCAyMzo1MjoyOS42MzY3MDUwNDAgKzAxMDAKLUBAIC01NDksOCArNTQ5LDE0IEBAIGdjb3Jl X2NvcHlfY2FsbGJhY2sgKGJmZCAqb2JmZCwgYXNlY3Rpb24KLSAgICAgICBpZiAoc2l6ZSA+IHRv dGFsX3NpemUpCi0gCXNpemUgPSB0b3RhbF9zaXplOwotIAotKyAgICAgIC8qIFdhcm4gaWYgcmVh ZCBlcnJvciBvY2N1cnMgZXhjZXB0IGlmIHdlIHdlcmUgdHJ5aW5nIHRvIHJlYWQgdGhlCi0rCSBm aXJzdCBwYWdlIGZvciBpYTY0LiAgVGhlIGZpcnN0IHBhZ2UgaXMgbWFya2VkIHJlYWRhYmxlLCBi dXQgaXQgY2Fubm90Ci0rCSBiZSByZWFkLiAgKi8KLSAgICAgICBpZiAodGFyZ2V0X3JlYWRfbWVt b3J5IChiZmRfc2VjdGlvbl92bWEgKG9iZmQsIG9zZWMpICsgb2Zmc2V0LAotLQkJCSAgICAgIG1l bWh1bmssIHNpemUpICE9IDApCi0rCQkJICAgICAgbWVtaHVuaywgc2l6ZSkgIT0gMAotKwkgICYm IChzdHJjbXAgKGdkYmFyY2hfYmZkX2FyY2hfaW5mbyAodGFyZ2V0X2dkYmFyY2ggKCkpLT5hcmNo X25hbWUsCi0rCQkgICAgICAiaWE2NCIpCi0rCSAgICAgIHx8IGJmZF9zZWN0aW9uX3ZtYSAob2Jm ZCwgb3NlYykgIT0gMCkpCi0gCXsKLSAJICB3YXJuaW5nIChfKCJNZW1vcnkgcmVhZCBmYWlsZWQg Zm9yIGNvcmVmaWxlICIKLSAJCSAgICAgInNlY3Rpb24sICVzIGJ5dGVzIGF0ICVzLiIpLAoKZGlm ZiAtLWdpdCBhL2dkYi02LjMtaWE2NC1nY29yZS1zcGVlZHVwLTIwMDUwNzE0LnBhdGNoIGIvZ2Ri LTYuMy1pYTY0LWdjb3JlLXNwZWVkdXAtMjAwNTA3MTQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGY5MDJlNjIuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuMy1pYTY0LWdjb3JlLXNw ZWVkdXAtMjAwNTA3MTQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotMjAw NS0wNy0xNCAgSmVmZiBKb2huc290biAgPGpqb2huc3RuQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4 LW5hdC5jIChsaW51eF9uYXRfeGZlcl9tZW1vcnkpOiBJbmNvcnBvcmF0ZSBGdWppdHN1Ci0Jd29y ay1hcm91bmQgdG8gdXNlIC9wcm9jL21lbSBmb3Igc3RvcmFnZSwgYnV0IHRvIGZhbGwtYmFjawot CXRvIFBUUkFDRSBmb3IgaWE2NCByc2UgcmVnaXN0ZXIgYXJlYXMuCi0JKiBpYTY0LWxpbnV4LW5h dC5jIChpYTY0X3JzZV9zbG90X251bSk6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCi0JKGlhNjRfcnNl X3NraXBfcmVncyk6IERpdHRvLgotCShpYTY0X2xpbnV4X2NoZWNrX3N0YWNrX3JlZ2lvbik6IE5l dyBmdW5jdGlvbi4KLQkKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9saW51eC1uYXQu YwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvbGludXgtbmF0 LmMJMjAwOS0wOC0wNCAwNjoyOTo1NS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIw MDkwODAzL2dkYi9saW51eC1uYXQuYwkyMDA5LTA4LTA0IDA2OjMwOjUzLjAwMDAwMDAwMCArMDIw MAotQEAgLTQ0OTUsMTUgKzQ0OTUsMzggQEAgbGludXhfeGZlcl9wYXJ0aWFsIChzdHJ1Y3QgdGFy Z2V0X29wcyAqbwotIAlvZmZzZXQgJj0gKChVTE9OR0VTVCkgMSA8PCBhZGRyX2JpdCkgLSAxOwot ICAgICB9Ci0gCi0tI2lmbmRlZiBOQVRJVkVfWEZFUl9VTldJTkRfVEFCTEUKLS0gIC8qIEZJWE1F OiBGb3IgaWE2NCwgd2UgY2Fubm90IGN1cnJlbnRseSB1c2UgbGludXhfcHJvY194ZmVyX21lbW9y eQotLQkgICAgZm9yIGFjY2Vzc2luZyB0aHJlYWQgc3RvcmFnZS4gIFJldmVydCB3aGVuIEJ1Z3pp bGxhIDE0NzQzNgotLQkgICAgaXMgZml4ZWQuICAqLwotICAgeGZlciA9IGxpbnV4X3Byb2NfeGZl cl9wYXJ0aWFsIChvcHMsIG9iamVjdCwgYW5uZXgsIHJlYWRidWYsIHdyaXRlYnVmLAotIAkJCQkg IG9mZnNldCwgbGVuKTsKLSAgIGlmICh4ZmVyICE9IDApCi0tICAgIHJldHVybiB4ZmVyOwotKyAg ICB7Ci0rI2lmZGVmIE5BVElWRV9YRkVSX1VOV0lORF9UQUJMRQotKyAgICAgIHN0cnVjdCBtZW1f cmVnaW9uIHJhbmdlOwotKyAgICAgIHJhbmdlLmxvID0gbWVtYWRkcjsKLSsgICAgICByYW5nZS5o aSA9IG1lbWFkZHIgKyBsZW47Ci0rCi0rICAgICAgLyogRklYTUU6IEZvciBpYTY0LCB3ZSBjYW5u b3QgY3VycmVudGx5IHVzZQotKwkgbGludXhfcHJvY194ZmVyX3BhcnRpYWwgZm9yIGFjY2Vzc2lu ZyByc2UgcmVnaXN0ZXIgc3RvcmFnZS4KLSsJIFJldmVydCB3aGVuIEJ1Z3ppbGxhIDE0NzQzNiBp cyBmaXhlZC4gICovCi0rI2lmZGVmIE5BVElWRV9YRkVSX1VOV0lORF9UQUJMRQotKyAgICAgIGV4 dGVybiBpbnQgaWE2NF9saW51eF9jaGVja19zdGFja19yZWdpb24gKHN0cnVjdCBsd3BfaW5mbyAq bHdwLAotKwkJCQkJCXZvaWQgKnJhbmdlKTsKLSsjZW5kaWYKLSsgICAgICBpZiAoaXRlcmF0ZV9v dmVyX2x3cHMgKGlhNjRfbGludXhfY2hlY2tfc3RhY2tfcmVnaW9uLCAmcmFuZ2UpICE9IE5VTEwp Ci0rCXsgLyogVGhpcyByZWdpb24gY29udGFpbnMgaWE2NCByc2UgcmVnaXN0ZXJzLCB3ZSBoYXZl IHRvIHJlLXJlYWQuICAqLwotKwkgIGludCB4eGZlcjsKLSsKLSsJICAvKiBSZS1yZWFkIHJlZ2lz dGVyIHN0YWNrIGFyZWEuICAqLwotKwkgIHh4ZmVyID0gc3VwZXJfeGZlcl9wYXJ0aWFsIChvcHMs IG9iamVjdCwgYW5uZXgsCi0rCQkJCSAgICAgIHJlYWRidWYgKyAocmFuZ2UubG8gLSBtZW1hZGRy KSwKLSsJCQkJICAgICAgd3JpdGVidWYgKyAocmFuZ2UubG8gLSBtZW1hZGRyKSwKLSsJCQkJICAg ICAgb2Zmc2V0ICsgKHJhbmdlLmxvIC0gbWVtYWRkciksCi0rCQkJCSAgICAgIHJhbmdlLmhpIC0g cmFuZ2UubG8pOwotKwkgIGlmICh4eGZlciA9PSAwKQotKwkgICAgeGZlciA9IDA7Ci0rCX0KLSAj ZW5kaWYKLSsgICAgICByZXR1cm4geGZlcjsKLSsgICAgfQotIAotICAgcmV0dXJuIHN1cGVyX3hm ZXJfcGFydGlhbCAob3BzLCBvYmplY3QsIGFubmV4LCByZWFkYnVmLCB3cml0ZWJ1ZiwKLSAJCQkg ICAgIG9mZnNldCwgbGVuKTsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pYTY0LWxp bnV4LW5hdC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9p YTY0LWxpbnV4LW5hdC5jCTIwMDktMDItMjMgMDE6MDM6NDkuMDAwMDAwMDAwICswMTAwCi0rKysg Z2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvaWE2NC1saW51eC1uYXQuYwkyMDA5LTA4LTA0IDA2OjMw OjUzLjAwMDAwMDAwMCArMDIwMAotQEAgLTgwOSw2ICs4MDksNjQgQEAgaWE2NF9saW51eF94ZmVy X3BhcnRpYWwgKHN0cnVjdCB0YXJnZXRfbwotIAotIHZvaWQgX2luaXRpYWxpemVfaWE2NF9saW51 eF9uYXQgKHZvaWQpOwotIAotKy8qCi0rICogTm90ZTogdGFrZW4gZnJvbSBpYTY0X3RkZXAuYwot KyAqCi0rICovCi0rCi0rc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZwotK2lhNjRfcnNl X3Nsb3RfbnVtICh1bnNpZ25lZCBsb25nIGFkZHIpCi0rewotKyAgcmV0dXJuIChhZGRyID4+IDMp ICYgMHgzZjsKLSt9Ci0rCi0rLyogU2tpcCBvdmVyIGEgZGVzaWduYXRlZCBudW1iZXIgb2YgcmVn aXN0ZXJzIGluIHRoZSBiYWNraW5nCi0rICAgc3RvcmUsIHJlbWVtYmVyaW5nIGV2ZXJ5IDY0dGgg cG9zaXRpb24gaXMgZm9yIE5BVC4gICovCi0rc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9u ZwotK2lhNjRfcnNlX3NraXBfcmVncyAodW5zaWduZWQgbG9uZyAgYWRkciwgbG9uZyBudW1fcmVn cykKLSt7Ci0rICBsb25nIGRlbHRhID0gaWE2NF9yc2Vfc2xvdF9udW0oYWRkcikgKyBudW1fcmVn czsKLSsKLSsgIGlmIChudW1fcmVncyA8IDApCi0rICAgIGRlbHRhIC09IDB4M2U7Ci0rICByZXR1 cm4gYWRkciArICgobnVtX3JlZ3MgKyBkZWx0YS8weDNmKSA8PCAzKTsKLSt9Ci0rCi0rLyoKLSsg KiBDaGVjayBtZW1fcmVnaW9uIGlzIHN0YWNrIG9yIG5vdC4gSWYgc3RhY2ssIC9wcm9jLzxwaWQ+ L21lbSBjYW5ub3QgcmV0dXJuIAotKyAqIGV4cGVjdGVkIHZhbHVlLgotKyAqLwotK2ludCBpYTY0 X2xpbnV4X2NoZWNrX3N0YWNrX3JlZ2lvbihzdHJ1Y3QgbHdwX2luZm8gKnRpLCBzdHJ1Y3QgbWVt X3JlZ2lvbiAqcmFuZ2UpCi0rewotKwlDT1JFX0FERFIgYWRkcjsKLSsJaW50IGVycm9yOwotKwl1 bnNpZ25lZCBsb25nIGJzcCwgY2ZtLCBic3BzdG9yZTsKLSsJbG9uZyBzb2Y7Ci0rCXBpZF90IHBp ZCA9IHB0aWRfZ2V0X2x3cCh0aS0+cHRpZCk7Ci0rCWJzcCA9IHB0cmFjZShQVFJBQ0VfUEVFS1VT RVIsIHBpZCwgUFRfQVJfQlNQICxOVUxMKTsKLSsJaWYgKGJzcCA9PSAodW5zaWduZWQgbG9uZykt MSkgewotKwkJcmV0dXJuIDE7Ci0rCX0KLSsJLyogc3RhY2sgaXMgYWxsb2NhdGVkIGJ5IG9uZS1z ZWdtZW50LCBub3Qgc2VwYXJhdGVkIGludG8gc2V2ZXJhbCBzZWdtZW50cy4KLSsJICAgU28sIHdl IG9ubHkgaGF2ZSB0byBjaGVjayB3aGV0aGVyIGJzcCBpcyBpbiAqcmFuZ2UqIG9yIG5vdC4gKi8g CQkKLSsJaWYoKHJhbmdlLT5sbyA8PSBic3ApICYmIChic3AgPD0gcmFuZ2UtPmhpKSkgewotKwkJ YnNwc3RvcmUgPSBwdHJhY2UoUFRSQUNFX1BFRUtVU0VSLCBwaWQsIFBUX0FSX0JTUFNUT1JFLCBO VUxMKTsKLSsJCWNmbSA9IHB0cmFjZShQVFJBQ0VfUEVFS1VTRVIsIHBpZCwgUFRfQ0ZNLCBOVUxM KTsKLSsJCXNvZiA9IGNmbSAmIDB4M2Y7Ci0rCQlic3AgPSBpYTY0X3JzZV9za2lwX3JlZ3MoYnNw LCAtc29mKTsKLSsJCXJhbmdlLT5sbyA9IGJzcHN0b3JlOwotKwkJcmFuZ2UtPmhpID0gYnNwOwot KwkJLyogd2UgaGF2ZSB0byBjaGVjayB0aGUgc2l6ZSBvZiBkaXJ0eSByZWdpc3RlciBzdGFjayBh cmVhICovCi0rCQkvKgotKwkJZnByaW50Zl91bmZpbHRlcmVkKGdkYl9zdGRsb2csICI8JWQ+IDwl cD4gIDwlbHg+IDwlcD4gPCVwPlxuIiwKLSsJCQkJICAgcGlkLCBic3AsIHNvZiwgcmFuZ2UtPmxv LCByYW5nZS0+aGkpOwotKwkJKi8KLSsJCXJldHVybiAxOwotKwl9Ci0rCQotKwlyZXR1cm4gMDsK LSt9Ci0rCi0gdm9pZAotIF9pbml0aWFsaXplX2lhNjRfbGludXhfbmF0ICh2b2lkKQotIHsKCmRp ZmYgLS1naXQgYS9nZGItNi4zLWlhNjQtaW5mby1mcmFtZS1maXgtMjAwNTA3MjUucGF0Y2ggYi9n ZGItNi4zLWlhNjQtaW5mby1mcmFtZS1maXgtMjAwNTA3MjUucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDJlYmFiOWUuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuMy1pYTY0LWluZm8t ZnJhbWUtZml4LTIwMDUwNzI1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAgQEAK LTIwMDUtMDctMjUgIEplZmYgSm9obnN0bm8gIDxqam9obnN0bkByZWRoYXQuY29tPgotCi0JKiBs aWJ1bndpbmQtZnJhbWUuYyAobGlidW53aW5kX2ZyYW1lX3ByZXZfcmVnaXN0ZXIpOiBDaGVjayB2 YWx1ZXAKLQlpcyBub3QgTlVMTCBiZWZvcmUgY29weWluZyBjdXJzb3IgYWRkcmVzcyBpbnRvIGl0 LgotCQotdGVzdHN1aXRlOgotMjAwNS0wNy0yNSAgSmVmZiBKb2huc3RubyAgPGpqb2huc3RuQHJl ZGhhdC5jb20+Ci0KLQkqIGdkYi5hcmNoL2lhNjQtc2lndHJhbXAuZXhwOiBOZXcgdGVzdC4KLQkq IGdkYi5hcmNoL2lhNjQtc2lndHJhbXAuYzogRGl0dG8uCi0KLTIwMDgtMDItMjQgIEphbiBLcmF0 b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCVBvcnQgdG8gR0RCLTYuOHBy ZS4gIChPbmx5IHRoZSB0ZXN0Y2FzZSBoYXMgcmVtYWluZWQuKQotCi0tLS0gZ2RiLTYuMy9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL2lhNjQtc2lndHJhbXAuYy5maXgJMjAwNS0wNy0yNSAxNjo0Mjo0 Ni4wMDAwMDAwMDAgLTA0MDAKLSsrKyBnZGItNi4zL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaWE2 NC1zaWd0cmFtcC5jCTIwMDUtMDctMjUgMTY6NDI6MDguMDAwMDAwMDAwIC0wNDAwCi1AQCAtMCww ICsxLDIzIEBACi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2luY2x1ZGUgPHNpZ25hbC5oPgotKwot K2ludCAqbDsKLSsKLSt2b2lkIHggKGludCBzaWcpCi0rewotKyAgcHJpbnRmICgiaW4gc2lnbmFs IGhhbmRsZXIgZm9yIHNpZ25hbCAlZFxuIiwgc2lnKTsKLSt9Ci0rCi0raW50IG1haW4oKQotK3sK LSsgIGludCBrOwotKwotKyAgc2lnbmFsIChTSUdTRUdWLCAmeCk7Ci0rCi0rICBrID0gKmw7Ci0r Ci0rICBwcmludGYgKCJrIGlzICVkXG4iLCBrKTsKLSsgCi0rICByZXR1cm4gMDsKLSt9Ci0rCi0t LS0gZ2RiLTYuMy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2lhNjQtc2lndHJhbXAuZXhwLmZpeAky MDA1LTA3LTI1IDE2OjQyOjUwLjAwMDAwMDAwMCAtMDQwMAotKysrIGdkYi02LjMvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYXJjaC9pYTY0LXNpZ3RyYW1wLmV4cAkyMDA1LTA3LTI1IDE2OjQyOjAxLjAwMDAw MDAwMCAtMDQwMAotQEAgLTAsMCArMSw2MyBAQAotKyMgICBDb3B5cmlnaHQgMjAwNSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0r IyAKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIyAKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyMgRm91 bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAy MTExLTEzMDcsIFVTQS4gIAotKwotKyMgUGxlYXNlIGVtYWlsIGFueSBidWdzLCBjb21tZW50cywg YW5kL29yIGFkZGl0aW9ucyB0byB0aGlzIGZpbGUgdG86Ci0rIyBidWctZ2RiQHByZXAuYWkubWl0 LmVkdQotKwotKyMgVGhpcyBmaWxlIHdhcyB3cml0dGVuIGJ5IEplZmYgSm9obnN0b24gKGpqb2hu c3RuQHJlZGhhdC5jb20pCi0rCi0raWYgIVtpc3RhcmdldCAiaWE2NC0qLSoiXSB0aGVuIHsKLSsg ICAgcmV0dXJuCi0rfQotKwotK3NldCB0ZXN0ZmlsZSAiaWE2NC1zaWd0cmFtcCIKLStzZXQgc3Jj ZmlsZSAke3Rlc3RmaWxlfS5jCi0rc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rl c3RmaWxlfQotKwotK2lmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3Ny Y2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVidWcgYWRkaXRpb25hbF9mbGFncz0t d31dICE9ICIiIH0gewotKyAgICBnZGJfc3VwcHJlc3NfZW50aXJlX2ZpbGUgIlRlc3RjYXNlIGNv bXBpbGUgZmFpbGVkLCBzbyBhbGwgdGVzdHMgaW4gdGhpcyBmaWxlIHdpbGwgYXV0b21hdGljYWxs eSBmYWlsLiIKLSt9Ci0rCi0raWYgW2dldF9jb21waWxlcl9pbmZvICR7YmluZmlsZX1dIHsKLSsg ICAgcmV0dXJuIC0xCi0rfQotKwotK2dkYl9leGl0Ci0rc2V0IG1hdGNoX21heF9vbGQgW21hdGNo X21heF0KLSttYXRjaF9tYXggLWQgMTAwMDAwMAotK2dkYl9zdGFydAotK21hdGNoX21heCAtZCAk bWF0Y2hfbWF4X29sZAotK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgotK2dk Yl9sb2FkICR7YmluZmlsZX0KLSsKLStpZiAhW3J1bnRvX21haW5dIHRoZW4gewotKyAgICBmYWls ICJDYW4ndCBydW4gdG8gbWFpbiIKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0rZ2RiX3Rlc3QgImhh bmRsZSBTSUdTRUdWIiAiU0lHU0VHVi4qWWVzLipZZXMuKlllcy4qU2VnbWVudGF0aW9uIGZhdWx0 IgotK2dkYl90ZXN0ICJuZXh0IiAiIiAiZmlyc3QgbmV4dCIKLStnZGJfdGVzdCAibmV4dCIgIlBy b2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YuKiIgImdldHRpbmcgU0lHU0VHViIKLStnZGJf YnJlYWtwb2ludCAieCIKLStnZGJfdGVzdCAiY29udGludWUiICJCcmVha3BvaW50Lip4LioiICJj b250aW51ZSB0byB4IgotKwotK2dkYl90ZXN0ICJmIDEiICIuKnNpZ25hbCBoYW5kbGVyIGNhbGxl ZC4qIiAiZnJhbWUgMSIKLSsKLSsjIGdkYi03LjArIG5vIGxvbmdlciBwcmludHMgdGhlIHBzZXVk byByZWdpc3RlcnMgYXMgdGhleSBhcmUgY29tcHV0ZWQuCi0rIyBmcmFtZV9pbmZvIHNheXM6IC8q IEZvciBtb21lbnQsIG9ubHkgZGlzcGxheSByZWdpc3RlcnMgdGhhdCB3ZXJlIHNhdmVkIG9uIHRo ZQotKyMgICAgICAgICAgICAgICAgICAgICBzdGFjay4gICovCi0rZ2RiX3Rlc3QgInNldCBkZWJ1 ZyBmcmFtZSAxIgotK2dkYl90ZXN0ICJpbmZvIGZyYW1lIiAiU3RhY2sgbGV2ZWwgMSwgLipmcmFt ZV91bndpbmRfcmVnaXN0ZXJfdmFsdWUgXFwoZnJhbWU9MSxyZWdudW09NzUwXFwocDYzXFwpLFxb XlxyXG5cXSpcclxuXFteXHJcblxdKi0+IGNvbXB1dGVkIGJ5dGVzPS4qIiAiaW5mbyBzaWd0cmFt cCBmcmFtZSIKCmRpZmYgLS1naXQgYS9nZGItNi4zLWlhNjQtc2lnaWxsLTIwMDUxMTE1LnBhdGNo IGIvZ2RiLTYuMy1pYTY0LXNpZ2lsbC0yMDA1MTExNS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggYmY4YTFmMS4uMDAwMDAwMAotLS0gYS9nZGItNi4zLWlhNjQtc2lnaWxsLTIw MDUxMTE1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotMjAwNS0xMS0xNSAg SmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4LXRocmVhZC1k Yi5jICh0aHJlYWRfZGJfd2FpdCk6IERvbid0IGJvdGhlciBjb250aW51aW5nIGlmCi0JdGhlIHdh aXQgcmVzdWx0IGluZGljYXRlcyB0aGUgcHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggYSBzaWduYWwu Ci0JKiBsaW51eC1uYXQuYyAobGludXhfbmF0X3dhaXQpOiBGb3IgU0lHSUxMIGFuZCBTSUdUUkFQ LCBkb24ndAotCXRocm93IGF3YXkgdGhlIGV2ZW50IGlmIHRoZSB1c2VyIGhhcyBzcGVjaWZpZWQg bm9zdG9wIG5vcHJpbnQuCi0KLWdkYi90ZXN0c3VpdGU6Ci0KLTIwMDUtMTEtMTUgIEplZmYgSm9o bnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgotCi0JKiBnZGIuYXJjaC9pYTY0LXNpZ2lsbC5j OiBOZXcgdGVzdC4KLQkqIGdkYi5hcmNoL2lhNjQtc2lnaWxsLmV4cDogRGl0dG8uCi0KLUluZGV4 OiBnZGItNy4zLjUwLjIwMTEwNzIyL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaWE2NC1zaWdpbGwu ZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMy41MC4yMDExMDcyMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNo L2lhNjQtc2lnaWxsLmV4cAkyMDExLTA3LTIyIDE5OjE2OjEzLjAwMDAwMDAwMCArMDIwMAotQEAg LTAsMCArMSw0OSBAQAotKyMgICBDb3B5cmlnaHQgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IK LSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIyAKLSsjIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCi0rIyAKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsg aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5jLiwg NTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4g IAotKwotKyMgUGxlYXNlIGVtYWlsIGFueSBidWdzLCBjb21tZW50cywgYW5kL29yIGFkZGl0aW9u cyB0byB0aGlzIGZpbGUgdG86Ci0rIyBidWctZ2RiQHByZXAuYWkubWl0LmVkdQotKwotKyMgVGhp cyBmaWxlIHdhcyB3cml0dGVuIGJ5IEplZmYgSm9obnN0b24gKGpqb2huc3RuQHJlZGhhdC5jb20p Ci0rCi0raWYgIVtpc3RhcmdldCAiaWE2NC0qLSoiXSB0aGVuIHsKLSsgICAgcmV0dXJuCi0rfQot KwotK3NldCB0ZXN0ZmlsZSAiaWE2NC1zaWdpbGwiCi0rc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0u YwotK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KLSsKLSsjIERl bGliZXJhdGVseSBjb21waWxlIHdpdGggcHRocmVhZHMsIGV2ZW4gdGhvdWdoIHRlc3QgaXMgc2lu Z2xlLXRocmVhZGVkLgotKyMgV2Ugd2FudCB0byBmb3JjZSBnZGIgdGhyZWFkIGNvZGUgdG8gYmUg ZXhlcmNpc2VkLgotK2lmICB7IFtnZGJfY29tcGlsZV9wdGhyZWFkcyAiJHtzcmNkaXJ9LyR7c3Vi ZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVidWcgYWRkaXRpb25h bF9mbGFncz0td31dICE9ICIiIH0gewotKyAgICBnZGJfc3VwcHJlc3NfZW50aXJlX2ZpbGUgIlRl c3RjYXNlIGNvbXBpbGUgZmFpbGVkLCBzbyBhbGwgdGVzdHMgaW4gdGhpcyBmaWxlIHdpbGwgYXV0 b21hdGljYWxseSBmYWlsLiIKLSt9Ci0rCi0raWYgW2dldF9jb21waWxlcl9pbmZvICR7YmluZmls ZX1dIHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2dkYl9leGl0Ci0rZ2RiX3N0YXJ0Ci0rZ2Ri X3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCi0rZ2RiX2xvYWQgJHtiaW5maWxlfQot KwotKyMgV2Ugc2V0IHVwIFNJR0lMTCBub3N0b3AsIG5vcHJpbnQsIHBhc3MgYW5kIHRoZW4gcnVu IHRoZSBwcm9ncmFtLgotKyMgV2UgZXhwZWN0IHRvIGp1c3Qgc2VlIGEgbm9ybWFsIHJ1bi4KLStn ZGJfdGVzdCAiaGFuZGxlIFNJR0lMTCBub3N0b3Agbm9wcmludCIgIlNJR0lMTC4qTm8uKk5vLipZ ZXMuKiIgImhhbmRsZSBzaWdpbGwiCi0rZ2RiX3Rlc3QgInJ1biIgIlN0YXJ0aW5nIHByb2dyYW0u KmlhNjQtc2lnaWxsLipcW05ldyB0aHJlYWQuKlxdLipoZWxsbyB3b3JsZC4qUHJvZ3JhbSBleGl0 ZWQgbm9ybWFsbHkuIiAicnVuIHRvIGV4aXQiCi0rIAotSW5kZXg6IGdkYi03LjMuNTAuMjAxMTA3 MjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pYTY0LXNpZ2lsbC5jCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu My41MC4yMDExMDcyMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2lhNjQtc2lnaWxsLmMJMjAxMS0w Ny0yMiAxOToxNjoxMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsOCBAQAotKyNpbmNsdWRl IDxzdGRpby5oPgotKwotK2ludCBtYWluKCkKLSt7Ci0rICBwcmludGYgKCJoZWxsbyB3b3JsZFxu Iik7Ci0rICByZXR1cm4gMDsKLSt9Ci0rCi1JbmRleDogZ2RiLTcuMy41MC4yMDExMDcyMi9nZGIv bGludXgtbmF0LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4zLjUwLjIwMTEwNzIyLm9yaWcvZ2Ri L2xpbnV4LW5hdC5jCTIwMTEtMDctMjIgMTk6MTU6MDUuMDAwMDAwMDAwICswMjAwCi0rKysgZ2Ri LTcuMy41MC4yMDExMDcyMi9nZGIvbGludXgtbmF0LmMJMjAxMS0wNy0yMiAxOToxNjoxMy4wMDAw MDAwMDAgKzAyMDAKLUBAIC0zNzMzLDcgKzM3MzMsOCBAQCByZXRyeToKLSAgICAgIHRocmVhZHMg Y2FuIGJlIGEgYml0IHRpbWUtY29uc3VtaW5nIHNvIGlmIHdlIHdhbnQgZGVjZW50Ci0gICAgICBw ZXJmb3JtYW5jZSB3aXRoIGhlYXZpbHkgbXVsdGktdGhyZWFkZWQgcHJvZ3JhbXMsIGVzcGVjaWFs bHkgd2hlbgotICAgICAgdGhleSdyZSB1c2luZyBhIGhpZ2ggZnJlcXVlbmN5IHRpbWVyLCB3ZSdk IGJldHRlciBhdm9pZCBpdCBpZiB3ZQotLSAgICAgY2FuLiAgKi8KLSsgICAgIGNhbi4gIEZvciBw b3NzaWJsZSB0cmFwIHNpZ25hbHMgbGlrZSBTSUdUUkFQIGFuZCBTSUdJTEwsIGRvbid0Ci0rICAg ICBhdm9pZCByZXBvcnRpbmcuICAqLwotIAotICAgaWYgKFdJRlNUT1BQRUQgKHN0YXR1cykpCi0g ICAgIHsKCmRpZmYgLS1naXQgYS9nZGItNi4zLWlhNjQtc2lndHJhbXAtZnJhbWUtMjAwNTA3MDgu cGF0Y2ggYi9nZGItNi4zLWlhNjQtc2lndHJhbXAtZnJhbWUtMjAwNTA3MDgucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2YTc3ODkuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuMy1p YTY0LXNpZ3RyYW1wLWZyYW1lLTIwMDUwNzA4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTU4 ICswLDAgQEAKLTIwMDUtMDctMDggIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29t PgotCi0JKiBpYTY0LXRkZXAuYyAoaWE2NF9zaWd0cmFtcF9mcmFtZV9wcmV2X3JlZ2lzdGVyKTog QnVpbGQKLQlwc2V1ZG8tcmVnaXN0ZXJzIHRoZSBzYW1lIGFzIGlhNjRfcHNldWRvX3JlZ2lzdGVy X3JlYWQuCi0KLTIwMDgtMDQtMTYgIFlpIFpoYW4gIDx5aS56aGFuQGludGVsLmNvbT4KLQotCSog aWE2NC10ZGVwLmMgKGlhNjRfc2lndHJhbXBfZnJhbWVfcHJldl9yZWdpc3Rlcik6IEZpeCBhbgot CUlTTyBDIGNvbXBsaWFuY2UgY29tcGlsYXRpb24gZXJyb3IuCi0KLTIwMDgtMDItMTIgIEphbiBL cmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCVBvcnQgdG8gZ2RiLTYu OC41MC4yMDA4MTEyOCwgZm9sbG93IHRoZSB1cHN0cmVhbSBjaGFuZ2U6Ci0JaHR0cDovL3NvdXJj ZXdhcmUub3JnL2NnaS1iaW4vY3Zzd2ViLmNnaS9zcmMvZ2RiL2lhNjQtdGRlcC5jLmRpZmY/Y3Zz cm9vdD1zcmMmcjE9MS4xNzYmcjI9MS4xNzcKLQotSW5kZXg6IGdkYi02LjguNTAuMjAwODExMjgv Z2RiL2lhNjQtdGRlcC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA4MTEyOC5vcmln L2dkYi9pYTY0LXRkZXAuYwkyMDA4LTExLTI2IDA2OjI3OjQ4LjAwMDAwMDAwMCArMDEwMAotKysr IGdkYi02LjguNTAuMjAwODExMjgvZ2RiL2lhNjQtdGRlcC5jCTIwMDgtMTItMDIgMTk6MDQ6MzIu MDAwMDAwMDAwICswMTAwCi1AQCAtMjEwNyw2ICsyMTA3LDk0IEBAIGlhNjRfc2lndHJhbXBfZnJh bWVfcHJldl9yZWdpc3RlciAoc3RydWMKLSAgICAgICByZXR1cm4gZnJhbWVfdW53aW5kX2dvdF9j b25zdGFudCAodGhpc19mcmFtZSwgcmVnbnVtLCBwYyk7Ci0gICAgIH0KLSAKLSsgIC8qIFJlZCBI YXQgcGF0Y2ggYmVnaW4uICAqLwotKyAgZWxzZSBpZiAoSUE2NF9OQVQwX1JFR05VTSA8PSByZWdu dW0gJiYgcmVnbnVtIDw9IElBNjRfTkFUMzFfUkVHTlVNKQotKyAgICB7Ci0rICAgICAgLyogTkFU IHBzZXVkbyByZWdpc3RlcnMgMC0zMTogZ2V0IHRoZW0gZnJvbSBVTkFULgotKyAgICAgICAqICJj b3BpZWQiIGZyb20gaWE2NF9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCgpICovCi0rICAgICAgVUxPTkdF U1QgdW5hdE5fdmFsOwotKyAgICAgIFVMT05HRVNUIHVuYXQ7Ci0rICAgICAgcmVhZF9tZW1vcnkg KGNhY2hlLT5zYXZlZF9yZWdzW0lBNjRfVU5BVF9SRUdOVU1dLCAoY2hhciAqKSAmdW5hdCwKLSsJ CSAgIHJlZ2lzdGVyX3NpemUgKHRhcmdldF9nZGJhcmNoLCBJQTY0X1VOQVRfUkVHTlVNKSk7Ci0r ICAgICAgdW5hdE5fdmFsID0gKHVuYXQgJiAoMUxMIDw8IChyZWdudW0gLSBJQTY0X05BVDBfUkVH TlVNKSkpICE9IDA7Ci0rICAgICAgcmV0dXJuIGZyYW1lX3Vud2luZF9nb3RfY29uc3RhbnQgKHRo aXNfZnJhbWUsIHJlZ251bSwgdW5hdE5fdmFsKTsKLSsgICAgfQotKyAgZWxzZSBpZiAoSUE2NF9O QVQzMl9SRUdOVU0gPD0gcmVnbnVtICYmIHJlZ251bSA8PSBJQTY0X05BVDEyN19SRUdOVU0pCi0r ICAgIHsKLSsgICAgICAvKiBOQVQgcHNldWRvIHJlZ2lzdGVycyAzMi0xMjcuCi0rICAgICAgICog ImNvcGllZCIgZnJvbSBpYTY0X3BzZXVkb19yZWdpc3Rlcl9yZWFkKCkKLSsgICAgICAgKiBGSVhN RTogTm90IGN1cnJlbnRseSB0ZXN0ZWQgLS0gY2Fubm90IGdldCB0aGUgZnJhbWUgdG8gaW5jbHVk ZQotKyAgICAgICAqICAgICAgICBOQVQzMi1OQVQxMjcuICAqLwotKyAgICAgIFVMT05HRVNUIGJz cDsKLSsgICAgICBVTE9OR0VTVCBjZm07Ci0rICAgICAgVUxPTkdFU1QgbmF0Tl92YWwgPSAwOwot KyAgICAgIENPUkVfQUREUiBncl9hZGRyID0gMCwgbmF0X2FkZHIgPSAwOwotKwotKyAgICAgIHJl YWRfbWVtb3J5IChjYWNoZS0+c2F2ZWRfcmVnc1tJQTY0X0JTUF9SRUdOVU1dLCAoY2hhciAqKSAm YnNwLAotKwkJICAgcmVnaXN0ZXJfc2l6ZSAodGFyZ2V0X2dkYmFyY2gsIElBNjRfQlNQX1JFR05V TSkpOwotKyAgICAgIHJlYWRfbWVtb3J5IChjYWNoZS0+c2F2ZWRfcmVnc1tJQTY0X0NGTV9SRUdO VU1dLCAoY2hhciAqKSAmY2ZtLAotKwkJICAgcmVnaXN0ZXJfc2l6ZSAodGFyZ2V0X2dkYmFyY2gs IElBNjRfQ0ZNX1JFR05VTSkpOwotKwotKyAgICAgIC8qIFRoZSBic3AgcG9pbnRzIGF0IHRoZSBl bmQgb2YgdGhlIHJlZ2lzdGVyIGZyYW1lIHNvIHdlCi0rCSBzdWJ0cmFjdCB0aGUgc2l6ZSBvZiBm cmFtZSBmcm9tIGl0IHRvIGdldCBzdGFydCBvZiByZWdpc3RlciBmcmFtZS4gICovCi0rICAgICAg YnNwID0gcnNlX2FkZHJlc3NfYWRkIChic3AsIC0oY2ZtICYgMHg3ZikpOwotKwotKyAgICAgIGlm ICgoY2ZtICYgMHg3ZikgPiByZWdudW0gLSBWMzJfUkVHTlVNKQotKwlncl9hZGRyID0gcnNlX2Fk ZHJlc3NfYWRkIChic3AsIChyZWdudW0gLSBWMzJfUkVHTlVNKSk7Ci0rCi0rICAgICAgaWYgKGdy X2FkZHIgIT0gMCkKLSsJewotKwkgIC8qIENvbXB1dGUgYWRkcmVzcyBvZiBuYXQgY29sbGVjdGlv biBiaXRzICovCi0rCSAgQ09SRV9BRERSIG5hdF9jb2xsZWN0aW9uOwotKwkgIGludCBuYXRfYml0 OwotKwkgIG5hdF9hZGRyID0gZ3JfYWRkciB8IDB4MWY4OwotKwkgIC8qIElmIG91ciBuYXQgY29s bGVjdGlvbiBhZGRyZXNzIGlzIGJpZ2dlciB0aGFuIGJzcCwgd2UgaGF2ZSB0byBnZXQKLSsJICAg ICB0aGUgbmF0IGNvbGxlY3Rpb24gZnJvbSBybmF0LiAgT3RoZXJ3aXNlLCB3ZSBmZXRjaCB0aGUg bmF0Ci0rCSAgICAgY29sbGVjdGlvbiBmcm9tIHRoZSBjb21wdXRlZCBhZGRyZXNzLiBGSVhNRTog RG8gbm90IGtub3cgaWYKLSsJICAgICBSTkFUIGNhbiBiZSBub3Qgc3RvcmVkIGluIHRoZSBmcmFt ZS0tYmVpbmcgZXh0cmEgY2F1dGlvdXMuICovCi0rCSAgaWYgKG5hdF9hZGRyID49IGJzcCkKLSsJ ICAgIHsKLSsJICAgICAgbmF0X2FkZHIgPSBjYWNoZS0+c2F2ZWRfcmVnc1tJQTY0X1JOQVRfUkVH TlVNXTsKLSsJICAgICAgaWYgKG5hdF9hZGRyICE9IDApCi0rCQlyZWFkX21lbW9yeSAobmF0X2Fk ZHIsIChjaGFyICopICZuYXRfY29sbGVjdGlvbiwKLSsJCQkgICAgIHJlZ2lzdGVyX3NpemUgKHRh cmdldF9nZGJhcmNoLCBJQTY0X1JOQVRfUkVHTlVNKSk7Ci0rCSAgICB9Ci0rCSAgZWxzZQotKwkg ICAgbmF0X2NvbGxlY3Rpb24gPSByZWFkX21lbW9yeV9pbnRlZ2VyIChuYXRfYWRkciwgOCwgQkZE X0VORElBTl9MSVRUTEUpOwotKwkgIGlmIChuYXRfYWRkciAhPSAwKQotKwkgICAgewotKwkgICAg ICBuYXRfYml0ID0gKGdyX2FkZHIgPj4gMykgJiAweDNmOwotKwkgICAgICBuYXROX3ZhbCA9IChu YXRfY29sbGVjdGlvbiA+PiBuYXRfYml0KSAmIDE7Ci0rCSAgICAgIHJldHVybiBmcmFtZV91bndp bmRfZ290X2NvbnN0YW50ICh0aGlzX2ZyYW1lLCByZWdudW0sIG5hdE5fdmFsKTsKLSsJICAgIH0K LSsJfQotKyAgICAgIHdhcm5pbmcgKF8oImlhNjRfc2lndHJhbXBfZnJhbWVfcHJldl9yZWdpc3Rl cjogdW5oYW5kbGVkIHJlZ2lzdGVyICVkIiksCi0rCSAgICAgICByZWdudW0pOwotKyAgICB9Ci0r ICBlbHNlIGlmIChyZWdudW0gPT0gVkJPRl9SRUdOVU0pCi0rICAgIHsKLSsgICAgICAvKiBCT0Yg cHNldWRvIHJlZ2lzdGVyLgotKyAgICAgICAqICJjb3BpZWQiIGZyb20gaWE2NF9wc2V1ZG9fcmVn aXN0ZXJfcmVhZCgpCi0rICAgICAgICoKLSsgICAgICAgKiBBIHZpcnR1YWwgcmVnaXN0ZXIgZnJh bWUgc3RhcnQgaXMgcHJvdmlkZWQgZm9yIHVzZXIgY29udmVuaWVuY2UuCi0rICAgICAgICogSXQg Y2FuIGJlIGNhbGN1bGF0ZWQgYXMgdGhlIGJzcCAtIHNvZiAoc2l6ZW9mIGZyYW1lKS4gKi8KLSsg ICAgICBVTE9OR0VTVCBic3A7Ci0rICAgICAgVUxPTkdFU1QgY2ZtOwotKyAgICAgIFVMT05HRVNU IGJvZjsKLSsKLSsgICAgICByZWFkX21lbW9yeSAoY2FjaGUtPnNhdmVkX3JlZ3NbSUE2NF9CU1Bf UkVHTlVNXSwgKGNoYXIgKikgJmJzcCwKLSsJCSAgIHJlZ2lzdGVyX3NpemUgKHRhcmdldF9nZGJh cmNoLCBJQTY0X0JTUF9SRUdOVU0pKTsKLSsgICAgICByZWFkX21lbW9yeSAoY2FjaGUtPnNhdmVk X3JlZ3NbSUE2NF9DRk1fUkVHTlVNXSwgKGNoYXIgKikgJmNmbSwKLSsJCSAgIHJlZ2lzdGVyX3Np emUgKHRhcmdldF9nZGJhcmNoLCBJQTY0X0NGTV9SRUdOVU0pKTsKLSsKLSsgICAgICAvKiBUaGUg YnNwIHBvaW50cyBhdCB0aGUgZW5kIG9mIHRoZSByZWdpc3RlciBmcmFtZSBzbyB3ZQotKwkgc3Vi dHJhY3QgdGhlIHNpemUgb2YgZnJhbWUgZnJvbSBpdCB0byBnZXQgYmVnaW5uaW5nIG9mIGZyYW1l LiAgKi8KLSsgICAgICBib2YgPSByc2VfYWRkcmVzc19hZGQgKGJzcCwgLShjZm0gJiAweDdmKSk7 Ci0rCi0rICAgICAgcmV0dXJuIGZyYW1lX3Vud2luZF9nb3RfY29uc3RhbnQgKHRoaXNfZnJhbWUs IHJlZ251bSwgYm9mKTsKLSsgICAgfQotKyAgLyogUmVkIEhhdCBwYXRjaCBlbmQuICAqLwotKwot ICAgZWxzZSBpZiAoKHJlZ251bSA+PSBJQTY0X0dSMzJfUkVHTlVNICYmIHJlZ251bSA8PSBJQTY0 X0dSMTI3X1JFR05VTSkKLSAgICAgICAgICAgIHx8IChyZWdudW0gPj0gVjMyX1JFR05VTSAmJiBy ZWdudW0gPD0gVjEyN19SRUdOVU0pKQotICAgICB7Ci1AQCAtMjEyMSw3ICsyMjA5LDQyIEBAIGlh NjRfc2lndHJhbXBfZnJhbWVfcHJldl9yZWdpc3RlciAoc3RydWMKLSAgICAgICByZXR1cm4gZnJh bWVfdW53aW5kX2dvdF9jb25zdGFudCAodGhpc19mcmFtZSwgcmVnbnVtLCAwKTsKLSAgICAgfQot IAotLSAgZWxzZSAgLyogQWxsIG90aGVyIHJlZ2lzdGVycyBub3QgbGlzdGVkIGFib3ZlLiAgKi8K LSsgIC8qIFJlZCBIYXQgcGF0Y2ggYmVnaW4uICAqLwotKyAgZWxzZSBpZiAoVlAwX1JFR05VTSA8 PSByZWdudW0gJiYgcmVnbnVtIDw9IFZQNjNfUkVHTlVNKQotKyAgICB7Ci0rICAgICAgLyogVlAg MC02My4KLSsgICAgICAgKiAiY29waWVkIiBmcm9tIGlhNjRfcHNldWRvX3JlZ2lzdGVyX3JlYWQo KQotKyAgICAgICAqCi0rICAgICAgICogRklYTUU6IE5vdCBjdXJyZW50bHkgdGVzdGVkLS1jYW5u b3QgZ2V0IHRoZSBmcmFtZSB0byBpbmNsdWRlIFBSLiAqLwotKyAgICAgIENPUkVfQUREUiBwcl9h ZGRyID0gMDsKLSsKLSsgICAgICBwcl9hZGRyID0gY2FjaGUtPnNhdmVkX3JlZ3NbSUE2NF9QUl9S RUdOVU1dOwotKyAgICAgIGlmIChwcl9hZGRyICE9IDApCi0rCXsKLSsJICBVTE9OR0VTVCBwcjsK LSsJICBVTE9OR0VTVCBjZm07Ci0rCSAgVUxPTkdFU1QgcHJOX3ZhbDsKLSsJICByZWFkX21lbW9y eSAocHJfYWRkciwgKGNoYXIgKikgJnByLAotKwkJICAgICAgIHJlZ2lzdGVyX3NpemUgKHRhcmdl dF9nZGJhcmNoLCBJQTY0X1BSX1JFR05VTSkpOwotKwkgIHJlYWRfbWVtb3J5IChjYWNoZS0+c2F2 ZWRfcmVnc1tJQTY0X0NGTV9SRUdOVU1dLCAoY2hhciAqKSAmY2ZtLAotKwkJICAgICAgIHJlZ2lz dGVyX3NpemUgKHRhcmdldF9nZGJhcmNoLCBJQTY0X0NGTV9SRUdOVU0pKTsKLSsKLSsJICAvKiBH ZXQgdGhlIHJlZ2lzdGVyIHJlbmFtZSBiYXNlIGZvciB0aGlzIGZyYW1lIGFuZCBhZGp1c3QgdGhl Ci0rCSAgICogcmVnaXN0ZXIgbmFtZSB0byB0YWtlIHJvdGF0aW9uIGludG8gYWNjb3VudC4gKi8K LSsJICBpZiAoVlAxNl9SRUdOVU0gPD0gcmVnbnVtICYmIHJlZ251bSA8PSBWUDYzX1JFR05VTSkK LSsJICAgIHsKLSsJICAgICAgaW50IHJyYl9wciA9IChjZm0gPj4gMzIpICYgMHgzZjsKLSsJICAg ICAgcmVnbnVtID0gVlAxNl9SRUdOVU0gKyAoKHJlZ251bSAtIFZQMTZfUkVHTlVNKSArIHJyYl9w cikgJSA0ODsKLSsJICAgIH0KLSsJICBwck5fdmFsID0gKHByICYgKDFMTCA8PCAocmVnbnVtIC0g VlAwX1JFR05VTSkpKSAhPSAwOwotKwkgIHJldHVybiBmcmFtZV91bndpbmRfZ290X2NvbnN0YW50 ICh0aGlzX2ZyYW1lLCByZWdudW0sIHByTl92YWwpOwotKwl9Ci0rICAgICAgd2FybmluZyAoXygi aWE2NF9zaWd0cmFtcF9mcmFtZV9wcmV2X3JlZ2lzdGVyOiB1bmhhbmRsZWQgcmVnaXN0ZXIgJWQi KSwKLSsJICAgICAgIHJlZ251bSk7Ci0rICAgIH0KLSsgIC8qIFJlZCBIYXQgcGF0Y2ggZW5kLiAg Ki8KLSsKLSsgIC8qIEFsbCBvdGhlciByZWdpc3RlcnMgbm90IGxpc3RlZCBhYm92ZS4gICovCi0g ICAgIHsKLSAgICAgICBDT1JFX0FERFIgYWRkciA9IGNhY2hlLT5zYXZlZF9yZWdzW3JlZ251bV07 Ci0gCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1yaC10ZXN0bGlidW53aW5kLTIwMDQxMjAyLnBhdGNo IGIvZ2RiLTYuMy1yaC10ZXN0bGlidW53aW5kLTIwMDQxMjAyLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwYTEyMWMzLi4wMDAwMDAwCi0tLSBhL2dkYi02LjMtcmgtdGVzdGxp YnVud2luZC0yMDA0MTIwMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi0y MDAzLTExLTE3ICBFbGVuYSBaYW5ub25pICA8ZXphbm5vbmlAcmVkaGF0LmNvbT4KLSAgIAotICAg ICAgICBGcm9tIEplZmYgSm9obnN0b24gPGpqb2huc3RuQHJlZGhhdC5jb20+Ci0gICAgICAgICog Z2RiLmFyY2gvaWE2NC1saWJ1bndpbmQuZXhwOiBOZXcgZmlsZS4KLSAgICAgICAgKiBnZGIuYXJj aC9pYTY0LWxpYnVud2luZC5jOiBOZXcgZmlsZS4KLQotMjAwNC0wOC0wMyAgSmVmZiBKb2huc3Rv biAgPGpqb2huc3RuQHJlZGhhdC5jb20+Ci0gICAKLSAgICAgICAgKiBnZGIuYXJjaC9pYTY0LWxp YnVud2luZC5leHA6IEZpeCB0ZXN0IHN0cmluZyB0byBtYXRjaAotCWN1cnJlbnQgY29kZSBiYXNl LgotCi0JWyBhY3F1aXJlX3Vud2luZF9pbmZvIC0+IGlhNjRfZmluZF9wcm9jX2luZm9feCBdCi0K LTIwMDktMDQtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4K LQotCVJlbW92ZSBhIHJhY2UgZnJvbSBzZW5kX2dkYiAiQ09NTUFORFxuIi4KLQlDbGVhbnVwLgot CU1lcmdlIGluOiBQYXRjaDQ6IGdkYi02LjMtcmgtdGVzdGxpYnVud2luZDFmaXgtMjAwNDEyMDIu cGF0Y2gKLSAKLS0tLSAvZGV2L251bGwJMjAwOS0wNC0xOSAwODo1Mjo1NC40OTkwMDAwMDAgKzAy MDAKLSsrKyBnZGItNi44L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaWE2NC1saWJ1bndpbmQuYwky MDA5LTA0LTMwIDE5OjE1OjE2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyNiBAQAotKy8q IENvcHlyaWdodCAyMDAzLCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwot KyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsg ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCi0rCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rCi0raW50Ci0rbWFp biAoKQotK3sKLSsgIHByaW50ZiAoImhlbGxvIHdvcmxkXG4iKTsKLSsgCi0rICByZXR1cm4gMDsK LSt9Ci0tLS0gL2Rldi9udWxsCTIwMDktMDQtMTkgMDg6NTI6NTQuNDk5MDAwMDAwICswMjAwCi0r KysgZ2RiLTYuOC9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2lhNjQtbGlidW53aW5kLmV4cAkyMDA5 LTA0LTMwIDE5OjE5OjIyLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1MiBAQAotKyMgQ29w eXJpZ2h0IDIwMDMsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMgCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl Ci0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMgCi0r IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8g dGhlIEZyZWUgU29mdHdhcmUKLSsjIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAt IFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAKLSsKLSsjIFBsZWFzZSBl bWFpbCBhbnkgYnVncywgY29tbWVudHMsIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhpcyBmaWxlIHRv OgotKyMgYnVnLWdkYkBwcmVwLmFpLm1pdC5lZHUKLSsKLSsjIFRoaXMgZmlsZSB3YXMgd3JpdHRl biBieSBKZWZmIEpvaG5zdG9uIChqam9obnN0bkByZWRoYXQuY29tKQotKwotK2lmICFbaXN0YXJn ZXQgImlhNjQtKi0qIl0gdGhlbiB7Ci0rICAgIHJldHVybgotK30KLSsKLStzZXQgdGVzdGZpbGUg ImlhNjQtbGlidW53aW5kIgotK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKLStzZXQgYmluZmls ZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9Ci0rCi0raWYgIHsgW2dkYl9jb21waWxl ICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxl IHtkZWJ1ZyBhZGRpdGlvbmFsX2ZsYWdzPS13fV0gIT0gIiIgfSB7Ci0rICAgIGdkYl9zdXBwcmVz c19lbnRpcmVfZmlsZSAiVGVzdGNhc2UgY29tcGlsZSBmYWlsZWQsIHNvIGFsbCB0ZXN0cyBpbiB0 aGlzIGZpbGUgd2lsbCBhdXRvbWF0aWNhbGx5IGZhaWwuIgotK30KLSsKLStpZiBbZ2V0X2NvbXBp bGVyX2luZm8gJHtiaW5maWxlfV0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rZ2RiX2V4aXQK LStnZGJfc3RhcnQKLStnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKLStnZGJf bG9hZCAke2JpbmZpbGV9Ci0rCi0rZ2RiX3Rlc3QgInNldCBkZWJ1ZyBhcmNoIDEiCi0rZ2RiX2Jy ZWFrcG9pbnQgIm1haW4iCi0rZ2RiX3J1bl9jbWQKLSsKLStzZXQgdGVzdCAibGlidW53aW5kIG1l c3NhZ2UiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgewotKyAgICAtcmUgImlhNjRfZmlu ZF9wcm9jX2luZm9feC4qJGdkYl9wcm9tcHQgJCIgewotKwlwYXNzICR0ZXN0Ci0rICAgIH0KLSt9 CgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCA0NzFlMDBlLi41YmU0YzJh IDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMzcsNyArMzcsNyBAQCBW ZXJzaW9uOiA3LjYuNTAuJXtzbmFwfQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBh IGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlz IG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21w YXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDElez9kaXN0fQorUmVsZWFzZTogMiV7 P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9ucyBhbmQg R1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFu ZCBCU0QgYW5kIFB1YmxpYyBEb21haW4KIEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKQEAg LTkwLDcgKzkwLDYgQEAgUHJvdmlkZXM6IGJ1bmRsZWQobWQ1LWdjYykgPSAle3NuYXBzcmN9CiAj cHVzaD1TaG91bGQgYmUgcHVzaGVkIHVwc3RyZWFtLgogI21heWJlcHVzaD1TaG91bGQgYmUgcHVz aGVkIHVwc3RyZWFtIHVubGVzcyBpdCBnb3Qgb2Jzb2xldGVkIHRoZXJlLgogI2ZlZG9yYT1TaG91 bGQgc3RheSBhcyBhIEZlZG9yYSBwYXRjaC4KLSNpYTY0PURyb3AgYWZ0ZXIgUkhFTC01IHJlYmFz ZXMgYW5kIHJlYnVpbGRzIGFyZSBubyBsb25nZXIgbWVhbmluZ2Z1bC4KICNmZWRvcmF0ZXN0PUtl ZXAgaXQgaW4gRmVkb3JhIG9ubHkgYXMgYSByZWdyZXNzaW9uIHRlc3Qgc2FmZXR5LgogIytwcGM9 U3BlY2lmaWMgZm9yIHBwYzMyL3BwYzY0L3BwYyoKICMrd29yaz1SZXF1aXJlcyBzb21lIG5vbnRy aXZpYWwgd29yay4KQEAgLTEyMiwxMCArMTIxLDYgQEAgUGF0Y2gxOiBnZGItNi4zLXJoLWR1bW15 a2ZhaWwtMjAwNDEyMDIucGF0Y2gKICM9ZmVkb3JhCiBQYXRjaDI6IGdkYi02LjMtcmgtdGVzdHZl cnNpb24tMjAwNDEyMDIucGF0Y2gKIAotIyBDaGVjayB0aGF0IGxpYnVud2luZCB3b3JrcyAtIG5l dyB0ZXN0IHRoZW4gZml4Ci0jPWlhNjQKLVBhdGNoMzogZ2RiLTYuMy1yaC10ZXN0bGlidW53aW5k LTIwMDQxMjAyLnBhdGNoCi0KICMgQmV0dGVyIHBhcnNlIDY0LWJpdCBQUEMgc3lzdGVtIGNhbGwg cHJvbG9ndWVzLgogIz1tYXliZXB1c2grcHBjOiBXcml0ZSBuZXcgdGVzdGNhc2UuCiBQYXRjaDEw NTogZ2RiLTYuMy1wcGM2NHN5c2NhbGwtMjAwNDA2MjIucGF0Y2gKQEAgLTE2NywzNCArMTYyLDE0 IEBAIFBhdGNoMTMzOiBnZGItNi4zLXRlc3QtZHRvcmZpeC0yMDA1MDEyMS5wYXRjaAogIz1mZWRv cmF0ZXN0CiBQYXRjaDEzNjogZ2RiLTYuMy10ZXN0LW1vdmVkaXItMjAwNTAxMjUucGF0Y2gKIAot IyBGaXggZ2NvcmUgZm9yIHRocmVhZHMKLSM9aWE2NAotUGF0Y2gxNDA6IGdkYi02LjMtZ2NvcmUt dGhyZWFkLTIwMDUwMjA0LnBhdGNoCi0KICMgVGVzdCBzaWJsaW5nIHRocmVhZHMgdG8gc2V0IHRo cmVhZGVkIHdhdGNocG9pbnRzIGZvciB4ODYgYW5kIHg4Ni02NAogIz1mZWRvcmF0ZXN0CiBQYXRj aDE0NTogZ2RiLTYuMy10aHJlYWRlZC13YXRjaHBvaW50czItMjAwNTAyMjUucGF0Y2gKIAotIyBE byBub3QgaXNzdWUgd2FybmluZyBtZXNzYWdlIGFib3V0IGZpcnN0IHBhZ2Ugb2Ygc3RvcmFnZSBm b3IgaWE2NCBnY29yZQotIz1pYTY0Ci1QYXRjaDE1MzogZ2RiLTYuMy1pYTY0LWdjb3JlLXBhZ2Uw LTIwMDUwNDIxLnBhdGNoCi0KLSMgSUE2NCBzaWd0cmFtcCBwcmV2IHJlZ2lzdGVyIHBhdGNoCi0j PWlhNjQKLVBhdGNoMTU4OiBnZGItNi4zLWlhNjQtc2lndHJhbXAtZnJhbWUtMjAwNTA3MDgucGF0 Y2gKLQotIyBJQTY0IGdjb3JlIHNwZWVkLXVwIHBhdGNoCi0jPWlhNjQKLVBhdGNoMTYwOiBnZGIt Ni4zLWlhNjQtZ2NvcmUtc3BlZWR1cC0yMDA1MDcxNC5wYXRjaAotCiAjIE5vdGlmeSBvYnNlcnZl cnMgdGhhdCB0aGUgaW5mZXJpb3IgaGFzIGJlZW4gY3JlYXRlZAogIz1mZWRvcmF0ZXN0CiBQYXRj aDE2MTogZ2RiLTYuMy1pbmZlcmlvci1ub3RpZmljYXRpb24tMjAwNTA3MjEucGF0Y2gKIAotIyBG aXggaWE2NCBpbmZvIGZyYW1lIGJ1ZwotIz1pYTY0Ci1QYXRjaDE2MjogZ2RiLTYuMy1pYTY0LWlu Zm8tZnJhbWUtZml4LTIwMDUwNzI1LnBhdGNoCi0KICMgVmVyaWZ5IHByaW50aW5nIG9mIGluaGVy aXRlZCBtZW1iZXJzIHRlc3QKICM9ZmVkb3JhdGVzdAogUGF0Y2gxNjM6IGdkYi02LjMtaW5oZXJp dGFuY2V0ZXN0LTIwMDUwNzI2LnBhdGNoCkBAIC0yMDMsMTAgKzE3OCw2IEBAIFBhdGNoMTYzOiBn ZGItNi4zLWluaGVyaXRhbmNldGVzdC0yMDA1MDcyNi5wYXRjaAogIz1wdXNoCiBQYXRjaDE2NDog Z2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKIAotIyBGaXggaWE2NCBnZGIgcHJvYmxl bSB3aXRoIHVzZXItc3BlY2lmaWVkIFNJR0lMTCBoYW5kbGluZwotIz1pYTY0Ci1QYXRjaDE2OTog Z2RiLTYuMy1pYTY0LXNpZ2lsbC0yMDA1MTExNS5wYXRjaAotCiAjIEZpeCBkZWJ1Z2luZm8gYWRk cmVzc2VzIHJlc29sdmluZyBmb3IgLS1lbWl0LXJlbG9jcyBMaW51eCBrZXJuZWxzIChCWiAyMDM2 NjEpLgogIz1wdXNoK3dvcms6IFRoZXJlIHdhcyBzb21lIG1haWwgdGhyZWFkIGFib3V0IGl0LCB0 aGlzIHBhdGNoIG1heSBiZSBhIGhhY2suCiBQYXRjaDE4ODogZ2RiLTYuNS1iejIwMzY2MS1lbWl0 LXJlbG9jcy5wYXRjaApAQCAtNTkxLDcgKzU2Miw3IEBAIEJ1aWxkUmVxdWlyZXM6IHRleGxpdmUt ZWMgdGV4bGl2ZS1jbS1zdXBlcgogCiAjIEJ1aWxkQXJjaCB3b3VsZCBicmVhayBSSEVMLTUgYnkg b3ZlcnJpZGluZyBhcmNoIGFuZCBub3QgYnVpbGRpbmcgbm9hcmNoLgogJWlmIDAlez9lbDU6MX0K LUV4Y2x1c2l2ZUFyY2g6IG5vYXJjaCBpMzg2IHg4Nl82NCBwcGMgcHBjNjQgaWE2NCBzMzkwIHMz OTB4CitFeGNsdXNpdmVBcmNoOiBub2FyY2ggaTM4NiB4ODZfNjQgcHBjIHBwYzY0IHMzOTAgczM5 MHgKICVlbmRpZiAjIDAlez9lbDU6MX0KIAogJWlmIDAlez9fd2l0aF90ZXN0c3VpdGU6MX0KQEAg LTYzOCw3ICs2MDksNyBAQCBCdWlsZFJlcXVpcmVzOiBmcGMKIEJ1aWxkUmVxdWlyZXM6IGdjYzQ0 IGdjYzQ0LWdmb3J0cmFuCiAlZW5kaWYKICMgQ29waWVkIGZyb20gZ2NjLTQuMS4yLTMyLgotJWlm YXJjaCAle2l4ODZ9IHg4Nl82NCBpYTY0IHBwYyBhbHBoYQorJWlmYXJjaCAle2l4ODZ9IHg4Nl82 NCBwcGMgYWxwaGEKIEJ1aWxkUmVxdWlyZXM6IGdjYy1nbmF0CiBCdWlsZFJlcXVpcmVzOiBsaWJn bmF0JXtiaXRzX2xvY2FsfSBsaWJnbmF0JXtiaXRzX290aGVyfQogJWVuZGlmCkBAIC02NjcsMTYg KzYzOCw2IEBAIEJ1aWxkUmVxdWlyZXM6IHh6CiAKICVlbmRpZiAjIDAlez9fd2l0aF90ZXN0c3Vp dGU6MX0KIAotJWlmYXJjaCBpYTY0Ci0laWYgMCV7IT9lbDU6MX0KLUJ1aWxkUmVxdWlyZXM6IGxp YnVud2luZC1kZXZlbCA+PSAwLjk5LTAuMS5mcnlzazIwMDcwNDA1Y3ZzCi1SZXF1aXJlczogbGli dW53aW5kID49IDAuOTktMC4xLmZyeXNrMjAwNzA0MDVjdnMKLSVlbHNlCi1CdWlsZFJlcXVpcmVz OiBsaWJ1bndpbmQgPj0gMC45Ni0zCi1SZXF1aXJlczogbGlidW53aW5kID49IDAuOTYtMwotJWVu ZGlmCi0lZW5kaWYKLQogJXs/c2NsOlJlcXVpcmVzOiVzY2xfcnVudGltZX0KIAogJWRlc2NyaXB0 aW9uCkBAIC03NTYsNyArNzE3LDYgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYK ICVwYXRjaDM0OSAtcDEKICNwYXRjaDIzMiAtcDEKICVwYXRjaDEgLXAxCi0lcGF0Y2gzIC1wMQog CiAlcGF0Y2gxMDUgLXAxCiAlcGF0Y2gxMTEgLXAxCkBAIC03NjYsMTYgKzcyNiwxMCBAQCBmaW5k IC1uYW1lICIqLmluZm8qInx4YXJncyBybSAtZgogJXBhdGNoMTI1IC1wMQogJXBhdGNoMTMzIC1w MQogJXBhdGNoMTM2IC1wMQotJXBhdGNoMTQwIC1wMQogJXBhdGNoMTQ1IC1wMQotJXBhdGNoMTUz IC1wMQotJXBhdGNoMTU4IC1wMQotJXBhdGNoMTYwIC1wMQogJXBhdGNoMTYxIC1wMQotJXBhdGNo MTYyIC1wMQogJXBhdGNoMTYzIC1wMQogJXBhdGNoMTY0IC1wMQotJXBhdGNoMTY5IC1wMQogJXBh dGNoMTg4IC1wMQogJXBhdGNoMTk0IC1wMQogJXBhdGNoMTk2IC1wMQpAQCAtOTM2LDcgKzg5MCw3 IEBAIGV4cG9ydCBMREZMQUdTPSIlez9fX2dsb2JhbF9sZGZsYWdzfSIKIAktLXdpdGgtc3lzdGVt LWdkYmluaXQ9JXtfc3lzY29uZmRpcn0vZ2RiaW5pdAkJXAogCS0td2l0aC1nZGItZGF0YWRpcj0l e19kYXRhZGlyfS9nZGIJCQlcCiAJLS1lbmFibGUtZ2RiLWJ1aWxkLXdhcm5pbmdzPSwtV25vLXVu dXNlZAkJXAotJWlmbmFyY2ggJXtpeDg2fSBhbHBoYSBpYTY0IHBwYyBzMzkwIHMzOTB4IHg4Nl82 NCBwcGM2NCBzcGFyYyBzcGFyY3Y5IHNwYXJjNjQKKyVpZm5hcmNoICV7aXg4Nn0gYWxwaGEgcHBj IHMzOTAgczM5MHggeDg2XzY0IHBwYzY0IHNwYXJjIHNwYXJjdjkgc3BhcmM2NAogCS0tZGlzYWJs ZS13ZXJyb3IJCQkJCVwKICVlbHNlCiAJLS1lbmFibGUtd2Vycm9yCQkJCQkJXApAQCAtOTc0LDEx ICs5MjgsNyBAQCAkKDogUkhFTC01IGxpYnJwbSBoYXMgaW5jb21wYXRpYmxlIEFQSS4gKQkJCVwK ICVlbHNlCiAJLS13aXRob3V0LWx6bWEJCQkJCQlcCiAlZW5kaWYKLSVpZmFyY2ggaWE2NAotCS0t d2l0aC1saWJ1bndpbmQJCQkJCVwKLSVlbHNlCiAJLS13aXRob3V0LWxpYnVud2luZAkJCQkJXAot JWVuZGlmCiAlaWZhcmNoIHNwYXJjIHNwYXJjdjkgc3BhcmM2NAogCS0td2l0aG91dC1tbWFwCQkJ CQkJXAogJWVuZGlmCkBAIC0xMzYwLDggKzEzMTAsMTEgQEAgZmkKICVlbmRpZiAjIDAleyE/ZWw1 OjF9IHx8ICIle190YXJnZXRfY3B1fSIgPT0gIm5vYXJjaCIKIAogJWNoYW5nZWxvZworKiBGcmkg QXVnICAyIDIwMTMgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0g Ny42LjUwLjIwMTMwNzMxLTIuZmMyMAorLSBEcm9wIGlhNjQgcGF0Y2hlcyBhbmQgLnNwZWMgc3Vw cG9ydC4KKwogKiBGcmkgQXVnICAyIDIwMTMgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+IC0gNy42LjUwLjIwMTMwNzMxLTEuZmMyMAotLSBSZWJhc2UgdG8gRlNGIEdE QiA3LjYuNTAuMjAxMzA3MzEgKHByZS03LjYgc25hcHNob3QpLgorLSBSZWJhc2UgdG8gRlNGIEdE QiA3LjYuNTAuMjAxMzA3MzEgKHNuYXBzaG90IGJldHdlZW4gNy42IGFuZCBmdXR1cmUgNy43KS4K IAogKiBNb24gSnVsIDI5IDIwMTMgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+IC0gNy42LTM2LmZjMjAKIC0gUmVtb3ZlICUle2dkYl9kb2NkaXJ9LCByZWJ1aWxkIGZv ciB1bnZlcnNpb25lZCBkb2NkaXJzIChmb3IgQlogOTg2ODcxKS4K