From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Merge Fedora packaging changes from Fedora 24 gdb-7.11.1-83.fc24: Date: Thu, 23 Jul 2026 18:32:29 GMT Message-ID: <178483154925.1.15275148081667195248.rpms-gdb-8cff818ba3b6@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 8cff818ba3b6b5a0e7f82f6da06b28a36cd6217f QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogOGNmZjgxOGJhM2I2YjVhMGU3ZjgyZjZkYTA2YjI4YTM2 Y2Q2MjE3ZgpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxNi0wOC0yM1QyMTowNDoyNyswMjowMApTdGF0cyAgOiArNDQyOS8tNDg3 MiBpbiA0MyBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Jw bXMvZ2RiL2MvOGNmZjgxOGJhM2I2YjVhMGU3ZjgyZjZkYTA2YjI4YTM2Y2Q2MjE3Zj9icmFuY2g9 Zml4LWR1cC1wYXRjaAoKTG9nOgpNZXJnZSBGZWRvcmEgcGFja2FnaW5nIGNoYW5nZXMgZnJvbSBG ZWRvcmEgMjQgZ2RiLTcuMTEuMS04My5mYzI0OgoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3Jl IGIvLmdpdGlnbm9yZQppbmRleCAyYzQ2MDBmLi45MDZhMWYzIDEwMDY0NAotLS0gYS8uZ2l0aWdu b3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTEsMiArMSwzIEBACi0vZ2RiLWxpYnN0ZGMrKy12My1w eXRob24tcjIyNTUyMS50YXIueHoKKy9nZGItbGlic3RkYysrLXYzLXB5dGhvbi02LjEuMS0yMDE2 MDgxNy50YXIueHoKKy92MS41LnRhci5negogL2dkYi03LjExLjkwLjIwMTYwODA3LnRhci54egoK ZGlmZiAtLWdpdCBhL2dkYi1saW51eF9wZXJmLWJ1bmRsZS5wYXRjaCBiL2dkYi1saW51eF9wZXJm LWJ1bmRsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjgwMjc5 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWxpbnV4X3BlcmYtYnVuZGxlLnBhdGNoCkBAIC0wLDAg KzEsMjIyIEBACitJbmRleDogZ2RiLTcuMTEuMS9nZGIvbmF0L2xpbnV4LWJ0cmFjZS5oCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuMTEuMS5vcmlnL2dkYi9uYXQvbGludXgtYnRyYWNlLmgJMjAxNi0w Mi0xMCAwNDoxOTozOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMS4xL2dkYi9uYXQvbGlu dXgtYnRyYWNlLmgJMjAxNi0wOC0xOSAyMDo0OToxOC43MzU0NzcyNTEgKzAyMDAKK0BAIC0yOCw2 ICsyOCwxNzcgQEAKKyAjICBpbmNsdWRlIDxsaW51eC9wZXJmX2V2ZW50Lmg+CisgI2VuZGlmCisg CisrI2lmZGVmIFBFUkZfQVRUUl9TSVpFX1ZFUjVfQlVORExFCisrI2lmbmRlZiBIQVZFX0xJTlVY X1BFUkZfRVZFTlRfSAorKyMgZXJyb3IgIlBFUkZfQVRUUl9TSVpFX1ZFUjVfQlVORExFICYmICFI QVZFX0xJTlVYX1BFUkZfRVZFTlRfSCIKKysjZW5kaWYKKysjaWZuZGVmIFBFUkZfQVRUUl9TSVpF X1ZFUjUKKysjZGVmaW5lIFBFUkZfQVRUUl9TSVpFX1ZFUjUKKysjZGVmaW5lIHBlcmZfZXZlbnRf bW1hcF9wYWdlIHBlcmZfZXZlbnRfbW1hcF9wYWdlX2J1bmRsZQorKy8vIGtlcm5lbC1oZWFkZXJz LTMuMTAuMC00OTMuZWw3Lng4Nl82NC91c3IvaW5jbHVkZS9saW51eC9wZXJmX2V2ZW50LmgKKysv KgorKyAqIFN0cnVjdHVyZSBvZiB0aGUgcGFnZSB0aGF0IGNhbiBiZSBtYXBwZWQgdmlhIG1tYXAK KysgKi8KKytzdHJ1Y3QgcGVyZl9ldmVudF9tbWFwX3BhZ2UgeworKwlfX3UzMgl2ZXJzaW9uOwkJ LyogdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBzdHJ1Y3R1cmUgKi8KKysJX191MzIJY29tcGF0X3Zl cnNpb247CQkvKiBsb3dlc3QgdmVyc2lvbiB0aGlzIGlzIGNvbXBhdCB3aXRoICovCisrCisrCS8q CisrCSAqIEJpdHMgbmVlZGVkIHRvIHJlYWQgdGhlIGh3IGV2ZW50cyBpbiB1c2VyLXNwYWNlLgor KwkgKgorKwkgKiAgIHUzMiBzZXEsIHRpbWVfbXVsdCwgdGltZV9zaGlmdCwgaW5kZXgsIHdpZHRo OworKwkgKiAgIHU2NCBjb3VudCwgZW5hYmxlZCwgcnVubmluZzsKKysJICogICB1NjQgY3ljLCB0 aW1lX29mZnNldDsKKysJICogICBzNjQgcG1jID0gMDsKKysJICoKKysJICogICBkbyB7CisrCSAq ICAgICBzZXEgPSBwYy0+bG9jazsKKysJICogICAgIGJhcnJpZXIoKQorKwkgKgorKwkgKiAgICAg ZW5hYmxlZCA9IHBjLT50aW1lX2VuYWJsZWQ7CisrCSAqICAgICBydW5uaW5nID0gcGMtPnRpbWVf cnVubmluZzsKKysJICoKKysJICogICAgIGlmIChwYy0+Y2FwX3Vzcl90aW1lICYmIGVuYWJsZWQg IT0gcnVubmluZykgeworKwkgKiAgICAgICBjeWMgPSByZHRzYygpOworKwkgKiAgICAgICB0aW1l X29mZnNldCA9IHBjLT50aW1lX29mZnNldDsKKysJICogICAgICAgdGltZV9tdWx0ICAgPSBwYy0+ dGltZV9tdWx0OworKwkgKiAgICAgICB0aW1lX3NoaWZ0ICA9IHBjLT50aW1lX3NoaWZ0OworKwkg KiAgICAgfQorKwkgKgorKwkgKiAgICAgaW5kZXggPSBwYy0+aW5kZXg7CisrCSAqICAgICBjb3Vu dCA9IHBjLT5vZmZzZXQ7CisrCSAqICAgICBpZiAocGMtPmNhcF91c2VyX3JkcG1jICYmIGluZGV4 KSB7CisrCSAqICAgICAgIHdpZHRoID0gcGMtPnBtY193aWR0aDsKKysJICogICAgICAgcG1jID0g cmRwbWMoaW5kZXggLSAxKTsKKysJICogICAgIH0KKysJICoKKysJICogICAgIGJhcnJpZXIoKTsK KysJICogICB9IHdoaWxlIChwYy0+bG9jayAhPSBzZXEpOworKwkgKgorKwkgKiBOT1RFOiBmb3Ig b2J2aW91cyByZWFzb24gdGhpcyBvbmx5IHdvcmtzIG9uIHNlbGYtbW9uaXRvcmluZworKwkgKiAg ICAgICBwcm9jZXNzZXMuCisrCSAqLworKwlfX3UzMglsb2NrOwkJCS8qIHNlcWxvY2sgZm9yIHN5 bmNocm9uaXphdGlvbiAqLworKwlfX3UzMglpbmRleDsJCQkvKiBoYXJkd2FyZSBldmVudCBpZGVu dGlmaWVyICovCisrCV9fczY0CW9mZnNldDsJCQkvKiBhZGQgdG8gaGFyZHdhcmUgZXZlbnQgdmFs dWUgKi8KKysJX191NjQJdGltZV9lbmFibGVkOwkJLyogdGltZSBldmVudCBhY3RpdmUgKi8KKysJ X191NjQJdGltZV9ydW5uaW5nOwkJLyogdGltZSBldmVudCBvbiBjcHUgKi8KKysJdW5pb24gewor KwkJX191NjQJY2FwYWJpbGl0aWVzOworKwkJc3RydWN0IHsKKysJCQlfX3U2NAljYXBfYml0MAkJ OiAxLCAvKiBBbHdheXMgMCwgZGVwcmVjYXRlZCwgc2VlIGNvbW1pdCA4NjBmMDg1Yjc0ZTkgKi8K KysJCQkJY2FwX2JpdDBfaXNfZGVwcmVjYXRlZAk6IDEsIC8qIEFsd2F5cyAxLCBzaWduYWxzIHRo YXQgYml0IDAgaXMgemVybyAqLworKworKwkJCQljYXBfdXNlcl9yZHBtYwkJOiAxLCAvKiBUaGUg UkRQTUMgaW5zdHJ1Y3Rpb24gY2FuIGJlIHVzZWQgdG8gcmVhZCBjb3VudHMgKi8KKysJCQkJY2Fw X3VzZXJfdGltZQkJOiAxLCAvKiBUaGUgdGltZV8qIGZpZWxkcyBhcmUgdXNlZCAqLworKwkJCQlj YXBfdXNlcl90aW1lX3plcm8JOiAxLCAvKiBUaGUgdGltZV96ZXJvIGZpZWxkIGlzIHVzZWQgKi8K KysJCQkJY2FwX19fX19yZXMJCTogNTk7CisrCQl9OworKwl9OworKworKwkvKgorKwkgKiBJZiBj YXBfdXNlcl9yZHBtYyB0aGlzIGZpZWxkIHByb3ZpZGVzIHRoZSBiaXQtd2lkdGggb2YgdGhlIHZh bHVlCisrCSAqIHJlYWQgdXNpbmcgdGhlIHJkcG1jKCkgb3IgZXF1aXZhbGVudCBpbnN0cnVjdGlv bi4gVGhpcyBjYW4gYmUgdXNlZAorKwkgKiB0byBzaWduIGV4dGVuZCB0aGUgcmVzdWx0IGxpa2U6 CisrCSAqCisrCSAqICAgcG1jIDw8PSA2NCAtIHdpZHRoOworKwkgKiAgIHBtYyA+Pj0gNjQgLSB3 aWR0aDsgLy8gc2lnbmVkIHNoaWZ0IHJpZ2h0CisrCSAqICAgY291bnQgKz0gcG1jOworKwkgKi8K KysJX191MTYJcG1jX3dpZHRoOworKworKwkvKgorKwkgKiBJZiBjYXBfdXNyX3RpbWUgdGhlIGJl bG93IGZpZWxkcyBjYW4gYmUgdXNlZCB0byBjb21wdXRlIHRoZSB0aW1lCisrCSAqIGRlbHRhIHNp bmNlIHRpbWVfZW5hYmxlZCAoaW4gbnMpIHVzaW5nIHJkdHNjIG9yIHNpbWlsYXIuCisrCSAqCisr CSAqICAgdTY0IHF1b3QsIHJlbTsKKysJICogICB1NjQgZGVsdGE7CisrCSAqCisrCSAqICAgcXVv dCA9IChjeWMgPj4gdGltZV9zaGlmdCk7CisrCSAqICAgcmVtID0gY3ljICYgKCgodTY0KTEgPDwg dGltZV9zaGlmdCkgLSAxKTsKKysJICogICBkZWx0YSA9IHRpbWVfb2Zmc2V0ICsgcXVvdCAqIHRp bWVfbXVsdCArCisrCSAqICAgICAgICAgICAgICAoKHJlbSAqIHRpbWVfbXVsdCkgPj4gdGltZV9z aGlmdCk7CisrCSAqCisrCSAqIFdoZXJlIHRpbWVfb2Zmc2V0LHRpbWVfbXVsdCx0aW1lX3NoaWZ0 IGFuZCBjeWMgYXJlIHJlYWQgaW4gdGhlCisrCSAqIHNlcWNvdW50IGxvb3AgZGVzY3JpYmVkIGFi b3ZlLiBUaGlzIGRlbHRhIGNhbiB0aGVuIGJlIGFkZGVkIHRvCisrCSAqIGVuYWJsZWQgYW5kIHBv c3NpYmxlIHJ1bm5pbmcgKGlmIGluZGV4KSwgaW1wcm92aW5nIHRoZSBzY2FsaW5nOgorKwkgKgor KwkgKiAgIGVuYWJsZWQgKz0gZGVsdGE7CisrCSAqICAgaWYgKGluZGV4KQorKwkgKiAgICAgcnVu bmluZyArPSBkZWx0YTsKKysJICoKKysJICogICBxdW90ID0gY291bnQgLyBydW5uaW5nOworKwkg KiAgIHJlbSAgPSBjb3VudCAlIHJ1bm5pbmc7CisrCSAqICAgY291bnQgPSBxdW90ICogZW5hYmxl ZCArIChyZW0gKiBlbmFibGVkKSAvIHJ1bm5pbmc7CisrCSAqLworKwlfX3UxNgl0aW1lX3NoaWZ0 OworKwlfX3UzMgl0aW1lX211bHQ7CisrCV9fdTY0CXRpbWVfb2Zmc2V0OworKwkvKgorKwkgKiBJ ZiBjYXBfdXNyX3RpbWVfemVybywgdGhlIGhhcmR3YXJlIGNsb2NrIChlLmcuIFRTQykgY2FuIGJl IGNhbGN1bGF0ZWQKKysJICogZnJvbSBzYW1wbGUgdGltZXN0YW1wcy4KKysJICoKKysJICogICB0 aW1lID0gdGltZXN0YW1wIC0gdGltZV96ZXJvOworKwkgKiAgIHF1b3QgPSB0aW1lIC8gdGltZV9t dWx0OworKwkgKiAgIHJlbSAgPSB0aW1lICUgdGltZV9tdWx0OworKwkgKiAgIGN5YyA9IChxdW90 IDw8IHRpbWVfc2hpZnQpICsgKHJlbSA8PCB0aW1lX3NoaWZ0KSAvIHRpbWVfbXVsdDsKKysJICoK KysJICogQW5kIHZpY2UgdmVyc2E6CisrCSAqCisrCSAqICAgcXVvdCA9IGN5YyA+PiB0aW1lX3No aWZ0OworKwkgKiAgIHJlbSAgPSBjeWMgJiAoKCh1NjQpMSA8PCB0aW1lX3NoaWZ0KSAtIDEpOwor KwkgKiAgIHRpbWVzdGFtcCA9IHRpbWVfemVybyArIHF1b3QgKiB0aW1lX211bHQgKworKwkgKiAg ICAgICAgICAgICAgICgocmVtICogdGltZV9tdWx0KSA+PiB0aW1lX3NoaWZ0KTsKKysJICovCisr CV9fdTY0CXRpbWVfemVybzsKKysJX191MzIJc2l6ZTsJCQkvKiBIZWFkZXIgc2l6ZSB1cCB0byBf X3Jlc2VydmVkW10gZmllbGRzLiAqLworKworKwkJLyoKKysJCSAqIEhvbGUgZm9yIGV4dGVuc2lv biBvZiB0aGUgc2VsZiBtb25pdG9yIGNhcGFiaWxpdGllcworKwkJICovCisrCisrCV9fdTgJX19y ZXNlcnZlZFsxMTgqOCs0XTsJLyogYWxpZ24gdG8gMWsuICovCisrCisrCS8qCisrCSAqIENvbnRy b2wgZGF0YSBmb3IgdGhlIG1tYXAoKSBkYXRhIGJ1ZmZlci4KKysJICoKKysJICogVXNlci1zcGFj ZSByZWFkaW5nIHRoZSBAZGF0YV9oZWFkIHZhbHVlIHNob3VsZCBpc3N1ZSBhbiBzbXBfcm1iKCks CisrCSAqIGFmdGVyIHJlYWRpbmcgdGhpcyB2YWx1ZS4KKysJICoKKysJICogV2hlbiB0aGUgbWFw cGluZyBpcyBQUk9UX1dSSVRFIHRoZSBAZGF0YV90YWlsIHZhbHVlIHNob3VsZCBiZQorKwkgKiB3 cml0dGVuIGJ5IHVzZXJzcGFjZSB0byByZWZsZWN0IHRoZSBsYXN0IHJlYWQgZGF0YSwgYWZ0ZXIg aXNzdWVpbmcKKysJICogYW4gc21wX21iKCkgdG8gc2VwYXJhdGUgdGhlIGRhdGEgcmVhZCBmcm9t IHRoZSAtPmRhdGFfdGFpbCBzdG9yZS4KKysJICogSW4gdGhpcyBjYXNlIHRoZSBrZXJuZWwgd2ls bCBub3Qgb3Zlci13cml0ZSB1bnJlYWQgZGF0YS4KKysJICoKKysJICogU2VlIHBlcmZfb3V0cHV0 X3B1dF9oYW5kbGUoKSBmb3IgdGhlIGRhdGEgb3JkZXJpbmcuCisrCSAqCisrCSAqIGRhdGFfe29m ZnNldCxzaXplfSBpbmRpY2F0ZSB0aGUgbG9jYXRpb24gYW5kIHNpemUgb2YgdGhlIHBlcmYgcmVj b3JkCisrCSAqIGJ1ZmZlciB3aXRoaW4gdGhlIG1tYXBwZWQgYXJlYS4KKysJICovCisrCV9fdTY0 ICAgZGF0YV9oZWFkOwkJLyogaGVhZCBpbiB0aGUgZGF0YSBzZWN0aW9uICovCisrCV9fdTY0CWRh dGFfdGFpbDsJCS8qIHVzZXItc3BhY2Ugd3JpdHRlbiB0YWlsICovCisrCV9fdTY0CWRhdGFfb2Zm c2V0OwkJLyogd2hlcmUgdGhlIGJ1ZmZlciBzdGFydHMgKi8KKysJX191NjQJZGF0YV9zaXplOwkJ LyogZGF0YSBidWZmZXIgc2l6ZSAqLworKworKwkvKgorKwkgKiBBVVggYXJlYSBpcyBkZWZpbmVk IGJ5IGF1eF97b2Zmc2V0LHNpemV9IGZpZWxkcyB0aGF0IHNob3VsZCBiZSBzZXQKKysJICogYnkg dGhlIHVzZXJzcGFjZSwgc28gdGhhdAorKwkgKgorKwkgKiAgIGF1eF9vZmZzZXQgPj0gZGF0YV9v ZmZzZXQgKyBkYXRhX3NpemUKKysJICoKKysJICogcHJpb3IgdG8gbW1hcCgpaW5nIGl0LiBTaXpl IG9mIHRoZSBtbWFwKCllZCBhcmVhIHNob3VsZCBiZSBhdXhfc2l6ZS4KKysJICoKKysJICogUmlu ZyBidWZmZXIgcG9pbnRlcnMgYXV4X3toZWFkLHRhaWx9IGhhdmUgdGhlIHNhbWUgc2VtYW50aWNz IGFzCisrCSAqIGRhdGFfe2hlYWQsdGFpbH0gYW5kIHNhbWUgb3JkZXJpbmcgcnVsZXMgYXBwbHku CisrCSAqLworKwlfX3U2NAlhdXhfaGVhZDsKKysJX191NjQJYXV4X3RhaWw7CisrCV9fdTY0CWF1 eF9vZmZzZXQ7CisrCV9fdTY0CWF1eF9zaXplOworK307CisrI2VuZGlmIC8vIFBFUkZfQVRUUl9T SVpFX1ZFUjUKKysjZW5kaWYgLy8gUEVSRl9BVFRSX1NJWkVfVkVSNV9CVU5ETEUKKysKKyBzdHJ1 Y3QgdGFyZ2V0X29wczsKKyAKKyAjaWYgSEFWRV9MSU5VWF9QRVJGX0VWRU5UX0gKK0luZGV4OiBn ZGItNy4xMS4xL2dkYi9jb25maWd1cmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS4xLm9yaWcv Z2RiL2NvbmZpZ3VyZQkyMDE2LTA4LTE5IDIwOjQ3OjExLjQ4ODMyNTE0NCArMDIwMAorKysrIGdk Yi03LjExLjEvZ2RiL2NvbmZpZ3VyZQkyMDE2LTA4LTE5IDIwOjQ3OjExLjY1ODMyNjY4NCArMDIw MAorQEAgLTEwNjM1LDcgKzEwNjM1LDcgQEAKKyAKKyAjaW5jbHVkZSA8bGludXgvcGVyZl9ldmVu dC5oPgorICNpZm5kZWYgUEVSRl9BVFRSX1NJWkVfVkVSNQorLSMgZXJyb3IKKysvLyBlcnJvciAv LyBQRVJGX0FUVFJfU0laRV9WRVI1X0JVTkRMRSBpcyBub3QgYXZhaWxhYmxlIGhlcmUgLSBGZWRv cmErUkhFTAorICNlbmRpZgorIAorIF9BQ0VPRgorSW5kZXg6IGdkYi03LjExLjEvZ2RiL2NvbmZp Z3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjEub3JpZy9nZGIvY29uZmlndXJlLmFj CTIwMTYtMDgtMTkgMjA6NDc6MTEuNDg5MzI1MTU0ICswMjAwCisrKysgZ2RiLTcuMTEuMS9nZGIv Y29uZmlndXJlLmFjCTIwMTYtMDgtMTkgMjA6NDc6MTEuNjU5MzI2NjkzICswMjAwCitAQCAtMTQ1 Miw3ICsxNDUyLDcgQEAKKyAgIEFDX1BSRVBST0NfSUZFTFNFKEFDX0xBTkdfU09VUkNFKFtbCisg I2luY2x1ZGUgPGxpbnV4L3BlcmZfZXZlbnQuaD4KKyAjaWZuZGVmIFBFUkZfQVRUUl9TSVpFX1ZF UjUKKy0jIGVycm9yCisrLy8gZXJyb3IgLy8gUEVSRl9BVFRSX1NJWkVfVkVSNV9CVU5ETEUgaXMg bm90IGF2YWlsYWJsZSBoZXJlIC0gRmVkb3JhK1JIRUwKKyAjZW5kaWYKKyAgIF1dKSwgW3BlcmZf ZXZlbnQ9eWVzXSwgW3BlcmZfZXZlbnQ9bm9dKQorICAgaWYgdGVzdCAiJHBlcmZfZXZlbnQiICE9 IHllczsgdGhlbgorLS0tIGdkYi03LjExLjEvZ2RiL2dkYi5jLW9yaWcJMjAxNi0wMi0xMCAwNDox OTozOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMS4xL2dkYi9nZGIuYwkyMDE2LTA4LTIz IDA5OjE1OjEzLjE2OTY1MDk1MyArMDIwMAorQEAgLTI1LDYgKzI1LDExIEBAIG1haW4gKGludCBh cmdjLCBjaGFyICoqYXJndikKKyB7CisgICBzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzIGFyZ3M7 CisgCisrI2lmZGVmIFBFUkZfQVRUUl9TSVpFX1ZFUjVfQlVORExFCisrICBleHRlcm4gdm9pZCBf X2xpYmlwdF9pbml0KHZvaWQpOworKyAgX19saWJpcHRfaW5pdCgpOworKyNlbmRpZgorKworICAg bWVtc2V0ICgmYXJncywgMCwgc2l6ZW9mIGFyZ3MpOworICAgYXJncy5hcmdjID0gYXJnYzsKKyAg IGFyZ3MuYXJndiA9IGFyZ3Y7CgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRl eCAxNTUwNmJmLi4xOWQ2YTYzIDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpA QCAtMjcsNyArMjcsNyBAQCBWZXJzaW9uOiA3LjExLjkwLjIwMTYwODA3CiAKICMgVGhlIHJlbGVh c2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0 IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBy cG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogNSV7 P2Rpc3R9CitSZWxlYXNlOiA2JXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrIGFuZCBHUEx2Mysg d2l0aCBleGNlcHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMgYW5k IEdQTCsgYW5kIExHUEx2MisgYW5kIEJTRCBhbmQgUHVibGljIERvbWFpbiBhbmQgR0ZETAogR3Jv dXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwpAQCAtMTIyLDEyICsxMjIsMTcgQEAgU291cmNlMzog Z2RiLWdzdGFjay5tYW4KIFNvdXJjZTQ6IGdkYmluaXQKIAogIyBsaWJzdGRjKysgcHJldHR5IHBy aW50ZXJzIGZyb20gR0NDIFNWTi4KLSVnbG9iYWwgbGlic3RkY3h4cHl0aG9uIGdkYi1saWJzdGRj KystdjMtcHl0aG9uLXIyMjU1MjEKKyVnbG9iYWwgbGlic3RkY3h4cHl0aG9uIGdkYi1saWJzdGRj KystdjMtcHl0aG9uLTYuMS4xLTIwMTYwODE3CiBTb3VyY2U1OiAle2xpYnN0ZGN4eHB5dGhvbn0u dGFyLnh6CiAKICMgUHJvdmlkZSBnZGJ0dWkgZm9yIFJIRUwtNSBhbmQgUkhFTC02IGFzIGl0IGlz IHJlbW92ZWQgdXBzdHJlYW0gKEJaIDc5NzY2NCkuCiBTb3VyY2U2OiBnZGJ0dWkKIAorIyBsaWJp cHQ6IEludGVsIFByb2Nlc3NvciBUcmFjZSBEZWNvZGVyIExpYnJhcnkKKyVnbG9iYWwgbGliaXB0 X3ZlcnNpb24gMS41CitTb3VyY2U3OiB2JXtsaWJpcHRfdmVyc2lvbn0udGFyLmd6CitQYXRjaDEx NDI6IHYxLjUtbGliaXB0LXN0YXRpYy5wYXRjaAorCiAjIFdvcmsgYXJvdW5kIG91dC1vZi1kYXRl IGRlamFnbnUgdGhhdCBkb2VzIG5vdCBoYXZlIEtGQUlMCiAjPWRyb3A6IFRoYXQgZGVqYWdudSBp cyB0b28gb2xkIHRvIGJlIHN1cHBvcnRlZC4KIFBhdGNoMTogZ2RiLTYuMy1yaC1kdW1teWtmYWls LTIwMDQxMjAyLnBhdGNoCkBAIC01NzYsNiArNTgxLDkgQEAgUGF0Y2gxMTIwOiBnZGItdGVzdHN1 aXRlLWR3Mi11bmRlZmluZWQtcmV0LWFkZHIucGF0Y2gKICMgTmV3IHRlc3QgZm9yIFB5dGhvbiAi Q2Fubm90IGxvY2F0ZSBvYmplY3QgZmlsZSBmb3IgYmxvY2siIChmb3IgUkggQlogMTMyNTc5NSku CiBQYXRjaDExMjM6IGdkYi1yaGJ6MTMyNTc5NS1mcmFtZWZpbHRlcnMtdGVzdC5wYXRjaAogCisj IFtkdHMrZWw3XSBbeDg2Kl0gQnVuZGxlIGxpbnV4X3BlcmYuaCBmb3IgbGliaXB0IChSSCBCWiAx MjU2NTEzKS4KK1BhdGNoMTE0MzogZ2RiLWxpbnV4X3BlcmYtYnVuZGxlLnBhdGNoCisKICVpZiAw JXshP3JoZWw6MX0gfHwgMCV7P3JoZWx9ID4gNgogIyBSTF9TVEFURV9GRURPUkFfR0RCIHdvdWxk IG5vdCBiZSBmb3VuZCBmb3I6CiAjIFBhdGNoNjQyOiBnZGItcmVhZGxpbmU2Mi1hc2stbW9yZS1y aC5wYXRjaApAQCAtNjE3LDEyICs2MjUsMTYgQEAgQnVpbGRSZXF1aXJlczogbGliYmFiZWx0cmFj ZS1kZXZlbCV7YnVpbGRpc2F9CiBCdWlsZFJlcXVpcmVzOiBndWlsZS1kZXZlbCV7YnVpbGRpc2F9 CiAlZW5kaWYKICVnbG9iYWwgaGF2ZV9saWJpcHQgMAotJWlmIDAleyE/cmhlbDoxfSB8fCAwJXs/ cmhlbH0gPiA3CislaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDcgfHwgKDAlez9yaGVs fSA9PSA3ICYmIDAlez9zY2w6MX0pCiAlaWZhcmNoICV7aXg4Nn0geDg2XzY0CiAlZ2xvYmFsIGhh dmVfbGliaXB0IDEKKyVpZiAwJXs/ZWw3OjF9ICYmIDAlez9zY2w6MX0KK0J1aWxkUmVxdWlyZXM6 IGNtYWtlCislZWxzZQogQnVpbGRSZXF1aXJlczogbGliaXB0LWRldmVsJXtidWlsZGlzYX0KICVl bmRpZgogJWVuZGlmCislZW5kaWYKIAogJWlmIDAlez9fd2l0aF90ZXN0c3VpdGU6MX0KIApAQCAt NzUzLDYgKzc2NSwxNCBAQCBUaGlzIHBhY2thZ2UgcHJvdmlkZXMgSU5GTywgSFRNTCBhbmQgUERG IHVzZXIgbWFudWFsIGZvciBHREIuCiB0YXIgeEpmICV7U09VUkNFNX0KICVlbmRpZiAjIDAlez9y aGVsOjF9ICYmIDAlez9yaGVsfSA8PSA3CiAKKyVpZiAwJXtoYXZlX2xpYmlwdH0gJiYgMCV7P2Vs NzoxfSAmJiAwJXs/c2NsOjF9Cit0YXIgeHpmICV7U09VUkNFN30KKygKKyBjZCBwcm9jZXNzb3It dHJhY2UtJXtsaWJpcHRfdmVyc2lvbn0KKyVwYXRjaDExNDIgLXAxCispCislZW5kaWYKKwogIyBG aWxlcyBoYXZlIGAjIDxudW1iZXI+IDxmaWxlPicgc3RhdGVtZW50cyBicmVha2luZyBWUEFUSCAv IGZpbmQtZGVidWdpbmZvLnNoIC4KIChjZCBnZGI7cm0gLWZ2ICQocGVybCAtcGUgJ3MvXFxcbi8g LycgPE1ha2VmaWxlLmlufHNlZCAtbiAncy9eWVlGSUxFUyA9IC8vcCcpKQogCkBAIC05MDIsNiAr OTIyLDcgQEAgZG9uZQogJXBhdGNoMTExOCAtcDEKICVwYXRjaDExMjAgLXAxCiAlcGF0Y2gxMTIz IC1wMQorJXBhdGNoMTE0MyAtcDEKIAogJXBhdGNoMTA3NSAtcDEKICVpZiAwJXs/cmhlbDoxfSAm JiAwJXs/cmhlbH0gPD0gNwpAQCAtOTY4LDYgKzk4OSwxMSBAQCBDRkxBR1M9IiRDRkxBR1MgLURE TkZfREVCVUdJTkZPX0lOU1RBTEwiCiBDRkxBR1M9IiRDRkxBR1MgLURHREJfSU5ERVhfVkVSSUZZ X1ZFTkRPUiIKICVlbmRpZgogCisjIFtkdHMrZWw3XSBbeDg2Kl0gQnVuZGxlIGxpbnV4X3BlcmYu aCBmb3IgbGliaXB0IChSSCBCWiAxMjU2NTEzKS4KKyVpZiAle2hhdmVfbGliaXB0fSAmJiAwJXs/ ZWw3OjF9ICYmIDAlez9zY2w6MX0KK0NGTEFHUz0iJENGTEFHUyAtRFBFUkZfQVRUUl9TSVpFX1ZF UjVfQlVORExFIgorJWVuZGlmCisKICMgUGF0Y2g2NDI6IGdkYi1yZWFkbGluZTYyLWFzay1tb3Jl LXJoLnBhdGNoCiAlaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYKIENGTEFHUz0iJENG TEFHUyAtRE5FRURfUkxfU1RBVEVfRkVET1JBX0dEQiIKQEAgLTk4MSw2ICsxMDA3LDI1IEBAIENG TEFHUz0iJENGTEFHUyAtRE5FRURfREVUQUNIX1NJR1NUT1AiCiAKIGV4cG9ydCBDWFhGTEFHUz0i JENGTEFHUyIKIAorJWlmIDAle2hhdmVfbGliaXB0fSAmJiAwJXs/ZWw3OjF9ICYmIDAlez9zY2w6 MX0KKygKKyBta2RpciBwcm9jZXNzb3ItdHJhY2UtJXtsaWJpcHRfdmVyc2lvbn0tcm9vdAorIG1r ZGlyIHByb2Nlc3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9ufS1idWlsZAorIGNkICAgIHByb2Nl c3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9ufS1idWlsZAorICMgLURQVFVOSVQ6Qk9PTD1PTiBo YXMgbm8gZWZmZWN0IG9uIGN0ZXN0LgorICVjbWFrZSAtRENNQUtFX0JVSUxEX1RZUEU9UmVsV2l0 aERlYkluZm8gXAorCS1EUFRVTklUOkJPT0w9T0ZGIFwKKwktRERFVkJVSUxEOkJPT0w9T04gXAor CS4uLy4uL3Byb2Nlc3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9ufQorIG1ha2UgVkVSQk9TRT0x ICV7P19zbXBfbWZsYWdzfQorIGN0ZXN0IC1WICV7P19zbXBfbWZsYWdzfQorIG1ha2UgaW5zdGFs bCBERVNURElSPS4uL3Byb2Nlc3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9ufS1yb290CispCisj IFRoZXJlIGlzIGFsc286IC0td2l0aC1saWJpcHQtcHJlZml4CitDRkxBR1M9IiRDRkxBR1MgLUkk UFdEL3Byb2Nlc3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9ufS1yb290JXtfaW5jbHVkZWRpcn0i CitMREZMQUdTPSIkTERGTEFHUyAtTCRQV0QvcHJvY2Vzc29yLXRyYWNlLSV7bGliaXB0X3ZlcnNp b259LXJvb3Qle19saWJkaXJ9IgorJWVuZGlmCisKICMgLS1odG1sZGlyIGFuZCAtLXBkZmRpciBh cmUgbm90IHVzZWQgYXMgdGhleSBhcmUgdXNlZCBmcm9tICV7Z2RiX2J1aWxkfS4KIC4uL2NvbmZp Z3VyZQkJCQkJCQlcCiAJLS1wcmVmaXg9JXtfcHJlZml4fQkJCQkJXApAQCAtMTQyNCw2ICsxNDY5 LDI3IEBAIHRoZW4KIGZpCiAKICVjaGFuZ2Vsb2cKKyogVHVlIEF1ZyAyMyAyMDE2IEphbiBLcmF0 b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuOTAuMjAxNjA4MDctNi5m YzI1CistIE1lcmdlIEZlZG9yYSBwYWNrYWdpbmcgY2hhbmdlcyBmcm9tIEZlZG9yYSAyNCBnZGIt Ny4xMS4xLTgzLmZjMjQ6CisKKyogVHVlIEF1ZyAyMyAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuMS04My5mYzI0CistIFtkdHMrZWw3XSBbeDg2 Kl0gQnVuZGxlIGxpYmlwdCAtIGZpeCMzIGl0cyBpbml0aWFsaXphdGlvbiAoUkggQlogMTI1NjUx MykuCisKKyogVHVlIEF1ZyAyMyAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPiAtIDcuMTEuMS04Mi5mYzI0CistIFtkdHMrZWw3XSBbeDg2Kl0gQnVuZGxlIGxp YmlwdCAtIGZpeCMyIGl0cyBpbml0aWFsaXphdGlvbiAoUkggQlogMTI1NjUxMykuCisKKyogVHVl IEF1ZyAyMyAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAt IDcuMTEuMS04MS5mYzI0CistIFtkdHMrZWw3XSBbeDg2Kl0gQnVuZGxlIGxpYmlwdCAtIGZpeCBp dHMgaW5pdGlhbGl6YXRpb24gKFJIIEJaIDEyNTY1MTMpLgorCisqIE1vbiBBdWcgMjIgMjAxNiBK YW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjExLjEtODAuZmMy NAorLSBbZHRzXSBVcGdyYWRlIGxpYnN0ZGMrKy12My1weXRob24gdG8gNi4xLjEtMjAxNjA4MTcu CisKKyogRnJpIEF1ZyAxOSAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPiAtIDcuMTEuMS03OS5mYzI0CistIFtkdHMrZWw3XSBbeDg2Kl0gQnVuZGxlIGxpbnV4 X3BlcmYuaCBmb3IgbGliaXB0IChSSCBCWiAxMjU2NTEzKS4KKworKiBXZWQgQXVnIDE3IDIwMTYg SmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xMS4xLTc4LmZj MjQKKy0gW2R0cytlbDddIFt4ODYqXSBCdW5kbGUgbGliaXB0IChSSCBCWiAxMjU2NTEzKS4KKwog KiBTdW4gQXVnICA3IDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+IC0gNy4xMS45MC4yMDE2MDgwNy01LmZjMjUKIC0gUmViYXNlIHRvIEZTRiBHREIgNy4xMS45 MC4yMDE2MDgwNyAocHJlLTcuMTIgYnJhbmNoIHNuYXBzaG90KS4KIAoKZGlmZiAtLWdpdCBhL3Nv dXJjZXMgYi9zb3VyY2VzCmluZGV4IGIzMGRjN2MuLjAwMWRhYjcgMTAwNjQ0Ci0tLSBhL3NvdXJj ZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDMgQEAKLTdhZDMyZDM4OTRhYWY5MGQwMGE0MzQz YTczNWMzZTFjICBnZGItbGlic3RkYysrLXYzLXB5dGhvbi1yMjI1NTIxLnRhci54egorMTMxZDBk ZmQyMGNkNjAxNGMxNjhmYmNhYjliZTJjNDMgIGdkYi1saWJzdGRjKystdjMtcHl0aG9uLTYuMS4x LTIwMTYwODE3LnRhci54egorMjllZmMwODIxOWQ5ZDZhMDUzNmQ1OGY5ODA3Yzg3MjIgIHYxLjUu dGFyLmd6CiAyZTUyZGQ4YjYzZWIwYTQ1OWZlYmJlZTAxMjIxZmIxMCAgZ2RiLTcuMTEuOTAuMjAx NjA4MDcudGFyLnh6CgpkaWZmIC0tZ2l0IGEvdjEuNS1saWJpcHQtc3RhdGljLnBhdGNoIGIvdjEu NS1saWJpcHQtc3RhdGljLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjQ3N2I2YzQKLS0tIC9kZXYvbnVsbAorKysgYi92MS41LWxpYmlwdC1zdGF0aWMucGF0Y2gKQEAg LTAsMCArMSwyMiBAQAorLS0tIHByb2Nlc3Nvci10cmFjZS0xLjUvbGliaXB0L0NNYWtlTGlzdHMu dHh0LW9yaWcJMjAxNi0wNC0wNyAwODo1MjoxNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBwcm9jZXNz b3ItdHJhY2UtMS41L2xpYmlwdC9DTWFrZUxpc3RzLnR4dAkyMDE2LTA4LTE3IDIzOjEyOjIzLjI0 MTEwOTI0NCArMDIwMAorQEAgLTgxLDcgKzgxLDcgQEAgZW5kaWYgKENNQUtFX0hPU1RfV0lOMzIp CisgCisgc2V0KExJQklQVF9GSUxFUyAke0xJQklQVF9GSUxFU30gJHtMSUJJUFRfU0VDVElPTl9G SUxFU30pCisgCistYWRkX2xpYnJhcnkobGliaXB0IFNIQVJFRAorK2FkZF9saWJyYXJ5KGxpYmlw dCBTVEFUSUMKKyAgICR7TElCSVBUX0ZJTEVTfQorICkKKyAKKy0tLSBwcm9jZXNzb3ItdHJhY2Ut MS41L2xpYmlwdC9zcmMvcG9zaXgvaW5pdC5jLW9yaWcJMjAxNi0wNC0wNyAwODo1MjoxNC4wMDAw MDAwMDAgKzAyMDAKKysrKyBwcm9jZXNzb3ItdHJhY2UtMS41L2xpYmlwdC9zcmMvcG9zaXgvaW5p dC5jCTIwMTYtMDgtMjMgMDk6MDQ6MTEuNTQwMTc2NjY4ICswMjAwCitAQCAtMjksNyArMjksNyBA QAorICNpbmNsdWRlICJwdF9pbGQuaCIKKyAKKyAKKy1zdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9f KChjb25zdHJ1Y3RvcikpIGluaXQodm9pZCkKKyt2b2lkIF9fbGliaXB0X2luaXQodm9pZCkKKyB7 CisgCS8qIEluaXRpYWxpemUgdGhlIEludGVsKFIpIFByb2Nlc3NvciBUcmFjZSBpbnN0cnVjdGlv biBkZWNvZGVyLiAqLworIAlwdF9pbGRfaW5pdCgpOwoKZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUg Yi8uZ2l0aWdub3JlCmluZGV4IDhiY2Q2ZjYuLjkwNmExZjMgMTAwNjQ0Ci0tLSBhLy5naXRpZ25v cmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwzICsxLDMgQEAKIC9nZGItbGlic3RkYysrLXYzLXB5 dGhvbi02LjEuMS0yMDE2MDgxNy50YXIueHoKIC92MS41LnRhci5negotL2dkYi03LjExLjEudGFy Lnh6CisvZ2RiLTcuMTEuOTAuMjAxNjA4MDcudGFyLnh6CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1i dWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRj aAppbmRleCA1ZWZjYzVhLi41NmNlN2RiIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9j YXRlLXJwbS5wYXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaApAQCAt MSwyNSArMSwxNiBAQAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9ldmVudC10b3Au YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9ldmVudC10b3AuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2V2ZW50LXRvcC5jCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2V2ZW50LXRvcC5jCi1AQCAtMzcsNiArMzcsNyBAQAotICNp bmNsdWRlICJnZGJjbWQuaCIJCS8qIGZvciBkb250X3JlcGVhdCgpICovCi0gI2luY2x1ZGUgImFu bm90YXRlLmgiCi0gI2luY2x1ZGUgIm1haW50LmgiCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAu b3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAxNi0wNy0wMiAyMzo0MzoyNC4wODUyMTQxNDQgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZXZlbnQtdG9wLmMJMjAxNi0wNy0wMyAxNDoz NzoxMi41NzIxMzA3MzQgKzAyMDAKK0BAIC00MCw2ICs0MCw3IEBACisgI2luY2x1ZGUgImJ1ZmZl ci5oIgorICNpbmNsdWRlICJzZXItZXZlbnQuaCIKKyAjaW5jbHVkZSAiZ2RiX3NlbGVjdC5oIgog KyNpbmNsdWRlICJzeW1maWxlLmgiCiAgCiAgLyogcmVhZGxpbmUgaW5jbHVkZSBmaWxlcy4gICov CiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCi1AQCAtMTgwLDYgKzE4MSw4IEBAIHJs X2NhbGxiYWNrX3JlYWRfY2hhcl93cmFwcGVyIChnZGJfY2xpZW4KLSB2b2lkCi0gY2xpX2NvbW1h bmRfbG9vcCAodm9pZCAqZGF0YSkKLSB7Ci0rICBkZWJ1Z19mbHVzaF9taXNzaW5nICgpOwotKwot ICAgZGlzcGxheV9nZGJfcHJvbXB0ICgwKTsKLSAKLSAgIC8qIE5vdyBpdCdzIHRpbWUgdG8gc3Rh cnQgdGhlIGV2ZW50IGxvb3AuICAqLwotQEAgLTI5OCw2ICszMDEsOCBAQCBkaXNwbGF5X2dkYl9w cm9tcHQgKGNvbnN0IGNoYXIgKm5ld19wcm9tCitAQCAtMzQ3LDYgKzM0OCw4IEBACiAgICAvKiBS ZXNldCB0aGUgbmVzdGluZyBkZXB0aCB1c2VkIHdoZW4gdHJhY2UtY29tbWFuZHMgaXMgc2V0LiAg Ki8KICAgIHJlc2V0X2NvbW1hbmRfbmVzdF9kZXB0aCAoKTsKICAKQEAgLTI4LDExICsxOSwyMyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2V2ZW50LXRvcC5jCiAgICBvbGRfY2hh aW4gPSBtYWtlX2NsZWFudXAgKGZyZWVfY3VycmVudF9jb250ZW50cywgJmFjdHVhbF9nZGJfcHJv bXB0KTsKICAKICAgIC8qIERvIG5vdCBjYWxsIHRoZSBweXRob24gaG9vayBvbiBhbiBleHBsaWNp dCBwcm9tcHQgY2hhbmdlIGFzCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3N5bWZp bGUuaAorQEAgLTc5NCw3ICs3OTcsMTAgQEAKKyAgICAgICBjb21tYW5kX2hhbmRsZXIgKGNtZCk7 CisgCisgICAgICAgaWYgKHVpLT5wcm9tcHRfc3RhdGUgIT0gUFJPTVBURUQpCistCWRpc3BsYXlf Z2RiX3Byb21wdCAoMCk7CisrCXsKKysJICBkZWJ1Z19mbHVzaF9taXNzaW5nICgpOworKwkgIGRp c3BsYXlfZ2RiX3Byb21wdCAoMCk7CisrCX0KKyAgICAgfQorIH0KKyAKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNjAxMDYub3JpZy9nZGIvc3ltZmlsZS5oCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3N5bWZpbGUuaAotQEAgLTU4Nyw2ICs1ODcsOCBAQCB2b2lkIG1hcF9zeW1ib2xfZmlsZW5hbWVz IChzeW1ib2xfZmlsZW5hCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvc3ltZmls ZS5oCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDMyNzUzNjY4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL3N5bWZpbGUuaAkyMDE2LTA3LTAzIDE0OjM3OjEyLjU3MzEzMDc0MiArMDIw MAorQEAgLTU5Miw2ICs1OTIsOCBAQAogIC8qIGJ1aWxkLWlkIHN1cHBvcnQuICAqLwogIGV4dGVy biBzdHJ1Y3QgYmZkX2J1aWxkX2lkICpidWlsZF9pZF9hZGRyX2dldCAoQ09SRV9BRERSIGFkZHIp OwogIGV4dGVybiB2b2lkIGRlYnVnX3ByaW50X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwg Y29uc3QgY2hhciAqZGVidWcpOwpAQCAtNDEsNDggKzQ0LDEwIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvc3ltZmlsZS5oCiAgCiAgLyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KICAK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdGVzdHN1aXRlL2xp Yi9nZGIuZXhwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ri LmV4cAotQEAgLTE2NDIsNyArMTY0Miw3IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsK LSAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCi0gCX0KLSAgICAg fQotLSAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIHdhcm5pbmdzIGFzIHRoZSB0ZXN0c3VpdGUg ZG9lcyBub3QgZXhwZWN0IGl0LgotKyAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIFJQTXMgd2Fy bmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCi0gICAgIHNlbmRfZ2Ri ICJzZXQgYnVpbGQtaWQtdmVyYm9zZSAwXG4iCi0gICAgIGdkYl9leHBlY3QgMTAgewotIAktcmUg IiRnZGJfcHJvbXB0ICQiIHsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1 aXRlL2xpYi9taS1zdXBwb3J0LmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYw MTA2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKLSsrKyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAotQEAgLTIwNCw3ICsy MDQsNyBAQCBwcm9jIGRlZmF1bHRfbWlfZ2RiX3N0YXJ0IHsgYXJncyB9IHsKLSAJICAgIHdhcm5p bmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCi0gCX0KLSAgICAgfQotLSAgICAjIFR1 cm4gb2ZmIHRoZSBtaXNzaW5nIHdhcm5pbmdzIGFzIHRoZSB0ZXN0c3VpdGUgZG9lcyBub3QgZXhw ZWN0IGl0LgotKyAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIFJQTXMgd2FybmluZ3MgYXMgdGhl IHRlc3RzdWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCi0gICAgIHNlbmRfZ2RiICIxOTAtZ2RiLXNl dCBidWlsZC1pZC12ZXJib3NlIDBcbiIKLSAgICAgZ2RiX2V4cGVjdCAxMCB7Ci0gCS1yZSAiLiox OTAtZ2RiLXNldCBidWlsZC1pZC12ZXJib3NlIDBcclxuMTkwXFxcXmRvbmVcclxuJG1pX2dkYl9w cm9tcHQkIiB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3R1aS90dWktaW50ZXJw LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi90dWkvdHVp LWludGVycC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3R1aS90dWktaW50ZXJwLmMK LUBAIC0zMSw2ICszMSw3IEBACi0gI2luY2x1ZGUgInR1aS90dWktaW8uaCIKLSAjaW5jbHVkZSAi aW5mcnVuLmgiCi0gI2luY2x1ZGUgIm9ic2VydmVyLmgiCi0rI2luY2x1ZGUgInN5bWZpbGUuaCIK LSAKLSBzdGF0aWMgc3RydWN0IHVpX291dCAqdHVpX3VpX291dCAoc3RydWN0IGludGVycCAqc2Vs Zik7Ci0gCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FjbG9jYWwubTQKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYWNsb2NhbC5tNAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2FjbG9jYWwubTQKLSsrKyBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvYWNsb2NhbC5tNAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2Ri L2FjbG9jYWwubTQJMjAxNi0wNy0wMiAyMzo0MzoyNC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvYWNsb2NhbC5tNAkyMDE2LTA3LTAzIDE0OjM3OjEyLjU3NjEz MDc2OCArMDIwMAogQEAgLTExLDYgKzExLDIyMSBAQAogICMgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQogICMgUEFSVElDVUxBUiBQ VVJQT1NFLgpAQCAtMzA1LDEwICsyNzAsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9hY2xvY2FsLm00CiAgIyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogIAogICMgQ29weXJpZ2h0IChD KSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlnLmluCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYw MTA2Lm9yaWcvZ2RiL2NvbmZpZy5pbgotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25m aWcuaW4KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9jb25maWcuaW4JMjAxNi0w Ny0wMiAyMzo0MzoyNC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9n ZGIvY29uZmlnLmluCTIwMTYtMDctMDMgMTQ6Mzc6MTIuNTc2MTMwNzY4ICswMjAwCiBAQCAtMzMs NiArMzMsOSBAQAogIC8qIERlZmluZSB0byBCRkQncyBkZWZhdWx0IHRhcmdldCB2ZWN0b3IuICov CiAgI3VuZGVmIERFRkFVTFRfQkZEX1ZFQwpAQCAtMzE5LDcgKzI4NCw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgdHJhbnNs YXRpb24gb2YgcHJvZ3JhbSBtZXNzYWdlcyB0byB0aGUgdXNlcidzIG5hdGl2ZQogICAgIGxhbmd1 YWdlIGlzIHJlcXVlc3RlZC4gKi8KICAjdW5kZWYgRU5BQkxFX05MUwotQEAgLTI1OCw2ICsyNjEs OSBAQAorQEAgLTI2MSw2ICsyNjQsOSBAQAogIC8qIERlZmluZSBpZiBQeXRob24gMi43IGlzIGJl aW5nIHVzZWQuICovCiAgI3VuZGVmIEhBVkVfTElCUFlUSE9OMl83CiAgCkBAIC0zMjksMTEgKzI5 NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZy5pbgogIC8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGlidW53aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUu ICovCiAgI3VuZGVmIEhBVkVfTElCVU5XSU5EX0lBNjRfSAogIAotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9jb25maWd1cmUKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv Y29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIv Y29uZmlndXJlCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQotQEAgLTcw NSw2ICs3MDUsMTEgQEAgUEtHVkVSU0lPTgorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcv Z2RiL2NvbmZpZ3VyZQkyMDE2LTA3LTAyIDIzOjQzOjI0LjA4NTIxNDE0NCArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWd1cmUJMjAxNi0wNy0wMyAxNDozNzoxMi41ODEx MzA4MTEgKzAyMDAKK0BAIC03MDUsNiArNzA1LDExIEBACiAgSEFWRV9OQVRJVkVfR0NPUkVfVEFS R0VUCiAgVEFSR0VUX09CUwogIHN1YmRpcnMKQEAgLTM0NSw3ICszMTAsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQogIEdEQl9EQVRBRElSCiAgREVCVUdESVIK ICBNQUtFSU5GT19FWFRSQV9GTEFHUwotQEAgLTgxMyw2ICs4MTgsNyBAQCB3aXRoX2dkYl9kYXRh ZGlyCitAQCAtODE0LDYgKzgxOSw3IEBACiAgd2l0aF9yZWxvY2F0ZWRfc291cmNlcwogIHdpdGhf YXV0b19sb2FkX2RpcgogIHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aApAQCAtMzUzLDcgKzMxOCw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlCiAgZW5hYmxlX3Rh cmdldHMKICBlbmFibGVfNjRfYml0X2JmZAogIGVuYWJsZV9nZGJjbGkKLUBAIC04NjksNiArODc1 LDExIEBAIENDQworQEAgLTg3MCw2ICs4NzYsMTEgQEAKICBDUFAKICBNQUtFSU5GTwogIE1BS0VJ TkZPRkxBR1MKQEAgLTM2NSw3ICszMzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2NvbmZpZ3VyZQogIFlBQ0MKICBZRkxBR1MKICBYTUtNRicKLUBAIC0xNTQwLDYgKzE1NTEs OCBAQCBPcHRpb25hbCBQYWNrYWdlczoKK0BAIC0xNTQxLDYgKzE1NTIsOCBAQAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgWy0td2l0aC1hdXRvLWxvYWQtZGlyXQogICAgLS13aXRob3V0LWF1 dG8tbG9hZC1zYWZlLXBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIG5vdCByZXN0 cmljdCBhdXRvLWxvYWRlZCBmaWxlcyBsb2NhdGlvbnMKQEAgLTM3NCw3ICszMzksNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQogICAgLS13aXRoLWxpYnVud2lu ZC1pYTY0ICAgdXNlIGxpYnVud2luZCBmcmFtZSB1bndpbmRpbmcgZm9yIGlhNjQgdGFyZ2V0cwog ICAgLS13aXRoLWN1cnNlcyAgICAgICAgICAgdXNlIHRoZSBjdXJzZXMgbGlicmFyeSBpbnN0ZWFk IG9mIHRoZSB0ZXJtY2FwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5Ci1AQCAt MTU5NSw2ICsxNjA4LDEzIEBAIFNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVz OgorQEAgLTE1OTUsNiArMTYwOCwxMyBAQAogICAgTUFLRUlORk8gICAgUGFyZW50IGNvbmZpZ3Vy ZSBkZXRlY3RzIGlmIGl0IGlzIG9mIHN1ZmZpY2llbnQgdmVyc2lvbi4KICAgIE1BS0VJTkZPRkxB R1MKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgZm9yIE1BS0VJTkZPLgpAQCAtMzg4LDcgKzM1 Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlCiAgICBZQUND ICAgICAgICBUaGUgYFlldCBBbm90aGVyIEMgQ29tcGlsZXInIGltcGxlbWVudGF0aW9uIHRvIHVz ZS4gRGVmYXVsdHMgdG8KICAgICAgICAgICAgICAgIHRoZSBmaXJzdCBwcm9ncmFtIGZvdW5kIG91 dCBvZjogYGJpc29uIC15JywgYGJ5YWNjJywgYHlhY2MnLgogICAgWUZMQUdTICAgICAgVGhlIGxp c3Qgb2YgYXJndW1lbnRzIHRoYXQgd2lsbCBiZSBwYXNzZWQgYnkgZGVmYXVsdCB0byAkWUFDQy4K LUBAIC01NjU1LDYgKzU2NzUsNDk0IEBAIF9BQ0VPRgorQEAgLTU2MTMsNiArNTYzMyw0OTQgQEAK ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHdpdGhf YXV0b19sb2FkX3NhZmVfcGF0aCIgPiY1CiAgJGFzX2VjaG8gIiR3aXRoX2F1dG9fbG9hZF9zYWZl X3BhdGgiID4mNjsgfQogIApAQCAtODgzLDExICs4NDgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9jb25maWd1cmUKICAKICAKICBzdWJkaXJzPSIkc3ViZGlycyB0ZXN0c3Vp dGUiCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZS5hYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9jb25maWd1cmUuYWMKLSsrKyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlLmFjCi1AQCAtMTc3LDYgKzE3NywxOTkgQEAgQUNfREVG SU5FX0RJUihBVVRPX0xPQURfU0FGRV9QQVRILCBlc2NhcAorLS0tIGdkYi03LjExLjUwLjIwMTYw NjMwLm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE2LTA3LTAyIDIzOjQzOjI0LjA4NTIxNDE0NCAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWd1cmUuYWMJMjAxNi0wNy0w MyAxNDozNzoxMi41ODIxMzA4MTkgKzAyMDAKK0BAIC0xNzcsNiArMTc3LDE5OSBAQAogIAkgICAg ICBbRGlyZWN0b3JpZXMgc2FmZSB0byBob2xkIGF1dG8tbG9hZGVkIGZpbGVzLl0pCiAgQUNfTVNH X1JFU1VMVChbJHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aF0pCiAgCkBAIC0xMDg3LDExICsxMDUy LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlLmFjCiAgQUNf Q09ORklHX1NVQkRJUlModGVzdHN1aXRlKQogIAogICMgQ2hlY2sgd2hldGhlciB0byBzdXBwb3J0 IGFsdGVybmF0aXZlIHRhcmdldCBjb25maWd1cmF0aW9ucwotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9jb3JlbG93LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29y ZWxvdy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY29y ZWxvdy5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvcmVsb3cuYwotQEAgLTMxMCw3 ICszMTAsNyBAQCBidWlsZF9pZF9sb2NhdGVfZXhlYyAoaW50IGZyb21fdHR5KQorLS0tIGdkYi03 LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAy Mjc1MzU4MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb3JlbG93LmMJMjAx Ni0wNy0wMyAxNDozNzoxMi41ODIxMzA4MTkgKzAyMDAKK0BAIC0zMTAsNyArMzEwLDcgQEAKICAg ICAgICAgIHN5bWZpbGVfb2JqZmlsZS0+ZmxhZ3MgfD0gT0JKRl9CVUlMRF9JRF9DT1JFX0xPQURF RDsKICAgICAgfQogICAgZWxzZQpAQCAtMTEwMCwxMCArMTA2NSwxMCBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL2NvcmVsb3cuYwogIAogICAgZG9fY2xlYW51cHMgKGJhY2tfdG8p OwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9idWlsZC1pZC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2J1aWxkLWlkLmMKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9i dWlsZC1pZC5jCTIwMTYtMDctMDMgMTQ6MzY6NTAuMTI0OTM4MTg3ICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmMJMjAxNi0wNy0wMyAxNDo0MjoyNS4xNzE4MTIx MzQgKzAyMDAKIEBAIC0zNSw2ICszNSw3IEBACiAgI2luY2x1ZGUgImVsZi9jb21tb24uaCIKICAj aW5jbHVkZSAiZWxmLWJmZC5oIgpAQCAtMTExMiw3ICsxMDc3LDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiAgCiAgI2RlZmluZSBCVUlMRF9JRF9WRVJCT1NF X05PTkUgMAogICNkZWZpbmUgQlVJTERfSURfVkVSQk9TRV9GSUxFTkFNRVMgMQotQEAgLTY2NSw4 ICs2NjYsMzY2IEBAIGJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgYmZkX2IKK0BA IC02NjUsOCArNjY2LDM2NiBAQAogICAgcmV0dXJuIHJlc3VsdDsKICB9CiAgCkBAIC0xMjIxLDEz ICsxMTg2LDEzIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYnVpbGQtaWQuYwog KwkgICAgcmV0dXJuIDA7CiArCSAgfQogKwotKwlpZiAoISgoaGVhZGVyRm9ybWF0X3AgPSBkbHN5 bSAoaCwgImhlYWRlckZvcm1hdCIpKQotKwkgICAgICAmJiAocnBtUmVhZENvbmZpZ0ZpbGVzX3Ag PSBkbHN5bSAoaCwgInJwbVJlYWRDb25maWdGaWxlcyIpKQotKwkgICAgICAmJiAocnBtZGJGcmVl SXRlcmF0b3JfcCA9IGRsc3ltIChoLCAicnBtZGJGcmVlSXRlcmF0b3IiKSkKLSsJICAgICAgJiYg KHJwbWRiTmV4dEl0ZXJhdG9yX3AgPSBkbHN5bSAoaCwgInJwbWRiTmV4dEl0ZXJhdG9yIikpCi0r CSAgICAgICYmIChycG10c0NyZWF0ZV9wID0gZGxzeW0gKGgsICJycG10c0NyZWF0ZSIpKQotKwkg ICAgICAmJiAocnBtdHNGcmVlX3AgPSBkbHN5bSAoaCwgInJwbXRzRnJlZSIpKQotKwkgICAgICAm JiAocnBtdHNJbml0SXRlcmF0b3JfcCA9IGRsc3ltIChoLCAicnBtdHNJbml0SXRlcmF0b3IiKSkp KQorKwlpZiAoISgoaGVhZGVyRm9ybWF0X3AgPSAoY2hhciAqKCopIChIZWFkZXIgaCwgY29uc3Qg Y2hhciAqIGZtdCwgZXJybXNnX3QgKmVycm1zZykpIGRsc3ltIChoLCAiaGVhZGVyRm9ybWF0Iikp CisrCSAgICAgICYmIChycG1SZWFkQ29uZmlnRmlsZXNfcCA9IChpbnQgKCopIChjb25zdCBjaGFy ICogZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCkpIGRsc3ltIChoLCAicnBtUmVhZENvbmZpZ0Zp bGVzIikpCisrCSAgICAgICYmIChycG1kYkZyZWVJdGVyYXRvcl9wID0gKHJwbWRiTWF0Y2hJdGVy YXRvciAoKikgKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSkpIGRsc3ltIChoLCAicnBtZGJGcmVlSXRl cmF0b3IiKSkKKysJICAgICAgJiYgKHJwbWRiTmV4dEl0ZXJhdG9yX3AgPSAoSGVhZGVyICgqKSAo cnBtZGJNYXRjaEl0ZXJhdG9yIG1pKSkgZGxzeW0gKGgsICJycG1kYk5leHRJdGVyYXRvciIpKQor KwkgICAgICAmJiAocnBtdHNDcmVhdGVfcCA9IChycG10cyAoKikgKHZvaWQpKSBkbHN5bSAoaCwg InJwbXRzQ3JlYXRlIikpCisrCSAgICAgICYmIChycG10c0ZyZWVfcCA9IChycG10cyAoKikgKHJw bXRzIHRzKSkgZGxzeW0gKGgsICJycG10c0ZyZWUiKSkKKysJICAgICAgJiYgKHJwbXRzSW5pdEl0 ZXJhdG9yX3AgPSAocnBtZGJNYXRjaEl0ZXJhdG9yICgqKSAoY29uc3QgcnBtdHMgdHMsIHJwbVRh ZyBycG10YWcsIGNvbnN0IHZvaWQgKmtleXAsIHNpemVfdCBrZXlsZW4pKSBkbHN5bSAoaCwgInJw bXRzSW5pdEl0ZXJhdG9yIikpKSkKICsJICB7CiArCSAgICB3YXJuaW5nIChfKCJPcGVuZWQgbGli cmFyeSBcIiVzXCIgaXMgaW5jb21wYXRpYmxlICglcyksICIKICsJCSAgICAgICJtaXNzaW5nIGRl YnVnaW5mb3Mgbm90aWZpY2F0aW9ucyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQiKSwKQEAgLTEyODMs MTIgKzEyNDgsMTIgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5j CiArCSAgaWYgKHMgPiBkZWJ1Z2luZm8gJiYgbWVtY21wIChzLCAiLnNyYy5ycG0iLCBzcmNycG1s ZW4pID09IDApCiArCSAgICB7CiArCSAgICAgIC8qIHMyID0gYC0le3JlbGVhc2V9LnNyYy5ycG0t ZGVidWdpbmZvLiV7YXJjaH0nICovCi0rCSAgICAgIHMyID0gbWVtcmNociAoZGVidWdpbmZvLCAn LScsIHMgLSBkZWJ1Z2luZm8pOworKwkgICAgICBzMiA9IChjaGFyICopIG1lbXJjaHIgKGRlYnVn aW5mbywgJy0nLCBzIC0gZGVidWdpbmZvKTsKICsJICAgIH0KICsJICBpZiAoczIpCiArCSAgICB7 CiArCSAgICAgIC8qIHMyID0gYC0le3ZlcnNpb259LSV7cmVsZWFzZX0uc3JjLnJwbS1kZWJ1Z2lu Zm8uJXthcmNofScgKi8KLSsJICAgICAgczIgPSBtZW1yY2hyIChkZWJ1Z2luZm8sICctJywgczIg LSBkZWJ1Z2luZm8pOworKwkgICAgICBzMiA9IChjaGFyICopIG1lbXJjaHIgKGRlYnVnaW5mbywg Jy0nLCBzMiAtIGRlYnVnaW5mbyk7CiArCSAgICB9CiArCSAgaWYgKCFzMikKICsJICAgIHsKQEAg LTEzMTEsNyArMTI3Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYnVpbGQt aWQuYwogKwogKwkgIC8qIFJQTURCSV9QQUNLQUdFUyByZXF1aXJlcyBrZXlsZW4gPT0gc2l6ZW9m IChpbnQpLiAgKi8KICsJICAvKiBSUE1EQklfTEFCRUwgaXMgYW4gaW50ZXJmYWNlIGZvciBOVlIt YmFzZWQgZGJpRmluZEJ5TGFiZWwoKS4gICovCi0rCSAgbWlfZGVidWdpbmZvID0gcnBtdHNJbml0 SXRlcmF0b3JfcCAodHMsIFJQTURCSV9MQUJFTCwgZGVidWdpbmZvLCAwKTsKKysJICBtaV9kZWJ1 Z2luZm8gPSBycG10c0luaXRJdGVyYXRvcl9wICh0cywgKHJwbVRhZykgUlBNREJJX0xBQkVMLCBk ZWJ1Z2luZm8sIDApOwogKwkgIHhmcmVlIChkZWJ1Z2luZm8pOwogKwkgIGlmIChtaV9kZWJ1Z2lu Zm8pCiArCSAgICB7CkBAIC0xMzYyLDcgKzEzMjcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2J1aWxkLWlkLmMKICsKICsJICAgICAgKnNsb3QgPSBkZWJ1Z2luZm87CiArCi0r CSAgICAgIG1pc3NpbmdfcnBtID0geG1hbGxvYyAoc2l6ZW9mICgqbWlzc2luZ19ycG0pICsgc3Ry bGVuIChkZWJ1Z2luZm8pKTsKKysJICAgICAgbWlzc2luZ19ycG0gPSAoc3RydWN0IG1pc3Npbmdf cnBtICopIHhtYWxsb2MgKHNpemVvZiAoKm1pc3NpbmdfcnBtKSArIHN0cmxlbiAoZGVidWdpbmZv KSk7CiArCSAgICAgIHN0cmNweSAobWlzc2luZ19ycG0tPnJwbSwgZGVidWdpbmZvKTsKICsJICAg ICAgbWlzc2luZ19ycG0tPm5leHQgPSBtaXNzaW5nX3JwbV9saXN0OwogKwkgICAgICBtaXNzaW5n X3JwbV9saXN0ID0gbWlzc2luZ19ycG07CkBAIC0xNDAwLDcgKzEzNjUsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1aWxkLWlkLmMKICsgIGlmIChtaXNzaW5nX3JwbV9saXN0 X2VudHJpZXMgPT0gMCkKICsgICAgcmV0dXJuOwogKwotKyAgYXJyYXkgPSB4bWFsbG9jIChzaXpl b2YgKCphcnJheSkgKiBtaXNzaW5nX3JwbV9saXN0X2VudHJpZXMpOworKyAgYXJyYXkgPSAoY2hh ciAqKikgeG1hbGxvYyAoc2l6ZW9mICgqYXJyYXkpICogbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVz KTsKICsgIGNsZWFudXBzID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYXJyYXkpOwogKwogKyAgYXJy YXlfaXRlciA9IGFycmF5OwpAQCAtMTQ4MCw3ICsxNDQ1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiAgICAgYXZvaWRhbmNlLiAgKi8KICAKICBzdHJ1Y3Qg bWlzc2luZ19maWxlcGFpcgotQEAgLTcyMCwxMSArMTA3OSwxNyBAQCBtaXNzaW5nX2ZpbGVwYWly X2NoYW5nZSAodm9pZCkKK0BAIC03MjAsMTEgKzEwNzksMTcgQEAKICAgICAgICAvKiBBbGwgdGhl aXIgbWVtb3J5IGNhbWUganVzdCBmcm9tIG1pc3NpbmdfZmlsZXBhaXJfT0JTVEFDSy4gICovCiAg ICAgICAgbWlzc2luZ19maWxlcGFpcl9oYXNoID0gTlVMTDsKICAgICAgfQpAQCAtMTQ5OCw3ICsx NDYzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiAgICBt aXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAoKTsKICB9CiAgCi1AQCAtNzkxLDE0ICsxMTU2LDM5IEBA IGRlYnVnX3ByaW50X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwKK0BAIC03OTEsMTQgKzEx NTYsMzkgQEAKICAKICAgICpzbG90ID0gbWlzc2luZ19maWxlcGFpcjsKICAKCmRpZmYgLS1naXQg YS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGliLW1pc3NpbmctaWRzLnBhdGNoIGIvZ2RiLTYu Ni1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRjaAppbmRleCBhODk4OTNjLi5m NGRjY2M5IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGliLW1pc3Npbmct aWRzLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtc29saWItbWlzc2luZy1pZHMu cGF0Y2gKQEAgLTEsMyArMSw2IEBACitnZGIgcmV0dXJucyBhbiBpbmNvcnJlY3QgYmFjayB0cmFj ZSB3aGVuIGFwcGx5aW5nIGEgZGVidWdpbmZvCitodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20v c2hvd19idWcuY2dpP2lkPTEzMzk4NjIKKwogSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9n ZGIvc29saWItc3ZyNC5jCTIwMTUtMDctMDkgMTg6MTg6NTQuNTI2NDE3NzY2ICswMjAwCkBAIC01 NywzICs2MCwxNjMgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3NvbGliLXN2cjQu YwogIAogIAkgICAgeGZyZWUgKGJ1aWxkX2lkX2ZpbGVuYW1lKTsKICAJICAgIHhmcmVlIChidWls ZF9pZCk7CistLS0gL2Rldi9udWxsCTIwMTYtMDctMDIgMjA6Mjk6MDEuNjc5NDA0OTQzICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nY29yZS1i dWlsZGlkLWV4ZWMtYnV0LW5vdC1zb2xpYi5leHAJMjAxNi0wNy0zMSAyMzowNDo0OS4wNjI3NTM3 MjIgKzAyMDAKK0BAIC0wLDAgKzEsMTA1IEBACisrIyBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor KyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIwor KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisr CisraWYge1tza2lwX3NobGliX3Rlc3RzXX0geworKyAgICByZXR1cm4gMAorK30KKysKKytzZXQg dGVzdGZpbGUgImdjb3JlLWJ1aWxkaWQtZXhlYy1idXQtbm90LXNvbGliIgorK3NldCBzcmNtYWlu ZmlsZSAke3Rlc3RmaWxlfS1tYWluLmMKKytzZXQgc3JjbGliZmlsZSAke3Rlc3RmaWxlfS1saWIu YworK3NldCBsaWJmaWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3RmaWxlfS1saWIuc29d Cisrc2V0IG9iamZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlICR7dGVzdGZpbGV9LW1haW4ub10K KytzZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfS1tYWluCisrc2V0IGJpbmZpbGUgW3N0YW5kYXJk X291dHB1dF9maWxlICR7ZXhlY3V0YWJsZX1dCisrc2V0IGdjb3JlZmlsZSBbc3RhbmRhcmRfb3V0 cHV0X2ZpbGUgJHtleGVjdXRhYmxlfS5nY29yZV0KKytzZXQgb3V0ZGlyIFtmaWxlIGRpcm5hbWUg JGJpbmZpbGVdCisrCisraWYgeyBbZ2RiX2NvbXBpbGVfc2hsaWIgJHtzcmNkaXJ9LyR7c3ViZGly fS8ke3NyY2xpYmZpbGV9ICR7bGliZmlsZX0gImRlYnVnIGFkZGl0aW9uYWxfZmxhZ3M9LVdsLC0t YnVpbGQtaWQiXSAhPSAiIgorKyAgICAgfHwgW2dkYl9jb21waWxlICR7c3JjZGlyfS8ke3N1YmRp cn0vJHtzcmNtYWluZmlsZX0gJHtvYmpmaWxlfSBvYmplY3Qge2RlYnVnfV0gIT0gIiIgfSB7Cisr ICAgICB1bnN1cHBvcnRlZCAiLVdsLC0tYnVpbGQtaWQgY29tcGlsYXRpb24gZmFpbGVkIgorKyAg ICAgcmV0dXJuIC0xCisrfQorK3NldCBvcHRzIFtsaXN0IGRlYnVnIHNobGliPSR7bGliZmlsZX0g ImFkZGl0aW9uYWxfZmxhZ3M9LVdsLC0tYnVpbGQtaWQiXQorK2lmIHsgW2dkYl9jb21waWxlICR7 b2JqZmlsZX0gJHtiaW5maWxlfSBleGVjdXRhYmxlICRvcHRzXSAhPSAiIiB9IHsKKysgICAgIHVu c3VwcG9ydGVkICItV2wsLS1idWlsZC1pZCBjb21waWxhdGlvbiBmYWlsZWQiCisrICAgICByZXR1 cm4gLTEKKyt9CisrCisrY2xlYW5fcmVzdGFydCAkZXhlY3V0YWJsZQorK2dkYl9sb2FkX3NobGli ICRsaWJmaWxlCisrCisrIyBEb2VzIHRoaXMgZ2RiIHN1cHBvcnQgZ2NvcmU/Cisrc2V0IHRlc3Qg ImhlbHAgZ2NvcmUiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgJHRlc3QgJHRlc3QgeworKyAgICAtcmUg IlVuZGVmaW5lZCBjb21tYW5kOiAuZ2NvcmUuKlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSMgZ2Nv cmUgY29tbWFuZCBub3Qgc3VwcG9ydGVkIC0tIG5vdGhpbmcgdG8gdGVzdCBoZXJlLgorKwl1bnN1 cHBvcnRlZCAiZ2RiIGRvZXMgbm90IHN1cHBvcnQgZ2NvcmUgb24gdGhpcyB0YXJnZXQiCisrCXJl dHVybiAtMTsKKysgICAgfQorKyAgICAtcmUgIlNhdmUgYSBjb3JlIGZpbGUgLipcclxuJGdkYl9w cm9tcHQgJCIgeworKwlwYXNzICR0ZXN0CisrICAgIH0KKyt9CisrCisraWYgeyAhW3J1bnRvIGxp Yl0gfSB0aGVuIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK3NldCBlc2NhcGVkZmlsZW5hbWUg W3N0cmluZ190b19yZWdleHAgJHtnY29yZWZpbGV9XQorKworK3NldCB0ZXN0ICJzYXZlIGEgY29y ZWZpbGUiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgImdjb3JlICR7Z2NvcmVmaWxlfSIgJHRlc3Qgewor KyAgICAtcmUgIlNhdmVkIGNvcmVmaWxlICR7ZXNjYXBlZGZpbGVuYW1lfVxyXG4kZ2RiX3Byb21w dCAkIiB7CisrCXBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgIkNhbid0IGNyZWF0ZSBhIGNv cmVmaWxlXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJdW5zdXBwb3J0ZWQgJHRlc3QKKysJcmV0dXJu IC0xCisrICAgIH0KKyt9CisrCisrIyBOb3cgcmVzdGFydCBnZGIgYW5kIGxvYWQgdGhlIGNvcmVm aWxlLgorKworK2NsZWFuX3Jlc3RhcnQgJGV4ZWN1dGFibGUKKytnZGJfbG9hZF9zaGxpYiAkbGli ZmlsZQorKworK3NldCBidWlsZGlkIFtidWlsZF9pZF9kZWJ1Z19maWxlbmFtZV9nZXQgJGxpYmZp bGVdCisrCisrcmVnc3ViIHtcLmRlYnVnJH0gJGJ1aWxkaWQge30gYnVpbGRpZAorKworK3NldCBk ZWJ1Z2RpciBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHt0ZXN0ZmlsZX0tZGVidWdkaXJdCisrZmls ZSBkZWxldGUgLWZvcmNlIC0tICRkZWJ1Z2RpcgorKworK2ZpbGUgbWtkaXIgJGRlYnVnZGlyL1tm aWxlIGRpcm5hbWUgJGxpYmZpbGVdCisrZmlsZSBjb3B5ICRsaWJmaWxlICRkZWJ1Z2Rpci8ke2xp YmZpbGV9CisrCisrZmlsZSBta2RpciAkZGVidWdkaXIvW2ZpbGUgZGlybmFtZSAkYnVpbGRpZF0K KytmaWxlIGNvcHkgJGxpYmZpbGUgJGRlYnVnZGlyLyR7YnVpbGRpZH0KKysKKytyZW1vdGVfZXhl YyBidWlsZCAibG4gLXMgL2xpYiAgICAgICAke2RlYnVnZGlyfS8iCisrcmVtb3RlX2V4ZWMgYnVp bGQgImxuIC1zIC9saWI2NCAgICAgJHtkZWJ1Z2Rpcn0vIgorKyMgL3VzciBpcyBub3QgbmVlZGVk LCBhbGwgdGhlIGxpYnMgYXJlIGluIC9saWI2NDogbGlibS5zby42IGxpYmMuc28uNiBsZC1saW51 eC14ODYtNjQuc28uMgorKworK2dkYl90ZXN0ICJzZXQgc29saWItYWJzb2x1dGUtcHJlZml4ICRk ZWJ1Z2RpciIKKysKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCBkZWJ1Zy1maWxlLWRpcmVjdG9y eSAkZGVidWdkaXIiICJzZXQgZGVidWctZmlsZS1kaXJlY3RvcnkiCisrCisrZ2RiX3Rlc3QgImNv cmUgJHtnY29yZWZpbGV9IiAiQ29yZSB3YXMgZ2VuZXJhdGVkIGJ5IC4qIiAicmUtbG9hZCBnZW5l cmF0ZWQgY29yZWZpbGUiCisrCisrZ2RiX3Rlc3QgImZyYW1lIiAiIzAgXFteXHJcblxdKiBsaWIg LioiICJsaWJyYXJ5IGdvdCBsb2FkZWQiCisrCisrZ2RiX3Rlc3QgImJ0IgorK2dkYl90ZXN0ICJp bmZvIHNoYXJlZCIKKy0tLSAvZGV2L251bGwJMjAxNi0wNy0wMiAyMDoyOTowMS42Nzk0MDQ5NDMg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcyMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2dj b3JlLWJ1aWxkaWQtZXhlYy1idXQtbm90LXNvbGliLW1haW4uYwkyMDE2LTA3LTI4IDIxOjA2OjQw Ljk3Nzc4NjkyMiArMDIwMAorQEAgLTAsMCArMSwyNSBAQAorKy8qIENvcHlyaWdodCAyMDEwIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisr ZXh0ZXJuIHZvaWQgbGliICh2b2lkKTsKKysKKytpbnQKKyttYWluICh2b2lkKQorK3sKKysgIGxp YiAoKTsKKysgIHJldHVybiAwOworK30KKy0tLSAvZGV2L251bGwJMjAxNi0wNy0wMiAyMDoyOTow MS42Nzk0MDQ5NDMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcyMS9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2djb3JlLWJ1aWxkaWQtZXhlYy1idXQtbm90LXNvbGliLWxpYi5jCTIwMTYtMDct MjggMjE6MDY6NDAuOTc3Nzg2OTIyICswMjAwCitAQCAtMCwwICsxLDIxIEBACisrLyogQ29weXJp Z2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxl IGlzIHBhcnQgb2YgR0RCLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysg ICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisr ICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KKysKKyt2b2lkCisrbGliICh2b2lkKQorK3sKKyt9CgpkaWZmIC0tZ2l0IGEvZ2RiLTYu Ni1idWlsZGlkLWxvY2F0ZS5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKaW5k ZXggYjI1YWQ4ZS4uZmY3Nzc3NSAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5w YXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAot SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb3JlbG93LmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAu MjAxNjAyMTEub3JpZy9nZGIvY29yZWxvdy5jCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIx ICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvcmVsb3cuYwkyMDE2LTAyLTE1 IDIzOjI2OjQ2LjUxNjA5NjM5NSArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcv Z2RiL2NvcmVsb3cuYwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb3JlbG93LmMJMjAxNi0wNy0wMyAxNDozNDozMi4wMjI3 NTM1ODIgKzAyMDAKIEBAIC00NSw2ICs0NSwxMCBAQAogICNpbmNsdWRlICJnZGJfYmZkLmgiCiAg I2luY2x1ZGUgImNvbXBsZXRlci5oIgpAQCAtOTQsMTEgKzk0LDExIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvY29yZWxvdy5jCiArCQkJICAgTlVMTCwgTlVMTCwgTlVMTCwKICsJ CQkgICAmc2V0bGlzdCwgJnNob3dsaXN0KTsKICB9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9k b2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmln L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNi0wMi0xNSAyMzoyNTozNi40NTU1OTg5NTggKzAxMDAK LSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTYtMDItMTUg MjM6MjY6MDYuMzYyODExMzAyICswMTAwCi1AQCAtMTg2ODQsNiArMTg2ODQsMjcgQEAKKy0tLSBn ZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNi0wNy0wMyAx NDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZG9j L2dkYi50ZXhpbmZvCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDMwNzUzNjUxICswMjAwCitAQCAtMTg5 MTYsNiArMTg5MTYsMjcgQEAKICAKICBAZW5kIHRhYmxlCiAgCkBAIC0xMjYsMTAgKzEyNiwxMCBA QCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2RvYy9nZGIudGV4aW5mbwogIEBjaW5k ZXggQGNvZGV7LmdudV9kZWJ1Z2xpbmt9IHNlY3Rpb25zCiAgQGNpbmRleCBkZWJ1ZyBsaW5rIHNl Y3Rpb25zCiAgQSBkZWJ1ZyBsaW5rIGlzIGEgc3BlY2lhbCBzZWN0aW9uIG9mIHRoZSBleGVjdXRh YmxlIGZpbGUgbmFtZWQKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvc29saWItc3Zy NC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3NvbGliLXN2cjQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDE2 LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi9zb2xpYi1zdnI0LmMJMjAxNi0wMi0xNSAyMzoyNjo0Ni42MTMwOTcwODMgKzAxMDAKKy0t LSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAxNi0wNy0wMyAx NDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc29s aWItc3ZyNC5jCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDMxNzUzNjU5ICswMjAwCiBAQCAtNDUsNiAr NDUsNyBAQAogICNpbmNsdWRlICJhdXh2LmgiCiAgI2luY2x1ZGUgImdkYl9iZmQuaCIKQEAgLTE5 NCwxMCArMTk0LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvc29saWItc3Zy NC5jCiAgICAgICAgeGZyZWUgKGJ1ZmZlcik7CiAgCiAgICAgICAgLyogSWYgdGhpcyBlbnRyeSBo YXMgbm8gbmFtZSwgb3IgaXRzIG5hbWUgbWF0Y2hlcyB0aGUgbmFtZQotSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9n ZGIvZWxmcmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9n ZGIvZWxmcmVhZC5jCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2VsZnJlYWQuYwkyMDE2LTAyLTE1IDIzOjI2OjA2LjM2NDgx MTMxNiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2VsZnJlYWQuYwky MDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9lbGZyZWFkLmMJMjAxNi0wNy0wMyAxNDozNDozMi4wMzE3NTM2NTkgKzAyMDAKIEBA IC0xMjU5LDkgKzEyNTksMTAgQEAKICAJICAgJiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2Jq ZmlsZSA9PSBOVUxMCiAgCSAgICYmIG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFj a2xpbmsgPT0gTlVMTCkKQEAgLTIyNCwxMSArMjI0LDExIEBAIEluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvZWxmcmVhZC5jCiAgICAgIH0KICB9CiAgCi1JbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3N5bWZpbGUuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9z eW1maWxlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9z eW1maWxlLmgJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvc3ltZmlsZS5oCTIwMTYtMDItMTUgMjM6MjY6NDYuNTE2MDk2Mzk1 ICswMTAwCi1AQCAtNTg0LDYgKzU4NCwxMCBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9y aWcvZ2RiL3N5bWZpbGUuaAkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9zeW1maWxlLmgJMjAxNi0wNy0wMyAxNDozNDozMi4w MzI3NTM2NjggKzAyMDAKK0BAIC01ODksNiArNTg5LDEwIEBACiAgdm9pZCBtYXBfc3ltYm9sX2Zp bGVuYW1lcyAoc3ltYm9sX2ZpbGVuYW1lX2Z0eXBlICpmdW4sIHZvaWQgKmRhdGEsCiAgCQkJICAg aW50IG5lZWRfZnVsbG5hbWUpOwogIApAQCAtMjM5LDExICsyMzksMTEgQEAgSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi9zeW1maWxlLmgKICAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLwog IAogIC8qIE5hbWVzIGZvciBhIGR3YXJmMiBkZWJ1Z2dpbmcgc2VjdGlvbi4gIFRoZSBmaWVsZCBO T1JNQUwgaXMgdGhlIG5vcm1hbAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvbGliL2dkYi5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1 aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3Jp Zy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIx ICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4 cAkyMDE2LTAyLTE1IDIzOjI2OjQ2LjUxNjA5NjM5NSArMDEwMAotQEAgLTE2NDAsNiArMTY0MCwx NiBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ri LmV4cAkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4w MzM3NTM2NzYgKzAyMDAKK0BAIC0xNjQxLDYgKzE2NDEsMTYgQEAKICAJICAgIHdhcm5pbmcgIkNv dWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCiAgCX0KICAgICAgfQpAQCAtMjYwLDExICsyNjAs MTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5l eHAKICAgICAgcmV0dXJuIDAKICB9CiAgCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAx Ni0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE2LTAyLTE1IDIzOjI2OjQ2LjUx NjA5NjM5NSArMDEwMAotQEAgLTIwNCw2ICsyMDQsMTYgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTYtMDctMDMgMTQ6 MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3Rz dWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4wMzM3NTM2NzYgKzAy MDAKK0BAIC0zMDksNiArMzA5LDE2IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdz IH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKICAJfQog ICAgICB9CkBAIC0yNzksMTIgKzI3OSwxMiBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKICsJfQogKyAgICB9CiAgCi0gICAgICMg Q3JlYXRlIHRoZSBuZXcgUFRZIGZvciB0aGUgaW5mZXJpb3IgcHJvY2Vzcy4KICAgICAgaWYgeyAk c2VwYXJhdGVfaW5mZXJpb3JfcHR5IH0gewotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi9vYmpmaWxlcy5oCisgCW1pX2NyZWF0ZV9pbmZlcmlvcl9wdHkKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvb2JqZmlsZXMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIw MTYwMjExLm9yaWcvZ2RiL29iamZpbGVzLmgJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEg KzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvb2JqZmlsZXMuaAkyMDE2LTAyLTE1 IDIzOjI2OjA2LjM2NjgxMTMzMCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcv Z2RiL29iamZpbGVzLmgJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvb2JqZmlsZXMuaAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAz NDc1MzY4NSArMDIwMAogQEAgLTQ4OSw2ICs0ODksMTAgQEAKICAKICAjZGVmaW5lIE9CSkZfTk9U X0ZJTEVOQU1FICgxIDw8IDYpCkBAIC0yOTYsMTAgKzI5NiwxMCBAQCBJbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL29iamZpbGVzLmgKICAvKiBEZWNsYXJhdGlvbnMgZm9yIGZ1bmN0aW9u cyBkZWZpbmVkIGluIG9iamZpbGVzLmMgKi8KICAKICBleHRlcm4gc3RydWN0IG9iamZpbGUgKmFs bG9jYXRlX29iamZpbGUgKGJmZCAqLCBjb25zdCBjaGFyICpuYW1lLCBpbnQpOwotSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmls ZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIx ICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9j b3JlZmlsZS5leHAJMjAxNi0wMi0xNSAyMzoyNjo1NS4xNzgxNTc4OTYgKzAxMDAKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhw CTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxNi0wNy0wMyAxNDoz NDozMi4wMzQ3NTM2ODUgKzAyMDAKIEBAIC0yOTMsMyArMjkzLDMzIEBACiAgCXBhc3MgJHRlc3QK ICAgICAgfQpAQCAtMzM0LDEwICszMzQsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCiArICAgIGdkYl90ZXN0ICJpbmZv IGZpbGVzIiAiTG9jYWwgZXhlYyBmaWxlOlxyXG5cWyBcdFxdKmBbc3RyaW5nX3RvX3JlZ2V4cCAk ZGVidWdkaXIvJGJ1aWxkaWRdJywgZmlsZSB0eXBlIC4qIgogKyAgICBwYXNzICR3aG9sZXRlc3QK ICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNi0wMi0xNSAyMzoyNTowMC44 NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuYwky MDE2LTAyLTE1IDIzOjI2OjQ2LjUxNjA5NjM5NSArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYw NjMwLm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuYwkyMDE2LTA3LTAzIDE0 OjM2OjUwLjEyNDkzODE4NyArMDIwMAogQEAgLTI2LDExICsyNiw2NyBAQAogICNpbmNsdWRlICJv YmpmaWxlcy5oIgogICNpbmNsdWRlICJmaWxlbmFtZXMuaCIKQEAgLTM4NSwxMCArMzg1LDEwIEBA IEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuYwogKwkgICYmIG1lbWNt cCAoeG5wLT5uYW1lLCAiR05VIiwgc2l6ZW9mICJHTlUiKSA9PSAwKQogKwl7CiArCSAgc2l6ZV90 IHNpemUgPSBkZXNjc3o7Ci0rCSAgZ2RiX2J5dGUgKmRhdGEgPSAodm9pZCAqKSBkZXNjZGF0YTsK KysJICBnZGJfYnl0ZSAqZGF0YSA9IChnZGJfYnl0ZSAqKSBkZXNjZGF0YTsKICsJICBzdHJ1Y3Qg YmZkX2J1aWxkX2lkICpyZXR2YWw7CiArCi0rCSAgcmV0dmFsID0geG1hbGxvYyAoc2l6ZW9mICpy ZXR2YWwgLSAxICsgc2l6ZSk7CisrCSAgcmV0dmFsID0gKHN0cnVjdCBiZmRfYnVpbGRfaWQgKikg eG1hbGxvYyAoc2l6ZW9mICpyZXR2YWwgLSAxICsgc2l6ZSk7CiArCSAgcmV0dmFsLT5zaXplID0g c2l6ZTsKICsJICBtZW1jcHkgKHJldHZhbC0+ZGF0YSwgZGF0YSwgc2l6ZSk7CiArCkBAIC00Mjks NyArNDI5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiAr CWdkYl9ieXRlICpidWY7CiArCWludCBlcnI7CiArCi0rCWJ1ZiA9IHhtYWxsb2MgKGhkci0+cF9m aWxlc3opOworKwlidWYgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAoaGRyLT5wX2ZpbGVzeik7CiAr CWVyciA9IHRhcmdldF9yZWFkX21lbW9yeSAobG9hZGJhc2UgKyBpX3BoZHJbaV0ucF92YWRkciwg YnVmLAogKwkJCQkgIGhkci0+cF9maWxlc3opOwogKwlpZiAoZXJyID09IDApCkBAIC02MzMsOCAr NjMzLDggQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArICB4 X3BoZHJzX3NpemUgPSAoYmZkX2dldF9hcmNoX3NpemUgKHRlbXBsKSA9PSA2NCA/IHNpemVvZiAo RWxmNjRfRXh0ZXJuYWxfUGhkcikKICsJCQkJCQk6IHNpemVvZiAoRWxmMzJfRXh0ZXJuYWxfUGhk cikpOwogKwotKyAgaV9waGRycyA9IHhtYWxsb2MgKGlfZWhkci5lX3BobnVtICogKHNpemVvZiAq aV9waGRycyArIHhfcGhkcnNfc2l6ZSkpOwotKyAgeF9waGRyc19wdHIgPSAodm9pZCAqKSAmaV9w aGRyc1tpX2VoZHIuZV9waG51bV07CisrICBpX3BoZHJzID0gKEVsZl9JbnRlcm5hbF9QaGRyICop IHhtYWxsb2MgKGlfZWhkci5lX3BobnVtICogKHNpemVvZiAqaV9waGRycyArIHhfcGhkcnNfc2l6 ZSkpOworKyAgeF9waGRyc19wdHIgPSAoZ2RiX2J5dGUgKikgJmlfcGhkcnNbaV9laGRyLmVfcGhu dW1dOwogKyAgZXJyID0gdGFyZ2V0X3JlYWRfbWVtb3J5IChlaGRyX3ZtYSArIGlfZWhkci5lX3Bo b2ZmLCAoYmZkX2J5dGUgKikgeF9waGRyc19wdHIsCiArCQkJICAgIGlfZWhkci5lX3BobnVtICog eF9waGRyc19zaXplKTsKICsgIGlmIChlcnIpCkBAIC03MDAsNyArNzAwLDcgQEAgSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArICAgIHsKICsgICAgICBzdHJ1Y3Qg YnVpbGRfaWRfYWRkcl9zZWN0ICpjYW5kaWRhdGU7CiArCi0rICAgICAgY2FuZGlkYXRlID0geG1h bGxvYyAoc2l6ZW9mICpjYW5kaWRhdGUpOworKyAgICAgIGNhbmRpZGF0ZSA9IChzdHJ1Y3QgYnVp bGRfaWRfYWRkcl9zZWN0ICopIHhtYWxsb2MgKHNpemVvZiAqY2FuZGlkYXRlKTsKICsgICAgICBj YW5kaWRhdGUtPm5leHQgPSBidWlsZF9pZF9hZGRyX3NlY3Q7CiArICAgICAgYnVpbGRfaWRfYWRk cl9zZWN0ID0gY2FuZGlkYXRlOwogKyAgICAgIGNhbmRpZGF0ZS0+c2VjdCA9IHNlY3Q7CkBAIC04 MjUsNyArODI1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5j CiAtCSAgICAgICArIChzaXplb2YgIi8uYnVpbGQtaWQvIiAtIDEpICsgMQogLQkgICAgICAgKyAy ICogYnVpbGRfaWRfbGVuICsgKHNpemVvZiAiLmRlYnVnIiAtIDEpICsgMSk7CiAtICBsaW5rID0g KGNoYXIgKikgYWxsb2NhIChhbGxvY19sZW4pOwotKyAgbGluayA9IHhtYWxsb2MgKHN0cmxlbiAo ZGVidWdfZmlsZV9kaXJlY3RvcnkpICsgMiAqIGJ1aWxkX2lkX2xlbiArIDUwKTsKKysgIGxpbmsg PSAoY2hhciAqKSB4bWFsbG9jIChzdHJsZW4gKGRlYnVnX2ZpbGVfZGlyZWN0b3J5KSArIDIgKiBi dWlsZF9pZF9sZW4gKyA1MCk7CiAgCiAgICAvKiBLZWVwIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg c28gdGhhdCBERUJVR19GSUxFX0RJUkVDVE9SWSBiZWluZyAiIiB3aWxsCiAgICAgICBjYXVzZSAi Ly5idWlsZC1pZC8uLi4iIGxvb2t1cHMuICAqLwpAQCAtOTM3LDggKzkzNyw4IEBAIEluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuYwogKwl7CiArCSAgc2l6ZV90IGxlbl9v cmlnID0gc3RybGVuIChsaW5rX2FsbCk7CiArCi0rCSAgbGlua19hbGwgPSB4cmVhbGxvYyAobGlu a19hbGwsCi0rCQkJICAgICAgIGxlbl9vcmlnICsgMSArIHN0cmxlbiAobGluazBfcmVzb2x2ZWQp ICsgMSk7CisrCSAgbGlua19hbGwgPSAoY2hhciAqKSB4cmVhbGxvYyAobGlua19hbGwsCisrCQkJ CQlsZW5fb3JpZyArIDEgKyBzdHJsZW4gKGxpbmswX3Jlc29sdmVkKSArIDEpOwogKwogKwkgIC8q IFVzZSB3aGl0ZXNwYWNlIGluc3RlYWQgb2YgRElSTkFNRV9TRVBBUkFUT1IgdG8gYmUgY29tcGF0 aWJsZSB3aXRoCiArCSAgICAgaXRzIHBvc3NpYmxlIHVzZSBhcyBhbiBhcmd1bWVudCBmb3IgaW5z dGFsbGF0aW9uIGNvbW1hbmQuICAqLwpAQCAtMTA5NSw5ICsxMDk1LDkgQEAgSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArICBpZiAoKnNsb3QgIT0gTlVMTCkKICsg ICAgcmV0dXJuOwogKwotKyAgbWlzc2luZ19maWxlcGFpciA9IG9ic3RhY2tfYWxsb2MgKCZtaXNz aW5nX2ZpbGVwYWlyX29ic3RhY2ssCi0rCQkJCSAgICAgIHNpemVvZiAoKm1pc3NpbmdfZmlsZXBh aXIpIC0gMQotKwkJCQkgICAgICArIGJpbmFyeV9sZW4wICsgZGVidWdfbGVuMCk7CisrICBtaXNz aW5nX2ZpbGVwYWlyID0gKHN0cnVjdCBtaXNzaW5nX2ZpbGVwYWlyICopIG9ic3RhY2tfYWxsb2Mg KCZtaXNzaW5nX2ZpbGVwYWlyX29ic3RhY2ssCisrCQkJCQkJCQlzaXplb2YgKCptaXNzaW5nX2Zp bGVwYWlyKSAtIDEKKysJCQkJCQkJCSsgYmluYXJ5X2xlbjAgKyBkZWJ1Z19sZW4wKTsKICsgIG1p c3NpbmdfZmlsZXBhaXItPmJpbmFyeSA9IG1pc3NpbmdfZmlsZXBhaXItPmRhdGE7CiArICBtZW1j cHkgKG1pc3NpbmdfZmlsZXBhaXItPmJpbmFyeSwgYmluYXJ5LCBiaW5hcnlfbGVuMCk7CiArICBp ZiAoZGVidWcgIT0gTlVMTCkKQEAgLTExNjYsMTAgKzExNjYsMTAgQEAgSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArCiArICBvYnNlcnZlcl9hdHRhY2hfZXhlY3V0 YWJsZV9jaGFuZ2VkIChkZWJ1Z19wcmludF9leGVjdXRhYmxlX2NoYW5nZWQpOwogK30KLUluZGV4 OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuaAorSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9idWlsZC1pZC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAx NjAyMTEub3JpZy9nZGIvYnVpbGQtaWQuaAkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSAr MDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5oCTIwMTYtMDItMTUg MjM6MjY6MDYuMzY4ODExMzQ1ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9n ZGIvYnVpbGQtaWQuaAkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi9idWlsZC1pZC5oCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDM1 NzUzNjk0ICswMjAwCiBAQCAtMjAsOSArMjAsMTAgQEAKICAjaWZuZGVmIEJVSUxEX0lEX0gKICAj ZGVmaW5lIEJVSUxEX0lEX0gKQEAgLTEyMDQsMTEgKzEyMDQsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5oCiArCQkJCQkgICAgICAgY2hhciAqKmJ1aWxkX2lk X2ZpbGVuYW1lX3JldHVybik7CiAgCiAgI2VuZGlmIC8qIEJVSUxEX0lEX0ggKi8KLUluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIw MTYwMjExLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTAyLTE1IDIzOjI1OjM2LjQ2MTU5OTAw MSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9kd2FyZjJyZWFkLmMJMjAxNi0w Mi0xNSAyMzoyNjowNi4zNzM4MTEzODAgKzAxMDAKLUBAIC0yNTE2LDcgKzI1MTYsNyBAQAorLS0t IGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA3LTAzIDE0 OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kd2Fy ZjJyZWFkLmMJMjAxNi0wNy0wMyAxNDozNDozMi4wNDA3NTM3MzYgKzAyMDAKK0BAIC0yNTM1LDcg KzI1MzUsNyBAQAogICAgICB9CiAgCiAgICBpZiAoZHd6X2JmZCA9PSBOVUxMKQpAQCAtMTIxNywx MSArMTIxNywxMSBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2R3YXJmMnJlYWQu YwogIAogICAgaWYgKGR3el9iZmQgPT0gTlVMTCkKICAgICAgZXJyb3IgKF8oImNvdWxkIG5vdCBm aW5kICcuZ251X2RlYnVnYWx0bGluaycgZmlsZSBmb3IgJXMiKSwKLUluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi9weXRob24vcHktb2JqZmlsZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu OTAuMjAxNjAyMTEub3JpZy9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwkyMDE2LTAyLTE1IDIzOjI1 OjAwLjg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9weXRob24v cHktb2JqZmlsZS5jCTIwMTYtMDItMTUgMjM6MjY6MDYuMzczODExMzgwICswMTAwCi1AQCAtMTM5 LDcgKzEzOSw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvcHl0aG9uL3B5 LW9iamZpbGUuYwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTYtMDctMDMgMTQ6MzQ6 MzIuMDQwNzUzNzM2ICswMjAwCitAQCAtMTM2LDcgKzEzNiw3IEBACiAgCiAgICBUUlkKICAgICAg ewpAQCAtMTIzMCw3ICsxMjMwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9w eXRob24vcHktb2JqZmlsZS5jCiAgICAgIH0KICAgIENBVENIIChleGNlcHQsIFJFVFVSTl9NQVNL X0FMTCkKICAgICAgewotQEAgLTU0OCw3ICs1NDgsNyBAQAorQEAgLTU0Nyw3ICs1NDcsNyBAQAog ICAgICAgIC8qIERvbid0IHJldHVybiBzZXBhcmF0ZSBkZWJ1ZyBmaWxlcy4gICovCiAgICAgICAg aWYgKG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmsgIT0gTlVMTCkKICAJ Y29udGludWU7CkBAIC0xMjM5LDExICsxMjM5LDExIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwogICAgICAgIGlmIChvYmZkX2J1aWxkX2lkID09 IE5VTEwpCiAgCWNvbnRpbnVlOwogICAgICAgIGlmIChvYmpmcHlfYnVpbGRfaWRfbWF0Y2hlcyAo b2JmZF9idWlsZF9pZCwgYnVpbGRfaWQpKQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi9jb2ZmcmVhZC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2NvZmZyZWFkLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9jb2ZmcmVhZC5j CTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL2NvZmZyZWFkLmMJMjAxNi0wMi0xNSAyMzoyNjowNi4zNzQ4MTEzODcgKzAxMDAK LUBAIC03MzksNyArNzM5LDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9j b2ZmcmVhZC5jCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL2NvZmZyZWFkLmMJMjAxNi0wNy0wMyAxNDozNDozMi4wNDE3NTM3 NDUgKzAyMDAKK0BAIC03MzcsNyArNzM3LDcgQEAKICAgICAgewogICAgICAgIGNoYXIgKmRlYnVn ZmlsZTsKICAKCmRpZmYgLS1naXQgYS9nZGItNi44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0 b3BwZWQucGF0Y2ggYi9nZGItNi44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0 Y2gKaW5kZXggYTBjNDcyYi4uNDRiODMxMSAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1hdHRhY2gtc2ln bmFsbGVkLWRldGFjaC1zdG9wcGVkLnBhdGNoCisrKyBiL2dkYi02LjgtYXR0YWNoLXNpZ25hbGxl ZC1kZXRhY2gtc3RvcHBlZC5wYXRjaApAQCAtMSw3ICsxLDggQEAKLWRpZmYgLWR1cCAtcnVwIGdk Yi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2luZnJ1bi5jIGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9pbmZydW4uYwotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2luZnJ1bi5j CTIwMTYtMDEtMDkgMTU6MDU6MDYuMTI3NDgxNzU4ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2luZnJ1bi5jCTIwMTYtMDEtMDkgMTU6MDU6MjQuMDU0NTkzMDQ4ICswMTAwCi1A QCAtNjI2LDYgKzYyNiwxMyBAQCBob2xkaW5nIHRoZSBjaGlsZCBzdG9wcGVkLiAgVHJ5IFwic2V0 IGRlCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2luZnJ1bi5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvaW5mcnVuLmMJMjAxNi0wNy0xNiAx NDozNzowOS4zMTcxNzgxNTAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaW5m cnVuLmMJMjAxNi0wNy0xNiAxNDozNzoxMC42MzYxODg3NjUgKzAyMDAKK0BAIC02MjAsNiArNjIw LDEzIEBACiAgCQkJCXRhcmdldF9waWRfdG9fc3RyIChwcm9jZXNzX3B0aWQpKTsKICAJICAgIH0K ICAKQEAgLTE1LDEwICsxNiwxMSBAQCBkaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEw Ni1vcmlnL2dkYi9pbmZydW4uYyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaQogIAkgIHRhcmdl dF9kZXRhY2ggKE5VTEwsIDApOwogIAl9CiAgCi1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4y MDE2MDEwNi1vcmlnL2dkYi9saW51eC1uYXQuYyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbGlu dXgtbmF0LmMKLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9saW51eC1uYXQuYwky MDE2LTAxLTA5IDE1OjA1OjA2LjIyNTQ4MjM2NiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9saW51eC1uYXQuYwkyMDE2LTAxLTA5IDE1OjA1OjI0LjA1MDU5MzAyMyArMDEwMAot QEAgLTE5NCw2ICsxOTQsMTEgQEAgZW51bSB0cmlib29sIGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9 IFRSSQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9saW51eC1uYXQuYworPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTYt MDctMTYgMTQ6Mzc6MDkuMzIwMTc4MTc0ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2xpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6Mzg6MDkuNTc0NjYzMDk0ICswMjAwCitAQCAt MTk0LDYgKzE5NCwxMSBAQAogIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X29wcyAqbGludXhfb3BzOwog IHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X29wcyBsaW51eF9vcHNfc2F2ZWQ7CiAgCkBAIC0zMCw3ICsz Miw3IEBAIGRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2xpbnV4 LW5hdC5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkCiAgLyogVGhlIG1ldGhvZCB0byBjYWxsLCBp ZiBhbnksIHdoZW4gYSBuZXcgdGhyZWFkIGlzIGF0dGFjaGVkLiAgKi8KICBzdGF0aWMgdm9pZCAo KmxpbnV4X25hdF9uZXdfdGhyZWFkKSAoc3RydWN0IGx3cF9pbmZvICopOwogIAotQEAgLTk2MSw2 ICs5NjYsOSBAQCBsaW51eF9uYXRfcG9zdF9hdHRhY2hfd2FpdCAocHRpZF90IHB0aWQsCitAQCAt MTA0Nyw2ICsxMDUyLDkgQEAKICAgICAgICBpZiAoZGVidWdfbGludXhfbmF0KQogIAlmcHJpbnRm X3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAgCQkJICAgICJMTlBBVzogQXR0YWNoaW5nIHRvIGEg c3RvcHBlZCBwcm9jZXNzXG4iKTsKQEAgLTQwLDggKzQyLDggQEAgZGlmZiAtZHVwIC1ydXAgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvbGludXgtbmF0LmMgZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2QKICAKICAgICAgICAvKiBUaGUgcHJvY2VzcyBpcyBkZWZpbml0ZWx5IHN0b3BwZWQuICBJ dCBpcyBpbiBhIGpvYiBjb250cm9sCiAgCSBzdG9wLCB1bmxlc3MgdGhlIGtlcm5lbCBwcmVkYXRl cyB0aGUgVEFTS19TVE9QUEVEIC8KLUBAIC0xMzAzLDYgKzEzMTEsMjUgQEAgZ2V0X3BlbmRpbmdf c3RhdHVzIChzdHJ1Y3QgbHdwX2luZm8gKmxwLAotIAkJCSAgICBnZGJfc2lnbmFsX3RvX3N0cmlu ZyAoc2lnbm8pKTsKK0BAIC0xNDA0LDYgKzE0MTIsMjUgQEAKKyAgICAgICByZXR1cm4gZ2RiX3Np Z25hbF90b19ob3N0IChzaWdubyk7CiAgICAgIH0KICAKICsjaWZkZWYgTkVFRF9ERVRBQ0hfU0lH U1RPUApAQCAtNjYsMTggKzY4LDE4IEBAIGRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYw MTA2LW9yaWcvZ2RiL2xpbnV4LW5hdC5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkCiAgICByZXR1 cm4gMDsKICB9CiAgCi1AQCAtMTQxNiw2ICsxNDQzLDEwIEBAIGxpbnV4X25hdF9kZXRhY2ggKHN0 cnVjdCB0YXJnZXRfb3BzICpvcHMKLSAgICAgfQotICAgZWxzZQotICAgICBsaW51eF9vcHMtPnRv X2RldGFjaCAob3BzLCBhcmdzLCBmcm9tX3R0eSk7Ci0rI2lmZGVmIE5FRURfREVUQUNIX1NJR1NU T1AKK0BAIC0xNTYyLDYgKzE1ODksMTAgQEAKKyAgICAgICBkZXRhY2hfb25lX2x3cCAobWFpbl9s d3AsICZzaWdubyk7CisgCisgICAgICAgaW5mX3B0cmFjZV9kZXRhY2hfc3VjY2VzcyAob3BzKTsK ICsKLSsgIHBpZF93YXNfc3RvcHBlZCA9IDA7CisrI2lmZGVmIE5FRURfREVUQUNIX1NJR1NUT1AK KysgICAgICBwaWRfd2FzX3N0b3BwZWQgPSAwOwogKyNlbmRpZgorICAgICB9CisgICBkZWxldGVf bHdwIChtYWluX2x3cC0+cHRpZCk7CiAgfQotIAotIC8qIFJlc3VtZSBleGVjdXRpb24gb2YgdGhl IGluZmVyaW9yIHByb2Nlc3MuICBJZiBTVEVQIGlzIG5vbnplcm8sCi1AQCAtMTY3NCw2ICsxNzA1 LDE2IEBAIGxpbnV4X25hdF9yZXN1bWUgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKK0BAIC0xODIz LDYgKzE4NTQsMTYgQEAKICAgICAgICByZXR1cm47CiAgICAgIH0KICAKQEAgLTk0LDcgKzk2LDcg QEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvbGludXgtbmF0 LmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2QKICAgIGlmIChyZXN1bWVfbWFueSkKICAgICAgaXRl cmF0ZV9vdmVyX2x3cHMgKHB0aWQsIGxpbnV4X25hdF9yZXN1bWVfY2FsbGJhY2ssIGxwKTsKICAK LUBAIC0zNjE4LDYgKzM2NTksMTAgQEAgbGludXhfbmF0X21vdXJuX2luZmVyaW9yIChzdHJ1Y3Qg dGFyZ2V0XworQEAgLTM4MTksNiArMzg2MCwxMCBAQAogIAogICAgLyogTGV0IHRoZSBhcmNoLXNw ZWNpZmljIG5hdGl2ZSBjb2RlIGtub3cgdGhpcyBwcm9jZXNzIGlzIGdvbmUuICAqLwogICAgbGlu dXhfbmF0X2ZvcmdldF9wcm9jZXNzIChwaWQpOwpAQCAtMTA1LDEwICsxMDcsMTEgQEAgZGlmZiAt ZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvbGludXgtbmF0LmMgZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2QKICB9CiAgCiAgLyogQ29udmVydCBhIG5hdGl2ZS9ob3N0IHNpZ2lu Zm8gb2JqZWN0LCBpbnRvL2Zyb20gdGhlIHNpZ2luZm8gaW4gdGhlCi1kaWZmIC1kdXAgLXJ1cCBn ZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNo LXN0b3BwZWQuZXhwIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVh ZHMvYXR0YWNoLXN0b3BwZWQuZXhwCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIv dGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE2LTAxLTA2IDAyOjQ4 OjM4LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3Vp dGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTYtMDEtMDkgMTU6MDU6NDguOTE3 NzQ3MTAxICswMTAwCi1AQCAtNTYsNyArNTYsNjUgQEAgcHJvYyBjb3JlZnVuYyB7IHRocmVhZHR5 cGUgfSB7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhy ZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIw MTYtMDctMTYgMTQ6Mzc6MDkuMzIxMTc4MTgyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAJMjAxNi0wNy0x NiAxNDozNzoxMC42NDAxODg3OTcgKzAyMDAKK0BAIC01Niw3ICs1Niw2NSBAQAogICAgICBnZGJf cmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKICAgICAgZ2RiX2xvYWQgJHtiaW5maWxl fQogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2ggYi9nZGIt Ni44LXF1aXQtbmV2ZXItYWJvcnRzLnBhdGNoCmluZGV4IDQ3ZTFjNjQuLjU1ZTcxNGUgMTAwNjQ0 Ci0tLSBhL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2gKKysrIGIvZ2RiLTYuOC1xdWl0 LW5ldmVyLWFib3J0cy5wYXRjaApAQCAtNSwzOCArNSw0MiBAQCBTb21lIG9mIHRoZSB0aHJlYWRz IG1heSBub3QgYmUgcHJvcGVybHkgUFRSQUNFX0RFVEFDSGVkIHdoaWNoIGh1cnRzIGlmIHRoZXkK IHNob3VsZCBoYXZlIGJlZW4gZGV0YWNoZWQgd2l0aCBTSUdTVE9QIChhcyB0aGV5IGFyZSBhY2Np ZGVudGFsbHkgbGVmdCBydW5uaW5nCiBvbiB0aGUgZGVidWdnZXIgdGVybWluYXRpb24pLgogCi1k aWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9kZWZzLmggZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL2RlZnMuaAotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcv Z2RiL2RlZnMuaAkyMDE2LTAxLTA5IDE1OjA2OjU3LjY1ODE3Mjg3NSArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9kZWZzLmgJMjAxNi0wMS0wOSAxNTowNzoxMi40MzEyNjQzNzgg KzAxMDAKLUBAIC0xNDUsNiArMTQ1LDkgQEAgZXh0ZXJuIHZvaWQgc2V0X3F1aXRfZmxhZyAodm9p ZCk7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2RlZnMuaAorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2RlZnMuaAkyMDE2LTA3LTAzIDE2OjQw OjQzLjQyMzA3ODkyNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kZWZzLmgJ MjAxNi0wNy0wMyAxNjo0MTowOC41NjgyNzE3NDEgKzAyMDAKK0BAIC0xNzUsNiArMTc1LDEwIEBA CiAgLyogRmxhZyB0aGF0IGZ1bmN0aW9uIHF1aXQgc2hvdWxkIGNhbGwgcXVpdF9mb3JjZS4gICov CiAgZXh0ZXJuIHZvbGF0aWxlIGludCBzeW5jX3F1aXRfZm9yY2VfcnVuOwogIAogKyNpZmRlZiBO RUVEX0RFVEFDSF9TSUdTVE9QCiArZXh0ZXJuIGludCBxdWl0X2ZsYWdfY2xlYW51cDsKICsjZW5k aWYKLSBleHRlcm4gaW50IGltbWVkaWF0ZV9xdWl0OwotIAorKwogIGV4dGVybiB2b2lkIHF1aXQg KHZvaWQpOwotZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvZXh0 ZW5zaW9uLmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2V4dGVuc2lvbi5jCi0tLS0gZ2RiLTcu MTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvZXh0ZW5zaW9uLmMJMjAxNi0wMS0wNiAwMjo0ODozNy4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZXh0ZW5zaW9uLmMJ MjAxNi0wMS0wOSAxNTowNzoxMi40MzQyNjQzOTYgKzAxMDAKLUBAIC04MzMsNiArODMzLDExIEBA IGNoZWNrX3F1aXRfZmxhZyAodm9pZCkKKyAKKyAvKiBIZWxwZXIgZm9yIHRoZSBRVUlUIG1hY3Jv LiAgKi8KK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZXh0ZW5zaW9uLmMKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9leHRlbnNpb24uYwkyMDE2 LTA3LTAzIDE2OjQwOjQxLjcyMzA2NTg5MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9leHRlbnNpb24uYwkyMDE2LTA3LTAzIDE2OjQxOjQ0Ljg5NjU1MDMwOSArMDIwMAorQEAg LTgzMCw2ICs4MzAsMTEgQEAKICAgIGludCBpLCByZXN1bHQgPSAwOwogICAgY29uc3Qgc3RydWN0 IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICpleHRsYW5nOwogIAogKyNpZmRlZiBORUVEX0RFVEFD SF9TSUdTVE9QCiArICBpZiAocXVpdF9mbGFnX2NsZWFudXApCiArICAgIHJldHVybiAwOwotKwog KyNlbmRpZgorKwogICAgQUxMX0VOQUJMRURfRVhURU5TSU9OX0xBTkdVQUdFUyAoaSwgZXh0bGFu ZykKICAgICAgewogICAgICAgIGlmIChleHRsYW5nLT5vcHMtPmNoZWNrX3F1aXRfZmxhZyAhPSBO VUxMKQotZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvdG9wLmMg Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RvcC5jCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYt b3JpZy9nZGIvdG9wLmMJMjAxNi0wMS0wNiAwMjo0ODozOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdG9wLmMJMjAxNi0wMS0wOSAxNTowNzoxMi40MzIyNjQz ODQgKzAxMDAKLUBAIC0xNTU3LDcgKzE1NTcsMTMgQEAgcXVpdF9mb3JjZSAoY2hhciAqYXJncywg aW50IGZyb21fdHR5KQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90b3AuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3RvcC5jCTIwMTYtMDct MDMgMTY6NDA6NDEuNzI0MDY1ODk4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L3RvcC5jCTIwMTYtMDctMDMgMTY6NDA6NDMuNDI0MDc4OTM0ICswMjAwCitAQCAtMTYxNyw3ICsx NjE3LDEzIEBACiAgICBxdC5hcmdzID0gYXJnczsKICAgIHF0LmZyb21fdHR5ID0gZnJvbV90dHk7 CiAgCkBAIC01MCwyMCArNTQsMjEgQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAx MDYtb3JpZy9nZGIvdG9wLmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RvcC4KICAKICAgIC8q IEdldCBvdXQgb2YgdGZpbmQgbW9kZSwgYW5kIGtpbGwgb3IgZGV0YWNoIGFsbCBpbmZlcmlvcnMu ICAqLwogICAgVFJZCi1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dk Yi91dGlscy5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi91dGlscy5jCi0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYtb3JpZy9nZGIvdXRpbHMuYwkyMDE2LTAxLTA5IDE1OjA2OjU3LjY1NDE3Mjg1 MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi91dGlscy5jCTIwMTYtMDEtMDkg MTU6MDc6MTIuNDMzMjY0MzkwICswMTAwCi1AQCAtMTIyLDYgKzEyMiwxMyBAQCBpbnQgam9iX2Nv bnRyb2w7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3V0aWxzLmMKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi91dGlscy5jCTIwMTYtMDctMDMg MTY6NDA6NDEuNzI1MDY1OTA1ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3V0 aWxzLmMJMjAxNi0wNy0wMyAxNjo0MTozOC45NjE1MDQ3OTkgKzAyMDAKK0BAIC0xMDksNiArMTA5 LDEzIEBACiAgCi0gaW50IGltbWVkaWF0ZV9xdWl0OworIGludCBqb2JfY29udHJvbDsKICAKICsj aWZkZWYgTkVFRF9ERVRBQ0hfU0lHU1RPUAogKy8qIE5vbnplcm8gbWVhbnMgd2UgYXJlIGFscmVh ZHkgcHJvY2Vzc2luZyB0aGUgcXVpdHRpbmcgY2xlYW51cHMgYW5kIHdlIHNob3VsZAogKyAgIG5v IGxvbmdlciBnZXQgYWJvcnRlZC4gICovCiArCiAraW50IHF1aXRfZmxhZ19jbGVhbnVwOwotKwog KyNlbmRpZgorKwogIC8qIE5vbnplcm8gbWVhbnMgdGhhdCBzdHJpbmdzIHdpdGggY2hhcmFjdGVy IHZhbHVlcyA+MHg3RiBzaG91bGQgYmUgcHJpbnRlZAogICAgIGFzIG9jdGFsIGVzY2FwZXMuICBa ZXJvIG1lYW5zIGp1c3QgcHJpbnQgdGhlIHZhbHVlIChlLmcuIGl0J3MgYW4KICAgICBpbnRlcm5h dGlvbmFsIGNoYXJhY3RlciwgYW5kIHRoZSB0ZXJtaW5hbCBvciB3aW5kb3cgY2FuIGNvcGUuKSAg Ki8KCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLXZsYS10ZXN0cy5wYXRjaCBiL2dkYi1hcmNoZXIt dmxhLXRlc3RzLnBhdGNoCmluZGV4IGZhNjAzODAuLjdmN2UxODQgMTAwNjQ0Ci0tLSBhL2dkYi1h cmNoZXItdmxhLXRlc3RzLnBhdGNoCisrKyBiL2dkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoCkBA IC0xLDcgKzEsNyBAQAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXku ZXhwCTIwMTYtMDItMTUgMjM6MzM6MjkuODMwOTU5OTcyICswMTAwCi0rKysgZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNi0wMi0x NSAyMzozNTo1Ni4yODk5OTk4NDYgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCTIwMTYtMDctMTYgMDM6NDg6 NTkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzYxNzI4ODkg KzAyMDAKIEBAIC01Niw1ICs1NiwxMSBAQAogICAgICAgICAgIyBhcmUuICBPYnNlcnZlZCB3aXRo IChGU0YgR05VIEFkYSA0LjUuMyAyMDExMDEyNCkuCiAgICAgICAgICB4ZmFpbCAkdGVzdApAQCAt MTQsMTAgKzE0LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAogKyAgICB9CiAgfQogIAotSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLWZv by5TCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94 ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi1mb28uUwkyMDE2LTAyLTE1 IDIzOjM1OjU2LjI5MDk5OTg1MyArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLWZvby5TCTIwMTYtMDctMTYgMTY6 NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDQ1NSBAQAogKwkuZmlsZQkieDg2XzY0 LXZsYS10eXBlZGVmLmMiCiArCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIsQHByb2diaXRzCkBA IC00NzQsMTAgKzQ3NCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMKICsJLnN0cmluZwkiR05VIEMg NC4zLjIgMjAwODExMDUgKFJlZCBIYXQgNC4zLjItNykiCiArCS5pZGVudAkiR0NDOiAoR05VKSA0 LjMuMiAyMDA4MTEwNSAoUmVkIEhhdCA0LjMuMi03KSIKICsJLnNlY3Rpb24JLm5vdGUuR05VLXN0 YWNrLCIiLEBwcm9nYml0cwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxh LXR5cGVkZWYuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MDk5OTg1MyArMDEwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVm LmMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4OTcgKzAyMDAKIEBAIC0wLDAgKzEsNDUgQEAK ICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpA QCAtNTI0LDEwICs1MjQsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMKICt9CiArCiArI2VuZGlmCi1JbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxh LXR5cGVkZWYuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCTIwMTYt MDItMTUgMjM6MzU6NTYuMjkwOTk5ODUzICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCTIwMTYtMDctMTYg MTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDY0IEBACiArIyBDb3B5cmlnaHQg MjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTU5MywxMCArNTkzLDEw IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4 Nl82NC12bGEtdHlwZWRlZi5leHAKICtnZGJfdGVzdCAid2hhdGlzIGFycmF5IiAidHlwZSA9IGFy cmF5X3QiICJzZWNvbmQ6IHdoYXRpcyBhcnJheSIKICsKICtnZGJfdGVzdCAicHR5cGUgYXJyYXki ICJ0eXBlID0gY2hhciBcXFxbNzhcXFxdIiAic2Vjb25kOiBwdHlwZSBhcnJheSIKLUluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4 LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvYXJyYXlpZHguYwkyMDE2LTAyLTE1IDIzOjMzOjI5LjgzMDk1OTk3MiArMDEw MAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlp ZHguYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MDk5OTg1MyArMDEwMAorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMDct MTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcy ODk3ICswMjAwCiBAQCAtMTcsNiArMTcsMTMgQEAKICAKICBpbnQgYXJyYXlbXSA9IHsxLCAyLCAz LCA0fTsKQEAgLTYxMSwxMCArNjExLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMKICBpbnQKICBtYWluICh2b2lkKQogIHsK LUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5 aWR4LmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvYXJyYXlpZHguZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3Jp Zy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAkyMDE2LTAyLTE1IDIzOjMzOjI5 LjgzMDk1OTk3MiArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkxOTk5ODYwICswMTAw CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fy cmF5aWR4LmV4cAkyMDE2LTA3LTE2IDAzOjQ4OjU5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTYt MDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtNDksNCArNDksMTIgQEAKICAgICAg ICAgICAiXFx7XFxcWzBcXFxdID0gMSwgXFxcWzFcXFxdID0gMiwgXFxcWzJcXFxdID0gMywgXFxc WzNcXFxdID0gNFxcfSIgXAogICAgICAgICAgICJQcmludCBhcnJheSB3aXRoIGFycmF5LWluZGV4 ZXMgb24iCkBAIC02MjksMTAgKzYyOSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAKICsJdW5zdXBwb3J0ZWQgIiR0ZXN0 IChubyBHQ0MpIgogKyAgICB9CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZp ZWxkLWFkZHJlc3MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuYwkyMDE2LTAyLTE1IDIzOjM1 OjU2LjI5MTk5OTg2MCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuYwkyMDE2LTA3LTE2IDE2OjUz OjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSwyMCBAQAogKy8qIFRoaXMgdGVzdGNhc2Ug aXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC02NTQsMTAgKzY1NCwxMCBA QCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRl cm5hbC12YXItZmllbGQtYWRkcmVzcy5jCiArc3RydWN0IHsKICsgIGludCBmaWVsZDsKICt9IHN0 YXRpY3N0cnVjdCA9IHsgMSB9OwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmll bGQtYWRkcmVzcy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4cAkyMDE2LTAyLTE1IDIz OjM1OjU2LjI5MTk5OTg2MCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCTIwMTYtMDctMTYg MTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDI2IEBACiArIyBDb3B5cmlnaHQg MjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTY4NSwxMCArNjg1LDEw IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2lu dGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4CiArCiArZ2RiX3Rlc3Qge3NldCAkdmFyc3RydWN0 ID0gc3RhdGljc3RydWN0fQogK2dkYl90ZXN0IHtwICR2YXJzdHJ1Y3QuZmllbGR9ICIgPSAxIgot SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZy YW1lLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L3ZsYS1mcmFtZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS92bGEtZnJhbWUuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MTk5OTg2MCArMDEw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZy YW1lLmMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4OTcgKzAyMDAKIEBAIC0wLDAgKzEsMzEg QEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgog KwpAQCAtNzIxLDEwICs3MjEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMKICsgIGYgKHMpOwogKyAgcmV0dXJuIDA7CiAr fQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvdmxh LWZyYW1lLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvdmxhLWZyYW1lLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MTk5 OTg2MCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmxhLWZyYW1lLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAg LTAsMCArMSwzOCBAQAogKyMgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArIwpAQCAtNzY0LDEwICs3NjQsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4cAogK30KICsKICtnZGJfdGVz dCAiYnQgZnVsbCIgIlxyXG4gK3MgPSBcIlhcXFxcMDAwXCJcclxuLioiCi1JbmRleDogZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYworSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJm bG93LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3ZsYS1vdmVyZmxvdy5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkxOTk5ODYwICswMTAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZs b3cuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSwzMCBA QAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiAr CkBAIC03OTksMTAgKzc5OSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwogKwogKyAgcmV0dXJuIDA7CiArfQotSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJm bG93LmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmxhLW92ZXJmbG93LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5 Mjk5OTg2NyArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvdmxhLW92ZXJmbG93LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIw MAogQEAgLTAsMCArMSwxMDkgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgogKwpAQCAtOTEzLDEwICs5MTMsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAogK2dkYl90 ZXN0ICJidCIgImluIFxbXiBcXSphYm9ydCBcXCguKiBpbiBtYWluIFxcKC4qIiAiQmFja3RyYWNl IGFmdGVyIGFib3J0KCkiCiArCiArdmVyYm9zZSAtbG9nICJrYl9mb3VuZCBpbiBidCBhZnRlciBh Ym9ydCgpID0gW2V4cHIgW21lbW9yeV92X3BhZ2VzX2dldF0gKiAkcGFnZXNpemUgLyAxMDI0XSIK LUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv dmxhLmMJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTI5OTk4NjcgKzAxMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCTIwMTYtMDctMTYgMTY6NTM6 MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDU1IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBp cyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTk3MywxMCArOTczLDEwIEBA IEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5j CiArICBmb28gKDc4KTsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAJMjAxNi0wMi0xNSAy MzozNTo1Ni4yOTI5OTk4NjcgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAy MDAKIEBAIC0wLDAgKzEsNjIgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgogKwpAQCAtMTA0MCwxMCArMTA0MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCiArZ2RiX3Rlc3QgInAg dGVtcDEiICIgPSAnMScgPHJlcGVhdHMgNzggdGltZXM+IiAic2Vjb25kOiBwcmludCB0ZW1wMSIK ICtnZGJfdGVzdCAicCB0ZW1wMiIgIiA9ICcyJyA8cmVwZWF0cyA3OCB0aW1lcz4iICJzZWNvbmQ6 IHByaW50IHRlbXAyIgogK2dkYl90ZXN0ICJwIHRlbXAzIiAiID0gJzMnIDxyZXBlYXRzIDQ4IHRp bWVzPiIgInNlY29uZDogcHJpbnQgdGVtcDMiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xp c3QuUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkyOTk5ODY3ICsw MTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1ib3VuZC1sb2NsaXN0LlMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKIEBA IC0wLDAgKzEsMjQ2IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdO VSBkZWJ1Z2dlci4KICsKQEAgLTEyOTEsMTAgKzEyOTEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCiAr CS5zdHJpbmcJCSJjaGFyIgogKy5MdWludF9zdHI6CiArCS5zdHJpbmcJCSJ1bnNpZ25lZCBpbnQi Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1ib3VuZC1sb2NsaXN0LmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3Qu ZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkyOTk5ODY3ICswMTAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAky MDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSw2NiBAQAogKyMg Q29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMzYy LDEwICsxMzYyLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCiArCiArIyBUaGUgcmVnaXN0ZXIgY29u dGFpbnMgdW5wcmVkaWN0YWJsZSB2YWx1ZSAtIHRoZSBhcnJheSBzaXplLgogK2dkYl90ZXN0ICJw dHlwZSByZWdfc3RyaW5nIiB7dHlwZSA9IGNoYXIgXFstP1swLTldK1xdfQotSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzIt c3RyaXBwZWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mzk5OTg3NCAr MDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItc3RyaXBwZWQuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAs MCArMSw0MiBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVi dWdnZXIuCiArCkBAIC0xNDA5LDEwICsxNDA5LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmMKICsgIGZ1bmMxICgx LCAyKTsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAorSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1z dHJpcHBlZC5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTM5OTk4NzQgKzAxMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4 cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSw3OSBAQAog KyMgQ29weXJpZ2h0IDIwMDYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0x NDkzLDEwICsxNDkzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAogK2dkYl90ZXN0ICJzdGVwIiBcCiArICAg ICAgICAgImZ1bmMuKiBcXCguKlxcKSBhdCAuKiIgXAogKyAgICAgICAgICJzdGVwIgotSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0 LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2NhdGlvbi5TCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uUwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mzk5 OTg3NCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMJMjAxNi0wNy0xNiAxNjo1Mzoz My43MzgxNzI5MDYgKzAyMDAKIEBAIC0wLDAgKzEsODMgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlz IHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTU4MSwxMCArMTU4MSwxMCBA QCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYQogKwogKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRv ciAqLwogKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLwotSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRh LWxvY2F0aW9uLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0 LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mzk5OTg3NCAr MDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjcz ODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSwzNyBAQAogKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNjIzLDEwICsxNjIzLDEwIEBAIEluZGV4 OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVj dC1tZW1iZXItZGF0YS1sb2NhCiArY2xlYW5fcmVzdGFydCAkYmluZmlsZQogKwogK2dkYl90ZXN0 ICJwdHlwZSBzdHJ1Y3Qgc29tZV9zdHJ1Y3QiICJ0eXBlID0gc3RydWN0IHNvbWVfc3RydWN0IHtc W1xyXG4gXHRcXSp2b2lkIGZpZWxkO1xbXHJcbiBcdFxdKn0iCi1JbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLlMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LXN1YnJhbmdlLW5vLXR5cGUuUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5TCTIwMTYtMDItMTUgMjM6 MzU6NTYuMjkzOTk5ODc0ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLlMJMjAxNi0wNy0xNiAxNjo1Mzoz My43MzgxNzI5MDYgKzAyMDAKIEBAIC0wLDAgKzEsMTIxIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBp cyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE3NDksMTAgKzE3NDksMTAg QEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItc3VicmFuZ2Utbm8tdHlwZS5TCiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCiAr CiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzIt c3VicmFuZ2Utbm8tdHlwZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCTIwMTYtMDItMTUg MjM6MzU6NTYuMjkzOTk5ODc0ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAkyMDE2LTA3LTE2IDE2 OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSwzOSBAQAogKyMgQ29weXJpZ2h0IDIw MTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNzkzLDEwICsxNzkzLDEw IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv ZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCiArCiArZ2RiX3Rlc3QgInB0eXBlIG5vdHlwZV9zdHJp bmciIHt0eXBlID0gY2hhciBcWzEyOVxdfQogK2dkYl90ZXN0ICJwIG5vdHlwZV9zdHJpbmciICIg PSAneCcgPHJlcGVhdHMgMTI5IHRpbWVzPiIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2R3YXJmLXN0cmlkZS5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTQ5OTk4ODEgKzAxMDAKKysr KyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0 cmlkZS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEs NDIgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgog KwpAQCAtMTg0MCwxMCArMTg0MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCiArZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgImJyZWFrLWhlcmUiICIuKmJyZWFrLWhlcmUuKiIKICtnZGJfdGVzdCAicCBj NDBwdCgxKSIgIiA9ICcwLWhlbGxvLioiCiArZ2RiX3Rlc3QgInAgYzQwcHQoMikiICIgPSAnMS1o ZWxsby4qIgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vZHdhcmYtc3RyaWRlLmY5MAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAky MDE2LTAyLTE1IDIzOjM1OjU2LjI5NDk5OTg4MSArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAkyMDE2LTA3LTE2 IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSw0MCBAQAogKyEgQ29weXJpZ2h0 IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTg4NSwxMCArMTg4 NSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9kd2FyZi1zdHJpZGUuZjkwCiArICBwcmludCAqLCBjNDBwdCAgISBicmVhay1oZXJlCiAr CiArZW5kIHByb2dyYW0gcmVwcm8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAJMjAx Ni0wMi0xNSAyMzozNjozOS4zNTgzMDU2MzUgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCTIwMTYtMDctMTYgMTc6MTk6 MjQuMjU1MjAyMDEzICswMjAwCiBAQCAtMCwwICsxLDE1MSBAQAogKyMgQ29weXJpZ2h0IDIwMDcg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBJ bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5h bWljLmV4cAogK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJ4LWluaXQi XQogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJ4LWluaXQiCiArZ2RiX3Rlc3QgInAg dmFyeCIgIlxcJFxbMC05XF0qID0gPG5vdCBhbGxvY2F0ZWQ+IiAicCB2YXJ4IHVuYWxsb2NhdGVk IgotK2dkYl90ZXN0ICJwdHlwZSB2YXJ4IiAidHlwZSA9IDxub3QgYWxsb2NhdGVkPiIgInB0eXBl IHZhcnggdW5hbGxvY2F0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZhcngiIHt0eXBlID0gcmVhbFwo a2luZD00XCkgXCg6LDosOlwpfSAicHR5cGUgdmFyeCB1bmFsbG9jYXRlZCIKICtnZGJfdGVzdCAi cCB2YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxv Y2F0ZWRcKX0gInAgdmFyeCgxLDUsMTcpIHVuYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwIHZhcngo MSw1LDE3KT0xIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVk XCl9ICJwIHZhcngoMSw1LDE3KT0xIHVuYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwdHlwZSB2YXJ4 KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRc KX0gInB0eXBlIHZhcngoMSw1LDE3KSB1bmFsbG9jYXRlZCIKQEAgLTE5NTQsNyArMTk1NCw3IEBA IEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5 bmFtaWMuZXhwCiArZ2RiX3Rlc3QgInAgdmFyeCgyLCA2LCAxOCkiICJcXCRcWzAtOVxdKiA9IDgi CiArZ2RiX3Rlc3QgInAgdmFyeCg2LCAxNSwgMjgpIiAiXFwkXFswLTlcXSogPSA5IgogK2dkYl90 ZXN0ICJwIHZhcnYiICJcXCRcWzAtOVxdKiA9IDxub3QgYXNzb2NpYXRlZD4iICJwIHZhcnYgdW5h c3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJ2IiAidHlwZSA9IDxub3QgYXNzb2NpYXRl ZD4iICJwdHlwZSB2YXJ2IHVuYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmFydiIge3R5 cGUgPSByZWFsXChraW5kPTRcKSBcKDosOiw6XCl9ICJwdHlwZSB2YXJ2IHVuYXNzb2NpYXRlZCIK ICsKICtzZXQgdGVzdCAib3V0cHV0IHZhcngiCiArZ2RiX3Rlc3RfbXVsdGlwbGUgJHRlc3QgJHRl c3QgewpAQCAtMTk4Miw3ICsxOTgyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAKICtnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAidmFydi1kZWFzc29jaWF0ZWQiCiArIyBUaGUgbGF0dGVyIG9uZSBpcyBmb3IgdGhl IEludGVsIEZvcnRyYW4gQ29tcGlsZXIgMTAuMS4wMDggcG9pbnRlciB0eXBlLgogK2dkYl90ZXN0 ICJwIHZhcnYiICJcXCRcWzAtOVxdKiA9ICg8bm90IGFzc29jaWF0ZWQ+fC4qKENhbm5vdCBhY2Nl c3MgaXR8VW5hYmxlIHRvIGFjY2VzcyB0aGUgb2JqZWN0KSBiZWNhdXNlIHRoZSBvYmplY3QgaXMg bm90IGFzc29jaWF0ZWQuKSIgInAgdmFydiBkZWFzc29jaWF0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBl IHZhcnYiICJ0eXBlID0gKDxub3QgYXNzb2NpYXRlZD58LiooQ2Fubm90IGFjY2VzcyBpdHxVbmFi bGUgdG8gYWNjZXNzIHRoZSBvYmplY3QpIGJlY2F1c2UgdGhlIG9iamVjdCBpcyBub3QgYXNzb2Np YXRlZC4pIiAicHR5cGUgdmFydiBkZWFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZhcnYi IHt0eXBlID0gcmVhbFwoa2luZD00XCkgXCg6LDosOlwpfSAicHR5cGUgdmFydiBkZWFzc29jaWF0 ZWQiCiArZ2RiX3Rlc3QgInAgbCIgIlxcJFxbMC05XF0qID0gXFwuRkFMU0VcXC4iICJwIGwgaWYg dmFydiBkZWFzc29jaWF0ZWQiCiArZ2RiX3Rlc3QgInAgdmFydigxLDUsMTcpIiB7bm8gc3VjaCB2 ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYXNzb2NpYXRlZFwpfQogK2dkYl90ZXN0ICJwdHlw ZSB2YXJ2KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhc3Nv Y2lhdGVkXCl9CkBAIC0xOTkwLDcgKzE5OTAsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAogK2dkYl9icmVha3BvaW50 IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJ4LWRlYWxsb2NhdGVkIl0KICtnZGJfY29udGludWVf dG9fYnJlYWtwb2ludCAidmFyeC1kZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicCB2YXJ4IiAiXFwk XFswLTlcXSogPSA8bm90IGFsbG9jYXRlZD4iICJwIHZhcnggZGVhbGxvY2F0ZWQiCi0rZ2RiX3Rl c3QgInB0eXBlIHZhcngiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmFyeCBkZWFs bG9jYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmFyeCIge3R5cGUgPSByZWFsXChraW5kPTRcKSBc KDosOiw6XCl9ICJwdHlwZSB2YXJ4IGRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwIGwiICJcXCRc WzAtOVxdKiA9IFxcLkZBTFNFXFwuIiAicCBsIGlmIHZhcnggZGVhbGxvY2F0ZWQiCiArZ2RiX3Rl c3QgInAgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3Qg YWxsb2NhdGVkXCl9ICJwIHZhcngoMSw1LDE3KSBkZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicHR5 cGUgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxs b2NhdGVkXCl9ICJwdHlwZSB2YXJ4KDEsNSwxNykgZGVhbGxvY2F0ZWQiCkBAIC0yMDQxLDEwICsy MDQxLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX3Rlc3QgInAgdmFydCgzLDgpIiAiXFwkXFswLTlcXSog PSA5IgogKyMgbWFwcyB0byBmb286OnZhcnkoMSwzKQogK2dkYl90ZXN0ICJwIHZhcnQoMiw5KSIg IlxcJFxbMC05XF0qID0gMTAiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5mOTAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCTIwMTYt MDItMTUgMjM6MzU6NTYuMjk0OTk5ODgxICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAkyMDE2LTA3LTE2IDE2OjUzOjMz LjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSw5OCBAQAogKyEgQ29weXJpZ2h0IDIwMDcgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMjE0NCwxMCArMjE0NCwxMCBAQCBJ bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5h bWljLmY5MAogKyAgaWYgKHggKDEsIDEpIC5uZS4gOCAub3IuIHggKDIsIDIpIC5uZS4gOSAub3Iu IHggKDEsIDIpIC5uZS4gNCkgY2FsbCBhYm9ydAogKyAgaWYgKHggKDMsIDEpIC5uZS4gMTApIGNh bGwgYWJvcnQKICtlbmQKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3N0cmluZy5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAJMjAxNi0wMi0xNSAy MzozNjozOS4zNTkzMDU2NDIgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5 MTQgKzAyMDAKIEBAIC0wLDAgKzEsNTkgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjIwOCwxMCArMjIwOCwxMCBAQCBJbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCiAr Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhci1maW5pc2giCiArZ2RiX3Rlc3QgInAgZSIg IlxcJFxbMC05XF0qID0gJ2UgICAnIiAicCBlIHJlLXNldCIKICtnZGJfdGVzdCAicCBmIiAiXFwk XFswLTlcXSogPSBcXChcXCggJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcs ICdmICAgJywgJ2YgICAnXFwpIFxcKCAnZjIgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdm ICAgJywgJ2YgICAnLCAnZiAgICdcXCkgXFwoICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAg JywgJ2YgICAnLCAnZiAgICcsICdmICAgJ1xcKSBcXCkiICJwICpmIHJlLXNldCIKLUluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0 cmluZy5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3N0cmluZy5mOTAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTU5OTk4ODggKzAxMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmlu Zy5mOTAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsMzcg QEAKICshIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEK QEAgLTIyNTAsMTAgKzIyNTAsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5MAogKyAgaCA9ICdoJwogKyAgY2FsbCBmb28g KGcsIGgpCiArZW5kCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCTIwMTYtMDIt MTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43 MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsNzIgQEAKICsjIENvcHlyaWdodCAyMDExIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjMyNywxMCArMjMyNywxMCBAQCBJbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5n ZS5leHAKICtnZGJfdW5sb2FkCiArc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85 OTk5IgogK2dkYl90ZXN0IHtwICRhICgzLCAyOjIpfSB7ID0gXCgyM1wpfQotSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJy YW5nZS5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3N1YnJhbmdlLmY5MAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5NTk5OTg4OCArMDEw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3Vi cmFuZ2UuZjkwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM5MTcyOTE0ICswMjAwCiBAQCAtMCwwICsx LDI4IEBACiArISBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICshCkBAIC0yMzYwLDEwICsyMzYwLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAogKyAgcHRyID0+IGEKICsgIHdy aXRlICgqLCopIGEgICAgICAgICAgICAgICAgICEgYnJlYWstc3RhdGljCiArZW5kCi1JbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10 eXBlLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9t aTItdmFyLXN0YWxlLXR5cGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCTIwMTYtMDItMTUgMjM6MzU6NTYu Mjk1OTk5ODg4ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQg KzAyMDAKIEBAIC0wLDAgKzEsMjYgQEAKICsvKiBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIzOTEsMTAgKzIzOTEsMTAgQEAgSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5j CiArCiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAorSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFy LXN0YWxlLXR5cGUuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10 eXBlLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSw1 NyBAQAogKyMgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAr IwpAQCAtMjQ1MywxMCArMjQ1MywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAogK21pX2NyZWF0ZV92YXJv YmogInZsYSIgInZsYSIgImNyZWF0ZSBsb2NhbCB2YXJpYWJsZSB2bGEiCiArCiArbWlfZ2RiX3Rl c3QgIi12YXItdXBkYXRlICoiICJcXF5kb25lLGNoYW5nZWxpc3Q9LioiICItdmFyLXVwZGF0ZSAq IgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJh eS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lz dGVyLWZ1bmMuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5NTk5OTg4OCArMDEwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVy LWZ1bmMuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSwy MiBAQAogKy8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsK QEAgLTI0ODAsMTAgKzI0ODAsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwogK3sKICsgIHJldHVy biBhcnJbMF07CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVn aXN0ZXIuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Njk5OTg5NSArMDEwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMJ MjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5MjIgKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICsv KiBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0yNTEz LDEwICsyNTEzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5jCiArCiArICByZXR1cm4gMDsKICt9Ci1JbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20t cmVnaXN0ZXIuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCTIwMTYt MDItMTUgMjM6MzU6NTYuMjk2OTk5ODk1ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCTIwMTYtMDctMTYg MTY6NTM6MzMuNzQwMTcyOTIyICswMjAwCiBAQCAtMCwwICsxLDMzIEBACiArIyBDb3B5cmlnaHQg MjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0yNTUxLDEwICsyNTUx LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQv YXJyYXktZnJvbS1yZWdpc3Rlci5leHAKICsjIFNlZW4gcmVncmVzc2lvbjoKICsjIEFkZHJlc3Mg cmVxdWVzdGVkIGZvciBpZGVudGlmaWVyICJhcnIiIHdoaWNoIGlzIGluIHJlZ2lzdGVyICRyZGkK ICtnZGJfdGVzdCAicCBhcnJcWzBcXSIgIlxcJFxbMC05XF0rID0gNDIiCi1JbmRleDogZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4 cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2Nh bC9hcnJheXMuZXhwCTIwMTYtMDItMTUgMjM6MzY6MzkuMzU5MzA1NjQyICswMTAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAJMjAx Ni0wNy0xNiAxNjo1MzozMy43NDAxNzI5MjIgKzAyMDAKIEBAIC0wLDAgKzEsMTA0IEBACiArIyBD b3B5cmlnaHQgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBA IC0yNjYwLDEwICsyNjYwLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAogK30KICtnZGJfdGVzdCAicHJpbnQgRHluQXJy Q2hhciIgIi4qID0gJ2FiY2RlZmdoaWprbG0nIiAiUHJpbnQgZHluYW1pYyBhcnJheSBvZiBjaGFy IgogKwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2Nh bC9hcnJheXMucGFzCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGFzY2FsL2FycmF5cy5wYXMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLnBhcwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Njk5 OTg5NSArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBh c2NhbC9hcnJheXMucGFzCTIwMTYtMDctMTYgMTY6NTM6MzMuNzQwMTcyOTIyICswMjAwCiBAQCAt MCwwICsxLDgyIEBACiArewogKyBDb3B5cmlnaHQgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KQEAgLTI3NDcsMTAgKzI3NDcsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCiArICBzIDo9ICd0 ZXN0JyMwJ3N0cmluZyc7CiArICB3cml0ZWxuKHMpOyB7IHNldCBicmVha3BvaW50IDIgaGVyZSB9 CiArZW5kLgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvbGliL2dk Yi5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1 aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTUuMzI2OTkzMDA4ICswMTAwCi0rKysg Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTAyLTE1 IDIzOjM1OjU2LjI5Nzk5OTkwMyArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjA2MzE2NzMxNSAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJ MjAxNi0wNy0xNiAxNjo1MzozMy43NDExNzI5MzAgKzAyMDAKIEBAIC0xNzMsNiArMTczLDExIEBA CiAgCSAgICBzZW5kX2dkYiAieVxuIgogIAkgICAgZXhwX2NvbnRpbnVlCkBAIC0yNzYzLDEwICsy NzYzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2xpYi9n ZGIuZXhwCiAgCS1yZSAiRGlzY2FyZCBzeW1ib2wgdGFibGUgZnJvbSAuKnkgb3Igbi4qJCIgewog IAkgICAgc2VuZF9nZGIgInlcbiIKICAJICAgIGV4cF9jb250aW51ZQotSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhw CTIwMTYtMDItMTUgMjM6MzM6MjkuODMwOTU5OTcyICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5 ODk5OTkxMCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9saWIvcGFzY2FsLmV4cAkyMDE2LTA3LTE2IDAzOjQ4OjU5LjAwMDAwMDAwMCArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAxNi0w Ny0xNiAxNjo1MzozMy43NDExNzI5MzAgKzAyMDAKIEBAIC0zNyw2ICszNyw5IEBACiAgICAgIGds b2JhbCBwYXNjYWxfY29tcGlsZXJfaXNfZnBjCiAgICAgIGdsb2JhbCBncGNfY29tcGlsZXIKCmRp ZmYgLS1naXQgYS9nZGItYXJjaGVyLnBhdGNoIGIvZ2RiLWFyY2hlci5wYXRjaAppbmRleCA2MTdj YzBmLi44ZDkyNjVmIDEwMDY0NAotLS0gYS9nZGItYXJjaGVyLnBhdGNoCisrKyBiL2dkYi1hcmNo ZXIucGF0Y2gKQEAgLTIsNyArMiw3IEBAIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9Q cm9qZWN0QXJjaGVyCiBodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvQXJjaGVyQnJhbmNo TWFuYWdlbWVudAogCiBHSVQgc25hcHNob3Q6Ci1jb21taXQgZjBlZTc4YzVjY2VmZTM4OGE2NDI3 MzM1M2VjZDVjOTlkYWU2MjU1OAorY29tbWl0IGNmZWU2NGVlODY5YTZhNmU0YWIwYjY0YWYxNDlk NGNmNTk1MTdkODAKIAogdHJvbWV5L3B5dGhvbgogCkBAIC0xNiwxMCArMTYsMTAgQEAgaW5kZXgg MDAwMDAwMC4uMTczYjhlYQogK1RoaXMgYnJhbmNoIG9yaWdpbmFsbHkgaGVsZCB0aGUgUHl0aG9u IGNvZGUgZm9yIGdkYi4gIEl0IHN0aWxsIGV4aXN0cwogK2JlY2F1c2UgYSBzbWFsbCBhbW91bnQg b2YgY29kZSBoZXJlIGhhcyBub3QgeWV0IGJlZW4gbWVyZ2VkIHVwc3RyZWFtLgogZGlmZiAtLWdp dCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgotaW5kZXggOTUxMDRlZi4uYTli MTk4YSAxMDA2NDQKK2luZGV4IDVhZjYxMDMuLjljNjljYjAgMTAwNjQ0CiAtLS0gYS9nZGIvTWFr ZWZpbGUuaW4KICsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTE1MzQsNiArMTUzNCwxMiBAQCBz dGFtcC1oOiAkKHNyY2RpcikvY29uZmlnLmluIGNvbmZpZy5zdGF0dXMKK0BAIC0xNTUzLDYgKzE1 NTMsMTIgQEAgc3RhbXAtaDogJChzcmNkaXIpL2NvbmZpZy5pbiBjb25maWcuc3RhdHVzCiAgCSAg Q09ORklHX0xJTktTPSBcCiAgCSAgJChTSEVMTCkgY29uZmlnLnN0YXR1cwogIApAQCAtMzMsMTAg KzMzLDEwIEBAIGluZGV4IDk1MTA0ZWYuLmE5YjE5OGEgMTAwNjQ0CiAgCSQoU0hFTEwpIGNvbmZp Zy5zdGF0dXMgLS1yZWNoZWNrCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2RhdGEtZGlyZWN0b3J5L01h a2VmaWxlLmluIGIvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCi1pbmRleCAzMGNmZDE3 Li5lOTc3YjMwIDEwMDY0NAoraW5kZXggM2YyMzUxNi4uYjVkNjM5MCAxMDA2NDQKIC0tLSBhL2dk Yi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgogKysrIGIvZ2RiL2RhdGEtZGlyZWN0b3J5L01h a2VmaWxlLmluCi1AQCAtNjUsNyArNjUsMTAgQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKK0BAIC02 Niw3ICs2NiwxMCBAQCBQWVRIT05fRklMRV9MSVNUID0gXAogIAlnZGIvdW53aW5kZXIucHkgXAog IAlnZGIvcHJvbXB0LnB5IFwKICAJZ2RiL3htZXRob2QucHkgXApAQCAtNDcsOCArNDcsOCBAQCBp bmRleCAzMGNmZDE3Li5lOTc3YjMwIDEwMDY0NAogIAlnZGIvY29tbWFuZC94bWV0aG9kcy5weSBc CiAgCWdkYi9jb21tYW5kL2ZyYW1lX2ZpbHRlcnMucHkgXAogIAlnZGIvY29tbWFuZC91bndpbmRl cnMucHkgXAotQEAgLTc2LDYgKzc5LDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKLSAJZ2RiL2Z1 bmN0aW9uL19faW5pdF9fLnB5IFwKK0BAIC03OCw2ICs4MSw4IEBAIFBZVEhPTl9GSUxFX0xJU1Qg PSBcCisgCWdkYi9mdW5jdGlvbi9hc19zdHJpbmcucHkgXAogIAlnZGIvZnVuY3Rpb24vY2FsbGVy X2lzLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL3N0cmZucy5weSBcCiArCWdkYi9mdW5jdGlvbi9jYWxs ZXJfaXMucHkgXApAQCAtNTcsNyArNTcsNyBAQCBpbmRleCAzMGNmZDE3Li5lOTc3YjMwIDEwMDY0 NAogIAlnZGIvcHJpbnRlci9ib3VuZF9yZWdpc3RlcnMucHkKICAKIGRpZmYgLS1naXQgYS9nZGIv ZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotaW5kZXggMTY2NTM3Mi4uYzRj YWZmYyAxMDA2NDQKK2luZGV4IGY1ZGRlNjEuLjFkOTJiZDYgMTAwNjQ0CiAtLS0gYS9nZGIvZG9j L2dkYi50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCiBAQCAtMTIyNSw2ICsxMjI1 LDE2IEBAIGZvciByZW1vdGUgZGVidWdnaW5nLgpAQCAtNzgsNyArNzgsNyBAQCBpbmRleCAxNjY1 MzcyLi5jNGNhZmZjIDEwMDY0NAogIEBpdGVtIC10dWkKICBAY2luZGV4IEBjb2Rley0tdHVpfQog ZGlmZiAtLWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRleGkgYi9nZGIvZG9jL3B5dGhvbi50ZXhpCi1p bmRleCA1N2VjMjJlLi4xM2JlYjA1IDEwMDY0NAoraW5kZXggYTE3ZTM3ZC4uYzU2MDY4YiAxMDA2 NDQKIC0tLSBhL2dkYi9kb2MvcHl0aG9uLnRleGkKICsrKyBiL2dkYi9kb2MvcHl0aG9uLnRleGkK IEBAIC04OCw4ICs4OCw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZvciBleGFtcGxlOgpA QCAtMTExLDcgKzExMSw3IEBAIGluZGV4IDA1YTM4YjIuLjk4MDFmZGYgMTAwNjQ0CiAgICBzZXQg dmFyaWFibGUgJGdkYl9pbml0X2RvbmUgPSAxCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBi L2dkYi9tYWluLmMKLWluZGV4IGFlY2Q2MGEuLmQwZjc4MzQgMTAwNjQ0CitpbmRleCA1NDc3Mzc5 Li5iN2U0MTNmIDEwMDY0NAogLS0tIGEvZ2RiL21haW4uYwogKysrIGIvZ2RiL21haW4uYwogQEAg LTMzLDYgKzMzLDcgQEAKQEAgLTEyMiw3ICsxMjIsNyBAQCBpbmRleCBhZWNkNjBhLi5kMGY3ODM0 IDEwMDY0NAogICNpbmNsdWRlICJzb3VyY2UuaCIKICAjaW5jbHVkZSAiY2xpL2NsaS1jbWRzLmgi CiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCi1AQCAtNDUzLDYgKzQ1NCw4IEBAIGNhcHR1cmVkX21h aW4gKHZvaWQgKmRhdGEpCitAQCAtNDU5LDYgKzQ2MCw4IEBAIGNhcHR1cmVkX21haW4gKHZvaWQg KmRhdGEpCiAgICBjaGFyICpjZGFyZyA9IE5VTEw7CiAgICBjaGFyICp0dHlhcmcgPSBOVUxMOwog IApAQCAtMTkwLDcgKzE5MCw3IEBAIGluZGV4IGFlY2Q2MGEuLmQwZjc4MzQgMTAwNjQ0CiAgICAg IHsKICAgICAgICAvKiBUaGUgcmVtYWluaW5nIG9wdGlvbnMgYXJlIHRoZSBjb21tYW5kLWxpbmUg b3B0aW9ucyBmb3IgdGhlCiAgCSBpbmZlcmlvci4gIFRoZSBmaXJzdCBvbmUgaXMgdGhlIHN5bS9l eGVjIGZpbGUsIGFuZCB0aGUgcmVzdAotQEAgLTExMzcsNyArMTE3MSw4IEBAIGNhcHR1cmVkX21h aW4gKHZvaWQgKmRhdGEpCitAQCAtMTEyNyw3ICsxMTYxLDggQEAgY2FwdHVyZWRfbWFpbiAodm9p ZCAqZGF0YSkKICAKICAgIC8qIFJlYWQgaW4gdGhlIG9sZCBoaXN0b3J5IGFmdGVyIGFsbCB0aGUg Y29tbWFuZCBmaWxlcyBoYXZlIGJlZW4KICAgICAgIHJlYWQuICAqLwpAQCAtMjAwLDcgKzIwMCw3 IEBAIGluZGV4IGFlY2Q2MGEuLmQwZjc4MzQgMTAwNjQ0CiAgCiAgICBpZiAoYmF0Y2hfZmxhZykK ICAgICAgewotQEAgLTExNDgsMTMgKzExODMsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0 YSkKK0BAIC0xMTM4LDEzICsxMTczLDI1IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAg ICAvKiBTaG93IHRpbWUgYW5kL29yIHNwYWNlIHVzYWdlLiAgKi8KICAgIGRvX2NsZWFudXBzIChw cmVfc3RhdF9jaGFpbik7CiAgCkBAIC0yMzIsNyArMjMyLDcgQEAgaW5kZXggYWVjZDYwYS4uZDBm NzgzNCAxMDA2NDQKICAgICAgfQogICAgLyogTm8gZXhpdCAtLSBleGl0IGlzIHRocm91Z2ggcXVp dF9jb21tYW5kLiAgKi8KICB9Ci1AQCAtMTE4OCw2ICsxMjM1LDEyIEBAIHByaW50X2dkYl9oZWxw IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQorQEAgLTExODcsNiArMTIzNCwxMiBAQCBwcmludF9n ZGJfaGVscCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8o IlwKICBUaGlzIGlzIHRoZSBHTlUgZGVidWdnZXIuICBVc2FnZTpcblxuXAogICAgICBnZGIgW29w dGlvbnNdIFtleGVjdXRhYmxlLWZpbGUgW2NvcmUtZmlsZSBvciBwcm9jZXNzLWlkXV1cblwKQEAg LTI0NSw3ICsyNDUsNyBAQCBpbmRleCBhZWNkNjBhLi5kMGY3ODM0IDEwMDY0NAogICAgICBnZGIg W29wdGlvbnNdIC0tYXJncyBleGVjdXRhYmxlLWZpbGUgW2luZmVyaW9yLWFyZ3VtZW50cyAuLi5d XG5cblwKICAiKSwgc3RyZWFtKTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKLUBAIC0xMjMy LDYgKzEyODUsMTMgQEAgT3V0cHV0IGFuZCB1c2VyIGludGVyZmFjZSBjb250cm9sOlxuXG5cCitA QCAtMTIzMSw2ICsxMjg0LDEzIEBAIE91dHB1dCBhbmQgdXNlciBpbnRlcmZhY2UgY29udHJvbDpc blxuXAogICNlbmRpZgogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAogICAgLS1kYnggICAgICAg ICAgICAgIERCWCBjb21wYXRpYmlsaXR5IG1vZGUuXG5cCkBAIC00NDMsMTAgKzQ0MywxMCBAQCBp bmRleCAwMDAwMDAwLi44NzQyNjgwCiArCiArSW5TY29wZSAoKQogZGlmZiAtLWdpdCBhL2dkYi9w eXRob24vcHl0aG9uLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCi1pbmRleCA0Zjg4YjBlLi44NzBh MWJhIDEwMDY0NAoraW5kZXggNjIxZTIwMS4uNzAzYTFhMCAxMDA2NDQKIC0tLSBhL2dkYi9weXRo b24vcHl0aG9uLmMKICsrKyBiL2dkYi9weXRob24vcHl0aG9uLmMKLUBAIC05Myw2ICs5Myw4IEBA IGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiBleHRlbnNpb25fbGFuZ3VhZ2Vf cHl0aG9uID0KK0BAIC05NSw2ICs5NSw4IEBAIGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3Vh Z2VfZGVmbiBleHRlbnNpb25fbGFuZ3VhZ2VfcHl0aG9uID0KICAjaW5jbHVkZSAibGluZXNwZWMu aCIKICAjaW5jbHVkZSAic291cmNlLmgiCiAgI2luY2x1ZGUgInZlcnNpb24uaCIKQEAgLTQ1NSw3 ICs0NTUsNyBAQCBpbmRleCA0Zjg4YjBlLi44NzBhMWJhIDEwMDY0NAogICNpbmNsdWRlICJ0YXJn ZXQuaCIKICAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCiAgI2luY2x1ZGUgImludGVycHMuaCIKLUBA IC0xMjYyLDYgKzEyNjQsODMgQEAgZ2RicHlfcHJpbnRfc3RhY2sgKHZvaWQpCitAQCAtMTI2Myw2 ICsxMjY1LDkyIEBAIGdkYnB5X3ByaW50X3N0YWNrICh2b2lkKQogIAogIC8qIFJldHVybiB0aGUg Y3VycmVudCBQcm9nc3BhY2UuCiAgICAgVGhlcmUgYWx3YXlzIGlzIG9uZS4gICovCkBAIC00Nzcs NyArNDc3LDE0IEBAIGluZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiArICAgIHJldHVybiBQ eUVycl9Gb3JtYXQgKFB5RXhjX1J1bnRpbWVFcnJvciwgXygiQ2Fubm90IGludm9rZSBDTEkgZnJv bSBNSS4iKSk7CiArCiArICBpbl9jbGkgPSAxOwotKyAgY3VycmVudF9pbnRlcnBfY29tbWFuZF9s b29wICgpOworKyAgLyogU2VlIGNhcHR1cmVkX2NvbW1hbmRfbG9vcC4gICovCisrCisrICAvKiBH aXZlIHRoZSBpbnRlcnByZXRlciBhIGNoYW5jZSB0byBwcmludCBhIHByb21wdC4gICovCisrICBp bnRlcnBfcHJlX2NvbW1hbmRfbG9vcCAodG9wX2xldmVsX2ludGVycHJldGVyICgpKTsKKysKKysg IC8qIE5vdyBpdCdzIHRpbWUgdG8gc3RhcnQgdGhlIGV2ZW50IGxvb3AuICAqLworKyAgc3RhcnRf ZXZlbnRfbG9vcCAoKTsKKysKICsgIGluX2NsaSA9IDA7CiArCiArICBQeV9SRVRVUk5fTk9ORTsK QEAgLTUwMCwxMyArNTA3LDE1IEBAIGluZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiArICBQ eVN5c19TZXRBcmd2IChhcmdjIC0gMSwgYXJndiArIDEpOwogKyNlbHNlCiArICB7Ci0rICAgIHdj aGFyX3QgKip3YXJndiA9IGFsbG9jYSAoc2l6ZW9mICgqd2FyZ3YpICogKGFyZ2MgKyAxKSk7Cisr ICAgIHdjaGFyX3QgKip3YXJndiA9ICh3Y2hhcl90ICoqKSBhbGxvY2EgKHNpemVvZiAoKndhcmd2 KSAqIChhcmdjICsgMSkpOwogKyAgICBpbnQgaTsKICsKICsgICAgZm9yIChpID0gMTsgaSA8IGFy Z2M7IGkrKykKICsgICAgICB7CiArCXNpemVfdCBsZW4gPSBtYnN0b3djcyAoTlVMTCwgYXJndltp XSwgMCk7Ci0rCXNpemVfdCBsZW4yOworKwkvKiBQeXRob24tcmVsYXRlZCBHREIgc291cmNlcyBh cmUgYnVpbHQgd2l0aCAtRE5ERUJVRworKwkgICBodHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3pp bGxhL3Nob3dfYnVnLmNnaT9pZD0yMDQ0NSAqLworKwlzaXplX3QgbGVuMiBBVFRSSUJVVEVfVU5V U0VEOwogKwogKwlpZiAobGVuID09IChzaXplX3QpIC0xKQogKwkgIHsKQEAgLTUxNCw3ICs1MjMs NyBAQCBpbmRleCA0Zjg4YjBlLi44NzBhMWJhIDEwMDY0NAogKwkJICAgICBpLCBhcmd2W2ldKTsK ICsJICAgIGV4aXQgKDEpOwogKwkgIH0KLSsJd2FyZ3ZbaV0gPSBhbGxvY2EgKHNpemVvZiAoKip3 YXJndikgKiAobGVuICsgMSkpOworKwl3YXJndltpXSA9ICh3Y2hhcl90ICopIGFsbG9jYSAoc2l6 ZW9mICgqKndhcmd2KSAqIChsZW4gKyAxKSk7CiArCWxlbjIgPSBtYnN0b3djcyAod2FyZ3ZbaV0s IGFyZ3ZbaV0sIGxlbiArIDEpOwogKwlhc3NlcnQgKGxlbjIgPT0gbGVuKTsKICsgICAgICB9CkBA IC01MzksNyArNTQ4LDcgQEAgaW5kZXggNGY4OGIwZS4uODcwYTFiYSAxMDA2NDQKICAKICBzdGF0 aWMgUHlPYmplY3QgKgogIGdkYnB5X2dldF9jdXJyZW50X3Byb2dzcGFjZSAoUHlPYmplY3QgKnVu dXNlZDEsIFB5T2JqZWN0ICp1bnVzZWQyKQotQEAgLTE5ODIsNiArMjA2MSw4IEBAIFB5TWV0aG9k RGVmIHB5dGhvbl9HZGJNZXRob2RzW10gPQorQEAgLTE5ODEsNiArMjA2OSw4IEBAIFB5TWV0aG9k RGVmIHB5dGhvbl9HZGJNZXRob2RzW10gPQogIEV2YWx1YXRlIGNvbW1hbmQsIGEgc3RyaW5nLCBh cyBhIGdkYiBDTEkgY29tbWFuZC4gIE9wdGlvbmFsbHkgcmV0dXJuc1xuXAogIGEgUHl0aG9uIFN0 cmluZyBjb250YWluaW5nIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgaWYgdG9fc3RyaW5nIGlz XG5cCiAgc2V0IHRvIFRydWUuIiB9LApAQCAtNTQ5LDcgKzU1OCw3IEBAIGluZGV4IDRmODhiMGUu Ljg3MGExYmEgMTAwNjQ0CiAgICAgICJSZXR1cm4gYSBnZGIgcGFyYW1ldGVyJ3MgdmFsdWUiIH0s CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uaCBiL2dkYi9weXRob24vcHl0aG9u LmgKLWluZGV4IGU2YmZjY2EuLjY4OGRhYTMgMTAwNjQ0CitpbmRleCBiODEwMTg3Li5hMzYyMGFi IDEwMDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24uaAogKysrIGIvZ2RiL3B5dGhvbi9weXRo b24uaAogQEAgLTI1LDQgKzI1LDYgQEAKQEAgLTU2MCwxMCArNTY5LDEwIEBAIGluZGV4IGU2YmZj Y2EuLjY4OGRhYTMgMTAwNjQ0CiArCiAgI2VuZGlmIC8qIEdEQl9QWVRIT05fSCAqLwogZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5nZGIvc2VsZnRlc3QuZXhwCi1pbmRleCA5ZjI1YTQ4Li44OGIwODQyIDEwMDY0NAoraW5k ZXggMmZkZDllMy4uMzkxOTAwZCAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9z ZWxmdGVzdC5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKLUBA IC05Miw2ICs5MiwxMCBAQCBwcm9jIGRvX3N0ZXBzX2FuZF9uZXh0cyB7fSB7CitAQCAtODcsNiAr ODcsMTAgQEAgcHJvYyBkb19zdGVwc19hbmRfbmV4dHMge30gewogIAkJc2V0IGRlc2NyaXB0aW9u ICJzdGVwIG92ZXIgY21kYXJnX3ZlYyBpbml0aWFsaXphdGlvbiIKICAJCXNldCBjb21tYW5kICJz dGVwIgogIAkgICAgfQpAQCAtNTc1LDcgKzU4NCw3IEBAIGluZGV4IDlmMjVhNDguLjg4YjA4NDIg MTAwNjQ0CiAgCQlzZXQgZGVzY3JpcHRpb24gIm5leHQgb3ZlciBtYWtlX2NvbW1hbmRfc3RhdHNf Y2xlYW51cCBhbmQgZXZlcnl0aGluZyBpdCBjYWxscyIKICAJCXNldCBjb21tYW5kICJuZXh0Igog ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAgYi9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCi1pbmRleCAzM2ZkYmU1Li4yNjRkMDBm IDEwMDY0NAoraW5kZXggYjVhNDY4Mi4uZDU0NTFhNiAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1mcmFtZS5leHAKIEBAIC05NSw2ICs5NSw4IEBAIGdkYl90ZXN0ICJweXRob24gcHJpbnQg KCdyZXN1bHQgPSAlcycgJSBmMC5yZWFkX3ZhciAoJ2EnKSkiICIgPSAxIiAidGVzdCBGcmFtZS5y CkBAIC01ODgsMTAgKzU5NywxMCBAQCBpbmRleCAzM2ZkYmU1Li4yNjRkMDBmIDEwMDY0NAogIGdk Yl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSAoZ2RiLnNlbGVjdGVkX2ZyYW1l ICgpLnJlYWRfcmVnaXN0ZXIgKCdzcCcpID09IGdkYi5wYXJzZV9hbmRfZXZhbCAoJ1wkc3AnKSkp IiBcCiAgICAiID0gVHJ1ZSIgXAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS12YWx1ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCi1p bmRleCBiYWExN2I3Li40NWFkNjdlIDEwMDY0NAoraW5kZXggNTdhOWJhMS4uZDkwZDg1YSAxMDA2 NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKICsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKLUBAIC0zODgsNiArMzg4LDE1IEBA IHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7fSB7CitAQCAtMzk3LDYgKzM5NywxNSBAQCBw cm9jIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgge30gewogICAgICAicHJpbnQgdmFsdWUncyB0eXBl IgogIH0KICAKQEAgLTYwNyw3ICs2MTYsNyBAQCBpbmRleCBiYWExN2I3Li40NWFkNjdlIDEwMDY0 NAogICMgUmVncmVzc2lvbiB0ZXN0IGZvciBpbnZhbGlkIHN1YnNjcmlwdCBvcGVyYXRpb25zLiAg VGhlIGJ1ZyB3YXMgdGhhdAogICMgdGhlIHR5cGUgb2YgdGhlIHZhbHVlIHdhcyBub3QgYmVpbmcg Y2hlY2tlZCBiZWZvcmUgYWxsb3dpbmcgYQogICMgc3Vic2NyaXB0IG9wZXJhdGlvbiB0byBwcm9j ZWVkLgotQEAgLTUxNyw2ICs1MjYsNyBAQCB0ZXN0X3ZhbHVlX2luX2luZmVyaW9yCitAQCAtNTI2 LDYgKzUzNSw3IEBAIHRlc3RfdmFsdWVfaW5faW5mZXJpb3IKICB0ZXN0X2luZmVyaW9yX2Z1bmN0 aW9uX2NhbGwKICB0ZXN0X2xhenlfc3RyaW5ncwogIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgKCmRp ZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoIGIvZ2RiLWF0dGFj aC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAppbmRleCA0OGQ3YWI0Li5mYjdkYjI1IDEwMDY0NAot LS0gYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCisrKyBiL2dkYi1hdHRhY2gt ZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKQEAgLTM3LDEzICszNywxMyBAQCBnZGIvZ2Ric2VydmVy LwogCShsaW51eF9jcmVhdGVfaW5mZXJpb3IsIGxpbnV4X3RyYWNlZm9ya19jaGlsZCk6IENhbGwg aXQgaW5zdGVhZCBvZgogCWRpcmVjdCBwdHJhY2UuCiAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcv Z2RiL25hdC9saW51eC1wdHJhY2UuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYw MTA2Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE2LTAxLTA4IDE5OjE1OjU3LjU4MDcw Nzk0NCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNl LmMJMjAxNi0wMS0wOCAxOToxNjowMi42NTQ3MzYyNDYgKzAxMDAKLUBAIC0yNCw2ICsyNCwxMCBA QAotICNpbmNsdWRlICJnZGJfd2FpdC5oIgorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcv Z2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0NzgzMzAxNyArMDIw MAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9uYXQvbGludXgtcHRyYWNlLmMJMjAxNi0w OC0wNyAyMToxOTozNy42NTA5MDQxNDIgKzAyMDAKK0BAIC0yNSw2ICsyNSwxMCBAQAogICNpbmNs dWRlICJnZGJfcHRyYWNlLmgiCisgI2luY2x1ZGUgImdyZWdzZXQuaCIKICAKICsjaWZkZWYgSEFW RV9TRUxJTlVYX1NFTElOVVhfSAogKyMgaW5jbHVkZSA8c2VsaW51eC9zZWxpbnV4Lmg+CkBAIC01 Miw3ICs1Miw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbmF0L2xpbnV4LXB0 cmFjZS5jCiAgLyogU3RvcmVzIHRoZSBwdHJhY2Ugb3B0aW9ucyBzdXBwb3J0ZWQgYnkgdGhlIHJ1 bm5pbmcga2VybmVsLgogICAgIEEgdmFsdWUgb2YgLTEgbWVhbnMgd2UgZGlkIG5vdCBjaGVjayBm b3IgZmVhdHVyZXMgeWV0LiAgQSB2YWx1ZQogICAgIG9mIDAgbWVhbnMgdGhlcmUgYXJlIG5vIHN1 cHBvcnRlZCBmZWF0dXJlcy4gICovCi1AQCAtNDgsNiArNTIsOCBAQAorQEAgLTQ5LDYgKzUzLDgg QEAKICAgICAgYnVmZmVyX3htbF9wcmludGYgKGJ1ZmZlciwgXygicHJvY2VzcyAlZCBpcyBhIHpv bWJpZSAiCiAgCQkJCSAiLSB0aGUgcHJvY2VzcyBoYXMgYWxyZWFkeSB0ZXJtaW5hdGVkIiksCiAg CQkgICAgICAgKGludCkgcGlkKTsKQEAgLTYxLDcgKzYxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKICB9CiAgCiAgLyogU2VlIGxpbnV4LXB0 cmFjZS5oLiAgKi8KLUBAIC01OTQsNiArNjAwLDIyIEBACitAQCAtNTkyLDYgKzU5OCwyMiBAQAog ICAgbGludXhfcHRyYWNlX3Rlc3RfcmV0X3RvX254ICgpOwogIH0KICAKQEAgLTg0LDExICs4NCwx MSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL25hdC9saW51eC1wdHJhY2UuYwog IC8qIEV4dHJhY3QgZXh0ZW5kZWQgcHRyYWNlIGV2ZW50IGZyb20gd2FpdCBzdGF0dXMuICAqLwog IAogIGludAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNl LmgKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbmF0L2xpbnV4LXB0 cmFjZS5oCTIwMTYtMDEtMDggMTk6MTU6NTcuNTgxNzA3OTUwICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE2LTAxLTA4IDE5OjE2OjAyLjY1 NTczNjI1MSArMDEwMAotQEAgLTE2NCw2ICsxNjQsNyBAQAorLS0tIGdkYi03LjExLjkwLjIwMTYw ODA3Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0Nzgz MzAxNyArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9uYXQvbGludXgtcHRyYWNl LmgJMjAxNi0wOC0wNyAyMToxOTozNy42NTA5MDQxNDIgKzAyMDAKK0BAIC0xODUsNiArMTg1LDcg QEAKICBleHRlcm4gY2hhciAqbGludXhfcHRyYWNlX2F0dGFjaF9mYWlsX3JlYXNvbl9zdHJpbmcg KHB0aWRfdCBwdGlkLCBpbnQgZXJyKTsKICAKICBleHRlcm4gdm9pZCBsaW51eF9wdHJhY2VfaW5p dF93YXJuaW5ncyAodm9pZCk7CkBAIC05NiwxMSArOTYsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNlLmgKICBleHRlcm4gdm9pZCBsaW51eF9jaGVj a19wdHJhY2VfZmVhdHVyZXMgKHZvaWQpOwogIGV4dGVybiB2b2lkIGxpbnV4X2VuYWJsZV9ldmVu dF9yZXBvcnRpbmcgKHBpZF90IHBpZCwgaW50IGF0dGFjaGVkKTsKICBleHRlcm4gdm9pZCBsaW51 eF9kaXNhYmxlX2V2ZW50X3JlcG9ydGluZyAocGlkX3QgcGlkKTsKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlLmFjCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcv Z2RiL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9y aWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE2LTAxLTA4IDE5OjE1OjU3LjU4MjcwNzk1NSArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUuYWMJMjAxNi0wMS0wOCAxOTox NjowMi42NTY3MzYyNTcgKzAxMDAKLUBAIC0yMDc3LDYgKzIwNzcsMTAgQEAKKy0tLSBnZGItNy4x MS45MC4yMDE2MDgwNy5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxNi0wOC0wNyAyMToxOToyOS45 NDc4MzMwMTcgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvY29uZmlndXJlLmFj CTIwMTYtMDgtMDcgMjE6MTk6MzcuNjUwOTA0MTQyICswMjAwCitAQCAtMjEwOCw2ICsyMTA4LDEw IEBACiAgZXNhYwogIEFDX0RFRklORV9VTlFVT1RFRChHREJJTklULCIkZ2RiaW5pdCIsW1RoZSAu Z2RiaW5pdCBmaWxlbmFtZS5dKQogIApAQCAtMTExLDExICsxMTEsMTEgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUuYWMKICBkbmwgSGFuZGxlIG9wdGlvbmFsIGZl YXR1cmVzIHRoYXQgY2FuIGJlIGVuYWJsZWQuCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lz cm9vdCBpcyBhIGNvcHkgb2YgR0RCX0FDX1dJVEhfRElSLAotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCitJbmRleDogZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE2MDEwNi5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTYtMDEtMDgg MTk6MTU6NTcuNTgyNzA3OTU1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dk YnNlcnZlci9jb25maWd1cmUuYWMJMjAxNi0wMS0wOCAxOToxNjowMi42NTY3MzYyNTcgKzAxMDAK LUBAIC01MjQsNiArNTI0LDEwIEBACistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIv Z2Ric2VydmVyL2NvbmZpZ3VyZS5hYwkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0ODgzMzAyNyArMDIw MAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIw MTYtMDgtMDcgMjE6MTk6MzcuNjUxOTA0MTUxICswMjAwCitAQCAtNDU4LDYgKzQ1OCwxMCBAQAog ICAgIGZpCiAgZmkKICAKQEAgLTEyNiwxMSArMTI2LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwogIEFDX1NVQlNUKEdEQlNFUlZFUl9E RVBGSUxFUykKICBBQ19TVUJTVChHREJTRVJWRVJfTElCUykKICBBQ19TVUJTVChzcnZfeG1sYnVp bHRpbikKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxv dy5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2dkYnNlcnZl ci9saW51eC1sb3cuYwkyMDE2LTAxLTA4IDE5OjE1OjU3LjU4NTcwNzk3MiArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxNi0wMS0wOCAx OToxNjowMi42NTg3MzYyNjggKzAxMDAKLUBAIC04NTMsNiArODUzLDI5IEBACistLS0gZ2RiLTcu MTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTYtMDgtMDcg MjE6MTk6MjkuOTQ5ODMzMDM2ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2dk YnNlcnZlci9saW51eC1sb3cuYwkyMDE2LTA4LTA3IDIxOjE5OjM3LjY1MjkwNDE2MSArMDIwMAor QEAgLTkzMyw2ICs5MzMsMjkgQEAKICAgIHJldHVybiBsd3A7CiAgfQogIApAQCAtMTYwLDcgKzE2 MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxv dy5jCiAgLyogU3RhcnQgYW4gaW5mZXJpb3IgcHJvY2VzcyBhbmQgcmV0dXJucyBpdHMgcGlkLgog ICAgIEFMTEFSR1MgaXMgYSB2ZWN0b3Igb2YgcHJvZ3JhbS1uYW1lIGFuZCBhcmdzLiAqLwogIAot QEAgLTg3Niw3ICs4OTksNyBAQAorQEAgLTk1Niw3ICs5NzksNyBAQAogICAgaWYgKHBpZCA9PSAw KQogICAgICB7CiAgICAgICAgY2xvc2VfbW9zdF9mZHMgKCk7CkBAIC0xNjksMTAgKzE2OSwxMCBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwog IAogICAgICAgIHNldHBnaWQgKDAsIDApOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9pbmYtcHRyYWNlLmMKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvaW5mLXB0 cmFjZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvaW5m LXB0cmFjZS5jCTIwMTYtMDEtMDggMTk6MTU6NTcuNTg2NzA3OTc3ICswMTAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL2luZi1wdHJhY2UuYwkyMDE2LTAxLTA4IDE5OjE2OjAyLjY1OTcz NjI3NCArMDEwMAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2luZi1wdHJhY2Uu YwkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0OTgzMzAzNiArMDIwMAorKysrIGdkYi03LjExLjkwLjIw MTYwODA3L2dkYi9pbmYtcHRyYWNlLmMJMjAxNi0wOC0wNyAyMToxOTozNy42NTM5MDQxNzAgKzAy MDAKIEBAIC03OSw3ICs3OSwxNSBAQAogIGluZl9wdHJhY2VfbWUgKHZvaWQpCiAgewpAQCAtMTg5 LDExICsxODksMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pbmYtcHRyYWNl LmMKICB9CiAgCiAgLyogU3RhcnQgYSBuZXcgaW5mZXJpb3IgVW5peCBjaGlsZCBwcm9jZXNzLiAg RVhFQ19GSUxFIGlzIHRoZSBmaWxlIHRvCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2xpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2xpbnV4LW5hdC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbGludXgtbmF0 LmMJMjAxNi0wMS0wOCAxOToxNTo1Ny41ODc3MDc5ODMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvbGludXgtbmF0LmMJMjAxNi0wMS0wOCAxOToxNjowMi42NjA3MzYyNzkgKzAx MDAKLUBAIC0xMDE2LDYgKzEwMTYsNyBAQAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcv Z2RiL2xpbnV4LW5hdC5jCTIwMTYtMDgtMDcgMjE6MTk6MjkuOTUwODMzMDQ1ICswMjAwCisrKysg Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2xpbnV4LW5hdC5jCTIwMTYtMDgtMDcgMjE6MTk6Mzcu NjU0OTA0MTc5ICswMjAwCitAQCAtMTEwMiw2ICsxMTAyLDcgQEAKICB7CiAgICBzdHJ1Y3QgY2xl YW51cCAqcmVzdG9yZV9wZXJzb25hbGl0eQogICAgICA9IG1heWJlX2Rpc2FibGVfYWRkcmVzc19z cGFjZV9yYW5kb21pemF0aW9uIChkaXNhYmxlX3JhbmRvbWl6YXRpb24pOwpAQCAtMjAxLDcgKzIw MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbGludXgtbmF0LmMKICAKICAg IC8qIFRoZSBmb3JrX2NoaWxkIG1lY2hhbmlzbSBpcyBzeW5jaHJvbm91cyBhbmQgY2FsbHMgdGFy Z2V0X3dhaXQsIHNvCiAgICAgICB3ZSBoYXZlIHRvIG1hc2sgdGhlIGFzeW5jIG1vZGUuICAqLwot QEAgLTEwMjMsNyArMTAyNCwyOCBAQAorQEAgLTExMDksNyArMTExMCwyOCBAQAogICAgLyogTWFr ZSBzdXJlIHdlIHJlcG9ydCBhbGwgc2lnbmFscyBkdXJpbmcgc3RhcnR1cC4gICovCiAgICBsaW51 eF9uYXRfcGFzc19zaWduYWxzIChvcHMsIDAsIE5VTEwpOwogIApAQCAtMjMxLDExICsyMzEsMTEg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9saW51eC1uYXQuYwogIAogICAgZG9f Y2xlYW51cHMgKHJlc3RvcmVfcGVyc29uYWxpdHkpOwogIH0KLUluZGV4OiBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvY29uZmlnLmluCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2Nv bmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2Nv bmZpZy5pbgkyMDE2LTAxLTA4IDE5OjE1OjU3LjU4ODcwNzk4OSArMDEwMAotKysrIGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9jb25maWcuaW4JMjAxNi0wMS0wOCAxOToxNjowMi42NjA3MzYyNzkg KzAxMDAKLUBAIC0yNjQsNiArMjY0LDkgQEAKKy0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmln L2dkYi9jb25maWcuaW4JMjAxNi0wOC0wNyAyMToxOToyOS45NTA4MzMwNDUgKzAyMDAKKysrKyBn ZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvY29uZmlnLmluCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjU0 OTA0MTc5ICswMjAwCitAQCAtMjY3LDYgKzI2Nyw5IEBACiAgLyogRGVmaW5lIGlmIGxpYnJwbSBs aWJyYXJ5IGlzIGJlaW5nIHVzZWQuICovCiAgI3VuZGVmIEhBVkVfTElCUlBNCiAgCkBAIC0yNDUs NyArMjQ1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWcuaW4KICAv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYnVud2luZC1pYTY0Lmg+IGhlYWRlciBm aWxlLiAqLwogICN1bmRlZiBIQVZFX0xJQlVOV0lORF9JQTY0X0gKICAKLUBAIC0zOTYsNiArMzk5 LDkgQEAKK0BAIC0zOTksNiArNDAyLDkgQEAKICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgYHNjbV9uZXdfc21vYicgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfU0NNX05FV19TTU9C CiAgCkBAIC0yNTUsMTEgKzI1NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0bG9jYWxlJyBm dW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TRVRMT0NBTEUKICAKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2Ri L2NvbmZpZ3VyZQkyMDE2LTAxLTA4IDE5OjE1OjU3LjU5MzcwODAxNyArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUJMjAxNi0wMS0wOCAxOToxNjowMi42NjU3MzYz MDcgKzAxMDAKLUBAIC0xNDY1Myw2ICsxNDY1Myw2NCBAQAorLS0tIGdkYi03LjExLjkwLjIwMTYw ODA3Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk1MzgzMzA3MyArMDIw MAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9jb25maWd1cmUJMjAxNi0wOC0wNyAyMTox OTozNy42NTg5MDQyMTYgKzAyMDAKK0BAIC0xNDY0Miw2ICsxNDY0Miw2NCBAQAogIF9BQ0VPRgog IAogIApAQCAtMzI0LDExICszMjQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9jb25maWd1cmUKICAKICAjIFN1cHBvcnQgZm9yIC0td2l0aC1zeXNyb290IGlzIGEgY29weSBv ZiBHREJfQUNfV0lUSF9ESVIsCiAgIyBleGNlcHQgdGhhdCB0aGUgYXJndW1lbnQgdG8gLS13aXRo LXN5c3Jvb3QgaXMgb3B0aW9uYWwuCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dk YnNlcnZlci9jb25maWcuaW4KK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvZ2Ric2Vy dmVyL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcv Z2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNi0wMS0wOCAxOToxNTo1Ny41OTU3MDgwMjggKzAx MDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE2 LTAxLTA4IDE5OjE2OjAyLjY2NTczNjMwNyArMDEwMAotQEAgLTExNyw2ICsxMTcsOSBAQAorLS0t IGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNi0w OC0wNyAyMToxOToyOS45NTQ4MzMwODIgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9n ZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE2LTA4LTA3IDIxOjE5OjM3LjY1ODkwNDIxNiArMDIw MAorQEAgLTEyMCw2ICsxMjAsOSBAQAogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBg bWNoZWNrJyBsaWJyYXJ5ICgtbG1jaGVjaykuICovCiAgI3VuZGVmIEhBVkVfTElCTUNIRUNLCiAg CkBAIC0zMzgsNyArMzM4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJz ZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgYnJhbmNo IHRyYWNpbmcuICovCiAgI3VuZGVmIEhBVkVfTElOVVhfQlRSQUNFCiAgCi1AQCAtMTkzLDYgKzE5 Niw5IEBACitAQCAtMTk2LDYgKzE5OSw5IEBACiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIGBwd3JpdGUnIGZ1bmN0aW9uLiAqLwogICN1bmRlZiBIQVZFX1BXUklURQogIApAQCAtMzQ4 LDExICszNDgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2ZXIv Y29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRucycgZnVuY3Rp b24uICovCiAgI3VuZGVmIEhBVkVfU0VUTlMKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dk Yi9nZGJzZXJ2ZXIvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAx MDYub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE2LTAxLTA4IDE5OjE1OjU3LjU5Nzcw ODAzOSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2ZXIvY29uZmln dXJlCTIwMTYtMDEtMDggMTk6MTY6MDIuNjY3NzM2MzE4ICswMTAwCi1AQCAtNzMxMSw2ICs3MzEx LDY0IEBACistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZp Z3VyZQkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk1NTgzMzA5MSArMDIwMAorKysrIGdkYi03LjExLjkw LjIwMTYwODA3L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjYw OTA0MjM1ICswMjAwCitAQCAtNzUzMCw2ICs3NTMwLDY0IEBACiAgICAgZmkKICBmaQogIAoKZGlm ZiAtLWdpdCBhL2dkYi1iYXJlLURXX1RBR19sZXhpY2FsX2Jsb2NrLTFvZjIucGF0Y2ggYi9nZGIt YmFyZS1EV19UQUdfbGV4aWNhbF9ibG9jay0xb2YyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwM2ZhNWI4Li4wMDAwMDAwCi0tLSBhL2dkYi1iYXJlLURXX1RBR19sZXhpY2Fs X2Jsb2NrLTFvZjIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMzUgKzAsMCBAQAotRnJvbSAz YTJiNDM2YWU5OTU4YTEwMjk1NDVjMDMyMDFiNzIyM2ZmMzNjMTUwIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ Ci1EYXRlOiBNb24sIDMwIE1heSAyMDE2IDE0OjExOjQzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0gg MS8yXSBDb2RlIGNsZWFudXA6IGR3YXJmMl9nZXRfcGNfYm91bmRzOiAtMS8wLysxIC0+IGVudW0K LQotTWFrZSB0aGUgY29kZSAobWF5YmUpIG1vcmUgcmVhZGFibGUgKyBwcmltYXJpbHkgcHJlcGFy ZSBpdCBmb3IgW3BhdGNoIDIvMl0KLWVudW0gZXh0ZW5zaW9uLgotCi1UaGlzIGNoYW5nZSBzaG91 bGQgaGF2ZSBubyBjb2RlIGNoYW5nZSBpbXBhY3QuCi0KLWdkYi9DaGFuZ2VMb2cKLTIwMTYtMDUt MzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCUNvZGUg Y2xlYW51cDogZHdhcmYyX2dldF9wY19ib3VuZHM6IC0xLzAvKzEgLT4gZW51bQotCSogZHdhcmYy cmVhZC5jIChlbnVtIHBjX2JvdW5kc19raW5kKSBOZXcuCi0JKGR3YXJmMl9nZXRfcGNfYm91bmRz KTogVXNlIGl0IGluIHRoZSBkZWNsYXJhdGlvbi4KLQkocHJvY2Vzc19wc3ltdGFiX2NvbXBfdW5p dF9yZWFkZXIpOiBBZGp1c3QgY2FsbGVyLiAgUmVuYW1lIGhhc19wY19pbmZvCi0JdG8gY3VfYm91 bmRzX2tpbmQuCi0JKHJlYWRfZnVuY19zY29wZSwgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlLCBy ZWFkX2NhbGxfc2l0ZV9zY29wZSk6Ci0JQWRqdXN0IGNhbGxlcnMuCi0JKGR3YXJmMl9nZXRfcGNf Ym91bmRzKTogVXNlIGVudW0gcGNfYm91bmRzX2tpbmQgaW4gdGhlIGRlZmluaXRpb24uCi0JKGR3 YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMsIGdldF9zY29wZV9wY19ib3VuZHMpOiBBZGp1 c3QgY2FsbGVycy4KLS0tLQotIGdkYi9DaGFuZ2VMb2cgICAgfCAxMiArKysrKysrKysrCi0gZ2Ri L2R3YXJmMnJlYWQuYyB8IDcxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCAy NSBkZWxldGlvbnMoLSkKLQotIyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIvZ2RiL0NoYW5nZUxv ZwotIyMgLTEsMyArMSwxNSBAQAotKzIwMTYtMDUtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJQ29kZSBjbGVhbnVwOiBkd2FyZjJfZ2V0X3BjX2Jv dW5kczogLTEvMC8rMSAtPiBlbnVtCi0rCSogZHdhcmYycmVhZC5jIChlbnVtIHBjX2JvdW5kc19r aW5kKSBOZXcuCi0rCShkd2FyZjJfZ2V0X3BjX2JvdW5kcyk6IFVzZSBpdCBpbiB0aGUgZGVjbGFy YXRpb24uCi0rCShwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlcik6IEFkanVzdCBjYWxs ZXIuICBSZW5hbWUgaGFzX3BjX2luZm8KLSsJdG8gY3VfYm91bmRzX2tpbmQuCi0rCShyZWFkX2Z1 bmNfc2NvcGUsIHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSwgcmVhZF9jYWxsX3NpdGVfc2NvcGUp OgotKwlBZGp1c3QgY2FsbGVycy4KLSsJKGR3YXJmMl9nZXRfcGNfYm91bmRzKTogVXNlIGVudW0g cGNfYm91bmRzX2tpbmQgaW4gdGhlIGRlZmluaXRpb24uCi0rCShkd2FyZjJfZ2V0X3N1YnByb2dy YW1fcGNfYm91bmRzLCBnZXRfc2NvcGVfcGNfYm91bmRzKTogQWRqdXN0IGNhbGxlcnMuCi0rCi0g MjAxNi0wNS0yOSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgot IAotIAkqIE5FV1MgKFFDYXRjaFN5c2NhbGxzKTogUmVtb3ZlIHRoZSBwYXJhbWV0ZXIuICBJbmNs dWRlIC4uLgotLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwotKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwot QEAgLTE2MDYsOSArMTYwNiwyNSBAQCBzdGF0aWMgdm9pZCByZWFkX2NhbGxfc2l0ZV9zY29wZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKLSBzdGF0aWMgaW50 IGR3YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQsIENPUkVfQUREUiAqLCBDT1JFX0FERFIgKiwK LSAJCQkgICAgICAgc3RydWN0IGR3YXJmMl9jdSAqLCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7 Ci0gCi0tc3RhdGljIGludCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICos Ci0tCQkJCSBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosIHN0cnVjdCBkd2FyZjJfY3UgKiwKLS0J CQkJIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqKTsKLSsvKiBIb3cgZHdhcmYyX2dldF9wY19ib3Vu ZHMgY29uc3RydWN0ZWQgaXRzICpMT1dQQyBhbmQgKkhJR0hQQyByZXR1cm4KLSsgICB2YWx1ZXMu ICAqLwotK2VudW0gcGNfYm91bmRzX2tpbmQKLSt7Ci0rICAvKiBObyB2YWxpZCBjb21iaW5hdGlv biBvZiBEV19BVF9sb3dfcGMsIERXX0FUX2hpZ2hfcGMgb3IgRFdfQVRfcmFuZ2VzCi0rICAgICB3 YXMgZm91bmQuICAqLwotKyAgUENfQk9VTkRTX05PVF9QUkVTRU5ULAotKwotKyAgLyogRGlzY29u dGlndW91cyByYW5nZSB3YXMgZm91bmQgLSB0aGF0IGlzIERXX0FUX3JhbmdlcyB3YXMgZm91bmQu ICAqLwotKyAgUENfQk9VTkRTX1JBTkdFUywKLSsKLSsgIC8qIENvbnRpZ3VvdXMgcmFuZ2Ugd2Fz IGZvdW5kIC0gRFdfQVRfbG93X3BjIGFuZCBEV19BVF9oaWdoX3BjIHdlcmUgZm91bmQuICAqLwot KyAgUENfQk9VTkRTX0hJR0hfTE9XLAotK307Ci0rCi0rc3RhdGljIGVudW0gcGNfYm91bmRzX2tp bmQgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqLAotKwkJCQkJCSBDT1JF X0FERFIgKiwgQ09SRV9BRERSICosCi0rCQkJCQkJIHN0cnVjdCBkd2FyZjJfY3UgKiwKLSsJCQkJ CQkgc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwotIAotIHN0YXRpYyB2b2lkIGdldF9zY29wZV9w Y19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqLAotIAkJCQkgQ09SRV9BRERSICosIENPUkVfQURE UiAqLAotQEAgLTU5NDcsNyArNTk2Myw3IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVh ZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAotICAgQ09SRV9BRERS IGJhc2VhZGRyOwotICAgQ09SRV9BRERSIGJlc3RfbG93cGMgPSAwLCBiZXN0X2hpZ2hwYyA9IDA7 Ci0gICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdDsKLS0gIGludCBoYXNfcGNfaW5mbzsKLSsg IGVudW0gcGNfYm91bmRzX2tpbmQgY3VfYm91bmRzX2tpbmQ7Ci0gICBjb25zdCBjaGFyICpmaWxl bmFtZTsKLSAgIHN0cnVjdCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X2RhdGEgKmluZm8KLSAg ICAgPSAoc3RydWN0IHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfZGF0YSAqKSBkYXRhOwotQEAg LTU5NzcsOSArNTk5Myw5IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25z dCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAotIAotICAgLyogUG9zc2libHkgc2V0 IHRoZSBkZWZhdWx0IHZhbHVlcyBvZiBMT1dQQyBhbmQgSElHSFBDIGZyb20KLSAgICAgIGBEV19B VF9yYW5nZXMnLiAgKi8KLS0gIGhhc19wY19pbmZvID0gZHdhcmYyX2dldF9wY19ib3VuZHMgKGNv bXBfdW5pdF9kaWUsICZiZXN0X2xvd3BjLAotLQkJCQkgICAgICAmYmVzdF9oaWdocGMsIGN1LCBw c3QpOwotLSAgaWYgKGhhc19wY19pbmZvID09IDEgJiYgYmVzdF9sb3dwYyA8IGJlc3RfaGlnaHBj KQotKyAgY3VfYm91bmRzX2tpbmQgPSBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoY29tcF91bml0X2Rp ZSwgJmJlc3RfbG93cGMsCi0rCQkJCQkgJmJlc3RfaGlnaHBjLCBjdSwgcHN0KTsKLSsgIGlmIChj dV9ib3VuZHNfa2luZCA9PSBQQ19CT1VORFNfSElHSF9MT1cgJiYgYmVzdF9sb3dwYyA8IGJlc3Rf aGlnaHBjKQotICAgICAvKiBTdG9yZSB0aGUgY29udGlndW91cyByYW5nZSBpZiBpdCBpcyBub3Qg ZW1wdHk7IGl0IGNhbiBiZSBlbXB0eSBmb3IKLSAgICAgICAgQ1VzIHdpdGggbm8gY29kZS4gICov Ci0gICAgIGFkZHJtYXBfc2V0X2VtcHR5IChvYmpmaWxlLT5wc3ltdGFic19hZGRybWFwLAotQEAg LTYwMDMsNyArNjAxOSw3IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25z dCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAotICAgICAgIGZpcnN0X2RpZSA9IGxv YWRfcGFydGlhbF9kaWVzIChyZWFkZXIsIGluZm9fcHRyLCAxKTsKLSAKLSAgICAgICBzY2FuX3Bh cnRpYWxfc3ltYm9scyAoZmlyc3RfZGllLCAmbG93cGMsICZoaWdocGMsCi0tCQkJICAgICEgaGFz X3BjX2luZm8sIGN1KTsKLSsJCQkgICAgY3VfYm91bmRzX2tpbmQgPT0gUENfQk9VTkRTX05PVF9Q UkVTRU5ULCBjdSk7Ci0gCi0gICAgICAgLyogSWYgd2UgZGlkbid0IGZpbmQgYSBsb3dwYywgc2V0 IGl0IHRvIGhpZ2hwYyB0byBhdm9pZAotIAkgY29tcGxhaW50cyBmcm9tIGBtYWludCBjaGVjaycu CSAqLwotQEAgLTYwMTIsNyArNjAyOCw3IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVh ZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAotIAotICAgICAgIC8q IElmIHRoZSBjb21waWxhdGlvbiB1bml0IGRpZG4ndCBoYXZlIGFuIGV4cGxpY2l0IGFkZHJlc3Mg cmFuZ2UsCi0gCSB0aGVuIHVzZSB0aGUgaW5mb3JtYXRpb24gZXh0cmFjdGVkIGZyb20gaXRzIGNo aWxkIGRpZXMuICAqLwotLSAgICAgIGlmICghIGhhc19wY19pbmZvKQotKyAgICAgIGlmIChjdV9i b3VuZHNfa2luZCA9PSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0gCXsKLSAJICBiZXN0X2xvd3Bj ID0gbG93cGM7Ci0gCSAgYmVzdF9oaWdocGMgPSBoaWdocGM7Ci1AQCAtMTEzNzMsNyArMTEzODks OCBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKLSAgICAgfQotIAotICAgLyogSWdub3JlIGZ1bmN0aW9ucyB3aXRoIG1pc3Npbmcg b3IgaW52YWxpZCBsb3cgYW5kIGhpZ2ggcGMgYXR0cmlidXRlcy4gICovCi0tICBpZiAoIWR3YXJm Ml9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpKQotKyAgaWYg KGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpCi0r ICAgICAgPT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotICAgICB7Ci0gICAgICAgYXR0ciA9IGR3 YXJmMl9hdHRyIChkaWUsIERXX0FUX2V4dGVybmFsLCBjdSk7Ci0gICAgICAgaWYgKCFhdHRyIHx8 ICFEV19VTlNORCAoYXR0cikpCi1AQCAtMTE1MzUsNyArMTE1NTIsOCBAQCByZWFkX2xleGljYWxf YmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK LSAgICAgIGFzIG11bHRpcGxlIGxleGljYWwgYmxvY2tzPyAgSGFuZGxpbmcgY2hpbGRyZW4gaW4g YSBzYW5lIHdheSB3b3VsZAotICAgICAgYmUgbmFzdHkuICBNaWdodCBiZSBlYXNpZXIgdG8gcHJv cGVybHkgZXh0ZW5kIGdlbmVyaWMgYmxvY2tzIHRvCi0gICAgICBkZXNjcmliZSByYW5nZXMuICAq LwotLSAgaWYgKCFkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93cGMsICZoaWdocGMsIGN1 LCBOVUxMKSkKLSsgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93cGMsICZoaWdo cGMsIGN1LCBOVUxMKQotKyAgICAgID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSAgICAgcmV0 dXJuOwotICAgbG93cGMgPSBnZGJhcmNoX2FkanVzdF9kd2FyZjJfYWRkciAoZ2RiYXJjaCwgbG93 cGMgKyBiYXNlYWRkcik7Ci0gICBoaWdocGMgPSBnZGJhcmNoX2FkanVzdF9kd2FyZjJfYWRkciAo Z2RiYXJjaCwgaGlnaHBjICsgYmFzZWFkZHIpOwotQEAgLTExNzQ1LDcgKzExNzYzLDggQEAgcmVh ZF9jYWxsX3NpdGVfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKLSAJICBDT1JFX0FERFIgbG93cGM7Ci0gCi0gCSAgLyogRFdfQVRfZW50cnlfcGMgc2hv dWxkIGJlIHByZWZlcnJlZC4gICovCi0tCSAgaWYgKCFkd2FyZjJfZ2V0X3BjX2JvdW5kcyAodGFy Z2V0X2RpZSwgJmxvd3BjLCBOVUxMLCB0YXJnZXRfY3UsIE5VTEwpKQotKwkgIGlmIChkd2FyZjJf Z2V0X3BjX2JvdW5kcyAodGFyZ2V0X2RpZSwgJmxvd3BjLCBOVUxMLCB0YXJnZXRfY3UsIE5VTEwp Ci0rCSAgICAgID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSAJICAgIGNvbXBsYWludCAoJnN5 bWZpbGVfY29tcGxhaW50cywKLSAJCSAgICAgICBfKCJEV19BVF9HTlVfY2FsbF9zaXRlX3Rhcmdl dCB0YXJnZXQgRElFIGhhcyBpbnZhbGlkICIKLSAJCSAgICAgICAgICJsb3cgcGMsIGZvciByZWZl cmVuY2luZyBESUUgMHgleCBbaW4gbW9kdWxlICVzXSIpLAotQEAgLTEyMDIwLDExICsxMjAzOSwx MSBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkIG9mZnNldCwgQ09SRV9BRERSICpsb3df cmV0dXJuLAotICAgcmV0dXJuIDE7Ci0gfQotIAotLS8qIEdldCBsb3cgYW5kIGhpZ2ggcGMgYXR0 cmlidXRlcyBmcm9tIGEgZGllLiAgUmV0dXJuIDEgaWYgdGhlIGF0dHJpYnV0ZXMKLS0gICBhcmUg cHJlc2VudCBhbmQgdmFsaWQsIG90aGVyd2lzZSwgcmV0dXJuIDAuICBSZXR1cm4gLTEgaWYgdGhl IHJhbmdlIGlzCi0tICAgZGlzY29udGludW91cywgaS5lLiBkZXJpdmVkIGZyb20gRFdfQVRfcmFu Z2VzIGluZm9ybWF0aW9uLiAgKi8KLSsvKiBHZXQgbG93IGFuZCBoaWdoIHBjIGF0dHJpYnV0ZXMg ZnJvbSBhIGRpZS4gIFNlZSBlbnVtIHBjX2JvdW5kc19raW5kCi0rICAgZGVmaW5pdGlvbiBmb3Ig dGhlIHJldHVybiB2YWx1ZS4gICpMT1dQQyBhbmQgKkhJR0hQQyBhcmUgc2V0IGlmZgotKyAgIFBD X0JPVU5EU19OT1RfUFJFU0VOVCBpcyBub3QgcmV0dXJuZWQuICAqLwotIAotLXN0YXRpYyBpbnQK LStzdGF0aWMgZW51bSBwY19ib3VuZHNfa2luZAotIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAJCSAgICAgIENPUkVfQUREUiAq aGlnaHBjLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKLSAJCSAgICAgIHN0cnVjdCBwYXJ0aWFsX3N5 bXRhYiAqcHN0KQotQEAgLTEyMDMzLDcgKzEyMDUyLDcgQEAgZHdhcmYyX2dldF9wY19ib3VuZHMg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxvd3BjLAotICAgc3RydWN0IGF0dHJp YnV0ZSAqYXR0cl9oaWdoOwotICAgQ09SRV9BRERSIGxvdyA9IDA7Ci0gICBDT1JFX0FERFIgaGln aCA9IDA7Ci0tICBpbnQgcmV0ID0gMDsKLSsgIGVudW0gcGNfYm91bmRzX2tpbmQgcmV0ID0gUENf Qk9VTkRTX05PVF9QUkVTRU5UOwotIAotICAgYXR0cl9oaWdoID0gZHdhcmYyX2F0dHIgKGRpZSwg RFdfQVRfaGlnaF9wYywgY3UpOwotICAgaWYgKGF0dHJfaGlnaCkKLUBAIC0xMjA0OCwxMCArMTIw NjcsMTAgQEAgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JF X0FERFIgKmxvd3BjLAotIAl9Ci0gICAgICAgZWxzZQotIAkvKiBGb3VuZCBoaWdoIHcvbyBsb3cg YXR0cmlidXRlLiAgKi8KLS0JcmV0dXJuIDA7Ci0rCXJldHVybiBQQ19CT1VORFNfTk9UX1BSRVNF TlQ7Ci0gCi0gICAgICAgLyogRm91bmQgY29uc2VjdXRpdmUgcmFuZ2Ugb2YgYWRkcmVzc2VzLiAg Ki8KLS0gICAgICByZXQgPSAxOwotKyAgICAgIHJldCA9IFBDX0JPVU5EU19ISUdIX0xPVzsKLSAg ICAgfQotICAgZWxzZQotICAgICB7Ci1AQCAtMTIwNzAsMTUgKzEyMDg5LDE1IEBAIGR3YXJmMl9n ZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAJ ICAvKiBWYWx1ZSBvZiB0aGUgRFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSBpcyB0aGUgb2Zmc2V0IGlu IHRoZQotIAkgICAgIC5kZWJ1Z19yYW5nZXMgc2VjdGlvbi4gICovCi0gCSAgaWYgKCFkd2FyZjJf cmFuZ2VzX3JlYWQgKHJhbmdlc19vZmZzZXQsICZsb3csICZoaWdoLCBjdSwgcHN0KSkKLS0JICAg IHJldHVybiAwOwotKwkgICAgcmV0dXJuIFBDX0JPVU5EU19OT1RfUFJFU0VOVDsKLSAJICAvKiBG b3VuZCBkaXNjb250aW51b3VzIHJhbmdlIG9mIGFkZHJlc3Nlcy4gICovCi0tCSAgcmV0ID0gLTE7 Ci0rCSAgcmV0ID0gUENfQk9VTkRTX1JBTkdFUzsKLSAJfQotICAgICB9Ci0gCi0gICAvKiByZWFk X3BhcnRpYWxfZGllIGhhcyBhbHNvIHRoZSBzdHJpY3QgTE9XIDwgSElHSCByZXF1aXJlbWVudC4g ICovCi0gICBpZiAoaGlnaCA8PSBsb3cpCi0tICAgIHJldHVybiAwOwotKyAgICByZXR1cm4gUENf Qk9VTkRTX05PVF9QUkVTRU5UOwotIAotICAgLyogV2hlbiB1c2luZyB0aGUgR05VIGxpbmtlciwg LmdudS5saW5rb25jZS4gc2VjdGlvbnMgYXJlIHVzZWQgdG8KLSAgICAgIGVsaW1pbmF0ZSBkdXBs aWNhdGUgY29waWVzIG9mIGZ1bmN0aW9ucyBhbmQgdnRhYmxlcyBhbmQgc3VjaC4KLUBAIC0xMjA4 OSw3ICsxMjEwOCw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgQ09SRV9BRERSICpsb3dwYywKLSAgICAgIElmIHRoaXMgaXMgYSBkaXNjYXJkZWQgZnVuY3Rp b24sIG1hcmsgdGhlIHBjIGJvdW5kcyBhcyBpbnZhbGlkLAotICAgICAgc28gdGhhdCBHREIgd2ls bCBpZ25vcmUgaXQuICAqLwotICAgaWYgKGxvdyA9PSAwICYmICFkd2FyZjJfcGVyX29iamZpbGUt Pmhhc19zZWN0aW9uX2F0X3plcm8pCi0tICAgIHJldHVybiAwOwotKyAgICByZXR1cm4gUENfQk9V TkRTX05PVF9QUkVTRU5UOwotIAotICAgKmxvd3BjID0gbG93OwotICAgaWYgKGhpZ2hwYykKLUBA IC0xMjExMCw3ICsxMjEyOSw4IEBAIGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLAotICAgQ09SRV9BRERSIGxvdywgaGlnaDsKLSAgIHN0cnVjdCBk aWVfaW5mbyAqY2hpbGQgPSBkaWUtPmNoaWxkOwotIAotLSAgaWYgKGR3YXJmMl9nZXRfcGNfYm91 bmRzIChkaWUsICZsb3csICZoaWdoLCBjdSwgTlVMTCkpCi0rICBpZiAoZHdhcmYyX2dldF9wY19i b3VuZHMgKGRpZSwgJmxvdywgJmhpZ2gsIGN1LCBOVUxMKQotKyAgICAgICE9IFBDX0JPVU5EU19O T1RfUFJFU0VOVCkKLSAgICAgewotICAgICAgICpsb3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cpOwot ICAgICAgICpoaWdocGMgPSBtYXggKCpoaWdocGMsIGhpZ2gpOwotQEAgLTEyMTQ3LDcgKzEyMTY3 LDggQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCi0gICBDT1JF X0FERFIgYmVzdF9oaWdoID0gKENPUkVfQUREUikgMDsKLSAgIENPUkVfQUREUiBjdXJyZW50X2xv dywgY3VycmVudF9oaWdoOwotIAotLSAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZj dXJyZW50X2xvdywgJmN1cnJlbnRfaGlnaCwgY3UsIE5VTEwpKQotKyAgaWYgKGR3YXJmMl9nZXRf cGNfYm91bmRzIChkaWUsICZjdXJyZW50X2xvdywgJmN1cnJlbnRfaGlnaCwgY3UsIE5VTEwpCi0r ICAgICAgIT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotICAgICB7Ci0gICAgICAgYmVzdF9sb3cg PSBjdXJyZW50X2xvdzsKLSAgICAgICBiZXN0X2hpZ2ggPSBjdXJyZW50X2hpZ2g7Ci0tLSAKLTIu NS41Ci0KCmRpZmYgLS1naXQgYS9nZGItYmFyZS1EV19UQUdfbGV4aWNhbF9ibG9jay0yb2YyLnBh dGNoIGIvZ2RiLWJhcmUtRFdfVEFHX2xleGljYWxfYmxvY2stMm9mMi5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggYzg4ZmRmMy4uMDAwMDAwMAotLS0gYS9nZGItYmFyZS1EV19U QUdfbGV4aWNhbF9ibG9jay0yb2YyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQzICswLDAg QEAKLUZyb20gZTM4NTU5M2VlZjk4YWM5MmJlNTcxNTllMTQxZjRiODA1ZGFkYmJiMyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPgotRGF0ZTogTW9uLCAzMCBNYXkgMjAxNiAxNDoxNDo0MyArMDIwMAotU3ViamVj dDogW1BBVENIIDIvMl0gUFIgMTUyMzE6IGltcG9ydCBiYXJlIERXX1RBR19sZXhpY2FsX2Jsb2Nr Ci0KLUxvY2FsIHZhcmlhYmxlcyBpbiBsYW1iZGFzIGFyZSBub3QgYWNjZXNzaWJsZQotaHR0cHM6 Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTUyMzEKLQotR0RCOiBy ZWFkX2xleGljYWxfYmxvY2tfc2NvcGUKLSAgLyogSWdub3JlIGJsb2NrcyB3aXRoIG1pc3Npbmcg b3IgaW52YWxpZCBsb3cgYW5kIGhpZ2ggcGMgYXR0cmlidXRlcy4gICovCi1bLi4uXQotICBpZiAo IWR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpKQot ICAgIHJldHVybjsKLQotQnV0IHNvbWV0aW1lcyB0aGVyZSBpczoKLQotRkFJTDogZ2NjLTUuMy4x LTYuZmMyMy54ODZfNjQKLSA8Mj48OTI+OiBBYmJyZXYgTnVtYmVyOiAxMSAoRFdfVEFHX2xleGlj YWxfYmxvY2spCi0gPDM+PDljPjogQWJicmV2IE51bWJlcjogMTMgKERXX1RBR19zdHJ1Y3R1cmVf dHlwZSkKLSAgICA8OWQ+ICAgRFdfQVRfbmFtZSAgICAgICAgOiAoaW5kaXJlY3Qgc3RyaW5nLCBv ZmZzZXQ6IDB4M2MpOiA8bGFtYmRhKCk+Ci0gICAgWy4uLl0KLQotV2hlcmUgRFdfVEFHX2xleGlj YWxfYmxvY2sgaGFzIG5vIGF0dHJpYnV0ZXMuICBTdWNoIHdob2xlIHN1YnRyZWUgaXMgY3VycmVu dGx5Ci1kcm9wcGVkIGJ5IEdEQiB3aGlsZSBJIHRoaW5rIGl0IHNob3VsZCBqdXN0IGltcG9ydCBh bGwgaXRzIGNoaWxkcmVuIERJRXMuCi0KLUl0IGV2ZW4gWEZBSUwtPlhQQVNTZXMgZ2RiLmFkYS9v dXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cDoKLQljb21taXQgMGZhN2ZlNTA2YzI0MmI0NTljNGMw NWQzMzFlN2M3ZDY2ZmI1MjM5MAotCUF1dGhvcjogSm9lbCBCcm9iZWNrZXIgPGJyb2JlY2tlckBh ZGFjb3JlLmNvbT4KLQkgICAgb3V0IG9mIGxpbmUgZnVuY3Rpb25zIG5lc3RlZCBpbnNpZGUgaW5s aW5lIGZ1bmN0aW9ucy4KLVNvIEkgaGF2ZSByZW1vdmVkIHRoYXQgeGZhaWwuCi0KLWdkYi9DaGFu Z2VMb2cKLTIwMTYtMDUtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KLQotCVBSIGMrKy8xNTIzMQotCSogZHdhcmYycmVhZC5jIChlbnVtIHBjX2JvdW5kc19r aW5kKTogQWRkIFBDX0JPVU5EU19JTlZBTElELgotCShwcm9jZXNzX3BzeW10YWJfY29tcF91bml0 X3JlYWRlciwgcmVhZF9mdW5jX3Njb3BlKTogQWRqdXN0IGNhbGxlcnMuCi0JKHJlYWRfbGV4aWNh bF9ibG9ja19zY29wZSk6IEltcG9ydCBESUVzIGZyb20gYmFyZSBEV19UQUdfbGV4aWNhbF9ibG9j ay4KLQkocmVhZF9jYWxsX3NpdGVfc2NvcGUpOiBBZGp1c3QgY2FsbGVycy4KLQkoZHdhcmYyX2dl dF9wY19ib3VuZHMpOiBJbXBsZW1lbnQgcGNfYm91bmRzX2ludmFsaWQuCi0JKGR3YXJmMl9nZXRf c3VicHJvZ3JhbV9wY19ib3VuZHMsIGdldF9zY29wZV9wY19ib3VuZHMpOiBBZGp1c3QgY2FsbGVy cy4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLTIwMTYtMDUtMzAgIEphbiBLcmF0b2Nodmls ICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCVBSIGMrKy8xNTIzMQotCSogZ2RiLmFk YS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cDogUmVtb3ZlIHhmYWlscy4KLQkqIGdkYi5kd2Fy ZjIvZHcyLWxleGljYWwtYmxvY2stYmFyZS5leHA6IE5ldyBmaWxlLgotLS0tCi0gZ2RiL0NoYW5n ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrCi0gZ2Ri L2R3YXJmMnJlYWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1MyArKysr KysrKysrLS0tLS0tCi0gZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNiArKwotIGdkYi90ZXN0c3VpdGUvZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9p bmxpbmVkLmV4cCAgIHwgIDYgLS0KLSAuLi4vZ2RiLmR3YXJmMi9kdzItbGV4aWNhbC1ibG9jay1i YXJlLmV4cCAgICAgICAgICB8IDcwICsrKysrKysrKysrKysrKysrKysrKysKLSA1IGZpbGVzIGNo YW5nZWQsIDEyMCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAx MDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1sZXhpY2FsLWJsb2NrLWJhcmUuZXhw Ci0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDUgKzEs MTUgQEAKLSAyMDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+Ci0gCi0rCVBSIGMrKy8xNTIzMQotKwkqIGR3YXJmMnJlYWQuYyAoZW51bSBwY19ib3Vu ZHNfa2luZCk6IEFkZCBQQ19CT1VORFNfSU5WQUxJRC4KLSsJKHByb2Nlc3NfcHN5bXRhYl9jb21w X3VuaXRfcmVhZGVyLCByZWFkX2Z1bmNfc2NvcGUpOiBBZGp1c3QgY2FsbGVycy4KLSsJKHJlYWRf bGV4aWNhbF9ibG9ja19zY29wZSk6IEltcG9ydCBESUVzIGZyb20gYmFyZSBEV19UQUdfbGV4aWNh bF9ibG9jay4KLSsJKHJlYWRfY2FsbF9zaXRlX3Njb3BlKTogQWRqdXN0IGNhbGxlcnMuCi0rCShk d2FyZjJfZ2V0X3BjX2JvdW5kcyk6IEltcGxlbWVudCBwY19ib3VuZHNfaW52YWxpZC4KLSsJKGR3 YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMsIGdldF9zY29wZV9wY19ib3VuZHMpOiBBZGp1 c3QgY2FsbGVycy4KLSsKLSsyMDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+Ci0rCi0gCUNvZGUgY2xlYW51cDogZHdhcmYyX2dldF9wY19ib3VuZHM6 IC0xLzAvKzEgLT4gZW51bQotIAkqIGR3YXJmMnJlYWQuYyAoZW51bSBwY19ib3VuZHNfa2luZCkg TmV3LgotIAkoZHdhcmYyX2dldF9wY19ib3VuZHMpOiBVc2UgaXQgaW4gdGhlIGRlY2xhcmF0aW9u LgotLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwotKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwotQEAgLTE2 MDcsMTMgKzE2MDcsMTYgQEAgc3RhdGljIGludCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVk LCBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosCi0gCQkJICAgICAgIHN0cnVjdCBkd2FyZjJfY3Ug Kiwgc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwotIAotIC8qIEhvdyBkd2FyZjJfZ2V0X3BjX2Jv dW5kcyBjb25zdHJ1Y3RlZCBpdHMgKkxPV1BDIGFuZCAqSElHSFBDIHJldHVybgotLSAgIHZhbHVl cy4gICovCi0rICAgdmFsdWVzLiAgS2VlcCB0aGUgaXRlbXMgb3JkZXJlZCB3aXRoIGluY3JlYXNp bmcgY29uc3RyYWludHMgY29tcGxpYW5jZS4gICovCi0gZW51bSBwY19ib3VuZHNfa2luZAotIHsK LS0gIC8qIE5vIHZhbGlkIGNvbWJpbmF0aW9uIG9mIERXX0FUX2xvd19wYywgRFdfQVRfaGlnaF9w YyBvciBEV19BVF9yYW5nZXMKLS0gICAgIHdhcyBmb3VuZC4gICovCi0rICAvKiBObyBhdHRyaWJ1 dGUgRFdfQVRfbG93X3BjLCBEV19BVF9oaWdoX3BjIG9yIERXX0FUX3JhbmdlcyB3YXMgZm91bmQu ICAqLwotICAgUENfQk9VTkRTX05PVF9QUkVTRU5ULAotIAotKyAgLyogU29tZSBvZiB0aGUgYXR0 cmlidXRlcyBEV19BVF9sb3dfcGMsIERXX0FUX2hpZ2hfcGMgb3IgRFdfQVRfcmFuZ2VzCi0rICAg ICB3ZXJlIHByZXNlbnQgYnV0IHRoZXkgZG8gbm90IGZvcm0gYSB2YWxpZCByYW5nZSBvZiBQQyBh ZGRyZXNzZXMuICAqLwotKyAgUENfQk9VTkRTX0lOVkFMSUQsCi0rCi0gICAvKiBEaXNjb250aWd1 b3VzIHJhbmdlIHdhcyBmb3VuZCAtIHRoYXQgaXMgRFdfQVRfcmFuZ2VzIHdhcyBmb3VuZC4gICov Ci0gICBQQ19CT1VORFNfUkFOR0VTLAotIAotQEAgLTYwMTksNyArNjAyMiw3IEBAIHByb2Nlc3Nf cHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAq cmVhZGVyLAotICAgICAgIGZpcnN0X2RpZSA9IGxvYWRfcGFydGlhbF9kaWVzIChyZWFkZXIsIGlu Zm9fcHRyLCAxKTsKLSAKLSAgICAgICBzY2FuX3BhcnRpYWxfc3ltYm9scyAoZmlyc3RfZGllLCAm bG93cGMsICZoaWdocGMsCi0tCQkJICAgIGN1X2JvdW5kc19raW5kID09IFBDX0JPVU5EU19OT1Rf UFJFU0VOVCwgY3UpOwotKwkJCSAgICBjdV9ib3VuZHNfa2luZCA8PSBQQ19CT1VORFNfSU5WQUxJ RCwgY3UpOwotIAotICAgICAgIC8qIElmIHdlIGRpZG4ndCBmaW5kIGEgbG93cGMsIHNldCBpdCB0 byBoaWdocGMgdG8gYXZvaWQKLSAJIGNvbXBsYWludHMgZnJvbSBgbWFpbnQgY2hlY2snLgkgKi8K LUBAIC02MDI4LDcgKzYwMzEsNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciAo Y29uc3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwKLSAKLSAgICAgICAvKiBJZiB0 aGUgY29tcGlsYXRpb24gdW5pdCBkaWRuJ3QgaGF2ZSBhbiBleHBsaWNpdCBhZGRyZXNzIHJhbmdl LAotIAkgdGhlbiB1c2UgdGhlIGluZm9ybWF0aW9uIGV4dHJhY3RlZCBmcm9tIGl0cyBjaGlsZCBk aWVzLiAgKi8KLS0gICAgICBpZiAoY3VfYm91bmRzX2tpbmQgPT0gUENfQk9VTkRTX05PVF9QUkVT RU5UKQotKyAgICAgIGlmIChjdV9ib3VuZHNfa2luZCA8PSBQQ19CT1VORFNfSU5WQUxJRCkKLSAJ ewotIAkgIGJlc3RfbG93cGMgPSBsb3dwYzsKLSAJICBiZXN0X2hpZ2hwYyA9IGhpZ2hwYzsKLUBA IC0xMTM5MCw3ICsxMTM5Myw3IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQotIAotICAgLyogSWdub3JlIGZ1bmN0aW9ucyB3aXRo IG1pc3Npbmcgb3IgaW52YWxpZCBsb3cgYW5kIGhpZ2ggcGMgYXR0cmlidXRlcy4gICovCi0gICBp ZiAoZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmxvd3BjLCAmaGlnaHBjLCBjdSwgTlVMTCkK LS0gICAgICA9PSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0rICAgICAgPD0gUENfQk9VTkRTX0lO VkFMSUQpCi0gICAgIHsKLSAgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZXh0 ZXJuYWwsIGN1KTsKLSAgICAgICBpZiAoIWF0dHIgfHwgIURXX1VOU05EIChhdHRyKSkKLUBAIC0x MTU1Miw5ICsxMTU1NSwyMCBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAgICAgIGFzIG11bHRpcGxlIGxleGlj YWwgYmxvY2tzPyAgSGFuZGxpbmcgY2hpbGRyZW4gaW4gYSBzYW5lIHdheSB3b3VsZAotICAgICAg YmUgbmFzdHkuICBNaWdodCBiZSBlYXNpZXIgdG8gcHJvcGVybHkgZXh0ZW5kIGdlbmVyaWMgYmxv Y2tzIHRvCi0gICAgICBkZXNjcmliZSByYW5nZXMuICAqLwotLSAgaWYgKGR3YXJmMl9nZXRfcGNf Ym91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpCi0tICAgICAgPT0gUENfQk9V TkRTX05PVF9QUkVTRU5UKQotLSAgICByZXR1cm47Ci0rICBzd2l0Y2ggKGR3YXJmMl9nZXRfcGNf Ym91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpKQotKyAgICB7Ci0rICAgIGNh c2UgUENfQk9VTkRTX05PVF9QUkVTRU5UOgotKyAgICAgIC8qIERXX1RBR19sZXhpY2FsX2Jsb2Nr IGhhcyBubyBhdHRyaWJ1dGVzLCBwcm9jZXNzIGl0cyBjaGlsZHJlbiBhcyBpZgotKwkgdGhlcmUg d2FzIG5vIHdyYXBwaW5nIGJ5IHRoYXQgRFdfVEFHX2xleGljYWxfYmxvY2suCi0rCSBHQ0MgZG9l cyBubyBsb25nZXIgcHJvZHVjZXMgc3VjaCBEV0FSRiBzaW5jZSBHQ0MgcjIyNDE2MS4gICovCi0r ICAgICAgZm9yIChjaGlsZF9kaWUgPSBkaWUtPmNoaWxkOwotKwkgICBjaGlsZF9kaWUgIT0gTlVM TCAmJiBjaGlsZF9kaWUtPnRhZzsKLSsJICAgY2hpbGRfZGllID0gc2libGluZ19kaWUgKGNoaWxk X2RpZSkpCi0rCXByb2Nlc3NfZGllIChjaGlsZF9kaWUsIGN1KTsKLSsgICAgICByZXR1cm47Ci0r ICAgIGNhc2UgUENfQk9VTkRTX0lOVkFMSUQ6Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0gICBs b3dwYyA9IGdkYmFyY2hfYWRqdXN0X2R3YXJmMl9hZGRyIChnZGJhcmNoLCBsb3dwYyArIGJhc2Vh ZGRyKTsKLSAgIGhpZ2hwYyA9IGdkYmFyY2hfYWRqdXN0X2R3YXJmMl9hZGRyIChnZGJhcmNoLCBo aWdocGMgKyBiYXNlYWRkcik7Ci0gCi1AQCAtMTE3NjQsNyArMTE3NzgsNyBAQCByZWFkX2NhbGxf c2l0ZV9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQot IAotIAkgIC8qIERXX0FUX2VudHJ5X3BjIHNob3VsZCBiZSBwcmVmZXJyZWQuICAqLwotIAkgIGlm IChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAodGFyZ2V0X2RpZSwgJmxvd3BjLCBOVUxMLCB0YXJnZXRf Y3UsIE5VTEwpCi0tCSAgICAgID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSsJICAgICAgPD0g UENfQk9VTkRTX0lOVkFMSUQpCi0gCSAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMs Ci0gCQkgICAgICAgXygiRFdfQVRfR05VX2NhbGxfc2l0ZV90YXJnZXQgdGFyZ2V0IERJRSBoYXMg aW52YWxpZCAiCi0gCQkgICAgICAgICAibG93IHBjLCBmb3IgcmVmZXJlbmNpbmcgRElFIDB4JXgg W2luIG1vZHVsZSAlc10iKSwKLUBAIC0xMjA0MSw3ICsxMjA1NSw3IEBAIGR3YXJmMl9yYW5nZXNf cmVhZCAodW5zaWduZWQgb2Zmc2V0LCBDT1JFX0FERFIgKmxvd19yZXR1cm4sCi0gCi0gLyogR2V0 IGxvdyBhbmQgaGlnaCBwYyBhdHRyaWJ1dGVzIGZyb20gYSBkaWUuICBTZWUgZW51bSBwY19ib3Vu ZHNfa2luZAotICAgIGRlZmluaXRpb24gZm9yIHRoZSByZXR1cm4gdmFsdWUuICAqTE9XUEMgYW5k ICpISUdIUEMgYXJlIHNldCBpZmYKLS0gICBQQ19CT1VORFNfTk9UX1BSRVNFTlQgaXMgbm90IHJl dHVybmVkLiAgKi8KLSsgICBuZWl0aGVyIFBDX0JPVU5EU19OT1RfUFJFU0VOVCBub3IgUENfQk9V TkRTX0lOVkFMSUQgYXJlIHJldHVybmVkLiAgKi8KLSAKLSBzdGF0aWMgZW51bSBwY19ib3VuZHNf a2luZAotIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9B RERSICpsb3dwYywKLUBAIC0xMjA1Miw3ICsxMjA2Niw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRz IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAgIHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHJfaGlnaDsKLSAgIENPUkVfQUREUiBsb3cgPSAwOwotICAgQ09SRV9BRERSIGhp Z2ggPSAwOwotLSAgZW51bSBwY19ib3VuZHNfa2luZCByZXQgPSBQQ19CT1VORFNfTk9UX1BSRVNF TlQ7Ci0rICBlbnVtIHBjX2JvdW5kc19raW5kIHJldDsKLSAKLSAgIGF0dHJfaGlnaCA9IGR3YXJm Ml9hdHRyIChkaWUsIERXX0FUX2hpZ2hfcGMsIGN1KTsKLSAgIGlmIChhdHRyX2hpZ2gpCi1AQCAt MTIwNjcsNyArMTIwODEsNyBAQCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIENPUkVfQUREUiAqbG93cGMsCi0gCX0KLSAgICAgICBlbHNlCi0gCS8qIEZvdW5kIGhp Z2ggdy9vIGxvdyBhdHRyaWJ1dGUuICAqLwotLQlyZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5U OwotKwlyZXR1cm4gUENfQk9VTkRTX0lOVkFMSUQ7Ci0gCi0gICAgICAgLyogRm91bmQgY29uc2Vj dXRpdmUgcmFuZ2Ugb2YgYWRkcmVzc2VzLiAgKi8KLSAgICAgICByZXQgPSBQQ19CT1VORFNfSElH SF9MT1c7Ci1AQCAtMTIwODksMTUgKzEyMTAzLDE3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAJICAvKiBWYWx1ZSBvZiB0 aGUgRFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSBpcyB0aGUgb2Zmc2V0IGluIHRoZQotIAkgICAgIC5k ZWJ1Z19yYW5nZXMgc2VjdGlvbi4gICovCi0gCSAgaWYgKCFkd2FyZjJfcmFuZ2VzX3JlYWQgKHJh bmdlc19vZmZzZXQsICZsb3csICZoaWdoLCBjdSwgcHN0KSkKLS0JICAgIHJldHVybiBQQ19CT1VO RFNfTk9UX1BSRVNFTlQ7Ci0rCSAgICByZXR1cm4gUENfQk9VTkRTX0lOVkFMSUQ7Ci0gCSAgLyog Rm91bmQgZGlzY29udGludW91cyByYW5nZSBvZiBhZGRyZXNzZXMuICAqLwotIAkgIHJldCA9IFBD X0JPVU5EU19SQU5HRVM7Ci0gCX0KLSsgICAgICBlbHNlCi0rCXJldHVybiBQQ19CT1VORFNfTk9U X1BSRVNFTlQ7Ci0gICAgIH0KLSAKLSAgIC8qIHJlYWRfcGFydGlhbF9kaWUgaGFzIGFsc28gdGhl IHN0cmljdCBMT1cgPCBISUdIIHJlcXVpcmVtZW50LiAgKi8KLSAgIGlmIChoaWdoIDw9IGxvdykK LS0gICAgcmV0dXJuIFBDX0JPVU5EU19OT1RfUFJFU0VOVDsKLSsgICAgcmV0dXJuIFBDX0JPVU5E U19JTlZBTElEOwotIAotICAgLyogV2hlbiB1c2luZyB0aGUgR05VIGxpbmtlciwgLmdudS5saW5r b25jZS4gc2VjdGlvbnMgYXJlIHVzZWQgdG8KLSAgICAgIGVsaW1pbmF0ZSBkdXBsaWNhdGUgY29w aWVzIG9mIGZ1bmN0aW9ucyBhbmQgdnRhYmxlcyBhbmQgc3VjaC4KLUBAIC0xMjEwOCw3ICsxMjEy NCw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9B RERSICpsb3dwYywKLSAgICAgIElmIHRoaXMgaXMgYSBkaXNjYXJkZWQgZnVuY3Rpb24sIG1hcmsg dGhlIHBjIGJvdW5kcyBhcyBpbnZhbGlkLAotICAgICAgc28gdGhhdCBHREIgd2lsbCBpZ25vcmUg aXQuICAqLwotICAgaWYgKGxvdyA9PSAwICYmICFkd2FyZjJfcGVyX29iamZpbGUtPmhhc19zZWN0 aW9uX2F0X3plcm8pCi0tICAgIHJldHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0rICAgIHJl dHVybiBQQ19CT1VORFNfSU5WQUxJRDsKLSAKLSAgICpsb3dwYyA9IGxvdzsKLSAgIGlmIChoaWdo cGMpCi1AQCAtMTIxMjksOCArMTIxNDUsNyBAQCBkd2FyZjJfZ2V0X3N1YnByb2dyYW1fcGNfYm91 bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKLSAgIENPUkVfQUREUiBsb3csIGhpZ2g7Ci0gICBz dHJ1Y3QgZGllX2luZm8gKmNoaWxkID0gZGllLT5jaGlsZDsKLSAKLS0gIGlmIChkd2FyZjJfZ2V0 X3BjX2JvdW5kcyAoZGllLCAmbG93LCAmaGlnaCwgY3UsIE5VTEwpCi0tICAgICAgIT0gUENfQk9V TkRTX05PVF9QUkVTRU5UKQotKyAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3cs ICZoaWdoLCBjdSwgTlVMTCkgPj0gUENfQk9VTkRTX1JBTkdFUykKLSAgICAgewotICAgICAgICps b3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cpOwotICAgICAgICpoaWdocGMgPSBtYXggKCpoaWdocGMs IGhpZ2gpOwotQEAgLTEyMTY4LDcgKzEyMTgzLDcgQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsCi0gICBDT1JFX0FERFIgY3VycmVudF9sb3csIGN1cnJlbnRfaGln aDsKLSAKLSAgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmY3VycmVudF9sb3csICZj dXJyZW50X2hpZ2gsIGN1LCBOVUxMKQotLSAgICAgICE9IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkK LSsgICAgICA+PSBQQ19CT1VORFNfUkFOR0VTKQotICAgICB7Ci0gICAgICAgYmVzdF9sb3cgPSBj dXJyZW50X2xvdzsKLSAgICAgICBiZXN0X2hpZ2ggPSBjdXJyZW50X2hpZ2g7Ci0jIyMgYS9nZGIv dGVzdHN1aXRlL0NoYW5nZUxvZwotIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIC0x LDMgKzEsOSBAQAotKzIwMTYtMDUtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KLSsKLSsJUFIgYysrLzE1MjMxCi0rCSogZ2RiLmFkYS9vdXRfb2ZfbGluZV9p bl9pbmxpbmVkLmV4cDogUmVtb3ZlIHhmYWlscy4KLSsJKiBnZGIuZHdhcmYyL2R3Mi1sZXhpY2Fs LWJsb2NrLWJhcmUuZXhwOiBOZXcgZmlsZS4KLSsKLSAyMDE2LTA1LTI3ICBQZWRybyBBbHZlcyAg PHBhbHZlc0ByZWRoYXQuY29tPgotIAotIAkqIGdkYi50aHJlYWRzL2F0dGFjaC1tYW55LXNob3J0 LWxpdmVkLXRocmVhZHMuZXhwIChiYWRfZGVqYWdudSk6Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dk Yi5hZGEvb3V0X29mX2xpbmVfaW5faW5saW5lZC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cAotQEAgLTIzLDIwICsyMywxNCBAQCBpZiB7 W2dkYl9jb21waWxlX2FkYSAiJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUge2Rl YnVnIG9wdGltaXplPS1PMn1dCi0gCi0gY2xlYW5fcmVzdGFydCAke3Rlc3RmaWxlfQotIAotLSMg R0NDIGN1cnJlbnRseSBpcyBtaXNzaW5nIGEgRFdfQVRfb3JpZ2luIGF0dHJpYnV0ZSBpbiBvbmUg b2YgdGhlCi0tIyBsZXhpY2FsIGJsb2NrcywgcHJldmVudGluZyBHREIgZnJvbSBjcmVhdGluZyBh IHN5bWJvbCBmb3IgdGhlCi0tIyBzdWJwcm9ncmFtIHdlIHdhbnQgdG8gYnJlYWsgb24uCi0tc2V0 dXBfeGZhaWwgIiotKi0qIgotIGdkYl90ZXN0ICJicmVhayBmb29fbzIyNF8wMjEuY2hpbGQxLmNo aWxkMiIgXAotICAgICAgICAgICJCcmVha3BvaW50IFxbMC05XF0rIGF0Lio6IGZpbGUgLipmb29f bzIyNF8wMjEuYWRiLCBsaW5lIFxbMC05XF0rLiIKLSAKLSBnZGJfcnVuX2NtZAotLXNldHVwX3hm YWlsICIqLSotKiIKLSBnZGJfdGVzdCAiIiBcCi0gICAgICAgICAgIkJyZWFrcG9pbnQgJGRlY2lt YWwsIGZvb19vMjI0XzAyMVxcLmNoaWxkMVxcLmNoaWxkMiBcXChzPVxcLlxcLlxcLlxcKS4qIgot IAotIHNldCBvcHRfYWRkcl9pbiAiKCRoZXggaW4pPyIKLS1zZXR1cF94ZmFpbCAiKi0qLSoiCi0g Z2RiX3Rlc3QgImJ0IiBcCi0gICAgIFttdWx0aV9saW5lICIjMCArJG9wdF9hZGRyX2luICtmb29f bzIyNF8wMjFcXC5jaGlsZDFcXC5jaGlsZDIgXFwocz1cXC5cXC5cXC5cXCkuKiIgXAotICAgICAg ICAgICAgICAgICAiIzEgKyRvcHRfYWRkcl9pbiArZm9vX28yMjRfMDIxXFwuY2hpbGQxIFxcKFxc KS4qIiBcCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LWxleGljYWwtYmxvY2stYmFyZS5leHAKLUBAIC0wLDAgKzEsNzAgQEAKLSsjIENvcHlyaWdodCAy MDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsj IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KLStsb2FkX2xpYiBkd2FyZi5leHAKLSsKLSsjIFRoaXMgdGVzdCBjYW4gb25s eSBiZSBydW4gb24gdGFyZ2V0cyB3aGljaCBzdXBwb3J0IERXQVJGLTIgYW5kIHVzZSBnYXMuCi0r aWYgeyFbZHdhcmYyX3N1cHBvcnRdfSB7Ci0rICAgIHJldHVybiAwCi0rfQotKwotK3N0YW5kYXJk X3Rlc3RmaWxlIC5TIG1haW4uYwotKwotKyMgTWFrZSBzb21lIERXQVJGIGZvciB0aGUgdGVzdC4K LStzZXQgYXNtX2ZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlICRzcmNmaWxlXQotK0R3YXJmOjph c3NlbWJsZSAkYXNtX2ZpbGUgewotKyAgICBjdSB7fSB7Ci0rCWNvbXBpbGVfdW5pdCB7Ci0rCSAg ICB7bG93X3BjIFtnZGJfdGFyZ2V0X3N5bWJvbCBtYWluXSBEV19GT1JNX2FkZHJ9Ci0rCSAgICB7 aGlnaF9wYyBbZ2RiX3RhcmdldF9zeW1ib2wgbWFpbl0rMHgxMDAwMCBEV19GT1JNX2FkZHJ9Ci0r CX0gewotKwkgICAgZGVjbGFyZV9sYWJlbHMgaW50ZWdlcl9sYWJlbAotKwotKwkgICAgaW50ZWdl cl9sYWJlbDogRFdfVEFHX2Jhc2VfdHlwZSB7Ci0rCQl7RFdfQVRfYnl0ZV9zaXplIDQgRFdfRk9S TV9zZGF0YX0KLSsJCXtEV19BVF9lbmNvZGluZyAgQERXX0FURV9zaWduZWR9Ci0rCQl7RFdfQVRf bmFtZSAgICAgIGludGVnZXJ9Ci0rCSAgICB9Ci0rCi0rCSAgICBEV19UQUdfc3VicHJvZ3JhbSB7 Ci0rCQl7bmFtZSBtYWlufQotKwkJe0RXX0FUX2V4dGVybmFsIDEgZmxhZ30KLSsJCXtsb3dfcGMg W2dkYl90YXJnZXRfc3ltYm9sIG1haW5dIERXX0ZPUk1fYWRkcn0KLSsJCXtoaWdoX3BjIFtnZGJf dGFyZ2V0X3N5bWJvbCBtYWluXSsweDEwMDAwIERXX0ZPUk1fYWRkcn0KLSsJICAgIH0gewotKwkJ RFdfVEFHX2xleGljYWxfYmxvY2sgewotKwkJfSB7Ci0rCQkgICAgRFdfVEFHX3ZhcmlhYmxlIHsK LSsJCQl7RFdfQVRfbmFtZSB0ZXN0dmFyfQotKwkJCSAgICB7RFdfQVRfdHlwZSA6JGludGVnZXJf bGFiZWx9Ci0rCQkJICAgIHtEV19BVF9leHRlcm5hbCAxIGZsYWd9Ci0rCQkJe0RXX0FUX2xvY2F0 aW9uIHsKLSsJCQkgICAgRFdfT1BfYWRkciBbZ2RiX3RhcmdldF9zeW1ib2wgbWFpbl0KLSsJCQl9 IFNQRUNJQUxfZXhwcn0KLSsJCSAgICB9Ci0rCQl9Ci0rCSAgICB9Ci0rCX0KLSsgICAgfQotK30K LSsKLStpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxl fSBcCi0rCQkJICBbbGlzdCAkc3JjZmlsZTIgJGFzbV9maWxlXSB7bm9kZWJ1Z31dIH0gewotKyAg ICByZXR1cm4gLTEKLSt9Ci0rCi0rcnVudG9fbWFpbgotKwotKyMgRkFJTGluZyBHREIgZGlkIHBy aW50OiBObyBzeW1ib2wgInRlc3R2YXIiIGluIGN1cnJlbnQgY29udGV4dC4KLStnZGJfdGVzdCAi cCB0ZXN0dmFyIiB7ID0gLT9bMC05XSt9Ci0tLSAKLTIuNS41Ci0KCmRpZmYgLS1naXQgYS9nZGIt Yno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2ggYi9nZGItYno1NDE4NjYtcndhdGNoLWJl Zm9yZS1ydW4ucGF0Y2gKaW5kZXggYjY1N2JkNS4uYmEwNjIyYSAxMDA2NDQKLS0tIGEvZ2RiLWJ6 NTQxODY2LXJ3YXRjaC1iZWZvcmUtcnVuLnBhdGNoCisrKyBiL2dkYi1iejU0MTg2Ni1yd2F0Y2gt YmVmb3JlLXJ1bi5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvY29uZmlnL2kzODYvbGludXg2NC5taAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYw ODA3L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu OTAuMjAxNjAyMTEub3JpZy9nZGIvY29uZmlnL2kzODYvbGludXg2NC5taAkyMDE2LTAyLTExIDIw OjU2OjMyLjQ3MDY3NDg3NyArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25m aWcvaTM4Ni9saW51eDY0Lm1oCTIwMTYtMDItMTEgMjA6NTY6NTEuMTU4Nzk3NzEyICswMTAwCist LS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvY29uZmlnL2kzODYvbGludXg2NC5taAky MDE2LTA4LTA3IDIyOjI3OjEzLjg4OTI4NTI3NCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYw ODA3L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTYtMDgtMDcgMjI6Mjk6MjAuNDUxMzEx MTI0ICswMjAwCiBAQCAtNyw3ICs3LDcgQEAKICAJbGludXgtcHJvY2ZzLm8gbGludXgtcHRyYWNl Lm8gbGludXgtYnRyYWNlLm8gXAogIAlsaW51eC13YWl0cGlkLm8gbGludXgtcGVyc29uYWxpdHku byB4ODYtbGludXgubyBcCkBAIC0xMSwxMCArMTEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCiAgTkFUX0NERVBTID0gJChzcmNkaXIp L3Byb2Mtc2VydmljZS5saXN0CiAgCiAgIyBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIGxpYnRocmVh ZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBpbiB0aGUKLUluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbGludXgubWgKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2 MDgwNy9nZGIvY29uZmlnL2kzODYvbGludXgubWgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45 MC4yMDE2MDIxMS5vcmlnL2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE2LTAyLTExIDIwOjU2 OjI2LjkyNTYzODQzMCArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcv aTM4Ni9saW51eC5taAkyMDE2LTAyLTExIDIwOjU2OjMyLjQ3MTY3NDg4NCArMDEwMAorLS0tIGdk Yi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1oCTIwMTYtMDgt MDcgMjI6Mjc6MTMuODg5Mjg1Mjc0ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L2NvbmZpZy9pMzg2L2xpbnV4Lm1oCTIwMTYtMDgtMDcgMjI6Mjk6MjAuNDUxMzExMTI0ICswMjAw CiBAQCAtMSw2ICsxLDYgQEAKICAjIEhvc3Q6IEludGVsIDM4NiBydW5uaW5nIEdOVS9MaW51eC4K ICAKQEAgLTIzLDEwICsyMywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2Nv bmZpZy9pMzg2L2xpbnV4Lm1oCiAgTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNoaWxk Lm8gXAogIAl4ODYtbmF0Lm8geDg2LWRyZWdzLm8gaTM4Ni1saW51eC1uYXQubyB4ODYtbGludXgt bmF0Lm8gXAogIAlwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBcCi1JbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4LmgKK0luZGV4OiBnZGIt Ny4xMS45MC4yMDE2MDgwNy9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eC5oCTIwMTYtMDItMTEg MjA6NTY6MzIuNDcxNjc0ODg0ICswMTAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2Nv bmZpZy9pMzg2L25tLWxpbnV4LmgJMjAxNi0wOC0wNyAyMjoyOToyMC40NTEzMTExMjQgKzAyMDAK IEBAIC0wLDAgKzEsMjggQEAKICsvKiBOYXRpdmUgc3VwcG9ydCBmb3IgR05VL0xpbnV4IGkzODYu CiArCkBAIC01NiwxMCArNTYsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9j b25maWcvaTM4Ni9ubS1saW51eC5oCiArI2RlZmluZSB0YXJnZXRfY2FuX3VzZV9oYXJkd2FyZV93 YXRjaHBvaW50KHR5cGUsIGNudCwgb3QpIDEKICsKICsjZW5kaWYgLyogTk1fTElOVVg2NF9IICov Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQu aAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0 LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbm0tbGlu dXg2NC5oCTIwMTYtMDItMTEgMjA6NTY6MzIuNDcxNjc0ODg0ICswMTAwCisrKysgZ2RiLTcuMTEu OTAuMjAxNjA4MDcvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAkyMDE2LTA4LTA3IDIyOjI5 OjIwLjQ1MTMxMTEyNCArMDIwMAogQEAgLTAsMCArMSwyOCBAQAogKy8qIE5hdGl2ZSBzdXBwb3J0 IGZvciBHTlUvTGludXggYW1kNjQuCiArCkBAIC04OSwxMyArODksMTMgQEAgSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKICsjZGVmaW5lIHRh cmdldF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQodHlwZSwgY250LCBvdCkgMQogKwogKyNl bmRpZiAvKiBOTV9MSU5VWDY0X0ggKi8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGFyZ2V0LmgKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGFyZ2V0LmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90YXJnZXQuaAkyMDE2LTAy LTExIDIwOjU2OjI2LjkyNjYzODQzNyArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90YXJnZXQuaAkyMDE2LTAyLTExIDIwOjU2OjMyLjQ3MjY3NDg5MCArMDEwMAotQEAgLTE5MjQs OSArMTkyNCwxMSBAQAotICAgIENOVCBpcyB0aGUgbnVtYmVyIG9mIHN1Y2ggd2F0Y2hwb2ludHMg dXNlZCBzbyBmYXIsIGluY2x1ZGluZyB0aGlzCi0gICAgb25lLiAgT1RIRVJUWVBFIGlzIHdobyBr bm93cyB3aGF0Li4uICAqLworLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL3Rhcmdl dC5oCTIwMTYtMDgtMDcgMjI6Mjc6MTMuODg5Mjg1Mjc0ICswMjAwCisrKysgZ2RiLTcuMTEuOTAu MjAxNjA4MDcvZ2RiL3RhcmdldC5oCTIwMTYtMDgtMDcgMjI6Mjk6MjAuNDUyMzExMTMyICswMjAw CitAQCAtMTkzOSw5ICsxOTM5LDExIEBACisgICAgb25lLiAgT1RIRVJUWVBFIGlzIHRoZSBudW1i ZXIgb2Ygd2F0Y2hwb2ludHMgb2Ygb3RoZXIgdHlwZXMgdGhhbgorICAgIHRoaXMgb25lIHVzZWQg c28gZmFyLiAgKi8KICAKICsjaWZuZGVmIHRhcmdldF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9p bnQKICAjZGVmaW5lIHRhcmdldF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQoVFlQRSxDTlQs T1RIRVJUWVBFKSBcCkBAIC0xMDUsMTAgKzEwNSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3RhcmdldC5oCiAgCiAgLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRlYnVnIHJl Z2lzdGVycyBuZWVkZWQgdG8gd2F0Y2ggdGhlIGdpdmVuCiAgICAgbWVtb3J5IHJlZ2lvbiwgb3Ig emVybyBpZiBub3Qgc3VwcG9ydGVkLiAgKi8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAKK0luZGV4 OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQt aHctYmVmb3JlLXJ1bi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAJMjAxNi0wMi0xMSAy MDo1NjozMi40NzI2NzQ4OTAgKzAxMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAJMjAxNi0wOC0wNyAy MjoyOToyMC40NTIzMTExMzIgKzAyMDAKIEBAIC0wLDAgKzEsNDAgQEAKICsjIENvcHlyaWdodCAy MDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTUwLDMgKzE1 MCwxNiBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS93YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCiArZ2RiX3Rlc3QgIiIgIm1haW4gLiogYXQg LioiICJzdGFydCIKICsKICtnZGJfdGVzdCAiY29udGludWUiICJDb250aW51aW5nLlxyXG5cclxu SGFyZHdhcmUgcmVhZCB3YXRjaHBvaW50IFxbMC05XF0rOiB3YXRjaGVlXHJcblxyXG5WYWx1ZSA9 IDBcclxuLioiCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2JyZWFrcG9pbnQuYwor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2JyZWFrcG9pbnQu YwkyMDE2LTA4LTA3IDIyOjMzOjM4LjgzNTQwNTQ1OCArMDIwMAorKysrIGdkYi03LjExLjkwLjIw MTYwODA3L2dkYi9icmVha3BvaW50LmMJMjAxNi0wOC0wNyAyMjozNDo0NS4wMjM5NDE5NTAgKzAy MDAKK0BAIC0xNDk1Myw3ICsxNDk1Myw3IEBACisgCisgICBpZiAoYnB0LT50eXBlID09IGJwX2hh cmR3YXJlX2JyZWFrcG9pbnQpCisgICAgIHsKKy0gICAgICBpbnQgaTsKKysgICAgICBpbnQgaSBB VFRSSUJVVEVfVU5VU0VEOworICAgICAgIGkgPSBod19icmVha3BvaW50X3VzZWRfY291bnQgKCk7 CisgICAgICAgdGFyZ2V0X3Jlc291cmNlc19vayA9IAorIAl0YXJnZXRfY2FuX3VzZV9oYXJkd2Fy ZV93YXRjaHBvaW50IChicF9oYXJkd2FyZV9icmVha3BvaW50LCAKCmRpZmYgLS1naXQgYS9nZGIt ZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2ggYi9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21w YXQucGF0Y2gKaW5kZXggODM4OGM4Ni4uY2JhMWE1YiAxMDA2NDQKLS0tIGEvZ2RiLWR0cy1yaGVs Ni1weXRob24tY29tcGF0LnBhdGNoCisrKyBiL2dkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5w YXRjaApAQCAtMSwxMCArMSwxMCBAQAogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3df YnVnLmNnaT9pZD0xMDIwMDA0CiAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kYXRh LWRpcmVjdG9yeS9NYWtlZmlsZS5pbgorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9k YXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAxNS0wNS0zMSAxODow NTo0My4wNDY3NDYzNTEgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kYXRhLWRp cmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE1LTA1LTMxIDE4OjA1OjU4LjQ4Mzg0MTY1NSArMDIwMAot QEAgLTYwLDYgKzYwLDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKKy0tLSBnZGItNy4xMS41MC4y MDE2MDYzMC5vcmlnL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE2LTA3LTAzIDE2 OjMyOjEzLjc4ODE2NDA0MSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kYXRh LWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2ODE5ODg1MCArMDIw MAorQEAgLTYxLDYgKzYxLDggQEAKICAJZ2RiL2ZyYW1lcy5weSBcCiAgCWdkYi9GcmFtZUl0ZXJh dG9yLnB5IFwKICAJZ2RiL0ZyYW1lRGVjb3JhdG9yLnB5IFwKQEAgLTEzLDE4ICsxMywxOCBAQCBJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4K ICAJZ2RiL3R5cGVzLnB5IFwKICAJZ2RiL3ByaW50aW5nLnB5IFwKICAJZ2RiL3Vud2luZGVyLnB5 IFwKLUBAIC03Niw2ICs3OCw3IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCitAQCAtNzcsNiArNzks NyBAQAogIAlnZGIvY29tbWFuZC9wcmV0dHlfcHJpbnRlcnMucHkgXAogIAlnZGIvY29tbWFuZC9w cm9tcHQucHkgXAogIAlnZGIvY29tbWFuZC9leHBsb3JlLnB5IFwKICsJZ2RiL2NvbW1hbmQvYmFj a3RyYWNlLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5IFwKKyAJZ2RiL2Z1bmN0aW9u L2FzX3N0cmluZy5weSBcCiAgCWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkgXAotIAlnZGIvZnVu Y3Rpb24vc3RyZm5zLnB5IFwKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24v bGliL2dkYi9GcmFtZVdyYXBwZXIucHkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv cHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CTIwMTUtMDUtMzEgMTg6MDU6 NTguNDg0ODQxNjYxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9s aWIvZ2RiL0ZyYW1lV3JhcHBlci5weQkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2OTE5ODg1OSArMDIw MAogQEAgLTAsMCArMSwxMjIgQEAKICsjIFdyYXBwZXIgQVBJIGZvciBmcmFtZXMuCiArCkBAIC0x NDgsMTAgKzE0OCwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xp Yi9nZGIvRnJhbWVXcmFwcGVyLnB5CiArCiArICAgIGRlZiBfX2dldGF0dHJfXyAoc2VsZiwgbmFt ZSk6CiArICAgICAgICByZXR1cm4gZ2V0YXR0ciAoc2VsZi5mcmFtZSwgbmFtZSkKLUluZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNl LnB5CTIwMTUtMDUtMzEgMTg6MDU6NTguNDg0ODQxNjYxICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5weQkyMDE2LTA3LTAzIDE2OjMy OjE3Ljg2OTE5ODg1OSArMDIwMAogQEAgLTAsMCArMSw0MiBAQAogKyMgRmlsdGVyaW5nIGJhY2t0 cmFjZS4KICsKQEAgLTE5NSwxMCArMTk1LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKICsgICAgICAgIHJldHVybiBpdGVyCiAr ICAgIHJldHVybiBvbGRfZnJhbWVfZmlsdGVyIChpdGVyKQogKwotSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNl LnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29t bWFuZC9iYWNrdHJhY2UucHkJMjAxNS0wNS0zMSAxODowNTo1OC40ODQ4NDE2NjEgKzAyMDAKKysr KyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJh Y2UucHkJMjAxNi0wNy0wMyAxNjozMjoxNy44NjkxOTg4NTkgKzAyMDAKIEBAIC0wLDAgKzEsMTA2 IEBACiArIyBOZXcgYmFja3RyYWNlIGNvbW1hbmQuCiArCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRy YW4tc3RyaWRlLWludGVsLTFvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9m Ni5wYXRjaAppbmRleCBiMWMxMzFkLi4yMTAxY2RkIDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1z dHJpZGUtaW50ZWwtMW9mNi5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9m Ni5wYXRjaApAQCAtMSw3ICsxLDEwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBh dGNoZXMvMjAxNi0wMi9tc2cwMDg0My5odG1sCi1TdWJqZWN0OiBbUEFUQ0ggdjIgMS82XSBmb3J0 cmFuOiBhbGxvdyBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMKK1JFOiBbcGluZ10gW1BBVENI IHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRl cworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5 Lmh0bWwKIAorRnJvbSA5OTM4MzQ0NjlmMWU2NGU1NDYxZTFlMWJlZjkxN2ZkMzg4ZmU0MjhlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3Rv cGgudC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBUaHUsIDEyIE5vdiAyMDE1IDE1OjQ1OjUy ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMS82XSBmb3J0cmFuOiBhbGxvdyBtdWx0aS1kaW1lbnNp b25hbCBzdWJhcnJheXMKIAogQWRkIGFuIGFyZ3VtZW50IGNvdW50IGZvciBzdWJyYW5nZSBleHBy ZXNzaW9ucyBpbiBGb3J0cmFuLgogQmFzZWQgb24gdGhlIGNvdW50ZWQgdmFsdWUgY2FsY3VsYXRl IGEgbmV3IGFycmF5IHdpdGggdGhlCkBAIC0zNiwxNyArMzksMTcgQEAgbmV3PiAkMyA9ICggKCAy MSwgMzEsIDQxKSAoIDIyLCAzMiwgNDIpICggMjMsIDMzLCA0MykgKQogCiBTaWduZWQtb2ZmLWJ5 OiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KIC0t LQotIGdkYi9ldmFsLmMgICB8IDMwOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLQorIGdkYi9ldmFsLmMgICB8IDMxNCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogIGdkYi9m LWV4cC55ICB8ICAgMiArCi0gZ2RiL3ZhbG9wcy5jIHwgMTU3ICsrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLQorIGdkYi92YWxvcHMuYyB8IDE1OSArKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0KICBnZGIvdmFsdWUuaCAgfCAgIDIgKwotIDQgZmlsZXMgY2hhbmdlZCwgMzc1IGluc2Vy dGlvbnMoKyksIDk1IGRlbGV0aW9ucygtKQorIDQgZmlsZXMgY2hhbmdlZCwgMzgwIGluc2VydGlv bnMoKyksIDk3IGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9l dmFsLmMKLWluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0Ci0tLS0gYS9nZGIvZXZhbC5jCi0r KysgYi9nZGIvZXZhbC5jCi1AQCAtMzk5LDI5ICszOTksMjUzIEBAIGluaXRfYXJyYXlfZWxlbWVu dCAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IHZhbHVlICplbGVtZW50LAorSW5kZXg6IGdk Yi03LjExLjkwLjIwMTYwODA3L2dkYi9ldmFsLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS45 MC4yMDE2MDgwNy5vcmlnL2dkYi9ldmFsLmMJMjAxNi0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkg KzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvZXZhbC5jCTIwMTYtMDgtMDcgMjI6 MDg6MjEuNzA4Njg4MjU5ICswMjAwCitAQCAtMzk5LDI5ICszOTksMjU0IEBACiAgICByZXR1cm4g aW5kZXg7CiAgfQogIApAQCAtNjYsNDEgKzY5LDQ0IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYg MTAwNjQ0CiAtICBpbnQgcGMgPSAoKnBvcykgKyAxOwogKyAgaW50IGksIGRpbV9jb3VudCA9IDA7 CiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKLSAgIHN0cnVjdCB0eXBlICpyYW5n ZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfSU5ERVhfVFlQRSAodmFsdWVfdHlwZSAoYXJyYXkpKSk7 Ci0tICBlbnVtIGY5MF9yYW5nZV90eXBlIHJhbmdlX3R5cGUKLS0gICAgPSAoZW51bSBmOTBfcmFu Z2VfdHlwZSkgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKKy0gIHN0 cnVjdCB0eXBlICpyYW5nZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfSU5ERVhfVFlQRSAodmFsdWVf dHlwZSAoYXJyYXkpKSk7CistICBlbnVtIHJhbmdlX3R5cGUgcmFuZ2VfdHlwZQorLSAgICA9IChl bnVtIHJhbmdlX3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7 CiAtIAogLSAgKnBvcyArPSAzOwogKyAgc3RydWN0IHZhbHVlICpuZXdfYXJyYXkgPSBhcnJheTsK ICsgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo bmV3X2FycmF5KSk7Ci0rICBzdHJ1Y3QgdHlwZSAqdGVtcF90eXBlOworKyAgc3RydWN0IHR5cGUg KmVsdF90eXBlOworKworKyAgdHlwZWRlZiBzdHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlCisrICB7Cisr ICAgIGVudW0gcmFuZ2VfdHlwZSBmOTBfcmFuZ2VfdHlwZTsKKysgICAgTE9OR0VTVCBsb3csIGhp Z2g7CisrICB9IHN1YnNjcmlwdF9yYW5nZTsKKysKKysgIHR5cGVkZWYgZW51bSBzdWJzY3JpcHRf a2luZAorKyAgeworKyAgICBTVUJTQ1JJUFRfUkFOR0UsICAgIC8qIGUuZy4gIihsb3dib3VuZDpo aWdoYm91bmQpIiAgKi8KKysgICAgU1VCU0NSSVBUX0lOREVYICAgIC8qIGUuZy4gIihsaXRlcmFs KSIgICovCisrICB9IGtpbmQ7CiArCiArICAvKiBMb2NhbCBzdHJ1Y3QgdG8gaG9sZCB1c2VyIGRh dGEgZm9yIEZvcnRyYW4gc3ViYXJyYXkgZGltZW5zaW9ucy4gICovCiArICBzdHJ1Y3Qgc3Vic2Ny aXB0X3N0b3JlCiArICB7CiArICAgIC8qIEZvciBldmVyeSBkaW1lbnNpb24sIHdlIGFyZSBlaXRo ZXIgd29ya2luZyBvbiBhIHJhbmdlIG9yIGFuIGluZGV4CiArICAgICAgIGV4cHJlc3Npb24sIHNv IHdlIHN0b3JlIHRoaXMgaW5mbyBzZXBhcmF0ZWx5IGZvciBsYXRlci4gICovCi0rICAgIGVudW0K LSsgICAgewotKyAgICAgIFNVQlNDUklQVF9SQU5HRSwgICAgLyogZS5nLiAiKGxvd2JvdW5kOmhp Z2hib3VuZCkiICAqLwotKyAgICAgIFNVQlNDUklQVF9JTkRFWCAgICAvKiBlLmcuICIobGl0ZXJh bCkiICAqLwotKyAgICB9IGtpbmQ7CisrICAgIGVudW0gc3Vic2NyaXB0X2tpbmQga2luZDsKICsK ICsgICAgLyogV2UgYWxzbyBzdG9yZSBlaXRoZXIgdGhlIGxvd2VyIGFuZCB1cHBlciBib3VuZCBp bmZvLCBvciB0aGUgaW5kZXgKICsgICAgICAgbnVtYmVyLiAgQmVmb3JlIGV2YWx1YXRpb24gb2Yg dGhlIGlucHV0IHZhbHVlcywgd2UgZG8gbm90IGtub3cgaWYgd2UgYXJlCiArICAgICAgIGFjdHVh bGx5IHdvcmtpbmcgb24gYSByYW5nZSBvZiByYW5nZXMsIG9yIGFuIGluZGV4IGluIGEgcmFuZ2Uu ICBTbyBhcyBhCiArICAgICAgIGZpcnN0IHN0ZXAgd2Ugc3RvcmUgYWxsIGlucHV0IGluIGEgdW5p b24uICBUaGUgYXJyYXkgY2FsY3VsYXRpb24gaXRzZWxmCiArICAgICAgIGRlYWxzIHdpdGggdGhp cyBsYXRlciBvbi4gICovCi0rICAgIHVuaW9uCisrICAgIHVuaW9uIGVsZW1lbnRfcmFuZ2UKICsg ICAgewotKyAgICAgIHN0cnVjdCBzdWJzY3JpcHRfcmFuZ2UKLSsgICAgICB7Ci0rICAgICAgICBl bnVtIGY5MF9yYW5nZV90eXBlIGY5MF9yYW5nZV90eXBlOwotKyAgICAgICAgTE9OR0VTVCBsb3cs IGhpZ2g7Ci0rICAgICAgfQotKyAgICAgIHJhbmdlOworKyAgICAgIHN1YnNjcmlwdF9yYW5nZSBy YW5nZTsKICsgICAgICBMT05HRVNUIG51bWJlcjsKLSsgICAgfTsKKysgICAgfSBVOwogKyAgfSAq c3Vic2NyaXB0X2FycmF5OwogKwogKyAgLyogQ2hlY2sgaWYgdGhlIG51bWJlciBvZiBhcmd1bWVu dHMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgbWF0Y2hlcwpAQCAtMTA5LDcgKzExNSw3IEBAIGluZGV4 IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiArICBpZiAobmFyZ3MgIT0gY2FsY19mNzdfYXJyYXlf ZGltcyAodmFsdWVfdHlwZSAobmV3X2FycmF5KSkpCiArICAgIGVycm9yIChfKCJXcm9uZyBudW1i ZXIgb2Ygc3Vic2NyaXB0cyIpKTsKICsKLSsgIHN1YnNjcmlwdF9hcnJheSA9IGFsbG9jYSAoc2l6 ZW9mICgqc3Vic2NyaXB0X2FycmF5KSAqIG5hcmdzKTsKKysgIHN1YnNjcmlwdF9hcnJheSA9IChz dHJ1Y3Qgc3Vic2NyaXB0X3N0b3JlKikgYWxsb2NhIChzaXplb2YgKCpzdWJzY3JpcHRfYXJyYXkp ICogbmFyZ3MpOwogKwogKyAgLyogUGFyc2UgdGhlIHVzZXIgaW5wdXQgaW50byB0aGUgU1VCU0NS SVBUX0FSUkFZIHRvIHN0b3JlIGl0LiAgV2UgbmVlZAogKyAgICAgdG8gZXZhbHVhdGUgaXQgZmly c3QsIGFzIHRoZSBpbnB1dCBpcyBmcm9tIGxlZnQtdG8tcmlnaHQuICBUaGUKQEAgLTEyOCwxNiAr MTM0LDIwIEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAtICAgIGxvd19ib3VuZCA9 IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9z aWRlKSk7CiArICAgICAgLyogVGhlIHVzZXIgaW5wdXQgaXMgYSByYW5nZSwgd2l0aCBvciB3aXRo b3V0IGxvd2VyIGFuZCB1cHBlciBib3VuZC4KICsJIEUuZy46ICJwIGFycnkoMjo1KSIsICJwIGFy cnkoIDo1KSIsICJwIGFycnkoIDogKSIsIGV0Yy4gICovCi0rICAgICAgaWYgKGV4cC0+ZWx0c1sq cG9zXS5vcGNvZGUgPT0gT1BfRjkwX1JBTkdFKQorKyAgICAgIGlmIChleHAtPmVsdHNbKnBvc10u b3Bjb2RlID09IE9QX1JBTkdFKQogKwl7CiArCSAgaW50IHBjID0gKCpwb3MpICsgMTsKLSsJICBz dHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlICpyYW5nZTsKLSsKKysJICBzdWJzY3JpcHRfcmFuZ2UgKnJh bmdlOworIAorLSAgaWYgKHJhbmdlX3R5cGUgPT0gSElHSF9CT1VORF9ERUZBVUxUIHx8IHJhbmdl X3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQorLSAgICBoaWdoX2JvdW5kID0gVFlQRV9ISUdI X0JPVU5EIChyYW5nZSk7CistICBlbHNlCistICAgIGhpZ2hfYm91bmQgPSB2YWx1ZV9hc19sb25n IChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSkpOwogKwkgIGlu ZGV4LT5raW5kID0gU1VCU0NSSVBUX1JBTkdFOwotKwkgIHJhbmdlID0gJmluZGV4LT5yYW5nZTsK KysJICByYW5nZSA9ICZpbmRleC0+VS5yYW5nZTsKICsKICsJICAqcG9zICs9IDM7Ci0rCSAgcmFu Z2UtPmY5MF9yYW5nZV90eXBlID0gbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2Nv bnN0KTsKKysJICByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPSAoZW51bSByYW5nZV90eXBlKSBsb25n ZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29uc3QpOwogKwogKwkgIC8qIElmIGEgbG93 ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB0aGUgYml0IGhhcyBiZWVuCiArCSAg ICAgc2V0IGFuZCB3ZSBjYW4gYXNzaWduIHRoZSB2YWx1ZSBmcm9tIHRoZSBlbHQgc3RhY2suICBT YW1lIGZvcgpAQCAtMTU1LDE3ICsxNjUsMTMgQEAgaW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAxMDA2 NDQKICsgICAgICBlbHNlCiArCXsKICsJICBzdHJ1Y3QgdmFsdWUgKnZhbDsKLSAKLS0gIGlmIChy YW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVCB8fCByYW5nZV90eXBlID09IEJPVEhfQk9V TkRfREVGQVVMVCkKLS0gICAgaGlnaF9ib3VuZCA9IFRZUEVfSElHSF9CT1VORCAocmFuZ2UpOwot LSAgZWxzZQotLSAgICBoaWdoX2JvdW5kID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhw IChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpKTsKKysKICsJICBpbmRleC0+a2luZCA9IFNV QlNDUklQVF9JTkRFWDsKICsKICsJICAvKiBFdmFsdWF0ZSBlYWNoIHN1YnNjcmlwdDsgaXQgbXVz dCBiZSBhIGxlZ2FsIGludGVnZXIgaW4gRjc3LiAgVGhpcwogKwkgICAgIGVuc3VyZXMgdGhlIHZh bGlkaXR5IG9mIHRoZSBwcm92aWRlZCBpbmRleC4gICovCiArCSAgdmFsID0gZXZhbHVhdGVfc3Vi ZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotKwkgIGluZGV4LT5udW1iZXIg PSB2YWx1ZV9hc19sb25nICh2YWwpOworKwkgIGluZGV4LT5VLm51bWJlciA9IHZhbHVlX2FzX2xv bmcgKHZhbCk7CiArCX0KICsKICsgICAgfQpAQCAtMTg4LDcgKzE5NCw3IEBAIGluZGV4IDc4YWQ5 NDYuLmM5ZjMyNWYgMTAwNjQ0CiArCSAgICAgICB0cmVhdCBhbnkgc3Vic2VxdWVudCB1c2VyIGVu dHJ5IGFzIGEgcmFuZ2UuICBXZSBzaW1wbHkKICsJICAgICAgIGluY3JlbWVudCBESU1fQ09VTlQg d2hpY2ggdGVsbHMgdXMgaG93IG1hbnkgdGltZXMgd2UgYXJlCiArCSAgICAgICBjYWxsaW5nIFZB TFVFX1NMSUNFXzEuICAqLwotKwkgICAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2UgPSAm aW5kZXgtPnJhbmdlOworKwkgICAgc3Vic2NyaXB0X3JhbmdlICpyYW5nZSA9ICZpbmRleC0+VS5y YW5nZTsKICsKICsJICAgIC8qIElmIG5vIGxvd2VyIGJvdW5kIHdhcyBwcm92aWRlZCBieSB0aGUg dXNlciwgd2UgdGFrZSB0aGUKICsJICAgICAgIGRlZmF1bHQgYm91bmRhcnkuICBTYW1lIGZvciB0 aGUgaGlnaCBib3VuZC4gICovCkBAIC0yMzIsMTkgKzIzOCwxOSBAQCBpbmRleCA3OGFkOTQ2Li5j OWYzMjVmIDEwMDY0NAogKwkgICAgICAgdG8gZ2V0IHRoZSB2YWx1ZSBvZmZzZXQgcmlnaHQuICAq LwogKwkgICAgaWYgKGRpbV9jb3VudCA9PSAwKQogKwkgICAgICBuZXdfYXJyYXkKLSsJICAgICAg ICA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAobmV3X2FycmF5LCBpbmRleC0+bnVtYmVyLAor KwkgICAgICAgID0gdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChuZXdfYXJyYXksIGluZGV4LT5V Lm51bWJlciwKICsJCQkJCSAgICBmNzdfZ2V0X2xvd2VyYm91bmQgKHZhbHVlX3R5cGUKICsJCQkJ CQkJCSAgKG5ld19hcnJheSkpKTsKICsJICAgIGVsc2UKICsJICAgICAgewogKwkJLyogQ2hlY2sg Zm9yIHZhbGlkIGluZGV4IGlucHV0LiAgKi8KLSsJCWlmIChpbmRleC0+bnVtYmVyIDwgVFlQRV9M T1dfQk9VTkQgKGluZGV4X3R5cGUpCi0rCQkgICAgfHwgaW5kZXgtPm51bWJlciA+IFRZUEVfSElH SF9CT1VORCAoaW5kZXhfdHlwZSkpCisrCQlpZiAoaW5kZXgtPlUubnVtYmVyIDwgVFlQRV9MT1df Qk9VTkQgKGluZGV4X3R5cGUpCisrCQkgICAgfHwgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdI X0JPVU5EIChpbmRleF90eXBlKSkKICsJCSAgZXJyb3IgKF8oImVycm9yIG5vIHN1Y2ggdmVjdG9y IGVsZW1lbnQiKSk7CiArCiArCQlkaW1fY291bnQrKzsKICsJCW5ld19hcnJheSA9IHZhbHVlX3Ns aWNlXzEgKG5ld19hcnJheSwKLSsJCQkJCSAgIGxvbmdlc3RfdG9faW50IChpbmRleC0+bnVtYmVy KSwKKysJCQkJCSAgIGxvbmdlc3RfdG9faW50IChpbmRleC0+VS5udW1iZXIpLAogKwkJCQkJICAg MSwgLyogbGVuZ3RoIGlzICcxJyBlbGVtZW50ICAqLwogKwkJCQkJICAgZGltX2NvdW50KTsKICsJ ICAgICAgfQpAQCAtMjcwLDkgKzI3Niw4IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0 CiArICBpZiAoZGltX2NvdW50ID4gMSkKICsgICAgewogKyAgICAgIHN0cnVjdCB2YWx1ZSAqdiA9 IE5VTEw7Ci0gCi0tICByZXR1cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3dfYm91bmQsIGhpZ2hf Ym91bmQgLSBsb3dfYm91bmQgKyAxKTsKLSsgICAgICB0ZW1wX3R5cGUgPSBUWVBFX1RBUkdFVF9U WVBFICh2YWx1ZV90eXBlIChuZXdfYXJyYXkpKTsKKysKKysgICAgICBlbHRfdHlwZSA9IFRZUEVf VEFSR0VUX1RZUEUgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpOwogKwogKyAgICAgIC8qIEV2ZXJ5 IFNVQlNDUklQVF9SQU5HRSBpbiB0aGUgdXNlciBpbnB1dCBzaWduaWZpZXMgYW4gYWN0dWFsIHJh bmdlIGluCiArCSB0aGUgb3V0cHV0IGFycmF5LiAgU28gd2UgdHJhdmVyc2UgdGhlIFNVQlNDUklQ VF9BUlJBWSBhZ2FpbiwgbG9va2luZwpAQCAtMjg5LDI2ICsyOTQsMjYgQEAgaW5kZXggNzhhZDk0 Ni4uYzlmMzI1ZiAxMDA2NDQKICsKICsJICAgICAgcmFuZ2VfdHlwZQogKwkJPSBjcmVhdGVfc3Rh dGljX3JhbmdlX3R5cGUgKE5VTEwsCi0rCQkJCSAgICAgdGVtcF90eXBlLAotKwkJCQkgICAgIDEs Ci0rCQkJCSAgICAgaW5kZXgtPnJhbmdlLmhpZ2ggLSBpbmRleC0+cmFuZ2UubG93ICsgMSk7Cisr CQkJCQkgICAgZWx0X3R5cGUsCisrCQkJCQkgICAgMSwKKysJCQkJCSAgICBpbmRleC0+VS5yYW5n ZS5oaWdoCisrCQkJCQkgICAgICAtIGluZGV4LT5VLnJhbmdlLmxvdyArIDEpOwogKwogKwkgICAg ICBpbnRlcmltX2FycmF5X3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwKLSsJCQkJCQkg ICAgICB0ZW1wX3R5cGUsCisrCQkJCQkJICAgICAgZWx0X3R5cGUsCiArCQkJCQkJICAgICAgcmFu Z2VfdHlwZSk7CiArCi0rCSAgICAgIC8qIEZvciBzb21lIHJlYXNvbiB0aGUgdHlwZSBjb2RlIG9m IHRoZSBjb250ZW50cyBpcyBtaXNzaW5nLCBzbwotKwkJIHJlc2V0IGl0IGZyb20gdGhlIG9yaWdp bmFsIGFycmF5LiAgKi8KICsJICAgICAgVFlQRV9DT0RFIChpbnRlcmltX2FycmF5X3R5cGUpCiAr CQk9IFRZUEVfQ09ERSAodmFsdWVfdHlwZSAobmV3X2FycmF5KSk7Ci0rCisgCistICByZXR1cm4g dmFsdWVfc2xpY2UgKGFycmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAx KTsKICsJICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlIChpbnRlcmltX2FycmF5X3R5cGUpOwogKwot KwkgICAgICB0ZW1wX3R5cGUgPSB2YWx1ZV90eXBlICh2KTsKKysJICAgICAgZWx0X3R5cGUgPSB2 YWx1ZV90eXBlICh2KTsKICsJICAgIH0KICsKICsJfQotKyAgICAgIHZhbHVlX2NvbnRlbnRzX2Nv cHkgKHYsIDAsIG5ld19hcnJheSwgMCwgVFlQRV9MRU5HVEggKHRlbXBfdHlwZSkpOworKyAgICAg IHZhbHVlX2NvbnRlbnRzX2NvcHkgKHYsIDAsIG5ld19hcnJheSwgMCwgVFlQRV9MRU5HVEggKGVs dF90eXBlKSk7CiArICAgICAgcmV0dXJuIHY7CiArICAgIH0KICsKQEAgLTMxNiwyNCArMzIxLDI0 IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAgfQogIAogIAotQEAgLTE4MTAsMTQg KzIwMzQsMTEgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0 X3R5cGUsCitAQCAtMTgxMCwxNCArMjAzNSwxMSBAQAogICAgICAgIHN3aXRjaCAoY29kZSkKICAJ ewogIAljYXNlIFRZUEVfQ09ERV9BUlJBWToKLS0JICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29k ZSA9PSBPUF9GOTBfUkFOR0UpCistCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1Bf UkFOR0UpCiAtCSAgICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywg bm9zaWRlKTsKIC0JICBlbHNlCiAtCSAgICBnb3RvIG11bHRpX2Y3N19zdWJzY3JpcHQ7CiArCSAg cmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5hcmdzLCBub3NpZGUp OwogIAogIAljYXNlIFRZUEVfQ09ERV9TVFJJTkc6Ci0gCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5v cGNvZGUgPT0gT1BfRjkwX1JBTkdFKQorIAkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09 IE9QX1JBTkdFKQogLQkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBw b3MsIG5vc2lkZSk7CiArCSAgICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAs IHBvcywgMSwgbm9zaWRlKTsKICAJICBlbHNlCiAgCSAgICB7CiAgCSAgICAgIGFyZzIgPSBldmFs dWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoZXhwLCBwb3MsIG5vc2lkZSk7Ci1AQCAtMjIyMiw0 OSArMjQ0Myw2IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVj dF90eXBlLAorQEAgLTIyMjMsNDkgKzI0NDUsNiBAQAogIAl9CiAgICAgICAgcmV0dXJuIChhcmcx KTsKICAKQEAgLTM4Myw3ICszODgsNyBAQCBpbmRleCA3OGFkOTQ2Li5jOWYzMjVmIDEwMDY0NAog ICAgICBjYXNlIEJJTk9QX0xPR0lDQUxfQU5EOgogICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJl eHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSk7CiAgICAgICAgaWYgKG5vc2lkZSA9PSBF VkFMX1NLSVApCi1AQCAtMzEyMSw2ICszMjk5LDkgQEAgY2FsY19mNzdfYXJyYXlfZGltcyAoc3Ry dWN0IHR5cGUgKmFycmF5X3R5cGUpCitAQCAtMzEyMyw2ICszMzAyLDkgQEAKICAgIGludCBuZGlt ZW4gPSAxOwogICAgc3RydWN0IHR5cGUgKnRtcF90eXBlOwogIApAQCAtMzkzLDExICszOTgsMTEg QEAgaW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAxMDA2NDQKICAgIGlmICgoVFlQRV9DT0RFIChhcnJh eV90eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkpKQogICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRp bWVuc2lvbnMgZm9yIGEgbm9uLWFycmF5IHR5cGUiKSk7CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL2Yt ZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXggNGZhYWMzMi4uOTM0M2FiYiAxMDA2NDQKLS0tLSBh L2dkYi9mLWV4cC55Ci0rKysgYi9nZGIvZi1leHAueQotQEAgLTMwOCw2ICszMDgsOCBAQCBhcmds aXN0IDoJc3VicmFuZ2UKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvZi1leHAueQor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2YtZXhwLnkJMjAx Ni0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvZi1leHAueQkyMDE2LTA4LTA3IDIyOjA4OjIxLjcwOTY4ODI2OCArMDIwMAorQEAgLTI1 Myw2ICsyNTMsOCBAQAogICAgIAogIGFyZ2xpc3QJOglhcmdsaXN0ICcsJyBleHAgICAlcHJlYyBB Qk9WRV9DT01NQQogIAkJCXsgYXJnbGlzdF9sZW4rKzsgfQpAQCAtNDA2LDExICs0MTEsMTEgQEAg aW5kZXggNGZhYWMzMi4uOTM0M2FiYiAxMDA2NDQKICAJOwogIAogIC8qIFRoZXJlIGFyZSBmb3Vy IHNvcnRzIG9mIHN1YnJhbmdlIHR5cGVzIGluIEY5MC4gICovCi1kaWZmIC0tZ2l0IGEvZ2RiL3Zh bG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCi1pbmRleCA1YTI0NGE5Li4wOWVhODc3IDEwMDY0NAotLS0t IGEvZ2RiL3ZhbG9wcy5jCi0rKysgYi9nZGIvdmFsb3BzLmMKLUBAIC0zNzU5LDU2ICszNzU5LDE1 MSBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxh bmcpCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3ZhbG9wcy5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdmFsb3BzLmMJMjAxNi0wOC0wNyAy MjowNjo0NS4yNjY4MzY2MTkgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdmFs b3BzLmMJMjAxNi0wOC0wNyAyMjoxMzoyMi4wODMzNDA3NTAgKzAyMDAKK0BAIC0zNzc1LDU2ICsz Nzc1LDE1NCBAQAogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAq YXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCkKICB7CkBAIC00MjAsNyArNDI1LDkgQEAg aW5kZXggNWEyNDRhOS4uMDllYTg3NyAxMDA2NDQKICsgIHJldHVybiB2YWx1ZV9zbGljZV8xIChh cnJheSwgbG93Ym91bmQsIGxlbmd0aCwgMSk7CiArfQogKwotKy8qIENBTExfQ09VTlQgaXMgdXNl ZCB0byBkZXRlcm1pbmUgaWYgd2UgYXJlIGNhbGxpbmcgdGhlIGZ1bmN0aW9uIG9uY2UsIGUuZy4K KysvKiBWQUxVRV9TTElDRV8xIGlzIGNhbGxlZCBmb3IgZWFjaCBhcnJheSBkaW1lbnNpb24gdG8g Y2FsY3VsYXRlIHRoZSBudW1iZXIKKysgICBvZiBlbGVtZW50cyBhcyBkZWZpbmVkIGJ5IHRoZSBz dWJzY3JpcHQgZXhwcmVzc2lvbi4KKysgICBDQUxMX0NPVU5UIGlzIHVzZWQgdG8gZGV0ZXJtaW5l IGlmIHdlIGFyZSBjYWxsaW5nIHRoZSBmdW5jdGlvbiBvbmNlLCBlLmcuCiArICAgd2UgYXJlIHdv cmtpbmcgb24gdGhlIGN1cnJlbnQgZGltZW5zaW9uIG9mIEFSUkFZLCBvciBpZiB3ZSBhcmUgY2Fs bGluZwogKyAgIHRoZSBmdW5jdGlvbiByZXBlYXRlZGx5LiAgSW4gdGhlIGxhdGVyIGNhc2Ugd2Ug bmVlZCB0byB0YWtlIGVsZW1lbnRzCiArICAgZnJvbSB0aGUgVEFSR0VUX1RZUEUgb2YgQVJSQVku CkBAIC00NDAsNyArNDQ3LDggQEAgaW5kZXggNWEyNDRhOS4uMDllYTg3NyAxMDA2NDQKICsgIHN0 cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkp KTsKICsgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VU X1RZUEUgKGFycmF5X3R5cGUpKTsKICsgIHVuc2lnbmVkIGludCBlbHRfc2l6ZSwgZWx0X29mZnM7 Ci0rICBMT05HRVNUIGVsdF9zdHJpZGUsIGFyeV9oaWdoX2JvdW5kLCBhcnlfbG93X2JvdW5kOwor KyAgLyogQVRUUklCVVRFX1VOVVNFRDogVkxBIGJ1ZzogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9t bC9nZGItcGF0Y2hlcy8yMDE2LTA4L21zZzAwMDk5Lmh0bWwgKi8KKysgIExPTkdFU1QgZWx0X3N0 cmlkZSBBVFRSSUJVVEVfVU5VU0VELCBhcnlfaGlnaF9ib3VuZCwgYXJ5X2xvd19ib3VuZDsKICsg IHN0cnVjdCB2YWx1ZSAqdjsKICsgIGludCBzbGljZV9yYW5nZV9zaXplLCBpID0gMCwgcm93X2Nv dW50ID0gMSwgZWxlbV9jb3VudCA9IDE7CiAgCkBAIC00NTQsNiArNDYyLDEwIEBAIGluZGV4IDVh MjQ0YTkuLjA5ZWE4NzcgMTAwNjQ0CiAtICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChh cnJheV90eXBlKTsKIC0gIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbG93 ZXJib3VuZCwgJnVwcGVyYm91bmQpIDwgMCkKIC0gICAgZXJyb3IgKF8oInNsaWNlIGZyb20gYmFk IGFycmF5IG9yIGJpdHN0cmluZyIpKTsKKy0KKy0gIGlmIChsb3dib3VuZCA8IGxvd2VyYm91bmQg fHwgbGVuZ3RoIDwgMAorLSAgICAgIHx8IGxvd2JvdW5kICsgbGVuZ3RoIC0gMSA+IHVwcGVyYm91 bmQpCistICAgIGVycm9yIChfKCJzbGljZSBvdXQgb2YgcmFuZ2UiKSk7CiArICBhcnlfbG93X2Jv dW5kID0gVFlQRV9MT1dfQk9VTkQgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwogKyAg YXJ5X2hpZ2hfYm91bmQgPSBUWVBFX0hJR0hfQk9VTkQgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlf dHlwZSkpOwogKwpAQCAtNDc5LDEwICs0OTEsNyBAQCBpbmRleCA1YTI0NGE5Li4wOWVhODc3IDEw MDY0NAogKwkmJiAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90 eXBlKQogKwkgICAgICAmJiBlbHRfb2ZmcyA+PSBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkpKQog KyAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLSAKLS0gIGlmIChsb3di b3VuZCA8IGxvd2VyYm91bmQgfHwgbGVuZ3RoIDwgMAotLSAgICAgIHx8IGxvd2JvdW5kICsgbGVu Z3RoIC0gMSA+IHVwcGVyYm91bmQpCi0tICAgIGVycm9yIChfKCJzbGljZSBvdXQgb2YgcmFuZ2Ui KSk7CisrCiArICAvKiBDQUxMX0NPVU5UIGlzIDEgd2hlbiB3ZSBhcmUgZGVhbGluZyBlaXRoZXIg d2l0aCB0aGUgaGlnaGVzdCBkaW1lbnNpb24KICsgICAgIG9mIHRoZSBhcnJheSwgb3IgYSBvbmUg ZGltZW5zaW9uYWwgYXJyYXkuICBTZXQgUkFOR0VfVFlQRSBhY2NvcmRpbmdseS4KICsgICAgIElu IGJvdGggY2FzZXMgd2UgY2FsY3VsYXRlIGhvdyBtYW55IHJvd3MvZWxlbWVudHMgd2lsbCBiZSBp biB0aGUgb3V0cHV0CkBAIC01MTUsMTEgKzUyNCwxNiBAQCBpbmRleCA1YTI0NGE5Li4wOWVhODc3 IDEwMDY0NAogKyAgICAgIGRvbmUgd2l0aCBpdC4gICovCiAgCiArICBzbGljZV9yYW5nZV90eXBl ID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLCBUWVBFX1RBUkdFVF9UWVBFIChyYW5n ZV90eXBlKSwKLSsJCQkJCWFyeV9sb3dfYm91bmQsIHNsaWNlX3JhbmdlX3NpemUpOworKwkJCQkJ ICAgICAgIGFyeV9sb3dfYm91bmQsIHNsaWNlX3JhbmdlX3NpemUpOwogICAgewogLSAgICBzdHJ1 Y3QgdHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CiAt ICAgIExPTkdFU1Qgb2Zmc2V0CiAtICAgICAgPSAobG93Ym91bmQgLSBsb3dlcmJvdW5kKSAqIFRZ UEVfTEVOR1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKy0KKy0gICAgc2xpY2Vf dHlwZSA9IGNyZWF0ZV9hcnJheV90eXBlICgoc3RydWN0IHR5cGUgKikgTlVMTCwKKy0JCQkJICAg IGVsZW1lbnRfdHlwZSwKKy0JCQkJICAgIHNsaWNlX3JhbmdlX3R5cGUpOworLSAgICBUWVBFX0NP REUgKHNsaWNlX3R5cGUpID0gVFlQRV9DT0RFIChhcnJheV90eXBlKTsKICsgICAgc3RydWN0IHR5 cGUgKmVsZW1lbnRfdHlwZTsKICsKICsgICAgLyogV2hlbiBDQUxMX0NPVU5UIGVxdWFscyAxIHdl IGNhbiB1c2UgdGhlIGxlZ2FjeSBjb2RlIGZvciBzdWJhcnJheXMuICAqLwpAQCAtNTI3LDEwICs1 NDEsOCBAQCBpbmRleCA1YTI0NGE5Li4wOWVhODc3IDEwMDY0NAogKyAgICAgIHsKICsJZWxlbWVu dF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CiAgCi0tICAgIHNsaWNlX3R5 cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoKHN0cnVjdCB0eXBlICopIE5VTEwsCi0tCQkJCSAgICBl bGVtZW50X3R5cGUsCi0tCQkJCSAgICBzbGljZV9yYW5nZV90eXBlKTsKLS0gICAgVFlQRV9DT0RF IChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7CistICAgIGlmIChWQUxVRV9M VkFMIChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkpKQorLSAgICAg IHNsaWNlID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAoc2xpY2VfdHlwZSk7CiArCXNsaWNlX3R5cGUg PSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwgZWxlbWVudF90eXBlLCBzbGljZV9yYW5nZV90eXBl KTsKICsKICsJVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7 CkBAIC01NDYsOSArNTU4LDcgQEAgaW5kZXggNWEyNDRhOS4uMDllYTg3NyAxMDA2NDQKICsJCQkJ IHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJyYXkpICsgZWx0X29mZnMsCiArCQkJCSBlbHRfc2l6 ZSAqIGxvbmdlc3RfdG9faW50IChsZW5ndGgpKTsKICsJICB9Ci0gCi0tICAgIGlmIChWQUxVRV9M VkFMIChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkpKQotLSAgICAg IHNsaWNlID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAoc2xpY2VfdHlwZSk7CisrCiArICAgICAgfQog KyAgICAvKiBXaGVuIENBTExfQ09VTlQgaXMgbGFyZ2VyIHRoYW4gMSB3ZSBhcmUgd29ya2luZyBv biBhIHJhbmdlIG9mIHJhbmdlcy4KICsgICAgICAgU28gd2UgY29weSB0aGUgcmVsZXZhbnQgZWxl bWVudHMgaW50byB0aGUgbmV3IGFycmF5IHdlIHJldHVybi4gICovCkBAIC01OTMsMTEgKzYwMywx MSBAQCBpbmRleCA1YTI0NGE5Li4wOWVhODc3IDEwMDY0NAogIH0KICAKICAvKiBDcmVhdGUgYSB2 YWx1ZSBmb3IgYSBGT1JUUkFOIGNvbXBsZXggbnVtYmVyLiAgQ3VycmVudGx5IG1vc3Qgb2YgdGhl Ci1kaWZmIC0tZ2l0IGEvZ2RiL3ZhbHVlLmggYi9nZGIvdmFsdWUuaAotaW5kZXggMmVhYzVlZi4u MzQwMDQ2MCAxMDA2NDQKLS0tLSBhL2dkYi92YWx1ZS5oCi0rKysgYi9nZGIvdmFsdWUuaAotQEAg LTEwNTYsNiArMTA1Niw4IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhcnlpbmdfdG9fc2xpY2Ug KHN0cnVjdCB2YWx1ZSAqKTsKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdmFsdWUu aAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL3ZhbHVlLmgJ MjAxNi0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2 MDgwNy9nZGIvdmFsdWUuaAkyMDE2LTA4LTA3IDIyOjA4OjIxLjcxMDY4ODI3NiArMDIwMAorQEAg LTEwNjQsNiArMTA2NCw4IEBACiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc2xpY2Ug KHN0cnVjdCB2YWx1ZSAqLCBpbnQsIGludCk7CiAgCkBAIC02MDYsNiArNjE2LDMgQEAgaW5kZXgg MmVhYzVlZi4uMzQwMDQ2MCAxMDA2NDQKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9saXRl cmFsX2NvbXBsZXggKHN0cnVjdCB2YWx1ZSAqLCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJCSAgICBz dHJ1Y3QgdHlwZSAqKTsKICAKLS0tIAotMi41LjAKLQoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFu LXN0cmlkZS1pbnRlbC0yb2Y2LnBhdGNoIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTJvZjYu cGF0Y2gKaW5kZXggYmY0ODE0My4uYjQxMDBmZSAxMDA2NDQKLS0tIGEvZ2RiLWZvcnRyYW4tc3Ry aWRlLWludGVsLTJvZjYucGF0Y2gKKysrIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTJvZjYu cGF0Y2gKQEAgLTEsMTAgKzEsMTMgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0 Y2hlcy8yMDE2LTAyL21zZzAwODQxLmh0bWwKLVN1YmplY3Q6IFtQQVRDSCB2MiAyLzZdIGZvcnRy YW46IGNvbWJpbmUgc3ViYXJyYXkgYW5kIHN0cmluZyBjb21wdXRhdGlvbgorUkU6IFtwaW5nXSBb UEFUQ0ggdjIgMC82XSBmb3J0cmFuOiBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMgd2l0aCBz dHJpZGVzCitodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNn MDAwMDkuaHRtbAogCitGcm9tIDczM2IzYjYwYmU1YzhkMjNmYTdlNDc0OThkMzVlNDcwMTUyOGYz YWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNo cmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KK0RhdGU6IEZyaSwgMTMgTm92IDIwMTUgMDk6 MDA6MzMgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzZdIGZvcnRyYW46IGNvbWJpbmUgc3ViYXJy YXkgYW5kIHN0cmluZyBjb21wdXRhdGlvbgogCi1TdHJpbmdzIG9ubHkgaGF2ZSBvbmUgZGltZW5z aW9uLCBidXQgdGhlIGVsZW1lbnQgY29tcHV0YXRpb24gaXMKLWlkZW50aWNhbCB0byB0aGUgc3Vi YXJyYXkgY29tcHV0YXRpb24gZm9yIHJhbmdlcyBhbmQgaW5kaWNlcy4KK1N0cmluZ3MgdHlwZXMg YXJlIGhhbmRsZWQgbGlrZSBhcnJheSB0eXBlcyB3aXRoIG9ubHkgb25lIGRpbWVuc2lvbi4KK1Ro ZXJlZm9yZSB0aGUgc2FtZSBhbGdvcml0aG0gdG8gY2FsY3VsYXRlIHN1YnNldHMgaXMgdXNlZC4K IAogMjAxMy0xMS0yNiAgQ2hyaXN0b3BoIFdlaW5tYW5uICA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5A aW50ZWwuY29tPgogCkBAIC0xOSwyNyArMjIsMjcgQEAgU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3Bo IFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CiAgMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCA5IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2 YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IGM5ZjMyNWYuLjE2NGQ3YWIgMTAwNjQ0CitpbmRleCAz NTgxNWE0Li41YzIwZmVlIDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwu YwotQEAgLTIwMzQsMTYgKzIwMzQsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVj dCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yMDM1LDE2ICsyMDM1LDggQEAgZXZhbHVhdGVfc3Vi ZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICAgc3dpdGNoIChj b2RlKQogIAl7CiAgCWNhc2UgVFlQRV9DT0RFX0FSUkFZOgogLQkgIHJldHVybiB2YWx1ZV9mOTBf c3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBuYXJncywgbm9zaWRlKTsKIC0KICAJY2FzZSBUWVBF X0NPREVfU1RSSU5HOgotLQkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX0Y5MF9S QU5HRSkKKy0JICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9PSBPUF9SQU5HRSkKIC0JICAg IHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCAxLCBub3NpZGUpOwog LQkgIGVsc2UKIC0JICAgIHsKIC0JICAgICAgYXJnMiA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2Nv ZXJjaW9uIChleHAsIHBvcywgbm9zaWRlKTsKIC0JICAgICAgcmV0dXJuIHZhbHVlX3N1YnNjcmlw dCAoYXJnMSwgdmFsdWVfYXNfbG9uZyAoYXJnMikpOwogLQkgICAgfQotKwkgIHJldHVybiAgdmFs dWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3MsIG5vc2lkZSk7CisrCSAgcmV0 dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5hcmdzLCBub3NpZGUpOwog IAogIAljYXNlIFRZUEVfQ09ERV9QVFI6CiAgCWNhc2UgVFlQRV9DT0RFX0ZVTkM6CiAtLSAKLTIu NS4wCisyLjUuNQogCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTNvZjYu cGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaAppbmRleCA1MGE2NTgy Li40ZTRkZTdkIDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtM29mNi5wYXRj aAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaApAQCAtMSw3ICsxLDEw IEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDg0 NS5odG1sCi1TdWJqZWN0OiBbUEFUQ0ggdjIgMy82XSBmb3J0cmFuOiBjaGFuZ2Ugc3VicmFuZ2Ug ZW51bSB0byBiaXQgZmllbGQKK1JFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVs dGktZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3YXJl Lm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSAwNThlZDll NTVkYjcyMjQ0ZmUxYzUzNDZhMTFmYTY3ZWZmNjFkMzE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQogRnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5j b20+CitEYXRlOiBNb24sIDIzIE5vdiAyMDE1IDEwOjMxOjQ0ICswMTAwCitTdWJqZWN0OiBbUEFU Q0ggMy82XSBmb3J0cmFuOiBjaGFuZ2Ugc3VicmFuZ2UgZW51bSB0byBiaXQgZmllbGQKIAogQ2hh bmdlIEZvcnRyYW4gc3VicmFuZ2UgZW51bSBmb3Igc3VicmFuZ2UgZXhwcmVzc2lvbnMgdG8KIHJl cHJlc2VudCBhIGJpdGZpZWxkIGZvciBlYXNpZXIgbWFuaXB1bGF0aW9uLiAgQ29uc2VxdWVudGx5 CkBAIC0xMiwzMSArMTUsNDEgQEAgYmVoYXZpb3VyIG9mIEdEQiBpcyB1bmNoYW5nZWQuCiAKIAkq IGV2YWwuYyAodmFsdWVfZjkwX3N1YmFycmF5KTogQ2hhbmdlIGV2YWx1YXRpb24gb2YgdGhlCiAJ c3ViYXJyYXkgYm91bmRhcmllcy4gIFNldCBib3VuZGFyaWVzIHRvIGJlIGVpdGhlciB1c2VyCi0J cHJvdmlkZWQgKGJpdCBpbiBmOTBfcmFuZ2VfdHlwZSB3YXMgc2V0KSBvciB0YWtlIHRoZQotCWRl ZmF1bHQgdmFsdWUgaWYgdGhlIGJvdW5kYXJ5IHdhcyBub3QgcHJvdmlkZWQgYnkgdGhlIHVzZXIu CisJcHJvdmlkZWQgKGJpdCBpbiByYW5nZV90eXBlIHdhcyBzZXQpLCBvciB0YWtlIHRoZSBkZWZh dWx0CisJdmFsdWUgaWYgdGhlIGJvdW5kYXJ5IHdhcyBub3QgcHJvdmlkZWQgYnkgdGhlIHVzZXIu CisJKiBleHBwcmludC5jIChwcmludF9zdWJleHBfc3RhbmRhcmQpOiBBbHRlciBib3VuZGFyeSBj b20tCisJcHV0YXRpb25zIHRvIHVzZSB1cGRhdGVkIHJhbmdlX3R5cGUgZW51bS4KKwkqIGV4cHBy aW50LmggKGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRhcmQpOiBEaXRvLgorCSogZXhwcmVzc2lvbi5o IChyYW5nZV90eXBlKTogQ2hhbmdlIHRoZSBlbnVtIHRvIHVzZSBiaXQKKwl2YWx1ZXMgZm9yIGVh Y2ggYm91bmRhcnksIGlmIHNldCBieSB0aGUgdXNlci4KIAkqIGYtZXhwLnkgKHN1YnJhbmdlKTog Q2hhbmdlIHJ1bGVzIGZvciBzdWJyYW5nZSBleHByZXNzaW9ucwogCXRvIHdyaXRlIHRoZSByZWxl dmFudCBiaXQgc2VxdWVuY2Ugb250byB0aGUgZWx0IHN0YWNrLgotCSogZi1sYW5nLmggKGY5MF9y YW5nZV90eXBlKTogQ2hhbmdlIHRoZSBlbnVtIHRvIHVzZSBiaXQKLQl2YWx1ZXMgZm9yIGVhY2gg Ym91bmRhcnksIGlmIHNldCBieSB0aGUgdXNlci4KLQkqIHBhcnNlLmMgKG9wZXJhdG9yX2xlbmd0 aF9zdGFuZGFyZCk6IEluIGNhc2Ugb2YKLQlPUF9GOTBfUkFOR0UgY2hhbmdlIHRoZSBjYWxjdWxh dGlvbiBvZiB0aGUgbnVtYmVyIG9mCi0JYXJndW1lbnRzIG9uIHRoZSBlbHQgc3RhY2ssIGRlcGVu ZGluZyBvbiB0aGUgbnVtYmVyIG9mCi0JYm91bmRhcmllcyBwcm92aWRlZCBieSB0aGUgdXNlci4K KwkqIHBhcnNlLmMgKG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCk6IEluIGNhc2Ugb2YgT1BfUkFO R0UKKwljaGFuZ2UgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBudW1iZXIgb2YJYXJndW1lbnRzIG9u IHRoZQorCWVsdCBzdGFjaywgZGVwZW5kaW5nIG9uIHRoZSBudW1iZXIgb2YgYm91bmRhcmllcyBw cm92aWRlZAorCWJ5IHRoZSB1c2VyLgorCSogcnVzdC1leHAueSAoY29udmVydF9hc3RfdG9fZXhw cmVzc2lvbik6IE1vZGlmeSBjYWxjdWxhLQorCXRpb24gb2Ygc3Vic2NyaXB0IGVsZW1lbnRzIHRv IHVzZSBhbHRlcmVkIHJhbmdlX3R5cGUuCisJKiBydXN0LWxhbmcuYyAocnVzdF9yYW5nZSk6IERp dG8uCisJKiBydXN0LWxhbmcuYyAocnVzdF9zdWJzY3JpcHQpOiBEaXRvLgogCiAKIFNpZ25lZC1v ZmYtYnk6IENocmlzdG9waCBXZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29t PgogLS0tCi0gZ2RiL2V2YWwuYyAgIHwgMTQgKysrKysrLS0tLS0tLS0KLSBnZGIvZi1leHAueSAg fCAxMSArKysrKystLS0tLQotIGdkYi9mLWxhbmcuaCB8ICA2ICsrLS0tLQotIGdkYi9wYXJzZS5j ICB8IDIxICsrKysrKysrLS0tLS0tLS0tLS0tLQotIDQgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0 aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCisgZ2RiL2V2YWwuYyAgICAgICB8IDE0ICsrKysrKy0t LS0tLS0tCisgZ2RiL2V4cHByaW50LmMgICB8IDIwICsrKysrKysrLS0tLS0tLS0tLS0tCisgZ2Ri L2V4cHJlc3Npb24uaCB8IDE1ICsrKysrKy0tLS0tLS0tLQorIGdkYi9mLWV4cC55ICAgICAgfCAx MSArKysrKystLS0tLQorIGdkYi9wYXJzZS5jICAgICAgfCAyMSArKysrKysrKy0tLS0tLS0tLS0t LS0KKyBnZGIvcnVzdC1leHAueSAgIHwgMTIgKysrLS0tLS0tLS0tCisgZ2RiL3J1c3QtbGFuZy5j ICB8IDE3ICsrKysrKysrLS0tLS0tLS0tCisgNyBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25z KCspLCA2NSBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZh bC5jCi1pbmRleCAxNjRkN2FiLi45YjhiMDUxIDEwMDY0NAoraW5kZXggNWMyMGZlZS4uNDRlODYw MCAxMDA2NDQKIC0tLSBhL2dkYi9ldmFsLmMKICsrKyBiL2dkYi9ldmFsLmMKLUBAIC00ODAsMTIg KzQ4MCwxMiBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVj dCBleHByZXNzaW9uICpleHAsCitAQCAtNDgyLDEyICs0ODIsMTIgQEAgdmFsdWVfZjkwX3N1YmFy cmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgIC8q IElmIGEgbG93ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB0aGUgYml0IGhhcyBi ZWVuCiAgCSAgICAgc2V0IGFuZCB3ZSBjYW4gYXNzaWduIHRoZSB2YWx1ZSBmcm9tIHRoZSBlbHQg c3RhY2suICBTYW1lIGZvcgogIAkgICAgIHVwcGVyIGJvdW5kLiAgKi8KQEAgLTUzLDcgKzY2LDcg QEAgaW5kZXggMTY0ZDdhYi4uOWI4YjA1MSAxMDA2NDQKICAJICAgIHJhbmdlLT5oaWdoID0gdmFs dWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKICAJCQkJCQkJICBw b3MsIG5vc2lkZSkpOwogIAl9Ci1AQCAtNTI2LDEyICs1MjYsMTAgQEAgdmFsdWVfZjkwX3N1YmFy cmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTUy OCwxMiArNTI4LDEwIEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwg c3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAKICAJICAgIC8qIElmIG5vIGxvd2VyIGJvdW5kIHdh cyBwcm92aWRlZCBieSB0aGUgdXNlciwgd2UgdGFrZSB0aGUKICAJICAgICAgIGRlZmF1bHQgYm91 bmRhcnkuICBTYW1lIGZvciB0aGUgaGlnaCBib3VuZC4gICovCkBAIC02OCw3MCArODEsMTM1IEBA IGluZGV4IDE2NGQ3YWIuLjliOGIwNTEgMTAwNjQ0CiAgCSAgICAgIHJhbmdlLT5oaWdoID0gVFlQ RV9ISUdIX0JPVU5EIChpbmRleF90eXBlKTsKICAKICAJICAgIC8qIEJvdGggdXNlciBwcm92aWRl ZCBsb3cgYW5kIGhpZ2ggYm91bmQgaGF2ZSB0byBiZSBpbnNpZGUgdGhlCitkaWZmIC0tZ2l0IGEv Z2RiL2V4cHByaW50LmMgYi9nZGIvZXhwcHJpbnQuYworaW5kZXggYzM3ZWNiMC4uMjE0ZDU4ZSAx MDA2NDQKKy0tLSBhL2dkYi9leHBwcmludC5jCisrKysgYi9nZGIvZXhwcHJpbnQuYworQEAgLTU2 OCwxMiArNTY4LDEwIEBAIHByaW50X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24g KmV4cCwgaW50ICpwb3MsCisgCSpwb3MgKz0gMjsKKyAKKyAJZnB1dHNfZmlsdGVyZWQgKCJSQU5H RSgiLCBzdHJlYW0pOworLQlpZiAocmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQKKy0J ICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQorKwlpZiAoKHJhbmdlX3R5 cGUgJiBTVUJBUlJBWV9MT1dfQk9VTkQpID09IFNVQkFSUkFZX0xPV19CT1VORCkKKyAJICBwcmlu dF9zdWJleHAgKGV4cCwgcG9zLCBzdHJlYW0sIFBSRUNfQUJPVkVfQ09NTUEpOworIAlmcHV0c19m aWx0ZXJlZCAoIi4uIiwgc3RyZWFtKTsKKy0JaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RF RkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQorKwlpZiAo KHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5E KQorIAkgIHByaW50X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7 CisgCWZwdXRzX2ZpbHRlcmVkICgiKSIsIHN0cmVhbSk7CisgCXJldHVybjsKK0BAIC0xMDU1LDE2 ICsxMDUzLDE2IEBAIGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9u ICpleHAsCisgCisgCXN3aXRjaCAocmFuZ2VfdHlwZSkKKyAJICB7CistCSAgY2FzZSBCT1RIX0JP VU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBTVUJBUlJBWV9OT05FX0JPVU5EOgorIAkgICAgZnB1dHNf ZmlsdGVyZWQgKCJSYW5nZSAnLi4nIiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2Ug TE9XX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBTVUJBUlJBWV9ISUdIX0JPVU5EOgorIAkgICAg ZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi5FWFAnIiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOwor LQkgIGNhc2UgSElHSF9CT1VORF9ERUZBVUxUOgorKwkgIGNhc2UgU1VCQVJSQVlfTE9XX0JPVU5E OgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnRVhQLi4nIiwgc3RyZWFtKTsKKyAJICAg IGJyZWFrOworLQkgIGNhc2UgTk9ORV9CT1VORF9ERUZBVUxUOgorKwkgIGNhc2UgKFNVQkFSUkFZ X0xPV19CT1VORCB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOgorIAkgICAgZnB1dHNfZmlsdGVyZWQg KCJSYW5nZSAnRVhQLi5FWFAnIiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOworIAkgIGRlZmF1bHQ6 CitAQCAtMTA3MiwxMSArMTA3MCw5IEBAIGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVj dCBleHByZXNzaW9uICpleHAsCisgCSAgICBicmVhazsKKyAJICB9CisgCistCWlmIChyYW5nZV90 eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVAorLQkgICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JP VU5EX0RFRkFVTFQpCisrCWlmICgocmFuZ2VfdHlwZSAmIFNVQkFSUkFZX0xPV19CT1VORCkgPT0g U1VCQVJSQVlfTE9XX0JPVU5EKQorIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwg ZWx0KTsKKy0JaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJh bmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJB UlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorIAkgIGVsdCA9IGR1bXBf c3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKKyAgICAgICB9CisgICAgICAgYnJlYWs7CitkaWZm IC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dkYi9leHByZXNzaW9uLmgKK2luZGV4IDQ5NTJk ODQuLjVhNmI3MjAgMTAwNjQ0CistLS0gYS9nZGIvZXhwcmVzc2lvbi5oCisrKysgYi9nZGIvZXhw cmVzc2lvbi5oCitAQCAtMTUyLDE3ICsxNTIsMTQgQEAgZXh0ZXJuIHZvaWQgZHVtcF9yYXdfZXhw cmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwKKyAJCQkJIHN0cnVjdCB1aV9maWxlICosIGNo YXIgKik7CisgZXh0ZXJuIHZvaWQgZHVtcF9wcmVmaXhfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJl c3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7CisgCistLyogSW4gYW4gT1BfUkFOR0UgZXhwcmVz c2lvbiwgZWl0aGVyIGJvdW5kIGNvdWxkIGJlIGVtcHR5LCBpbmRpY2F0aW5nCistICAgdGhhdCBp dHMgdmFsdWUgaXMgYnkgZGVmYXVsdCB0aGF0IG9mIHRoZSBjb3JyZXNwb25kaW5nIGJvdW5kIG9m IHRoZQorLSAgIGFycmF5IG9yIHN0cmluZy4gIFNvIHdlIGhhdmUgZm91ciBzb3J0cyBvZiBzdWJy YW5nZS4gIFRoaXMKKy0gICBlbnVtZXJhdGlvbiB0eXBlIGlzIHRvIGlkZW50aWZ5IHRoaXMuICAq LworLSAgIAorKy8qIEluIGFuIE9QX1JBTkdFIGV4cHJlc3Npb24sIGVpdGhlciBib3VuZCBjYW4g YmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIG9yIG5vdC4KKysgICBUaGlzIGVudW1lcmF0aW9uIHR5 cGUgaXMgdG8gaWRlbnRpZnkgdGhpcy4gICovCisrCisgZW51bSByYW5nZV90eXBlCisgICB7Cist ICAgIEJPVEhfQk9VTkRfREVGQVVMVCwJCS8qICIoOikiICAqLworLSAgICBMT1dfQk9VTkRfREVG QVVMVCwJCS8qICIoOmhpZ2gpIiAgKi8KKy0gICAgSElHSF9CT1VORF9ERUZBVUxULAkJLyogIihs b3c6KSIgICovCistICAgIE5PTkVfQk9VTkRfREVGQVVMVAkJLyogIihsb3c6aGlnaCkiICAqLwor KyAgICBTVUJBUlJBWV9OT05FX0JPVU5EID0gMHgwLAkJLyogIiggOiApIiAgKi8KKysgICAgU1VC QVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJLyogIihsb3c6KSIgICovCisrICAgIFNVQkFSUkFZX0hJ R0hfQk9VTkQgPSAweDIJCS8qICIoOmhpZ2gpIiAgKi8KKyAgIH07CisgCisgI2VuZGlmIC8qICFk ZWZpbmVkIChFWFBSRVNTSU9OX0gpICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIv Zi1leHAueQotaW5kZXggOTM0M2FiYi4uYjEyMDZkZSAxMDA2NDQKK2luZGV4IGRjMTMxYzEuLmUy YzU0YjYgMTAwNjQ0CiAtLS0gYS9nZGIvZi1leHAueQogKysrIGIvZ2RiL2YtZXhwLnkKLUBAIC0z MTUsMjYgKzMxNSwyNyBAQCBhcmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVf Q09NTUEKK0BAIC0yNjAsMjYgKzI2MCwyNyBAQCBhcmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAg JXByZWMgQUJPVkVfQ09NTUEKICAvKiBUaGVyZSBhcmUgZm91ciBzb3J0cyBvZiBzdWJyYW5nZSB0 eXBlcyBpbiBGOTAuICAqLwogIAogIHN1YnJhbmdlOglleHAgJzonIGV4cAklcHJlYyBBQk9WRV9D T01NQQotLQkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsg CistCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IAogLQkJCSAg d3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIE5PTkVfQk9VTkRfREVGQVVMVCk7Ci0rCQkJ eyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworKwkJCXsgd3Jp dGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogKwkJCSAgd3JpdGVfZXhwX2Vs dF9sb25nY3N0IChwc3RhdGUsCiArCQkJCQkJIFNVQkFSUkFZX0xPV19CT1VORCB8IFNVQkFSUkFZ X0hJR0hfQk9VTkQpOwotIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkw X1JBTkdFKTsgfQorIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0Up OyB9CiAgCTsKICAKICBzdWJyYW5nZToJZXhwICc6JwklcHJlYyBBQk9WRV9DT01NQQotIAkJCXsg d3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsKKyAJCQl7IHdyaXRl X2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKIC0JCQkgIHdyaXRlX2V4cF9lbHRf bG9uZ2NzdCAocHN0YXRlLCBISUdIX0JPVU5EX0RFRkFVTFQpOwogKwkJCSAgd3JpdGVfZXhwX2Vs dF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORCk7Ci0gCQkJICB3cml0ZV9leHBf ZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9CisgCQkJICB3cml0ZV9leHBfZWx0 X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KICAJOwogIAogIHN1YnJhbmdlOgknOicgZXhw CSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBP UF9GOTBfUkFOR0UpOworIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFO R0UpOwogLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIExPV19CT1VORF9ERUZB VUxUKTsKICsJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9ISUdI X0JPVU5EKTsKLSAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5H RSk7IH0KKyAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQog IAk7CiAgCiAgc3VicmFuZ2U6CSc6JwklcHJlYyBBQk9WRV9DT01NQQotIAkJCXsgd3JpdGVfZXhw X2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsKKyAJCQl7IHdyaXRlX2V4cF9lbHRf b3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKIC0JCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAo cHN0YXRlLCBCT1RIX0JPVU5EX0RFRkFVTFQpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0 IChwc3RhdGUsIDApOwotIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkw X1JBTkdFKTsgfQorIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0Up OyB9CiAgCTsKICAKLWRpZmYgLS1naXQgYS9nZGIvZi1sYW5nLmggYi9nZGIvZi1sYW5nLmgKLWlu ZGV4IGVlY2ExMDcuLjRkNTZiZjcgMTAwNjQ0Ci0tLS0gYS9nZGIvZi1sYW5nLmgKLSsrKyBiL2dk Yi9mLWxhbmcuaAotQEAgLTQ0LDEwICs0NCw4IEBAIGV4dGVybiB2b2lkIGZfdmFsX3ByaW50IChz dHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBpbnQsIENPUkVfQUREUiwKLSAgICAKLSBl bnVtIGY5MF9yYW5nZV90eXBlCi0gICB7Ci0tICAgIEJPVEhfQk9VTkRfREVGQVVMVCwJCS8qICIo OikiICAqLwotLSAgICBMT1dfQk9VTkRfREVGQVVMVCwJCS8qICIoOmhpZ2gpIiAgKi8KLS0gICAg SElHSF9CT1VORF9ERUZBVUxULAkJLyogIihsb3c6KSIgICovCi0tICAgIE5PTkVfQk9VTkRfREVG QVVMVAkJLyogIihsb3c6aGlnaCkiICAqLwotKyAgICBTVUJBUlJBWV9MT1dfQk9VTkQgPSAweDEs CQkvKiAiKGxvdzopIiAgKi8KLSsgICAgU1VCQVJSQVlfSElHSF9CT1VORCA9IDB4MgkJLyogIig6 aGlnaCkiICAqLwotICAgfTsKLSAKLSAvKiBBIGNvbW1vbiBibG9jay4gICovCiBkaWZmIC0tZ2l0 IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwotaW5kZXggNDE5MWZjNi4uZDUwMDI3OSAxMDA2 NDQKK2luZGV4IDJiMDA3MDguLjZkNTRhNzcgMTAwNjQ0CiAtLS0gYS9nZGIvcGFyc2UuYwogKysr IGIvZ2RiL3BhcnNlLmMKIEBAIC0xMDA2LDIyICsxMDA2LDE3IEBAIG9wZXJhdG9yX2xlbmd0aF9z dGFuZGFyZCAoY29uc3Qgc3RydWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBlbmRwb3MsCiAgCi0g ICAgIGNhc2UgT1BfRjkwX1JBTkdFOgorICAgICBjYXNlIE9QX1JBTkdFOgogICAgICAgIG9wbGVu ID0gMzsKICsgICAgICBhcmdzID0gMDsKLSAgICAgICByYW5nZV90eXBlID0gKGVudW0gZjkwX3Jh bmdlX3R5cGUpCisgICAgICAgcmFuZ2VfdHlwZSA9IChlbnVtIHJhbmdlX3R5cGUpCiAgCWxvbmdl c3RfdG9faW50IChleHByLT5lbHRzW2VuZHBvcyAtIDJdLmxvbmdjb25zdCk7CiAgCiAtICAgICAg c3dpdGNoIChyYW5nZV90eXBlKQpAQCAtMTU3LDYgKzIzNSwxMDcgQEAgaW5kZXggNDE5MWZjNi4u ZDUwMDI3OSAxMDA2NDQKICAKICAgICAgICBicmVhazsKICAKK2RpZmYgLS1naXQgYS9nZGIvcnVz dC1leHAueSBiL2dkYi9ydXN0LWV4cC55CitpbmRleCBjMWE4NjNjLi43NjA5MjliNSAxMDA2NDQK Ky0tLSBhL2dkYi9ydXN0LWV4cC55CisrKysgYi9nZGIvcnVzdC1leHAueQorQEAgLTI0MTgsMjMg KzI0MTgsMTcgQEAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAoc3RydWN0IHBhcnNlcl9zdGF0 ZSAqc3RhdGUsCisgCisgICAgIGNhc2UgT1BfUkFOR0U6CisgICAgICAgeworLQllbnVtIHJhbmdl X3R5cGUga2luZCA9IEJPVEhfQk9VTkRfREVGQVVMVDsKKysJZW51bSByYW5nZV90eXBlIGtpbmQg PSBTVUJBUlJBWV9OT05FX0JPVU5EOworIAorIAlpZiAob3BlcmF0aW9uLT5sZWZ0Lm9wICE9IE5V TEwpCisgCSAgeworIAkgICAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAoc3RhdGUsIG9wZXJh dGlvbi0+bGVmdC5vcCwgdG9wKTsKKy0JICAgIGtpbmQgPSBISUdIX0JPVU5EX0RFRkFVTFQ7Cisr CSAgICBraW5kID0gU1VCQVJSQVlfTE9XX0JPVU5EOworIAkgIH0KKyAJaWYgKG9wZXJhdGlvbi0+ cmlnaHQub3AgIT0gTlVMTCkKKyAJICB7CisgCSAgICBjb252ZXJ0X2FzdF90b19leHByZXNzaW9u IChzdGF0ZSwgb3BlcmF0aW9uLT5yaWdodC5vcCwgdG9wKTsKKy0JICAgIGlmIChraW5kID09IEJP VEhfQk9VTkRfREVGQVVMVCkKKy0JICAgICAga2luZCA9IExPV19CT1VORF9ERUZBVUxUOworLQkg ICAgZWxzZQorLQkgICAgICB7CistCQlnZGJfYXNzZXJ0IChraW5kID09IEhJR0hfQk9VTkRfREVG QVVMVCk7CistCQlraW5kID0gTk9ORV9CT1VORF9ERUZBVUxUOworLQkgICAgICB9CisrCSAgICBr aW5kID0gKHJhbmdlX3R5cGUpIChraW5kIHwgU1VCQVJSQVlfSElHSF9CT1VORCk7CisgCSAgfQor IAl3cml0ZV9leHBfZWx0X29wY29kZSAoc3RhdGUsIE9QX1JBTkdFKTsKKyAJd3JpdGVfZXhwX2Vs dF9sb25nY3N0IChzdGF0ZSwga2luZCk7CitkaWZmIC0tZ2l0IGEvZ2RiL3J1c3QtbGFuZy5jIGIv Z2RiL3J1c3QtbGFuZy5jCitpbmRleCA1ZGY5OWNlLi44ZDUzZTMxIDEwMDY0NAorLS0tIGEvZ2Ri L3J1c3QtbGFuZy5jCisrKysgYi9nZGIvcnVzdC1sYW5nLmMKK0BAIC0xMTg4LDkgKzExODgsOSBA QCBydXN0X3JhbmdlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3Np ZGUgbm9zaWRlKQorICAga2luZCA9IChlbnVtIHJhbmdlX3R5cGUpIGxvbmdlc3RfdG9faW50IChl eHAtPmVsdHNbKnBvcyArIDFdLmxvbmdjb25zdCk7CisgICAqcG9zICs9IDM7CisgCistICBpZiAo a2luZCA9PSBISUdIX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9PSBOT05FX0JPVU5EX0RFRkFVTFQp CisrICBpZiAoKGtpbmQgJiBTVUJBUlJBWV9MT1dfQk9VTkQpID09IFNVQkFSUkFZX0xPV19CT1VO RCkKKyAgICAgbG93ID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3Np ZGUpOworLSAgaWYgKGtpbmQgPT0gTE9XX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9PSBOT05FX0JP VU5EX0RFRkFVTFQpCisrICBpZiAoKGtpbmQgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJB UlJBWV9ISUdIX0JPVU5EKQorICAgICBoaWdoID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUs IGV4cCwgcG9zLCBub3NpZGUpOworIAorICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCitAQCAt MTI3OSw3ICsxMjc5LDcgQEAgcnVzdF9jb21wdXRlX3JhbmdlIChzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IHZhbHVlICpyYW5nZSwKKyAKKyAgICpsb3cgPSAwOworICAgKmhpZ2ggPSAwOworLSAg KmtpbmQgPSBCT1RIX0JPVU5EX0RFRkFVTFQ7CisrICAqa2luZCA9IFNVQkFSUkFZX05PTkVfQk9V TkQ7CisgCisgICBpZiAoVFlQRV9ORklFTERTICh0eXBlKSA9PSAwKQorICAgICByZXR1cm47CitA QCAtMTI4NywxNSArMTI4NywxNCBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVjdCB0eXBlICp0 eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAorICAgaSA9IDA7CisgICBpZiAoc3RyY21wIChUWVBF X0ZJRUxEX05BTUUgKHR5cGUsIDApLCAic3RhcnQiKSA9PSAwKQorICAgICB7CistICAgICAgKmtp bmQgPSBISUdIX0JPVU5EX0RFRkFVTFQ7CisrICAgICAgKmtpbmQgPSBTVUJBUlJBWV9MT1dfQk9V TkQ7CisgICAgICAgKmxvdyA9IHZhbHVlX2FzX2xvbmcgKHZhbHVlX2ZpZWxkIChyYW5nZSwgMCkp OworICAgICAgICsraTsKKyAgICAgfQorICAgaWYgKFRZUEVfTkZJRUxEUyAodHlwZSkgPiBpCisg ICAgICAgJiYgc3RyY21wIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpLCAiZW5kIikgPT0gMCkK KyAgICAgeworLSAgICAgICpraW5kID0gKCpraW5kID09IEJPVEhfQk9VTkRfREVGQVVMVAorLQkg ICAgICAgPyBMT1dfQk9VTkRfREVGQVVMVCA6IE5PTkVfQk9VTkRfREVGQVVMVCk7CisrICAgICAg KmtpbmQgPSAocmFuZ2VfdHlwZSkgKCpraW5kIHwgU1VCQVJSQVlfSElHSF9CT1VORCk7CisgICAg ICAgKmhpZ2ggPSB2YWx1ZV9hc19sb25nICh2YWx1ZV9maWVsZCAocmFuZ2UsIGkpKTsKKyAgICAg fQorIH0KK0BAIC0xMzEwLDcgKzEzMDksNyBAQCBydXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJl c3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSwKKyAgIHN0cnVjdCB0eXBl ICpyaHN0eXBlOworICAgTE9OR0VTVCBsb3csIGhpZ2hfYm91bmQ7CisgICAvKiBJbml0aWFsaXpl ZCB0byBhcHBlYXNlIHRoZSBjb21waWxlci4gICovCistICBlbnVtIHJhbmdlX3R5cGUga2luZCA9 IEJPVEhfQk9VTkRfREVGQVVMVDsKKysgIGVudW0gcmFuZ2VfdHlwZSBraW5kID0gU1VCQVJSQVlf Tk9ORV9CT1VORDsKKyAgIExPTkdFU1QgaGlnaCA9IDA7CisgICBpbnQgd2FudF9zbGljZSA9IDA7 CisgCitAQCAtMTM2Niw3ICsxMzY1LDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNz aW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCisgCWVycm9yIChfKCJDYW5u b3Qgc3Vic2NyaXB0IG5vbi1hcnJheSB0eXBlIikpOworIAorICAgICAgIGlmICh3YW50X3NsaWNl CistCSAgJiYgKGtpbmQgPT0gQk9USF9CT1VORF9ERUZBVUxUIHx8IGtpbmQgPT0gTE9XX0JPVU5E X0RFRkFVTFQpKQorKwkgICYmICgoa2luZCAmIFNVQkFSUkFZX0xPV19CT1VORCkgIT0gU1VCQVJS QVlfTE9XX0JPVU5EKSkKKyAJbG93ID0gbG93X2JvdW5kOworICAgICAgIGlmIChsb3cgPCAwKQor IAllcnJvciAoXygiSW5kZXggbGVzcyB0aGFuIHplcm8iKSk7CitAQCAtMTM4NCw3ICsxMzgzLDcg QEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVt IG5vc2lkZSBub3NpZGUsCisgCSAgQ09SRV9BRERSIGFkZHI7CisgCSAgc3RydWN0IHZhbHVlICph ZGRydmFsLCAqdGVtOworIAorLQkgIGlmIChraW5kID09IEJPVEhfQk9VTkRfREVGQVVMVCB8fCBr aW5kID09IEhJR0hfQk9VTkRfREVGQVVMVCkKKysJICBpZiAoKGtpbmQgJiBTVUJBUlJBWV9ISUdI X0JPVU5EKSAhPSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorIAkgICAgaGlnaCA9IGhpZ2hfYm91bmQ7 CisgCSAgaWYgKGhpZ2ggPCAwKQorIAkgICAgZXJyb3IgKF8oIkhpZ2ggaW5kZXggbGVzcyB0aGFu IHplcm8iKSk7CiAtLSAKLTIuNS4wCisyLjUuNQogCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4t c3RyaWRlLWludGVsLTRvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5w YXRjaAppbmRleCA2NTYzZDcxLi4wZTA5NmUzIDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1zdHJp ZGUtaW50ZWwtNG9mNi5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5w YXRjaApAQCAtMSw3ICsxLDEwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNo ZXMvMjAxNi0wMi9tc2cwMDg0Mi5odG1sCi1TdWJqZWN0OiBbUEFUQ0ggdjIgNC82XSBmb3J0cmFu OiBlbmFibGUgcGFyc2luZyBvZiBzdHJpZGUgcGFyYW1ldGVyIGZvciBzdWJyYW5nZXMKK1JFOiBb cGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlz IHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2 LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSAzMzhlNGM4NjBhZDIwNTg5NmI0YTk1Yzc5ZjU0NDcw Yzc5ZWViMzQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5t YW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBXZWQsIDEgSnVuIDIw MTYgMTU6MTE6MjQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA0LzZdIGZvcnRyYW46IGVuYWJsZSBw YXJzaW5nIG9mIHN0cmlkZSBwYXJhbWV0ZXIgZm9yIHN1YnJhbmdlcwogCiBBbGxvdyB0aGUgdXNl ciB0byBwcm92aWRlIGEgc3RyaWRlIHBhcmFtZXRlciBmb3IgRm9ydHJhbgogc3ViYXJyYXlzLiAg VGhlIHN0cmlkZSBwYXJhbWV0ZXIgY2FuIGJlIGFueSBpbnRlZ2VyIGV4Y2VwdApAQCAtMTEsMTAg KzE0LDEwIEBAIHN1YmFycmF5cy4gIFRoZSBzdHJpZGUgcGFyYW1ldGVyIGNhbiBiZSBhbnkgaW50 ZWdlciBleGNlcHQKIAogCSogZXZhbC5jICh2YWx1ZV9mOTBfc3ViYXJyYXkpOiBBZGQgZXhwcmVz c2lvbiBldmFsdWF0aW9uCiAJZm9yIGEgc3RyaWRlIHBhcmFtZXRlciBpbiBhIEZvcnRyYW4gcmFu Z2UgZXhwcmVzc2lvbi4KKwkqIGV4cHJlc3Npb24uaCAocmFuZ2VfdHlwZSk6IEFkZCBmaWVsZCB0 byBlbnVtIHRvIHNob3cgd2hlbgorCWEgc3RyaWRlIHZhbHVlIHdhcyBwcm92aWRlZCBieSB0aGUg dXNlci4KIAkqIGYtZXhwLnk6IEFkZCB5YWNjIHJ1bGVzIGZvciB3cml0aW5nIGluZm8gb24gdGhl IGVsdCBzdGFjawogCXdoZW4gdGhlIHVzZXIgcHJvdmlkZWQgYSBzdHJpZGUgYXJndW1lbnQuCi0J KiBmLWxhbmcuaCAoRjkwX1JBTkdFKTogQWRkIGZpZWxkIHRvIGVudW0gdG8gc2hvdyB3aGVuIGEK LQlzdHJpZGUgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLgogCSogcGFyc2UuYyAob3BlcmF0b3Jf bGVuZ3RoX3N0YW5kYXJkKTogQ2hlY2sgaWYgYSBzdHJpZGUKIAl2YWx1ZSB3YXMgcHJvdmlkZWQs IGFuZCBpbmNyZW1lbnQgYXJndW1lbnQgY291bnRlcgogCWFjY29yZGluZ2x5LgpAQCAtMjIsMjYg KzI1LDI3IEBAIHN1YmFycmF5cy4gIFRoZSBzdHJpZGUgcGFyYW1ldGVyIGNhbiBiZSBhbnkgaW50 ZWdlciBleGNlcHQKIAogU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3Rv cGgudC53ZWlubWFubkBpbnRlbC5jb20+CiAtLS0KLSBnZGIvZXZhbC5jICAgfCAxMCArKysrKysr KystCi0gZ2RiL2YtZXhwLnkgIHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t Ci0gZ2RiL2YtbGFuZy5oIHwgIDUgKysrLS0KLSBnZGIvcGFyc2UuYyAgfCAgMyArKysKLSA0IGZp bGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisgZ2RiL2V2YWwu YyAgICAgICB8IDExICsrKysrKysrKystCisgZ2RiL2V4cHJlc3Npb24uaCB8ICA3ICsrKysrLS0K KyBnZGIvZi1leHAueSAgICAgIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQor IGdkYi9wYXJzZS5jICAgICAgfCAgMyArKysKKyBnZGIvdmFsb3BzLmMgICAgIHwgIDQgKystLQor IDUgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIAogZGlm ZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCi1pbmRleCA5YjhiMDUxLi4zMDhhZGEz IDEwMDY0NAoraW5kZXggNDRlODYwMC4uYjVhYWYxYyAxMDA2NDQKIC0tLSBhL2dkYi9ldmFsLmMK ICsrKyBiL2dkYi9ldmFsLmMKLUBAIC00MzgsNyArNDM4LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5 IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotICAgICAgIHN0 cnVjdCBzdWJzY3JpcHRfcmFuZ2UKLSAgICAgICB7Ci0gICAgICAgICBlbnVtIGY5MF9yYW5nZV90 eXBlIGY5MF9yYW5nZV90eXBlOwotLSAgICAgICAgTE9OR0VTVCBsb3csIGhpZ2g7Ci0rICAgICAg ICBMT05HRVNUIGxvdywgaGlnaCwgc3RyaWRlOwotICAgICAgIH0KLSAgICAgICByYW5nZTsKLSAg ICAgICBMT05HRVNUIG51bWJlcjsKLUBAIC00ODgsNiArNDg4LDE0IEBAIHZhbHVlX2Y5MF9zdWJh cnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC00 MTksNyArNDE5LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorICAgdHlwZWRlZiBzdHJ1Y3Qgc3Vic2NyaXB0X3Jhbmdl CisgICB7CisgICAgIGVudW0gcmFuZ2VfdHlwZSBmOTBfcmFuZ2VfdHlwZTsKKy0gICAgTE9OR0VT VCBsb3csIGhpZ2g7CisrICAgIExPTkdFU1QgbG93LCBoaWdoLCBzdHJpZGU7CisgICB9IHN1YnNj cmlwdF9yYW5nZTsKKyAKKyAgIHR5cGVkZWYgZW51bSBzdWJzY3JpcHRfa2luZAorQEAgLTQ5MCw2 ICs0OTAsMTUgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgICAgICA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQogIAkg ICAgcmFuZ2UtPmhpZ2ggPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQ RSwgZXhwLAogIAkJCQkJCQkgIHBvcywgbm9zaWRlKSk7CkBAIC00OSw4MiArNTMsODEgQEAgaW5k ZXggOWI4YjA1MS4uMzA4YWRhMyAxMDA2NDQKICsJICAvKiBBc3NpZ24gdGhlIHVzZXIncyBzdHJp ZGUgdmFsdWUgaWYgcHJvdmlkZWQuICAqLwogKwkgIGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBl ICYgU1VCQVJSQVlfU1RSSURFKSA9PSBTVUJBUlJBWV9TVFJJREUpCiArCSAgICByYW5nZS0+c3Ry aWRlID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKLSsJ CQkJCQkJICAgIHBvcywgbm9zaWRlKSk7CisrCQkJCQkJCSAgICAgcG9zLCBub3NpZGUpKTsKKysK ICsJICAvKiBBc3NpZ24gdGhlIGRlZmF1bHQgc3RyaWRlIHZhbHVlICcxJy4gICovCiArCSAgZWxz ZQogKwkgICAgcmFuZ2UtPnN0cmlkZSA9IDE7CiAgCX0KICAgICAgICAvKiBVc2VyIGlucHV0IGlz IGFuIGluZGV4LiAgRS5nLjogInAgYXJyeSg1KSIuICAqLwogICAgICAgIGVsc2UKK2RpZmYgLS1n aXQgYS9nZGIvZXhwcmVzc2lvbi5oIGIvZ2RiL2V4cHJlc3Npb24uaAoraW5kZXggNWE2YjcyMC4u MzRjYTU0YiAxMDA2NDQKKy0tLSBhL2dkYi9leHByZXNzaW9uLmgKKysrKyBiL2dkYi9leHByZXNz aW9uLmgKK0BAIC0xNTMsMTMgKzE1MywxNiBAQCBleHRlcm4gdm9pZCBkdW1wX3Jhd19leHByZXNz aW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLAorIGV4dGVybiB2b2lkIGR1bXBfcHJlZml4X2V4cHJl c3Npb24gKHN0cnVjdCBleHByZXNzaW9uICosIHN0cnVjdCB1aV9maWxlICopOworIAorIC8qIElu IGFuIE9QX1JBTkdFIGV4cHJlc3Npb24sIGVpdGhlciBib3VuZCBjYW4gYmUgcHJvdmlkZWQgYnkg dGhlIHVzZXIsIG9yIG5vdC4KKy0gICBUaGlzIGVudW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRp ZnkgdGhpcy4gICovCisrICAgSW4gYWRkaXRpb24gdG8gdGhpcywgdGhlIHVzZXIgY2FuIGFsc28g c3BlY2lmeSBhIHN0cmlkZSB2YWx1ZSB0byBpbmRpY2F0ZWQKKysgICBvbmx5IGNlcnRhaW4gZWxl bWVudHMgb2YgdGhlIGFycmF5LiAgVGhpcyBlbnVtZXJhdGlvbiB0eXBlIGlzIHRvIGlkZW50aWZ5 CisrICAgdGhpcy4gICovCisgCisgZW51bSByYW5nZV90eXBlCisgICB7CisgICAgIFNVQkFSUkFZ X05PTkVfQk9VTkQgPSAweDAsCQkvKiAiKCA6ICkiICAqLworICAgICBTVUJBUlJBWV9MT1dfQk9V TkQgPSAweDEsCQkvKiAiKGxvdzopIiAgKi8KKy0gICAgU1VCQVJSQVlfSElHSF9CT1VORCA9IDB4 MgkJLyogIig6aGlnaCkiICAqLworKyAgICBTVUJBUlJBWV9ISUdIX0JPVU5EID0gMHgyLAkJLyog Iig6aGlnaCkiICAqLworKyAgICBTVUJBUlJBWV9TVFJJREUgPSAweDQJCS8qICIoOjpzdHJpZGUp IiAgKi8KKyAgIH07CisgCisgI2VuZGlmIC8qICFkZWZpbmVkIChFWFBSRVNTSU9OX0gpICovCiBk aWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXggYjEyMDZkZS4uNTE1 MWZlZSAxMDA2NDQKK2luZGV4IGUyYzU0YjYuLjcxZjE4MjMgMTAwNjQ0CiAtLS0gYS9nZGIvZi1l eHAueQogKysrIGIvZ2RiL2YtZXhwLnkKLUBAIC0zMTYsOCArMzE2LDggQEAgYXJnbGlzdAk6CWFy Z2xpc3QgJywnIGV4cCAgICVwcmVjIEFCT1ZFX0NPTU1BCi0gCi0gc3VicmFuZ2U6CWV4cCAnOicg ZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRl LCBPUF9GOTBfUkFOR0UpOwotLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsCi0t CQkJCQkJIFNVQkFSUkFZX0xPV19CT1VORCB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOwotKwkJCSAg d3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORAotKwkJCQkJ CSB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOwotIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBz dGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQotIAk7Ci0gCi1AQCAtMzM5LDYgKzMzOSwzNSBAQCBzdWJy YW5nZToJJzonCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAo cHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9Ci0gCTsKK0BAIC0yODAsNyArMjgwLDM2IEBAIHN1YnJh bmdlOgknOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCiAgCisgc3VicmFuZ2U6CSc6JwklcHJlYyBB Qk9WRV9DT01NQQorIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0Up OworLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIDApOworKwkJCSAgd3JpdGVf ZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX05PTkVfQk9VTkQpOworKwkJCSAgd3Jp dGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CisrCTsKKysKICsvKiBFYWNo IHN1YnJhbmdlIHR5cGUgY2FuIGhhdmUgYSBzdHJpZGUgYXJndW1lbnQuICAqLwogK3N1YnJhbmdl OglleHAgJzonIGV4cCAnOicgZXhwICVwcmVjIEFCT1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9leHBf ZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworKwkJCXsgd3JpdGVfZXhwX2VsdF9v cGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChw c3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORAogKwkJCQkJCSB8IFNVQkFSUkFZX0hJR0hfQk9VTkQK ICsJCQkJCQkgfCBTVUJBUlJBWV9TVFJJREUpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUg KHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQorKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBz dGF0ZSwgT1BfUkFOR0UpOyB9CiArCTsKICsKICtzdWJyYW5nZToJZXhwICc6JyAnOicgZXhwICVw cmVjIEFCT1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9G OTBfUkFOR0UpOworKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0Up OwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VO RAogKwkJCQkJCSB8IFNVQkFSUkFZX1NUUklERSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29k ZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9CisrCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAo cHN0YXRlLCBPUF9SQU5HRSk7IH0KICsJOwogKwogK3N1YnJhbmdlOgknOicgZXhwICc6JyBleHAg JXByZWMgQUJPVkVfQ09NTUEKLSsJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9Q X0Y5MF9SQU5HRSk7CisrCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5H RSk7CiArCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfSElHSF9C T1VORAogKwkJCQkJCSB8IFNVQkFSUkFZX1NUUklERSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29w Y29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9CisrCQkJICB3cml0ZV9leHBfZWx0X29wY29k ZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KICsJOwogKwogK3N1YnJhbmdlOgknOicgJzonIGV4cCAl cHJlYyBBQk9WRV9DT01NQQotKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1Bf RjkwX1JBTkdFKTsKKysJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdF KTsKICsJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9TVFJJREUp OwotKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQot Kwk7Ci0rCi0gY29tcGxleG51bTogICAgIGV4cCAnLCcgZXhwIAotICAgICAgICAgICAgICAgICAJ eyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgIDsKLWRpZmYgLS1naXQgYS9n ZGIvZi1sYW5nLmggYi9nZGIvZi1sYW5nLmgKLWluZGV4IDRkNTZiZjcuLjBhZDU3YWYgMTAwNjQ0 Ci0tLS0gYS9nZGIvZi1sYW5nLmgKLSsrKyBiL2dkYi9mLWxhbmcuaAotQEAgLTQ0LDggKzQ0LDkg QEAgZXh0ZXJuIHZvaWQgZl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRl ICosIGludCwgQ09SRV9BRERSLAotICAgIAotIGVudW0gZjkwX3JhbmdlX3R5cGUKLSAgIHsKLS0g ICAgU1VCQVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJLyogIihsb3c6KSIgICovCi0tICAgIFNVQkFS UkFZX0hJR0hfQk9VTkQgPSAweDIJCS8qICIoOmhpZ2gpIiAgKi8KLSsgICAgU1VCQVJSQVlfTE9X X0JPVU5EID0gMHgxLAkJLyogIihsb3c6KSIgb3IgIihsb3c6OikiICovCi0rICAgIFNVQkFSUkFZ X0hJR0hfQk9VTkQgPSAweDIsCQkvKiAiKDpoaWdoKSIgb3IgIig6aGlnaDopIiAgKi8KLSsgICAg U1VCQVJSQVlfU1RSSURFID0gMHg0CQkvKiAiKDo6c3RyaWRlKSIgICovCi0gICB9OworIAkJCSAg d3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CisgCTsKICAKLSAvKiBB IGNvbW1vbiBibG9jay4gICovCiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2Uu YwotaW5kZXggZDUwMDI3OS4uMDcyNDhjMyAxMDA2NDQKK2luZGV4IDZkNTRhNzcuLjk5MmFmODcg MTAwNjQ0CiAtLS0gYS9nZGIvcGFyc2UuYwogKysrIGIvZ2RiL3BhcnNlLmMKIEBAIC0xMDE4LDYg KzEwMTgsOSBAQCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNz aW9uICpleHByLCBpbnQgZW5kcG9zLApAQCAtMTM3LDYgKzE0MCwyOCBAQCBpbmRleCBkNTAwMjc5 Li4wNzI0OGMzIDEwMDY0NAogICAgICAgIGJyZWFrOwogIAogICAgICBkZWZhdWx0OgorZGlmZiAt LWdpdCBhL2dkYi92YWxvcHMuYyBiL2dkYi92YWxvcHMuYworaW5kZXggODE3YTRjZi4uZmJjN2Rj YiAxMDA2NDQKKy0tLSBhL2dkYi92YWxvcHMuYworKysrIGIvZ2RiL3ZhbG9wcy5jCitAQCAtMzgz NCw3ICszODM0LDcgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxv d2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKKyAgIGlmIChjYWxsX2NvdW50ID09 IDEpCisgICAgIHsKKyAgICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChhcnJheV90 eXBlKTsKKy0gICAgICBzbGljZV9yYW5nZV9zaXplID0gZWxlbV9jb3VudDsKKysgICAgICBzbGlj ZV9yYW5nZV9zaXplID0gYXJ5X2xvd19ib3VuZCArIGVsZW1fY291bnQgLSAxOworIAorICAgICAg IC8qIENoZWNrIGlmIHRoZSBhcnJheSBib3VuZHMgYXJlIHZhbGlkLiAgKi8KKyAgICAgICBpZiAo Z2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmFyeV9sb3dfYm91bmQsICZhcnlfaGln aF9ib3VuZCkgPCAwKQorQEAgLTM4NDYsNyArMzg0Niw3IEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVj dCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQp CisgICBlbHNlCisgICAgIHsKKyAgICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChU WVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7CistICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9 IChhcnlfbG93X2JvdW5kICsgcm93X2NvdW50IC0gMSkgKiAoZWxlbV9jb3VudCk7CisrICAgICAg c2xpY2VfcmFuZ2Vfc2l6ZSA9IGFyeV9sb3dfYm91bmQgKyAocm93X2NvdW50ICogZWxlbV9jb3Vu dCkgLSAxOworICAgICAgIGFyeV9sb3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2VfdHlw ZSk7CisgICAgIH0KKyAKIC0tIAotMi41LjAKKzIuNS41CiAKCmRpZmYgLS1naXQgYS9nZGItZm9y dHJhbi1zdHJpZGUtaW50ZWwtNW9mNi5wYXRjaCBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01 b2Y2LnBhdGNoCmluZGV4IDlhN2RiYTMuLjJiOWE2NjIgMTAwNjQ0Ci0tLSBhL2dkYi1mb3J0cmFu LXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoCisrKyBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01 b2Y2LnBhdGNoCkBAIC0xLDkgKzEsMTIgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIt cGF0Y2hlcy8yMDE2LTAyL21zZzAwODQ0Lmh0bWwKLVN1YmplY3Q6IFtQQVRDSCB2MiA1LzZdIGZv cnRyYW46IGNhbGN1bGF0ZSBzdWJhcnJheSB3aXRoIHN0cmlkZSB2YWx1ZXMuCitSRTogW3Bpbmdd IFtQQVRDSCB2MiAwLzZdIGZvcnRyYW46IG11bHRpLWRpbWVuc2lvbmFsIHN1YmFycmF5cyB3aXRo IHN0cmlkZXMKK2h0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wNy9t c2cwMDAwOS5odG1sCiAKK0Zyb20gMTE4OTA5OGMzY2FjYzJlZTY5MDIxZGUxYTgzYWQzMzI4ODIx ZDc1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IENocmlzdG9waCBXZWlubWFubiA8 Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgorRGF0ZTogV2VkLCAxIEp1biAyMDE2IDE1 OjA0OjAxICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNS82XSBmb3J0cmFuOiBjYWxjdWxhdGUgZWxl bWVudHMgb2YgYSBzdWJhcnJheSB1c2luZyBhCisgcHJvdmlkZWQgc3RyaWRlIHZhbHVlCiAKLUNh bGN1bGF0ZSBlbGVtZW50cyBvZiBhIHN1YmFycmF5IHVzaW5nIGEgcHJvdmlkZWQgc3RyaWRlIHZh bHVlCiBUaGUgc3RyaWRlIHZhbHVlIGNhbiBiZSBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGludGVn ZXIsIGJ1dCBtYXkKIG5vdCBiZSB6ZXJvLiAgSWYgbm8gc3RyaWRlIGlzIHByb3ZpZGVkLCB1c2Ug dGhlIGRlZmF1bHQgdmFsdWUKIDEgdG8gcHJpbnQgYWxsIGVsZW1lbnRzIGluc2lkZSB0aGUgcmFu Z2UuCkBAIC0zMiw0NCArMzUsMjUgQEAgJDMgPSAoMSwgMywgNSwgNywgOSkKIAogU2lnbmVkLW9m Zi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+ CiAtLS0KLSBnZGIvZXZhbC5jICAgfCAxMTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KLSBnZGIvdmFsb3BzLmMgfCAgODcgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQorIGdkYi9ldmFsLmMgICB8 IDEwMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLQorIGdkYi92YWxvcHMuYyB8ICA4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0KICBnZGIvdmFsdWUuaCAgfCAgIDIgKy0KLSAzIGZpbGVzIGNo YW5nZWQsIDE1MiBpbnNlcnRpb25zKCspLCA0OCBkZWxldGlvbnMoLSkKKyAzIGZpbGVzIGNoYW5n ZWQsIDE0NSBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2dk Yi9ldmFsLmMgYi9nZGIvZXZhbC5jCi1pbmRleCAzMDhhZGEzLi5kMDFiNTc5IDEwMDY0NAoraW5k ZXggYjVhYWYxYy4uMWYyN2I2ZiAxMDA2NDQKIC0tLSBhL2dkYi9ldmFsLmMKICsrKyBiL2dkYi9l dmFsLmMKLUBAIC00MzcsOCArNDM3LDggQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFs dWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotICAgICB7Ci0gICAgICAgc3RydWN0 IHN1YnNjcmlwdF9yYW5nZQotICAgICAgIHsKLS0gICAgICAgIGVudW0gZjkwX3JhbmdlX3R5cGUg ZjkwX3JhbmdlX3R5cGU7Ci0tICAgICAgICBMT05HRVNUIGxvdywgaGlnaCwgc3RyaWRlOwotKwll bnVtIGY5MF9yYW5nZV90eXBlIGY5MF9yYW5nZV90eXBlOwotKwlMT05HRVNUIGxvdywgaGlnaCwg c3RyaWRlOwotICAgICAgIH0KLSAgICAgICByYW5nZTsKLSAgICAgICBMT05HRVNUIG51bWJlcjsK LUBAIC00NzUsNyArNDc1LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFy cmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAkgIHJhbmdlID0gJmluZGV4LT5yYW5nZTsK K0BAIC00NzcsNyArNDc3LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFy cmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorIAkgIHJhbmdlID0gJmluZGV4LT5VLnJhbmdl OwogIAogIAkgICpwb3MgKz0gMzsKLS0JICByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPSBsb25nZXN0 X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29uc3QpOwotKwkgIHJhbmdlLT5mOTBfcmFuZ2Vf dHlwZSA9IGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0OworLQkgIHJhbmdlLT5mOTBfcmFuZ2VfdHlw ZSA9IChlbnVtIHJhbmdlX3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdj b25zdCk7CisrCSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkgZXhw LT5lbHRzW3BjXS5sb25nY29uc3Q7CiAgCiAgCSAgLyogSWYgYSBsb3dlciBib3VuZCB3YXMgcHJv dmlkZWQgYnkgdGhlIHVzZXIsIHRoZSBiaXQgaGFzIGJlZW4KICAJICAgICBzZXQgYW5kIHdlIGNh biBhc3NpZ24gdGhlIHZhbHVlIGZyb20gdGhlIGVsdCBzdGFjay4gIFNhbWUgZm9yCi1AQCAtNDg0 LDYgKzQ4NCw3IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJICAgICAgPT0gU1VCQVJSQVlfTE9XX0JPVU5EKQotIAkg ICAgcmFuZ2UtPmxvdyA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBF LCBleHAsCi0gCQkJCQkJCSBwb3MsIG5vc2lkZSkpOwotKwotIAkgIGlmICgocmFuZ2UtPmY5MF9y YW5nZV90eXBlICYgU1VCQVJSQVlfSElHSF9CT1VORCkKLSAJICAgICAgPT0gU1VCQVJSQVlfSElH SF9CT1VORCkKLSAJICAgIHJhbmdlLT5oaWdoID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3Vi ZXhwIChOVUxMX1RZUEUsIGV4cCwKLUBAIC00OTYsNiArNDk3LDEwIEBAIHZhbHVlX2Y5MF9zdWJh cnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC00 OTksNiArNDk5LDEwIEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwg c3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJICAvKiBBc3NpZ24gdGhlIGRlZmF1bHQgc3RyaWRl IHZhbHVlICcxJy4gICovCiAgCSAgZWxzZQogIAkgICAgcmFuZ2UtPnN0cmlkZSA9IDE7CkBAIC04 MCw3ICs2NCw3IEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiAgCX0KICAgICAgICAv KiBVc2VyIGlucHV0IGlzIGFuIGluZGV4LiAgRS5nLjogInAgYXJyeSg1KSIuICAqLwogICAgICAg IGVsc2UKLUBAIC01MTIsMTAgKzUxNyw4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZh bHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC01MTUsMTAgKzUxOSw4IEBA IHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Np b24gKmV4cCwKICAKICAgICAgfQogIApAQCAtOTMsNyArNzcsNyBAQCBpbmRleCAzMDhhZGEzLi5k MDFiNTc5IDEwMDY0NAogICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkKICAgICAg ewogICAgICAgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0gJnN1YnNjcmlwdF9hcnJh eVtpXTsKLUBAIC01NDgsNiArNTUxLDQ4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZh bHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC01NTEsNiArNTUzLDQ4IEBA IHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Np b24gKmV4cCwKICAJCXx8IHJhbmdlLT5oaWdoID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBl KSkKICAJICAgICAgZXJyb3IgKF8oInByb3ZpZGVkIGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91 bmQocykiKSk7CiAgCkBAIC0xMTMsNyArOTcsNyBAQCBpbmRleCAzMDhhZGEzLi5kMDFiNTc5IDEw MDY0NAogKwogKwl9CiArCi0rICAgICAgYXJyYXlfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFy cmF5X3R5cGUpOworKyAgICAgICBhcnJheV90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlf dHlwZSk7CiArICAgIH0KICsKICsgIC8qIFJlc2V0IEFSUkFZX1RZUEUgYmVmb3JlIHNsaWNpbmcu Ki8KQEAgLTEzNywxMiArMTIxLDEyIEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiAr CSAgICAgICB0cmVhdCBhbnkgc3Vic2VxdWVudCB1c2VyIGVudHJ5IGFzIGEgcmFuZ2UuICBXZSBz aW1wbHkKICsJICAgICAgIGluY3JlbWVudCBESU1fQ09VTlQgd2hpY2ggdGVsbHMgdXMgaG93IG1h bnkgdGltZXMgd2UgYXJlCiArCSAgICAgICBjYWxsaW5nIFZBTFVFX1NMSUNFXzEuICAqLwotKwkg ICAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgtPnJhbmdlOworKwkgICAg c3Vic2NyaXB0X3JhbmdlICpyYW5nZSA9ICZpbmRleC0+VS5yYW5nZTsKICsKICAJICAgIC8qIERJ TV9DT1VOVCBjb3VudHMgZXZlcnkgdXNlciBhcmd1bWVudCB0aGF0IGlzIHRyZWF0ZWQgYXMgYSBy YW5nZS4KICAJICAgICAgIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBleHByZXNzaW9ucyBsaWtlICdw cmludCBhcnJheSg3LCA4OjkpLgogIAkgICAgICAgSGVyZSB0aGUgZmlyc3QgYXJndW1lbnQgaXMg YSBsaXRlcmFsLCBidXQgbXVzdCBiZSB0cmVhdGVkIGFzIGEKLUBAIC01NTUsMTAgKzYwMCw5IEBA IHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Np b24gKmV4cCwKK0BAIC01NTgsMTAgKzYwMiw5IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0 IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJICAgIGRpbV9jb3VudCsr OwogIAogIAkgICAgbmV3X2FycmF5CkBAIC0xNTYsMTMgKzE0MCw3IEBAIGluZGV4IDMwOGFkYTMu LmQwMWI1NzkgMTAwNjQ0CiAgCSAgfQogIAkgIGJyZWFrOwogIAotQEAgLTU3MiwyNyArNjE2LDM4 IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJl c3Npb24gKmV4cCwKLSAJICAgICAgIHRvIGdldCB0aGUgdmFsdWUgb2Zmc2V0IHJpZ2h0LiAgKi8K LSAJICAgIGlmIChkaW1fY291bnQgPT0gMCkKLSAJICAgICAgbmV3X2FycmF5Ci0tCSAgICAgICAg PSB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKG5ld19hcnJheSwgaW5kZXgtPm51bWJlciwKLSsJ CT0gdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChuZXdfYXJyYXksIGluZGV4LT5udW1iZXIsCi0g CQkJCQkgICAgZjc3X2dldF9sb3dlcmJvdW5kICh2YWx1ZV90eXBlCitAQCAtNTgwLDIxICs2MjMs MzIgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwLAogIAkJCQkJCQkJICAobmV3X2FycmF5KSkpOwogIAkgICAgZWxzZQogIAkg ICAgICB7CkBAIC0xNzQsMjEgKzE1MiwyMSBAQCBpbmRleCAzMDhhZGEzLi5kMDFiNTc5IDEwMDY0 NAogKwkJICAgY2Fubm90IGRvIHRoZSByYW5nZSBjaGVja3MgZm9yIHVzLiBTbyB3ZSBoYXZlIHRv IG1ha2Ugc3VyZQogKwkJICAgb3Vyc2VsdmVzIHRoYXQgdGhlIHVzZXIgcHJvdmlkZWQgaW5kZXgg aXMgaW5zaWRlIHRoZQogKwkJICAgYXJyYXkgYm91bmRzLiAgVGhyb3cgYW4gZXJyb3IgaWYgbm90 LiAgKi8KLSAJCWlmIChpbmRleC0+bnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUp Ci0tCQkgICAgfHwgaW5kZXgtPm51bWJlciA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkp CisgCQlpZiAoaW5kZXgtPlUubnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCist CQkgICAgfHwgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkK IC0JCSAgZXJyb3IgKF8oImVycm9yIG5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQiKSk7Ci0rCQkgICAg JiYgaW5kZXgtPm51bWJlciA8IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkpCisrCQkgICAg JiYgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKICsJCSAg ZXJyb3IgKF8oInByb3ZpZGVkIGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91bmQocykiKSk7CiAr Ci0rCQlpZiAoaW5kZXgtPm51bWJlciA+IFRZUEVfTE9XX0JPVU5EIChpbmRleF90eXBlKQotKwkJ ICAgICYmIGluZGV4LT5udW1iZXIgPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQorKwkJ aWYgKGluZGV4LT5VLm51bWJlciA+IFRZUEVfTE9XX0JPVU5EIChpbmRleF90eXBlKQorKwkJICAg ICYmIGluZGV4LT5VLm51bWJlciA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkpCiArCQkg IGVycm9yIChfKCJwcm92aWRlZCBib3VuZChzKSBvdXRzaWRlIGFycmF5IGJvdW5kKHMpIikpOwog IAogLQkJZGltX2NvdW50Kys7CiAgCQluZXdfYXJyYXkgPSB2YWx1ZV9zbGljZV8xIChuZXdfYXJy YXksCi0tCQkJCQkgICBsb25nZXN0X3RvX2ludCAoaW5kZXgtPm51bWJlciksCistCQkJCQkgICBs b25nZXN0X3RvX2ludCAoaW5kZXgtPlUubnVtYmVyKSwKIC0JCQkJCSAgIDEsIC8qIGxlbmd0aCBp cyAnMScgZWxlbWVudCAgKi8KLSsJCQkJCSAgIGluZGV4LT5udW1iZXIsCisrCQkJCQkgICBpbmRl eC0+VS5udW1iZXIsCiArCQkJCQkgICAxLCAvKiBDT1VOVCBpcyAnMScgZWxlbWVudCAgKi8KICsJ CQkJCSAgIDEsIC8qIFNUUklERSBzZXQgdG8gJzEnICAqLwogIAkJCQkJICAgZGltX2NvdW50KTsK QEAgLTE5NywxMyArMTc1LDExIEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiAgCSAg fQogIAkgIGJyZWFrOwogIAl9Ci0tICAgIH0KICsgICAgICBhcnJheV90eXBlID0gVFlQRV9UQVJH RVRfVFlQRSAoYXJyYXlfdHlwZSk7Ci0rICB9CisgICAgIH0KICAKICAgIC8qIFdpdGggRElNX0NP VU5UID4gMSB3ZSBjdXJyZW50bHkgaGF2ZSBhIG9uZSBkaW1lbnNpb25hbCBhcnJheSwgYnV0IGV4 cGVjdAotICAgICAgYW4gYXJyYXkgb2YgYXJyYXlzLCBkZXBlbmRpbmcgb24gaG93IG1hbnkgcmFu Z2VzIGhhdmUgYmVlbiBwcm92aWRlZCBieQotQEAgLTYxNyw3ICs2NzIsOSBAQCB2YWx1ZV9mOTBf c3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCitA QCAtNjIwLDcgKzY3NCw5IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJh eSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJIHRoZSBvdXRwdXQgYXJyYXkuICBTbyB3ZSB0 cmF2ZXJzZSB0aGUgU1VCU0NSSVBUX0FSUkFZIGFnYWluLCBsb29raW5nCiAgCSBmb3IgYSByYW5n ZSBlbnRyeS4gIFdoZW4gd2UgZmluZCBvbmUsIHdlIHVzZSB0aGUgcmFuZ2UgaW5mbyB0byBjcmVh dGUKICAJIGFuIGFkZGl0aW9uYWwgcmFuZ2VfdHlwZSB0byBzZXQgdGhlIGNvcnJlY3QgYm91bmRz IGFuZCBkaW1lbnNpb25zIGZvcgpAQCAtMjE0LDM1ICsxOTAsMzUgQEAgaW5kZXggMzA4YWRhMy4u ZDAxYjU3OSAxMDA2NDQKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAJewog IAkgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsK LUBAIC02MjUsMTIgKzY4MiwyMCBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAq YXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAgaWYgKGluZGV4LT5raW5kID09IFNV QlNDUklQVF9SQU5HRSkKK0BAIC02MjksMTIgKzY4NSwyMCBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkg KHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgCSAgICB7CiAg CSAgICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlLCAqaW50ZXJpbV9hcnJheV90eXBlOworIAog KwkgICAgICBpbnQgbmV3X2xlbmd0aDsKICsKICsJICAgICAgLyogVGhlIGxlbmd0aCBvZiBhIHN1 Yi1kaW1lbnNpb24gd2l0aCBhbGwgZWxlbWVudHMgYmV0d2VlbiB0aGUKICsJCSBib3VuZHMgcGx1 cyB0aGUgc3RhcnQgZWxlbWVudCBpdHNlbGYuICBJdCBtYXkgYmUgbW9kaWZpZWQgYnkKICsJCSBh IHVzZXIgcHJvdmlkZWQgc3RyaWRlIHZhbHVlLiAgKi8KLSsJICAgICAgbmV3X2xlbmd0aCA9IGlu ZGV4LT5yYW5nZS5oaWdoIC0gaW5kZXgtPnJhbmdlLmxvdzsKKysJICAgICAgbmV3X2xlbmd0aCA9 IGluZGV4LT5VLnJhbmdlLmhpZ2ggLSBpbmRleC0+VS5yYW5nZS5sb3c7CisrCisrCSAgICAgIG5l d19sZW5ndGggLz0gaW5kZXgtPlUucmFuZ2Uuc3RyaWRlOwogKwotKwkgICAgICBuZXdfbGVuZ3Ro IC89IGluZGV4LT5yYW5nZS5zdHJpZGU7Ci0gCiAgCSAgICAgIHJhbmdlX3R5cGUKICAJCT0gY3Jl YXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLAotLQkJCQkgICAgIHRlbXBfdHlwZSwKLS0JCQkJ ICAgICAxLAotLQkJCQkgICAgIGluZGV4LT5yYW5nZS5oaWdoIC0gaW5kZXgtPnJhbmdlLmxvdyAr IDEpOwotKwkJCQkJICAgIHRlbXBfdHlwZSwKLSsJCQkJCSAgICBpbmRleC0+cmFuZ2UubG93LAot KwkJCQkJICAgIGluZGV4LT5yYW5nZS5sb3cgKyBuZXdfbGVuZ3RoKTsKKyAJCQkJCSAgICBlbHRf dHlwZSwKKy0JCQkJCSAgICAxLAorLQkJCQkJICAgIGluZGV4LT5VLnJhbmdlLmhpZ2gKKy0JCQkJ CSAgICAgIC0gaW5kZXgtPlUucmFuZ2UubG93ICsgMSk7CisrCQkJCQkgICAgaW5kZXgtPlUucmFu Z2UubG93LAorKwkJCQkJICAgIGluZGV4LT5VLnJhbmdlLmxvdyArIG5ld19sZW5ndGgpOwogIAog IAkgICAgICBpbnRlcmltX2FycmF5X3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwKLSAJ CQkJCQkgICAgICB0ZW1wX3R5cGUsCisgCQkJCQkJICAgICAgZWx0X3R5cGUsCiBkaWZmIC0tZ2l0 IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCi1pbmRleCAwOWVhODc3Li44M2M4NDYyIDEw MDY0NAoraW5kZXggZmJjN2RjYi4uZGVkOGVmYyAxMDA2NDQKIC0tLSBhL2dkYi92YWxvcHMuYwog KysrIGIvZ2RiL3ZhbG9wcy5jCi1AQCAtMzc1OSwxMCArMzc1OSwxMyBAQCB2YWx1ZV9vZl90aGlz X3NpbGVudCAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmcpCitAQCAtMzc2NiwxMCAr Mzc2NiwxMyBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2Rl Zm4gKmxhbmcpCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICph cnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQogIHsKQEAgLTI1OSw4ICsyMzUsOCBAQCBp bmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAogKyAgcmV0dXJuIHZhbHVlX3NsaWNlXzEgKGFy cmF5LCBsb3dib3VuZCwgbGVuZ3RoLCAxLCAxKTsKICB9CiAgCi0gLyogQ0FMTF9DT1VOVCBpcyB1 c2VkIHRvIGRldGVybWluZSBpZiB3ZSBhcmUgY2FsbGluZyB0aGUgZnVuY3Rpb24gb25jZSwgZS5n LgotQEAgLTM3NzYsNyArMzc3OSw4IEBAIHZhbHVlX3NsaWNlIChzdHJ1Y3QgdmFsdWUgKmFycmF5 LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgpCisgLyogVkFMVUVfU0xJQ0VfMSBpcyBjYWxsZWQg Zm9yIGVhY2ggYXJyYXkgZGltZW5zaW9uIHRvIGNhbGN1bGF0ZSB0aGUgbnVtYmVyCitAQCAtMzc4 NSw3ICszNzg4LDggQEAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3di b3VuZCwgaW50IGxlbmd0aCkKICAgICByYW5nZXMgaW4gdGhlIGNhbGxpbmcgZnVuY3Rpb24uICAq LwogIAogIHN0cnVjdCB2YWx1ZSAqCkBAIC0yNzAsNyArMjQ2LDcgQEAgaW5kZXggMDllYTg3Ny4u ODNjODQ2MiAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgdHlwZSAqc2xpY2VfcmFuZ2VfdHlwZSwgKnNs aWNlX3R5cGUsICpyYW5nZV90eXBlOwogICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVj a190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwotQEAgLTM3OTksMTQgKzM4MDMsMjQgQEAg dmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVu Z3RoLCBpbnQgY2FsbF9jb3VudCkKK0BAIC0zODA4LDE0ICszODEyLDI0IEBAIHZhbHVlX3NsaWNl XzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNh bGxfY291bnQpCiAgICAgICBhdHRyaWJ1dGVzIG9mIHRoZSB1bmRlcmx5aW5nIHR5cGUuICAqLwog ICAgaWYgKGNhbGxfY291bnQgPiAxKQogICAgICB7CkBAIC0yOTcsMjUgKzI3Myw3IEBAIGluZGV4 IDA5ZWE4NzcuLjgzYzg0NjIgMTAwNjQ0CiAgICBlbHRfc3RyaWRlID0gVFlQRV9MRU5HVEggKFRZ UEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwogIAogICAgZWx0X29mZnMgKj0gZWx0X3NpemU7 Ci1AQCAtMzgyNSw3ICszODM5LDcgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJh eSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKLSAgIGlmIChjYWxs X2NvdW50ID09IDEpCi0gICAgIHsKLSAgICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBF IChhcnJheV90eXBlKTsKLS0gICAgICBzbGljZV9yYW5nZV9zaXplID0gZWxlbV9jb3VudDsKLSsg ICAgICBzbGljZV9yYW5nZV9zaXplID0gYXJ5X2xvd19ib3VuZCArIGVsZW1fY291bnQgLSAxOwot IAotICAgICAgIC8qIENoZWNrIGlmIHRoZSBhcnJheSBib3VuZHMgYXJlIHZhbGlkLiAgKi8KLSAg ICAgICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmFyeV9sb3dfYm91bmQs ICZhcnlfaGlnaF9ib3VuZCkgPCAwKQotQEAgLTM4MzcsNyArMzg1MSw3IEBAIHZhbHVlX3NsaWNl XzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNh bGxfY291bnQpCi0gICBlbHNlCi0gICAgIHsKLSAgICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRF WF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7Ci0tICAgICAgc2xpY2VfcmFu Z2Vfc2l6ZSA9IChhcnlfbG93X2JvdW5kICsgcm93X2NvdW50IC0gMSkgKiAoZWxlbV9jb3VudCk7 Ci0rICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IGFyeV9sb3dfYm91bmQgKyAocm93X2NvdW50ICog ZWxlbV9jb3VudCkgLSAxOwotICAgICAgIGFyeV9sb3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAo cmFuZ2VfdHlwZSk7Ci0gICAgIH0KLSAKLUBAIC0zODQ5LDggKzM4NjMsOSBAQCB2YWx1ZV9zbGlj ZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgsIGludCBj YWxsX2NvdW50KQorQEAgLTM4NTgsOCArMzg3Miw5IEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2 YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCiAg ICB7CiAgICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5cGU7CiAgCkBAIC0zMjcsNyArMjg1LDcg QEAgaW5kZXggMDllYTg3Ny4uODNjODQ2MiAxMDA2NDQKICAgICAgICB7CiAgCWVsZW1lbnRfdHlw ZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOwogIAotQEAgLTM4NzEsMjkgKzM4ODYs NTMgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBp bnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKK0BAIC0zODgwLDI5ICszODk1LDUzIEBAIHZhbHVl X3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwg aW50IGNhbGxfY291bnQpCiAgCSAgfQogIAogICAgICAgIH0KQEAgLTM1OSw4ICszMTcsOCBAQCBp bmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAogIAlzbGljZV90eXBlID0gY3JlYXRlX2FycmF5 X3R5cGUgKE5VTEwsIGVsZW1lbnRfdHlwZSwgc2xpY2VfcmFuZ2VfdHlwZSk7CiAgCiAtCVRZUEVf Q09ERSAoc2xpY2VfdHlwZSkgPSBUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5 cGUpKTsKLSsJLyogSWYgd2UgaGF2ZSBhIG9uZSBkaW1lbnNpb25hbCBhcnJheSwgd2UgY29weSBp dHMgVFlQRV9DT0RFLiAgRm9yIGEKLSsJICAgbXVsdGkgZGltZW5zaW9uYWwgYXJyYXkgd2UgY29w eSB0aGUgZW1iZWRkZWQgdHlwZSdzIFRZUEVfQ09ERS4gICovCisrCSAvKiBJZiB3ZSBoYXZlIGEg b25lIGRpbWVuc2lvbmFsIGFycmF5LCB3ZSBjb3B5IGl0cyBUWVBFX0NPREUuICBGb3IgYQorKwkg ICAgbXVsdGkgZGltZW5zaW9uYWwgYXJyYXkgd2UgY29weSB0aGUgZW1iZWRkZWQgdHlwZSdzIFRZ UEVfQ09ERS4gICovCiArCWlmIChjYWxsX2NvdW50ID09IDEpCiArCSAgVFlQRV9DT0RFIChzbGlj ZV90eXBlKSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7CiArCWVsc2UKQEAgLTM5NSw3ICszNTMs NyBAQCBpbmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAogICAgICAgIH0KICAKIGRpZmYgLS1n aXQgYS9nZGIvdmFsdWUuaCBiL2dkYi92YWx1ZS5oCi1pbmRleCAzNDAwNDYwLi5jMThlZjJlIDEw MDY0NAoraW5kZXggOTU1ODhhZi4uZTQxNzYzOSAxMDA2NDQKIC0tLSBhL2dkYi92YWx1ZS5oCiAr KysgYi9nZGIvdmFsdWUuaAogQEAgLTEwNTYsNyArMTA1Niw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFs dWUgKnZhcnlpbmdfdG9fc2xpY2UgKHN0cnVjdCB2YWx1ZSAqKTsKQEAgLTQwOCw1ICszNjYsNSBA QCBpbmRleCAzNDAwNDYwLi5jMThlZjJlIDEwMDY0NAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZh bHVlX2xpdGVyYWxfY29tcGxleCAoc3RydWN0IHZhbHVlICosIHN0cnVjdCB2YWx1ZSAqLAogIAkJ CQkJICAgIHN0cnVjdCB0eXBlICopOwogLS0gCi0yLjUuMAorMi41LjUKIAoKZGlmZiAtLWdpdCBh L2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LW5va2ZhaWwucGF0Y2ggYi9nZGItZm9ydHJh bi1zdHJpZGUtaW50ZWwtNm9mNi1ub2tmYWlsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA1YjYxZGUxLi4wMDAwMDAwCi0tLSBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02 b2Y2LW5va2ZhaWwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0tLS0gZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAt b3JpZwkyMDE2LTAxLTA4IDIyOjQ1OjQ0Ljk1Njg0MjU1MyArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCTIwMTYtMDEt MDggMjM6MjY6MDUuMDc4NTU0NjI5ICswMTAwCi1AQCAtMzksMjcgKzM5LDE2IEBAIGZvcmVhY2gg dmFyIHthIGFsbG9jIHB0cn0gewotICAgICBzZXQgb2xkX3ByZWZpeCAkcGZfcHJlZml4Ci0gICAg IGxhcHBlbmQgcGZfcHJlZml4ICIkdmFyOiIKLSAKLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAi dmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicCAkdmFyICgyLCAyOjMpIiB7ID0g XCgyMiwgMzJcKX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5 IgotICAgICBnZGJfdGVzdCAicCAkdmFyICgyOjMsIDMpIiB7ID0gXCgzMiwgMzNcKX0KLS0gICAg c2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAi cCAkdmFyICgxLCAyOikiIHsgPSBcKDIxLCAzMVwpfQotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoi ICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJwICR2YXIgKDIsIDoyKSIgeyA9 IFwoMTIsIDIyXCl9Ci0tICAgIHNldHVwX2tmYWlsICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5 OSIKLSAgICAgZ2RiX3Rlc3QgInAgJHZhciAoMywgMjoyKSIgeyA9IFwoMjNcKX0KLS0gICAgc2V0 dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicHR5 cGUgJHZhciAoMywgMjoyKSIgIiA9ICRpbnQ0IFxcKDI6MlxcKSIKLS0gICAgc2V0dXBfa2ZhaWwg IiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicCAkdmFyICg0LCA6 KSIgeyA9IFwoMTQsIDI0LCAzNFwpfQotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdy ZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJwICR2YXIgKDosIDopIiB7ID0gXChcKCAqMTEs IDEyLCAxMywgMTRcKSBcKCAqMjEsIDIyLCAyMywgMjRcKSBcKCAqMzEsIDMyLCAzMywgMzRcKSAq XCl9Ci0tICAgIHNldHVwX2tmYWlsICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAg Z2RiX3Rlc3QgInB0eXBlICR2YXIgKDosIDopIiAiID0gJGludDQgXFwoNCwzXFwpIgotLSAgICBz ZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJw ICR2YXIgKDopIiAiV3JvbmcgbnVtYmVyIG9mIHN1YnNjcmlwdHMiCi0tICAgIHNldHVwX2tmYWls ICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3QgInAgJHZhciAoOiwg OiwgOikiICJXcm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0cyIKLSAKLSAgICAgc2V0IHBmX3ByZWZp eCAkb2xkX3ByZWZpeAotQEAgLTY4LDUgKzU3LDQgQEAgZm9yZWFjaCB2YXIge2EgYWxsb2MgcHRy fSB7Ci0gZ2RiX3Rlc3Rfbm9fb3V0cHV0IHtzZXQgJGE9YX0KLSBkZWxldGVfYnJlYWtwb2ludHMK LSBnZGJfdW5sb2FkCi0tc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5Igot IGdkYl90ZXN0IHtwICRhICgzLCAyOjIpfSB7ID0gXCgyM1wpfQoKZGlmZiAtLWdpdCBhL2dkYi1m b3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LnBhdGNoIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVs LTZvZjYucGF0Y2gKaW5kZXggNDdmYWVmMi4uNzc3YmJjOSAxMDA2NDQKLS0tIGEvZ2RiLWZvcnRy YW4tc3RyaWRlLWludGVsLTZvZjYucGF0Y2gKKysrIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVs LTZvZjYucGF0Y2gKQEAgLTEsNyArMSwxMCBAQAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dk Yi1wYXRjaGVzLzIwMTYtMDIvbXNnMDA4NDcuaHRtbAotU3ViamVjdDogW1BBVENIIHYyIDYvNl0g Zm9ydHJhbjogdGVzdCBjYXNlcyBmb3Igc3ViYXJyYXkgc3RyaWRlcyBhbmQgc2xpY2VzCitSRTog W3BpbmddIFtQQVRDSCB2MiAwLzZdIGZvcnRyYW46IG11bHRpLWRpbWVuc2lvbmFsIHN1YmFycmF5 cyB3aXRoIHN0cmlkZXMKK2h0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAx Ni0wNy9tc2cwMDAwOS5odG1sCiAKK0Zyb20gOTgyZDU4MmVlNzM4Y2JjZjI1MmJhOGVhYjU5YTk1 MTRlZGRhNzViOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IENocmlzdG9waCBXZWlu bWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgorRGF0ZTogV2VkLCA0IERlYyAy MDEzIDExOjQ3OjE1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggNi82XSBmb3J0cmFuOiB0ZXN0IGNh c2VzIGZvciBzdWJhcnJheSBzdHJpZGVzIGFuZCBzbGljZXMKIAogQWRkIHRlc3QgY2FzZXMgZm9y IHN1YmFycmF5IGNyZWF0aW9uIHdpdGggcmFuZ2UsIGxpdGVyYWwgYW5kCiBzdHJpZGUgdmFsdWUg cGVybXV0YXRpb25zIGZvciBvbmUsIHR3bywgYW5kIHRocmVlIGRpbWVuc2lvbmFsCkBAIC01MTEs NSArNTE0LDUgQEAgaW5kZXggMDAwMDAwMC4uZjIyZmNiZQogKyAgY2FsbCBzdWIKICtlbmQKIC0t IAotMi41LjAKKzIuNS41CiAKCmRpZmYgLS1naXQgYS9nZGItcHl0aG9uLWdpbC5wYXRjaCBiL2dk Yi1weXRob24tZ2lsLnBhdGNoCmluZGV4IDFlM2IwYjkuLjVjZTEzYTggMTAwNjQ0Ci0tLSBhL2dk Yi1weXRob24tZ2lsLnBhdGNoCisrKyBiL2dkYi1weXRob24tZ2lsLnBhdGNoCkBAIC0xLDggKzEs OCBAQAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2RvYy9weXRob24udGV4aQorSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvcHl0aG9uLnRleGkKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2RvYy9weXRob24udGV4aQkyMDE1LTA1 LTMxIDE3OjU3OjEyLjQzMTU5Mzk4MyArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2RvYy9weXRob24udGV4aQkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NDYwNzcwOCArMDIwMAotQEAg LTIyOSw2ICsyMjksMTQgQEAgcmV0dXJuZWQgYXMgYSBzdHJpbmcuICBUaGUgZGVmYXVsdCBpcyBA YworLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2RvYy9weXRob24udGV4aQkyMDE2 LTA3LTAzIDE2OjMwOjM3LjAwOTMzODM1OCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9kb2MvcHl0aG9uLnRleGkJMjAxNi0wNy0wMyAxNjozMDo0Mi44MTIzODc4NjcgKzAyMDAK K0BAIC0yMjksNiArMjI5LDE0IEBACiAgcmV0dXJuIHZhbHVlIGlzIEBjb2Rle05vbmV9LiAgSWYg QHZhcnt0b19zdHJpbmd9IGlzIEBjb2Rle1RydWV9LCB0aGUKICBAdmFsdWV7R0RCTn0gdmlydHVh bCB0ZXJtaW5hbCB3aWxsIGJlIHRlbXBvcmFyaWx5IHNldCB0byB1bmxpbWl0ZWQgd2lkdGgKICBh bmQgaGVpZ2h0LCBhbmQgaXRzIHBhZ2luYXRpb24gd2lsbCBiZSBkaXNhYmxlZDsgQHB4cmVme1Nj cmVlbiBTaXplfS4KQEAgLTE3LDExICsxNywxMSBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvZG9jL3B5dGhvbi50ZXhpCiAgQGVuZCBkZWZ1bgogIAogIEBmaW5kZXggZ2RiLmJyZWFr cG9pbnRzCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRl cm5hbC5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weXRob24taW50 ZXJuYWwuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvcHl0 aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMDUtMzEgMTc6NTc6MTIuNDMyNTkzOTg5ICswMjAw Ci0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIw MTUtMDUtMzEgMTc6NTc6MTQuNjU0NjA3NzA4ICswMjAwCi1AQCAtMTQyLDYgKzE0Miw4IEBAIHR5 cGVkZWYgaW50IFB5X3NzaXplX3Q7CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIv cHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTYtMDctMDMgMTY6MzA6MzcuMDEwMzM4MzY2ICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwu aAkyMDE2LTA3LTAzIDE2OjMwOjQyLjgxMjM4Nzg2NyArMDIwMAorQEAgLTE0MCw2ICsxNDAsOCBA QAogICNkZWZpbmUgUHlHSUxTdGF0ZV9SZWxlYXNlKEFSRykgKCh2b2lkKShBUkcpKQogICNkZWZp bmUgUHlFdmFsX0luaXRUaHJlYWRzKCkKICAjZGVmaW5lIFB5VGhyZWFkU3RhdGVfU3dhcChBUkcp ICgodm9pZCkoQVJHKSkKQEAgLTMwLDExICszMCwxMSBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiAgI2RlZmluZSBQeUV2YWxfUmVsZWFz ZUxvY2soKQogICNlbmRpZgogIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhv bi9weXRob24uYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHl0aG9u LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9w eXRob24uYwkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NjYwNzcyMCArMDIwMAotKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24uYwkyMDE1LTA1LTMxIDE4OjAyOjA4Ljg5MTQy NDIyNyArMDIwMAotQEAgLTYyNywxMyArNjI3LDE4IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5 T2JqZWN0ICpzZWxmLCBQeU8KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9weXRo b24vcHl0aG9uLmMJMjAxNi0wNy0wMyAxNjozMDozNy4wMTEzMzgzNzUgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL3B5dGhvbi5jCTIwMTYtMDctMDMgMTY6MzE6MTYu MzI0NjczNzgzICswMjAwCitAQCAtNjE5LDEzICs2MTksMTggQEAKICB7CiAgICBjb25zdCBjaGFy ICphcmc7CiAgICBQeU9iamVjdCAqZnJvbV90dHlfb2JqID0gTlVMTCwgKnRvX3N0cmluZ19vYmog PSBOVUxMOwpAQCAtNTcsNyArNTcsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv cHl0aG9uL3B5dGhvbi5jCiAgICAgIHJldHVybiBOVUxMOwogIAogICAgZnJvbV90dHkgPSAwOwot QEAgLTY1NCwxMiArNjU5LDI4IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxm LCBQeU8KK0BAIC02NDYsNiArNjUxLDE1IEBACiAgICAgICAgdG9fc3RyaW5nID0gY21wOwogICAg ICB9CiAgCkBAIC03Myw4ICs3Myw5IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9w eXRob24vcHl0aG9uLmMKICAgIFRSWQogICAgICB7CiAgICAgICAgLyogQ29weSB0aGUgYXJndW1l bnQgdGV4dCBpbiBjYXNlIHRoZSBjb21tYW5kIG1vZGlmaWVzIGl0LiAgKi8KLSAgICAgICBjaGFy ICpjb3B5ID0geHN0cmR1cCAoYXJnKTsKK0BAIC02NTMsNiArNjY3LDEzIEBACiAgICAgICAgc3Ry dWN0IGNsZWFudXAgKmNsZWFudXAgPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBjb3B5KTsKKyAgICAg ICBzdHJ1Y3QgaW50ZXJwICppbnRlcnA7CiAgCiArICAgICAgLyogSW4gdGhlIGNhc2Ugb2YgbG9u ZyBydW5uaW5nIEdEQiBjb21tYW5kcywgYWxsb3cgdGhlIHVzZXIgdG8KICsJIHJlbGVhc2UgdGhl IFB5dGhvbiBHSUwgYWNxdWlyZWQgYnkgUHl0aG9uLiAgUmVzdG9yZSB0aGUgR0lMCkBAIC04Mywx MCArODQsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24u YwogKyAgICAgIGlmIChyZWxlYXNlX2dpbCkKICsJc3RhdGUgPSBQeUV2YWxfU2F2ZVRocmVhZCgp OwogKwotICAgICAgIG1ha2VfY2xlYW51cF9yZXN0b3JlX2ludGVnZXIgKCZpbnRlcnByZXRlcl9h c3luYyk7Ci0gICAgICAgaW50ZXJwcmV0ZXJfYXN5bmMgPSAwOworICAgICAgIG1ha2VfY2xlYW51 cF9yZXN0b3JlX2ludGVnZXIgKCZjdXJyZW50X3VpLT5hc3luYyk7CisgICAgICAgY3VycmVudF91 aS0+YXN5bmMgPSAwOwogIAotQEAgLTY3MiwxMSArNjkzLDIzIEBAIGV4ZWN1dGVfZ2RiX2NvbW1h bmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8KK0BAIC02NzEsMTEgKzY5MiwyMyBAQAogIAkgIGV4ZWN1 dGVfY29tbWFuZCAoY29weSwgZnJvbV90dHkpOwogIAl9CiAgCkBAIC0xMTEsMTAgKzExMiwxMCBA QCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAgICAgIH0K ICAgIEVORF9DQVRDSAogIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFk LmMJMjAxNS0wNS0zMSAxNzo1NzoxNC42NTY2MDc3MjAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuYwkyMDE2LTA3 LTAzIDE2OjMwOjQyLjgxMzM4Nzg3NiArMDIwMAogQEAgLTAsMCArMSwxMiBAQAogKyNpbmNsdWRl IDxzdGRpby5oPgogKwpAQCAtMTI4LDEwICsxMjksMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmMKICsgICAgICBw cmludGYgKCJTbGVlcGluZyAlZFxuIiwgaSk7CiArICAgIH0KICt9Ci1JbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuZXhwCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdp bC1tdGhyZWFkLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4cAkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NzYw NzcyNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS1naWwtbXRocmVhZC5leHAJMjAxNi0wNy0wMyAxNjozMDo0Mi44MTMzODc4NzYgKzAy MDAKIEBAIC0wLDAgKzEsNjkgQEAKICsjIENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIwMiwxMCArMjAzLDEwIEBAIEluZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5leHAK ICsJfQogKyAgICB9CiArfQotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLnB5CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLnB5CiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJl YWQucHkJMjAxNS0wNS0zMSAxNzo1NzoxNC42NTc2MDc3MjYgKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQucHkJMjAx Ni0wNy0wMyAxNjozMDo0Mi44MTQzODc4ODQgKzAyMDAKIEBAIC0wLDAgKzEsMjIgQEAKICtpbXBv cnQgdGhyZWFkCiAraW1wb3J0IHRpbWUKCmRpZmYgLS1naXQgYS9nZGItcmVhZGxpbmU2Mi1hc2st bW9yZS1yaC5wYXRjaCBiL2dkYi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCmluZGV4IGFl Njg5NDYuLjQ2M2Q5ZDMgMTAwNjQ0Ci0tLSBhL2dkYi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBh dGNoCisrKyBiL2dkYi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCkBAIC0xLDE3ICsxLDE4 IEBACi1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9ldmVudC10 b3AuYyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZXZlbnQtdG9wLmMKLS0tLSBnZGItNy4xMC41 MC4yMDE2MDEwNi1vcmlnL2dkYi9ldmVudC10b3AuYwkyMDE2LTAxLTA5IDE0OjUxOjAyLjMyNDI0 MzUwNiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9ldmVudC10b3AuYwkyMDE2 LTAxLTA5IDE0OjUxOjMzLjAyOTQzNDEyMSArMDEwMAotQEAgLTEwMzMsNiArMTAzMywxMyBAQCBz ZXRfYXN5bmNfZWRpdGluZ19jb21tYW5kIChjaGFyICphcmdzLCBpCi0gdm9pZAotIGdkYl9zZXR1 cF9yZWFkbGluZSAodm9pZCkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZXZlbnQt dG9wLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9ldmVu dC10b3AuYwkyMDE2LTA3LTAzIDE2OjMyOjM2LjEwODM0MjE1OSArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi9ldmVudC10b3AuYwkyMDE2LTA3LTAzIDE2OjMyOjU5Ljc4NzUyMzcz MyArMDIwMAorQEAgLTEyNTIsNiArMTI1MiwxMyBAQAogIHsKKyAgIHN0cnVjdCB1aSAqdWkgPSBj dXJyZW50X3VpOworIAogKyNpZmRlZiBORUVEX1JMX1NUQVRFX0ZFRE9SQV9HREIKICsgIC8qIDYu MiByZWdyZXNzaW9uOiBubyBsb25nZWQgYXNrcyBmb3IgLS1tb3JlLS0KICsgICAgIGdkYi5iYXNl L3JlYWRsaW5lLWFzay5leHAKICsgICAgIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93 X2J1Zy5jZ2k/aWQ9NzAxMTMxICAqLwogKyAgUkxfU0VUU1RBVEUgKFJMX1NUQVRFX0ZFRE9SQV9H REIpOwotKwogKyNlbmRpZgorKwogICAgLyogVGhpcyBmdW5jdGlvbiBpcyBhIG5vb3AgZm9yIHRo ZSBzeW5jIGNhc2UuICBUaGUgYXNzdW1wdGlvbiBpcwogICAgICAgdGhhdCB0aGUgc3luYyBzZXR1 cCBpcyBBTEwgZG9uZSBpbiBnZGJfaW5pdCwgYW5kIHdlIHdvdWxkIG9ubHkKICAgICAgIG1lc3Mg aXQgdXAgaGVyZS4gIFRoZSBzeW5jIHN0dWZmIHNob3VsZCByZWFsbHkgZ28gYXdheSBvdmVyCgpk aWZmIC0tZ2l0IGEvZ2RiLXJoYnoxMzYzNjM1LWFhcmNoNjQtYXJtdjgxODIucGF0Y2ggYi9nZGIt cmhiejEzNjM2MzUtYWFyY2g2NC1hcm12ODE4Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggOGVlYTU2NS4uMDAwMDAwMAotLS0gYS9nZGItcmhiejEzNjM2MzUtYWFyY2g2NC1h cm12ODE4Mi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLWNvbW1pdCA0OWVj ZWYyYTdkYTJlZTlkZjRhZTY3NWY5OWI3MDUxOGZiZjFiYjIzCi1BdXRob3I6IEFuZHJldyBQaW5z a2kgPGFwaW5za2lAY2F2aXVtLmNvbT4KLURhdGU6ICAgU2F0IEp1bCAyMyAwOTo1Njo0NCAyMDE2 IC0wNzAwCi0KLSAgICBGaXggQVJNdjguMS92OC4yIGZvciBodyB3YXRjaHBvaW50IGFuZCBicmVh a3BvaW50Ci0gICAgCi0gICAgVGhlIHByb2JsZW0gaGVyZSBpcyBBUk12OC4xIChhbmQgQVJNdjgu MikgZGVmaW5lIGEKLSAgICBkaWZmZXJlbnQgZGVidWcgdmVyc2lvbiB0aGFuIEFSTXY4ICg3IGFu ZCA4IHJlc3BlY3RpdmVseSkuCi0gICAgVGhpcyBmaXhlcyBodyB3YXRjaHBvaW50cyBhbmQgYnJl YWtwb2ludHMgYnkgY2hlY2tpbmcKLSAgICBmb3IgdGhvc2UgZGVidWcgdmVyc2lvbnMgdG9vLgot ICAgIAotICAgIENvbW1pdHRlZCBhcyBvYnZpb3VzIGFmdGVyIGEgdGVzdCBvbiBhYXJjaDY0LWxp bnV4LWdudQotICAgIChvbiBhIFRodW5kZXJYIG1hY2hpbmUgd2hpY2ggaGFzIEFSTXY4LjEgc3Vw cG9ydCBlbmFibGVkKS4KLSAgICAKLSAgICBDaGFuZ2VMb2c6Ci0gICAgCSogbmF0L2FhcmNoNjQt bGludXgtaHctcG9pbnQuYwotICAgIAkoYWFyY2g2NF9saW51eF9nZXRfZGVidWdfcmVnX2NhcGFj aXR5KTogSGFuZGxlCi0gICAgCUFSTXY4LjEgYW5kIEFSTXY4LjIgZGVidWcgdmVyc2lvbnMuCi0g ICAgCSogbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuaAotICAgIAkoQUFSQ0g2NF9ERUJVR19B UkNIX1Y4XzEpOiBOZXcgZGVmaW5lLgotICAgIAkoQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzIpOiBO ZXcgZGVmaW5lLgotICAgIAotICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBQaW5za2kgPGFwaW5z a2lAY2F2aXVtLmNvbT4KLQotIyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIvZ2RiL0NoYW5nZUxv ZwotIyMgLTEsMyArMSwxMiBAQAotKzIwMTYtMDctMjMgIEFuZHJldyBQaW5za2kgIDxhcGluc2tp QGNhdml1bS5jb20+Ci0rCi0rCSogbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYwotKwkoYWFy Y2g2NF9saW51eF9nZXRfZGVidWdfcmVnX2NhcGFjaXR5KTogSGFuZGxlCi0rCUFSTXY4LjEgYW5k IEFSTXY4LjIgZGVidWcgdmVyc2lvbnMuCi0rCSogbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQu aAotKwkoQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzEpOiBOZXcgZGVmaW5lLgotKwkoQUFSQ0g2NF9E RUJVR19BUkNIX1Y4XzIpOiBOZXcgZGVmaW5lLgotKwotIDIwMTYtMDYtMzAgINCg0YPRgdC70LDQ vSDQmNC20LHRg9C70LDRgtC+0LIgIDxscm4xOTg2QGdtYWlsLmNvbT4KLSAKLSAJUFIgZ2RiLzE0 NTI5Ci0tLS0gYS9nZGIvbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYwotKysrIGIvZ2RiL25h dC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmMKLUBAIC02MzAsNyArNjMwLDkgQEAgYWFyY2g2NF9s aW51eF9nZXRfZGVidWdfcmVnX2NhcGFjaXR5IChpbnQgdGlkKQotIAotICAgLyogR2V0IGhhcmR3 YXJlIHdhdGNocG9pbnQgcmVnaXN0ZXIgaW5mby4gICovCi0gICBpZiAocHRyYWNlIChQVFJBQ0Vf R0VUUkVHU0VULCB0aWQsIE5UX0FSTV9IV19XQVRDSCwgJmlvdikgPT0gMAotLSAgICAgICYmIEFB UkNINjRfREVCVUdfQVJDSCAoZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0gQUFSQ0g2NF9ERUJVR19B UkNIX1Y4KQotKyAgICAgICYmIChBQVJDSDY0X0RFQlVHX0FSQ0ggKGRyZWdfc3RhdGUuZGJnX2lu Zm8pID09IEFBUkNINjRfREVCVUdfQVJDSF9WOAotKwkgIHx8IEFBUkNINjRfREVCVUdfQVJDSCAo ZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0gQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzEKLSsJICB8fCBB QVJDSDY0X0RFQlVHX0FSQ0ggKGRyZWdfc3RhdGUuZGJnX2luZm8pID09IEFBUkNINjRfREVCVUdf QVJDSF9WOF8yKSkKLSAgICAgewotICAgICAgIGFhcmNoNjRfbnVtX3dwX3JlZ3MgPSBBQVJDSDY0 X0RFQlVHX05VTV9TTE9UUyAoZHJlZ19zdGF0ZS5kYmdfaW5mbyk7Ci0gICAgICAgaWYgKGFhcmNo NjRfbnVtX3dwX3JlZ3MgPiBBQVJDSDY0X0hXUF9NQVhfTlVNKQotQEAgLTY1MCw3ICs2NTIsOSBA QCBhYXJjaDY0X2xpbnV4X2dldF9kZWJ1Z19yZWdfY2FwYWNpdHkgKGludCB0aWQpCi0gCi0gICAv KiBHZXQgaGFyZHdhcmUgYnJlYWtwb2ludCByZWdpc3RlciBpbmZvLiAgKi8KLSAgIGlmIChwdHJh Y2UgKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgTlRfQVJNX0hXX0JSRUFLLCAmaW92KSA9PSAwCi0t ICAgICAgJiYgQUFSQ0g2NF9ERUJVR19BUkNIIChkcmVnX3N0YXRlLmRiZ19pbmZvKSA9PSBBQVJD SDY0X0RFQlVHX0FSQ0hfVjgpCi0rICAgICAgJiYgKEFBUkNINjRfREVCVUdfQVJDSCAoZHJlZ19z dGF0ZS5kYmdfaW5mbykgPT0gQUFSQ0g2NF9ERUJVR19BUkNIX1Y4Ci0rCSAgfHwgQUFSQ0g2NF9E RUJVR19BUkNIIChkcmVnX3N0YXRlLmRiZ19pbmZvKSA9PSBBQVJDSDY0X0RFQlVHX0FSQ0hfVjhf MQotKwkgIHx8IEFBUkNINjRfREVCVUdfQVJDSCAoZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0gQUFS Q0g2NF9ERUJVR19BUkNIX1Y4XzIpKQotICAgICB7Ci0gICAgICAgYWFyY2g2NF9udW1fYnBfcmVn cyA9IEFBUkNINjRfREVCVUdfTlVNX1NMT1RTIChkcmVnX3N0YXRlLmRiZ19pbmZvKTsKLSAgICAg ICBpZiAoYWFyY2g2NF9udW1fYnBfcmVncyA+IEFBUkNINjRfSEJQX01BWF9OVU0pCi0tLS0gYS9n ZGIvbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuaAotKysrIGIvZ2RiL25hdC9hYXJjaDY0LWxp bnV4LWh3LXBvaW50LmgKLUBAIC02OCw2ICs2OCw4IEBACi0gCi0gLyogTWFjcm8gZm9yIHRoZSBl eHBlY3RlZCB2ZXJzaW9uIG9mIHRoZSBBUk12OC1BIGRlYnVnIGFyY2hpdGVjdHVyZS4gICovCi0g I2RlZmluZSBBQVJDSDY0X0RFQlVHX0FSQ0hfVjggMHg2Ci0rI2RlZmluZSBBQVJDSDY0X0RFQlVH X0FSQ0hfVjhfMSAweDcKLSsjZGVmaW5lIEFBUkNINjRfREVCVUdfQVJDSF9WOF8yIDB4OAotIAot IC8qIHB0cmFjZSBleHBlY3RzIGNvbnRyb2wgcmVnaXN0ZXJzIHRvIGJlIGZvcm1hdHRlZCBhcyBm b2xsb3dzOgotIAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0 Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCmluZGV4IDYwMzdlMGUuLmIz N2M1YjkgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKKysr IGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaApAQCAtNDYzLDExICs0NjMsMTEg QEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBvcy1t YWluLnBhdGNoCiAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYWRhLWxhbmcuYwkyMDE1LTExLTAyIDIx OjIzOjExLjE3NTM1MTQxMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEt bGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMTk3MzY0NzE0ICswMTAwCi1AQCAtNzUsNyArNzUs NyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKmRlc2NfYm91bmRzX3R5cGUgKHN0CistLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1 MzUxMDExNyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTI3NTMwMDI4ICswMjAwCitAQCAtNzUsNyArNzUsNyBAQAogIAog IHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2NfYm91bmRzIChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBA IC00NzYsNyArNDc2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFu Zy5jCiAgCiAgc3RhdGljIGludCBmYXRfcG50cl9ib3VuZHNfYml0c2l6ZSAoc3RydWN0IHR5cGUg Kik7CiAgCi1AQCAtODMsMTMgKzgzLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZGVzY19kYXRh X3RhcmdldF90eXAKK0BAIC04MywxMyArODMsMTMgQEAKICAKICBzdGF0aWMgc3RydWN0IHZhbHVl ICpkZXNjX2RhdGEgKHN0cnVjdCB2YWx1ZSAqKTsKICAKQEAgLTQ5Miw3ICs0OTIsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICBzdGF0aWMgaW50IGRl c2NfYm91bmRfYml0c2l6ZSAoc3RydWN0IHR5cGUgKiwgaW50LCBpbnQpOwogIAotQEAgLTE3Miw3 ICsxNzIsNyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKnN0YXRpY191bndyYXBfdHlwZSAoCitAQCAt MTcyLDcgKzE3Miw3IEBACiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdW53cmFwX3ZhbHVlIChz dHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC01MDEsNyArNTAxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICpkZWNvZGVf Y29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICopOwogIAotQEAgLTE4 Nyw3ICsxODcsOCBAQCBzdGF0aWMgaW50IGFkYV9pc191bmNvbnN0cmFpbmVkX3BhY2tlZF9hCitA QCAtMTg3LDcgKzE4Nyw4IEBACiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc3Vic2NyaXB0 X3BhY2tlZCAoc3RydWN0IHZhbHVlICosIGludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmFsdWUgKiopOwogIApAQCAtNTExLDcgKzUxMSw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogIHN0YXRp YyBzdHJ1Y3QgdmFsdWUgKmNvZXJjZV91bnNwZWNfdmFsX3RvX3R5cGUgKHN0cnVjdCB2YWx1ZSAq LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCB0eXBlICopOwotQEAgLTIxNSwxNCArMjE2LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZh bHVlX3ZhbF9hdHIgKHN0cnUKK0BAIC0yMTUsMTQgKzIxNiwxNCBAQAogIHN0YXRpYyBzdHJ1Y3Qg c3ltYm9sICpzdGFuZGFyZF9sb29rdXAgKGNvbnN0IGNoYXIgKiwgY29uc3Qgc3RydWN0IGJsb2Nr ICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluX2VudW0p OwogIApAQCAtNTMwLDcgKzUzMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YWRhLWxhbmcuYwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV90b19maXhlZF92YWx1ZV9j cmVhdGUgKHN0cnVjdCB0eXBlICosIENPUkVfQUREUiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmFsdWUgKik7Ci1AQCAtMjM2LDcgKzIz Nyw3IEBAIHN0YXRpYyBpbnQgYWRhX2lzX2RpcmVjdF9hcnJheV90eXBlIChzdHIKK0BAIC0yMzYs NyArMjM3LDcgQEAKICBzdGF0aWMgdm9pZCBhZGFfbGFuZ3VhZ2VfYXJjaF9pbmZvIChzdHJ1Y3Qg Z2RiYXJjaCAqLAogIAkJCQkgICAgc3RydWN0IGxhbmd1YWdlX2FyY2hfaW5mbyAqKTsKICAKQEAg LTUzOSw3ICs1MzksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5n LmMKICAJCQkJCSAgICAgc3RydWN0IHR5cGUgKik7CiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAq YXNzaWduX2FnZ3JlZ2F0ZSAoc3RydWN0IHZhbHVlICosIHN0cnVjdCB2YWx1ZSAqLCAKLUBAIC03 MDAsNyArNzAxLDcgQEAgY29lcmNlX3Vuc3BlY192YWxfdG9fdHlwZSAoc3RydWN0IHZhbHVlCitA QCAtNzAwLDcgKzcwMSw3IEBACiAgfQogIAogIHN0YXRpYyBjb25zdCBnZGJfYnl0ZSAqCkBAIC01 NDgsNyArNTQ4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5j CiAgewogICAgaWYgKHZhbGFkZHIgPT0gTlVMTCkKICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtNzA5 LDcgKzcxMCw3IEBAIGNvbmRfb2Zmc2V0X2hvc3QgKGNvbnN0IGdkYl9ieXRlICp2YWxhZGQKK0BA IC03MDksNyArNzEwLDcgQEAKICB9CiAgCiAgc3RhdGljIENPUkVfQUREUgpAQCAtNTU3LDcgKzU1 Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIHsKICAg IGlmIChhZGRyZXNzID09IDApCiAgICAgIHJldHVybiAwOwotQEAgLTE3MTcsNyArMTcxOCw3IEBA IGRlc2NfYm91bmRzIChzdHJ1Y3QgdmFsdWUgKmFycikKK0BAIC0xNzU2LDcgKzE3NTcsNyBAQAog IC8qIElmIFRZUEUgaXMgdGhlIHR5cGUgb2YgYW4gYXJyYXktZGVzY3JpcHRvciAoZmF0IHBvaW50 ZXIpLCAgdGhlIGJpdAogICAgIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBjb250YWluaW5nIHRoZSBh ZGRyZXNzIG9mIHRoZSBib3VuZHMgZGF0YS4gICovCiAgCkBAIC01NjYsNyArNTY2LDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgZmF0X3BudHJfYm91bmRz X2JpdHBvcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIFRZUEVfRklFTERfQklU UE9TIChkZXNjX2Jhc2VfdHlwZSAodHlwZSksIDEpOwotQEAgLTE3ODMsNyArMTc4NCw3IEBAIGRl c2NfZGF0YSAoc3RydWN0IHZhbHVlICphcnIpCitAQCAtMTgyMiw3ICsxODIzLDcgQEAKICAvKiBJ ZiBUWVBFIGlzIHRoZSB0eXBlIG9mIGFuIGFycmF5LWRlc2NyaXB0b3IgKGZhdCBwb2ludGVyKSwg dGhlIGJpdAogICAgIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBjb250YWluaW5nIHRoZSBhZGRyZXNz IG9mIHRoZSBkYXRhLiAgKi8KICAKQEAgLTU3NSw3ICs1NzUsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICBmYXRfcG50cl9kYXRhX2JpdHBvcyAoc3RydWN0 IHR5cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIFRZUEVfRklFTERfQklUUE9TIChkZXNjX2Jhc2Vf dHlwZSAodHlwZSksIDApOwotQEAgLTE4MTgsNyArMTgxOSw3IEBAIGRlc2Nfb25lX2JvdW5kIChz dHJ1Y3QgdmFsdWUgKmJvdW5kcywgaW4KK0BAIC0xODU3LDcgKzE4NTgsNyBAQAogICAgIG9mIHRo ZSBJdGggbG93ZXIgYm91bmQgc3RvcmVkIGluIGl0LCBpZiBXSElDSCBpcyAwLCBhbmQgdGhlIEl0 aCB1cHBlcgogICAgIGJvdW5kLCBpZiBXSElDSCBpcyAxLiAgVGhlIGZpcnN0IGJvdW5kIGlzIEk9 MS4gICovCiAgCkBAIC01ODQsNyArNTg0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9hZGEtbGFuZy5jCiAgZGVzY19ib3VuZF9iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlLCBp bnQgaSwgaW50IHdoaWNoKQogIHsKICAgIHJldHVybiBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19i YXNlX3R5cGUgKHR5cGUpLCAyICogaSArIHdoaWNoIC0gMik7Ci1AQCAtMjAwOCw3ICsyMDA5LDcg QEAgYWRhX3R5cGVfb2ZfYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyLCBpbgorQEAgLTIwNDcsNyAr MjA0OCw3IEBACiAgCSAgICAgICAgIHplcm8sIGFuZCBkb2VzIG5vdCBuZWVkIHRvIGJlIHJlY29t cHV0ZWQuICAqLwogIAkgICAgICBpZiAobG8gPCBoaSkKICAJCXsKQEAgLTU5Myw3ICs1OTMsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAJCSAgICAgICAg KGhpIC0gbG8gKyAxKSAqIFRZUEVfRklFTERfQklUU0laRSAoZWx0X3R5cGUsIDApOwogIAogIAkJ ICBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkgPSAoYXJyYXlfYml0c2l6ZSArIDcpIC8gODsKLUBA IC0yMTY4LDcgKzIxNjksNyBAQCBkZWNvZGVfcGFja2VkX2FycmF5X2JpdHNpemUgKHN0cnVjdCB0 eXBlCitAQCAtMjIwNyw3ICsyMjA4LDcgQEAKICAgICB0aGUgbGVuZ3RoIGlzIGFyYml0cmFyeS4g ICovCiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICoKQEAgLTYwMiw3ICs2MDIsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAq bmV3X2VsdF90eXBlOwogICAgc3RydWN0IHR5cGUgKm5ld190eXBlOwotQEAgLTIyMjIsNyArMjIy Myw3IEBAIGRlY29kZV9jb25zdHJhaW5lZF9wYWNrZWRfYXJyYXlfdHlwZSAoc3QKK0BAIC0yMjYx LDcgKzIyNjIsNyBAQAogICAgY2hhciAqbmFtZTsKICAgIGNvbnN0IGNoYXIgKnRhaWw7CiAgICBz dHJ1Y3QgdHlwZSAqc2hhZG93X3R5cGU7CkBAIC02MTEsNyArNjExLDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgICBpZiAoIXJhd19uYW1lKQogICAg ICByYXdfbmFtZSA9IGFkYV90eXBlX25hbWUgKGRlc2NfYmFzZV90eXBlICh0eXBlKSk7Ci1AQCAt MjI5Myw3ICsyMjk0LDggQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJheSAoc3RydWN0 CitAQCAtMjMzMiw3ICsyMzMzLDggQEAKICAgCSBhcnJheSB3aXRoIG5vIHdyYXBwZXIuICBJbiBv cmRlciB0byBpbnRlcnByZXQgdGhlIHZhbHVlIHRocm91Z2gKICAgCSB0aGUgKGxlZnQtanVzdGlm aWVkKSBwYWNrZWQgYXJyYXkgdHlwZSB3ZSBqdXN0IGJ1aWx0LCB3ZSBtdXN0CiAgIAkgZmlyc3Qg bGVmdC1qdXN0aWZ5IGl0LiAgKi8KQEAgLTYyMSw3ICs2MjEsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBVTE9OR0VTVCBtb2Q7CiAgCiAgICAg ICAgbW9kID0gYWRhX21vZHVsdXMgKHZhbHVlX3R5cGUgKGFycikpIC0gMTsKLUBAIC0yNTIxLDcg KzI1MjMsNyBAQCBhZGFfdW5wYWNrX2Zyb21fY29udGVudHMgKGNvbnN0IGdkYl9ieXRlCitAQCAt MjU2MCw3ICsyNTYyLDcgQEAKICAKICBzdHJ1Y3QgdmFsdWUgKgogIGFkYV92YWx1ZV9wcmltaXRp dmVfcGFja2VkX3ZhbCAoc3RydWN0IHZhbHVlICpvYmosIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LApAQCAtNjMwLDcgKzYzMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRh LWxhbmcuYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKnR5 cGUpCiAgewogICAgc3RydWN0IHZhbHVlICp2OwotQEAgLTI1OTQsNyArMjU5Niw3IEBAIGFkYV92 YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHYKK0BAIC0yNjMzLDcgKzI2MzUsNyBA QAogIAogICAgaWYgKG9iaiAhPSBOVUxMKQogICAgICB7CkBAIC02MzksNyArNjM5LDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgICAgICAgc2V0X3Zh bHVlX2NvbXBvbmVudF9sb2NhdGlvbiAodiwgb2JqKTsKICAgICAgICBzZXRfdmFsdWVfYml0cG9z ICh2LCBiaXRfb2Zmc2V0ICsgdmFsdWVfYml0cG9zIChvYmopKTsKLUBAIC0yNjQyLDcgKzI2NDQs NyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2CitAQCAtMjY4MSw3 ICsyNjgzLDcgQEAKICAgICBub3Qgb3ZlcmxhcC4gICovCiAgc3RhdGljIHZvaWQKICBtb3ZlX2Jp dHMgKGdkYl9ieXRlICp0YXJnZXQsIGludCB0YXJnX29mZnNldCwgY29uc3QgZ2RiX2J5dGUgKnNv dXJjZSwKQEAgLTY0OCw3ICs2NDgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2FkYS1sYW5nLmMKICB7CiAgICB1bnNpZ25lZCBpbnQgYWNjdW0sIG1hc2s7CiAgICBpbnQgYWNj dW1fYml0cywgY2h1bmtfc2l6ZTsKLUBAIC0yNzMyLDcgKzI3MzQsNyBAQCBhZGFfdmFsdWVfYXNz aWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzCitAQCAtMjc3MSw3ICsyNzczLDcgQEAKICAgICAg ewogICAgICAgIGludCBsZW4gPSAodmFsdWVfYml0cG9zICh0b3ZhbCkKICAJCSArIGJpdHMgKyBI T1NUX0NIQVJfQklUIC0gMSkgLyBIT1NUX0NIQVJfQklUOwpAQCAtNjU3LDcgKzY1Nyw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGdkYl9ieXRl ICpidWZmZXIgPSAoZ2RiX2J5dGUgKikgYWxsb2NhIChsZW4pOwogICAgICAgIHN0cnVjdCB2YWx1 ZSAqdmFsOwogICAgICAgIENPUkVfQUREUiB0b19hZGRyID0gdmFsdWVfYWRkcmVzcyAodG92YWwp OwotQEAgLTI3ODMsNyArMjc4NSw3IEBAIHZhbHVlX2Fzc2lnbl90b19jb21wb25lbnQgKHN0cnVj dCB2YWx1ZQorQEAgLTI4MjIsNyArMjgyNCw3IEBACiAgICAgIChMT05HRVNUKSAgKHZhbHVlX2Fk ZHJlc3MgKGNvbXBvbmVudCkgLSB2YWx1ZV9hZGRyZXNzIChjb250YWluZXIpKTsKICAgIGludCBi aXRfb2Zmc2V0X2luX2NvbnRhaW5lciA9CiAgICAgIHZhbHVlX2JpdHBvcyAoY29tcG9uZW50KSAt IHZhbHVlX2JpdHBvcyAoY29udGFpbmVyKTsKQEAgLTY2Niw3ICs2NjYsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICAgIHZhbCA9IHZhbHVlX2Nhc3Qg KHZhbHVlX3R5cGUgKGNvbXBvbmVudCksIHZhbCk7CiAgCi1AQCAtNDM5Miw3ICs0Mzk0LDcgQEAg ZW5zdXJlX2x2YWwgKHN0cnVjdCB2YWx1ZSAqdmFsKQorQEAgLTQ0ODAsNyArNDQ4Miw3IEBACiAg ICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBub3RfbHZhbAogICAgICAgIHx8IFZBTFVFX0xWQUwg KHZhbCkgPT0gbHZhbF9pbnRlcm5hbHZhcikKICAgICAgewpAQCAtNjc1LDcgKzY3NSw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGNvbnN0IENP UkVfQUREUiBhZGRyID0KICAgICAgICAgIHZhbHVlX2FzX2xvbmcgKHZhbHVlX2FsbG9jYXRlX3Nw YWNlX2luX2luZmVyaW9yIChsZW4pKTsKICAKLUBAIC00NDc2LDcgKzQ0NzgsNyBAQCBzdGF0aWMg Q09SRV9BRERSCitAQCAtNDU2NCw3ICs0NTY2LDcgQEAKICB2YWx1ZV9wb2ludGVyIChzdHJ1Y3Qg dmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwpAQCAtNjg0LDcgKzY4NCw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgZ2RiX2J5dGUgKmJ1ZiA9 IChnZGJfYnl0ZSAqKSBhbGxvY2EgKGxlbik7CiAgICBDT1JFX0FERFIgYWRkcjsKICAKLUBAIC02 NzExLDcgKzY3MTMsNyBAQCB2YWx1ZV90YWdfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcyAoc3Ry CitAQCAtNjc5OSw3ICs2ODAxLDcgQEAKICAJCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJl c3MpCiAgewpAQCAtNjkzLDcgKzY5Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYWRhLWxhbmcuYwogICAgc3RydWN0IHR5cGUgKnRhZ190eXBlOwogIAogICAgaWYgKGZpbmRf c3RydWN0X2ZpZWxkICgiX3RhZyIsIHR5cGUsIDAsICZ0YWdfdHlwZSwgJnRhZ19ieXRlX29mZnNl dCwKLUBAIC03MTgxLDcgKzcxODMsNyBAQCBhZGFfaW5fdmFyaWFudCAoTE9OR0VTVCB2YWwsIHN0 cnVjdCB0eXBlCitAQCAtNzI4MCw3ICs3MjgyLDcgQEAKICAgICBvbmx5IGluIHRoYXQgaXQgY2Fu IGhhbmRsZSBwYWNrZWQgdmFsdWVzIG9mIGFyYml0cmFyeSB0eXBlLiAgKi8KICAKICBzdGF0aWMg c3RydWN0IHZhbHVlICoKQEAgLTcwMiw3ICs3MDIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dHlwZSAqYXJnX3R5cGUpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtNzE5Myw3ICs3 MTk1LDcgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCitAQCAtNzI5 Miw3ICs3Mjk0LDcgQEAKICAKICAgIGlmIChUWVBFX0ZJRUxEX0JJVFNJWkUgKGFyZ190eXBlLCBm aWVsZG5vKSAhPSAwKQogICAgICB7CkBAIC03MTEsNyArNzExLDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgaW50IGJpdF9zaXplID0gVFlQRV9G SUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubyk7CiAgCiAgICAgICAgcmV0dXJuIGFkYV92 YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoYXJnMSwgdmFsdWVfY29udGVudHMgKGFyZzEpLAot QEAgLTcyMjAsOSArNzIyMiw5IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2 YWx1ZQorQEAgLTczMTksOSArNzMyMSw5IEBACiAgICAgUmV0dXJucyAxIGlmIGZvdW5kLCAwIG90 aGVyd2lzZS4gICovCiAgCiAgc3RhdGljIGludApAQCAtNzIzLDcgKzcyMyw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAkJICAgaW50ICppbmRleF9wKQog IHsKICAgIGludCBpOwotQEAgLTcyNDAsOCArNzI0Miw4IEBAIGZpbmRfc3RydWN0X2ZpZWxkIChj b25zdCBjaGFyICpuYW1lLCBzdHIKK0BAIC03MzM5LDggKzczNDEsOCBAQAogIAogICAgZm9yIChp ID0gMDsgaSA8IFRZUEVfTkZJRUxEUyAodHlwZSk7IGkgKz0gMSkKICAgICAgewpAQCAtNzM0LDcg KzczNCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAg ICAgIGNvbnN0IGNoYXIgKnRfZmllbGRfbmFtZSA9IFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSk7 CiAgCiAgICAgICAgaWYgKHRfZmllbGRfbmFtZSA9PSBOVUxMKQotQEAgLTczMTEsNyArNzMxMyw3 IEBAIG51bV92aXNpYmxlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNzQxMCw3ICs3 NDEyLDcgQEAKICAgICBTZWFyY2hlcyByZWN1cnNpdmVseSB0aHJvdWdoIHdyYXBwZXIgZmllbGRz IChlLmcuLCAnX3BhcmVudCcpLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc0 Myw3ICs3NDMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMK ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50 IGk7Ci1AQCAtNzM0NCw3ICs3MzQ2LDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0 IGNoYXIgKm5hbQorQEAgLTc0NDMsNyArNzQ0NSw3IEBACiAgICAgICAgICAgIGludCBqOwogICAg ICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZSA9IGFkYV9jaGVja190eXBlZGVmIChUWVBF X0ZJRUxEX1RZUEUgKHR5cGUsCiAgCQkJCQkJCQkJaSkpOwpAQCAtNzUyLDcgKzc1Miw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogICAgICAgICAgICBm b3IgKGogPSAwOyBqIDwgVFlQRV9ORklFTERTIChmaWVsZF90eXBlKTsgaiArPSAxKQogICAgICAg ICAgICAgIHsKLUBAIC03MzYyLDggKzczNjQsOCBAQCBhZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAo Y29uc3QgY2hhciAqbmFtCitAQCAtNzQ2MSw4ICs3NDYzLDggQEAKICAgIHJldHVybiBOVUxMOwog IH0KICAKQEAgLTc2Myw3ICs3NjMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2FkYS1sYW5nLmMKICAKICAKICAvKiBSZXR1cm4gZmllbGQgI0lOREVYIGluIEFSRywgd2hlcmUg dGhlIGluZGV4IGlzIHRoYXQgcmV0dXJuZWQgYnkKLUBAIC03MzcyLDcgKzczNzQsNyBAQCBzdGF0 aWMgc3RydWN0IHZhbHVlICphZGFfaW5kZXhfc3RydWN0X2ZpCitAQCAtNzQ3MSw3ICs3NDczLDcg QEAKICAgKiBJZiBmb3VuZCwgcmV0dXJuIHZhbHVlLCBlbHNlIHJldHVybiBOVUxMLiAgKi8KICAK ICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc3Miw3ICs3NzIsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7 CiAgICByZXR1cm4gYWRhX2luZGV4X3N0cnVjdF9maWVsZF8xICgmaW5kZXgsIGFyZywgb2Zmc2V0 LCB0eXBlKTsKLUBAIC03Mzg0LDcgKzczODYsNyBAQCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChp bnQgaW5kZXgsIHN0cnVjCitAQCAtNzQ4Myw3ICs3NDg1LDcgQEAKICAgKiAqSU5ERVhfUC4gICov CiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03ODEsNyArNzgxLDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCQkJICBzdHJ1Y3QgdHlwZSAqdHlw ZSkKICB7CiAgICBpbnQgaTsKLUBAIC03NDc0LDcgKzc0NzYsOCBAQCBhZGFfdmFsdWVfc3RydWN0 X2VsdCAoc3RydWN0IHZhbHVlICphcmcsCitAQCAtNzU3Myw3ICs3NTc1LDggQEAKICAgICAgdiA9 IGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcsIDAsIHQpOwogICAgZWxzZQogICAg ICB7CkBAIC03OTEsNyArNzkxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h ZGEtbGFuZy5jCiAgICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7CiAgICAgICAgQ09SRV9B RERSIGFkZHJlc3M7CiAgCi1AQCAtNzc5MSw4ICs3Nzk0LDggQEAgYWRhX2NvZXJjZV9yZWYgKHN0 cnVjdCB2YWx1ZSAqdmFsMCkKK0BAIC03OTA0LDggKzc5MDcsOCBAQAogIC8qIFJldHVybiBPRkYg cm91bmRlZCB1cHdhcmQgaWYgbmVjZXNzYXJ5IHRvIGEgbXVsdGlwbGUgb2YKICAgICBBTElHTk1F TlQgKGEgcG93ZXIgb2YgMikuICAqLwogIApAQCAtODAyLDcgKzgwMiw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIHsKICAgIHJldHVybiAob2ZmICsgYWxp Z25tZW50IC0gMSkgJiB+KGFsaWdubWVudCAtIDEpOwogIH0KLUBAIC04MTg2LDEwICs4MTg5LDkg QEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgorQEAgLTgyOTksMTAg KzgzMDIsOSBAQAogICAgc3RydWN0IHZhbHVlICptYXJrID0gdmFsdWVfbWFyayAoKTsKICAgIHN0 cnVjdCB2YWx1ZSAqZHZhbDsKICAgIHN0cnVjdCB0eXBlICpydHlwZTsKQEAgLTgxNSw3ICs4MTUs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgIGludCBm OwogIAogICAgLyogQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIGZpZWxkcyBpbiB0aGlzIHJlY29yZCB0 eXBlIHRoYXQgYXJlIGdvaW5nCi1AQCAtODI2Nyw3ICs4MjY5LDcgQEAgYWRhX3RlbXBsYXRlX3Rv X2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgorQEAgLTgzODAsNyArODM4Miw3IEBACiAgCSAgICAg dGhhdCBmb2xsb3cgdGhpcyBvbmUuICAqLwogIAkgIGlmIChhZGFfaXNfYWxpZ25lcl90eXBlIChm aWVsZF90eXBlKSkKICAJICAgIHsKQEAgLTgyNCw3ICs4MjQsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICAJICAgICAgZmllbGRfdmFsYWRkciA9IGNv bmRfb2Zmc2V0X2hvc3QgKGZpZWxkX3ZhbGFkZHIsIGZpZWxkX29mZnNldCk7CiAgCSAgICAgIGZp ZWxkX2FkZHJlc3MgPSBjb25kX29mZnNldF90YXJnZXQgKGZpZWxkX2FkZHJlc3MsIGZpZWxkX29m ZnNldCk7Ci1AQCAtODQwMywxMSArODQwNSwxMSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVj b3JkX3R5cGVfMSAoc3RyCitAQCAtODUxNiwxMSArODUxOCwxMSBAQAogICAgaWYgKFRZUEVfTEVO R1RIICh0eXBlKSA8PSAwKQogICAgICB7CiAgICAgICAgaWYgKFRZUEVfTkFNRSAocnR5cGUpKQpA QCAtODQwLDcgKzg0MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxh bmcuYwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKLUBAIC04ODc0LDcgKzg4NzYsOCBAQCB0b19m aXhlZF9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsCitAQCAtODk4Nyw3ICs4OTg5LDgg QEAKICAJIHR5cGUgd2FzIGEgcmVndWxhciAobm9uLXBhY2tlZCkgYXJyYXkgdHlwZS4gIEFzIGEg cmVzdWx0LCB0aGUKICAJIGJpdHNpemUgb2YgdGhlIGFycmF5IGVsZW1lbnRzIG5lZWRzIHRvIGJl IHNldCBhZ2FpbiwgYW5kIHRoZSBhcnJheQogIAkgbGVuZ3RoIG5lZWRzIHRvIGJlIHJlY29tcHV0 ZWQgYmFzZWQgb24gdGhhdCBiaXRzaXplLiAgKi8KQEAgLTg1MCwxMSArODUwLDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGludCBlbHRfYml0 c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZTAsIDApOwogIAogICAgICAgIFRZUEVfRklF TERfQklUU0laRSAocmVzdWx0LCAwKSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZTAsIDApOwot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi9hZGEtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc3MzUx NDIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmgJMjAxNS0x MS0wMiAyMToyMzoxMy4xOTgzNjQ3MjEgKzAxMDAKLUBAIC0xNjgsNyArMTY4LDcgQEAgZXh0ZXJu IHZvaWQgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NDUxMDEyNSArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5oCTIwMTYtMDctMTYgMTQ6 MzM6NDQuNTI4NTMwMDM2ICswMjAwCitAQCAtMTY4LDcgKzE2OCw3IEBACiAgZXh0ZXJuIHZvaWQg YWRhX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qgc3ltYm9sICpuZXdf c3ltYm9sLAogIAkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICAKQEAgLTg2Myw3 ICs4NjMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmgKICAJ CQkgICBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICos CiAgCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1AQCAtMTgzLDcg KzE4Myw3IEBAIGV4dGVybiB2b2lkIGFkYV9lbWl0X2NoYXIgKGludCwgc3RydWN0IHQKK0BAIC0x ODMsNyArMTgzLDcgQEAKICBleHRlcm4gdm9pZCBhZGFfcHJpbnRjaGFyIChpbnQsIHN0cnVjdCB0 eXBlICosIHN0cnVjdCB1aV9maWxlICopOwogIAogIGV4dGVybiB2b2lkIGFkYV9wcmludHN0ciAo c3RydWN0IHVpX2ZpbGUgKiwgc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKQEAgLTg3 Miw3ICs4NzIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmgK ICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIAogIHN0cnVjdCB2 YWx1ZSAqYWRhX2NvbnZlcnRfYWN0dWFsIChzdHJ1Y3QgdmFsdWUgKmFjdHVhbCwKLUBAIC0yNTUs NyArMjU1LDcgQEAgZXh0ZXJuIGludCBhZGFfaXNfY29uc3RyYWluZWRfcGFja2VkX2FycgorQEAg LTI1NSw3ICsyNTUsNyBAQAogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFkYV92YWx1ZV9wcmlt aXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHZhbHVlICosCiAgCQkJCQkJICAgICBjb25zdCBnZGJf Ynl0ZSAqLApAQCAtODgxLDExICs4ODEsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9hZGEtbGFuZy5oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqKTsKICAKICBleHRlcm4gc3RydWN0IHR5cGUgKmFk YV9jb2VyY2VfdG9fc2ltcGxlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICopOwotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvYWRhLXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEu MTc3MzUxNDIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS10eXBlcHJp bnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjE5ODM2NDcyMSArMDEwMAotQEAgLTg5MSw4ICs4OTEs OCBAQCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBjb25zCistLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMDU1NTEwMTMzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS10eXBl cHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUyODUzMDAzNiArMDIwMAorQEAgLTg5MSw4ICs4 OTEsOCBAQAogIAkgICAgY29uc3QgY2hhciAqbmFtZSA9IGFkYV90eXBlX25hbWUgKHR5cGUpOwog IAogIAkgICAgaWYgKCFhZGFfaXNfcmFuZ2VfdHlwZV9uYW1lIChuYW1lKSkKQEAgLTg5Niw3ICs4 OTYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS10eXBlcHJpbnQuYwog IAkgICAgZWxzZQogIAkgICAgICB7CiAgCQlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJyYW5n ZSAiKTsKLUBAIC05MTMsNyArOTEzLDggQEAgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0 eXBlMCwgY29ucworQEAgLTkxMyw3ICs5MTMsOCBAQAogIAkgIH0KICAJYnJlYWs7CiAgICAgICAg Y2FzZSBUWVBFX0NPREVfRkxUOgpAQCAtOTA2LDEwICs5MDYsMTAgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9hZGEtdHlwZXByaW50LmMKICAJYnJlYWs7CiAgICAgICAgY2FzZSBU WVBFX0NPREVfRU5VTToKICAJaWYgKHNob3cgPCAwKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9hZGEtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h ZGEtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL2FkYS12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc5MzUxNDM2ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6 MjM6MTMuMTk5MzY0NzI4ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv YWRhLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNTY1MTAxNDEgKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0 NC41Mjg1MzAwMzYgKzAyMDAKIEBAIC0zMywxMSArMzMsMTEgQEAKICAjaW5jbHVkZSAib2JqZmls ZXMuaCIKICAKQEAgLTkyNCw3ICs5MjQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2FkYS12YWxwcmludC5jCiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZu ICopOwogIAwKICAKLUBAIC0yNzksNyArMjc5LDcgQEAgYWRhX2VtaXRfY2hhciAoaW50IGMsIHN0 cnVjdCB0eXBlICp0eXBlLAorQEAgLTI3OSw3ICsyNzksNyBAQAogICAgIG9mIGEgY2hhcmFjdGVy LiAgKi8KICAKICBzdGF0aWMgaW50CkBAIC05MzMsNyArOTMzLDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkgZW51bSBiZmRfZW5kaWFuIGJ5dGVf b3JkZXIpCiAgewogICAgaWYgKHR5cGVfbGVuID09IDEpCi1AQCAtNDQxLDExICs0NDEsMTEgQEAg YWRhX3ByaW50X3NjYWxhciAoc3RydWN0IHR5cGUgKnR5cGUsIExPTgorQEAgLTQ0MSwxMSArNDQx LDExIEBACiAgCiAgc3RhdGljIHZvaWQKICBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgc3RydWN0IHR5cGUgKmVsdHR5cGUsIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsCkBAIC05NDcs NyArOTQ3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQu YwogICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKICAgIGludCBpbl9xdW90ZXMg PSAwOwogICAgaW50IG5lZWRfY29tbWEgPSAwOwotQEAgLTQ2MCw5ICs0NjAsOSBAQCBwcmludHN0 ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CitAQCAtNDYwLDkgKzQ2MCw5IEBACiAg ICAgIHsKICAgICAgICAvKiBQb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIHdlIGFyZSBleGFtaW5p bmcKICAgICAgICAgICB0byBzZWUgd2hldGhlciBpdCBpcyByZXBlYXRlZC4gICovCkBAIC05NTks NyArOTU5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQu YwogIAogICAgICAgIFFVSVQ7CiAgCi1AQCAtNDkzLDcgKzQ5Myw4IEBAIHByaW50c3RyIChzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKK0BAIC00OTMsNyArNDkzLDggQEAKICAJICBhZGFf ZW1pdF9jaGFyIChjaGFyX2F0IChzdHJpbmcsIGksIHR5cGVfbGVuLCBieXRlX29yZGVyKSwKICAJ CQkgZWx0dHlwZSwgc3RyZWFtLCAnXCcnLCB0eXBlX2xlbik7CiAgCSAgZnB1dHNfZmlsdGVyZWQg KCInIiwgc3RyZWFtKTsKQEAgLTk2OSw3ICs5NjksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19w cmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21t YSA9IDE7Ci1AQCAtNTIxLDcgKzUyMiw3IEBAIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBzdHJ1Y3QKK0BAIC01MjEsNyArNTIyLDcgQEAKICAKICB2b2lkCiAgYWRhX3ByaW50c3Ry IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTk3OCw3ICs5 NzgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAg CSAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCSAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKLUBAIC01MzEs MTIgKzUzMiwxMiBAQCBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0CitA QCAtNTMxLDEyICs1MzIsMTIgQEAKICAKICBzdGF0aWMgaW50CiAgcHJpbnRfdmFyaWFudF9wYXJ0 IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkX251bSwKQEAgLTk5Myw3ICs5OTMsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkgICAgY29u c3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKQogIHsKICAgIHN0cnVjdCB0eXBlICp2 YXJfdHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlwZSwgZmllbGRfbnVtKTsKLUBAIC01NzIsMTEg KzU3MywxMSBAQCBwcmludF92YXJpYW50X3BhcnQgKHN0cnVjdCB0eXBlICp0eXBlLCBpCitAQCAt NTcyLDExICs1NzMsMTEgQEAKICAKICBzdGF0aWMgaW50CiAgcHJpbnRfZmllbGRfdmFsdWVzIChz dHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0xMDA3LDcgKzEw MDcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAg CQkgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKQogIHsKICAgIGludCBp LCBsZW47Ci1AQCAtNjQzLDcgKzY0NCw3IEBAIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5 cGUgKnR5cGUsIGMKK0BAIC02NDMsNyArNjQ0LDcgQEAKICAJICAgIH0KICAJICBlbHNlCiAgCSAg ICB7CkBAIC0xMDE2LDcgKzEwMTYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2FkYS12YWxwcmludC5jCiAgCSAgICAgIGludCBiaXRfc2l6ZSA9IFRZUEVfRklFTERfQklUU0la RSAodHlwZSwgaSk7CiAgCSAgICAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7CiAg Ci1AQCAtNjg5LDggKzY5MCw4IEBAIGFkYV92YWxfcHJpbnRfc3RyaW5nIChzdHJ1Y3QgdHlwZSAq dHlwZSwKK0BAIC02ODksOCArNjkwLDggQEAKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9v cmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwogICAgc3Ry dWN0IHR5cGUgKmVsdHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKQEAgLTEwMjcsNyAr MTAyNyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLXZhbHByaW50LmMK ICAKICAgIC8qIFdlIGtub3cgdGhhdCBFTFRUWVBFIGNhbm5vdCBwb3NzaWJseSBiZSBudWxsLCBi ZWNhdXNlIHdlIGFzc3VtZQogICAgICAgdGhhdCB3ZSdyZSBjYWxsZWQgb25seSB3aGVuIFRZUEUg aXMgYSBzdHJpbmctbGlrZSB0eXBlLgotQEAgLTcwOSw3ICs3MTAsNyBAQCBhZGFfdmFsX3ByaW50 X3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNzA5LDcgKzcxMCw3IEBACiAgICAgICBl bGVtZW50cyB1cCB0byBpdC4gICovCiAgICBpZiAob3B0aW9ucy0+c3RvcF9wcmludF9hdF9udWxs KQogICAgICB7CkBAIC0xMDM2LDcgKzEwMzYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCiAgICAgICAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIu ICAqLwogICAgICAgIGZvciAodGVtcF9sZW4gPSAwOwotQEAgLTEwNzQsNyArMTA3NSw3IEBAIGFk YV92YWxfcHJpbnRfcmVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY28KK0BAIC0xMDc0LDcgKzEwNzUs NyBAQAogIAogIHN0YXRpYyB2b2lkCiAgYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0xMDQ1LDcgKzEwNDUsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5h bF92YWx1ZSwKICAJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywK LUBAIC0xMTU3LDcgKzExNTgsNyBAQCBhZGFfdmFsX3ByaW50XzEgKHN0cnVjdCB0eXBlICp0eXBl LCBjb25zCitAQCAtMTE1Nyw3ICsxMTU4LDcgQEAKICAKICB2b2lkCiAgYWRhX3ZhbF9wcmludCAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTA1NCwxMSAr MTA1NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5j CiAgCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fu bm90YXRlLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYW5ub3RhdGUuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2Fubm90YXRlLmMJMjAx NS0xMS0wMiAyMToyMzoxMS4xNzkzNTE0MzYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYW5ub3RhdGUuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjE5OTM2NDcyOCArMDEwMAotQEAg LTU0MiwyMSArNTQyLDIxIEBAIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCkKKy0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbm5vdGF0ZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU3 NTEwMTQ5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRlLmMJMjAx Ni0wNy0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAyMDAKK0BAIC01MzMsMjEgKzUzMywyMSBAQAog IH0KICAMCiAgdm9pZApAQCAtMTA4NCwxMSArMTA4NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2Fubm90YXRlLmMKICB9CiAgCiAgdm9pZAotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hbm5vdGF0ZS5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2Fubm90YXRlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi9hbm5vdGF0ZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc5MzUxNDM2ICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fubm90YXRlLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTkz NjQ3MjggKzAxMDAKLUBAIC05Miw4ICs5Miw4IEBAIGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1l X3NvdXJjZV9lbmQgKHYKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbm5vdGF0 ZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU3NTEwMTQ5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2Fubm90YXRlLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAy MDAKK0BAIC05Miw4ICs5Miw4IEBACiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVfd2hlcmUg KHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCk7CiAgCkBAIC0x MDk5LDExICsxMDk5LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYW5ub3Rh dGUuaAogIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXBfZW5kICh2b2lkKTsKICBleHRlcm4g dm9pZCBhbm5vdGF0ZV9lbHQgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2FycmF5X3Nl Y3Rpb25fZW5kICh2b2lkKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXJtLWxp bnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FybS1saW51eC1uYXQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2FybS1saW51 eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE4MDM1MTQ0MyArMDEwMAotKysrIGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDAz NjQ3MzQgKzAxMDAKLUBAIC0xMDk5LDcgKzEwOTksNyBAQCBhcm1fbGludXhfcmVtb3ZlX2h3X2Jy ZWFrcG9pbnQgKHN0cnVjdCB0CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYXJt LWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU3NTEwMTQ5ICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0 LjUyOTUzMDA0NCArMDIwMAorQEAgLTEwNjMsNyArMTA2Myw3IEBACiAgICAgQUREUj8gICovCiAg c3RhdGljIGludAogIGFybV9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVj dCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMTExMiwxMSArMTExMiwxMSBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2FybS1saW51eC1uYXQuYwogIHsKICAgIGNvbnN0IHN0cnVjdCBh cm1fbGludXhfaHdicF9jYXAgKmNhcCA9IGFybV9saW51eF9nZXRfaHdicF9jYXAgKCk7CiAgICBD T1JFX0FERFIgbWF4X3dwX2xlbmd0aCwgYWxpZ25lZF9hZGRyOwotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9heC1nZGIuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h eC1nZGIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2F4 LWdkYi5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTgyMzUxNDU2ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjAxMzY0NzQxICsw MTAwCi1AQCAtODMsMTIgKzgzLDEyIEBAIHN0YXRpYyB2b2lkIGdlbl90cmFjZWRfcG9wIChzdHJ1 Y3QgZ2RiYXIKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9heC1nZGIuYwkyMDE2 LTA3LTE2IDE0OjMzOjQyLjA2MDUxMDE3MyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9heC1nZGIuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUyOTUzMDA0NCArMDIwMAorQEAgLTgz LDEyICs4MywxMiBAQAogIHN0YXRpYyB2b2lkIGdlbl9zaWduX2V4dGVuZCAoc3RydWN0IGFnZW50 X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2V4dGVuZCAoc3RydWN0 IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2ZldGNoIChz dHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgdHlwZSAqKTsKQEAgLTExMzEsNyArMTEzMSw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMKICBzdGF0aWMgdm9pZCBn ZW5fc3ltX29mZnNldCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHN5bWJvbCAqKTsKICBz dGF0aWMgdm9pZCBnZW5fdmFyX3JlZiAoc3RydWN0IGdkYmFyY2ggKiwgc3RydWN0IGFnZW50X2V4 cHIgKmF4LAogIAkJCSBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwgc3RydWN0IHN5bWJvbCAqdmFy KTsKLUBAIC0xMzYsMTUgKzEzNiwxNiBAQCBzdGF0aWMgdm9pZCBnZW5fZGVyZWYgKHN0cnVjdCBh Z2VudF9leHByCitAQCAtMTM2LDE1ICsxMzYsMTYgQEAKICBzdGF0aWMgdm9pZCBnZW5fYWRkcmVz c19vZiAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IGF4c192YWx1ZSAqKTsKICBzdGF0aWMg dm9pZCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdl bnRfZXhwciAqYXgsCiAgCQkJICAgICAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMTUx LDcgKzExNTEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAg CQkJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUpOwogIHN0YXRpYyB2b2lkIGdlbl9zdHJ1Y3RfcmVm IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJICAg IHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLAotQEAgLTUzOSw3ICs1NDAsNyBAQCBnZW5fZmV0Y2gg KHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0CitAQCAtNTM4LDcgKzUzOSw3IEBACiAgICAg cmlnaHQgc2hpZnQgaXQgYnkgLURJU1RBTkNFIGJpdHMgaWYgRElTVEFOQ0UgPCAwLiAgVGhpcyBn ZW5lcmF0ZXMKICAgICB1bnNpZ25lZCAobG9naWNhbCkgcmlnaHQgc2hpZnRzLiAgKi8KICBzdGF0 aWMgdm9pZApAQCAtMTE2MCw3ICsxMTYwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9heC1nZGIuYwogIHsKICAgIGlmIChkaXN0YW5jZSA+IDApCiAgICAgIHsKLUBAIC01OTMs NyArNTk0LDcgQEAgZ2VuX2ZyYW1lX2xvY2Fsc19hZGRyZXNzIChzdHJ1Y3QgZ2RiYXJjaAorQEAg LTU5Miw3ICs1OTMsNyBAQAogICAgIHByb2dyYW1taW5nIGluIE1MLCBpdCB3b3VsZCBiZSBjbGVh cmVyIHdoeSB0aGVzZSBhcmUgdGhlIHNhbWUKICAgICB0aGluZy4gICovCiAgc3RhdGljIHZvaWQK QEAgLTExNjksNyArMTE2OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgt Z2RiLmMKICB7CiAgICAvKiBJdCB3b3VsZCBzdWZmaWNlIHRvIHNpbXBseSBwdXNoIHRoZSBvZmZz ZXQgYW5kIGFkZCBpdCwgYnV0IHRoaXMKICAgICAgIG1ha2VzIGl0IGVhc2llciB0byByZWFkIHBv c2l0aXZlIGFuZCBuZWdhdGl2ZSBvZmZzZXRzIGluIHRoZQotQEAgLTEyNDksNyArMTI1MCw3IEBA IGdlbl9hZGRyZXNzX29mIChzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsIHMKK0BAIC0xMjQ4LDcgKzEy NDksNyBAQAogIHN0YXRpYyB2b2lkCiAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Np b24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJICBzdHJ1Y3QgYXhzX3ZhbHVlICp2 YWx1ZSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xMTc4LDcgKzExNzgsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgewogICAgLyogTm90ZSB0aGF0IG9wc1tp XSBmZXRjaGVzIDggPDwgaSBiaXRzLiAgKi8KICAgIHN0YXRpYyBlbnVtIGFnZW50X29wIG9wc1td Ci1AQCAtMTI4NCwxMyArMTI4NSwxMyBAQCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwCitAQCAtMTI4MywxMyArMTI4NCwxMyBAQAogIAogICAgLyogVGhlIGZpcnN0IGFu ZCBvbmUtYWZ0ZXItbGFzdCBiaXRzIGluIHRoZSBmaWVsZCwgYnV0IHJvdW5kZWQgZG93bgogICAg ICAgYW5kIHVwIHRvIGJ5dGUgYm91bmRhcmllcy4gICovCkBAIC0xMTk3LDcgKzExOTcsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgCiAgICAvKiBUaGUgaW5k ZXggaW4gb3BzIG9mIHRoZSBvcGNvZGUgd2UncmUgY29uc2lkZXJpbmcuICAqLwogICAgaW50IG9w OwotQEAgLTE0MDksNyArMTQxMCw3IEBAIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVjdCBleHByZXNz aW9uICpleHAKK0BAIC0xNDA4LDcgKzE0MDksNyBAQAogIHN0YXRpYyB2b2lkCiAgZ2VuX3ByaW1p dGl2ZV9maWVsZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJCSAgICAgc3RydWN0IGFnZW50 X2V4cHIgKmF4LCBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKQEAgLTEyMDYsNyArMTIwNiw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJcyB0 aGlzIGEgYml0ZmllbGQ/ICAqLwogICAgaWYgKFRZUEVfRklFTERfUEFDS0VEICh0eXBlLCBmaWVs ZG5vKSkKLUBAIC0xNDM0LDcgKzE0MzUsNyBAQCBnZW5fcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3Qg ZXhwcmVzc2lvbiAqCitAQCAtMTQzMyw3ICsxNDM0LDcgQEAKICBzdGF0aWMgaW50CiAgZ2VuX3N0 cnVjdF9yZWZfcmVjdXJzaXZlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRf ZXhwciAqYXgsCiAgCQkJICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKQEAgLTEyMTUsMTEgKzEy MTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYwogIHsKICAg IGludCBpLCByc2x0OwogICAgaW50IG5iYXNlcyA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7 Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdlbmVyYWwuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZW5lcmFsLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9heC1nZW5lcmFsLmMJMjAxNS0xMS0wMiAyMToyMzox MS4xODIzNTE0NTYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2VuZXJh bC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjAxMzY0NzQxICswMTAwCi1AQCAtMTkyLDcgKzE5Miw3 IEBAIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRfZXhwciAqeCwgaW50IG4KKy0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi9heC1nZW5lcmFsLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4w NjA1MTAxNzMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgtZ2VuZXJhbC5j CTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI5NTMwMDQ0ICswMjAwCitAQCAtMTk5LDcgKzE5OSw3IEBA CiAgCiAgLyogQXBwZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQUiwgdG8gcmVj b3JkIE4gYnl0ZXMuICAqLwogIHZvaWQKQEAgLTEyMjgsMTEgKzEyMjgsMTEgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZW5lcmFsLmMKICB7CiAgICAvKiBOIG11c3QgZml0 IGluIGEgYnl0ZS4gICovCiAgICBpZiAobiA8IDAgfHwgbiA+IDI1NSkKLUluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvYXguaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h eC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYXguaAky MDE1LTExLTAyIDIxOjIzOjExLjE4MzM1MTQ2MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9heC5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjAxMzY0NzQxICswMTAwCi1AQCAtMjA3 LDcgKzIwNyw3IEBAIGV4dGVybiB2b2lkIGF4X2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKkUKKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9heC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIu MDYwNTEwMTczICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F4LmgJMjAxNi0w Ny0xNiAxNDozMzo0NC41Mjk1MzAwNDQgKzAyMDAKK0BAIC0yMTAsNyArMjEwLDcgQEAKICBleHRl cm4gdm9pZCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKkVYUFIsIGludCBOKTsKICAK ICAvKiBBcHBlbmQgYSB0cmFjZV9xdWljayBpbnN0cnVjdGlvbiB0byBFWFBSLCB0byByZWNvcmQg TiBieXRlcy4gICovCkBAIC0xMjQxLDExICsxMjQxLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYXguaAogIAogIC8qIEFwcGVuZCBhIGdvdG8gb3AgdG8gRVhQUi4gIE9QIGlz IHRoZSBhY3R1YWwgb3AgKG11c3QgYmUgYW9wX2dvdG8gb3IKICAgICBhb3BfaWZfZ290bykuICBX ZSBhc3N1bWUgd2UgZG9uJ3Qga25vdyB0aGUgdGFyZ2V0IG9mZnNldCB5ZXQsCi1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9icmVha3BvaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1 MTAyNy5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xODgzNTE0OTYg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjA1MzY0NzY3ICswMTAwCi1AQCAtMjIxNSw5ICsyMjE1LDkgQEAgc2hvdWxk X2JlX2luc2VydGVkIChzdHJ1Y3QgYnBfbG9jYXRpb24gKgorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA2NzUxMDIzMCAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9icmVha3BvaW50LmMJMjAxNi0wNy0x NiAxNDozMzo0NC41MzE1MzAwNjAgKzAyMDAKK0BAIC0yMjUxLDkgKzIyNTEsOSBAQAogIAl7CiAg CSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogIAkJCSAgICAgICJpbmZydW46IHN0 ZXBwaW5nIHBhc3Qgbm9uLXN0ZXBwYWJsZSB3YXRjaHBvaW50LiAiCkBAIC0xMjU3LDcgKzEyNTcs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuYwogIAl9CiAg ICAgICAgcmV0dXJuIDA7CiAgICAgIH0KLUBAIC03MDUzLDcgKzcwNTMsNyBAQCBicmVha3BvaW50 X2FkZHJlc3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNzCitAQCAtNzE4MSw3ICs3MTgxLDcgQEAKICAK ICBzdGF0aWMgaW50CiAgYnJlYWtwb2ludF9hZGRyZXNzX21hdGNoX3JhbmdlIChzdHJ1Y3QgYWRk cmVzc19zcGFjZSAqYXNwYWNlMSwgQ09SRV9BRERSIGFkZHIxLApAQCAtMTI2Niw3ICsxMjY2LDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3BvaW50LmMKICAJCQkJQ09S RV9BRERSIGFkZHIyKQogIHsKICAgIHJldHVybiAoKGdkYmFyY2hfaGFzX2dsb2JhbF9icmVha3Bv aW50cyAodGFyZ2V0X2dkYmFyY2ggKCkpCi1AQCAtMTEzODcsNyArMTEzODcsNyBAQCBjYW5fdXNl X2hhcmR3YXJlX3dhdGNocG9pbnQgKHN0cnVjdCB2YWx1CitAQCAtMTE1MzQsNyArMTE1MzQsNyBA QAogIAkJICAgICAgJiYgVFlQRV9DT0RFICh2dHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZKSkKICAJ CXsKICAJCSAgQ09SRV9BRERSIHZhZGRyID0gdmFsdWVfYWRkcmVzcyAodik7CkBAIC0xMjc1LDEx ICsxMjc1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5j CiAgCQkgIGludCBudW1fcmVnczsKICAKICAJCSAgbGVuID0gKHRhcmdldF9leGFjdF93YXRjaHBv aW50cwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3BvaW50LmgKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYnJlYWtwb2ludC5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYnJlYWtwb2ludC5oCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMTkwMzUxNTA5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFr cG9pbnQuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNjM2NDc3MyArMDEwMAotQEAgLTIzNyw3ICsy MzcsNyBAQCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9icmVha3BvaW50LmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNjg1MTAyMzggKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYnJlYWtwb2ludC5oCTIwMTYtMDctMTYgMTQ6 MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtMjM3LDcgKzIzNyw3IEBACiAgCiAgICAvKiBJZiB0 aGlzIGlzIGEgcmFuZ2VkIGJyZWFrcG9pbnQsIHRoZW4gdGhpcyBmaWVsZCBjb250YWlucyB0aGUK ICAgICAgIGxlbmd0aCBvZiB0aGUgcmFuZ2UgdGhhdCB3aWxsIGJlIHdhdGNoZWQgZm9yIGV4ZWN1 dGlvbi4gICovCkBAIC0xMjg4LDcgKzEyODgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2JyZWFrcG9pbnQuaAogIAogICAgLyogSWYgdGhlIGJyZWFrcG9pbnQgbGl2ZXMgaW4g bWVtb3J5IGFuZCByZWFkaW5nIHRoYXQgbWVtb3J5IHdvdWxkCiAgICAgICBnaXZlIGJhY2sgdGhl IGJyZWFrcG9pbnQsIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGNvbnRlbnRzLCB0aGVuCi1AQCAt NDEzLDcgKzQxMyw3IEBAIHN0cnVjdCBicF9sb2NhdGlvbgorQEAgLTQxMyw3ICs0MTMsNyBAQAog ICAgLyogRm9yIGhhcmR3YXJlIHdhdGNocG9pbnRzLCB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IHJl Z2lvbiBiZWluZwogICAgICAgd2F0Y2hlZC4gIEZvciBoYXJkd2FyZSByYW5nZWQgYnJlYWtwb2lu dHMsIHRoZSBzaXplIG9mIHRoZQogICAgICAgYnJlYWtwb2ludCByYW5nZS4gICovCkBAIC0xMjk3 LDExICsxMjk3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2lu dC5oCiAgCiAgICAvKiBUeXBlIG9mIGhhcmR3YXJlIHdhdGNocG9pbnQuICAqLwogICAgZW51bSB0 YXJnZXRfaHdfYnBfdHlwZSB3YXRjaHBvaW50X3R5cGU7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2MtbGFuZy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtbGFu Zy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYy1sYW5n LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xOTAzNTE1MDkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYy1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDYzNjQ3NzMgKzAxMDAK LUBAIC0xODcsNyArMTg3LDcgQEAgY19wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlw ZSwgcworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtbGFuZy5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDY5NTEwMjQ2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2MtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtMTg2LDcg KzE4Niw3IEBACiAgCiAgdm9pZAogIGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0s IHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTEzMTAsNyArMTMxMCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmMKICAJICAgIGNvbnN0IGNoYXIgKnVzZXJfZW5jb2Rp bmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQogIHsKLUBAIC02NzYsNyArNjc2LDcgQEAgZXZhbHVhdGVfc3ViZXhw X2MgKHN0cnVjdCB0eXBlICpleHBlY3RfdAorQEAgLTY3NSw3ICs2NzUsNyBAQAogIAkgIH0KICAJ ZWxzZQogIAkgIHsKQEAgLTEzMTksNyArMTMxOSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYy1sYW5nLmMKICAKICAJICAgIC8qIFdyaXRlIHRoZSB0ZXJtaW5hdGluZyBjaGFy YWN0ZXIuICAqLwogIAkgICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTEVOR1RIICh0eXBlKTsgKytp KQotQEAgLTY4NSw3ICs2ODUsNyBAQCBldmFsdWF0ZV9zdWJleHBfYyAoc3RydWN0IHR5cGUgKmV4 cGVjdF90CitAQCAtNjg0LDcgKzY4NCw3IEBACiAgCSAgICBpZiAoc2F0aXNmeV9leHBlY3RlZCkK ICAJICAgICAgewogIAkJTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CkBAIC0xMzI4LDEx ICsxMzI4LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmMKICAK ICAJCWlmIChnZXRfZGlzY3JldGVfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKGV4cGVjdF90eXBl KSwKICAJCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9jLWxhbmcuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9jLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2Ri L2MtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkxMzUxNTE1ICswMTAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA2MzY0Nzcz ICswMTAwCi1AQCAtNzQsNyArNzQsNyBAQCBleHRlcm4gdm9pZCBjX3ByaW50X3R5cGVkZWYgKHN0 cnVjdCB0eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYy1sYW5nLmgJMjAx Ni0wNy0xNiAxNDozMzo0Mi4wNjk1MTAyNDYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvYy1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41MzI1MzAwNjggKzAyMDAKK0BAIC03 Nyw3ICs3Nyw3IEBACiAgCQkJICAgICBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKICBleHRlcm4gdm9p ZCBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKQEAgLTEzNDEs NyArMTM0MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmgKICAJ CQkgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJ CQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1AQCAtOTQsNyArOTQsNyBA QCBleHRlcm4gdm9pZCBjX3ByaW50Y2hhciAoaW50LCBzdHJ1Y3QgdHlwCitAQCAtOTcsNyArOTcs NyBAQAogIGV4dGVybiB2b2lkIGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICogc3RyZWFtLAog IAkJCXN0cnVjdCB0eXBlICplbHR0eXBlLAogIAkJCWNvbnN0IGdkYl9ieXRlICpzdHJpbmcsCkBA IC0xMzUwLDI4ICsxMzUwLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1s YW5nLmgKICAJCQljb25zdCBjaGFyICp1c2VyX2VuY29kaW5nLAogIAkJCWludCBmb3JjZV9lbGxp cHNlcywKICAJCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1A QCAtMTIwLDE0ICsxMjAsMTQgQEAgZXh0ZXJuIHZvaWQgY3BfcHJpbnRfY2xhc3NfbWVtYmVyIChj b25zdAotIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqLCBjaGFyICopOwotIAotIGV4dGVybiB2b2lk IGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLS0J CQkJICAgY29uc3QgZ2RiX2J5dGUgKiwgaW50LCBDT1JFX0FERFIsCi0rCQkJCSAgIGNvbnN0IGdk Yl9ieXRlICosIExPTkdFU1QsIENPUkVfQUREUiwKLSAJCQkJICAgc3RydWN0IHVpX2ZpbGUgKiwg aW50LAotIAkJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKLSAJCQkJICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKiwKLSAJCQkJICAgc3RydWN0IHR5cGUgKiosIGludCk7Ci0g Ci0gZXh0ZXJuIHZvaWQgY3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0cnVjdCB0eXBlICos Ci0tCQkJCQljb25zdCBnZGJfYnl0ZSAqLCBpbnQsIENPUkVfQUREUiwKLSsJCQkJCWNvbnN0IGdk Yl9ieXRlICosIExPTkdFU1QsIENPUkVfQUREUiwKLSAJCQkJCXN0cnVjdCB1aV9maWxlICosIGlu dCwKLSAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotIAkJCQkJY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKiwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy12YWxw cmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtdmFscHJpbnQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwky MDE1LTExLTAyIDIxOjIzOjExLjE5MTM1MTUxNSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9jLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDczNjQ3ODAgKzAxMDAK LUBAIC0yNDIsNyArMjQyLDcgQEAgY192YWxfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBl LCBjbworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE2 LTA3LTE2IDE0OjMzOjQyLjA3MDUxMDI1NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9jLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzI1MzAwNjggKzAyMDAKK0BA IC0yNDQsNyArMjQ0LDcgQEAKICAgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPiAwICYmIFRZUEVf TEVOR1RIICh1bnJlc29sdmVkX2VsdHR5cGUpID4gMCkKICAgICAgewogICAgICAgIExPTkdFU1Qg bG93X2JvdW5kLCBoaWdoX2JvdW5kOwpAQCAtMTM4MCw3ICsxMzYzLDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9jLXZhbHByaW50LmMKICAgICAgICBzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwogICAgICAgIGVudW0gYmZkX2VuZGlhbiBi eXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgICAgICB1bnNpZ25l ZCBpbnQgaSA9IDA7CS8qIE51bWJlciBvZiBjaGFyYWN0ZXJzIHByaW50ZWQuICAqLwotQEAgLTMx Niw4ICszMTYsOCBAQCBjX3ZhbF9wcmludF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCitA QCAtMzE4LDggKzMxOCw4IEBACiAgCSAgaWYgKGNwX2lzX3Z0YmxfcHRyX3R5cGUgKGVsdHR5cGUp KQogIAkgICAgewogIAkgICAgICBpID0gMTsKQEAgLTEzOTEsNyArMTM3NCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy12YWxwcmludC5jCiAgCSAgICB9CiAgCSAgZWxzZQog IAkgICAgewotQEAgLTM5NCw3ICszOTQsNyBAQCBjX3ZhbF9wcmludF9zdHJ1Y3QgKHN0cnVjdCB0 eXBlICp0eXBlLCBjCitAQCAtMzk2LDcgKzM5Niw3IEBACiAgCSAtZnZ0YWJsZV90aHVua3MuICAo T3RoZXJ3aXNlLCBsb29rIHVuZGVyCiAgCSBUWVBFX0NPREVfUFRSLikgICovCiAgICAgICAgc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKQEAgLTE0MDAsNyAr MTM4Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy12YWxwcmludC5jCiAg CQkgICAgKyBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwKICAJCQkJCSBWVEJMX0ZOQUREUl9PRkZT RVQpIC8gOCk7CiAgICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBUWVBFX0ZJRUxEX1RZ UEUgKHR5cGUsIFZUQkxfRk5BRERSX09GRlNFVCk7Ci1AQCAtNDkzLDcgKzQ5Myw3IEBAIGNfdmFs X3ByaW50X21lbWJlcnB0ciAoc3RydWN0IHR5cGUgKnR5cGUKK0BAIC00OTUsNyArNDk1LDcgQEAK ICAKICB2b2lkCiAgY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwKQEAgLTE0MDksMjkgKzEzOTIsMTggQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9jLXZhbHByaW50LmMKICAJICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBp bnQgcmVjdXJzZSwKICAJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAog IAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQotQEAgLTU2 NSw3ICs1NjUsOCBAQCBjX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0Ci0g CSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLSB7Ci0g ICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJlYWxfdHlwZSwgKnZhbF90eXBlOwotLSAgaW50IGZ1bGws IHRvcCwgdXNpbmdfZW5jOwotKyAgaW50IGZ1bGwsIHVzaW5nX2VuYzsKLSsgIExPTkdFU1QgdG9w OwotICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0cyA9ICpvcHRpb25zOwotIAotICAg b3B0cy5kZXJlZl9yZWYgPSAxOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1h YmkuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcC1hYmkuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2NwLWFiaS5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMTkyMzUxNTIyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Nw LWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA3MzY0NzgwICswMTAwCi1AQCAtNjQsMTIgKzY0 LDEyIEBAIGlzX29wZXJhdG9yX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCistLS0gZ2RiLTcuMTEu NTAuMjAxNjA3MTYub3JpZy9nZGIvY3AtYWJpLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNzA1MTAy NTQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtYWJpLmMJMjAxNi0wNy0x NiAxNDozMzo0NC41MzI1MzAwNjggKzAyMDAKK0BAIC02NCwxMiArNjQsMTIgQEAKICAgIHJldHVy biAoKmN1cnJlbnRfY3BfYWJpLmlzX29wZXJhdG9yX25hbWUpIChuYW1lKTsKICB9CiAgCiAtaW50 CiArTE9OR0VTVAogIGJhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5k ZXgsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBD T1JFX0FERFIgYWRkcmVzcywKLSsJCSAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQURE UiBhZGRyZXNzLAorIAkJICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJl c3MsCiAgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKIC0gIGludCByZXMgPSAwOwpA QCAtMTQzOSw3ICsxNDExLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1h YmkuYwogIAogICAgZ2RiX2Fzc2VydCAoY3VycmVudF9jcF9hYmkuYmFzZWNsYXNzX29mZnNldCAh PSBOVUxMKTsKICAKLUBAIC05Niw3ICs5Niw3IEBAIGJhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0 eXBlICp0eXBlLCBpbnQKK0BAIC05Niw3ICs5Niw3IEBACiAgc3RydWN0IHZhbHVlICoKICB2YWx1 ZV92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKICAJCQlzdHJ1Y3QgZm5f ZmllbGQgKmYsIGludCBqLApAQCAtMTQ0OCwyMCArMTQyMCwxMSBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5jCiAgewogICAgaWYgKChjdXJyZW50X2NwX2FiaS52aXJ0 dWFsX2ZuX2ZpZWxkKSA9PSBOVUxMKQogICAgICByZXR1cm4gTlVMTDsKLUBAIC0xMDYsNyArMTA2 LDcgQEAgdmFsdWVfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYQotIAotIHN0cnVj dCB0eXBlICoKLSB2YWx1ZV9ydHRpX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLAot LQkJIGludCAqdG9wLCBpbnQgKnVzaW5nX2VuYykKLSsJCSBMT05HRVNUICp0b3AsIGludCAqdXNp bmdfZW5jKQotIHsKLSAgIHN0cnVjdCB0eXBlICpyZXQgPSBOVUxMOwotIAotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9jcC1hYmkuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL2NwLWFiaS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkyMzUxNTIyICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA3MzY0 NzgwICswMTAwCi1AQCAtMTA4LDcgKzEwOCw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVl X3ZpcnR1YWxfZm5fZmkKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jcC1hYmku aAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MDUxMDI1NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9jcC1hYmkuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAor QEAgLTEwOCw3ICsxMDgsNyBAQAogIAkJCQkJICAgICBzdHJ1Y3QgZm5fZmllbGQgKmYsCiAgCQkJ CQkgICAgIGludCBqLAogIAkJCQkJICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTE0NzAsMjIg KzE0MzMsMTMgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuaAogIAog IAogIC8qIFRyeSB0byBmaW5kIHRoZSBydW4tdGltZSB0eXBlIG9mIFZBTFVFLCB1c2luZyBDKysg cnVuLXRpbWUgdHlwZQotQEAgLTEzNSw3ICsxMzUsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2 YWx1ZV92aXJ0dWFsX2ZuX2ZpCi0gICAgRlVMTCwgVE9QLCBhbmQgVVNJTkdfRU5DIGNhbiBlYWNo IGJlIHplcm8sIGluIHdoaWNoIGNhc2Ugd2UgZG9uJ3QKLSAgICBwcm92aWRlIHRoZSBjb3JyZXNw b25kaW5nIHBpZWNlIG9mIGluZm9ybWF0aW9uLiAgKi8KLSBleHRlcm4gc3RydWN0IHR5cGUgKnZh bHVlX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50ICpmdWxsLCBpbnQgKnRvcCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50ICpmdWxsLCBMT05HRVNUICp0b3AsCi0gCQkJCSAgICAg aW50ICp1c2luZ19lbmMpOwotIAotIC8qIENvbXB1dGUgdGhlIG9mZnNldCBvZiB0aGUgYmFzZWNs YXNzIHdoaWNoIGlzIHRoZSBJTkRFWHRoIGJhc2VjbGFzcwotQEAgLTE0NCwxMSArMTQ0LDExIEBA IGV4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfcnR0aV90eXBlIChzdHIKK0BAIC0xNDQsMTEgKzE0 NCwxMSBAQAogICAgIGNvbnRlbnRzIG9mIFZBTC4gIFRoZSByZXN1bHQgaXMgdGhlIG9mZnNldCBv ZiB0aGUgYmFzZWNsYXNzIHZhbHVlCiAgICAgcmVsYXRpdmUgdG8gKHRoZSBhZGRyZXNzIG9mKShB UkcpICsgT0ZGU0VULiAgKi8KICAKIC1leHRlcm4gaW50IGJhc2VjbGFzc19vZmZzZXQgKHN0cnVj dCB0eXBlICp0eXBlLAogLQkJCSAgICAgaW50IGluZGV4LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwKLS0JCQkgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsCistCQkJICAgICBMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwKIC0JCQkgICAgIENPUkVfQUREUiBhZGRyZXNzLAogLQkJCSAgICAgY29uc3Qg c3RydWN0IHZhbHVlICp2YWwpOwogK2V4dGVybiBMT05HRVNUIGJhc2VjbGFzc19vZmZzZXQgKHN0 cnVjdCB0eXBlICp0eXBlLApAQCAtMTQ5Niw0OCArMTQ1MCwyOCBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5oCiAgCiAgLyogRGVzY3JpYmUgdGhlIHRhcmdldCBvZiBh IHBvaW50ZXIgdG8gbWV0aG9kLiAgQ09OVEVOVFMgaXMgdGhlIGJ5dGUKICAgICBwYXR0ZXJuIHJl cHJlc2VudGluZyB0aGUgcG9pbnRlciB0byBtZXRob2QuICBUWVBFIGlzIHRoZSBwb2ludGVyIHRv Ci1AQCAtMjI3LDEyICsyMjcsMTMgQEAgc3RydWN0IGNwX2FiaV9vcHMKK0BAIC0yMjcsMTIgKzIy NywxMiBAQAogICAgc3RydWN0IHZhbHVlICooKnZpcnR1YWxfZm5fZmllbGQpIChzdHJ1Y3QgdmFs dWUgKiphcmcxcCwKICAJCQkJICAgICBzdHJ1Y3QgZm5fZmllbGQgKiBmLAogIAkJCQkgICAgIGlu dCBqLCBzdHJ1Y3QgdHlwZSAqIHR5cGUsCiAtCQkJCSAgICAgaW50IG9mZnNldCk7CiArCQkJCSAg ICAgTE9OR0VTVCBvZmZzZXQpOwogICAgc3RydWN0IHR5cGUgKigqcnR0aV90eXBlKSAoc3RydWN0 IHZhbHVlICp2LCBpbnQgKmZ1bGwsCi0tCQkJICAgICBpbnQgKnRvcCwgaW50ICp1c2luZ19lbmMp OworIAkJCSAgICAgTE9OR0VTVCAqdG9wLCBpbnQgKnVzaW5nX2VuYyk7CiAtICBpbnQgKCpiYXNl Y2xhc3Nfb2Zmc2V0KSAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBpbmRleCwKLS0JCQkgICBjb25z dCBiZmRfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKKy0JCQkgICBjb25zdCBi ZmRfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCiAtCQkJICAgQ09SRV9B RERSIGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKLSsJCQkgICAgIExPTkdFU1Qg KnRvcCwgaW50ICp1c2luZ19lbmMpOwogKyAgTE9OR0VTVCAoKmJhc2VjbGFzc19vZmZzZXQpIChz dHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAotKwkJCSAgICAgICBjb25zdCBiZmRfYnl0ZSAq dmFsYWRkciwKLSsJCQkgICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBh ZGRyZXNzLAotKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7CisrCQkJICAgICAg IGNvbnN0IGJmZF9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKysJCQkg ICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKICAgIHZv aWQgKCpwcmludF9tZXRob2RfcHRyKSAoY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzLAogIAkJCSAg ICBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7Ci1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLXZhbHByaW50LmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvY3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzox MS4xOTMzNTE1MjkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY3AtdmFscHJp bnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwODM2NDc4NyArMDEwMAotQEAgLTgwLDcgKzgwLDcg QEAgc3RhdGljIHZvaWQgY3BfcHJpbnRfc3RhdGljX2ZpZWxkIChzdHJ1YwotIAkJCQkgICBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLSAKLSBzdGF0aWMgdm9pZCBjcF9wcmlu dF92YWx1ZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLS0JCQkgICAgY29uc3QgZ2Ri X2J5dGUgKiwgaW50LAotKwkJCSAgICBjb25zdCBnZGJfYnl0ZSAqLCBMT05HRVNULAotIAkJCSAg ICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICosCi0gCQkJICAgIGludCwgY29uc3Qgc3RydWN0 IHZhbHVlICosCi0gCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICosCi1A QCAtMTU0LDcgKzE1NCw3IEBAIGNwX2lzX3Z0YmxfbWVtYmVyIChzdHJ1Y3QgdHlwZSAqdHlwZSkK LSAKLSB2b2lkCi0gY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IHR5cGUgKnJlYWxfdHlwZSwKLS0JCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwg aW50IG9mZnNldCwKLSsJCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBv ZmZzZXQsCi0gCQkgICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJl YW0sCi0gCQkgICAgICAgaW50IHJlY3Vyc2UsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotIAkJ ICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTMz NCw3ICszMzQsNyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlCist LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvY3AtdmFscHJpbnQuYwkyMDE2LTA3LTE2 IDE0OjMzOjQyLjA3MTUxMDI2MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9j cC12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtMzM0 LDcgKzMzNCw3IEBACiAgCQl9CiAgCSAgICAgIGVsc2UgaWYgKGkgPT0gdnB0cl9maWVsZG5vICYm IHR5cGUgPT0gdnB0cl9iYXNldHlwZSkKICAJCXsKQEAgLTE1NDYsNTcgKzE0ODAsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC12YWxwcmludC5jCiAgCQkgIHN0cnVjdCB0 eXBlICppX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkpOwogIAogIAkJICBpZiAodmFs cHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cmVhbSwgaV90eXBlLCBpX29mZnNldCwgdmFsKSkKLUBA IC00MTcsNyArNDE3LDcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlw ZQotIAotIHZvaWQKLSBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUgKnR5 cGUsCi0tCQkJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgb2Zmc2V0LAotKwkJCSAg ICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBvZmZzZXQsCi0gCQkJICAgIENPUkVf QUREUiBhZGRyZXNzLAotIAkJCSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKLSAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi1AQCAtNDM0LDcgKzQzNCw4IEBA IGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChzdHJ1Y3QgdHlwZQotIAkJCQkgICAgIFRBUkdF VF9DSEFSX0JJVCAqIFRZUEVfTEVOR1RIICh0eXBlKSkpCi0gICAgIHsKLSAgICAgICBzdHJ1Y3Qg dmFsdWUgKnZhbHVlOwotLSAgICAgIGludCBmdWxsLCB0b3AsIHVzaW5nX2VuYzsKLSsgICAgICBp bnQgZnVsbCwgdXNpbmdfZW5jOwotKyAgICAgIExPTkdFU1QgdG9wOwotIAotICAgICAgIC8qIFVn aCwgd2UgaGF2ZSB0byBjb252ZXJ0IGJhY2sgdG8gYSB2YWx1ZSBoZXJlLiAgKi8KLSAgICAgICB2 YWx1ZSA9IHZhbHVlX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHR5cGUsIHZhbGFkZHIgKyBv ZmZzZXQsCi1AQCAtNDU5LDcgKzQ2MCw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChz dHJ1Y3QgdHlwZQotIAotIHN0YXRpYyB2b2lkCi0gY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlLAotLQkJY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsIGludCBvZmZzZXQsCi0rCQljb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBvZmZz ZXQsCi0gCQlDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKLSAJCWlu dCByZWN1cnNlLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCWNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTQ2OSw3ICs0NzAsNyBAQCBjcF9wcmludF92 YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjCi0gICAgID0gKHN0cnVjdCB0eXBlICoqKSBv YnN0YWNrX25leHRfZnJlZSAoJmRvbnRfcHJpbnRfdmJfb2JzdGFjayk7Ci0gICBzdHJ1Y3Qgb2Jz dGFjayB0bXBfb2JzdGFjayA9IGRvbnRfcHJpbnRfdmJfb2JzdGFjazsKLSAgIGludCBpLCBuX2Jh c2VjbGFzc2VzID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsKLS0gIGludCB0aGlzb2Zmc2V0 OwotKyAgTE9OR0VTVCB0aGlzb2Zmc2V0OwotICAgc3RydWN0IHR5cGUgKnRoaXN0eXBlOwotIAot ICAgaWYgKGRvbnRfcHJpbnRfdmIgPT0gMCkKLUBAIC00ODMsNyArNDg0LDcgQEAgY3BfcHJpbnRf dmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1YwotIAotICAgZm9yIChpID0gMDsgaSA8IG5f YmFzZWNsYXNzZXM7IGkrKykKLSAgICAgewotLSAgICAgIGludCBib2Zmc2V0ID0gMDsKLSsgICAg ICBMT05HRVNUIGJvZmZzZXQgPSAwOwotICAgICAgIGludCBza2lwID0gMDsKLSAgICAgICBzdHJ1 Y3QgdHlwZSAqYmFzZWNsYXNzID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKHR5cGUs IGkpKTsKLSAgICAgICBjb25zdCBjaGFyICpiYXNlbmFtZSA9IFRZUEVfTkFNRSAoYmFzZWNsYXNz KTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZC1sYW5nLmgKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvZC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi9kLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjE5MzM1MTUy OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kLWxhbmcuaAkyMDE1LTExLTAy IDIxOjIzOjEzLjIwODM2NDc4NyArMDEwMAotQEAgLTgxLDcgKzgxLDcgQEAgZXh0ZXJuIHN0cnVj dCBibG9ja19zeW1ib2wgZF9sb29rdXBfbmVzdAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL2QtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDcxNTEwMjYyICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2QtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMz NTMwMDc2ICswMjAwCitAQCAtODEsNyArODEsNyBAQAogIC8qIERlZmluZWQgaW4gZC12YWxwcmlu dC5jICAqLwogIAogIGV4dGVybiB2b2lkIGRfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0xNjA1LDIwICsxNDkzLDExIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZC1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSBj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9kLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xOTMzNTE1MjkgKzAx MDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZC12YWxwcmludC5jCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjA4MzY0Nzg3ICswMTAwCi1AQCAtMjksNyArMjksNyBAQAotIAotIHN0YXRpYyBp bnQKLSBkeW5hbWljX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwKLS0JCSAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVz cywKLSsJCSAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0g CQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkgICAgY29uc3Qg c3RydWN0IHZhbHVlICp2YWwsCi0gCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCi1AQCAtNzMsOSArNzMsOSBAQCBkeW5hbWljX2FycmF5X3R5cGUgKHN0cnVj dCB0eXBlICp0eXBlLCBjCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZC12YWxw cmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDcxNTEwMjYyICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2QtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMzUzMDA3 NiArMDIwMAorQEAgLTczLDkgKzczLDkgQEAKICAKICAvKiBJbXBsZW1lbnRzIHRoZSBsYV92YWxf cHJpbnQgcm91dGluZSBmb3IgbGFuZ3VhZ2UgRC4gICovCiAgdm9pZApAQCAtMTYzMSwxMSArMTUx MCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFscHJpbnQuYwogICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7 CiAgICBpbnQgcmV0OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kb3VibGVzdC5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2RvdWJsZXN0LmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kb3VibGVzdC5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMTk0MzUxNTM1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Rv dWJsZXN0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDgzNjQ3ODcgKzAxMDAKLUBAIC03NjUsNyAr NzY1LDcgQEAgZmxvYXRmb3JtYXRfZnJvbV9kb3VibGVzdCAoY29uc3Qgc3RydWN0CistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZG91Ymxlc3QuYwkyMDE2LTA3LTE2IDE0OjMzOjQy LjA3MjUxMDI3MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kb3VibGVzdC5j CTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMzNTMwMDc2ICswMjAwCitAQCAtNzg0LDcgKzc4NCw3IEBA CiAgICAgYnV0IG5vdCBwYXNzZWQgb24gYnkgR0RCLiAgVGhpcyBzaG91bGQgYmUgZml4ZWQuICAq LwogIAogIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxvYXRmb3JtYXQgKgpAQCAtMTY0NCw3ICsxNTIz LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kb3VibGVzdC5jCiAgewogICAg Y29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICpmb3JtYXQ7CiAgCi1AQCAtNzkzLDggKzc5Myw4IEBA IGZsb2F0Zm9ybWF0X2Zyb21fbGVuZ3RoIChzdHJ1Y3QgZ2RiYXJjaAorQEAgLTgxMiw4ICs4MTIs OCBAQAogICAgZWxzZQogICAgICBmb3JtYXQgPSBOVUxMOwogICAgaWYgKGZvcm1hdCA9PSBOVUxM KQpAQCAtMTY1NSwxMSArMTUzNCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2RvdWJsZXN0LmMKICAgIHJldHVybiBmb3JtYXQ7CiAgfQogIAotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9kd2FyZjJsb2MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL2R3YXJmMmxvYy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTk3MzUxNTU1ICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjA5MzY0NzkzICswMTAwCi1AQCAtMTYzMiwxOSArMTYzMiwxOSBAQCBpbnNlcnRfYml0cyAodW5z aWduZWQgaW50IGRhdHVtLAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2R3YXJm MmxvYy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDc2NTEwMzAyICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2R3YXJmMmxvYy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMzNTMwMDc2 ICswMjAwCitAQCAtMTYzOCwxOSArMTYzOCwxOSBAQAogICAgIEJJVFNfQklHX0VORElBTiBpcyB0 YWtlbiBkaXJlY3RseSBmcm9tIGdkYmFyY2guICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0xNjg1 LDcgKzE1NjQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5j CiAgCiAgICBkZXN0X2F2YWlsID0gOCAtIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4OwogIAotQEAgLTE2 ODIsMTMgKzE2ODIsMTMgQEAgc3RhdGljIHZvaWQKK0BAIC0xNjg4LDEzICsxNjg4LDEzIEBACiAg cmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKICB7CiAgICBpbnQgaTsKQEAgLTE3 MDEsNyArMTU4MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9j LmMKICAgIHNpemVfdCBidWZmZXJfc2l6ZSA9IDA7CiAgICBnZGJfYnl0ZSAqYnVmZmVyID0gTlVM TDsKICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOwotQEAgLTE3MTUsOCArMTcxNSw4IEBAIHJl YWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCitAQCAtMTcyMSw4ICsxNzIxLDggQEAK ICAgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBvZmZzZXQgPCB0eXBlX2xlbjsgaSsr KQogICAgICB7CiAgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2Vz W2ldOwpAQCAtMTcxMiw3ICsxNTkxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9kd2FyZjJsb2MuYwogICAgICAgIGNvbnN0IGdkYl9ieXRlICppbnRlcm1lZGlhdGVfYnVmZmVy OwogIAogICAgICAgIC8qIENvbXB1dGUgc2l6ZSwgc291cmNlLCBhbmQgZGVzdGluYXRpb24gb2Zm c2V0cyBmb3IgY29weWluZywgaW4KLUBAIC0xODU2LDEzICsxODU2LDEzIEBAIHN0YXRpYyB2b2lk CitAQCAtMTg2MiwxMyArMTg2MiwxMyBAQAogIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZh bHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQogIHsKICAgIGludCBpOwpAQCAtMTcyOCw3ICsx NjA3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogICAg c2l6ZV90IGJ1ZmZlcl9zaXplID0gMDsKICAgIGdkYl9ieXRlICpidWZmZXIgPSBOVUxMOwogICAg c3RydWN0IGNsZWFudXAgKmNsZWFudXA7Ci1AQCAtMTg5MCw4ICsxODkwLDggQEAgd3JpdGVfcGll Y2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAorQEAgLTE4OTYsOCArMTg5Niw4IEBACiAg ICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykK ICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tp XTsKQEAgLTE3MzksMTggKzE2MTgsMTYgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9kd2FyZjJsb2MuYwogICAgICAgIGludCBuZWVkX2JpdHdpc2U7CiAgICAgICAgY29uc3QgZ2Ri X2J5dGUgKnNvdXJjZV9idWZmZXI7CiAgCi1AQCAtMjAxMCw4ICsyMDEwLDggQEAgd3JpdGVfcGll Y2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAotICAgIGEgc3ludGhldGljIHBvaW50ZXIu ICAqLworQEAgLTIwMTcsNyArMjAxNyw3IEBACiAgCiAgc3RhdGljIGludAotLWNoZWNrX3BpZWNl ZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IGJpdF9v ZmZzZXQsCisgY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbHVlLCBMT05HRVNUIGJpdF9vZmZzZXQsCiAtCQkJCWludCBiaXRfbGVuZ3RoKQotK2No ZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwg TE9OR0VTVCBiaXRfb2Zmc2V0LAogKwkJCQlMT05HRVNUIGJpdF9sZW5ndGgpCiAgewogICAgc3Ry dWN0IHBpZWNlX2Nsb3N1cmUgKmMKICAgICAgPSAoc3RydWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFs dWVfY29tcHV0ZWRfY2xvc3VyZSAodmFsdWUpOwotQEAgLTIwMjQsNyArMjAyNCw3IEBAIGNoZWNr X3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3QKK0BAIC0yMDMwLDcgKzIwMzAsNyBA QAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIGJpdF9sZW5ndGggPiAwOyBpKysp CiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNb aV07CkBAIC0xNzU5LDIwICsxNjM2LDE4IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvZHdhcmYybG9jLmMKICAKICAgICAgICBpZiAoYml0X29mZnNldCA+IDApCiAgCXsKLUBAIC0y MDY2LDkgKzIwNjYsMTAgQEAgaW5kaXJlY3RfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZh bAorQEAgLTIxMzIsOCArMjEzMiw4IEBACiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAgIHN0cnVj dCBmcmFtZV9pbmZvICpmcmFtZTsKICAgIHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiBiYXRv bjsKLS0gIGludCBpLCBiaXRfb2Zmc2V0LCBiaXRfbGVuZ3RoOworLSAgaW50IGksIGJpdF9sZW5n dGg7CistICBMT05HRVNUIGJpdF9vZmZzZXQ7CiArICBpbnQgaTsKLSsgIExPTkdFU1QgYml0X2xl bmd0aDsKKysgIExPTkdFU1QgYml0X2xlbmd0aCwgYml0X29mZnNldDsKICAgIHN0cnVjdCBkd2Fy Zl9leHByX3BpZWNlICpwaWVjZSA9IE5VTEw7Ci0tICBMT05HRVNUIGJ5dGVfb2Zmc2V0OwotKyAg TE9OR0VTVCBieXRlX29mZnNldCwgYml0X29mZnNldDsKKyAgIExPTkdFU1QgYnl0ZV9vZmZzZXQ7 CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcjsKLSAKLSAgIHR5cGUgPSBjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlICh2YWx1ZSkpOwotQEAgLTIwODMsNyArMjA4NCw3IEBAIGluZGlyZWN0 X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwKK0BAIC0yMTUwLDcgKzIxNTAsNyBAQAog ICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAg ICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07 CkBAIC0xNzgxLDcgKzE2NTYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3 YXJmMmxvYy5jCiAgCiAgICAgICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7Ci1AQCAtMjM2Myw3 ICsyMzY0LDcgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQorQEAg LTI0NDQsNyArMjQ0NCw3IEBACiAgCSAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlID0gZHdhcmZfZXhw cl9mZXRjaCAoY3R4LCAwKTsKICAJICAgIGdkYl9ieXRlICpjb250ZW50czsKICAJICAgIGNvbnN0 IGdkYl9ieXRlICp2YWxfYnl0ZXM7CkBAIC0xNzkwLDExICsxNjY1LDExIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMKICAKICAJICAgIGlmIChieXRlX29mZnNl dCArIFRZUEVfTEVOR1RIICh0eXBlKSA+IG4pCiAgCSAgICAgIGludmFsaWRfc3ludGhldGljX3Bv aW50ZXIgKCk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMnJlYWQuYwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0xMS0w MiAyMToyMzoxMS4yMDQzNTE2MDEgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv ZHdhcmYycmVhZC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjE1MzY0ODMzICswMTAwCi1AQCAtMTkx NywxMiArMTkxNywxMiBAQCBkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAo CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDgzNTEwMzU4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2R3YXJmMnJlYWQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzNjUzMDEwMCArMDIwMAorQEAgLTE5 MzUsMTIgKzE5MzUsMTIgQEAKICB9CiAgCiAgc3RhdGljIHZvaWQKQEAgLTE4MTEsNyArMTY4Niw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYycmVhZC5jCiAgfQogIAog IHN0YXRpYyB2b2lkCi1AQCAtMTI1NTQsOCArMTI1NTQsOCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChz dHJ1Y3QgZmllbGRfaW5mbyAqZmlwCitAQCAtMTI1NzMsOCArMTI1NzMsOCBAQAogIAkgICAgICAg ICBvYmplY3QsIGFuZCB0aGVuIHN1YnRyYWN0IG9mZiB0aGUgbnVtYmVyIG9mIGJpdHMgb2YKICAJ ICAgICAgICAgdGhlIGZpZWxkIGl0c2VsZi4gIFRoZSByZXN1bHQgaXMgdGhlIGJpdCBvZmZzZXQg b2YKICAJICAgICAgICAgdGhlIExTQiBvZiB0aGUgZmllbGQuICAqLwpAQCAtMTgyMiwxMSArMTY5 NywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMnJlYWQuYwogIAog IAkgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9zaXplLCBjdSk7CiAg CSAgICAgIGlmIChhdHRyKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9ldmFsLmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZXZhbC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZXZhbC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEu MjA2MzUxNjE0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V2YWwuYwkyMDE1 LTExLTAyIDIxOjIzOjEzLjIxNjM2NDgzOSArMDEwMAotQEAgLTMxNyw3ICszMTcsOCBAQCBldmFs dWF0ZV9zdHJ1Y3RfdHVwbGUgKHN0cnVjdCB2YWx1ZSAqc3RyCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvZXZhbC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg2NTEwMzgzICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2V2YWwuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0 LjUzNzUzMDEwOCArMDIwMAorQEAgLTMxNyw3ICszMTcsOCBAQAogICAgd2hpbGUgKC0tbmFyZ3Mg Pj0gMCkKICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsID0gTlVMTDsKQEAgLTE4MzYs NyArMTcxMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXZhbC5jCiAgICAg ICAgYmZkX2J5dGUgKmFkZHI7CiAgCiAgICAgICAgZmllbGRubysrOwotQEAgLTM3OCw3ICszNzks NyBAQCBpbml0X2FycmF5X2VsZW1lbnQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksCitAQCAtMzc4LDcg KzM3OSw3IEBACiAgCQkgICAgZW51bSBub3NpZGUgbm9zaWRlLCBMT05HRVNUIGxvd19ib3VuZCwg TE9OR0VTVCBoaWdoX2JvdW5kKQogIHsKICAgIExPTkdFU1QgaW5kZXg7CkBAIC0xODQ1LDcgKzE3 MjAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V2YWwuYwogIAogICAgaWYg KGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gQklOT1BfQ09NTUEpCiAgICAgIHsKLUBAIC01MjYs MTEgKzUyNywxMSBAQCBiaW5vcF9wcm9tb3RlIChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmCitA QCAtODIyLDExICs4MjMsMTEgQEAKICAgICAgLyogRklYTUU6IEFsc28gbWl4ZWQgaW50ZWdyYWwv Ym9vbGVhbnMsIHdpdGggcmVzdWx0IGFuIGludGVnZXIuICAqLwogICAgICB7CiAgICAgICAgY29u c3Qgc3RydWN0IGJ1aWx0aW5fdHlwZSAqYnVpbHRpbiA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCk7 CkBAIC0xODYwLDcgKzE3MzUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V2 YWwuYwogICAgICAgIGludCB1bnNpZ25lZF9vcGVyYXRpb247CiAgCiAgICAgICAgLyogRGV0ZXJt aW5lIHR5cGUgbGVuZ3RoIGFuZCBzaWduZWRuZXNzIGFmdGVyIHByb21vdGlvbiBmb3IKLUBAIC03 MTIsNyArNzEzLDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZQor QEAgLTEwMDgsNyArMTAwOSw3IEBACiAgICBzdHJ1Y3QgdmFsdWUgKiphcmd2ZWM7CiAgICBpbnQg Y29kZTsKICAgIGludCBpeDsKQEAgLTE4NjksNyArMTc0NCw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZXZhbC5jCiAgICBzdHJ1Y3QgdHlwZSAqKmFyZ190eXBlczsKICAgIGlu dCBzYXZlX3BvczE7CiAgICBzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiA9IE5VTEw7Ci1AQCAtODkx LDcgKzg5Miw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKK0BA IC0xMTg3LDcgKzExODgsNyBAQAogIAkgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlID0gVFlQRV9J TkRFWF9UWVBFICh0eXBlKTsKICAJICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9U QVJHRVRfVFlQRSAodHlwZSk7CiAgCSAgc3RydWN0IHZhbHVlICphcnJheSA9IGFsbG9jYXRlX3Zh bHVlIChleHBlY3RfdHlwZSk7CkBAIC0xODc4LDIxICsxNzUzLDExIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZXZhbC5jCiAgCSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91 bmQsIGluZGV4OwogIAogIAkgIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAm bG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotQEAgLTE5MDAsNyArMTkwMSw4IEBAIGV2YWx1 YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKLSAgICAgICB7Ci0gICAgICAgICBz dHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZzEpOwotICAgICAgICAgc3RydWN0IHR5 cGUgKnJlYWxfdHlwZTsKLS0gICAgICAgIGludCBmdWxsLCB0b3AsIHVzaW5nX2VuYzsKLSsgICAg ICAgIGludCBmdWxsLCB1c2luZ19lbmM7Ci0rCUxPTkdFU1QgdG9wOwotIAlzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyBvcHRzOwotIAotIAlnZXRfdXNlcl9wcmludF9vcHRpb25zICgmb3B0cyk7 Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjcub3JpZy9nZGIvZi1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDYzNTE2MTQg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmMJMjAxNS0xMS0wMiAy MToyMzoxMy4yMTYzNjQ4MzkgKzAxMDAKLUBAIC0xMDMsNyArMTAzLDcgQEAgZl9wcmludGNoYXIg KGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgcworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL2YtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg3NTEwMzkxICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM3 NTMwMTA4ICswMjAwCitAQCAtMTAzLDcgKzEwMyw3IEBACiAgCiAgc3RhdGljIHZvaWQKICBmX3By aW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnN0cmluZywKQEAgLTE5MDEsMTEgKzE3NjYsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuYwogIAkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGZf Z2V0X2VuY29kaW5nICh0eXBlKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1s YW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZi1sYW5nLmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLWxhbmcuaAkyMDE1LTExLTAy IDIxOjIzOjExLjIwNzM1MTYyMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9m LWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIxNjM2NDgzOSArMDEwMAotQEAgLTMwLDcgKzMw LDcgQEAgZXh0ZXJuIHZvaWQgZl9lcnJvciAoY2hhciAqKTsJLyogRGVmaW5lZAorLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg3 NTEwMzkxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFuZy5oCTIwMTYt MDctMTYgMTQ6MzM6NDQuNTM3NTMwMTA4ICswMjAwCitAQCAtMzAsNyArMzAsNyBAQAogIGV4dGVy biB2b2lkIGZfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKiwgY29uc3QgY2hhciAqLCBzdHJ1Y3Qg dWlfZmlsZSAqLCBpbnQsCiAgCQkJICBpbnQsIGNvbnN0IHN0cnVjdCB0eXBlX3ByaW50X29wdGlv bnMgKik7CiAgCkBAIC0xOTE0LDExICsxNzc5LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvZi1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJCSBjb25z dCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Kik7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToy MzoxMS4yMDczNTE2MjAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxw cmludC5jCTIwMTUtMTEtMDIgMjE6MjQ6MzQuMTA4ODk3MDkwICswMTAwCi1AQCAtMzgsNyArMzgs NyBAQCBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2b2lkCistLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIu MDg3NTEwMzkxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtdmFscHJpbnQu YwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzNzUzMDEwOCArMDIwMAorQEAgLTM4LDcgKzM4LDcgQEAK ICBzdGF0aWMgdm9pZCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICosIGludCk7CiAgc3RhdGlj IHZvaWQgZjc3X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICop OwogIApAQCAtMTkyNyw3ICsxNzkyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9mLXZhbHByaW50LmMKICAKICAvKiBBcnJheSB3aGljaCBob2xkcyBvZmZzZXRzIHRvIGJlIGFw cGxpZWQgdG8gZ2V0IGEgcm93J3MgZWxlbWVudHMKICAgICBmb3IgYSBnaXZlbiBhcnJheS4gIEFy cmF5IGFsc28gaG9sZHMgdGhlIHNpemUgb2YgZWFjaCBzdWJhcnJheS4gICovCi1AQCAtNzMsOCAr NzMsOCBAQCBmNzdfZ2V0X3VwcGVyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTczLDgg KzczLDggQEAKICBzdGF0aWMgdm9pZAogIGY3N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVn YXRlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CkBAIC0xOTM4LDcgKzE4MDMsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogIAogICAgLyogUmVjdXJzaXZl bHkgZ28gYWxsIHRoZSB3YXkgZG93biBpbnRvIGEgcG9zc2libHkgbXVsdGktZGltZW5zaW9uYWwK ICAgICAgIEY3NyBhcnJheSBhbmQgZ2V0IHRoZSBib3VuZHMuICBGb3Igc2ltcGxlIGFycmF5cywg dGhpcyBpcyBwcmV0dHkKLUBAIC0xMDYsNyArMTA2LDcgQEAgZjc3X2dldF9keW5hbWljX2xlbmd0 aF9vZl9hZ2dyZWdhdGUgKHN0cgorQEAgLTEwNiw3ICsxMDYsNyBAQAogIHN0YXRpYyB2b2lkCiAg Zjc3X3ByaW50X2FycmF5XzEgKGludCBuc3MsIGludCBuZGltZW5zaW9ucywgc3RydWN0IHR5cGUg KnR5cGUsCiAgCQkgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTE5NDcsNyArMTgxMiw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5jCiAgCQkgICBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCSAgIGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsLAogIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlv bnMsCi1AQCAtMTE1LDcgKzExNSw3IEBAIGY3N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQg bmRpbWVuc2kKK0BAIC0xMTUsNyArMTE1LDcgQEAKICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBl ID0gVFlQRV9JTkRFWF9UWVBFIChjaGVja190eXBlZGVmICh0eXBlKSk7CiAgICBDT1JFX0FERFIg YWRkciA9IGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZzZXQ7CiAgICBMT05HRVNUIGxvd2VyYm91bmQs IHVwcGVyYm91bmQ7CkBAIC0xOTU2LDcgKzE4MjEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogIAogICAgZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2Vf dHlwZSwgJmxvd2VyYm91bmQsICZ1cHBlcmJvdW5kKTsKICAKLUBAIC0xNzgsNyArMTc4LDcgQEAg Zjc3X3ByaW50X2FycmF5XzEgKGludCBuc3MsIGludCBuZGltZW5zaQorQEAgLTE3Miw3ICsxNzIs NyBAQAogIAogIHN0YXRpYyB2b2lkCiAgZjc3X3ByaW50X2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0xOTY1LDcgKzE4MzAsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogIAkJIENPUkVfQUREUiBhZGRy ZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJIGludCByZWN1cnNlLAogIAkJIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTIxNSw4ICsyMTUsOSBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlCitAQCAtMjExLDggKzIxMSw5IEBACiAgICAgZnVuY3Rp b247IHRoZXkgYXJlIGlkZW50aWNhbC4gICovCiAgCiAgdm9pZApAQCAtMTk3NywxMSArMTg0Miwx MSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogIAkgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCSAgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9maW5kdmFyLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZmlu ZHZhci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZmlu ZHZhci5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA4MzUxNjI3ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2ZpbmR2YXIuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIxNzM2NDg0NiAr MDEwMAotQEAgLTgwMSw3ICs4MDEsNyBAQCBzdHJ1Y3QgdmFsdWUgKgorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4ODUxMDM5 OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9maW5kdmFyLmMJMjAxNi0wNy0x NiAxNDozMzo0NC41Mzc1MzAxMDggKzAyMDAKK0BAIC04MDIsNyArODAyLDcgQEAKICBkZWZhdWx0 X3ZhbHVlX2Zyb21fcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdudW0sIHN0cnVj dCBmcmFtZV9pZCBmcmFtZV9pZCkKICB7CkBAIC0xOTkwLDIxICsxODU1LDE2IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZmluZHZhci5jCiAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVl ID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwogIAogICAgVkFMVUVfTFZBTCAodmFsdWUpID0gbHZh bF9yZWdpc3RlcjsKLUBAIC04MzQsMTAgKzgzNCwxMCBAQCB2b2lkCi0gcmVhZF9mcmFtZV9yZWdp c3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l KQotIHsKLSAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1l KTsKLS0gIGludCBvZmZzZXQgPSAwOwotLSAgaW50IHJlZ19vZmZzZXQgPSB2YWx1ZV9vZmZzZXQg KHZhbHVlKTsKLSsgIExPTkdFU1Qgb2Zmc2V0ID0gMDsKLSsgIExPTkdFU1QgcmVnX29mZnNldCA9 IHZhbHVlX29mZnNldCAodmFsdWUpOworQEAgLTgzOCw3ICs4MzgsNyBAQAorICAgTE9OR0VTVCBv ZmZzZXQgPSAwOworICAgTE9OR0VTVCByZWdfb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2YWx1ZSk7 CiAgICBpbnQgcmVnbnVtID0gVkFMVUVfUkVHTlVNICh2YWx1ZSk7CiAtICBpbnQgbGVuID0gdHlw ZV9sZW5ndGhfdW5pdHMgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSkpOwogKyAg TE9OR0VTVCBsZW4gPSB0eXBlX2xlbmd0aF91bml0cyAoY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlw ZSAodmFsdWUpKSk7CiAgCiAgICBnZGJfYXNzZXJ0IChWQUxVRV9MVkFMICh2YWx1ZSkgPT0gbHZh bF9yZWdpc3Rlcik7CiAgCi1AQCAtODUyLDcgKzg1Miw3IEBAIHJlYWRfZnJhbWVfcmVnaXN0ZXJf dmFsdWUgKHN0cnVjdCB2YWx1ZQorQEAgLTg1Myw3ICs4NTMsNyBAQAogICAgd2hpbGUgKGxlbiA+ IDApCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnJlZ3ZhbCA9IGdldF9mcmFtZV9yZWdp c3Rlcl92YWx1ZSAoZnJhbWUsIHJlZ251bSk7CkBAIC0yMDEzLDExICsxODczLDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZmluZHZhci5jCiAgCiAgICAgICAgLyogSWYgdGhl IHJlZ2lzdGVyIGxlbmd0aCBpcyBsYXJnZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGJ5dGVzCiAgICAg ICAgICAgcmVtYWluaW5nIHRvIGNvcHksIHRoZW4gb25seSBjb3B5IHRoZSBhcHByb3ByaWF0ZSBi eXRlcy4gICovCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1lLmMKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZnJhbWUuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2ZyYW1lLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDgz NTE2MjcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZnJhbWUuYwkyMDE1LTEx LTAyIDIxOjIzOjEzLjIxODM2NDg1MiArMDEwMAotQEAgLTEyNzIsNyArMTI3Miw3IEBAIGRlcHJl Y2F0ZWRfZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGYKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9mcmFtZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg5NTEwNDA3ICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZyYW1lLmMJMjAxNi0wNy0xNiAxNDozMzo0 NC41Mzg1MzAxMTYgKzAyMDAKK0BAIC0xMzIwLDcgKzEzMjAsNyBAQAogIAogIGludAogIGdldF9m cmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVt LApAQCAtMjAyNiw3ICsxODg2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9m cmFtZS5jCiAgCQkJICBpbnQgKm9wdGltaXplZHAsIGludCAqdW5hdmFpbGFibGVwKQogIHsKICAg IHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLUBAIC0x MzAxLDcgKzEzMDEsNyBAQCBnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9p CitAQCAtMTM0OSw3ICsxMzQ5LDcgQEAKICAgICAgfQogICAgaWYgKGxlbiA+IG1heHNpemUpCiAg ICAgIGVycm9yIChfKCJCYWQgZGVidWcgaW5mb3JtYXRpb24gZGV0ZWN0ZWQ6ICIKQEAgLTIwMzUs MTEgKzE4OTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5jCiAg CiAgICAvKiBDb3B5IHRoZSBkYXRhLiAgKi8KICAgIHdoaWxlIChsZW4gPiAwKQotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2ZyYW1lLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmln L2dkYi9mcmFtZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA5MzUxNjM0ICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1lLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMTgzNjQ4 NTIgKzAxMDAKLUBAIC01ODUsNyArNTg1LDcgQEAgZXh0ZXJuIHZvaWQgcHV0X2ZyYW1lX3JlZ2lz dGVyIChzdHJ1Y3QgZgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2ZyYW1lLmgJ MjAxNi0wNy0xNiAxNDozMzo0Mi4wOTA1MTA0MTUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvZnJhbWUuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzODUzMDExNiArMDIwMAorQEAg LTU4NSw3ICs1ODUsNyBAQAogICAgIGNvbnRlbnRzIGFyZSBvcHRpbWl6ZWQgb3V0IG9yIHVuYXZh aWxhYmxlLCBzZXQgKk9QVElNSVpFRFAsCiAgICAgKlVOQVZBSUxBQkxFUCBhY2NvcmRpbmdseS4g ICovCiAgZXh0ZXJuIGludCBnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSwgaW50IHJlZ251bSwKQEAgLTIwNDgsMTEgKzE5MDgsMTEgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5oCiAgCQkJCSAgICAgZ2RiX2J5dGUgKm15YWRk ciwKICAJCQkJICAgICBpbnQgKm9wdGltaXplZHAsIGludCAqdW5hdmFpbGFibGVwKTsKICAKLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBlcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjcub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxMjM1MTY1 MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjIwMzY0ODY2ICswMTAwCi1AQCAtMjcxOSw3ICsyNzE5LDcgQEAgYWxsb2Nh dGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKnR5cAorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTI1MTA0MzEgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ2RidHlwZXMuYwkyMDE2LTA3LTE2IDE0 OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAorQEAgLTI3MjIsNyArMjcyMiw3IEBACiAgICAgbGVhc3Qg YXMgbG9uZyBhcyBPQkpGSUxFLiAgKi8KICAKICBzdHJ1Y3QgdHlwZSAqCkBAIC0yMDYxLDcgKzE5 MjEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmMKICAJICAg Y29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgewogICAgc3RydWN0 IHR5cGUgKnR5cGU7Ci1AQCAtMjk1OSw4ICsyOTU5LDggQEAgaXNfcHVibGljX2FuY2VzdG9yIChz dHJ1Y3QgdHlwZSAqYmFzZSwgcworQEAgLTI5NjIsOCArMjk2Miw4IEBACiAgCiAgc3RhdGljIGlu dAogIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3Qg dHlwZSAqZGNsYXNzLApAQCAtMjA3Miw3ICsxOTMyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9nZGJ0eXBlcy5jCiAgCQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB2 YWx1ZSAqdmFsKQogIHsKICAgIGludCBpLCBjb3VudCA9IDA7Ci1AQCAtMjk3MSw3ICsyOTcxLDcg QEAgaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKgorQEAgLTI5NzQsNyAr Mjk3NCw3IEBACiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChkY2xhc3Mp ICYmIGNvdW50IDwgMjsgKytpKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKml0ZXI7CkBA IC0yMDgxLDcgKzE5NDEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5 cGVzLmMKICAKICAgICAgICBpdGVyID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKGRj bGFzcywgaSkpOwogIAotQEAgLTMwMTIsNyArMzAxMiw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93 b3JrZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0zMDE1LDcgKzMwMTUsNyBAQAogIGludAogIGlzX3Vu aXF1ZV9hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsK QEAgLTIwOTAsNyArMTk1MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2Ri dHlwZXMuYwogIAogICAgcmV0dXJuIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKGJhc2UsIHZh bHVlX3R5cGUgKHZhbCksICZvZmZzZXQsCiAgCQkJCSAgICB2YWx1ZV9jb250ZW50c19mb3JfcHJp bnRpbmcgKHZhbCksCi1AQCAtNDIwMCw3ICs0MjAwLDcgQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAo c3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNDIwMyw3ICs0MjAzLDcgQEAKICAgICAgICBicmVhazsK ICAgICAgfQogICAgcHV0c19maWx0ZXJlZCAoIlxuIik7CkBAIC0yMDk5LDQwICsxOTU5LDIwIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYwogICAgaWYgKFRZUEVf T0JKRklMRV9PV05FRCAodHlwZSkpCiAgICAgIHsKICAgICAgICBwcmludGZpX2ZpbHRlcmVkIChz cGFjZXMsICJvYmpmaWxlICIpOwotQEAgLTQzMjgsOCArNDMyOCw4IEBAIHJlY3Vyc2l2ZV9kdW1w X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLAotIAkJCSAgaWR4LCBwbG9uZ2VzdCAoVFlQRV9GSUVM RF9FTlVNVkFMICh0eXBlLCBpZHgpKSk7Ci0gICAgICAgZWxzZQotIAlwcmludGZpX2ZpbHRlcmVk IChzcGFjZXMgKyAyLAotLQkJCSAgIlslZF0gYml0cG9zICVkIGJpdHNpemUgJWQgdHlwZSAiLAot LQkJCSAgaWR4LCBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaWR4KSwKLSsJCQkgICJbJWRdIGJp dHBvcyAlcyBiaXRzaXplICVkIHR5cGUgIiwKLSsJCQkgIGlkeCwgcGxvbmdlc3QgKFRZUEVfRklF TERfQklUUE9TICh0eXBlLCBpZHgpKSwKLSAJCQkgIFRZUEVfRklFTERfQklUU0laRSAodHlwZSwg aWR4KSk7Ci0gICAgICAgZ2RiX3ByaW50X2hvc3RfYWRkcmVzcyAoVFlQRV9GSUVMRF9UWVBFICh0 eXBlLCBpZHgpLCBnZGJfc3Rkb3V0KTsKLSAgICAgICBwcmludGZfZmlsdGVyZWQgKCIgbmFtZSAn JXMnICgiLAotQEAgLTQ2NzEsNyArNDY3MSw3IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5 cGUgKnR5cGUpCitAQCAtNDY2Myw3ICs0NjYzLDcgQEAKICAKICBzdHJ1Y3QgdHlwZSAqCiAgYXJj aF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKLS0JICAgZW51bSB0eXBlX2NvZGUgY29k ZSwgaW50IGxlbmd0aCwgY2hhciAqbmFtZSkKLSsJICAgZW51bSB0eXBlX2NvZGUgY29kZSwgTE9O R0VTVCBsZW5ndGgsIGNoYXIgKm5hbWUpCistCSAgIGVudW0gdHlwZV9jb2RlIGNvZGUsIGludCBs ZW5ndGgsIGNvbnN0IGNoYXIgKm5hbWUpCisrCSAgIGVudW0gdHlwZV9jb2RlIGNvZGUsIExPTkdF U1QgbGVuZ3RoLCBjb25zdCBjaGFyICpuYW1lKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwog IAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5oCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjEz MzUxNjYwICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmgJMjAx NS0xMS0wMiAyMToyMzoxMy4yMjAzNjQ4NjYgKzAxMDAKLUBAIC01MTIsNyArNTEyLDcgQEAgdW5p b24gZmllbGRfbG9jYXRpb24KLSAgICAgIGdkYmFyY2hfYml0c19iaWdfZW5kaWFuPTAgdGFyZ2V0 cywgaXQgaXMgdGhlIGJpdCBvZmZzZXQgdG8KLSAgICAgIHRoZSBMU0IuICAqLwotIAotLSAgaW50 IGJpdHBvczsKLSsgIExPTkdFU1QgYml0cG9zOwotIAotICAgLyogKiBFbnVtIHZhbHVlLiAgKi8K LSAgIExPTkdFU1QgZW51bXZhbDsKLUBAIC04MjIsNyArODIyLDcgQEAgc3RydWN0IHR5cGUKKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMDkzNTEwNDM5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dkYnR5 cGVzLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BAIC04MDYsNyArODA2 LDcgQEAKICAgICAgIHR5cGVfbGVuZ3RoX3VuaXRzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIGlu IG9yZGVyIHRvIGdldCB0aGUgbGVuZ3RoCiAgICAgICBleHByZXNzZWQgaW4gdGFyZ2V0IGFkZHJl c3NhYmxlIG1lbW9yeSB1bml0cy4gICovCiAgCkBAIC0yMTQxLDcgKzE5ODEsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmgKICAKICAgIC8qICogQ29yZSB0eXBl LCBzaGFyZWQgYnkgYSBncm91cCBvZiBxdWFsaWZpZWQgdHlwZXMuICAqLwogIAotQEAgLTE3MTcs MTEgKzE3MTcsMTIgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCB0eXBlX2xlbmd0aF91bml0cyAocwor QEAgLTE2NzcsMTEgKzE2NzcsMTEgQEAKICAKICAvKiAqIEhlbHBlciBmdW5jdGlvbiB0byBjb25z dHJ1Y3Qgb2JqZmlsZS1vd25lZCB0eXBlcy4gICovCiAgCkBAIC0yMTUwLDE3ICsxOTkwLDE2IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuaAogIAkJCSAgICAgICBz dHJ1Y3Qgb2JqZmlsZSAqKTsKICAKICAvKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCBh cmNoaXRlY3R1cmUtb3duZWQgdHlwZXMuICAqLwotLWV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF90 eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5cGVfY29kZSwgaW50LCBjaGFyICopOworLWV4 dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5cGVf Y29kZSwgaW50LAogK2V4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqLCBlbnVtIHR5cGVfY29kZSwgTE9OR0VTVCwKLSsJCQkgICAgICAgY2hhciAqKTsKLSBleHRl cm4gc3RydWN0IHR5cGUgKmFyY2hfaW50ZWdlcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQs IGludCwgY2hhciAqKTsKLSBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfY2hhcmFjdGVyX3R5cGUg KHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOwotIGV4dGVybiBzdHJ1Y3QgdHlw ZSAqYXJjaF9ib29sZWFuX3R5cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICop OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUtdjItYWJpLmMKLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9nbnUtdjItYWJpLmMJMjAxNS0x MS0wMiAyMToyMzoxMS4yMTMzNTE2NjAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvZ251LXYyLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIxMzY0ODcyICswMTAwCi1AQCAt ODIsNyArODIsNyBAQCBnbnV2Ml9pc19vcGVyYXRvcl9uYW1lIChjb25zdCBjaGFyICpuYW1lCisg CQkJICAgICAgIGNvbnN0IGNoYXIgKik7CisgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2ludGVn ZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50LCBpbnQsCisgCQkJCSAgICAgICBjb25zdCBj aGFyICopOworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUtdjItYWJpLmMKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9nbnUtdjItYWJpLmMJ MjAxNi0wNy0xNiAxNDozMzo0Mi4wOTM1MTA0MzkgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvZ251LXYyLWFiaS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM5NTMwMTI0ICswMjAw CitAQCAtODIsNyArODIsNyBAQAogICAgIFRZUEUgaXMgdGhlIHR5cGUgaW4gd2hpY2ggRiBpcyBs b2NhdGVkLiAgKi8KICBzdGF0aWMgc3RydWN0IHZhbHVlICoKICBnbnV2Ml92aXJ0dWFsX2ZuX2Zp ZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3RydWN0IGZuX2ZpZWxkICogZiwgaW50IGosCkBA IC0yMTY5LDQwICsyMDA4LDI2IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251 LXYyLWFiaS5jCiAgewogICAgc3RydWN0IHZhbHVlICphcmcxID0gKmFyZzFwOwogICAgc3RydWN0 IHR5cGUgKnR5cGUxID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwotQEAgLTE4 Myw3ICsxODMsOCBAQCBnbnV2Ml92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphCi0g Ci0gCi0gc3RhdGljIHN0cnVjdCB0eXBlICoKLS1nbnV2Ml92YWx1ZV9ydHRpX3R5cGUgKHN0cnVj dCB2YWx1ZSAqdiwgaW50ICpmdWxsLCBpbnQgKnRvcCwgaW50ICp1c2luZ19lbmMpCi0rZ251djJf dmFsdWVfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwgTE9OR0VTVCAqdG9w LAotKwkJICAgICAgIGludCAqdXNpbmdfZW5jKQotIHsKLSAgIHN0cnVjdCB0eXBlICprbm93bl90 eXBlOwotICAgc3RydWN0IHR5cGUgKnJ0dGlfdHlwZTsKLUBAIC0zMzgsOSArMzM5LDkgQEAgdmJf bWF0Y2ggKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5kZXgsCitAQCAtMzM4LDcgKzMzOCw3IEBA CiAgICAgdGFyZ2V0KS4gIFRoZSByZXN1bHQgaXMgdGhlIG9mZnNldCBvZiB0aGUgYmFzZWNsYXNz IHZhbHVlIHJlbGF0aXZlCiAgICAgdG8gKHRoZSBhZGRyZXNzIG9mKShBUkcpICsgT0ZGU0VULiAg Ki8KICAKIC1zdGF0aWMgaW50CiArc3RhdGljIExPTkdFU1QKICBnbnV2Ml9iYXNlY2xhc3Nfb2Zm c2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAotLQkJCWNvbnN0IGJmZF9ieXRlICp2 YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotKwkJCWNvbnN0IGJmZF9ieXRlICp2YWxhZGRy LCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwg TE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCiAgCQkJQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsKQotIHsKLSAgIHN0cnVjdCB0eXBlICpiYXNldHlwZSA9IFRZUEVfQkFT RUNMQVNTICh0eXBlLCBpbmRleCk7Ci1AQCAtMzU4LDggKzM1OSw4IEBAIGdudXYyX2Jhc2VjbGFz c19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKK0BAIC0zNTgsOCArMzU4LDcgQEAKICAJICBpZiAo dmJfbWF0Y2ggKHR5cGUsIGksIGJhc2V0eXBlKSkKICAJICAgIHsKICAJICAgICAgc3RydWN0IHR5 cGUgKmZpZWxkX3R5cGU7Ci0tCSAgICAgIGludCBmaWVsZF9vZmZzZXQ7CistCSAgICAgIExPTkdF U1QgZmllbGRfb2Zmc2V0OwogLQkgICAgICBpbnQgZmllbGRfbGVuZ3RoOwotKwkgICAgICBMT05H RVNUIGZpZWxkX29mZnNldDsKLSsJICAgICAgTE9OR0VTVCBmaWVsZF9sZW5ndGg7CisrCSAgICAg IExPTkdFU1QgZmllbGRfb2Zmc2V0LCBmaWVsZF9sZW5ndGg7CiAgCSAgICAgIENPUkVfQUREUiBh ZGRyOwogIAogIAkgICAgICBmaWVsZF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9U WVBFICh0eXBlLCBpKSk7Ci1AQCAtMzgzLDcgKzM4NCw3IEBAIGdudXYyX2Jhc2VjbGFzc19vZmZz ZXQgKHN0cnVjdCB0eXBlICp0eXAKK0BAIC0zODMsNyArMzgyLDcgQEAKICAJICAvKiBEb24ndCBn byB0aHJvdWdoIGJhc2VjbGFzc19vZmZzZXQsIGFzIHRoYXQgd3JhcHMKICAJICAgICBleGNlcHRp b25zLCB0aHVzLCBpbm5lciBleGNlcHRpb25zIHdvdWxkIGJlIHdyYXBwZWQgbW9yZQogIAkgICAg IHRoYW4gb25jZS4gICovCkBAIC0yMjExLDExICsyMDM2LDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZ251LXYyLWFiaS5jCiAgCSAgICBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0 ICh0eXBlLCBpLCB2YWxhZGRyLAogIAkJCQkgICAgZW1iZWRkZWRfb2Zmc2V0LCBhZGRyZXNzLCB2 YWwpOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUtdjMtYWJpLmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ251LXYzLWFiaS5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ251LXYzLWFiaS5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMjE0MzUxNjY3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2du dS12My1hYmkuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMTM2NDg3MiArMDEwMAotQEAgLTEwOCw3 ICsxMDgsNyBAQCBidWlsZF9nZGJfdnRhYmxlX3R5cGUgKHN0cnVjdCBnZGJhcmNoICphCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ251LXYzLWFiaS5jCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMDk0NTEwNDQ3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dudS12 My1hYmkuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAorQEAgLTEwOCw3ICsx MDgsNyBAQAogIHsKICAgIHN0cnVjdCB0eXBlICp0OwogICAgc3RydWN0IGZpZWxkICpmaWVsZF9s aXN0LCAqZmllbGQ7CkBAIC0yMjI0LDcgKzIwNDksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2dudS12My1hYmkuYwogIAogICAgc3RydWN0IHR5cGUgKnZvaWRfcHRyX3R5cGUK ICAgICAgPSBidWlsdGluX3R5cGUgKGFyY2gpLT5idWlsdGluX2RhdGFfcHRyOwotQEAgLTE4NCw3 ICsxODQsNyBAQCB2dGFibGVfcHRyZGlmZl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCitAQCAt MTg0LDcgKzE4NCw3IEBACiAgLyogUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2Yg dGhlIGltYWdpbmFyeSBgc3RydWN0CiAgICAgZ2RiX2dudV92M19hYmlfdnRhYmxlJyBvYmplY3Qg dG8gdGhlIHZ0YWJsZSdzICJhZGRyZXNzIHBvaW50IgogICAgIChpLmUuLCB3aGVyZSBvYmplY3Rz JyB2aXJ0dWFsIHRhYmxlIHBvaW50ZXJzIHBvaW50KS4gICovCkBAIC0yMjMzLDE2ICsyMDU4LDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUtdjMtYWJpLmMKICB2dGFibGVf YWRkcmVzc19wb2ludF9vZmZzZXQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQogIHsKICAgIHN0 cnVjdCB0eXBlICp2dGFibGVfdHlwZQotQEAgLTI4Niw3ICsyODYsNyBAQCBnbnV2M19nZXRfdnRh YmxlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjCi0gCi0gc3RhdGljIHN0cnVjdCB0eXBlICoKLSBn bnV2M19ydHRpX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tICAgICAgICAgICAgICAgICBp bnQgKmZ1bGxfcCwgaW50ICp0b3BfcCwgaW50ICp1c2luZ19lbmNfcCkKLSsgICAgICAgICAgICAg ICAgIGludCAqZnVsbF9wLCBMT05HRVNUICp0b3BfcCwgaW50ICp1c2luZ19lbmNfcCkKLSB7Ci0g ICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKLSAgIHN0cnVjdCB0eXBlICp2YWx1ZXNfdHlwZSA9 IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSk7Ci1AQCAtNDExLDcgKzQxMSw3IEBA IGdudXYzX2dldF92aXJ0dWFsX2ZuIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKK0BAIC00MTEsNyArNDEx LDcgQEAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKICBnbnV2M192aXJ0dWFsX2ZuX2ZpZWxkIChz dHJ1Y3QgdmFsdWUgKip2YWx1ZV9wLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBm bl9maWVsZCAqZiwgaW50IGosCkBAIC0yMjUxLDE4ICsyMDY3LDE2IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCiAgewogICAgc3RydWN0IHR5cGUgKnZhbHVl c190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoKnZhbHVlX3ApKTsKICAgIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoOwotQEAgLTQ0MSwxNiArNDQxLDE2IEBAIGdudXYzX3ZpcnR1YWxf Zm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKnYKK0BAIC00NDEsNyArNDQxLDcgQEAKICAKICAgICAt MSBpcyByZXR1cm5lZCBvbiBlcnJvci4gICovCiAgCiAtc3RhdGljIGludAogK3N0YXRpYyBMT05H RVNUCiAgZ251djNfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBpbmRl eCwKLS0JCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJ CQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgCQkJ Y29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAogIAkJCUNP UkVfQUREUiBhZGRyZXNzLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKLSB7Ci0gICBzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaDsKK0BAIC00NTAsNyArNDUwLDcgQEAKICAgIHN0cnVjdCB0eXBlICpw dHJfdHlwZTsKICAgIHN0cnVjdCB2YWx1ZSAqdnRhYmxlOwogICAgc3RydWN0IHZhbHVlICp2YmFz ZV9hcnJheTsKQEAgLTIyNzEsNyArMjA4NSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvZ251LXYzLWFiaS5jCiAgCiAgICAvKiBEZXRlcm1pbmUgYXJjaGl0ZWN0dXJlLiAgKi8K ICAgIGdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKLUBAIC00NzQsNyArNDc0LDcgQEAg Z251djNfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cAorQEAgLTQ3NCw3ICs0NzQs NyBAQAogICAgY3VyX2Jhc2Vfb2Zmc2V0ID0gY3VyX2Jhc2Vfb2Zmc2V0ICsgdnRhYmxlX2FkZHJl c3NfcG9pbnRfb2Zmc2V0IChnZGJhcmNoKTsKICAgIGlmICgoLSBjdXJfYmFzZV9vZmZzZXQpICUg VFlQRV9MRU5HVEggKHB0cl90eXBlKSAhPSAwKQogICAgICBlcnJvciAoXygiTWlzYWxpZ25lZCB2 YmFzZSBvZmZzZXQuIikpOwpAQCAtMjI4MCw3ICsyMDk0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9nbnUtdjMtYWJpLmMKICAKICAgIHZ0YWJsZSA9IGdudXYzX2dldF92dGFi bGUgKGdkYmFyY2gsIHR5cGUsIGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZzZXQpOwogICAgZ2RiX2Fz c2VydCAodnRhYmxlICE9IE5VTEwpOwotQEAgLTUxOCw3ICs1MTgsNyBAQCBnbnV2M19maW5kX21l dGhvZF9pbiAoc3RydWN0IHR5cGUgKmRvbWFpCitAQCAtNTE4LDcgKzUxOCw3IEBACiAgICAgICB3 ZSdyZSBvdXQgb2YgbHVjay4gICovCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFT U0VTIChkb21haW4pOyBpKyspCiAgICAgIHsKQEAgLTIyODksMTEgKzIxMDMsMTEgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUtdjMtYWJpLmMKICAgICAgICBzdHJ1Y3QgdHlw ZSAqYmFzZXR5cGU7CiAgCiAgICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMIChkb21haW4s IGkpKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nby1sYW5nLmgKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ28tbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ28tbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE0 MzUxNjY3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dvLWxhbmcuaAkyMDE1 LTExLTAyIDIxOjIzOjEzLjIyMTM2NDg3MiArMDEwMAotQEAgLTg1LDcgKzg1LDcgQEAgZXh0ZXJu IHZvaWQgZ29fcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKgorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NDUxMDQ0NyArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nby1sYW5nLmgJMjAxNi0wNy0xNiAxNDoz Mzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BAIC04NSw3ICs4NSw3IEBACiAgLyogRGVmaW5lZCBpbiBn by12YWxwcmludC5jLiAgKi8KICAKICBleHRlcm4gdm9pZCBnb192YWxfcHJpbnQgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTIzMDIsMjAgKzIxMTYsMTEg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nby1sYW5nLmgKICAJCQkgIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVl ICp2YWwsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7 Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dvLXZhbHByaW50LmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ28tdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToy MzoxMS4yMTQzNTE2NjcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ28tdmFs cHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMjM2NDg3OSArMDEwMAotQEAgLTM3LDcgKzM3 LDcgQEAKLSAKLSBzdGF0aWMgdm9pZAotIHByaW50X2dvX3N0cmluZyAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENP UkVfQUREUiBhZGRyZXNzLAotKwkJIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIg YWRkcmVzcywKLSAJCSBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCSBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucykKLUBAIC04Niw5ICs4Niw5IEBAIHByaW50X2dvX3N0cmluZyAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnMKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9nby12 YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk0NTEwNDQ3ICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2dvLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1 MzAxMjQgKzAyMDAKK0BAIC04Niw5ICs4Niw5IEBACiAgLyogSW1wbGVtZW50cyB0aGUgbGFfdmFs X3ByaW50IHJvdXRpbmUgZm9yIGxhbmd1YWdlIEdvLiAgKi8KICAKICB2b2lkCkBAIC0yMzI4LDEx ICsyMTMzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ28tdmFscHJpbnQu YwogIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7 CiAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodHlwZSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2p2LWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9qdi1s YW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9qdi1s YW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTUzNTE2NzMgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvanYtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIyMzY0ODc5ICsw MTAwCi1AQCAtNDQwLDcgKzQ0MCw3IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2QKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9qdi1sYW5nLmMJMjAx Ni0wNy0xNiAxNDozMzo0Mi4wOTQ1MTA0NDcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvanYtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQwNTMwMTMyICswMjAwCitAQCAt NDQwLDcgKzQ0MCw3IEBACiAgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOyBp IDwgbmZpZWxkczsgaSsrKQogICAgICB7CiAgICAgICAgaW50IGFjY2ZsYWdzOwpAQCAtMjM0MSw3 ICsyMTQ2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5nLmMKICAK ICAgICAgICBpZiAoZmllbGRzID09IE5VTEwpCiAgCXsKLUBAIC04OTAsNyArODkwLDcgQEAgamF2 YV9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZQorQEAgLTg5MCw3ICs4OTAsNyBA QAogIHN0YXRpYyB2b2lkCiAgamF2YV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg c3RydWN0IHR5cGUgKnR5cGUsCiAgCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLApAQCAt MjM1MCwxMSArMjE1NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxh bmcuYwogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp CiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGphdmFfZ2V0X2VuY29kaW5nICh0 eXBlKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYtbGFuZy5oCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2p2LWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIx NTM1MTY3MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5nLmgJMjAx NS0xMS0wMiAyMToyMzoxMy4yMjIzNjQ4NzkgKzAxMDAKLUBAIC00Myw4ICs0Myw4IEBAIHN0cnVj dCBidWlsdGluX2phdmFfdHlwZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2p2 LWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NDUxMDQ0NyArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9qdi1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIg KzAyMDAKK0BAIC00Myw4ICs0Myw4IEBACiAgCiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBidWlsdGlu X2phdmFfdHlwZSAqYnVpbHRpbl9qYXZhX3R5cGUgKHN0cnVjdCBnZGJhcmNoICopOwogIApAQCAt MjM2NSwyMCArMjE3MCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxh bmcuaAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2p2LXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtdmFs cHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2p2 LXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTUzNTE2NzMgKzAxMDAKLSsrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvanYtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIy MjM2NDg3OSArMDEwMAotQEAgLTI2Niw3ICsyNjYsNyBAQCBqYXZhX3ZhbHVlX3ByaW50IChzdHJ1 Y3QgdmFsdWUgKnZhbCwgc3RyCi0gCi0gc3RhdGljIHZvaWQKLSBqYXZhX3ByaW50X3ZhbHVlX2Zp ZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJCSBp bnQgb2Zmc2V0LAotKwkJCSBMT05HRVNUIG9mZnNldCwKLSAJCQkgQ09SRV9BRERSIGFkZHJlc3Ms IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQkJIGludCByZWN1cnNlLAotIAkJCSBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKLUBAIC00NTQsNyArNDU0LDcgQEAgamF2YV9wcmludF92YWx1ZV9m aWVsZHMgKHN0cnVjdCB0eXBlICp0eQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L2p2LXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTU1MTA0NTUgKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0 LjU0MDUzMDEzMiArMDIwMAorQEAgLTQ1NCw3ICs0NTQsNyBAQAogIAogIHZvaWQKICBqYXZhX3Zh bF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAt MjM4NywxMSArMjE4MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LXZh bHByaW50LmMKICAJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3VhZ2UuYwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9sYW5ndWFnZS5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbGFuZ3VhZ2UuYwkyMDE1LTExLTAyIDIx OjIzOjExLjIxNjM1MTY4MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9sYW5n dWFnZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIzMzY0ODg1ICswMTAwCi1AQCAtNzM5LDcgKzcz OSw3IEBAIHVua19sYW5nX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICoKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIu MDk1NTEwNDU1ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xhbmd1YWdlLmMJ MjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAyMDAKK0BAIC03NjYsNyArNzY2LDcgQEAK ICAKICBzdGF0aWMgdm9pZAogIHVua19sYW5nX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTI0MDAsNyArMjE5Niw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3VhZ2UuYwogIAkJICAgY29uc3QgY2hhciAqZW5jb2Rp bmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQogIHsKLUBAIC03NTgsNyArNzU4LDcgQEAgdW5rX2xhbmdfcHJpbnRf dHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNzg1LDcgKzc4NSw3IEBACiAgCiAgc3RhdGlj IHZvaWQKICB1bmtfbGFuZ192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKQEAgLTI0MDksMTEgKzIyMDUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9sYW5ndWFnZS5jCiAgCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg aW50IHJlY3Vyc2UsCiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvbGFuZ3VhZ2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL2xhbmd1YWdlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTYzNTE2ODAgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3VhZ2UuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIy MzM2NDg4NSArMDEwMAotQEAgLTE4OSw3ICsxODksNyBAQCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbgor LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNi0wNy0xNiAx NDozMzo0Mi4wOTU1MTA0NTUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbGFu Z3VhZ2UuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAorQEAgLTE5Niw3ICsx OTYsNyBAQAogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKiBzdHJlYW0pOwogIAogICAgICB2b2lkICgq bGFfcHJpbnRzdHIpIChzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSwgc3RydWN0IHR5cGUgKmVsdHR5 cGUsCkBAIC0yNDIyLDcgKzIyMTgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2xhbmd1YWdlLmgKICAJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNl cywKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAgCi1AQCAtMjMx LDcgKzIzMSw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuCitAQCAtMjM4LDcgKzIzOCw3IEBACiAg CiAgICAgIHZvaWQgKCpsYV92YWxfcHJpbnQpIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgIGNv bnN0IGdkYl9ieXRlICpjb250ZW50cywKQEAgLTI0MzEsMTEgKzIyMjcsMTEgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9sYW5ndWFnZS5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJ CSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5nLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvbTItbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvbTItbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE3MzUxNjg2ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEz LjIyMzM2NDg4NSArMDEwMAotQEAgLTEwNCwxMCArMTA0LDEwIEBAIG0yX3ByaW50Y2hhciAoaW50 IGMsIHN0cnVjdCB0eXBlICp0eXBlLAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L20yLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9tMi1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAx MzIgKzAyMDAKK0BAIC0xMDQsMTAgKzEwNCwxMCBAQAogIAogIHN0YXRpYyB2b2lkCiAgbTJfcHJp bnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBn ZGJfYnl0ZSAqc3RyaW5nLApAQCAtMjQ0OCw3ICsyMjQ0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9tMi1sYW5nLmMKICAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9 IDA7CiAgICBpbnQgaW5fcXVvdGVzID0gMDsKICAgIGludCBuZWVkX2NvbW1hID0gMDsKLUBAIC0x MjIsOSArMTIyLDkgQEAgbTJfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cgor QEAgLTEyMiw5ICsxMjIsOSBAQAogICAgICB7CiAgICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGNo YXJhY3RlciB3ZSBhcmUgZXhhbWluaW5nCiAgICAgICAgICAgdG8gc2VlIHdoZXRoZXIgaXQgaXMg cmVwZWF0ZWQuICAqLwpAQCAtMjQ2MCw3ICsyMjU2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9tMi1sYW5nLmMKICAKICAgICAgICBRVUlUOwogIAotQEAgLTE1MCw3ICsxNTAs NyBAQCBtMl9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RyCitAQCAtMTUwLDcg KzE1MCw3IEBACiAgCSAgICAgIGluX3F1b3RlcyA9IDA7CiAgCSAgICB9CiAgCSAgbTJfcHJpbnRj aGFyIChzdHJpbmdbaV0sIHR5cGUsIHN0cmVhbSk7CkBAIC0yNDY5LDExICsyMjY1LDExIEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItbGFuZy5jCiAgCSAgaSA9IHJlcDEgLSAx OwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7 CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20y LWxhbmcuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi1sYW5nLmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9tMi1sYW5nLmgJMjAxNS0x MS0wMiAyMToyMzoxMS4yMTczNTE2ODYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvbTItbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIzMzY0ODg1ICswMTAwCi1AQCAtMzQs NyArMzQsNyBAQCBleHRlcm4gdm9pZCBtMl9wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTItbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMDk2NTEwNDYzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLWxhbmcu aAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAorQEAgLTM0LDcgKzM0LDcgQEAK ICBleHRlcm4gaW50IG0yX2lzX2xvbmdfc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSk7CiAgZXh0ZXJu IGludCBtMl9pc191bmJvdW5kZWRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlKTsKICAKQEAgLTI0 ODIsMTEgKzIyNzgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5n LmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXR5cGVwcmludC5jCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL20yLXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4y MTczNTE2ODYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItdHlwZXByaW50 LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjQzNjQ4OTIgKzAxMDAKLUBAIC0yMzQsOSArMjM0LDEy IEBAIHN0YXRpYyB2b2lkIG0yX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tMi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQy LjA5NjUxMDQ2MyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi10eXBlcHJp bnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MTUzMDE0MCArMDIwMAorQEAgLTIzNCw5ICsyMzQs MTIgQEAKICAJICBtMl9wcmludF9ib3VuZHMgKFRZUEVfSU5ERVhfVFlQRSAodHlwZSksIHN0cmVh bSwgc2hvdywgLTEsIDEpOwogIAl9CiAgICAgICAgZWxzZQpAQCAtMjUwMiwxMSArMjI5OCwxMSBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXR5cGVwcmludC5jCiAgICAgIH0K ICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIl0gT0YgIik7CiAgICBtMl9wcmludF90eXBl IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgIiIsIHN0cmVhbSwgc2hvdywgbGV2ZWwsIGZsYWdz KTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItdmFscHJpbnQuYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE1LTExLTAyIDIx OjIzOjExLjIxNzM1MTY4NiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi12 YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI0MzY0ODkyICswMTAwCi1AQCAtMzUsNyAr MzUsNyBAQCBzdGF0aWMgaW50IHByaW50X3VucGFja2VkX3BvaW50ZXIgKHN0cnVjCistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMz OjQyLjA5NjUxMDQ2MyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi12YWxw cmludC5jCTIwMTYtMDctMTYgMTQ6MzU6MTkuODMwMjk3MDEzICswMjAwCitAQCAtMzUsNyArMzUs NyBAQAogIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICBzdGF0aWMgdm9pZAogIG0y X3ByaW50X2FycmF5X2NvbnRlbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCkBAIC0yNTE1LDcgKzIzMTEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL20yLXZhbHByaW50LmMKICAJCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC02Nyw3ICs2Nyw3IEBAIGdldF9sb25n X3NldF9ib3VuZHMgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTY3LDcgKzY3LDcgQEAKICAKICBz dGF0aWMgdm9pZAogIG0yX3ByaW50X2xvbmdfc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNTI0LDcgKzIzMjAsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKICAJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJl YW0pCiAgewogICAgaW50IGVtcHR5X3NldCAgICAgICAgPSAxOwotQEAgLTE1OCw3ICsxNTgsNyBA QCBtMl9wcmludF9sb25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCitAQCAtMTU4LDcgKzE1 OCw3IEBACiAgCiAgc3RhdGljIHZvaWQKICBtMl9wcmludF91bmJvdW5kZWRfYXJyYXkgKHN0cnVj dCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTI1MzMsNyArMjMyOSw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItdmFscHJpbnQuYwogIAkJCSAg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAtMjYyLDcgKzI2Miw3IEBAIHBy aW50X3ZhcmlhYmxlX2F0X2FkZHJlc3MgKHN0cnVjdCB0eXBlICoKK0BAIC0yNjAsNyArMjYwLDcg QEAKICAKICBzdGF0aWMgdm9pZAogIG0yX3ByaW50X2FycmF5X2NvbnRlbnRzIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNTQyLDI3ICsyMzM4LDIzIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItdmFscHJpbnQuYwogIAkJCSBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVl ICp2YWwsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAot QEAgLTMwOCwxNCArMzA4LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJp bnRfZGUKK0BAIC0zMDgsMTMgKzMwOCwxMyBAQAogICAgIGZ1bmN0aW9uOyB0aGV5IGFyZSBpZGVu dGljYWwuICAqLwogIAogIHZvaWQKIC1tMl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKLS0JICAgICAgQ09S RV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotK20y X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAot KwkgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rCSAg ICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorK20yX3ZhbF9wcmludCAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwKKyAJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAogIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFs X3ZhbHVlLAogIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cykKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUp OwotLSAgdW5zaWduZWQgaW50IGkgPSAwOwkvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVk LiAgKi8KIC0gIHVuc2lnbmVkIGxlbjsKLSsgIFVMT05HRVNUIGkgPSAwOwkvKiBOdW1iZXIgb2Yg Y2hhcmFjdGVycyBwcmludGVkLiAgKi8KICsgIFVMT05HRVNUIGxlbjsKICAgIHN0cnVjdCB0eXBl ICplbHR0eXBlOwogICAgQ09SRV9BRERSIGFkZHI7CiAgCi1AQCAtMzQwLDcgKzM0MSw3IEBAIG0y X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGcKK0BAIC0zMzksNyArMzM5LDcg QEAKICAJICAgICAgICAgZWxlbWVudHMgdXAgdG8gaXQuICAqLwogIAkgICAgICBpZiAob3B0aW9u cy0+c3RvcF9wcmludF9hdF9udWxsKQogIAkJewpAQCAtMjU3MSwxMCArMjM2MywxOSBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKICAKICAJCSAgLyogTG9v ayBmb3IgYSBOVUxMIGNoYXIuICAqLwogIAkJICBmb3IgKHRlbXBfbGVuID0gMDsKLUluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2UuYworQEAgLTQxNSw3ICs0MTUsNyBAQAor IAl7CisgCSAgc3RydWN0IHR5cGUgKnJhbmdlID0gZWx0dHlwZTsKKyAJICBMT05HRVNUIGxvd19i b3VuZCwgaGlnaF9ib3VuZDsKKy0JICBpbnQgaTsKKysJICBMT05HRVNUIGk7CisgCSAgaW50IG5l ZWRfY29tbWEgPSAwOworIAorIAkgIGZwdXRzX2ZpbHRlcmVkICgieyIsIHN0cmVhbSk7CitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lbXJhbmdlLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9tZW1yYW5nZS5jCTIwMTUtMTEtMDIgMjE6MjM6 MTEuMjE4MzUxNjkzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21lbXJhbmdl LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjQzNjQ4OTIgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9tZW1yYW5nZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk2NTEwNDYz ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lbXJhbmdlLmMJMjAxNi0wNy0x NiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAKIEBAIC0yMSw4ICsyMSw4IEBACiAgI2luY2x1ZGUg Im1lbXJhbmdlLmgiCiAgCkBAIC0yNTg2LDExICsyMzg3LDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2UuYwogIHsKICAgIFVMT05HRVNUIGgsIGw7CiAgCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21lbXJhbmdlLmgKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvbWVtcmFuZ2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTgzNTE2OTMg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2UuaAkyMDE1LTExLTAy IDIxOjIzOjEzLjIyNDM2NDg5MiArMDEwMAotQEAgLTMwLDcgKzMwLDcgQEAgc3RydWN0IG1lbV9y YW5nZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNi0w Ny0xNiAxNDozMzo0Mi4wOTc1MTA0NzEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvbWVtcmFuZ2UuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MTUzMDE0MCArMDIwMAorQEAgLTMw LDcgKzMwLDcgQEAKICAgIENPUkVfQUREUiBzdGFydDsKICAKICAgIC8qIExlbmd0aCBvZiB0aGUg cmFuZ2UuICAqLwpAQCAtMjU5OSw3ICsyNDAwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9tZW1yYW5nZS5oCiAgfTsKICAKICB0eXBlZGVmIHN0cnVjdCBtZW1fcmFuZ2UgbWVt X3JhbmdlX3M7Ci1AQCAtNDAsOCArNDAsOCBAQCBERUZfVkVDX08obWVtX3JhbmdlX3MpOworQEAg LTQwLDggKzQwLDggQEAKICAvKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJhbmdlcyBkZWZpbmVkIGJ5 IFtzdGFydDEsIHN0YXJ0MStsZW4xKSBhbmQKICAgICBbc3RhcnQyLCBzdGFydDIrbGVuMikgb3Zl cmxhcC4gICovCiAgCkBAIC0yNjEwLDExICsyNDExLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvbWVtcmFuZ2UuaAogIAogIC8qIFJldHVybnMgdHJ1ZSBpZiBBRERSIGlzIGlu IFJBTkdFLiAgKi8KICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWlwcy1saW51 eC1uYXQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLWxpbnV4LW5hdC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbWlwcy1saW51 eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxODM1MTY5MyArMDEwMAotKysrIGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI1 MzY0ODk5ICswMTAwCi1AQCAtNTg3LDcgKzU4Nyw3IEBAIG1pcHNfbGludXhfc3RvcHBlZF9kYXRh X2FkZHJlc3MgKHN0cnVjdAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21pcHMt bGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTc1MTA0NzEgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0 LjU0MTUzMDE0MCArMDIwMAorQEAgLTU4Nyw3ICs1ODcsNyBAQAogIAogIHN0YXRpYyBpbnQKICBt aXBzX2xpbnV4X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMg KnNlbGYsCkBAIC0yNjIzLDExICsyNDI0LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvbWlwcy1saW51eC1uYXQuYwogIHsKICAgIHN0cnVjdCBwdF93YXRjaF9yZWdzIGR1bW15 X3JlZ3M7CiAgICBpbnQgaTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvb3BlbmNs LWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9vcGVuY2wtbGFuZy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvb3BlbmNsLWxhbmcu YwkyMDE1LTExLTAyIDIxOjIzOjExLjIxOTM1MTY5OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9vcGVuY2wtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI1MzY0ODk5ICsw MTAwCi1AQCAtNzgsMTEgKzc4LDExIEBAIGJ1aWx0aW5fb3BlbmNsX3R5cGUgKHN0cnVjdCBnZGJh cmNoICpnZGIKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9vcGVuY2wtbGFuZy5j CTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk3NTEwNDcxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAy MDAKK0BAIC03OCwxMSArNzgsMTEgQEAKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgogIGxvb2t1 cF9vcGVuY2xfdmVjdG9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBlbnVtIHR5cGVf Y29kZSBjb2RlLApAQCAtMjY0MSwzNyArMjQ0MiwyOSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL29wZW5jbC1sYW5nLmMKICAgIHN0cnVjdCB0eXBlICp0eXBlID0gTlVMTDsKICAg IHN0cnVjdCB0eXBlICoqdHlwZXMgPSBidWlsdGluX29wZW5jbF90eXBlIChnZGJhcmNoKTsKICAK LUBAIC0xNzIsOSArMTcyLDkgQEAgbHZhbF9mdW5jX3JlYWQgKHN0cnVjdCB2YWx1ZSAqdikKLSAg IHN0cnVjdCBsdmFsX2Nsb3N1cmUgKmMgPSAoc3RydWN0IGx2YWxfY2xvc3VyZSAqKSB2YWx1ZV9j b21wdXRlZF9jbG9zdXJlICh2KTsKLSAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRl ZiAodmFsdWVfdHlwZSAodikpOworQEAgLTE3NCw3ICsxNzQsNyBAQAogICAgc3RydWN0IHR5cGUg KmVsdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGMt PnZhbCkpKTsKLS0gIGludCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYpOwotLSAgaW50IGVsc2l6 ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOworICAgTE9OR0VTVCBvZmZzZXQgPSB2YWx1ZV9vZmZz ZXQgKHYpOworICAgTE9OR0VTVCBlbHNpemUgPSBUWVBFX0xFTkdUSCAoZWx0eXBlKTsKIC0gIGlu dCBuLCBpLCBqID0gMDsKLSsgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2KTsKLSsg IExPTkdFU1QgZWxzaXplID0gVFlQRV9MRU5HVEggKGVsdHlwZSk7CiArICBMT05HRVNUIG4sIGks IGogPSAwOwogICAgTE9OR0VTVCBsb3diID0gMDsKICAgIExPTkdFU1QgaGlnaGIgPSAwOwogIAot QEAgLTIwMSw5ICsyMDEsOSBAQCBsdmFsX2Z1bmNfd3JpdGUgKHN0cnVjdCB2YWx1ZSAqdiwgc3Ry dWN0Ci0gICBzdHJ1Y3QgbHZhbF9jbG9zdXJlICpjID0gKHN0cnVjdCBsdmFsX2Nsb3N1cmUgKikg dmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodik7Ci0gICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKHYpKTsKK0BAIC0yMDMsNyArMjAzLDcgQEAKICAgIHN0cnVj dCB0eXBlICplbHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChjLT52YWwpKSk7Ci0tICBpbnQgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2KTsKLS0gIGlu dCBlbHNpemUgPSBUWVBFX0xFTkdUSCAoZWx0eXBlKTsKKyAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFs dWVfb2Zmc2V0ICh2KTsKKyAgIExPTkdFU1QgZWxzaXplID0gVFlQRV9MRU5HVEggKGVsdHlwZSk7 CiAtICBpbnQgbiwgaSwgaiA9IDA7Ci0rICBMT05HRVNUIG9mZnNldCA9IHZhbHVlX29mZnNldCAo dik7Ci0rICBMT05HRVNUIGVsc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOwogKyAgTE9OR0VT VCBuLCBpLCBqID0gMDsKICAgIExPTkdFU1QgbG93YiA9IDA7CiAgICBMT05HRVNUIGhpZ2hiID0g MDsKICAKLUBAIC0yNDMsMTcgKzI0MywxNyBAQCBsdmFsX2Z1bmNfd3JpdGUgKHN0cnVjdCB2YWx1 ZSAqdiwgc3RydWN0CitAQCAtMjQzLDE3ICsyNDMsMTcgQEAKICAKICBzdGF0aWMgaW50CiAgbHZh bF9mdW5jX2NoZWNrX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnYsCi0t CQkJCSAgIGludCBvZmZzZXQsIGludCBsZW5ndGgpCistCQkJCSAgIExPTkdFU1Qgb2Zmc2V0LCBp bnQgbGVuZ3RoKQogKwkJCQkgICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCiAgewog ICAgc3RydWN0IGx2YWxfY2xvc3VyZSAqYyA9IChzdHJ1Y3QgbHZhbF9jbG9zdXJlICopIHZhbHVl X2NvbXB1dGVkX2Nsb3N1cmUgKHYpOwpAQCAtMjY5Miw3ICsyNDg1LDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9vcGVuY2wtbGFuZy5jCiAgCiAgICBpZiAoZW5kcmVzdCkKICAg ICAgZW5kKys7Ci1AQCAtMjYzLDggKzI2Myw4IEBAIGx2YWxfZnVuY19jaGVja19zeW50aGV0aWNf cG9pbnRlciAoY29uc3QKK0BAIC0yNjMsOCArMjYzLDggQEAKICAKICAgIGZvciAoaSA9IHN0YXJ0 OyBpIDwgZW5kOyBpKyspCiAgICAgIHsKQEAgLTI3MDMsMTEgKzI0OTYsMTEgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9vcGVuY2wtbGFuZy5jCiAgCiAgICAgICAgaWYgKCF2YWx1 ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyIChjLT52YWwsCiAgCQkJCQkgYy0+aW5kaWNlc1tpXSAq IGVsc2l6ZSArIGNvbXBfb2Zmc2V0LAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9w LWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wLWxhbmcuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3AtbGFuZy5jCTIwMTUtMTEt MDIgMjE6MjM6MTEuMjE5MzUxNjk5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3AtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI1MzY0ODk5ICswMTAwCi1AQCAtOTUsOCAr OTUsOCBAQCBwYXNjYWxfbWFpbl9uYW1lICh2b2lkKQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL3AtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk4NTEwNDc5ICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3AtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQu NTQyNTMwMTQ4ICswMjAwCitAQCAtOTUsOCArOTUsOCBAQAogICAgIGFyZSBub3QgbXVsdGlwbGUg b2YgVEFSR0VUX0NIQVJfQklUIHRoZW4gdGhlIHJlc3VsdHMgYXJlIHdyb25nCiAgICAgYnV0IHRo aXMgZG9lcyBub3QgaGFwcGVuIGZvciBGcmVlIFBhc2NhbCBub3IgZm9yIEdQQy4gICovCiAgaW50 CkBAIC0yNzE4LDcgKzI1MTEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3At bGFuZy5jCiAgCQkgICAgICAgc3RydWN0IHR5cGUgKipjaGFyX3R5cGUsCiAgCQkgICAgICAgY29u c3QgY2hhciAqKmFycmF5bmFtZSkKICB7Ci1AQCAtMjE2LDEyICsyMTYsMTIgQEAgcGFzY2FsX3By aW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eQorQEAgLTIxNiwxMiArMjE2LDEyIEBACiAg CiAgdm9pZAogIHBhc2NhbF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0 IHR5cGUgKnR5cGUsCkBAIC0yNzMzLDcgKzI1MjYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3AtbGFuZy5jCiAgICB1bnNpZ25lZCBpbnQgdGhpbmdzX3ByaW50ZWQgPSAwOwog ICAgaW50IGluX3F1b3RlcyA9IDA7CiAgICBpbnQgbmVlZF9jb21tYSA9IDA7Ci1AQCAtMjQ5LDkg KzI0OSw5IEBAIHBhc2NhbF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKK0BAIC0y NDksOSArMjQ5LDkgQEAKICAgICAgewogICAgICAgIC8qIFBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0 ZXIgd2UgYXJlIGV4YW1pbmluZwogICAgICAgICAgIHRvIHNlZSB3aGV0aGVyIGl0IGlzIHJlcGVh dGVkLiAgKi8KQEAgLTI3NDUsNyArMjUzOCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvcC1sYW5nLmMKICAgICAgICB1bnNpZ25lZCBsb25nIGludCBjdXJyZW50X2NoYXI7CiAg CiAgICAgICAgUVVJVDsKLUBAIC0yODMsNyArMjgzLDcgQEAgcGFzY2FsX3ByaW50c3RyIChzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLAorQEAgLTI4Myw3ICsyODMsNyBAQAogIAkgICAgICBpbl9xdW90 ZXMgPSAwOwogIAkgICAgfQogIAkgIHBhc2NhbF9wcmludGNoYXIgKGN1cnJlbnRfY2hhciwgdHlw ZSwgc3RyZWFtKTsKQEAgLTI3NTQsMTEgKzI1NDcsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9wLWxhbmcuYwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0aGluZ3NfcHJpbnRl ZCArPSBvcHRpb25zLT5yZXBlYXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5lZWRfY29tbWEgPSAx OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuaAorSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9wLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL3AtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE5MzUxNjk5 ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5oCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjI2MzY0OTA1ICswMTAwCi1AQCAtMzYsNyArMzYsNyBAQCBleHRlcm4gdm9pZCBw YXNjYWxfcHJpbnRfdHlwZSAoc3RydWN0IHR5CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvcC1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTg1MTA0NzkgKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NDI1 MzAxNDggKzAyMDAKK0BAIC0zNiw3ICszNiw3IEBACiAgZXh0ZXJuIHZvaWQgcGFzY2FsX3ByaW50 X3R5cGVkZWYgKHN0cnVjdCB0eXBlICosIHN0cnVjdCBzeW1ib2wgKiwKICAJCQkJICBzdHJ1Y3Qg dWlfZmlsZSAqKTsKICAKQEAgLTI3NjcsNyArMjU2MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvcC1sYW5nLmgKICAJCQkgICAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxl ICosIGludCwKICAJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICAgICBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLUBAIC01MCwxMyArNTAsMTMgQEAgZXh0 ZXJuIHZvaWQgcGFzY2FsX3R5cGVfcHJpbnRfbWV0aG9kX2FyZworQEAgLTUwLDEzICs1MCwxMyBA QAogIC8qIFRoZXNlIGFyZSBpbiBwLWxhbmcuYzogKi8KICAKICBleHRlcm4gaW50CkBAIC0yNzgz LDIwICsyNTc2LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmgK ICAJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIAogIGV4dGVy biBzdHJ1Y3QgdHlwZSAqKmNvbnN0IChwYXNjYWxfYnVpbHRpbl90eXBlc1tdKTsKLUBAIC03Miw3 ICs3Miw3IEBAIGV4dGVybiB2b2lkCi0gCQkJCSAgICBjb25zdCBzdHJ1Y3QgdHlwZV9wcmludF9v cHRpb25zICopOwotIAotIGV4dGVybiB2b2lkIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWVfZmll bGRzIChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAotLQkJCQkJICAgICAgaW50LAot KwkJCQkJICAgICAgTE9OR0VTVCwKLSAJCQkJCSAgICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2Zp bGUgKiwKLSAJCQkJCSAgICAgIGludCwKLSAJCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq LAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLXZhbHByaW50LmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcC12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6 MTEuMjIwMzUxNzA2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtdmFscHJp bnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNjM2NDkwNSArMDEwMAotQEAgLTU3LDcgKzU3LDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZQorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5 ODUxMDQ3OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wLXZhbHByaW50LmMJ MjAxNi0wNy0xNiAxNDozMzo0NC41NDI1MzAxNDggKzAyMDAKK0BAIC01OSw3ICs1OSw3IEBACiAg CiAgdm9pZAogIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKQEAgLTI4MDUsNyArMjU4OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvcC12YWxwcmludC5jCiAgCQkgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJ ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUBAIC02OCw4ICs2 OCw4IEBAIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb24KK0BAIC03MCw4 ICs3MCw4IEBACiAgICB1bnNpZ25lZCBsZW47CiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9i b3VuZDsKICAgIHN0cnVjdCB0eXBlICplbHR0eXBlOwpAQCAtMjgxNiw1MiArMjYwMCwxMSBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtdmFscHJpbnQuYwogICAgc3RydWN0IHR5 cGUgKmNoYXJfdHlwZTsKICAgIENPUkVfQUREUiBhZGRyOwogICAgaW50IHdhbnRfc3BhY2UgPSAw OwotQEAgLTQ2Nyw3ICs0NjcsNyBAQCBzdGF0aWMgdm9pZCBwYXNjYWxfb2JqZWN0X3ByaW50X3N0 YXRpY19mCi0gCQkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsK LSAKLSBzdGF0aWMgdm9pZCBwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAq LCBjb25zdCBnZGJfYnl0ZSAqLAotLQkJCQkgICAgICAgaW50LAotKwkJCQkgICAgICAgTE9OR0VT VCwKLSAJCQkJICAgICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAotIAkJCQkg ICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICosCi0gCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqLAotQEAgLTUyNiw3ICs1MjYsNyBAQCBwYXNjYWxfb2JqZWN0X2lz X3Z0YmxfbWVtYmVyIChzdHJ1Y3QgdHlwCi0gCi0gdm9pZAotIHBhc2NhbF9vYmplY3RfcHJpbnRf dmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIs Ci0tCQkJCSAgaW50IG9mZnNldCwKLSsJCQkJICBMT05HRVNUIG9mZnNldCwKLSAJCQkJICBDT1JF X0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKLSAJCQkJICBpbnQgcmVjdXJz ZSwKLSAJCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLUBAIC02OTcsNyArNjk3LDcgQEAg cGFzY2FsX29iamVjdF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdAotIAotIHN0YXRpYyB2b2lk Ci0gcGFzY2FsX29iamVjdF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLAotLQkJCSAgIGludCBvZmZzZXQsCi0rCQkJICAgTE9OR0VTVCBvZmZz ZXQsCi0gCQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0g CQkJICAgaW50IHJlY3Vyc2UsCi0gCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi1AQCAt NzIwLDExICs3MjAsMTEgQEAgcGFzY2FsX29iamVjdF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUg KgotIAotICAgZm9yIChpID0gMDsgaSA8IG5fYmFzZWNsYXNzZXM7IGkrKykKLSAgICAgewotLSAg ICAgIGludCBib2Zmc2V0ID0gMDsKLSsgICAgICBMT05HRVNUIGJvZmZzZXQgPSAwOwotICAgICAg IHN0cnVjdCB0eXBlICpiYXNlY2xhc3MgPSBjaGVja190eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAo dHlwZSwgaSkpOwotICAgICAgIGNvbnN0IGNoYXIgKmJhc2VuYW1lID0gdHlwZV9uYW1lX25vX3Rh ZyAoYmFzZWNsYXNzKTsKLSAgICAgICBjb25zdCBnZGJfYnl0ZSAqYmFzZV92YWxhZGRyID0gTlVM TDsKLS0gICAgICBpbnQgdGhpc29mZnNldDsKLSsgICAgICBMT05HRVNUIHRoaXNvZmZzZXQ7Ci0g ICAgICAgaW50IHNraXAgPSAwOwotIAotICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAo dHlwZSwgaSkpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3BwYy1saW51eC1uYXQu YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcGMtbGludXgtbmF0LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wcGMtbGludXgtbmF0LmMJ MjAxNS0xMS0wMiAyMToyMzoxMS4yMjEzNTE3MTMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI3MzY0OTEyICsw MTAwCi1AQCAtMTQ0OSw3ICsxNDQ5LDcgQEAgcHBjX2xpbnV4X2Nhbl91c2VfaHdfYnJlYWtwb2lu dCAoc3RydWN0CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcHBjLWxpbnV4LW5h dC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk5NTEwNDg3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MjUzMDE0 OCArMDIwMAorQEAgLTE0NDksNyArMTQ0OSw3IEBACiAgCiAgc3RhdGljIGludAogIHBwY19saW51 eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApA QCAtMjg3MCwxMSArMjYxMywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Bw Yy1saW51eC1uYXQuYwogIHsKICAgIC8qIEhhbmRsZSBzdWItOC1ieXRlIHF1YW50aXRpZXMuICAq LwogICAgaWYgKGxlbiA8PSAwKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcmlu dGNtZC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ByaW50Y21kLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wcmludGNtZC5jCTIwMTUt MTEtMDIgMjE6MjM6MTEuMjIxMzUxNzEzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3ByaW50Y21kLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjczNjQ5MTIgKzAxMDAKLUBAIC0y NzQsNyArMjc0LDcgQEAgcHJpbnRfZm9ybWF0dGVkIChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50Cist LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE2LTA3LTE2IDE0 OjMzOjQyLjA5OTUxMDQ4NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcmlu dGNtZC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQzNTMwMTU2ICswMjAwCitAQCAtMjc5LDcgKzI3 OSw3IEBACiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAq dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbCkpOwpAQCAtMjg4Myw3ICsyNjI2 LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcmludGNtZC5jCiAgCiAgICBp ZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9yeSkKICAgICAgbmV4dF9hZGRyZXNzID0g dmFsdWVfYWRkcmVzcyAodmFsKSArIGxlbjsKLUBAIC0zNTIsNyArMzUyLDcgQEAgcHJpbnRfc2Nh bGFyX2Zvcm1hdHRlZCAoY29uc3QgZ2RiX2J5dGUgKgorQEAgLTM1Nyw3ICszNTcsNyBAQAogIHsK ICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7CiAgICBM T05HRVNUIHZhbF9sb25nID0gMDsKQEAgLTI4OTIsMTEgKzI2MzUsMTEgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9wcmludGNtZC5jCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9v cmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgCiAgICAvKiBTdHJpbmcgcHJp bnRpbmcgc2hvdWxkIGdvIHRocm91Z2ggdmFsX3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQuICAqLwot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcm9jZnMuYworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9wcm9jZnMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjIzMzUxNzI2ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Byb2Nmcy5jCTIwMTUtMTEtMDIgMjE6 MjM6MTMuMjI4MzY0OTE4ICswMTAwCi1AQCAtNDg2Myw3ICs0ODYzLDcgQEAgcHJvY2ZzX3JlbW92 ZV93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0XworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL3Byb2Nmcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTAwNTEwNDk1ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Byb2Nmcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQz NTMwMTU2ICswMjAwCitAQCAtNDg2Myw3ICs0ODYzLDcgQEAKICAKICBzdGF0aWMgaW50CiAgcHJv Y2ZzX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYs CkBAIC0yOTA1LDI0ICsyNjQ4LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv cHJvY2ZzLmMKICB7CiAgICAvKiBUaGUgbWFuIHBhZ2UgZm9yIHByb2MoNCkgb24gU29sYXJpcyAy LjYgYW5kIHVwIHNheXMgdGhhdCB0aGUKICAgICAgIHN5c3RlbSBjYW4gc3VwcG9ydCAidGhvdXNh bmRzIiBvZiBoYXJkd2FyZSB3YXRjaHBvaW50cywgYnV0IGdpdmVzCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE1MTAyNy5vcmlnL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTExLTAyIDIxOjIz OjExLjIyMzM1MTcyNiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9weXRob24v cHktcHJldHR5cHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyOTM2NDkyNSArMDEwMAotQEAg LTcwMyw3ICs3MDMsNyBAQCBwcmludF9jaGlsZHJlbiAoUHlPYmplY3QgKnByaW50ZXIsIGNvbnN0 Ci0gZW51bSBleHRfbGFuZ19yYwotIGdkYnB5X2FwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoY29u c3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICpleHRsYW5nLAotIAkJCQlzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJCWludCBlbWJlZGRlZF9v ZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJCQlMT05HRVNUIGVtYmVkZGVkX29mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCi0gCQkJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAotIAkJCQljb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCQkJY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3JlZ2NhY2hlLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmln L2dkYi9yZWdjYWNoZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjI0MzUxNzMyICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4y MjkzNjQ5MjUgKzAxMDAKLUBAIC05NTgsNyArOTU4LDcgQEAgdHlwZWRlZiB2b2lkIChyZWdjYWNo ZV93cml0ZV9mdHlwZSkgKHN0cgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Jl Z2NhY2hlLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDE1MTA1MDMgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvcmVnY2FjaGUuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0NDUzMDE2 NSArMDIwMAorQEAgLTk2Nyw3ICs5NjcsNyBAQAogIAogIHN0YXRpYyBlbnVtIHJlZ2lzdGVyX3N0 YXR1cwogIHJlZ2NhY2hlX3hmZXJfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50 IHJlZ251bSwKQEAgLTI5MzEsNyArMjY2MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvcmVnY2FjaGUuYwogIAkJICAgIGVudW0gcmVnaXN0ZXJfc3RhdHVzICgqcmVhZCkgKHN0 cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCiAgCQkJCQkJICBpbnQgcmVnbnVtLAogIAkJCQkJCSAg Z2RiX2J5dGUgKmJ1ZiksCi1AQCAtMTAwMiw3ICsxMDAyLDcgQEAgcmVnY2FjaGVfeGZlcl9wYXJ0 IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZworQEAgLTEwMTEsNyArMTAxMSw3IEBACiAgCiAgZW51bSBy ZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUg KnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk0MCw3ICsyNjcwLDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5jCiAgewogICAgc3RydWN0IHJlZ2NhY2hlX2Rl c2NyICpkZXNjciA9IHJlZ2NhY2hlLT5kZXNjcjsKICAKLUBAIC0xMDEzLDcgKzEwMTMsNyBAQCBy ZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUKK0BAIC0xMDIyLDcgKzEwMjIs NyBAQAogIAogIHZvaWQKICByZWdjYWNoZV9yYXdfd3JpdGVfcGFydCAoc3RydWN0IHJlZ2NhY2hl ICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5NDksNyArMjY3OSw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9k ZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1AQCAtMTAyNCw3ICsxMDI0LDcgQEAg cmVnY2FjaGVfcmF3X3dyaXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZQorQEAgLTEwMzMsNyArMTAz Myw3IEBACiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV9jb29rZWRfcmVhZF9w YXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk1OCw3ICsy Njg4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5jCiAgewog ICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJlZ2NhY2hlLT5kZXNjcjsKICAKLUBA IC0xMDM1LDcgKzEwMzUsNyBAQCByZWdjYWNoZV9jb29rZWRfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVn Y2FjCitAQCAtMTA0NCw3ICsxMDQ0LDcgQEAKICAKICB2b2lkCiAgcmVnY2FjaGVfY29va2VkX3dy aXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yOTY3 LDExICsyNjk3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUu YwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7 CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmgKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVnY2FjaGUuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3JlZ2NhY2hlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4y MjQzNTE3MzIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuaAky MDE1LTExLTAyIDIxOjIzOjEzLjIzMDM2NDkzMSArMDEwMAotQEAgLTkyLDkgKzkyLDkgQEAgZXh0 ZXJuIHZvaWQgcmVnY2FjaGVfcmF3X3dyaXRlX3Vuc2lnbmVkCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwMTUxMDUwMyAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZWdjYWNoZS5oCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTQ0NTMwMTY1ICswMjAwCitAQCAtODAsOSArODAsOSBAQAogIAogIGV4dGVybiBl bnVtIHJlZ2lzdGVyX3N0YXR1cwogICAgcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAoc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5ODMsNyArMjcxMyw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuaAogIAogIHZvaWQgcmVnY2FjaGVf aW52YWxpZGF0ZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSk7CiAgCi1A QCAtMTMxLDEwICsxMzEsMTEgQEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vu c2lnbgorQEAgLTExOSwxMCArMTE5LDExIEBACiAgICAgd3JpdGUgc3R5bGUgb3BlcmF0aW9ucy4g ICovCiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMgcmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCAo c3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKQEAgLTI5OTgsMTEgKzI3MjgsMTEgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5oCiAgCiAgLyogU3BlY2lhbCByb3V0 aW5lcyB0byByZWFkL3dyaXRlIHRoZSBQQy4gICovCiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3JlbW90ZS5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlbW90 ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcmVtb3Rl LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjczNTE3NTIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvcmVtb3RlLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzIzNjQ5NDUgKzAxMDAK LUBAIC05MTU3LDcgKzkxNTcsNyBAQCBpbnQgcmVtb3RlX2h3X2JyZWFrcG9pbnRfbGltaXQgPSAt MTsKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9yZW1vdGUuYwkyMDE2LTA3LTE2 IDE0OjMzOjQyLjEwNDUxMDUyNyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9y ZW1vdGUuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0NTUzMDE3MiArMDIwMAorQEAgLTk0NzMsNyAr OTQ3Myw3IEBACiAgCiAgc3RhdGljIGludAogIHJlbW90ZV9yZWdpb25fb2tfZm9yX2h3X3dhdGNo cG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMzAxMSwxMSArMjc0MSwxMSBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlbW90ZS5jCiAgewogICAgaWYgKHJlbW90 ZV9od193YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9PSAwKQogICAgICByZXR1cm4gMDsKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3B1LW11bHRpYXJjaC5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3NwdS1tdWx0aWFyY2guYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE1LTExLTAyIDIxOjIz OjExLjIyODM1MTc1OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zcHUtbXVs dGlhcmNoLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzMzNjQ5NTEgKzAxMDAKLUBAIC0xMjcsNyAr MTI3LDcgQEAgc3B1X3RocmVhZF9hcmNoaXRlY3R1cmUgKHN0cnVjdCB0YXJnZXRfbworLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE2LTA3LTE2IDE0 OjMzOjQyLjEwNTUxMDUzNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUt bXVsdGlhcmNoLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDU1MzAxNzIgKzAyMDAKK0BAIC0xMjcs NyArMTI3LDcgQEAKICAvKiBPdmVycmlkZSB0aGUgdG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBv aW50IHJvdXRpbmUuICAqLwogIHN0YXRpYyBpbnQKICBzcHVfcmVnaW9uX29rX2Zvcl9od193YXRj aHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTMwMjQsMTEgKzI3NTQsMTEgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zcHUtbXVsdGlhcmNoLmMKICB7CiAgICBz dHJ1Y3QgdGFyZ2V0X29wcyAqb3BzX2JlbmVhdGggPSBmaW5kX3RhcmdldF9iZW5lYXRoIChzZWxm KTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9zdGFjay5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvc3RhY2suYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyOTM1MTc2 NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zdGFjay5jCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjMzMzY0OTUxICswMTAwCi1AQCAtMTc2LDcgKzE3Niw3IEBAIHByaW50X3N0YWNr X2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnIKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9zdGFjay5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTA2NTEwNTQ0ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N0YWNrLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDY1 MzAxODEgKzAyMDAKK0BAIC0xNzYsNyArMTc2LDcgQEAKICAgICBhcmd1bWVudCAobm90IGp1c3Qg dGhlIGZpcnN0IG5hbWVsZXNzIGFyZ3VtZW50KS4gICovCiAgCiAgc3RhdGljIHZvaWQKQEAgLTMw MzcsNyArMjc2Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwog IAkJCSAgIGludCBmaXJzdCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7CiAgICBzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci1AQCAtNTM5LDcgKzUz OSw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMsIHMKK0BAIC01Mzcs NyArNTM3LDcgQEAKICAgIC8qIE9mZnNldCBvZiBuZXh0IHN0YWNrIGFyZ3VtZW50IGJleW9uZCB0 aGUgb25lIHdlIGhhdmUgc2VlbiB0aGF0IGlzCiAgICAgICBhdCB0aGUgaGlnaGVzdCBvZmZzZXQs IG9yIC0xIGlmIHdlIGhhdmVuJ3QgY29tZSB0byBhIHN0YWNrCiAgICAgICBhcmd1bWVudCB5ZXQu ICAqLwpAQCAtMzA0Niw3ICsyNzc2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9zdGFjay5jCiAgICAvKiBOdW1iZXIgb2YgaW50cyBvZiBhcmd1bWVudHMgdGhhdCB3ZSBoYXZl IHByaW50ZWQgc28gZmFyLiAgKi8KICAgIGludCBhcmdzX3ByaW50ZWQgPSAwOwogICAgc3RydWN0 IGNsZWFudXAgKm9sZF9jaGFpbjsKLUBAIC01NzMsOCArNTczLDggQEAgcHJpbnRfZnJhbWVfYXJn cyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcworQEAgLTU3MSw4ICs1NzEsOCBAQAogIAkgICAgY2Fz ZSBMT0NfQVJHOgogIAkgICAgY2FzZSBMT0NfUkVGX0FSRzoKICAJICAgICAgewpAQCAtMzA1Nyw3 ICsyNzg3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zdGFjay5jCiAgCiAg CQkvKiBDb21wdXRlIGFkZHJlc3Mgb2YgbmV4dCBhcmd1bWVudCBieSBhZGRpbmcgdGhlIHNpemUg b2YKICAJCSAgIHRoaXMgYXJndW1lbnQgYW5kIHJvdW5kaW5nIHRvIGFuIGludCBib3VuZGFyeS4g ICovCi1AQCAtNzA5LDcgKzcwOSw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wg KmZ1bmMsIHMKK0BAIC03MDcsNyArNzA3LDcgQEAKICAgICAgIGVub3VnaCBhYm91dCB0aGUgc3Rh Y2sgdG8gZmluZCB0aGVtLiAgKi8KICAgIGlmIChudW0gIT0gLTEpCiAgICAgIHsKQEAgLTMwNjYs MTEgKzI3OTYsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zdGFjay5jCiAg CiAgICAgICAgaWYgKGhpZ2hlc3Rfb2Zmc2V0ID09IC0xKQogIAlzdGFydCA9IGdkYmFyY2hfZnJh bWVfYXJnc19za2lwIChnZXRfZnJhbWVfYXJjaCAoZnJhbWUpKTsKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvc3ltbWlzYy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3N5bW1pc2MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2Ri L3N5bW1pc2MuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyOTM1MTc2NSArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9zeW1taXNjLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzQzNjQ5 NTggKzAxMDAKLUBAIC01MzQsMTEgKzUzNCwxMSBAQCBwcmludF9zeW1ib2wgKHZvaWQgKmFyZ3Mp CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMTA3NTEwNTUyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N5 bW1pc2MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0NjUzMDE4MSArMDIwMAorQEAgLTUzOCwxMSAr NTM4LDExIEBACiAgCiAgCWNhc2UgTE9DX0NPTlNUX0JZVEVTOgogIAkgIHsKQEAgLTMwODUsMTEg KzI4MTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zeW1taXNjLmMKICAJ ICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdUSCAodHlwZSk7IGkrKykKICAJICAgICAgZnBy aW50Zl9maWx0ZXJlZCAob3V0ZmlsZSwgIiAlMDJ4IiwKICAJCQkJKHVuc2lnbmVkKSBTWU1CT0xf VkFMVUVfQllURVMgKHN5bWJvbClbaV0pOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi90YXJnZXQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90YXJnZXQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMTUt MTEtMDIgMjE6MjM6MTEuMjMwMzUxNzcyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3RhcmdldC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM0MzY0OTU4ICswMTAwCi1AQCAtNTQs NyArNTQsNyBAQCBzdGF0aWMgaW50IGRlZmF1bHRfd2F0Y2hwb2ludF9hZGRyX3dpdGhpCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGFyZ2V0LmMJMjAxNi0wNy0xNiAxNDozMzo0 Mi4xMDg1MTA1NjAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LmMJ MjAxNi0wNy0xNiAxNDozMzo0NC41NDY1MzAxODEgKzAyMDAKK0BAIC01Niw3ICs1Niw3IEBACiAg CQkJCQkJIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOwogIAogIHN0YXRpYyBpbnQgZGVmYXVs dF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0z MDk4LDcgKzI4MjgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5j CiAgCiAgc3RhdGljIHZvaWQgZGVmYXVsdF9yY21kIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLCBjb25z dCBjaGFyICosIHN0cnVjdCB1aV9maWxlICopOwogIAotQEAgLTMxMzIsNyArMzEzMiw3IEBAIHRh cmdldF9maWxlaW9fcmVhZF9zdHJhbGxvYyAoc3RydWN0IGluZmUKK0BAIC0zMTk2LDcgKzMxOTYs NyBAQAogIAogIHN0YXRpYyBpbnQKICBkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2lu dCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0zMTA3LDExICsyODM3LDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LmMKICB7CiAgICByZXR1cm4gKGxlbiA8 PSBnZGJhcmNoX3B0cl9iaXQgKHRhcmdldF9nZGJhcmNoICgpKSAvIFRBUkdFVF9DSEFSX0JJVCk7 CiAgfQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQuaAorSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90YXJnZXQuaAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3RhcmdldC5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjMxMzUx Nzc5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5oCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjM1MzY0OTY0ICswMTAwCi1AQCAtNTQ5LDcgKzU0OSw3IEBAIHN0cnVjdCB0 YXJnZXRfb3BzCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGFyZ2V0LmgJMjAx Ni0wNy0xNiAxNDozMzo0Mi4xMDk1MTA1NjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdGFyZ2V0LmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NDc1MzAxODkgKzAyMDAKK0BAIC01 NTEsNyArNTUxLDcgQEAKICAgICAgLyogRG9jdW1lbnRhdGlvbiBvZiB0aGlzIHJvdXRpbmUgaXMg cHJvdmlkZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZwogICAgICAgICB0YXJnZXRfKiBtYWNyby4g ICovCiAgICAgIGludCAoKnRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCkgKHN0cnVjdCB0 YXJnZXRfb3BzICosCkBAIC0zMTIwLDExICsyODUwLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdGFyZ2V0LmgKICAgICAgICBUQVJHRVRfREVGQVVMVF9GVU5DIChkZWZhdWx0 X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk7CiAgCiAgICAgIGludCAoKnRvX2Nhbl9hY2Nl bF93YXRjaHBvaW50X2NvbmRpdGlvbikgKHN0cnVjdCB0YXJnZXRfb3BzICosCi1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90cmFjZXBvaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1 MTAyNy5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMzMzNTE3OTIg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjM2MzY0OTcxICswMTAwCi1AQCAtOTMwLDEzICs5MzAsMTMgQEAgYWRkX3Jl Z2lzdGVyIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICpjbworLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL3RyYWNlcG9pbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjExMjUxMDU5MiAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90cmFjZXBvaW50LmMJMjAxNi0wNy0x NiAxNDozMzo0NC41NDc1MzAxODkgKzAyMDAKK0BAIC05MzAsMTMgKzkzMCwxMyBAQAogIHN0YXRp YyB2b2lkCiAgYWRkX21lbXJhbmdlIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICptZW1yYW5nZXMs IAogIAkgICAgICBpbnQgdHlwZSwgYmZkX3NpZ25lZF92bWEgYmFzZSwKQEAgLTMxNDAsNyArMjg3 MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgICAg IH0KICAKICAgIC8qIHR5cGU6IG1lbXJhbmdlX2Fic29sdXRlID09IG1lbW9yeSwgb3RoZXIgbiA9 PSBiYXNlcmVnICovCi1AQCAtOTY2LDcgKzk2Niw3IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qg Y29sbGVjdGlvbl9saXN0ICoKK0BAIC05NjYsNyArOTY2LDcgQEAKICAJCUNPUkVfQUREUiBzY29w ZSwKICAJCWludCB0cmFjZV9zdHJpbmcpCiAgewpAQCAtMzE0OSw3ICsyODc5LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90cmFjZXBvaW50LmMKICAgIHVuc2lnbmVkIGludCBy ZWc7CiAgICBiZmRfc2lnbmVkX3ZtYSBvZmZzZXQ7CiAgICBpbnQgdHJlYXRfYXNfZXhwciA9IDA7 Ci1AQCAtOTkwLDggKzk5MCw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9s aXN0ICoKK0BAIC05OTAsOCArOTkwLDggQEAKICAJICBjaGFyIHRtcFs0MF07CiAgCiAgCSAgc3By aW50Zl92bWEgKHRtcCwgb2Zmc2V0KTsKQEAgLTMxNjAsNyArMjg5MCw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgCQkJICAgdG1wIC8qIGFkZHJlc3Mg Ki8pOwogIAl9CiAgICAgICAgLyogQSBzdHJ1Y3QgbWF5IGJlIGEgQysrIGNsYXNzIHdpdGggc3Rh dGljIGZpZWxkcywgZ28gdG8gZ2VuZXJhbAotQEAgLTEwMjMsOCArMTAyMyw4IEBAIGNvbGxlY3Rf c3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC0xMDIzLDggKzEwMjMsOCBAQAog ICAgICAgIG9mZnNldCA9IGZyYW1lX29mZnNldCArIFNZTUJPTF9WQUxVRSAoc3ltKTsKICAgICAg ICBpZiAoaW5mb192ZXJib3NlKQogIAl7CkBAIC0zMTcxLDcgKzI5MDEsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogIAkgIHByaW50Zl92bWEgKG9mZnNl dCk7CiAgCSAgcHJpbnRmX2ZpbHRlcmVkICgiIGZyb20gZnJhbWUgcHRyIHJlZyAlZFxuIiwgcmVn KTsKICAJfQotQEAgLTEwMzUsOCArMTAzNSw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29s bGVjdGlvbl9saXN0ICoKK0BAIC0xMDM1LDggKzEwMzUsOCBAQAogICAgICAgIG9mZnNldCA9IDA7 CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzE4Miw3ICsyOTEyLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90cmFjZXBvaW50LmMKICAJICBwcmludGZfdm1h IChvZmZzZXQpOwogIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIHJlZyAlZFxuIiwgcmVnKTsK ICAJfQotQEAgLTEwNDcsOCArMTA0Nyw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVj dGlvbl9saXN0ICoKK0BAIC0xMDQ3LDggKzEwNDcsOCBAQAogICAgICAgIG9mZnNldCA9IGZyYW1l X29mZnNldCArIFNZTUJPTF9WQUxVRSAoc3ltKTsKICAgICAgICBpZiAoaW5mb192ZXJib3NlKQog IAl7CkBAIC0zMTkzLDcgKzI5MjMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3RyYWNlcG9pbnQuYwogIAkgIHByaW50Zl92bWEgKG9mZnNldCk7CiAgCSAgcHJpbnRmX2ZpbHRl cmVkICgiIGZyb20gZnJhbWUgcHRyIHJlZyAlZFxuIiwgcmVnKTsKICAJfQotQEAgLTI3MDgsNyAr MjcwOCw4IEBAIHNjb3BlX2luZm8gKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKK0BAIC0yNzAz LDcgKzI3MDMsOCBAQAogICAgY29uc3QgY2hhciAqc3ltbmFtZTsKICAgIGNoYXIgKnNhdmVfYXJn cyA9IGFyZ3M7CiAgICBzdHJ1Y3QgYmxvY2tfaXRlcmF0b3IgaXRlcjsKQEAgLTMyMDMsNyArMjkz Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgICBz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKICAgIGludCByZWdubzsKICAgIHN0cnVjdCBldmVudF9s b2NhdGlvbiAqbG9jYXRpb247Ci1AQCAtMjg1Miw4ICsyODUzLDExIEBAIHNjb3BlX2luZm8gKGNo YXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKK0BAIC0yODQ3LDggKzI4NDgsMTEgQEAKICAJCX0KICAJ ICAgIH0KICAJICBpZiAoU1lNQk9MX1RZUEUgKHN5bSkpCkBAIC0zMjE3LDI0ICsyOTQ3LDExIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgCX0KICAgICAg ICBpZiAoQkxPQ0tfRlVOQ1RJT04gKGJsb2NrKSkKICAJYnJlYWs7Ci1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3R5cGVwcmludC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjcub3JpZy9nZGIvdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMzQzNTE3 OTggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHlwZXByaW50LmMJMjAxNS0x MS0wMiAyMToyMzoxMy4yMzYzNjQ5NzEgKzAxMDAKLUBAIC00MDYsNyArNDA2LDcgQEAgd2hhdGlz X2V4cCAoY2hhciAqZXhwLCBpbnQgc2hvdykKLSAgIHN0cnVjdCB0eXBlICpyZWFsX3R5cGUgPSBO VUxMOwotICAgc3RydWN0IHR5cGUgKnR5cGU7Ci0gICBpbnQgZnVsbCA9IDA7Ci0tICBpbnQgdG9w ID0gLTE7Ci0rICBMT05HRVNUIHRvcCA9IC0xOwotICAgaW50IHVzaW5nX2VuYyA9IDA7Ci0gICBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwotICAgc3RydWN0IHR5cGVfcHJpbnRfb3B0 aW9ucyBmbGFncyA9IGRlZmF1bHRfcHR5cGVfZmxhZ3M7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3ZhbGFyaXRoLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFs YXJpdGguYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3Zh bGFyaXRoLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMzQzNTE3OTggKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwkyMDE1LTExLTAyIDIxOjIzOjU5LjgyMjY3MTQ5 NiArMDEwMAotQEAgLTE4OCwxMiArMTg4LDEyIEBAIHZhbHVlX3N1YnNjcmlwdCAoc3RydWN0IHZh bHVlICphcnJheSwgTE8KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWxhcml0 aC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE0NTEwNjA4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3ZhbGFyaXRoLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDg1MzAxOTcgKzAy MDAKK0BAIC0xODgsNyArMTg4LDcgQEAKICAgICB0byBkb3VibGVzLCBidXQgbm8gbG9uZ2VyIGRv ZXMuICAqLwogIAogIHN0cnVjdCB2YWx1ZSAqCkBAIC0zMjQzLDE0ICsyOTYwLDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxhcml0aC5jCiAgewogICAgc3RydWN0IHR5cGUg KmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwogICAgc3Ry dWN0IHR5cGUgKmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoYXJy YXlfdHlwZSkpOwotLSAgdW5zaWduZWQgaW50IGVsdF9zaXplID0gdHlwZV9sZW5ndGhfdW5pdHMg KGVsdF90eXBlKTsKLS0gIHVuc2lnbmVkIGludCBlbHRfb2ZmczsKLSsgIFVMT05HRVNUIGVsdF9z aXplID0gdHlwZV9sZW5ndGhfdW5pdHMgKGVsdF90eXBlKTsKLSsgIFVMT05HRVNUIGVsdF9vZmZz OwotICAgTE9OR0VTVCBlbHRfc3RyaWRlID0gVFlQRV9CWVRFX1NUUklERSAoVFlQRV9JTkRFWF9U WVBFIChhcnJheV90eXBlKSk7Ci0gICBzdHJ1Y3QgdmFsdWUgKnY7Ci0gCi1AQCAtNjc4LDcgKzY3 OCw3IEBAIHZhbHVlX2NvbmNhdCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QKK0BAIC02NzQs NyArNjc0LDcgQEAKICAgIHN0cnVjdCB2YWx1ZSAqaW52YWwxOwogICAgc3RydWN0IHZhbHVlICpp bnZhbDI7CiAgICBzdHJ1Y3QgdmFsdWUgKm91dHZhbCA9IE5VTEw7CkBAIC0zMjU5LDcgKzI5Njks NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMKICAgIGludCBj b3VudCwgaWR4OwogICAgY2hhciAqcHRyOwogICAgY2hhciBpbmNoYXI7Ci1AQCAtMTUzMSw3ICsx NTMxLDcgQEAgdmFsdWVfYmlub3AgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0CitAQCAtMTUy Nyw3ICsxNTI3LDcgQEAKICBpbnQKICB2YWx1ZV9sb2dpY2FsX25vdCAoc3RydWN0IHZhbHVlICph cmcxKQogIHsKQEAgLTMyNjgsNyArMjk3OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvdmFsYXJpdGguYwogICAgY29uc3QgZ2RiX2J5dGUgKnA7CiAgICBzdHJ1Y3QgdHlwZSAq dHlwZTE7CiAgCi1AQCAtMTU2MiwxMSArMTU2MiwxMSBAQCB2YWx1ZV9sb2dpY2FsX25vdCAoc3Ry dWN0IHZhbHVlICphcmcxKQorQEAgLTE1NTgsMTEgKzE1NTgsMTEgQEAKICBzdGF0aWMgaW50CiAg dmFsdWVfc3RyY21wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdCB2YWx1ZSAqYXJnMikKICB7 CkBAIC0zMjgzLDIwICsyOTkzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dmFsYXJpdGguYwogIAogICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQogICAgICB7Ci1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3ZhbG9wcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEw Mjcub3JpZy9nZGIvdmFsb3BzLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yNDAzNTE4MzggKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMJMjAxNS0xMS0wMiAyMToyMzox My4yMzgzNjQ5ODQgKzAxMDAKLUBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUg KnNlYXJjaF9zdHJ1Y3RfZmllbGQKLSAKLSBzdGF0aWMgc3RydWN0IHZhbHVlICpzZWFyY2hfc3Ry dWN0X21ldGhvZCAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgdmFsdWUgKiosCi0gCQkJCQkgICBzdHJ1 Y3QgdmFsdWUgKiosCi0tCQkJCQkgICBpbnQsIGludCAqLCBzdHJ1Y3QgdHlwZSAqKTsKLSsJCQkJ CSAgIExPTkdFU1QsIGludCAqLCBzdHJ1Y3QgdHlwZSAqKTsKLSAKLSBzdGF0aWMgaW50IGZpbmRf b2xvYWRfY2hhbXBfbmFtZXNwYWNlIChzdHJ1Y3QgdmFsdWUgKiosIGludCwKLSAJCQkJICAgICAg IGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLAotQEAgLTc5LDcgKzc5LDcgQEAgb2xvYWRfY2xh c3NpZmljYXRpb24gY2xhc3NpZnlfb2xvYWRfbWF0YworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE3NTEwNjMyICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbG9wcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQu NTQ4NTMwMTk3ICswMjAwCitAQCAtNzksNyArNzksNyBAQAogIAkJCQkJICAgaW50LCBpbnQpOwog IAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAo c3RydWN0IHR5cGUgKiwKQEAgLTMzMDUsMTkgKzMwMDYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgCQkJCQkJICAgICBjb25zdCBjaGFyICosCiAgCQkJCQkJ ICAgICBzdHJ1Y3QgdHlwZSAqLAogIAkJCQkJCSAgICAgaW50LCBlbnVtIG5vc2lkZSk7Ci1AQCAt OTYsOSArOTYsOSBAQCBzdGF0aWMgQ09SRV9BRERSIGFsbG9jYXRlX3NwYWNlX2luX2luZmVyCi0g c3RhdGljIHN0cnVjdCB2YWx1ZSAqY2FzdF9pbnRvX2NvbXBsZXggKHN0cnVjdCB0eXBlICosIHN0 cnVjdCB2YWx1ZSAqKTsKLSAKLSBzdGF0aWMgdm9pZCBmaW5kX21ldGhvZF9saXN0IChzdHJ1Y3Qg dmFsdWUgKiosIGNvbnN0IGNoYXIgKiwKLS0JCQkgICAgICBpbnQsIHN0cnVjdCB0eXBlICosIHN0 cnVjdCBmbl9maWVsZCAqKiwgaW50ICosCi0rCQkJICAgICAgTE9OR0VTVCwgc3RydWN0IHR5cGUg Kiwgc3RydWN0IGZuX2ZpZWxkICoqLCBpbnQgKiwKLSAJCQkgICAgICBWRUMgKHhtZXRob2Rfd29y a2VyX3B0cikgKiosCi0tCQkJICAgICAgc3RydWN0IHR5cGUgKiosIGludCAqKTsKLSsJCQkgICAg ICBzdHJ1Y3QgdHlwZSAqKiwgTE9OR0VTVCAqKTsKLSAKLSB2b2lkIF9pbml0aWFsaXplX3ZhbG9w cyAodm9pZCk7Ci0gCi1AQCAtMTgzLDcgKzE4Myw3IEBAIGZpbmRfZnVuY3Rpb25faW5faW5mZXJp b3IgKGNvbnN0IGNoYXIgKm4KK0BAIC0xODMsNyArMTgzLDcgQEAKICAgICBzcGFjZS4gICovCiAg CiAgc3RydWN0IHZhbHVlICoKQEAgLTMzMjYsMTcgKzMwMTUsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgewogICAgc3RydWN0IG9iamZpbGUgKm9iamY7CiAg ICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKCJtYWxsb2Mi LCAmb2JqZik7Ci1AQCAtMjU2LDcgKzI1Niw4IEBAIHZhbHVlX2Nhc3Rfc3RydWN0cyAoc3RydWN0 IHR5cGUgKnR5cGUsIHMKLSAgIGlmIChUWVBFX05BTUUgKHQyKSAhPSBOVUxMKQotICAgICB7Ci0g ICAgICAgLyogVHJ5IGRvd25jYXN0aW5nIHVzaW5nIHRoZSBydW4tdGltZSB0eXBlIG9mIHRoZSB2 YWx1ZS4gICovCi0tICAgICAgaW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOwotKyAgICAgIGludCBm dWxsLCB1c2luZ19lbmM7Ci0rICAgICAgTE9OR0VTVCB0b3A7Ci0gICAgICAgc3RydWN0IHR5cGUg KnJlYWxfdHlwZTsKLSAKLSAgICAgICByZWFsX3R5cGUgPSB2YWx1ZV9ydHRpX3R5cGUgKHYyLCAm ZnVsbCwgJnRvcCwgJnVzaW5nX2VuYyk7Ci1AQCAtMzk2LDEyICszOTcsMTIgQEAgdmFsdWVfY2Fz dCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YQorQEAgLTM5NywxMiArMzk3LDEyIEBACiAg ICBpZiAoY29kZTEgPT0gVFlQRV9DT0RFX0FSUkFZKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5 cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOwpAQCAtMzM1MSw2NCAr MzAzMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMKICAJICBM T05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgbmV3X2xlbmd0aDsKICAKICAJICBpZiAoZ2V0 X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpIDwg MCkKLUBAIC02MzUsNyArNjM2LDcgQEAgdmFsdWVfcmVpbnRlcnByZXRfY2FzdCAoc3RydWN0IHR5 cGUgKnR5cAotIHN0YXRpYyBpbnQKLSBkeW5hbWljX2Nhc3RfY2hlY2tfMSAoc3RydWN0IHR5cGUg KmRlc2lyZWRfdHlwZSwKLSAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJICAg ICAgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCSAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0 LAotIAkJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsCi0gCQkgICAgICBzdHJ1Y3QgdmFsdWUgKnZh bCwKLSAJCSAgICAgIHN0cnVjdCB0eXBlICpzZWFyY2hfdHlwZSwKLUBAIC02NDcsOCArNjQ4LDgg QEAgZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNpcgotIAotICAgZm9yIChp ID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoc2VhcmNoX3R5cGUpICYmIHJlc3VsdF9jb3Vu dCA8IDI7ICsraSkKLSAgICAgewotLSAgICAgIGludCBvZmZzZXQgPSBiYXNlY2xhc3Nfb2Zmc2V0 IChzZWFyY2hfdHlwZSwgaSwgdmFsYWRkciwgZW1iZWRkZWRfb2Zmc2V0LAotLQkJCQkgICAgIGFk ZHJlc3MsIHZhbCk7Ci0rICAgICAgTE9OR0VTVCBvZmZzZXQgPSBiYXNlY2xhc3Nfb2Zmc2V0IChz ZWFyY2hfdHlwZSwgaSwgdmFsYWRkciwKLSsJCQkJCSBlbWJlZGRlZF9vZmZzZXQsIGFkZHJlc3Ms IHZhbCk7Ci0gCi0gICAgICAgaWYgKGNsYXNzX3R5cGVzX3NhbWVfcCAoZGVzaXJlZF90eXBlLCBU WVBFX0JBU0VDTEFTUyAoc2VhcmNoX3R5cGUsIGkpKSkKLSAJewotQEAgLTY4Miw3ICs2ODMsNyBA QCBkeW5hbWljX2Nhc3RfY2hlY2tfMSAoc3RydWN0IHR5cGUgKmRlc2lyCi0gc3RhdGljIGludAot IGR5bmFtaWNfY2FzdF9jaGVja18yIChzdHJ1Y3QgdHlwZSAqZGVzaXJlZF90eXBlLAotIAkJICAg ICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0 LAotKwkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkgICAgICBDT1JFX0FERFIg YWRkcmVzcywKLSAJCSAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsLAotIAkJICAgICAgc3RydWN0IHR5 cGUgKnNlYXJjaF90eXBlLAotQEAgLTY5Miw3ICs2OTMsNyBAQCBkeW5hbWljX2Nhc3RfY2hlY2tf MiAoc3RydWN0IHR5cGUgKmRlc2lyCi0gCi0gICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VD TEFTU0VTIChzZWFyY2hfdHlwZSkgJiYgcmVzdWx0X2NvdW50IDwgMjsgKytpKQotICAgICB7Ci0t ICAgICAgaW50IG9mZnNldDsKLSsgICAgICBMT05HRVNUIG9mZnNldDsKLSAKLSAgICAgICBpZiAo ISBCQVNFVFlQRV9WSUFfUFVCTElDIChzZWFyY2hfdHlwZSwgaSkpCi0gCWNvbnRpbnVlOwotQEAg LTcyMyw3ICs3MjQsOCBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMiAoc3RydWN0IHR5cGUgKmRlc2ly Ci0gc3RydWN0IHZhbHVlICoKLSB2YWx1ZV9keW5hbWljX2Nhc3QgKHN0cnVjdCB0eXBlICp0eXBl LCBzdHJ1Y3QgdmFsdWUgKmFyZykKLSB7Ci0tICBpbnQgZnVsbCwgdG9wLCB1c2luZ19lbmM7Ci0r ICBpbnQgZnVsbCwgdXNpbmdfZW5jOwotKyAgTE9OR0VTVCB0b3A7Ci0gICBzdHJ1Y3QgdHlwZSAq cmVzb2x2ZWRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUpOwotICAgc3RydWN0IHR5cGUgKmFy Z190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7Ci0gICBzdHJ1Y3QgdHlw ZSAqY2xhc3NfdHlwZSwgKnJ0dGlfdHlwZTsKLUBAIC05NTQsNyArOTU2LDcgQEAgdmFsdWVfYXRf bGF6eSAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQQotIH0KLSAKLSB2b2lkCi0tcmVhZF92YWx1 ZV9tZW1vcnkgKHN0cnVjdCB2YWx1ZSAqdmFsLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotK3JlYWRf dmFsdWVfbWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQs Ci0gCQkgICBpbnQgc3RhY2ssIENPUkVfQUREUiBtZW1hZGRyLAotIAkJICAgZ2RiX2J5dGUgKmJ1 ZmZlciwgc2l6ZV90IGxlbmd0aCkKLSB7Ci1AQCAtMTA1Nyw3ICsxMDU5LDcgQEAgdmFsdWVfYXNz aWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzdHJ1YworQEAgLTEwNjMsNyArMTA2Myw3IEBACiAg ICAgICAgewogIAljb25zdCBnZGJfYnl0ZSAqZGVzdF9idWZmZXI7CiAgCUNPUkVfQUREUiBjaGFu Z2VkX2FkZHI7CkBAIC0zNDE3LDEzNCArMzAzOSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdmFsb3BzLmMKICAgICAgICAgIGdkYl9ieXRlIGJ1ZmZlcltzaXplb2YgKExPTkdF U1QpXTsKICAKICAJaWYgKHZhbHVlX2JpdHNpemUgKHRvdmFsKSkKLUBAIC0xMTI2LDcgKzExMjgs NyBAQCB2YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1ZSAqdG92YWwsIHN0cnVjCi0gCWlmICh2YWx1 ZV9iaXRzaXplICh0b3ZhbCkpCi0gCSAgewotIAkgICAgc3RydWN0IHZhbHVlICpwYXJlbnQgPSB2 YWx1ZV9wYXJlbnQgKHRvdmFsKTsKLS0JICAgIGludCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHBh cmVudCkgKyB2YWx1ZV9vZmZzZXQgKHRvdmFsKTsKLSsJICAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFs dWVfb2Zmc2V0IChwYXJlbnQpICsgdmFsdWVfb2Zmc2V0ICh0b3ZhbCk7Ci0gCSAgICBpbnQgY2hh bmdlZF9sZW47Ci0gCSAgICBnZGJfYnl0ZSBidWZmZXJbc2l6ZW9mIChMT05HRVNUKV07Ci0gCSAg ICBpbnQgb3B0aW0sIHVuYXZhaWw7Ci1AQCAtMTU5MCw3ICsxNTkyLDcgQEAgdmFsdWVfYXJyYXkg KGludCBsb3dib3VuZCwgaW50IGhpZ2hib3VuZAotIHsKLSAgIGludCBuZWxlbTsKLSAgIGludCBp ZHg7Ci0tICB1bnNpZ25lZCBpbnQgdHlwZWxlbmd0aDsKLSsgIFVMT05HRVNUIHR5cGVsZW5ndGg7 Ci0gICBzdHJ1Y3QgdmFsdWUgKnZhbDsKLSAgIHN0cnVjdCB0eXBlICphcnJheXR5cGU7Ci0gCi1A QCAtMTc2Niw3ICsxNzY4LDcgQEAgdHlwZWNtcCAoaW50IHN0YXRpY3AsIGludCB2YXJhcmdzLCBp bnQgbgotIAotIHN0YXRpYyB2b2lkCi0gdXBkYXRlX3NlYXJjaF9yZXN1bHQgKHN0cnVjdCB2YWx1 ZSAqKnJlc3VsdF9wdHIsIHN0cnVjdCB2YWx1ZSAqdiwKLS0JCSAgICAgIGludCAqbGFzdF9ib2Zm c2V0LCBpbnQgYm9mZnNldCwKLSsJCSAgICAgIExPTkdFU1QgKmxhc3RfYm9mZnNldCwgTE9OR0VT VCBib2Zmc2V0LAotIAkJICAgICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHR5cGUgKnR5cGUp Ci0gewotICAgaWYgKHYgIT0gTlVMTCkKLUBAIC0xNzkwLDEwICsxNzkyLDEwIEBAIHVwZGF0ZV9z ZWFyY2hfcmVzdWx0IChzdHJ1Y3QgdmFsdWUgKipyZXMKLSAgICBsb29rdXAgaXMgYW1iaWd1b3Vz LiAgKi8KLSAKLSBzdGF0aWMgdm9pZAotLWRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNo YXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwKLStkb19zZWFyY2hfc3Ry dWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKmFyZzEsIExPTkdFU1Qg b2Zmc2V0LAotIAkJCXN0cnVjdCB0eXBlICp0eXBlLCBpbnQgbG9va2luZ19mb3JfYmFzZWNsYXNz LAotIAkJCXN0cnVjdCB2YWx1ZSAqKnJlc3VsdF9wdHIsCi0tCQkJaW50ICpsYXN0X2JvZmZzZXQs Ci0rCQkJTE9OR0VTVCAqbGFzdF9ib2Zmc2V0LAotIAkJCXN0cnVjdCB0eXBlICpvdXRlcm1vc3Rf dHlwZSkKLSB7Ci0gICBpbnQgaTsKLUBAIC0xODQwLDcgKzE4NDIsNyBAQCBkb19zZWFyY2hfc3Ry dWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lCi0gCQkgICA8dmFyaWFudCBmaWVsZD4uICAqLwot IAotIAkJc3RydWN0IHZhbHVlICp2ID0gTlVMTDsKLS0JCWludCBuZXdfb2Zmc2V0ID0gb2Zmc2V0 OwotKwkJTE9OR0VTVCBuZXdfb2Zmc2V0ID0gb2Zmc2V0OwotIAotIAkJLyogVGhpcyBpcyBwcmV0 dHkgZ3Jvc3MuICBJbiBHKyssIHRoZSBvZmZzZXQgaW4gYW4KLSAJCSAgIGFub255bW91cyB1bmlv biBpcyByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZQotQEAgLTE4NzksNyArMTg4MSw3 IEBAIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUKLSAJCQkgICAgICYm IChzdHJjbXBfaXcgKG5hbWUsIAotIAkJCQkJICAgIFRZUEVfQkFTRUNMQVNTX05BTUUgKHR5cGUs IAotIAkJCQkJCQkJIGkpKSA9PSAwKSk7Ci0tICAgICAgaW50IGJvZmZzZXQgPSB2YWx1ZV9lbWJl ZGRlZF9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0OwotKyAgICAgIExPTkdFU1QgYm9mZnNldCA9IHZh bHVlX2VtYmVkZGVkX29mZnNldCAoYXJnMSkgKyBvZmZzZXQ7Ci0gCi0gICAgICAgaWYgKEJBU0VU WVBFX1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKLSAJewotQEAgLTE5NTUsNyArMTk1Nyw3IEBAIHNl YXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHMKLSAJCSAgICAgc3RydWN0IHR5 cGUgKnR5cGUsIGludCBsb29raW5nX2Zvcl9iYXNlY2xhc3MpCi0gewotICAgc3RydWN0IHZhbHVl ICpyZXN1bHQgPSBOVUxMOwotLSAgaW50IGJvZmZzZXQgPSAwOwotKyAgTE9OR0VTVCBib2Zmc2V0 ID0gMDsKLSAKLSAgIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKG5hbWUsIGFyZzEsIDAsIHR5cGUs IGxvb2tpbmdfZm9yX2Jhc2VjbGFzcywKLSAJCQkgICZyZXN1bHQsICZib2Zmc2V0LCB0eXBlKTsK LUBAIC0xOTcyLDcgKzE5NzQsNyBAQCBzZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpu YW1lLCBzCi0gCi0gc3RhdGljIHN0cnVjdCB2YWx1ZSAqCi0gc2VhcmNoX3N0cnVjdF9tZXRob2Qg KGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqKmFyZzFwLAotLQkJICAgICAgc3RydWN0 IHZhbHVlICoqYXJncywgaW50IG9mZnNldCwKLSsJCSAgICAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3Ms IExPTkdFU1Qgb2Zmc2V0LAotIAkJICAgICAgaW50ICpzdGF0aWNfbWVtZnVuY3AsIHN0cnVjdCB0 eXBlICp0eXBlKQotIHsKLSAgIGludCBpOwotQEAgLTIwMzYsOCArMjAzOCw4IEBAIHNlYXJjaF9z dHJ1Y3RfbWV0aG9kIChjb25zdCBjaGFyICpuYW1lLAotIAotICAgZm9yIChpID0gVFlQRV9OX0JB U0VDTEFTU0VTICh0eXBlKSAtIDE7IGkgPj0gMDsgaS0tKQotICAgICB7Ci0tICAgICAgaW50IGJh c2Vfb2Zmc2V0OwotLSAgICAgIGludCB0aGlzX29mZnNldDsKLSsgICAgICBMT05HRVNUIGJhc2Vf b2Zmc2V0OwotKyAgICAgIExPTkdFU1QgdGhpc19vZmZzZXQ7Ci0gCi0gICAgICAgaWYgKEJBU0VU WVBFX1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKLSAJewotQEAgLTIyNzIsMTAgKzIyNzQsMTAgQEAg dmFsdWVfc3RydWN0X2VsdF9iaXRwb3MgKHN0cnVjdCB2YWx1ZSAqKgotIAotIHN0YXRpYyB2b2lk Ci0gZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoqYXJncCwgY29uc3QgY2hhciAqbWV0 aG9kLAotLQkJICBpbnQgb2Zmc2V0LCBzdHJ1Y3QgdHlwZSAqdHlwZSwKLSsJCSAgTE9OR0VTVCBv ZmZzZXQsIHN0cnVjdCB0eXBlICp0eXBlLAotIAkJICBzdHJ1Y3QgZm5fZmllbGQgKipmbl9saXN0 LCBpbnQgKm51bV9mbnMsCi0gCQkgIFZFQyAoeG1ldGhvZF93b3JrZXJfcHRyKSAqKnhtX3dvcmtl cl92ZWMsCi0tCQkgIHN0cnVjdCB0eXBlICoqYmFzZXR5cGUsIGludCAqYm9mZnNldCkKLSsJCSAg c3RydWN0IHR5cGUgKipiYXNldHlwZSwgTE9OR0VTVCAqYm9mZnNldCkKLSB7Ci0gICBpbnQgaTsK LSAgIHN0cnVjdCBmbl9maWVsZCAqZiA9IE5VTEw7Ci1AQCAtMjMzMiw3ICsyMzM0LDcgQEAgZmlu ZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoqYXJncCwgYwotICAgICAgZXh0ZW5zaW9uIG1l dGhvZHMuICAqLwotICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKSAtIDE7IGkg Pj0gMDsgaS0tKQotICAgICB7Ci0tICAgICAgaW50IGJhc2Vfb2Zmc2V0OwotKyAgICAgIExPTkdF U1QgYmFzZV9vZmZzZXQ7Ci0gCi0gICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0eXBl LCBpKSkKLSAJewotQEAgLTIzNzUsNyArMjM3Nyw3IEBAIHZhbHVlX2ZpbmRfb2xvYWRfbWV0aG9k X2xpc3QgKHN0cnVjdCB2YWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zm c2V0LCBzdHJ1Y3QgZm5fZmllbGQgKipmbl9saXN0LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCAqbnVtX2ZucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRUMg KHhtZXRob2Rfd29ya2VyX3B0cikgKip4bV93b3JrZXJfdmVjLAotLQkJCSAgICAgIHN0cnVjdCB0 eXBlICoqYmFzZXR5cGUsIGludCAqYm9mZnNldCkKLSsJCQkgICAgICBzdHJ1Y3QgdHlwZSAqKmJh c2V0eXBlLCBMT05HRVNUICpib2Zmc2V0KQotIHsKLSAgIHN0cnVjdCB0eXBlICp0OwotIAotQEAg LTI0ODYsNyArMjQ4OCw3IEBAIGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB2YWx1ZSAqKmFy Z3MKLSAgIC8qIE51bWJlciBvZiBvdmVybG9hZGVkIGluc3RhbmNlcyBiZWluZyBjb25zaWRlcmVk LiAgKi8KLSAgIGludCBudW1fZm5zID0gMDsKLSAgIHN0cnVjdCB0eXBlICpiYXNldHlwZSA9IE5V TEw7Ci0tICBpbnQgYm9mZnNldDsKLSsgIExPTkdFU1QgYm9mZnNldDsKLSAKLSAgIHN0cnVjdCBj bGVhbnVwICphbGxfY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKG51bGxfY2xlYW51cCwgTlVMTCk7 Ci0gCi1AQCAtMzMwMCw3ICszMzAyLDcgQEAgY29tcGFyZV9wYXJhbWV0ZXJzIChzdHJ1Y3QgdHlw ZSAqdDEsIHN0cgorQEAgLTMzMjgsNyArMzMyOCw3IEBACiAgICAgdGhlIGZvcm0gIkRPTUFJTjo6 TkFNRSIuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtMzU1Myw3ICszMDQ4LDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxvcHMuYwogIAkJCQlzdHJ1Y3Qg dHlwZSAqY3VydHlwZSwgY29uc3QgY2hhciAqbmFtZSwKICAJCQkJc3RydWN0IHR5cGUgKmludHlw ZSwgCiAgCQkJCWludCB3YW50X2FkZHJlc3MsCi1AQCAtMzMzNCw3ICszMzM2LDcgQEAgdmFsdWVf c3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdAorQEAgLTMzNjIsNyArMzM2Miw3IEBA CiAgCSAgaWYgKHdhbnRfYWRkcmVzcykKICAJICAgIHJldHVybiB2YWx1ZV9mcm9tX2xvbmdlc3QK ICAJICAgICAgKGxvb2t1cF9tZW1iZXJwdHJfdHlwZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwg ZG9tYWluKSwKQEAgLTM1NjIsNyArMzA1Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvdmFsb3BzLmMKICAJICBlbHNlIGlmIChub3NpZGUgIT0gRVZBTF9OT1JNQUwpCiAgCSAg ICByZXR1cm4gYWxsb2NhdGVfdmFsdWUgKFRZUEVfRklFTERfVFlQRSAodCwgaSkpOwogIAkgIGVs c2UKLUBAIC0zNTAyLDcgKzM1MDQsNyBAQCB2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2Ug KHN0cnVjdCB0CitAQCAtMzUzMCw3ICszNTMwLDcgQEAKICAgIGZvciAoaSA9IFRZUEVfTl9CQVNF Q0xBU1NFUyAodCkgLSAxOyBpID49IDA7IGktLSkKICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1 ZSAqdjsKQEAgLTM1NzEsMTYgKzMwNjYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3ZhbG9wcy5jCiAgCiAgICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0LCBpKSkK ICAJYmFzZV9vZmZzZXQgPSAwOwotQEAgLTM1ODMsNyArMzU4NSw3IEBAIHZhbHVlX21heWJlX25h bWVzcGFjZV9lbHQgKGNvbnN0IHN0cnVjdAotIAotIHN0cnVjdCB0eXBlICoKLSB2YWx1ZV9ydHRp X2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLCAKLS0JCQkgIGludCAq dG9wLCBpbnQgKnVzaW5nX2VuYykKLSsJCQkgIExPTkdFU1QgKnRvcCwgaW50ICp1c2luZ19lbmMp Ci0gewotICAgc3RydWN0IHZhbHVlICp0YXJnZXQgPSBOVUxMOwotICAgc3RydWN0IHR5cGUgKnR5 cGUsICpyZWFsX3R5cGUsICp0YXJnZXRfdHlwZTsKLUBAIC0zNjUxLDEyICszNjUzLDEyIEBAIHZh bHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0IHZhbHVlICoKK0BAIC0zNjc5LDcgKzM2Nzks NyBAQAogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAq YXJncCwgCiAgCQkgICBzdHJ1Y3QgdHlwZSAqcnR5cGUsIApAQCAtMzU4OSwyNiArMzA3NSwxMSBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgCQkgICBpbnQgeHVz aW5nX2VuYykKICB7CiAgICBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlOwotICAgaW50IGZ1bGwgPSAw OwotLSAgaW50IHRvcCA9IC0xOwotKyAgTE9OR0VTVCB0b3AgPSAtMTsKLSAgIGludCB1c2luZ19l bmMgPSAwOwotICAgc3RydWN0IHZhbHVlICpuZXdfdmFsOwotIAotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi92YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3ZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi92YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjQyMzUxODUxICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzkz NjQ5OTEgKzAxMDAKLUBAIC0yOTksNyArMjk5LDcgQEAgdmFsX3ByaW50X3NjYWxhcl90eXBlX3Ag KHN0cnVjdCB0eXBlICp0eQotIGludAotIHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLAotIAkJCSBzdHJ1Y3QgdHlwZSAqdHlwZSwKLS0JCQkgaW50IGVtYmVk ZGVkX29mZnNldCwKLSsJCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkJIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsKQotIHsKLSAgIHR5cGUgPSBjaGVja190eXBlZGVmICh0eXBlKTsKLUBA IC04MzQsNyArODM0LDcgQEAgZ2VuZXJpY192YWxfcHJpbnRfY29tcGxleCAoc3RydWN0IHR5cGUg KgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbHByaW50LmMJMjAxNi0wNy0x NiAxNDozMzo0Mi4xMTg1MTA2NDAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0OTUzMDIwNSArMDIwMAorQEAgLTkwNyw3 ICs5MDcsNyBAQAogIAogIHZvaWQKICBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzYxNywyNSArMzA4OCw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuYwogIAkJICAgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdp bmFsX3ZhbHVlLAogIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlv bnMsCi1AQCAtOTY5LDcgKzk2OSw3IEBAIGdlbmVyaWNfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAq dHlwZSwgY28KLSAgICBSRUNVUlNFLiAgKi8KLSAKLSB2b2lkCi0tdmFsX3ByaW50IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQs Ci0rdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIs IExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsLAotIAkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBA IC0xMjIxLDcgKzEyMjEsNyBAQCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzIChzdHJ1Y3QgdHlw ZSAqCi0gCi0gdm9pZAotIHZhbF9wcmludF9zY2FsYXJfZm9ybWF0dGVkIChzdHJ1Y3QgdHlwZSAq dHlwZSwKLS0JCQkgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZz ZXQsCi0rCQkJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29m ZnNldCwKLSAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkJICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotIAkJCSAgICBpbnQgc2l6ZSwKLUBA IC0xNzY2LDcgKzE3NjYsNyBAQCBwcmludF9kZWNpbWFsX2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAq c3RyCitAQCAtMTg0Miw3ICsxODQyLDcgQEAKICAKICB2b2lkCiAgcHJpbnRfaGV4X2NoYXJzIChz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM2NDQs MTMgKzMwOTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmMK ICB7CiAgICBjb25zdCBnZGJfYnl0ZSAqcDsKICAKLUBAIC0xODgzLDIyICsxODgzLDIyIEBAIG1h eWJlX3ByaW50X2FycmF5X2luZGV4IChzdHJ1Y3QgdHlwZSAqaW4KLSAKLSB2b2lkCi0gdmFsX3By aW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwKLS0JCQkgIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotKwkJCSAgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJCSAgQ09SRV9BRERSIGFkZHJl c3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCitAQCAtMTk2NCwxNyArMTk2NCwxNyBAQAogIAkJ CSAgaW50IHJlY3Vyc2UsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLApAQCAtMzY3Myw3ICszMTIw LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCiAgICBMT05H RVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKICAgIExPTkdFU1QgbG93X3BvcywgaGlnaF9wb3M7 CiAgCi1AQCAtMTk4OCw3ICsxOTg4LDcgQEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1 Y3QgdHlwZSAqdAorQEAgLTIwNjQsNyArMjA2NCw3IEBACiAgCQkgICAgIGFkZHJlc3MsIHN0cmVh bSwgcmVjdXJzZSArIDEsIHZhbCwgb3B0aW9ucywKICAJCSAgICAgY3VycmVudF9sYW5ndWFnZSk7 CiAgCSAgYW5ub3RhdGVfZWx0X3JlcCAocmVwcyk7CkBAIC0zNjgyLDcgKzMxMjksNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmMKICAJICBhbm5vdGF0ZV9lbHRf cmVwX2VuZCAoKTsKICAKICAJICBpID0gcmVwMSAtIDE7Ci1AQCAtMjY0NCw3ICsyNjQ0LDcgQEAg cHJpbnRfY29udmVydGVkX2NoYXJzX3RvX29ic3RhY2sgKHN0cnVjdAorQEAgLTI3MjAsNyArMjcy MCw3IEBACiAgCiAgdm9pZAogIGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTM2OTEsMTYgKzMxMzgsMTEgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCiAgCQkgIGNvbnN0IGNoYXIgKmVuY29k aW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkgIGludCBxdW90ZV9jaGFyLCBpbnQgY19zdHls ZV90ZXJtaW5hdG9yLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucykKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuaAorSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxwcmludC5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTExLTAyIDIxOjIzOjEx LjI0MjM1MTg1MSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5o CTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM5MzY0OTkxICswMTAwCi1AQCAtMTE1LDExICsxMTUsMTEg QEAgZXh0ZXJuIHZvaWQgbWF5YmVfcHJpbnRfYXJyYXlfaW5kZXggKHN0cgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAotIAkJCQkg ICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotIAotLWV4dGVybiB2b2lk IHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUg KiwgaW50LAotK2V4dGVybiB2b2lkIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5 cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi92YWxwcmludC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE4NTEwNjQwICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHByaW50LmgJMjAxNi0wNy0xNiAxNDoz Mzo0NC41NDk1MzAyMDUgKzAyMDAKK0BAIC0xMTksNyArMTE5LDcgQEAKICAJCQkJICAgICAgQ09S RV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZSAqLAogIAkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLApA QCAtMzcwOSwxNiArMzE1MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFs cHJpbnQuaAogIAogIGV4dGVybiB2b2lkIHZhbF9wcmludF90eXBlX2NvZGVfaW50IChzdHJ1Y3Qg dHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAogIAkJCQkgICAgIHN0cnVjdCB1aV9maWxlICopOwot QEAgLTEyOSw3ICsxMjksNyBAQCBleHRlcm4gdm9pZCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdz IChzCi0gCQkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKLSAKLSBleHRlcm4gdm9p ZCB2YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoc3RydWN0IHR5cGUgKiwKLS0JCQkJCWNvbnN0 IGdkYl9ieXRlICosIGludCwKLSsJCQkJCWNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsCi0gCQkJ CQljb25zdCBzdHJ1Y3QgdmFsdWUgKiwKLSAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICosCi0gCQkJCQlpbnQsCi1AQCAtMTQ1LDcgKzE0NSw3IEBAIGV4dGVybiB2b2lkIHBy aW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdAorQEAgLTE0MSw3ICsxNDEsNyBAQAogIAkJCQkgdW5z aWduZWQgaW50LCBlbnVtIGJmZF9lbmRpYW4pOwogIAogIGV4dGVybiB2b2lkIHByaW50X2hleF9j aGFycyAoc3RydWN0IHVpX2ZpbGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKQEAgLTM3MjcsNyArMzE2 MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuaAogIAogIGV4 dGVybiB2b2lkIHByaW50X2NoYXJfY2hhcnMgKHN0cnVjdCB1aV9maWxlICosIHN0cnVjdCB0eXBl ICosCiAgCQkJICAgICAgY29uc3QgZ2RiX2J5dGUgKiwgdW5zaWduZWQgaW50LCBlbnVtIGJmZF9l bmRpYW4pOwotQEAgLTE5NCw3ICsxOTQsNyBAQCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGVj b3JhdGlvbnMKK0BAIC0xOTQsNyArMTk0LDcgQEAKICAKICAKICBleHRlcm4gdm9pZCBnZW5lcmlj X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApA QCAtMzczNiw3ICszMTY5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxw cmludC5oCiAgCQkJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAog IAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJCSAgICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0yMDQsNyAr MjA0LDcgQEAgZXh0ZXJuIHZvaWQgZ2VuZXJpY19lbWl0X2NoYXIgKGludCBjLCBzdAorQEAgLTIw NCw3ICsyMDQsNyBAQAogIAkJCSAgICAgICBpbnQgcXVvdGVyLCBjb25zdCBjaGFyICplbmNvZGlu Zyk7CiAgCiAgZXh0ZXJuIHZvaWQgZ2VuZXJpY19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsIApAQCAtMzc0NSw4MyArMzE3OCwxMSBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmgKICAJCQkgICAgICBjb25zdCBjaGFy ICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJCSAgICAgIGludCBxdW90ZV9jaGFy LCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dmFsdWUuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFsdWUuYwkyMDE1LTExLTAy IDIxOjIzOjExLjI0ODM1MTg5MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92 YWx1ZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQxMzY1MDA0ICswMTAwCi1AQCAtNjYsMTAgKzY2 LDEwIEBAIHN0cnVjdCBpbnRlcm5hbF9mdW5jdGlvbgotIHN0cnVjdCByYW5nZQotIHsKLSAgIC8q IExvd2VzdCBvZmZzZXQgaW4gdGhlIHJhbmdlLiAgKi8KLS0gIGludCBvZmZzZXQ7Ci0rICBMT05H RVNUIG9mZnNldDsKLSAKLSAgIC8qIExlbmd0aCBvZiB0aGUgcmFuZ2UuICAqLwotLSAgaW50IGxl bmd0aDsKLSsgIExPTkdFU1QgbGVuZ3RoOwotIH07Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgcmFuZ2Ug cmFuZ2VfczsKLUBAIC04MCw4ICs4MCw4IEBAIERFRl9WRUNfTyhyYW5nZV9zKTsKLSAgICBbb2Zm c2V0Miwgb2Zmc2V0MitsZW4yKSBvdmVybGFwLiAgKi8KLSAKLSBzdGF0aWMgaW50Ci0tcmFuZ2Vz X292ZXJsYXAgKGludCBvZmZzZXQxLCBpbnQgbGVuMSwKLS0JCWludCBvZmZzZXQyLCBpbnQgbGVu MikKLStyYW5nZXNfb3ZlcmxhcCAoTE9OR0VTVCBvZmZzZXQxLCBMT05HRVNUIGxlbjEsCi0rCQlM T05HRVNUIG9mZnNldDIsIExPTkdFU1QgbGVuMikKLSB7Ci0gICBVTE9OR0VTVCBoLCBsOwotIAot QEAgLTEwNSw3ICsxMDUsNyBAQCByYW5nZV9sZXNzdGhhbiAoY29uc3QgcmFuZ2VfcyAqcjEsIGNv bnN0Ci0gICAgT0ZGU0VUK0xFTkdUSCkuICAqLwotIAotIHN0YXRpYyBpbnQKLS1yYW5nZXNfY29u dGFpbiAoVkVDKHJhbmdlX3MpICpyYW5nZXMsIGludCBvZmZzZXQsIGludCBsZW5ndGgpCi0rcmFu Z2VzX2NvbnRhaW4gKFZFQyhyYW5nZV9zKSAqcmFuZ2VzLCBMT05HRVNUIG9mZnNldCwgTE9OR0VT VCBsZW5ndGgpCi0gewotICAgcmFuZ2VfcyB3aGF0OwotICAgaW50IGk7Ci1AQCAtMjQwLDcgKzI0 MCw3IEBAIHN0cnVjdCB2YWx1ZQotICAgICAgdGhlIGFkZHJlc3MuICBJZiBsdmFsID09IGx2YWxf cmVnaXN0ZXIsIHRoaXMgaXMgYSBmdXJ0aGVyIG9mZnNldCBmcm9tCi0gICAgICBsb2NhdGlvbi5h ZGRyZXNzIHdpdGhpbiB0aGUgcmVnaXN0ZXJzIHN0cnVjdHVyZS4gIE5vdGUgYWxzbyB0aGUgbWVt YmVyCi0gICAgICBlbWJlZGRlZF9vZmZzZXQgYmVsb3cuICAqLwotLSAgaW50IG9mZnNldDsKLSsg IExPTkdFU1Qgb2Zmc2V0OwotIAotICAgLyogT25seSB1c2VkIGZvciBiaXRmaWVsZHM7IG51bWJl ciBvZiBiaXRzIGNvbnRhaW5lZCBpbiB0aGVtLiAgKi8KLSAgIGludCBiaXRzaXplOwotQEAgLTMx MCw4ICszMTAsOCBAQCBzdHJ1Y3QgdmFsdWUKLSAgICAgIGB0eXBlJywgYW5kIGBlbWJlZGRlZF9v ZmZzZXQnIGlzIHplcm8sIHNvIGV2ZXJ5dGhpbmcgd29ya3MKLSAgICAgIG5vcm1hbGx5LiAgKi8K LSAgIHN0cnVjdCB0eXBlICplbmNsb3NpbmdfdHlwZTsKLS0gIGludCBlbWJlZGRlZF9vZmZzZXQ7 Ci0tICBpbnQgcG9pbnRlZF90b19vZmZzZXQ7Ci0rICBMT05HRVNUIGVtYmVkZGVkX29mZnNldDsK LSsgIExPTkdFU1QgcG9pbnRlZF90b19vZmZzZXQ7Ci0gCi0gICAvKiBWYWx1ZXMgYXJlIHN0b3Jl ZCBpbiBhIGNoYWluLCBzbyB0aGF0IHRoZXkgY2FuIGJlIGRlbGV0ZWQgZWFzaWx5Ci0gICAgICBv dmVyIGNhbGxzIHRvIHRoZSBpbmZlcmlvci4gIFZhbHVlcyBhc3NpZ25lZCB0byBpbnRlcm5hbAot QEAgLTM1MCw3ICszNTAsNyBAQCBnZXRfdmFsdWVfYXJjaCAoY29uc3Qgc3RydWN0IHZhbHVlICp2 YWx1Ci0gfQotIAotIGludAotLXZhbHVlX2JpdHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK3ZhbHVlX2JpdHNfYXZhaWxhYmxl IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5n dGgpCi0gewotICAgZ2RiX2Fzc2VydCAoIXZhbHVlLT5sYXp5KTsKLSAKLUBAIC0zNTgsNyArMzU4 LDggQEAgdmFsdWVfYml0c19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZQotIH0KLSAKLSBp bnQKLS12YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGlu dCBvZmZzZXQsIGludCBsZW5ndGgpCi0rdmFsdWVfYnl0ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIG9mZnNldCwKLSsJCSAgICAgICBMT05HRVNUIGxlbmd0 aCkKLSB7Ci0gICByZXR1cm4gdmFsdWVfYml0c19hdmFpbGFibGUgKHZhbHVlLAotIAkJCSAgICAg ICBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCi1AQCAtMzY2LDcgKzM2Nyw4IEBAIHZhbHVlX2J5 dGVzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi92YWx1ZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE5NTEwNjQ4ICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHVlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41 NDk1MzAyMDUgKzAyMDAKK0BAIC0zNjYsNyArMzY2LDggQEAKICB9CiAgCiAgaW50CkBAIC0zODMx LDM2ICszMTkyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5jCiAg ewogICAgZ2RiX2Fzc2VydCAoIXZhbHVlLT5sYXp5KTsKICAKLUBAIC00MjgsNyArNDMwLDggQEAg dmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dCAoc3RydWN0IHZhbAotICAgIE9GRlNFVCBiaXRz LCBhbmQgZXh0ZW5kaW5nIGZvciB0aGUgbmV4dCBMRU5HVEggYml0cy4gICovCi0gCi0gc3RhdGlj IHZvaWQKLS1pbnNlcnRfaW50b19iaXRfcmFuZ2VfdmVjdG9yIChWRUMocmFuZ2VfcykgKip2ZWN0 b3JwLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK2luc2VydF9pbnRvX2JpdF9yYW5nZV92ZWN0 b3IgKFZFQyhyYW5nZV9zKSAqKnZlY3RvcnAsIExPTkdFU1Qgb2Zmc2V0LAotKwkJCSAgICAgIExP TkdFU1QgbGVuZ3RoKQotIHsKLSAgIHJhbmdlX3MgbmV3cjsKLSAgIGludCBpOwotQEAgLTU5OSw3 ICs2MDIsOCBAQCBtYXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWx1Ci0gfQot IAotIHZvaWQKLS1tYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsdWUgKnZh bHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK21hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFi bGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qgb2Zmc2V0LAotKwkJCSAgICAgIExPTkdF U1QgbGVuZ3RoKQotIHsKLSAgIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZSAodmFsdWUsCi0g CQkJICAgICAgIG9mZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwKLUBAIC02MTMsNyArNjE3LDcgQEAg bWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbAotIAotIHN0YXRpYyBpbnQK LSBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXAgKFZFQyhyYW5nZV9zKSAqcmFuZ2VzLCBpbnQgcG9z LAotLQkJCSAgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKLSsJCQkgIExPTkdFU1Qgb2Zmc2V0LCBM T05HRVNUIGxlbmd0aCkKLSB7Ci0gICByYW5nZV9zICpyOwotICAgaW50IGk7Ci1AQCAtODA5LDkg KzgxMyw5IEBAIGZpbmRfZmlyc3RfcmFuZ2Vfb3ZlcmxhcF9hbmRfbWF0Y2ggKHN0cnUKK0BAIC04 MTIsOSArODEzLDkgQEAKICAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgYXZhaWxhYmxlIGJpdHMgbWF0 Y2guICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTM4NzMsNTkgKzMyMDUsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmMKICB7CiAgICAvKiBFYWNoIGFycmF5IGVsZW1l bnQgY29ycmVzcG9uZHMgdG8gYSByYW5nZXMgc291cmNlICh1bmF2YWlsYWJsZSwKICAgICAgIG9w dGltaXplZCBvdXQpLiAgJzEnIGlzIGZvciBWQUwxLCAnMicgZm9yIFZBTDIuICAqLwotQEAgLTg3 MSw5ICs4NzUsOSBAQCB2YWx1ZV9jb250ZW50c19iaXRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsCi0g fQotIAotIGludAotLXZhbHVlX2NvbnRlbnRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDEs IGludCBvZmZzZXQxLAotLQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBpbnQgb2Zmc2V0 MiwKLS0JCSAgIGludCBsZW5ndGgpCi0rdmFsdWVfY29udGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsMSwgTE9OR0VTVCBvZmZzZXQxLAotKwkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2 YWwyLCBMT05HRVNUIG9mZnNldDIsCi0rCQkgICBMT05HRVNUIGxlbmd0aCkKLSB7Ci0gICByZXR1 cm4gdmFsdWVfY29udGVudHNfYml0c19lcSAodmFsMSwgb2Zmc2V0MSAqIFRBUkdFVF9DSEFSX0JJ VCwKLSAJCQkJIHZhbDIsIG9mZnNldDIgKiBUQVJHRVRfQ0hBUl9CSVQsCi1AQCAtMTAzNywxMyAr MTA0MSwxMyBAQCBkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFsdWUKLSAgIHZh bHVlLT50eXBlID0gdHlwZTsKLSB9Ci0gCi0taW50Ci0rTE9OR0VTVAotIHZhbHVlX29mZnNldCAo Y29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSkKLSB7Ci0gICByZXR1cm4gdmFsdWUtPm9mZnNldDsK LSB9Ci0gdm9pZAotLXNldF92YWx1ZV9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBv ZmZzZXQpCi0rc2V0X3ZhbHVlX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBv ZmZzZXQpCi0gewotICAgdmFsdWUtPm9mZnNldCA9IG9mZnNldDsKLSB9Ci1AQCAtMTI1Nyw4ICsx MjYxLDkgQEAgdmFsdWVfcmFuZ2VzX2NvcHlfYWRqdXN0ZWQgKHN0cnVjdCB2YWx1ZQotICAgIERT VF9PRkZTRVQrTEVOR1RIKSByYW5nZSBhcmUgd2hvbGx5IGF2YWlsYWJsZS4gICovCi0gCi0gdm9p ZAotLXZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9v ZmZzZXQsCi0tCQkJIHN0cnVjdCB2YWx1ZSAqc3JjLCBpbnQgc3JjX29mZnNldCwgaW50IGxlbmd0 aCkKLSt2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAoc3RydWN0IHZhbHVlICpkc3QsIHNzaXplX3Qg ZHN0X29mZnNldCwKLSsJCQkgc3RydWN0IHZhbHVlICpzcmMsIHNzaXplX3Qgc3JjX29mZnNldCwK LSsJCQkgc3NpemVfdCBsZW5ndGgpCi0gewotICAgcmFuZ2VfcyAqcjsKLSAgIGludCBzcmNfYml0 X29mZnNldCwgZHN0X2JpdF9vZmZzZXQsIGJpdF9sZW5ndGg7Ci1AQCAtMTMwNSw4ICsxMzEwLDgg QEAgdmFsdWVfY29udGVudHNfY29weV9yYXcgKHN0cnVjdCB2YWx1ZSAqZAotICAgIERTVF9PRkZT RVQrTEVOR1RIKSByYW5nZSBhcmUgd2hvbGx5IGF2YWlsYWJsZS4gICovCi0gCi0gdm9pZAotLXZh bHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVjdCB2YWx1ZSAqZHN0LCBpbnQgZHN0X29mZnNldCwKLS0J CSAgICAgc3RydWN0IHZhbHVlICpzcmMsIGludCBzcmNfb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK3Zh bHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVjdCB2YWx1ZSAqZHN0LCBzc2l6ZV90IGRzdF9vZmZzZXQs Ci0rCQkgICAgIHN0cnVjdCB2YWx1ZSAqc3JjLCBzc2l6ZV90IHNyY19vZmZzZXQsIHNzaXplX3Qg bGVuZ3RoKQotIHsKLSAgIGlmIChzcmMtPmxhenkpCi0gICAgIHZhbHVlX2ZldGNoX2xhenkgKHNy Yyk7Ci1AQCAtMTM3MCw3ICsxMzc1LDggQEAgdmFsdWVfb3B0aW1pemVkX291dCAoc3RydWN0IHZh bHVlICp2YWx1ZQorQEAgLTE0NTYsNyArMTQ1Nyw4IEBACiAgICAgdGhlIGZvbGxvd2luZyBMRU5H VEggYnl0ZXMuICAqLwogIAogIHZvaWQKQEAgLTM5MzUsMTk5ICszMjE1LDIwIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuYwogIHsKICAgIG1hcmtfdmFsdWVfYml0c19v cHRpbWl6ZWRfb3V0ICh2YWx1ZSwKICAJCQkJIG9mZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwKLUBA IC0xMzgwLDE0ICsxMzg2LDE1IEBAIG1hcmtfdmFsdWVfYnl0ZXNfb3B0aW1pemVkX291dCAoc3Ry dWN0IHYKLSAvKiBTZWUgdmFsdWUuaC4gICovCi0gCi0gdm9pZAotLW1hcmtfdmFsdWVfYml0c19v cHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3Ro KQotK21hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBM T05HRVNUIG9mZnNldCwKLSsJCQkgICAgICAgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgaW5zZXJ0 X2ludG9fYml0X3JhbmdlX3ZlY3RvciAoJnZhbHVlLT5vcHRpbWl6ZWRfb3V0LCBvZmZzZXQsIGxl bmd0aCk7Ci0gfQotIAotIGludAotIHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tCQkJICAgICAgaW50IG9mZnNldCwgaW50IGxlbmd0aCkK LSsJCQkgICAgICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgaWYgKHZh bHVlLT5sdmFsICE9IGx2YWxfY29tcHV0ZWQKLSAgICAgICB8fCAhdmFsdWUtPmxvY2F0aW9uLmNv bXB1dGVkLmZ1bmNzLT5jaGVja19zeW50aGV0aWNfcG9pbnRlcikKLUBAIC0xMzk3LDI2ICsxNDA0 LDI2IEBAIHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnUKLSAJCQkJCQkJ CSAgbGVuZ3RoKTsKLSB9Ci0gCi0taW50Ci0rTE9OR0VTVAotIHZhbHVlX2VtYmVkZGVkX29mZnNl dCAoc3RydWN0IHZhbHVlICp2YWx1ZSkKLSB7Ci0gICByZXR1cm4gdmFsdWUtPmVtYmVkZGVkX29m ZnNldDsKLSB9Ci0gCi0gdm9pZAotLXNldF92YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2 YWx1ZSAqdmFsdWUsIGludCB2YWwpCi0rc2V0X3ZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0 IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCB2YWwpCi0gewotICAgdmFsdWUtPmVtYmVkZGVkX29mZnNl dCA9IHZhbDsKLSB9Ci0gCi0taW50Ci0rTE9OR0VTVAotIHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0 IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQotIHsKLSAgIHJldHVybiB2YWx1ZS0+cG9pbnRlZF90b19v ZmZzZXQ7Ci0gfQotIAotIHZvaWQKLS1zZXRfdmFsdWVfcG9pbnRlZF90b19vZmZzZXQgKHN0cnVj dCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpCi0rc2V0X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChz dHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIHZhbCkKLSB7Ci0gICB2YWx1ZS0+cG9pbnRlZF90 b19vZmZzZXQgPSB2YWw7Ci0gfQotQEAgLTIyOTUsNyArMjMwMiw3IEBAIGdldF9pbnRlcm5hbHZh cl9mdW5jdGlvbiAoc3RydWN0IGludGVybmEKLSB9Ci0gCi0gdm9pZAotLXNldF9pbnRlcm5hbHZh cl9jb21wb25lbnQgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLCBpbnQgb2Zmc2V0LCBpbnQgYml0 cG9zLAotK3NldF9pbnRlcm5hbHZhcl9jb21wb25lbnQgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFy LCBMT05HRVNUIG9mZnNldCwgaW50IGJpdHBvcywKLSAJCQkgICBpbnQgYml0c2l6ZSwgc3RydWN0 IHZhbHVlICpuZXd2YWwpCi0gewotICAgZ2RiX2J5dGUgKmFkZHI7Ci1AQCAtMzAyMCw3ICszMDI3 LDcgQEAgc2V0X3ZhbHVlX2VuY2xvc2luZ190eXBlIChzdHJ1Y3QgdmFsdWUgKgotICAgIEZJRUxE Tk8gc2F5cyB3aGljaCBmaWVsZC4gICovCi0gCi0gc3RydWN0IHZhbHVlICoKLS12YWx1ZV9wcmlt aXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwKLSt2YWx1ZV9wcmlt aXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgTE9OR0VTVCBvZmZzZXQsCi0gCQkgICAg ICAgaW50IGZpZWxkbm8sIHN0cnVjdCB0eXBlICphcmdfdHlwZSkKLSB7Ci0gICBzdHJ1Y3QgdmFs dWUgKnY7Ci1AQCAtMzA3Miw3ICszMDc5LDcgQEAgdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1 Y3QgdmFsdWUgKmFyZwotICAgICAgIC8qIFRoaXMgZmllbGQgaXMgYWN0dWFsbHkgYSBiYXNlIHN1 Ym9iamVjdCwgc28gcHJlc2VydmUgdGhlCi0gCSBlbnRpcmUgb2JqZWN0J3MgY29udGVudHMgZm9y IGxhdGVyIHJlZmVyZW5jZXMgdG8gdmlydHVhbAotIAkgYmFzZXMsIGV0Yy4gICovCi0tICAgICAg aW50IGJvZmZzZXQ7Ci0rICAgICAgTE9OR0VTVCBib2Zmc2V0OwotIAotICAgICAgIC8qIExhenkg cmVnaXN0ZXIgdmFsdWVzIHdpdGggb2Zmc2V0cyBhcmUgbm90IHN1cHBvcnRlZC4gICovCi0gICAg ICAgaWYgKFZBTFVFX0xWQUwgKGFyZzEpID09IGx2YWxfcmVnaXN0ZXIgJiYgdmFsdWVfbGF6eSAo YXJnMSkpCi1AQCAtMzE1OSw3ICszMTY2LDcgQEAgdmFsdWVfZmllbGQgKHN0cnVjdCB2YWx1ZSAq YXJnMSwgaW50IGZpZQotIHN0cnVjdCB2YWx1ZSAqCi0gdmFsdWVfZm5fZmllbGQgKHN0cnVjdCB2 YWx1ZSAqKmFyZzFwLCBzdHJ1Y3QgZm5fZmllbGQgKmYsCi0gCQlpbnQgaiwgc3RydWN0IHR5cGUg KnR5cGUsCi0tCQlpbnQgb2Zmc2V0KQotKwkJTE9OR0VTVCBvZmZzZXQpCi0gewotICAgc3RydWN0 IHZhbHVlICp2OwotICAgc3RydWN0IHR5cGUgKmZ0eXBlID0gVFlQRV9GTl9GSUVMRF9UWVBFIChm LCBqKTsKLUBAIC0zMjI5LDE0ICszMjM2LDE0IEBAIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKiphcmcxcCwgc3QKLSAKLSBzdGF0aWMgTE9OR0VTVAotIHVucGFja19iaXRzX2FzX2xvbmcg KHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAg ICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUpCi0rCQkgICAgIExPTkdFU1QgYml0cG9zLCBpbnQg Yml0c2l6ZSkKLSB7Ci0gICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0 ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAoZmllbGRfdHlwZSkpOwotICAgVUxPTkdFU1QgdmFsOwot ICAgVUxPTkdFU1QgdmFsbWFzazsKLSAgIGludCBsc2Jjb3VudDsKLSAgIGludCBieXRlc19yZWFk OwotLSAgaW50IHJlYWRfb2Zmc2V0OwotKyAgTE9OR0VTVCByZWFkX29mZnNldDsKLSAKLSAgIC8q IFJlYWQgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkOyB0aGVyZSBtYXkgbm90 IGJlCi0gICAgICBlbm91Z2ggYnl0ZXMgdG8gcmVhZCBhbiBlbnRpcmUgVUxPTkdFU1QuICAqLwot QEAgLTMyODUsNyArMzI5Miw3IEBAIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpm aWVsZF8KLSAKLSBpbnQKLSB1bnBhY2tfdmFsdWVfZmllbGRfYXNfbG9uZyAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJCSAgICBpbnQgZW1iZWRkZWRfb2Zm c2V0LCBpbnQgZmllbGRubywKLSsJCQkgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIGludCBm aWVsZG5vLAotIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCAqcmVzdWx0 KQotIHsKLSAgIGludCBiaXRwb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgZmllbGRubyk7 Ci1AQCAtMzMyOSw3ICszMzM2LDcgQEAgdW5wYWNrX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBl ICp0eXBlLAotIHZvaWQKLSB1bnBhY2tfdmFsdWVfYml0ZmllbGQgKHN0cnVjdCB2YWx1ZSAqZGVz dF92YWwsCi0gCQkgICAgICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUsCi0tCQkgICAgICAgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkgICAgICAgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJICAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQotIHsKLSAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29y ZGVyOwotQEAgLTMzNjcsNyArMzM3NCw3IEBAIHVucGFja192YWx1ZV9iaXRmaWVsZCAoc3RydWN0 IHZhbHVlICpkZXMKLSBzdHJ1Y3QgdmFsdWUgKgotIHZhbHVlX2ZpZWxkX2JpdGZpZWxkIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkbm8sCi0gCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKLS0JCSAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsKQotKwkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsKQotIHsKLSAgIGludCBiaXRwb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgZmll bGRubyk7Ci0gICBpbnQgYml0c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgZmllbGRu byk7Ci1AQCAtMzM4OCwxMiArMzM5NSwxMiBAQCB2YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0 IHR5cGUgKnR5cGUsCi0gCi0gdm9pZAotIG1vZGlmeV9maWVsZCAoc3RydWN0IHR5cGUgKnR5cGUs IGdkYl9ieXRlICphZGRyLAotLQkgICAgICBMT05HRVNUIGZpZWxkdmFsLCBpbnQgYml0cG9zLCBp bnQgYml0c2l6ZSkKLSsJICAgICAgTE9OR0VTVCBmaWVsZHZhbCwgTE9OR0VTVCBiaXRwb3MsIGlu dCBiaXRzaXplKQotIHsKLSAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9i eXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSk7Ci0gICBVTE9OR0VTVCBvd29yZDsKLSAg IFVMT05HRVNUIG1hc2sgPSAoVUxPTkdFU1QpIC0xID4+ICg4ICogc2l6ZW9mIChVTE9OR0VTVCkg LSBiaXRzaXplKTsKLS0gIGludCBieXRlc2l6ZTsKLSsgIExPTkdFU1QgYnl0ZXNpemU7Ci0gCi0g ICAvKiBOb3JtYWxpemUgQklUUE9TLiAgKi8KLSAgIGFkZHIgKz0gYml0cG9zIC8gODsKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi92YWx1ZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvdmFsdWUuaAkyMDE1LTExLTAyIDIxOjIzOjExLjI1MDM1MTkwNCArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQx MzY1MDA0ICswMTAwCi1AQCAtMTM1LDggKzEzNSw4IEBAIGV4dGVybiB2b2lkIHNldF92YWx1ZV9w YXJlbnQgKHN0cnVjdCB2YWwKLSAgICB3aXRoaW4gdGhlIHJlZ2lzdGVycyBzdHJ1Y3R1cmUuICBO b3RlIGFsc28gdGhlIG1lbWJlcgotICAgIGVtYmVkZGVkX29mZnNldCBiZWxvdy4gICovCi0gCi0t ZXh0ZXJuIGludCB2YWx1ZV9vZmZzZXQgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqKTsKLS1leHRlcm4g dm9pZCBzZXRfdmFsdWVfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKiwgaW50IG9mZnNldCk7Ci0rZXh0 ZXJuIExPTkdFU1QgdmFsdWVfb2Zmc2V0IChjb25zdCBzdHJ1Y3QgdmFsdWUgKik7Ci0rZXh0ZXJu IHZvaWQgc2V0X3ZhbHVlX29mZnNldCAoc3RydWN0IHZhbHVlICosIExPTkdFU1Qgb2Zmc2V0KTsK LSAKLSAvKiBUaGUgY29tbWVudCBmcm9tICJzdHJ1Y3QgdmFsdWUiIHJlYWRzOiBgYElzIGl0IG1v ZGlmaWFibGU/ICBPbmx5Ci0gICAgcmVsZXZhbnQgaWYgbHZhbCAhPSBub3RfbHZhbC4nJy4gIFNo b3VsZG4ndCB0aGUgdmFsdWUgaW5zdGVhZCBiZQotQEAgLTIwNSwxMCArMjA1LDEwIEBAIGV4dGVy biBzdHJ1Y3QgdHlwZSAqdmFsdWVfYWN0dWFsX3R5cGUgKHMKLSAJCQkJICAgICAgIGludCByZXNv bHZlX3NpbXBsZV90eXBlcywKLSAJCQkJICAgICAgIGludCAqcmVhbF90eXBlX2ZvdW5kKTsKLSAK LS1leHRlcm4gaW50IHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVl KTsKLS1leHRlcm4gdm9pZCBzZXRfdmFsdWVfcG9pbnRlZF90b19vZmZzZXQgKHN0cnVjdCB2YWx1 ZSAqdmFsdWUsIGludCB2YWwpOwotLWV4dGVybiBpbnQgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChz dHJ1Y3QgdmFsdWUgKnZhbHVlKTsKLS1leHRlcm4gdm9pZCBzZXRfdmFsdWVfZW1iZWRkZWRfb2Zm c2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgdmFsKTsKLStleHRlcm4gTE9OR0VTVCB2YWx1 ZV9wb2ludGVkX3RvX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSk7Ci0rZXh0ZXJuIHZvaWQg c2V0X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNU IHZhbCk7Ci0rZXh0ZXJuIExPTkdFU1QgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFs dWUgKnZhbHVlKTsKLStleHRlcm4gdm9pZCBzZXRfdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdHJ1 Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIHZhbCk7Ci0gCi0gLyogRm9yIGx2YWxfY29tcHV0ZWQg dmFsdWVzLCB0aGlzIHN0cnVjdHVyZSBob2xkcyBmdW5jdGlvbnMgdXNlZCB0bwotICAgIHJldHJp ZXZlIGFuZCBzZXQgdGhlIHZhbHVlIChvciBwb3J0aW9ucyBvZiB0aGUgdmFsdWUpLgotQEAgLTI0 Niw3ICsyNDYsNyBAQCBzdHJ1Y3QgbHZhbF9mdW5jcworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjA1MTA2NTYgKzAyMDAKKysr KyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFsdWUuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1 MDUzMDIxMyArMDIwMAorQEAgLTI0Niw3ICsyNDYsNyBAQAogICAgLyogSWYgbm9uLU5VTEwsIHRo aXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgaW5kaWNhdGVkIGJpdHMKICAgICAg IG9mIFZBTFVFIGFyZSBhIHN5bnRoZXRpYyBwb2ludGVyLiAgKi8KICAgIGludCAoKmNoZWNrX3N5 bnRoZXRpY19wb2ludGVyKSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKLS0JCQkJICBpbnQg b2Zmc2V0LCBpbnQgbGVuZ3RoKTsKKy0JCQkJICBMT05HRVNUIG9mZnNldCwgaW50IGxlbmd0aCk7 CiArCQkJCSAgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKICAKICAgIC8qIFJldHVy biBhIGR1cGxpY2F0ZSBvZiBWQUxVRSdzIGNsb3N1cmUsIGZvciB1c2UgaW4gYSBuZXcgdmFsdWUu CiAgICAgICBUaGlzIG1heSBzaW1wbHkgcmV0dXJuIHRoZSBzYW1lIGNsb3N1cmUsIGlmIFZBTFVF J3MgaXMKLUBAIC0yODMsNyArMjgzLDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVf Y29tcHV0ZWRfdgotICAgIE90aGVyd2lzZSwgcmV0dXJuIDEuICAqLwotIAotIGV4dGVybiBpbnQg dmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0 eXBlICp0eXBlLAotLQkJCQkgICAgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCQkJICAgIExPTkdF U1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwot IAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX29wdGltaXplZF9vdXRfdmFsdWUgKHN0 cnVjdCB0eXBlICp0eXBlKTsKLUBAIC0zNzcsNyArMzc3LDggQEAgZXh0ZXJuIGludCB2YWx1ZV9v cHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdgorQEAgLTM3Nyw3ICszNzcsOCBAQAogICAgIG90aGVyd2lz ZS4gICovCiAgCiAgZXh0ZXJuIGludCB2YWx1ZV9iaXRzX2FueV9vcHRpbWl6ZWRfb3V0IChjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtNDEzNyw3ICszMjM4LDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCiAgCiAgLyogTGlrZSB2YWx1ZV9vcHRpbWl6ZWRf b3V0LCBidXQgcmV0dXJuIHRydWUgaWZmIHRoZSB3aG9sZSB2YWx1ZSBpcwogICAgIG9wdGltaXpl ZCBvdXQuICAqLwotQEAgLTM4NywxMyArMzg4LDEzIEBAIGV4dGVybiBpbnQgdmFsdWVfZW50aXJl bHlfb3B0aW1pemVkX291dAorQEAgLTM4Nyw3ICszODgsNyBAQAogICAgIExFTkdUSCBieXRlcyBh cyBvcHRpbWl6ZWQgb3V0LiAgKi8KICAKICBleHRlcm4gdm9pZCBtYXJrX3ZhbHVlX2J5dGVzX29w dGltaXplZF9vdXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsCkBAIC00MTQ2LDEyNCArMzI0NywxMiBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmgKICAKICAvKiBNYXJrIFZB TFVFJ3MgY29udGVudCBiaXRzIHN0YXJ0aW5nIGF0IE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvcgog ICAgIExFTkdUSCBiaXRzIGFzIG9wdGltaXplZCBvdXQuICAqLwotIAotIGV4dGVybiB2b2lkIG1h cmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotLQkJCQkJ ICAgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0rCQkJCQkgICBMT05HRVNUIG9mZnNldCwgTE9O R0VTVCBsZW5ndGgpOwotIAotIC8qIFNldCBvciByZXR1cm4gZmllbGQgaW5kaWNhdGluZyB3aGV0 aGVyIGEgdmFyaWFibGUgaXMgaW5pdGlhbGl6ZWQgb3IKLSAgICBub3QsIGJhc2VkIG9uIGRlYnVn Z2luZyBpbmZvcm1hdGlvbiBzdXBwbGllZCBieSB0aGUgY29tcGlsZXIuCi1AQCAtNDc2LDcgKzQ3 Nyw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmNvZXJjZV9hcnJheSAoc3RydWMKLSAgICBleHRl bmRpbmcgZm9yIExFTkdUSCBiaXRzIGFyZSBhIHN5bnRoZXRpYyBwb2ludGVyLiAgKi8KLSAKLSBl eHRlcm4gaW50IHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsdWUsCi0tCQkJCQkgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0rCQkJCQkgTE9OR0VT VCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBHaXZlbiBhIHZhbHVlLCBkZXRlcm1p bmUgd2hldGhlciB0aGUgY29udGVudHMgYnl0ZXMgc3RhcnRpbmcgYXQKLSAgICBPRkZTRVQgYW5k IGV4dGVuZGluZyBmb3IgTEVOR1RIIGJ5dGVzIGFyZSBhdmFpbGFibGUuICBUaGlzIHJldHVybnMK LUBAIC00ODQsNyArNDg1LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2lu dGVyCi0gICAgYnl0ZSBpcyB1bmF2YWlsYWJsZS4gICovCi0gCi0gZXh0ZXJuIGludCB2YWx1ZV9i eXRlc19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tCQkJCSAgaW50IG9m ZnNldCwgaW50IGxlbmd0aCk7Ci0rCQkJCSAgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3Ro KTsKLSAKLSAvKiBHaXZlbiBhIHZhbHVlLCBkZXRlcm1pbmUgd2hldGhlciB0aGUgY29udGVudHMg Yml0cyBzdGFydGluZyBhdAotICAgIE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvciBMRU5HVEggYml0 cyBhcmUgYXZhaWxhYmxlLiAgVGhpcyByZXR1cm5zCi1AQCAtNDkyLDcgKzQ5Myw3IEBAIGV4dGVy biBpbnQgdmFsdWVfYnl0ZXNfYXZhaWxhYmxlIChjb25zdAotICAgIGJpdCBpcyB1bmF2YWlsYWJs ZS4gICovCi0gCi0gZXh0ZXJuIGludCB2YWx1ZV9iaXRzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0 IHZhbHVlICp2YWx1ZSwKLS0JCQkJIGludCBvZmZzZXQsIGludCBsZW5ndGgpOwotKwkJCQkgTE9O R0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBMaWtlIHZhbHVlX2J5dGVzX2F2 YWlsYWJsZSwgYnV0IHJldHVybiBmYWxzZSBpZiBhbnkgYnl0ZSBpbiB0aGUKLSAgICB3aG9sZSBv YmplY3QgaXMgdW5hdmFpbGFibGUuICAqLwotQEAgLTUwNiw3ICs1MDcsNyBAQCBleHRlcm4gaW50 IHZhbHVlX2VudGlyZWx5X3VuYXZhaWxhYmxlIChzCi0gICAgTEVOR1RIIGJ5dGVzIGFzIHVuYXZh aWxhYmxlLiAgKi8KLSAKLSBleHRlcm4gdm9pZCBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxl IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotLQkJCQkJICBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsK LSsJCQkJCSAgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBNYXJrIFZB TFVFJ3MgY29udGVudCBiaXRzIHN0YXJ0aW5nIGF0IE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvcgot ICAgIExFTkdUSCBiaXRzIGFzIHVuYXZhaWxhYmxlLiAgKi8KLUBAIC01NjcsOSArNTY4LDkgQEAg ZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxhYmxlCi0gICAgYWZ0ZXIgdGhlIGlu ZmVyaW9yIGlzIGdvbmUsIGl0IHdvcmtzIHdpdGggY29uc3QgdmFsdWVzLiAgVGhlcmVmb3JlLAot ICAgIHRoaXMgcm91dGluZSBtdXN0IG5vdCBiZSBjYWxsZWQgd2l0aCBsYXp5IHZhbHVlcy4gICov Ci0gCi0tZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2 YWwxLCBpbnQgb2Zmc2V0MSwKLS0JCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDIsIGlu dCBvZmZzZXQyLAotLQkJCSAgICAgIGludCBsZW5ndGgpOwotK2V4dGVybiBpbnQgdmFsdWVfY29u dGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMSwgTE9OR0VTVCBvZmZzZXQxLAotKwkJ CSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgTE9OR0VTVCBvZmZzZXQyLAotKwkJCSAg ICAgIExPTkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBSZWFkIExFTkdUSCBhZGRyZXNzYWJsZSBtZW1v cnkgdW5pdHMgc3RhcnRpbmcgYXQgTUVNQUREUiBpbnRvIEJVRkZFUiwKLSAgICB3aGljaCBpcyAo b3Igd2lsbCBiZSBjb3BpZWQgdG8pIFZBTCdzIGNvbnRlbnRzIGJ1ZmZlciBvZmZzZXQgYnkKLUBA IC01NzgsNyArNTc5LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3Ry dQotICAgIG1lbW9yeSBpcyBsaWtld2lzZSB1bmF2YWlsYWJsZS4gIFNUQUNLIGluZGljYXRlcyB3 aGV0aGVyIHRoZSBtZW1vcnkKLSAgICBpcyBrbm93biB0byBiZSBzdGFjayBtZW1vcnkuICAqLwot IAotLWV4dGVybiB2b2lkIHJlYWRfdmFsdWVfbWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50 IGVtYmVkZGVkX29mZnNldCwKLStleHRlcm4gdm9pZCByZWFkX3ZhbHVlX21lbW9yeSAoc3RydWN0 IHZhbHVlICp2YWwsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJCSAgICAgICBpbnQgc3Rh Y2ssIENPUkVfQUREUiBtZW1hZGRyLAotIAkJCSAgICAgICBnZGJfYnl0ZSAqYnVmZmVyLCBzaXpl X3QgbGVuZ3RoKTsKLSAKLUBAIC02MTQsMTcgKzYxNSwxOCBAQCBleHRlcm4gTE9OR0VTVCB1bnBh Y2tfZmllbGRfYXNfbG9uZyAoc3RyCi0gCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIs Ci0gCQkJCSAgICAgaW50IGZpZWxkbm8pOwotIGV4dGVybiBpbnQgdW5wYWNrX3ZhbHVlX2ZpZWxk X2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0J CQkJaW50IGVtYmVkZGVkX29mZnNldCwgaW50IGZpZWxkbm8sCi0rCQkJCUxPTkdFU1QgZW1iZWRk ZWRfb2Zmc2V0LCBpbnQgZmllbGRubywKLSAJCQkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsIExP TkdFU1QgKnJlc3VsdCk7Ci0gCi0gZXh0ZXJuIHZvaWQgdW5wYWNrX3ZhbHVlX2JpdGZpZWxkIChz dHJ1Y3QgdmFsdWUgKmRlc3RfdmFsLAotIAkJCQkgICBpbnQgYml0cG9zLCBpbnQgYml0c2l6ZSwK LS0JCQkJICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0r CQkJCSAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotKwkJCQkgICBMT05HRVNUIGVtYmVkZGVk X29mZnNldCwKLSAJCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwotIAotIGV4dGVybiBz dHJ1Y3QgdmFsdWUgKnZhbHVlX2ZpZWxkX2JpdGZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50 IGZpZWxkbm8sCi0gCQkJCQkgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkJCSAgIGlu dCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkJCQkgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJ CQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKLSAKLSBleHRlcm4gdm9pZCBwYWNrX2xv bmcgKGdkYl9ieXRlICpidWYsIHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIG51bSk7Ci1AQCAt NjgzLDEyICs2ODUsMTIgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZGVmYXVsdF9yZWFkX3Zhcl92 YQotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3ZhbHVlIChzdHJ1Y3QgdHlwZSAq dHlwZSk7Ci0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0 IHR5cGUgKnR5cGUpOwotLWV4dGVybiB2b2lkIHZhbHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVjdCB2 YWx1ZSAqZHN0LCBpbnQgZHN0X29mZnNldCwKLS0JCQkJIHN0cnVjdCB2YWx1ZSAqc3JjLCBpbnQg c3JjX29mZnNldCwKLS0JCQkJIGludCBsZW5ndGgpOwotLWV4dGVybiB2b2lkIHZhbHVlX2NvbnRl bnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9vZmZzZXQsCi0tCQkJCSAg ICAgc3RydWN0IHZhbHVlICpzcmMsIGludCBzcmNfb2Zmc2V0LAotLQkJCQkgICAgIGludCBsZW5n dGgpOwotK2V4dGVybiB2b2lkIHZhbHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVjdCB2YWx1ZSAqZHN0 LCBzc2l6ZV90IGRzdF9vZmZzZXQsCi0rCQkJCSBzdHJ1Y3QgdmFsdWUgKnNyYywgc3NpemVfdCBz cmNfb2Zmc2V0LAotKwkJCQkgc3NpemVfdCBsZW5ndGgpOwotK2V4dGVybiB2b2lkIHZhbHVlX2Nv bnRlbnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAot KwkJCQkgICAgIHN0cnVjdCB2YWx1ZSAqc3JjLCBzc2l6ZV90IHNyY19vZmZzZXQsCi0rCQkJCSAg ICAgc3NpemVfdCBsZW5ndGgpOwotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3Jl cGVhdF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBjb3VudCk7Ci0gCi1AQCAtNzY2LDE2 ICs3NjgsMTYgQEAgZXh0ZXJuIGludCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdgotIAot IGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGlu dCBmaWVsZG5vKTsKLSAKLS1leHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9wcmltaXRpdmVfZmll bGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwKLStleHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgTE9OR0VTVCBvZmZz ZXQsCitAQCAtNzcxLDEyICs3NzIsMTEgQEAKICAJCQkJCSAgICBpbnQgZmllbGRubywKICAJCQkJ CSAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpOwogIAotIAotLWV4dGVybiBzdHJ1Y3QgdHlwZSAq dmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKiwgaW50ICosIGludCAqLAot K2V4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFs dWUgKiwgaW50ICosIExPTkdFU1QgKiwKKy0KKyBleHRlcm4gc3RydWN0IHR5cGUgKnZhbHVlX3J0 dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0IHZhbHVlICosIGludCAqLCBMT05HRVNUICosCiAgCQkJ CQkgICAgICBpbnQgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfZnVsbF9vYmpl Y3QgKHN0cnVjdCB2YWx1ZSAqLCBzdHJ1Y3QgdHlwZSAqLCBpbnQsCkBAIC00MjcyLDQ0ICszMjYx LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCiAgCiAgZXh0ZXJu IHN0cnVjdCB2YWx1ZSAqdmFsdWVfY2FzdF9wb2ludGVycyAoc3RydWN0IHR5cGUgKiwgc3RydWN0 IHZhbHVlICosIGludCk7CiAgCi1AQCAtODcwLDcgKzg3Miw3IEBAIGV4dGVybiB2b2lkIHNldF9p bnRlcm5hbHZhcl9zdHJpbmcgKHN0cnUKLSBleHRlcm4gdm9pZCBjbGVhcl9pbnRlcm5hbHZhciAo c3RydWN0IGludGVybmFsdmFyICp2YXIpOwotIAotIGV4dGVybiB2b2lkIHNldF9pbnRlcm5hbHZh cl9jb21wb25lbnQgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLAotLQkJCQkgICAgICAgaW50IG9m ZnNldCwKLSsJCQkJICAgICAgIExPTkdFU1Qgb2Zmc2V0LAotIAkJCQkgICAgICAgaW50IGJpdHBv cywgaW50IGJpdHNpemUsCi0gCQkJCSAgICAgICBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbHVlKTsKLSAK LUBAIC05NTEsNyArOTUzLDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfeF91bm9wIChz dHJ1YwotIAkJCQkgICBlbnVtIG5vc2lkZSBub3NpZGUpOwotIAotIGV4dGVybiBzdHJ1Y3QgdmFs dWUgKnZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3RydWN0IGZuX2ZpZWxk ICpmLAotLQkJCQkgICAgIGludCBqLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IG9mZnNldCk7Ci0r CQkJCSAgICAgaW50IGosIHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIG9mZnNldCk7Ci0gCi0g ZXh0ZXJuIGludCBiaW5vcF90eXBlc191c2VyX2RlZmluZWRfcCAoZW51bSBleHBfb3Bjb2RlIG9w LAotIAkJCQkgICAgICAgc3RydWN0IHR5cGUgKnR5cGUxLAotQEAgLTk3OSw3ICs5ODEsOCBAQCBl eHRlcm4gdm9pZCByZWxlYXNlX3ZhbHVlX29yX2luY3JlZiAoc3RyCi0gZXh0ZXJuIGludCByZWNv cmRfbGF0ZXN0X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbCk7Ci0gCi0gZXh0ZXJuIHZvaWQgbW9k aWZ5X2ZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgZ2RiX2J5dGUgKmFkZHIsCi0tCQkJICBMT05H RVNUIGZpZWxkdmFsLCBpbnQgYml0cG9zLCBpbnQgYml0c2l6ZSk7Ci0rCQkJICBMT05HRVNUIGZp ZWxkdmFsLCBMT05HRVNUIGJpdHBvcywKLSsJCQkgIGludCBiaXRzaXplKTsKLSAKLSBleHRlcm4g dm9pZCB0eXBlX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgY2hhciAqdmFyc3RyaW5n LAotIAkJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBzaG93KTsKLUBAIC0xMDA5LDcgKzEw MTIsNyBAQCBleHRlcm4gdm9pZCB2YWx1ZV9wcmludF9hcnJheV9lbGVtZW50cyAoCi0gZXh0ZXJu IHN0cnVjdCB2YWx1ZSAqdmFsdWVfcmVsZWFzZV90b19tYXJrIChzdHJ1Y3QgdmFsdWUgKm1hcmsp OwotIAotIGV4dGVybiB2b2lkIHZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLAotLQkJICAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQURE UiBhZGRyZXNzLAotKwkJICAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIg YWRkcmVzcywKLSAJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwK LSAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSAgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0xMDYyLDEwICsxMDY1LDExIEBA IGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2xpdGVyYWxfY29tcGwKK0BAIC0xMDY1LDEwICsx MDY1LDExIEBACiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZmluZF9mdW5jdGlvbl9pbl9pbmZlcmlv ciAoY29uc3QgY2hhciAqLAogIAkJCQkJCXN0cnVjdCBvYmpmaWxlICoqKTsKICAKQEAgLTQzMjMs MTEgKzMyNzUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCiAg CiAgLyogVXNlciBmdW5jdGlvbiBoYW5kbGVyLiAgKi8KICAKLUluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvczM5MC1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9zMzkwLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEw Mjcub3JpZy9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1MDM1MTkw NCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIw MTUtMTEtMDIgMjE6MjM6MTMuMjQyMzY1MDEwICswMTAwCi1AQCAtNjEyLDcgKzYxMiw3IEBAIHMz OTBfY2FuX3VzZV9od19icmVha3BvaW50IChzdHJ1Y3QgdGFyZ2UKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIw NTEwNjU2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3MzOTAtbGludXgtbmF0 LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NTA1MzAyMTMgKzAyMDAKK0BAIC02MTIsNyArNjEyLDcg QEAKICAKICBzdGF0aWMgaW50CiAgczM5MF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0 cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtNDMzNiwzNyArMzI4OCwxMSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3MzOTAtbGludXgtbmF0LmMKICB7CiAgICByZXR1cm4gMTsK ICB9Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V4dGVuc2lvbi1wcml2LmgKLT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9leHRlbnNpb24tcHJp di5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUwMzUxOTA0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2V4dGVuc2lvbi1wcml2LmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDIzNjUw MTAgKzAxMDAKLUBAIC0xODEsNyArMTgxLDcgQEAgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9v cHMKLSAgIGVudW0gZXh0X2xhbmdfcmMgKCphcHBseV92YWxfcHJldHR5X3ByaW50ZXIpCi0gICAg IChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKiwKLSAgICAgIHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0gICAgIGludCBlbWJlZGRlZF9v ZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKyAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQs IENPUkVfQUREUiBhZGRyZXNzLAotICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCi0gICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi0gICAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVm biAqbGFuZ3VhZ2UpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9weXRob24vcHl0 aG9uLWludGVybmFsLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LWRl bGVnYXRlcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv cHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUwMzUxOTA0ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwu aAkyMDE1LTExLTAyIDIxOjIzOjEzLjI0MjM2NTAxMCArMDEwMAotQEAgLTMxNiw3ICszMTYsNyBA QCBleHRlcm4gaW50IGdkYnB5X2F1dG9fbG9hZF9lbmFibGVkIChjb25zCi0gZXh0ZXJuIGVudW0g ZXh0X2xhbmdfcmMgZ2RicHlfYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyCi0gICAoY29uc3Qgc3Ry dWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICosCi0gICAgc3RydWN0IHR5cGUgKnR5cGUsIGNv bnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLSAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQURE UiBhZGRyZXNzLAotKyAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVz cywKLSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKLSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucywKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LWRlbGVnYXRl cy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdGFyZ2V0 LWRlbGVnYXRlcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUyMzUxOTE3ICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE1LTExLTAyIDIxOjIz OjEzLjI0MzM2NTAxNyArMDEwMAotQEAgLTczNiwxNCArNzM2LDE0IEBAIGRlYnVnX3dhdGNocG9p bnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjE1MTA2NjQgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTYt MDctMTYgMTQ6MzM6NDQuNTUwNTMwMjEzICswMjAwCitAQCAtNzM2LDE0ICs3MzYsMTQgQEAKICB9 CiAgCiAgc3RhdGljIGludApAQCAtNDM4Myw3ICszMzA5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICB7CiAgICBpbnQgcmVzdWx0OwogICAg ZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnRvX3JlZ2lvbl9va19mb3Jf aHdfd2F0Y2hwb2ludCAoLi4uKVxuIiwgZGVidWdfdGFyZ2V0LnRvX3Nob3J0bmFtZSk7Ci1AQCAt NzUzLDcgKzc1Myw3IEBAIGRlYnVnX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWMK K0BAIC03NTMsNyArNzUzLDcgQEAKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRs b2cpOwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X0NPUkVfQUREUiAoYXJnMSk7CiAgICBmcHV0c191 bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKQEAgLTQzOTIsMTEgKzMzMTgsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICAgIGZwdXRz X3VuZmlsdGVyZWQgKCIpID0gIiwgZ2RiX3N0ZGxvZyk7CiAgICB0YXJnZXRfZGVidWdfcHJpbnRf aW50IChyZXN1bHQpOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIlxuIiwgZ2RiX3N0ZGxvZyk7Ci1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJ MjAxNS0xMS0wMiAyMToyMzoxMS4yNTIzNTE5MTcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0MzM2NTAx NyArMDEwMAotQEAgLTczNiw3ICs3MzYsNyBAQCBhYXJjaDY0X2xpbnV4X3JlbW92ZV93YXRjaHBv aW50IChzdHJ1Y3QKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hYXJjaDY0LWxp bnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0 NC41NTE1MzAyMjEgKzAyMDAKK0BAIC03MzYsNyArNzM2LDcgQEAKICAKICBzdGF0aWMgaW50CiAg YWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRf b3BzICpzZWxmLApAQCAtNDQwNSwxMSArMzMzMSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKICB7CiAgICByZXR1cm4gYWFyY2g2NF9saW51 eF9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKGFkZHIsIGxlbik7CiAgfQotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9uYXQveDg2LWRyZWdzLmMKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvbmF0L3g4Ni1kcmVncy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjcub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUy MzUxOTE3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL25hdC94ODYtZHJlZ3Mu YwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEwMAotQEAgLTM4NCw3ICszODQsNyBA QCB4ODZfcmVtb3ZlX2FsaWduZWRfd2F0Y2hwb2ludCAoc3RydWN0IHg4CistLS0gZ2RiLTcuMTEu NTAuMjAxNjA3MTYub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIu MTIyNTEwNjcyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL25hdC94ODYtZHJl Z3MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1MTUzMDIyMSArMDIwMAorQEAgLTM4NCw3ICszODQs NyBAQAogIAogIHN0YXRpYyBpbnQKICB4ODZfaGFuZGxlX25vbmFsaWduZWRfd2F0Y2hwb2ludCAo c3RydWN0IHg4Nl9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlLApAQCAtNDQxOCw3ICszMzQ0LDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9uYXQveDg2LWRyZWdzLmMKICAJCQkJICBl bnVtIHRhcmdldF9od19icF90eXBlIHR5cGUpCiAgewogICAgaW50IHJldHZhbCA9IDA7Ci1AQCAt NTUyLDcgKzU1Miw3IEBAIHg4Nl9kcl9yZW1vdmVfd2F0Y2hwb2ludCAoc3RydWN0IHg4Nl9kZWIK K0BAIC01NTIsNyArNTUyLDcgQEAKICAKICBpbnQKICB4ODZfZHJfcmVnaW9uX29rX2Zvcl93YXRj aHBvaW50IChzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCkBAIC00NDI3LDExICsz MzUzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5j CiAgewogICAgaW50IG5yZWdzOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9j b21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMTEt MDIgMjE6MjM6MTEuMjUzMzUxOTIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAy NCArMDEwMAotQEAgLTI5OSwxMSArMjk5LDExIEBAIGdlbmVyYXRlX3JlZ2lzdGVyX3N0cnVjdCAo c3RydWN0IHVpX2ZpbGUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jb21waWxl L2NvbXBpbGUtYy1zdXBwb3J0LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjI1MTA2NzIgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5j CTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUxNTMwMjIxICswMjAwCitAQCAtMjk5LDExICsyOTksMTEg QEAKICAKICAJICAgICAgZGVmYXVsdDoKICAJCWZwcmludGZfdW5maWx0ZXJlZCAoc3RyZWFtLApA QCAtNDQ0NSwxMSArMzM3MSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Nv bXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwogIAkgICAgICB9CiAgCSAgICBmcHV0c191bmZpbHRl cmVkICgiO1xuIiwgc3RyZWFtKTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv bmF0L3g4Ni1kcmVncy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL25hdC94ODYt ZHJlZ3MuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL25h dC94ODYtZHJlZ3MuaAkyMDE1LTExLTAyIDIxOjIzOjExLjI1MzM1MTkyMyArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0xMS0wMiAyMToyMzox My4yNDQzNjUwMjQgKzAxMDAKLUBAIC0xMTYsNyArMTE2LDcgQEAgZXh0ZXJuIGludCB4ODZfZHJf cmVtb3ZlX3dhdGNocG9pbnQgKHN0cgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L25hdC94ODYtZHJlZ3MuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMjUxMDY3MiArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNi0wNy0xNiAxNDoz Mzo0NC41NTE1MzAyMjEgKzAyMDAKK0BAIC0xMTYsNyArMTE2LDcgQEAKICAvKiBSZXR1cm4gbm9u LXplcm8gaWYgd2UgY2FuIHdhdGNoIGEgbWVtb3J5IHJlZ2lvbiB0aGF0IHN0YXJ0cyBhdAogICAg IGFkZHJlc3MgQUREUiBhbmQgd2hvc2UgbGVuZ3RoIGlzIExFTiBieXRlcy4gICovCiAgZXh0ZXJu IGludCB4ODZfZHJfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChzdHJ1Y3QgeDg2X2RlYnVnX3Jl Z19zdGF0ZSAqc3RhdGUsCkBAIC00NDU4LDExICszMzg0LDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5oCiAgCiAgLyogSWYgdGhlIGluZmVyaW9yIGhh cyBzb21lIGJyZWFrL3dhdGNocG9pbnQgdGhhdCB0cmlnZ2VyZWQsIHNldCB0aGUKICAgICBhZGRy ZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGJyZWFrL3dhdGNocG9pbnQgYW5kIHJldHVybiB0cnVl LgotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi94ODYtbmF0LmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIveDg2LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIveDg2LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUzMzUx OTIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3g4Ni1uYXQuYwkyMDE1LTEx LTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEwMAotQEAgLTE3NCw3ICsxNzQsNyBAQCB4ODZfcmVt b3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIveDg2LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIzNTEwNjgwICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3g4Ni1uYXQuYwkyMDE2LTA3LTE2IDE0OjMz OjQ0LjU1MTUzMDIyMSArMDIwMAorQEAgLTE3NCw3ICsxNzQsNyBAQAogIAogIHN0YXRpYyBpbnQK ICB4ODZfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwK QEAgLTQ0NzEsMjkgKzMzOTcsMjUgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi94 ODYtbmF0LmMKICB7CiAgICBzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUKICAgICAg PSB4ODZfZGVidWdfcmVnX3N0YXRlIChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsKLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ3VpbGUvZ3VpbGUtaW50ZXJuYWwuaAotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2d1aWxlL2d1aWxlLWlu dGVybmFsLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTMzNTE5MjMgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZ3VpbGUvZ3VpbGUtaW50ZXJuYWwuaAkyMDE1LTExLTAyIDIxOjIz OjEzLjI0NDM2NTAyNCArMDEwMAotQEAgLTYwNiw3ICs2MDYsNyBAQCBleHRlcm4gdm9pZCBnZGJz Y21fcHJlc2VydmVfdmFsdWVzCi0gZXh0ZXJuIGVudW0gZXh0X2xhbmdfcmMgZ2Ric2NtX2FwcGx5 X3ZhbF9wcmV0dHlfcHJpbnRlcgotICAgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2Vf ZGVmbiAqLAotICAgIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwK LS0gICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsgICBMT05HRVNU IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gICAgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2d1aWxlL3NjbS1wcmV0dHktcHJpbnQuYworSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9ydXN0LWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2d1aWxlL3NjbS1wcmV0dHktcHJpbnQuYwkyMDE1LTExLTAy IDIxOjIzOjExLjI1NDM1MTkzMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9n dWlsZS9zY20tcHJldHR5LXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDUzNjUwMzAgKzAx MDAKLUBAIC05NTgsNyArOTU4LDcgQEAgcHBzY21fcHJpbnRfY2hpbGRyZW4gKFNDTSBwcmludGVy LCBlbnVtCi0gZW51bSBleHRfbGFuZ19yYwotIGdkYnNjbV9hcHBseV92YWxfcHJldHR5X3ByaW50 ZXIgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0bGFuZywKLSAJCQkJ IHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkJIGludCBl bWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJCQkgTE9OR0VTVCBlbWJlZGRl ZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotIAkJCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgaW50IHJlY3Vyc2UsCi0gCQkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCQkJIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL3J1c3QtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIzNTEw NjgwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3J1c3QtbGFuZy5jCTIwMTYt MDctMTYgMTQ6MzM6NDQuNTUxNTMwMjIxICswMjAwCitAQCAtNDEwLDcgKzQxMCw3IEBACisgCisg c3RhdGljIHZvaWQKKyBydXN0X3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwKKy0JICAgICAgIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsIHVuc2lnbmVk IGludCBsZW5ndGgsCisrCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLCBVTE9OR0VTVCBs ZW5ndGgsCisgCSAgICAgICBjb25zdCBjaGFyICp1c2VyX2VuY29kaW5nLCBpbnQgZm9yY2VfZWxs aXBzZXMsCisgCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cykKKyB7CitAQCAtNDU2LDcgKzQ1Niw3IEBACisgLyogbGFfdmFsX3ByaW50IGltcGxlbWVudGF0 aW9uIGZvciBSdXN0LiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorLXJ1c3RfdmFsX3ByaW50IChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZz ZXQsCisrcnVzdF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgCQlDT1JFX0FERFIgYWRkcmVzcywg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCQljb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbCwKKyAJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQoK ZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2ggYi9nZGItcmhi ejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoCmluZGV4IDFmNmQyMzcuLjg1NzYwZGIgMTAwNjQ0 Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3 OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaApAQCAtMTM3LDEwICsxMzcsMTAgQEAgQ29udGVudC1U eXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRl bnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBvcy10ZGVwLnBhdGNoCiAK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYWxwaGEtdGRlcC5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FscGhhLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2 LjU5MjgxMzk5MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hbHBoYS10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMDg4MzQ3MTcgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS4zOTA1MDI3 MTggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWxwaGEtdGRlcC5jCTIwMTYt MDctMTYgMTQ6MzU6NDcuNTExNTE5Nzg4ICswMjAwCiBAQCAtMjk5LDE3ICsyOTksMTcgQEAKICB7 CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2Ri YXJjaCk7CkBAIC0xODMsMTEgKzE4MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2FscGhhLXRkZXAuYwogIAkgICAgICBtZW1jcHkgKGFyZ19yZWdfYnVmZmVyICsgb2Zmc2V0 LCBjb250ZW50cywgdGxlbik7CiAgCSAgICAgIG9mZnNldCArPSB0bGVuOwogIAkgICAgICBjb250 ZW50cyArPSB0bGVuOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hbWQ2NC10ZGVw LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYW1kNjQtdGRlcC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTYt MDEtMDggMTk6MTY6MTYuNTk0ODE0MDAxICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2FtZDY0LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMwOTgzNDcyMyArMDEwMAotQEAg LTY5OSw3ICs2OTksNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FtZDY0 LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjM5MTUwMjcyNiArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9hbWQ2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTI1MTk3 OTYgKzAyMDAKK0BAIC03MjksNyArNzI5LDcgQEAKICAJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1Ziwg Y29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQogIHsKICAgIGVudW0gYW1kNjRfcmVnX2NsYXNzIHRo ZWNsYXNzWzJdOwpAQCAtMTk2LDcgKzE5Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvYW1kNjQtdGRlcC5jCiAgICBzdGF0aWMgaW50IGludGVnZXJfcmVnbnVtW10gPSB7IEFN RDY0X1JBWF9SRUdOVU0sIEFNRDY0X1JEWF9SRUdOVU0gfTsKICAgIHN0YXRpYyBpbnQgc3NlX3Jl Z251bVtdID0geyBBTUQ2NF9YTU0wX1JFR05VTSwgQU1ENjRfWE1NMV9SRUdOVU0gfTsKICAgIGlu dCBpbnRlZ2VyX3JlZyA9IDA7Ci1AQCAtODUwLDggKzg1MCw4IEBACitAQCAtODgwLDggKzg4MCw4 IEBACiAgICB9OwogICAgc3RydWN0IHZhbHVlICoqc3RhY2tfYXJncyA9IFhBTExPQ0FWRUMgKHN0 cnVjdCB2YWx1ZSAqLCBuYXJncyk7CiAgICBpbnQgbnVtX3N0YWNrX2FyZ3MgPSAwOwpAQCAtMjA3 LDcgKzIwNyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtdGRlcC5j CiAgICBpbnQgaW50ZWdlcl9yZWcgPSAwOwogICAgaW50IHNzZV9yZWcgPSAwOwogICAgaW50IGk7 Ci1AQCAtODYzLDcgKzg2Myw3IEBACitAQCAtODkzLDcgKzg5Myw3IEBACiAgICBmb3IgKGkgPSAw OyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFs dWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0yMTYsMTAgKzIxNiwxMCBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2FtZDY0LXRkZXAuYwogICAgICAgIGVudW0gYW1kNjRfcmVnX2NsYXNz IHRoZWNsYXNzWzJdOwogICAgICAgIGludCBuZWVkZWRfaW50ZWdlcl9yZWdzID0gMDsKICAgICAg ICBpbnQgbmVlZGVkX3NzZV9yZWdzID0gMDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv YW1kNjQtd2luZG93cy10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEw Ni5vcmlnL2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjU5NTgx NDAwNiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hbWQ2NC13aW5kb3dzLXRk ZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxMDgzNDcyOCArMDEwMAorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6 NDUuMzkzNTAyNzQyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FtZDY0LXdp bmRvd3MtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTEyNTE5Nzk2ICswMjAwCiBAQCAtMjg4 LDcgKzI4OCw3IEBACiAgCQkJICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUg KnJlZ2NhY2hlLAogIAkJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndy aXRlYnVmKQpAQCAtMjI5LDExICsyMjksMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwogICAgaW50IHJlZ251bSA9IC0xOwogIAogICAgLyog U2VlIGlmIG91ciB2YWx1ZSBpcyByZXR1cm5lZCB0aHJvdWdoIGEgcmVnaXN0ZXIuICBJZiBpdCBp cywgdGhlbgotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hcm0tdGRlcC5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FybS10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9hcm0tdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6 MTYuNjAzODE0MDUxICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNzowNS43MzcwODgxMDcgKzAxMDAKLUBAIC0zMzQwLDcgKzMzNDAs NyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FybS10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0NS40MDA1MDI3OTggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvYXJtLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM2OjMwLjMyODg2NDM3NiArMDIwMAorQEAgLTM0 NDMsNyArMzQ0Myw3IEBACiAgICAgYXJyYXkpLiAgVmVjdG9yIHR5cGVzIGFyZSBub3QgY3VycmVu dGx5IHN1cHBvcnRlZCwgbWF0Y2hpbmcgdGhlCiAgICAgZ2VuZXJpYyBBQVBDUyBzdXBwb3J0LiAg Ki8KICAKQEAgLTI0Miw3ICsyNDIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2FybS10ZGVwLmMKICBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUgKnQs CiAgCQkJICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSAqYmFzZV90eXBlKQogIHsKLUBA IC0zNDIzLDcgKzM0MjMsNyBAQAorQEAgLTM1MjYsNyArMzUyNiw3IEBACiAgCSAgfQogIAllbHNl CiAgCSAgewpAQCAtMjUxLDcgKzI1MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvYXJtLXRkZXAuYwogIAkgICAgdW5zaWduZWQgdW5pdGxlbjsKICAKICAJICAgIGNvdW50ID0g YXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVfVEFSR0VUX1RZUEUgKHQpLAotQEAgLTM0 NDYsMTMgKzM0NDYsMTUgQEAKK0BAIC0zNTQ5LDEyICszNTQ5LDEyIEBACiAgCiAgICAgIGNhc2Ug VFlQRV9DT0RFX1NUUlVDVDoKICAgICAgICB7CkBAIC0yNjEsMTYgKzI2MSwxMiBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICAJaW50IGk7CiAgCWZvciAoaSA9 IDA7IGkgPCBUWVBFX05GSUVMRFMgKHQpOyBpKyspCiAgCSAgewotLQkgICAgaW50IHN1Yl9jb3Vu dCA9IGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpLAot LQkJCQkJCQliYXNlX3R5cGUpOwotKwkgICAgTE9OR0VTVCBzdWJfY291bnQ7Ci0rCi0rCSAgICBz dWJfY291bnQgPSBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoVFlQRV9GSUVMRF9UWVBFICh0 LCBpKSwKLSsJCQkJCQkgICAgYmFzZV90eXBlKTsKLSAJICAgIGlmIChzdWJfY291bnQgPT0gLTEp Ci0gCSAgICAgIHJldHVybiAtMTsKLSAJICAgIGNvdW50ICs9IHN1Yl9jb3VudDsKLUBAIC0zNDcy LDEzICszNDc0LDE1IEBACistCSAgICBpbnQgc3ViX2NvdW50ID0gMDsKKysJICAgIExPTkdFU1Qg c3ViX2NvdW50ID0gMDsKKyAKKyAJICAgIGlmICghZmllbGRfaXNfc3RhdGljICgmVFlQRV9GSUVM RCAodCwgaSkpKQorIAkgICAgICBzdWJfY291bnQgPSBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0 ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwKK0BAIC0zNTc4LDEzICszNTc4LDE1IEBACiAgCiAg ICAgIGNhc2UgVFlQRV9DT0RFX1VOSU9OOgogICAgICAgIHsKQEAgLTI4OSw3ICsyODUsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICAJICAgIGlmIChzdWJf Y291bnQgPT0gLTEpCiAgCSAgICAgIHJldHVybiAtMTsKICAJICAgIGNvdW50ID0gKGNvdW50ID4g c3ViX2NvdW50ID8gY291bnQgOiBzdWJfY291bnQpOwotQEAgLTM1MTQsNyArMzUxOCw3IEBACitA QCAtMzYyMCw3ICszNjIyLDcgQEAKICAJCQlpbnQgKmNvdW50KQogIHsKICAgIGVudW0gYXJtX3Zm cF9jcHJjX2Jhc2VfdHlwZSBiID0gVkZQX0NQUkNfVU5LTk9XTjsKQEAgLTI5OCw3ICsyOTQsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICAgIGlmIChjIDw9 IDAgfHwgYyA+IDQpCiAgICAgIHJldHVybiAwOwogICAgKmJhc2VfdHlwZSA9IGI7Ci1AQCAtMzU5 NSw3ICszNTk5LDcgQEAKK0BAIC0zNzAxLDcgKzM3MDMsNyBAQAogIAogICAgZm9yIChhcmdudW0g PSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCiAgICAgIHsKQEAgLTMwNywxMSArMzAzLDEx IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYXJtLXRkZXAuYwogICAgICAgIHN0 cnVjdCB0eXBlICphcmdfdHlwZTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGU7CiAg ICAgICAgZW51bSB0eXBlX2NvZGUgdHlwZWNvZGU7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL2F2ci10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXZyLXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2F2ci10 ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDQ4MTQwNTcgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvYXZyLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxNDgzNDc1MCAr MDEwMAotQEAgLTExOTYsMTMgKzExOTYsMTMgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9hdnItdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDAxNTAyODA2ICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F2ci10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0 Ny41MTY1MTk4MjggKzAyMDAKK0BAIC0xMTk1LDEzICsxMTk1LDEzIEBACiAgCiAgc3RydWN0IHN0 YWNrX2l0ZW0KICB7CkBAIC0zMjcsNyArMzIzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9hdnItdGRlcC5jCiAgewogICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNpOwogICAgc2kg PSBYTkVXIChzdHJ1Y3Qgc3RhY2tfaXRlbSk7Ci1AQCAtMTI5MSwxMiArMTI5MSwxMiBAQAorQEAg LTEyODksMTIgKzEyODksMTIgQEAKICAKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQog ICAgICB7CkBAIC0zNDEsMjIgKzMzNywyMiBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2F2ci10ZGVwLmMKIC0gICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwogKyAg ICAgIHNzaXplX3QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwogIAotICAgICAgIC8qIENhbGN1 bGF0ZSB0aGUgcG90ZW50aWFsIGxhc3QgcmVnaXN0ZXIgbmVlZGVkLiAgKi8KLSAgICAgICBsYXN0 X3JlZ251bSA9IHJlZ251bSAtIChsZW4gKyAobGVuICYgMSkpOwotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9iZmluLXRkZXAuYworICAgICAgIC8qIENhbGN1bGF0ZSB0aGUgcG90ZW50 aWFsIGxhc3QgcmVnaXN0ZXIgbmVlZGVkLgorICAgICAgICAgIEUuZy4gRm9yIGxlbmd0aCAyLCBy ZWdpc3RlcnMgcmVnbnVtIGFuZCByZWdudW0tMSAoc2F5IDI1IGFuZCAyNCkKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvYmZpbi10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE2MDEwNi5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYw NTgxNDA2MiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9iZmluLXRkZXAuYwky MDE2LTAxLTA4IDE5OjE2OjIwLjMxNTgzNDc1NiArMDEwMAotQEAgLTUwNCw3ICs1MDQsNyBAQAot ICAgZ2RiX2J5dGUgYnVmWzRdOworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2Jm aW4tdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDAxNTAyODA2ICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2JmaW4tdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE2NTE5 ODI4ICswMjAwCitAQCAtNTAyLDcgKzUwMiw3IEBACisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9v cmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgaTsKICAgIGxvbmcg cmVnX3IwLCByZWdfcjEsIHJlZ19yMjsKIC0gIGludCB0b3RhbF9sZW4gPSAwOwogKyAgc3NpemVf dCB0b3RhbF9sZW4gPSAwOwotICAgZW51bSBiZmluX2FiaSBhYmkgPSBiZmluX2FiaSAoZ2RiYXJj aCk7Ci0gICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlv biwgTlVMTCk7CiAgCi1AQCAtNTI4LDcgKzUyOCw3IEBACisgICBmb3IgKGkgPSBuYXJncyAtIDE7 IGkgPj0gMDsgaS0tKQorICAgICB7CitAQCAtNTI0LDcgKzUyNCw3IEBACiAgICAgIHsKICAgICAg ICBzdHJ1Y3QgdHlwZSAqdmFsdWVfdHlwZSA9IHZhbHVlX2VuY2xvc2luZ190eXBlIChhcmdzW2ld KTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlKTsKQEAgLTM2NSwxMCArMzYxLDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvYmZpbi10ZGVwLmMKICAKICAgICAgICBzcCAtPSBjb250YWluZXJfbGVuOwogICAgICAgIHdy aXRlX21lbW9yeSAoc3AsIHZhbHVlX2NvbnRlbnRzIChhcmdzW2ldKSwgY29udGFpbmVyX2xlbik7 Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NyaXMtdGRlcC5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NyaXMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY3Jpcy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42 MDY4MTQwNjggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY3Jpcy10ZGVwLmMJ MjAxNi0wMS0wOCAxOToxNjoyMC4zMTY4MzQ3NjIgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9jcmlzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwMzUwMjgyMyAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcmlzLXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ3LjUxNzUxOTgzNiArMDIwMAogQEAgLTY2MywxMyArNjYzLDEzIEBACiAgCiAgc3Ry dWN0IHN0YWNrX2l0ZW0KQEAgLTM4NSw3ICszODEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2NyaXMtdGRlcC5jCiAgewogICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNpID0gWE5F VyAoc3RydWN0IHN0YWNrX2l0ZW0pOwogICAgc2ktPmRhdGEgPSAoZ2RiX2J5dGUgKikgeG1hbGxv YyAobGVuKTsKLUBAIC04NDEsMTMgKzg0MSwxMyBAQAorQEAgLTgzMywxMyArODMzLDEzIEBACiAg CiAgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8IG5hcmdzOyBhcmdudW0rKykKICAgICAgewpA QCAtNDAzLDExICszOTksMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jcmlz LXRkZXAuYwogICAgICAgIAogICAgICAgIC8qIEhvdyBtYXkgcmVnaXN0ZXJzIHdvcnRoIG9mIHN0 b3JhZ2UgZG8gd2UgbmVlZCBmb3IgdGhpcyBhcmd1bWVudD8gICovCiAgICAgICAgcmVnX2RlbWFu ZCA9IChsZW4gLyA0KSArIChsZW4gJSA0ICE9IDAgPyAxIDogMCk7Ci1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2g4MzAwLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9oODMwMC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5v cmlnL2dkYi9oODMwMC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDc4MTQwNzMgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaDgzMDAtdGRlcC5jCTIwMTYtMDEtMDggMTk6 MTY6MjAuMzE2ODM0NzYyICswMTAwCi1AQCAtNjM5LDcgKzYzOSw3IEBACistLS0gZ2RiLTcuMTEu NTAuMjAxNjA3MTYub3JpZy9nZGIvaDgzMDAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDAz NTAyODIzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2g4MzAwLXRkZXAuYwky MDE2LTA3LTE2IDE0OjM1OjQ3LjUxNzUxOTgzNiArMDIwMAorQEAgLTYzNyw3ICs2MzcsNyBAQAog IAkJICAgICAgIGludCBzdHJ1Y3RfcmV0dXJuLCBDT1JFX0FERFIgc3RydWN0X2FkZHIpCiAgewog ICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFy Y2gpOwpAQCAtNDE2LDcgKzQxMiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv aDgzMDAtdGRlcC5jCiAgICBpbnQgd29yZHNpemUgPSBCSU5XT1JEIChnZGJhcmNoKTsKICAgIGlu dCByZWcgPSBFX0FSRzBfUkVHTlVNOwogICAgaW50IGFyZ3VtZW50OwotQEAgLTY2NiwxMSArNjY2 LDExIEBACitAQCAtNjY0LDExICs2NjQsMTEgQEAKICAgICAgewogICAgICAgIHN0cnVjdCBjbGVh bnVwICpiYWNrX3RvOwogICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJn c1thcmd1bWVudF0pOwpAQCAtNDMwLDcgKzQyNiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvaDgzMDAtdGRlcC5jCiAgICAgICAgZ2RiX2J5dGUgKnBhZGRlZCA9IChnZGJfYnl0 ZSAqKSB4bWFsbG9jIChwYWRkZWRfbGVuKTsKICAgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVw ICh4ZnJlZSwgcGFkZGVkKTsKICAKLUBAIC02OTksNyArNjk5LDcgQEAKK0BAIC02OTcsNyArNjk3 LDcgQEAKICAJICAgICAgLyogSGVhdmVucyB0byBCZXRzeSAtLS0gaXQncyByZWFsbHkgZ29pbmcg aW4gcmVnaXN0ZXJzIQogIAkgICAgICAgICBOb3RlIHRoYXQgb24gdGhlIGg4LzMwMHMsIHRoZXJl IGFyZSBnYXBzIGJldHdlZW4gdGhlCiAgCSAgICAgICAgIHJlZ2lzdGVycyBpbiB0aGUgcmVnaXN0 ZXIgZmlsZS4gICovCkBAIC00MzksMTEgKzQzNSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2g4MzAwLXRkZXAuYwogIAogIAkgICAgICBmb3IgKG9mZnNldCA9IDA7IG9mZnNl dCA8IHBhZGRlZF9sZW47IG9mZnNldCArPSB3b3Jkc2l6ZSkKICAJCXsKLUluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvaHBwYS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvaHBwYS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5v cmlnL2dkYi9ocHBhLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYwOTgxNDA4NSArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9ocHBhLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2 OjIwLjMxNzgzNDc2NyArMDEwMAotQEAgLTk5NSw3ICs5OTUsNyBAQAorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2hwcGEtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDA1NTAy ODM5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2hwcGEtdGRlcC5jCTIwMTYt MDctMTYgMTQ6MzU6NDcuNTE4NTE5ODQ0ICswMjAwCitAQCAtOTkxLDcgKzk5MSw3IEBACiAgICAg IHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgICAgICAgc3RydWN0IHR5 cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmcpOwpAQCAtNDUyLDcgKzQ0OCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaHBwYS10ZGVwLmMKICAgICAgICBjb25zdCBiZmRfYnl0 ZSAqdmFsYnVmOwogICAgICAgIGJmZF9ieXRlIGZwdHJidWZbOF07CiAgICAgICAgaW50IHJlZ251 bTsKLUBAIC0xMTkwLDcgKzExOTAsNyBAQAorQEAgLTExODYsNyArMTE4Niw3IEBACiAgCQkgICAg IHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJICAgICBn ZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQogIHsKQEAgLTQ2MSwx MCArNDU3LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaHBwYS10ZGVwLmMK ICAgIGludCByZWdudW0sIG9mZnNldDsKICAKICAgIGlmIChsZW4gPiAxNikKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDE2LTAxLTA4IDE5 OjE2OjE2LjYwOTgxNDA4NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2 LWRhcndpbi10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMTc4MzQ3NjcgKzAxMDAKKy0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxNi0wNy0x NiAxNDozNTo0NS40MDU1MDI4MzkgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv aTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE4NTE5ODQ0ICswMjAwCiBA QCAtMTYzLDcgKzE2Myw3IEBACiAgCiAgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9wYXNz IDwgMjsgd3JpdGVfcGFzcysrKQpAQCAtNDc0LDExICs0NzAsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9pMzg2LWRhcndpbi10ZGVwLmMKICAgICAgICBpbnQgbnVtX20xMjgg PSAwOwogIAogICAgICAgIGlmIChzdHJ1Y3RfcmV0dXJuKQotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9pMzg2LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9p Mzg2LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2Ri L2kzODYtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjE1ODE0MTE4ICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2kzODYtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzE5 ODM0Nzc4ICswMTAwCi1AQCAtMjY2Myw3ICsyNjYzLDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9pMzg2LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQxMDUwMjg3OSAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pMzg2LXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ3LjUyMDUxOTg2MCArMDIwMAorQEAgLTI2NjQsNyArMjY2NCw3IEBACiAgICBnZGJf Ynl0ZSBidWZbNF07CiAgICBpbnQgaTsKICAgIGludCB3cml0ZV9wYXNzOwpAQCAtNDg3LDcgKzQ4 Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAKICAg IC8qIERldGVybWluZSB0aGUgdG90YWwgc3BhY2UgcmVxdWlyZWQgZm9yIGFyZ3VtZW50cyBhbmQg c3RydWN0CiAgICAgICByZXR1cm4gYWRkcmVzcyBpbiBhIGZpcnN0IHBhc3MgKGFsbG93aW5nIGZv ciAxNi1ieXRlLWFsaWduZWQKLUBAIC0yNjcxLDcgKzI2NzEsNyBAQAorQEAgLTI2NzIsNyArMjY3 Miw3IEBACiAgCiAgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9wYXNzIDwgMjsgd3JpdGVf cGFzcysrKQogICAgICB7CkBAIC00OTYsNyArNDkyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9pMzg2LXRkZXAuYwogIAogICAgICAgIGlmIChzdHJ1Y3RfcmV0dXJuKQogIAl7 Ci1AQCAtMjY4OCw3ICsyNjg4LDcgQEAKK0BAIC0yNjg5LDcgKzI2ODksNyBAQAogIAogICAgICAg IGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogIAl7CkBAIC01MDUsNyArNTAxLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRkZXAuYwogIAogIAkgIGlmICh3cml0 ZV9wYXNzKQogIAkgICAgewotQEAgLTI4OTUsNyArMjg5NSw3IEBACitAQCAtMjg5Niw3ICsyODk2 LDcgQEAKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChn ZGJhcmNoKTsKICAgIGVudW0gdHlwZV9jb2RlIGNvZGUgPSBUWVBFX0NPREUgKHR5cGUpOwpAQCAt NTE0LDcgKzUxMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVw LmMKICAKICAgIGdkYl9hc3NlcnQgKGNvZGUgPT0gVFlQRV9DT0RFX1NUUlVDVAogICAgICAgICAg ICAgICAgfHwgY29kZSA9PSBUWVBFX0NPREVfVU5JT04KLUBAIC0zNjQxLDcgKzM2NDEsNyBAQAor QEAgLTM3MTgsNyArMzcxOCw3IEBACiAgaTM4Nl9jb252ZXJ0X3JlZ2lzdGVyX3AgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLAogIAkJCSBpbnQgcmVnbnVtLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7 CkBAIC01MjMsNyArNTE5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2 LXRkZXAuYwogIAogICAgLyogVmFsdWVzIG1heSBiZSBzcHJlYWQgYWNyb3NzIG11bHRpcGxlIHJl Z2lzdGVycy4gIE1vc3QgZGVidWdnaW5nCiAgICAgICBmb3JtYXRzIGFyZW4ndCBleHByZXNzaXZl IGVub3VnaCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbnMsIHNvCi1AQCAtMzY3NCw3ICszNjc0LDcg QEAKK0BAIC0zNzUxLDcgKzM3NTEsNyBAQAogIAkJCWludCAqb3B0aW1pemVkcCwgaW50ICp1bmF2 YWlsYWJsZXApCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfZnJhbWVfYXJj aCAoZnJhbWUpOwpAQCAtNTMyLDcgKzUyOCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIGlmIChpMzg2X2ZwX3JlZ251bV9wIChnZGJhcmNoLCBy ZWdudW0pKQogICAgICByZXR1cm4gaTM4N19yZWdpc3Rlcl90b192YWx1ZSAoZnJhbWUsIHJlZ251 bSwgdHlwZSwgdG8sCi1AQCAtMzcxMCw3ICszNzEwLDcgQEAKK0BAIC0zNzg3LDcgKzM3ODcsNyBA QAogIGkzODZfdmFsdWVfdG9fcmVnaXN0ZXIgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50 IHJlZ251bSwKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKmZyb20pCiAg ewpAQCAtNTQxLDExICs1MzcsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9p Mzg2LXRkZXAuYwogIAogICAgaWYgKGkzODZfZnBfcmVnbnVtX3AgKGdldF9mcmFtZV9hcmNoIChm cmFtZSksIHJlZ251bSkpCiAgICAgIHsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv aXEyMDAwLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pcTIwMDAtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvaXEyMDAw LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYxNjgxNDEyNCArMDEwMAotKysrIGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9pcTIwMDAtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzIwODM0 Nzg0ICswMTAwCi1AQCAtNjUxLDggKzY1MSw5IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvaXEyMDAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQxMTUwMjg4NyArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pcTIwMDAtdGRlcC5jCTIwMTYtMDctMTYg MTQ6MzU6NDcuNTIwNTE5ODYwICswMjAwCitAQCAtNjQ2LDggKzY0Niw5IEBACiAgICBjb25zdCBi ZmRfYnl0ZSAqdmFsOwogICAgYmZkX2J5dGUgYnVmWzRdOwogICAgc3RydWN0IHR5cGUgKnR5cGU7 CkBAIC01NTcsMTEgKzU1MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2lx MjAwMC10ZGVwLmMKICAgIC8qIFVzZWQgdG8gY29weSBzdHJ1Y3QgYXJndW1lbnRzIGludG8gdGhl IHN0YWNrLiAgKi8KICAgIENPUkVfQUREUiBzdHJ1Y3RfcHRyOwogIAotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9tMzJyLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9tMzJyLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9y aWcvZ2RiL20zMnItdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjE2ODE0MTI0ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL20zMnItdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6 MjAuMzIwODM0Nzg0ICswMTAwCi1AQCAtNjg3LDcgKzY4Nyw3IEBACistLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MTE1MDI4 ODcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTMyci10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0Ny41MjA1MTk4NjAgKzAyMDAKK0BAIC02ODUsNyArNjg1LDcgQEAKICAgIENP UkVfQUREUiByZWd2YWw7CiAgICBnZGJfYnl0ZSAqdmFsOwogICAgZ2RiX2J5dGUgdmFsYnVmW01B WF9SRUdJU1RFUl9TSVpFXTsKQEAgLTU3MCwxMCArNTY2LDEwIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvbTMyci10ZGVwLmMKICAKICAgIC8qIEZpcnN0IGZvcmNlIHNwIHRvIGEg NC1ieXRlIGFsaWdubWVudC4gICovCiAgICBzcCA9IHNwICYgfjM7Ci1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL202OGstdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL202OGstdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3Jp Zy9nZGIvbTY4ay10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MTc4MTQxMjkgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbTY4ay10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoy MC4zMjA4MzQ3ODQgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tNjhr LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQxMjUwMjg5NSArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9tNjhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMDUxOTg2 MCArMDIwMAogQEAgLTM4Miw3ICszODIsNyBAQAogIHsKICAgIHN0cnVjdCBnZGJhcmNoX3RkZXAg KnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOwpAQCAtNTk2LDEwICs1OTIsMTAgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tNjhrLXRkZXAuYwogIAogICAgICAgIC8qIE5v bi1zY2FsYXJzIGJpZ2dlciB0aGFuIDQgYnl0ZXMgYXJlIGxlZnQgYWxpZ25lZCwgb3RoZXJzIGFy ZQogIAkgcmlnaHQgYWxpZ25lZC4gICovCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L204OGstdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL204OGstdGRlcC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbTg4ay10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MTc4MTQxMjkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvbTg4ay10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjE4MzQ3OTAgKzAx MDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tODhrLXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ1LjQxMjUwMjg5NSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9tODhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMTUxOTg2OCArMDIwMAogQEAgLTI1 NywxMyArMjU3LDEzIEBACiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVn Y2FjaGVfYXJjaCAocmVnY2FjaGUpOwpAQCAtNjI3LDEwICs2MjMsMTAgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9tODhrLXRkZXAuYwogIAogICAgICAgIGlmIChtODhrX2luX3Jl Z2lzdGVyX3AgKHR5cGUpKQogIAl7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21l cC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVwLXRkZXAuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAx Ni0wMS0wOCAxOToxNjoxNi42MTg4MTQxMzUgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvbWVwLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyMTgzNDc5MCArMDEwMAorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAxNi0wNy0xNiAxNDoz NTo0NS40MTM1MDI5MDMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVwLXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMTUxOTg2OCArMDIwMAogQEAgLTIyNzIsNyArMjI3 Miw3IEBACiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKQpAQCAtNjQwLDEwICs2MzYs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tZXAtdGRlcC5jCiAgCiAgICAg ICAgaWYgKGFyZ19sZW4gPiBNRVBfR1BSX1NJWkUpCiAgICAgICAgICB7Ci1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL21pcHMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYu b3JpZy9nZGIvbWlwcy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MjY4MTQxNzkgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMJMjAxNi0wMS0wOCAxOTox NjoyMC4zMjQ4MzQ4MDYgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9t aXBzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyMTUwMjk2NyArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMzUx OTg4NCArMDIwMAogQEAgLTQ1NSw3ICs0NTUsNyBAQAogIG1pcHNfeGZlcl9yZWdpc3RlciAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCiAgCQkgICAg aW50IHJlZ19udW0sIGludCBsZW5ndGgsCkBAIC02NjQsNyArNjYwLDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9taXBzLXRkZXAuYwogICAgaWYgKG1pcHNfZGVidWcgJiYgb3V0 ICE9IE5VTEwpCiAgICAgIHsKICAgICAgICBpbnQgaTsKLUBAIC00NTU0LDEzICs0NTU0LDEzIEBA CitAQCAtNDUyOSwxMyArNDUyOSwxMyBAQAogICAgICAgIGdkYl9ieXRlIHZhbGJ1ZltNQVhfUkVH SVNURVJfU0laRV07CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAg ICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo YXJnKSk7CkBAIC02ODEsNyArNjc3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9taXBzLXRkZXAuYwogIAogICAgICAgIC8qIFRoZSBFQUJJIHBhc3NlcyBzdHJ1Y3R1cmVzIHRo YXQgZG8gbm90IGZpdCBpbiBhIHJlZ2lzdGVyIGJ5CiAgICAgICAgICAgcmVmZXJlbmNlLiAgKi8K LUBAIC00ODI5LDcgKzQ4MjksNyBAQAorQEAgLTQ4MDQsNyArNDgwNCw3IEBACiAgCiAgc3RhdGlj IGludAogIG1pcHNfbjMybjY0X2ZwX2FyZ19jaHVua19wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwgc3RydWN0IHR5cGUgKmFyZ190eXBlLApAQCAtNjkwLDcgKzY4Niw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICB7CiAgICBpbnQgaTsKICAKLUBAIC00 ODQ0LDcgKzQ4NDQsNyBAQAorQEAgLTQ4MTksNyArNDgxOSw3IEBACiAgCiAgICBmb3IgKGkgPSAw OyBpIDwgVFlQRV9ORklFTERTIChhcmdfdHlwZSk7IGkrKykKICAgICAgewpAQCAtNjk5LDcgKzY5 NSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAgICAg ICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAKICAgICAgICAvKiBXZSdyZSBvbmx5IGxvb2tp bmcgYXQgbm9ybWFsIGZpZWxkcy4gICovCi1AQCAtNDg4Niw3ICs0ODg2LDcgQEAKK0BAIC00ODYx LDcgKzQ4NjEsNyBAQAogICAgaW50IGFyZ3JlZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBp bnQgYXJnbnVtOwpAQCAtNzA4LDcgKzcwNCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvbWlwcy10ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQgPSAwOwogICAgZW51bSBiZmRf ZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09S RV9BRERSIGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwot QEAgLTUyMzcsMTEgKzUyMzcsMTEgQEAKK0BAIC01MjEyLDExICs1MjEyLDExIEBACiAgCQkJCTog TUlQU19WMF9SRUdOVU0pOwogIAkgICBmaWVsZCA8IFRZUEVfTkZJRUxEUyAodHlwZSk7IGZpZWxk KyssIHJlZ251bSArPSAyKQogIAl7CkBAIC03MjQsNyArNzIwLDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9taXBzLXRkZXAuYwogIAkgIGlmIChUWVBFX0xFTkdUSCAoVFlQRV9G SUVMRF9UWVBFICh0eXBlLCBmaWVsZCkpID09IDE2KQogIAkgICAgewogIAkgICAgICAvKiBBIDE2 LWJ5dGUgbG9uZyBkb3VibGUgZmllbGQgZ29lcyBpbiB0d28gY29uc2VjdXRpdmUKLUBAIC01Mjgz LDggKzUyODMsOCBAQAorQEAgLTUyNTgsOCArNTI1OCw4IEBACiAgCSAgaWYgKG9mZnNldCArIHhm ZXIgPiBUWVBFX0xFTkdUSCAodHlwZSkpCiAgCSAgICB4ZmVyID0gVFlQRV9MRU5HVEggKHR5cGUp IC0gb2Zmc2V0OwogIAkgIGlmIChtaXBzX2RlYnVnKQpAQCAtNzM1LDcgKzczMSw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAJICBtaXBzX3hmZXJfcmVn aXN0ZXIgKGdkYmFyY2gsIHJlZ2NhY2hlLAogIAkJCSAgICAgIGdkYmFyY2hfbnVtX3JlZ3MgKGdk YmFyY2gpICsgcmVnbnVtLAogIAkJCSAgICAgIHhmZXIsIEJGRF9FTkRJQU5fVU5LTk9XTiwgcmVh ZGJ1Ziwgd3JpdGVidWYsCi1AQCAtNTM0Miw3ICs1MzQyLDcgQEAKK0BAIC01MzE3LDcgKzUzMTcs NyBAQAogICAgaW50IGFyZ3JlZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVt OwpAQCAtNzQ0LDcgKzc0MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlw cy10ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQgPSAwOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5 dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERSIGZ1 bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwotQEAgLTU0MDYs MTMgKzU0MDYsMTMgQEAKK0BAIC01MzgxLDEzICs1MzgxLDEzIEBACiAgICAgICAgY29uc3QgZ2Ri X2J5dGUgKnZhbDsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAg ICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChh cmcpKTsKQEAgLTc2MSw3ICs3NTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L21pcHMtdGRlcC5jCiAgCiAgICAgICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFyZyk7CiAgCi1A QCAtNTg3MCw4ICs1ODcwLDggQEAKK0BAIC01ODQyLDggKzU4NDIsOCBAQAogICAgaW50IGFyZ3Jl ZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAtNzcyLDcgKzc2OCw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAgIGVudW0g YmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAg IENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxM KTsKICAKLUBAIC01OTMxLDEzICs1OTMxLDEzIEBACitAQCAtNTkwMywxMyArNTkwMywxMyBAQAog ICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBh cmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRl ZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC03ODksMTEgKzc4NSwxMSBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgCiAgICAgICAgdmFsID0gdmFsdWVfY29u dGVudHMgKGFyZyk7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21uMTAzMDAt dGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21uMTAzMDAtdGRlcC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbW4xMDMwMC10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoxNi42Mjc4MTQxODUgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjQ4MzQ4MDYg KzAxMDAKLUBAIC0xMjI3LDcgKzEyMjcsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDIyNTAyOTc2ICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTYtMDctMTYg MTQ6MzU6NDcuNTI0NTE5ODkyICswMjAwCitAQCAtMTIyNSw3ICsxMjI1LDcgQEAKICAgIGVudW0g YmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAg IGNvbnN0IGludCBwdXNoX3NpemUgPSByZWdpc3Rlcl9zaXplIChnZGJhcmNoLCBFX1BDX1JFR05V TSk7CiAgICBpbnQgcmVnc191c2VkOwpAQCAtODAyLDExICs3OTgsMTEgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9tbjEwMzAwLXRkZXAuYwogICAgaW50IHN0YWNrX29mZnNldCA9 IDA7CiAgICBpbnQgYXJnbnVtOwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvbXQtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL210LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9y aWcvZ2RiL210LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYyODgxNDE5MCArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tdC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4z MjQ4MzQ4MDYgKzAxMDAKLUBAIC03ODEsOSArNzgxLDkgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9tdC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MjM1MDI5ODQgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbXQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6 MzU6NDcuNTI0NTE5ODkyICswMjAwCitAQCAtNzgwLDkgKzc4MCw5IEBACiAgICBnZGJfYnl0ZSBi dWZbTVRfTUFYX1NUUlVDVF9TSVpFXTsKICAgIGludCBhcmdyZWcgPSBNVF8xU1RfQVJHUkVHOwog ICAgaW50IHNwbGl0X3BhcmFtX2xlbiA9IDA7CkBAIC04MTgsMTAgKzgxNCwxMCBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL210LXRkZXAuYwogICAgaW50IGksIGo7CiAgCiAgICAv KiBGaXJzdCBoYW5kbGUgaG93ZXZlciBtYW55IGFyZ3Mgd2UgY2FuIGZpdCBpbnRvIE1UXzFTVF9B UkdSRUcgdGhydQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9wcGMtc3lzdi10ZGVw LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcHBjLXN5c3YtdGRlcC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvcHBjLXN5c3YtdGRlcC5j CTIwMTYtMDEtMDggMTk6MTY6MTYuNjI5ODE0MTk2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyNTgzNDgxMiAr MDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3BwYy1zeXN2LXRkZXAuYwky MDE2LTA3LTE2IDE0OjM1OjQ1LjQyNDUwMjk5MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjQ1MTk4OTIgKzAy MDAKIEBAIC02Niw3ICs2Niw3IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgb3BlbmNsX2FiaSA9IHBwY19zeXN2 X3VzZV9vcGVuY2xfYWJpICh2YWx1ZV90eXBlIChmdW5jdGlvbikpOwpAQCAtODY2LDEwICs4NjIs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9wcGMtc3lzdi10ZGVwLmMKICAK ICAgIC8qIEVuZm9yY2UgYWxpZ25tZW50IG9mIHN0YWNrIGxvY2F0aW9uLCBpZiByZXF1ZXN0ZWQu ICAqLwogICAgaWYgKGFsaWduID4gdGRlcC0+d29yZHNpemUpCi1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3JsNzgtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3JsNzgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9n ZGIvcmw3OC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42Mjk4MTQxOTYgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcmw3OC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4z MjU4MzQ4MTIgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9ybDc4LXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyNDUwMjk5MiArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9ybDc4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNTUxOTkwMCAr MDIwMAogQEAgLTEzMzYsOCArMTMzNiw4IEBACiAgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0g MDsgaS0tKQogICAgICB7CkBAIC04ODEsMTAgKzg3NywxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3JsNzgtdGRlcC5jCiAgCiAgICAgICAgc3AgLT0gY29udGFpbmVyX2xlbjsK ICAgICAgICB3cml0ZV9tZW1vcnkgKHJsNzhfbWFrZV9kYXRhX2FkZHJlc3MgKHNwKSwKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE2LTAxLTA4 IDE5OjE2OjE2LjYzMDgxNDIwMiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9y czYwMDAtYWl4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyNjgzNDgxNyArMDEwMAorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTYtMDct MTYgMTQ6MzU6NDUuNDI1NTAzMDAwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3JzNjAwMC1haXgtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI1NTE5OTAwICswMjAwCiBA QCAtMTg2LDkgKzE4Niw5IEBACiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJj aF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJj aF9ieXRlX29yZGVyIChnZGJhcmNoKTsKQEAgLTg5Nyw3ICs4OTMsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCiAgICBnZGJfYnl0ZSB0bXBfYnVm ZmVyWzUwXTsKICAgIGludCBmX2FyZ25vID0gMDsJCS8qIGN1cnJlbnQgZmxvYXRpbmcgcG9pbnQg YXJnbm8gKi8KICAgIGludCB3b3Jkc2l6ZSA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCktPndvcmRz aXplOwotQEAgLTMyMSw3ICszMjEsNyBAQAorQEAgLTMxOSw3ICszMTksNyBAQAogIAogICAgaWYg KChhcmdubyA8IG5hcmdzKSB8fCBhcmdieXRlcykKICAgICAgewpAQCAtOTA2LDExICs5MDIsMTEg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9yczYwMDAtYWl4LXRkZXAuYwogIAog ICAgICAgIGlmIChhcmdieXRlcykKICAJewotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9zMzkwLWxpbnV4LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zMzkw LWxpbnV4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcv Z2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjMyODE0MjEzICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTYtMDEt MDggMTk6MTY6MjAuMzI4ODM0ODI5ICswMTAwCi1AQCAtMjk4MSw3ICsyOTgxLDcgQEAKKy0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ1LjQyNzUwMzAxNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9z MzkwLWxpbnV4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNjUxOTkwOCArMDIwMAorQEAg LTMxMjUsNyArMzEyNSw3IEBACiAgLyogRGV0ZXJtaW5lIHdoZXRoZXIgTiBpcyBhIHBvd2VyIG9m IHR3by4gICovCiAgCiAgc3RhdGljIGludApAQCAtOTE5LDcgKzkxNSw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvczM5MC1saW51eC10ZGVwLmMKICB7CiAgICByZXR1cm4gbiAm JiAoKG4gJiAobiAtIDEpKSA9PSAwKTsKICB9Ci1AQCAtMzAzOCw3ICszMDM4LDcgQEAKK0BAIC0z MTgyLDcgKzMxODIsNyBAQAogIAkJIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyLCBpbnQgaXNf dW5uYW1lZCkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKGFyZykpOwpAQCAtOTI4LDEwICs5MjQsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwogICAgaW50IHdyaXRlX21vZGUgPSBhcy0+cmVn Y2FjaGUgIT0gTlVMTDsKICAKICAgIGlmIChzMzkwX2Z1bmN0aW9uX2FyZ19mbG9hdCAodHlwZSkp Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Njb3JlLXRkZXAuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9zY29yZS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9zY29yZS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjox Ni42MzM4MTQyMTggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2NvcmUtdGRl cC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI4ODM0ODI5ICswMTAwCistLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDI4NTAz MDI0ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Njb3JlLXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ3LjUyNzUxOTkxNiArMDIwMAogQEAgLTUxNCw3ICs1MTQsNyBAQAogICAg ZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gp OwogICAgaW50IGFyZ251bTsKQEAgLTk0MSwxMCArOTM3LDEwIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvc2NvcmUtdGRlcC5jCiAgICBDT1JFX0FERFIgc3RhY2tfb2Zmc2V0ID0g MDsKICAgIENPUkVfQUREUiBhZGRyID0gMDsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvc2gtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NoLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3NoLXRkZXAu YwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzNTgxNDIzMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9zaC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjk4MzQ4MzQgKzAxMDAK Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zaC10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0NS40Mjk1MDMwMzIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2gt dGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI3NTE5OTE2ICswMjAwCiBAQCAtODA1LDcgKzgw NSw3IEBACiAgc3RhdGljIGludAogIHNoX3VzZV9zdHJ1Y3RfY29udmVudGlvbiAoaW50IHJlbmVz YXNfYWJpLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKQEAgLTk4MywyMCArOTc5LDIwIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2gtdGRlcC5jCiAgICBpbnQgcGFzc19vbl9zdGFjayA9 IDA7CiAgICBpbnQgbGFzdF9yZWdfYXJnID0gSU5UX01BWDsKICAKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvc2g2NC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvc2g2NC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmln L2dkYi9zaDY0LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzNTgxNDIzMCArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zaDY0LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIw LjMyOTgzNDgzNCArMDEwMAotQEAgLTEwNTYsNyArMTA1Niw3IEBACistLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvc2g2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzA1MDMw NDAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2g2NC10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0Ny41Mjg1MTk5MjUgKzAyMDAKK0BAIC0xMDYwLDcgKzEwNjAsNyBAQAogIAkJ ICAgICAgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQogIHsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRl X29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKIC0gIGludCBzdGFja19vZmZz ZXQsIHN0YWNrX2FsbG9jOwogKyAgTE9OR0VTVCBzdGFja19vZmZzZXQsIHN0YWNrX2FsbG9jOwog ICAgaW50IGludF9hcmdyZWc7Ci0gICBpbnQgZmxvYXRfYXJncmVnOwotICAgaW50IGRvdWJsZV9h cmdyZWc7Ci1AQCAtMTA2Nyw3ICsxMDY3LDcgQEAKKyAgIGludCBmbG9hdF9hcmdfaW5kZXggPSAw OworICAgaW50IGRvdWJsZV9hcmdfaW5kZXggPSAwOworQEAgLTEwNjksNyArMTA2OSw3IEBACiAg ICBDT1JFX0FERFIgcmVndmFsOwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgIGdkYl9ieXRl IHZhbGJ1Zls4XTsKQEAgLTEwMDUsMTAgKzEwMDEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9zaDY0LXRkZXAuYwogICAgaW50IGFyZ3JlZ19zaXplOwogICAgaW50IGZwX2Fy Z3NbMTJdOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zcGFyYy10ZGVwLmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmMtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc3BhcmMtdGRlcC5jCTIwMTYtMDEt MDggMTk6MTY6MTYuNjM2ODE0MjM1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3NwYXJjLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMzMDgzNDg0MCArMDEwMAorLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3NwYXJjLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1 OjQ1LjQzMTUwMzA0OCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYy10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjg1MTk5MjUgKzAyMDAKIEBAIC01MjUsNyArNTI1 LDcgQEAKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CkBAIC0xMDE4LDEw ICsxMDE0LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3BhcmMtdGRlcC5j CiAgCiAgICAgICAgaWYgKHNwYXJjX3N0cnVjdHVyZV9vcl91bmlvbl9wICh0eXBlKQogIAkgIHx8 IChzcGFyY19mbG9hdGluZ19wICh0eXBlKSAmJiBsZW4gPT0gMTYpCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3NwYXJjNjQtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3NwYXJjNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAx MDYub3JpZy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42Mzc4MTQyNDEg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNi0w MS0wOCAxOToxNjoyMC4zMzA4MzQ4NDAgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMjUwMzA1NiArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ3LjUyODUxOTkyNSArMDIwMAogQEAgLTYzNiw3ICs2MzYsOCBAQAogIAogIHN0YXRp YyB2b2lkCkBAIC0xMDc3LDEwICsxMDczLDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvc3BhcmM2NC10ZGVwLmMKICAgICAgICBpbnQgcmVnbnVtID0gLTE7CiAgICAgICAgZ2Ri X2J5dGUgYnVmWzE2XTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3B1LXRk ZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUtdGRlcC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc3B1LXRkZXAuYwkyMDE2LTAx LTA4IDE5OjE2OjE2LjYzODgxNDI0NiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9zcHUtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzMxODM0ODQ1ICswMTAwCistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc3B1LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1 LjQzMzUwMzA2NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUtdGRlcC5j CTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI5NTE5OTMyICswMjAwCiBAQCAtMTQyOSw3ICsxNDI5LDcg QEAKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgICAgICAgc3RydWN0IHR5 cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTEwOTksMTEg KzEwOTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zcHUtdGRlcC5jCiAg CSAgaW50IHByZWZlcnJlZF9zbG90OwogIAkgIAogIAkgIGlmIChzcHVfc2NhbGFyX3ZhbHVlX3Ag KHR5cGUpKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90aWM2eC10ZGVwLmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGljNngtdGRlcC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdGljNngtdGRlcC5jCTIwMTYtMDEtMDgg MTk6MTY6MTYuNjM5ODE0MjUyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rp YzZ4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMzMjgzNDg1MSArMDEwMAotQEAgLTg5NSw3 ICs4OTUsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3RpYzZ4LXRkZXAu YwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMzUwMzA2NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90aWM2eC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjk1MTk5MzIgKzAy MDAKK0BAIC04OTIsNyArODkyLDcgQEAKICAgIGludCBhcmdyZWcgPSAwOwogICAgaW50IGFyZ251 bTsKICAgIGludCBzdGFja19vZmZzZXQgPSA0OwpAQCAtMTExMiw3ICsxMTA4LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90aWM2eC10ZGVwLmMKICAgIENPUkVfQUREUiBmdW5j X2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsKICAgIGVudW0gYmZk X2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIHN0 cnVjdCB0eXBlICpmdW5jX3R5cGUgPSB2YWx1ZV90eXBlIChmdW5jdGlvbik7Ci1AQCAtOTI5LDcg KzkyOSw3IEBACitAQCAtOTI2LDcgKzkyNiw3IEBACiAgICAvKiBOb3cgbWFrZSBzcGFjZSBvbiB0 aGUgc3RhY2sgZm9yIHRoZSBhcmdzLiAgKi8KICAgIGZvciAoYXJnbnVtID0gMDsgYXJnbnVtIDwg bmFyZ3M7IGFyZ251bSsrKQogICAgICB7CkBAIC0xMTIxLDcgKzExMTcsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RpYzZ4LXRkZXAuYwogICAgICAgIGlmIChhcmdudW0gPj0g MTAgLSBhcmdyZWcpCiAgCXJlZmVyZW5jZXNfb2Zmc2V0ICs9IGxlbjsKICAgICAgICBzdGFja19v ZmZzZXQgKz0gbGVuOwotQEAgLTk0OCw3ICs5NDgsNyBAQAorQEAgLTk0NSw3ICs5NDUsNyBAQAog ICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBh cmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRl ZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC0xMTMwLDcgKzExMjYsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL3RpYzZ4LXRkZXAuYwogICAgICAgIGVudW0gdHlwZV9jb2RlIHR5 cGVjb2RlID0gVFlQRV9DT0RFIChhcmdfdHlwZSk7CiAgCiAgICAgICAgdmFsID0gdmFsdWVfY29u dGVudHMgKGFyZyk7Ci1AQCAtMTEwOCw3ICsxMTA4LDggQEAKK0BAIC0xMTA1LDcgKzExMDUsOCBA QAogIAkgICAgfQogIAkgIGVsc2UKICAJICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19M SU5FX18sCkBAIC0xMTQwLDIzICsxMTM2LDIzIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvdGljNngtdGRlcC5jCiAgCiAgCSAgYWRkciA9IHNwICsgc3RhY2tfb2Zmc2V0OwogIAkg IHdyaXRlX21lbW9yeSAoYWRkciwgdmFsLCBsZW4pOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi90aWxlZ3gtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rp bGVneC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dk Yi90aWxlZ3gtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjQwODE0MjU3ICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoy MC4zMzI4MzQ4NTEgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90aWxl Z3gtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDM0NTAzMDcyICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1 MTk5NDEgKzAyMDAKIEBAIC0yODgsNyArMjg4LDcgQEAKICAgIENPUkVfQUREUiBzdGFja19kZXN0 ID0gc3A7CiAgICBpbnQgYXJncmVnID0gVElMRUdYX1IwX1JFR05VTTsKICAgIGludCBpLCBqOwot LSAgaW50IHR5cGVsZW4sIHNsYWNrbGVuLCBhbGlnbmxlbjsKLSsgIExPTkdFU1QgdHlwZWxlbiwg c2xhY2tsZW4sIGFsaWdubGVuOworLSAgaW50IHR5cGVsZW4sIHNsYWNrbGVuOworKyAgTE9OR0VT VCB0eXBlbGVuLCBzbGFja2xlbjsKICAgIHN0YXRpYyBjb25zdCBnZGJfYnl0ZSBmb3VyX3plcm9f d29yZHNbMTZdID0geyAwIH07CiAgCiAgICAvKiBJZiBzdHJ1Y3RfcmV0dXJuIGlzIDEsIHRoZW4g dGhlIHN0cnVjdCByZXR1cm4gYWRkcmVzcyB3aWxsCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL3Y4NTAtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Y4NTAt dGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdjg1 MC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42NDA4MTQyNTcgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvdjg1MC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzI4MzQ4 NTEgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92ODUwLXRkZXAuYwky MDE2LTA3LTE2IDE0OjM1OjQ1LjQzNDUwMzA3MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi92ODUwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUzMDUxOTk0MSArMDIwMAog QEAgLTEwMTksNyArMTAxOSw3IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgYXJncmVnOwpAQCAtMTE3NSwxMCAr MTE3MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Y4NTAtdGRlcC5jCiAg ICAgICAgZ2RiX2J5dGUgKnZhbDsKICAgICAgICBnZGJfYnl0ZSB2YWxidWZbdjg1MF9yZWdfc2l6 ZV07CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZheC10ZGVwLmMKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmF4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjox Ni42NDE4MTQyNjMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmF4LXRkZXAu YwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMzMzgzNDg1NiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzU1MDMwODAg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmF4LXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ3LjUzMDUxOTk0MSArMDIwMAogQEAgLTExMSw3ICsxMTEsNyBAQAogICAgc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOwogICAgZW51 bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwpA QCAtMTE5NywxMCArMTE5MywxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Zh eC10ZGVwLmMKICAKICAgICAgICBzcCAtPSAobGVuICsgMykgJiB+MzsKICAgICAgICBjb3VudCAr PSAobGVuICsgMykgLyA0OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi94c3Rvcm15 MTYtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3hzdG9ybXkxNi10ZGVw LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi94c3Rvcm15 MTYtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjQxODE0MjYzICswMTAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4z MzM4MzQ4NTYgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi94c3Rvcm15 MTYtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDM1NTAzMDgwICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41 MzA1MTk5NDEgKzAyMDAKIEBAIC0yMzMsOCArMjMzLDkgQEAKICAgIGVudW0gYmZkX2VuZGlhbiBi eXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBz dGFja19kZXN0ID0gc3A7CkBAIC0xMjEzLDEwICsxMjA5LDEwIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIveHN0b3JteTE2LXRkZXAuYwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsK ICAgIGdkYl9ieXRlIGJ1Zlt4c3Rvcm15MTZfcGNfc2l6ZV07CiAgCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3h0ZW5zYS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIveHRlbnNhLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2 Lm9yaWcvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42NDM4MTQyNzQgKzAx MDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIveHRlbnNhLXRkZXAuYwkyMDE2LTAxLTA4 IDE5OjE2OjIwLjMzNDgzNDg2MiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL3h0ZW5zYS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40Mzc1MDMwOTYgKzAyMDAKKysr KyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveHRlbnNhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1 OjQ3LjUzMTUxOTk0OSArMDIwMAogQEAgLTE2MzgsOCArMTYzOCw3IEBACiAgCiAgICAgICAgaWYg KGxlbiA+IChjYWxsc2l6ZSA+IDggPyA4IDogMTYpKQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjVvZjI1LnBh dGNoCmluZGV4IDIwZGI5MTUuLmVmNWUwNDggMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJp dHBvcy0yNW9mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTI1b2YyNS5wYXRj aApAQCAtNDcsMTEgKzQ3LDExIEBAIENvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50 OyBmaWxlbmFtZT1mNzctYm91bmRzLnBhdGNoCiAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvZi1sYW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZi1sYW5nLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLWxhbmcuaAky MDE1LTExLTAyIDIxOjI1OjE0LjIzMzE2MTA5NyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9mLWxhbmcuaAkyMDE1LTExLTAyIDIxOjI1OjIyLjQwNDIxNDg2MCArMDEwMAotQEAg LTYyLDkgKzYyLDkgQEAgc3RydWN0IGNvbW1vbl9ibG9jaworLS0tIGdkYi03LjExLjUwLjIwMTYw NjMwLm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTYtMDctMTYgMTA6NTY6MTEuNjgyNzYyNzIyICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2YtbGFuZy5oCTIwMTYtMDctMTYgMTA6NTY6 MTUuNTU0NzkzNzA0ICswMjAwCitAQCAtNDksOSArNDksOSBAQAogICAgc3RydWN0IHN5bWJvbCAq Y29udGVudHNbMV07CiAgfTsKICAKQEAgLTYzLDM4ICs2MywzOCBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5oCiAgCiAgZXh0ZXJuIHZvaWQgZjc3X2dldF9keW5hbWlj X2FycmF5X2xlbmd0aCAoc3RydWN0IHR5cGUgKik7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2YtdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv Zi10eXBlcHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL2YtdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyNToxNC4yMzQxNjExMDQgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjI1 OjIyLjQwNDIxNDg2MCArMDEwMAotQEAgLTE3MSw3ICsxNzEsNyBAQCBmX3R5cGVfcHJpbnRfdmFy c3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9n ZGIvZi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU2OjExLjY4Mjc2MjcyMiArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLXR5cGVwcmludC5jCTIwMTYtMDctMTYgMTA6NTY6 NDMuNzk1MDE5NjYwICswMjAwCitAQCAtMTQ3LDcgKzE0Nyw3IEBACiAgCQkJICAgICBpbnQgc2hv dywgaW50IHBhc3NlZF9hX3B0ciwgaW50IGRlbWFuZ2xlZF9hcmdzLAotIAkJCSAgICAgaW50IGFy cmF5cHJpbnRfcmVjdXJzZV9sZXZlbCkKKyAJCQkgICAgIGludCBhcnJheXByaW50X3JlY3Vyc2Vf bGV2ZWwsIGludCBwcmludF9yYW5rX29ubHkpCiAgewogLSAgaW50IHVwcGVyX2JvdW5kLCBsb3dl cl9ib3VuZDsKICsgIExPTkdFU1QgdXBwZXJfYm91bmQsIGxvd2VyX2JvdW5kOwogIAogICAgLyog Tm8gc3RhdGljIHZhcmlhYmxlcyBhcmUgcGVybWl0dGVkIGFzIGFuIGVycm9yIGNhbGwgbWF5IG9j Y3VyIGR1cmluZwogICAgICAgZXhlY3V0aW9uIG9mIHRoaXMgZnVuY3Rpb24uICAqLwotQEAgLTIw NCw3ICsyMDQsNyBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCi0g Ci0gICAgICAgICAgIGxvd2VyX2JvdW5kID0gZjc3X2dldF9sb3dlcmJvdW5kICh0eXBlKTsKLSAg ICAgICAgICAgaWYgKGxvd2VyX2JvdW5kICE9IDEpCS8qIE5vdCB0aGUgZGVmYXVsdC4gICovCi0t ICAgICAgICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQ6IiwgbG93ZXJfYm91bmQp OwotKyAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVzOiIsIHBsb25nZXN0 IChsb3dlcl9ib3VuZCkpOworQEAgLTE5NCw3ICsxOTQsNyBAQAorIAl7CisgCSAgbG93ZXJfYm91 bmQgPSBmNzdfZ2V0X2xvd2VyYm91bmQgKHR5cGUpOworIAkgIGlmIChsb3dlcl9ib3VuZCAhPSAx KQkvKiBOb3QgdGhlIGRlZmF1bHQuICAqLworLQkgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFt LCAiJWQ6IiwgbG93ZXJfYm91bmQpOworKwkgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAi JXM6IiwgcGxvbmdlc3QgKGxvd2VyX2JvdW5kKSk7CiAgCi0gICAgICAgICAgIC8qIE1ha2Ugc3Vy ZSB0aGF0LCBpZiB3ZSBoYXZlIGFuIGFzc3VtZWQgc2l6ZSBhcnJheSwgd2UKLSAgICAgICAgICAg ICAgcHJpbnQgb3V0IGEgd2FybmluZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91bmQgYXMgJyonLiAg Ki8KLUBAIC0yMTQsNyArMjE0LDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1 Y3QgdHlwZQotICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgewotICAgICAgICAgICAgICAg dXBwZXJfYm91bmQgPSBmNzdfZ2V0X3VwcGVyYm91bmQgKHR5cGUpOwotLSAgICAgICAgICAgICAg ZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBlcl9ib3VuZCk7Ci0rICAgICAgICAg ICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlcyIsIHBsb25nZXN0ICh1cHBlcl9ib3Vu ZCkpOwotICAgICAgICAgICAgIH0KKyAJICAvKiBNYWtlIHN1cmUgdGhhdCwgaWYgd2UgaGF2ZSBh biBhc3N1bWVkIHNpemUgYXJyYXksIHdlCisgCSAgICAgcHJpbnQgb3V0IGEgd2FybmluZyBhbmQg cHJpbnQgdGhlIHVwcGVyYm91bmQgYXMgJyonLiAgKi8KK0BAIC0yMDQsNyArMjA0LDcgQEAKKyAJ ICBlbHNlCisgCSAgICB7CisgCSAgICAgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5k ICh0eXBlKTsKKy0JICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBlcl9i b3VuZCk7CisrCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVzIiwgcGxvbmdlc3Qg KHVwcGVyX2JvdW5kKSk7CisgCSAgICB9CisgCX0KICAKLSAgICAgICAgICAgaWYgKFRZUEVfQ09E RSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpICE9IFRZUEVfQ09ERV9BUlJBWSkKLUBAIC0yODMs NyArMjgzLDcgQEAgdm9pZAorQEAgLTI3Niw3ICsyNzYsNyBAQAogIGZfdHlwZV9wcmludF9iYXNl IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHNob3csCiAg CQkgICBpbnQgbGV2ZWwpCiAgewpAQCAtMTAzLDcgKzEwMyw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZi10eXBlcHJpbnQuYwogICAgaW50IGluZGV4OwogIAogICAgUVVJVDsK LUBAIC0zNjUsNyArMzY1LDcgQEAgZl90eXBlX3ByaW50X2Jhc2UgKHN0cnVjdCB0eXBlICp0eXBl LCBzdAorQEAgLTM1OCw3ICszNTgsNyBAQAogICAgICAgIGVsc2UKICAJewogIAkgIHVwcGVyX2Jv dW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKQEAgLTExMiwxMSArMTEyLDExIEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi10eXBlcHJpbnQuYwogIAl9CiAgICAgICAg YnJlYWs7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLXZhbHByaW50LmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNS0xMS0w MiAyMToyNToxNC4yMzQxNjExMDQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Zi12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjU6MjIuNDA1MjE0ODY3ICswMTAwCi1AQCAtNDMs NyArNDMsNyBAQCBMT05HRVNUIGY3N19hcnJheV9vZmZzZXRfdGJsW01BWF9GT1JUUkFOCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTYtMDctMTYgMTA6 NTY6MTEuNjgyNzYyNzIyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2YtdmFs cHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU2OjE1LjU1NDc5MzcwNCArMDIwMAorQEAgLTQzLDcgKzQz LDcgQEAKICAvKiBBcnJheSB3aGljaCBob2xkcyBvZmZzZXRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0 IGEgcm93J3MgZWxlbWVudHMKICAgICBmb3IgYSBnaXZlbiBhcnJheS4gIEFycmF5IGFsc28gaG9s ZHMgdGhlIHNpemUgb2YgZWFjaCBzdWJhcnJheS4gICovCiAgCkBAIC0xMjUsNyArMTI1LDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKICBmNzdfZ2V0X2xv d2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIGlmIChUWVBFX0FSUkFZX0xPV0VS X0JPVU5EX0lTX1VOREVGSU5FRCAodHlwZSkpCi1AQCAtNTIsNyArNTIsNyBAQCBmNzdfZ2V0X2xv d2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTUyLDcgKzUyLDcgQEAKICAgIHJldHVy biBUWVBFX0FSUkFZX0xPV0VSX0JPVU5EX1ZBTFVFICh0eXBlKTsKICB9CiAgCgpkaWZmIC0tZ2l0 IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2YWx1ZS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0 LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2gKaW5kZXggMzE5NzhlYy4uODAyNWUyZCAxMDA2NDQKLS0t IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2YWx1ZS5wYXRjaAorKysgYi9nZGItcmhiejc5 NTQyNC1iaXRwb3MtbGF6eXZhbHVlLnBhdGNoCkBAIC0xLDE5ICsxLDcgQEAKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyMi9nZGIvdmFsdWUuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDIyLm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNS0xMC0yNCAyMzoxNzowNC4wNDIxNDM2Mjgg KzAyMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmFsdWUuYwkyMDE1LTEwLTI0IDIz OjE3OjI3LjY4NzMwMDY4OSArMDIwMAotQEAgLTkzNCw3ICs5MzQsNiBAQCBhbGxvY2F0ZV92YWx1 ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSAgICAgIGRlc2NyaXB0aW9uIGNvcnJlY3RseS4g ICovCi0gICBjaGVja190eXBlZGVmICh0eXBlKTsKLSAKLS0gIHVsb25nZXN0X2ZpdHNfaG9zdF9v cl9lcnJvciAoVFlQRV9MRU5HVEggKHR5cGUpKTsKLSAgIHZhbCA9IFhDTkVXIChzdHJ1Y3QgdmFs dWUpOwotICAgdmFsLT5jb250ZW50cyA9IE5VTEw7Ci0gICB2YWwtPm5leHQgPSBhbGxfdmFsdWVz OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9u Z2VzdC10eXBlcy02NGJpdC5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0 LmV4cAkyMDE1LTEwLTI0IDIzOjE3OjA0LjA0MjE0MzYyOCArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5leHAJ MjAxNi0wNy0wMyAxNTowMDo1Ny42MTczNDc4NTAgKzAyMDAKIEBAIC0wLDAgKzEsNTkgQEAKICsj IFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC00 NSw4ICszMyw4IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuZXhwCiArCiArIyBUZXN0IDY0LWJpdCBmaWxlIGZp cnN0IGFzIGl0IGlzIG5vdCBjb21waWxlZCBzbyBpdHMgY29tcGlsYXRpb24gbmV2ZXIgZmFpbHMu CiArCi0rc2V0IGZpbGU2NGJpdGJ6MnV1ICR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0t NjRiaXQuYnoyLnV1Ci0rc2V0IGZpbGU2NGJpdCAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZp bGV9LTY0Yml0Cisrc2V0IGZpbGU2NGJpdGJ6MnV1ICR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0 ZmlsZX0uYnoyLnV1Cisrc2V0IGZpbGU2NGJpdCAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZp bGV9CiArCiAraWYge1tjYXRjaCAic3lzdGVtIFwidXVkZWNvZGUgLW8gLSAke2ZpbGU2NGJpdGJ6 MnV1fSB8IGJ6aXAyIC1kYyA+JHtmaWxlNjRiaXR9XCIiXSAhPSAwfSB7CiArICAgIHVudGVzdGVk ICJmYWlsZWQgdXVkZWNvZGUgb3IgYnppcDIiCkBAIC02MCw3ICs0OCw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRi aXQuZXhwCiArCiArY2xlYW5fcmVzdGFydCAke2ZpbGU2NGJpdH0KICsKLSsjaWYgeyBbcHJlcGFy ZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0tNjRiaXQgJHNyY2ZpbGUy IHtub2RlYnVnfV0gfSB7CisrI2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0u ZXhwICR7dGVzdGZpbGV9ICRzcmNmaWxlMiB7bm9kZWJ1Z31dIH0gewogKyMgICAgcmV0dXJuIC0x CiArI30KICsKQEAgLTc0LDEwICs2MiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmV4cAogK30KICsKICt0 ZXN0ICJuYXRpdmUiCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBl cy02NGJpdC5jCTIwMTUtMTAtMjQgMjM6MTc6MDQuMDQyMTQzNjI4ICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0 LmMJMjAxNi0wNy0wMyAxNTowMDo1Ny42MTgzNDc4NTkgKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAK ICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpA QCAtMTA3LDEwICs5NSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMKICt7CiArICByZXR1cm4gMDsKICt9 Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25n ZXN0LXR5cGVzLTY0Yml0LlMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuUwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUw LjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5TCTIw MTUtMTAtMjQgMjM6MTc6MDQuMDQyMTQzNjI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LlMJMjAxNi0wNy0w MyAxNTowMDo1Ny42MTgzNDc4NTkgKzAyMDAKIEBAIC0wLDAgKzEsMjQ5IEBACiArLyogVGhpcyB0 ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTM2MSwxMCAr MzQ5LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuUwogKwkuc3RyaW5nCSJjaGFyIgogKwkuaWRlbnQJIkdD QzogKEdOVSkgNC43LjMgMjAxMjExMDkgKHByZXJlbGVhc2UpIgogKwkuc2VjdGlvbgkubm90ZS5H TlUtc3RhY2ssIiIsQHByb2diaXRzCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6Mi51dQorSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJp dC5iejIudXUKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYnoyLnV1CTIwMTUtMTAtMjQgMjM6MTc6MDQuMDQy MTQzNjI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6Mi51dQkyMDE2LTA3LTAzIDE1OjAwOjU3LjYxODM0 Nzg1OSArMDIwMAogQEAgLTAsMCArMSw2NyBAQAogK2JlZ2luIDc1NSBnZGIuYmFzZS9sb25nZXN0 LXR5cGVzLTY0Yml0LmJ6MgogK00wRUlILjMlITYyOTM2PCdOI09IYCJHL19fX19fX19fXl9fX19f Xz9fWV9fX19fXy8vXTdTUUQ1J14vXyUKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLTA0b2Yy My1maXgucGF0Y2ggYi9nZGItdmxhLWludGVsLTA0b2YyMy1maXgucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDNiOGQ3N2EuLjAwMDAwMDAKLS0tIGEvZ2RiLXZsYS1pbnRlbC0w NG9mMjMtZml4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotUmU6IFtQQVRD SCAwNC8yM10gdmxhOiBtYWtlIGR5bmFtaWMgZm9ydHJhbiBhcnJheXMgZnVuY3Rpb25hbC4KLWh0 dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNC0wNi9tc2cwMDU3MC5odG1s Ci0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwotPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMS0w MyAyMDo0MTo0OC41NDM1MDQ5OTkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dmFsYXJpdGguYwkyMDE1LTExLTAzIDIwOjQ2OjM2Ljk5NTIzODg4OCArMDEwMAotQEAgLTE5Mywx MCArMTkzLDE3IEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICoKLSAg IHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJy YXkpKTsKLSAgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFS R0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLSAgIHVuc2lnbmVkIGludCBlbHRfc2l6ZSA9IHR5cGVf bGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7Ci0tICB1bnNpZ25lZCBpbnQgZWx0X29mZnMgPSBsb25n ZXN0X3RvX2ludCAoaW5kZXggLSBsb3dlcmJvdW5kKTsKLSsgIHVuc2lnbmVkIGludCBlbHRfb2Zm czsKLSAgIExPTkdFU1QgZWx0X3N0cmlkZSA9IFRZUEVfQllURV9TVFJJREUgKFRZUEVfSU5ERVhf VFlQRSAoYXJyYXlfdHlwZSkpOwotICAgc3RydWN0IHZhbHVlICp2OwotIAotKyAgaWYgKFRZUEVf Tk9UX0FTU09DSUFURUQgKGFycmF5X3R5cGUpKQotKyAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0 b3IgZWxlbWVudCAodmVjdG9yIG5vdCBhc3NvY2lhdGVkKSIpKTsKLSsgIGlmIChUWVBFX05PVF9B TExPQ0FURUQgKGFycmF5X3R5cGUpKQotKyAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxl bWVudCAodmVjdG9yIG5vdCBhbGxvY2F0ZWQpIikpOwotKwotKyAgZWx0X29mZnMgPSBsb25nZXN0 X3RvX2ludCAoaW5kZXggLSBsb3dlcmJvdW5kKTsKLSsKLSAgIGlmIChlbHRfc3RyaWRlID4gMCkK LSAgICAgZWx0X29mZnMgKj0gZWx0X3N0cmlkZTsKLSAgIGVsc2UgaWYgKGVsdF9zdHJpZGUgPCAw KQotQEAgLTIxMCwxNCArMjE3LDcgQEAgdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3Qg dmFsdWUgKgotIAotICAgaWYgKGluZGV4IDwgbG93ZXJib3VuZCB8fCAoIVRZUEVfQVJSQVlfVVBQ RVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90eXBlKQotIAkJCSAgICAgJiYgZWx0X29mZnMg Pj0gdHlwZV9sZW5ndGhfdW5pdHMgKGFycmF5X3R5cGUpKSkKLS0gICAgewotLSAgICAgIGlmICh0 eXBlX25vdF9hc3NvY2lhdGVkIChhcnJheV90eXBlKSkKLS0gICAgICAgIGVycm9yIChfKCJubyBz dWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFzc29jaWF0ZWQpIikpOwotLSAgICAgIGVs c2UgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAoYXJyYXlfdHlwZSkpCi0tICAgICAgICBlcnJvciAo Xygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCAodmVjdG9yIG5vdCBhbGxvY2F0ZWQpIikpOwotLSAg ICAgIGVsc2UKLS0gICAgICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IikpOwot LSAgICB9Ci0rICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IikpOwotIAotICAg aWYgKFZBTFVFX0xWQUwgKGFycmF5KSA9PSBsdmFsX21lbW9yeSAmJiB2YWx1ZV9sYXp5IChhcnJh eSkpCi0gICAgIHYgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5IChlbHRfdHlwZSk7CgpkaWZmIC0tZ2l0 IGEvZ2RiLXZsYS1pbnRlbC0xb2Y3LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC0xb2Y3LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1NzI5MjIKLS0tIC9kZXYvbnVsbAor KysgYi9nZGItdmxhLWludGVsLTFvZjcucGF0Y2gKQEAgLTAsMCArMSwxODAgQEAKK0Zyb20gMjZl MTU2ZDYyMjExY2E4NDU4ZmFhMzI2ZjIxOTQwZTlmYTE4YzhmZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IEJlcm5oYXJkIEhlY2tlbCA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4K K0RhdGU6IFR1ZSwgMTIgSnVsIDIwMTYgMDg6MTk6MzQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAx LzddIEZvcnRyYW46IFRlc3RzdWl0ZSwgZml4IGRpZmZlcmVuY2VzIGluIHR5cGUgbmFtaW5nLgor CitDb250aW51ZWQgb24gMGMxM2Y3ZTU1OWFmZTVmOTczYTU5MzExYjBlNDAxMjk2YzQ4ZDk2Ywor KGZvcnRyYW46IFRlc3RzdWl0ZSwgZml4IGRpZmZlcmVudCB0eXBlIG5hbWluZyBhY3Jvc3MgY29t cGlsZXJzKS4KKworMjAxNi0wNi0wOCAgQmVybmhhcmQgSGVja2VsICA8YmVybmhhcmQuaGVja2Vs QGludGVsLmNvbT4KKworZ2RiL1Rlc3RzdWl0ZS9DaGFuZ2Vsb2c6CisJKiBnZGIuZm9ydHJhbi92 bGEtdmFsdWUuZXhwOiBVc2UgdHlwZSBuYW1lcyBkZWZpbmVkIGluIGxpYmZvcnRyYW4uCisJKiBn ZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwOiBMaWtld2lzZS4KKwkqIGdkYi5taS9taS12bGEtZm9y dHJhbi5leHA6IExpa2V3aXNlLgorCitDaGFuZ2UtSWQ6IEk3ZWU5NDU4N2E5OTJhZGQyN2ZlYzc3 Yzc3MjZmOWE2OWM4ZmRmMzczCistLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12 YWx1ZS5leHAgfCAxMiArKysrKysrKy0tLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXIt Y2hpbGQtZi5leHAgfCAgNyArKystLS0tCisgZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZv cnRyYW4uZXhwIHwgMTggKysrKysrKysrKystLS0tLS0tCisgMyBmaWxlcyBjaGFuZ2VkLCAyMiBp bnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXZhbHVlLmV4cAoraW5kZXggMDk0NTE4MS4uMjc1ZjczOCAxMDA2NDQKKy0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwCitAQCAtMTQsNiArMTQsNyBAQAorICMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisgCisgc3RhbmRhcmRfdGVzdGZpbGUgInZsYS5mOTAiCisrbG9hZF9saWIgImZvcnRyYW4u ZXhwIgorIAorIGlmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVz dGZpbGV9ICR7c3JjZmlsZX0gXAorICAgICAge2RlYnVnIGY5MCBxdWlldH1dIH0geworQEAgLTI1 LDEyICsyNiwxNSBAQCBpZiAhW3J1bnRvX21haW5dIHsKKyAgICAgcmV0dXJuIC0xCisgfQorIAor KyMgRGVwZW5kaW5nIG9uIHRoZSBjb21waWxlciBiZWluZyB1c2VkLCB0aGUgdHlwZSBuYW1lcyBj YW4gYmUgcHJpbnRlZCBkaWZmZXJlbnRseS4KKytzZXQgcmVhbCBbZm9ydHJhbl9yZWFsNF0KKysK KyAjIFRyeSB0byBhY2Nlc3MgdmFsdWVzIGluIG5vbiBhbGxvY2F0ZWQgVkxBCisgZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtaW5pdCJdCisgZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgInZsYTEtaW5pdCIKKyBnZGJfdGVzdCAicHJpbnQgdmxhMSIgIiA9IDxub3Qg YWxsb2NhdGVkPiIgInByaW50IG5vbi1hbGxvY2F0ZWQgdmxhMSIKKyBnZGJfdGVzdCAicHJpbnQg JnZsYTEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggcmVhbFxcXChraW5kPTRcXFwpIFxc XCg8bm90IGFsbG9jYXRlZD5cXFwpXFxcKVxcXCkgJGhleCIgXAorKyAgIiA9IFxcXChQVFIgVE8g LT4gXFxcKCAkcmVhbCBcXFwoPG5vdCBhbGxvY2F0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKyAg ICJwcmludCBub24tYWxsb2NhdGVkICZ2bGExIgorIGdkYl90ZXN0ICJwcmludCB2bGExKDEsMSwx KSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYWxsb2NhdGVkXFxcKSIg XAorICAgInByaW50IG1lbWJlciBpbiBub24tYWxsb2NhdGVkIHZsYTEgKDEpIgorQEAgLTUxLDcg KzU1LDcgQEAgd2l0aF90aW1lb3V0X2ZhY3RvciAxNSB7CisgCSJzdGVwIG92ZXIgdmFsdWUgYXNz aWdubWVudCBvZiB2bGExIgorIH0KKyBnZGJfdGVzdCAicHJpbnQgJnZsYTEiIFwKKy0gICIgPSBc XFwoUFRSIFRPIC0+IFxcXCggcmVhbFxcXChraW5kPTRcXFwpIFxcXCgxMCwxMCwxMFxcXClcXFwp XFxcKSAkaGV4IiBcCisrICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoICRyZWFsIFxcXCgxMCwxMCwx MFxcXClcXFwpXFxcKSAkaGV4IiBcCisgICAicHJpbnQgYWxsb2NhdGVkICZ2bGExIgorIGdkYl90 ZXN0ICJwcmludCB2bGExKDMsIDYsIDkpIiAiID0gMTMxMSIgInByaW50IGFsbG9jYXRlZCB2bGEx KDMsNiw5KSIKKyBnZGJfdGVzdCAicHJpbnQgdmxhMSgxLCAzLCA4KSIgIiA9IDEzMTEiICJwcmlu dCBhbGxvY2F0ZWQgdmxhMSgxLDMsOCkiCitAQCAtNzEsNyArNzUsNyBAQCBnZGJfdGVzdCAicHJp bnQgdmxhMSg5LCA5LCA5KSIgIiA9IDk5OSIgXAorICMgVHJ5IHRvIGFjY2VzcyB2YWx1ZXMgaW4g dW5kZWZpbmVkIHBvaW50ZXIgdG8gVkxBIChkYW5nbGluZykKKyBnZGJfdGVzdCAicHJpbnQgcHZs YSIgIiA9IDxub3QgYXNzb2NpYXRlZD4iICJwcmludCB1bmRlZmluZWQgcHZsYSIKKyBnZGJfdGVz dCAicHJpbnQgJnB2bGEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggcmVhbFxcXChraW5k PTRcXFwpIFxcXCg8bm90IGFzc29jaWF0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKysgICIgPSBc XFwoUFRSIFRPIC0+IFxcXCggJHJlYWwgXFxcKDxub3QgYXNzb2NpYXRlZD5cXFwpXFxcKVxcXCkg JGhleCIgXAorICAgInByaW50IG5vbi1hc3NvY2lhdGVkICZwdmxhIgorIGdkYl90ZXN0ICJwcmlu dCBwdmxhKDEsIDMsIDgpIiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcXFwodmVjdG9yIG5vdCBh c3NvY2lhdGVkXFxcKSIgXAorICAgInByaW50IHVuZGVmaW5lZCBwdmxhKDEsMyw4KSIKK0BAIC04 MCw3ICs4NCw3IEBAIGdkYl90ZXN0ICJwcmludCBwdmxhKDEsIDMsIDgpIiAibm8gc3VjaCB2ZWN0 b3IgZWxlbWVudCBcXFwodmVjdG9yIG5vdCBhc3NvY2lhdGVkCisgZ2RiX2JyZWFrcG9pbnQgW2dk Yl9nZXRfbGluZV9udW1iZXIgInB2bGEtYXNzb2NpYXRlZCJdCisgZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRlZCIKKyBnZGJfdGVzdCAicHJpbnQgJnB2bGEiIFwKKy0g ICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggcmVhbFxcXChraW5kPTRcXFwpIFxcXCgxMCwxMCwxMFxc XClcXFwpXFxcKSAkaGV4IiBcCisrICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoICRyZWFsIFxcXCgx MCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCisgICAicHJpbnQgYXNzb2NpYXRlZCAmcHZsYSIK KyBnZGJfdGVzdCAicHJpbnQgcHZsYSgzLCA2LCA5KSIgIiA9IDQyIiAicHJpbnQgYXNzb2NpYXRl ZCBwdmxhKDMsNiw5KSIKKyBnZGJfdGVzdCAicHJpbnQgcHZsYSgxLCAzLCA4KSIgIiA9IDEwMDEi ICJwcmludCBhc3NvY2lhdGVkIHB2bGEoMSwzLDgpIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZh ci1jaGlsZC1mLmV4cAoraW5kZXggZjNlZDdjMi4uYmM0NGM2YiAxMDA2NDQKKy0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwCitAQCAtMTcsNiArMTcsNyBAQAorIAorIGxvYWRfbGli IG1pLXN1cHBvcnQuZXhwCisgc2V0IE1JRkxBR1MgIi1pPW1pIgorK2xvYWRfbGliICJmb3J0cmFu LmV4cCIKKyAKKyBpZiB7IFtza2lwX2ZvcnRyYW5fdGVzdHNdIH0geyByZXR1cm4gLTEgfQorIAor QEAgLTQwLDEwICs0MSw4IEBAIG1pX3J1bnRvIE1BSU5fXworIG1pX2NyZWF0ZV92YXJvYmogImFy cmF5IiAiYXJyYXkiICJjcmVhdGUgbG9jYWwgdmFyaWFibGUgYXJyYXkiCisgCisgCistIyBEZXBl bmRpbmcgb24gdGhlIGNvbXBpbGVyIHZlcnNpb24gYmVpbmcgdXNlZCwgdGhlIG5hbWUgb2YgdGhl IDQtYnl0ZSBpbnRlZ2VyCistIyBhbmQgcmVhbCB0eXBlcyBjYW4gYmUgcHJpbnRlZCBkaWZmZXJl bnRseS4gIEZvciBpbnN0YW5jZSwgZ2ZvcnRyYW4tNC4xIHVzZXMKKy0jICJpbnQ0IiB3aGVyZWFz IGdmb3J0cmFuLTQuMyB1c2VzICJpbnRlZ2VyKGtpbmQ9NCkiLgorLXNldCBpbnQ0ICIoaW50NHxp bnRlZ2VyXFwoa2luZD00XFwpKSIKKysjIERlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIgYmVpbmcg dXNlZCwgdGhlIHR5cGUgbmFtZXMgY2FuIGJlIHByaW50ZWQgZGlmZmVyZW50bHkuCisrc2V0IGlu dDQgW2ZvcnRyYW5faW50NF0KKyAKKyBzZXQgY2hpbGRyZW4gW2xpc3QgW2xpc3QgImFycmF5Li0x IiAiLTEiIDIgIiRpbnQ0IFxcKDJcXCkiXSBcCisgCQkgIFtsaXN0ICJhcnJheS4wIiAiMCIgMiAi JGludDQgXFwoMlxcKSJdIFwKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12 bGEtZm9ydHJhbi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAK K2luZGV4IDMzM2I3MWEuLjE3NzllYzAgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS12bGEtZm9ydHJhbi5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1m b3J0cmFuLmV4cAorQEAgLTE4LDYgKzE4LDcgQEAKKyAKKyBsb2FkX2xpYiBtaS1zdXBwb3J0LmV4 cAorIHNldCBNSUZMQUdTICItaT1taSIKKytsb2FkX2xpYiAiZm9ydHJhbi5leHAiCisgCisgZ2Ri X2V4aXQKKyBpZiBbbWlfZ2RiX3N0YXJ0XSB7CitAQCAtMzIsNiArMzMsOSBAQCBpZiB7IFtnZGJf Y29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhl Y3V0YWJsZSBcCisgICAgICByZXR1cm4gLTEKKyB9CisgCisrIyBEZXBlbmRpbmcgb24gdGhlIGNv bXBpbGVyIGJlaW5nIHVzZWQsIHRoZSB0eXBlIG5hbWVzIGNhbiBiZSBwcmludGVkIGRpZmZlcmVu dGx5LgorK3NldCByZWFsIFtmb3J0cmFuX3JlYWw0XQorKworIG1pX2RlbGV0ZV9icmVha3BvaW50 cworIG1pX2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorIG1pX2dkYl9sb2Fk ICR7YmluZmlsZX0KK0BAIC01OCw3ICs2Miw3IEBAIG1pX2dkYl90ZXN0ICI1MDMtdmFyLWV2YWx1 YXRlLWV4cHJlc3Npb24gdmxhMV9ub3RfYWxsb2NhdGVkIiBcCisgICAiNTAzXFxeZG9uZSx2YWx1 ZT1cIlxcXFswXFxcXVwiIiBcCisgICAiZXZhbCB2YXJpYWJsZSB2bGExX25vdF9hbGxvY2F0ZWQi CisgbWlfbGlzdF9hcnJheV92YXJvYmpfY2hpbGRyZW5fd2l0aF9pbmRleCAidmxhMV9ub3RfYWxs b2NhdGVkIiAiMCIgIjEiIFwKKy0gICAgInJlYWxcXFwoa2luZD00XFxcKSIgImdldCBjaGlsZHJl biBvZiB2bGExX25vdF9hbGxvY2F0ZWQiCisrICAgICIkcmVhbCIgImdldCBjaGlsZHJlbiBvZiB2 bGExX25vdF9hbGxvY2F0ZWQiCisgCisgCisgCitAQCAtNzEsMTAgKzc1LDEwIEBAIG1pX2V4cGVj dF9zdG9wICJicmVha3BvaW50LWhpdCIgInZsYSIgIiIgIi4qdmxhLmY5MCIgIiRicF9saW5lbm8i IFwKKyBtaV9nZGJfdGVzdCAiNTEwLWRhdGEtZXZhbHVhdGUtZXhwcmVzc2lvbiB2bGExIiBcCisg ICAiNTEwXFxeZG9uZSx2YWx1ZT1cIlxcKC4qXFwpXCIiICJldmFsdWF0ZSBhbGxvY2F0ZWQgdmxh IgorIAorLW1pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCB2bGExX2FsbG9jYXRlZCB2bGExICJyZWFs XFxcKGtpbmQ9NFxcXCkgXFxcKDVcXFwpIiBcCisrbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHZs YTFfYWxsb2NhdGVkIHZsYTEgIiRyZWFsIFxcXCg1XFxcKSIgXAorICAgImNyZWF0ZSBsb2NhbCB2 YXJpYWJsZSB2bGExX2FsbG9jYXRlZCIKKyBtaV9nZGJfdGVzdCAiNTExLXZhci1pbmZvLXR5cGUg dmxhMV9hbGxvY2F0ZWQiIFwKKy0gICI1MTFcXF5kb25lLHR5cGU9XCJyZWFsXFxcKGtpbmQ9NFxc XCkgXFxcKDVcXFwpXCIiIFwKKysgICI1MTFcXF5kb25lLHR5cGU9XCIkcmVhbCBcXFwoNVxcXClc IiIgXAorICAgImluZm8gdHlwZSB2YXJpYWJsZSB2bGExX2FsbG9jYXRlZCIKKyBtaV9nZGJfdGVz dCAiNTEyLXZhci1zaG93LWZvcm1hdCB2bGExX2FsbG9jYXRlZCIgXAorICAgIjUxMlxcXmRvbmUs Zm9ybWF0PVwibmF0dXJhbFwiIiBcCitAQCAtODMsNyArODcsNyBAQCBtaV9nZGJfdGVzdCAiNTEz LXZhci1ldmFsdWF0ZS1leHByZXNzaW9uIHZsYTFfYWxsb2NhdGVkIiBcCisgICAiNTEzXFxeZG9u ZSx2YWx1ZT1cIlxcXFs1XFxcXVwiIiBcCisgICAiZXZhbCB2YXJpYWJsZSB2bGExX2FsbG9jYXRl ZCIKKyBtaV9saXN0X2FycmF5X3Zhcm9ial9jaGlsZHJlbl93aXRoX2luZGV4ICJ2bGExX2FsbG9j YXRlZCIgIjUiICIxIiBcCistICAgICJyZWFsXFxcKGtpbmQ9NFxcXCkiICJnZXQgY2hpbGRyZW4g b2YgdmxhMV9hbGxvY2F0ZWQiCisrICAgICIkcmVhbCIgImdldCBjaGlsZHJlbiBvZiB2bGExX2Fs bG9jYXRlZCIKKyAKKyAKKyBzZXQgYnBfbGluZW5vIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEx LWZpbGxlZCJdCitAQCAtMTQ4LDcgKzE1Miw3IEBAIGdkYl9leHBlY3QgeworIAkgICAgIjU4M1xc XmRvbmUsdmFsdWU9XCJcXFxbMFxcXF1cIiIgXAorIAkgICAgImV2YWwgdmFyaWFibGUgcHZsYTJf bm90X2Fzc29jaWF0ZWQiCisgCW1pX2xpc3RfYXJyYXlfdmFyb2JqX2NoaWxkcmVuX3dpdGhfaW5k ZXggInB2bGEyX25vdF9hc3NvY2lhdGVkIiAiMCIgIjEiIFwKKy0JICAgICJyZWFsXFxcKGtpbmQ9 NFxcXCkiICJnZXQgY2hpbGRyZW4gb2YgcHZsYTJfbm90X2Fzc29jaWF0ZWQiCisrCSAgICAiJHJl YWwiICJnZXQgY2hpbGRyZW4gb2YgcHZsYTJfbm90X2Fzc29jaWF0ZWQiCisgICAgIH0KKyAgICAg LXJlICI1ODBcXF5lcnJvcixtc2c9XCJ2YWx1ZSBjb250ZW50cyB0b28gbGFyZ2UgXFwoXFswLTlc XSsgYnl0ZXNcXCkuKiR7bWlfZ2RiX3Byb21wdH0kIiB7CisgCSMgVW5kZWZpbmVkIGJlaGF2aW91 ciBpbiBnZm9ydHJhbi4KK0BAIC0xNzMsOSArMTc3LDkgQEAgbWlfZ2RiX3Rlc3QgIjU5MC1kYXRh LWV2YWx1YXRlLWV4cHJlc3Npb24gcHZsYTIiIFwKKyAgICJldmFsdWF0ZSBhc3NvY2lhdGVkIHZs YSIKKyAKKyBtaV9jcmVhdGVfdmFyb2JqX2NoZWNrZWQgcHZsYTJfYXNzb2NpYXRlZCBwdmxhMiBc CistICAicmVhbFxcXChraW5kPTRcXFwpIFxcXCg1LDJcXFwpIiAiY3JlYXRlIGxvY2FsIHZhcmlh YmxlIHB2bGEyX2Fzc29jaWF0ZWQiCisrICAiJHJlYWwgXFxcKDUsMlxcXCkiICJjcmVhdGUgbG9j YWwgdmFyaWFibGUgcHZsYTJfYXNzb2NpYXRlZCIKKyBtaV9nZGJfdGVzdCAiNTkxLXZhci1pbmZv LXR5cGUgcHZsYTJfYXNzb2NpYXRlZCIgXAorLSAgIjU5MVxcXmRvbmUsdHlwZT1cInJlYWxcXFwo a2luZD00XFxcKSBcXFwoNSwyXFxcKVwiIiBcCisrICAiNTkxXFxeZG9uZSx0eXBlPVwiJHJlYWwg XFxcKDUsMlxcXClcIiIgXAorICAgImluZm8gdHlwZSB2YXJpYWJsZSBwdmxhMl9hc3NvY2lhdGVk IgorIG1pX2dkYl90ZXN0ICI1OTItdmFyLXNob3ctZm9ybWF0IHB2bGEyX2Fzc29jaWF0ZWQiIFwK KyAgICI1OTJcXF5kb25lLGZvcm1hdD1cIm5hdHVyYWxcIiIgXAorLS0gCisyLjcuNAorCgpkaWZm IC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC0yb2Y3LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC0yb2Y3LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYTE3N2EKLS0tIC9kZXYv bnVsbAorKysgYi9nZGItdmxhLWludGVsLTJvZjcucGF0Y2gKQEAgLTAsMCArMSw3NSBAQAorRnJv bSBhODc5YjI1MDFlNjFlZTNkM2VmYWRiZGI2YjMzMjEyYjU3ZDNhMmUxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwu Y29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3ViamVjdDogW1BB VENIIDIvN10gRm9ydHJhbjogUmVzb2x2ZSBkeW5hbWljIHByb3BlcnRpZXMgb2YgcG9pbnRlciB0 eXBlcy4KKworSW4gRm9ydHJhbiBhIHBvaW50ZXIgbWF5IGhhdmUgYSBkeW5hbWljIGFzc29jaWF0 ZWQgcHJvcGVydHkuCisKKzIwMTYtMDctMDggIEJlcm5oYXJkIEhlY2tlbCAgPGJlcm5oYXJkLmhl Y2tlbEBpbnRlbC5jb20+CisKK2dkYi9DaGFuZ2Vsb2c6CisJKiBnZGJ0eXBlcy5jIChyZXNvbHZl X2R5bmFtaWNfdHlwZXNfaW50ZXJuYWwpOiBSZXNvbHZlIHBvaW50ZXIgdHlwZXMuCisJICAocmVz b2x2ZV9keW5hbWljX3BvaW50ZXIpOiBOZXcuCisKK0NoYW5nZS1JZDogSWU0YjlkNjM5N2NmYTA4 OWVlMmUwZGIwMmJlYjE4NDE1YTc1MWMxYzAKKy0tLQorIGdkYi9nZGJ0eXBlcy5jIHwgMjkgKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIv Z2RidHlwZXMuYworaW5kZXggZWM1YzE3YS4uYjUzZTY0OSAxMDA2NDQKKy0tLSBhL2dkYi9nZGJ0 eXBlcy5jCisrKysgYi9nZGIvZ2RidHlwZXMuYworQEAgLTE4MDYsNyArMTgwNiw4IEBAIGlzX2R5 bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCisg ICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodHlwZSk7CisgCisgICAvKiBXZSBvbmx5IHdhbnQgdG8g cmVjb2duaXplIHJlZmVyZW5jZXMgYXQgdGhlIG91dGVybW9zdCBsZXZlbC4gICovCistICBpZiAo dG9wX2xldmVsICYmIFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1JFRikKKysgIGlmICh0 b3BfbGV2ZWwgJiYKKysgICAgICAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUkVGIHx8 IFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1BUUikpCisgICAgIHR5cGUgPSBjaGVja190 eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSk7CisgCisgICAvKiBUeXBlcyB0aGF0IGhh dmUgYSBkeW5hbWljIFRZUEVfREFUQV9MT0NBVElPTiBhcmUgY29uc2lkZXJlZAorQEAgLTIxMDUs NiArMjEwNiwyOCBAQCByZXNvbHZlX2R5bmFtaWNfc3RydWN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwK KyAgIHJldHVybiByZXNvbHZlZF90eXBlOworIH0KKyAKKysvKiBXb3JrZXIgZm9yIHBvaW50ZXIg dHlwZXMuICAqLworKworK3N0YXRpYyBzdHJ1Y3QgdHlwZSAqCisrcmVzb2x2ZV9keW5hbWljX3Bv aW50ZXIgKHN0cnVjdCB0eXBlICp0eXBlLAorKwkJCSBzdHJ1Y3QgcHJvcGVydHlfYWRkcl9pbmZv ICphZGRyX3N0YWNrKQorK3sKKysgIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3A7CisrICBDT1JF X0FERFIgdmFsdWU7CisrCisrICB0eXBlID0gY29weV90eXBlICh0eXBlKTsKKysKKysgIC8qIFJl c29sdmUgYXNzb2NpYXRlZCBwcm9wZXJ0eS4gICovCisrICBwcm9wID0gVFlQRV9BU1NPQ0lBVEVE X1BST1AgKHR5cGUpOworKyAgaWYgKHByb3AgIT0gTlVMTCAmJiBkd2FyZjJfZXZhbHVhdGVfcHJv cGVydHkgKHByb3AsIE5VTEwsIGFkZHJfc3RhY2ssICZ2YWx1ZSkpCisrICAgIHsKKysgICAgICBU WVBFX0RZTl9QUk9QX0FERFIgKHByb3ApID0gdmFsdWU7CisrICAgICAgVFlQRV9EWU5fUFJPUF9L SU5EIChwcm9wKSA9IFBST1BfQ09OU1Q7CisrICAgIH0KKysKKysgIHJldHVybiB0eXBlOworK30K KysKKyAvKiBXb3JrZXIgZm9yIHJlc29sdmVkX2R5bmFtaWNfdHlwZS4gICovCisgCisgc3RhdGlj IHN0cnVjdCB0eXBlICoKK0BAIC0yMTUzLDYgKzIxNzYsMTAgQEAgcmVzb2x2ZV9keW5hbWljX3R5 cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLAorIAkgICAgYnJlYWs7CisgCSAgfQorIAor KyAgICAgICAgY2FzZSBUWVBFX0NPREVfUFRSOgorKyAJICByZXNvbHZlZF90eXBlID0gcmVzb2x2 ZV9keW5hbWljX3BvaW50ZXIgKHR5cGUsIGFkZHJfc3RhY2spOworKyAJICBicmVhazsKKysKKyAJ Y2FzZSBUWVBFX0NPREVfQVJSQVk6CisgCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1p Y19hcnJheSAodHlwZSwgYWRkcl9zdGFjayk7CisgCSAgYnJlYWs7CistLSAKKzIuNy40CisKCmRp ZmYgLS1naXQgYS9nZGItdmxhLWludGVsLTNvZjcucGF0Y2ggYi9nZGItdmxhLWludGVsLTNvZjcu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA5NTQwNAotLS0gL2Rl di9udWxsCisrKyBiL2dkYi12bGEtaW50ZWwtM29mNy5wYXRjaApAQCAtMCwwICsxLDExMyBAQAor RnJvbSBkMmZkNWZlYTJjMDYwNTJjNTNkOTliZmEyNWZkYWVkOWNmNWRkMjE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50 ZWwuY29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3ViamVjdDog W1BBVENIIDMvN10gVHlwZXByaW50OiBSZXNvbHZlIGFueSBkeW5hbWljIHRhcmdldCB0eXBlIG9m IGEgcG9pbnRlci4KKworQmVmb3JlIGNvbnRpbnVpbmcgd2l0aCBsYW5ndWFnZSBzcGVjaWZpYyB0 eXBlIHByaW50aW5nCit3ZSBoYXZlIHRvIHJlc29sdmUgdGhlIHRhcmdldCB0eXBlIG9mIGEgcG9p bnRlcgorYXMgd2UgbWlnaHQgd2FubmEgcHJpbnQgbW9yZSBkZXRhaWxzIG9mIHRoZSB0YXJnZXQK K2xpa2UgdGhlIGRpbWVuc2lvbiBvZiBhbiBhcnJheS4gV2UgaGF2ZSB0byByZXNvbHZlIGl0IGhl cmUKK2FzIHdlIGRvbid0IGhhdmUgYW55IGFkZHJlc3MgaW5mb3JtYXRpb24gbGF0ZXIgb24uCisK KzIwMTYtMDctMDggIEJlcm5oYXJkIEhlY2tlbCAgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+ CisKK2dkYi9DaGFuZ2Vsb2c6CisJKiB0eXBlcHJpbnQuYyAod2hhdGlzX2V4cCk6IFJlc29sdmUg ZHluYW1pYyB0YXJnZXQgdHlwZQorCSAgb2YgcG9pbnRlcnMuCisKK2dkYi9UZXN0c3VpdGUvQ2hh bmdlbG9nOgorCSogZ2RiLmNwL3ZsYS1jeHguY2M6IEFkZGVkIHBvaW50ZXIgdG8gZHluYW1pYyB0 eXBlLgorCSogZ2RiLmNwL3ZsYS1jeHguZXhwOiBUZXN0IHBvaW50ZXIgdG8gZHluYW1pYyB0eXBl LgorCitDaGFuZ2UtSWQ6IElkZmYwZDZkZDBlYWIzMTI1YjQ1ZDQ3MGExMmI1ZTY2YjM5MmU0MmMz CistLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmNjICB8ICA5ICsrKysrKysrKwor IGdkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguZXhwIHwgIDUgKysrKysKKyBnZGIvdHlwZXBy aW50LmMgICAgICAgICAgICAgICAgICB8IDE5ICsrKysrKysrKysrKysrKysrKysKKyAzIGZpbGVz IGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL3ZsYS1jeHguY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmNjCitpbmRl eCBhMWZkNTEwLi41ZjhmOGFiIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Avdmxh LWN4eC5jYworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYworQEAgLTE1LDYg KzE1LDEwIEBACisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisgCisrZXh0ZXJu ICJDIiB7CisrI2luY2x1ZGUgPHN0ZGRlZi5oPgorK30KKysKKyBzdHJ1Y3QgY29udGFpbmVyOwor IAorIHN0cnVjdCBlbGVtZW50CitAQCAtNDAsMTEgKzQ0LDE2IEBAIGludCBtYWluKGludCBhcmdj LCBjaGFyICoqYXJndikKKyAgIHR5cGVkZWYgdHlwZW9mICh2bGEpICZ2bGFyZWZ0eXBlZGVmOwor ICAgdmxhcmVmdHlwZWRlZiB2bGFyZWYyICh2bGEpOworICAgY29udGFpbmVyIGM7CisrICB0eXBl b2YgKHZsYSkgKnB0ciA9IE5VTEw7CisrCisrICAvLyBCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50 CisrICBwdHIgPSAmdmxhOworIAorICAgZm9yIChpbnQgaSA9IDA7IGkgPCB6OyArK2kpCisgICAg IHZsYVtpXSA9IDUgKyAyICogaTsKKyAKKyAgIC8vIHZsYXNfZmlsbGVkCisgICB2bGFbMF0gPSAy ICogdmxhWzBdOworKworICAgcmV0dXJuIHZsYVsyXTsKKyB9CitkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4 LmV4cAoraW5kZXggZjYyMjRkYy4uYmFiZGZiNyAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL3ZsYS1jeHguZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4 cAorQEAgLTIzLDYgKzIzLDEwIEBAIGlmICFbcnVudG9fbWFpbl0geworICAgICByZXR1cm4gLTEK KyB9CisgCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJlZm9yZSBwb2lu dGVyIGFzc2lnbm1lbnQiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJCZWZvcmUgcG9p bnRlciBhc3NpZ25tZW50IgorK2dkYl90ZXN0ICJwdHlwZSBwdHIiICJpbnQgXFwoXFwqXFwpXFxc W3ZhcmlhYmxlIGxlbmd0aFxcXF0iICJwdHlwZSBwdHIsIEJlZm9yZSBwb2ludGVyIGFzc2lnbm1l bnQiCisrCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYXNfZmlsbGVk Il0KKyBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxhc19maWxsZWQiCisgCitAQCAtMzMs MyArMzcsNCBAQCBnZGJfdGVzdCAicHJpbnQgdmxhcmVmIiAiID0gXFwoaW50IFxcKCZcXClcXFxb M1xcXF1cXCkgQCRoZXg6IFxcezUsIDcsIDlcXH0iCisgIyBidWcgYmVpbmcgdGVzdGVkLCBpdCdz IGJldHRlciBub3QgdG8gZGVwZW5kIG9uIHRoZSBleGFjdCBzcGVsbGluZy4KKyBnZGJfdGVzdCAi cHJpbnQgdmxhcmVmMiIgIiA9IFxcKC4qXFwpIEAkaGV4OiBcXHs1LCA3LCA5XFx9IgorIGdkYl90 ZXN0ICJwcmludCBjIiAiID0gXFx7ZSA9IFxce2MgPSBAJGhleFxcfVxcfSIKKytnZGJfdGVzdCAi cHR5cGUgcHRyIiAiaW50IFxcKFxcKlxcKVxcXFszXFxcXSIKK2RpZmYgLS1naXQgYS9nZGIvdHlw ZXByaW50LmMgYi9nZGIvdHlwZXByaW50LmMKK2luZGV4IGU3NzUxM2UuLmUzZDg0YzcgMTAwNjQ0 CistLS0gYS9nZGIvdHlwZXByaW50LmMKKysrKyBiL2dkYi90eXBlcHJpbnQuYworQEAgLTQ4NSw2 ICs0ODUsMjUgQEAgd2hhdGlzX2V4cCAoY2hhciAqZXhwLCBpbnQgc2hvdykKKyAgICAgICBwcmlu dGZfZmlsdGVyZWQgKCIgKi9cbiIpOyAgICAKKyAgICAgfQorIAorKyAgLyogUmVzb2x2ZSBhbnkg ZHluYW1pYyB0YXJnZXQgdHlwZSwgYXMgd2UgbWlnaHQgcHJpbnQKKysgICAgIGFkZGl0aW9uYWwg aW5mb3JtYXRpb24gYWJvdXQgdGhlIHRhcmdldC4KKysgICAgIEZvciBleGFtcGxlLCBpbiBGb3J0 cmFuIGFuZCBDIHdlIGFyZSBwcmludGluZyB0aGUgZGltZW5zaW9uIG9mIHRoZQorKyAgICAgZHlu YW1pYyBhcnJheSB0aGUgcG9pbnRlciBpcyBwb2ludGluZyB0by4gICovCisrICBpZiAoVFlQRV9D T0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSCisrICAgICAgJiYgaXNfZHluYW1pY190eXBlICh0 eXBlKSA9PSAxKQorKyAgICB7CisrICAgICAgQ09SRV9BRERSIGFkZHI7CisrICAgICAgaWYgKE5V TEwgIT0gVFlQRV9EQVRBX0xPQ0FUSU9OIChUWVBFX1RBUkdFVF9UWVBFKHR5cGUpKSkKKysJYWRk ciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7CisrICAgICAgZWxzZQorKwlhZGRyID0gdmFsdWVfYXNf YWRkcmVzcyAodmFsKTsKKysKKysgICAgICBpZiAoYWRkciAhPSAwCisrCSAgJiYgdHlwZV9ub3Rf YXNzb2NpYXRlZCAodHlwZSkgPT0gMCkKKysJVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkgPSByZXNv bHZlX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksCisrCQkJCQkJCU5VTEws IGFkZHIpOworKyAgICB9CisrCisgICBMQV9QUklOVF9UWVBFICh0eXBlLCAiIiwgZ2RiX3N0ZG91 dCwgc2hvdywgMCwgJmZsYWdzKTsKKyAgIHByaW50Zl9maWx0ZXJlZCAoIlxuIik7CisgCistLSAK KzIuNy40CisKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLTRvZjcucGF0Y2ggYi9nZGItdmxh LWludGVsLTRvZjcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJk Y2EzNQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12bGEtaW50ZWwtNG9mNy5wYXRjaApAQCAtMCww ICsxLDUwOCBAQAorRnJvbSBmNjM3ODJkMjVlYmQ1OTNjNGM0NjY5ZDRjMzk0YTI3MDZmMTVlNjYw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFy ZC5oZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIw MAorU3ViamVjdDogW1BBVENIIDQvN10gRm9ydHJhbjogVHlwZXByaW50LCBmaXggZGFuZ2xpbmcg dHlwZXMuCisKK1Nob3cgdGhlIHR5cGUgb2Ygbm90LWFsbG9jYXRlZCBhbmQvb3Igbm90LWFzc29j aWF0ZWQgdHlwZXMKK2FzIHRoaXMgaXMga25vd24uICBGb3IgYXJyYXkgdHlwZXMgYW5kIHBvaW50 ZXIgdG8gYXJyYXkgdHlwZXMKK3dlIGFyZSBnb2luZyB0byBwcmludCB0aGUgbnVtYmVyIG9mIHJh bmtzLgorCisyMDE2LTA2LTMwICBCZXJuaGFyZCBIZWNrZWwgIDxiZXJuaGFyZC5oZWNrZWxAaW50 ZWwuY29tPgorCitnZGIvQ2hhbmdlTG9nOgorCSogZi10eXBlcHJpbnQuYyAoZl9wcmludF90eXBl KTogRG9uJ3QgYnlwYXNzIGRhbmdsaW5nIHR5cGVzLgorCSAgKGZfdHlwZV9wcmludF92YXJzcGVj X3N1ZmZpeCk6IEFkZCBwcmludF9yYW5rIHBhcmFtZXRlci4KKwkgIChmX3R5cGVfcHJpbnRfdmFy c3BlY19zdWZmaXgpOiBQcmludCByYW5rcyBvZiBhcnJheSB0eXBlcworCSAgaW4gY2FzZSB0aGV5 IGRhbmdsaW5nLgorCSAgKGZfdHlwZV9wcmludF9iYXNlKTogQWRkIHByaW50X3JhbmsgcGFyYW1l dGVyLgorCitnZGIvVGVzdHN1aXRlL0NoYW5nZUxvZzoKKwkqIGdkYi5mb3J0cmFuL3BvaW50ZXJz LmY5MDogTmV3LgorCSogZ2RiLmZvcnRyYW4vcHJpbnRfdHlwZS5leHA6IE5ldy4KKwkqIGdkYi5m b3J0cmFuL3ZsYS1wdHlwZS5leHA6IEFkYXB0IGV4cGVjdGVkIHJlc3VsdHMuCisJKiBnZGIuZm9y dHJhbi92bGEtdHlwZS5leHA6IExpa2V3aXNlLgorCSogZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4 cDogTGlrZXdpc2UuCisJKiBnZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwOiBMaWtld2lzZS4KKwor Q2hhbmdlLUlkOiBJYjU1ZjI4YjQwOTJjZjg4ZTM0OTE4NDQ5YTJlYmI2ZTVkYWFmZTUxMgorLS0t CisgZ2RiL2YtdHlwZXByaW50LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA5NSArKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLQorIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRl cnMuZjkwICAgfCAgODAgKysrKysrKysrKysrKysrKysrKysrKysrKworIGdkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vcHJpbnRfdHlwZS5leHAgfCAxMDAgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cCAgfCAgMTIg KystLQorIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXR5cGUuZXhwICAgfCAgIDcgKyst CisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwICB8ICAgNCArLQorIGdk Yi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cCAgfCAgIDkgKy0tCisgNyBmaWxl cyBjaGFuZ2VkLCAyNDggaW5zZXJ0aW9ucygrKSwgNTkgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCisgY3JlYXRl IG1vZGUgMTAwNzU1IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcHJpbnRfdHlwZS5leHAKKwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLXR5cGVwcmludC5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTA3 LTE2IDEwOjU0OjQ4Ljc0OTA5OTE1MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9mLXR5cGVwcmludC5jCTIwMTYtMDctMTYgMTA6NTU6NTkuNzYzNjY3MzU1ICswMjAwCitAQCAt MzcsNyArMzcsNyBAQAorICNlbmRpZgorIAorIHN0YXRpYyB2b2lkIGZfdHlwZV9wcmludF92YXJz cGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorLQkJCQkJ IGludCwgaW50LCBpbnQpOworKwkJCQkJIGludCwgaW50LCBpbnQsIGludCk7CisgCisgdm9pZCBm X3R5cGVfcHJpbnRfdmFyc3BlY19wcmVmaXggKHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxl ICosCisgCQkJCSAgaW50LCBpbnQpOworQEAgLTU0LDE4ICs1NCw2IEBACisgICBlbnVtIHR5cGVf Y29kZSBjb2RlOworICAgaW50IGRlbWFuZ2xlZF9hcmdzOworIAorLSAgaWYgKHR5cGVfbm90X2Fz c29jaWF0ZWQgKHR5cGUpKQorLSAgICB7CistICAgICAgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVk IChzdHJlYW0pOworLSAgICAgIHJldHVybjsKKy0gICAgfQorLQorLSAgaWYgKHR5cGVfbm90X2Fs bG9jYXRlZCAodHlwZSkpCistICAgIHsKKy0gICAgICB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAo c3RyZWFtKTsKKy0gICAgICByZXR1cm47CistICAgIH0KKy0KKyAgIGZfdHlwZV9wcmludF9iYXNl ICh0eXBlLCBzdHJlYW0sIHNob3csIGxldmVsKTsKKyAgIGNvZGUgPSBUWVBFX0NPREUgKHR5cGUp OworICAgaWYgKCh2YXJzdHJpbmcgIT0gTlVMTCAmJiAqdmFyc3RyaW5nICE9ICdcMCcpCitAQCAt ODcsNyArNzUsNyBAQAorICAgICAgICAgIHNvIGRvbid0IHByaW50IGFuIGFkZGl0aW9uYWwgcGFp ciBvZiAoKSdzLiAgKi8KKyAKKyAgICAgICBkZW1hbmdsZWRfYXJncyA9IHZhcnN0cmluZ1tzdHJs ZW4gKHZhcnN0cmluZykgLSAxXSA9PSAnKSc7IAorLSAgICAgIGZfdHlwZV9wcmludF92YXJzcGVj X3N1ZmZpeCAodHlwZSwgc3RyZWFtLCBzaG93LCAwLCBkZW1hbmdsZWRfYXJncywgMCk7CisrICAg ICAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4ICh0eXBlLCBzdHJlYW0sIHNob3csIDAsIGRl bWFuZ2xlZF9hcmdzLCAwLCAwKTsKKyAgICB9CisgfQorIAorQEAgLTE1Nyw3ICsxNDUsNyBAQAor IHN0YXRpYyB2b2lkCisgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAJCQkgICAgIGludCBzaG93LCBpbnQgcGFz c2VkX2FfcHRyLCBpbnQgZGVtYW5nbGVkX2FyZ3MsCistCQkJICAgICBpbnQgYXJyYXlwcmludF9y ZWN1cnNlX2xldmVsKQorKwkJCSAgICAgaW50IGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCwgaW50 IHByaW50X3Jhbmtfb25seSkKKyB7CisgICBpbnQgdXBwZXJfYm91bmQsIGxvd2VyX2JvdW5kOwor IAorQEAgLTE4MSwzNCArMTY5LDUwIEBACisgCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigi KTsKKyAKKyAgICAgICBpZiAodHlwZV9ub3RfYXNzb2NpYXRlZCAodHlwZSkpCistICAgICAgICB2 YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cmVhbSk7CisrCXByaW50X3Jhbmtfb25seSA9IDE7 CisgICAgICAgZWxzZSBpZiAodHlwZV9ub3RfYWxsb2NhdGVkICh0eXBlKSkKKy0gICAgICAgIHZh bF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOworKwlwcmludF9yYW5rX29ubHkgPSAxOwor KyAgICAgIGVsc2UgaWYgKChUWVBFX0FTU09DSUFURURfUFJPUCAodHlwZSkKKysJCSYmIFBST1Bf Q09OU1QgIT0gVFlQRV9EWU5fUFJPUF9LSU5EIChUWVBFX0FTU09DSUFURURfUFJPUCAodHlwZSkp KQorKwkgICAgICB8fCAoVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkKKysJCSYmIFBST1BfQ09O U1QgIT0gVFlQRV9EWU5fUFJPUF9LSU5EIChUWVBFX0FMTE9DQVRFRF9QUk9QICh0eXBlKSkpCisr CSAgICAgIHx8IChUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCisrCQkgICYmIFBST1BfQ09OU1Qg IT0gVFlQRV9EWU5fUFJPUF9LSU5EIChUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpKSkpCisrCS8q IFRoaXMgY2FzZSBleGlzdCB3aGVuIHdlIHB0eXBlIGEgdHlwZW5hbWUgd2hpY2ggaGFzIHRoZQor KwkgICBkeW5hbWljIHByb3BlcnRpZXMgYnV0IGNhbm5vdCBiZSByZXNvbHZlZCBhcyB0aGVyZSBp cworKwkgICBubyBvYmplY3QuICAqLworKwlwcmludF9yYW5rX29ubHkgPSAxOworKworKyAgICAg IGlmIChUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSA9PSBUWVBFX0NPREVfQVJS QVkpCisrCWZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoVFlQRV9UQVJHRVRfVFlQRSAodHlw ZSksIHN0cmVhbSwgMCwKKysJCQkJICAgICAwLCAwLCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWws CisrCQkJCSAgICAgcHJpbnRfcmFua19vbmx5KTsKKysKKysgICAgICBpZiAocHJpbnRfcmFua19v bmx5ID09IDEpCisrCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIjoiKTsKKyAgICAgICBlbHNl CistICAgICAgICB7CistICAgICAgICAgIGlmIChUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZUEUg KHR5cGUpKSA9PSBUWVBFX0NPREVfQVJSQVkpCistICAgICAgICAgICAgZl90eXBlX3ByaW50X3Zh cnNwZWNfc3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgc3RyZWFtLCAwLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBhcnJheXByaW50X3JlY3Vy c2VfbGV2ZWwpOworLQorLSAgICAgICAgICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3Vu ZCAodHlwZSk7CistICAgICAgICAgIGlmIChsb3dlcl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRl ZmF1bHQuICAqLworLSAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkOiIs IGxvd2VyX2JvdW5kKTsKKy0KKy0gICAgICAgICAgLyogTWFrZSBzdXJlIHRoYXQsIGlmIHdlIGhh dmUgYW4gYXNzdW1lZCBzaXplIGFycmF5LCB3ZQorLSAgICAgICAgICAgICBwcmludCBvdXQgYSB3 YXJuaW5nIGFuZCBwcmludCB0aGUgdXBwZXJib3VuZCBhcyAnKicuICAqLworLQorLSAgICAgICAg ICBpZiAoVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9JU19VTkRFRklORUQgKHR5cGUpKQorLSAgICAg ICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIioiKTsKKy0gICAgICAgICAgZWxzZQor LSAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBl cmJvdW5kICh0eXBlKTsKKy0gICAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwg IiVkIiwgdXBwZXJfYm91bmQpOworLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgaWYgKFRZ UEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpICE9IFRZUEVfQ09ERV9BUlJBWSkKKy0g ICAgICAgICAgICBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUg KHR5cGUpLCBzdHJlYW0sIDAsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDAsIDAsIGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCk7CistICAgICAgICB9CisrCXsKKysJ ICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAodHlwZSk7CisrCSAgaWYgKGxvd2Vy X2JvdW5kICE9IDEpCS8qIE5vdCB0aGUgZGVmYXVsdC4gICovCisrCSAgICBmcHJpbnRmX2ZpbHRl cmVkIChzdHJlYW0sICIlZDoiLCBsb3dlcl9ib3VuZCk7CisrCisrCSAgLyogTWFrZSBzdXJlIHRo YXQsIGlmIHdlIGhhdmUgYW4gYXNzdW1lZCBzaXplIGFycmF5LCB3ZQorKwkgICAgIHByaW50IG91 dCBhIHdhcm5pbmcgYW5kIHByaW50IHRoZSB1cHBlcmJvdW5kIGFzICcqJy4gICovCisrCisrCSAg aWYgKFRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEICh0eXBlKSkKKysJICAgIGZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIioiKTsKKysJICBlbHNlCisrCSAgICB7CisrCSAgICAg IHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKKysJICAgICAgZnByaW50 Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBlcl9ib3VuZCk7CisrCSAgICB9CisrCX0KKysK KysgICAgICBpZiAoVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgIT0gVFlQRV9D T0RFX0FSUkFZKQorKwlmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZ UEUgKHR5cGUpLCBzdHJlYW0sIDAsCisrCQkJCSAgICAgMCwgMCwgYXJyYXlwcmludF9yZWN1cnNl X2xldmVsLAorKwkJCQkgICAgIHByaW50X3Jhbmtfb25seSk7CisrCisgICAgICAgaWYgKGFycmF5 cHJpbnRfcmVjdXJzZV9sZXZlbCA9PSAxKQorIAlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIp Iik7CisgICAgICAgZWxzZQorQEAgLTIxOSwxMyArMjIzLDE0IEBACisgICAgIGNhc2UgVFlQRV9D T0RFX1BUUjoKKyAgICAgY2FzZSBUWVBFX0NPREVfUkVGOgorICAgICAgIGZfdHlwZV9wcmludF92 YXJzcGVjX3N1ZmZpeCAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIHN0cmVhbSwgMCwgMSwgMCwK Ky0JCQkJICAgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsKTsKKysJCQkJICAgYXJyYXlwcmludF9y ZWN1cnNlX2xldmVsLCAwKTsKKyAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpIik7 CisgICAgICAgYnJlYWs7CisgCisgICAgIGNhc2UgVFlQRV9DT0RFX0ZVTkM6CisgICAgICAgZl90 eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgc3RyZWFt LCAwLAorLQkJCQkgICBwYXNzZWRfYV9wdHIsIDAsIGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCk7 CisrCQkJCSAgIHBhc3NlZF9hX3B0ciwgMCwgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsLAorKwkJ CQkgICAwKTsKKyAgICAgICBpZiAocGFzc2VkX2FfcHRyKQorIAlmcHJpbnRmX2ZpbHRlcmVkIChz dHJlYW0sICIpIik7CisgCitAQCAtMzc2LDcgKzM4MSw3IEBACisgCSAgICAgIGZwdXRzX2ZpbHRl cmVkICgiIDo6ICIsIHN0cmVhbSk7CisgCSAgICAgIGZwdXRzX2ZpbHRlcmVkIChUWVBFX0ZJRUxE X05BTUUgKHR5cGUsIGluZGV4KSwgc3RyZWFtKTsKKyAJICAgICAgZl90eXBlX3ByaW50X3ZhcnNw ZWNfc3VmZml4IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGluZGV4KSwKKy0JCQkJCSAgIHN0cmVh bSwgc2hvdyAtIDEsIDAsIDAsIDApOworKwkJCQkJICAgc3RyZWFtLCBzaG93IC0gMSwgMCwgMCwg MCwgMCk7CisgCSAgICAgIGZwdXRzX2ZpbHRlcmVkICgiXG4iLCBzdHJlYW0pOworIAkgICAgfQor IAkgIGZwcmludGZpX2ZpbHRlcmVkIChsZXZlbCwgc3RyZWFtLCAiRW5kIFR5cGUgIik7CitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVy cy5mOTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3BvaW50ZXJzLmY5MAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA3OTUyNTg2MCArMDIwMAor QEAgLTAsMCArMSw4MCBAQAorKyEgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrISB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyshCisrISBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyEKKyshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytwcm9ncmFt IHBvaW50ZXJzCisrCisrICB0eXBlIDo6IHR3bworKyAgICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6 OiBpdmxhMSAoOikKKysgICAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogaXZsYTIgKDosIDopCisr ICBlbmQgdHlwZSB0d28KKysKKysgIGxvZ2ljYWwsIHRhcmdldCA6OiBsb2d2CisrICBjb21wbGV4 LCB0YXJnZXQgOjogY29tdgorKyAgY2hhcmFjdGVyLCB0YXJnZXQgOjogY2hhcnYKKysgIGNoYXJh Y3RlciAobGVuPTMpLCB0YXJnZXQgOjogY2hhcmEKKysgIGludGVnZXIsIHRhcmdldCA6OiBpbnR2 CisrICBpbnRlZ2VyLCB0YXJnZXQsIGRpbWVuc2lvbiAoMTAsMikgOjogaW50YQorKyAgcmVhbCwg dGFyZ2V0ICAgIDo6IHJlYWx2CisrICB0eXBlKHR3byksIHRhcmdldCAgOjogdHdvdgorKworKyAg bG9naWNhbCwgcG9pbnRlciA6OiBsb2dwCisrICBjb21wbGV4LCBwb2ludGVyIDo6IGNvbXAKKysg IGNoYXJhY3RlciwgcG9pbnRlcjo6IGNoYXJwCisrICBjaGFyYWN0ZXIgKGxlbj0zKSwgcG9pbnRl cjo6IGNoYXJhcAorKyAgaW50ZWdlciwgcG9pbnRlciA6OiBpbnRwCisrICBpbnRlZ2VyLCBwb2lu dGVyLCBkaW1lbnNpb24gKDosOikgOjogaW50YXAKKysgIHJlYWwsIHBvaW50ZXIgOjogcmVhbHAK KysgIHR5cGUodHdvKSwgcG9pbnRlciA6OiB0d29wCisrCisrICBudWxsaWZ5IChsb2dwKQorKyAg bnVsbGlmeSAoY29tcCkKKysgIG51bGxpZnkgKGNoYXJwKQorKyAgbnVsbGlmeSAoY2hhcmFwKQor KyAgbnVsbGlmeSAoaW50cCkKKysgIG51bGxpZnkgKGludGFwKQorKyAgbnVsbGlmeSAocmVhbHAp CisrICBudWxsaWZ5ICh0d29wKQorKworKyAgbG9ncCA9PiBsb2d2ICAgICEgQmVmb3JlIHBvaW50 ZXIgYXNzaWdubWVudAorKyAgY29tcCA9PiBjb212CisrICBjaGFycCA9PiBjaGFydgorKyAgY2hh cmFwID0+IGNoYXJhCisrICBpbnRwID0+IGludHYKKysgIGludGFwID0+IGludGEKKysgIHJlYWxw ID0+IHJlYWx2CisrICB0d29wID0+IHR3b3YKKysKKysgIGxvZ3YgPSBhc3NvY2lhdGVkKGxvZ3Ap ICAgICAhIEJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50CisrICBjb212ID0gY21wbHgoMSwyKQorKyAg Y2hhcnYgPSAiYSIKKysgIGNoYXJhID0gImFiYyIKKysgIGludHYgPSAxMAorKyAgaW50YSg6LDop ID0gMQorKyAgaW50YSgzLDEpID0gMworKyAgcmVhbHYgPSAzLjE0CisrCisrICBhbGxvY2F0ZSAo dHdvdiVpdmxhMSgzKSkKKysgIGFsbG9jYXRlICh0d292JWl2bGEyKDIsMikpCisrICB0d292JWl2 bGExKDEpID0gMTEKKysgIHR3b3YlaXZsYTEoMikgPSAxMgorKyAgdHdvdiVpdmxhMSgzKSA9IDEz CisrICB0d292JWl2bGEyKDEsMSkgPSAyMTEKKysgIHR3b3YlaXZsYTIoMiwxKSA9IDIyMQorKyAg dHdvdiVpdmxhMigxLDIpID0gMjEyCisrICB0d292JWl2bGEyKDIsMikgPSAyMjIKKysKKysgIGlu dHYgPSBpbnR2ICsgMSAhIEFmdGVyIHZhbHVlIGFzc2lnbm1lbnQKKysKKytlbmQgcHJvZ3JhbSBw b2ludGVycworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vcHJpbnRfdHlwZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50X3R5cGUuZXhwCTIwMTYtMDctMTYgMTA6NTU6NDIu MDc5NTI1ODYwICswMjAwCitAQCAtMCwwICsxLDEwMCBAQAorKyMgQ29weXJpZ2h0IDIwMTYgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICJwb2ludGVycy5mOTAiCisrbG9hZF9saWIgZm9y dHJhbi5leHAKKysKKytpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAk e3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKKysgICAge2RlYnVnIGY5MCBxdWlldH1dIH0geworKyAg ICByZXR1cm4gLTEKKyt9CisrCisrCisraWYgIVtydW50b19tYWluXSB7CisrICAgIHVudGVzdGVk ICJjb3VsZCBub3QgcnVuIHRvIG1haW4iCisrICAgIHJldHVybiAtMQorK30KKysKKysjIERlcGVu ZGluZyBvbiB0aGUgY29tcGlsZXIgYmVpbmcgdXNlZCwgdGhlIHR5cGUgbmFtZXMgY2FuIGJlIHBy aW50ZWQgZGlmZmVyZW50bHkuCisrc2V0IGxvZ2ljYWwgW2ZvcnRyYW5fbG9naWNhbDRdCisrc2V0 IHJlYWwgW2ZvcnRyYW5fcmVhbDRdCisrc2V0IGludCBbZm9ydHJhbl9pbnQ0XQorK3NldCBjb21w bGV4IFtmb3J0cmFuX2NvbXBsZXg0XQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50Il0KKytnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAiQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKytnZGJfdGVzdCAicHR5cGUgbG9n cCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRsb2dpY2FsIFxcKSIgInB0eXBlIGxvZ3AsIG5vdCBh c3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSBjb21wIiAidHlwZSA9IFBUUiBUTyAtPiBcXCgg JGNvbXBsZXggXFwpIiAicHR5cGUgY29tcCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0 eXBlIGNoYXJwIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMSBcXCkiICJwdHlw ZSBjaGFycCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIGNoYXJhcCIgInR5cGUg PSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpIiAicHR5cGUgY2hhcmFwLCBub3QgYXNz b2NpYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgaW50cCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRp bnQgXFwpIiAicHR5cGUgaW50cCwgbm90IGFzc29jaWF0ZWQiCisrc2V0IHRlc3QgInB0eXBlIGlu dGFwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHR5cGUgaW50YXAiICR0 ZXN0IHsKKysgICAgLXJlICJ0eXBlID0gUFRSIFRPIC0+IFxcKCAkaW50IFxcKDosOlxcKVxcKVxy XG4kZ2RiX3Byb21wdCAkIiB7CisrICAgICAgICBwYXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJl ICJ0eXBlID0gJGludCBcXCg6LDpcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICAgICAgcGFz cyAkdGVzdAorKyAgICB9CisrfQorK2dkYl90ZXN0ICJwdHlwZSByZWFscCIgInR5cGUgPSBQVFIg VE8gLT4gXFwoICRyZWFsIFxcKSIgInB0eXBlIHJlYWxwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJf dGVzdCAicHR5cGUgdHdvcCIgXAorKyAgICBbbXVsdGlfbGluZSAidHlwZSA9IFBUUiBUTyAtPiBc XCggVHlwZSB0d28iIFwKKysgICAgICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGExXFwoOlxc KSIgXAorKyAgICAgICAgICAgICAgICAiICAgICRpbnQgOjogaXZsYTJcXCg6LDpcXCkiIFwKKysg ICAgICAgICAgICAgICAgIkVuZCBUeXBlIHR3byBcXCkiXSBcCisrICAgICJwdHlwZSB0d29wLCBu b3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdHdvIiBcCisrICAgIFttdWx0aV9saW5l ICJ0eXBlID0gVHlwZSB0d28iIFwKKysgICAgICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGEx XFwoOlxcKSIgXAorKyAgICAgICAgICAgICAgICAiICAgICRpbnQgOjogaXZsYTJcXCg6LDpcXCki IFwKKysgICAgICAgICAgICAgICAgIkVuZCBUeXBlIHR3byJdCisrCisrCisrZ2RiX2JyZWFrcG9p bnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50Il0KKytnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAiQmVmb3JlIHZhbHVlIGFzc2lnbm1lbnQiCisrZ2RiX3Rl c3QgInB0eXBlIHR3b3AiIFwKKysgICAgW211bHRpX2xpbmUgInR5cGUgPSBQVFIgVE8gLT4gXFwo IFR5cGUgdHdvIiBcCisrICAgICAgICAgICAgICAgICIgICAgJGludCA6OiBpdmxhMVxcKDpcXCki IFwKKysgICAgICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGEyXFwoOiw6XFwpIiBcCisrICAg ICAgICAgICAgICAgICJFbmQgVHlwZSB0d28gXFwpIl0KKysKKysKKytnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAiQWZ0ZXIgdmFsdWUgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgIkFmdGVyIHZhbHVlIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInB0 eXBlIGxvZ3YiICJ0eXBlID0gJGxvZ2ljYWwiCisrZ2RiX3Rlc3QgInB0eXBlIGNvbXYiICJ0eXBl ID0gJGNvbXBsZXgiCisrZ2RiX3Rlc3QgInB0eXBlIGNoYXJ2IiAidHlwZSA9IGNoYXJhY3Rlclxc KjEiCisrZ2RiX3Rlc3QgInB0eXBlIGNoYXJhIiAidHlwZSA9IGNoYXJhY3RlclxcKjMiCisrZ2Ri X3Rlc3QgInB0eXBlIGludHYiICJ0eXBlID0gJGludCIKKytnZGJfdGVzdCAicHR5cGUgaW50YSIg InR5cGUgPSAkaW50IFxcKDEwLDJcXCkiCisrZ2RiX3Rlc3QgInB0eXBlIHJlYWx2IiAidHlwZSA9 ICRyZWFsIgorKworKworK2dkYl90ZXN0ICJwdHlwZSBsb2dwIiAidHlwZSA9IFBUUiBUTyAtPiBc XCggJGxvZ2ljYWwgXFwpIgorK2dkYl90ZXN0ICJwdHlwZSBjb21wIiAidHlwZSA9IFBUUiBUTyAt PiBcXCggJGNvbXBsZXggXFwpIgorK2dkYl90ZXN0ICJwdHlwZSBjaGFycCIgInR5cGUgPSBQVFIg VE8gLT4gXFwoIGNoYXJhY3RlclxcKjEgXFwpIgorK2dkYl90ZXN0ICJwdHlwZSBjaGFyYXAiICJ0 eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKSIKKytnZGJfdGVzdCAicHR5cGUg aW50cCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRpbnQgXFwpIgorK3NldCB0ZXN0ICJwdHlwZSBp bnRhcCIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7CisrICAgIC1yZSAidHlwZSA9 ICRpbnQgXFwoMTAsMlxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgICAgICBwYXNzICR0ZXN0 CisrICAgIH0KKysgICAgLXJlICJ0eXBlID0gUFRSIFRPIC0+IFxcKCAkaW50IFxcKDEwLDJcXClc XClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICAgICAgcGFzcyAkdGVzdAorKyAgICB9CisrfQor K2dkYl90ZXN0ICJwdHlwZSByZWFscCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRyZWFsIFxcKSIK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1wdHlwZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE2LTA3LTE2IDEwOjU0OjQ4 Ljc0OTA5OTE1MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA3OTUyNTg2MCAr MDIwMAorQEAgLTMyLDkgKzMyLDkgQEAKKyAjIENoZWNrIHRoZSBwdHlwZSBvZiB2YXJpb3VzIFZM QSBzdGF0ZXMgYW5kIHBvaW50ZXIgdG8gVkxBJ3MuCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRf bGluZV9udW1iZXIgInZsYTEtaW5pdCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZs YTEtaW5pdCIKKy1nZGJfdGVzdCAicHR5cGUgdmxhMSIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4i ICJwdHlwZSB2bGExIG5vdCBpbml0aWFsaXplZCIKKy1nZGJfdGVzdCAicHR5cGUgdmxhMiIgInR5 cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2bGEyIG5vdCBpbml0aWFsaXplZCIKKy1nZGJf dGVzdCAicHR5cGUgcHZsYSIgInR5cGUgPSA8bm90IGFzc29jaWF0ZWQ+IiAicHR5cGUgcHZsYSBu b3QgaW5pdGlhbGl6ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZsYTEiICJ0eXBlID0gJHJlYWwgXFwo Oiw6LDpcXCkiICJwdHlwZSB2bGExIG5vdCBpbml0aWFsaXplZCIKKytnZGJfdGVzdCAicHR5cGUg dmxhMiIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxcKSIgInB0eXBlIHZsYTIgbm90IGluaXRpYWxp emVkIgorK2dkYl90ZXN0ICJwdHlwZSBwdmxhIiAidHlwZSA9ICRyZWFsIFxcKDosOiw6XFwpIiAi cHR5cGUgcHZsYSBub3QgaW5pdGlhbGl6ZWQiCisgZ2RiX3Rlc3QgInB0eXBlIHZsYTEoMywgNiwg OSkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxcXCki IFwKKyAgICJwdHlwZSB2bGExKDMsIDYsIDkpIG5vdCBpbml0aWFsaXplZCIKKyBnZGJfdGVzdCAi cHR5cGUgdmxhMig1LCA0NSwgMjApIiBcCitAQCAtODEsMjAgKzgxLDIwIEBACisgCisgZ2RiX2Jy ZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtZGVhc3NvY2lhdGVkIl0KKyBnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAicHZsYS1kZWFzc29jaWF0ZWQiCistZ2RiX3Rlc3QgInB0 eXBlIHB2bGEiICJ0eXBlID0gPG5vdCBhc3NvY2lhdGVkPiIgInB0eXBlIHB2bGEgZGVhc3NvY2lh dGVkIgorK2dkYl90ZXN0ICJwdHlwZSBwdmxhIiAidHlwZSA9ICRyZWFsIFxcKDosOiw6XFwpIiAi cHR5cGUgcHZsYSBkZWFzc29jaWF0ZWQiCisgZ2RiX3Rlc3QgInB0eXBlIHB2bGEoNSwgNDUsIDIw KSIgXAorICAgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYXNzb2NpYXRl ZFxcXCkiIFwKKyAgICJwdHlwZSBwdmxhKDUsIDQ1LCAyMCkgbm90IGFzc29jaWF0ZWQiCisgCisg Z2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtZGVhbGxvY2F0ZWQiXQor IGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGExLWRlYWxsb2NhdGVkIgorLWdkYl90ZXN0 ICJwdHlwZSB2bGExIiAidHlwZSA9IDxub3QgYWxsb2NhdGVkPiIgInB0eXBlIHZsYTEgbm90IGFs bG9jYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmxhMSIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxc KSIgInB0eXBlIHZsYTEgbm90IGFsbG9jYXRlZCIKKyBnZGJfdGVzdCAicHR5cGUgdmxhMSgzLCA2 LCA5KSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYWxsb2NhdGVkXFxc KSIgXAorICAgInB0eXBlIHZsYTEoMywgNiwgOSkgbm90IGFsbG9jYXRlZCIKKyAKKyBnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMi1kZWFsbG9jYXRlZCJdCisgZ2RiX2Nv bnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTItZGVhbGxvY2F0ZWQiCistZ2RiX3Rlc3QgInB0eXBl IHZsYTIiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmxhMiBub3QgYWxsb2NhdGVk IgorK2dkYl90ZXN0ICJwdHlwZSB2bGEyIiAidHlwZSA9ICRyZWFsIFxcKDosOiw6XFwpIiAicHR5 cGUgdmxhMiBub3QgYWxsb2NhdGVkIgorIGdkYl90ZXN0ICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCki IFwKKyAgICJubyBzdWNoIHZlY3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxc XCkiIFwKKyAgICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkgbm90IGFsbG9jYXRlZCIKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4 cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAJMjAxNi0wNy0xNiAxMDo1NDo0OC43NDkwOTkxNTAg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS10eXBlLmV4cAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA4MDUyNTg2OCArMDIwMAorQEAgLTEz Miw3ICsxMzIsMTAgQEAKKyAgICAgICAgICAgICAgICAgICAgICAiRW5kIFR5cGUgb25lIiBdCisg CisgIyBDaGVjayBhbGxvY2F0aW9uIHN0YXR1cyBvZiBkeW5hbWljIGFycmF5IGFuZCBpdCdzIGR5 bmFtaWMgbWVtYmVycworLWdkYl90ZXN0ICJwdHlwZSBmaXZlZHluYXJyIiAidHlwZSA9IDxub3Qg YWxsb2NhdGVkPiIKKytnZGJfdGVzdCAicHR5cGUgZml2ZWR5bmFyciIgXAorKyAgICAgICAgIFtt dWx0aV9saW5lICJ0eXBlID0gVHlwZSBmaXZlIiBcCisrICAgICAgICAgICAgICAgICAgICAgIiAg ICBUeXBlIG9uZSA6OiB0b25lIiBcCisrICAgICAgICAgICAgICAgICAgICAgIkVuZCBUeXBlIGZp dmUgXFwoOlxcKSIgXQorIGdkYl90ZXN0ICJuZXh0IiAiIgorIGdkYl90ZXN0ICJwdHlwZSBmaXZl ZHluYXJyKDIpIiBcCisgICAgICAgICAgW211bHRpX2xpbmUgInR5cGUgPSBUeXBlIGZpdmUiIFwK K0BAIC0xNDEsNyArMTQ0LDcgQEAKKyAgICAgICAgICAicHR5cGUgZml2ZWR5bmFycigyKSwgdG9u ZSBpcyBub3QgYWxsb2NhdGVkIgorIGdkYl90ZXN0ICJwdHlwZSBmaXZlZHluYXJyKDIpJXRvbmUi IFwKKyAgICAgICAgICBbbXVsdGlfbGluZSAidHlwZSA9IFR5cGUgb25lIiBcCistICAgICAgICAg ICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGFcXCg8bm90IGFsbG9jYXRlZD5cXCkiIFwKKysg ICAgICAgICAgICAgICAgICAgICAiICAgICRpbnQgOjogaXZsYVxcKDosOiw6XFwpIiBcCisgICAg ICAgICAgICAgICAgICAgICAgIkVuZCBUeXBlIG9uZSIgXSBcCisgICAgICAgICAgInB0eXBlIGZp dmVkeW5hcnIoMikldG9uZSwgbm90IGFsbG9jYXRlZCIKKyAKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXZhbHVlLmV4cAkyMDE2LTA3LTE2IDEwOjU0OjQ4Ljc0OTA5OTE1MCArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVl LmV4cAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA4MDUyNTg2OCArMDIwMAorQEAgLTM0LDcgKzM0LDcg QEAKKyBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxhMS1pbml0IgorIGdkYl90ZXN0ICJw cmludCB2bGExIiAiID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHJpbnQgbm9uLWFsbG9jYXRlZCB2bGEx IgorIGdkYl90ZXN0ICJwcmludCAmdmxhMSIgXAorLSAgIiA9IFxcXChQVFIgVE8gLT4gXFxcKCAk cmVhbCBcXFwoPG5vdCBhbGxvY2F0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKysgICIgPSBcXFwo UFRSIFRPIC0+IFxcXCggJHJlYWwgXFxcKDosOiw6XFxcKVxcXClcXFwpICRoZXgiIFwKKyAgICJw cmludCBub24tYWxsb2NhdGVkICZ2bGExIgorIGdkYl90ZXN0ICJwcmludCB2bGExKDEsMSwxKSIg Im5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYWxsb2NhdGVkXFxcKSIgXAor ICAgInByaW50IG1lbWJlciBpbiBub24tYWxsb2NhdGVkIHZsYTEgKDEpIgorQEAgLTc1LDcgKzc1 LDcgQEAKKyAjIFRyeSB0byBhY2Nlc3MgdmFsdWVzIGluIHVuZGVmaW5lZCBwb2ludGVyIHRvIFZM QSAoZGFuZ2xpbmcpCisgZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSA8bm90IGFzc29jaWF0ZWQ+ IiAicHJpbnQgdW5kZWZpbmVkIHB2bGEiCisgZ2RiX3Rlc3QgInByaW50ICZwdmxhIiBcCistICAi ID0gXFxcKFBUUiBUTyAtPiBcXFwoICRyZWFsIFxcXCg8bm90IGFzc29jaWF0ZWQ+XFxcKVxcXClc XFwpICRoZXgiIFwKKysgICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggJHJlYWwgXFxcKDosOiw6XFxc KVxcXClcXFwpICRoZXgiIFwKKyAgICJwcmludCBub24tYXNzb2NpYXRlZCAmcHZsYSIKKyBnZGJf dGVzdCAicHJpbnQgcHZsYSgxLCAzLCA4KSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZl Y3RvciBub3QgYXNzb2NpYXRlZFxcXCkiIFwKKyAgICJwcmludCB1bmRlZmluZWQgcHZsYSgxLDMs OCkiCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkt dmxhLWZvcnRyYW4uZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3Jp Zy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAJMjAxNi0wNy0xNiAxMDo1 NDo0OC43NDkwOTkxNTAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAJMjAxNi0wNy0xNiAxMDo1NTo0Mi4wODA1MjU4 NjggKzAyMDAKK0BAIC0xNyw2ICsxNyw3IEBACisgIyBBcnJheSAoVkxBKS4KKyAKKyBsb2FkX2xp YiBtaS1zdXBwb3J0LmV4cAorK2xvYWRfbGliIGZvcnRyYW4uZXhwCisgc2V0IE1JRkxBR1MgIi1p PW1pIgorIGxvYWRfbGliICJmb3J0cmFuLmV4cCIKKyAKK0BAIC01MCwxMCArNTEsMTAgQEAKKyBt aV9nZGJfdGVzdCAiNTAwLWRhdGEtZXZhbHVhdGUtZXhwcmVzc2lvbiB2bGExIiBcCisgICAiNTAw XFxeZG9uZSx2YWx1ZT1cIjxub3QgYWxsb2NhdGVkPlwiIiAiZXZhbHVhdGUgbm90IGFsbG9jYXRl ZCB2bGEiCisgCistbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHZsYTFfbm90X2FsbG9jYXRlZCB2 bGExICI8bm90IGFsbG9jYXRlZD4iIFwKKyttaV9jcmVhdGVfdmFyb2JqX2NoZWNrZWQgdmxhMV9u b3RfYWxsb2NhdGVkIHZsYTEgIiRyZWFsIFxcKDpcXCkiIFwKKyAgICJjcmVhdGUgbG9jYWwgdmFy aWFibGUgdmxhMV9ub3RfYWxsb2NhdGVkIgorIG1pX2dkYl90ZXN0ICI1MDEtdmFyLWluZm8tdHlw ZSB2bGExX25vdF9hbGxvY2F0ZWQiIFwKKy0gICI1MDFcXF5kb25lLHR5cGU9XCI8bm90IGFsbG9j YXRlZD5cIiIgXAorKyAgIjUwMVxcXmRvbmUsdHlwZT1cIiRyZWFsIFxcKDpcXClcIiIgXAorICAg ImluZm8gdHlwZSB2YXJpYWJsZSB2bGExX25vdF9hbGxvY2F0ZWQiCisgbWlfZ2RiX3Rlc3QgIjUw Mi12YXItc2hvdy1mb3JtYXQgdmxhMV9ub3RfYWxsb2NhdGVkIiBcCisgICAiNTAyXFxeZG9uZSxm b3JtYXQ9XCJuYXR1cmFsXCIiIFwKK0BAIC0xNDAsMTAgKzE0MSwxMCBAQAorICAgICAtcmUgIjU4 MFxcXmRvbmUsdmFsdWU9XCI8bm90IGFzc29jaWF0ZWQ+XCIuKiR7bWlfZ2RiX3Byb21wdH0kIiB7 CisgCXBhc3MgJHRlc3QKKyAKKy0JbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHB2bGEyX25vdF9h c3NvY2lhdGVkIHB2bGEyICI8bm90IGFzc29jaWF0ZWQ+IiBcCisrCW1pX2NyZWF0ZV92YXJvYmpf Y2hlY2tlZCBwdmxhMl9ub3RfYXNzb2NpYXRlZCBwdmxhMiAiJHJlYWwgXFwoOiw6XFwpIiBcCisg CSAgICAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHB2bGEyX25vdF9hc3NvY2lhdGVkIgorIAltaV9n ZGJfdGVzdCAiNTgxLXZhci1pbmZvLXR5cGUgcHZsYTJfbm90X2Fzc29jaWF0ZWQiIFwKKy0JICAg ICI1ODFcXF5kb25lLHR5cGU9XCI8bm90IGFzc29jaWF0ZWQ+XCIiIFwKKysJICAgICI1ODFcXF5k b25lLHR5cGU9XCIkcmVhbCBcXCg6LDpcXClcIiIgXAorIAkgICAgImluZm8gdHlwZSB2YXJpYWJs ZSBwdmxhMl9ub3RfYXNzb2NpYXRlZCIKKyAJbWlfZ2RiX3Rlc3QgIjU4Mi12YXItc2hvdy1mb3Jt YXQgcHZsYTJfbm90X2Fzc29jaWF0ZWQiIFwKKyAJICAgICI1ODJcXF5kb25lLGZvcm1hdD1cIm5h dHVyYWxcIiIgXAoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtNW9mNy5wYXRjaCBiL2dkYi12 bGEtaW50ZWwtNW9mNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42 OGNmYzU3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZsYS1pbnRlbC01b2Y3LnBhdGNoCkBAIC0w LDAgKzEsMzQ1IEBACitGcm9tIGI2ZTY2OGNjZDM1NmVhM2U3NWQzMGYyMDMxNDMzNGIxMjAzYzIy ZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBCZXJuaGFyZCBIZWNrZWwgPGJlcm5o YXJkLmhlY2tlbEBpbnRlbC5jb20+CitEYXRlOiBUdWUsIDEyIEp1bCAyMDE2IDA4OjE5OjM0ICsw MjAwCitTdWJqZWN0OiBbUEFUQ0ggNS83XSBSZXNvbHZlIGR5bmFtaWMgdGFyZ2V0IHR5cGVzIG9m IHBvaW50ZXJzLgorCitXaGVuIGRlcmVmZXJlbmNpbmcgcG9pbnRlcnMgdG8gZHluYW1pYyB0YXJn ZXQgdHlwZXMsCityZXNvbHZlIHRoZSB0YXJnZXQgdHlwZS4KKworMjAxNi0wNi0zMCAgQmVybmhh cmQgSGVja2VsICA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KKworZ2RiL0NoYW5nZWxvZzoK KwkqIE5FV1M6IEFkZGVkIGVudHJ5LgorCSogYy12YWxwcmludC5jIChjX3ByaW50X3ZhbCk6IFJl c29sdmUgZHluYW1pYyB0YXJnZXQgdHlwZXMuCisJKiB2YWxvcHMuYyAodmFsdWVfaW5kKTogUmVz b2x2ZSBkeW5hbWljIHRhcmdldCB0eXBlcy4KKwkqIHZhbHByaW50LmMgKGNoZWNrX3ByaW50YWJs ZSk6IERvbid0IHNob3J0Y3V0IG5vdCBhc3NvY2lhdGVkCisJICBwb2ludGVycy4KKworZ2RiL1Rl c3RzdWl0ZS9DaGFuZ2Vsb2c6CisJKiBwb2ludGVycy5mOTA6IEFkZGVkIHBvaW50ZXIgdG8gZHlu YW1pYyB0eXBlcy4KKwkqIGdkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cDogTmV3LgorCitDaGFuZ2Ut SWQ6IEk5OThkNGRhNGE1YmE0ODk5YjhjYjIxMTU1NzZmNDRlZmE3NDFlNjk4CistLS0KKyBnZGIv TkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCisgZ2RiL2MtdmFscHJp bnQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKysrKysrCisgZ2RiL3Rlc3RzdWl0ZS9n ZGIuY3AvdmxhLWN4eC5leHAgICAgICAgfCAgIDQgKysKKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3BvaW50ZXJzLmV4cCB8IDEyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK KyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MCB8ICAxNyArKysrKworIGdk Yi92YWxvcHMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE2ICsrKystCisgZ2RiL3Zh bHByaW50LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgLS0KKyA3IGZpbGVzIGNoYW5n ZWQsIDE4MiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0 NCBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cAorCitJbmRleDogZ2RiLTcu MTEuOTAuMjAxNjA4MDcvZ2RiL05FV1MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS45MC4yMDE2 MDgwNy5vcmlnL2dkYi9ORVdTCTIwMTYtMDgtMDcgMjE6MTg6NDQuMDMyNDA5MDY1ICswMjAwCisr KysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL05FV1MJMjAxNi0wOC0wNyAyMToxOToxNy4xNzg3 MTUxMTYgKzAyMDAKK0BAIC0xLDYgKzEsOCBAQAorIAkJV2hhdCBoYXMgY2hhbmdlZCBpbiBHREI/ CisgCSAgICAgKE9yZ2FuaXplZCByZWxlYXNlIGJ5IHJlbGVhc2UpCisgCisrKiBGb3J0cmFuOiBT dXBwb3J0IHBvaW50ZXJzIHRvIGR5bmFtaWMgdHlwZXMuCisrCisgKioqIENoYW5nZXMgaW4gR0RC IDcuMTIKKyAKKyAqIEdEQiBhbmQgR0RCc2VydmVyIG5vdyBidWlsZCB3aXRoIGEgQysrIGNvbXBp bGVyIGJ5IGRlZmF1bHQuCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2MtdmFscHJp bnQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2MtdmFs cHJpbnQuYwkyMDE2LTA4LTA3IDIxOjE4OjQ0LjAzMjQwOTA2NSArMDIwMAorKysrIGdkYi03LjEx LjkwLjIwMTYwODA3L2dkYi9jLXZhbHByaW50LmMJMjAxNi0wOC0wNyAyMToxODo1MS4wODc0NzQy MDcgKzAyMDAKK0BAIC02NDUsNiArNjQ1LDI4IEBACisgICAgICAgZWxzZQorIAl7CisgCSAgLyog bm9ybWFsIGNhc2UgKi8KKysJICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRS CisrCSAgICAgICYmIDEgPT0gaXNfZHluYW1pY190eXBlICh0eXBlKSkKKysJICAgIHsKKysJICAg ICAgQ09SRV9BRERSIGFkZHI7CisrCSAgICAgIGlmIChOVUxMICE9IFRZUEVfREFUQV9MT0NBVElP TiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKQorKwkJYWRkciA9IHZhbHVlX2FkZHJlc3MgKHZh bCk7CisrCSAgICAgIGVsc2UKKysJCWFkZHIgPSB2YWx1ZV9hc19hZGRyZXNzICh2YWwpOworKwor KwkgICAgICAvKiBXZSByZXNvbHZlIHRoZSB0YXJnZXQtdHlwZSBvbmx5IHdoZW4gdGhlCisrCSAg ICAgICAgIHBvaW50ZXIgaXMgYXNzb2NpYXRlZC4gICovCisrCSAgICAgIGlmICgoYWRkciAhPSAw KQorKwkJICAmJiAoMCA9PSB0eXBlX25vdF9hc3NvY2lhdGVkICh0eXBlKSkpCisrCQkgIFRZUEVf VEFSR0VUX1RZUEUgKHR5cGUpID0KKysJCSAgICAgIHJlc29sdmVfZHluYW1pY190eXBlIChUWVBF X1RBUkdFVF9UWVBFICh0eXBlKSwKKysJCQkJCSAgICBOVUxMLCBhZGRyKTsKKysJICAgIH0KKysJ ICBlbHNlCisrCSAgICB7CisrCSAgICAgIC8qIERvIG5vdGhpbmcuIFJlZmVyZW5jZXMgYXJlIGFs cmVhZHkgcmVzb2x2ZWQgZnJvbSB0aGUgYmVnaW5uaW5nLAorKwkgICAgICAgICBvbmx5IHBvaW50 ZXJzIGFyZSByZXNvbHZlZCB3aGVuIHdlIGFjdHVhbCBuZWVkIHRoZSB0YXJnZXQuICAqLworKwkg ICAgfQorIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKKyAJICB0eXBlX3ByaW50 ICh2YWx1ZV90eXBlICh2YWwpLCAiIiwgc3RyZWFtLCAtMSk7CisgCSAgZnByaW50Zl9maWx0ZXJl ZCAoc3RyZWFtLCAiKSAiKTsKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1 aXRlL2dkYi5jcC92bGEtY3h4LmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIwMTYw ODA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAJMjAxNi0wOC0wNyAyMTox ODo0NC4wMzM0MDkwNzQgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1 aXRlL2dkYi5jcC92bGEtY3h4LmV4cAkyMDE2LTA4LTA3IDIxOjE4OjUxLjA4ODQ3NDIxNiArMDIw MAorQEAgLTI2LDYgKzI2LDggQEAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAiQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgIkJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiCisgZ2RiX3Rlc3QgInB0eXBlIHB0ciIgImlu dCBcXChcXCpcXClcXFxbdmFyaWFibGUgbGVuZ3RoXFxcXSIgInB0eXBlIHB0ciwgQmVmb3JlIHBv aW50ZXIgYXNzaWdubWVudCIKKytnZGJfdGVzdCAicHJpbnQgcHRyIiAiXFwoaW50IFxcKFxcKlxc KVxcXFt2YXJpYWJsZSBsZW5ndGhcXFxdXFwpIDB4MCIgInByaW50IHB0ciwgQmVmb3JlIHBvaW50 ZXIgYXNzaWdubWVudCIKKytnZGJfdGVzdCAicHJpbnQgKnB0ciIgIkNhbm5vdCBhY2Nlc3MgbWVt b3J5IGF0IGFkZHJlc3MgMHgwIiAicHJpbnQgKnB0ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVu dCIKKyAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhc19maWxsZWQi XQorIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGFzX2ZpbGxlZCIKK0BAIC0zOCwzICs0 MCw1IEBACisgZ2RiX3Rlc3QgInByaW50IHZsYXJlZjIiICIgPSBcXCguKlxcKSBAJGhleDogXFx7 NSwgNywgOVxcfSIKKyBnZGJfdGVzdCAicHJpbnQgYyIgIiA9IFxce2UgPSBcXHtjID0gQCRoZXhc XH1cXH0iCisgZ2RiX3Rlc3QgInB0eXBlIHB0ciIgImludCBcXChcXCpcXClcXFxbM1xcXF0iCisr Z2RiX3Rlc3QgInByaW50IHB0ciIgIlxcKGludCBcXChcXCpcXClcXFxbM1xcXF1cXCkgJGhleCIK KytnZGJfdGVzdCAicHJpbnQgKnB0ciIgIiA9IFxcezUsIDcsIDlcXH0iCitJbmRleDogZ2RiLTcu MTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5leHAKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Bv aW50ZXJzLmV4cAkyMDE2LTA4LTA3IDIxOjE4OjUxLjA4ODQ3NDIxNiArMDIwMAorQEAgLTAsMCAr MSwxMjMgQEAKKysjIENvcHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytzdGFuZGFyZF90ZXN0Zmls ZSAicG9pbnRlcnMuZjkwIgorK2xvYWRfbGliIGZvcnRyYW4uZXhwCisrCisraWYgeyBbcHJlcGFy ZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCisr ICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmICFb cnVudG9fbWFpbl0geworKyAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBtYWluIgorKyAg ICByZXR1cm4gLTEKKyt9CisrCisrIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyIGJlaW5nIHVz ZWQsIHRoZSB0eXBlIG5hbWVzIGNhbiBiZSBwcmludGVkIGRpZmZlcmVudGx5LgorK3NldCBsb2dp Y2FsIFtmb3J0cmFuX2xvZ2ljYWw0XQorK3NldCByZWFsIFtmb3J0cmFuX3JlYWw0XQorK3NldCBp bnQgW2ZvcnRyYW5faW50NF0KKytzZXQgY29tcGxleCBbZm9ydHJhbl9jb21wbGV4NF0KKysKKysK KytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQmVmb3JlIHBvaW50ZXIgYXNz aWdubWVudCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkJlZm9yZSBwb2ludGVyIGFz c2lnbm1lbnQiCisrZ2RiX3Rlc3QgInByaW50IGxvZ3AiICI9IFxcKFBUUiBUTyAtPiBcXCggJGxv Z2ljYWwgXFwpXFwpIDB4MCIgInByaW50IGxvZ3AsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0 ICJwcmludCAqbG9ncCIgIkNhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgwIiAicHJp bnQgKmxvZ3AsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCBjb21wIiAiPSBcXChQ VFIgVE8gLT4gXFwoICRjb21wbGV4IFxcKVxcKSAweDAiICJwcmludCBjb21wLCBub3QgYXNzb2Np YXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKmNvbXAiICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBh ZGRyZXNzIDB4MCIgInByaW50ICpjb21wLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJp bnQgY2hhcnAiICI9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMSBcXClcXCkgMHgwIiAi cHJpbnQgY2hhcnAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCAqY2hhcnAiICJD YW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICpjaGFycCwgbm90IGFz c29jaWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50IGNoYXJhcCIgIj0gXFwoUFRSIFRPIC0+IFxcKCBj aGFyYWN0ZXJcXCozIFxcKVxcKSAweDAiICJwcmludCBjaGFyYXAsIG5vdCBhc3NvY2lhdGVkIgor K2dkYl90ZXN0ICJwcmludCAqY2hhcmFwIiAiQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVz cyAweDAiICJwcmludCAqY2hhcmFwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQg aW50cCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkaW50IFxcKVxcKSAweDAiICJwcmludCBpbnRwLCBu b3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKmludHAiICJDYW5ub3QgYWNjZXNzIG1l bW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICppbnRwLCBub3QgYXNzb2NpYXRlZCIKKytzZXQg dGVzdCAicHJpbnQgaW50YXAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0X211bHRpcGxlICJw cmludCBpbnRhcCIgJHRlc3QgeworKyAgLXJlICIgPSBcXChQVFIgVE8gLT4gXFwoICRpbnQgXFwo Oiw6XFwpXFwpXFwpIDxub3QgYXNzb2NpYXRlZD5cclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBw YXNzICR0ZXN0CisrICB9CisrICAtcmUgIiA9IDxub3QgYXNzb2NpYXRlZD5cclxuJGdkYl9wcm9t cHQgJCIgeworKyAgICBwYXNzICR0ZXN0CisrICB9CisrfQorK2dkYl90ZXN0ICJwcmludCByZWFs cCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkcmVhbCBcXClcXCkgMHgwIiAicHJpbnQgcmVhbHAsIG5v dCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCAqcmVhbHAiICJDYW5ub3QgYWNjZXNzIG1l bW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICpyZWFscCwgbm90IGFzc29jaWF0ZWQiCisrZ2Ri X3Rlc3QgInByaW50IFwkbXlfdmFyID0gaW50cCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkaW50IFxc KVxcKSAweDAiCisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJl Zm9yZSB2YWx1ZSBhc3NpZ25tZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiQmVm b3JlIHZhbHVlIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInByaW50ICoodHdvcCklaXZsYTIiICI9 IDxub3QgYWxsb2NhdGVkPiIKKysKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251 bWJlciAiQWZ0ZXIgdmFsdWUgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgIkFmdGVyIHZhbHVlIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInByaW50IGxvZ3AiICI9IFxc KFBUUiBUTyAtPiBcXCggJGxvZ2ljYWwgXFwpXFwpICRoZXhcKCA8Lio+XCk/IgorK2dkYl90ZXN0 ICJwcmludCAqbG9ncCIgIj0gXFwuVFJVRVxcLiIKKytnZGJfdGVzdCAicHJpbnQgY29tcCIgIj0g XFwoUFRSIFRPIC0+IFxcKCAkY29tcGxleCBcXClcXCkgJGhleFwoIDwuKj5cKT8iCisrZ2RiX3Rl c3QgInByaW50ICpjb21wIiAiPSBcXCgxLDJcXCkiCisrZ2RiX3Rlc3QgInByaW50IGNoYXJwIiAi PSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEgXFwpXFwpICRoZXhcKCA8Lio+XCk/Igor K2dkYl90ZXN0ICJwcmludCAqY2hhcnAiICI9ICdhJyIKKytnZGJfdGVzdCAicHJpbnQgY2hhcmFw IiAiPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpXFwpICRoZXhcKCA8Lio+XCk/ IgorK2dkYl90ZXN0ICJwcmludCAqY2hhcmFwIiAiPSAnYWJjJyIKKytnZGJfdGVzdCAicHJpbnQg aW50cCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkaW50IFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKytn ZGJfdGVzdCAicHJpbnQgKmludHAiICI9IDEwIgorK3NldCB0ZXN0X25hbWUgInByaW50IGludGFw LCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0X211bHRpcGxlICJwcmludCBpbnRhcCIgJHRlc3RfbmFt ZSB7CisrICAtcmUgIj0gXFwoXFwoIDEsIDEsIDMoLCAxKXs3fVxcKSBcXCggMSgsIDEpezl9XFwp IFxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3RfbmFtZQorKyAgfQorKyAg LXJlICI9IFxcKFBUUiBUTyAtPiBcXCggJGludCBcXCgxMCwyXFwpXFwpXFwpICRoZXhcKCA8Lio+ XCk/XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgZ2RiX3Rlc3QgInByaW50ICppbnRhcCIgIj0g XFwoXFwoIDEsIDEsIDMoLCAxKXs3fVxcKSBcXCggMSgsIDEpezl9XFwpIFxcKSIKKysgICAgcGFz cyAkdGVzdF9uYW1lCisrICB9CisrfQorK3NldCB0ZXN0X25hbWUgInByaW50IGludHZsYXAsIGFz c29jaWF0ZWQiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInByaW50IGludHZsYXAiICR0ZXN0X25hbWUg eworKyAgLXJlICI9IFxcKDIsIDIsIDIsIDQoLCAyKXs2fVxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7 CisrICAgIHBhc3MgJHRlc3RfbmFtZQorKyAgfQorKyAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCgg JGludCBcXCgxMFxcKVxcKVxcKSAkaGV4XCggPC4qPlwpP1xyXG4kZ2RiX3Byb21wdCAkIiB7Cisr ICAgIGdkYl90ZXN0ICJwcmludCAqaW50dmxhcCIgIj0gXFwoMiwgMiwgMiwgNCgsIDIpezZ9XFwp IgorKyAgICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKyt9CisrZ2RiX3Rlc3QgInByaW50IHJlYWxw IiAiPSBcXChQVFIgVE8gLT4gXFwoICRyZWFsIFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKytnZGJf dGVzdCAicHJpbnQgKnJlYWxwIiAiPSAzXFwuMTQwMDBcXGQrIgorK2dkYl90ZXN0ICJwcmludCBh cnJheU9mUHRyKDIpJXAiICI9IFxcKFBUUiBUTyAtPiBcXCggVHlwZSB0d28gXFwpXFwpICRoZXhc KCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAqKGFycmF5T2ZQdHIoMiklcCkiICI9IFxcKCBp dmxhMSA9IFxcKDExLCAxMiwgMTNcXCksIGl2bGEyID0gXFwoXFwoIDIxMSwgMjIxXFwpIFxcKCAy MTIsIDIyMlxcKSBcXCkgXFwpIgorK3NldCB0ZXN0X25hbWUgInByaW50IGFycmF5T2ZQdHIoMykl cCIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdF9uYW1lICR0ZXN0X25hbWUgeworKyAgLXJlICI9 IFxcKFBUUiBUTyAtPiBcXCggVHlwZSB0d28gXFwpXFwpIDxub3QgYXNzb2NpYXRlZD5cclxuJGdk Yl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKysgIC1yZSAiPSBcXChQ VFIgVE8gLT4gXFwoIFR5cGUgdHdvIFxcKVxcKSAweDBcclxuJGdkYl9wcm9tcHQgJCIgeworKyAg ICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKyt9Cisrc2V0IHRlc3RfbmFtZSAicHJpbnQgKihhcnJh eU9mUHRyKDMpJXApLCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0X211bHRpcGxlICJwcmludCAqKGFy cmF5T2ZQdHIoMyklcCkiICR0ZXN0X25hbWUgeworKyAgLXJlICJDYW5ub3QgYWNjZXNzIG1lbW9y eSBhdCBhZGRyZXNzIDB4MFxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3RfbmFt ZQorKyAgfQorKyAgLXJlICJBdHRlbXB0IHRvIHRha2UgY29udGVudHMgb2YgYSBub3QgYXNzb2Np YXRlZCBwb2ludGVyLlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3RfbmFtZQor KyAgfQorK30KKytnZGJfdGVzdCAicHJpbnQgKigoaW50ZWdlciopICZpbnRhICsgMikiICI9IDMi ICJwcmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYXJyYXkiCisrZ2RiX3Rlc3QgInByaW50ICooKGlu dGVnZXIqKSAmaW50dmxhICsgMykiICI9IDQiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYWxs b2NhdGVkIHZsYSIKKytnZGJfdGVzdCAicHJpbnQgXCRwYyIgIj0gXFwoUFRSIFRPIC0+IFxcKCB2 b2lkIFxcKFxcKVxcKFxcKVxcKVxcKSAkaGV4IDxwb2ludGVyc1xcK1xcZCs+IiAiUHJpbnQgcHJv Z3JhbSBjb3VudGVyIgorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAx NjA4MDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MAkyMDE2LTA4 LTA3IDIxOjE4OjQ0LjAzMzQwOTA3NCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCTIwMTYtMDgtMDcgMjE6MTg6NTEu MDg4NDc0MjE2ICswMjAwCitAQCAtMjAsMTQgKzIwLDIwIEBACisgICAgIGludGVnZXIsIGFsbG9j YXRhYmxlIDo6IGl2bGEyICg6LCA6KQorICAgZW5kIHR5cGUgdHdvCisgCisrICB0eXBlIDo6IHR3 b1B0cgorKyAgICB0eXBlICh0d28pLCBwb2ludGVyIDo6IHAKKysgIGVuZCB0eXBlIHR3b1B0cgor KworICAgbG9naWNhbCwgdGFyZ2V0IDo6IGxvZ3YKKyAgIGNvbXBsZXgsIHRhcmdldCA6OiBjb212 CisgICBjaGFyYWN0ZXIsIHRhcmdldCA6OiBjaGFydgorICAgY2hhcmFjdGVyIChsZW49MyksIHRh cmdldCA6OiBjaGFyYQorICAgaW50ZWdlciwgdGFyZ2V0IDo6IGludHYKKyAgIGludGVnZXIsIHRh cmdldCwgZGltZW5zaW9uICgxMCwyKSA6OiBpbnRhCisrICBpbnRlZ2VyLCB0YXJnZXQsIGFsbG9j YXRhYmxlLCBkaW1lbnNpb24gKDopIDo6IGludHZsYQorICAgcmVhbCwgdGFyZ2V0ICAgIDo6IHJl YWx2CisgICB0eXBlKHR3byksIHRhcmdldCAgOjogdHdvdgorKyAgdHlwZSh0d29QdHIpIDo6IGFy cmF5T2ZQdHIgKDMpCisgCisgICBsb2dpY2FsLCBwb2ludGVyIDo6IGxvZ3AKKyAgIGNvbXBsZXgs IHBvaW50ZXIgOjogY29tcAorQEAgLTM1LDYgKzQxLDcgQEAKKyAgIGNoYXJhY3RlciAobGVuPTMp LCBwb2ludGVyOjogY2hhcmFwCisgICBpbnRlZ2VyLCBwb2ludGVyIDo6IGludHAKKyAgIGludGVn ZXIsIHBvaW50ZXIsIGRpbWVuc2lvbiAoOiw6KSA6OiBpbnRhcAorKyAgaW50ZWdlciwgcG9pbnRl ciwgZGltZW5zaW9uICg6KSA6OiBpbnR2bGFwCisgICByZWFsLCBwb2ludGVyIDo6IHJlYWxwCisg ICB0eXBlKHR3byksIHBvaW50ZXIgOjogdHdvcAorIAorQEAgLTQ0LDggKzUxLDEyIEBACisgICBu dWxsaWZ5IChjaGFyYXApCisgICBudWxsaWZ5IChpbnRwKQorICAgbnVsbGlmeSAoaW50YXApCisr ICBudWxsaWZ5IChpbnR2bGFwKQorICAgbnVsbGlmeSAocmVhbHApCisgICBudWxsaWZ5ICh0d29w KQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigxKSVwKQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigy KSVwKQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigzKSVwKQorIAorICAgbG9ncCA9PiBsb2d2ICAg ICEgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudAorICAgY29tcCA9PiBjb212CitAQCAtNTMsOCAr NjQsMTAgQEAKKyAgIGNoYXJhcCA9PiBjaGFyYQorICAgaW50cCA9PiBpbnR2CisgICBpbnRhcCA9 PiBpbnRhCisrICBpbnR2bGFwID0+IGludHZsYQorICAgcmVhbHAgPT4gcmVhbHYKKyAgIHR3b3Ag PT4gdHdvdgorKyAgYXJyYXlPZlB0cigyKSVwID0+IHR3b3YKKyAKKyAgIGxvZ3YgPSBhc3NvY2lh dGVkKGxvZ3ApICAgICAhIEJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50CisgICBjb212ID0gY21wbHgo MSwyKQorQEAgLTYzLDYgKzc2LDEwIEBACisgICBpbnR2ID0gMTAKKyAgIGludGEoOiw6KSA9IDEK KyAgIGludGEoMywxKSA9IDMKKysgIGFsbG9jYXRlIChpbnR2bGEoMTApKQorKyAgaW50dmxhKDop ID0gMgorKyAgaW50dmxhKDQpID0gNAorKyAgaW50dmxhcCA9PiBpbnR2bGEKKyAgIHJlYWx2ID0g My4xNAorIAorICAgYWxsb2NhdGUgKHR3b3YlaXZsYTEoMykpCitJbmRleDogZ2RiLTcuMTEuOTAu MjAxNjA4MDcvZ2RiL3ZhbG9wcy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4 MDcub3JpZy9nZGIvdmFsb3BzLmMJMjAxNi0wOC0wNyAyMToxODo0NC4wMzU0MDkwOTMgKzAyMDAK KysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdmFsb3BzLmMJMjAxNi0wOC0wNyAyMToxODo1 MS4wODk0NzQyMjUgKzAyMDAKK0BAIC0xNTYyLDYgKzE1NjIsMTkgQEAKKyAgIGlmIChUWVBFX0NP REUgKGJhc2VfdHlwZSkgPT0gVFlQRV9DT0RFX1BUUikKKyAgICAgeworICAgICAgIHN0cnVjdCB0 eXBlICplbmNfdHlwZTsKKysgICAgICBDT1JFX0FERFIgYWRkcjsKKysKKysgICAgICBpZiAodHlw ZV9ub3RfYXNzb2NpYXRlZCAoYmFzZV90eXBlKSkKKysgICAgICAgIGVycm9yIChfKCJBdHRlbXB0 IHRvIHRha2UgY29udGVudHMgb2YgYSBub3QgYXNzb2NpYXRlZCBwb2ludGVyLiIpKTsKKysKKysg ICAgICBpZiAoTlVMTCAhPSBUWVBFX0RBVEFfTE9DQVRJT04gKFRZUEVfVEFSR0VUX1RZUEUgKGJh c2VfdHlwZSkpKQorKwlhZGRyID0gdmFsdWVfYWRkcmVzcyAoYXJnMSk7CisrICAgICAgZWxzZQor KwlhZGRyID0gdmFsdWVfYXNfYWRkcmVzcyAoYXJnMSk7CisrCisrICAgICAgaWYgKGFkZHIgIT0g MCkKKysJVFlQRV9UQVJHRVRfVFlQRSAoYmFzZV90eXBlKSA9CisrCSAgICByZXNvbHZlX2R5bmFt aWNfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAoYmFzZV90eXBlKSwgTlVMTCwgYWRkcik7CisgCisg ICAgICAgLyogV2UgbWF5IGJlIHBvaW50aW5nIHRvIHNvbWV0aGluZyBlbWJlZGRlZCBpbiBhIGxh cmdlciBvYmplY3QuCisgICAgICAgICAgR2V0IHRoZSByZWFsIHR5cGUgb2YgdGhlIGVuY2xvc2lu ZyBvYmplY3QuICAqLworQEAgLTE1NzcsOCArMTU5MCw3IEBACisgICAgICAgZWxzZQorIAkvKiBS ZXRyaWV2ZSB0aGUgZW5jbG9zaW5nIG9iamVjdCBwb2ludGVkIHRvLiAgKi8KKyAJYXJnMiA9IHZh bHVlX2F0X2xhenkgKGVuY190eXBlLCAKKy0JCQkgICAgICAodmFsdWVfYXNfYWRkcmVzcyAoYXJn MSkKKy0JCQkgICAgICAgLSB2YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoYXJnMSkpKTsKKysJCQkg ICAgICAoYWRkciAtIHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChhcmcxKSkpOworIAorICAgICAg IGVuY190eXBlID0gdmFsdWVfdHlwZSAoYXJnMik7CisgICAgICAgcmV0dXJuIHJlYWRqdXN0X2lu ZGlyZWN0X3ZhbHVlX3R5cGUgKGFyZzIsIGVuY190eXBlLCBiYXNlX3R5cGUsIGFyZzEpOworSW5k ZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi92YWxwcmludC5jCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdmFscHJpbnQuYwkyMDE2LTA4LTA3IDA0OjAw OjAxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi92YWxwcmlu dC5jCTIwMTYtMDgtMDcgMjE6MTg6NTEuMDkwNDc0MjM1ICswMjAwCitAQCAtMTE0MSwxMiArMTE0 MSw2IEBACisgICAgICAgcmV0dXJuIDA7CisgICAgIH0KKyAKKy0gIGlmICh0eXBlX25vdF9hc3Nv Y2lhdGVkICh2YWx1ZV90eXBlICh2YWwpKSkKKy0gICAgeworLSAgICAgIHZhbF9wcmludF9ub3Rf YXNzb2NpYXRlZCAoc3RyZWFtKTsKKy0gICAgICByZXR1cm4gMDsKKy0gICAgfQorLQorICAgaWYg KHR5cGVfbm90X2FsbG9jYXRlZCAodmFsdWVfdHlwZSAodmFsKSkpCisgICAgIHsKKyAgICAgICB2 YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKCmRpZmYgLS1naXQgYS9nZGItdmxhLWlu dGVsLTZvZjcucGF0Y2ggYi9nZGItdmxhLWludGVsLTZvZjcucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNDU5NjhlOQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12bGEt aW50ZWwtNm9mNy5wYXRjaApAQCAtMCwwICsxLDEwMiBAQAorRnJvbSA4NjY1MzQ0YzE0YjlhZThi MmUwYzM3YmEwNmQ2ODgxYTU0NmQxYTM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog QmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAx MiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3ViamVjdDogW1BBVENIIDYvN10gRm9ydHJhbjog VGVzdHN1aXRlLCBhZGQgY3ljbGljIHBvaW50ZXJzLgorCisyMDE2LTA1LTI1ICBCZXJuaGFyZCBI ZWNrZWwgIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorCitnZGIvdGVzdHN1aXRlL0NoYW5n ZWxvZzoKKwkqIHBvaW50ZXJzLmY5MDogQWRkIGN5bGljIHBvaW50ZXJzLgorCSogcG9pbnRlcnMu ZXhwOiBBZGQgcHJpbnQgb2YgY3ljbGljIHBvaW50ZXJzLgorCitDaGFuZ2UtSWQ6IEljM2I2MTg3 YzU5ODBmZDZjMzdlMmU5NDc4N2Y4MzIxZTViN2YyZDc1CistLS0KKyBnZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3BvaW50ZXJzLmV4cCB8IDIwICsrKysrKysrKysrKysrKysrKysrCisgZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAgfCAxMiArKysrKysrKysrKysKKyAyIGZp bGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9w b2ludGVycy5leHAKK2luZGV4IGMxOWQ3ZTAuLjY3Y2Y5OTkgMTAwNjQ0CistLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9wb2ludGVycy5leHAKK0BAIC01Nyw2ICs1NywyNCBAQCBnZGJfdGVzdF9tdWx0aXBs ZSAicHJpbnQgaW50YXAiICR0ZXN0IHsKKyBnZGJfdGVzdCAicHJpbnQgcmVhbHAiICI9IFxcKFBU UiBUTyAtPiBcXCggJHJlYWwgXFwpXFwpIDB4MCIgInByaW50IHJlYWxwLCBub3QgYXNzb2NpYXRl ZCIKKyBnZGJfdGVzdCAicHJpbnQgKnJlYWxwIiAiQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRk cmVzcyAweDAiICJwcmludCAqcmVhbHAsIG5vdCBhc3NvY2lhdGVkIgorIGdkYl90ZXN0ICJwcmlu dCBcJG15X3ZhciA9IGludHAiICI9IFxcKFBUUiBUTyAtPiBcXCggJGludCBcXClcXCkgMHgwIgor K3NldCB0ZXN0ICJwcmludCBjeWNsaWNwMSwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3RfbXVs dGlwbGUgInByaW50IGN5Y2xpY3AxIiAkdGVzdCB7CisrICAtcmUgIj0gXFwoIGkgPSAtP1xcZCss IHAgPSAweDAgXFwpXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdAorKyAgfQor KyAgLXJlICI9IFxcKCBpID0gLT9cXGQrLCBwID0gPG5vdCBhc3NvY2lhdGVkPiBcXClcclxuJGdk Yl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0CisrICB9CisrfQorK3NldCB0ZXN0ICJwcmlu dCBjeWNsaWNwMSVwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQg Y3ljbGljcDElcCIgJHRlc3QgeworKyAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCggVHlwZSB0eXBl d2l0aHBvaW50ZXIgXFwpXFwpIDB4MFxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRl c3QKKysgIH0KKysgIC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUgdHlwZXdpdGhwb2ludGVy IFxcKVxcKSA8bm90IGFzc29jaWF0ZWQ+XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAk dGVzdAorKyAgfQorK30KKyAKKyAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAiQmVmb3JlIHZhbHVlIGFzc2lnbm1lbnQiXQorQEAgLTExOCw2ICsxMzYsOCBAQCBnZGJfdGVz dF9tdWx0aXBsZSAicHJpbnQgKihhcnJheU9mUHRyKDMpJXApIiAkdGVzdF9uYW1lIHsKKyAgICAg cGFzcyAkdGVzdF9uYW1lCisgICB9CisgfQorK2dkYl90ZXN0ICJwcmludCBjeWNsaWNwMSIgIj0g XFwoIGkgPSAxLCBwID0gJGhleFwoIDwuKj5cKT8gXFwpIgorK2dkYl90ZXN0ICJwcmludCBjeWNs aWNwMSVwIiAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUgdHlwZXdpdGhwb2ludGVyIFxcKVxcKSAk aGV4XCggPC4qPlwpPyIKKyBnZGJfdGVzdCAicHJpbnQgKigoaW50ZWdlciopICZpbnRhICsgMiki ICI9IDMiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYXJyYXkiCisgZ2RiX3Rlc3QgInByaW50 ICooKGludGVnZXIqKSAmaW50dmxhICsgMykiICI9IDQiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRl ciwgYWxsb2NhdGVkIHZsYSIKKyBnZGJfdGVzdCAicHJpbnQgXCRwYyIgIj0gXFwoUFRSIFRPIC0+ IFxcKCB2b2lkIFxcKFxcKVxcKFxcKVxcKVxcKSAkaGV4IDxwb2ludGVyc1xcK1xcZCs+IiAiUHJp bnQgcHJvZ3JhbSBjb3VudGVyIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vcG9pbnRlcnMuZjkwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAK K2luZGV4IDAwMDE5M2MuLjYyNDBjODcgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3BvaW50ZXJzLmY5MAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2lu dGVycy5mOTAKK0BAIC0yMCw2ICsyMCwxMSBAQCBwcm9ncmFtIHBvaW50ZXJzCisgICAgIGludGVn ZXIsIGFsbG9jYXRhYmxlIDo6IGl2bGEyICg6LCA6KQorICAgZW5kIHR5cGUgdHdvCisgCisrICB0 eXBlIDo6IHR5cGVXaXRoUG9pbnRlcgorKyAgICBpbnRlZ2VyIGkKKysgICAgdHlwZSh0eXBlV2l0 aFBvaW50ZXIpLCBwb2ludGVyOjogcAorKyAgZW5kIHR5cGUgdHlwZVdpdGhQb2ludGVyCisrCisg ICB0eXBlIDo6IHR3b1B0cgorICAgICB0eXBlICh0d28pLCBwb2ludGVyIDo6IHAKKyAgIGVuZCB0 eXBlIHR3b1B0cgorQEAgLTM0LDYgKzM5LDcgQEAgcHJvZ3JhbSBwb2ludGVycworICAgcmVhbCwg dGFyZ2V0ICAgIDo6IHJlYWx2CisgICB0eXBlKHR3byksIHRhcmdldCAgOjogdHdvdgorICAgdHlw ZSh0d29QdHIpIDo6IGFycmF5T2ZQdHIgKDMpCisrICB0eXBlKHR5cGVXaXRoUG9pbnRlciksIHRh cmdldDo6IGN5Y2xpY3AxLGN5Y2xpY3AyCisgCisgICBsb2dpY2FsLCBwb2ludGVyIDo6IGxvZ3AK KyAgIGNvbXBsZXgsIHBvaW50ZXIgOjogY29tcAorQEAgLTU3LDYgKzYzLDggQEAgcHJvZ3JhbSBw b2ludGVycworICAgbnVsbGlmeSAoYXJyYXlPZlB0cigxKSVwKQorICAgbnVsbGlmeSAoYXJyYXlP ZlB0cigyKSVwKQorICAgbnVsbGlmeSAoYXJyYXlPZlB0cigzKSVwKQorKyAgbnVsbGlmeSAoY3lj bGljcDElcCkKKysgIG51bGxpZnkgKGN5Y2xpY3AyJXApCisgCisgICBsb2dwID0+IGxvZ3YgICAg ISBCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50CisgICBjb21wID0+IGNvbXYKK0BAIC02OCw2ICs3 NiwxMCBAQCBwcm9ncmFtIHBvaW50ZXJzCisgICByZWFscCA9PiByZWFsdgorICAgdHdvcCA9PiB0 d292CisgICBhcnJheU9mUHRyKDIpJXAgPT4gdHdvdgorKyAgY3ljbGljcDElaSA9IDEKKysgIGN5 Y2xpY3AxJXAgPT4gY3ljbGljcDIKKysgIGN5Y2xpY3AyJWkgPSAyCisrICBjeWNsaWNwMiVwID0+ IGN5Y2xpY3AxCisgCisgICBsb2d2ID0gYXNzb2NpYXRlZChsb2dwKSAgICAgISBCZWZvcmUgdmFs dWUgYXNzaWdubWVudAorICAgY29tdiA9IGNtcGx4KDEsMikKKy0tIAorMi43LjQKKwoKZGlmZiAt LWdpdCBhL2dkYi12bGEtaW50ZWwtN29mNy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtN29mNy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjZjMzQxCi0tLSAvZGV2L251 bGwKKysrIGIvZ2RiLXZsYS1pbnRlbC03b2Y3LnBhdGNoCkBAIC0wLDAgKzEsNTE4IEBACitGcm9t IDFlNWJkOWFlYzllZTAyYzJmNzcxZTRkYzk5NzU3MGM4MmQ3NGIzYjggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBCZXJuaGFyZCBIZWNrZWwgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5j b20+CitEYXRlOiBUdWUsIDEyIEp1bCAyMDE2IDA4OjE5OjM0ICswMjAwCitTdWJqZWN0OiBbUEFU Q0ggNy83XSBmb3J0X2R5bl9hcnJheTogRm9ydHJhbiBkeW5hbWljIHN0cmluZyBzdXBwb3J0CisK K1RoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgc2VtYW50aWMgb2YgdGhlIER3YXJmIHN0cmluZyBsZW5n dGgKK2F0dHJpYnV0ZSB0byByZWZsZWN0IHRoZSBzdGFuZGFyZCBhcyB3ZWxsIGFzIGVuYWJsZXMK K2NvcnJlY3Qgc3RyaW5nIGxlbmd0aCBjYWxjdWxhdGlvbiBvZiBkeW5hbWljIHN0cmluZ3MuIEFk ZAordGVzdHMgZm9yIHZhcm91cyBkeW5hbWljIHN0cmluZyBldmFsdWF0aW9ucy4KKworT2xkOgor KGdkYikgcCBteV9keW5fc3RyaW5nCitDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4 NjA1ZmMwCisKK05ldzoKKyhnZGIpIHAgKm15X2R5bl9zdHJpbmcKKyQxID0gJ2ZvbycKKworZ2Ri L0NoYW5nbG9nOgorCSogZHdhcmYycmVhZC5jIChyZWFkX3RhZ19zdHJpbmdfdHlwZSk6IGNoYW5n ZWQKKwlzZW1hbnRpYyBvZiBEV19BVF9zdHJpbmdfbGVuZ3RoIHRvIGJlIGFibGUgdG8KKwloYW5k bGUgRHdhcmYgYmxvY2tzIGFzIHdlbGwuIFN1cHBvcnQgZm9yCisJRFdfQVRfYnl0ZV9sZW5ndGgg YWRkZWQgdG8gZ2V0IGNvcnJlY3QgbGVuZ3RoCisJaWYgc3BlY2lmaWVkIGluIGNvbWJpbmF0aW9u IHdpdGgKKwlEV19BVF9zdHJpbmdfbGVuZ3RoLgorCShhdHRyX3RvX2R5bmFtaWNfcHJvcCk6IGFk ZGVkCisJZnVuY3Rpb25hbGl0eSB0byBhZGQgRHdhcmYgb3BlcmF0b3JzIHRvIGJhdG9uCisJZGF0 YSBhdHRyaWJ1dGUuIEFkZGVkIHBvc3QgdmFsdWVzIHRvIGJhdG9uCisJYXMgcmVxdWlyZWQgYnkg dGhlIHN0cmluZyBldmFsdWF0aW9uIGNhc2UuCisJKHJlYWRfc3VicmFuZ2VfdHlwZSk6IEFkYXB0 IGNhbGxlci4KKwkoc2V0X2RpZV90eXBlKTogQWRhcHQgY2FsbGVyLgorCShhZGRfcG9zdF92YWx1 ZXNfdG9fYmF0b24pOiBOZXcgZnVuY3Rpb24uCisgICAgCSogZ2RidHlwZXMuYyAocmVzb2x2ZV9k eW5hbWljX3R5cGUpOiBBZGQKKyAgICAJY29uZGl0aW9ucyB0byBzdXBwb3J0IHN0cmluZyB0eXBl cy4KKyAgICAJKHJlc29sdmVfZHluYW1pY19hcnJheSk6IEFkZCBjb25kaXRpb25zIGZvciBkeW5h bWljCisgICAgCXN0cmluZ3MgYW5kIGNyZWF0ZSBhIG5ldyBzdHJpbmcgdHlwZS4KKyAgICAJKGlz X2R5bmFtaWNfdHlwZSk6IEZvbGxvdyBwb2ludGVyIGlmIGEgc3RyaW5nIHR5cGUKKyAgICAJd2Fz IGRldGVjdGVkLCBhcyBGb3J0cmFuIHN0cmluZ3MgYXJlIHJlcHJlc2VudGVkCisgICAgCWFzIHBv aW50ZXJzIHRvIHN0cmluZ3MgaW50ZXJuYWxseS4KKworZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2Vsb2c6 CisJKiB2bGEtc3RyaW5ncy5mOTA6IE5ldyBmaWxlLgorCSogdmxhLXN0cmluZ3MuZXhwOiBOZXcg ZmlsZS4KKworQ2hhbmdlLUlkOiBJN2Q3ZjQ3YzdhNDkwMGE3ZmRiNTExMDIwMzI0NTViNTNkNjBl NjBkNworLS0tCisgZ2RiL2R3YXJmMnJlYWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx NTggKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCisgZ2RiL2dkYnR5cGVzLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMTUgKystCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtc3RyaW5ncy5leHAgfCAxMDMgKysrKysrKysrKysrKysrKysrKworIGdkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwIHwgIDM5ICsrKysrKysrCisgNCBmaWxlcyBj aGFuZ2VkLCAyODUgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUg MTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCisgY3JlYXRl IG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCisK K2RpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYworaW5kZXgg NjY1OGEzOC4uNjc4ZGE4ZiAxMDA2NDQKKy0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKKysrKyBiL2dk Yi9kd2FyZjJyZWFkLmMKK0BAIC0xNzY0LDcgKzE3NjQsOCBAQCBzdGF0aWMgdm9pZCByZWFkX3Np Z25hdHVyZWRfdHlwZSAoc3RydWN0IHNpZ25hdHVyZWRfdHlwZSAqKTsKKyAKKyBzdGF0aWMgaW50 IGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAorIAkJ CQkgc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LAorLQkJCQkgc3Ry dWN0IGR5bmFtaWNfcHJvcCAqcHJvcCk7CisrCQkJCSBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9w LCBjb25zdCBnZGJfYnl0ZSAqYWRkaXRpb25hbF9kYXRhLAorKwkJCQkgaW50IGFkZGl0aW9uYWxf ZGF0YV9zaXplKTsKKyAKKyAvKiBtZW1vcnkgYWxsb2NhdGlvbiBpbnRlcmZhY2UgKi8KKyAKK0BA IC0xMTQzNyw3ICsxMTQzOCw3IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgICB7CisgICAgICAgbmV3b2JqLT5zdGF0aWNf bGluaworIAk9IFhPQk5FVyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgc3RydWN0IGR5bmFt aWNfcHJvcCk7CistICAgICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsIG5l d29iai0+c3RhdGljX2xpbmspOworKyAgICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBk aWUsIGN1LCBuZXdvYmotPnN0YXRpY19saW5rLCBOVUxMLCAwKTsKKyAgICAgfQorIAorICAgY3Ut Pmxpc3RfaW5fc2NvcGUgPSAmbG9jYWxfc3ltYm9sczsKK0BAIC0xNDQ5NSwyOSArMTQ0OTYsOTQg QEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJj aCAob2JqZmlsZSk7CisgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90 eXBlLCAqY2hhcl90eXBlOworICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKKy0gIHVuc2lnbmVk IGludCBsZW5ndGg7CisrICB1bnNpZ25lZCBpbnQgbGVuZ3RoID0gVUlOVF9NQVg7CisrCisrICBp bmRleF90eXBlID0gb2JqZmlsZV90eXBlIChvYmpmaWxlKS0+YnVpbHRpbl9pbnQ7CisrICByYW5n ZV90eXBlID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLCBpbmRleF90eXBlLCAxLCBs ZW5ndGgpOworIAorKyAgLyogSWYgRFdfQVRfc3RyaW5nX2xlbmd0aCBpcyBkZWZpbmVkLCB0aGUg bGVuZ3RoIGlzIHN0b3JlZCBpbiBtZW1vcnkuICAqLworICAgYXR0ciA9IGR3YXJmMl9hdHRyIChk aWUsIERXX0FUX3N0cmluZ19sZW5ndGgsIGN1KTsKKyAgIGlmIChhdHRyKQorICAgICB7CistICAg ICAgbGVuZ3RoID0gRFdfVU5TTkQgKGF0dHIpOworKyAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxv Y2sgKGF0dHIpKQorKwl7CisrCSAgc3RydWN0IGF0dHJpYnV0ZSAqYnl0ZV9zaXplLCAqYml0X3Np emU7CisrCSAgc3RydWN0IGR5bmFtaWNfcHJvcCBoaWdoOworKworKwkgIGJ5dGVfc2l6ZSA9IGR3 YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOworKwkgIGJpdF9zaXplID0gZHdh cmYyX2F0dHIgKGRpZSwgRFdfQVRfYml0X3NpemUsIGN1KTsKKysKKysJICAvKiBEV19BVF9ieXRl X3NpemUgc2hvdWxkIG5ldmVyIG9jY3VyIGluIGNvbWJpbmF0aW9uIHdpdGgKKysJICAgICBEV19B VF9iaXRfc2l6ZS4gICovCisrCSAgaWYgKGJ5dGVfc2l6ZSAhPSBOVUxMICYmIGJpdF9zaXplICE9 IE5VTEwpCisrCSAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisrCQkgICAgICAg XygiRFdfQVRfYnl0ZV9zaXplIEFORCAiCisrCQkJICJEV19BVF9iaXRfc2l6ZSBmb3VuZCB0b2dl dGhlciBhdCB0aGUgc2FtZSB0aW1lLiIpKTsKKysKKysJICAvKiBJZiBEV19BVF9zdHJpbmdfbGVu Z3RoIEFORCBEV19BVF9ieXRlX3NpemUgZXhpc3QgdG9nZXRoZXIsCisrCSAgICAgRFdfQVRfYnl0 ZV9zaXplIGRlc2NyaWJlcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgc2hvdWxkIGJlIHJlYWQK KysJICAgICBmcm9tIHRoZSBsZW5ndGggbWVtb3J5IGxvY2F0aW9uLiAgKi8KKysJICBpZiAoYnl0 ZV9zaXplICE9IE5VTEwpCisrCSAgICB7CisrCSAgICAgIC8qIEJ1aWxkIG5ldyBkd2FyZjJfbG9j ZXhwcl9iYXRvbiBzdHJ1Y3R1cmUgd2l0aCBhZGRpdGlvbnMgdG8gdGhlCisrCQkgZGF0YSBhdHRy aWJ1dGUsIHRvIHJlZmxlY3QgRFdBUkYgc3BlY2lhbGl0aWVzIHRvIGdldCBhZGRyZXNzCisrCQkg c2l6ZXMuICAqLworKwkgICAgICBjb25zdCBnZGJfYnl0ZSBhcHBlbmRfb3BzW10gPQorKwkJewor KwkJLyogRFdfT1BfZGVyZWZfc2l6ZTogc2l6ZSBvZiBhbiBhZGRyZXNzIG9uIHRoZSB0YXJnZXQg bWFjaGluZQorKwkJICAgKGJ5dGVzKSwgd2hlcmUgdGhlIHNpemUgd2lsbCBiZSBzcGVjaWZpZWQg YnkgdGhlIG5leHQKKysJCSAgIG9wZXJhbmQuICAqLworKwkJRFdfT1BfZGVyZWZfc2l6ZSwKKysJ CS8qIE9wZXJhbmQgZm9yIERXX09QX2RlcmVmX3NpemUuICAqLworKwkJRFdfVU5TTkQoYnl0ZV9z aXplKSB9OworKworKwkgICAgICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUs IGN1LCAmaGlnaCwgYXBwZW5kX29wcywKKysJCQkJCSBBUlJBWV9TSVpFKGFwcGVuZF9vcHMpKSkK KysJCWNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKKysJCQkgICBfKCJDb3VsZCBub3Qg cGFyc2UgRFdfQVRfYnl0ZV9zaXplIikpOworKwkgICAgfQorKwkgIGVsc2UgaWYgKGJpdF9zaXpl ICE9IE5VTEwpCisrCSAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisrCQkgICAg ICAgXygiRFdfQVRfc3RyaW5nX2xlbmd0aCBBTkQgIgorKwkJCSAiRFdfQVRfYml0X3NpemUgZm91 bmQgYnV0IG5vdCBzdXBwb3J0ZWQgeWV0LiIpKTsKKysJICAvKiBJZiBEV19BVF9zdHJpbmdfbGVu Z3RoIFdJVEhPVVQgRFdfQVRfYnl0ZV9zaXplIGV4aXN0LCB0aGUgZGVmYXVsdAorKwkgICAgIGlz IHRoZSBhZGRyZXNzIHNpemUgb2YgdGhlIHRhcmdldCBtYWNoaW5lLiAgKi8KKysJICBlbHNlCisr CSAgICB7CisrCSAgICAgIGNvbnN0IGdkYl9ieXRlIGFwcGVuZF9vcHNbXSA9CisrCQl7IERXX09Q X2RlcmVmIH07CisrCisrCSAgICAgIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRp ZSwgY3UsICZoaWdoLCBhcHBlbmRfb3BzLAorKwkJCQkJIEFSUkFZX1NJWkUoYXBwZW5kX29wcykp KQorKwkJY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJCSAgIF8oIkNvdWxkIG5v dCBwYXJzZSBEV19BVF9zdHJpbmdfbGVuZ3RoIikpOworKwkgICAgfQorKworKwkgIFRZUEVfUkFO R0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2ggPSBoaWdoOworKwl9CisrICAgICAgZWxzZQorKwl7 CisrCSAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IERXX1VOU05EKGF0dHIpOworKwkg IFRZUEVfSElHSF9CT1VORF9LSU5EIChyYW5nZV90eXBlKSA9IFBST1BfQ09OU1Q7CisrCX0KKyAg ICAgfQorICAgZWxzZQorICAgICB7CistICAgICAgLyogQ2hlY2sgZm9yIHRoZSBEV19BVF9ieXRl X3NpemUgYXR0cmlidXRlLiAgKi8KKysgICAgICAvKiBDaGVjayBmb3IgdGhlIERXX0FUX2J5dGVf c2l6ZSBhdHRyaWJ1dGUsIHdoaWNoIHJlcHJlc2VudHMgdGhlIGxlbmd0aAorKwkgaW4gdGhpcyBj YXNlLiAgKi8KKyAgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9zaXpl LCBjdSk7CisgICAgICAgaWYgKGF0dHIpCistICAgICAgICB7CistICAgICAgICAgIGxlbmd0aCA9 IERXX1VOU05EIChhdHRyKTsKKy0gICAgICAgIH0KKysJeworKwkgIFRZUEVfSElHSF9CT1VORCAo cmFuZ2VfdHlwZSkgPSBEV19VTlNORChhdHRyKTsKKysJICBUWVBFX0hJR0hfQk9VTkRfS0lORCAo cmFuZ2VfdHlwZSkgPSBQUk9QX0NPTlNUOworKwl9CisgICAgICAgZWxzZQorLSAgICAgICAgewor LSAgICAgICAgICBsZW5ndGggPSAxOworLSAgICAgICAgfQorKwl7CisrCSAgVFlQRV9ISUdIX0JP VU5EIChyYW5nZV90eXBlKSA9IDE7CisrCSAgVFlQRV9ISUdIX0JPVU5EX0tJTkQgKHJhbmdlX3R5 cGUpID0gUFJPUF9DT05TVDsKKysJfQorICAgICB9CisgCistICBpbmRleF90eXBlID0gb2JqZmls ZV90eXBlIChvYmpmaWxlKS0+YnVpbHRpbl9pbnQ7CistICByYW5nZV90eXBlID0gY3JlYXRlX3N0 YXRpY19yYW5nZV90eXBlIChOVUxMLCBpbmRleF90eXBlLCAxLCBsZW5ndGgpOworICAgY2hhcl90 eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2RlZm4sIGdkYmFy Y2gpOworICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90eXBlLCByYW5n ZV90eXBlKTsKKyAKK0BAIC0xNDg0Nyw3ICsxNDkxMyw4IEBAIHJlYWRfYmFzZV90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCisgc3RhdGljIGludAor IGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1 Y3QgZGllX2luZm8gKmRpZSwKKy0JCSAgICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1LCBzdHJ1Y3Qg ZHluYW1pY19wcm9wICpwcm9wKQorKwkJICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UsIHN0cnVj dCBkeW5hbWljX3Byb3AgKnByb3AsCisrCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqYWRkaXRpb25h bF9kYXRhLCBpbnQgYWRkaXRpb25hbF9kYXRhX3NpemUpCisgeworICAgc3RydWN0IGR3YXJmMl9w cm9wZXJ0eV9iYXRvbiAqYmF0b247CisgICBzdHJ1Y3Qgb2JzdGFjayAqb2JzdGFjayA9ICZjdS0+ b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrOworQEAgLTE0ODU3LDE0ICsxNDkyNCwzMyBAQCBhdHRy X3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGRp ZV9pbmZvICpkaWUsCisgCisgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKKyAgICAg eworLSAgICAgIGJhdG9uID0gWE9CTkVXIChvYnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5 X2JhdG9uKTsKKysgICAgICBiYXRvbiA9IFhPQk5FVyhvYnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3By b3BlcnR5X2JhdG9uKTsKKyAgICAgICBiYXRvbi0+cmVmZXJlbmNlZF90eXBlID0gTlVMTDsKKyAg ICAgICBiYXRvbi0+bG9jZXhwci5wZXJfY3UgPSBjdS0+cGVyX2N1OworLSAgICAgIGJhdG9uLT5s b2NleHByLnNpemUgPSBEV19CTE9DSyAoYXR0ciktPnNpemU7CistICAgICAgYmF0b24tPmxvY2V4 cHIuZGF0YSA9IERXX0JMT0NLIChhdHRyKS0+ZGF0YTsKKysKKysgICAgICBpZiAoYWRkaXRpb25h bF9kYXRhICE9IE5VTEwgJiYgYWRkaXRpb25hbF9kYXRhX3NpemUgPiAwKQorKwl7CisrCSAgZ2Ri X2J5dGUgKmRhdGE7CisrCisrCSAgZGF0YSA9IChnZGJfYnl0ZSAqKSBvYnN0YWNrX2FsbG9jKAor KwkgICAgICAmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKKysJICAgICAgRFdfQkxPQ0sg KGF0dHIpLT5zaXplICsgYWRkaXRpb25hbF9kYXRhX3NpemUpOworKwkgIG1lbWNweSAoZGF0YSwg RFdfQkxPQ0sgKGF0dHIpLT5kYXRhLCBEV19CTE9DSyAoYXR0ciktPnNpemUpOworKwkgIG1lbWNw eSAoZGF0YSArIERXX0JMT0NLIChhdHRyKS0+c2l6ZSwgYWRkaXRpb25hbF9kYXRhLAorKwkJICBh ZGRpdGlvbmFsX2RhdGFfc2l6ZSk7CisrCisrCSAgYmF0b24tPmxvY2V4cHIuZGF0YSA9IGRhdGE7 CisrCSAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLIChhdHRyKS0+c2l6ZSArIGFkZGl0 aW9uYWxfZGF0YV9zaXplOworKwl9CisrICAgICAgZWxzZQorKwl7CisrCSAgYmF0b24tPmxvY2V4 cHIuZGF0YSA9IERXX0JMT0NLIChhdHRyKS0+ZGF0YTsKKysJICBiYXRvbi0+bG9jZXhwci5zaXpl ID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplOworKwl9CisrCisgICAgICAgcHJvcC0+ZGF0YS5iYXRv biA9IGJhdG9uOworICAgICAgIHByb3AtPmtpbmQgPSBQUk9QX0xPQ0VYUFI7CistICAgICAgZ2Ri X2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKKysgICAgICBnZGJfYXNzZXJ0KHBy b3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7CisgICAgIH0KKyAgIGVsc2UgaWYgKGF0dHJfZm9ybV9p c19yZWYgKGF0dHIpKQorICAgICB7CitAQCAtMTQ4OTcsOCArMTQ5ODMsMjggQEAgYXR0cl90b19k eW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5m byAqZGllLAorIAkJYmF0b24gPSBYT0JORVcgKG9ic3RhY2ssIHN0cnVjdCBkd2FyZjJfcHJvcGVy dHlfYmF0b24pOworIAkJYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IGRpZV90eXBlICh0YXJnZXRf ZGllLCB0YXJnZXRfY3UpOworIAkJYmF0b24tPmxvY2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsK Ky0JCWJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplOwor LQkJYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLICh0YXJnZXRfYXR0ciktPmRhdGE7Cisr CisrCQlpZiAoYWRkaXRpb25hbF9kYXRhICE9IE5VTEwgJiYgYWRkaXRpb25hbF9kYXRhX3NpemUg PiAwKQorKwkJICB7CisrCQkgICAgZ2RiX2J5dGUgKmRhdGE7CisrCisrCQkgICAgZGF0YSA9IChn ZGJfYnl0ZSAqKSBvYnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywK KysJCQkgICAgRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZSArIGFkZGl0aW9uYWxfZGF0YV9z aXplKTsKKysJCSAgICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPmRhdGEs CisrCQkJICAgIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUpOworKwkJICAgIG1lbWNweSAo ZGF0YSArIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUsCisrCQkJICAgIGFkZGl0aW9uYWxf ZGF0YSwgYWRkaXRpb25hbF9kYXRhX3NpemUpOworKworKwkJICAgIGJhdG9uLT5sb2NleHByLmRh dGEgPSBkYXRhOworKwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSAoRFdfQkxPQ0sgKHRhcmdl dF9hdHRyKS0+c2l6ZQorKwkJCQkJICAgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7CisrCQkgIH0K KysJCWVsc2UKKysJCSAgeworKwkJICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAo dGFyZ2V0X2F0dHIpLT5kYXRhOworKwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9D SyAodGFyZ2V0X2F0dHIpLT5zaXplOworKwkJICB9CisrCisgCQlwcm9wLT5kYXRhLmJhdG9uID0g YmF0b247CisgCQlwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOworIAkJZ2RiX2Fzc2VydCAocHJv cC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKK0BAIC0xNTAwOCwxNyArMTUxMTQsMTcgQEAgcmVhZF9z dWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CisgCisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbG93ZXJfYm91bmQsIGN1KTsK KyAgIGlmIChhdHRyKQorLSAgICBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwg Jmxvdyk7CisrICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmbG93LCBO VUxMLCAwKTsKKyAgIGVsc2UgaWYgKCFsb3dfZGVmYXVsdF9pc192YWxpZCkKKyAgICAgY29tcGxh aW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBfKCJNaXNzaW5nIERXX0FUX2xvd2VyX2JvdW5kICIK KyAJCQkJICAgICAgIi0gRElFIGF0IDB4JXggW2luIG1vZHVsZSAlc10iKSwKKyAJICAgICAgIGRp ZS0+b2Zmc2V0LnNlY3Rfb2ZmLCBvYmpmaWxlX25hbWUgKGN1LT5vYmpmaWxlKSk7CisgCisgICBh dHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfdXBwZXJfYm91bmQsIGN1KTsKKy0gIGlmICgh YXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoKSkKKysgIGlmICghYXR0 cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBOVUxMLCAwKSkKKyAgICAg eworICAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9jb3VudCwgY3UpOworLSAg ICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gpKQorKyAg ICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gsIE5VTEws IDApKQorIAl7CisgCSAgLyogSWYgYm91bmRzIGFyZSBjb25zdGFudCBkbyB0aGUgZmluYWwgY2Fs Y3VsYXRpb24gaGVyZS4gICovCisgCSAgaWYgKGxvdy5raW5kID09IFBST1BfQ09OU1QgJiYgaGln aC5raW5kID09IFBST1BfQ09OU1QpCitAQCAtMjIzODksNyArMjI0OTUsNyBAQCBzZXRfZGllX3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYWxsb2NhdGVkLCBj dSk7CisgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKKyAgICAgeworLSAgICAgIGlm IChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3ApKQorKyAgICAgIGlm IChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3AsIE5VTEwsIDApKQor ICAgICAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJPUF9BTExPQ0FURUQsIHByb3AsIHR5cGUsIG9i amZpbGUpOworICAgICB9CisgICBlbHNlIGlmIChhdHRyICE9IE5VTEwpCitAQCAtMjI0MDQsNyAr MjI1MTAsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRp ZSwgRFdfQVRfYXNzb2NpYXRlZCwgY3UpOworICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0 cikpCisgICAgIHsKKy0gICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwg Y3UsICZwcm9wKSkKKysgICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwg Y3UsICZwcm9wLCBOVUxMLCAwKSkKKyAgICAgICAgIGFkZF9keW5fcHJvcCAoRFlOX1BST1BfQVNT T0NJQVRFRCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7CisgICAgIH0KKyAgIGVsc2UgaWYgKGF0dHIg IT0gTlVMTCkKK0BAIC0yMjQxNyw3ICsyMjUyMyw3IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAK KyAgIC8qIFJlYWQgRFdfQVRfZGF0YV9sb2NhdGlvbiBhbmQgc2V0IGluIHR5cGUuICAqLworICAg YXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2RhdGFfbG9jYXRpb24sIGN1KTsKKy0gIGlm IChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3ApKQorKyAgaWYgKGF0 dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkpCisgICAg IGFkZF9keW5fcHJvcCAoRFlOX1BST1BfREFUQV9MT0NBVElPTiwgcHJvcCwgdHlwZSwgb2JqZmls ZSk7CisgCisgICBpZiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5kaWVfdHlwZV9oYXNoID09IE5VTEwp CitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYworaW5kZXggYjUz ZTY0OS4uMGFhOTExMyAxMDA2NDQKKy0tLSBhL2dkYi9nZGJ0eXBlcy5jCisrKysgYi9nZGIvZ2Ri dHlwZXMuYworQEAgLTE4NDEsNiArMTg0MSw3IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAo c3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCisgICAgICAgfQorIAorICAgICBjYXNl IFRZUEVfQ09ERV9BUlJBWToKKysgICAgY2FzZSBUWVBFX0NPREVfU1RSSU5HOgorICAgICAgIHsK KyAJZ2RiX2Fzc2VydCAoVFlQRV9ORklFTERTICh0eXBlKSA9PSAxKTsKKyAKK0BAIC0xOTQ1LDcg KzE5NDYsOCBAQCByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLAorICAg c3RydWN0IHR5cGUgKmFyeV9kaW07CisgICBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOworIAor LSAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkpOworKyAg Z2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkKKysJICAgICAg fHwgVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5HKTsKKyAKKyAgIHR5cGUgPSBj b3B5X3R5cGUgKHR5cGUpOworIAorQEAgLTE5NzAsMTMgKzE5NzIsMTcgQEAgcmVzb2x2ZV9keW5h bWljX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAKKyAgIGFyeV9kaW0gPSBjaGVja190eXBl ZGVmIChUWVBFX1RBUkdFVF9UWVBFIChlbHRfdHlwZSkpOworIAorLSAgaWYgKGFyeV9kaW0gIT0g TlVMTCAmJiBUWVBFX0NPREUgKGFyeV9kaW0pID09IFRZUEVfQ09ERV9BUlJBWSkKKysgIGlmIChh cnlfZGltICE9IE5VTEwgJiYgKFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX0FSUkFZ CisrICAgICAgfHwgVFlQRV9DT0RFIChhcnlfZGltKSA9PSBUWVBFX0NPREVfU1RSSU5HKSkKKyAg ICAgZWx0X3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKGFyeV9kaW0sIGFkZHJfc3RhY2sp OworICAgZWxzZQorICAgICBlbHRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOworIAor LSAgcmV0dXJuIGNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlICh0eXBlLCBlbHRfdHlwZSwg cmFuZ2VfdHlwZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFlQ RV9GSUVMRF9CSVRTSVpFICh0eXBlLCAwKSk7CisrICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBU WVBFX0NPREVfU1RSSU5HKQorKyAgICByZXR1cm4gY3JlYXRlX3N0cmluZ190eXBlICh0eXBlLCBl bHRfdHlwZSwgcmFuZ2VfdHlwZSk7CisrICBlbHNlCisrICAgIHJldHVybiBjcmVhdGVfYXJyYXlf dHlwZV93aXRoX3N0cmlkZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5cGUsCisrCQkJCQkgIFRZ UEVfRklFTERfQklUU0laRSAodHlwZSwgMCkpOworIH0KKyAKKyAvKiBSZXNvbHZlIGR5bmFtaWMg Ym91bmRzIG9mIG1lbWJlcnMgb2YgdGhlIHVuaW9uIFRZUEUgdG8gc3RhdGljCitAQCAtMjE4MSw2 ICsyMTg3LDcgQEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0 eXBlLAorICAJICBicmVhazsKKyAKKyAJY2FzZSBUWVBFX0NPREVfQVJSQVk6CisrCWNhc2UgVFlQ RV9DT0RFX1NUUklORzoKKyAJICByZXNvbHZlZF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5 ICh0eXBlLCBhZGRyX3N0YWNrKTsKKyAJICBicmVhazsKKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXN0cmluZ3MuZXhwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAw MC4uNDg0ZmRjYgorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtc3RyaW5ncy5leHAKK0BAIC0wLDAgKzEsMTAzIEBACisrIyBDb3B5cmlnaHQgMjAxNiBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisrCisrc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCisrCisraWYgeyBbcHJlcGFyZV9m b3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCisrICAg IHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgY2hlY2sg dGhhdCBhbGwgZm9ydHJhbiBzdGFuZGFyZCBkYXRhdHlwZXMgd2lsbCBiZQorKyMgaGFuZGxlZCBj b3JyZWN0bHkgd2hlbiB1c2luZyBhcyBWTEEncworKworK2lmICFbcnVudG9fbWFpbl0geworKyAg ICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBtYWluIgorKyAgICByZXR1cm4gLTEKKyt9Cisr CisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWFsbG9jYXRl ZC0xIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItYWxsb2NhdGVkLTEi Cisrc2V0IHRlc3QgIndoYXRpcyB2YXJfY2hhciBmaXJzdCB0aW1lIgorK2dkYl90ZXN0X211bHRp cGxlICJ3aGF0aXMgdmFyX2NoYXIiICR0ZXN0IHsKKysgICAgLXJlICJ0eXBlID0gUFRSIFRPIC0+ IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAk dGVzdAorKyAgICB9CisrICAgIC1yZSAidHlwZSA9IGNoYXJhY3RlclxcKjEwXHJcbiRnZGJfcHJv bXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30KKytzZXQgdGVzdCAicHR5cGUg dmFyX2NoYXIgZmlyc3QgdGltZSIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHR5cGUgdmFyX2NoYXIi ICR0ZXN0IHsKKysgICAgLXJlICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBc XClcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAgICB9CisrICAgIC1y ZSAidHlwZSA9IGNoYXJhY3RlclxcKjEwXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3Mg JHRlc3QKKysgICAgfQorK30KKysKKysKKytnZGJfdGVzdCAibmV4dCIgIlxcZCsuKnZhcl9jaGFy ID0gJ2ZvbycuKiIgXAorKyAgIm5leHQgdG8gYWxsb2NhdGlvbiBzdGF0dXMgb2YgdmFyX2NoYXIi CisrZ2RiX3Rlc3QgInByaW50IGwiICIgPSBcXC5UUlVFXFwuIiAicHJpbnQgYWxsb2NhdGlvbiBz dGF0dXMgZmlyc3QgdGltZSIKKysKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251 bWJlciAidmFyX2NoYXItZmlsbGVkLTEiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2 YXJfY2hhci1maWxsZWQtMSIKKytzZXQgdGVzdCAicHJpbnQgdmFyX2NoYXIsIHZhcl9jaGFyLWZp bGxlZC0xIgorK2dkYl90ZXN0X211bHRpcGxlICJwcmludCB2YXJfY2hhciIgJHRlc3QgeworKyAg ICAtcmUgIj0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxcKSAkaGV4XHJcbiRn ZGJfcHJvbXB0ICQiIHsKKysgICAgICAgIGdkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIiICI9ICdm b28nIiAicHJpbnQgKnZhcl9jaGFyLCB2YXJfY2hhci1maWxsZWQtMSIKKysJICAgIHBhc3MgJHRl c3QKKysgICAgfQorKyAgICAtcmUgIj0gJ2ZvbydcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAg cGFzcyAkdGVzdAorKyAgICB9CisrfQorK3NldCB0ZXN0ICJwdHlwZSB2YXJfY2hhciwgdmFyX2No YXItZmlsbGVkLTEiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInB0eXBlIHZhcl9jaGFyIiAkdGVzdCB7 CisrICAgIC1yZSAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXClcclxuJGdk Yl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAgICB9CisrICAgIC1yZSAidHlwZSA9 IGNoYXJhY3RlclxcKjNcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAg ICB9CisrfQorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhcigxKSIgIiA9IDEwMiAnZiciICJwcmlu dCB2YXJfY2hhcigxKSIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIoMykiICIgPSAxMTEgJ28n IiAicHJpbnQgdmFyX2NoYXIoMykiCisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgInZhcl9jaGFyLWZpbGxlZC0yIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAidmFyX2NoYXItZmlsbGVkLTIiCisrc2V0IHRlc3QgInByaW50IHZhcl9jaGFyLCB2YXJfY2hh ci1maWxsZWQtMiIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgdmFyX2NoYXIiICR0ZXN0IHsK KysgICAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNiBcXClcXCkgJGhleFxy XG4kZ2RiX3Byb21wdCAkIiB7CisrICAgICAgICBnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAi PSAnZm9vYmFyJyIgInByaW50ICp2YXJfY2hhciwgdmFyX2NoYXItZmlsbGVkLTIiCisrCSAgICBw YXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJlICI9ICdmb29iYXInXHJcbiRnZGJfcHJvbXB0ICQi IHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30KKytzZXQgdGVzdCAicHR5cGUgdmFyX2No YXIsIHZhcl9jaGFyLWZpbGxlZC0yIgorK2dkYl90ZXN0X211bHRpcGxlICJwdHlwZSB2YXJfY2hh ciIgJHRlc3QgeworKyAgICAtcmUgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYg XFwpXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorKyAgICAt cmUgInR5cGUgPSBjaGFyYWN0ZXJcXCo2XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3Mg JHRlc3QKKysgICAgfQorK30KK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1zdHJpbmdzLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3Mu ZjkwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uM2MyMjczNQorLS0tIC9k ZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAK K0BAIC0wLDAgKzEsMzkgQEAKKyshIENvcHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyEKKyshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrISBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyEgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKyshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIQorKyEgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKyshCisrISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrcHJvZ3Jh bSB2bGFfc3RyaW5ncworKyAgY2hhcmFjdGVyKGxlbj06KSwgdGFyZ2V0LCBhbGxvY2F0YWJsZSAg IDo6IHZhcl9jaGFyCisrICBjaGFyYWN0ZXIobGVuPTopLCBwb2ludGVyICAgICAgICAgICAgICAg OjogdmFyX2NoYXJfcAorKyAgbG9naWNhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDo6IGwKKysKKysgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49MTApIDo6IHZhcl9jaGFyKQorKyAg bCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItYWxsb2Nh dGVkLTEKKysgIHZhcl9jaGFyID0gJ2ZvbycKKysgIGRlYWxsb2NhdGUodmFyX2NoYXIpICAgICAg ICAgICAgICAgICAgICAhIHZhcl9jaGFyLWZpbGxlZC0xCisrICBsID0gYWxsb2NhdGVkKHZhcl9j aGFyKSAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1kZWFsbG9jYXRlZAorKyAgYWxsb2NhdGUo Y2hhcmFjdGVyKGxlbj00MikgOjogdmFyX2NoYXIpCisrICBsID0gYWxsb2NhdGVkKHZhcl9jaGFy KQorKyAgdmFyX2NoYXIgPSAnZm9vYmFyJworKyAgdmFyX2NoYXIgPSAnJyAgICAgICAgICAgICAg ICAgICAgICAgICAgICEgdmFyX2NoYXItZmlsbGVkLTIKKysgIHZhcl9jaGFyID0gJ2JhcicgICAg ICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWVtcHR5CisrICBkZWFsbG9jYXRlKHZhcl9j aGFyKQorKyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxlbj0yMSkgOjogdmFyX2NoYXIpCisrICBsID0g YWxsb2NhdGVkKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1hbGxvY2F0ZWQt MworKyAgdmFyX2NoYXIgPSAnam9obmRvZScKKysgIHZhcl9jaGFyX3AgPT4gdmFyX2NoYXIKKysg IGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3ApICAgICAgICAgICAgICAhIHZhcl9jaGFyX3AtYXNz b2NpYXRlZAorKyAgdmFyX2NoYXJfcCA9PiBudWxsKCkKKysgIGwgPSBhc3NvY2lhdGVkKHZhcl9j aGFyX3ApICAgICAgICAgICAgICAhIHZhcl9jaGFyX3Atbm90LWFzc29jaWF0ZWQKKytlbmQgcHJv Z3JhbSB2bGFfc3RyaW5ncworLS0gCisyLjcuNAorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRl bC1sb2dpY2FsLW5vdC5wYXRjaCBiL2dkYi12bGEtaW50ZWwtbG9naWNhbC1ub3QucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjNTFjODQuLjAwMDAwMDAKLS0tIGEvZ2RiLXZs YS1pbnRlbC1sb2dpY2FsLW5vdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAK LS0tLSAuL2dkYi92YWx1ZS5jLW9yaWcJMjAxNS0wMi0xMSAxNToxNzo1OC40MTMyNDE3NzkgKzAx MDAKLSsrKyAuL2dkYi92YWx1ZS5jCTIwMTUtMDItMTEgMTU6MTk6NDIuMDY4NzE2OTQ5ICswMTAw Ci1AQCAtMzA3NCw3ICszMDc0LDcgQEAgdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKmFyZwotIAl9Ci0gCi0gICAgICAgaWYgKCFUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCi0t ICAgICAgICAgIHx8ICFUWVBFX0RBVEFfTE9DQVRJT05fS0lORCAodHlwZSkgPT0gUFJPUF9DT05T VCkKLSsgICAgICAgICAgfHwgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpICE9IFBST1Bf Q09OU1QpCi0gCXYtPm9mZnNldCA9ICh2YWx1ZV9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0Ci0gCQkg ICAgICsgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcmcxKSk7Ci0gICAgIH0KCmRpZmYgLS1naXQg YS9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaCBiL2dkYi12bGEtaW50ZWwtc3RyaW5n YnQtZml4LnBhdGNoCmluZGV4IGY2MTk3ZjIuLjMyMTRkZTIgMTAwNjQ0Ci0tLSBhL2dkYi12bGEt aW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoCisrKyBiL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4 LnBhdGNoCkBAIC0zMSwyNiArMzEsNiBAQCBKYW4KIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsg Y2hhcnNldD11cy1hc2NpaQogQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0i dmxhc3RyaW5nb25seS5wYXRjaCIKIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dk YnR5cGVzLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2dk YnR5cGVzLmMJMjAxNS0wNS0zMSAxNjoxNDowNC4xNjQ1MzM4MzMgKzAyMDAKLSsrKyBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDUtMzEgMTY6MTQ6MDUuODQ0NTQ1MzQ0 ICswMjAwCi1AQCAtMTg1MSw2ICsxODUxLDcgQEAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChz dHJ1Y3QgdHlwZSAqdAotICAgICAgIH0KLSAKLSAgICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0r ICAgIGNhc2UgVFlQRV9DT0RFX1NUUklORzoKLSAgICAgICB7Ci0gCWdkYl9hc3NlcnQgKFRZUEVf TkZJRUxEUyAodHlwZSkgPT0gMSk7Ci0gCi1AQCAtMjE5Miw2ICsyMTkzLDcgQEAgcmVzb2x2ZV9k eW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eQotIAkgIH0KLSAKLSAJY2FzZSBUWVBFX0NP REVfQVJSQVk6Ci0rCWNhc2UgVFlQRV9DT0RFX1NUUklORzoKLSAJICByZXNvbHZlZF90eXBlID0g cmVzb2x2ZV9keW5hbWljX2FycmF5ICh0eXBlLCBhZGRyX3N0YWNrKTsKLSAJICBicmVhazsKLSAK IEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHlu YW1pYy1vdGhlci1mcmFtZS1zdHViLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50 ZWwtdGVzdHMucGF0Y2ggYi9nZGItdmxhLWludGVsLXRlc3RzLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjOGFiNWIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdmxh LWludGVsLXRlc3RzLnBhdGNoCkBAIC0wLDAgKzEsMzc3IEBACitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysr KyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5j LmV4cAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MzYzNzY4MCArMDEwMAorQEAgLTAsMCArMSw2MSBA QAorKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisr IyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIwor KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkw IgorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZp bGV9ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7CisrICAgIHJldHVy biAtMQorK30KKysKKytpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7CisrICAgIHBlcnJvciAiY291 bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgorKyAgICBjb250aW51ZQorK30KKysKKysj IENoZWNrIFZMQSBwYXNzZWQgdG8gZmlyc3QgRm9ydHJhbiBmdW5jdGlvbi4KKytnZGJfYnJlYWtw b2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzEtdmxhLXBhc3NlZCJdCisrZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMxLXZsYS1wYXNzZWQiCisrZ2RiX3Rlc3QgInByaW50IHZs YSIgIiA9IFxcKCAqXFwoICoyMiwgKjIyLCAqMjIsXFsoKTIyLCAuXF0qXFwpIiBcCisrICAicHJp bnQgdmxhIChmdW5jMSkiCisrZ2RiX3Rlc3QgInB0eXBlIHZsYSIgInR5cGUgPSBpbnRlZ2VyXFxc KGtpbmQ9NFxcXCkgXFxcKDEwLDEwXFxcKSIgXAorKyAgInB0eXBlIHZsYSAoZnVuYzEpIgorKwor K2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMS12bGEtbW9kaWZpZWQi XQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5jMS12bGEtbW9kaWZpZWQiCisrZ2Ri X3Rlc3QgInByaW50IHZsYSg1LDUpIiAiID0gNTUiICJwcmludCB2bGEoNSw1KSAoZnVuYzEpIgor K2dkYl90ZXN0ICJwcmludCB2bGEoNyw3KSIgIiA9IDc3IiAicHJpbnQgdmxhKDUsNSkgKGZ1bmMx KSIKKysKKysjIENoZWNrIGlmIHRoZSB2YWx1ZXMgYXJlIGNvcnJlY3QgYWZ0ZXIgcmV0dXJuaW5n IGZyb20gZnVuYzEKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzEt cmV0dXJuZWQiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5jMS1yZXR1cm5lZCIK KytnZGJfdGVzdCAicHJpbnQgcmV0IiAiID0gLlRSVUUuIiAicHJpbnQgcmV0IGFmdGVyIGZ1bmMx IHJldHVybmVkIgorKworKyMgQ2hlY2sgVkxBIHBhc3NlZCB0byBzZWNvbmQgRm9ydHJhbiBmdW5j dGlvbgorK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMi12bGEtcGFz c2VkIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzItdmxhLXBhc3NlZCIKKytn ZGJfdGVzdCAicHJpbnQgdmxhIiBcCisrICAiID0gXFxcKDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQs IDQ0LCA0NCwgNDQsIDQ0XFxcKSIgXAorKyAgInByaW50IHZsYSAoZnVuYzIpIgorK2dkYl90ZXN0 ICJwdHlwZSB2bGEiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwK KysgICJwdHlwZSB2bGEgKGZ1bmMyKSIKKysKKysjIENoZWNrIGlmIHRoZSByZXR1cm5lZCBWTEEg aGFzIHRoZSBjb3JyZWN0IHZhbHVlcyBhbmQgcHR5cGUuCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9n ZXRfbGluZV9udW1iZXIgImZ1bmMyLXJldHVybmVkIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAiZnVuYzItcmV0dXJuZWQiCisrZ2RiX3Rlc3QgInByaW50IHZsYTMiICIgPSBcXFwoMSwg MiwgNDQsIDQsIDQ0LCA0NCwgNDQsIDgsIDQ0LCA0NFxcXCkiIFwKKysgICJwcmludCB2bGEzIChh ZnRlciBmdW5jMikiCisrZ2RiX3Rlc3QgInB0eXBlIHZsYTMiICJ0eXBlID0gaW50ZWdlclxcXChr aW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKKysgICJwdHlwZSB2bGEzIChhZnRlciBmdW5jMikiCitJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt ZnVuYy5mOTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MzYzNzY4MCArMDEw MAorQEAgLTAsMCArMSw3MSBAQAorKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyshIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrISB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl LCBvcgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyshCisrISBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorKyEKKyshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyEgRm91bmRhdGlvbiwgSW5j LiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVT QS4KKysKKytsb2dpY2FsIGZ1bmN0aW9uIGZ1bmMxICh2bGEpCisrICBpbXBsaWNpdCBub25lCisr ICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGEgKDosIDopCisrICBmdW5jMSA9IGFsbG9jYXRl ZCh2bGEpCisrICB2bGEoNSw1KSA9IDU1ICAgICAgICAgICAgICAgISBmdW5jMS12bGEtcGFzc2Vk CisrICB2bGEoNyw3KSA9IDc3CisrICByZXR1cm4gICAgICAgICAgICAgICAgICAgICAgISBmdW5j MS12bGEtbW9kaWZpZWQKKytlbmQgZnVuY3Rpb24gZnVuYzEKKysKKytmdW5jdGlvbiBmdW5jMih2 bGEpCisrICBpbXBsaWNpdCBub25lCisrICBpbnRlZ2VyIDo6IHZsYSAoOikKKysgIGludGVnZXIg OjogZnVuYzIoc2l6ZSh2bGEpKQorKyAgaW50ZWdlciA6OiBrCisrCisrICB2bGEoMSkgPSAxICAg ICAgICAgICAgICAgICAgICAhIGZ1bmMyLXZsYS1wYXNzZWQKKysgIHZsYSgyKSA9IDIKKysgIHZs YSg0KSA9IDQKKysgIHZsYSg4KSA9IDgKKysKKysgIGZ1bmMyID0gdmxhCisrZW5kIGZ1bmN0aW9u IGZ1bmMyCisrCisrcHJvZ3JhbSB2bGFfZnVuYworKyAgaW1wbGljaXQgbm9uZQorKyAgaW50ZXJm YWNlCisrICAgIGxvZ2ljYWwgZnVuY3Rpb24gZnVuYzEgKHZsYSkKKysgICAgICBpbnRlZ2VyIDo6 IHZsYSAoOiwgOikKKysgICAgZW5kIGZ1bmN0aW9uCisrICBlbmQgaW50ZXJmYWNlCisrICBpbnRl cmZhY2UKKysgICAgZnVuY3Rpb24gZnVuYzIgKHZsYSkKKysgICAgICBpbnRlZ2VyIDo6IHZsYSAo OikKKysgICAgICBpbnRlZ2VyIGZ1bmMyKHNpemUodmxhKSkKKysgICAgZW5kIGZ1bmN0aW9uCisr ICBlbmQgaW50ZXJmYWNlCisrCisrICBsb2dpY2FsIDo6IHJldAorKyAgaW50ZWdlciwgYWxsb2Nh dGFibGUgOjogdmxhMSAoOiwgOikKKysgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZsYTIgKDop CisrICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGEzICg6KQorKworKyAgcmV0ID0gLkZBTFNF LgorKworKyAgYWxsb2NhdGUgKHZsYTEgKDEwLDEwKSkKKysgIHZsYTEoOiw6KSA9IDIyCisrCisr ICBhbGxvY2F0ZSAodmxhMiAoMTApKQorKyAgdmxhMig6KSA9IDQ0CisrCisrICByZXQgPSBmdW5j MSh2bGExKQorKyAgdmxhMyA9IGZ1bmMyKHZsYTIpICAgICAgICAgICEgZnVuYzEtcmV0dXJuZWQK KysKKysgIHJldCA9IC5UUlVFLiAgICAgICAgICAgICAgICAhIGZ1bmMyLXJldHVybmVkCisrZW5k IHByb2dyYW0gdmxhX2Z1bmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAkyMDE2LTAxLTA4 IDE5OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAorQEAgLTAsMCArMSw0NCBAQAorKyMgQ29weXJpZ2h0 IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQor KyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysj IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgorKworK2lmIHsgW3By ZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0g XAorKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytp ZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7CisrICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJy ZWFrcG9pbnQgTUFJTl9fIgorKyAgICBjb250aW51ZQorK30KKysKKytnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAicmUtcmV2ZXJzZS1lbGVtZW50cyJdCisrZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgInJlLXJldmVyc2UtZWxlbWVudHMiCisrZ2RiX3Rlc3QgInByaW50IHB2 bGEiICIgPSBcXFwoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBcXFwpIiBcCisrICAicHJp bnQgcmUtcmV2ZXJzZS1lbGVtZW50cyIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9IDEi ICJwcmludCBmaXJzdCByZS1yZXZlcnNlLWVsZW1lbnQiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEo MTApIiAiID0gMTAiICJwcmludCBsYXN0IHJlLXJldmVyc2UtZWxlbWVudCIKKysKKytnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAib2RkLWVsZW1lbnRzIl0KKytnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAib2RkLWVsZW1lbnRzIgorK2dkYl90ZXN0ICJwcmludCBwdmxhIiAi ID0gXFxcKDEsIDMsIDUsIDcsIDlcXFwpIiAicHJpbnQgb2RkLWVsZW1lbnRzIgorK2dkYl90ZXN0 ICJwcmludCBwdmxhKDEpIiAiID0gMSIgInByaW50IGZpcnN0IG9kZC1lbGVtZW50IgorK2dkYl90 ZXN0ICJwcmludCBwdmxhKDUpIiAiID0gOSIgInByaW50IGxhc3Qgb2RkLWVsZW1lbnQiCisrCisr Z2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInNpbmdsZS1lbGVtZW50Il0KKytn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAic2luZ2xlLWVsZW1lbnQiCisrZ2RiX3Rlc3QgInBy aW50IHB2bGEiICIgPSBcXFwoNVxcXCkiICJwcmludCBzaW5nbGUtZWxlbWVudCIKKytnZGJfdGVz dCAicHJpbnQgcHZsYSgxKSIgIiA9IDUiICJwcmludCBvbmUgc2luZ2xlLWVsZW1lbnQiCitJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3Ry aWRlLmY5MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAx MDAKK0BAIC0wLDAgKzEsMzAgQEAKKyshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKyEKKyshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrISBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyEgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z ZSwgb3IKKyshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIQorKyEgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKyshCisrISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyshIEZvdW5kYXRpb24sIElu Yy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBV U0EuCisrCisrcHJvZ3JhbSB2bGFfc3RyaWRlCisrICBpbnRlZ2VyLCB0YXJnZXQsIGFsbG9jYXRh YmxlIDo6IHZsYSAoOikKKysgIGludGVnZXIsIHBvaW50ZXIgOjogcHZsYSAoOikKKysKKysgIGFs bG9jYXRlKHZsYSgxMCkpCisrICB2bGEgPSAoLyAoSSwgSSA9IDEsMTApIC8pCisrCisrICBwdmxh ID0+IHZsYSgxMDoxOi0xKQorKyAgcHZsYSA9PiBwdmxhKDEwOjE6LTEpCisrICBwdmxhID0+IHZs YSgxOjEwOjIpICAgISByZS1yZXZlcnNlLWVsZW1lbnRzCisrICBwdmxhID0+IHZsYSg1OjQ6LTIp ICAgISBvZGQtZWxlbWVudHMKKysKKysgIHB2bGEgPT4gbnVsbCgpICAgICAgICAhIHNpbmdsZS1l bGVtZW50CisrZW5kIHByb2dyYW0gdmxhX3N0cmlkZQorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3NvbGQuZXhwCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3Ry aW5nc29sZC5leHAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAxMDAKK0BAIC0wLDAg KzEsMTAxIEBACisrIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc3RhbmRhcmRfdGVzdGZp bGUgIi5mOTAiCisrCisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAg JHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCisrICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKKysg ICAgcmV0dXJuIC0xCisrfQorKworKyMgY2hlY2sgdGhhdCBhbGwgZm9ydHJhbiBzdGFuZGFyZCBk YXRhdHlwZXMgd2lsbCBiZQorKyMgaGFuZGxlZCBjb3JyZWN0bHkgd2hlbiB1c2luZyBhcyBWTEEn cworKworK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKKysgICAgcGVycm9yICJjb3VsZG4ndCBy dW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCisrICAgIGNvbnRpbnVlCisrfQorKworK2dkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1hbGxvY2F0ZWQtMSJdCisrZ2Ri X2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWFsbG9jYXRlZC0xIgorK2dkYl90ZXN0 ICJwcmludCB2YXJfY2hhciIgXAorKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwq MTAgXFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBm aXJzdCB0aW1lIgorK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+ IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXCkiIFwKKysgICJ3aGF0aXMgdmFyX2NoYXIgZmlyc3QgdGlt ZSIKKytnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFy YWN0ZXJcXCoxMCBcXCkiIFwKKysgICJwdHlwZSB2YXJfY2hhciBmaXJzdCB0aW1lIgorK2dkYl90 ZXN0ICJuZXh0IiAiXFxkKy4qdmFyX2NoYXIgPSAnZm9vJy4qIiBcCisrICAibmV4dCB0byBhbGxv Y2F0aW9uIHN0YXR1cyBvZiB2YXJfY2hhciIKKytnZGJfdGVzdCAicHJpbnQgbCIgIiA9IC5UUlVF LiIgInByaW50IGFsbG9jYXRpb24gc3RhdHVzIGZpcnN0IHRpbWUiCisrCisrZ2RiX2JyZWFrcG9p bnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWZpbGxlZC0xIl0KKytnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItZmlsbGVkLTEiCisrZ2RiX3Rlc3QgInByaW50IHZh cl9jaGFyIiBcCisrICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxcKSAk e2hleH0iIFwKKysgICJwcmludCB2YXJfY2hhciBhZnRlciBmaWxsZWQgZmlyc3QgdGltZSIKKytn ZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiID0gJ2ZvbyciIFwKKysgICJwcmludCAqdmFyX2No YXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRpbWUiCisrZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIg InR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpIiBcCisrICAid2hhdGlzIHZh cl9jaGFyIGFmdGVyIGZpbGxlZCBmaXJzdCB0aW1lIgorK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hh ciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpIiBcCisrICAicHR5cGUg dmFyX2NoYXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRpbWUiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9j aGFyKDEpIiAiID0gMTAyICdmJyIgInByaW50IHZhcl9jaGFyKDEpIgorK2dkYl90ZXN0ICJwcmlu dCB2YXJfY2hhcigzKSIgIiA9IDExMSAnbyciICJwcmludCB2YXJfY2hhcigzKSIKKysKKytnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyX2NoYXItZmlsbGVkLTIiXQorK2dk Yl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hhci1maWxsZWQtMiIKKytnZGJfdGVzdCAi cHJpbnQgdmFyX2NoYXIiIFwKKysgICIgPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYg XFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBzZWNv bmQgdGltZSIKKytnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiID0gJ2Zvb2JhciciIFwKKysg ICJwcmludCAqdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHNlY29uZCB0aW1lIgorK2dkYl90ZXN0 ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxc KSIgXAorKyAgIndoYXRpcyB2YXJfY2hhciBzZWNvbmQgdGltZSIKKytnZGJfdGVzdCAicHR5cGUg dmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKSIgXAorKyAg InB0eXBlIHZhcl9jaGFyIHNlY29uZCB0aW1lIgorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1lbXB0eSJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgInZhcl9jaGFyLWVtcHR5IgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAorKyAgIiA9 IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMCBcXClcXCkgJHtoZXh9IiBcCisrICAicHJp bnQgdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgorK2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIi ICIgPSBcIlwiIiAicHJpbnQgKnZhcl9jaGFyIGFmdGVyIHNldCBlbXB0eSIKKytnZGJfdGVzdCAi d2hhdGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMCBcXCki IFwKKysgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgorK2dkYl90ZXN0ICJwdHlw ZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjAgXFwpIiBcCisr ICAicHR5cGUgdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgorKworK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1hbGxvY2F0ZWQtMyJdCisrZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWFsbG9jYXRlZC0zIgorK2dkYl90ZXN0ICJwcmludCB2 YXJfY2hhciIgXAorKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMjEgXFwpXFwp ICR7aGV4fSIgXAorKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCB0aGlyZCB0aW1l IgorK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFy YWN0ZXJcXCoyMSBcXCkiIFwKKysgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHRo aXJkIHRpbWUiCisrZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBc XCggY2hhcmFjdGVyXFwqMjEgXFwpIiBcCisrICAicHR5cGUgdmFyX2NoYXIgYWZ0ZXIgYWxsb2Nh dGVkIHRoaXJkIHRpbWUiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg InZhcl9jaGFyX3AtYXNzb2NpYXRlZCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZh cl9jaGFyX3AtYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXJfcCIgXAorKyAg IiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNyBcXClcXCkgJHtoZXh9IiBcCisrICAi cHJpbnQgdmFyX2NoYXJfcCBhZnRlciBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCAqdmFy X2NoYXJfcCIgIiA9ICdqb2huZG9lJyIgXAorKyAgInByaW50ICp2YXJfY2hhcl8gYWZ0ZXIgYXNz b2NpYXRlZCIKKytnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+ IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKSIgXAorKyAgIndoYXRpcyB2YXJfY2hhcl9wIGFmdGVyIGFz c29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+ IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKSIgXAorKyAgInB0eXBlIHZhcl9jaGFyX3AgYWZ0ZXIgYXNz b2NpYXRlZCIKK0luZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1zdHJpbmdzb2xkLmY5MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3NvbGQuZjkwCTIwMTYtMDEtMDgg MTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCitAQCAtMCwwICsxLDQwIEBACisrISBDb3B5cmlnaHQg MjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyshCisrISBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQor KyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKyshIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisrISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKyEKKyshIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyEgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyshIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyshIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIQorKyEgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysh IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3 YXJlCisrISBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJv c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorKworK3Byb2dyYW0gdmxhX3N0cmluZ3MKKysgIGNo YXJhY3RlcihsZW49OiksIHRhcmdldCwgYWxsb2NhdGFibGUgICA6OiB2YXJfY2hhcgorKyAgY2hh cmFjdGVyKGxlbj06KSwgcG9pbnRlciAgICAgICAgICAgICAgIDo6IHZhcl9jaGFyX3AKKysgIGxv Z2ljYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OiBsCisrCisrICBhbGxvY2F0 ZShjaGFyYWN0ZXIobGVuPTEwKSA6OiB2YXJfY2hhcikKKysgIGwgPSBhbGxvY2F0ZWQodmFyX2No YXIpICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWFsbG9jYXRlZC0xCisrICB2YXJfY2hhciA9 ICdmb28nCisrICBkZWFsbG9jYXRlKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgICAgISB2YXJf Y2hhci1maWxsZWQtMQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAg ICEgdmFyX2NoYXItZGVhbGxvY2F0ZWQKKysgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49NDIpIDo6 IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikKKysgIHZhcl9jaGFyID0gJ2Zv b2JhcicKKysgIHZhcl9jaGFyID0gJycgICAgICAgICAgICAgICAgICAgICAgICAgICAhIHZhcl9j aGFyLWZpbGxlZC0yCisrICB2YXJfY2hhciA9ICdiYXInICAgICAgICAgICAgICAgICAgICAgICAg ISB2YXJfY2hhci1lbXB0eQorKyAgZGVhbGxvY2F0ZSh2YXJfY2hhcikKKysgIGFsbG9jYXRlKGNo YXJhY3RlcihsZW49MjEpIDo6IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikg ICAgICAgICAgICAgICAgICEgdmFyX2NoYXItYWxsb2NhdGVkLTMKKysgIHZhcl9jaGFyID0gJ2pv aG5kb2UnCisrICB2YXJfY2hhcl9wID0+IHZhcl9jaGFyCisrICBsID0gYXNzb2NpYXRlZCh2YXJf Y2hhcl9wKSAgICAgICAgICAgICAgISB2YXJfY2hhcl9wLWFzc29jaWF0ZWQKKysgIHZhcl9jaGFy X3AgPT4gbnVsbCgpCisrICBsID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAgICAg ISB2YXJfY2hhcl9wLW5vdC1hc3NvY2lhdGVkCisrZW5kIHByb2dyYW0gdmxhX3N0cmluZ3MKCmRp ZmYgLS1naXQgYS9nZGItdmxhLWludGVsLnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRmNmIyMy4uMDAwMDAwMAotLS0gYS9nZGItdmxh LWludGVsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQ4MCArMCwwIEBACi1bUEFUQ0ggMDAv MjNdIEZvcnRyYW4gZHluYW1pYyBhcnJheSBzdXBwb3J0Ci1odHRwczovL3NvdXJjZXdhcmUub3Jn L21sL2dkYi1wYXRjaGVzLzIwMTQtMDYvbXNnMDAxMDguaHRtbAotaHR0cHM6Ly9naXRodWIuY29t L2ludGVsLWdkYi92bGEvdHJlZS92bGEtZm9ydHJhbgotCi1HSVQgc25hcHNob3Q6Ci1jb21taXQg NTExYmZmNTIwMzcyZmZjMTBmYTJmZjU2OWMxNzZiZGYxZTZlNDc1ZAotCi0KLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvYy12YWxwcmludC5jCi09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvYy12YWxwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6MzUu MDY1NTgyMzU5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2MtdmFscHJpbnQu YwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk3NDYzNzYzMCArMDEwMAotQEAgLTY0Miw3ICs2NDIsMTYg QEAKLSAJewotIAkgIC8qIG5vcm1hbCBjYXNlICovCi0gCSAgZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCAiKCIpOwotLQkgIHR5cGVfcHJpbnQgKHZhbHVlX3R5cGUgKHZhbCksICIiLCBzdHJlYW0s IC0xKTsKLSsJICBpZiAoaXNfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkp Ci0rCSAgICB7Ci0rCSAgICAgIHN0cnVjdCB2YWx1ZSAqdjsKLSsKLSsJICAgICAgdiA9IHZhbHVl X2luZCAodmFsKTsKLSsJICAgICAgdiA9IHZhbHVlX2FkZHIgKHYpOwotKwkgICAgICB0eXBlX3By aW50ICh2YWx1ZV90eXBlICh2KSwgIiIsIHN0cmVhbSwgLTEpOwotKwkgICAgfQotKwkgIGVsc2UK LSsJICAgIHR5cGVfcHJpbnQgKHZhbHVlX3R5cGUgKHZhbCksICIiLCBzdHJlYW0sIC0xKTsKLSAJ ICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpICIpOwotIAl9Ci0gICAgIH0KLUluZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYybG9jLmgKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9kd2FyZjJsb2MuaAkyMDE2LTAxLTA4IDE5OjE1OjM1 LjA2NjU4MjM2NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9kd2FyZjJsb2Mu aAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk3NDYzNzYzMCArMDEwMAotQEAgLTEzOCw2ICsxMzgsMTEg QEAKLSAJCQkgICAgICBzdHJ1Y3QgcHJvcGVydHlfYWRkcl9pbmZvICphZGRyX3N0YWNrLAotIAkJ CSAgICAgIENPUkVfQUREUiAqdmFsdWUpOwotIAotKy8qIENoZWNrcyBpZiBhIGR3YXJmIGxvY2F0 aW9uIGRlZmluaXRpb24gaXMgdmFsaWQuCi0rICAgUmV0dXJucyAxIGlmIHZhbGlkOyAwIG90aGVy d2lzZS4gICovCi0rCi0rZXh0ZXJuIGludCBkd2FyZjJfYWRkcmVzc19kYXRhX3ZhbGlkIChjb25z dCBzdHJ1Y3QgdHlwZSAqdHlwZSk7Ci0rCi0gLyogQSBoZWxwZXIgZm9yIHRoZSBjb21waWxlciBp bnRlcmZhY2UgdGhhdCBjb21waWxlcyBhIHNpbmdsZSBkeW5hbWljCi0gICAgcHJvcGVydHkgdG8g QyBjb2RlLgotIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9kd2FyZjJyZWFkLmMK LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9kd2FyZjJyZWFk LmMJMjAxNi0wMS0wOCAxOToxNTozNS4wNzg1ODI0MzIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvZHdhcmYycmVhZC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgwNjM3NjYzICsw MTAwCi1AQCAtMTc0NSw3ICsxNzQ1LDkgQEAKLSAKLSBzdGF0aWMgaW50IGF0dHJfdG9fZHluYW1p Y19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAotIAkJCQkgc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LAotLQkJCQkgc3RydWN0IGR5bmFtaWNfcHJv cCAqcHJvcCk7Ci0rCQkJCSBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAotKwkJCQkgY29uc3Qg Z2RiX2J5dGUgKmFkZGl0aW9uYWxfZGF0YSwKLSsJCQkJIGludCBhZGRpdGlvbmFsX2RhdGFfc2l6 ZSk7Ci0gCi0gLyogbWVtb3J5IGFsbG9jYXRpb24gaW50ZXJmYWNlICovCi0gCi1AQCAtMTE0MjAs NyArMTE0MjIsNyBAQAotICAgICB7Ci0gICAgICAgbmV3b2JqLT5zdGF0aWNfbGluawotIAk9IFhP Qk5FVyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgc3RydWN0IGR5bmFtaWNfcHJvcCk7Ci0t ICAgICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsIG5ld29iai0+c3RhdGlj X2xpbmspOwotKyAgICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCBuZXdv YmotPnN0YXRpY19saW5rLCBOVUxMLCAwKTsKLSAgICAgfQotIAotICAgY3UtPmxpc3RfaW5fc2Nv cGUgPSAmbG9jYWxfc3ltYm9sczsKLUBAIC0xNDQ3MSwyOSArMTQ0NzMsOTIgQEAKLSAgIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7Ci0gICBzdHJ1 Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwotICAg c3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKLS0gIHVuc2lnbmVkIGludCBsZW5ndGg7Ci0rICB1bnNp Z25lZCBpbnQgbGVuZ3RoID0gVUlOVF9NQVg7Ci0gCi0rICBpbmRleF90eXBlID0gb2JqZmlsZV90 eXBlIChvYmpmaWxlKS0+YnVpbHRpbl9pbnQ7Ci0rICByYW5nZV90eXBlID0gY3JlYXRlX3N0YXRp Y19yYW5nZV90eXBlIChOVUxMLCBpbmRleF90eXBlLCAxLCBsZW5ndGgpOwotKwotKyAgLyogSWYg RFdfQVRfc3RyaW5nX2xlbmd0aCBpcyBkZWZpbmVkLCB0aGUgbGVuZ3RoIGlzIHN0b3JlZCBhdCBz b21lIGxvY2F0aW9uCi0rICAgKiBpbiBtZW1vcnkuICovCi0gICBhdHRyID0gZHdhcmYyX2F0dHIg KGRpZSwgRFdfQVRfc3RyaW5nX2xlbmd0aCwgY3UpOwotICAgaWYgKGF0dHIpCi0gICAgIHsKLS0g ICAgICBsZW5ndGggPSBEV19VTlNORCAoYXR0cik7Ci0rICAgICAgaWYgKGF0dHJfZm9ybV9pc19i bG9jayAoYXR0cikpCi0rICAgICAgICB7Ci0rICAgICAgICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmJ5 dGVfc2l6ZSwgKmJpdF9zaXplOwotKyAgICAgICAgICBzdHJ1Y3QgZHluYW1pY19wcm9wIGhpZ2g7 Ci0rCi0rICAgICAgICAgIGJ5dGVfc2l6ZSA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVf c2l6ZSwgY3UpOwotKyAgICAgICAgICBiaXRfc2l6ZSA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FU X2JpdF9zaXplLCBjdSk7Ci0rCi0rICAgICAgICAgIC8qIERXX0FUX2J5dGVfc2l6ZSBzaG91bGQg bmV2ZXIgb2NjdXIgdG9nZXRoZXIgaW4gY29tYmluYXRpb24gd2l0aAotKyAgICAgICAgICAgICBE V19BVF9zdHJpbmdfbGVuZ3RoLiAgKi8KLSsgICAgICAgICAgaWYgKChieXRlX3NpemUgPT0gTlVM TCAmJiBiaXRfc2l6ZSAhPSBOVUxMKSB8fAotKyAgICAgICAgICAgICAgICAgIChieXRlX3NpemUg IT0gTlVMTCAmJiBiaXRfc2l6ZSA9PSBOVUxMKSkKLSsgICAgICAgICAgICBjb21wbGFpbnQgKCZz eW1maWxlX2NvbXBsYWludHMsIF8oIkRXX0FUX2J5dGVfc2l6ZSBBTkQgIgotKyAgICAgICAgICAg ICAgICAgICAgICAiRFdfQVRfYml0X3NpemUgZm91bmQgdG9nZXRoZXIgYXQgdGhlIHNhbWUgdGlt ZS4iKSk7Ci0rCi0rICAgICAgICAgIC8qIElmIERXX0FUX3N0cmluZ19sZW5ndGggQU5EIERXX0FU X2J5dGVfc2l6ZSBleGlzdCB0b2dldGhlciwgaXQKLSsgICAgICAgICAgICAgZGVzY3JpYmVzIHRo ZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCBzaG91bGQgYmUgcmVhZCBmcm9tIHRoZSBsZW5ndGgKLSsg ICAgICAgICAgICAgbWVtb3J5IGxvY2F0aW9uLiAgKi8KLSsgICAgICAgICAgaWYgKGJ5dGVfc2l6 ZSAhPSBOVUxMICYmIGJpdF9zaXplID09IE5VTEwpCi0rICAgICAgICAgICAgewotKyAgICAgICAg ICAgICAgLyogQnVpbGQgbmV3IGR3YXJmMl9sb2NleHByX2JhdG9uIHN0cnVjdHVyZSB3aXRoIGFk ZGl0aW9ucyB0byB0aGUKLSsgICAgICAgICAgICAgICAgIGRhdGEgYXR0cmlidXRlLCB0byByZWZs ZWN0IERXQVJGIHNwZWNpYWxpdGllcyB0byBnZXQgYWRkcmVzcwotKyAgICAgICAgICAgICAgICAg c2l6ZXMuICAqLwotKyAgICAgICAgICAgICAgY29uc3QgZ2RiX2J5dGUgYXBwZW5kX29wc1tdID0g ewotKyAgICAgICAgICAgICAgICAvKiBEV19PUF9kZXJlZl9zaXplOiBzaXplIG9mIGFuIGFkZHJl c3Mgb24gdGhlIHRhcmdldCBtYWNoaW5lCi0rICAgICAgICAgICAgICAgICAgIChieXRlcyksIHdo ZXJlIHRoZSBzaXplIHdpbGwgYmUgc3BlY2lmaWVkIGJ5IHRoZSBuZXh0Ci0rICAgICAgICAgICAg ICAgICAgIG9wZXJhbmQuICAqLwotKyAgICAgICAgICAgICAgICBEV19PUF9kZXJlZl9zaXplLAot KyAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIGZvciBEV19PUF9kZXJlZl9zaXplLiAgKi8KLSsg ICAgICAgICAgICAgICAgRFdfVU5TTkQgKGJ5dGVfc2l6ZSkgfTsKLSsKLSsgICAgICAgICAgICAg IGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLAotKyAgICAg ICAgICAgICAgICAgICAgICBhcHBlbmRfb3BzLCBBUlJBWV9TSVpFIChhcHBlbmRfb3BzKSkpCi0r ICAgICAgICAgICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSsgICAgICAg ICAgICAgICAgICAgICAgICBfKCJDb3VsZCBub3QgcGFyc2UgRFdfQVRfYnl0ZV9zaXplIikpOwot KyAgICAgICAgICAgIH0KLSsgICAgICAgICAgZWxzZSBpZiAoYml0X3NpemUgIT0gTlVMTCAmJiBi eXRlX3NpemUgPT0gTlVMTCkKLSsgICAgICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBs YWludHMsIF8oIkRXX0FUX3N0cmluZ19sZW5ndGggQU5EICIKLSsgICAgICAgICAgICAgICAgICAg ICAgIkRXX0FUX2JpdF9zaXplIGZvdW5kIGJ1dCBub3Qgc3VwcG9ydGVkIHlldC4iKSk7Ci0rICAg ICAgICAgIC8qIElmIERXX0FUX3N0cmluZ19sZW5ndGggV0lUSE9VVCBEV19BVF9ieXRlX3NpemUg ZXhpc3QsIHRoZSBkZWZhdWx0Ci0rICAgICAgICAgICAgIGlzIHRoZSBhZGRyZXNzIHNpemUgb2Yg dGhlIHRhcmdldCBtYWNoaW5lLiAgKi8KLSsgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHsK LSsgICAgICAgICAgICAgIGNvbnN0IGdkYl9ieXRlIGFwcGVuZF9vcHNbXSA9IHsgRFdfT1BfZGVy ZWYgfTsKLSsKLSsgICAgICAgICAgICAgIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIs IGRpZSwgY3UsICZoaWdoLCBhcHBlbmRfb3BzLAotKyAgICAgICAgICAgICAgICAgICAgICBBUlJB WV9TSVpFIChhcHBlbmRfb3BzKSkpCi0rICAgICAgICAgICAgICAgIGNvbXBsYWludCAoJnN5bWZp bGVfY29tcGxhaW50cywKLSsgICAgICAgICAgICAgICAgICAgICAgICBfKCJDb3VsZCBub3QgcGFy c2UgRFdfQVRfc3RyaW5nX2xlbmd0aCIpKTsKLSsgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAg IFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2ggPSBoaWdoOwotKyAgICAgICAgfQot KyAgICAgIGVsc2UKLSsgICAgICAgIHsKLSsgICAgICAgICAgVFlQRV9ISUdIX0JPVU5EIChyYW5n ZV90eXBlKSA9IERXX1VOU05EIChhdHRyKTsKLSsgICAgICAgICAgVFlQRV9ISUdIX0JPVU5EX0tJ TkQgKHJhbmdlX3R5cGUpID0gUFJPUF9DT05TVDsKLSsgICAgICAgIH0KLSAgICAgfQotICAgZWxz ZQotICAgICB7Ci0tICAgICAgLyogQ2hlY2sgZm9yIHRoZSBEV19BVF9ieXRlX3NpemUgYXR0cmli dXRlLiAgKi8KLSsgICAgICAvKiBDaGVjayBmb3IgdGhlIERXX0FUX2J5dGVfc2l6ZSBhdHRyaWJ1 dGUsIHdoaWNoIHJlcHJlc2VudHMgdGhlIGxlbmd0aAotKyAgICAgICAgIGluIHRoaXMgY2FzZS4g ICovCi0gICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3Up OwotICAgICAgIGlmIChhdHRyKQotICAgICAgICAgewotLSAgICAgICAgICBsZW5ndGggPSBEV19V TlNORCAoYXR0cik7Ci0rICAgICAgICAgIFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSBE V19VTlNORCAoYXR0cik7Ci0rICAgICAgICAgIFRZUEVfSElHSF9CT1VORF9LSU5EIChyYW5nZV90 eXBlKSA9IFBST1BfQ09OU1Q7Ci0gICAgICAgICB9Ci0gICAgICAgZWxzZQotICAgICAgICAgewot LSAgICAgICAgICBsZW5ndGggPSAxOwotKyAgICAgICAgICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdl X3R5cGUpID0gMTsKLSsgICAgICAgICAgVFlQRV9ISUdIX0JPVU5EX0tJTkQgKHJhbmdlX3R5cGUp ID0gUFJPUF9DT05TVDsKLSAgICAgICAgIH0KLSAgICAgfQotIAotLSAgaW5kZXhfdHlwZSA9IG9i amZpbGVfdHlwZSAob2JqZmlsZSktPmJ1aWx0aW5faW50OwotLSAgcmFuZ2VfdHlwZSA9IGNyZWF0 ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoTlVMTCwgaW5kZXhfdHlwZSwgMSwgbGVuZ3RoKTsKLSAgIGNo YXJfdHlwZSA9IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFnZV9kZWZuLCBn ZGJhcmNoKTsKLSAgIHR5cGUgPSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNoYXJfdHlwZSwg cmFuZ2VfdHlwZSk7Ci0gCi1AQCAtMTQ4MTYsMTMgKzE0ODgxLDE1IEBACi0gICByZXR1cm4gc2V0 X2RpZV90eXBlIChkaWUsIHR5cGUsIGN1KTsKLSB9Ci0gCi0rCi0gLyogUGFyc2UgZHdhcmYgYXR0 cmlidXRlIGlmIGl0J3MgYSBibG9jaywgcmVmZXJlbmNlIG9yIGNvbnN0YW50IGFuZCBwdXQgdGhl Ci0gICAgcmVzdWx0aW5nIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgaW50byBzdHJ1Y3QgYm91bmRf cHJvcC4KLSAgICBSZXR1cm5zIDEgaWYgQVRUUiBjb3VsZCBiZSByZXNvbHZlZCBpbnRvIFBST1As IDAgb3RoZXJ3aXNlLiAgKi8KLSAKLSBzdGF0aWMgaW50Ci0gYXR0cl90b19keW5hbWljX3Byb3Ag KGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAotLQkJ ICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UsIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3ApCi0r CQkgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwK LSsJCSAgICAgIGNvbnN0IGdkYl9ieXRlICphZGRpdGlvbmFsX2RhdGEsIGludCBhZGRpdGlvbmFs X2RhdGFfc2l6ZSkKLSB7Ci0gICBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uICpiYXRvbjsK LSAgIHN0cnVjdCBvYnN0YWNrICpvYnN0YWNrID0gJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3Rh Y2s7Ci1AQCAtMTQ4MzUsOCArMTQ5MDIsMjUgQEAKLSAgICAgICBiYXRvbiA9IFhPQk5FVyAob2Jz dGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7Ci0gICAgICAgYmF0b24tPnJlZmVy ZW5jZWRfdHlwZSA9IE5VTEw7Ci0gICAgICAgYmF0b24tPmxvY2V4cHIucGVyX2N1ID0gY3UtPnBl cl9jdTsKLS0gICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXpl OwotLSAgICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAoYXR0ciktPmRhdGE7Ci0r Ci0rICAgICAgaWYgKGFkZGl0aW9uYWxfZGF0YSAhPSBOVUxMICYmIGFkZGl0aW9uYWxfZGF0YV9z aXplID4gMCkKLSsgICAgICAgIHsKLSsgICAgICAgICAgZ2RiX2J5dGUgKmRhdGE7Ci0rCi0rICAg ICAgICAgIGRhdGEgPSBvYnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFj aywKLSsgICAgICAgICAgICAgICAgICBEV19CTE9DSyAoYXR0ciktPnNpemUgKyBhZGRpdGlvbmFs X2RhdGFfc2l6ZSk7Ci0rICAgICAgICAgIG1lbWNweSAoZGF0YSwgRFdfQkxPQ0sgKGF0dHIpLT5k YXRhLCBEV19CTE9DSyAoYXR0ciktPnNpemUpOwotKyAgICAgICAgICBtZW1jcHkgKGRhdGEgKyBE V19CTE9DSyAoYXR0ciktPnNpemUsCi0rICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9kYXRh LCBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rCi0rICAgICAgICAgIGJhdG9uLT5sb2NleHByLmRh dGEgPSBkYXRhOwotKyAgICAgICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKGF0 dHIpLT5zaXplICsgYWRkaXRpb25hbF9kYXRhX3NpemU7Ci0rICAgICAgICB9Ci0rICAgICAgZWxz ZQotKyAgICAgICAgewotKyAgICAgICAgICBiYXRvbi0+bG9jZXhwci5kYXRhID0gRFdfQkxPQ0sg KGF0dHIpLT5kYXRhOwotKyAgICAgICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sg KGF0dHIpLT5zaXplOwotKyAgICAgICAgfQotICAgICAgIHByb3AtPmRhdGEuYmF0b24gPSBiYXRv bjsKLSAgICAgICBwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOwotICAgICAgIGdkYl9hc3NlcnQg KHByb3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7Ci1AQCAtMTQ4NzIsOCArMTQ5NTYsMjggQEAKLSAJ CWJhdG9uID0gWE9CTkVXIChvYnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uKTsK LSAJCWJhdG9uLT5yZWZlcmVuY2VkX3R5cGUgPSBkaWVfdHlwZSAodGFyZ2V0X2RpZSwgdGFyZ2V0 X2N1KTsKLSAJCWJhdG9uLT5sb2NleHByLnBlcl9jdSA9IGN1LT5wZXJfY3U7Ci0tCQliYXRvbi0+ bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZTsKLS0JCWJhdG9uLT5s b2NleHByLmRhdGEgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOwotKwotKwkJaWYgKGFk ZGl0aW9uYWxfZGF0YSAhPSBOVUxMICYmIGFkZGl0aW9uYWxfZGF0YV9zaXplID4gMCkKLSsJCSAg ewotKwkJICAgIGdkYl9ieXRlICpkYXRhOwotKwotKwkJICAgIGRhdGEgPSBvYnN0YWNrX2FsbG9j ICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKLSsJCQkgICAgRFdfQkxPQ0sgKHRhcmdl dF9hdHRyKS0+c2l6ZSArIGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKLSsJCSAgICBtZW1jcHkgKGRh dGEsIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPmRhdGEsCi0rCQkJICAgIERXX0JMT0NLICh0YXJn ZXRfYXR0ciktPnNpemUpOwotKwkJICAgIG1lbWNweSAoZGF0YSArIERXX0JMT0NLICh0YXJnZXRf YXR0ciktPnNpemUsCi0rCQkJICAgIGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX3Np emUpOwotKwotKwkJICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOwotKwkJICAgIGJhdG9u LT5sb2NleHByLnNpemUgPSAoRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZQotKwkJCQkJICAg KyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rCQkgIH0KLSsJCWVsc2UKLSsJCSAgewotKwkJICAg IGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOwotKwkJ ICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplOwot KwkJICB9Ci0rCi0gCQlwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247Ci0gCQlwcm9wLT5raW5kID0g UFJPUF9MT0NFWFBSOwotIAkJZ2RiX2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsK LUBAIC0xNDkyNyw3ICsxNTAzMSw3IEBACi0gICBzdHJ1Y3QgdHlwZSAqYmFzZV90eXBlLCAqb3Jp Z19iYXNlX3R5cGU7Ci0gICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKLSAgIHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHI7Ci0tICBzdHJ1Y3QgZHluYW1pY19wcm9wIGxvdywgaGlnaDsKLSsgIHN0cnVj dCBkeW5hbWljX3Byb3AgbG93LCBoaWdoLCBzdHJpZGU7Ci0gICBpbnQgbG93X2RlZmF1bHRfaXNf dmFsaWQ7Ci0gICBpbnQgaGlnaF9ib3VuZF9pc19jb3VudCA9IDA7Ci0gICBjb25zdCBjaGFyICpu YW1lOwotQEAgLTE0OTQ3LDcgKzE1MDUxLDkgQEAKLSAKLSAgIGxvdy5raW5kID0gUFJPUF9DT05T VDsKLSAgIGhpZ2gua2luZCA9IFBST1BfQ09OU1Q7Ci0rICBzdHJpZGUua2luZCA9IFBST1BfQ09O U1Q7Ci0gICBoaWdoLmRhdGEuY29uc3RfdmFsID0gMDsKLSsgIHN0cmlkZS5kYXRhLmNvbnN0X3Zh bCA9IDA7Ci0gCi0gICAvKiBTZXQgTE9XX0RFRkFVTFRfSVNfVkFMSUQgaWYgY3VycmVudCBsYW5n dWFnZSBhbmQgRFdBUkYgdmVyc2lvbiBhbGxvdwotICAgICAgb21pdHRpbmcgRFdfQVRfbG93ZXJf Ym91bmQuICAqLwotQEAgLTE0OTgwLDE5ICsxNTA4NiwyNiBAQAotICAgICAgIGJyZWFrOwotICAg ICB9Ci0gCi0rICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9zdHJpZGUsIGN1 KTsKLSsgIGlmIChhdHRyKQotKyAgICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBk aWUsIGN1LCAmc3RyaWRlLCBOVUxMLCAwKSkKLSsgICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVf Y29tcGxhaW50cywgXygiTWlzc2luZyBEV19BVF9ieXRlX3N0cmlkZSAiCi0rICAgICAgICAgICAg ICAgICAgIi0gRElFIGF0IDB4JXggW2luIG1vZHVsZSAlc10iKSwKLSsgICAgICAgICAgICAgZGll LT5vZmZzZXQuc2VjdF9vZmYsIG9iamZpbGVfbmFtZSAoY3UtPm9iamZpbGUpKTsKLSsKLSAgIGF0 dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9sb3dlcl9ib3VuZCwgY3UpOwotICAgaWYgKGF0 dHIpCi0tICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmbG93KTsKLSsg ICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZsb3csIE5VTEwsIDApOwot ICAgZWxzZSBpZiAoIWxvd19kZWZhdWx0X2lzX3ZhbGlkKQotICAgICBjb21wbGFpbnQgKCZzeW1m aWxlX2NvbXBsYWludHMsIF8oIk1pc3NpbmcgRFdfQVRfbG93ZXJfYm91bmQgIgotIAkJCQkgICAg ICAiLSBESUUgYXQgMHgleCBbaW4gbW9kdWxlICVzXSIpLAotIAkgICAgICAgZGllLT5vZmZzZXQu c2VjdF9vZmYsIG9iamZpbGVfbmFtZSAoY3UtPm9iamZpbGUpKTsKLSAKLSAgIGF0dHIgPSBkd2Fy ZjJfYXR0ciAoZGllLCBEV19BVF91cHBlcl9ib3VuZCwgY3UpOwotLSAgaWYgKCFhdHRyX3RvX2R5 bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gpKQotKyAgaWYgKCFhdHRyX3RvX2R5bmFt aWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gsIE5VTEwsIDApKQotICAgICB7Ci0gICAgICAg YXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2NvdW50LCBjdSk7Ci0tICAgICAgaWYgKGF0 dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCkpCi0rICAgICAgaWYgKGF0 dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCwgTlVMTCwgMCkpCi0gCXsK LSAJICAvKiBJZiBib3VuZHMgYXJlIGNvbnN0YW50IGRvIHRoZSBmaW5hbCBjYWxjdWxhdGlvbiBo ZXJlLiAgKi8KLSAJICBpZiAobG93LmtpbmQgPT0gUFJPUF9DT05TVCAmJiBoaWdoLmtpbmQgPT0g UFJPUF9DT05TVCkKLUBAIC0xNTA1Niw3ICsxNTE2OSw3IEBACi0gICAgICAgJiYgIVRZUEVfVU5T SUdORUQgKGJhc2VfdHlwZSkgJiYgKGhpZ2guZGF0YS5jb25zdF92YWwgJiBuZWdhdGl2ZV9tYXNr KSkKLSAgICAgaGlnaC5kYXRhLmNvbnN0X3ZhbCB8PSBuZWdhdGl2ZV9tYXNrOwotIAotLSAgcmFu Z2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChOVUxMLCBvcmlnX2Jhc2VfdHlwZSwgJmxvdywg JmhpZ2gpOwotKyAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChOVUxMLCBvcmlnX2Jh c2VfdHlwZSwgJmxvdywgJmhpZ2gsICZzdHJpZGUpOwotIAotICAgaWYgKGhpZ2hfYm91bmRfaXNf Y291bnQpCi0gICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmZsYWdfdXBwZXJfYm91 bmRfaXNfY291bnQgPSAxOwotQEAgLTIyMzYwLDcgKzIyNDczLDcgQEAKLSAgIGF0dHIgPSBkd2Fy ZjJfYXR0ciAoZGllLCBEV19BVF9hbGxvY2F0ZWQsIGN1KTsKLSAgIGlmIChhdHRyX2Zvcm1faXNf YmxvY2sgKGF0dHIpKQotICAgICB7Ci0tICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChh dHRyLCBkaWUsIGN1LCAmcHJvcCkpCi0rICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChh dHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkpCi0gICAgICAgICBhZGRfZHluX3Byb3AgKERZ Tl9QUk9QX0FMTE9DQVRFRCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7Ci0gICAgIH0KLSAgIGVsc2Ug aWYgKGF0dHIgIT0gTlVMTCkKLUBAIC0yMjM3NSw3ICsyMjQ4OCw3IEBACi0gICBhdHRyID0gZHdh cmYyX2F0dHIgKGRpZSwgRFdfQVRfYXNzb2NpYXRlZCwgY3UpOwotICAgaWYgKGF0dHJfZm9ybV9p c19ibG9jayAoYXR0cikpCi0gICAgIHsKLS0gICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3Ag KGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKLSsgICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3Ag KGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxMLCAwKSkKLSAgICAgICAgIGFkZF9keW5fcHJvcCAo RFlOX1BST1BfQVNTT0NJQVRFRCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7Ci0gICAgIH0KLSAgIGVs c2UgaWYgKGF0dHIgIT0gTlVMTCkKLUBAIC0yMjM4OCw3ICsyMjUwMSw3IEBACi0gCi0gICAvKiBS ZWFkIERXX0FUX2RhdGFfbG9jYXRpb24gYW5kIHNldCBpbiB0eXBlLiAgKi8KLSAgIGF0dHIgPSBk d2FyZjJfYXR0ciAoZGllLCBEV19BVF9kYXRhX2xvY2F0aW9uLCBjdSk7Ci0tICBpZiAoYXR0cl90 b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKLSsgIGlmIChhdHRyX3RvX2R5 bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3AsIE5VTEwsIDApKQotICAgICBhZGRfZHlu X3Byb3AgKERZTl9QUk9QX0RBVEFfTE9DQVRJT04sIHByb3AsIHR5cGUsIG9iamZpbGUpOwotIAot ICAgaWYgKGR3YXJmMl9wZXJfb2JqZmlsZS0+ZGllX3R5cGVfaGFzaCA9PSBOVUxMKQotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9mLXR5cGVwcmludC5jCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTAxLTA4IDE5 OjE1OjM1LjA4MDU4MjQ0MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9mLXR5 cGVwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgwNjM3NjYzICswMTAwCi1AQCAtMzEsNiAr MzEsNyBAQAotICNpbmNsdWRlICJ0YXJnZXQuaCIKLSAjaW5jbHVkZSAiZi1sYW5nLmgiCi0gI2lu Y2x1ZGUgInR5cGVwcmludC5oIgotKyNpbmNsdWRlICJ2YWxwcmludC5oIgotIAotICNpZiAwCQkJ CS8qIEN1cnJlbnRseSB1bnVzZWQuICAqLwotIHN0YXRpYyB2b2lkIGZfdHlwZV9wcmludF9hcmdz IChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKLUBAIC02NCw2ICs2NSwxNyBAQAot ICAgICB7Ci0gICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVhbSk7Ci0gICAgICAg cmV0dXJuOwotKyAgICB9Ci0rCi0rICBpZiAoVFlQRV9OT1RfQVNTT0NJQVRFRCAodHlwZSkpCi0r ICAgIHsKLSsgICAgICB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cmVhbSk7Ci0rICAgICAg cmV0dXJuOwotKyAgICB9Ci0rICBpZiAoVFlQRV9OT1RfQUxMT0NBVEVEICh0eXBlKSkKLSsgICAg ewotKyAgICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOwotKyAgICAgIHJldHVy bjsKLSAgICAgfQotIAotICAgZl90eXBlX3ByaW50X2Jhc2UgKHR5cGUsIHN0cmVhbSwgc2hvdywg bGV2ZWwpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9mLXZhbHByaW50LmMKLT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9mLXZhbHByaW50LmMJ MjAxNi0wMS0wOCAxOToxNTozNS4wODE1ODI0NDggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvZi12YWxwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgxNjM3NjY5ICswMTAw Ci1AQCAtMzYsOCArMzYsNiBAQAotIAotIGV4dGVybiB2b2lkIF9pbml0aWFsaXplX2ZfdmFscHJp bnQgKHZvaWQpOwotIHN0YXRpYyB2b2lkIGluZm9fY29tbW9uX2NvbW1hbmQgKGNoYXIgKiwgaW50 KTsKLS1zdGF0aWMgdm9pZCBmNzdfY3JlYXRlX2FycmF5cHJpbnRfb2Zmc2V0X3RibCAoc3RydWN0 IHR5cGUgKiwKLS0JCQkJCSAgICAgIHN0cnVjdCB1aV9maWxlICopOwotIHN0YXRpYyB2b2lkIGY3 N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqKTsKLSAKLSBp bnQgZjc3X2FycmF5X29mZnNldF90YmxbTUFYX0ZPUlRSQU5fRElNUyArIDFdWzJdOwotQEAgLTQ1 LDE1ICs0Myw2IEBACi0gLyogQXJyYXkgd2hpY2ggaG9sZHMgb2Zmc2V0cyB0byBiZSBhcHBsaWVk IHRvIGdldCBhIHJvdydzIGVsZW1lbnRzCi0gICAgZm9yIGEgZ2l2ZW4gYXJyYXkuICBBcnJheSBh bHNvIGhvbGRzIHRoZSBzaXplIG9mIGVhY2ggc3ViYXJyYXkuICAqLwotIAotLS8qIFRoZSBmb2xs b3dpbmcgbWFjcm8gZ2l2ZXMgdXMgdGhlIHNpemUgb2YgdGhlIG50aCBkaW1lbnNpb24sIFdoZXJl IAotLSAgIG4gaXMgMSBiYXNlZC4gICovCi0tCi0tI2RlZmluZSBGNzdfRElNX1NJWkUobikgKGY3 N19hcnJheV9vZmZzZXRfdGJsW25dWzFdKQotLQotLS8qIFRoZSBmb2xsb3dpbmcgZ2l2ZXMgdXMg dGhlIG9mZnNldCBmb3Igcm93IG4gd2hlcmUgbiBpcyAxLWJhc2VkLiAgKi8KLS0KLS0jZGVmaW5l IEY3N19ESU1fT0ZGU0VUKG4pIChmNzdfYXJyYXlfb2Zmc2V0X3RibFtuXVswXSkKLS0KLSBpbnQK LSBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQotIHsKLUBAIC0xMTEsNDcg KzEwMCw2IEBACi0gICAgICogVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VU X1RZUEUgKHR5cGUpKSk7Ci0gfQotIAotLS8qIEZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgYXJy YXkgb2Zmc2V0LHNpemUgdGFibGUgZm9yIHRoZSBhcnJheSAKLS0gICB0eXBlICJ0eXBlIi4gICov Ci0tCi0tc3RhdGljIHZvaWQKLS1mNzdfY3JlYXRlX2FycmF5cHJpbnRfb2Zmc2V0X3RibCAoc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCi0tewotLSAgc3RydWN0IHR5 cGUgKnRtcF90eXBlOwotLSAgaW50IGVsdGxlbjsKLS0gIGludCBuZGltZW4gPSAxOwotLSAgaW50 IHVwcGVyLCBsb3dlcjsKLS0KLS0gIHRtcF90eXBlID0gdHlwZTsKLS0KLS0gIHdoaWxlIChUWVBF X0NPREUgKHRtcF90eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkpCi0tICAgIHsKLS0gICAgICB1cHBl ciA9IGY3N19nZXRfdXBwZXJib3VuZCAodG1wX3R5cGUpOwotLSAgICAgIGxvd2VyID0gZjc3X2dl dF9sb3dlcmJvdW5kICh0bXBfdHlwZSk7Ci0tCi0tICAgICAgRjc3X0RJTV9TSVpFIChuZGltZW4p ID0gdXBwZXIgLSBsb3dlciArIDE7Ci0tCi0tICAgICAgdG1wX3R5cGUgPSBUWVBFX1RBUkdFVF9U WVBFICh0bXBfdHlwZSk7Ci0tICAgICAgbmRpbWVuKys7Ci0tICAgIH0KLS0KLS0gIC8qIE5vdyB3 ZSBtdWx0aXBseSBlbHRsZW4gYnkgYWxsIHRoZSBvZmZzZXRzLCBzbyB0aGF0IGxhdGVyIHdlIAot LSAgICAgY2FuIHByaW50IG91dCBhcnJheSBlbGVtZW50cyBjb3JyZWN0bHkuICBVcCB0aWxsIG5v dyB3ZSAKLS0gICAgIGtub3cgYW4gb2Zmc2V0IHRvIGFwcGx5IHRvIGdldCB0aGUgaXRlbSBidXQg d2UgYWxzbyAKLS0gICAgIGhhdmUgdG8ga25vdyBob3cgbXVjaCB0byBhZGQgdG8gZ2V0IHRvIHRo ZSBuZXh0IGl0ZW0uICAqLwotLQotLSAgbmRpbWVuLS07Ci0tICBlbHRsZW4gPSBUWVBFX0xFTkdU SCAodG1wX3R5cGUpOwotLSAgRjc3X0RJTV9PRkZTRVQgKG5kaW1lbikgPSBlbHRsZW47Ci0tICB3 aGlsZSAoLS1uZGltZW4gPiAwKQotLSAgICB7Ci0tICAgICAgZWx0bGVuICo9IEY3N19ESU1fU0la RSAobmRpbWVuICsgMSk7Ci0tICAgICAgRjc3X0RJTV9PRkZTRVQgKG5kaW1lbikgPSBlbHRsZW47 Ci0tICAgIH0KLS19Ci0tCi0tCi0tCi0gLyogQWN0dWFsIGZ1bmN0aW9uIHdoaWNoIHByaW50cyBv dXQgRjc3IGFycmF5cywgVmFsYWRkciA9PSBhZGRyZXNzIGluIAotICAgIHRoZSBzdXBlcmlvci4g IEFkZHJlc3MgPT0gdGhlIGFkZHJlc3MgaW4gdGhlIGluZmVyaW9yLiAgKi8KLSAKLUBAIC0xNjQs NDEgKzExMiw2MiBAQAotIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMsCi0gCQkgICBpbnQgKmVsdHMpCi0gewotKyAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUg PSBUWVBFX0lOREVYX1RZUEUgKGNoZWNrX3R5cGVkZWYgKHR5cGUpKTsKLSsgIENPUkVfQUREUiBh ZGRyID0gYWRkcmVzcyArIGVtYmVkZGVkX29mZnNldDsKLSsgIExPTkdFU1QgbG93ZXJib3VuZCwg dXBwZXJib3VuZDsKLSAgIGludCBpOwotIAotKyAgZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2Vf dHlwZSwgJmxvd2VyYm91bmQsICZ1cHBlcmJvdW5kKTsKLSsKLSAgIGlmIChuc3MgIT0gbmRpbWVu c2lvbnMpCi0gICAgIHsKLS0gICAgICBmb3IgKGkgPSAwOwotLQkgICAoaSA8IEY3N19ESU1fU0la RSAobnNzKSAmJiAoKmVsdHMpIDwgb3B0aW9ucy0+cHJpbnRfbWF4KTsKLSsgICAgICBzaXplX3Qg ZGltX3NpemU7Ci0rICAgICAgc2l6ZV90IG9mZnMgPSAwOwotKyAgICAgIExPTkdFU1QgYnl0ZV9z dHJpZGUgPSBhYnMgKFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpKTsKLSsKLSsgICAgICBp ZiAoYnl0ZV9zdHJpZGUpCi0rICAgICAgICBkaW1fc2l6ZSA9IGJ5dGVfc3RyaWRlOwotKyAgICAg IGVsc2UKLSsgICAgICAgIGRpbV9zaXplID0gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUg KHR5cGUpKTsKLSsKLSsgICAgICBmb3IgKGkgPSBsb3dlcmJvdW5kOwotKwkgICAoaSA8IHVwcGVy Ym91bmQgKyAxICYmICgqZWx0cykgPCBvcHRpb25zLT5wcmludF9tYXgpOwotIAkgICBpKyspCi0g CXsKLSsJICBzdHJ1Y3QgdmFsdWUgKnN1YmFycmF5ID0gdmFsdWVfZnJvbV9jb250ZW50c19hbmRf YWRkcmVzcwotKwkgICAgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCB2YWx1ZV9jb250ZW50c19m b3JfcHJpbnRpbmdfY29uc3QgKHZhbCkKLSsJICAgICArIG9mZnMsIGFkZHIgKyBvZmZzKTsKLSsK LSAJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIoICIpOwotLQkgIGY3N19wcmludF9hcnJh eV8xIChuc3MgKyAxLCBuZGltZW5zaW9ucywgVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksCi0tCQkJ ICAgICB2YWxhZGRyLAotLQkJCSAgICAgZW1iZWRkZWRfb2Zmc2V0ICsgaSAqIEY3N19ESU1fT0ZG U0VUIChuc3MpLAotLQkJCSAgICAgYWRkcmVzcywKLS0JCQkgICAgIHN0cmVhbSwgcmVjdXJzZSwg dmFsLCBvcHRpb25zLCBlbHRzKTsKLSsJICBmNzdfcHJpbnRfYXJyYXlfMSAobnNzICsgMSwgbmRp bWVuc2lvbnMsIHZhbHVlX3R5cGUgKHN1YmFycmF5KSwKLSsJCQkgICAgIHZhbHVlX2NvbnRlbnRz X2Zvcl9wcmludGluZyAoc3ViYXJyYXkpLAotKwkJCSAgICAgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0 IChzdWJhcnJheSksCi0rCQkJICAgICB2YWx1ZV9hZGRyZXNzIChzdWJhcnJheSksCi0rCQkJICAg ICBzdHJlYW0sIHJlY3Vyc2UsIHN1YmFycmF5LCBvcHRpb25zLCBlbHRzKTsKLSsJICBvZmZzICs9 IGRpbV9zaXplOwotIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIikgIik7Ci0gCX0KLS0g ICAgICBpZiAoKmVsdHMgPj0gb3B0aW9ucy0+cHJpbnRfbWF4ICYmIGkgPCBGNzdfRElNX1NJWkUg KG5zcykpIAotKyAgICAgIGlmICgqZWx0cyA+PSBvcHRpb25zLT5wcmludF9tYXggJiYgaSA8IHVw cGVyYm91bmQpCi0gCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIi4uLiIpOwotICAgICB9Ci0g ICBlbHNlCi0gICAgIHsKLS0gICAgICBmb3IgKGkgPSAwOyBpIDwgRjc3X0RJTV9TSVpFIChuc3Mp ICYmICgqZWx0cykgPCBvcHRpb25zLT5wcmludF9tYXg7Ci0rICAgICAgZm9yIChpID0gbG93ZXJi b3VuZDsgaSA8IHVwcGVyYm91bmQgKyAxICYmICgqZWx0cykgPCBvcHRpb25zLT5wcmludF9tYXg7 Ci0gCSAgIGkrKywgKCplbHRzKSsrKQotIAl7Ci0tCSAgdmFsX3ByaW50IChUWVBFX1RBUkdFVF9U WVBFICh0eXBlKSwKLS0JCSAgICAgdmFsYWRkciwKLS0JCSAgICAgZW1iZWRkZWRfb2Zmc2V0ICsg aSAqIEY3N19ESU1fT0ZGU0VUIChuZGltZW5zaW9ucyksCi0tCQkgICAgIGFkZHJlc3MsIHN0cmVh bSwgcmVjdXJzZSwKLS0JCSAgICAgdmFsLCBvcHRpb25zLCBjdXJyZW50X2xhbmd1YWdlKTsKLSsJ ICBzdHJ1Y3QgdmFsdWUgKmVsdCA9IHZhbHVlX3N1YnNjcmlwdCAoKHN0cnVjdCB2YWx1ZSAqKXZh bCwgaSk7Ci0rCi0rCSAgdmFsX3ByaW50ICh2YWx1ZV90eXBlIChlbHQpLAotKwkJICAgICB2YWx1 ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKGVsdCksCi0rCQkgICAgIHZhbHVlX2VtYmVkZGVkX29m ZnNldCAoZWx0KSwKLSsJCSAgICAgdmFsdWVfYWRkcmVzcyAoZWx0KSwgc3RyZWFtLCByZWN1cnNl LAotKwkJICAgICBlbHQsIG9wdGlvbnMsIGN1cnJlbnRfbGFuZ3VhZ2UpOwotIAotLQkgIGlmIChp ICE9IChGNzdfRElNX1NJWkUgKG5zcykgLSAxKSkKLSsJICBpZiAoaSAhPSB1cHBlcmJvdW5kKQot IAkgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLCAiKTsKLSAKLSAJICBpZiAoKCplbHRz ID09IG9wdGlvbnMtPnByaW50X21heCAtIDEpCi0tCSAgICAgICYmIChpICE9IChGNzdfRElNX1NJ WkUgKG5zcykgLSAxKSkpCi0rCSAgICAgICYmIChpICE9IHVwcGVyYm91bmQpKQotIAkgICAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLi4uIik7Ci0gCX0KLSAgICAgfQotQEAgLTIyNSwxMiAr MTk0LDYgQEAKLSBUeXBlIG5vZGUgY29ycnVwdCEgRjc3IGFycmF5cyBjYW5ub3QgaGF2ZSAlZCBz dWJzY3JpcHRzICglZCBNYXgpIiksCi0gCSAgIG5kaW1lbnNpb25zLCBNQVhfRk9SVFJBTl9ESU1T KTsKLSAKLS0gIC8qIFNpbmNlIEY3NyBhcnJheXMgYXJlIHN0b3JlZCBjb2x1bW4tbWFqb3IsIHdl IHNldCB1cCBhbiAKLS0gICAgIG9mZnNldCB0YWJsZSB0byBnZXQgYXQgdGhlIHZhcmlvdXMgcm93 J3MgZWxlbWVudHMuICBUaGUgCi0tICAgICBvZmZzZXQgdGFibGUgY29udGFpbnMgZW50cmllcyBm b3IgYm90aCBvZmZzZXQgYW5kIHN1YmFycmF5IHNpemUuICAqLwotLQotLSAgZjc3X2NyZWF0ZV9h cnJheXByaW50X29mZnNldF90YmwgKHR5cGUsIHN0cmVhbSk7Ci0tCi0gICBmNzdfcHJpbnRfYXJy YXlfMSAoMSwgbmRpbWVuc2lvbnMsIHR5cGUsIHZhbGFkZHIsIGVtYmVkZGVkX29mZnNldCwKLSAJ CSAgICAgYWRkcmVzcywgc3RyZWFtLCByZWN1cnNlLCB2YWwsIG9wdGlvbnMsICZlbHRzKTsKLSB9 Ci1AQCAtMzc1LDEyICszMzgsMTUgQEAKLSAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0s ICIoICIpOwotICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IFRZUEVfTkZJRUxEUyAodHlw ZSk7IGluZGV4KyspCi0gICAgICAgICB7Ci0tICAgICAgICAgIGludCBvZmZzZXQgPSBUWVBFX0ZJ RUxEX0JJVFBPUyAodHlwZSwgaW5kZXgpIC8gODsKLSsJICBzdHJ1Y3QgdmFsdWUgKmZpZWxkID0g dmFsdWVfZmllbGQKLSsJICAgICgoc3RydWN0IHZhbHVlICopb3JpZ2luYWxfdmFsdWUsIGluZGV4 KTsKLSsKLSsgICAgICAgICAgdmFsX3ByaW50ICh2YWx1ZV90eXBlIChmaWVsZCksCi0rCQkgICAg IHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAoZmllbGQpLAotKwkJICAgICB2YWx1ZV9lbWJl ZGRlZF9vZmZzZXQgKGZpZWxkKSwKLSsJCSAgICAgdmFsdWVfYWRkcmVzcyAoZmllbGQpLCBzdHJl YW0sIHJlY3Vyc2UgKyAxLAotKwkJICAgICBmaWVsZCwgb3B0aW9ucywgY3VycmVudF9sYW5ndWFn ZSk7Ci0gCi0tICAgICAgICAgIHZhbF9wcmludCAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpbmRl eCksIHZhbGFkZHIsCi0tCQkgICAgIGVtYmVkZGVkX29mZnNldCArIG9mZnNldCwKLS0JCSAgICAg YWRkcmVzcywgc3RyZWFtLCByZWN1cnNlICsgMSwKLS0JCSAgICAgb3JpZ2luYWxfdmFsdWUsIG9w dGlvbnMsIGN1cnJlbnRfbGFuZ3VhZ2UpOwotICAgICAgICAgICBpZiAoaW5kZXggIT0gVFlQRV9O RklFTERTICh0eXBlKSAtIDEpCi0gICAgICAgICAgICAgZnB1dHNfZmlsdGVyZWQgKCIsICIsIHN0 cmVhbSk7Ci0gICAgICAgICB9Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dkYnR5 cGVzLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9nZGJ0 eXBlcy5jCTIwMTYtMDEtMDggMTk6MTU6MzUuMDgzNTgyNDU5ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2dkYnR5cGVzLmMJMjAxNi0wMS0wOCAxOToxNTo0NC45ODI2Mzc2NzQg KzAxMDAKLUBAIC04MzYsNyArODM2LDggQEAKLSBzdHJ1Y3QgdHlwZSAqCi0gY3JlYXRlX3Jhbmdl X3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUs Ci0gCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpsb3dfYm91bmQsCi0tCQkgICBjb25z dCBzdHJ1Y3QgZHluYW1pY19wcm9wICpoaWdoX2JvdW5kKQotKwkJICAgY29uc3Qgc3RydWN0IGR5 bmFtaWNfcHJvcCAqaGlnaF9ib3VuZCwKLSsJCSAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3Ag KnN0cmlkZSkKLSB7Ci0gICBpZiAocmVzdWx0X3R5cGUgPT0gTlVMTCkKLSAgICAgcmVzdWx0X3R5 cGUgPSBhbGxvY190eXBlX2NvcHkgKGluZGV4X3R5cGUpOwotQEAgLTg1MSw2ICs4NTIsNyBAQAot ICAgICBUWVBFX1pBTExPQyAocmVzdWx0X3R5cGUsIHNpemVvZiAoc3RydWN0IHJhbmdlX2JvdW5k cykpOwotICAgVFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlwZSktPmxvdyA9ICpsb3dfYm91bmQ7 Ci0gICBUWVBFX1JBTkdFX0RBVEEgKHJlc3VsdF90eXBlKS0+aGlnaCA9ICpoaWdoX2JvdW5kOwot KyAgVFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlwZSktPnN0cmlkZSA9ICpzdHJpZGU7Ci0gCi0g ICBpZiAobG93X2JvdW5kLT5raW5kID09IFBST1BfQ09OU1QgJiYgbG93X2JvdW5kLT5kYXRhLmNv bnN0X3ZhbCA+PSAwKQotICAgICBUWVBFX1VOU0lHTkVEIChyZXN1bHRfdHlwZSkgPSAxOwotQEAg LTg3OSw3ICs4ODEsNyBAQAotIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUg KnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKLSAJCQkgIExPTkdFU1QgbG93 X2JvdW5kLCBMT05HRVNUIGhpZ2hfYm91bmQpCi0gewotLSAgc3RydWN0IGR5bmFtaWNfcHJvcCBs b3csIGhpZ2g7Ci0rICBzdHJ1Y3QgZHluYW1pY19wcm9wIGxvdywgaGlnaCwgc3RyaWRlOwotIAot ICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOwotICAgbG93LmRhdGEuY29uc3RfdmFsID0gbG93X2Jv dW5kOwotQEAgLTg4Nyw3ICs4ODksMTEgQEAKLSAgIGhpZ2gua2luZCA9IFBST1BfQ09OU1Q7Ci0g ICBoaWdoLmRhdGEuY29uc3RfdmFsID0gaGlnaF9ib3VuZDsKLSAKLS0gIHJlc3VsdF90eXBlID0g Y3JlYXRlX3JhbmdlX3R5cGUgKHJlc3VsdF90eXBlLCBpbmRleF90eXBlLCAmbG93LCAmaGlnaCk7 Ci0rICBzdHJpZGUua2luZCA9IFBST1BfQ09OU1Q7Ci0rICBzdHJpZGUuZGF0YS5jb25zdF92YWwg PSAwOwotKwotKyAgcmVzdWx0X3R5cGUgPSBjcmVhdGVfcmFuZ2VfdHlwZSAocmVzdWx0X3R5cGUs IGluZGV4X3R5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbG93LCAm aGlnaCwgJnN0cmlkZSk7Ci0gCi0gICByZXR1cm4gcmVzdWx0X3R5cGU7Ci0gfQotQEAgLTEwODQs MTYgKzEwOTAsMjEgQEAKLSAgICAgICAmJiAoIXR5cGVfbm90X2Fzc29jaWF0ZWQgKHJlc3VsdF90 eXBlKQotIAkgICYmICF0eXBlX25vdF9hbGxvY2F0ZWQgKHJlc3VsdF90eXBlKSkpCi0gICAgIHsK LS0gICAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKLSsgICAgICBMT05HRVNUIGxv d19ib3VuZCwgaGlnaF9ib3VuZCwgYnl0ZV9zdHJpZGU7Ci0gCi0gICAgICAgaWYgKGdldF9kaXNj cmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCi0g CWxvd19ib3VuZCA9IGhpZ2hfYm91bmQgPSAwOwotICAgICAgIGVsZW1lbnRfdHlwZSA9IGNoZWNr X3R5cGVkZWYgKGVsZW1lbnRfdHlwZSk7Ci0rCi0rICAgICAgYnl0ZV9zdHJpZGUgPSBhYnMgKFRZ UEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpKTsKLSsKLSAgICAgICAvKiBCZSBjYXJlZnVsIHdo ZW4gc2V0dGluZyB0aGUgYXJyYXkgbGVuZ3RoLiAgQWRhIGFycmF5cyBjYW4gYmUKLSAJIGVtcHR5 IGFycmF5cyB3aXRoIHRoZSBoaWdoX2JvdW5kIGJlaW5nIHNtYWxsZXIgdGhhbiB0aGUgbG93X2Jv dW5kLgotIAkgSW4gc3VjaCBjYXNlcywgdGhlIGFycmF5IGxlbmd0aCBzaG91bGQgYmUgemVyby4g ICovCi0gICAgICAgaWYgKGhpZ2hfYm91bmQgPCBsb3dfYm91bmQpCi0gCVRZUEVfTEVOR1RIIChy ZXN1bHRfdHlwZSkgPSAwOwotKyAgICAgIGVsc2UgaWYgKGJ5dGVfc3RyaWRlID4gMCkKLSsJVFlQ RV9MRU5HVEggKHJlc3VsdF90eXBlKSA9IGJ5dGVfc3RyaWRlICogKGhpZ2hfYm91bmQgLSBsb3df Ym91bmQgKyAxKTsKLSAgICAgICBlbHNlIGlmIChiaXRfc3RyaWRlID4gMCkKLSAJVFlQRV9MRU5H VEggKHJlc3VsdF90eXBlKSA9Ci0gCSAgKGJpdF9zdHJpZGUgKiAoaGlnaF9ib3VuZCAtIGxvd19i b3VuZCArIDEpICsgNykgLyA4OwotQEAgLTE4MDQsMTIgKzE4MTUsMzEgQEAKLSBzdGF0aWMgaW50 Ci0gaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHRvcF9s ZXZlbCkKLSB7Ci0rICBpbnQgaW5kZXg7Ci0rCi0rICBpZiAoIXR5cGUpCi0rICAgIHJldHVybiAw OwotKwotICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUpOwotIAotICAgLyogV2Ugb25seSB3 YW50IHRvIHJlY29nbml6ZSByZWZlcmVuY2VzIGF0IHRoZSBvdXRlcm1vc3QgbGV2ZWwuICAqLwot ICAgaWYgKHRvcF9sZXZlbCAmJiBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9SRUYpCi0g ICAgIHR5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSk7Ci0gCi0r ICBpZiAoVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpKQotKyAgICByZXR1cm4gMTsKLSsKLSsg IGlmIChUWVBFX0FMTE9DQVRFRF9QUk9QICh0eXBlKSkKLSsgICAgcmV0dXJuIDE7Ci0rCi0rICAv KiBTY2FuIGZpZWxkIHR5cGVzIGluIHRoZSBGb3J0cmFuIGNhc2UgZm9yIG5lc3RlZCBkeW5hbWlj IHR5cGVzLgotKyAgICAgVGhpcyB3aWxsIGJlIGRvbmUgb25seSBmb3IgRm9ydHJhbiBhcyBpbiB0 aGUgQysrIGNhc2UgYW4gZW5kbGVzcyByZWN1cnNpb24KLSsgICAgIGNhbiBvY2N1ciBpbiB0aGUg YXJlYSBvZiBjbGFzc2VzLiAgKi8KLSsgIGlmIChjdXJyZW50X2xhbmd1YWdlLT5sYV9sYW5ndWFn ZSA9PSBsYW5ndWFnZV9mb3J0cmFuKQotKyAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBUWVBF X05GSUVMRFMgKHR5cGUpOyBpbmRleCsrKQotKyAgICAgIGlmIChpc19keW5hbWljX3R5cGUgKFRZ UEVfRklFTERfVFlQRSAodHlwZSwgaW5kZXgpKSkKLSsgICAgICAgIHJldHVybiAxOwotKwotICAg LyogVHlwZXMgdGhhdCBoYXZlIGEgZHluYW1pYyBUWVBFX0RBVEFfTE9DQVRJT04gYXJlIGNvbnNp ZGVyZWQKLSAgICAgIGR5bmFtaWMsIGV2ZW4gaWYgdGhlIHR5cGUgaXRzZWxmIGlzIHN0YXRpY2Fs bHkgZGVmaW5lZC4KLSAgICAgIEZyb20gYSB1c2VyJ3MgcG9pbnQgb2YgdmlldywgdGhpcyBtYXkg YXBwZWFyIGNvdW50ZXItaW50dWl0aXZlOwotQEAgLTE4NDQsMTEgKzE4NzQsMTkgQEAKLSAgICAg ICB7Ci0gCWdkYl9hc3NlcnQgKFRZUEVfTkZJRUxEUyAodHlwZSkgPT0gMSk7Ci0gCi0tCS8qIFRo ZSBhcnJheSBpcyBkeW5hbWljIGlmIGVpdGhlciB0aGUgYm91bmRzIGFyZSBkeW5hbWljLAotLQkg ICBvciB0aGUgZWxlbWVudHMgaXQgY29udGFpbnMgaGF2ZSBhIGR5bmFtaWMgY29udGVudHMuICAq LwotKwkvKiBUaGUgYXJyYXkgaXMgZHluYW1pYyBpZiBlaXRoZXIKLSsgICAgIC0gdGhlIGJvdW5k cyBhcmUgZHluYW1pYywKLSsJICAgLSB0aGUgZWxlbWVudHMgaXQgY29udGFpbnMgaGF2ZSBhIGR5 bmFtaWMgY29udGVudHMKLSsgICAgIC0gYSBkYXRhX2xvY2F0b24gYXR0cmlidXRlIHdhcyBmb3Vu ZC4gICovCi0gCWlmIChpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKFRZUEVfSU5ERVhfVFlQRSAo dHlwZSksIDApKQotIAkgIHJldHVybiAxOwotLQlyZXR1cm4gaXNfZHluYW1pY190eXBlX2ludGVy bmFsIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgMCk7Ci0rCWVsc2UgaWYgKFRZUEVfREFUQV9M T0NBVElPTiAodHlwZSkgIT0gTlVMTAotKwkgICAgICAgICAmJiAoVFlQRV9EQVRBX0xPQ0FUSU9O X0tJTkQgKHR5cGUpID09IFBST1BfTE9DRVhQUgotKwkgICAgICAgICAgICAgfHwgVFlQRV9EQVRB X0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfTE9DTElTVCkpCi0rICAgIHJldHVybiAxOwot KyAgZWxzZQotKyAgICByZXR1cm4gaXNfZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX1RBUkdF VF9UWVBFICh0eXBlKSwgMCk7Ci0rCWJyZWFrOwotICAgICAgIH0KLSAKLSAgICAgY2FzZSBUWVBF X0NPREVfU1RSVUNUOgotQEAgLTE4NjEsNiArMTg5OSwxOCBAQAotIAkgICAgICAmJiBpc19keW5h bWljX3R5cGVfaW50ZXJuYWwgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSksIDApKQotIAkgICAg cmV0dXJuIDE7Ci0gICAgICAgfQotKyAgICBjYXNlIFRZUEVfQ09ERV9QVFI6Ci0rICAgICAgewot KyAgICAgICAgaWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpCi0rICAgICAgICAgICAgJiYgKFRZ UEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpID09IFRZUEVfQ09ERV9TVFJJTkcKLSsg ICAgICAgICAgICAgICAgfHwgVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPT0g VFlQRV9DT0RFX0FSUkFZKSkKLSsgICAgICAgICAgcmV0dXJuIGlzX2R5bmFtaWNfdHlwZSAoY2hl Y2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKTsKLSsKLSsgICAgICAgIHJldHVy biAwOwotKyAgICAgICAgYnJlYWs7Ci0rICAgICAgfQotKyAgICBkZWZhdWx0OgotKyAgICAgIHJl dHVybiAwOwotICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi1AQCAtMTg5MCw3ICsxOTQwLDggQEAK LSAgIHN0cnVjdCB0eXBlICpzdGF0aWNfcmFuZ2VfdHlwZSwgKnN0YXRpY190YXJnZXRfdHlwZTsK LSAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3A7Ci0gICBjb25zdCBzdHJ1Y3QgZHdh cmYyX2xvY2V4cHJfYmF0b24gKmJhdG9uOwotLSAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQ7Ci0rICBzdHJ1Y3QgZHluYW1pY19wcm9wIGxvd19ib3VuZCwgaGlnaF9i b3VuZCwgc3RyaWRlOwotKyAgc3RydWN0IHR5cGUgKnJhbmdlX2NvcHkgPSBjb3B5X3R5cGUgKGR5 bl9yYW5nZV90eXBlKTsKLSAKLSAgIGdkYl9hc3NlcnQgKFRZUEVfQ09ERSAoZHluX3JhbmdlX3R5 cGUpID09IFRZUEVfQ09ERV9SQU5HRSk7Ci0gCi1AQCAtMTkyMiwxMiArMTk3MywxOSBAQAotICAg ICAgIGhpZ2hfYm91bmQuZGF0YS5jb25zdF92YWwgPSAwOwotICAgICB9Ci0gCi0rICBwcm9wID0g JlRZUEVfUkFOR0VfREFUQSAoZHluX3JhbmdlX3R5cGUpLT5zdHJpZGU7Ci0rICBpZiAoZHdhcmYy X2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBOVUxMLCBhZGRyX3N0YWNrLCAmdmFsdWUpKQotKyAg ICB7Ci0rICAgICAgc3RyaWRlLmtpbmQgPSBQUk9QX0NPTlNUOwotKyAgICAgIHN0cmlkZS5kYXRh LmNvbnN0X3ZhbCA9IHZhbHVlOwotKyAgICB9Ci0rCi0gICBzdGF0aWNfdGFyZ2V0X3R5cGUKLS0g ICAgPSByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoVFlQRV9UQVJHRVRfVFlQRSAoZHlu X3JhbmdlX3R5cGUpLAotKyAgICA9IHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChUWVBF X1RBUkdFVF9UWVBFIChyYW5nZV9jb3B5KSwKLSAJCQkJICAgICBhZGRyX3N0YWNrLCAwKTsKLS0g IHN0YXRpY19yYW5nZV90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKGNvcHlfdHlwZSAoZHluX3Jh bmdlX3R5cGUpLAotKyAgc3RhdGljX3JhbmdlX3R5cGUgPSBjcmVhdGVfcmFuZ2VfdHlwZSAocmFu Z2VfY29weSwKLSAJCQkJCSBzdGF0aWNfdGFyZ2V0X3R5cGUsCi0tCQkJCQkgJmxvd19ib3VuZCwg JmhpZ2hfYm91bmQpOwotKwkJCQkJICZsb3dfYm91bmQsICZoaWdoX2JvdW5kLCAmc3RyaWRlKTsK LSAgIFRZUEVfUkFOR0VfREFUQSAoc3RhdGljX3JhbmdlX3R5cGUpLT5mbGFnX2JvdW5kX2V2YWx1 YXRlZCA9IDE7Ci0gICByZXR1cm4gc3RhdGljX3JhbmdlX3R5cGU7Ci0gfQotQEAgLTE5NDYsNyAr MjAwNCw4IEBACi0gICBzdHJ1Y3QgdHlwZSAqYXJ5X2RpbTsKLSAgIHN0cnVjdCBkeW5hbWljX3By b3AgKnByb3A7Ci0gCi0tICBnZGJfYXNzZXJ0IChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09E RV9BUlJBWSk7Ci0rICBnZGJfYXNzZXJ0IChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9B UlJBWQotKwkgICAgICB8fCBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9TVFJJTkcpOwot IAotICAgdHlwZSA9IGNvcHlfdHlwZSAodHlwZSk7Ci0gCi1AQCAtMTk3MSwxMyArMjAzMCwxOCBA QAotIAotICAgYXJ5X2RpbSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGVsdF90 eXBlKSk7Ci0gCi0tICBpZiAoYXJ5X2RpbSAhPSBOVUxMICYmIFRZUEVfQ09ERSAoYXJ5X2RpbSkg PT0gVFlQRV9DT0RFX0FSUkFZKQotKyAgaWYgKGFyeV9kaW0gIT0gTlVMTCAmJiAoVFlQRV9DT0RF IChhcnlfZGltKSA9PSBUWVBFX0NPREVfQVJSQVkKLSsJCQkgIHx8IFRZUEVfQ09ERSAoYXJ5X2Rp bSkgPT0gVFlQRV9DT0RFX1NUUklORykpCi0gICAgIGVsdF90eXBlID0gcmVzb2x2ZV9keW5hbWlj X2FycmF5IChhcnlfZGltLCBhZGRyX3N0YWNrKTsKLSAgIGVsc2UKLSAgICAgZWx0X3R5cGUgPSBU WVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKLSAKLS0gIHJldHVybiBjcmVhdGVfYXJyYXlfdHlwZV93 aXRoX3N0cmlkZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5cGUsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCkpOwot KyAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUklORwotKyAgICAgICYmIFRZ UEVfRklFTERfQklUU0laRSAodHlwZSwgMCkgPT0gMCkKLSsgICAgcmV0dXJuIGNyZWF0ZV9zdHJp bmdfdHlwZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5cGUpOwotKyAgZWxzZQotKyAgICByZXR1 cm4gY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUgKHR5cGUsIGVsdF90eXBlLCByYW5nZV90 eXBlLAotKwkJCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIDApKTsKLSB9Ci0gCi0gLyog UmVzb2x2ZSBkeW5hbWljIGJvdW5kcyBvZiBtZW1iZXJzIG9mIHRoZSB1bmlvbiBUWVBFIHRvIHN0 YXRpYwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJ0eXBlcy5oCi09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZ2RidHlwZXMuaAkyMDE2LTAx LTA4IDE5OjE1OjM1LjA4NTU4MjQ3MSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9nZGJ0eXBlcy5oCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgzNjM3NjgwICswMTAwCi1AQCAtNTc3 LDYgKzU3NywxMCBAQAotIAotICAgc3RydWN0IGR5bmFtaWNfcHJvcCBoaWdoOwotIAotKyAgLyog KiBTdHJpZGUgb2YgcmFuZ2UuICAqLwotKwotKyAgc3RydWN0IGR5bmFtaWNfcHJvcCBzdHJpZGU7 Ci0rCi0gICAvKiBUcnVlIGlmIEhJR0ggcmFuZ2UgYm91bmQgY29udGFpbnMgdGhlIG51bWJlciBv ZiBlbGVtZW50cyBpbiB0aGUKLSAgICAgIHN1YnJhbmdlLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBm aW5hbCBoaWdodCBib3VuZCBpcyBjb21wdXRlZC4gICovCi0gCi1AQCAtNzQ5LDYgKzc1MywxOCBA QAotIAotICAgLyogKiBDb250YWlucyBhbGwgZHluYW1pYyB0eXBlIHByb3BlcnRpZXMuICAqLwot ICAgc3RydWN0IGR5bmFtaWNfcHJvcF9saXN0ICpkeW5fcHJvcF9saXN0OwotKwotKyAgLyogU3Ry dWN0dXJlIGZvciBEV19BVF9hbGxvY2F0ZWQuCi0rICAgICBUaGUgcHJlc2VuY2Ugb2YgdGhpcyBh dHRyaWJ1dGUgaW5kaWNhdGVzIHRoYXQgdGhlIG9iamVjdCBvZiB0aGUgdHlwZQotKyAgICAgY2Fu IGJlIGFsbG9jYXRlZC9kZWFsbG9jYXRlZC4gIFRoZSB2YWx1ZSBjYW4gYmUgYSBkd2FyZiBleHBy ZXNzaW9uLAotKyAgICAgcmVmZXJlbmNlLCBvciBhIGNvbnN0YW50LiAgKi8KLSsgIHN0cnVjdCBk eW5hbWljX3Byb3AgKmFsbG9jYXRlZDsKLSsKLSsgIC8qIFN0cnVjdHVyZSBmb3IgRFdfQVRfYXNz b2NpYXRlZC4KLSsgICAgIFRoZSBwcmVzZW5jZSBvZiB0aGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZWQg dGhhdCB0aGUgb2JqZWN0IG9mIHRoZSB0eXBlCi0rICAgICBjYW4gYmUgYXNzb2NpYXRlZC4gIFRo ZSB2YWx1ZSBjYW4gYmUgYSBkd2FyZiBleHByZXNzaW9uLAotKyAgICAgcmVmZXJlbmNlLCBvciBh IGNvbnN0YW50LiAgKi8KLSsgIHN0cnVjdCBkeW5hbWljX3Byb3AgKmFzc29jaWF0ZWQ7Ci0gfTsK LSAKLSAvKiAqIEEgYGBzdHJ1Y3QgdHlwZScnIGRlc2NyaWJlcyBhIHBhcnRpY3VsYXIgaW5zdGFu Y2Ugb2YgYSB0eXBlLCB3aXRoCi1AQCAtMTI1NSw2ICsxMjcxLDE1IEBACi0gICBUWVBFX1JBTkdF X0RBVEEocmFuZ2VfdHlwZSktPmhpZ2gua2luZAotICNkZWZpbmUgVFlQRV9MT1dfQk9VTkRfS0lO RChyYW5nZV90eXBlKSBcCi0gICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPmxvdy5raW5k Ci0rI2RlZmluZSBUWVBFX0JZVEVfU1RSSURFKHJhbmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFOR0Vf REFUQShyYW5nZV90eXBlKS0+c3RyaWRlLmRhdGEuY29uc3RfdmFsCi0rI2RlZmluZSBUWVBFX0JZ VEVfU1RSSURFX0JMT0NLKHJhbmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90 eXBlKS0+c3RyaWRlLmRhdGEubG9jZXhwcgotKyNkZWZpbmUgVFlQRV9CWVRFX1NUUklERV9MT0NM SVNUKHJhbmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+c3RyaWRl LmRhdGEubG9jbGlzdAotKyNkZWZpbmUgVFlQRV9CWVRFX1NUUklERV9LSU5EKHJhbmdlX3R5cGUp IFwKLSsgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+c3RyaWRlLmtpbmQKLSsKLSAKLSAv KiBQcm9wZXJ0eSBhY2Nlc3NvcnMgZm9yIHRoZSB0eXBlIGRhdGEgbG9jYXRpb24uICAqLwotICNk ZWZpbmUgVFlQRV9EQVRBX0xPQ0FUSU9OKHRoaXN0eXBlKSBcCi1AQCAtMTI2Niw2ICsxMjkxLDE4 IEBACi0gI2RlZmluZSBUWVBFX0RBVEFfTE9DQVRJT05fS0lORCh0aGlzdHlwZSkgXAotICAgVFlQ RV9EQVRBX0xPQ0FUSU9OICh0aGlzdHlwZSktPmtpbmQKLSAKLSsvKiBBbGxvY2F0ZWQgc3RhdHVz IG9mIHR5cGUgb2JqZWN0LiAgSWYgc2V0IHRvIG5vbi16ZXJvIGl0IG1lYW5zIHRoZSBvYmplY3QK LSsgICBpcyBhbGxvY2F0ZWQuIEEgemVybyB2YWx1ZSBtZWFucyBpdCBpcyBub3QgYWxsb2NhdGVk LiAgKi8KLSsjZGVmaW5lIFRZUEVfTk9UX0FMTE9DQVRFRCh0KSAgKFRZUEVfQUxMT0NBVEVEX1BS T1AgKHQpIFwKLSsgICYmIFRZUEVfQUxMT0NBVEVEX1BST1AgKHQpLT5raW5kID09IFBST1BfQ09O U1QgXAotKyAgJiYgIVRZUEVfQUxMT0NBVEVEX1BST1AgKHQpLT5kYXRhLmNvbnN0X3ZhbCkKLSsK LSsvKiBBc3NvY2lhdGVkIHN0YXR1cyBvZiB0eXBlIG9iamVjdC4gIElmIHNldCB0byBub24temVy byBpdCBtZWFucyB0aGUgb2JqZWN0Ci0rICAgaXMgYXNzb2NpYXRlZC4gQSB6ZXJvIHZhbHVlIG1l YW5zIGl0IGlzIG5vdCBhc3NvY2lhdGVkLiAgKi8KLSsjZGVmaW5lIFRZUEVfTk9UX0FTU09DSUFU RUQodCkgIChUWVBFX0FTU09DSUFURURfUFJPUCAodCkgXAotKyAgJiYgVFlQRV9BU1NPQ0lBVEVE X1BST1AgKHQpLT5raW5kID09IFBST1BfQ09OU1QgXAotKyAgJiYgIVRZUEVfQVNTT0NJQVRFRF9Q Uk9QICh0KS0+ZGF0YS5jb25zdF92YWwpCi0rCi0gLyogUHJvcGVydHkgYWNjZXNzb3JzIGZvciB0 aGUgdHlwZSBhbGxvY2F0ZWQvYXNzb2NpYXRlZC4gICovCi0gI2RlZmluZSBUWVBFX0FMTE9DQVRF RF9QUk9QKHRoaXN0eXBlKSBcCi0gICBnZXRfZHluX3Byb3AgKERZTl9QUk9QX0FMTE9DQVRFRCwg dGhpc3R5cGUpCi1AQCAtMTI4OSw2ICsxMzI2LDkgQEAKLSAgICBUWVBFX0hJR0hfQk9VTkRfVU5E RUZJTkVEKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5cGUpKQotICNkZWZpbmUgVFlQRV9BUlJBWV9M T1dFUl9CT1VORF9JU19VTkRFRklORUQoYXJyYXl0eXBlKSBcCi0gICAgVFlQRV9MT1dfQk9VTkRf VU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5cGUpKQotKyNkZWZpbmUgVFlQRV9BUlJB WV9TVFJJREVfSVNfVU5ERUZJTkVEKGFycmF5dHlwZSkgXAotKyAgIChUWVBFX0JZVEVfU1RSSURF KFRZUEVfSU5ERVhfVFlQRShhcnJheXR5cGUpKSA9PSAwKQotKwotIAotICNkZWZpbmUgVFlQRV9B UlJBWV9VUFBFUl9CT1VORF9WQUxVRShhcnJheXR5cGUpIFwKLSAgICAoVFlQRV9ISUdIX0JPVU5E KFRZUEVfSU5ERVhfVFlQRSgoYXJyYXl0eXBlKSkpKQotQEAgLTE3NzUsNiArMTgxNSw3IEBACi0g Ci0gZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwg c3RydWN0IHR5cGUgKiwKLSAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKiwK LSsJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKiwKLSAJCQkJICAgICAgIGNv bnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKik7Ci0gCi0gZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVh dGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLWZ1bmMuZXhwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgzNjM3NjgwICswMTAwCi1AQCAtMCww ICsxLDYxIEBACi0rIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZp bGUgIi5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAg JHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsg ICAgcmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVy cm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0r fQotKwotKyMgQ2hlY2sgVkxBIHBhc3NlZCB0byBmaXJzdCBGb3J0cmFuIGZ1bmN0aW9uLgotK2dk Yl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMS12bGEtcGFzc2VkIl0KLStn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzEtdmxhLXBhc3NlZCIKLStnZGJfdGVzdCAi cHJpbnQgdmxhIiAiID0gXFwoICpcXCggKjIyLCAqMjIsICoyMixcWygpMjIsIC5cXSpcXCkiIFwK LSsgICJwcmludCB2bGEgKGZ1bmMxKSIKLStnZGJfdGVzdCAicHR5cGUgdmxhIiAidHlwZSA9IGlu dGVnZXJcXFwoa2luZD00XFxcKSBcXFwoMTAsMTBcXFwpIiBcCi0rICAicHR5cGUgdmxhIChmdW5j MSkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImZ1bmMxLXZsYS1t b2RpZmllZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMxLXZsYS1tb2RpZmll ZCIKLStnZGJfdGVzdCAicHJpbnQgdmxhKDUsNSkiICIgPSA1NSIgInByaW50IHZsYSg1LDUpIChm dW5jMSkiCi0rZ2RiX3Rlc3QgInByaW50IHZsYSg3LDcpIiAiID0gNzciICJwcmludCB2bGEoNSw1 KSAoZnVuYzEpIgotKwotKyMgQ2hlY2sgaWYgdGhlIHZhbHVlcyBhcmUgY29ycmVjdCBhZnRlciBy ZXR1cm5pbmcgZnJvbSBmdW5jMQotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVy ICJmdW5jMS1yZXR1cm5lZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMxLXJl dHVybmVkIgotK2dkYl90ZXN0ICJwcmludCByZXQiICIgPSAuVFJVRS4iICJwcmludCByZXQgYWZ0 ZXIgZnVuYzEgcmV0dXJuZWQiCi0rCi0rIyBDaGVjayBWTEEgcGFzc2VkIHRvIHNlY29uZCBGb3J0 cmFuIGZ1bmN0aW9uCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImZ1bmMy LXZsYS1wYXNzZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5jMi12bGEtcGFz c2VkIgotK2dkYl90ZXN0ICJwcmludCB2bGEiIFwKLSsgICIgPSBcXFwoNDQsIDQ0LCA0NCwgNDQs IDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDRcXFwpIiBcCi0rICAicHJpbnQgdmxhIChmdW5jMikiCi0r Z2RiX3Rlc3QgInB0eXBlIHZsYSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDEw XFxcKSIgXAotKyAgInB0eXBlIHZsYSAoZnVuYzIpIgotKwotKyMgQ2hlY2sgaWYgdGhlIHJldHVy bmVkIFZMQSBoYXMgdGhlIGNvcnJlY3QgdmFsdWVzIGFuZCBwdHlwZS4KLStnZGJfYnJlYWtwb2lu dCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzItcmV0dXJuZWQiXQotK2dkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJmdW5jMi1yZXR1cm5lZCIKLStnZGJfdGVzdCAicHJpbnQgdmxhMyIgIiA9 IFxcXCgxLCAyLCA0NCwgNCwgNDQsIDQ0LCA0NCwgOCwgNDQsIDQ0XFxcKSIgXAotKyAgInByaW50 IHZsYTMgKGFmdGVyIGZ1bmMyKSIKLStnZGJfdGVzdCAicHR5cGUgdmxhMyIgInR5cGUgPSBpbnRl Z2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDEwXFxcKSIgXAotKyAgInB0eXBlIHZsYTMgKGFmdGVyIGZ1 bmMyKSIKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1mdW5jLmY5MAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgzNjM3 NjgwICswMTAwCi1AQCAtMCwwICsxLDcxIEBACi0rISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyEgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK LSshIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhl IExpY2Vuc2UsIG9yCi0rISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyEK LSshIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAotKyEgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKLSshIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIQotKyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSshIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rISBGb3VuZGF0 aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEt MTMwNywgVVNBLgotKwotK2xvZ2ljYWwgZnVuY3Rpb24gZnVuYzEgKHZsYSkKLSsgIGltcGxpY2l0 IG5vbmUKLSsgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZsYSAoOiwgOikKLSsgIGZ1bmMxID0g YWxsb2NhdGVkKHZsYSkKLSsgIHZsYSg1LDUpID0gNTUgICAgICAgICAgICAgICAhIGZ1bmMxLXZs YS1wYXNzZWQKLSsgIHZsYSg3LDcpID0gNzcKLSsgIHJldHVybiAgICAgICAgICAgICAgICAgICAg ICAhIGZ1bmMxLXZsYS1tb2RpZmllZAotK2VuZCBmdW5jdGlvbiBmdW5jMQotKwotK2Z1bmN0aW9u IGZ1bmMyKHZsYSkKLSsgIGltcGxpY2l0IG5vbmUKLSsgIGludGVnZXIgOjogdmxhICg6KQotKyAg aW50ZWdlciA6OiBmdW5jMihzaXplKHZsYSkpCi0rICBpbnRlZ2VyIDo6IGsKLSsKLSsgIHZsYSgx KSA9IDEgICAgICAgICAgICAgICAgICAgICEgZnVuYzItdmxhLXBhc3NlZAotKyAgdmxhKDIpID0g MgotKyAgdmxhKDQpID0gNAotKyAgdmxhKDgpID0gOAotKwotKyAgZnVuYzIgPSB2bGEKLStlbmQg ZnVuY3Rpb24gZnVuYzIKLSsKLStwcm9ncmFtIHZsYV9mdW5jCi0rICBpbXBsaWNpdCBub25lCi0r ICBpbnRlcmZhY2UKLSsgICAgbG9naWNhbCBmdW5jdGlvbiBmdW5jMSAodmxhKQotKyAgICAgIGlu dGVnZXIgOjogdmxhICg6LCA6KQotKyAgICBlbmQgZnVuY3Rpb24KLSsgIGVuZCBpbnRlcmZhY2UK LSsgIGludGVyZmFjZQotKyAgICBmdW5jdGlvbiBmdW5jMiAodmxhKQotKyAgICAgIGludGVnZXIg OjogdmxhICg6KQotKyAgICAgIGludGVnZXIgZnVuYzIoc2l6ZSh2bGEpKQotKyAgICBlbmQgZnVu Y3Rpb24KLSsgIGVuZCBpbnRlcmZhY2UKLSsKLSsgIGxvZ2ljYWwgOjogcmV0Ci0rICBpbnRlZ2Vy LCBhbGxvY2F0YWJsZSA6OiB2bGExICg6LCA6KQotKyAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjog dmxhMiAoOikKLSsgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZsYTMgKDopCi0rCi0rICByZXQg PSAuRkFMU0UuCi0rCi0rICBhbGxvY2F0ZSAodmxhMSAoMTAsMTApKQotKyAgdmxhMSg6LDopID0g MjIKLSsKLSsgIGFsbG9jYXRlICh2bGEyICgxMCkpCi0rICB2bGEyKDopID0gNDQKLSsKLSsgIHJl dCA9IGZ1bmMxKHZsYTEpCi0rICB2bGEzID0gZnVuYzIodmxhMikgICAgICAgICAgISBmdW5jMS1y ZXR1cm5lZAotKwotKyAgcmV0ID0gLlRSVUUuICAgICAgICAgICAgICAgICEgZnVuYzItcmV0dXJu ZWQKLStlbmQgcHJvZ3JhbSB2bGFfZnVuYwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCTIw MTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCi1AQCAtMCwwICsxLDQ0IEBACi0rIyBD b3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rCi0r aWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtz cmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0xCi0r fQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBy dW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwotK2dkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJyZS1yZXZlcnNlLWVsZW1lbnRzIl0KLStnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAicmUtcmV2ZXJzZS1lbGVtZW50cyIKLStnZGJfdGVzdCAi cHJpbnQgcHZsYSIgIiA9IFxcXCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMFxcXCkiIFwK LSsgICJwcmludCByZS1yZXZlcnNlLWVsZW1lbnRzIgotK2dkYl90ZXN0ICJwcmludCBwdmxhKDEp IiAiID0gMSIgInByaW50IGZpcnN0IHJlLXJldmVyc2UtZWxlbWVudCIKLStnZGJfdGVzdCAicHJp bnQgcHZsYSgxMCkiICIgPSAxMCIgInByaW50IGxhc3QgcmUtcmV2ZXJzZS1lbGVtZW50IgotKwot K2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJvZGQtZWxlbWVudHMiXQotK2dk Yl9jb250aW51ZV90b19icmVha3BvaW50ICJvZGQtZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50 IHB2bGEiICIgPSBcXFwoMSwgMywgNSwgNywgOVxcXCkiICJwcmludCBvZGQtZWxlbWVudHMiCi0r Z2RiX3Rlc3QgInByaW50IHB2bGEoMSkiICIgPSAxIiAicHJpbnQgZmlyc3Qgb2RkLWVsZW1lbnQi Ci0rZ2RiX3Rlc3QgInByaW50IHB2bGEoNSkiICIgPSA5IiAicHJpbnQgbGFzdCBvZGQtZWxlbWVu dCIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAic2luZ2xlLWVsZW1l bnQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJzaW5nbGUtZWxlbWVudCIKLStnZGJf dGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCg1XFxcKSIgInByaW50IHNpbmdsZS1lbGVtZW50Igot K2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gNSIgInByaW50IG9uZSBzaW5nbGUtZWxlbWVu dCIKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1zdHJpZGUuZjkwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYz NzY4NiArMDEwMAotQEAgLTAsMCArMSwzMCBAQAotKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSshIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 Ci0rISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRo ZSBMaWNlbnNlLCBvcgotKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsh Ci0rISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKLSshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rISBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyEKLSshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rISBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyEgRm91bmRh dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTEx LTEzMDcsIFVTQS4KLSsKLStwcm9ncmFtIHZsYV9zdHJpZGUKLSsgIGludGVnZXIsIHRhcmdldCwg YWxsb2NhdGFibGUgOjogdmxhICg6KQotKyAgaW50ZWdlciwgcG9pbnRlciA6OiBwdmxhICg6KQot KwotKyAgYWxsb2NhdGUodmxhKDEwKSkKLSsgIHZsYSA9ICgvIChJLCBJID0gMSwxMCkgLykKLSsK LSsgIHB2bGEgPT4gdmxhKDEwOjE6LTEpCi0rICBwdmxhID0+IHB2bGEoMTA6MTotMSkKLSsgIHB2 bGEgPT4gdmxhKDE6MTA6MikgICAhIHJlLXJldmVyc2UtZWxlbWVudHMKLSsgIHB2bGEgPT4gdmxh KDU6NDotMikgICAhIG9kZC1lbGVtZW50cwotKwotKyAgcHZsYSA9PiBudWxsKCkgICAgICAgICEg c2luZ2xlLWVsZW1lbnQKLStlbmQgcHJvZ3JhbSB2bGFfc3RyaWRlCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKLT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1zdHJpbmdzLmV4cAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAotQEAgLTAs MCArMSwxMDEgQEAKLSsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStzdGFuZGFyZF90ZXN0 ZmlsZSAiLmY5MCIKLSsKLStpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4 cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKLSsgICAge2RlYnVnIGY5MCBxdWlldH1dIH0gewot KyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rIyBjaGVjayB0aGF0IGFsbCBmb3J0cmFuIHN0YW5kYXJk IGRhdGF0eXBlcyB3aWxsIGJlCi0rIyBoYW5kbGVkIGNvcnJlY3RseSB3aGVuIHVzaW5nIGFzIFZM QSdzCi0rCi0raWYgIVtydW50byBNQUlOX19dIHRoZW4gewotKyAgICBwZXJyb3IgImNvdWxkbid0 IHJ1biB0byBicmVha3BvaW50IE1BSU5fXyIKLSsgICAgY29udGludWUKLSt9Ci0rCi0rZ2RiX2Jy ZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWFsbG9jYXRlZC0xIl0KLStn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItYWxsb2NhdGVkLTEiCi0rZ2RiX3Rl c3QgInByaW50IHZhcl9jaGFyIiBcCi0rICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJc XCoxMCBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVk IGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8g LT4gXFwoIGNoYXJhY3RlclxcKjEwIFxcKSIgXAotKyAgIndoYXRpcyB2YXJfY2hhciBmaXJzdCB0 aW1lIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNo YXJhY3RlclxcKjEwIFxcKSIgXAotKyAgInB0eXBlIHZhcl9jaGFyIGZpcnN0IHRpbWUiCi0rZ2Ri X3Rlc3QgIm5leHQiICJcXGQrLip2YXJfY2hhciA9ICdmb28nLioiIFwKLSsgICJuZXh0IHRvIGFs bG9jYXRpb24gc3RhdHVzIG9mIHZhcl9jaGFyIgotK2dkYl90ZXN0ICJwcmludCBsIiAiID0gLlRS VUUuIiAicHJpbnQgYWxsb2NhdGlvbiBzdGF0dXMgZmlyc3QgdGltZSIKLSsKLStnZGJfYnJlYWtw b2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyX2NoYXItZmlsbGVkLTEiXQotK2dkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hhci1maWxsZWQtMSIKLStnZGJfdGVzdCAicHJpbnQg dmFyX2NoYXIiIFwKLSsgICIgPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpXFwp ICR7aGV4fSIgXAotKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGZpbGxlZCBmaXJzdCB0aW1lIgot K2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIiICIgPSAnZm9vJyIgXAotKyAgInByaW50ICp2YXJf Y2hhciBhZnRlciBmaWxsZWQgZmlyc3QgdGltZSIKLStnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFy IiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXCkiIFwKLSsgICJ3aGF0aXMg dmFyX2NoYXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcl9j aGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXCkiIFwKLSsgICJwdHlw ZSB2YXJfY2hhciBhZnRlciBmaWxsZWQgZmlyc3QgdGltZSIKLStnZGJfdGVzdCAicHJpbnQgdmFy X2NoYXIoMSkiICIgPSAxMDIgJ2YnIiAicHJpbnQgdmFyX2NoYXIoMSkiCi0rZ2RiX3Rlc3QgInBy aW50IHZhcl9jaGFyKDMpIiAiID0gMTExICdvJyIgInByaW50IHZhcl9jaGFyKDMpIgotKwotK2dk Yl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1maWxsZWQtMiJdCi0r Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWZpbGxlZC0yIgotK2dkYl90ZXN0 ICJwcmludCB2YXJfY2hhciIgXAotKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwq NiBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHNl Y29uZCB0aW1lIgotK2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIiICIgPSAnZm9vYmFyJyIgXAot KyAgInByaW50ICp2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgc2Vjb25kIHRpbWUiCi0rZ2RiX3Rl c3QgIndoYXRpcyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYg XFwpIiBcCi0rICAid2hhdGlzIHZhcl9jaGFyIHNlY29uZCB0aW1lIgotK2dkYl90ZXN0ICJwdHlw ZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwpIiBcCi0r ICAicHR5cGUgdmFyX2NoYXIgc2Vjb25kIHRpbWUiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9n ZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWVtcHR5Il0KLStnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAidmFyX2NoYXItZW1wdHkiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyIiBcCi0rICAi ID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCowIFxcKVxcKSAke2hleH0iIFwKLSsgICJw cmludCB2YXJfY2hhciBhZnRlciBzZXQgZW1wdHkiCi0rZ2RiX3Rlc3QgInByaW50ICp2YXJfY2hh ciIgIiA9IFwiXCIiICJwcmludCAqdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgotK2dkYl90ZXN0 ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCowIFxc KSIgXAotKyAgIndoYXRpcyB2YXJfY2hhciBhZnRlciBzZXQgZW1wdHkiCi0rZ2RiX3Rlc3QgInB0 eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMCBcXCkiIFwK LSsgICJwdHlwZSB2YXJfY2hhciBhZnRlciBzZXQgZW1wdHkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWFsbG9jYXRlZC0zIl0KLStnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItYWxsb2NhdGVkLTMiCi0rZ2RiX3Rlc3QgInByaW50 IHZhcl9jaGFyIiBcCi0rICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoyMSBcXClc XCkgJHtoZXh9IiBcCi0rICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHRoaXJkIHRp bWUiCi0rZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNo YXJhY3RlclxcKjIxIFxcKSIgXAotKyAgIndoYXRpcyB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQg dGhpcmQgdGltZSIKLStnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+ IFxcKCBjaGFyYWN0ZXJcXCoyMSBcXCkiIFwKLSsgICJwdHlwZSB2YXJfY2hhciBhZnRlciBhbGxv Y2F0ZWQgdGhpcmQgdGltZSIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAidmFyX2NoYXJfcC1hc3NvY2lhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi dmFyX2NoYXJfcC1hc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhcl9wIiBcCi0r ICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKVxcKSAke2hleH0iIFwKLSsg ICJwcmludCB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0ZWQiCi0rZ2RiX3Rlc3QgInByaW50ICp2 YXJfY2hhcl9wIiAiID0gJ2pvaG5kb2UnIiBcCi0rICAicHJpbnQgKnZhcl9jaGFyXyBhZnRlciBh c3NvY2lhdGVkIgotK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXJfcCIgInR5cGUgPSBQVFIgVE8g LT4gXFwoIGNoYXJhY3RlclxcKjcgXFwpIiBcCi0rICAid2hhdGlzIHZhcl9jaGFyX3AgYWZ0ZXIg YXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXJfcCIgInR5cGUgPSBQVFIgVE8g LT4gXFwoIGNoYXJhY3RlclxcKjcgXFwpIiBcCi0rICAicHR5cGUgdmFyX2NoYXJfcCBhZnRlciBh c3NvY2lhdGVkIgotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAJMjAxNi0wMS0wOCAxOTox NTo0NC45ODQ2Mzc2ODYgKzAxMDAKLUBAIC0wLDAgKzEsNDAgQEAKLSshIENvcHlyaWdodCAyMDE0 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rISBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQotKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyEgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSshCi0rISBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyEgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK LSshIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9u LCBNQSAwMjExMS0xMzA3LCBVU0EuCi0rCi0rcHJvZ3JhbSB2bGFfc3RyaW5ncwotKyAgY2hhcmFj dGVyKGxlbj06KSwgdGFyZ2V0LCBhbGxvY2F0YWJsZSAgIDo6IHZhcl9jaGFyCi0rICBjaGFyYWN0 ZXIobGVuPTopLCBwb2ludGVyICAgICAgICAgICAgICAgOjogdmFyX2NoYXJfcAotKyAgbG9naWNh bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6IGwKLSsKLSsgIGFsbG9jYXRlKGNo YXJhY3RlcihsZW49MTApIDo6IHZhcl9jaGFyKQotKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikg ICAgICAgICAgICAgICAgICEgdmFyX2NoYXItYWxsb2NhdGVkLTEKLSsgIHZhcl9jaGFyID0gJ2Zv bycKLSsgIGRlYWxsb2NhdGUodmFyX2NoYXIpICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFy LWZpbGxlZC0xCi0rICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgISB2 YXJfY2hhci1kZWFsbG9jYXRlZAotKyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxlbj00MikgOjogdmFy X2NoYXIpCi0rICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKQotKyAgdmFyX2NoYXIgPSAnZm9vYmFy JwotKyAgdmFyX2NoYXIgPSAnJyAgICAgICAgICAgICAgICAgICAgICAgICAgICEgdmFyX2NoYXIt ZmlsbGVkLTIKLSsgIHZhcl9jaGFyID0gJ2JhcicgICAgICAgICAgICAgICAgICAgICAgICAhIHZh cl9jaGFyLWVtcHR5Ci0rICBkZWFsbG9jYXRlKHZhcl9jaGFyKQotKyAgYWxsb2NhdGUoY2hhcmFj dGVyKGxlbj0yMSkgOjogdmFyX2NoYXIpCi0rICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKSAgICAg ICAgICAgICAgICAgISB2YXJfY2hhci1hbGxvY2F0ZWQtMwotKyAgdmFyX2NoYXIgPSAnam9obmRv ZScKLSsgIHZhcl9jaGFyX3AgPT4gdmFyX2NoYXIKLSsgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFy X3ApICAgICAgICAgICAgICAhIHZhcl9jaGFyX3AtYXNzb2NpYXRlZAotKyAgdmFyX2NoYXJfcCA9 PiBudWxsKCkKLSsgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3ApICAgICAgICAgICAgICAhIHZh cl9jaGFyX3Atbm90LWFzc29jaWF0ZWQKLStlbmQgcHJvZ3JhbSB2bGFfc3RyaW5ncwotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90eXBlcHJpbnQuYwotPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6 MzUuMDg2NTgyNDc2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3R5cGVwcmlu dC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCi1AQCAtNDYwLDYgKzQ2MCwx MyBAQAotIAotICAgdHlwZSA9IHZhbHVlX3R5cGUgKHZhbCk7Ci0gCi0rICBpZiAoVFlQRV9DT0RF ICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSKQotKyAgICBpZiAoaXNfZHluYW1pY190eXBlIChUWVBF X1RBUkdFVF9UWVBFICh0eXBlKSkpCi0rICAgICAgewotKwl2YWwgPSB2YWx1ZV9hZGRyICh2YWx1 ZV9pbmQgKHZhbCkpOwotKwl0eXBlID0gdmFsdWVfdHlwZSAodmFsKTsKLSsgICAgICB9Ci0rCi0g ICBnZXRfdXNlcl9wcmludF9vcHRpb25zICgmb3B0cyk7Ci0gICBpZiAob3B0cy5vYmplY3Rwcmlu dCkKLSAgICAgewotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxhcml0aC5jCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdmFsYXJpdGguYwky MDE2LTAxLTA4IDE5OjE1OjM1LjA4NzU4MjQ4MiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi92YWxhcml0aC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg1NjM3NjkxICswMTAwCi1A QCAtMTkzLDkgKzE5MywyMSBAQAotICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190 eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwotICAgc3RydWN0IHR5cGUgKmVsdF90eXBlID0g Y2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotICAgdW5zaWdu ZWQgaW50IGVsdF9zaXplID0gdHlwZV9sZW5ndGhfdW5pdHMgKGVsdF90eXBlKTsKLS0gIHVuc2ln bmVkIGludCBlbHRfb2ZmcyA9IGVsdF9zaXplICogbG9uZ2VzdF90b19pbnQgKGluZGV4IC0gbG93 ZXJib3VuZCk7Ci0rICB1bnNpZ25lZCBpbnQgZWx0X29mZnMgPSBsb25nZXN0X3RvX2ludCAoaW5k ZXggLSBsb3dlcmJvdW5kKTsKLSsgIExPTkdFU1QgZWx0X3N0cmlkZSA9IFRZUEVfQllURV9TVFJJ REUgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwotICAgc3RydWN0IHZhbHVlICp2Owot IAotKyAgaWYgKGVsdF9zdHJpZGUgPiAwKQotKyAgICBlbHRfb2ZmcyAqPSBlbHRfc3RyaWRlOwot KyAgZWxzZSBpZiAoZWx0X3N0cmlkZSA8IDApCi0rICAgIHsKLSsgICAgICBpbnQgb2ZmcyA9IChl bHRfb2ZmcyArIDEpICogZWx0X3N0cmlkZTsKLSsKLSsgICAgICBlbHRfb2ZmcyA9IFRZUEVfTEVO R1RIIChhcnJheV90eXBlKSArIG9mZnM7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgZWx0X29mZnMg Kj0gZWx0X3NpemU7Ci0rCi0gICBpZiAoaW5kZXggPCBsb3dlcmJvdW5kIHx8ICghVFlQRV9BUlJB WV9VUFBFUl9CT1VORF9JU19VTkRFRklORUQgKGFycmF5X3R5cGUpCi0gCQkJICAgICAmJiBlbHRf b2ZmcyA+PSB0eXBlX2xlbmd0aF91bml0cyAoYXJyYXlfdHlwZSkpKQotICAgICB7Ci1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZhbHByaW50LmMKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi92YWxwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6MzUu MDg4NTgyNDg3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZhbHByaW50LmMJ MjAxNi0wMS0wOCAxOToxNTo0NC45ODY2Mzc2OTcgKzAxMDAKLUBAIC0zMTYsNiArMzE2LDE4IEBA Ci0gICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAKLSsgIGlmIChUWVBFX05PVF9BU1NPQ0lBVEVE ICh0eXBlKSkKLSsgICAgewotKyAgICAgIHZhbF9wcmludF9ub3RfYXNzb2NpYXRlZCAoc3RyZWFt KTsKLSsgICAgICByZXR1cm4gMDsKLSsgICAgfQotKwotKyAgaWYgKFRZUEVfTk9UX0FMTE9DQVRF RCAodHlwZSkpCi0rICAgIHsKLSsgICAgICB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RyZWFt KTsKLSsgICAgICByZXR1cm4gMDsKLSsgICAgfQotKwotICAgaWYgKFRZUEVfQ09ERSAodHlwZSkg IT0gVFlQRV9DT0RFX1VOSU9OCi0gICAgICAgJiYgVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NP REVfU1RSVUNUCi0gICAgICAgJiYgVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkp Ci1AQCAtMTAyNSwxMiArMTAzNywxNiBAQAotIHZhbHVlX2NoZWNrX3ByaW50YWJsZSAoc3RydWN0 IHZhbHVlICp2YWwsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQkgICAgICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi0gewotKyAgY29uc3Qgc3RydWN0IHR5 cGUgKnR5cGU7Ci0rCi0gICBpZiAodmFsID09IDApCi0gICAgIHsKLSAgICAgICBmcHJpbnRmX2Zp bHRlcmVkIChzdHJlYW0sIF8oIjxhZGRyZXNzIG9mIHZhbHVlIHVua25vd24+IikpOwotICAgICAg IHJldHVybiAwOwotICAgICB9Ci0gCi0rICB0eXBlID0gdmFsdWVfdHlwZSAodmFsKTsKLSsKLSAg IGlmICh2YWx1ZV9lbnRpcmVseV9vcHRpbWl6ZWRfb3V0ICh2YWwpKQotICAgICB7Ci0gICAgICAg aWYgKG9wdGlvbnMtPnN1bW1hcnkgJiYgIXZhbF9wcmludF9zY2FsYXJfdHlwZV9wICh2YWx1ZV90 eXBlICh2YWwpKSkKLUBAIC0xMDY2LDYgKzEwODIsMTggQEAKLSAgICAgewotICAgICAgIHZhbF9w cmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOwotICAgICAgIHJldHVybiAwOwotKyAgICB9Ci0r Ci0rICBpZiAoVFlQRV9OT1RfQVNTT0NJQVRFRCAodHlwZSkpCi0rICAgIHsKLSsgICAgICB2YWxf cHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cmVhbSk7Ci0rICAgICAgcmV0dXJuIDA7Ci0rICAgIH0K LSsKLSsgIGlmIChUWVBFX05PVF9BTExPQ0FURUQgKHR5cGUpKQotKyAgICB7Ci0rICAgICAgdmFs X3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVhbSk7Ci0rICAgICAgcmV0dXJuIDA7Ci0gICAgIH0K LSAKLSAgIHJldHVybiAxOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxwcmlu dC5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdmFscHJp bnQuaAkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4ODU4MjQ4NyArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi92YWxwcmludC5oCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg2NjM3Njk3ICsw MTAwCi1AQCAtMjMyLDQgKzIzMiw4IEBACi0gCQkJCQlzdHJ1Y3QgZm9ybWF0X2RhdGEgKmZtdHAp OwotIGV4dGVybiB2b2lkIHByaW50X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbCwgY29uc3Qgc3Ry dWN0IGZvcm1hdF9kYXRhICpmbXRwKTsKLSAKLStleHRlcm4gdm9pZCB2YWxfcHJpbnRfbm90X2Fs bG9jYXRlZCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7Ci0rCi0rZXh0ZXJuIHZvaWQgdmFsX3By aW50X25vdF9hc3NvY2lhdGVkIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKLSsKLSAjZW5kaWYK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmFsdWUuYwotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNi0wMS0wOCAxOToxNToz NS4wOTA1ODI0OTkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmFsdWUuYwky MDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NzYzNzcwMiArMDEwMAotQEAgLTQwLDYgKzQwLDcgQEAKLSAj aW5jbHVkZSAidHJhY2Vwb2ludC5oIgotICNpbmNsdWRlICJjcC1hYmkuaCIKLSAjaW5jbHVkZSAi dXNlci1yZWdzLmgiCi0rI2luY2x1ZGUgImR3YXJmMmxvYy5oIgotIAotIC8qIFByb3RvdHlwZXMg Zm9yIGV4cG9ydGVkIGZ1bmN0aW9ucy4gICovCi0gCi1AQCAtMTc4OCw2ICsxNzg5LDI1IEBACi0g ICAgICAgaWYgKGZ1bmNzLT5jb3B5X2Nsb3N1cmUpCi0gICAgICAgICBjb21wb25lbnQtPmxvY2F0 aW9uLmNvbXB1dGVkLmNsb3N1cmUgPSBmdW5jcy0+Y29weV9jbG9zdXJlICh3aG9sZSk7Ci0gICAg IH0KLSsKLSsgIC8qIEZvciBkeW5hbWljIHR5cGVzIGNvbXB1dGUgdGhlIGFkZHJlc3Mgb2YgdGhl IGNvbXBvbmVudCB2YWx1ZSBsb2NhdGlvbiBpbgotKyAgICAgc3ViIHJhbmdlIHR5cGVzIGJhc2Vk IG9uIHRoZSBsb2NhdGlvbiBvZiB0aGUgc3ViIHJhbmdlIHR5cGUsIGlmIG5vdCBiZWluZwotKyAg ICAgYW4gaW50ZXJuYWwgR0RCIHZhcmlhYmxlIG9yIHBhcnRzIG9mIGl0LiAgKi8KLSsgIGlmIChW QUxVRV9MVkFMIChjb21wb25lbnQpICE9IGx2YWxfaW50ZXJuYWx2YXIKLSsgICAgICAmJiBWQUxV RV9MVkFMIChjb21wb25lbnQpICE9IGx2YWxfaW50ZXJuYWx2YXJfY29tcG9uZW50KQotKyAgICB7 Ci0rICAgICAgQ09SRV9BRERSIGFkZHI7Ci0rICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1 ZV90eXBlICh3aG9sZSk7Ci0rCi0rICAgICAgYWRkciA9IHZhbHVlX3Jhd19hZGRyZXNzIChjb21w b25lbnQpOwotKwotKyAgICAgIGlmIChUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCi0rICAgICAg ICAgICYmIFRZUEVfREFUQV9MT0NBVElPTl9LSU5EICh0eXBlKSA9PSBQUk9QX0NPTlNUKQotKyAg ICAgICAgewotKyAgICAgICAgICBhZGRyID0gVFlQRV9EQVRBX0xPQ0FUSU9OX0FERFIgKHR5cGUp OwotKyAgICAgICAgICBzZXRfdmFsdWVfYWRkcmVzcyAoY29tcG9uZW50LCBhZGRyKTsKLSsgICAg ICAgIH0KLSsgICAgfQotIH0KLSAKLSAMCi1AQCAtMzA5NSwxMyArMzExNSwyMiBAQAotIAl2ID0g YWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0gICAgICAgZWxzZQotIAl7Ci0tCSAgdiA9IGFs bG9jYXRlX3ZhbHVlICh0eXBlKTsKLS0JICB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAodiwgdmFs dWVfZW1iZWRkZWRfb2Zmc2V0ICh2KSwKLS0JCQkJICAgYXJnMSwgdmFsdWVfZW1iZWRkZWRfb2Zm c2V0IChhcmcxKSArIG9mZnNldCwKLS0JCQkJICAgdHlwZV9sZW5ndGhfdW5pdHMgKHR5cGUpKTsK LSsJICBpZiAoVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKQotKwkgICAgICAmJiBUWVBFX0RBVEFf TE9DQVRJT05fS0lORCAodHlwZSkgPT0gUFJPUF9DT05TVCkKLSsJICAgIHYgPSB2YWx1ZV9hdF9s YXp5ICh0eXBlLCB2YWx1ZV9hZGRyZXNzIChhcmcxKSArIG9mZnNldCk7Ci0rCSAgZWxzZQotKwkg ICAgewotKwkgICAgICB2ID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwotKwkgICAgICB2YWx1ZV9j b250ZW50c19jb3B5X3JhdyAodiwgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0ICh2KSwKLSsJCQkJICAg ICAgIGFyZzEsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJnMSkgKyBvZmZzZXQsCi0rCQkJCSAg ICAgICB0eXBlX2xlbmd0aF91bml0cyAodHlwZSkpOwotKwkgICAgfQotIAl9Ci0tICAgICAgdi0+ b2Zmc2V0ID0gKHZhbHVlX29mZnNldCAoYXJnMSkgKyBvZmZzZXQKLS0JCSAgICsgdmFsdWVfZW1i ZWRkZWRfb2Zmc2V0IChhcmcxKSk7Ci0rCi0rICAgICAgaWYgKCFUWVBFX0RBVEFfTE9DQVRJT04g KHR5cGUpCi0rICAgICAgICAgIHx8ICFUWVBFX0RBVEFfTE9DQVRJT05fS0lORCAodHlwZSkgPT0g UFJPUF9DT05TVCkKLSsJdi0+b2Zmc2V0ID0gKHZhbHVlX29mZnNldCAoYXJnMSkgKyBvZmZzZXQK LSsJCSAgICAgKyB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGFyZzEpKTsKLSAgICAgfQotICAgc2V0 X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAodiwgYXJnMSk7Ci0gICBWQUxVRV9SRUdOVU0gKHYp ID0gVkFMVUVfUkVHTlVNIChhcmcxKTsKLUBAIC0zNjg5LDcgKzM3MTgsOCBAQAotIAkJCSAgICAg IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUpCi0gewotICAgLyogUmUtYWRqdXN0IHR5cGUu ICAqLwotLSAgZGVwcmVjYXRlZF9zZXRfdmFsdWVfdHlwZSAodmFsdWUsIFRZUEVfVEFSR0VUX1RZ UEUgKG9yaWdpbmFsX3R5cGUpKTsKLSsgIGlmICghaXNfZHluYW1pY190eXBlIChUWVBFX1RBUkdF VF9UWVBFIChvcmlnaW5hbF90eXBlKSkpCi0rICAgIGRlcHJlY2F0ZWRfc2V0X3ZhbHVlX3R5cGUg KHZhbHVlLCBUWVBFX1RBUkdFVF9UWVBFIChvcmlnaW5hbF90eXBlKSk7Ci0gCi0gICAvKiBBZGQg ZW1iZWRkaW5nIGluZm8uICAqLwotICAgc2V0X3ZhbHVlX2VuY2xvc2luZ190eXBlICh2YWx1ZSwg ZW5jX3R5cGUpOwotQEAgLTM3MDYsNiArMzczNiwxMiBAQAotICAgc3RydWN0IHZhbHVlICpyZXR2 YWw7Ci0gICBzdHJ1Y3QgdHlwZSAqZW5jX3R5cGU7Ci0gCi0rICBpZiAoY3VycmVudF9sYW5ndWFn ZS0+bGFfbGFuZ3VhZ2UgIT0gbGFuZ3VhZ2VfZm9ydHJhbgotKyAgICAgICYmIFRZUEVfREFUQV9M T0NBVElPTiAodmFsdWVfdHlwZV9hcmdfdG1wKSAhPSBOVUxMCi0rICAgICAgJiYgVFlQRV9EQVRB X0xPQ0FUSU9OX0tJTkQgKHZhbHVlX3R5cGVfYXJnX3RtcCkgPT0gUFJPUF9DT05TVCkKLSsgICAg YXJnID0gdmFsdWVfYXRfbGF6eSAodmFsdWVfdHlwZV9hcmdfdG1wLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICBUWVBFX0RBVEFfTE9DQVRJT05fQUREUiAodmFsdWVfdHlwZV9hcmdfdG1wKSk7 Ci0rCi0gICByZXR2YWwgPSBjb2VyY2VfcmVmX2lmX2NvbXB1dGVkIChhcmcpOwotICAgaWYgKHJl dHZhbCkKLSAgICAgcmV0dXJuIHJldHZhbDsKLUBAIC0zODM0LDggKzM4NzAsMTQgQEAKLSAgICAg fQotICAgZWxzZSBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9yeSkKLSAgICAgewot LSAgICAgIENPUkVfQUREUiBhZGRyID0gdmFsdWVfYWRkcmVzcyAodmFsKTsKLSAgICAgICBzdHJ1 Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX2VuY2xvc2luZ190eXBlICh2YWwp KTsKLSsgICAgICBDT1JFX0FERFIgYWRkcjsKLSsKLSsgICAgICBpZiAoVFlQRV9EQVRBX0xPQ0FU SU9OICh0eXBlKSAhPSBOVUxMCi0rCSAgJiYgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUp ID09IFBST1BfQ09OU1QpCi0rCWFkZHIgPSBUWVBFX0RBVEFfTE9DQVRJT05fQUREUiAodHlwZSk7 Ci0rICAgICAgZWxzZQotKwlhZGRyID0gdmFsdWVfYWRkcmVzcyAodmFsKTsKLSAKLSAgICAgICBp ZiAoVFlQRV9MRU5HVEggKHR5cGUpKQotIAlyZWFkX3ZhbHVlX21lbW9yeSAodmFsLCAwLCB2YWx1 ZV9zdGFjayAodmFsKSwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYybG9j LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9kd2FyZjJs b2MuYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA5MTU4MjUwNCArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9kd2FyZjJsb2MuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4ODYzNzcwOCAr MDEwMAotQEAgLTIzNjgsNiArMjM2OCwxMSBAQAotIAkgICAgYWRkcmVzcyA9IHZhbHVlX2FzX2Fk ZHJlc3MgKHZhbHVlX2Zyb21fcG9pbnRlciAocHRyX3R5cGUsIGFkZHJlc3MpKTsKLSAKLSAJICAg IGRvX2NsZWFudXBzICh2YWx1ZV9jaGFpbik7Ci0rCi0rCSAgICAvKiBTZWxlY3QgcmlnaHQgZnJh bWUgdG8gY29ycmVjdGx5IGV2YWx1YXRlIFZMQSdzIGR1cmluZyBhIGJhY2t0cmFjZS4gICovCi0r CSAgICBpZiAoaXNfZHluYW1pY190eXBlICh0eXBlKSkKLSsJICAgICAgc2VsZWN0X2ZyYW1lIChm cmFtZSk7Ci0rCi0gCSAgICByZXR2YWwgPSB2YWx1ZV9hdF9sYXp5ICh0eXBlLCBhZGRyZXNzICsg Ynl0ZV9vZmZzZXQpOwotIAkgICAgaWYgKGluX3N0YWNrX21lbW9yeSkKLSAJICAgICAgc2V0X3Zh bHVlX3N0YWNrIChyZXR2YWwsIDEpOwotQEAgLTI2NjAsNiArMjY2NSwxOSBAQAotIAkJCSAgICAg ZGF0YSwgZGF0YSArIHNpemUsIHBlcl9jdSk7Ci0gfQotIAotKy8qIFNlZSBkd2FyZjJsb2MuaC4g ICovCi0rCi0raW50Ci0rZHdhcmYyX2FkZHJlc3NfZGF0YV92YWxpZCAoY29uc3Qgc3RydWN0IHR5 cGUgKnR5cGUpCi0rewotKyAgaWYgKFRZUEVfTk9UX0FTU09DSUFURUQgKHR5cGUpKQotKyAgICBy ZXR1cm4gMDsKLSsKLSsgIGlmIChUWVBFX05PVF9BTExPQ0FURUQgKHR5cGUpKQotKyAgICByZXR1 cm4gMDsKLSsKLSsgIHJldHVybiAxOwotK30KLSAMCi0gLyogSGVscGVyIGZ1bmN0aW9ucyBhbmQg YmF0b24gZm9yIGR3YXJmMl9sb2NfZGVzY19uZWVkc19mcmFtZS4gICovCi0gCgpkaWZmIC0tZ2l0 IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCAxYmI3NzAyLi4xOWQ2YTYzIDEwMDY0NAotLS0g YS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMTksMTUgKzE5LDE1IEBAIFN1bW1hcnk6IEEg R05VIHNvdXJjZS1sZXZlbCBkZWJ1Z2dlciBmb3IgQywgQysrLCBGb3J0cmFuLCBHbyBhbmQgb3Ro ZXIgbGFuZ3VhZ2VzCiBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogCiAjIEZyZWV6ZSBpdCB3aGVu IEdEQiBnZXRzIGJyYW5jaGVkCi0lZ2xvYmFsIHNuYXBzcmMgICAgMjAxNjAyMTAKKyVnbG9iYWwg c25hcHNyYyAgICAyMDE2MDgwMQogIyBTZWUgdGltZXN0YW1wIG9mIHNvdXJjZSBnbnVsaWIgaW5z dGFsbGVkIGludG8gZ2RiL2dudWxpYi8gLgogJWdsb2JhbCBzbmFwZ251bGliIDIwMTUwODIyCiAl Z2xvYmFsIHRhcm5hbWUgZ2RiLSV7dmVyc2lvbn0KLVZlcnNpb246IDcuMTEuMQorVmVyc2lvbjog Ny4xMS45MC4yMDE2MDgwNwogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRp bmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBh IHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxl IGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDgzJXs/ZGlzdH0KK1JlbGVhc2U6IDYlez9kaXN0 fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYy KyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNE IGFuZCBQdWJsaWMgRG9tYWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJz CkBAIC0yODAsNiArMjgwLDggQEAgUGF0Y2gyNzE6IGdkYi02LjUtYnoyNDM4NDUtc3RhbGUtdGVz dGluZy16b21iaWUtdGVzdC5wYXRjaAogIz1wdXNoCiBQYXRjaDI3NDogZ2RiLTYuNi1idWlsZGlk LWxvY2F0ZS5wYXRjaAogIyBGaXggbG9hZGluZyBvZiBjb3JlIGZpbGVzIHdpdGhvdXQgYnVpbGQt aWRzIGJ1dCB3aXRoIGJ1aWxkLWlkcyBpbiBleGVjdXRhYmxlcy4KKyMgTG9hZCBzdHJpY3RseSBi dWlsZC1pZC1jaGVja2VkIGNvcmUgZmlsZXMgb25seSBpZiBubyBleGVjdXRhYmxlIGlzIHNwZWNp ZmllZAorIyAoSmFuIEtyYXRvY2h2aWwsIFJIIEJaIDEzMzk4NjIpLgogIz1wdXNoCiBQYXRjaDY1 OTogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRjaAogIz1wdXNo CkBAIC01MjQsMTIgKzUyNiwxNiBAQCBQYXRjaDEwNjA6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRl bC0zb2Y2LnBhdGNoCiBQYXRjaDEwNjE6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC00b2Y2LnBh dGNoCiBQYXRjaDEwNjI6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoCiBQYXRj aDEwNjM6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LnBhdGNoCi1QYXRjaDg4ODogZ2Ri LXZsYS1pbnRlbC5wYXRjaAotUGF0Y2g5ODM6IGdkYi12bGEtaW50ZWwtbG9naWNhbC1ub3QucGF0 Y2gKK1BhdGNoMTEzMjogZ2RiLXZsYS1pbnRlbC0xb2Y3LnBhdGNoCitQYXRjaDExMzM6IGdkYi12 bGEtaW50ZWwtMm9mNy5wYXRjaAorUGF0Y2gxMTM0OiBnZGItdmxhLWludGVsLTNvZjcucGF0Y2gK K1BhdGNoMTEzNTogZ2RiLXZsYS1pbnRlbC00b2Y3LnBhdGNoCitQYXRjaDExMzY6IGdkYi12bGEt aW50ZWwtNW9mNy5wYXRjaAorUGF0Y2gxMTM3OiBnZGItdmxhLWludGVsLTZvZjcucGF0Y2gKK1Bh dGNoMTEzODogZ2RiLXZsYS1pbnRlbC03b2Y3LnBhdGNoCiBQYXRjaDg4OTogZ2RiLXZsYS1pbnRl bC1zdHJpbmdidC1maXgucGF0Y2gKLVBhdGNoOTEyOiBnZGItdmxhLWludGVsLTA0b2YyMy1maXgu cGF0Y2gKIFBhdGNoODg3OiBnZGItYXJjaGVyLXZsYS10ZXN0cy5wYXRjaAotUGF0Y2gxMDY5OiBn ZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNm9mNi1ub2tmYWlsLnBhdGNoCitQYXRjaDg4ODogZ2Ri LXZsYS1pbnRlbC10ZXN0cy5wYXRjaAogCiAjIENvbnRpbnVlIGJhY2t0cmFjZSBldmVuIGlmIGEg ZnJhbWUgZmlsdGVyIHRocm93cyBhbiBleGNlcHRpb24gKFBoaWwgTXVsZG9vbikuCiBQYXRjaDkx ODogZ2RiLWJ0cm9idXN0LnBhdGNoCkBAIC01NzUsMTQgKzU4MSw2IEBAIFBhdGNoMTEyMDogZ2Ri LXRlc3RzdWl0ZS1kdzItdW5kZWZpbmVkLXJldC1hZGRyLnBhdGNoCiAjIE5ldyB0ZXN0IGZvciBQ eXRob24gIkNhbm5vdCBsb2NhdGUgb2JqZWN0IGZpbGUgZm9yIGJsb2NrIiAoZm9yIFJIIEJaIDEz MjU3OTUpLgogUGF0Y2gxMTIzOiBnZGItcmhiejEzMjU3OTUtZnJhbWVmaWx0ZXJzLXRlc3QucGF0 Y2gKIAotIyBJbXBvcnQgYmFyZSBEV19UQUdfbGV4aWNhbF9ibG9jayAoUkggQlogMTMyNTM5Niku Ci1QYXRjaDExMjg6IGdkYi1iYXJlLURXX1RBR19sZXhpY2FsX2Jsb2NrLTFvZjIucGF0Y2gKLVBh dGNoMTEyOTogZ2RiLWJhcmUtRFdfVEFHX2xleGljYWxfYmxvY2stMm9mMi5wYXRjaAotCi0jIFth YXJjaDY0XSBGaXggQVJNdjguMS92OC4yIGZvciBodyB3YXRjaHBvaW50IGFuZCBicmVha3BvaW50 Ci0jIChBbmRyZXcgUGluc2tpLCBSSCBCWiAxMzYzNjM1KS4KLVBhdGNoMTE0MTogZ2RiLXJoYnox MzYzNjM1LWFhcmNoNjQtYXJtdjgxODIucGF0Y2gKLQogIyBbZHRzK2VsN10gW3g4NipdIEJ1bmRs ZSBsaW51eF9wZXJmLmggZm9yIGxpYmlwdCAoUkggQlogMTI1NjUxMykuCiBQYXRjaDExNDM6IGdk Yi1saW51eF9wZXJmLWJ1bmRsZS5wYXRjaAogCkBAIC03OTUsMTAgKzc5MywxNCBAQCBmaW5kIC1u YW1lICIqLmluZm8qInx4YXJncyBybSAtZgogJXBhdGNoMTA2MSAtcDEKICVwYXRjaDEwNjIgLXAx CiAlcGF0Y2gxMDYzIC1wMQotJXBhdGNoODg4IC1wMQotJXBhdGNoOTgzIC1wMQorJXBhdGNoMTEz MiAtcDEKKyVwYXRjaDExMzMgLXAxCislcGF0Y2gxMTM0IC1wMQorJXBhdGNoMTEzNSAtcDEKKyVw YXRjaDExMzYgLXAxCislcGF0Y2gxMTM3IC1wMQorJXBhdGNoMTEzOCAtcDEKICVwYXRjaDg4OSAt cDEKLSVwYXRjaDkxMiAtcDEKICVwYXRjaDEgLXAxCiAKICVwYXRjaDEwNSAtcDEKQEAgLTg5Miw3 ICs4OTQsNyBAQCBmaW5kIC1uYW1lICIqLmluZm8qInx4YXJncyBybSAtZgogJXBhdGNoODUyIC1w MQogJXBhdGNoODYzIC1wMQogJXBhdGNoODg3IC1wMQotJXBhdGNoMTA2OSAtcDEKKyVwYXRjaDg4 OCAtcDEKICVwYXRjaDkxOCAtcDEKICVwYXRjaDkyNSAtcDEKICVwYXRjaDkyNyAtcDEKQEAgLTkw Miw2ICs5MDQsMTYgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDEw NTYgLXAxCiAlcGF0Y2gxMDczIC1wMQogJXBhdGNoODQ4IC1wMQorJWlmIDAleyE/ZWw2OjF9Citm b3IgaSBpbiBcCisgIGdkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkgXAorICBnZGIv cHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5IFwKKyAgZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1h bmQvYmFja3RyYWNlLnB5IFwKKyAgO2RvCisgIHRlc3QgLWUgJGkKKyAgOiA+JGkKK2RvbmUKKyVl bmRpZgogJXBhdGNoODMzIC1wMQogJXBhdGNoNjQyIC1wMQogJXBhdGNoMzM3IC1wMQpAQCAtOTEw LDkgKzkyMiw2IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAlcGF0Y2gxMTE4 IC1wMQogJXBhdGNoMTEyMCAtcDEKICVwYXRjaDExMjMgLXAxCi0lcGF0Y2gxMTI4IC1wMQotJXBh dGNoMTEyOSAtcDEKLSVwYXRjaDExNDEgLXAxCiAlcGF0Y2gxMTQzIC1wMQogCiAlcGF0Y2gxMDc1 IC1wMQpAQCAtOTk2LDYgKzEwMDUsOCBAQCBDRkxBR1M9IiRDRkxBR1MgLURORUVEX1JMX1NUQVRF X0ZFRE9SQV9HREIiCiBDRkxBR1M9IiRDRkxBR1MgLURORUVEX0RFVEFDSF9TSUdTVE9QIgogJWVu ZGlmCiAKK2V4cG9ydCBDWFhGTEFHUz0iJENGTEFHUyIKKwogJWlmIDAle2hhdmVfbGliaXB0fSAm JiAwJXs/ZWw3OjF9ICYmIDAlez9zY2w6MX0KICgKICBta2RpciBwcm9jZXNzb3ItdHJhY2UtJXts aWJpcHRfdmVyc2lvbn0tcm9vdApAQCAtMTAyNSw2ICsxMDM2LDcgQEAgTERGTEFHUz0iJExERkxB R1MgLUwkUFdEL3Byb2Nlc3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9ufS1yb290JXtfbGliZGly fSIKIAktLXdpdGgtc3lzdGVtLWdkYmluaXQ9JXtfc3lzY29uZmRpcn0vZ2RiaW5pdAkJXAogCS0t d2l0aC1nZGItZGF0YWRpcj0le19kYXRhZGlyfS9nZGIJCQlcCiAJLS1lbmFibGUtZ2RiLWJ1aWxk LXdhcm5pbmdzPSwtV25vLXVudXNlZAkJXAorCS0tZW5hYmxlLWJ1aWxkLXdpdGgtY3h4CQkJCQlc CiAlaWZuYXJjaCAle2l4ODZ9IGFscGhhIHBwYyBzMzkwIHMzOTB4IHg4Nl82NCBwcGM2NCBwcGM2 NGxlIHNwYXJjIHNwYXJjdjkgc3BhcmM2NCAle2FybX0gYWFyY2g2NAogCS0tZGlzYWJsZS13ZXJy b3IJCQkJCVwKICVlbHNlCkBAIC0xNDU3LDYgKzE0NjksOSBAQCB0aGVuCiBmaQogCiAlY2hhbmdl bG9nCisqIFR1ZSBBdWcgMjMgMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4gLSA3LjExLjkwLjIwMTYwODA3LTYuZmMyNQorLSBNZXJnZSBGZWRvcmEgcGFja2Fn aW5nIGNoYW5nZXMgZnJvbSBGZWRvcmEgMjQgZ2RiLTcuMTEuMS04My5mYzI0OgorCiAqIFR1ZSBB dWcgMjMgMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3 LjExLjEtODMuZmMyNAogLSBbZHRzK2VsN10gW3g4NipdIEJ1bmRsZSBsaWJpcHQgLSBmaXgjMyBp dHMgaW5pdGlhbGl6YXRpb24gKFJIIEJaIDEyNTY1MTMpLgogCkBAIC0xNDc1LDkgKzE0OTAsMjEg QEAgZmkKICogV2VkIEF1ZyAxNyAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPiAtIDcuMTEuMS03OC5mYzI0CiAtIFtkdHMrZWw3XSBbeDg2Kl0gQnVuZGxlIGxp YmlwdCAoUkggQlogMTI1NjUxMykuCiAKLSogV2VkIEF1ZyAgMyAyMDE2IEphbiBLcmF0b2Nodmls IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuMS03Ny5mYzI0Ci0tIFthYXJjaDY0 XSBGaXggQVJNdjguMS92OC4yIGZvciBodyB3YXRjaHBvaW50IGFuZCBicmVha3BvaW50Ci0gIChB bmRyZXcgUGluc2tpLCBSSCBCWiAxMzYzNjM1KS4KKyogU3VuIEF1ZyAgNyAyMDE2IEphbiBLcmF0 b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuOTAuMjAxNjA4MDctNS5m YzI1CistIFJlYmFzZSB0byBGU0YgR0RCIDcuMTEuOTAuMjAxNjA4MDcgKHByZS03LjEyIGJyYW5j aCBzbmFwc2hvdCkuCisKKyogU3VuIEp1bCAzMSAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuNTAuMjAxNjA3MjEtNC5mYzI1CistIFRlc3RjYXNl IGZvcjogTG9hZCBzdHJpY3RseSBidWlsZC1pZC1jaGVja2VkIGNvcmUgZmlsZXMgb25seSBpZiBu byBleGVjdXRhYmxlCisgIGlzIHNwZWNpZmllZCAoSmFuIEtyYXRvY2h2aWwsIFJIIEJaIDEzMzk4 NjIpLgorCisqIFRodSBKdWwgMjggMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4gLSA3LjExLjUwLjIwMTYwNzIxLTMuZmMyNQorLSBEbyBub3QgYXBwbHkgUkhF TC02IHBhdGNoZXMgb24gbm9uLVJIRUwtNiBldmVuIGZvciB0ZXN0c3VpdGUuCisKKyogVGh1IEp1 bCAyMSAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcu MTEuNTAuMjAxNjA3MjEtMi5mYzI1CistIFJlYmFzZSB0byBGU0YgR0RCIDcuMTEuNTAuMjAxNjA3 MjEgKHByZS03LjEyIHRydW5rIHNuYXBzaG90KS4KKworKiBTdW4gSnVsIDE3IDIwMTYgSmFuIEty YXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xMS41MC4yMDE2MDcxNi0x LmZjMjUKKy0gUmViYXNlIHRvIEZTRiBHREIgNy4xMS41MC4yMDE2MDcxNiAocHJlLTcuMTIgdHJ1 bmsgc25hcHNob3QpLgogCiAqIE1vbiBKdW4gMjcgMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjExLjEtNzYuZmMyNAogLSBUZXN0ICdpbmZvIHR5cGUt cHJpbnRlcnMnIFB5dGhvbiBlcnJvciAoUkggQlogMTM1MDQzNikuCgpkaWZmIC0tZ2l0IGEvc291 cmNlcyBiL3NvdXJjZXMKaW5kZXggZmY4Y2JlNi4uMDAxZGFiNyAxMDA2NDQKLS0tIGEvc291cmNl cworKysgYi9zb3VyY2VzCkBAIC0xLDMgKzEsMyBAQAogMTMxZDBkZmQyMGNkNjAxNGMxNjhmYmNh YjliZTJjNDMgIGdkYi1saWJzdGRjKystdjMtcHl0aG9uLTYuMS4xLTIwMTYwODE3LnRhci54egog MjllZmMwODIxOWQ5ZDZhMDUzNmQ1OGY5ODA3Yzg3MjIgIHYxLjUudGFyLmd6Ci01YWE3MTUyMmU0 ODhlMzU4MjQzOTE3OTY3ZGI4NzQ3NiAgZ2RiLTcuMTEuMS50YXIueHoKKzJlNTJkZDhiNjNlYjBh NDU5ZmViYmVlMDEyMjFmYjEwICBnZGItNy4xMS45MC4yMDE2MDgwNy50YXIueHoK