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] fix-dup-patch: - Rebase to FSF GDB 7.2.50.20110117 (which is a 7.3 pre-release). Date: Thu, 23 Jul 2026 18:29:45 GMT Message-ID: <178483138516.1.7552806687810249378.rpms-gdb-b0e03f562dbf@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: b0e03f562dbfdebbb156e840e5aa7c32f4a09c7e ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogYjBlMDNmNTYyZGJmZGViYmIxNTZlODQwZTVhYTdjMzJmNGEwOWM3ZQog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxMS0wMS0xN1QxNjozMTo0MyswMTowMAogICAg ICAgICAgICBTdGF0cyAgOiArMTM5Ni8tMTYyOSBpbiAxOCBmaWxlKHMpCiAgICAgICAgICAgIFVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvYjBlMDNmNTYy ZGJmZGViYmIxNTZlODQwZTVhYTdjMzJmNGEwOWM3ZT9icmFuY2g9Zml4LWR1cC1wYXRjaAoKICAg ICAgICAgICAgTG9nOgogICAgICAgICAgICAtIFJlYmFzZSB0byBGU0YgR0RCIDcuMi41MC4yMDEx MDExNyAod2hpY2ggaXMgYSA3LjMgcHJlLXJlbGVhc2UpLgotIEZpeCBjYWxsYmFjay1tb2RlIHJl YWRsaW5lLTYuMCByZWdyZXNzaW9uIGZvciBDVFJMLUMgKGZvciBSSEVMLTYuMCkuCiAgLSBGaXgg b2NjYXNpb25hbCBOVUxMIGRlcmVmZXJlbmNlIG9mIHRoZSByZWFkbGluZS02LjAgd29ya2Fyb3Vu ZCAoQlogNTc1NTE2KS4KCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUK aW5kZXggODIyMjY1Mi4uNjZjNjkyYiAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0 aWdub3JlCkBAIC0xLDIgKzEsMiBAQAotL2dkYi03LjIuNTAuMjAxMTAxMDcudGFyLmJ6MgogL2xp YnN0ZGMrKy12My1weXRob24tcjE1NTk3OC50YXIuYnoyCisvZ2RiLTcuMi41MC4yMDExMDExNy50 YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1wcGM2NHN5c2NhbGwtMjAwNDA2MjIucGF0Y2gg Yi9nZGItNi4zLXBwYzY0c3lzY2FsbC0yMDA0MDYyMi5wYXRjaAppbmRleCA4ZTZjMzkxLi5hMjM3 Y2MxIDEwMDY0NAotLS0gYS9nZGItNi4zLXBwYzY0c3lzY2FsbC0yMDA0MDYyMi5wYXRjaAorKysg Yi9nZGItNi4zLXBwYzY0c3lzY2FsbC0yMDA0MDYyMi5wYXRjaApAQCAtNiwxMCArNiwxMCBAQAog CXVzZSB0byBza2lwIG92ZXIgZmlyc3QgaGFsZiBvZiBhIEdOVS9MaW51eCBzeXNjYWxsIGFuZCB1 cGRhdGUKIAkiZnVuY19zdGFydCIuCiAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9y czYwMDAtdGRlcC5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvcnM2MDAwLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDIub3JpZy9nZGIvcnM2MDAwLXRk ZXAuYwkyMDA5LTA3LTMxIDE3OjIzOjIwLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAu MjAwOTA4MDIvZ2RiL3JzNjAwMC10ZGVwLmMJMjAwOS0wOC0wMyAwOTo1MjozOS4wMDAwMDAwMDAg KzAyMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3JzNjAwMC10ZGVwLmMJMjAx MS0wMS0xMSAyMDoyMzowMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3 L2dkYi9yczYwMDAtdGRlcC5jCTIwMTEtMDEtMTcgMTU6NDg6MTkuMDAwMDAwMDAwICswMTAwCiBA QCAtMTI2LDYgKzEyNiw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpwb3dlcnBjX3ZlY3Rvcl9hYmlf c3QKICAKICBzdHJ1Y3QgcnM2MDAwX2ZyYW1lZGF0YQpAQCAtMTgsNyArMTgsNyBAQCBJbmRleDog Z2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvcnM2MDAwLXRkZXAuYwogICAgICBpbnQgb2Zmc2V0OwkJ CS8qIHRvdGFsIHNpemUgb2YgZnJhbWUgLS0tIHRoZSBkaXN0YW5jZQogIAkJCQkgICBieSB3aGlj aCB3ZSBkZWNyZW1lbnQgc3AgdG8gYWxsb2NhdGUKICAJCQkJICAgdGhlIGZyYW1lICovCi1AQCAt MTQ4OCw3ICsxNDg5LDYgQEAgc3RhdGljIENPUkVfQUREUgorQEAgLTE0OTYsNyArMTQ5Nyw2IEBA IHN0YXRpYyBDT1JFX0FERFIKICBza2lwX3Byb2xvZ3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwgQ09SRV9BRERSIHBjLCBDT1JFX0FERFIgbGltX3BjLAogIAkgICAgICAgc3RydWN0IHJzNjAw MF9mcmFtZWRhdGEgKmZkYXRhKQogIHsKQEAgLTI2LDcgKzI2LDcgQEAgSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA4MDIvZ2RiL3JzNjAwMC10ZGVwLmMKICAgIENPUkVfQUREUiBsYXN0X3Byb2xvZ3Vl X3BjID0gcGM7CiAgICBDT1JFX0FERFIgbGlfZm91bmRfcGMgPSAwOwogICAgZ2RiX2J5dGUgYnVm WzRdOwotQEAgLTE1MDYsMTIgKzE1MDYsMTQgQEAgc2tpcF9wcm9sb2d1ZSAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsIAorQEAgLTE1MTQsMTIgKzE1MTQsMTQgQEAgc2tpcF9wcm9sb2d1ZSAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsIAogICAgaW50IG1pbmltYWxfdG9jX2xvYWRlZCA9IDA7CiAg ICBpbnQgcHJldl9pbnNuX3dhc19wcm9sb2d1ZV9pbnNuID0gMTsKICAgIGludCBudW1fc2tpcF9u b25fcHJvbG9ndWVfaW5zbnMgPSAwOwpAQCAtNDEsNyArNDEsNyBAQCBJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDgwMi9nZGIvcnM2MDAwLXRkZXAuYwogICAgZmRhdGEtPnNhdmVkX2dwciA9IC0xOwog ICAgZmRhdGEtPnNhdmVkX2ZwciA9IC0xOwogICAgZmRhdGEtPnNhdmVkX3ZyID0gLTE7Ci1AQCAt MTU0NSw2ICsxNTQ3LDU1IEBAIHNraXBfcHJvbG9ndWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LCAKK0BAIC0xNTUzLDYgKzE1NTUsNTUgQEAgc2tpcF9wcm9sb2d1ZSAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIAogIAlicmVhazsKICAgICAgICBvcCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdl ciAoYnVmLCA0LCBieXRlX29yZGVyKTsKICAKQEAgLTk3LDcgKzk3LDcgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDIvZ2RiL3JzNjAwMC10ZGVwLmMKICAgICAgICBpZiAoKG9wICYgMHhmYzFm ZmZmZikgPT0gMHg3YzA4MDJhNikKICAJewkJCS8qIG1mbHIgUnggKi8KICAJICAvKiBTaW5jZSBz aGFyZWQgbGlicmFyeSAvIFBJQyBjb2RlLCB3aGljaCBuZWVkcyB0byBnZXQgaXRzCi1AQCAtMTcy Niw5ICsxNzc3LDkgQEAgc2tpcF9wcm9sb2d1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIAor QEAgLTE3MzQsOSArMTc4NSw5IEBAIHNraXBfcHJvbG9ndWUgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLCAKICAJICAgICB3ZSBoYXZlIG5vIGxpbmUgdGFibGUgaW5mb3JtYXRpb24gb3IgdGhlIGxp bmUgaW5mbyB0ZWxscwogIAkgICAgIHVzIHRoYXQgdGhlIHN1YnJvdXRpbmUgY2FsbCBpcyBub3Qg cGFydCBvZiB0aGUgbGluZQogIAkgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvbG9ndWUuICAq LwpAQCAtMTA4LDQgKzEwOCw0IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9yczYw MDAtdGRlcC5jCiArCSAgICAgIHN0cnVjdCBzeW10YWJfYW5kX2xpbmUgcHJvbG9ndWVfc2FsID0g ZmluZF9wY19saW5lIChmZGF0YS0+ZnVuY19zdGFydCwgMCk7CiAgCSAgICAgIHN0cnVjdCBzeW10 YWJfYW5kX2xpbmUgdGhpc19zYWwgPSBmaW5kX3BjX2xpbmUgKHBjLCAwKTsKICAKLSAJICAgICAg aWYgKChwcm9sb2d1ZV9zYWwubGluZSA9PSAwKSB8fCAocHJvbG9ndWVfc2FsLmxpbmUgIT0gdGhp c19zYWwubGluZSkpCisgCSAgICAgIGlmICgocHJvbG9ndWVfc2FsLmxpbmUgPT0gMCkKCmRpZmYg LS1naXQgYS9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaCBiL2dkYi02LjMtcmVhZG5l dmVyLTIwMDUwOTA3LnBhdGNoCmluZGV4IDg2YzMxYmYuLmQ3M2NkODYgMTAwNjQ0Ci0tLSBhL2dk Yi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCisrKyBiL2dkYi02LjMtcmVhZG5ldmVyLTIw MDUwOTA3LnBhdGNoCkBAIC0xMSwxMCArMTEsMTAgQEAKIAogICAgICAgICAqIGdkYi50ZXhpbmZv IChGaWxlIE9wdGlvbnMpOiBEb2N1bWVudCAtLXJlYWRuZXZlci4KIAotSW5kZXg6IGdkYi03LjIu NTAuMjAxMTAxMDcvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAx MTcvZ2RiL2RvYy9nZGIudGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAx MDcub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDEtMDcgMDk6MDM6MzguMDAwMDAwMDAw ICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEt MDEtMDcgMDk6MDQ6NDguMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5v cmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMS0wMS0xNyAxNTo0NzozNy4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMS0wMS0x NyAxNTo1MDo0MS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0xMDA3LDYgKzEwMDcsMTIgQEAgUmVhZCBl YWNoIHN5bWJvbCBmaWxlJ3MgZW50aXJlIHN5bWJvbCB0YQogIHRoZSBkZWZhdWx0LCB3aGljaCBp cyB0byByZWFkIGl0IGluY3JlbWVudGFsbHkgYXMgaXQgaXMgbmVlZGVkLgogIFRoaXMgbWFrZXMg c3RhcnR1cCBzbG93ZXIsIGJ1dCBtYWtlcyBmdXR1cmUgb3BlcmF0aW9ucyBmYXN0ZXIuCkBAIC0y OCwxMCArMjgsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2RvYy9nZGIudGV4 aW5mbwogIEBlbmQgdGFibGUKICAKICBAbm9kZSBNb2RlIE9wdGlvbnMKLUluZGV4OiBnZGItNy4y LjUwLjIwMTEwMTA3L2dkYi9tYWluLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9t YWluLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL21haW4u YwkyMDExLTAxLTA3IDA5OjA0OjM5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAx MTAxMDcvZ2RiL21haW4uYwkyMDExLTAxLTA3IDA5OjA1OjAyLjAwMDAwMDAwMCArMDEwMAorLS0t IGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvbWFpbi5jCTIwMTEtMDEtMTcgMTU6NTA6MjEu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvbWFpbi5jCTIwMTEt MDEtMTcgMTU6NTA6NDEuMDAwMDAwMDAwICswMTAwCiBAQCAtMzk1LDYgKzM5NSw3IEBAIGNhcHR1 cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgICAgICAgeyJ4ZGIiLCBub19hcmd1bWVudCwgJnhkYl9j b21tYW5kcywgMX0sCiAgICAgICAgeyJkYngiLCBub19hcmd1bWVudCwgJmRieF9jb21tYW5kcywg MX0sCkBAIC00MCw3ICs0MCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9tYWlu LmMKICAgICAgICB7InIiLCBub19hcmd1bWVudCwgJnJlYWRub3dfc3ltYm9sX2ZpbGVzLCAxfSwK ICAgICAgICB7InF1aWV0Iiwgbm9fYXJndW1lbnQsICZxdWlldCwgMX0sCiAgICAgICAgeyJxIiwg bm9fYXJndW1lbnQsICZxdWlldCwgMX0sCi1AQCAtMTA2MCw2ICsxMDYxLDcgQEAgT3B0aW9uczpc blxuXAorQEAgLTEwNjEsNiArMTA2Miw3IEBAIE9wdGlvbnM6XG5cblwKICAgIGZwdXRzX3VuZmls dGVyZWQgKF8oIlwKICAgIC0tcXVpZXQgICAgICAgICAgICBEbyBub3QgcHJpbnQgdmVyc2lvbiBu dW1iZXIgb24gc3RhcnR1cC5cblwKICAgIC0tcmVhZG5vdyAgICAgICAgICBGdWxseSByZWFkIHN5 bWJvbCBmaWxlcyBvbiBmaXJzdCBhY2Nlc3MuXG5cCkBAIC00OCwyMiArNDgsMjIgQEAgSW5kZXg6 IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL21haW4uYwogICIpLCBzdHJlYW0pOwogICAgZnB1dHNf dW5maWx0ZXJlZCAoXygiXAogICAgLS1zZT1GSUxFICAgICAgICAgIFVzZSBGSUxFIGFzIHN5bWJv bCBmaWxlIGFuZCBleGVjdXRhYmxlIGZpbGUuXG5cCi1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEw Ny9nZGIvc3ltZmlsZS5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvc3ltZmlsZS5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi9zeW1maWxlLmMJ MjAxMS0wMS0wNSAyMzoyMjo1MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEw MTA3L2dkYi9zeW1maWxlLmMJMjAxMS0wMS0wNyAwOTowNDo0OC4wMDAwMDAwMDAgKzAxMDAKKy0t LSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDExLTAxLTExIDIyOjUz OjI0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3N5bWZpbGUu YwkyMDExLTAxLTE3IDE1OjUwOjUzLjAwMDAwMDAwMCArMDEwMAogQEAgLTgxLDYgKzgxLDcgQEAg c3RhdGljIHZvaWQgY2xlYXJfc3ltdGFiX3VzZXJzX2NsZWFudXAgKAogIAotIC8qIEdsb2JhbCB2 YXJpYWJsZXMgb3duZWQgYnkgdGhpcyBmaWxlICovCi0gaW50IHJlYWRub3dfc3ltYm9sX2ZpbGVz OwkvKiBSZWFkIGZ1bGwgc3ltYm9scyBpbW1lZGlhdGVseSAqLworIC8qIEdsb2JhbCB2YXJpYWJs ZXMgb3duZWQgYnkgdGhpcyBmaWxlLiAgKi8KKyBpbnQgcmVhZG5vd19zeW1ib2xfZmlsZXM7CS8q IFJlYWQgZnVsbCBzeW1ib2xzIGltbWVkaWF0ZWx5LiAgKi8KICtpbnQgcmVhZG5ldmVyX3N5bWJv bF9maWxlczsJLyogTmV2ZXIgcmVhZCBmdWxsIHN5bWJvbHMuICAqLwogIAotIC8qIEV4dGVybmFs IHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zIHJlZmVyZW5jZWQuICovCisgLyogRXh0ZXJuYWwgdmFy aWFibGVzIGFuZCBmdW5jdGlvbnMgcmVmZXJlbmNlZC4gICovCiAgCi1JbmRleDogZ2RiLTcuMi41 MC4yMDExMDEwNy9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9n ZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmln L2dkYi9kd2FyZjJyZWFkLmMJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9kd2FyZjJyZWFkLmMJMjAxMS0wMS0wNyAwOTowNDo0 OC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2R3YXJm MnJlYWQuYwkyMDExLTAxLTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIu NTAuMjAxMTAxMTcvZ2RiL2R3YXJmMnJlYWQuYwkyMDExLTAxLTE3IDE1OjUwOjQxLjAwMDAwMDAw MCArMDEwMAogQEAgLTU3LDYgKzU3LDcgQEAKICAjaW5jbHVkZSAidmVjLmgiCiAgI2luY2x1ZGUg ImMtbGFuZy5oIgpAQCAtODQsMTAgKzg0LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3 L2dkYi9kd2FyZjJyZWFkLmMKICB9CiAgCiAgLyogV2hlbiBsb2FkaW5nIHNlY3Rpb25zLCB3ZSBj YW4gZWl0aGVyIGxvb2sgZm9yICIuPG5hbWU+Iiwgb3IgZm9yCi1JbmRleDogZ2RiLTcuMi41MC4y MDExMDEwNy9nZGIvdG9wLmgKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90b3AuaAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvdG9wLmgJMjAxMS0w MS0wMSAxNjozMzoxOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dk Yi90b3AuaAkyMDExLTAxLTA3IDA5OjA0OjQ4LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIu NTAuMjAxMTAxMTcub3JpZy9nZGIvdG9wLmgJMjAxMS0wMS0wMSAxNjozMzoxOC4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90b3AuaAkyMDExLTAxLTE3IDE1OjUw OjQxLjAwMDAwMDAwMCArMDEwMAogQEAgLTYxLDYgKzYxLDcgQEAgZXh0ZXJuIHZvaWQgc2V0X3By b21wdCAoY2hhciAqKTsKICAKICAvKiBGcm9tIHJhbmRvbSBwbGFjZXMuICAqLwoKZGlmZiAtLWdp dCBhL2dkYi02LjMtdGVzdC1waWUtMjAwNTAxMDcucGF0Y2ggYi9nZGItNi4zLXRlc3QtcGllLTIw MDUwMTA3LnBhdGNoCmluZGV4IDgyNDU1NGUuLjk3YTExNDAgMTAwNjQ0Ci0tLSBhL2dkYi02LjMt dGVzdC1waWUtMjAwNTAxMDcucGF0Y2gKKysrIGIvZ2RiLTYuMy10ZXN0LXBpZS0yMDA1MDEwNy5w YXRjaApAQCAtMSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0 c3VpdGUvY29uZmlndXJlLmFjCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1 aXRlL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDExMTYub3Jp Zy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDEwLTExLTA1IDE1OjMxOjI5LjAwMDAwMDAw MCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUu YWMJMjAxMC0xMS0xNiAwNzo1Njo1My4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIw MTEwMTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMJMjAxMS0wMS0wNSAwNjowOTo1 NS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3VpdGUv Y29uZmlndXJlLmFjCTIwMTEtMDEtMTcgMTU6NTA6MDMuMDAwMDAwMDAwICswMTAwCiBAQCAtMTQ0 LDYgKzE0NCw2IEBAIEFDX09VVFBVVChbTWFrZWZpbGUgXAogICAgZ2RiLmNwL01ha2VmaWxlIGdk Yi5kaXNhc20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBcCiAgICBnZGIuZm9ydHJhbi9N YWtlZmlsZSBnZGIuc2VydmVyL01ha2VmaWxlIGdkYi5qYXZhL01ha2VmaWxlIFwKQEAgLTEwLDMx ICsxMCwzMSBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2NvbmZp Z3VyZS5hYwogKyAgZ2RiLm9iamMvTWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtlZmlsZSBnZGIub3B0 L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBpZS9NYWtlZmlsZSBcCiAgICBnZGIu cHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIFwKICAgIGdkYi50aHJlYWRzL01h a2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBnZGIueG1sL01ha2VmaWxlXSkKLUluZGV4OiBnZGIt Ny4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCitJbmRleDogZ2RiLTcuMi41 MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjIuNTAuMjAxMDExMTYub3JpZy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQkyMDEwLTExLTA1IDE1 OjMxOjI5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3Rz dWl0ZS9jb25maWd1cmUJMjAxMC0xMS0xNiAwNzo1Nzo1OS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBn ZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUJMjAxMS0wMS0w NyAwMzo1MTowOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90 ZXN0c3VpdGUvY29uZmlndXJlCTIwMTEtMDEtMTcgMTU6NTA6MDkuMDAwMDAwMDAwICswMTAwCiBA QCAtMzUxNSw3ICszNTE1LDcgQEAgZG9uZQogIAogIAogIAotLWFjX2NvbmZpZ19maWxlcz0iJGFj X2NvbmZpZ19maWxlcyBNYWtlZmlsZSBnZGIuYWRhL01ha2VmaWxlIGdkYi5hcmNoL01ha2VmaWxl IGdkYi5hc20vTWFrZWZpbGUgZ2RiLmJhc2UvTWFrZWZpbGUgZ2RiLmNwL01ha2VmaWxlIGdkYi5k aXNhc20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBnZGIuZm9ydHJhbi9NYWtlZmlsZSBn ZGIuc2VydmVyL01ha2VmaWxlIGdkYi5qYXZhL01ha2VmaWxlIGdkYi5taS9NYWtlZmlsZSBnZGIu bW9kdWxhMi9NYWtlZmlsZSBnZGIubXVsdGkvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUgZ2Ri Lm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2Ri LnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxl IGdkYi54bWwvTWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtlZmlsZSIKLSthY19jb25maWdfZmlsZXM9 IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJjaC9NYWtl ZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5jcC9NYWtlZmlsZSBn ZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUgZ2RiLmZvcnRyYW4vTWFrZWZp bGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIubWkvTWFrZWZpbGUg Z2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2RiLm11bHRpL01ha2VmaWxlIGdkYi5vYmpjL01ha2VmaWxl IGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01ha2VmaWxlIGdk Yi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZp bGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtlZmls ZSIKKy1hY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9N YWtlZmlsZSBnZGIuYXJjaC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2Vm aWxlIGdkYi5jcC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZp bGUgZ2RiLmZvcnRyYW4vTWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtl ZmlsZSBnZGIubWkvTWFrZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2RiLm11bHRpL01ha2Vm aWxlIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcGVuY2wvTWFrZWZpbGUgZ2RiLm9wdC9NYWtlZmls ZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFr ZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFr ZWZpbGUiCisrYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIGdkYi5h ZGEvTWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9N YWtlZmlsZSBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYyL01h a2VmaWxlIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEv TWFrZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9N YWtlZmlsZSBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3BlbmNsL01ha2VmaWxlIGdkYi5vcHQvTWFr ZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01ha2VmaWxlIGdkYi5weXRob24vTWFr ZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNl L01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUiCiAgCiAgY2F0ID5jb25mY2FjaGUgPDxcX0FDRU9G CiAgIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNoZXMgdGhlIHJlc3VsdHMg b2YgY29uZmlndXJlCi1AQCAtNDIzMiw2ICs0MjMyLDcgQEAgZG8KLSAgICAgImdkYi5vYmpjL01h a2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vYmpjL01ha2VmaWxlIiA7 OworQEAgLTQyMzMsNiArNDIzMyw3IEBAIGRvCisgICAgICJnZGIub3BlbmNsL01ha2VmaWxlIikg Q09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vcGVuY2wvTWFrZWZpbGUiIDs7CiAgICAg ICJnZGIub3B0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vcHQv TWFrZWZpbGUiIDs7CiAgICAgICJnZGIucGFzY2FsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIGdkYi5wYXNjYWwvTWFrZWZpbGUiIDs7CiArICAgICJnZGIucGllL01ha2Vm aWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5waWUvTWFrZWZpbGUiIDs7CiAg ICAgICJnZGIucHl0aG9uL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdk Yi5weXRob24vTWFrZWZpbGUiIDs7CiAgICAgICJnZGIucmV2ZXJzZS9NYWtlZmlsZSIpIENPTkZJ R19GSUxFUz0iJENPTkZJR19GSUxFUyBnZGIucmV2ZXJzZS9NYWtlZmlsZSIgOzsKICAgICAgImdk Yi50aHJlYWRzL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi50aHJl YWRzL01ha2VmaWxlIiA7OwotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0 ZS9nZGIucGllL2F0dGFjaC5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvYXR0YWNoLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYwkyMDEwLTExLTE2IDA3OjU2OjM0LjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFj aC5jCTIwMTEtMDEtMTcgMTU6NTA6MDMuMDAwMDAwMDAwICswMTAwCiBAQCAtMCwwICsxLDIwIEBA CiArLyogVGhpcyBwcm9ncmFtIGlzIGludGVuZGVkIHRvIGJlIHN0YXJ0ZWQgb3V0c2lkZSBvZiBn ZGIsIGFuZCB0aGVuCiArICAgYXR0YWNoZWQgdG8gYnkgZ2RiLiAgVGh1cywgaXQgc2ltcGx5IHNw aW5zIGluIGEgbG9vcC4gIFRoZSBsb29wCkBAIC01NiwxMCArNTYsMTAgQEAgSW5kZXg6IGdkYi03 LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5jCiArICAgIH0KICsg IHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUv Z2RiLnBpZS9hdHRhY2gyLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3Vp dGUvZ2RiLnBpZS9hdHRhY2gyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMJMjAxMC0xMS0xNiAwNzo1NjozNC4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRh Y2gyLmMJMjAxMS0wMS0xNyAxNTo1MDowMy4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsMjQg QEAKICsvKiBUaGlzIHByb2dyYW0gaXMgaW50ZW5kZWQgdG8gYmUgc3RhcnRlZCBvdXRzaWRlIG9m IGdkYiwgYW5kIHRoZW4KICsgICBhdHRhY2hlZCB0byBieSBnZGIuICBUaHVzLCBpdCBzaW1wbHkg c3BpbnMgaW4gYSBsb29wLiAgVGhlIGxvb3AKQEAgLTg1LDEwICs4NSwxMCBAQCBJbmRleDogZ2Ri LTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoMi5jCiArICAgIH0K ICsgIHJldHVybiAoMCk7CiArfQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIucGllL2JyZWFrLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9icmVhay5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIv dGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYwkyMDEwLTExLTE2IDA3OjU2OjM0LjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFr LmMJMjAxMS0wMS0xNyAxNTo1MDowMy4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsMTQ2IEBA CiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsK QEAgLTIzNiwxMCArMjM2LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9icmVhay5jCiArICAgIH0KICsgIHJldHVybiAwOwogK30KLUluZGV4OiBn ZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYworSW5kZXg6 IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrMS5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMJ MjAxMC0xMS0xNiAwNzo1NjozNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEw MTE3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwkyMDExLTAxLTE3IDE1OjUwOjAzLjAw MDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSw0NCBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFy dCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0yODUsMTAgKzI4NSwxMCBAQCBJbmRl eDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMKICt2 b2lkIG1hcmtlcjMgKGEsIGIpIGNoYXIgKmEsICpiOyB7fQkvKiBzZXQgYnJlYWtwb2ludCAxOCBo ZXJlICovCiArdm9pZCBtYXJrZXI0IChkKSBsb25nIGQ7IHt9CQkvKiBzZXQgYnJlYWtwb2ludCAx MyBoZXJlICovCiArI2VuZGlmCi1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvY29yZW1ha2VyLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjIuNTAuMjAxMDEx MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtlci5jCTIwMTAtMTEtMTYgMDc6NTY6MzQu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dk Yi5waWUvY29yZW1ha2VyLmMJMjAxMS0wMS0xNyAxNTo1MDowMy4wMDAwMDAwMDAgKzAxMDAKIEBA IC0wLDAgKzEsMTQyIEBACiArLyogQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5 OTYsIDE5OTkKICsgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTQzMiwxMCAr NDMyLDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9jb3JlbWFrZXIuYwogKyAgcmV0dXJuIDA7CiArfQogKwotSW5kZXg6IGdkYi03LjIuNTAuMjAx MDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5leHAKK0luZGV4OiBnZGItNy4yLjUw LjIwMTEwMTE3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAkyMDEwLTEx LTE2IDA3OjU2OjM0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5leHAJMjAxMS0wMS0xNyAxNTo1MDowMy4wMDAwMDAw MDAgKzAxMDAKIEBAIC0wLDAgKzEsNDIzIEBACiArIyAgIENvcHlyaWdodCAxOTk3LCAxOTk5LCAy MDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtODYwLDEwICs4NjAsMTAg QEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFj aC5leHAKICtkb19jYWxsX2F0dGFjaF90ZXN0cwogKwogK3JldHVybiAwCi1JbmRleDogZ2RiLTcu Mi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhwCitJbmRleDogZ2Ri LTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhwCTIw MTAtMTEtMTYgMDc6NTY6MzQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEx Ny9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhwCTIwMTEtMDEtMTcgMTU6NTA6MDMuMDAw MDAwMDAwICswMTAwCiBAQCAtMCwwICsxLDk2NiBAQAogKyMgICBDb3B5cmlnaHQgMTk4OCwgMTk5 MCwgMTk5MSwgMTk5MiwgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKICsjICAg MjAwMCwgMjAwMiwgMjAwMywgMjAwNApAQCAtMTgzMSwxMCArMTgzMSwxMCBAQCBJbmRleDogZ2Ri LTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhwCiArICAgIHNl bmRfZ2RiICJzZXQgYXJncyBtYWluXG4iCiArICAgIGdkYl9leHBlY3QgLXJlICIuKiRnZGJfcHJv bXB0ICQiIHt9CiArfQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGllL2NvcmVmaWxlLmV4cAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3Rz dWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjIuNTAuMjAxMDExMTYv Z2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4cAkyMDEwLTExLTE2IDA3OjU2OjM0LjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIu cGllL2NvcmVmaWxlLmV4cAkyMDExLTAxLTE3IDE1OjUwOjAzLjAwMDAwMDAwMCArMDEwMAogQEAg LTAsMCArMSwyMzMgQEAKICsjIENvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2 LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwCiArIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KQEAgLTIwNjksMTAgKzIwNjksMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4cAogK2dkYl90ZXN0ICJ1cCIgIiNcWzAtOVxd KiAqXFswLTl4YS1mSCdcXSogaW4gLiogXFwoLipcXCkuKiIgInVwIGluIGNvcmVmaWxlLmV4cCAo cmVpbml0KSIKICsKICtnZGJfdGVzdCAiY29yZSIgIk5vIGNvcmUgZmlsZSBub3cuIgotSW5kZXg6 IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxlLmluCitJ bmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvTWFrZWZpbGUu aW4KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9N YWtlZmlsZS5pbgkyMDEwLTExLTE2IDA3OjU2OjM0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03 LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxlLmluCTIwMTEtMDEt MTcgMTU6NTA6MDMuMDAwMDAwMDAwICswMTAwCiBAQCAtMCwwICsxLDE5IEBACiArVlBBVEggPSBA c3JjZGlyQAogK3NyY2RpciA9IEBzcmNkaXJACgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNS1iejIxODM3 OS1zb2xpYi10cmFtcG9saW5lLWxvb2t1cC1sb2NrLWZpeC5wYXRjaCBiL2dkYi02LjUtYnoyMTgz Nzktc29saWItdHJhbXBvbGluZS1sb29rdXAtbG9jay1maXgucGF0Y2gKaW5kZXggMmU3OGEzZS4u MDgyYjlhMCAxMDA2NDQKLS0tIGEvZ2RiLTYuNS1iejIxODM3OS1zb2xpYi10cmFtcG9saW5lLWxv b2t1cC1sb2NrLWZpeC5wYXRjaAorKysgYi9nZGItNi41LWJ6MjE4Mzc5LXNvbGliLXRyYW1wb2xp bmUtbG9va3VwLWxvY2stZml4LnBhdGNoCkBAIC0xLDEzICsxLDEzIEBACiBodHRwczovL2J1Z3pp bGxhLnJlZGhhdC5jb20vYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTIxODM3OQogCiAKLUluZGV4 OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9zeW10YWIuYworSW5kZXg6IGdkYi03LjIuNTAuMjAx MTAxMTcvZ2RiL3N5bXRhYi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5v cmlnL2dkYi9zeW10YWIuYwkyMDExLTAxLTA3IDA5OjAzOjM4LjAwMDAwMDAwMCArMDEwMAotKysr IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3N5bXRhYi5jCTIwMTEtMDEtMDcgMDk6MDY6MzIuMDAw MDAwMDAwICswMTAwCi1AQCAtMjAxNCw2ICsyMDE0LDEzIEBAIGZpbmRfcGNfc2VjdF9saW5lIChD T1JFX0FERFIgcGMsIHN0cnVjdCAKLSAJICAvKiB3YXJuaW5nICgiSW4gc3R1YiBmb3IgJXM7IHVu YWJsZSB0byBmaW5kIHJlYWwgZnVuY3Rpb24vbGluZSBpbmZvIiwKLSAJICAgICBTWU1CT0xfTElO S0FHRV9OQU1FIChtc3ltYm9sKSkgKi8gOworLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9n ZGIvc3ltdGFiLmMJMjAxMS0wMS0xNyAxNTo0NzozNy4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny4yLjUwLjIwMTEwMTE3L2dkYi9zeW10YWIuYwkyMDExLTAxLTE3IDE1OjUxOjQ4LjAwMDAwMDAw MCArMDEwMAorQEAgLTIwMTUsNiArMjAxNSwxMyBAQCBmaW5kX3BjX3NlY3RfbGluZSAoQ09SRV9B RERSIHBjLCBzdHJ1Y3QgCisgCSAgICAgU1lNQk9MX0xJTktBR0VfTkFNRSAobXN5bWJvbCkpOyAq LworIAkgIDsKICAJLyogZmFsbCB0aHJvdWdoICovCiArCS8qIGBtc3ltYm9sJyB0cmFtcG9saW5l IG1heSBiZSBsb2NhdGVkIGJlZm9yZSBpdHMgLnRleHQgc3ltYm9sCiArCSAgIGJ1dCB0aGlzIHRl eHQgc3ltYm9sIG1heSBiZSB0aGUgYWRkcmVzcyB3ZSB3ZXJlIGxvb2tpbmcgZm9yLgoKZGlmZiAt LWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9j YXRlLnBhdGNoCmluZGV4IGUzNTQ0N2MuLjNkOGU1ZGUgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtYnVp bGRpZC1sb2NhdGUucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaApAQCAt MSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9jb3JlbG93LmMKK0lu ZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9jb3JlbG93LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDExLTAxLTA1IDIzOjIyOjQ3 LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2NvcmVsb3cuYwky MDExLTAxLTA3IDA5OjA3OjAxLjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAx MTcub3JpZy9nZGIvY29yZWxvdy5jCTIwMTEtMDEtMDUgMjM6MjI6NDcuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvY29yZWxvdy5jCTIwMTEtMDEtMTcgMTU6NTI6 MDYuMDAwMDAwMDAwICswMTAwCiBAQCAtNDcsNiArNDcsOSBAQAogICNpbmNsdWRlICJmaWxlbmFt ZXMuaCIKICAjaW5jbHVkZSAicHJvZ3NwYWNlLmgiCkBAIC05MCwxMSArOTAsMTEgQEAgSW5kZXg6 IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2NvcmVsb3cuYwogKwkJCSAgIE5VTEwsIE5VTEwsIE5V TEwsCiArCQkJICAgJnNldGxpc3QsICZzaG93bGlzdCk7CiAgfQotSW5kZXg6IGdkYi03LjIuNTAu MjAxMTAxMDcvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcv Z2RiL2RvYy9nZGIudGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcu b3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDEtMDcgMDk6MDQ6NDguMDAwMDAwMDAwICsw MTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDEt MDcgMDk6MDc6MDEuMDAwMDAwMDAwICswMTAwCi1AQCAtMTUyNzcsNiArMTUyNzcsMjcgQEAgaW5m b3JtYXRpb24gZmlsZXMuCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmlnL2dkYi9kb2MvZ2Ri LnRleGluZm8JMjAxMS0wMS0xNyAxNTo1MDo0MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4y LjUwLjIwMTEwMTE3L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMS0wMS0xNyAxNTo1MjowNi4wMDAw MDAwMDAgKzAxMDAKK0BAIC0xNTIyMCw2ICsxNTIyMCwyNyBAQCBpbmZvcm1hdGlvbiBmaWxlcy4K ICAKICBAZW5kIHRhYmxlCiAgCkBAIC0xMjIsMTAgKzEyMiwxMCBAQCBJbmRleDogZ2RiLTcuMi41 MC4yMDExMDEwNy9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGNpbmRleCBAY29kZXsuZ251X2RlYnVn bGlua30gc2VjdGlvbnMKICBAY2luZGV4IGRlYnVnIGxpbmsgc2VjdGlvbnMKICBBIGRlYnVnIGxp bmsgaXMgYSBzcGVjaWFsIHNlY3Rpb24gb2YgdGhlIGV4ZWN1dGFibGUgZmlsZSBuYW1lZAotSW5k ZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3NvbGliLXN2cjQuYworSW5kZXg6IGdkYi03LjIu NTAuMjAxMTAxMTcvZ2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAu MjAxMTAxMDcub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTEtMDEtMDcgMDk6MDM6MzguMDAwMDAw MDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvc29saWItc3ZyNC5jCTIwMTEt MDEtMDcgMDk6MDc6MDEuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5v cmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAxMS0wMS0xNyAxNTo0NzozNy4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9zb2xpYi1zdnI0LmMJMjAxMS0wMS0xNyAxNTo1 MjowNi4wMDAwMDAwMDAgKzAxMDAKIEBAIC0xMTc5LDkgKzExNzksNDkgQEAgc3ZyNF9jdXJyZW50 X3NvcyAodm9pZCkKICAJCSAgICAgc2FmZV9zdHJlcnJvciAoZXJyY29kZSkpOwogIAkgIGVsc2UK QEAgLTE3OSwxMCArMTc5LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9zb2xp Yi1zdnI0LmMKICAJICAgIH0KICAJICB4ZnJlZSAoYnVmZmVyKTsKICAKLUluZGV4OiBnZGItNy4y LjUwLjIwMTEwMTA3L2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dk Yi9lbGZyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2Ri L2VsZnJlYWQuYwkyMDExLTAxLTA3IDA5OjAzOjM4LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03 LjIuNTAuMjAxMTAxMDcvZ2RiL2VsZnJlYWQuYwkyMDExLTAxLTA3IDA5OjA3OjMzLjAwMDAwMDAw MCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTEt MDEtMTcgMTU6NDc6MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9n ZGIvZWxmcmVhZC5jCTIwMTEtMDEtMTcgMTU6NTI6MDYuMDAwMDAwMDAwICswMTAwCiBAQCAtMzgs NiArMzgsMTAgQEAKICAjaW5jbHVkZSAiZGVtYW5nbGUuaCIKICAjaW5jbHVkZSAicHN5bXByaXYu aCIKQEAgLTkxMSwxMCArOTExLDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9l bGZyZWFkLmMKICsKICsgIG9ic2VydmVyX2F0dGFjaF9leGVjdXRhYmxlX2NoYW5nZWQgKGRlYnVn X3ByaW50X2V4ZWN1dGFibGVfY2hhbmdlZCk7CiAgfQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAx MDcvZ2RiL3N5bWZpbGUuaAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3N5bWZpbGUu aAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvc3ltZmlsZS5o CTIwMTEtMDEtMDUgMjM6MjI6NTMuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDEx MDEwNy9nZGIvc3ltZmlsZS5oCTIwMTEtMDEtMDcgMDk6MDc6MDEuMDAwMDAwMDAwICswMTAwCist LS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmlnL2dkYi9zeW1maWxlLmgJMjAxMS0wMS0xMSAyMjo1 MzoyNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9zeW1maWxl LmgJMjAxMS0wMS0xNyAxNTo1MjowNi4wMDAwMDAwMDAgKzAxMDAKIEBAIC01NTQsNiArNTU0LDEz IEBAIHZvaWQgZnJlZV9zeW1maWxlX3NlZ21lbnRfZGF0YSAoc3RydWN0IHMKICAKICBleHRlcm4g c3RydWN0IGNsZWFudXAgKmluY3JlbWVudF9yZWFkaW5nX3N5bXRhYiAodm9pZCk7CkBAIC05Mjks MTEgKzkyOSwxMSBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvc3ltZmlsZS5oCiAg LyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KICAKICBleHRlcm4gaW50IGR3YXJmMl9oYXNfaW5mbyAo c3RydWN0IG9iamZpbGUgKik7Ci1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVzdHN1 aXRlL2xpYi9nZGIuZXhwCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRl L2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dk Yi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAx MS0wMS0wNyAwOTowNzowMS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xMzkxLDYgKzEzOTEsMTYgQEAg cHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0geworLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3Jp Zy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTEtMDEtMTcgMTU6NDc6MzcuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhw CTIwMTEtMDEtMTcgMTU6NTI6MDYuMDAwMDAwMDAwICswMTAwCitAQCAtMTM5NSw2ICsxMzk1LDE2 IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0 IHNldCB0aGUgd2lkdGggdG8gMC4iCiAgCX0KICAgICAgfQpAQCAtOTUwLDEwICs5NTAsMTAgQEAg SW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogICAg ICByZXR1cm4gMDsKICB9CiAgCi1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVzdHN1 aXRlL2xpYi9taS1zdXBwb3J0LmV4cAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rl c3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIw MTEwMTA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxMS0wMS0wMSAx NjozMzo1Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0 c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTEtMDEtMDcgMDk6MDc6MDEuMDAwMDAwMDAwICsw MTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1 cHBvcnQuZXhwCTIwMTEtMDEtMDEgMTY6MzM6NTIuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu Mi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDExLTAxLTE3 IDE1OjUyOjA2LjAwMDAwMDAwMCArMDEwMAogQEAgLTIyMSw2ICsyMjEsMTYgQEAgcHJvYyBkZWZh dWx0X21pX2dkYl9zdGFydCB7IGFyZ3MgfSB7CiAgCSAgICB9CiAgICAgIAl9CkBAIC05NzEsMTAg Kzk3MSwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVzdHN1aXRlL2xpYi9t aS1zdXBwb3J0LmV4cAogIAogICAgICBkZXRlY3RfYXN5bmMKICAKLUluZGV4OiBnZGItNy4yLjUw LjIwMTEwMTA3L2dkYi9vYmpmaWxlcy5oCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIv b2JqZmlsZXMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIv b2JqZmlsZXMuaAkyMDExLTAxLTA1IDIzOjIyOjQ5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03 LjIuNTAuMjAxMTAxMDcvZ2RiL29iamZpbGVzLmgJMjAxMS0wMS0wNyAwOTowNzowMS4wMDAwMDAw MDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL29iamZpbGVzLmgJMjAx MS0wMS0xMCAyMTozODo0OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3 L2dkYi9vYmpmaWxlcy5oCTIwMTEtMDEtMTcgMTU6NTI6MjYuMDAwMDAwMDAwICswMTAwCiBAQCAt NDM0LDYgKzQzNCwxMCBAQCBzdHJ1Y3Qgb2JqZmlsZQogIAogICNkZWZpbmUgT0JKRl9VU0VSTE9B REVECSgxIDw8IDMpCS8qIFVzZXIgbG9hZGVkICovCkBAIC05ODQsNSArOTg0LDUgQEAgSW5kZXg6 IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL29iamZpbGVzLmgKICsjZGVmaW5lIE9CSkZfQlVJTERf SURfQ09SRV9MT0FERUQgKDEgPDwgMTIpCiArCiAgLyogVGhlIG9iamVjdCBmaWxlIHRoYXQgY29u dGFpbnMgdGhlIHJ1bnRpbWUgY29tbW9uIG1pbmltYWwgc3ltYm9scwotICAgIGZvciBTdW5PUzQu IE5vdGUgdGhhdCB0aGlzIG9iamZpbGUgaGFzIG5vIGFzc29jaWF0ZWQgQkZELiAgKi8KKyAgICBm b3IgU3VuT1M0LiAgTm90ZSB0aGF0IHRoaXMgb2JqZmlsZSBoYXMgbm8gYXNzb2NpYXRlZCBCRkQu ICAqLwogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1zdy13 YXRjaHBvaW50czIucGF0Y2ggYi9nZGItNi42LXNjaGVkdWxlcl9sb2NraW5nLXN0ZXAtc3ctd2F0 Y2hwb2ludHMyLnBhdGNoCmluZGV4IGU4OTQyNTguLjcxZjJkYzEgMTAwNjQ0Ci0tLSBhL2dkYi02 LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1zdy13YXRjaHBvaW50czIucGF0Y2gKKysrIGIvZ2Ri LTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLXN3LXdhdGNocG9pbnRzMi5wYXRjaApAQCAtMjEs MTAgKzIxLDEwIEBACiAKIAlQb3J0IHRvIEdEQi02LjhwcmUuCiAKLUluZGV4OiBnZGItNy4yLjUw LjIwMTAxMjMxL2dkYi9pbmZlcmlvci5oCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIv aW5mZXJpb3IuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDEyMzEub3JpZy9nZGIv aW5mZXJpb3IuaAkyMDExLTAxLTAxIDAxOjI1OjAxLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03 LjIuNTAuMjAxMDEyMzEvZ2RiL2luZmVyaW9yLmgJMjAxMS0wMS0wMSAwMToyNToxNi4wMDAwMDAw MDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2luZmVyaW9yLmgJMjAx MS0wMS0wOSAwNDowODo1Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3 L2dkYi9pbmZlcmlvci5oCTIwMTEtMDEtMTcgMTU6NDg6MzkuMDAwMDAwMDAwICswMTAwCiBAQCAt MTg2LDcgKzE4NiwxNSBAQCBleHRlcm4gdm9pZCByZW9wZW5fZXhlY19maWxlICh2b2lkKTsKICAv KiBUaGUgYHJlc3VtZScgcm91dGluZSBzaG91bGQgb25seSBiZSBjYWxsZWQgaW4gc3BlY2lhbCBj aXJjdW1zdGFuY2VzLgogICAgIE5vcm1hbGx5LCB1c2UgYHByb2NlZWQnLCB3aGljaCBoYW5kbGVz IGEgbG90IG9mIGJvb2trZWVwaW5nLiAgKi8KQEAgLTQyLDEwICs0MiwxMCBAQCBJbmRleDogZ2Ri LTcuMi41MC4yMDEwMTIzMS9nZGIvaW5mZXJpb3IuaAogIAogIC8qIEZyb20gbWlzYyBmaWxlcyAq LwogIAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2luZnJ1bi5jCitJbmRleDogZ2Ri LTcuMi41MC4yMDExMDExNy9nZGIvaW5mcnVuLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUw LjIwMTAxMjMxLm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTEtMDEtMDEgMDE6MjU6MDEuMDAwMDAwMDAw ICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvaW5mcnVuLmMJMjAxMS0wMS0wMSAw MToyNToyOS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2Ri L2luZnJ1bi5jCTIwMTEtMDEtMDkgMDQ6MDg6NTYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu Mi41MC4yMDExMDExNy9nZGIvaW5mcnVuLmMJMjAxMS0wMS0xNyAxNTo0OTo0MC4wMDAwMDAwMDAg KzAxMDAKIEBAIC03Niw3ICs3Niw3IEBAIHN0YXRpYyBpbnQgZm9sbG93X2ZvcmsgKHZvaWQpOwog IHN0YXRpYyB2b2lkIHNldF9zY2hlZGxvY2tfZnVuYyAoY2hhciAqYXJncywgaW50IGZyb21fdHR5 LAogIAkJCQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqYyk7CkBAIC01NSw3ICs1NSw3IEBAIElu ZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9pbmZydW4uYwogIAogIHN0YXRpYyBpbnQgY3Vy cmVudGx5X3N0ZXBwaW5nX29yX25leHRpbmdfY2FsbGJhY2sgKHN0cnVjdCB0aHJlYWRfaW5mbyAq dHAsCiAgCQkJCQkJICAgdm9pZCAqZGF0YSk7Ci1AQCAtMTU3MCw3ICsxNTcwLDcgQEAgbWF5YmVf c29mdHdhcmVfc2luZ2xlc3RlcCAoc3RydWN0IGdkYmFyYworQEAgLTE1NzcsNyArMTU3Nyw3IEBA IG1heWJlX3NvZnR3YXJlX3NpbmdsZXN0ZXAgKHN0cnVjdCBnZGJhcmMKICAgICBTVEVQIG5vbnpl cm8gaWYgd2Ugc2hvdWxkIHN0ZXAgKHplcm8gdG8gY29udGludWUgaW5zdGVhZCkuCiAgICAgU0lH IGlzIHRoZSBzaWduYWwgdG8gZ2l2ZSB0aGUgaW5mZXJpb3IgKHplcm8gZm9yIG5vbmUpLiAgKi8K ICB2b2lkCkBAIC02NCw3ICs2NCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9p bmZydW4uYwogIHsKICAgIGludCBzaG91bGRfcmVzdW1lID0gMTsKICAgIHN0cnVjdCBjbGVhbnVw ICpvbGRfY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKHJlc3VtZV9jbGVhbnVwcywgMCk7Ci1AQCAt MTYwMiwxMCArMTYwMiwxMiBAQCByZXN1bWUgKGludCBzdGVwLCBlbnVtIHRhcmdldF9zaWduYWwg c2lnCitAQCAtMTYwOSwxMCArMTYwOSwxMiBAQCByZXN1bWUgKGludCBzdGVwLCBlbnVtIHRhcmdl dF9zaWduYWwgc2lnCiAgICAgIH0KICAKICAgIGlmIChkZWJ1Z19pbmZydW4pCkBAIC04MSw3ICs4 MSw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9pbmZydW4uYwogIAogICAgLyog Tm9ybWFsbHksIGJ5IHRoZSB0aW1lIHdlIHJlYWNoIGByZXN1bWUnLCB0aGUgYnJlYWtwb2ludHMg YXJlIGVpdGhlcgogICAgICAgcmVtb3ZlZCBvciBpbnNlcnRlZCwgYXMgYXBwcm9wcmlhdGUuICBU aGUgZXhjZXB0aW9uIGlzIGlmIHdlJ3JlIHNpdHRpbmcKLUBAIC0xNzIzLDkgKzE3MjUsMTAgQEAg YSBjb21tYW5kIGxpa2UgYHJldHVybicgb3IgYGp1bXAnIHRvIGNvbgorQEAgLTE3MzAsOSArMTcz MiwxMCBAQCBhIGNvbW1hbmQgbGlrZSBgcmV0dXJuJyBvciBganVtcCcgdG8gY29uCiAgCSAgICAg aW5kaXZpZHVhbGx5LiAgKi8KICAJICByZXN1bWVfcHRpZCA9IGluZmVyaW9yX3B0aWQ7CiAgCX0K QEAgLTkyLDkgKzkyLDkgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2luZnJ1bi5j CiArCQkgICAmJiAoc3RlcCA9PSBSRVNVTUVfU1RFUF9VU0VSCiArCQkgICAgICAgfHwgc2luZ2xl c3RlcF9icmVha3BvaW50c19pbnNlcnRlZF9wKSkpCiAgCXsKLSAJICAvKiBVc2VyLXNldHRhYmxl ICdzY2hlZHVsZXInIG1vZGUgcmVxdWlyZXMgc29sbyB0aHJlYWQgcmVzdW1lLiAqLworIAkgIC8q IFVzZXItc2V0dGFibGUgJ3NjaGVkdWxlcicgbW9kZSByZXF1aXJlcyBzb2xvIHRocmVhZCByZXN1 bWUuICAqLwogIAkgIHJlc3VtZV9wdGlkID0gaW5mZXJpb3JfcHRpZDsKLUBAIC0xOTM0LDcgKzE5 MzcsNyBAQCBwcm9jZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSB0YXJnZXRfc2lnCitAQCAtMTk0 MSw3ICsxOTQ0LDcgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gdGFyZ2V0X3NpZwog ICAgc3RydWN0IHRocmVhZF9pbmZvICp0cDsKICAgIENPUkVfQUREUiBwYzsKICAgIHN0cnVjdCBh ZGRyZXNzX3NwYWNlICphc3BhY2U7CkBAIC0xMDMsNyArMTAzLDcgQEAgSW5kZXg6IGdkYi03LjIu NTAuMjAxMDEyMzEvZ2RiL2luZnJ1bi5jCiAgCiAgICAvKiBJZiB3ZSdyZSBzdG9wcGVkIGF0IGEg Zm9yay92Zm9yaywgZm9sbG93IHRoZSBicmFuY2ggc2V0IGJ5IHRoZQogICAgICAgInNldCBmb2xs b3ctZm9yay1tb2RlIiBjb21tYW5kOyBvdGhlcndpc2UsIHdlJ2xsIGp1c3QgcHJvY2VlZAotQEAg LTE5NjksMTMgKzE5NzIsMTMgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gdGFyZ2V0 X3NpZworQEAgLTE5NzYsMTMgKzE5NzksMTMgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVu dW0gdGFyZ2V0X3NpZwogIAkgICBhY3R1YWxseSBiZSBleGVjdXRpbmcgdGhlIGJyZWFrcG9pbnQg aW5zbiBhbnl3YXkuCiAgCSAgIFdlJ2xsIGJlICh1bi0pZXhlY3V0aW5nIHRoZSBwcmV2aW91cyBp bnN0cnVjdGlvbi4gICovCiAgCkBAIC0xMTksOSArMTE5LDkgQEAgSW5kZXg6IGdkYi03LjIuNTAu MjAxMDEyMzEvZ2RiL2luZnJ1bi5jCiAgICAgIH0KICAgIGVsc2UKICAgICAgewotQEAgLTIwMTYs MTMgKzIwMTksMTMgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gdGFyZ2V0X3NpZwor QEAgLTIwMjMsMTMgKzIwMjYsMTMgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gdGFy Z2V0X3NpZwogIAkgaXMgcmVxdWlyZWQgaXQgcmV0dXJucyBUUlVFIGFuZCBzZXRzIHRoZSBjdXJy ZW50IHRocmVhZCB0bwotIAkgdGhlIG9sZCB0aHJlYWQuICovCisgCSB0aGUgb2xkIHRocmVhZC4g ICovCiAgICAgICAgaWYgKHByZXBhcmVfdG9fcHJvY2VlZCAoc3RlcCkpCiAtCW9uZXByb2MgPSAx OwogKwlyZXN1bWVfc3RlcCA9IFJFU1VNRV9TVEVQX1VTRVI7CkBAIC0xMzUsNyArMTM1LDcgQEAg SW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2luZnJ1bi5jCiAgICAgIHsKICAgICAgICB0 cC0+Y29udHJvbC50cmFwX2V4cGVjdGVkID0gMTsKICAgICAgICAvKiBJZiBkaXNwbGFjZWQgc3Rl cHBpbmcgaXMgZW5hYmxlZCwgd2UgY2FuIHN0ZXAgb3ZlciB0aGUKLUBAIC0yMTA5LDggKzIxMTIs MTMgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gdGFyZ2V0X3NpZworQEAgLTIxMTYs OCArMjExOSwxMyBAQCBwcm9jZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSB0YXJnZXRfc2lnCiAg ICAvKiBSZXNldCB0byBub3JtYWwgc3RhdGUuICAqLwogICAgaW5pdF9pbmZ3YWl0X3N0YXRlICgp OwogIApAQCAtMTUwLDcgKzE1MCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9p bmZydW4uYwogIAogICAgLyogV2FpdCBmb3IgaXQgdG8gc3RvcCAoaWYgbm90IHN0YW5kYWxvbmUp CiAgICAgICBhbmQgaW4gYW55IGNhc2UgZGVjb2RlIHdoeSBpdCBzdG9wcGVkLCBhbmQgYWN0IGFj Y29yZGluZ2x5LiAgKi8KLUBAIC00OTMzLDE0ICs0OTQxLDE5IEBAIGluZnJ1bjogbm90IHN3aXRj aGluZyBiYWNrIHRvIHN0ZXBwZWQgdGgKK0BAIC00OTU3LDE0ICs0OTY1LDE5IEBAIHByb2Nlc3Nf ZXZlbnRfc3RvcF90ZXN0OgogIAogIC8qIElzIHRocmVhZCBUUCBpbiB0aGUgbWlkZGxlIG9mIHNp bmdsZS1zdGVwcGluZz8gICovCiAgCkBAIC0xNzYsMTEgKzE3NiwxMSBAQCBJbmRleDogZ2RiLTcu Mi41MC4yMDEwMTIzMS9nZGIvaW5mcnVuLmMKICB9CiAgCiAgLyogUmV0dXJucyB0cnVlIGlmIGFu eSB0aHJlYWQgKmJ1dCogdGhlIG9uZSBwYXNzZWQgaW4gImRhdGEiIGlzIGluIHRoZQotSW5kZXg6 IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2xpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMi41MC4y MDExMDExNy9nZGIvbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAx MjMxLm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTEtMDEtMDEgMDE6MjU6MTYuMDAwMDAwMDAwICsw MTAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvbGludXgtbmF0LmMJMjAxMS0wMS0wMSAw MToyNToxNi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0yOTA4LDcgKzI5MDgsMTAgQEAgY291bnRfZXZl bnRzX2NhbGxiYWNrIChzdHJ1Y3QgbHdwX2luZm8gKgorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcu b3JpZy9nZGIvbGludXgtbmF0LmMJMjAxMS0wMS0xNyAxNTo0NzozNy4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9saW51eC1uYXQuYwkyMDExLTAxLTE3IDE1OjQ4 OjM5LjAwMDAwMDAwMCArMDEwMAorQEAgLTI5MjgsNyArMjkyOCwxMCBAQCBjb3VudF9ldmVudHNf Y2FsbGJhY2sgKHN0cnVjdCBsd3BfaW5mbyAqCiAgc3RhdGljIGludAogIHNlbGVjdF9zaW5nbGVz dGVwX2x3cF9jYWxsYmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwgdm9pZCAqZGF0YSkKICB7CkBA IC0xOTIsMTAgKzE5MiwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvbGludXgt bmF0LmMKICAgICAgcmV0dXJuIDE7CiAgICBlbHNlCiAgICAgIHJldHVybiAwOwotSW5kZXg6IGdk Yi03LjIuNTAuMjAxMDEyMzEvZ2RiL2xpbnV4LW5hdC5oCitJbmRleDogZ2RiLTcuMi41MC4yMDEx MDExNy9nZGIvbGludXgtbmF0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAxMjMx Lm9yaWcvZ2RiL2xpbnV4LW5hdC5oCTIwMTEtMDEtMDEgMDE6MjU6MTYuMDAwMDAwMDAwICswMTAw Ci0rKysgZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvbGludXgtbmF0LmgJMjAxMS0wMS0wMSAwMToy NToxNi4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2xp bnV4LW5hdC5oCTIwMTEtMDEtMTcgMTU6NDc6MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu Mi41MC4yMDExMDExNy9nZGIvbGludXgtbmF0LmgJMjAxMS0wMS0xNyAxNTo0ODozOS4wMDAwMDAw MDAgKzAxMDAKIEBAIC01NSw4ICs1NSw4IEBAIHN0cnVjdCBsd3BfaW5mbwogICAgLyogSWYgbm9u LXplcm8sIGEgcGVuZGluZyB3YWl0IHN0YXR1cy4gICovCiAgICBpbnQgc3RhdHVzOwoKZGlmZiAt LWdpdCBhL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2ggYi9nZGItNi44LXF1aXQtbmV2 ZXItYWJvcnRzLnBhdGNoCmluZGV4IDc5YTJmNDcuLmQ3MTU1N2YgMTAwNjQ0Ci0tLSBhL2dkYi02 LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2gKKysrIGIvZ2RiLTYuOC1xdWl0LW5ldmVyLWFib3J0 cy5wYXRjaApAQCAtNSwxMCArNSwxMCBAQCBTb21lIG9mIHRoZSB0aHJlYWRzIG1heSBub3QgYmUg cHJvcGVybHkgUFRSQUNFX0RFVEFDSGVkIHdoaWNoIGh1cnRzIGlmIHRoZXkKIHNob3VsZCBoYXZl IGJlZW4gZGV0YWNoZWQgd2l0aCBTSUdTVE9QIChhcyB0aGV5IGFyZSBhY2NpZGVudGFsbHkgbGVm dCBydW5uaW5nCiBvbiB0aGUgZGVidWdnZXIgdGVybWluYXRpb24pLgogCi1JbmRleDogZ2RiLTcu Mi41MC4yMDEwMTIzMS9nZGIvZGVmcy5oCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIv ZGVmcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEwMTIzMS5vcmlnL2dkYi9kZWZz LmgJMjAxMS0wMS0wMSAwMTowMDoyOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIw MTAxMjMxL2dkYi9kZWZzLmgJMjAxMS0wMS0wMSAwMTowOToxNy4wMDAwMDAwMDAgKzAxMDAKKy0t LSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2RlZnMuaAkyMDExLTAxLTE3IDE1OjQ3OjM3 LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2RlZnMuaAkyMDEx LTAxLTE3IDE1OjUzOjA1LjAwMDAwMDAwMCArMDEwMAogQEAgLTE2NSw2ICsxNjUsNyBAQCBleHRl cm4gY2hhciAqcHl0aG9uX2xpYmRpcjsKICBleHRlcm4gY2hhciAqZGVidWdfZmlsZV9kaXJlY3Rv cnk7CiAgCkBAIC0xOCw3ICsxOCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9k ZWZzLmgKICBleHRlcm4gaW50IHNldmVuYml0X3N0cmluZ3M7CiAgCiBAQCAtMTc4LDcgKzE3OSw3 IEBAIGV4dGVybiB2b2lkIHF1aXQgKHZvaWQpOwotICAgIG5lZWRlZC4gKi8KKyAgICBuZWVkZWQu ICAqLwogIAogICNkZWZpbmUgUVVJVCB7IFwKIC0gIGlmIChxdWl0X2ZsYWcpIHF1aXQgKCk7IFwK QEAgLTI2LDEwICsyNiwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvZGVmcy5o CiAgICBpZiAoZGVwcmVjYXRlZF9pbnRlcmFjdGl2ZV9ob29rKSBkZXByZWNhdGVkX2ludGVyYWN0 aXZlX2hvb2sgKCk7IFwKICB9CiAgCi1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvZXZl bnQtdG9wLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9ldmVudC10b3AuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDEyMzEub3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAx MS0wMS0wMSAwMTowNzozNy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMjMx L2dkYi9ldmVudC10b3AuYwkyMDExLTAxLTAxIDAxOjA5OjM5LjAwMDAwMDAwMCArMDEwMAorLS0t IGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAxMS0wMS0xNyAxNTo1 MjozOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9ldmVudC10 b3AuYwkyMDExLTAxLTE3IDE1OjUyOjQ5LjAwMDAwMDAwMCArMDEwMAogQEAgLTkwNCw3ICs5MDQs NyBAQCBhc3luY19yZXF1ZXN0X3F1aXQgKGdkYl9jbGllbnRfZGF0YSBhcmcpCiAgICAgICBpcyBu byByZWFzb24gdG8gY2FsbCBxdWl0IGFnYWluIGhlcmUsIHVubGVzcyBpbW1lZGlhdGVfcXVpdCBp cwogICAgICAgc2V0LiAgKi8KQEAgLTM5LDExICszOSwxMSBAQCBJbmRleDogZ2RiLTcuMi41MC4y MDEwMTIzMS9nZGIvZXZlbnQtdG9wLmMKICAgICAgcXVpdCAoKTsKICB9CiAgCi1JbmRleDogZ2Ri LTcuMi41MC4yMDEwMTIzMS9nZGIvdG9wLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dk Yi90b3AuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDEyMzEub3JpZy9nZGIvdG9w LmMJMjAxMS0wMS0wMSAwMTowMDoyOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIw MTAxMjMxL2dkYi90b3AuYwkyMDExLTAxLTAxIDAxOjA5OjE3LjAwMDAwMDAwMCArMDEwMAotQEAg LTEyNTQsNyArMTI1NCw5IEBAIHF1aXRfZm9yY2UgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkK Ky0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3RvcC5jCTIwMTEtMDEtMTcgMTU6NDc6 MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdG9wLmMJMjAx MS0wMS0xNyAxNTo1Mjo0OS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMjU3LDcgKzEyNTcsOSBAQCBx dWl0X2ZvcmNlIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCiAgICBxdC5hcmdzID0gYXJnczsK ICAgIHF0LmZyb21fdHR5ID0gZnJvbV90dHk7CiAgCkBAIC01NCwxMCArNTQsMTAgQEAgSW5kZXg6 IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL3RvcC5jCiAgICBjYXRjaF9lcnJvcnMgKHF1aXRfdGFy Z2V0LCAmcXQsCiAgCSAgICAgICAgIlF1aXR0aW5nOiAiLCBSRVRVUk5fTUFTS19BTEwpOwogIAot SW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL3V0aWxzLmMKK0luZGV4OiBnZGItNy4yLjUw LjIwMTEwMTE3L2dkYi91dGlscy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEwMTIz MS5vcmlnL2dkYi91dGlscy5jCTIwMTEtMDEtMDEgMDE6MDA6MjkuMDAwMDAwMDAwICswMTAwCi0r KysgZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvdXRpbHMuYwkyMDExLTAxLTAxIDAxOjA5OjE3LjAw MDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvdXRpbHMuYwky MDExLTAxLTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAx MTcvZ2RiL3V0aWxzLmMJMjAxMS0wMS0xNyAxNTo1Mjo0OS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0x MjEsNiArMTIxLDExIEBAIGludCBqb2JfY29udHJvbDsKICAKICBpbnQgcXVpdF9mbGFnOwoKZGlm ZiAtLWdpdCBhL2dkYi1hcmNoZXItcGllLWFkZG9ucy5wYXRjaCBiL2dkYi1hcmNoZXItcGllLWFk ZG9ucy5wYXRjaAppbmRleCA2N2NhMzRhLi4wYTQ3ODY2IDEwMDY0NAotLS0gYS9nZGItYXJjaGVy LXBpZS1hZGRvbnMucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci1waWUtYWRkb25zLnBhdGNoCkBAIC0x LDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2R3YXJmMnJlYWQuYwor SW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjIuNTAuMjAxMDExMTYub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTAtMTEtMTYg MDg6MjU6MjEuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvZHdh cmYycmVhZC5jCTIwMTAtMTEtMTYgMDg6MjY6MzUuMDAwMDAwMDAwICswMTAwCi1AQCAtNzMyNSw3 ICs3MzI1LDEyIEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKKy0t LSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDExLTAxLTE3IDE1 OjU2OjIzLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2R3YXJm MnJlYWQuYwkyMDExLTAxLTE3IDE2OjAwOjE0LjAwMDAwMDAwMCArMDEwMAorQEAgLTc0NzUsNyAr NzQ3NSwxMiBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgewog ICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAgIHN0cnVjdCBzeW1ib2wgKnN5bTsKQEAgLTE2 LDcgKzE2LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2R3YXJmMnJlYWQuYwog IAogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2xvY2F0aW9uLCBjdSk7CiAgICBp ZiAoYXR0cikKLUBAIC03MzM0LDYgKzczMzksNyBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0 IGRpZV9pbmZvICpkaWUsCitAQCAtNzQ4NCw2ICs3NDg5LDcgQEAgcmVhZF9jb21tb25fYmxvY2sg KHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0 dHIpKQogICAgICAgICAgewogICAgICAgICAgICBiYXNlID0gZGVjb2RlX2xvY2Rlc2MgKERXX0JM T0NLIChhdHRyKSwgY3UpOwpAQCAtMjQsNyArMjQsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEw MTExNi9nZGIvZHdhcmYycmVhZC5jCiAgICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoYXR0cl9m b3JtX2lzX3NlY3Rpb25fb2Zmc2V0IChhdHRyKSkKICAgICAgICAgIHsKLUBAIC03Mzk1LDEyICs3 NDAxLDE1IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC03 NTQ1LDEyICs3NTUxLDE1IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwKICAJICAgICAgZWxzZQogIAkJZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25fZXhwcl9jb21wbGFp bnQgKCk7CiAgCkBAIC00Miw3ICs0Miw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dk Yi9kd2FyZjJyZWFkLmMKICAJICBlbHNlCiAgCSAgICBTRVRfRklFTERfUEhZU05BTUUgKCpmaWVs ZCwgU1lNQk9MX0xJTktBR0VfTkFNRSAoc3ltKSk7CiAgCSAgRklFTERfVFlQRSAoKmZpZWxkKSA9 IFNZTUJPTF9UWVBFIChzeW0pOwotQEAgLTc0MTQsNyArNzQyMyw3IEBAIHJlYWRfY29tbW9uX2Js b2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC03NTY0LDcgKzc1NzMsNyBAQCByZWFkX2Nv bW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgCiAgICAgICAgc3ltID0gbmV3X3N5 bWJvbCAoZGllLCB0eXBlLCBjdSk7CiAgICAgICAgLyogU1lNQk9MX1ZBTFVFX0FERFJFU1MgbmV2 ZXIgZ2V0cyB1c2VkIGFzIGFsbCBpdHMgZmllbGRzIGFyZSBzdGF0aWMuICAqLwpAQCAtNTEsMTEg KzUxLDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9kd2FyZjJyZWFkLmMKICAK ICAgICAgICBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogICAgICB9Ci1JbmRleDogZ2Ri LTcuMi41MC4yMDEwMTExNi9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAx MTcvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAxMTE2Lm9y aWcvZ2RiL2dkYnR5cGVzLmgJMjAxMC0xMS0xNiAwODowMTozMy4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9nZGJ0eXBlcy5oCTIwMTAtMTEtMTYgMDg6MjY6MzUu MDAwMDAwMDAwICswMTAwCi1AQCAtMzk1LDYgKzM5NSw3IEBAIGVudW0gdHlwZV9pbnN0YW5jZV9m bGFnX3ZhbHVlCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIw MTEtMDEtMTcgMTU6NTE6MDMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEx Ny9nZGIvZ2RidHlwZXMuaAkyMDExLTAxLTE3IDE2OjAwOjMyLjAwMDAwMDAwMCArMDEwMAorQEAg LTM5NCw2ICszOTQsNyBAQCBlbnVtIHR5cGVfaW5zdGFuY2VfZmxhZ192YWx1ZQogIGVudW0gZmll bGRfbG9jX2tpbmQKICAgIHsKICAgICAgRklFTERfTE9DX0tJTkRfQklUUE9TLAkvKiBiaXRwb3Mg Ki8KQEAgLTY1LDEzICs2NSwxMyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvZ2Ri dHlwZXMuaAogICAgfTsKIEBAIC01NzYsNiArNTc3LDcgQEAgc3RydWN0IG1haW5fdHlwZQogIAkg ICBpcyB0aGUgbG9jYXRpb24gKGluIHRoZSB0YXJnZXQpIG9mIHRoZSBzdGF0aWMgZmllbGQuCi0g CSAgIE90aGVyd2lzZSwgcGh5c25hbWUgaXMgdGhlIG1hbmdsZWQgbGFiZWwgb2YgdGhlIHN0YXRp YyBmaWVsZC4gKi8KKyAJICAgT3RoZXJ3aXNlLCBwaHlzbmFtZSBpcyB0aGUgbWFuZ2xlZCBsYWJl bCBvZiB0aGUgc3RhdGljIGZpZWxkLiAgKi8KICAKICsJLyogVGhpcyBhZGRyZXNzIGlzIHVucmVs b2NhdGVkIGJ5IHRoZSBvYmpmaWxlJ3MgQU5PRkZTRVQuICAqLwogIAlDT1JFX0FERFIgcGh5c2Fk ZHI7CiAgCWNoYXIgKnBoeXNuYW1lOwogICAgICAgIH0KLUBAIC0xMTAxLDYgKzExMDMsNyBAQCBl eHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CitAQCAtMTEwMiw2ICsxMTA0 LDcgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQogICNkZWZpbmUg RklFTERfTE9DX0tJTkQodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2Nfa2luZCkKICAjZGVmaW5lIEZJ RUxEX0JJVFBPUyh0aGlzZmxkKSAoKHRoaXNmbGQpLmxvYy5iaXRwb3MpCiAgI2RlZmluZSBGSUVM RF9TVEFUSUNfUEhZU05BTUUodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2MucGh5c25hbWUpCkBAIC03 OSw3ICs3OSw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9nZGJ0eXBlcy5oCiAg I2RlZmluZSBGSUVMRF9TVEFUSUNfUEhZU0FERFIodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2MucGh5 c2FkZHIpCiAgI2RlZmluZSBTRVRfRklFTERfQklUUE9TKHRoaXNmbGQsIGJpdHBvcykJCQlcCiAg ICAoRklFTERfTE9DX0tJTkQgKHRoaXNmbGQpID0gRklFTERfTE9DX0tJTkRfQklUUE9TLAkJXAot QEAgLTExMDgsNiArMTExMSw3IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUg KHN0cnUKK0BAIC0xMTA5LDYgKzExMTIsNyBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1 eF90eXBlIChzdHJ1CiAgI2RlZmluZSBTRVRfRklFTERfUEhZU05BTUUodGhpc2ZsZCwgbmFtZSkJ CQlcCiAgICAoRklFTERfTE9DX0tJTkQgKHRoaXNmbGQpID0gRklFTERfTE9DX0tJTkRfUEhZU05B TUUsCQlcCiAgICAgRklFTERfU1RBVElDX1BIWVNOQU1FICh0aGlzZmxkKSA9IChuYW1lKSkKQEAg LTg3LDcgKzg3LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2dkYnR5cGVzLmgK ICAjZGVmaW5lIFNFVF9GSUVMRF9QSFlTQUREUih0aGlzZmxkLCBhZGRyKQkJCVwKICAgIChGSUVM RF9MT0NfS0lORCAodGhpc2ZsZCkgPSBGSUVMRF9MT0NfS0lORF9QSFlTQUREUiwJCVwKICAgICBG SUVMRF9TVEFUSUNfUEhZU0FERFIgKHRoaXNmbGQpID0gKGFkZHIpKQotQEAgLTExMjAsNiArMTEy NCw3IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnUKK0BAIC0xMTIx LDYgKzExMjUsNyBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CiAg I2RlZmluZSBUWVBFX0ZJRUxEX0xPQ19LSU5EKHRoaXN0eXBlLCBuKSBGSUVMRF9MT0NfS0lORCAo VFlQRV9GSUVMRCAodGhpc3R5cGUsIG4pKQogICNkZWZpbmUgVFlQRV9GSUVMRF9CSVRQT1ModGhp c3R5cGUsIG4pIEZJRUxEX0JJVFBPUyAoVFlQRV9GSUVMRCAodGhpc3R5cGUsIG4pKQogICNkZWZp bmUgVFlQRV9GSUVMRF9TVEFUSUNfUEhZU05BTUUodGhpc3R5cGUsIG4pIEZJRUxEX1NUQVRJQ19Q SFlTTkFNRSAoVFlQRV9GSUVMRCAodGhpc3R5cGUsIG4pKQpAQCAtOTUsMjEgKzk1LDIxIEBAIElu ZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9nZGJ0eXBlcy5oCiAgI2RlZmluZSBUWVBFX0ZJ RUxEX1NUQVRJQ19QSFlTQUREUih0aGlzdHlwZSwgbikgRklFTERfU1RBVElDX1BIWVNBRERSIChU WVBFX0ZJRUxEICh0aGlzdHlwZSwgbikpCiAgI2RlZmluZSBUWVBFX0ZJRUxEX0FSVElGSUNJQUwo dGhpc3R5cGUsIG4pIEZJRUxEX0FSVElGSUNJQUwoVFlQRV9GSUVMRCh0aGlzdHlwZSxuKSkKICAj ZGVmaW5lIFRZUEVfRklFTERfQklUU0laRSh0aGlzdHlwZSwgbikgRklFTERfQklUU0laRShUWVBF X0ZJRUxEKHRoaXN0eXBlLG4pKQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2p2LWxh bmcuYworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2p2LWxhbmcuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjIuNTAuMjAxMDExMTYub3JpZy9nZGIvanYtbGFuZy5jCTIwMTAtMDgtMDkg MjE6NDI6NDcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvanYt bGFuZy5jCTIwMTAtMTEtMTYgMDg6MjY6MzUuMDAwMDAwMDAwICswMTAwCi1AQCAtNDA5LDcgKzQw OSw4IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGIt Ny4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2p2LWxhbmcuYwkyMDExLTAxLTA5IDA0OjA4OjU3LjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2p2LWxhbmcuYwkyMDEx LTAxLTE3IDE2OjAwOjU5LjAwMDAwMDAwMCArMDEwMAorQEAgLTQxNCw3ICs0MTQsOCBAQCBqYXZh X2xpbmtfY2xhc3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkCiAgCiAgICBmaWVsZHMgPSBOVUxM OwotICAgbmZpZWxkcy0tOwkJCS8qIEZpcnN0IHNldCB1cCBkdW1teSAiY2xhc3MiIGZpZWxkLiAq LworICAgbmZpZWxkcy0tOwkJCS8qIEZpcnN0IHNldCB1cCBkdW1teSAiY2xhc3MiIGZpZWxkLiAg Ki8KIC0gIFNFVF9GSUVMRF9QSFlTQUREUiAoVFlQRV9GSUVMRCAodHlwZSwgbmZpZWxkcyksIHZh bHVlX2FkZHJlc3MgKGNsYXMpKTsKICsgIFNFVF9GSUVMRF9QSFlTQUREUiAoVFlQRV9GSUVMRCAo dHlwZSwgbmZpZWxkcyksIHZhbHVlX2FkZHJlc3MgKGNsYXMpCiArICAgIC0gKFRZUEVfT0JKRklM RSAodHlwZSkgPT0gTlVMTCA/IDAgOiBBTk9GRlNFVCAoVFlQRV9PQkpGSUxFICh0eXBlKS0+c2Vj dGlvbl9vZmZzZXRzLCBTRUNUX09GRl9URVhUIChUWVBFX09CSkZJTEUgKHR5cGUpKSkpKTsKICAg IFRZUEVfRklFTERfTkFNRSAodHlwZSwgbmZpZWxkcykgPSAiY2xhc3MiOwogICAgVFlQRV9GSUVM RF9UWVBFICh0eXBlLCBuZmllbGRzKSA9IHZhbHVlX3R5cGUgKGNsYXMpOwogICAgU0VUX1RZUEVf RklFTERfUFJJVkFURSAodHlwZSwgbmZpZWxkcyk7Ci1AQCAtNDU3LDcgKzQ1OCw4IEBAIGphdmFf bGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKK0BAIC00NjIsNyArNDYzLDggQEAg amF2YV9saW5rX2NsYXNzX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZAogIAkgIFNFVF9UWVBFX0ZJ RUxEX1BST1RFQ1RFRCAodHlwZSwgaSk7CiAgCX0KICAgICAgICBpZiAoYWNjZmxhZ3MgJiAweDAw MDgpCS8qIEFDQ19TVEFUSUMgKi8KQEAgLTExOSwxMSArMTE5LDExIEBAIEluZGV4OiBnZGItNy4y LjUwLjIwMTAxMTE2L2dkYi9qdi1sYW5nLmMKICAgICAgICBlbHNlCiAgCVRZUEVfRklFTERfQklU UE9TICh0eXBlLCBpKSA9IDggKiBib2Zmc2V0OwogICAgICAgIGlmIChhY2NmbGFncyAmIDB4ODAw MCkJLyogRklFTERfVU5SRVNPTFZFRF9GTEFHICovCi1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTEx Ni9nZGIvdmFsdWUuYworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3ZhbHVlLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAxMTE2Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxMC0x MS0xNiAwNzo1NDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dk Yi92YWx1ZS5jCTIwMTAtMTEtMTYgMDg6MjY6MzUuMDAwMDAwMDAwICswMTAwCi1AQCAtMTk2NSw3 ICsxOTY1LDggQEAgdmFsdWVfc3RhdGljX2ZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaQorLS0t IGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvdmFsdWUuYwkyMDExLTAxLTE3IDE1OjQ3OjM3 LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3ZhbHVlLmMJMjAx MS0wMS0xNyAxNjowMDoxNC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xOTk3LDcgKzE5OTcsOCBAQCB2 YWx1ZV9zdGF0aWNfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBpCiAgICAgIHsKICAgICAgY2Fz ZSBGSUVMRF9MT0NfS0lORF9QSFlTQUREUjoKICAgICAgICByZXR2YWwgPSB2YWx1ZV9hdF9sYXp5 IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkbm8pLAoKZGlmZiAtLWdpdCBhL2dkYi1hcmNo ZXIucGF0Y2ggYi9nZGItYXJjaGVyLnBhdGNoCmluZGV4IDYzMjA0ZDQuLmNhNmRlYjcgMTAwNjQ0 Ci0tLSBhL2dkYi1hcmNoZXIucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci5wYXRjaApAQCAtMiw3ICsy LDcgQEAgaHR0cDovL3NvdXJjZXdhcmUub3JnL2dkYi93aWtpL1Byb2plY3RBcmNoZXIKIGh0dHA6 Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9BcmNoZXJCcmFuY2hNYW5hZ2VtZW50CiAKIEdJVCBz bmFwc2hvdDoKLWNvbW1pdCBmMDZhY2ZkZTRjYzZkZjIxZDRmMzQ1NDdlNWRlMWEwMTcwZTdiMjYz Citjb21taXQgY2U4OGZlMzY1MzIyYjBmNzQ3OWM0M2VlZGU2ZDNhMGQzMzdlYjc4NgogCiBicmFu Y2ggYGFyY2hlcicgLSB0aGUgbWVyZ2Ugb2YgYnJhbmNoZXM6CiBhcmNoZXItamFua3JhdG9jaHZp bC12bGEKQEAgLTE0LDE5ICsxNCwxOSBAQCBhcmNoZXItdHJvbWV5LXB5dGhvbgogCiAKIGRpZmYg LS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KLWluZGV4IDk0NTlkZTQu Ljk1YzNiNTcgMTAwNjQ0CitpbmRleCAyMjZmYWY2Li4wM2FhYTJjIDEwMDY0NAogLS0tIGEvZ2Ri L01ha2VmaWxlLmluCiArKysgYi9nZGIvTWFrZWZpbGUuaW4KLUBAIC03ODIsNyArNzgyLDggQEAg Y29uZmlnL3JzNjAwMC9ubS1yczYwMDAuaCB0b3AuaCBic2Qta3ZtLmggZ2RiLXN0YWJzLmggcmVn Z3JvdXBzLmggXAotIGFubm90YXRlLmggc2ltLXJlZ25vLmggZGljdGlvbmFyeS5oIGRmcC5oIG1h aW4uaCBmcmFtZS11bndpbmQuaAlcCitAQCAtNzgzLDcgKzc4Myw4IEBAIGFubm90YXRlLmggc2lt LXJlZ25vLmggZGljdGlvbmFyeS5oIGRmcC5oIG1haW4uaCBmcmFtZS11bndpbmQuaAlcCiAgcmVt b3RlLWZpbGVpby5oIGkzODYtbGludXgtdGRlcC5oIHZheC10ZGVwLmggb2JqYy1sYW5nLmggXAog IHNlbnRpbmVsLWZyYW1lLmggYmNhY2hlLmggc3ltZmlsZS5oIHdpbmRvd3MtdGRlcC5oIGxpbnV4 LXRkZXAuaCBcCi0tZ2RiX3VzbGVlcC5oIGppdC5oIHhtbC1zeXNjYWxsLmggYWRhLW9wZXJhdG9y LmluYyBtaWNyb2JsYXplLXRkZXAuaCBcCi0rZ2RiX3VzbGVlcC5oIGppdC5oIHB5dGhvbi9weXRo b24uaCBweXRob24vcHl0aG9uLWludGVybmFsLmggXAotK3htbC1zeXNjYWxsLmggYWRhLW9wZXJh dG9yLmluYyBtaWNyb2JsYXplLXRkZXAuaCBcCi0gcHN5bXRhYi5oIHBzeW1wcml2LmggcHJvZ3Nw YWNlLmggYmZpbi10ZGVwLmgKKyBnZGJfdXNsZWVwLmggaml0LmggeG1sLXN5c2NhbGwuaCBhZGEt b3BlcmF0b3IuaW5jIG1pY3JvYmxhemUtdGRlcC5oIFwKKy1wc3ltdGFiLmggcHN5bXByaXYuaCBw cm9nc3BhY2UuaCBiZmluLXRkZXAuaCBpYTY0LWhwdXgtdGRlcC5oCisrcHN5bXRhYi5oIHBzeW1w cml2LmggcHJvZ3NwYWNlLmggYmZpbi10ZGVwLmggaWE2NC1ocHV4LXRkZXAuaCBcCisrcHl0aG9u L3B5dGhvbi5oIHB5dGhvbi9weXRob24taW50ZXJuYWwuaAogIAogICMgSGVhZGVyIGZpbGVzIHRo YXQgYWxyZWFkeSBoYXZlIHNyY2RpciBpbiB0aGVtLCBvciB3aGljaCBhcmUgaW4gb2JqZGlyLgor IAogQEAgLTEyODksNiArMTI5MCwxMiBAQCBzdGFtcC1oOiAkKHNyY2RpcikvY29uZmlnLmluIGNv bmZpZy5zdGF0dXMKICAJICBDT05GSUdfTElOS1M9IFwKICAJICAkKFNIRUxMKSBjb25maWcuc3Rh dHVzCkBAIC00MSwxMCArNDEsMTAgQEAgaW5kZXggOTQ1OWRlNC4uOTVjM2I1NyAxMDA2NDQKICAJ JChTSEVMTCkgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sKICAKIGRpZmYgLS1naXQgYS9nZGIvYWRh LWxhbmcuYyBiL2dkYi9hZGEtbGFuZy5jCi1pbmRleCAzZWZmZjJlLi45OTA5N2JmIDEwMDY0NAor aW5kZXggODkwZTA5MS4uZDFlMWY4ZiAxMDA2NDQKIC0tLSBhL2dkYi9hZGEtbGFuZy5jCiArKysg Yi9nZGIvYWRhLWxhbmcuYwotQEAgLTExMzU2LDYgKzExMzU2LDcgQEAgYWRhX29wZXJhdG9yX2xl bmd0aCAoY29uc3Qgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBjLCBpbnQgKm9wbGVucCwK K0BAIC0xMTM3Miw2ICsxMTM3Miw3IEBAIGFkYV9vcGVyYXRvcl9sZW5ndGggKGNvbnN0IHN0cnVj dCBleHByZXNzaW9uICpleHAsIGludCBwYywgaW50ICpvcGxlbnAsCiAgCiAgc3RhdGljIGludAog IGFkYV9vcGVyYXRvcl9jaGVjayAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywKQEAg LTUyLDcgKzUyLDcgQEAgaW5kZXggM2VmZmYyZS4uOTkwOTdiZiAxMDA2NDQKICAJCSAgICBpbnQg KCpvYmpmaWxlX2Z1bmMpIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0YSksCiAg CQkgICAgdm9pZCAqZGF0YSkKICB7Ci1AQCAtMTEzNzAsMTIgKzExMzcxLDE1IEBAIGFkYV9vcGVy YXRvcl9jaGVjayAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywKK0BAIC0xMTM4Niwx MiArMTEzODcsMTUgQEAgYWRhX29wZXJhdG9yX2NoZWNrIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw LCBpbnQgcG9zLAogIAlicmVhazsKICAKICAgICAgICBkZWZhdWx0OgpAQCAtNzEsNyArNzEsNyBA QCBpbmRleCAzZWZmZjJlLi45OTA5N2JmIDEwMDY0NAogICAgICByZXR1cm4gMTsKICAKIGRpZmYg LS1naXQgYS9nZGIvYW1kNjQtbGludXgtbmF0LmMgYi9nZGIvYW1kNjQtbGludXgtbmF0LmMKLWlu ZGV4IDg3NzA3MmMuLjIxNTRiNzMgMTAwNjQ0CitpbmRleCBhODY5Zjg1Li5jNTlkYWEwIDEwMDY0 NAogLS0tIGEvZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCiArKysgYi9nZGIvYW1kNjQtbGludXgtbmF0 LmMKIEBAIC0yNjUsMTggKzI2NSwxMSBAQCBhbWQ2NF9saW51eF9zdG9yZV9pbmZlcmlvcl9yZWdp c3RlcnMgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsCkBAIC0zOTIsNyArMzkyLDcgQEAgaW5kZXgg YjlhYWY1NC4uZTFmMzI0MiAxMDA2NDQKICAKICAvKiBSZXR1cm4gdGhlIGlubmVybW9zdCBzdGFj ayBmcmFtZSBleGVjdXRpbmcgaW5zaWRlIG9mIEJMT0NLLCBvciBOVUxMCiBkaWZmIC0tZ2l0IGEv Z2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9icmVha3BvaW50LmMKLWluZGV4IDk3ZWZjMGEuLmY2MzNm NTcgMTAwNjQ0CitpbmRleCA4ZDA2OTJiLi4zNzM4MzBmIDEwMDY0NAogLS0tIGEvZ2RiL2JyZWFr cG9pbnQuYwogKysrIGIvZ2RiL2JyZWFrcG9pbnQuYwogQEAgLTYyLDYgKzYyLDcgQEAKQEAgLTQy NCw3ICs0MjQsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogIC8qIEFzc3VtaW5n IHdlJ3JlIGNyZWF0aW5nIGEgc3RhdGljIHRyYWNlcG9pbnQsIGRvZXMgUyBsb29rIGxpa2UgYQog ICAgIHN0YXRpYyB0cmFjZXBvaW50IG1hcmtlciBzcGVjICgiLW0gTUFSS0VSX0lEIik/ICAqLwog ICNkZWZpbmUgaXNfbWFya2VyX3NwZWMocykJCQkJCQlcCi1AQCAtMTI3OCw2ICsxMjg2LDIyIEBA IHdhdGNocG9pbnRfaW5fdGhyZWFkX3Njb3BlIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKK0BAIC0x MjY5LDYgKzEyNzcsMjIgQEAgd2F0Y2hwb2ludF9pbl90aHJlYWRfc2NvcGUgKHN0cnVjdCBicmVh a3BvaW50ICpiKQogIAkgICAgICAmJiAhaXNfZXhlY3V0aW5nIChpbmZlcmlvcl9wdGlkKSkpOwog IH0KICAKQEAgLTQ0Nyw3ICs0NDcsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAog IC8qIEFzc3VtaW5nIHRoYXQgQiBpcyBhIHdhdGNocG9pbnQ6CiAgICAgLSBSZXBhcnNlIHdhdGNo cG9pbnQgZXhwcmVzc2lvbiwgaWYgUkVQQVJTRSBpcyBub24temVybwogICAgIC0gRXZhbHVhdGUg ZXhwcmVzc2lvbiBhbmQgc3RvcmUgdGhlIHJlc3VsdCBpbiBCLT52YWwKLUBAIC0xMzM3LDEyICsx MzYxLDE3IEBAIHVwZGF0ZV93YXRjaHBvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwgaW50IHJl cGFyc2UpCitAQCAtMTMyOCwxMiArMTM1MiwxNyBAQCB1cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0 IGJyZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQogICAgc3RydWN0IGZyYW1lX2lkIHNhdmVkX2Zy YW1lX2lkOwogICAgaW50IGZyYW1lX3NhdmVkOwogIApAQCAtNDY1LDkgKzQ2NSw5IEBAIGluZGV4 IDk3ZWZjMGEuLmY2MzNmNTcgMTAwNjQ0CiAgICAvKiBXZSBkb24ndCBmcmVlIGxvY2F0aW9ucy4g IFRoZXkgYXJlIHN0b3JlZCBpbiBicF9sb2NhdGlvbiBhcnJheQogICAgICAgYW5kIHVwZGF0ZV9n bG9iYWxfbG9jYXRpb25zIHdpbGwgZXZlbnR1YWxseSBkZWxldGUgdGhlbSBhbmQKICAgICAgIHJl bW92ZSBicmVha3BvaW50cyBpZiBuZWVkZWQuICAqLwotQEAgLTE1NDIsMTMgKzE1NzEsNyBAQCB1 cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQotIAkJ CSAidGhlIHByb2dyYW0gaGFzIGxlZnQgdGhlIGJsb2NrXG4iCi0gCQkJICJpbiB3aGljaCBpdHMg ZXhwcmVzc2lvbiBpcyB2YWxpZC5cbiIpLAorQEAgLTE1NTUsMTMgKzE1ODQsNyBAQCB1cGRhdGVf d2F0Y2hwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQorIFdhdGNocG9p bnQgJWQgZGVsZXRlZCBiZWNhdXNlIHRoZSBwcm9ncmFtIGhhcyBsZWZ0IHRoZSBibG9ja1xuXAor IGluIHdoaWNoIGl0cyBleHByZXNzaW9uIGlzIHZhbGlkLlxuIiksCiAgCQkgICAgICAgYi0+bnVt YmVyKTsKIC0gICAgICBpZiAoYi0+cmVsYXRlZF9icmVha3BvaW50KQogLQl7CkBAIC00ODAsNyAr NDgwLDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAgICAgfQogIAogICAgLyog UmVzdG9yZSB0aGUgc2VsZWN0ZWQgZnJhbWUuICAqLwotQEAgLTE5MzAsNiArMTk1Myw3IEBAIGlu c2VydF9icmVha3BvaW50X2xvY2F0aW9ucyAodm9pZCkKK0BAIC0xOTUyLDYgKzE5NzUsNyBAQCBp bnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCiAgICBpbnQgdmFsID0gMDsKICAgIGlu dCBkaXNhYmxlZF9icmVha3MgPSAwOwogICAgaW50IGh3X2JyZWFrcG9pbnRfZXJyb3IgPSAwOwpA QCAtNDg4LDcgKzQ4OCw3IEBAIGluZGV4IDk3ZWZjMGEuLmY2MzNmNTcgMTAwNjQ0CiAgCiAgICBz dHJ1Y3QgdWlfZmlsZSAqdG1wX2Vycm9yX3N0cmVhbSA9IG1lbV9maWxlb3BlbiAoKTsKICAgIHN0 cnVjdCBjbGVhbnVwICpjbGVhbnVwcyA9IG1ha2VfY2xlYW51cF91aV9maWxlX2RlbGV0ZSAodG1w X2Vycm9yX3N0cmVhbSk7Ci1AQCAtMTk1Nyw5ICsxOTgxLDEzIEBAIGluc2VydF9icmVha3BvaW50 X2xvY2F0aW9ucyAodm9pZCkKK0BAIC0xOTc5LDkgKzIwMDMsMTMgQEAgaW5zZXJ0X2JyZWFrcG9p bnRfbG9jYXRpb25zICh2b2lkKQogICAgICAgIC8qIEZvciB0YXJnZXRzIHRoYXQgc3VwcG9ydCBn bG9iYWwgYnJlYWtwb2ludHMsIHRoZXJlJ3Mgbm8gbmVlZAogIAkgdG8gc2VsZWN0IGFuIGluZmVy aW9yIHRvIGluc2VydCBicmVha3BvaW50IHRvLiAgSW4gZmFjdCwgZXZlbgogIAkgaWYgd2UgYXJl bid0IGF0dGFjaGVkIHRvIGFueSBwcm9jZXNzIHlldCwgd2Ugc2hvdWxkIHN0aWxsCkBAIC01MDQs NyArNTA0LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAJY29udGludWU7CiAg CiAgICAgICAgdmFsID0gaW5zZXJ0X2JwX2xvY2F0aW9uIChibCwgdG1wX2Vycm9yX3N0cmVhbSwg JmRpc2FibGVkX2JyZWFrcywKLUBAIC0xOTgzLDEzICsyMDExLDE5IEBAIGluc2VydF9icmVha3Bv aW50X2xvY2F0aW9ucyAodm9pZCkKK0BAIC0yMDA1LDEzICsyMDMzLDE5IEBAIGluc2VydF9icmVh a3BvaW50X2xvY2F0aW9ucyAodm9pZCkKICAKICAgICAgICBpZiAoYnB0LT5kaXNwb3NpdGlvbiA9 PSBkaXNwX2RlbF9hdF9uZXh0X3N0b3ApCiAgCWNvbnRpbnVlOwpAQCAtNTMwLDE3ICs1MzAsNyBA QCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogICAgICAgIGlmIChzb21lX2ZhaWxlZCkK ICAJewogIAkgIGZvciAobG9jID0gYnB0LT5sb2M7IGxvYzsgbG9jID0gbG9jLT5uZXh0KQotQEAg LTI1MzksOCArMjU3Myw3IEBAIHJlbW92ZV9icmVha3BvaW50XzEgKHN0cnVjdCBicF9sb2NhdGlv biAqYmwsIGluc2VydGlvbl9zdGF0ZV90IGlzKQotICAgICB7Ci0gICAgICAgYmwtPmluc2VydGVk ID0gKGlzID09IG1hcmtfaW5zZXJ0ZWQpOwotICAgICAgIHZhbCA9IHRhcmdldF9yZW1vdmVfd2F0 Y2hwb2ludCAoYmwtPmFkZHJlc3MsIGJsLT5sZW5ndGgsCi0tCQkJCSAgICAgIGJsLT53YXRjaHBv aW50X3R5cGUsIAotLQkJCQkgICAgICBibC0+b3duZXItPmNvbmRfZXhwKTsKLSsJCQkJICAgICAg YmwtPndhdGNocG9pbnRfdHlwZSwgYmwtPm93bmVyLT5jb25kX2V4cCk7Ci0gCi0gICAgICAgLyog RmFpbHVyZSB0byByZW1vdmUgYW55IG9mIHRoZSBoYXJkd2FyZSB3YXRjaHBvaW50cyBjb21lcyBo ZXJlLiAgKi8KLSAgICAgICBpZiAoKGlzID09IG1hcmtfdW5pbnNlcnRlZCkgJiYgKGJsLT5pbnNl cnRlZCkpCi1AQCAtMzQzNiw2ICszNDY5LDggQEAgcHJpbnRfaXRfdHlwaWNhbCAoYnBzdGF0IGJz KQorQEAgLTM0NjEsNiArMzQ5NSw4IEBAIHByaW50X2l0X3R5cGljYWwgKGJwc3RhdCBicykKICAg ICAgY2FzZSBicF90cmFjZXBvaW50OgogICAgICBjYXNlIGJwX2Zhc3RfdHJhY2Vwb2ludDoKICAg ICAgY2FzZSBicF9qaXRfZXZlbnQ6CkBAIC01NDksNyArNTM5LDcgQEAgaW5kZXggOTdlZmMwYS4u ZjYzM2Y1NyAxMDA2NDQKICAgICAgZGVmYXVsdDoKICAgICAgICByZXN1bHQgPSBQUklOVF9VTktO T1dOOwogICAgICAgIGJyZWFrOwotQEAgLTM2NTcsNiArMzY5Miw4IEBAIHdhdGNocG9pbnRfY2hl Y2sgKHZvaWQgKnApCitAQCAtMzY4Miw2ICszNzE4LDggQEAgd2F0Y2hwb2ludF9jaGVjayAodm9p ZCAqcCkKICAgIGdkYl9hc3NlcnQgKGJzLT5icmVha3BvaW50X2F0ICE9IE5VTEwpOwogICAgYiA9 IGJzLT5icmVha3BvaW50X2F0OwogIApAQCAtNTU4LDcgKzU0OCw3IEBAIGluZGV4IDk3ZWZjMGEu LmY2MzNmNTcgMTAwNjQ0CiAgICAvKiBJZiB0aGlzIGlzIGEgbG9jYWwgd2F0Y2hwb2ludCwgd2Ug b25seSB3YW50IHRvIGNoZWNrIGlmIHRoZQogICAgICAgd2F0Y2hwb2ludCBmcmFtZSBpcyBpbiBz Y29wZSBpZiB0aGUgY3VycmVudCB0aHJlYWQgaXMgdGhlIHRocmVhZAogICAgICAgdGhhdCB3YXMg dXNlZCB0byBjcmVhdGUgdGhlIHdhdGNocG9pbnQuICAqLwotQEAgLTM3NjYsMTMgKzM4MDMsNyBA QCB3YXRjaHBvaW50X2NoZWNrICh2b2lkICpwKQorQEAgLTM3OTEsMTMgKzM4MjksNyBAQCB3YXRj aHBvaW50X2NoZWNrICh2b2lkICpwKQogIAkJICAgIiBkZWxldGVkIGJlY2F1c2UgdGhlIHByb2dy YW0gaGFzIGxlZnQgdGhlIGJsb2NrIGluXG5cCiAgd2hpY2ggaXRzIGV4cHJlc3Npb24gaXMgdmFs aWQuXG4iKTsgICAgIAogIApAQCAtNTczLDcgKzU2Myw3IEBAIGluZGV4IDk3ZWZjMGEuLmY2MzNm NTcgMTAwNjQ0CiAgCiAgICAgICAgcmV0dXJuIFdQX0RFTEVURUQ7CiAgICAgIH0KLUBAIC0zOTc3 LDkgKzQwMDgsNyBAQCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0IGJzKQorQEAgLTQw MDIsOSArNDAzNCw3IEBAIGJwc3RhdF9jaGVja193YXRjaHBvaW50IChicHN0YXQgYnMpCiAgCSAg ICBjYXNlIDA6CiAgCSAgICAgIC8qIEVycm9yIGZyb20gY2F0Y2hfZXJyb3JzLiAgKi8KICAJICAg ICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJXYXRjaHBvaW50ICVkIGRlbGV0ZWQuXG4iKSwgYi0+bnVt YmVyKTsKQEAgLTU4NCw3ICs1NzQsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAog IAkgICAgICAvKiBXZSd2ZSBhbHJlYWR5IHByaW50ZWQgd2hhdCBuZWVkcyB0byBiZSBwcmludGVk LiAgKi8KICAJICAgICAgYnMtPnByaW50X2l0ID0gcHJpbnRfaXRfZG9uZTsKICAJICAgICAgYnJl YWs7Ci1AQCAtNDE4NSw3ICs0MjE0LDcgQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChzdHJ1Y3QgYWRk cmVzc19zcGFjZSAqYXNwYWNlLAorQEAgLTQyMTAsNyArNDI0MCw3IEBAIGJwc3RhdF9zdG9wX3N0 YXR1cyAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZSwKICAJICAgICB3YXRjaHBvaW50IGFz IHRyaWdnZXJlZCBzbyB0aGF0IHdlIHdpbGwgaGFuZGxlIHRoZQogIAkgICAgIG91dC1vZi1zY29w ZSBldmVudC4gIFdlJ2xsIGdldCB0byB0aGUgd2F0Y2hwb2ludCBuZXh0CiAgCSAgICAgaXRlcmF0 aW9uLiAgKi8KQEAgLTU5Myw3ICs1ODMsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0 NAogIAkgICAgYi0+cmVsYXRlZF9icmVha3BvaW50LT53YXRjaHBvaW50X3RyaWdnZXJlZCA9IHdh dGNoX3RyaWdnZXJlZF95ZXM7CiAgCX0KICAgICAgfQotQEAgLTQzMDcsNyArNDMzNiw3IEBAIGhh bmRsZV9qaXRfZXZlbnQgKHZvaWQpCitAQCAtNDMzMiw3ICs0MzYyLDcgQEAgaGFuZGxlX2ppdF9l dmVudCAodm9pZCkKICAvKiBEZWNpZGUgd2hhdCBpbmZydW4gbmVlZHMgdG8gZG8gd2l0aCB0aGlz IGJwc3RhdC4gICovCiAgCiAgc3RydWN0IGJwc3RhdF93aGF0CkBAIC02MDIsNyArNTkyLDcgQEAg aW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgYnBzdGF0X3doYXQg cmV0dmFsOwogICAgLyogV2UgbmVlZCB0byBkZWZlciBjYWxsaW5nIGBzb2xpYl9hZGQnLCBhcyBh ZGRpbmcgbmV3IHN5bWJvbHMKLUBAIC00MzE1LDEyICs0MzQ0LDEzIEBAIGJwc3RhdF93aGF0IChi cHN0YXQgYnMpCitAQCAtNDM0MCwxMiArNDM3MCwxMyBAQCBicHN0YXRfd2hhdCAoYnBzdGF0IGJz KQogICAgICAgYW5kIGhlbmNlIG1heSBjbGVhciB1bnByb2Nlc3NlZCBlbnRyaWVzIGluIHRoZSBC UyBjaGFpbi4gICovCiAgICBpbnQgc2hsaWJfZXZlbnQgPSAwOwogICAgaW50IGppdF9ldmVudCA9 IDA7CkBAIC02MTcsNyArNjA3LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAg ICAgewogICAgICAgIC8qIEV4dHJhY3QgdGhpcyBCUydzIGFjdGlvbi4gIEFmdGVyIHByb2Nlc3Np bmcgZWFjaCBCUywgd2UgY2hlY2sKICAJIGlmIGl0cyBhY3Rpb24gb3ZlcnJpZGVzIGFsbCB3ZSd2 ZSBzZWVtIHNvIGZhci4gICovCi1AQCAtNDQ1MCw2ICs0NDgwLDIwIEBAIGJwc3RhdF93aGF0IChi cHN0YXQgYnMpCitAQCAtNDQ3NSw2ICs0NTA2LDIwIEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMp CiAgCSAgICAgb3V0IGFscmVhZHkuICAqLwogIAkgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywg X19MSU5FX18sCiAgCQkJICBfKCJicHN0YXRfd2hhdDogdHJhY2Vwb2ludCBlbmNvdW50ZXJlZCIp KTsKQEAgLTYzOCw3ICs2MjgsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogIAlk ZWZhdWx0OgogIAkgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCiAgCQkJICBf KCJicHN0YXRfd2hhdDogdW5oYW5kbGVkIGJwdHlwZSAlZCIpLCAoaW50KSBicHR5cGUpOwotQEAg LTQ0ODcsNiArNDUzMSwyMSBAQCBicHN0YXRfd2hhdCAoYnBzdGF0IGJzKQorQEAgLTQ1MTIsNiAr NDU1NywyMSBAQCBicHN0YXRfd2hhdCAoYnBzdGF0IGJzKQogICAgICAgIGhhbmRsZV9qaXRfZXZl bnQgKCk7CiAgICAgIH0KICAKQEAgLTY2MCw3ICs2NTAsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMz ZjU3IDEwMDY0NAogICAgcmV0dXJuIHJldHZhbDsKICB9CiAgCi1AQCAtNDYwOCw2ICs0NjY3LDgg QEAgYnB0eXBlX3N0cmluZyAoZW51bSBicHR5cGUgdHlwZSkKK0BAIC00NjMzLDYgKzQ2OTMsOCBA QCBicHR5cGVfc3RyaW5nIChlbnVtIGJwdHlwZSB0eXBlKQogICAgICB7YnBfZmFzdF90cmFjZXBv aW50LCAiZmFzdCB0cmFjZXBvaW50In0sCiAgICAgIHticF9zdGF0aWNfdHJhY2Vwb2ludCwgInN0 YXRpYyB0cmFjZXBvaW50In0sCiAgICAgIHticF9qaXRfZXZlbnQsICJqaXQgZXZlbnRzIn0sCkBA IC02NjksNyArNjU5LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAgIH07CiAg CiAgICBpZiAoKChpbnQpIHR5cGUgPj0gKHNpemVvZiAoYnB0eXBlcykgLyBzaXplb2YgKGJwdHlw ZXNbMF0pKSkKLUBAIC00NzU1LDYgKzQ4MTYsOCBAQCBwcmludF9vbmVfYnJlYWtwb2ludF9sb2Nh dGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCitAQCAtNDc4MCw2ICs0ODQyLDggQEAgcHJpbnRf b25lX2JyZWFrcG9pbnRfbG9jYXRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiLAogICAgICAgIGNh c2UgYnBfZmFzdF90cmFjZXBvaW50OgogICAgICAgIGNhc2UgYnBfc3RhdGljX3RyYWNlcG9pbnQ6 CiAgICAgICAgY2FzZSBicF9qaXRfZXZlbnQ6CkBAIC02NzgsNyArNjY4LDcgQEAgaW5kZXggOTdl ZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAJaWYgKG9wdHMuYWRkcmVzc3ByaW50KQogIAkgIHsKICAJ ICAgIGFubm90YXRlX2ZpZWxkICg0KTsKLUBAIC01MDM2LDcgKzUwOTksOCBAQCB1c2VyX3NldHRh YmxlX2JyZWFrcG9pbnQgKGNvbnN0IHN0cnVjdCBicmVha3BvaW50ICpiKQorQEAgLTUwNjEsNyAr NTEyNSw4IEBAIHVzZXJfc2V0dGFibGVfYnJlYWtwb2ludCAoY29uc3Qgc3RydWN0IGJyZWFrcG9p bnQgKmIpCiAgCSAgfHwgYi0+dHlwZSA9PSBicF9jYXRjaHBvaW50CiAgCSAgfHwgYi0+dHlwZSA9 PSBicF9oYXJkd2FyZV9icmVha3BvaW50CiAgCSAgfHwgaXNfdHJhY2Vwb2ludCAoYikKQEAgLTY4 OCw3ICs2NzgsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogIH0KICAKICAvKiBQ cmludCBpbmZvcm1hdGlvbiBvbiB1c2VyIHNldHRhYmxlIGJyZWFrcG9pbnQgKHdhdGNocG9pbnQs IGV0YykKLUBAIC01NTE4LDYgKzU1ODIsOCBAQCBhbGxvY2F0ZV9icF9sb2NhdGlvbiAoc3RydWN0 IGJyZWFrcG9pbnQgKmJwdCkKK0BAIC01NTQzLDYgKzU2MDgsOCBAQCBhbGxvY2F0ZV9icF9sb2Nh dGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKICAgICAgY2FzZSBicF9sb25nam1wX21hc3Rl cjoKICAgICAgY2FzZSBicF9zdGRfdGVybWluYXRlX21hc3RlcjoKICAgICAgY2FzZSBicF9leGNl cHRpb25fbWFzdGVyOgpAQCAtNjk3LDcgKzY4Nyw3IEBAIGluZGV4IDk3ZWZjMGEuLmY2MzNmNTcg MTAwNjQ0CiAgICAgICAgbG9jLT5sb2NfdHlwZSA9IGJwX2xvY19zb2Z0d2FyZV9icmVha3BvaW50 OwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQ6Ci1AQCAt NTYwNyw2ICs1NjczLDcgQEAgc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRfbG9jYXRpb24gKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTU2MzIsNiArNTY5OSw3IEBAIHNldF9yYXdfYnJl YWtwb2ludF93aXRob3V0X2xvY2F0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAgIGIt Pm9wcyA9IE5VTEw7CiAgICBiLT5jb25kaXRpb25fbm90X3BhcnNlZCA9IDA7CiAgICBiLT5weV9i cF9vYmplY3QgPSBOVUxMOwpAQCAtNzA1LDcgKzY5NSw3IEBAIGluZGV4IDk3ZWZjMGEuLmY2MzNm NTcgMTAwNjQ0CiAgCiAgICAvKiBBZGQgdGhpcyBicmVha3BvaW50IHRvIHRoZSBlbmQgb2YgdGhl IGNoYWluIHNvIHRoYXQgYSBsaXN0IG9mCiAgICAgICBicmVha3BvaW50cyB3aWxsIGNvbWUgb3V0 IGluIG9yZGVyIG9mIGluY3JlYXNpbmcgbnVtYmVycy4gICovCi1AQCAtNTYyNSw3ICs1NjkyLDcg QEAgc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRfbG9jYXRpb24gKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLAorQEAgLTU2NTAsNyArNTcxOCw3IEBAIHNldF9yYXdfYnJlYWtwb2ludF93aXRob3V0 X2xvY2F0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAKICAvKiBJbml0aWFsaXplIGxv Yy0+ZnVuY3Rpb25fbmFtZS4gICovCiAgc3RhdGljIHZvaWQKQEAgLTcxNCw3ICs3MDQsNyBAQCBp bmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogIHsKICAgIGdkYl9hc3NlcnQgKGxvYy0+b3du ZXIgIT0gTlVMTCk7CiAgCi1AQCAtNTYzMyw4ICs1NzAwLDI5IEBAIHNldF9icmVha3BvaW50X2xv Y2F0aW9uX2Z1bmN0aW9uIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKK0BAIC01NjU4LDggKzU3 MjYsMjkgQEAgc2V0X2JyZWFrcG9pbnRfbG9jYXRpb25fZnVuY3Rpb24gKHN0cnVjdCBicF9sb2Nh dGlvbiAqbG9jKQogICAgICAgIHx8IGxvYy0+b3duZXItPnR5cGUgPT0gYnBfaGFyZHdhcmVfYnJl YWtwb2ludAogICAgICAgIHx8IGlzX3RyYWNlcG9pbnQgKGxvYy0+b3duZXIpKQogICAgICB7CkBA IC03NDYsNyArNzM2LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAgICAgICBp ZiAobG9jLT5mdW5jdGlvbl9uYW1lKQogIAlsb2MtPmZ1bmN0aW9uX25hbWUgPSB4c3RyZHVwIChs b2MtPmZ1bmN0aW9uX25hbWUpOwogICAgICB9Ci1AQCAtNTcwOSw3ICs1Nzk3LDggQEAgc2V0X3Jh d19icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC01NzM0LDcgKzU4MjMs OCBAQCBzZXRfcmF3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogICAgYi0+ bG9jLT5zZWN0aW9uID0gc2FsLnNlY3Rpb247CiAgICBiLT5saW5lX251bWJlciA9IHNhbC5saW5l OwogIApAQCAtNzU2LDcgKzc0Niw3IEBAIGluZGV4IDk3ZWZjMGEuLmY2MzNmNTcgMTAwNjQ0CiAg CiAgICBicmVha3BvaW50c19jaGFuZ2VkICgpOwogIAotQEAgLTY3OTksNyArNjg4OCw3IEBAIGNs b25lX21vbWVudGFyeV9icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqb3JpZykKK0BAIC02 ODM4LDcgKzY5MjgsNyBAQCBjbG9uZV9tb21lbnRhcnlfYnJlYWtwb2ludCAoc3RydWN0IGJyZWFr cG9pbnQgKm9yaWcpCiAgCiAgICBjb3B5ID0gc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRfbG9j YXRpb24gKG9yaWctPmdkYmFyY2gsIG9yaWctPnR5cGUpOwogICAgY29weS0+bG9jID0gYWxsb2Nh dGVfYnBfbG9jYXRpb24gKGNvcHkpOwpAQCAtNzY1LDcgKzc1NSw3IEBAIGluZGV4IDk3ZWZjMGEu LmY2MzNmNTcgMTAwNjQ0CiAgCiAgICBjb3B5LT5sb2MtPmdkYmFyY2ggPSBvcmlnLT5sb2MtPmdk YmFyY2g7CiAgICBjb3B5LT5sb2MtPnJlcXVlc3RlZF9hZGRyZXNzID0gb3JpZy0+bG9jLT5yZXF1 ZXN0ZWRfYWRkcmVzczsKLUBAIC02ODk5LDYgKzY5ODgsNyBAQCBtZW50aW9uIChzdHJ1Y3QgYnJl YWtwb2ludCAqYikKK0BAIC02OTM4LDYgKzcwMjgsNyBAQCBtZW50aW9uIChzdHJ1Y3QgYnJlYWtw b2ludCAqYikKICAJZG9fY2xlYW51cHMgKHVpX291dF9jaGFpbik7CiAgCWJyZWFrOwogICAgICAg IGNhc2UgYnBfYnJlYWtwb2ludDoKQEAgLTc3Myw3ICs3NjMsNyBAQCBpbmRleCA5N2VmYzBhLi5m NjMzZjU3IDEwMDY0NAogIAlpZiAodWlfb3V0X2lzX21pX2xpa2VfcCAodWlvdXQpKQogIAkgIHsK ICAJICAgIHNheV93aGVyZSA9IDA7Ci1AQCAtNjkwOSw2ICs2OTk5LDggQEAgbWVudGlvbiAoc3Ry dWN0IGJyZWFrcG9pbnQgKmIpCitAQCAtNjk0OCw2ICs3MDM5LDggQEAgbWVudGlvbiAoc3RydWN0 IGJyZWFrcG9pbnQgKmIpCiAgCWVsc2UKICAJICBwcmludGZfZmlsdGVyZWQgKF8oIkJyZWFrcG9p bnQiKSk7CiAgCXByaW50Zl9maWx0ZXJlZCAoXygiICVkIiksIGItPm51bWJlcik7CkBAIC03ODIs NyArNzcyLDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAJc2F5X3doZXJlID0g MTsKICAJYnJlYWs7CiAgICAgICAgY2FzZSBicF9oYXJkd2FyZV9icmVha3BvaW50OgotQEAgLTY5 NjgsNiArNzA2MCw3IEBAIG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiKQorQEAgLTcwMDcs NiArNzEwMCw3IEBAIG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiKQogICAgICAgIGNhc2Ug YnBfbG9uZ2ptcF9tYXN0ZXI6CiAgICAgICAgY2FzZSBicF9zdGRfdGVybWluYXRlX21hc3RlcjoK ICAgICAgICBjYXNlIGJwX2V4Y2VwdGlvbl9tYXN0ZXI6CkBAIC03OTAsNyArNzgwLDcgQEAgaW5k ZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAJYnJlYWs7CiAgICAgICAgfQogIAotQEAgLTcw MjgsNyArNzEyMSw4IEBAIGFkZF9sb2NhdGlvbl90b19icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtw b2ludCAqYiwKK0BAIC03MDY3LDcgKzcxNjEsOCBAQCBhZGRfbG9jYXRpb25fdG9fYnJlYWtwb2lu dCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCiAgICBnZGJfYXNzZXJ0IChsb2MtPnBzcGFjZSAhPSBO VUxMKTsKICAgIGxvYy0+c2VjdGlvbiA9IHNhbC0+c2VjdGlvbjsKICAKQEAgLTgwMCw3ICs3OTAs NyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogICAgcmV0dXJuIGxvYzsKICB9CiAg DAotQEAgLTg0MjcsNiArODUyMSw3IEBAIHdhdGNoX2NvbW1hbmRfMSAoY2hhciAqYXJnLCBpbnQg YWNjZXNzZmxhZywgaW50IGZyb21fdHR5LAorQEAgLTg1MTMsNiArODYwOCw3IEBAIHdhdGNoX2Nv bW1hbmRfMSAoY2hhciAqYXJnLCBpbnQgYWNjZXNzZmxhZywgaW50IGZyb21fdHR5LAogICAgYiA9 IHNldF9yYXdfYnJlYWtwb2ludF93aXRob3V0X2xvY2F0aW9uIChOVUxMLCBicF90eXBlKTsKICAg IHNldF9icmVha3BvaW50X251bWJlciAoaW50ZXJuYWwsIGIpOwogICAgYi0+dGhyZWFkID0gdGhy ZWFkOwpAQCAtODA4LDcgKzc5OCw3IEBAIGluZGV4IDk3ZWZjMGEuLmY2MzNmNTcgMTAwNjQ0CiAg ICBiLT5kaXNwb3NpdGlvbiA9IGRpc3BfZG9udHRvdWNoOwogICAgYi0+ZXhwID0gZXhwOwogICAg Yi0+ZXhwX3ZhbGlkX2Jsb2NrID0gZXhwX3ZhbGlkX2Jsb2NrOwotQEAgLTk1ODIsNiArOTY3Nyw5 IEBAIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCitAQCAt OTY4NCw2ICs5NzgwLDkgQEAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0IChpbnQgc2hvdWxk X2luc2VydCkKICAgICAgICBpbnQga2VlcF9pbl90YXJnZXQgPSAwOwogICAgICAgIGludCByZW1v dmVkID0gMDsKICAKQEAgLTgxOCw3ICs4MDgsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEw MDY0NAogICAgICAgIC8qIFNraXAgTE9DUCBlbnRyaWVzIHdoaWNoIHdpbGwgZGVmaW5pdGVseSBu ZXZlciBiZSBuZWVkZWQuCiAgCSBTdG9wIGVpdGhlciBhdCBvciBiZWluZyB0aGUgb25lIG1hdGNo aW5nIE9MRF9MT0MuICAqLwogICAgICAgIHdoaWxlIChsb2NwIDwgYnBfbG9jYXRpb24gKyBicF9s b2NhdGlvbl9jb3VudAotQEAgLTk4OTgsMTIgKzk5OTYsMjIgQEAgZGVsZXRlX2JyZWFrcG9pbnQg KHN0cnVjdCBicmVha3BvaW50ICpicHQpCitAQCAtMTAwMDAsMTIgKzEwMDk5LDIyIEBAIGRlbGV0 ZV9icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQogIAogICAgLyogQXQgbGVhc3Qg YXZvaWQgdGhpcyBzdGFsZSByZWZlcmVuY2UgdW50aWwgdGhlIHJlZmVyZW5jZSBjb3VudGluZwog ICAgICAgb2YgYnJlYWtwb2ludHMgZ2V0cyByZXNvbHZlZC4gICovCkBAIC04NDYsNyArODM2LDcg QEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAgICAgfQogIAogICAgb2JzZXJ2ZXJf bm90aWZ5X2JyZWFrcG9pbnRfZGVsZXRlZCAoYnB0LT5udW1iZXIpOwotQEAgLTEwMjM0LDYgKzEw MzQyLDkgQEAgdXBkYXRlX2JyZWFrcG9pbnRfbG9jYXRpb25zIChzdHJ1Y3QgYnJlYWtwb2ludCAq YiwKK0BAIC0xMDMzNiw2ICsxMDQ0NSw5IEBAIHVwZGF0ZV9icmVha3BvaW50X2xvY2F0aW9ucyAo c3RydWN0IGJyZWFrcG9pbnQgKmIsCiAgICAgIHJldHVybjsKICAKICAgIGItPmxvYyA9IE5VTEw7 CkBAIC04NTYsNyArODQ2LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAKICAg IGZvciAoaSA9IDA7IGkgPCBzYWxzLm5lbHRzOyArK2kpCiAgICAgIHsKLUBAIC0xMDI2MSwxMSAr MTAzNzIsNyBAQCB1cGRhdGVfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHN0cnVjdCBicmVha3BvaW50 ICpiLAorQEAgLTEwMzYzLDExICsxMDQ3NSw3IEBAIHVwZGF0ZV9icmVha3BvaW50X2xvY2F0aW9u cyAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCiAgCSAgICB9CiAgCX0KICAKQEAgLTg2OSw3ICs4NTks NyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogIAliLT5zb3VyY2VfZmlsZSA9IHhz dHJkdXAgKHNhbHMuc2Fsc1tpXS5zeW10YWItPmZpbGVuYW1lKTsKICAKICAgICAgICBpZiAoYi0+ bGluZV9udW1iZXIgPT0gMCkKLUBAIC0xMDM0OCw2ICsxMDQ1NSw3IEBAIGJyZWFrcG9pbnRfcmVf c2V0X29uZSAodm9pZCAqYmludCkKK0BAIC0xMDQ1MCw2ICsxMDU1OCw3IEBAIGJyZWFrcG9pbnRf cmVfc2V0X29uZSAodm9pZCAqYmludCkKICAgICAgY2FzZSBicF90cmFjZXBvaW50OgogICAgICBj YXNlIGJwX2Zhc3RfdHJhY2Vwb2ludDoKICAgICAgY2FzZSBicF9zdGF0aWNfdHJhY2Vwb2ludDoK QEAgLTg3Nyw3ICs4NjcsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogICAgICAg IC8qIERvIG5vdCBhdHRlbXB0IHRvIHJlLXNldCBicmVha3BvaW50cyBkaXNhYmxlZCBkdXJpbmcg c3RhcnR1cC4gICovCiAgICAgICAgaWYgKGItPmVuYWJsZV9zdGF0ZSA9PSBicF9zdGFydHVwX2Rp c2FibGVkKQogIAlyZXR1cm4gMDsKLUBAIC0xMDUxOCw2ICsxMDYyNiw3IEBAIGJyZWFrcG9pbnRf cmVfc2V0X29uZSAodm9pZCAqYmludCkKK0BAIC0xMDYyMCw2ICsxMDcyOSw3IEBAIGJyZWFrcG9p bnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKICAgICAgY2FzZSBicF9leGNlcHRpb246CiAgICAg IGNhc2UgYnBfZXhjZXB0aW9uX3Jlc3VtZToKICAgICAgY2FzZSBicF9qaXRfZXZlbnQ6CkBAIC04 ODUsNyArODc1LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAgICAgICBicmVh azsKICAgICAgfQogIAotQEAgLTEwNjkyLDExICsxMDgwMSwyNSBAQCBtYXBfYnJlYWtwb2ludF9u dW1iZXJzIChjaGFyICphcmdzLCB2b2lkICgqZnVuY3Rpb24pIChzdHJ1Y3QgYnJlYWtwb2ludCAq LAorQEAgLTEwNzk0LDExICsxMDkwNCwyNSBAQCBtYXBfYnJlYWtwb2ludF9udW1iZXJzIChjaGFy ICphcmdzLCB2b2lkICgqZnVuY3Rpb24pIChzdHJ1Y3QgYnJlYWtwb2ludCAqLAogIAkgIEFMTF9C UkVBS1BPSU5UU19TQUZFIChiLCB0bXApCiAgCSAgICBpZiAoYi0+bnVtYmVyID09IG51bSkKICAJ ICAgICAgewpAQCAtOTE1LDcgKzkwNSw3IEBAIGluZGV4IDk3ZWZjMGEuLmY2MzNmNTcgMTAwNjQ0 CiAgCQlicmVhazsKICAJICAgICAgfQogIAkgIGlmIChtYXRjaCA9PSAwKQotQEAgLTExODExLDYg KzExOTM0LDIyIEBAIGFsbF90cmFjZXBvaW50cyAoKQorQEAgLTExOTEzLDYgKzEyMDM3LDIyIEBA IGFsbF90cmFjZXBvaW50cyAoKQogICAgcmV0dXJuIHRwX3ZlYzsKICB9CiAgCkBAIC05MzgsNyAr OTI4LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAMCiAgLyogVGhpcyBoZWxw IHN0cmluZyBpcyB1c2VkIGZvciB0aGUgYnJlYWssIGhicmVhaywgdGJyZWFrIGFuZCB0aGJyZWFr CiAgICAgY29tbWFuZHMuICBJdCBpcyBkZWZpbmVkIGFzIGEgbWFjcm8gdG8gcHJldmVudCBkdXBs aWNhdGlvbi4KLUBAIC0xMTg5Niw2ICsxMjAzNSwxMDcgQEAgaXRlcmF0ZV9vdmVyX2JyZWFrcG9p bnRzIChpbnQgKCpjYWxsYmFjaykgKHN0cnVjdCBicmVha3BvaW50ICosIHZvaWQgKiksCitAQCAt MTE5OTgsNiArMTIxMzgsMTA3IEBAIGl0ZXJhdGVfb3Zlcl9icmVha3BvaW50cyAoaW50ICgqY2Fs bGJhY2spIChzdHJ1Y3QgYnJlYWtwb2ludCAqLCB2b2lkICopLAogICAgcmV0dXJuIE5VTEw7CiAg fQogIApAQCAtMTA0NiwxNCArMTAzNiwxNCBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0 NAogIHZvaWQKICBfaW5pdGlhbGl6ZV9icmVha3BvaW50ICh2b2lkKQogIHsKLUBAIC0xMjQzMCw0 ICsxMjY3MCw1IEBAIGluZmVyaW9yIGluIGFsbC1zdG9wIG1vZGUsIGdkYiBiZWhhdmVzIGFzIGlm IGFsd2F5cy1pbnNlcnRlZCBtb2RlIGlzIG9mZi4iKSwKK0BAIC0xMjUzMiw0ICsxMjc3Myw1IEBA IGluZmVyaW9yIGluIGFsbC1zdG9wIG1vZGUsIGdkYiBiZWhhdmVzIGFzIGlmIGFsd2F5cy1pbnNl cnRlZCBtb2RlIGlzIG9mZi4iKSwKICAgIGF1dG9tYXRpY19oYXJkd2FyZV9icmVha3BvaW50cyA9 IDE7CiAgCiAgICBvYnNlcnZlcl9hdHRhY2hfYWJvdXRfdG9fcHJvY2VlZCAoYnJlYWtwb2ludF9h Ym91dF90b19wcm9jZWVkKTsKICsgIG9ic2VydmVyX2F0dGFjaF9tYXJrX3VzZWQgKGJyZWFrcG9p bnRfdHlwZXNfbWFya191c2VkKTsKICB9CiBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuaCBi L2dkYi9icmVha3BvaW50LmgKLWluZGV4IDJkODE1YzIuLjY2YjNlY2UgMTAwNjQ0CitpbmRleCA2 OTU5OGE3Li4zMzZmYWY3IDEwMDY0NAogLS0tIGEvZ2RiL2JyZWFrcG9pbnQuaAogKysrIGIvZ2Ri L2JyZWFrcG9pbnQuaAogQEAgLTE0OCw2ICsxNDgsOSBAQCBlbnVtIGJwdHlwZQpAQCAtMTA2Nyw3 ICsxMDU3LDcgQEAgaW5kZXggMmQ4MTVjMi4uNjZiM2VjZSAxMDA2NDQKICAKICAvKiBTdGF0ZXMg b2YgZW5hYmxlbWVudCBvZiBicmVha3BvaW50LiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvYy10eXBl cHJpbnQuYyBiL2dkYi9jLXR5cGVwcmludC5jCi1pbmRleCBjODg5MjY0Li4zMTU1YWY3IDEwMDY0 NAoraW5kZXggOTkwOWUxMy4uMzBjM2RmZSAxMDA2NDQKIC0tLSBhL2dkYi9jLXR5cGVwcmludC5j CiArKysgYi9nZGIvYy10eXBlcHJpbnQuYwogQEAgLTYwOSw5ICs2MDksMTQgQEAgY190eXBlX3By aW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTExMjAsNyArMTExMCw3 IEBAIGluZGV4IDU2NWE4MzcuLmM5ZmYwZGUgMTAwNjQ0CiAgRkxBR1NfVE9fUEFTUyA9IFwKICAJ InByZWZpeD0kKHByZWZpeCkiIFwKIGRpZmYgLS1naXQgYS9nZGIvZGVmcy5oIGIvZ2RiL2RlZnMu aAotaW5kZXggNmE5MGIwOC4uMzFkNTVkZSAxMDA2NDQKK2luZGV4IDk0MDlkZGUuLmYwZmE0Yzcg MTAwNjQ0CiAtLS0gYS9nZGIvZGVmcy5oCiArKysgYi9nZGIvZGVmcy5oCiBAQCAtMzk4LDYgKzM5 OCw4IEBAIGV4dGVybiBzdHJ1Y3QgY2xlYW51cCAqbWFrZV9jbGVhbnVwX3Jlc3RvcmVfcGFnZV9p bmZvICh2b2lkKTsKQEAgLTExMzMsNyArMTEyMyw3IEBAIGluZGV4IDZhOTBiMDguLjMxZDU1ZGUg MTAwNjQ0CiAgZXh0ZXJuIGNoYXIgKnhmdWxscGF0aCAoY29uc3QgY2hhciAqKTsKICAKIGRpZmYg LS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotaW5kZXgg ZDQ3YTQ4NC4uYzg2MGM4NyAxMDA2NDQKK2luZGV4IGQ0OGQ5NWMuLjRjYWMxYmEgMTAwNjQ0CiAt LS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCiBAQCAt MTE3Nyw2ICsxMTc3LDE2IEBAIGZvciByZW1vdGUgZGVidWdnaW5nLgpAQCAtMTE1Myw3ICsxMTQz LDcgQEAgaW5kZXggZDQ3YTQ4NC4uYzg2MGM4NyAxMDA2NDQKICBAYyByZXNvbHZlIHRoZSBzaXR1 YXRpb24gb2YgdGhlc2UgZXZlbnR1YWxseQogIEBpdGVtIC10dWkKICBAY2luZGV4IEBjb2Rley0t dHVpfQotQEAgLTIwNjY1LDggKzIwNjc1LDYgQEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9y IGV4YW1wbGU6CitAQCAtMjA2MzAsOCArMjA2NDAsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0u ICBGb3IgZXhhbXBsZToKICAKICBAc21hbGxleGFtcGxlCiAgKEB2YWx1ZXtHREJQfSkgcHl0aG9u CkBAIC0xMTYyLDcgKzExNTIsNyBAQCBpbmRleCBkNDdhNDg0Li5jODYwYzg3IDEwMDY0NAogID5w cmludCAyMwogID5lbmQKICAyMwotQEAgLTIwNjc5LDYgKzIwNjg3LDE0IEBAIGluIGEgUHl0aG9u IHNjcmlwdC4gIFRoaXMgY2FuIGJlIGNvbnRyb2xsZWQgdXNpbmcgQGNvZGV7bWFpbnQgc2V0CitA QCAtMjA2NDQsNiArMjA2NTIsMTQgQEAgaW4gYSBQeXRob24gc2NyaXB0LiAgVGhpcyBjYW4gYmUg Y29udHJvbGxlZCB1c2luZyBAY29kZXttYWludCBzZXQKICBweXRob24gcHJpbnQtc3RhY2t9OiBp ZiBAY29kZXtvbn0sIHRoZSBkZWZhdWx0LCB0aGVuIFB5dGhvbiBzdGFjawogIHByaW50aW5nIGlz IGVuYWJsZWQ7IGlmIEBjb2Rle29mZn0sIHRoZW4gUHl0aG9uIHN0YWNrIHByaW50aW5nIGlzCiAg ZGlzYWJsZWQuCkBAIC0xMTc3LDcgKzExNjcsNyBAQCBpbmRleCBkNDdhNDg0Li5jODYwYzg3IDEw MDY0NAogIEBlbmQgdGFibGUKICAKICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGV4ZWN1dGUgYSBQ eXRob24gc2NyaXB0IGZyb20gdGhlIEB2YWx1ZXtHREJOfQotQEAgLTIwNzAwLDYgKzIwNzE2LDE0 IEBAIGFuZCB0aHVzIGlzIGFsd2F5cyBhdmFpbGFibGUuCitAQCAtMjA2NjUsNiArMjA2ODEsMTQg QEAgYW5kIHRodXMgaXMgYWx3YXlzIGF2YWlsYWJsZS4KICBAY2luZGV4IHB5dGhvbiBhcGkKICBA Y2luZGV4IHByb2dyYW1taW5nIGluIHB5dGhvbgogIApAQCAtMTE5MiwzNiArMTE4Miw2IEBAIGlu ZGV4IGQ0N2E0ODQuLmM4NjBjODcgMTAwNjQ0CiAgQGNpbmRleCBweXRob24gc3Rkb3V0CiAgQGNp bmRleCBweXRob24gcGFnaW5hdGlvbgogIEF0IHN0YXJ0dXAsIEB2YWx1ZXtHREJOfSBvdmVycmlk ZXMgUHl0aG9uJ3MgQGNvZGV7c3lzLnN0ZG91dH0gYW5kCi1AQCAtMjA3MTEsNyArMjA3MzUsNyBA QCBzaXR1YXRpb24sIGEgUHl0aG9uIEBjb2Rle0tleWJvYXJkSW50ZXJydXB0fSBleGNlcHRpb24g aXMgdGhyb3duLgotIEBtZW51Ci0gKiBCYXNpYyBQeXRob246OiAgICAgICAgICAgICAgICBCYXNp YyBQeXRob24gRnVuY3Rpb25zLgotICogRXhjZXB0aW9uIEhhbmRsaW5nOjoKLS0qIFZhbHVlcyBG cm9tIEluZmVyaW9yOjoKLSsqIFZhbHVlcyBGcm9tIEluZmVyaW9yOjoJUHl0aG9uIHJlcHJlc2Vu dGF0aW9uIG9mIHZhbHVlcy4KLSAqIFR5cGVzIEluIFB5dGhvbjo6ICAgICAgICAgICAgIFB5dGhv biByZXByZXNlbnRhdGlvbiBvZiB0eXBlcy4KLSAqIFByZXR0eSBQcmludGluZyBBUEk6OiAgICAg ICAgIFByZXR0eS1wcmludGluZyB2YWx1ZXMuCi0gKiBTZWxlY3RpbmcgUHJldHR5LVByaW50ZXJz OjogICBIb3cgR0RCIGNob29zZXMgYSBwcmV0dHktcHJpbnRlci4KLUBAIC0yMDc3Miw2ICsyMDc5 NiwxMiBAQCBSZXR1cm4gYSBzZXF1ZW5jZSBob2xkaW5nIGFsbCBvZiBAdmFsdWV7R0RCTn0ncyBi cmVha3BvaW50cy4KLSBAeHJlZntCcmVha3BvaW50cyBJbiBQeXRob259LCBmb3IgbW9yZSBpbmZv cm1hdGlvbi4KLSBAZW5kIGRlZnVuCi0gCi0rQGZpbmRleCBnZGIuYnJlYWtwb2ludHMKLStAZGVm dW4gYnJlYWtwb2ludHMKLStSZXR1cm4gYSBzZXF1ZW5jZSBob2xkaW5nIGFsbCBvZiBAdmFsdWV7 R0RCTn0ncyBicmVha3BvaW50cy4KLStAeHJlZntCcmVha3BvaW50cyBJbiBQeXRob259LCBmb3Ig bW9yZSBpbmZvcm1hdGlvbi4KLStAZW5kIGRlZnVuCi0rCi0gQGZpbmRleCBnZGIucGFyYW1ldGVy Ci0gQGRlZnVuIHBhcmFtZXRlciBwYXJhbWV0ZXIKLSBSZXR1cm4gdGhlIHZhbHVlIG9mIGEgQHZh bHVle0dEQk59IHBhcmFtZXRlci4gIEB2YXJ7cGFyYW1ldGVyfSBpcyBhCi1AQCAtMjA3ODksNiAr MjA4MTksNyBAQCB0eXBlLCBhbmQgcmV0dXJuZWQuCi0gQGRlZnVuIGhpc3RvcnkgbnVtYmVyCi0g UmV0dXJuIGEgdmFsdWUgZnJvbSBAdmFsdWV7R0RCTn0ncyB2YWx1ZSBoaXN0b3J5IChAcHhyZWZ7 VmFsdWUKLSBIaXN0b3J5fSkuICBAdmFye251bWJlcn0gaW5kaWNhdGVzIHdoaWNoIGhpc3Rvcnkg ZWxlbWVudCB0byByZXR1cm4uCi0rCi0gSWYgQHZhcntudW1iZXJ9IGlzIG5lZ2F0aXZlLCB0aGVu IEB2YWx1ZXtHREJOfSB3aWxsIHRha2UgaXRzIGFic29sdXRlIHZhbHVlCi0gYW5kIGNvdW50IGJh Y2t3YXJkIGZyb20gdGhlIGxhc3QgZWxlbWVudCAoaS5lLiwgdGhlIG1vc3QgcmVjZW50IGVsZW1l bnQpIHRvCi0gZmluZCB0aGUgdmFsdWUgdG8gcmV0dXJuLiAgSWYgQHZhcntudW1iZXJ9IGlzIHpl cm8sIHRoZW4gQHZhbHVle0dEQk59IHdpbGwKIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYmludC50 ZXhpbmZvIGIvZ2RiL2RvYy9nZGJpbnQudGV4aW5mbwogaW5kZXggODE0OWNiOS4uNDgxMjU1OCAx MDA2NDQKIC0tLSBhL2dkYi9kb2MvZ2RiaW50LnRleGluZm8KQEAgLTEzNjgsMTAgKzEzMjgsMTAg QEAgaW5kZXggZDE2Yzg2NS4uZDhkMjRkOSAxMDA2NDQKICBUaGlzIG9ic2VydmVyIGlzIHVzZWQg Zm9yIGludGVybmFsIHRlc3RpbmcuICBEbyBub3QgdXNlLiAgCiAgU2VlIHRlc3RzdWl0ZS9nZGIu Z2RiL29ic2VydmVyLmV4cC4KIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYyZXhwci5jIGIvZ2RiL2R3 YXJmMmV4cHIuYwotaW5kZXggYWE4YzhjZi4uNTM3YjY5YiAxMDA2NDQKK2luZGV4IGFmZTZkZGUu LmQzNjRiMTQgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYyZXhwci5jCiArKysgYi9nZGIvZHdhcmYy ZXhwci5jCi1AQCAtOTA0LDYgKzkwNCwxMyBAQCBleGVjdXRlX3N0YWNrX29wIChzdHJ1Y3QgZHdh cmZfZXhwcl9jb250ZXh0ICpjdHgsCitAQCAtOTA1LDYgKzkwNSwxMyBAQCBleGVjdXRlX3N0YWNr X29wIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgsCiAgCSAgY3R4LT5kd2FyZl9jYWxs IChjdHgsIHJlc3VsdCk7CiAgCSAgZ290byBub19wdXNoOwogIApAQCAtMTQwNyw3ICsxMzY3LDcg QEAgaW5kZXggMzg1OGRjOC4uYTE3MjU4NSAxMDA2NDQKICAgIC8qIFRoZSBjdXJyZW50IGRlcHRo IG9mIGR3YXJmIGV4cHJlc3Npb24gcmVjdXJzaW9uLCB2aWEgRFdfT1BfY2FsbCosCiAgICAgICBE V19PUF9mYnJlZywgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzcywgZXRjLiwgYW5kIHRoZSBtYXhp bXVtCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3YXJmMmxvYy5jCi1pbmRl eCA0ZWMyNTQ5Li42MGMzOGU5IDEwMDY0NAoraW5kZXggZDk1ODBjNi4uNTU5ZTBiNSAxMDA2NDQK IC0tLSBhL2dkYi9kd2FyZjJsb2MuYwogKysrIGIvZ2RiL2R3YXJmMmxvYy5jCiBAQCAtMTM0LDYg KzEzNCw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2JhdG9uCkBAIC0xNjc1LDEwICsxNjM1LDEwIEBA IGluZGV4IDRlYzI1NDkuLjYwYzM4ZTkgMTAwNjQ0CiArCSAgICAgICBEV19PUF9wdXNoX29iamVj dF9hZGRyZXNzLiAgKi8KICsJICAgIG9iamVjdF9hZGRyZXNzX3NldCAoYWRkcmVzcyk7CiArCi0g CSAgICByZXR2YWwgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7CisgCSAgICByZXR2YWwgPSBhbGxv Y2F0ZV92YWx1ZV9sYXp5ICh0eXBlKTsKICAJICAgIFZBTFVFX0xWQUwgKHJldHZhbCkgPSBsdmFs X21lbW9yeTsKLSAJICAgIHNldF92YWx1ZV9sYXp5IChyZXR2YWwsIDEpOwotQEAgLTI4MjIsMTEg KzI5ODAsNTEgQEAgbG9jbGlzdF90cmFjZXBvaW50X3Zhcl9yZWYgKHN0cnVjdCBzeW1ib2wgKnN5 bWJvbCwgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgCSAgICBpZiAoaW5fc3RhY2tfbWVtb3J5 KQorQEAgLTI4MjEsMTEgKzI5NzksNTEgQEAgbG9jbGlzdF90cmFjZXBvaW50X3Zhcl9yZWYgKHN0 cnVjdCBzeW1ib2wgKnN5bWJvbCwgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgCQkJIGRsYmF0 b24tPnBlcl9jdSk7CiAgfQogIApAQCAtMTc1Miw3ICsxNzEyLDcgQEAgaW5kZXggZWU1MjUwNi4u NmE3N2MzZiAxMDA2NDQKICAKICAjZW5kaWYgLyogZHdhcmYybG9jLmggKi8KIGRpZmYgLS1naXQg YS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5kZXggMjAxNTEzZC4uZjQ5 YTE0OSAxMDA2NDQKK2luZGV4IDAzYmQzMzEuLjBkNGQ0ZjkgMTAwNjQ0CiAtLS0gYS9nZGIvZHdh cmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCiBAQCAtMTIxMSw2ICsxMjExLDkgQEAg c3RhdGljIHZvaWQgZmlsbF9pbl9sb2NsaXN0X2JhdG9uIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwK QEAgLTE4NDcsNyArMTgwNyw3IEBAIGluZGV4IDIwMTUxM2QuLmY0OWExNDkgMTAwNjQ0CiAgCiAg ICAvKiBVbmRlcnN0YW5kIER3YXJmMiBzdXBwb3J0IGZvciB2ZWN0b3IgdHlwZXMgKGxpa2UgdGhl eSBvY2N1ciBvbgogICAgICAgdGhlIFBvd2VyUEMgdy8gQWx0aVZlYykuICBHY2MganVzdCBhZGRz IGFub3RoZXIgYXR0cmlidXRlIHRvIHRoZQotQEAgLTc4MzUsMjkgKzc4NjEsMTE0IEBAIHJlYWRf dGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCitAQCAtNzgzMywyOSArNzg1OSwxMTQgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAgICBzdHJ1Y3QgdHlwZSAq dHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwogICAgc3RydWN0IGF0 dHJpYnV0ZSAqYXR0cjsKQEAgLTE5MzksNyArMTg5OSw3IEBAIGluZGV4IDIwMTUxM2QuLmY0OWEx NDkgMTAwNjQ0CiAgICAgIH0KICAgIGVsc2UKICAgICAgewotLSAgICAgIC8qIGNoZWNrIGZvciB0 aGUgRFdfQVRfYnl0ZV9zaXplIGF0dHJpYnV0ZSAqLworLSAgICAgIC8qIENoZWNrIGZvciB0aGUg RFdfQVRfYnl0ZV9zaXplIGF0dHJpYnV0ZS4gICovCiArICAgICAgaWYgKGF0dHIgJiYgYXR0cl9m b3JtX2lzX2NvbnN0YW50IChhdHRyKSkKICsJewogKwkgIC8qIFdlIGN1cnJlbnRseSBkbyBub3Qg c3VwcG9ydCBhIGNvbnN0YW50IGFkZHJlc3Mgd2hlcmUgdGhlIGxvY2F0aW9uCkBAIC0xOTc2LDcg KzE5MzYsNyBAQCBpbmRleCAyMDE1MTNkLi5mNDlhMTQ5IDEwMDY0NAogICAgY2hhcl90eXBlID0g bGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2RlZm4sIGdkYmFyY2gpOwog ICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90eXBlLCByYW5nZV90eXBl KTsKICAKLUBAIC04MTM5LDggKzgyNTAsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04MTM2LDggKzgyNDcsNyBA QCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICpiYXNlX3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFu Z2VfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC0xOTg2LDcgKzE5NDYsNyBA QCBpbmRleCAyMDE1MTNkLi5mNDlhMTQ5IDEwMDY0NAogICAgY2hhciAqbmFtZTsKICAgIExPTkdF U1QgbmVnYXRpdmVfbWFzazsKICAKLUBAIC04MTUzLDQ4ICs4MjYzLDEyNSBAQCByZWFkX3N1YnJh bmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BA IC04MTUwLDUzICs4MjYwLDEyNiBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIGlmIChyYW5nZV90eXBlKQogICAgICBy ZXR1cm4gcmFuZ2VfdHlwZTsKICAKQEAgLTE5OTcsMjEgKzE5NTcsMjUgQEAgaW5kZXggMjAxNTEz ZC4uZjQ5YTE0OSAxMDA2NDQKIC0gICAgfQogKyAgLyogTE9XX0JPVU5EIGFuZCBISUdIX0JPVU5E IGFyZSBzZXQgZm9yIHJlYWwgYmVsb3cuICAqLwogKyAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5n ZV90eXBlIChOVUxMLCBiYXNlX3R5cGUsIDAsIC0xKTsKLSsKLSsgIG5lZ2F0aXZlX21hc2sgPSAK LSsgICAgKExPTkdFU1QpIC0xIDw8IChUWVBFX0xFTkdUSCAoYmFzZV90eXBlKSAqIFRBUkdFVF9D SEFSX0JJVCAtIDEpOwotKwotKyAgLyogRXhjbHVkZSBsYW5ndWFnZV9hZGEgZnJvbSBhbnkgVFlQ RV9EWU5BTUlDIGNvbnN0cnVjdHMgYmVsb3cuICBHREIgQWRhCi0rICAgICBzdXBwb3J0cyBpbXBs ZW1lbnRzIHRoZSBkeW5hbWljIGJvdW5kcyBpbiBhIG5vbi1EV0FSRiB3YXkgYW5kIHRoZQotKyAg ICAgZXhpc3RpbmcgRFdBUkYgZHluYW1pYyBib3VuZHMgYXJlIGludmFsaWQsIGxlYWRpbmcgdG8g bWVtb3J5IGFjY2VzcwotKyAgICAgZXJyb3JzLiAgKi8KKysgIFRZUEVfVU5TSUdORUQgKHJhbmdl X3R5cGUpID0gMDsKICAKIC0gIC8qIEZJWE1FOiBGb3IgdmFyaWFibGUgc2l6ZWQgYXJyYXlzIGVp dGhlciBvZiB0aGVzZSBjb3VsZCBiZQogLSAgICAgYSB2YXJpYWJsZSByYXRoZXIgdGhhbiBhIGNv bnN0YW50IHZhbHVlLiAgV2UnbGwgYWxsb3cgaXQsCiAtICAgICBidXQgd2UgZG9uJ3Qga25vdyBo b3cgdG8gaGFuZGxlIGl0LiAgKi8KLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9s b3dlcl9ib3VuZCwgY3UpOworLSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2xvd2Vy X2JvdW5kLCBjdSk7CiAtICBpZiAoYXR0cikKIC0gICAgbG93ID0gZHdhcmYyX2dldF9hdHRyX2Nv bnN0YW50X3ZhbHVlIChhdHRyLCAwKTsKKysgIG5lZ2F0aXZlX21hc2sgPSAKKysgICAgKExPTkdF U1QpIC0xIDw8IChUWVBFX0xFTkdUSCAoYmFzZV90eXBlKSAqIFRBUkdFVF9DSEFSX0JJVCAtIDEp OworIAorLSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX3VwcGVyX2JvdW5kLCBjdSk7 CistICBpZiAoYXR0cikKKysgIC8qIEV4Y2x1ZGUgbGFuZ3VhZ2VfYWRhIGZyb20gYW55IFRZUEVf RFlOQU1JQyBjb25zdHJ1Y3RzIGJlbG93LiAgR0RCIEFkYQorKyAgICAgc3VwcG9ydHMgaW1wbGVt ZW50cyB0aGUgZHluYW1pYyBib3VuZHMgaW4gYSBub24tRFdBUkYgd2F5IGFuZCB0aGUKKysgICAg IGV4aXN0aW5nIERXQVJGIGR5bmFtaWMgYm91bmRzIGFyZSBpbnZhbGlkLCBsZWFkaW5nIHRvIG1l bW9yeSBhY2Nlc3MKKysgICAgIGVycm9ycy4gICovCisrCisrICBhdHRyID0gZHdhcmYyX2F0dHIg KGRpZSwgRFdfQVRfbG93ZXJfYm91bmQsIGN1KTsKICsgIGlmIChhdHRyICYmIGF0dHJfZm9ybV9p c19ibG9jayAoYXR0cikgJiYgY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2FkYSkKICsgICAgewog KyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmxvdy5raW5kID0gUkFOR0VfQk9V TkRfS0lORF9EV0FSRl9CTE9DSzsKQEAgLTIwNDEsMTAgKzIwMDUsMjYgQEAgaW5kZXggMjAxNTEz ZC4uZjQ5YTE0OSAxMDA2NDQKICsgICAgICBsb3cgPSAwOwogKyAgICB9CiArICBlbHNlCi0rICAg IHsKKyAgICAgeworLSAgICAgIGlmIChhdHRyLT5mb3JtID09IERXX0ZPUk1fYmxvY2sxIHx8IGlz X3JlZl9hdHRyIChhdHRyKSkKKy0gICAgICAgIHsKKy0gICAgICAgICAgLyogR0NDIGVuY29kZXMg YXJyYXlzIHdpdGggdW5zcGVjaWZpZWQgb3IgZHluYW1pYyBsZW5ndGgKKy0gICAgICAgICAgICAg d2l0aCBhIERXX0ZPUk1fYmxvY2sxIGF0dHJpYnV0ZSBvciBhIHJlZmVyZW5jZSBhdHRyaWJ1dGUu CistICAgICAgICAgICAgIEZJWE1FOiBHREIgZG9lcyBub3QgeWV0IGtub3cgaG93IHRvIGhhbmRs ZSBkeW5hbWljCistICAgICAgICAgICAgIGFycmF5cyBwcm9wZXJseSwgdHJlYXQgdGhlbSBhcyBh cnJheXMgd2l0aCB1bnNwZWNpZmllZAorLSAgICAgICAgICAgICBsZW5ndGggZm9yIG5vdy4KKy0K Ky0gICAgICAgICAgICAgRklYTUU6IGppbWIvMjAwMy0wOS0yMjogR0RCIGRvZXMgbm90IHJlYWxs eSBrbm93CistICAgICAgICAgICAgIGhvdyB0byBoYW5kbGUgYXJyYXlzIG9mIHVuc3BlY2lmaWVk IGxlbmd0aAorLSAgICAgICAgICAgICBlaXRoZXI7IHdlIGp1c3QgcmVwcmVzZW50IHRoZW0gYXMg emVyby1sZW5ndGgKKy0gICAgICAgICAgICAgYXJyYXlzLiAgQ2hvb3NlIGFuIGFwcHJvcHJpYXRl IHVwcGVyIGJvdW5kIGdpdmVuCistICAgICAgICAgICAgIHRoZSBsb3dlciBib3VuZCB3ZSd2ZSBj b21wdXRlZCBhYm92ZS4gICovCistICAgICAgICAgIGhpZ2ggPSBsb3cgLSAxOworLSAgICAgICAg fQogKyAgICAgIGlmIChhdHRyICYmIGF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikpCiArCWxv dyA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMCk7Ci0rICAgICAgZWxz ZQorICAgICAgIGVsc2UKKy0gICAgICAgIGhpZ2ggPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRf dmFsdWUgKGF0dHIsIDEpOwogKwl7CiArCSAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9m b3J0cmFuKQogKwkgICAgewpAQCAtMjA2MywzNyArMjA0MywyNCBAQCBpbmRleCAyMDE1MTNkLi5m NDlhMTQ5IDEwMDY0NAogKyAgICAgIFRZUEVfTE9XX0JPVU5EIChyYW5nZV90eXBlKSA9IGxvdzsK ICsgICAgICBpZiAobG93ID49IDApCiArCVRZUEVfVU5TSUdORUQgKHJhbmdlX3R5cGUpID0gMTsK LSsgICAgfQotIAotICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX3VwcGVyX2JvdW5k LCBjdSk7Ci0tICBpZiAoYXR0cikKKyAgICAgfQorLSAgZWxzZQorKworKyAgYXR0ciA9IGR3YXJm Ml9hdHRyIChkaWUsIERXX0FUX3VwcGVyX2JvdW5kLCBjdSk7CiArICBpZiAoIWF0dHIgfHwgKCFh dHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpICYmICFhdHRyX2Zvcm1faXNfY29uc3RhbnQgKGF0dHIp CiArCQkmJiAhaXNfcmVmX2F0dHIgKGF0dHIpKSkKICAgICAgewotLSAgICAgIGlmIChhdHRyLT5m b3JtID09IERXX0ZPUk1fYmxvY2sxIHx8IGlzX3JlZl9hdHRyIChhdHRyKSkKLS0gICAgICAgIHsK LS0gICAgICAgICAgLyogR0NDIGVuY29kZXMgYXJyYXlzIHdpdGggdW5zcGVjaWZpZWQgb3IgZHlu YW1pYyBsZW5ndGgKLS0gICAgICAgICAgICAgd2l0aCBhIERXX0ZPUk1fYmxvY2sxIGF0dHJpYnV0 ZSBvciBhIHJlZmVyZW5jZSBhdHRyaWJ1dGUuCi0tICAgICAgICAgICAgIEZJWE1FOiBHREIgZG9l cyBub3QgeWV0IGtub3cgaG93IHRvIGhhbmRsZSBkeW5hbWljCi0tICAgICAgICAgICAgIGFycmF5 cyBwcm9wZXJseSwgdHJlYXQgdGhlbSBhcyBhcnJheXMgd2l0aCB1bnNwZWNpZmllZAotLSAgICAg ICAgICAgICBsZW5ndGggZm9yIG5vdy4KLS0KLS0gICAgICAgICAgICAgRklYTUU6IGppbWIvMjAw My0wOS0yMjogR0RCIGRvZXMgbm90IHJlYWxseSBrbm93Ci0tICAgICAgICAgICAgIGhvdyB0byBo YW5kbGUgYXJyYXlzIG9mIHVuc3BlY2lmaWVkIGxlbmd0aAotLSAgICAgICAgICAgICBlaXRoZXI7 IHdlIGp1c3QgcmVwcmVzZW50IHRoZW0gYXMgemVyby1sZW5ndGgKLS0gICAgICAgICAgICAgYXJy YXlzLiAgQ2hvb3NlIGFuIGFwcHJvcHJpYXRlIHVwcGVyIGJvdW5kIGdpdmVuCi0tICAgICAgICAg ICAgIHRoZSBsb3dlciBib3VuZCB3ZSd2ZSBjb21wdXRlZCBhYm92ZS4gICovCi0tICAgICAgICAg IGhpZ2ggPSBsb3cgLSAxOwotLSAgICAgICAgfQotLSAgICAgIGVsc2UKLS0gICAgICAgIGhpZ2gg PSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDEpOwotKyAgICAgIGF0dHIg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9jb3VudCwgY3UpOworICAgICAgIGF0dHIgPSBkd2Fy ZjJfYXR0ciAoZGllLCBEV19BVF9jb3VudCwgY3UpOworLSAgICAgIGlmIChhdHRyKQorLQl7Cist CSAgaW50IGNvdW50ID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAxKTsK Ky0JICBoaWdoID0gbG93ICsgY291bnQgLSAxOwogKyAgICAgIC8qIEl0IGRvZXMgbm90IGh1cnQg YnV0IGl0IGlzIG5lZWRsZXNzbHkgaW5lZmZlY3RpdmUgaW4gY2hlY2tfdHlwZWRlZi4gICovCiAr ICAgICAgaWYgKGF0dHIgJiYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikgfHwgYXR0cl9mb3Jt X2lzX2NvbnN0YW50IChhdHRyKSkpCiArICAgICAgCXsKICsJICBUWVBFX1JBTkdFX0hJR0hfQk9V TkRfSVNfQ09VTlQgKHJhbmdlX3R5cGUpID0gMTsKICsJICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5 cGUpID0gMTsKLSsJfQorIAl9CiArICAgICAgLyogUGFzcyBpdCBub3cgYXMgdGhlIHJlZ3VsYXIg RFdfQVRfdXBwZXJfYm91bmQuICAqLwogKyAgICB9CiArCkBAIC0yMTIwLDIzICsyMDg3LDIwIEBA IGluZGV4IDIwMTUxM2QuLmY0OWExNDkgMTAwNjQ0CiArICAgICAgVFlQRV9SQU5HRV9EQVRBIChy YW5nZV90eXBlKS0+aGlnaC51LmR3YXJmX2xvY2xpc3QudHlwZQogKyAgICAgICAgPSBkaWVfdHlw ZSAodGFyZ2V0X2RpZSwgdGFyZ2V0X2N1KTsKICsgICAgICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5 cGUpID0gMTsKLSAgICAgfQotICAgZWxzZQotICAgICB7Ci0tICAgICAgYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX2NvdW50LCBjdSk7Ci0tICAgICAgaWYgKGF0dHIpCisrICAgIH0KKysg IGVsc2UKKysgICAgewogKyAgICAgIExPTkdFU1QgaGlnaDsKICsKICsgICAgICBpZiAoYXR0ciAm JiBhdHRyX2Zvcm1faXNfY29uc3RhbnQgKGF0dHIpKQogKwloaWdoID0gZHdhcmYyX2dldF9hdHRy X2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwKTsKLSsgICAgICBlbHNlCisgICAgICAgZWxzZQogIAl7 Ci0tCSAgaW50IGNvdW50ID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAx KTsKLS0JICBoaWdoID0gbG93ICsgY291bnQgLSAxOworLQkgIC8qIFVuc3BlY2lmaWVkIGFycmF5 IGxlbmd0aC4gICovCiArCSAgLyogQWRhIGV4cGVjdHMgYW4gZW1wdHkgYXJyYXkgb24gbm8gYm91 bmRhcnkgYXR0cmlidXRlcy4gICovCiArCSAgaWYgKGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9h ZGEpCiArCSAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEIChyYW5nZV90eXBlKSA9IDE7Ci0r CSAgaGlnaCA9IGxvdyAtIDE7CisgCSAgaGlnaCA9IGxvdyAtIDE7CiAgCX0KICsgICAgICBpZiAo IVRZUEVfVU5TSUdORUQgKGJhc2VfdHlwZSkgJiYgKGhpZ2ggJiBuZWdhdGl2ZV9tYXNrKSkKICsJ aGlnaCB8PSBuZWdhdGl2ZV9tYXNrOwpAQCAtMjE0NCw3ICsyMTA4LDcgQEAgaW5kZXggMjAxNTEz ZC4uZjQ5YTE0OSAxMDA2NDQKICAgICAgfQogIAogICAgLyogRHdhcmYtMiBzcGVjaWZpY2F0aW9u cyBleHBsaWNpdGx5IGFsbG93cyB0byBjcmVhdGUgc3VicmFuZ2UgdHlwZXMKLUBAIC04MjM2LDIw ICs4NDIzLDQxIEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTgyMzcsMjQgKzg0MjAsNDEgQEAgcmVhZF9zdWJyYW5n ZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCX0K ICAgICAgfQogIApAQCAtMjE1NCw2ICsyMTE4LDggQEAgaW5kZXggMjAxNTEzZC4uZjQ5YTE0OSAx MDA2NDQKIC0gICAgbG93IHw9IG5lZ2F0aXZlX21hc2s7CiAtICBpZiAoIVRZUEVfVU5TSUdORUQg KGJhc2VfdHlwZSkgJiYgKGhpZ2ggJiBuZWdhdGl2ZV9tYXNrKSkKIC0gICAgaGlnaCB8PSBuZWdh dGl2ZV9tYXNrOworLQorLSAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChOVUxMLCBi YXNlX3R5cGUsIGxvdywgaGlnaCk7CiArICAvKiBEV19BVF9iaXRfc3RyaWRlIGlzIGN1cnJlbnRs eSB1bnN1cHBvcnRlZCBhcyB3ZSBjb3VudCBpbiBieXRlcy4gICovCiArICBhdHRyID0gZHdhcmYy X2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9zdHJpZGUsIGN1KTsKICsgIGlmIChhdHRyICYmIGF0dHJf Zm9ybV9pc19ibG9jayAoYXR0cikgJiYgY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2FkYSkKQEAg LTIxNzAsMTYgKzIxMzYsMTggQEAgaW5kZXggMjAxNTEzZC4uZjQ5YTE0OSAxMDA2NDQKICsgICAg ICBzdHJ1Y3QgZHdhcmYyX2N1ICp0YXJnZXRfY3UgPSBjdTsKICsgICAgICBzdHJ1Y3QgYXR0cmli dXRlICp0YXJnZXRfbG9jX2F0dHI7CiAgCi0tICByYW5nZV90eXBlID0gY3JlYXRlX3JhbmdlX3R5 cGUgKE5VTEwsIGJhc2VfdHlwZSwgbG93LCBoaWdoKTsKLSsgICAgICB0YXJnZXRfZGllID0gZm9s bG93X2RpZV9yZWZfb3Jfc2lnIChkaWUsIGF0dHIsICZ0YXJnZXRfY3UpOwotKyAgICAgIGdkYl9h c3NlcnQgKHRhcmdldF9jdS0+b2JqZmlsZSA9PSBjdS0+b2JqZmlsZSk7Ci0rICAgICAgdGFyZ2V0 X2xvY19hdHRyID0gZHdhcmYyX2F0dHIgKHRhcmdldF9kaWUsIERXX0FUX2xvY2F0aW9uLCB0YXJn ZXRfY3UpOwotIAogLSAgLyogTWFyayBhcnJheXMgd2l0aCBkeW5hbWljIGxlbmd0aCBhdCBsZWFz dCBhcyBhbiBhcnJheSBvZiB1bnNwZWNpZmllZAogLSAgICAgbGVuZ3RoLiAgR0RCIGNvdWxkIGNo ZWNrIHRoZSBib3VuZGFyeSBidXQgYmVmb3JlIGl0IGdldHMgaW1wbGVtZW50ZWQgYXQKIC0gICAg IGxlYXN0IGFsbG93IGFjY2Vzc2luZyB0aGUgYXJyYXkgZWxlbWVudHMuICAqLwogLSAgaWYgKGF0 dHIgJiYgYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2Jsb2NrMSkKIC0gICAgVFlQRV9ISUdIX0JPVU5E X1VOREVGSU5FRCAocmFuZ2VfdHlwZSkgPSAxOworKyAgICAgIHRhcmdldF9kaWUgPSBmb2xsb3df ZGllX3JlZl9vcl9zaWcgKGRpZSwgYXR0ciwgJnRhcmdldF9jdSk7CisrICAgICAgZ2RiX2Fzc2Vy dCAodGFyZ2V0X2N1LT5vYmpmaWxlID09IGN1LT5vYmpmaWxlKTsKKysgICAgICB0YXJnZXRfbG9j X2F0dHIgPSBkd2FyZjJfYXR0ciAodGFyZ2V0X2RpZSwgRFdfQVRfbG9jYXRpb24sIHRhcmdldF9j dSk7CisgCistICAvKiBBZGEgZXhwZWN0cyBhbiBlbXB0eSBhcnJheSBvbiBubyBib3VuZGFyeSBh dHRyaWJ1dGVzLiAgKi8KKy0gIGlmIChhdHRyID09IE5VTEwgJiYgY3UtPmxhbmd1YWdlICE9IGxh bmd1YWdlX2FkYSkKKy0gICAgVFlQRV9ISUdIX0JPVU5EX1VOREVGSU5FRCAocmFuZ2VfdHlwZSkg PSAxOwogKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmJ5dGVfc3RyaWRlLmtp bmQKICsgICAgICAgID0gUkFOR0VfQk9VTkRfS0lORF9EV0FSRl9MT0NMSVNUOwogKyAgICAgIFRZ UEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmJ5dGVfc3RyaWRlLnUuZHdhcmZfbG9jbGlzdC5s b2NsaXN0CkBAIC0yMTk4LDcgKzIxNjYsNyBAQCBpbmRleCAyMDE1MTNkLi5mNDlhMTQ5IDEwMDY0 NAogIAogICAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKICAgIGlmIChuYW1lKQotQEAg LTEwNzI1LDEwICsxMDkzMywxMiBAQCB2YXJfZGVjb2RlX2xvY2F0aW9uIChzdHJ1Y3QgYXR0cmli dXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCitAQCAtMTA3MzEsMTAgKzEwOTMxLDEyIEBA IHZhcl9kZWNvZGVfbG9jYXRpb24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1i b2wgKnN5bSwKICAgICAgIChpLmUuIHdoZW4gdGhlIHZhbHVlIG9mIGEgcmVnaXN0ZXIgb3IgbWVt b3J5IGxvY2F0aW9uIGlzCiAgICAgICByZWZlcmVuY2VkLCBvciBhIHRocmVhZC1sb2NhbCBibG9j aywgZXRjLikuICBUaGVuIGFnYWluLCBpdCBtaWdodAogICAgICAgbm90IGJlIHdvcnRod2hpbGUu ICBJJ20gYXNzdW1pbmcgdGhhdCBpdCBpc24ndCB1bmxlc3MgcGVyZm9ybWFuY2UKQEAgLTIyMTMs NyArMjE4MSw3IEBAIGluZGV4IDIwMTUxM2QuLmY0OWExNDkgMTAwNjQ0CiAgfQogIAogIC8qIEdp dmVuIGEgcG9pbnRlciB0byBhIERXQVJGIGluZm9ybWF0aW9uIGVudHJ5LCBmaWd1cmUgb3V0IGlm IHdlIG5lZWQKLUBAIC0xMDc2Niw2ICsxMDk3Niw4IEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwK K0BAIC0xMDc3Miw2ICsxMDk3NCw4IEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKICAgICAgICBl bHNlCiAgCXN5bSA9IE9CU1RBQ0tfWkFMTE9DICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBz dHJ1Y3Qgc3ltYm9sKTsKICAgICAgICBPQkpTVEFUIChvYmpmaWxlLCBuX3N5bXMrKyk7CkBAIC0y MjIyLDcgKzIxOTAsNyBAQCBpbmRleCAyMDE1MTNkLi5mNDlhMTQ5IDEwMDY0NAogIAogICAgICAg IC8qIENhY2hlIHRoaXMgc3ltYm9sJ3MgbmFtZSBhbmQgdGhlIG5hbWUncyBkZW1hbmdsZWQgZm9y bSAoaWYgYW55KS4gICovCiAgICAgICAgU1lNQk9MX1NFVF9MQU5HVUFHRSAoc3ltLCBjdS0+bGFu Z3VhZ2UpOwotQEAgLTExNTM4LDYgKzExNzUwLDkgQEAgcmVhZF90eXBlX2RpZV8xIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTE1NDQsNiArMTE3NDgs OSBAQCByZWFkX3R5cGVfZGllXzEgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAgICAgICBicmVhazsKICAgICAgfQogIApAQCAtMjIzMiw3ICsyMjAwLDcgQEAg aW5kZXggMjAxNTEzZC4uZjQ5YTE0OSAxMDA2NDQKICAgIHJldHVybiB0aGlzX3R5cGU7CiAgfQog IAotQEAgLTE0MzUwLDYwICsxNDU2NSw5OCBAQCBmaWxsX2luX2xvY2xpc3RfYmF0b24gKHN0cnVj dCBkd2FyZjJfY3UgKmN1LAorQEAgLTE0MzU2LDYwICsxNDU2Myw5OCBAQCBmaWxsX2luX2xvY2xp c3RfYmF0b24gKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAogICAgYmF0b24tPmJhc2VfYWRkcmVzcyA9 IGN1LT5iYXNlX2FkZHJlc3M7CiAgfQogIApAQCAtMjI1NSwxMyArMjIyMywxNCBAQCBpbmRleCAy MDE1MTNkLi5mNDlhMTQ5IDEwMDY0NAogKyAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uICpi YXRvbjsKICsKICsgIGdkYl9hc3NlcnQgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpOwotKwor IAorLSAgICAgIGJhdG9uID0gb2JzdGFja19hbGxvYyAoJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29i c3RhY2ssCistCQkJICAgICBzaXplb2YgKHN0cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbikpOwog KyAgYmF0b24gPSBvYnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywg c2l6ZW9mICgqYmF0b24pKTsKICsgIGJhdG9uLT5wZXJfY3UgPSBjdS0+cGVyX2N1OwogKyAgZ2Ri X2Fzc2VydCAoYmF0b24tPnBlcl9jdSk7CiAgCi0tICAgICAgYmF0b24gPSBvYnN0YWNrX2FsbG9j ICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKLS0JCQkgICAgIHNpemVvZiAoc3RydWN0 IGR3YXJmMl9sb2NsaXN0X2JhdG9uKSk7CistICAgICAgZmlsbF9pbl9sb2NsaXN0X2JhdG9uIChj dSwgYmF0b24sIGF0dHIpOwogKyAgLyogTm90ZSB0aGF0IHdlJ3JlIGp1c3QgY29weWluZyB0aGUg YmxvY2sncyBkYXRhIHBvaW50ZXIKICsgICAgIGhlcmUsIG5vdCB0aGUgYWN0dWFsIGRhdGEuICBX ZSdyZSBzdGlsbCBwb2ludGluZyBpbnRvIHRoZQogKyAgICAgaW5mb19idWZmZXIgZm9yIFNZTSdz IG9iamZpbGU7IHJpZ2h0IG5vdyB3ZSBuZXZlciByZWxlYXNlCkBAIC0yMjcxLDE5ICsyMjQwLDE4 IEBAIGluZGV4IDIwMTUxM2QuLmY0OWExNDkgMTAwNjQ0CiArICBiYXRvbi0+ZGF0YSA9IERXX0JM T0NLIChhdHRyKS0+ZGF0YTsKICsgIGdkYl9hc3NlcnQgKGJhdG9uLT5zaXplID09IDAgfHwgYmF0 b24tPmRhdGEgIT0gTlVMTCk7CiAgCi0tICAgICAgZmlsbF9pbl9sb2NsaXN0X2JhdG9uIChjdSwg YmF0b24sIGF0dHIpOwotKyAgcmV0dXJuIGJhdG9uOwotK30KLSAKIC0gICAgICBpZiAoY3UtPmJh c2Vfa25vd24gPT0gMCkKIC0JY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAogLQkJICAg XygiTG9jYXRpb24gbGlzdCB1c2VkIHdpdGhvdXQgIgogLQkJICAgICAic3BlY2lmeWluZyB0aGUg Q1UgYmFzZSBhZGRyZXNzLiIpKTsKKysgIHJldHVybiBiYXRvbjsKKyt9CisrCiArc3RhdGljIHN0 cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbiAqCiArZHdhcmYyX2F0dHJfdG9fbG9jbGlzdF9iYXRv biAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiArewogKyAg c3RydWN0IGR3YXJmMl9sb2NsaXN0X2JhdG9uICpiYXRvbjsKLSAKKysKICsgIC8qIERXX0FUX2xv Y2F0aW9uIG9mIHRoZSByZWZlcmVuY2VkIERJRSBtYXkgYmUgbWlzc2luZyBpZiB0aGUgcmVmZXJl bmNlZAogKyAgICAgdmFyaWFibGUgaGFzIGJlZW4gb3B0aW1pemVkIG91dC4gICovCiArICBpZiAo IWF0dHIpCkBAIC0yMzExLDcgKzIyNzksNyBAQCBpbmRleCAyMDE1MTNkLi5mNDlhMTQ5IDEwMDY0 NAogKwogKyAgcmV0dXJuIGJhdG9uOwogK30KLSsKKyAKICsvKiBTWU0gbWF5IGdldCBpdHMgU1lN Qk9MX0NMQVNTIG92ZXJyaWRlbiBvbiBpbnZhbGlkIEFUVFIgY29udGVudC4gICovCiArCiArc3Rh dGljIHZvaWQKQEAgLTIzNzMsNyArMjM0MSw3IEBAIGluZGV4IDIwMTUxM2QuLmY0OWExNDkgMTAw NjQ0CiAgICAgIH0KICB9CiAgCi1AQCAtMTQ3NDksNiArMTUwMDIsMzEgQEAgb2Zmc2V0X2FuZF90 eXBlX2VxIChjb25zdCB2b2lkICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCitAQCAt MTQ3NTUsNiArMTUwMDAsMzEgQEAgb2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lkICppdGVt X2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCiAgICByZXR1cm4gb2ZzX2xocy0+b2Zmc2V0ID09 IG9mc19yaHMtPm9mZnNldDsKICB9CiAgCkBAIC0yNDA1LDcgKzIzNzMsNyBAQCBpbmRleCAyMDE1 MTNkLi5mNDlhMTQ5IDEwMDY0NAogIC8qIFNldCB0aGUgdHlwZSBhc3NvY2lhdGVkIHdpdGggRElF IHRvIFRZUEUuICBTYXZlIGl0IGluIENVJ3MgaGFzaAogICAgIHRhYmxlIGlmIG5lY2Vzc2FyeS4g IEZvciBjb252ZW5pZW5jZSwgcmV0dXJuIFRZUEUuCiAgCi1AQCAtMTQ3NzQsNiArMTUwNTIsOCBA QCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTQ3ODAsNiArMTUwNTAsOCBAQCBzZXRfZGllX3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9IGN1LT5vYmpmaWxlOwogICAg aHRhYl90ICp0eXBlX2hhc2hfcHRyOwogIApAQCAtMjQxNSw3ICsyMzgzLDcgQEAgaW5kZXggMjAx NTEzZC4uZjQ5YTE0OSAxMDA2NDQKICAgICAgIGluaXRpYWxpemVkIChpZiBub3QgYWxyZWFkeSBz ZXQpLiAgVGhlcmUgYXJlIGEgZmV3IHR5cGVzIHdoZXJlCiAgICAgICB3ZSBzaG91bGQgbm90IGJl IGRvaW5nIHNvLCBiZWNhdXNlIHRoZSB0eXBlLXNwZWNpZmljIGFyZWEgaXMKIGRpZmYgLS1naXQg YS9nZGIvZWxmcmVhZC5jIGIvZ2RiL2VsZnJlYWQuYwotaW5kZXggOGQ5YjBmNy4uY2RiMzI5MCAx MDA2NDQKK2luZGV4IGM1OTEzNGIuLmMyYzgyMjkgMTAwNjQ0CiAtLS0gYS9nZGIvZWxmcmVhZC5j CiArKysgYi9nZGIvZWxmcmVhZC5jCiBAQCAtMzcsNiArMzcsNyBAQApAQCAtMjcwOSw3ICsyNjc3 LDcgQEAgaW5kZXggOGQ5YjBmNy4uY2RiMzI5MCAxMDA2NDQKICAKICAgIC8qIEFkZCBzeW50aGV0 aWMgc3ltYm9scyAtIGZvciBpbnN0YW5jZSwgbmFtZXMgZm9yIGFueSBQTFQgZW50cmllcy4gICov CiBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IDgzOTQ2MjMuLjNk M2EzMWUgMTAwNjQ0CitpbmRleCBkZTI1YjM5Li5jY2VkMTNjIDEwMDY0NAogLS0tIGEvZ2RiL2V2 YWwuYwogKysrIGIvZ2RiL2V2YWwuYwogQEAgLTQ0LDYgKzQ0LDcgQEAKQEAgLTI3MjAsNyArMjY4 OCwyMjIgQEAgaW5kZXggODM5NDYyMy4uM2QzYTMxZSAxMDA2NDQKICAKICAjaW5jbHVkZSAiZ2Ri X2Fzc2VydC5oIgogIAotQEAgLTgwNiw2ICs4MDcsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC01MDUsMjcgKzUwNiwxOTggQEAgaW5p dF9hcnJheV9lbGVtZW50IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgdmFsdWUgKmVsZW1l bnQsCisgfQorIAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorLXZhbHVlX2Y5MF9zdWJhcnJheSAo c3RydWN0IHZhbHVlICphcnJheSwKKy0JCSAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQg KnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQorK3ZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZh bHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCisrCQkgICAgaW50 IG5hcmdzLCBlbnVtIG5vc2lkZSBub3NpZGUpCisgeworLSAgaW50IHBjID0gKCpwb3MpICsgMTsK Ky0gIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOworLSAgc3RydWN0IHR5cGUgKnJhbmdl ID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9JTkRFWF9UWVBFICh2YWx1ZV90eXBlIChhcnJheSkpKTsK Ky0gIGVudW0gZjkwX3JhbmdlX3R5cGUgcmFuZ2VfdHlwZSA9IGxvbmdlc3RfdG9faW50IChleHAt PmVsdHNbcGNdLmxvbmdjb25zdCk7CistIAorLSAgKnBvcyArPSAzOworLQorLSAgaWYgKHJhbmdl X3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQgfHwgcmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RF RkFVTFQpCistICAgIGxvd19ib3VuZCA9IFRZUEVfTE9XX0JPVU5EIChyYW5nZSk7CisrICAvKiBU eXBlIHRvIHVzZSBmb3IgdGhlIG5ld2x5IGFsbG9jYXRlZCB2YWx1ZSBBUlJBWS4gICovCisrICBz dHJ1Y3QgdHlwZSAqbmV3X2FycmF5X3R5cGU7CisrCisrICAvKiBUeXBlIGJlaW5nIGl0ZXJhdGVk IGZvciBlYWNoIGRpbWVuc2lvbi4gICovCisrICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKysKKysgIC8q IFBvaW50ZXIgaW4gdGhlIGxhc3QgaG9sZGVyIHRvIHRoZSB0eXBlIG9mIGN1cnJlbnQgZGltZW5z aW9uLiAgKi8KKysgIHN0cnVjdCB0eXBlICoqdHlwZXAgPSAmbmV3X2FycmF5X3R5cGU7CisrCisr ICBzdHJ1Y3Qgc3Vic2NyaXB0X2luZGV4CisrICAgIHsKKysgICAgICBlbnVtIHsgU1VCU0NSSVBU X1JBTkdFLCBTVUJTQ1JJUFRfTlVNQkVSIH0ga2luZDsKKysgICAgICB1bmlvbgorKwl7CisrCSAg c3RydWN0IHN1YnNjcmlwdF9yYW5nZQorKwkgICAgeworKwkgICAgICBlbnVtIGY5MF9yYW5nZV90 eXBlIGY5MF9yYW5nZV90eXBlOworKwkgICAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3Vu ZDsKKysJICAgIH0KKysJICByYW5nZTsKKysJICBMT05HRVNUIG51bWJlcjsKKysJfTsKKysgICAg fQorKyAgKnN1YnNjcmlwdF9hcnJheTsKKysgIGludCBpOworKyAgc3RydWN0IGNsZWFudXAgKm9s ZF9jaGFpbjsKKysgIENPUkVfQUREUiB2YWx1ZV9ieXRlX2FkZHJlc3MsIHZhbHVlX2J5dGVfb2Zm c2V0ID0gMDsKKysgIGh0YWJfdCBjb3BpZWRfdHlwZXM7CisrICBzdHJ1Y3QgdmFsdWUgKnNhdmVk X2FycmF5OworKworKyAgb2xkX2NoYWluID0gbWFrZV9jbGVhbnVwIChudWxsX2NsZWFudXAsIDAp OworKyAgb2JqZWN0X2FkZHJlc3Nfc2V0ICh2YWx1ZV9yYXdfYWRkcmVzcyAoYXJyYXkpKTsKKysK KysgIGlmICh2YWx1ZV9vcHRpbWl6ZWRfb3V0IChhcnJheSkKKysgICAgICB8fCAoVkFMVUVfTFZB TCAoYXJyYXkpICE9IG5vdF9sdmFsCisrICAgICAgICAgICYmIFZBTFVFX0xWQUwgKGFycmF5KSAh PSBsdmFsX21lbW9yeQorKwkgICYmIFZBTFVFX0xWQUwgKGFycmF5KSAhPSBsdmFsX2ludGVybmFs dmFyX2NvbXBvbmVudAorKwkgICYmIFZBTFVFX0xWQUwgKGFycmF5KSAhPSBsdmFsX2ludGVybmFs dmFyKSkKKysgICAgZXJyb3IgKF8oInZhbHVlIGJlaW5nIHN1YnJhbmdlZCBtdXN0IGJlIGluIG1l bW9yeSIpKTsKKysgIHR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwor KyAgZl9vYmplY3RfYWRkcmVzc19kYXRhX3ZhbGlkX29yX2Vycm9yICh0eXBlKTsKKysKKysgIGNv cGllZF90eXBlcyA9IGNyZWF0ZV9jb3BpZWRfdHlwZXNfaGFzaCAoTlVMTCk7CisrICB0eXBlID0g Y29weV90eXBlX3JlY3Vyc2l2ZSAodHlwZSwgY29waWVkX3R5cGVzKTsKKysgIGh0YWJfZGVsZXRl IChjb3BpZWRfdHlwZXMpOworKworKyAgaWYgKG5hcmdzICE9IGNhbGNfZjc3X2FycmF5X2RpbXMg KHR5cGUpKQorKyAgICBlcnJvciAoXygiV3JvbmcgbnVtYmVyIG9mIHN1YnNjcmlwdHMiKSk7Cisr CisrICBpZiAoVFlQRV9EQVRBX0xPQ0FUSU9OX0lTX0FERFIgKHR5cGUpKQorKyAgICB7CisrICAg ICAgdmFsdWVfYnl0ZV9hZGRyZXNzID0gKFRZUEVfREFUQV9MT0NBVElPTl9BRERSICh0eXBlKQor KwkJCSAgICArIHZhbHVlX29mZnNldCAoYXJyYXkpKTsKKysgICAgICBUWVBFX0RBVEFfTE9DQVRJ T05fSVNfQUREUiAodHlwZSkgPSAwOworKyAgICB9CisgICBlbHNlCistICAgIGxvd19ib3VuZCA9 IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9z aWRlKSk7CisrICAgIHZhbHVlX2J5dGVfYWRkcmVzcyA9IHZhbHVlX2FkZHJlc3MgKGFycmF5KTsK KysKKysgIG5ld19hcnJheV90eXBlID0gdHlwZTsKKysKKysgIHN1YnNjcmlwdF9hcnJheSA9IGFs bG9jYSAoc2l6ZW9mICgqc3Vic2NyaXB0X2FycmF5KSAqIG5hcmdzKTsKKysKKysgIGdkYl9hc3Nl cnQgKG5hcmdzID4gMCk7CisrCisrICAvKiBOb3cgdGhhdCB3ZSBrbm93IHdlIGhhdmUgYSBsZWdh bCBhcnJheSBzdWJzY3JpcHQgZXhwcmVzc2lvbiAKKysgICAgIGxldCB1cyBhY3R1YWxseSBmaW5k IG91dCB3aGVyZSB0aGlzIGVsZW1lbnQgZXhpc3RzIGluIHRoZSBhcnJheS4gICovCisrCisrICAv KiBUYWtlIGFycmF5IGluZGljZXMgbGVmdCB0byByaWdodC4gICovCisrICBmb3IgKGkgPSAwOyBp IDwgbmFyZ3M7IGkrKykKKysgICAgeworKyAgICAgIHN0cnVjdCBzdWJzY3JpcHRfaW5kZXggKmlu ZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKKysKKysgICAgICBpZiAoZXhwLT5lbHRzWypwb3Nd Lm9wY29kZSA9PSBPUF9GOTBfUkFOR0UpCisrCXsKKysJICBpbnQgcGMgPSAoKnBvcykgKyAxOwor KwkgIHN0cnVjdCBzdWJzY3JpcHRfcmFuZ2UgKnJhbmdlOworKworKwkgIGluZGV4LT5raW5kID0g U1VCU0NSSVBUX1JBTkdFOworKwkgIHJhbmdlID0gJmluZGV4LT5yYW5nZTsKKysKKysJICAqcG9z ICs9IDM7CisrCSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID0gbG9uZ2VzdF90b19pbnQgKGV4cC0+ ZWx0c1twY10ubG9uZ2NvbnN0KTsKKysKKysJICBpZiAocmFuZ2UtPmY5MF9yYW5nZV90eXBlID09 IEhJR0hfQk9VTkRfREVGQVVMVAorKwkgICAgICB8fCByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPT0g Tk9ORV9CT1VORF9ERUZBVUxUKQorKwkgICAgcmFuZ2UtPmxvd19ib3VuZCA9IHZhbHVlX2FzX2xv bmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsCisrCQkJCQkJCSAgICAgICBwb3Ms IG5vc2lkZSkpOworKworKwkgIGlmIChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPT0gTE9XX0JPVU5E X0RFRkFVTFQKKysJICAgICAgfHwgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IE5PTkVfQk9VTkRf REVGQVVMVCkKKysJICAgIHJhbmdlLT5oaWdoX2JvdW5kID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVh dGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKKysJCQkJCQkJCXBvcywgbm9zaWRlKSk7CisrCX0K KysgICAgICBlbHNlCisrCXsKKysJICBzdHJ1Y3QgdmFsdWUgKnZhbDsKKysKKysJICBpbmRleC0+ a2luZCA9IFNVQlNDUklQVF9OVU1CRVI7CisgCistICBpZiAocmFuZ2VfdHlwZSA9PSBISUdIX0JP VU5EX0RFRkFVTFQgfHwgcmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpCistICAgIGhp Z2hfYm91bmQgPSBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlKTsKKysJICAvKiBFdmFsdWF0ZSBlYWNo IHN1YnNjcmlwdDsgaXQgbXVzdCBiZSBhIGxlZ2FsIGludGVnZXIgaW4gRjc3LiAgKi8KKysJICB2 YWwgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoZXhwLCBwb3MsIG5vc2lkZSk7Cisr CSAgaW5kZXgtPm51bWJlciA9IHZhbHVlX2FzX2xvbmcgKHZhbCk7CisrCX0KKysgICAgfQorKwor KyAgLyogSW50ZXJuYWwgdHlwZSBvZiBhcnJheSBpcyBhcnJhbmdlZCByaWdodCB0byBsZWZ0LiAg Ki8KKysgIGZvciAoaSA9IG5hcmdzIC0gMTsgaSA+PSAwOyBpLS0pCisrICAgIHsKKysgICAgICBz dHJ1Y3Qgc3Vic2NyaXB0X2luZGV4ICppbmRleCA9ICZzdWJzY3JpcHRfYXJyYXlbaV07CisrICAg ICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZUEUgKHR5cGUpOworKwor KyAgICAgIHN3aXRjaCAoaW5kZXgtPmtpbmQpCisrCXsKKysJY2FzZSBTVUJTQ1JJUFRfUkFOR0U6 CisrCSAgeworKwkgICAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgtPnJh bmdlOworKwkgICAgQ09SRV9BRERSIGJ5dGVfb2Zmc2V0OworKworKwkgICAgaWYgKHJhbmdlLT5m OTBfcmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVGQVVMVAorKwkJfHwgcmFuZ2UtPmY5MF9yYW5n ZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVMVCkKKysJICAgICAgcmFuZ2UtPmxvd19ib3VuZCA9 IFRZUEVfTE9XX0JPVU5EIChyYW5nZV90eXBlKTsKKysKKysJICAgIGlmIChyYW5nZS0+ZjkwX3Jh bmdlX3R5cGUgPT0gSElHSF9CT1VORF9ERUZBVUxUCisrCQl8fCByYW5nZS0+ZjkwX3JhbmdlX3R5 cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQorKwkgICAgICByYW5nZS0+aGlnaF9ib3VuZCA9IFRZ UEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSk7CisrCisrCSAgICBpZiAocmFuZ2UtPmxvd19ib3Vu ZCA8IFRZUEVfTE9XX0JPVU5EIChyYW5nZV90eXBlKQorKwkJfHwgKCFUWVBFX0hJR0hfQk9VTkRf VU5ERUZJTkVEIChyYW5nZV90eXBlKQorKwkJICAgICYmIHJhbmdlLT5oaWdoX2JvdW5kID4gVFlQ RV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSkpCisrCSAgICAgIGVycm9yIChfKCJzbGljZSBvdXQg b2YgcmFuZ2UiKSk7CisrCisrCSAgICBieXRlX29mZnNldCA9ICgocmFuZ2UtPmxvd19ib3VuZCAt IFRZUEVfTE9XX0JPVU5EIChyYW5nZV90eXBlKSkKKysJCQkgICAqIFRZUEVfQVJSQVlfQllURV9T VFJJREVfVkFMVUUgKHR5cGUpKTsKKysJICAgIFRZUEVfTE9XX0JPVU5EIChyYW5nZV90eXBlKSA9 IHJhbmdlLT5sb3dfYm91bmQ7CisrCSAgICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0g cmFuZ2UtPmhpZ2hfYm91bmQ7CisrCSAgICBpZiAocmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IExP V19CT1VORF9ERUZBVUxUCisrCQl8fCByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPT0gTk9ORV9CT1VO RF9ERUZBVUxUKQorKwkgICAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEIChyYW5nZV90eXBl KSA9IDA7CisrCisrCSAgICB0eXBlcCA9ICZUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKKysJICAg IHZhbHVlX2J5dGVfb2Zmc2V0ICs9IGJ5dGVfb2Zmc2V0OworKwkgICAgdHlwZSA9IFRZUEVfVEFS R0VUX1RZUEUgKHR5cGUpOworKwkgIH0KKysJICBicmVhazsKKysKKysJY2FzZSBTVUJTQ1JJUFRf TlVNQkVSOgorKwkgIHsKKysJICAgIENPUkVfQUREUiBieXRlX29mZnNldDsKKysKKysJICAgIGlm IChpbmRleC0+bnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKHJhbmdlX3R5cGUpCisrCQl8fCAoIVRZ UEVfSElHSF9CT1VORF9VTkRFRklORUQgKHJhbmdlX3R5cGUpCisrCQkgICAgJiYgaW5kZXgtPm51 bWJlciA+IFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkpKQorKwkgICAgICBlcnJvciAoXygi bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKKysKKysJICAgIGJ5dGVfb2Zmc2V0ID0gKChpbmRl eC0+bnVtYmVyIC0gVFlQRV9MT1dfQk9VTkQgKHJhbmdlX3R5cGUpKQorKwkJCSAgICogVFlQRV9B UlJBWV9CWVRFX1NUUklERV9WQUxVRSAodHlwZSkpOworKworKwkgICAgdHlwZSA9IFRZUEVfVEFS R0VUX1RZUEUgKHR5cGUpOworKwkgICAgKnR5cGVwID0gdHlwZTsKKysJICAgIHZhbHVlX2J5dGVf b2Zmc2V0ICs9IGJ5dGVfb2Zmc2V0OworKwkgIH0KKysJICBicmVhazsKKysJfQorKyAgICB9Cisr CisrICBjaGVja190eXBlZGVmIChuZXdfYXJyYXlfdHlwZSk7CisrICBzYXZlZF9hcnJheSA9IGFy cmF5OworKyAgYXJyYXkgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5IChuZXdfYXJyYXlfdHlwZSk7Cisr ICBWQUxVRV9MVkFMIChhcnJheSkgPSBWQUxVRV9MVkFMIChzYXZlZF9hcnJheSk7CisrICBpZiAo VkFMVUVfTFZBTCAoc2F2ZWRfYXJyYXkpID09IGx2YWxfaW50ZXJuYWx2YXJfY29tcG9uZW50KQor KyAgICBWQUxVRV9MVkFMIChhcnJheSkgPSBsdmFsX2ludGVybmFsdmFyOworICAgZWxzZQorLSAg ICBoaWdoX2JvdW5kID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUs IGV4cCwgcG9zLCBub3NpZGUpKTsKKysgICAgVkFMVUVfTFZBTCAoYXJyYXkpID0gVkFMVUVfTFZB TCAoc2F2ZWRfYXJyYXkpOworKyAgVkFMVUVfRlJBTUVfSUQgKGFycmF5KSA9IFZBTFVFX0ZSQU1F X0lEIChzYXZlZF9hcnJheSk7CisrICBpZiAoVkFMVUVfTFZBTCAoYXJyYXkpICE9IGx2YWxfaW50 ZXJuYWx2YXIpCisrICAgIHNldF92YWx1ZV9hZGRyZXNzIChhcnJheSwgdmFsdWVfYnl0ZV9hZGRy ZXNzICsgdmFsdWVfYnl0ZV9vZmZzZXQpOworKworKyAgaWYgKCF2YWx1ZV9sYXp5IChzYXZlZF9h cnJheSkpCisrICAgIHsKKysgICAgICBhbGxvY2F0ZV92YWx1ZV9jb250ZW50cyAoYXJyYXkpOwor KyAgICAgIHNldF92YWx1ZV9sYXp5IChhcnJheSwgMCk7CisgCistICByZXR1cm4gdmFsdWVfc2xp Y2UgKGFycmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKKysgICAg ICBtZW1jcHkgKHZhbHVlX2NvbnRlbnRzX3dyaXRlYWJsZSAoYXJyYXkpLAorKwkgICAgICB2YWx1 ZV9jb250ZW50cyAoc2F2ZWRfYXJyYXkpICsgdmFsdWVfYnl0ZV9vZmZzZXQsCisrCSAgICAgIFRZ UEVfTEVOR1RIIChuZXdfYXJyYXlfdHlwZSkpOworKyAgICB9CisrCisrICBkb19jbGVhbnVwcyAo b2xkX2NoYWluKTsKKysgIHJldHVybiBhcnJheTsKKyB9CisgCisgCitAQCAtODA2LDYgKzk3OCw3 IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAog ICAgaW50IHNhdmVfcG9zMTsKICAgIHN0cnVjdCBzeW1ib2wgKmZ1bmN0aW9uID0gTlVMTDsKICAg IGNoYXIgKmZ1bmN0aW9uX25hbWUgPSBOVUxMOwpAQCAtMjcyOCw3ICsyOTExLDcgQEAgaW5kZXgg ODM5NDYyMy4uM2QzYTMxZSAxMDA2NDQKICAKICAgIHBjID0gKCpwb3MpKys7CiAgICBvcCA9IGV4 cC0+ZWx0c1twY10ub3Bjb2RlOwotQEAgLTE4NDcsNiArMTg0OSw4IEBAIGV2YWx1YXRlX3N1YmV4 cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTE4NDksNiArMjAyMiw4 IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAog IAkgICAgICByZXR1cm4gdmFsdWVfemVybyAoYnVpbHRpbl90eXBlIChleHAtPmdkYmFyY2gpLT5i dWlsdGluX2ludCwKICAJCQkJIG5vdF9sdmFsKTsKICAJICAgIH0KQEAgLTI3MzcsNyArMjkyMCw3 IEBAIGluZGV4IDgzOTQ2MjMuLjNkM2EzMWUgMTAwNjQ0CiAgCSAgZWxzZSBpZiAoVFlQRV9UQVJH RVRfVFlQRSAoZnR5cGUpKQogIAkgICAgcmV0dXJuIGFsbG9jYXRlX3ZhbHVlIChUWVBFX1RBUkdF VF9UWVBFIChmdHlwZSkpOwogIAkgIGVsc2UKLUBAIC0xODc1LDYgKzE4NzksOCBAQCBldmFsdWF0 ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0xODc3LDYg KzIwNTIsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3Rf dHlwZSwKICAKICAgICAgICAvKiBGaXJzdCBkZXRlcm1pbmUgdGhlIHR5cGUgY29kZSB3ZSBhcmUg ZGVhbGluZyB3aXRoLiAgKi8KICAgICAgICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZ UEUsIGV4cCwgcG9zLCBub3NpZGUpOwpAQCAtMjc0Niw3ICsyOTI5LDcgQEAgaW5kZXggODM5NDYy My4uM2QzYTMxZSAxMDA2NDQKICAgICAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlw ZSAoYXJnMSkpOwogICAgICAgIGNvZGUgPSBUWVBFX0NPREUgKHR5cGUpOwogIAotQEAgLTE4OTUs NiArMTkwMSw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVj dF90eXBlLAorQEAgLTE4OTcsMjMgKzIwNzQsMTMgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJk IChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAgICAgIGNvZGUgPSBUWVBFX0NPREUgKHR5 cGUpOwogIAkgICAgfQogIAl9IApAQCAtMjc1NCw3NiArMjkzNyw3NSBAQCBpbmRleCA4Mzk0NjIz Li4zZDNhMzFlIDEwMDY0NAogIAogICAgICAgIHN3aXRjaCAoY29kZSkKICAJewotQEAgLTIzNTQs MTMgKzIzNjEsMTkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhw ZWN0X3R5cGUsCi0gICAgICAgewotIAlpbnQgc3Vic2NyaXB0X2FycmF5W01BWF9GT1JUUkFOX0RJ TVNdOwotIAlpbnQgYXJyYXlfc2l6ZV9hcnJheVtNQVhfRk9SVFJBTl9ESU1TXTsKLSsJaW50IGJ5 dGVfc3RyaWRlX2FycmF5W01BWF9GT1JUUkFOX0RJTVNdOwotIAlpbnQgbmRpbWVuc2lvbnMgPSAx LCBpOwotIAlzdHJ1Y3QgdHlwZSAqdG1wX3R5cGU7Ci0gCWludCBvZmZzZXRfaXRlbTsJLyogVGhl IGFycmF5IG9mZnNldCB3aGVyZSB0aGUgaXRlbSBsaXZlcyAqLwotKwlDT1JFX0FERFIgb2Zmc2V0 X2J5dGU7CS8qIGJ5dGVfc3RyaWRlIGJhc2VkIG9mZnNldCAgKi8KLSsJdW5zaWduZWQgZWxlbWVu dF9zaXplOwotIAotIAlpZiAobmFyZ3MgPiBNQVhfRk9SVFJBTl9ESU1TKQotIAkgIGVycm9yIChf KCJUb28gbWFueSBzdWJzY3JpcHRzIGZvciBGNzcgKCVkIE1heCkiKSwgTUFYX0ZPUlRSQU5fRElN Uyk7Ci0gCi0rCW9sZF9jaGFpbiA9IG1ha2VfY2xlYW51cCAobnVsbF9jbGVhbnVwLCAwKTsKLSsJ b2JqZWN0X2FkZHJlc3Nfc2V0ICh2YWx1ZV9yYXdfYWRkcmVzcyAoYXJnMSkpOwotKwotIAl0bXBf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEpKTsKLSAJbmRpbWVuc2lvbnMg PSBjYWxjX2Y3N19hcnJheV9kaW1zICh0eXBlKTsKLSAKLUBAIC0yMzkwLDYgKzI0MDMsOSBAQCBl dmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKLSAJICAg IHVwcGVyID0gZjc3X2dldF91cHBlcmJvdW5kICh0bXBfdHlwZSk7Ci0gCSAgICBsb3dlciA9IGY3 N19nZXRfbG93ZXJib3VuZCAodG1wX3R5cGUpOwotIAotKwkgICAgYnl0ZV9zdHJpZGVfYXJyYXlb bmFyZ3MgLSBpIC0gMV0gPQotKwkJCQkJVFlQRV9BUlJBWV9CWVRFX1NUUklERV9WQUxVRSAodG1w X3R5cGUpOwotKwotIAkgICAgYXJyYXlfc2l6ZV9hcnJheVtuYXJncyAtIGkgLSAxXSA9IHVwcGVy IC0gbG93ZXIgKyAxOwotIAotIAkgICAgLyogWmVyby1ub3JtYWxpemUgc3Vic2NyaXB0cyBzbyB0 aGF0IG9mZnNldHRpbmcgd2lsbCB3b3JrLiAqLwotQEAgLTI0MDgsMTMgKzI0MjQsMjUgQEAgZXZh bHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCi0gCSAgICAg IHRtcF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodG1wX3R5cGUpKTsK LSAJICB9Ci0gCi0rCS8qIEtlcHQgZm9yIHRoZSBmNzdfZ2V0X3VwcGVyYm91bmQgLyBmNzdfZ2V0 X2xvd2VyYm91bmQgY2FsbHMgYWJvdmUuICAqLwotKwlkb19jbGVhbnVwcyAob2xkX2NoYWluKTsK LSsKLSAJLyogTm93IGxldCB1cyBjYWxjdWxhdGUgdGhlIG9mZnNldCBmb3IgdGhpcyBpdGVtICov Ci0gCi0tCW9mZnNldF9pdGVtID0gc3Vic2NyaXB0X2FycmF5W25kaW1lbnNpb25zIC0gMV07Ci0r CW9mZnNldF9pdGVtID0gMDsKLSsJb2Zmc2V0X2J5dGUgPSAwOwotKwotKwlmb3IgKGkgPSBuZGlt ZW5zaW9ucyAtIDE7IGkgPj0gMDsgLS1pKQotKwkgIHsKLSsJICAgIG9mZnNldF9pdGVtICo9IGFy cmF5X3NpemVfYXJyYXlbaV07Ci0rCSAgICBpZiAoYnl0ZV9zdHJpZGVfYXJyYXlbaV0gPT0gMCkK LSsJICAgICAgb2Zmc2V0X2l0ZW0gKz0gc3Vic2NyaXB0X2FycmF5W2ldOwotKwkgICAgZWxzZQot KwkgICAgICBvZmZzZXRfYnl0ZSArPSBzdWJzY3JpcHRfYXJyYXlbaV0gKiBieXRlX3N0cmlkZV9h cnJheVtpXTsKLSsJICB9Ci0gCi0tCWZvciAoaSA9IG5kaW1lbnNpb25zIC0gMTsgaSA+IDA7IC0t aSkKLS0JICBvZmZzZXRfaXRlbSA9Ci0tCSAgICBhcnJheV9zaXplX2FycmF5W2kgLSAxXSAqIG9m ZnNldF9pdGVtICsgc3Vic2NyaXB0X2FycmF5W2kgLSAxXTsKLSsJZWxlbWVudF9zaXplID0gVFlQ RV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHRtcF90eXBlKSk7Ci0rCW9mZnNldF9ieXRlICs9 IG9mZnNldF9pdGVtICogZWxlbWVudF9zaXplOwotIAotIAkvKiBMZXQgdXMgbm93IHBsYXkgYSBk aXJ0eSB0cmljazogd2Ugd2lsbCB0YWtlIGFyZzEgCi0gCSAgIHdoaWNoIGlzIGEgdmFsdWUgbm9k ZSBwb2ludGluZyB0byB0aGUgdG9wbW9zdCBsZXZlbAotQEAgLTI0MjQsNyArMjQ1Miw3IEBAIGV2 YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAotIAkgICBy ZXR1cm5zIHRoZSBjb3JyZWN0IHR5cGUgdmFsdWUgKi8KKyAJY2FzZSBUWVBFX0NPREVfQVJSQVk6 CistCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfRjkwX1JBTkdFKQorLQkgICAg cmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5vc2lkZSk7CistCSAg ZWxzZQorLQkgICAgZ290byBtdWx0aV9mNzdfc3Vic2NyaXB0OworLQorIAljYXNlIFRZUEVfQ09E RV9TVFJJTkc6CistCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfRjkwX1JBTkdF KQorLQkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5vc2lk ZSk7CistCSAgZWxzZQorLQkgICAgeworLQkgICAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhwX3dp dGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOworLQkgICAgICByZXR1cm4gdmFsdWVfc3Vi c2NyaXB0IChhcmcxLCB2YWx1ZV9hc19sb25nIChhcmcyKSk7CistCSAgICB9CisrCSAgcmV0dXJu IHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5hcmdzLCBub3NpZGUpOwogIAot IAlkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlIChhcmcxLCB0bXBfdHlwZSk7Ci0tCXJldHVybiB2 YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKGFyZzEsIG9mZnNldF9pdGVtLCAwKTsKLSsJcmV0dXJu IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoYXJnMSwgb2Zmc2V0X2J5dGUpOwotICAgICAgIH0K KyAJY2FzZSBUWVBFX0NPREVfUFRSOgorIAljYXNlIFRZUEVfQ09ERV9GVU5DOgorQEAgLTIzNTIs NDkgKzI1MTksNiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBl Y3RfdHlwZSwKKyAJfQorICAgICAgIHJldHVybiAoYXJnMSk7CiAgCistICAgIG11bHRpX2Y3N19z dWJzY3JpcHQ6CistICAgICAgeworLQlMT05HRVNUIHN1YnNjcmlwdF9hcnJheVtNQVhfRk9SVFJB Tl9ESU1TXTsKKy0JaW50IG5kaW1lbnNpb25zID0gMSwgaTsKKy0Jc3RydWN0IHZhbHVlICphcnJh eSA9IGFyZzE7CistCistCWlmIChuYXJncyA+IE1BWF9GT1JUUkFOX0RJTVMpCistCSAgZXJyb3Ig KF8oIlRvbyBtYW55IHN1YnNjcmlwdHMgZm9yIEY3NyAoJWQgTWF4KSIpLCBNQVhfRk9SVFJBTl9E SU1TKTsKKy0KKy0JbmRpbWVuc2lvbnMgPSBjYWxjX2Y3N19hcnJheV9kaW1zICh0eXBlKTsKKy0K Ky0JaWYgKG5hcmdzICE9IG5kaW1lbnNpb25zKQorLQkgIGVycm9yIChfKCJXcm9uZyBudW1iZXIg b2Ygc3Vic2NyaXB0cyIpKTsKKy0KKy0JZ2RiX2Fzc2VydCAobmFyZ3MgPiAwKTsKKy0KKy0JLyog Tm93IHRoYXQgd2Uga25vdyB3ZSBoYXZlIGEgbGVnYWwgYXJyYXkgc3Vic2NyaXB0IGV4cHJlc3Np b24gCistCSAgIGxldCB1cyBhY3R1YWxseSBmaW5kIG91dCB3aGVyZSB0aGlzIGVsZW1lbnQgZXhp c3RzIGluIHRoZSBhcnJheS4gICovCistCistCS8qIFRha2UgYXJyYXkgaW5kaWNlcyBsZWZ0IHRv IHJpZ2h0LiAgKi8KKy0JZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspCistCSAgeworLQkgICAg LyogRXZhbHVhdGUgZWFjaCBzdWJzY3JpcHQ7IGl0IG11c3QgYmUgYSBsZWdhbCBpbnRlZ2VyIGlu IEY3Ny4gICovCistCSAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4 cCwgcG9zLCBub3NpZGUpOworLQorLQkgICAgLyogRmlsbCBpbiB0aGUgc3Vic2NyaXB0IGFycmF5 LiAgKi8KKy0KKy0JICAgIHN1YnNjcmlwdF9hcnJheVtpXSA9IHZhbHVlX2FzX2xvbmcgKGFyZzIp OworLQkgIH0KKy0KKy0JLyogSW50ZXJuYWwgdHlwZSBvZiBhcnJheSBpcyBhcnJhbmdlZCByaWdo dCB0byBsZWZ0LiAgKi8KKy0JZm9yIChpID0gbmFyZ3M7IGkgPiAwOyBpLS0pCistCSAgeworLQkg ICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChh cnJheSkpOworLQkgICAgTE9OR0VTVCBpbmRleCA9IHN1YnNjcmlwdF9hcnJheVtpIC0gMV07Cist CistCSAgICBsb3dlciA9IGY3N19nZXRfbG93ZXJib3VuZCAoYXJyYXlfdHlwZSk7CistCSAgICBh cnJheSA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoYXJyYXksIGluZGV4LCBsb3dlcik7Cist CSAgfQorLQorLQlyZXR1cm4gYXJyYXk7CistICAgICAgfQorLQogICAgICBjYXNlIEJJTk9QX0xP R0lDQUxfQU5EOgotQEAgLTI2NTgsMTUgKzI2ODYsMjMgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5k YXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCisgICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1 YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKTsKKyAgICAgICBpZiAobm9zaWRlID09 IEVWQUxfU0tJUCkKK0BAIC0yNjI2LDE1ICsyNzUwLDIzIEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFu ZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogICAgICAgIGlmIChleHBlY3RfdHlwZSAm JiBUWVBFX0NPREUgKGV4cGVjdF90eXBlKSA9PSBUWVBFX0NPREVfUFRSKQogIAlleHBlY3RfdHlw ZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYgKGV4cGVjdF90eXBlKSk7CiAgICAg ICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAoZXhwZWN0X3R5cGUsIGV4cCwgcG9zLCBub3NpZGUp OwpAQCAtMjg0OSw3ICszMDMxLDcgQEAgaW5kZXggODM5NDYyMy4uM2QzYTMxZSAxMDA2NDQKICAg ICAgICBlbHNlIGlmIChub3NpZGUgPT0gRVZBTF9BVk9JRF9TSURFX0VGRkVDVFMpCiAgCXsKICAJ ICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwotQEAgLTI2NzUsMTIg KzI3MTEsMTggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0 X3R5cGUsCitAQCAtMjY0MywxMiArMjc3NSwxOCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQg KHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJICAvKiBJbiBDIHlvdSBjYW4gZGVyZWZlcmVu Y2UgYW4gYXJyYXkgdG8gZ2V0IHRoZSAxc3QgZWx0LiAgKi8KICAJICAgICAgfHwgVFlQRV9DT0RF ICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkKICAJICAgICkKQEAgLTI4NzMsNyArMzA1NSw3IEBA IGluZGV4IDgzOTQ2MjMuLjNkM2EzMWUgMTAwNjQ0CiAgCSAgZWxzZQogIAkgICAgZXJyb3IgKF8o IkF0dGVtcHQgdG8gdGFrZSBjb250ZW50cyBvZiBhIG5vbi1wb2ludGVyIHZhbHVlLiIpKTsKICAJ fQotQEAgLTI2OTAsOSArMjczMiwxNCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVj dCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yNjU4LDkgKzI3OTYsMTQgQEAgZXZhbHVhdGVfc3Vi ZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSBkby4gICJsb25nIGxv bmciIHZhcmlhYmxlcyBhcmUgcmFyZSBlbm91Z2ggdGhhdAogIAkgQlVJTFRJTl9UWVBFX0xPTkdF U1Qgd291bGQgc2VlbSB0byBiZSBhIG1pc3Rha2UuICAqLwogICAgICAgIGlmIChUWVBFX0NPREUg KHR5cGUpID09IFRZUEVfQ09ERV9JTlQpCkBAIC0yODkxLDcgKzMwNzMsNyBAQCBpbmRleCA4Mzk0 NjIzLi4zZDNhMzFlIDEwMDY0NAogIAogICAgICBjYXNlIFVOT1BfQUREUjoKICAgICAgICAvKiBD Kys6IGNoZWNrIGZvciBhbmQgaGFuZGxlIHBvaW50ZXIgdG8gbWVtYmVycy4gICovCi1AQCAtMzA0 MCw3ICszMDg3LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKHN0cnVjdCBleHBy ZXNzaW9uICpleHAsCitAQCAtMzAwNiw3ICszMTQ5LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3dpdGhf Y29lcmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgewogICAgZW51bSBleHBfb3Bjb2Rl IG9wOwogICAgaW50IHBjOwpAQCAtMjkwMCw3ICszMDgyLDcgQEAgaW5kZXggODM5NDYyMy4uM2Qz YTMxZSAxMDA2NDQKICAgIHN0cnVjdCBzeW1ib2wgKnZhcjsKICAgIHN0cnVjdCB0eXBlICp0eXBl OwogIAotQEAgLTMwNTEsMTMgKzMwOTgsMTggQEAgZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNp b24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtMzAxNywxMyArMzE2MCwxOCBAQCBldmFs dWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAgICAg ewogICAgICBjYXNlIE9QX1ZBUl9WQUxVRToKICAgICAgICB2YXIgPSBleHAtPmVsdHNbcGMgKyAy XS5zeW1ib2w7CkBAIC0yOTIwLDcgKzMxMDIsNyBAQCBpbmRleCA4Mzk0NjIzLi4zZDNhMzFlIDEw MDY0NAogIAkgIHJldHVybiB2YWx1ZV9jYXN0IChsb29rdXBfcG9pbnRlcl90eXBlIChUWVBFX1RB UkdFVF9UWVBFICh0eXBlKSksCiAgCQkJICAgICB2YWwpOwogIAl9Ci1AQCAtMzEwOSw5ICszMTYx LDEzIEBAIGV2YWx1YXRlX3N1YmV4cF9mb3Jfc2l6ZW9mIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw LCBpbnQgKnBvcykKK0BAIC0zMDc1LDkgKzMyMjMsMTMgQEAgZXZhbHVhdGVfc3ViZXhwX2Zvcl9z aXplb2YgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zKQogIAogICAgICBjYXNlIE9Q X1ZBUl9WQUxVRToKICAgICAgICAoKnBvcykgKz0gNDsKQEAgLTI5MzcsOCArMzExOSw1OSBAQCBp bmRleCA4Mzk0NjIzLi4zZDNhMzFlIDEwMDY0NAogIAogICAgICBkZWZhdWx0OgogICAgICAgIHZh bCA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgRVZBTF9BVk9JRF9TSURF X0VGRkVDVFMpOworQEAgLTMxMDgsMTggKzMyNjAsMjUgQEAgcGFyc2VfYW5kX2V2YWxfdHlwZSAo Y2hhciAqcCwgaW50IGxlbmd0aCkKKyBpbnQKKyBjYWxjX2Y3N19hcnJheV9kaW1zIChzdHJ1Y3Qg dHlwZSAqYXJyYXlfdHlwZSkKKyB7CistICBpbnQgbmRpbWVuID0gMTsKKy0gIHN0cnVjdCB0eXBl ICp0bXBfdHlwZTsKKysgIHN3aXRjaCAoVFlQRV9DT0RFIChhcnJheV90eXBlKSkKKysgICAgewor KyAgICBjYXNlIFRZUEVfQ09ERV9TVFJJTkc6CisrICAgICAgcmV0dXJuIDE7CisgCistICBpZiAo KFRZUEVfQ09ERSAoYXJyYXlfdHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZKSkKKy0gICAgZXJyb3Ig KF8oIkNhbid0IGdldCBkaW1lbnNpb25zIGZvciBhIG5vbi1hcnJheSB0eXBlIikpOworKyAgICBj YXNlIFRZUEVfQ09ERV9BUlJBWToKKysgICAgICB7CisrCWludCBuZGltZW4gPSAxOworIAorLSAg dG1wX3R5cGUgPSBhcnJheV90eXBlOworKwl3aGlsZSAoKGFycmF5X3R5cGUgPSBUWVBFX1RBUkdF VF9UWVBFIChhcnJheV90eXBlKSkpCisrCSAgeworKwkgICAgaWYgKFRZUEVfQ09ERSAoYXJyYXlf dHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZKQorKwkgICAgICArK25kaW1lbjsKKysJICB9CisrCXJl dHVybiBuZGltZW47CisrICAgICAgfQorIAorLSAgd2hpbGUgKCh0bXBfdHlwZSA9IFRZUEVfVEFS R0VUX1RZUEUgKHRtcF90eXBlKSkpCistICAgIHsKKy0gICAgICBpZiAoVFlQRV9DT0RFICh0bXBf dHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZKQorLQkrK25kaW1lbjsKKysgICAgZGVmYXVsdDoKKysg ICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9yIGEgbm9uLWFycmF5L25vbi1z dHJpbmcgdHlwZSIpKTsKKyAgICAgfQorLSAgcmV0dXJuIG5kaW1lbjsKKysKKyB9CitkaWZmIC0t Z2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQoraW5kZXggMDI3NDVjOC4uM2E3MzBlNyAx MDA2NDQKKy0tLSBhL2dkYi9mLWV4cC55CisrKysgYi9nZGIvZi1leHAueQorQEAgLTI5Myw3ICsy OTMsOSBAQCBhcmdsaXN0IDoJc3VicmFuZ2UKKyAJCQl7IGFyZ2xpc3RfbGVuID0gMTsgfQorIAk7 CisgICAgCistYXJnbGlzdAk6CWFyZ2xpc3QgJywnIGV4cCAgICVwcmVjIEFCT1ZFX0NPTU1BCisr YXJnbGlzdAk6CWFyZ2xpc3QgJywnIGV4cCAgICAgICAlcHJlYyBBQk9WRV9DT01NQQorKwkJCXsg YXJnbGlzdF9sZW4rKzsgfQorKwl8CWFyZ2xpc3QgJywnIHN1YnJhbmdlICAlcHJlYyBBQk9WRV9D T01NQQorIAkJCXsgYXJnbGlzdF9sZW4rKzsgfQorIAk7CisgCiBkaWZmIC0tZ2l0IGEvZ2RiL2Yt bGFuZy5oIGIvZ2RiL2YtbGFuZy5oCi1pbmRleCA1YzI2OTJkLi5iNTJhZTc0IDEwMDY0NAoraW5k ZXggODA0MzU3Ny4uOTRhNWYzMSAxMDA2NDQKIC0tLSBhL2dkYi9mLWxhbmcuaAogKysrIGIvZ2Ri L2YtbGFuZy5oCiBAQCAtMjgsNiArMjgsMTAgQEAgZXh0ZXJuIHZvaWQgZl9lcnJvciAoY2hhciAq KTsJLyogRGVmaW5lZCBpbiBmLWV4cC55ICovCkBAIC0yOTUzLDcgKzMxODYsNyBAQCBpbmRleCA1 YzI2OTJkLi5iNTJhZTc0IDEwMDY0NAogIAkJCXN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQlj b25zdCBzdHJ1Y3QgdmFsdWUgKiwKIGRpZmYgLS1naXQgYS9nZGIvZi10eXBlcHJpbnQuYyBiL2dk Yi9mLXR5cGVwcmludC5jCi1pbmRleCA2NjE4MTg4Li45NjhkZTdhIDEwMDY0NAoraW5kZXggYWQ5 ODhkMi4uOTg1ZmVmNiAxMDA2NDQKIC0tLSBhL2dkYi9mLXR5cGVwcmludC5jCiArKysgYi9nZGIv Zi10eXBlcHJpbnQuYwogQEAgLTMyLDcgKzMyLDcgQEAKQEAgLTMwMjEsMTggKzMyNTQsMTggQEAg aW5kZXggNjYxODE4OC4uOTY4ZGU3YSAxMDA2NDQKICAgICAgewogICAgICBjYXNlIFRZUEVfQ09E RV9BUlJBWToKIGRpZmYgLS1naXQgYS9nZGIvZi12YWxwcmludC5jIGIvZ2RiL2YtdmFscHJpbnQu YwotaW5kZXggNjRjMDk4OS4uNzg3YjRhYSAxMDA2NDQKK2luZGV4IDRkMjZhZGUuLjIwNmE2MmIg MTAwNjQ0CiAtLS0gYS9nZGIvZi12YWxwcmludC5jCiArKysgYi9nZGIvZi12YWxwcmludC5jCiBA QCAtNTQsMTUgKzU0LDE3IEBAIGludCBmNzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTl9E SU1TICsgMV1bMl07CiAgLyogVGhlIGZvbGxvd2luZyBtYWNybyBnaXZlcyB1cyB0aGUgc2l6ZSBv ZiB0aGUgbnRoIGRpbWVuc2lvbiwgV2hlcmUgCi0gICAgbiBpcyAxIGJhc2VkLiAqLworICAgIG4g aXMgMSBiYXNlZC4gICovCiAgCiAtI2RlZmluZSBGNzdfRElNX1NJWkUobikgKGY3N19hcnJheV9v ZmZzZXRfdGJsW25dWzFdKQogKyNkZWZpbmUgRjc3X0RJTV9DT1VOVChuKSAoZjc3X2FycmF5X29m ZnNldF90Ymxbbl1bMV0pCiAgCi0tLyogVGhlIGZvbGxvd2luZyBnaXZlcyB1cyB0aGUgb2Zmc2V0 IGZvciByb3cgbiB3aGVyZSBuIGlzIDEtYmFzZWQuICovCi0rLyogVGhlIGZvbGxvd2luZyBnaXZl cyB1cyB0aGUgZWxlbWVudCBzaXplIGZvciByb3cgbiB3aGVyZSBuIGlzIDEtYmFzZWQuICovCist LyogVGhlIGZvbGxvd2luZyBnaXZlcyB1cyB0aGUgb2Zmc2V0IGZvciByb3cgbiB3aGVyZSBuIGlz IDEtYmFzZWQuICAqLworKy8qIFRoZSBmb2xsb3dpbmcgZ2l2ZXMgdXMgdGhlIGVsZW1lbnQgc2l6 ZSBmb3Igcm93IG4gd2hlcmUgbiBpcyAxLWJhc2VkLiAgKi8KICAKIC0jZGVmaW5lIEY3N19ESU1f T0ZGU0VUKG4pIChmNzdfYXJyYXlfb2Zmc2V0X3RibFtuXVswXSkKICsjZGVmaW5lIEY3N19ESU1f QllURV9TVFJJREUobikgKGY3N19hcnJheV9vZmZzZXRfdGJsW25dWzBdKQpAQCAtMzA4Niw4ICsz MzE5LDggQEAgaW5kZXggNjRjMDk4OS4uNzg3YjRhYSAxMDA2NDQKICsgIC8qIE5vdyB3ZSBtdWx0 aXBseSBlbHRsZW4gYnkgYWxsIHRoZSBCWVRFX1NUUklERXMsIHNvIHRoYXQgbGF0ZXIgd2UKICAg ICAgIGNhbiBwcmludCBvdXQgYXJyYXkgZWxlbWVudHMgY29ycmVjdGx5LiAgVXAgdGlsbCBub3cg d2UgCiAtICAgICBrbm93IGFuIG9mZnNldCB0byBhcHBseSB0byBnZXQgdGhlIGl0ZW0gYnV0IHdl IGFsc28gCi0rICAgICBrbm93IGFuIGVsdGxlbiB0byBhcHBseSB0byBnZXQgdGhlIGl0ZW0gYnV0 IHdlIGFsc28KLSAgICAgIGhhdmUgdG8ga25vdyBob3cgbXVjaCB0byBhZGQgdG8gZ2V0IHRvIHRo ZSBuZXh0IGl0ZW0gKi8KKysgICAgIGtub3cgYW4gZWx0bGVuIHRvIGFwcGx5IHRvIGdldCB0aGUg aXRlbSBidXQgd2UgYWxzbyAKKyAgICAgIGhhdmUgdG8ga25vdyBob3cgbXVjaCB0byBhZGQgdG8g Z2V0IHRvIHRoZSBuZXh0IGl0ZW0uICAqLwogIAogICAgbmRpbWVuLS07CiAgICBlbHRsZW4gPSBU WVBFX0xFTkdUSCAodG1wX3R5cGUpOwpAQCAtMzE2MCwxNzMgKzMzOTMsOCBAQCBpbmRleCA2NGMw OTg5Li43ODdiNGFhIDEwMDY0NAogICAgQ0hFQ0tfVFlQRURFRiAodHlwZSk7CiAgICBzd2l0Y2gg KFRZUEVfQ09ERSAodHlwZSkpCiAgICAgIHsKLWRpZmYgLS1naXQgYS9nZGIvZmluZGNtZC5jIGIv Z2RiL2ZpbmRjbWQuYwotaW5kZXggYzIxYzAyOC4uNGZmOTE3NyAxMDA2NDQKLS0tLSBhL2dkYi9m aW5kY21kLmMKLSsrKyBiL2dkYi9maW5kY21kLmMKLUBAIC00NSw2ICs0NSw0MSBAQCBwdXRfYml0 cyAoYmZkX3VpbnQ2NF90IGRhdGEsIGNoYXIgKmJ1ZiwgaW50IGJpdHMsIGJmZF9ib29sZWFuIGJp Z19wKQotICAgICB9Ci0gfQotIAotKy8qIEFsbG9jYXRlcyBhIGJ1ZmZlciBpbiAqUEFUVEVSTl9C VUYsIHdpdGggYSBoYXJkLWNvZGVkIGluaXRpYWwgc2l6ZSB3aGljaAotKyAgIHdpbGwgYmUgcmV0 dXJuZWQgaW4gKlBBVFRFUk5fQlVGX1NJWkUuICpQQVRURVJOX0JVRl9FTkQgcG9pbnRzIHRvIHRo ZSBzYW1lCi0rICAgcGxhY2UgYXMgKlBBVFRFUk5fQlVGLCBpbmRpY2F0aW5nIHRoYXQgdGhlIGJ1 ZmZlciBpcyBpbml0aWFsbHkgZW1wdHkuICAqLwotKwotK3ZvaWQKLSthbGxvY2F0ZV9wYXR0ZXJu X2J1ZmZlciAoY2hhciAqKnBhdHRlcm5fYnVmLCBjaGFyICoqcGF0dGVybl9idWZfZW5kLAotKwkJ CSBVTE9OR0VTVCAqcGF0dGVybl9idWZfc2l6ZSkKLSt7Ci0rI2RlZmluZSBJTklUSUFMX1BBVFRF Uk5fQlVGX1NJWkUgMTAwCi0rICAqcGF0dGVybl9idWZfc2l6ZSA9IElOSVRJQUxfUEFUVEVSTl9C VUZfU0laRTsKLSsgICpwYXR0ZXJuX2J1ZiA9IHhtYWxsb2MgKCpwYXR0ZXJuX2J1Zl9zaXplKTsK LSsgICpwYXR0ZXJuX2J1Zl9lbmQgPSAqcGF0dGVybl9idWY7Ci0rfQotKwotKy8qIEdyb3dzICpQ QVRURVJOX0JVRiBieSBhIGZhY3RvciBvZiB0d28gaWYgaXQncyBub3QgbGFyZ2UgZW5vdWdoIHRv IGhvbGQKLSsgICBWQUxfQllURVMgbW9yZSBieXRlcyAgb3IgYSA2NC1iaXQgdmFsdWUsIHdoaWNo ZXZlciBpcyBsYXJnZXIuCi0rICAgKlBBVFRFUk5fQlVGX0VORCBpcyB1cGRhdGVkIGFzIG5lY2Vz c2FyeS4gICovCi0rCi0rdm9pZAotK2luY3JlYXNlX3BhdHRlcm5fYnVmZmVyIChjaGFyICoqcGF0 dGVybl9idWYsIGNoYXIgKipwYXR0ZXJuX2J1Zl9lbmQsCi0rCQkJIFVMT05HRVNUICpwYXR0ZXJu X2J1Zl9zaXplLCBpbnQgdmFsX2J5dGVzKQotK3sKLSsgICAgLyogS2VlcCBpdCBzaW1wbGUgYW5k IGFzc3VtZSBzaXplID09ICdnJyB3aGVuIHdhdGNoaW5nIGZvciB3aGVuIHdlCi0rICAgICAgIG5l ZWQgdG8gZ3JvdyB0aGUgcGF0dGVybiBidWYuICAqLwotKyAgICBpZiAoKCpwYXR0ZXJuX2J1Zl9l bmQgLSAqcGF0dGVybl9idWYgKyBtYXggKHZhbF9ieXRlcywgc2l6ZW9mIChpbnQ2NF90KSkpCi0r CT4gKnBhdHRlcm5fYnVmX3NpemUpCi0rICAgICAgewotKwlzaXplX3QgY3VycmVudF9vZmZzZXQg PSAqcGF0dGVybl9idWZfZW5kIC0gKnBhdHRlcm5fYnVmOwotKwotKwkqcGF0dGVybl9idWZfc2l6 ZSAqPSAyOwotKwkqcGF0dGVybl9idWYgPSB4cmVhbGxvYyAoKnBhdHRlcm5fYnVmLCAqcGF0dGVy bl9idWZfc2l6ZSk7Ci0rCSpwYXR0ZXJuX2J1Zl9lbmQgPSAqcGF0dGVybl9idWYgKyBjdXJyZW50 X29mZnNldDsKLSsgICAgICB9Ci0rfQotKwotIC8qIFN1YnJvdXRpbmUgb2YgZmluZF9jb21tYW5k IHRvIHNpbXBsaWZ5IGl0LgotICAgIFBhcnNlIHRoZSBhcmd1bWVudHMgb2YgdGhlICJmaW5kIiBj b21tYW5kLiAgKi8KLSAKLUBAIC02MSw4ICs5Niw3IEBAIHBhcnNlX2ZpbmRfYXJncyAoY2hhciAq YXJncywgVUxPTkdFU1QgKm1heF9jb3VudHAsCi0gICBjaGFyICpwYXR0ZXJuX2J1ZjsKLSAgIC8q IEN1cnJlbnQgc2l6ZSBvZiBzZWFyY2ggcGF0dGVybiBidWZmZXIuCi0gICAgICBXZSByZWFsbG9j IHNwYWNlIGFzIG5lZWRlZC4gICovCi0tI2RlZmluZSBJTklUSUFMX1BBVFRFUk5fQlVGX1NJWkUg MTAwCi0tICBVTE9OR0VTVCBwYXR0ZXJuX2J1Zl9zaXplID0gSU5JVElBTF9QQVRURVJOX0JVRl9T SVpFOwotKyAgVUxPTkdFU1QgcGF0dGVybl9idWZfc2l6ZTsKLSAgIC8qIFBvaW50ZXIgdG8gb25l IHBhc3QgdGhlIGxhc3QgaW4tdXNlIHBhcnQgb2YgcGF0dGVybl9idWYuICAqLwotICAgY2hhciAq cGF0dGVybl9idWZfZW5kOwotICAgVUxPTkdFU1QgcGF0dGVybl9sZW47Ci1AQCAtNzUsOCArMTA5 LDcgQEAgcGFyc2VfZmluZF9hcmdzIChjaGFyICphcmdzLCBVTE9OR0VTVCAqbWF4X2NvdW50cCwK LSAgIGlmIChhcmdzID09IE5VTEwpCi0gICAgIGVycm9yIChfKCJNaXNzaW5nIHNlYXJjaCBwYXJh bWV0ZXJzLiIpKTsKLSAKLS0gIHBhdHRlcm5fYnVmID0geG1hbGxvYyAocGF0dGVybl9idWZfc2l6 ZSk7Ci0tICBwYXR0ZXJuX2J1Zl9lbmQgPSBwYXR0ZXJuX2J1ZjsKLSsgIGFsbG9jYXRlX3BhdHRl cm5fYnVmZmVyICgmcGF0dGVybl9idWYsICZwYXR0ZXJuX2J1Zl9lbmQsICZwYXR0ZXJuX2J1Zl9z aXplKTsKLSAgIG9sZF9jbGVhbnVwcyA9IG1ha2VfY2xlYW51cCAoZnJlZV9jdXJyZW50X2NvbnRl bnRzLCAmcGF0dGVybl9idWYpOwotIAotICAgLyogR2V0IHNlYXJjaCBncmFudWxhcml0eSBhbmQv b3IgbWF4IGNvdW50IGlmIHNwZWNpZmllZC4KLUBAIC0xNzYsMTcgKzIwOSw5IEBAIHBhcnNlX2Zp bmRfYXJncyAoY2hhciAqYXJncywgVUxPTkdFU1QgKm1heF9jb3VudHAsCi0gICAgICAgdiA9IHBh cnNlX3RvX2NvbW1hX2FuZF9ldmFsICgmcyk7Ci0gICAgICAgdmFsX2J5dGVzID0gVFlQRV9MRU5H VEggKHZhbHVlX3R5cGUgKHYpKTsKLSAKLS0gICAgICAvKiBLZWVwIGl0IHNpbXBsZSBhbmQgYXNz dW1lIHNpemUgPT0gJ2cnIHdoZW4gd2F0Y2hpbmcgZm9yIHdoZW4gd2UKLS0JIG5lZWQgdG8gZ3Jv dyB0aGUgcGF0dGVybiBidWYuICAqLwotLSAgICAgIGlmICgocGF0dGVybl9idWZfZW5kIC0gcGF0 dGVybl9idWYgKyBtYXggKHZhbF9ieXRlcywgc2l6ZW9mIChpbnQ2NF90KSkpCi0tCSAgPiBwYXR0 ZXJuX2J1Zl9zaXplKQotLQl7Ci0tCSAgc2l6ZV90IGN1cnJlbnRfb2Zmc2V0ID0gcGF0dGVybl9i dWZfZW5kIC0gcGF0dGVybl9idWY7Ci0rICAgICAgaW5jcmVhc2VfcGF0dGVybl9idWZmZXIgKCZw YXR0ZXJuX2J1ZiwgJnBhdHRlcm5fYnVmX2VuZCwKLSsJCQkgICAgICAgJnBhdHRlcm5fYnVmX3Np emUsIHZhbF9ieXRlcyk7Ci0gCi0tCSAgcGF0dGVybl9idWZfc2l6ZSAqPSAyOwotLQkgIHBhdHRl cm5fYnVmID0geHJlYWxsb2MgKHBhdHRlcm5fYnVmLCBwYXR0ZXJuX2J1Zl9zaXplKTsKLS0JICBw YXR0ZXJuX2J1Zl9lbmQgPSBwYXR0ZXJuX2J1ZiArIGN1cnJlbnRfb2Zmc2V0OwotLQl9Ci0gCi0g ICAgICAgaWYgKHNpemUgIT0gJ1wwJykKLSAJewotQEAgLTI0MSw2ICsyNjYsNDUgQEAgcGFyc2Vf ZmluZF9hcmdzIChjaGFyICphcmdzLCBVTE9OR0VTVCAqbWF4X2NvdW50cCwKLSAgIGRpc2NhcmRf Y2xlYW51cHMgKG9sZF9jbGVhbnVwcyk7Ci0gfQotIAotKy8qIERyaXZlcyB0YXJnZXRfc2VhcmNo X21lbW9yeSB0byBzd2VlcCB0aHJvdWdoIHRoZSBzcGVjaWZpZWQgc2VhcmNoIHNwYWNlLAotKyAg IHBvc3NpYmx5IGluIHNldmVyYWwgaXRlcmF0aW9ucyAod2l0aCBvbmUgY2FsbCB0byB0aGlzIGZ1 bmN0aW9uIGZvciBlYWNoCi0rICAgaXRlcmF0aW9uKS4gICpTVEFSVF9BRERSIGlzIHRoZSBhZGRy ZXNzIHdoZXJlIHRoZSBzZWFyY2ggc3RhcnRzLCBhbmQgaXMKLSsgICB1cGRhdGVkIHRvIHRoZSBu ZXh0IHN0YXJ0aW5nIGFkZHJlc3MgdG8gY29udGludWUgdGhlIHNlYXJjaC4KLSsgICAqU0VBUkNI X1NQQUNFX0xFTiBpcyB0aGUgYW1vdW50IG9mIGJ5dGVzIHdoaWNoIHdpbGwgYmUgc2VhcmNoZWQs IGFuZCBpcwotKyAgIHVwZGF0ZWQgZm9yIHRoZSBuZXh0IGl0ZXJhdGlvbi4gUEFUVEVSTl9CVUYg aG9sZHMgdGhlIHBhdHRlcm4gdG8gYmUgc2VhcmNoZWQKLSsgICBmb3IsIFBBVFRFUk5fTEVOIGlz IHRoZSBzaXplIG9mIHRoZSBwYXR0ZXJuIGluIGJ5dGVzLiAgSWYgYSBtYXRjaCBpcyBmb3VuZCwK LSsgICBpdCdzIGFkZHJlc3MgaXMgcHV0IGluICpGT1VORF9BRERSLgotKwotKyAgIFJldHVybnMg MSBpZiBmb3VuZCwgMCBpZiBub3QgZm91bmQsIGFuZCAtMSBpZiB0aGVyZSB3YXMgYW4gZXJyb3Ig cmVxdWlyaW5nCi0rICAgaGFsdGluZyBvZiB0aGUgc2VhcmNoIChlLmcuIG1lbW9yeSByZWFkIGVy cm9yKS4gICovCi0rCi0raW50Ci0rc2VhcmNoX21lbW9yeSAoQ09SRV9BRERSICpzdGFydF9hZGRy LCBVTE9OR0VTVCAqc2VhcmNoX3NwYWNlX2xlbiwKLSsJICAgICAgIGNvbnN0IGNoYXIgKnBhdHRl cm5fYnVmLCBVTE9OR0VTVCBwYXR0ZXJuX2xlbiwKLSsJICAgICAgIENPUkVfQUREUiAqZm91bmRf YWRkcikKLSt7Ci0rICAvKiBPZmZzZXQgZnJvbSBzdGFydCBvZiB0aGlzIGl0ZXJhdGlvbiB0byB0 aGUgbmV4dCBpdGVyYXRpb24uICAqLwotKyAgVUxPTkdFU1QgbmV4dF9pdGVyX2luY3I7Ci0rICBp bnQgZm91bmQ7Ci0rICAgIAotKyAgZm91bmQgPSB0YXJnZXRfc2VhcmNoX21lbW9yeSAoKnN0YXJ0 X2FkZHIsICpzZWFyY2hfc3BhY2VfbGVuLAotKwkJCQlwYXR0ZXJuX2J1ZiwgcGF0dGVybl9sZW4s IGZvdW5kX2FkZHIpOwotKyAgaWYgKGZvdW5kIDw9IDApCi0rICAgIHJldHVybiBmb3VuZDsKLSsK LSsgIC8qIEJlZ2luIG5leHQgaXRlcmF0aW9uIGF0IG9uZSBieXRlIHBhc3QgdGhpcyBtYXRjaC4g ICovCi0rICBuZXh0X2l0ZXJfaW5jciA9ICgqZm91bmRfYWRkciAtICpzdGFydF9hZGRyKSArIDE7 Ci0rCi0rICAvKiBGb3Igcm9idXN0bmVzcywgd2UgZG9uJ3QgbGV0IHNlYXJjaF9zcGFjZV9sZW4g Z28gLXZlIGhlcmUuICAqLwotKyAgaWYgKCpzZWFyY2hfc3BhY2VfbGVuID49IG5leHRfaXRlcl9p bmNyKQotKyAgICAqc2VhcmNoX3NwYWNlX2xlbiAtPSBuZXh0X2l0ZXJfaW5jcjsKLSsgIGVsc2UK LSsgICAgKnNlYXJjaF9zcGFjZV9sZW4gPSAwOwotKyAgKnN0YXJ0X2FkZHIgKz0gbmV4dF9pdGVy X2luY3I7Ci0rCi0rICByZXR1cm4gZm91bmQ7Ci0rfQotKwotIHN0YXRpYyB2b2lkCi0gZmluZF9j b21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCi0gewotQEAgLTI3MSwxMiArMzM1LDEx IEBAIGZpbmRfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQotICAgd2hpbGUgKHNl YXJjaF9zcGFjZV9sZW4gPj0gcGF0dGVybl9sZW4KLSAJICYmIGZvdW5kX2NvdW50IDwgbWF4X2Nv dW50KQotICAgICB7Ci0tICAgICAgLyogT2Zmc2V0IGZyb20gc3RhcnQgb2YgdGhpcyBpdGVyYXRp b24gdG8gdGhlIG5leHQgaXRlcmF0aW9uLiAgKi8KLS0gICAgICBVTE9OR0VTVCBuZXh0X2l0ZXJf aW5jcjsKLSAgICAgICBDT1JFX0FERFIgZm91bmRfYWRkcjsKLS0gICAgICBpbnQgZm91bmQgPSB0 YXJnZXRfc2VhcmNoX21lbW9yeSAoc3RhcnRfYWRkciwgc2VhcmNoX3NwYWNlX2xlbiwKLS0JCQkJ CXBhdHRlcm5fYnVmLCBwYXR0ZXJuX2xlbiwgJmZvdW5kX2FkZHIpOwotKyAgICAgIGludCBmb3Vu ZDsKLSAKLSsgICAgICBmb3VuZCA9IHNlYXJjaF9tZW1vcnkgKCZzdGFydF9hZGRyLCAmc2VhcmNo X3NwYWNlX2xlbiwgcGF0dGVybl9idWYsCi0rCQkJICAgICBwYXR0ZXJuX2xlbiwgJmZvdW5kX2Fk ZHIpOwotICAgICAgIGlmIChmb3VuZCA8PSAwKQotIAlicmVhazsKLSAKLUBAIC0yODQsMTYgKzM0 Nyw2IEBAIGZpbmRfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQotICAgICAgIHBy aW50Zl9maWx0ZXJlZCAoIlxuIik7Ci0gICAgICAgKytmb3VuZF9jb3VudDsKLSAgICAgICBsYXN0 X2ZvdW5kX2FkZHIgPSBmb3VuZF9hZGRyOwotLQotLSAgICAgIC8qIEJlZ2luIG5leHQgaXRlcmF0 aW9uIGF0IG9uZSBieXRlIHBhc3QgdGhpcyBtYXRjaC4gICovCi0tICAgICAgbmV4dF9pdGVyX2lu Y3IgPSAoZm91bmRfYWRkciAtIHN0YXJ0X2FkZHIpICsgMTsKLS0KLS0gICAgICAvKiBGb3Igcm9i dXN0bmVzcywgd2UgZG9uJ3QgbGV0IHNlYXJjaF9zcGFjZV9sZW4gZ28gLXZlIGhlcmUuICAqLwot LSAgICAgIGlmIChzZWFyY2hfc3BhY2VfbGVuID49IG5leHRfaXRlcl9pbmNyKQotLQlzZWFyY2hf c3BhY2VfbGVuIC09IG5leHRfaXRlcl9pbmNyOwotLSAgICAgIGVsc2UKLS0Jc2VhcmNoX3NwYWNl X2xlbiA9IDA7Ci0tICAgICAgc3RhcnRfYWRkciArPSBuZXh0X2l0ZXJfaW5jcjsKLSAgICAgfQot IAotICAgLyogUmVjb3JkIGFuZCBwcmludCB0aGUgcmVzdWx0cy4gICovCiBkaWZmIC0tZ2l0IGEv Z2RiL2ZpbmR2YXIuYyBiL2dkYi9maW5kdmFyLmMKLWluZGV4IDVmOTc0MjIuLjJjMjY3MGUgMTAw NjQ0CitpbmRleCA2NDYzMzQyLi45NTFjMmZlIDEwMDY0NAogLS0tIGEvZ2RiL2ZpbmR2YXIuYwog KysrIGIvZ2RiL2ZpbmR2YXIuYwogQEAgLTM1LDYgKzM1LDcgQEAKQEAgLTMzMzcsMTEgKzM0MDUs MTMgQEAgaW5kZXggNWY5NzQyMi4uMmMyNjcwZSAxMDA2NDQKICAKICAvKiBCYXNpYyBieXRlLXN3 YXBwaW5nIHJvdXRpbmVzLiAgQWxsICdleHRyYWN0JyBmdW5jdGlvbnMgcmV0dXJuIGEKICAgICBo b3N0LWZvcm1hdCBpbnRlZ2VyIGZyb20gYSB0YXJnZXQtZm9ybWF0IGludGVnZXIgYXQgQUREUiB3 aGljaCBpcwotQEAgLTQwMSwyNyArNDAyLDE2IEBAIHN5bWJvbF9yZWFkX25lZWRzX2ZyYW1lIChz dHJ1Y3Qgc3ltYm9sICpzeW0pCitAQCAtMzk5LDggKzQwMCwxMSBAQCBzeW1ib2xfcmVhZF9uZWVk c19mcmFtZSAoc3RydWN0IHN5bWJvbCAqc3ltKQorIAogIC8qIEdpdmVuIGEgc3RydWN0IHN5bWJv bCBmb3IgYSB2YXJpYWJsZSwKICAgICBhbmQgYSBzdGFjayBmcmFtZSBpZCwgcmVhZCB0aGUgdmFs dWUgb2YgdGhlIHZhcmlhYmxlCi0gICAgYW5kIHJldHVybiBhIChwb2ludGVyIHRvIGEpIHN0cnVj dCB2YWx1ZSBjb250YWluaW5nIHRoZSB2YWx1ZS4gCistICAgYW5kIHJldHVybiBhIChwb2ludGVy IHRvIGEpIHN0cnVjdCB2YWx1ZSBjb250YWluaW5nIHRoZSB2YWx1ZS4KIC0gICBJZiB0aGUgdmFy aWFibGUgY2Fubm90IGJlIGZvdW5kLCByZXR1cm4gYSB6ZXJvIHBvaW50ZXIuICAqLworKyAgIGFu ZCByZXR1cm4gYSAocG9pbnRlciB0byBhKSBzdHJ1Y3QgdmFsdWUgY29udGFpbmluZyB0aGUgdmFs dWUuIAogKyAgIElmIHRoZSB2YXJpYWJsZSBjYW5ub3QgYmUgZm91bmQsIHJldHVybiBhIHplcm8g cG9pbnRlci4KICsgICBXZSBoYXZlIHRvIGZpcnN0IGZpbmQgdGhlIGFkZHJlc3Mgb2YgdGhlIHZh cmlhYmxlIGJlZm9yZSBhbGxvY2F0aW5nIHN0cnVjdAogKyAgIHZhbHVlIHRvIHJldHVybiBhcyBp dHMgc2l6ZSBtYXkgZGVwZW5kIG9uIERXX09QX1BVU0hfT0JKRUNUX0FERFJFU1MgcG9zc2libHkK QEAgLTMzNDksMTcxICszNDE5LDEwNiBAQCBpbmRleCA1Zjk3NDIyLi4yYzI2NzBlIDEwMDY0NAog IAogIHN0cnVjdCB2YWx1ZSAqCiAgcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwg c3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQotIHsKLS0gIHN0cnVjdCB2YWx1ZSAqdjsKK0BAIC00 MDgsMTYgKzQxMiw2IEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVj dCBmcmFtZV9pbmZvICpmcmFtZSkKKyAgIHN0cnVjdCB2YWx1ZSAqdjsKICAgIHN0cnVjdCB0eXBl ICp0eXBlID0gU1lNQk9MX1RZUEUgKHZhcik7CiAgICBDT1JFX0FERFIgYWRkcjsKIC0gIGludCBs ZW47CiAtCi0tICBpZiAoU1lNQk9MX0NMQVNTICh2YXIpID09IExPQ19DT01QVVRFRAotLSAgICAg IHx8IFNZTUJPTF9DTEFTUyAodmFyKSA9PSBMT0NfUkVHSVNURVIpCi0tICAgIC8qIFRoZXNlIGNh c2VzIGRvIG5vdCB1c2UgVi4gICovCi0tICAgIHYgPSBOVUxMOwotLSAgZWxzZQotLSAgICB7Ci0t ICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKLS0gICAgICBWQUxVRV9MVkFMICh2KSA9 IGx2YWxfbWVtb3J5OwkvKiBUaGUgbW9zdCBsaWtlbHkgcG9zc2liaWxpdHkuICAqLwotLSAgICB9 CistICAvKiBDYWxsIGNoZWNrX3R5cGVkZWYgb24gb3VyIHR5cGUgdG8gbWFrZSBzdXJlIHRoYXQs IGlmIFRZUEUgaXMKKy0gICAgIGEgVFlQRV9DT0RFX1RZUEVERUYsIGl0cyBsZW5ndGggaXMgc2V0 IHRvIHRoZSBsZW5ndGggb2YgdGhlIHRhcmdldCB0eXBlCistICAgICBpbnN0ZWFkIG9mIHplcm8u ICBIb3dldmVyLCB3ZSBkbyBub3QgcmVwbGFjZSB0aGUgdHlwZWRlZiB0eXBlIGJ5IHRoZQorLSAg ICAgdGFyZ2V0IHR5cGUsIGJlY2F1c2Ugd2Ugd2FudCB0byBrZWVwIHRoZSB0eXBlZGVmIGluIG9y ZGVyIHRvIGJlIGFibGUgdG8KKy0gICAgIHNldCB0aGUgcmV0dXJuZWQgdmFsdWUgdHlwZSBkZXNj cmlwdGlvbiBjb3JyZWN0bHkuICAqLworLSAgY2hlY2tfdHlwZWRlZiAodHlwZSk7CiAtCiAtICBs ZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CiAgCiAgICBpZiAoc3ltYm9sX3JlYWRfbmVlZHNfZnJh bWUgKHZhcikpCiAgICAgIGdkYl9hc3NlcnQgKGZyYW1lKTsKLUBAIC00MjksMzMgKzQxOSw0MyBA QCByZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAq ZnJhbWUpCi0gICBzd2l0Y2ggKFNZTUJPTF9DTEFTUyAodmFyKSkKLSAgICAgeworQEAgLTQyNyw3 ICs0MjEsNyBAQCByZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJh bWVfaW5mbyAqZnJhbWUpCiAgICAgIGNhc2UgTE9DX0NPTlNUOgotLSAgICAgIC8qIFB1dCB0aGUg Y29uc3RhbnQgYmFjayBpbiB0YXJnZXQgZm9ybWF0LiAgKi8KKyAgICAgICAvKiBQdXQgdGhlIGNv bnN0YW50IGJhY2sgaW4gdGFyZ2V0IGZvcm1hdC4gICovCisgICAgICAgdiA9IGFsbG9jYXRlX3Zh bHVlICh0eXBlKTsKIC0gICAgICBzdG9yZV9zaWduZWRfaW50ZWdlciAodmFsdWVfY29udGVudHNf cmF3ICh2KSwgbGVuLAotLQkJCSAgICBnZGJhcmNoX2J5dGVfb3JkZXIgKGdldF90eXBlX2FyY2gg KHR5cGUpKSwKLS0JCQkgICAgKExPTkdFU1QpIFNZTUJPTF9WQUxVRSAodmFyKSk7Ci0tICAgICAg VkFMVUVfTFZBTCAodikgPSBub3RfbHZhbDsKLS0gICAgICByZXR1cm4gdjsKLSsgICAgICB7Ci0r CS8qIFB1dCB0aGUgY29uc3RhbnQgYmFjayBpbiB0YXJnZXQgZm9ybWF0LiAgKi8KLSsJc3RydWN0 IHZhbHVlICp2ID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwotKwlWQUxVRV9MVkFMICh2KSA9IG5v dF9sdmFsOwotKwlzdG9yZV9zaWduZWRfaW50ZWdlciAodmFsdWVfY29udGVudHNfcmF3ICh2KSwg VFlQRV9MRU5HVEggKHR5cGUpLAotKwkJCSAgICAgIGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5 cGVfYXJjaCAodHlwZSkpLAotKwkJCSAgICAgIChMT05HRVNUKSBTWU1CT0xfVkFMVUUgKHZhcikp OwotKwlyZXR1cm4gdjsKLSsgICAgICB9Ci0gCi0gICAgIGNhc2UgTE9DX0xBQkVMOgotLSAgICAg IC8qIFB1dCB0aGUgY29uc3RhbnQgYmFjayBpbiB0YXJnZXQgZm9ybWF0LiAgKi8KLS0gICAgICBp ZiAob3ZlcmxheV9kZWJ1Z2dpbmcpCi0tCXsKLS0JICBDT1JFX0FERFIgYWRkcgotLQkgICAgPSBz eW1ib2xfb3ZlcmxheWVkX2FkZHJlc3MgKFNZTUJPTF9WQUxVRV9BRERSRVNTICh2YXIpLAotLQkJ CQkJU1lNQk9MX09CSl9TRUNUSU9OICh2YXIpKTsKLSsgICAgICB7Ci0rCS8qIFB1dCB0aGUgY29u c3RhbnQgYmFjayBpbiB0YXJnZXQgZm9ybWF0LiAgKi8KLSsJc3RydWN0IHZhbHVlICp2ID0gYWxs b2NhdGVfdmFsdWUgKHR5cGUpOwotKwlWQUxVRV9MVkFMICh2KSA9IG5vdF9sdmFsOwotKwlpZiAo b3ZlcmxheV9kZWJ1Z2dpbmcpCi0rCSAgewotKwkgICAgQ09SRV9BRERSIGFkZHIKLSsJICAgICAg PSBzeW1ib2xfb3ZlcmxheWVkX2FkZHJlc3MgKFNZTUJPTF9WQUxVRV9BRERSRVNTICh2YXIpLAot KwkJCQkJICBTWU1CT0xfT0JKX1NFQ1RJT04gKHZhcikpOwotIAotLQkgIHN0b3JlX3R5cGVkX2Fk ZHJlc3MgKHZhbHVlX2NvbnRlbnRzX3JhdyAodiksIHR5cGUsIGFkZHIpOwotLQl9Ci0tICAgICAg ZWxzZQotLQlzdG9yZV90eXBlZF9hZGRyZXNzICh2YWx1ZV9jb250ZW50c19yYXcgKHYpLCB0eXBl LAotLQkJCSAgICAgIFNZTUJPTF9WQUxVRV9BRERSRVNTICh2YXIpKTsKLS0gICAgICBWQUxVRV9M VkFMICh2KSA9IG5vdF9sdmFsOwotLSAgICAgIHJldHVybiB2OwotKwkgICAgc3RvcmVfdHlwZWRf YWRkcmVzcyAodmFsdWVfY29udGVudHNfcmF3ICh2KSwgdHlwZSwgYWRkcik7Ci0rCSAgfQotKwll bHNlCi0rCSAgc3RvcmVfdHlwZWRfYWRkcmVzcyAodmFsdWVfY29udGVudHNfcmF3ICh2KSwgdHlw ZSwKLSsJCQkJU1lNQk9MX1ZBTFVFX0FERFJFU1MgKHZhcikpOwotKwlyZXR1cm4gdjsKLSsgICAg ICB9CisrICAgICAgc3RvcmVfc2lnbmVkX2ludGVnZXIgKHZhbHVlX2NvbnRlbnRzX3JhdyAodiks IFRZUEVfTEVOR1RIICh0eXBlKSwKKyAJCQkgICAgZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlw ZV9hcmNoICh0eXBlKSksCisgCQkJICAgIChMT05HRVNUKSBTWU1CT0xfVkFMVUUgKHZhcikpOwor ICAgICAgIFZBTFVFX0xWQUwgKHYpID0gbm90X2x2YWw7CitAQCAtNDUyLDEyICs0NDYsMTIgQEAg cmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lKQogIAogICAgICBjYXNlIExPQ19DT05TVF9CWVRFUzoKKyAgICAgICB2ID0gYWxsb2NhdGVf dmFsdWUgKHR5cGUpOwogLSAgICAgIG1lbWNweSAodmFsdWVfY29udGVudHNfcmF3ICh2KSwgU1lN Qk9MX1ZBTFVFX0JZVEVTICh2YXIpLCBsZW4pOwotLSAgICAgIFZBTFVFX0xWQUwgKHYpID0gbm90 X2x2YWw7Ci0tICAgICAgcmV0dXJuIHY7Ci0rICAgICAgewotKwlzdHJ1Y3QgdmFsdWUgKnYgPSBh bGxvY2F0ZV92YWx1ZSAodHlwZSk7Ci0rCVZBTFVFX0xWQUwgKHYpID0gbm90X2x2YWw7Ci0rCW1l bWNweSAodmFsdWVfY29udGVudHNfcmF3ICh2KSwgU1lNQk9MX1ZBTFVFX0JZVEVTICh2YXIpLAot KwkJVFlQRV9MRU5HVEggKHR5cGUpKTsKLSsJcmV0dXJuIHY7Ci0rICAgICAgfQorKyAgICAgIG1l bWNweSAodmFsdWVfY29udGVudHNfcmF3ICh2KSwgU1lNQk9MX1ZBTFVFX0JZVEVTICh2YXIpLAor KwkgICAgICBUWVBFX0xFTkdUSCAodHlwZSkpOworICAgICAgIFZBTFVFX0xWQUwgKHYpID0gbm90 X2x2YWw7CisgICAgICAgcmV0dXJuIHY7CiAgCiAgICAgIGNhc2UgTE9DX1NUQVRJQzoKKy0gICAg ICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7CiAgICAgICAgaWYgKG92ZXJsYXlfZGVi dWdnaW5nKQotQEAgLTQ5NiwxMiArNDk2LDIzIEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3lt Ym9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKKyAJYWRkciA9IHN5bWJvbF9vdmVy bGF5ZWRfYWRkcmVzcyAoU1lNQk9MX1ZBTFVFX0FERFJFU1MgKHZhciksCisgCQkJCQkgU1lNQk9M X09CSl9TRUNUSU9OICh2YXIpKTsKK0BAIC00NzAsNyArNDY0LDYgQEAgcmVhZF92YXJfdmFsdWUg KHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQorICAgICAgIGlm ICghYWRkcikKKyAJcmV0dXJuIDA7CisgICAgICAgYWRkciArPSBTWU1CT0xfVkFMVUUgKHZhcik7 CistICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOwogICAgICAgIGJyZWFrOwog IAotICAgICBjYXNlIExPQ19CTE9DSzoKLS0gICAgICBpZiAob3ZlcmxheV9kZWJ1Z2dpbmcpCi0t CXNldF92YWx1ZV9hZGRyZXNzICh2LCBzeW1ib2xfb3ZlcmxheWVkX2FkZHJlc3MKLS0JICAoQkxP Q0tfU1RBUlQgKFNZTUJPTF9CTE9DS19WQUxVRSAodmFyKSksIFNZTUJPTF9PQkpfU0VDVElPTiAo dmFyKSkpOwotLSAgICAgIGVsc2UKLS0Jc2V0X3ZhbHVlX2FkZHJlc3MgKHYsIEJMT0NLX1NUQVJU IChTWU1CT0xfQkxPQ0tfVkFMVUUgKHZhcikpKTsKLS0gICAgICByZXR1cm4gdjsKLSsgICAgICB7 Ci0rICAgICAgICBDT1JFX0FERFIgYWRkcjsKLSsJc3RydWN0IHZhbHVlICp2OwotKwotKwlpZiAo b3ZlcmxheV9kZWJ1Z2dpbmcpCi0rCSAgYWRkciA9IHN5bWJvbF9vdmVybGF5ZWRfYWRkcmVzcwot KwkgICAgKEJMT0NLX1NUQVJUIChTWU1CT0xfQkxPQ0tfVkFMVUUgKHZhcikpLCBTWU1CT0xfT0JK X1NFQ1RJT04gKHZhcikpOwotKwllbHNlCi0rCSAgYWRkciA9IEJMT0NLX1NUQVJUIChTWU1CT0xf QkxPQ0tfVkFMVUUgKHZhcikpOwotKwkvKiBBRERSIGlzIHNldCBoZXJlIGZvciBBTExPQ0FURV9W QUxVRSdzIENIRUNLX1RZUEVERUYgZm9yCi0rCSAgIERXX09QX3B1c2hfb2JqZWN0X2FkZHJlc3Mu ICAqLwotKwlvYmplY3RfYWRkcmVzc19zZXQgKGFkZHIpOwotKwl2ID0gYWxsb2NhdGVfdmFsdWUg KHR5cGUpOwotKwlWQUxVRV9MVkFMICh2KSA9IGx2YWxfbWVtb3J5OwotKwlzZXRfdmFsdWVfYWRk cmVzcyAodiwgYWRkcik7Ci0rCXJldHVybiB2OwotKyAgICAgIH0KKyAgICAgY2FzZSBMT0NfUkVG X0FSRzoKK0BAIC00ODQsMTQgKzQ3NywxMiBAQCByZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJv bCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCisgCWFyZ3JlZiArPSBTWU1CT0xfVkFM VUUgKHZhcik7CisgCXJlZiA9IHZhbHVlX2F0IChsb29rdXBfcG9pbnRlcl90eXBlICh0eXBlKSwg YXJncmVmKTsKKyAJYWRkciA9IHZhbHVlX2FzX2FkZHJlc3MgKHJlZik7CistCXYgPSBhbGxvY2F0 ZV92YWx1ZV9sYXp5ICh0eXBlKTsKKyAJYnJlYWs7CisgICAgICAgfQorIAorICAgICBjYXNlIExP Q19MT0NBTDoKKyAgICAgICBhZGRyID0gZ2V0X2ZyYW1lX2xvY2Fsc19hZGRyZXNzIChmcmFtZSk7 CisgICAgICAgYWRkciArPSBTWU1CT0xfVkFMVUUgKHZhcik7CistICAgICAgdiA9IGFsbG9jYXRl X3ZhbHVlX2xhenkgKHR5cGUpOworICAgICAgIGJyZWFrOworIAorICAgICBjYXNlIExPQ19UWVBF REVGOgorQEAgLTQ5OSw3ICs0OTAsNiBAQCByZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAq dmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCisgICAgICAgYnJlYWs7CiAgCi0gICAgIGNh c2UgTE9DX1JFR0lTVEVSOgotICAgICBjYXNlIExPQ19SRUdQQVJNX0FERFI6Ci1AQCAtNTIwLDcg KzUzMSw2IEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFt ZV9pbmZvICpmcmFtZSkKKyAgICAgY2FzZSBMT0NfQkxPQ0s6CistICAgICAgdiA9IGFsbG9jYXRl X3ZhbHVlX2xhenkgKHR5cGUpOworICAgICAgIGlmIChvdmVybGF5X2RlYnVnZ2luZykKKyAJYWRk ciA9IHN5bWJvbF9vdmVybGF5ZWRfYWRkcmVzcworIAkgIChCTE9DS19TVEFSVCAoU1lNQk9MX0JM T0NLX1ZBTFVFICh2YXIpKSwgU1lNQk9MX09CSl9TRUNUSU9OICh2YXIpKTsKK0BAIC01MjQsNyAr NTE0LDYgQEAgcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lKQogIAkgICAgICBlcnJvciAoXygiVmFsdWUgb2YgcmVnaXN0ZXIgdmFyaWFi bGUgbm90IGF2YWlsYWJsZS4iKSk7CiAgCiAgCSAgICBhZGRyID0gdmFsdWVfYXNfYWRkcmVzcyAo cmVndmFsKTsKLS0JICAgIFZBTFVFX0xWQUwgKHYpID0gbHZhbF9tZW1vcnk7CistCSAgICB2ID0g YWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7CiAgCSAgfQogIAllbHNlCiAgCSAgewotQEAgLTU2 MywxOCArNTczLDMzIEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVj dCBmcmFtZV9pbmZvICpmcmFtZSkKK0BAIC01NjMsNyArNTUyLDYgQEAgcmVhZF92YXJfdmFsdWUg KHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQorIAlpZiAob2Jq X3NlY3Rpb24KKyAJICAgICYmIChvYmpfc2VjdGlvbi0+dGhlX2JmZF9zZWN0aW9uLT5mbGFncyAm IFNFQ19USFJFQURfTE9DQUwpICE9IDApCisgCSAgYWRkciA9IHRhcmdldF90cmFuc2xhdGVfdGxz X2FkZHJlc3MgKG9ial9zZWN0aW9uLT5vYmpmaWxlLCBhZGRyKTsKKy0JdiA9IGFsbG9jYXRlX3Zh bHVlX2xhenkgKHR5cGUpOworICAgICAgIH0KICAgICAgICBicmVhazsKICAKLSAgICAgY2FzZSBM T0NfT1BUSU1JWkVEX09VVDoKLS0gICAgICBWQUxVRV9MVkFMICh2KSA9IG5vdF9sdmFsOwotLSAg ICAgIHNldF92YWx1ZV9vcHRpbWl6ZWRfb3V0ICh2LCAxKTsKLS0gICAgICByZXR1cm4gdjsKLSsg ICAgICB7Ci0rICAgICAgICBzdHJ1Y3QgdmFsdWUgKnYgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7 Ci0rCi0rCVZBTFVFX0xWQUwgKHYpID0gbm90X2x2YWw7Ci0rCXNldF92YWx1ZV9vcHRpbWl6ZWRf b3V0ICh2LCAxKTsKLSsJcmV0dXJuIHY7Ci0rICAgICAgfQotIAotICAgICBkZWZhdWx0OgotICAg ICAgIGVycm9yIChfKCJDYW5ub3QgbG9vayB1cCB2YWx1ZSBvZiBhIGJvdGNoZWQgc3ltYm9sLiIp KTsKK0BAIC01NzgsNiArNTY2LDEwIEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2 YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKICAgICAgICBicmVhazsKICAgICAgfQogIAot LSAgc2V0X3ZhbHVlX2FkZHJlc3MgKHYsIGFkZHIpOwotLSAgc2V0X3ZhbHVlX2xhenkgKHYsIDEp OwotLSAgcmV0dXJuIHY7Ci0rICB7Ci0rICAgIHN0cnVjdCB2YWx1ZSAqdjsKLSsKLSsgICAgLyog QUREUiBpcyBzZXQgaGVyZSBmb3IgQUxMT0NBVEVfVkFMVUUncyBDSEVDS19UWVBFREVGIGZvcgot KyAgICAgICBEV19PUF9QVVNIX09CSkVDVF9BRERSRVNTLiAgKi8KLSsgICAgb2JqZWN0X2FkZHJl c3Nfc2V0IChhZGRyKTsKLSsgICAgdiA9IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKLSsgICAgVkFM VUVfTFZBTCAodikgPSBsdmFsX21lbW9yeTsKLSsgICAgc2V0X3ZhbHVlX2FkZHJlc3MgKHYsIGFk ZHIpOwotKwotKyAgICBzZXRfdmFsdWVfbGF6eSAodiwgMSk7Ci0rCi0rICAgIHJldHVybiB2Owot KyAgfQotIH0KLSAKLSAvKiBJbnN0YWxsIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgcmVnaXN0ZXIg dmFsdWVzLiAgKi8KLUBAIC02MTEsMTAgKzYzNiwxMSBAQCBzdHJ1Y3QgdmFsdWUgKgorKyAgLyog QUREUiBpcyBzZXQgaGVyZSBmb3IgQUxMT0NBVEVfVkFMVUUncyBDSEVDS19UWVBFREVGIGZvcgor KyAgICAgRFdfT1BfUFVTSF9PQkpFQ1RfQUREUkVTUy4gICovCisrICBvYmplY3RfYWRkcmVzc19z ZXQgKGFkZHIpOworKyAgdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOworICAgVkFMVUVf TFZBTCAodikgPSBsdmFsX21lbW9yeTsKKyAgIHNldF92YWx1ZV9hZGRyZXNzICh2LCBhZGRyKTsK KyAgIHJldHVybiB2OworQEAgLTYxNywxMCArNjA5LDExIEBAIHN0cnVjdCB2YWx1ZSAqCiAgdmFs dWVfZnJvbV9yZWdpc3RlciAoc3RydWN0IHR5cGUgKnR5cGUsIGludCByZWdudW0sIHN0cnVjdCBm cmFtZV9pbmZvICpmcmFtZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9m cmFtZV9hcmNoIChmcmFtZSk7CkBAIC0zNTI3LDcgKzM1MzIsNyBAQCBpbmRleCA1Zjk3NDIyLi4y YzI2NzBlIDEwMDY0NAogICAgICB7CiAgICAgICAgLyogVGhlIElTQS9BQkkgbmVlZCB0byBzb21l dGhpbmcgd2VpcmQgd2hlbiBvYnRhaW5pbmcgdGhlCiAgICAgICAgICAgc3BlY2lmaWVkIHZhbHVl IGZyb20gdGhpcyByZWdpc3Rlci4gIEl0IG1pZ2h0IG5lZWQgdG8KLUBAIC02MjgsNyArNjU0LDcg QEAgdmFsdWVfZnJvbV9yZWdpc3RlciAoc3RydWN0IHR5cGUgKnR5cGUsIGludCByZWdudW0sIHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKK0BAIC02MzQsNyArNjI3LDcgQEAgdmFsdWVfZnJvbV9y ZWdpc3RlciAoc3RydWN0IHR5cGUgKnR5cGUsIGludCByZWdudW0sIHN0cnVjdCBmcmFtZV9pbmZv ICpmcmFtZSkKICAgICAgICBWQUxVRV9GUkFNRV9JRCAodikgPSBnZXRfZnJhbWVfaWQgKGZyYW1l KTsKICAgICAgICBWQUxVRV9SRUdOVU0gKHYpID0gcmVnbnVtOwogICAgICAgIGdkYmFyY2hfcmVn aXN0ZXJfdG9fdmFsdWUgKGdkYmFyY2gsCkBAIC0zNTU3LDcgKzM1NjIsNyBAQCBpbmRleCBmZmI3 ZjUzLi5hMmU3ZTk0IDEwMDY0NAogIAogIGIgaW50ZXJuYWxfZXJyb3IKIGRpZmYgLS1naXQgYS9n ZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCi1pbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEw MDY0NAoraW5kZXggMmNmMWI0ZC4uZDE0NWZkOSAxMDA2NDQKIC0tLSBhL2dkYi9nZGJ0eXBlcy5j CiArKysgYi9nZGIvZ2RidHlwZXMuYwogQEAgLTM5LDYgKzM5LDkgQEAKQEAgLTM1NzAsOSArMzU3 NSwxMiBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogIAogIAogIC8qIEluaXRpYWxp emUgQkFETkVTUyBjb25zdGFudHMuICAqLwotQEAgLTE0NSw2ICsxNDgsMTEgQEAgc3RhdGljIHZv aWQgcHJpbnRfYXJnX3R5cGVzIChzdHJ1Y3QgZmllbGQgKiwgaW50LCBpbnQpOworQEAgLTE0NCw3 ICsxNDcsMTQgQEAgc3RhdGljIHZvaWQgcHJpbnRfYml0X3ZlY3RvciAoQl9UWVBFICosIGludCk7 Cisgc3RhdGljIHZvaWQgcHJpbnRfYXJnX3R5cGVzIChzdHJ1Y3QgZmllbGQgKiwgaW50LCBpbnQp OwogIHN0YXRpYyB2b2lkIGR1bXBfZm5fZmllbGRsaXN0cyAoc3RydWN0IHR5cGUgKiwgaW50KTsK ICBzdGF0aWMgdm9pZCBwcmludF9jcGx1c19zdHVmZiAoc3RydWN0IHR5cGUgKiwgaW50KTsKKytz dGF0aWMgTE9OR0VTVCB0eXBlX2xlbmd0aF9nZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg dHlwZSAqdGFyZ2V0X3R5cGUsCisrCQkJCWludCBmdWxsX3NwYW4pOwogIAogKy8qIFRoZSBoYXNo IHRhYmxlIGhvbGRpbmcgYWxsIGRpc2NhcmRhYmxlIGBzdHJ1Y3QgdHlwZSAqJyByZWZlcmVuY2Vz LiAgKi8KICtzdGF0aWMgaHRhYl90IHR5cGVfZGlzY2FyZGFibGVfdGFibGU7CkBAIC0zNTgyLDcg KzM1OTAsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogIAogIC8qIEFsbG9jYXRl IGEgbmV3IE9CSkZJTEUtYXNzb2NpYXRlZCB0eXBlIHN0cnVjdHVyZSBhbmQgZmlsbCBpdAogICAg IHdpdGggc29tZSBkZWZhdWx0cy4gIFNwYWNlIGZvciB0aGUgdHlwZSBzdHJ1Y3R1cmUgaXMgYWxs b2NhdGVkCi1AQCAtMTc1LDYgKzE4MywzOSBAQCBhbGxvY190eXBlIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSkKK0BAIC0xNzUsNiArMTg1LDM5IEBAIGFsbG9jX3R5cGUgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlKQogICAgcmV0dXJuIHR5cGU7CiAgfQogIApAQCAtMzYyMiw3ICszNjMwLDcgQEAg aW5kZXggMDBhNzA3NS4uZWFhZGFjMCAxMDA2NDQKICAvKiBBbGxvY2F0ZSBhIG5ldyBHREJBUkNI LWFzc29jaWF0ZWQgdHlwZSBzdHJ1Y3R1cmUgYW5kIGZpbGwgaXQKICAgICB3aXRoIHNvbWUgZGVm YXVsdHMuICBTcGFjZSBmb3IgdGhlIHR5cGUgc3RydWN0dXJlIGlzIGFsbG9jYXRlZAogICAgIG9u IHRoZSBoZWFwLiAgKi8KLUBAIC0zMDAsNyArMzQxLDcgQEAgbWFrZV9wb2ludGVyX3R5cGUgKHN0 cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqKnR5cGVwdHIpCitAQCAtMzAwLDcgKzM0Myw3 IEBAIG1ha2VfcG9pbnRlcl90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHR5cGUgKip0 eXBlcHRyKQogIAogICAgaWYgKHR5cGVwdHIgPT0gMCB8fCAqdHlwZXB0ciA9PSAwKQkvKiBXZSds bCBuZWVkIHRvIGFsbG9jYXRlIG9uZS4gICovCiAgICAgIHsKQEAgLTM2MzEsNyArMzYzOSw3IEBA IGluZGV4IDAwYTcwNzUuLmVhYWRhYzAgMTAwNjQ0CiAgICAgICAgaWYgKHR5cGVwdHIpCiAgCSp0 eXBlcHRyID0gbnR5cGU7CiAgICAgIH0KLUBAIC0zNzcsNyArNDE4LDcgQEAgbWFrZV9yZWZlcmVu Y2VfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB0eXBlICoqdHlwZXB0cikKK0BAIC0z NzcsNyArNDIwLDcgQEAgbWFrZV9yZWZlcmVuY2VfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCB0eXBlICoqdHlwZXB0cikKICAKICAgIGlmICh0eXBlcHRyID09IDAgfHwgKnR5cGVwdHIg PT0gMCkJLyogV2UnbGwgbmVlZCB0byBhbGxvY2F0ZSBvbmUuICAqLwogICAgICB7CkBAIC0zNjQw LDcgKzM2NDgsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogICAgICAgIGlmICh0 eXBlcHRyKQogIAkqdHlwZXB0ciA9IG50eXBlOwogICAgICB9Ci1AQCAtNzQ4LDYgKzc4OSw3IEBA IGNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGUsIHN0cnVjdCB0eXBl ICppbmRleF90eXBlLAorQEAgLTc0OCw2ICs3OTEsNyBAQCBjcmVhdGVfcmFuZ2VfdHlwZSAoc3Ry dWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKICAgICAgVFlQ RV9aQUxMT0MgKHJlc3VsdF90eXBlLCBzaXplb2YgKHN0cnVjdCByYW5nZV9ib3VuZHMpKTsKICAg IFRZUEVfTE9XX0JPVU5EIChyZXN1bHRfdHlwZSkgPSBsb3dfYm91bmQ7CiAgICBUWVBFX0hJR0hf Qk9VTkQgKHJlc3VsdF90eXBlKSA9IGhpZ2hfYm91bmQ7CkBAIC0zNjQ4LDcgKzM2NTYsNyBAQCBp bmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogIAogICAgaWYgKGxvd19ib3VuZCA+PSAwKQog ICAgICBUWVBFX1VOU0lHTkVEIChyZXN1bHRfdHlwZSkgPSAxOwotQEAgLTg5MSwyNiArOTMzLDQ1 IEBAIGNyZWF0ZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGUsCitAQCAtODkx LDI2ICs5MzUsMzEgQEAgY3JlYXRlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlw ZSwKICAKICAgIFRZUEVfQ09ERSAocmVzdWx0X3R5cGUpID0gVFlQRV9DT0RFX0FSUkFZOwogICAg VFlQRV9UQVJHRVRfVFlQRSAocmVzdWx0X3R5cGUpID0gZWxlbWVudF90eXBlOwpAQCAtMzY2OSwz NCArMzY3NywyMCBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogICAgVFlQRV9JTkRF WF9UWVBFIChyZXN1bHRfdHlwZSkgPSByYW5nZV90eXBlOwogICAgVFlQRV9WUFRSX0ZJRUxETk8g KHJlc3VsdF90eXBlKSA9IC0xOwogIAotLSAgLyogVFlQRV9GTEFHX1RBUkdFVF9TVFVCIHdpbGwg dGFrZSBjYXJlIG9mIHplcm8gbGVuZ3RoIGFycmF5cyAqLworLSAgLyogVFlQRV9GTEFHX1RBUkdF VF9TVFVCIHdpbGwgdGFrZSBjYXJlIG9mIHplcm8gbGVuZ3RoIGFycmF5cy4gICovCiArICAvKiBE V0FSRiBibG9ja3MgbWF5IGRlcGVuZCBvbiBydW50aW1lIGluZm9ybWF0aW9uIGxpa2UKICsgICAg IERXX09QX1BVU0hfT0JKRUNUX0FERFJFU1Mgbm90IGJlaW5nIGF2YWlsYWJsZSBkdXJpbmcgdGhl CiArICAgICBDUkVBVEVfQVJSQVlfVFlQRSB0aW1lLiAgKi8KICsgIGlmIChUWVBFX1JBTkdFX0RB VEEgKHJhbmdlX3R5cGUpLT5sb3cua2luZCAhPSBSQU5HRV9CT1VORF9LSU5EX0NPTlNUQU5UCi0r ICAgICAgfHwgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+aGlnaC5raW5kICE9IFJBTkdF X0JPVU5EX0tJTkRfQ09OU1RBTlQKLSsgICAgICB8fCBUWVBFX0xPV19CT1VORF9VTkRFRklORUQg KHJhbmdlX3R5cGUpIAotKyAgICAgIHx8IFRZUEVfSElHSF9CT1VORF9VTkRFRklORUQgKHJhbmdl X3R5cGUpIAotKyAgICAgIHx8IGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3df Ym91bmQsICZoaWdoX2JvdW5kKSA8IDApCi0rICAgIHsKLSsgICAgICBsb3dfYm91bmQgPSAwOwot KyAgICAgIGhpZ2hfYm91bmQgPSAtMTsKLSsgICAgfQotKwotKyAgLyogQmUgY2FyZWZ1bCB3aGVu IHNldHRpbmcgdGhlIGFycmF5IGxlbmd0aC4gIEFkYSBhcnJheXMgY2FuIGJlCi0rICAgICBlbXB0 eSBhcnJheXMgd2l0aCB0aGUgaGlnaF9ib3VuZCBiZWluZyBzbWFsbGVyIHRoYW4gdGhlIGxvd19i b3VuZC4KLSsgICAgIEluIHN1Y2ggY2FzZXMsIHRoZSBhcnJheSBsZW5ndGggc2hvdWxkIGJlIHpl cm8uICBUWVBFX1RBUkdFVF9TVFVCIG5lZWRzIHRvCi0rICAgICBiZSBjaGVja2VkIGFzIGl0IG1h eSBoYXZlIGRlcGVuZGVuY2llcyBvbiBEV0FSRiBibG9ja3MgZGVwZW5kaW5nIG9uCi0rICAgICBy dW50aW1lIGluZm9ybWF0aW9uIG5vdCBhdmFpbGFibGUgZHVyaW5nIHRoZSBDUkVBVEVfQVJSQVlf VFlQRSB0aW1lLiAgKi8KLSsgIGlmIChoaWdoX2JvdW5kIDwgbG93X2JvdW5kIHx8IFRZUEVfVEFS R0VUX1NUVUIgKGVsZW1lbnRfdHlwZSkpCisrICAgICAgfHwgVFlQRV9SQU5HRV9EQVRBIChyYW5n ZV90eXBlKS0+aGlnaC5raW5kICE9IFJBTkdFX0JPVU5EX0tJTkRfQ09OU1RBTlQKKysgICAgICB8 fCBUWVBFX0RZTkFNSUMgKGVsZW1lbnRfdHlwZSkpCiArICAgIFRZUEVfTEVOR1RIIChyZXN1bHRf dHlwZSkgPSAwOwogKyAgZWxzZQogKyAgICB7CiArICAgICAgQ0hFQ0tfVFlQRURFRiAoZWxlbWVu dF90eXBlKTsKLSsgICAgICBUWVBFX0xFTkdUSCAocmVzdWx0X3R5cGUpID0KLSsJVFlQRV9MRU5H VEggKGVsZW1lbnRfdHlwZSkgKiAoaGlnaF9ib3VuZCAtIGxvd19ib3VuZCArIDEpOworKyAgICAg IFRZUEVfTEVOR1RIIChyZXN1bHRfdHlwZSkgPSB0eXBlX2xlbmd0aF9nZXQgKHJlc3VsdF90eXBl LCBlbGVtZW50X3R5cGUsCisrCQkJCQkJICAgMCk7CiArICAgIH0KLSsKICAgIGlmIChUWVBFX0xF TkdUSCAocmVzdWx0X3R5cGUpID09IDApCiAtICAgIFRZUEVfVEFSR0VUX1NUVUIgKHJlc3VsdF90 eXBlKSA9IDE7CiArICAgIHsKQEAgLTM3MDcsNyArMzcwMSw3IEBAIGluZGV4IDAwYTcwNzUuLmVh YWRhYzAgMTAwNjQ0CiAgCiAgICByZXR1cm4gcmVzdWx0X3R5cGU7CiAgfQotQEAgLTE0MTMsNiAr MTQ3NCwxMDUgQEAgc3R1Yl9ub25hbWVfY29tcGxhaW50ICh2b2lkKQorQEAgLTE0MTMsNiArMTQ2 MiwxMDUgQEAgc3R1Yl9ub25hbWVfY29tcGxhaW50ICh2b2lkKQogICAgY29tcGxhaW50ICgmc3lt ZmlsZV9jb21wbGFpbnRzLCBfKCJzdHViIHR5cGUgaGFzIE5VTEwgbmFtZSIpKTsKICB9CiAgCkBA IC0zODEzLDcgKzM4MDcsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogIC8qIEZp bmQgdGhlIHJlYWwgdHlwZSBvZiBUWVBFLiAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSByZWFs IHR5cGUsCiAgICAgYWZ0ZXIgcmVtb3ZpbmcgYWxsIGxheWVycyBvZiB0eXBlZGVmcywgYW5kIGNv bXBsZXRpbmcgb3BhcXVlIG9yIHN0dWIKICAgICB0eXBlcy4gIENvbXBsZXRpb24gY2hhbmdlcyB0 aGUgVFlQRSBhcmd1bWVudCwgYnV0IHN0cmlwcGluZyBvZgotQEAgLTE1NzUsNTIgKzE3MzUsMzYg QEAgY2hlY2tfdHlwZWRlZiAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtMTU3NSw1MiArMTcyMywz NSBAQCBjaGVja190eXBlZGVmIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICAgICAgIH0KICAgICAg fQogIApAQCAtMzgyMyw3ICszODE3LDYgQEAgaW5kZXggMDBhNzA3NS4uZWFhZGFjMCAxMDA2NDQK ICsgIGlmIChUWVBFX0RZTkFNSUMgKHR5cGUpKQogKyAgICB7CiArICAgICAgaHRhYl90IGNvcGll ZF90eXBlczsKLSsgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZV9vbGQgPSB0eXBlOwogKwogKyAgICAg IGNvcGllZF90eXBlcyA9IGNyZWF0ZV9jb3BpZWRfdHlwZXNfaGFzaCAoTlVMTCk7CiArICAgICAg dHlwZSA9IGNvcHlfdHlwZV9yZWN1cnNpdmUgKHR5cGUsIGNvcGllZF90eXBlcyk7CkBAIC0zODUy LDcgKzM4NDUsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogIAkgIC8qIE5vdyBy ZWNvbXB1dGUgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgdHlwZSwgYmFzZWQgb24gaXRzCiAtCSAg ICAgbnVtYmVyIG9mIGVsZW1lbnRzIGFuZCB0aGUgdGFyZ2V0IHR5cGUncyBsZW5ndGguCiAtCSAg ICAgV2F0Y2ggb3V0IGZvciBBZGEgbnVsbCBBZGEgYXJyYXlzIHdoZXJlIHRoZSBoaWdoIGJvdW5k Ci0tCSAgICAgaXMgc21hbGxlciB0aGFuIHRoZSBsb3cgYm91bmQuICovCistCSAgICAgaXMgc21h bGxlciB0aGFuIHRoZSBsb3cgYm91bmQuICAqLwogLQkgIGNvbnN0IExPTkdFU1QgbG93X2JvdW5k ID0gVFlQRV9MT1dfQk9VTkQgKHJhbmdlX3R5cGUpOwogLQkgIGNvbnN0IExPTkdFU1QgaGlnaF9i b3VuZCA9IFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSk7CiAtCSAgVUxPTkdFU1QgbGVuOwpA QCAtMzg2NiwxMiArMzg1OSwxMiBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogLQkJ IHRoYXQgZm9yIHggPCAwLCAoVUxPTkdFU1QpIHggPT0gLXggKyBVTE9OR0VTVF9NQVggKyAxLAog LQkJIHdoaWNoIGlzIHRlY2huaWNhbGx5IG5vdCBndWFyYW50ZWVkIGJ5IEMsIGJ1dCBpcyB1c3Vh bGx5IHRydWUKIC0JCSAoYmVjYXVzZSBpdCB3b3VsZCBiZSB0cnVlIGlmIHggd2VyZSB1bnNpZ25l ZCB3aXRoIGl0cwotLQkJIGhpZ2gtb3JkZXIgYml0IG9uKS4gSXQgdXNlcyB0aGUgZmFjdCB0aGF0 CistCQkgaGlnaC1vcmRlciBiaXQgb24pLiAgSXQgdXNlcyB0aGUgZmFjdCB0aGF0CiAtCQkgaGln aF9ib3VuZC1sb3dfYm91bmQgaXMgYWx3YXlzIHJlcHJlc2VudGFibGUgaW4KIC0JCSBVTE9OR0VT VCBhbmQgdGhhdCBpZiBoaWdoX2JvdW5kLWxvd19ib3VuZCsxIG92ZXJmbG93cywKIC0JCSBpdCBv dmVyZmxvd3MgdG8gMC4gIFdlIG11c3QgY2hhbmdlIHRoZXNlIHRlc3RzIGlmIHdlIAogLQkJIGRl Y2lkZSB0byBpbmNyZWFzZSB0aGUgcmVwcmVzZW50YXRpb24gb2YgVFlQRV9MRU5HVEgKLS0JCSBm cm9tIHVuc2lnbmVkIGludCB0byBVTE9OR0VTVC4gKi8KKy0JCSBmcm9tIHVuc2lnbmVkIGludCB0 byBVTE9OR0VTVC4gICovCiAtCSAgICAgIFVMT05HRVNUIHVsb3cgPSBsb3dfYm91bmQsIHVoaWdo ID0gaGlnaF9ib3VuZDsKIC0JICAgICAgVUxPTkdFU1QgdGxlbiA9IFRZUEVfTEVOR1RIICh0YXJn ZXRfdHlwZSk7CiAtCkBAIC0zODg2LDcgKzM4NzksNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMw IDEwMDY0NAogIAkgIFRZUEVfVEFSR0VUX1NUVUIgKHR5cGUpID0gMDsKICAJfQogICAgICAgIGVs c2UgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1JBTkdFKQotQEAgLTE2MjgsNiAr MTc3Miw3IEBAIGNoZWNrX3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTE2MjgsNiAr MTc1OSw3IEBAIGNoZWNrX3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlKQogIAkgIFRZUEVfTEVO R1RIICh0eXBlKSA9IFRZUEVfTEVOR1RIICh0YXJnZXRfdHlwZSk7CiAgCSAgVFlQRV9UQVJHRVRf U1RVQiAodHlwZSkgPSAwOwogIAl9CkBAIC0zODk0LDcgKzM4ODcsNyBAQCBpbmRleCAwMGE3MDc1 Li5lYWFkYWMwIDEwMDY0NAogICAgICB9CiAgCiAgICB0eXBlID0gbWFrZV9xdWFsaWZpZWRfdHlw ZSAodHlwZSwgaW5zdGFuY2VfZmxhZ3MsIE5VTEwpOwotQEAgLTE5MDIsNiArMjA0Nyw4IEBAIGlu aXRfdHlwZSAoZW51bSB0eXBlX2NvZGUgY29kZSwgaW50IGxlbmd0aCwgaW50IGZsYWdzLAorQEAg LTE5MDIsNiArMjAzNCw4IEBAIGluaXRfdHlwZSAoZW51bSB0eXBlX2NvZGUgY29kZSwgaW50IGxl bmd0aCwgaW50IGZsYWdzLAogICAgICBUWVBFX1NUVUJfU1VQUE9SVEVEICh0eXBlKSA9IDE7CiAg ICBpZiAoZmxhZ3MgJiBUWVBFX0ZMQUdfRklYRURfSU5TVEFOQ0UpCiAgICAgIFRZUEVfRklYRURf SU5TVEFOQ0UgKHR5cGUpID0gMTsKQEAgLTM5MDMsNyArMzg5Niw3IEBAIGluZGV4IDAwYTcwNzUu LmVhYWRhYzAgMTAwNjQ0CiAgCiAgICBpZiAobmFtZSkKICAgICAgVFlQRV9OQU1FICh0eXBlKSA9 IG9ic2F2ZXN0cmluZyAobmFtZSwgc3RybGVuIChuYW1lKSwKLUBAIC0zMTk5LDMzICszMzQ2LDQy IEBAIHR5cGVfcGFpcl9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZvaWQgKml0ZW1f cmhzKQorQEAgLTMyNTksMzMgKzMzOTMsNDIgQEAgdHlwZV9wYWlyX2VxIChjb25zdCB2b2lkICpp dGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCiAgfQogIAogIC8qIEFsbG9jYXRlIHRoZSBo YXNoIHRhYmxlIHVzZWQgYnkgY29weV90eXBlX3JlY3Vyc2l2ZSB0byB3YWxrCkBAIC0zOTYxLDcg KzM5NTQsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogICAgICByZXR1cm4gdHlw ZTsKICAKICAgIC8qIFRoaXMgdHlwZSBzaG91bGRuJ3QgYmUgcG9pbnRpbmcgdG8gYW55IHR5cGVz IGluIG90aGVyIG9iamZpbGVzOwotQEAgLTMyNDAsOSArMzM5NiwxMCBAQCBjb3B5X3R5cGVfcmVj dXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0zMzAwLDkgKzM0NDMsMTAgQEAg Y29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICBuZXdfdHlw ZSA9IGFsbG9jX3R5cGVfYXJjaCAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwogIAogICAgLyogV2Ug bXVzdCBhZGQgdGhlIG5ldyB0eXBlIHRvIHRoZSBoYXNoIHRhYmxlIGltbWVkaWF0ZWx5LCBpbiBj YXNlCkBAIC0zOTc1LDcgKzM5NjgsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAog ICAgc3RvcmVkLT5vbGQgPSB0eXBlOwogICAgc3RvcmVkLT5uZXcgPSBuZXdfdHlwZTsKICAgICpz bG90ID0gc3RvcmVkOwotQEAgLTMyNTMsNiArMzQxMCwxOSBAQCBjb3B5X3R5cGVfcmVjdXJzaXZl IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0zMzEzLDYgKzM0NTcsMTkgQEAgY29weV90 eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICBUWVBFX09CSkZJTEVf T1dORUQgKG5ld190eXBlKSA9IDA7CiAgICBUWVBFX09XTkVSIChuZXdfdHlwZSkuZ2RiYXJjaCA9 IGdldF90eXBlX2FyY2ggKHR5cGUpOwogIApAQCAtMzk5NSw3ICszOTg4LDcgQEAgaW5kZXggMDBh NzA3NS4uZWFhZGFjMCAxMDA2NDQKICAgIGlmIChUWVBFX05BTUUgKHR5cGUpKQogICAgICBUWVBF X05BTUUgKG5ld190eXBlKSA9IHhzdHJkdXAgKFRZUEVfTkFNRSAodHlwZSkpOwogICAgaWYgKFRZ UEVfVEFHX05BTUUgKHR5cGUpKQotQEAgLTMyNjEsMTIgKzM0MzEsNDggQEAgY29weV90eXBlX3Jl Y3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzMyMSwxMiArMzQ3OCw0OCBA QCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIFRZUEVf SU5TVEFOQ0VfRkxBR1MgKG5ld190eXBlKSA9IFRZUEVfSU5TVEFOQ0VfRkxBR1MgKHR5cGUpOwog ICAgVFlQRV9MRU5HVEggKG5ld190eXBlKSA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICAKQEAgLTQw NDQsNyArNDAzNyw3IEBAIGluZGV4IDAwYTcwNzUuLmVhYWRhYzAgMTAwNjQ0CiAgICAgICAgVFlQ RV9GSUVMRFMgKG5ld190eXBlKSA9IFhDQUxMT0MgKG5maWVsZHMsIHN0cnVjdCBmaWVsZCk7CiAg ICAgICAgZm9yIChpID0gMDsgaSA8IG5maWVsZHM7IGkrKykKICAJewotQEAgLTMyNzUsOCArMzQ4 MSw4IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAg LTMzMzUsOCArMzUyOCw4IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLAogIAkgIFRZUEVfRklFTERfQklUU0laRSAobmV3X3R5cGUsIGkpID0gVFlQRV9GSUVM RF9CSVRTSVpFICh0eXBlLCBpKTsKICAJICBpZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKSkK ICAJICAgIFRZUEVfRklFTERfVFlQRSAobmV3X3R5cGUsIGkpCkBAIC00MDU1LDcgKzQwNDgsNyBA QCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogIAkgIGlmIChUWVBFX0ZJRUxEX05BTUUg KHR5cGUsIGkpKQogIAkgICAgVFlQRV9GSUVMRF9OQU1FIChuZXdfdHlwZSwgaSkgPSAKICAJICAg ICAgeHN0cmR1cCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpKSk7Ci1AQCAtMzMwMywyNCArMzUw OSwxNjYgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitA QCAtMzM2MywyNCArMzU1NiwxODQgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUsCiAgCX0KICAgICAgfQogIApAQCAtNDA2Myw3ICs0MDU2LDcgQEAgaW5kZXgg MDBhNzA3NS4uZWFhZGFjMCAxMDA2NDQKICsgICAgIHBvc3NpYmx5IGNvbnZlcnRlZC4gICovCiAr ICBUWVBFX0RZTkFNSUMgKG5ld190eXBlKSA9IDA7CiArCi0gICAvKiBGb3IgcmFuZ2UgdHlwZXMs IGNvcHkgdGhlIGJvdW5kcyBpbmZvcm1hdGlvbi4gKi8KKyAgIC8qIEZvciByYW5nZSB0eXBlcywg Y29weSB0aGUgYm91bmRzIGluZm9ybWF0aW9uLiAgKi8KIC0gIGlmIChUWVBFX0NPREUgKHR5cGUp ID09IFRZUEVfQ09ERV9SQU5HRSkKICsgIGlmIChUWVBFX0NPREUgKG5ld190eXBlKSA9PSBUWVBF X0NPREVfUkFOR0UpCiAgICAgIHsKQEAgLTQwODcsOCArNDA4MCwxMiBAQCBpbmRleCAwMGE3MDc1 Li5lYWFkYWMwIDEwMDY0NAogKwkgICAgICBUWVBFX0xPV19CT1VORF9VTkRFRklORUQgKG5ld190 eXBlKSA9IDE7CiArCSAgICB9CiArCSAgZWxzZQotKwkgICAgVFlQRV9MT1dfQk9VTkQgKG5ld190 eXBlKSA9IGR3YXJmX2xvY2V4cHJfYmF0b25fZXZhbAorKwkgICAgeworKwkgICAgICBUWVBFX0xP V19CT1VORCAobmV3X3R5cGUpID0gZHdhcmZfbG9jZXhwcl9iYXRvbl9ldmFsCiArCQkJCShUWVBF X1JBTkdFX0RBVEEgKG5ld190eXBlKS0+bG93LnUuZHdhcmZfYmxvY2spOworKwkgICAgICBpZiAo VFlQRV9MT1dfQk9VTkQgKG5ld190eXBlKSA+PSAwKQorKwkJVFlQRV9VTlNJR05FRCAobmV3X3R5 cGUpID0gMTsKKysJICAgIH0KICsJICBUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+bG93Lmtp bmQgPSBSQU5HRV9CT1VORF9LSU5EX0NPTlNUQU5UOwogKwkgIGJyZWFrOwogKwljYXNlIFJBTkdF X0JPVU5EX0tJTkRfRFdBUkZfTE9DTElTVDoKQEAgLTQxMDQsNyArNDEwMSwxMSBAQCBpbmRleCAw MGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogKwkgICAgICAgICYmIGR3YXJmX2xvY2xpc3RfYmF0b25f ZXZhbAogKwkJICAoVFlQRV9SQU5HRV9EQVRBIChuZXdfdHlwZSktPmxvdy51LmR3YXJmX2xvY2xp c3QubG9jbGlzdCwKICsJCSAgIFRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUpLT5sb3cudS5kd2Fy Zl9sb2NsaXN0LnR5cGUsICZhZGRyKSkKLSsJICAgICAgVFlQRV9MT1dfQk9VTkQgKG5ld190eXBl KSA9IGFkZHI7CisrCSAgICAgIHsKKysJCVRZUEVfTE9XX0JPVU5EIChuZXdfdHlwZSkgPSBhZGRy OworKwkJaWYgKFRZUEVfTE9XX0JPVU5EIChuZXdfdHlwZSkgPj0gMCkKKysJCSAgVFlQRV9VTlNJ R05FRCAobmV3X3R5cGUpID0gMTsKKysJICAgICAgfQogKwkgICAgZWxzZQogKwkgICAgICB7CiAr CQkvKiBXZSBzaG91bGQgc2V0IDEgZm9yIEZvcnRyYW4gYnV0IGhvdyB0byBmaW5kIHRoZSBsYW5n dWFnZT8gICovCkBAIC00MjI2LDEwICs0MjI3LDIwIEBAIGluZGV4IDAwYTcwNzUuLmVhYWRhYzAg MTAwNjQ0CiArICAgICAgY29weV90eXBlX3JlY3Vyc2l2ZV8xIChvYmpmaWxlLAogKwkJCSAgICAg VFlQRV9WUFRSX0JBU0VUWVBFICh0eXBlKSwKICsJCQkgICAgIGNvcGllZF90eXBlcyk7CisrCisr ICBpZiAoVFlQRV9DT0RFIChuZXdfdHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZKQorKyAgICB7Cisr ICAgICAgc3RydWN0IHR5cGUgKm5ld19pbmRleF90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChuZXdf dHlwZSk7CisrCisrICAgICAgaWYgKFRZUEVfQllURV9TVFJJREUgKG5ld19pbmRleF90eXBlKSA9 PSAwKQorKwlUWVBFX0JZVEVfU1RSSURFIChuZXdfaW5kZXhfdHlwZSkKKysJICA9IFRZUEVfTEVO R1RIIChUWVBFX1RBUkdFVF9UWVBFIChuZXdfdHlwZSkpOworKyAgICB9CisrCiAgICAvKiBNYXli ZSBjb3B5IHRoZSB0eXBlX3NwZWNpZmljIGJpdHMuCiAgCiAgICAgICBOT1RFIGRyb3cvMjAwNS0x Mi0wOTogV2UgZG8gbm90IGNvcHkgdGhlIEMrKy1zcGVjaWZpYyBiaXRzIGxpa2UKLUBAIC0zMzM3 LDYgKzM2ODUsMTcgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUsCitAQCAtMzM5Nyw2ICszNzUwLDE3IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlLAogICAgcmV0dXJuIG5ld190eXBlOwogIH0KICAKQEAgLTQyNDcsNyAr NDI1OCw3IEBAIGluZGV4IDAwYTcwNzUuLmVhYWRhYzAgMTAwNjQ0CiAgLyogTWFrZSBhIGNvcHkg b2YgdGhlIGdpdmVuIFRZUEUsIGV4Y2VwdCB0aGF0IHRoZSBwb2ludGVyICYgcmVmZXJlbmNlCiAg ICAgdHlwZXMgYXJlIG5vdCBwcmVzZXJ2ZWQuCiAgICAgCi1AQCAtMzM1OSw2ICszNzE4LDE5OSBA QCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTM0MTksNiArMzc4Mywx OTkgQEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgIHJldHVybiBuZXdf dHlwZTsKICB9CiAgCkBAIC00NDQ3LDcgKzQ0NTgsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMw IDEwMDY0NAogIAogIC8qIEhlbHBlciBmdW5jdGlvbnMgdG8gaW5pdGlhbGl6ZSBhcmNoaXRlY3R1 cmUtc3BlY2lmaWMgdHlwZXMuICAqLwogIAotQEAgLTM3MDcsNiArNDI1OSw4IEBAIGdkYnR5cGVz X3Bvc3RfaW5pdCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCitAQCAtMzc2Nyw2ICs0MzI0LDgg QEAgZ2RidHlwZXNfcG9zdF9pbml0IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKICAgICAgPSBs b29rdXBfcG9pbnRlcl90eXBlIChidWlsdGluX3R5cGUtPmJ1aWx0aW5fdm9pZCk7CiAgICBidWls dGluX3R5cGUtPmJ1aWx0aW5fZnVuY19wdHIKICAgICAgPSBsb29rdXBfcG9pbnRlcl90eXBlIChs b29rdXBfZnVuY3Rpb25fdHlwZSAoYnVpbHRpbl90eXBlLT5idWlsdGluX3ZvaWQpKTsKQEAgLTQ0 NTYsNyArNDQ2Nyw3IEBAIGluZGV4IDAwYTcwNzUuLmVhYWRhYzAgMTAwNjQ0CiAgCiAgICAvKiBU aGlzIHR5cGUgcmVwcmVzZW50cyBhIEdEQiBpbnRlcm5hbCBmdW5jdGlvbi4gICovCiAgICBidWls dGluX3R5cGUtPmludGVybmFsX2ZuCi1AQCAtMzgyMCw2ICs0Mzc0LDE4IEBAIG9iamZpbGVfdHlw ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAtMzg4MCw2ICs0NDM5LDE4IEBAIG9iamZp bGVfdHlwZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgCQkgIjx0ZXh0IHZhcmlhYmxlLCBu byBkZWJ1ZyBpbmZvPiIsIG9iamZpbGUpOwogICAgVFlQRV9UQVJHRVRfVFlQRSAob2JqZmlsZV90 eXBlLT5ub2RlYnVnX3RleHRfc3ltYm9sKQogICAgICA9IG9iamZpbGVfdHlwZS0+YnVpbHRpbl9p bnQ7CkBAIC00NDc1LDcgKzQ0ODYsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAog ICAgb2JqZmlsZV90eXBlLT5ub2RlYnVnX2RhdGFfc3ltYm9sCiAgICAgID0gaW5pdF90eXBlIChU WVBFX0NPREVfSU5ULAogIAkJIGdkYmFyY2hfaW50X2JpdCAoZ2RiYXJjaCkgLyBIT1NUX0NIQVJf QklULCAwLAotQEAgLTM4NzQsNiArNDQ0MCwxMSBAQCB2b2lkCitAQCAtMzkzNCw2ICs0NTA1LDEx IEBAIHZvaWQKICBfaW5pdGlhbGl6ZV9nZGJ0eXBlcyAodm9pZCkKICB7CiAgICBnZGJ0eXBlc19k YXRhID0gZ2RiYXJjaF9kYXRhX3JlZ2lzdGVyX3Bvc3RfaW5pdCAoZ2RidHlwZXNfcG9zdF9pbml0 KTsKQEAgLTQ0ODgsNyArNDQ5OSw3IEBAIGluZGV4IDAwYTcwNzUuLmVhYWRhYzAgMTAwNjQ0CiAg CiAgICBhZGRfc2V0c2hvd196aW50ZWdlcl9jbWQgKCJvdmVybG9hZCIsIG5vX2NsYXNzLCAmb3Zl cmxvYWRfZGVidWcsCiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9nZGIvZ2RidHlwZXMu aAotaW5kZXggMDM1M2Y5Ni4uYTAzNWJhZCAxMDA2NDQKK2luZGV4IGRlYmI0MWMuLmMzMWM5Yjgg MTAwNjQ0CiAtLS0gYS9nZGIvZ2RidHlwZXMuaAogKysrIGIvZ2RiL2dkYnR5cGVzLmgKIEBAIC0x NzAsNiArMTcwLDcgQEAgZW51bSB0eXBlX2ZsYWdfdmFsdWUKQEAgLTQ1MDksOCArNDUyMCw4IEBA IGluZGV4IDAzNTNmOTYuLmEwMzViYWQgMTAwNjQ0CiArI2RlZmluZSBUWVBFX0RZTkFNSUModCkJ CShUWVBFX01BSU5fVFlQRSAodCktPmZsYWdfZHluYW1pYykKICsKICAvKiBTdGF0aWMgdHlwZS4g IElmIHRoaXMgaXMgc2V0LCB0aGUgY29ycmVzcG9uZGluZyB0eXBlIGhhZCAKLSAgKiBhIHN0YXRp YyBtb2RpZmllci4KLSAgKiBOb3RlOiBUaGlzIG1heSBiZSB1bm5lY2Vzc2FyeSwgc2luY2Ugc3Rh dGljIGRhdGEgbWVtYmVycworICAgIGEgc3RhdGljIG1vZGlmaWVyLgorICAgIE5vdGU6IFRoaXMg bWF5IGJlIHVubmVjZXNzYXJ5LCBzaW5jZSBzdGF0aWMgZGF0YSBtZW1iZXJzCiBAQCAtMjcxLDYg KzI3NywxMiBAQCBlbnVtIHR5cGVfaW5zdGFuY2VfZmxhZ192YWx1ZQogIAogICNkZWZpbmUgVFlQ RV9OT1RURVhUKHQpCShUWVBFX0lOU1RBTkNFX0ZMQUdTICh0KSAmIFRZUEVfSU5TVEFOQ0VfRkxB R19OT1RURVhUKQpAQCAtNDU3MSw5ICs0NTgyLDkgQEAgaW5kZXggMDM1M2Y5Ni4uYTAzNWJhZCAx MDA2NDQKICsgIChUWVBFX01BSU5fVFlQRSAodCktPmZsYWdfZGF0YV9sb2NhdGlvbl9pc19hZGRy KQogKwogIC8qIENvbnN0YW50IHR5cGUuICBJZiB0aGlzIGlzIHNldCwgdGhlIGNvcnJlc3BvbmRp bmcgdHlwZSBoYXMgYQotICAqIGNvbnN0IG1vZGlmaWVyLgotICAqLwotQEAgLTM4OSwxMSArNDQz LDE5IEBAIHN0cnVjdCBtYWluX3R5cGUKKyAgICBjb25zdCBtb2RpZmllci4gICovCisgCitAQCAt Mzg3LDExICs0NDEsMTkgQEAgc3RydWN0IG1haW5fdHlwZQogICAgdW5zaWduZWQgaW50IGZsYWdf dmFyYXJncyA6IDE7CiAgICB1bnNpZ25lZCBpbnQgZmxhZ192ZWN0b3IgOiAxOwogICAgdW5zaWdu ZWQgaW50IGZsYWdfc3R1Yl9zdXBwb3J0ZWQgOiAxOwpAQCAtNDU5Myw3ICs0NjA0LDcgQEAgaW5k ZXggMDM1M2Y5Ni4uYTAzNWJhZCAxMDA2NDQKICAKICAgIC8qIEEgZGlzY3JpbWluYW50IHRlbGxp bmcgdXMgd2hpY2ggZmllbGQgb2YgdGhlIHR5cGVfc3BlY2lmaWMgdW5pb24KICAgICAgIGlzIGJl aW5nIHVzZWQgZm9yIHRoaXMgdHlwZSwgaWYgYW55LiAgKi8KLUBAIC00NjcsNiArNTI5LDIwIEBA IHN0cnVjdCBtYWluX3R5cGUKK0BAIC00NjUsNiArNTI3LDIwIEBAIHN0cnVjdCBtYWluX3R5cGUK ICAKICAgIHN0cnVjdCB0eXBlICp0YXJnZXRfdHlwZTsKICAKQEAgLTQ2MTQsNyArNDYyNSw3IEBA IGluZGV4IDAzNTNmOTYuLmEwMzViYWQgMTAwNjQ0CiAgICAvKiBGb3Igc3RydWN0dXJlIGFuZCB1 bmlvbiB0eXBlcywgYSBkZXNjcmlwdGlvbiBvZiBlYWNoIGZpZWxkLgogICAgICAgRm9yIHNldCBh bmQgcGFzY2FsIGFycmF5IHR5cGVzLCB0aGVyZSBpcyBvbmUgImZpZWxkIiwKICAgICAgIHdob3Nl IHR5cGUgaXMgdGhlIGRvbWFpbiB0eXBlIG9mIHRoZSBzZXQgb3IgYXJyYXkuCi1AQCAtNTQxLDEz ICs2MTcsMzQgQEAgc3RydWN0IG1haW5fdHlwZQorQEAgLTUzOSwxMyArNjE1LDM0IEBAIHN0cnVj dCBtYWluX3R5cGUKICAKICAgICAgc3RydWN0IHJhbmdlX2JvdW5kcwogICAgICB7CkBAIC00NjQw LDIxICs0NjUxLDIxIEBAIGluZGV4IDAzNTNmOTYuLmEwMzViYWQgMTAwNjQ0CiArCSAgICB9CiAr CSAga2luZDsKICsJfQotICAgICAgIC8qIExvdyBib3VuZCBvZiByYW5nZS4gKi8KKyAgICAgICAv KiBMb3cgYm91bmQgb2YgcmFuZ2UuICAqLwogLQogLSAgICAgIExPTkdFU1QgbG93OwogLQogKyAg ICAgIGxvdywKLSAgICAgICAvKiBIaWdoIGJvdW5kIG9mIHJhbmdlLiAqLworICAgICAgIC8qIEhp Z2ggYm91bmQgb2YgcmFuZ2UuICAqLwogLQogLSAgICAgIExPTkdFU1QgaGlnaDsKICsgICAgICBo aWdoLAotKyAgICAgIC8qIEJ5dGUgc3RyaWRlIG9mIHJhbmdlLiAqLworKyAgICAgIC8qIEJ5dGUg c3RyaWRlIG9mIHJhbmdlLiAgKi8KICsgICAgICBieXRlX3N0cmlkZTsKICAKICAgICAgICAvKiBG bGFncyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHZhbHVlcyBvZiBsb3cgYW5kIGhpZ2ggYXJlCiAg ICAgICAgICAgdmFsaWQuICBXaGVuIHRydWUsIHRoZSByZXNwZWN0aXZlIHJhbmdlIHZhbHVlIGlz Ci1AQCAtOTIxLDkgKzEwMTgsOSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBl IChzdHJ1Y3QgdHlwZSAqKTsKK0BAIC05MTgsOSArMTAxNSw5IEBAIGV4dGVybiB2b2lkIGFsbG9j YXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICopOwogICNkZWZpbmUgVFlQRV9QT0lOVEVS X1RZUEUodGhpc3R5cGUpICh0aGlzdHlwZSktPnBvaW50ZXJfdHlwZQogICNkZWZpbmUgVFlQRV9S RUZFUkVOQ0VfVFlQRSh0aGlzdHlwZSkgKHRoaXN0eXBlKS0+cmVmZXJlbmNlX3R5cGUKICAjZGVm aW5lIFRZUEVfQ0hBSU4odGhpc3R5cGUpICh0aGlzdHlwZSktPmNoYWluCkBAIC00NjY3LDcgKzQ2 NzgsNyBAQCBpbmRleCAwMzUzZjk2Li5hMDM1YmFkIDEwMDY0NAogICAgIGNhbGxzIGNoZWNrX3R5 cGVkZWYsIFRZUEVfTEVOR1RIIChWQUxVRV9UWVBFIChYKSkgaXMgc2FmZS4gICovCiAgI2RlZmlu ZSBUWVBFX0xFTkdUSCh0aGlzdHlwZSkgKHRoaXN0eXBlKS0+bGVuZ3RoCiAgLyogTm90ZSB0aGF0 IFRZUEVfQ09ERSBjYW4gYmUgVFlQRV9DT0RFX1RZUEVERUYsIHNvIGlmIHlvdSB3YW50IHRoZSBy ZWFsCi1AQCAtOTMxLDExICsxMDI4LDE2IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4 X3R5cGUgKHN0cnVjdCB0eXBlICopOworQEAgLTkyOCwxMSArMTAyNSwxNiBAQCBleHRlcm4gdm9p ZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAjZGVmaW5lIFRZUEVf Q09ERSh0aGlzdHlwZSkgVFlQRV9NQUlOX1RZUEUodGhpc3R5cGUpLT5jb2RlCiAgI2RlZmluZSBU WVBFX05GSUVMRFModGhpc3R5cGUpIFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBlKS0+bmZpZWxkcwog ICNkZWZpbmUgVFlQRV9GSUVMRFModGhpc3R5cGUpIFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBlKS0+ Zmxkc19ibmRzLmZpZWxkcwpAQCAtNDY4Niw3ICs0Njk3LDcgQEAgaW5kZXggMDM1M2Y5Ni4uYTAz NWJhZCAxMDA2NDQKICAjZGVmaW5lIFRZUEVfTE9XX0JPVU5EX1VOREVGSU5FRChyYW5nZV90eXBl KSBcCiAgICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5sb3dfdW5kZWZpbmVkCiAgI2Rl ZmluZSBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEKHJhbmdlX3R5cGUpIFwKLUBAIC05NTIsNyAr MTA1NCwxNCBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlw ZSAqKTsKK0BAIC05NDksNyArMTA1MSwxNCBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1 eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAgICAoVFlQRV9ISUdIX0JPVU5EKFRZUEVfSU5ERVhf VFlQRSgoYXJyYXl0eXBlKSkpKQogIAogICNkZWZpbmUgVFlQRV9BUlJBWV9MT1dFUl9CT1VORF9W QUxVRShhcnJheXR5cGUpIFwKQEAgLTQ3MDIsNyArNDcxMyw3IEBAIGluZGV4IDAzNTNmOTYuLmEw MzViYWQgMTAwNjQ0CiAgCiAgLyogQysrICovCiAgCi1AQCAtMTE4MSw2ICsxMjkwLDEwIEBAIHN0 cnVjdCBidWlsdGluX3R5cGUKK0BAIC0xMTc4LDYgKzEyODcsMTAgQEAgc3RydWN0IGJ1aWx0aW5f dHlwZQogICAgICAgKCopICgpIGNhbiBzZXJ2ZXIgYXMgYSBnZW5lcmljIGZ1bmN0aW9uIHBvaW50 ZXIuICAqLwogICAgc3RydWN0IHR5cGUgKmJ1aWx0aW5fZnVuY19wdHI7CiAgCkBAIC00NzEzLDcg KzQ3MjQsNyBAQCBpbmRleCAwMzUzZjk2Li5hMDM1YmFkIDEwMDY0NAogIAogICAgLyogU3BlY2lh bC1wdXJwb3NlIHR5cGVzLiAgKi8KICAKLUBAIC0xMjIxLDYgKzEzMzQsOCBAQCBzdHJ1Y3Qgb2Jq ZmlsZV90eXBlCitAQCAtMTIxOCw2ICsxMzMxLDggQEAgc3RydWN0IG9iamZpbGVfdHlwZQogIAog ICAgLyogVHlwZXMgdXNlZCBmb3Igc3ltYm9scyB3aXRoIG5vIGRlYnVnIGluZm9ybWF0aW9uLiAg Ki8KICAgIHN0cnVjdCB0eXBlICpub2RlYnVnX3RleHRfc3ltYm9sOwpAQCAtNDcyMiw3ICs0NzMz LDcgQEAgaW5kZXggMDM1M2Y5Ni4uYTAzNWJhZCAxMDA2NDQKICAgIHN0cnVjdCB0eXBlICpub2Rl YnVnX2RhdGFfc3ltYm9sOwogICAgc3RydWN0IHR5cGUgKm5vZGVidWdfdW5rbm93bl9zeW1ib2w7 CiAgICBzdHJ1Y3QgdHlwZSAqbm9kZWJ1Z190bHNfc3ltYm9sOwotQEAgLTEzNjgsNiArMTQ4Mywx OCBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAq LCBzdHJ1Y3QgdHlwZSAqLAorQEAgLTEzNjUsNiArMTQ4MCwxOCBAQCBleHRlcm4gc3RydWN0IHR5 cGUgKmNyZWF0ZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqLAogIAkJ CQkgICAgICAgc3RydWN0IHR5cGUgKik7CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpsb29rdXBfYXJy YXlfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwgaW50LCBpbnQpOwogIApAQCAtNDc0MSw3ICs0 NzUyLDcgQEAgaW5kZXggMDM1M2Y5Ni4uYTAzNWJhZCAxMDA2NDQKICBleHRlcm4gc3RydWN0IHR5 cGUgKmNyZWF0ZV9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKICAJ CQkJCXN0cnVjdCB0eXBlICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqbG9va3VwX3N0cmluZ19y YW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBpbnQsIGludCk7Ci1AQCAtMTQxMyw2ICsxNTQwLDgg QEAgZXh0ZXJuIGludCBpc19wdWJsaWNfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0 eXBlICopOworQEAgLTE0MTAsNiArMTUzNyw4IEBAIGV4dGVybiBpbnQgaXNfcHVibGljX2FuY2Vz dG9yIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsKICAKICBleHRlcm4gaW50IGlzX3Vu aXF1ZV9hbmNlc3RvciAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHZhbHVlICopOwogIApAQCAtNDc1 MCw3ICs0NzYxLDcgQEAgaW5kZXggMDM1M2Y5Ni4uYTAzNWJhZCAxMDA2NDQKICAvKiBPdmVybG9h ZCByZXNvbHV0aW9uICovCiAgCiAgI2RlZmluZSBMRU5HVEhfTUFUQ0goYnYpICgoYnYpLT5yYW5r WzBdKQotQEAgLTE0ODMsMTAgKzE2MTIsMTEgQEAgZXh0ZXJuIHZvaWQgbWFpbnRlbmFuY2VfcHJp bnRfdHlwZSAoY2hhciAqLCBpbnQpOworQEAgLTE0ODIsMTAgKzE2MTEsMTEgQEAgZXh0ZXJuIHZv aWQgbWFpbnRlbmFuY2VfcHJpbnRfdHlwZSAoY2hhciAqLCBpbnQpOwogIAogIGV4dGVybiBodGFi X3QgY3JlYXRlX2NvcGllZF90eXBlc19oYXNoIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSk7CiAg CkBAIC00NzY1LDEwICs0Nzc2LDEwIEBAIGluZGV4IDAzNTNmOTYuLmEwMzViYWQgMTAwNjQ0CiAr CiAgI2VuZGlmIC8qIEdEQlRZUEVTX0ggKi8KIGRpZmYgLS1naXQgYS9nZGIvaTM4Ni1saW51eC1u YXQuYyBiL2dkYi9pMzg2LWxpbnV4LW5hdC5jCi1pbmRleCBlZDU1NWVmLi42YjVjNDU4IDEwMDY0 NAoraW5kZXggYzNjYmJjYy4uN2Y4NmMyOSAxMDA2NDQKIC0tLSBhL2dkYi9pMzg2LWxpbnV4LW5h dC5jCiArKysgYi9nZGIvaTM4Ni1saW51eC1uYXQuYwotQEAgLTYzMywyMiArNjMzLDEzIEBAIGkz ODZfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3Bz LAorQEAgLTY0OSwyMiArNjQ5LDEzIEBAIGkzODZfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0 ZXJzIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLAogIH0KICAMCiAgCkBAIC00NzkyLDcgKzQ4MDMs NyBAQCBpbmRleCBlZDU1NWVmLi42YjVjNDU4IDEwMDY0NAogICAgLyogRklYTUU6IGtldHRlbmlz LzIwMDEtMDMtMjc6IENhbGxpbmcgcGVycm9yX3dpdGhfbmFtZSBpZiB0aGUKICAgICAgIHB0cmFj ZSBjYWxsIGZhaWxzIGJyZWFrcyBkZWJ1Z2dpbmcgcmVtb3RlIHRhcmdldHMuICBUaGUgY29ycmVj dAogICAgICAgd2F5IHRvIGZpeCB0aGlzIGlzIHRvIGFkZCB0aGUgaGFyZHdhcmUgYnJlYWtwb2lu dCBhbmQgd2F0Y2hwb2ludAotQEAgLTY3MCwxNCArNjYxLDggQEAgaTM4Nl9saW51eF9kcl9nZXQg KHB0aWRfdCBwdGlkLCBpbnQgcmVnbnVtKQorQEAgLTY4NiwxNCArNjc3LDggQEAgaTM4Nl9saW51 eF9kcl9nZXQgKHB0aWRfdCBwdGlkLCBpbnQgcmVnbnVtKQogIC8qIFNldCBkZWJ1ZyByZWdpc3Rl ciBSRUdOVU0gdG8gVkFMVUUgaW4gb25seSB0aGUgb25lIExXUCBvZiBQVElELiAgKi8KICAKICBz dGF0aWMgdm9pZApAQCAtNDgwOCw3ICs0ODE5LDcgQEAgaW5kZXggZWQ1NTVlZi4uNmI1YzQ1OCAx MDA2NDQKICAgIGVycm5vID0gMDsKICAgIHB0cmFjZSAoUFRSQUNFX1BPS0VVU0VSLCB0aWQsCiAg CSAgb2Zmc2V0b2YgKHN0cnVjdCB1c2VyLCB1X2RlYnVncmVnW3JlZ251bV0pLCB2YWx1ZSk7Ci1A QCAtNjg1LDM1ICs2NzAsNzggQEAgaTM4Nl9saW51eF9kcl9zZXQgKHB0aWRfdCBwdGlkLCBpbnQg cmVnbnVtLCB1bnNpZ25lZCBsb25nIHZhbHVlKQorQEAgLTcwMSwzNSArNjg2LDc4IEBAIGkzODZf bGludXhfZHJfc2V0IChwdGlkX3QgcHRpZCwgaW50IHJlZ251bSwgdW5zaWduZWQgbG9uZyB2YWx1 ZSkKICAgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRuJ3Qgd3JpdGUgZGVidWcgcmVnaXN0 ZXIiKSk7CiAgfQogIApAQCAtNDkwMCw3ICs0OTExLDcgQEAgaW5kZXggZWQ1NTVlZi4uNmI1YzQ1 OCAxMDA2NDQKICAKICBzdGF0aWMgdm9pZAogIGkzODZfbGludXhfZHJfcmVzZXRfYWRkciAoaW50 IHJlZ251bSkKLUBAIC03MjYsMzYgKzc1NCw1NCBAQCBpMzg2X2xpbnV4X2RyX3Jlc2V0X2FkZHIg KGludCByZWdudW0pCitAQCAtNzQyLDM2ICs3NzAsNTQgQEAgaTM4Nl9saW51eF9kcl9yZXNldF9h ZGRyIChpbnQgcmVnbnVtKQogIHN0YXRpYyB1bnNpZ25lZCBsb25nCiAgaTM4Nl9saW51eF9kcl9n ZXRfc3RhdHVzICh2b2lkKQogIHsKQEAgLTQ5NzMsNyArNDk4NCw3IEBAIGluZGV4IGVkNTU1ZWYu LjZiNWM0NTggMTAwNjQ0CiAgDAogIAogZGlmZiAtLWdpdCBhL2dkYi9pMzg2LW5hdC5jIGIvZ2Ri L2kzODYtbmF0LmMKLWluZGV4IDkwMGZiNDAuLmYyOGM0NWIgMTAwNjQ0CitpbmRleCAwNjA2Y2Ux Li4xYWQwZTM5IDEwMDY0NAogLS0tIGEvZ2RiL2kzODYtbmF0LmMKICsrKyBiL2dkYi9pMzg2LW5h dC5jCiBAQCAtMjUsNiArMjUsNyBAQApAQCAtNDk5MCw3ICs1MDAxLDcgQEAgaW5kZXggOTAwZmI0 MC4uZjI4YzQ1YiAxMDA2NDQKICAvKiBEZWJ1ZyByZWdpc3RlcnMnIGluZGljZXMuICAqLwogLSNk ZWZpbmUgRFJfTkFERFIJNAkvKiBUaGUgbnVtYmVyIG9mIGRlYnVnIGFkZHJlc3MgcmVnaXN0ZXJz LiAgKi8KICAjZGVmaW5lIERSX1NUQVRVUwk2CS8qIEluZGV4IG9mIGRlYnVnIHN0YXR1cyByZWdp c3RlciAoRFI2KS4gICovCi0gI2RlZmluZSBEUl9DT05UUk9MCTcJLyogSW5kZXggb2YgZGVidWcg Y29udHJvbCByZWdpc3RlciAoRFI3KS4gKi8KKyAjZGVmaW5lIERSX0NPTlRST0wJNwkvKiBJbmRl eCBvZiBkZWJ1ZyBjb250cm9sIHJlZ2lzdGVyIChEUjcpLiAgKi8KICAKIEBAIC0xMTEsNDkgKzEx MSw2MCBAQCBzdHJ1Y3QgaTM4Nl9kcl9sb3dfdHlwZSBpMzg2X2RyX2xvdzsKICAKQEAgLTUxOTEs NyArNTIwMiw3IEBAIGluZGV4IDkwMGZiNDAuLmYyOGM0NWIgMTAwNjQ0CiAgICAgICAgaSsrOwog ICAgICB9CiAgfQotQEAgLTMxMSw2ICszODUsNyBAQCBJbnZhbGlkIGhhcmR3YXJlIGJyZWFrcG9p bnQgbGVuZ3RoICVkIGluIGkzODZfbGVuZ3RoX2FuZF9yd19iaXRzLlxuIiksIGxlbik7CitAQCAt MzEyLDYgKzM4Niw3IEBAIEludmFsaWQgaGFyZHdhcmUgYnJlYWtwb2ludCBsZW5ndGggJWQgaW4g aTM4Nl9sZW5ndGhfYW5kX3J3X2JpdHMuXG4iKSwgbGVuKTsKICBzdGF0aWMgaW50CiAgaTM4Nl9p bnNlcnRfYWxpZ25lZF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgdW5zaWduZWQgbGVuX3J3 X2JpdHMpCiAgewpAQCAtNTE5OSw3ICs1MjEwLDcgQEAgaW5kZXggOTAwZmI0MC4uZjI4YzQ1YiAx MDA2NDQKICAgIGludCBpOwogIAogICAgaWYgKCFpMzg2X2RyX2xvdy5zZXRfYWRkciB8fCAhaTM4 Nl9kcl9sb3cuc2V0X2NvbnRyb2wpCi1AQCAtMzIxLDExICszOTYsMTAgQEAgaTM4Nl9pbnNlcnRf YWxpZ25lZF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgdW5zaWduZWQgbGVuX3J3X2JpdHMp CitAQCAtMzIyLDExICszOTcsMTAgQEAgaTM4Nl9pbnNlcnRfYWxpZ25lZF93YXRjaHBvaW50IChD T1JFX0FERFIgYWRkciwgdW5zaWduZWQgbGVuX3J3X2JpdHMpCiAgICAgICByZXVzZSBpdCBmb3Ig dGhpcyB3YXRjaHBvaW50IGFzIHdlbGwgKGFuZCBzYXZlIGEgcmVnaXN0ZXIpLiAgKi8KICAgIEFM TF9ERUJVR19SRUdJU1RFUlMoaSkKICAgICAgewpAQCAtNTIxNCw3ICs1MjI1LDcgQEAgaW5kZXgg OTAwZmI0MC4uZjI4YzQ1YiAxMDA2NDQKICAJICByZXR1cm4gMDsKICAJfQogICAgICB9Ci1AQCAt MzMzLDcgKzQwNyw3IEBAIGkzODZfaW5zZXJ0X2FsaWduZWRfd2F0Y2hwb2ludCAoQ09SRV9BRERS IGFkZHIsIHVuc2lnbmVkIGxlbl9yd19iaXRzKQorQEAgLTMzNCw3ICs0MDgsNyBAQCBpMzg2X2lu c2VydF9hbGlnbmVkX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCB1bnNpZ25lZCBsZW5fcndf Yml0cykKICAgIC8qIE5leHQsIGxvb2sgZm9yIGEgdmFjYW50IGRlYnVnIHJlZ2lzdGVyLiAgKi8K ICAgIEFMTF9ERUJVR19SRUdJU1RFUlMoaSkKICAgICAgewpAQCAtNTIyMyw3ICs1MjM0LDcgQEAg aW5kZXggOTAwZmI0MC4uZjI4YzQ1YiAxMDA2NDQKICAJYnJlYWs7CiAgICAgIH0KICAKLUBAIC0z NDQsOSArNDE4LDkgQEAgaTM4Nl9pbnNlcnRfYWxpZ25lZF93YXRjaHBvaW50IChDT1JFX0FERFIg YWRkciwgdW5zaWduZWQgbGVuX3J3X2JpdHMpCitAQCAtMzQ1LDkgKzQxOSw5IEBAIGkzODZfaW5z ZXJ0X2FsaWduZWRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIHVuc2lnbmVkIGxlbl9yd19i aXRzKQogICAgLyogTm93IHNldCB1cCB0aGUgcmVnaXN0ZXIgSSB0byB3YXRjaCBvdXIgcmVnaW9u LiAgKi8KICAKICAgIC8qIFJlY29yZCB0aGUgaW5mbyBpbiBvdXIgbG9jYWwgbWlycm9yZWQgYXJy YXkuICAqLwpAQCAtNTIzNiw3ICs1MjQ3LDcgQEAgaW5kZXggOTAwZmI0MC4uZjI4YzQ1YiAxMDA2 NDQKICAgIC8qIE5vdGU6IHdlIG9ubHkgZW5hYmxlIHRoZSB3YXRjaHBvaW50IGxvY2FsbHksIGku ZS4gaW4gdGhlIGN1cnJlbnQKICAgICAgIHRhc2suICBDdXJyZW50bHksIG5vIGkzODYgdGFyZ2V0 IGFsbG93cyBvciBzdXBwb3J0cyBnbG9iYWwKICAgICAgIHdhdGNocG9pbnRzOyBob3dldmVyLCBp ZiBhbnkgdGFyZ2V0IHdvdWxkIHdhbnQgdGhhdCBpbiB0aGUKLUBAIC0zNTQsMTMgKzQyOCwxMyBA QCBpMzg2X2luc2VydF9hbGlnbmVkX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCB1bnNpZ25l ZCBsZW5fcndfYml0cykKK0BAIC0zNTUsMTMgKzQyOSwxMyBAQCBpMzg2X2luc2VydF9hbGlnbmVk X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCB1bnNpZ25lZCBsZW5fcndfYml0cykKICAgICAg IHRvIGVuYWJsZSB3YXRjaHBvaW50cyBnbG9iYWxseSBvciBsb2NhbGx5LCBhbmQgdGhlIGNvZGUg YmVsb3cKICAgICAgIHNob3VsZCB1c2UgZ2xvYmFsIG9yIGxvY2FsIGVuYWJsZSBhbmQgc2xvdy1k b3duIGZsYWdzIGFzCiAgICAgICBhcHByb3ByaWF0ZS4gICovCkBAIC01MjU0LDcgKzUyNjUsNyBA QCBpbmRleCA5MDBmYjQwLi5mMjhjNDViIDEwMDY0NAogIAogICAgLyogT25seSBhIHNhbml0eSBj aGVjayBmb3IgbGVmdG92ZXIgYml0cyAoc2V0IHBvc3NpYmx5IG9ubHkgYnkgaW5mZXJpb3IpLiAg Ki8KICAgIGlmIChpMzg2X2RyX2xvdy51bnNldF9zdGF0dXMpCi1AQCAtMzc4LDIxICs0NTIsMjEg QEAgaTM4Nl9pbnNlcnRfYWxpZ25lZF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgdW5zaWdu ZWQgbGVuX3J3X2JpdHMpCitAQCAtMzc5LDIxICs0NTMsMjEgQEAgaTM4Nl9pbnNlcnRfYWxpZ25l ZF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgdW5zaWduZWQgbGVuX3J3X2JpdHMpCiAgc3Rh dGljIGludAogIGkzODZfcmVtb3ZlX2FsaWduZWRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIs IHVuc2lnbmVkIGxlbl9yd19iaXRzKQogIHsKQEAgLTUyNjksOCArNTI4MCw4IEBAIGluZGV4IDkw MGZiNDAuLmYyOGM0NWIgMTAwNjQ0CiArICAgICAgaWYgKCFpMzg2X2RyX3ZhY2FudCAoZHJfbWly cm9yLCBpKSAmJiBkcl9taXJyb3ItPmFkZHJbaV0gPT0gYWRkcgogKwkgICYmIGkzODZfZHJfZ2V0 X3J3X2xlbiAoZHJfbWlycm9yLCBpKSA9PSBsZW5fcndfYml0cykKICAJewotLQkgIGlmICgtLWRy X3JlZl9jb3VudFtpXSA9PSAwKSAvKiBubyBsb25nZXIgaW4gdXNlPyAqLwotKwkgIGlmICgtLWRy X21pcnJvci0+cmVmX2NvdW50W2ldID09IDApIC8qIG5vIGxvbmdlciBpbiB1c2U/ICovCistCSAg aWYgKC0tZHJfcmVmX2NvdW50W2ldID09IDApIC8qIG5vIGxvbmdlciBpbiB1c2U/ICAqLworKwkg IGlmICgtLWRyX21pcnJvci0+cmVmX2NvdW50W2ldID09IDApIC8qIG5vIGxvbmdlciBpbiB1c2U/ ICAqLwogIAkgICAgewogIAkgICAgICAvKiBSZXNldCBvdXIgbWlycm9yLiAgKi8KIC0JICAgICAg ZHJfbWlycm9yW2ldID0gMDsKQEAgLTUyODMsNyArNTI5NCw3IEBAIGluZGV4IDkwMGZiNDAuLmYy OGM0NWIgMTAwNjQ0CiAgCSAgICAgIGlmIChpMzg2X2RyX2xvdy5yZXNldF9hZGRyKQogIAkJaTM4 Nl9kcl9sb3cucmVzZXRfYWRkciAoaSk7CiAgCSAgICB9Ci1AQCAtNTU0LDI2ICs2MjgsMjcgQEAg aTM4Nl9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQor QEAgLTU1NSwyNiArNjI5LDI3IEBAIGkzODZfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChDT1JF X0FERFIgYWRkciwgaW50IGxlbikKICBzdGF0aWMgaW50CiAgaTM4Nl9zdG9wcGVkX2RhdGFfYWRk cmVzcyAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgQ09SRV9BRERSICphZGRyX3ApCiAgewpAQCAt NTMxNiw3ICs1MzI3LDcgQEAgaW5kZXggOTAwZmI0MC4uZjI4YzQ1YiAxMDA2NDQKICAJICByYyA9 IDE7CiAgCSAgaWYgKG1haW50X3Nob3dfZHIpCiAgCSAgICBpMzg2X3Nob3dfZHIgKCJ3YXRjaHBv aW50X2hpdCIsIGFkZHIsIC0xLCBod193cml0ZSk7Ci1AQCAtNjg3LDYgKzc2MiwxMCBAQCBpMzg2 X3VzZV93YXRjaHBvaW50cyAoc3RydWN0IHRhcmdldF9vcHMgKnQpCitAQCAtNjg4LDYgKzc2Mywx MCBAQCBpMzg2X3VzZV93YXRjaHBvaW50cyAoc3RydWN0IHRhcmdldF9vcHMgKnQpCiAgICB0LT50 b19yZW1vdmVfd2F0Y2hwb2ludCA9IGkzODZfcmVtb3ZlX3dhdGNocG9pbnQ7CiAgICB0LT50b19p bnNlcnRfaHdfYnJlYWtwb2ludCA9IGkzODZfaW5zZXJ0X2h3X2JyZWFrcG9pbnQ7CiAgICB0LT50 b19yZW1vdmVfaHdfYnJlYWtwb2ludCA9IGkzODZfcmVtb3ZlX2h3X2JyZWFrcG9pbnQ7CkBAIC01 MzI4LDcgKzUzMzksNyBAQCBpbmRleCA5MDBmYjQwLi5mMjhjNDViIDEwMDY0NAogIAogIHZvaWQK IGRpZmYgLS1naXQgYS9nZGIvaTM4Ni1uYXQuaCBiL2dkYi9pMzg2LW5hdC5oCi1pbmRleCAxMGZk YzNiLi5lZDZkZTU2IDEwMDY0NAoraW5kZXggODE5YzZiOC4uYmVmOGEzNSAxMDA2NDQKIC0tLSBh L2dkYi9pMzg2LW5hdC5oCiArKysgYi9nZGIvaTM4Ni1uYXQuaAogQEAgLTc4LDYgKzc4LDI4IEBA IHN0cnVjdCBpMzg2X2RyX2xvd190eXBlCkBAIC01MzYxLDcgKzUzNzIsNyBAQCBpbmRleCAxMGZk YzNiLi5lZDZkZTU2IDEwMDY0NAogICAgIHJhdGhlciB0aGFuIHNldHRpbmcgaXQgZGlyZWN0bHkg dG8gY2hlY2sgdGhhdCB0aGUgbGVuZ3RoIGlzIG9ubHkKICAgICBzZXQgb25jZS4gIEl0IGFsc28g ZW5hYmxlcyB0aGUgJ21haW50IHNldC9zaG93IHNob3ctZGVidWctcmVncycgCiBkaWZmIC0tZ2l0 IGEvZ2RiL2luZmNhbGwuYyBiL2dkYi9pbmZjYWxsLmMKLWluZGV4IDQ4YzE4M2UuLjcxNmZiNjgg MTAwNjQ0CitpbmRleCA3NWRlNTZjLi4yYTY0YTBlIDEwMDY0NAogLS0tIGEvZ2RiL2luZmNhbGwu YwogKysrIGIvZ2RiL2luZmNhbGwuYwogQEAgLTIyOCw2ICsyMjgsNTYgQEAgdmFsdWVfYXJnX2Nv ZXJjZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAqYXJnLApAQCAtNTQ3 MywxMiArNTQ4NCwxMiBAQCBpbmRleCA0OGMxODNlLi43MTZmYjY4IDEwMDY0NAogKyAgZWxzZSBp ZiAoVFlQRV9DT0RFIChmdHlwZSkgPT0gVFlQRV9DT0RFX0lOVCkKICAgICAgewogICAgICAgIC8q IEhhbmRsZSB0aGUgY2FzZSBvZiBmdW5jdGlvbnMgbGFja2luZyBkZWJ1Z2dpbmcgaW5mby4KLSAg ICAgICAgICBUaGVpciB2YWx1ZXMgYXJlIGNoYXJhY3RlcnMgc2luY2UgdGhlaXIgYWRkcmVzc2Vz IGFyZSBjaGFyICovCisgICAgICAgICAgVGhlaXIgdmFsdWVzIGFyZSBjaGFyYWN0ZXJzIHNpbmNl IHRoZWlyIGFkZHJlc3NlcyBhcmUgY2hhci4gICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2xpbnV4LW5h dC5jIGIvZ2RiL2xpbnV4LW5hdC5jCi1pbmRleCBlNDY3ZTlhLi5kN2I1Mzk2IDEwMDY0NAoraW5k ZXggNjJhNDUzOC4uOGQxNGZjZCAxMDA2NDQKIC0tLSBhL2dkYi9saW51eC1uYXQuYwogKysrIGIv Z2RiL2xpbnV4LW5hdC5jCi1AQCAtMTI1Nyw2ICsxMjU3LDY0IEBAIGl0ZXJhdGVfb3Zlcl9sd3Bz IChwdGlkX3QgZmlsdGVyLAorQEAgLTEyNTQsNiArMTI1NCw2NCBAQCBpdGVyYXRlX292ZXJfbHdw cyAocHRpZF90IGZpbHRlciwKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAgLTU1NjAsNyArNTU3 MSw3IEBAIGluZGV4IDQyY2IyZmMuLjA1YWMxMWQgMTAwNjQ0CiAgICAgb3ZlcnJpZGUgaXQgd2l0 aCBsb2NhbCBtZXRob2RzLiAgKi8KICBzdHJ1Y3QgdGFyZ2V0X29wcyAqIGxpbnV4X3RhcmdldCAo dm9pZCk7CiBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKLWluZGV4IDY5ZjIy OTguLjZiMjUzMGIgMTAwNjQ0CitpbmRleCA2YmU0ODA1Li4xYjAwNzU5IDEwMDY0NAogLS0tIGEv Z2RiL21haW4uYwogKysrIGIvZ2RiL21haW4uYwogQEAgLTM5LDYgKzM5LDcgQEAKQEAgLTU2MDYs NyArNTYxNyw3IEBAIGluZGV4IDY5ZjIyOTguLjZiMjUzMGIgMTAwNjQ0CiAgCSAgY2FzZSBPUFRf U0U6CiAgCSAgICBzeW1hcmcgPSBvcHRhcmc7CiAgCSAgICBleGVjYXJnID0gb3B0YXJnOwotQEAg LTY2Myw3ICs2NzMsMzEgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC02NjQsNyAr Njc0LDMxIEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgCiAgICAvKiBOb3cgdGhhdCBn ZGJfaW5pdCBoYXMgY3JlYXRlZCB0aGUgaW5pdGlhbCBpbmZlcmlvciwgd2UncmUgaW4KICAgICAg IHBvc2l0aW9uIHRvIHNldCBhcmdzIGZvciB0aGF0IGluZmVyaW9yLiAgKi8KQEAgLTU2MzksNyAr NTY1MCw3IEBAIGluZGV4IDY5ZjIyOTguLjZiMjUzMGIgMTAwNjQ0CiAgICAgIHsKICAgICAgICAv KiBUaGUgcmVtYWluaW5nIG9wdGlvbnMgYXJlIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyBmb3Ig dGhlCiAgCSBpbmZlcmlvci4gIFRoZSBmaXJzdCBvbmUgaXMgdGhlIHN5bS9leGVjIGZpbGUsIGFu ZCB0aGUgcmVzdAotQEAgLTkxMiw3ICs5NDYsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRh KQorQEAgLTkxMyw3ICs5NDcsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIAogICAg LyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21tYW5kIGZpbGVzIGhh dmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC01NjQ5LDcgKzU2NjAsNyBAQCBpbmRleCA2OWYy Mjk4Li42YjI1MzBiIDEwMDY0NAogIAogICAgaWYgKGJhdGNoX2ZsYWcpCiAgICAgIHsKLUBAIC05 MjMsMTMgKzk1OCwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTkyNCwxMyAr OTU5LDI1IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgICAvKiBTaG93IHRpbWUgYW5k L29yIHNwYWNlIHVzYWdlLiAgKi8KICAgIGRvX2NsZWFudXBzIChwcmVfc3RhdF9jaGFpbik7CiAg CkBAIC01NjgxLDcgKzU2OTIsNyBAQCBpbmRleCA2OWYyMjk4Li42YjI1MzBiIDEwMDY0NAogICAg ICB9CiAgICAvKiBObyBleGl0IC0tIGV4aXQgaXMgdGhyb3VnaCBxdWl0X2NvbW1hbmQuICAqLwog IH0KLUBAIC05NjEsNyArMTAwOCwxMiBAQCBwcmludF9nZGJfaGVscCAoc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSkKK0BAIC05NjIsNyArMTAwOSwxMiBAQCBwcmludF9nZGJfaGVscCAoc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSkKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICBUaGlzIGlzIHRoZSBH TlUgZGVidWdnZXIuICBVc2FnZTpcblxuXAogICAgICBnZGIgW29wdGlvbnNdIFtleGVjdXRhYmxl LWZpbGUgW2NvcmUtZmlsZSBvciBwcm9jZXNzLWlkXV1cblwKQEAgLTU2OTUsNyArNTcwNiw3IEBA IGluZGV4IDY5ZjIyOTguLjZiMjUzMGIgMTAwNjQ0CiAgT3B0aW9uczpcblxuXAogICIpLCBzdHJl YW0pOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAotQEAgLTk5OSw3ICsxMDUxLDEzIEBAIE9w dGlvbnM6XG5cblwKK0BAIC0xMDAwLDcgKzEwNTIsMTMgQEAgT3B0aW9uczpcblxuXAogICAgLS1u dwkJICAgICBEbyBub3QgdXNlIGEgd2luZG93IGludGVyZmFjZS5cblwKICAgIC0tbnggICAgICAg ICAgICAgICBEbyBub3QgcmVhZCAiKSwgc3RyZWFtKTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKGdk YmluaXQsIHN0cmVhbSk7CkBAIC01NzExLDcgKzU3MjIsNyBAQCBpbmRleCA2OWYyMjk4Li42YjI1 MzBiIDEwMDY0NAogICAgLS1yZWFkbm93ICAgICAgICAgIEZ1bGx5IHJlYWQgc3ltYm9sIGZpbGVz IG9uIGZpcnN0IGFjY2Vzcy5cblwKICAiKSwgc3RyZWFtKTsKIGRpZmYgLS1naXQgYS9nZGIvbWkv bWktY21kLXZhci5jIGIvZ2RiL21pL21pLWNtZC12YXIuYwotaW5kZXggOGUwZjQxMC4uZTIzZjQ4 MiAxMDA2NDQKK2luZGV4IGE0MDE4NDYuLjI2ZGNhOGMgMTAwNjQ0CiAtLS0gYS9nZGIvbWkvbWkt Y21kLXZhci5jCiArKysgYi9nZGIvbWkvbWktY21kLXZhci5jCiBAQCAtNzA3LDcgKzcwNyw2IEBA IG1pX2NtZF92YXJfdXBkYXRlIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2Mp CkBAIC01NzIzLDcgKzU3MzQsNyBAQCBpbmRleCA4ZTBmNDEwLi5lMjNmNDgyIDEwMDY0NAogIAog ICAgICAgIHZhcm9ial91cGRhdGVfb25lICh2YXIsIHByaW50X3ZhbHVlcywgMSAvKiBleHBsaWNp dCAqLyk7CiBkaWZmIC0tZ2l0IGEvZ2RiL21pbnN5bXMuYyBiL2dkYi9taW5zeW1zLmMKLWluZGV4 IDc3MTU5YTUuLmVhOTRjMTMgMTAwNjQ0CitpbmRleCA4NDk3OTkxLi40NjM1ODUzIDEwMDY0NAog LS0tIGEvZ2RiL21pbnN5bXMuYwogKysrIGIvZ2RiL21pbnN5bXMuYwogQEAgLTMzOCw4ICszMzgs OSBAQCBsb29rdXBfbWluaW1hbF9zeW1ib2xfdGV4dCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0 IG9iamZpbGUgKm9iamYpCkBAIC01Nzc0LDcgKzU3ODUsNyBAQCBpbmRleCA3NzE1OWE1Li5lYTk0 YzEzIDEwMDY0NAogIAkJICAgICAgIFNZTUJPTF9MSU5LQUdFX05BTUUgKHRzeW1ib2wpKSA9PSAw KQogIAkgIHJldHVybiBTWU1CT0xfVkFMVUVfQUREUkVTUyAobXN5bWJvbCk7CiBkaWZmIC0tZ2l0 IGEvZ2RiL3AtdmFscHJpbnQuYyBiL2dkYi9wLXZhbHByaW50LmMKLWluZGV4IDUzOTBkZDkuLmMw YTBiMmEgMTAwNjQ0CitpbmRleCBlOTkzYzA1Li5hZmZiZTQ1IDEwMDY0NAogLS0tIGEvZ2RiL3At dmFscHJpbnQuYwogKysrIGIvZ2RiL3AtdmFscHJpbnQuYwogQEAgLTM4LDYgKzM4LDcgQEAKQEAg LTU4NTAsNyArNTg2MSw3IEBAIGluZGV4IDUzOTBkZDkuLmMwYTBiMmEgMTAwNjQ0CiAgfQogIAwK IGRpZmYgLS1naXQgYS9nZGIvcGFyc2UuYyBiL2dkYi9wYXJzZS5jCi1pbmRleCA0ZjBjMTExLi4y NDNhOTRhIDEwMDY0NAoraW5kZXggODU2YzI0ZC4uZGJiMzhjNSAxMDA2NDQKIC0tLSBhL2dkYi9w YXJzZS5jCiArKysgYi9nZGIvcGFyc2UuYwogQEAgLTQ4Nyw5ICs0ODcsMjEgQEAgd3JpdGVfZXhw X21zeW1ib2wgKHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqbXN5bWJvbCkKQEAgLTU4OTksNyArNTkx MCw3IEBAIGluZGV4IDRmMGMxMTEuLjI0M2E5NGEgMTAwNjQ0CiAgICAgIGRlZmF1bHQ6CiAgICAg ICAgd3JpdGVfZXhwX2VsdF90eXBlIChvYmpmaWxlX3R5cGUgKG9iamZpbGUpLT5ub2RlYnVnX3Vu a25vd25fc3ltYm9sKTsKICAgICAgICBicmVhazsKLUBAIC0xNDgyLDYgKzE1MDMsNyBAQCBwYXJz ZXJfZnByaW50ZiAoRklMRSAqeCwgY29uc3QgY2hhciAqeSwgLi4uKQorQEAgLTE0ODAsNiArMTUw MSw3IEBAIHBhcnNlcl9mcHJpbnRmIChGSUxFICp4LCBjb25zdCBjaGFyICp5LCAuLi4pCiAgCiAg aW50CiAgb3BlcmF0b3JfY2hlY2tfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGlu dCBwb3MsCkBAIC01OTA3LDcgKzU5MTgsNyBAQCBpbmRleCA0ZjBjMTExLi4yNDNhOTRhIDEwMDY0 NAogIAkJCSBpbnQgKCpvYmpmaWxlX2Z1bmMpIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJ CQkJCSAgICAgIHZvaWQgKmRhdGEpLAogIAkJCSB2b2lkICpkYXRhKQotQEAgLTE1MjMsNyArMTU0 NSw3IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBp bnQgcG9zLAorQEAgLTE1MjEsNyArMTU0Myw3IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAogIAkgICAgc3RydWN0IHR5cGUgKnR5cGUg PSBlbHRzW3BvcyArIDIgKyBhcmddLnR5cGU7CiAgCSAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSA9IFRZUEVfT0JKRklMRSAodHlwZSk7CiAgCkBAIC01OTE2LDcgKzU5MjcsNyBAQCBpbmRleCA0 ZjBjMTExLi4yNDNhOTRhIDEwMDY0NAogIAkgICAgICByZXR1cm4gMTsKICAJICB9CiAgICAgICAg fQotQEAgLTE1NDEsNyArMTU2Myw4IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3Qg ZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAorQEAgLTE1MzksNyArMTU2MSw4IEBAIG9wZXJhdG9y X2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAogIAogIAkv KiBDaGVjayBvYmpmaWxlIHdoZXJlIHRoZSB2YXJpYWJsZSBpdHNlbGYgaXMgcGxhY2VkLgogIAkg ICBTWU1CT0xfT0JKX1NFQ1RJT04gKHN5bWJvbCkgbWF5IGJlIE5VTEwuICAqLwpAQCAtNTkyNiw3 ICs1OTM3LDcgQEAgaW5kZXggNGYwYzExMS4uMjQzYTk0YSAxMDA2NDQKICAJICByZXR1cm4gMTsK ICAKICAJLyogQ2hlY2sgb2JqZmlsZSB3aGVyZSBpcyBwbGFjZWQgdGhlIGNvZGUgdG91Y2hpbmcg dGhlIHZhcmlhYmxlLiAgKi8KLUBAIC0xNTU0LDI0ICsxNTc3LDI3IEBAIG9wZXJhdG9yX2NoZWNr X3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAorQEAgLTE1NTIsMjQg KzE1NzUsMjcgQEAgb3BlcmF0b3JfY2hlY2tfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpl eHAsIGludCBwb3MsCiAgCiAgICAvKiBJbnZva2UgY2FsbGJhY2tzIGZvciBUWVBFIGFuZCBPQkpG SUxFIGlmIHRoZXkgd2VyZSBzZXQgYXMgbm9uLU5VTEwuICAqLwogIApAQCAtNTk2Miw3ICs1OTcz LDcgQEAgaW5kZXggNGYwYzExMS4uMjQzYTk0YSAxMDA2NDQKICAJICAgICBpbnQgKCpvYmpmaWxl X2Z1bmMpIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0YSksCiAgCSAgICAgdm9p ZCAqZGF0YSkKICB7Ci1AQCAtMTU4Niw3ICsxNjEyLDkgQEAgZXhwX2l0ZXJhdGUgKHN0cnVjdCBl eHByZXNzaW9uICpleHAsCitAQCAtMTU4NCw3ICsxNjEwLDkgQEAgZXhwX2l0ZXJhdGUgKHN0cnVj dCBleHByZXNzaW9uICpleHAsCiAgCiAgICAgICAgcG9zID0gZW5kcG9zIC0gb3BsZW47CiAgICAg ICAgaWYgKGV4cC0+bGFuZ3VhZ2VfZGVmbi0+bGFfZXhwX2Rlc2MtPm9wZXJhdG9yX2NoZWNrIChl eHAsIHBvcywKQEAgLTU5NzMsNyArNTk4NCw3IEBAIGluZGV4IDRmMGMxMTEuLjI0M2E5NGEgMTAw NjQ0CiAgCXJldHVybiAxOwogIAogICAgICAgIGVuZHBvcyA9IHBvczsKLUBAIC0xNjE3LDcgKzE2 NDUsMjYgQEAgZXhwX3VzZXNfb2JqZmlsZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0 IG9iamZpbGUgKm9iamZpbGUpCitAQCAtMTYxNSw3ICsxNjQzLDI2IEBAIGV4cF91c2VzX29iamZp bGUgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIHsK ICAgIGdkYl9hc3NlcnQgKG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmsg PT0gTlVMTCk7CiAgCkBAIC02MDAyLDcgKzYwMTMsNyBAQCBpbmRleCA0ZjBjMTExLi4yNDNhOTRh IDEwMDY0NAogIAogIHZvaWQKIGRpZmYgLS1naXQgYS9nZGIvcGFyc2VyLWRlZnMuaCBiL2dkYi9w YXJzZXItZGVmcy5oCi1pbmRleCA5NWRkNzk5Li40MjI2NmRmIDEwMDY0NAoraW5kZXggM2Y3NDNk MS4uMGVlMTlmNSAxMDA2NDQKIC0tLSBhL2dkYi9wYXJzZXItZGVmcy5oCiArKysgYi9nZGIvcGFy c2VyLWRlZnMuaAogQEAgLTE5NCw2ICsxOTQsOCBAQCBleHRlcm4gdm9pZCBvcGVyYXRvcl9sZW5n dGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICosIGludCwgaW50ICosCkBAIC02 MDMyLDEwICs2MDQzLDEwIEBAIGluZGV4IDk1ZGQ3OTkuLjQyMjY2ZGYgMTAwNjQ0CiArCiAgI2Vu ZGlmIC8qIFBBUlNFUl9ERUZTX0ggKi8KIGRpZmYgLS1naXQgYS9nZGIvcHBjLWxpbnV4LW5hdC5j IGIvZ2RiL3BwYy1saW51eC1uYXQuYwotaW5kZXggY2E3MzEyYi4uNTg2OTZkMyAxMDA2NDQKK2lu ZGV4IDBjNTU2M2UuLmU0ZjBiMjUgMTAwNjQ0CiAtLS0gYS9nZGIvcHBjLWxpbnV4LW5hdC5jCiAr KysgYi9nZGIvcHBjLWxpbnV4LW5hdC5jCi1AQCAtMTYyMSwxMiArMTYyMSwxOCBAQCBib29rZV9y ZW1vdmVfcG9pbnQgKHN0cnVjdCBwcGNfaHdfYnJlYWtwb2ludCAqYiwgaW50IHRpZCkKK0BAIC0x NjM3LDEyICsxNjM3LDE4IEBAIGJvb2tlX3JlbW92ZV9wb2ludCAoc3RydWN0IHBwY19od19icmVh a3BvaW50ICpiLCBpbnQgdGlkKQogICAgaHdfYnJlYWtzW2ldLmh3X2JyZWFrID0gTlVMTDsKICB9 CiAgCkBAIC02MDU2LDggKzYwNjcsOCBAQCBpbmRleCBjYTczMTJiLi41ODY5NmQzIDEwMDY0NAog ICAgc3RydWN0IHBwY19od19icmVha3BvaW50IHA7CiAgCiAgICBpZiAoIWhhdmVfcHRyYWNlX2Jv b2tlX2ludGVyZmFjZSAoKSkKLUBAIC0xNjQwLDE4ICsxNjQ2LDIzIEBAIHBwY19saW51eF9pbnNl cnRfaHdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0gICBwLmFkZHIyICAg ICAgICAgICA9IDA7CitAQCAtMTY1NiwxOCArMTY2MiwyMyBAQCBwcGNfbGludXhfaW5zZXJ0X2h3 X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorICAgcC5hZGRyMiA9IDA7CiAg ICBwLmNvbmRpdGlvbl92YWx1ZSA9IDA7CiAgCiAtICBBTExfTFdQUyAobHAsIHB0aWQpCkBAIC02 MDg0LDggKzYwOTUsOCBAQCBpbmRleCBjYTczMTJiLi41ODY5NmQzIDEwMDY0NAogICAgc3RydWN0 IHBwY19od19icmVha3BvaW50IHA7CiAgCiAgICBpZiAoIWhhdmVfcHRyYWNlX2Jvb2tlX2ludGVy ZmFjZSAoKSkKLUBAIC0xNjY1LDggKzE2NzYsNyBAQCBwcGNfbGludXhfcmVtb3ZlX2h3X2JyZWFr cG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAotICAgcC5hZGRyMiAgICAgICAgICAgPSAw OworQEAgLTE2ODEsOCArMTY5Miw3IEBAIHBwY19saW51eF9yZW1vdmVfaHdfYnJlYWtwb2ludCAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgICBwLmFkZHIyID0gMDsKICAgIHAuY29uZGl0aW9u X3ZhbHVlID0gMDsKICAKIC0gIEFMTF9MV1BTIChscCwgcHRpZCkKQEAgLTYwOTQsNyArNjEwNSw3 IEBAIGluZGV4IGNhNzMxMmIuLjU4Njk2ZDMgMTAwNjQ0CiAgCiAgICByZXR1cm4gMDsKICB9Ci1A QCAtMTg3OSwxMiArMTg4OSwxOSBAQCBwcGNfbGludXhfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29u ZGl0aW9uIChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAorQEAgLTE4OTYsNiArMTkw NiwxNSBAQCBwcGNfbGludXhfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uIChDT1JFX0FE RFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAogIAkgICYmIGNoZWNrX2NvbmRpdGlvbiAoYWRkciwg Y29uZCwgJmRhdGFfdmFsdWUpKTsKICB9CiAgCkBAIC02MTA3LDcgKzYxMTgsMTAgQEAgaW5kZXgg Y2E3MzEyYi4uNTg2OTZkMyAxMDA2NDQKICsgICAgKnJldHAgPSAtMTsKICt9CiArCi0gc3RhdGlj IGludAorIC8qIFNldCB1cCBQIHdpdGggdGhlIHBhcmFtZXRlcnMgbmVjZXNzYXJ5IHRvIHJlcXVl c3QgYSB3YXRjaHBvaW50IGNvdmVyaW5nCisgICAgTEVOIGJ5dGVzIHN0YXJ0aW5nIGF0IEFERFIg YW5kIGlmIHBvc3NpYmxlIHdpdGggY29uZGl0aW9uIGV4cHJlc3Npb24gQ09ORAorICAgIGV2YWx1 YXRlZCBieSBoYXJkd2FyZS4gIElOU0VSVCB0ZWxscyBpZiB3ZSBhcmUgY3JlYXRpbmcgYSByZXF1 ZXN0IGZvcgorQEAgLTE5NDksOCArMTk2OCw2IEBAIHN0YXRpYyBpbnQKICBwcGNfbGludXhfaW5z ZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgcncsCiAgCQkJICAg ICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKICB7CkBAIC02MTE2LDkgKzYxMzAsOSBAQCBpbmRl eCBjYTczMTJiLi41ODY5NmQzIDEwMDY0NAogICAgaW50IHJldCA9IC0xOwogIAogICAgaWYgKGhh dmVfcHRyYWNlX2Jvb2tlX2ludGVyZmFjZSAoKSkKLUBAIC0xOTA4LDggKzE5MjUsNyBAQCBwcGNf bGludXhfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgcncs Ci0gICAgICAgcC5hZGRyICAgICAgICAgICAgPSAodWludDY0X3QpIGFkZHI7Ci0gICAgICAgcC5h ZGRyMiAgICAgICAgICAgPSAwOworQEAgLTE5NTksOCArMTk3Niw3IEBAIHBwY19saW51eF9pbnNl cnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBydywKKyAKKyAgICAg ICBjcmVhdGVfd2F0Y2hwb2ludF9yZXF1ZXN0ICgmcCwgYWRkciwgbGVuLCBydywgY29uZCwgMSk7 CiAgCiAtICAgICAgQUxMX0xXUFMgKGxwLCBwdGlkKQogLQlib29rZV9pbnNlcnRfcG9pbnQgKCZw LCBUSURHRVQgKHB0aWQpKTsKQEAgLTYxMjYsNyArNjE0MCw3IEBAIGluZGV4IGNhNzMxMmIuLjU4 Njk2ZDMgMTAwNjQ0CiAgCiAgICAgICAgcmV0ID0gMDsKICAgICAgfQotQEAgLTE5NTIsMTIgKzE5 NjgsOCBAQCBwcGNfbGludXhfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQg bGVuLCBpbnQgcncsCitAQCAtMjAwMywxMiArMjAxOSw4IEBAIHBwY19saW51eF9pbnNlcnRfd2F0 Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBydywKICAKICAgICAgICBzYXZl ZF9kYWJyX3ZhbHVlID0gZGFicl92YWx1ZTsKICAKQEAgLTYxNDAsNyArNjE1NCw3IEBAIGluZGV4 IGNhNzMxMmIuLjU4Njk2ZDMgMTAwNjQ0CiAgICAgIH0KICAKICAgIHJldHVybiByZXQ7Ci1AQCAt MTk2Nyw4ICsxOTc5LDYgQEAgc3RhdGljIGludAorQEAgLTIwMTgsOCArMjAzMCw2IEBAIHN0YXRp YyBpbnQKICBwcGNfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQg bGVuLCBpbnQgcncsCiAgCQkJICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKICB7CkBAIC02 MTQ5LDkgKzYxNjMsOSBAQCBpbmRleCBjYTczMTJiLi41ODY5NmQzIDEwMDY0NAogICAgaW50IHJl dCA9IC0xOwogIAogICAgaWYgKGhhdmVfcHRyYWNlX2Jvb2tlX2ludGVyZmFjZSAoKSkKLUBAIC0x OTkyLDIwICsyMDAyLDE2IEBAIHBwY19saW51eF9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERS IGFkZHIsIGludCBsZW4sIGludCBydywKLSAgICAgICBwLmFkZHIgICAgICAgICAgICA9ICh1aW50 NjRfdCkgYWRkcjsKLSAgICAgICBwLmFkZHIyICAgICAgICAgICA9IDA7CitAQCAtMjAyOCwyMCAr MjAzOCwxNiBAQCBwcGNfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBp bnQgbGVuLCBpbnQgcncsCisgCisgICAgICAgY3JlYXRlX3dhdGNocG9pbnRfcmVxdWVzdCAoJnAs IGFkZHIsIGxlbiwgcncsIGNvbmQsIDApOwogIAogLSAgICAgIEFMTF9MV1BTIChscCwgcHRpZCkK IC0JYm9va2VfcmVtb3ZlX3BvaW50ICgmcCwgVElER0VUIChwdGlkKSk7CkBAIC02MTczLDEwICs2 MTg3LDEwIEBAIGluZGV4IGNhNzMxMmIuLjU4Njk2ZDMgMTAwNjQ0CiAgCiAgICByZXR1cm4gcmV0 OwogZGlmZiAtLWdpdCBhL2dkYi9wcmludGNtZC5jIGIvZ2RiL3ByaW50Y21kLmMKLWluZGV4IGI3 ZDNhZGUuLmE2ZmE4NmEgMTAwNjQ0CitpbmRleCBmNDM1ZjZkLi43YmNiNjY3IDEwMDY0NAogLS0t IGEvZ2RiL3ByaW50Y21kLmMKICsrKyBiL2dkYi9wcmludGNtZC5jCi1AQCAtOTczLDYgKzk3Mywx MSBAQCBwcmludF9jb21tYW5kXzEgKGNoYXIgKmV4cCwgaW50IGluc3BlY3QsIGludCB2b2lkcHJp bnQpCitAQCAtOTc0LDYgKzk3NCwxMSBAQCBwcmludF9jb21tYW5kXzEgKGNoYXIgKmV4cCwgaW50 IGluc3BlY3QsIGludCB2b2lkcHJpbnQpCiAgICBlbHNlCiAgICAgIHZhbCA9IGFjY2Vzc192YWx1 ZV9oaXN0b3J5ICgwKTsKICAKQEAgLTYxODgsNyArNjIwMiw3IEBAIGluZGV4IGI3ZDNhZGUuLmE2 ZmE4NmEgMTAwNjQ0CiAgICBpZiAodm9pZHByaW50IHx8ICh2YWwgJiYgdmFsdWVfdHlwZSAodmFs KSAmJgogIAkJICAgIFRZUEVfQ09ERSAodmFsdWVfdHlwZSAodmFsKSkgIT0gVFlQRV9DT0RFX1ZP SUQpKQogICAgICB7Ci1AQCAtMTQ3NCw2ICsxNDc5LDIyIEBAIHhfY29tbWFuZCAoY2hhciAqZXhw LCBpbnQgZnJvbV90dHkpCitAQCAtMTQ3NSw2ICsxNDgwLDIyIEBAIHhfY29tbWFuZCAoY2hhciAq ZXhwLCBpbnQgZnJvbV90dHkpCiAgCXNldF9pbnRlcm5hbHZhciAobG9va3VwX2ludGVybmFsdmFy ICgiX18iKSwgbGFzdF9leGFtaW5lX3ZhbHVlKTsKICAgICAgfQogIH0KQEAgLTYyMTEsNyArNjIy NSw3IEBAIGluZGV4IGI3ZDNhZGUuLmE2ZmE4NmEgMTAwNjQ0CiAgDAogIAogIC8qIEFkZCBhbiBl eHByZXNzaW9uIHRvIHRoZSBhdXRvLWRpc3BsYXkgY2hhaW4uCi1AQCAtMjg3NCw0ICsyODk1LDYg QEAgU2hvdyBwcmludGluZyBvZiBzb3VyY2UgZmlsZW5hbWUgYW5kIGxpbmUgbnVtYmVyIHdpdGgg PHN5bWJvbD4uIiksIE5VTEwsCitAQCAtMjg3NSw0ICsyODk2LDYgQEAgU2hvdyBwcmludGluZyBv ZiBzb3VyY2UgZmlsZW5hbWUgYW5kIGxpbmUgbnVtYmVyIHdpdGggPHN5bWJvbD4uIiksIE5VTEws CiAgICBhZGRfY29tICgiZXZhbCIsIG5vX2NsYXNzLCBldmFsX2NvbW1hbmQsIF8oIlwKICBDb252 ZXJ0IFwicHJpbnRmIGZvcm1hdCBzdHJpbmdcIiwgYXJnMSwgYXJnMiwgYXJnMywgLi4uLCBhcmdu IHRvXG5cCiAgYSBjb21tYW5kIGxpbmUsIGFuZCBjYWxsIGl0LiIpKTsKQEAgLTYzNzcsMTMgKzYz OTEsMTMgQEAgaW5kZXggMDAwMDAwMC4uYjc5MGE1NAogKyAgICAgICAgcmV0dXJuIGdldGF0dHIg KHNlbGYuZnJhbWUsIG5hbWUpCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0 cmFjZS5weSBiL2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKIG5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4yYmFhYjVmCitpbmRleCAwMDAwMDAwLi42YmI0ZmIxCiAt LS0gL2Rldi9udWxsCiArKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CiBAQCAt MCwwICsxLDQyIEBACiArIyBGaWx0ZXJpbmcgYmFja3RyYWNlLgogKwotKyMgQ29weXJpZ2h0IChD KSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgQ29weXJpZ2h0IChDKSAy MDA4LCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwogKyMgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKICsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CkBAIC02NDE1LDcgKzY0MjksNyBAQCBpbmRleCAwMDAwMDAwLi4y YmFhYjVmCiArICAgIGlmIGZyYW1lX2ZpbHRlciA9PSBOb25lOgogKyAgICAgICAgZnJhbWVfZmls dGVyID0gY29uc3RydWN0b3IKICsgICAgZWxzZToKLSsgICAgICAgIGZyYW1lX2ZpbHRlciA9IGxh bWJkYSBpdGVyYXRvcjogY29uc3RydWN0b3IgKGZyYW1lX2ZpbHRlciAoaXRlcmF0b3IpKQorKyAg ICAgICAgZnJhbWVfZmlsdGVyID0gbGFtYmRhIGl0ZXJhdG9yLCBmaWx0ZXIgPSBmcmFtZV9maWx0 ZXI6IGNvbnN0cnVjdG9yIChmaWx0ZXIgKGl0ZXJhdG9yKSkKICsKICtkZWYgY3JlYXRlX2ZyYW1l X2ZpbHRlciAoaXRlcik6CiArICAgIGdsb2JhbCBmcmFtZV9maWx0ZXIKQEAgLTY0OTAsMTMgKzY1 MDQsMTMgQEAgaW5kZXggMDAwMDAwMC4uOTZiNjYxOAogK0FsaWFzQ29tbWFuZCgpCiBkaWZmIC0t Z2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5IGIvZ2RiL3B5dGhv bi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMC4uZWM5YTUyNworaW5kZXggMDAwMDAwMC4uMmFhNWI5MAogLS0tIC9kZXYvbnVs bAogKysrIGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CiBAQCAtMCww ICsxLDEwNiBAQAogKyMgTmV3IGJhY2t0cmFjZSBjb21tYW5kLgogKwotKyMgQ29weXJpZ2h0IChD KSAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgQ29weXJpZ2h0 IChDKSAyMDA4LCAyMDA5LCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwog KyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKICsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CkBAIC02NTc2LDcgKzY1OTAsNyBAQCBpbmRl eCAwMDAwMDAwLi5lYzlhNTI3CiArCiArICAgICAgICAjIEZJWE1FOiBwcm92aWRlIG9wdGlvbiB0 byBzdGFydCBhdCBzZWxlY3RlZCBmcmFtZQogKyAgICAgICAgIyBIb3dldmVyLCBzaG91bGQgc3Rp bGwgbnVtYmVyIGFzIGlmIHN0YXJ0aW5nIGZyb20gbmV3ZXN0Ci0rCW5ld2VzdF9mcmFtZSA9IGdk Yi5zZWxlY3RlZF90aHJlYWQgKCkubmV3ZXN0X2ZyYW1lICgpCisrICAgICAgICBuZXdlc3RfZnJh bWUgPSBnZGIuc2VsZWN0ZWRfdGhyZWFkICgpLm5ld2VzdF9mcmFtZSAoKQogKyAgICAgICAgaXRl ciA9IGl0ZXJ0b29scy5pbWFwIChGcmFtZVdyYXBwZXIsCiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZyYW1lSXRlcmF0b3IgKG5ld2VzdF9mcmFtZSkpCiArICAgICAgICBpZiBmaWx0 ZXI6CkBAIC03MDQ2LDMyOCArNzA2MCw2IEBAIGluZGV4IDAwMDAwMDAuLmRlYmIzYmIKICsJcmV0 dXJuIHdhbnRlZCA9PSBmb3VuZAogKwogK0luU2NvcGUgKCkKLWRpZmYgLS1naXQgYS9nZGIvcHl0 aG9uL3B5LWNtZC5jIGIvZ2RiL3B5dGhvbi9weS1jbWQuYwotaW5kZXggM2RlM2FmMi4uNmE3YTIw YiAxMDA2NDQKLS0tLSBhL2dkYi9weXRob24vcHktY21kLmMKLSsrKyBiL2dkYi9weXRob24vcHkt Y21kLmMKLUBAIC00OSw4ICs0OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY21kcHlfY29tcGxldGVyIGNv bXBsZXRlcnNbXSA9Ci0gCi0gI2RlZmluZSBOX0NPTVBMRVRFUlMgKHNpemVvZiAoY29tcGxldGVy cykgLyBzaXplb2YgKGNvbXBsZXRlcnNbMF0pKQotIAotLS8qIEEgZ2RiIGNvbW1hbmQuICBGb3Ig dGhlIHRpbWUgYmVpbmcgb25seSBvcmRpbmFyeSBjb21tYW5kcyAobm90Ci0tICAgc2V0L3Nob3cg Y29tbWFuZHMpIGFyZSBhbGxvd2VkLiAgKi8KLSsvKiBBIGdkYiBjb21tYW5kLiAgKi8KLSBzdHJ1 Y3QgY21kcHlfb2JqZWN0Ci0gewotICAgUHlPYmplY3RfSEVBRAotZGlmZiAtLWdpdCBhL2dkYi9w eXRob24vcHktbWVtYnVmLmMgYi9nZGIvcHl0aG9uL3B5LW1lbWJ1Zi5jCi1uZXcgZmlsZSBtb2Rl IDEwMDY0NAotaW5kZXggMDAwMDAwMC4uN2JjMjk0YwotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2Ri L3B5dGhvbi9weS1tZW1idWYuYwotQEAgLTAsMCArMSwyNjggQEAKLSsvKiBQeXRob24gaW50ZXJm YWNlIHRvIHRoZSBpbmZlcmlvciBtZW1vcnkuCi0rCi0rICAgQ29weXJpZ2h0IChDKSAyMDA4LCAy MDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov Ci0rCi0rI2luY2x1ZGUgImRlZnMuaCIKLSsjaW5jbHVkZSAiZXhjZXB0aW9ucy5oIgotKyNpbmNs dWRlICJnZGJjb3JlLmgiCi0rI2luY2x1ZGUgInB5dGhvbi1pbnRlcm5hbC5oIgotKwotK3R5cGVk ZWYgc3RydWN0IHsKLSsgIFB5T2JqZWN0X0hFQUQKLSsgIHZvaWQgKmJ1ZmZlcjsKLSsKLSsgIC8q IFRoZXNlIGFyZSBrZXB0IGp1c3QgZm9yIG1icHlfc3RyLiAgKi8KLSsgIENPUkVfQUREUiBhZGRy OwotKyAgQ09SRV9BRERSIGxlbmd0aDsKLSt9IG1lbWJ1Zl9vYmplY3Q7Ci0rCi0rc3RhdGljIFB5 VHlwZU9iamVjdCBtZW1idWZfb2JqZWN0X3R5cGU7Ci0rCi0rLyogSW1wbGVtZW50YXRpb24gb2Yg Z2RiLnJlYWRfbWVtb3J5IChhZGRyZXNzLCBsZW5ndGgpLgotKyAgIFJldHVybnMgYSBQeXRob24g YnVmZmVyIG9iamVjdCB3aXRoIExFTkdUSCBieXRlcyBvZiB0aGUgaW5mZXJpb3IncyBtZW1vcnkK LSsgICBhdCBBRERSRVNTLiBCb3RoIGFyZ3VtZW50cyBhcmUgaW50ZWdlcnMuICAqLwotKwotK1B5 T2JqZWN0ICoKLStnZGJweV9yZWFkX21lbW9yeSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICph cmdzKQotK3sKLSsgIGludCBlcnJvciA9IDA7Ci0rICBDT1JFX0FERFIgYWRkciwgbGVuZ3RoOwot KyAgdm9pZCAqYnVmZmVyID0gTlVMTDsKLSsgIG1lbWJ1Zl9vYmplY3QgKm1lbWJ1Zl9vYmo7Ci0r ICBQeU9iamVjdCAqYWRkcl9vYmosICpsZW5ndGhfb2JqOwotKyAgc3RydWN0IGNsZWFudXAgKmNs ZWFudXBzID0gTlVMTDsKLSsgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsK LSsKLSsgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUgKGFyZ3MsICJPTyIsICZhZGRyX29iaiwgJmxl bmd0aF9vYmopKQotKyAgICByZXR1cm4gTlVMTDsKLSsKLSsgIFRSWV9DQVRDSCAoZXhjZXB0LCBS RVRVUk5fTUFTS19BTEwpCi0rICAgIHsKLSsgICAgICBpZiAoIWdldF9hZGRyX2Zyb21fcHl0aG9u IChhZGRyX29iaiwgJmFkZHIpCi0rCSAgfHwgIWdldF9hZGRyX2Zyb21fcHl0aG9uIChsZW5ndGhf b2JqLCAmbGVuZ3RoKSkKLSsJewotKwkgIGVycm9yID0gMTsKLSsJICBicmVhazsKLSsJfQotKwot KyAgICAgIGJ1ZmZlciA9IHhtYWxsb2MgKGxlbmd0aCk7Ci0rICAgICAgY2xlYW51cHMgPSBtYWtl X2NsZWFudXAgKHhmcmVlLCBidWZmZXIpOwotKwotKyAgICAgIHJlYWRfbWVtb3J5IChhZGRyLCBi dWZmZXIsIGxlbmd0aCk7Ci0rICAgIH0KLSsgIEdEQl9QWV9IQU5ETEVfRVhDRVBUSU9OIChleGNl cHQpOwotKwotKyAgaWYgKGVycm9yKQotKyAgICByZXR1cm4gTlVMTDsKLSsKLSsgIGRpc2NhcmRf Y2xlYW51cHMgKGNsZWFudXBzKTsKLSsKLSsgIG1lbWJ1Zl9vYmogPSBQeU9iamVjdF9OZXcgKG1l bWJ1Zl9vYmplY3QsICZtZW1idWZfb2JqZWN0X3R5cGUpOwotKyAgaWYgKG1lbWJ1Zl9vYmogPT0g TlVMTCkKLSsgICAgewotKyAgICAgIHhmcmVlIChidWZmZXIpOwotKyAgICAgIFB5RXJyX1NldFN0 cmluZyAoUHlFeGNfTWVtb3J5RXJyb3IsCi0rCQkgICAgICAgIkNvdWxkIG5vdCBhbGxvY2F0ZSBt ZW1vcnkgYnVmZmVyIG9iamVjdC4iKTsKLSsgICAgICByZXR1cm4gTlVMTDsKLSsgICAgfQotKwot KyAgbWVtYnVmX29iai0+YnVmZmVyID0gYnVmZmVyOwotKyAgbWVtYnVmX29iai0+YWRkciA9IGFk ZHI7Ci0rICBtZW1idWZfb2JqLT5sZW5ndGggPSBsZW5ndGg7Ci0rCi0rICByZXR1cm4gUHlCdWZm ZXJfRnJvbVJlYWRXcml0ZU9iamVjdCAoKFB5T2JqZWN0ICopIG1lbWJ1Zl9vYmosIDAsCi0rCQkJ CSAgICAgICBQeV9FTkRfT0ZfQlVGRkVSKTsKLSt9Ci0rCi0rLyogSW1wbGVtZW50YXRpb24gb2Yg Z2RiLndyaXRlX21lbW9yeSAoYWRkcmVzcywgYnVmZmVyIFssIGxlbmd0aF0pLgotKyAgIFdyaXRl cyB0aGUgY29udGVudHMgb2YgQlVGRkVSIChhIFB5dGhvbiBvYmplY3Qgc3VwcG9ydGluZyB0aGUg cmVhZCBidWZmZXIKLSsgICBwcm90b2NvbCkgYXQgQUREUkVTUyBpbiB0aGUgaW5mZXJpb3IncyBt ZW1vcnkuICBXcml0ZSBMRU5HVEggYnl0ZXMgZnJvbQotKyAgIEJVRkZFUiwgb3IgaXRzIGVudGly ZSBjb250ZW50cyBpZiB0aGUgYXJndW1lbnQgaXMgbm90IHByb3ZpZGVkLiAgVGhlCi0rICAgZnVu Y3Rpb24gcmV0dXJucyBub3RoaW5nLiAgKi8KLSsKLStQeU9iamVjdCAqCi0rZ2RicHlfd3JpdGVf bWVtb3J5IChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi0rewotKyAgaW50IGJ1Zl9s ZW4sIGVycm9yID0gMDsKLSsgIGNvbnN0IGNoYXIgKmJ1ZmZlcjsKLSsgIENPUkVfQUREUiBhZGRy LCBsZW5ndGg7Ci0rICBQeU9iamVjdCAqYWRkcl9vYmosICpsZW5ndGhfb2JqID0gTlVMTDsKLSsg IHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsKLSsKLSsgIGlmICghIFB5QXJn X1BhcnNlVHVwbGUgKGFyZ3MsICJPcyN8TyIsICZhZGRyX29iaiwgJmJ1ZmZlciwgJmJ1Zl9sZW4s Ci0rCQkJICAmbGVuZ3RoX29iaikpCi0rICAgIHJldHVybiBOVUxMOwotKwotKyAgVFJZX0NBVENI IChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKLSsgICAgewotKyAgICAgIGlmICghZ2V0X2FkZHJf ZnJvbV9weXRob24gKGFkZHJfb2JqLCAmYWRkcikpCi0rCXsKLSsJICBlcnJvciA9IDE7Ci0rCSAg YnJlYWs7Ci0rCX0KLSsgICAgICAKLSsgICAgICBpZiAoIWxlbmd0aF9vYmopCi0rCWxlbmd0aCA9 IGJ1Zl9sZW47Ci0rICAgICAgZWxzZSBpZiAoIWdldF9hZGRyX2Zyb21fcHl0aG9uIChsZW5ndGhf b2JqLCAmbGVuZ3RoKSkKLSsJewotKwkgIGVycm9yID0gMTsKLSsJICBicmVhazsKLSsJfQotKwot KyAgICAgIHdyaXRlX21lbW9yeSAoYWRkciwgYnVmZmVyLCBsZW5ndGgpOwotKyAgICB9Ci0rICBH REJfUFlfSEFORExFX0VYQ0VQVElPTiAoZXhjZXB0KTsKLSsKLSsgIGlmIChlcnJvcikKLSsgICAg cmV0dXJuIE5VTEw7Ci0rCi0rICBQeV9SRVRVUk5fTk9ORTsKLSt9Ci0rCi0rLyogRGVzdHJ1Y3Rv ciBvZiBNZW1idWYgb2JqZWN0cy4gICovCi0rCi0rc3RhdGljIHZvaWQKLSttYnB5X2RlYWxsb2Mg KFB5T2JqZWN0ICpzZWxmKQotK3sKLSsgIHhmcmVlICgoKG1lbWJ1Zl9vYmplY3QgKikgc2VsZikt PmJ1ZmZlcik7Ci0rICBzZWxmLT5vYl90eXBlLT50cF9mcmVlIChzZWxmKTsKLSt9Ci0rCi0rLyog UmV0dXJuIGEgZGVzY3JpcHRpb24gb2YgdGhlIE1lbWJ1ZiBvYmplY3QuICAqLwotKwotK3N0YXRp YyBQeU9iamVjdCAqCi0rbWJweV9zdHIgKFB5T2JqZWN0ICpzZWxmKQotK3sKLSsgIG1lbWJ1Zl9v YmplY3QgKm1lbWJ1Zl9vYmogPSAobWVtYnVmX29iamVjdCAqKSBzZWxmOwotKwotKyAgcmV0dXJu IFB5U3RyaW5nX0Zyb21Gb3JtYXQgKCJtZW1vcnkgYnVmZmVyIGZvciBhZGRyZXNzICVzLCAlcyBi eXRlcyBsb25nIiwKLSsJCQkgICAgICBwYWRkcmVzcyAobWVtYnVmX29iai0+YWRkciksCi0rCQkJ ICAgICAgcHVsb25nZXN0IChtZW1idWZfb2JqLT5sZW5ndGgpKTsKLSt9Ci0rCi0rc3RhdGljIFB5 X3NzaXplX3QKLStnZXRfcmVhZF9idWZmZXIgKFB5T2JqZWN0ICpzZWxmLCBQeV9zc2l6ZV90IHNl Z21lbnQsIHZvaWQgKipwdHJwdHIpCi0rewotKyAgbWVtYnVmX29iamVjdCAqbWVtYnVmX29iaiA9 IChtZW1idWZfb2JqZWN0ICopIHNlbGY7Ci0rCi0rICBpZiAoc2VnbWVudCkKLSsgICAgewotKyAg ICAgIFB5RXJyX1NldFN0cmluZyAoUHlFeGNfU3lzdGVtRXJyb3IsCi0rCQkgICAgICAgIlRoZSBt ZW1vcnkgYnVmZmVyIHN1cHBvcnRzIG9ubHkgb25lIHNlZ21lbnQuIik7Ci0rICAgICAgcmV0dXJu IC0xOwotKyAgICB9Ci0rCi0rICAqcHRycHRyID0gbWVtYnVmX29iai0+YnVmZmVyOwotKwotKyAg cmV0dXJuIG1lbWJ1Zl9vYmotPmxlbmd0aDsKLSt9Ci0rCi0rc3RhdGljIFB5X3NzaXplX3QKLStn ZXRfd3JpdGVfYnVmZmVyIChQeU9iamVjdCAqc2VsZiwgUHlfc3NpemVfdCBzZWdtZW50LCB2b2lk ICoqcHRycHRyKQotK3sKLSsgIHJldHVybiBnZXRfcmVhZF9idWZmZXIgKHNlbGYsIHNlZ21lbnQs IHB0cnB0cik7Ci0rfQotKwotK3N0YXRpYyBQeV9zc2l6ZV90Ci0rZ2V0X3NlZ19jb3VudCAoUHlP YmplY3QgKnNlbGYsIFB5X3NzaXplX3QgKmxlbnApCi0rewotKyAgaWYgKGxlbnApCi0rICAgICps ZW5wID0gKChtZW1idWZfb2JqZWN0ICopIHNlbGYpLT5sZW5ndGg7Ci0rCi0rICByZXR1cm4gMTsK LSt9Ci0rCi0rc3RhdGljIFB5X3NzaXplX3QKLStnZXRfY2hhcl9idWZmZXIgKFB5T2JqZWN0ICpz ZWxmLCBQeV9zc2l6ZV90IHNlZ21lbnQsIGNoYXIgKipwdHJwdHIpCi0rewotKyAgdm9pZCAqcHRy ID0gTlVMTDsKLSsgIFB5X3NzaXplX3QgcmV0OwotKwotKyAgcmV0ID0gZ2V0X3JlYWRfYnVmZmVy IChzZWxmLCBzZWdtZW50LCAmcHRyKTsKLSsgICpwdHJwdHIgPSAoY2hhciAqKSBwdHI7Ci0rCi0r ICByZXR1cm4gcmV0OwotK30KLSsKLSsvKiBQeXRob24gZG9lc24ndCBwcm92aWRlIGEgZGVjZW50 IHdheSB0byBnZXQgY29tcGF0aWJpbGl0eSBoZXJlLiAgKi8KLSsjaWYgSEFWRV9MSUJQWVRIT04y XzQKLSsjZGVmaW5lIENIQVJCVUZGRVJQUk9DX05BTUUgZ2V0Y2hhcmJ1ZmZlcnByb2MKLSsjZWxz ZQotKyNkZWZpbmUgQ0hBUkJVRkZFUlBST0NfTkFNRSBjaGFyYnVmZmVycHJvYwotKyNlbmRpZgot KwotK3N0YXRpYyBQeUJ1ZmZlclByb2NzIGJ1ZmZlcl9wcm9jcyA9IHsKLSsgIGdldF9yZWFkX2J1 ZmZlciwKLSsgIGdldF93cml0ZV9idWZmZXIsCi0rICBnZXRfc2VnX2NvdW50LAotKyAgLyogVGhl IGNhc3QgaGVyZSB3b3JrcyBhcm91bmQgYSBkaWZmZXJlbmNlIGJldHdlZW4gUHl0aG9uIDIuNCBh bmQKLSsgICAgIFB5dGhvbiAyLjUuICAqLwotKyAgKENIQVJCVUZGRVJQUk9DX05BTUUpIGdldF9j aGFyX2J1ZmZlcgotK307Ci0rCi0rc3RhdGljIFB5VHlwZU9iamVjdCBtZW1idWZfb2JqZWN0X3R5 cGUgPSB7Ci0rICBQeU9iamVjdF9IRUFEX0lOSVQgKE5VTEwpCi0rICAwLAkJCQkgIC8qb2Jfc2l6 ZSovCi0rICAiZ2RiLk1lbWJ1ZiIsCQkJICAvKnRwX25hbWUqLwotKyAgc2l6ZW9mIChtZW1idWZf b2JqZWN0KSwJICAvKnRwX2Jhc2ljc2l6ZSovCi0rICAwLAkJCQkgIC8qdHBfaXRlbXNpemUqLwot KyAgbWJweV9kZWFsbG9jLAkJCSAgLyp0cF9kZWFsbG9jKi8KLSsgIDAsCQkJCSAgLyp0cF9wcmlu dCovCi0rICAwLAkJCQkgIC8qdHBfZ2V0YXR0ciovCi0rICAwLAkJCQkgIC8qdHBfc2V0YXR0ciov Ci0rICAwLAkJCQkgIC8qdHBfY29tcGFyZSovCi0rICAwLAkJCQkgIC8qdHBfcmVwciovCi0rICAw LAkJCQkgIC8qdHBfYXNfbnVtYmVyKi8KLSsgIDAsCQkJCSAgLyp0cF9hc19zZXF1ZW5jZSovCi0r ICAwLAkJCQkgIC8qdHBfYXNfbWFwcGluZyovCi0rICAwLAkJCQkgIC8qdHBfaGFzaCAqLwotKyAg MCwJCQkJICAvKnRwX2NhbGwqLwotKyAgbWJweV9zdHIsCQkJICAvKnRwX3N0ciovCi0rICAwLAkJ CQkgIC8qdHBfZ2V0YXR0cm8qLwotKyAgMCwJCQkJICAvKnRwX3NldGF0dHJvKi8KLSsgICZidWZm ZXJfcHJvY3MsCQkgIC8qdHBfYXNfYnVmZmVyKi8KLSsgIFB5X1RQRkxBR1NfREVGQVVMVCwJCSAg Lyp0cF9mbGFncyovCi0rICAiR0RCIG1lbW9yeSBidWZmZXIgb2JqZWN0IiwgCSAgLyp0cF9kb2Mq LwotKyAgMCwJCQkJICAvKiB0cF90cmF2ZXJzZSAqLwotKyAgMCwJCQkJICAvKiB0cF9jbGVhciAq LwotKyAgMCwJCQkJICAvKiB0cF9yaWNoY29tcGFyZSAqLwotKyAgMCwJCQkJICAvKiB0cF93ZWFr bGlzdG9mZnNldCAqLwotKyAgMCwJCQkJICAvKiB0cF9pdGVyICovCi0rICAwLAkJCQkgIC8qIHRw X2l0ZXJuZXh0ICovCi0rICAwLAkJCQkgIC8qIHRwX21ldGhvZHMgKi8KLSsgIDAsCQkJCSAgLyog dHBfbWVtYmVycyAqLwotKyAgMCwJCQkJICAvKiB0cF9nZXRzZXQgKi8KLSsgIDAsCQkJCSAgLyog dHBfYmFzZSAqLwotKyAgMCwJCQkJICAvKiB0cF9kaWN0ICovCi0rICAwLAkJCQkgIC8qIHRwX2Rl c2NyX2dldCAqLwotKyAgMCwJCQkJICAvKiB0cF9kZXNjcl9zZXQgKi8KLSsgIDAsCQkJCSAgLyog dHBfZGljdG9mZnNldCAqLwotKyAgMCwJCQkJICAvKiB0cF9pbml0ICovCi0rICAwLAkJCQkgIC8q IHRwX2FsbG9jICovCi0rICBQeVR5cGVfR2VuZXJpY05ldwkJICAvKiB0cF9uZXcgKi8KLSt9Owot KwotK3ZvaWQKLStnZGJweV9pbml0aWFsaXplX21lbWJ1ZiAodm9pZCkKLSt7Ci0rICBpZiAoUHlU eXBlX1JlYWR5ICgmbWVtYnVmX29iamVjdF90eXBlKSA8IDApCi0rICAgIHJldHVybjsKLSsKLSsg IFB5X0lOQ1JFRiAoJm1lbWJ1Zl9vYmplY3RfdHlwZSk7Ci0rICBQeU1vZHVsZV9BZGRPYmplY3Qg KGdkYl9tb2R1bGUsICJNZW1idWYiLCAoUHlPYmplY3QgKikgJm1lbWJ1Zl9vYmplY3RfdHlwZSk7 Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYyBiL2dkYi9weXRo b24vcHktcHJldHR5cHJpbnQuYwotaW5kZXggNzUzMmFhNS4uODVmMzk0MCAxMDA2NDQKLS0tLSBh L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwotKysrIGIvZ2RiL3B5dGhvbi9weS1wcmV0dHlw cmludC5jCi1AQCAtMjI3LDEwICsyMjcsMTAgQEAgcHJldHR5X3ByaW50X29uZV92YWx1ZSAoUHlP YmplY3QgKnByaW50ZXIsIHN0cnVjdCB2YWx1ZSAqKm91dF92YWx1ZSkKLSAJICAgICAgJiYgcmVz dWx0ICE9IFB5X05vbmUpCi0gCSAgICB7Ci0gCSAgICAgICpvdXRfdmFsdWUgPSBjb252ZXJ0X3Zh bHVlX2Zyb21fcHl0aG9uIChyZXN1bHQpOwotLQkgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQgKCkp Ci0tCQkqb3V0X3ZhbHVlID0gTlVMTDsKLS0JICAgICAgUHlfREVDUkVGIChyZXN1bHQpOwotLQkg ICAgICByZXN1bHQgPSBOVUxMOwotKyAJICAgICAgaWYgKFB5RXJyX09jY3VycmVkICgpKQotKyAJ CSpvdXRfdmFsdWUgPSBOVUxMOwotKyAJICAgICAgUHlfREVDUkVGIChyZXN1bHQpOwotKyAJICAg ICAgcmVzdWx0ID0gTlVMTDsKLSAJICAgIH0KLSAJfQotICAgICB9Ci1AQCAtNzYzLDE0ICs3NjMs NyBAQCBnZGJweV9nZXRfdmFyb2JqX3ByZXR0eV9wcmludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVl KQotIHsKLSAgIFB5T2JqZWN0ICp2YWxfb2JqOwotICAgUHlPYmplY3QgKnByZXR0eV9wcmludGVy ID0gTlVMTDsKLS0gIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsKLSAKLS0g IFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCi0tICAgIHsKLS0gICAgICB2YWx1 ZSA9IHZhbHVlX2NvcHkgKHZhbHVlKTsKLS0gICAgfQotLSAgR0RCX1BZX0hBTkRMRV9FWENFUFRJ T04gKGV4Y2VwdCk7Ci0tICAKLSAgIHZhbF9vYmogPSB2YWx1ZV90b192YWx1ZV9vYmplY3QgKHZh bHVlKTsKLSAgIGlmICghIHZhbF9vYmopCi0gICAgIHJldHVybiBOVUxMOwogZGlmZiAtLWdpdCBh L2dkYi9weXRob24vcHktdHlwZS5jIGIvZ2RiL3B5dGhvbi9weS10eXBlLmMKIGluZGV4IDlhNmIw NzcuLjY1NmQzYTEgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5LXR5cGUuYwpAQCAtNzU5Myw4 MSArNzI4NSw2IEBAIGluZGV4IDFhYTk0NDMuLjc4NmM0NWEgMTAwNjQ0CiAgfQogIAogIAwKLWRp ZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oIGIvZ2RiL3B5dGhvbi9weXRo b24taW50ZXJuYWwuaAotaW5kZXggODBkMDc2My4uMDA0MDQwMyAxMDA2NDQKLS0tLSBhL2dkYi9w eXRob24vcHl0aG9uLWludGVybmFsLmgKLSsrKyBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFs LmgKLUBAIC04OCwxMCArODgsMTEgQEAgc3RydWN0IGxhbmd1YWdlX2RlZm47Ci0gc3RydWN0IHBy b2dyYW1fc3BhY2U7Ci0gCi0gZXh0ZXJuIFB5T2JqZWN0ICpnZGJfbW9kdWxlOwotLWV4dGVybiBQ eVR5cGVPYmplY3QgdmFsdWVfb2JqZWN0X3R5cGU7Ci0gZXh0ZXJuIFB5VHlwZU9iamVjdCBibG9j a19vYmplY3RfdHlwZTsKLStleHRlcm4gUHlUeXBlT2JqZWN0IHZhbHVlX29iamVjdF90eXBlOwot IGV4dGVybiBQeVR5cGVPYmplY3Qgc3ltYm9sX29iamVjdF90eXBlOwotIAotKy8qIFVzZWQgaW4g cHl0aG9uLWluZmVyaW9yLmMuICAqLwotIHR5cGVkZWYgc3RydWN0Ci0gewotICAgUHlPYmplY3Rf SEVBRAotQEAgLTEzMyw2ICsxMzQsMTAgQEAgUHlPYmplY3QgKmJsb2NrX3RvX2Jsb2NrX29iamVj dCAoc3RydWN0IGJsb2NrICpibG9jaywgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpOwotIFB5T2Jq ZWN0ICp2YWx1ZV90b192YWx1ZV9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqdik7Ci0gUHlPYmplY3Qg KnR5cGVfdG9fdHlwZV9vYmplY3QgKHN0cnVjdCB0eXBlICopOwotIFB5T2JqZWN0ICpmcmFtZV9p bmZvX3RvX2ZyYW1lX29iamVjdCAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKTsKLStQeU9iamVj dCAqZnJhbWVfaW5mb190b19mcmFtZV9vYmplY3QgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSk7 Ci0rdGhyZWFkX29iamVjdCAqY3JlYXRlX3RocmVhZF9vYmplY3QgKHN0cnVjdCB0aHJlYWRfaW5m byAqdHApOwotK3RocmVhZF9vYmplY3QgKmZpbmRfdGhyZWFkX29iamVjdCAocHRpZF90IHB0aWQp OwotK1B5T2JqZWN0ICpmaW5kX2luZmVyaW9yX29iamVjdCAoaW50IHBpZCk7Ci0gCi0gUHlPYmpl Y3QgKnBzcGFjZV90b19wc3BhY2Vfb2JqZWN0IChzdHJ1Y3QgcHJvZ3JhbV9zcGFjZSAqKTsKLSBQ eU9iamVjdCAqcHNweV9nZXRfcHJpbnRlcnMgKFB5T2JqZWN0ICosIHZvaWQgKik7Ci1AQCAtMTUz LDcgKzE1OCw5IEBAIHN0cnVjdCBzeW10YWIgKnN5bXRhYl9vYmplY3RfdG9fc3ltdGFiIChQeU9i amVjdCAqb2JqKTsKLSBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lICpzYWxfb2JqZWN0X3RvX3N5bXRh Yl9hbmRfbGluZSAoUHlPYmplY3QgKm9iaik7Ci0gCi0gdm9pZCBnZGJweV9pbml0aWFsaXplX2F1 dG9fbG9hZCAodm9pZCk7Ci0rCi0gdm9pZCBnZGJweV9pbml0aWFsaXplX3ZhbHVlcyAodm9pZCk7 Ci0rdm9pZCBnZGJweV9pbml0aWFsaXplX2JyZWFrcG9pbnRzICh2b2lkKTsKLSB2b2lkIGdkYnB5 X2luaXRpYWxpemVfZnJhbWVzICh2b2lkKTsKLSB2b2lkIGdkYnB5X2luaXRpYWxpemVfc3ltdGFi cyAodm9pZCk7Ci0gdm9pZCBnZGJweV9pbml0aWFsaXplX2NvbW1hbmRzICh2b2lkKTsKLUBAIC0x NjEsNiArMTY4LDcgQEAgdm9pZCBnZGJweV9pbml0aWFsaXplX3N5bWJvbHMgKHZvaWQpOwotIHZv aWQgZ2RicHlfaW5pdGlhbGl6ZV9zeW10YWJzICh2b2lkKTsKLSB2b2lkIGdkYnB5X2luaXRpYWxp emVfYmxvY2tzICh2b2lkKTsKLSB2b2lkIGdkYnB5X2luaXRpYWxpemVfdHlwZXMgKHZvaWQpOwot K3ZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9ibG9ja3MgKHZvaWQpOwotIHZvaWQgZ2RicHlfaW5pdGlh bGl6ZV9mdW5jdGlvbnMgKHZvaWQpOwotIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9wc3BhY2UgKHZv aWQpOwotIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9vYmpmaWxlICh2b2lkKTsKLUBAIC0xNzgsNiAr MTg2LDEyIEBAIHN0cnVjdCBjbGVhbnVwICplbnN1cmVfcHl0aG9uX2VudiAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsCi0gZXh0ZXJuIHN0cnVjdCBnZGJhcmNoICpweXRob25fZ2RiYXJjaDsKLSBl eHRlcm4gY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKnB5dGhvbl9sYW5ndWFnZTsKLSAKLStj aGFyICpnZGJweV9wYXJzZV9jb21tYW5kX25hbWUgKGNoYXIgKnRleHQsCi0rCQkJCXN0cnVjdCBj bWRfbGlzdF9lbGVtZW50ICoqKmJhc2VfbGlzdCwKLSsJCQkJc3RydWN0IGNtZF9saXN0X2VsZW1l bnQgKipzdGFydF9saXN0KTsKLSsKLStQeU9iamVjdCAqZ2RicHlfcGFyYW1ldGVyX3ZhbHVlIChl bnVtIHZhcl90eXBlcywgdm9pZCAqKTsKLSsKLSAvKiBVc2UgdGhpcyBhZnRlciBhIFRSWV9FWENF UFQgdG8gdGhyb3cgdGhlIGFwcHJvcHJpYXRlIFB5dGhvbgotICAgIGV4Y2VwdGlvbi4gICovCi0g I2RlZmluZSBHREJfUFlfSEFORExFX0VYQ0VQVElPTihFeGNlcHRpb24pCQkJCVwKLUBAIC0yMjUs MTMgKzIzOSwxNCBAQCBQeU9iamVjdCAqYXBwbHlfdmFyb2JqX3ByZXR0eV9wcmludGVyIChQeU9i amVjdCAqcHJpbnRfb2JqLAotIAkJCQkgICAgICAgc3RydWN0IHZhbHVlICoqcmVwbGFjZW1lbnQs Ci0gCQkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKLSBQeU9iamVjdCAqZ2RicHlf Z2V0X3Zhcm9ial9wcmV0dHlfcHJpbnRlciAoc3RydWN0IHZhbHVlICp2YWx1ZSk7Ci0rUHlPYmpl Y3QgKmdkYnB5X2luc3RhbnRpYXRlX3ByaW50ZXIgKFB5T2JqZWN0ICpjb25zLCBQeU9iamVjdCAq dmFsdWUpOwotIGNoYXIgKmdkYnB5X2dldF9kaXNwbGF5X2hpbnQgKFB5T2JqZWN0ICpwcmludGVy KTsKLSBQeU9iamVjdCAqZ2RicHlfZGVmYXVsdF92aXN1YWxpemVyIChQeU9iamVjdCAqc2VsZiwg UHlPYmplY3QgKmFyZ3MpOwotIAotLWV4dGVybiBQeU9iamVjdCAqZ2RicHlfZG9jX2NzdDsKLSBl eHRlcm4gUHlPYmplY3QgKmdkYnB5X2NoaWxkcmVuX2NzdDsKLSBleHRlcm4gUHlPYmplY3QgKmdk YnB5X3RvX3N0cmluZ19jc3Q7Ci0gZXh0ZXJuIFB5T2JqZWN0ICpnZGJweV9kaXNwbGF5X2hpbnRf Y3N0OwotK2V4dGVybiBQeU9iamVjdCAqZ2RicHlfZG9jX2NzdDsKLSBleHRlcm4gUHlPYmplY3Qg KmdkYnB5X2VuYWJsZWRfY3N0OwotIAotIC8qIEV4Y2VwdGlvbiB0eXBlcy4gICovCiBkaWZmIC0t Z2l0IGEvZ2RiL3B5dGhvbi9weXRob24uYyBiL2dkYi9weXRob24vcHl0aG9uLmMKIGluZGV4IDM3 NTA0MmMuLmI2YWY2NDUgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi5jCkBAIC03NzYx LDcgKzczNzgsNyBAQCBpbmRleCA1OGQ5N2ZjLi45M2Q1NmVmIDEwMDY0NAogIAkJCSAgICAgIGlu dCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAogIAkJCSAgICAgIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi1zdnI0 LmMgYi9nZGIvc29saWItc3ZyNC5jCi1pbmRleCBkNDVjZDkyLi5mNjk1NWU5IDEwMDY0NAoraW5k ZXggNDMyZGE5OS4uNzhjNmIxYyAxMDA2NDQKIC0tLSBhL2dkYi9zb2xpYi1zdnI0LmMKICsrKyBi L2dkYi9zb2xpYi1zdnI0LmMKIEBAIC0xMjc2LDcgKzEyNzYsOCBAQCBzdnI0X2luX2R5bnN5bV9y ZXNvbHZlX2NvZGUgKENPUkVfQUREUiBwYykKQEAgLTc3NzUsNyArNzM5Miw3IEBAIGluZGV4IGQ0 NWNkOTIuLmY2OTU1ZTkgMTAwNjQ0CiAgCiAgLyogR2l2ZW4gYW4gZXhlY3V0YWJsZSdzIEFCRkQg YW5kIHRhcmdldCwgY29tcHV0ZSB0aGUgZW50cnktcG9pbnQKIGRpZmYgLS1naXQgYS9nZGIvc3Rh Y2suYyBiL2dkYi9zdGFjay5jCi1pbmRleCA0ZmM2MzRmLi5mNmRmN2VlIDEwMDY0NAoraW5kZXgg NmU1OWNkMC4uMGVhY2FjOSAxMDA2NDQKIC0tLSBhL2dkYi9zdGFjay5jCiArKysgYi9nZGIvc3Rh Y2suYwogQEAgLTM2Niw2ICszNjYsNyBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9s ICpmdW5jLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCkBAIC03ODAxLDcgKzc0MTgsNyBAQCBp bmRleCA0ZmM2MzRmLi5mNmRmN2VlIDEwMDY0NAogIAkgICAgICAgIH0KICAJICAgICAgZWxzZQog ZGlmZiAtLWdpdCBhL2dkYi9zeW1taXNjLmMgYi9nZGIvc3ltbWlzYy5jCi1pbmRleCA3ZjJkMzhh Li43ZDM1ODllIDEwMDY0NAoraW5kZXggNGJlODEwNi4uMDgxYjUzMiAxMDA2NDQKIC0tLSBhL2dk Yi9zeW1taXNjLmMKICsrKyBiL2dkYi9zeW1taXNjLmMKIEBAIC0yNjQsNiArMjY0LDkgQEAgZHVt cF9tc3ltYm9scyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCB1aV9maWxlICpvdXRm aWxlKQpAQCAtNzgxNSwxMCArNzQzMiwxMCBAQCBpbmRleCA3ZjJkMzhhLi43ZDM1ODllIDEwMDY0 NAogIAkgIG1zX3R5cGUgPSAnUyc7CiAgCSAgYnJlYWs7CiBkaWZmIC0tZ2l0IGEvZ2RiL3N5bXRh Yi5jIGIvZ2RiL3N5bXRhYi5jCi1pbmRleCBiZGYzNGQ2Li5mZTJkYzRjIDEwMDY0NAoraW5kZXgg Njg2NjZkYS4uYWE0NTA0MiAxMDA2NDQKIC0tLSBhL2dkYi9zeW10YWIuYwogKysrIGIvZ2RiL3N5 bXRhYi5jCi1AQCAtMzAwMCw3ICszMDAwLDcgQEAgc2VhcmNoX3N5bWJvbHMgKGNoYXIgKnJlZ2V4 cCwgZG9tYWluX2VudW0ga2luZCwgaW50IG5maWxlcywgY2hhciAqZmlsZXNbXSwKK0BAIC0zMDAx LDcgKzMwMDEsNyBAQCBzZWFyY2hfc3ltYm9scyAoY2hhciAqcmVnZXhwLCBkb21haW5fZW51bSBr aW5kLCBpbnQgbmZpbGVzLCBjaGFyICpmaWxlc1tdLAogICAgc3RhdGljIGNvbnN0IGVudW0gbWlu aW1hbF9zeW1ib2xfdHlwZSB0eXBlczNbXQogICAgICA9IHttc3RfZmlsZV9kYXRhLCBtc3Rfc29s aWJfdHJhbXBvbGluZSwgbXN0X2FicywgbXN0X3Vua25vd259OwogICAgc3RhdGljIGNvbnN0IGVu dW0gbWluaW1hbF9zeW1ib2xfdHlwZSB0eXBlczRbXQpAQCAtNzgyOCw3ICs3NDQ1LDcgQEAgaW5k ZXggYmRmMzRkNi4uZmUyZGM0YyAxMDA2NDQKICAgIGVudW0gbWluaW1hbF9zeW1ib2xfdHlwZSBv dXJ0eXBlMjsKICAgIGVudW0gbWluaW1hbF9zeW1ib2xfdHlwZSBvdXJ0eXBlMzsKIGRpZmYgLS1n aXQgYS9nZGIvc3ltdGFiLmggYi9nZGIvc3ltdGFiLmgKLWluZGV4IDY4NjRiOTYuLjY1MWJkNjcg MTAwNjQ0CitpbmRleCBlNGVjNGJmLi43NTRkODlkIDEwMDY0NAogLS0tIGEvZ2RiL3N5bXRhYi5o CiArKysgYi9nZGIvc3ltdGFiLmgKIEBAIC0yOTAsNiArMjkwLDkgQEAgZW51bSBtaW5pbWFsX3N5 bWJvbF90eXBlCkBAIC03ODQzLDcgKzc0NjAsNyBAQCBpbmRleCA2ODY0Yjk2Li42NTFiZDY3IDEw MDY0NAogICAgbXN0X2FicywJCQkvKiBHZW5lcmFsbHkgYWJzb2x1dGUgKG5vbnJlbG9jYXRhYmxl KSAqLwogQEAgLTk1NiwxMSArOTU5LDI1IEBAIGV4dGVybiBzdHJ1Y3Qgc3ltYm9sICpmaW5kX3Bj X3NlY3RfZnVuY3Rpb24gKENPUkVfQUREUiwgc3RydWN0IG9ial9zZWN0aW9uICopOwogIAotIC8q IGxvb2t1cCBmdW5jdGlvbiBmcm9tIGFkZHJlc3MsIHJldHVybiBuYW1lLCBzdGFydCBhZGRyIGFu ZCBlbmQgYWRkciAqLworIC8qIGxvb2t1cCBmdW5jdGlvbiBmcm9tIGFkZHJlc3MsIHJldHVybiBu YW1lLCBzdGFydCBhZGRyIGFuZCBlbmQgYWRkci4gICovCiAgCiAtZXh0ZXJuIGludCBmaW5kX3Bj X3BhcnRpYWxfZnVuY3Rpb24gKENPUkVfQUREUiwgY2hhciAqKiwgQ09SRV9BRERSICosCiAtCQkJ CSAgICAgQ09SRV9BRERSICopOwpAQCAtNzg2Niw3ICs3NDgzLDcgQEAgaW5kZXggNjg2NGI5Ni4u NjUxYmQ2NyAxMDA2NDQKICsJCQkJICAgIGNvbnN0IGNoYXIgKmZ1bmN0aW9uX25hbWUsCiArCQkJ CSAgICBDT1JFX0FERFIgZnVuY3Rpb25fYWRkcmVzcyk7CiArCi0gLyogbG9va3VwIHBhcnRpYWwg c3ltYm9sIHRhYmxlIGJ5IGFkZHJlc3MgYW5kIHNlY3Rpb24gKi8KKyAvKiBsb29rdXAgcGFydGlh bCBzeW1ib2wgdGFibGUgYnkgYWRkcmVzcyBhbmQgc2VjdGlvbi4gICovCiAgCiAgZXh0ZXJuIHN0 cnVjdCBzeW10YWIgKmZpbmRfcGNfc2VjdF9zeW10YWJfdmlhX3BhcnRpYWwgKENPUkVfQUREUiwK IEBAIC0xMDM1LDYgKzEwNTIsOCBAQCBleHRlcm4gc3RydWN0IG1pbmltYWxfc3ltYm9sICpsb29r dXBfbWluaW1hbF9zeW1ib2xfYnlfcGNfbmFtZQpAQCAtNzg3OCwyOSArNzQ5NSw2IEBAIGluZGV4 IDY4NjRiOTYuLjY1MWJkNjcgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAq CiAgICAgIGxvb2t1cF9taW5pbWFsX3N5bWJvbF9hbmRfb2JqZmlsZSAoY29uc3QgY2hhciAqLAog IAkJCQkgICAgICAgc3RydWN0IG9iamZpbGUgKiopOwotZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQu aCBiL2dkYi90YXJnZXQuaAotaW5kZXggYzM0NjI1Yy4uZDRmY2JmYyAxMDA2NDQKLS0tLSBhL2dk Yi90YXJnZXQuaAotKysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtMTM3Miw2ICsxMzcyLDE4IEBAIGV4 dGVybiBpbnQgdGFyZ2V0X3NlYXJjaF9tZW1vcnkgKENPUkVfQUREUiBzdGFydF9hZGRyLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMT05HRVNUIHBhdHRlcm5fbGVuLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPUkVfQUREUiAqZm91bmRfYWRkcnApOwot IAotKy8qIFV0aWxpdHkgZnVuY3Rpb25zIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IHNlYXJjaF9tZW1v cnkgaW1wbGVtZW50YXRpb25zLiAgKi8KLSsKLSt2b2lkIGFsbG9jYXRlX3BhdHRlcm5fYnVmZmVy IChjaGFyICoqcGF0dGVybl9idWZwLCBjaGFyICoqcGF0dGVybl9idWZfZW5kLAotKwkJCSAgICAg IFVMT05HRVNUICpwYXR0ZXJuX2J1Zl9zaXplKTsKLSsKLSt2b2lkIGluY3JlYXNlX3BhdHRlcm5f YnVmZmVyIChjaGFyICoqcGF0dGVybl9idWZwLCBjaGFyICoqcGF0dGVybl9idWZfZW5kLAotKwkJ CSAgICAgIFVMT05HRVNUICpwYXR0ZXJuX2J1Zl9zaXplLCBpbnQgdmFsX2J5dGVzKTsKLSsKLStp bnQgc2VhcmNoX21lbW9yeSAoQ09SRV9BRERSICpzdGFydF9hZGRyLCBVTE9OR0VTVCAqc2VhcmNo X3NwYWNlX2xlbiwKLSsJCSAgIGNvbnN0IGNoYXIgKnBhdHRlcm5fYnVmLCBVTE9OR0VTVCBwYXR0 ZXJuX2xlbiwKLSsJCSAgIENPUkVfQUREUiAqZm91bmRfYWRkcik7Ci0rCi0gLyogVHJhY2Vwb2lu dC1yZWxhdGVkIG9wZXJhdGlvbnMuICAqLwotIAotICNkZWZpbmUgdGFyZ2V0X3RyYWNlX2luaXQo KSBcCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50 ZXItZm9vLlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtcG9pbnRlci1mb28u UwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjgzZmFhZjYKQEAgLTEwODc2 LDYgKzEwNDcwLDkyIEBAIGluZGV4IDAwMDAwMDAuLjIyNmRjNWQKICsgIGggPSAnaCcKICsgIGNh bGwgZm9vIChnLCBoKQogK2VuZAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vc3VicmFuZ2UuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi41NTU5OGY5CistLS0gL2Rldi9u dWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAorQEAgLTAs MCArMSw1MSBAQAorKyMgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK2lmIHsgW3NraXBfZm9y dHJhbl90ZXN0c10gfSB7IHJldHVybiAtMSB9CisrCisrc2V0IHRlc3RmaWxlICJzdWJyYW5nZSIK KytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5mOTAKKytpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5n ICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IHtkZWJ1ZyBmNzd9XSB9IHsK KysgICAgcmV0dXJuIC0xCisrfQorKworK2lmICFbcnVudG8gTUFJTl9fXSB7CisrICAgIHBlcnJv ciAiQ291bGRuJ3QgcnVuIHRvIE1BSU5fXyIKKysgICAgY29udGludWUKKyt9CisrCisrIyBEZXBl bmRpbmcgb24gdGhlIGNvbXBpbGVyIHZlcnNpb24gYmVpbmcgdXNlZCwgdGhlIG5hbWUgb2YgdGhl IDQtYnl0ZSBpbnRlZ2VyCisrIyBhbmQgcmVhbCB0eXBlcyBjYW4gYmUgcHJpbnRlZCBkaWZmZXJl bnRseS4gIEZvciBpbnN0YW5jZSwgZ2ZvcnRyYW4tNC4xIHVzZXMKKysjICJpbnQ0IiB3aGVyZWFz IGdmb3J0cmFuLTQuMyB1c2VzICJpbnQoa2luZD00KSIuCisrc2V0IGludDQgIihpbnQ0fGludGVn ZXJcXChraW5kPTRcXCkpIgorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVy ICJicmVhay1zdGF0aWMiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJicmVhay1zdGF0 aWMiICIuKmJyZWFrLXN0YXRpYy4qIgorKworK2dkYl90ZXN0ICJwIGEgKDIsIDI6MykiIHsgPSBc KDIyLCAzMlwpfQorK2dkYl90ZXN0ICJwIGEgKDI6MywgMykiIHsgPSBcKDMyLCAzM1wpfQorK2dk Yl90ZXN0ICJwIGEgKDEsIDI6KSIgeyA9IFwoMjEsIDMxXCl9CisrZ2RiX3Rlc3QgInAgYSAoMiwg OjIpIiB7ID0gXCgxMiwgMjJcKX0KKytnZGJfdGVzdCAicCBhICgzLCAyOjIpIiB7ID0gXCgyM1wp fQorK2dkYl90ZXN0ICJwdHlwZSBhICgzLCAyOjIpIiAiID0gJGludDQgXFwoMjoyXFwpIgorK2dk Yl90ZXN0ICJwIGEgKDQsIDopIiB7ID0gXCgxNCwgMjQsIDM0XCl9CisrZ2RiX3Rlc3QgInAgYSAo OiwgOikiIHsgPSBcKFwoICoxMSwgMTIsIDEzLCAxNFwpIFwoICoyMSwgMjIsIDIzLCAyNFwpIFwo ICozMSwgMzIsIDMzLCAzNFwpICpcKX0KKytnZGJfdGVzdCAicHR5cGUgYSAoOiwgOikiICIgPSAk aW50NCBcXCg0LDNcXCkiCisrZ2RiX3Rlc3QgInAgYSAoOikiICJXcm9uZyBudW1iZXIgb2Ygc3Vi c2NyaXB0cyIKKytnZGJfdGVzdCAicCBhICg6LCA6LCA6KSIgIldyb25nIG51bWJlciBvZiBzdWJz Y3JpcHRzIgorK2dkYl90ZXN0X25vX291dHB1dCB7c2V0ICRhPWF9CisrZGVsZXRlX2JyZWFrcG9p bnRzCisrZ2RiX3VubG9hZAorK2dkYl90ZXN0IHtwICRhICgzLCAyOjIpfSB7ID0gXCgyM1wpfQor ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5mOTAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwLi5mZTMzYzJjCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAorQEAgLTAsMCArMSwyMyBAQAorKyEgQ29weXJp Z2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIQorKyEgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKyshIAorKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrISBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyEgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyEgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyshIAorKyEgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKyshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgorKworK3Byb2dyYW0gdGVzdAorKyAgaW50ZWdlciA6OiBhICg0 LCAzKQorKyAgZG8gMSBpID0gMSwgNAorKyAgZG8gMSBqID0gMSwgMworKyAgICBhIChpLCBqKSA9 IGogKiAxMCArIGkKKysxIGNvbnRpbnVlCisrICB3cml0ZSAoKiwqKSBhICAgICAgICAgICAgICAg ICAhIGJyZWFrLXN0YXRpYworK2VuZAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmdk Yi9zZWxmdGVzdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCiBpbmRl eCAzMGE3MWRkLi40YmI4ZTdkIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3Nl bGZ0ZXN0LmV4cApAQCAtMTE0NTMsMzUgKzExMTMzLDYgQEAgaW5kZXggMDAwMDAwMC4uMjk1NjAy ZAogKyAgcyA6PSAndGVzdCcjMCdzdHJpbmcnOwogKyAgd3JpdGVsbihzKTsgeyBzZXQgYnJlYWtw b2ludCAyIGhlcmUgfQogK2VuZC4KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktY21kLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1jbWQuZXhwCi1pbmRl eCA2NmQzZTUzLi4wZWU1ZjYzIDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LWNtZC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1jbWQuZXhwCi1A QCAtMjAsMjQgKzIwLDYgQEAgaWYgJHRyYWNlbGV2ZWwgdGhlbiB7Ci0gICAgIHN0cmFjZSAkdHJh Y2VsZXZlbAotIH0KLSAKLS0jIFVzYWdlOiBnZGJfcHlfdGVzdF9tdWx0aXBsZSBOQU1FIElOUFVU IFJFU1VMVCB7SU5QVVQgUkVTVUxUfS4uLgotLSMgUnVuIGEgdGVzdCBuYW1lZCBOQU1FLCBjb25z aXN0aW5nIG9mIG11bHRpcGxlIGxpbmVzIG9mIGlucHV0LgotLSMgQWZ0ZXIgZWFjaCBpbnB1dCBs aW5lIElOUFVULCBzZWFyY2ggZm9yIHJlc3VsdCBsaW5lIFJFU1VMVC4KLS0jIFN1Y2NlZWQgaWYg YWxsIHJlc3VsdHMgYXJlIHNlZW47IGZhaWwgb3RoZXJ3aXNlLgotLXByb2MgZ2RiX3B5X3Rlc3Rf bXVsdGlwbGUge25hbWUgYXJnc30gewotLSAgICBnbG9iYWwgZ2RiX3Byb21wdAotLSAgICBmb3Jl YWNoIHtpbnB1dCByZXN1bHR9ICRhcmdzIHsKLS0JaWYge1tnZGJfdGVzdF9tdWx0aXBsZSAkaW5w dXQgIiRuYW1lIC0gJGlucHV0IiB7Ci0tCSAgICAtcmUgIlxbXHJcblxdKigkcmVzdWx0KVxbXHJc blxdKygkZ2RiX3Byb21wdCB8ICo+KSQiIHsKLS0JCXBhc3MgIiRuYW1lIC0gJGlucHV0IgotLQkg ICAgfQotLQl9XX0gewotLQkgICAgcmV0dXJuIDEKLS0JfQotLSAgICB9Ci0tICAgIHJldHVybiAw Ci0tfQotLQotICMgU3RhcnQgd2l0aCBhIGZyZXNoIGdkYi4KLSAKLSBnZGJfZXhpdAogZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCiBpbmRleCBlM2I1NjI5Li4yYTYzZDhkIDEwMDY0 NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cApAQCAtMTE1MDEs NDggKzExMTUyLDYgQEAgaW5kZXggZTNiNTYyOS4uMmE2M2Q4ZCAxMDA2NDQKICBnZGJfdGVzdCAi cHl0aG9uIHByaW50ICdyZXN1bHQgPScsIGdkYi5zZWxlY3RlZF9mcmFtZSAoKSA9PSBmMSIgIiA9 IFRydWUiICJ0ZXN0IGdkYi5zZWxlY3RlZF9mcmFtZSIKICsKICtnZGJfdGVzdCAicHl0aG9uIHBy aW50ICdyZXN1bHQgPScsIGYwLmJsb2NrICgpIiAiPGdkYi5CbG9jayBvYmplY3QgYXQgMHhcW1xb OnhkaWdpdDpcXVxdKz4iICJ0ZXN0IEZyYW1lLmJsb2NrIgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1mdW5jdGlvbi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktZnVuY3Rpb24uZXhwCi1pbmRleCBhNWM4MDI1Li44YTVkY2RhIDEwMDY0NAotLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZ1bmN0aW9uLmV4cAotKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LWZ1bmN0aW9uLmV4cAotQEAgLTIwLDI0ICsyMCw2IEBAIGlmICR0 cmFjZWxldmVsIHRoZW4gewotICAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKLSB9Ci0gCi0tIyBVc2Fn ZTogZ2RiX3B5X3Rlc3RfbXVsdGlwbGUgTkFNRSBJTlBVVCBSRVNVTFQge0lOUFVUIFJFU1VMVH0u Li4KLS0jIFJ1biBhIHRlc3QgbmFtZWQgTkFNRSwgY29uc2lzdGluZyBvZiBtdWx0aXBsZSBsaW5l cyBvZiBpbnB1dC4KLS0jIEFmdGVyIGVhY2ggaW5wdXQgbGluZSBJTlBVVCwgc2VhcmNoIGZvciBy ZXN1bHQgbGluZSBSRVNVTFQuCi0tIyBTdWNjZWVkIGlmIGFsbCByZXN1bHRzIGFyZSBzZWVuOyBm YWlsIG90aGVyd2lzZS4KLS1wcm9jIGdkYl9weV90ZXN0X211bHRpcGxlIHtuYW1lIGFyZ3N9IHsK LS0gICAgZ2xvYmFsIGdkYl9wcm9tcHQKLS0gICAgZm9yZWFjaCB7aW5wdXQgcmVzdWx0fSAkYXJn cyB7Ci0tCWlmIHtbZ2RiX3Rlc3RfbXVsdGlwbGUgJGlucHV0ICIkbmFtZSAtICRpbnB1dCIgewot LQkgICAgLXJlICJcW1xyXG5cXSooJHJlc3VsdClcW1xyXG5cXSsoJGdkYl9wcm9tcHQgfCAqPikk IiB7Ci0tCQlwYXNzICIkbmFtZSAtICRpbnB1dCIKLS0JICAgIH0KLS0JfV19IHsKLS0JICAgIHJl dHVybiAxCi0tCX0KLS0gICAgfQotLSAgICByZXR1cm4gMAotLX0KLS0KLSAjIFN0YXJ0IHdpdGgg YSBmcmVzaCBnZGIuCi0gCi0gZ2RiX2V4aXQKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LXByZXR0eXByaW50LmV4cAotaW5kZXggZTRhNmMzOC4uMDlhYzA2NSAxMDA2NDQKLS0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAKLSsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAKLUBAIC05OSw2ICs5OSw4IEBAIHBy b2MgcnVuX2xhbmdfdGVzdHMge2xhbmd9IHsKLSAKLSAgICAgZ2RiX3Rlc3QgInByaW50IGMiICIg PSBjb250YWluZXIgXCJjb250YWluZXJcIiB3aXRoIDIgZWxlbWVudHMgPSB7JG5sICouMC4gPSAy MywkbmwgKi4xLiA9IDcyJG5sfSIKLSAKLSsgICAgZ2RiX3Rlc3QgInByaW50IG51bGxzdHIiICJS dW50aW1lRXJyb3I6IEVycm9yIHJlYWRpbmcgc3RyaW5nIGZyb20gaW5mZXJpb3IuKiIKLSsKLSAg ICAgZ2RiX3Rlc3QgInByaW50IG5zdHlwZSIgIiA9IHskbmwgKi4wLiA9IDcsJG5sICouMS4gPSA0 MiRubH0iCi0gICAgIGdkYl90ZXN0ICJjb250aW51ZSIgIlByb2dyYW0gZXhpdGVkIG5vcm1hbGx5 XC4iCi0gCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKIGluZGV4IGUwMTJkNTMu LjFiZDllNTMgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUu ZXhwCkBAIC0xMjIyNSwxNyArMTE4MzQsMjEgQEAgaW5kZXggMDAwMDAwMC4uMzFmNzY1NgogK2V4 dGVybiB2b2lkIG1hcmtlciAodm9pZCk7CiArZXh0ZXJuIHZvaWQgZm9ya29mZiAoaW50IG5yKTsK IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9s aWIvZ2RiLmV4cAotaW5kZXggNWEzZjFmYy4uNjI0NjZmOCAxMDA2NDQKK2luZGV4IDVhM2YxZmMu LjQ3MTY2MjYgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiArKysgYi9n ZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi1AQCAtMjgsNiArMjgsNyBAQCBpZiB7JHRvb2wgPT0g IiJ9IHsKLSB9Ci0gCi0gbG9hZF9saWIgbGliZ2xvc3MuZXhwCi0rbG9hZF9saWIgcHl0aG9uLXN1 cHBvcnQuZXhwCi0gCi0gZ2xvYmFsIEdEQgotIAorQEAgLTE0MCw2ICsxNDAsMTEgQEAgcHJvYyBn ZGJfdW5sb2FkIHt9IHsKKyAJCXZlcmJvc2UgIlx0XHRLaWxsaW5nIHByZXZpb3VzIHByb2dyYW0g YmVpbmcgZGVidWdnZWQiCisgCSAgICBleHBfY29udGludWUKKyAJfQorKwktcmUgIkEgcHJvZ3Jh bSBpcyBiZWluZyBkZWJ1Z2dlZCBhbHJlYWR5Li4qQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNo YW5nZSB0aGUgZmlsZS4qeSBvciBuLiAkIlwKKysJICAgIHsgc2VuZF9nZGIgInlcbiIKKysJCXZl cmJvc2UgIlx0XHRVbmxvYWRpbmcgc3ltYm9scyBmb3IgcHJvZ3JhbSBiZWluZyBkZWJ1Z2dlZCIK KysJICAgIGV4cF9jb250aW51ZQorKwl9CisgCS1yZSAiRGlzY2FyZCBzeW1ib2wgdGFibGUgZnJv bSAuKnkgb3Igbi4qJCIgeworIAkgICAgc2VuZF9nZGIgInlcbiIKKyAJICAgIGV4cF9jb250aW51 ZQogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAgYi9nZGIvdGVzdHN1 aXRlL2xpYi9wYXNjYWwuZXhwCiBpbmRleCA4OTFkYTM3Li4yMzZjNWNhIDEwMDY0NAogLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cApAQCAtMTIyNzEsNjcgKzExODg0LDggQEAgaW5k ZXggODkxZGEzNy4uMjM2YzVjYSAxMDA2NDQKICAgICAgfQogICAgICBzZXQgcGFzY2FsX2luaXRf ZG9uZSAxCiAgfSAgIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL3B5dGhvbi1zdXBw b3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL3B5dGhvbi1zdXBwb3J0LmV4cAotbmV3IGZpbGUg bW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmI4ZTk4MzYKLS0tLSAvZGV2L251bGwKLSsrKyBi L2dkYi90ZXN0c3VpdGUvbGliL3B5dGhvbi1zdXBwb3J0LmV4cAotQEAgLTAsMCArMSw1MyBAQAot K2dsb2JhbCBweXRob25fc3VwcG9ydGVkX3NhdmVkCi0rCi0rIyBSZXR1cm4gMSBpZiBQeXRob24g c2NyaXB0aW5nIGlzIHN1cHBvcnRlZCBpbiBHREIsIDAgaWYgbm90LgotK3Byb2MgcHl0aG9uX3N1 cHBvcnRlZCB7IH0gewotKyAgZ2xvYmFsIGdkYl9wcm9tcHQKLSsgIGdsb2JhbCBweXRob25fc3Vw cG9ydGVkX3NhdmVkCi0rCi0rICBpZiBbaW5mbyBleGlzdHMgcHl0aG9uX3N1cHBvcnRlZF9zYXZl ZF0gewotKyAgICAgIHZlcmJvc2UgInB5dGhvbl9zdXBwb3J0ZWQ6ICByZXR1cm5pbmcgc2F2ZWQg JHB5dGhvbl9zdXBwb3J0ZWRfc2F2ZWQiIDIKLSsgICAgICByZXR1cm4gJHB5dGhvbl9zdXBwb3J0 ZWRfc2F2ZWQKLSsgIH0KLSsKLSsgIGdkYl90ZXN0X211bHRpcGxlICJweXRob24gcHJpbnQgJ2hl bGxvLCB3b3JsZCEnIiAidmVyaWZ5IHB5dGhvbiBzdXBwb3J0IiB7Ci0rICAgIC1yZSAibm90IHN1 cHBvcnRlZC4qJGdkYl9wcm9tcHQgJCIJewotKyAgICAgIHJldHVybiBbc2V0IHB5dGhvbl9zdXBw b3J0ZWRfc2F2ZWQgMF0KLSsgICAgfQotKyAgICAtcmUgIiRnZGJfcHJvbXB0ICQiCXsKLSsgICAg ICByZXR1cm4gW3NldCBweXRob25fc3VwcG9ydGVkX3NhdmVkIDFdCi0rICAgIH0KLSsgIH0KLSsK LSsgIHJldHVybiBbc2V0IHB5dGhvbl9zdXBwb3J0ZWRfc2F2ZWQgMF0KLSt9Ci0rCi0rIyBSdW4g YSBjb21tYW5kIGluIEdEQiwgYW5kIHJlcG9ydCBhIGZhaWx1cmUgaWYgYSBQeXRob24gZXhjZXB0 aW9uIGlzIHRocm93bi4KLSsjIElmIHJlcG9ydF9wYXNzIGlzIHRydWUsIHJlcG9ydCBhIHBhc3Mg aWYgbm8gZXhjZXB0aW9uIGlzIHRocm93bi4KLStwcm9jIGdkYl9weV90ZXN0X3NpbGVudF9jbWQg e2NtZCBuYW1lIHJlcG9ydF9wYXNzfSB7Ci0rICBnbG9iYWwgZ2RiX3Byb21wdAotKwotKyAgZ2Ri X3Rlc3RfbXVsdGlwbGUgJGNtZCAkbmFtZSB7Ci0rICAgICAgLXJlICJUcmFjZWJhY2suKiRnZGJf cHJvbXB0ICQiICB7IGZhaWwgJG5hbWUgfQotKyAgICAgIC1yZSAiJGdkYl9wcm9tcHQgJCIJICAg ICAgeyBpZiAkcmVwb3J0X3Bhc3MgeyBwYXNzICRuYW1lIH0gfQotKyAgfQotK30KLSsKLSsjIFVz YWdlOiBnZGJfcHlfdGVzdF9tdWx0aXBsZSBOQU1FIElOUFVUIFJFU1VMVCB7SU5QVVQgUkVTVUxU fS4uLgotKyMgUnVuIGEgdGVzdCBuYW1lZCBOQU1FLCBjb25zaXN0aW5nIG9mIG11bHRpcGxlIGxp bmVzIG9mIGlucHV0LgotKyMgQWZ0ZXIgZWFjaCBpbnB1dCBsaW5lIElOUFVULCBzZWFyY2ggZm9y IHJlc3VsdCBsaW5lIFJFU1VMVC4KLSsjIFN1Y2NlZWQgaWYgYWxsIHJlc3VsdHMgYXJlIHNlZW47 IGZhaWwgb3RoZXJ3aXNlLgotK3Byb2MgZ2RiX3B5X3Rlc3RfbXVsdGlwbGUge25hbWUgYXJnc30g ewotKyAgICBnbG9iYWwgZ2RiX3Byb21wdAotKwotKyAgICBmb3JlYWNoIHtpbnB1dCByZXN1bHR9 ICRhcmdzIHsKLSsJaWYge1tnZGJfdGVzdF9tdWx0aXBsZSAkaW5wdXQgIiRuYW1lIC0gJGlucHV0 IiB7Ci0rCSAgICAtcmUgIlxbXHJcblxdKigkcmVzdWx0KVxbXHJcblxdKygkZ2RiX3Byb21wdCB8 ICo+KSQiIHsKLSsJCXBhc3MgIiRuYW1lIC0gJGlucHV0IgotKwkgICAgfQotKwl9XX0gewotKwkg ICAgcmV0dXJuIDEKLSsJfQotKyAgICB9Ci0rICAgIHJldHVybiAwCi0rfQogZGlmZiAtLWdpdCBh L2dkYi90b3AuYyBiL2dkYi90b3AuYwotaW5kZXggZTBmZWJhNS4uZTg5ODFkZCAxMDA2NDQKK2lu ZGV4IGJiYTFhMmQuLjU1ODJmMzAgMTAwNjQ0CiAtLS0gYS9nZGIvdG9wLmMKICsrKyBiL2dkYi90 b3AuYwogQEAgLTM0Myw2ICszNDMsNyBAQCB2b2lkCkBAIC0xMjM0Myw3ICsxMTg5Nyw3IEBAIGlu ZGV4IGUwZmViYTUuLmU4OTgxZGQgMTAwNjQ0CiAgICAvKiBXaXRoIG11bHRpcGxlIHRocmVhZHMg cnVubmluZyB3aGlsZSB0aGUgb25lIHdlJ3JlIGV4YW1pbmluZyBpcwogICAgICAgc3RvcHBlZCwg dGhlIGRjYWNoZSBjYW4gZ2V0IHN0YWxlIHdpdGhvdXQgdXMgYmVpbmcgYWJsZSB0byBkZXRlY3QK IGRpZmYgLS1naXQgYS9nZGIvdHlwZXByaW50LmMgYi9nZGIvdHlwZXByaW50LmMKLWluZGV4IGEx YzQ0ZjIuLjAzNmQ5MzkgMTAwNjQ0CitpbmRleCAwM2U2MzMyLi5jZTZkMWUwIDEwMDY0NAogLS0t IGEvZ2RiL3R5cGVwcmludC5jCiArKysgYi9nZGIvdHlwZXByaW50LmMKIEBAIC0zNiw2ICszNiw3 IEBACkBAIC0xMjQwMCw3ICsxMTk1NCw3IEBAIGluZGV4IGExYzQ0ZjIuLjAzNmQ5MzkgMTAwNjQ0 CiAgCiAgc3RhdGljIHZvaWQKIGRpZmYgLS1naXQgYS9nZGIvdXRpbHMuYyBiL2dkYi91dGlscy5j Ci1pbmRleCA5ODVmMjE5Li5jY2IwNjhlIDEwMDY0NAoraW5kZXggYzIzYzRkNC4uNjBkNTViNyAx MDA2NDQKIC0tLSBhL2dkYi91dGlscy5jCiArKysgYi9nZGIvdXRpbHMuYwogQEAgLTIyMDYsNiAr MjIwNiwzNiBAQCBzZXRfYmF0Y2hfZmxhZ19hbmRfbWFrZV9jbGVhbnVwX3Jlc3RvcmVfcGFnZV9p bmZvICh2b2lkKQpAQCAtMTI0NDEsODkgKzExOTk1LDIyIEBAIGluZGV4IDk4NWYyMTkuLmNjYjA2 OGUgMTAwNjQ0CiAgCiAgc3RhdGljIHZvaWQKIGRpZmYgLS1naXQgYS9nZGIvdmFsYXJpdGguYyBi L2dkYi92YWxhcml0aC5jCi1pbmRleCAxOGU4OGI3Li45ZjkwYWNiIDEwMDY0NAoraW5kZXggMjY1 NTMyYy4uMWU0MTlkZCAxMDA2NDQKIC0tLSBhL2dkYi92YWxhcml0aC5jCiArKysgYi9nZGIvdmFs YXJpdGguYwotQEAgLTE2NSwxMiArMTY1LDI2IEBAIHZhbHVlX3N1YnNjcmlwdCAoc3RydWN0IHZh bHVlICphcnJheSwgTE9OR0VTVCBpbmRleCkKLSAKLSAgICAgICBnZXRfZGlzY3JldGVfYm91bmRz IChyYW5nZV90eXBlLCAmbG93ZXJib3VuZCwgJnVwcGVyYm91bmQpOwotICAgICAgIGlmIChWQUxV RV9MVkFMIChhcnJheSkgIT0gbHZhbF9tZW1vcnkpCi0tCXJldHVybiB2YWx1ZV9zdWJzY3JpcHRl ZF9ydmFsdWUgKGFycmF5LCBpbmRleCwgbG93ZXJib3VuZCk7Ci0rCXsKLSsJICBpZiAoaW5kZXgg Pj0gbG93ZXJib3VuZCAmJiBpbmRleCA8PSB1cHBlcmJvdW5kKQotKwkgICAgewotKwkgICAgICBD T1JFX0FERFIgZWxlbWVudF9zaXplID0gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHRh cnJheSkpOwotKwkgICAgICBDT1JFX0FERFIgb2Zmc2V0ID0gKGluZGV4IC0gbG93ZXJib3VuZCkg KiBlbGVtZW50X3NpemU7Ci0rCi0rCSAgICAgIHJldHVybiB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFs dWUgKGFycmF5LCBvZmZzZXQpOwotKwkgICAgfQotKwkgIGVycm9yIChfKCJhcnJheSBvciBzdHJp bmcgaW5kZXggb3V0IG9mIHJhbmdlIikpOwotKwl9Ci0gCi0gICAgICAgaWYgKGNfc3R5bGUgPT0g MCkKLSAJewotIAkgIGlmIChpbmRleCA+PSBsb3dlcmJvdW5kICYmIGluZGV4IDw9IHVwcGVyYm91 bmQpCi0tCSAgICByZXR1cm4gdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChhcnJheSwgaW5kZXgs IGxvd2VyYm91bmQpOwotKwkgICAgewotKwkgICAgICBDT1JFX0FERFIgZWxlbWVudF9zaXplID0g VFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHRhcnJheSkpOwotKwkgICAgICBDT1JFX0FE RFIgb2Zmc2V0ID0gKGluZGV4IC0gbG93ZXJib3VuZCkgKiBlbGVtZW50X3NpemU7Ci0rCi0rCSAg ICAgIHJldHVybiB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKGFycmF5LCBvZmZzZXQpOwotKwkg ICAgfQotIAkgIC8qIEVtaXQgd2FybmluZyB1bmxlc3Mgd2UgaGF2ZSBhbiBhcnJheSBvZiB1bmtu b3duIHNpemUuCi0gCSAgICAgQW4gYXJyYXkgb2YgdW5rbm93biBzaXplIGhhcyBsb3dlcmJvdW5k IDAgYW5kIHVwcGVyYm91bmQgLTEuICAqLwotIAkgIGlmICh1cHBlcmJvdW5kID4gLTEpCi1AQCAt MTg5LDM0ICsyMDMsMzcgQEAgdmFsdWVfc3Vic2NyaXB0IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBM T05HRVNUIGluZGV4KQotICAgICBlcnJvciAoXygibm90IGFuIGFycmF5IG9yIHN0cmluZyIpKTsK LSB9Ci0gCi0tLyogUmV0dXJuIHRoZSB2YWx1ZSBvZiBFWFBSW0lEWF0sIGV4cHIgYW4gYWdncmVn YXRlIHJ2YWx1ZQotLSAgIChlZywgYSB2ZWN0b3IgcmVnaXN0ZXIpLiAgVGhpcyByb3V0aW5lIHVz ZWQgdG8gcHJvbW90ZSBmbG9hdHMKLS0gICB0byBkb3VibGVzLCBidXQgbm8gbG9uZ2VyIGRvZXMu ICAqLwotKy8qIFJldHVybiB0aGUgdmFsdWUgb2YgKigodm9pZCAqKSBBUlJBWSArIEVMRU1FTlQp LCBBUlJBWSBhbiBhZ2dyZWdhdGUgcnZhbHVlCi0rICAgKGVnLCBhIHZlY3RvciByZWdpc3Rlciku ICBUaGlzIHJvdXRpbmUgdXNlZCB0byBwcm9tb3RlIGZsb2F0cyB0byBkb3VibGVzLAotKyAgIGJ1 dCBubyBsb25nZXIgZG9lcy4gIE9GRlNFVCBpcyB6ZXJvLWJhc2VkIHdpdGggMCBmb3IgdGhlIGxv d2VybW9zdCBleGlzdGluZwotKyAgIGVsZW1lbnQsIGl0IG11c3QgYmUgZXhwcmVzc2VkIGluIGJ5 dGVzICh0aGVyZWZvcmUgbXVsdGlwbGllZCBieQotKyAgIGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFS R0VUX1RZUEUgKGFycmF5X3R5cGUpKS4gICovCi0gCi0gc3RydWN0IHZhbHVlICoKLS12YWx1ZV9z dWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPTkdFU1QgaW5kZXgsIGlu dCBsb3dlcmJvdW5kKQotK3ZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICph cnJheSwgQ09SRV9BRERSIG9mZnNldCkKLSB7CitAQCAtMTk4LDcgKzE5OCwxMCBAQCB2YWx1ZV9z dWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPTkdFU1QgaW5kZXgsIGlu dCBsb3dlcmJvdW5kKQogICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVm ICh2YWx1ZV90eXBlIChhcnJheSkpOwogICAgc3RydWN0IHR5cGUgKmVsdF90eXBlID0gY2hlY2tf dHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotLSAgdW5zaWduZWQgaW50 IGVsdF9zaXplID0gVFlQRV9MRU5HVEggKGVsdF90eXBlKTsKKyAgIHVuc2lnbmVkIGludCBlbHRf c2l6ZSA9IFRZUEVfTEVOR1RIIChlbHRfdHlwZSk7CiAtICB1bnNpZ25lZCBpbnQgZWx0X29mZnMg PSBlbHRfc2l6ZSAqIGxvbmdlc3RfdG9faW50IChpbmRleCAtIGxvd2VyYm91bmQpOworKyAgdW5z aWduZWQgaW50IGVsdF9zdHJpZGUKKysgICAgPSAoVFlQRV9CWVRFX1NUUklERSAoVFlQRV9JTkRF WF9UWVBFIChhcnJheV90eXBlKSkgPT0gMAorKyAgICAgICA/IGVsdF9zaXplIDogVFlQRV9CWVRF X1NUUklERSAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSkpOworKyAgdW5zaWduZWQgaW50 IGVsdF9vZmZzID0gZWx0X3N0cmlkZSAqIGxvbmdlc3RfdG9faW50IChpbmRleCAtIGxvd2VyYm91 bmQpOwogICAgc3RydWN0IHZhbHVlICp2OwogIAotLSAgaWYgKGluZGV4IDwgbG93ZXJib3VuZCB8 fCAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90eXBlKQotLQkJ CSAgICAgJiYgZWx0X29mZnMgPj0gVFlQRV9MRU5HVEggKGFycmF5X3R5cGUpKSkKLS0gICAgZXJy b3IgKF8oIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQiKSk7Ci0rICAvKiBEbyBub3QgY2hlY2sgVFlQ RV9MRU5HVEggKGFycmF5X3R5cGUpIGFzIHdlIG1heSBoYXZlIGJlZW4gZ2l2ZW4gdGhlCi0rICAg ICBpbm5lcm1vc3QgZGltZW5zaW9uIG9mIGEgbXVsdGktZGltZW5zaW9uYWwgRm9ydHJhbiBhcnJh eSB3aGVyZSBpdHMgbGVuZ3RoCi0rICAgICBpcyBzaG9ydGVyIHRoYW4gdGhlIHBvc3NpYmx5IGFj Y2Vzc2VkIGVsZW1lbnQgb2Zmc2V0LiAgKi8KLSAKLSAgIHYgPSBhbGxvY2F0ZV92YWx1ZSAoZWx0 X3R5cGUpOwotICAgaWYgKFZBTFVFX0xWQUwgKGFycmF5KSA9PSBsdmFsX21lbW9yeSAmJiB2YWx1 ZV9sYXp5IChhcnJheSkpCi0gICAgIHNldF92YWx1ZV9sYXp5ICh2LCAxKTsKLSAgIGVsc2UKLS0g ICAgbWVtY3B5ICh2YWx1ZV9jb250ZW50c193cml0ZWFibGUgKHYpLAotLQkgICAgdmFsdWVfY29u dGVudHMgKGFycmF5KSArIGVsdF9vZmZzLCBlbHRfc2l6ZSk7Ci0rICAgIHsKLSsgICAgICB1bnNp Z25lZCBpbnQgZWx0X3NpemUgPSBUWVBFX0xFTkdUSCAoZWx0X3R5cGUpOwotKyAgICAgIG1lbWNw eSAodmFsdWVfY29udGVudHNfd3JpdGVhYmxlICh2KSwKLSsJICAgICAgdmFsdWVfY29udGVudHMg KGFycmF5KSArIG9mZnNldCwgZWx0X3NpemUpOwotKyAgICB9Ci0gCi0gICBzZXRfdmFsdWVfY29t cG9uZW50X2xvY2F0aW9uICh2LCBhcnJheSk7Ci0gICBWQUxVRV9SRUdOVU0gKHYpID0gVkFMVUVf UkVHTlVNIChhcnJheSk7Ci0gICBWQUxVRV9GUkFNRV9JRCAodikgPSBWQUxVRV9GUkFNRV9JRCAo YXJyYXkpOwotLSAgc2V0X3ZhbHVlX29mZnNldCAodiwgdmFsdWVfb2Zmc2V0IChhcnJheSkgKyBl bHRfb2Zmcyk7Ci0rICBzZXRfdmFsdWVfb2Zmc2V0ICh2LCB2YWx1ZV9vZmZzZXQgKGFycmF5KSAr IG9mZnNldCk7Ci0gICByZXR1cm4gdjsKLSB9Ci0gCi1AQCAtMjk2LDYgKzMxMywxMCBAQCBpbnQK KyAgIGlmIChpbmRleCA8IGxvd2VyYm91bmQgfHwgKCFUWVBFX0FSUkFZX1VQUEVSX0JPVU5EX0lT X1VOREVGSU5FRCAoYXJyYXlfdHlwZSkKK0BAIC0yOTcsNiArMzAwLDEwIEBAIGludAogIGJpbm9w X3VzZXJfZGVmaW5lZF9wIChlbnVtIGV4cF9vcGNvZGUgb3AsCiAgCQkgICAgICBzdHJ1Y3QgdmFs dWUgKmFyZzEsIHN0cnVjdCB2YWx1ZSAqYXJnMikKICB7CkBAIC0xMjUzNSw3ICsxMjAyMiw3IEBA IGluZGV4IDE4ZTg4YjcuLjlmOTBhY2IgMTAwNjQ0CiAgfQogIAogZGlmZiAtLWdpdCBhL2dkYi92 YWxvcHMuYyBiL2dkYi92YWxvcHMuYwotaW5kZXggZmRiYjcwMi4uZjkzZjk0YSAxMDA2NDQKK2lu ZGV4IDE5ZDUyMzguLmM5ZDcyMWEgMTAwNjQ0CiAtLS0gYS9nZGIvdmFsb3BzLmMKICsrKyBiL2dk Yi92YWxvcHMuYwogQEAgLTM4LDYgKzM4LDcgQEAKQEAgLTEyNjQxLDcgKzEyMTI4LDcgQEAgaW5k ZXggZmRiYjcwMi4uZjkzZjk0YSAxMDA2NDQKICAJfQogICAgICB9CiAgICBlbHNlIGlmIChWQUxV RV9MVkFMICh2YWwpID09IGx2YWxfcmVnaXN0ZXIpCi1AQCAtMTQyNyw3ICsxNDkzLDE4IEBAIGFk ZHJlc3Nfb2ZfdmFyaWFibGUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGJsb2NrICpiKQor QEAgLTE0MjksNyArMTQ5NSwxOCBAQCBhZGRyZXNzX29mX3ZhcmlhYmxlIChzdHJ1Y3Qgc3ltYm9s ICp2YXIsIHN0cnVjdCBibG9jayAqYikKICAgIGlmICgoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFs X21lbW9yeSAmJiB2YWx1ZV9sYXp5ICh2YWwpKQogICAgICAgIHx8IFRZUEVfQ09ERSAodHlwZSkg PT0gVFlQRV9DT0RFX0ZVTkMpCiAgICAgIHsKQEAgLTEyNjYxLDcgKzEyMTQ4LDcgQEAgaW5kZXgg ZmRiYjcwMi4uZjkzZjk0YSAxMDA2NDQKICAKICAgICAgICByZXR1cm4gdmFsdWVfZnJvbV9wb2lu dGVyIChsb29rdXBfcG9pbnRlcl90eXBlICh0eXBlKSwgYWRkcik7CiAgICAgIH0KLUBAIC0xNTM1 LDYgKzE2MTIsNyBAQCBzdHJ1Y3QgdmFsdWUgKgorQEAgLTE1MzYsNiArMTYxMyw3IEBAIHN0cnVj dCB2YWx1ZSAqCiAgdmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgewog ICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcxKSk7 CkBAIC0xMjY2OSw3ICsxMjE1Niw3IEBAIGluZGV4IGZkYmI3MDIuLmY5M2Y5NGEgMTAwNjQ0CiAg CiAgICAvKiBJZiB0aGUgdXNlciB0cmllcyB0byBkbyBzb21ldGhpbmcgcmVxdWlyaW5nIGEgcG9p bnRlciB3aXRoIGFuCiAgICAgICBhcnJheSB0aGF0IGhhcyBub3QgeWV0IGJlZW4gcHVzaGVkIHRv IHRoZSB0YXJnZXQsIHRoZW4gdGhpcyB3b3VsZAotQEAgLTE1NDQsOCArMTYyMiwxMiBAQCB2YWx1 ZV9jb2VyY2VfYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKK0BAIC0xNTQ1LDggKzE2MjMsMTIg QEAgdmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgICBpZiAoVkFMVUVf TFZBTCAoYXJnMSkgIT0gbHZhbF9tZW1vcnkpCiAgICAgIGVycm9yIChfKCJBdHRlbXB0IHRvIHRh a2UgYWRkcmVzcyBvZiB2YWx1ZSBub3QgbG9jYXRlZCBpbiBtZW1vcnkuIikpOwogIApAQCAtMTI2 ODMsOCArMTIxNzAsMTcgQEAgaW5kZXggZmRiYjcwMi4uZjkzZjk0YSAxMDA2NDQKICB9CiAgCiAg LyogR2l2ZW4gYSB2YWx1ZSB3aGljaCBpcyBhIGZ1bmN0aW9uLCByZXR1cm4gYSB2YWx1ZSB3aGlj aCBpcyBhIHBvaW50ZXIKK0BAIC0zNTg3LDYgKzM2NjksOCBAQCB2YWx1ZV9zbGljZSAoc3RydWN0 IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQorIAkJCQkJVFlQRV9UQVJH RVRfVFlQRSAocmFuZ2VfdHlwZSksCisgCQkJCQlsb3dib3VuZCwgCisgCQkJCQlsb3dib3VuZCAr IGxlbmd0aCAtIDEpOworKyAgVFlQRV9CWVRFX1NUUklERSAoc2xpY2VfcmFuZ2VfdHlwZSkgPSBU WVBFX0JZVEVfU1RSSURFIChyYW5nZV90eXBlKTsKKysKKyAgIGlmIChUWVBFX0NPREUgKGFycmF5 X3R5cGUpID09IFRZUEVfQ09ERV9CSVRTVFJJTkcpCisgICAgIHsKKyAgICAgICBpbnQgaTsKIGRp ZmYgLS1naXQgYS9nZGIvdmFscHJpbnQuYyBiL2dkYi92YWxwcmludC5jCi1pbmRleCBkNzhkZjVj Li5lNGZlN2Y5IDEwMDY0NAoraW5kZXggZjY1ZmUyNy4uZGQxYWFlZSAxMDA2NDQKIC0tLSBhL2dk Yi92YWxwcmludC5jCiArKysgYi9nZGIvdmFscHJpbnQuYwogQEAgLTM2LDYgKzM2LDcgQEAKQEAg LTEyNzAzLDcgKzEyMTk5LDcgQEAgaW5kZXggZDc4ZGY1Yy4uZTRmZTdmOSAxMDA2NDQKICAgICAg Y2FzZSBUWVBFX0NPREVfQklUU1RSSU5HOgogICAgICAgIHJldHVybiAwOwogICAgICBkZWZhdWx0 OgotQEAgLTExMTUsNiArMTExNSw3IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorQEAgLTExMTcsNiArMTExNyw3 IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLAogIHsKICAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7 CiAgICB1bnNpZ25lZCBsZW47CkBAIC0xMjcxMSw3ICsxMjIwNyw3IEBAIGluZGV4IGQ3OGRmNWMu LmU0ZmU3ZjkgMTAwNjQ0CiAgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwgKmluZGV4X3R5cGU7CiAg ICB1bnNpZ25lZCBlbHRsZW47CiAgICAvKiBQb3NpdGlvbiBvZiB0aGUgYXJyYXkgZWxlbWVudCB3 ZSBhcmUgZXhhbWluaW5nIHRvIHNlZQotQEAgLTExMjMsOSArMTEyNCwzMyBAQCB2YWxfcHJpbnRf YXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwKK0BAIC0xMTI1LDkgKzExMjYsMzMgQEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCiAgICAvKiBOdW1iZXIgb2Yg cmVwZXRpdGlvbnMgd2UgaGF2ZSBkZXRlY3RlZCBzbyBmYXIuICAqLwogICAgdW5zaWduZWQgaW50 IHJlcHM7CiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKQEAgLTEyNzQ3LDcgKzEy MjQzLDcgQEAgaW5kZXggZDc4ZGY1Yy4uZTRmZTdmOSAxMDA2NDQKICAgIGluZGV4X3R5cGUgPSBU WVBFX0lOREVYX1RZUEUgKHR5cGUpOwogIAogICAgaWYgKGdldF9hcnJheV9ib3VuZHMgKHR5cGUs ICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSkKLUBAIC0xMjAwLDYgKzEyMjUsOCBAQCB2YWxfcHJp bnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKK0BAIC0xMjAyLDYgKzEyMjcsOCBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAgICAgewogICAgICAg IGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIi4uLiIpOwogICAgICB9CkBAIC0xMjc1Nyw3ICsx MjI1Myw3IEBAIGluZGV4IGQ3OGRmNWMuLmU0ZmU3ZjkgMTAwNjQ0CiAgCiAgLyogUmVhZCBMRU4g Ynl0ZXMgb2YgdGFyZ2V0IG1lbW9yeSBhdCBhZGRyZXNzIE1FTUFERFIsIHBsYWNpbmcgdGhlCiBk aWZmIC0tZ2l0IGEvZ2RiL3ZhbHVlLmMgYi9nZGIvdmFsdWUuYwotaW5kZXggMWM1MDQyOC4uOWIx YjQzOCAxMDA2NDQKK2luZGV4IGRiODNlYTIuLjNkNDc1NTYgMTAwNjQ0CiAtLS0gYS9nZGIvdmFs dWUuYwogKysrIGIvZ2RiL3ZhbHVlLmMKIEBAIC0zOSw2ICszOSw3IEBACkBAIC0xMjc2OCw3ICsx MjI2NCw3IEBAIGluZGV4IDFjNTA0MjguLjliMWI0MzggMTAwNjQ0CiAgCiAgI2luY2x1ZGUgInB5 dGhvbi9weXRob24uaCIKICAKLUBAIC04NjQsMTIgKzg2NSwxNSBAQCB2b2lkCitAQCAtODYzLDEy ICs4NjQsMTUgQEAgdm9pZAogIHNldF92YWx1ZV9jb21wb25lbnRfbG9jYXRpb24gKHN0cnVjdCB2 YWx1ZSAqY29tcG9uZW50LAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqd2hvbGUpCiAg ewpAQCAtMTI3ODQsNyArMTIyODAsNyBAQCBpbmRleCAxYzUwNDI4Li45YjFiNDM4IDEwMDY0NAog ICAgaWYgKHdob2xlLT5sdmFsID09IGx2YWxfY29tcHV0ZWQpCiAgICAgIHsKICAgICAgICBzdHJ1 Y3QgbHZhbF9mdW5jcyAqZnVuY3MgPSB3aG9sZS0+bG9jYXRpb24uY29tcHV0ZWQuZnVuY3M7Ci1A QCAtODc3LDYgKzg4MSwxMiBAQCBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uIChzdHJ1Y3Qg dmFsdWUgKmNvbXBvbmVudCwKK0BAIC04NzYsNiArODgwLDEyIEBAIHNldF92YWx1ZV9jb21wb25l bnRfbG9jYXRpb24gKHN0cnVjdCB2YWx1ZSAqY29tcG9uZW50LAogICAgICAgIGlmIChmdW5jcy0+ Y29weV9jbG9zdXJlKQogICAgICAgICAgY29tcG9uZW50LT5sb2NhdGlvbi5jb21wdXRlZC5jbG9z dXJlID0gZnVuY3MtPmNvcHlfY2xvc3VyZSAod2hvbGUpOwogICAgICB9CkBAIC0xMjc5Nyw3ICsx MjI5Myw3IEBAIGluZGV4IDFjNTA0MjguLjliMWI0MzggMTAwNjQ0CiAgfQogIAogIAwKLUBAIC0x MDEwLDYgKzEwMjAsMjkgQEAgc2hvd192YWx1ZXMgKGNoYXIgKm51bV9leHAsIGludCBmcm9tX3R0 eSkKK0BAIC0xMDA5LDYgKzEwMTksMjkgQEAgc2hvd192YWx1ZXMgKGNoYXIgKm51bV9leHAsIGlu dCBmcm9tX3R0eSkKICAgICAgICBudW1fZXhwWzFdID0gJ1wwJzsKICAgICAgfQogIH0KQEAgLTEy ODI3LDcgKzEyMzIzLDcgQEAgaW5kZXggMWM1MDQyOC4uOWIxYjQzOCAxMDA2NDQKICAMCiAgLyog SW50ZXJuYWwgdmFyaWFibGVzLiAgVGhlc2UgYXJlIHZhcmlhYmxlcyB3aXRoaW4gdGhlIGRlYnVn Z2VyCiAgICAgdGhhdCBob2xkIHZhbHVlcyBhc3NpZ25lZCBieSBkZWJ1Z2dlciBjb21tYW5kcy4K LUBAIC0xNTA1LDYgKzE1MzgsNDAgQEAgY2FsbF9pbnRlcm5hbF9mdW5jdGlvbiAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsCitAQCAtMTUwNCw2ICsxNTM3LDQwIEBAIGNhbGxfaW50ZXJuYWxfZnVu Y3Rpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogICAgcmV0dXJuICgqaWZuLT5oYW5kbGVy KSAoZ2RiYXJjaCwgbGFuZ3VhZ2UsIGlmbi0+Y29va2llLCBhcmdjLCBhcmd2KTsKICB9CiAgCkBA IC0xMjg2OCw3ICsxMjM2NCw3IEBAIGluZGV4IDFjNTA0MjguLjliMWI0MzggMTAwNjQ0CiAgLyog VGhlICdmdW5jdGlvbicgY29tbWFuZC4gIFRoaXMgZG9lcyBub3RoaW5nIC0tIGl0IGlzIGp1c3Qg YQogICAgIHBsYWNlaG9sZGVyIHRvIGxldCAiaGVscCBmdW5jdGlvbiBOQU1FIiB3b3JrLiAgVGhp cyBpcyBhbHNvIHVzZWQgYXMKICAgICB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHN1Yi1jb21t YW5kIHRoYXQgaXMgY3JlYXRlZCB3aGVuCi1AQCAtMTU1MiwxMSArMTYxOSwxMCBAQCBwcmVzZXJ2 ZV9vbmVfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LAorQEAgLTE1NTEsMTEgKzE2MTgsMTAgQEAgcHJlc2VydmVfb25lX3ZhbHVlIChzdHJ1Y3QgdmFs dWUgKnZhbHVlLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJCSAgICBodGFiX3QgY29waWVk X3R5cGVzKQogIHsKICAgIGlmIChUWVBFX09CSkZJTEUgKHZhbHVlLT50eXBlKSA9PSBvYmpmaWxl KQpAQCAtMTI4ODIsNyArMTIzNzgsNyBAQCBpbmRleCAxYzUwNDI4Li45YjFiNDM4IDEwMDY0NAog IAkJCQkJCSBjb3BpZWRfdHlwZXMpOwogIH0KICAKLUBAIC0xNTcxLDEzICsxNjM3LDEzIEBAIHBy ZXNlcnZlX29uZV9pbnRlcm5hbHZhciAoc3RydWN0IGludGVybmFsdmFyICp2YXIsIHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlLAorQEAgLTE1NzAsMTMgKzE2MzYsMTMgQEAgcHJlc2VydmVfb25lX2lu dGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgc3RydWN0IG9iamZpbGUgKm9iamZp bGUsCiAgICAgIGNhc2UgSU5URVJOQUxWQVJfSU5URUdFUjoKICAgICAgICBpZiAodmFyLT51Lmlu dGVnZXIudHlwZSAmJiBUWVBFX09CSkZJTEUgKHZhci0+dS5pbnRlZ2VyLnR5cGUpID09IG9iamZp bGUpCiAgCXZhci0+dS5pbnRlZ2VyLnR5cGUKQEAgLTEyOTM0LDcgKzEyNDMwLDcgQEAgaW5kZXgg MWM1MDQyOC4uOWIxYjQzOCAxMDA2NDQKICsgIG9ic2VydmVyX2F0dGFjaF9tYXJrX3VzZWQgKHZh bHVlX3R5cGVzX21hcmtfdXNlZCk7CiAgfQogZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5oIGIvZ2Ri L3ZhbHVlLmgKLWluZGV4IGU2Mzc4NDIuLjVmMzZhZWYgMTAwNjQ0CitpbmRleCAxNmY0NjQ2Li41 MDFkZjg2IDEwMDY0NAogLS0tIGEvZ2RiL3ZhbHVlLmgKICsrKyBiL2dkYi92YWx1ZS5oCiBAQCAt Mzg5LDYgKzM4OSwxMCBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9mcm9tX2RvdWJsZSAo c3RydWN0IHR5cGUgKnR5cGUsIERPVUJMRVNUIG51bSk7CkBAIC0xMjk0OCwxMiArMTI0NDQsMyBA QCBpbmRleCBlNjM3ODQyLi41ZjM2YWVmIDEwMDY0NAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZh bHVlX2F0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHIpOwogIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKnZhbHVlX2F0X2xhenkgKHN0cnVjdCB0eXBlICp0eXBlLCBDT1JFX0FERFIgYWRk cik7CiAgCi1AQCAtNzQ5LDcgKzc1Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2Fs bG9jYXRlX3NwYWNlX2luX2luZmVyaW9yIChpbnQpOwotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZh bHVlX29mX2xvY2FsIChjb25zdCBjaGFyICpuYW1lLCBpbnQgY29tcGxhaW4pOwotIAotIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICph cnJheSwKLS0JCQkJCSAgICAgICBMT05HRVNUIGluZGV4LCBpbnQgbG93ZXJib3VuZCk7Ci0rCQkJ CQkgICAgICAgQ09SRV9BRERSIG9mZnNldCk7Ci0gCi0gLyogVXNlciBmdW5jdGlvbiBoYW5kbGVy LiAgKi8KLSAKCmRpZmYgLS1naXQgYS9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0 Y2ggYi9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2gKaW5kZXggZjQ4NWIyZi4u MDczYjZiOSAxMDA2NDQKLS0tIGEvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZvcmUtcnVuLnBhdGNo CisrKyBiL2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVmb3JlLXJ1bi5wYXRjaApAQCAtMSw3ICsxLDcg QEAKLUluZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1o CitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvY29uZmlnL2kzODYvbGludXg2NC5taAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEuOTAuMjAxMDA3MTEub3JpZy9nZGIvY29uZmlnL2kzODYv bGludXg2NC5taAkyMDEwLTA1LTI4IDIwOjUwOjMxLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03 LjEuOTAuMjAxMDA3MTEvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJMjAxMC0wNy0xMyAxOTow Mjo1NC4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2Nv bmZpZy9pMzg2L2xpbnV4NjQubWgJMjAxMC0wNS0yOCAyMDo1MDozMS4wMDAwMDAwMDAgKzAyMDAK KysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTEt MDEtMTcgMTY6MDE6NDguMDAwMDAwMDAwICswMTAwCiBAQCAtMiw3ICsyLDcgQEAKICBOQVRERVBG SUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQubyBcCiAgCWkzODYtbmF0Lm8gYW1kNjQtbmF0 Lm8gYW1kNjQtbGludXgtbmF0Lm8gbGludXgtbmF0Lm8gXApAQCAtMTEsMTAgKzExLDEwIEBAIElu ZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCiAgTkFU X0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CiAgCiAgIyBUaGUgZHluYW1pY2Fs bHkgbG9hZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBpbiB0aGUKLUlu ZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKK0lu ZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgJ MjAxMC0wNy0xMyAxOTowMjoyOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjUwLjIwMTEw MTE3L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgJMjAxMS0wMS0xNyAxNjowMTo0OC4wMDAw MDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBOYXRpdmUgc3VwcG9ydCBmb3IgR05V L0xpbnV4IGFtZDY0LgogKwpAQCAtNDQsMTEgKzQ0LDExIEBAIEluZGV4OiBnZGItNy4xLjkwLjIw MTAwNzExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKICsjZGVmaW5lIHRhcmdldF9jYW5f dXNlX2hhcmR3YXJlX3dhdGNocG9pbnQodHlwZSwgY250LCBvdCkgMQogKwogKyNlbmRpZiAvKiBO TV9MSU5VWDY0X0ggKi8KLUluZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi90YXJnZXQuaAor SW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3RhcmdldC5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMS45MC4yMDEwMDcxMS5vcmlnL2dkYi90YXJnZXQuaAkyMDEwLTA3LTEyIDIzOjA3OjM0 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL3RhcmdldC5oCTIw MTAtMDctMTMgMTk6MDI6MjguMDAwMDAwMDAwICswMjAwCi1AQCAtMTI5OCw4ICsxMjk4LDEwIEBA IGV4dGVybiBjaGFyICpub3JtYWxfcGlkX3RvX3N0ciAocHRpZF90IHAKKy0tLSBnZGItNy4yLjUw LjIwMTEwMTE3Lm9yaWcvZ2RiL3RhcmdldC5oCTIwMTEtMDEtMTQgMTQ6NDc6MTUuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGFyZ2V0LmgJMjAxMS0wMS0xNyAx NjowMjowOC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMzE4LDggKzEzMTgsMTAgQEAgZXh0ZXJuIGNo YXIgKm5vcm1hbF9waWRfdG9fc3RyIChwdGlkX3QgcAogICAgIGJwX2hhcmR3YXJlX2JyZWFrcG9p bnQuICBDTlQgaXMgdGhlIG51bWJlciBvZiBzdWNoIHdhdGNocG9pbnRzIHVzZWQgc28gZmFyCiAg ICAgKGluY2x1ZGluZyB0aGlzIG9uZT8pLiAgT1RIRVJUWVBFIGlzIHdobyBrbm93cyB3aGF0Li4u ICAqLwogIApAQCAtNTcsMTIgKzU3LDEyIEBAIEluZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dk Yi90YXJnZXQuaAogICAoKmN1cnJlbnRfdGFyZ2V0LnRvX2Nhbl91c2VfaHdfYnJlYWtwb2ludCkg KFRZUEUsIENOVCwgT1RIRVJUWVBFKTsKICsjZW5kaWYKICAKLSAjZGVmaW5lIHRhcmdldF9yZWdp b25fb2tfZm9yX2h3X3dhdGNocG9pbnQoYWRkciwgbGVuKSBcCi0gICAgICgqY3VycmVudF90YXJn ZXQudG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50KSAoYWRkciwgbGVuKQotSW5kZXg6IGdk Yi03LjEuOTAuMjAxMDA3MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LWJl Zm9yZS1ydW4uZXhwCisgLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRlYnVnIHJlZ2lzdGVycyBu ZWVkZWQgdG8gd2F0Y2ggdGhlIGdpdmVuCisgICAgbWVtb3J5IHJlZ2lvbiwgb3IgemVybyBpZiBu b3Qgc3VwcG9ydGVkLiAgKi8KK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1ody1iZWZvcmUtcnVuLmV4cAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjEuOTAuMjAxMDA3MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LWJlZm9y ZS1ydW4uZXhwCTIwMTAtMDctMTMgMTk6MDI6MjguMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcu Mi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3Jl LXJ1bi5leHAJMjAxMS0wMS0xNyAxNjowMTo0OC4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEs NDAgQEAKICsjIENvcHlyaWdodCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgogKwoKZGlmZiAtLWdpdCBhL2dkYi1iejU5MjAzMS1zaWdpbmZvLWxvc3QtNG9mNS5wYXRj aCBiL2dkYi1iejU5MjAzMS1zaWdpbmZvLWxvc3QtNG9mNS5wYXRjaAppbmRleCAyOTA2NDRjLi42 MzliMzdkIDEwMDY0NAotLS0gYS9nZGItYno1OTIwMzEtc2lnaW5mby1sb3N0LTRvZjUucGF0Y2gK KysrIGIvZ2RiLWJ6NTkyMDMxLXNpZ2luZm8tbG9zdC00b2Y1LnBhdGNoCkBAIC03OCwxMSArNzgs MTEgQEAgZ2RiL3Rlc3RzdWl0ZS8KIAkqIGdkYi50aHJlYWRzL3NpZ3N0ZXAtdGhyZWFkcy5leHA6 IE5ldyBmaWxlLgogCSogZ2RiLnRocmVhZHMvc2lnc3RlcC10aHJlYWRzLmM6IE5ldyBmaWxlLgog Ci1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvbGludXgtbmF0LmMKK0luZGV4OiBnZGIt Ny4yLjUwLjIwMTEwMTE3L2dkYi9saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIu NTAuMjAxMDExMTYub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxMC0xMS0xNiAwODoyMTo0Ni4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9saW51eC1uYXQuYwkyMDEw LTExLTE2IDA5OjEyOjI2LjAwMDAwMDAwMCArMDEwMAotQEAgLTI3NTksNiArMjc1OSw4IEBAIHN0 b3Bfd2FpdF9jYWxsYmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwKKy0tLSBnZGItNy4yLjUwLjIw MTEwMTE3Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTEtMDEtMTcgMTU6NTM6MTQuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvbGludXgtbmF0LmMJMjAxMS0wMS0x NyAxNjowNTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0yODAzLDYgKzI4MDMsOCBAQCBzdG9wX3dh aXRfY2FsbGJhY2sgKHN0cnVjdCBsd3BfaW5mbyAqbHAsCiAgICAgIHsKICAgICAgICBpbnQgc3Rh dHVzOwogIApAQCAtOTEsNyArOTEsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIv bGludXgtbmF0LmMKICAgICAgICBzdGF0dXMgPSB3YWl0X2x3cCAobHApOwogICAgICAgIGlmIChz dGF0dXMgPT0gMCkKICAJcmV0dXJuIDA7Ci1AQCAtMjc4MywxMTAgKzI3ODUsNjEgQEAgc3RvcF93 YWl0X2NhbGxiYWNrIChzdHJ1Y3QgbHdwX2luZm8gKmxwLAorQEAgLTI4MjgsMTEwICsyODMwLDYx IEBAIHN0b3Bfd2FpdF9jYWxsYmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwKICAKICAgICAgICBp ZiAoV1NUT1BTSUcgKHN0YXR1cykgIT0gU0lHU1RPUCkKICAJewpAQCAtMTE1LDcgKzExNSw3IEBA IEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9saW51eC1uYXQuYwogLQogLQkgICAgICBz YXZlX3NpZ3RyYXAgKGxwKTsKIC0KLS0JICAgICAgLyogTm93IHJlc3VtZSB0aGlzIExXUCBhbmQg Z2V0IHRoZSBTSUdTVE9QIGV2ZW50LiAqLworLQkgICAgICAvKiBOb3cgcmVzdW1lIHRoaXMgTFdQ IGFuZCBnZXQgdGhlIFNJR1NUT1AgZXZlbnQuICAqLwogLQkgICAgICBlcnJubyA9IDA7CiAtCSAg ICAgIHB0cmFjZSAoUFRSQUNFX0NPTlQsIEdFVF9MV1AgKGxwLT5wdGlkKSwgMCwgMCk7CiAtCSAg ICAgIGlmIChkZWJ1Z19saW51eF9uYXQpCkBAIC0xMzAsMTMgKzEzMCwxMyBAQCBJbmRleDogZ2Ri LTcuMi41MC4yMDEwMTExNi9nZGIvbGludXgtbmF0LmMKIC0JCQkJICAgICAgdGFyZ2V0X3BpZF90 b19zdHIgKGxwLT5wdGlkKSk7CiAtCQl9CiAtCSAgICAgIC8qIEhvbGQgdGhpcyBldmVudC93YWl0 c3RhdHVzIHdoaWxlIHdlIGNoZWNrIHRvIHNlZSBpZgotLQkJIHRoZXJlIGFyZSBhbnkgbW9yZSAo d2Ugc3RpbGwgd2FudCB0byBnZXQgdGhhdCBTSUdTVE9QKS4gKi8KKy0JCSB0aGVyZSBhcmUgYW55 IG1vcmUgKHdlIHN0aWxsIHdhbnQgdG8gZ2V0IHRoYXQgU0lHU1RPUCkuICAqLwogLQkgICAgICBz dG9wX3dhaXRfY2FsbGJhY2sgKGxwLCBOVUxMKTsKICsJICAvKiBUaGUgdGhyZWFkIHdhcyBzdG9w cGVkIHdpdGggYSBzaWduYWwgb3RoZXIgdGhhbiBTSUdTVE9QLiAgKi8KICAKIC0JICAgICAgLyog SG9sZCB0aGUgU0lHVFJBUCBmb3IgaGFuZGxpbmcgYnkgbGludXhfbmF0X3dhaXQuICBJZgogLQkJ IHRoZXJlJ3MgYW5vdGhlciBldmVudCwgdGhyb3cgaXQgYmFjayBpbnRvIHRoZQotLQkJIHF1ZXVl LiAqLworLQkJIHF1ZXVlLiAgKi8KIC0JICAgICAgaWYgKGxwLT5zdGF0dXMpCiAtCQl7CiAtCQkg IGlmIChkZWJ1Z19saW51eF9uYXQpCkBAIC0xNDksMTQgKzE0OSwxNCBAQCBJbmRleDogZ2RiLTcu Mi41MC4yMDEwMTExNi9nZGIvbGludXgtbmF0LmMKICsJICAvKiBTYXZlIHRoZSB0cmFwJ3Mgc2ln aW5mbyBpbiBjYXNlIHdlIG5lZWQgaXQgbGF0ZXIuICAqLwogKwkgIHNhdmVfc2lnaW5mbyAobHAp OwogIAotLQkgICAgICAvKiBTYXZlIHRoZSBzaWd0cmFwIGV2ZW50LiAqLworLQkgICAgICAvKiBT YXZlIHRoZSBzaWd0cmFwIGV2ZW50LiAgKi8KIC0JICAgICAgbHAtPnN0YXR1cyA9IHN0YXR1czsK IC0JICAgICAgcmV0dXJuIDA7CiAtCSAgICB9CiAtCSAgZWxzZQogLQkgICAgewogLQkgICAgICAv KiBUaGUgdGhyZWFkIHdhcyBzdG9wcGVkIHdpdGggYSBzaWduYWwgb3RoZXIgdGhhbgotLQkgICAg ICAgICBTSUdTVE9QLCBhbmQgZGlkbid0IGFjY2lkZW50YWxseSB0cmlwIGEgYnJlYWtwb2ludC4g Ki8KKy0JICAgICAgICAgU0lHU1RPUCwgYW5kIGRpZG4ndCBhY2NpZGVudGFsbHkgdHJpcCBhIGJy ZWFrcG9pbnQuICAqLwogKwkgIHNhdmVfc2lndHJhcCAobHApOwogIAogLQkgICAgICBpZiAoZGVi dWdfbGludXhfbmF0KQpAQCAtMTY2LDcgKzE2Niw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAx MTE2L2dkYi9saW51eC1uYXQuYwogLQkJCQkgICAgICBzdGF0dXNfdG9fc3RyICgoaW50KSBzdGF0 dXMpLAogLQkJCQkgICAgICB0YXJnZXRfcGlkX3RvX3N0ciAobHAtPnB0aWQpKTsKIC0JCX0KLS0J ICAgICAgLyogTm93IHJlc3VtZSB0aGlzIExXUCBhbmQgZ2V0IHRoZSBTSUdTVE9QIGV2ZW50LiAq LworLQkgICAgICAvKiBOb3cgcmVzdW1lIHRoaXMgTFdQIGFuZCBnZXQgdGhlIFNJR1NUT1AgZXZl bnQuICAqLwogLQkgICAgICBlcnJubyA9IDA7CiAtCSAgICAgIHB0cmFjZSAoUFRSQUNFX0NPTlQs IEdFVF9MV1AgKGxwLT5wdGlkKSwgMCwgMCk7CiAtCSAgICAgIGlmIChkZWJ1Z19saW51eF9uYXQp CkBAIC0xNzYsNyArMTc2LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2xpbnV4 LW5hdC5jCiAtCQkJCSAgICBlcnJubyA/IHNhZmVfc3RyZXJyb3IgKGVycm5vKSA6ICJPSyIpOwog LQogLQkgICAgICAvKiBIb2xkIHRoaXMgZXZlbnQvd2FpdHN0YXR1cyB3aGlsZSB3ZSBjaGVjayB0 byBzZWUgaWYKLS0JICAgICAgICAgdGhlcmUgYXJlIGFueSBtb3JlICh3ZSBzdGlsbCB3YW50IHRv IGdldCB0aGF0IFNJR1NUT1ApLiAqLworLQkgICAgICAgICB0aGVyZSBhcmUgYW55IG1vcmUgKHdl IHN0aWxsIHdhbnQgdG8gZ2V0IHRoYXQgU0lHU1RPUCkuICAqLwogLQkgICAgICBzdG9wX3dhaXRf Y2FsbGJhY2sgKGxwLCBOVUxMKTsKICsJICBpZiAoZGVidWdfbGludXhfbmF0KQogKwkgICAgZnBy aW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLApAQCAtMjAyLDcgKzIwMiw3IEBAIEluZGV4OiBn ZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9saW51eC1uYXQuYwogLQkJbHAtPnN0YXR1cyA9IHN0YXR1 czsKIC0JICAgICAgcmV0dXJuIDA7CiAtCSAgICB9Ci0rCSAgLyogU2F2ZSB0aGUgc2lndHJhcCBl dmVudC4gKi8KKysJICAvKiBTYXZlIHRoZSBzaWd0cmFwIGV2ZW50LiAgKi8KICsJICBscC0+c3Rh dHVzID0gc3RhdHVzOwogKwkgIGdkYl9hc3NlcnQgKCEgbHAtPnN0b3BwZWQpOwogKwkgIGdkYl9h c3NlcnQgKGxwLT5zaWduYWxsZWQpOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIEluZGV4OiBnZGItNy4y LjUwLjIwMTAxMTE2L2dkYi9saW51eC1uYXQuYwogIAkgIGxwLT5zaWduYWxsZWQgPSAwOwogIAl9 CiAgICAgIH0KLUBAIC0zNDY5LDUyICszNDIyLDYgQEAgcmV0cnk6CitAQCAtMzUxNCw1MiArMzQ2 Nyw2IEBAIHJldHJ5OgogIAlscCA9IE5VTEw7CiAgICAgIH0KICAKQEAgLTMwMSwxMCArMzAxLDEw IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9saW51eC1uYXQuYwogICAgaWYgKCF0 YXJnZXRfY2FuX2FzeW5jX3AgKCkpCiAgICAgIHsKICAgICAgICAvKiBDYXVzZXMgU0lHSU5UIHRv IGJlIHBhc3NlZCBvbiB0byB0aGUgYXR0YWNoZWQgcHJvY2Vzcy4gICovCi1JbmRleDogZ2RiLTcu Mi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ2luZm8tdGhyZWFkcy5j CitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3Np Z2luZm8tdGhyZWFkcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1 aXRlL2dkYi50aHJlYWRzL3NpZ2luZm8tdGhyZWFkcy5jCTIwMTAtMTEtMTYgMDk6MDg6NDQuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi50 aHJlYWRzL3NpZ2luZm8tdGhyZWFkcy5jCTIwMTEtMDEtMTcgMTY6MDI6NDAuMDAwMDAwMDAwICsw MTAwCiBAQCAtMCwwICsxLDQ0NyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIs IHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC03NTMsMTAgKzc1MywxMCBAQCBJbmRleDogZ2RiLTcu Mi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ2luZm8tdGhyZWFkcy5j CiArCiArICByZXR1cm4gRVhJVF9TVUNDRVNTOwogK30KLUluZGV4OiBnZGItNy4yLjUwLjIwMTAx MTE2L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvc2lnaW5mby10aHJlYWRzLmV4cAorSW5kZXg6 IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zaWdpbmZvLXRo cmVhZHMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dk Yi50aHJlYWRzL3NpZ2luZm8tdGhyZWFkcy5leHAJMjAxMC0xMS0xNiAwOTowODo0NC4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVh ZHMvc2lnaW5mby10aHJlYWRzLmV4cAkyMDExLTAxLTE3IDE2OjAyOjQwLjAwMDAwMDAwMCArMDEw MAogQEAgLTAsMCArMSw5NCBAQAogKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCiArCkBAIC04NTIsMTAgKzg1MiwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4y MDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ2luZm8tdGhyZWFkcy5leHAKICt9 CiArCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgYnJlYWstYXQtZXhpdCAiLipicmVhay1h dC1leGl0LioiCi1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi50 aHJlYWRzL3NpZ3N0ZXAtdGhyZWFkcy5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIv dGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ3N0ZXAtdGhyZWFkcy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu Mi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ3N0ZXAtdGhyZWFkcy5j CTIwMTAtMTEtMTYgMDk6MDg6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDEx MDExNy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ3N0ZXAtdGhyZWFkcy5jCTIwMTEtMDEt MTcgMTY6MDI6NDAuMDAwMDAwMDAwICswMTAwCiBAQCAtMCwwICsxLDU0IEBACiArLyogVGhpcyB0 ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTkxMSwxMCAr OTExLDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2RiLnRo cmVhZHMvc2lnc3RlcC10aHJlYWRzLmMKICsgIHN0YXJ0IChOVUxMKTsJLyogbWFpbi1zdGFydCAq LwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIudGhyZWFkcy9zaWdzdGVwLXRocmVhZHMuZXhwCitJbmRleDogZ2RiLTcuMi41MC4y MDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ3N0ZXAtdGhyZWFkcy5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvc2ln c3RlcC10aHJlYWRzLmV4cAkyMDEwLTExLTE2IDA5OjA4OjQ0LjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zaWdzdGVwLXRo cmVhZHMuZXhwCTIwMTEtMDEtMTcgMTY6MDI6NDAuMDAwMDAwMDAwICswMTAwCiBAQCAtMCwwICsx LDc0IEBACiArIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICsKCmRpZmYgLS1naXQgYS9nZGItZm9ydHJhbi1jb21tb24tcmVkdWNlLnBhdGNoIGIvZ2RiLWZv cnRyYW4tY29tbW9uLXJlZHVjZS5wYXRjaAppbmRleCAyZGYzZDNiLi5mZTExOTlmIDEwMDY0NAot LS0gYS9nZGItZm9ydHJhbi1jb21tb24tcmVkdWNlLnBhdGNoCisrKyBiL2dkYi1mb3J0cmFuLWNv bW1vbi1yZWR1Y2UucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuMi41MC4yMDEx MDEwNy9nZGIvZi1sYW5nLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9mLWxhbmcu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvZi1sYW5nLmMJ MjAxMS0wMS0wNSAyMzoyMjo0OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEw MTA3L2dkYi9mLWxhbmcuYwkyMDExLTAxLTA3IDA5OjA4OjUyLjAwMDAwMDAwMCArMDEwMAorLS0t IGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvZi1sYW5nLmMJMjAxMS0wMS0wNyAyMDozNjox Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9mLWxhbmcuYwky MDExLTAxLTE3IDE1OjU2OjA3LjAwMDAwMDAwMCArMDEwMAogQEAgLTU3LDIwICs1Nyw2IEBAIHR5 cGVkZWYgc3RydWN0IHNhdmVkX2JmX3N5bW51bSBTQVZFRF9CRiwKICAvKiBMb2NhbCBmdW5jdGlv bnMgKi8KICAKQEAgLTc3LDEwICs3NywxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9n ZGIvZi1sYW5nLmMKIC0JCQkJCQkgICAgICAgYWJvdmUgbGlzdC4gICovCiAtCiAtc3RhdGljIFNB VkVEX0JGX1BUUiB0bXBfYmZfcHRyOwkvKiBHZW5lcmljIHRlbXBvcmFyeSBmb3IgdXNlIAotLQkJ CQkgICBpbiBtYWNyb3MgKi8KKy0JCQkJICAgaW4gbWFjcm9zLiAgKi8KIC0KIC0vKiBUaGUgZm9s bG93aW5nIGZ1bmN0aW9uIHNpbXBseSBlbnRlcnMgYSBnaXZlbiBjb21tb24gYmxvY2sgb250byAK LS0gICB0aGUgZ2xvYmFsIGNvbW1vbiBibG9jayBjaGFpbiAqLworLSAgIHRoZSBnbG9iYWwgY29t bW9uIGJsb2NrIGNoYWluLiAgKi8KIC0KIC1zdGF0aWMgdm9pZAogLWFkZF9jb21tb25fYmxvY2sg KGNoYXIgKm5hbWUsIENPUkVfQUREUiBvZmZzZXQsIGludCBzZWNudW0sIGNoYXIgKmZ1bmNfc3Rh YikKQEAgLTkxLDcgKzkxLDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2YtbGFu Zy5jCiAtICAvKiBJZiB0aGUgQ09NTU9OIGJsb2NrIHdlIGFyZSB0cnlpbmcgdG8gYWRkIGhhcyBh IGJsYW5rIAogLSAgICAgbmFtZSAoaS5lLiAiI0JMTktfQ09NIikgdGhlbiB3ZSBzZXQgaXQgdG8g X19CTEFOSwogLSAgICAgYmVjYXVzZSB0aGUgZGFybiAiIyIgY2hhcmFjdGVyIG1ha2VzIEdEQidz IGlucHV0IAotLSAgICAgcGFyc2VyIGhhdmUgZml0cy4gKi8KKy0gICAgIHBhcnNlciBoYXZlIGZp dHMuICAqLwogLQogLQogLSAgaWYgKHN0cmNtcCAobmFtZSwgQkxBTktfQ09NTU9OX05BTUVfT1JJ R0lOQUwpID09IDAKQEAgLTExMSw3ICsxMTEsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEw Ny9nZGIvZi1sYW5nLmMKIC0gIHRtcC0+bmFtZSA9IHhtYWxsb2MgKHN0cmxlbiAobmFtZSkgKyAx KTsKIC0KIC0gIC8qIGxvY2FsX2NvcHlfZnVuY19zdGFiIGlzIGEgc3RhYnN0cmluZywgbGV0IHVz IGZpcnN0IGV4dHJhY3QgdGhlIAotLSAgICAgZnVuY3Rpb24gbmFtZSBmcm9tIHRoZSBzdGFiIGJ5 IE5VTExpbmcgb3V0IHRoZSAnOicgY2hhcmFjdGVyLiAqLworLSAgICAgZnVuY3Rpb24gbmFtZSBm cm9tIHRoZSBzdGFiIGJ5IE5VTExpbmcgb3V0IHRoZSAnOicgY2hhcmFjdGVyLiAgKi8KIC0KIC0K IC0gIGMgPSBOVUxMOwpAQCAtMTQ4LDcgKzE0OCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEw MTA3L2dkYi9mLWxhbmcuYwogLSNlbmRpZgogLQogLS8qIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb24g c2ltcGx5IGVudGVycyBhIGdpdmVuIGNvbW1vbiBlbnRyeSBvbnRvIAotLSAgIHRoZSAiY3VycmVu dF9jb21tb24iIGJsb2NrIHRoYXQgaGFzIGJlZW4gc2F2ZWQgYXdheS4gKi8KKy0gICB0aGUgImN1 cnJlbnRfY29tbW9uIiBibG9jayB0aGF0IGhhcyBiZWVuIHNhdmVkIGF3YXkuICAqLwogLQogLSNp ZiAwCiAtc3RhdGljIHZvaWQKQEAgLTE2MCw3ICsxNjAsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4y MDExMDEwNy9nZGIvZi1sYW5nLmMKIC0KIC0gIC8qIFRoZSBvcmRlciBvZiB0aGlzIGxpc3QgaXMg aW1wb3J0YW50LCBzaW5jZSAKIC0gICAgIHdlIGV4cGVjdCB0aGUgZW50cmllcyB0byBhcHBlYXIg aW4gZGVjbC4KLS0gICAgIG9yZGVyIHdoZW4gd2UgbGF0ZXIgaXNzdWUgImluZm8gY29tbW9uIiBj YWxscyAqLworLSAgICAgb3JkZXIgd2hlbiB3ZSBsYXRlciBpc3N1ZSAiaW5mbyBjb21tb24iIGNh bGxzLiAgKi8KIC0KIC0gIHRtcCA9IGFsbG9jYXRlX2NvbW1vbl9lbnRyeV9ub2RlICgpOwogLQpA QCAtMTg1LDcgKzE4NSw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcu YwogLX0KIC0jZW5kaWYKIC0KLS0vKiBUaGlzIHJvdXRpbmUgZmluZHMgdGhlIGZpcnN0IGVuY291 bnRyZWQgQ09NTU9OIGJsb2NrIG5hbWVkICJuYW1lIiAqLworLS8qIFRoaXMgcm91dGluZSBmaW5k cyB0aGUgZmlyc3QgZW5jb3VudHJlZCBDT01NT04gYmxvY2sgbmFtZWQgIm5hbWUiLiAgKi8KIC0K IC0jaWYgMAogLXN0YXRpYyBTQVZFRF9GNzdfQ09NTU9OX1BUUgpAQCAtMjA4LDcgKzIwOCw3IEBA IEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuYwogLSNlbmRpZgogIAogIC8q IFRoaXMgcm91dGluZSBmaW5kcyB0aGUgZmlyc3QgZW5jb3VudHJlZCBDT01NT04gYmxvY2sgbmFt ZWQgIm5hbWUiIAotICAgIHRoYXQgYmVsb25ncyB0byBmdW5jdGlvbiBmdW5jbmFtZSAqLworICAg IHRoYXQgYmVsb25ncyB0byBmdW5jdGlvbiBmdW5jbmFtZS4gICovCiBAQCAtNjYyLDE5MyArNDcw LDMgQEAgZmluZF9jb21tb25fZm9yX2Z1bmN0aW9uIChjaGFyICpuYW1lLCBjaAogICAgICB9CiAg ICByZXR1cm4gKE5VTEwpOwpAQCAtMjI2LDcgKzIyNiw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIw MTEwMTA3L2dkYi9mLWxhbmcuYwogLXsKIC0gIENPTU1PTl9FTlRSWV9QVFIgZW50cnk7CiAtCi0t ICBibGstPm9mZnNldCA9IG9mZnNldDsJCS8qIEtlZXAgdGhpcyBhcm91bmQgZm9yIGZ1dHVyZSB1 c2UuICovCistICBibGstPm9mZnNldCA9IG9mZnNldDsJCS8qIEtlZXAgdGhpcyBhcm91bmQgZm9y IGZ1dHVyZSB1c2UuICAqLwogLQogLSAgZW50cnkgPSBibGstPmVudHJpZXM7CiAtCkBAIC0yNDQs NyArMjQ0LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2YtbGFuZy5jCiAtICAg YmxvY2tzIG9jY3VyIHdpdGggcmVsYXRpdmUgaW5mcmVxdWVuY3ksIHdlIHNpbXBseSBkbyBhIGxp bmVhciBzY2FuIG9uCiAtICAgdGhlIG5hbWUuICBFdmVudHVhbGx5LCB0aGUgYmVzdCB3YXkgdG8g ZG8gdGhpcyB3aWxsIGJlIGEKIC0gICBoYXNoZWQtbG9va3VwLiAgU2VjbnVtIGlzIHRoZSBzZWN0 aW9uIG51bWJlciBmb3IgdGhlIC5ic3Mgc2VjdGlvbgotLSAgICh3aGljaCBpcyB3aGVyZSBjb21t b24gZGF0YSBsaXZlcykuICovCistICAgKHdoaWNoIGlzIHdoZXJlIGNvbW1vbiBkYXRhIGxpdmVz KS4gICovCiAtCiAtc3RhdGljIHZvaWQKIC1wYXRjaF9hbGxfY29tbW9uc19ieV9uYW1lIChjaGFy ICpuYW1lLCBDT1JFX0FERFIgb2Zmc2V0LCBpbnQgc2VjbnVtKQpAQCAtMjgyLDcgKzI4Miw3IEBA IEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuYwogLSAgICNsaW5lIHByYWdt YXMgc29tZXRpbWVzIGNhdXNlIGxpbmUgcmFuZ2VzIHRvIGdldCBtZXNzZWQgdXAgCiAtICAgd2Ug c2ltcGx5IGNyZWF0ZSBhIGxpbmVhciBsaXN0LiAgVGhpcyBsaXN0IGNhbiB0aGVuIGJlIHNlYXJj aGVkIAogLSAgIGZpcnN0IGJ5IGEgcXVldWVpbmcgYWxnb3JpdGhtIGFuZCB1cG9uIGZhaWx1cmUg ZmFsbCBiYWNrIHRvIAotLSAgIGEgbGluZWFyIHNjYW4uICovCistICAgYSBsaW5lYXIgc2Nhbi4g ICovCiAtCiAtI2lmIDAKIC0jZGVmaW5lIEFERF9CRl9TWU1OVU0oYmZfc3ltLGZjbl9zeW0pIFwK QEAgLTMxMSw3ICszMTEsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZi1sYW5n LmMKIC0JCSAgIH0KIC0jZW5kaWYKIC0KLS0vKiBUaGlzIGZ1bmN0aW9uIGZyZWVzIHRoZSBlbnRp cmUgKC5iZixmdW5jdGlvbikgbGlzdCAqLworLS8qIFRoaXMgZnVuY3Rpb24gZnJlZXMgdGhlIGVu dGlyZSAoLmJmLGZ1bmN0aW9uKSBsaXN0LiAgKi8KIC0KIC0jaWYgMAogLXN0YXRpYyB2b2lkCkBA IC0zNDIsNyArMzQyLDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2YtbGFuZy5j CiAtICBpbnQgbnByb2JlcyA9IDA7CiAtCiAtICAvKiBGaXJzdCB1c2UgYSBzaW1wbGUgcXVldWlu ZyBhbGdvcml0aG0gKGkuZS4gbG9vayBhbmQgc2VlIGlmIHRoZSAKLS0gICAgIGl0ZW0gYXQgdGhl IGhlYWQgb2YgdGhlIHF1ZXVlIGlzIHRoZSBvbmUgeW91IHdhbnQpICAqLworLSAgICAgaXRlbSBh dCB0aGUgaGVhZCBvZiB0aGUgcXVldWUgaXMgdGhlIG9uZSB5b3Ugd2FudCkuICAqLwogLQogLSAg aWYgKHNhdmVkX2JmX2xpc3QgPT0gTlVMTCkKIC0gICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9f LCBfX0xJTkVfXywKQEAgLTM2MSw3ICszNjEsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEw Ny9nZGIvZi1sYW5nLmMKIC0KIC0gIC8qIElmIHRoZSBhYm92ZSBkaWQgbm90IHdvcmsgKHByb2Jh Ymx5IGJlY2F1c2UgI2xpbmUgZGlyZWN0aXZlcyB3ZXJlIAogLSAgICAgdXNlZCBpbiB0aGUgc291 cmNlZmlsZSBhbmQgdGhleSBtZXNzZWQgdXAgb3VyIGludGVybmFsIHRhYmxlcykgd2Ugbm93IGRv Ci0tICAgICB0aGUgdWdseSBsaW5lYXIgc2NhbiAqLworLSAgICAgdGhlIHVnbHkgbGluZWFyIHNj YW4uICAqLwogLQogLSAgaWYgKGdsb2JhbF9yZW1vdGVfZGVidWcpCiAtICAgIGZwcmludGZfdW5m aWx0ZXJlZCAoZ2RiX3N0ZGVyciwgIlxuZGVmYXVsdGluZyB0byBsaW5lYXIgc2NhblxuIik7CkBA IC00MDMsMTAgKzQwMywxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZi1sYW5n LmMKIC0gIHNhdmVkX2Z1bmN0aW9uX2xpc3QgPSBOVUxMOwogLX0KIC0jZW5kaWYKLUluZGV4OiBn ZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuaAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAx MTcvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmln L2dkYi9mLWxhbmcuaAkyMDExLTAxLTA3IDA5OjAzOjM4LjAwMDAwMDAwMCArMDEwMAotKysrIGdk Yi03LjIuNTAuMjAxMTAxMDcvZ2RiL2YtbGFuZy5oCTIwMTEtMDEtMDcgMDk6MDc6NTguMDAwMDAw MDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmlnL2dkYi9mLWxhbmcuaAkyMDEx LTAxLTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcv Z2RiL2YtbGFuZy5oCTIwMTEtMDEtMTcgMTU6NTQ6MTQuMDAwMDAwMDAwICswMTAwCiBAQCAtNzYs MTQgKzc2LDkgQEAgdHlwZWRlZiBzdHJ1Y3Qgc2F2ZWRfZjc3X2NvbW1vbiBTQVZFRF9GNwogIHR5 cGVkZWYgc3RydWN0IGNvbW1vbl9lbnRyeSBDT01NT05fRU5UUlksICpDT01NT05fRU5UUllfUFRS OwogIApAQCAtNDIyLDEwICs0MjIsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2Ri L2YtbGFuZy5oCiAgI2RlZmluZSBCTEFOS19DT01NT05fTkFNRV9PUklHSU5BTCAiI0JMTktfQ09N IgkvKiBYTEYgYXNzaWduZWQgICovCiAgI2RlZmluZSBCTEFOS19DT01NT05fTkFNRV9NRjc3ICAg ICAiX19CTE5LX18iCS8qIE1GNzcgYXNzaWduZWQgICovCiAgI2RlZmluZSBCTEFOS19DT01NT05f TkFNRV9MT0NBTCAgICAiX19CTEFOSyIJLyogTG9jYWwgR0RCICovCi1JbmRleDogZ2RiLTcuMi41 MC4yMDExMDEwNy9nZGIvZi12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9n ZGIvZi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmln L2dkYi9mLXZhbHByaW50LmMJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLXZhbHByaW50LmMJMjAxMS0wMS0wNyAwOTowNzo1 OC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2YtdmFs cHJpbnQuYwkyMDExLTAxLTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIu NTAuMjAxMTAxMTcvZ2RiL2YtdmFscHJpbnQuYwkyMDExLTAxLTE3IDE1OjU0OjM2LjAwMDAwMDAw MCArMDEwMAogQEAgLTM1LDEwICszNSw2IEBACiAgI2luY2x1ZGUgImNvbW1hbmQuaCIKICAjaW5j bHVkZSAiYmxvY2suaCIKQEAgLTQ0Miw3ICs0NDIsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEx MDEwNy9nZGIvZi12YWxwcmludC5jCiAgfQogIAogLS8qIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0 byBkZXRlcm1pbmUgd2hldGhlciB0aGVyZSBpcyBhCi0tICAgRjc3IGNvbW1vbiBibG9jayB2aXNp YmxlIGF0IHRoZSBjdXJyZW50IHNjb3BlIGNhbGxlZCAnY29tbmFtZScuICovCistICAgRjc3IGNv bW1vbiBibG9jayB2aXNpYmxlIGF0IHRoZSBjdXJyZW50IHNjb3BlIGNhbGxlZCAnY29tbmFtZScu ICAqLwogLQogLSNpZiAwCiAtc3RhdGljIGludApAQCAtNDU5LDcgKzQ1OSw3IEBAIEluZGV4OiBn ZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLXZhbHByaW50LmMKIC0gIGZpID0gZ2V0X3NlbGVjdGVk X2ZyYW1lIChfKCJObyBmcmFtZSBzZWxlY3RlZCIpKTsKIC0KIC0gIC8qIFRoZSBmb2xsb3dpbmcg aXMgZ2VuZXJhbGx5IHJpcHBlZCBvZmYgZnJvbSBzdGFjay5jJ3Mgcm91dGluZSAKLS0gICAgIHBy aW50X2ZyYW1lX2luZm8oKSAqLworLSAgICAgcHJpbnRfZnJhbWVfaW5mbygpLiAgKi8KIC0KIC0g IGZ1bmMgPSBmaW5kX3BjX2Z1bmN0aW9uIChmaS0+cGMpOwogLSAgaWYgKGZ1bmMpCkBAIC00NzYs NyArNDc2LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2YtdmFscHJpbnQuYwog LSAgICAgICAgIHVwIHdpdGggYSBsYXJnZXIgYWRkcmVzcyBmb3IgdGhlIGZ1bmN0aW9uIHVzZSB0 aGF0IGluc3RlYWQuCiAtICAgICAgICAgSSBkb24ndCB0aGluayB0aGlzIGNhbiBldmVyIGNhdXNl IGFueSBwcm9ibGVtczsgdGhlcmUgc2hvdWxkbid0CiAtICAgICAgICAgYmUgYW55IG1pbmltYWwg c3ltYm9scyBpbiB0aGUgbWlkZGxlIG9mIGEgZnVuY3Rpb24uCi0tICAgICAgICAgRklYTUU6ICAo Tm90IG5lY2Vzc2FyaWx5IHRydWUuICBXaGF0IGFib3V0IHRleHQgbGFiZWxzKSAqLworLSAgICAg ICAgIEZJWE1FOiAgKE5vdCBuZWNlc3NhcmlseSB0cnVlLiAgV2hhdCBhYm91dCB0ZXh0IGxhYmVs cz8pICAqLwogLQogLSAgICAgIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqbXN5bWJvbCA9IGxvb2t1 cF9taW5pbWFsX3N5bWJvbF9ieV9wYyAoZmktPnBjKTsKIC0KCmRpZmYgLS1naXQgYS9nZGItZm9y dHJhbi1jb21tb24ucGF0Y2ggYi9nZGItZm9ydHJhbi1jb21tb24ucGF0Y2gKaW5kZXggYTcwYjc4 MC4uYWNjMzYyMiAxMDA2NDQKLS0tIGEvZ2RiLWZvcnRyYW4tY29tbW9uLnBhdGNoCisrKyBiL2dk Yi1mb3J0cmFuLWNvbW1vbi5wYXRjaApAQCAtMSw4ICsxLDggQEAKLUluZGV4OiBnZGItNy4yLjUw LjIwMTAxMTE2L2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dk Yi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAxMTE2Lm9yaWcv Z2RiL2R3YXJmMnJlYWQuYwkyMDEwLTExLTE2IDA4OjE5OjU0LjAwMDAwMDAwMCArMDEwMAotKysr IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTExLTE2IDA4OjI1OjIx LjAwMDAwMDAwMCArMDEwMAotQEAgLTczMTUsMTIgKzczMTUsMTQgQEAgcmVhZF9zZXRfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cgorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9n ZGIvZHdhcmYycmVhZC5jCTIwMTEtMDEtMTcgMTU6NTA6NDEuMDAwMDAwMDAwICswMTAwCisrKysg Z2RiLTcuMi41MC4yMDExMDExNy9nZGIvZHdhcmYycmVhZC5jCTIwMTEtMDEtMTcgMTU6NTY6MjMu MDAwMDAwMDAwICswMTAwCitAQCAtNzQ2NSwxMiArNzQ2NSwxNCBAQCByZWFkX3NldF90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RyCiAgICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHNl dF90eXBlLCBjdSk7CiAgfQogIApAQCAtMTksNyArMTksNyBAQCBJbmRleDogZ2RiLTcuMi41MC4y MDEwMTExNi9nZGIvZHdhcmYycmVhZC5jCiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwogICAg c3RydWN0IHN5bWJvbCAqc3ltOwogICAgQ09SRV9BRERSIGJhc2UgPSAoQ09SRV9BRERSKSAwOwot QEAgLTczNDUsMTAgKzczNDcsNDAgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5m byAqZGllLAorQEAgLTc0OTUsMTAgKzc0OTcsNDAgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVj dCBkaWVfaW5mbyAqZGllLAogICAgICB9CiAgICBpZiAoZGllLT5jaGlsZCAhPSBOVUxMKQogICAg ICB7CkBAIC02MCw3ICs2MCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9kd2Fy ZjJyZWFkLmMKICAJICBhdHRyID0gZHdhcmYyX2F0dHIgKGNoaWxkX2RpZSwgRFdfQVRfZGF0YV9t ZW1iZXJfbG9jYXRpb24sIGN1KTsKICAJICBpZiAoc3ltICE9IE5VTEwgJiYgYXR0ciAhPSBOVUxM KQogIAkgICAgewotQEAgLTczNjYsOCArNzM5OCwyNSBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNzUxNiw4ICs3NTQ4LDI1IEBAIHJlYWRfY29tbW9uX2Js b2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAJICAgICAgU1lNQk9MX1ZBTFVFX0FERFJFU1Mg KHN5bSkgPSBiYXNlICsgYnl0ZV9vZmZzZXQ7CiAgCSAgICAgIGFkZF9zeW1ib2xfdG9fbGlzdCAo c3ltLCAmZ2xvYmFsX3N5bWJvbHMpOwogIAkgICAgfQpAQCAtODYsNyArODYsNyBAQCBJbmRleDog Z2RiLTcuMi41MC4yMDEwMTExNi9nZGIvZHdhcmYycmVhZC5jCiAgICAgIH0KICB9CiAgCi1AQCAt MTA5NTQsNiArMTEwMDMsMTMgQEAgbmV3X3N5bWJvbF9mdWxsIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgcworQEAgLTExMTExLDYgKzExMTYwLDEzIEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHMKICAJICAgIHsKICAJICAgICAgdmFyX2RlY29kZV9sb2NhdGlvbiAoYXR0 ciwgc3ltLCBjdSk7CiAgCSAgICAgIGF0dHIyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZXh0 ZXJuYWwsIGN1KTsKQEAgLTEwMCw3ICsxMDAsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTEx Ni9nZGIvZHdhcmYycmVhZC5jCiAgCSAgICAgIGlmIChTWU1CT0xfQ0xBU1MgKHN5bSkgPT0gTE9D X1NUQVRJQwogIAkJICAmJiBTWU1CT0xfVkFMVUVfQUREUkVTUyAoc3ltKSA9PSAwCiAgCQkgICYm ICFkd2FyZjJfcGVyX29iamZpbGUtPmhhc19zZWN0aW9uX2F0X3plcm8pCi1AQCAtMTExMjYsNiAr MTExODIsMTEgQEAgbmV3X3N5bWJvbF9mdWxsIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcworQEAg LTExMjgzLDYgKzExMzM5LDExIEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHMKICAJICBTWU1CT0xfQ0xBU1MgKHN5bSkgPSBMT0NfVFlQRURFRjsKICAJICBsaXN0X3Rv X2FkZCA9ICZnbG9iYWxfc3ltYm9sczsKICAJICBicmVhazsKQEAgLTExMiwxMSArMTEyLDExIEBA IEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9kd2FyZjJyZWFkLmMKICAJZGVmYXVsdDoK ICAJICAvKiBOb3QgYSB0YWcgd2UgcmVjb2duaXplLiAgSG9wZWZ1bGx5IHdlIGFyZW4ndCBwcm9j ZXNzaW5nCiAgCSAgICAgdHJhc2ggZGF0YSwgYnV0IHNpbmNlIHdlIG11c3Qgc3BlY2lmaWNhbGx5 IGlnbm9yZSB0aGluZ3MKLUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9mLWxhbmcuYwor SW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2YtbGFuZy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMi41MC4yMDEwMTExNi5vcmlnL2dkYi9mLWxhbmcuYwkyMDEwLTExLTE2IDA4OjIxOjQ2 LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2YtbGFuZy5jCTIw MTAtMTEtMTYgMDg6MjI6MDUuMDAwMDAwMDAwICswMTAwCi1AQCAtNDQzLDI3ICs0NDMsMyBAQCBf aW5pdGlhbGl6ZV9mX2xhbmd1YWdlICh2b2lkKQorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3Jp Zy9nZGIvZi1sYW5nLmMJMjAxMS0wMS0xNyAxNTo1NjowNy4wMDAwMDAwMDAgKzAxMDAKKysrKyBn ZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9mLWxhbmcuYwkyMDExLTAxLTE3IDE1OjU2OjQ4LjAwMDAw MDAwMCArMDEwMAorQEAgLTQ0NiwyNyArNDQ2LDMgQEAgX2luaXRpYWxpemVfZl9sYW5ndWFnZSAo dm9pZCkKICAKICAgIGFkZF9sYW5ndWFnZSAoJmZfbGFuZ3VhZ2VfZGVmbik7CiAgfQpAQCAtMTI0 LDcgKzEyNCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9mLWxhbmcuYwogLVNB VkVEX0Y3N19DT01NT05fUFRSIGhlYWRfY29tbW9uX2xpc3QgPSBOVUxMOwkvKiBQdHIgdG8gMXN0 IHNhdmVkIENPTU1PTiAgKi8KIC0KIC0vKiBUaGlzIHJvdXRpbmUgZmluZHMgdGhlIGZpcnN0IGVu Y291bnRyZWQgQ09NTU9OIGJsb2NrIG5hbWVkICJuYW1lIiAKLS0gICB0aGF0IGJlbG9uZ3MgdG8g ZnVuY3Rpb24gZnVuY25hbWUgKi8KKy0gICB0aGF0IGJlbG9uZ3MgdG8gZnVuY3Rpb24gZnVuY25h bWUuICAqLwogLQogLVNBVkVEX0Y3N19DT01NT05fUFRSCiAtZmluZF9jb21tb25fZm9yX2Z1bmN0 aW9uIChjaGFyICpuYW1lLCBjaGFyICpmdW5jbmFtZSkKQEAgLTE0NCwxMCArMTQ0LDEwIEBAIElu ZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9mLWxhbmcuYwogLSAgICB9CiAtICByZXR1cm4g KE5VTEwpOwogLX0KLUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9mLWxhbmcuaAorSW5k ZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMi41MC4yMDEwMTExNi5vcmlnL2dkYi9mLWxhbmcuaAkyMDEwLTExLTE2IDA4OjIxOjQ2LjAw MDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2YtbGFuZy5oCTIwMTAt MTEtMTYgMDg6MjI6MDUuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5v cmlnL2dkYi9mLWxhbmcuaAkyMDExLTAxLTE3IDE1OjU0OjE0LjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2YtbGFuZy5oCTIwMTEtMDEtMTcgMTU6NTY6MjMuMDAw MDAwMDAwICswMTAwCiBAQCAtNTIsMzYgKzUyLDggQEAgZW51bSBmOTBfcmFuZ2VfdHlwZQogICAg ICBOT05FX0JPVU5EX0RFRkFVTFQJCS8qICIobG93OmhpZ2gpIiAgKi8KICAgIH07CkBAIC0xODUs MTAgKzE4NSwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvZi1sYW5nLmgKICAK ICAvKiBXaGVuIHJlYXNvbmFibGUgYXJyYXkgYm91bmRzIGNhbm5vdCBiZSBmZXRjaGVkLCBzdWNo IGFzIHdoZW4gCiAgICAgeW91IGFzayB0byAnbXQgcHJpbnQgc3ltYm9scycgYW5kIHRoZXJlIGlz IG5vIHN0YWNrIGZyYW1lIGFuZCAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9mLXZh bHByaW50LmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9mLXZhbHByaW50LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAxMTE2Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwky MDEwLTExLTE2IDA4OjIxOjQ2LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDEx MTYvZ2RiL2YtdmFscHJpbnQuYwkyMDEwLTExLTE2IDA4OjIyOjA1LjAwMDAwMDAwMCArMDEwMAor LS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTEtMDEtMTcg MTU6NTQ6MzYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvZi12 YWxwcmludC5jCTIwMTEtMDEtMTcgMTU6NTk6MzguMDAwMDAwMDAwICswMTAwCiBAQCAtMzQsNiAr MzQsOCBAQAogICNpbmNsdWRlICJnZGJjb3JlLmgiCiAgI2luY2x1ZGUgImNvbW1hbmQuaCIKQEAg LTE5OCw3ICsxOTgsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvZi12YWxwcmlu dC5jCiAgCiAgZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVfZl92YWxwcmludCAodm9pZCk7CiAgc3Rh dGljIHZvaWQgaW5mb19jb21tb25fY29tbWFuZCAoY2hhciAqLCBpbnQpOwotQEAgLTQ4NiwyMiAr NDg4LDU0IEBAIGZfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2QKK0BAIC00 ODksMjIgKzQ5MSw1NCBAQCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk CiAgICByZXR1cm4gMDsKICB9CiAgCkBAIC0yNjYsNyArMjY2LDcgQEAgSW5kZXg6IGdkYi03LjIu NTAuMjAxMDExMTYvZ2RiL2YtdmFscHJpbnQuYwogIH0KICAKICAvKiBUaGlzIGZ1bmN0aW9uIGlz IHVzZWQgdG8gcHJpbnQgb3V0IHRoZSB2YWx1ZXMgaW4gYSBnaXZlbiBDT01NT04gCi1AQCAtNTEx LDExICs1NDUsOSBAQCBsaXN0X2FsbF92aXNpYmxlX2NvbW1vbnMgKGNoYXIgKmZ1bm5hbWUpCitA QCAtNTE0LDExICs1NDgsOSBAQCBsaXN0X2FsbF92aXNpYmxlX2NvbW1vbnMgKGNoYXIgKmZ1bm5h bWUpCiAgc3RhdGljIHZvaWQKICBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICpjb21uYW1lLCBp bnQgZnJvbV90dHkpCiAgewpAQCAtMjgwLDkgKzI4MCw5IEBAIEluZGV4OiBnZGItNy4yLjUwLjIw MTAxMTE2L2dkYi9mLXZhbHByaW50LmMKICAKICAgIC8qIFdlIGhhdmUgYmVlbiB0b2xkIHRvIGRp c3BsYXkgdGhlIGNvbnRlbnRzIG9mIEY3NyBDT01NT04gCiAgICAgICBibG9jayBzdXBwb3NlZGx5 IHZpc2libGUgaW4gdGhpcyBmdW5jdGlvbi4gIExldCB1cyAKLUBAIC01MjcsNzQgKzU1OSwzMSBA QCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICpjb21uYW1lLCBpbnQgCitAQCAtNTMwLDc0ICs1 NjIsMzEgQEAgaW5mb19jb21tb25fY29tbWFuZCAoY2hhciAqY29tbmFtZSwgaW50IAogICAgLyog VGhlIGZvbGxvd2luZyBpcyBnZW5lcmFsbHkgcmlwcGVkIG9mZiBmcm9tIHN0YWNrLmMncyByb3V0 aW5lIAotICAgICAgcHJpbnRfZnJhbWVfaW5mbygpICovCisgICAgICBwcmludF9mcmFtZV9pbmZv KCkuICAqLwogIAogLSAgZnVuYyA9IGZpbmRfcGNfZnVuY3Rpb24gKGdldF9mcmFtZV9wYyAoZmkp KTsKIC0gIGlmIChmdW5jKQpAQCAtMzAxLDcgKzMwMSw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIw MTAxMTE2L2dkYi9mLXZhbHByaW50LmMKIC0gICAgICAgICB1cCB3aXRoIGEgbGFyZ2VyIGFkZHJl c3MgZm9yIHRoZSBmdW5jdGlvbiB1c2UgdGhhdCBpbnN0ZWFkLgogLSAgICAgICAgIEkgZG9uJ3Qg dGhpbmsgdGhpcyBjYW4gZXZlciBjYXVzZSBhbnkgcHJvYmxlbXM7IHRoZXJlIHNob3VsZG4ndAog LSAgICAgICAgIGJlIGFueSBtaW5pbWFsIHN5bWJvbHMgaW4gdGhlIG1pZGRsZSBvZiBhIGZ1bmN0 aW9uLgotLSAgICAgICAgIEZJWE1FOiAgKE5vdCBuZWNlc3NhcmlseSB0cnVlLiAgV2hhdCBhYm91 dCB0ZXh0IGxhYmVscykgKi8KKy0gICAgICAgICBGSVhNRTogIChOb3QgbmVjZXNzYXJpbHkgdHJ1 ZS4gIFdoYXQgYWJvdXQgdGV4dCBsYWJlbHM/KSAgKi8KIC0KIC0gICAgICBzdHJ1Y3QgbWluaW1h bF9zeW1ib2wgKm1zeW1ib2wgPSAKIC0JbG9va3VwX21pbmltYWxfc3ltYm9sX2J5X3BjIChnZXRf ZnJhbWVfcGMgKGZpKSk7CkBAIC0zMjcsNyArMzI3LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAx MDExMTYvZ2RiL2YtdmFscHJpbnQuYwogICAgICB9CiAgCiAtICAvKiBJZiBjb21uYW1lIGlzIE5V TEwsIHdlIGFzc3VtZSB0aGUgdXNlciB3aXNoZXMgdG8gc2VlIHRoZSAKLS0gICAgIHdoaWNoIENP TU1PTiBibG9ja3MgYXJlIHZpc2libGUgaGVyZSBhbmQgdGhlbiByZXR1cm4gKi8KKy0gICAgIHdo aWNoIENPTU1PTiBibG9ja3MgYXJlIHZpc2libGUgaGVyZSBhbmQgdGhlbiByZXR1cm4uICAqLwog LQogLSAgaWYgKGNvbW5hbWUgPT0gMCkKICsgIHdoaWxlIChibG9jaykKQEAgLTM3MSwxMSArMzcx LDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9mLXZhbHByaW50LmMKICB9CiAg CiAgdm9pZAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3N0YWNrLmMKK0luZGV4OiBn ZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9zdGFjay5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41 MC4yMDEwMTExNi5vcmlnL2dkYi9zdGFjay5jCTIwMTAtMDktMzAgMTI6Mjk6MDAuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvc3RhY2suYwkyMDEwLTExLTE2IDA4 OjIyOjA1LjAwMDAwMDAwMCArMDEwMAotQEAgLTE0OTAsNiArMTQ5MCw4IEBAIGl0ZXJhdGVfb3Zl cl9ibG9ja19sb2NhbHMgKHN0cnVjdCBibG9jayAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9y aWcvZ2RiL3N0YWNrLmMJMjAxMS0wMS0xNyAxNTo0NzozNy4wMDAwMDAwMDAgKzAxMDAKKysrKyBn ZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9zdGFjay5jCTIwMTEtMDEtMTcgMTU6NTY6MjMuMDAwMDAw MDAwICswMTAwCitAQCAtMTQ5OCw2ICsxNDk4LDggQEAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2xvY2Fs cyAoc3RydWN0IGJsb2NrIAogIAljYXNlIExPQ19DT01QVVRFRDoKICAJICBpZiAoU1lNQk9MX0lT X0FSR1VNRU5UIChzeW0pKQogIAkgICAgYnJlYWs7CkBAIC0zODQsMTAgKzM4NCwxMCBAQCBJbmRl eDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvc3RhY2suYwogIAkgICgqY2IpIChTWU1CT0xfUFJJ TlRfTkFNRSAoc3ltKSwgc3ltLCBjYl9kYXRhKTsKICAJICBicmVhazsKICAKLUluZGV4OiBnZGIt Ny4yLjUwLjIwMTAxMTE2L2dkYi9zeW10YWIuaAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcv Z2RiL3N5bXRhYi5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEwMTExNi5vcmlnL2dk Yi9zeW10YWIuaAkyMDEwLTExLTE2IDA3OjUzOjU5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03 LjIuNTAuMjAxMDExMTYvZ2RiL3N5bXRhYi5oCTIwMTAtMTEtMTYgMDg6MjI6MDUuMDAwMDAwMDAw ICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmlnL2dkYi9zeW10YWIuaAkyMDExLTAx LTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2Ri L3N5bXRhYi5oCTIwMTEtMDEtMTcgMTU6NTY6MjMuMDAwMDAwMDAwICswMTAwCiBAQCAtNDA4LDcg KzQwOCwxMCBAQCB0eXBlZGVmIGVudW0gZG9tYWluX2VudW1fdGFnCiAgICBGVU5DVElPTlNfRE9N QUlOLAogIApAQCAtNDAwLDEwICs0MDAsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYv Z2RiL3N5bXRhYi5oCiAgfQogIGRvbWFpbl9lbnVtOwogIAotSW5kZXg6IGdkYi03LjIuNTAuMjAx MDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZXhwCitJbmRleDog Z2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9j ay5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vY29tbW9uLWJsb2NrLmV4cAkyMDEwLTExLTE2IDA4OjIyOjA1LjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21t b24tYmxvY2suZXhwCTIwMTEtMDEtMTcgMTU6NTY6MjMuMDAwMDAwMDAwICswMTAwCiBAQCAtMCww ICsxLDEwMSBAQAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCiArCkBAIC01MDYsMTAgKzUwNiwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9jay5leHAKICtnZGJfdGVzdCAicCBp eF94IiAiID0gMSAqIiAicCBpeF94IGluIgogK2dkYl90ZXN0ICJwIGl5X3kiICIgPSAyICoiICJw IGl5X3kgaW4iCiArZ2RiX3Rlc3QgInAgaXpfejIiICIgPSAzICoiICJwIGl6X3oyIGluIgotSW5k ZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24t YmxvY2suZjkwCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2NvbW1vbi1ibG9jay5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vY29tbW9uLWJsb2NrLmY5MAkyMDEwLTExLTE2IDA4OjIy OjA1LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZjkwCTIwMTEtMDEtMTcgMTU6NTY6MjMuMDAwMDAw MDAwICswMTAwCiBAQCAtMCwwICsxLDY3IEBACiArISBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICshCgpkaWZmIC0tZ2l0IGEvZ2RiLXJlYWRsaW5lLTYuMC1z aWduYWwucGF0Y2ggYi9nZGItcmVhZGxpbmUtNi4wLXNpZ25hbC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWMzNmIwCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJl YWRsaW5lLTYuMC1zaWduYWwucGF0Y2gKQEAgLTAsMCArMSwyNjYgQEAKK2h0dHA6Ly9zb3VyY2V3 YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA5LTExL21zZzAwNTk2Lmh0bWwKK1N1YmplY3Q6IFtn ZGIgRllJLXBhdGNoXSBjYWxsYmFjay1tb2RlIHJlYWRsaW5lLTYuMCByZWdyZXNzaW9uCisKK0hp IENoZXQsCisKK0ZTRiBHREIgY3VycmVudGx5IHNoaXBzIGJ1bmRsZWQgd2l0aCByZWFkbGluZS01 LjIgd2hpY2ggd29ya3MgZmluZS4KK0J1dCB1c2luZyAtLXdpdGgtc3lzdGVtLXJlYWRsaW5lIGFu ZCByZWFkbGluZS02LjAtcGF0Y2hsZXZlbDQgaGFzCithIHJlZ3Jlc3Npb246CisKK3JlYWRsaW5l LTUuMjogUnVuIGBnZGIgLW54IC1xJyBhbmQgdHlwZSBDVFJMLUM6CisoZ2RiKSBRdWl0CisoZ2Ri KSBfCisKK3JlYWRsaW5lLTYuMDogUnVuIGBnZGIgLW54IC1xJyBhbmQgdHlwZSBDVFJMLUM6Ciso Z2RiKSBfCisgPSBub3RoaW5nIGhhcHBlbnMgKGl0IGdldHMgYnVmZmVyZWQgYW5kIGV4ZWN1dGVk IGxhdGVyKQorCShJdCBkb2VzIGFsc28gRkFJTCBvbiBnZGIuZ2RiL3NlbGZ0ZXN0LmV4cC4pCisK K0l0IGlzIGJlY2F1c2UgR0RCIHdhaXRzIGluIGl0cyBvd24gcG9sbCgpIG1haW5sb29wIGFuZCBy ZWFkbGluZSB1c2VzIHZpYQorcmxfY2FsbGJhY2tfaGFuZGxlcl9pbnN0YWxsIGFuZCBybF9jYWxs YmFja19oYW5kbGVyX3JlbW92ZS4gIFRoaXMgd2F5IHRoZQorcmVhZGxpbmUgaW50ZXJuYWwgdmFy aWFibGUgX3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSByZW1haW5zIDAgYW5kIENUUkwtQyBnZXRz Citvbmx5IHN0b3JlZCB0byBfcmxfY2F1Z2h0X3NpZ25hbCBidXQgbm90IGV4ZWN1dGVkLgorCitT ZWVuIGluIHJsX3NpZ25hbF9oYW5kbGVyIGV2ZW4gaWYgX3JsX2ludGVycnVwdF9pbW1lZGlhdGVs eSBpcyBzZXQgYW5kCitfcmxfaGFuZGxlX3NpZ25hbCBpcyBjYWxsZWQgdGhlbiB0aGUgc2lnbmFs IGlzIHN0aWxsIHN0b3JlZCB0bworX3JsX2NhdWdodF9zaWduYWwuICBJbiB0aGUgX3JsX2ludGVy cnVwdF9pbW1lZGlhdGVseSBjYXNlIGl0IHNob3VsZCBub3QgYmUKK3N0b3JlZCB3aGVuIGl0IHdh cyBhbHJlYWR5IHByb2Nlc3NlZC4KKworcmxfc2lnbmFsX2hhbmRsZXIgZG9lcyBgX3JsX2ludGVy cnVwdF9pbW1lZGlhdGVseSA9IDA7JyAtIHdoaWxlIEkgYW0gbm90IGF3YXJlCitvZiBpdHMgbWVh bmluZyBpdCBicmVha3MgdGhlIG5lc3QtY291bnRpbmcgb2Ygb3RoZXIgcm91dGluZXMgd2hpY2gg ZG8KK2BfcmxfaW50ZXJydXB0X2ltbWVkaWF0ZWx5Kys7JyBhbmQgYF9ybF9pbnRlcnJ1cHRfaW1t ZWRpYXRlbHktLTsnIHBvc3NpYmx5CitjcmVhdGluZyBwcm9ibGVtYXRpYyBgX3JsX2ludGVycnVw dF9pbW1lZGlhdGVseSA9PSAtMScuCisKK2BfcmxfaW50ZXJydXB0X2ltbWVkaWF0ZWx5JyBpcyBh biBpbnRlcm5hbCB2YXJpYWJsZSwgaG93IGl0IGNvdWxkIGJlIGFjY2Vzc2VkCitieSBhIHJlYWRs aW5lIGFwcGxpY2F0aW9uPyAoT0ssIG1heWJlIGl0IHNob3VsZCBub3QgYmUgdXNlZC4pCisKK0F0 dGFjaGluZyBhIGN1cnJlbnQgR0RCLXNpZGUgcGF0Y2ggYnV0IGl0IG11c3QgYWNjZXNzIHJlYWRs aW5lIGludGVybmFsCit2YXJpYWJsZSBfcmxfY2F1Z2h0X3NpZ25hbCBhbmQgaXQgaXMgZ2VuZXJh bGx5IGp1c3QgYSB3b3JrYXJvdW5kLiAgQ291bGQgeW91CitwbGVhc2UgaW5jbHVkZSBzdXBwb3J0 IGZvciBzaWduYWxzIGluIHRoaXMgYXN5bmNocm9ub3VzIG1vZGUgaW4gcmVhZGxpbmUtNi4xPwor SSBmaW5kIGl0IHdvdWxkIGJlIGVub3VnaCB0byBtYWtlIFJMX0NIRUNLX1NJR05BTFMgcHVibGlj PworCisKK0dEQjogTm8gcmVncmVzc2lvbnMgb24ge3g4Nl82NCx4ODZfNjQtbTMyLGk2ODZ9LWZl ZG9yYTEyLWxpbnV4LWdudS4KK0J1dCB0aGlzIGlzIG5vdCBhIHBhdGNoIGludGVuZGVkIHRvIGJl IGFjY2VwdGVkLgorCisKK1RoYW5rcywKK0phbgorCisKK2dkYi8KKzIwMDktMTEtMjkgIEphbiBL cmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCSogY29uZmlnLmluLCBj b25maWd1cmU6IFJlZ2VuZXJhdGUuCisJKiBjb25maWd1cmUuYWMgKGZvciByZWFkbGluZV9lY2hv aW5nX3ApOiBNb3ZlIGluc2lkZSAkTElCUyBjaGFuZ2UuCisJKGZvciBfcmxfY2F1Z2h0X3NpZ25h bCk6IE5ldy4KKwkqIGV2ZW50LWxvb3AuYzogSW5jbHVkZSByZWFkbGluZS9yZWFkbGluZS5oLgor CShnZGJfZG9fb25lX2V2ZW50KSBbSEFWRV9SRUFETElORV9DQVVHSFRfU0lHTkFMXTogTmV3Lgor CitnZGIvdGVzdHN1aXRlLworMjAwOS0xMS0yOSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9j aHZpbEByZWRoYXQuY29tPgorCisJKiBnZGIuZ2RiL3NlbGZ0ZXN0LmV4cCAoYmFja3RyYWNlIHRo cm91Z2ggc2lnbmFsIGhhbmRsZXIpOiBNb3ZlIGJlZm9yZQorCVNJR0lOVCBwYXNzLCBkcm9wIHRo ZSB0aW1lb3V0IGNhc2UuCisJKHNlbmQgU0lHSU5UIHNpZ25hbCB0byBjaGlsZCBwcm9jZXNzKTog VXNlIGdkYl90ZXN0LgorCShiYWNrdHJhY2UgdGhyb3VnaCByZWFkbGluZSBoYW5kbGVyKTogTmV3 LgorCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvY29uZmlnLmluCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi9jb25maWcuaW4JMjAxMS0wMS0xNyAx NTozNjo0MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9jb25m aWcuaW4JMjAxMS0wMS0xNyAxNTozNzowOS4wMDAwMDAwMDAgKzAxMDAKK0BAIC00NjQsNiArNDY0 LDkgQEAKKyAvKiBEZWZpbmUgdG8gMSBpZiB3Y3dpZHRoIGlzIGRlY2xhcmVkIGV2ZW4gYWZ0ZXIg dW5kZWZpbmluZyBtYWNyb3MuICovCisgI3VuZGVmIEhBVkVfUkFXX0RFQ0xfV0NXSURUSAorIAor Ky8qIHJlYWRsaW5lLTYuMCB3b3JrYXJvdW5kIG9mIGJsb2NrZWQgc2lnbmFscy4gKi8KKysjdW5k ZWYgSEFWRV9SRUFETElORV9DQVVHSFRfU0lHTkFMCisrCisgLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIGByZWFscGF0aCcgZnVuY3Rpb24uICovCisgI3VuZGVmIEhBVkVfUkVBTFBBVEgK KyAKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9jb25maWd1cmUuYWMKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDExLTAx LTE3IDE1OjM2OjQyLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2Ri L2NvbmZpZ3VyZS5hYwkyMDExLTAxLTE3IDE1OjM3OjA5LjAwMDAwMDAwMCArMDEwMAorQEAgLTcz NiwxNyArNzM2LDI1IEBAIGlmIHRlc3QgIiR3aXRoX3N5c3RlbV9yZWFkbGluZSIgPSB5ZXM7IHQK KyAgICMgcmVhZGxpbmUtNi4wIHN0YXJ0ZWQgdG8gdXNlIHRoZSBuYW1lIGBfcmxfZWNob2luZ19w Jy4KKyAgICMgYCQoUkVBRExJTkVfRElSKS8nIG9mIGJ1bmRsZWQgcmVhZGxpbmUgd291bGQgbm90 IHJlc29sdmUgaW4gY29uZmlndXJlLgorIAorLSAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgcmVhZGxp bmVfZWNob2luZ19wXSkKKyAgIHNhdmVfTElCUz0kTElCUworICAgTElCUz0iJExJQlMgJFJFQURM SU5FIgorKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgcmVhZGxpbmVfZWNob2luZ19wXSkKKyAgIEFD X0xJTktfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTSgsW1tleHRlcm4gaW50IHJlYWRsaW5lX2VjaG9p bmdfcDsKKyAJCQkJICAgIHJldHVybiByZWFkbGluZV9lY2hvaW5nX3A7XV0pLAorIAkJIFtSRUFE TElORV9FQ0hPSU5HX1A9eWVzXSwKKyAJCSBbUkVBRExJTkVfRUNIT0lOR19QPW5vCisgCQkgIEFD X0RFRklORShbcmVhZGxpbmVfZWNob2luZ19wXSwgW19ybF9lY2hvaW5nX3BdLAorIAkJCSAgICBb cmVhZGxpbmUtNi4wIHN0YXJ0ZWQgdG8gdXNlIGRpZmZlcmVudCBuYW1lLl0pXSkKKy0gIExJQlM9 IiRzYXZlX0xJQlMiCisgICBBQ19NU0dfUkVTVUxUKFskUkVBRExJTkVfRUNIT0lOR19QXSkKKysg IEFDX01TR19DSEVDS0lORyhbZm9yIF9ybF9jYXVnaHRfc2lnbmFsXSkKKysgIEFDX0xJTktfSUZF TFNFKEFDX0xBTkdfUFJPR1JBTSgsW1tleHRlcm4gaW50IHZvbGF0aWxlIF9ybF9jYXVnaHRfc2ln bmFsOworKwkJCQkgICAgcmV0dXJuIF9ybF9jYXVnaHRfc2lnbmFsO11dKSwKKysJCSBbUkVBRExJ TkVfQ0FVR0hUX1NJR05BTD15ZXMKKysJCSAgQUNfREVGSU5FKFtIQVZFX1JFQURMSU5FX0NBVUdI VF9TSUdOQUxdLCwKKysJCQkgICAgW3JlYWRsaW5lLTYuMCB3b3JrYXJvdW5kIG9mIGJsb2NrZWQg c2lnbmFscy5dKV0sCisrCQkgW1JFQURMSU5FX0NBVUdIVF9TSUdOQUw9bm9dKQorKyAgQUNfTVNH X1JFU1VMVChbJFJFQURMSU5FX0NBVUdIVF9TSUdOQUxdKQorKyAgTElCUz0iJHNhdmVfTElCUyIK KyBlbHNlCisgICBSRUFETElORT0nJChSRUFETElORV9ESVIpL2xpYnJlYWRsaW5lLmEnCisgICBS RUFETElORV9ERVBTPSckKFJFQURMSU5FKScKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dk Yi9ldmVudC1sb29wLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcv Z2RiL2V2ZW50LWxvb3AuYwkyMDExLTAxLTA1IDIzOjIyOjQ4LjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2V2ZW50LWxvb3AuYwkyMDExLTAxLTE3IDE1OjM3OjIz LjAwMDAwMDAwMCArMDEwMAorQEAgLTM3LDYgKzM3LDcgQEAKKyAjaW5jbHVkZSAiZXhjZXB0aW9u cy5oIgorICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCisgI2luY2x1ZGUgImdkYl9zZWxlY3QuaCIK KysjaW5jbHVkZSAicmVhZGxpbmUvcmVhZGxpbmUuaCIKKyAKKyAvKiBUZWxsIGNyZWF0ZV9maWxl X2hhbmRsZXIgd2hhdCBldmVudHMgd2UgYXJlIGludGVyZXN0ZWQgaW4uCisgICAgVGhpcyBpcyB1 c2VkIGJ5IHRoZSBzZWxlY3QgdmVyc2lvbiBvZiB0aGUgZXZlbnQgbG9vcC4gICovCitAQCAtNDE5 LDYgKzQyMCw5IEBAIGdkYl9kb19vbmVfZXZlbnQgKHZvaWQgKmRhdGEpCisgICBzdGF0aWMgaW50 IGV2ZW50X3NvdXJjZV9oZWFkID0gMDsKKyAgIGNvbnN0IGludCBudW1iZXJfb2Zfc291cmNlcyA9 IDM7CisgICBpbnQgY3VycmVudCA9IDA7CisrI2lmZGVmIEhBVkVfUkVBRExJTkVfQ0FVR0hUX1NJ R05BTAorKyAgZXh0ZXJuIGludCB2b2xhdGlsZSBfcmxfY2F1Z2h0X3NpZ25hbDsKKysjZW5kaWYK KyAKKyAgIC8qIEFueSBldmVudHMgYWxyZWFkeSB3YWl0aW5nIGluIHRoZSBxdWV1ZT8gICovCisg ICBpZiAocHJvY2Vzc19ldmVudCAoKSkKK0BAIC00NjMsNiArNDY3LDI5IEBAIGdkYl9kb19vbmVf ZXZlbnQgKHZvaWQgKmRhdGEpCisgICBpZiAoZ2RiX3dhaXRfZm9yX2V2ZW50ICgxKSA8IDApCisg ICAgIHJldHVybiAtMTsKKyAKKysjaWZkZWYgSEFWRV9SRUFETElORV9DQVVHSFRfU0lHTkFMCisr ICBpZiAoYXN5bmNfY29tbWFuZF9lZGl0aW5nX3AgJiYgUkxfSVNTVEFURSAoUkxfU1RBVEVfQ0FM TEJBQ0spCisrICAgICAgJiYgX3JsX2NhdWdodF9zaWduYWwpCisrICAgIHsKKysgICAgICBjaGFy ICpwcm9tcHQ7CisrCisrICAgICAgaWYgKHJsX3Byb21wdCA9PSBOVUxMKQorKwl7CisrCSAgLyog U2hvdWxkIG5vdCBoYXBwZW4sIGRlZmVuc2l2ZSBvbmx5LiAgKi8KKysJICBwcm9tcHQgPSAiIjsK KysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIHByb21wdCA9IGFsbG9jYSAoc3RybGVuIChybF9w cm9tcHQpICsgMSk7CisrCSAgc3RyY3B5IChwcm9tcHQsIHJsX3Byb21wdCk7CisrCX0KKysKKysg ICAgICAvKiBDYWxsIFJMX0NIRUNLX1NJR05BTFMgdGhpcyB3YXkuICAqLworKyAgICAgIHJsX2Nh bGxiYWNrX2hhbmRsZXJfcmVtb3ZlICgpOworKyAgICAgIHJsX2NhbGxiYWNrX2hhbmRsZXJfaW5z dGFsbCAocHJvbXB0LCBpbnB1dF9oYW5kbGVyKTsKKysgICAgfQorKyNlbmRpZgorKworICAgLyog SGFuZGxlIGFueSBuZXcgZXZlbnRzIG9jY3VycmVkIHdoaWxlIHdhaXRpbmcuICAqLworICAgaWYg KHByb2Nlc3NfZXZlbnQgKCkpCisgICAgIHJldHVybiAxOworSW5kZXg6IGdkYi03LjIuNTAuMjAx MTAxMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAorPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3Qu ZXhwCTIwMTEtMDEtMTcgMTU6MzY6MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4y MDExMDEwNy9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCTIwMTEtMDEtMTcgMTU6 Mzc6MDkuMDAwMDAwMDAwICswMTAwCitAQCAtNDMzLDYgKzQzMywyOCBAQCBwcm9jIHRlc3Rfd2l0 aF9zZWxmIHsgZXhlY3V0YWJsZSB9IHsKKyAJfQorICAgICB9CisgICAgIAorKyAgICAjIGdldCBh IHN0YWNrIHRyYWNlIHdpdGggdGhlIHBvbGwgZnVuY3Rpb24KKysgICAgIworKyAgICAjIFRoaXMg ZmFpbHMgb24gc29tZSBsaW51eCBzeXN0ZW1zIGZvciB1bmtub3duIHJlYXNvbnMuICBPbiB0aGUK KysgICAgIyBzeXN0ZW1zIHdoZXJlIGl0IGZhaWxzLCBzb21ldGltZXMgaXQgd29ya3MgZmluZSB3 aGVuIHJ1biBtYW51YWxseS4KKysgICAgIyBUaGUgdGVzdHN1aXRlIGZhaWx1cmVzIG1heSBub3Qg YmUgbGltaXRlZCB0byBqdXN0IGFvdXQgc3lzdGVtcy4KKysgICAgc2V0dXBfeGZhaWwgImkqODYt cGMtbGludXhhb3V0LWdudSIKKysgICAgc2V0IGRlc2NyaXB0aW9uICJiYWNrdHJhY2UgdGhyb3Vn aCBzaWduYWwgaGFuZGxlciIKKysgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImJhY2t0cmFjZSIgIiRk ZXNjcmlwdGlvbiIgeworKwktcmUgIiMwLioocmVhZHxwb2xsKS4qaW4gbWFpbiBcXCguKlxcKSBh dCAuKmdkYlxcLmMuKiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgIiRkZXNjcmlwdGlvbiIK KysJfQorKwktcmUgIi4qJGdkYl9wcm9tcHQgJCIgeworKwkgICAgIyBPbiB0aGUgYWxwaGEsIHdl IGhpdCB0aGUgaW5mYW1vdXMgcHJvYmxlbSBhYm91dCBnZGIKKysJICAgICMgYmVpbmcgdW5hYmxl IHRvIGdldCB0aGUgZnJhbWUgcG9pbnRlciAobWVudGlvbmVkIGluCisrCSAgICAjIGdkYi9SRUFE TUUpLiAgQXMgaXQgaXMgaW50ZXJtaXR0ZW50LCB0aGVyZSBpcyBubyB3YXkgdG8KKysJICAgICMg WEZBSUwgaXQgd2hpY2ggd2lsbCBnaXZlIHVzIGFuIFhQQVNTIGlmIHRoZSBwcm9ibGVtIGdvZXMK KysJICAgICMgYXdheS4KKysJICAgIHNldHVwX3hmYWlsICJhbHBoYSotKi1vc2YqIgorKwkgICAg ZmFpbCAiJGRlc2NyaXB0aW9uIgorKwl9CisrICAgIH0KKysKKyAgICAgc2V0IGRlc2NyaXB0aW9u ICJzZW5kIFNJR0lOVCBzaWduYWwgdG8gY2hpbGQgcHJvY2VzcyIKKyAgICAgZ2RiX3Rlc3QgInNp Z25hbCBTSUdJTlQiIFwKKyAJIkNvbnRpbnVpbmcgd2l0aCBzaWduYWwgU0lHSU5ULioiIFwKK0BA IC00NDMsMTAgKzQ2NSwxMSBAQCBwcm9jIHRlc3Rfd2l0aF9zZWxmIHsgZXhlY3V0YWJsZSB9IHsK KyAgICAgIyBUaGlzIGZhaWxzIG9uIHNvbWUgbGludXggc3lzdGVtcyBmb3IgdW5rbm93biByZWFz b25zLiAgT24gdGhlCisgICAgICMgc3lzdGVtcyB3aGVyZSBpdCBmYWlscywgc29tZXRpbWVzIGl0 IHdvcmtzIGZpbmUgd2hlbiBydW4gbWFudWFsbHkuCisgICAgICMgVGhlIHRlc3RzdWl0ZSBmYWls dXJlcyBtYXkgbm90IGJlIGxpbWl0ZWQgdG8ganVzdCBhb3V0IHN5c3RlbXMuCisrICAgICMgT3B0 aW9uYWwgc3lzdGVtIHJlYWRsaW5lIG1heSBub3QgaGF2ZSBzeW1ib2xzIHRvIGJlIHNob3duLgor ICAgICBzZXR1cF94ZmFpbCAiaSo4Ni1wYy1saW51eGFvdXQtZ251IgorLSAgICBzZXQgZGVzY3Jp cHRpb24gImJhY2t0cmFjZSB0aHJvdWdoIHNpZ25hbCBoYW5kbGVyIgorKyAgICBzZXQgZGVzY3Jp cHRpb24gImJhY2t0cmFjZSB0aHJvdWdoIHJlYWRsaW5lIGhhbmRsZXIiCisgICAgIGdkYl90ZXN0 X211bHRpcGxlICJiYWNrdHJhY2UiICIkZGVzY3JpcHRpb24iIHsKKy0JLXJlICIjMC4qKHJlYWR8 cG9sbCkuKmluIG1haW4gXFwoLipcXCkgYXQgLipnZGJcXC5jLiokZ2RiX3Byb21wdCAkIiB7Cisr CS1yZSAiIzAuKmdkYl9kb19vbmVfZXZlbnQuKmluIG1haW4gXFwoLipcXCkgYXQgLipnZGJcXC5j LiokZ2RiX3Byb21wdCAkIiB7CisgCSAgICBwYXNzICIkZGVzY3JpcHRpb24iCisgCX0KKyAJLXJl ICIuKiRnZGJfcHJvbXB0ICQiIHsKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9jb25m aWd1cmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL2NvbmZp Z3VyZQkyMDExLTAxLTE3IDE1OjM2OjQyLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAu MjAxMTAxMDcvZ2RiL2NvbmZpZ3VyZQkyMDExLTAxLTE3IDE1OjM3OjA5LjAwMDAwMDAwMCArMDEw MAorQEAgLTEwMjM3LDEwICsxMDIzNywxMCBAQCBpZiB0ZXN0ICIkd2l0aF9zeXN0ZW1fcmVhZGxp bmUiID0geWVzOyB0CisgICAjIHJlYWRsaW5lLTYuMCBzdGFydGVkIHRvIHVzZSB0aGUgbmFtZSBg X3JsX2VjaG9pbmdfcCcuCisgICAjIGAkKFJFQURMSU5FX0RJUikvJyBvZiBidW5kbGVkIHJlYWRs aW5lIHdvdWxkIG5vdCByZXNvbHZlIGluIGNvbmZpZ3VyZS4KKyAKKy0gIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIHJlYWRsaW5lX2VjaG9pbmdf cCIgPiY1CistJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHJlYWRsaW5lX2VjaG9pbmdfcC4uLiAi ID4mNjsgfQorICAgc2F2ZV9MSUJTPSRMSUJTCisgICBMSUJTPSIkTElCUyAkUkVBRExJTkUiCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBy ZWFkbGluZV9lY2hvaW5nX3AiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciByZWFkbGlu ZV9lY2hvaW5nX3AuLi4gIiA+JjY7IH0KKyAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNv bmZ0ZXN0LiRhY19leHQKKyAvKiBlbmQgY29uZmRlZnMuaC4gICovCisgCitAQCAtMTAyNjMsOSAr MTAyNjMsMzUgQEAgJGFzX2VjaG8gIiNkZWZpbmUgcmVhZGxpbmVfZWNob2luZ19wIF9ybAorIGZp Cisgcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgIGNv bmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CistICBMSUJTPSIkc2F2ZV9MSUJTIgor ICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRSRUFE TElORV9FQ0hPSU5HX1AiID4mNQorICRhc19lY2hvICIkUkVBRExJTkVfRUNIT0lOR19QIiA+JjY7 IH0KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yIF9ybF9jYXVnaHRfc2lnbmFsIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgX3Js X2NhdWdodF9zaWduYWwuLi4gIiA+JjY7IH0KKysgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0Yg PmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFp biAoKQorK3sKKytleHRlcm4gaW50IHZvbGF0aWxlIF9ybF9jYXVnaHRfc2lnbmFsOworKwkJCQkg ICAgcmV0dXJuIF9ybF9jYXVnaHRfc2lnbmFsOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysgIFJFQURMSU5F X0NBVUdIVF9TSUdOQUw9eWVzCisrCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9SRUFETElORV9D QVVHSFRfU0lHTkFMIC8qKi8iID4+Y29uZmRlZnMuaAorKworK2Vsc2UKKysgIFJFQURMSU5FX0NB VUdIVF9TSUdOQUw9bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRSRUFETElO RV9DQVVHSFRfU0lHTkFMIiA+JjUKKyskYXNfZWNobyAiJFJFQURMSU5FX0NBVUdIVF9TSUdOQUwi ID4mNjsgfQorKyAgTElCUz0iJHNhdmVfTElCUyIKKyBlbHNlCisgICBSRUFETElORT0nJChSRUFE TElORV9ESVIpL2xpYnJlYWRsaW5lLmEnCisgICBSRUFETElORV9ERVBTPSckKFJFQURMSU5FKScK CmRpZmYgLS1naXQgYS9nZGItdGVzdC1wcC1oaW50LWVycm9yLnBhdGNoIGIvZ2RiLXRlc3QtcHAt aGludC1lcnJvci5wYXRjaAppbmRleCBkZTdiZGJmLi5mNzI3ZWNhIDEwMDY0NAotLS0gYS9nZGIt dGVzdC1wcC1oaW50LWVycm9yLnBhdGNoCisrKyBiL2dkYi10ZXN0LXBwLWhpbnQtZXJyb3IucGF0 Y2gKQEAgLTI3LDEwICsyNywxMCBAQCBnZGIvdGVzdHN1aXRlLwogCSogZ2RiLnB5dGhvbi9weS1w cmV0dHlwcmludC5weSAoY2xhc3MgcHBfaGludF9lcnJvcik6IE5ldy4KIAkocmVnaXN0ZXJfcHJl dHR5X3ByaW50ZXJzKTogUmVnaXN0ZXIgaXQuCiAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3 L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5jCitJbmRleDogZ2RiLTcu Mi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDExLTAxLTAxIDE2OjMzOjQ5LjAwMDAwMDAwMCAr MDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LXByZXR0eXByaW50LmMJMjAxMS0wMS0wNyAwOToxMToxOC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBn ZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0 eXByaW50LmMJMjAxMS0wMS0wMSAxNjozMzo0OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4y LjUwLjIwMTEwMTE3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5jCTIw MTEtMDEtMTcgMTY6MDg6MTYuMDAwMDAwMDAwICswMTAwCiBAQCAtNDQsNiArNDQsMTAgQEAgc3Ry dWN0IGxhenlzdHJpbmcgewogICAgY29uc3QgY2hhciAqbGF6eV9zdHI7CiAgfTsKQEAgLTUwLDEw ICs1MCwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktcHJldHR5cHJpbnQuYwogIAogICAgbnN0eXBlLmVsZW1lbnRzID0gbmFycmF5Owog ICAgbnN0eXBlLmxlbiA9IDA7Ci1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCitJbmRleDogZ2RiLTcuMi41MC4yMDEx MDExNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1wcmV0dHlwcmludC5leHAJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0 dHlwcmludC5leHAJMjAxMS0wMS0wNyAwOToxMTozMi4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGIt Ny4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXBy aW50LmV4cAkyMDExLTAxLTAxIDE2OjMzOjQ5LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIu NTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmV4cAky MDExLTAxLTE3IDE2OjA4OjMzLjAwMDAwMDAwMCArMDEwMAogQEAgLTk3LDYgKzk3LDggQEAgcHJv YyBydW5fbGFuZ190ZXN0cyB7bGFuZ30gewogICAgICBnZGJfdGVzdF9ub19vdXRwdXQgInB5dGhv biBwcF9sc19lbmNvZGluZyA9ICdVVEYtOCciCiAgICAgIGdkYl90ZXN0ICJwcmludCBlc3RyaW5n MiIgIlwiZW1iZWRkZWQgXCIsIDxpbmNvbXBsZXRlIHNlcXVlbmNlIFxcXFwzMDI+IgpAQCAtNjIs MTEgKzYyLDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAKICsKICAgICAgZ2RiX3Rlc3QgInByaW50IGMiICIg PSBjb250YWluZXIgXCJjb250YWluZXJcIiB3aXRoIDIgZWxlbWVudHMgPSB7JG5sICouMC4gPSAy MywkbmwgKi4xLiA9IDcyJG5sfSIKICAKLSAgICAgZ2RiX3Rlc3QgInByaW50IG51bGxzdHIiICJS dW50aW1lRXJyb3I6IEVycm9yIHJlYWRpbmcgc3RyaW5nIGZyb20gaW5mZXJpb3IuKiIKLUluZGV4 OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlw cmludC5weQorICAgICBnZGJfdGVzdCAicHJpbnQgbnN0eXBlIiAiID0geyRubCAqLjAuID0gNywk bmwgKi4xLiA9IDQyJG5sfSIKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIu NTAuMjAxMTAxMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQu cHkJMjAxMS0wMS0wMSAxNjozMzo0OS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIw MTEwMTA3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQkyMDExLTAx LTA3IDA5OjExOjE4LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3Jp Zy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQucHkJMjAxMS0wMS0wMSAx NjozMzo0OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQkyMDExLTAxLTE3IDE2OjA4OjE2LjAw MDAwMDAwMCArMDEwMAogQEAgLTE1Niw2ICsxNTYsMTggQEAgY2xhc3MgcHBfbHM6CiAgICAgIGRl ZiBkaXNwbGF5X2hpbnQgKHNlbGYpOgogICAgICAgICAgcmV0dXJuICdzdHJpbmcnCgpkaWZmIC0t Z2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCBkZmExZTBkLi5jZjFiMDI2IDEwMDY0NAot LS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMjMsMTEgKzIzLDExIEBAIE5hbWU6IGdk YiV7P193aXRoX2RlYnVnOi1kZWJ1Z30KICMgU2V0IHZlcnNpb24gdG8gY29udGVudHMgb2YgZ2Ri L3ZlcnNpb24uaW4uCiAjIE5PVEU6IHRoZSBGU0YgZ2RiIHZlcnNpb25zIGFyZSBudW1iZXJlZCBO Lk0gZm9yIG9mZmljaWFsIHJlbGVhc2VzLCBsaWtlIDYuMwogIyBhbmQsIHNpbmNlIEphbnVhcnkg MjAwNSwgWC5ZLlouZGF0ZSBmb3IgZGFpbHkgc25hcHNob3RzLCBsaWtlIDYuMy41MC4yMDA1MDEx MiAjIChkYWlseSBzbmFwc2hvdCBmcm9tIG1haWxpbmUpLCBvciA2LjMuMC4yMDA0MDExMiAoaGVh ZCBvZiB0aGUgcmVsZWFzZSBicmFuY2gpLgotVmVyc2lvbjogNy4yLjUwLjIwMTEwMTA3CitWZXJz aW9uOiA3LjIuNTAuMjAxMTAxMTcKIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBs ZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBu b3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0 aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiAxMCV7P193aXRoX3Vwc3RyZWFtOi51cHN0 cmVhbX0le2Rpc3R9CitSZWxlYXNlOiAxMSV7P193aXRoX3Vwc3RyZWFtOi51cHN0cmVhbX0le2Rp c3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BM djIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFuZCBH RkRMIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4KIEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dl cnMKQEAgLTQxOCw2ICs0MTgsOSBAQCBQYXRjaDM4MTogZ2RiLXNpbXVsdGFuZW91cy1zdGVwLXJl c3VtZS1icmVha3BvaW50LXRlc3QucGF0Y2gKICM9cHVzaCt3b3JrOiBJdCBzaG91bGQgYmUgaW4g Z2xpYmM6IGxpYmMtYWxwaGE6IDwyMDA5MTAwNDE2MTcwNi5HQTI3NDUwQC4qPgogUGF0Y2gzODI6 IGdkYi1jb3JlLW9wZW4tdmRzby13YXJuaW5nLnBhdGNoCiAKKyMgRml4IGNhbGxiYWNrLW1vZGUg cmVhZGxpbmUtNi4wIHJlZ3Jlc3Npb24gZm9yIENUUkwtQyAoZm9yIFJIRUwtNi4wKS4KK1BhdGNo MzkwOiBnZGItcmVhZGxpbmUtNi4wLXNpZ25hbC5wYXRjaAorCiAjIEZpeCBzeXNjYWxsIHJlc3Rh cnRzIGZvciBhbWQ2NC0+aTM4NiBiaWFyY2guCiAjPXB1c2gKIFBhdGNoMzkxOiBnZGIteDg2XzY0 LWkzODYtc3lzY2FsbC1yZXN0YXJ0LnBhdGNoCkBAIC03ODMsOCArNzg2LDE0IEBAIHJtIC1mIGdk Yi9qdi1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKICVwYXRj aDU0NyAtcDEKICVwYXRjaDU0OCAtcDEKIAorJXBhdGNoMzkwIC1wMQogJXBhdGNoMzkzIC1wMQog JXBhdGNoMzM1IC1wMQorcmVhZGxpbmU9IiQocmVhZGxpbmsgLWYgJXtfbGliZGlyfS9saWJyZWFk bGluZS5zbykiCitpZiBbICIkcmVhZGxpbmUiID0gIiR7cmVhZGxpbmUlL2xpYnJlYWRsaW5lLnNv LjYuMH0iIF0KK3RoZW4KKyVwYXRjaDM5MCAtcDEgLVIKK2ZpCiAlaWYgMCV7IT9lbDU6MX0KICVw YXRjaDM5MyAtcDEgLVIKICVwYXRjaDMzNSAtcDEgLVIKQEAgLTExNzgsNiArMTE4NywxMSBAQCBm aQogJWVuZGlmCiAKICVjaGFuZ2Vsb2cKKyogTW9uIEphbiAxNyAyMDExIEphbiBLcmF0b2Nodmls IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMi41MC4yMDExMDExNy0xMS5mYzE1Cist IFJlYmFzZSB0byBGU0YgR0RCIDcuMi41MC4yMDExMDExNyAod2hpY2ggaXMgYSA3LjMgcHJlLXJl bGVhc2UpLgorLSBGaXggY2FsbGJhY2stbW9kZSByZWFkbGluZS02LjAgcmVncmVzc2lvbiBmb3Ig Q1RSTC1DIChmb3IgUkhFTC02LjApLgorICAtIEZpeCBvY2Nhc2lvbmFsIE5VTEwgZGVyZWZlcmVu Y2Ugb2YgdGhlIHJlYWRsaW5lLTYuMCB3b3JrYXJvdW5kIChCWiA1NzU1MTYpLgorCiAqIFNhdCBK YW4gMTUgMjAxMSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3 LjIuNTAuMjAxMTAxMDctMTAuZmMxNQogLSBbZGVsYXllZC1zeW1maWxlXSBUZXN0IGEgYmFja3Ry YWNlIHJlZ3Jlc3Npb24gb24gQ0ZJcyB3aXRob3V0IERJRSAoQlogNjE0NjA0KS4KIC0gW2FyY2hl ci10cm9tZXktZGVsYXllZC1zeW1maWxlXSBOZXcgdGVzdCBnZGIuZHdhcmYyL2R3Mi1hcmFuZ2Vz LmV4cC4KCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCA4ODMyZmU5Li43NjZj ZGY4IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEsMiArMSwyIEBACi1h NDA5MjA5ZTk1Y2Q3MTcyNzQ0MzFiMmVhYTc3ZGFjMCAgZ2RiLTcuMi41MC4yMDExMDEwNy50YXIu YnoyCiAwNGU1YzRiMWI5ZTYzMzQyMmNjNDg5OTBmZTYxOTU4ZCAgbGlic3RkYysrLXYzLXB5dGhv bi1yMTU1OTc4LnRhci5iejIKKzNjZWNiYTIwYjBlZmQ1MWU1YWNiOTM3ZjNhYmQyMDE0ICBnZGIt Ny4yLjUwLjIwMTEwMTE3LnRhci5iejIK