From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Rebase to pre-7.13 FSF GDB trunk. Date: Sat, 27 Jun 2026 23:58:08 GMT Message-ID: <178260468886.1.10565859076509996017.rpms-gdb-af2c2a54224c@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: af2c2a54224c4fe6080b60a853a8f13b9d92b132 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogYWYyYzJhNTQyMjRjNGZlNjA4MGI2MGE4NTNhOGYxM2I5ZDky YjEzMgogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxNy0wMi0yN1QyMjozMDozMiswMTow MAogICAgICAgICAgICBTdGF0cyAgOiArMTcxMS8tMzQ1OCBpbiAzMSBmaWxlKHMpCiAgICAgICAg ICAgIFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvYWYy YzJhNTQyMjRjNGZlNjA4MGI2MGE4NTNhOGYxM2I5ZDkyYjEzMj9icmFuY2g9Z2RiLTE3LjItcmVi YXNlLWY0NAoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gcHJlLTcuMTMg RlNGIEdEQiB0cnVuay4KRHJvcHBlZCBnZGItNi43LWJ6NDI2NjAwLURXX1RBR19pbnRlcmZhY2Vf dHlwZS10ZXN0LnBhdGNoIGFzIEdDSiBpcyBubyBtb3JlLgoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0 aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCA2NDA1NDhiLi5jYzZhNjU5IDEwMDY0NAotLS0gYS8u Z2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTEsMyArMSwzIEBACiAvZ2RiLWxpYnN0ZGMr Ky12My1weXRob24tNi4zLjEtMjAxNzAyMTIudGFyLnh6CiAvdjEuNS50YXIuZ3oKLS9nZGItNy4x Mi4xLnRhci54egorL2dkYi03LjEyLjUwLjIwMTcwMjI2LnRhci54egoKZGlmZiAtLWdpdCBhL2dk Yi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoIGIvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5 MDcucGF0Y2gKaW5kZXggZWY4Y2Y1MS4uNjcwYjUwNSAxMDA2NDQKLS0tIGEvZ2RiLTYuMy1yZWFk bmV2ZXItMjAwNTA5MDcucGF0Y2gKKysrIGIvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0 Y2gKQEAgLTExLDExICsxMSwxMSBAQAogCiAgICAgICAgICogZ2RiLnRleGluZm8gKEZpbGUgT3B0 aW9ucyk6IERvY3VtZW50IC0tcmVhZG5ldmVyLgogCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjIvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9k b2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmln L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNS0xMC0yMiAyMjoxNjo1MC40ODM0ODIyODggKzAyMDAK LSsrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTUtMTAtMjIg MjI6Mjg6MjIuMDQyNTU0MTQyICswMjAwCi1AQCAtMTAzMiw2ICsxMDMyLDEyIEBAIFJlYWQgZWFj aCBzeW1ib2wgZmlsZSdzIGVudGlyZSBzeW1ib2wgdGEKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIy Ni5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNy0wMi0yNiAyMToyNjo0My42MDk3ODg2NjIg KzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTct MDItMjYgMjE6MjY6NDYuNTgyODA5NzIxICswMTAwCitAQCAtMTAzNyw2ICsxMDM3LDEyIEBACiAg dGhlIGRlZmF1bHQsIHdoaWNoIGlzIHRvIHJlYWQgaXQgaW5jcmVtZW50YWxseSBhcyBpdCBpcyBu ZWVkZWQuCiAgVGhpcyBtYWtlcyBzdGFydHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1dHVyZSBvcGVy YXRpb25zIGZhc3Rlci4KICAKQEAgLTI4LDExICsyOCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjIvZ2RiL2RvYy9nZGIudGV4aW5mbwogIEBlbmQgdGFibGUKICAKICBAbm9kZSBNb2Rl IE9wdGlvbnMKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbWFpbi5jCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL21haW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjUwLjIwMTUxMDIyLm9yaWcvZ2RiL21haW4uYwkyMDE1LTEwLTIyIDIyOjE2OjUwLjQ4NTQ4MjI5 OSArMDIwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9tYWluLmMJMjAxNS0xMC0yMiAy MjoyODoyMi4wNDI1NTQxNDIgKzAyMDAKLUBAIC02MDQsNiArNjA0LDcgQEAgY2FwdHVyZWRfbWFp biAodm9pZCAqZGF0YSkKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9tYWluLmMJ MjAxNy0wMi0yNiAyMToyNjo0My42MTI3ODg2ODQgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIyNi9nZGIvbWFpbi5jCTIwMTctMDItMjYgMjE6MjY6NDYuNTgyODA5NzIxICswMTAwCitAQCAt NjE1LDYgKzYxNSw3IEBACiAgICAgICAgeyJ0dWkiLCBub19hcmd1bWVudCwgMCwgT1BUX1RVSX0s CiAgICAgICAgeyJkYngiLCBub19hcmd1bWVudCwgJmRieF9jb21tYW5kcywgMX0sCiAgICAgICAg eyJyZWFkbm93Iiwgbm9fYXJndW1lbnQsICZyZWFkbm93X3N5bWJvbF9maWxlcywgMX0sCkBAIC00 MCw3ICs0MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbWFpbi5jCiAgICAg ICAgeyJyIiwgbm9fYXJndW1lbnQsICZyZWFkbm93X3N5bWJvbF9maWxlcywgMX0sCiAgICAgICAg eyJxdWlldCIsIG5vX2FyZ3VtZW50LCAmcXVpZXQsIDF9LAogICAgICAgIHsicSIsIG5vX2FyZ3Vt ZW50LCAmcXVpZXQsIDF9LAotQEAgLTEyNTMsNiArMTI1NCw3IEBAIFNlbGVjdGlvbiBvZiBkZWJ1 Z2dlZSBhbmQgaXRzIGZpbGVzOlxuXG4KK0BAIC0xMjUzLDYgKzEyNTQsNyBAQAogICAgLS1zZT1G SUxFICAgICAgICAgIFVzZSBGSUxFIGFzIHN5bWJvbCBmaWxlIGFuZCBleGVjdXRhYmxlIGZpbGUu XG5cCiAgICAtLXN5bWJvbHM9U1lNRklMRSAgUmVhZCBzeW1ib2xzIGZyb20gU1lNRklMRS5cblwK ICAgIC0tcmVhZG5vdyAgICAgICAgICBGdWxseSByZWFkIHN5bWJvbCBmaWxlcyBvbiBmaXJzdCBh Y2Nlc3MuXG5cCkBAIC00OCwxMSArNDgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi9tYWluLmMKICAgIC0td3JpdGUgICAgICAgICAgICBTZXQgd3JpdGluZyBpbnRvIGV4ZWN1 dGFibGUgYW5kIGNvcmUgZmlsZXMuXG5cblwKICAiKSwgc3RyZWFtKTsKICAgIGZwdXRzX3VuZmls dGVyZWQgKF8oIlwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvc3ltZmlsZS5jCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3N5bWZpbGUuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDE1LTEwLTIyIDIyOjE2 OjUwLjQ4NjQ4MjMwNSArMDIwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9zeW1maWxl LmMJMjAxNS0xMC0yMiAyMjoyODoyMi4wNDM1NTQxNDggKzAyMDAKLUBAIC04MCw2ICs4MCw3IEBA IHN0YXRpYyB2b2lkIGNsZWFyX3N5bXRhYl91c2Vyc19jbGVhbnVwICgKKy0tLSBnZGItNy4xMi41 MC4yMDE3MDIyNi5vcmlnL2dkYi9zeW1maWxlLmMJMjAxNy0wMi0yNiAyMToyNjo0My42MTM3ODg2 OTEgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvc3ltZmlsZS5jCTIwMTctMDIt MjYgMjE6MjY6NDYuNTgzODA5NzI4ICswMTAwCitAQCAtNzksNiArNzksNyBAQAogIAogIC8qIEds b2JhbCB2YXJpYWJsZXMgb3duZWQgYnkgdGhpcyBmaWxlLiAgKi8KICBpbnQgcmVhZG5vd19zeW1i b2xfZmlsZXM7CS8qIFJlYWQgZnVsbCBzeW1ib2xzIGltbWVkaWF0ZWx5LiAgKi8KQEAgLTYwLDE5 ICs2MCwxOSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3N5bWZpbGUuYwogIAog IC8qIEZ1bmN0aW9ucyB0aGlzIGZpbGUgZGVmaW5lcy4gICovCiAgCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2 L2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5v cmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0xMC0yMiAyMjoyODoyMi4wNDY1NTQxNjUgKzAyMDAK LSsrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMTAtMjIgMjI6 Mjk6MTcuNjY0ODgxNjQyICswMjAwCi1AQCAtNzAsNiArNzAsNyBAQAotICNpbmNsdWRlICJmaWxl c3R1ZmYuaCIKLSAjaW5jbHVkZSAiYnVpbGQtaWQuaCIKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIy Ni5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNy0wMi0yNiAyMToyNjo0My42MjA3ODg3NDAgKzAx MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZHdhcmYycmVhZC5jCTIwMTctMDItMjYg MjE6MjY6NTkuMDc4ODk4MjM0ICswMTAwCitAQCAtNzEsNiArNzEsNyBAQAogICNpbmNsdWRlICJu YW1lc3BhY2UuaCIKKyAjaW5jbHVkZSAiY29tbW9uL2dkYl91bmxpbmtlci5oIgorICNpbmNsdWRl ICJjb21tb24vZnVuY3Rpb24tdmlldy5oIgogKyNpbmNsdWRlICJ0b3AuaCIKICAKICAjaW5jbHVk ZSA8ZmNudGwuaD4KICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci1AQCAtMjA1OSw3ICsyMDYwLDgg QEAgZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZQorQEAgLTIxMTMsNyAr MjExNCw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSBuYW1lcyk7 CiAgICAgICAgZHdhcmYyX3Blcl9vYmpmaWxlLT5vYmpmaWxlID0gb2JqZmlsZTsKICAgICAgfQpA QCAtODIsMTEgKzgyLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvZHdhcmYy cmVhZC5jCiAgCSAgJiYgZHdhcmYyX3Blcl9vYmpmaWxlLT5pbmZvLnMuc2VjdGlvbiAhPSBOVUxM CiAgCSAgJiYgIWR3YXJmMl9wZXJfb2JqZmlsZS0+YWJicmV2LmlzX3ZpcnR1YWwKICAJICAmJiBk d2FyZjJfcGVyX29iamZpbGUtPmFiYnJldi5zLnNlY3Rpb24gIT0gTlVMTCk7Ci1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3RvcC5oCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYv Z2RiL3RvcC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIv dG9wLmgJMjAxNS0xMC0yMiAyMjoxNjo1MC40OTA0ODIzMjkgKzAyMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE1MTAyMi9nZGIvdG9wLmgJMjAxNS0xMC0yMiAyMjoyODoyMi4wNDc1NTQxNzEgKzAyMDAK LUBAIC03NCw2ICs3NCw3IEBAIGV4dGVybiBpbnQgZ2RiX2luX3NlY29uZGFyeV9wcm9tcHRfcCAo dm8KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi90b3AuaAkyMDE3LTAyLTI2IDIx OjI2OjQzLjYyMjc4ODc1NCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi90b3Au aAkyMDE3LTAyLTI2IDIxOjI2OjQ2LjU4OTgwOTc3MSArMDEwMAorQEAgLTI2OSw2ICsyNjksNyBA QAogIAogIC8qIEZyb20gcmFuZG9tIHBsYWNlcy4gICovCiAgZXh0ZXJuIGludCByZWFkbm93X3N5 bWJvbF9maWxlczsKCmRpZmYgLS1naXQgYS9nZGItNi4zLXJoLXRlc3R2ZXJzaW9uLTIwMDQxMjAy LnBhdGNoIGIvZ2RiLTYuMy1yaC10ZXN0dmVyc2lvbi0yMDA0MTIwMi5wYXRjaAppbmRleCA3ODM5 MjAwLi44YjlhNGJmIDEwMDY0NAotLS0gYS9nZGItNi4zLXJoLXRlc3R2ZXJzaW9uLTIwMDQxMjAy LnBhdGNoCisrKyBiL2dkYi02LjMtcmgtdGVzdHZlcnNpb24tMjAwNDEyMDIucGF0Y2gKQEAgLTMs MTEgKzMsMTEgQEAKICAgICAgICAgKiBnZGIuZ2RiL3NlbGZ0ZXN0LmV4cDogQWRkIG1hdGNoaW5n IG9uIHNwZWNpZmljIFJlZCBIYXQgb25seSB2ZXJzaW9uCiAgICAgICAgIHN0cmluZy4KIAotSW5k ZXg6IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4 cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxm dGVzdC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xLjkwLjIwMTAwNzExLm9yaWcvZ2RiL3Rl c3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAkyMDEwLTA2LTI2IDA4OjQ0OjQ3LjAwMDAwMDAw MCArMDIwMAotKysrIGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3Nl bGZ0ZXN0LmV4cAkyMDEwLTA3LTEyIDA5OjU5OjQyLjAwMDAwMDAwMCArMDIwMAotQEAgLTM0Miw2 ICszNDIsOSBAQCBwcm9jIHRlc3Rfd2l0aF9zZWxmIHsgZXhlY3V0YWJsZSB9IHsKKy0tLSBnZGIt Ny4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAJ MjAxNy0wMi0wNyAxOTo0NzowNi40NzI4NzQ2MjAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCTIwMTctMDItMDcgMTk6NDg6 MTIuNTkzMzgwNTc1ICswMTAwCitAQCAtNTMsNiArNTMsOSBAQAogIAktcmUgIi5cWzAtOVxdKyA9 ICsuKyArMHguKlxbMC05LlxdKy4qJGdkYl9wcm9tcHQgJCIgewogIAkgICAgcGFzcyAicHJpbnRl ZCB2ZXJzaW9uIHdpdGggY2FzdCIKICAJfQpAQCAtMTYsNCArMTYsNCBAQCBJbmRleDogZ2RiLTcu MS45MC4yMDEwMDcxMS9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCiArCX0KICAg ICAgfQogIAotICAgICBkb19zdGVwc19hbmRfbmV4dHMKKyAgICAgIyBzdGFydCB0aGUgInhnZGIi IHByb2Nlc3MKCmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MTg1MzM3LXJlc29sdmUtdGxzLXdpdGhv dXQtZGVidWdpbmZvLXYyLnBhdGNoIGIvZ2RiLTYuNS1iejE4NTMzNy1yZXNvbHZlLXRscy13aXRo b3V0LWRlYnVnaW5mby12Mi5wYXRjaAppbmRleCBkOGMxOTgyLi5hYTFhNjQ2IDEwMDY0NAotLS0g YS9nZGItNi41LWJ6MTg1MzM3LXJlc29sdmUtdGxzLXdpdGhvdXQtZGVidWdpbmZvLXYyLnBhdGNo CisrKyBiL2dkYi02LjUtYnoxODUzMzctcmVzb2x2ZS10bHMtd2l0aG91dC1kZWJ1Z2luZm8tdjIu cGF0Y2gKQEAgLTM0LDExICszNCwxMSBAQCBnbGliYy1kZWJ1Z2luZm8tMi43LTIueDg2XzY0OiAv dXNyL2xpYi9kZWJ1Zy9saWI2NC9saWJjLnNvLjYuZGVidWc6CiAgIDw4MWEyPiAgICAgRFdfQVRf bmFtZSAgICAgICAgOiAoaW5kaXJlY3Qgc3RyaW5nLCBvZmZzZXQ6IDB4MjgwZSk6IF9fZXJybm9f bG9jYXRpb24KICAgPDgxYTg+ICAgICBEV19BVF9NSVBTX2xpbmthZ2VfbmFtZTogKGluZGlyZWN0 IHN0cmluZywgb2Zmc2V0OiAweDI4MDgpOiAqX19HSV9fX2Vycm5vX2xvY2F0aW9uCiAKLUluZGV4 OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvcHJpbnRjbWQuYworSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjA3L2dkYi9wcmludGNtZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAx NjAyMTEub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE2LTAyLTE1IDIzOjI5OjUzLjA2MjQyMDg5MyAr MDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9wcmludGNtZC5jCTIwMTYtMDItMTUg MjM6MzM6MzEuMDY4OTY4NzYyICswMTAwCi1AQCAtMTAwMyw2ICsxMDAzLDEwIEBACistLS0gZ2Ri LTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE3LTAyLTA3IDIxOjA2OjIw LjE5NjU5Mzg4NCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9wcmludGNtZC5j CTIwMTctMDItMDcgMjE6MDc6MTAuMjMwOTczOTA2ICswMTAwCitAQCAtMTI1OCw2ICsxMjU4LDEw IEBACiAgCiAgICBpZiAoZXhwICYmICpleHApCiAgICAgIHsKQEAgLTQ2LDEzICs0NiwxMyBAQCBJ bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3ByaW50Y21kLmMKICsJIGZ1bmN0aW9uIGRl c2NyaXB0b3JzLiAgKi8KICsgICAgICBpZiAodGFyZ2V0X2hhc19leGVjdXRpb24gJiYgc3RyY21w IChleHAsICJlcnJubyIpID09IDApCiArCWV4cCA9ICIqKCooaW50ICooKikodm9pZCkpIF9fZXJy bm9fbG9jYXRpb24pICgpIjsKLSAgICAgICBleHByID0gcGFyc2VfZXhwcmVzc2lvbiAoZXhwKTsK LSAgICAgICBtYWtlX2NsZWFudXAgKGZyZWVfY3VycmVudF9jb250ZW50cywgJmV4cHIpOwotICAg ICAgIHZhbCA9IGV2YWx1YXRlX2V4cHJlc3Npb24gKGV4cHIpOwotSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZXJybm8uYworICAgICAgIGV4 cHJlc3Npb25fdXAgZXhwciA9IHBhcnNlX2V4cHJlc3Npb24gKGV4cCk7CisgICAgICAgdmFsID0g ZXZhbHVhdGVfZXhwcmVzc2lvbiAoZXhwci5nZXQgKCkpOworICAgICB9CitJbmRleDogZ2RiLTcu MTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1l cnJuby5jCTIwMTYtMDItMTUgMjM6MzA6MjAuNzAzNjE3MTQ4ICswMTAwCisrKysgZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5jCTIwMTctMDIt MDcgMjE6MDY6MjAuMTk2NTkzODg0ICswMTAwCiBAQCAtMCwwICsxLDI4IEBACiArLyogVGhpcyB0 ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTgyLDEwICs4 MiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1lcnJuby5jCiArCiArICByZXR1cm4gMDsJLyogYnJlYWtwb2ludCAqLwogK30KLUlu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWVy cm5vLmV4cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItZXJybm8uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5leHAJMjAxNi0wMi0xNSAyMzozNToyNS41ODI3 ODE4MjEgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvZHcyLWVycm5vLmV4cAkyMDE3LTAyLTA3IDIxOjA2OjIwLjE5NjU5Mzg4NCArMDEwMAog QEAgLTAsMCArMSw2MCBAQAogKyMgQ29weXJpZ2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiArCkBAIC0xNDcsMTAgKzE0NywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5leHAKICsKICsjIFRPRE86 IFRlc3QgdGhlIGVycm9yIG9uIHJlc29sdmluZyBFUlJOTyB3aXRoIG9ubHkgbGliYyBsb2FkZWQu CiArIyBKdXN0IGhvdyB0byBmaW5kIHRoZSBjdXJyZW50IGxpYmMgZmlsZW5hbWU/Ci1JbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIu YworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItZXJybm8yLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLWVycm5vMi5jCTIwMTYtMDItMTUgMjM6MzA6MjAuNzAzNjE3MTQ4ICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1lcnJubzIuYwkyMDE3LTAyLTA3IDIxOjA2OjIwLjE5NjU5Mzg4NCArMDEwMAogQEAgLTAsMCAr MSwyOCBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdn ZXIuCiArCkBAIC0xODAsMTAgKzE4MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIuYwogKwogKyAgcmV0dXJuIDA7CS8q IGJyZWFrcG9pbnQgKi8KICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIuZXhw CTIwMTYtMDItMTUgMjM6MzU6MjUuNTgyNzgxODIxICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIuZXhwCTIwMTctMDItMDcg MjE6MDY6MjAuMTk3NTkzODkyICswMTAwCiBAQCAtMCwwICsxLDcxIEBACiArIyBDb3B5cmlnaHQg MjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKCmRpZmYgLS1naXQgYS9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxv Y2F0ZS1jb3JlLWFzLWFyZy5wYXRjaAppbmRleCA1MjNiN2UwLi44NWQ0ZmU1IDEwMDY0NAotLS0g YS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCisrKyBiL2dkYi02LjYt YnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKQEAgLTU4LDEwICs1OCwxMCBAQCBIdHRw Oi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMS9tc2cwMDUxNy5odG1sCiAJ KiBleGVjLmMgKGV4ZWNfZmlsZV9hdHRhY2gpOiBQcmludCBhIG1vcmUgdXNlZnVsIGVycm9yIG1l c3NhZ2UgaWYgdGhlCiAJdXNlciBkaWQgImdkYiBjb3JlIi4KIAotSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MzEvZ2RiL2V4ZWMuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9leGVj LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTMxLm9yaWcvZ2RiL2V4ZWMuYwky MDE1LTA1LTMxIDAzOjQ4OjI5LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1 MzEvZ2RiL2V4ZWMuYwkyMDE1LTA1LTMxIDIwOjA3OjM1LjA5Mjg3ODY4NSArMDIwMAorLS0tIGdk Yi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2V4ZWMuYwkyMDE3LTAyLTI3IDIyOjE4OjAwLjk0 NTAyNjIxMSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9leGVjLmMJMjAxNy0w Mi0yNyAyMjoxODowOC4xMTEwNzYzNTAgKzAxMDAKIEBAIC0zNSw2ICszNSw3IEBACiAgI2luY2x1 ZGUgInByb2dzcGFjZS5oIgogICNpbmNsdWRlICJnZGJfYmZkLmgiCkBAIC03MCw3ICs3MCw3IEBA IEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi9leGVjLmMKICAKICAjaW5jbHVkZSA8ZmNu dGwuaD4KICAjaW5jbHVkZSAicmVhZGxpbmUvcmVhZGxpbmUuaCIKLUBAIC0yOTgsMTIgKzI5OSwy NyBAQCBleGVjX2ZpbGVfYXR0YWNoIChjb25zdCBjaGFyICpmaWxlbmFtZSwKK0BAIC0zNTksMTIg KzM2MCwyNyBAQAogIAogICAgICAgIGlmICghYmZkX2NoZWNrX2Zvcm1hdF9tYXRjaGVzIChleGVj X2JmZCwgYmZkX29iamVjdCwgJm1hdGNoaW5nKSkKICAJewpAQCAtMTAxLDEzICsxMDEsMTMgQEAg SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL2V4ZWMuYwogIAl9CiAgCiAgICAgICAgaWYg KGJ1aWxkX3NlY3Rpb25fdGFibGUgKGV4ZWNfYmZkLCAmc2VjdGlvbnMsICZzZWN0aW9uc19lbmQp KQotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL21haW4uYworSW5kZXg6IGdkYi03LjEy LjUwLjIwMTcwMjI2L2dkYi9tYWluLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUw NTMxLm9yaWcvZ2RiL21haW4uYwkyMDE1LTA1LTMxIDIwOjA3OjM0LjE4Mzg3MjgyNCArMDIwMAot KysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL21haW4uYwkyMDE1LTA1LTMxIDIwOjEwOjA1LjA5 NTg0NTkzNSArMDIwMAotQEAgLTQzNSw2ICs0MzUsMzcgQEAgdHlwZWRlZiBzdHJ1Y3QgY21kYXJn IHsKLSAvKiBEZWZpbmUgdHlwZSBWRUMgKGNtZGFyZ19zKS4gICovCi0gREVGX1ZFQ19PIChjbWRh cmdfcyk7CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvbWFpbi5jCTIwMTctMDIt MjcgMjI6MTg6MDAuOTQ1MDI2MjExICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2Ri L21haW4uYwkyMDE3LTAyLTI3IDIyOjE4OjA4LjExMjA3NjM1NyArMDEwMAorQEAgLTQ1OSw2ICs0 NTksMzcgQEAKKyAgIGNoYXIgKnN0cmluZzsKKyB9OwogIAogKy8qIENhbGwgZXhlY19maWxlX2F0 dGFjaC4gIElmIGl0IGRldGVjdGVkIEZJTEVOQU1FIGlzIGEgY29yZSBmaWxlIGNhbGwKICsgICBj b3JlX2ZpbGVfY29tbWFuZC4gIFByaW50IHRoZSBvcmlnaW5hbCBleGVjX2ZpbGVfYXR0YWNoIGVy cm9yIG9ubHkgaWYKQEAgLTE0MCwxMCArMTQwLDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUw NTMxL2dkYi9tYWluLmMKICsgIEVORF9DQVRDSAogK30KICsKLSBzdGF0aWMgaW50Ci0gY2FwdHVy ZWRfbWFpbiAodm9pZCAqZGF0YSkKKyBzdGF0aWMgdm9pZAorIGNhcHR1cmVkX21haW5fMSAoc3Ry dWN0IGNhcHR1cmVkX21haW5fYXJncyAqY29udGV4dCwgaW50ICZweXRob25fc2NyaXB0KQogIHsK LUBAIC05MjMsNiArOTU0LDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC05MTAs NiArOTQxLDggQEAKICAJewogIAkgIHN5bWFyZyA9IGFyZ3Zbb3B0aW5kXTsKICAJICBleGVjYXJn ID0gYXJndltvcHRpbmRdOwpAQCAtMTUyLDcgKzE1Miw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIw MTUwNTMxL2dkYi9tYWluLmMKICAJICBvcHRpbmQrKzsKICAJfQogIAotQEAgLTEwODAsMTEgKzEx MTMsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC0xMDYwLDExICsxMDkzLDI1 IEBACiAgICAgICAgJiYgc3ltYXJnICE9IE5VTEwKICAgICAgICAmJiBzdHJjbXAgKGV4ZWNhcmcs IHN5bWFyZykgPT0gMCkKICAgICAgewpAQCAtMTc4LDE0ICsxNzgsMTQgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MzEvZ2RiL21haW4uYwogKwkgYXMgYSBjb3JlIGZpbGUuICAqLwogKyAgICAg IGlmIChjYXRjaF9jb21tYW5kX2Vycm9yc19jb25zdCAoZnVuYywgZXhlY2FyZywgIWJhdGNoX2Zs YWcpCiArCSAgJiYgY29yZV9iZmQgPT0gTlVMTCkKLSAJY2F0Y2hfY29tbWFuZF9lcnJvcnNfY29u c3QgKHN5bWJvbF9maWxlX2FkZF9tYWluLCBzeW1hcmcsCisgCWNhdGNoX2NvbW1hbmRfZXJyb3Jz X2NvbnN0IChzeW1ib2xfZmlsZV9hZGRfbWFpbl9hZGFwdGVyLCBzeW1hcmcsCiAgCQkJCSAgICAh YmF0Y2hfZmxhZyk7CiAgICAgIH0KLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi9jb21t b24vY29tbW9uLWV4Y2VwdGlvbnMuaAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9j b21tb24vY29tbW9uLWV4Y2VwdGlvbnMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAx NTA1MzEub3JpZy9nZGIvY29tbW9uL2NvbW1vbi1leGNlcHRpb25zLmgJMjAxNS0wNS0zMSAwMzo0 ODoyOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi9jb21tb24v Y29tbW9uLWV4Y2VwdGlvbnMuaAkyMDE1LTA1LTMxIDIwOjA3OjM1LjA5Mzg3ODY5MiArMDIwMAot QEAgLTEwNSw2ICsxMDUsOSBAQCBlbnVtIGVycm9ycyB7CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAy MjYub3JpZy9nZGIvY29tbW9uL2NvbW1vbi1leGNlcHRpb25zLmgJMjAxNy0wMi0yNyAyMjoxODow MC45NDYwMjYyMTggKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvY29tbW9uL2Nv bW1vbi1leGNlcHRpb25zLmgJMjAxNy0wMi0yNyAyMjoxODowOC4xMTIwNzYzNTcgKzAxMDAKK0BA IC0xMDYsNiArMTA2LDkgQEAKICAgICAgICJfRVJST1IiIGlzIGFwcGVuZGVkIHRvIHRoZSBuYW1l LiAgKi8KICAgIE1BWF9DT01QTEVUSU9OU19SRUFDSEVEX0VSUk9SLAogIAoKZGlmZiAtLWdpdCBh L2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtbWlzbGVhZGluZy13YXJuaW5nLW1pc3NpbmctZGVidWdp bmZvLXJoYno5ODExNTQucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLW1pc2xlYWRpbmct d2FybmluZy1taXNzaW5nLWRlYnVnaW5mby1yaGJ6OTgxMTU0LnBhdGNoCmluZGV4IDY0ZmUxZDAu LjMyZjJhODMgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtbWlzbGVhZGluZy13 YXJuaW5nLW1pc3NpbmctZGVidWdpbmZvLXJoYno5ODExNTQucGF0Y2gKKysrIGIvZ2RiLTYuNi1i dWlsZGlkLWxvY2F0ZS1taXNsZWFkaW5nLXdhcm5pbmctbWlzc2luZy1kZWJ1Z2luZm8tcmhiejk4 MTE1NC5wYXRjaApAQCAtMTUsMTAgKzE1LDEwIEBAIENvbW1lbnRzIGJ5IFNlcmdpbyBEdXJpZ2Fu IEp1bmlvciA8c2VyZ2lvZGpAcmVkaGF0LmNvbT46CiAgIE5VTEwgYWZ0ZXIgaXQgaXMgZnJlZSdk LCBvdGhlcndpc2UgdGhlIGNvZGUgYmVsb3cgdGhpbmtzIHRoYXQgaXQgaXMgc3RpbGwKICAgdmFs aWQgYW5kIGRvZXNuJ3QgcHJpbnQgdGhlIG5lY2Vzc2FyeSB3YXJuaW5nICgiVHJ5OiB5dW0gaW5z dGFsbCAuLi4iKS4KIAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2Uvcmhiejk4MTE1NC1taXNsZWFkaW5nLXl1bS1pbnN0YWxsLXdhcm5pbmcuZXhwCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9yaGJ6OTgx MTU0LW1pc2xlYWRpbmcteXVtLWluc3RhbGwtd2FybmluZy5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3JoYno5ODExNTQtbWlzbGVhZGlu Zy15dW0taW5zdGFsbC13YXJuaW5nLmV4cAkyMDE2LTAyLTE1IDIzOjMxOjA2LjMyNzk0MTA4NSAr MDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvcmhi ejk4MTE1NC1taXNsZWFkaW5nLXl1bS1pbnN0YWxsLXdhcm5pbmcuZXhwCTIwMTctMDItMjYgMTk6 MTQ6NTguNDkyNjA5NjU5ICswMTAwCiBAQCAtMCwwICsxLDk3IEBACiArIyAgIENvcHlyaWdodCAo QykgMjAxNCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMTcsMTAgKzEx NywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9yaGJ6OTgxMTU0LW1pc2xlYWRpbmcteXVtLWlucwogKwogKyMgTGVhdmluZyB0aGUgbGluayB0 aGVyZSB3aWxsIGNhdXNlIGJyZWFrYWdlIGluIHRoZSBuZXh0IHJ1bi4KICtyZW1vdGVfZXhlYyBi dWlsZCAicm0gLWYgW3N0YW5kYXJkX291dHB1dF9maWxlICR7YnVpbGRfaWRfd2l0aG91dF9kZWJ1 Z31dIgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2J1aWxkLWlkLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9idWlsZC1pZC5jCTIwMTYtMDItMTUgMjM6MzA6NTUu Mzg5ODYzNDI0ICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMJ MjAxNi0wMi0xNSAyMzozMDo1NS43Nzg4NjYxODYgKzAxMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3 MDIwNy5vcmlnL2dkYi9idWlsZC1pZC5jCTIwMTctMDItMjYgMTk6MTQ6NTEuOTQzNTYyNzk5ICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2J1aWxkLWlkLmMJMjAxNy0wMi0yNiAx OToxNDo1OC40OTI2MDk2NTkgKzAxMDAKIEBAIC01ODksNyArNTg5LDEwIEBACiAgCSAgZG9fY2xl YW51cHMgKGlubmVyKTsKICAKQEAgLTEzMSw1ICsxMzEsNSBAQCBJbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKICsJICAgICAgY29udGludWU7CiArCSAgICB9CiAgCi0g CSAgaWYgKGJ1aWxkX2lkX3ZlcmlmeSAoYWJmZCwgYnVpbGRfaWRfbGVuLCBidWlsZF9pZCkpCisg CSAgaWYgKGJ1aWxkX2lkX3ZlcmlmeSAoYWJmZC5nZXQoKSwgYnVpbGRfaWRfbGVuLCBidWlsZF9p ZCkpCiAgCSAgICBicmVhazsKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBh dGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAppbmRleCAyODc3M2VjLi4wZjVmYThh IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02LjYt YnVpbGRpZC1sb2NhdGUucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL2NvcmVsb3cuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9j b3JlbG93LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9j b3JlbG93LmMJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDIyNzUzNTgy ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvY29yZWxvdy5jCTIwMTct MDItMjQgMjI6MTg6MDIuMTc2MzkxNDAwICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL2NvcmVsb3cuYwkyMDE3LTAyLTI0IDIyOjMyOjM4Ljc5MzI2NDM5NiArMDEwMAogQEAgLTQ1 LDYgKzQ1LDEwIEBACiAgI2luY2x1ZGUgImdkYl9iZmQuaCIKICAjaW5jbHVkZSAiY29tcGxldGVy LmgiCkBAIC0xMyw3ICsxMyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29y ZWxvdy5jCiAgCiAgI2lmbmRlZiBPX0xBUkdFRklMRQogICNkZWZpbmUgT19MQVJHRUZJTEUgMAot QEAgLTI2Niw2ICsyNzAsNTMgQEAKK0BAIC0yNjYsNiArMjcwLDU0IEBACiAgICAgIGluZmVyaW9y X3B0aWQgPSBwdGlkOwkJCS8qIFllcywgbWFrZSBpdCBjdXJyZW50LiAgKi8KICB9CiAgCkBAIC01 Miw3ICs1Miw4IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCiAr ICAgIHsKICsgICAgICBtYWtlX2NsZWFudXAgKHhmcmVlLCBleGVjZmlsZW5hbWUpOwogKyAgICAg IGV4ZWNfZmlsZV9hdHRhY2ggKGV4ZWNmaWxlbmFtZSwgZnJvbV90dHkpOwotKyAgICAgIHN5bWJv bF9maWxlX2FkZF9tYWluIChleGVjZmlsZW5hbWUsIGZyb21fdHR5KTsKKysgICAgICBzeW1ib2xf ZmlsZV9hZGRfbWFpbiAoZXhlY2ZpbGVuYW1lLAorKwkJCSAgICBzeW1maWxlX2FkZF9mbGFnICgh ZnJvbV90dHkgPyAwIDogU1lNRklMRV9WRVJCT1NFKSk7CiArICAgICAgaWYgKHN5bWZpbGVfb2Jq ZmlsZSAhPSBOVUxMKQogKyAgICAgICAgc3ltZmlsZV9vYmpmaWxlLT5mbGFncyB8PSBPQkpGX0JV SUxEX0lEX0NPUkVfTE9BREVEOwogKyAgICB9CkBAIC02Nyw3ICs2OCw3IEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCiAgLyogVGhpcyByb3V0aW5lIG9wZW5zIGFu ZCBzZXRzIHVwIHRoZSBjb3JlIGZpbGUgYmZkLiAgKi8KICAKICBzdGF0aWMgdm9pZAotQEAgLTQw NCw2ICs0NTUsMTQgQEAKK0BAIC00MDIsNiArNDU0LDE0IEBACiAgCXN3aXRjaF90b190aHJlYWQg KHRocmVhZC0+cHRpZCk7CiAgICAgIH0KICAKQEAgLTgyLDcgKzgzLDcgQEAgSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi9jb3JlbG93LmMKICAgIHBvc3RfY3JlYXRlX2luZmVyaW9yICgm Y29yZV9vcHMsIGZyb21fdHR5KTsKICAKICAgIC8qIE5vdyBnbyB0aHJvdWdoIHRoZSB0YXJnZXQg c3RhY2sgbG9va2luZyBmb3IgdGhyZWFkcyBzaW5jZSB0aGVyZQotQEAgLTEwNjgsNCArMTEyNywx MSBAQAorQEAgLTEwNzgsNCArMTEzOCwxMSBAQAogICAgaW5pdF9jb3JlX29wcyAoKTsKICAKICAg IGFkZF90YXJnZXRfd2l0aF9jb21wbGV0ZXIgKCZjb3JlX29wcywgZmlsZW5hbWVfY29tcGxldGVy KTsKQEAgLTk0LDExICs5NSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2Nv cmVsb3cuYwogKwkJCSAgIE5VTEwsIE5VTEwsIE5VTEwsCiArCQkJICAgJnNldGxpc3QsICZzaG93 bGlzdCk7CiAgfQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvZ2RiLnRleGlu Zm8KK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZG9jL2dkYi50ZXhpbmZvCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZv CTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMDc1MzY1MSAr MDIwMAotQEAgLTE4OTE2LDYgKzE4OTE2LDI3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcu b3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTctMDItMjQgMjI6MTg6MDIuMTc2MzkxNDAwICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE3LTAy LTI0IDIyOjMyOjM4LjgwMzI2NDQ2MyArMDEwMAorQEAgLTE4OTYyLDYgKzE4OTYyLDI3IEBACiAg CiAgQGVuZCB0YWJsZQogIApAQCAtMTI2LDEwICsxMjcsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9kb2MvZ2RiLnRleGluZm8KICBAY2luZGV4IEBjb2Rley5nbnVfZGVidWds aW5rfSBzZWN0aW9ucwogIEBjaW5kZXggZGVidWcgbGluayBzZWN0aW9ucwogIEEgZGVidWcgbGlu ayBpcyBhIHNwZWNpYWwgc2VjdGlvbiBvZiB0aGUgZXhlY3V0YWJsZSBmaWxlIG5hbWVkCi1JbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3NvbGliLXN2cjQuYworSW5kZXg6IGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi9zb2xpYi1zdnI0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41 MC4yMDE2MDYzMC5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAy MDU1MjggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc29saWItc3ZyNC5jCTIw MTYtMDctMDMgMTQ6MzQ6MzIuMDMxNzUzNjU5ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAy MDcub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTctMDItMjQgMjI6MTg6MDIuMTc2MzkxNDAwICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3NvbGliLXN2cjQuYwkyMDE3LTAyLTI0 IDIyOjMyOjM4LjgwNDI2NDQ2OSArMDEwMAogQEAgLTQ1LDYgKzQ1LDcgQEAKICAjaW5jbHVkZSAi YXV4di5oIgogICNpbmNsdWRlICJnZGJfYmZkLmgiCkBAIC0xMzgsNyArMTM5LDcgQEAgSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9zb2xpYi1zdnI0LmMKICAKICBzdGF0aWMgc3RydWN0 IGxpbmtfbWFwX29mZnNldHMgKnN2cjRfZmV0Y2hfbGlua19tYXBfb2Zmc2V0cyAodm9pZCk7CiAg c3RhdGljIGludCBzdnI0X2hhdmVfbGlua19tYXBfb2Zmc2V0cyAodm9pZCk7Ci1AQCAtMTQxNiw5 ICsxNDE3LDUyIEBACitAQCAtMTQyMCw5ICsxNDIxLDUyIEBACiAgCSAgY29udGludWU7CiAgCX0K ICAKQEAgLTE5NCw0MSArMTk1LDM3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv c29saWItc3ZyNC5jCiAgICAgICAgeGZyZWUgKGJ1ZmZlcik7CiAgCiAgICAgICAgLyogSWYgdGhp cyBlbnRyeSBoYXMgbm8gbmFtZSwgb3IgaXRzIG5hbWUgbWF0Y2hlcyB0aGUgbmFtZQotSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy4xMi41MC4y MDE3MDIwNy9nZGIvZWxmcmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA2 MzAub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAw Ci0rKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2VsZnJlYWQuYwkyMDE2LTA3LTAzIDE0OjM0 OjMyLjAzMTc1MzY1OSArMDIwMAotQEAgLTEyNTksOSArMTI1OSwxMCBAQAorLS0tIGdkYi03LjEy LjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2VsZnJlYWQuYwkyMDE3LTAyLTI0IDIyOjE4OjAyLjE3NjM5 MTQwMCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9lbGZyZWFkLmMJMjAxNy0w Mi0yNCAyMjozMjozOC44MDUyNjQ0NzYgKzAxMDAKK0BAIC0xMjY1LDggKzEyNjUsOSBAQAogIAkg ICAmJiBvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID09IE5VTEwKICAJICAgJiYgb2Jq ZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9PSBOVUxMKQogICAgICB7Ci0t ICAgICAgY2hhciAqZGVidWdmaWxlOwotKyAgICAgIGNoYXIgKmRlYnVnZmlsZSwgKmJ1aWxkX2lk X2ZpbGVuYW1lOwotIAotLSAgICAgIGRlYnVnZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmls ZV9ieV9idWlsZGlkIChvYmpmaWxlKTsKLSsgICAgICBkZWJ1Z2ZpbGUgPSBmaW5kX3NlcGFyYXRl X2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAob2JqZmlsZSwKLSsJCQkJCQkgICAgICAgJmJ1aWxkX2lk X2ZpbGVuYW1lKTsKKysgICAgICBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFyPiBidWlsZF9p ZF9maWxlbmFtZTsKKyAgICAgICBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFyPiBkZWJ1Z2Zp bGUKKy0JKGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9idWlsZGlkIChvYmpmaWxlKSk7Cisr CShmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAob2JqZmlsZSwgJmJ1aWxkX2lk X2ZpbGVuYW1lKSk7CiAgCiAgICAgICAgaWYgKGRlYnVnZmlsZSA9PSBOVUxMKQotIAlkZWJ1Z2Zp bGUgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfZGVidWdsaW5rIChvYmpmaWxlKTsKLUBA IC0xMjc1LDYgKzEyNzYsMTIgQEAKLSAJICBzeW1ib2xfZmlsZV9hZGRfc2VwYXJhdGUgKGFiZmQs IGRlYnVnZmlsZSwgc3ltZmlsZV9mbGFncywgb2JqZmlsZSk7Ci0gCSAgZG9fY2xlYW51cHMgKGNs ZWFudXApOworIAlkZWJ1Z2ZpbGUucmVzZXQgKGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9k ZWJ1Z2xpbmsgKG9iamZpbGUpKTsKK0BAIC0xMjc4LDYgKzEyNzksMTAgQEAKKyAJICBzeW1ib2xf ZmlsZV9hZGRfc2VwYXJhdGUgKGFiZmQuZ2V0ICgpLCBkZWJ1Z2ZpbGUuZ2V0ICgpLAorIAkJCQkg ICAgc3ltZmlsZV9mbGFncywgb2JqZmlsZSk7CiAgCX0KICsgICAgICAvKiBDaGVjayBpZiBhbnkg c2VwYXJhdGUgZGVidWcgaW5mbyBoYXMgYmVlbiBleHRyYWN0ZWQgb3V0LiAgKi8KICsgICAgICBl bHNlIGlmIChiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAob2JqZmlsZS0+b2JmZCwgIi5nbnVfZGVi dWdsaW5rIikKICsJICAgICAgICE9IE5VTEwpCi0rCWRlYnVnX3ByaW50X21pc3NpbmcgKG9iamZp bGVfbmFtZSAob2JqZmlsZSksIGJ1aWxkX2lkX2ZpbGVuYW1lKTsKLSsKLSsgICAgICB4ZnJlZSAo YnVpbGRfaWRfZmlsZW5hbWUpOworKwlkZWJ1Z19wcmludF9taXNzaW5nIChvYmpmaWxlX25hbWUg KG9iamZpbGUpLCBidWlsZF9pZF9maWxlbmFtZS5nZXQgKCkpOwogICAgICB9CiAgfQogIAotSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9zeW1maWxlLmgKK0luZGV4OiBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAx NjA2MzAub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICsw MjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3N5bWZpbGUuaAkyMDE2LTA3LTAzIDE0 OjM0OjMyLjAzMjc1MzY2OCArMDIwMAotQEAgLTU4OSw2ICs1ODksMTAgQEAKKy0tLSBnZGItNy4x Mi41MC4yMDE3MDIwNy5vcmlnL2dkYi9zeW1maWxlLmgJMjAxNy0wMi0yNCAyMjoxODowMi4xNzYz OTE0MDAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvc3ltZmlsZS5oCTIwMTct MDItMjQgMjI6MzI6MzguODA1MjY0NDc2ICswMTAwCitAQCAtNTczLDYgKzU3MywxMCBAQAogIHZv aWQgbWFwX3N5bWJvbF9maWxlbmFtZXMgKHN5bWJvbF9maWxlbmFtZV9mdHlwZSAqZnVuLCB2b2lk ICpkYXRhLAogIAkJCSAgIGludCBuZWVkX2Z1bGxuYW1lKTsKICAKQEAgLTIzOSwxMSArMjM2LDEx IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc3ltZmlsZS5oCiAgLyogRnJvbSBk d2FyZjJyZWFkLmMgKi8KICAKICAvKiBOYW1lcyBmb3IgYSBkd2FyZjIgZGVidWdnaW5nIHNlY3Rp b24uICBUaGUgZmllbGQgTk9STUFMIGlzIHRoZSBub3JtYWwKLUluZGV4OiBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEx LjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTA3LTAzIDE0 OjMzOjI4LjEzMDIwNTUyOCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0 c3VpdGUvbGliL2dkYi5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4wMzM3NTM2NzYgKzAyMDAKLUBA IC0xNjQxLDYgKzE2NDEsMTYgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90 ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNy0wMi0yNCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAK KysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTct MDItMjQgMjI6MzI6MzguODA2MjY0NDgzICswMTAwCitAQCAtMTY0Niw2ICsxNjQ2LDE2IEBACiAg CSAgICB3YXJuaW5nICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgogIAl9CiAgICAgIH0K QEAgLTI2MCwxMSArMjU3LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVz dHN1aXRlL2xpYi9nZGIuZXhwCiAgICAgIHJldHVybiAwCiAgfQogIAotSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL21p LXN1cHBvcnQuZXhwCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCi0rKysgZ2Ri LTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNi0w Ny0wMyAxNDozNDozMi4wMzM3NTM2NzYgKzAyMDAKLUBAIC0zMDksNiArMzA5LDE2IEBAIHByb2Mg ZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0geworLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3 Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNy0wMi0yNCAyMjoxODow Mi4xNzYzOTE0MDAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRl L2xpYi9taS1zdXBwb3J0LmV4cAkyMDE3LTAyLTI0IDIyOjMyOjM4LjgwNzI2NDQ4OSArMDEwMAor QEAgLTMwOSw2ICszMDksMTYgQEAKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lk dGggdG8gMC4iCiAgCX0KICAgICAgfQpAQCAtMjgxLDkgKzI3OCwxMSBAQCBJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKICAKICAgICAg aWYgeyAkc2VwYXJhdGVfaW5mZXJpb3JfcHR5IH0gewogIAltaV9jcmVhdGVfaW5mZXJpb3JfcHR5 Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9uZXctdWkt cGVuZGluZy1pbnB1dC5leHAtb3JpZwkyMDE2LTA5LTA3IDA0OjAxOjE1LjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbmV3LXVp LXBlbmRpbmctaW5wdXQuZXhwCTIwMTYtMDktMDcgMjI6MzU6MzUuODE4NTM0MDY5ICswMjAwCi1A QCAtNjIsNiArNjIsNyBAQCBwcm9jIHRlc3RfY29tbWFuZF9saW5lX25ld191aV9wZW5kaW5nX2lu CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9uZXct dWktcGVuZGluZy1pbnB1dC5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIw Ny5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbmV3LXVpLXBlbmRpbmctaW5wdXQuZXhwCTIw MTctMDItMjQgMjI6MTg6MDIuMTc2MzkxNDAwICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9uZXctdWktcGVuZGluZy1pbnB1dC5leHAJMjAxNy0w Mi0yNCAyMjozMjozOC44MDcyNjQ0ODkgKzAxMDAKK0BAIC02Miw2ICs2Miw3IEBACiAgICAgIHNl dCBvcHRpb25zICIiCiAgICAgIGFwcGVuZCBvcHRpb25zICIgLWlleCBcInNldCBoZWlnaHQgMFwi IgogICAgICBhcHBlbmQgb3B0aW9ucyAiIC1pZXggXCJzZXQgd2lkdGggMFwiIgpAQCAtMjkxLDI1 ICsyOTAsMjUgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvbGli L21pLXN1cHBvcnQuZXhwCiAgICAgIGFwcGVuZCBvcHRpb25zICIgLWlleCBcIm5ldy11aSBjb25z b2xlICRleHRyYV90dHlfbmFtZVwiIgogICAgICBhcHBlbmQgb3B0aW9ucyAiIC1leCBcImIgJGJw bGluZVwiIgogICAgICBhcHBlbmQgb3B0aW9ucyAiIC1leCBcInJ1blwiIgotSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi9vYmpmaWxlcy5oCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL29iamZpbGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5v cmlnL2dkYi9vYmpmaWxlcy5oCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCi0r KysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL29iamZpbGVzLmgJMjAxNi0wNy0wMyAxNDozNDoz Mi4wMzQ3NTM2ODUgKzAyMDAKLUBAIC00ODksNiArNDg5LDEwIEBACi0gCi0gI2RlZmluZSBPQkpG X05PVF9GSUxFTkFNRSAoMSA8PCA2KQorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2Ri L29iamZpbGVzLmgJMjAxNy0wMi0yNCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvb2JqZmlsZXMuaAkyMDE3LTAyLTI0IDIyOjMyOjM4LjgwODI2 NDQ5NiArMDEwMAorQEAgLTQ0NCw2ICs0NDQsMTAgQEAKKyAgIGh0YWJfdCBzdGF0aWNfbGlua3M7 CisgfTsKICAKICsvKiBUaGlzIGZpbGUgd2FzIGxvYWRlZCBhY2NvcmRpbmcgdG8gdGhlIEJVSUxE X0lEX0NPUkVfTE9BRFMgcnVsZXMuICAqLwogKwotKyNkZWZpbmUgT0JKRl9CVUlMRF9JRF9DT1JF X0xPQURFRCAoMSA8PCAxMikKKysjZGVmaW5lIE9CSkZfQlVJTERfSURfQ09SRV9MT0FERUQgc3Rh dGljX2Nhc3Q8ZW51bSBvYmpmaWxlX2ZsYWc+KDEgPDwgMTIpCiArCiAgLyogRGVjbGFyYXRpb25z IGZvciBmdW5jdGlvbnMgZGVmaW5lZCBpbiBvYmpmaWxlcy5jICovCiAgCi0gZXh0ZXJuIHN0cnVj dCBvYmpmaWxlICphbGxvY2F0ZV9vYmpmaWxlIChiZmQgKiwgY29uc3QgY2hhciAqbmFtZSwgaW50 KTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Nv cmVmaWxlLmV4cAorIGV4dGVybiBzdHJ1Y3Qgb2JqZmlsZSAqYWxsb2NhdGVfb2JqZmlsZSAoYmZk ICosIGNvbnN0IGNoYXIgKm5hbWUsCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41 MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTYt MDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4w MzQ3NTM2ODUgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTctMDItMjQgMjI6MTg6MDIuMTc2MzkxNDAwICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3Jl ZmlsZS5leHAJMjAxNy0wMi0yNCAyMjozMjozOC44MDgyNjQ0OTYgKzAxMDAKIEBAIC0yOTMsMyAr MjkzLDMzIEBACiAgCXBhc3MgJHRlc3QKICAgICAgfQpAQCAtMzQ0LDEwICszNDMsMTAgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUu ZXhwCiArICAgIGdkYl90ZXN0ICJpbmZvIGZpbGVzIiAiTG9jYWwgZXhlYyBmaWxlOlxyXG5cWyBc dFxdKmBbc3RyaW5nX3RvX3JlZ2V4cCAkZGVidWdkaXIvJGJ1aWxkaWRdJywgZmlsZSB0eXBlIC4q IgogKyAgICBwYXNzICR3aG9sZXRlc3QKICt9Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAv Z2RiL2J1aWxkLWlkLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvYnVpbGQtaWQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2J1aWxkLWlk LmMJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvYnVpbGQtaWQuYwkyMDE2LTA3LTAzIDE0OjM2OjUwLjEyNDkzODE4NyArMDIw MAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNy0wMi0y NCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIv YnVpbGQtaWQuYwkyMDE3LTAyLTI0IDIyOjQ1OjI1LjgxNzQwMzE2MiArMDEwMAogQEAgLTI2LDEx ICsyNiw2NyBAQAogICNpbmNsdWRlICJvYmpmaWxlcy5oIgogICNpbmNsdWRlICJmaWxlbmFtZXMu aCIKQEAgLTgxNyw3ICs4MTYsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1 aWxkLWlkLmMKICsKICAvKiBTZWUgYnVpbGQtaWQuaC4gICovCiAgCi0gYmZkICoKKyBnZGJfYmZk X3JlZl9wdHIKIC1idWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVfdCBidWlsZF9pZF9sZW4sIGNv bnN0IGJmZF9ieXRlICpidWlsZF9pZCkKICtidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVfdCBi dWlsZF9pZF9sZW4sIGNvbnN0IGJmZF9ieXRlICpidWlsZF9pZCwKICsJCSAgICAgICBjaGFyICoq bGlua19yZXR1cm4sIGludCBhZGRfZGVidWdfc3VmZml4KQpAQCAtODI3LDcgKzgyNiw3IEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuYwogICAgVkVDIChjaGFyX3B0 cikgKmRlYnVnZGlyX3ZlYzsKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgaW50IGl4 OwotICAgYmZkICphYmZkID0gTlVMTDsKKyAgIGdkYl9iZmRfcmVmX3B0ciBhYmZkOwogLSAgaW50 IGFsbG9jX2xlbjsKICAKICAgIC8qIERFQlVHX0ZJTEVfRElSRUNUT1JZLy5idWlsZC1pZC9hYi9j ZGVmICovCkBAIC04NTMsNyArODUyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9idWlsZC1pZC5jCiAgCiAgICAgICAgbWVtY3B5IChsaW5rLCBkZWJ1Z2RpciwgZGVidWdkaXJf bGVuKTsKICAgICAgICBzID0gJmxpbmtbZGVidWdkaXJfbGVuXTsKLUBAIC0xMTAsNDcgKzU0NCwy ODEgQEAKK0BAIC0xMTAsNDUgKzU0NCwyOTAgQEAKICAJKnMrKyA9ICcvJzsKICAgICAgICB3aGls ZSAoc2l6ZS0tID4gMCkKICAJcyArPSBzcHJpbnRmIChzLCAiJTAyeCIsICh1bnNpZ25lZCkgKmRh dGErKyk7CkBAIC05MDMsMzggKzkwMiwzNiBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAv Z2RiL2J1aWxkLWlkLmMKICsJICBpbm5lciA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGZpbGVuYW1l KTsKICsJICBhYmZkID0gZ2RiX2JmZF9vcGVuIChmaWxlbmFtZSwgZ251dGFyZ2V0LCAtMSk7CiAr CSAgZG9fY2xlYW51cHMgKGlubmVyKTsKKysKKysJICBpZiAoYWJmZCA9PSBOVUxMKQorKwkgICAg Y29udGludWU7CiAgCiAtICAgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCiAtCWNvbnRpbnVlOwot KwkgIGlmIChhYmZkID09IE5VTEwpCi0rCSAgICBjb250aW51ZTsKKysJICBpZiAoYnVpbGRfaWRf dmVyaWZ5IChhYmZkLmdldCgpLCBidWlsZF9pZF9sZW4sIGJ1aWxkX2lkKSkKKysJICAgIGJyZWFr OwogIAogLSAgICAgIC8qIFdlIGV4cGVjdCB0byBiZSBzaWxlbnQgb24gdGhlIG5vbi1leGlzdGlu ZyBmaWxlcy4gICovCiAtICAgICAgaW5uZXIgPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBmaWxlbmFt ZSk7CiAtICAgICAgYWJmZCA9IGdkYl9iZmRfb3BlbiAoZmlsZW5hbWUsIGdudXRhcmdldCwgLTEp OwogLSAgICAgIGRvX2NsZWFudXBzIChpbm5lcik7Ci0rCSAgaWYgKGJ1aWxkX2lkX3ZlcmlmeSAo YWJmZCwgYnVpbGRfaWRfbGVuLCBidWlsZF9pZCkpCi0rCSAgICBicmVhazsKKysJICBhYmZkLnJl bGVhc2UgKCk7CiAgCiAtICAgICAgaWYgKGFiZmQgPT0gTlVMTCkKIC0JY29udGludWU7Ci0rCSAg Z2RiX2JmZF91bnJlZiAoYWJmZCk7Ci0rCSAgYWJmZCA9IE5VTEw7Ci0gCi0tICAgICAgaWYgKGJ1 aWxkX2lkX3ZlcmlmeSAoYWJmZCwgYnVpbGRfaWRfbGVuLCBidWlsZF9pZCkpCi0tCWJyZWFrOwog KwkgIGZpbGVuYW1lID0gTlVMTDsKICsJfQogIAotLSAgICAgIGdkYl9iZmRfdW5yZWYgKGFiZmQp OwotLSAgICAgIGFiZmQgPSBOVUxMOworLSAgICAgIGlmIChidWlsZF9pZF92ZXJpZnkgKGFiZmQu Z2V0KCksIGJ1aWxkX2lkX2xlbiwgYnVpbGRfaWQpKQorLQlicmVhazsKICsgICAgICBpZiAoZmls ZW5hbWUgIT0gTlVMTCkKICsJewogKwkgIC8qIExJTktfQUxMIGlzIG5vdCB1c2VkIGJlbG93IGlu IHRoaXMgbm9uLU5VTEwgRklMRU5BTUUgY2FzZS4gICovCiArCSAgeGZyZWUgKGxpbmswKTsKICsJ ICBicmVhazsKICsJfQotKworIAorLSAgICAgIGFiZmQucmVsZWFzZSAoKTsKICsgICAgICAvKiBJ ZiB0aGUgc3ltbGluayBoYXMgdGFyZ2V0IHJlcXVlc3QgdG8gaW5zdGFsbCB0aGUgdGFyZ2V0Lgog KyAgICAgICAgIEJBU0UtZGVidWdpbmZvLnJwbSBjb250YWlucyB0aGUgc3ltbGluayBidXQgQkFT RS5ycG0gbWF5IGJlIG1pc3NpbmcuCiArICAgICAgICAgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQu Y29tL3Nob3dfYnVnLmNnaT9pZD05ODExNTQgICovCkBAIC05ODIsNyArOTc5LDcgQEAgSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9idWlsZC1pZC5jCiArY2hhciAqCiArYnVpbGRfaWRf dG9fZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBiZmRfYnVpbGRfaWQgKmJ1aWxkX2lkLCBjaGFyICoq bGlua19yZXR1cm4pCiArewotKyAgYmZkICphYmZkOworKyAgZ2RiX2JmZF9yZWZfcHRyIGFiZmQ7 CiArICBjaGFyICpyZXN1bHQ7CiArICAKICsgIGFiZmQgPSBidWlsZF9pZF90b19kZWJ1Z19iZmQg KGJ1aWxkX2lkLT5zaXplLCBidWlsZF9pZC0+ZGF0YSwgbGlua19yZXR1cm4sIDApOwpAQCAtOTkw LDcgKzk4Nyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuYwog KyAgICByZXR1cm4gTlVMTDsKICsKICsgIHJlc3VsdCA9IHhzdHJkdXAgKGJmZF9nZXRfZmlsZW5h bWUgKGFiZmQpKTsKLSsgIGdkYl9iZmRfdW5yZWYgKGFiZmQpOworKyAgYWJmZC5yZWxlYXNlICgp OwogKyAgcmV0dXJuIHJlc3VsdDsKICt9CiArCkBAIC0xMTM1LDcgKzExMzIsNyBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmMKICBjaGFyICoKIC1maW5kX3NlcGFy YXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiArZmlu ZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LAotKwkJCQkgICAgIGNoYXIgKipidWlsZF9pZF9maWxlbmFtZV9yZXR1cm4pCisrCQkJZ2RiOjp1 bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4gKmJ1aWxkX2lkX2ZpbGVuYW1lX3JldHVybikKICB7CiAg ICBjb25zdCBzdHJ1Y3QgYmZkX2J1aWxkX2lkICpidWlsZF9pZDsKICAKQEAgLTExNDYsMTUgKzEx NDMsMjUgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9idWlsZC1pZC5jCiArICBi dWlsZF9pZCA9IGJ1aWxkX2lkX2JmZF9zaGRyX2dldCAob2JqZmlsZS0+b2JmZCk7CiAgICBpZiAo YnVpbGRfaWQgIT0gTlVMTCkKICAgICAgewotICAgICAgIGJmZCAqYWJmZDsKLSAKLS0gICAgICBh YmZkID0gYnVpbGRfaWRfdG9fZGVidWdfYmZkIChidWlsZF9pZC0+c2l6ZSwgYnVpbGRfaWQtPmRh dGEpOwotKyAgICAgIGFiZmQgPSBidWlsZF9pZF90b19kZWJ1Z19iZmQgKGJ1aWxkX2lkLT5zaXpl LCBidWlsZF9pZC0+ZGF0YSwKLSsJCQkJICAgIGJ1aWxkX2lkX2ZpbGVuYW1lX3JldHVybiwgMSk7 CisrICAgICAgY2hhciAqYnVpbGRfaWRfZmlsZW5hbWVfY3N0ciA9IE5VTEw7CisgICAgICAgZ2Ri X2JmZF9yZWZfcHRyIGFiZmQgKGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAoYnVpbGRfaWQtPnNpemUs CistCQkJCQkJICAgYnVpbGRfaWQtPmRhdGEpKTsKKysJCQkJCQkgICAgYnVpbGRfaWQtPmRhdGEs CisrCSAgICAgICghYnVpbGRfaWRfZmlsZW5hbWVfcmV0dXJuID8gTlVMTCA6ICZidWlsZF9pZF9m aWxlbmFtZV9jc3RyKSwgMSkpOworKyAgICAgIGlmIChidWlsZF9pZF9maWxlbmFtZV9yZXR1cm4p CisrCXsKKysJICBpZiAoIWJ1aWxkX2lkX2ZpbGVuYW1lX2NzdHIpCisrCSAgICBnZGJfYXNzZXJ0 ICghKmJ1aWxkX2lkX2ZpbGVuYW1lX3JldHVybik7CisrCSAgZWxzZQorKwkgICAgeworKwkgICAg ICAqYnVpbGRfaWRfZmlsZW5hbWVfcmV0dXJuID0gZ2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8Y2hh cj4gKGJ1aWxkX2lkX2ZpbGVuYW1lX2NzdHIpOworKwkgICAgICBidWlsZF9pZF9maWxlbmFtZV9j c3RyID0gTlVMTDsKKysJICAgIH0KKysJfQogICAgICAgIC8qIFByZXZlbnQgbG9vcGluZyBvbiBh IHN0cmlwcGVkIC5kZWJ1ZyBmaWxlLiAgKi8KICAgICAgICBpZiAoYWJmZCAhPSBOVUxMCi0gCSAg JiYgZmlsZW5hbWVfY21wIChiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkKSwKLUBAIC0xNzAsMyArODM4 LDIxIEBACisgCSAgJiYgZmlsZW5hbWVfY21wIChiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkLmdldCAo KSksCitAQCAtMTYwLDMgKzgzOSwyMSBAQAogICAgICB9CiAgICByZXR1cm4gTlVMTDsKICB9CkBA IC0xMTc2LDEzICsxMTgzLDEzIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYnVp bGQtaWQuYwogKwogKyAgb2JzZXJ2ZXJfYXR0YWNoX2V4ZWN1dGFibGVfY2hhbmdlZCAoZGVidWdf cHJpbnRfZXhlY3V0YWJsZV9jaGFuZ2VkKTsKICt9Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL2J1aWxkLWlkLmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvYnVpbGQt aWQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2J1aWxk LWlkLmgJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuaAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzNTc1MzY5NCAr MDIwMAotQEAgLTIwLDkgKzIwLDEwIEBACi0gI2lmbmRlZiBCVUlMRF9JRF9ICi0gI2RlZmluZSBC VUlMRF9JRF9ICistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvYnVpbGQtaWQuaAky MDE3LTAyLTI0IDIyOjE4OjAyLjE3NjM5MTQwMCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjA3L2dkYi9idWlsZC1pZC5oCTIwMTctMDItMjQgMjI6MzI6MzguODA5MjY0NTAzICswMTAwCitA QCAtMjIsOSArMjIsMTAgQEAKKyAKKyAjaW5jbHVkZSAiZ2RiX2JmZC5oIgogIAogLS8qIExvY2F0 ZSBOVF9HTlVfQlVJTERfSUQgZnJvbSBBQkZEIGFuZCByZXR1cm4gaXRzIGNvbnRlbnQuICAqLwog Ky8qIFNlcGFyYXRlIGRlYnVnaW5mbyBmaWxlcyBoYXZlIGNvcnJ1cHRlZCBQSERSIGJ1dCBTSERS IGlzIGNvcnJlY3QgdGhlcmUuCkBAIC0xMTkzLDEzICsxMjAwLDE0IEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuaAogIAogIC8qIFJldHVybiB0cnVlIGlmIEFCRkQg aGFzIE5UX0dOVV9CVUlMRF9JRCBtYXRjaGluZyB0aGUgQ0hFQ0sgdmFsdWUuCiAgICAgT3RoZXJ3 aXNlLCBpc3N1ZSBhIHdhcm5pbmcgYW5kIHJldHVybiBmYWxzZS4gICovCi1AQCAtMzYsMTMgKzM3 LDE4IEBACitAQCAtMzgsMTMgKzM5LDE5IEBACiAgICAgdGhlIGNhbGxlci4gICovCiAgCi0gZXh0 ZXJuIGJmZCAqYnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbGVuLAotLQkJ CQkgICBjb25zdCBiZmRfYnl0ZSAqYnVpbGRfaWQpOwotKwkJCQkgICBjb25zdCBiZmRfYnl0ZSAq YnVpbGRfaWQsIGNoYXIgKipsaW5rX3JldHVybiwKLSsJCQkJICAgaW50IGFkZF9kZWJ1Z19zdWZm aXgpOworIGV4dGVybiBnZGJfYmZkX3JlZl9wdHIgYnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXpl X3QgYnVpbGRfaWRfbGVuLAorLQkJCQkJICAgICAgY29uc3QgYmZkX2J5dGUgKmJ1aWxkX2lkKTsK KysJCQkJCSAgICAgIGNvbnN0IGJmZF9ieXRlICpidWlsZF9pZCwKKysJCQkJCSAgICAgIGNoYXIg KipsaW5rX3JldHVybiwKKysJCQkJCSAgICAgIGludCBhZGRfZGVidWdfc3VmZml4KTsKICsKICtl eHRlcm4gY2hhciAqYnVpbGRfaWRfdG9fZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBiZmRfYnVpbGRf aWQgKmJ1aWxkX2lkLAogKwkJCQkgICBjaGFyICoqbGlua19yZXR1cm4pOwpAQCAtMTIxMSwxNCAr MTIxOSwxNCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmgKICAK IC1leHRlcm4gY2hhciAqZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlKTsKICtleHRlcm4gY2hhciAqZmluZF9zZXBhcmF0ZV9kZWJ1Z19m aWxlX2J5X2J1aWxkaWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAotKwkJCQkJICAgICAgIGNo YXIgKipidWlsZF9pZF9maWxlbmFtZV9yZXR1cm4pOworKwkJICAgICAgIGdkYjo6dW5pcXVlX3ht YWxsb2NfcHRyPGNoYXI+ICpidWlsZF9pZF9maWxlbmFtZV9yZXR1cm4pOwogIAogICNlbmRpZiAv KiBCVUlMRF9JRF9IICovCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2R3YXJmMnJl YWQuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9kd2FyZjJyZWFkLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAx Ni0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvZHdhcmYycmVhZC5jCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDQwNzUzNzM2ICswMjAwCi1A QCAtMjUzNSw3ICsyNTM1LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9k d2FyZjJyZWFkLmMJMjAxNy0wMi0yNCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvZHdhcmYycmVhZC5jCTIwMTctMDItMjQgMjI6MzI6MzguODE0 MjY0NTM2ICswMTAwCitAQCAtMjUzNCw3ICsyNTM0LDcgQEAKICAgICAgfQogIAogICAgaWYgKGR3 el9iZmQgPT0gTlVMTCkKQEAgLTEyMjcsMTAgKzEyMzUsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9kd2FyZjJyZWFkLmMKICAKICAgIGlmIChkd3pfYmZkID09IE5VTEwpCiAg ICAgIGVycm9yIChfKCJjb3VsZCBub3QgZmluZCAnLmdudV9kZWJ1Z2FsdGxpbmsnIGZpbGUgZm9y ICVzIiksCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weS1vYmpmaWxl LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3B5dGhvbi9weS1v YmpmaWxlLmMJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwkyMDE2LTA3LTAzIDE0OjM0OjMy LjA0MDc1MzczNiArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3B5dGhv bi9weS1vYmpmaWxlLmMJMjAxNy0wMi0yNCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAKKysrKyBn ZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwkyMDE3LTAyLTI0IDIy OjMyOjM4LjgxNDI2NDUzNiArMDEwMAogQEAgLTEzNiw3ICsxMzYsNyBAQAogIAogICAgVFJZCkBA IC0xMjQwLDcgKzEyNDgsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhv bi9weS1vYmpmaWxlLmMKICAgICAgfQogICAgQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxM KQogICAgICB7Ci1AQCAtNTQ3LDcgKzU0Nyw3IEBACitAQCAtNTQ2LDcgKzU0Niw3IEBACiAgICAg ICAgLyogRG9uJ3QgcmV0dXJuIHNlcGFyYXRlIGRlYnVnIGZpbGVzLiAgKi8KICAgICAgICBpZiAo b2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayAhPSBOVUxMKQogIAljb250 aW51ZTsKQEAgLTEyNDksMTEgKzEyNTcsMTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9weXRob24vcHktb2JqZmlsZS5jCiAgICAgICAgaWYgKG9iZmRfYnVpbGRfaWQgPT0gTlVM TCkKICAJY29udGludWU7CiAgICAgICAgaWYgKG9iamZweV9idWlsZF9pZF9tYXRjaGVzIChvYmZk X2J1aWxkX2lkLCBidWlsZF9pZCkpCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2Nv ZmZyZWFkLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvY29mZnJlYWQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvZmZyZWFkLmMJMjAx Ni0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvY29mZnJlYWQuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjA0MTc1Mzc0NSArMDIwMAotQEAg LTczNyw3ICs3MzcsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2NvZmZy ZWFkLmMJMjAxNy0wMi0yNCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAKKysrKyBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvY29mZnJlYWQuYwkyMDE3LTAyLTI0IDIyOjMyOjM4LjgxNTI2NDU0MyAr MDEwMAorQEAgLTczNCw3ICs3MzQsNyBAQAogICAgICB7CiAgICAgICAgY2hhciAqZGVidWdmaWxl OwogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1pcy1kZWZh dWx0LnBhdGNoIGIvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLWlzLWRlZmF1bHQucGF0 Y2gKaW5kZXggOWE4ZWM0NS4uYWQ5ZjY0MyAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1zY2hlZHVsZXJf bG9ja2luZy1zdGVwLWlzLWRlZmF1bHQucGF0Y2gKKysrIGIvZ2RiLTYuNi1zY2hlZHVsZXJfbG9j a2luZy1zdGVwLWlzLWRlZmF1bHQucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcu MTEuOTAuMjAxNjA5MDQvZ2RiL2luZnJ1bi5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA5MDQub3JpZy9n ZGIvaW5mcnVuLmMJMjAxNi0wOS0wNCAxNzo1NzoxMi43MzM4NTM4NDggKzAyMDAKLSsrKyBnZGIt Ny4xMS45MC4yMDE2MDkwNC9nZGIvaW5mcnVuLmMJMjAxNi0wOS0wNCAxNzo1Nzo0NS41NjgxNDUz OTEgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9pbmZydW4uYwkyMDE3 LTAyLTA3IDIxOjA3OjQwLjMyMTIwMjQ0OCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi9pbmZydW4uYwkyMDE3LTAyLTA3IDIxOjA3OjQyLjY4MDIyMDM2NSArMDEwMAogQEAgLTIy MTgsNyArMjIxOCw3IEBACiAgICBzY2hlZGxvY2tfcmVwbGF5LAogICAgTlVMTApAQCAtMTEsMTAg KzExLDEwIEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNC9nZGIvaW5mcnVuLmMKICBzdGF0 aWMgdm9pZAogIHNob3dfc2NoZWR1bGVyX21vZGUgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQg ZnJvbV90dHksCiAgCQkgICAgIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjLCBjb25zdCBjaGFy ICp2YWx1ZSkKLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNC9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS1jbGkuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIubWkvbWktY2xpLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjkwLjIwMTYwOTA0Lm9y aWcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY2xpLmV4cAkyMDE2LTA5LTA0IDE3OjU3OjEyLjcz Mzg1Mzg0OCArMDIwMAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA0L2dkYi90ZXN0c3VpdGUvZ2Ri Lm1pL21pLWNsaS5leHAJMjAxNi0wOS0wNCAxNzo1Nzo0NS41NjkxNDUzOTkgKzAyMDAKKy0tLSBn ZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5leHAJ MjAxNy0wMi0wNyAyMTowNzo0MC4zMjIyMDI0NTUgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jbGkuZXhwCTIwMTctMDItMDcgMjE6MDc6NDIu NjgwMjIwMzY1ICswMTAwCiBAQCAtMTk5LDcgKzE5OSw3IEBACiAgIyBUZXN0IHRoYXQgdGhlIHRv a2VuIGlzIG91dHB1dCBldmVuIGZvciBDTEkgY29tbWFuZHMKICAjIEFsc28gdGVzdCB0aGF0ICpz dG9wcGVkIGluY2x1ZGVzIGZyYW1lIGluZm9ybWF0aW9uLgpAQCAtMjQsMzIgKzI0LDMyIEBAIElu ZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jbGkuZXhw CiAgICAgICIzNCBuZXh0OiBydW4iCiAgCiAgIyBUZXN0IHRoYXQgdGhlIG5ldyBjdXJyZW50IHNv dXJjZSBsaW5lIGlzIG91dHB1dCB0byB0aGUgY29uc29sZQotSW5kZXg6IGdkYi03LjExLjkwLjIw MTYwOTA0L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWxvZ2dpbmcuZXhwCitJbmRleDogZ2RiLTcu MTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktbG9nZ2luZy5leHAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDkwNC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1p L21pLWxvZ2dpbmcuZXhwCTIwMTYtMDktMDQgMTc6NTc6MTIuNzMzODUzODQ4ICswMjAwCi0rKysg Z2RiLTcuMTEuOTAuMjAxNjA5MDQvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktbG9nZ2luZy5leHAJ MjAxNi0wOS0wNCAxNzo1Nzo0NS41NjkxNDUzOTkgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3 MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWxvZ2dpbmcuZXhwCTIwMTctMDItMDcg MjE6MDc6NDIuNjgxMjIwMzcyICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWktbG9nZ2luZy5leHAJMjAxNy0wMi0wNyAyMTowOTozNi45NTAwODgy NjkgKzAxMDAKIEBAIC01Myw3ICs1Myw3IEBACiAgCiAgc2V0IG1pX2xvZ19wcm9tcHQgIlxbKFxd Z2RiXFspXF0gXFtcclxuXF0rIgogIAogLWlmIFtyZWdleHAgIlxcXmRvbmVcW1xyXG5cXSskbWlf bG9nX3Byb21wdFxcXnJ1bm5pbmdcW1xyXG5cXStcXCpydW5uaW5nLHRocmVhZC1pZD1cImFsbFwi XFtcclxuXF0rJG1pX2xvZ19wcm9tcHRcXCpzdG9wcGVkLHJlYXNvbj1cImVuZC1zdGVwcGluZy1y YW5nZVwiLC4qXFtcclxuXF0rJG1pX2xvZ19wcm9tcHRcXF5ydW5uaW5nXFtcclxuXF0rXFwqcnVu bmluZyx0aHJlYWQtaWQ9XCJhbGxcIlxbXHJcblxdKyRtaV9sb2dfcHJvbXB0XFwqc3RvcHBlZCxy ZWFzb249XCJlbmQtc3RlcHBpbmctcmFuZ2VcIiwuKlxbXHJcblxdKyRtaV9sb2dfcHJvbXB0IiAk bG9nY29udGVudF0gewogK2lmIFtyZWdleHAgIlxcXmRvbmVcW1xyXG5cXSskbWlfbG9nX3Byb21w dFxcXnJ1bm5pbmdcW1xyXG5cXStcXCpydW5uaW5nLHRocmVhZC1pZD1cIjFcIlxbXHJcblxdKyRt aV9sb2dfcHJvbXB0XFwqc3RvcHBlZCxyZWFzb249XCJlbmQtc3RlcHBpbmctcmFuZ2VcIiwuKlxb XHJcblxdKyRtaV9sb2dfcHJvbXB0XFxecnVubmluZ1xbXHJcblxdK1xcKnJ1bm5pbmcsdGhyZWFk LWlkPVwiMVwiXFtcclxuXF0rJG1pX2xvZ19wcm9tcHRcXCpzdG9wcGVkLHJlYXNvbj1cImVuZC1z dGVwcGluZy1yYW5nZVwiLC4qXFtcclxuXF0rJG1pX2xvZ19wcm9tcHQiICRsb2djb250ZW50XSB7 Ci0gICAgIHBhc3MgIkxvZyBmaWxlIGNvbnRlbnRzIgorICAgICBwYXNzICJsb2cgZmlsZSBjb250 ZW50cyIKICB9IGVsc2UgewotICAgICBmYWlsICJMb2cgZmlsZSBjb250ZW50cyIKKyAgICAgZmFp bCAibG9nIGZpbGUgY29udGVudHMiCiBAQCAtNzYsNyArNzYsNyBAQAogIHNldCBsb2djb250ZW50 IFtyZWFkICRjaGFuXQogIGNsb3NlICRjaGFuCiAgCiAtaWYgW3JlZ2V4cCAiMTAwMVxcXmRvbmVc W1xyXG5cXSskbWlfbG9nX3Byb21wdC4qMTAwMlxcXnJ1bm5pbmdcW1xyXG5cXStcXCpydW5uaW5n LHRocmVhZC1pZD1cImFsbFwiXFtcclxuXF0rJG1pX2xvZ19wcm9tcHRcXCpzdG9wcGVkLHJlYXNv bj1cImVuZC1zdGVwcGluZy1yYW5nZVwiLC4qXFtcclxuXF0rJG1pX2xvZ19wcm9tcHQuKjEwMDNc XF5ydW5uaW5nXFtcclxuXF0rXFwqcnVubmluZyx0aHJlYWQtaWQ9XCJhbGxcIlxbXHJcblxdKyRt aV9sb2dfcHJvbXB0XFwqc3RvcHBlZCxyZWFzb249XCJlbmQtc3RlcHBpbmctcmFuZ2VcIiwuKlxb XHJcblxdKyRtaV9sb2dfcHJvbXB0IiAkbG9nY29udGVudF0gewogK2lmIFtyZWdleHAgIjEwMDFc XF5kb25lXFtcclxuXF0rJG1pX2xvZ19wcm9tcHQuKjEwMDJcXF5ydW5uaW5nXFtcclxuXF0rXFwq cnVubmluZyx0aHJlYWQtaWQ9XCIxXCJcW1xyXG5cXSskbWlfbG9nX3Byb21wdFxcKnN0b3BwZWQs cmVhc29uPVwiZW5kLXN0ZXBwaW5nLXJhbmdlXCIsLipcW1xyXG5cXSskbWlfbG9nX3Byb21wdC4q MTAwM1xcXnJ1bm5pbmdcW1xyXG5cXStcXCpydW5uaW5nLHRocmVhZC1pZD1cIjFcIlxbXHJcblxd KyRtaV9sb2dfcHJvbXB0XFwqc3RvcHBlZCxyZWFzb249XCJlbmQtc3RlcHBpbmctcmFuZ2VcIiwu KlxbXHJcblxdKyRtaV9sb2dfcHJvbXB0IiAkbG9nY29udGVudF0gewotICAgICBwYXNzICJSZWRp cmVjdCBsb2cgZmlsZSBjb250ZW50cyIKKyAgICAgcGFzcyAicmVkaXJlY3QgbG9nIGZpbGUgY29u dGVudHMiCiAgfSBlbHNlIHsKLSAgICAgZmFpbCAiUmVkaXJlY3QgbG9nIGZpbGUgY29udGVudHMi Ci1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDQvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY29u c29sZS5leHAKKyAgICAgZmFpbCAicmVkaXJlY3QgbG9nIGZpbGUgY29udGVudHMiCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY29uc29sZS5leHAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDkwNC5vcmlnL2dkYi90ZXN0c3VpdGUv Z2RiLm1pL21pLWNvbnNvbGUuZXhwCTIwMTYtMDktMDQgMTc6NTc6MTIuNzMzODUzODQ4ICswMjAw Ci0rKysgZ2RiLTcuMTEuOTAuMjAxNjA5MDQvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY29uc29s ZS5leHAJMjAxNi0wOS0wNCAxNzo1Nzo0NS41NjkxNDUzOTkgKzAyMDAKKy0tLSBnZGItNy4xMi41 MC4yMDE3MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNvbnNvbGUuZXhwCTIwMTct MDItMDcgMjE6MDc6NDAuMzIzMjAyNDYzICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY29uc29sZS5leHAJMjAxNy0wMi0wNyAyMTowNzo0Mi42 ODEyMjAzNzIgKzAxMDAKIEBAIC02MCw2ICs2MCw5IEBACiAgCiAgbWlfcnVuX3RvX21haW4KQEAg LTYwLDEwICs2MCwxMCBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDQvZ2RiL3Rlc3RzdWl0 ZS9nZGIubWkvbWktY29uc29sZS5leHAKICAjIFRoZSBvdXRwdXQgd2UgZ2V0IGZyb20gdGhlIHRh cmdldCBkZXBlbmRzIG9uIGhvdyBpdCBpcyBob3N0ZWQuICBJZgogICMgd2UgYXJlIHNlbWlob3N0 ZWQgKGUuZy4sIHRoZSBzaW0gb3IgYSByZW1vdGUgdGFyZ2V0IHRoYXQgc3VwcG9ydHMKICAjIHRo ZSBGaWxlIEkvTyByZW1vdGUgcHJvdG9jb2wgZXh0ZW5zaW9uKSwgd2Ugc2VlIHRoZSB0YXJnZXQg SS9PCi1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDQvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lu bGluZS1jbWRzLmV4cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUv Z2RiLm9wdC9pbmxpbmUtY21kcy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2 MDkwNC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5leHAJMjAxNi0wOS0w NCAxNzo1OTo0NC42MDAyMDIyOTkgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNC9nZGIv dGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuZXhwCTIwMTYtMDktMDQgMTg6MDA6MDQuNjE2 MzgwMDI3ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdGVzdHN1aXRl L2dkYi5vcHQvaW5saW5lLWNtZHMuZXhwCTIwMTctMDItMDcgMjE6MDc6NDAuMzIzMjAyNDYzICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGlu ZS1jbWRzLmV4cAkyMDE3LTAyLTA3IDIxOjA3OjQyLjY4MTIyMDM3MiArMDEwMAogQEAgLTMzMSw3 ICszMzEsNyBAQAogIAogICAgICBzZW5kX2dkYiAiaW50ZXJwcmV0ZXItZXhlYyBjb25zb2xlIFwi c3RlcFwiXG4iCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi10aHJlYWRzLXN0YXRpYy10ZXN0LnBhdGNo IGIvZ2RiLTYuNi10aHJlYWRzLXN0YXRpYy10ZXN0LnBhdGNoCmluZGV4IDNmOGQxNmUuLmRiOGM3 ZGMgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtdGhyZWFkcy1zdGF0aWMtdGVzdC5wYXRjaAorKysgYi9n ZGItNi42LXRocmVhZHMtc3RhdGljLXRlc3QucGF0Y2gKQEAgLTEsOCArMSw4IEBACi1JbmRleDog Z2RiLTcuNC41MC4yMDExMTIxOS9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3N0YXRpY3RocmVh ZHMuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhy ZWFkcy9zdGF0aWN0aHJlYWRzLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMTEy MTkub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3N0YXRpY3RocmVhZHMuZXhwCTIwMTEt MTItMTkgMjE6MDc6MDEuNDM2NDc1MjAxICswMTAwCi0rKysgZ2RiLTcuNC41MC4yMDExMTIxOS9n ZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3N0YXRpY3RocmVhZHMuZXhwCTIwMTEtMTItMTkgMjI6 MDg6NTUuNDQ0NTE0MTI3ICswMTAwCi1AQCAtNDUsNiArNDUsMTMgQEAgZ2RiX3Rlc3Rfbm9fb3V0 cHV0ICJzZXQgcHJpbnQgc2V2ZW5iaXQtcworLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcv Z2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zdGF0aWN0aHJlYWRzLmV4cAkyMDE3LTAyLTI2IDE3 OjI0OjQ4LjM5MjMxNjA0NSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0 c3VpdGUvZ2RiLnRocmVhZHMvc3RhdGljdGhyZWFkcy5leHAJMjAxNy0wMi0yNiAxNzoyNTozOC42 NDk2Nzc1OTUgKzAxMDAKK0BAIC00MSw2ICs0MSwxMyBAQAogICMgU2VlIGlmIHRoZSBzdGF0aWMg bXVsdGktdGhyZWFkZWQgcHJvZ3JhbSBydW5zLgogIAogIHJ1bnRvX21haW4KQEAgLTE0LDUgKzE0 LDUgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMTEyMTkvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFk cy9zdGF0aWN0aHJlYWRzLmV4cAogK2dkYl90ZXN0ICJpbmZvIHRocmVhZHMiICJeaW5mbyB0aHJl YWRzXHJcblxbIFx0XF0qSWRcWyBcdFxdK1RhcmdldCBJZFxbIFx0XF0rRnJhbWVcWyBcdFxdKlxy XG5cW15cclxuXF0qIFRocmVhZCBcW15cclxuXF0qIiAiaW5mbyB0aHJlYWRzIG9uIHN0YXJ0Igog KwogIGdkYl90ZXN0ICJicmVhayBzZW1fcG9zdCIKLSBzZXQgdGVzdCAiQ29udGludWUgdG8gbWFp bidzIGNhbGwgb2Ygc2VtX3Bvc3QiCisgc2V0IHRlc3QgImNvbnRpbnVlIHRvIG1haW4ncyBjYWxs IG9mIHNlbV9wb3N0IgogIGdkYl90ZXN0X211bHRpcGxlICJjb250aW51ZSIgIiR0ZXN0IiB7Cgpk aWZmIC0tZ2l0IGEvZ2RiLTYuNy1iejQyNjYwMC1EV19UQUdfaW50ZXJmYWNlX3R5cGUtdGVzdC5w YXRjaCBiL2dkYi02LjctYno0MjY2MDAtRFdfVEFHX2ludGVyZmFjZV90eXBlLXRlc3QucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2ZjcxNjUuLjAwMDAwMDAKLS0tIGEvZ2Ri LTYuNy1iejQyNjYwMC1EV19UQUdfaW50ZXJmYWNlX3R5cGUtdGVzdC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDcwNyArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNo ZXMvMjAwNy0xMi9tc2cwMDM5Ny5odG1sCi0KLTIwMDctMTItMjIgIEphbiBLcmF0b2NodmlsICA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCSogZ2RiLmFyY2gvaTM4Ni1pbnRlcmZhY2Uu UywgZ2RiLmFyY2gvaTM4Ni1pbnRlcmZhY2UuZXhwOiBOZXcgZmlsZXMuCi0KLTIwMDgtMDMtMDIg IEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCSogZ2RiLmFy Y2gvaTM4Ni1pbnRlcmZhY2UuZXhwOiBGaXggYSB0ZXN0Y2FzZSByYWNlLgotCi1JbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LWludGVyZmFjZS5T Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9p Mzg2LWludGVyZmFjZS5TCTIwMTYtMDItMTUgMjM6MjM6MDMuMzE4NTAyMzU3ICswMTAwCi1AQCAt MCwwICsxLDYyOCBAQAotKy8qIENvcHlyaWdodCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgotKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0rICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyAg IFBsZWFzZSBlbWFpbCBhbnkgYnVncywgY29tbWVudHMsIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhp cyBmaWxlIHRvOgotKyAgIGJ1Zy1nZGJAZ251Lm9yZwotKwotKyAgIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIHRoZSBnZGIgdGVzdHN1aXRlLgotKwotKyAgIFRoaXMgZmlsZSB3YXMgcHJvZHVjZWQgYnk6 Ci0rICAgJCBnY2ogLVMgaW50ZXJmYWNlLmphdmEgLWdnZGIyIC1XYWxsIC1tMzIKLSsgICBmcm9t IHRoZSAuamF2YSBmaWxlOgotKyAgICAgaW50ZXJmYWNlIEludGVyZmFjZQotKyAgICAgewotKyAg ICAgfQotKyAgICAgY2xhc3MgQ2xhc3MgaW1wbGVtZW50cyBJbnRlcmZhY2UKLSsgICAgIHsgIAot KyAgICAgfQotKyovCi0rCi0rCS5maWxlCSJjYzI4UHAyQi5qYXIiCi0rCS5zZWN0aW9uCS5kZWJ1 Z19hYmJyZXYsIiIsQHByb2diaXRzCi0rLkxkZWJ1Z19hYmJyZXYwOgotKwkuc2VjdGlvbgkuZGVi dWdfaW5mbywiIixAcHJvZ2JpdHMKLSsuTGRlYnVnX2luZm8wOgotKwkuc2VjdGlvbgkuZGVidWdf bGluZSwiIixAcHJvZ2JpdHMKLSsuTGRlYnVnX2xpbmUwOgotKwkudGV4dAotKy5MdGV4dDA6Ci0r CS5sb2NhbAlfTVRfSW50ZXJmYWNlCi0rCS5jb21tCV9NVF9JbnRlcmZhY2UsMCw0Ci0rCS5kYXRh Ci0rCS5hbGlnbiA0Ci0rCS50eXBlCV9jYXRjaF9jbGFzc2VzX0ludGVyZmFjZSwgQG9iamVjdAot Kwkuc2l6ZQlfY2F0Y2hfY2xhc3Nlc19JbnRlcmZhY2UsIDI0Ci0rX2NhdGNoX2NsYXNzZXNfSW50 ZXJmYWNlOgotKwkuemVybwkyNAotKwkuc2VjdGlvbgkucm9kYXRhCi0rCS5hbGlnbiAyCi0rCS50 eXBlCV9VdGYxLCBAb2JqZWN0Ci0rCS5zaXplCV9VdGYxLCA0Ci0rX1V0ZjE6Ci0rCS52YWx1ZQkz NjEyMQotKwkudmFsdWUJOQotKwkuYXNjaWkJIkludGVyZmFjZSIKLSsJLnplcm8JMQotKy5nbG9i bCBfWk45SW50ZXJmYWNlNmNsYXNzJEUKLSsJLmRhdGEKLSsJLmFsaWduIDMyCi0rCS50eXBlCV9a TjlJbnRlcmZhY2U2Y2xhc3MkRSwgQG9iamVjdAotKwkuc2l6ZQlfWk45SW50ZXJmYWNlNmNsYXNz JEUsIDE0NAotK19aTjlJbnRlcmZhY2U2Y2xhc3MkRToKLSsJLmxvbmcJX1pUVk40amF2YTRsYW5n NUNsYXNzRSs4Ci0rCS5sb25nCTQwMzAwMAotKwkubG9uZwlfVXRmMQotKwkudmFsdWUJMTUzNgot KwkuemVybwkyCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJ LmxvbmcJX01UX0ludGVyZmFjZQotKwkudmFsdWUJMAotKwkudmFsdWUJNgotKwkubG9uZwkwCi0r CS5sb25nCTQKLSsJLnZhbHVlCTAKLSsJLnZhbHVlCTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0r CS5sb25nCTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwku bG9uZwlfY2F0Y2hfY2xhc3Nlc19JbnRlcmZhY2UKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS52 YWx1ZQkwCi0rCS5ieXRlCTEKLSsJLnplcm8JMQotKwkubG9uZwkwCi0rCS52YWx1ZQkwCi0rCS56 ZXJvCTIKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwkubG9u ZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJ MAotKwkuaGlkZGVuCV9aTjlJbnRlcmZhY2U3Y2xhc3MkJEUKLSsuZ2xvYmwgX1pOOUludGVyZmFj ZTdjbGFzcyQkRQotKwkuc2VjdGlvbgkucm9kYXRhCi0rCS5hbGlnbiA0Ci0rCS50eXBlCV9aTjlJ bnRlcmZhY2U3Y2xhc3MkJEUsIEBvYmplY3QKLSsJLnNpemUJX1pOOUludGVyZmFjZTdjbGFzcyQk RSwgNAotK19aTjlJbnRlcmZhY2U3Y2xhc3MkJEU6Ci0rCS5sb25nCV9aTjlJbnRlcmZhY2U2Y2xh c3MkRQotKwkudGV4dAotKwkuYWxpZ24gMgotKy5nbG9ibCBfWk41Q2xhc3NDMUV2Ci0rCS50eXBl CV9aTjVDbGFzc0MxRXYsIEBmdW5jdGlvbgotK19aTjVDbGFzc0MxRXY6Ci0rLkxGQjI6Ci0rCXB1 c2hsCSVlYnAKLSsuTENGSTA6Ci0rCW1vdmwJJWVzcCwgJWVicAotKy5MQ0ZJMToKLSsJc3VibAkk MjQsICVlc3AKLSsuTENGSTI6Ci0rLkxCQjI6Ci0rI2lmIDAKLSsJLmZpbGUgMSAiaW50ZXJmYWNl LmphdmEiCi0rI2Vsc2UKLSsJLmZpbGUgImludGVyZmFjZS5qYXZhIgotKyNlbmRpZgotKwkubG9j IDEgNCAwCi0rCW1vdmwJOCglZWJwKSwgJWVheAotKwltb3ZsCSVlYXgsIC00KCVlYnApCi0rCW1v dmwJLTQoJWVicCksICVlYXgKLSsJbW92bAklZWF4LCAoJWVzcCkKLSsJY2FsbAlfWk40amF2YTRs YW5nNk9iamVjdEMxRXYKLSsuTEJFMjoKLSsJbGVhdmUKLSsJcmV0Ci0rLkxGRTI6Ci0rCS5zaXpl CV9aTjVDbGFzc0MxRXYsIC4tX1pONUNsYXNzQzFFdgotKwkuaGlkZGVuCV9aVFZONUNsYXNzRQot Ky5nbG9ibCBfWlRWTjVDbGFzc0UKLSsJLmRhdGEKLSsJLmFsaWduIDMyCi0rCS50eXBlCV9aVFZO NUNsYXNzRSwgQG9iamVjdAotKwkuc2l6ZQlfWlRWTjVDbGFzc0UsIDQwCi0rX1pUVk41Q2xhc3NF OgotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJX1pONUNsYXNzNmNsYXNzJEUKLSsJLmxv bmcJNAotKwkubG9uZwlfWk40amF2YTRsYW5nNk9iamVjdDhmaW5hbGl6ZUVKdnYKLSsJLmxvbmcJ X1pONGphdmE0bGFuZzZPYmplY3Q4aGFzaENvZGVFSml2Ci0rCS5sb25nCV9aTjRqYXZhNGxhbmc2 T2JqZWN0NmVxdWFsc0VKYlBTMV8KLSsJLmxvbmcJX1pONGphdmE0bGFuZzZPYmplY3Q4dG9TdHJp bmdFSlBOUzBfNlN0cmluZ0V2Ci0rCS5sb25nCV9aTjRqYXZhNGxhbmc2T2JqZWN0NWNsb25lRUpQ UzFfdgotKwkubG9uZwlfWk40amF2YTRsYW5nNk9iamVjdDIydGhyb3dOb1N1Y2hNZXRob2RFcnJv ckVKdnYKLSsJLnNldAkuTF9aTjVDbGFzc0MxRXYwLF9aTjVDbGFzc0MxRXYKLSsJLnNlY3Rpb24J LnJvZGF0YQotKwkuYWxpZ24gMgotKwkudHlwZQlfVXRmMiwgQG9iamVjdAotKwkuc2l6ZQlfVXRm MiwgNAotK19VdGYyOgotKwkudmFsdWUJNjI2Ci0rCS52YWx1ZQk2Ci0rCS5hc2NpaQkiPGluaXQ+ IgotKwkuemVybwkxCi0rCS5hbGlnbiAyCi0rCS50eXBlCV9VdGYzLCBAb2JqZWN0Ci0rCS5zaXpl CV9VdGYzLCA0Ci0rX1V0ZjM6Ci0rCS52YWx1ZQkzOTc5NwotKwkudmFsdWUJMwotKwkuYXNjaWkJ IigpViIKLSsJLnplcm8JMQotKwkuZGF0YQotKwkuYWxpZ24gNAotKwkudHlwZQlfTVRfQ2xhc3Ms IEBvYmplY3QKLSsJLnNpemUJX01UX0NsYXNzLCAyMAotK19NVF9DbGFzczoKLSsJLmxvbmcJX1V0 ZjIKLSsJLmxvbmcJX1V0ZjMKLSsJLnZhbHVlCTE2Mzg0Ci0rCS52YWx1ZQktMQotKwkubG9uZwku TF9aTjVDbGFzc0MxRXYwCi0rCS5sb25nCTAKLSsJLmFsaWduIDQKLSsJLnR5cGUJX0lGX0NsYXNz LCBAb2JqZWN0Ci0rCS5zaXplCV9JRl9DbGFzcywgNAotK19JRl9DbGFzczoKLSsJLmxvbmcJX1pO OUludGVyZmFjZTZjbGFzcyRFCi0rCS5hbGlnbiA0Ci0rCS50eXBlCV9jYXRjaF9jbGFzc2VzX0Ns YXNzLCBAb2JqZWN0Ci0rCS5zaXplCV9jYXRjaF9jbGFzc2VzX0NsYXNzLCAyNAotK19jYXRjaF9j bGFzc2VzX0NsYXNzOgotKwkuemVybwkyNAotKwkuc2VjdGlvbgkucm9kYXRhCi0rCS5hbGlnbiAy Ci0rCS50eXBlCV9VdGY0LCBAb2JqZWN0Ci0rCS5zaXplCV9VdGY0LCA0Ci0rX1V0ZjQ6Ci0rCS52 YWx1ZQk0NzQ0OAotKwkudmFsdWUJNQotKwkuYXNjaWkJIkNsYXNzIgotKwkuemVybwkxCi0rLmds b2JsIF9aTjVDbGFzczZjbGFzcyRFCi0rCS5kYXRhCi0rCS5hbGlnbiAzMgotKwkudHlwZQlfWk41 Q2xhc3M2Y2xhc3MkRSwgQG9iamVjdAotKwkuc2l6ZQlfWk41Q2xhc3M2Y2xhc3MkRSwgMTQ0Ci0r X1pONUNsYXNzNmNsYXNzJEU6Ci0rCS5sb25nCV9aVFZONGphdmE0bGFuZzVDbGFzc0UrOAotKwku bG9uZwk0MDMwMDAKLSsJLmxvbmcJX1V0ZjQKLSsJLnZhbHVlCTMyCi0rCS56ZXJvCTIKLSsJLmxv bmcJX1pONGphdmE0bGFuZzZPYmplY3Q2Y2xhc3MkRQotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJ LmxvbmcJMAotKwkubG9uZwlfTVRfQ2xhc3MKLSsJLnZhbHVlCTEKLSsJLnZhbHVlCTYKLSsJLmxv bmcJMAotKwkubG9uZwk0Ci0rCS52YWx1ZQkwCi0rCS52YWx1ZQkwCi0rCS5sb25nCV9aVFZONUNs YXNzRSs4Ci0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxv bmcJMAotKwkubG9uZwkwCi0rCS5sb25nCV9jYXRjaF9jbGFzc2VzX0NsYXNzCi0rCS5sb25nCV9J Rl9DbGFzcwotKwkubG9uZwkwCi0rCS52YWx1ZQkxCi0rCS5ieXRlCTEKLSsJLnplcm8JMQotKwku bG9uZwkwCi0rCS52YWx1ZQkwCi0rCS56ZXJvCTIKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5s b25nCTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwkubG9u ZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwkuaGlkZGVuCV9aTjVDbGFzczdjbGFzcyQkRQot Ky5nbG9ibCBfWk41Q2xhc3M3Y2xhc3MkJEUKLSsJLnNlY3Rpb24JLnJvZGF0YQotKwkuYWxpZ24g NAotKwkudHlwZQlfWk41Q2xhc3M3Y2xhc3MkJEUsIEBvYmplY3QKLSsJLnNpemUJX1pONUNsYXNz N2NsYXNzJCRFLCA0Ci0rX1pONUNsYXNzN2NsYXNzJCRFOgotKwkubG9uZwlfWk41Q2xhc3M2Y2xh c3MkRQotKwkuc2VjdGlvbgkuamNyLCJhdyIsQHByb2diaXRzCi0rCS5hbGlnbiA0Ci0rCS5sb25n CV9aTjlJbnRlcmZhY2U2Y2xhc3MkRQotKwkubG9uZwlfWk41Q2xhc3M2Y2xhc3MkRQotKwkuc2Vj dGlvbgkuZGVidWdfZnJhbWUsIiIsQHByb2diaXRzCi0rLkxmcmFtZTA6Ci0rCS5sb25nCS5MRUNJ RTAtLkxTQ0lFMAotKy5MU0NJRTA6Ci0rCS5sb25nCTB4ZmZmZmZmZmYKLSsJLmJ5dGUJMHgxCi0r CS5zdHJpbmcJIiIKLSsJLnVsZWIxMjggMHgxCi0rCS5zbGViMTI4IC00Ci0rCS5ieXRlCTB4OAot KwkuYnl0ZQkweGMKLSsJLnVsZWIxMjggMHg0Ci0rCS51bGViMTI4IDB4NAotKwkuYnl0ZQkweDg4 Ci0rCS51bGViMTI4IDB4MQotKwkuYWxpZ24gNAotKy5MRUNJRTA6Ci0rLkxTRkRFMDoKLSsJLmxv bmcJLkxFRkRFMC0uTEFTRkRFMAotKy5MQVNGREUwOgotKwkubG9uZwkuTGZyYW1lMAotKwkubG9u ZwkuTEZCMgotKwkubG9uZwkuTEZFMi0uTEZCMgotKwkuYnl0ZQkweDQKLSsJLmxvbmcJLkxDRkkw LS5MRkIyCi0rCS5ieXRlCTB4ZQotKwkudWxlYjEyOCAweDgKLSsJLmJ5dGUJMHg4NQotKwkudWxl YjEyOCAweDIKLSsJLmJ5dGUJMHg0Ci0rCS5sb25nCS5MQ0ZJMS0uTENGSTAKLSsJLmJ5dGUJMHhk Ci0rCS51bGViMTI4IDB4NQotKwkuYWxpZ24gNAotKy5MRUZERTA6Ci0rCS5zZWN0aW9uCS5laF9m cmFtZSwiYSIsQHByb2diaXRzCi0rLkxmcmFtZTE6Ci0rCS5sb25nCS5MRUNJRTEtLkxTQ0lFMQot Ky5MU0NJRTE6Ci0rCS5sb25nCTB4MAotKwkuYnl0ZQkweDEKLSsuZ2xvYmwgX19nY2pfcGVyc29u YWxpdHlfdjAKLSsJLnN0cmluZwkielAiCi0rCS51bGViMTI4IDB4MQotKwkuc2xlYjEyOCAtNAot KwkuYnl0ZQkweDgKLSsJLnVsZWIxMjggMHg1Ci0rCS5ieXRlCTB4MAotKwkubG9uZwlfX2djal9w ZXJzb25hbGl0eV92MAotKwkuYnl0ZQkweGMKLSsJLnVsZWIxMjggMHg0Ci0rCS51bGViMTI4IDB4 NAotKwkuYnl0ZQkweDg4Ci0rCS51bGViMTI4IDB4MQotKwkuYWxpZ24gNAotKy5MRUNJRTE6Ci0r LkxTRkRFMToKLSsJLmxvbmcJLkxFRkRFMS0uTEFTRkRFMQotKy5MQVNGREUxOgotKwkubG9uZwku TEFTRkRFMS0uTGZyYW1lMQotKwkubG9uZwkuTEZCMgotKwkubG9uZwkuTEZFMi0uTEZCMgotKwku dWxlYjEyOCAweDAKLSsJLmJ5dGUJMHg0Ci0rCS5sb25nCS5MQ0ZJMC0uTEZCMgotKwkuYnl0ZQkw eGUKLSsJLnVsZWIxMjggMHg4Ci0rCS5ieXRlCTB4ODUKLSsJLnVsZWIxMjggMHgyCi0rCS5ieXRl CTB4NAotKwkubG9uZwkuTENGSTEtLkxDRkkwCi0rCS5ieXRlCTB4ZAotKwkudWxlYjEyOCAweDUK LSsJLmFsaWduIDQKLSsuTEVGREUxOgotKwkudGV4dAotKy5MZXRleHQwOgotKwkuc2VjdGlvbgku ZGVidWdfbG9jLCIiLEBwcm9nYml0cwotKy5MZGVidWdfbG9jMDoKLSsuTExTVDA6Ci0rCS5sb25n CS5MRkIyLS5MdGV4dDAKLSsJLmxvbmcJLkxDRkkwLS5MdGV4dDAKLSsJLnZhbHVlCTB4MgotKwku Ynl0ZQkweDc0Ci0rCS5zbGViMTI4IDQKLSsJLmxvbmcJLkxDRkkwLS5MdGV4dDAKLSsJLmxvbmcJ LkxDRkkxLS5MdGV4dDAKLSsJLnZhbHVlCTB4MgotKwkuYnl0ZQkweDc0Ci0rCS5zbGViMTI4IDgK LSsJLmxvbmcJLkxDRkkxLS5MdGV4dDAKLSsJLmxvbmcJLkxGRTItLkx0ZXh0MAotKwkudmFsdWUJ MHgyCi0rCS5ieXRlCTB4NzUKLSsJLnNsZWIxMjggOAotKwkubG9uZwkweDAKLSsJLmxvbmcJMHgw Ci0rCS5zZWN0aW9uCS5kZWJ1Z19pbmZvCi0rCS5sb25nCTB4MTE3Ci0rCS52YWx1ZQkweDIKLSsJ LmxvbmcJLkxkZWJ1Z19hYmJyZXYwCi0rCS5ieXRlCTB4NAotKwkudWxlYjEyOCAweDEKLSsJLnN0 cmluZwkiR05VIEphdmEgNC4zLjAgMjAwNzEyMjEgKGV4cGVyaW1lbnRhbCkiCi0rCS5ieXRlCTB4 YgotKwkuc3RyaW5nCSJpbnRlcmZhY2UuamF2YSIKLSsJLnN0cmluZwkiL2hvbWUvamtyYXRvY2gv cmVkaGF0L2J6MzcxODMxIgotKwkubG9uZwkuTHRleHQwCi0rCS5sb25nCS5MZXRleHQwCi0rCS5s b25nCS5MZGVidWdfbGluZTAKLSsJLnVsZWIxMjggMHgyCi0rCS5zdHJpbmcJIkludGVyZmFjZSIK LSsJLmJ5dGUJMHg0Ci0rCS5ieXRlCTB4MQotKwkuYnl0ZQkweDAKLSsJLmxvbmcJMHg4ZQotKwku bG9uZwkweDhlCi0rCS51bGViMTI4IDB4MwotKwkubG9uZwkweDhlCi0rCS5ieXRlCTB4MgotKwku Ynl0ZQkweDIzCi0rCS51bGViMTI4IDB4MAotKwkuYnl0ZQkweDEKLSsJLmJ5dGUJMHgwCi0rCS51 bGViMTI4IDB4NAotKwkuc3RyaW5nCSJqYXZhLmxhbmcuT2JqZWN0IgotKwkuYnl0ZQkweDEKLSsJ LnVsZWIxMjggMHg1Ci0rCS5zdHJpbmcJIkNsYXNzIgotKwkuYnl0ZQkweDQKLSsJLmJ5dGUJMHgx Ci0rCS5ieXRlCTB4MAotKwkubG9uZwkweDhlCi0rCS5sb25nCTB4ZTgKLSsJLnVsZWIxMjggMHgz Ci0rCS5sb25nCTB4OGUKLSsJLmJ5dGUJMHgyCi0rCS5ieXRlCTB4MjMKLSsJLnVsZWIxMjggMHgw Ci0rCS5ieXRlCTB4MQotKwkudWxlYjEyOCAweDYKLSsJLmxvbmcJMHg2ZQotKwkuYnl0ZQkweDIK LSsJLmJ5dGUJMHgyMwotKwkudWxlYjEyOCAweDAKLSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4MQot KwkudWxlYjEyOCAweDcKLSsJLmJ5dGUJMHgxCi0rCS5zdHJpbmcJIjxpbml0PiIKLSsJLmJ5dGUJ MHgxCi0rCS5ieXRlCTB4MAotKwkuc3RyaW5nCSJfWk41Q2xhc3NDMUV2IgotKwkuYnl0ZQkweDEK LSsJLnVsZWIxMjggMHg4Ci0rCS5sb25nCTB4ZTgKLSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4MAot KwkuYnl0ZQkweDAKLSsJLnVsZWIxMjggMHg5Ci0rCS5ieXRlCTB4NAotKwkubG9uZwkweGExCi0r CS51bGViMTI4IDB4YQotKwkubG9uZwkweGM2Ci0rCS5sb25nCS5MRkIyCi0rCS5sb25nCS5MRkUy Ci0rCS5sb25nCS5MTFNUMAotKwkubG9uZwkweDExNAotKwkudWxlYjEyOCAweGIKLSsJLmxvbmcJ MHhlOAotKwkuYnl0ZQkweDIKLSsJLmJ5dGUJMHg5MQotKwkuc2xlYjEyOCAwCi0rCS51bGViMTI4 IDB4YwotKwkubG9uZwkweDExNAotKwkuYnl0ZQkweDIKLSsJLmJ5dGUJMHg5MQotKwkuc2xlYjEy OCAtMTIKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4OQotKwkuYnl0ZQkweDQKLSsJLmxvbmcJ MHg4ZQotKwkuYnl0ZQkweDAKLSsJLnNlY3Rpb24JLmRlYnVnX2FiYnJldgotKwkudWxlYjEyOCAw eDEKLSsJLnVsZWIxMjggMHgxMQotKwkuYnl0ZQkweDEKLSsJLnVsZWIxMjggMHgyNQotKwkudWxl YjEyOCAweDgKLSsJLnVsZWIxMjggMHgxMwotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHgz Ci0rCS51bGViMTI4IDB4OAotKwkudWxlYjEyOCAweDFiCi0rCS51bGViMTI4IDB4OAotKwkudWxl YjEyOCAweDExCi0rCS51bGViMTI4IDB4MQotKwkudWxlYjEyOCAweDEyCi0rCS51bGViMTI4IDB4 MQotKwkudWxlYjEyOCAweDEwCi0rCS51bGViMTI4IDB4NgotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJ MHgwCi0rCS51bGViMTI4IDB4MgotKwkudWxlYjEyOCAweDM4Ci0rCS5ieXRlCTB4MQotKwkudWxl YjEyOCAweDMKLSsJLnVsZWIxMjggMHg4Ci0rCS51bGViMTI4IDB4YgotKwkudWxlYjEyOCAweGIK LSsJLnVsZWIxMjggMHgzYQotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHgzYgotKwkudWxl YjEyOCAweGIKLSsJLnVsZWIxMjggMHgxZAotKwkudWxlYjEyOCAweDEzCi0rCS51bGViMTI4IDB4 MQotKwkudWxlYjEyOCAweDEzCi0rCS5ieXRlCTB4MAotKwkuYnl0ZQkweDAKLSsJLnVsZWIxMjgg MHgzCi0rCS51bGViMTI4IDB4MWMKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NDkKLSsJLnVs ZWIxMjggMHgxMwotKwkudWxlYjEyOCAweDM4Ci0rCS51bGViMTI4IDB4YQotKwkudWxlYjEyOCAw eDMyCi0rCS51bGViMTI4IDB4YgotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4 IDB4NAotKwkudWxlYjEyOCAweDIKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4MwotKwkudWxl YjEyOCAweDgKLSsJLnVsZWIxMjggMHgzYwotKwkudWxlYjEyOCAweGMKLSsJLmJ5dGUJMHgwCi0r CS5ieXRlCTB4MAotKwkudWxlYjEyOCAweDUKLSsJLnVsZWIxMjggMHgyCi0rCS5ieXRlCTB4MQot KwkudWxlYjEyOCAweDMKLSsJLnVsZWIxMjggMHg4Ci0rCS51bGViMTI4IDB4YgotKwkudWxlYjEy OCAweGIKLSsJLnVsZWIxMjggMHgzYQotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHgzYgot KwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHgxZAotKwkudWxlYjEyOCAweDEzCi0rCS51bGVi MTI4IDB4MQotKwkudWxlYjEyOCAweDEzCi0rCS5ieXRlCTB4MAotKwkuYnl0ZQkweDAKLSsJLnVs ZWIxMjggMHg2Ci0rCS51bGViMTI4IDB4MWMKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NDkK LSsJLnVsZWIxMjggMHgxMwotKwkudWxlYjEyOCAweDM4Ci0rCS51bGViMTI4IDB4YQotKwkudWxl YjEyOCAweDRjCi0rCS51bGViMTI4IDB4YgotKwkudWxlYjEyOCAweDMyCi0rCS51bGViMTI4IDB4 YgotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NwotKwkudWxlYjEyOCAw eDJlCi0rCS5ieXRlCTB4MQotKwkudWxlYjEyOCAweDNmCi0rCS51bGViMTI4IDB4YwotKwkudWxl YjEyOCAweDMKLSsJLnVsZWIxMjggMHg4Ci0rCS51bGViMTI4IDB4M2EKLSsJLnVsZWIxMjggMHhi Ci0rCS51bGViMTI4IDB4M2IKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4IDB4MjAwNwotKwku dWxlYjEyOCAweDgKLSsJLnVsZWIxMjggMHgzYwotKwkudWxlYjEyOCAweGMKLSsJLmJ5dGUJMHgw Ci0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweDgKLSsJLnVsZWIxMjggMHg1Ci0rCS5ieXRlCTB4 MAotKwkudWxlYjEyOCAweDQ5Ci0rCS51bGViMTI4IDB4MTMKLSsJLnVsZWIxMjggMHgzNAotKwku dWxlYjEyOCAweGMKLSsJLmJ5dGUJMHgwCi0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweDkKLSsJ LnVsZWIxMjggMHhmCi0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHhi Ci0rCS51bGViMTI4IDB4NDkKLSsJLnVsZWIxMjggMHgxMwotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJ MHgwCi0rCS51bGViMTI4IDB4YQotKwkudWxlYjEyOCAweDJlCi0rCS5ieXRlCTB4MQotKwkudWxl YjEyOCAweDQ3Ci0rCS51bGViMTI4IDB4MTMKLSsJLnVsZWIxMjggMHgxMQotKwkudWxlYjEyOCAw eDEKLSsJLnVsZWIxMjggMHgxMgotKwkudWxlYjEyOCAweDEKLSsJLnVsZWIxMjggMHg0MAotKwku dWxlYjEyOCAweDYKLSsJLnVsZWIxMjggMHgxCi0rCS51bGViMTI4IDB4MTMKLSsJLmJ5dGUJMHgw Ci0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHg1Ci0rCS5ieXRlCTB4 MAotKwkudWxlYjEyOCAweDQ5Ci0rCS51bGViMTI4IDB4MTMKLSsJLnVsZWIxMjggMHgyCi0rCS51 bGViMTI4IDB4YQotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4YwotKwku dWxlYjEyOCAweDM0Ci0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweDQ5Ci0rCS51bGViMTI4IDB4 MTMKLSsJLnVsZWIxMjggMHgyCi0rCS51bGViMTI4IDB4YQotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJ MHgwCi0rCS5ieXRlCTB4MAotKwkuc2VjdGlvbgkuZGVidWdfcHVibmFtZXMsIiIsQHByb2diaXRz Ci0rCS5sb25nCTB4MTUKLSsJLnZhbHVlCTB4MgotKwkubG9uZwkuTGRlYnVnX2luZm8wCi0rCS5s b25nCTB4MTFiCi0rCS5sb25nCTB4ZWUKLSsJLnN0cmluZwkiKCkiCi0rCS5sb25nCTB4MAotKwku c2VjdGlvbgkuZGVidWdfYXJhbmdlcywiIixAcHJvZ2JpdHMKLSsJLmxvbmcJMHgxYwotKwkudmFs dWUJMHgyCi0rCS5sb25nCS5MZGVidWdfaW5mbzAKLSsJLmJ5dGUJMHg0Ci0rCS5ieXRlCTB4MAot KwkudmFsdWUJMHgwCi0rCS52YWx1ZQkweDAKLSsJLmxvbmcJLkx0ZXh0MAotKwkubG9uZwkuTGV0 ZXh0MC0uTHRleHQwCi0rCS5sb25nCTB4MAotKwkubG9uZwkweDAKLSsJLmlkZW50CSJHQ0M6IChH TlUpIDQuMy4wIDIwMDcxMjIxIChleHBlcmltZW50YWwpIgotKwkuc2VjdGlvbgkubm90ZS5HTlUt c3RhY2ssIiIsQHByb2diaXRzCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYXJjaC9pMzg2LWludGVyZmFjZS5leHAKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtaW50ZXJmYWNlLmV4cAkyMDE2LTAy LTE1IDIzOjIzOjE1Ljk3ODU5MzU1NiArMDEwMAotQEAgLTAsMCArMSw1OSBAQAotKyMgQ29weXJp Z2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK LSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgUGxlYXNlIGVtYWlsIGFueSBidWdzLCBjb21tZW50cywg YW5kL29yIGFkZGl0aW9ucyB0byB0aGlzIGZpbGUgdG86Ci0rIyBidWctZ2RiQGdudS5vcmcKLSsK LSsjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBnZGIgdGVzdHN1aXRlLgotKwotKyMgVGVzdCBi YXNpcyByZWNvZ25pemF0aW9uIG9mIERXX1RBR19pbnRlcmZhY2VfdHlwZS4KLSsjIEdDQyBqYXZh X2NsYXNzaWZ5X3JlY29yZCgpIHByb2R1Y2VzIGl0IGlmIHJldHVybnMgUkVDT1JEX0lTX0lOVEVS RkFDRS4KLSsKLStpZiB7IVtpc3RhcmdldCAiaT84Ni0qLSoiXSAmJiAhW2lzdGFyZ2V0ICJ4ODZf NjQtKi0qIl19IHRoZW4gewotKyAgICB2ZXJib3NlICJTa2lwcGluZyBpMzg2IEphdmEgRFdfVEFH X2ludGVyZmFjZV90eXBlIHRlc3QuIgotKyAgICByZXR1cm4KLSt9Ci0rCi0rc2V0IHRlc3RmaWxl ICJpMzg2LWludGVyZmFjZSIKLStzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5TCi0rc2V0IGJpbmZp bGUgW3N0YW5kYXJkX291dHB1dF9maWxlICR7dGVzdGZpbGV9Lm9dCi0rCi0raWYgeyBbZ2RiX2Nv bXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIG9iamVj dCB7ZGVidWcgYWRkaXRpb25hbF9mbGFncz0tbTMyfV0gIT0gIiIgfSB7Ci0rICAgIHVudGVzdGVk IGkzODYtZ251LWNmaS5leHAKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotKyMgR2V0IHRoaW5ncyBz dGFydGVkLgotKwotK2dkYl9leGl0Ci0rZ2RiX3N0YXJ0Ci0rZ2RiX3JlaW5pdGlhbGl6ZV9kaXIg JHNyY2Rpci8kc3ViZGlyCi0rZ2RiX2xvYWQgJHtiaW5maWxlfQotKwotK2dkYl90ZXN0ICJzZXQg bGFuZ3VhZ2UgamF2YSIKLSsKLStzZXQgdGVzdCAicHR5cGUgSW50ZXJmYWNlIgotK2dkYl90ZXN0 X211bHRpcGxlICR0ZXN0ICR0ZXN0IHsKLSsgICAgLXJlICJ0eXBlID0gY2xhc3MgSW50ZXJmYWNl ICAqZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0IFx7LiokZ2RiX3Byb21wdCAkIiB7Ci0rCXBhc3Mg JHRlc3QKLSsgICAgfQotK30KLSsKLStzZXQgdGVzdCAicHR5cGUgQ2xhc3MiCi0rZ2RiX3Rlc3Rf bXVsdGlwbGUgJHRlc3QgJHRlc3QgewotKyAgICAtcmUgInR5cGUgPSBjbGFzcyBDbGFzcyAgKmV4 dGVuZHMgamF2YS5sYW5nLk9iamVjdCBpbXBsZW1lbnRzIEludGVyZmFjZSBcey4qJGdkYl9wcm9t cHQgJCIgewotKwlwYXNzICR0ZXN0Ci0rICAgIH0KLSt9CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1i ejQzNjAzNy1yZWctbm8tbG9uZ2VyLWFjdGl2ZS5wYXRjaCBiL2dkYi02LjgtYno0MzYwMzctcmVn LW5vLWxvbmdlci1hY3RpdmUucGF0Y2gKaW5kZXggNDk4NzcxNC4uNDliMjI1YSAxMDA2NDQKLS0t IGEvZ2RiLTYuOC1iejQzNjAzNy1yZWctbm8tbG9uZ2VyLWFjdGl2ZS5wYXRjaAorKysgYi9nZGIt Ni44LWJ6NDM2MDM3LXJlZy1uby1sb25nZXItYWN0aXZlLnBhdGNoCkBAIC0xLDE3ICsxLDIyIEBA Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdmFsb3BzLmMKK0luZGV4OiBnZGItNy4x Mi41MC4yMDE3MDIwNy9nZGIvdmFsb3BzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIw MDkwODAzLm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMDktMDgtMDQgMDY6MzA6NDUuMDAwMDAwMDAwICsw MjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdmFsb3BzLmMJMjAwOS0wOC0wNCAwNjoz MzowNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC05MjYsMTAgKzkyNiwxOCBAQCB2YWx1ZV9hc3NpZ24g KHN0cnVjdCB2YWx1ZSAqdG92YWwsIHN0cnVjCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3Jp Zy9nZGIvdmFsb3BzLmMJMjAxNy0wMi0yNiAxNzoyNjo0My44MzkxNDY1NjUgKzAxMDAKKysrKyBn ZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdmFsb3BzLmMJMjAxNy0wMi0yNiAxNzoyODo0MC44NDA5 ODgyNzIgKzAxMDAKK0BAIC0xMTEyLDYgKzExMTIsOCBAQAogIAlzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaDsKICAJaW50IHZhbHVlX3JlZzsKICAKLS0JLyogRmlndXJlIG91dCB3aGljaCBmcmFtZSB0 aGlzIGlzIGluIGN1cnJlbnRseS4gICovCi0tCWZyYW1lID0gZnJhbWVfZmluZF9ieV9pZCAoVkFM VUVfRlJBTUVfSUQgKHRvdmFsKSk7Ci0gCXZhbHVlX3JlZyA9IFZBTFVFX1JFR05VTSAodG92YWwp OworKwl2YWx1ZV9yZWcgPSBWQUxVRV9SRUdOVU0gKHRvdmFsKTsKKysKKyAJLyogRmlndXJlIG91 dCB3aGljaCBmcmFtZSB0aGlzIGlzIGluIGN1cnJlbnRseS4KKyAJCisgCSAgIFdlIHVzZSBWQUxV RV9GUkFNRV9JRCBmb3Igb2J0YWluaW5nIHRoZSB2YWx1ZSdzIGZyYW1lIGlkIGluc3RlYWQgb2YK K0BAIC0xMTIxLDggKzExMjMsMTQgQEAKKyAJICAgZnJhbWUuICAqLworIAlmcmFtZSA9IGZyYW1l X2ZpbmRfYnlfaWQgKFZBTFVFX0ZSQU1FX0lEICh0b3ZhbCkpOwogIAotKwkvKiBGaWd1cmUgb3V0 IHdoaWNoIGZyYW1lIHRoaXMgaXMgaW4gY3VycmVudGx5LiAgKi8KLSsJZnJhbWUgPSBmcmFtZV9m aW5kX2J5X2lkIChWQUxVRV9GUkFNRV9JRCAodG92YWwpKTsKKy0JdmFsdWVfcmVnID0gVkFMVUVf UkVHTlVNICh0b3ZhbCk7CistCiArCS8qICJzZXQgJHJlZys9MSIgc2hvdWxkIHdvcmsgb24gcHJv Z3JhbXMgd2l0aCBubyBkZWJ1ZyBpbmZvLAogKwkgICBidXQgZnJhbWVfZmluZF9ieV9pZCByZXR1 cm5zIE5VTEwgaGVyZSAoUkggYnVnIDQzNjAzNykuCiArCSAgIFVzZSBjdXJyZW50IGZyYW1lLCBp dCByZXByZXNlbnRzIENQVSBzdGF0ZSBpbiB0aGlzIGNhc2UuCgpkaWZmIC0tZ2l0IGEvZ2RiLTYu OC1xdWl0LW5ldmVyLWFib3J0cy5wYXRjaCBiL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0 Y2gKaW5kZXggNTVlNzE0ZS4uMGRjNzFiOCAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1xdWl0LW5ldmVy LWFib3J0cy5wYXRjaAorKysgYi9nZGItNi44LXF1aXQtbmV2ZXItYWJvcnRzLnBhdGNoCkBAIC01 LDExICs1LDExIEBAIFNvbWUgb2YgdGhlIHRocmVhZHMgbWF5IG5vdCBiZSBwcm9wZXJseSBQVFJB Q0VfREVUQUNIZWQgd2hpY2ggaHVydHMgaWYgdGhleQogc2hvdWxkIGhhdmUgYmVlbiBkZXRhY2hl ZCB3aXRoIFNJR1NUT1AgKGFzIHRoZXkgYXJlIGFjY2lkZW50YWxseSBsZWZ0IHJ1bm5pbmcKIG9u IHRoZSBkZWJ1Z2dlciB0ZXJtaW5hdGlvbikuCiAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvZGVmcy5oCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2RlZnMuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2RlZnMuaAkyMDE2LTA3 LTAzIDE2OjQwOjQzLjQyMzA3ODkyNiArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9kZWZzLmgJMjAxNi0wNy0wMyAxNjo0MTowOC41NjgyNzE3NDEgKzAyMDAKLUBAIC0xNzUsNiAr MTc1LDEwIEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvZGVmcy5oCTIwMTct MDItMjYgMjE6MTE6MzUuNjU0MzUwNTgwICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL2RlZnMuaAkyMDE3LTAyLTI2IDIxOjExOjUyLjkzMjQ3MzEyOSArMDEwMAorQEAgLTE2OSw2 ICsxNjksMTAgQEAKICAvKiBGbGFnIHRoYXQgZnVuY3Rpb24gcXVpdCBzaG91bGQgY2FsbCBxdWl0 X2ZvcmNlLiAgKi8KICBleHRlcm4gdm9sYXRpbGUgaW50IHN5bmNfcXVpdF9mb3JjZV9ydW47CiAg CkBAIC0yMCwxMCArMjAsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kZWZz LmgKICBleHRlcm4gdm9pZCBxdWl0ICh2b2lkKTsKICAKICAvKiBIZWxwZXIgZm9yIHRoZSBRVUlU IG1hY3JvLiAgKi8KLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZXh0ZW5zaW9uLmMK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZXh0ZW5zaW9uLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9leHRlbnNpb24uYwkyMDE2LTA3LTAz IDE2OjQwOjQxLjcyMzA2NTg5MCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9l eHRlbnNpb24uYwkyMDE2LTA3LTAzIDE2OjQxOjQ0Ljg5NjU1MDMwOSArMDIwMAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2V4dGVuc2lvbi5jCTIwMTctMDItMjYgMjE6MTE6MzUu NjU1MzUwNTg3ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2V4dGVuc2lvbi5j CTIwMTctMDItMjYgMjE6MTE6NTIuOTMzNDczMTM2ICswMTAwCiBAQCAtODMwLDYgKzgzMCwxMSBA QAogICAgaW50IGksIHJlc3VsdCA9IDA7CiAgICBjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1 YWdlX2RlZm4gKmV4dGxhbmc7CkBAIC0zNiwxMiArMzYsMTIgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9leHRlbnNpb24uYwogICAgQUxMX0VOQUJMRURfRVhURU5TSU9OX0xBTkdV QUdFUyAoaSwgZXh0bGFuZykKICAgICAgewogICAgICAgIGlmIChleHRsYW5nLT5vcHMtPmNoZWNr X3F1aXRfZmxhZyAhPSBOVUxMKQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90b3Au YworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90b3AuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3RvcC5jCTIwMTYtMDctMDMgMTY6NDA6NDEu NzI0MDY1ODk4ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3RvcC5jCTIwMTYt MDctMDMgMTY6NDA6NDMuNDI0MDc4OTM0ICswMjAwCi1AQCAtMTYxNyw3ICsxNjE3LDEzIEBACi0g ICBxdC5hcmdzID0gYXJnczsKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90b3Au YwkyMDE3LTAyLTI2IDIxOjExOjM1LjY1NTM1MDU4NyArMDEwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjA3L2dkYi90b3AuYwkyMDE3LTAyLTI2IDIxOjExOjUyLjkzMzQ3MzEzNiArMDEwMAorQEAg LTE2MTksNyArMTYxOSwxMyBAQAorICAgcXQuYXJncyA9IE5VTEw7CiAgICBxdC5mcm9tX3R0eSA9 IGZyb21fdHR5OwogIAogKyNpZm5kZWYgTkVFRF9ERVRBQ0hfU0lHU1RPUApAQCAtNTQsMTEgKzU0 LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdG9wLmMKICAKICAgIC8qIEdl dCBvdXQgb2YgdGZpbmQgbW9kZSwgYW5kIGtpbGwgb3IgZGV0YWNoIGFsbCBpbmZlcmlvcnMuICAq LwogICAgVFJZCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3V0aWxzLmMKK0luZGV4 OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdXRpbHMuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3V0aWxzLmMJMjAxNi0wNy0wMyAxNjo0MDo0MS43MjUw NjU5MDUgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdXRpbHMuYwkyMDE2LTA3 LTAzIDE2OjQxOjM4Ljk2MTUwNDc5OSArMDIwMAotQEAgLTEwOSw2ICsxMDksMTMgQEAKKy0tLSBn ZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi91dGlscy5jCTIwMTctMDItMjYgMjE6MTE6MzUu NjU3MzUwNjAxICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3V0aWxzLmMJMjAx Ny0wMi0yNiAyMToxMTo1Mi45MzQ0NzMxNDMgKzAxMDAKK0BAIC0xMDYsNiArMTA2LDEzIEBACiAg CiAgaW50IGpvYl9jb250cm9sOwogIAoKZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItcGllLWFkZG9u cy5wYXRjaCBiL2dkYi1hcmNoZXItcGllLWFkZG9ucy5wYXRjaAppbmRleCA4NWE2OTY3Li4yNDBi MTdlIDEwMDY0NAotLS0gYS9nZGItYXJjaGVyLXBpZS1hZGRvbnMucGF0Y2gKKysrIGIvZ2RiLWFy Y2hlci1waWUtYWRkb25zLnBhdGNoCkBAIC00MiwzMCArNDIsNiBAQCBJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuaAogICNkZWZpbmUgVFlQRV9GSUVMRF9TVEFUSUNfUEhZ U0FERFIodGhpc3R5cGUsIG4pIEZJRUxEX1NUQVRJQ19QSFlTQUREUiAoVFlQRV9GSUVMRCAodGhp c3R5cGUsIG4pKQogICNkZWZpbmUgVFlQRV9GSUVMRF9EV0FSRl9CTE9DSyh0aGlzdHlwZSwgbikg RklFTERfRFdBUkZfQkxPQ0sgKFRZUEVfRklFTEQgKHRoaXN0eXBlLCBuKSkKICAjZGVmaW5lIFRZ UEVfRklFTERfQVJUSUZJQ0lBTCh0aGlzdHlwZSwgbikgRklFTERfQVJUSUZJQ0lBTChUWVBFX0ZJ RUxEKHRoaXN0eXBlLG4pKQotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2p2LWxhbmcu YwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvanYtbGFuZy5j CTIwMTUtMDUtMzEgMTY6NTU6MjkuNzI0NDc1NDkxICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvanYtbGFuZy5jCTIwMTUtMDUtMzEgMTY6NTU6MzAuODIwNDgyNDA4ICswMjAwCi1A QCAtNDI3LDcgKzQyNyw4IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAq Z2QKLSAKLSAgIGZpZWxkcyA9IE5VTEw7Ci0gICBuZmllbGRzLS07CQkJLyogRmlyc3Qgc2V0IHVw IGR1bW15ICJjbGFzcyIgZmllbGQuICAqLwotLSAgU0VUX0ZJRUxEX1BIWVNBRERSIChUWVBFX0ZJ RUxEICh0eXBlLCBuZmllbGRzKSwgdmFsdWVfYWRkcmVzcyAoY2xhcykpOwotKyAgU0VUX0ZJRUxE X1BIWVNBRERSIChUWVBFX0ZJRUxEICh0eXBlLCBuZmllbGRzKSwgdmFsdWVfYWRkcmVzcyAoY2xh cykKLSsgICAgLSAoVFlQRV9PQkpGSUxFICh0eXBlKSA9PSBOVUxMID8gMCA6IEFOT0ZGU0VUIChU WVBFX09CSkZJTEUgKHR5cGUpLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKFRZUEVf T0JKRklMRSAodHlwZSkpKSkpOwotICAgVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBuZmllbGRzKSA9 ICJjbGFzcyI7Ci0gICBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIG5maWVsZHMpID0gdmFsdWVfdHlw ZSAoY2xhcyk7Ci0gICBTRVRfVFlQRV9GSUVMRF9QUklWQVRFICh0eXBlLCBuZmllbGRzKTsKLUBA IC00NzUsNyArNDc2LDggQEAgamF2YV9saW5rX2NsYXNzX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpn ZAotIAkgIFNFVF9UWVBFX0ZJRUxEX1BST1RFQ1RFRCAodHlwZSwgaSk7Ci0gCX0KLSAgICAgICBp ZiAoYWNjZmxhZ3MgJiAweDAwMDgpCS8qIEFDQ19TVEFUSUMgKi8KLS0JU0VUX0ZJRUxEX1BIWVNB RERSIChUWVBFX0ZJRUxEICh0eXBlLCBpKSwgYm9mZnNldCk7Ci0rCVNFVF9GSUVMRF9QSFlTQURE UiAoVFlQRV9GSUVMRCAodHlwZSwgaSksIGJvZmZzZXQKLSsJICAtIChUWVBFX09CSkZJTEUgKHR5 cGUpID09IE5VTEwgPyAwIDogQU5PRkZTRVQgKFRZUEVfT0JKRklMRSAodHlwZSktPnNlY3Rpb25f b2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAoVFlQRV9PQkpGSUxFICh0eXBlKSkpKSk7Ci0gICAgICAg ZWxzZQotIAlTRVRfRklFTERfQklUUE9TIChUWVBFX0ZJRUxEICh0eXBlLCBpKSwgOCAqIGJvZmZz ZXQpOwotICAgICAgIGlmIChhY2NmbGFncyAmIDB4ODAwMCkJLyogRklFTERfVU5SRVNPTFZFRF9G TEFHICovCiBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFsdWUuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdmFsdWUuYwkyMDE1LTA1LTMxIDE2 OjU1OjI5LjcyNTQ3NTQ5NyArMDIwMAoKZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItdmxhLXRlc3Rz LnBhdGNoIGIvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gKaW5kZXggYjI3ZWY3NS4uNmM4YTNh NiAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gKKysrIGIvZ2RiLWFyY2hl ci12bGEtdGVzdHMucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEyLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJ MjAxNi0wOC0wMSAxNzo1MDoyMS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVz dHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg0OTAx MzQ2NyArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNy0wMi0yNiAxOToxNToyOC41NTI4MjQ3NTEgKzAx MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2Vk X2FycmF5LmV4cAkyMDE3LTAyLTI2IDE5OjE1OjM2LjU5Nzg4MjMxNiArMDEwMAogQEAgLTU2LDUg KzU2LDExIEBACiAgICAgICAgICAjIGFyZS4gIE9ic2VydmVkIHdpdGggKEZTRiBHTlUgQWRhIDQu NS4zIDIwMTEwMTI0KS4KICAgICAgICAgIHhmYWlsICR0ZXN0CkBAIC0xNCwxMCArMTQsMTAgQEAg SW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCiAr ICAgIH0KICB9CiAgCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZf NjQtdmxhLXBvaW50ZXItZm9vLlMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVz dHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtcG9pbnRlci1mb28uUwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS1wb2ludGVyLWZvby5TCTIwMTYt MTAtMjIgMDk6NTA6MzguNTEwMzkzOTAzICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50ZXItZm9vLlMJMjAxNy0wMi0y NiAxOToxNTozNi41OTg4ODIzMjMgKzAxMDAKIEBAIC0wLDAgKzEsMzU4IEBACiArCS5maWxlCSJ4 ODZfNjQtdmxhLXBvaW50ZXIuYyIKICsJLnRleHQKQEAgLTM3NywxMCArMzc3LDEwIEBAIEluZGV4 OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtcG9pbnRlci1mb28u UwogKwkuc3RyaW5nCSJhcnJheSIKICsJLmlkZW50CSJHQ0M6IChHTlUpIDYuMi4xIDIwMTYwOTE2 IChSZWQgSGF0IDYuMi4xLTIpIgogKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2di aXRzCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBv aW50ZXIuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmFy Y2gveDg2XzY0LXZsYS1wb2ludGVyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRl L2dkYi5hcmNoL3g4Nl82NC12bGEtcG9pbnRlci5jCTIwMTYtMTAtMjIgMDk6NTA6NDAuMzM1NDA3 MzY3ICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJj aC94ODZfNjQtdmxhLXBvaW50ZXIuYwkyMDE3LTAyLTI2IDE5OjE1OjM2LjU5ODg4MjMyMyArMDEw MAogQEAgLTAsMCArMSw0NSBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRo ZSBHTlUgZGVidWdnZXIuCiArCkBAIC00MjcsMTAgKzQyNywxMCBAQCBJbmRleDogZ2RiLTcuMTIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50ZXIuYwogK30KICsKICsjZW5k aWYKLUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtcG9p bnRlci5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL3g4Nl82NC12bGEtcG9pbnRlci5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtcG9pbnRlci5leHAJMjAxNi0xMC0yMiAyMToxMDo1Ni4y MTA0MTMzNDYgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dk Yi5hcmNoL3g4Nl82NC12bGEtcG9pbnRlci5leHAJMjAxNy0wMi0yNiAxOToxNTozNi41OTg4ODIz MjMgKzAxMDAKIEBAIC0wLDAgKzEsNjUgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtNDk3LDEwICs0OTcsMTAgQEAgSW5kZXg6IGdkYi03 LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS1wb2ludGVyLmV4cAogK2dkYl90 ZXN0ICJ3aGF0aXMgYXJyYXkiICJ0eXBlID0gYXJyYXlfdCIgInNlY29uZDogd2hhdGlzIGFycmF5 IgogK2dkYl90ZXN0ICJ3aGF0aXMgYXJyYXlfdCIgInR5cGUgPSBjaGFyIFxcXFt2YXJpYWJsZSBs ZW5ndGhcXFxdIiAic2Vjb25kOiB3aGF0aXMgYXJyYXlfdCIKICtnZGJfdGVzdCAicHR5cGUgYXJy YXkiICJ0eXBlID0gY2hhciBcXFxbNzhcXFxdIiAic2Vjb25kOiBwdHlwZSBhcnJheSIKLUluZGV4 OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi1mb28u UworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2 XzY0LXZsYS10eXBlZGVmLWZvby5TCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMJMjAxNi0xMC0yMiAwOTo0NToxNS44NTEw MTM0ODIgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL3g4Nl82NC12bGEtdHlwZWRlZi1mb28uUwkyMDE3LTAyLTI2IDE5OjE1OjM2LjU5ODg4MjMy MyArMDEwMAogQEAgLTAsMCArMSw0NTUgQEAKICsJLmZpbGUJIng4Nl82NC12bGEtdHlwZWRlZi5j IgogKwkuc2VjdGlvbgkuZGVidWdfYWJicmV2LCIiLEBwcm9nYml0cwpAQCAtOTU3LDEwICs5NTcs MTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10 eXBlZGVmLWZvby5TCiArCS5zdHJpbmcJIkdOVSBDIDQuMy4yIDIwMDgxMTA1IChSZWQgSGF0IDQu My4yLTcpIgogKwkuaWRlbnQJIkdDQzogKEdOVSkgNC4zLjIgMjAwODExMDUgKFJlZCBIYXQgNC4z LjItNykiCiArCS5zZWN0aW9uCS5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKLUluZGV4OiBn ZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5jCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxh LXR5cGVkZWYuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2 XzY0LXZsYS10eXBlZGVmLmMJMjAxNi0xMC0yMiAwOTo0NToxNS44NTEwMTM0ODIgKzAyMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEt dHlwZWRlZi5jCTIwMTctMDItMjYgMTk6MTU6MzYuNTk5ODgyMzMwICswMTAwCiBAQCAtMCwwICsx LDQ1IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KICsKQEAgLTEwMDcsMTAgKzEwMDcsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3Vp dGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMKICt9CiArCiArI2VuZGlmCi1JbmRleDog Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQt dmxhLXR5cGVkZWYuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJj aC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCTIwMTYtMTAtMjIgMDk6NDU6MTUuODUxMDEzNDgyICsw MjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZf NjQtdmxhLXR5cGVkZWYuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNTk5ODgyMzMwICswMTAwCiBA QCAtMCwwICsxLDY0IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KICsKQEAgLTEwNzYsMTAgKzEwNzYsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmV4cAogK2dkYl90ZXN0ICJ3aGF0 aXMgYXJyYXkiICJ0eXBlID0gYXJyYXlfdCIgInNlY29uZDogd2hhdGlzIGFycmF5IgogKwogK2dk Yl90ZXN0ICJwdHlwZSBhcnJheSIgInR5cGUgPSBjaGFyIFxcXFs3OFxcXF0iICJzZWNvbmQ6IHB0 eXBlIGFycmF5IgotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlp ZHguYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv YXJyYXlpZHguYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEyLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMDgtMDEgMTc6NTA6MjEuMDAwMDAwMDAwICswMjAwCi0r KysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMTAtMjIg MDk6NDU6MTUuODUxMDEzNDgyICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMJMjAxNy0wMi0yNiAxOToxNToyOC41NTU4 MjQ3NzIgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2FycmF5aWR4LmMJMjAxNy0wMi0yNiAxOToxNTozNi41OTk4ODIzMzAgKzAxMDAKIEBAIC0x Nyw2ICsxNywxMyBAQAogIAogIGludCBhcnJheVtdID0gezEsIDIsIDMsIDR9OwpAQCAtMTA5NCwx MyArMTA5NCwxMyBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJh eWlkeC5jCiAgaW50CiAgbWFpbiAodm9pZCkKICB7Ci1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEyLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAJMjAxNi0wOC0wMSAx Nzo1MDoyMS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2FycmF5aWR4LmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1MTAxMzQ4MiArMDIwMAorLS0t IGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlk eC5leHAJMjAxNy0wMi0yNiAxOToxNToyOC41NTU4MjQ3NzIgKzAxMDAKKysrKyBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAkyMDE3LTAyLTI2 IDE5OjE1OjM2LjU5OTg4MjMzMCArMDEwMAogQEAgLTQ5LDQgKzQ5LDEyIEBACiAgICAgICAgICAg Ilxce1xcXFswXFxcXSA9IDEsIFxcXFsxXFxcXSA9IDIsIFxcXFsyXFxcXSA9IDMsIFxcXFszXFxc XSA9IDRcXH0iIFwKLSAgICAgICAgICAiUHJpbnQgYXJyYXkgd2l0aCBhcnJheS1pbmRleGVzIG9u IgorICAgICAgICAgICJwcmludCBhcnJheSB3aXRoIGFycmF5LWluZGV4ZXMgb24iCiAgCiAtCiAr c2V0IHRlc3QgInAgdW5ib3VuZC5hID09ICZ1bmJvdW5kLmFcWzBcXSIKQEAgLTExMTIsMTAgKzEx MTIsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHgu ZXhwCiArCXVuc3VwcG9ydGVkICIkdGVzdCAobm8gR0NDKSIKICsgICAgfQogK30KLUluZGV4OiBn ZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNz LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2lu dGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMJMjAxNi0xMC0yMiAwOTo0 NToxNS44NTIwMTM0OTAgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMJMjAxNy0wMi0yNiAxOTox NTozNi41OTk4ODIzMzAgKzAxMDAKIEBAIC0wLDAgKzEsMjAgQEAKICsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTEzNywxMCArMTEzNywx MCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXIt ZmllbGQtYWRkcmVzcy5jCiArc3RydWN0IHsKICsgIGludCBmaWVsZDsKICt9IHN0YXRpY3N0cnVj dCA9IHsgMSB9OwotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJu YWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1h ZGRyZXNzLmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1MjAxMzQ5MCArMDIwMAorKysrIGdkYi03 LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxk LWFkZHJlc3MuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjAwODgyMzM3ICswMTAwCiBAQCAtMCww ICsxLDI2IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KICsKQEAgLTExNjgsMTAgKzExNjgsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCiArCiArZ2RiX3Rlc3Qg e3NldCAkdmFyc3RydWN0ID0gc3RhdGljc3RydWN0fQogK2dkYl90ZXN0IHtwICR2YXJzdHJ1Y3Qu ZmllbGR9ICIgPSAxIgotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvdmxh LWZyYW1lLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3ZsYS1mcmFtZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS92bGEtZnJhbWUuYwkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1MjAxMzQ5MCArMDIwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMJMjAx Ny0wMi0yNiAxOToxNTozNi42MDA4ODIzMzcgKzAxMDAKIEBAIC0wLDAgKzEsMzEgQEAKICsvKiBU aGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTIw NCwxMCArMTIwNCwxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92 bGEtZnJhbWUuYwogKyAgZiAocyk7CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCTIwMTYtMTAtMjIg MDk6NDU6MTUuODUyMDEzNDkwICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjAwODgy MzM3ICswMTAwCiBAQCAtMCwwICsxLDM4IEBACiArIyBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0xMjQ3LDEwICsxMjQ3LDEwIEBAIEluZGV4OiBn ZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFtZS5leHAKICt9CiArCiArZ2Ri X3Rlc3QgImJ0IGZ1bGwiICJcclxuICtzID0gXCJYXFxcXDAwMFwiXHJcbi4qIgotSW5kZXg6IGdk Yi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmMKK0luZGV4OiBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwky MDE2LTEwLTIyIDA5OjQ1OjE1Ljg1MjAxMzQ5MCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmMJMjAxNy0wMi0yNiAxOTox NTozNi42MDA4ODIzMzcgKzAxMDAKIEBAIC0wLDAgKzEsMzAgQEAKICsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTI4MiwxMCArMTI4Miwx MCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cu YwogKwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvdmxhLW92ZXJmbG93LmV4cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEyL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1 Ljg1MjAxMzQ5MCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAkyMDE3LTAyLTI2IDE5OjE1OjM2LjYwMDg4MjMzNyAr MDEwMAogQEAgLTAsMCArMSwxMDkgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTM5NiwxMCArMTM5NiwxMCBAQCBJbmRleDogZ2RiLTcu MTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCiArZ2RiX3Rlc3QgImJ0 IiAiaW4gXFteIFxdKmFib3J0IFxcKC4qIGluIG1haW4gXFwoLioiICJCYWNrdHJhY2UgYWZ0ZXIg YWJvcnQoKSIKICsKICt2ZXJib3NlIC1sb2cgImtiX2ZvdW5kIGluIGJ0IGFmdGVyIGFib3J0KCkg PSBbZXhwciBbbWVtb3J5X3ZfcGFnZXNfZ2V0XSAqICRwYWdlc2l6ZSAvIDEwMjRdIgotSW5kZXg6 IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKK0luZGV4OiBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuYwkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1MjAx MzQ5MCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmxhLmMJMjAxNy0wMi0yNiAxOToxNTozNi42MDA4ODIzMzcgKzAxMDAKIEBAIC0wLDAgKzEs NTUgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2Vy LgogKwpAQCAtMTQ1NiwxMCArMTQ1NiwxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS92bGEuYwogKyAgZm9vICg3OCk7CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDog Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCTIwMTYtMTAtMjIgMDk6NDU6MTUu ODUzMDEzNDk3ICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS92bGEuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjAwODgyMzM3ICswMTAwCiBAQCAt MCwwICsxLDYyIEBACiArIyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsKQEAgLTE1MjMsMTAgKzE1MjMsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAogK2dkYl90ZXN0ICJwIHRlbXAxIiAiID0gJzEnIDxyZXBl YXRzIDc4IHRpbWVzPiIgInNlY29uZDogcHJpbnQgdGVtcDEiCiArZ2RiX3Rlc3QgInAgdGVtcDIi ICIgPSAnMicgPHJlcGVhdHMgNzggdGltZXM+IiAic2Vjb25kOiBwcmludCB0ZW1wMiIKICtnZGJf dGVzdCAicCB0ZW1wMyIgIiA9ICczJyA8cmVwZWF0cyA0OCB0aW1lcz4iICJzZWNvbmQ6IHByaW50 IHRlbXAzIgotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjk1OTMuY2MK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC9nZGI5NTkz LmNjCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiOTU5My5jYwky MDE2LTEwLTIyIDA5OjQ1OjE1Ljg1MzAxMzQ5NyArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjk1OTMuY2MJMjAxNy0wMi0yNiAxOToxNTozNi42 MDE4ODIzNDQgKzAxMDAKIEBAIC0wLDAgKzEsMTgwIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBw YXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE3MDgsMTAgKzE3MDgsMTAgQEAg SW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjk1OTMuY2MKICsgICAgfQog K30KICsKLUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9nZGI5NTkzLmV4cAor SW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjk1OTMu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiOTU5My5leHAJ MjAxNi0xMC0yMiAwOTo0NToxNS44NTMwMTM0OTcgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC9nZGI5NTkzLmV4cAkyMDE3LTAyLTI2IDE5OjE1OjM2 LjYwMTg4MjM0NCArMDEwMAogQEAgLTAsMCArMSwxODIgQEAKICsjIENvcHlyaWdodCAyMDA4LCAy MDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTg5NSwxMCArMTg5NSwx MCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiOTU5My5leHAKICtn ZGJfdGVzdCAiYWR2YW5jZSAkbGluZSIgXAogKyAgIi4qY2F0Y2ggKC4uLikuKiIgXAogKyAgImFk dmFuY2Utb3Zlci10aHJvdyIKLUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLWJvdW5kLWxvY2xpc3QuUworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMJMjAxNi0xMC0y MiAwOTo0NToxNS44NTMwMTM0OTcgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUwkyMDE3LTAyLTI2IDE5OjE1 OjM2LjYwMTg4MjM0NCArMDEwMAogQEAgLTAsMCArMSwyNDYgQEAKICsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMjE0NiwxMCArMjE0Niwx MCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1s b2NsaXN0LlMKICsJLnN0cmluZwkJImNoYXIiCiArLkx1aW50X3N0cjoKICsJLnN0cmluZwkJInVu c2lnbmVkIGludCIKLUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LWJvdW5kLWxvY2xpc3QuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEy L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAJMjAxNi0xMC0y MiAwOTo0NToxNS44NTQwMTM1MDQgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCTIwMTctMDItMjYgMTk6 MTU6MzYuNjAyODgyMzUyICswMTAwCiBAQCAtMCwwICsxLDY2IEBACiArIyBDb3B5cmlnaHQgMjAx MCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIyMTcsMTAgKzIyMTcsMTAg QEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9j bGlzdC5leHAKICsKICsjIFRoZSByZWdpc3RlciBjb250YWlucyB1bnByZWRpY3RhYmxlIHZhbHVl IC0gdGhlIGFycmF5IHNpemUuCiArZ2RiX3Rlc3QgInB0eXBlIHJlZ19zdHJpbmciIHt0eXBlID0g Y2hhciBcWy0/WzAtOV0rXF19Ci1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdHJpcHBlZC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCTIwMTYtMTAtMjIgMDk6NDU6MTUuODU0 MDEzNTA0ICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCTIwMTctMDItMjYgMTk6MTU6MzYuNjAyODgyMzUyICswMTAw CiBAQCAtMCwwICsxLDQyIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhl IEdOVSBkZWJ1Z2dlci4KICsKQEAgLTIyNjQsMTAgKzIyNjQsMTAgQEAgSW5kZXg6IGdkYi03LjEy L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwogKyAgZnVuYzEgKDEsIDIp OwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItc3RyaXBwZWQuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAkyMDE2LTEwLTIyIDA5OjQ1 OjE1Ljg1NDAxMzUwNCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjAyODgy MzUyICswMTAwCiBAQCAtMCwwICsxLDc5IEBACiArIyBDb3B5cmlnaHQgMjAwNiBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIzNDgsMTAgKzIzNDgsMTAgQEAgSW5kZXg6IGdk Yi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCiArZ2RiX3Rl c3QgInN0ZXAiIFwKICsgICAgICAgICAiZnVuYy4qIFxcKC4qXFwpIGF0IC4qIiBcCiArICAgICAg ICAgInN0ZXAiCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1z dHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uUworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9u LlMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVj dC1tZW1iZXItZGF0YS1sb2NhdGlvbi5TCTIwMTYtMTAtMjIgMDk6NDU6MTUuODU0MDEzNTA0ICsw MjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uUwkyMDE3LTAyLTI2IDE5OjE1OjM2LjYwMjg4 MjM1MiArMDEwMAogQEAgLTAsMCArMSw4MyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0yNDM2LDEwICsyNDM2LDEwIEBAIEluZGV4 OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0 YS1sb2NhdGlvbi5TCiArCiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCiArCS5ieXRl CQkweDAJCQkvKiBUZXJtaW5hdG9yICovCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVt YmVyLWRhdGEtbG9jYXRpb24uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCTIwMTYtMTAtMjIg MDk6NDU6MTUuODU0MDEzNTA0ICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCTIw MTctMDItMjYgMTk6MTU6MzYuNjAyODgyMzUyICswMTAwCiBAQCAtMCwwICsxLDM3IEBACiArIyBD b3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTI0Nzgs MTAgKzI0NzgsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAogK2NsZWFuX3Jlc3RhcnQgJGJpbmZp bGUKICsKICtnZGJfdGVzdCAicHR5cGUgc3RydWN0IHNvbWVfc3RydWN0IiAidHlwZSA9IHN0cnVj dCBzb21lX3N0cnVjdCB7XFtcclxuIFx0XF0qdm9pZCBmaWVsZDtcW1xyXG4gXHRcXSp9IgotSW5k ZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlw ZS5TCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1zdWJyYW5nZS1uby10eXBlLlMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuUwkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1 NDAxMzUwNCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5TCTIwMTctMDItMjYgMTk6MTU6MzYuNjAyODgy MzUyICswMTAwCiBAQCAtMCwwICsxLDEyMSBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0yNjA0LDEwICsyNjA0LDEwIEBAIEluZGV4 OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUu UwogKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLwogKwogKwkuYnl0ZQkJMHgwCQkJLyog VGVybWluYXRvciAqLwotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItc3VicmFuZ2Utbm8tdHlwZS5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4 cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1NTAxMzUxMiArMDIwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5leHAJ MjAxNy0wMi0yNiAxOToxNTozNi42MDM4ODIzNTkgKzAxMDAKIEBAIC0wLDAgKzEsMzkgQEAKICsj IENvcHlyaWdodCAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjY0 OCwxMCArMjY0OCwxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAogKwogK2dkYl90ZXN0ICJwdHlwZSBub3R5cGVfc3Ry aW5nIiB7dHlwZSA9IGNoYXIgXFsxMjlcXX0KICtnZGJfdGVzdCAicCBub3R5cGVfc3RyaW5nIiAi ID0gJ3gnIDxyZXBlYXRzIDEyOSB0aW1lcz4iCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCTIwMTYt MTAtMjIgMDk6NDU6MTUuODU1MDEzNTEyICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCTIwMTctMDItMjYgMTk6 MTU6MzYuNjAzODgyMzU5ICswMTAwCiBAQCAtMCwwICsxLDQyIEBACiArIyBDb3B5cmlnaHQgMjAw OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTI2OTUsMTAgKzI2OTUsMTAg QEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRl LmV4cAogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJicmVhay1oZXJlIiAiLipicmVhay1o ZXJlLioiCiArZ2RiX3Rlc3QgInAgYzQwcHQoMSkiICIgPSAnMC1oZWxsby4qIgogK2dkYl90ZXN0 ICJwIGM0MHB0KDIpIiAiID0gJzEtaGVsbG8uKiIKLUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5mOTAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5mOTAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5mOTAJMjAx Ni0xMC0yMiAwOTo0NToxNS44NTUwMTM1MTIgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIw Ny9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5mOTAJMjAxNy0wMi0yNiAx OToxNTozNi42MDM4ODIzNTkgKzAxMDAKIEBAIC0wLDAgKzEsNDAgQEAKICshIENvcHlyaWdodCAy MDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTI3NDAsMTAgKzI3NDAs MTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3Ry aWRlLmY5MAogKyAgcHJpbnQgKiwgYzQwcHQgICEgYnJlYWstaGVyZQogKwogK2VuZCBwcm9ncmFt IHJlcHJvCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWlj LmV4cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vZHluYW1pYy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2R5bmFtaWMuZXhwCTIwMTYtMTAtMjIgMDk6NDU6MTUuODU1MDEzNTEyICswMjAwCisrKysg Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4 cAkyMDE3LTAyLTI2IDE5OjE1OjM2LjYwMzg4MjM1OSArMDEwMAogQEAgLTAsMCArMSwxNTQgQEAK ICsjIENvcHlyaWdodCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAt Mjg5OSwxMCArMjg5OSwxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9keW5hbWljLmV4cAogK2dkYl90ZXN0ICJwIHZhcnQoMyw4KSIgIlxcJFxbMC05XF0qID0g OSIKICsjIG1hcHMgdG8gZm9vOjp2YXJ5KDEsMykKICtnZGJfdGVzdCAicCB2YXJ0KDIsOSkiICJc XCRcWzAtOVxdKiA9IDEwIgotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vZHluYW1pYy5mOTAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1NTAxMzUxMiAr MDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v ZHluYW1pYy5mOTAJMjAxNy0wMi0yNiAxOToxNTozNi42MDM4ODIzNTkgKzAxMDAKIEBAIC0wLDAg KzEsOTggQEAKICshIENvcHlyaWdodCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgogKyEKQEAgLTMwMDIsMTAgKzMwMDIsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5mOTAKICsgIGlmICh4ICgxLCAxKSAubmUuIDggLm9yLiB4 ICgyLCAyKSAubmUuIDkgLm9yLiB4ICgxLCAyKSAubmUuIDQpIGNhbGwgYWJvcnQKICsgIGlmICh4 ICgzLCAxKSAubmUuIDEwKSBjYWxsIGFib3J0CiArZW5kCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCTIwMTYtMTAtMjIgMDk6NDU6 MTUuODU1MDEzNTEyICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjA0ODgyMzY2ICsw MTAwCiBAQCAtMCwwICsxLDU5IEBACiArIyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KICsKQEAgLTMwNjYsMTAgKzMwNjYsMTAgQEAgSW5kZXg6IGdkYi03LjEy L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAogK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJ2YXItZmluaXNoIgogK2dkYl90ZXN0ICJwIGUiICJcXCRcWzAtOVxdKiA9ICdl ICAgJyIgInAgZSByZS1zZXQiCiArZ2RiX3Rlc3QgInAgZiIgIlxcJFxbMC05XF0qID0gXFwoXFwo ICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJ1xc KSBcXCggJ2YyICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2Yg ICAnXFwpIFxcKCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAn LCAnZiAgICdcXCkgXFwpIiAicCAqZiByZS1zZXQiCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkwCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkwCTIwMTYtMTAtMjIgMDk6NDU6MTUu ODU2MDEzNTE5ICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9zdHJpbmcuZjkwCTIwMTctMDItMjYgMTk6MTU6MzYuNjA0ODgyMzY2ICswMTAw CiBAQCAtMCwwICsxLDM3IEBACiArISBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICshCkBAIC0zMTA4LDEwICszMTA4LDEwIEBAIEluZGV4OiBnZGItNy4xMi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAKICsgIGggPSAnaCcKICsgIGNhbGwg Zm9vIChnLCBoKQogK2VuZAotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vc3VicmFuZ2UuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1NjAxMzUx OSArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vc3VicmFuZ2UuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjA0ODgyMzY2ICswMTAwCiBAQCAt MCwwICsxLDcyIEBACiArIyBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsKQEAgLTMxODUsMTAgKzMxODUsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCiArZ2RiX3VubG9hZAogK3NldHVwX2tmYWls ICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIKICtnZGJfdGVzdCB7cCAkYSAoMywgMjoyKX0g eyA9IFwoMjNcKX0KLUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1 YnJhbmdlLmY5MAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vc3VicmFuZ2UuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9zdWJyYW5nZS5mOTAJMjAxNi0xMC0yMiAwOTo0NToxNS44NTYwMTM1MTkgKzAy MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1 YnJhbmdlLmY5MAkyMDE3LTAyLTI2IDE5OjE1OjM2LjYwNDg4MjM2NiArMDEwMAogQEAgLTAsMCAr MSwyOCBAQAogKyEgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CiArIQpAQCAtMzIxOCwxMCArMzIxOCwxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5mOTAKICsgIHB0ciA9PiBhCiArICB3cml0ZSAoKiwqKSBh ICAgICAgICAgICAgICAgICAhIGJyZWFrLXN0YXRpYwogK2VuZAotSW5kZXg6IGdkYi03LjEyL2dk Yi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUu YwkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1NjAxMzUxOSArMDIwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCTIwMTctMDIt MjYgMTk6MTU6MzYuNjA0ODgyMzY2ICswMTAwCiBAQCAtMCwwICsxLDI2IEBACiArLyogQ29weXJp Z2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0zMjQ5LDEwICsz MjQ5LDEwIEBAIEluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0 YWxlLXR5cGUuYwogKwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5leHAKK0luZGV4OiBnZGItNy4xMi41MC4y MDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4 cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1NjAxMzUxOSArMDIwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5leHAJMjAxNy0w Mi0yNiAxOToxNTozNi42MDQ4ODIzNjYgKzAxMDAKIEBAIC0wLDAgKzEsNTcgQEAKICsjIENvcHly aWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyMKQEAgLTMzMTEsMTAg KzMzMTEsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXIt c3RhbGUtdHlwZS5leHAKICttaV9jcmVhdGVfdmFyb2JqICJ2bGEiICJ2bGEiICJjcmVhdGUgbG9j YWwgdmFyaWFibGUgdmxhIgogKwogK21pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiAiXFxeZG9u ZSxjaGFuZ2VsaXN0PS4qIiAiLXZhci11cGRhdGUgKiIKLUluZGV4OiBnZGItNy4xMi9nZGIvdGVz dHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMKK0luZGV4OiBnZGItNy4x Mi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1m dW5jLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJv bS1yZWdpc3Rlci1mdW5jLmMJMjAxNi0xMC0yMiAwOTo0NToxNS44NTYwMTM1MTkgKzAyMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1y ZWdpc3Rlci1mdW5jLmMJMjAxNy0wMi0yNiAxOToxNTozNi42MDQ4ODIzNjYgKzAxMDAKIEBAIC0w LDAgKzEsMjIgQEAKICsvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdn ZXIuCiArCkBAIC0zMzM4LDEwICszMzM4LDEwIEBAIEluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMKICt7CiArICByZXR1cm4gYXJy WzBdOwogK30KLUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJv bS1yZWdpc3Rlci5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEyL2dkYi90ZXN0 c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMJMjAxNi0xMC0yMiAwOTo0NToxNS44 NTYwMTM1MTkgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5jCTIwMTctMDItMjYgMTk6MTU6MzYuNjA1ODgyMzcz ICswMTAwCiBAQCAtMCwwICsxLDI4IEBACiArLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLCB0 aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMzM3MSwxMCArMzM3MSwxMCBAQCBJbmRleDogZ2RiLTcu MTIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYwogKwogKyAgcmV0 dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1m cm9tLXJlZ2lzdGVyLmV4cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3Vp dGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEyL2dk Yi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4cAkyMDE2LTEwLTIyIDA5 OjQ1OjE1Ljg1NzAxMzUyNyArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0 c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4cAkyMDE3LTAyLTI2IDE5OjE1OjM2 LjYwNTg4MjM3MyArMDEwMAogQEAgLTAsMCArMSwzMyBAQAogKyMgQ29weXJpZ2h0IDIwMDkgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIwpAQCAtMzQwOSwxMCArMzQwOSwxMCBAQCBJ bmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIu ZXhwCiArIyBTZWVuIHJlZ3Jlc3Npb246CiArIyBBZGRyZXNzIHJlcXVlc3RlZCBmb3IgaWRlbnRp ZmllciAiYXJyIiB3aGljaCBpcyBpbiByZWdpc3RlciAkcmRpCiArZ2RiX3Rlc3QgInAgYXJyXFsw XF0iICJcXCRcWzAtOVxdKyA9IDQyIgotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2Ri Lm9wdC9mb3J0cmFuLXN0cmluZy5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIv dGVzdHN1aXRlL2dkYi5vcHQvZm9ydHJhbi1zdHJpbmcuZXhwCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIv Z2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2ZvcnRyYW4tc3RyaW5nLmV4cAkyMDE2LTEwLTIyIDA5OjQ1 OjE1Ljg1NzAxMzUyNyArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3Vp dGUvZ2RiLm9wdC9mb3J0cmFuLXN0cmluZy5leHAJMjAxNy0wMi0yNiAxOToxNTozNi42MDU4ODIz NzMgKzAxMDAKIEBAIC0wLDAgKzEsMzkgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMzQ1MywxMCArMzQ1MywxMCBAQCBJbmRleDogZ2Ri LTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2ZvcnRyYW4tc3RyaW5nLmV4cAogK2dkYl90ZXN0 ICJmcmFtZSIgIi4qcz0nZm9vJy4qIgogK2dkYl90ZXN0ICJwdHlwZSBzIiAidHlwZSA9IGNoYXJh Y3RlclxcKjMiCiArZ2RiX3Rlc3QgInAgcyIgIlxcJFxbMC05XF0qID0gJ2ZvbyciCi1JbmRleDog Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2ZvcnRyYW4tc3RyaW5nLmY5MAorSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9mb3J0cmFuLXN0cmlu Zy5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvZm9ydHJhbi1z dHJpbmcuZjkwCTIwMTYtMTAtMjIgMDk6NDU6MTUuODU3MDEzNTI3ICswMjAwCisrKysgZ2RiLTcu MTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2ZvcnRyYW4tc3RyaW5nLmY5MAky MDE3LTAyLTI2IDE5OjE1OjM2LjYwNTg4MjM3MyArMDEwMAogQEAgLTAsMCArMSwyOCBAQAogKyEg Q29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMzQ4 NiwxMCArMzQ4NiwxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2Zv cnRyYW4tc3RyaW5nLmY5MAogKyAgcHJvZ3JhbSBtYWluCiArICBjYWxsIGYgKCdmb28nKQogKyAg ZW5kCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJy YXlzLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJh eXMuZXhwCTIwMTYtMTAtMjIgMDk6NDU6MTUuODU3MDEzNTI3ICswMjAwCisrKysgZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAJMjAxNy0wMi0y NiAxOToxNTozNi42MDU4ODIzNzMgKzAxMDAKIEBAIC0wLDAgKzEsMTA0IEBACiArIyBDb3B5cmln aHQgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0zNTk1 LDEwICszNTk1LDEwIEBAIEluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwv YXJyYXlzLmV4cAogK30KICtnZGJfdGVzdCAicHJpbnQgRHluQXJyQ2hhciIgIi4qID0gJ2FiY2Rl ZmdoaWprbG0nIiAiUHJpbnQgZHluYW1pYyBhcnJheSBvZiBjaGFyIgogKwotSW5kZXg6IGdkYi03 LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLnBhcwkyMDE2LTEwLTIy IDA5OjQ1OjE1Ljg1NzAxMzUyNyArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90 ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCTIwMTctMDItMjYgMTk6MTU6MzYuNjA1ODgy MzczICswMTAwCiBAQCAtMCwwICsxLDgyIEBACiArewogKyBDb3B5cmlnaHQgMjAwOCwgMjAwOSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTM2ODIsMTEgKzM2ODIsMTEgQEAgSW5k ZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCiArICBzIDo9 ICd0ZXN0JyMwJ3N0cmluZyc7CiArICB3cml0ZWxuKHMpOyB7IHNldCBicmVha3BvaW50IDIgaGVy ZSB9CiArZW5kLgotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKK0lu ZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTIub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYt MTAtMjIgMDk6NDU6MTUuMTA2MDA3OTg2ICswMjAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0 ZS9saWIvZ2RiLmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1ODAxMzUzNCArMDIwMAotQEAgLTE3 Myw2ICsxNzMsMTEgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90ZXN0c3Vp dGUvbGliL2dkYi5leHAJMjAxNy0wMi0yNiAxOToxNToyOC41NjQ4MjQ4MzYgKzAxMDAKKysrKyBn ZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTctMDItMjYg MTk6MTU6MzYuNjA3ODgyMzg3ICswMTAwCitAQCAtMTc4LDYgKzE3OCwxMSBAQAogIAkgICAgc2Vu ZF9nZGIgInlcbiIKICAJICAgIGV4cF9jb250aW51ZQogIAl9CkBAIC0zNjk4LDEwICszNjk4LDEw IEBAIEluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiAgCS1yZSAiRGlz Y2FyZCBzeW1ib2wgdGFibGUgZnJvbSAuKnkgb3Igbi4qJCIgewogIAkgICAgc2VuZF9nZGIgInlc biIKICAJICAgIGV4cF9jb250aW51ZQotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvbGli L3Bhc2NhbC5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2xp Yi9wYXNjYWwuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTIub3JpZy9nZGIvdGVzdHN1aXRl L2xpYi9wYXNjYWwuZXhwCTIwMTYtMDgtMDEgMTc6NTA6MjEuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1 Ljg1OTAxMzU0MSArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9saWIvcGFzY2FsLmV4cAkyMDE3LTAyLTI2IDE5OjE1OjI4LjU2NTgyNDg0NCArMDEwMAor KysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAx Ny0wMi0yNiAxOToxNTozNi42MDc4ODIzODcgKzAxMDAKIEBAIC0zNyw2ICszNyw5IEBACiAgICAg IGdsb2JhbCBwYXNjYWxfY29tcGlsZXJfaXNfZnBjCiAgICAgIGdsb2JhbCBncGNfY29tcGlsZXIK CmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLnBhdGNoIGIvZ2RiLWFyY2hlci5wYXRjaAppbmRleCA4 ZDkyNjVmLi45NzA3NDVkIDEwMDY0NAotLS0gYS9nZGItYXJjaGVyLnBhdGNoCisrKyBiL2dkYi1h cmNoZXIucGF0Y2gKQEAgLTIsNyArMiw3IEBAIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lr aS9Qcm9qZWN0QXJjaGVyCiBodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvQXJjaGVyQnJh bmNoTWFuYWdlbWVudAogCiBHSVQgc25hcHNob3Q6Ci1jb21taXQgY2ZlZTY0ZWU4NjlhNmE2ZTRh YjBiNjRhZjE0OWQ0Y2Y1OTUxN2Q4MAorY29tbWl0IGUyYzBjYmY5M2NmMjA2NjdiZTQ0OWE3NWQy YWRhNWQzNzdkZGIwOTAKIAogdHJvbWV5L3B5dGhvbgogCkBAIC0xNiwxMCArMTYsMTAgQEAgaW5k ZXggMDAwMDAwMC4uMTczYjhlYQogK1RoaXMgYnJhbmNoIG9yaWdpbmFsbHkgaGVsZCB0aGUgUHl0 aG9uIGNvZGUgZm9yIGdkYi4gIEl0IHN0aWxsIGV4aXN0cwogK2JlY2F1c2UgYSBzbWFsbCBhbW91 bnQgb2YgY29kZSBoZXJlIGhhcyBub3QgeWV0IGJlZW4gbWVyZ2VkIHVwc3RyZWFtLgogZGlmZiAt LWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgotaW5kZXggNWFmNjEwMy4u OWM2OWNiMCAxMDA2NDQKK2luZGV4IDI2OGMyYzYuLjQwNDVlZjcgMTAwNjQ0CiAtLS0gYS9nZGIv TWFrZWZpbGUuaW4KICsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTE1NTMsNiArMTU1MywxMiBA QCBzdGFtcC1oOiAkKHNyY2RpcikvY29uZmlnLmluIGNvbmZpZy5zdGF0dXMKK0BAIC0yMzQ1LDYg KzIzNDUsMTIgQEAgc3RhbXAtaDogJChzcmNkaXIpL2NvbmZpZy5pbiBjb25maWcuc3RhdHVzCiAg CSAgQ09ORklHX0xJTktTPSBcCiAgCSAgJChTSEVMTCkgY29uZmlnLnN0YXR1cwogIApAQCAtMzMs MjEgKzMzLDIyIEBAIGluZGV4IDVhZjYxMDMuLjljNjljYjAgMTAwNjQ0CiAgCSQoU0hFTEwpIGNv bmZpZy5zdGF0dXMgLS1yZWNoZWNrCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2RhdGEtZGlyZWN0b3J5 L01ha2VmaWxlLmluIGIvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCi1pbmRleCAzZjIz NTE2Li5iNWQ2MzkwIDEwMDY0NAoraW5kZXggMzA0ZDRiMC4uZDIwMDdhNCAxMDA2NDQKIC0tLSBh L2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgogKysrIGIvZ2RiL2RhdGEtZGlyZWN0b3J5 L01ha2VmaWxlLmluCi1AQCAtNjYsNyArNjYsMTAgQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKK0BA IC03Nyw3ICs3NywxMSBAQCBQWVRIT05fRklMRV9MSVNUID0gXAorIAlnZGIvdHlwZXMucHkgXAog IAlnZGIvdW53aW5kZXIucHkgXAotIAlnZGIvcHJvbXB0LnB5IFwKICAJZ2RiL3htZXRob2QucHkg XAogKwlnZGIvdHlwZXMucHkgXAogIAlnZGIvY29tbWFuZC9fX2luaXRfXy5weSBcCiArCWdkYi9j b21tYW5kL2lnbm9yZV9lcnJvcnMucHkgXAogKwlnZGIvY29tbWFuZC9wYWhvbGUucHkgXAotIAln ZGIvY29tbWFuZC94bWV0aG9kcy5weSBcCisrCWdkYi9jb21tYW5kL3htZXRob2RzLnB5IFwKKyAJ Z2RiL2NvbW1hbmQvZXhwbG9yZS5weSBcCiAgCWdkYi9jb21tYW5kL2ZyYW1lX2ZpbHRlcnMucHkg XAotIAlnZGIvY29tbWFuZC91bndpbmRlcnMucHkgXAotQEAgLTc4LDYgKzgxLDggQEAgUFlUSE9O X0ZJTEVfTElTVCA9IFwKKyAJZ2RiL2NvbW1hbmQvcHJldHR5X3ByaW50ZXJzLnB5IFwKK0BAIC04 OSw2ICs5Myw4IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCiAgCWdkYi9mdW5jdGlvbi9hc19zdHJp bmcucHkgXAogIAlnZGIvZnVuY3Rpb24vY2FsbGVyX2lzLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL3N0 cmZucy5weSBcCkBAIC01NywxMCArNTgsMTAgQEAgaW5kZXggM2YyMzUxNi4uYjVkNjM5MCAxMDA2 NDQKICAJZ2RiL3ByaW50ZXIvYm91bmRfcmVnaXN0ZXJzLnB5CiAgCiBkaWZmIC0tZ2l0IGEvZ2Ri L2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KLWluZGV4IGY1ZGRlNjEuLjFk OTJiZDYgMTAwNjQ0CitpbmRleCA5NjIzMjViLi41ODllMjJjIDEwMDY0NAogLS0tIGEvZ2RiL2Rv Yy9nZGIudGV4aW5mbwogKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotQEAgLTEyMjUsNiArMTIy NSwxNiBAQCBmb3IgcmVtb3RlIGRlYnVnZ2luZy4KK0BAIC0xMjMwLDYgKzEyMzAsMTYgQEAgZm9y IHJlbW90ZSBkZWJ1Z2dpbmcuCiAgUnVuIHVzaW5nIEB2YXJ7ZGV2aWNlfSBmb3IgeW91ciBwcm9n cmFtJ3Mgc3RhbmRhcmQgaW5wdXQgYW5kIG91dHB1dC4KICBAYyBGSVhNRToga2luZ2RvbiB0aGlu a3MgdGhlcmUgaXMgbW9yZSB0byAtdHR5LiAgSW52ZXN0aWdhdGUuCiAgCkBAIC03OCw3ICs3OSw3 IEBAIGluZGV4IGY1ZGRlNjEuLjFkOTJiZDYgMTAwNjQ0CiAgQGl0ZW0gLXR1aQogIEBjaW5kZXgg QGNvZGV7LS10dWl9CiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9weXRob24udGV4aSBiL2dkYi9kb2Mv cHl0aG9uLnRleGkKLWluZGV4IGExN2UzN2QuLmM1NjA2OGIgMTAwNjQ0CitpbmRleCBjM2VhMjAz Li5hM2JkYjk4IDEwMDY0NAogLS0tIGEvZ2RiL2RvYy9weXRob24udGV4aQogKysrIGIvZ2RiL2Rv Yy9weXRob24udGV4aQogQEAgLTg4LDggKzg4LDYgQEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAg Rm9yIGV4YW1wbGU6CkBAIC0xMTEsNyArMTEyLDcgQEAgaW5kZXggMDVhMzhiMi4uOTgwMWZkZiAx MDA2NDQKICAgIHNldCB2YXJpYWJsZSAkZ2RiX2luaXRfZG9uZSA9IDEKICAKIGRpZmYgLS1naXQg YS9nZGIvbWFpbi5jIGIvZ2RiL21haW4uYwotaW5kZXggNTQ3NzM3OS4uYjdlNDEzZiAxMDA2NDQK K2luZGV4IDMwZTI3YzIuLjA0NjBjMjggMTAwNjQ0CiAtLS0gYS9nZGIvbWFpbi5jCiArKysgYi9n ZGIvbWFpbi5jCiBAQCAtMzMsNiArMzMsNyBAQApAQCAtMTIyLDE2ICsxMjMsMTYgQEAgaW5kZXgg NTQ3NzM3OS4uYjdlNDEzZiAxMDA2NDQKICAjaW5jbHVkZSAic291cmNlLmgiCiAgI2luY2x1ZGUg ImNsaS9jbGktY21kcy5oIgogICNpbmNsdWRlICJvYmpmaWxlcy5oIgotQEAgLTQ1OSw2ICs0NjAs OCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQotICAgY2hhciAqY2RhcmcgPSBOVUxMOwot ICAgY2hhciAqdHR5YXJnID0gTlVMTDsKK0BAIC00NTksNyArNDYwLDcgQEAgc3RydWN0IGNtZGFy ZworIH07CiAgCi0rICBpbnQgcHl0aG9uX3NjcmlwdCA9IDA7Ci0rCi0gICAvKiBUaGVzZSBhcmUg c3RhdGljIHNvIHRoYXQgd2UgY2FuIHRha2UgdGhlaXIgYWRkcmVzcyBpbiBhbgotICAgICAgaW5p dGlhbGl6ZXIuICAqLwotICAgc3RhdGljIGludCBwcmludF9oZWxwOwotQEAgLTY2MywxMCArNjY2 LDE0IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCisgc3RhdGljIHZvaWQKKy1jYXB0dXJl ZF9tYWluXzEgKHN0cnVjdCBjYXB0dXJlZF9tYWluX2FyZ3MgKmNvbnRleHQpCisrY2FwdHVyZWRf bWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0LCBpbnQgJnB5dGhvbl9z Y3JpcHQpCisgeworICAgaW50IGFyZ2MgPSBjb250ZXh0LT5hcmdjOworICAgY2hhciAqKmFyZ3Yg PSBjb250ZXh0LT5hcmd2OworQEAgLTY3NCwxMCArNjc1LDE0IEBAIGNhcHR1cmVkX21haW5fMSAo c3RydWN0IGNhcHR1cmVkX21haW5fYXJncyAqY29udGV4dCkKICAgICAgICB7ImFyZ3MiLCBub19h cmd1bWVudCwgJnNldF9hcmdzLCAxfSwKICAgICAgICB7ImwiLCByZXF1aXJlZF9hcmd1bWVudCwg MCwgJ2wnfSwKICAgICAgICB7InJldHVybi1jaGlsZC1yZXN1bHQiLCBub19hcmd1bWVudCwgJnJl dHVybl9jaGlsZF9yZXN1bHQsIDF9LApAQCAtMTQ3LDcgKzE0OCw3IEBAIGluZGV4IDU0NzczNzku LmI3ZTQxM2YgMTAwNjQ0CiAgICAgICAgewogIAlpbnQgb3B0aW9uX2luZGV4OwogIAotQEAgLTY4 NCw2ICs2OTEsOSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTY5NSw2ICs3MDAs OSBAQCBjYXB0dXJlZF9tYWluXzEgKHN0cnVjdCBjYXB0dXJlZF9tYWluX2FyZ3MgKmNvbnRleHQp CiAgCSAgY2FzZSAwOgogIAkgICAgLyogTG9uZyBvcHRpb24gdGhhdCBqdXN0IHNldHMgYSBmbGFn LiAgKi8KICAJICAgIGJyZWFrOwpAQCAtMTU3LDcgKzE1OCw3IEBAIGluZGV4IDU0NzczNzkuLmI3 ZTQxM2YgMTAwNjQ0CiAgCSAgY2FzZSBPUFRfU0U6CiAgCSAgICBzeW1hcmcgPSBvcHRhcmc7CiAg CSAgICBleGVjYXJnID0gb3B0YXJnOwotQEAgLTg2NCw3ICs4NzQsMzEgQEAgY2FwdHVyZWRfbWFp biAodm9pZCAqZGF0YSkKK0BAIC04NTMsNyArODYxLDMxIEBAIGNhcHR1cmVkX21haW5fMSAoc3Ry dWN0IGNhcHR1cmVkX21haW5fYXJncyAqY29udGV4dCkKICAKICAgIC8qIE5vdyB0aGF0IGdkYl9p bml0IGhhcyBjcmVhdGVkIHRoZSBpbml0aWFsIGluZmVyaW9yLCB3ZSdyZSBpbgogICAgICAgcG9z aXRpb24gdG8gc2V0IGFyZ3MgZm9yIHRoYXQgaW5mZXJpb3IuICAqLwpAQCAtMTkwLDcgKzE5MSw3 IEBAIGluZGV4IDU0NzczNzkuLmI3ZTQxM2YgMTAwNjQ0CiAgICAgIHsKICAgICAgICAvKiBUaGUg cmVtYWluaW5nIG9wdGlvbnMgYXJlIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyBmb3IgdGhlCiAg CSBpbmZlcmlvci4gIFRoZSBmaXJzdCBvbmUgaXMgdGhlIHN5bS9leGVjIGZpbGUsIGFuZCB0aGUg cmVzdAotQEAgLTExMjcsNyArMTE2MSw4IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitA QCAtMTEyMyw3ICsxMTU1LDggQEAgY2FwdHVyZWRfbWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFp bl9hcmdzICpjb250ZXh0KQogIAogICAgLyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIg YWxsIHRoZSBjb21tYW5kIGZpbGVzIGhhdmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC0yMDAs OSArMjAxLDE0IEBAIGluZGV4IDU0NzczNzkuLmI3ZTQxM2YgMTAwNjQ0CiAgCiAgICBpZiAoYmF0 Y2hfZmxhZykKICAgICAgewotQEAgLTExMzgsMTMgKzExNzMsMjUgQEAgY2FwdHVyZWRfbWFpbiAo dm9pZCAqZGF0YSkKLSAgIC8qIFNob3cgdGltZSBhbmQvb3Igc3BhY2UgdXNhZ2UuICAqLwotICAg ZG9fY2xlYW51cHMgKHByZV9zdGF0X2NoYWluKTsKK0BAIC0xMTM2LDE2ICsxMTY5LDI5IEBAIHN0 YXRpYyB2b2lkCisgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKKyB7CisgICBzdHJ1Y3QgY2Fw dHVyZWRfbWFpbl9hcmdzICpjb250ZXh0ID0gKHN0cnVjdCBjYXB0dXJlZF9tYWluX2FyZ3MgKikg ZGF0YTsKKysgIGludCBweXRob25fc2NyaXB0ID0gMDsKKyAKKy0gIGNhcHR1cmVkX21haW5fMSAo Y29udGV4dCk7CisrICBjYXB0dXJlZF9tYWluXzEgKGNvbnRleHQsIHB5dGhvbl9zY3JpcHQpOwog IAogLSAgLyogTk9URTogY2FnbmV5LzE5OTktMTEtMDc6IFRoZXJlIGlzIHByb2JhYmx5IG5vIHJl YXNvbiBmb3Igbm90CiAtICAgICBtb3ZpbmcgdGhpcyBsb29wIGFuZCB0aGUgY29kZSBmb3VuZCBp biBjYXB0dXJlZF9jb21tYW5kX2xvb3AoKQpAQCAtMjExLDE2ICsyMTcsMTYgQEAgaW5kZXggNTQ3 NzM3OS4uYjdlNDEzZiAxMDA2NDQKIC0gIHdoaWxlICgxKQogKyNpZiBIQVZFX1BZVEhPTgogKyAg aWYgKHB5dGhvbl9zY3JpcHQpCi0gICAgIHsKLS0gICAgICBjYXRjaF9lcnJvcnMgKGNhcHR1cmVk X2NvbW1hbmRfbG9vcCwgMCwgIiIsIFJFVFVSTl9NQVNLX0FMTCk7CisrICAgIHsKICsgICAgICBl eHRlcm4gaW50IHBhZ2luYXRpb25fZW5hYmxlZDsKICsgICAgICBwYWdpbmF0aW9uX2VuYWJsZWQg PSAwOwotKyAgICAgIHJ1bl9weXRob25fc2NyaXB0IChhcmdjIC0gb3B0aW5kLCAmYXJndltvcHRp bmRdKTsKLSsgICAgICByZXR1cm4gMTsKKysgICAgICBydW5fcHl0aG9uX3NjcmlwdCAoY29udGV4 dC0+YXJnYyAtIG9wdGluZCwgJmNvbnRleHQtPmFyZ3Zbb3B0aW5kXSk7CisrICAgICAgcmV0dXJu OwogKyAgICB9CiArICBlbHNlCiArI2VuZGlmCi0rICAgIHsKKyAgICAgeworLSAgICAgIGNhdGNo X2Vycm9ycyAoY2FwdHVyZWRfY29tbWFuZF9sb29wLCAwLCAiIiwgUkVUVVJOX01BU0tfQUxMKTsK ICsgICAgICAvKiBOT1RFOiBjYWduZXkvMTk5OS0xMS0wNzogVGhlcmUgaXMgcHJvYmFibHkgbm8g cmVhc29uIGZvciBub3QKICsJIG1vdmluZyB0aGlzIGxvb3AgYW5kIHRoZSBjb2RlIGZvdW5kIGlu IGNhcHR1cmVkX2NvbW1hbmRfbG9vcCgpCiArCSBpbnRvIHRoZSBjb21tYW5kX2xvb3AoKSBwcm9w ZXIuICBUaGUgbWFpbiB0aGluZyBob2xkaW5nIGJhY2sgdGhhdApAQCAtMjMyLDcgKzIzOCw3IEBA IGluZGV4IDU0NzczNzkuLmI3ZTQxM2YgMTAwNjQ0CiAgICAgIH0KICAgIC8qIE5vIGV4aXQgLS0g ZXhpdCBpcyB0aHJvdWdoIHF1aXRfY29tbWFuZC4gICovCiAgfQotQEAgLTExODcsNiArMTIzNCwx MiBAQCBwcmludF9nZGJfaGVscCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKK0BAIC0xMTg4LDYg KzEyMzQsMTIgQEAgcHJpbnRfZ2RiX2hlbHAgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgICBm cHV0c191bmZpbHRlcmVkIChfKCJcCiAgVGhpcyBpcyB0aGUgR05VIGRlYnVnZ2VyLiAgVXNhZ2U6 XG5cblwKICAgICAgZ2RiIFtvcHRpb25zXSBbZXhlY3V0YWJsZS1maWxlIFtjb3JlLWZpbGUgb3Ig cHJvY2Vzcy1pZF1dXG5cCkBAIC0yNDUsNyArMjUxLDcgQEAgaW5kZXggNTQ3NzM3OS4uYjdlNDEz ZiAxMDA2NDQKICAgICAgZ2RiIFtvcHRpb25zXSAtLWFyZ3MgZXhlY3V0YWJsZS1maWxlIFtpbmZl cmlvci1hcmd1bWVudHMgLi4uXVxuXG5cCiAgIiksIHN0cmVhbSk7CiAgICBmcHV0c191bmZpbHRl cmVkIChfKCJcCi1AQCAtMTIzMSw2ICsxMjg0LDEzIEBAIE91dHB1dCBhbmQgdXNlciBpbnRlcmZh Y2UgY29udHJvbDpcblxuXAorQEAgLTEyMzIsNiArMTI4NCwxMyBAQCBPdXRwdXQgYW5kIHVzZXIg aW50ZXJmYWNlIGNvbnRyb2w6XG5cblwKICAjZW5kaWYKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8o IlwKICAgIC0tZGJ4ICAgICAgICAgICAgICBEQlggY29tcGF0aWJpbGl0eSBtb2RlLlxuXApAQCAt NDQyLDggKzQ0OCwyMiBAQCBpbmRleCAwMDAwMDAwLi44NzQyNjgwCiArICAgICAgICByZXR1cm4g d2FudGVkID09IGZvdW5kCiArCiArSW5TY29wZSAoKQorZGlmZiAtLWdpdCBhL2dkYi9weXRob24v cHl0aG9uLWludGVybmFsLmggYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCitpbmRleCA0 ZGQ0MTNkLi4yYWQ0MDcxIDEwMDY0NAorLS0tIGEvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwu aAorKysrIGIvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAorQEAgLTU1MSw2ICs1NTEsOSBA QCBjbGFzcyBnZGJweV9lbnRlcl92YXJvYmogOiBwdWJsaWMgZ2RicHlfZW50ZXIKKyAKKyB9Owor IAorK3N0cnVjdCBjbGVhbnVwICplbnN1cmVfcHl0aG9uX2VudiAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCisrCQkJCSAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSk7Cisr CisgZXh0ZXJuIHN0cnVjdCBnZGJhcmNoICpweXRob25fZ2RiYXJjaDsKKyBleHRlcm4gY29uc3Qg c3RydWN0IGxhbmd1YWdlX2RlZm4gKnB5dGhvbl9sYW5ndWFnZTsKKyAKIGRpZmYgLS1naXQgYS9n ZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwotaW5kZXggNjIxZTIwMS4u NzAzYTFhMCAxMDA2NDQKK2luZGV4IDczZmIzZDAuLjA3ODljMTYgMTAwNjQ0CiAtLS0gYS9nZGIv cHl0aG9uL3B5dGhvbi5jCiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCiBAQCAtOTUsNiArOTUs OCBAQCBjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gZXh0ZW5zaW9uX2xhbmd1 YWdlX3B5dGhvbiA9CkBAIC00NTUsNyArNDc1LDM3IEBAIGluZGV4IDYyMWUyMDEuLjcwM2ExYTAg MTAwNjQ0CiAgI2luY2x1ZGUgInRhcmdldC5oIgogICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKICAj aW5jbHVkZSAiaW50ZXJwcy5oIgotQEAgLTEyNjMsNiArMTI2NSw5MiBAQCBnZGJweV9wcmludF9z dGFjayAodm9pZCkKK0BAIC0yNDIsNiArMjQ0LDI5IEBAIGdkYnB5X2VudGVyOjp+Z2RicHlfZW50 ZXIgKCkKKyAgIHJlc3RvcmVfYWN0aXZlX2V4dF9sYW5nIChtX3ByZXZpb3VzX2FjdGl2ZSk7Cisg fQorIAorK3N0YXRpYyB2b2lkCisrcmVzdG9yZV9weXRob25fZW52ICh2b2lkICpwKQorK3sKKysg IGdkYnB5X2VudGVyICplbnYgPSAoZ2RicHlfZW50ZXIgKikgcDsKKysKKysgIGRlbGV0ZSBlbnY7 CisrfQorKworKy8qIENhbGxlZCBiZWZvcmUgZW50ZXJpbmcgdGhlIFB5dGhvbiBpbnRlcnByZXRl ciB0byBpbnN0YWxsIHRoZQorKyAgIGN1cnJlbnQgbGFuZ3VhZ2UgYW5kIGFyY2hpdGVjdHVyZSB0 byBiZSB1c2VkIGZvciBQeXRob24gdmFsdWVzLgorKyAgIEFsc28gc2V0IHRoZSBhY3RpdmUgZXh0 ZW5zaW9uIGxhbmd1YWdlIGZvciBHREIgc28gdGhhdCBTSUdJTlQncworKyAgIGFyZSBkaXJlY3Rl ZCBvdXIgd2F5LCBhbmQgaWYgbmVjZXNzYXJ5IGluc3RhbGwgdGhlIHJpZ2h0IFNJR0lOVAorKyAg IGhhbmRsZXIuICAqLworKworK3N0cnVjdCBjbGVhbnVwICoKKytlbnN1cmVfcHl0aG9uX2VudiAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisrICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSkKKyt7CisrICBnZGJweV9lbnRlciAqZW52ID0gbmV3 IGdkYnB5X2VudGVyIChnZGJhcmNoLCBsYW5ndWFnZSk7CisrCisrICByZXR1cm4gbWFrZV9jbGVh bnVwIChyZXN0b3JlX3B5dGhvbl9lbnYsIGVudik7CisrfQorKworIC8qIFNldCB0aGUgcXVpdCBm bGFnLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTExOTIsNiArMTIxNyw5MiBAQCBnZGJweV9w cmludF9zdGFjayAodm9pZCkKICAKICAvKiBSZXR1cm4gdGhlIGN1cnJlbnQgUHJvZ3NwYWNlLgog ICAgIFRoZXJlIGFsd2F5cyBpcyBvbmUuICAqLwpAQCAtNDczLDcgKzUyMyw3IEBAIGluZGV4IDYy MWUyMDEuLjcwM2ExYTAgMTAwNjQ0CiArICBpZiAoISBydW5uaW5nX3B5dGhvbl9zY3JpcHQgfHwg aW5fY2xpKQogKyAgICByZXR1cm4gUHlFcnJfRm9ybWF0IChQeUV4Y19SdW50aW1lRXJyb3IsICJj YW5ub3QgaW52b2tlIENMSSByZWN1cnNpdmVseSIpOwogKyAgCi0rICBpZiAodWlfb3V0X2lzX21p X2xpa2VfcCAoY3VycmVudF91aW91dCkpCisrICBpZiAoY3VycmVudF91aW91dC0+aXNfbWlfbGlr ZV9wICgpKQogKyAgICByZXR1cm4gUHlFcnJfRm9ybWF0IChQeUV4Y19SdW50aW1lRXJyb3IsIF8o IkNhbm5vdCBpbnZva2UgQ0xJIGZyb20gTUkuIikpOwogKwogKyAgaW5fY2xpID0gMTsKQEAgLTU0 OCw3ICs1OTgsNyBAQCBpbmRleCA2MjFlMjAxLi43MDNhMWEwIDEwMDY0NAogIAogIHN0YXRpYyBQ eU9iamVjdCAqCiAgZ2RicHlfZ2V0X2N1cnJlbnRfcHJvZ3NwYWNlIChQeU9iamVjdCAqdW51c2Vk MSwgUHlPYmplY3QgKnVudXNlZDIpCi1AQCAtMTk4MSw2ICsyMDY5LDggQEAgUHlNZXRob2REZWYg cHl0aG9uX0dkYk1ldGhvZHNbXSA9CitAQCAtMTg4OCw2ICsxOTk5LDggQEAgUHlNZXRob2REZWYg cHl0aG9uX0dkYk1ldGhvZHNbXSA9CiAgRXZhbHVhdGUgY29tbWFuZCwgYSBzdHJpbmcsIGFzIGEg Z2RiIENMSSBjb21tYW5kLiAgT3B0aW9uYWxseSByZXR1cm5zXG5cCiAgYSBQeXRob24gU3RyaW5n IGNvbnRhaW5pbmcgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCBpZiB0b19zdHJpbmcgaXNcblwK ICBzZXQgdG8gVHJ1ZS4iIH0sCkBAIC01NTgsNyArNjA4LDcgQEAgaW5kZXggNjIxZTIwMS4uNzAz YTFhMCAxMDA2NDQKICAgICAgIlJldHVybiBhIGdkYiBwYXJhbWV0ZXIncyB2YWx1ZSIgfSwKICAK IGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5oIGIvZ2RiL3B5dGhvbi9weXRob24uaAot aW5kZXggYjgxMDE4Ny4uYTM2MjBhYiAxMDA2NDQKK2luZGV4IGU0MDdmYWEuLmZjMWM2MzIgMTAw NjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi5oCiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5o CiBAQCAtMjUsNCArMjUsNiBAQApAQCAtNTY4LDIzICs2MTgsOCBAQCBpbmRleCBiODEwMTg3Li5h MzYyMGFiIDEwMDY0NAogK2V4dGVybiB2b2lkIHJ1bl9weXRob25fc2NyaXB0IChpbnQgYXJnYywg Y2hhciAqKmFyZ3YpOwogKwogICNlbmRpZiAvKiBHREJfUFlUSE9OX0ggKi8KLWRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu Z2RiL3NlbGZ0ZXN0LmV4cAotaW5kZXggMmZkZDllMy4uMzkxOTAwZCAxMDA2NDQKLS0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmdkYi9zZWxmdGVzdC5leHAKLUBAIC04Nyw2ICs4NywxMCBAQCBwcm9jIGRvX3N0ZXBzX2FuZF9u ZXh0cyB7fSB7Ci0gCQlzZXQgZGVzY3JpcHRpb24gInN0ZXAgb3ZlciBjbWRhcmdfdmVjIGluaXRp YWxpemF0aW9uIgotIAkJc2V0IGNvbW1hbmQgInN0ZXAiCi0gCSAgICB9Ci0rCSAgICAtcmUgIi4q cHl0aG9uX3NjcmlwdCA9IDAuKiRnZGJfcHJvbXB0ICQiIHsKLSsJCXNldCBkZXNjcmlwdGlvbiAi c3RlcCBvdmVyIHB5dGhvbl9zY3JpcHQgaW5pdGlhbGl6YXRpb24iCi0rCQlzZXQgY29tbWFuZCAi c3RlcCIKLSsJICAgIH0KLSAJICAgIC1yZSAiLipwcmVfc3RhdF9jaGFpbiA9IG1ha2VfY29tbWFu ZF9zdGF0c19jbGVhbnVwLiokZ2RiX3Byb21wdCAkIiB7Ci0gCQlzZXQgZGVzY3JpcHRpb24gIm5l eHQgb3ZlciBtYWtlX2NvbW1hbmRfc3RhdHNfY2xlYW51cCBhbmQgZXZlcnl0aGluZyBpdCBjYWxs cyIKLSAJCXNldCBjb21tYW5kICJuZXh0IgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUu ZXhwCi1pbmRleCBiNWE0NjgyLi5kNTQ1MWE2IDEwMDY0NAoraW5kZXggZjVkNGEzYy4uMzU0NmY3 YiAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKICsr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKIEBAIC05NSw2ICs5NSw4 IEBAIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSBmMC5yZWFkX3ZhciAo J2EnKSkiICIgPSAxIiAidGVzdCBGcmFtZS5yCkBAIC01OTcsMTAgKzYzMiwxMCBAQCBpbmRleCBi NWE0NjgyLi5kNTQ1MWE2IDEwMDY0NAogIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1bHQg PSAlcycgJSAoZ2RiLnNlbGVjdGVkX2ZyYW1lICgpLnJlYWRfcmVnaXN0ZXIgKCdzcCcpID09IGdk Yi5wYXJzZV9hbmRfZXZhbCAoJ1wkc3AnKSkpIiBcCiAgICAiID0gVHJ1ZSIgXAogZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktdmFsdWUuZXhwCi1pbmRleCA1N2E5YmExLi5kOTBkODVhIDEwMDY0NAor aW5kZXggZDlhNGQyMC4uYzg3ZTRkOCAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS12YWx1ZS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1 ZS5leHAKLUBAIC0zOTcsNiArMzk3LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7 fSB7CitAQCAtNDA3LDYgKzQwNywxNSBAQCBwcm9jIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgge30g ewogICAgICAicHJpbnQgdmFsdWUncyB0eXBlIgogIH0KICAKQEAgLTYxNiw3ICs2NTEsNyBAQCBp bmRleCA1N2E5YmExLi5kOTBkODVhIDEwMDY0NAogICMgUmVncmVzc2lvbiB0ZXN0IGZvciBpbnZh bGlkIHN1YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAogICMgdGhlIHR5cGUg b2YgdGhlIHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dpbmcgYQogICMg c3Vic2NyaXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgotQEAgLTUyNiw2ICs1MzUsNyBAQCB0ZXN0 X3ZhbHVlX2luX2luZmVyaW9yCitAQCAtNTM2LDYgKzU0NSw3IEBAIHRlc3RfdmFsdWVfaW5faW5m ZXJpb3IKICB0ZXN0X2luZmVyaW9yX2Z1bmN0aW9uX2NhbGwKICB0ZXN0X2xhenlfc3RyaW5ncwog IHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgKQEAgLTYyNCwzICs2NTksMzUgQEAgaW5kZXggNTdhOWJh MS4uZDkwZDg1YSAxMDA2NDQKICAKICAjIFRlc3QgZWl0aGVyIEMgb3IgQysrIHZhbHVlcy4gCiAg CitkaWZmIC0tZ2l0IGEvZ2RiL3Zhcm9iai5jIGIvZ2RiL3Zhcm9iai5jCitpbmRleCAxNzNhYmYz Li5jM2FiZjY2IDEwMDY0NAorLS0tIGEvZ2RiL3Zhcm9iai5jCisrKysgYi9nZGIvdmFyb2JqLmMK K0BAIC0yMjYsNiArMjI2LDE0IEBAIGlzX3Jvb3RfcCAoY29uc3Qgc3RydWN0IHZhcm9iaiAqdmFy KQorIH0KKyAKKyAjaWZkZWYgSEFWRV9QWVRIT04KKysvKiBIZWxwZXIgZnVuY3Rpb24gdG8gaW5z dGFsbCBhIFB5dGhvbiBlbnZpcm9ubWVudCBzdWl0YWJsZSBmb3IKKysgICB1c2UgZHVyaW5nIG9w ZXJhdGlvbnMgb24gVkFSLiAgKi8KKytzdHJ1Y3QgY2xlYW51cCAqCisrdmFyb2JqX2Vuc3VyZV9w eXRob25fZW52IChjb25zdCBzdHJ1Y3QgdmFyb2JqICp2YXIpCisreworKyAgcmV0dXJuIGVuc3Vy ZV9weXRob25fZW52ICh2YXItPnJvb3QtPmV4cC0+Z2RiYXJjaCwKKysJCQkgICAgdmFyLT5yb290 LT5leHAtPmxhbmd1YWdlX2RlZm4pOworK30KKyAKKyAvKiBTZWUgcHl0aG9uLWludGVybmFsLmgu ICAqLworIGdkYnB5X2VudGVyX3Zhcm9iajo6Z2RicHlfZW50ZXJfdmFyb2JqIChjb25zdCBzdHJ1 Y3QgdmFyb2JqICp2YXIpCitkaWZmIC0tZ2l0IGEvZ2RiL3Zhcm9iai5oIGIvZ2RiL3Zhcm9iai5o CitpbmRleCA5ODljOGNkLi5mYzdmMTc3IDEwMDY0NAorLS0tIGEvZ2RiL3Zhcm9iai5oCisrKysg Yi9nZGIvdmFyb2JqLmgKK0BAIC0zMjAsNiArMzIwLDggQEAgZXh0ZXJuIGludCB2YXJvYmpfaGFz X21vcmUgKGNvbnN0IHN0cnVjdCB2YXJvYmogKnZhciwgaW50IHRvKTsKKyAKKyBleHRlcm4gaW50 IHZhcm9ial9pc19keW5hbWljX3AgKGNvbnN0IHN0cnVjdCB2YXJvYmogKnZhcik7CisgCisrZXh0 ZXJuIHN0cnVjdCBjbGVhbnVwICp2YXJvYmpfZW5zdXJlX3B5dGhvbl9lbnYgKGNvbnN0IHN0cnVj dCB2YXJvYmogKnZhcik7CisrCisgZXh0ZXJuIGludCB2YXJvYmpfZGVmYXVsdF92YWx1ZV9pc19j aGFuZ2VhYmxlX3AgKGNvbnN0IHN0cnVjdCB2YXJvYmogKnZhcik7CisgZXh0ZXJuIGludCB2YXJv YmpfdmFsdWVfaXNfY2hhbmdlYWJsZV9wIChjb25zdCBzdHJ1Y3QgdmFyb2JqICp2YXIpOworIAoK ZGlmZiAtLWdpdCBhL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2ggYi9nZGItYXR0 YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCmluZGV4IGIzMDI3ZGYuLmQ5YzU1YTkgMTAwNjQ0 Ci0tLSBhL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKKysrIGIvZ2RiLWF0dGFj aC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaApAQCAtMzcsMTMgKzM3LDEzIEBAIGdkYi9nZGJzZXJ2 ZXIvCiAJKGxpbnV4X2NyZWF0ZV9pbmZlcmlvciwgbGludXhfdHJhY2Vmb3JrX2NoaWxkKTogQ2Fs bCBpdCBpbnN0ZWFkIG9mCiAJZGlyZWN0IHB0cmFjZS4KIAotSW5kZXg6IGdkYi03LjExLjkwLjIw MTYwODI5L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIy Ni9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAx NjA4Mjkub3JpZy9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCTIwMTYtMDgtMjkgMDk6MzU6MjYuNzk4 MjMwNjU5ICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL25hdC9saW51eC1wdHJh Y2UuYwkyMDE2LTA4LTI5IDA5OjM1OjQzLjE2MjM4NDEwMCArMDIwMAotQEAgLTI1LDYgKzI1LDEw IEBACi0gI2luY2x1ZGUgImdkYl9wdHJhY2UuaCIKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5v cmlnL2dkYi9uYXQvbGludXgtcHRyYWNlLmMJMjAxNy0wMi0yNiAyMToyNzoxNC43ODAwMDk0NDkg KzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCTIw MTctMDItMjYgMjE6Mjc6MTguODM4MDM4MTkzICswMTAwCitAQCAtMjcsNiArMjcsMTAgQEAKICAj aW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorICNlbmRpZgogIAogKyNpZmRlZiBIQVZFX1NFTElOVVhf U0VMSU5VWF9ICiArIyBpbmNsdWRlIDxzZWxpbnV4L3NlbGludXguaD4KQEAgLTUyLDcgKzUyLDcg QEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODI5L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKICAv KiBTdG9yZXMgdGhlIHB0cmFjZSBvcHRpb25zIHN1cHBvcnRlZCBieSB0aGUgcnVubmluZyBrZXJu ZWwuCiAgICAgQSB2YWx1ZSBvZiAtMSBtZWFucyB3ZSBkaWQgbm90IGNoZWNrIGZvciBmZWF0dXJl cyB5ZXQuICBBIHZhbHVlCiAgICAgb2YgMCBtZWFucyB0aGVyZSBhcmUgbm8gc3VwcG9ydGVkIGZl YXR1cmVzLiAgKi8KLUBAIC00OSw2ICs1Myw4IEBACitAQCAtNTEsNiArNTUsOCBAQAogICAgICBi dWZmZXJfeG1sX3ByaW50ZiAoYnVmZmVyLCBfKCJwcm9jZXNzICVkIGlzIGEgem9tYmllICIKICAJ CQkJICItIHRoZSBwcm9jZXNzIGhhcyBhbHJlYWR5IHRlcm1pbmF0ZWQiKSwKICAJCSAgICAgICAo aW50KSBwaWQpOwpAQCAtNjEsNyArNjEsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4Mjkv Z2RiL25hdC9saW51eC1wdHJhY2UuYwogIH0KICAKICAvKiBTZWUgbGludXgtcHRyYWNlLmguICAq LwotQEAgLTU5Miw2ICs1OTgsMjIgQEAKK0BAIC01OTQsNiArNjAwLDIyIEBACiAgICBsaW51eF9w dHJhY2VfdGVzdF9yZXRfdG9fbnggKCk7CiAgfQogIApAQCAtODQsMTAgKzg0LDEwIEBAIEluZGV4 OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCiAgLyogRXh0cmFj dCBleHRlbmRlZCBwdHJhY2UgZXZlbnQgZnJvbSB3YWl0IHN0YXR1cy4gICovCiAgCiAgaW50Ci1J bmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL25hdC9saW51eC1wdHJhY2UuaAorSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9uYXQvbGludXgtcHRyYWNlLmgKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS45MC4yMDE2MDgyOS5vcmlnL2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAx Ni0wOC0yOSAwOTozNToyNi43OTgyMzA2NTkgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDgy OS9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCTIwMTYtMDgtMjkgMDk6MzU6NDMuMTYyMzg0MTAwICsw MjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvbmF0L2xpbnV4LXB0cmFjZS5o CTIwMTctMDItMjYgMjE6Mjc6MTQuNzgwMDA5NDQ5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAx NzAyMjYvZ2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE3LTAyLTI2IDIxOjI3OjE4LjgzODAzODE5 MyArMDEwMAogQEAgLTE4NSw2ICsxODUsNyBAQAogIGV4dGVybiBjaGFyICpsaW51eF9wdHJhY2Vf YXR0YWNoX2ZhaWxfcmVhc29uX3N0cmluZyAocHRpZF90IHB0aWQsIGludCBlcnIpOwogIApAQCAt OTYsMTEgKzk2LDExIEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvbmF0L2xpbnV4 LXB0cmFjZS5oCiAgZXh0ZXJuIHZvaWQgbGludXhfY2hlY2tfcHRyYWNlX2ZlYXR1cmVzICh2b2lk KTsKICBleHRlcm4gdm9pZCBsaW51eF9lbmFibGVfZXZlbnRfcmVwb3J0aW5nIChwaWRfdCBwaWQs IGludCBhdHRhY2hlZCk7CiAgZXh0ZXJuIHZvaWQgbGludXhfZGlzYWJsZV9ldmVudF9yZXBvcnRp bmcgKHBpZF90IHBpZCk7Ci1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2NvbmZpZ3Vy ZS5hYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9jb25maWd1cmUuYWMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDgyOS5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAx Ni0wOC0yOSAwOTozNToyNi43OTkyMzA2NjggKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDgy OS9nZGIvY29uZmlndXJlLmFjCTIwMTYtMDgtMjkgMDk6MzU6NDMuMTYzMzg0MTA5ICswMjAwCi1A QCAtMjEwOCw2ICsyMTA4LDEwIEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIv Y29uZmlndXJlLmFjCTIwMTctMDItMjYgMjE6Mjc6MTQuNzgxMDA5NDU2ICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE3LTAyLTI2IDIxOjI3OjE4Ljgz OTAzODIwMCArMDEwMAorQEAgLTIwOTIsNiArMjA5MiwxMCBAQAogIGVzYWMKICBBQ19ERUZJTkVf VU5RVU9URUQoR0RCSU5JVCwiJGdkYmluaXQiLFtUaGUgLmdkYmluaXQgZmlsZW5hbWUuXSkKICAK QEAgLTExMSwxMSArMTExLDExIEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvY29u ZmlndXJlLmFjCiAgZG5sIEhhbmRsZSBvcHRpb25hbCBmZWF0dXJlcyB0aGF0IGNhbiBiZSBlbmFi bGVkLgogIAogICMgU3VwcG9ydCBmb3IgLS13aXRoLXN5c3Jvb3QgaXMgYSBjb3B5IG9mIEdEQl9B Q19XSVRIX0RJUiwKLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvZ2Ric2VydmVyL2Nv bmZpZ3VyZS5hYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJzZXJ2ZXIvY29u ZmlndXJlLmFjCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA4Mjkub3JpZy9nZGIv Z2Ric2VydmVyL2NvbmZpZ3VyZS5hYwkyMDE2LTA4LTI5IDA5OjM1OjI2Ljc5OTIzMDY2OCArMDIw MAotKysrIGdkYi03LjExLjkwLjIwMTYwODI5L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIw MTYtMDgtMjkgMDk6MzU6NDMuMTYzMzg0MTA5ICswMjAwCi1AQCAtNDcyLDYgKzQ3MiwxMCBAQAor LS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJ MjAxNy0wMi0yNiAyMToyNzoxNC43ODEwMDk0NTYgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIyNi9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwkyMDE3LTAyLTI2IDIxOjI3OjE4LjgzOTAz ODIwMCArMDEwMAorQEAgLTQ2OSw2ICs0NjksMTAgQEAKICAgICBmaQogIGZpCiAgCkBAIC0xMjYs MTEgKzEyNiwxMSBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2dkYnNlcnZlci9j b25maWd1cmUuYWMKICBBQ19TVUJTVChHREJTRVJWRVJfREVQRklMRVMpCiAgQUNfU1VCU1QoR0RC U0VSVkVSX0xJQlMpCiAgQUNfU1VCU1Qoc3J2X3htbGJ1aWx0aW4pCi1JbmRleDogZ2RiLTcuMTEu OTAuMjAxNjA4MjkvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYworSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjI2L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMS45MC4yMDE2MDgyOS5vcmlnL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxNi0wOC0y OSAwOTozNToyNi44MDEyMzA2ODcgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIv Z2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTYtMDgtMjkgMDk6MzU6NDMuMTY1Mzg0MTI4ICswMjAw Ci1AQCAtOTMzLDYgKzkzMywyOSBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2Ri L2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE3LTAyLTI2IDIxOjI3OjE0Ljc4MzAwOTQ3MCArMDEw MAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAx Ny0wMi0yNiAyMToyNzoxOC44NDEwMzgyMTQgKzAxMDAKK0BAIC05NDYsNiArOTQ2LDI5IEBACiAg ICByZXR1cm4gbHdwOwogIH0KICAKQEAgLTE2MCw3ICsxNjAsNyBAQCBJbmRleDogZ2RiLTcuMTEu OTAuMjAxNjA4MjkvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogIC8qIFN0YXJ0IGFuIGluZmVy aW9yIHByb2Nlc3MgYW5kIHJldHVybnMgaXRzIHBpZC4KICAgICBBTExBUkdTIGlzIGEgdmVjdG9y IG9mIHByb2dyYW0tbmFtZSBhbmQgYXJncy4gKi8KICAKLUBAIC05NTYsNyArOTc5LDcgQEAKK0BA IC05NjksNyArOTkyLDcgQEAKICAgIGlmIChwaWQgPT0gMCkKICAgICAgewogICAgICAgIGNsb3Nl X21vc3RfZmRzICgpOwpAQCAtMTY5LDMxICsxNjksMTEgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIw MTYwODI5L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKICAKICAgICAgICBzZXRwZ2lkICgwLCAw KTsKICAKLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvaW5mLXB0cmFjZS5jCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTEuOTAuMjAxNjA4Mjkub3JpZy9nZGIvaW5mLXB0cmFjZS5jCTIwMTYtMDgtMjkgMDk6 MzU6MjYuODAxMjMwNjg3ICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2luZi1w dHJhY2UuYwkyMDE2LTA4LTI5IDA5OjM1OjQzLjE2NTM4NDEyOCArMDIwMAotQEAgLTc5LDcgKzc5 LDE1IEBACi0gaW5mX3B0cmFjZV9tZSAodm9pZCkKLSB7Ci0gICAvKiAiVHJhY2UgbWUsIERyLiBN ZW1vcnkhIiAgKi8KLSsgIGVycm5vID0gMDsKLSAgIHB0cmFjZSAoUFRfVFJBQ0VfTUUsIDAsIChQ VFJBQ0VfVFlQRV9BUkczKTAsIDApOwotKyAgaWYgKGVycm5vICE9IDApCi0rICAgIHsKLSsgICAg ICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIsIF8oIkNhbm5vdCBjcmVhdGUgcHJvY2Vz czogJXNcbiIpLAotKwkJCSAgc2FmZV9zdHJlcnJvciAoZXJybm8pKTsKLSsgICAgICBnZGJfZmx1 c2ggKGdkYl9zdGRlcnIpOwotKyAgICAgIF9leGl0ICgwMTc3KTsKLSsgICAgfQotIH0KLSAKLSAv KiBTdGFydCBhIG5ldyBpbmZlcmlvciBVbml4IGNoaWxkIHByb2Nlc3MuICBFWEVDX0ZJTEUgaXMg dGhlIGZpbGUgdG8KLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvbGludXgtbmF0LmMK LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDgyOS5vcmlnL2dkYi9saW51eC1uYXQu YwkyMDE2LTA4LTI5IDA5OjM1OjI2LjgwMjIzMDY5NyArMDIwMAotKysrIGdkYi03LjExLjkwLjIw MTYwODI5L2dkYi9saW51eC1uYXQuYwkyMDE2LTA4LTI5IDA5OjM1OjQzLjE2NjM4NDEzNyArMDIw MAotQEAgLTExMDIsNiArMTEwMiw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9n ZGIvbGludXgtbmF0LmMJMjAxNy0wMi0yNiAyMToyNzoxNC43ODUwMDk0ODQgKzAxMDAKKysrKyBn ZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbGludXgtbmF0LmMJMjAxNy0wMi0yNiAyMToyNzoxOC44 NDIwMzgyMjEgKzAxMDAKK0BAIC0xMTEwLDYgKzExMTAsNyBAQAogIHsKICAgIHN0cnVjdCBjbGVh bnVwICpyZXN0b3JlX3BlcnNvbmFsaXR5CiAgICAgID0gbWF5YmVfZGlzYWJsZV9hZGRyZXNzX3Nw YWNlX3JhbmRvbWl6YXRpb24gKGRpc2FibGVfcmFuZG9taXphdGlvbik7CkBAIC0yMDEsNyArMTgx LDcgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODI5L2dkYi9saW51eC1uYXQuYwogIAogICAg LyogVGhlIGZvcmtfY2hpbGQgbWVjaGFuaXNtIGlzIHN5bmNocm9ub3VzIGFuZCBjYWxscyB0YXJn ZXRfd2FpdCwgc28KICAgICAgIHdlIGhhdmUgdG8gbWFzayB0aGUgYXN5bmMgbW9kZS4gICovCi1A QCAtMTEwOSw3ICsxMTEwLDI4IEBACitAQCAtMTExNyw3ICsxMTE4LDI4IEBACiAgICAvKiBNYWtl IHN1cmUgd2UgcmVwb3J0IGFsbCBzaWduYWxzIGR1cmluZyBzdGFydHVwLiAgKi8KICAgIGxpbnV4 X25hdF9wYXNzX3NpZ25hbHMgKG9wcywgMCwgTlVMTCk7CiAgCkBAIC0yMzEsMTEgKzIxMSwxMSBA QCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2xpbnV4LW5hdC5jCiAgCiAgICBkb19j bGVhbnVwcyAocmVzdG9yZV9wZXJzb25hbGl0eSk7CiAgfQotSW5kZXg6IGdkYi03LjExLjkwLjIw MTYwODI5L2dkYi9jb25maWcuaW4KK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvY29u ZmlnLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA4Mjkub3JpZy9nZGIvY29u ZmlnLmluCTIwMTYtMDgtMjkgMDk6MzU6MjYuODAzMjMwNzA2ICswMjAwCi0rKysgZ2RiLTcuMTEu OTAuMjAxNjA4MjkvZ2RiL2NvbmZpZy5pbgkyMDE2LTA4LTI5IDA5OjM1OjQzLjE2NjM4NDEzNyAr MDIwMAotQEAgLTI2Nyw2ICsyNjcsOSBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcv Z2RiL2NvbmZpZy5pbgkyMDE3LTAyLTI2IDIxOjI3OjE0Ljc4NjAwOTQ5MSArMDEwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjI2L2dkYi9jb25maWcuaW4JMjAxNy0wMi0yNiAyMToyNzoxOC44NDIw MzgyMjEgKzAxMDAKK0BAIC0yNzAsNiArMjcwLDkgQEAKICAvKiBEZWZpbmUgaWYgbGlicnBtIGxp YnJhcnkgaXMgYmVpbmcgdXNlZC4gKi8KICAjdW5kZWYgSEFWRV9MSUJSUE0KICAKQEAgLTI0NSw3 ICsyMjUsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2NvbmZpZy5pbgogIC8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGlidW53aW5kLWlhNjQuaD4gaGVhZGVyIGZp bGUuICovCiAgI3VuZGVmIEhBVkVfTElCVU5XSU5EX0lBNjRfSAogIAotQEAgLTM5OSw2ICs0MDIs OSBAQAorQEAgLTQwMiw2ICs0MDUsOSBAQAogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSBgc2NtX25ld19zbW9iJyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TQ01fTkVXX1NNT0IK ICAKQEAgLTI1NSwxMSArMjM1LDExIEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIv Y29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRsb2NhbGUnIGZ1 bmN0aW9uLiAqLwogICN1bmRlZiBIQVZFX1NFVExPQ0FMRQogIAotSW5kZXg6IGdkYi03LjExLjkw LjIwMTYwODI5L2dkYi9jb25maWd1cmUKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIv Y29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA4Mjkub3JpZy9nZGIv Y29uZmlndXJlCTIwMTYtMDgtMjkgMDk6MzU6MjYuODA2MjMwNzM0ICswMjAwCi0rKysgZ2RiLTcu MTEuOTAuMjAxNjA4MjkvZ2RiL2NvbmZpZ3VyZQkyMDE2LTA4LTI5IDA5OjM1OjQzLjE3MDM4NDE3 NSArMDIwMAotQEAgLTE0NjQyLDYgKzE0NjQyLDY0IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAy MjYub3JpZy9nZGIvY29uZmlndXJlCTIwMTctMDItMjYgMjE6Mjc6MTQuNzkwMDA5NTE5ICswMTAw CisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2NvbmZpZ3VyZQkyMDE3LTAyLTI2IDIxOjI3 OjE4Ljg0NjAzODI0OSArMDEwMAorQEAgLTE1NDkyLDYgKzE1NDkyLDY0IEBACiAgX0FDRU9GCiAg CiAgCkBAIC0zMjQsMTEgKzMwNCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2Ri L2NvbmZpZ3VyZQogIAogICMgU3VwcG9ydCBmb3IgLS13aXRoLXN5c3Jvb3QgaXMgYSBjb3B5IG9m IEdEQl9BQ19XSVRIX0RJUiwKICAjIGV4Y2VwdCB0aGF0IHRoZSBhcmd1bWVudCB0byAtLXdpdGgt c3lzcm9vdCBpcyBvcHRpb25hbC4KLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvZ2Ri c2VydmVyL2NvbmZpZy5pbgorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJzZXJ2 ZXIvY29uZmlnLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA4Mjkub3JpZy9n ZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE2LTA4LTI5IDA5OjM1OjI2LjgwNzIzMDc0MyArMDIw MAotKysrIGdkYi03LjExLjkwLjIwMTYwODI5L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCTIwMTYt MDgtMjkgMDk6MzU6NDMuMTcwMzg0MTc1ICswMjAwCi1AQCAtMTIwLDYgKzEyMCw5IEBACistLS0g Z2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE3LTAy LTI2IDIxOjI3OjE0Ljc5MTAwOTUyNyArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dk Yi9nZGJzZXJ2ZXIvY29uZmlnLmluCTIwMTctMDItMjYgMjE6Mjc6MTguODQ2MDM4MjQ5ICswMTAw CitAQCAtMTIzLDYgKzEyMyw5IEBACiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBt Y2hlY2snIGxpYnJhcnkgKC1sbWNoZWNrKS4gKi8KICAjdW5kZWYgSEFWRV9MSUJNQ0hFQ0sKICAK QEAgLTMzOCw3ICszMTgsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2dkYnNl cnZlci9jb25maWcuaW4KICAvKiBEZWZpbmUgaWYgdGhlIHRhcmdldCBzdXBwb3J0cyBicmFuY2gg dHJhY2luZy4gKi8KICAjdW5kZWYgSEFWRV9MSU5VWF9CVFJBQ0UKICAKLUBAIC0xOTYsNiArMTk5 LDkgQEAKK0BAIC0xOTksNiArMjAyLDkgQEAKICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgYHB3cml0ZScgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfUFdSSVRFCiAgCkBAIC0zNDgs MTEgKzMyOCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2dkYnNlcnZlci9j b25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldG5zJyBmdW5jdGlv bi4gKi8KICAjdW5kZWYgSEFWRV9TRVROUwogIAotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODI5 L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2Ri L2dkYnNlcnZlci9jb25maWd1cmUKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDgy OS5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTYtMDgtMjkgMDk6MzU6MjYuODA5MjMw NzYyICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2dkYnNlcnZlci9jb25maWd1 cmUJMjAxNi0wOC0yOSAwOTozNTo0My4xNzIzODQxOTQgKzAyMDAKLUBAIC03NTYxLDYgKzc1NjEs NjQgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmln dXJlCTIwMTctMDItMjYgMjE6Mjc6MTQuNzkzMDA5NTQxICswMTAwCisrKysgZ2RiLTcuMTIuNTAu MjAxNzAyMjYvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUJMjAxNy0wMi0yNiAyMToyNzoxOC44NDgw MzgyNjMgKzAxMDAKK0BAIC04NDI5LDYgKzg0MjksNjQgQEAKICAgICBmaQogIGZpCiAgCgpkaWZm IC0tZ2l0IGEvZ2RiLWJpc29uLW9sZC5wYXRjaCBiL2dkYi1iaXNvbi1vbGQucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmYzAyMWQuLjAwMDAwMDAKLS0tIGEvZ2RiLWJpc29u LW9sZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLWJpc29uLTMuMC40LTQu ZmMyNC54ODZfNjQKLXZzLgotYmlzb24tMi43LTQuZWw3Lng4Nl82NAotCi1iaXNvbjoKLThkMGI3 Y2VmN2RmN2ZlYWQ0NGI5NTc0Y2VlMzQyZGUzMzYwMDg2MjUgdGFncy92My4wLjF+MgotICAgIHBh cnNlcnM6IHJlbmFtZSBZWV9OVUxMIGFzIFlZX05VTExQVFIgdG8gYXZvaWQgY29uZmxpY3RzIHdp dGggRmxleAotCi1hZGEtbGV4LmM6MTEzOjA6IGVycm9yOiAiWVlfTlVMTCIgcmVkZWZpbmVkIFst V2Vycm9yXQotICNkZWZpbmUgWVlfTlVMTCAwCi0KLWFkYS1leHAuYzoxNTg6MDogbm90ZTogdGhp cyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIHByZXZpb3VzIGRlZmluaXRpb24KLSAjICAgZGVmaW5l IFlZX05VTEwgbnVsbHB0cgotCi0qLWV4cC5jIGNwLW5hbWUtcGFyc2VyLmMKLXZzLgotYWRhLWxl eC5jCi0KLSMgaWZuZGVmIFlZX05VTEwKLSMgIGlmIGRlZmluZWQgX19jcGx1c3BsdXMgJiYgMjAx MTAzTCA8PSBfX2NwbHVzcGx1cwotIyAgIGRlZmluZSBZWV9OVUxMIG51bGxwdHIKLSMgIGVsc2UK LSMgICBkZWZpbmUgWVlfTlVMTCAwCi0jICBlbmRpZgotIyBlbmRpZgotCi0jIGlmbmRlZiBZWV9O VUxMUFRSCi0jICBpZiBkZWZpbmVkIF9fY3BsdXNwbHVzICYmIDIwMTEwM0wgPD0gX19jcGx1c3Bs dXMKLSMgICBkZWZpbmUgWVlfTlVMTFBUUiBudWxscHRyCi0jICBlbHNlCi0jICAgZGVmaW5lIFlZ X05VTExQVFIgMAotIyAgZW5kaWYKLSMgZW5kaWYKLQotLS0tIGdkYi1jbGVhbjcxMi9nZGIvTWFr ZWZpbGUuaW4JMjAxNi0wOC0yOSAwOToxNjoxNS41MDUzOTM5MjggKzAyMDAKLSsrKyBnZGItY2xl YW43MTIvZ2RiL01ha2VmaWxlLmluCTIwMTYtMDktMDcgMTM6MzI6MzQuNzQ0MjcwMzQ2ICswMjAw Ci1AQCAtMTkwMCw2ICsxOTQ1LDcgQEAgcG8vJChQQUNLQUdFKS5wb3Q6IGZvcmNlCi0gCSAgICAg LWUgJ3MvXChbIFx0OywoXVwpZnJlZVwoWyBcdF0qWyYoKSxdXCkvXDF4ZnJlZVwyL2cnIFwKLSAJ ICAgICAtZSAncy9cKFsgXHQ7LChdXClmcmVlJCQvXDF4ZnJlZS9nJyBcCi0gCSAgICAgLWUgJy9e I2xpbmUuKnkudGFiLmMvZCcgXAotKwkgICAgIC1lICdzL1w8WVlfTlVMTFw+L1lZX05VTExQVFIv ZycgXAotIAkgIDwgJEAudG1wID4gJEAKLSAJcm0gLWYgJEAudG1wCi0gLmwuYzoKCmRpZmYgLS1n aXQgYS9nZGItYnRyb2J1c3QucGF0Y2ggYi9nZGItYnRyb2J1c3QucGF0Y2gKaW5kZXggYjc5Nzcy My4uZGQ1NzU0MyAxMDA2NDQKLS0tIGEvZ2RiLWJ0cm9idXN0LnBhdGNoCisrKyBiL2dkYi1idHJv YnVzdC5wYXRjaApAQCAtMyw4MyArMywzMiBAQCBwcmludGVkLCBidXQgYSBkZWZhdWx0IGJhY2t0 cmFjZSB3aWxsIG9jY3VyIGluIHRoaXMgY2FzZS4KIAogLS0KIAotSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMjYvZ2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9weXRob24vcHktZnJhbWVmaWx0ZXIuYwkyMDE1LTA1 LTMxIDE3OjM2OjM0LjY4MTk1MjUzMCArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCTIwMTUtMDUtMzEgMTc6NTU6MDEuODg0Nzg4MDMxICsw MjAwCi1AQCAtMTUyMyw2ICsxNTIzLDcgQEAgZ2RicHlfYXBwbHlfZnJhbWVfZmlsdGVyIChjb25z dCBzdHJ1Y3QgZQotICAgUHlPYmplY3QgKml0ZXJhYmxlOwotICAgUHlPYmplY3QgKml0ZW07Ci0g ICBodGFiX3QgbGV2ZWxzX3ByaW50ZWQ7Ci0rICBpbnQgY291bnRfcHJpbnRlZCA9IDA7Ci0gCi0g ICBpZiAoIWdkYl9weXRob25faW5pdGlhbGl6ZWQpCi0gICAgIHJldHVybiBFWFRfTEFOR19CVF9O T19GSUxURVJTOwotQEAgLTE1NDMsMjQgKzE1NDQsNyBAQCBnZGJweV9hcHBseV9mcmFtZV9maWx0 ZXIgKGNvbnN0IHN0cnVjdCBlCi0gICBpdGVyYWJsZSA9IGJvb3RzdHJhcF9weXRob25fZnJhbWVf ZmlsdGVycyAoZnJhbWUsIGZyYW1lX2xvdywgZnJhbWVfaGlnaCk7Ci0gCi0gICBpZiAoaXRlcmFi bGUgPT0gTlVMTCkKLS0gICAgewotLSAgICAgIC8qIE5vcm1hbGx5IGlmIHRoZXJlIGlzIGFuIGVy cm9yIEdEQiBwcmludHMgdGhlIGV4Y2VwdGlvbiwKLS0JIGFiYW5kb25zIHRoZSBiYWNrdHJhY2Ug YW5kIGV4aXRzLiAgVGhlIHVzZXIgY2FuIHRoZW4gY2FsbCAiYnQKLS0JIG5vLWZpbHRlcnMiLCBh bmQgZ2V0IGEgZGVmYXVsdCBiYWNrdHJhY2UgKGl0IHdvdWxkIGJlCi0tCSBjb25mdXNpbmcgdG8g YXV0b21hdGljYWxseSBzdGFydCBhIHN0YW5kYXJkIGJhY2t0cmFjZSBoYWxmd2F5Ci0tCSB0aHJv dWdoIGEgUHl0aG9uIGZpbHRlcmVkIGJhY2t0cmFjZSkuICBIb3dldmVyIGluIHRoZSBjYXNlCi0t CSB3aGVyZSBHREIgY2Fubm90IGluaXRpYWxpemUgdGhlIGZyYW1lIGZpbHRlcnMgKG1vc3QgbGlr ZWx5Ci0tCSBkdWUgdG8gaW5jb3JyZWN0IGF1dG8tbG9hZCBwYXRocyksIEdEQiBoYXMgcHJpbnRl ZCBub3RoaW5nLgotLQkgSW4gdGhpcyBjYXNlIGl0IGlzIE9LIHRvIHByaW50IHRoZSBkZWZhdWx0 IGJhY2t0cmFjZSBhZnRlcgotLQkgcHJpbnRpbmcgdGhlIGVycm9yIG1lc3NhZ2UuICBHREIgcmV0 dXJucyBFWFRfTEFOR19CVF9OT19GSUxURVJTCi0tCSBoZXJlIHRvIHNpZ25pZnkgdGhlcmUgYXJl IG5vIGZpbHRlcnMgYWZ0ZXIgcHJpbnRpbmcgdGhlCi0tCSBpbml0aWFsaXphdGlvbiBlcnJvci4g IFRoaXMgcmV0dXJuIGNvZGUgd2lsbCB0cmlnZ2VyIGEKLS0JIGRlZmF1bHQgYmFja3RyYWNlLiAg Ki8KLS0KLS0gICAgICBnZGJweV9wcmludF9zdGFjayAoKTsKLS0gICAgICBkb19jbGVhbnVwcyAo Y2xlYW51cHMpOwotLSAgICAgIHJldHVybiBFWFRfTEFOR19CVF9OT19GSUxURVJTOwotLSAgICB9 Ci0rICAgIGdvdG8gZXJyb3Jfbm90aGluZ19wcmludGVkOworLS0tIGdkYi03LjEyLjUwLjIwMTcw MjI2Lm9yaWcvZ2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCTIwMTctMDItMjYgMjE6MzM6MjMu MTUwNjE4NzA4ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3B5dGhvbi9weS1m cmFtZWZpbHRlci5jCTIwMTctMDItMjYgMjE6MzM6MjkuOTkzNjY3MTc5ICswMTAwCitAQCAtMTM4 OCw2ICsxMzg4LDcgQEAKKyAJCQkJICAgICAgIGh0YWJfZXFfcG9pbnRlciwKKyAJCQkJICAgICAg IE5VTEwpKTsKICAKLSAgIC8qIElmIGl0ZXJhYmxlIGlzIE5vbmUsIHRoZW4gdGhlcmUgYXJlIG5v IGZyYW1lIGZpbHRlcnMgcmVnaXN0ZXJlZC4KLSAgICAgIElmIHRoaXMgaXMgdGhlIGNhc2UsIGRl ZmVyIHRvIGRlZmF1bHQgR0RCIHByaW50aW5nIHJvdXRpbmVzIGluIE1JCi1AQCAtMTU5MSwxNSAr MTU3NSw0MCBAQCBnZGJweV9hcHBseV9mcmFtZV9maWx0ZXIgKGNvbnN0IHN0cnVjdCBlCisrICBp bnQgY291bnRfcHJpbnRlZCA9IDA7CisgICB3aGlsZSAodHJ1ZSkKKyAgICAgeworICAgICAgIGdk YnB5X3JlZjw+IGl0ZW0gKFB5SXRlcl9OZXh0IChpdGVyYWJsZS5nZXQgKCkpKTsKK0BAIC0xMzk3 LDcgKzEzOTgsNyBAQAorIAkgIGlmIChQeUVycl9PY2N1cnJlZCAoKSkKKyAJICAgIHsKKyAJICAg ICAgZ2RicHlfcHJpbnRfc3RhY2sgKCk7CistCSAgICAgIHJldHVybiBFWFRfTEFOR19CVF9FUlJP UjsKKysJICAgICAgcmV0dXJuIGNvdW50X3ByaW50ZWQgPiAwID8gRVhUX0xBTkdfQlRfRVJST1Ig OiBFWFRfTEFOR19CVF9OT19GSUxURVJTOworIAkgICAgfQorIAkgIGJyZWFrOworIAl9CitAQCAt MTQwOSw2ICsxNDEwLDcgQEAKICAJIGVycm9yIGFuZCBjb250aW51ZSB3aXRoIG90aGVyIGZyYW1l cy4gICovCiAgICAgICAgaWYgKHN1Y2Nlc3MgPT0gRVhUX0xBTkdfQlRfRVJST1IpCiAgCWdkYnB5 X3ByaW50X3N0YWNrICgpOwotKwogKyAgICAgIGNvdW50X3ByaW50ZWQrKzsKICAgICAgfQogIAot ICAgaWYgKGl0ZW0gPT0gTlVMTCAmJiBQeUVycl9PY2N1cnJlZCAoKSkKLS0gICAgZ290byBlcnJv cjsKLSsgICAgewotKyAgICAgIGlmIChjb3VudF9wcmludGVkID4gMCkKLSsJZ290byBlcnJvcjsK LSsgICAgICBlbHNlCi0rCWdvdG8gZXJyb3Jfbm90aGluZ19wcmludGVkOwotKyAgICB9Ci0gCi0g IGRvbmU6Ci0gICBkb19jbGVhbnVwcyAoY2xlYW51cHMpOwogICAgcmV0dXJuIHN1Y2Nlc3M7Ci0g Ci0rICAvKiBOb3JtYWxseSBpZiB0aGVyZSBpcyBhbiBlcnJvciBHREIgcHJpbnRzIHRoZSBleGNl cHRpb24sCi0rICAgICBhYmFuZG9ucyB0aGUgYmFja3RyYWNlIGFuZCBleGl0cy4gIFRoZSB1c2Vy IGNhbiB0aGVuIGNhbGwgImJ0Ci0rICAgICBuby1maWx0ZXJzIiwgYW5kIGdldCBhIGRlZmF1bHQg YmFja3RyYWNlIChpdCB3b3VsZCBiZQotKyAgICAgY29uZnVzaW5nIHRvIGF1dG9tYXRpY2FsbHkg c3RhcnQgYSBzdGFuZGFyZCBiYWNrdHJhY2UgaGFsZndheQotKyAgICAgdGhyb3VnaCBhIFB5dGhv biBmaWx0ZXJlZCBiYWNrdHJhY2UpLiAgSG93ZXZlciBpbiB0aGUgY2FzZQotKyAgICAgd2hlcmUg R0RCIGNhbm5vdCBpbml0aWFsaXplIHRoZSBmcmFtZSBmaWx0ZXJzIChtb3N0IGxpa2VseQotKyAg ICAgZHVlIHRvIGluY29ycmVjdCBhdXRvLWxvYWQgcGF0aHMpLCBHREIgaGFzIHByaW50ZWQgbm90 aGluZy4KLSsgICAgIEluIHRoaXMgY2FzZSBpdCBpcyBPSyB0byBwcmludCB0aGUgZGVmYXVsdCBi YWNrdHJhY2UgYWZ0ZXIKLSsgICAgIHByaW50aW5nIHRoZSBlcnJvciBtZXNzYWdlLiAgR0RCIHJl dHVybnMgRVhUX0xBTkdfQlRfTk9fRklMVEVSUwotKyAgICAgaGVyZSB0byBzaWduaWZ5IHRoZXJl IGFyZSBubyBmaWx0ZXJzIGFmdGVyIHByaW50aW5nIHRoZQotKyAgICAgaW5pdGlhbGl6YXRpb24g ZXJyb3IuICBUaGlzIHJldHVybiBjb2RlIHdpbGwgdHJpZ2dlciBhCi0rICAgICBkZWZhdWx0IGJh Y2t0cmFjZS4gICovCi0rCi0rIGVycm9yX25vdGhpbmdfcHJpbnRlZDoKLSsgIGdkYnB5X3ByaW50 X3N0YWNrICgpOwotKyAgZG9fY2xlYW51cHMgKGNsZWFudXBzKTsKLSsgIHJldHVybiBFWFRfTEFO R19CVF9OT19GSUxURVJTOwotKwotICAgLyogRXhpdCBhbmQgYWJhbmRvbiBiYWNrdHJhY2Ugb24g ZXJyb3IsIHByaW50aW5nIHRoZSBleGNlcHRpb24gdGhhdAotICAgICAgaXMgc2V0LiAgKi8KLSAg ZXJyb3I6CgpkaWZmIC0tZ2l0IGEvZ2RiLWR0cy1yaGVsNi1weXRob24tY29tcGF0LnBhdGNoIGIv Z2RiLWR0cy1yaGVsNi1weXRob24tY29tcGF0LnBhdGNoCmluZGV4IGNiYTFhNWIuLjhhZGY3ZjQg MTAwNjQ0Ci0tLSBhL2dkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRjaAorKysgYi9nZGIt ZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2gKQEAgLTEsMzAgKzEsMzAgQEAKIGh0dHBzOi8v YnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTAyMDAwNAogCi1JbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZGF0YS1kaXJlY3Rvcnkv TWFrZWZpbGUuaW4JMjAxNi0wNy0wMyAxNjozMjoxMy43ODgxNjQwNDEgKzAyMDAKLSsrKyBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAxNi0wNy0w MyAxNjozMjoxNy44NjgxOTg4NTAgKzAyMDAKLUBAIC02MSw2ICs2MSw4IEBACi0gCWdkYi9mcmFt ZXMucHkgXAotIAlnZGIvRnJhbWVJdGVyYXRvci5weSBcCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAy MDcub3JpZy9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAxNy0wMi0yNiAyMToxMDoz MS40MTg4OTQ5NzUgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZGF0YS1kaXJl Y3RvcnkvTWFrZWZpbGUuaW4JMjAxNy0wMi0yNiAyMToxMTowNy4wODMxNDc5MzAgKzAxMDAKK0BA IC03MSw2ICs3MSw4IEBACisgCWdkYi9fX2luaXRfXy5weSBcCiAgCWdkYi9GcmFtZURlY29yYXRv ci5weSBcCisgCWdkYi9GcmFtZUl0ZXJhdG9yLnB5IFwKICsJZ2RiL0ZyYW1lV3JhcHBlci5weSBc CiArCWdkYi9iYWNrdHJhY2UucHkgXAotIAlnZGIvdHlwZXMucHkgXAorIAlnZGIvZnJhbWVzLnB5 IFwKICAJZ2RiL3ByaW50aW5nLnB5IFwKLSAJZ2RiL3Vud2luZGVyLnB5IFwKLUBAIC03Nyw2ICs3 OSw3IEBACi0gCWdkYi9jb21tYW5kL3ByZXR0eV9wcmludGVycy5weSBcCi0gCWdkYi9jb21tYW5k L3Byb21wdC5weSBcCisgCWdkYi9wcm9tcHQucHkgXAorQEAgLTgzLDYgKzg1LDcgQEAKKyAJZ2Ri L2NvbW1hbmQvcGFob2xlLnB5IFwKKyAJZ2RiL2NvbW1hbmQveG1ldGhvZHMucHkgXAogIAlnZGIv Y29tbWFuZC9leHBsb3JlLnB5IFwKICsJZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5IFwKLSAJZ2Ri L2Z1bmN0aW9uL19faW5pdF9fLnB5IFwKLSAJZ2RiL2Z1bmN0aW9uL2FzX3N0cmluZy5weSBcCi0g CWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkgXAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkKKyAJZ2RiL2NvbW1hbmQvZnJhbWVf ZmlsdGVycy5weSBcCisgCWdkYi9jb21tYW5kL3ByZXR0eV9wcmludGVycy5weSBcCisgCWdkYi9j b21tYW5kL3Byb21wdC5weSBcCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3B5dGhv bi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkJMjAxNi0wNy0wMyAxNjozMjoxNy44 NjkxOTg4NTkgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcHl0aG9uL2xpYi9n ZGIvRnJhbWVXcmFwcGVyLnB5CTIwMTctMDItMjYgMjE6MTA6MzEuNDE5ODk0OTgzICswMTAwCiBA QCAtMCwwICsxLDEyMiBAQAogKyMgV3JhcHBlciBBUEkgZm9yIGZyYW1lcy4KICsKQEAgLTYyLDcg KzYyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vbGliL2dkYi9G cmFtZVdyYXBwZXIucHkKICsgICAgICAgICAgICBpZiB2YWwgIT0gTm9uZToKICsgICAgICAgICAg ICAgICAgdmFsID0gc3RyICh2YWwpCiArICAgICAgICAjIEZJWE1FOiB3b3VsZCBiZSBuaWNlIHRv IGhhdmUgYSBtb3JlIHByZWNpc2UgZXhjZXB0aW9uIGhlcmUuCi0rICAgICAgICBleGNlcHQgUnVu dGltZUVycm9yLCB0ZXh0OgorKyAgICAgICAgZXhjZXB0IFJ1bnRpbWVFcnJvciBhcyB0ZXh0Ogog KyAgICAgICAgICAgIHZhbCA9IHRleHQKICsgICAgICAgIGlmIHZhbCA9PSBOb25lOgogKyAgICAg ICAgICAgIHN0cmVhbS53cml0ZSAoIj8/PyIpCkBAIC0xNDgsMTAgKzE0OCwxMCBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weQog KwogKyAgICBkZWYgX19nZXRhdHRyX18gKHNlbGYsIG5hbWUpOgogKyAgICAgICAgcmV0dXJuIGdl dGF0dHIgKHNlbGYuZnJhbWUsIG5hbWUpCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5weQorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CTIwMTYtMDctMDMgMTY6MzI6 MTcuODY5MTk4ODU5ICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3B5dGhvbi9s aWIvZ2RiL2JhY2t0cmFjZS5weQkyMDE3LTAyLTI2IDIxOjEwOjMxLjQxOTg5NDk4MyArMDEwMAog QEAgLTAsMCArMSw0MiBAQAogKyMgRmlsdGVyaW5nIGJhY2t0cmFjZS4KICsKQEAgLTE5NSwxMCAr MTk1LDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIv YmFja3RyYWNlLnB5CiArICAgICAgICByZXR1cm4gaXRlcgogKyAgICByZXR1cm4gb2xkX2ZyYW1l X2ZpbHRlciAoaXRlcikKICsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9u L2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIw Ny9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJ MjAxNi0wNy0wMyAxNjozMjoxNy44NjkxOTg4NTkgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJMjAxNy0wMi0yNiAy MToxMDozMS40MTk4OTQ5ODMgKzAxMDAKIEBAIC0wLDAgKzEsMTA2IEBACiArIyBOZXcgYmFja3Ry YWNlIGNvbW1hbmQuCiArCgpkaWZmIC0tZ2l0IGEvZ2RiLXB5dGhvbi1naWwucGF0Y2ggYi9nZGIt cHl0aG9uLWdpbC5wYXRjaAppbmRleCA1YTRjYjBmLi5lMDdmMjY2IDEwMDY0NAotLS0gYS9nZGIt cHl0aG9uLWdpbC5wYXRjaAorKysgYi9nZGItcHl0aG9uLWdpbC5wYXRjaApAQCAtMSw3ICsxLDcg QEAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZG9jL3B5dGhvbi50ZXhpCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2RvYy9weXRob24udGV4aQogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2RvYy9weXRob24udGV4aQkyMDE2LTA3 LTAzIDE2OjMwOjM3LjAwOTMzODM1OCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9kb2MvcHl0aG9uLnRleGkJMjAxNi0wNy0wMyAxNjozMDo0Mi44MTIzODc4NjcgKzAyMDAKKy0t LSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9kb2MvcHl0aG9uLnRleGkJMjAxNy0wMi0y NiAyMTowMzo1Ni40MTQxNjE4ODAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIv ZG9jL3B5dGhvbi50ZXhpCTIwMTctMDItMjYgMjE6MDM6NTcuNDQ4MTY5MDMzICswMTAwCiBAQCAt MjI5LDYgKzIyOSwxNCBAQAogIHJldHVybiB2YWx1ZSBpcyBAY29kZXtOb25lfS4gIElmIEB2YXJ7 dG9fc3RyaW5nfSBpcyBAY29kZXtUcnVlfSwgdGhlCiAgQHZhbHVle0dEQk59IHZpcnR1YWwgdGVy bWluYWwgd2lsbCBiZSB0ZW1wb3JhcmlseSBzZXQgdG8gdW5saW1pdGVkIHdpZHRoCkBAIC0xNywx MCArMTcsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvcHl0aG9uLnRl eGkKICBAZW5kIGRlZnVuCiAgCiAgQGZpbmRleCBnZGIuYnJlYWtwb2ludHMKLUluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3B5dGhvbi9weXRob24taW50ZXJu YWwuaAkyMDE2LTA3LTAzIDE2OjMwOjM3LjAxMDMzODM2NiArMDIwMAotKysrIGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNi0wNy0wMyAxNjozMDo0 Mi44MTIzODc4NjcgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9weXRo b24vcHl0aG9uLWludGVybmFsLmgJMjAxNy0wMi0yNiAyMTowMzo1Ni40MTUxNjE4ODcgKzAxMDAK KysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIw MTctMDItMjYgMjE6MDM6NTcuNDQ4MTY5MDMzICswMTAwCiBAQCAtMTQwLDYgKzE0MCw4IEBACiAg I2RlZmluZSBQeUdJTFN0YXRlX1JlbGVhc2UoQVJHKSAoKHZvaWQpKEFSRykpCiAgI2RlZmluZSBQ eUV2YWxfSW5pdFRocmVhZHMoKQpAQCAtMzAsMjEgKzMwLDE5IEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiAgI2RlZmluZSBQeUV2YWxf UmVsZWFzZUxvY2soKQogICNlbmRpZgogIAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9weXRob24vcHl0aG9uLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcHl0aG9u L3B5dGhvbi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIv cHl0aG9uL3B5dGhvbi5jCTIwMTYtMDctMDMgMTY6MzA6MzcuMDExMzM4Mzc1ICswMjAwCi0rKysg Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weXRob24uYwkyMDE2LTA3LTAzIDE2OjMx OjE2LjMyNDY3Mzc4MyArMDIwMAotQEAgLTYxOSwxMyArNjE5LDE4IEBACistLS0gZ2RiLTcuMTIu NTAuMjAxNzAyMDcub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi5jCTIwMTctMDItMjYgMjE6MDM6NTYu NDE2MTYxODk0ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3B5dGhvbi9weXRo b24uYwkyMDE3LTAyLTI2IDIxOjA5OjIzLjI1MjQyMzA5NSArMDEwMAorQEAgLTU5NSwxMiArNTk1 LDE2IEBACiAgewogICAgY29uc3QgY2hhciAqYXJnOwogICAgUHlPYmplY3QgKmZyb21fdHR5X29i aiA9IE5VTEwsICp0b19zdHJpbmdfb2JqID0gTlVMTDsKIC0gIGludCBmcm9tX3R0eSwgdG9fc3Ry aW5nOwogLSAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7ImNvbW1hbmQiLCAiZnJvbV90dHki LCAidG9fc3RyaW5nIiwgTlVMTCB9OwotKyAgUHlPYmplY3QgKnJlbGVhc2VfZ2lsX29iaiA9IE5V TEw7CiArICBpbnQgZnJvbV90dHksIHRvX3N0cmluZywgcmVsZWFzZV9naWw7Ci0rICBzdGF0aWMg Y2hhciAqa2V5d29yZHNbXSA9IHsiY29tbWFuZCIsICJmcm9tX3R0eSIsICJ0b19zdHJpbmciLAot KwkJCSAgICAgInJlbGVhc2VfZ2lsIiwgTlVMTCB9OwotICAgY2hhciAqcmVzdWx0ID0gTlVMTDsK KysgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJjb21tYW5kIiwgImZyb21fdHR5IiwgInRv X3N0cmluZyIsICJyZWxlYXNlX2dpbCIsIE5VTEwgfTsKKysgIFB5T2JqZWN0ICpyZWxlYXNlX2dp bF9vYmogPSBOVUxMOwogKyAgLyogSW5pdGlhbGl6ZSBpdCBqdXN0IHRvIGF2b2lkIGEgR0NDIGZh bHNlIHdhcm5pbmcuICAqLwogKyAgUHlUaHJlYWRTdGF0ZSAqc3RhdGUgPSBOVUxMOwogIApAQCAt NTcsNyArNTUsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weXRo b24uYwogICAgICByZXR1cm4gTlVMTDsKICAKICAgIGZyb21fdHR5ID0gMDsKLUBAIC02NDYsNiAr NjUxLDE1IEBACitAQCAtNjIxLDYgKzYyNSwxNSBAQAogICAgICAgIHRvX3N0cmluZyA9IGNtcDsK ICAgICAgfQogIApAQCAtNzAsMTEgKzY4LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvcHl0aG9uL3B5dGhvbi5jCiArICAgICAgcmVsZWFzZV9naWwgPSBjbXA7CiArICAgIH0K ICsKKyAgIHN0ZDo6c3RyaW5nIHRvX3N0cmluZ19yZXM7CisgCiAgICBUUlkKLSAgICAgewotICAg ICAgIC8qIENvcHkgdGhlIGFyZ3VtZW50IHRleHQgaW4gY2FzZSB0aGUgY29tbWFuZCBtb2RpZmll cyBpdC4gICovCi1AQCAtNjUzLDYgKzY2NywxMyBAQAotICAgICAgIHN0cnVjdCBjbGVhbnVwICpj bGVhbnVwID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgY29weSk7CitAQCAtNjI5LDYgKzY0MiwxMyBA QAorICAgICAgIHN0ZDo6c3RyaW5nIGNvcHkgKGFyZyk7CiAgICAgICAgc3RydWN0IGludGVycCAq aW50ZXJwOwogIAogKyAgICAgIC8qIEluIHRoZSBjYXNlIG9mIGxvbmcgcnVubmluZyBHREIgY29t bWFuZHMsIGFsbG93IHRoZSB1c2VyIHRvCkBAIC04NCwxOCArODIsMTcgQEAgSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHl0aG9uLmMKICsgICAgICBpZiAocmVsZWFzZV9n aWwpCiArCXN0YXRlID0gUHlFdmFsX1NhdmVUaHJlYWQoKTsKICsKLSAgICAgICBtYWtlX2NsZWFu dXBfcmVzdG9yZV9pbnRlZ2VyICgmY3VycmVudF91aS0+YXN5bmMpOwotICAgICAgIGN1cnJlbnRf dWktPmFzeW5jID0gMDsKLSAKLUBAIC02NzEsMTEgKzY5MiwyMyBAQAotIAkgIGV4ZWN1dGVfY29t bWFuZCAoY29weSwgZnJvbV90dHkpOwotIAl9CisgICAgICAgc2NvcGVkX3Jlc3RvcmUgc2F2ZV9h c3luYyA9IG1ha2Vfc2NvcGVkX3Jlc3RvcmUgKCZjdXJyZW50X3VpLT5hc3luYywgMCk7CiAgCisg ICAgICAgc2NvcGVkX3Jlc3RvcmUgc2F2ZV91aW91dCA9IG1ha2Vfc2NvcGVkX3Jlc3RvcmUgKCZj dXJyZW50X3Vpb3V0KTsKK0BAIC02NDMsMTAgKzY2MywyMiBAQAorIAl0b19zdHJpbmdfcmVzID0g ZXhlY3V0ZV9jb21tYW5kX3RvX3N0cmluZyAoJmNvcHlbMF0sIGZyb21fdHR5KTsKKyAgICAgICBl bHNlCisgCWV4ZWN1dGVfY29tbWFuZCAoJmNvcHlbMF0sIGZyb21fdHR5KTsKKysKICsgICAgICAv KiBSZWFjcXVpcmUgdGhlIEdJTCBpZiBpdCB3YXMgcmVsZWFzZWQgZWFybGllci4gICovCiArICAg ICAgaWYgKHJlbGVhc2VfZ2lsKQogKwlQeUV2YWxfUmVzdG9yZVRocmVhZCAoc3RhdGUpOwotKwot ICAgICAgIGRvX2NsZWFudXBzIChjbGVhbnVwKTsKICAgICAgfQogICAgQ0FUQ0ggKGV4Y2VwdCwg UkVUVVJOX01BU0tfQUxMKQogICAgICB7CkBAIC0xMTIsOCArMTA5LDEwIEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAgICAgIH0KICAgIEVORF9DQVRD SAogIAotLS0tIC9kZXYvbnVsbAkyMDE2LTA5LTEyIDIxOjM3OjA1LjMzMjY5MzkyNyArMDIwMAot KysrIGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwt bXRocmVhZC5jCTIwMTYtMDktMTIgMjE6NTE6NTMuNzUwMzE3MTg3ICswMjAwCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFk LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktZ2lsLW10aHJlYWQuYwkyMDE3LTAyLTI2IDIxOjAzOjU3LjQ1MDE2OTA0NyArMDEwMAog QEAgLTAsMCArMSwxMyBAQAogKyNpbmNsdWRlIDxzdGRpby5oPgogKyNpbmNsdWRlIDx1bmlzdGQu aD4KQEAgLTEyOCw4ICsxMjcsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9w eXRob24vcHl0aG9uLmMKICsgICAgICBwcmludGYgKCJTbGVlcGluZyAlZFxuIiwgaSk7CiArICAg IH0KICt9Ci0tLS0gL2Rldi9udWxsCTIwMTYtMDktMTIgMjE6Mzc6MDUuMzMyNjkzOTI3ICswMjAw Ci0rKysgZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdp bC1tdGhyZWFkLmV4cAkyMDE2LTA5LTEyIDIxOjUyOjM4LjYwNTc1MDM2MCArMDIwMAorSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRo cmVhZC5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktZ2lsLW10aHJlYWQuZXhwCTIwMTctMDItMjYgMjE6MDM6NTcuNDUwMTY5MDQ3 ICswMTAwCiBAQCAtMCwwICsxLDY5IEBACiArIyBDb3B5cmlnaHQgKEMpIDIwMTQgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMDAsOCArMjAxLDEwIEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL3B5dGhvbi5jCiArCX0KICsgICAgfQogK30KLS0t LSAvZGV2L251bGwJMjAxNi0wOS0xMiAyMTozNzowNS4zMzI2OTM5MjcgKzAyMDAKLSsrKyBnZGIt Ny4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQu cHkJMjAxNi0wOS0xMiAyMTo1OTowMi42Njg0NTkyODYgKzAyMDAKK0luZGV4OiBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQucHkKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt Z2lsLW10aHJlYWQucHkJMjAxNy0wMi0yNiAyMTowMzo1Ny40NTAxNjkwNDcgKzAxMDAKIEBAIC0w LDAgKzEsMjggQEAKICt0cnk6CiArICAgaW1wb3J0IHRocmVhZAoKZGlmZiAtLWdpdCBhL2dkYi1y aGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBv ZjI1LnBhdGNoCmluZGV4IGIzN2M1YjkuLjhkMTUyMjcgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2Yy NS5wYXRjaApAQCAtNDYzLDExICs0NjMsMTEgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gK IENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0 dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBvcy1tYWluLnBhdGNoCiAKLUluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dk Yi9hZGEtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvYWRhLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1MzUxMDExNyArMDIwMAotKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI3 NTMwMDI4ICswMjAwCi1AQCAtNzUsNyArNzUsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2 Lm9yaWcvZ2RiL2FkYS1sYW5nLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAK KysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYWRhLWxhbmcuYwkyMDE3LTAyLTI2IDIyOjA0 OjAzLjQxNTYwOTc3NCArMDEwMAorQEAgLTc2LDcgKzc2LDcgQEAKICAKICBzdGF0aWMgc3RydWN0 IHZhbHVlICpkZXNjX2JvdW5kcyAoc3RydWN0IHZhbHVlICopOwogIApAQCAtNDc2LDcgKzQ3Niw3 IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogIAogIHN0YXRp YyBpbnQgZmF0X3BudHJfYm91bmRzX2JpdHNpemUgKHN0cnVjdCB0eXBlICopOwogIAotQEAgLTgz LDEzICs4MywxMyBAQAorQEAgLTg0LDEzICs4NCwxMyBAQAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFs dWUgKmRlc2NfZGF0YSAoc3RydWN0IHZhbHVlICopOwogIApAQCAtNDkyLDcgKzQ5Miw3IEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogIAogIHN0YXRpYyBpbnQg ZGVzY19ib3VuZF9iaXRzaXplIChzdHJ1Y3QgdHlwZSAqLCBpbnQsIGludCk7CiAgCi1AQCAtMTcy LDcgKzE3Miw3IEBACitAQCAtMTczLDcgKzE3Myw3IEBACiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1 ZSAqdW53cmFwX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC01MDEsNyArNTAxLDcgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIHN0 cnVjdCB0eXBlICpkZWNvZGVfY29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0cnVjdCB0 eXBlICopOwogIAotQEAgLTE4Nyw3ICsxODcsOCBAQAorQEAgLTE4OCw3ICsxODgsOCBAQAogIHN0 YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N1YnNjcmlwdF9wYWNrZWQgKHN0cnVjdCB2YWx1ZSAq LCBpbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHZhbHVlICoqKTsKICAKQEAgLTUxMSw3ICs1MTEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICpjb2VyY2Vf dW5zcGVjX3ZhbF90b190eXBlIChzdHJ1Y3QgdmFsdWUgKiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqKTsKLUBAIC0yMTUsMTQg KzIxNiwxNCBAQAorQEAgLTIxNiwxNCArMjE3LDE0IEBACiAgc3RhdGljIHN0cnVjdCBzeW1ib2wg KnN0YW5kYXJkX2xvb2t1cCAoY29uc3QgY2hhciAqLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW5fZW51bSk7CiAgCkBA IC01MzAsNyArNTMwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFu Zy5jCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqYWRhX3RvX2ZpeGVkX3ZhbHVlX2NyZWF0ZSAo c3RydWN0IHR5cGUgKiwgQ09SRV9BRERSLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2YWx1ZSAqKTsKLUBAIC0yMzYsNyArMjM3LDcgQEAK K0BAIC0yMzcsNyArMjM4LDcgQEAKICBzdGF0aWMgdm9pZCBhZGFfbGFuZ3VhZ2VfYXJjaF9pbmZv IChzdHJ1Y3QgZ2RiYXJjaCAqLAogIAkJCQkgICAgc3RydWN0IGxhbmd1YWdlX2FyY2hfaW5mbyAq KTsKICAKQEAgLTUzOSw3ICs1MzksNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2FkYS1sYW5nLmMKICAJCQkJCSAgICAgc3RydWN0IHR5cGUgKik7CiAgCiAgc3RhdGljIHN0cnVj dCB2YWx1ZSAqYXNzaWduX2FnZ3JlZ2F0ZSAoc3RydWN0IHZhbHVlICosIHN0cnVjdCB2YWx1ZSAq LCAKLUBAIC03MDAsNyArNzAxLDcgQEAKK0BAIC03MDEsNyArNzAyLDcgQEAKICB9CiAgCiAgc3Rh dGljIGNvbnN0IGdkYl9ieXRlICoKQEAgLTU0OCw3ICs1NDgsNyBAQCBJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICBpZiAodmFsYWRkciA9PSBOVUxMKQog ICAgICByZXR1cm4gTlVMTDsKLUBAIC03MDksNyArNzEwLDcgQEAKK0BAIC03MTAsNyArNzExLDcg QEAKICB9CiAgCiAgc3RhdGljIENPUkVfQUREUgpAQCAtNTU3LDcgKzU1Nyw3IEBAIEluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogIHsKICAgIGlmIChhZGRyZXNzID09 IDApCiAgICAgIHJldHVybiAwOwotQEAgLTE3NTYsNyArMTc1Nyw3IEBACitAQCAtMTc1Nyw3ICsx NzU4LDcgQEAKICAvKiBJZiBUWVBFIGlzIHRoZSB0eXBlIG9mIGFuIGFycmF5LWRlc2NyaXB0b3Ig KGZhdCBwb2ludGVyKSwgIHRoZSBiaXQKICAgICBwb3NpdGlvbiBvZiB0aGUgZmllbGQgY29udGFp bmluZyB0aGUgYWRkcmVzcyBvZiB0aGUgYm91bmRzIGRhdGEuICAqLwogIApAQCAtNTY2LDcgKzU2 Niw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogIGZhdF9w bnRyX2JvdW5kc19iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIHJldHVybiBUWVBF X0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAxKTsKLUBAIC0xODIyLDcgKzE4 MjMsNyBAQAorQEAgLTE4MjMsNyArMTgyNCw3IEBACiAgLyogSWYgVFlQRSBpcyB0aGUgdHlwZSBv ZiBhbiBhcnJheS1kZXNjcmlwdG9yIChmYXQgcG9pbnRlciksIHRoZSBiaXQKICAgICBwb3NpdGlv biBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0aGUgYWRkcmVzcyBvZiB0aGUgZGF0YS4gICovCiAg CkBAIC01NzUsNyArNTc1LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEt bGFuZy5jCiAgZmF0X3BudHJfZGF0YV9iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAg IHJldHVybiBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAwKTsKLUBA IC0xODU3LDcgKzE4NTgsNyBAQAorQEAgLTE4NTgsNyArMTg1OSw3IEBACiAgICAgb2YgdGhlIEl0 aCBsb3dlciBib3VuZCBzdG9yZWQgaW4gaXQsIGlmIFdISUNIIGlzIDAsIGFuZCB0aGUgSXRoIHVw cGVyCiAgICAgYm91bmQsIGlmIFdISUNIIGlzIDEuICBUaGUgZmlyc3QgYm91bmQgaXMgST0xLiAg Ki8KICAKQEAgLTU4NCw3ICs1ODQsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2FkYS1sYW5nLmMKICBkZXNjX2JvdW5kX2JpdHBvcyAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBp LCBpbnQgd2hpY2gpCiAgewogICAgcmV0dXJuIFRZUEVfRklFTERfQklUUE9TIChkZXNjX2Jhc2Vf dHlwZSAodHlwZSksIDIgKiBpICsgd2hpY2ggLSAyKTsKLUBAIC0yMDQ3LDcgKzIwNDgsNyBAQAor QEAgLTIwNDgsNyArMjA0OSw3IEBACiAgCSAgICAgICAgIHplcm8sIGFuZCBkb2VzIG5vdCBuZWVk IHRvIGJlIHJlY29tcHV0ZWQuICAqLwogIAkgICAgICBpZiAobG8gPCBoaSkKICAJCXsKQEAgLTU5 Myw3ICs1OTMsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMK ICAJCSAgICAgICAgKGhpIC0gbG8gKyAxKSAqIFRZUEVfRklFTERfQklUU0laRSAoZWx0X3R5cGUs IDApOwogIAogIAkJICBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkgPSAoYXJyYXlfYml0c2l6ZSAr IDcpIC8gODsKLUBAIC0yMjA3LDcgKzIyMDgsNyBAQAorQEAgLTIyMDgsNyArMjIwOSw3IEBACiAg ICAgdGhlIGxlbmd0aCBpcyBhcmJpdHJhcnkuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAq CkBAIC02MDIsNyArNjAyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEt bGFuZy5jCiAgewogICAgc3RydWN0IHR5cGUgKm5ld19lbHRfdHlwZTsKICAgIHN0cnVjdCB0eXBl ICpuZXdfdHlwZTsKLUBAIC0yMjYxLDcgKzIyNjIsNyBAQAorQEAgLTIyNjIsNyArMjI2Myw3IEBA CiAgICBjaGFyICpuYW1lOwogICAgY29uc3QgY2hhciAqdGFpbDsKICAgIHN0cnVjdCB0eXBlICpz aGFkb3dfdHlwZTsKQEAgLTYxMSw3ICs2MTEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2FkYS1sYW5nLmMKICAKICAgIGlmICghcmF3X25hbWUpCiAgICAgIHJhd19uYW1lID0g YWRhX3R5cGVfbmFtZSAoZGVzY19iYXNlX3R5cGUgKHR5cGUpKTsKLUBAIC0yMzMyLDcgKzIzMzMs OCBAQAorQEAgLTIzMzMsNyArMjMzNCw4IEBACiAgIAkgYXJyYXkgd2l0aCBubyB3cmFwcGVyLiAg SW4gb3JkZXIgdG8gaW50ZXJwcmV0IHRoZSB2YWx1ZSB0aHJvdWdoCiAgIAkgdGhlIChsZWZ0LWp1 c3RpZmllZCkgcGFja2VkIGFycmF5IHR5cGUgd2UganVzdCBidWlsdCwgd2UgbXVzdAogICAJIGZp cnN0IGxlZnQtanVzdGlmeSBpdC4gICovCkBAIC02MjEsNyArNjIxLDcgQEAgSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgVUxPTkdFU1QgbW9kOwogIAog ICAgICAgIG1vZCA9IGFkYV9tb2R1bHVzICh2YWx1ZV90eXBlIChhcnIpKSAtIDE7Ci1AQCAtMjU2 MCw3ICsyNTYyLDcgQEAKK0BAIC0yNTYxLDcgKzI1NjMsNyBAQAogIAogIHN0cnVjdCB2YWx1ZSAq CiAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdmFsdWUgKm9iaiwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC02MzAsNyArNjMwLDcgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7Ci1AQCAtMjYz Myw3ICsyNjM1LDcgQEAKK0BAIC0yNjMyLDcgKzI2MzQsNyBAQAogIAogICAgaWYgKG9iaiAhPSBO VUxMKQogICAgICB7CkBAIC02MzksNyArNjM5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9hZGEtbGFuZy5jCiAgCiAgICAgICAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlv biAodiwgb2JqKTsKICAgICAgICBzZXRfdmFsdWVfYml0cG9zICh2LCBiaXRfb2Zmc2V0ICsgdmFs dWVfYml0cG9zIChvYmopKTsKLUBAIC0yNjgxLDcgKzI2ODMsNyBAQAorQEAgLTI2NzgsNyArMjY4 MCw3IEBACiAgICAgbm90IG92ZXJsYXAuICAqLwogIHN0YXRpYyB2b2lkCiAgbW92ZV9iaXRzIChn ZGJfYnl0ZSAqdGFyZ2V0LCBpbnQgdGFyZ19vZmZzZXQsIGNvbnN0IGdkYl9ieXRlICpzb3VyY2Us CkBAIC02NDgsNyArNjQ4LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEt bGFuZy5jCiAgewogICAgdW5zaWduZWQgaW50IGFjY3VtLCBtYXNrOwogICAgaW50IGFjY3VtX2Jp dHMsIGNodW5rX3NpemU7Ci1AQCAtMjc3MSw3ICsyNzczLDcgQEAKK0BAIC0yNzY4LDcgKzI3NzAs NyBAQAogICAgICB7CiAgICAgICAgaW50IGxlbiA9ICh2YWx1ZV9iaXRwb3MgKHRvdmFsKQogIAkJ ICsgYml0cyArIEhPU1RfQ0hBUl9CSVQgLSAxKSAvIEhPU1RfQ0hBUl9CSVQ7CkBAIC02NTcsNyAr NjU3LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgICAg ICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IChnZGJfYnl0ZSAqKSBhbGxvY2EgKGxlbik7CiAgICAgICAg c3RydWN0IHZhbHVlICp2YWw7CiAgICAgICAgQ09SRV9BRERSIHRvX2FkZHIgPSB2YWx1ZV9hZGRy ZXNzICh0b3ZhbCk7Ci1AQCAtMjgyMiw3ICsyODI0LDcgQEAKK0BAIC0yODE5LDcgKzI4MjEsNyBA QAogICAgICAoTE9OR0VTVCkgICh2YWx1ZV9hZGRyZXNzIChjb21wb25lbnQpIC0gdmFsdWVfYWRk cmVzcyAoY29udGFpbmVyKSk7CiAgICBpbnQgYml0X29mZnNldF9pbl9jb250YWluZXIgPQogICAg ICB2YWx1ZV9iaXRwb3MgKGNvbXBvbmVudCkgLSB2YWx1ZV9iaXRwb3MgKGNvbnRhaW5lcik7CkBA IC02NjYsNyArNjY2LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFu Zy5jCiAgCiAgICB2YWwgPSB2YWx1ZV9jYXN0ICh2YWx1ZV90eXBlIChjb21wb25lbnQpLCB2YWwp OwogIAotQEAgLTQ0ODAsNyArNDQ4Miw3IEBACitAQCAtNDQ3MCw3ICs0NDcyLDcgQEAKICAgIGlm IChWQUxVRV9MVkFMICh2YWwpID09IG5vdF9sdmFsCiAgICAgICAgfHwgVkFMVUVfTFZBTCAodmFs KSA9PSBsdmFsX2ludGVybmFsdmFyKQogICAgICB7CkBAIC02NzUsNyArNjc1LDcgQEAgSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgY29uc3QgQ09SRV9B RERSIGFkZHIgPQogICAgICAgICAgdmFsdWVfYXNfbG9uZyAodmFsdWVfYWxsb2NhdGVfc3BhY2Vf aW5faW5mZXJpb3IgKGxlbikpOwogIAotQEAgLTQ1NjQsNyArNDU2Niw3IEBACitAQCAtNDU1NCw3 ICs0NTU2LDcgQEAKICB2YWx1ZV9wb2ludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3Qg dHlwZSAqdHlwZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2Fy Y2ggKHR5cGUpOwpAQCAtNjg0LDcgKzY4NCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvYWRhLWxhbmcuYwogICAgZ2RiX2J5dGUgKmJ1ZiA9IChnZGJfYnl0ZSAqKSBhbGxvY2Eg KGxlbik7CiAgICBDT1JFX0FERFIgYWRkcjsKICAKLUBAIC02Nzk5LDcgKzY4MDEsNyBAQAorQEAg LTY3NTQsNyArNjc1Niw3IEBACiAgCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPUkVfQUREUiBhZGRyZXNzKQog IHsKQEAgLTY5Myw3ICs2OTMsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fk YS1sYW5nLmMKICAgIHN0cnVjdCB0eXBlICp0YWdfdHlwZTsKICAKICAgIGlmIChmaW5kX3N0cnVj dF9maWVsZCAoIl90YWciLCB0eXBlLCAwLCAmdGFnX3R5cGUsICZ0YWdfYnl0ZV9vZmZzZXQsCi1A QCAtNzI4MCw3ICs3MjgyLDcgQEAKK0BAIC03MjM1LDcgKzcyMzcsNyBAQAogICAgIG9ubHkgaW4g dGhhdCBpdCBjYW4gaGFuZGxlIHBhY2tlZCB2YWx1ZXMgb2YgYXJiaXRyYXJ5IHR5cGUuICAqLwog IAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtNzAyLDcgKzcwMiw3IEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLUBA IC03MjkyLDcgKzcyOTQsNyBAQAorQEAgLTcyNDcsNyArNzI0OSw3IEBACiAgCiAgICBpZiAoVFlQ RV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubykgIT0gMCkKICAgICAgewpAQCAtNzEx LDcgKzcxMSw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwog ICAgICAgIGludCBiaXRfc2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAoYXJnX3R5cGUsIGZpZWxk bm8pOwogIAogICAgICAgIHJldHVybiBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKGFy ZzEsIHZhbHVlX2NvbnRlbnRzIChhcmcxKSwKLUBAIC03MzE5LDkgKzczMjEsOSBAQAorQEAgLTcy NzQsOSArNzI3Niw5IEBACiAgICAgUmV0dXJucyAxIGlmIGZvdW5kLCAwIG90aGVyd2lzZS4gICov CiAgCiAgc3RhdGljIGludApAQCAtNzIzLDcgKzcyMyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogIAkJICAgaW50ICppbmRleF9wKQogIHsKICAgIGludCBp OwotQEAgLTczMzksOCArNzM0MSw4IEBACitAQCAtNzI5NCw4ICs3Mjk2LDggQEAKICAKICAgIGZv ciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpICs9IDEpCiAgICAgIHsKQEAgLTcz NCw3ICs3MzQsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMK ICAgICAgICBjb25zdCBjaGFyICp0X2ZpZWxkX25hbWUgPSBUWVBFX0ZJRUxEX05BTUUgKHR5cGUs IGkpOwogIAogICAgICAgIGlmICh0X2ZpZWxkX25hbWUgPT0gTlVMTCkKLUBAIC03NDEwLDcgKzc0 MTIsNyBAQAorQEAgLTczNjUsNyArNzM2Nyw3IEBACiAgICAgU2VhcmNoZXMgcmVjdXJzaXZlbHkg dGhyb3VnaCB3cmFwcGVyIGZpZWxkcyAoZS5nLiwgJ19wYXJlbnQnKS4gICovCiAgCiAgc3RhdGlj IHN0cnVjdCB2YWx1ZSAqCkBAIC03NDMsNyArNzQzLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0 eXBlICp0eXBlKQogIHsKICAgIGludCBpOwotQEAgLTc0NDMsNyArNzQ0NSw3IEBACitAQCAtNzM5 OCw3ICs3NDAwLDcgQEAKICAgICAgICAgICAgaW50IGo7CiAgICAgICAgICAgIHN0cnVjdCB0eXBl ICpmaWVsZF90eXBlID0gYWRhX2NoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwK ICAJCQkJCQkJCQlpKSk7CkBAIC03NTIsNyArNzUyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgCiAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBUWVBF X05GSUVMRFMgKGZpZWxkX3R5cGUpOyBqICs9IDEpCiAgICAgICAgICAgICAgewotQEAgLTc0NjEs OCArNzQ2Myw4IEBACitAQCAtNzQxNiw4ICs3NDE4LDggQEAKICAgIHJldHVybiBOVUxMOwogIH0K ICAKQEAgLTc2Myw3ICs3NjMsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fk YS1sYW5nLmMKICAKICAKICAvKiBSZXR1cm4gZmllbGQgI0lOREVYIGluIEFSRywgd2hlcmUgdGhl IGluZGV4IGlzIHRoYXQgcmV0dXJuZWQgYnkKLUBAIC03NDcxLDcgKzc0NzMsNyBAQAorQEAgLTc0 MjYsNyArNzQyOCw3IEBACiAgICogSWYgZm91bmQsIHJldHVybiB2YWx1ZSwgZWxzZSByZXR1cm4g TlVMTC4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03NzIsNyArNzcyLDcgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgCQkJc3RydWN0IHR5 cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIGFkYV9pbmRleF9zdHJ1Y3RfZmllbGRfMSAoJmluZGV4 LCBhcmcsIG9mZnNldCwgdHlwZSk7Ci1AQCAtNzQ4Myw3ICs3NDg1LDcgQEAKK0BAIC03NDM4LDcg Kzc0NDAsNyBAQAogICAqICpJTkRFWF9QLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoK QEAgLTc4MSw3ICs3ODEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1s YW5nLmMKICAJCQkgIHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIGludCBpOwotQEAgLTc1NzMs NyArNzU3NSw4IEBACitAQCAtNzUyOCw3ICs3NTMwLDggQEAKICAgICAgdiA9IGFkYV9zZWFyY2hf c3RydWN0X2ZpZWxkIChuYW1lLCBhcmcsIDAsIHQpOwogICAgZWxzZQogICAgICB7CkBAIC03OTEs NyArNzkxLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAg ICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7CiAgICAgICAgQ09SRV9BRERSIGFkZHJlc3M7 CiAgCi1AQCAtNzkwNCw4ICs3OTA3LDggQEAKK0BAIC03ODM0LDggKzc4MzcsOCBAQAogIC8qIFJl dHVybiBPRkYgcm91bmRlZCB1cHdhcmQgaWYgbmVjZXNzYXJ5IHRvIGEgbXVsdGlwbGUgb2YKICAg ICBBTElHTk1FTlQgKGEgcG93ZXIgb2YgMikuICAqLwogIApAQCAtODAyLDcgKzgwMiw3IEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogIHsKICAgIHJldHVybiAo b2ZmICsgYWxpZ25tZW50IC0gMSkgJiB+KGFsaWdubWVudCAtIDEpOwogIH0KLUBAIC04Mjk5LDEw ICs4MzAyLDkgQEAKK0BAIC04MjI5LDEwICs4MjMyLDkgQEAKICAgIHN0cnVjdCB2YWx1ZSAqbWFy ayA9IHZhbHVlX21hcmsgKCk7CiAgICBzdHJ1Y3QgdmFsdWUgKmR2YWw7CiAgICBzdHJ1Y3QgdHlw ZSAqcnR5cGU7CkBAIC04MTUsNyArODE1LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9hZGEtbGFuZy5jCiAgICBpbnQgZjsKICAKICAgIC8qIENvbXB1dGUgdGhlIG51bWJlciBv ZiBmaWVsZHMgaW4gdGhpcyByZWNvcmQgdHlwZSB0aGF0IGFyZSBnb2luZwotQEAgLTgzODAsNyAr ODM4Miw3IEBACitAQCAtODMxMCw3ICs4MzEyLDcgQEAKICAJICAgICB0aGF0IGZvbGxvdyB0aGlz IG9uZS4gICovCiAgCSAgaWYgKGFkYV9pc19hbGlnbmVyX3R5cGUgKGZpZWxkX3R5cGUpKQogIAkg ICAgewpAQCAtODI0LDcgKzgyNCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv YWRhLWxhbmcuYwogIAogIAkgICAgICBmaWVsZF92YWxhZGRyID0gY29uZF9vZmZzZXRfaG9zdCAo ZmllbGRfdmFsYWRkciwgZmllbGRfb2Zmc2V0KTsKICAJICAgICAgZmllbGRfYWRkcmVzcyA9IGNv bmRfb2Zmc2V0X3RhcmdldCAoZmllbGRfYWRkcmVzcywgZmllbGRfb2Zmc2V0KTsKLUBAIC04NTE2 LDExICs4NTE4LDExIEBACitAQCAtODQ0NiwxMSArODQ0OCwxMSBAQAogICAgaWYgKFRZUEVfTEVO R1RIICh0eXBlKSA8PSAwKQogICAgICB7CiAgICAgICAgaWYgKFRZUEVfTkFNRSAocnR5cGUpKQpA QCAtODQwLDcgKzg0MCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxh bmcuYwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKLUBAIC04OTg3LDcgKzg5ODksOCBAQAorQEAg LTg5MTcsNyArODkxOSw4IEBACiAgCSB0eXBlIHdhcyBhIHJlZ3VsYXIgKG5vbi1wYWNrZWQpIGFy cmF5IHR5cGUuICBBcyBhIHJlc3VsdCwgdGhlCiAgCSBiaXRzaXplIG9mIHRoZSBhcnJheSBlbGVt ZW50cyBuZWVkcyB0byBiZSBzZXQgYWdhaW4sIGFuZCB0aGUgYXJyYXkKICAJIGxlbmd0aCBuZWVk cyB0byBiZSByZWNvbXB1dGVkIGJhc2VkIG9uIHRoYXQgYml0c2l6ZS4gICovCkBAIC04NTAsMTgg Kzg1MCwxOCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMKICAg ICAgICBpbnQgZWx0X2JpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKICAK ICAgICAgICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHJlc3VsdCwgMCkgPSBUWVBFX0ZJRUxEX0JJVFNJ WkUgKHR5cGUwLCAwKTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcu aAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9hZGEtbGFuZy5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE2LTA3LTE2 IDE0OjMzOjQyLjA1NDUxMDEyNSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h ZGEtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI4NTMwMDM2ICswMjAwCistLS0gZ2RiLTcu MTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0 MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9hZGEtbGFuZy5oCTIw MTctMDItMjYgMjI6MDQ6MDMuNDE2NjA5NzgyICswMTAwCiBAQCAtMTY4LDcgKzE2OCw3IEBACiAg ZXh0ZXJuIHZvaWQgYWRhX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg c3ltYm9sICpuZXdfc3ltYm9sLAogIAkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsK ICAKLS1leHRlcm4gdm9pZCBhZGFfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJf Ynl0ZSAqLCBpbnQsIENPUkVfQUREUiwKLStleHRlcm4gdm9pZCBhZGFfdmFsX3ByaW50IChzdHJ1 Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBMT05HRVNULCBDT1JFX0FERFIsCistZXh0ZXJu IHZvaWQgYWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgaW50LCBDT1JFX0FERFIsCisrZXh0 ZXJuIHZvaWQgYWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgTE9OR0VTVCwgQ09SRV9BRERS LAogIAkJCSAgIHN0cnVjdCB1aV9maWxlICosIGludCwKLSAJCQkgICBjb25zdCBzdHJ1Y3QgdmFs dWUgKiwKKyAJCQkgICBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqKTsKIEBAIC0xODMsNyArMTgzLDcgQEAKICBleHRlcm4gdm9pZCBhZGFf cHJpbnRjaGFyIChpbnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICopOwpAQCAtODgx LDEwICs4ODEsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5o CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHlwZSAqKTsKICAKICBleHRlcm4gc3RydWN0IHR5cGUgKmFkYV9jb2VyY2VfdG9fc2lt cGxlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICopOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9hZGEtdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIv YWRhLXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU1NTEwMTMzICswMjAw Ci0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE2LTA3LTE2 IDE0OjMzOjQ0LjUyODUzMDAzNiArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcv Z2RiL2FkYS10eXBlcHJpbnQuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAor KysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNy0wMi0yNiAy MjowNDowMy40MTY2MDk3ODIgKzAxMDAKIEBAIC04OTEsOCArODkxLDggQEAKICAJICAgIGNvbnN0 IGNoYXIgKm5hbWUgPSBhZGFfdHlwZV9uYW1lICh0eXBlKTsKICAKQEAgLTkwNiwxMCArOTA2LDEw IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLXR5cGVwcmludC5jCiAgCWJy ZWFrOwogICAgICAgIGNhc2UgVFlQRV9DT0RFX0VOVU06CiAgCWlmIChzaG93IDwgMCkKLUluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4x Mi41MC4yMDE3MDIyNi9nZGIvYWRhLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hZGEtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQy LjA1NjUxMDE0MSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFscHJp bnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUyODUzMDAzNiArMDIwMAorLS0tIGdkYi03LjEyLjUw LjIwMTcwMjI2Lm9yaWcvZ2RiL2FkYS12YWxwcmludC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQz NzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2FkYS12YWxwcmludC5j CTIwMTctMDItMjYgMjI6MDQ6MDMuNDE3NjA5Nzg5ICswMTAwCiBAQCAtMzMsMTEgKzMzLDExIEBA CiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCiAgCkBAIC05MTcsNyArOTE3LDcgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogLQkJCSAgICAgICBpbnQsCiAr CQkJICAgICAgIExPTkdFU1QsCiAgCQkJICAgICAgIHN0cnVjdCB1aV9maWxlICosIGludCwKLSAJ CQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICosCisgCQkJICAgICAgIHN0cnVjdCB2YWx1ZSAq LAogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAogLQkJCSAg ICAgICBpbnQsIHN0cnVjdCB0eXBlICosIGludCwKICsJCQkgICAgICAgaW50LCBzdHJ1Y3QgdHlw ZSAqLCBMT05HRVNULApAQCAtOTMzLDcgKzkzMyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvYWRhLXZhbHByaW50LmMKICAJIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyKQog IHsKICAgIGlmICh0eXBlX2xlbiA9PSAxKQotQEAgLTQ0MSwxMSArNDQxLDExIEBACitAQCAtNDM5 LDExICs0MzksMTEgQEAKICAKICBzdGF0aWMgdm9pZAogIHByaW50c3RyIChzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywK QEAgLTk0Nyw3ICs5NDcsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS12 YWxwcmludC5jCiAgICB1bnNpZ25lZCBpbnQgdGhpbmdzX3ByaW50ZWQgPSAwOwogICAgaW50IGlu X3F1b3RlcyA9IDA7CiAgICBpbnQgbmVlZF9jb21tYSA9IDA7Ci1AQCAtNDYwLDkgKzQ2MCw5IEBA CitAQCAtNDU4LDkgKzQ1OCw5IEBACiAgICAgIHsKICAgICAgICAvKiBQb3NpdGlvbiBvZiB0aGUg Y2hhcmFjdGVyIHdlIGFyZSBleGFtaW5pbmcKICAgICAgICAgICB0byBzZWUgd2hldGhlciBpdCBp cyByZXBlYXRlZC4gICovCkBAIC05NTksNyArOTU5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogIAogICAgICAgIFFVSVQ7CiAgCi1AQCAtNDkzLDcg KzQ5Myw4IEBACitAQCAtNDkxLDcgKzQ5MSw4IEBACiAgCSAgYWRhX2VtaXRfY2hhciAoY2hhcl9h dCAoc3RyaW5nLCBpLCB0eXBlX2xlbiwgYnl0ZV9vcmRlciksCiAgCQkJIGVsdHR5cGUsIHN0cmVh bSwgJ1wnJywgdHlwZV9sZW4pOwogIAkgIGZwdXRzX2ZpbHRlcmVkICgiJyIsIHN0cmVhbSk7CkBA IC05NjksNyArOTY5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFs cHJpbnQuYwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0aGluZ3NfcHJpbnRlZCArPSBvcHRpb25z LT5yZXBlYXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5lZWRfY29tbWEgPSAxOwotQEAgLTUyMSw3 ICs1MjIsNyBAQAorQEAgLTUxOSw3ICs1MjAsNyBAQAogIAogIHZvaWQKICBhZGFfcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtOTc4LDE0ICs5 NzgsMTQgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwog IAkgICAgICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkgICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAtNTMx LDEyICs1MzIsMTIgQEAKK0BAIC01MjksMTIgKzUzMCwxMiBAQAogIAogIHN0YXRpYyBpbnQKICBw cmludF92YXJpYW50X3BhcnQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgZmllbGRfbnVtLAogLQkJ ICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgb2Zmc2V0LAogKwkJICAgIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIG9mZnNldCwKICAJCSAgICBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJ CSAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucywKICAJCSAgICBpbnQgY29tbWFfbmVlZGVkLAogLQkJICAgIHN0cnVj dCB0eXBlICpvdXRlcl90eXBlLCBpbnQgb3V0ZXJfb2Zmc2V0LApAQCAtOTkzLDEzICs5OTMsMTMg QEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogIAkJICAg IGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSkKICB7CiAgICBzdHJ1Y3QgdHlw ZSAqdmFyX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkX251bSk7Ci1AQCAtNTcy LDExICs1NzMsMTEgQEAKK0BAIC01NzAsMTEgKzU3MSwxMSBAQAogIAogIHN0YXRpYyBpbnQKICBw cmludF9maWVsZF92YWx1ZXMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKIC0JCSAgICBpbnQgb2Zmc2V0LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVj dXJzZSwKICsJCSAgICBMT05HRVNUIG9mZnNldCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHJlY3Vyc2UsCi0gCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCisgCQkgICAgc3RydWN0 IHZhbHVlICp2YWwsCiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMsCiAgCQkgICAgaW50IGNvbW1hX25lZWRlZCwKIC0JCSAgICBzdHJ1Y3QgdHlwZSAqb3V0 ZXJfdHlwZSwgaW50IG91dGVyX29mZnNldCwKQEAgLTEwMDcsMTYgKzEwMDcsMTYgQEAgSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogIAkJICAgIGNvbnN0IHN0 cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSkKICB7CiAgICBpbnQgaSwgbGVuOwotQEAgLTY0 Myw3ICs2NDQsNyBAQAotIAkgICAgfQorQEAgLTY0MCw3ICs2NDEsNyBAQAogIAkgIGVsc2UKICAJ ICAgIHsKKyAJICAgICAgc3RydWN0IHZhbHVlICp2OwogLQkgICAgICBpbnQgYml0X3BvcyA9IFRZ UEVfRklFTERfQklUUE9TICh0eXBlLCBpKTsKICsJICAgICAgTE9OR0VTVCBiaXRfcG9zID0gVFlQ RV9GSUVMRF9CSVRQT1MgKHR5cGUsIGkpOwogIAkgICAgICBpbnQgYml0X3NpemUgPSBUWVBFX0ZJ RUxEX0JJVFNJWkUgKHR5cGUsIGkpOwogIAkgICAgICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyBvcHRzOwogIAotQEAgLTY4OSw4ICs2OTAsOCBAQAorQEAgLTY4NSw4ICs2ODYsOCBAQAogIHsK ICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRf dHlwZV9hcmNoICh0eXBlKSk7CiAgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSA9IFRZUEVfVEFSR0VU X1RZUEUgKHR5cGUpOwpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogIAogICAgLyogV2Uga25vdyB0aGF0IEVMVFRZUEUg Y2Fubm90IHBvc3NpYmx5IGJlIG51bGwsIGJlY2F1c2Ugd2UgYXNzdW1lCiAgICAgICB0aGF0IHdl J3JlIGNhbGxlZCBvbmx5IHdoZW4gVFlQRSBpcyBhIHN0cmluZy1saWtlIHR5cGUuCi1AQCAtNzA5 LDcgKzcxMCw3IEBACitAQCAtNzA1LDcgKzcwNiw3IEBACiAgICAgICBlbGVtZW50cyB1cCB0byBp dC4gICovCiAgICBpZiAob3B0aW9ucy0+c3RvcF9wcmludF9hdF9udWxsKQogICAgICB7CkBAIC0x MDM2LDI4ICsxMDM2LDI4IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLXZh bHByaW50LmMKICAKICAgICAgICAvKiBMb29rIGZvciBhIE5VTEwgY2hhci4gICovCiAgICAgICAg Zm9yICh0ZW1wX2xlbiA9IDA7Ci1AQCAtMTA3NCw3ICsxMDc1LDcgQEAKK0BAIC0xMDY5LDcgKzEw NzAsNyBAQAogIAogIHN0YXRpYyB2b2lkCi0gYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCisgYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3Qg dHlwZSAqdHlwZSwKIC0JCSBpbnQgb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKICsJCSBMT05H RVNUIG9mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgaW50IHJlY3Vyc2UsCi0gCQkgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwK KyAJCSBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTExNTcsNyArMTE1OCw3IEBACitAQCAtMTE1 Myw3ICsxMTU0LDcgQEAKICAKICB2b2lkCi0gYWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorIGFkYV92YWxfcHJpbnQgKHN0cnVjdCB0eXBl ICp0eXBlLAogLQkgICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3Ms CiArCSAgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiAg CSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJICAgICAgIGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkgICAgICAgc3RydWN0IHZhbHVlICp2YWwsCiAgCSAg ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYW5ub3RhdGUuYworSW5kZXg6IGdkYi03LjEyLjUwLjIw MTcwMjI2L2dkYi9hbm5vdGF0ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvYW5ub3RhdGUuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NzUxMDE0OSArMDIw MAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbm5vdGF0ZS5jCTIwMTYtMDctMTYgMTQ6 MzM6NDQuNTI4NTMwMDM2ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIv YW5ub3RhdGUuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03 LjEyLjUwLjIwMTcwMjI2L2dkYi9hbm5vdGF0ZS5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDE3NjA5 Nzg5ICswMTAwCiBAQCAtNTMzLDIxICs1MzMsMjEgQEAKICB9CiAgDApAQCAtMTA4NCwxMCArMTA4 NCwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRlLmMKICB9CiAg CiAgdm9pZAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbm5vdGF0ZS5oCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2Fubm90YXRlLmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMDU3NTEwMTQ5ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRl LmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4y MDE3MDIyNi5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5 ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2Fubm90YXRlLmgJMjAxNy0wMi0y NiAyMjowNDowMy40MTc2MDk3ODkgKzAxMDAKIEBAIC05Miw4ICs5Miw4IEBACiAgZXh0ZXJuIHZv aWQgYW5ub3RhdGVfZnJhbWVfd2hlcmUgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2Zy YW1lX2VuZCAodm9pZCk7CkBAIC0xMDk5LDExICsxMDk5LDExIEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvYW5ub3RhdGUuaAogIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXBf ZW5kICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHQgKHZvaWQpOwogIGV4dGVybiB2 b2lkIGFubm90YXRlX2FycmF5X3NlY3Rpb25fZW5kICh2b2lkKTsKLUluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvYXJtLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAy MjYvZ2RiL2FybS1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NzUxMDE0 OSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hcm0tbGludXgtbmF0LmMJMjAx Ni0wNy0xNiAxNDozMzo0NC41Mjk1MzAwNDQgKzAyMDAKLUBAIC0xMDYzLDcgKzEwNjMsNyBAQAor LS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE3LTAy LTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dk Yi9hcm0tbGludXgtbmF0LmMJMjAxNy0wMi0yNiAyMjowNDowMy40MTc2MDk3ODkgKzAxMDAKK0BA IC0xMDY1LDcgKzEwNjUsNyBAQAogICAgIEFERFI/ICAqLwogIHN0YXRpYyBpbnQKICBhcm1fbGlu dXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwK QEAgLTExMTIsMTAgKzExMTIsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h cm0tbGludXgtbmF0LmMKICB7CiAgICBjb25zdCBzdHJ1Y3QgYXJtX2xpbnV4X2h3YnBfY2FwICpj YXAgPSBhcm1fbGludXhfZ2V0X2h3YnBfY2FwICgpOwogICAgQ09SRV9BRERSIG1heF93cF9sZW5n dGgsIGFsaWduZWRfYWRkcjsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgtZ2Ri LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYXgtZ2RiLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9heC1nZGIuYwkyMDE2LTA3LTE2IDE0 OjMzOjQyLjA2MDUxMDE3MyArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1n ZGIuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUyOTUzMDA0NCArMDIwMAorLS0tIGdkYi03LjEyLjUw LjIwMTcwMjI2Lm9yaWcvZ2RiL2F4LWdkYi5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5 ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2F4LWdkYi5jCTIwMTctMDItMjYg MjI6MDQ6MDMuNDE4NjA5Nzk2ICswMTAwCiBAQCAtODMsMTIgKzgzLDEyIEBACiAgc3RhdGljIHZv aWQgZ2VuX3NpZ25fZXh0ZW5kIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgdHlwZSAqKTsK ICBzdGF0aWMgdm9pZCBnZW5fZXh0ZW5kIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgdHlw ZSAqKTsKQEAgLTExNjksNyArMTE2OSw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJdCB3b3VsZCBzdWZmaWNlIHRvIHNpbXBseSBwdXNoIHRo ZSBvZmZzZXQgYW5kIGFkZCBpdCwgYnV0IHRoaXMKICAgICAgIG1ha2VzIGl0IGVhc2llciB0byBy ZWFkIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBvZmZzZXRzIGluIHRoZQotQEAgLTEyNDgsNyArMTI0 OSw3IEBACitAQCAtMTI0Nyw3ICsxMjQ4LDcgQEAKICBzdGF0aWMgdm9pZAogIGdlbl9iaXRmaWVs ZF9yZWYgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIHN0cnVjdCBhZ2VudF9leHByICpheCwKICAJ CSAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMTE3OCw3 ICsxMTc4LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZGIuYwogIHsK ICAgIC8qIE5vdGUgdGhhdCBvcHNbaV0gZmV0Y2hlcyA4IDw8IGkgYml0cy4gICovCiAgICBzdGF0 aWMgZW51bSBhZ2VudF9vcCBvcHNbXQotQEAgLTEyODMsMTMgKzEyODQsMTMgQEAKK0BAIC0xMjgy LDEzICsxMjgzLDEzIEBACiAgCiAgICAvKiBUaGUgZmlyc3QgYW5kIG9uZS1hZnRlci1sYXN0IGJp dHMgaW4gdGhlIGZpZWxkLCBidXQgcm91bmRlZCBkb3duCiAgICAgICBhbmQgdXAgdG8gYnl0ZSBi b3VuZGFyaWVzLiAgKi8KQEAgLTExOTcsNyArMTE5Nyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYXgtZ2RiLmMKICAKICAgIC8qIFRoZSBpbmRleCBpbiBvcHMgb2YgdGhlIG9w Y29kZSB3ZSdyZSBjb25zaWRlcmluZy4gICovCiAgICBpbnQgb3A7Ci1AQCAtMTQwOCw3ICsxNDA5 LDcgQEAKK0BAIC0xNDA3LDcgKzE0MDgsNyBAQAogIHN0YXRpYyB2b2lkCiAgZ2VuX3ByaW1pdGl2 ZV9maWVsZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJCSAgICAgc3RydWN0IGFnZW50X2V4 cHIgKmF4LCBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKQEAgLTEyMDYsNyArMTIwNiw3IEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJcyB0aGlz IGEgYml0ZmllbGQ/ICAqLwogICAgaWYgKFRZUEVfRklFTERfUEFDS0VEICh0eXBlLCBmaWVsZG5v KSkKLUBAIC0xNDMzLDcgKzE0MzQsNyBAQAorQEAgLTE0MzIsNyArMTQzMyw3IEBACiAgc3RhdGlj IGludAogIGdlbl9zdHJ1Y3RfcmVmX3JlY3Vyc2l2ZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwg c3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCkBA IC0xMjE1LDExICsxMjE1LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgt Z2RiLmMKICB7CiAgICBpbnQgaSwgcnNsdDsKICAgIGludCBuYmFzZXMgPSBUWVBFX05fQkFTRUNM QVNTRVMgKHR5cGUpOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZW5lcmFs LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYXgtZ2VuZXJhbC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTYt MDctMTYgMTQ6MzM6NDIuMDYwNTEwMTczICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2F4LWdlbmVyYWwuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUyOTUzMDA0NCArMDIwMAotQEAg LTE5OSw3ICsxOTksNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2F4LWdl bmVyYWwuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEy LjUwLjIwMTcwMjI2L2dkYi9heC1nZW5lcmFsLmMJMjAxNy0wMi0yNiAyMjowNDowMy40MTg2MDk3 OTYgKzAxMDAKK0BAIC0xNzcsNyArMTc3LDcgQEAKICAKICAvKiBBcHBlbmQgYSB0cmFjZV9xdWlj ayBpbnN0cnVjdGlvbiB0byBFWFBSLCB0byByZWNvcmQgTiBieXRlcy4gICovCiAgdm9pZApAQCAt MTIyOCwxMSArMTIyOCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F4LWdl bmVyYWwuYwogIHsKICAgIC8qIE4gbXVzdCBmaXQgaW4gYSBieXRlLiAgKi8KICAgIGlmIChuIDwg MCB8fCBuID4gMjU1KQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC5oCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2F4LmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi9heC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDYwNTEwMTcz ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F4LmgJMjAxNi0wNy0xNiAxNDoz Mzo0NC41Mjk1MzAwNDQgKzAyMDAKLUBAIC0yMTAsNyArMjEwLDcgQEAKKy0tLSBnZGItNy4xMi41 MC4yMDE3MDIyNi5vcmlnL2dkYi9heC5oCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2F4LmgJMjAxNy0wMi0yNiAyMjowNDow My40MTk2MDk4MDMgKzAxMDAKK0BAIC0yMDUsNyArMjA1LDcgQEAKICBleHRlcm4gdm9pZCBheF96 ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKkVYUFIsIGludCBOKTsKICAKICAvKiBBcHBlbmQg YSB0cmFjZV9xdWljayBpbnN0cnVjdGlvbiB0byBFWFBSLCB0byByZWNvcmQgTiBieXRlcy4gICov CkBAIC0xMjQxLDExICsxMjQxLDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv YXguaAogIAogIC8qIEFwcGVuZCBhIGdvdG8gb3AgdG8gRVhQUi4gIE9QIGlzIHRoZSBhY3R1YWwg b3AgKG11c3QgYmUgYW9wX2dvdG8gb3IKICAgICBhb3BfaWZfZ290bykuICBXZSBhc3N1bWUgd2Ug ZG9uJ3Qga25vdyB0aGUgdGFyZ2V0IG9mZnNldCB5ZXQsCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2JyZWFrcG9pbnQuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9i cmVha3BvaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dk Yi9icmVha3BvaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNjc1MTAyMzAgKzAyMDAKLSsrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYnJlYWtwb2ludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQu NTMxNTMwMDYwICswMjAwCi1AQCAtMjI1MSw5ICsyMjUxLDkgQEAKKy0tLSBnZGItNy4xMi41MC4y MDE3MDIyNi5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkz NjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYnJlYWtwb2ludC5jCTIwMTct MDItMjYgMjI6MDQ6MDMuNDIyNjA5ODI0ICswMTAwCitAQCAtMjIyNiw5ICsyMjI2LDkgQEAKICAJ ewogIAkgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKICAJCQkgICAgICAiaW5mcnVu OiBzdGVwcGluZyBwYXN0IG5vbi1zdGVwcGFibGUgd2F0Y2hwb2ludC4gIgpAQCAtMTI1Nyw3ICsx MjU3LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9icmVha3BvaW50LmMKICAJ fQogICAgICAgIHJldHVybiAwOwogICAgICB9Ci1AQCAtNzE4MSw3ICs3MTgxLDcgQEAKK0BAIC03 MTUzLDcgKzcxNTMsNyBAQAogIAogIHN0YXRpYyBpbnQKICBicmVha3BvaW50X2FkZHJlc3NfbWF0 Y2hfcmFuZ2UgKHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UxLCBDT1JFX0FERFIgYWRkcjEs CkBAIC0xMjY2LDcgKzEyNjYsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Jy ZWFrcG9pbnQuYwogIAkJCQlDT1JFX0FERFIgYWRkcjIpCiAgewogICAgcmV0dXJuICgoZ2RiYXJj aF9oYXNfZ2xvYmFsX2JyZWFrcG9pbnRzICh0YXJnZXRfZ2RiYXJjaCAoKSkKLUBAIC0xMTUzNCw3 ICsxMTUzNCw3IEBACitAQCAtMTE0NzQsNyArMTE0NzQsNyBAQAogIAkJICAgICAgJiYgVFlQRV9D T0RFICh2dHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZKSkKICAJCXsKICAJCSAgQ09SRV9BRERSIHZh ZGRyID0gdmFsdWVfYWRkcmVzcyAodik7CkBAIC0xMjc1LDExICsxMjc1LDExIEBAIEluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYnJlYWtwb2ludC5jCiAgCQkgIGludCBudW1fcmVnczsK ICAKICAJCSAgbGVuID0gKHRhcmdldF9leGFjdF93YXRjaHBvaW50cwotSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9icmVha3BvaW50LmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIy Ni9nZGIvYnJlYWtwb2ludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvYnJlYWtwb2ludC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDY4NTEwMjM4ICswMjAw Ci0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2JyZWFrcG9pbnQuaAkyMDE2LTA3LTE2IDE0 OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAotQEAgLTIzNyw3ICsyMzcsNyBAQAorLS0tIGdkYi03LjEy LjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0 MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9icmVha3BvaW50LmgJ MjAxNy0wMi0yNiAyMjowNDowMy40MjM2MDk4MzEgKzAxMDAKK0BAIC0yNTAsNyArMjUwLDcgQEAK ICAKICAgIC8qIElmIHRoaXMgaXMgYSByYW5nZWQgYnJlYWtwb2ludCwgdGhlbiB0aGlzIGZpZWxk IGNvbnRhaW5zIHRoZQogICAgICAgbGVuZ3RoIG9mIHRoZSByYW5nZSB0aGF0IHdpbGwgYmUgd2F0 Y2hlZCBmb3IgZXhlY3V0aW9uLiAgKi8KQEAgLTEyODgsNyArMTI4OCw3IEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvYnJlYWtwb2ludC5oCiAgCiAgICAvKiBJZiB0aGUgYnJlYWtw b2ludCBsaXZlcyBpbiBtZW1vcnkgYW5kIHJlYWRpbmcgdGhhdCBtZW1vcnkgd291bGQKICAgICAg IGdpdmUgYmFjayB0aGUgYnJlYWtwb2ludCwgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgY29udGVu dHMsIHRoZW4KLUBAIC00MTMsNyArNDEzLDcgQEAKK0BAIC00MjIsNyArNDIyLDcgQEAKICAgIC8q IEZvciBoYXJkd2FyZSB3YXRjaHBvaW50cywgdGhlIHNpemUgb2YgdGhlIG1lbW9yeSByZWdpb24g YmVpbmcKICAgICAgIHdhdGNoZWQuICBGb3IgaGFyZHdhcmUgcmFuZ2VkIGJyZWFrcG9pbnRzLCB0 aGUgc2l6ZSBvZiB0aGUKICAgICAgIGJyZWFrcG9pbnQgcmFuZ2UuICAqLwpAQCAtMTI5NywxMCAr MTI5NywxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2JyZWFrcG9pbnQuaAog IAogICAgLyogVHlwZSBvZiBoYXJkd2FyZSB3YXRjaHBvaW50LiAgKi8KICAgIGVudW0gdGFyZ2V0 X2h3X2JwX3R5cGUgd2F0Y2hwb2ludF90eXBlOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9jLWxhbmcuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9jLWxhbmcuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtbGFuZy5jCTIw MTYtMDctMTYgMTQ6MzM6NDIuMDY5NTEwMjQ2ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2MtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCistLS0g Z2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvYy1sYW5nLmMJMjAxNy0wMi0yNiAyMTo1OToz Ni4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYy1sYW5nLmMJ MjAxNy0wMi0yNiAyMjowNDowMy40MjM2MDk4MzEgKzAxMDAKIEBAIC0xODYsNyArMTg2LDcgQEAK ICAKICB2b2lkCkBAIC0xMzEwLDcgKzEzMTAsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2MtbGFuZy5jCiAgCSAgICBjb25zdCBjaGFyICp1c2VyX2VuY29kaW5nLCBpbnQgZm9y Y2VfZWxsaXBzZXMsCiAgCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucykKICB7Ci1AQCAtNjc1LDcgKzY3NSw3IEBACitAQCAtNjcyLDcgKzY3Miw3IEBACiAgCSAg fQogIAllbHNlCiAgCSAgewpAQCAtMTMxOSw3ICsxMzE5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9jLWxhbmcuYwogIAogIAkgICAgLyogV3JpdGUgdGhlIHRlcm1pbmF0aW5n IGNoYXJhY3Rlci4gICovCiAgCSAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9MRU5HVEggKHR5cGUp OyArK2kpCi1AQCAtNjg0LDcgKzY4NCw3IEBACitAQCAtNjgxLDcgKzY4MSw3IEBACiAgCSAgICBp ZiAoc2F0aXNmeV9leHBlY3RlZCkKICAJICAgICAgewogIAkJTE9OR0VTVCBsb3dfYm91bmQsIGhp Z2hfYm91bmQ7CkBAIC0xMzI4LDE4ICsxMzI4LDE4IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvYy1sYW5nLmMKICAKICAJCWlmIChnZXRfZGlzY3JldGVfYm91bmRzIChUWVBFX0lO REVYX1RZUEUgKGV4cGVjdF90eXBlKSwKICAJCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkg PCAwKQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLWxhbmcuaAorSW5kZXg6IGdk Yi03LjEyLjUwLjIwMTcwMjI2L2dkYi9jLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDY5NTEw MjQ2ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtbGFuZy5oCTIwMTYtMDct MTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3Jp Zy9nZGIvYy1sYW5nLmgJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBn ZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYy1sYW5nLmgJMjAxNy0wMi0yNiAyMjowNDowMy40MjM2 MDk4MzEgKzAxMDAKIEBAIC03Nyw3ICs3Nyw3IEBACiAgCQkJICAgICBzdHJ1Y3QgdWlfZmlsZSAq KTsKICAKLSBleHRlcm4gdm9pZCBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2Ri X2J5dGUgKiwKKyBleHRlcm4gdm9pZCBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwKIC0JCQkg aW50LCBDT1JFX0FERFIsCiArCQkJIExPTkdFU1QsIENPUkVfQUREUiwKICAJCQkgc3RydWN0IHVp X2ZpbGUgKiwgaW50LAotIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKKyAJCQkgc3RydWN0IHZh bHVlICosCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogQEAgLTk3 LDcgKzk3LDcgQEAKICBleHRlcm4gdm9pZCBjX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqIHN0 cmVhbSwKQEAgLTEzNTAsMTAgKzEzNTAsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9jLWxhbmcuaAogIAkJCWNvbnN0IGNoYXIgKnVzZXJfZW5jb2RpbmcsCiAgCQkJaW50IGZv cmNlX2VsbGlwc2VzLAogIAkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYy12YWxwcmludC5jCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2MtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0 OjMzOjQyLjA3MDUxMDI1NCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLXZh bHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzI1MzAwNjggKzAyMDAKKy0tLSBnZGItNy4x Mi41MC4yMDE3MDIyNi5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNy0wMi0yNiAyMTo1OTozNi4w NDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYy12YWxwcmludC5j CTIwMTctMDItMjYgMjI6MDQ6MDMuNDI0NjA5ODM4ICswMTAwCiBAQCAtMjQ0LDcgKzI0NCw3IEBA CiAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpID4gMCAmJiBUWVBFX0xFTkdUSCAodW5yZXNvbHZl ZF9lbHR0eXBlKSA+IDApCiAgICAgIHsKQEAgLTEzODYsMTYgKzEzODYsMTYgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLXZhbHByaW50LmMKIEBAIC00OTUsNyArNDk1LDcgQEAK ICAKICB2b2lkCi0gY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwKKyBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsCiAtCSAgICAgaW50 IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiArCSAgICAgTE9OR0VTVCBlbWJl ZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAogIAkgICAgIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAotIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxf dmFsdWUsCisgCSAgICAgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJICAgICBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvY3AtYWJpLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIv Y3AtYWJpLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9j cC1hYmkuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MDUxMDI1NCArMDIwMAotKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9jcC1hYmkuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCAr MDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2NwLWFiaS5jCTIwMTctMDIt MjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2Ri L2NwLWFiaS5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDI0NjA5ODM4ICswMTAwCiBAQCAtNjQsMTIg KzY0LDEyIEBACiAgICByZXR1cm4gKCpjdXJyZW50X2NwX2FiaS5pc19vcGVyYXRvcl9uYW1lKSAo bmFtZSk7CiAgfQpAQCAtMTQyMCwxMCArMTQyMCwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2NwLWFiaS5jCiAgewogICAgaWYgKChjdXJyZW50X2NwX2FiaS52aXJ0dWFsX2Zu X2ZpZWxkKSA9PSBOVUxMKQogICAgICByZXR1cm4gTlVMTDsKLUluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvY3AtYWJpLmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvY3At YWJpLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jcC1h YmkuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MDUxMDI1NCArMDIwMAotKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9jcC1hYmkuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIw MAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2NwLWFiaS5oCTIwMTctMDItMjYg MjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2Nw LWFiaS5oCTIwMTctMDItMjYgMjI6MDQ6MDMuNDI0NjA5ODM4ICswMTAwCiBAQCAtMTA4LDcgKzEw OCw3IEBACiAgCQkJCQkgICAgIHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCQkJCSAgICAgaW50IGos CkBAIC0xNDUwLDcgKzE0NTAsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Nw LWFiaS5oCiAgCiAgLyogRGVzY3JpYmUgdGhlIHRhcmdldCBvZiBhIHBvaW50ZXIgdG8gbWV0aG9k LiAgQ09OVEVOVFMgaXMgdGhlIGJ5dGUKICAgICBwYXR0ZXJuIHJlcHJlc2VudGluZyB0aGUgcG9p bnRlciB0byBtZXRob2QuICBUWVBFIGlzIHRoZSBwb2ludGVyIHRvCi1AQCAtMjI3LDEyICsyMjcs MTIgQEAKK0BAIC0yMjYsMTIgKzIyNiwxMiBAQAogICAgc3RydWN0IHZhbHVlICooKnZpcnR1YWxf Zm5fZmllbGQpIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKICAJCQkJICAgICBzdHJ1Y3QgZm5fZmll bGQgKiBmLAogIAkJCQkgICAgIGludCBqLCBzdHJ1Y3QgdHlwZSAqIHR5cGUsCkBAIC0xNDY3LDEx ICsxNDY3LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtYWJpLmgKICAg IHZvaWQgKCpwcmludF9tZXRob2RfcHRyKSAoY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzLAogIAkJ CSAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7 Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NwLXZhbHByaW50LmMKK0luZGV4OiBn ZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvY3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDoz Mzo0Mi4wNzE1MTAyNjIgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtdmFs cHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAotQEAgLTMzNCw3ICsz MzQsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJ MjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIyNi9nZGIvY3AtdmFscHJpbnQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQyNDYwOTgzOCArMDEw MAorQEAgLTMzNiw3ICszMzYsNyBAQAogIAkJfQogIAkgICAgICBlbHNlIGlmIChpID09IHZwdHJf ZmllbGRubyAmJiB0eXBlID09IHZwdHJfYmFzZXR5cGUpCiAgCQl7CkBAIC0xNDgwLDkxICsxNDgw LDM3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtdmFscHJpbnQuYwogIAkJ ICBzdHJ1Y3QgdHlwZSAqaV90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKTsKICAKICAJ CSAgaWYgKHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJlYW0sIGlfdHlwZSwgaV9vZmZzZXQs IHZhbCkpCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2QtbGFuZy5oCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2QtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZC1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNzE1 MTAyNjIgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZC1sYW5nLmgJMjAxNi0w Ny0xNiAxNDozMzo0NC41MzM1MzAwNzYgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5v cmlnL2dkYi9kLWxhbmcuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysr IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9kLWxhbmcuaAkyMDE3LTAyLTI2IDIyOjA0OjAzLjQy NDYwOTgzOCArMDEwMAogQEAgLTgxLDcgKzgxLDcgQEAKICAvKiBEZWZpbmVkIGluIGQtdmFscHJp bnQuYyAgKi8KICAKLSBleHRlcm4gdm9pZCBkX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorIGV4dGVybiB2b2lkIGRfdmFsX3ByaW50IChzdHJ1 Y3QgdHlwZSAqdHlwZSwKIC0JCQkgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJl c3MsCiArCQkJIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKICAJ CQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkJIGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsLAorIAkJCSBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9kLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZC12 YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv ZC12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDcxNTEwMjYyICswMjAwCi0rKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2QtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUz MzUzMDA3NiArMDIwMAotQEAgLTczLDkgKzczLDkgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIy Ni5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAx MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZC12YWxwcmludC5jCTIwMTctMDItMjYg MjI6MDQ6MDMuNDI0NjA5ODM4ICswMTAwCitAQCAtNzMsNyArNzMsNyBAQAogIAogIC8qIEltcGxl bWVudHMgdGhlIGxhX3ZhbF9wcmludCByb3V0aW5lIGZvciBsYW5ndWFnZSBELiAgKi8KICB2b2lk Ci0tZF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwgaW50IGVtYmVkZGVkX29mZnNldCwKLS0gICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3Ms IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotLQkgICAgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsLAotK2RfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIsCi0rCSAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQURE UiBhZGRyZXNzLAotKwkgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLCBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKy1kX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGludCBlbWJlZGRlZF9vZmZzZXQsCisrZF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAgICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3Ms IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkgICAgIHN0cnVjdCB2YWx1 ZSAqdmFsLAogICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucykKLSB7Ci0gICBpbnQgcmV0OwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9kb3VibGVzdC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvZG91Ymxlc3QuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MjUxMDI3MCArMDIwMAotKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9kb3VibGVzdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMz NTMwMDc2ICswMjAwCi1AQCAtNzg0LDcgKzc4NCw3IEBACi0gICAgYnV0IG5vdCBwYXNzZWQgb24g YnkgR0RCLiAgVGhpcyBzaG91bGQgYmUgZml4ZWQuICAqLwotIAotIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZmxvYXRmb3JtYXQgKgotLWZsb2F0Zm9ybWF0X2Zyb21fbGVuZ3RoIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwgaW50IGxlbikKLStmbG9hdGZvcm1hdF9mcm9tX2xlbmd0aCAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsIExPTkdFU1QgbGVuKQotIHsKLSAgIGNvbnN0IHN0cnVjdCBmbG9hdGZv cm1hdCAqZm9ybWF0OwotIAotQEAgLTgxMiw4ICs4MTIsOCBAQAotICAgZWxzZQotICAgICBmb3Jt YXQgPSBOVUxMOwotICAgaWYgKGZvcm1hdCA9PSBOVUxMKQotLSAgICBlcnJvciAoXygiVW5yZWNv Z25pemVkICVkLWJpdCBmbG9hdGluZy1wb2ludCB0eXBlLiIpLAotLQkgICBsZW4gKiBUQVJHRVRf Q0hBUl9CSVQpOwotKyAgICBlcnJvciAoXygiVW5yZWNvZ25pemVkICVzLWJpdCBmbG9hdGluZy1w b2ludCB0eXBlLiIpLAotKwkgICBwbG9uZ2VzdCAobGVuICogVEFSR0VUX0NIQVJfQklUKSk7Ci0g ICByZXR1cm4gZm9ybWF0OwotIH0KLSAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv ZHdhcmYybG9jLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZHdhcmYybG9jLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9kd2FyZjJsb2Mu YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3NjUxMDMwMiArMDIwMAotKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9kd2FyZjJsb2MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMzUzMDA3NiArMDIw MAotQEAgLTE2MzgsMTkgKzE2MzgsMTkgQEAKLSAgICBCSVRTX0JJR19FTkRJQU4gaXMgdGFrZW4g ZGlyZWN0bHkgZnJvbSBnZGJhcmNoLiAgKi8KLSAKLSBzdGF0aWMgdm9pZAotLWNvcHlfYml0d2lz ZSAoZ2RiX2J5dGUgKmRlc3QsIHVuc2lnbmVkIGludCBkZXN0X29mZnNldF9iaXRzLAotLQkgICAg ICBjb25zdCBnZGJfYnl0ZSAqc291cmNlLCB1bnNpZ25lZCBpbnQgc291cmNlX29mZnNldF9iaXRz LAotLQkgICAgICB1bnNpZ25lZCBpbnQgYml0X2NvdW50LAotK2NvcHlfYml0d2lzZSAoZ2RiX2J5 dGUgKmRlc3QsIFVMT05HRVNUIGRlc3Rfb2Zmc2V0X2JpdHMsCi0rCSAgICAgIGNvbnN0IGdkYl9i eXRlICpzb3VyY2UsIFVMT05HRVNUIHNvdXJjZV9vZmZzZXQsCi0rCSAgICAgIFVMT05HRVNUIGJp dF9jb3VudCwKLSAJICAgICAgaW50IGJpdHNfYmlnX2VuZGlhbikKLSB7Ci0tICB1bnNpZ25lZCBp bnQgZGVzdF9hdmFpbDsKLSsgIHVuc2lnbmVkIGludCBkZXN0X2F2YWlsLCBzb3VyY2Vfb2Zmc2V0 X2JpdHM7Ci0gICBpbnQgZGF0dW07Ci0gCi0gICAvKiBSZWR1Y2UgZXZlcnl0aGluZyB0byBieXRl LXNpemUgcGllY2VzLiAgKi8KLSAgIGRlc3QgKz0gZGVzdF9vZmZzZXRfYml0cyAvIDg7Ci0gICBk ZXN0X29mZnNldF9iaXRzICU9IDg7Ci0tICBzb3VyY2UgKz0gc291cmNlX29mZnNldF9iaXRzIC8g ODsKLS0gIHNvdXJjZV9vZmZzZXRfYml0cyAlPSA4OwotKyAgc291cmNlICs9IHNvdXJjZV9vZmZz ZXQgLyA4OwotKyAgc291cmNlX29mZnNldF9iaXRzID0gc291cmNlX29mZnNldCAlIDg7Ci0gCi0g ICBkZXN0X2F2YWlsID0gOCAtIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4OwotIAotQEAgLTE2ODgsMTMg KzE2ODgsMTMgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9kd2FyZjJsb2Mu YwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjI2L2dkYi9kd2FyZjJsb2MuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQyNjYwOTg1MiArMDEw MAorQEAgLTE3NTgsMTIgKzE3NTgsMTIgQEAKICByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZh bHVlICp2KQogIHsKICAgIGludCBpOwpAQCAtMTU3NCwxMyArMTUyMCwxMiBAQCBJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2R3YXJmMmxvYy5jCiAgICBnZGJfYnl0ZSAqY29udGVudHM7 CiAgICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYwogICAgICA9IChzdHJ1Y3QgcGllY2VfY2xvc3Vy ZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2KTsKLSAgIHN0cnVjdCBmcmFtZV9pbmZvICpm cmFtZSA9IGZyYW1lX2ZpbmRfYnlfaWQgKFZBTFVFX0ZSQU1FX0lEICh2KSk7CiAtICBzaXplX3Qg dHlwZV9sZW47CiArICBVTE9OR0VTVCB0eXBlX2xlbjsKICAgIHNpemVfdCBidWZmZXJfc2l6ZSA9 IDA7Ci0gICBnZGJfYnl0ZSAqYnVmZmVyID0gTlVMTDsKLSAgIHN0cnVjdCBjbGVhbnVwICpjbGVh bnVwOwotQEAgLTE3MjEsOCArMTcyMSw4IEBACisgICBzdGQ6OnZlY3RvcjxnZGJfYnl0ZT4gYnVm ZmVyOworICAgaW50IGJpdHNfYmlnX2VuZGlhbgorQEAgLTE3ODcsOCArMTc4Nyw4IEBACiAgICBm b3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKICAg ICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsK QEAgLTE1OTEsNyArMTUzNiw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZHdh cmYybG9jLmMKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqaW50ZXJtZWRpYXRlX2J1ZmZlcjsKICAK ICAgICAgICAvKiBDb21wdXRlIHNpemUsIHNvdXJjZSwgYW5kIGRlc3RpbmF0aW9uIG9mZnNldHMg Zm9yIGNvcHlpbmcsIGluCi1AQCAtMTg2MiwxMyArMTg2MiwxMyBAQAorQEAgLTE5MjcsMTIgKzE5 MjcsMTIgQEAKICB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0cnVjdCB2 YWx1ZSAqZnJvbSkKICB7CiAgICBpbnQgaTsKQEAgLTE2MDEsMTMgKzE1NDYsMTIgQEAgSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJsb2MuYwogICAgY29uc3QgZ2RiX2J5dGUg KmNvbnRlbnRzOwogICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKICAgICAgPSAoc3RydWN0IHBp ZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodG8pOwotICAgc3RydWN0IGZy YW1lX2luZm8gKmZyYW1lID0gZnJhbWVfZmluZF9ieV9pZCAoVkFMVUVfRlJBTUVfSUQgKHRvKSk7 CiAtICBzaXplX3QgdHlwZV9sZW47CiArICBVTE9OR0VTVCB0eXBlX2xlbjsKICAgIHNpemVfdCBi dWZmZXJfc2l6ZSA9IDA7Ci0gICBnZGJfYnl0ZSAqYnVmZmVyID0gTlVMTDsKLSAgIHN0cnVjdCBj bGVhbnVwICpjbGVhbnVwOwotQEAgLTE4OTYsOCArMTg5Niw4IEBACisgICBzdGQ6OnZlY3Rvcjxn ZGJfYnl0ZT4gYnVmZmVyOworICAgaW50IGJpdHNfYmlnX2VuZGlhbgorQEAgLTE5NTEsOCArMTk1 MSw4IEBACiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9s ZW47IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMt PnBpZWNlc1tpXTsKQEAgLTE2MTgsNyArMTU2Miw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvZHdhcmYybG9jLmMKICAgICAgICBpbnQgbmVlZF9iaXR3aXNlOwogICAgICAgIGNv bnN0IGdkYl9ieXRlICpzb3VyY2VfYnVmZmVyOwogIAotQEAgLTIwMTcsNyArMjAxNyw3IEBACitA QCAtMjA3MSw3ICsyMDcxLDcgQEAKICAKICBzdGF0aWMgaW50CiAgY2hlY2tfcGllY2VkX3N5bnRo ZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIGJpdF9vZmZz ZXQsCkBAIC0xNjI3LDcgKzE1NzEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2R3YXJmMmxvYy5jCiAgewogICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKICAgICAgPSAoc3Ry dWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodmFsdWUpOwotQEAg LTIwMzAsNyArMjAzMCw3IEBACitAQCAtMjA4NCw3ICsyMDg0LDcgQEAKICAgIGZvciAoaSA9IDA7 IGkgPCBjLT5uX3BpZWNlcyAmJiBiaXRfbGVuZ3RoID4gMDsgaSsrKQogICAgICB7CiAgICAgICAg c3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpAQCAtMTYzNiw3ICsx NTgwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJsb2MuYwogIAog ICAgICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTIxMzIsOCArMjEzMiw4IEBACitA QCAtMjE4Niw4ICsyMTg2LDggQEAKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogICAgc3RydWN0IGZy YW1lX2luZm8gKmZyYW1lOwogICAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uIGJhdG9uOwpA QCAtMTY0Nyw3ICsxNTkxLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2Fy ZjJsb2MuYwogICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnBpZWNlID0gTlVMTDsKICAgIExP TkdFU1QgYnl0ZV9vZmZzZXQ7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcjsKLUBAIC0y MTUwLDcgKzIxNTAsNyBAQAorQEAgLTIyMDQsNyArMjIwNCw3IEBACiAgICBmb3IgKGkgPSAwOyBp IDwgYy0+bl9waWVjZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykKICAgICAgewogICAgICAgIHN0 cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE2NTYsMjAgKzE2 MDAsMjAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJsb2MuYwogIAog ICAgICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTI0NDQsNyArMjQ0NCw3IEBACi0g CSAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKK0BA IC0yNDc3LDcgKzI0NzcsNyBAQAorIAkgICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9IGN0eC5mZXRj aCAoMCk7CiAgCSAgICBnZGJfYnl0ZSAqY29udGVudHM7CiAgCSAgICBjb25zdCBnZGJfYnl0ZSAq dmFsX2J5dGVzOwogLQkgICAgc2l6ZV90IG4gPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAodmFs dWUpKTsKICsJICAgIFVMT05HRVNUIG4gPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAodmFsdWUp KTsKKyAJICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOwogIAogIAkgICAgaWYgKGJ5dGVfb2Zm c2V0ICsgVFlQRV9MRU5HVEggKHR5cGUpID4gbikKLSAJICAgICAgaW52YWxpZF9zeW50aGV0aWNf cG9pbnRlciAoKTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZHdhcmYycmVhZC5j CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQyLjA4MzUxMDM1OCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9kd2FyZjJyZWFkLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzY1MzAxMDAgKzAyMDAKLUBAIC0x OTM1LDEyICsxOTM1LDEyIEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvZHdh cmYycmVhZC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcu MTIuNTAuMjAxNzAyMjYvZ2RiL2R3YXJmMnJlYWQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQzMTYw OTg4OCArMDEwMAorQEAgLTE5NjksMTIgKzE5NjksMTIgQEAKICB9CiAgCiAgc3RhdGljIHZvaWQK QEAgLTE2ODYsNyArMTYzMCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZHdh cmYycmVhZC5jCiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMTI1NzMsOCArMTI1NzMsOCBAQAor QEAgLTEyNzg5LDggKzEyNzg5LDggQEAKICAJICAgICAgICAgb2JqZWN0LCBhbmQgdGhlbiBzdWJ0 cmFjdCBvZmYgdGhlIG51bWJlciBvZiBiaXRzIG9mCiAgCSAgICAgICAgIHRoZSBmaWVsZCBpdHNl bGYuICBUaGUgcmVzdWx0IGlzIHRoZSBiaXQgb2Zmc2V0IG9mCiAgCSAgICAgICAgIHRoZSBMU0Ig b2YgdGhlIGZpZWxkLiAgKi8KQEAgLTE2OTcsMTEgKzE2NDEsMTEgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJyZWFkLmMKICAKICAJICAgICAgYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOwogIAkgICAgICBpZiAoYXR0cikKLUluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZXZhbC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAx NzAyMjYvZ2RiL2V2YWwuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL2V2YWwuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4NjUxMDM4MyArMDIwMAotKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9ldmFsLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzc1MzAx MDggKzAyMDAKLUBAIC0zMTcsNyArMzE3LDggQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5v cmlnL2dkYi9ldmFsLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBn ZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZXZhbC5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDMxNjA5 ODg4ICswMTAwCitAQCAtMjk3LDcgKzI5Nyw4IEBACiAgICB3aGlsZSAoLS1uYXJncyA+PSAwKQog ICAgICB7CiAgICAgICAgc3RydWN0IHZhbHVlICp2YWwgPSBOVUxMOwpAQCAtMTcxMSw3ICsxNjU1 LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ldmFsLmMKICAgICAgICBiZmRf Ynl0ZSAqYWRkcjsKICAKICAgICAgICBmaWVsZG5vKys7Ci1AQCAtMzc4LDcgKzM3OSw3IEBACitA QCAtMzU4LDcgKzM1OSw3IEBACiAgCQkgICAgZW51bSBub3NpZGUgbm9zaWRlLCBMT05HRVNUIGxv d19ib3VuZCwgTE9OR0VTVCBoaWdoX2JvdW5kKQogIHsKICAgIExPTkdFU1QgaW5kZXg7CkBAIC0x NzIwLDcgKzE2NjQsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2V2YWwuYwog IAogICAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gQklOT1BfQ09NTUEpCiAgICAgIHsK LUBAIC04MjIsMTEgKzgyMywxMSBAQAorQEAgLTgwMiwxMSArODAzLDExIEBACiAgICAgIC8qIEZJ WE1FOiBBbHNvIG1peGVkIGludGVncmFsL2Jvb2xlYW5zLCB3aXRoIHJlc3VsdCBhbiBpbnRlZ2Vy LiAgKi8KICAgICAgewogICAgICAgIGNvbnN0IHN0cnVjdCBidWlsdGluX3R5cGUgKmJ1aWx0aW4g PSBidWlsdGluX3R5cGUgKGdkYmFyY2gpOwpAQCAtMTczNSw3ICsxNjc5LDcgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9ldmFsLmMKICAgICAgICBpbnQgdW5zaWduZWRfb3BlcmF0 aW9uOwogIAogICAgICAgIC8qIERldGVybWluZSB0eXBlIGxlbmd0aCBhbmQgc2lnbmVkbmVzcyBh ZnRlciBwcm9tb3Rpb24gZm9yCi1AQCAtMTAwOCw3ICsxMDA5LDcgQEAKK0BAIC05ODgsNyArOTg5 LDcgQEAKICAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3ZlYzsKICAgIGludCBjb2RlOwogICAgaW50IGl4 OwpAQCAtMTc0NCw3ICsxNjg4LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9l dmFsLmMKICAgIHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzOwogICAgaW50IHNhdmVfcG9zMTsKICAg IHN0cnVjdCBzeW1ib2wgKmZ1bmN0aW9uID0gTlVMTDsKLUBAIC0xMTg3LDcgKzExODgsNyBAQAor QEAgLTExNjcsNyArMTE2OCw3IEBACiAgCSAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUgPSBUWVBF X0lOREVYX1RZUEUgKHR5cGUpOwogIAkgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5cGUgPSBUWVBF X1RBUkdFVF9UWVBFICh0eXBlKTsKICAJICBzdHJ1Y3QgdmFsdWUgKmFycmF5ID0gYWxsb2NhdGVf dmFsdWUgKGV4cGVjdF90eXBlKTsKQEAgLTE3NTMsMTAgKzE2OTcsMTAgQEAgSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9ldmFsLmMKICAJICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9i b3VuZCwgaW5kZXg7CiAgCiAgCSAgaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUs ICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2YtbGFuZy5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2YtbGFuZy5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZi1sYW5nLmMJ MjAxNi0wNy0xNiAxNDozMzo0Mi4wODc1MTAzOTEgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvZi1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzc1MzAxMDggKzAyMDAKKy0t LSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9mLWxhbmcuYwkyMDE3LTAyLTI2IDIxOjU5 OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9mLWxhbmcu YwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQzMjYwOTg5NSArMDEwMAogQEAgLTEwMyw3ICsxMDMsNyBA QAogIAogIHN0YXRpYyB2b2lkCkBAIC0xNzY2LDIzICsxNzEwLDIzIEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvZi1sYW5nLmMKICAJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zKQogIHsKICAgIGNvbnN0IGNoYXIgKnR5cGVfZW5jb2RpbmcgPSBm X2dldF9lbmNvZGluZyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Yt bGFuZy5oCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2YtbGFuZy5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZi1sYW5nLmgJMjAxNi0wNy0x NiAxNDozMzo0Mi4wODc1MTAzOTEgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv Zi1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzc1MzAxMDggKzAyMDAKKy0tLSBnZGItNy4x Mi41MC4yMDE3MDIyNi5vcmlnL2dkYi9mLWxhbmcuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0Mzcx OTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9mLWxhbmcuaAkyMDE3LTAy LTI2IDIyOjA0OjAzLjQzMjYwOTg5NSArMDEwMAogQEAgLTMwLDcgKzMwLDcgQEAKICBleHRlcm4g dm9pZCBmX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICosIGNvbnN0IGNoYXIgKiwgc3RydWN0IHVp X2ZpbGUgKiwgaW50LAogIAkJCSAgaW50LCBjb25zdCBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25z ICopOwogIAotLWV4dGVybiB2b2lkIGZfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBn ZGJfYnl0ZSAqLCBpbnQsIENPUkVfQUREUiwKLStleHRlcm4gdm9pZCBmX3ZhbF9wcmludCAoc3Ry dWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAorLWV4dGVy biB2b2lkIGZfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBpbnQsIENPUkVfQUREUiwKKytleHRl cm4gdm9pZCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAog IAkJCSBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCi0gCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAor IAkJCSBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKik7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtdmFscHJpbnQuYworSW5k ZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9mLXZhbHByaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNi0wNy0xNiAx NDozMzo0Mi4wODc1MTAzOTEgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZi12 YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM3NTMwMTA4ICswMjAwCistLS0gZ2RiLTcu MTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTctMDItMjYgMjE6NTk6MzYu MDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2YtdmFscHJpbnQu YwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQzMjYwOTg5NSArMDEwMAogQEAgLTM4LDcgKzM4LDcgQEAK ICBzdGF0aWMgdm9pZCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICosIGludCk7CiAgc3RhdGlj IHZvaWQgZjc3X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICop OwpAQCAtMTgyMSw3ICsxNzY1LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9m LXZhbHByaW50LmMKICAKICAgIGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dl cmJvdW5kLCAmdXBwZXJib3VuZCk7CiAgCi1AQCAtMTcyLDcgKzE3Miw3IEBACitAQCAtMTc3LDcg KzE3Nyw3IEBACiAgCiAgc3RhdGljIHZvaWQKICBmNzdfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBl ICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTE4MzAsMzIgKzE3NzQsMjkgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mLXZhbHByaW50LmMKICAJCSBDT1JFX0FE RFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCSBpbnQgcmVjdXJzZSwKICAJ CSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLUBAIC0yMTEsOCArMjExLDkgQEAKK0BAIC0yMTYs NyArMjE2LDcgQEAKICAgICBmdW5jdGlvbjsgdGhleSBhcmUgaWRlbnRpY2FsLiAgKi8KICAKICB2 b2lkCi0tZl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKLS0JICAgICBDT1JFX0FERFIgYWRkcmVzcywgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0rZl92YWxfcHJpbnQgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLSsJICAgICBMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rCSAgICAgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgaW50IHJlY3Vyc2UsCi0gCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92 YWx1ZSwKKy1mX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBlbWJlZGRlZF9vZmZz ZXQsCisrZl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIGVtYmVkZGVkX29m ZnNldCwKKyAJICAgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg aW50IHJlY3Vyc2UsCisgCSAgICAgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLSB7Ci1JbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZpbmR2YXIuYworSW5kZXg6IGdkYi03LjEyLjUwLjIw MTcwMjI2L2dkYi9maW5kdmFyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi9maW5kdmFyLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wODg1MTAzOTkgKzAyMDAK LSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZmluZHZhci5jCTIwMTYtMDctMTYgMTQ6MzM6 NDQuNTM3NTMwMTA4ICswMjAwCi1AQCAtODAyLDcgKzgwMiw3IEBACistLS0gZ2RiLTcuMTIuNTAu MjAxNzAyMjYub3JpZy9nZGIvZmluZHZhci5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5 ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2ZpbmR2YXIuYwkyMDE3LTAyLTI2 IDIyOjA0OjAzLjQzMjYwOTg5NSArMDEwMAorQEAgLTgxOSw3ICs4MTksNyBAQAogIGRlZmF1bHRf dmFsdWVfZnJvbV9yZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB0eXBl ICp0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlZ251bSwgc3RydWN0 IGZyYW1lX2lkIGZyYW1lX2lkKQogIHsKIC0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7 CiArICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICAgIHN0cnVjdCB2YWx1ZSAq dmFsdWUgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7CisgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJh bWU7CiAgCi0gICBWQUxVRV9MVkFMICh2YWx1ZSkgPSBsdmFsX3JlZ2lzdGVyOwotQEAgLTgzOCw3 ICs4MzgsNyBAQAorQEAgLTg2Myw3ICs4NjMsNyBAQAogICAgTE9OR0VTVCBvZmZzZXQgPSAwOwog ICAgTE9OR0VTVCByZWdfb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2YWx1ZSk7CiAgICBpbnQgcmVn bnVtID0gVkFMVUVfUkVHTlVNICh2YWx1ZSk7CkBAIC0xODY0LDcgKzE4MDUsNyBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZpbmR2YXIuYwogIAogICAgZ2RiX2Fzc2VydCAoVkFM VUVfTFZBTCAodmFsdWUpID09IGx2YWxfcmVnaXN0ZXIpOwogIAotQEAgLTg1Myw3ICs4NTMsNyBA QAorQEAgLTg3OCw3ICs4NzgsNyBAQAogICAgd2hpbGUgKGxlbiA+IDApCiAgICAgIHsKICAgICAg ICBzdHJ1Y3QgdmFsdWUgKnJlZ3ZhbCA9IGdldF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoZnJhbWUs IHJlZ251bSk7CkBAIC0xODczLDExICsxODE0LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvZmluZHZhci5jCiAgCiAgICAgICAgLyogSWYgdGhlIHJlZ2lzdGVyIGxlbmd0aCBp cyBsYXJnZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGJ5dGVzCiAgICAgICAgICAgcmVtYWluaW5nIHRv IGNvcHksIHRoZW4gb25seSBjb3B5IHRoZSBhcHByb3ByaWF0ZSBieXRlcy4gICovCi1JbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZyYW1lLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3 MDIyNi9nZGIvZnJhbWUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL2ZyYW1lLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wODk1MTA0MDcgKzAyMDAKLSsrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZnJhbWUuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzODUz MDExNiArMDIwMAotQEAgLTEzMjAsNyArMTMyMCw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAy MjYub3JpZy9nZGIvZnJhbWUuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAor KysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9mcmFtZS5jCTIwMTctMDItMjYgMjI6MDQ6MDMu NDMzNjA5OTAyICswMTAwCitAQCAtMTM1OCw3ICsxMzU4LDcgQEAKICAKICBpbnQKICBnZXRfZnJh bWVfcmVnaXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwK QEAgLTE4ODYsNyArMTgyNyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZnJh bWUuYwogIAkJCSAgaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKICB7CiAgICBz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci1AQCAtMTM0 OSw3ICsxMzQ5LDcgQEAKK0BAIC0xMzg3LDcgKzEzODcsNyBAQAogICAgICB9CiAgICBpZiAobGVu ID4gbWF4c2l6ZSkKICAgICAgZXJyb3IgKF8oIkJhZCBkZWJ1ZyBpbmZvcm1hdGlvbiBkZXRlY3Rl ZDogIgpAQCAtMTg5NSwxMSArMTgzNiwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2ZyYW1lLmMKICAKICAgIC8qIENvcHkgdGhlIGRhdGEuICAqLwogICAgd2hpbGUgKGxlbiA+ IDApCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZyYW1lLmgKK0luZGV4OiBnZGIt Ny4xMi41MC4yMDE3MDIyNi9nZGIvZnJhbWUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2ZyYW1lLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTA1MTA0MTUg KzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZnJhbWUuaAkyMDE2LTA3LTE2IDE0 OjMzOjQ0LjUzODUzMDExNiArMDIwMAotQEAgLTU4NSw3ICs1ODUsNyBAQAorLS0tIGdkYi03LjEy LjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2ZyYW1lLmgJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkz NjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZnJhbWUuaAkyMDE3LTAyLTI2 IDIyOjA0OjAzLjQzMzYwOTkwMiArMDEwMAorQEAgLTYwMCw3ICs2MDAsNyBAQAogICAgIGNvbnRl bnRzIGFyZSBvcHRpbWl6ZWQgb3V0IG9yIHVuYXZhaWxhYmxlLCBzZXQgKk9QVElNSVpFRFAsCiAg ICAgKlVOQVZBSUxBQkxFUCBhY2NvcmRpbmdseS4gICovCiAgZXh0ZXJuIGludCBnZXRfZnJhbWVf cmVnaXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKQEAg LTE5MDgsMjAgKzE4NDksMjAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mcmFt ZS5oCiAgCQkJCSAgICAgZ2RiX2J5dGUgKm15YWRkciwKICAJCQkJICAgICBpbnQgKm9wdGltaXpl ZHAsIGludCAqdW5hdmFpbGFibGVwKTsKICAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvZ2RidHlwZXMuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJ0eXBlcy5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ2RidHlwZXMu YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5MjUxMDQzMSArMDIwMAotKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9nZGJ0eXBlcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM5NTMwMTI0ICswMjAw Ci1AQCAtMjcyMiw3ICsyNzIyLDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dk Yi9nZGJ0eXBlcy5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2dkYnR5cGVzLmMJMjAxNy0wMi0yNiAyMjowNDowMy40MzQ2 MDk5MDkgKzAxMDAKK0BAIC0yNzgyLDcgKzI3ODIsNyBAQAogICAgIGxlYXN0IGFzIGxvbmcgYXMg T0JKRklMRS4gICovCiAgCiAgc3RydWN0IHR5cGUgKgotLWluaXRfdHlwZSAoZW51bSB0eXBlX2Nv ZGUgY29kZSwgaW50IGxlbmd0aCwgaW50IGZsYWdzLAotK2luaXRfdHlwZSAoZW51bSB0eXBlX2Nv ZGUgY29kZSwgTE9OR0VTVCBsZW5ndGgsIGludCBmbGFncywKLSAJICAgY29uc3QgY2hhciAqbmFt ZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCistaW5pdF90eXBlIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSwgZW51bSB0eXBlX2NvZGUgY29kZSwgaW50IGxlbmd0aCwKKytpbml0X3R5cGUgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBlbnVtIHR5cGVfY29kZSBjb2RlLCBMT05HRVNUIGxlbmd0 aCwKKyAJICAgY29uc3QgY2hhciAqbmFtZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLUBA IC0yOTYyLDggKzI5NjIsOCBAQAorQEAgLTMwOTEsOCArMzA5MSw4IEBACiAgCiAgc3RhdGljIGlu dAogIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3Qg dHlwZSAqZGNsYXNzLApAQCAtMTkzMiw3ICsxODczLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9nZGJ0eXBlcy5jCiAgCQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB2 YWx1ZSAqdmFsKQogIHsKICAgIGludCBpLCBjb3VudCA9IDA7Ci1AQCAtMjk3NCw3ICsyOTc0LDcg QEAKK0BAIC0zMTAzLDcgKzMxMDMsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNF Q0xBU1NFUyAoZGNsYXNzKSAmJiBjb3VudCA8IDI7ICsraSkKICAgICAgewogICAgICAgIHN0cnVj dCB0eXBlICppdGVyOwpAQCAtMTk0MSw3ICsxODgyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9nZGJ0eXBlcy5jCiAgCiAgICAgICAgaXRlciA9IGNoZWNrX3R5cGVkZWYgKFRZ UEVfQkFTRUNMQVNTIChkY2xhc3MsIGkpKTsKICAKLUBAIC0zMDE1LDcgKzMwMTUsNyBAQAorQEAg LTMxNDQsNyArMzE0NCw3IEBACiAgaW50CiAgaXNfdW5pcXVlX2FuY2VzdG9yIChzdHJ1Y3QgdHlw ZSAqYmFzZSwgc3RydWN0IHZhbHVlICp2YWwpCiAgewpAQCAtMTk1MCw3ICsxODkxLDcgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBlcy5jCiAgCiAgICByZXR1cm4gaXNf dW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoYmFzZSwgdmFsdWVfdHlwZSAodmFsKSwgJm9mZnNldCwK ICAJCQkJICAgIHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAodmFsKSwKLUBAIC00MjAzLDcg KzQyMDMsNyBAQAorQEAgLTQzMzIsNyArNDMzMiw3IEBACiAgICAgICAgYnJlYWs7CiAgICAgIH0K ICAgIHB1dHNfZmlsdGVyZWQgKCJcbiIpOwpAQCAtMTk1OSw3ICsxOTAwLDcgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBlcy5jCiAgICBpZiAoVFlQRV9PQkpGSUxFX09X TkVEICh0eXBlKSkKICAgICAgewogICAgICAgIHByaW50ZmlfZmlsdGVyZWQgKHNwYWNlcywgIm9i amZpbGUgIik7Ci1AQCAtNDY2Myw3ICs0NjYzLDcgQEAKK0BAIC00NzkyLDcgKzQ3OTIsNyBAQAog IAogIHN0cnVjdCB0eXBlICoKICBhcmNoX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLApA QCAtMTk2OCwxMSArMTkwOSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dk YnR5cGVzLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAKLUluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dk Yi9nZGJ0eXBlcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvZ2RidHlwZXMuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5MzUxMDQzOSArMDIwMAotKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBlcy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM5 NTMwMTI0ICswMjAwCi1AQCAtODA2LDcgKzgwNiw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAy MjYub3JpZy9nZGIvZ2RidHlwZXMuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEw MAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJ0eXBlcy5oCTIwMTctMDItMjYgMjI6 MDQ6MDMuNDM1NjA5OTE2ICswMTAwCitAQCAtNzgyLDcgKzc4Miw3IEBACiAgICAgICB0eXBlX2xl bmd0aF91bml0cyBmdW5jdGlvbiBzaG91bGQgYmUgdXNlZCBpbiBvcmRlciB0byBnZXQgdGhlIGxl bmd0aAogICAgICAgZXhwcmVzc2VkIGluIHRhcmdldCBhZGRyZXNzYWJsZSBtZW1vcnkgdW5pdHMu ICAqLwogIApAQCAtMTk4MSwxMyArMTkyMiwxNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2dkYnR5cGVzLmgKICAKICAgIC8qICogQ29yZSB0eXBlLCBzaGFyZWQgYnkgYSBncm91 cCBvZiBxdWFsaWZpZWQgdHlwZXMuICAqLwogIAotQEAgLTE2NzcsMTEgKzE2NzcsMTEgQEAKK0BA IC0xNjU4LDcgKzE2NTgsNyBAQAogIAogIC8qICogSGVscGVyIGZ1bmN0aW9uIHRvIGNvbnN0cnVj dCBvYmpmaWxlLW93bmVkIHR5cGVzLiAgKi8KICAKLS1leHRlcm4gc3RydWN0IHR5cGUgKmluaXRf dHlwZSAoZW51bSB0eXBlX2NvZGUsIGludCwgaW50LCBjb25zdCBjaGFyICosCi0rZXh0ZXJuIHN0 cnVjdCB0eXBlICppbml0X3R5cGUgKGVudW0gdHlwZV9jb2RlLCBMT05HRVNULCBpbnQsIGNvbnN0 IGNoYXIgKiwKLSAJCQkgICAgICAgc3RydWN0IG9iamZpbGUgKik7CistZXh0ZXJuIHN0cnVjdCB0 eXBlICppbml0X3R5cGUgKHN0cnVjdCBvYmpmaWxlICosIGVudW0gdHlwZV9jb2RlLCBpbnQsCisr ZXh0ZXJuIHN0cnVjdCB0eXBlICppbml0X3R5cGUgKHN0cnVjdCBvYmpmaWxlICosIGVudW0gdHlw ZV9jb2RlLCBMT05HRVNULAorIAkJCSAgICAgICBjb25zdCBjaGFyICopOworIGV4dGVybiBzdHJ1 Y3QgdHlwZSAqaW5pdF9pbnRlZ2VyX3R5cGUgKHN0cnVjdCBvYmpmaWxlICosIGludCwgaW50LAor IAkJCQkgICAgICAgY29uc3QgY2hhciAqKTsKK0BAIC0xNjc1LDcgKzE2NzUsNyBAQAorIAkJCQkg ICAgICAgc3RydWN0IHR5cGUgKik7CiAgCiAgLyogSGVscGVyIGZ1bmN0aW9ucyB0byBjb25zdHJ1 Y3QgYXJjaGl0ZWN0dXJlLW93bmVkIHR5cGVzLiAgKi8KIC1leHRlcm4gc3RydWN0IHR5cGUgKmFy Y2hfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgZW51bSB0eXBlX2NvZGUsIGludCwKQEAgLTE5OTUs MTAgKzE5NDAsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBlcy5o CiAgCQkJICAgICAgIGNvbnN0IGNoYXIgKik7CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2lu dGVnZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50LCBpbnQsCiAgCQkJCSAgICAgICBjb25z dCBjaGFyICopOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUtdjItYWJpLmMK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZ251LXYyLWFiaS5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ251LXYyLWFiaS5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDkzNTEwNDM5ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2dudS12Mi1hYmkuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAorLS0tIGdk Yi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2dudS12Mi1hYmkuYwkyMDE3LTAyLTI2IDIxOjU5 OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nbnUtdjIt YWJpLmMJMjAxNy0wMi0yNiAyMjowNDowMy40MzU2MDk5MTYgKzAxMDAKIEBAIC04Miw3ICs4Miw3 IEBACiAgICAgVFlQRSBpcyB0aGUgdHlwZSBpbiB3aGljaCBGIGlzIGxvY2F0ZWQuICAqLwogIHN0 YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtMjAzNiwxMCArMTk4MSwxMCBAQCBJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2dudS12Mi1hYmkuYwogIAkgICAgZ251djJfYmFzZWNsYXNzX29m ZnNldCAodHlwZSwgaSwgdmFsYWRkciwKICAJCQkJICAgIGVtYmVkZGVkX29mZnNldCwgYWRkcmVz cywgdmFsKTsKICAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ251LXYzLWFiaS5j CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2dudS12My1hYmkuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2dudS12My1hYmkuYwkyMDE2LTA3 LTE2IDE0OjMzOjQyLjA5NDUxMDQ0NyArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9nbnUtdjMtYWJpLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKKy0tLSBn ZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNy0wMi0yNiAyMTo1 OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZ251LXYz LWFiaS5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDM1NjA5OTE2ICswMTAwCiBAQCAtMTA4LDcgKzEw OCw3IEBACiAgewogICAgc3RydWN0IHR5cGUgKnQ7CkBAIC0yMDU4LDcgKzIwMDMsNyBAQCBJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dudS12My1hYmkuYwogIHZ0YWJsZV9hZGRyZXNz X3BvaW50X29mZnNldCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCiAgewogICAgc3RydWN0IHR5 cGUgKnZ0YWJsZV90eXBlCi1AQCAtNDExLDcgKzQxMSw3IEBACitAQCAtNDA3LDcgKzQwNyw3IEBA CiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCiAgZ251djNfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0 IHZhbHVlICoqdmFsdWVfcCwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZm5fZmll bGQgKmYsIGludCBqLApAQCAtMjA2Nyw3ICsyMDEyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9nbnUtdjMtYWJpLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdmFsdWVzX3R5cGUg PSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICgqdmFsdWVfcCkpOwogICAgc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2g7Ci1AQCAtNDQxLDcgKzQ0MSw3IEBACitAQCAtNDM3LDcgKzQzNyw3IEBACiAg CiAgICAgLTEgaXMgcmV0dXJuZWQgb24gZXJyb3IuICAqLwogIApAQCAtMjA3Niw3ICsyMDIxLDcg QEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUtdjMtYWJpLmMKICBnbnV2M19i YXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAogIAkJCWNvbnN0 IGJmZF9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKICAJCQlDT1JFX0FE RFIgYWRkcmVzcywgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpCi1AQCAtNDUwLDcgKzQ1MCw3IEBA CitAQCAtNDQ2LDcgKzQ0Niw3IEBACiAgICBzdHJ1Y3QgdHlwZSAqcHRyX3R5cGU7CiAgICBzdHJ1 Y3QgdmFsdWUgKnZ0YWJsZTsKICAgIHN0cnVjdCB2YWx1ZSAqdmJhc2VfYXJyYXk7CkBAIC0yMDg1 LDcgKzIwMzAsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dudS12My1hYmku YwogIAogICAgLyogRGV0ZXJtaW5lIGFyY2hpdGVjdHVyZS4gICovCiAgICBnZGJhcmNoID0gZ2V0 X3R5cGVfYXJjaCAodHlwZSk7Ci1AQCAtNDc0LDcgKzQ3NCw3IEBACitAQCAtNDY5LDcgKzQ2OSw3 IEBACiAgICBjdXJfYmFzZV9vZmZzZXQgPSBjdXJfYmFzZV9vZmZzZXQgKyB2dGFibGVfYWRkcmVz c19wb2ludF9vZmZzZXQgKGdkYmFyY2gpOwogICAgaWYgKCgtIGN1cl9iYXNlX29mZnNldCkgJSBU WVBFX0xFTkdUSCAocHRyX3R5cGUpICE9IDApCiAgICAgIGVycm9yIChfKCJNaXNhbGlnbmVkIHZi YXNlIG9mZnNldC4iKSk7CkBAIC0yMDk0LDcgKzIwMzksNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2dudS12My1hYmkuYwogIAogICAgdnRhYmxlID0gZ251djNfZ2V0X3Z0YWJs ZSAoZ2RiYXJjaCwgdHlwZSwgYWRkcmVzcyArIGVtYmVkZGVkX29mZnNldCk7CiAgICBnZGJfYXNz ZXJ0ICh2dGFibGUgIT0gTlVMTCk7Ci1AQCAtNTE4LDcgKzUxOCw3IEBACitAQCAtNTEzLDcgKzUx Myw3IEBACiAgICAgICB3ZSdyZSBvdXQgb2YgbHVjay4gICovCiAgICBmb3IgKGkgPSAwOyBpIDwg VFlQRV9OX0JBU0VDTEFTU0VTIChkb21haW4pOyBpKyspCiAgICAgIHsKQEAgLTIxMDMsOTEgKzIw NDgsMzcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUtdjMtYWJpLmMKICAg ICAgICBzdHJ1Y3QgdHlwZSAqYmFzZXR5cGU7CiAgCiAgICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9W SVJUVUFMIChkb21haW4sIGkpKQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nby1s YW5nLmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZ28tbGFuZy5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ28tbGFuZy5oCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDk0NTEwNDQ3ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2dvLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0 MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nby1sYW5nLmgJMjAx Ny0wMi0yNiAyMjowNDowMy40MzY2MDk5MjMgKzAxMDAKIEBAIC04NSw3ICs4NSw3IEBACiAgLyog RGVmaW5lZCBpbiBnby12YWxwcmludC5jLiAgKi8KICAKLSBleHRlcm4gdm9pZCBnb192YWxfcHJp bnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKyBleHRlcm4g dm9pZCBnb192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLAogLQkJCSAgaW50IGVtYmVkZGVk X29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiArCQkJICBMT05HRVNUIGVtYmVkZGVkX29mZnNl dCwgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQg cmVjdXJzZSwKLSAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJCSAgc3RydWN0IHZh bHVlICp2YWwsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cyk7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dvLXZhbHByaW50LmMKK0luZGV4 OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZ28tdmFscHJpbnQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNi0wNy0xNiAx NDozMzo0Mi4wOTQ1MTA0NDcgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ28t dmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAotQEAgLTg2LDkg Kzg2LDkgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9nby12YWxwcmludC5j CTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAx NzAyMjYvZ2RiL2dvLXZhbHByaW50LmMJMjAxNy0wMi0yNiAyMjowNDowMy40MzY2MDk5MjMgKzAx MDAKK0BAIC04Niw3ICs4Niw3IEBACiAgLyogSW1wbGVtZW50cyB0aGUgbGFfdmFsX3ByaW50IHJv dXRpbmUgZm9yIGxhbmd1YWdlIEdvLiAgKi8KICAKICB2b2lkCi0tZ29fdmFsX3ByaW50IChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZz ZXQsCi0tCSAgICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBp bnQgcmVjdXJzZSwKLS0JICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0rZ29fdmFsX3By aW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0rCSAgICAg IExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsJICAgICAgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs LAorLWdvX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBlbWJlZGRlZF9vZmZzZXQs CisrZ29fdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBlbWJlZGRlZF9vZmZz ZXQsCisgCSAgICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBp bnQgcmVjdXJzZSwKKyAJICAgICAgc3RydWN0IHZhbHVlICp2YWwsCiAgCSAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQotIHsKLSAgIHR5cGUgPSBjaGVja190 eXBlZGVmICh0eXBlKTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtbGFuZy5j Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvanYtbGFuZy5j CTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk0NTEwNDQ3ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2p2LWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAot QEAgLTQ0MCw3ICs0NDAsNyBAQAotICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBl KTsgaSA8IG5maWVsZHM7IGkrKykKLSAgICAgewotICAgICAgIGludCBhY2NmbGFnczsKLS0gICAg ICBpbnQgYm9mZnNldDsKLSsgICAgICBMT05HRVNUIGJvZmZzZXQ7Ci0gCi0gICAgICAgaWYgKGZp ZWxkcyA9PSBOVUxMKQotIAl7Ci1AQCAtODkwLDcgKzg5MCw3IEBACi0gc3RhdGljIHZvaWQKLSBq YXZhX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwK LSAJICAgICAgIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsCi0tCSAgICAgICB1bnNpZ25lZCBpbnQg bGVuZ3RoLCBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAotKwkgICAg ICAgVUxPTkdFU1QgbGVuZ3RoLCBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlw c2VzLAotIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp Ci0gewotICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGphdmFfZ2V0X2VuY29kaW5nICh0 eXBlKTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtbGFuZy5oCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2xhbmd1YWdlLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9qdi1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4w OTQ1MTA0NDcgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtbGFuZy5oCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTQwNTMwMTMyICswMjAwCi1AQCAtNDMsOCArNDMsOCBAQAotIAot IGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9qYXZhX3R5cGUgKmJ1aWx0aW5famF2YV90eXBl IChzdHJ1Y3QgZ2RiYXJjaCAqKTsKLSAKLS1leHRlcm4gdm9pZCBqYXZhX3ZhbF9wcmludCAoc3Ry dWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgaW50LCBDT1JFX0FERFIsCi0tCQkJICAgIHN0 cnVjdCB1aV9maWxlICosIGludCwKLStleHRlcm4gdm9pZCBqYXZhX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwKLSsJCQkgICAgQ09SRV9BRERSLCBz dHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCi0gCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotIAkJ CSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLSAKLUluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvanYtdmFscHJpbnQuYwotPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2p2LXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0 Mi4wOTU1MTA0NTUgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtdmFscHJp bnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAotQEAgLTQ1NCw3ICs0NTQs NyBAQAotIAotIHZvaWQKLSBqYXZhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFk ZHJlc3MsCi0rCQlMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0g CQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCWNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsLAotIAkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xhbmd1YWdlLmMKLT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMDk1NTEwNDU1ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xh bmd1YWdlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAyMDAKLUBAIC03NjYsNyAr NzY2LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9sYW5ndWFnZS5jCTIw MTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAy MjYvZ2RiL2xhbmd1YWdlLmMJMjAxNy0wMi0yNiAyMjowNDowMy40MzY2MDk5MjMgKzAxMDAKK0BA IC03NTQsNyArNzU0LDcgQEAKICAKICBzdGF0aWMgdm9pZAogIHVua19sYW5nX3ByaW50c3RyIChz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTIxOTYsMjAgKzIw ODcsMjAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9sYW5ndWFnZS5jCiAgCQkg ICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJICAgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotQEAgLTc4NSw3ICs3ODUs NyBAQAorQEAgLTc3Myw3ICs3NzMsNyBAQAogIAogIHN0YXRpYyB2b2lkCi0gdW5rX2xhbmdfdmFs X3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCisgdW5r X2xhbmdfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwKIC0JCSAgICBpbnQgZW1iZWRkZWRf b2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKICsJCSAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNl dCwgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHJlY3Vyc2UsCi0gCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCisgCQkgICAgc3RydWN0 IHZhbHVlICp2YWwsCiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMpCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xhbmd1YWdlLmgKK0luZGV4 OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbGFuZ3VhZ2UuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNi0wNy0xNiAxNDozMzo0 Mi4wOTU1MTA0NTUgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbGFuZ3VhZ2Uu aAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAotQEAgLTE5Niw3ICsxOTYsNyBA QAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNy0wMi0y NiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIv bGFuZ3VhZ2UuaAkyMDE3LTAyLTI2IDIyOjA0OjAzLjQzNjYwOTkyMyArMDEwMAorQEAgLTE5Nyw3 ICsxOTcsNyBAQAogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKiBzdHJlYW0pOwogIAogICAgICB2b2lk ICgqbGFfcHJpbnRzdHIpIChzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSwgc3RydWN0IHR5cGUgKmVs dHR5cGUsCkBAIC0yMjE4LDE5ICsyMTA5LDE5IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvbGFuZ3VhZ2UuaAogIAkJCSBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2Vs bGlwc2VzLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKICAKLUBA IC0yMzgsNyArMjM4LDcgQEAKK0BAIC0yMzUsNyArMjM1LDcgQEAKKyAgICAgICAgcHJpbnRpbmcu ICAqLwogIAogICAgICB2b2lkICgqbGFfdmFsX3ByaW50KSAoc3RydWN0IHR5cGUgKnR5cGUsCi0g CQkJICBjb25zdCBnZGJfYnl0ZSAqY29udGVudHMsCiAtCQkJICBpbnQgZW1iZWRkZWRfb2Zmc2V0 LCBDT1JFX0FERFIgYWRkcmVzcywKICsJCQkgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JF X0FERFIgYWRkcmVzcywKICAJCQkgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNl LAotIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCisgCQkJICBzdHJ1Y3QgdmFsdWUgKnZh bCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUlu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItbGFuZy5jCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMjYvZ2RiL20yLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL20yLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyAr MDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi1sYW5nLmMJMjAxNi0wNy0xNiAx NDozMzo0NC41NDA1MzAxMzIgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dk Yi9tMi1sYW5nLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIyNi9nZGIvbTItbGFuZy5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDM2NjA5 OTIzICswMTAwCiBAQCAtMTA0LDEwICsxMDQsMTAgQEAKICAKICBzdGF0aWMgdm9pZApAQCAtMjI2 NSwyMyArMjE1NiwyMyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLWxhbmcu YwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0aGluZ3NfcHJpbnRlZCArPSBvcHRpb25zLT5yZXBl YXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5lZWRfY29tbWEgPSAxOwotSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9tMi1sYW5nLmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9n ZGIvbTItbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvbTItbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk2NTEwNDYzICswMjAwCi0rKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUz MDEzMiArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL20yLWxhbmcuaAky MDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjI2L2dkYi9tMi1sYW5nLmgJMjAxNy0wMi0yNiAyMjowNDowMy40Mzc2MDk5MzAgKzAxMDAKIEBA IC0zNCw3ICszNCw3IEBACiAgZXh0ZXJuIGludCBtMl9pc19sb25nX3NldCAoc3RydWN0IHR5cGUg KnR5cGUpOwogIGV4dGVybiBpbnQgbTJfaXNfdW5ib3VuZGVkX2FycmF5IChzdHJ1Y3QgdHlwZSAq dHlwZSk7CiAgCi0tZXh0ZXJuIHZvaWQgbTJfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25z dCBnZGJfYnl0ZSAqLCBpbnQsIENPUkVfQUREUiwKLStleHRlcm4gdm9pZCBtMl92YWxfcHJpbnQg KHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsIENPUkVfQUREUiwKKy1l eHRlcm4gdm9pZCBtMl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGludCwgQ09SRV9BRERSLAor K2V4dGVybiB2b2lkIG0yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgTE9OR0VTVCwgQ09SRV9B RERSLAogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAotIAkJCSAgY29uc3Qgc3RydWN0IHZh bHVlICosCisgCQkJICBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICopOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi10eXBl cHJpbnQuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9tMi10eXBlcHJpbnQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL20yLXR5cGVwcmlu dC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk2NTEwNDYzICswMjAwCi0rKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL20yLXR5cGVwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQxNTMwMTQw ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvbTItdHlwZXByaW50LmMJ MjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIyNi9nZGIvbTItdHlwZXByaW50LmMJMjAxNy0wMi0yNiAyMjowNDowMy40Mzc2MDk5MzAgKzAx MDAKIEBAIC0yMzQsOSArMjM0LDEyIEBACiAgCSAgbTJfcHJpbnRfYm91bmRzIChUWVBFX0lOREVY X1RZUEUgKHR5cGUpLCBzdHJlYW0sIHNob3csIC0xLCAxKTsKICAJfQpAQCAtMjI5OCwxMCArMjE4 OSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLXR5cGVwcmludC5jCiAg ICAgIH0KICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIl0gT0YgIik7CiAgICBtMl9wcmlu dF90eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgIiIsIHN0cmVhbSwgc2hvdywgbGV2ZWws IGZsYWdzKTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItdmFscHJpbnQuYwor SW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9tMi12YWxwcmludC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9tMi12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzU6MTkuODMwMjk3MDEzICswMjAwCistLS0g Z2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE3LTAyLTI2IDIx OjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9tMi12 YWxwcmludC5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDM3NjA5OTMwICswMTAwCiBAQCAtMzUsNyAr MzUsNyBAQAogIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICBzdGF0aWMgdm9pZApA QCAtMjMwOSw3ICsyMjAwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi12 YWxwcmludC5jCiAtCQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAog KwkJCSBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkJIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkJCSBjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbCwKKyAJCQkgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAogQEAgLTY3LDcgKzY3LDcgQEAKICAKQEAgLTIzMzYs MTYgKzIyMjcsMTYgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi12YWxwcmlu dC5jCiAtCQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAogKwkJCSBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkJIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCwKKyAJCQkgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zLAogQEAgLTMwOCwxMyArMzA4LDEzIEBACiAgICAgZnVuY3Rpb247 IHRoZXkgYXJlIGlkZW50aWNhbC4gICovCiAgCiAgdm9pZAotLW0yX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0 LAotK20yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKy1tMl92YWxfcHJpbnQgKHN0cnVjdCB0eXBl ICp0eXBlLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorK20yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUg KnR5cGUsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAogIAkgICAgICBDT1JFX0FERFIgYWRkcmVz cywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCSAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCisgCSAgICAgIHN0cnVjdCB2YWx1ZSAqb3JpZ2lu YWxfdmFsdWUsCiAgCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlw ZSk7CkBAIC0yMzUzLDggKzIyNDQsOCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L20yLXZhbHByaW50LmMKICsgIFVMT05HRVNUIGxlbjsKICAgIHN0cnVjdCB0eXBlICplbHR0eXBl OwogICAgQ09SRV9BRERSIGFkZHI7Ci0gCi1AQCAtMzM5LDcgKzMzOSw3IEBACisgICBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciA9IHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAob3JpZ2luYWxf dmFsdWUpOworQEAgLTM0MCw3ICszNDAsNyBAQAogIAkgICAgICAgICBlbGVtZW50cyB1cCB0byBp dC4gICovCiAgCSAgICAgIGlmIChvcHRpb25zLT5zdG9wX3ByaW50X2F0X251bGwpCiAgCQl7CkBA IC0yMzYzLDcgKzIyNTQsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLXZh bHByaW50LmMKICAKICAJCSAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIuICAqLwogIAkJICBmb3Ig KHRlbXBfbGVuID0gMDsKLUBAIC00MTUsNyArNDE1LDcgQEAKK0BAIC00MTYsNyArNDE2LDcgQEAK ICAJewogIAkgIHN0cnVjdCB0eXBlICpyYW5nZSA9IGVsdHR5cGU7CiAgCSAgTE9OR0VTVCBsb3df Ym91bmQsIGhpZ2hfYm91bmQ7CkBAIC0yMzcyLDEyICsyMjYzLDEyIEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvbTItdmFscHJpbnQuYwogIAkgIGludCBuZWVkX2NvbW1hID0gMDsK ICAKICAJICBmcHV0c19maWx0ZXJlZCAoInsiLCBzdHJlYW0pOwotSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9tZW1yYW5nZS5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2Ri L21lbXJhbmdlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dk Yi9tZW1yYW5nZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk2NTEwNDYzICswMjAwCi0rKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lbXJhbmdlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDE1 MzAxNDAgKzAyMDAKLUBAIC0yMSw4ICsyMSw4IEBACi0gI2luY2x1ZGUgIm1lbXJhbmdlLmgiCist LS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvbWVtcmFuZ2UuYwkyMDE3LTAyLTI2IDIx OjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9tZW1y YW5nZS5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDM3NjA5OTMwICswMTAwCitAQCAtMjIsOCArMjIs OCBAQAorICNpbmNsdWRlIDxhbGdvcml0aG0+CiAgCiAgaW50CiAtbWVtX3Jhbmdlc19vdmVybGFw IChDT1JFX0FERFIgc3RhcnQxLCBpbnQgbGVuMSwKQEAgLTIzODcsMTAgKzIyNzgsMTAgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tZW1yYW5nZS5jCiAgewogICAgVUxPTkdFU1Qg aCwgbDsKICAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVtcmFuZ2UuaAorSW5k ZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9tZW1yYW5nZS5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbWVtcmFuZ2UuaAkyMDE2LTA3LTE2IDE0OjMz OjQyLjA5NzUxMDQ3MSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tZW1yYW5n ZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQxNTMwMTQwICswMjAwCistLS0gZ2RiLTcuMTIuNTAu MjAxNzAyMjYub3JpZy9nZGIvbWVtcmFuZ2UuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2 OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9tZW1yYW5nZS5oCTIwMTctMDIt MjYgMjI6MDQ6MDMuNDM3NjA5OTMwICswMTAwCiBAQCAtMzAsNyArMzAsNyBAQAogICAgQ09SRV9B RERSIHN0YXJ0OwogIApAQCAtMjQxMSwxMCArMjMwMiwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL21lbXJhbmdlLmgKICAKICAvKiBSZXR1cm5zIHRydWUgaWYgQUREUiBpcyBp biBSQU5HRS4gICovCiAgCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21pcHMtbGlu dXgtbmF0LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbWlwcy1saW51eC1uYXQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21pcHMtbGlu dXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTc1MTA0NzEgKzAyMDAKLSsrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0 MTUzMDE0MCArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL21pcHMtbGlu dXgtbmF0LmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4x Mi41MC4yMDE3MDIyNi9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQz ODYwOTkzNyArMDEwMAogQEAgLTU4Nyw3ICs1ODcsNyBAQAogIAogIHN0YXRpYyBpbnQKQEAgLTI0 MjQsMTAgKzIzMTUsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLWxp bnV4LW5hdC5jCiAgewogICAgc3RydWN0IHB0X3dhdGNoX3JlZ3MgZHVtbXlfcmVnczsKICAgIGlu dCBpOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9vcGVuY2wtbGFuZy5jCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL29wZW5jbC1sYW5nLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9vcGVuY2wtbGFuZy5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMDk3NTEwNDcxICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL29w ZW5jbC1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAKKy0tLSBnZGIt Ny4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9vcGVuY2wtbGFuZy5jCTIwMTctMDItMjYgMjE6NTk6 MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL29wZW5jbC1s YW5nLmMJMjAxNy0wMi0yNiAyMjowNDowMy40Mzg2MDk5MzcgKzAxMDAKIEBAIC03OCwxMSArNzgs MTEgQEAKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgpAQCAtMjQ5NiwxMCArMjM4NywxMCBAQCBJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL29wZW5jbC1sYW5nLmMKICAKICAgICAgICBp ZiAoIXZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGMtPnZhbCwKICAJCQkJCSBjLT5pbmRp Y2VzW2ldICogZWxzaXplICsgY29tcF9vZmZzZXQsCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3AtbGFuZy5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3AtbGFuZy5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcC1sYW5nLmMJ MjAxNi0wNy0xNiAxNDozMzo0Mi4wOTg1MTA0NzkgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvcC1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDI1MzAxNDggKzAyMDAKKy0t LSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9wLWxhbmcuYwkyMDE3LTAyLTI2IDIxOjU5 OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9wLWxhbmcu YwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQzODYwOTkzNyArMDEwMAogQEAgLTk1LDggKzk1LDggQEAK ICAgICBhcmUgbm90IG11bHRpcGxlIG9mIFRBUkdFVF9DSEFSX0JJVCB0aGVuIHRoZSByZXN1bHRz IGFyZSB3cm9uZwogICAgIGJ1dCB0aGlzIGRvZXMgbm90IGhhcHBlbiBmb3IgRnJlZSBQYXNjYWwg bm9yIGZvciBHUEMuICAqLwpAQCAtMjU0NywxOCArMjQzOCwxOCBAQCBJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3AtbGFuZy5jCiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19w cmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21t YSA9IDE7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3AtbGFuZy5oCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3AtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcC1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTg1 MTA0NzkgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC1sYW5nLmgJMjAxNi0w Ny0xNiAxNDozMzo0NC41NDI1MzAxNDggKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5v cmlnL2dkYi9wLWxhbmcuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysr IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9wLWxhbmcuaAkyMDE3LTAyLTI2IDIyOjA0OjAzLjQz ODYwOTkzNyArMDEwMAogQEAgLTM2LDcgKzM2LDcgQEAKICBleHRlcm4gdm9pZCBwYXNjYWxfcHJp bnRfdHlwZWRlZiAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHN5bWJvbCAqLAogIAkJCQkgIHN0cnVj dCB1aV9maWxlICopOwogIAotLWV4dGVybiB2b2lkIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0 eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwKLStleHRlcm4gdm9pZCBwYXNjYWxfdmFsX3By aW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBMT05HRVNULAorLWV4dGVybiB2 b2lkIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGludCwKKytleHRlcm4gdm9pZCBw YXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBMT05HRVNULAogIAkJCSAgICAgIENPUkVf QUREUiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAotIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqLAorIAkJCSAgICAgIHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICopOwogQEAgLTUwLDEzICs1MCwxMyBAQAogIC8qIFRoZXNlIGFy ZSBpbiBwLWxhbmcuYzogKi8KQEAgLTI1NzYsMTggKzI0NjcsMTggQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9wLWxhbmcuaAogIAkJCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICoqY29uc3QgKHBhc2NhbF9i dWlsdGluX3R5cGVzW10pOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wLXZhbHBy aW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvcC12YWxwcmludC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcC12YWxwcmludC5jCTIw MTYtMDctMTYgMTQ6MzM6NDIuMDk4NTEwNDc5ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3AtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MjUzMDE0OCArMDIwMAor LS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE3LTAyLTI2 IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9w LXZhbHByaW50LmMJMjAxNy0wMi0yNiAyMjowNDowMy40Mzk2MDk5NDQgKzAxMDAKIEBAIC01OSw3 ICs1OSw3IEBACiAgCiAgdm9pZAotIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBl LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKyBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlw ZSAqdHlwZSwKIC0JCSAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiAr CQkgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKICAJCSAgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqb3JpZ2luYWxfdmFsdWUsCisgCQkgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAg CQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogQEAgLTcwLDgg KzcwLDggQEAKICAgIHVuc2lnbmVkIGxlbjsKQEAgLTI2MDAsMTAgKzI0OTEsMTAgQEAgSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wLXZhbHByaW50LmMKICAgIHN0cnVjdCB0eXBlICpj aGFyX3R5cGU7CiAgICBDT1JFX0FERFIgYWRkcjsKICAgIGludCB3YW50X3NwYWNlID0gMDsKLUlu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcHBjLWxpbnV4LW5hdC5jCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3BwYy1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0 OjMzOjQyLjA5OTUxMDQ4NyArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcGMt bGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDI1MzAxNDggKzAyMDAKKy0tLSBnZGIt Ny4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNy0wMi0yNiAyMTo1 OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvcHBjLWxp bnV4LW5hdC5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDM5NjA5OTQ0ICswMTAwCiBAQCAtMTQ0OSw3 ICsxNDQ5LDcgQEAKICAKICBzdGF0aWMgaW50CkBAIC0yNjEzLDExICsyNTA0LDExIEBAIEluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcHBjLWxpbnV4LW5hdC5jCiAgewogICAgLyogSGFu ZGxlIHN1Yi04LWJ5dGUgcXVhbnRpdGllcy4gICovCiAgICBpZiAobGVuIDw9IDApCi1JbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ByaW50Y21kLmMKK0luZGV4OiBnZGItNy4xMi41MC4y MDE3MDIyNi9nZGIvcHJpbnRjbWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL3ByaW50Y21kLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTk1MTA0ODcgKzAy MDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcHJpbnRjbWQuYwkyMDE2LTA3LTE2IDE0 OjMzOjQ0LjU0MzUzMDE1NiArMDIwMAotQEAgLTI3OSw3ICsyNzksNyBAQAorLS0tIGdkYi03LjEy LjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3ByaW50Y21kLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3 MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvcHJpbnRjbWQuYwkyMDE3 LTAyLTI2IDIyOjA0OjAzLjQ0MDYwOTk1MSArMDEwMAorQEAgLTI4MCw3ICsyODAsNyBAQAogIAkJ IHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVj a190eXBlZGVmICh2YWx1ZV90eXBlICh2YWwpKTsKQEAgLTI2MzUsMTEgKzI1MjYsMTEgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcmludGNtZC5jCiAgICBlbnVtIGJmZF9lbmRp YW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgCiAgICAvKiBT dHJpbmcgcHJpbnRpbmcgc2hvdWxkIGdvIHRocm91Z2ggdmFsX3ByaW50X3NjYWxhcl9mb3JtYXR0 ZWQuICAqLwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcm9jZnMuYworSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9wcm9jZnMuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTAw NTEwNDk1ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Byb2Nmcy5jCTIwMTYt MDctMTYgMTQ6MzM6NDQuNTQzNTMwMTU2ICswMjAwCi1AQCAtNDg2Myw3ICs0ODYzLDcgQEAKKy0t LSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9wcm9jZnMuYwkyMDE3LTAyLTI2IDIxOjU5 OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9wcm9jZnMu YwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ0MTYwOTk1OCArMDEwMAorQEAgLTQ4NjIsNyArNDg2Miw3 IEBACiAgCiAgc3RhdGljIGludAogIHByb2Nmc19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQg KHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMjY0OCwxMSArMjUzOSwxMSBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Byb2Nmcy5jCiAgewogICAgLyogVGhlIG1hbiBwYWdl IGZvciBwcm9jKDQpIG9uIFNvbGFyaXMgMi42IGFuZCB1cCBzYXlzIHRoYXQgdGhlCiAgICAgICBz eXN0ZW0gY2FuIHN1cHBvcnQgInRob3VzYW5kcyIgb2YgaGFyZHdhcmUgd2F0Y2hwb2ludHMsIGJ1 dCBnaXZlcwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZWdjYWNoZS5jCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3JlZ2NhY2hlLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9yZWdjYWNoZS5jCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMTAxNTEwNTAzICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hl LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDQ1MzAxNjUgKzAyMDAKLUBAIC05NjcsNyArOTY3LDcg QEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9yZWdjYWNoZS5jCTIwMTctMDIt MjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2Ri L3JlZ2NhY2hlLmMJMjAxNy0wMi0yNiAyMjowNDowMy40NDE2MDk5NTggKzAxMDAKK0BAIC05ODAs NyArOTgwLDcgQEAKICAKICBzdGF0aWMgZW51bSByZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV94 ZmVyX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yNjYx LDcgKzI1NTIsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmMK ICAJCSAgICBlbnVtIHJlZ2lzdGVyX3N0YXR1cyAoKnJlYWQpIChzdHJ1Y3QgcmVnY2FjaGUgKnJl Z2NhY2hlLAogIAkJCQkJCSAgaW50IHJlZ251bSwKICAJCQkJCQkgIGdkYl9ieXRlICpidWYpLAot QEAgLTEwMTEsNyArMTAxMSw3IEBACitAQCAtMTAyNSw3ICsxMDI1LDcgQEAKICAKICBlbnVtIHJl Z2lzdGVyX3N0YXR1cwogIHJlZ2NhY2hlX3Jhd19yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAq cmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yNjcwLDcgKzI1NjEsNyBAQCBJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVz Y3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTEwMjIsNyArMTAyMiw3IEBACitA QCAtMTAzNiw3ICsxMDM2LDcgQEAKICAKICB2b2lkCiAgcmVnY2FjaGVfcmF3X3dyaXRlX3BhcnQg KHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yNjc5LDcgKzI1NzAs NyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBz dHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTEw MzMsNyArMTAzMyw3IEBACitAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAKICAKICBlbnVtIHJlZ2lzdGVy X3N0YXR1cwogIHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVn Y2FjaGUsIGludCByZWdudW0sCkBAIC0yNjg4LDcgKzI1NzksNyBAQCBJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3Ig KmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTEwNDQsNyArMTA0NCw3IEBACitAQCAt MTA1OCw3ICsxMDU4LDcgQEAKICAKICB2b2lkCiAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3BhcnQg KHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yNjk3LDExICsyNTg4 LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVnY2FjaGUuYwogIHsKICAg IHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1JbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmgKK0luZGV4OiBnZGItNy4xMi41 MC4yMDE3MDIyNi9nZGIvcmVnY2FjaGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL3JlZ2NhY2hlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDE1MTA1MDMg KzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVnY2FjaGUuaAkyMDE2LTA3LTE2 IDE0OjMzOjQ0LjU0NDUzMDE2NSArMDIwMAotQEAgLTgwLDkgKzgwLDkgQEAKKy0tLSBnZGItNy4x Mi41MC4yMDE3MDIyNi5vcmlnL2dkYi9yZWdjYWNoZS5oCTIwMTctMDItMjYgMjE6NTk6MzYuMDQz NzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3JlZ2NhY2hlLmgJMjAx Ny0wMi0yNiAyMjowNDowMy40NDE2MDk5NTggKzAxMDAKK0BAIC04Niw5ICs4Niw5IEBACiAgCiAg ZXh0ZXJuIGVudW0gcmVnaXN0ZXJfc3RhdHVzCiAgICByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChz dHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjcxMyw3ICsyNjA0LDcg QEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZWdjYWNoZS5oCiAgCiAgdm9pZCBy ZWdjYWNoZV9pbnZhbGlkYXRlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVt KTsKICAKLUBAIC0xMTksMTAgKzExOSwxMSBAQAorQEAgLTEyNSwxMCArMTI1LDExIEBACiAgICAg d3JpdGUgc3R5bGUgb3BlcmF0aW9ucy4gICovCiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMgcmVn Y2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKQEAgLTI3 MjgsMTEgKzI2MTksMTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZWdjYWNo ZS5oCiAgCiAgLyogU3BlY2lhbCByb3V0aW5lcyB0byByZWFkL3dyaXRlIHRoZSBQQy4gICovCiAg Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlbW90ZS5jCitJbmRleDogZ2RiLTcu MTIuNTAuMjAxNzAyMjYvZ2RiL3JlbW90ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvcmVtb3RlLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDQ1MTA1Mjcg KzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVtb3RlLmMJMjAxNi0wNy0xNiAx NDozMzo0NC41NDU1MzAxNzIgKzAyMDAKLUBAIC05NDczLDcgKzk0NzMsNyBAQAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQz NzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3JlbW90ZS5jCTIwMTct MDItMjYgMjI6MDQ6MDMuNDQ0NjA5OTc5ICswMTAwCitAQCAtOTkyMCw3ICs5OTIwLDcgQEAKICAK ICBzdGF0aWMgaW50CiAgcmVtb3RlX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0 IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0yNzQxLDEwICsyNjMyLDEwIEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvcmVtb3RlLmMKICB7CiAgICBpZiAocmVtb3RlX2h3X3dhdGNocG9p bnRfbGVuZ3RoX2xpbWl0ID09IDApCiAgICAgIHJldHVybiAwOwotSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9zcHUtbXVsdGlhcmNoLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIy Ni9nZGIvc3B1LW11bHRpYXJjaC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvc3B1LW11bHRpYXJjaC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTA1NTEwNTM2 ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE2 LTA3LTE2IDE0OjMzOjQ0LjU0NTUzMDE3MiArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2 Lm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSAr MDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNy0w Mi0yNiAyMjowNDowMy40NDQ2MDk5NzkgKzAxMDAKIEBAIC0xMjcsNyArMTI3LDcgQEAKICAvKiBP dmVycmlkZSB0aGUgdG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IHJvdXRpbmUuICAqLwog IHN0YXRpYyBpbnQKQEAgLTI3NTQsMTEgKzI2NDUsMTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9zcHUtbXVsdGlhcmNoLmMKICB7CiAgICBzdHJ1Y3QgdGFyZ2V0X29wcyAqb3Bz X2JlbmVhdGggPSBmaW5kX3RhcmdldF9iZW5lYXRoIChzZWxmKTsKICAKLUluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvc3RhY2suYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dk Yi9zdGFjay5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv c3RhY2suYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwNjUxMDU0NCArMDIwMAotKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9zdGFjay5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ2NTMwMTgxICsw MjAwCi1AQCAtMTc2LDcgKzE3Niw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9n ZGIvc3RhY2suYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03 LjEyLjUwLjIwMTcwMjI2L2dkYi9zdGFjay5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDQ1NjA5OTg3 ICswMTAwCitAQCAtMTg5LDcgKzE4OSw3IEBACiAgICAgYXJndW1lbnQgKG5vdCBqdXN0IHRoZSBm aXJzdCBuYW1lbGVzcyBhcmd1bWVudCkuICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0yNzY3LDcg KzI2NTgsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N0YWNrLmMKICAJCQkg ICBpbnQgZmlyc3QsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgewogICAgc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwotQEAgLTUzNyw3ICs1MzcsNyBA QAorQEAgLTU0Niw3ICs1NDYsNyBAQAogICAgLyogT2Zmc2V0IG9mIG5leHQgc3RhY2sgYXJndW1l bnQgYmV5b25kIHRoZSBvbmUgd2UgaGF2ZSBzZWVuIHRoYXQgaXMKICAgICAgIGF0IHRoZSBoaWdo ZXN0IG9mZnNldCwgb3IgLTEgaWYgd2UgaGF2ZW4ndCBjb21lIHRvIGEgc3RhY2sKICAgICAgIGFy Z3VtZW50IHlldC4gICovCkBAIC0yNzc1LDggKzI2NjYsOCBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3N0YWNrLmMKICsgIExPTkdFU1QgaGlnaGVzdF9vZmZzZXQgPSAtMTsKICAg IC8qIE51bWJlciBvZiBpbnRzIG9mIGFyZ3VtZW50cyB0aGF0IHdlIGhhdmUgcHJpbnRlZCBzbyBm YXIuICAqLwogICAgaW50IGFyZ3NfcHJpbnRlZCA9IDA7Ci0gICBzdHJ1Y3QgY2xlYW51cCAqb2xk X2NoYWluOwotQEAgLTU3MSw4ICs1NzEsOCBAQAorICAgLyogVHJ1ZSBpZiB3ZSBzaG91bGQgcHJp bnQgYXJndW1lbnRzLCBmYWxzZSBvdGhlcndpc2UuICAqLworQEAgLTU3NSw4ICs1NzUsOCBAQAog IAkgICAgY2FzZSBMT0NfQVJHOgogIAkgICAgY2FzZSBMT0NfUkVGX0FSRzoKICAJICAgICAgewpA QCAtMjc4Nyw3ICsyNjc4LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zdGFj ay5jCiAgCiAgCQkvKiBDb21wdXRlIGFkZHJlc3Mgb2YgbmV4dCBhcmd1bWVudCBieSBhZGRpbmcg dGhlIHNpemUgb2YKICAJCSAgIHRoaXMgYXJndW1lbnQgYW5kIHJvdW5kaW5nIHRvIGFuIGludCBi b3VuZGFyeS4gICovCi1AQCAtNzA3LDcgKzcwNyw3IEBACitAQCAtNzExLDcgKzcxMSw3IEBACiAg ICAgICBlbm91Z2ggYWJvdXQgdGhlIHN0YWNrIHRvIGZpbmQgdGhlbS4gICovCiAgICBpZiAobnVt ICE9IC0xKQogICAgICB7CkBAIC0yNzk2LDExICsyNjg3LDExIEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvc3RhY2suYwogIAogICAgICAgIGlmIChoaWdoZXN0X29mZnNldCA9PSAt MSkKICAJc3RhcnQgPSBnZGJhcmNoX2ZyYW1lX2FyZ3Nfc2tpcCAoZ2V0X2ZyYW1lX2FyY2ggKGZy YW1lKSk7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N5bW1pc2MuYworSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9zeW1taXNjLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zeW1taXNjLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4x MDc1MTA1NTIgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3ltbWlzYy5jCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTQ2NTMwMTgxICswMjAwCi1AQCAtNTM4LDExICs1MzgsMTEgQEAK Ky0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9zeW1taXNjLmMJMjAxNy0wMi0yNiAy MTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvc3lt bWlzYy5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDQ1NjA5OTg3ICswMTAwCitAQCAtNjA0LDExICs2 MDQsMTEgQEAKICAKICAJY2FzZSBMT0NfQ09OU1RfQllURVM6CiAgCSAgewpAQCAtMjgxNSwxMSAr MjcwNiwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N5bW1pc2MuYwogIAkg ICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTEVOR1RIICh0eXBlKTsgaSsrKQogIAkgICAgICBmcHJp bnRmX2ZpbHRlcmVkIChvdXRmaWxlLCAiICUwMngiLAogIAkJCQkodW5zaWduZWQpIFNZTUJPTF9W QUxVRV9CWVRFUyAoc3ltYm9sKVtpXSk7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3RhcmdldC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3RhcmdldC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGFyZ2V0LmMJMjAxNi0w Ny0xNiAxNDozMzo0Mi4xMDg1MTA1NjAgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGFyZ2V0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDY1MzAxODEgKzAyMDAKLUBAIC01Niw3 ICs1Niw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvdGFyZ2V0LmMJMjAx Ny0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIy Ni9nZGIvdGFyZ2V0LmMJMjAxNy0wMi0yNiAyMjowNDowMy40NDY2MDk5OTQgKzAxMDAKK0BAIC01 Nyw3ICs1Nyw3IEBACiAgCQkJCQkJIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOwogIAogIHN0 YXRpYyBpbnQgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJn ZXRfb3BzICosCkBAIC0yODI4LDcgKzI3MTksNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3RhcmdldC5jCiAgCiAgc3RhdGljIHZvaWQgZGVmYXVsdF9yY21kIChzdHJ1Y3QgdGFy Z2V0X29wcyAqLCBjb25zdCBjaGFyICosIHN0cnVjdCB1aV9maWxlICopOwogIAotQEAgLTMxOTYs NyArMzE5Niw3IEBACitAQCAtMzIyOCw3ICszMjI4LDcgQEAKICAKICBzdGF0aWMgaW50CiAgZGVm YXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxm LApAQCAtMjgzNywxMSArMjcyOCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3RhcmdldC5jCiAgewogICAgcmV0dXJuIChsZW4gPD0gZ2RiYXJjaF9wdHJfYml0ICh0YXJnZXRf Z2RiYXJjaCAoKSkgLyBUQVJHRVRfQ0hBUl9CSVQpOwogIH0KLUluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdGFyZ2V0LmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvdGFy Z2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90YXJn ZXQuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwOTUxMDU2OCArMDIwMAotKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90YXJnZXQuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0NzUzMDE4OSArMDIw MAotQEAgLTU1MSw3ICs1NTEsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2Ri L3RhcmdldC5oCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcu MTIuNTAuMjAxNzAyMjYvZ2RiL3RhcmdldC5oCTIwMTctMDItMjYgMjI6MDQ6MDMuNDQ3NjEwMDAx ICswMTAwCitAQCAtNTU1LDcgKzU1NSw3IEBACiAgICAgIC8qIERvY3VtZW50YXRpb24gb2YgdGhp cyByb3V0aW5lIGlzIHByb3ZpZGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKICAgICAgICAgdGFy Z2V0XyogbWFjcm8uICAqLwogICAgICBpbnQgKCp0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9p bnQpIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLApAQCAtMjg1MCw4MCArMjc0MSw4MCBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC5oCiAgICAgICAgVEFSR0VUX0RFRkFVTFRf RlVOQyAoZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOwogIAogICAgICBpbnQg KCp0b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24pIChzdHJ1Y3QgdGFyZ2V0X29wcyAq LAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90cmFjZXBvaW50LmMKK0luZGV4OiBn ZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvdHJhY2Vwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdHJhY2Vwb2ludC5jCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMTEyNTEwNTkyICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RyYWNlcG9p bnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0NzUzMDE4OSArMDIwMAotQEAgLTkzMCwxMyArOTMw LDEzIEBACi0gc3RhdGljIHZvaWQKLSBhZGRfbWVtcmFuZ2UgKHN0cnVjdCBjb2xsZWN0aW9uX2xp c3QgKm1lbXJhbmdlcywgCi0gCSAgICAgIGludCB0eXBlLCBiZmRfc2lnbmVkX3ZtYSBiYXNlLAot LQkgICAgICB1bnNpZ25lZCBsb25nIGxlbikKLSsJICAgICAgVUxPTkdFU1QgbGVuKQorLS0tIGdk Yi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3RyYWNlcG9pbnQuYwkyMDE3LTAyLTI2IDIxOjU5 OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi90cmFjZXBv aW50LmMJMjAxNy0wMi0yNiAyMjowNDowMy40NDg2MTAwMDggKzAxMDAKK0BAIC05MDgsMTAgKzkw OCwxMCBAQAorIHZvaWQKKyBjb2xsZWN0aW9uX2xpc3Q6OmFkZF9tZW1yYW5nZSAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsCisgCQkJICAgICAgIGludCB0eXBlLCBiZmRfc2lnbmVkX3ZtYSBiYXNl LAorLQkJCSAgICAgICB1bnNpZ25lZCBsb25nIGxlbikKKysJCQkgICAgICAgVUxPTkdFU1QgbGVu KQogIHsKICAgIGlmIChpbmZvX3ZlcmJvc2UpCi0gICAgIHsKLSAgICAgICBwcmludGZfZmlsdGVy ZWQgKCIoJWQsIiwgdHlwZSk7Ci0gICAgICAgcHJpbnRmX3ZtYSAoYmFzZSk7Ci0tICAgICAgcHJp bnRmX2ZpbHRlcmVkICgiLCVsZClcbiIsIGxlbik7Ci0rICAgICAgcHJpbnRmX2ZpbHRlcmVkICgi LCVzKVxuIiwgcHVsb25nZXN0IChsZW4pKTsKLSAgICAgfQorLSAgICBwcmludGZfZmlsdGVyZWQg KCIoJWQsJXMsJWxkKVxuIiwgdHlwZSwgcGFkZHJlc3MgKGdkYmFyY2gsIGJhc2UpLCBsZW4pOwor KyAgICBwcmludGZfZmlsdGVyZWQgKCIoJWQsJXMsJXMpXG4iLCB0eXBlLCBwYWRkcmVzcyAoZ2Ri YXJjaCwgYmFzZSksIHB1bG9uZ2VzdCAobGVuKSk7CiAgCiAgICAvKiB0eXBlOiBtZW1yYW5nZV9h YnNvbHV0ZSA9PSBtZW1vcnksIG90aGVyIG4gPT0gYmFzZXJlZyAqLwotQEAgLTk2Niw3ICs5NjYs NyBAQAotIAkJQ09SRV9BRERSIHNjb3BlLAotIAkJaW50IHRyYWNlX3N0cmluZykKKyAgIC8qIGJh c2U6IGFkZHIgaWYgbWVtb3J5LCBvZmZzZXQgaWYgcmVnIHJlbGF0aXZlLiAgKi8KK0BAIC05MzEs NyArOTMxLDcgQEAKKyAJCQkJIENPUkVfQUREUiBzY29wZSwKKyAJCQkJIGludCB0cmFjZV9zdHJp bmcpCiAgewogLSAgdW5zaWduZWQgbG9uZyBsZW47CiArICBVTE9OR0VTVCBsZW47CiAgICB1bnNp Z25lZCBpbnQgcmVnOwogICAgYmZkX3NpZ25lZF92bWEgb2Zmc2V0OwogICAgaW50IHRyZWF0X2Fz X2V4cHIgPSAwOwotQEAgLTk5MCw4ICs5OTAsOCBAQAotIAkgIGNoYXIgdG1wWzQwXTsKLSAKLSAJ ICBzcHJpbnRmX3ZtYSAodG1wLCBvZmZzZXQpOworQEAgLTk1Miw4ICs5NTIsOCBAQAorICAgICAg IG9mZnNldCA9IFNZTUJPTF9WQUxVRV9BRERSRVNTIChzeW0pOworICAgICAgIGlmIChpbmZvX3Zl cmJvc2UpCisgCXsKIC0JICBwcmludGZfZmlsdGVyZWQgKCJMT0NfU1RBVElDICVzOiBjb2xsZWN0 ICVsZCBieXRlcyBhdCAlcy5cbiIsCiAtCQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIGxl biwKICsJICBwcmludGZfZmlsdGVyZWQgKCJMT0NfU1RBVElDICVzOiBjb2xsZWN0ICVzIGJ5dGVz IGF0ICVzLlxuIiwKICsJCQkgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgcHVsb25nZXN0IChs ZW4pLAotIAkJCSAgIHRtcCAvKiBhZGRyZXNzICovKTsKKyAJCQkgICBwYWRkcmVzcyAoZ2RiYXJj aCwgb2Zmc2V0KSk7CiAgCX0KICAgICAgICAvKiBBIHN0cnVjdCBtYXkgYmUgYSBDKysgY2xhc3Mg d2l0aCBzdGF0aWMgZmllbGRzLCBnbyB0byBnZW5lcmFsCi1AQCAtMTAyMyw4ICsxMDIzLDggQEAK K0BAIC05ODUsOSArOTg1LDkgQEAKICAgICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1C T0xfVkFMVUUgKHN5bSk7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewotLQkgIHByaW50 Zl9maWx0ZXJlZCAoIkxPQ19MT0NBTCAlczogQ29sbGVjdCAlbGQgYnl0ZXMgYXQgb2Zmc2V0ICIs Ci0tCQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIGxlbik7Ci0rCSAgcHJpbnRmX2ZpbHRl cmVkICgiTE9DX0xPQ0FMICVzOiBDb2xsZWN0ICVzIGJ5dGVzIGF0IG9mZnNldCAiLAotKwkJCSAg IFNZTUJPTF9QUklOVF9OQU1FIChzeW0pLCBwdWxvbmdlc3QgKGxlbikpOwotIAkgIHByaW50Zl92 bWEgKG9mZnNldCk7Ci0gCSAgcHJpbnRmX2ZpbHRlcmVkICgiIGZyb20gZnJhbWUgcHRyIHJlZyAl ZFxuIiwgcmVnKTsKKy0JICBwcmludGZfZmlsdGVyZWQgKCJMT0NfTE9DQUwgJXM6IENvbGxlY3Qg JWxkIGJ5dGVzIGF0IG9mZnNldCAlcyIKKysJICBwcmludGZfZmlsdGVyZWQgKCJMT0NfTE9DQUwg JXM6IENvbGxlY3QgJXMgYnl0ZXMgYXQgb2Zmc2V0ICVzIgorIAkJCSAgICIgZnJvbSBmcmFtZSBw dHIgcmVnICVkXG4iLAorLQkJCSAgIFNZTUJPTF9QUklOVF9OQU1FIChzeW0pLCBsZW4sCisrCQkJ ICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIHB1bG9uZ2VzdCAobGVuKSwKKyAJCQkgICBwYWRk cmVzcyAoZ2RiYXJjaCwgb2Zmc2V0KSwgcmVnKTsKICAJfQotQEAgLTEwMzUsOCArMTAzNSw4IEBA CisgICAgICAgYWRkX21lbXJhbmdlIChnZGJhcmNoLCByZWcsIG9mZnNldCwgbGVuKTsKK0BAIC05 OTcsOSArOTk3LDkgQEAKICAgICAgICBvZmZzZXQgPSAwOwogICAgICAgIGlmIChpbmZvX3ZlcmJv c2UpCiAgCXsKLS0JICBwcmludGZfZmlsdGVyZWQgKCJMT0NfUkVHUEFSTV9BRERSICVzOiBDb2xs ZWN0ICVsZCBieXRlcyBhdCBvZmZzZXQgIiwKLS0JCQkgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3lt KSwgbGVuKTsKLSsJICBwcmludGZfZmlsdGVyZWQgKCJMT0NfUkVHUEFSTV9BRERSICVzOiBDb2xs ZWN0ICVzIGJ5dGVzIGF0IG9mZnNldCAiLAotKwkJCSAgIFNZTUJPTF9QUklOVF9OQU1FIChzeW0p LCBwdWxvbmdlc3QgKGxlbikpOwotIAkgIHByaW50Zl92bWEgKG9mZnNldCk7Ci0gCSAgcHJpbnRm X2ZpbHRlcmVkICgiIGZyb20gcmVnICVkXG4iLCByZWcpOworLQkgIHByaW50Zl9maWx0ZXJlZCAo IkxPQ19SRUdQQVJNX0FERFIgJXM6IENvbGxlY3QgJWxkIGJ5dGVzIGF0IG9mZnNldCAlcyIKKysJ ICBwcmludGZfZmlsdGVyZWQgKCJMT0NfUkVHUEFSTV9BRERSICVzOiBDb2xsZWN0ICVzIGJ5dGVz IGF0IG9mZnNldCAlcyIKKyAJCQkgICAiIGZyb20gcmVnICVkXG4iLAorLQkJCSAgIFNZTUJPTF9Q UklOVF9OQU1FIChzeW0pLCBsZW4sCisrCQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIHB1 bG9uZ2VzdCAobGVuKSwKKyAJCQkgICBwYWRkcmVzcyAoZ2RiYXJjaCwgb2Zmc2V0KSwgcmVnKTsK ICAJfQotQEAgLTEwNDcsOCArMTA0Nyw4IEBACisgICAgICAgYWRkX21lbXJhbmdlIChnZGJhcmNo LCByZWcsIG9mZnNldCwgbGVuKTsKK0BAIC0xMDA5LDkgKzEwMDksOSBAQAogICAgICAgIG9mZnNl dCA9IGZyYW1lX29mZnNldCArIFNZTUJPTF9WQUxVRSAoc3ltKTsKICAgICAgICBpZiAoaW5mb192 ZXJib3NlKQogIAl7Ci0tCSAgcHJpbnRmX2ZpbHRlcmVkICgiTE9DX0xPQ0FMICVzOiBDb2xsZWN0 ICVsZCBieXRlcyBhdCBvZmZzZXQgIiwKLS0JCQkgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwg bGVuKTsKLSsJICBwcmludGZfZmlsdGVyZWQgKCJMT0NfTE9DQUwgJXM6IENvbGxlY3QgJXMgYnl0 ZXMgYXQgb2Zmc2V0ICIsCi0rCQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIHB1bG9uZ2Vz dCAobGVuKSk7Ci0gCSAgcHJpbnRmX3ZtYSAob2Zmc2V0KTsKLSAJICBwcmludGZfZmlsdGVyZWQg KCIgZnJvbSBmcmFtZSBwdHIgcmVnICVkXG4iLCByZWcpOworLQkgIHByaW50Zl9maWx0ZXJlZCAo IkxPQ19MT0NBTCAlczogQ29sbGVjdCAlbGQgYnl0ZXMgYXQgb2Zmc2V0ICVzIgorKwkgIHByaW50 Zl9maWx0ZXJlZCAoIkxPQ19MT0NBTCAlczogQ29sbGVjdCAlcyBieXRlcyBhdCBvZmZzZXQgJXMi CisgCQkJICAgIiBmcm9tIGZyYW1lIHB0ciByZWcgJWRcbiIsCistCQkJICAgU1lNQk9MX1BSSU5U X05BTUUgKHN5bSksIGxlbiwKKysJCQkgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgcHVsb25n ZXN0IChsZW4pLAorIAkJCSAgIHBhZGRyZXNzIChnZGJhcmNoLCBvZmZzZXQpLCByZWcpOwogIAl9 Ci1AQCAtMjcwMyw3ICsyNzAzLDggQEAKKyAgICAgICBhZGRfbWVtcmFuZ2UgKGdkYmFyY2gsIHJl Zywgb2Zmc2V0LCBsZW4pOworQEAgLTI1ODMsNyArMjU4Myw4IEBACiAgICBjb25zdCBjaGFyICpz eW1uYW1lOwogICAgY2hhciAqc2F2ZV9hcmdzID0gYXJnczsKICAgIHN0cnVjdCBibG9ja19pdGVy YXRvciBpdGVyOwpAQCAtMjkzMyw3ICsyODI0LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi90cmFjZXBvaW50LmMKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOwogICAgaW50 IHJlZ25vOwogICAgc3RydWN0IGV2ZW50X2xvY2F0aW9uICpsb2NhdGlvbjsKLUBAIC0yODQ3LDgg KzI4NDgsMTEgQEAKK0BAIC0yNzI3LDggKzI3MjgsMTEgQEAKICAJCX0KICAJICAgIH0KICAJICBp ZiAoU1lNQk9MX1RZUEUgKHN5bSkpCkBAIC0yOTQ3LDEwICsyODM4LDEwIEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdHJhY2Vwb2ludC5jCiAgCX0KICAgICAgICBpZiAoQkxPQ0tf RlVOQ1RJT04gKGJsb2NrKSkKICAJYnJlYWs7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3ZhbGFyaXRoLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvdmFsYXJpdGgu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbGFyaXRo LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMTQ1MTA2MDggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdmFsYXJpdGguYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0ODUzMDE5NyArMDIw MAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNy0wMi0y NiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIv dmFsYXJpdGguYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ0ODYxMDAwOCArMDEwMAogQEAgLTE4OCw3 ICsxODgsNyBAQAogICAgIHRvIGRvdWJsZXMsIGJ1dCBubyBsb25nZXIgZG9lcy4gICovCiAgCkBA IC0yOTYwLDcgKzI4NTEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbGFy aXRoLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZh bHVlX3R5cGUgKGFycmF5KSk7CiAgICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBl ZGVmIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7Ci1AQCAtNjc0LDcgKzY3NCw3IEBA CitAQCAtNjY1LDcgKzY2NSw3IEBACiAgICBzdHJ1Y3QgdmFsdWUgKmludmFsMTsKICAgIHN0cnVj dCB2YWx1ZSAqaW52YWwyOwogICAgc3RydWN0IHZhbHVlICpvdXR2YWwgPSBOVUxMOwpAQCAtMjk2 OSw3ICsyODYwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxhcml0aC5j CiAgICBpbnQgY291bnQsIGlkeDsKICAgIGNoYXIgKnB0cjsKICAgIGNoYXIgaW5jaGFyOwotQEAg LTE1MjcsNyArMTUyNyw3IEBACitAQCAtMTUxOCw3ICsxNTE4LDcgQEAKICBpbnQKICB2YWx1ZV9s b2dpY2FsX25vdCAoc3RydWN0IHZhbHVlICphcmcxKQogIHsKQEAgLTI5NzgsNyArMjg2OSw3IEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFsYXJpdGguYwogICAgY29uc3QgZ2Ri X2J5dGUgKnA7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTE7CiAgCi1AQCAtMTU1OCwxMSArMTU1OCwx MSBAQAorQEAgLTE1NDksMTEgKzE1NDksMTEgQEAKICBzdGF0aWMgaW50CiAgdmFsdWVfc3RyY21w IChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdCB2YWx1ZSAqYXJnMikKICB7CkBAIC0yOTkzLDEw ICsyODg0LDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFsYXJpdGguYwog IAogICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQogICAgICB7Ci1JbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3ZhbG9wcy5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2Ri L3ZhbG9wcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv dmFsb3BzLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMTc1MTA2MzIgKzAyMDAKLSsrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdmFsb3BzLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDg1MzAxOTcg KzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi92YWxvcHMuYwkyMDE3LTAy LTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dk Yi92YWxvcHMuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ0OTYxMDAxNSArMDEwMAogQEAgLTc5LDcg Kzc5LDcgQEAKICAJCQkJCSAgIGludCwgaW50KTsKICAKQEAgLTMwMzksNyArMjkzMCw3IEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFsb3BzLmMKICAgICAgICAgIGdkYl9ieXRl IGJ1ZmZlcltzaXplb2YgKExPTkdFU1QpXTsKICAKICAJaWYgKHZhbHVlX2JpdHNpemUgKHRvdmFs KSkKLUBAIC0zMzI4LDcgKzMzMjgsNyBAQAorQEAgLTMzMzUsNyArMzMzNSw3IEBACiAgICAgdGhl IGZvcm0gIkRPTUFJTjo6TkFNRSIuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAt MzA0OCw3ICsyOTM5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxvcHMu YwogIAkJCQlzdHJ1Y3QgdHlwZSAqY3VydHlwZSwgY29uc3QgY2hhciAqbmFtZSwKICAJCQkJc3Ry dWN0IHR5cGUgKmludHlwZSwgCiAgCQkJCWludCB3YW50X2FkZHJlc3MsCi1AQCAtMzM2Miw3ICsz MzYyLDcgQEAKK0BAIC0zMzY5LDcgKzMzNjksNyBAQAogIAkgIGlmICh3YW50X2FkZHJlc3MpCiAg CSAgICByZXR1cm4gdmFsdWVfZnJvbV9sb25nZXN0CiAgCSAgICAgIChsb29rdXBfbWVtYmVycHRy X3R5cGUgKFRZUEVfRklFTERfVFlQRSAodCwgaSksIGRvbWFpbiksCkBAIC0zMDU3LDcgKzI5NDgs NyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbG9wcy5jCiAgCSAgZWxzZSBp ZiAobm9zaWRlICE9IEVWQUxfTk9STUFMKQogIAkgICAgcmV0dXJuIGFsbG9jYXRlX3ZhbHVlIChU WVBFX0ZJRUxEX1RZUEUgKHQsIGkpKTsKICAJICBlbHNlCi1AQCAtMzUzMCw3ICszNTMwLDcgQEAK K0BAIC0zNTM3LDcgKzM1MzcsNyBAQAogICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0 KSAtIDE7IGkgPj0gMDsgaS0tKQogICAgICB7CiAgICAgICAgc3RydWN0IHZhbHVlICp2OwpAQCAt MzA2Niw3ICsyOTU3LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxvcHMu YwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodCwgaSkpCiAgCWJhc2Vfb2Zm c2V0ID0gMDsKLUBAIC0zNjc5LDcgKzM2NzksNyBAQAorQEAgLTM2ODYsNyArMzY4Niw3IEBACiAg c3RydWN0IHZhbHVlICoKICB2YWx1ZV9mdWxsX29iamVjdCAoc3RydWN0IHZhbHVlICphcmdwLCAK ICAJCSAgIHN0cnVjdCB0eXBlICpydHlwZSwgCkBAIC0zMDc1LDIwICsyOTY2LDIwIEBAIEluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFsb3BzLmMKICAJCSAgIGludCB4dXNpbmdfZW5j KQogIHsKICAgIHN0cnVjdCB0eXBlICpyZWFsX3R5cGU7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3ZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvdmFs cHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Zh bHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMTg1MTA2NDAgKzAyMDAKLSsrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0OTUzMDIw NSArMDIwMAotQEAgLTkwNyw3ICs5MDcsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9y aWcvZ2RiL3ZhbHByaW50LmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvdmFscHJpbnQuYwkyMDE3LTAyLTI2IDIyOjA0OjAz LjQ1MDYxMDAyMiArMDEwMAorQEAgLTkzMyw3ICs5MzMsNyBAQAogIAogIHZvaWQKLSBnZW5lcmlj X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAor IGdlbmVyaWNfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwKIC0JCSAgIGludCBlbWJlZGRl ZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAogKwkJICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZz ZXQsIENPUkVfQUREUiBhZGRyZXNzLAogIAkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHJlY3Vyc2UsCi0gCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAorIAkJ ICAgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTE4NDIsNyArMTg0Miw3IEBACitAQCAtMTg2 OSw3ICsxODY5LDcgQEAKICAKICB2b2lkCiAgcHJpbnRfaGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTMwOTcsOSArMjk4OCw5IEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFscHJpbnQuYwogIHsKICAgIGNvbnN0 IGdkYl9ieXRlICpwOwogIAotQEAgLTE5NjQsMTcgKzE5NjQsMTcgQEAKK0BAIC0xOTkxLDE3ICsx OTkxLDE3IEBACiAgCQkJICBpbnQgcmVjdXJzZSwKLSAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsLAorIAkJCSAgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKIC0JCQkgIHVuc2lnbmVkIGludCBpKQogKwkJCSAgVUxP TkdFU1QgaSkKQEAgLTMxMjAsNyArMzAxMSw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdmFscHJpbnQuYwogICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CiAgICBM T05HRVNUIGxvd19wb3MsIGhpZ2hfcG9zOwogIAotQEAgLTIwNjQsNyArMjA2NCw3IEBACitAQCAt MjA5MSw3ICsyMDkxLDcgQEAKICAJCSAgICAgYWRkcmVzcywgc3RyZWFtLCByZWN1cnNlICsgMSwg dmFsLCBvcHRpb25zLAogIAkJICAgICBjdXJyZW50X2xhbmd1YWdlKTsKICAJICBhbm5vdGF0ZV9l bHRfcmVwIChyZXBzKTsKQEAgLTMxMjksNyArMzAyMCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdmFscHJpbnQuYwogIAkgIGFubm90YXRlX2VsdF9yZXBfZW5kICgpOwogIAog IAkgIGkgPSByZXAxIC0gMTsKLUBAIC0yNzIwLDcgKzI3MjAsNyBAQAorQEAgLTI3NDMsNyArMjc0 Myw3IEBACiAgCiAgdm9pZAogIGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTMxMzgsMTMgKzMwMjksMTMgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxwcmludC5jCiAgCQkgIGNvbnN0IGNoYXIgKmVuY29k aW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkgIGludCBxdW90ZV9jaGFyLCBpbnQgY19zdHls ZV90ZXJtaW5hdG9yLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucykKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFscHJpbnQuaAorSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi92YWxwcmludC5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE2LTA3LTE2IDE0OjMzOjQy LjExODUxMDY0MCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxwcmludC5o CTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ5NTMwMjA1ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAx NzAyMjYub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSAr MDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi92YWxwcmludC5oCTIwMTctMDItMjYg MjI6MDQ6MDMuNDUwNjEwMDIyICswMTAwCiBAQCAtMTE5LDcgKzExOSw3IEBACiAgCQkJCSAgICAg IENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAotIAkJCQkgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWUgKiwKKyAJCQkJICAgICAgc3RydWN0IHZhbHVlICosCiAgCQkJCSAgICAgIGNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICosCiAtCQkJCSAgICAgIHVuc2lnbmVkIGludCk7 CiArCQkJCSAgICAgIFVMT05HRVNUKTsKQEAgLTMxNjMsMTEgKzMwNTQsMTEgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxwcmludC5oCiBAQCAtMTk0LDcgKzE5NCw3IEBACiAg CiAgCi0gZXh0ZXJuIHZvaWQgZ2VuZXJpY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKyBleHRlcm4gdm9pZCBnZW5lcmljX3ZhbF9wcmludCAo c3RydWN0IHR5cGUgKnR5cGUsCiAtCQkJICAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVf QUREUiBhZGRyZXNzLAogKwkJCSAgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9B RERSIGFkZHJlc3MsCiAgCQkJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAotIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAorIAkJ CSAgICAgICBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJCSAgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKIEBAIC0yMDQsNyArMjA0LDcgQEAK ICAJCQkgICAgICAgaW50IHF1b3RlciwgY29uc3QgY2hhciAqZW5jb2RpbmcpOwpAQCAtMzE3OCwx MSArMzA2OSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHByaW50LmgK ICAJCQkgICAgICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJ CSAgICAgIGludCBxdW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJCSAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdmFsdWUuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2 L2dkYi92YWx1ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvdmFsdWUuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjExOTUxMDY0OCArMDIwMAotKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ5NTMwMjA1 ICswMjAwCi1AQCAtMzY2LDcgKzM2Niw4IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3Jp Zy9nZGIvdmFsdWUuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjI2L2dkYi92YWx1ZS5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDUxNjEw MDI5ICswMTAwCitAQCAtMzY3LDcgKzM2Nyw4IEBACiAgfQogIAogIGludApAQCAtMzE5Miw3ICsz MDgzLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5jCiAgewogICAg Z2RiX2Fzc2VydCAoIXZhbHVlLT5sYXp5KTsKICAKLUBAIC04MTIsOSArODEzLDkgQEAKK0BAIC04 MTMsOSArODE0LDkgQEAKICAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgYXZhaWxhYmxlIGJpdHMgbWF0 Y2guICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTMyMTUsMTAgKzMxMDYsMTAgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5jCiAgewogICAgbWFya192YWx1ZV9iaXRzX29w dGltaXplZF9vdXQgKHZhbHVlLAogIAkJCQkgb2Zmc2V0ICogVEFSR0VUX0NIQVJfQklULAotSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5oCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMjYvZ2RiL3ZhbHVlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi92YWx1ZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIwNTEwNjU2ICswMjAwCi0r KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHVlLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41 NTA1MzAyMTMgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi92YWx1ZS5o CTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAx NzAyMjYvZ2RiL3ZhbHVlLmgJMjAxNy0wMi0yNiAyMjowNDowMy40NTE2MTAwMjkgKzAxMDAKIEBA IC0yNDYsNyArMjQ2LDcgQEAKICAgIC8qIElmIG5vbi1OVUxMLCB0aGlzIGlzIHVzZWQgdG8gZGV0 ZXJtaW5lIHdoZXRoZXIgdGhlIGluZGljYXRlZCBiaXRzCiAgICAgICBvZiBWQUxVRSBhcmUgYSBz eW50aGV0aWMgcG9pbnRlci4gICovCkBAIC0zMjQ3LDcgKzMxMzgsNyBAQCBJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHVlLmgKICAKICAvKiBNYXJrIFZBTFVFJ3MgY29udGVudCBi aXRzIHN0YXJ0aW5nIGF0IE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvcgogICAgIExFTkdUSCBiaXRz IGFzIG9wdGltaXplZCBvdXQuICAqLwotQEAgLTc3MSwxMiArNzcyLDExIEBACitAQCAtODIwLDEy ICs4MjEsMTEgQEAKICAJCQkJCSAgICBpbnQgZmllbGRubywKICAJCQkJCSAgICBzdHJ1Y3QgdHlw ZSAqYXJnX3R5cGUpOwogIApAQCAtMzI2MSw3ICszMTUyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi92YWx1ZS5oCiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfY2Fz dF9wb2ludGVycyAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHZhbHVlICosIGludCk7CiAgCi1AQCAt MTA2NSwxMCArMTA2NSwxMSBAQAorQEAgLTExMTQsMTAgKzExMTQsMTEgQEAKICBleHRlcm4gc3Ry dWN0IHZhbHVlICpmaW5kX2Z1bmN0aW9uX2luX2luZmVyaW9yIChjb25zdCBjaGFyICosCiAgCQkJ CQkJc3RydWN0IG9iamZpbGUgKiopOwogIApAQCAtMzI3NSwxMSArMzE2NiwxMSBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHVlLmgKICAKICAvKiBVc2VyIGZ1bmN0aW9uIGhh bmRsZXIuICAqLwogIAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zMzkwLWxpbnV4 LW5hdC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3MzOTAtbGludXgtbmF0LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zMzkwLWxpbnV4 LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIwNTEwNjU2ICswMjAwCi0rKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3MzOTAtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NTA1 MzAyMTMgKzAyMDAKLUBAIC02MTIsNyArNjEyLDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIy Ni5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5 ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3MzOTAtbGludXgtbmF0LmMJMjAx Ny0wMi0yNiAyMjowNDowMy40NTE2MTAwMjkgKzAxMDAKK0BAIC04OTksNyArODk5LDcgQEAKICAK ICBzdGF0aWMgaW50CiAgczM5MF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0 YXJnZXRfb3BzICpzZWxmLApAQCAtMzI4OCwxMSArMzE3OSwxMSBAQCBJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3MzOTAtbGludXgtbmF0LmMKICB7CiAgICByZXR1cm4gMTsKICB9Ci1J bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYworSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAx Ni0wNy0xNiAxNDozMzo0Mi4xMjE1MTA2NjQgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUwNTMwMjEzICsw MjAwCi1AQCAtNzM2LDE0ICs3MzYsMTQgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmln L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAx MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTct MDItMjYgMjI6MDQ6MDMuNDUyNjEwMDM2ICswMTAwCitAQCAtNzYwLDE0ICs3NjAsMTQgQEAKICB9 CiAgCiAgc3RhdGljIGludApAQCAtMzMwOSw3ICszMjAwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICB7CiAgICBpbnQgcmVzdWx0OwogICAg ZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnRvX3JlZ2lvbl9va19mb3Jf aHdfd2F0Y2hwb2ludCAoLi4uKVxuIiwgZGVidWdfdGFyZ2V0LnRvX3Nob3J0bmFtZSk7Ci1AQCAt NzUzLDcgKzc1Myw3IEBACitAQCAtNzc3LDcgKzc3Nyw3IEBACiAgICBmcHV0c191bmZpbHRlcmVk ICgiLCAiLCBnZGJfc3RkbG9nKTsKICAgIHRhcmdldF9kZWJ1Z19wcmludF9DT1JFX0FERFIgKGFy ZzEpOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7CkBAIC0zMzE4LDEx ICszMjA5LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LWRlbGVn YXRlcy5jCiAgICBmcHV0c191bmZpbHRlcmVkICgiKSA9ICIsIGdkYl9zdGRsb2cpOwogICAgdGFy Z2V0X2RlYnVnX3ByaW50X2ludCAocmVzdWx0KTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCJcbiIs IGdkYl9zdGRsb2cpOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hYXJjaDY0LWxp bnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2FhcmNoNjQtbGludXgt bmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hYXJj aDY0LWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCi0rKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAx NDozMzo0NC41NTE1MzAyMjEgKzAyMDAKLUBAIC03MzYsNyArNzM2LDcgQEAKKy0tLSBnZGItNy4x Mi41MC4yMDE3MDIyNi5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTctMDItMjYgMjE6 NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2FhcmNo NjQtbGludXgtbmF0LmMJMjAxNy0wMi0yNiAyMjowNDowMy40NTI2MTAwMzYgKzAxMDAKK0BAIC03 MDgsNyArNzA4LDcgQEAKICAKICBzdGF0aWMgaW50CiAgYWFyY2g2NF9saW51eF9yZWdpb25fb2tf Zm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMzMzMSwxMCAr MzIyMiwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FhcmNoNjQtbGludXgt bmF0LmMKICB7CiAgICByZXR1cm4gYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX3dhdGNocG9p bnQgKGFkZHIsIGxlbik7CiAgfQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9uYXQv eDg2LWRyZWdzLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbmF0L3g4Ni1kcmVn cy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbmF0L3g4 Ni1kcmVncy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCi0rKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1 MTUzMDIyMSArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL25hdC94ODYt ZHJlZ3MuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEy LjUwLjIwMTcwMjI2L2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNy0wMi0yNiAyMjowNDowMy40NTM2 MTAwNDMgKzAxMDAKIEBAIC0zODQsNyArMzg0LDcgQEAKICAKICBzdGF0aWMgaW50CkBAIC0zMzUz LDExICszMjQ0LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbmF0L3g4Ni1k cmVncy5jCiAgewogICAgaW50IG5yZWdzOwogIAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3 MDIyNi9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIw MTYtMDctMTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1 MTUzMDIyMSArMDIwMAotQEAgLTI5OSwxMSArMjk5LDExIEBACistLS0gZ2RiLTcuMTIuNTAuMjAx NzAyMjYub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTctMDItMjYgMjE6 NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2NvbXBp bGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1MzYxMDA0MyArMDEw MAorQEAgLTMwNywxMSArMzA3LDExIEBACiAgCiAgCSAgICAgIGRlZmF1bHQ6CiAgCQlmcHJpbnRm X3VuZmlsdGVyZWQgKHN0cmVhbSwKQEAgLTMzNzEsMTAgKzMyNjIsMTAgQEAgSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMKICAJICAgICAg fQogIAkgICAgZnB1dHNfdW5maWx0ZXJlZCAoIjtcbiIsIHN0cmVhbSk7CiAgCi1JbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL25hdC94ODYtZHJlZ3MuaAorSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjI2L2dkYi9uYXQveDg2LWRyZWdzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4x MjI1MTA2NzIgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbmF0L3g4Ni1kcmVn cy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUxNTMwMjIxICswMjAwCistLS0gZ2RiLTcuMTIuNTAu MjAxNzAyMjYub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTctMDItMjYgMjE6NTk6MzYuMDQz NzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL25hdC94ODYtZHJlZ3Mu aAkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1MzYxMDA0MyArMDEwMAogQEAgLTExNiw3ICsxMTYsNyBA QAogIC8qIFJldHVybiBub24temVybyBpZiB3ZSBjYW4gd2F0Y2ggYSBtZW1vcnkgcmVnaW9uIHRo YXQgc3RhcnRzIGF0CiAgICAgYWRkcmVzcyBBRERSIGFuZCB3aG9zZSBsZW5ndGggaXMgTEVOIGJ5 dGVzLiAgKi8KQEAgLTMzODQsMTAgKzMyNzUsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9uYXQveDg2LWRyZWdzLmgKICAKICAvKiBJZiB0aGUgaW5mZXJpb3IgaGFzIHNvbWUg YnJlYWsvd2F0Y2hwb2ludCB0aGF0IHRyaWdnZXJlZCwgc2V0IHRoZQogICAgIGFkZHJlc3MgYXNz b2NpYXRlZCB3aXRoIHRoYXQgYnJlYWsvd2F0Y2hwb2ludCBhbmQgcmV0dXJuIHRydWUuCi1JbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3g4Ni1uYXQuYworSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjI2L2dkYi94ODYtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi94ODYtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjM1MTA2ODAgKzAy MDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveDg2LW5hdC5jCTIwMTYtMDctMTYgMTQ6 MzM6NDQuNTUxNTMwMjIxICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIv eDg2LW5hdC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcu MTIuNTAuMjAxNzAyMjYvZ2RiL3g4Ni1uYXQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1MzYxMDA0 MyArMDEwMAogQEAgLTE3NCw3ICsxNzQsNyBAQAogIAogIHN0YXRpYyBpbnQKQEAgLTMzOTcsMTEg KzMyODgsMTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi94ODYtbmF0LmMKICB7 CiAgICBzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUKICAgICAgPSB4ODZfZGVidWdf cmVnX3N0YXRlIChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsKLUluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvcnVzdC1sYW5nLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIy Ni9nZGIvcnVzdC1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9ydXN0LWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMzUxMDY4MCArMDIwMAot KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ydXN0LWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMz OjQ0LjU1MTUzMDIyMSArMDIwMAotQEAgLTQxMCw3ICs0MTAsNyBAQAorLS0tIGdkYi03LjEyLjUw LjIwMTcwMjI2Lm9yaWcvZ2RiL3J1c3QtbGFuZy5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5 MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3J1c3QtbGFuZy5jCTIwMTct MDItMjYgMjI6MDQ6MDMuNDU0NjEwMDUwICswMTAwCitAQCAtNDM5LDcgKzQzOSw3IEBACiAgCiAg c3RhdGljIHZvaWQKICBydXN0X3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwKQEAgLTM0MTAsMTIgKzMzMDEsMTMxIEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvcnVzdC1sYW5nLmMKICAJICAgICAgIGNvbnN0IGNoYXIgKnVzZXJfZW5j b2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zKQogIHsKLUBAIC00NTYsNyArNDU2LDcgQEAKK0BAIC01NjMs NyArNTYzLDcgQEAKICAvKiBsYV92YWxfcHJpbnQgaW1wbGVtZW50YXRpb24gZm9yIFJ1c3QuICAq LwogIAogIHN0YXRpYyB2b2lkCi0tcnVzdF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKLStydXN0X3ZhbF9w cmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNU IGVtYmVkZGVkX29mZnNldCwKKy1ydXN0X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGlu dCBlbWJlZGRlZF9vZmZzZXQsCisrcnVzdF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwKICAJCUNPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAor IAkJc3RydWN0IHZhbHVlICp2YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucykKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYXJjaC11dGlscy5j Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvYXJjaC11dGls cy5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAu MjAxNzAyMjYvZ2RiL2FyY2gtdXRpbHMuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1NDYxMDA1MCAr MDEwMAorQEAgLTI0Nyw3ICsyNDcsNyBAQAorIAorIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAq KgorIGRlZmF1bHRfZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LAorLQkJCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW4pCisrCQkJICAgICAgY29uc3Qg Y2hhciAqbmFtZSwgTE9OR0VTVCBsZW4pCisgeworICAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0 ICoqZm9ybWF0ID0gTlVMTDsKKyAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYXJj aC11dGlscy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIv YXJjaC11dGlscy5oCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2FyY2gtdXRpbHMuaAkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1 NDYxMDA1MCArMDEwMAorQEAgLTE0NCw3ICsxNDQsNyBAQAorIC8qIERlZmF1bHQgaW1wbGVtZW50 YXRpb24gb2YgZ2RiYXJjaF9mbG9hdGZvcm1hdF9mb3JfdHlwZS4gICovCisgZXh0ZXJuIGNvbnN0 IHN0cnVjdCBmbG9hdGZvcm1hdCAqKgorICAgZGVmYXVsdF9mbG9hdGZvcm1hdF9mb3JfdHlwZSAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCistCQkJCWNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW4p OworKwkJCQljb25zdCBjaGFyICpuYW1lLCBMT05HRVNUIGxlbik7CisgCisgZXh0ZXJuIENPUkVf QUREUiBnZW5lcmljX3NraXBfdHJhbXBvbGluZV9jb2RlIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJh bWUsCisgCQkJCQkgICAgICAgQ09SRV9BRERSIHBjKTsKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3 MDIyNi9nZGIvZmluZGNtZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYu b3JpZy9nZGIvZmluZGNtZC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisr KysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2ZpbmRjbWQuYwkyMDE3LTAyLTI2IDIyOjA0OjAz LjQ1NDYxMDA1MCArMDEwMAorQEAgLTE4MCw3ICsxODAsNyBAQAorIAkgbmVlZCB0byBncm93IHRo ZSBwYXR0ZXJuIGJ1Zi4gICovCisgICAgICAgcGF0dGVybl9idWZfc2l6ZV9uZWVkID0gKHBhdHRl cm5fYnVmX2VuZCAtIHBhdHRlcm5fYnVmCisgCQkJICAgICAgICsgc3RkOjptYXggKFRZUEVfTEVO R1RIICh0KSwKKy0JCQkJCSAgICh1bnNpZ25lZCkgc2l6ZW9mIChpbnQ2NF90KSkpOworKwkJCQkJ ICAgKFVMT05HRVNUKSBzaXplb2YgKGludDY0X3QpKSk7CisgICAgICAgaWYgKHBhdHRlcm5fYnVm X3NpemVfbmVlZCA+IHBhdHRlcm5fYnVmX3NpemUpCisgCXsKKyAJICBzaXplX3QgY3VycmVudF9v ZmZzZXQgPSBwYXR0ZXJuX2J1Zl9lbmQgLSBwYXR0ZXJuX2J1ZjsKK0luZGV4OiBnZGItNy4xMi41 MC4yMDE3MDIyNi9nZGIvZ2RiYXJjaC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAx NzAyMjYub3JpZy9nZGIvZ2RiYXJjaC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2dkYmFyY2guYwkyMDE3LTAyLTI2IDIy OjA0OjAzLjQ1NTYxMDA1NyArMDEwMAorQEAgLTE3NDAsNyArMTc0MCw3IEBACisgfQorIAorIGNv bnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqKgorLWdkYmFyY2hfZmxvYXRmb3JtYXRfZm9yX3R5cGUg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbGVuZ3RoKQor K2dkYmFyY2hfZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBj b25zdCBjaGFyICpuYW1lLCBMT05HRVNUIGxlbmd0aCkKKyB7CisgICBnZGJfYXNzZXJ0IChnZGJh cmNoICE9IE5VTEwpOworICAgZ2RiX2Fzc2VydCAoZ2RiYXJjaC0+ZmxvYXRmb3JtYXRfZm9yX3R5 cGUgIT0gTlVMTCk7CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2dkYmFyY2guaAor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2dkYmFyY2guaAky MDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjI2L2dkYi9nZGJhcmNoLmgJMjAxNy0wMi0yNiAyMjowNDowMy40NTY2MTAwNjQgKzAxMDAKK0BA IC0xOTEsOCArMTkxLDggQEAKKyAgICBOQU1FLCBpZiBub24tTlVMTCwgaXMgdGhlIHR5cGUgbmFt ZSwgd2hpY2ggbWF5IGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2gKKyAgICBkaWZmZXJlbnQgdGFyZ2V0 IGZvcm1hdHMgb2YgdGhlIHNhbWUgbGVuZ3RoLiAqLworIAorLXR5cGVkZWYgY29uc3Qgc3RydWN0 IGZsb2F0Zm9ybWF0ICoqIChnZGJhcmNoX2Zsb2F0Zm9ybWF0X2Zvcl90eXBlX2Z0eXBlKSAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW5ndGgpOworLWV4 dGVybiBjb25zdCBzdHJ1Y3QgZmxvYXRmb3JtYXQgKiogZ2RiYXJjaF9mbG9hdGZvcm1hdF9mb3Jf dHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW5n dGgpOworK3R5cGVkZWYgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqIChnZGJhcmNoX2Zsb2F0 Zm9ybWF0X2Zvcl90eXBlX2Z0eXBlKSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGNvbnN0IGNo YXIgKm5hbWUsIExPTkdFU1QgbGVuZ3RoKTsKKytleHRlcm4gY29uc3Qgc3RydWN0IGZsb2F0Zm9y bWF0ICoqIGdkYmFyY2hfZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLCBjb25zdCBjaGFyICpuYW1lLCBMT05HRVNUIGxlbmd0aCk7CisgZXh0ZXJuIHZvaWQgc2V0 X2dkYmFyY2hfZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBn ZGJhcmNoX2Zsb2F0Zm9ybWF0X2Zvcl90eXBlX2Z0eXBlICpmbG9hdGZvcm1hdF9mb3JfdHlwZSk7 CisgCisgLyogRm9yIG1vc3QgdGFyZ2V0cywgYSBwb2ludGVyIG9uIHRoZSB0YXJnZXQgYW5kIGl0 cyByZXByZXNlbnRhdGlvbiBhcyBhbgorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9n ZGJhcmNoLnNoCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIv Z2RiYXJjaC5zaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03 LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJhcmNoLnNoCTIwMTctMDItMjYgMjI6MDQ6MDMuNDU2NjEw MDY0ICswMTAwCitAQCAtMzg2LDcgKzM4Niw3IEBACisgIyBSZXR1cm5zIHRoZSBmbG9hdGluZy1w b2ludCBmb3JtYXQgdG8gYmUgdXNlZCBmb3IgdmFsdWVzIG9mIGxlbmd0aCBMRU5HVEguCisgIyBO QU1FLCBpZiBub24tTlVMTCwgaXMgdGhlIHR5cGUgbmFtZSwgd2hpY2ggbWF5IGJlIHVzZWQgdG8g ZGlzdGluZ3Vpc2gKKyAjIGRpZmZlcmVudCB0YXJnZXQgZm9ybWF0cyBvZiB0aGUgc2FtZSBsZW5n dGguCistbTpjb25zdCBzdHJ1Y3QgZmxvYXRmb3JtYXQgKio6ZmxvYXRmb3JtYXRfZm9yX3R5cGU6 Y29uc3QgY2hhciAqbmFtZSwgaW50IGxlbmd0aDpuYW1lLCBsZW5ndGg6MDpkZWZhdWx0X2Zsb2F0 Zm9ybWF0X2Zvcl90eXBlOjowCisrbTpjb25zdCBzdHJ1Y3QgZmxvYXRmb3JtYXQgKio6ZmxvYXRm b3JtYXRfZm9yX3R5cGU6Y29uc3QgY2hhciAqbmFtZSwgTE9OR0VTVCBsZW5ndGg6bmFtZSwgbGVu Z3RoOjA6ZGVmYXVsdF9mbG9hdGZvcm1hdF9mb3JfdHlwZTo6MAorIAorICMgRm9yIG1vc3QgdGFy Z2V0cywgYSBwb2ludGVyIG9uIHRoZSB0YXJnZXQgYW5kIGl0cyByZXByZXNlbnRhdGlvbiBhcyBh bgorICMgYWRkcmVzcyBpbiBHREIgaGF2ZSB0aGUgc2FtZSBzaXplIGFuZCAibG9vayB0aGUgc2Ft ZSIuICBGb3Igc3VjaCBhCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2kzODYtdGRl cC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvaTM4Ni10 ZGVwLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41 MC4yMDE3MDIyNi9nZGIvaTM4Ni10ZGVwLmMJMjAxNy0wMi0yNiAyMjowNDowMy40NTg2MTAwNzkg KzAxMDAKK0BAIC04MjA0LDcgKzgyMDQsNyBAQAorIAorIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1h dCAqKgorIGkzODZfZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LAorLQkJCSAgIGNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW4pCisrCQkJICAgY29uc3QgY2hhciAq bmFtZSwgTE9OR0VTVCBsZW4pCisgeworICAgaWYgKGxlbiA9PSAxMjggJiYgbmFtZSkKKyAgICAg aWYgKHN0cmNtcCAobmFtZSwgIl9fZmxvYXQxMjgiKSA9PSAwCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMjYvZ2RiL3BwYy1saW51eC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41 MC4yMDE3MDIyNi5vcmlnL2dkYi9wcGMtbGludXgtdGRlcC5jCTIwMTctMDItMjYgMjE6NTk6MzYu MDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3BwYy1saW51eC10 ZGVwLmMJMjAxNy0wMi0yNiAyMjowNDowMy40NTg2MTAwNzkgKzAxMDAKK0BAIC0xNjMyLDcgKzE2 MzIsNyBAQAorIAorIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqKgorIHBwY19mbG9hdGZvcm1h dF9mb3JfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCistICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBpbnQgbGVuKQorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqbmFtZSwgTE9OR0VTVCBsZW4pCisgeworICAgaWYgKGxlbiA9PSAx MjggJiYgbmFtZSkKKyAgICAgaWYgKHN0cmNtcCAobmFtZSwgIl9fZmxvYXQxMjgiKSA9PSAwCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3RyYWNlcG9pbnQuaAorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3RyYWNlcG9pbnQuaAkyMDE3LTAyLTI2 IDIyOjA1OjE0Ljc3NTExNDMwOSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi90 cmFjZXBvaW50LmgJMjAxNy0wMi0yNiAyMjowNToyNC44MDcxODUyMzkgKzAxMDAKK0BAIC0yNTQs NyArMjU0LDcgQEAKKyAgIHZvaWQgYWRkX3JlZ2lzdGVyICh1bnNpZ25lZCBpbnQgcmVnbm8pOwor ICAgdm9pZCBhZGRfbWVtcmFuZ2UgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIAkJICAgICBp bnQgdHlwZSwgYmZkX3NpZ25lZF92bWEgYmFzZSwKKy0JCSAgICAgdW5zaWduZWQgbG9uZyBsZW4p OworKwkJICAgICBVTE9OR0VTVCBsZW4pOworICAgdm9pZCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0 IHN5bWJvbCAqc3ltLAorIAkJICAgICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIAkJICAg ICAgIGxvbmcgZnJhbWVfcmVnbm8sIGxvbmcgZnJhbWVfb2Zmc2V0LAoKZGlmZiAtLWdpdCBhL2dk Yi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3Mt MjNvZjI1LnBhdGNoCmluZGV4IDg1NzYwZGIuLjJlZmY4NTkgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIz b2YyNS5wYXRjaApAQCAtMTM3LDExICsxMzcsMTEgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0 Y2gKIENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246 IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBvcy10ZGVwLnBhdGNoCiAKLUluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvYWxwaGEtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL2FscGhhLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjM5MDUwMjcxOCArMDIw MAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbHBoYS10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0Ny41MTE1MTk3ODggKzAyMDAKLUBAIC0yOTksMTcgKzI5OSwxNyBAQAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMw LjQ3MDEyMTE4NyArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9hbHBoYS10ZGVw LmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yNjkyNDg1NDYgKzAxMDAKK0BAIC0zMDAsMTcgKzMwMCwx NyBAQAogIHsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29y ZGVyIChnZGJhcmNoKTsKICAgIGludCBpOwpAQCAtMTYzLDcgKzE2Myw3IEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvYWxwaGEtdGRlcC5jCiAgICBDT1JFX0FERFIgZnVuY19hZGRy ID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CiAgCiAgICAvKiBUaGUgQUJJ IHBsYWNlcyB0aGUgYWRkcmVzcyBvZiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGluIFQxMi4gICovCi1A QCAtNDI5LDggKzQyOSw4IEBACitAQCAtNDMwLDggKzQzMCw4IEBACiAgICBmb3IgKGkgPSBuYXJn czsgbV9hcmctLSwgLS1pID49IDA7KQogICAgICB7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKmNv bnRlbnRzID0gbV9hcmctPmNvbnRlbnRzOwpAQCAtMTc0LDcgKzE3NCw3IEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvYWxwaGEtdGRlcC5jCiAgCiAgICAgICAgLyogQ29weSB0aGUg Ynl0ZXMgZGVzdGluZWQgZm9yIHJlZ2lzdGVycyBpbnRvIGFyZ19yZWdfYnVmZmVyLiAgKi8KICAg ICAgICBpZiAob2Zmc2V0IDwgc2l6ZW9mKGFyZ19yZWdfYnVmZmVyKSkKLUBAIC00NDIsNyArNDQy LDcgQEAKK0BAIC00NDMsNyArNDQzLDcgQEAKICAJICAgIH0KICAJICBlbHNlCiAgCSAgICB7CkBA IC0xODMsMTEgKzE4MywxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FscGhh LXRkZXAuYwogIAkgICAgICBtZW1jcHkgKGFyZ19yZWdfYnVmZmVyICsgb2Zmc2V0LCBjb250ZW50 cywgdGxlbik7CiAgCSAgICAgIG9mZnNldCArPSB0bGVuOwogIAkgICAgICBjb250ZW50cyArPSB0 bGVuOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbWQ2NC10ZGVwLmMKK0luZGV4 OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvYW1kNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6 MzU6NDUuMzkxNTAyNzI2ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FtZDY0 LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxMjUxOTc5NiArMDIwMAotQEAgLTcyOSw3ICs3 MjksNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwky MDE3LTAyLTI2IDE5OjExOjMwLjQ3MTEyMTE5NCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjA3L2dkYi9hbWQ2NC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMjo1My42ODU3MTY2MjMgKzAxMDAK K0BAIC03MzAsNyArNzMwLDcgQEAKICAJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2Ri X2J5dGUgKndyaXRlYnVmKQogIHsKICAgIGVudW0gYW1kNjRfcmVnX2NsYXNzIHRoZWNsYXNzWzJd OwpAQCAtMTk2LDcgKzE5NiwyMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Ft ZDY0LXRkZXAuYwogICAgc3RhdGljIGludCBpbnRlZ2VyX3JlZ251bVtdID0geyBBTUQ2NF9SQVhf UkVHTlVNLCBBTUQ2NF9SRFhfUkVHTlVNIH07CiAgICBzdGF0aWMgaW50IHNzZV9yZWdudW1bXSA9 IHsgQU1ENjRfWE1NMF9SRUdOVU0sIEFNRDY0X1hNTTFfUkVHTlVNIH07CiAgICBpbnQgaW50ZWdl cl9yZWcgPSAwOwotQEAgLTg4MCw4ICs4ODAsOCBAQAorQEAgLTg0NywxMCArODQ3LDEwIEBACisg ICAgICAgZ2RiX2Fzc2VydCAocmVnbnVtICE9IC0xKTsKKyAKKyAgICAgICBpZiAocmVhZGJ1ZikK Ky0JcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAocmVnY2FjaGUsIHJlZ251bSwgb2Zmc2V0LCBzdGQ6 Om1pbiAobGVuLCA4KSwKKysJcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAocmVnY2FjaGUsIHJlZ251 bSwgb2Zmc2V0LCBzdGQ6Om1pbiAobGVuLCAoTE9OR0VTVCkgOCksCisgCQkJCXJlYWRidWYgKyBp ICogOCk7CisgICAgICAgaWYgKHdyaXRlYnVmKQorLQlyZWdjYWNoZV9yYXdfd3JpdGVfcGFydCAo cmVnY2FjaGUsIHJlZ251bSwgb2Zmc2V0LCBzdGQ6Om1pbiAobGVuLCA4KSwKKysJcmVnY2FjaGVf cmF3X3dyaXRlX3BhcnQgKHJlZ2NhY2hlLCByZWdudW0sIG9mZnNldCwgc3RkOjptaW4gKGxlbiwg KExPTkdFU1QpIDgpLAorIAkJCQkgd3JpdGVidWYgKyBpICogOCk7CisgICAgIH0KKyAKK0BAIC04 ODEsOCArODgxLDggQEAKICAgIH07CiAgICBzdHJ1Y3QgdmFsdWUgKipzdGFja19hcmdzID0gWEFM TE9DQVZFQyAoc3RydWN0IHZhbHVlICosIG5hcmdzKTsKICAgIGludCBudW1fc3RhY2tfYXJncyA9 IDA7CkBAIC0yMDcsNyArMjIwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h bWQ2NC10ZGVwLmMKICAgIGludCBpbnRlZ2VyX3JlZyA9IDA7CiAgICBpbnQgc3NlX3JlZyA9IDA7 CiAgICBpbnQgaTsKLUBAIC04OTMsNyArODkzLDcgQEAKK0BAIC04OTQsNyArODk0LDcgQEAKICAg IGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUg KnR5cGUgPSB2YWx1ZV90eXBlIChhcmdzW2ldKTsKQEAgLTIxNiwxMSArMjI5LDIwIEBAIEluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYW1kNjQtdGRlcC5jCiAgICAgICAgZW51bSBhbWQ2 NF9yZWdfY2xhc3MgdGhlY2xhc3NbMl07CiAgICAgICAgaW50IG5lZWRlZF9pbnRlZ2VyX3JlZ3Mg PSAwOwogICAgICAgIGludCBuZWVkZWRfc3NlX3JlZ3MgPSAwOwotSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYworQEAgLTk1OCw3ICs5NTgsNyBAQAor IAorIAkgICAgICBnZGJfYXNzZXJ0IChyZWdudW0gIT0gLTEpOworIAkgICAgICBtZW1zZXQgKGJ1 ZiwgMCwgc2l6ZW9mIGJ1Zik7CistCSAgICAgIG1lbWNweSAoYnVmLCB2YWxidWYgKyBqICogOCwg c3RkOjptaW4gKGxlbiwgOCkpOworKwkgICAgICBtZW1jcHkgKGJ1ZiwgdmFsYnVmICsgaiAqIDgs IHN0ZDo6bWluIChsZW4sIChMT05HRVNUKSA4KSk7CisgCSAgICAgIHJlZ2NhY2hlX3Jhd193cml0 ZV9wYXJ0IChyZWdjYWNoZSwgcmVnbnVtLCBvZmZzZXQsIDgsIGJ1Zik7CisgCSAgICB9CisgCX0K K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbWQ2NC13aW5kb3dz LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjM5MzUwMjc0MiArMDIwMAotKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3 LjUxMjUxOTc5NiArMDIwMAotQEAgLTI4OCw3ICsyODgsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIw MTcwMjA3Lm9yaWcvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAu NDcyMTIxMjAyICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2FtZDY0LXdpbmRv d3MtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjcwMjQ4NTUzICswMTAwCitAQCAtMjg5LDcg KzI4OSw3IEBACiAgCQkJICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJl Z2NhY2hlLAogIAkJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRl YnVmKQogIHsKQEAgLTIyOSwxMSArMjUxLDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKICAgIGludCByZWdudW0gPSAtMTsKICAKICAgIC8q IFNlZSBpZiBvdXIgdmFsdWUgaXMgcmV0dXJuZWQgdGhyb3VnaCBhIHJlZ2lzdGVyLiAgSWYgaXQg aXMsIHRoZW4KLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXJtLXRkZXAuYworSW5k ZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9hcm0tdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYXJtLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1 OjQ1LjQwMDUwMjc5OCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hcm0tdGRl cC5jCTIwMTYtMDctMTYgMTQ6MzY6MzAuMzI4ODY0Mzc2ICswMjAwCi1AQCAtMzQ0Myw3ICszNDQz LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9hcm0tdGRlcC5jCTIwMTct MDItMjYgMTk6MTE6MzAuNDc3MTIxMjM3ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL2FybS10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yNzMyNDg1NzUgKzAxMDAKK0BAIC0z NDg1LDcgKzM0ODUsNyBAQAogICAgIGFycmF5KS4gIFZlY3RvciB0eXBlcyBhcmUgbm90IGN1cnJl bnRseSBzdXBwb3J0ZWQsIG1hdGNoaW5nIHRoZQogICAgIGdlbmVyaWMgQUFQQ1Mgc3VwcG9ydC4g ICovCiAgCkBAIC0yNDIsNyArMjY0LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9hcm0tdGRlcC5jCiAgYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKHN0cnVjdCB0eXBlICp0 LAogIAkJCSAgICBlbnVtIGFybV92ZnBfY3ByY19iYXNlX3R5cGUgKmJhc2VfdHlwZSkKICB7Ci1A QCAtMzUyNiw3ICszNTI2LDcgQEAKK0BAIC0zNTY4LDcgKzM1NjgsNyBAQAogIAkgIH0KICAJZWxz ZQogIAkgIHsKQEAgLTI1MSw3ICsyNzMsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2FybS10ZGVwLmMKICAJICAgIHVuc2lnbmVkIHVuaXRsZW47CiAgCiAgCSAgICBjb3VudCA9 IGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChUWVBFX1RBUkdFVF9UWVBFICh0KSwKLUBAIC0z NTQ5LDEyICszNTQ5LDEyIEBACitAQCAtMzU5MSwxMiArMzU5MSwxMiBAQAogIAogICAgICBjYXNl IFRZUEVfQ09ERV9TVFJVQ1Q6CiAgICAgICAgewpAQCAtMjY2LDcgKzI4OCw3IEBAIEluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXJtLXRkZXAuYwogIAogIAkgICAgaWYgKCFmaWVsZF9p c19zdGF0aWMgKCZUWVBFX0ZJRUxEICh0LCBpKSkpCiAgCSAgICAgIHN1Yl9jb3VudCA9IGFybV92 ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpLAotQEAgLTM1Nzgs MTMgKzM1NzgsMTUgQEAKK0BAIC0zNjIwLDEzICszNjIwLDE1IEBACiAgCiAgICAgIGNhc2UgVFlQ RV9DT0RFX1VOSU9OOgogICAgICAgIHsKQEAgLTI4NSw3ICszMDcsNyBAQCBJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2FybS10ZGVwLmMKICAJICAgIGlmIChzdWJfY291bnQgPT0gLTEp CiAgCSAgICAgIHJldHVybiAtMTsKICAJICAgIGNvdW50ID0gKGNvdW50ID4gc3ViX2NvdW50ID8g Y291bnQgOiBzdWJfY291bnQpOwotQEAgLTM2MjAsNyArMzYyMiw3IEBACitAQCAtMzY2Miw3ICsz NjY0LDcgQEAKICAJCQlpbnQgKmNvdW50KQogIHsKICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2Vf dHlwZSBiID0gVkZQX0NQUkNfVU5LTk9XTjsKQEAgLTI5NCw3ICszMTYsNyBAQCBJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FybS10ZGVwLmMKICAgIGlmIChjIDw9IDAgfHwgYyA+IDQp CiAgICAgIHJldHVybiAwOwogICAgKmJhc2VfdHlwZSA9IGI7Ci1AQCAtMzcwMSw3ICszNzAzLDcg QEAKK0BAIC0zNzQzLDcgKzM3NDUsNyBAQAogIAogICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0g PCBuYXJnczsgYXJnbnVtKyspCiAgICAgIHsKQEAgLTMwMywxMSArMzI1LDExIEBAIEluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXJtLXRkZXAuYwogICAgICAgIHN0cnVjdCB0eXBlICph cmdfdHlwZTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGU7CiAgICAgICAgZW51bSB0 eXBlX2NvZGUgdHlwZWNvZGU7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F2ci10 ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvYXZyLXRkZXAuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2F2ci10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0NS40MDE1MDI4MDYgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvYXZyLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxNjUxOTgyOCArMDIwMAotQEAgLTEx OTUsMTMgKzExOTUsMTMgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9hdnIt dGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAuNDc5MTIxMjUyICswMTAwCisrKysgZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL2F2ci10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yNzMyNDg1NzUg KzAxMDAKK0BAIC0xMTkxLDEzICsxMTkxLDEzIEBACiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0KICB7 CkBAIC0zMjMsNyArMzQ1LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hdnIt dGRlcC5jCiAgewogICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNpOwogICAgc2kgPSBYTkVXIChzdHJ1 Y3Qgc3RhY2tfaXRlbSk7Ci1AQCAtMTI4OSwxMiArMTI4OSwxMiBAQAorQEAgLTEyODUsMTIgKzEy ODUsMTIgQEAKICAKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CkBAIC0z MzksMTAgKzM2MSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F2ci10ZGVw LmMKICAKICAgICAgICAvKiBDYWxjdWxhdGUgdGhlIHBvdGVudGlhbCBsYXN0IHJlZ2lzdGVyIG5l ZWRlZC4KICAgICAgICAgICBFLmcuIEZvciBsZW5ndGggMiwgcmVnaXN0ZXJzIHJlZ251bSBhbmQg cmVnbnVtLTEgKHNheSAyNSBhbmQgMjQpCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2JmaW4tdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2JmaW4tdGRlcC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYmZpbi10ZGVw LmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MDE1MDI4MDYgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYmZpbi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTY1MTk4MjggKzAy MDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDE3LTAy LTI2IDE5OjExOjMwLjQ3OTEyMTI1MiArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dk Yi9iZmluLXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjQ4LjI3MzI0ODU3NSArMDEwMAogQEAgLTUw Miw3ICs1MDIsNyBAQAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5 dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGk7CkBAIC0zNjEsMTAgKzM4MywxMCBAQCBJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2JmaW4tdGRlcC5jCiAgCiAgICAgICAgc3AgLT0g Y29udGFpbmVyX2xlbjsKICAgICAgICB3cml0ZV9tZW1vcnkgKHNwLCB2YWx1ZV9jb250ZW50cyAo YXJnc1tpXSksIGNvbnRhaW5lcl9sZW4pOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9jcmlzLXRkZXAuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9jcmlzLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2NyaXMtdGRl cC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDAzNTAyODIzICswMjAwCi0rKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2NyaXMtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE3NTE5ODM2ICsw MjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvY3Jpcy10ZGVwLmMJMjAxNy0w Mi0yNiAxOToxMTozMC40ODAxMjEyNTkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9n ZGIvY3Jpcy10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yNzQyNDg1ODIgKzAxMDAKIEBAIC02 NjMsMTMgKzY2MywxMyBAQAogIAogIHN0cnVjdCBzdGFja19pdGVtCkBAIC0zOTksMTAgKzQyMSwx MCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NyaXMtdGRlcC5jCiAgICAgICAg CiAgICAgICAgLyogSG93IG1heSByZWdpc3RlcnMgd29ydGggb2Ygc3RvcmFnZSBkbyB3ZSBuZWVk IGZvciB0aGlzIGFyZ3VtZW50PyAgKi8KICAgICAgICByZWdfZGVtYW5kID0gKGxlbiAvIDQpICsg KGxlbiAlIDQgIT0gMCA/IDEgOiAwKTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv aDgzMDAtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2g4MzAwLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2g4MzAwLXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwMzUwMjgyMyArMDIwMAotKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9oODMwMC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTc1MTk4MzYg KzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9oODMwMC10ZGVwLmMJMjAx Ny0wMi0yNiAxOToxMTozMC40ODExMjEyNjYgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIw Ny9nZGIvaDgzMDAtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjc0MjQ4NTgyICswMTAwCiBA QCAtNjM3LDcgKzYzNyw3IEBACiAgCQkgICAgICAgaW50IHN0cnVjdF9yZXR1cm4sIENPUkVfQURE UiBzdHJ1Y3RfYWRkcikKICB7CkBAIC00MzUsMTEgKzQ1NywxMSBAQCBJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2g4MzAwLXRkZXAuYwogIAogIAkgICAgICBmb3IgKG9mZnNldCA9IDA7 IG9mZnNldCA8IHBhZGRlZF9sZW47IG9mZnNldCArPSB3b3Jkc2l6ZSkKICAJCXsKLUluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaHBwYS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4y MDE3MDIwNy9nZGIvaHBwYS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9ocHBhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwNTUwMjgzOSAr MDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ocHBhLXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ3LjUxODUxOTg0NCArMDIwMAotQEAgLTk5MSw3ICs5OTEsNyBAQAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2hwcGEtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAu NDgyMTIxMjczICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2hwcGEtdGRlcC5j CTIwMTctMDItMjYgMTk6MTE6NDguMjc1MjQ4NTg5ICswMTAwCitAQCAtOTg4LDcgKzk4OCw3IEBA CiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgICAgICAgc3Ry dWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmcpOwpAQCAtNDQ4LDcgKzQ3MCw3IEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaHBwYS10ZGVwLmMKICAgICAgICBjb25zdCBi ZmRfYnl0ZSAqdmFsYnVmOwogICAgICAgIGJmZF9ieXRlIGZwdHJidWZbOF07CiAgICAgICAgaW50 IHJlZ251bTsKLUBAIC0xMTg2LDcgKzExODYsNyBAQAorQEAgLTExODMsNyArMTE4Myw3IEBACiAg CQkgICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJ ICAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQogIHsKQEAg LTQ1NywxMSArNDc5LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaHBwYS10 ZGVwLmMKICAgIGludCByZWdudW0sIG9mZnNldDsKICAKICAgIGlmIChsZW4gPiAxNikKLUluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ1LjQwNTUwMjgzOSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTg1MTk4NDQgKzAyMDAK LUBAIC0xNjMsNyArMTYzLDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9p Mzg2LWRhcndpbi10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC40ODMxMjEyODAgKzAxMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTctMDItMjYg MTk6MTE6NDguMjc1MjQ4NTg5ICswMTAwCitAQCAtMTY3LDcgKzE2Nyw3IEBACiAgCiAgICBmb3Ig KHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFzcysrKQogICAgICB7CkBA IC00NzAsMTEgKzQ5MiwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYt ZGFyd2luLXRkZXAuYwogICAgICAgIGludCBudW1fbTEyOCA9IDA7CiAgCiAgICAgICAgaWYgKHN0 cnVjdF9yZXR1cm4pCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtdGRlcC5j CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2kzODYtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvaTM4Ni10ZGVwLmMJMjAxNi0wNy0x NiAxNDozNTo0NS40MTA1MDI4NzkgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv aTM4Ni10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjA1MTk4NjAgKzAyMDAKLUBAIC0yNjY0 LDcgKzI2NjQsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2kzODYtdGRl cC5jCTIwMTctMDItMjYgMTk6MTE6MzAuNDg2MTIxMzAyICswMTAwCisrKysgZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL2kzODYtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjc3MjQ4NjAzICsw MTAwCitAQCAtMjY2MSw3ICsyNjYxLDcgQEAKICAgIGdkYl9ieXRlIGJ1Zls0XTsKICAgIGludCBp OwogICAgaW50IHdyaXRlX3Bhc3M7CkBAIC00ODMsNyArNTA1LDcgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9pMzg2LXRkZXAuYwogIAogICAgLyogRGV0ZXJtaW5lIHRoZSB0b3Rh bCBzcGFjZSByZXF1aXJlZCBmb3IgYXJndW1lbnRzIGFuZCBzdHJ1Y3QKICAgICAgIHJldHVybiBh ZGRyZXNzIGluIGEgZmlyc3QgcGFzcyAoYWxsb3dpbmcgZm9yIDE2LWJ5dGUtYWxpZ25lZAotQEAg LTI2NzIsNyArMjY3Miw3IEBACitAQCAtMjY2OSw3ICsyNjY5LDcgQEAKICAKICAgIGZvciAod3Jp dGVfcGFzcyA9IDA7IHdyaXRlX3Bhc3MgPCAyOyB3cml0ZV9wYXNzKyspCiAgICAgIHsKQEAgLTQ5 Miw3ICs1MTQsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtdGRlcC5j CiAgCiAgICAgICAgaWYgKHN0cnVjdF9yZXR1cm4pCiAgCXsKLUBAIC0yNjg5LDcgKzI2ODksNyBA QAorQEAgLTI2ODYsNyArMjY4Niw3IEBACiAgCiAgICAgICAgZm9yIChpID0gMDsgaSA8IG5hcmdz OyBpKyspCiAgCXsKQEAgLTUwMSw3ICs1MjMsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2kzODYtdGRlcC5jCiAgCiAgCSAgaWYgKHdyaXRlX3Bhc3MpCiAgCSAgICB7Ci1AQCAt Mjg5Niw3ICsyODk2LDcgQEAKK0BAIC0yODkzLDcgKzI4OTMsNyBAQAogIHsKICAgIHN0cnVjdCBn ZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOwogICAgZW51bSB0eXBl X2NvZGUgY29kZSA9IFRZUEVfQ09ERSAodHlwZSk7CkBAIC01MTAsNyArNTMyLDcgQEAgSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pMzg2LXRkZXAuYwogIAogICAgZ2RiX2Fzc2VydCAo Y29kZSA9PSBUWVBFX0NPREVfU1RSVUNUCiAgICAgICAgICAgICAgICB8fCBjb2RlID09IFRZUEVf Q09ERV9VTklPTgotQEAgLTM3MTgsNyArMzcxOCw3IEBACitAQCAtMzcxNSw3ICszNzE1LDcgQEAK ICBpMzg2X2NvbnZlcnRfcmVnaXN0ZXJfcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgCQkJ IGludCByZWdudW0sIHN0cnVjdCB0eXBlICp0eXBlKQogIHsKQEAgLTUxOSw3ICs1NDEsNyBAQCBJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtdGRlcC5jCiAgCiAgICAvKiBWYWx1 ZXMgbWF5IGJlIHNwcmVhZCBhY3Jvc3MgbXVsdGlwbGUgcmVnaXN0ZXJzLiAgTW9zdCBkZWJ1Z2dp bmcKICAgICAgIGZvcm1hdHMgYXJlbid0IGV4cHJlc3NpdmUgZW5vdWdoIHRvIHNwZWNpZnkgdGhl IGxvY2F0aW9ucywgc28KLUBAIC0zNzUxLDcgKzM3NTEsNyBAQAorQEAgLTM3NDgsNyArMzc0OCw3 IEBACiAgCQkJaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKICB7CiAgICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CkBAIC01MjgsNyAr NTUwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pMzg2LXRkZXAuYwogIAog ICAgaWYgKGkzODZfZnBfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCiAgICAgIHJldHVybiBp Mzg3X3JlZ2lzdGVyX3RvX3ZhbHVlIChmcmFtZSwgcmVnbnVtLCB0eXBlLCB0bywKLUBAIC0zNzg3 LDcgKzM3ODcsNyBAQAorQEAgLTM3ODQsNyArMzc4NCw3IEBACiAgaTM4Nl92YWx1ZV90b19yZWdp c3RlciAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAogIAkJCXN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqZnJvbSkKICB7CkBAIC01MzcsMTEgKzU1OSwxMSBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtdGRlcC5jCiAgCiAgICBpZiAo aTM4Nl9mcF9yZWdudW1fcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSwgcmVnbnVtKSkKICAgICAg ewotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pcTIwMDAtdGRlcC5jCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2lxMjAwMC10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9pcTIwMDAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6 MzU6NDUuNDExNTAyODg3ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2lxMjAw MC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjA1MTk4NjAgKzAyMDAKLUBAIC02NDYsOCAr NjQ2LDkgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9pcTIwMDAtdGRlcC5j CTIwMTctMDItMjYgMTk6MTE6MzAuNDg3MTIxMzA5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL2lxMjAwMC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yNzcyNDg2MDMgKzAx MDAKK0BAIC02NTEsOCArNjUxLDkgQEAKICAgIGNvbnN0IGJmZF9ieXRlICp2YWw7CiAgICBiZmRf Ynl0ZSBidWZbNF07CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKQEAgLTU1MywxMSArNTc1LDExIEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaXEyMDAwLXRkZXAuYwogICAgLyogVXNl ZCB0byBjb3B5IHN0cnVjdCBhcmd1bWVudHMgaW50byB0aGUgc3RhY2suICAqLwogICAgQ09SRV9B RERSIHN0cnVjdF9wdHI7CiAgCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20zMnIt dGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL20zMnItdGRlcC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAx Ni0wNy0xNiAxNDozNTo0NS40MTE1MDI4ODcgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvbTMyci10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjA1MTk4NjAgKzAyMDAKLUBA IC02ODUsNyArNjg1LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9tMzJy LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjQ4NzEyMTMwOSArMDEwMAorKysrIGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi9tMzJyLXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjQ4LjI3ODI0ODYx MCArMDEwMAorQEAgLTY3OCw3ICs2NzgsNyBAQAogICAgQ09SRV9BRERSIHJlZ3ZhbDsKICAgIGdk Yl9ieXRlICp2YWw7CiAgICBnZGJfYnl0ZSB2YWxidWZbTUFYX1JFR0lTVEVSX1NJWkVdOwpAQCAt NTY2LDExICs1ODgsMTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMzJyLXRk ZXAuYwogIAogICAgLyogRmlyc3QgZm9yY2Ugc3AgdG8gYSA0LWJ5dGUgYWxpZ25tZW50LiAgKi8K ICAgIHNwID0gc3AgJiB+MzsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTY4ay10 ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvbTY4ay10ZGVwLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tNjhrLXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ1LjQxMjUwMjg5NSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9tNjhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMDUxOTg2MCArMDIwMAotQEAg LTM4Miw3ICszODIsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL202OGst dGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAuNDg4MTIxMzE2ICswMTAwCisrKysgZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL202OGstdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjc4MjQ4NjEw ICswMTAwCitAQCAtMzc3LDcgKzM3Nyw3IEBACiAgewogICAgc3RydWN0IGdkYmFyY2hfdGRlcCAq dGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CiAgICBlbnVtIHR5cGVfY29kZSBjb2RlID0g VFlQRV9DT0RFICh0eXBlKTsKQEAgLTU3OSw3ICs2MDEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL202OGstdGRlcC5jCiAgCiAgICBnZGJfYXNzZXJ0IChjb2RlID09IFRZUEVf Q09ERV9TVFJVQ1QgfHwgY29kZSA9PSBUWVBFX0NPREVfVU5JT04KICAJICAgICAgfHwgY29kZSA9 PSBUWVBFX0NPREVfQ09NUExFWCk7Ci1AQCAtNTE0LDkgKzUxNCw5IEBACitAQCAtNTA5LDkgKzUw OSw5IEBACiAgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQogICAgICB7CiAgICAg ICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAoYXJnc1tp XSk7CkBAIC01OTIsMTEgKzYxNCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L202OGstdGRlcC5jCiAgCiAgICAgICAgLyogTm9uLXNjYWxhcnMgYmlnZ2VyIHRoYW4gNCBieXRl cyBhcmUgbGVmdCBhbGlnbmVkLCBvdGhlcnMgYXJlCiAgCSByaWdodCBhbGlnbmVkLiAgKi8KLUlu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTg4ay10ZGVwLmMKK0luZGV4OiBnZGItNy4x Mi41MC4yMDE3MDIwNy9nZGIvbTg4ay10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9tODhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQxMjUw Mjg5NSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tODhrLXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ3LjUyMTUxOTg2OCArMDIwMAotQEAgLTI1NywxMyArMjU3LDEzIEBACist LS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvbTg4ay10ZGVwLmMJMjAxNy0wMi0yNiAx OToxMTozMC40ODgxMjEzMTYgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvbTg4 ay10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yNzgyNDg2MTAgKzAxMDAKK0BAIC0yNTMsMTMg KzI1MywxMyBAQAogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hl X2FyY2ggKHJlZ2NhY2hlKTsKICAgIGludCBudW1fcmVnaXN0ZXJfd29yZHMgPSAwOwpAQCAtNjEy LDcgKzYzNCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTg4ay10ZGVwLmMK ICAKICAgICAgICBpZiAobTg4a19pbnRlZ3JhbF9vcl9wb2ludGVyX3AgKHR5cGUpICYmIGxlbiA8 IDQpCiAgCXsKLUBAIC0zMDUsOCArMzA1LDggQEAKK0BAIC0zMDEsOCArMzAxLDggQEAKICAgICAg ewogICAgICAgIGNvbnN0IGJmZF9ieXRlICp2YWxidWYgPSB2YWx1ZV9jb250ZW50cyAoYXJnc1tp XSk7CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmdzW2ldKTsKQEAg LTYyMywxMSArNjQ1LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTg4ay10 ZGVwLmMKICAKICAgICAgICBpZiAobTg4a19pbl9yZWdpc3Rlcl9wICh0eXBlKSkKICAJewotSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tZXAtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL21lcC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9tZXAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDEzNTAyOTAz ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lcC10ZGVwLmMJMjAxNi0wNy0x NiAxNDozNTo0Ny41MjE1MTk4NjggKzAyMDAKLUBAIC0yMjcyLDcgKzIyNzIsNyBAQAorLS0tIGdk Yi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMToz MC40ODkxMjEzMjMgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvbWVwLXRkZXAu YwkyMDE3LTAyLTI2IDE5OjExOjQ4LjI3OTI0ODYxOCArMDEwMAorQEAgLTIyNjIsNyArMjI2Miw3 IEBACiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKQogICAgICB7CkBAIC02MzYsMTEg KzY1OCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lcC10ZGVwLmMKICAK ICAgICAgICBpZiAoYXJnX2xlbiA+IE1FUF9HUFJfU0laRSkKICAgICAgICAgIHsKLUluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWlwcy10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4y MDE3MDIwNy9nZGIvbWlwcy10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9taXBzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyMTUwMjk2NyAr MDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ3LjUyMzUxOTg4NCArMDIwMAotQEAgLTQ1NSw3ICs0NTUsNyBAQAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL21pcHMtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAu NDkzMTIxMzUyICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL21pcHMtdGRlcC5j CTIwMTctMDItMjYgMTk6MTE6NDguMjgxMjQ4NjMyICswMTAwCitAQCAtNDc0LDcgKzQ3NCw3IEBA CiAgbWlwc194ZmVyX3JlZ2lzdGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwKICAJCSAgICBpbnQgcmVnX251bSwgaW50IGxlbmd0aCwKICAJCSAg ICBlbnVtIGJmZF9lbmRpYW4gZW5kaWFuLCBnZGJfYnl0ZSAqaW4sCkBAIC02NDksNyArNjcxLDcg QEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwogIHsKICAgIGlu dCByZWdfb2Zmc2V0ID0gMDsKICAKLUBAIC00NzgsOCArNDc4LDggQEAKK0BAIC00OTcsOCArNDk3 LDggQEAKICAgICAgfQogICAgaWYgKG1pcHNfZGVidWcpCiAgICAgIGZwcmludGZfdW5maWx0ZXJl ZCAoZ2RiX3N0ZGVyciwKQEAgLTY2MCw3ICs2ODIsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL21pcHMtdGRlcC5jCiAgICBpZiAobWlwc19kZWJ1ZyAmJiBvdXQgIT0gTlVMTCkK ICAgICAgewogICAgICAgIGludCBpOwotQEAgLTQ1MjksMTMgKzQ1MjksMTMgQEAKK0BAIC00NTMw LDEzICs0NTMwLDEzIEBACiAgICAgICAgZ2RiX2J5dGUgdmFsYnVmW01BWF9SRUdJU1RFUl9TSVpF XTsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAgICBzdHJ1 Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAg LTY3Nyw3ICs2OTksNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21pcHMtdGRl cC5jCiAgCiAgICAgICAgLyogVGhlIEVBQkkgcGFzc2VzIHN0cnVjdHVyZXMgdGhhdCBkbyBub3Qg Zml0IGluIGEgcmVnaXN0ZXIgYnkKICAgICAgICAgICByZWZlcmVuY2UuICAqLwotQEAgLTQ4MDQs NyArNDgwNCw3IEBACitAQCAtNDgwNSw3ICs0ODA1LDcgQEAKICAKICBzdGF0aWMgaW50CiAgbWlw c19uMzJuNjRfZnBfYXJnX2NodW5rX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3Qg dHlwZSAqYXJnX3R5cGUsCkBAIC02ODYsNyArNzA4LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9taXBzLXRkZXAuYwogIHsKICAgIGludCBpOwogIAotQEAgLTQ4MTksNyArNDgx OSw3IEBACitAQCAtNDgyMCw3ICs0ODIwLDcgQEAKICAKICAgIGZvciAoaSA9IDA7IGkgPCBUWVBF X05GSUVMRFMgKGFyZ190eXBlKTsgaSsrKQogICAgICB7CkBAIC02OTUsNyArNzE3LDcgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwogICAgICAgIHN0cnVjdCB0 eXBlICpmaWVsZF90eXBlOwogIAogICAgICAgIC8qIFdlJ3JlIG9ubHkgbG9va2luZyBhdCBub3Jt YWwgZmllbGRzLiAgKi8KLUBAIC00ODYxLDcgKzQ4NjEsNyBAQAorQEAgLTQ4NjIsNyArNDg2Miw3 IEBACiAgICBpbnQgYXJncmVnOwogICAgaW50IGZsb2F0X2FyZ3JlZzsKICAgIGludCBhcmdudW07 CkBAIC03MDQsNyArNzI2LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBz LXRkZXAuYwogICAgaW50IHN0YWNrX29mZnNldCA9IDA7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBDT1JFX0FERFIgZnVu Y19hZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7Ci1AQCAtNTIxMiwx MSArNTIxMiwxMSBAQAorQEAgLTUyMTMsMTEgKzUyMTMsMTEgQEAKICAJCQkJOiBNSVBTX1YwX1JF R05VTSk7CiAgCSAgIGZpZWxkIDwgVFlQRV9ORklFTERTICh0eXBlKTsgZmllbGQrKywgcmVnbnVt ICs9IDIpCiAgCXsKQEAgLTcyMCw3ICs3NDIsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL21pcHMtdGRlcC5jCiAgCSAgaWYgKFRZUEVfTEVOR1RIIChUWVBFX0ZJRUxEX1RZUEUg KHR5cGUsIGZpZWxkKSkgPT0gMTYpCiAgCSAgICB7CiAgCSAgICAgIC8qIEEgMTYtYnl0ZSBsb25n IGRvdWJsZSBmaWVsZCBnb2VzIGluIHR3byBjb25zZWN1dGl2ZQotQEAgLTUyNTgsOCArNTI1OCw4 IEBACitAQCAtNTI1OSw4ICs1MjU5LDggQEAKICAJICBpZiAob2Zmc2V0ICsgeGZlciA+IFRZUEVf TEVOR1RIICh0eXBlKSkKICAJICAgIHhmZXIgPSBUWVBFX0xFTkdUSCAodHlwZSkgLSBvZmZzZXQ7 CiAgCSAgaWYgKG1pcHNfZGVidWcpCkBAIC03MzEsNyArNzUzLDcgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwogIAkgIG1pcHNfeGZlcl9yZWdpc3RlciAoZ2Ri YXJjaCwgcmVnY2FjaGUsCiAgCQkJICAgICAgZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkgKyBy ZWdudW0sCiAgCQkJICAgICAgeGZlciwgQkZEX0VORElBTl9VTktOT1dOLCByZWFkYnVmLCB3cml0 ZWJ1ZiwKLUBAIC01MzE3LDcgKzUzMTcsNyBAQAorQEAgLTUzMTgsNyArNTMxOCw3IEBACiAgICBp bnQgYXJncmVnOwogICAgaW50IGZsb2F0X2FyZ3JlZzsKICAgIGludCBhcmdudW07CkBAIC03NDAs NyArNzYyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwog ICAgaW50IHN0YWNrX29mZnNldCA9IDA7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9 IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBDT1JFX0FERFIgZnVuY19hZGRyID0g ZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7Ci1AQCAtNTM4MSwxMyArNTM4MSwx MyBAQAorQEAgLTUzODIsMTMgKzUzODIsMTMgQEAKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFs OwogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdudW1dOwogICAgICAgIHN0cnVj dCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpAQCAt NzU3LDcgKzc3OSw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWlwcy10ZGVw LmMKICAKICAgICAgICB2YWwgPSB2YWx1ZV9jb250ZW50cyAoYXJnKTsKICAKLUBAIC01ODQyLDgg KzU4NDIsOCBAQAorQEAgLTU4NDMsOCArNTg0Myw4IEBACiAgICBpbnQgYXJncmVnOwogICAgaW50 IGZsb2F0X2FyZ3JlZzsKICAgIGludCBhcmdudW07CkBAIC03NjgsNyArNzkwLDcgQEAgSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwogICAgZW51bSBiZmRfZW5kaWFu IGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERS IGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwogIAotQEAg LTU5MDMsMTMgKzU5MDMsMTMgQEAKK0BAIC01OTA0LDEzICs1OTA0LDEzIEBACiAgICAgICAgY29u c3QgZ2RiX2J5dGUgKnZhbDsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVt XTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChhcmcpKTsKQEAgLTc4NSwxMSArODA3LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvbWlwcy10ZGVwLmMKICAKICAgICAgICB2YWwgPSB2YWx1ZV9jb250ZW50cyAoYXJn KTsKICAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbW4xMDMwMC10ZGVwLmMKK0lu ZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvbW4xMDMwMC10ZGVwLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tbjEwMzAwLXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ1LjQyMjUwMjk3NiArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9tbjEwMzAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNDUxOTg5MiArMDIwMAotQEAg LTEyMjUsNyArMTIyNSw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvbW4x MDMwMC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC40OTQxMjEzNTkgKzAxMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4y ODEyNDg2MzIgKzAxMDAKK0BAIC0xMjE5LDcgKzEyMTksNyBAQAogICAgZW51bSBiZmRfZW5kaWFu IGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgY29uc3QgaW50 IHB1c2hfc2l6ZSA9IHJlZ2lzdGVyX3NpemUgKGdkYmFyY2gsIEVfUENfUkVHTlVNKTsKICAgIGlu dCByZWdzX3VzZWQ7CkBAIC03OTgsMTEgKzgyMCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL21uMTAzMDAtdGRlcC5jCiAgICBpbnQgc3RhY2tfb2Zmc2V0ID0gMDsKICAgIGlu dCBhcmdudW07CiAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwotSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9tdC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvbXQt dGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbXQt dGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDIzNTAyOTg0ICswMjAwCi0rKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL210LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNDUxOTg5MiAr MDIwMAotQEAgLTc4MCw5ICs3ODAsOSBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcv Z2RiL210LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjQ5NTEyMTM2NiArMDEwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi9tdC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODEy NDg2MzIgKzAxMDAKK0BAIC03ODgsOSArNzg4LDkgQEAKICAgIGdkYl9ieXRlIGJ1ZltNVF9NQVhf U1RSVUNUX1NJWkVdOwogICAgaW50IGFyZ3JlZyA9IE1UXzFTVF9BUkdSRUc7CiAgICBpbnQgc3Bs aXRfcGFyYW1fbGVuID0gMDsKQEAgLTgxNCwxMSArODM2LDExIEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvbXQtdGRlcC5jCiAgICBpbnQgaSwgajsKICAKICAgIC8qIEZpcnN0IGhh bmRsZSBob3dldmVyIG1hbnkgYXJncyB3ZSBjYW4gZml0IGludG8gTVRfMVNUX0FSR1JFRyB0aHJ1 Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3BwYy1zeXN2LXRkZXAuYworSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9wcGMtc3lzdi10ZGVwLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNi0wNy0x NiAxNDozNTo0NS40MjQ1MDI5OTIgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv cHBjLXN5c3YtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI0NTE5ODkyICswMjAwCi1AQCAt NjYsNyArNjYsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3BwYy1zeXN2 LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjQ5NjEyMTM3MyArMDEwMAorKysrIGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODIy NDg2MzkgKzAxMDAKK0BAIC02Nyw3ICs2Nyw3IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9v cmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgb3BlbmNsX2FiaSA9 IHBwY19zeXN2X3VzZV9vcGVuY2xfYWJpICh2YWx1ZV90eXBlIChmdW5jdGlvbikpOwogICAgVUxP TkdFU1Qgc2F2ZWRfc3A7CkBAIC04MjcsNyArODQ5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9wcGMtc3lzdi10ZGVwLmMKICAgIGludCB3cml0ZV9wYXNzOwogIAogICAgZ2Ri X2Fzc2VydCAodGRlcC0+d29yZHNpemUgPT0gNCk7Ci1AQCAtOTcsOSArOTcsOSBAQAorQEAgLTk4 LDkgKzk4LDkgQEAKICAgICAgICAvKiBOZXh0IGF2YWlsYWJsZSB2ZWN0b3IgcmVnaXN0ZXIgZm9y IHZlY3RvciBhcmd1bWVudHMuICAqLwogICAgICAgIGludCB2cmVnID0gMjsKICAgICAgICAvKiBB cmd1bWVudHMgc3RhcnQgYWJvdmUgdGhlICJMUiBzYXZlIHdvcmQiIGFuZCAiQmFjayBjaGFpbiIu ICAqLwpAQCAtODM5LDcgKzg2MSw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv cHBjLXN5c3YtdGRlcC5jCiAgCiAgICAgICAgLyogSWYgdGhlIGZ1bmN0aW9uIGlzIHJldHVybmlu ZyBhIGBzdHJ1Y3QnLCB0aGVuIHRoZSBmaXJzdCB3b3JkCiAgICAgICAgICAgKHdoaWNoIHdpbGwg YmUgcGFzc2VkIGluIHIzKSBpcyB1c2VkIGZvciBzdHJ1Y3QgcmV0dXJuCi1AQCAtMTE4LDcgKzEx OCw3IEBACitAQCAtMTE5LDcgKzExOSw3IEBACiAgCXsKICAJICBzdHJ1Y3QgdmFsdWUgKmFyZyA9 IGFyZ3NbYXJnbm9dOwogIAkgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFs dWVfdHlwZSAoYXJnKSk7CkBAIC04NDgsNyArODcwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9wcGMtc3lzdi10ZGVwLmMKICAJICBjb25zdCBiZmRfYnl0ZSAqdmFsID0gdmFs dWVfY29udGVudHMgKGFyZyk7CiAgCiAgCSAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9D T0RFX0ZMVCAmJiBsZW4gPD0gOAotQEAgLTEyODMsMTEgKzEyODMsMTEgQEAKK0BAIC0xMjg0LDEx ICsxMjg0LDExIEBACiAgCiAgc3RhdGljIHZvaWQKICBwcGM2NF9zeXN2X2FiaV9wdXNoX3ZhbCAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCkBAIC04NjIsMTEgKzg4NCwxMSBAQCBJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3BwYy1zeXN2LXRkZXAuYwogIAogICAgLyogRW5mb3JjZSBh bGlnbm1lbnQgb2Ygc3RhY2sgbG9jYXRpb24sIGlmIHJlcXVlc3RlZC4gICovCiAgICBpZiAoYWxp Z24gPiB0ZGVwLT53b3Jkc2l6ZSkKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmw3 OC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcmw3OC10ZGVwLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9ybDc4LXRkZXAuYwky MDE2LTA3LTE2IDE0OjM1OjQ1LjQyNDUwMjk5MiArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9ybDc4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNTUxOTkwMCArMDIwMAot QEAgLTEzMzYsOCArMTMzNiw4IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIv cmw3OC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC40OTYxMjEzNzMgKzAxMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvcmw3OC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODIy NDg2MzkgKzAxMDAKK0BAIC0xMzUyLDggKzEzNTIsOCBAQAogICAgZm9yIChpID0gbmFyZ3MgLSAx OyBpID49IDA7IGktLSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICp2YWx1ZV90eXBlID0g dmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3NbaV0pOwpAQCAtODc3LDEwICs4OTksMTAgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ybDc4LXRkZXAuYwogIAogICAgICAgIHNwIC09 IGNvbnRhaW5lcl9sZW47CiAgICAgICAgd3JpdGVfbWVtb3J5IChybDc4X21ha2VfZGF0YV9hZGRy ZXNzIChzcCksCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JzNjAwMC1haXgtdGRl cC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcnM2MDAwLWFpeC10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MjU1MDMwMDAgKzAyMDAKLSsrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjU1 MTk5MDAgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9yczYwMDAtYWl4 LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjQ5NzEyMTM4MCArMDEwMAorKysrIGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjQ4LjI4 MjI0ODYzOSArMDEwMAogQEAgLTE4Niw5ICsxODYsOSBAQAogICAgc3RydWN0IGdkYmFyY2hfdGRl cCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC05MDIsMTAgKzkyNCwx MCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCiAg CiAgICAgICAgaWYgKGFyZ2J5dGVzKQogIAl7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3MzOTAtbGludXgtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Mz OTAtbGludXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvczM5MC1saW51eC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40Mjc1MDMwMTYgKzAy MDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvczM5MC1saW51eC10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0Ny41MjY1MTk5MDggKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5v cmlnL2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjQ5OTEyMTM5NSAr MDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE3 LTAyLTI2IDE5OjExOjQ4LjI4NDI0ODY1NCArMDEwMAogQEAgLTMxMjUsNyArMzEyNSw3IEBACiAg LyogRGV0ZXJtaW5lIHdoZXRoZXIgTiBpcyBhIHBvd2VyIG9mIHR3by4gICovCiAgCkBAIC05MjQs MTEgKzk0NiwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3MzOTAtbGludXgt dGRlcC5jCiAgICBpbnQgd3JpdGVfbW9kZSA9IGFzLT5yZWdjYWNoZSAhPSBOVUxMOwogIAogICAg aWYgKHMzOTBfZnVuY3Rpb25fYXJnX2Zsb2F0ICh0eXBlKSkKLUluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvc2NvcmUtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2Ri L3Njb3JlLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL3Njb3JlLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyODUwMzAyNCArMDIwMAotKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zY29yZS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0 Ny41Mjc1MTk5MTYgKzAyMDAKLUBAIC01MTQsNyArNTE0LDcgQEAKKy0tLSBnZGItNy4xMi41MC4y MDE3MDIwNy5vcmlnL2dkYi9zY29yZS10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC40OTkxMjEz OTUgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvc2NvcmUtdGRlcC5jCTIwMTct MDItMjYgMTk6MTE6NDguMjg0MjQ4NjU0ICswMTAwCitAQCAtNTI1LDcgKzUyNSw3IEBACiAgICBl bnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7 CiAgICBpbnQgYXJnbnVtOwogICAgaW50IGFyZ3JlZzsKQEAgLTkzNywxMSArOTU5LDExIEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2NvcmUtdGRlcC5jCiAgICBDT1JFX0FERFIg c3RhY2tfb2Zmc2V0ID0gMDsKICAgIENPUkVfQUREUiBhZGRyID0gMDsKICAKLUluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvc2gtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL3NoLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL3NoLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyOTUwMzAzMiArMDIwMAotKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zaC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41 Mjc1MTk5MTYgKzAyMDAKLUBAIC04MDUsNyArODA1LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3 MDIwNy5vcmlnL2dkYi9zaC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC41MDAxMjE0MDIgKzAx MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvc2gtdGRlcC5jCTIwMTctMDItMjYgMTk6 MTE6NDguMjg1MjQ4NjYxICswMTAwCitAQCAtODE0LDcgKzgxNCw3IEBACiAgc3RhdGljIGludAog IHNoX3VzZV9zdHJ1Y3RfY29udmVudGlvbiAoaW50IHJlbmVzYXNfYWJpLCBzdHJ1Y3QgdHlwZSAq dHlwZSkKICB7CkBAIC05NTAsNyArOTcyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9zaC10ZGVwLmMKICAgIGludCBuZWxlbSA9IFRZUEVfTkZJRUxEUyAodHlwZSk7CiAgCiAg ICAvKiBUaGUgUmVuZXNhcyBBQkkgcmV0dXJucyBhZ2dyZWdhdGUgdHlwZXMgYWx3YXlzIG9uIHN0 YWNrLiAgKi8KLUBAIC05MDcsNyArOTA3LDcgQEAKK0BAIC05MTYsNyArOTE2LDcgQEAKICAKICAv KiBIZWxwZXIgZnVuY3Rpb24gdG8ganVzdGlmeSB2YWx1ZSBpbiByZWdpc3RlciBhY2NvcmRpbmcg dG8gZW5kaWFuZXNzLiAgKi8KICBzdGF0aWMgY29uc3QgZ2RiX2J5dGUgKgpAQCAtOTU5LDcgKzk4 MSw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2gtdGRlcC5jCiAgewogICAg c3RhdGljIGdkYl9ieXRlIHZhbGJ1Zls0XTsKICAKLUBAIC0xMDY3LDcgKzEwNjcsOCBAQAorQEAg LTEwNzYsNyArMTA3Niw4IEBACiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAgIENPUkVfQUREUiBy ZWd2YWw7CiAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwpAQCAtOTY5LDcgKzk5MSw3IEBAIEluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2gtdGRlcC5jCiAgICBpbnQgcGFzc19vbl9zdGFj ayA9IDA7CiAgICBpbnQgdHJlYXRfYXNfZmx0OwogICAgaW50IGxhc3RfcmVnX2FyZyA9IElOVF9N QVg7Ci1AQCAtMTIwOCw3ICsxMjA5LDggQEAKK0BAIC0xMjE3LDcgKzEyMTgsOCBAQAogICAgc3Ry dWN0IHR5cGUgKnR5cGU7CiAgICBDT1JFX0FERFIgcmVndmFsOwogICAgY29uc3QgZ2RiX2J5dGUg KnZhbDsKQEAgLTk3OSwxMSArMTAwMSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3NoLXRkZXAuYwogICAgaW50IHBhc3Nfb25fc3RhY2sgPSAwOwogICAgaW50IGxhc3RfcmVn X2FyZyA9IElOVF9NQVg7CiAgCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NoNjQt dGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3NoNjQtdGRlcC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc2g2NC10ZGVwLmMJMjAx Ni0wNy0xNiAxNDozNTo0NS40MzA1MDMwNDAgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvc2g2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjg1MTk5MjUgKzAyMDAKLUBA IC0xMDYwLDcgKzEwNjAsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3No NjQtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAuNTAxMTIxNDA5ICswMTAwCisrKysgZ2RiLTcu MTIuNTAuMjAxNzAyMDcvZ2RiL3NoNjQtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjg1MjQ4 NjYxICswMTAwCitAQCAtMTA2Miw3ICsxMDYyLDcgQEAKICAJCSAgICAgIENPUkVfQUREUiBzdHJ1 Y3RfYWRkcikKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0 ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC05OTIsNyArMTAxNCw3IEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvc2g2NC10ZGVwLmMKICAgIGludCBpbnRfYXJncmVnOwogICAgaW50IGZs b2F0X2FyZ19pbmRleCA9IDA7CiAgICBpbnQgZG91YmxlX2FyZ19pbmRleCA9IDA7Ci1AQCAtMTA2 OSw3ICsxMDY5LDcgQEAKK0BAIC0xMDcxLDcgKzEwNzEsNyBAQAogICAgQ09SRV9BRERSIHJlZ3Zh bDsKICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICBnZGJfYnl0ZSB2YWxidWZbOF07CkBAIC0x MDAxLDExICsxMDIzLDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2g2NC10 ZGVwLmMKICAgIGludCBhcmdyZWdfc2l6ZTsKICAgIGludCBmcF9hcmdzWzEyXTsKICAKLUluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmMtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL3NwYXJjLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL3NwYXJjLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMTUw MzA0OCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYy10ZGVwLmMJMjAx Ni0wNy0xNiAxNDozNTo0Ny41Mjg1MTk5MjUgKzAyMDAKLUBAIC01MjUsNyArNTI1LDcgQEAKKy0t LSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9zcGFyYy10ZGVwLmMJMjAxNy0wMi0yNiAx OToxMTozMC41MDIxMjE0MTYgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvc3Bh cmMtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjg2MjQ4NjY4ICswMTAwCitAQCAtNTY2LDcg KzU2Niw3IEBACiAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewogICAgICAg IHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0xMDE0LDExICsx MDM2LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmMtdGRlcC5jCiAg CiAgICAgICAgaWYgKHNwYXJjX3N0cnVjdHVyZV9vcl91bmlvbl9wICh0eXBlKQogIAkgIHx8IChz cGFyY19mbG9hdGluZ19wICh0eXBlKSAmJiBsZW4gPT0gMTYpCi1JbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3NwYXJjNjQtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3NwYXJjNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzI1MDMwNTYgKzAy MDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNi0wNy0x NiAxNDozNTo0Ny41Mjg1MTk5MjUgKzAyMDAKLUBAIC02MzYsNyArNjM2LDggQEAKKy0tLSBnZGIt Ny4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjEx OjMwLjUwMzEyMTQyMyArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9zcGFyYzY0 LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjQ4LjI4NjI0ODY2OCArMDEwMAorQEAgLTY3MCw3ICs2 NzAsOCBAQAogIAogIHN0YXRpYyB2b2lkCiAgc3BhcmM2NF9zdG9yZV9mbG9hdGluZ19maWVsZHMg KHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMTAyNiw5 ICsxMDQ4LDkgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYzY0LXRkZXAu YwogKwkJCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYnVmLCBpbnQgZWxlbWVudCwKICsJCQkg ICAgICAgTE9OR0VTVCBiaXRwb3MpCiAgeworICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBn ZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOwogICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0 eXBlKTsKLSAKLUBAIC02NzgsNyArNjc5LDcgQEAKK0BAIC03MTQsNyArNzE1LDcgQEAKICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9ORklFTERTICh0eXBlKTsgaSsrKQogIAl7CiAgCSAgc3Ry dWN0IHR5cGUgKnN1YnR5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUs IGkpKTsKQEAgLTEwMzcsMTYgKzEwNTksMTYgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9zcGFyYzY0LXRkZXAuYwogIAogIAkgIHNwYXJjNjRfc3RvcmVfZmxvYXRpbmdfZmllbGRz IChyZWdjYWNoZSwgc3VidHlwZSwgdmFsYnVmLAogIAkJCQkJIGVsZW1lbnQsIHN1YnBvcyk7Ci1A QCAtNzEwLDcgKzcxMSw3IEBACitAQCAtNzQ2LDcgKzc0Nyw3IEBACiAgCiAgc3RhdGljIHZvaWQK ICBzcGFyYzY0X2V4dHJhY3RfZmxvYXRpbmdfZmllbGRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKIC0JCQkJIGdkYl9ieXRlICp2YWxidWYsIGludCBiaXRw b3MpCiArCQkJCSBnZGJfYnl0ZSAqdmFsYnVmLCBMT05HRVNUIGJpdHBvcykKICB7Ci0gICBpZiAo c3BhcmM2NF9mbG9hdGluZ19wICh0eXBlKSkKLSAgICAgewotQEAgLTc0Nyw3ICs3NDgsNyBAQAor ICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUp OworIAorQEAgLTc4Niw3ICs3ODcsNyBAQAogICAgICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05G SUVMRFMgKHR5cGUpOyBpKyspCiAgCXsKICAJICBzdHJ1Y3QgdHlwZSAqc3VidHlwZSA9IGNoZWNr X3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSkpOwpAQCAtMTA1NSw3ICsxMDc3LDcg QEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYzY0LXRkZXAuYwogIAogIAkg IHNwYXJjNjRfZXh0cmFjdF9mbG9hdGluZ19maWVsZHMgKHJlZ2NhY2hlLCBzdWJ0eXBlLCB2YWxi dWYsIHN1YnBvcyk7CiAgCX0KLUBAIC03ODAsNyArNzgxLDcgQEAKK0BAIC04MTksNyArODIwLDcg QEAKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0 IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmdzW2ldKTsKQEAgLTEwNjQsNyArMTA4Niw3IEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmM2NC10ZGVwLmMKICAKICAgICAg ICBpZiAoc3BhcmM2NF9zdHJ1Y3R1cmVfb3JfdW5pb25fcCAodHlwZSkKICAJICB8fCAoc3BhcmM2 NF9jb21wbGV4X2Zsb2F0aW5nX3AgKHR5cGUpICYmIGxlbiA9PSAzMikpCi1AQCAtODgwLDcgKzg4 MSw3IEBACitAQCAtOTE5LDcgKzkyMCw3IEBACiAgICAgIHsKICAgICAgICBjb25zdCBnZGJfYnl0 ZSAqdmFsYnVmID0gdmFsdWVfY29udGVudHMgKGFyZ3NbaV0pOwogICAgICAgIHN0cnVjdCB0eXBl ICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0xMDczLDExICsxMDk1LDExIEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmM2NC10ZGVwLmMKICAgICAgICBpbnQg cmVnbnVtID0gLTE7CiAgICAgICAgZ2RiX2J5dGUgYnVmWzE2XTsKICAKLUluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvc3B1LXRkZXAuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi9zcHUtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvc3B1LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMzUwMzA2NCArMDIwMAotKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcu NTI5NTE5OTMyICswMjAwCi1AQCAtMTQyOSw3ICsxNDI5LDcgQEAKKy0tLSBnZGItNy4xMi41MC4y MDE3MDIwNy5vcmlnL2dkYi9zcHUtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAuNTAzMTIxNDIz ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3NwdS10ZGVwLmMJMjAxNy0wMi0y NiAxOToxMTo0OC4yODcyNDg2NzUgKzAxMDAKK0BAIC0xNDMwLDcgKzE0MzAsNyBAQAogICAgICAg IHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9 IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwogICAgICAgIGNvbnN0IGdkYl9ieXRl ICpjb250ZW50cyA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwpAQCAtMTA4Niw3ICsxMTA4LDcgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUtdGRlcC5jCiAgCiAgICAgICAgLyog SWYgdGhlIGFyZ3VtZW50IGRvZXNuJ3Qgd2hvbGx5IGZpdCBpbnRvIHJlZ2lzdGVycywgaXQgYW5k CiAgCSBhbGwgc3Vic2VxdWVudCBhcmd1bWVudHMgZ28gdG8gdGhlIHN0YWNrLiAgKi8KLUBAIC0x NDYxLDcgKzE0NjEsNyBAQAorQEAgLTE0NjIsNyArMTQ2Miw3IEBACiAgCXsKICAJICBzdHJ1Y3Qg dmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgCSAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTEwOTUsMTEgKzExMTcsMTEgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUtdGRlcC5jCiAgCSAgaW50IHByZWZlcnJlZF9zbG90 OwogIAkgIAogIAkgIGlmIChzcHVfc2NhbGFyX3ZhbHVlX3AgKHR5cGUpKQotSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi90aWM2eC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvdGljNngtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvdGljNngtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDMzNTAzMDY0ICsw MjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ3LjUyOTUxOTkzMiArMDIwMAotQEAgLTg5Miw3ICs4OTIsNyBAQAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMw LjUwNDEyMTQzMCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90aWM2eC10ZGVw LmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODcyNDg2NzUgKzAxMDAKK0BAIC04OTksNyArODk5LDcg QEAKICAgIGludCBhcmdyZWcgPSAwOwogICAgaW50IGFyZ251bTsKICAgIGludCBzdGFja19vZmZz ZXQgPSA0OwpAQCAtMTEwOCw3ICsxMTMwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90aWM2eC10ZGVwLmMKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9u X2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0g Z2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIHN0cnVjdCB0eXBlICpmdW5jX3R5cGUg PSB2YWx1ZV90eXBlIChmdW5jdGlvbik7Ci1AQCAtOTI2LDcgKzkyNiw3IEBACitAQCAtOTMzLDcg KzkzMyw3IEBACiAgICAvKiBOb3cgbWFrZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIHRoZSBhcmdz LiAgKi8KICAgIGZvciAoYXJnbnVtID0gMDsgYXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQogICAg ICB7CkBAIC0xMTE3LDcgKzExMzksNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3RpYzZ4LXRkZXAuYwogICAgICAgIGlmIChhcmdudW0gPj0gMTAgLSBhcmdyZWcpCiAgCXJlZmVy ZW5jZXNfb2Zmc2V0ICs9IGxlbjsKICAgICAgICBzdGFja19vZmZzZXQgKz0gbGVuOwotQEAgLTk0 NSw3ICs5NDUsNyBAQAorQEAgLTk1Miw3ICs5NTIsNyBAQAogICAgICAgIGNvbnN0IGdkYl9ieXRl ICp2YWw7CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAg c3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7 CkBAIC0xMTI2LDcgKzExNDgsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rp YzZ4LXRkZXAuYwogICAgICAgIGVudW0gdHlwZV9jb2RlIHR5cGVjb2RlID0gVFlQRV9DT0RFIChh cmdfdHlwZSk7CiAgCiAgICAgICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFyZyk7Ci1AQCAtMTEw NSw3ICsxMTA1LDggQEAKK0BAIC0xMTEyLDcgKzExMTIsOCBAQAogIAkgICAgfQogIAkgIGVsc2UK ICAJICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCkBAIC0xMTM2LDExICsx MTU4LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGljNngtdGRlcC5jCiAg CiAgCSAgYWRkciA9IHNwICsgc3RhY2tfb2Zmc2V0OwogIAkgIHdyaXRlX21lbW9yeSAoYWRkciwg dmFsLCBsZW4pOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90aWxlZ3gtdGRlcC5j CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3RpbGVneC10ZGVwLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIwMTYt MDctMTYgMTQ6MzU6NDUuNDM0NTAzMDcyICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3RpbGVneC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKLUBA IC0yODgsNyArMjg4LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90aWxl Z3gtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAuNTA0MTIxNDMwICswMTAwCisrKysgZ2RiLTcu MTIuNTAuMjAxNzAyMDcvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODcy NDg2NzUgKzAxMDAKK0BAIC0yODksNyArMjg5LDcgQEAKICAgIENPUkVfQUREUiBzdGFja19kZXN0 ID0gc3A7CiAgICBpbnQgYXJncmVnID0gVElMRUdYX1IwX1JFR05VTTsKICAgIGludCBpLCBqOwpA QCAtMTE0OSwxMCArMTE3MSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rp bGVneC10ZGVwLmMKICAgIHN0YXRpYyBjb25zdCBnZGJfYnl0ZSBmb3VyX3plcm9fd29yZHNbMTZd ID0geyAwIH07CiAgCiAgICAvKiBJZiBzdHJ1Y3RfcmV0dXJuIGlzIDEsIHRoZW4gdGhlIHN0cnVj dCByZXR1cm4gYWRkcmVzcyB3aWxsCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Y4 NTAtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Y4NTAtdGRlcC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdjg1MC10ZGVwLmMJ MjAxNi0wNy0xNiAxNDozNTo0NS40MzQ1MDMwNzIgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdjg1MC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAK Ky0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi92ODUwLXRkZXAuYwkyMDE3LTAyLTI2 IDE5OjExOjMwLjUwNTEyMTQzOCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi92 ODUwLXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjQ4LjI4ODI0ODY4MiArMDEwMAogQEAgLTEwMTks NyArMTAxOSw3IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0 ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgYXJncmVnOwpAQCAtMTE3MSwxMCArMTE5MywxMCBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Y4NTAtdGRlcC5jCiAgICAgICAgZ2Ri X2J5dGUgKnZhbDsKICAgICAgICBnZGJfYnl0ZSB2YWxidWZbdjg1MF9yZWdfc2l6ZV07CiAgCi1J bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZheC10ZGVwLmMKK0luZGV4OiBnZGItNy4x Mi41MC4yMDE3MDIwNy9nZGIvdmF4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzU1MDMw ODAgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmF4LXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ3LjUzMDUxOTk0MSArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9y aWcvZ2RiL3ZheC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC41MDUxMjE0MzggKzAxMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdmF4LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjQ4 LjI4ODI0ODY4MiArMDEwMAogQEAgLTExMSw3ICsxMTEsNyBAQAogICAgc3RydWN0IGdkYmFyY2gg KmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOwogICAgZW51bSBiZmRfZW5k aWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwpAQCAtMTE5Mywx MCArMTIxNSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZheC10ZGVwLmMK ICAKICAgICAgICBzcCAtPSAobGVuICsgMykgJiB+MzsKICAgICAgICBjb3VudCArPSAobGVuICsg MykgLyA0OwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi94c3Rvcm15MTYtdGRlcC5j CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3hzdG9ybXkxNi10ZGVwLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi94c3Rvcm15MTYtdGRlcC5j CTIwMTYtMDctMTYgMTQ6MzU6NDUuNDM1NTAzMDgwICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEg KzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi94c3Rvcm15MTYtdGRlcC5j CTIwMTctMDItMjYgMTk6MTE6MzAuNTA2MTIxNDQ1ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODgyNDg2ODIg KzAxMDAKIEBAIC0yMzMsOCArMjMzLDkgQEAKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVy ID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBzdGFja19kZXN0 ID0gc3A7CkBAIC0xMjA5LDExICsxMjMxLDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIveHN0b3JteTE2LXRkZXAuYwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgIGdkYl9i eXRlIGJ1Zlt4c3Rvcm15MTZfcGNfc2l6ZV07CiAgCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3h0ZW5zYS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIveHRl bnNhLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L3h0ZW5zYS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40Mzc1MDMwOTYgKzAyMDAKLSsrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveHRlbnNhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3 LjUzMTUxOTk0OSArMDIwMAotQEAgLTE2MzgsOCArMTYzOCw3IEBACistLS0gZ2RiLTcuMTIuNTAu MjAxNzAyMDcub3JpZy9nZGIveHRlbnNhLXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjUwNzEy MTQ1MiArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi94dGVuc2EtdGRlcC5jCTIw MTctMDItMjYgMTk6MTE6NDguMjg5MjQ4Njg5ICswMTAwCitAQCAtMTYzOSw4ICsxNjM5LDcgQEAK ICAKICAgICAgICBpZiAobGVuID4gKGNhbGxzaXplID4gOCA/IDggOiAxNikpCiAgCWludGVybmFs X2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCkBAIC0xMjIzLDcgKzEyNDUsNyBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3h0ZW5zYS10ZGVwLmMKICAgICAgICBhcmVnID0gYXJy ZWdfbnVtYmVyIChnZGJhcmNoLAogIAkJCSAgIGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCktPmEwX2Jh c2UgKyAyICsgY2FsbHNpemUsIHdiKTsKICAKLUBAIC0xNzEzLDE4ICsxNzEyLDE4IEBACitAQCAt MTcxNCwxOCArMTcxMywxOCBAQAogIHsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0g Z2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGludCBpOwpAQCAtMTI0NSw3ICsxMjY3 LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi94dGVuc2EtdGRlcC5jCiAgICAg ICAgaW50IHJlZ25vOwkJLyogcmVnbm8gaWYgaW4gcmVnaXN0ZXIuICAqLwogICAgICB9IHU7CiAg ICB9OwotQEAgLTE3NDgsOSArMTc0NywxMCBAQAorQEAgLTE3NDksOSArMTc0OCwxMCBAQAogICAg ICAgICAgewogIAkgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKICAJICBzdHJ1Y3QgdHlw ZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTEyNTks NyArMTI4MSw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveHRlbnNhLXRkZXAu YwogIAkgIHN3aXRjaCAoVFlQRV9DT0RFIChhcmdfdHlwZSkpCiAgCSAgICB7CiAgCSAgICBjYXNl IFRZUEVfQ09ERV9JTlQ6Ci1AQCAtMTgyMCw4ICsxODIwLDggQEAKK0BAIC0xODIxLDggKzE4MjEs OCBAQAogIAkgIGluZm8tPmFsaWduID0gVFlQRV9MRU5HVEggKGJ1aWx0aW5fdHlwZSAoZ2RiYXJj aCktPmJ1aWx0aW5fbG9uZyk7CiAgCSAgYnJlYWs7CiAgCX0KQEAgLTEyNjksNyArMTI5MSw3IEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveHRlbnNhLXRkZXAuYwogIAogICAgICAg IC8qIEFsaWduIHNpemUgYW5kIG9uc3RhY2tfc2l6ZS4gICovCiAgICAgICAgc2l6ZSA9IChzaXpl ICsgaW5mby0+YWxpZ24gLSAxKSAmIH4oaW5mby0+YWxpZ24gLSAxKTsKLUBAIC0xODY2LDcgKzE4 NjYsNyBAQAorQEAgLTE4NjcsNyArMTg2Nyw3IEBACiAgCiAgICAgICAgaWYgKGluZm8tPm9uc3Rh Y2spCiAgCXsKQEAgLTEyNzgsNyArMTMwMCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIveHRlbnNhLXRkZXAuYwogIAkgIENPUkVfQUREUiBvZmZzZXQgPSBzcCArIGluZm8tPnUu b2Zmc2V0OwogIAogIAkgIC8qIE9kZC1zaXplZCBzdHJ1Y3RzIGFyZSBhbGlnbmVkIHRvIHRoZSBs b3dlciBzaWRlIG9mIGEgbWVtb3J5Ci1AQCAtMTg4Miw3ICsxODgyLDcgQEAKK0BAIC0xODgzLDcg KzE4ODMsNyBAQAogIAl9CiAgICAgICAgZWxzZQogIAl7CgpkaWZmIC0tZ2l0IGEvZ2RiLXRlc3Rz dWl0ZS1jYXN0cy5wYXRjaCBiL2dkYi10ZXN0c3VpdGUtY2FzdHMucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDFlZDdlY2IuLjAwMDAwMDAKLS0tIGEvZ2RiLXRlc3RzdWl0ZS1j YXN0cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3 YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA5L21zZzAwMDgyLmh0bWwKLVN1YmplY3Q6IFt0 ZXN0c3VpdGUgcGF0Y2hdIEZpeCBmYWxzZSBGQUlMIGluIGdkYi5jcC9jYXN0cy5leHAKLQotCi0t LWlrZVZFVzl5dVljLy9BK3EKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1h c2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCi0KLUhpLAotCi1nY2MtNi4yLjEtMS5m YzI2Lng4Nl82NAotCi1nZGIgY29tcGlsZSBmYWlsZWQsIC9ob21lL2prcmF0b2NoL3JlZGhhdC9n ZGItY2xlYW4vZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY2FzdHMuY2M6NDA6MTA6IGVycm9yOiBleHBl Y3RlZCBwcmltYXJ5LWV4cHJlc3Npb24gYmVmb3JlICdpbnQnCi0gZGVjbHR5cGUoaW50IHgpCi0g ICAgICAgICAgXn5+Ci0vaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3Vp dGUvZ2RiLmNwL2Nhc3RzLmNjOjQwOjEwOiBlcnJvcjogZXhwZWN0ZWQgJyknIGJlZm9yZSAnaW50 JwotL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi1jbGVhbi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9j YXN0cy5jYzo0MDoxOiBlcnJvcjogZXhwZWN0ZWQgdW5xdWFsaWZpZWQtaWQgYmVmb3JlICdkZWNs dHlwZScKLSBkZWNsdHlwZShpbnQgeCkKLSBefn5+fn5+fgotL2hvbWUvamtyYXRvY2gvcmVkaGF0 L2dkYi1jbGVhbi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jYXN0cy5jYzogSW4gZnVuY3Rpb24gJ2lu dCBtYWluKGludCwgY2hhcioqKSc6Ci0vaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL2Nhc3RzLmNjOjU5OjE0OiBlcnJvcjogZXhwZWN0ZWQgcHJpbWFy eS1leHByZXNzaW9uIGJlZm9yZSAnZGVjbHR5cGUnCi0gICBkb3VibGUgeSA9IGRlY2x0eXBlKDIp OwotICAgICAgICAgICAgICBefn5+fn5+fgotCi0nZGVjbHR5cGUnIGlzIGEgcmVnaXN0ZXJlZCBr ZXl3b3JkIHNpbmNlIEMrKzExIHdoaWNoIGlzIG5vdyBhIGRlZmF1bHQgZm9yIEdDQy4KLQotT0sg Zm9yIGNoZWNrLWluPwotCi0KLUphbgotCi0tLWlrZVZFVzl5dVljLy9BK3EKLUNvbnRlbnQtVHlw ZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5s aW5lOyBmaWxlbmFtZT0xCi0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0yMDE2LTA5LTExICBK YW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIGdkYi5jcC9j YXN0cy5jYzogUmVuYW1lIGRlY2x0eXBlIHRvIGludF90b19kb3VibGUuCi0JKiBnZGIuY3AvY2Fz dHMuZXhwICh3aGF0aXMgZGVjbHR5cGUoNSkpOiBSZW5hbWUgdG8gLi4uCi0JKHdoYXRpcyBpbnRf dG9fZG91YmxlKDUpKTogLi4uIGhlcmUuCi0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5jcC9jYXN0cy5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2Nhc3RzLmNjCi1pbmRleCA0M2Yx MTJmLi40ZjY4YmEwIDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY2FzdHMuY2MK LSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2Nhc3RzLmNjCi1AQCAtMzcsNyArMzcsNyBAQCBz dHJ1Y3QgRG91Ymx5RGVyaXZlZCA6IHB1YmxpYyBWaXJ0dWFsbHlEZXJpdmVkLAotIC8vIENvbmZ1 c2UgYSBzaW1wbGVyIGFwcHJvYWNoLgotIAotIGRvdWJsZQotLWRlY2x0eXBlKGludCB4KQotK2lu dF90b19kb3VibGUoaW50IHgpCi0gewotICAgcmV0dXJuIHggKyAyLjA7Ci0gfQotQEAgLTU2LDcg KzU2LDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotICAgQWxwaGEgKmFkID0gJmRl cml2ZWQ7Ci0gICBBbHBoYSAqYWRkID0gJmRvdWJseWRlcml2ZWQ7Ci0gCi0tICBkb3VibGUgeSA9 IGRlY2x0eXBlKDIpOwotKyAgZG91YmxlIHkgPSBpbnRfdG9fZG91YmxlKDIpOwotIAotICAgcmV0 dXJuIDA7ICAvKiBicmVha3BvaW50IHNwb3Q6IGNhc3RzLmV4cDogMSAqLwotIH0KLWRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jYXN0cy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5j cC9jYXN0cy5leHAKLWluZGV4IDM0YTI0OTIuLjU3OTgwOTggMTAwNjQ0Ci0tLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5jcC9jYXN0cy5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2Nhc3Rz LmV4cAotQEAgLTExMiw3ICsxMTIsNyBAQCBnZGJfdGVzdCAicHJpbnQgcmVpbnRlcnByZXRfY2Fz dDxBICY+ICgqYikiICIgPSBcXChBIFxcJlxcKSBAJGhleDoge2EgPSA0Mn0iIFwKLSAKLSAjIFRl c3QgdGhhdCBrZXl3b3JkIHNoYWRvd2luZyB3b3Jrcy4KLSAKLS1nZGJfdGVzdCAid2hhdGlzIGRl Y2x0eXBlKDUpIiAiID0gZG91YmxlIgotK2dkYl90ZXN0ICJ3aGF0aXMgaW50X3RvX2RvdWJsZSg1 KSIgIiA9IGRvdWJsZSIKLSAKLSAjIEJhc2ljIHRlc3RzIHVzaW5nIHR5cGVvZi4KLSAKLQotLS1p a2VWRVc5eXVZYy8vQStxLS0KLQoKZGlmZiAtLWdpdCBhL2dkYi10ZXN0c3VpdGUtbS1zdGF0aWMu cGF0Y2ggYi9nZGItdGVzdHN1aXRlLW0tc3RhdGljLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA0OWFkOTNiLi4wMDAwMDAwCi0tLSBhL2dkYi10ZXN0c3VpdGUtbS1zdGF0aWMu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5v cmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wOS9tc2cwMDA4My5odG1sCi1TdWJqZWN0OiBbdGVzdHN1 aXRlIHBhdGNoXSBGaXggQysrMTEgY29tcGlsYXRpb24gZmFpbHVyZSBmb3IgZ2RiLmNwL20tc3Rh dGljLmV4cAotCi0KLS0teTB1bFVtTkMrb3NQUFFPNgotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PWlzby0yMDIyLWpwCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotSGks Ci0KLWdjYy02LjIuMS0xLmZjMjYueDg2XzY0Ci0KLWcrKyAtc3RkPWMrKzAzOgotbm8gd2Fybmlu Z3MKLQotZysrOgotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL2prcmF0b2NoL3JlZGhhdC9n ZGItY2xlYW4vZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMuY2M6Nzk6MDoKLS9ob21lL2pr cmF0b2NoL3JlZGhhdC9nZGItY2xlYW4vZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMuaDo5 OjM0OiBlcnJvcjogGyRCIUYbKEJjb25zdGV4cHIbJEIhRxsoQiBuZWVkZWQgZm9yIGluLWNsYXNz IGluaXRpYWxpemF0aW9uIG9mIHN0YXRpYyBkYXRhIG1lbWJlciAbJEIhRhsoQmNvbnN0IGZsb2F0 IGdudV9vYmpfNDo6c29tZXdoZXJlGyRCIUcbKEIgb2Ygbm9uLWludGVncmFsIHR5cGUgWy1mcGVy bWlzc2l2ZV0KLSAgIHN0YXRpYyBjb25zdCBmbG9hdCBzb21ld2hlcmUgPSAzLjE0MTU5OwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KLQotY2xhbmcrKzoKLUluIGZp bGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL20tc3RhdGljLmNjOjc5OgotL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi1j bGVhbi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9tLXN0YXRpYy5oOjk6MjI6IHdhcm5pbmc6IGluLWNs YXNzIGluaXRpYWxpemVyIGZvciBzdGF0aWMgZGF0YSBtZW1iZXIgb2YgdHlwZSAnY29uc3QgZmxv YXQnIGlzIGEgR05VIGV4dGVuc2lvbiBbLVdnbnUtc3RhdGljLWZsb2F0LWluaXRdCi0gIHN0YXRp YyBjb25zdCBmbG9hdCBzb21ld2hlcmUgPSAzLjE0MTU5OwotICAgICAgICAgICAgICAgICAgICAg XiAgICAgICAgICAgfn5+fn5+fgotMSB3YXJuaW5nIGdlbmVyYXRlZC4KLQotY2xhbmcrKyAtc3Rk PWMrKzExOgotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL2prcmF0b2NoL3JlZGhhdC9nZGIt Y2xlYW4vZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMuY2M6Nzk6Ci0vaG9tZS9qa3JhdG9j aC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL20tc3RhdGljLmg6OToyMjog ZXJyb3I6IGluLWNsYXNzIGluaXRpYWxpemVyIGZvciBzdGF0aWMgZGF0YSBtZW1iZXIgb2YgdHlw ZSAnY29uc3QgZmxvYXQnIHJlcXVpcmVzICdjb25zdGV4cHInIHNwZWNpZmllciBbLVdzdGF0aWMt ZmxvYXQtaW5pdF0KLSAgc3RhdGljIGNvbnN0IGZsb2F0IHNvbWV3aGVyZSA9IDMuMTQxNTk7Ci0g ICAgICAgICAgICAgICAgICAgICBeICAgICAgICAgICB+fn5+fn5+Ci0vaG9tZS9qa3JhdG9jaC9y ZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL20tc3RhdGljLmg6OTozOiBub3Rl OiBhZGQgJ2NvbnN0ZXhwcicKLSAgc3RhdGljIGNvbnN0IGZsb2F0IHNvbWV3aGVyZSA9IDMuMTQx NTk7Ci0gIF4KLSAgY29uc3RleHByCi0xIGVycm9yIGdlbmVyYXRlZC4KLQotT0sgZm9yIGNoZWNr LWluPwotCi1BZnRlciB0aGUgZml4IG91dCBvZiB0aGUgNCBjb21iaW5hdGlvbnMgYWJvdmUgb25s eSB0aGlzIG9uZSByZW1haW5zIG5vbi1lbXB0eToKLQotY2xhbmcrKzoKLUluIGZpbGUgaW5jbHVk ZWQgZnJvbSAvaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUvZ2Ri LmNwL20tc3RhdGljLmNjOjc5OgotL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi1jbGVhbi9nZGIv dGVzdHN1aXRlL2dkYi5jcC9tLXN0YXRpYy5oOjk6MjI6IHdhcm5pbmc6IGluLWNsYXNzIGluaXRp YWxpemVyIGZvciBzdGF0aWMgZGF0YSBtZW1iZXIgb2YgdHlwZSAnY29uc3QgZmxvYXQnIGlzIGEg R05VIGV4dGVuc2lvbiBbLVdnbnUtc3RhdGljLWZsb2F0LWluaXRdCi0gIHN0YXRpYyBjb25zdCBm bG9hdCBzb21ld2hlcmUgPSAzLjE0MTU5OwotICAgICAgICAgICAgICAgICAgICAgXiAgICAgICAg ICAgfn5+fn5+fgotMSB3YXJuaW5nIGdlbmVyYXRlZC4KLQotCi1KYW4KLQotLS15MHVsVW1OQytv c1BQUU82Ci1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRl bnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9MQotCi1nZGIvdGVzdHN1aXRlL0NoYW5n ZUxvZwotMjAxNi0wOS0xMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQu Y29tPgotCi0JKiBnZGIuY3AvbS1zdGF0aWMuaCAoZ251X29ial80Ojpzb21ld2hlcmUpOiBVc2Ug Y29uc3RleHByIGZvciBDKysxMS4KLQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNw L20tc3RhdGljLmggYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9tLXN0YXRpYy5oCi1pbmRleCBiY2Vk ZmZmLi4yOTkyNDYzIDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMu aAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMuaAotQEAgLTYsNiArNiw5IEBA IGNsYXNzIGdudV9vYmpfNAotICAgc3RhdGljIGNvbnN0IGludCBlbHNld2hlcmU7Ci0gICBzdGF0 aWMgY29uc3QgaW50IG5vd2hlcmU7Ci0gICBzdGF0aWMgY29uc3QgaW50IGV2ZXJ5d2hlcmUgPSAz MTc7Ci0rI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKLSsgIGNvbnN0ZXhwcgotKyNlbmRpZgot ICAgc3RhdGljIGNvbnN0IGZsb2F0IHNvbWV3aGVyZSA9IDMuMTQxNTk7Ci0gCi0gICAvLyB0cnkg dG8gZW5zdXJlIHRlc3Q0IGlzIGFjdHVhbGx5IGFsbG9jYXRlZAotCi0tLXkwdWxVbU5DK29zUFBR TzYtLQotCgpkaWZmIC0tZ2l0IGEvZ2RiLXRlc3RzdWl0ZS1tb3Jlc3RhY2stZ29sZC5wYXRjaCBi L2dkYi10ZXN0c3VpdGUtbW9yZXN0YWNrLWdvbGQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGE1NmUxMDAuLjAwMDAwMDAKLS0tIGEvZ2RiLXRlc3RzdWl0ZS1tb3Jlc3RhY2st Z29sZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3 YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTEwL21zZzAwNjUyLmh0bWwKLVN1YmplY3Q6IFt0 ZXN0c3VpdGUgcGF0Y2hdIEZpeCBmYWxzZSBGQUlMIGZvciBnZGIuYmFzZS9tb3Jlc3RhY2suZXhw Ci0KLQotLS1IbEwrNW42cno1cElVeGJECi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9dXMtYXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQotCi1IaSwKLQotc2luY2UK LQlbY29tbWl0XSBbdGVzdHN1aXRlIHBhdGNoXSBGaXggZ2NjX2NvbXBpbGVkIGZvciBnY2MgNiAm IDcKLQlodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMTAvbXNnMDA2 MjAuaHRtbAotCi10aGVyZSBoYXMgc3RhcnRlZCBydW5uaW5nIGFnYWluCi0JIFJ1bm5pbmcgZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9tb3Jlc3RhY2suZXhwIC4uLgotCStGQUlMOiBnZGIuYmFzZS9t b3Jlc3RhY2suZXhwOiBjb250aW51ZQotCStQQVNTOiBnZGIuYmFzZS9tb3Jlc3RhY2suZXhwOiB1 cCAzMDAwCi0KLWJ1dCBhcyB5b3UgY2FuIHNlZSBpdCBGQUlMcyBub3cgLSBvbiBGZWRvcmEgMjQg eDg2XzY0IChhbHRob3VnaCBmb3IgZXhhbXBsZSBpdAotc3RpbGwgUEFTU2VzIG9uIENlbnRPUy03 LjIgeDg2XzY0KS4KLQotUHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHU0VHViwgU2VnbWVudGF0 aW9uIGZhdWx0LgotMHgwMDAwN2ZmZmY3ODdjN2JiIGluIG1hbGxvY19jb25zb2xpZGF0ZSAoYXY9 YXZAZW50cnk9MHg3ZmZmZjdiYmNiMDAgPG1haW5fYXJlbmE+KSBhdCBtYWxsb2MuYzo0MTgxCi00 MTgxCQkgICAgICB1bmxpbmsoYXYsIG5leHRjaHVuaywgYmNrLCBmd2QpOwotKGdkYikgYnQKLSMw ICAweDAwMDA3ZmZmZjc4N2M3YmIgaW4gbWFsbG9jX2NvbnNvbGlkYXRlIChhdj1hdkBlbnRyeT0w eDdmZmZmN2JiY2IwMCA8bWFpbl9hcmVuYT4pIGF0IG1hbGxvYy5jOjQxODEKLSMxICAweDAwMDA3 ZmZmZjc4N2YyMzUgaW4gX2ludF9tYWxsb2MgKGF2PWF2QGVudHJ5PTB4N2ZmZmY3YmJjYjAwIDxt YWluX2FyZW5hPiwgYnl0ZXM9Ynl0ZXNAZW50cnk9MTAyNCkgYXQgbWFsbG9jLmM6MzQ0OAotWy4u Ll0KLSM4ICAweDAwMDA3ZmZmZjc4NGM1YWMgaW4gX0lPX3ZmcHJpbnRmX2ludGVybmFsIChzPTB4 N2ZmZmY3YmJkNjAwIDxfSU9fMl8xX3N0ZG91dF8+LCBmb3JtYXQ9PG9wdGltaXplZCBvdXQ+LCBh cD1hcEBlbnRyeT0weDdmZmZmNzdmZDdmOCkgYXQgdmZwcmludGYuYzoxNjMxCi0jOSAgMHgwMDAw N2ZmZmY3ODUzOTM5IGluIF9fcHJpbnRmIChmb3JtYXQ9PG9wdGltaXplZCBvdXQ+KSBhdCBwcmlu dGYuYzozMwotIzEwIDB4MDAwMDAwMDAwMDQwMGQ2YiBpbiBkb3duICgpCi0jMTEgMHgwMDAwMDAw MDAwNDAwZjJjIGluIF9fbW9yZXN0YWNrICgpCi0jMTIgMHgwMDAwMDAwMDAwNDAwZGRhIGluIGRv d24gKCkKLVsuLi5dCi0KLVRoaXMgYXBwYXJlbnRseSBpcyBkdWUgdG8gLSBtYW4gZ2NjIC0gLWZz cGxpdC1zdGFjazoKLQlXaGVuIGNvZGUgY29tcGlsZWQgd2l0aCAtZnNwbGl0LXN0YWNrIGNhbGxz IGNvZGUgY29tcGlsZWQgd2l0aG91dAotCS1mc3BsaXQtc3RhY2ssIHRoZXJlIG1heSBub3QgYmUg bXVjaCBzdGFjayBzcGFjZSBhdmFpbGFibGUgZm9yIHRoZQotCWxhdHRlciBjb2RlIHRvIHJ1bi4g IElmIGNvbXBpbGluZyBhbGwgY29kZSwgaW5jbHVkaW5nIGxpYnJhcnkgY29kZSwKLQl3aXRoIC1m c3BsaXQtc3RhY2sgaXMgbm90IGFuIG9wdGlvbiwgdGhlbiB0aGUgbGlua2VyIGNhbiBmaXggdXAg dGhlc2UKLQljYWxscyBzbyB0aGF0IHRoZSBjb2RlIGNvbXBpbGVkIHdpdGhvdXQgLWZzcGxpdC1z dGFjayBhbHdheXMgaGFzCi0JYSBsYXJnZSBzdGFjay4gIFN1cHBvcnQgZm9yIHRoaXMgaXMgaW1w bGVtZW50ZWQgaW4gdGhlIGdvbGQgbGlua2VyIGluCi0JR05VIGJpbnV0aWxzIHJlbGVhc2UgMi4y MSBhbmQgbGF0ZXIuCi0KLVBlcnNvbmFsbHkgSSBkbyBub3QgdW5kZXJzdGFuZCB3aHkgZ29sZCBp cyBub3QgdGhlIGRlZmF1bHQgbGlua2VyIGFzIEdOVSBsZCBpcwotdW51c2FibHkgc2xvdyAoNngp IGZvciBDKysgYnV0IHRoYXQgaXMgb2ZmLXRvcGljIGhlcmUuCi0KLU9LIGZvciBjaGVjay1pbj8K LQotCi1UaGFua3MsCi1KYW4KLQotLS1IbEwrNW42cno1cElVeGJECi1Db250ZW50LVR5cGU6IHRl eHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsg ZmlsZW5hbWU9MQotCi1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotMjAxNi0xMC0yMiAgSmFuIEty YXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIuYmFzZS9tb3Jl c3RhY2suZXhwOiBUcnkgdG8gYnVpbGQgaXQgdXNpbmcgLWZ1c2UtbGQ9Z29sZCBmaXJzdC4KLQot ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbW9yZXN0YWNrLmV4cCBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvbW9yZXN0YWNrLmV4cAotaW5kZXggMTJmNWQyOC4uY2FhODViOCAx MDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbW9yZXN0YWNrLmV4cAotKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9tb3Jlc3RhY2suZXhwCi1AQCAtMjMsNyArMjMsMTEgQEAg aWYgeyRnY2NfY29tcGlsZWQgPT0gMH0gewotIAotIHN0YW5kYXJkX3Rlc3RmaWxlCi0gCi0taWYg eyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHNyY2Zp bGUge2FkZGl0aW9uYWxfZmxhZ3M9LWZzcGxpdC1zdGFja31dIH0gewotKyMgLWZ1c2UtbGQ9Z29s ZCBpcyB1c2VkIGZvciBjYWxsaW5nIHByaW50ZiBjb2RlIGJ1aWx0IHdpdGhvdXQgLWZzcGxpdC1z dGFjawotKyMgd2hpY2ggY291bGQgY3Jhc2ggb3RoZXJpc2UuICBTZWUgR0NDIGRvY3VtZW50YXRp b24gb2YgLWZzcGxpdC1zdGFjay4KLStzZXQgb3B0cyAiYWRkaXRpb25hbF9mbGFncz0tZnNwbGl0 LXN0YWNrIgotK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVz dGZpbGV9ICRzcmNmaWxlIFtsaXN0ICRvcHRzIGFkZGl0aW9uYWxfZmxhZ3M9LWZ1c2UtbGQ9Z29s ZF1dIFwKLSsgICAgICYmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rl c3RmaWxlfSAkc3JjZmlsZSAkb3B0c10gfSB7Ci0gICAgIHJldHVybiAtMQotIH0KLSAKLQotLS1I bEwrNW42cno1cElVeGJELS0KLQoKZGlmZiAtLWdpdCBhL2dkYi11cHN0cmVhbS5wYXRjaCBiL2dk Yi11cHN0cmVhbS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzczYjdhOC4u MDAwMDAwMAotLS0gYS9nZGItdXBzdHJlYW0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NTkg KzAsMCBAQAotY29tbWl0IDJjMjlkZjI1YjdjMmZmMDA2YjQ1YWZkODBlZTZkZDczNGViYmQ0N2MK LUF1dGhvcjogU2VyZ2lvIER1cmlnYW4gSnVuaW9yIDxzZXJnaW9kakByZWRoYXQuY29tPgotRGF0 ZTogICBTdW4gU2VwIDExIDE2OjUzOjA5IDIwMTYgLTA0MDAKLQotICAgIEZpeCBmYWxzZSBGQUlM IG9uIGdkYi5iYXNlL3N0YXAtcHJvYmUuZXhwLCBkdWUgdG8gSUNGIG9wdGltaXphdGlvbgotICAg IAotICAgIEdDQyA2J3MgSUNGIG9wdGltaXphdGlvbiBwYXNzIGlzIG1ha2luZyB0aGUgZGVjbGFy YXRpb24gb2YgJ20xJyBhbmQKLSAgICAnbTInLCBvbiBnZGIuYmFzZS9zdGFwLXByb2JlLmMsIHRv IGJlIHVuaWZpZWQuICBIb3dldmVyLCB0aGlzIGxlYWRzIHRvCi0gICAgb25seSBvbmUgaW5zdGFu Y2Ugb2YgdGhlIHByb2JlICd0d28nIGJlaW5nIGNyZWF0ZWQsIHdoaWNoIGNhdXNlcyBhCi0gICAg ZmFpbHVyZSBvbiB0aGUgdGVzdHN1aXRlICh3aGljaCBleHBlY3RzIGEgbXVsdGktbG9jYXRpb24g YnJlYWtwb2ludCB0bwotICAgIGJlIGluc2VydGVkIG9uIHRoZSBwcm9iZSkuCi0gICAgCi0gICAg VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGZhaWx1cmUgYnkgZGVjbGFyaW5nIGEgZHVtbXkgdmFyaWFi bGUgb24gJ20xJywKLSAgICBhbmQgdXNpbmcgaXQgYXMgYW4gYXJndW1lbnQgdG8gbTEncyB2ZXJz aW9uIG9mIHByb2JlICd0d28nLiAgU2luY2Ugd2UKLSAgICBkbyBub3QgY2FyZSBhYm91dCB0aGUg Y29udGVudHMgb2YgdGhlIGZ1bmN0aW9ucyBub3IgYWJvdXQgdGhlCi0gICAgYXJndW1lbnRzIG9m IGVhY2ggcHJvYmUgJ3R3bycsIHRoaXMgaXMgT0suCi0gICAgCi0gICAgZ2RiL3Rlc3RzdWl0ZS9D aGFuZ2VMb2c6Ci0gICAgMjAxNi0wOS0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lv ZGpAcmVkaGF0LmNvbT4KLSAgICAJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KLSAgICAKLSAgICAJKiBnZGIuYmFzZS9zdGFwLXByb2JlLmMgKG0xKTogTmV3 IHZhcmlhYmxlICdkdW1teScsIG5lY2Vzc2FyeSB0bwotICAgIAltYWtlIG0xJ3MgZGVmaW5pdGlv biB0byBiZSBkaWZmZXJlbnQgZnJvbSBtMidzLiAgVXNlICdkdW1teScgYXMgYW4KLSAgICAJYXJn dW1lbnQgZm9yIHByb2JlICd0d28nLgotCi0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwot IyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsMTAgQEAKLSsyMDE2LTA5 LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgotKwkgICAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotKwotKwkqIGdkYi5i YXNlL3N0YXAtcHJvYmUuYyAobTEpOiBOZXcgdmFyaWFibGUgJ2R1bW15JywgbmVjZXNzYXJ5IHRv Ci0rCW1ha2UgbTEncyBkZWZpbml0aW9uIHRvIGJlIGRpZmZlcmVudCBmcm9tIG0yJ3MuICBVc2Ug J2R1bW15JyBhcyBhbgotKwlhcmd1bWVudCBmb3IgcHJvYmUgJ3R3bycuCi0rCi0gMjAxNi0wOS0x MCAgSm9uIEJlbmlzdG9uICA8am9uQGJlbmlzdG9uLmNvbT4KLSAKLSAJKiBsaWIvbWktc3VwcG9y dC5leHAgKG1pX2dkYl90YXJnZXRfbG9hZCk6IFVzZSB0YXJnZXRfc2ltX29wdGlvbnMKLS0tLSBh L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc3RhcC1wcm9iZS5jCi0rKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL3N0YXAtcHJvYmUuYwotQEAgLTUzLDggKzUzLDEzIEBAIHN0cnVjdCBmdW5jcwot IHN0YXRpYyB2b2lkCi0gbTEgKHZvaWQpCi0gewotKyAgLyogbTEgYW5kIG0yIGFyZSBlcXVpdmFs ZW50LCBidXQgYmVjYXVzZSBvZiBzb21lIGNvbXBpbGVyCi0rICAgICBvcHRpbWl6YXRpb25zIHdl IGhhdmUgdG8gbWFrZSBlYWNoIG9mIHRoZW0gdW5pcXVlLiAgVGhpcyBpcyB3aHkKLSsgICAgIHdl IGhhdmUgdGhpcyBkdW1teSB2YXJpYWJsZSBoZXJlLiAgKi8KLSsgIHZvbGF0aWxlIGludCBkdW1t eSA9IDA7Ci0rCi0gICBpZiAoVEVTVDIpCi0tICAgIFNUQVBfUFJPQkUgKHRlc3QsIHR3byk7Ci0r ICAgIFNUQVBfUFJPQkUxICh0ZXN0LCB0d28sIGR1bW15KTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQK LQotCi1jb21taXQgZjM4OWY2ZmVmNzZkN2NmOGU4YmViNzA2MWVkZmYyMTU1YzI4NDg5OAotQXV0 aG9yOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLURhdGU6ICAg V2VkIE9jdCA1IDIxOjU2OjQ2IDIwMTYgKzAyMDAKLQotICAgIHRlc3RzdWl0ZTogRml4IHJlY2Vu dCBHQ0MgRkFJTDogZ2RiLmFyY2gvaTM4Ni1zaWduYWwuZXhwCi0gICAgCi0gICAgZ2NjLTYuMi4x LTIuZmMyNC54ODZfNjQKLSAgICAKLSAgICAoZ2RiKSBiYWNrdHJhY2UgMTBeTQotICAgIChnZGIp IEZBSUw6IGdkYi5hcmNoL2kzODYtc2lnbmFsLmV4cDogYmFja3RyYWNlIDEwCi0gICAgCi0gICAg KGdkYikgZGlzYXMvcwotICAgIER1bXAgb2YgYXNzZW1ibGVyIGNvZGUgZm9yIGZ1bmN0aW9uIG1h aW46Ci0gICAgLi4uL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4Ni1zaWduYWwuYzoKLSAgICAz MCAgICAgIHsKLSAgICAgICAweDAwMDAwMDAwMDA0MDA1N2YgPCswPjogICAgIHB1c2ggICAlcmJw Ci0gICAgICAgMHgwMDAwMDAwMDAwNDAwNTgwIDwrMT46ICAgICBtb3YgICAgJXJzcCwlcmJwCi0g ICAgMzEgICAgICAgIHNldHVwICgpOwotICAgICAgIDB4MDAwMDAwMDAwMDQwMDU4MyA8KzQ+OiAg ICAgY2FsbHEgIDB4NDAwNTkwIDxzZXR1cD4KLSAgICA9PiAweDAwMDAwMDAwMDA0MDA1ODggPCs5 PjogICAgIG1vdiAgICAkMHgwLCVlYXgKLSAgICAzMiAgICAgIH0KLSAgICAgICAweDAwMDAwMDAw MDA0MDA1OGQgPCsxND46ICAgIHBvcCAgICAlcmJwCi0gICAgICAgMHgwMDAwMDAwMDAwNDAwNThl IDwrMTU+OiAgICByZXRxCi0gICAgRW5kIG9mIGFzc2VtYmxlciBkdW1wLgotICAgIAotICAgIFRo ZSAuZXhwIHBhdGNoIGlzIGFuIG9idmlvdXMgdHlwbyBmaXggSSB0aGluay4gIFRoZSByZWdleCB3 YXMgd3JpdHRlbiB0bwotICAgIGFjY2VwdCAiQUREUiBpbiBtYWluIiBhbmQgSSBmaW5kIGl0IE9L IGFzIGNoZWNraW5nIC5kZWJ1Z19saW5lIHZhbGlkaXR5IGlzIG5vdAotICAgIHRoZSBwdXJwb3Nl IG9mIHRoaXMgdGVzdGZpbGUuCi0gICAgCi0gICAgZ2NjLTQuOC41LTExLmVsNy54ODZfNjQgZGlk IG5vdCBwdXQgdGhlICdtb3YgJDB4MCwlZWF4JyBpbnN0cnVjdGlvbiB0aGVyZSBhdAotICAgIGFs bCBzbyB0aGVyZSB3YXMgbm8gcHJvYmxlbSB3aXRoIC5kZWJ1Z19saW5lLgotICAgIAotICAgIGdk Yi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0gICAgMjAxNi0xMC0wNSAgSmFuIEtyYXRvY2h2aWwgIDxq YW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotICAgIAotICAgIAkqIGdkYi5hcmNoL2kzODYtc2ln bmFsLmV4cCAoYmFja3RyYWNlIDEwKTogRml4ICMyIHR5cG8uCi0KLSMjIyBhL2dkYi90ZXN0c3Vp dGUvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMgLTEsMyArMSw3 IEBACi0rMjAxNi0xMC0wNSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQu Y29tPgotKwotKwkqIGdkYi5hcmNoL2kzODYtc2lnbmFsLmV4cCAoYmFja3RyYWNlIDEwKTogRml4 ICMyIHR5cG8uCi0rCi0gMjAxNi0xMC0wNSAgWWFvIFFpICA8eWFvLnFpQGxpbmFyby5vcmc+Ci0g Ci0gCSogbGliL2dkYi5leHAgKHN1cHBvcnRfY29tcGxleF90ZXN0cyk6IFJldHVybiB6ZXJvIGlm Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtc2lnbmFsLmV4cAotKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LXNpZ25hbC5leHAKLUBAIC0zNSw2ICszNSw2IEBAIGdk Yl9sb2FkICR7YmluZmlsZX0KLSAKLSBydW50byBmdW5jCi0gZ2RiX3Rlc3QgImJhY2t0cmFjZSAx MCIgXAotLSAgICAiIzAgICgkaGV4IGluICk/ZnVuYy4qXHJcbiMxICA8c2lnbmFsIGhhbmRsZXIg Y2FsbGVkPlxyXG4jMiAgKCRoZXggaW4pP21haW4uKiIKLSsgICAgIiMwICAoJGhleCBpbiApP2Z1 bmMuKlxyXG4jMSAgPHNpZ25hbCBoYW5kbGVyIGNhbGxlZD5cclxuIzIgICgkaGV4IGluICk/bWFp bi4qIgotIAotIGdkYl90ZXN0ICJmaW5pc2giICJSdW4gdGlsbCBleGl0IGZyb20gXCMwICBmdW5j Lio8c2lnbmFsIGhhbmRsZXIgY2FsbGVkPiIKLQotCi1jb21taXQgMjBjMmMwMjRjMWU4OWU0MDJh NTdlOGMzNTc3ZmI5Nzc3NzA5ZDlhNAotQXV0aG9yOiBDYXJsIEUuIExvdmUgPGNhcmxsQG9jNDcz ODA3MDI0MC5pYm0uY29tPgotRGF0ZTogICBGcmkgQXVnIDE5IDExOjA2OjM4IDIwMTYgLTA3MDAK LQotICAgIEZpeCBtaXNzaW5nIGZpbGVzIGZvciBsZCB3aGVuIHRlc3Qgc3VpdGUgbm90IGNvbXBp bGVkIGluIHRoZSBzb3VyY2UgZGlyZWN0b3J5Ci0gICAgCi0gICAgVGhpcyBwYXRjaCBmaXhlcyBh biBpc3N1ZXMgd2l0aCBzaXggdGVzdCBzdWl0ZSBleHBlY3QgZmlsZXMgdGhhdCBkbyBub3QKLSAg ICBydW4gY29ycmVjdGx5IHdoZW4gdGhlIHRlc3Qgc3VpdGUgaXMgbm90IGJ1aWx0IGluIHRoZSBz b3VyY2UgZGlyZWN0b3J5LiAgVGhlCi0gICAgaXNzdWUgaXMgdGhlc2UgdGVzdHMgYXJlIG5vdCB1 c2luZyB0aGUgY3VycmVudCAic3RhbmRhcmRfdGVzdGZpbGUiIGNhbGwKLSAgICBidXQgcmF0aGVy IHVzaW5nIHRoZSBvbGRlciBzZXQgY29tbWFuZCB0byBpbml0aWFsaXplIHRoZSAidGVzdGZpbGUi LAotICAgICJzcmNmaWxlIiBhbmQgImJpbnByZWZpeCIgdmFyaWFibGVzIG9yIGFyZSBtaXNzaW5n IHRoZSBzZXQgZm9yIHRoZQotICAgICJiaW5wcmVmaXgiIHZhcmlhYmxlLgotICAgIAotICAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgCi0gICAg Z2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSAgICAKLSAgICAyMDE2LTA4LTE5ICBDYXJsIExvdmUg IDxjZWxAdXMuaWJtLmNvbT4KLSAgICAKLSAgICAJKiBnZGIuYXJjaC9hbHRpdmVjLXJlZ3MuZXhw OiBVc2Ugc3RhbmRhcmRfdGVzdGZpbGUgaW5zdGVhZCBvZgotICAgIAltYWludGFpbmluZyBzZXBh cmF0ZSBsb2dpYyBmb3IgY29uc3RydWN0aW5nIHRoZSBvdXRwdXQgcGF0aC4KLSAgICAJKiBnZGIu YXJjaC9wb3dlcnBjLWQxMjgtcmVncy5leHA6IExpa2V3aXNlLgotICAgIAkqIGdkYi5hcmNoL3Bw Yy1kZnAuZXhwOiBMaWtld2lzZS4KLSAgICAJKiBnZGIuYXJjaC9wcGMtZnAuZXhwOiBMaWtld2lz ZS4KLSAgICAJKiBnZGIuYXJjaC92c3gtcmVncy5leHA6IExpa2V3aXNlLgotICAgIAkqIGdkYi5h cmNoL2FsdGl2ZWMtYWJpLmV4cDogTGlrZXdpc2UsIHBsdXMgYWRkZWQgbG9jYWwgdmFyaWFibGUK LSAgICAJYmlucHJlZml4IGZvciBnZW5lcmF0aW5nIHRoZSBhZGRpdGlvbmFsIGJpbmFyeSBmaWxl cy4KLQotIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIyBiL2dkYi90ZXN0c3VpdGUv Q2hhbmdlTG9nCi0jIyAtMSwzICsxLDE0IEBACi0rMjAxNi0wOC0xOSAgQ2FybCBMb3ZlICA8Y2Vs QHVzLmlibS5jb20+Ci0rCi0rCSogZ2RiLmFyY2gvYWx0aXZlYy1yZWdzLmV4cDogVXNlIHN0YW5k YXJkX3Rlc3RmaWxlIGluc3RlYWQgb2YKLSsJbWFpbnRhaW5pbmcgc2VwYXJhdGUgbG9naWMgZm9y IGNvbnN0cnVjdGluZyB0aGUgb3V0cHV0IHBhdGguCi0rCSogZ2RiLmFyY2gvcG93ZXJwYy1kMTI4 LXJlZ3MuZXhwOiBMaWtld2lzZS4KLSsJKiBnZGIuYXJjaC9wcGMtZGZwLmV4cDogTGlrZXdpc2Uu Ci0rCSogZ2RiLmFyY2gvcHBjLWZwLmV4cDogTGlrZXdpc2UuCi0rCSogZ2RiLmFyY2gvdnN4LXJl Z3MuZXhwOiBMaWtld2lzZS4KLSsJKiBnZGIuYXJjaC9hbHRpdmVjLWFiaS5leHA6IExpa2V3aXNl LCBwbHVzIGFkZGVkIGxvY2FsIHZhcmlhYmxlCi0rCWJpbnByZWZpeCBmb3IgZ2VuZXJhdGluZyB0 aGUgYWRkaXRpb25hbCBiaW5hcnkgZmlsZXMuCi0rCi0gMjAxNi0wOC0xOSAgUGVkcm8gQWx2ZXMg IDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJKiBnZGIudHJhY2UvbWktdHJhY2UtZnJhbWUtY29s bGVjdGVkLmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbHRpdmVjLWFiaS5leHAK LSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYWx0aXZlYy1hYmkuZXhwCi1AQCAtMjYsOSAr MjYsNyBAQCBpZiB7IVtpc3RhcmdldCAicG93ZXJwYyoiXSB8fCBbc2tpcF9hbHRpdmVjX3Rlc3Rz XX0gdGhlbiB7Ci0gICAgIHJldHVybgotIH0KLSAKLS1zZXQgdGVzdGZpbGUgImFsdGl2ZWMtYWJp IgotLXNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KLS1zZXQgc3Jj ZmlsZSAke3Rlc3RmaWxlfS5jCi0rc3RhbmRhcmRfdGVzdGZpbGUKLSAKLSBpZiBbZ2V0X2NvbXBp bGVyX2luZm9dIHsKLSAgICAgd2FybmluZyAiZ2V0X2NvbXBpbGVyIGZhaWxlZCIKLUBAIC0xNDYs NiArMTQ0LDggQEAgcHJvYyBhbHRpdmVjX2FiaV90ZXN0cyB7IGV4dHJhX2ZsYWdzIGZvcmNlX2Fi aSB9IHsKLSB9Ci0gCi0gaWYgW3Rlc3RfY29tcGlsZXJfaW5mbyBnY2MqXSB7Ci0rICAgIHNldCBi aW5wcmVmaXggJHtiaW5maWxlfQotKwotICAgICB3aXRoX3Rlc3RfcHJlZml4ICJkZWZhdWx0IEFC SSwgYXV0byIgewotIAlhbHRpdmVjX2FiaV90ZXN0cyAgImFkZGl0aW9uYWxfZmxhZ3M9LW1hbHRp dmVjIiAiYXV0byIKLSAgICAgfQotQEAgLTE1NiwyMyArMTU2LDIzIEBAIGlmIFt0ZXN0X2NvbXBp bGVyX2luZm8gZ2NjKl0gewotIAkjIE9uIDY0LWJpdCBHTlUvTGludXggd2l0aCBHQ0MgNC4xIGFu ZCA0LjIsIC1tYWJpPW5vLWFsdGl2ZWMKLSAJIyB3YXMgYnJva2VuLCBzbyBza2lwIHRob3NlIHRl c3RzIHRoZXJlLgotIAlpZiB7ICFbaXNfbHA2NF90YXJnZXRdIHx8ICFbdGVzdF9jb21waWxlcl9p bmZvICJnY2MtNC1cWzEyXF0tKiJdIH0gewotLQkgICAgc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7 c3ViZGlyfS8ke3Rlc3RmaWxlfS1nZS1nZQotKwkgICAgc2V0IGJpbmZpbGUgJHtiaW5wcmVmaXh9 LWdlLWdlCi0gCSAgICB3aXRoX3Rlc3RfcHJlZml4ICJnZW5lcmljIEFCSSwgZm9yY2VkIiB7Ci0g CQlhbHRpdmVjX2FiaV90ZXN0cyAiYWRkaXRpb25hbF9mbGFncz0tbWFsdGl2ZWMgYWRkaXRpb25h bF9mbGFncz0tbWFiaT1uby1hbHRpdmVjIiAiZ2VuZXJpYyIKLSAJICAgIH0KLSAKLS0JICAgIHNl dCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0tZ2UtYXV0bwotKwkgICAg c2V0IGJpbmZpbGUgJHtiaW5wcmVmaXh9LWdlLWF1dG8KLSAJICAgIHdpdGhfdGVzdF9wcmVmaXgg ImdlbmVyaWMgQUJJLCBhdXRvIiB7Ci0gCQlhbHRpdmVjX2FiaV90ZXN0cyAiYWRkaXRpb25hbF9m bGFncz0tbWFsdGl2ZWMgYWRkaXRpb25hbF9mbGFncz0tbWFiaT1uby1hbHRpdmVjIiAiYXV0byIK LSAJICAgIH0KLSAJfQotIAotLQlzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVz dGZpbGV9LWF2LWF2Ci0rCXNldCBiaW5maWxlICR7YmlucHJlZml4fS1hdi1hdgotIAl3aXRoX3Rl c3RfcHJlZml4ICJBbHRpVmVjIEFCSSwgZm9yY2VkIiB7Ci0gCSAgICBhbHRpdmVjX2FiaV90ZXN0 cyAiYWRkaXRpb25hbF9mbGFncz0tbWFsdGl2ZWMgYWRkaXRpb25hbF9mbGFncz0tbWFiaT1hbHRp dmVjIiAiYWx0aXZlYyIKLSAJfQotIAotLQlzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9 LyR7dGVzdGZpbGV9LWF2LWF1dG8KLSsJc2V0IGJpbmZpbGUgJHtiaW5wcmVmaXh9LWF2LWF1dG8K LSAJd2l0aF90ZXN0X3ByZWZpeCAiQWx0aVZlYyBBQkksIGF1dG8iIHsKLSAJICAgIGFsdGl2ZWNf YWJpX3Rlc3RzICJhZGRpdGlvbmFsX2ZsYWdzPS1tYWx0aXZlYyBhZGRpdGlvbmFsX2ZsYWdzPS1t YWJpPWFsdGl2ZWMiICJhdXRvIgotIAl9Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2Fs dGl2ZWMtcmVncy5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYWx0aXZlYy1yZWdz LmV4cAotQEAgLTI3LDkgKzI3LDcgQEAgaWYgeyFbaXN0YXJnZXQgInBvd2VycGMqIl0gfHwgW3Nr aXBfYWx0aXZlY190ZXN0c119IHRoZW4gewotICAgICByZXR1cm4KLSB9Ci0gCi0tc2V0IHRlc3Rm aWxlICJhbHRpdmVjLXJlZ3MiCi0tc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rl c3RmaWxlfQotLXNldCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKLStzdGFuZGFyZF90ZXN0ZmlsZQot IAotIHNldCBjb21waWxlX2ZsYWdzIHtkZWJ1ZyBub3dhcm5pbmdzfQotIGlmIFtnZXRfY29tcGls ZXJfaW5mb10gewotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9wb3dlcnBjLWQxMjgtcmVn cy5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1kMTI4LXJlZ3MuZXhw Ci1AQCAtMjUsOSArMjUsNyBAQCBpZiAhW2lzdGFyZ2V0ICJwb3dlcnBjNjQqLSoiXSB0aGVuIHsK LSAgICAgcmV0dXJuCi0gfQotIAotLXNldCB0ZXN0ZmlsZSAicG93ZXJwYy1kMTI4LXJlZ3MiCi0t c2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYwotLXNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRp cn0vJHt0ZXN0ZmlsZX0KLStzdGFuZGFyZF90ZXN0ZmlsZQotIAotIGlmICB7IFtnZGJfY29tcGls ZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJs ZSB7cXVpZXQgZGVidWd9XSAhPSAiIiB9IHsKLSAgICAgIHVudGVzdGVkIHBvd2VycGMtZDEyOC1y ZWdzLmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9wcGMtZGZwLmV4cAotKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9wcGMtZGZwLmV4cAotQEAgLTIxLDkgKzIxLDcgQEAgaWYg IVtpc3RhcmdldCAicG93ZXJwYyoiXSB0aGVuIHsKLSAgICAgcmV0dXJuCi0gfQotIAotLXNldCB0 ZXN0ZmlsZSAicHBjLWRmcCIKLS1zZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVz dGZpbGV9Ci0tc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYwotK3N0YW5kYXJkX3Rlc3RmaWxlCi0g Ci0gaWYgW2dldF9jb21waWxlcl9pbmZvXSB7Ci0gICAgIHdhcm5pbmcgImdldF9jb21waWxlciBm YWlsZWQiCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3BwYy1mcC5leHAKLSsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmFyY2gvcHBjLWZwLmV4cAotQEAgLTIxLDkgKzIxLDcgQEAgaWYgIVtp c3RhcmdldCAicG93ZXJwYyoiXSB0aGVuIHsKLSAgICAgcmV0dXJuCi0gfQotIAotLXNldCB0ZXN0 ZmlsZSAicHBjLWZwIgotLXNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0Zmls ZX0KLS1zZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jCi0rc3RhbmRhcmRfdGVzdGZpbGUKLSAKLSBp ZiBbZ2V0X2NvbXBpbGVyX2luZm9dIHsKLSAgICAgd2FybmluZyAiZ2V0X2NvbXBpbGVyIGZhaWxl ZCIKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvdnN4LXJlZ3MuZXhwCi0rKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL3ZzeC1yZWdzLmV4cAotQEAgLTI0LDkgKzI0LDcgQEAgaWYgeyFb aXN0YXJnZXQgInBvd2VycGMqIl0gfHwgW3NraXBfdnN4X3Rlc3RzXX0gdGhlbiB7Ci0gICAgIHJl dHVybgotIH0KLSAKLS1zZXQgdGVzdGZpbGUgInZzeC1yZWdzIgotLXNldCBiaW5maWxlICR7b2Jq ZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KLS1zZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jCi0r c3RhbmRhcmRfdGVzdGZpbGUKLSAKLSBzZXQgY29tcGlsZV9mbGFncyB7ZGVidWcgbm93YXJuaW5n cyBxdWlldH0KLSBpZiBbZ2V0X2NvbXBpbGVyX2luZm9dIHsKLQotCi1odHRwOi8vc291cmNld2Fy ZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0xMC9tc2cwMDI1OC5odG1sCi1TdWJqZWN0OiBbdGVz dHN1aXRlIG9idl0gVXNlIHN0YW5kYXJkX291dHB1dF9maWxlCi0KLUZyb206IEphbiBLcmF0b2No dmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotRGF0ZTogVHVlLCAxMSBPY3QgMjAxNiAx Njo0Mzo1OCArMDIwMAotU3ViamVjdDogW1BBVENIXSB0ZXN0c3VpdGU6IFVzZSBzdGFuZGFyZF9v dXRwdXRfZmlsZQotU3ViamVjdDogW1BBVENIXSB0ZXN0c3VpdGU6IFVzZSBzdGFuZGFyZF9vdXRw dXRfZmlsZQotCi1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotMjAxNi0xMC0xMSAgSmFuIEtyYXRv Y2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIuYXJjaC9wb3dlcnBj LXByb2xvZ3VlLmV4cDogVXNlIHN0YW5kYXJkX291dHB1dF9maWxlLgotCSogZ2RiLmFyY2gvcHBj NjQtc3ltdGFiLWNvcmRpYy5leHA6IExpa2V3aXNlLgotCSogZ2RiLmFyY2gvdnN4LXJlZ3MuZXhw OiBMaWtld2lzZS4KLS0tLQotIGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg ICAgICAgICAgfCA2ICsrKysrKwotIGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1wcm9s b2d1ZS5leHAgICAgfCAyICstCi0gZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9wcGM2NC1zeW10YWIt Y29yZGljLmV4cCB8IDQgKystLQotIGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvdnN4LXJlZ3MuZXhw ICAgICAgICAgICAgfCAyICstCi0gNCBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgYi9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotaW5kZXggOWM3ZGYyOS4uYjZiYTBlYyAxMDA2NDQKLSMj IyBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxv ZwotIyMgLTEsMyArMSw5IEBACi0rMjAxNi0xMC0xMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPgotKwotKwkqIGdkYi5hcmNoL3Bvd2VycGMtcHJvbG9ndWUuZXhw OiBVc2Ugc3RhbmRhcmRfb3V0cHV0X2ZpbGUKLSsJKiBnZGIuYXJjaC9wcGM2NC1zeW10YWItY29y ZGljLmV4cDogTGlrZXdpc2UuCi0rCSogZ2RiLmFyY2gvdnN4LXJlZ3MuZXhwOiBMaWtld2lzZS4K LSsKLSAyMDE2LTEwLTA3ICBZYW8gUWkgIDx5YW8ucWlAbGluYXJvLm9yZz4KLSAKLSAJKiBnZGIu eG1sL3RkZXNjLXJlZ3MuZXhwOiBTZXQgcmVnZGlyIHRvICJhcm0vIi4KLWRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3Bvd2VycGMtcHJvbG9ndWUuZXhwIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC9wb3dlcnBjLXByb2xvZ3VlLmV4cAotaW5kZXggMzQxYWUwMi4uMGM3NGQ3ZSAx MDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1wcm9sb2d1ZS5leHAK LSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1wcm9sb2d1ZS5leHAKLUBAIC0y NCw3ICsyNCw3IEBAIGlmIHtbaXN0YXJnZXQgKi0qLWFpeCpdIHx8ICFbaXN0YXJnZXQgInBvd2Vy cGMtKi0qIl19IHRoZW4gewotIAotIHNldCB0ZXN0ZmlsZSAicG93ZXJwYy1wcm9sb2d1ZSIKLSBz ZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jCi0tc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGly fS8ke3Rlc3RmaWxlfQotK3NldCBiaW5maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3Rm aWxlfV0KLSAKLSAjIERvbid0IHVzZSAiZGVidWciLCBzbyB0aGF0IHdlIGRvbid0IGhhdmUgbGlu ZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGFzc2VtYmx5Ci0gIyBmcmFnbWVudHMuCi1kaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9wcGM2NC1zeW10YWItY29yZGljLmV4cCBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gvcHBjNjQtc3ltdGFiLWNvcmRpYy5leHAKLWluZGV4IGM4Y2I0Mjku LjNmZGM0OTAgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3BwYzY0LXN5bXRh Yi1jb3JkaWMuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3BwYzY0LXN5bXRhYi1j b3JkaWMuZXhwCi1AQCAtMjEsOSArMjEsOSBAQCBpZiB7IVtpc3RhcmdldCAicG93ZXJwYyoiXSB8 fCAhW2lzX2xwNjRfdGFyZ2V0XX0gewotIHN0YW5kYXJkX3Rlc3RmaWxlCi0gCi0gc2V0IGtvYnoy ZmlsZSAke3NyY2Rpcn0vJHtzdWJkaXJ9L2NvcmRpYy5rby5iejIKLS1zZXQga29maWxlICR7b2Jq ZGlyfS8ke3N1YmRpcn0vY29yZGljLmtvCi0rc2V0IGtvZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2Zp bGUgY29yZGljLmtvXQotIHNldCBrb2RlYnVnYnoyZmlsZSAke3NyY2Rpcn0vJHtzdWJkaXJ9L2Nv cmRpYy5rby5kZWJ1Zy5iejIKLS1zZXQga29kZWJ1Z2ZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS9j b3JkaWMua28uZGVidWcKLStzZXQga29kZWJ1Z2ZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlIGNv cmRpYy5rby5kZWJ1Z10KLSAKLSBpZiB7W2NhdGNoICJzeXN0ZW0gXCJiemlwMiAtZGMgJHtrb2J6 MmZpbGV9ID4ke2tvZmlsZX1cIiJdICE9IDB9IHsKLSAgICAgdW50ZXN0ZWQgImZhaWxlZCBiemlw MiBmb3IgJHtrb2J6MmZpbGV9IgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gv dnN4LXJlZ3MuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC92c3gtcmVncy5leHAKLWluZGV4 IDMwN2YxMmEuLjMxZTU4ZTYgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3Zz eC1yZWdzLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC92c3gtcmVncy5leHAKLUBA IC0xNTIsNyArMTUyLDcgQEAgZm9yIHtzZXQgaSAwfSB7JGkgPCAzMn0ge2luY3IgaSAxfSB7Ci0g IyBsYXRlciB3aGVuIGxvYWRpbmcgdGhlIGNvcmUgZmlsZSAoaS5lLiwgZGlmZmVyZW50IHJlZ2lz dGVyIHZhbHVlcyBmb3IgZGlmZmVyZW50Ci0gIyB2ZWN0b3IgcmVnaXN0ZXIgYmFua3MpLgotIAot LXNldCBjb3JlZmlsZSAiJHtvYmpkaXJ9LyR7c3ViZGlyfS92c3gtY29yZS50ZXN0IgotK3NldCBj b3JlZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgdnN4LWNvcmUudGVzdF0KLSBzZXQgY29yZV9z dXBwb3J0ZWQgW2dkYl9nY29yZV9jbWQgIiRjb3JlZmlsZSIgIlNhdmUgYSBWU1gtZW5hYmxlZCBj b3JlZmlsZSJdCi0gCi0gIyBOb3cgcnVuIHRoZSBGMzJ+RjYzL1ZSMH5WUjMxIHRlc3RzLgotLS0g Ci0yLjcuNAotCi0KLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTEw L21zZzAwMjY4Lmh0bWwKLVN1YmplY3Q6IFt0ZXN0c3VpdGUgb2J2XSBGaXggZ2RiLmFyY2gvcG93 ZXJwYy1wcm9sb2d1ZS5jIGNvbXBpbGF0aW9uCi0KLUZyb206IEphbiBLcmF0b2NodmlsIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgotRGF0ZTogVHVlLCAxMSBPY3QgMjAxNiAxOTowOTowNSAr MDIwMAotU3ViamVjdDogW1BBVENIXSB0ZXN0c3VpdGU6IEZpeCBnZGIuYXJjaC9wb3dlcnBjLXBy b2xvZ3VlLmMgY29tcGlsYXRpb24KLVN1YmplY3Q6IFtQQVRDSF0gdGVzdHN1aXRlOiBGaXggZ2Ri LmFyY2gvcG93ZXJwYy1wcm9sb2d1ZS5jIGNvbXBpbGF0aW9uCi0KLWdjYy02LjIuMQotCi1nZGIg Y29tcGlsZSBmYWlsZWQsIGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1wcm9sb2d1ZS5j OiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3Bvd2VycGMtcHJv bG9ndWUuYzozMjozOiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAn b3B0aW1pemVkXzEnIFstV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQotICAgb3B0aW1p emVkXzEgKCk7Ci0gICBefn5+fn5+fn5+fgotCi1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotMjAx Ni0xMC0xMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0J KiBnZGIuYXJjaC9wb3dlcnBjLXByb2xvZ3VlLmMgKG9wdGltaXplZF8xKTogTmV3IGRlY2xhcmF0 aW9uLgotLS0tCi0gZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgfCA0 ICsrKysKLSBnZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3Bvd2VycGMtcHJvbG9ndWUuYyB8IDEgKwot IDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL0NoYW5nZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi1pbmRleCBiNmJhMGVj Li5iNGNjZDRhIDEwMDY0NAotIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIyBiL2dk Yi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyAtMSw1ICsxLDkgQEAKLSAyMDE2LTEwLTExICBKYW4g S3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0gCi0rCSogZ2RiLmFyY2gv cG93ZXJwYy1wcm9sb2d1ZS5jIChvcHRpbWl6ZWRfMSk6IE5ldyBkZWNsYXJhdGlvbi4KLSsKLSsy MDE2LTEwLTExICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0r Ci0gCSogZ2RiLmFyY2gvcG93ZXJwYy1wcm9sb2d1ZS5leHA6IFVzZSBzdGFuZGFyZF9vdXRwdXRf ZmlsZQotIAkqIGdkYi5hcmNoL3BwYzY0LXN5bXRhYi1jb3JkaWMuZXhwOiBMaWtld2lzZS4KLSAJ KiBnZGIuYXJjaC92c3gtcmVncy5leHA6IExpa2V3aXNlLgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1wcm9sb2d1ZS5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJj aC9wb3dlcnBjLXByb2xvZ3VlLmMKLWluZGV4IDZjMTBkZmMuLmExYjgwNjUgMTAwNjQ0Ci0tLS0g YS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3Bvd2VycGMtcHJvbG9ndWUuYwotKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC9wb3dlcnBjLXByb2xvZ3VlLmMKLUBAIC0yNCw2ICsyNCw3IEBACi0g I2VuZGlmCi0gCi0gdm9pZCBnZGIyMDI5ICh2b2lkKTsKLSt2b2lkIG9wdGltaXplZF8xICh2b2lk KTsKLSAKLSBpbnQKLSBtYWluICh2b2lkKQotLS0gCi0yLjcuNAotCi0KLQotaHR0cDovL3NvdXJj ZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMTAvbXNnMDA2MTMuaHRtbAotU3ViamVjdDog W3Rlc3RzdWl0ZSBwYXRjaF0gRml4IGdjY19jb21waWxlZCBmb3IgZ2NjIDYgJiA3Ci0KLQotLS1J UzB6S2t6d1VHeWRGTzBvCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNj aWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQotCi1IaSwKLQotT0sgZm9yIGNoZWNrLWlu PwotCi0KLUphbgotCi0tLUlTMHpLa3p3VUd5ZEZPMG8KLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFt ZT0xCi0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0yMDE2LTEwLTIwICBKYW4gS3JhdG9jaHZp bCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIGxpYi9nZGIuZXhwIChnZXRfY29t cGlsZXJfaW5mbyk6IEdlbmVyYWxpemUgZ2NjX2NvbXBpbGUgcmVnZXhwLgotCi1kaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAK LWluZGV4IDM3OGVlYTAuLjdkOWIxOTggMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9n ZGIuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi1AQCAtMzI5MCwxMiArMzI5 MCw4IEBAIHByb2MgZ2V0X2NvbXBpbGVyX2luZm8ge3thcmcgIiJ9fSB7Ci0gICAgIH0KLSAKLSAg ICAgIyBTZXQgdGhlIGxlZ2FjeSBzeW1ib2xzLgotLSAgICBzZXQgZ2NjX2NvbXBpbGVkICAgICAw Ci0tICAgIGlmIHsgW3JlZ2V4cCAiXmdjYy0xLSIgIiRjb21waWxlcl9pbmZvIiBdIH0geyBzZXQg Z2NjX2NvbXBpbGVkIDEgfQotLSAgICBpZiB7IFtyZWdleHAgIl5nY2MtMi0iICIkY29tcGlsZXJf aW5mbyIgXSB9IHsgc2V0IGdjY19jb21waWxlZCAyIH0KLS0gICAgaWYgeyBbcmVnZXhwICJeZ2Nj LTMtIiAiJGNvbXBpbGVyX2luZm8iIF0gfSB7IHNldCBnY2NfY29tcGlsZWQgMyB9Ci0tICAgIGlm IHsgW3JlZ2V4cCAiXmdjYy00LSIgIiRjb21waWxlcl9pbmZvIiBdIH0geyBzZXQgZ2NjX2NvbXBp bGVkIDQgfQotLSAgICBpZiB7IFtyZWdleHAgIl5nY2MtNS0iICIkY29tcGlsZXJfaW5mbyIgXSB9 IHsgc2V0IGdjY19jb21waWxlZCA1IH0KLSsgICAgc2V0IGdjY19jb21waWxlZCAwCi0rICAgIHJl Z2V4cCAiXmdjYy0oXFswLTlcXSspLSIgIiRjb21waWxlcl9pbmZvIiBtYXRjaGFsbCBnY2NfY29t cGlsZWQKLSAKLSAgICAgIyBMb2cgd2hhdCBoYXBwZW5lZC4KLSAgICAgdmVyYm9zZSAtbG9nICJn ZXRfY29tcGlsZXJfaW5mbzogJGNvbXBpbGVyX2luZm8iCi0KLS0tSVMwektrendVR3lkRk8wby0t Ci0KLQotCi1jb21taXQgMWI3ZTNkMmZiNzAzNmNlNmY5ZDc0ZTMyZGMwNTI1MThmNWNkNDViNgot QXV0aG9yOiBOaWNrIENsaWZ0b24gPG5pY2tjQHJlZGhhdC5jb20+Ci1EYXRlOiAgIEZyaSBGZWIg MyAwOTowNDoyMSAyMDE3ICswMDAwCi0KLSAgICBGaXggY29tcGlsZSB0aW1lIHdhcm5pbmcgbWVz c2FnZXMgd2hlbiBjb21waWxpbmcgYmludXRpbHMgd2l0aCBnY2MgNy4wLjEuCi0gICAgCi0gICAg ICAgICAgICBQUiAyMTA5NgotICAgIGJmZCAgICAgKiBjb2ZmY29kZS5oIChjb2ZmX3dyaXRlX29i amVjdF9jb250ZW50cyk6IEVubGFyZ2Ugc2l6ZSBvZgotICAgICAgICAgICAgc19uYW1lX2J1ZiBp biBvcmRlciB0byBhdm9pZCBjb21waWxlIHRpbWUgd2FybmluZyBhYm91dCBwb3NzaWJsZQotICAg ICAgICAgICAgaW50ZWdlciB0cnVuY2F0aW9uLgotICAgICAgICAgICAgKiBlbGYzMi1uZHMzMi5j IChuZHMzMl9lbGZfZXg5X2ltcG9ydF90YWJsZSk6IE1hc2sgb2ZmIGxvd2VyCi0gICAgICAgICAg ICAzMi1iaXRzIG9mIGluc24gdmFsdWUgYmVmb3JlIHByaW50aW5nIGludG8gYnVmZmVyLgotICAg IAotICAgIG9wY29kZXMgKiBhYXJjaDY0LW9wYy5jIChwcmludF9yZWdpc3Rlcl9saXN0KTogRW5z dXJlIHRoYXQgdGhlIHJlZ2lzdGVyCi0gICAgICAgICAgICBsaXN0IGluZGV4IHdpbGwgZmlyIGlu dG8gdGhlIHRiIGJ1ZmZlci4KLSAgICAgICAgICAgIChwcmludF9yZWdpc3Rlcl9vZmZzZXRfYWRk cmVzcyk6IExpa2V3aXNlLgotICAgICAgICAgICAgKiB0aWM2eC1kaXMuYyAocHJpbnRfaW5zbl90 aWM2eCk6IEluY3JlYXNlIHNpemUgb2YgZnVuY191bml0X2J1Zi4KLQotIyMjIGEvYmZkL0NoYW5n ZUxvZwotIyMjIGIvYmZkL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxMiBAQAotKzIwMTctMDItMDMg IE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+Ci0rCi0rCVBSIDIxMDk2Ci0rCSogY29m ZmNvZGUuaCAoY29mZl93cml0ZV9vYmplY3RfY29udGVudHMpOiBFbmxhcmdlIHNpemUgb2YKLSsJ c19uYW1lX2J1ZiBpbiBvcmRlciB0byBhdm9pZCBjb21waWxlIHRpbWUgd2FybmluZyBhYm91dCBw b3NzaWJsZQotKwlpbnRlZ2VyIHRydW5jYXRpb24uCi0rCSogZWxmMzItbmRzMzIuYyAobmRzMzJf ZWxmX2V4OV9pbXBvcnRfdGFibGUpOiBNYXNrIG9mZiBsb3dlcgotKwkzMi1iaXRzIG9mIGluc24g dmFsdWUgYmVmb3JlIHByaW50aW5nIGludG8gYnVmZmVyLgotKwotIDIwMTctMDItMDIgIE1hY2ll aiBXLiBSb3p5Y2tpICA8bWFjcm9AaW1ndGVjLmNvbT4KLSAKLSAJKiBlbGZ4eC1taXBzLmMgKG1p cHNfZWxmX2hhc2hfc29ydF9kYXRhKTogQWRkCi0tLS0gYS9iZmQvY29mZmNvZGUuaAotKysrIGIv YmZkL2NvZmZjb2RlLmgKLUBAIC0zNzU1LDcgKzM3NTUsOSBAQCBjb2ZmX3dyaXRlX29iamVjdF9j b250ZW50cyAoYmZkICogYWJmZCkKLSAJCSBOVUwtdGVybWluYXRlZC4gIFdlIHVzZSBhIHRlbXBv cmFyeSBidWZmZXIgc28gdGhhdCB3ZSBjYW4gc3RpbGwKLSAJCSBzcHJpbnRmIGFsbCBlaWdodCBj aGFycyB3aXRob3V0IHNwbGF0dGluZyBhIHRlcm1pbmF0aW5nIE5VTAotIAkJIG92ZXIgdGhlIGZp cnN0IGJ5dGUgb2YgdGhlIGZvbGxvd2luZyBtZW1iZXIgKHNfcGFkZHIpLiAgKi8KLS0JICAgICAg Y2hhciBzX25hbWVfYnVmW1NDTk5NTEVOICsgMV07Ci0rCSAgICAgIC8qIFBSIDIxMDk2OiBUaGUg KzIwIGlzIHRvIHN0b3AgYSBib2d1cyB3YXJuaW5nIGZyb20gZ2NjNyBhYm91dAotKwkJIGEgcG9z c2libGUgYnVmZmVyIG92ZXJmbG93LiAgKi8KLSsJICAgICAgY2hhciBzX25hbWVfYnVmW1NDTk5N TEVOICsgMSArIDIwXTsKLSAKLSAJICAgICAgLyogQW4gaW5oZXJlbnQgbGltaXRhdGlvbiBvZiB0 aGUgL25ubm5ubm4gbm90YXRpb24gdXNlZCB0byBpbmRpY2F0ZQotIAkJIHRoZSBvZmZzZXQgb2Yg dGhlIGxvbmcgbmFtZSBpbiB0aGUgc3RyaW5nIHRhYmxlIGlzIHRoYXQgd2UKLUBAIC0zNzcwLDkg KzM3NzIsMTAgQEAgY29mZl93cml0ZV9vYmplY3RfY29udGVudHMgKGJmZCAqIGFiZmQpCi0gCQkg IHJldHVybiBGQUxTRTsKLSAJCX0KLSAKLS0JICAgICAgLyogc25wcmludGYgbm90IHN0cmljdGx5 IG5lY2Vzc2FyeSBub3cgd2UndmUgdmVyaWZpZWQgdGhlIHZhbHVlCi0tCQkgaGFzIGxlc3MgdGhh biBlaWdodCBBU0NJSSBkaWdpdHMsIGJ1dCBuZXZlciBtaW5kLiAgKi8KLS0JICAgICAgc25wcmlu dGYgKHNfbmFtZV9idWYsIFNDTk5NTEVOICsgMSwgIi8lbHUiLCAodW5zaWduZWQgbG9uZykgc3Ry aW5nX3NpemUpOwotKwkgICAgICAvKiBXZSBkbyBub3QgbmVlZCB0byB1c2Ugc25wcmludGYgaGVy ZSBhcyB3ZSBoYXZlIGFscmVhZHkgdmVyZmllZAotKwkJIHRoYXQgc3RyaW5nX3NpemUgaXMgbm90 IHRvbyBiaWcsIHBsdXMgd2UgaGF2ZSBhbiBvdmVybGFyZ2UKLSsJCSBidWZmZXIsIGp1c3QgaW4g Y2FzZS4gICovCi0rCSAgICAgIHNwcmludGYgKHNfbmFtZV9idWYsICIvJWx1IiwgKHVuc2lnbmVk IGxvbmcpIHN0cmluZ19zaXplKTsKLSAJICAgICAgLyogVGhlbiBzdHJuY3B5IHRha2VzIGNhcmUg b2YgYW55IHBhZGRpbmcgZm9yIHVzLiAgKi8KLSAJICAgICAgc3RybmNweSAoc2VjdGlvbi5zX25h bWUsIHNfbmFtZV9idWYsIFNDTk5NTEVOKTsKLSAJICAgICAgc3RyaW5nX3NpemUgKz0gbGVuICsg MTsKLS0tLSBhL2JmZC9lbGYzMi1uZHMzMi5jCi0rKysgYi9iZmQvZWxmMzItbmRzMzIuYwotQEAg LTE0OTQ5LDcgKzE0OTQ5LDYgQEAgbmRzMzJfZWxmX2V4OV9pbXBvcnRfdGFibGUgKHN0cnVjdCBi ZmRfbGlua19pbmZvICppbmZvKQotIHsKLSAgIGludCBudW0gPSAwOwotICAgYmZkX2J5dGUgKmNv bnRlbnRzOwotLSAgdW5zaWduZWQgbG9uZyBpbnNuOwotICAgRklMRSAqZXg5X2ltcG9ydF9maWxl OwotICAgaW50IHVwZGF0ZV9leDlfdGFibGU7Ci0gICBzdHJ1Y3QgZWxmX25kczMyX2xpbmtfaGFz aF90YWJsZSAqdGFibGU7Ci1AQCAtMTQ5NjMsNiArMTQ5NjIsNyBAQCBuZHMzMl9lbGZfZXg5X2lt cG9ydF90YWJsZSAoc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pCi0gICAvKiBSZWFkIGluc3Ry dWN0aW9ucyBmcm9tIHRoZSBpbnB1dCBmaWxlIGFuZCBidWlsZCB0aGUgbGlzdC4gICovCi0gICB3 aGlsZSAoIWZlb2YgKGV4OV9pbXBvcnRfZmlsZSkpCi0gICAgIHsKLSsgICAgICB1bnNpZ25lZCBs b25nIGluc247Ci0gICAgICAgY2hhciAqY29kZTsKLSAgICAgICBzdHJ1Y3QgZWxmX25kczMyX2lu c25fdGltZXNfZW50cnkgKnB0cjsKLSAgICAgICBzaXplX3QgbnJlYWQ7Ci1AQCAtMTQ5NzMsNyAr MTQ5NzMsNyBAQCBuZHMzMl9lbGZfZXg5X2ltcG9ydF90YWJsZSAoc3RydWN0IGJmZF9saW5rX2lu Zm8gKmluZm8pCi0gCWJyZWFrOwotICAgICAgIGluc24gPSBiZmRfZ2V0YjMyIChjb250ZW50cyk7 Ci0gICAgICAgY29kZSA9IGJmZF9tYWxsb2MgKHNpemVvZiAoY2hhcikgKiA5KTsKLS0gICAgICBz bnByaW50ZiAoY29kZSwgOSwgIiUwOGx4IiwgaW5zbik7Ci0rICAgICAgc25wcmludGYgKGNvZGUs IDksICIlMDhseCIsIChpbnNuICYgMHhmZmZmZmZmZikpOwotICAgICAgIHB0ciA9IGJmZF9tYWxs b2MgKHNpemVvZiAoc3RydWN0IGVsZl9uZHMzMl9pbnNuX3RpbWVzX2VudHJ5KSk7Ci0gICAgICAg cHRyLT5zdHJpbmcgPSBjb2RlOwotICAgICAgIHB0ci0+b3JkZXIgPSBudW07Ci0jIyMgYS9vcGNv ZGVzL0NoYW5nZUxvZwotIyMjIGIvb3Bjb2Rlcy9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsMTEgQEAK LSsyMDE3LTAyLTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgotKwotKwlQUiAy MTA5NgotKwkqIGFhcmNoNjQtb3BjLmMgKHByaW50X3JlZ2lzdGVyX2xpc3QpOiBFbnN1cmUgdGhh dCB0aGUgcmVnaXN0ZXIKLSsJbGlzdCBpbmRleCB3aWxsIGZpciBpbnRvIHRoZSB0YiBidWZmZXIu Ci0rCShwcmludF9yZWdpc3Rlcl9vZmZzZXRfYWRkcmVzcyk6IExpa2V3aXNlLgotKwkqIHRpYzZ4 LWRpcy5jIChwcmludF9pbnNuX3RpYzZ4KTogSW5jcmVhc2Ugc2l6ZSBvZiBmdW5jX3VuaXRfYnVm LgotKwotIDIwMTctMDEtMjcgIEFsZXhpcyBEZXJ1ZWxsICA8YWxleGlzLmRlcnVlbGxlQGdtYWls LmNvbT4KLSAKLSAJUFIgMjEwNTYKLS0tLSBhL29wY29kZXMvYWFyY2g2NC1vcGMuYwotKysrIGIv b3Bjb2Rlcy9hYXJjaDY0LW9wYy5jCi1AQCAtMjg2NSw3ICsyODY1LDggQEAgcHJpbnRfcmVnaXN0 ZXJfbGlzdCAoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSwgY29uc3QgYWFyY2g2NF9vcG5kX2luZm8g Km9wbmQsCi0gCi0gICAvKiBQcmVwYXJlIHRoZSBpbmRleCBpZiBhbnkuICAqLwotICAgaWYgKG9w bmQtPnJlZ2xpc3QuaGFzX2luZGV4KQotLSAgICBzbnByaW50ZiAodGIsIDgsICJbJSIgUFJJaTY0 ICJdIiwgb3BuZC0+cmVnbGlzdC5pbmRleCk7Ci0rICAgIC8qIFBSIDIxMDk2OiBUaGUgJTEwMCBp cyB0byBzaWxlbmNlIGEgd2FybmluZyBhYm91dCBwb3NzaWJsZSB0cnVuY2F0aW9uLiAgKi8KLSsg ICAgc25wcmludGYgKHRiLCA4LCAiWyUiIFBSSWk2NCAiXSIsIChvcG5kLT5yZWdsaXN0LmluZGV4 ICUgMTAwKSk7Ci0gICBlbHNlCi0gICAgIHRiWzBdID0gJ1wwJzsKLSAKLUBAIC0yMzQ0LDcgKzIz NDQsOSBAQCBwcmludF9yZWdpc3Rlcl9vZmZzZXRfYWRkcmVzcyAoY2hhciAqYnVmCi0gICBpZiAo cHJpbnRfZXh0ZW5kX3ApCi0gICAgIHsKLSAgICAgICBpZiAocHJpbnRfYW1vdW50X3ApCi0tCXNu cHJpbnRmICh0Yiwgc2l6ZW9mICh0YiksICIsJXMgIyVkIiwgc2hpZnRfbmFtZSwgb3BuZC0+c2hp ZnRlci5hbW91bnQpOwotKwlzbnByaW50ZiAodGIsIHNpemVvZiAodGIpLCAiLCVzICMlZCIsIHNo aWZ0X25hbWUsCi0rICAvKiBQUiAyMTA5NjogVGhlICUxMDAgaXMgdG8gc2lsZW5jZSBhIHdhcm5p bmcgYWJvdXQgcG9zc2libGUgdHJ1bmNhdGlvbi4gICovCi0rCQkgIChvcG5kLT5zaGlmdGVyLmFt b3VudCAlIDEwMCkpOwotICAgICAgIGVsc2UKLSAJc25wcmludGYgKHRiLCBzaXplb2YgKHRiKSwg IiwlcyIsIHNoaWZ0X25hbWUpOwotICAgICB9Ci0tLS0gYS9vcGNvZGVzL3RpYzZ4LWRpcy5jCi0r KysgYi9vcGNvZGVzL3RpYzZ4LWRpcy5jCi1AQCAtMzE2LDcgKzMxNiw3IEBAIHByaW50X2luc25f dGljNnggKGJmZF92bWEgYWRkciwgc3RydWN0IGRpc2Fzc2VtYmxlX2luZm8gKmluZm8pCi0gICAg ICAgY29uc3QgY2hhciAqcGFyYWxsZWw7Ci0gICAgICAgY29uc3QgY2hhciAqY29uZCA9ICIiOwot ICAgICAgIGNvbnN0IGNoYXIgKmZ1bmNfdW5pdDsKLS0gICAgICBjaGFyIGZ1bmNfdW5pdF9idWZb N107Ci0rICAgICAgY2hhciBmdW5jX3VuaXRfYnVmWzhdOwotICAgICAgIHVuc2lnbmVkIGludCBm dW5jX3VuaXRfc2lkZSA9IDA7Ci0gICAgICAgdW5zaWduZWQgaW50IGZ1bmNfdW5pdF9kYXRhX3Np ZGUgPSAwOwotICAgICAgIHVuc2lnbmVkIGludCBmdW5jX3VuaXRfY3Jvc3MgPSAwOwotQEAgLTcw Myw4ICs3MDMsOSBAQCBwcmludF9pbnNuX3RpYzZ4IChiZmRfdm1hIGFkZHIsIHN0cnVjdCBkaXNh c3NlbWJsZV9pbmZvICppbmZvKQotIAkgIGlmIChvcGMtPmZsYWdzICYgVElDNlhfRkxBR19JTlNO MTZfQlNJREUgJiYgZnVuY191bml0X3NpZGUgPT0gMSkKLSAJICAgICAgZnVuY191bml0X2Nyb3Nz ID0gMTsKLSAKLS0JICBzbnByaW50ZiAoZnVuY191bml0X2J1ZiwgNywgIiAuJWMldSVzJXMiLCBm dW5jX3VuaXRfY2hhciwKLS0JCSAgICBmdW5jX3VuaXRfc2lkZSwgKGZ1bmNfdW5pdF9jcm9zcyA/ ICJYIiA6ICIiKSwgZGF0YV9zdHIpOwotKwkgIHNucHJpbnRmIChmdW5jX3VuaXRfYnVmLCBzaXpl b2YgZnVuY191bml0X2J1ZiwgIiAuJWMldSVzJXMiLAotKwkJICAgIGZ1bmNfdW5pdF9jaGFyLCBm dW5jX3VuaXRfc2lkZSwKLSsJCSAgICAoZnVuY191bml0X2Nyb3NzID8gIlgiIDogIiIpLCBkYXRh X3N0cik7Ci0gCSAgZnVuY191bml0ID0gZnVuY191bml0X2J1ZjsKLSAJfQotIAotCi0KLQotY29t bWl0IGRiN2I1NWZhYTFhMTFlNjMyZGRmNTc1MDVjOWJiNjRiYzc4MzQ3MWEKLUF1dGhvcjogTmlj ayBDbGlmdG9uIDxuaWNrY0ByZWRoYXQuY29tPgotRGF0ZTogICBGcmkgRGVjIDE2IDEwOjU5OjM2 IDIwMTYgKzAwMDAKLQotICAgIEZpeCBjb21waWxlIHRpbWUgd2FybmluZyBidWlsZGluZyBhcm0t ZGlzLmMKLQotIyMjIGEvb3Bjb2Rlcy9DaGFuZ2VMb2cKLSMjIyBiL29wY29kZXMvQ2hhbmdlTG9n Ci0jIyAtMSwzICsxLDggQEAKLSsyMDE2LTEyLTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRo YXQuY29tPgotKwotKwkqIGFybS1kaXMuYyAocHJpbnRfaW5zbl90aHVtYjMyKTogRml4IGNvbXBp bGUgdGltZSB3YXJuaW5nCi0rCWNvbXB1dGluZyB2YWx1ZV9pbl9jb21tZW50LgotKwotIDIwMTYt MTItMTQgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AaW1ndGVjLmNvbT4KLSAKLSAJKiBtaXBz LWRpcy5jIChtaXBzX2NvbnZlcnRfYWJpZmxhZ3NfYXNlcyk6IE5ldyBmdW5jdGlvbi4KLS0tLSBh L29wY29kZXMvYXJtLWRpcy5jCi0rKysgYi9vcGNvZGVzL2FybS1kaXMuYwotQEAgLTU3NTksNyAr NTc1OSw3IEBAIHByaW50X2luc25fdGh1bWIzMiAoYmZkX3ZtYSBwYywgc3RydWN0IGRpc2Fzc2Vt YmxlX2luZm8gKmluZm8sIGxvbmcgZ2l2ZW4pCi0gCQkgICAgICBpZiAob2ZmIHx8ICFVKQotIAkJ CXsKLSAJCQkgIGZ1bmMgKHN0cmVhbSwgIiwgIyVjJXUiLCBVID8gJysnIDogJy0nLCBvZmYgKiA0 KTsKLS0JCQkgIHZhbHVlX2luX2NvbW1lbnQgPSBvZmYgKiA0ICogVSA/IDEgOiAtMTsKLSsJCQkg IHZhbHVlX2luX2NvbW1lbnQgPSAob2ZmICYmIFUpID8gMSA6IC0xOwotIAkJCX0KLSAJCSAgICAg IGZ1bmMgKHN0cmVhbSwgIl0iKTsKLSAJCSAgICAgIGlmIChXKQotQEAgLTU3NzEsNyArNTc3MSw3 IEBAIHByaW50X2luc25fdGh1bWIzMiAoYmZkX3ZtYSBwYywgc3RydWN0IGRpc2Fzc2VtYmxlX2lu Zm8gKmluZm8sIGxvbmcgZ2l2ZW4pCi0gCQkgICAgICBpZiAoVykKLSAJCQl7Ci0gCQkJICBmdW5j IChzdHJlYW0sICIjJWMldSIsIFUgPyAnKycgOiAnLScsIG9mZiAqIDQpOwotLQkJCSAgdmFsdWVf aW5fY29tbWVudCA9IG9mZiAqIDQgKiBVID8gMSA6IC0xOwotKwkJCSAgdmFsdWVfaW5fY29tbWVu dCA9IChvZmYgJiYgVSkgPyAxIDogLTE7Ci0gCQkJfQotIAkJICAgICAgZWxzZQotIAkJCXsKLQot Ci0KLWNvbW1pdCA5N2U2NGU1YWIxOWRiZjZhOWJhYmQ3MTFlOGRlZWM1NTQ1NTIwOTU0Ci1BdXRo b3I6IFlhbyBRaSA8eWFvLnFpQGxpbmFyby5vcmc+Ci1EYXRlOiAgIEZyaSBTZXAgMjMgMTc6Mjc6 MjYgMjAxNiArMDEwMAotCi0gICAgUmVwbGFjZSBzcHJpbnRmIHdpdGggeHNucHJpbnRmIGluIG5h dC9saW51eC1vc2RhdGEuYwotICAgIAotICAgIEkgc2VlIHRoZSBmb2xsb3dpbmcgYnVpbGQgd2Fy bmluZyB3aGVuIEkgYnVpbGQgR0RCIHdpdGggR0NDIHRydW5rLgotICAgIAotICAgIC4uLy4uL2Jp bnV0aWxzLWdkYi9nZGIvbmF0L2xpbnV4LW9zZGF0YS5jOiBJbiBmdW5jdGlvbiDigJhMT05HRVNU IGxpbnV4X3hmZXJfb3NkYXRhX2ZkcyhnZGJfYnl0ZSosIFVMT05HRVNULCBVTE9OR0VTVCnigJk6 Ci0gICAgLi4vLi4vYmludXRpbHMtZ2RiL2dkYi9uYXQvbGludXgtb3NkYXRhLmM6NzY3OjE6IGVy cm9yOiDigJglc+KAmSBkaXJlY3RpdmUgd3JpdGluZyBiZXR3ZWVuIDAgYW5kIDI1NSBieXRlcyBp bnRvIGEgcmVnaW9uIG9mIHNpemUgMTEgWy1XZXJyb3I9Zm9ybWF0LWxlbmd0aD1dCi0gICAgIGxp bnV4X3hmZXJfb3NkYXRhX2ZkcyAoZ2RiX2J5dGUgKnJlYWRidWYsCi0gICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fgotICAgIC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIvbmF0L2xpbnV4LW9zZGF0YS5j OjgwMDo1MTogbm90ZTogZm9ybWF0IG91dHB1dCBiZXR3ZWVuIDcgYW5kIDI2MiBieXRlcyBpbnRv IGEgZGVzdGluYXRpb24gb2Ygc2l6ZSAxNwotICAgICAgICAgICAgc3ByaW50ZiAocHJvY2VudHJ5 LCAiL3Byb2MvJXMiLCBkcC0+ZF9uYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi0gICAgLi4vLi4vYmludXRpbHMtZ2RiL2dkYi9u YXQvbGludXgtb3NkYXRhLmM6IEluIGZ1bmN0aW9uIOKAmExPTkdFU1QgbGludXhfeGZlcl9vc2Rh dGFfdGhyZWFkcyhnZGJfYnl0ZSosIFVMT05HRVNULCBVTE9OR0VTVCnigJk6Ci0gICAgLi4vLi4v YmludXRpbHMtZ2RiL2dkYi9uYXQvbGludXgtb3NkYXRhLmM6NTU1OjE6IGVycm9yOiDigJglc+KA mSBkaXJlY3RpdmUgd3JpdGluZyBiZXR3ZWVuIDAgYW5kIDI1NSBieXRlcyBpbnRvIGEgcmVnaW9u IG9mIHNpemUgMTEgWy1XZXJyb3I9Zm9ybWF0LWxlbmd0aD1dCi0gICAgIGxpbnV4X3hmZXJfb3Nk YXRhX3RocmVhZHMgKGdkYl9ieXRlICpyZWFkYnVmLAotICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+Ci0gICAgLi4vLi4vYmludXRpbHMtZ2RiL2dkYi9uYXQvbGludXgtb3NkYXRhLmM6NTg4 OjUxOiBub3RlOiBmb3JtYXQgb3V0cHV0IGJldHdlZW4gNyBhbmQgMjYyIGJ5dGVzIGludG8gYSBk ZXN0aW5hdGlvbiBvZiBzaXplIDE3Ci0gICAgICAgICAgICBzcHJpbnRmIChwcm9jZW50cnksICIv cHJvYy8lcyIsIGRwLT5kX25hbWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KLSAgICBjYzFwbHVzOiBhbGwgd2FybmluZ3MgYmVpbmcg dHJlYXRlZCBhcyBlcnJvcnMKLSAgICAKLSAgICBUaGUgd2FybmluZyBpcyBhIGZhbHNlIHBvc2l0 aXZlLCBidXQgd2UgY2FuIHdvcmthcm91bmQgaXQgYnkgcmVwbGFjaW5nCi0gICAgc3ByaW50ZiB3 aXRoIHhzbnByaW50Zi4gIE9uIHRoZSBvdGhlciBoYW5kLCBpdCBpcyBhbHdheXMgcHJlZmVycmVk IHRvCi0gICAgdXNlIHhzbnByaW50Zi4KLSAgICAKLSAgICBnZGI6Ci0gICAgCi0gICAgMjAxNi0w OS0yMyAgWWFvIFFpICA8eWFvLnFpQGxpbmFyby5vcmc+Ci0gICAgCi0gICAgICAgICAgICAqIG5h dC9saW51eC1vc2RhdGEuYyAobGludXhfeGZlcl9vc2RhdGFfdGhyZWFkcyk6IFJlcGxhY2UKLSAg ICAgICAgICAgIHNwcmludGYgd2l0aCB4c25wcmludGYuCi0gICAgICAgICAgICAobGludXhfeGZl cl9vc2RhdGFfZmRzKTogTGlrZXdpc2UuCi0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dk Yi9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsOSBAQAotKzIwMTYtMDktMjMgIFlhbyBRaSAgPHlhby5x aUBsaW5hcm8ub3JnPgotKwotKwkqIG5hdC9saW51eC1vc2RhdGEuYyAobGludXhfeGZlcl9vc2Rh dGFfdGhyZWFkcyk6IFJlcGxhY2UKLSsJc3ByaW50ZiB3aXRoIHhzbnByaW50Zi4KLSsJKGxpbnV4 X3hmZXJfb3NkYXRhX2Zkcyk6IExpa2V3aXNlLgotKwotIDIwMTYtMDktMjMgIFBlZHJvIEFsdmVz ICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0gCi0gCSogTWFrZWZpbGUuaW4gKFNGSUxFUyk6IEFkZCBj b21tb24vbmV3LW9wLmMuCi0tLS0gYS9nZGIvbmF0L2xpbnV4LW9zZGF0YS5jCi0rKysgYi9nZGIv bmF0L2xpbnV4LW9zZGF0YS5jCi1AQCAtNTg1LDcgKzU4NSw4IEBAIGxpbnV4X3hmZXJfb3NkYXRh X3RocmVhZHMgKGdkYl9ieXRlICpyZWFkYnVmLAotIAkJICB8fCBOQU1FTEVOIChkcCkgPiBzaXpl b2YgKCI0Mjk0OTY3Mjk1IikgLSAxKQotIAkJY29udGludWU7Ci0gCi0tCSAgICAgIHNwcmludGYg KHByb2NlbnRyeSwgIi9wcm9jLyVzIiwgZHAtPmRfbmFtZSk7Ci0rCSAgICAgIHhzbnByaW50ZiAo cHJvY2VudHJ5LCBzaXplb2YgKHByb2NlbnRyeSksICIvcHJvYy8lcyIsCi0rCQkJIGRwLT5kX25h bWUpOwotIAkgICAgICBpZiAoc3RhdCAocHJvY2VudHJ5LCAmc3RhdGJ1ZikgPT0gMAotIAkJICAm JiBTX0lTRElSIChzdGF0YnVmLnN0X21vZGUpKQotIAkJewotQEAgLTc5Nyw3ICs3OTgsOCBAQCBs aW51eF94ZmVyX29zZGF0YV9mZHMgKGdkYl9ieXRlICpyZWFkYnVmLAotIAkJICB8fCBOQU1FTEVO IChkcCkgPiBzaXplb2YgKCI0Mjk0OTY3Mjk1IikgLSAxKQotIAkJY29udGludWU7Ci0gCi0tCSAg ICAgIHNwcmludGYgKHByb2NlbnRyeSwgIi9wcm9jLyVzIiwgZHAtPmRfbmFtZSk7Ci0rCSAgICAg IHhzbnByaW50ZiAocHJvY2VudHJ5LCBzaXplb2YgKHByb2NlbnRyeSksICIvcHJvYy8lcyIsCi0r CQkJIGRwLT5kX25hbWUpOwotIAkgICAgICBpZiAoc3RhdCAocHJvY2VudHJ5LCAmc3RhdGJ1Zikg PT0gMAotIAkJICAmJiBTX0lTRElSIChzdGF0YnVmLnN0X21vZGUpKQotIAkJewotCi0KLQotaHR0 cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTctMDIvbXNnMDAyMjYuaHRtbAot U3ViamVjdDogW09CIFBBVENIXSBGaXggTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlCi0KLVRoaXMg Y29tbWl0IGZpeGVzIGEgc2VnbWVudGF0aW9uIGZhdWx0IG9uIHRhYiBjb21wbGV0aW9uIHdoZW4K LWNlcnRhaW4gZGVidWdpbmZvIGlzIGluc3RhbGxlZDoKLQotICBodHRwczovL2J1Z3ppbGxhLnJl ZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTEzOTgzODcKLQotZ2RiL0NoYW5nZUxvZzoKLQotCSog c3ltdGFiLmMgKGFkZF9zeW10YWJfY29tcGxldGlvbnMpOiBQcmV2ZW50IE5VTEwgcG9pbnRlcgot CWRlcmVmZXJlbmNlLgotLS0tCi0gZ2RiL0NoYW5nZUxvZyB8IDUgKysrKysKLSBnZGIvc3ltdGFi LmMgIHwgMyArKysKLSAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0t Z2l0IGEvZ2RiL3N5bXRhYi5jIGIvZ2RiL3N5bXRhYi5jCi1pbmRleCAzNTZmNDgwLi4yYzE0MWU1 IDEwMDY0NAotLS0tIGEvZ2RiL3N5bXRhYi5jCi0rKysgYi9nZGIvc3ltdGFiLmMKLUBAIC01MTYz LDYgKzUxNjMsOSBAQCBhZGRfc3ltdGFiX2NvbXBsZXRpb25zIChzdHJ1Y3QgY29tcHVuaXRfc3lt dGFiICpjdXN0LAotICAgc3RydWN0IGJsb2NrX2l0ZXJhdG9yIGl0ZXI7Ci0gICBpbnQgaTsKLSAK LSsgIGlmIChjdXN0ID09IE5VTEwpCi0rICAgIHJldHVybjsKLSsKLSAgIGZvciAoaSA9IEdMT0JB TF9CTE9DSzsgaSA8PSBTVEFUSUNfQkxPQ0s7IGkrKykKLSAgICAgewotICAgICAgIFFVSVQ7Ci0t LSAKLTEuOC4zLjEKLQoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtZm9ydHJhbi1zdHJpZGVz LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC1mb3J0cmFuLXN0cmlkZXMucGF0Y2gKaW5kZXggMDQ3OTIw MC4uMTk0ZDhmZSAxMDA2NDQKLS0tIGEvZ2RiLXZsYS1pbnRlbC1mb3J0cmFuLXN0cmlkZXMucGF0 Y2gKKysrIGIvZ2RiLXZsYS1pbnRlbC1mb3J0cmFuLXN0cmlkZXMucGF0Y2gKQEAgLTI2LDExICsy NiwxMSBAQCBkYmZkNzE0MGJmNGMwNTAwZDFmNWQxOTJiZTc4MWY4M2Y3OGY3OTIyCiAgZ2RiL3Zh bHVlLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiAgMjMgZmlsZXMg Y2hhbmdlZCwgMTI0MiBpbnNlcnRpb25zKCspLCAxODMgZGVsZXRpb25zKC0pCiAKLWRpZmYgLS1n aXQgYS9nZGIvZHdhcmYybG9jLmMgYi9nZGIvZHdhcmYybG9jLmMKLWluZGV4IDU0OGU0NjguLjU2 MGUxNmYgMTAwNjQ0Ci0tLS0gYS9nZGIvZHdhcmYybG9jLmMKLSsrKyBiL2dkYi9kd2FyZjJsb2Mu YwotQEAgLTI2MDEsMTEgKzI2MDEsMTQgQEAgZHdhcmYyX2xvY2V4cHJfYmF0b25fZXZhbCAoY29u c3Qgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uICpkbGJhdG9uLAorSW5kZXg6IGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi9kd2FyZjJsb2MuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEyLjUw LjIwMTcwMjA3Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTctMDItMDcgMjA6NDc6MzIuMTYxMDI2 MjE0ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2R3YXJmMmxvYy5jCTIwMTct MDItMDcgMjA6NDc6MzMuMTE1MDMzNDYwICswMTAwCitAQCAtMjU0MiwxMSArMjU0MiwxNCBAQAog IC8qIFNlZSBkd2FyZjJsb2MuaC4gICovCiAgCiAgaW50CkBAIC00Nyw3ICs0Nyw3IEBAIGluZGV4 IDU0OGU0NjguLjU2MGUxNmYgMTAwNjQ0CiAgICBpZiAocHJvcCA9PSBOVUxMKQogICAgICByZXR1 cm4gMDsKICAKLUBAIC0yNjI5LDcgKzI2MzIsNyBAQCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkg KGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsCitAQCAtMjU3MCw3ICsyNTczLDcgQEAK ICAKICAJCSp2YWx1ZSA9IHZhbHVlX2FzX2FkZHJlc3MgKHZhbCk7CiAgCSAgICAgIH0KQEAgLTU2 LDcgKzU2LDcgQEAgaW5kZXggNTQ4ZTQ2OC4uNTYwZTE2ZiAxMDA2NDQKICAJICB9CiAgICAgICAg fQogICAgICAgIGJyZWFrOwotQEAgLTI2NTEsNyArMjY1NCw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9w cm9wZXJ0eSAoY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKK0BAIC0yNTkyLDcgKzI1 OTUsNyBAQAogIAkgICAgaWYgKCF2YWx1ZV9vcHRpbWl6ZWRfb3V0ICh2YWwpKQogIAkgICAgICB7 CiAgCQkqdmFsdWUgPSB2YWx1ZV9hc19hZGRyZXNzICh2YWwpOwpAQCAtNjUsNyArNjUsNyBAQCBp bmRleCA1NDhlNDY4Li41NjBlMTZmIDEwMDY0NAogIAkgICAgICB9CiAgCSAgfQogICAgICAgIH0K LUBAIC0yNjU5LDggKzI2NjIsOCBAQCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0 cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsCitAQCAtMjYwMCw4ICsyNjAzLDggQEAKICAKICAgICAg Y2FzZSBQUk9QX0NPTlNUOgogICAgICAgICp2YWx1ZSA9IHByb3AtPmRhdGEuY29uc3RfdmFsOwpA QCAtNzYsNyArNzYsNyBAQCBpbmRleCA1NDhlNDY4Li41NjBlMTZmIDEwMDY0NAogICAgICBjYXNl IFBST1BfQUREUl9PRkZTRVQ6CiAgICAgICAgewogIAlzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2Jh dG9uICpiYXRvbgotQEAgLTI2ODEsMTEgKzI2ODQsMzggQEAgZHdhcmYyX2V2YWx1YXRlX3Byb3Bl cnR5IChjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAorQEAgLTI2MjIsMTEgKzI2MjUs MzggQEAKICAJICB2YWwgPSB2YWx1ZV9hdCAoYmF0b24tPm9mZnNldF9pbmZvLnR5cGUsCiAgCQkJ ICBwaW5mby0+YWRkciArIGJhdG9uLT5vZmZzZXRfaW5mby5vZmZzZXQpOwogIAkqdmFsdWUgPSB2 YWx1ZV9hc19hZGRyZXNzICh2YWwpOwpAQCAtODQsOSArODQsOCBAQCBpbmRleCA1NDhlNDY4Li41 NjBlMTZmIDEwMDY0NAogKwlyYyA9IDE7CiAgICAgICAgfQogKyAgICAgIGJyZWFrOwotICAgICB9 Ci0gCi0tICByZXR1cm4gMDsKKysgICAgfQorKwogKyAgaWYgKHJjID09IDEgJiYgaXNfc2lnbmVk ID09IDEpCiArICAgIHsKICsgICAgICAvKiBJZiB3ZSBoYXZlIGEgdmFsaWQgcmV0dXJuIGNhbmRp ZGF0ZSBhbmQgaXQncyB2YWx1ZSBpcyBzaWduZWQsCkBAIC05OSwxMCArOTgsMTEgQEAgaW5kZXgg NTQ4ZTQ2OC4uNTYwZTE2ZiAxMDA2NDQKICsgICAgICAvKiBDaGVjayBpZiBzaWduZWQgYml0IGlz IHNldCBhbmQgc2lnbi1leHRlbmQgdmFsdWVzLiAgKi8KICsgICAgICBpZiAoKnZhbHVlICYgKG5l Z19tYXNrKSkKICsJKnZhbHVlIHw9IChuZWdfbWFzayApOwotKyAgICB9CisgICAgIH0KICsgIHJl dHVybiByYzsKICt9Ci0rCisgCistICByZXR1cm4gMDsKICtpbnQKICtkd2FyZjJfZXZhbHVhdGVf cHJvcGVydHkgKGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsCiArCQkJICBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWUsCkBAIC0xMTcsMTEgKzExNywxMSBAQCBpbmRleCA1NDhlNDY4Li41 NjBlMTZmIDEwMDY0NAogIH0KICAKICAvKiBTZWUgZHdhcmYybG9jLmguICAqLwotZGlmZiAtLWdp dCBhL2dkYi9kd2FyZjJsb2MuaCBiL2dkYi9kd2FyZjJsb2MuaAotaW5kZXggZmE4MzQ1OS4uZGE2 YjljZCAxMDA2NDQKLS0tLSBhL2dkYi9kd2FyZjJsb2MuaAotKysrIGIvZ2RiL2R3YXJmMmxvYy5o Ci1AQCAtMTM4LDYgKzEzOCwxMiBAQCBpbnQgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChjb25z dCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi9kd2FyZjJsb2MuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9y aWcvZ2RiL2R3YXJmMmxvYy5oCTIwMTctMDItMDcgMjA6NDc6MzIuMTYyMDI2MjIyICswMTAwCisr KysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2R3YXJmMmxvYy5oCTIwMTctMDItMDcgMjA6NDc6 MzMuMTE1MDMzNDYwICswMTAwCitAQCAtMTM4LDYgKzEzOCwxMiBAQAogIAkJCSAgICAgIHN0cnVj dCBwcm9wZXJ0eV9hZGRyX2luZm8gKmFkZHJfc3RhY2ssCiAgCQkJICAgICAgQ09SRV9BRERSICp2 YWx1ZSk7CiAgCkBAIC0xMzQsMTEgKzEzNCwxMSBAQCBpbmRleCBmYTgzNDU5Li5kYTZiOWNkIDEw MDY0NAogIC8qIEEgaGVscGVyIGZvciB0aGUgY29tcGlsZXIgaW50ZXJmYWNlIHRoYXQgY29tcGls ZXMgYSBzaW5nbGUgZHluYW1pYwogICAgIHByb3BlcnR5IHRvIEMgY29kZS4KICAKLWRpZmYgLS1n aXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5kZXggNjY1OGEzOC4u YTFhYzY1OSAxMDA2NDQKLS0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKLSsrKyBiL2dkYi9kd2FyZjJy ZWFkLmMKLUBAIC0xNDk1Miw3ICsxNDk1Miw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjA3L2dkYi9kd2FyZjJyZWFkLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4y MDE3MDIwNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNy0wMi0wNyAyMDo0NzozMi4xNjgwMjYy NjggKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZHdhcmYycmVhZC5jCTIwMTct MDItMDcgMjA6NDc6MzMuMTIwMDMzNDk4ICswMTAwCitAQCAtMTQ5MjQsNyArMTQ5MjQsNyBAQAog ICAgc3RydWN0IHR5cGUgKmJhc2VfdHlwZSwgKm9yaWdfYmFzZV90eXBlOwogICAgc3RydWN0IHR5 cGUgKnJhbmdlX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtMTQ3LDcgKzE0 Nyw3IEBAIGluZGV4IDY2NThhMzguLmExYWM2NTkgMTAwNjQ0CiAgICBpbnQgbG93X2RlZmF1bHRf aXNfdmFsaWQ7CiAgICBpbnQgaGlnaF9ib3VuZF9pc19jb3VudCA9IDA7CiAgICBjb25zdCBjaGFy ICpuYW1lOwotQEAgLTE0OTcyLDcgKzE0OTcyLDkgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTQ5NDQsNyArMTQ5 NDQsOSBAQAogIAogICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5raW5kID0gUFJP UF9DT05TVDsKQEAgLTE1Nyw3ICsxNTcsNyBAQCBpbmRleCA2NjU4YTM4Li5hMWFjNjU5IDEwMDY0 NAogIAogICAgLyogU2V0IExPV19ERUZBVUxUX0lTX1ZBTElEIGlmIGN1cnJlbnQgbGFuZ3VhZ2Ug YW5kIERXQVJGIHZlcnNpb24gYWxsb3cKICAgICAgIG9taXR0aW5nIERXX0FUX2xvd2VyX2JvdW5k LiAgKi8KLUBAIC0xNTAwNiw2ICsxNTAwOCwxMyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xNDk3Nyw2ICsxNDk3 OSwxMyBAQAogICAgICAgIGJyZWFrOwogICAgICB9CiAgCkBAIC0xNzEsNyArMTcxLDcgQEAgaW5k ZXggNjY1OGEzOC4uYTFhYzY1OSAxMDA2NDQKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBE V19BVF9sb3dlcl9ib3VuZCwgY3UpOwogICAgaWYgKGF0dHIpCiAgICAgIGF0dHJfdG9fZHluYW1p Y19wcm9wIChhdHRyLCBkaWUsIGN1LCAmbG93KTsKLUBAIC0xNTA4Miw3ICsxNTA5MSw3IEBAIHJl YWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTE1MDUzLDcgKzE1MDYyLDcgQEAKICAgICAgICAmJiAhVFlQRV9VTlNJR05FRCAo YmFzZV90eXBlKSAmJiAoaGlnaC5kYXRhLmNvbnN0X3ZhbCAmIG5lZ2F0aXZlX21hc2spKQogICAg ICBoaWdoLmRhdGEuY29uc3RfdmFsIHw9IG5lZ2F0aXZlX21hc2s7CiAgCkBAIC0xODAsMTEgKzE4 MCwxMSBAQCBpbmRleCA2NjU4YTM4Li5hMWFjNjU5IDEwMDY0NAogIAogICAgaWYgKGhpZ2hfYm91 bmRfaXNfY291bnQpCiAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmZsYWdfdXBw ZXJfYm91bmRfaXNfY291bnQgPSAxOwotZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZh bC5jCi1pbmRleCAwMGExMDdjLi45MWQ4YTAzIDEwMDY0NAotLS0tIGEvZ2RiL2V2YWwuYwotKysr IGIvZ2RiL2V2YWwuYwotQEAgLTM5OSwyOSArMzk5LDMyNSBAQCBpbml0X2FycmF5X2VsZW1lbnQg KHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCB2YWx1ZSAqZWxlbWVudCwKK0luZGV4OiBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvZXZhbC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAu MjAxNzAyMDcub3JpZy9nZGIvZXZhbC5jCTIwMTctMDItMDcgMjA6NDc6MzIuMTcwMDI2MjgzICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2V2YWwuYwkyMDE3LTAyLTA3IDIwOjQ3 OjMzLjEyMTAzMzUwNiArMDEwMAorQEAgLTM3OSwyOSArMzc5LDMyNSBAQAogICAgcmV0dXJuIGlu ZGV4OwogIH0KICAKQEAgLTIwOSwxMSArMjA5LDYgQEAgaW5kZXggMDBhMTA3Yy4uOTFkOGEwMyAx MDA2NDQKIC0gICAgPSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRz W3BjXS5sb25nY29uc3QpOwogLSAKIC0gICpwb3MgKz0gMzsKLS0KLS0gIGlmIChyYW5nZV90eXBl ID09IExPV19CT1VORF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxU KQotLSAgICBsb3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2UpOwotLSAgZWxzZQotLSAg ICBsb3dfYm91bmQgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwg ZXhwLCBwb3MsIG5vc2lkZSkpOwogKyAgc3RydWN0IHZhbHVlICpuZXdfYXJyYXkgPSBhcnJheTsK ICsgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo bmV3X2FycmF5KSk7CiArICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGU7CkBAIC0yNjgsMTcgKzI2Mywy MSBAQCBpbmRleCAwMGExMDdjLi45MWQ4YTAzIDEwMDY0NAogKyAgICB7CiArICAgICAgc3RydWN0 IHN1YnNjcmlwdF9zdG9yZSAqaW5kZXggPSAmc3Vic2NyaXB0X2FycmF5W2ldOwogIAotLSAgaWYg KHJhbmdlX3R5cGUgPT0gSElHSF9CT1VORF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9C T1VORF9ERUZBVUxUKQotLSAgICBoaWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChyYW5nZSk7 CistICBpZiAocmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVGQVVMVCB8fCByYW5nZV90eXBlID09 IEJPVEhfQk9VTkRfREVGQVVMVCkKKy0gICAgbG93X2JvdW5kID0gVFlQRV9MT1dfQk9VTkQgKHJh bmdlKTsKIC0gIGVsc2UKLS0gICAgaGlnaF9ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRl X3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKSk7CistICAgIGxvd19ib3VuZCA9 IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9z aWRlKSk7CiArICAgICAgLyogVGhlIHVzZXIgaW5wdXQgaXMgYSByYW5nZSwgd2l0aCBvciB3aXRo b3V0IGxvd2VyIGFuZCB1cHBlciBib3VuZC4KICsJIEUuZy46ICJwIGFycnkoMjo1KSIsICJwIGFy cnkoIDo1KSIsICJwIGFycnkoIDogKSIsIGV0Yy4gICovCiArICAgICAgaWYgKGV4cC0+ZWx0c1sq cG9zXS5vcGNvZGUgPT0gT1BfUkFOR0UpCiArCXsKICsJICBpbnQgcGMgPSAoKnBvcykgKyAxOwog KwkgIHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2U7Ci0rCisgCistICBpZiAocmFuZ2VfdHlwZSA9PSBI SUdIX0JPVU5EX0RFRkFVTFQgfHwgcmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpCist ICAgIGhpZ2hfYm91bmQgPSBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlKTsKKy0gIGVsc2UKKy0gICAg aGlnaF9ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBl eHAsIHBvcywgbm9zaWRlKSk7CiArCSAgaW5kZXgtPmtpbmQgPSBTVUJTQ1JJUFRfUkFOR0U7CiAr CSAgcmFuZ2UgPSAmaW5kZXgtPlUucmFuZ2U7CiArCkBAIC0zNzIsNyArMzcxLDggQEAgaW5kZXgg MDBhMTA3Yy4uOTFkOGEwMyAxMDA2NDQKICsKICsJY2FzZSBTVUJTQ1JJUFRfSU5ERVg6CiArCSAg YnJlYWs7Ci0rCisgCistICByZXR1cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3dfYm91bmQsIGhp Z2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKICsJfQogKwogKyAgICAgICBhcnJheV90eXBlID0g VFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CkBAIC00OTIsOCArNDkyLDcgQEAgaW5kZXgg MDBhMTA3Yy4uOTFkOGEwMyAxMDA2NDQKICsJICAgICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUs ICppbnRlcmltX2FycmF5X3R5cGU7CiArCiArCSAgICAgIGludCBuZXdfbGVuZ3RoOwotIAotLSAg cmV0dXJuIHZhbHVlX3NsaWNlIChhcnJheSwgbG93X2JvdW5kLCBoaWdoX2JvdW5kIC0gbG93X2Jv dW5kICsgMSk7CisrCiArCSAgICAgIC8qIFRoZSBsZW5ndGggb2YgYSBzdWItZGltZW5zaW9uIHdp dGggYWxsIGVsZW1lbnRzIGJldHdlZW4gdGhlCiArCQkgYm91bmRzIHBsdXMgdGhlIHN0YXJ0IGVs ZW1lbnQgaXRzZWxmLiAgSXQgbWF5IGJlIG1vZGlmaWVkIGJ5CiArCQkgYSB1c2VyIHByb3ZpZGVk IHN0cmlkZSB2YWx1ZS4gICovCkBAIC01MjgsNyArNTI3LDcgQEAgaW5kZXggMDBhMTA3Yy4uOTFk OGEwMyAxMDA2NDQKICB9CiAgCiAgCi1AQCAtMTgxMCwxOSArMjEwNiw4IEBAIGV2YWx1YXRlX3N1 YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTE3OTAsMTkgKzIw ODYsOCBAQAogICAgICAgIHN3aXRjaCAoY29kZSkKICAJewogIAljYXNlIFRZUEVfQ09ERV9BUlJB WToKQEAgLTU0OSw3ICs1NDgsNyBAQCBpbmRleCAwMGExMDdjLi45MWQ4YTAzIDEwMDY0NAogIAog IAljYXNlIFRZUEVfQ09ERV9QVFI6CiAgCWNhc2UgVFlQRV9DT0RFX0ZVTkM6Ci1AQCAtMjIyMyw0 OSArMjUwOCw2IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVj dF90eXBlLAorQEAgLTIyMDMsNDkgKzI0ODgsNiBAQAogIAl9CiAgICAgICAgcmV0dXJuIChhcmcx KTsKICAKQEAgLTU5OSw3ICs1OTgsNyBAQCBpbmRleCAwMGExMDdjLi45MWQ4YTAzIDEwMDY0NAog ICAgICBjYXNlIEJJTk9QX0xPR0lDQUxfQU5EOgogICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJl eHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSk7CiAgICAgICAgaWYgKG5vc2lkZSA9PSBF VkFMX1NLSVApCi1AQCAtMzEyMyw2ICszMzY1LDkgQEAgY2FsY19mNzdfYXJyYXlfZGltcyAoc3Ry dWN0IHR5cGUgKmFycmF5X3R5cGUpCitAQCAtMzEwMiw2ICszMzQ0LDkgQEAKICAgIGludCBuZGlt ZW4gPSAxOwogICAgc3RydWN0IHR5cGUgKnRtcF90eXBlOwogIApAQCAtNjA5LDExICs2MDgsMTEg QEAgaW5kZXggMDBhMTA3Yy4uOTFkOGEwMyAxMDA2NDQKICAgIGlmICgoVFlQRV9DT0RFIChhcnJh eV90eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkpKQogICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRp bWVuc2lvbnMgZm9yIGEgbm9uLWFycmF5IHR5cGUiKSk7CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL2V4 cHByaW50LmMgYi9nZGIvZXhwcHJpbnQuYwotaW5kZXggYzM3ZWNiMC4uMjE0ZDU4ZSAxMDA2NDQK LS0tLSBhL2dkYi9leHBwcmludC5jCi0rKysgYi9nZGIvZXhwcHJpbnQuYwotQEAgLTU2OCwxMiAr NTY4LDEwIEBAIHByaW50X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwg aW50ICpwb3MsCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2V4cHByaW50LmMKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9leHBwcmludC5jCTIw MTctMDItMDcgMjA6NDc6MzIuMTcwMDI2MjgzICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL2V4cHByaW50LmMJMjAxNy0wMi0wNyAyMDo0NzozMy4xMjEwMzM1MDYgKzAxMDAKK0BA IC01NjgsMTIgKzU2OCwxMCBAQAogIAkqcG9zICs9IDI7CiAgCiAgCWZwdXRzX2ZpbHRlcmVkICgi UkFOR0UoIiwgc3RyZWFtKTsKQEAgLTYyOCw3ICs2MjcsNyBAQCBpbmRleCBjMzdlY2IwLi4yMTRk NThlIDEwMDY0NAogIAkgIHByaW50X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9W RV9DT01NQSk7CiAgCWZwdXRzX2ZpbHRlcmVkICgiKSIsIHN0cmVhbSk7CiAgCXJldHVybjsKLUBA IC0xMDU1LDE2ICsxMDUzLDE2IEBAIGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBl eHByZXNzaW9uICpleHAsCitAQCAtMTA1NSwxNiArMTA1MywxNiBAQAogIAogIAlzd2l0Y2ggKHJh bmdlX3R5cGUpCiAgCSAgewpAQCAtNjQ5LDcgKzY0OCw3IEBAIGluZGV4IGMzN2VjYjAuLjIxNGQ1 OGUgMTAwNjQ0CiAgCSAgICBmcHV0c19maWx0ZXJlZCAoIlJhbmdlICdFWFAuLkVYUCciLCBzdHJl YW0pOwogIAkgICAgYnJlYWs7CiAgCSAgZGVmYXVsdDoKLUBAIC0xMDcyLDExICsxMDcwLDkgQEAg ZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC0x MDcyLDExICsxMDcwLDkgQEAKICAJICAgIGJyZWFrOwogIAkgIH0KICAKQEAgLTY2MywxMSArNjYy LDExIEBAIGluZGV4IGMzN2VjYjAuLjIxNGQ1OGUgMTAwNjQ0CiAgCSAgZWx0ID0gZHVtcF9zdWJl eHAgKGV4cCwgc3RyZWFtLCBlbHQpOwogICAgICAgIH0KICAgICAgICBicmVhazsKLWRpZmYgLS1n aXQgYS9nZGIvZXhwcmVzc2lvbi5oIGIvZ2RiL2V4cHJlc3Npb24uaAotaW5kZXggNDk1MmQ4NC4u MzRjYTU0YiAxMDA2NDQKLS0tLSBhL2dkYi9leHByZXNzaW9uLmgKLSsrKyBiL2dkYi9leHByZXNz aW9uLmgKLUBAIC0xNTIsMTcgKzE1MiwxNyBAQCBleHRlcm4gdm9pZCBkdW1wX3Jhd19leHByZXNz aW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dk Yi9leHByZXNzaW9uLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmln L2dkYi9leHByZXNzaW9uLmgJMjAxNy0wMi0wNyAyMDo0NzozMi4xNzAwMjYyODMgKzAxMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZXhwcmVzc2lvbi5oCTIwMTctMDItMDcgMjA6NDc6 MzMuMTIxMDMzNTA2ICswMTAwCitAQCAtMTU0LDE3ICsxNTQsMTcgQEAKICAJCQkJIHN0cnVjdCB1 aV9maWxlICosIGNoYXIgKik7CiAgZXh0ZXJuIHZvaWQgZHVtcF9wcmVmaXhfZXhwcmVzc2lvbiAo c3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7CiAgCkBAIC02OTQsMTEgKzY5 MywxMSBAQCBpbmRleCA0OTUyZDg0Li4zNGNhNTRiIDEwMDY0NAogICAgfTsKICAKICAjZW5kaWYg LyogIWRlZmluZWQgKEVYUFJFU1NJT05fSCkgKi8KLWRpZmYgLS1naXQgYS9nZGIvZi1leHAueSBi L2dkYi9mLWV4cC55Ci1pbmRleCBlMzE0OGEzLi43MWYxODIzIDEwMDY0NAotLS0tIGEvZ2RiL2Yt ZXhwLnkKLSsrKyBiL2dkYi9mLWV4cC55Ci1AQCAtMjUzLDMxICsyNTMsNjMgQEAgYXJnbGlzdCA6 CXN1YnJhbmdlCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2YtZXhwLnkKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9mLWV4cC55CTIwMTctMDIt MDcgMjA6NDc6MzIuMTcxMDI2MjkwICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2Ri L2YtZXhwLnkJMjAxNy0wMi0wNyAyMDo0NzozMy4xMjEwMzM1MDYgKzAxMDAKK0BAIC0yNTQsMzEg KzI1NCw2MyBAQAogICAgIAogIGFyZ2xpc3QJOglhcmdsaXN0ICcsJyBleHAgICAlcHJlYyBBQk9W RV9DT01NQQogIAkJCXsgYXJnbGlzdF9sZW4rKzsgfQpAQCAtNzY3LDExICs3NjYsMTEgQEAgaW5k ZXggZTMxNDhhMy4uNzFmMTgyMyAxMDA2NDQKICAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChw c3RhdGUsIE9QX1JBTkdFKTsgfQogIAk7CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL2YtdmFscHJpbnQu YyBiL2dkYi9mLXZhbHByaW50LmMKLWluZGV4IDA4MjE1ZTIuLmU2ZWNhNmEgMTAwNjQ0Ci0tLS0g YS9nZGIvZi12YWxwcmludC5jCi0rKysgYi9nZGIvZi12YWxwcmludC5jCi1AQCAtMTIxLDggKzEy MSwxNCBAQCBmNzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1lbnNpb25zLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZi12YWxwcmlu dC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvZi12YWxw cmludC5jCTIwMTctMDItMDcgMjA6NDc6MzIuMTcxMDI2MjkwICswMTAwCisrKysgZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL2YtdmFscHJpbnQuYwkyMDE3LTAyLTA3IDIwOjQ3OjMzLjEyMjAzMzUx MyArMDEwMAorQEAgLTEyMSw4ICsxMjEsMTQgQEAKICAKICAgIGlmIChuc3MgIT0gbmRpbWVuc2lv bnMpCiAgICAgIHsKQEAgLTc4NywxMSArNzg2LDExIEBAIGluZGV4IDA4MjE1ZTIuLmU2ZWNhNmEg MTAwNjQ0CiAgCiAgICAgICAgZm9yIChpID0gbG93ZXJib3VuZDsKICAJICAgKGkgPCB1cHBlcmJv dW5kICsgMSAmJiAoKmVsdHMpIDwgb3B0aW9ucy0+cHJpbnRfbWF4KTsKLWRpZmYgLS1naXQgYS9n ZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCi1pbmRleCBlYzVjMTdhLi5lYjgzNzkxIDEw MDY0NAotLS0tIGEvZ2RiL2dkYnR5cGVzLmMKLSsrKyBiL2dkYi9nZGJ0eXBlcy5jCi1AQCAtODM2 LDcgKzgzNiw4IEBAIGFsbG9jYXRlX3N0dWJfbWV0aG9kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKK0lu ZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZ2RidHlwZXMuYworPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNy0wMi0wNyAyMDo0 NzozMi4xNzMwMjYzMDYgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZ2RidHlw ZXMuYwkyMDE3LTAyLTA3IDIwOjQ3OjMzLjEyMzAzMzUyMSArMDEwMAorQEAgLTgzNiw3ICs4MzYs OCBAQAogIHN0cnVjdCB0eXBlICoKICBjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJl c3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKICAJCSAgIGNvbnN0IHN0cnVjdCBk eW5hbWljX3Byb3AgKmxvd19ib3VuZCwKQEAgLTgwMSw3ICs4MDAsNyBAQCBpbmRleCBlYzVjMTdh Li5lYjgzNzkxIDEwMDY0NAogIHsKICAgIGlmIChyZXN1bHRfdHlwZSA9PSBOVUxMKQogICAgICBy ZXN1bHRfdHlwZSA9IGFsbG9jX3R5cGVfY29weSAoaW5kZXhfdHlwZSk7Ci1AQCAtODUxLDYgKzg1 Miw3IEBAIGNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGUsIHN0cnVj dCB0eXBlICppbmRleF90eXBlLAorQEAgLTg1MSw2ICs4NTIsNyBAQAogICAgICBUWVBFX1pBTExP QyAocmVzdWx0X3R5cGUsIHNpemVvZiAoc3RydWN0IHJhbmdlX2JvdW5kcykpOwogICAgVFlQRV9S QU5HRV9EQVRBIChyZXN1bHRfdHlwZSktPmxvdyA9ICpsb3dfYm91bmQ7CiAgICBUWVBFX1JBTkdF X0RBVEEgKHJlc3VsdF90eXBlKS0+aGlnaCA9ICpoaWdoX2JvdW5kOwpAQCAtODA5LDcgKzgwOCw3 IEBAIGluZGV4IGVjNWMxN2EuLmViODM3OTEgMTAwNjQ0CiAgCiAgICBpZiAobG93X2JvdW5kLT5r aW5kID09IFBST1BfQ09OU1QgJiYgbG93X2JvdW5kLT5kYXRhLmNvbnN0X3ZhbCA+PSAwKQogICAg ICBUWVBFX1VOU0lHTkVEIChyZXN1bHRfdHlwZSkgPSAxOwotQEAgLTg3OSw3ICs4ODEsNyBAQCBz dHJ1Y3QgdHlwZSAqCitAQCAtODc5LDcgKzg4MSw3IEBACiAgY3JlYXRlX3N0YXRpY19yYW5nZV90 eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGUsIHN0cnVjdCB0eXBlICppbmRleF90eXBlLAog IAkJCSAgTE9OR0VTVCBsb3dfYm91bmQsIExPTkdFU1QgaGlnaF9ib3VuZCkKICB7CkBAIC04MTgs NyArODE3LDcgQEAgaW5kZXggZWM1YzE3YS4uZWI4Mzc5MSAxMDA2NDQKICAKICAgIGxvdy5raW5k ID0gUFJPUF9DT05TVDsKICAgIGxvdy5kYXRhLmNvbnN0X3ZhbCA9IGxvd19ib3VuZDsKLUBAIC04 ODcsNyArODg5LDExIEBAIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJl c3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKK0BAIC04ODcsNyArODg5LDExIEBA CiAgICBoaWdoLmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5kYXRhLmNvbnN0X3ZhbCA9IGhp Z2hfYm91bmQ7CiAgCkBAIC04MzEsNyArODMwLDcgQEAgaW5kZXggZWM1YzE3YS4uZWI4Mzc5MSAx MDA2NDQKICAKICAgIHJldHVybiByZXN1bHRfdHlwZTsKICB9Ci1AQCAtMTA4NCwxNiArMTA5MCwy MCBAQCBjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0cmlkZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90 eXBlLAorQEAgLTEwODQsMTYgKzEwOTAsMjAgQEAKICAgICAgICAmJiAoIXR5cGVfbm90X2Fzc29j aWF0ZWQgKHJlc3VsdF90eXBlKQogIAkgICYmICF0eXBlX25vdF9hbGxvY2F0ZWQgKHJlc3VsdF90 eXBlKSkpCiAgICAgIHsKQEAgLTg1Myw3ICs4NTIsNyBAQCBpbmRleCBlYzVjMTdhLi5lYjgzNzkx IDEwMDY0NAogICAgICAgIGVsc2UgaWYgKGJpdF9zdHJpZGUgPiAwKQogIAlUWVBFX0xFTkdUSCAo cmVzdWx0X3R5cGUpID0KICAJICAoYml0X3N0cmlkZSAqIChoaWdoX2JvdW5kIC0gbG93X2JvdW5k ICsgMSkgKyA3KSAvIDg7Ci1AQCAtMTg4OCwxMiArMTg5OCwxMiBAQCByZXNvbHZlX2R5bmFtaWNf cmFuZ2UgKHN0cnVjdCB0eXBlICpkeW5fcmFuZ2VfdHlwZSwKK0BAIC0xODg2LDEyICsxODk2LDEy IEBACiAgICBDT1JFX0FERFIgdmFsdWU7CiAgICBzdHJ1Y3QgdHlwZSAqc3RhdGljX3JhbmdlX3R5 cGUsICpzdGF0aWNfdGFyZ2V0X3R5cGU7CiAgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpw cm9wOwpAQCAtODY4LDcgKzg2Nyw3IEBAIGluZGV4IGVjNWMxN2EuLmViODM3OTEgMTAwNjQ0CiAg ICAgIHsKICAgICAgICBsb3dfYm91bmQua2luZCA9IFBST1BfQ09OU1Q7CiAgICAgICAgbG93X2Jv dW5kLmRhdGEuY29uc3RfdmFsID0gdmFsdWU7Ci1AQCAtMTkwNSw3ICsxOTE1LDcgQEAgcmVzb2x2 ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluX3JhbmdlX3R5cGUsCitAQCAtMTkwMyw3 ICsxOTEzLDcgQEAKICAgICAgfQogIAogICAgcHJvcCA9ICZUWVBFX1JBTkdFX0RBVEEgKGR5bl9y YW5nZV90eXBlKS0+aGlnaDsKQEAgLTg3Nyw3ICs4NzYsNyBAQCBpbmRleCBlYzVjMTdhLi5lYjgz NzkxIDEwMDY0NAogICAgICB7CiAgICAgICAgaGlnaF9ib3VuZC5raW5kID0gUFJPUF9DT05TVDsK ICAgICAgICBoaWdoX2JvdW5kLmRhdGEuY29uc3RfdmFsID0gdmFsdWU7Ci1AQCAtMTkyMCwxMiAr MTkzMCwyMCBAQCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0eXBlICpkeW5fcmFuZ2Vf dHlwZSwKK0BAIC0xOTE4LDEyICsxOTI4LDIwIEBACiAgICAgICAgaGlnaF9ib3VuZC5kYXRhLmNv bnN0X3ZhbCA9IDA7CiAgICAgIH0KICAKQEAgLTg5OSwxMSArODk4LDExIEBAIGluZGV4IGVjNWMx N2EuLmViODM3OTEgMTAwNjQ0CiAgICBUWVBFX1JBTkdFX0RBVEEgKHN0YXRpY19yYW5nZV90eXBl KS0+ZmxhZ19ib3VuZF9ldmFsdWF0ZWQgPSAxOwogICAgcmV0dXJuIHN0YXRpY19yYW5nZV90eXBl OwogIH0KLWRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCi1pbmRl eCAyZGRhMDc0Li5iY2M5MjAwIDEwMDY0NAotLS0tIGEvZ2RiL2dkYnR5cGVzLmgKLSsrKyBiL2dk Yi9nZGJ0eXBlcy5oCi1AQCAtNTc3LDYgKzU3NywxMCBAQCBzdHJ1Y3QgcmFuZ2VfYm91bmRzCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2dkYnR5cGVzLmgKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTctMDItMDcgMjA6 NDc6MzIuMTczMDI2MzA2ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2dkYnR5 cGVzLmgJMjAxNy0wMi0wNyAyMDo0NzozMy4xMjMwMzM1MjEgKzAxMDAKK0BAIC01NTAsNiArNTUw LDEwIEBACiAgCiAgICBzdHJ1Y3QgZHluYW1pY19wcm9wIGhpZ2g7CiAgCkBAIC05MTQsNyArOTEz LDcgQEAgaW5kZXggMmRkYTA3NC4uYmNjOTIwMCAxMDA2NDQKICAgIC8qIFRydWUgaWYgSElHSCBy YW5nZSBib3VuZCBjb250YWlucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZQogICAgICAg c3VicmFuZ2UuIFRoaXMgYWZmZWN0cyBob3cgdGhlIGZpbmFsIGhpZ2h0IGJvdW5kIGlzIGNvbXB1 dGVkLiAgKi8KICAKLUBAIC03MzksNyArNzQzLDYgQEAgc3RydWN0IG1haW5fdHlwZQorQEAgLTcx Miw3ICs3MTYsNiBAQAogICAgICAvKiAqIFVuaW9uIG1lbWJlciB1c2VkIGZvciByYW5nZSB0eXBl cy4gICovCiAgCiAgICAgIHN0cnVjdCByYW5nZV9ib3VuZHMgKmJvdW5kczsKQEAgLTkyMiw3ICs5 MjEsNyBAQCBpbmRleCAyZGRhMDc0Li5iY2M5MjAwIDEwMDY0NAogICAgfSBmbGRzX2JuZHM7CiAg CiAgICAvKiAqIFNsb3QgdG8gcG9pbnQgdG8gYWRkaXRpb25hbCBsYW5ndWFnZS1zcGVjaWZpYyBm aWVsZHMgb2YgdGhpcwotQEAgLTEyNTUsNiArMTI1OCwxNSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0 ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xMjI0LDYgKzEyMjcsMTUgQEAK ICAgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+aGlnaC5raW5kCiAgI2RlZmluZSBUWVBF X0xPV19CT1VORF9LSU5EKHJhbmdlX3R5cGUpIFwKICAgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90 eXBlKS0+bG93LmtpbmQKQEAgLTkzOCw3ICs5MzcsNyBAQCBpbmRleCAyZGRhMDc0Li5iY2M5MjAw IDEwMDY0NAogIAogIC8qIFByb3BlcnR5IGFjY2Vzc29ycyBmb3IgdGhlIHR5cGUgZGF0YSBsb2Nh dGlvbi4gICovCiAgI2RlZmluZSBUWVBFX0RBVEFfTE9DQVRJT04odGhpc3R5cGUpIFwKLUBAIC0x Mjg5LDYgKzEzMDEsOSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1 Y3QgdHlwZSAqKTsKK0BAIC0xMjU4LDYgKzEyNzAsOSBAQAogICAgIFRZUEVfSElHSF9CT1VORF9V TkRFRklORUQoVFlQRV9JTkRFWF9UWVBFKGFycmF5dHlwZSkpCiAgI2RlZmluZSBUWVBFX0FSUkFZ X0xPV0VSX0JPVU5EX0lTX1VOREVGSU5FRChhcnJheXR5cGUpIFwKICAgICBUWVBFX0xPV19CT1VO RF9VTkRFRklORUQoVFlQRV9JTkRFWF9UWVBFKGFycmF5dHlwZSkpCkBAIC05NDgsNyArOTQ3LDcg QEAgaW5kZXggMmRkYTA3NC4uYmNjOTIwMCAxMDA2NDQKICAKICAjZGVmaW5lIFRZUEVfQVJSQVlf VVBQRVJfQk9VTkRfVkFMVUUoYXJyYXl0eXBlKSBcCiAgICAgKFRZUEVfSElHSF9CT1VORChUWVBF X0lOREVYX1RZUEUoKGFycmF5dHlwZSkpKSkKLUBAIC0xNzgzLDYgKzE3OTgsNyBAQCBleHRlcm4g c3RydWN0IHR5cGUgKmNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlCitAQCAtMTc2Nyw2ICsx NzgyLDcgQEAKICAKICBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1 Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqLAogIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IGR5bmFt aWNfcHJvcCAqLApAQCAtOTU2LDExICs5NTUsMTEgQEAgaW5kZXggMmRkYTA3NC4uYmNjOTIwMCAx MDA2NDQKICAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKik7CiAgCiAgZXh0 ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0 IHR5cGUgKiwKLWRpZmYgLS1naXQgYS9nZGIvcGFyc2UuYyBiL2dkYi9wYXJzZS5jCi1pbmRleCAy YjAwNzA4Li45OTJhZjg3IDEwMDY0NAotLS0tIGEvZ2RiL3BhcnNlLmMKLSsrKyBiL2dkYi9wYXJz ZS5jCi1AQCAtMTAwNiwyMiArMTAwNiwyMCBAQCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNv bnN0IHN0cnVjdCBleHByZXNzaW9uICpleHByLCBpbnQgZW5kcG9zLAorSW5kZXg6IGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi9wYXJzZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAx NzAyMDcub3JpZy9nZGIvcGFyc2UuYwkyMDE3LTAyLTA3IDIwOjQ3OjMyLjE3NDAyNjMxMyArMDEw MAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9wYXJzZS5jCTIwMTctMDItMDcgMjA6NDc6 MzMuMTI0MDMzNTI5ICswMTAwCitAQCAtMTAwNywyMiArMTAwNywyMCBAQAogIAogICAgICBjYXNl IE9QX1JBTkdFOgogICAgICAgIG9wbGVuID0gMzsKQEAgLTk5NCwxMSArOTkzLDExIEBAIGluZGV4 IDJiMDA3MDguLjk5MmFmODcgMTAwNjQ0CiAgCiAgICAgICAgYnJlYWs7CiAgCi1kaWZmIC0tZ2l0 IGEvZ2RiL3J1c3QtZXhwLnkgYi9nZGIvcnVzdC1leHAueQotaW5kZXggYWViNjA1OC4uYjFiOTYz MyAxMDA2NDQKLS0tLSBhL2dkYi9ydXN0LWV4cC55Ci0rKysgYi9nZGIvcnVzdC1leHAueQotQEAg LTI0MjksMjMgKzI0MjksMTcgQEAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAoc3RydWN0IHBh cnNlcl9zdGF0ZSAqc3RhdGUsCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3J1c3Qt ZXhwLnkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9ydXN0 LWV4cC55CTIwMTctMDItMDcgMjA6NDc6MzIuMTc0MDI2MzEzICswMTAwCisrKysgZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL3J1c3QtZXhwLnkJMjAxNy0wMi0wNyAyMDo0NzozMy4xMjQwMzM1Mjkg KzAxMDAKK0BAIC0yNDA5LDIzICsyNDA5LDE3IEBACiAgCiAgICAgIGNhc2UgT1BfUkFOR0U6CiAg ICAgICAgewpAQCAtMTAyNSwxMSArMTAyNCwxMSBAQCBpbmRleCBhZWI2MDU4Li5iMWI5NjMzIDEw MDY0NAogIAkgIH0KICAJd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHN0YXRlLCBPUF9SQU5HRSk7CiAg CXdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAoc3RhdGUsIGtpbmQpOwotZGlmZiAtLWdpdCBhL2dkYi9y dXN0LWxhbmcuYyBiL2dkYi9ydXN0LWxhbmcuYwotaW5kZXggMTdiMjBjNi4uMjk1MDAyZiAxMDA2 NDQKLS0tLSBhL2dkYi9ydXN0LWxhbmcuYwotKysrIGIvZ2RiL3J1c3QtbGFuZy5jCi1AQCAtMTI0 MSw5ICsxMjQxLDkgQEAgcnVzdF9yYW5nZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpw b3MsIGVudW0gbm9zaWRlIG5vc2lkZSkKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIv cnVzdC1sYW5nLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dk Yi9ydXN0LWxhbmcuYwkyMDE3LTAyLTA3IDIwOjQ3OjMyLjE3NTAyNjMyMSArMDEwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi9ydXN0LWxhbmcuYwkyMDE3LTAyLTA3IDIwOjQ3OjMzLjEy NTAzMzUzNiArMDEwMAorQEAgLTEzMTUsOSArMTMxNSw5IEBACiAgICBraW5kID0gKGVudW0gcmFu Z2VfdHlwZSkgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1sqcG9zICsgMV0ubG9uZ2NvbnN0KTsK ICAgICpwb3MgKz0gMzsKICAKQEAgLTEwNDEsNyArMTA0MCw3IEBAIGluZGV4IDE3YjIwYzYuLjI5 NTAwMmYgMTAwNjQ0CiAgICAgIGhpZ2ggPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhw LCBwb3MsIG5vc2lkZSk7CiAgCiAgICBpZiAobm9zaWRlID09IEVWQUxfU0tJUCkKLUBAIC0xMzMy LDcgKzEzMzIsNyBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1 Y3QgdmFsdWUgKnJhbmdlLAorQEAgLTE0MDYsNyArMTQwNiw3IEBACiAgCiAgICAqbG93ID0gMDsK ICAgICpoaWdoID0gMDsKQEAgLTEwNTAsNyArMTA0OSw3IEBAIGluZGV4IDE3YjIwYzYuLjI5NTAw MmYgMTAwNjQ0CiAgCiAgICBpZiAoVFlQRV9ORklFTERTICh0eXBlKSA9PSAwKQogICAgICByZXR1 cm47Ci1AQCAtMTM0MCwxNSArMTM0MCwxNCBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAorQEAgLTE0MTQsMTUgKzE0MTQsMTQgQEAK ICAgIGkgPSAwOwogICAgaWYgKHN0cmNtcCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCAwKSwgInN0 YXJ0IikgPT0gMCkKICAgICAgewpAQCAtMTA2OCw3ICsxMDY3LDcgQEAgaW5kZXggMTdiMjBjNi4u Mjk1MDAyZiAxMDA2NDQKICAgICAgICAqaGlnaCA9IHZhbHVlX2FzX2xvbmcgKHZhbHVlX2ZpZWxk IChyYW5nZSwgaSkpOwogICAgICB9CiAgfQotQEAgLTEzNjMsNyArMTM2Miw3IEBAIHJ1c3Rfc3Vi c2NyaXB0IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9z aWRlLAorQEAgLTE0MzcsNyArMTQzNiw3IEBACiAgICBzdHJ1Y3QgdHlwZSAqcmhzdHlwZTsKICAg IExPTkdFU1QgbG93LCBoaWdoX2JvdW5kOwogICAgLyogSW5pdGlhbGl6ZWQgdG8gYXBwZWFzZSB0 aGUgY29tcGlsZXIuICAqLwpAQCAtMTA3Nyw3ICsxMDc2LDcgQEAgaW5kZXggMTdiMjBjNi4uMjk1 MDAyZiAxMDA2NDQKICAgIExPTkdFU1QgaGlnaCA9IDA7CiAgICBpbnQgd2FudF9zbGljZSA9IDA7 CiAgCi1AQCAtMTQyNSw3ICsxNDI0LDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNz aW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCitAQCAtMTQ5OSw3ICsxNDk4 LDcgQEAKICAJZXJyb3IgKF8oIkNhbm5vdCBzdWJzY3JpcHQgbm9uLWFycmF5IHR5cGUiKSk7CiAg CiAgICAgICAgaWYgKHdhbnRfc2xpY2UKQEAgLTEwODYsNyArMTA4NSw3IEBAIGluZGV4IDE3YjIw YzYuLjI5NTAwMmYgMTAwNjQ0CiAgCWxvdyA9IGxvd19ib3VuZDsKICAgICAgICBpZiAobG93IDwg MCkKICAJZXJyb3IgKF8oIkluZGV4IGxlc3MgdGhhbiB6ZXJvIikpOwotQEAgLTE0NDMsNyArMTQ0 Miw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywg ZW51bSBub3NpZGUgbm9zaWRlLAorQEAgLTE1MTcsNyArMTUxNiw3IEBACiAgCSAgQ09SRV9BRERS IGFkZHI7CiAgCSAgc3RydWN0IHZhbHVlICphZGRydmFsLCAqdGVtOwogIApAQCAtMTA5NSwxMSAr MTA5NCwxMCBAQCBpbmRleCAxN2IyMGM2Li4yOTUwMDJmIDEwMDY0NAogIAkgICAgaGlnaCA9IGhp Z2hfYm91bmQ7CiAgCSAgaWYgKGhpZ2ggPCAwKQogIAkgICAgZXJyb3IgKF8oIkhpZ2ggaW5kZXgg bGVzcyB0aGFuIHplcm8iKSk7Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9zdGF0aWMtYXJyYXlzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFy cmF5cy5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5jYzllY2MwCi0t LS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0YXRpYy1hcnJh eXMuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9zdGF0aWMtYXJyYXlzLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5leHAJMjAxNy0wMi0wNyAyMDo0 NzozMy4xMjUwMzM1MzYgKzAxMDAKIEBAIC0wLDAgKzEsNDIxIEBACiArIyBDb3B5cmlnaHQgMjAx NSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0xNTIyLDExICsxNTIwLDEw IEBAIGluZGV4IDAwMDAwMDAuLmNjOWVjYzAKICtnZGJfdGVzdCAicHJpbnQgYXIxXCgzOjdcKSA9 IDQyIiBcCiArCQkiSW52YWxpZCBjYXN0LiIgXAogKwkJIkFzc2lnbm1lbnQgb2YgdmFsdWUgdG8g c3ViYXJyYXkiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMt YXJyYXlzLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5mOTAK LW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5mMjJmY2JlCi0tLS0gL2Rldi9u dWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0YXRpYy1hcnJheXMuZjkwCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0 aWMtYXJyYXlzLmY5MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5mOTAJMjAxNy0wMi0wNyAyMDo0NzozMy4xMjUw MzM1MzYgKzAxMDAKIEBAIC0wLDAgKzEsNTUgQEAKICshIENvcHlyaWdodCAyMDE1IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTE1ODMsMTEgKzE1ODAsMTEgQEAgaW5kZXgg MDAwMDAwMC4uZjIyZmNiZQogK3Byb2dyYW0gdGVzdHByb2cKICsgIGNhbGwgc3ViCiArZW5kCi1k aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCi1pbmRleCAxNzU2NjFmLi41NDRk NDBhIDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhw Ci0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAKLUBAIC05OCwz ICs5OCw3IEBAIGdkYl90ZXN0ICJwdHlwZSB2bGEyIiAidHlwZSA9IDxub3QgYWxsb2NhdGVkPiIg InB0eXBlIHZsYTIgbm90IGFsbG9jYXRlZCIKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0 eXBlLmV4cAkyMDE3LTAyLTA3IDIwOjQ3OjMyLjE3NjAyNjMyOCArMDEwMAorKysrIGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE3 LTAyLTA3IDIwOjQ3OjMzLjEyNTAzMzUzNiArMDEwMAorQEAgLTk4LDMgKzk4LDcgQEAKICBnZGJf dGVzdCAicHR5cGUgdmxhMig1LCA0NSwgMjApIiBcCiAgICAibm8gc3VjaCB2ZWN0b3IgZWxlbWVu dCBcXFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcXFwpIiBcCiAgICAicHR5cGUgdmxhMig1LCA0NSwg MjApIG5vdCBhbGxvY2F0ZWQiCkBAIC0xNTk1LDExICsxNTkyLDExIEBAIGluZGV4IDE3NTY2MWYu LjU0NGQ0MGEgMTAwNjQ0CiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZs YTEtbmVnLWJvdW5kcyJdCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtbmVnLWJv dW5kcyIKICtnZGJfdGVzdCAicHR5cGUgdmxhMSIgInR5cGUgPSAkcmVhbCBcXCgtMjoxLC01OjQs LTM6LTFcXCkiICJwdHlwZSB2bGExIG5lZ2F0aXZlIGJvdW5kcyIKLWRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zaXplb2YuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtc2l6ZW9mLmV4cAotaW5kZXggODAxMGMwYS4uZjgyNThhMSAxMDA2NDQKLS0t LSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAKLSsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAKLUBAIC00NCwzICs0NCw3IEBAIGdk Yl90ZXN0ICJwcmludCBzaXplb2YocHZsYSkiICIgPSAwIiAicHJpbnQgc2l6ZW9mIG5vbi1hc3Nv Y2lhdGVkIHB2bGEiCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEyLjUwLjIw MTcwMjA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAkyMDE3 LTAyLTA3IDIwOjQ3OjMyLjE3NjAyNjMyOCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAJMjAxNy0wMi0wNyAyMDo0 NzozMy4xMjYwMzM1NDQgKzAxMDAKK0BAIC00NCwzICs0NCw3IEBACiAgZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtYXNzb2NpYXRlZCJdCiAgZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRlZCIKICBnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHB2 bGEpIiAiID0gNDAwMCIgInByaW50IHNpemVvZiBhc3NvY2lhdGVkIHB2bGEiCkBAIC0xNjA3LDEx ICsxNjA0LDEwIEBAIGluZGV4IDgwMTBjMGEuLmY4MjU4YTEgMTAwNjQ0CiArZ2RiX2JyZWFrcG9p bnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtbmVnLWJvdW5kcyJdCiArZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgInZsYTEtbmVnLWJvdW5kcyIKICtnZGJfdGVzdCAicHJpbnQgc2l6ZW9m KHZsYTEpIiAiID0gNDgwIiAicHJpbnQgc2l6ZW9mIHZsYTEgbmVnYXRpdmUgYm91bmRzIgotZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAgYi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0 NAotaW5kZXggMDAwMDAwMC4uZGNmMTVlNQotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcw MjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBn ZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUu ZXhwCTIwMTctMDItMDcgMjA6NDc6MzMuMTI2MDMzNTQ0ICswMTAwCiBAQCAtMCwwICsxLDQ0IEBA CiArIyBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAg LTE2NTcsMTEgKzE2NTMsMTAgQEAgaW5kZXggMDAwMDAwMC4uZGNmMTVlNQogK2dkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJzaW5nbGUtZWxlbWVudCIKICtnZGJfdGVzdCAicHJpbnQgcHZsYSIg IiA9IFxcXCg1XFxcKSIgInByaW50IHNpbmdsZS1lbGVtZW50IgogK2dkYl90ZXN0ICJwcmludCBw dmxhKDEpIiAiID0gNSIgInByaW50IG9uZSBzaW5nbGUtZWxlbWVudCIKLWRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAw MDAwMDAuLjhkMjQyNTIKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXN0cmlkZS5mOTAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAkyMDE3LTAy LTA3IDIwOjQ3OjMzLjEyNjAzMzU0NCArMDEwMAogQEAgLTAsMCArMSwyOSBAQAogKyEgQ29weXJp Z2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTY5MiwxMSAr MTY4NywxMSBAQCBpbmRleCAwMDAwMDAwLi44ZDI0MjUyCiArCiArICBwdmxhID0+IG51bGwoKSAg ICAgICAgISBzaW5nbGUtZWxlbWVudAogK2VuZCBwcm9ncmFtIHZsYV9zdHJpZGUKLWRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAgYi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS5mOTAKLWluZGV4IGM3NmQyNGMuLmVmMzA3YjcgMTAwNjQ0Ci0tLS0gYS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLmY5MAotQEAgLTU0LDQgKzU0LDE0IEBAIHByb2dyYW0gdmxhCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS5mOTAJMjAxNy0wMi0wNyAyMDo0NzozMi4xNzYwMjYzMjggKzAxMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAJ MjAxNy0wMi0wNyAyMDo0NzozMy4xMjYwMzM1NDQgKzAxMDAKK0BAIC01NCw0ICs1NCwxNCBAQAog IAogICAgYWxsb2NhdGUgKHZsYTMgKDIsMikpICAgICAgICAgICAgICAgISB2bGEyLWRlYWxsb2Nh dGVkCiAgICB2bGEzKDosOikgPSAxMwpAQCAtMTcxMSwzNSArMTcwNiwzNCBAQCBpbmRleCBjNzZk MjRjLi5lZjMwN2I3IDEwMDY0NAogKyAgbCA9IGFsbG9jYXRlZCh2bGExKQogKwogIGVuZCBwcm9n cmFtIHZsYQotZGlmZiAtLWdpdCBhL2dkYi92YWxhcml0aC5jIGIvZ2RiL3ZhbGFyaXRoLmMKLWlu ZGV4IGRlNmZjZmQuLjk3NTM1MDYgMTAwNjQ0Ci0tLS0gYS9nZGIvdmFsYXJpdGguYwotKysrIGIv Z2RiL3ZhbGFyaXRoLmMKLUBAIC0xOTMsMTEgKzE5MywxNyBAQCB2YWx1ZV9zdWJzY3JpcHRlZF9y dmFsdWUgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPTkdFU1QgaW5kZXgsIGludCBsb3dlcmJvdW5k KQorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi92YWxhcml0aC5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdmFsYXJpdGguYwkyMDE3LTAyLTA3 IDIwOjQ3OjMzLjEyNjAzMzU0NCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi92 YWxhcml0aC5jCTIwMTctMDItMDcgMjA6NDg6MjkuMTE0NDU4Nzg4ICswMTAwCitAQCAtMTkzLDEw ICsxOTMsMTYgQEAKICAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAo dmFsdWVfdHlwZSAoYXJyYXkpKTsKICAgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKICAgIFVMT05HRVNUIGVsdF9z aXplID0gdHlwZV9sZW5ndGhfdW5pdHMgKGVsdF90eXBlKTsKIC0gIFVMT05HRVNUIGVsdF9vZmZz ID0gZWx0X3NpemUgKiAoaW5kZXggLSBsb3dlcmJvdW5kKTsKICsgIExPTkdFU1QgZWx0X29mZnMg PSBpbmRleCAtIGxvd2VyYm91bmQ7CiArICBMT05HRVNUIGVsdF9zdHJpZGUgPSBUWVBFX0JZVEVf U1RSSURFIChUWVBFX0lOREVYX1RZUEUgKGFycmF5X3R5cGUpKTsKLSAgIHN0cnVjdCB2YWx1ZSAq djsKLSAKKysKICsgIGlmIChlbHRfc3RyaWRlICE9IDApCiArICAgIGVsdF9vZmZzICo9IGVsdF9z dHJpZGU7CiArICBlbHNlCiArICAgIGVsdF9vZmZzICo9IGVsdF9zaXplOwotKworIAogICAgaWYg KGluZGV4IDwgbG93ZXJib3VuZCB8fCAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJ TkVEIChhcnJheV90eXBlKQogLQkJCSAgICAgJiYgZWx0X29mZnMgPj0gdHlwZV9sZW5ndGhfdW5p dHMgKGFycmF5X3R5cGUpKSkKICsJCQkgICAgICYmIGFicyAoZWx0X29mZnMpID49IHR5cGVfbGVu Z3RoX3VuaXRzIChhcnJheV90eXBlKSkpCiAgICAgIHsKICAgICAgICBpZiAodHlwZV9ub3RfYXNz b2NpYXRlZCAoYXJyYXlfdHlwZSkpCiAgICAgICAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3Ig ZWxlbWVudCAodmVjdG9yIG5vdCBhc3NvY2lhdGVkKSIpKTsKLWRpZmYgLS1naXQgYS9nZGIvdmFs b3BzLmMgYi9nZGIvdmFsb3BzLmMKLWluZGV4IDQwMzkyZTguLjI0ZmZhY2IgMTAwNjQ0Ci0tLS0g YS9nZGIvdmFsb3BzLmMKLSsrKyBiL2dkYi92YWxvcHMuYwotQEAgLTM3NzUsNTYgKzM3NzUsMTkx IEBAIHZhbHVlX29mX3RoaXNfc2lsZW50IChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFu ZykKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdmFsb3BzLmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi92YWxvcHMuYwkyMDE3LTAyLTA3IDIw OjQ3OjMzLjEyNzAzMzU1MSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi92YWxv cHMuYwkyMDE3LTAyLTA3IDIwOjUwOjI0LjkwOTMzODI3NSArMDEwMAorQEAgLTM3ODIsNTUgKzM3 ODIsMTkwIEBACiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICph cnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQogIHsKQEAgLTE3ODksNiArMTc4MywxMCBA QCBpbmRleCA0MDM5MmU4Li4yNGZmYWNiIDEwMDY0NAogLSAgcmFuZ2VfdHlwZSA9IFRZUEVfSU5E RVhfVFlQRSAoYXJyYXlfdHlwZSk7CiAtICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2Vf dHlwZSwgJmxvd2VyYm91bmQsICZ1cHBlcmJvdW5kKSA8IDApCiAtICAgIGVycm9yIChfKCJzbGlj ZSBmcm9tIGJhZCBhcnJheSBvciBiaXRzdHJpbmciKSk7CistCistICBpZiAobG93Ym91bmQgPCBs b3dlcmJvdW5kIHx8IGxlbmd0aCA8IDAKKy0gICAgICB8fCBsb3dib3VuZCArIGxlbmd0aCAtIDEg PiB1cHBlcmJvdW5kKQorLSAgICBlcnJvciAoXygic2xpY2Ugb3V0IG9mIHJhbmdlIikpOwogKyAg YXJ5X2xvd19ib3VuZCA9IFRZUEVfTE9XX0JPVU5EIChUWVBFX0lOREVYX1RZUEUgKGFycmF5X3R5 cGUpKTsKICsgIGFyeV9oaWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChUWVBFX0lOREVYX1RZ UEUgKGFycmF5X3R5cGUpKTsKICsKQEAgLTE4MTQsMTAgKzE4MTIsNyBAQCBpbmRleCA0MDM5MmU4 Li4yNGZmYWNiIDEwMDY0NAogKwogKyAgZWx0X3NpemUgPSBUWVBFX0xFTkdUSCAoZWx0X3R5cGUp OwogKyAgZWx0X29mZnMgPSBsb3dib3VuZCAtIGFyeV9sb3dfYm91bmQ7Ci0gCi0tICBpZiAobG93 Ym91bmQgPCBsb3dlcmJvdW5kIHx8IGxlbmd0aCA8IDAKLS0gICAgICB8fCBsb3dib3VuZCArIGxl bmd0aCAtIDEgPiB1cHBlcmJvdW5kKQotLSAgICBlcnJvciAoXygic2xpY2Ugb3V0IG9mIHJhbmdl IikpOworKwogKyAgZWx0X29mZnMgKj0gZWx0X3NpemU7CiArCiArICAvKiBDaGVjayBmb3IgdmFs aWQgdXNlciBpbnB1dC4gIEluIGNhc2Ugb2YgRm9ydHJhbiB0aGlzIHdhcyBhbHJlYWR5IGRvbmUK QEAgLTE4NjQsOCArMTg1OSwxNSBAQCBpbmRleCA0MDM5MmU4Li4yNGZmYWNiIDEwMDY0NAogLSAg ICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlw ZSk7CiAtICAgIExPTkdFU1Qgb2Zmc2V0CiAtICAgICAgPSAobG93Ym91bmQgLSBsb3dlcmJvdW5k KSAqIFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKy0KKy0gICAg c2xpY2VfdHlwZSA9IGNyZWF0ZV9hcnJheV90eXBlICgoc3RydWN0IHR5cGUgKikgTlVMTCwKKy0J CQkJICAgIGVsZW1lbnRfdHlwZSwKKy0JCQkJICAgIHNsaWNlX3JhbmdlX3R5cGUpOworLSAgICBU WVBFX0NPREUgKHNsaWNlX3R5cGUpID0gVFlQRV9DT0RFIChhcnJheV90eXBlKTsKICsgICAgc3Ry dWN0IHR5cGUgKmVsZW1lbnRfdHlwZTsKLSsKKyAKKy0gICAgaWYgKFZBTFVFX0xWQUwgKGFycmF5 KSA9PSBsdmFsX21lbW9yeSAmJiB2YWx1ZV9sYXp5IChhcnJheSkpCistICAgICAgc2xpY2UgPSBh bGxvY2F0ZV92YWx1ZV9sYXp5IChzbGljZV90eXBlKTsKICsgICAgLyogV2hlbiBib3RoIENBTExf Q09VTlQgYW5kIFNUUklERV9MRU5HVEggZXF1YWwgMSwgd2UgY2FuIHVzZSB0aGUgbGVnYWN5CiAr ICAgICAgIGNvZGUgZm9yIHN1YmFycmF5cy4gICovCiArICAgIGlmIChjYWxsX2NvdW50ID09IDEg JiYgc3RyaWRlX2xlbmd0aCA9PSAxKQpAQCAtMTg3MywxNSArMTg3NSw5IEBAIGluZGV4IDQwMzky ZTguLjI0ZmZhY2IgMTAwNjQ0CiArCWVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFy cmF5X3R5cGUpOwogKwogKwlzbGljZV90eXBlID0gY3JlYXRlX2FycmF5X3R5cGUgKE5VTEwsIGVs ZW1lbnRfdHlwZSwgc2xpY2VfcmFuZ2VfdHlwZSk7Ci0gCi0tICAgIHNsaWNlX3R5cGUgPSBjcmVh dGVfYXJyYXlfdHlwZSAoKHN0cnVjdCB0eXBlICopIE5VTEwsCi0tCQkJCSAgICBlbGVtZW50X3R5 cGUsCi0tCQkJCSAgICBzbGljZV9yYW5nZV90eXBlKTsKLS0gICAgVFlQRV9DT0RFIChzbGljZV90 eXBlKSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7CisrCiArCVRZUEVfQ09ERSAoc2xpY2VfdHlw ZSkgPSBUWVBFX0NPREUgKGFycmF5X3R5cGUpOwotIAotLSAgICBpZiAoVkFMVUVfTFZBTCAoYXJy YXkpID09IGx2YWxfbWVtb3J5ICYmIHZhbHVlX2xhenkgKGFycmF5KSkKLS0gICAgICBzbGljZSA9 IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHNsaWNlX3R5cGUpOworKwogKwlpZiAoVkFMVUVfTFZBTCAo YXJyYXkpID09IGx2YWxfbWVtb3J5ICYmIHZhbHVlX2xhenkgKGFycmF5KSkKICsJICB2ID0gYWxs b2NhdGVfdmFsdWVfbGF6eSAoc2xpY2VfdHlwZSk7CiArCWVsc2UKQEAgLTE5NDksMTEgKzE5NDUs OSBAQCBpbmRleCA0MDM5MmU4Li4yNGZmYWNiIDEwMDY0NAogICAgICAgIH0KICAKIC0gICAgc2V0 X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc2xpY2UsIGFycmF5KTsKLS0gICAgVkFMVUVfRlJB TUVfSUQgKHNsaWNlKSA9IFZBTFVFX0ZSQU1FX0lEIChhcnJheSk7CiAtICAgIHNldF92YWx1ZV9v ZmZzZXQgKHNsaWNlLCB2YWx1ZV9vZmZzZXQgKGFycmF5KSArIG9mZnNldCk7CiArICAgIHNldF92 YWx1ZV9jb21wb25lbnRfbG9jYXRpb24gKHYsIGFycmF5KTsKICsgICAgVkFMVUVfUkVHTlVNICh2 KSA9IFZBTFVFX1JFR05VTSAoYXJyYXkpOwotKyAgICBWQUxVRV9GUkFNRV9JRCAodikgPSBWQUxV RV9GUkFNRV9JRCAoYXJyYXkpOwogKyAgICBzZXRfdmFsdWVfb2Zmc2V0ICh2LCB2YWx1ZV9vZmZz ZXQgKGFycmF5KSArIGVsdF9vZmZzKTsKICAgIH0KICAKQEAgLTE5NjIsMTEgKzE5NTYsMTEgQEAg aW5kZXggNDAzOTJlOC4uMjRmZmFjYiAxMDA2NDQKICB9CiAgCiAgLyogQ3JlYXRlIGEgdmFsdWUg Zm9yIGEgRk9SVFJBTiBjb21wbGV4IG51bWJlci4gIEN1cnJlbnRseSBtb3N0IG9mIHRoZQotZGlm ZiAtLWdpdCBhL2dkYi92YWx1ZS5oIGIvZ2RiL3ZhbHVlLmgKLWluZGV4IDBiNDE3YjQuLjljMzc3 MTMgMTAwNjQ0Ci0tLS0gYS9nZGIvdmFsdWUuaAotKysrIGIvZ2RiL3ZhbHVlLmgKLUBAIC0xMDU3 LDYgKzEwNTcsOCBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YXJ5aW5nX3RvX3NsaWNlIChzdHJ1 Y3QgdmFsdWUgKik7CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3ZhbHVlLmgKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi92YWx1ZS5oCTIwMTct MDItMDcgMjA6NDc6MzIuMTc4MDI2MzQzICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3ZhbHVlLmgJMjAxNy0wMi0wNyAyMDo0NzozMy4xMjgwMzM1NTkgKzAxMDAKK0BAIC0xMTA2 LDYgKzExMDYsOCBAQAogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3NsaWNlIChzdHJ1 Y3QgdmFsdWUgKiwgaW50LCBpbnQpOwogIAoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtZm9y dHJhbi12bGEtc3RyaW5ncy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtZm9ydHJhbi12bGEtc3RyaW5n cy5wYXRjaAppbmRleCA2NjU1MzkwLi4xNDc4Y2FiIDEwMDY0NAotLS0gYS9nZGItdmxhLWludGVs LWZvcnRyYW4tdmxhLXN0cmluZ3MucGF0Y2gKKysrIGIvZ2RiLXZsYS1pbnRlbC1mb3J0cmFuLXZs YS1zdHJpbmdzLnBhdGNoCkBAIC0yMywyNCArMjMsMjQgQEAgZ2l0IGRpZmYgLS1zdGF0IC1wIGdk Yi9tYXN0ZXIuLi5nZGIvdXNlcnMvYmhlY2tlbC9mb3J0cmFuLXZsYS1zdHJpbmdzCiAgZ2RiL3Zh bHByaW50LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgLS0KICAyMCBmaWxlcyBj aGFuZ2VkLCA4MjcgaW5zZXJ0aW9ucygrKSwgMTEwIGRlbGV0aW9ucygtKQogCi1JbmRleDogZ2Ri LTcuMTEuOTAuMjAxNjA5MDcvZ2RiL05FV1MKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9n ZGIvTkVXUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjkwLjIwMTYwOTA3Lm9yaWcvZ2RiL05F V1MJMjAxNi0wOS0wNyAyMTo1MjoxMC4yNzM1NjMwNjAgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4y MDE2MDkwNy9nZGIvTkVXUwkyMDE2LTA5LTA3IDIxOjUzOjIyLjcwODIxMDQxNiArMDIwMAotQEAg LTEsNiArMSw4IEBACi0gCQlXaGF0IGhhcyBjaGFuZ2VkIGluIEdEQj8KLSAJICAgICAoT3JnYW5p emVkIHJlbGVhc2UgYnkgcmVsZWFzZSkKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dk Yi9ORVdTCTIwMTctMDItMDcgMjA6NTM6NDguODUxODg3MjYyICswMTAwCisrKysgZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL05FV1MJMjAxNy0wMi0wNyAyMDo1Mzo1NC40Mzc5Mjk2ODkgKzAxMDAK K0BAIC03Myw2ICs3Myw4IEBACisgICBFcmFzZXMgYWxsIHRoZSBmbGFzaCBtZW1vcnkgcmVnaW9u cyByZXBvcnRlZCBieSB0aGUgdGFyZ2V0LiAgVGhpcyBpcworICAgZXF1aXZhbGVudCB0byB0aGUg Q0xJIGNvbW1hbmQgZmxhc2gtZXJhc2UuCiAgCiArKiBGb3J0cmFuOiBTdXBwb3J0IHBvaW50ZXJz IHRvIGR5bmFtaWMgdHlwZXMuCiArCiAgKioqIENoYW5nZXMgaW4gR0RCIDcuMTIKICAKICAqIEdE QiBhbmQgR0RCc2VydmVyIG5vdyBidWlsZCB3aXRoIGEgQysrIGNvbXBpbGVyIGJ5IGRlZmF1bHQu Ci1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2MtdmFscHJpbnQuYworSW5kZXg6IGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi9jLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMS45MC4yMDE2MDkwNy5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNi0wOS0wNyAyMTo1Mjox MC4yNzI1NjMwNTEgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvYy12YWxwcmlu dC5jCTIwMTYtMDktMDcgMjE6NTM6MjIuNzA4MjEwNDE2ICswMjAwCi1AQCAtNjQ1LDYgKzY0NSwy OCBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE3 LTAyLTA3IDIwOjUzOjQ4Ljg1MTg4NzI2MiArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi9jLXZhbHByaW50LmMJMjAxNy0wMi0wNyAyMDo1Mzo1NC40Mzc5Mjk2ODkgKzAxMDAKK0BA IC02NDYsNiArNjQ2LDI4IEBACiAgICAgICAgZWxzZQogIAl7CiAgCSAgLyogbm9ybWFsIGNhc2Ug Ki8KQEAgLTY5LDExICs2OSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2Mt dmFscHJpbnQuYwogIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKICAJICB0eXBl X3ByaW50ICh2YWx1ZV90eXBlICh2YWwpLCAiIiwgc3RyZWFtLCAtMSk7CiAgCSAgZnByaW50Zl9m aWx0ZXJlZCAoc3RyZWFtLCAiKSAiKTsKLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIv ZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2R3YXJmMnJlYWQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjkwLjIwMTYwOTA3Lm9yaWcvZ2RiL2R3YXJmMnJl YWQuYwkyMDE2LTA5LTA3IDIxOjUyOjUzLjcwMDk1MTE3NSArMDIwMAotKysrIGdkYi03LjExLjkw LjIwMTYwOTA3L2dkYi9kd2FyZjJyZWFkLmMJMjAxNi0wOS0wNyAyMTo1NDowMi4xNDA1NjI4MjUg KzAyMDAKLUBAIC0xNzY0LDcgKzE3NjQsOCBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9y aWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE3LTAyLTA3IDIwOjUzOjQ4Ljg2Mjg4NzM0NSArMDEwMAor KysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9kd2FyZjJyZWFkLmMJMjAxNy0wMi0wNyAyMDo1 Mzo1NC40NDI5Mjk3MjcgKzAxMDAKK0BAIC0xNzY4LDcgKzE3NjgsOCBAQAogIAogIHN0YXRpYyBp bnQgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsCiAg CQkJCSBzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UsCkBAIC04Myw3 ICs4Myw3IEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvZHdhcmYycmVhZC5jCiAg CiAgLyogbWVtb3J5IGFsbG9jYXRpb24gaW50ZXJmYWNlICovCiAgCi1AQCAtMTE0NDYsNyArMTE0 NDcsNyBAQAorQEAgLTExMzk5LDcgKzExNDAwLDcgQEAKICAgICAgewogICAgICAgIG5ld29iai0+ c3RhdGljX2xpbmsKICAJPSBYT0JORVcgKCZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssIHN0cnVj dCBkeW5hbWljX3Byb3ApOwpAQCAtOTIsNyArOTIsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAx NjA5MDcvZ2RiL2R3YXJmMnJlYWQuYwogICAgICB9CiAgCiAgICBjdS0+bGlzdF9pbl9zY29wZSA9 ICZsb2NhbF9zeW1ib2xzOwotQEAgLTE0NTEyLDI5ICsxNDUxMyw5NCBAQAorQEAgLTE0NDYwLDI5 ICsxNDQ2MSw5NCBAQAogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfb2JqZmlsZV9h cmNoIChvYmpmaWxlKTsKICAgIHN0cnVjdCB0eXBlICp0eXBlLCAqcmFuZ2VfdHlwZSwgKmluZGV4 X3R5cGUsICpjaGFyX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtMTk4LDcg KzE5OCw3IEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvZHdhcmYycmVhZC5jCiAg ICBjaGFyX3R5cGUgPSBsYW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2VfZGVm biwgZ2RiYXJjaCk7CiAgICB0eXBlID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFyX3R5 cGUsIHJhbmdlX3R5cGUpOwogIAotQEAgLTE0ODY0LDcgKzE0OTMwLDggQEAKK0BAIC0xNDgxOSw3 ICsxNDg4NSw4IEBACiAgCiAgc3RhdGljIGludAogIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25z dCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKQEAgLTIwOCw3 ICsyMDgsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2R3YXJmMnJlYWQuYwog IHsKICAgIHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0b24gKmJhdG9uOwogICAgc3RydWN0IG9i c3RhY2sgKm9ic3RhY2sgPSAmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjazsKLUBAIC0xNDg3 NCwxNCArMTQ5NDEsMzMgQEAKK0BAIC0xNDgyOSwxNCArMTQ4OTYsMzMgQEAKICAKICAgIGlmIChh dHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQogICAgICB7CkBAIC0yNDYsNyArMjQ2LDcgQEAgSW5k ZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9kd2FyZjJyZWFkLmMKICAgICAgfQogICAgZWxz ZSBpZiAoYXR0cl9mb3JtX2lzX3JlZiAoYXR0cikpCiAgICAgIHsKLUBAIC0xNDkxNCw4ICsxNTAw MCwyOCBAQAorQEAgLTE0ODY5LDggKzE0OTU1LDI4IEBACiAgCQliYXRvbiA9IFhPQk5FVyAob2Jz dGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7CiAgCQliYXRvbi0+cmVmZXJlbmNl ZF90eXBlID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7CiAgCQliYXRvbi0+bG9j ZXhwci5wZXJfY3UgPSBjdS0+cGVyX2N1OwpAQCAtMjc3LDcgKzI3Nyw3IEBAIEluZGV4OiBnZGIt Ny4xMS45MC4yMDE2MDkwNy9nZGIvZHdhcmYycmVhZC5jCiAgCQlwcm9wLT5kYXRhLmJhdG9uID0g YmF0b247CiAgCQlwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOwogIAkJZ2RiX2Fzc2VydCAocHJv cC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKLUBAIC0xNTAyNywyNCArMTUxMzMsMjQgQEAKK0BAIC0x NDk4MSwyNCArMTUwODcsMjQgQEAKICAKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19B VF9ieXRlX3N0cmlkZSwgY3UpOwogICAgaWYgKGF0dHIpCkBAIC0zMDYsNyArMzA2LDcgQEAgSW5k ZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9kd2FyZjJyZWFkLmMKICAJewogIAkgIC8qIElm IGJvdW5kcyBhcmUgY29uc3RhbnQgZG8gdGhlIGZpbmFsIGNhbGN1bGF0aW9uIGhlcmUuICAqLwog IAkgIGlmIChsb3cua2luZCA9PSBQUk9QX0NPTlNUICYmIGhpZ2gua2luZCA9PSBQUk9QX0NPTlNU KQotQEAgLTIyNDE2LDcgKzIyNTIyLDcgQEAKK0BAIC0yMjMzMyw3ICsyMjQzOSw3IEBACiAgICBh dHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYWxsb2NhdGVkLCBjdSk7CiAgICBpZiAoYXR0 cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICAgICAgewpAQCAtMzE1LDcgKzMxNSw3IEBAIEluZGV4 OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvZHdhcmYycmVhZC5jCiAgICAgICAgICBhZGRfZHlu X3Byb3AgKERZTl9QUk9QX0FMTE9DQVRFRCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7CiAgICAgIH0K ICAgIGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkKLUBAIC0yMjQzMSw3ICsyMjUzNyw3IEBACitAQCAt MjIzNDgsNyArMjI0NTQsNyBAQAogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2Fz c29jaWF0ZWQsIGN1KTsKICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQogICAgICB7 CkBAIC0zMjQsNyArMzI0LDcgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9kd2Fy ZjJyZWFkLmMKICAgICAgICAgIGFkZF9keW5fcHJvcCAoRFlOX1BST1BfQVNTT0NJQVRFRCwgcHJv cCwgdHlwZSwgb2JqZmlsZSk7CiAgICAgIH0KICAgIGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkKLUBA IC0yMjQ0NCw3ICsyMjU1MCw3IEBACitAQCAtMjIzNjEsNyArMjI0NjcsNyBAQAogIAogICAgLyog UmVhZCBEV19BVF9kYXRhX2xvY2F0aW9uIGFuZCBzZXQgaW4gdHlwZS4gICovCiAgICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZGF0YV9sb2NhdGlvbiwgY3UpOwpAQCAtMzMzLDEwICsz MzMsMTAgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9kd2FyZjJyZWFkLmMKICAg ICAgYWRkX2R5bl9wcm9wIChEWU5fUFJPUF9EQVRBX0xPQ0FUSU9OLCBwcm9wLCB0eXBlLCBvYmpm aWxlKTsKICAKICAgIGlmIChkd2FyZjJfcGVyX29iamZpbGUtPmRpZV90eXBlX2hhc2ggPT0gTlVM TCkKLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvZi10eXBlcHJpbnQuYworSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9mLXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTEuOTAuMjAxNjA5MDcub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTA5LTA3IDIx OjUyOjEwLjI3MjU2MzA1MSArMDIwMAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9mLXR5 cGVwcmludC5jCTIwMTYtMDktMDcgMjE6NTM6MjIuNzEzMjEwNDYxICswMjAwCistLS0gZ2RiLTcu MTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE3LTAyLTA3IDIwOjUzOjQ4 Ljg2Mzg4NzM1MyArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9mLXR5cGVwcmlu dC5jCTIwMTctMDItMDcgMjA6NTM6NTQuNDQzOTI5NzM0ICswMTAwCiBAQCAtMzcsNyArMzcsNyBA QAogICNlbmRpZgogIApAQCAtNDg2LDExICs0ODYsMTEgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIw MTYwOTA3L2dkYi9mLXR5cGVwcmludC5jCiAgCSAgICAgIGZwdXRzX2ZpbHRlcmVkICgiXG4iLCBz dHJlYW0pOwogIAkgICAgfQogIAkgIGZwcmludGZpX2ZpbHRlcmVkIChsZXZlbCwgc3RyZWFtLCAi RW5kIFR5cGUgIik7Ci1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2dkYnR5cGVzLmMK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjExLjkwLjIwMTYwOTA3Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNi0wOS0wNyAy MTo1Mjo1My43MDM5NTEyMDIgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvZ2Ri dHlwZXMuYwkyMDE2LTA5LTA3IDIxOjUzOjIyLjcxNDIxMDQ3MCArMDIwMAotQEAgLTE4MTYsNyAr MTgxNiw4IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvZ2RidHlwZXMuYwky MDE3LTAyLTA3IDIwOjUzOjQ4Ljg2NTg4NzM2OCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjA3L2dkYi9nZGJ0eXBlcy5jCTIwMTctMDItMDcgMjA6NTM6NTQuNDQ0OTI5NzQyICswMTAwCitA QCAtMTgxNCw3ICsxODE0LDggQEAKICAgIHR5cGUgPSBjaGVja190eXBlZGVmICh0eXBlKTsKICAK ICAgIC8qIFdlIG9ubHkgd2FudCB0byByZWNvZ25pemUgcmVmZXJlbmNlcyBhdCB0aGUgb3V0ZXJt b3N0IGxldmVsLiAgKi8KQEAgLTUwMCw3ICs1MDAsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAx NjA5MDcvZ2RiL2dkYnR5cGVzLmMKICAgICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFS R0VUX1RZUEUgKHR5cGUpKTsKICAKICAgIC8qIFR5cGVzIHRoYXQgaGF2ZSBhIGR5bmFtaWMgVFlQ RV9EQVRBX0xPQ0FUSU9OIGFyZSBjb25zaWRlcmVkCi1AQCAtMTg1MCw2ICsxODUxLDcgQEAKK0BA IC0xODQ4LDYgKzE4NDksNyBAQAogICAgICAgIH0KICAKICAgICAgY2FzZSBUWVBFX0NPREVfQVJS QVk6CkBAIC01MDgsNyArNTA4LDcgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9n ZGJ0eXBlcy5jCiAgICAgICAgewogIAlnZGJfYXNzZXJ0IChUWVBFX05GSUVMRFMgKHR5cGUpID09 IDEpOwogIAotQEAgLTE5NjIsNyArMTk2NCw4IEBACitAQCAtMTk2MCw3ICsxOTYyLDggQEAKICAg IHN0cnVjdCB0eXBlICphcnlfZGltOwogICAgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcDsKICAK QEAgLTUxOCw3ICs1MTgsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2dkYnR5 cGVzLmMKICAKICAgIHR5cGUgPSBjb3B5X3R5cGUgKHR5cGUpOwogIAotQEAgLTE5ODcsMTMgKzE5 OTAsMTcgQEAKK0BAIC0xOTg1LDEzICsxOTg4LDE3IEBACiAgCiAgICBhcnlfZGltID0gY2hlY2tf dHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoZWx0X3R5cGUpKTsKICAKQEAgLTUzOSw3ICs1Mzks NyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2dkYnR5cGVzLmMKICB9CiAgCiAg LyogUmVzb2x2ZSBkeW5hbWljIGJvdW5kcyBvZiBtZW1iZXJzIG9mIHRoZSB1bmlvbiBUWVBFIHRv IHN0YXRpYwotQEAgLTIxMjMsNiArMjEzMCwyOCBAQAorQEAgLTIxMjEsNiArMjEyOCwyOCBAQAog ICAgcmV0dXJuIHJlc29sdmVkX3R5cGU7CiAgfQogIApAQCAtNTY4LDcgKzU2OCw3IEBAIEluZGV4 OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvZ2RidHlwZXMuYwogIC8qIFdvcmtlciBmb3IgcmVz b2x2ZWRfZHluYW1pY190eXBlLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgotQEAgLTIx NzEsNyArMjIwMCwxMiBAQAorQEAgLTIxNjksNyArMjE5OCwxMiBAQAogIAkgICAgYnJlYWs7CiAg CSAgfQogIApAQCAtNTgxLDEwICs1ODEsMTAgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3 L2dkYi9nZGJ0eXBlcy5jCiAgCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJh eSAodHlwZSwgYWRkcl9zdGFjayk7CiAgCSAgYnJlYWs7CiAgCi1JbmRleDogZ2RiLTcuMTEuOTAu MjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYworSW5kZXg6IGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguY2MKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS45MC4yMDE2MDkwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1j eHguY2MJMjAxNi0wOS0wNyAyMTo1MjoxMC4yNzI1NjMwNTEgKzAyMDAKLSsrKyBnZGItNy4xMS45 MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmNjCTIwMTYtMDktMDcgMjE6 NTM6MjIuNzE0MjEwNDcwICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmNjCTIwMTctMDItMDcgMjA6NTM6NDguODY2ODg3Mzc1 ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Avdmxh LWN4eC5jYwkyMDE3LTAyLTA3IDIwOjUzOjU0LjQ0NDkyOTc0MiArMDEwMAogQEAgLTE1LDYgKzE1 LDEwIEBACiAgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKICAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCkBAIC02MTMsMTAgKzYx MywxMCBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Av dmxhLWN4eC5jYwogKwogICAgcmV0dXJuIHZsYVsyXTsKICB9Ci1JbmRleDogZ2RiLTcuMTEuOTAu MjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAKK0luZGV4OiBnZGItNy4x Mi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjExLjkwLjIwMTYwOTA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Avdmxh LWN4eC5leHAJMjAxNi0wOS0wNyAyMTo1MjoxMC4yNzI1NjMwNTEgKzAyMDAKLSsrKyBnZGItNy4x MS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAkyMDE2LTA5LTA3 IDIxOjUzOjIyLjcxNTIxMDQ3OSArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcv Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAJMjAxNy0wMi0wNyAyMDo1Mzo0OC44NjY4 ODczNzUgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5j cC92bGEtY3h4LmV4cAkyMDE3LTAyLTA3IDIwOjUzOjU0LjQ0NDkyOTc0MiArMDEwMAogQEAgLTIz LDYgKzIzLDEyIEBACiAgICAgIHJldHVybiAtMQogIH0KQEAgLTYzNywxMCArNjM3LDEwIEBAIElu ZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4 cAogK2dkYl90ZXN0ICJwdHlwZSBwdHIiICJpbnQgXFwoXFwqXFwpXFxcWzNcXFxdIgogK2dkYl90 ZXN0ICJwcmludCBwdHIiICJcXChpbnQgXFwoXFwqXFwpXFxcWzNcXFxdXFwpICRoZXgiCiArZ2Ri X3Rlc3QgInByaW50ICpwdHIiICIgPSBcXHs1LCA3LCA5XFx9IgotSW5kZXg6IGdkYi03LjExLjkw LjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZXhwCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5l eHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3BvaW50ZXJzLmV4cAkyMDE2LTA5LTA3IDIxOjUzOjIyLjcxNTIxMDQ3OSArMDIwMAorKysr IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMu ZXhwCTIwMTctMDItMDcgMjA6NTM6NTQuNDQ0OTI5NzQyICswMTAwCiBAQCAtMCwwICsxLDE0MyBA QAogKyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC03ODUsMTAgKzc4NSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5leHAKICtnZGJfdGVzdCAicHJpbnQgKigoaW50ZWdl ciopICZpbnRhICsgMikiICI9IDMiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYXJyYXkiCiAr Z2RiX3Rlc3QgInByaW50ICooKGludGVnZXIqKSAmaW50dmxhICsgMykiICI9IDQiICJwcmludCB0 ZW1wb3JhcnkgcG9pbnRlciwgYWxsb2NhdGVkIHZsYSIKICtnZGJfdGVzdCAicHJpbnQgXCRwYyIg Ij0gXFwoUFRSIFRPIC0+IFxcKCB2b2lkIFxcKFxcKVxcKFxcKVxcKVxcKSAkaGV4IDxwb2ludGVy c1xcK1xcZCs+IiAiUHJpbnQgcHJvZ3JhbSBjb3VudGVyIgotSW5kZXg6IGdkYi03LjExLjkwLjIw MTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3BvaW50ZXJzLmY5MAkyMDE2LTA5LTA3IDIxOjUzOjIyLjcxNTIxMDQ3OSArMDIwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkw CTIwMTctMDItMDcgMjA6NTM6NTQuNDQ1OTI5NzQ5ICswMTAwCiBAQCAtMCwwICsxLDEwOSBAQAog KyEgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAt ODk5LDEwICs4OTksMTAgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCiArICBpbnR2ID0gaW50diArIDEgISBBZnRlciB2 YWx1ZSBhc3NpZ25tZW50CiArCiArZW5kIHByb2dyYW0gcG9pbnRlcnMKLUluZGV4OiBnZGItNy4x MS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50X3R5cGUuZXhwCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wcmlu dF90eXBlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vcHJpbnRfdHlwZS5leHAJMjAxNi0wOS0wNyAyMTo1MzoyMi43MTUyMTA0Nzkg KzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ByaW50X3R5cGUuZXhwCTIwMTctMDItMDcgMjA6NTM6NTQuNDQ1OTI5NzQ5ICswMTAwCiBAQCAt MCwwICsxLDEwMCBAQAogKyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArCkBAIC0xMDA0LDEwICsxMDA0LDEwIEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2 MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50X3R5cGUuZXhwCiArICAgIH0KICt9 CiArZ2RiX3Rlc3QgInB0eXBlIHJlYWxwIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggJHJlYWwgXFwp IgotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXB0eXBlLmV4cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjkwLjIw MTYwOTA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCTIwMTYt MDktMDcgMjE6NTI6NTMuNzA1OTUxMjIwICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAxNjA5MDcv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCTIwMTYtMDktMDcgMjE6NTM6 MjIuNzE1MjEwNDc5ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAJMjAxNy0wMi0wNyAyMDo1Mzo0OC44Njc4 ODczODMgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1wdHlwZS5leHAJMjAxNy0wMi0wNyAyMDo1Mzo1NC40NDU5Mjk3NDkgKzAxMDAK IEBAIC0zMiw5ICszMiw5IEBACiAgIyBDaGVjayB0aGUgcHR5cGUgb2YgdmFyaW91cyBWTEEgc3Rh dGVzIGFuZCBwb2ludGVyIHRvIFZMQSdzLgogIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJ2bGExLWluaXQiXQpAQCAtMTA0NSwxMCArMTA0NSwxMCBAQCBJbmRleDogZ2RiLTcu MTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCiAg Z2RiX3Rlc3QgInB0eXBlIHZsYTIoNSwgNDUsIDIwKSIgXAogICAgIm5vIHN1Y2ggdmVjdG9yIGVs ZW1lbnQgXFxcKHZlY3RvciBub3QgYWxsb2NhdGVkXFxcKSIgXAogICAgInB0eXBlIHZsYTIoNSwg NDUsIDIwKSBub3QgYWxsb2NhdGVkIgotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1z dHJpbmdzLmV4cAkyMDE2LTA5LTA3IDIxOjUzOjIyLjcxNjIxMDQ4OCArMDIwMAorKysrIGdkYi03 LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhw CTIwMTctMDItMDcgMjA6NTM6NTQuNDQ1OTI5NzQ5ICswMTAwCiBAQCAtMCwwICsxLDEwMyBAQAog KyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0x MTUzLDEwICsxMTUzLDEwIEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAogKwkgICAgcGFzcyAkdGVzdAogKyAgICB9 CiArfQotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXN0cmluZ3MuZjkwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS45MC4y MDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAkyMDE2LTA5 LTA3IDIxOjUzOjIyLjcxNjIxMDQ4OCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCTIwMTctMDItMDcgMjA6NTM6 NTQuNDQ1OTI5NzQ5ICswMTAwCiBAQCAtMCwwICsxLDM5IEBACiArISBDb3B5cmlnaHQgMjAxNiBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xMTk3LDEwICsxMTk3LDEwIEBA IEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1zdHJpbmdzLmY5MAogKyAgdmFyX2NoYXJfcCA9PiBudWxsKCkKICsgIGwgPSBhc3NvY2lhdGVk KHZhcl9jaGFyX3ApICAgICAgICAgICAgICAhIHZhcl9jaGFyX3Atbm90LWFzc29jaWF0ZWQKICtl bmQgcHJvZ3JhbSB2bGFfc3RyaW5ncwotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXR5cGUuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS45MC4yMDE2MDkwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXR5cGUuZXhwCTIwMTYtMDktMDcgMjE6NTI6MTAuMjcyNTYzMDUxICswMjAwCi0rKysgZ2Ri LTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAJ MjAxNi0wOS0wNyAyMTo1MzoyMi43MTYyMTA0ODggKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3 MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXR5cGUuZXhwCTIwMTctMDIt MDcgMjA6NTM6NDguODY3ODg3MzgzICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAJMjAxNy0wMi0wNyAyMDo1Mzo1NC40 NDY5Mjk3NTcgKzAxMDAKIEBAIC0xMzIsNyArMTMyLDEwIEBACiAgICAgICAgICAgICAgICAgICAg ICAgIkVuZCBUeXBlIG9uZSIgXQogIApAQCAtMTIyMiwxNyArMTIyMiwxNyBAQCBJbmRleDogZ2Ri LTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAK ICAgICAgICAgICAgICAgICAgICAgICAiRW5kIFR5cGUgb25lIiBdIFwKICAgICAgICAgICAicHR5 cGUgZml2ZWR5bmFycigyKSV0b25lLCBub3QgYWxsb2NhdGVkIgogIAotSW5kZXg6IGdkYi03LjEx LjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAorSW5k ZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZh bHVlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjkwLjIwMTYwOTA3Lm9yaWcvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwCTIwMTYtMDktMDcgMjE6NTI6MTAuMjcy NTYzMDUxICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtdmFsdWUuZXhwCTIwMTYtMDktMDcgMjE6NTM6MjIuNzE2MjEwNDg4ICswMjAw CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS12YWx1ZS5leHAJMjAxNy0wMi0wNyAyMDo1Mzo0OC44Njg4ODczOTEgKzAxMDAKKysrKyBn ZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5l eHAJMjAxNy0wMi0wNyAyMDo1Mzo1NC40NDY5Mjk3NTcgKzAxMDAKIEBAIC0xNCw2ICsxNCw3IEBA CiAgIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KICAKICBzdGFuZGFyZF90ZXN0ZmlsZSAidmxhLmY5MCIKICtsb2Fk X2xpYiAiZm9ydHJhbi5leHAiCiAgCi0gaWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3Rm aWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCisgaWYgeyBbcHJlcGFyZV9mb3JfdGVz dGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAogICAgICAg e2RlYnVnIGY5MCBxdWlldH1dIH0gewogQEAgLTI1LDEyICsyNiwxNSBAQAogICAgICByZXR1cm4g LTEKQEAgLTEyNzgsMTAgKzEyNzgsMTAgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAogICAgInByaW50IGFzc29jaWF0 ZWQgJnB2bGEiCiAgZ2RiX3Rlc3QgInByaW50IHB2bGEoMywgNiwgOSkiICIgPSA0MiIgInByaW50 IGFzc29jaWF0ZWQgcHZsYSgzLDYsOSkiCiAgZ2RiX3Rlc3QgInByaW50IHB2bGEoMSwgMywgOCki ICIgPSAxMDAxIiAicHJpbnQgYXNzb2NpYXRlZCBwdmxhKDEsMyw4KSIKLUluZGV4OiBnZGItNy4x MS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hpbGQtZi5leHAKK0lu ZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hp bGQtZi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDkwNy5vcmlnL2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cAkyMDE2LTA5LTA3IDIxOjUyOjEwLjI3 MjU2MzA1MSArMDIwMAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2Ri Lm1pL21pLXZhci1jaGlsZC1mLmV4cAkyMDE2LTA5LTA3IDIxOjUzOjIyLjcxNjIxMDQ4OCArMDIw MAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkt dmFyLWNoaWxkLWYuZXhwCTIwMTctMDItMDcgMjA6NTM6NDguODY4ODg3MzkxICswMTAwCisrKysg Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWNoaWxkLWYu ZXhwCTIwMTctMDItMDcgMjA6NTM6NTQuNDQ2OTI5NzU3ICswMTAwCiBAQCAtMTcsNiArMTcsNyBA QAogIAogIGxvYWRfbGliIG1pLXN1cHBvcnQuZXhwCkBAIC0xMzAzLDEwICsxMzAzLDEwIEBAIElu ZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hp bGQtZi5leHAKICAKICBzZXQgY2hpbGRyZW4gW2xpc3QgW2xpc3QgImFycmF5Li0xIiAiLTEiIDIg IiRpbnQ0IFxcKDJcXCkiXSBcCiAgCQkgIFtsaXN0ICJhcnJheS4wIiAiMCIgMiAiJGludDQgXFwo MlxcKSJdIFwKLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS12bGEtZm9ydHJhbi5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVz dHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MS45MC4yMDE2MDkwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4 cAkyMDE2LTA5LTA3IDIxOjUyOjEwLjI3MjU2MzA1MSArMDIwMAotKysrIGdkYi03LjExLjkwLjIw MTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cAkyMDE2LTA5LTA3 IDIxOjUzOjIyLjcxNjIxMDQ4OCArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcv Z2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCTIwMTctMDItMDcgMjA6NTM6 NDguODY4ODg3MzkxICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0 ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCTIwMTctMDItMDcgMjA6NTM6NTQuNDQ2OTI5NzU3 ICswMTAwCiBAQCAtMTcsNyArMTcsOSBAQAogICMgQXJyYXkgKFZMQSkuCiAgCkBAIC0xNDA1LDEx ICsxNDA1LDExIEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dk Yi5taS9taS12bGEtZm9ydHJhbi5leHAKICAgICJpbmZvIHR5cGUgdmFyaWFibGUgcHZsYTJfYXNz b2NpYXRlZCIKICBtaV9nZGJfdGVzdCAiNTkyLXZhci1zaG93LWZvcm1hdCBwdmxhMl9hc3NvY2lh dGVkIiBcCiAgICAiNTkyXFxeZG9uZSxmb3JtYXQ9XCJuYXR1cmFsXCIiIFwKLUluZGV4OiBnZGIt Ny4xMS45MC4yMDE2MDkwNy9nZGIvdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDkw Ny5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE2LTA5LTA3IDIxOjUyOjEwLjI3MjU2MzA1MSArMDIw MAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90eXBlcHJpbnQuYwkyMDE2LTA5LTA3IDIx OjUzOjIyLjcxNzIxMDQ5NyArMDIwMAotQEAgLTQ4NSw2ICs0ODUsMjUgQEAKKy0tLSBnZGItNy4x Mi41MC4yMDE3MDIwNy5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE3LTAyLTA3IDIwOjUzOjQ4Ljg2 OTg4NzM5OCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90eXBlcHJpbnQuYwky MDE3LTAyLTA3IDIwOjUzOjU0LjQ0NjkyOTc1NyArMDEwMAorQEAgLTQ3NSw2ICs0NzUsMjUgQEAK ICAgICAgICBwcmludGZfZmlsdGVyZWQgKCIgKi9cbiIpOyAgICAKICAgICAgfQogIApAQCAtMTQz NSwxMSArMTQzNSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3R5cGVwcmlu dC5jCiAgICBMQV9QUklOVF9UWVBFICh0eXBlLCAiIiwgZ2RiX3N0ZG91dCwgc2hvdywgMCwgJmZs YWdzKTsKICAgIHByaW50Zl9maWx0ZXJlZCAoIlxuIik7CiAgCi1JbmRleDogZ2RiLTcuMTEuOTAu MjAxNjA5MDcvZ2RiL3ZhbG9wcy5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Zh bG9wcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA5MDcub3JpZy9nZGIvdmFs b3BzLmMJMjAxNi0wOS0wNyAyMTo1Mjo1My43MDc5NTEyMzggKzAyMDAKLSsrKyBnZGItNy4xMS45 MC4yMDE2MDkwNy9nZGIvdmFsb3BzLmMJMjAxNi0wOS0wNyAyMTo1MzoyMi43MTcyMTA0OTcgKzAy MDAKLUBAIC0xNTYyLDYgKzE1NjIsMTkgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmln L2dkYi92YWxvcHMuYwkyMDE3LTAyLTA3IDIwOjUzOjQ4Ljg3MDg4NzQwNiArMDEwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi92YWxvcHMuYwkyMDE3LTAyLTA3IDIwOjUzOjU0LjQ0Nzky OTc2NSArMDEwMAorQEAgLTE1NjksNiArMTU2OSwxOSBAQAogICAgaWYgKFRZUEVfQ09ERSAoYmFz ZV90eXBlKSA9PSBUWVBFX0NPREVfUFRSKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKmVu Y190eXBlOwpAQCAtMTQ1OSw3ICsxNDU5LDcgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3 L2dkYi92YWxvcHMuYwogIAogICAgICAgIC8qIFdlIG1heSBiZSBwb2ludGluZyB0byBzb21ldGhp bmcgZW1iZWRkZWQgaW4gYSBsYXJnZXIgb2JqZWN0LgogICAgICAgICAgIEdldCB0aGUgcmVhbCB0 eXBlIG9mIHRoZSBlbmNsb3Npbmcgb2JqZWN0LiAgKi8KLUBAIC0xNTc3LDggKzE1OTAsNyBAQAor QEAgLTE1ODQsOCArMTU5Nyw3IEBACiAgICAgICAgZWxzZQogIAkvKiBSZXRyaWV2ZSB0aGUgZW5j bG9zaW5nIG9iamVjdCBwb2ludGVkIHRvLiAgKi8KICAJYXJnMiA9IHZhbHVlX2F0X2xhenkgKGVu Y190eXBlLCAKQEAgLTE0NjksMTEgKzE0NjksMTEgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYw OTA3L2dkYi92YWxvcHMuYwogIAogICAgICAgIGVuY190eXBlID0gdmFsdWVfdHlwZSAoYXJnMik7 CiAgICAgICAgcmV0dXJuIHJlYWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUgKGFyZzIsIGVuY190 eXBlLCBiYXNlX3R5cGUsIGFyZzEpOwotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi92 YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3ZhbHByaW50LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDkwNy5vcmlnL2dkYi92YWxwcmludC5jCTIw MTYtMDktMDcgMjE6NTI6MTAuMjczNTYzMDYwICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAxNjA5 MDcvZ2RiL3ZhbHByaW50LmMJMjAxNi0wOS0wNyAyMTo1MzoyMi43MTgyMTA1MDYgKzAyMDAKLUBA IC0xMTQxLDEyICsxMTQxLDYgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi92 YWxwcmludC5jCTIwMTctMDItMDcgMDI6NDg6NDcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu MTIuNTAuMjAxNzAyMDcvZ2RiL3ZhbHByaW50LmMJMjAxNy0wMi0wNyAyMDo1Mzo1NC40NDg5Mjk3 NzIgKzAxMDAKK0BAIC0xMTY1LDEyICsxMTY1LDYgQEAKICAgICAgICByZXR1cm4gMDsKICAgICAg fQogIAoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoIGIvZ2Ri LXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2gKaW5kZXggMjllZjU2My4uMWQyOTgyNSAxMDA2 NDQKLS0tIGEvZ2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2gKKysrIGIvZ2RiLXZsYS1p bnRlbC1zdHJpbmdidC1maXgucGF0Y2gKQEAgLTI3LDQwICsyNyw0MyBAQCBjYW5ub3QgcmVwcm9k dWNlIGl0LgogVGhhbmtzLAogSmFuCiAKLS0tLSAuL2dkYi9kd2FyZjJsb2MuYwkyMDE2LTA4LTI5 IDA0OjAxOjI1LjAwMDAwMDAwMCArMDIwMAotKysrIC4vZ2RiL2R3YXJmMmxvYy5jCTIwMTYtMDkt MDEgMTE6MDA6MjAuMjU4OTA5NDk0ICswMjAwCi1AQCAtMjI4OSw2ICsyMjg5LDE1IEBAIGNvbnN0 IHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHRfZnVuY3MgZHcKLSAgIGR3YXJmX2V4cHJfZ2V0X29i al9hZGRyCi0gfTsKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZHdhcmYybG9jLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9kd2FyZjJsb2Mu YwkyMDE3LTAyLTE2IDIzOjMxOjUzLjk3Nzg5MzI4OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjA3L2dkYi9kd2FyZjJsb2MuYwkyMDE3LTAyLTE2IDIzOjM3OjQ0LjYyNTUyMjA4MSArMDEw MAorQEAgLTIyODUsNiArMjI4NSwxMiBAQAorICAgY3R4LnBlcl9jdSA9IHBlcl9jdTsKKyAgIGN0 eC5vYmpfYWRkcmVzcyA9IDA7CiAgCi0rc3RhdGljIHZvaWQKLStzZWxlY3RfZnJhbWVfY2xlYW51 cCAodm9pZCAqYXJnKQotK3sKLSsgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSA9IChzdHJ1Y3Qg ZnJhbWVfaW5mbyAqKSBhcmc7Ci0rCisrc3RydWN0IGZyYW1lX2luZm8gKm9sZF9mcmFtZSAoZGVw cmVjYXRlZF9zYWZlX2dldF9zZWxlY3RlZF9mcmFtZSAoKSk7CisrVFJZCisrICB7CiArICBpZiAo ZnJhbWUgIT0gTlVMTCkKICsgICAgc2VsZWN0X2ZyYW1lIChmcmFtZSk7Ci0rfQogKwotIC8qIEV2 YWx1YXRlIGEgbG9jYXRpb24gZGVzY3JpcHRpb24sIHN0YXJ0aW5nIGF0IERBVEEgYW5kIHdpdGgg bGVuZ3RoCi0gICAgU0laRSwgdG8gZmluZCB0aGUgY3VycmVudCBsb2NhdGlvbiBvZiB2YXJpYWJs ZSBvZiBUWVBFIGluIHRoZQotICAgIGNvbnRleHQgb2YgRlJBTUUuICBCWVRFX09GRlNFVCBpcyBh cHBsaWVkIGFmdGVyIHRoZSBjb250ZW50cyBhcmUKLUBAIC0yMzE4LDYgKzIzMjcsMTEgQEAgZHdh cmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQorICAgc2NvcGVkX3ZhbHVlX21h cmsgZnJlZV92YWx1ZXM7CiAgCi0gICBjdHggPSBuZXdfZHdhcmZfZXhwcl9jb250ZXh0ICgpOwot ICAgb2xkX2NoYWluID0gbWFrZV9jbGVhbnVwX2ZyZWVfZHdhcmZfZXhwcl9jb250ZXh0IChjdHgp OwotKwotKyAgbWFrZV9jbGVhbnVwIChzZWxlY3RfZnJhbWVfY2xlYW51cCwgZGVwcmVjYXRlZF9z YWZlX2dldF9zZWxlY3RlZF9mcmFtZSAoKSk7Ci0rICBpZiAoZnJhbWUgIT0gTlVMTCkKLSsgICAg c2VsZWN0X2ZyYW1lIChmcmFtZSk7CisgICBjdHguZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2gg KG9iamZpbGUpOworQEAgLTI0NzEsNiArMjQ3NywxNSBAQAorIAorICAgc2V0X3ZhbHVlX2luaXRp YWxpemVkIChyZXR2YWwsIGN0eC5pbml0aWFsaXplZCk7CisgCisrICB9CisrQ0FUQ0ggKGV4LCBS RVRVUk5fTUFTS19BTEwpCisrICB7CisrICAgIHNlbGVjdF9mcmFtZSAob2xkX2ZyYW1lKTsKKysg ICAgdGhyb3dfZXhjZXB0aW9uIChleCk7CisrICB9CisrRU5EX0NBVENICisrc2VsZWN0X2ZyYW1l IChvbGRfZnJhbWUpOwogKwotICAgdmFsdWVfY2hhaW4gPSBtYWtlX2NsZWFudXBfdmFsdWVfZnJl ZV90b19tYXJrICh2YWx1ZV9tYXJrICgpKTsKKyAgIHJldHVybiByZXR2YWw7CisgfQogIAotICAg Y3R4LT5nZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7Ci1JbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJh bWUtc3R1Yi5mOTAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFt ZS1zdHViLmY5MAkyMDE1LTA1LTMxIDE2OjE0OjA1Ljg0NDU0NTM0NCArMDIwMAorKysrIGdkYi03 LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1m cmFtZS1zdHViLmY5MAkyMDE3LTAyLTE2IDIzOjMyOjA5LjU0NjAxMDAwMiArMDEwMAogQEAgLTAs MCArMSwyNCBAQAogKyEgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCiArIQpAQCAtODYsMTAgKzg5LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS1zdHViLmY5CiArICBy ZWFsIDo6IGR1bW15CiArICBkdW1teSA9IDEKICtlbmQgc3Vicm91dGluZSBiYXIKLUluZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhl ci1mcmFtZS5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZXhw CTIwMTUtMDUtMzEgMTY6MTQ6MDUuODQ1NTQ1MzUxICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmV4cAky MDE3LTAyLTE2IDIzOjMyOjA5LjU0NjAxMDAwMiArMDEwMAogQEAgLTAsMCArMSwzOSBAQAogKyMg Q29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMzAs MTAgKzEzMywxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZXhwCiArfQogKwogK2dkYl90ZXN0ICJidCIg e2ZvbyBcKHN0cmluZz0naGVsbG8nLip9Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZjkwCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVy LWZyYW1lLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmY5MAkyMDE1LTA1LTMxIDE2OjE0OjA1Ljg0 NTU0NTM1MSArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5mOTAJMjAxNy0wMi0xNiAyMzozMjowOS41NDYw MTAwMDIgKzAxMDAKIEBAIC0wLDAgKzEsMzYgQEAKICshIENvcHlyaWdodCAyMDEwIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKCmRpZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dkYi5z cGVjCmluZGV4IDA5NWM5MzQuLmRmNzE5NDkgMTAwNjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dk Yi5zcGVjCkBAIC0xOCwxNSArMTgsMTUgQEAKIE5hbWU6ICV7P3NjbF9wcmVmaXh9Z2RiCiAKICMg RnJlZXplIGl0IHdoZW4gR0RCIGdldHMgYnJhbmNoZWQKLSVnbG9iYWwgc25hcHNyYyAgICAyMDE2 MDgwMQorJWdsb2JhbCBzbmFwc3JjICAgIDIwMTcwMjI2CiAjIFNlZSB0aW1lc3RhbXAgb2Ygc291 cmNlIGdudWxpYiBpbnN0YWxsZWQgaW50byBnZGIvZ251bGliLyAuCiAlZ2xvYmFsIHNuYXBnbnVs aWIgMjAxNTA4MjIKICVnbG9iYWwgdGFybmFtZSBnZGItJXt2ZXJzaW9ufQotVmVyc2lvbjogNy4x Mi4xCitWZXJzaW9uOiA3LjEyLjUwLiV7c25hcHNyY30KIAogIyBUaGUgcmVsZWFzZSBhbHdheXMg Y29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVw c3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRl bmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiA0NyV7P2Rpc3R9CitS ZWxlYXNlOiAxJXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrIGFuZCBHUEx2Mysgd2l0aCBleGNl cHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTCsgYW5k IExHUEx2MisgYW5kIExHUEx2MysgYW5kIEJTRCBhbmQgUHVibGljIERvbWFpbiBhbmQgR0ZETAog R3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwpAQCAtMjc0LDcgKzI3NCw3IEBAIFBhdGNoMjMx OiBnZGItNi4zLWJ6MjAyNjg5LWV4ZWMtZnJvbS1wdGhyZWFkLXRlc3QucGF0Y2gKIAogIyBCYWNr cG9ydGVkIGZpeHVwcyBwb3N0IHRoZSBzb3VyY2UgdGFyYmFsbC4KICNYZHJvcDogSnVzdCBiYWNr cG9ydHMuCi1QYXRjaDIzMjogZ2RiLXVwc3RyZWFtLnBhdGNoCisjUGF0Y2gyMzI6IGdkYi11cHN0 cmVhbS5wYXRjaAogCiAjIFRlc3RjYXNlIGZvciBQUEMgUG93ZXI2L0RGUCBpbnN0cnVjdGlvbnMg ZGlzYXNzZW1ibHkgKEJaIDIzMDAwMCkuCiAjPWZlZG9yYXRlc3QrcHBjCkBAIC0zNDUsMTAgKzM0 NSw2IEBAIFBhdGNoMjg5OiBnZGItNi41LWlhNjQtbGlidW53aW5kLWxlYWstdGVzdC5wYXRjaAog Iz1mZWRvcmF0ZXN0CiBQYXRjaDI5MDogZ2RiLTYuNS1taXNzZWQtdHJhcC1vbi1zdGVwLXRlc3Qu cGF0Y2gKIAotIyBTdXBwb3J0IERXX1RBR19pbnRlcmZhY2VfdHlwZSB0aGUgc2FtZSB3YXkgYXMg RFdfVEFHX2NsYXNzX3R5cGUgKEJaIDQyNjYwMCkuCi0jPWZlZG9yYXRlc3QKLVBhdGNoMjk0OiBn ZGItNi43LWJ6NDI2NjAwLURXX1RBR19pbnRlcmZhY2VfdHlwZS10ZXN0LnBhdGNoCi0KICMgVGVz dCBnY29yZSBtZW1vcnkgYW5kIHRpbWUgcmVxdWlyZW1lbnRzIGZvciBsYXJnZSBpbmZlcmlvcnMu CiAjPWZlZG9yYXRlc3QKIFBhdGNoMjk2OiBnZGItNi41LWdjb3JlLWJ1ZmZlci1saW1pdC10ZXN0 LnBhdGNoCkBAIC02MjksMjAgKzYyNSwxMCBAQCBQYXRjaDExMjM6IGdkYi1yaGJ6MTMyNTc5NS1m cmFtZWZpbHRlcnMtdGVzdC5wYXRjaAogIyBbZHRzK2VsN10gW3g4NipdIEJ1bmRsZSBsaW51eF9w ZXJmLmggZm9yIGxpYmlwdCAoUkggQlogMTI1NjUxMykuCiBQYXRjaDExNDM6IGdkYi1saW51eF9w ZXJmLWJ1bmRsZS5wYXRjaAogCi0jIFtyaGVsNis3XSBGaXggY29tcGF0aWJpbGl0eSBvZiBiaXNv biA8My4xIGFuZCBnY2MgPj02LgotUGF0Y2gxMTQ0OiBnZGItYmlzb24tb2xkLnBhdGNoCi0KLSMg W3Rlc3RzdWl0ZV0gTW9yZSB0ZXN0c3VpdGUgZml4ZXMuCi1QYXRjaDExNDU6IGdkYi10ZXN0c3Vp dGUtY2FzdHMucGF0Y2gKLVBhdGNoMTE0NjogZ2RiLXRlc3RzdWl0ZS1tLXN0YXRpYy5wYXRjaAot CiAjIEZpeCBUTFMgKHN1Y2ggYXMgJ2Vycm5vJykgcmVncmVzc2lvbi4KIFBhdGNoMTE0OTogZ2Ri LXRscy0xb2YyLnBhdGNoCiBQYXRjaDExNTA6IGdkYi10bHMtMm9mMi5wYXRjaAogCi0jIFt0ZXN0 c3VpdGVdIEZpeCBmYWxzZSBGQUlMIGZvciBnZGIuYmFzZS9tb3Jlc3RhY2suZXhwLgotUGF0Y2gx MTUxOiBnZGItdGVzdHN1aXRlLW1vcmVzdGFjay1nb2xkLnBhdGNoCi0KICMgRml4IGdkYi1oZWFk bGVzcyAvdXNyL2Jpbi8gZXhlY3V0YWJsZXMgKEJaIDEzOTAyNTEpLgogUGF0Y2gxMTUyOiBnZGIt bGliZXhlYy1hZGQtaW5kZXgucGF0Y2gKIApAQCAtODA4LDYgKzc5NCw5IEBAIEJ1aWxkUmVxdWly ZXM6IHZhbGdyaW5kJXtiaXRzX2xvY2FsfSB2YWxncmluZCV7Yml0c19vdGhlcn0KICVpZiAwJXsh P3JoZWw6MX0gfHwgMCV7P3JoZWx9ID4gNgogQnVpbGRSZXF1aXJlczogeHoKICVlbmRpZgorJWlm IDAleyE/cmhlbDoxfSB8fCAwJXs/cmhlbH0gPiA3CitCdWlsZFJlcXVpcmVzOiBydXN0CislZW5k aWYKIAogJWVuZGlmICMgMCV7P193aXRoX3Rlc3RzdWl0ZToxfQogCkBAIC04ODEsNyArODcwLDcg QEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICMgTWF0Y2ggdGhlIEZlZG9yYSdz IHZlcnNpb24gaW5mby4KICVwYXRjaDIgLXAxCiAKLSVwYXRjaDIzMiAtcDEKKyNwYXRjaDIzMiAt cDEKICVwYXRjaDM0OSAtcDEKICVwYXRjaDEwNTggLXAxCiAlcGF0Y2gxMTMyIC1wMQpAQCAtOTI3 LDcgKzkxNiw2IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAlcGF0Y2gyODcg LXAxCiAlcGF0Y2gyODkgLXAxCiAlcGF0Y2gyOTAgLXAxCi0lcGF0Y2gyOTQgLXAxCiAlcGF0Y2gy OTYgLXAxCiAlcGF0Y2gyOTggLXAxCiAlcGF0Y2gzMDkgLXAxCkBAIC0xMDE2LDEyICsxMDA0LDgg QEAgZG9uZQogJXBhdGNoMTExOCAtcDEKICVwYXRjaDExMjMgLXAxCiAlcGF0Y2gxMTQzIC1wMQot JXBhdGNoMTE0NCAtcDEKLSVwYXRjaDExNDUgLXAxCi0lcGF0Y2gxMTQ2IC1wMQogJXBhdGNoMTE0 OSAtcDEKICVwYXRjaDExNTAgLXAxCi0lcGF0Y2gxMTUxIC1wMQogJXBhdGNoMTE1MiAtcDEKICVw YXRjaDExNTMgLXAxCiAlcGF0Y2gxMTU1IC1wMQpAQCAtMTU5NCw2ICsxNTc4LDEwIEBAIHRoZW4K IGZpCiAKICVjaGFuZ2Vsb2cKKyogTW9uIEZlYiAyNyAyMDE3IEphbiBLcmF0b2NodmlsIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTIuNTAuMjAxNzAyMjYtMS5mYzI2CistIFJlYmFz ZSB0byBwcmUtNy4xMyBGU0YgR0RCIHRydW5rLgorLSBEcm9wcGVkIGdkYi02LjctYno0MjY2MDAt RFdfVEFHX2ludGVyZmFjZV90eXBlLXRlc3QucGF0Y2ggYXMgR0NKIGlzIG5vIG1vcmUuCisKICog RnJpIEZlYiAyNCAyMDE3IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PiAtIDcuMTIuMS00Ny5mYzI2CiAtIE5ldyB0ZXN0Y2FzZSBmb3I6IEZpeCA8dGFiPi1jb21wbGV0 aW9uIGNyYXNoIChHYXJ5IEJlbnNvbiwgUkggQlogMTM5ODM4NykuCiAtIFt0ZXN0c3VpdGVdIFVz ZSBtb3JlIHN0YW5kYXJkX291dHB1dF9maWxlLgoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3Vy Y2VzCmluZGV4IGRhMDYxMmUuLjcyY2Y0NGEgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291 cmNlcwpAQCAtMSwzICsxLDMgQEAKIFNIQTUxMiAoZ2RiLWxpYnN0ZGMrKy12My1weXRob24tNi4z LjEtMjAxNzAyMTIudGFyLnh6KSA9IDIyYWQ0MTg3ZDZiYjk4NTFlY2YzODljM2ZmNGM2OGYzM2Nj ZjU2MDJkOGY1MWJjMzM3MjE1YzcwMGQ1NmM5MDczYjNmYjQwZWNlM2Y1ODkwMTMxNTE2MWY3NmE0 ZmQxZDY0NjNjNjIzNjUwMzE3YWQ5NmZkOWUzZjRhYmE3MjUyCiBTSEE1MTIgKHYxLjUudGFyLmd6 KSA9IGVhM2U3NjI5MWQ1YjA3N2Q1YjQyMDYxODk4YTFmNzBhZjZjYmRiY2NiN2QwNWM1OTkwNGYz MjJjYTFjMDNmNzU5NmNhYzZhOTY2YjgwYjEyZDJjMmQ4NjIxMmYxN2Q2YmRlMDJiMWRhZjkyYmU2 MmU0OWFiY2IyMzRlMmJhY2JkCi1TSEE1MTIgKGdkYi03LjEyLjEudGFyLnh6KSA9IDBhYzhkMGE0 OTUxMDM2MTFlZjQxMTY3YTA4MzEzYTAxMGRjZTZjYTRjNmQ4MjdjYmU4NTU4YTBjMWExYThhNmJm YTUzZjFiNzcwNDI1MTI4OWNhYmFiYmZhYWY5ZTA3NTU1MGNkZjc0MWE1NGQ2Y2Q5Y2EzNDMzZDkx MGVmY2Q4CitTSEE1MTIgKGdkYi03LjEyLjUwLjIwMTcwMjI2LnRhci54eikgPSBjZjFiNTVjMDEx ZmM2ZGZlZTY0YzBkMmU4ZmFjZWE2MjcwYzRiMWU1OTY2NDI3YmM4ZTJmMzZiYzI1MTVkNWQ1MWVh NmExYTRlMGE1MzAwZGZhZDQwZmY3OThkMTc2M2Y3ZjkzOTdmM2QwM2ZmZjVhYjJmMWNjODhjNGVh ZDczNwo=