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: Tomas Mraz To: git-commits@fedoraproject.org Subject: [rpms/openssl] rebase_40beta: update to the 1.1.1d release Date: Tue, 09 Jun 2026 12:44:35 GMT Message-ID: <178100907514.1.18217342851880349792.rpms-openssl-f6a62c4c2ca8@fedoraproject.org> List-ID: X-Git-Repo: rpms/openssl X-Git-Branch: rebase_40beta X-Git-Rev: f6a62c4c2ca8d8156e978be92921ad45ee05b8ad QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvb3BlbnNzbApCcmFu Y2ggOiByZWJhc2VfNDBiZXRhCkNvbW1pdCA6IGY2YTYyYzRjMmNhOGQ4MTU2ZTk3OGJlOTI5MjFh ZDQ1ZWUwNWI4YWQKQXV0aG9yIDogVG9tYXMgTXJheiA8dG1yYXpAZmVkb3JhcHJvamVjdC5vcmc+ CkRhdGUgICA6IDIwMTktMDktMTNUMTc6MjU6NDQrMDI6MDAKU3RhdHMgIDogKzEzOTEvLTE0MDUg aW4gMTQgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1z L29wZW5zc2wvYy9mNmE2MmM0YzJjYThkODE1NmU5NzhiZTkyOTIxYWQ0NWVlMDViOGFkP2JyYW5j aD1yZWJhc2VfNDBiZXRhCgpMb2c6CnVwZGF0ZSB0byB0aGUgMS4xLjFkIHJlbGVhc2UKCi0tLQpk aWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggYTNhNjA1NC4uZjVhYWM1 YSAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC00NCwzICs0NCw0 IEBAIG9wZW5zc2wtMS4wLjBhLXVzYS50YXIuYnoyCiAvb3BlbnNzbC0xLjEuMWEtaG9iYmxlZC50 YXIueHoKIC9vcGVuc3NsLTEuMS4xYi1ob2JibGVkLnRhci54egogL29wZW5zc2wtMS4xLjFjLWhv YmJsZWQudGFyLnh6Cisvb3BlbnNzbC0xLjEuMWQtaG9iYmxlZC50YXIueHoKCmRpZmYgLS1naXQg YS9lY19jdXJ2ZS5jIGIvZWNfY3VydmUuYwppbmRleCA1OGY4ZjNmLi4zNDI3NjVhIDEwMDY0NAot LS0gYS9lY19jdXJ2ZS5jCisrKyBiL2VjX2N1cnZlLmMKQEAgLTEsNSArMSw1IEBACiAvKgotICog Q29weXJpZ2h0IDIwMDItMjAxOCBUaGUgT3BlblNTTCBQcm9qZWN0IEF1dGhvcnMuIEFsbCBSaWdo dHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwMi0yMDE5IFRoZSBPcGVuU1NMIFByb2plY3Qg QXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqIENvcHlyaWdodCAoYykgMjAwMiwgT3Jh Y2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZAogICoKICAqIExp Y2Vuc2VkIHVuZGVyIHRoZSBPcGVuU1NMIGxpY2Vuc2UgKHRoZSAiTGljZW5zZSIpLiAgWW91IG1h eSBub3QgdXNlCkBAIC00NjgsMyArNDY4LDExNSBAQCBpbnQgRUNfY3VydmVfbmlzdDJuaWQoY29u c3QgY2hhciAqbmFtZSkKICAgICB9CiAgICAgcmV0dXJuIE5JRF91bmRlZjsKIH0KKworI2RlZmlu ZSBOVU1fQk5fRklFTERTIDYKKy8qCisgKiBWYWxpZGF0ZXMgRUMgZG9tYWluIHBhcmFtZXRlciBk YXRhIGZvciBrbm93biBuYW1lZCBjdXJ2ZXMuCisgKiBUaGlzIGNhbiBiZSB1c2VkIHdoZW4gYSBj dXJ2ZSBpcyBsb2FkZWQgZXhwbGljaXRseSAod2l0aG91dCBhIGN1cnZlCisgKiBuYW1lKSBvciB0 byB2YWxpZGF0ZSB0aGF0IGRvbWFpbiBwYXJhbWV0ZXJzIGhhdmUgbm90IGJlZW4gbW9kaWZpZWQu CisgKgorICogUmV0dXJuczogVGhlIG5pZCBhc3NvY2lhdGVkIHdpdGggdGhlIGZvdW5kIG5hbWVk IGN1cnZlLCBvciBOSURfdW5kZWYKKyAqICAgICAgICAgIGlmIG5vdCBmb3VuZC4gSWYgdGhlcmUg d2FzIGFuIGVycm9yIGl0IHJldHVybnMgLTEuCisgKi8KK2ludCBlY19jdXJ2ZV9uaWRfZnJvbV9w YXJhbXMoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBCTl9DVFggKmN0eCkKK3sKKyAgICBpbnQgcmV0 ID0gLTEsIG5pZCwgbGVuLCBmaWVsZF90eXBlLCBwYXJhbV9sZW47CisgICAgc2l6ZV90IGksIHNl ZWRfbGVuOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNlZWQsICpwYXJhbXNfc2VlZCwgKnBh cmFtczsKKyAgICB1bnNpZ25lZCBjaGFyICpwYXJhbV9ieXRlcyA9IE5VTEw7CisgICAgY29uc3Qg RUNfQ1VSVkVfREFUQSAqZGF0YTsKKyAgICBjb25zdCBFQ19QT0lOVCAqZ2VuZXJhdG9yID0gTlVM TDsKKyAgICBjb25zdCBFQ19NRVRIT0QgKm1ldGg7CisgICAgY29uc3QgQklHTlVNICpjb2ZhY3Rv ciA9IE5VTEw7CisgICAgLyogQW4gYXJyYXkgb2YgQklHTlVNcyBmb3IgKHAsIGEsIGIsIHgsIHks IG9yZGVyKSAqLworICAgIEJJR05VTSAqYm5bTlVNX0JOX0ZJRUxEU10gPSB7TlVMTCwgTlVMTCwg TlVMTCwgTlVMTCwgTlVMTCwgTlVMTH07CisKKyAgICBtZXRoID0gRUNfR1JPVVBfbWV0aG9kX29m KGdyb3VwKTsKKyAgICBpZiAobWV0aCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisgICAg LyogVXNlIHRoZSBvcHRpb25hbCBuYW1lZCBjdXJ2ZSBuaWQgYXMgYSBzZWFyY2ggZmllbGQgKi8K KyAgICBuaWQgPSBFQ19HUk9VUF9nZXRfY3VydmVfbmFtZShncm91cCk7CisgICAgZmllbGRfdHlw ZSA9IEVDX01FVEhPRF9nZXRfZmllbGRfdHlwZShtZXRoKTsKKyAgICBzZWVkX2xlbiA9IEVDX0dS T1VQX2dldF9zZWVkX2xlbihncm91cCk7CisgICAgc2VlZCA9IEVDX0dST1VQX2dldDBfc2VlZChn cm91cCk7CisgICAgY29mYWN0b3IgPSBFQ19HUk9VUF9nZXQwX2NvZmFjdG9yKGdyb3VwKTsKKwor ICAgIEJOX0NUWF9zdGFydChjdHgpOworCisgICAgLyoKKyAgICAgKiBUaGUgYnVpbHQtaW4gY3Vy dmVzIGNvbnRhaW5zIGRhdGEgZmllbGRzIChwLCBhLCBiLCB4LCB5LCBvcmRlcikgdGhhdCBhcmUK KyAgICAgKiBhbGwgemVyby1wYWRkZWQgdG8gYmUgdGhlIHNhbWUgc2l6ZS4gVGhlIHNpemUgb2Yg dGhlIHBhZGRpbmcgaXMKKyAgICAgKiBkZXRlcm1pbmVkIGJ5IGVpdGhlciB0aGUgbnVtYmVyIG9m IGJ5dGVzIGluIHRoZSBmaWVsZCBtb2R1bHVzIChwKSBvciB0aGUKKyAgICAgKiBFQyBncm91cCBv cmRlciwgd2hpY2hldmVyIGlzIGxhcmdlci4KKyAgICAgKi8KKyAgICBwYXJhbV9sZW4gPSBCTl9u dW1fYnl0ZXMoZ3JvdXAtPm9yZGVyKTsKKyAgICBsZW4gPSBCTl9udW1fYnl0ZXMoZ3JvdXAtPmZp ZWxkKTsKKyAgICBpZiAobGVuID4gcGFyYW1fbGVuKQorICAgICAgICBwYXJhbV9sZW4gPSBsZW47 CisKKyAgICAvKiBBbGxvY2F0ZSBzcGFjZSB0byBzdG9yZSB0aGUgcGFkZGVkIGRhdGEgZm9yIChw LCBhLCBiLCB4LCB5LCBvcmRlcikgICovCisgICAgcGFyYW1fYnl0ZXMgPSBPUEVOU1NMX21hbGxv YyhwYXJhbV9sZW4gKiBOVU1fQk5fRklFTERTKTsKKyAgICBpZiAocGFyYW1fYnl0ZXMgPT0gTlVM TCkKKyAgICAgICAgZ290byBlbmQ7CisKKyAgICAvKiBDcmVhdGUgdGhlIGJpZ251bXMgKi8KKyAg ICBmb3IgKGkgPSAwOyBpIDwgTlVNX0JOX0ZJRUxEUzsgKytpKSB7CisgICAgICAgIGlmICgoYm5b aV0gPSBCTl9DVFhfZ2V0KGN0eCkpID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGVuZDsKKyAg ICB9CisgICAgLyoKKyAgICAgKiBGaWxsIGluIHRoZSBibiBhcnJheSB3aXRoIHRoZSBzYW1lIHZh bHVlcyBhcyB0aGUgaW50ZXJuYWwgY3VydmVzCisgICAgICogaS5lLiB0aGUgdmFsdWVzIGFyZSBw LCBhLCBiLCB4LCB5LCBvcmRlci4KKyAgICAgKi8KKyAgICAvKiBHZXQgcCwgYSAmIGIgKi8KKyAg ICBpZiAoIShFQ19HUk9VUF9nZXRfY3VydmUoZ3JvdXAsIGJuWzBdLCBiblsxXSwgYm5bMl0sIGN0 eCkKKyAgICAgICAgJiYgKChnZW5lcmF0b3IgPSBFQ19HUk9VUF9nZXQwX2dlbmVyYXRvcihncm91 cCkpICE9IE5VTEwpCisgICAgICAgIC8qIEdldCB4ICYgeSAqLworICAgICAgICAmJiBFQ19QT0lO VF9nZXRfYWZmaW5lX2Nvb3JkaW5hdGVzKGdyb3VwLCBnZW5lcmF0b3IsIGJuWzNdLCBibls0XSwg Y3R4KQorICAgICAgICAvKiBHZXQgb3JkZXIgKi8KKyAgICAgICAgJiYgRUNfR1JPVVBfZ2V0X29y ZGVyKGdyb3VwLCBibls1XSwgY3R4KSkpCisgICAgICAgIGdvdG8gZW5kOworCisgICAvKgorICAg ICAqIENvbnZlcnQgdGhlIGJpZ251bSBhcnJheSB0byBieXRlcyB0aGF0IGFyZSBqb2luZWQgdG9n ZXRoZXIgdG8gZm9ybQorICAgICAqIGEgc2luZ2xlIGJ1ZmZlciB0aGF0IGNvbnRhaW5zIGRhdGEg Zm9yIGFsbCBmaWVsZHMuCisgICAgICogKHAsIGEsIGIsIHgsIHksIG9yZGVyKSBhcmUgYWxsIHpl cm8gcGFkZGVkIHRvIGJlIHRoZSBzYW1lIHNpemUuCisgICAgICovCisgICAgZm9yIChpID0gMDsg aSA8IE5VTV9CTl9GSUVMRFM7ICsraSkgeworICAgICAgICBpZiAoQk5fYm4yYmlucGFkKGJuW2ld LCAmcGFyYW1fYnl0ZXNbaSpwYXJhbV9sZW5dLCBwYXJhbV9sZW4pIDw9IDApCisgICAgICAgICAg ICBnb3RvIGVuZDsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgY3VydmVfbGlzdF9sZW5n dGg7IGkrKykgeworICAgICAgICBjb25zdCBlY19saXN0X2VsZW1lbnQgY3VydmUgPSBjdXJ2ZV9s aXN0W2ldOworCisgICAgICAgIGRhdGEgPSBjdXJ2ZS5kYXRhOworICAgICAgICAvKiBHZXQgdGhl IHJhdyBvcmRlciBieXRlIGRhdGEgKi8KKyAgICAgICAgcGFyYW1zX3NlZWQgPSAoY29uc3QgdW5z aWduZWQgY2hhciAqKShkYXRhICsgMSk7IC8qIHNraXAgaGVhZGVyICovCisgICAgICAgIHBhcmFt cyA9IHBhcmFtc19zZWVkICsgZGF0YS0+c2VlZF9sZW47CisKKyAgICAgICAgLyogTG9vayBmb3Ig dW5pcXVlIGZpZWxkcyBpbiB0aGUgZml4ZWQgY3VydmUgZGF0YSAqLworICAgICAgICBpZiAoZGF0 YS0+ZmllbGRfdHlwZSA9PSBmaWVsZF90eXBlCisgICAgICAgICAgICAmJiBwYXJhbV9sZW4gPT0g ZGF0YS0+cGFyYW1fbGVuCisgICAgICAgICAgICAmJiAobmlkIDw9IDAgfHwgbmlkID09IGN1cnZl Lm5pZCkKKyAgICAgICAgICAgIC8qIGNoZWNrIHRoZSBvcHRpb25hbCBjb2ZhY3RvciAoaWdub3Jl IGlmIGl0cyB6ZXJvKSAqLworICAgICAgICAgICAgJiYgKEJOX2lzX3plcm8oY29mYWN0b3IpCisg ICAgICAgICAgICAgICAgfHwgQk5faXNfd29yZChjb2ZhY3RvciwgKGNvbnN0IEJOX1VMT05HKWN1 cnZlLmRhdGEtPmNvZmFjdG9yKSkKKyAgICAgICAgICAgIC8qIENoZWNrIHRoZSBvcHRpb25hbCBz ZWVkIChpZ25vcmUgaWYgaXRzIG5vdCBzZXQpICovCisgICAgICAgICAgICAmJiAoZGF0YS0+c2Vl ZF9sZW4gPT0gMCB8fCBzZWVkX2xlbiA9PSAwCisgICAgICAgICAgICAgICAgfHwgKChzaXplX3Qp ZGF0YS0+c2VlZF9sZW4gPT0gc2VlZF9sZW4KKyAgICAgICAgICAgICAgICAgICAgICYmIG1lbWNt cChwYXJhbXNfc2VlZCwgc2VlZCwgc2VlZF9sZW4pID09IDApKQorICAgICAgICAgICAgLyogQ2hl Y2sgdGhhdCB0aGUgZ3JvdXBzIHBhcmFtcyBtYXRjaCB0aGUgYnVpbHQtaW4gY3VydmUgcGFyYW1z ICovCisgICAgICAgICAgICAmJiBtZW1jbXAocGFyYW1fYnl0ZXMsIHBhcmFtcywgcGFyYW1fbGVu ICogTlVNX0JOX0ZJRUxEUykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gMCkgewor ICAgICAgICAgICAgcmV0ID0gY3VydmUubmlkOworICAgICAgICAgICAgZ290byBlbmQ7CisgICAg ICAgIH0KKyAgICB9CisgICAgLyogR2V0cyBoZXJlIGlmIHRoZSBncm91cCB3YXMgbm90IGZvdW5k ICovCisgICAgcmV0ID0gTklEX3VuZGVmOworZW5kOgorICAgIE9QRU5TU0xfZnJlZShwYXJhbV9i eXRlcyk7CisgICAgQk5fQ1RYX2VuZChjdHgpOworICAgIHJldHVybiByZXQ7Cit9CgpkaWZmIC0t Z2l0IGEvZWN0ZXN0LmMgYi9lY3Rlc3QuYwppbmRleCA1M2FkZjg4Li5lZjRlNmI5IDEwMDY0NAot LS0gYS9lY3Rlc3QuYworKysgYi9lY3Rlc3QuYwpAQCAtODQ0LDYgKzg0NCwyNzEgQEAgc3RhdGlj IGNvbnN0IHVuc2lnbmVkIGNoYXIgcDUyMV9leHBsaWNpdFtdID0gewogICAgIDB4YmIsIDB4NmYs IDB4YjcsIDB4MWUsIDB4OTEsIDB4MzgsIDB4NjQsIDB4MDksIDB4MDIsIDB4MDEsIDB4MDEsCiB9 OwogCisvKgorICogU29tZXRpbWUgd2UgY2Fubm90IGNvbXBhcmUgbmlkcyBmb3IgZXF1YWxpdHks IGFzIHRoZSBidWlsdC1pbiBjdXJ2ZSB0YWJsZQorICogaW5jbHVkZXMgYWxpYXNlcyB3aXRoIGRp ZmZlcmVudCBuYW1lcyBmb3IgdGhlIHNhbWUgY3VydmUuCisgKgorICogVGhpcyBmdW5jdGlvbiBy ZXR1cm5zIFRSVUUgKDEpIGlmIHRoZSBjaGVja2VkIG5pZHMgYXJlIGlkZW50aWNhbCwgb3IgaWYg dGhleQorICogYWxpYXMgdG8gdGhlIHNhbWUgY3VydmUuIEZBTFNFICgwKSBvdGhlcndpc2UuCisg Ki8KK3N0YXRpYyBvc3NsX2lubGluZQoraW50IGFyZV9lY19uaWRzX2NvbXBhdGlibGUoaW50IG4x ZCwgaW50IG4yZCkKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBzd2l0Y2ggKG4xZCkgeworIyBp Zm5kZWYgT1BFTlNTTF9OT19FQzJNCisgICAgICAgIGNhc2UgTklEX3NlY3QxMTNyMToKKyAgICAg ICAgY2FzZSBOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzNDoKKyAgICAgICAgICAgIHJldCA9IChu MmQgPT0gTklEX3NlY3QxMTNyMSB8fCBuMmQgPT0gTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczQp OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTklEX3NlY3QxNjNrMToKKyAgICAg ICAgY2FzZSBOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzMzoKKyAgICAgICAgICAgIHJldCA9IChu MmQgPT0gTklEX3NlY3QxNjNrMSB8fCBuMmQgPT0gTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczMp OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTklEX3NlY3QyMzNrMToKKyAgICAg ICAgY2FzZSBOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzMTA6CisgICAgICAgICAgICByZXQgPSAo bjJkID09IE5JRF9zZWN0MjMzazEgfHwgbjJkID09IE5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHMx MCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOSURfc2VjdDIzM3IxOgorICAg ICAgICBjYXNlIE5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHMxMToKKyAgICAgICAgICAgIHJldCA9 IChuMmQgPT0gTklEX3NlY3QyMzNyMSB8fCBuMmQgPT0gTklEX3dhcF93c2dfaWRtX2VjaWRfd3Rs czExKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5JRF9YOV82Ml9jMnBuYjE2 M3YxOgorICAgICAgICBjYXNlIE5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHM1OgorICAgICAgICAg ICAgcmV0ID0gKG4yZCA9PSBOSURfWDlfNjJfYzJwbmIxNjN2MQorICAgICAgICAgICAgICAgICAg IHx8IG4yZCA9PSBOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzNSk7CisgICAgICAgICAgICBicmVh azsKKyMgZW5kaWYgLyogT1BFTlNTTF9OT19FQzJNICovCisgICAgICAgIGNhc2UgTklEX3NlY3Ax MTJyMToKKyAgICAgICAgY2FzZSBOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzNjoKKyAgICAgICAg ICAgIHJldCA9IChuMmQgPT0gTklEX3NlY3AxMTJyMSB8fCBuMmQgPT0gTklEX3dhcF93c2dfaWRt X2VjaWRfd3RsczYpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTklEX3NlY3Ax NjByMjoKKyAgICAgICAgY2FzZSBOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzNzoKKyAgICAgICAg ICAgIHJldCA9IChuMmQgPT0gTklEX3NlY3AxNjByMiB8fCBuMmQgPT0gTklEX3dhcF93c2dfaWRt X2VjaWRfd3RsczcpOworICAgICAgICAgICAgYnJlYWs7CisjIGlmZGVmIE9QRU5TU0xfTk9fRUNf TklTVFBfNjRfR0NDXzEyOAorICAgICAgICBjYXNlIE5JRF9zZWNwMjI0cjE6CisgICAgICAgIGNh c2UgTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczEyOgorICAgICAgICAgICAgcmV0ID0gKG4yZCA9 PSBOSURfc2VjcDIyNHIxIHx8IG4yZCA9PSBOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzMTIpOwor ICAgICAgICAgICAgYnJlYWs7CisjIGVsc2UKKyAgICAgICAgLyoKKyAgICAgICAgICogRm9yIFNF QyBQLTIyNCB3ZSB3YW50IHRvIGVuc3VyZSB0aGF0IHRoZSBTRUNQIG5pZCBpcyByZXR1cm5lZCwg YXMKKyAgICAgICAgICogdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWFsaXplZCBtZXRo b2QuCisgICAgICAgICAqLworICAgICAgICBjYXNlIE5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHMx MjoKKyAgICAgICAgICAgIHJldCA9IChuMmQgPT0gTklEX3NlY3AyMjRyMSk7CisgICAgICAgICAg ICBicmVhazsKKyMgZW5kaWYgLyogZGVmKE9QRU5TU0xfTk9fRUNfTklTVFBfNjRfR0NDXzEyOCkg Ki8KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gKG4xZCA9PSBuMmQpOwor ICAgIH0KKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogVGhpcyBjaGVja3MgdGhhdCBFQ19H Uk9VUF9iZXdfZnJvbV9lY3BhcmFtZXRlcnMoKSByZXR1cm5zIGEgIm5hbWVkIgorICogRUNfR1JP VVAgZm9yIGJ1aWx0LWluIGN1cnZlcy4KKyAqCisgKiBOb3RlIHRoYXQgaXQgaXMgcG9zc2libGUg dG8gcmV0cmlldmUgYW4gYWx0ZXJuYXRpdmUgYWxpYXMgdGhhdCBkb2VzIG5vdCBtYXRjaAorICog dGhlIG9yaWdpbmFsIG5pZC4KKyAqCisgKiBFbnN1cmUgdGhhdCB0aGUgT1BFTlNTTF9FQ19FWFBM SUNJVF9DVVJWRSBBU04xIGZsYWcgaXMgc2V0LgorICovCitzdGF0aWMgaW50IGNoZWNrX25hbWVk X2N1cnZlX2Zyb21fZWNwYXJhbWV0ZXJzKGludCBpZCkKK3sKKyAgICBpbnQgcmV0ID0gMCwgbmlk LCB0bmlkOworICAgIEVDX0dST1VQICpncm91cCA9IE5VTEwsICp0Z3JvdXAgPSBOVUxMLCAqdG1w ZyA9IE5VTEw7CisgICAgY29uc3QgRUNfUE9JTlQgKmdyb3VwX2dlbiA9IE5VTEw7CisgICAgRUNf UE9JTlQgKm90aGVyX2dlbiA9IE5VTEw7CisgICAgQklHTlVNICpncm91cF9jb2ZhY3RvciA9IE5V TEwsICpvdGhlcl9jb2ZhY3RvciA9IE5VTEw7CisgICAgQklHTlVNICpvdGhlcl9nZW5feCA9IE5V TEwsICpvdGhlcl9nZW5feSA9IE5VTEw7CisgICAgY29uc3QgQklHTlVNICpncm91cF9vcmRlciA9 IE5VTEw7CisgICAgQklHTlVNICpvdGhlcl9vcmRlciA9IE5VTEw7CisgICAgQk5fQ1RYICpibl9j dHggPSBOVUxMOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGludmFsaWRfc2VlZFtd ID0gIlRISVMgSVMgTk9UIEEgVkFMSUQgU0VFRCI7CisgICAgc3RhdGljIHNpemVfdCBpbnZhbGlk X3NlZWRfbGVuID0gc2l6ZW9mKGludmFsaWRfc2VlZCk7CisgICAgRUNQQVJBTUVURVJTICpwYXJh bXMgPSBOVUxMLCAqb3RoZXJfcGFyYW1zID0gTlVMTDsKKyAgICBFQ19HUk9VUCAqZ19hcnlbOF0g PSB7TlVMTH07CisgICAgRUNfR1JPVVAgKipnX25leHQgPSAmZ19hcnlbMF07CisgICAgRUNQQVJB TUVURVJTICpwX2FyeVs4XSA9IHtOVUxMfTsKKyAgICBFQ1BBUkFNRVRFUlMgKipwX25leHQgPSAm cF9hcnlbMF07CisKKyAgICAvKiBEbyBzb21lIHNldHVwICovCisgICAgbmlkID0gY3VydmVzW2lk XS5uaWQ7CisgICAgVEVTVF9ub3RlKCJDdXJ2ZSAlcyIsIE9CSl9uaWQyc24obmlkKSk7CisgICAg aWYgKCFURVNUX3B0cihibl9jdHggPSBCTl9DVFhfbmV3KCkpKQorICAgICAgICByZXR1cm4gcmV0 OworICAgIEJOX0NUWF9zdGFydChibl9jdHgpOworCisgICAgaWYgKC8qIEFsbG9jYXRpb25zICov CisgICAgICAgICFURVNUX3B0cihncm91cF9jb2ZhY3RvciA9IEJOX0NUWF9nZXQoYm5fY3R4KSkK KyAgICAgICAgfHwgIVRFU1RfcHRyKG90aGVyX2dlbl94ID0gQk5fQ1RYX2dldChibl9jdHgpKQor ICAgICAgICB8fCAhVEVTVF9wdHIob3RoZXJfZ2VuX3kgPSBCTl9DVFhfZ2V0KGJuX2N0eCkpCisg ICAgICAgIHx8ICFURVNUX3B0cihvdGhlcl9vcmRlciA9IEJOX0NUWF9nZXQoYm5fY3R4KSkKKyAg ICAgICAgfHwgIVRFU1RfcHRyKG90aGVyX2NvZmFjdG9yID0gQk5fQ1RYX2dldChibl9jdHgpKQor ICAgICAgICAvKiBHZW5lcmF0ZSByZWZlcmVuY2UgZ3JvdXAgYW5kIHBhcmFtcyAqLworICAgICAg ICB8fCAhVEVTVF9wdHIoZ3JvdXAgPSBFQ19HUk9VUF9uZXdfYnlfY3VydmVfbmFtZShuaWQpKQor ICAgICAgICB8fCAhVEVTVF9wdHIocGFyYW1zID0gRUNfR1JPVVBfZ2V0X2VjcGFyYW1ldGVycyhn cm91cCwgTlVMTCkpCisgICAgICAgIHx8ICFURVNUX3B0cihncm91cF9nZW4gPSBFQ19HUk9VUF9n ZXQwX2dlbmVyYXRvcihncm91cCkpCisgICAgICAgIHx8ICFURVNUX3B0cihncm91cF9vcmRlciA9 IEVDX0dST1VQX2dldDBfb3JkZXIoZ3JvdXApKQorICAgICAgICB8fCAhVEVTVF90cnVlKEVDX0dS T1VQX2dldF9jb2ZhY3Rvcihncm91cCwgZ3JvdXBfY29mYWN0b3IsIE5VTEwpKQorICAgICAgICAv KiBjb21wdXRlIGBvdGhlcl8qYCB2YWx1ZXMgKi8KKyAgICAgICAgfHwgIVRFU1RfcHRyKHRtcGcg PSBFQ19HUk9VUF9kdXAoZ3JvdXApKQorICAgICAgICB8fCAhVEVTVF9wdHIob3RoZXJfZ2VuID0g RUNfUE9JTlRfZHVwKGdyb3VwX2dlbiwgZ3JvdXApKQorICAgICAgICB8fCAhVEVTVF90cnVlKEVD X1BPSU5UX2FkZChncm91cCwgb3RoZXJfZ2VuLCBncm91cF9nZW4sIGdyb3VwX2dlbiwgTlVMTCkp CisgICAgICAgIHx8ICFURVNUX3RydWUoRUNfUE9JTlRfZ2V0X2FmZmluZV9jb29yZGluYXRlcyhn cm91cCwgb3RoZXJfZ2VuLAorICAgICAgICAgICAgICAgICAgICAgIG90aGVyX2dlbl94LCBvdGhl cl9nZW5feSwgYm5fY3R4KSkKKyAgICAgICAgfHwgIVRFU1RfdHJ1ZShCTl9jb3B5KG90aGVyX29y ZGVyLCBncm91cF9vcmRlcikpCisgICAgICAgIHx8ICFURVNUX3RydWUoQk5fYWRkX3dvcmQob3Ro ZXJfb3JkZXIsIDEpKQorICAgICAgICB8fCAhVEVTVF90cnVlKEJOX2NvcHkob3RoZXJfY29mYWN0 b3IsIGdyb3VwX2NvZmFjdG9yKSkKKyAgICAgICAgfHwgIVRFU1RfdHJ1ZShCTl9hZGRfd29yZChv dGhlcl9jb2ZhY3RvciwgMSkpKQorICAgICAgICBnb3RvIGVycjsKKworICAgIEVDX1BPSU5UX2Zy ZWUob3RoZXJfZ2VuKTsKKyAgICBvdGhlcl9nZW4gPSBOVUxMOworCisgICAgaWYgKCFURVNUX3B0 cihvdGhlcl9nZW4gPSBFQ19QT0lOVF9uZXcodG1wZykpCisgICAgICAgIHx8ICFURVNUX3RydWUo RUNfUE9JTlRfc2V0X2FmZmluZV9jb29yZGluYXRlcyh0bXBnLCBvdGhlcl9nZW4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcl9nZW5f eCwgb3RoZXJfZ2VuX3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBibl9jdHgpKSkKKyAgICAgICAgZ290byBlcnI7CisKKyAgICAvKgorICAg ICAqICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICAqICMgQWN0dWFsIHRlc3RzIHN0 YXJ0IGhlcmUgIworICAgICAqICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICAqLwor CisgICAgLyoKKyAgICAgKiBDcmVhdGluZyBhIGdyb3VwIGZyb20gYnVpbHQtaW4gZXhwbGljaXQg cGFyYW1ldGVycyByZXR1cm5zIGEKKyAgICAgKiAibmFtZWQiIEVDX0dST1VQCisgICAgICovCisg ICAgaWYgKCFURVNUX3B0cih0Z3JvdXAgPSAqZ19uZXh0KysgPSBFQ19HUk9VUF9uZXdfZnJvbV9l Y3BhcmFtZXRlcnMocGFyYW1zKSkKKyAgICAgICAgfHwgIVRFU1RfaW50X25lKCh0bmlkID0gRUNf R1JPVVBfZ2V0X2N1cnZlX25hbWUodGdyb3VwKSksIE5JRF91bmRlZikpCisgICAgICAgIGdvdG8g ZXJyOworICAgIC8qCisgICAgICogV2UgY2Fubm90IGFsd2F5cyBndWFyYW50ZWUgdGhlIG5hbWVz IG1hdGNoLCBhcyB0aGUgYnVpbHQtaW4gdGFibGUKKyAgICAgKiBjb250YWlucyBhbGlhc2VzIGZv ciB0aGUgc2FtZSBjdXJ2ZSB3aXRoIGRpZmZlcmVudCBuYW1lcy4KKyAgICAgKi8KKyAgICBpZiAo IVRFU1RfdHJ1ZShhcmVfZWNfbmlkc19jb21wYXRpYmxlKG5pZCwgdG5pZCkpKSB7CisgICAgICAg IFRFU1RfaW5mbygibmlkID0gJXMsIHRuaWQgPSAlcyIsIE9CSl9uaWQyc24obmlkKSwgT0JKX25p ZDJzbih0bmlkKSk7CisgICAgICAgIGdvdG8gZXJyOworICAgIH0KKyAgICAvKiBFbnN1cmUgdGhh dCB0aGUgT1BFTlNTTF9FQ19FWFBMSUNJVF9DVVJWRSBBU04xIGZsYWcgaXMgc2V0LiAqLworICAg IGlmICghVEVTVF9pbnRfZXEoRUNfR1JPVVBfZ2V0X2FzbjFfZmxhZyh0Z3JvdXApLCBPUEVOU1NM X0VDX0VYUExJQ0lUX0NVUlZFKSkKKyAgICAgICAgZ290byBlcnI7CisKKyAgICAvKgorICAgICAq IEFuIGludmFsaWQgc2VlZCBpbiB0aGUgcGFyYW1ldGVycyBzaG91bGQgYmUgaWdub3JlZDogZXhw ZWN0IGEgIm5hbWVkIgorICAgICAqIGdyb3VwLgorICAgICAqLworICAgIGlmICghVEVTVF9pbnRf ZXEoRUNfR1JPVVBfc2V0X3NlZWQodG1wZywgaW52YWxpZF9zZWVkLCBpbnZhbGlkX3NlZWRfbGVu KSwKKyAgICAgICAgICAgICAgICAgICAgIGludmFsaWRfc2VlZF9sZW4pCisgICAgICAgICAgICB8 fCAhVEVTVF9wdHIob3RoZXJfcGFyYW1zID0gKnBfbmV4dCsrID0KKyAgICAgICAgICAgICAgICAg ICAgICAgICBFQ19HUk9VUF9nZXRfZWNwYXJhbWV0ZXJzKHRtcGcsIE5VTEwpKQorICAgICAgICAg ICAgfHwgIVRFU1RfcHRyKHRncm91cCA9ICpnX25leHQrKyA9CisgICAgICAgICAgICAgICAgICAg ICAgICAgIEVDX0dST1VQX25ld19mcm9tX2VjcGFyYW1ldGVycyhvdGhlcl9wYXJhbXMpKQorICAg ICAgICAgICAgfHwgIVRFU1RfaW50X25lKCh0bmlkID0gRUNfR1JPVVBfZ2V0X2N1cnZlX25hbWUo dGdyb3VwKSksIE5JRF91bmRlZikKKyAgICAgICAgICAgIHx8ICFURVNUX3RydWUoYXJlX2VjX25p ZHNfY29tcGF0aWJsZShuaWQsIHRuaWQpKQorICAgICAgICAgICAgfHwgIVRFU1RfaW50X2VxKEVD X0dST1VQX2dldF9hc24xX2ZsYWcodGdyb3VwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPUEVOU1NMX0VDX0VYUExJQ0lUX0NVUlZFKSkgeworICAgICAgICBURVNUX2luZm8oIm5pZCA9 ICVzLCB0bmlkID0gJXMiLCBPQkpfbmlkMnNuKG5pZCksIE9CSl9uaWQyc24odG5pZCkpOworICAg ICAgICBnb3RvIGVycjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEEgbnVsbCBzZWVkIGluIHRo ZSBwYXJhbWV0ZXJzIHNob3VsZCBiZSBpZ25vcmVkLCBhcyBpdCBpcyBvcHRpb25hbDoKKyAgICAg KiBleHBlY3QgYSAibmFtZWQiIGdyb3VwLgorICAgICAqLworICAgIGlmICghVEVTVF9pbnRfZXEo RUNfR1JPVVBfc2V0X3NlZWQodG1wZywgTlVMTCwgMCksIDEpCisgICAgICAgICAgICB8fCAhVEVT VF9wdHIob3RoZXJfcGFyYW1zID0gKnBfbmV4dCsrID0KKyAgICAgICAgICAgICAgICAgICAgICAg ICBFQ19HUk9VUF9nZXRfZWNwYXJhbWV0ZXJzKHRtcGcsIE5VTEwpKQorICAgICAgICAgICAgfHwg IVRFU1RfcHRyKHRncm91cCA9ICpnX25leHQrKyA9CisgICAgICAgICAgICAgICAgICAgICAgICAg IEVDX0dST1VQX25ld19mcm9tX2VjcGFyYW1ldGVycyhvdGhlcl9wYXJhbXMpKQorICAgICAgICAg ICAgfHwgIVRFU1RfaW50X25lKCh0bmlkID0gRUNfR1JPVVBfZ2V0X2N1cnZlX25hbWUodGdyb3Vw KSksIE5JRF91bmRlZikKKyAgICAgICAgICAgIHx8ICFURVNUX3RydWUoYXJlX2VjX25pZHNfY29t cGF0aWJsZShuaWQsIHRuaWQpKQorICAgICAgICAgICAgfHwgIVRFU1RfaW50X2VxKEVDX0dST1VQ X2dldF9hc24xX2ZsYWcodGdyb3VwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUEVO U1NMX0VDX0VYUExJQ0lUX0NVUlZFKSkgeworICAgICAgICBURVNUX2luZm8oIm5pZCA9ICVzLCB0 bmlkID0gJXMiLCBPQkpfbmlkMnNuKG5pZCksIE9CSl9uaWQyc24odG5pZCkpOworICAgICAgICBn b3RvIGVycjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENoZWNrIHRoYXQgY2hhbmdpbmcgYW55 IG9mIHRoZSBnZW5lcmF0b3IgcGFyYW1ldGVycyBkb2VzIG5vdCB5aWVsZCBhCisgICAgICogbWF0 Y2ggd2l0aCB0aGUgYnVpbHQtaW4gY3VydmVzCisgICAgICovCisgICAgaWYgKC8qIE90aGVyIGdl biwgc2FtZSBncm91cCBvcmRlciAmIGNvZmFjdG9yICovCisgICAgICAgICFURVNUX3RydWUoRUNf R1JPVVBfc2V0X2dlbmVyYXRvcih0bXBnLCBvdGhlcl9nZW4sIGdyb3VwX29yZGVyLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBfY29mYWN0b3IpKQorICAg ICAgICB8fCAhVEVTVF9wdHIob3RoZXJfcGFyYW1zID0gKnBfbmV4dCsrID0KKyAgICAgICAgICAg ICAgICAgICAgIEVDX0dST1VQX2dldF9lY3BhcmFtZXRlcnModG1wZywgTlVMTCkpCisgICAgICAg IHx8ICFURVNUX3B0cih0Z3JvdXAgPSAqZ19uZXh0KysgPQorICAgICAgICAgICAgICAgICAgICAg IEVDX0dST1VQX25ld19mcm9tX2VjcGFyYW1ldGVycyhvdGhlcl9wYXJhbXMpKQorICAgICAgICB8 fCAhVEVTVF9pbnRfZXEoKHRuaWQgPSBFQ19HUk9VUF9nZXRfY3VydmVfbmFtZSh0Z3JvdXApKSwg TklEX3VuZGVmKQorICAgICAgICAvKiBTYW1lIGdlbiAmIGNvZmFjdG9yLCBkaWZmZXJlbnQgb3Jk ZXIgKi8KKyAgICAgICAgfHwgIVRFU1RfdHJ1ZShFQ19HUk9VUF9zZXRfZ2VuZXJhdG9yKHRtcGcs IGdyb3VwX2dlbiwgb3RoZXJfb3JkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBncm91cF9jb2ZhY3RvcikpCisgICAgICAgIHx8ICFURVNUX3B0cihvdGhl cl9wYXJhbXMgPSAqcF9uZXh0KysgPQorICAgICAgICAgICAgICAgICAgICAgRUNfR1JPVVBfZ2V0 X2VjcGFyYW1ldGVycyh0bXBnLCBOVUxMKSkKKyAgICAgICAgfHwgIVRFU1RfcHRyKHRncm91cCA9 ICpnX25leHQrKyA9CisgICAgICAgICAgICAgICAgICAgICAgRUNfR1JPVVBfbmV3X2Zyb21fZWNw YXJhbWV0ZXJzKG90aGVyX3BhcmFtcykpCisgICAgICAgIHx8ICFURVNUX2ludF9lcSgodG5pZCA9 IEVDX0dST1VQX2dldF9jdXJ2ZV9uYW1lKHRncm91cCkpLCBOSURfdW5kZWYpCisgICAgICAgIC8q IFRoZSBvcmRlciBpcyBub3QgYW4gb3B0aW9uYWwgZmllbGQsIHNvIHRoaXMgc2hvdWxkIGZhaWwg Ki8KKyAgICAgICAgfHwgIVRFU1RfZmFsc2UoRUNfR1JPVVBfc2V0X2dlbmVyYXRvcih0bXBnLCBn cm91cF9nZW4sIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3JvdXBfY29mYWN0b3IpKQorICAgICAgICAvKiBDaGVjayB0aGF0IGEgd3JvbmcgY29m YWN0b3IgaXMgaWdub3JlZCwgYW5kIHdlIHN0aWxsIG1hdGNoICovCisgICAgICAgIHx8ICFURVNU X3RydWUoRUNfR1JPVVBfc2V0X2dlbmVyYXRvcih0bXBnLCBncm91cF9nZW4sIGdyb3VwX29yZGVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJfY29m YWN0b3IpKQorICAgICAgICB8fCAhVEVTVF9wdHIob3RoZXJfcGFyYW1zID0gKnBfbmV4dCsrID0K KyAgICAgICAgICAgICAgICAgICAgIEVDX0dST1VQX2dldF9lY3BhcmFtZXRlcnModG1wZywgTlVM TCkpCisgICAgICAgIHx8ICFURVNUX3B0cih0Z3JvdXAgPSAqZ19uZXh0KysgPQorICAgICAgICAg ICAgICAgICAgICAgIEVDX0dST1VQX25ld19mcm9tX2VjcGFyYW1ldGVycyhvdGhlcl9wYXJhbXMp KQorICAgICAgICB8fCAhVEVTVF9pbnRfbmUoKHRuaWQgPSBFQ19HUk9VUF9nZXRfY3VydmVfbmFt ZSh0Z3JvdXApKSwgTklEX3VuZGVmKQorICAgICAgICB8fCAhVEVTVF90cnVlKGFyZV9lY19uaWRz X2NvbXBhdGlibGUobmlkLCB0bmlkKSkKKyAgICAgICAgfHwgIVRFU1RfaW50X2VxKEVDX0dST1VQ X2dldF9hc24xX2ZsYWcodGdyb3VwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5TU0xf RUNfRVhQTElDSVRfQ1VSVkUpCisgICAgICAgIC8qIENoZWNrIHRoYXQgaWYgdGhlIGNvZmFjdG9y IGlzIG5vdCBzZXQgdGhlbiBpdCBzdGlsbCBtYXRjaGVzICovCisgICAgICAgIHx8ICFURVNUX3Ry dWUoRUNfR1JPVVBfc2V0X2dlbmVyYXRvcih0bXBnLCBncm91cF9nZW4sIGdyb3VwX29yZGVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkpCisgICAg ICAgIHx8ICFURVNUX3B0cihvdGhlcl9wYXJhbXMgPSAqcF9uZXh0KysgPQorICAgICAgICAgICAg ICAgICAgICAgRUNfR1JPVVBfZ2V0X2VjcGFyYW1ldGVycyh0bXBnLCBOVUxMKSkKKyAgICAgICAg fHwgIVRFU1RfcHRyKHRncm91cCA9ICpnX25leHQrKyA9CisgICAgICAgICAgICAgICAgICAgICAg RUNfR1JPVVBfbmV3X2Zyb21fZWNwYXJhbWV0ZXJzKG90aGVyX3BhcmFtcykpCisgICAgICAgIHx8 ICFURVNUX2ludF9uZSgodG5pZCA9IEVDX0dST1VQX2dldF9jdXJ2ZV9uYW1lKHRncm91cCkpLCBO SURfdW5kZWYpCisgICAgICAgIHx8ICFURVNUX3RydWUoYXJlX2VjX25pZHNfY29tcGF0aWJsZShu aWQsIHRuaWQpKQorICAgICAgICB8fCAhVEVTVF9pbnRfZXEoRUNfR1JPVVBfZ2V0X2FzbjFfZmxh Zyh0Z3JvdXApLAorICAgICAgICAgICAgICAgICAgICAgICAgT1BFTlNTTF9FQ19FWFBMSUNJVF9D VVJWRSkKKyAgICAgICAgLyogY2hlY2sgdGhhdCByZXN0b3JpbmcgdGhlIGdlbmVyYXRvciBwYXNz ZXMgKi8KKyAgICAgICAgfHwgIVRFU1RfdHJ1ZShFQ19HUk9VUF9zZXRfZ2VuZXJhdG9yKHRtcGcs IGdyb3VwX2dlbiwgZ3JvdXBfb3JkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBncm91cF9jb2ZhY3RvcikpCisgICAgICAgIHx8ICFURVNUX3B0cihvdGhl cl9wYXJhbXMgPSAqcF9uZXh0KysgPQorICAgICAgICAgICAgICAgICAgICAgRUNfR1JPVVBfZ2V0 X2VjcGFyYW1ldGVycyh0bXBnLCBOVUxMKSkKKyAgICAgICAgfHwgIVRFU1RfcHRyKHRncm91cCA9 ICpnX25leHQrKyA9CisgICAgICAgICAgICAgICAgICAgICAgRUNfR1JPVVBfbmV3X2Zyb21fZWNw YXJhbWV0ZXJzKG90aGVyX3BhcmFtcykpCisgICAgICAgIHx8ICFURVNUX2ludF9uZSgodG5pZCA9 IEVDX0dST1VQX2dldF9jdXJ2ZV9uYW1lKHRncm91cCkpLCBOSURfdW5kZWYpCisgICAgICAgIHx8 ICFURVNUX3RydWUoYXJlX2VjX25pZHNfY29tcGF0aWJsZShuaWQsIHRuaWQpKQorICAgICAgICB8 fCAhVEVTVF9pbnRfZXEoRUNfR1JPVVBfZ2V0X2FzbjFfZmxhZyh0Z3JvdXApLAorICAgICAgICAg ICAgICAgICAgICAgICAgT1BFTlNTTF9FQ19FWFBMSUNJVF9DVVJWRSkpCisgICAgICAgIGdvdG8g ZXJyOworCisgICAgcmV0ID0gMTsKK2VycjoKKyAgICBmb3IgKGdfbmV4dCA9ICZnX2FyeVswXTsg Z19uZXh0IDwgZ19hcnkgKyBPU1NMX05FTEVNKGdfYXJ5KTsgZ19uZXh0KyspCisgICAgICAgIEVD X0dST1VQX2ZyZWUoKmdfbmV4dCk7CisgICAgZm9yIChwX25leHQgPSAmcF9hcnlbMF07IHBfbmV4 dCA8IHBfYXJ5ICsgT1NTTF9ORUxFTShnX2FyeSk7IHBfbmV4dCsrKQorICAgICAgICBFQ1BBUkFN RVRFUlNfZnJlZSgqcF9uZXh0KTsKKyAgICBFQ1BBUkFNRVRFUlNfZnJlZShwYXJhbXMpOworICAg IEVDX1BPSU5UX2ZyZWUob3RoZXJfZ2VuKTsKKyAgICBFQ19HUk9VUF9mcmVlKHRtcGcpOworICAg IEVDX0dST1VQX2ZyZWUoZ3JvdXApOworICAgIEJOX0NUWF9lbmQoYm5fY3R4KTsKKyAgICBCTl9D VFhfZnJlZShibl9jdHgpOworICAgIHJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBpbnQgcGFyYW1l dGVyX3Rlc3Qodm9pZCkKIHsKICAgICBFQ19HUk9VUCAqZ3JvdXAgPSBOVUxMLCAqZ3JvdXAyID0g TlVMTDsKQEAgLTg4Niw2ICsxMTUxLDE3OSBAQCBlcnI6CiAgICAgT1BFTlNTTF9mcmVlKGJ1Zik7 CiAgICAgcmV0dXJuIHI7CiB9CisKKy8qLQorICogcmFuZG9tIDI1Ni1iaXQgZXhwbGljaXQgcGFy YW1ldGVycyBjdXJ2ZSwgY29mYWN0b3IgYWJzZW50CisgKiBvcmRlcjogICAgMHgwYzM4ZDk2YTlm ODkyYjg4NzcyZWMyZTM5NjE0YTgyZjRmICgxMzIgYml0KQorICogY29mYWN0b3I6ICAgMHgxMmJj OTQ3ODUyNTEyOTdhYmZhZmRkZjE1NjUxMDBkYSAoMTI1IGJpdCkKKyAqLworc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGNoYXIgcGFyYW1zX2NmX3Bhc3NbXSA9IHsKKyAgICAweDMwLCAweDgxLCAweGNk LCAweDAyLCAweDAxLCAweDAxLCAweDMwLCAweDJjLCAweDA2LCAweDA3LCAweDJhLCAweDg2LAor ICAgIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDEsIDB4MDEsIDB4MDIsIDB4MjEsIDB4MDAsIDB4ZTUs IDB4MDAsIDB4MWYsIDB4YzUsCisgICAgMHhjYSwgMHg3MSwgMHg5ZCwgMHg4ZSwgMHhmNywgMHgw NywgMHg0YiwgMHg0OCwgMHgzNywgMHhmOSwgMHgzMywgMHgyZCwKKyAgICAweDcxLCAweGJmLCAw eDc5LCAweGU3LCAweGRjLCAweDkxLCAweGMyLCAweGZmLCAweGI2LCAweDdiLCAweGMzLCAweDkz LAorICAgIDB4NDQsIDB4ODgsIDB4ZTYsIDB4OTEsIDB4MzAsIDB4NDQsIDB4MDQsIDB4MjAsIDB4 ZTUsIDB4MDAsIDB4MWYsIDB4YzUsCisgICAgMHhjYSwgMHg3MSwgMHg5ZCwgMHg4ZSwgMHhmNywg MHgwNywgMHg0YiwgMHg0OCwgMHgzNywgMHhmOSwgMHgzMywgMHgyZCwKKyAgICAweDcxLCAweGJm LCAweDc5LCAweGU3LCAweGRjLCAweDkxLCAweGMyLCAweGZmLCAweGI2LCAweDdiLCAweGMzLCAw eDkzLAorICAgIDB4NDQsIDB4ODgsIDB4ZTYsIDB4OGUsIDB4MDQsIDB4MjAsIDB4MTgsIDB4OGMs IDB4NTksIDB4NTcsIDB4YzQsIDB4YmMsCisgICAgMHg4NSwgMHg1NywgMHhjMywgMHg2NiwgMHg5 ZiwgMHg4OSwgMHhkNSwgMHg5MiwgMHgwZCwgMHg3ZSwgMHg0MiwgMHgyNywKKyAgICAweDA3LCAw eDY0LCAweGFhLCAweDI2LCAweGVkLCAweDg5LCAweGM0LCAweDA5LCAweDA1LCAweDRkLCAweGM3 LCAweDIzLAorICAgIDB4NDcsIDB4ZGEsIDB4MDQsIDB4NDEsIDB4MDQsIDB4MWIsIDB4NmIsIDB4 NDEsIDB4MGIsIDB4ZjksIDB4ZmIsIDB4NzcsCisgICAgMHhmZCwgMHg1MCwgMHhiNywgMHgzZSwg MHgyMywgMHhhMywgMHhlYywgMHg5YSwgMHgzYiwgMHgwOSwgMHgzMSwgMHg2YiwKKyAgICAweGZh LCAweGY2LCAweGNlLCAweDFmLCAweGZmLCAweGViLCAweDU3LCAweDkzLCAweDI0LCAweDcwLCAw eGYzLCAweGY0LAorICAgIDB4YmEsIDB4N2UsIDB4ZmEsIDB4ODYsIDB4NmUsIDB4MTksIDB4ODks IDB4ZTMsIDB4NTUsIDB4NmQsIDB4NWEsIDB4ZTksCisgICAgMHhjMCwgMHgzZCwgMHhiYywgMHhm YiwgMHhhZiwgMHhhZCwgMHhkNCwgMHg3ZSwgMHhhNiwgMHhlNSwgMHhmYSwgMHgxYSwKKyAgICAw eDU4LCAweDA3LCAweDllLCAweDhmLCAweDBkLCAweDNiLCAweGY3LCAweDM4LCAweGNhLCAweDAy LCAweDExLCAweDBjLAorICAgIDB4MzgsIDB4ZDksIDB4NmEsIDB4OWYsIDB4ODksIDB4MmIsIDB4 ODgsIDB4NzcsIDB4MmUsIDB4YzIsIDB4ZTMsIDB4OTYsCisgICAgMHgxNCwgMHhhOCwgMHgyZiwg MHg0ZgorfTsKKworLyotCisgKiByYW5kb20gMjU2LWJpdCBleHBsaWNpdCBwYXJhbWV0ZXJzIGN1 cnZlLCBjb2ZhY3RvciBhYnNlbnQKKyAqIG9yZGVyOiAgICAweDA0NWE3NWMwYzE3MjI4ZWJkOWIx NjlhMTBlMzRhMjIxMDEgKDEzMSBiaXQpCisgKiBjb2ZhY3RvcjogICAweDJlMTM0YjRlZGU4MjY0 OWY2N2EyZTU1OWQzNjFlNWZlICgxMjYgYml0KQorICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQg Y2hhciBwYXJhbXNfY2ZfZmFpbFtdID0geworICAgIDB4MzAsIDB4ODEsIDB4Y2QsIDB4MDIsIDB4 MDEsIDB4MDEsIDB4MzAsIDB4MmMsIDB4MDYsIDB4MDcsIDB4MmEsIDB4ODYsCisgICAgMHg0OCwg MHhjZSwgMHgzZCwgMHgwMSwgMHgwMSwgMHgwMiwgMHgyMSwgMHgwMCwgMHhjOCwgMHg5NSwgMHgy NywgMHgzNywKKyAgICAweGU4LCAweGUxLCAweGZkLCAweGNjLCAweGY5LCAweDZlLCAweDBjLCAw eGE2LCAweDIxLCAweGMxLCAweDdkLCAweDZiLAorICAgIDB4OWQsIDB4NDQsIDB4NDIsIDB4ZWEs IDB4NzMsIDB4NGUsIDB4MDQsIDB4YjYsIDB4YWMsIDB4NjIsIDB4NTAsIDB4ZDAsCisgICAgMHgz MywgMHhjMiwgMHhlYSwgMHgxMywgMHgzMCwgMHg0NCwgMHgwNCwgMHgyMCwgMHhjOCwgMHg5NSwg MHgyNywgMHgzNywKKyAgICAweGU4LCAweGUxLCAweGZkLCAweGNjLCAweGY5LCAweDZlLCAweDBj LCAweGE2LCAweDIxLCAweGMxLCAweDdkLCAweDZiLAorICAgIDB4OWQsIDB4NDQsIDB4NDIsIDB4 ZWEsIDB4NzMsIDB4NGUsIDB4MDQsIDB4YjYsIDB4YWMsIDB4NjIsIDB4NTAsIDB4ZDAsCisgICAg MHgzMywgMHhjMiwgMHhlYSwgMHgxMCwgMHgwNCwgMHgyMCwgMHhiZiwgMHhhNiwgMHhhOCwgMHgw NSwgMHgxZCwgMHgwOSwKKyAgICAweGFjLCAweDcwLCAweDM5LCAweGJiLCAweDRkLCAweGIyLCAw eDkwLCAweDhhLCAweDE1LCAweDQxLCAweDE0LCAweDFkLAorICAgIDB4MTEsIDB4ODYsIDB4OWYs IDB4MTMsIDB4YTIsIDB4NjMsIDB4MWEsIDB4ZGEsIDB4OTUsIDB4MjIsIDB4NGQsIDB4MDIsCisg ICAgMHgxNSwgMHgwYSwgMHgwNCwgMHg0MSwgMHgwNCwgMHhhZiwgMHgxNiwgMHg3MSwgMHhmOSwg MHhjNCwgMHhjOCwgMHg1OSwKKyAgICAweDFkLCAweGEzLCAweDZmLCAweGU3LCAweGMzLCAweDU3 LCAweGExLCAweGZhLCAweDlmLCAweDQ5LCAweDdjLCAweDExLAorICAgIDB4MjcsIDB4MDUsIDB4 YTAsIDB4N2YsIDB4ZmYsIDB4ZjksIDB4ZTAsIDB4ZTcsIDB4OTIsIDB4ZGQsIDB4OWMsIDB4MjQs CisgICAgMHg4ZSwgMHhjNywgMHhiOSwgMHg1MiwgMHg3MSwgMHgzZiwgMHhiYywgMHg3ZiwgMHg2 YSwgMHg5ZiwgMHgzNSwgMHg3MCwKKyAgICAweGUxLCAweDI3LCAweGQ1LCAweDM1LCAweDhhLCAw eDEzLCAweGZhLCAweGE4LCAweDMzLCAweDNlLCAweGQ0LCAweDczLAorICAgIDB4MWMsIDB4MTQs IDB4NTgsIDB4OWUsIDB4YzcsIDB4MGEsIDB4ODcsIDB4NjUsIDB4OGQsIDB4MDIsIDB4MTEsIDB4 MDQsCisgICAgMHg1YSwgMHg3NSwgMHhjMCwgMHhjMSwgMHg3MiwgMHgyOCwgMHhlYiwgMHhkOSwg MHhiMSwgMHg2OSwgMHhhMSwgMHgwZSwKKyAgICAweDM0LCAweGEyLCAweDIxLCAweDAxCit9Owor CisvKi0KKyAqIFRlc3QgdHdvIHJhbmRvbSAyNTYtYml0IGV4cGxpY2l0IHBhcmFtZXRlcnMgY3Vy dmVzIHdpdGggYWJzZW50IGNvZmFjdG9yLgorICogVGhlIHR3byBjdXJ2ZXMgYXJlIGNob3NlbiB0 byByb3VnaGx5IHN0cmFkZGxlIHRoZSBib3VuZHMgYXQgd2hpY2ggdGhlIGxpYgorICogY2FuIGNv bXB1dGUgdGhlIGNvZmFjdG9yIGF1dG9tYXRpY2FsbHksIHJvdWdobHkgNCpzcXJ0KHApLiBTbyB0 ZXN0IHRoYXQ6CisgKgorICogLSBwYXJhbXNfY2ZfcGFzczogb3JkZXIgaXMgc3VmZmljaWVudGx5 IGNsb3NlIHRvIHAgdG8gY29tcHV0ZSBjb2ZhY3RvcgorICogLSBwYXJhbXNfY2ZfZmFpbDogb3Jk ZXIgaXMgdG9vIGZhciBhd2F5IGZyb20gcCB0byBjb21wdXRlIGNvZmFjdG9yCisgKgorICogRm9y IHN0YW5kYXJkcy1jb21wbGlhbnQgY3VydmVzLCBjb2ZhY3RvciBpcyBjaG9zZW4gYXMgc21hbGwg YXMgcG9zc2libGUuCisgKiBTbyB5b3UgY2FuIHNlZSBuZWl0aGVyIG9mIHRoZXNlIGN1cnZlcyBh cmUgZml0IGZvciBjcnlwdG9ncmFwaGljIHVzZS4KKyAqCisgKiBTb21lIHN0YW5kYXJkcyBldmVu IG1hbmRhdGUgYW4gdXBwZXIgYm91bmQgb24gdGhlIGNvZmFjdG9yLCBlLmcuIFNFQ0cxIHYyOgor ICogaCA8PSAyKioodC84KSB3aGVyZSB0IGlzIHRoZSBzZWN1cml0eSBsZXZlbCBvZiB0aGUgY3Vy dmUsIGZvciB3aGljaCB0aGUgbGliCisgKiB3aWxsIGFsd2F5cyBzdWNjZWVkIGluIGNvbXB1dGlu ZyB0aGUgY29mYWN0b3IuIE5laXRoZXIgb2YgdGhlc2UgY3VydmVzCisgKiBjb25mb3JtIHRvIHRo YXQgLS0gdGhpcyBpcyBqdXN0IHJvYnVzdG5lc3MgdGVzdGluZy4KKyAqLworc3RhdGljIGludCBj b2ZhY3Rvcl9yYW5nZV90ZXN0KHZvaWQpCit7CisgICAgRUNfR1JPVVAgKmdyb3VwID0gTlVMTDsK KyAgICBCSUdOVU0gKmNmID0gTlVMTDsKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBjb25zdCB1bnNp Z25lZCBjaGFyICpiMSA9IChjb25zdCB1bnNpZ25lZCBjaGFyICopcGFyYW1zX2NmX2ZhaWw7Cisg ICAgY29uc3QgdW5zaWduZWQgY2hhciAqYjIgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKXBhcmFt c19jZl9wYXNzOworCisgICAgaWYgKCFURVNUX3B0cihncm91cCA9IGQyaV9FQ1BLUGFyYW1ldGVy cyhOVUxMLCAmYjEsIHNpemVvZihwYXJhbXNfY2ZfZmFpbCkpKQorICAgICAgICB8fCAhVEVTVF9C Tl9lcV96ZXJvKEVDX0dST1VQX2dldDBfY29mYWN0b3IoZ3JvdXApKQorICAgICAgICB8fCAhVEVT VF9wdHIoZ3JvdXAgPSBkMmlfRUNQS1BhcmFtZXRlcnMoJmdyb3VwLCAmYjIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocGFyYW1zX2NmX3Bh c3MpKSkKKyAgICAgICAgfHwgIVRFU1RfaW50X2d0KEJOX2hleDJibigmY2YsICIxMmJjOTQ3ODUy NTEyOTdhYmZhZmRkZjE1NjUxMDBkYSIpLCAwKQorICAgICAgICB8fCAhVEVTVF9CTl9lcShjZiwg RUNfR1JPVVBfZ2V0MF9jb2ZhY3Rvcihncm91cCkpKQorICAgICAgICBnb3RvIGVycjsKKyAgICBy ZXQgPSAxOworIGVycjoKKyAgICBCTl9mcmVlKGNmKTsKKyAgICBFQ19HUk9VUF9mcmVlKGdyb3Vw KTsKKyAgICByZXR1cm4gcmV0OworfQorCisvKi0KKyAqIEZvciBuYW1lZCBjdXJ2ZXMsIHRlc3Qg dGhhdDoKKyAqIC0gdGhlIGxpYiBjb3JyZWN0bHkgY29tcHV0ZXMgdGhlIGNvZmFjdG9yIGlmIHBh c3NlZCBhIE5VTEwgb3IgemVybyBjb2ZhY3RvcgorICogLSBhIG5vbnNlbnNpY2FsIGNvZmFjdG9y IHRocm93cyBhbiBlcnJvciAobmVnYXRpdmUgdGVzdCkKKyAqIC0gbm9uc2Vuc2ljYWwgb3JkZXJz IHRocm93IGVycm9ycyAobmVnYXRpdmUgdGVzdHMpCisgKi8KK3N0YXRpYyBpbnQgY2FyZGluYWxp dHlfdGVzdChpbnQgbikKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBpbnQgbmlkID0gY3VydmVz W25dLm5pZDsKKyAgICBCTl9DVFggKmN0eCA9IE5VTEw7CisgICAgRUNfR1JPVVAgKmcxID0gTlVM TCwgKmcyID0gTlVMTDsKKyAgICBFQ19QT0lOVCAqZzJfZ2VuID0gTlVMTDsKKyAgICBCSUdOVU0g KmcxX3AgPSBOVUxMLCAqZzFfYSA9IE5VTEwsICpnMV9iID0gTlVMTCwgKmcxX3ggPSBOVUxMLCAq ZzFfeSA9IE5VTEwsCisgICAgICAgICAgICpnMV9vcmRlciA9IE5VTEwsICpnMV9jZiA9IE5VTEws ICpnMl9jZiA9IE5VTEw7CisKKyAgICBURVNUX2luZm8oIkN1cnZlICVzIGNhcmRpbmFsaXR5IHRl c3QiLCBPQkpfbmlkMnNuKG5pZCkpOworCisgICAgaWYgKCFURVNUX3B0cihjdHggPSBCTl9DVFhf bmV3KCkpCisgICAgICAgIHx8ICFURVNUX3B0cihnMSA9IEVDX0dST1VQX25ld19ieV9jdXJ2ZV9u YW1lKG5pZCkpCisgICAgICAgIHx8ICFURVNUX3B0cihnMiA9IEVDX0dST1VQX25ldyhFQ19HUk9V UF9tZXRob2Rfb2YoZzEpKSkpIHsKKyAgICAgICAgRUNfR1JPVVBfZnJlZShnMSk7CisgICAgICAg IEVDX0dST1VQX2ZyZWUoZzIpOworICAgICAgICBCTl9DVFhfZnJlZShjdHgpOworICAgICAgICBy ZXR1cm4gMDsKKyAgICB9CisKKyAgICBCTl9DVFhfc3RhcnQoY3R4KTsKKyAgICBnMV9wID0gQk5f Q1RYX2dldChjdHgpOworICAgIGcxX2EgPSBCTl9DVFhfZ2V0KGN0eCk7CisgICAgZzFfYiA9IEJO X0NUWF9nZXQoY3R4KTsKKyAgICBnMV94ID0gQk5fQ1RYX2dldChjdHgpOworICAgIGcxX3kgPSBC Tl9DVFhfZ2V0KGN0eCk7CisgICAgZzFfb3JkZXIgPSBCTl9DVFhfZ2V0KGN0eCk7CisgICAgZzFf Y2YgPSBCTl9DVFhfZ2V0KGN0eCk7CisKKyAgICBpZiAoIVRFU1RfcHRyKGcyX2NmID0gQk5fQ1RY X2dldChjdHgpKQorICAgICAgICAvKiBwdWxsIG91dCB0aGUgZXhwbGljaXQgY3VydmUgcGFyYW1l dGVycyAqLworICAgICAgICB8fCAhVEVTVF90cnVlKEVDX0dST1VQX2dldF9jdXJ2ZShnMSwgZzFf cCwgZzFfYSwgZzFfYiwgY3R4KSkKKyAgICAgICAgfHwgIVRFU1RfdHJ1ZShFQ19QT0lOVF9nZXRf YWZmaW5lX2Nvb3JkaW5hdGVzKGcxLAorICAgICAgICAgICAgICAgICAgICAgIEVDX0dST1VQX2dl dDBfZ2VuZXJhdG9yKGcxKSwgZzFfeCwgZzFfeSwgY3R4KSkKKyAgICAgICAgfHwgIVRFU1RfdHJ1 ZShCTl9jb3B5KGcxX29yZGVyLCBFQ19HUk9VUF9nZXQwX29yZGVyKGcxKSkpCisgICAgICAgIHx8 ICFURVNUX3RydWUoRUNfR1JPVVBfZ2V0X2NvZmFjdG9yKGcxLCBnMV9jZiwgY3R4KSkKKyAgICAg ICAgLyogY29uc3RydWN0IGcyIG1hbnVhbGx5IHdpdGggZzEgcGFyYW1ldGVycyAqLworICAgICAg ICB8fCAhVEVTVF90cnVlKEVDX0dST1VQX3NldF9jdXJ2ZShnMiwgZzFfcCwgZzFfYSwgZzFfYiwg Y3R4KSkKKyAgICAgICAgfHwgIVRFU1RfcHRyKGcyX2dlbiA9IEVDX1BPSU5UX25ldyhnMikpCisg ICAgICAgIHx8ICFURVNUX3RydWUoRUNfUE9JTlRfc2V0X2FmZmluZV9jb29yZGluYXRlcyhnMiwg ZzJfZ2VuLCBnMV94LCBnMV95LCBjdHgpKQorICAgICAgICAvKiBwYXNzIE5VTEwgY29mYWN0b3I6 IGxpYiBzaG91bGQgY29tcHV0ZSBpdCAqLworICAgICAgICB8fCAhVEVTVF90cnVlKEVDX0dST1VQ X3NldF9nZW5lcmF0b3IoZzIsIGcyX2dlbiwgZzFfb3JkZXIsIE5VTEwpKQorICAgICAgICB8fCAh VEVTVF90cnVlKEVDX0dST1VQX2dldF9jb2ZhY3RvcihnMiwgZzJfY2YsIGN0eCkpCisgICAgICAg IHx8ICFURVNUX0JOX2VxKGcxX2NmLCBnMl9jZikKKyAgICAgICAgLyogcGFzcyB6ZXJvIGNvZmFj dG9yOiBsaWIgc2hvdWxkIGNvbXB1dGUgaXQgKi8KKyAgICAgICAgfHwgIVRFU1RfdHJ1ZShCTl9z ZXRfd29yZChnMl9jZiwgMCkpCisgICAgICAgIHx8ICFURVNUX3RydWUoRUNfR1JPVVBfc2V0X2dl bmVyYXRvcihnMiwgZzJfZ2VuLCBnMV9vcmRlciwgZzJfY2YpKQorICAgICAgICB8fCAhVEVTVF90 cnVlKEVDX0dST1VQX2dldF9jb2ZhY3RvcihnMiwgZzJfY2YsIGN0eCkpCisgICAgICAgIHx8ICFU RVNUX0JOX2VxKGcxX2NmLCBnMl9jZikKKyAgICAgICAgLyogbmVnYXRpdmUgdGVzdCBmb3IgaW52 YWxpZCBjb2ZhY3RvciAqLworICAgICAgICB8fCAhVEVTVF90cnVlKEJOX3NldF93b3JkKGcyX2Nm LCAwKSkKKyAgICAgICAgfHwgIVRFU1RfdHJ1ZShCTl9zdWIoZzJfY2YsIGcyX2NmLCBCTl92YWx1 ZV9vbmUoKSkpCisgICAgICAgIHx8ICFURVNUX2ZhbHNlKEVDX0dST1VQX3NldF9nZW5lcmF0b3Io ZzIsIGcyX2dlbiwgZzFfb3JkZXIsIGcyX2NmKSkKKyAgICAgICAgLyogbmVnYXRpdmUgdGVzdCBm b3IgTlVMTCBvcmRlciAqLworICAgICAgICB8fCAhVEVTVF9mYWxzZShFQ19HUk9VUF9zZXRfZ2Vu ZXJhdG9yKGcyLCBnMl9nZW4sIE5VTEwsIE5VTEwpKQorICAgICAgICAvKiBuZWdhdGl2ZSB0ZXN0 IGZvciB6ZXJvIG9yZGVyICovCisgICAgICAgIHx8ICFURVNUX3RydWUoQk5fc2V0X3dvcmQoZzFf b3JkZXIsIDApKQorICAgICAgICB8fCAhVEVTVF9mYWxzZShFQ19HUk9VUF9zZXRfZ2VuZXJhdG9y KGcyLCBnMl9nZW4sIGcxX29yZGVyLCBOVUxMKSkKKyAgICAgICAgLyogbmVnYXRpdmUgdGVzdCBm b3IgbmVnYXRpdmUgb3JkZXIgKi8KKyAgICAgICAgfHwgIVRFU1RfdHJ1ZShCTl9zZXRfd29yZChn Ml9jZiwgMCkpCisgICAgICAgIHx8ICFURVNUX3RydWUoQk5fc3ViKGcyX2NmLCBnMl9jZiwgQk5f dmFsdWVfb25lKCkpKQorICAgICAgICB8fCAhVEVTVF9mYWxzZShFQ19HUk9VUF9zZXRfZ2VuZXJh dG9yKGcyLCBnMl9nZW4sIGcxX29yZGVyLCBOVUxMKSkKKyAgICAgICAgLyogbmVnYXRpdmUgdGVz dCBmb3IgdG9vIGxhcmdlIG9yZGVyICovCisgICAgICAgIHx8ICFURVNUX3RydWUoQk5fbHNoaWZ0 KGcxX29yZGVyLCBnMV9wLCAyKSkKKyAgICAgICAgfHwgIVRFU1RfZmFsc2UoRUNfR1JPVVBfc2V0 X2dlbmVyYXRvcihnMiwgZzJfZ2VuLCBnMV9vcmRlciwgTlVMTCkpKQorICAgICAgICBnb3RvIGVy cjsKKyAgICByZXQgPSAxOworIGVycjoKKyAgICBFQ19QT0lOVF9mcmVlKGcyX2dlbik7CisgICAg RUNfR1JPVVBfZnJlZShnMSk7CisgICAgRUNfR1JPVVBfZnJlZShnMik7CisgICAgQk5fQ1RYX2Vu ZChjdHgpOworICAgIEJOX0NUWF9mcmVlKGN0eCk7CisgICAgcmV0dXJuIHJldDsKK30KICNlbmRp ZgogCiBpbnQgc2V0dXBfdGVzdHModm9pZCkKQEAgLTg5Nyw2ICsxMzM1LDggQEAgaW50IHNldHVw X3Rlc3RzKHZvaWQpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgQUREX1RFU1QocGFyYW1ldGVy X3Rlc3QpOworICAgIEFERF9URVNUKGNvZmFjdG9yX3JhbmdlX3Rlc3QpOworICAgIEFERF9BTExf VEVTVFMoY2FyZGluYWxpdHlfdGVzdCwgY3J2X2xlbik7CiAgICAgQUREX1RFU1QocHJpbWVfZmll bGRfdGVzdHMpOwogIyBpZm5kZWYgT1BFTlNTTF9OT19FQzJNCiAgICAgQUREX1RFU1QoY2hhcjJf ZmllbGRfdGVzdHMpOwpAQCAtOTA4LDcgKzEzNDgsOSBAQCBpbnQgc2V0dXBfdGVzdHModm9pZCkK ICMgZW5kaWYKICAgICBBRERfQUxMX1RFU1RTKGludGVybmFsX2N1cnZlX3Rlc3QsIGNydl9sZW4p OwogICAgIEFERF9BTExfVEVTVFMoaW50ZXJuYWxfY3VydmVfdGVzdF9tZXRob2QsIGNydl9sZW4p OwotI2VuZGlmCisKKyAgICBBRERfQUxMX1RFU1RTKGNoZWNrX25hbWVkX2N1cnZlX2Zyb21fZWNw YXJhbWV0ZXJzLCBjcnZfbGVuKTsKKyNlbmRpZiAvKiBPUEVOU1NMX05PX0VDICovCiAgICAgcmV0 dXJuIDE7CiB9CiAKCmRpZmYgLS1naXQgYS9vcGVuc3NsLTEuMS4wLW5vLWh0bWwucGF0Y2ggYi9v cGVuc3NsLTEuMS4wLW5vLWh0bWwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGY2YTk0MWUuLjAwMDAwMDAKLS0tIGEvb3BlbnNzbC0xLjEuMC1uby1odG1sLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMC1wcmU1L0Nv bmZpZ3VyYXRpb25zL3VuaXgtTWFrZWZpbGUudG1wbC5ub2h0bWwgb3BlbnNzbC0xLjEuMC1wcmU1 L0NvbmZpZ3VyYXRpb25zL3VuaXgtTWFrZWZpbGUudG1wbAotLS0tIG9wZW5zc2wtMS4xLjAtcHJl NS9Db25maWd1cmF0aW9ucy91bml4LU1ha2VmaWxlLnRtcGwubm8taHRtbAkyMDE2LTA0LTE5IDE2 OjU3OjUyLjAwMDAwMDAwMCArMDIwMAotKysrIG9wZW5zc2wtMS4xLjAtcHJlNS9Db25maWd1cmF0 aW9ucy91bml4LU1ha2VmaWxlLnRtcGwJMjAxNi0wNy0xOCAxMzo1ODo1NS4wNjAxMDYyNDMgKzAy MDAKLUBAIC0yODgsNyArMjg4LDcgQEAgaW5zdGFsbF9zdzogYWxsIGluc3RhbGxfZGV2IGluc3Rh bGxfZW5naQotIAotIHVuaW5zdGFsbF9zdzogdW5pbnN0YWxsX3J1bnRpbWUgdW5pbnN0YWxsX2Vu Z2luZXMgdW5pbnN0YWxsX2RldgotIAotLWluc3RhbGxfZG9jczogaW5zdGFsbF9tYW5fZG9jcyBp bnN0YWxsX2h0bWxfZG9jcwotK2luc3RhbGxfZG9jczogaW5zdGFsbF9tYW5fZG9jcwotIAotIHVu aW5zdGFsbF9kb2NzOiB1bmluc3RhbGxfbWFuX2RvY3MgdW5pbnN0YWxsX2h0bWxfZG9jcwotIAkk KFJNKSAtciAtdiAkKERFU1RESVIpJChET0NESVIpCgpkaWZmIC0tZ2l0IGEvb3BlbnNzbC0xLjEu MS1ldnAta2RmLnBhdGNoIGIvb3BlbnNzbC0xLjEuMS1ldnAta2RmLnBhdGNoCmluZGV4IDZhNzNh NjEuLmIyNWRmZmIgMTAwNjQ0Ci0tLSBhL29wZW5zc2wtMS4xLjEtZXZwLWtkZi5wYXRjaAorKysg Yi9vcGVuc3NsLTEuMS4xLWV2cC1rZGYucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1kaWZmIC11cCBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vZXJyL29wZW5zc2wudHh0LmV2cC1rZGYgb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2Vyci9vcGVuc3NsLnR4dAotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lcnIv b3BlbnNzbC50eHQuZXZwLWtkZgkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAot KysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lcnIvb3BlbnNzbC50eHQJMjAxOS0wMi0yOCAxMzow NTowNS42NTE1MjE0NzQgKzAxMDAKLUBAIC03NDMsNiArNzQzLDkgQEAgRVZQX0ZfRVZQX0RJR0VT VElOSVRfRVg6MTI4OkVWUF9EaWdlc3RJbgorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRv L2Vyci9vcGVuc3NsLnR4dC5ldnAta2RmIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9lcnIvb3BlbnNz bC50eHQKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXJyL29wZW5zc2wudHh0LmV2cC1rZGYJ MjAxOS0wOS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9j cnlwdG8vZXJyL29wZW5zc2wudHh0CTIwMTktMDktMTMgMTU6NDU6MDEuNzIzMDAxMzIzICswMjAw CitAQCAtNzQ3LDYgKzc0Nyw5IEBAIEVWUF9GX0VWUF9ESUdFU1RJTklUX0VYOjEyODpFVlBfRGln ZXN0SW4KICBFVlBfRl9FVlBfRU5DUllQVERFQ1JZUFRVUERBVEU6MjE5OmV2cF9FbmNyeXB0RGVj cnlwdFVwZGF0ZQogIEVWUF9GX0VWUF9FTkNSWVBURklOQUxfRVg6MTI3OkVWUF9FbmNyeXB0Rmlu YWxfZXgKICBFVlBfRl9FVlBfRU5DUllQVFVQREFURToxNjc6RVZQX0VuY3J5cHRVcGRhdGUKQEAg LTExLDcgKzExLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2Vyci9vcGVuc3Ns LnR4dC5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lcnIKICBFVlBfRl9FVlBfTURfQ1RY X0NPUFlfRVg6MTEwOkVWUF9NRF9DVFhfY29weV9leAogIEVWUF9GX0VWUF9NRF9TSVpFOjE2MjpF VlBfTURfc2l6ZQogIEVWUF9GX0VWUF9PUEVOSU5JVDoxMDI6RVZQX09wZW5Jbml0Ci1AQCAtODA1 LDExICs4MDgsMzAgQEAgRVZQX0ZfUEtDUzVfUEJFX0tFWUlWR0VOOjExNzpQS0NTNV9QQkVfawor QEAgLTgwOSwxMiArODEyLDMxIEBAIEVWUF9GX1BLQ1M1X1BCRV9LRVlJVkdFTjoxMTc6UEtDUzVf UEJFX2sKICBFVlBfRl9QS0NTNV9WMl9QQkVfS0VZSVZHRU46MTE4OlBLQ1M1X3YyX1BCRV9rZXlp dmdlbgogIEVWUF9GX1BLQ1M1X1YyX1BCS0RGMl9LRVlJVkdFTjoxNjQ6UEtDUzVfdjJfUEJLREYy X2tleWl2Z2VuCiAgRVZQX0ZfUEtDUzVfVjJfU0NSWVBUX0tFWUlWR0VOOjE4MDpQS0NTNV92Ml9z Y3J5cHRfa2V5aXZnZW4KQEAgLTE5LDYgKzE5LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL2Vyci9vcGVuc3NsLnR4dC5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lcnIK ICBFVlBfRl9QS0VZX1NFVF9UWVBFOjE1ODpwa2V5X3NldF90eXBlCiAgRVZQX0ZfUkMyX01BR0lD X1RPX01FVEg6MTA5OnJjMl9tYWdpY190b19tZXRoCiAgRVZQX0ZfUkM1X0NUUkw6MTI1OnJjNV9j dHJsCisgRVZQX0ZfUl8zMl8xMl8xNl9JTklUX0tFWToyNDI6cl8zMl8xMl8xNl9pbml0X2tleQog IEVWUF9GX1MzOTBYX0FFU19HQ01fQ1RSTDoyMDE6czM5MHhfYWVzX2djbV9jdHJsCiArRVZQX0Zf U0NSWVBUX0FMRzoyMjg6c2NyeXB0X2FsZwogIEVWUF9GX1VQREFURToxNzM6dXBkYXRlCkBAIC00 Miw3ICs0Myw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lcnIvb3BlbnNzbC50 eHQuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXJyCiAgS0RGX0ZfUEtFWV9IS0RGX0NU UkxfU1RSOjEwMzpwa2V5X2hrZGZfY3RybF9zdHIKICBLREZfRl9QS0VZX0hLREZfREVSSVZFOjEw Mjpwa2V5X2hrZGZfZGVyaXZlCiAgS0RGX0ZfUEtFWV9IS0RGX0lOSVQ6MTA4OnBrZXlfaGtkZl9p bml0Ci1AQCAtODIxLDYgKzg0Myw3IEBAIEtERl9GX1BLRVlfU0NSWVBUX1NFVF9NRU1CVUY6MTA3 OnBrZXlfc2MKK0BAIC04MjYsNiArODQ4LDcgQEAgS0RGX0ZfUEtFWV9TQ1JZUFRfU0VUX01FTUJV RjoxMDc6cGtleV9zYwogIEtERl9GX1BLRVlfVExTMV9QUkZfQ1RSTF9TVFI6MTAwOnBrZXlfdGxz MV9wcmZfY3RybF9zdHIKICBLREZfRl9QS0VZX1RMUzFfUFJGX0RFUklWRToxMDE6cGtleV90bHMx X3ByZl9kZXJpdmUKICBLREZfRl9QS0VZX1RMUzFfUFJGX0lOSVQ6MTEwOnBrZXlfdGxzMV9wcmZf aW5pdApAQCAtNTAsNyArNTEsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXJy L29wZW5zc2wudHh0LmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2VycgogIEtERl9GX1RM UzFfUFJGX0FMRzoxMTE6dGxzMV9wcmZfYWxnCiAgT0JKX0ZfT0JKX0FERF9PQkpFQ1Q6MTA1Ok9C Sl9hZGRfb2JqZWN0CiAgT0JKX0ZfT0JKX0FERF9TSUdJRDoxMDc6T0JKX2FkZF9zaWdpZAotQEAg LTIyNjQsNiArMjI4Nyw3IEBAIEVWUF9SX09OTFlfT05FU0hPVF9TVVBQT1JURUQ6MTc3Om9ubHkg b24KK0BAIC0yMjczLDYgKzIyOTYsNyBAQCBFVlBfUl9PTkxZX09ORVNIT1RfU1VQUE9SVEVEOjE3 Nzpvbmx5IG9uCiAgRVZQX1JfT1BFUkFUSU9OX05PVF9TVVBQT1JURURfRk9SX1RISVNfS0VZVFlQ RToxNTA6XAogIAlvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBrZXl0eXBlCiAgRVZQ X1JfT1BFUkFUT05fTk9UX0lOSVRJQUxJWkVEOjE1MTpvcGVyYXRvbiBub3QgaW5pdGlhbGl6ZWQK QEAgLTU4LDcgKzU5LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2Vyci9vcGVu c3NsLnR4dC5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lcnIKICBFVlBfUl9QQVJUSUFM TFlfT1ZFUkxBUFBJTkc6MTYyOnBhcnRpYWxseSBvdmVybGFwcGluZyBidWZmZXJzCiAgRVZQX1Jf UEJLREYyX0VSUk9SOjE4MTpwYmtkZjIgZXJyb3IKICBFVlBfUl9QS0VZX0FQUExJQ0FUSU9OX0FT TjFfTUVUSE9EX0FMUkVBRFlfUkVHSVNURVJFRDoxNzk6XAotQEAgLTIyOTksNiArMjMyMyw3IEBA IEtERl9SX01JU1NJTkdfU0VFRDoxMDY6bWlzc2luZyBzZWVkCitAQCAtMjMwOSw2ICsyMzMzLDcg QEAgS0RGX1JfTUlTU0lOR19TRUVEOjEwNjptaXNzaW5nIHNlZWQKICBLREZfUl9VTktOT1dOX1BB UkFNRVRFUl9UWVBFOjEwMzp1bmtub3duIHBhcmFtZXRlciB0eXBlCiAgS0RGX1JfVkFMVUVfRVJS T1I6MTA4OnZhbHVlIGVycm9yCiAgS0RGX1JfVkFMVUVfTUlTU0lORzoxMDI6dmFsdWUgbWlzc2lu ZwpAQCAtNjYsOSArNjcsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXJyL29w ZW5zc2wudHh0LmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2VycgogIE9CSl9SX09JRF9F WElTVFM6MTAyOm9pZCBleGlzdHMKICBPQkpfUl9VTktOT1dOX05JRDoxMDE6dW5rbm93biBuaWQK ICBPQ1NQX1JfQ0VSVElGSUNBVEVfVkVSSUZZX0VSUk9SOjEwMTpjZXJ0aWZpY2F0ZSB2ZXJpZnkg ZXJyb3IKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvYnVpbGQuaW5mby5ldnAt a2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvYnVpbGQuaW5mbwotLS0tIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9ldnAvYnVpbGQuaW5mby5ldnAta2RmCTIwMTktMDItMjYgMTU6MTU6MzAuMDAw MDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9idWlsZC5pbmZvCTIw MTktMDItMjggMTM6MDU6MDUuNjUxNTIxNDc0ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4x ZC9jcnlwdG8vZXZwL2J1aWxkLmluZm8uZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZw L2J1aWxkLmluZm8KKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2J1aWxkLmluZm8uZXZw LWtkZgkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9ldnAvYnVpbGQuaW5mbwkyMDE5LTA5LTEzIDE1OjM5OjIwLjI2ODk4MjgzMCAr MDIwMAogQEAgLTksNyArOSw4IEBAIFNPVVJDRVsuLi8uLi9saWJjcnlwdG9dPVwKICAgICAgICAg IHBfb3Blbi5jIHBfc2VhbC5jIHBfc2lnbi5jIHBfdmVyaWZ5LmMgcF9saWIuYyBwX2VuYy5jIHBf ZGVjLmMgXAogICAgICAgICAgYmlvX21kLmMgYmlvX2I2NC5jIGJpb19lbmMuYyBldnBfZXJyLmMg ZV9udWxsLmMgXApAQCAtNzksOSArODAsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlw dG8vZXZwL2J1aWxkLmluZm8uZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwLwogICAg ICAgICAgZV9vbGQuYyBwbWV0aF9saWIuYyBwbWV0aF9mbi5jIHBtZXRoX2duLmMgbV9zaWd2ZXIu YyBcCiAgICAgICAgICBlX2Flc19jYmNfaG1hY19zaGExLmMgZV9hZXNfY2JjX2htYWNfc2hhMjU2 LmMgZV9yYzRfaG1hY19tZDUuYyBcCiAgICAgICAgICBlX2NoYWNoYTIwX3BvbHkxMzA1LmMgY21l dGhfbGliLmMKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9jaGFjaGEyMF9w b2x5MTMwNS5jLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lX2NoYWNoYTIwX3Bv bHkxMzA1LmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2VfY2hhY2hhMjBfcG9seTEz MDUuYy5ldnAta2RmCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3Bl bnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lX2NoYWNoYTIwX3BvbHkxMzA1LmMJMjAxOS0wMi0yOCAx MzowNTowNS42NTE1MjE0NzQgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9l dnAvZV9jaGFjaGEyMF9wb2x5MTMwNS5jLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2 cC9lX2NoYWNoYTIwX3BvbHkxMzA1LmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2Vf Y2hhY2hhMjBfcG9seTEzMDUuYy5ldnAta2RmCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAw ICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9lX2NoYWNoYTIwX3BvbHkxMzA1 LmMJMjAxOS0wOS0xMyAxNTozOToyMC4yNjg5ODI4MzAgKzAyMDAKIEBAIC0xNCw4ICsxNCw4IEBA CiAgCiAgIyBpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgpAQCAtOTIsOSArOTMsOSBAQCBkaWZmIC11 cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2VfY2hhY2hhMjBfcG9seTEzMDUuYy5ldnAta2Rm IG9wZW5zc2wtMS4xLjFiLwogICMgaW5jbHVkZSAiaW50ZXJuYWwvY2hhY2hhLmgiCiAgCiAgdHlw ZWRlZiBzdHJ1Y3QgewotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lbmNvZGUu Yy5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZW5jb2RlLmMKLS0tLSBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vZXZwL2VuY29kZS5jLmV2cC1rZGYJMjAxOS0wMi0yNiAxNToxNTozMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2VuY29kZS5jCTIw MTktMDItMjggMTM6MDU6MDUuNjUxNTIxNDc0ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4x ZC9jcnlwdG8vZXZwL2VuY29kZS5jLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9l bmNvZGUuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAvZW5jb2RlLmMuZXZwLWtkZgky MDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9ldnAvZW5jb2RlLmMJMjAxOS0wOS0xMyAxNTozOToyMC4yNjg5ODI4MzAgKzAyMDAKIEBA IC0xMSw4ICsxMSw4IEBACiAgI2luY2x1ZGUgPGxpbWl0cy5oPgogICNpbmNsdWRlICJpbnRlcm5h bC9jcnlwdGxpYi5oIgpAQCAtMTA1LDE4ICsxMDYsMTAgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2V2cC9lbmNvZGUuYy5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAv ZW4KICAKICBzdGF0aWMgdW5zaWduZWQgY2hhciBjb252X2FzY2lpMmJpbih1bnNpZ25lZCBjaGFy IGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQg Y2hhciAqdGFibGUpOwotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9ldnBfZXJy LmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2V2cF9lcnIuYwotLS0tIG9wZW5z c2wtMS4xLjFiL2NyeXB0by9ldnAvZXZwX2Vyci5jLmV2cC1rZGYJMjAxOS0wMi0yOCAxMzowNTow NS42MTc1MjIxMDMgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2V2cF9lcnIu YwkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1MTUyMTQ3NCArMDEwMAotQEAgLTEsNiArMSw2IEBACi0g LyoKLSAgKiBHZW5lcmF0ZWQgYnkgdXRpbC9ta2Vyci5wbCBETyBOT1QgRURJVAotLSAqIENvcHly aWdodCAxOTk1LTIwMTggVGhlIE9wZW5TU0wgUHJvamVjdCBBdXRob3JzLiBBbGwgUmlnaHRzIFJl c2VydmVkLgotKyAqIENvcHlyaWdodCAxOTk1LTIwMTkgVGhlIE9wZW5TU0wgUHJvamVjdCBBdXRo b3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICAqCi0gICogTGljZW5zZWQgdW5kZXIgdGhlIE9w ZW5TU0wgbGljZW5zZSAodGhlICJMaWNlbnNlIikuICBZb3UgbWF5IG5vdCB1c2UKLSAgKiB0aGlz IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBjYW4gb2J0 YWluIGEgY29weQotQEAgLTU2LDYgKzU2LDkgQEAgc3RhdGljIGNvbnN0IEVSUl9TVFJJTkdfREFU QSBFVlBfc3RyX2Z1bgorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9ldnBfZXJy LmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2V2cF9lcnIuYworLS0tIG9wZW5z c2wtMS4xLjFkL2NyeXB0by9ldnAvZXZwX2Vyci5jLmV2cC1rZGYJMjAxOS0wOS0xMyAxNTozOToy MC4yMjY5ODM1NjkgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2V2cF9lcnIu YwkyMDE5LTA5LTEzIDE1OjQ0OjAwLjA3MDA3Njk2MSArMDIwMAorQEAgLTYwLDYgKzYwLDkgQEAg c3RhdGljIGNvbnN0IEVSUl9TVFJJTkdfREFUQSBFVlBfc3RyX2Z1bgogICAgICB7RVJSX1BBQ0so RVJSX0xJQl9FVlAsIEVWUF9GX0VWUF9FTkNSWVBURklOQUxfRVgsIDApLAogICAgICAgIkVWUF9F bmNyeXB0RmluYWxfZXgifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCBFVlBfRl9FVlBf RU5DUllQVFVQREFURSwgMCksICJFVlBfRW5jcnlwdFVwZGF0ZSJ9LApAQCAtMTI2LDcgKzExOSw3 IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZXZwX2Vyci5jLmV2cC1rZGYg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwg RVZQX0ZfRVZQX01EX0NUWF9DT1BZX0VYLCAwKSwgIkVWUF9NRF9DVFhfY29weV9leCJ9LAogICAg ICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAsIEVWUF9GX0VWUF9NRF9TSVpFLCAwKSwgIkVWUF9NRF9z aXplIn0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwgRVZQX0ZfRVZQX09QRU5JTklULCAw KSwgIkVWUF9PcGVuSW5pdCJ9LAotQEAgLTE0NywxMCArMTUwLDEyIEBAIHN0YXRpYyBjb25zdCBF UlJfU1RSSU5HX0RBVEEgRVZQX3N0cl9mdW4KK0BAIC0xNTEsMTIgKzE1NCwxNCBAQCBzdGF0aWMg Y29uc3QgRVJSX1NUUklOR19EQVRBIEVWUF9zdHJfZnVuCiAgICAgICAiUEtDUzVfdjJfUEJLREYy X2tleWl2Z2VuIn0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwgRVZQX0ZfUEtDUzVfVjJf U0NSWVBUX0tFWUlWR0VOLCAwKSwKICAgICAgICJQS0NTNV92Ml9zY3J5cHRfa2V5aXZnZW4ifSwK QEAgLTEzNCwxMiArMTI3LDE0IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAv ZXZwX2Vyci5jLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lCiAgICAgIHtFUlJf UEFDSyhFUlJfTElCX0VWUCwgRVZQX0ZfUEtFWV9TRVRfVFlQRSwgMCksICJwa2V5X3NldF90eXBl In0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwgRVZQX0ZfUkMyX01BR0lDX1RPX01FVEgs IDApLCAicmMyX21hZ2ljX3RvX21ldGgifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCBF VlBfRl9SQzVfQ1RSTCwgMCksICJyYzVfY3RybCJ9LAorICAgICB7RVJSX1BBQ0soRVJSX0xJQl9F VlAsIEVWUF9GX1JfMzJfMTJfMTZfSU5JVF9LRVksIDApLAorICAgICAgInJfMzJfMTJfMTZfaW5p dF9rZXkifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCBFVlBfRl9TMzkwWF9BRVNfR0NN X0NUUkwsIDApLCAiczM5MHhfYWVzX2djbV9jdHJsIn0sCiArICAgIHtFUlJfUEFDSyhFUlJfTElC X0VWUCwgRVZQX0ZfU0NSWVBUX0FMRywgMCksICJzY3J5cHRfYWxnIn0sCiAgICAgIHtFUlJfUEFD SyhFUlJfTElCX0VWUCwgRVZQX0ZfVVBEQVRFLCAwKSwgInVwZGF0ZSJ9LAogICAgICB7MCwgTlVM TH0KICB9OwotQEAgLTIzMyw2ICsyMzgsOCBAQCBzdGF0aWMgY29uc3QgRVJSX1NUUklOR19EQVRB IEVWUF9zdHJfcmVhCitAQCAtMjQwLDYgKzI0NSw4IEBAIHN0YXRpYyBjb25zdCBFUlJfU1RSSU5H X0RBVEEgRVZQX3N0cl9yZWEKICAgICAgIm9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIGZvciB0aGlz IGtleXR5cGUifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCAwLCBFVlBfUl9PUEVSQVRP Tl9OT1RfSU5JVElBTElaRUQpLAogICAgICAib3BlcmF0b24gbm90IGluaXRpYWxpemVkIn0sCkBA IC0xNDgsOSArMTQzLDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9ldnBf ZXJyLmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2UKICAgICAge0VSUl9QQUNL KEVSUl9MSUJfRVZQLCAwLCBFVlBfUl9QQVJUSUFMTFlfT1ZFUkxBUFBJTkcpLAogICAgICAicGFy dGlhbGx5IG92ZXJsYXBwaW5nIGJ1ZmZlcnMifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQ LCAwLCBFVlBfUl9QQktERjJfRVJST1IpLCAicGJrZGYyIGVycm9yIn0sCi1kaWZmIC11cCBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZXZwL2V2cF9sb2NsLmguZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vZXZwL2V2cF9sb2NsLmgKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2V2cF9s b2NsLmguZXZwLWtkZgkyMDE5LTAyLTI4IDEzOjA1OjA1LjI1MzUyODgzMSArMDEwMAotKysrIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZXZwX2xvY2wuaAkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1 MjUyMTQ1NiArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9ldnBfbG9j bC5oLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9ldnBfbG9jbC5oCistLS0gb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9ldnBfbG9jbC5oLmV2cC1rZGYJMjAxOS0wOS0xMyAxNToz OToxOS44MjA5OTA3MTggKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2V2cF9s b2NsLmgJMjAxOS0wOS0xMyAxNTozOToyNC4xNDQ5MTQ1NzggKzAyMDAKIEBAIC00MSw2ICs0MSwx MSBAQCBzdHJ1Y3QgZXZwX2NpcGhlcl9jdHhfc3QgewogICAgICB1bnNpZ25lZCBjaGFyIGZpbmFs W0VWUF9NQVhfQkxPQ0tfTEVOR1RIXTsgLyogcG9zc2libGUgZmluYWwgYmxvY2sgKi8KICB9IC8q IEVWUF9DSVBIRVJfQ1RYICovIDsKQEAgLTE2Myw5ICsxNTgsOSBAQCBkaWZmIC11cCBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vZXZwL2V2cF9sb2NsLmguZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9jcnlw dG8vZXZwLwogIGludCBQS0NTNV92Ml9QQktERjJfa2V5aXZnZW4oRVZQX0NJUEhFUl9DVFggKmN0 eCwgY29uc3QgY2hhciAqcGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBw YXNzbGVuLCBBU04xX1RZUEUgKnBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgRVZQX0NJUEhFUiAqYywgY29uc3QgRVZQX01EICptZCwKLWRpZmYgLXVwIG9wZW5zc2wt MS4xLjFiL2NyeXB0by9ldnAvZXZwX3BiZS5jLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvY3J5cHRv L2V2cC9ldnBfcGJlLmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2V2cF9wYmUuYy5l dnAta2RmCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0x LjEuMWIvY3J5cHRvL2V2cC9ldnBfcGJlLmMJMjAxOS0wMi0yOCAxMzowNTowNS42NTI1MjE0NTYg KzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAvZXZwX3BiZS5jLmV2cC1r ZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9ldnBfcGJlLmMKKy0tLSBvcGVuc3NsLTEuMS4x ZC9jcnlwdG8vZXZwL2V2cF9wYmUuYy5ldnAta2RmCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAw MDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9ldnBfcGJlLmMJMjAxOS0w OS0xMyAxNTozOToyNC4xNDU5MTQ1NjEgKzAyMDAKIEBAIC0xMiw2ICsxMiw3IEBACiAgI2luY2x1 ZGUgPG9wZW5zc2wvZXZwLmg+CiAgI2luY2x1ZGUgPG9wZW5zc2wvcGtjczEyLmg+CkBAIC0xNzQs OSArMTY5LDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9ldnBfcGJlLmMu ZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2UKICAjaW5jbHVkZSAiZXZwX2xvY2wu aCIKICAKICAvKiBQYXNzd29yZCBiYXNlZCBlbmNyeXB0aW9uIChQQkUpIGZ1bmN0aW9ucyAqLwot ZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9rZGZfbGliLmMuZXZwLWtkZiBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZXZwL2tkZl9saWIuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9ldnAva2RmX2xpYi5jLmV2cC1rZGYJMjAxOS0wMi0yOCAxMzowNTowNS42NTI1MjE0NTYgKzAx MDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2tkZl9saWIuYwkyMDE5LTAyLTI4IDEz OjA1OjA1LjY1MjUyMTQ1NiArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2 cC9rZGZfbGliLmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2tkZl9saWIuYwor LS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAva2RmX2xpYi5jLmV2cC1rZGYJMjAxOS0wOS0x MyAxNTozOToyNC4xNDY5MTQ1NDMgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZw L2tkZl9saWIuYwkyMDE5LTA5LTEzIDE1OjM5OjI0LjE0NjkxNDU0MyArMDIwMAogQEAgLTAsMCAr MSwxNjUgQEAKICsvKgogKyAqIENvcHlyaWdodCAyMDE4IFRoZSBPcGVuU1NMIFByb2plY3QgQXV0 aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KQEAgLTM0Myw5ICszMzgsOSBAQCBkaWZmIC11cCBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2tkZl9saWIuYy5ldnAta2RmIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9ldnAvawogKyAgICByZXR1cm4gY3R4LT5rbWV0aC0+ZGVyaXZlKGN0eC0+aW1wbCwg a2V5LCBrZXlsZW4pOwogK30KICsKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAv cDVfY3JwdDIuYy5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvcDVfY3JwdDIuYwot LS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvcDVfY3JwdDIuYy5ldnAta2RmCTIwMTktMDIt MjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2 cC9wNV9jcnB0Mi5jCTIwMTktMDItMjggMTM6MDU6MDUuNjUyNTIxNDU2ICswMTAwCitkaWZmIC11 cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL3A1X2NycHQyLmMuZXZwLWtkZiBvcGVuc3NsLTEu MS4xZC9jcnlwdG8vZXZwL3A1X2NycHQyLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZw L3A1X2NycHQyLmMuZXZwLWtkZgkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAor KysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAvcDVfY3JwdDIuYwkyMDE5LTA5LTEzIDE1OjM5 OjI0LjE0NzkxNDUyNSArMDIwMAogQEAgLTEsNSArMSw1IEBACiAgLyoKIC0gKiBDb3B5cmlnaHQg MTk5OS0yMDE2IFRoZSBPcGVuU1NMIFByb2plY3QgQXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZl ZC4KQEAgLTQ5NCw5ICs0ODksOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZw L3A1X2NycHQyLmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwLwogIH0KICAKICBp bnQgUEtDUzVfUEJLREYyX0hNQUNfU0hBMShjb25zdCBjaGFyICpwYXNzLCBpbnQgcGFzc2xlbiwK LWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvcGJlX3NjcnlwdC5jLmV2cC1rZGYg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9wYmVfc2NyeXB0LmMKLS0tLSBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZXZwL3BiZV9zY3J5cHQuYy5ldnAta2RmCTIwMTktMDItMjYgMTU6MTU6MzAuMDAw MDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9wYmVfc2NyeXB0LmMJ MjAxOS0wMi0yOCAxMzozMzoxOC40NDYyNjQwNTYgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9ldnAvcGJlX3NjcnlwdC5jLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRv L2V2cC9wYmVfc2NyeXB0LmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL3BiZV9zY3J5 cHQuYy5ldnAta2RmCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9wYmVfc2NyeXB0LmMJMjAxOS0wOS0xMyAxNTozOToyNC4x NTA5MTQ0NzMgKzAyMDAKIEBAIC03LDEzNSArNywxMiBAQAogICAqIGh0dHBzOi8vd3d3Lm9wZW5z c2wub3JnL3NvdXJjZS9saWNlbnNlLmh0bWwKICAgKi8KQEAgLTY4Miw5ICs2NzcsMTEgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9wYmVfc2NyeXB0LmMuZXZwLWtkZiBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZXYKIC0gICAgICovCiAtICAgIGlmIChCbGVuID4gSU5UX01BWCkg ewogLSAgICAgICAgRVZQZXJyKEVWUF9GX0VWUF9QQkVfU0NSWVBULCBFVlBfUl9NRU1PUllfTElN SVRfRVhDRUVERUQpOwotLSAgICAgICAgcmV0dXJuIDA7Ci0tICAgIH0KLS0KKysgICAgaWYgKHIg PiBVSU5UMzJfTUFYIHx8IHAgPiBVSU5UMzJfTUFYKSB7CisrICAgICAgICBFVlBlcnIoRVZQX0Zf RVZQX1BCRV9TQ1JZUFQsIEVWUF9SX1BBUkFNRVRFUl9UT09fTEFSR0UpOworICAgICAgICAgcmV0 dXJuIDA7CisgICAgIH0KKyAKIC0gICAgLyoKIC0gICAgICogQ2hlY2sgMzIgKiByICogKE4gKyAy KSAqIHNpemVvZih1aW50MzJfdCkgZml0cyBpbiB1aW50NjRfdAogLSAgICAgKiBUaGlzIGlzIGNv bWJpbmVkIHNpemUgViwgWCBhbmQgVCAoc2VjdGlvbiA0KQpAQCAtNjkyLDIxICs2ODksMTggQEAg ZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9wYmVfc2NyeXB0LmMuZXZwLWtkZiBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vZXYKIC0gICAgaSA9IFVJTlQ2NF9NQVggLyAoMzIgKiBzaXpl b2YodWludDMyX3QpKTsKIC0gICAgaWYgKE4gKyAyID4gaSAvIHIpIHsKIC0gICAgICAgIEVWUGVy cihFVlBfRl9FVlBfUEJFX1NDUllQVCwgRVZQX1JfTUVNT1JZX0xJTUlUX0VYQ0VFREVEKTsKLSsg ICAgaWYgKHIgPiBVSU5UMzJfTUFYIHx8IHAgPiBVSU5UMzJfTUFYKSB7Ci0rICAgICAgICBFVlBl cnIoRVZQX0ZfRVZQX1BCRV9TQ1JZUFQsIEVWUF9SX1BBUkFNRVRFUl9UT09fTEFSR0UpOwotICAg ICAgICAgcmV0dXJuIDA7CistICAgICAgICByZXR1cm4gMDsKKysgICAgLyogTWFpbnRhaW4gZXhp c3RpbmcgYmVoYXZpb3VyLiAqLworKyAgICBpZiAocGFzcyA9PSBOVUxMKSB7CisrICAgICAgICBw YXNzID0gZW1wdHk7CisrICAgICAgICBwYXNzbGVuID0gMDsKICAgICAgfQogLSAgICBWbGVuID0g MzIgKiByICogKE4gKyAyKSAqIHNpemVvZih1aW50MzJfdCk7Ci0gCistCiAtICAgIC8qIGNoZWNr IHRvdGFsIGFsbG9jYXRlZCBzaXplIGZpdHMgaW4gdWludDY0X3QgKi8KIC0gICAgaWYgKEJsZW4g PiBVSU5UNjRfTUFYIC0gVmxlbikgewogLSAgICAgICAgRVZQZXJyKEVWUF9GX0VWUF9QQkVfU0NS WVBULCBFVlBfUl9NRU1PUllfTElNSVRfRVhDRUVERUQpOwogLSAgICAgICAgcmV0dXJuIDA7Ci0r ICAgIC8qIE1haW50YWluIGV4aXN0aW5nIGJlaGF2aW91ci4gKi8KLSsgICAgaWYgKHBhc3MgPT0g TlVMTCkgewotKyAgICAgICAgcGFzcyA9IGVtcHR5OwotKyAgICAgICAgcGFzc2xlbiA9IDA7Ci0r ICAgIH0KICsgICAgaWYgKHNhbHQgPT0gTlVMTCkgewogKyAgICAgICAgc2FsdCA9IChjb25zdCB1 bnNpZ25lZCBjaGFyICopZW1wdHk7CiArICAgICAgICBzYWx0bGVuID0gMDsKQEAgLTc2OCw5ICs3 NjIsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL3BiZV9zY3J5cHQuYy5l dnAta2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldgogIH0KICsKICAjZW5kaWYKLWRpZmYgLXVw IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvcGtleV9rZGYuYy5ldnAta2RmIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9ldnAvcGtleV9rZGYuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAv cGtleV9rZGYuYy5ldnAta2RmCTIwMTktMDItMjggMTM6MDU6MDUuNjUzNTIxNDM3ICswMTAwCi0r Kysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9wa2V5X2tkZi5jCTIwMTktMDItMjggMTM6MDU6 MDUuNjUzNTIxNDM3ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL3Br ZXlfa2RmLmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL3BrZXlfa2RmLmMKKy0t LSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL3BrZXlfa2RmLmMuZXZwLWtkZgkyMDE5LTA5LTEz IDE1OjM5OjI0LjE1NDkxNDQwMiArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAv cGtleV9rZGYuYwkyMDE5LTA5LTEzIDE1OjM5OjI0LjE1NDkxNDQwMiArMDIwMAogQEAgLTAsMCAr MSwyNTUgQEAKICsvKgogKyAqIENvcHlyaWdodCAyMDE4IFRoZSBPcGVuU1NMIFByb2plY3QgQXV0 aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KQEAgLTEwMjcsOSArMTAyMSw5IEBAIGRpZmYgLXVw IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvcGtleV9rZGYuYy5ldnAta2RmIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9ldnAvCiArICAgIHBrZXlfa2RmX2N0cmxfc3RyCiArfTsKICsKLWRpZmYgLXVw IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9pbmNsdWRlL2ludGVybmFsL2V2cF9pbnQuaC5ldnAta2Rm IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9pbmNsdWRlL2ludGVybmFsL2V2cF9pbnQuaAotLS0tIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9pbmNsdWRlL2ludGVybmFsL2V2cF9pbnQuaC5ldnAta2RmCTIw MTktMDItMjggMTM6MDU6MDUuMzA0NTI3ODg4ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5 cHRvL2luY2x1ZGUvaW50ZXJuYWwvZXZwX2ludC5oCTIwMTktMDItMjggMTM6MDU6MDUuNjUzNTIx NDM3ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vaW5jbHVkZS9pbnRlcm5h bC9ldnBfaW50LmguZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vaW5jbHVkZS9pbnRlcm5h bC9ldnBfaW50LmgKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vaW5jbHVkZS9pbnRlcm5hbC9l dnBfaW50LmguZXZwLWtkZgkyMDE5LTA5LTEzIDE1OjM5OjE5Ljg3Mzk4OTc4NSArMDIwMAorKysr IG9wZW5zc2wtMS4xLjFkL2NyeXB0by9pbmNsdWRlL2ludGVybmFsL2V2cF9pbnQuaAkyMDE5LTA5 LTEzIDE1OjM5OjI0LjE1NTkxNDM4NCArMDIwMAogQEAgLTExMiw2ICsxMTIsMjQgQEAgZXh0ZXJu IGNvbnN0IEVWUF9QS0VZX01FVEhPRCBoa2RmX3BrZXlfbQogIGV4dGVybiBjb25zdCBFVlBfUEtF WV9NRVRIT0QgcG9seTEzMDVfcGtleV9tZXRoOwogIGV4dGVybiBjb25zdCBFVlBfUEtFWV9NRVRI T0Qgc2lwaGFzaF9wa2V5X21ldGg7CkBAIC0xMDU1LDE3ICsxMDQ5LDE3IEBAIGRpZmYgLXVwIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9pbmNsdWRlL2ludGVybmFsL2V2cF9pbnQuaC5ldnAta2RmIG9w ZW5zc2wtMS4xLjFiCiAgc3RydWN0IGV2cF9tZF9zdCB7CiAgICAgIGludCB0eXBlOwogICAgICBp bnQgcGtleV90eXBlOwotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9idWlsZC5p bmZvLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9idWlsZC5pbmZvCi0tLS0gb3Bl bnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9idWlsZC5pbmZvLmV2cC1rZGYJMjAxOS0wMi0yNiAxNTox NTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmL2J1aWxk LmluZm8JMjAxOS0wMi0yOCAxMzowNTowNS42NTM1MjE0MzcgKzAxMDAKK2RpZmYgLXVwIG9wZW5z c2wtMS4xLjFkL2NyeXB0by9rZGYvYnVpbGQuaW5mby5ldnAta2RmIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9rZGYvYnVpbGQuaW5mbworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYvYnVpbGQu aW5mby5ldnAta2RmCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9idWlsZC5pbmZvCTIwMTktMDktMTMgMTU6Mzk6MjQuMTU2 OTE0MzY3ICswMjAwCiBAQCAtMSwzICsxLDMgQEAKICBMSUJTPS4uLy4uL2xpYmNyeXB0bwogIFNP VVJDRVsuLi8uLi9saWJjcnlwdG9dPVwKIC0gICAgICAgIHRsczFfcHJmLmMga2RmX2Vyci5jIGhr ZGYuYyBzY3J5cHQuYwogKyAgICAgICAgdGxzMV9wcmYuYyBrZGZfZXJyLmMga2RmX3V0aWwuYyBo a2RmLmMgc2NyeXB0LmMgcGJrZGYyLmMKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9r ZGYvaGtkZi5jLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9oa2RmLmMKLS0tLSBv cGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmL2hrZGYuYy5ldnAta2RmCTIwMTktMDItMjYgMTU6MTU6 MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9oa2RmLmMJ MjAxOS0wMi0yOCAxMzowNTowNS42NTM1MjE0MzcgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9rZGYvaGtkZi5jLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9o a2RmLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL2hrZGYuYy5ldnAta2RmCTIwMTkt MDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRv L2tkZi9oa2RmLmMJMjAxOS0wOS0xMyAxNTozOToyNC4xNTg5MTQzMzIgKzAyMDAKIEBAIC04LDMy ICs4LDMzIEBACiAgICovCiAgCkBAIC0xNTMyLDkgKzE1MjYsOSBAQCBkaWZmIC11cCBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8va2RmL2hrZGYuYy5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9r ZGYvaGtkZgogIAogICBlcnI6CiAgICAgIE9QRU5TU0xfY2xlYW5zZShwcmV2LCBzaXplb2YocHJl dikpOwotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9rZGZfZXJyLmMuZXZwLWtk ZiBvcGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmL2tkZl9lcnIuYwotLS0tIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9rZGYva2RmX2Vyci5jLmV2cC1rZGYJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmL2tkZl9lcnIuYwkyMDE5LTAy LTI4IDEzOjA1OjA1LjY1NDUyMTQxOSArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL2tkZi9rZGZfZXJyLmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL2tkZl9l cnIuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYva2RmX2Vyci5jLmV2cC1rZGYJMjAx OS0wOS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlw dG8va2RmL2tkZl9lcnIuYwkyMDE5LTA5LTEzIDE1OjM5OjI0LjE1OTkxNDMxNCArMDIwMAogQEAg LTEsNiArMSw2IEBACiAgLyoKICAgKiBHZW5lcmF0ZWQgYnkgdXRpbC9ta2Vyci5wbCBETyBOT1Qg RURJVApAQCAtMTU5MCw5ICsxNTg0LDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRv L2tkZi9rZGZfZXJyLmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmL2sKICAgICAg ezAsIE5VTEx9CiAgfTsKICAKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9rZGYva2Rm X2xvY2FsLmguZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmL2tkZl9sb2NhbC5oCi0t LS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9rZGZfbG9jYWwuaC5ldnAta2RmCTIwMTktMDIt MjggMTM6MDU6MDUuNjU0NTIxNDE5ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tk Zi9rZGZfbG9jYWwuaAkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1NDUyMTQxOSArMDEwMAorZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9rZGZfbG9jYWwuaC5ldnAta2RmIG9wZW5zc2wt MS4xLjFkL2NyeXB0by9rZGYva2RmX2xvY2FsLmgKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8v a2RmL2tkZl9sb2NhbC5oLmV2cC1rZGYJMjAxOS0wOS0xMyAxNTozOToyNC4xNjA5MTQyOTcgKzAy MDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL2tkZl9sb2NhbC5oCTIwMTktMDktMTMg MTU6Mzk6MjQuMTYwOTE0Mjk3ICswMjAwCiBAQCAtMCwwICsxLDIyIEBACiArLyoKICsgKiBDb3B5 cmlnaHQgMjAxOCBUaGUgT3BlblNTTCBQcm9qZWN0IEF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2 ZWQuCkBAIC0xNjE2LDkgKzE2MTAsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v a2RmL2tkZl9sb2NhbC5oLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZgogKyAgICAg ICAgICAgICAgICBpbnQgKCpjdHJsKShFVlBfS0RGX0lNUEwgKmltcGwsIGludCBjbWQsIHZhX2xp c3QgYXJncyksCiArICAgICAgICAgICAgICAgIGludCBjbWQsIGNvbnN0IGNoYXIgKm1kX25hbWUp OwogKwotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9rZGZfdXRpbC5jLmV2cC1r ZGYgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9rZGZfdXRpbC5jCi0tLS0gb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2tkZi9rZGZfdXRpbC5jLmV2cC1rZGYJMjAxOS0wMi0yOCAxMzowNTowNS42NTQ1 MjE0MTkgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmL2tkZl91dGlsLmMJMjAx OS0wMi0yOCAxMzowNTowNS42NTQ1MjE0MTkgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFk L2NyeXB0by9rZGYva2RmX3V0aWwuYy5ldnAta2RmIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYv a2RmX3V0aWwuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYva2RmX3V0aWwuYy5ldnAt a2RmCTIwMTktMDktMTMgMTU6Mzk6MjQuMTYxOTE0Mjc5ICswMjAwCisrKysgb3BlbnNzbC0xLjEu MWQvY3J5cHRvL2tkZi9rZGZfdXRpbC5jCTIwMTktMDktMTMgMTU6Mzk6MjQuMTYwOTE0Mjk3ICsw MjAwCiBAQCAtMCwwICsxLDczIEBACiArLyoKICsgKiBDb3B5cmlnaHQgMjAxOCBUaGUgT3BlblNT TCBQcm9qZWN0IEF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCkBAIC0xNjkzLDkgKzE2ODcs OSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmL2tkZl91dGlsLmMuZXZwLWtk ZiBvcGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmLwogKyAgICByZXR1cm4gY2FsbF9jdHJsKGN0cmws IGltcGwsIGNtZCwgbWQpOwogK30KICsKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9r ZGYvcGJrZGYyLmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmL3Bia2RmMi5jCi0t LS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9wYmtkZjIuYy5ldnAta2RmCTIwMTktMDItMjgg MTM6MDU6MDUuNjU0NTIxNDE5ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9w YmtkZjIuYwkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1NDUyMTQxOSArMDEwMAorZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9wYmtkZjIuYy5ldnAta2RmIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9rZGYvcGJrZGYyLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL3Bia2RmMi5j LmV2cC1rZGYJMjAxOS0wOS0xMyAxNTozOToyNC4xNjI5MTQyNjEgKzAyMDAKKysrKyBvcGVuc3Ns LTEuMS4xZC9jcnlwdG8va2RmL3Bia2RmMi5jCTIwMTktMDktMTMgMTU6Mzk6MjQuMTYyOTE0MjYx ICswMjAwCiBAQCAtMCwwICsxLDI2NCBAQAogKy8qCiArICogQ29weXJpZ2h0IDIwMTggVGhlIE9w ZW5TU0wgUHJvamVjdCBBdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgpAQCAtMTk2MSw5ICsx OTU1LDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9wYmtkZjIuYy5ldnAt a2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9rZGYvcGIKICsgICAgSE1BQ19DVFhfZnJlZShoY3R4 X3RwbCk7CiArICAgIHJldHVybiByZXQ7CiArfQotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5 cHRvL2tkZi9zY3J5cHQuYy5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9rZGYvc2NyeXB0 LmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmL3NjcnlwdC5jLmV2cC1rZGYJMjAxOS0w Mi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v a2RmL3NjcnlwdC5jCTIwMTktMDItMjggMTM6MDU6MDUuNjU1NTIxNDAwICswMTAwCitkaWZmIC11 cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL3NjcnlwdC5jLmV2cC1rZGYgb3BlbnNzbC0xLjEu MWQvY3J5cHRvL2tkZi9zY3J5cHQuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYvc2Ny eXB0LmMuZXZwLWtkZgkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9w ZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYvc2NyeXB0LmMJMjAxOS0wOS0xMyAxNTozOToyNC4xNjQ5 MTQyMjYgKzAyMDAKIEBAIC04LDI1ICs4LDM0IEBACiAgICovCiAgCkBAIC0yNTUyLDkgKzI1NDYs OSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8va2RmL3NjcnlwdC5jLmV2cC1rZGYg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi9zYwogK30KICAKICAjZW5kaWYKLWRpZmYgLXVwIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9rZGYvdGxzMV9wcmYuYy5ldnAta2RmIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9rZGYvdGxzMV9wcmYuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9rZGYvdGxz MV9wcmYuYy5ldnAta2RmCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2tkZi90bHMxX3ByZi5jCTIwMTktMDItMjggMTM6MDU6MDUu NjU1NTIxNDAwICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL3RsczFf cHJmLmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL3RsczFfcHJmLmMKKy0tLSBv cGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL3RsczFfcHJmLmMuZXZwLWtkZgkyMDE5LTA5LTEwIDE1 OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYvdGxz MV9wcmYuYwkyMDE5LTA5LTEzIDE1OjM5OjI0LjE2NzkxNDE3MyArMDIwMAogQEAgLTgsMTEgKzgs MTUgQEAKICAgKi8KICAKQEAgLTI4MzgsOSArMjgzMiw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9rZGYvdGxzMV9wcmYuYy5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9r ZGYvCiAgICAgICAgICAgICAgT1BFTlNTTF9jbGVhcl9mcmVlKHRtcCwgb2xlbik7CiAgICAgICAg ICAgICAgcmV0dXJuIDA7CiAgICAgICAgICB9Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9kb2Mv bWFuMy9FVlBfS0RGX0NUWC5wb2QuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9kb2MvbWFuMy9FVlBf S0RGX0NUWC5wb2QKLS0tLSBvcGVuc3NsLTEuMS4xYi9kb2MvbWFuMy9FVlBfS0RGX0NUWC5wb2Qu ZXZwLWtkZgkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1NjUyMTM4MiArMDEwMAotKysrIG9wZW5zc2wt MS4xLjFiL2RvYy9tYW4zL0VWUF9LREZfQ1RYLnBvZAkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1NTUy MTQwMCArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvZG9jL21hbjMvRVZQX0tERl9DVFgu cG9kLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWQvZG9jL21hbjMvRVZQX0tERl9DVFgucG9kCistLS0g b3BlbnNzbC0xLjEuMWQvZG9jL21hbjMvRVZQX0tERl9DVFgucG9kLmV2cC1rZGYJMjAxOS0wOS0x MyAxNTozOToyNC4xNjk5MTQxMzggKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9kb2MvbWFuMy9F VlBfS0RGX0NUWC5wb2QJMjAxOS0wOS0xMyAxNTozOToyNC4xNjk5MTQxMzggKzAyMDAKIEBAIC0w LDAgKzEsMjE3IEBACiArPXBvZAogKwpAQCAtMzA1OSw5ICszMDUzLDkgQEAgZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWIvZG9jL21hbjMvRVZQX0tERl9DVFgucG9kLmV2cC1rZGYgb3BlbnNzbC0xLjEu MWIvZG9jL21hbjMKICtMPGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL3NvdXJjZS9saWNlbnNlLmh0 bWw+LgogKwogKz1jdXQKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2RvYy9tYW43L0VWUF9LREZf SEtERi5wb2QuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9kb2MvbWFuNy9FVlBfS0RGX0hLREYucG9k Ci0tLS0gb3BlbnNzbC0xLjEuMWIvZG9jL21hbjcvRVZQX0tERl9IS0RGLnBvZC5ldnAta2RmCTIw MTktMDItMjggMTM6MDU6MDUuNjU2NTIxMzgyICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvZG9j L21hbjcvRVZQX0tERl9IS0RGLnBvZAkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1NjUyMTM4MiArMDEw MAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvZG9jL21hbjcvRVZQX0tERl9IS0RGLnBvZC5ldnAt a2RmIG9wZW5zc2wtMS4xLjFkL2RvYy9tYW43L0VWUF9LREZfSEtERi5wb2QKKy0tLSBvcGVuc3Ns LTEuMS4xZC9kb2MvbWFuNy9FVlBfS0RGX0hLREYucG9kLmV2cC1rZGYJMjAxOS0wOS0xMyAxNToz OToyNC4xNzE5MTQxMDMgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9kb2MvbWFuNy9FVlBfS0RG X0hLREYucG9kCTIwMTktMDktMTMgMTU6Mzk6MjQuMTcxOTE0MTAzICswMjAwCiBAQCAtMCwwICsx LDE4MCBAQAogKz1wb2QKICsKQEAgLTMyNDMsOSArMzIzNyw5IEBAIGRpZmYgLXVwIG9wZW5zc2wt MS4xLjFiL2RvYy9tYW43L0VWUF9LREZfSEtERi5wb2QuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9k b2MvbWFuCiArTDxodHRwczovL3d3dy5vcGVuc3NsLm9yZy9zb3VyY2UvbGljZW5zZS5odG1sPi4K ICsKICs9Y3V0Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9kb2MvbWFuNy9FVlBfS0RGX1BCS0RG Mi5wb2QuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9kb2MvbWFuNy9FVlBfS0RGX1BCS0RGMi5wb2QK LS0tLSBvcGVuc3NsLTEuMS4xYi9kb2MvbWFuNy9FVlBfS0RGX1BCS0RGMi5wb2QuZXZwLWtkZgky MDE5LTAyLTI4IDEzOjA1OjA1LjY1NjUyMTM4MiArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2Rv Yy9tYW43L0VWUF9LREZfUEJLREYyLnBvZAkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1NjUyMTM4MiAr MDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvZG9jL21hbjcvRVZQX0tERl9QQktERjIucG9k LmV2cC1rZGYgb3BlbnNzbC0xLjEuMWQvZG9jL21hbjcvRVZQX0tERl9QQktERjIucG9kCistLS0g b3BlbnNzbC0xLjEuMWQvZG9jL21hbjcvRVZQX0tERl9QQktERjIucG9kLmV2cC1rZGYJMjAxOS0w OS0xMyAxNTozOToyNC4xNzI5MTQwODUgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9kb2MvbWFu Ny9FVlBfS0RGX1BCS0RGMi5wb2QJMjAxOS0wOS0xMyAxNTozOToyNC4xNzI5MTQwODUgKzAyMDAK IEBAIC0wLDAgKzEsNzggQEAKICs9cG9kCiArCkBAIC0zMzI1LDkgKzMzMTksOSBAQCBkaWZmIC11 cCBvcGVuc3NsLTEuMS4xYi9kb2MvbWFuNy9FVlBfS0RGX1BCS0RGMi5wb2QuZXZwLWtkZiBvcGVu c3NsLTEuMS4xYi9kb2MvbQogK0w8aHR0cHM6Ly93d3cub3BlbnNzbC5vcmcvc291cmNlL2xpY2Vu c2UuaHRtbD4uCiArCiArPWN1dAotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvZG9jL21hbjcvRVZQ X0tERl9TQ1JZUFQucG9kLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvZG9jL21hbjcvRVZQX0tERl9T Q1JZUFQucG9kCi0tLS0gb3BlbnNzbC0xLjEuMWIvZG9jL21hbjcvRVZQX0tERl9TQ1JZUFQucG9k LmV2cC1rZGYJMjAxOS0wMi0yOCAxMzowNTowNS42NTY1MjEzODIgKzAxMDAKLSsrKyBvcGVuc3Ns LTEuMS4xYi9kb2MvbWFuNy9FVlBfS0RGX1NDUllQVC5wb2QJMjAxOS0wMi0yOCAxMzowNTowNS42 NTY1MjEzODIgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2RvYy9tYW43L0VWUF9LREZf U0NSWVBULnBvZC5ldnAta2RmIG9wZW5zc2wtMS4xLjFkL2RvYy9tYW43L0VWUF9LREZfU0NSWVBU LnBvZAorLS0tIG9wZW5zc2wtMS4xLjFkL2RvYy9tYW43L0VWUF9LREZfU0NSWVBULnBvZC5ldnAt a2RmCTIwMTktMDktMTMgMTU6Mzk6MjQuMTczOTE0MDY4ICswMjAwCisrKysgb3BlbnNzbC0xLjEu MWQvZG9jL21hbjcvRVZQX0tERl9TQ1JZUFQucG9kCTIwMTktMDktMTMgMTU6Mzk6MjQuMTczOTE0 MDY4ICswMjAwCiBAQCAtMCwwICsxLDE0OSBAQAogKz1wb2QKICsKQEAgLTM0NzgsOSArMzQ3Miw5 IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2RvYy9tYW43L0VWUF9LREZfU0NSWVBULnBvZC5l dnAta2RmIG9wZW5zc2wtMS4xLjFiL2RvYy9tCiArTDxodHRwczovL3d3dy5vcGVuc3NsLm9yZy9z b3VyY2UvbGljZW5zZS5odG1sPi4KICsKICs9Y3V0Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9k b2MvbWFuNy9FVlBfS0RGX1RMUzFfUFJGLnBvZC5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL2RvYy9t YW43L0VWUF9LREZfVExTMV9QUkYucG9kCi0tLS0gb3BlbnNzbC0xLjEuMWIvZG9jL21hbjcvRVZQ X0tERl9UTFMxX1BSRi5wb2QuZXZwLWtkZgkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1NjUyMTM4MiAr MDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2RvYy9tYW43L0VWUF9LREZfVExTMV9QUkYucG9kCTIw MTktMDItMjggMTM6MDU6MDUuNjU2NTIxMzgyICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4x ZC9kb2MvbWFuNy9FVlBfS0RGX1RMUzFfUFJGLnBvZC5ldnAta2RmIG9wZW5zc2wtMS4xLjFkL2Rv Yy9tYW43L0VWUF9LREZfVExTMV9QUkYucG9kCistLS0gb3BlbnNzbC0xLjEuMWQvZG9jL21hbjcv RVZQX0tERl9UTFMxX1BSRi5wb2QuZXZwLWtkZgkyMDE5LTA5LTEzIDE1OjM5OjI0LjE3NDkxNDA1 MCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2RvYy9tYW43L0VWUF9LREZfVExTMV9QUkYucG9k CTIwMTktMDktMTMgMTU6Mzk6MjQuMTc0OTE0MDUwICswMjAwCiBAQCAtMCwwICsxLDE0MiBAQAog Kz1wb2QKICsKQEAgLTM2MjQsMTggKzM2MTgsMTAgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIv ZG9jL21hbjcvRVZQX0tERl9UTFMxX1BSRi5wb2QuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9kb2MK ICtMPGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL3NvdXJjZS9saWNlbnNlLmh0bWw+LgogKwogKz1j dXQKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9ldnBlcnIuaC5ldnAt a2RmIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9ldnBlcnIuaAotLS0tIG9wZW5zc2wt MS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9ldnBlcnIuaC5ldnAta2RmCTIwMTktMDItMjggMTM6MDU6 MDUuNjMzNTIxODA3ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2V2 cGVyci5oCTIwMTktMDItMjggMTM6MDU6MDUuNjU3NTIxMzYzICswMTAwCi1AQCAtMSw2ICsxLDYg QEAKLSAvKgotICAqIEdlbmVyYXRlZCBieSB1dGlsL21rZXJyLnBsIERPIE5PVCBFRElUCi0tICog Q29weXJpZ2h0IDE5OTUtMjAxOCBUaGUgT3BlblNTTCBQcm9qZWN0IEF1dGhvcnMuIEFsbCBSaWdo dHMgUmVzZXJ2ZWQuCi0rICogQ29weXJpZ2h0IDE5OTUtMjAxOSBUaGUgT3BlblNTTCBQcm9qZWN0 IEF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gICoKLSAgKiBMaWNlbnNlZCB1bmRlciB0 aGUgT3BlblNTTCBsaWNlbnNlICh0aGUgIkxpY2Vuc2UiKS4gIFlvdSBtYXkgbm90IHVzZQotICAq IHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IGNh biBvYnRhaW4gYSBjb3B5Ci1AQCAtNTEsNiArNTEsOSBAQCBpbnQgRVJSX2xvYWRfRVZQX3N0cmlu Z3Modm9pZCk7CitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvZXZwZXJy LmguZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvZXZwZXJyLmgKKy0tLSBv cGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvZXZwZXJyLmguZXZwLWtkZgkyMDE5LTA5LTEz IDE1OjM5OjIwLjI0Mjk4MzI4NyArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3Bl bnNzbC9ldnBlcnIuaAkyMDE5LTA5LTEzIDE1OjQyOjQyLjgxODQyNDc0MiArMDIwMAorQEAgLTU4 LDYgKzU4LDkgQEAgaW50IEVSUl9sb2FkX0VWUF9zdHJpbmdzKHZvaWQpOwogICMgZGVmaW5lIEVW UF9GX0VWUF9FTkNSWVBUREVDUllQVFVQREFURSAgICAgICAgICAgICAgICAgICAyMTkKICAjIGRl ZmluZSBFVlBfRl9FVlBfRU5DUllQVEZJTkFMX0VYICAgICAgICAgICAgICAgICAgICAgICAgMTI3 CiAgIyBkZWZpbmUgRVZQX0ZfRVZQX0VOQ1JZUFRVUERBVEUgICAgICAgICAgICAgICAgICAgICAg ICAgIDE2NwpAQCAtMzY0NSw3ICszNjMxLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5j bHVkZS9vcGVuc3NsL2V2cGVyci5oLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS8KICAj IGRlZmluZSBFVlBfRl9FVlBfTURfQ1RYX0NPUFlfRVggICAgICAgICAgICAgICAgICAgICAgICAg MTEwCiAgIyBkZWZpbmUgRVZQX0ZfRVZQX01EX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDE2MgogICMgZGVmaW5lIEVWUF9GX0VWUF9PUEVOSU5JVCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxMDIKLUBAIC0xMTMsMTAgKzExNiwxMiBAQCBpbnQgRVJSX2xvYWRfRVZQ X3N0cmluZ3Modm9pZCk7CitAQCAtMTIwLDExICsxMjMsMTMgQEAgaW50IEVSUl9sb2FkX0VWUF9z dHJpbmdzKHZvaWQpOwogICMgZGVmaW5lIEVWUF9GX1BLQ1M1X1YyX1BCRV9LRVlJVkdFTiAgICAg ICAgICAgICAgICAgICAgICAxMTgKICAjIGRlZmluZSBFVlBfRl9QS0NTNV9WMl9QQktERjJfS0VZ SVZHRU4gICAgICAgICAgICAgICAgICAgMTY0CiAgIyBkZWZpbmUgRVZQX0ZfUEtDUzVfVjJfU0NS WVBUX0tFWUlWR0VOICAgICAgICAgICAgICAgICAgIDE4MApAQCAtMzY1MywxMiArMzYzOSwxMyBA QCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZXZwZXJyLmguZXZwLWtk ZiBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlLwogICMgZGVmaW5lIEVWUF9GX1BLRVlfU0VUX1RZUEUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTgKICAjIGRlZmluZSBFVlBfRl9SQzJfTUFH SUNfVE9fTUVUSCAgICAgICAgICAgICAgICAgICAgICAgICAgMTA5CiAgIyBkZWZpbmUgRVZQX0Zf UkM1X0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyNQorICMgZGVmaW5l IEVWUF9GX1JfMzJfMTJfMTZfSU5JVF9LRVkgICAgICAgICAgICAgICAgICAgICAgICAyNDIKICAj IGRlZmluZSBFVlBfRl9TMzkwWF9BRVNfR0NNX0NUUkwgICAgICAgICAgICAgICAgICAgICAgICAg MjAxCiArIyBkZWZpbmUgRVZQX0ZfU0NSWVBUX0FMRyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDIyOAogICMgZGVmaW5lIEVWUF9GX1VQREFURSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxNzMKICAKICAvKgotQEAgLTE3MSw2ICsxNzYsNyBAQCBpbnQgRVJSX2xv YWRfRVZQX3N0cmluZ3Modm9pZCk7CitAQCAtMTgwLDYgKzE4NSw3IEBAIGludCBFUlJfbG9hZF9F VlBfc3RyaW5ncyh2b2lkKTsKICAjIGRlZmluZSBFVlBfUl9PTkxZX09ORVNIT1RfU1VQUE9SVEVE ICAgICAgICAgICAgICAgICAgICAgMTc3CiAgIyBkZWZpbmUgRVZQX1JfT1BFUkFUSU9OX05PVF9T VVBQT1JURURfRk9SX1RISVNfS0VZVFlQRSAgIDE1MAogICMgZGVmaW5lIEVWUF9SX09QRVJBVE9O X05PVF9JTklUSUFMSVpFRCAgICAgICAgICAgICAgICAgICAxNTEKQEAgLTM2NjYsMTggKzM2NTMs MTAgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2V2cGVyci5oLmV2 cC1rZGYgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS8KICAjIGRlZmluZSBFVlBfUl9QQVJUSUFMTFlf T1ZFUkxBUFBJTkcgICAgICAgICAgICAgICAgICAgICAgMTYyCiAgIyBkZWZpbmUgRVZQX1JfUEJL REYyX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4MQogICMgZGVmaW5lIEVW UF9SX1BLRVlfQVBQTElDQVRJT05fQVNOMV9NRVRIT0RfQUxSRUFEWV9SRUdJU1RFUkVEIDE3OQot ZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2tkZmVyci5oLmV2cC1rZGYg b3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2tkZmVyci5oCi0tLS0gb3BlbnNzbC0xLjEu MWIvaW5jbHVkZS9vcGVuc3NsL2tkZmVyci5oLmV2cC1rZGYJMjAxOS0wMi0yNiAxNToxNTozMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wva2RmZXJy LmgJMjAxOS0wMi0yOCAxMzowNTowNS42NTc1MjEzNjMgKzAxMDAKLUBAIC0xLDYgKzEsNiBAQAot IC8qCi0gICogR2VuZXJhdGVkIGJ5IHV0aWwvbWtlcnIucGwgRE8gTk9UIEVESVQKLS0gKiBDb3B5 cmlnaHQgMTk5NS0yMDE4IFRoZSBPcGVuU1NMIFByb2plY3QgQXV0aG9ycy4gQWxsIFJpZ2h0cyBS ZXNlcnZlZC4KLSsgKiBDb3B5cmlnaHQgMTk5NS0yMDE5IFRoZSBPcGVuU1NMIFByb2plY3QgQXV0 aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAgKgotICAqIExpY2Vuc2VkIHVuZGVyIHRoZSBP cGVuU1NMIGxpY2Vuc2UgKHRoZSAiTGljZW5zZSIpLiAgWW91IG1heSBub3QgdXNlCi0gICogdGhp cyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgY2FuIG9i dGFpbiBhIGNvcHkKLUBAIC0xOSw2ICsxOSwyMyBAQCBpbnQgRVJSX2xvYWRfS0RGX3N0cmluZ3Mo dm9pZCk7CitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wva2RmZXJyLmgu ZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wva2RmZXJyLmgKKy0tLSBvcGVu c3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wva2RmZXJyLmguZXZwLWtkZgkyMDE5LTA5LTEwIDE1 OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNz bC9rZGZlcnIuaAkyMDE5LTA5LTEzIDE1OjM5OjM0Ljg1NjcyNTk1NyArMDIwMAorQEAgLTIzLDYg KzIzLDIzIEBAIGludCBFUlJfbG9hZF9LREZfc3RyaW5ncyh2b2lkKTsKICAvKgogICAqIEtERiBm dW5jdGlvbiBjb2Rlcy4KICAgKi8KQEAgLTM3MDEsNyArMzY4MCw3IEBAIGRpZmYgLXVwIG9wZW5z c2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9rZGZlcnIuaC5ldnAta2RmIG9wZW5zc2wtMS4xLjFi L2luY2x1ZGUvCiAgIyBkZWZpbmUgS0RGX0ZfUEtFWV9IS0RGX0NUUkxfU1RSICAgICAgICAgICAg ICAgICAgICAgICAgIDEwMwogICMgZGVmaW5lIEtERl9GX1BLRVlfSEtERl9ERVJJVkUgICAgICAg ICAgICAgICAgICAgICAgICAgICAxMDIKICAjIGRlZmluZSBLREZfRl9QS0VZX0hLREZfSU5JVCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA4Ci1AQCAtMzAsNiArNDcsNyBAQCBpbnQgRVJS X2xvYWRfS0RGX3N0cmluZ3Modm9pZCk7CitAQCAtMzQsNiArNTEsNyBAQCBpbnQgRVJSX2xvYWRf S0RGX3N0cmluZ3Modm9pZCk7CiAgIyBkZWZpbmUgS0RGX0ZfUEtFWV9UTFMxX1BSRl9DVFJMX1NU UiAgICAgICAgICAgICAgICAgICAgIDEwMAogICMgZGVmaW5lIEtERl9GX1BLRVlfVExTMV9QUkZf REVSSVZFICAgICAgICAgICAgICAgICAgICAgICAxMDEKICAjIGRlZmluZSBLREZfRl9QS0VZX1RM UzFfUFJGX0lOSVQgICAgICAgICAgICAgICAgICAgICAgICAgMTEwCkBAIC0zNzA5LDE2ICszNjg4 LDE2IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9rZGZlcnIuaC5l dnAta2RmIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvCiAgIyBkZWZpbmUgS0RGX0ZfVExTMV9QUkZf QUxHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExMQogIAogIC8qCi1AQCAtNDcsNSAr NjUsNiBAQCBpbnQgRVJSX2xvYWRfS0RGX3N0cmluZ3Modm9pZCk7CitAQCAtNTEsNSArNjksNiBA QCBpbnQgRVJSX2xvYWRfS0RGX3N0cmluZ3Modm9pZCk7CiAgIyBkZWZpbmUgS0RGX1JfVU5LTk9X Tl9QQVJBTUVURVJfVFlQRSAgICAgICAgICAgICAgICAgICAgIDEwMwogICMgZGVmaW5lIEtERl9S X1ZBTFVFX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDgKICAjIGRlZmlu ZSBLREZfUl9WQUxVRV9NSVNTSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAyCiAr IyBkZWZpbmUgS0RGX1JfV1JPTkdfT1VUUFVUX0JVRkZFUl9TSVpFICAgICAgICAgICAgICAgICAg IDExMgogIAogICNlbmRpZgotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3Ns L2tkZi5oLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2tkZi5oCi0tLS0g b3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2tkZi5oLmV2cC1rZGYJMjAxOS0wMi0yNiAx NToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5z c2wva2RmLmgJMjAxOS0wMi0yOCAxMzowNTowNS42NTc1MjEzNjMgKzAxMDAKK2RpZmYgLXVwIG9w ZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9rZGYuaC5ldnAta2RmIG9wZW5zc2wtMS4xLjFk L2luY2x1ZGUvb3BlbnNzbC9rZGYuaAorLS0tIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNz bC9rZGYuaC5ldnAta2RmCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysg b3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVuc3NsL2tkZi5oCTIwMTktMDktMTMgMTU6Mzk6MzQu ODU3NzI1OTM5ICswMjAwCiBAQCAtMTAsMTAgKzEwLDUwIEBACiAgI2lmbmRlZiBIRUFERVJfS0RG X0gKICAjIGRlZmluZSBIRUFERVJfS0RGX0gKQEAgLTM3OTcsOSArMzc3Niw5IEBAIGRpZmYgLXVw IG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9rZGYuaC5ldnAta2RmIG9wZW5zc2wtMS4x LjFiL2luY2x1ZGUvb3BlCiAgfQogICMgZW5kaWYKICAjZW5kaWYKLWRpZmYgLXVwIG9wZW5zc2wt MS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9vc3NsX3R5cC5oLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIv aW5jbHVkZS9vcGVuc3NsL29zc2xfdHlwLmgKLS0tLSBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29w ZW5zc2wvb3NzbF90eXAuaC5ldnAta2RmCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICsw MTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL29zc2xfdHlwLmgJMjAxOS0w Mi0yOCAxMzowNTowNS42NTc1MjEzNjMgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2lu Y2x1ZGUvb3BlbnNzbC9vc3NsX3R5cC5oLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9v cGVuc3NsL29zc2xfdHlwLmgKKy0tLSBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvb3Nz bF90eXAuaC5ldnAta2RmCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysg b3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVuc3NsL29zc2xfdHlwLmgJMjAxOS0wOS0xMyAxNToz OTozNC44NTg3MjU5MjIgKzAyMDAKIEBAIC05Nyw2ICs5Nyw4IEBAIHR5cGVkZWYgc3RydWN0IGV2 cF9wa2V5X2FzbjFfbWV0aG9kX3N0IEUKICB0eXBlZGVmIHN0cnVjdCBldnBfcGtleV9tZXRob2Rf c3QgRVZQX1BLRVlfTUVUSE9EOwogIHR5cGVkZWYgc3RydWN0IGV2cF9wa2V5X2N0eF9zdCBFVlBf UEtFWV9DVFg7CkBAIC0zODA5LDEwICszNzg4LDEwIEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFi L2luY2x1ZGUvb3BlbnNzbC9vc3NsX3R5cC5oLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvaW5jbHVk CiAgdHlwZWRlZiBzdHJ1Y3QgZXZwX0VuY29kZV9DdHhfc3QgRVZQX0VOQ09ERV9DVFg7CiAgCiAg dHlwZWRlZiBzdHJ1Y3QgaG1hY19jdHhfc3QgSE1BQ19DVFg7Ci1kaWZmIC11cCBvcGVuc3NsLTEu MS4xYi90ZXN0L2J1aWxkLmluZm8uZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi90ZXN0L2J1aWxkLmlu Zm8KLS0tLSBvcGVuc3NsLTEuMS4xYi90ZXN0L2J1aWxkLmluZm8uZXZwLWtkZgkyMDE5LTAyLTI2 IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL3Rlc3QvYnVpbGQu aW5mbwkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1NzUyMTM2MyArMDEwMAotQEAgLTQzLDcgKzQzLDgg QEAgSU5DTFVERV9NQUlOX19fdGVzdF9saWJ0ZXN0dXRpbF9PTEIgPSAvSQorZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWQvdGVzdC9idWlsZC5pbmZvLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWQvdGVzdC9i dWlsZC5pbmZvCistLS0gb3BlbnNzbC0xLjEuMWQvdGVzdC9idWlsZC5pbmZvLmV2cC1rZGYJMjAx OS0wOS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC90ZXN0 L2J1aWxkLmluZm8JMjAxOS0wOS0xMyAxNTozOTozNC44NjE3MjU4NjkgKzAyMDAKK0BAIC00NCw3 ICs0NCw4IEBAIElOQ0xVREVfTUFJTl9fX3Rlc3RfbGlidGVzdHV0aWxfT0xCID0gL0kKICAgICAg ICAgICAgc3NsX3Rlc3RfY3R4X3Rlc3Qgc3NsX3Rlc3QgeDUwOWF1eCBjaXBoZXJsaXN0X3Rlc3Qg YXN5bmNpb3Rlc3QgXAogICAgICAgICAgICBiaW9fY2FsbGJhY2tfdGVzdCBiaW9fbWVtbGVha190 ZXN0IFwKICAgICAgICAgICAgYmlvcHJpbnR0ZXN0IHNzbGFwaXRlc3QgZHRsc3Rlc3Qgc3NsY29y cnVwdHRlc3QgYmlvX2VuY190ZXN0IFwKQEAgLTM4MjIsNyArMzgwMSw3IEBAIGRpZmYgLXVwIG9w ZW5zc2wtMS4xLjFiL3Rlc3QvYnVpbGQuaW5mby5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL3Rlc3Qv YnVpbGQuaW5mbwogICAgICAgICAgICBhc24xX2VuY29kZV90ZXN0IGFzbjFfZGVjb2RlX3Rlc3Qg YXNuMV9zdHJpbmdfdGFibGVfdGVzdCBcCiAgICAgICAgICAgIHg1MDlfdGltZV90ZXN0IHg1MDlf ZHVwX2NlcnRfdGVzdCB4NTA5X2NoZWNrX2NlcnRfcGtleV90ZXN0IFwKICAgICAgICAgICAgcmVj b3JkbGVudGVzdCBkcmJndGVzdCBzc2xidWZmZXJ0ZXN0IFwKLUBAIC0zMzUsNiArMzM2LDEwIEBA IElOQ0xVREVfTUFJTl9fX3Rlc3RfbGlidGVzdHV0aWxfT0xCID0gL0kKK0BAIC0zMzYsNiArMzM3 LDEwIEBAIElOQ0xVREVfTUFJTl9fX3Rlc3RfbGlidGVzdHV0aWxfT0xCID0gL0kKICAgIElOQ0xV REVbcGtleV9tZXRoX2tkZl90ZXN0XT0uLi9pbmNsdWRlCiAgICBERVBFTkRbcGtleV9tZXRoX2tk Zl90ZXN0XT0uLi9saWJjcnlwdG8gbGlidGVzdHV0aWwuYQogIApAQCAtMzgzMyw5ICszODEyLDkg QEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvdGVzdC9idWlsZC5pbmZvLmV2cC1rZGYgb3BlbnNz bC0xLjEuMWIvdGVzdC9idWlsZC5pbmZvCiAgICBTT1VSQ0VbeDUwOV90aW1lX3Rlc3RdPXg1MDlf dGltZV90ZXN0LmMKICAgIElOQ0xVREVbeDUwOV90aW1lX3Rlc3RdPS4uL2luY2x1ZGUKICAgIERF UEVORFt4NTA5X3RpbWVfdGVzdF09Li4vbGliY3J5cHRvIGxpYnRlc3R1dGlsLmEKLWRpZmYgLXVw IG9wZW5zc2wtMS4xLjFiL3Rlc3QvZXZwX2tkZl90ZXN0LmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4x Yi90ZXN0L2V2cF9rZGZfdGVzdC5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvdGVzdC9ldnBfa2RmX3Rl c3QuYy5ldnAta2RmCTIwMTktMDItMjggMTM6MDU6MDUuNjU4NTIxMzQ1ICswMTAwCi0rKysgb3Bl bnNzbC0xLjEuMWIvdGVzdC9ldnBfa2RmX3Rlc3QuYwkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1ODUy MTM0NSArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvdGVzdC9ldnBfa2RmX3Rlc3QuYy5l dnAta2RmIG9wZW5zc2wtMS4xLjFkL3Rlc3QvZXZwX2tkZl90ZXN0LmMKKy0tLSBvcGVuc3NsLTEu MS4xZC90ZXN0L2V2cF9rZGZfdGVzdC5jLmV2cC1rZGYJMjAxOS0wOS0xMyAxNTozOTozNC44NjI3 MjU4NTEgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC90ZXN0L2V2cF9rZGZfdGVzdC5jCTIwMTkt MDktMTMgMTU6Mzk6MzQuODYyNzI1ODUxICswMjAwCiBAQCAtMCwwICsxLDIzNyBAQAogKy8qCiAr ICogQ29weXJpZ2h0IDIwMTgtMjAxOSBUaGUgT3BlblNTTCBQcm9qZWN0IEF1dGhvcnMuIEFsbCBS aWdodHMgUmVzZXJ2ZWQuCkBAIC00MDc0LDEwICs0MDUzLDEwIEBAIGRpZmYgLXVwIG9wZW5zc2wt MS4xLjFiL3Rlc3QvZXZwX2tkZl90ZXN0LmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi90ZXN0L2V2 cF9rZGZfCiArI2VuZGlmCiArICAgIHJldHVybiAxOwogK30KLWRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL3Rlc3QvZXZwX3Rlc3QuYy5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL3Rlc3QvZXZwX3Rlc3Qu YwotLS0tIG9wZW5zc2wtMS4xLjFiL3Rlc3QvZXZwX3Rlc3QuYy5ldnAta2RmCTIwMTktMDItMjYg MTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvdGVzdC9ldnBfdGVz dC5jCTIwMTktMDItMjggMTM6MDU6MDUuNjU4NTIxMzQ1ICswMTAwCi1AQCAtMTY3MiwxMyArMTY3 MiwxNCBAQCBzdGF0aWMgY29uc3QgRVZQX1RFU1RfTUVUSE9EIGVuY29kZV90ZXN0CitkaWZmIC11 cCBvcGVuc3NsLTEuMS4xZC90ZXN0L2V2cF90ZXN0LmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC90 ZXN0L2V2cF90ZXN0LmMKKy0tLSBvcGVuc3NsLTEuMS4xZC90ZXN0L2V2cF90ZXN0LmMuZXZwLWtk ZgkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFk L3Rlc3QvZXZwX3Rlc3QuYwkyMDE5LTA5LTEzIDE1OjM5OjM0Ljg2NTcyNTc5OCArMDIwMAorQEAg LTE3MDUsMTMgKzE3MDUsMTQgQEAgc3RhdGljIGNvbnN0IEVWUF9URVNUX01FVEhPRCBlbmNvZGVf dGVzdAogICAgICBlbmNvZGVfdGVzdF9ydW4sCiAgfTsKICAKQEAgLTQwOTMsNyArNDA3Miw3IEBA IGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3Rlc3QvZXZwX3Rlc3QuYy5ldnAta2RmIG9wZW5zc2wt MS4xLjFiL3Rlc3QvZXZwX3Rlc3QuYwogICAgICAvKiBFeHBlY3RlZCBvdXRwdXQgKi8KICAgICAg dW5zaWduZWQgY2hhciAqb3V0cHV0OwogICAgICBzaXplX3Qgb3V0cHV0X2xlbjsKLUBAIC0xNzA1 LDE2ICsxNzA2LDExIEBAIHN0YXRpYyBpbnQga2RmX3Rlc3RfaW5pdChFVlBfVEVTVCAqdCwgY28K K0BAIC0xNzM4LDE2ICsxNzM5LDExIEBAIHN0YXRpYyBpbnQga2RmX3Rlc3RfaW5pdChFVlBfVEVT VCAqdCwgY28KICAKICAgICAgaWYgKCFURVNUX3B0cihrZGF0YSA9IE9QRU5TU0xfemFsbG9jKHNp emVvZigqa2RhdGEpKSkpCiAgICAgICAgICByZXR1cm4gMDsKQEAgLTQxMTEsNyArNDA5MCw3IEBA IGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3Rlc3QvZXZwX3Rlc3QuYy5ldnAta2RmIG9wZW5zc2wt MS4xLjFiL3Rlc3QvZXZwX3Rlc3QuYwogICAgICB0LT5kYXRhID0ga2RhdGE7CiAgICAgIHJldHVy biAxOwogIH0KLUBAIC0xNzIzLDcgKzE3MTksNDIgQEAgc3RhdGljIHZvaWQga2RmX3Rlc3RfY2xl YW51cChFVlBfVEVTVCAqdAorQEAgLTE3NTYsNyArMTc1Miw0MiBAQCBzdGF0aWMgdm9pZCBrZGZf dGVzdF9jbGVhbnVwKEVWUF9URVNUICp0CiAgewogICAgICBLREZfREFUQSAqa2RhdGEgPSB0LT5k YXRhOwogICAgICBPUEVOU1NMX2ZyZWUoa2RhdGEtPm91dHB1dCk7CkBAIC00MTU1LDcgKzQxMzQs NyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi90ZXN0L2V2cF90ZXN0LmMuZXZwLWtkZiBvcGVu c3NsLTEuMS4xYi90ZXN0L2V2cF90ZXN0LmMKICB9CiAgCiAgc3RhdGljIGludCBrZGZfdGVzdF9w YXJzZShFVlBfVEVTVCAqdCwKLUBAIC0xNzM0LDcgKzE3NjUsNyBAQCBzdGF0aWMgaW50IGtkZl90 ZXN0X3BhcnNlKEVWUF9URVNUICp0LAorQEAgLTE3NjcsNyArMTc5OCw3IEBAIHN0YXRpYyBpbnQg a2RmX3Rlc3RfcGFyc2UoRVZQX1RFU1QgKnQsCiAgICAgIGlmIChzdHJjbXAoa2V5d29yZCwgIk91 dHB1dCIpID09IDApCiAgICAgICAgICByZXR1cm4gcGFyc2VfYmluKHZhbHVlLCAma2RhdGEtPm91 dHB1dCwgJmtkYXRhLT5vdXRwdXRfbGVuKTsKICAgICAgaWYgKHN0cm5jbXAoa2V5d29yZCwgIkN0 cmwiLCA0KSA9PSAwKQpAQCAtNDE2NCw3ICs0MTQzLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEu MWIvdGVzdC9ldnBfdGVzdC5jLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvdGVzdC9ldnBfdGVzdC5j CiAgICAgIHJldHVybiAwOwogIH0KICAKLUBAIC0xNzQ4LDcgKzE3NzksNyBAQCBzdGF0aWMgaW50 IGtkZl90ZXN0X3J1bihFVlBfVEVTVCAqdCkKK0BAIC0xNzgxLDcgKzE4MTIsNyBAQCBzdGF0aWMg aW50IGtkZl90ZXN0X3J1bihFVlBfVEVTVCAqdCkKICAgICAgICAgIHQtPmVyciA9ICJJTlRFUk5B TF9FUlJPUiI7CiAgICAgICAgICBnb3RvIGVycjsKICAgICAgfQpAQCAtNDE3Myw3ICs0MTUyLDcg QEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvdGVzdC9ldnBfdGVzdC5jLmV2cC1rZGYgb3BlbnNz bC0xLjEuMWIvdGVzdC9ldnBfdGVzdC5jCiAgICAgICAgICB0LT5lcnIgPSAiS0RGX0RFUklWRV9F UlJPUiI7CiAgICAgICAgICBnb3RvIGVycjsKICAgICAgfQotQEAgLTE3NzQsNiArMTgwNSwxMDYg QEAgc3RhdGljIGNvbnN0IEVWUF9URVNUX01FVEhPRCBrZGZfdGVzdF9tZQorQEAgLTE4MDcsNiAr MTgzOCwxMDYgQEAgc3RhdGljIGNvbnN0IEVWUF9URVNUX01FVEhPRCBrZGZfdGVzdF9tZQogIAog IAogIC8qKgpAQCAtNDI4MCw3ICs0MjU5LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvdGVz dC9ldnBfdGVzdC5jLmV2cC1rZGYgb3BlbnNzbC0xLjEuMWIvdGVzdC9ldnBfdGVzdC5jCiAgKioq ICBLRVlQQUlSIFRFU1RTCiAgKiovCiAgCi1AQCAtMjI3Nyw2ICsyNDA4LDcgQEAgc3RhdGljIGNv bnN0IEVWUF9URVNUX01FVEhPRCAqZXZwX3Rlc3RfbAorQEAgLTIzMTAsNiArMjQ0MSw3IEBAIHN0 YXRpYyBjb25zdCBFVlBfVEVTVF9NRVRIT0QgKmV2cF90ZXN0X2wKICAgICAgJmRpZ2VzdHZlcmlm eV90ZXN0X21ldGhvZCwKICAgICAgJmVuY29kZV90ZXN0X21ldGhvZCwKICAgICAgJmtkZl90ZXN0 X21ldGhvZCwKQEAgLTQyODgsOSArNDI2Nyw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3Rl c3QvZXZwX3Rlc3QuYy5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL3Rlc3QvZXZwX3Rlc3QuYwogICAg ICAma2V5cGFpcl90ZXN0X21ldGhvZCwKICAgICAgJmtleWdlbl90ZXN0X21ldGhvZCwKICAgICAg Jm1hY190ZXN0X21ldGhvZCwKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3Rlc3QvcGtleV9tZXRo X2tkZl90ZXN0LmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi90ZXN0L3BrZXlfbWV0aF9rZGZfdGVz dC5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvdGVzdC9wa2V5X21ldGhfa2RmX3Rlc3QuYy5ldnAta2Rm CTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIv dGVzdC9wa2V5X21ldGhfa2RmX3Rlc3QuYwkyMDE5LTAyLTI4IDEzOjA1OjA1LjY1ODUyMTM0NSAr MDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvdGVzdC9wa2V5X21ldGhfa2RmX3Rlc3QuYy5l dnAta2RmIG9wZW5zc2wtMS4xLjFkL3Rlc3QvcGtleV9tZXRoX2tkZl90ZXN0LmMKKy0tLSBvcGVu c3NsLTEuMS4xZC90ZXN0L3BrZXlfbWV0aF9rZGZfdGVzdC5jLmV2cC1rZGYJMjAxOS0wOS0xMCAx NToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC90ZXN0L3BrZXlfbWV0 aF9rZGZfdGVzdC5jCTIwMTktMDktMTMgMTU6Mzk6MzQuODY3NzI1NzYzICswMjAwCiBAQCAtMSw1 ICsxLDUgQEAKICAvKgogLSAqIENvcHlyaWdodCAyMDE3LTIwMTggVGhlIE9wZW5TU0wgUHJvamVj dCBBdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgpAQCAtNDQ5NCw5ICs0NDczLDkgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjEuMWIvdGVzdC9wa2V5X21ldGhfa2RmX3Rlc3QuYy5ldnAta2RmIG9w ZW5zc2wtMS4xLjFiL3Rlc3QvcGsKICB9CiAgI2VuZGlmCiAgCi1kaWZmIC11cCBvcGVuc3NsLTEu MS4xYi90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnBfZGF0YS9ldnBrZGYudHh0LmV2cC1rZGYgb3Bl bnNzbC0xLjEuMWIvdGVzdC9yZWNpcGVzLzMwLXRlc3RfZXZwX2RhdGEvZXZwa2RmLnR4dAotLS0t IG9wZW5zc2wtMS4xLjFiL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9kYXRhL2V2cGtkZi50eHQu ZXZwLWtkZgkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wt MS4xLjFiL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9kYXRhL2V2cGtkZi50eHQJMjAxOS0wMi0y OCAxMzowNTowNS42NTk1MjEzMjYgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL3Rlc3Qv cmVjaXBlcy8zMC10ZXN0X2V2cF9kYXRhL2V2cGtkZi50eHQuZXZwLWtkZiBvcGVuc3NsLTEuMS4x ZC90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnBfZGF0YS9ldnBrZGYudHh0CistLS0gb3BlbnNzbC0x LjEuMWQvdGVzdC9yZWNpcGVzLzMwLXRlc3RfZXZwX2RhdGEvZXZwa2RmLnR4dC5ldnAta2RmCTIw MTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvdGVz dC9yZWNpcGVzLzMwLXRlc3RfZXZwX2RhdGEvZXZwa2RmLnR4dAkyMDE5LTA5LTEzIDE1OjM5OjM0 Ljg3MDcyNTcxMCArMDIwMAogQEAgLTEsNSArMSw1IEBACiAgIwogLSMgQ29weXJpZ2h0IDIwMDEt MjAxNyBUaGUgT3BlblNTTCBQcm9qZWN0IEF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCkBA IC00ODk1LDkgKzQ4NzQsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi90ZXN0L3JlY2lwZXMv MzAtdGVzdF9ldnBfZGF0YS9ldnBrZGYudHh0LmV2cC1rZGYgb3BlbnNzbAogK0N0cmwuZGlnZXN0 ID0gZGlnZXN0OnNoYTUxMgogK091dHB1dCA9IDAwZWY0MmNkYmZjOThkMjlkYjIwOTc2NjA4ZTQ1 NTU2N2ZkZGRmMTQKICsKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3Rlc3QvcmVjaXBlcy8zMC10 ZXN0X2V2cF9kYXRhL2V2cHBrZXlfa2RmLnR4dC5ldnAta2RmIG9wZW5zc2wtMS4xLjFiL3Rlc3Qv cmVjaXBlcy8zMC10ZXN0X2V2cF9kYXRhL2V2cHBrZXlfa2RmLnR4dAotLS0tIG9wZW5zc2wtMS4x LjFiL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9kYXRhL2V2cHBrZXlfa2RmLnR4dC5ldnAta2Rm CTIwMTktMDItMjggMTM6MDU6MDUuNjU5NTIxMzI2ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIv dGVzdC9yZWNpcGVzLzMwLXRlc3RfZXZwX2RhdGEvZXZwcGtleV9rZGYudHh0CTIwMTktMDItMjgg MTM6MDU6MDUuNjU5NTIxMzI2ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC90ZXN0L3Jl Y2lwZXMvMzAtdGVzdF9ldnBfZGF0YS9ldnBwa2V5X2tkZi50eHQuZXZwLWtkZiBvcGVuc3NsLTEu MS4xZC90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnBfZGF0YS9ldnBwa2V5X2tkZi50eHQKKy0tLSBv cGVuc3NsLTEuMS4xZC90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnBfZGF0YS9ldnBwa2V5X2tkZi50 eHQuZXZwLWtkZgkyMDE5LTA5LTEzIDE1OjM5OjM0Ljg3MzcyNTY1OCArMDIwMAorKysrIG9wZW5z c2wtMS4xLjFkL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9kYXRhL2V2cHBrZXlfa2RmLnR4dAky MDE5LTA5LTEzIDE1OjM5OjM0Ljg3MjcyNTY3NSArMDIwMAogQEAgLTAsMCArMSwzMDUgQEAKICsj CiArIyBDb3B5cmlnaHQgMjAwMS0yMDE4IFRoZSBPcGVuU1NMIFByb2plY3QgQXV0aG9ycy4gQWxs IFJpZ2h0cyBSZXNlcnZlZC4KQEAgLTUyMDQsOSArNTE4Myw5IEBAIGRpZmYgLXVwIG9wZW5zc2wt MS4xLjFiL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9kYXRhL2V2cHBrZXlfa2RmLnR4dC5ldnAt a2RmIG9wCiArQ3RybC5wID0gcDoxCiArUmVzdWx0ID0gSU5URVJOQUxfRVJST1IKICsKLWRpZmYg LXVwIG9wZW5zc2wtMS4xLjFiL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9rZGYudC5ldnAta2Rm IG9wZW5zc2wtMS4xLjFiL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9rZGYudAotLS0tIG9wZW5z c2wtMS4xLjFiL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9rZGYudC5ldnAta2RmCTIwMTktMDIt MjggMTM6MDU6MDUuNjU5NTIxMzI2ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvdGVzdC9yZWNp cGVzLzMwLXRlc3RfZXZwX2tkZi50CTIwMTktMDItMjggMTM6MDU6MDUuNjU5NTIxMzI2ICswMTAw CitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnBfa2RmLnQu ZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnBfa2RmLnQKKy0t LSBvcGVuc3NsLTEuMS4xZC90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnBfa2RmLnQuZXZwLWtkZgky MDE5LTA5LTEzIDE1OjM5OjM0Ljg3NTcyNTYyMiArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL3Rl c3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9rZGYudAkyMDE5LTA5LTEzIDE1OjM5OjM0Ljg3NTcyNTYy MiArMDIwMAogQEAgLTAsMCArMSwxMyBAQAogKyMhIC91c3IvYmluL2VudiBwZXJsCiArIyBDb3B5 cmlnaHQgMjAxOCBUaGUgT3BlblNTTCBQcm9qZWN0IEF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2 ZWQuCkBAIC01MjIxLDkgKzUyMDAsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi90ZXN0L3Jl Y2lwZXMvMzAtdGVzdF9ldnBfa2RmLnQuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi90ZQogK3VzZSBP cGVuU1NMOjpUZXN0OjpTaW1wbGU7CiArCiArc2ltcGxlX3Rlc3QoInRlc3RfZXZwX2tkZiIsICJl dnBfa2RmX3Rlc3QiKTsKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFjL3Rlc3QvcmVjaXBlcy8zMC10 ZXN0X2V2cC50LmV2cC1rZGYgb3BlbnNzbC0xLjEuMWMvdGVzdC9yZWNpcGVzLzMwLXRlc3RfZXZw LnQKLS0tLSBvcGVuc3NsLTEuMS4xYy90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnAudC5ldnAta2Rm CTIwMTktMDUtMjkgMTY6NTU6MzguMjM2OTYwNTQzICswMjAwCi0rKysgb3BlbnNzbC0xLjEuMWMv dGVzdC9yZWNpcGVzLzMwLXRlc3RfZXZwLnQJMjAxOS0wNS0yOSAxNjo1Nzo0Ni4zNDg3MTgwMTIg KzAyMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cC50 LmV2cC1rZGYgb3BlbnNzbC0xLjEuMWQvdGVzdC9yZWNpcGVzLzMwLXRlc3RfZXZwLnQKKy0tLSBv cGVuc3NsLTEuMS4xZC90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnAudC5ldnAta2RmCTIwMTktMDkt MTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvdGVzdC9yZWNp cGVzLzMwLXRlc3RfZXZwLnQJMjAxOS0wOS0xMyAxNTozOTozNC44NzY3MjU2MDUgKzAyMDAKIEBA IC0xNSw3ICsxNSw3IEBAIHVzZSBPcGVuU1NMOjpUZXN0IHF3LzpERUZBVUxUIGRhdGFfZmlsZS8K ICBzZXR1cCgidGVzdF9ldnAiKTsKICAKQEAgLTUyMzMsMTEgKzUyMTIsMTAgQEAgZGlmZiAtdXAg b3BlbnNzbC0xLjEuMWMvdGVzdC9yZWNpcGVzLzMwLXRlc3RfZXZwLnQuZXZwLWtkZiBvcGVuc3Ns LTEuMS4xYy90ZXN0L3IKICAgICAgImV2cGNhc2UudHh0IiwgImV2cGNjbWNhdnMudHh0IiApOwog IAogIHBsYW4gdGVzdHMgPT4gc2NhbGFyKEBmaWxlcyk7Ci0gCi1kaWZmIC11cCBvcGVuc3NsLTEu MS4xYi91dGlsL2xpYmNyeXB0by5udW0uZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi91dGlsL2xpYmNy eXB0by5udW0KLS0tLSBvcGVuc3NsLTEuMS4xYi91dGlsL2xpYmNyeXB0by5udW0uZXZwLWtkZgky MDE5LTAyLTI4IDEzOjA1OjA1LjYzNjUyMTc1MiArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL3V0 aWwvbGliY3J5cHRvLm51bQkyMDE5LTAyLTI4IDEzOjA1OjA1LjY2MDUyMTMwOCArMDEwMAotQEAg LTQ2MTQsMyArNDYxNCwxMSBAQCBGSVBTX2RyYmdfZ2V0X3N0cmVuZ3RoCitkaWZmIC11cCBvcGVu c3NsLTEuMS4xZC91dGlsL2xpYmNyeXB0by5udW0uZXZwLWtkZiBvcGVuc3NsLTEuMS4xZC91dGls L2xpYmNyeXB0by5udW0KKy0tLSBvcGVuc3NsLTEuMS4xZC91dGlsL2xpYmNyeXB0by5udW0uZXZw LWtkZgkyMDE5LTA5LTEzIDE1OjM5OjIwLjI0ODk4MzE4MiArMDIwMAorKysrIG9wZW5zc2wtMS4x LjFkL3V0aWwvbGliY3J5cHRvLm51bQkyMDE5LTA5LTEzIDE1OjM5OjM0Ljg4MTcyNTUxNyArMDIw MAorQEAgLTQ2MTcsMyArNDYxNywxMSBAQCBGSVBTX2RyYmdfZ2V0X3N0cmVuZ3RoCiAgRklQU19y YW5kX3N0cmVuZ3RoICAgICAgICAgICAgICAgICAgICAgIDYzODAJMV8xXzBnCUVYSVNUOjpGVU5D VElPTjoKICBGSVBTX2RyYmdfZ2V0X2Jsb2NrbGVuZ3RoICAgICAgICAgICAgICAgNjM4MQkxXzFf MGcJRVhJU1Q6OkZVTkNUSU9OOgogIEZJUFNfZHJiZ19pbml0ICAgICAgICAgICAgICAgICAgICAg ICAgICA2MzgyCTFfMV8wZwlFWElTVDo6RlVOQ1RJT046CkBAIC01MjQ5LDkgKzUyMjcsOSBAQCBk aWZmIC11cCBvcGVuc3NsLTEuMS4xYi91dGlsL2xpYmNyeXB0by5udW0uZXZwLWtkZiBvcGVuc3Ns LTEuMS4xYi91dGlsL2xpYmNyeXB0bwogK0VWUF9LREZfY3RybF9zdHIgICAgICAgICAgICAgICAg ICAgICAgICA2NTk1CTFfMV8xYglFWElTVDo6RlVOQ1RJT046CiArRVZQX0tERl9zaXplICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDY1OTYJMV8xXzFiCUVYSVNUOjpGVU5DVElPTjoKICtFVlBf S0RGX2Rlcml2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgNjU5NwkxXzFfMWIJRVhJU1Q6OkZV TkNUSU9OOgotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvdXRpbC9wcml2YXRlLm51bS5ldnAta2Rm IG9wZW5zc2wtMS4xLjFiL3V0aWwvcHJpdmF0ZS5udW0KLS0tLSBvcGVuc3NsLTEuMS4xYi91dGls L3ByaXZhdGUubnVtLmV2cC1rZGYJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBvcGVuc3NsLTEuMS4xYi91dGlsL3ByaXZhdGUubnVtCTIwMTktMDItMjggMTM6MDU6MDUu NjYwNTIxMzA4ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC91dGlsL3ByaXZhdGUubnVt LmV2cC1rZGYgb3BlbnNzbC0xLjEuMWQvdXRpbC9wcml2YXRlLm51bQorLS0tIG9wZW5zc2wtMS4x LjFkL3V0aWwvcHJpdmF0ZS5udW0uZXZwLWtkZgkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAw MCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL3V0aWwvcHJpdmF0ZS5udW0JMjAxOS0wOS0xMyAx NTozOTozNC44ODM3MjU0ODEgKzAyMDAKIEBAIC0yMSw2ICsyMSw3IEBAIENSWVBUT19FWF9kdXAK ICBDUllQVE9fRVhfZnJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YXR5cGUKICBDUllQ VE9fRVhfbmV3ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YXR5cGUKCmRpZmYgLS1naXQg YS9vcGVuc3NsLTEuMS4xLWZpcHMtY3JuZy10ZXN0LnBhdGNoIGIvb3BlbnNzbC0xLjEuMS1maXBz LWNybmctdGVzdC5wYXRjaAppbmRleCA5MTg0MWYxLi45YmU1YzMwIDEwMDY0NAotLS0gYS9vcGVu c3NsLTEuMS4xLWZpcHMtY3JuZy10ZXN0LnBhdGNoCisrKyBiL29wZW5zc2wtMS4xLjEtZmlwcy1j cm5nLXRlc3QucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vaW5jbHVkZS9pbnRlcm5hbC9yYW5kX2ludC5oLmNybmctdGVzdCBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vaW5jbHVkZS9pbnRlcm5hbC9yYW5kX2ludC5oCi0tLS0gb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvcmFuZF9pbnQuaC5jcm5nLXRlc3QJMjAxOS0wNS0wNyAw ODo1NjozMy4yNDIxNzkxMzYgKzAyMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vaW5jbHVk ZS9pbnRlcm5hbC9yYW5kX2ludC5oCTIwMTktMDUtMDcgMDk6NTQ6MTQuOTIwMjA0ODc1ICswMjAw Ci1AQCAtNDksNiArNDksMTQgQEAgc2l6ZV90IHJhbmRfZHJiZ19nZXRfYWRkaXRpb25hbF9kYXRh KFJBTgorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvcmFu ZF9pbnQuaC5jcm5nLXRlc3Qgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwv cmFuZF9pbnQuaAorLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9pbmNsdWRlL2ludGVybmFsL3Jh bmRfaW50LmguY3JuZy10ZXN0CTIwMTktMDktMTMgMTY6MDM6NTQuNTcyMjM4OTI3ICswMjAwCisr Kysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvcmFuZF9pbnQuaAkyMDE5 LTA5LTEzIDE2OjAzOjU0Ljk2NjIzMjA1NiArMDIwMAorQEAgLTQ4LDYgKzQ4LDE0IEBAIHNpemVf dCByYW5kX2RyYmdfZ2V0X2FkZGl0aW9uYWxfZGF0YShSQU4KICAKICB2b2lkIHJhbmRfZHJiZ19j bGVhbnVwX2FkZGl0aW9uYWxfZGF0YShSQU5EX1BPT0wgKnBvb2wsIHVuc2lnbmVkIGNoYXIgKm91 dCk7CiAgCkBAIC0xNiwxOCArMTYsMTggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRv L2luY2x1ZGUvaW50ZXJuYWwvcmFuZF9pbnQuaC5jcm5nLXRlc3Qgb3BlbnNzbC0xLjEKICAvKgog ICAqIFJBTkRfUE9PTCBmdW5jdGlvbnMKICAgKi8KLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2Ny eXB0by9yYW5kL2J1aWxkLmluZm8uY3JuZy10ZXN0IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yYW5k L2J1aWxkLmluZm8KLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9idWlsZC5pbmZvLmNy bmctdGVzdAkyMDE5LTA1LTA3IDA5OjU0OjE0LjkyMTIwNDg1NyArMDIwMAotKysrIG9wZW5zc2wt MS4xLjFiL2NyeXB0by9yYW5kL2J1aWxkLmluZm8JMjAxOS0wNS0wNyAwOTo1NToyMi43MzAwMTQ3 MDUgKzAyMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yYW5kL2J1aWxkLmluZm8u Y3JuZy10ZXN0IG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yYW5kL2J1aWxkLmluZm8KKy0tLSBvcGVu c3NsLTEuMS4xZC9jcnlwdG8vcmFuZC9idWlsZC5pbmZvLmNybmctdGVzdAkyMDE5LTA5LTEwIDE1 OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yYW5kL2J1 aWxkLmluZm8JMjAxOS0wOS0xMyAxNjowMzo1NC45NjgyMzIwMjEgKzAyMDAKIEBAIC0xLDQgKzEs NCBAQAogIExJQlM9Li4vLi4vbGliY3J5cHRvCiAgU09VUkNFWy4uLy4uL2xpYmNyeXB0b109XAog LSAgICAgICAgcmFuZGZpbGUuYyByYW5kX2xpYi5jIHJhbmRfZXJyLmMgcmFuZF9lZ2QuYyBcCiAr ICAgICAgICByYW5kZmlsZS5jIHJhbmRfbGliLmMgcmFuZF9lcnIuYyByYW5kX2NybmdfdGVzdC5j IHJhbmRfZWdkLmMgXAogICAgICAgICAgcmFuZF93aW4uYyByYW5kX3VuaXguYyByYW5kX3Ztcy5j IGRyYmdfbGliLmMgZHJiZ19jdHIuYwotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3Jh bmQvZHJiZ19saWIuYy5jcm5nLXRlc3Qgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JhbmQvZHJiZ19s aWIuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yYW5kL2RyYmdfbGliLmMuY3JuZy10ZXN0 CTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL3JhbmQvZHJiZ19saWIuYwkyMDE5LTA1LTA3IDEwOjA0OjUxLjc1MzE1NzIyNCArMDIw MAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3JhbmQvZHJiZ19saWIuYy5jcm5nLXRl c3Qgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3JhbmQvZHJiZ19saWIuYworLS0tIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9yYW5kL2RyYmdfbGliLmMuY3JuZy10ZXN0CTIwMTktMDktMTAgMTU6MTM6MDcu MDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3JhbmQvZHJiZ19saWIu YwkyMDE5LTA5LTEzIDE2OjAzOjU0Ljk2OTIzMjAwNCArMDIwMAogQEAgLTY3LDcgKzY3LDcgQEAg c3RhdGljIENSWVBUT19USFJFQURfTE9DQUwgcHJpdmF0ZV9kcmJnOwogIAogIApAQCAtNTEsOSAr NTEsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9kcmJnX2xpYi5jLmNy bmctdGVzdCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcgogICNpZm5kZWYgUkFORF9EUkJHX0dFVF9S QU5ET01fTk9OQ0UKICAgICAgICAgIGRyYmctPmdldF9ub25jZSA9IHJhbmRfZHJiZ19nZXRfbm9u Y2U7CiAgICAgICAgICBkcmJnLT5jbGVhbnVwX25vbmNlID0gcmFuZF9kcmJnX2NsZWFudXBfbm9u Y2U7Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2NybmdfdGVzdC5j LmNybmctdGVzdCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2NybmdfdGVzdC5jCi0t LS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JhbmQvcmFuZF9jcm5nX3Rlc3QuYy5jcm5nLXRlc3QJ MjAxOS0wNS0wNyAwOTo1NDoxNC45MjUyMDQ3ODcgKzAyMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vcmFuZC9yYW5kX2NybmdfdGVzdC5jCTIwMTktMDUtMDcgMDk6NTQ6MTQuOTMyMjA0NjY0 ICswMjAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcmFuZC9yYW5kX2NybmdfdGVz dC5jLmNybmctdGVzdCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcmFuZC9yYW5kX2NybmdfdGVzdC5j CistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3JhbmQvcmFuZF9jcm5nX3Rlc3QuYy5jcm5nLXRl c3QJMjAxOS0wOS0xMyAxNjowMzo1NC45NjkyMzIwMDQgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4x ZC9jcnlwdG8vcmFuZC9yYW5kX2NybmdfdGVzdC5jCTIwMTktMDktMTMgMTY6MTU6MjAuODM0Mjcx MDYzICswMjAwCiBAQCAtMCwwICsxLDExOCBAQAogKy8qCiArICogQ29weXJpZ2h0IDIwMTkgVGhl IE9wZW5TU0wgUHJvamVjdCBBdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgpAQCAtMTEwLDcg KzExMCw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yYW5kL3JhbmRfY3JuZ190 ZXN0LmMuY3JuZy10ZXN0IG9wZW5zc2wtMS4xLjFiL2NyCiArewogKyAgICB1bnNpZ25lZCBjaGFy IGJ1ZltDUk5HVF9CVUZTSVpdOwogKwotKyAgICBpZiAoKGNybmd0X3Bvb2wgPSByYW5kX3Bvb2xf bmV3KDAsIENSTkdUX0JVRlNJWiwgQ1JOR1RfQlVGU0laKSkgPT0gTlVMTCkKKysgICAgaWYgKChj cm5ndF9wb29sID0gcmFuZF9wb29sX25ldygwLCAxLCBDUk5HVF9CVUZTSVosIENSTkdUX0JVRlNJ WikpID09IE5VTEwpCiArICAgICAgICByZXR1cm4gMDsKICsgICAgaWYgKGNybmd0X2dldF9lbnRy b3B5KGJ1ZiwgY3JuZ3RfcHJldiwgTlVMTCkpIHsKICsgICAgICAgIE9QRU5TU0xfY2xlYW5zZShi dWYsIHNpemVvZihidWYpKTsKQEAgLTE0Nyw3ICsxNDcsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEu MS4xYi9jcnlwdG8vcmFuZC9yYW5kX2NybmdfdGVzdC5jLmNybmctdGVzdCBvcGVuc3NsLTEuMS4x Yi9jcgogKyAgICBpZiAoIVJVTl9PTkNFKCZyYW5kX2Nybmd0X2luaXRfZmxhZywgZG9fcmFuZF9j cm5ndF9pbml0KSkKICsgICAgICAgIHJldHVybiAwOwogKwotKyAgICBpZiAoKHBvb2wgPSByYW5k X3Bvb2xfbmV3KGVudHJvcHksIG1pbl9sZW4sIG1heF9sZW4pKSA9PSBOVUxMKQorKyAgICBpZiAo KHBvb2wgPSByYW5kX3Bvb2xfbmV3KGVudHJvcHksIDEsIG1pbl9sZW4sIG1heF9sZW4pKSA9PSBO VUxMKQogKyAgICAgICAgcmV0dXJuIDA7CiArCiArICAgIHdoaWxlICgocSA9IHJhbmRfcG9vbF9i eXRlc19uZWVkZWQocG9vbCwgMSkpID4gMCAmJiBhdHRlbXB0cy0tID4gMCkgewpAQCAtMTczLDkg KzE3Myw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yYW5kL3JhbmRfY3JuZ190 ZXN0LmMuY3JuZy10ZXN0IG9wZW5zc2wtMS4xLjFiL2NyCiArewogKyAgICBPUEVOU1NMX3NlY3Vy ZV9jbGVhcl9mcmVlKG91dCwgb3V0bGVuKTsKICt9Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vcmFuZC9yYW5kX2xjbC5oLmNybmctdGVzdCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcmFu ZC9yYW5kX2xjbC5oCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JhbmQvcmFuZF9sY2wuaC5j cm5nLXRlc3QJMjAxOS0wNS0wNyAwODo1NjozMy4zMzAxNzc2NzQgKzAyMDAKLSsrKyBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oCTIwMTktMDUtMDcgMDk6NTQ6MTQuOTMzMjA0 NjQ3ICswMjAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcmFuZC9yYW5kX2xjbC5o LmNybmctdGVzdCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oCistLS0gb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL3JhbmQvcmFuZF9sY2wuaC5jcm5nLXRlc3QJMjAxOS0wOS0xMyAx NjowMzo1NC42NTMyMzc1MTQgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcmFuZC9y YW5kX2xjbC5oCTIwMTktMDktMTMgMTY6MDM6NTQuOTY5MjMyMDA0ICswMjAwCiBAQCAtMzMsNyAr MzMsMTUgQEAKICAjIGRlZmluZSBNQVNURVJfUkVTRUVEX1RJTUVfSU5URVJWQUwgICAgICAgICAg ICAgKDYwKjYwKSAgIC8qIDEgaG91ciAqLwogICMgZGVmaW5lIFNMQVZFX1JFU0VFRF9USU1FX0lO VEVSVkFMICAgICAgICAgICAgICAoNyo2MCkgICAgLyogNyBtaW51dGVzICovCkBAIC0xOTMsMTcg KzE5MywxNiBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2xjbC5o LmNybmctdGVzdCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcgogIAogIC8qCiAgICogTWF4aW11bSBp bnB1dCBzaXplIGZvciB0aGUgRFJCRyAoZW50cm9weSwgbm9uY2UsIHBlcnNvbmFsaXphdGlvbiBz dHJpbmcpCi1AQCAtNDQsNyArNTIsOCBAQAorQEAgLTQ0LDYgKzUyLDggQEAKICAgKi8KICAjIGRl ZmluZSBEUkJHX01BWF9MRU5HVEggICAgICAgICAgICAgICAgICAgICAgICAgSU5UMzJfTUFYCiAg Ci0tCiArLyogVGhlIGRlZmF1bHQgbm9uY2UgKi8KICsjIGRlZmluZSBEUkJHX0RFRkFVTFRfUEVS U19TVFJJTkcgICAgICAgICAgICAgICAgIk9wZW5TU0wgTklTVCBTUCA4MDAtOTBBIERSQkciCiAg CiAgLyoKICAgKiBNYXhpbXVtIGFsbG9jYXRpb24gc2l6ZSBmb3IgUkFORE9NX1BPT0wgYnVmZmVy cwotQEAgLTI5MCw0ICsyOTksMjIgQEAgaW50IHJhbmRfZHJiZ19lbmFibGVfbG9ja2luZyhSQU5E X0RSQkcgKgorQEAgLTI5Niw0ICszMDYsMjIgQEAgaW50IHJhbmRfZHJiZ19lbmFibGVfbG9ja2lu ZyhSQU5EX0RSQkcgKgogIC8qIGluaXRpYWxpemVzIHRoZSBBRVMtQ1RSIERSQkcgaW1wbGVtZW50 YXRpb24gKi8KICBpbnQgZHJiZ19jdHJfaW5pdChSQU5EX0RSQkcgKmRyYmcpOwogIApAQCAtMjI2 LDEwICsyMjUsMTAgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JhbmQvcmFuZF9s Y2wuaC5jcm5nLXRlc3Qgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3IKICtpbnQgcmFuZF9jcm5ndF9z aW5nbGVfaW5pdCh2b2lkKTsKICsKICAjZW5kaWYKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3Rl c3QvZHJiZ3Rlc3QuYy5jcm5nLXRlc3Qgb3BlbnNzbC0xLjEuMWIvdGVzdC9kcmJndGVzdC5jCi0t LS0gb3BlbnNzbC0xLjEuMWIvdGVzdC9kcmJndGVzdC5jLmNybmctdGVzdAkyMDE5LTAyLTI2IDE1 OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL3Rlc3QvZHJiZ3Rlc3Qu YwkyMDE5LTA1LTA3IDEwOjA2OjI0LjcwNjU1MTU2MSArMDIwMAotQEAgLTE0Myw2ICsxNDMsMzEg QEAgc3RhdGljIHNpemVfdCBrYXRfbm9uY2UoUkFORF9EUkJHICpkcmJnLAorZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWQvdGVzdC9kcmJndGVzdC5jLmNybmctdGVzdCBvcGVuc3NsLTEuMS4xZC90ZXN0 L2RyYmd0ZXN0LmMKKy0tLSBvcGVuc3NsLTEuMS4xZC90ZXN0L2RyYmd0ZXN0LmMuY3JuZy10ZXN0 CTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQv dGVzdC9kcmJndGVzdC5jCTIwMTktMDktMTMgMTY6MDM6NTQuOTY5MjMyMDA0ICswMjAwCitAQCAt MTUwLDYgKzE1MCwzMSBAQCBzdGF0aWMgc2l6ZV90IGthdF9ub25jZShSQU5EX0RSQkcgKmRyYmcs CiAgICAgIHJldHVybiB0LT5ub25jZWxlbjsKICB9CiAgCkBAIC0yNjEsNyArMjYwLDcgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjEuMWIvdGVzdC9kcmJndGVzdC5jLmNybmctdGVzdCBvcGVuc3NsLTEu MS4xYi90ZXN0L2RyYmd0ZXN0LmMKICBzdGF0aWMgaW50IHVuaW5zdGFudGlhdGUoUkFORF9EUkJH ICpkcmJnKQogIHsKICAgICAgaW50IHJldCA9IGRyYmcgPT0gTlVMTCA/IDEgOiBSQU5EX0RSQkdf dW5pbnN0YW50aWF0ZShkcmJnKTsKLUBAIC0xNjgsNyArMTkzLDggQEAgc3RhdGljIGludCBzaW5n bGVfa2F0KERSQkdfU0VMRlRFU1RfREFUQQorQEAgLTE3NSw3ICsyMDAsOCBAQCBzdGF0aWMgaW50 IHNpbmdsZV9rYXQoRFJCR19TRUxGVEVTVF9EQVRBCiAgICAgIGlmICghVEVTVF9wdHIoZHJiZyA9 IFJBTkRfRFJCR19uZXcodGQtPm5pZCwgdGQtPmZsYWdzLCBOVUxMKSkpCiAgICAgICAgICByZXR1 cm4gMDsKICAgICAgaWYgKCFURVNUX3RydWUoUkFORF9EUkJHX3NldF9jYWxsYmFja3MoZHJiZywg a2F0X2VudHJvcHksIE5VTEwsCkBAIC0yNzEsNyArMjcwLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWIvdGVzdC9kcmJndGVzdC5jLmNybmctdGVzdCBvcGVuc3NsLTEuMS4xYi90ZXN0L2RyYmd0 ZXN0LmMKICAgICAgICAgIGZhaWx1cmVzKys7CiAgICAgICAgICBnb3RvIGVycjsKICAgICAgfQot QEAgLTI4Niw3ICszMTIsOCBAQCBzdGF0aWMgaW50IGVycm9yX2NoZWNrKERSQkdfU0VMRlRFU1Rf REFUCitAQCAtMjkzLDcgKzMxOSw4IEBAIHN0YXRpYyBpbnQgZXJyb3JfY2hlY2soRFJCR19TRUxG VEVTVF9EQVQKICAgICAgdW5zaWduZWQgaW50IHJlc2VlZF9jb3VudGVyX3RtcDsKICAgICAgaW50 IHJldCA9IDA7CiAgCkBAIC0yODEsNyArMjgwLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIv dGVzdC9kcmJndGVzdC5jLmNybmctdGVzdCBvcGVuc3NsLTEuMS4xYi90ZXN0L2RyYmd0ZXN0LmMK ICAgICAgICAgIGdvdG8gZXJyOwogIAogICAgICAvKgotQEAgLTY5OSw2ICs3MjYsMTAgQEAgc3Rh dGljIGludCB0ZXN0X3JhbmRfZHJiZ19yZXNlZWQodm9pZCkKK0BAIC03NDAsNiArNzY3LDEwIEBA IHN0YXRpYyBpbnQgdGVzdF9yYW5kX2RyYmdfcmVzZWVkKHZvaWQpCiAgICAgICAgICB8fCAhVEVT VF9wdHJfZXEocHJpdmF0ZS0+cGFyZW50LCBtYXN0ZXIpKQogICAgICAgICAgcmV0dXJuIDA7CiAg CkBAIC0yOTIsNyArMjkxLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvdGVzdC9kcmJndGVz dC5jLmNybmctdGVzdCBvcGVuc3NsLTEuMS4xYi90ZXN0L2RyYmd0ZXN0LmMKICAgICAgLyogdW5p bnN0YW50aWF0ZSB0aGUgdGhyZWUgZ2xvYmFsIERSQkdzICovCiAgICAgIFJBTkRfRFJCR191bmlu c3RhbnRpYXRlKHByaXZhdGUpOwogICAgICBSQU5EX0RSQkdfdW5pbnN0YW50aWF0ZShwdWJsaWMp OwotQEAgLTkxOSw3ICs5NTAsOCBAQCBzdGF0aWMgaW50IHRlc3RfcmFuZF9zZWVkKHZvaWQpCitA QCAtOTY0LDcgKzk5NSw4IEBAIHN0YXRpYyBpbnQgdGVzdF9yYW5kX3NlZWQodm9pZCkKICAgICAg c2l6ZV90IHJhbmRfYnVmbGVuOwogICAgICBzaXplX3QgcmVxdWlyZWRfc2VlZF9idWZsZW4gPSAw OwogIApAQCAtMzAyLDcgKzMwMSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3Rlc3QvZHJi Z3Rlc3QuYy5jcm5nLXRlc3Qgb3BlbnNzbC0xLjEuMWIvdGVzdC9kcmJndGVzdC5jCiAgICAgICAg ICByZXR1cm4gMDsKICAKICAjaWZkZWYgT1BFTlNTTF9SQU5EX1NFRURfTk9ORQotQEAgLTk2OCw2 ICsxMDAwLDk1IEBAIHN0YXRpYyBpbnQgdGVzdF9yYW5kX2FkZCh2b2lkKQorQEAgLTEwMTMsNiAr MTA0NSw5NSBAQCBzdGF0aWMgaW50IHRlc3RfcmFuZF9hZGQodm9pZCkKICAgICAgcmV0dXJuIDE7 CiAgfQogIApAQCAtMzk4LDcgKzM5Nyw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3Rlc3Qv ZHJiZ3Rlc3QuYy5jcm5nLXRlc3Qgb3BlbnNzbC0xLjEuMWIvdGVzdC9kcmJndGVzdC5jCiAgaW50 IHNldHVwX3Rlc3RzKHZvaWQpCiAgewogICAgICBhcHBfZGF0YV9pbmRleCA9IFJBTkRfRFJCR19n ZXRfZXhfbmV3X2luZGV4KDBMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsKLUBAIC05ODAsNSAr MTEwMSw2IEBAIGludCBzZXR1cF90ZXN0cyh2b2lkKQorQEAgLTEwMjUsNSArMTE0Niw2IEBAIGlu dCBzZXR1cF90ZXN0cyh2b2lkKQogICNpZiBkZWZpbmVkKE9QRU5TU0xfVEhSRUFEUykKICAgICAg QUREX1RFU1QodGVzdF9tdWx0aV90aHJlYWQpOwogICNlbmRpZgoKZGlmZiAtLWdpdCBhL29wZW5z c2wtMS4xLjEtZmlwcy1wb3N0LXJhbmQucGF0Y2ggYi9vcGVuc3NsLTEuMS4xLWZpcHMtcG9zdC1y YW5kLnBhdGNoCmluZGV4IGZjNjBlMzMuLjAyZDdkZjMgMTAwNjQ0Ci0tLSBhL29wZW5zc2wtMS4x LjEtZmlwcy1wb3N0LXJhbmQucGF0Y2gKKysrIGIvb3BlbnNzbC0xLjEuMS1maXBzLXBvc3QtcmFu ZC5wYXRjaApAQCAtMSw2ICsxLDYgQEAKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFjL2NyeXB0by9m aXBzL2ZpcHMuYy5maXBzLXBvc3QtcmFuZCBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vZmlwcy9maXBz LmMKLS0tLSBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vZmlwcy9maXBzLmMuZmlwcy1wb3N0LXJhbmQJ MjAxOS0wNS0yOSAxNTo1Mzo1Ni4zMjgyMTYwMDIgKzAyMDAKLSsrKyBvcGVuc3NsLTEuMS4xYy9j cnlwdG8vZmlwcy9maXBzLmMJMjAxOS0wNS0yOSAxNTo1Mzo1Ni4zNTkyMTU0NTcgKzAyMDAKK2Rp ZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHMuYy5maXBzLXBvc3QtcmFuZCBv cGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlw dG8vZmlwcy9maXBzLmMuZmlwcy1wb3N0LXJhbmQJMjAxOS0wOS0xMyAxNjoxNTo1Mi42NTY3MTYw ODkgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzLmMJMjAxOS0wOS0x MyAxNjo0NDozMy4yMTc4NTIzNjQgKzAyMDAKIEBAIC02OCw2ICs2OCw3IEBACiAgCiAgIyBpbmNs dWRlIDxvcGVuc3NsL2ZpcHMuaD4KQEAgLTQ2LDE0ICs0NiwxNCBAQCBkaWZmIC11cCBvcGVuc3Ns LTEuMS4xYy9jcnlwdG8vZmlwcy9maXBzLmMuZmlwcy1wb3N0LXJhbmQgb3BlbnNzbC0xLjEuMWMv Y3J5cHRvLwogKwogICAgICAgICAgZmlwc19zZXRfbW9kZShvbm9mZik7CiArICAgICAgICAvKiBm b3JjZSBSTkcgcmVzZWVkIHdpdGggZW50cm9weSBmcm9tIGdldHJhbmRvbSgpIG9uIG5leHQgY2Fs bCAqLwotKyAgICAgICAgcmFuZF9mb3JrKCk7CisrICAgICAgICByYW5kX2ZvcmNlX3Jlc2VlZCgp OwogKwogICAgICAgICAgcmV0ID0gMTsKICAgICAgICAgIGdvdG8gZW5kOwogICAgICB9Ci1kaWZm IC11cCBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vaW5jbHVkZS9pbnRlcm5hbC9maXBzX2ludC5oLmZp cHMtcG9zdC1yYW5kIG9wZW5zc2wtMS4xLjFjL2NyeXB0by9pbmNsdWRlL2ludGVybmFsL2ZpcHNf aW50LmgKLS0tLSBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vaW5jbHVkZS9pbnRlcm5hbC9maXBzX2lu dC5oLmZpcHMtcG9zdC1yYW5kCTIwMTktMDUtMjkgMTU6NTM6NTYuMzM3MjE1ODQ0ICswMjAwCi0r Kysgb3BlbnNzbC0xLjEuMWMvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvZmlwc19pbnQuaAkyMDE5 LTA1LTI5IDE1OjUzOjU2LjM1OTIxNTQ1NyArMDIwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQv Y3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvZmlwc19pbnQuaC5maXBzLXBvc3QtcmFuZCBvcGVuc3Ns LTEuMS4xZC9jcnlwdG8vaW5jbHVkZS9pbnRlcm5hbC9maXBzX2ludC5oCistLS0gb3BlbnNzbC0x LjEuMWQvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvZmlwc19pbnQuaC5maXBzLXBvc3QtcmFuZAky MDE5LTA5LTEzIDE2OjE1OjUyLjY2NjcxNTkxNCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9pbmNsdWRlL2ludGVybmFsL2ZpcHNfaW50LmgJMjAxOS0wOS0xMyAxNjoxNTo1Mi42OTA3 MTU0OTYgKzAyMDAKIEBAIC03Nyw2ICs3Nyw4IEBAIGludCBGSVBTX3NlbGZ0ZXN0X2htYWModm9p ZCk7CiAgaW50IEZJUFNfc2VsZnRlc3RfZHJiZyh2b2lkKTsKICBpbnQgRklQU19zZWxmdGVzdF9j bWFjKHZvaWQpOwpAQCAtNjMsMjQgKzYzLDU4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFjL2Ny eXB0by9pbmNsdWRlL2ludGVybmFsL2ZpcHNfaW50LmguZmlwcy1wb3N0LXJhbmQgb3BlbnNzCiAg aW50IGZpcHNfcGtleV9zaWduYXR1cmVfdGVzdChFVlBfUEtFWSAqcGtleSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICp0YnMsIGludCB0YnNs ZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hh ciAqa2F0LAotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWMvY3J5cHRvL3JhbmQvcmFuZF91bml4LmMu Zmlwcy1wb3N0LXJhbmQgb3BlbnNzbC0xLjEuMWMvY3J5cHRvL3JhbmQvcmFuZF91bml4LmMKLS0t LSBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vcmFuZC9yYW5kX3VuaXguYy5maXBzLXBvc3QtcmFuZAky MDE5LTA1LTI4IDE1OjEyOjIxLjAwMDAwMDAwMCArMDIwMAotKysrIG9wZW5zc2wtMS4xLjFjL2Ny eXB0by9yYW5kL3JhbmRfdW5peC5jCTIwMTktMDUtMjkgMTY6NTQ6MTYuNDcxMzkxODAyICswMjAw Ci1AQCAtMTYsMTAgKzE2LDEyIEBACi0gI2luY2x1ZGUgPG9wZW5zc2wvcmFuZC5oPgorZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvcmFuZF9pbnQuaC5maXBz LXBvc3QtcmFuZCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vaW5jbHVkZS9pbnRlcm5hbC9yYW5kX2lu dC5oCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvcmFuZF9pbnQu aC5maXBzLXBvc3QtcmFuZAkyMDE5LTA5LTEzIDE2OjE1OjUyLjMwNzcyMjE3NSArMDIwMAorKysr IG9wZW5zc2wtMS4xLjFkL2NyeXB0by9pbmNsdWRlL2ludGVybmFsL3JhbmRfaW50LmgJMjAxOS0w OS0xMyAxNjo0MTo0Ny4xMzM3MzYwMjMgKzAyMDAKK0BAIC0yNCw2ICsyNCw3IEBACisgdHlwZWRl ZiBzdHJ1Y3QgcmFuZF9wb29sX3N0IFJBTkRfUE9PTDsKKyAKKyB2b2lkIHJhbmRfY2xlYW51cF9p bnQodm9pZCk7Cisrdm9pZCByYW5kX2ZvcmNlX3Jlc2VlZCh2b2lkKTsKKyB2b2lkIHJhbmRfZHJi Z19jbGVhbnVwX2ludCh2b2lkKTsKKyB2b2lkIGRyYmdfZGVsZXRlX3RocmVhZF9zdGF0ZSh2b2lk KTsKKyAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yYW5kL2RyYmdfbGliLmMuZmlw cy1wb3N0LXJhbmQgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3JhbmQvZHJiZ19saWIuYworLS0tIG9w ZW5zc2wtMS4xLjFkL2NyeXB0by9yYW5kL2RyYmdfbGliLmMuZmlwcy1wb3N0LXJhbmQJMjAxOS0w OS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8v cmFuZC9kcmJnX2xpYi5jCTIwMTktMDktMTMgMTY6NDQ6MDQuODA4MzQ1NjIwICswMjAwCitAQCAt MTAwOSw2ICsxMDA5LDIwIEBAIHNpemVfdCByYW5kX2RyYmdfc2VlZGxlbihSQU5EX0RSQkcgKmRy YmcKKyAgICAgcmV0dXJuIG1pbl9lbnRyb3B5ID4gbWluX2VudHJvcHlsZW4gPyBtaW5fZW50cm9w eSA6IG1pbl9lbnRyb3B5bGVuOworIH0KKyAKKyt2b2lkIHJhbmRfZm9yY2VfcmVzZWVkKHZvaWQp CisreworKyAgICBSQU5EX0RSQkcgKmRyYmc7CisrCisrICAgIGRyYmcgPSBSQU5EX0RSQkdfZ2V0 MF9tYXN0ZXIoKTsKKysgICAgZHJiZy0+Zm9ya19pZCA9IDA7CisrCisrICAgIGRyYmcgPSBSQU5E X0RSQkdfZ2V0MF9wcml2YXRlKCk7CisrICAgIGRyYmctPmZvcmtfaWQgPSAwOworKworKyAgICBk cmJnID0gUkFORF9EUkJHX2dldDBfcHVibGljKCk7CisrICAgIGRyYmctPmZvcmtfaWQgPSAwOwor K30KKysKKyAvKiBJbXBsZW1lbnRzIHRoZSBkZWZhdWx0IE9wZW5TU0wgUkFORF9hZGQoKSBtZXRo b2QgKi8KKyBzdGF0aWMgaW50IGRyYmdfYWRkKGNvbnN0IHZvaWQgKmJ1ZiwgaW50IG51bSwgZG91 YmxlIHJhbmRvbW5lc3MpCisgeworZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3JhbmQv cmFuZF91bml4LmMuZmlwcy1wb3N0LXJhbmQgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3JhbmQvcmFu ZF91bml4LmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcmFuZC9yYW5kX3VuaXguYy5maXBz LXBvc3QtcmFuZAkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5z c2wtMS4xLjFkL2NyeXB0by9yYW5kL3JhbmRfdW5peC5jCTIwMTktMDktMTMgMTY6MTU6NTIuNjkw NzE1NDk2ICswMjAwCitAQCAtMTcsMTAgKzE3LDEyIEBACisgI2luY2x1ZGUgPG9wZW5zc2wvY3J5 cHRvLmg+CiAgI2luY2x1ZGUgInJhbmRfbGNsLmgiCiAgI2luY2x1ZGUgImludGVybmFsL3JhbmRf aW50LmgiCiArI2luY2x1ZGUgImludGVybmFsL2ZpcHNfaW50LmgiCiAgI2luY2x1ZGUgPHN0ZGlv Lmg+CiAgI2luY2x1ZGUgImludGVybmFsL2Rzby5oIgotICNpZiBkZWZpbmVkKF9fbGludXgpCi0t IyBpbmNsdWRlIDxhc20vdW5pc3RkLmg+Ci0rIyBpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorICNp ZmRlZiBfX2xpbnV4CisgIyBpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgogKyMgaW5jbHVkZSA8c3lz L3JhbmRvbS5oPgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKQotICMgaW5jbHVk ZSA8c3lzL3R5cGVzLmg+Ci1AQCAtMjc5LDcgKzI4MSw3IEBAIHN0YXRpYyBzc2l6ZV90IHN5c2N0 bF9yYW5kb20oY2hhciAqYnVmLAorICMgaWZkZWYgREVWUkFORE9NX1dBSVQKKyAjICBpbmNsdWRl IDxzeXMvc2htLmg+CisgIyAgaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KK0BAIC0yOTUsNyArMjk3 LDcgQEAgc3RhdGljIHNzaXplX3Qgc3lzY3RsX3JhbmRvbShjaGFyICpidWYsCiAgICogc3lzY2Fs bF9yYW5kb20oKTogVHJ5IHRvIGdldCByYW5kb20gZGF0YSB1c2luZyBhIHN5c3RlbSBjYWxsCiAg ICogcmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJldHVybmVkIGluIGJ1Ziwgb3IgPCAwIG9u IGVycm9yLgogICAqLwpAQCAtODksNyArMTIzLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWMv Y3J5cHRvL3JhbmQvcmFuZF91bml4LmMuZmlwcy1wb3N0LXJhbmQgb3BlbnNzbC0xLjEuMWMvY3IK ICB7CiAgICAgIC8qCiAgICAgICAqIE5vdGU6ICdidWZsZW4nIGVxdWFscyB0aGUgc2l6ZSBvZiB0 aGUgYnVmZmVyIHdoaWNoIGlzIHVzZWQgYnkgdGhlCi1AQCAtMzAxLDYgKzMwMyw3IEBAIHN0YXRp YyBzc2l6ZV90IHN5c2NhbGxfcmFuZG9tKHZvaWQgKmJ1ZiwKK0BAIC0zMTcsNiArMzE5LDcgQEAg c3RhdGljIHNzaXplX3Qgc3lzY2FsbF9yYW5kb20odm9pZCAqYnVmLAogICAgICAgKiAtIExpbnV4 IHNpbmNlIDMuMTcgd2l0aCBnbGliYyAyLjI1CiAgICAgICAqIC0gRnJlZUJTRCBzaW5jZSAxMi4w ICgxMjAwMDYxKQogICAgICAgKi8KQEAgLTk3LDcgKzEzMSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wt MS4xLjFjL2NyeXB0by9yYW5kL3JhbmRfdW5peC5jLmZpcHMtcG9zdC1yYW5kIG9wZW5zc2wtMS4x LjFjL2NyCiAgIyAgaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgX19HTlVDX18+PTIgJiYgZGVmaW5l ZChfX0VMRl9fKSAmJiAhZGVmaW5lZChfX2hwdXgpCiAgICAgIGV4dGVybiBpbnQgZ2V0ZW50cm9w eSh2b2lkICpidWZmZXIsIHNpemVfdCBsZW5ndGgpIF9fYXR0cmlidXRlX18oKHdlYWspKTsKICAK LUBAIC0zMjIsMTAgKzMyNSwxMCBAQCBzdGF0aWMgc3NpemVfdCBzeXNjYWxsX3JhbmRvbSh2b2lk ICpidWYsCitAQCAtMzM4LDEwICszNDEsMTAgQEAgc3RhdGljIHNzaXplX3Qgc3lzY2FsbF9yYW5k b20odm9pZCAqYnVmLAogICAgICBpZiAocF9nZXRlbnRyb3B5LnAgIT0gTlVMTCkKICAgICAgICAg IHJldHVybiBwX2dldGVudHJvcHkuZihidWYsIGJ1ZmxlbikgPT0gMCA/IChzc2l6ZV90KWJ1Zmxl biA6IC0xOwogICMgIGVuZGlmCkBAIC0xMTEsMTkgKzE0NSwxNyBAQCBkaWZmIC11cCBvcGVuc3Ns LTEuMS4xYy9jcnlwdG8vcmFuZC9yYW5kX3VuaXguYy5maXBzLXBvc3QtcmFuZCBvcGVuc3NsLTEu MS4xYy9jcgogICMgIGVsaWYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19OZXRC U0RfXykpICYmIGRlZmluZWQoS0VSTl9BUk5EKQogICAgICByZXR1cm4gc3lzY3RsX3JhbmRvbShi dWYsIGJ1Zmxlbik7CiAgIyAgZWxzZQotQEAgLTQ3NSw4ICs0NzgsMTAgQEAgc2l6ZV90IHJhbmRf cG9vbF9hY3F1aXJlX2VudHJvcHkoUkFORF9QTwotICAgICBzaXplX3QgYnl0ZXNfbmVlZGVkOwot ICAgICBzaXplX3QgZW50cm9weV9hdmFpbGFibGUgPSAwOwotICAgICB1bnNpZ25lZCBjaGFyICpi dWZmZXI7Ci0tCitAQCAtNTc2LDYgKzU3OSw5IEBAIHNpemVfdCByYW5kX3Bvb2xfYWNxdWlyZV9l bnRyb3B5KFJBTkRfUE8KKyAgICAgc2l6ZV90IGVudHJvcHlfYXZhaWxhYmxlOworIAogICMgICBp ZiBkZWZpbmVkKE9QRU5TU0xfUkFORF9TRUVEX0dFVFJBTkRPTSkKICsgICAgaW50IGluX3Bvc3Q7 CiArCiArICAgIGZvciAoaW5fcG9zdCA9IGZpcHNfaW5fcG9zdCgpOyBpbl9wb3N0ID49IDA7IC0t aW5fcG9zdCkgewogICAgICB7Ci0gICAgICAgICBzc2l6ZV90IGJ5dGVzOwotICAgICAgICAgLyog TWF4aW11bSBhbGxvd2VkIG51bWJlciBvZiBjb25zZWN1dGl2ZSB1bnN1Y2Nlc3NmdWwgYXR0ZW1w dHMgKi8KLUBAIC00ODUsNyArNDkwLDcgQEAgc2l6ZV90IHJhbmRfcG9vbF9hY3F1aXJlX2VudHJv cHkoUkFORF9QTworICAgICAgICAgc2l6ZV90IGJ5dGVzX25lZWRlZDsKKyAgICAgICAgIHVuc2ln bmVkIGNoYXIgKmJ1ZmZlcjsKK0BAIC01ODYsNyArNTkyLDcgQEAgc2l6ZV90IHJhbmRfcG9vbF9h Y3F1aXJlX2VudHJvcHkoUkFORF9QTwogICAgICAgICAgYnl0ZXNfbmVlZGVkID0gcmFuZF9wb29s X2J5dGVzX25lZWRlZChwb29sLCAxIC8qZW50cm9weV9mYWN0b3IqLyk7CiAgICAgICAgICB3aGls ZSAoYnl0ZXNfbmVlZGVkICE9IDAgJiYgYXR0ZW1wdHMtLSA+IDApIHsKICAgICAgICAgICAgICBi dWZmZXIgPSByYW5kX3Bvb2xfYWRkX2JlZ2luKHBvb2wsIGJ5dGVzX25lZWRlZCk7CkBAIC0xMzIs NyArMTY0LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWMvY3J5cHRvL3JhbmQvcmFuZF91bml4 LmMuZmlwcy1wb3N0LXJhbmQgb3BlbnNzbC0xLjEuMWMvY3IKICAgICAgICAgICAgICBpZiAoYnl0 ZXMgPiAwKSB7CiAgICAgICAgICAgICAgICAgIHJhbmRfcG9vbF9hZGRfZW5kKHBvb2wsIGJ5dGVz LCA4ICogYnl0ZXMpOwogICAgICAgICAgICAgICAgICBieXRlc19uZWVkZWQgLT0gYnl0ZXM7Ci1A QCAtNTQwLDggKzU0NSwxMCBAQCBzaXplX3QgcmFuZF9wb29sX2FjcXVpcmVfZW50cm9weShSQU5E X1BPCitAQCAtNjIxLDggKzYyNywxMCBAQCBzaXplX3QgcmFuZF9wb29sX2FjcXVpcmVfZW50cm9w eShSQU5EX1BPCiAgICAgICAgICAgICAgaW50IGF0dGVtcHRzID0gMzsKICAgICAgICAgICAgICBj b25zdCBpbnQgZmQgPSBnZXRfcmFuZG9tX2RldmljZShpKTsKICAKQEAgLTE0NCw4ICsxNzYsOCBA QCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vcmFuZC9yYW5kX3VuaXguYy5maXBzLXBv c3QtcmFuZCBvcGVuc3NsLTEuMS4xYy9jcgogIAogICAgICAgICAgICAgIHdoaWxlIChieXRlc19u ZWVkZWQgIT0gMCAmJiBhdHRlbXB0cy0tID4gMCkgewogICAgICAgICAgICAgICAgICBidWZmZXIg PSByYW5kX3Bvb2xfYWRkX2JlZ2luKHBvb2wsIGJ5dGVzX25lZWRlZCk7Ci1AQCAtNjAxLDcgKzYw OCw5IEBAIHNpemVfdCByYW5kX3Bvb2xfYWNxdWlyZV9lbnRyb3B5KFJBTkRfUE8KLSAgICAgICAg IH0KK0BAIC02ODUsNyArNjkzLDkgQEAgc2l6ZV90IHJhbmRfcG9vbF9hY3F1aXJlX2VudHJvcHko UkFORF9QTworICAgICAgICAgICAgIHJldHVybiBlbnRyb3B5X2F2YWlsYWJsZTsKICAgICAgfQog ICMgICBlbmRpZgogLQoKZGlmZiAtLWdpdCBhL29wZW5zc2wtMS4xLjEtZmlwcy5wYXRjaCBiL29w ZW5zc2wtMS4xLjEtZmlwcy5wYXRjaAppbmRleCAzZmY1YWE0Li45Y2NkY2JmIDEwMDY0NAotLS0g YS9vcGVuc3NsLTEuMS4xLWZpcHMucGF0Y2gKKysrIGIvb3BlbnNzbC0xLjEuMS1maXBzLnBhdGNo CkBAIC0xLDYgKzEsNiBAQAotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvYXBwcy9wa2NzMTIuYy5m aXBzIG9wZW5zc2wtMS4xLjFiL2FwcHMvcGtjczEyLmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9hcHBz L3BrY3MxMi5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBv cGVuc3NsLTEuMS4xYi9hcHBzL3BrY3MxMi5jCTIwMTktMDUtMjQgMTI6MDg6NDAuNTI0NTIzNzM1 ICswMjAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9hcHBzL3BrY3MxMi5jLmZpcHMgb3BlbnNz bC0xLjEuMWQvYXBwcy9wa2NzMTIuYworLS0tIG9wZW5zc2wtMS4xLjFkL2FwcHMvcGtjczEyLmMu ZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4x LjFkL2FwcHMvcGtjczEyLmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wMjI1MjU2NDAgKzAyMDAKIEBA IC0xMjYsNyArMTI2LDcgQEAgaW50IHBrY3MxMl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK ICAgICAgaW50IGV4cG9ydF9jZXJ0ID0gMCwgb3B0aW9ucyA9IDAsIGNoYWluID0gMCwgdHdvcGFz cyA9IDAsIGtleXR5cGUgPSAwOwogICAgICBpbnQgaXRlciA9IFBLQ1MxMl9ERUZBVUxUX0lURVIs IG1hY2l0ZXIgPSBQS0NTMTJfREVGQVVMVF9JVEVSOwpAQCAtMTAsMTAgKzEwLDEwIEBAIGRpZmYg LXVwIG9wZW5zc2wtMS4xLjFiL2FwcHMvcGtjczEyLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9hcHBz L3BrY3MxMi5jCiAgIyBlbHNlCiAgICAgIGludCBjZXJ0X3BiZSA9IE5JRF9wYmVfV2l0aFNIQTFB bmQzX0tleV9UcmlwbGVERVNfQ0JDOwogICMgZW5kaWYKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFi L2FwcHMvc3BlZWQuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2FwcHMvc3BlZWQuYwotLS0tIG9wZW5z c2wtMS4xLjFiL2FwcHMvc3BlZWQuYy5maXBzCTIwMTktMDUtMDcgMTE6NTI6MzUuODg3NTk3ODk5 ICswMjAwCi0rKysgb3BlbnNzbC0xLjEuMWIvYXBwcy9zcGVlZC5jCTIwMTktMDUtMDcgMTY6NTE6 MzYuOTQ2MzUwMTU5ICswMjAwCi1AQCAtMTU5Miw3ICsxNTkyLDggQEAgaW50IHNwZWVkX21haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvYXBwcy9zcGVl ZC5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvYXBwcy9zcGVlZC5jCistLS0gb3BlbnNzbC0xLjEuMWQv YXBwcy9zcGVlZC5jLmZpcHMJMjAxOS0wOS0xMyAxNToxMzoxMS4wMDg1MjU4ODQgKzAyMDAKKysr KyBvcGVuc3NsLTEuMS4xZC9hcHBzL3NwZWVkLmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wMjI1MjU2 NDAgKzAyMDAKK0BAIC0xNTk1LDcgKzE1OTUsOCBAQCBpbnQgc3BlZWRfbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICBpZiAoc3RyY21w KCphcmd2LCAicnNhIikgPT0gMCkgewogICAgICAgICAgICAgIGZvciAobG9vcCA9IDA7IGxvb3Ag PCBPU1NMX05FTEVNKHJzYV9kb2l0KTsgbG9vcCsrKQpAQCAtMjMsNyArMjMsNyBAQCBkaWZmIC11 cCBvcGVuc3NsLTEuMS4xYi9hcHBzL3NwZWVkLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9hcHBzL3Nw ZWVkLmMKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChm b3VuZCgqYXJndiwgcnNhX2Nob2ljZXMsICZpKSkgewotQEAgLTE2MDIsNyArMTYwMyw5IEBAIGlu dCBzcGVlZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK0BAIC0xNjA1LDcgKzE2MDYsOSBA QCBpbnQgc3BlZWRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgI2VuZGlmCiAgI2lmbmRl ZiBPUEVOU1NMX05PX0RTQQogICAgICAgICAgaWYgKHN0cmNtcCgqYXJndiwgImRzYSIpID09IDAp IHsKQEAgLTM0LDcgKzM0LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvYXBwcy9zcGVlZC5j LmZpcHMgb3BlbnNzbC0xLjEuMWIvYXBwcy9zcGVlZC5jCiAgICAgICAgICAgICAgICAgIGRzYV9k b2l0W1JfRFNBXzIwNDhdID0gMTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0K LUBAIC0xNjMzLDE5ICsxNjM2LDIxIEBAIGludCBzcGVlZF9tYWluKGludCBhcmdjLCBjaGFyICoq YXJndikKK0BAIC0xNjM2LDE5ICsxNjM5LDIxIEBAIGludCBzcGVlZF9tYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdHJjbXAoKmFyZ3YsICJlY2Ro IikgPT0gMCkgewogICAgICAgICAgICAgIGZvciAobG9vcCA9IDA7IGxvb3AgPCBPU1NMX05FTEVN KGVjZGhfZG9pdCk7IGxvb3ArKykKQEAgLTYwLDcgKzYwLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWIvYXBwcy9zcGVlZC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvYXBwcy9zcGVlZC5jCiAgICAg ICAgICAgICAgZWRkc2FfZG9pdFtpXSA9IDI7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAg ICAgICB9Ci1AQCAtMTczNCwyMyArMTczOSwzMCBAQCBpbnQgc3BlZWRfbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCitAQCAtMTczNywyMyArMTc0MiwzMCBAQCBpbnQgc3BlZWRfbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAgICAgIC8qIE5vIHBhcmFtZXRlcnM7IHR1cm4gb24gZXZlcnl0 aGluZy4gKi8KICAgICAgaWYgKChhcmdjID09IDApICYmICFkb2l0W0RfRVZQXSkgewogICAgICAg ICAgZm9yIChpID0gMDsgaSA8IEFMR09SX05VTTsgaSsrKQpAQCAtOTYsNyArOTYsNyBAQCBkaWZm IC11cCBvcGVuc3NsLTEuMS4xYi9hcHBzL3NwZWVkLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9hcHBz L3NwZWVkLmMKICAjZW5kaWYKICAgICAgfQogICAgICBmb3IgKGkgPSAwOyBpIDwgQUxHT1JfTlVN OyBpKyspCi1AQCAtMTc5OCwzMCArMTgxMCw0NiBAQCBpbnQgc3BlZWRfbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCitAQCAtMTgwMSwzMCArMTgxMyw0NiBAQCBpbnQgc3BlZWRfbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAgICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoa2V5MjQsIDE5Miwg JmFlc19rczIpOwogICAgICBBRVNfc2V0X2VuY3J5cHRfa2V5KGtleTMyLCAyNTYsICZhZXNfa3Mz KTsKICAjaWZuZGVmIE9QRU5TU0xfTk9fQ0FNRUxMSUEKQEAgLTE1Myw3ICsxNTMsNyBAQCBkaWZm IC11cCBvcGVuc3NsLTEuMS4xYi9hcHBzL3NwZWVkLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9hcHBz L3NwZWVkLmMKICAjZW5kaWYKICAjaWZuZGVmIFNJR0FMUk0KICAjIGlmbmRlZiBPUEVOU1NMX05P X0RFUwotQEAgLTIxMTgsNiArMjE0Niw3IEBAIGludCBzcGVlZF9tYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKK0BAIC0yMTIyLDYgKzIxNTAsNyBAQCBpbnQgc3BlZWRfbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAgCiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbG9vcGFyZ3NfbGVuOyBp KyspIHsKICAgICAgICAgICAgICBsb29wYXJnc1tpXS5oY3R4ID0gSE1BQ19DVFhfbmV3KCk7CkBA IC0xNjEsMTAgKzE2MSwxMCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9hcHBzL3NwZWVkLmMu ZmlwcyBvcGVuc3NsLTEuMS4xYi9hcHBzL3NwZWVkLmMKICAgICAgICAgICAgICBpZiAobG9vcGFy Z3NbaV0uaGN0eCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgIEJJT19wcmludGYoYmlvX2Vy ciwgIkhNQUMgbWFsbG9jIGZhaWx1cmUsIGV4aXRpbmcuLi4iKTsKICAgICAgICAgICAgICAgICAg ZXhpdCgxKTsKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL0NvbmZpZ3VyZS5maXBzIG9wZW5zc2wt MS4xLjFiL0NvbmZpZ3VyZQotLS0tIG9wZW5zc2wtMS4xLjFiL0NvbmZpZ3VyZS5maXBzCTIwMTkt MDItMjggMTE6MzA6MDYuNzc1NzQ2MjQ2ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvQ29uZmln dXJlCTIwMTktMDItMjggMTE6MzA6MDYuNzc5NzQ2MTcyICswMTAwCi1AQCAtMzEzLDcgKzMxMyw3 IEBAICRjb25maWd7c2RpcnN9ID0gWworZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvQ29uZmlndXJl LmZpcHMgb3BlbnNzbC0xLjEuMWQvQ29uZmlndXJlCistLS0gb3BlbnNzbC0xLjEuMWQvQ29uZmln dXJlLmZpcHMJMjAxOS0wOS0xMyAxNToxMzoxMS4wMTc1MjU3MjcgKzAyMDAKKysrKyBvcGVuc3Ns LTEuMS4xZC9Db25maWd1cmUJMjAxOS0wOS0xMyAxNToxMzoxMS4wMjM1MjU2MjIgKzAyMDAKK0BA IC0zMDcsNyArMzA3LDcgQEAgJGNvbmZpZ3tzZGlyc30gPSBbCiAgICAgICJtZDIiLCAibWQ0Iiwg Im1kNSIsICJzaGEiLCAibWRjMiIsICJobWFjIiwgInJpcGVtZCIsICJ3aHJscG9vbCIsICJwb2x5 MTMwNSIsICJibGFrZTIiLCAic2lwaGFzaCIsICJzbTMiLAogICAgICAiZGVzIiwgImFlcyIsICJy YzIiLCAicmM0IiwgInJjNSIsICJpZGVhIiwgImFyaWEiLCAiYmYiLCAiY2FzdCIsICJjYW1lbGxp YSIsICJzZWVkIiwgInNtNCIsICJjaGFjaGEiLCAibW9kZXMiLAogICAgICAiYm4iLCAiZWMiLCAi cnNhIiwgImRzYSIsICJkaCIsICJzbTIiLCAiZHNvIiwgImVuZ2luZSIsCkBAIC0xNzMsOSArMTcz LDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvQ29uZmlndXJlLmZpcHMgb3BlbnNzbC0xLjEu MWIvQ29uZmlndXJlCiAgICAgICJldnAiLCAiYXNuMSIsICJwZW0iLCAieDUwOSIsICJ4NTA5djMi LCAiY29uZiIsICJ0eHRfZGIiLCAicGtjczciLCAicGtjczEyIiwgImNvbXAiLCAib2NzcCIsICJ1 aSIsCiAgICAgICJjbXMiLCAidHMiLCAic3JwIiwgImNtYWMiLCAiY3QiLCAiYXN5bmMiLCAia2Rm IiwgInN0b3JlIgogICAgICBdOwotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2NtYWMv Y21fcG1ldGguYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9jbWFjL2NtX3BtZXRoLmMKLS0t LSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vY21hYy9jbV9wbWV0aC5jLmZpcHMJMjAxOS0wMi0yNiAx NToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vY21hYy9j bV9wbWV0aC5jCTIwMTktMDUtMDYgMTQ6NTU6MzIuODY2NzQ5MTA5ICswMjAwCitkaWZmIC11cCBv cGVuc3NsLTEuMS4xZC9jcnlwdG8vY21hYy9jbV9wbWV0aC5jLmZpcHMgb3BlbnNzbC0xLjEuMWQv Y3J5cHRvL2NtYWMvY21fcG1ldGguYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9jbWFjL2Nt X3BtZXRoLmMuZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9w ZW5zc2wtMS4xLjFkL2NyeXB0by9jbWFjL2NtX3BtZXRoLmMJMjAxOS0wOS0xMyAxNToxMzoxMS4w MjM1MjU2MjIgKzAyMDAKIEBAIC0xMjksNyArMTI5LDcgQEAgc3RhdGljIGludCBwa2V5X2NtYWNf Y3RybF9zdHIoRVZQX1BLRVlfQwogIAogIGNvbnN0IEVWUF9QS0VZX01FVEhPRCBjbWFjX3BrZXlf bWV0aCA9IHsKQEAgLTE4NSw5ICsxODUsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlw dG8vY21hYy9jbV9wbWV0aC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2NtYWMvYwogICAg ICBwa2V5X2NtYWNfaW5pdCwKICAgICAgcGtleV9jbWFjX2NvcHksCiAgICAgIHBrZXlfY21hY19j bGVhbnVwLAotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RoL2RoX2Vyci5jLmZpcHMg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RoL2RoX2Vyci5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5 cHRvL2RoL2RoX2Vyci5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZGgvZGhfZXJyLmMJMjAxOS0wMi0yOCAxMTozMDow Ni43Nzk3NDYxNzIgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9kaC9kaF9l cnIuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9kaC9kaF9lcnIuYworLS0tIG9wZW5zc2wt MS4xLjFkL2NyeXB0by9kaC9kaF9lcnIuYy5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAw MDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2RoL2RoX2Vyci5jCTIwMTktMDkt MTMgMTU6MTM6MTEuMDIzNTI1NjIyICswMjAwCiBAQCAtMjUsNiArMjUsOSBAQCBzdGF0aWMgY29u c3QgRVJSX1NUUklOR19EQVRBIERIX3N0cl9mdW5jCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX0RI LCBESF9GX0RIX0NNU19TRVRfUEVFUktFWSwgMCksICJkaF9jbXNfc2V0X3BlZXJrZXkifSwKICAg ICAge0VSUl9QQUNLKEVSUl9MSUJfREgsIERIX0ZfREhfQ01TX1NFVF9TSEFSRURfSU5GTywgMCks CkBAIC0yMTMsOSArMjEzLDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RoL2Ro X2Vyci5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RoL2RoX2Vyci4KICAgICAge0VSUl9Q QUNLKEVSUl9MSUJfREgsIDAsIERIX1JfUEFSQU1FVEVSX0VOQ09ESU5HX0VSUk9SKSwKICAgICAg InBhcmFtZXRlciBlbmNvZGluZyBlcnJvciJ9LAogICAgICB7RVJSX1BBQ0soRVJSX0xJQl9ESCwg MCwgREhfUl9QRUVSX0tFWV9FUlJPUiksICJwZWVyIGtleSBlcnJvciJ9LAotZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWIvY3J5cHRvL2RoL2RoX2dlbi5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRv L2RoL2RoX2dlbi5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RoL2RoX2dlbi5jLmZpcHMJ MjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vZGgvZGhfZ2VuLmMJMjAxOS0wMi0yOCAxMTozMDowNi43ODA3NDYxNTMgKzAxMDAKK2Rp ZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9kaC9kaF9nZW4uYy5maXBzIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9kaC9kaF9nZW4uYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9kaC9kaF9n ZW4uYy5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNz bC0xLjEuMWQvY3J5cHRvL2RoL2RoX2dlbi5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDIzNTI1NjIy ICswMjAwCiBAQCAtMTYsNiArMTYsOSBAQAogICNpbmNsdWRlICJpbnRlcm5hbC9jcnlwdGxpYi5o IgogICNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CkBAIC0yNDAsNyArMjQwLDcgQEAgZGlmZiAtdXAg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RoL2RoX2dlbi5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5 cHRvL2RoL2RoX2dlbi4KICAgICAgaWYgKHJldC0+bWV0aC0+Z2VuZXJhdGVfcGFyYW1zKQogICAg ICAgICAgcmV0dXJuIHJldC0+bWV0aC0+Z2VuZXJhdGVfcGFyYW1zKHJldCwgcHJpbWVfbGVuLCBn ZW5lcmF0b3IsIGNiKTsKICAgICAgcmV0dXJuIGRoX2J1aWx0aW5fZ2VucGFyYW1zKHJldCwgcHJp bWVfbGVuLCBnZW5lcmF0b3IsIGNiKTsKLUBAIC02Miw2ICs3MiwxOCBAQCBzdGF0aWMgaW50IGRo X2J1aWx0aW5fZ2VucGFyYW1zKERIICpyZXQsCitAQCAtNjUsNiArNzUsMTggQEAgc3RhdGljIGlu dCBkaF9idWlsdGluX2dlbnBhcmFtcyhESCAqcmV0LAogICAgICBpbnQgZywgb2sgPSAtMTsKICAg ICAgQk5fQ1RYICpjdHggPSBOVUxMOwogIApAQCAtMjU5LDkgKzI1OSw5IEBAIGRpZmYgLXVwIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9kaC9kaF9nZW4uYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9kaC9kaF9nZW4uCiAgICAgIGN0eCA9IEJOX0NUWF9uZXcoKTsKICAgICAgaWYgKGN0eCA9PSBO VUxMKQogICAgICAgICAgZ290byBlcnI7Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v ZGgvZGhfa2V5LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZGgvZGhfa2V5LmMKLS0tLSBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vZGgvZGhfa2V5LmMuZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMw LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kaC9kaF9rZXkuYwky MDE5LTAyLTI4IDExOjMwOjA2Ljc4MDc0NjE1MyArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEu MWQvY3J5cHRvL2RoL2RoX2tleS5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2RoL2RoX2tl eS5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2RoL2RoX2tleS5jLmZpcHMJMjAxOS0wOS0x MCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZGgv ZGhfa2V5LmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wMjQ1MjU2MDUgKzAyMDAKIEBAIC0xMSw2ICsx MSw5IEBACiAgI2luY2x1ZGUgImludGVybmFsL2NyeXB0bGliLmgiCiAgI2luY2x1ZGUgImRoX2xv Y2wuaCIKQEAgLTMyMSw3ICszMjEsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v ZGgvZGhfa2V5LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZGgvZGhfa2V5LgogICAgICBp ZiAoQk5fbnVtX2JpdHMoZGgtPnApID4gT1BFTlNTTF9ESF9NQVhfTU9EVUxVU19CSVRTKSB7CiAg ICAgICAgICBESGVycihESF9GX0dFTkVSQVRFX0tFWSwgREhfUl9NT0RVTFVTX1RPT19MQVJHRSk7 CiAgICAgICAgICByZXR1cm4gMDsKLUBAIC0xNzAsNiArMTk1LDEzIEBAIHN0YXRpYyBpbnQgY29t cHV0ZV9rZXkodW5zaWduZWQgY2hhciAqa2UKK0BAIC0xNzksNiArMjA0LDEzIEBAIHN0YXRpYyBp bnQgY29tcHV0ZV9rZXkodW5zaWduZWQgY2hhciAqa2UKICAgICAgICAgIERIZXJyKERIX0ZfQ09N UFVURV9LRVksIERIX1JfTU9EVUxVU19UT09fTEFSR0UpOwogICAgICAgICAgZ290byBlcnI7CiAg ICAgIH0KQEAgLTMzNSw3ICszMzUsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v ZGgvZGhfa2V5LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZGgvZGhfa2V5LgogIAogICAg ICBjdHggPSBCTl9DVFhfbmV3KCk7CiAgICAgIGlmIChjdHggPT0gTlVMTCkKLUBAIC0yMjEsNiAr MjUzLDkgQEAgc3RhdGljIGludCBkaF9ibl9tb2RfZXhwKGNvbnN0IERIICpkaCwgQgorQEAgLTIy OCw2ICsyNjAsOSBAQCBzdGF0aWMgaW50IGRoX2JuX21vZF9leHAoY29uc3QgREggKmRoLCBCCiAg CiAgc3RhdGljIGludCBkaF9pbml0KERIICpkaCkKICB7CkBAIC0zNDUsOSArMzQ1LDkgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RoL2RoX2tleS5jLmZpcHMgb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2RoL2RoX2tleS4KICAgICAgZGgtPmZsYWdzIHw9IERIX0ZMQUdfQ0FDSEVfTU9O VF9QOwogICAgICByZXR1cm4gMTsKICB9Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v ZGgvZGhfcG1ldGguYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kaC9kaF9wbWV0aC5jCi0t LS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RoL2RoX3BtZXRoLmMuZmlwcwkyMDE5LTAyLTI2IDE1 OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kaC9kaF9w bWV0aC5jCTIwMTktMDUtMDYgMTQ6NTc6MjkuMTg0NzIzNDMwICswMjAwCitkaWZmIC11cCBvcGVu c3NsLTEuMS4xZC9jcnlwdG8vZGgvZGhfcG1ldGguYy5maXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0 by9kaC9kaF9wbWV0aC5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2RoL2RoX3BtZXRoLmMu ZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9kaC9kaF9wbWV0aC5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDI0NTI1NjA1ICsw MjAwCiBAQCAtNDgwLDcgKzQ4MCw3IEBAIHN0YXRpYyBpbnQgcGtleV9kaF9kZXJpdmUoRVZQX1BL RVlfQ1RYICoKICAKICBjb25zdCBFVlBfUEtFWV9NRVRIT0QgZGhfcGtleV9tZXRoID0gewpAQCAt MzY2LDkgKzM2Niw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kaC9kaF9wbWV0 aC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RoL2RoX3BtCiAgICAgIHBrZXlfZGhfaW5p dCwKICAgICAgcGtleV9kaF9jb3B5LAogICAgICBwa2V5X2RoX2NsZWFudXAsCi1kaWZmIC11cCBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9lcnIuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2Ny eXB0by9kc2EvZHNhX2Vyci5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RzYS9kc2FfZXJy LmMuZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wt MS4xLjFiL2NyeXB0by9kc2EvZHNhX2Vyci5jCTIwMTktMDItMjggMTE6MzA6MDYuNzk4NzQ1ODE5 ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZHNhL2RzYV9lcnIuYy5maXBz IG9wZW5zc2wtMS4xLjFkL2NyeXB0by9kc2EvZHNhX2Vyci5jCistLS0gb3BlbnNzbC0xLjEuMWQv Y3J5cHRvL2RzYS9kc2FfZXJyLmMuZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCAr MDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9kc2EvZHNhX2Vyci5jCTIwMTktMDktMTMg MTU6MTQ6MzMuNzM3MDc5ODc2ICswMjAwCiBAQCAtMTYsMTIgKzE2LDE1IEBACiAgc3RhdGljIGNv bnN0IEVSUl9TVFJJTkdfREFUQSBEU0Ffc3RyX2Z1bmN0c1tdID0gewogICAgICB7RVJSX1BBQ0so RVJSX0xJQl9EU0EsIERTQV9GX0RTQVBBUkFNU19QUklOVCwgMCksICJEU0FwYXJhbXNfcHJpbnQi fSwKQEAgLTM4NSwyMiArMzg1LDI0IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9k c2EvZHNhX2Vyci5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RzYS9kc2FfCiAgICAgIHtF UlJfUEFDSyhFUlJfTElCX0RTQSwgRFNBX0ZfRFNBX01FVEhfRFVQLCAwKSwgIkRTQV9tZXRoX2R1 cCJ9LAogICAgICB7RVJSX1BBQ0soRVJSX0xJQl9EU0EsIERTQV9GX0RTQV9NRVRIX05FVywgMCks ICJEU0FfbWV0aF9uZXcifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfRFNBLCBEU0FfRl9EU0Ff TUVUSF9TRVQxX05BTUUsIDApLCAiRFNBX21ldGhfc2V0MV9uYW1lIn0sCi1AQCAtNTEsOSArNTQs MTIgQEAgc3RhdGljIGNvbnN0IEVSUl9TVFJJTkdfREFUQSBEU0Ffc3RyX3JlYQorQEAgLTUxLDEx ICs1NCwxNCBAQCBzdGF0aWMgY29uc3QgRVJSX1NUUklOR19EQVRBIERTQV9zdHJfcmVhCiAgICAg IHtFUlJfUEFDSyhFUlJfTElCX0RTQSwgMCwgRFNBX1JfSU5WQUxJRF9ESUdFU1RfVFlQRSksCiAg ICAgICJpbnZhbGlkIGRpZ2VzdCB0eXBlIn0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX0RTQSwg MCwgRFNBX1JfSU5WQUxJRF9QQVJBTUVURVJTKSwgImludmFsaWQgcGFyYW1ldGVycyJ9LAogKyAg ICB7RVJSX1BBQ0soRVJSX0xJQl9EU0EsIDAsIERTQV9SX0tFWV9TSVpFX0lOVkFMSUQpLCAia2V5 IHNpemUgaW52YWxpZCJ9LAogKyAgICB7RVJSX1BBQ0soRVJSX0xJQl9EU0EsIDAsIERTQV9SX0tF WV9TSVpFX1RPT19TTUFMTCksICJrZXkgc2l6ZSB0b28gc21hbGwifSwKICAgICAge0VSUl9QQUNL KEVSUl9MSUJfRFNBLCAwLCBEU0FfUl9NSVNTSU5HX1BBUkFNRVRFUlMpLCAibWlzc2luZyBwYXJh bWV0ZXJzIn0sCisgICAgIHtFUlJfUEFDSyhFUlJfTElCX0RTQSwgMCwgRFNBX1JfTUlTU0lOR19Q UklWQVRFX0tFWSksCisgICAgICJtaXNzaW5nIHByaXZhdGUga2V5In0sCiAgICAgIHtFUlJfUEFD SyhFUlJfTElCX0RTQSwgMCwgRFNBX1JfTU9EVUxVU19UT09fTEFSR0UpLCAibW9kdWx1cyB0b28g bGFyZ2UifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfRFNBLCAwLCBEU0FfUl9OT19QQVJBTUVU RVJTX1NFVCksICJubyBwYXJhbWV0ZXJzIHNldCJ9LAogKyAgICB7RVJSX1BBQ0soRVJSX0xJQl9E U0EsIDAsIERTQV9SX05PTl9GSVBTX0RTQV9NRVRIT0QpLCAibm9uIEZJUFMgRFNBIG1ldGhvZCJ9 LAogICAgICB7RVJSX1BBQ0soRVJSX0xJQl9EU0EsIDAsIERTQV9SX1BBUkFNRVRFUl9FTkNPRElO R19FUlJPUiksCiAgICAgICJwYXJhbWV0ZXIgZW5jb2RpbmcgZXJyb3IifSwKICAgICAge0VSUl9Q QUNLKEVSUl9MSUJfRFNBLCAwLCBEU0FfUl9RX05PVF9QUklNRSksICJxIG5vdCBwcmltZSJ9LAot ZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RzYS9kc2FfZ2VuLmMuZmlwcyBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9nZW4uYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9k c2EvZHNhX2dlbi5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9nZW4uYwkyMDE5LTAyLTI4IDExOjMwOjA2 Ljc5OTc0NTgwMCArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2RzYS9kc2Ff Z2VuLmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZHNhL2RzYV9nZW4uYworLS0tIG9wZW5z c2wtMS4xLjFkL2NyeXB0by9kc2EvZHNhX2dlbi5jLmZpcHMJMjAxOS0wOS0xMCAxNToxMzowNy4w MDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZHNhL2RzYV9nZW4uYwky MDE5LTA5LTEzIDE1OjEzOjExLjA0NjUyNTIyMCArMDIwMAogQEAgLTIyLDEyICsyMiwyMiBAQAog ICNpbmNsdWRlIDxvcGVuc3NsL3JhbmQuaD4KICAjaW5jbHVkZSA8b3BlbnNzbC9zaGEuaD4KQEAg LTQ0MCw3ICs0NDIsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9n ZW4uYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHNhXwogICAgICB9CiAgfQogIAot QEAgLTMxMCw3ICszMjYsNyBAQCBpbnQgZHNhX2J1aWx0aW5fcGFyYW1nZW4yKERTQSAqcmV0LCBz aXplCitAQCAtMzA5LDcgKzMyNSw3IEBAIGludCBkc2FfYnVpbHRpbl9wYXJhbWdlbjIoRFNBICpy ZXQsIHNpemUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqY291bnRlcl9yZXQsIHVu c2lnbmVkIGxvbmcgKmhfcmV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQk5fR0VOQ0Ig KmNiKQogIHsKQEAgLTQ0OSw3ICs0NTEsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlw dG8vZHNhL2RzYV9nZW4uYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHNhXwogICAg ICB1bnNpZ25lZCBjaGFyICpzZWVkID0gTlVMTCwgKnNlZWRfdG1wID0gTlVMTDsKICAgICAgdW5z aWduZWQgY2hhciBtZFtFVlBfTUFYX01EX1NJWkVdOwogICAgICBpbnQgbWRzaXplOwotQEAgLTMz Myw2ICszNDksMjAgQEAgaW50IGRzYV9idWlsdGluX3BhcmFtZ2VuMihEU0EgKnJldCwgc2l6ZQor QEAgLTMzMiw2ICszNDgsMjAgQEAgaW50IGRzYV9idWlsdGluX3BhcmFtZ2VuMihEU0EgKnJldCwg c2l6ZQogICAgICAgICAgZ290byBlcnI7CiAgICAgIH0KICAKQEAgLTQ3MCw3ICs0NzIsNyBAQCBk aWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9nZW4uYy5maXBzIG9wZW5zc2wt MS4xLjFiL2NyeXB0by9kc2EvZHNhXwogICAgICBpZiAoZXZwbWQgPT0gTlVMTCkgewogICAgICAg ICAgaWYgKE4gPT0gMTYwKQogICAgICAgICAgICAgIGV2cG1kID0gRVZQX3NoYTEoKTsKLUBAIC00 MzMsOSArNDYzLDEwIEBAIGludCBkc2FfYnVpbHRpbl9wYXJhbWdlbjIoRFNBICpyZXQsIHNpemUK K0BAIC00MzIsOSArNDYyLDEwIEBAIGludCBkc2FfYnVpbHRpbl9wYXJhbWdlbjIoRFNBICpyZXQs IHNpemUKICAgICAgICAgICAgICAgICAgZ290byBlcnI7CiAgICAgICAgICAgICAgLyogUHJvdmlk ZWQgc2VlZCBkaWRuJ3QgcHJvZHVjZSBhIHByaW1lOiBlcnJvciAqLwogICAgICAgICAgICAgIGlm IChzZWVkX2luKSB7CkBAIC00ODQsNyArNDg2LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL2RzYS9kc2FfZ2VuLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV8K ICAgICAgICAgICAgICB9CiAgCiAgICAgICAgICAgICAgLyogZG8gYSBjYWxsYmFjayBjYWxsICov Ci1AQCAtNTIxLDExICs1NTIsMTQgQEAgaW50IGRzYV9idWlsdGluX3BhcmFtZ2VuMihEU0EgKnJl dCwgc2l6ZQorQEAgLTUyMCwxMSArNTUxLDE0IEBAIGludCBkc2FfYnVpbHRpbl9wYXJhbWdlbjIo RFNBICpyZXQsIHNpemUKICAgICAgICAgICAgICBpZiAoY291bnRlciA+PSAoaW50KSg0ICogTCkp CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQpAQCAtNDk5LDcgKzUwMSw3IEBA IGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHNhX2dlbi5jLmZpcHMgb3BlbnNz bC0xLjEuMWIvY3J5cHRvL2RzYS9kc2FfCiAgICAgIH0KICAgZW5kOgogICAgICBpZiAoIUJOX0dF TkNCX2NhbGwoY2IsIDIsIDEpKQotQEAgLTU5Niw3ICs2MzAsNyBAQCBpbnQgZHNhX2J1aWx0aW5f cGFyYW1nZW4yKERTQSAqcmV0LCBzaXplCitAQCAtNTk1LDcgKzYyOSw3IEBAIGludCBkc2FfYnVp bHRpbl9wYXJhbWdlbjIoRFNBICpyZXQsIHNpemUKICAgICAgICAgIEJOX2ZyZWUocmV0LT5nKTsK ICAgICAgICAgIHJldC0+ZyA9IEJOX2R1cChnKTsKICAgICAgICAgIGlmIChyZXQtPnAgPT0gTlVM TCB8fCByZXQtPnEgPT0gTlVMTCB8fCByZXQtPmcgPT0gTlVMTCkgewpAQCAtNTA4LDcgKzUxMCw3 IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHNhX2dlbi5jLmZpcHMgb3Bl bnNzbC0xLjEuMWIvY3J5cHRvL2RzYS9kc2FfCiAgICAgICAgICAgICAgZ290byBlcnI7CiAgICAg ICAgICB9CiAgICAgICAgICBpZiAoY291bnRlcl9yZXQgIT0gTlVMTCkKLUBAIC02MTQsMyArNjQ4 LDUzIEBAIGludCBkc2FfYnVpbHRpbl9wYXJhbWdlbjIoRFNBICpyZXQsIHNpemUKK0BAIC02MTIs MyArNjQ2LDUzIEBAIGludCBkc2FfYnVpbHRpbl9wYXJhbWdlbjIoRFNBICpyZXQsIHNpemUKICAg ICAgRVZQX01EX0NUWF9mcmVlKG1jdHgpOwogICAgICByZXR1cm4gb2s7CiAgfQpAQCAtNTYyLDkg KzU2NCw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHNhX2dlbi5jLmZp cHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RzYS9kc2FfCiArfQogKwogKyNlbmRpZgotZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RzYS9kc2Ffa2V5LmMuZmlwcyBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZHNhL2RzYV9rZXkuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHNh X2tleS5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9rZXkuYwkyMDE5LTAyLTI4IDExOjMwOjA2Ljc5OTc0 NTgwMCArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2RzYS9kc2Ffa2V5LmMu ZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZHNhL2RzYV9rZXkuYworLS0tIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9kc2EvZHNhX2tleS5jLmZpcHMJMjAxOS0wOS0xMCAxNToxMzowNy4wMDAwMDAw MDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZHNhL2RzYV9rZXkuYwkyMDE5LTA5 LTEzIDE1OjEzOjExLjA0NjUyNTIyMCArMDIwMAogQEAgLTEzLDEwICsxMyw0OSBAQAogICNpbmNs dWRlIDxvcGVuc3NsL2JuLmg+CiAgI2luY2x1ZGUgImRzYV9sb2NsLmgiCkBAIC02NDQsOSArNjQ2 LDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RzYS9kc2Ffa2V5LmMuZmlwcyBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV8KICAgICAgb2sgPSAxOwogIAogICBlcnI6Ci1k aWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9vc3NsLmMuZmlwcyBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9vc3NsLmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v ZHNhL2RzYV9vc3NsLmMuZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAot KysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHNhX29zc2wuYwkyMDE5LTAyLTI4IDExOjMw OjA2LjgwMDc0NTc4MSArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2RzYS9k c2Ffb3NzbC5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2RzYS9kc2Ffb3NzbC5jCistLS0g b3BlbnNzbC0xLjEuMWQvY3J5cHRvL2RzYS9kc2Ffb3NzbC5jLmZpcHMJMjAxOS0wOS0xMCAxNTox MzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZHNhL2RzYV9v c3NsLmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNDc1MjUyMDMgKzAyMDAKIEBAIC0xNCw2ICsxNCw5 IEBACiAgI2luY2x1ZGUgPG9wZW5zc2wvc2hhLmg+CiAgI2luY2x1ZGUgImRzYV9sb2NsLmgiCkBA IC02NTcsNyArNjU5LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RzYS9kc2Ff b3NzbC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RzYS9kc2EKICAKICBzdGF0aWMgRFNB X1NJRyAqZHNhX2RvX3NpZ24oY29uc3QgdW5zaWduZWQgY2hhciAqZGdzdCwgaW50IGRsZW4sIERT QSAqZHNhKTsKICBzdGF0aWMgaW50IGRzYV9zaWduX3NldHVwX25vX2RpZ2VzdChEU0EgKmRzYSwg Qk5fQ1RYICpjdHhfaW4sIEJJR05VTSAqKmtpbnZwLAotQEAgLTczLDYgKzc2LDE5IEBAIHN0YXRp YyBEU0FfU0lHICpkc2FfZG9fc2lnbihjb25zdCB1bnNpZ24KK0BAIC03Nyw2ICs4MCwxOSBAQCBz dGF0aWMgRFNBX1NJRyAqZHNhX2RvX3NpZ24oY29uc3QgdW5zaWduCiAgICAgICAgICBnb3RvIGVy cjsKICAgICAgfQogIApAQCAtNjc3LDcgKzY3OSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9kc2EvZHNhX29zc2wuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHNh CiAgICAgIHJldCA9IERTQV9TSUdfbmV3KCk7CiAgICAgIGlmIChyZXQgPT0gTlVMTCkKICAgICAg ICAgIGdvdG8gZXJyOwotQEAgLTMwMSw2ICszMTcsMTggQEAgc3RhdGljIGludCBkc2FfZG9fdmVy aWZ5KGNvbnN0IHVuc2lnbmVkCitAQCAtMzE1LDYgKzMzMSwxOCBAQCBzdGF0aWMgaW50IGRzYV9k b192ZXJpZnkoY29uc3QgdW5zaWduZWQKICAgICAgICAgIERTQWVycihEU0FfRl9EU0FfRE9fVkVS SUZZLCBEU0FfUl9CQURfUV9WQUxVRSk7CiAgICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KQEAg LTY5Niw3ICs2OTgsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9v c3NsLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYQogIAogICAgICBpZiAoQk5f bnVtX2JpdHMoZHNhLT5wKSA+IE9QRU5TU0xfRFNBX01BWF9NT0RVTFVTX0JJVFMpIHsKICAgICAg ICAgIERTQWVycihEU0FfRl9EU0FfRE9fVkVSSUZZLCBEU0FfUl9NT0RVTFVTX1RPT19MQVJHRSk7 Ci1AQCAtMzg5LDYgKzQxNyw5IEBAIHN0YXRpYyBpbnQgZHNhX2RvX3ZlcmlmeShjb25zdCB1bnNp Z25lZAorQEAgLTQwMyw2ICs0MzEsOSBAQCBzdGF0aWMgaW50IGRzYV9kb192ZXJpZnkoY29uc3Qg dW5zaWduZWQKICAKICBzdGF0aWMgaW50IGRzYV9pbml0KERTQSAqZHNhKQogIHsKQEAgLTcwNiwx MCArNzA4LDEwIEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHNhX29zc2wu Yy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHNhCiAgICAgIGRzYS0+ZmxhZ3MgfD0g RFNBX0ZMQUdfQ0FDSEVfTU9OVF9QOwogICAgICByZXR1cm4gMTsKICB9Ci1kaWZmIC11cCBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9wbWV0aC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5 cHRvL2RzYS9kc2FfcG1ldGguYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHNhX3Bt ZXRoLmMuZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5z c2wtMS4xLjFiL2NyeXB0by9kc2EvZHNhX3BtZXRoLmMJMjAxOS0wMi0yOCAxMTozMDowNi44MDA3 NDU3ODEgKzAxMDAKLUBAIC0yMTEsOCArMjExLDggQEAgc3RhdGljIGludCBwa2V5X2RzYV9wYXJh bWdlbihFVlBfUEtFWV9DVAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2RzYS9kc2Ff cG1ldGguYy5maXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9kc2EvZHNhX3BtZXRoLmMKKy0tLSBv cGVuc3NsLTEuMS4xZC9jcnlwdG8vZHNhL2RzYV9wbWV0aC5jLmZpcHMJMjAxOS0wOS0xMCAxNTox MzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZHNhL2RzYV9w bWV0aC5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDQ3NTI1MjAzICswMjAwCitAQCAtMjE1LDggKzIx NSw4IEBAIHN0YXRpYyBpbnQgcGtleV9kc2FfcGFyYW1nZW4oRVZQX1BLRVlfQ1QKICAgICAgICAg IEJOX0dFTkNCX2ZyZWUocGNiKTsKICAgICAgICAgIHJldHVybiAwOwogICAgICB9CkBAIC03MjAs NyArNzIyLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RzYS9kc2FfcG1ldGgu Yy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kc2EvZHMKICAgICAgQk5fR0VOQ0JfZnJlZShw Y2IpOwogICAgICBpZiAocmV0KQogICAgICAgICAgRVZQX1BLRVlfYXNzaWduX0RTQShwa2V5LCBk c2EpOwotQEAgLTI0MSw3ICsyNDEsNyBAQCBzdGF0aWMgaW50IHBrZXlfZHNhX2tleWdlbihFVlBf UEtFWV9DVFgKK0BAIC0yNDUsNyArMjQ1LDcgQEAgc3RhdGljIGludCBwa2V5X2RzYV9rZXlnZW4o RVZQX1BLRVlfQ1RYCiAgCiAgY29uc3QgRVZQX1BLRVlfTUVUSE9EIGRzYV9wa2V5X21ldGggPSB7 CiAgICAgIEVWUF9QS0VZX0RTQSwKQEAgLTcyOSw5ICs3MzEsOSBAQCBkaWZmIC11cCBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9wbWV0aC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRv L2RzYS9kcwogICAgICBwa2V5X2RzYV9pbml0LAogICAgICBwa2V5X2RzYV9jb3B5LAogICAgICBw a2V5X2RzYV9jbGVhbnVwLAotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2VjL2VjZGhf b3NzbC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2VjL2VjZGhfb3NzbC5jCi0tLS0gb3Bl bnNzbC0xLjEuMWIvY3J5cHRvL2VjL2VjZGhfb3NzbC5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNToz MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZWMvZWNkaF9vc3Ns LmMJMjAxOS0wMi0yOCAxMTozMDowNi44MDE3NDU3NjMgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wt MS4xLjFkL2NyeXB0by9lYy9lY2RoX29zc2wuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9l Yy9lY2RoX29zc2wuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9lYy9lY2RoX29zc2wuYy5m aXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEu MWQvY3J5cHRvL2VjL2VjZGhfb3NzbC5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDQ3NTI1MjAzICsw MjAwCiBAQCAtMTksOSArMTksMjAgQEAKICAjaW5jbHVkZSA8b3BlbnNzbC9lYy5oPgogICNpbmNs dWRlICJlY19sY2wuaCIKQEAgLTc1Myw5ICs3NTUsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZWMvZWNkaF9vc3NsLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZWMvZWNk aAogICAgICBpZiAoZWNkaC0+Z3JvdXAtPm1ldGgtPmVjZGhfY29tcHV0ZV9rZXkgPT0gTlVMTCkg ewogICAgICAgICAgRUNlcnIoRUNfRl9PU1NMX0VDREhfQ09NUFVURV9LRVksIEVDX1JfQ1VSVkVf RE9FU19OT1RfU1VQUE9SVF9FQ0RIKTsKICAgICAgICAgIHJldHVybiAwOwotZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWIvY3J5cHRvL2VjL2VjZHNhX29zc2wuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2Ny eXB0by9lYy9lY2RzYV9vc3NsLmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZWMvZWNkc2Ff b3NzbC5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZWMvZWNkc2Ffb3NzbC5jCTIwMTktMDItMjggMTE6MzA6MDYuODAx NzQ1NzYzICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZWMvZWNkc2Ffb3Nz bC5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2VjL2VjZHNhX29zc2wuYworLS0tIG9wZW5z c2wtMS4xLjFkL2NyeXB0by9lYy9lY2RzYV9vc3NsLmMuZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3 LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9lYy9lY2RzYV9vc3Ns LmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNDc1MjUyMDMgKzAyMDAKIEBAIC0xNCw2ICsxNCwxMCBA QAogICNpbmNsdWRlICJpbnRlcm5hbC9ibl9pbnQuaCIKICAjaW5jbHVkZSAiZWNfbGNsLmgiCkBA IC03NjcsNyArNzY5LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2VjL2VjZHNh X29zc2wuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lYy9lY2QKICBpbnQgb3NzbF9lY2Rz YV9zaWduKGludCB0eXBlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkZ3N0LCBpbnQgZGxlbiwKICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgdW5zaWduZWQgaW50ICpzaWds ZW4sCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCSUdOVU0gKmtpbnYsIGNvbnN0IEJJR05V TSAqciwgRUNfS0VZICplY2tleSkKLUBAIC0xNTksNiArMTYzLDEzIEBAIEVDRFNBX1NJRyAqb3Nz bF9lY2RzYV9zaWduX3NpZyhjb25zdCB1bnMKK0BAIC0xNjMsNiArMTY3LDEzIEBAIEVDRFNBX1NJ RyAqb3NzbF9lY2RzYV9zaWduX3NpZyhjb25zdCB1bnMKICAgICAgRUNEU0FfU0lHICpyZXQ7CiAg ICAgIGNvbnN0IEJJR05VTSAqcHJpdl9rZXk7CiAgCkBAIC03ODEsNyArNzgzLDcgQEAgZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2VjL2VjZHNhX29zc2wuYy5maXBzIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9lYy9lY2QKICAgICAgZ3JvdXAgPSBFQ19LRVlfZ2V0MF9ncm91cChlY2tleSk7 CiAgICAgIHByaXZfa2V5ID0gRUNfS0VZX2dldDBfcHJpdmF0ZV9rZXkoZWNrZXkpOwogIAotQEAg LTMxNyw2ICszMjgsMTMgQEAgaW50IG9zc2xfZWNkc2FfdmVyaWZ5X3NpZyhjb25zdCB1bnNpZ25l ZAorQEAgLTMyNSw2ICszMzYsMTMgQEAgaW50IG9zc2xfZWNkc2FfdmVyaWZ5X3NpZyhjb25zdCB1 bnNpZ25lZAogICAgICBjb25zdCBFQ19HUk9VUCAqZ3JvdXA7CiAgICAgIGNvbnN0IEVDX1BPSU5U ICpwdWJfa2V5OwogIApAQCAtNzk1LDkgKzc5Nyw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9lYy9lY2RzYV9vc3NsLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZWMvZWNk CiAgICAgIC8qIGNoZWNrIGlucHV0IHZhbHVlcyAqLwogICAgICBpZiAoZWNrZXkgPT0gTlVMTCB8 fCAoZ3JvdXAgPSBFQ19LRVlfZ2V0MF9ncm91cChlY2tleSkpID09IE5VTEwgfHwKICAgICAgICAg IChwdWJfa2V5ID0gRUNfS0VZX2dldDBfcHVibGljX2tleShlY2tleSkpID09IE5VTEwgfHwgc2ln ID09IE5VTEwpIHsKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lYy9lY19rZXkuYy5m aXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lYy9lY19rZXkuYwotLS0tIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9lYy9lY19rZXkuYy5maXBzCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICsw MTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2VjL2VjX2tleS5jCTIwMTktMDItMjggMTE6 MzA6MDYuODAyNzQ1NzQ0ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZWMv ZWNfa2V5LmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZWMvZWNfa2V5LmMKKy0tLSBvcGVu c3NsLTEuMS4xZC9jcnlwdG8vZWMvZWNfa2V5LmMuZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAw MDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9lYy9lY19rZXkuYwkyMDE5 LTA5LTEzIDE1OjEzOjExLjA0ODUyNTE4NiArMDIwMAogQEAgLTE3OCwxNCArMTc4LDYyIEBAIEVO R0lORSAqRUNfS0VZX2dldDBfZW5naW5lKGNvbnN0IEVDX0tFWQogICAgICByZXR1cm4gZWNrZXkt PmVuZ2luZTsKICB9CkBAIC04NjMsMTAgKzg2NSwxMCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZWMvZWNfa2V5LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZWMvZWNfa2V5 LgogICAgICBFQ2VycihFQ19GX0VDX0tFWV9HRU5FUkFURV9LRVksIEVDX1JfT1BFUkFUSU9OX05P VF9TVVBQT1JURUQpOwogICAgICByZXR1cm4gMDsKICB9Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZWMvZWNfcG1ldGguYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lYy9lY19w bWV0aC5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2VjL2VjX3BtZXRoLmMuZmlwcwkyMDE5 LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9lYy9lY19wbWV0aC5jCTIwMTktMDUtMDYgMTQ6NDc6MzQuNjUxMDc3MjUxICswMjAwCi1AQCAt NDM0LDcgKzQzNCw3IEBAIHN0YXRpYyBpbnQgcGtleV9lY19rZXlnZW4oRVZQX1BLRVlfQ1RYICoK K2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9lYy9lY19wbWV0aC5jLmZpcHMgb3BlbnNz bC0xLjEuMWQvY3J5cHRvL2VjL2VjX3BtZXRoLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8v ZWMvZWNfcG1ldGguYy5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisr Kysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2VjL2VjX3BtZXRoLmMJMjAxOS0wOS0xMyAxNToxMzox MS4wNDg1MjUxODYgKzAyMDAKK0BAIC00MzgsNyArNDM4LDcgQEAgc3RhdGljIGludCBwa2V5X2Vj X2tleWdlbihFVlBfUEtFWV9DVFggKgogIAogIGNvbnN0IEVWUF9QS0VZX01FVEhPRCBlY19wa2V5 X21ldGggPSB7CiAgICAgIEVWUF9QS0VZX0VDLApAQCAtODc1LDkgKzg3Nyw5IEBAIGRpZmYgLXVw IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lYy9lY19wbWV0aC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL2VjL2VjX3BtCiAgICAgIHBrZXlfZWNfaW5pdCwKICAgICAgcGtleV9lY19jb3B5LAog ICAgICBwa2V5X2VjX2NsZWFudXAsCi1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZw L2NfYWxsYy5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9jX2FsbGMuYwotLS0tIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvY19hbGxjLmMuZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMw LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvY19hbGxjLmMJ MjAxOS0wMi0yOCAxMTozMDowNi44MDI3NDU3NDQgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9ldnAvY19hbGxjLmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2Nf YWxsYy5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9jX2FsbGMuYy5maXBzCTIwMTkt MDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRv L2V2cC9jX2FsbGMuYwkyMDE5LTA5LTEzIDE1OjEzOjExLjA0ODUyNTE4NiArMDIwMAogQEAgLTE3 LDYgKzE3LDkgQEAKICB2b2lkIG9wZW5zc2xfYWRkX2FsbF9jaXBoZXJzX2ludCh2b2lkKQogIHsK QEAgLTk1OSw5ICs5NjEsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2Nf YWxsYy5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9jX2FsbAogKyAgICB9CiArI2Vu ZGlmCiAgfQotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9jX2FsbGQuYy5maXBz IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvY19hbGxkLmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vZXZwL2NfYWxsZC5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2NfYWxsZC5jCTIwMTktMDItMjggMTE6 MzA6MDYuODAzNzQ1NzI2ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZw L2NfYWxsZC5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9jX2FsbGQuYworLS0tIG9w ZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAvY19hbGxkLmMuZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3 LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAvY19hbGxkLmMJ MjAxOS0wOS0xMyAxNToxMzoxMS4wNDg1MjUxODYgKzAyMDAKIEBAIC0xNiw2ICsxNiw5IEBACiAg CiAgdm9pZCBvcGVuc3NsX2FkZF9hbGxfZGlnZXN0c19pbnQodm9pZCkKQEAgLTk5Nyw5ICs5OTks OSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2NfYWxsZC5jLmZpcHMgb3Bl bnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9jX2FsbAogKyAgICB9CiArI2VuZGlmCiAgfQotZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWMvY3J5cHRvL2V2cC9kaWdlc3QuYy5maXBzIG9wZW5zc2wtMS4xLjFj L2NyeXB0by9ldnAvZGlnZXN0LmMKLS0tLSBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vZXZwL2RpZ2Vz dC5jLmZpcHMJMjAxOS0wNS0yOCAxNToxMjoyMS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBvcGVuc3Ns LTEuMS4xYy9jcnlwdG8vZXZwL2RpZ2VzdC5jCTIwMTktMDUtMjkgMTU6NDc6NTkuMjIwNDk5OTcx ICswMjAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2RpZ2VzdC5jLmZpcHMg b3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9kaWdlc3QuYworLS0tIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9ldnAvZGlnZXN0LmMuZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIw MAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAvZGlnZXN0LmMJMjAxOS0wOS0xMyAxNTox MzoxMS4wNDk1MjUxNjggKzAyMDAKIEBAIC0xNCw2ICsxNCw5IEBACiAgI2luY2x1ZGUgPG9wZW5z c2wvZW5naW5lLmg+CiAgI2luY2x1ZGUgImludGVybmFsL2V2cF9pbnQuaCIKQEAgLTEwNjAsOTUg KzEwNjIsMjggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWMvY3J5cHRvL2V2cC9kaWdlc3QuYy5m aXBzIG9wZW5zc2wtMS4xLjFjL2NyeXB0by9ldnAvZGlnZXMKICAgICAgT1BFTlNTTF9hc3NlcnQo Y3R4LT5kaWdlc3QtPm1kX3NpemUgPD0gRVZQX01BWF9NRF9TSVpFKTsKICAgICAgcmV0ID0gY3R4 LT5kaWdlc3QtPmZpbmFsKGN0eCwgbWQpOwogICAgICBpZiAoc2l6ZSAhPSBOVUxMKQotZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lX2Flcy5jLmZpcHMgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL2V2cC9lX2Flcy5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lX2Flcy5j LmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEu MS4xYi9jcnlwdG8vZXZwL2VfYWVzLmMJMjAxOS0wNS0wNiAxNjozMjo0MS42MzE2NjgzMzMgKzAy MDAKLUBAIC0zODcsMjIgKzM4NywzMyBAQCBzdGF0aWMgaW50IGFlc25pX3h0c19pbml0X2tleShF VlBfQ0lQSEVSCi0gICAgICAgICByZXR1cm4gMTsKLSAKLSAgICAgaWYgKGtleSkgewotKyAgICAg ICAgLyogVGhlIGtleSBpcyB0d28gaGFsZiBsZW5ndGgga2V5cyBpbiByZWFsaXR5ICovCi0rICAg ICAgICBjb25zdCBpbnQgYnl0ZXMgPSBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgLyAy OwotKyAgICAgICAgY29uc3QgaW50IGJpdHMgPSBieXRlcyAqIDg7Ci0rCi0rICAgICAgICAvKgot KyAgICAgICAgICogVmVyaWZ5IHRoYXQgdGhlIHR3byBrZXlzIGFyZSBkaWZmZXJlbnQuCi0rICAg ICAgICAgKiAKLSsgICAgICAgICAqIFRoaXMgYWRkcmVzc2VzIFJvZ2F3YXkncyB2dWxuZXJhYmls aXR5LgotKyAgICAgICAgICogU2VlIGNvbW1lbnQgaW4gYWVzX3h0c19pbml0X2tleSgpIGJlbG93 LgotKyAgICAgICAgICovCi0rICAgICAgICBpZiAobWVtY21wKGtleSwga2V5ICsgYnl0ZXMsIGJ5 dGVzKSA9PSAwKSB7Ci0rICAgICAgICAgICAgRVZQZXJyKEVWUF9GX0FFU05JX1hUU19JTklUX0tF WSwgRVZQX1JfWFRTX0RVUExJQ0FURURfS0VZUyk7Ci0rICAgICAgICAgICAgcmV0dXJuIDA7Ci0r ICAgICAgICB9Ci0rCi0gICAgICAgICAvKiBrZXlfbGVuIGlzIHR3byBBRVMga2V5cyAqLwotICAg ICAgICAgaWYgKGVuYykgewotLSAgICAgICAgICAgIGFlc25pX3NldF9lbmNyeXB0X2tleShrZXks IEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAqIDQsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZ4Y3R4LT5rczEua3MpOwotKyAgICAgICAgICAgIGFlc25pX3NldF9l bmNyeXB0X2tleShrZXksIGJpdHMsICZ4Y3R4LT5rczEua3MpOwotICAgICAgICAgICAgIHhjdHgt Pnh0cy5ibG9jazEgPSAoYmxvY2sxMjhfZikgYWVzbmlfZW5jcnlwdDsKLSAgICAgICAgICAgICB4 Y3R4LT5zdHJlYW0gPSBhZXNuaV94dHNfZW5jcnlwdDsKLSAgICAgICAgIH0gZWxzZSB7Ci0tICAg ICAgICAgICAgYWVzbmlfc2V0X2RlY3J5cHRfa2V5KGtleSwgRVZQX0NJUEhFUl9DVFhfa2V5X2xl bmd0aChjdHgpICogNCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnhjdHgt PmtzMS5rcyk7Ci0rICAgICAgICAgICAgYWVzbmlfc2V0X2RlY3J5cHRfa2V5KGtleSwgYml0cywg JnhjdHgtPmtzMS5rcyk7Ci0gICAgICAgICAgICAgeGN0eC0+eHRzLmJsb2NrMSA9IChibG9jazEy OF9mKSBhZXNuaV9kZWNyeXB0OwotICAgICAgICAgICAgIHhjdHgtPnN0cmVhbSA9IGFlc25pX3h0 c19kZWNyeXB0OworZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9lX2Flcy5jLmZp cHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9lX2Flcy5jCistLS0gb3BlbnNzbC0xLjEuMWQv Y3J5cHRvL2V2cC9lX2Flcy5jLmZpcHMJMjAxOS0wOS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAy MDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2VfYWVzLmMJMjAxOS0wOS0xMyAxNzox OTowMC41NTg5OTQ1NjkgKzAyMDAKK0BAIC0zOTcsNyArMzk3LDcgQEAgc3RhdGljIGludCBhZXNu aV94dHNfaW5pdF9rZXkoRVZQX0NJUEhFUgorICAgICAgICAgICogVGhpcyBhZGRyZXNzZXMgUm9n YXdheSdzIHZ1bG5lcmFiaWxpdHkuCisgICAgICAgICAgKiBTZWUgY29tbWVudCBpbiBhZXNfeHRz X2luaXRfa2V5KCkgYmVsb3cuCisgICAgICAgICAgKi8KKy0gICAgICAgIGlmIChlbmMgJiYgQ1JZ UFRPX21lbWNtcChrZXksIGtleSArIGJ5dGVzLCBieXRlcykgPT0gMCkgeworKyAgICAgICAgaWYg KENSWVBUT19tZW1jbXAoa2V5LCBrZXkgKyBieXRlcywgYnl0ZXMpID09IDApIHsKKyAgICAgICAg ICAgICBFVlBlcnIoRVZQX0ZfQUVTTklfWFRTX0lOSVRfS0VZLCBFVlBfUl9YVFNfRFVQTElDQVRF RF9LRVlTKTsKKyAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgIH0KLSAKLS0gICAgICAg IGFlc25pX3NldF9lbmNyeXB0X2tleShrZXkgKyBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0 eCkgLyAyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUF9DSVBIRVJfQ1RYX2tl eV9sZW5ndGgoY3R4KSAqIDQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnhjdHgt PmtzMi5rcyk7Ci0rICAgICAgICBhZXNuaV9zZXRfZW5jcnlwdF9rZXkoa2V5ICsgYnl0ZXMsIGJp dHMsICZ4Y3R4LT5rczIua3MpOwotICAgICAgICAgeGN0eC0+eHRzLmJsb2NrMiA9IChibG9jazEy OF9mKSBhZXNuaV9lbmNyeXB0OwotIAotICAgICAgICAgeGN0eC0+eHRzLmtleTEgPSAmeGN0eC0+ a3MxOwotQEAgLTc5MSw3ICs4MDIsMjEgQEAgc3RhdGljIGludCBhZXNfdDRfeHRzX2luaXRfa2V5 KEVWUF9DSVBIRQotICAgICAgICAgcmV0dXJuIDE7Ci0gCi0gICAgIGlmIChrZXkpIHsKLS0gICAg ICAgIGludCBiaXRzID0gRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0aChjdHgpICogNDsKLSsgICAg ICAgIC8qIFRoZSBrZXkgaXMgdHdvIGhhbGYgbGVuZ3RoIGtleXMgaW4gcmVhbGl0eSAqLwotKyAg ICAgICAgY29uc3QgaW50IGJ5dGVzID0gRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0aChjdHgpIC8g MjsKLSsgICAgICAgIGNvbnN0IGludCBiaXRzID0gYnl0ZXMgKiA4OwotKwotKyAgICAgICAgLyoK LSsgICAgICAgICAqIFZlcmlmeSB0aGF0IHRoZSB0d28ga2V5cyBhcmUgZGlmZmVyZW50LgotKyAg ICAgICAgICogCi0rICAgICAgICAgKiBUaGlzIGFkZHJlc3NlcyBSb2dhd2F5J3MgdnVsbmVyYWJp bGl0eS4KLSsgICAgICAgICAqIFNlZSBjb21tZW50IGluIGFlc194dHNfaW5pdF9rZXkoKSBiZWxv dy4KLSsgICAgICAgICAqLwotKyAgICAgICAgaWYgKG1lbWNtcChrZXksIGtleSArIGJ5dGVzLCBi eXRlcykgPT0gMCkgewotKyAgICAgICAgICAgIEVWUGVycihFVlBfRl9BRVNfVDRfWFRTX0lOSVRf S0VZLCBFVlBfUl9YVFNfRFVQTElDQVRFRF9LRVlTKTsKLSsgICAgICAgICAgICByZXR1cm4gMDsK LSsgICAgICAgIH0KLSsKLSAgICAgICAgIHhjdHgtPnN0cmVhbSA9IE5VTEw7Ci0gICAgICAgICAv KiBrZXlfbGVuIGlzIHR3byBBRVMga2V5cyAqLwotICAgICAgICAgaWYgKGVuYykgewotQEAgLTgw OCw4ICs4MzMsNyBAQCBzdGF0aWMgaW50IGFlc190NF94dHNfaW5pdF9rZXkoRVZQX0NJUEhFCi0g ICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxz ZSB7Ci0tICAgICAgICAgICAgYWVzX3Q0X3NldF9kZWNyeXB0X2tleShrZXksIEVWUF9DSVBIRVJf Q1RYX2tleV9sZW5ndGgoY3R4KSAqIDQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmeGN0eC0+a3MxLmtzKTsKLSsgICAgICAgICAgICBhZXNfdDRfc2V0X2RlY3J5cHRfa2V5 KGtleSwgYml0cywgJnhjdHgtPmtzMS5rcyk7Ci0gICAgICAgICAgICAgeGN0eC0+eHRzLmJsb2Nr MSA9IChibG9jazEyOF9mKSBhZXNfdDRfZGVjcnlwdDsKLSAgICAgICAgICAgICBzd2l0Y2ggKGJp dHMpIHsKLSAgICAgICAgICAgICBjYXNlIDEyODoKLUBAIC04MjMsOSArODQ3LDcgQEAgc3RhdGlj IGludCBhZXNfdDRfeHRzX2luaXRfa2V5KEVWUF9DSVBIRQotICAgICAgICAgICAgIH0KK0BAIC04 MTcsNyArODE3LDcgQEAgc3RhdGljIGludCBhZXNfdDRfeHRzX2luaXRfa2V5KEVWUF9DSVBIRQor ICAgICAgICAgICogVGhpcyBhZGRyZXNzZXMgUm9nYXdheSdzIHZ1bG5lcmFiaWxpdHkuCisgICAg ICAgICAgKiBTZWUgY29tbWVudCBpbiBhZXNfeHRzX2luaXRfa2V5KCkgYmVsb3cuCisgICAgICAg ICAgKi8KKy0gICAgICAgIGlmIChlbmMgJiYgQ1JZUFRPX21lbWNtcChrZXksIGtleSArIGJ5dGVz LCBieXRlcykgPT0gMCkgeworKyAgICAgICAgaWYgKENSWVBUT19tZW1jbXAoa2V5LCBrZXkgKyBi eXRlcywgYnl0ZXMpID09IDApIHsKKyAgICAgICAgICAgICBFVlBlcnIoRVZQX0ZfQUVTX1Q0X1hU U19JTklUX0tFWSwgRVZQX1JfWFRTX0RVUExJQ0FURURfS0VZUyk7CisgICAgICAgICAgICAgcmV0 dXJuIDA7CiAgICAgICAgICB9Ci0gCi0tICAgICAgICBhZXNfdDRfc2V0X2VuY3J5cHRfa2V5KGtl eSArIEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAvIDIsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAqIDQsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ4Y3R4LT5rczIua3MpOwotKyAgICAgICAgYWVz X3Q0X3NldF9lbmNyeXB0X2tleShrZXkgKyBieXRlcywgYml0cywgJnhjdHgtPmtzMi5rcyk7Ci0g ICAgICAgICB4Y3R4LT54dHMuYmxvY2syID0gKGJsb2NrMTI4X2YpIGFlc190NF9lbmNyeXB0Owot IAotICAgICAgICAgeGN0eC0+eHRzLmtleTEgPSAmeGN0eC0+a3MxOwotQEAgLTI3OTQsOSArMjgx Niw5IEBAIHN0YXRpYyBpbnQgYWVzX2N0cl9jaXBoZXIoRVZQX0NJUEhFUl9DVFgKK0BAIC0yODMz LDkgKzI4MzMsOSBAQCBzdGF0aWMgaW50IGFlc19jdHJfY2lwaGVyKEVWUF9DSVBIRVJfQ1RYCiAg ICAgIHJldHVybiAxOwogIH0KICAKQEAgLTExNjEsNyArMTA5Niw3IEBAIGRpZmYgLXVwIG9wZW5z c2wtMS4xLjFiL2NyeXB0by9ldnAvZV9hZXMuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9l dnAvZV9hZXMuCiAgCiAgc3RhdGljIGludCBhZXNfZ2NtX2NsZWFudXAoRVZQX0NJUEhFUl9DVFgg KmMpCiAgewotQEAgLTI4MjYsNiArMjg0OCwxMSBAQCBzdGF0aWMgaW50IGFlc19nY21fY3RybChF VlBfQ0lQSEVSX0NUWCAqCitAQCAtMjg2OSw2ICsyODY5LDExIEBAIHN0YXRpYyBpbnQgYWVzX2dj bV9jdHJsKEVWUF9DSVBIRVJfQ1RYICoKICAgICAgY2FzZSBFVlBfQ1RSTF9BRUFEX1NFVF9JVkxF TjoKICAgICAgICAgIGlmIChhcmcgPD0gMCkKICAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTEx NzMsMTQxICsxMTA4LDE2IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9h ZXMuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9hZXMuCiAgICAgICAgICAvKiBB bGxvY2F0ZSBtZW1vcnkgZm9yIElWIGlmIG5lZWRlZCAqLwogICAgICAgICAgaWYgKChhcmcgPiBF VlBfTUFYX0lWX0xFTkdUSCkgJiYgKGFyZyA+IGdjdHgtPml2bGVuKSkgewogICAgICAgICAgICAg IGlmIChnY3R4LT5pdiAhPSBjLT5pdikKLUBAIC0zMjc1LDExICszMzAyLDE0IEBAIHN0YXRpYyBp bnQgYWVzX2djbV9jaXBoZXIoRVZQX0NJUEhFUl9DVFgKLSAgICAgICAgICAgICAgICAgfCBFVlBf Q0lQSF9DVVNUT01fQ09QWSkKLSAKLSBCTE9DS19DSVBIRVJfY3VzdG9tKE5JRF9hZXMsIDEyOCwg MSwgMTIsIGdjbSwgR0NNLAotLSAgICAgICAgICAgICAgICAgICAgRVZQX0NJUEhfRkxBR19BRUFE X0NJUEhFUiB8IENVU1RPTV9GTEFHUykKLSsgICAgICAgICAgICAgICAgICAgIEVWUF9DSVBIX0ZM QUdfRklQUyB8IEVWUF9DSVBIX0ZMQUdfQUVBRF9DSVBIRVIgfAotKyAgICAgICAgICAgICAgICAg ICAgQ1VTVE9NX0ZMQUdTKQotICAgICBCTE9DS19DSVBIRVJfY3VzdG9tKE5JRF9hZXMsIDE5Miwg MSwgMTIsIGdjbSwgR0NNLAotLSAgICAgICAgICAgICAgICAgICAgRVZQX0NJUEhfRkxBR19BRUFE X0NJUEhFUiB8IENVU1RPTV9GTEFHUykKLSsgICAgICAgICAgICAgICAgICAgIEVWUF9DSVBIX0ZM QUdfRklQUyB8IEVWUF9DSVBIX0ZMQUdfQUVBRF9DSVBIRVIgfAotKyAgICAgICAgICAgICAgICAg ICAgQ1VTVE9NX0ZMQUdTKQotICAgICBCTE9DS19DSVBIRVJfY3VzdG9tKE5JRF9hZXMsIDI1Niwg MSwgMTIsIGdjbSwgR0NNLAotLSAgICAgICAgICAgICAgICAgICAgRVZQX0NJUEhfRkxBR19BRUFE X0NJUEhFUiB8IENVU1RPTV9GTEFHUykKLSsgICAgICAgICAgICAgICAgICAgIEVWUF9DSVBIX0ZM QUdfRklQUyB8IEVWUF9DSVBIX0ZMQUdfQUVBRF9DSVBIRVIgfAotKyAgICAgICAgICAgICAgICAg ICAgQ1VTVE9NX0ZMQUdTKQotIAotIHN0YXRpYyBpbnQgYWVzX3h0c19jdHJsKEVWUF9DSVBIRVJf Q1RYICpjLCBpbnQgdHlwZSwgaW50IGFyZywgdm9pZCAqcHRyKQotIHsKLUBAIC0zMzEzLDggKzMz NDMsMzMgQEAgc3RhdGljIGludCBhZXNfeHRzX2luaXRfa2V5KEVWUF9DSVBIRVJfQwotICAgICBp ZiAoIWl2ICYmICFrZXkpCi0gICAgICAgICByZXR1cm4gMTsKLSAKLS0gICAgaWYgKGtleSkKLSsg ICAgaWYgKGtleSkgewotICAgICAgICAgZG8gewotKyAgICAgICAgICAgIC8qIFRoZSBrZXkgaXMg dHdvIGhhbGYgbGVuZ3RoIGtleXMgaW4gcmVhbGl0eSAqLwotKyAgICAgICAgICAgIGNvbnN0IGlu dCBieXRlcyA9IEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAvIDI7Ci0rICAgICAgICAg ICAgY29uc3QgaW50IGJpdHMgPSBieXRlcyAqIDg7Ci0rCi0rICAgICAgICAgICAgLyoKLSsgICAg ICAgICAgICAgKiBWZXJpZnkgdGhhdCB0aGUgdHdvIGtleXMgYXJlIGRpZmZlcmVudC4KLSsgICAg ICAgICAgICAgKgotKyAgICAgICAgICAgICAqIFRoaXMgYWRkcmVzc2VzIHRoZSB2dWxuZXJhYmls aXR5IGRlc2NyaWJlZCBpbiBSb2dhd2F5J3MKLSsgICAgICAgICAgICAgKiBTZXB0ZW1iZXIgMjAw NCBwYXBlcjoKLSsgICAgICAgICAgICAgKgotKyAgICAgICAgICAgICAqICAgICAgIkVmZmljaWVu dCBJbnN0YW50aWF0aW9ucyBvZiBUd2Vha2FibGUgQmxvY2tjaXBoZXJzIGFuZAotKyAgICAgICAg ICAgICAqICAgICAgIFJlZmluZW1lbnRzIHRvIE1vZGVzIE9DQiBhbmQgUE1BQyIuCi0rICAgICAg ICAgICAgICogICAgICAoaHR0cDovL3dlYi5jcy51Y2RhdmlzLmVkdS9+cm9nYXdheS9wYXBlcnMv b2Zmc2V0cy5wZGYpCi0rICAgICAgICAgICAgICoKLSsgICAgICAgICAgICAgKiBGSVBTIDE0MC0y IElHIEEuOSBYVFMtQUVTIEtleSBHZW5lcmF0aW9uIFJlcXVpcmVtZW50cyBzdGF0ZXMKLSsgICAg ICAgICAgICAgKiB0aGF0OgotKyAgICAgICAgICAgICAqICAgICAgIlRoZSBjaGVjayBmb3IgS2V5 XzEgIT0gS2V5XzIgc2hhbGwgYmUgZG9uZSBhdCBhbnkgcGxhY2UKLSsgICAgICAgICAgICAgKiAg ICAgICBCRUZPUkUgdXNpbmcgdGhlIGtleXMgaW4gdGhlIFhUUy1BRVMgYWxnb3JpdGhtIHRvIHBy b2Nlc3MKLSsgICAgICAgICAgICAgKiAgICAgICBkYXRhIHdpdGggdGhlbS4iCi0rICAgICAgICAg ICAgICovCi0rICAgICAgICAgICAgaWYgKG1lbWNtcChrZXksIGtleSArIGJ5dGVzLCBieXRlcykg PT0gMCkgewotKyAgICAgICAgICAgICAgICBFVlBlcnIoRVZQX0ZfQUVTX1hUU19JTklUX0tFWSwg RVZQX1JfWFRTX0RVUExJQ0FURURfS0VZUyk7Ci0rICAgICAgICAgICAgICAgIHJldHVybiAwOwot KyAgICAgICAgICAgIH0KLSsKLSAjaWZkZWYgQUVTX1hUU19BU00KLSAgICAgICAgICAgICB4Y3R4 LT5zdHJlYW0gPSBlbmMgPyBBRVNfeHRzX2VuY3J5cHQgOiBBRVNfeHRzX2RlY3J5cHQ7Ci0gI2Vs c2UKLUBAIC0zMzI0LDI2ICszMzc5LDIwIEBAIHN0YXRpYyBpbnQgYWVzX3h0c19pbml0X2tleShF VlBfQ0lQSEVSX0MKLSAjaWZkZWYgSFdBRVNfQ0FQQUJMRQotICAgICAgICAgICAgIGlmIChIV0FF U19DQVBBQkxFKSB7Ci0gICAgICAgICAgICAgICAgIGlmIChlbmMpIHsKLS0gICAgICAgICAgICAg ICAgICAgIEhXQUVTX3NldF9lbmNyeXB0X2tleShrZXksCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0aChjdHgpICogNCwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmeGN0eC0+a3MxLmtz KTsKLSsgICAgICAgICAgICAgICAgICAgIEhXQUVTX3NldF9lbmNyeXB0X2tleShrZXksIGJpdHMs ICZ4Y3R4LT5rczEua3MpOwotICAgICAgICAgICAgICAgICAgICAgeGN0eC0+eHRzLmJsb2NrMSA9 IChibG9jazEyOF9mKSBIV0FFU19lbmNyeXB0OwotICMgaWZkZWYgSFdBRVNfeHRzX2VuY3J5cHQK LSAgICAgICAgICAgICAgICAgICAgIHhjdHgtPnN0cmVhbSA9IEhXQUVTX3h0c19lbmNyeXB0Owot ICMgZW5kaWYKLSAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAg IEhXQUVTX3NldF9kZWNyeXB0X2tleShrZXksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0aChjdHgpICogNCwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmeGN0eC0+a3MxLmtzKTsKLSsg ICAgICAgICAgICAgICAgICAgIEhXQUVTX3NldF9kZWNyeXB0X2tleShrZXksIGJpdHMsICZ4Y3R4 LT5rczEua3MpOwotICAgICAgICAgICAgICAgICAgICAgeGN0eC0+eHRzLmJsb2NrMSA9IChibG9j azEyOF9mKSBIV0FFU19kZWNyeXB0OwotICMgaWZkZWYgSFdBRVNfeHRzX2RlY3J5cHQKLSAgICAg ICAgICAgICAgICAgICAgIHhjdHgtPnN0cmVhbSA9IEhXQUVTX3h0c19kZWNyeXB0OwotICNlbmRp ZgotICAgICAgICAgICAgICAgICB9Ci0gCi0tICAgICAgICAgICAgICAgIEhXQUVTX3NldF9lbmNy eXB0X2tleShrZXkgKyBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgLyAyLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0 aChjdHgpICogNCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ4Y3R4 LT5rczIua3MpOwotKyAgICAgICAgICAgICAgICBIV0FFU19zZXRfZW5jcnlwdF9rZXkoa2V5ICsg Ynl0ZXMsIGJpdHMsICZ4Y3R4LT5rczIua3MpOwotICAgICAgICAgICAgICAgICB4Y3R4LT54dHMu YmxvY2syID0gKGJsb2NrMTI4X2YpIEhXQUVTX2VuY3J5cHQ7Ci0gCi0gICAgICAgICAgICAgICAg IHhjdHgtPnh0cy5rZXkxID0gJnhjdHgtPmtzMTsKLUBAIC0zMzU4LDIwICszNDA3LDE0IEBAIHN0 YXRpYyBpbnQgYWVzX3h0c19pbml0X2tleShFVlBfQ0lQSEVSX0MKLSAjaWZkZWYgVlBBRVNfQ0FQ QUJMRQotICAgICAgICAgICAgIGlmIChWUEFFU19DQVBBQkxFKSB7Ci0gICAgICAgICAgICAgICAg IGlmIChlbmMpIHsKLS0gICAgICAgICAgICAgICAgICAgIHZwYWVzX3NldF9lbmNyeXB0X2tleShr ZXksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZQX0NJUEhF Ul9DVFhfa2V5X2xlbmd0aChjdHgpICogNCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmeGN0eC0+a3MxLmtzKTsKLSsgICAgICAgICAgICAgICAgICAgIHZwYWVz X3NldF9lbmNyeXB0X2tleShrZXksIGJpdHMsICZ4Y3R4LT5rczEua3MpOwotICAgICAgICAgICAg ICAgICAgICAgeGN0eC0+eHRzLmJsb2NrMSA9IChibG9jazEyOF9mKSB2cGFlc19lbmNyeXB0Owot ICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgdnBhZXNfc2V0 X2RlY3J5cHRfa2V5KGtleSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgKiA0LAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ4Y3R4LT5rczEua3MpOwotKyAgICAgICAgICAg ICAgICAgICAgdnBhZXNfc2V0X2RlY3J5cHRfa2V5KGtleSwgYml0cywgJnhjdHgtPmtzMS5rcyk7 Ci0gICAgICAgICAgICAgICAgICAgICB4Y3R4LT54dHMuYmxvY2sxID0gKGJsb2NrMTI4X2YpIHZw YWVzX2RlY3J5cHQ7Ci0gICAgICAgICAgICAgICAgIH0KLSAKLS0gICAgICAgICAgICAgICAgdnBh ZXNfc2V0X2VuY3J5cHRfa2V5KGtleSArIEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAv IDIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlBfQ0lQSEVSX0NU WF9rZXlfbGVuZ3RoKGN0eCkgKiA0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJnhjdHgtPmtzMi5rcyk7Ci0rICAgICAgICAgICAgICAgIHZwYWVzX3NldF9lbmNyeXB0 X2tleShrZXkgKyBieXRlcywgYml0cywgJnhjdHgtPmtzMi5rcyk7Ci0gICAgICAgICAgICAgICAg IHhjdHgtPnh0cy5ibG9jazIgPSAoYmxvY2sxMjhfZikgdnBhZXNfZW5jcnlwdDsKLSAKLSAgICAg ICAgICAgICAgICAgeGN0eC0+eHRzLmtleTEgPSAmeGN0eC0+a3MxOwotQEAgLTMzODEsMjIgKzM0 MjQsMTkgQEAgc3RhdGljIGludCBhZXNfeHRzX2luaXRfa2V5KEVWUF9DSVBIRVJfQwotICAgICAg ICAgICAgICAgICAodm9pZCkwOyAgICAgICAgLyogdGVybWluYXRlIHBvdGVudGlhbGx5IG9wZW4g J2Vsc2UnICovCi0gCi0gICAgICAgICAgICAgaWYgKGVuYykgewotLSAgICAgICAgICAgICAgICBB RVNfc2V0X2VuY3J5cHRfa2V5KGtleSwgRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0aChjdHgpICog NCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmeGN0eC0+a3MxLmtzKTsK LSsgICAgICAgICAgICAgICAgQUVTX3NldF9lbmNyeXB0X2tleShrZXksIGJpdHMsICZ4Y3R4LT5r czEua3MpOwotICAgICAgICAgICAgICAgICB4Y3R4LT54dHMuYmxvY2sxID0gKGJsb2NrMTI4X2Yp IEFFU19lbmNyeXB0OwotICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIEFF U19zZXRfZGVjcnlwdF9rZXkoa2V5LCBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgKiA0 LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ4Y3R4LT5rczEua3MpOwot KyAgICAgICAgICAgICAgICBBRVNfc2V0X2RlY3J5cHRfa2V5KGtleSwgYml0cywgJnhjdHgtPmtz MS5rcyk7Ci0gICAgICAgICAgICAgICAgIHhjdHgtPnh0cy5ibG9jazEgPSAoYmxvY2sxMjhfZikg QUVTX2RlY3J5cHQ7CitAQCAtMzM4MCw3ICszMzg1LDcgQEAgc3RhdGljIGludCBhZXNfeHRzX2lu aXRfa2V5KEVWUF9DSVBIRVJfQworICAgICAgICAgICAgICAqICAgICAgIEJFRk9SRSB1c2luZyB0 aGUga2V5cyBpbiB0aGUgWFRTLUFFUyBhbGdvcml0aG0gdG8gcHJvY2VzcworICAgICAgICAgICAg ICAqICAgICAgIGRhdGEgd2l0aCB0aGVtLiIKKyAgICAgICAgICAgICAgKi8KKy0gICAgICAgICAg ICBpZiAoZW5jICYmIENSWVBUT19tZW1jbXAoa2V5LCBrZXkgKyBieXRlcywgYnl0ZXMpID09IDAp IHsKKysgICAgICAgICAgICBpZiAoQ1JZUFRPX21lbWNtcChrZXksIGtleSArIGJ5dGVzLCBieXRl cykgPT0gMCkgeworICAgICAgICAgICAgICAgICBFVlBlcnIoRVZQX0ZfQUVTX1hUU19JTklUX0tF WSwgRVZQX1JfWFRTX0RVUExJQ0FURURfS0VZUyk7CisgICAgICAgICAgICAgICAgIHJldHVybiAw OwogICAgICAgICAgICAgIH0KLSAKLS0gICAgICAgICAgICBBRVNfc2V0X2VuY3J5cHRfa2V5KGtl eSArIEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAvIDIsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgKiA0LAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnhjdHgtPmtzMi5rcyk7Ci0rICAgICAgICAg ICAgQUVTX3NldF9lbmNyeXB0X2tleShrZXkgKyBieXRlcywgYml0cywgJnhjdHgtPmtzMi5rcyk7 Ci0gICAgICAgICAgICAgeGN0eC0+eHRzLmJsb2NrMiA9IChibG9jazEyOF9mKSBBRVNfZW5jcnlw dDsKLSAKLSAgICAgICAgICAgICB4Y3R4LT54dHMua2V5MSA9ICZ4Y3R4LT5rczE7Ci0gICAgICAg ICB9IHdoaWxlICgwKTsKLSsgICAgfQotIAotICAgICBpZiAoaXYpIHsKLSAgICAgICAgIHhjdHgt Pnh0cy5rZXkyID0gJnhjdHgtPmtzMjsKLUBAIC0zNDE0LDYgKzM0NTQsMTQgQEAgc3RhdGljIGlu dCBhZXNfeHRzX2NpcGhlcihFVlBfQ0lQSEVSX0NUWAorQEAgLTM0ODQsNiArMzQ4OSwxNCBAQCBz dGF0aWMgaW50IGFlc194dHNfY2lwaGVyKEVWUF9DSVBIRVJfQ1RYCiAgICAgICAgICByZXR1cm4g MDsKICAgICAgaWYgKCFvdXQgfHwgIWluIHx8IGxlbiA8IEFFU19CTE9DS19TSVpFKQogICAgICAg ICAgcmV0dXJuIDA7CkBAIC0xMzIyLDcgKzExMzIsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZXZwL2VfYWVzLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2VfYWVz LgogICAgICBpZiAoeGN0eC0+c3RyZWFtKQogICAgICAgICAgKCp4Y3R4LT5zdHJlYW0pIChpbiwg b3V0LCBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHhjdHgtPnh0cy5rZXkxLCB4Y3R4 LT54dHMua2V5MiwKLUBAIC0zNDMxLDggKzM0NzksMTAgQEAgc3RhdGljIGludCBhZXNfeHRzX2Np cGhlcihFVlBfQ0lQSEVSX0NUWAorQEAgLTM1MDEsOCArMzUxNCwxMCBAQCBzdGF0aWMgaW50IGFl c194dHNfY2lwaGVyKEVWUF9DSVBIRVJfQ1RYCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg RVZQX0NJUEhfQUxXQVlTX0NBTExfSU5JVCB8IEVWUF9DSVBIX0NUUkxfSU5JVCBcCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgRVZQX0NJUEhfQ1VTVE9NX0NPUFkpCiAgCkBAIC0xMzM1LDcg KzExNDUsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2VfYWVzLmMuZmlw cyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2VfYWVzLgogIAogIHN0YXRpYyBpbnQgYWVzX2Nj bV9jdHJsKEVWUF9DSVBIRVJfQ1RYICpjLCBpbnQgdHlwZSwgaW50IGFyZywgdm9pZCAqcHRyKQog IHsKLUBAIC0zNjk3LDExICszNzQ3LDExIEBAIHN0YXRpYyBpbnQgYWVzX2NjbV9jaXBoZXIoRVZQ X0NJUEhFUl9DVFgKK0BAIC0zNzcyLDExICszNzg3LDExIEBAIHN0YXRpYyBpbnQgYWVzX2NjbV9j aXBoZXIoRVZQX0NJUEhFUl9DVFgKICAjZGVmaW5lIGFlc19jY21fY2xlYW51cCBOVUxMCiAgCiAg QkxPQ0tfQ0lQSEVSX2N1c3RvbShOSURfYWVzLCAxMjgsIDEsIDEyLCBjY20sIENDTSwKQEAgLTEz NTAsNyArMTE2MCw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9hZXMu Yy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9hZXMuCiAgCiAgdHlwZWRlZiBzdHJ1 Y3QgewogICAgICB1bmlvbiB7Ci1AQCAtMzc5NCw3ICszODQ0LDcgQEAgc3RhdGljIGludCBhZXNf d3JhcF9jaXBoZXIoRVZQX0NJUEhFUl9DVAorQEAgLTM4NjksNyArMzg4NCw3IEBAIHN0YXRpYyBp bnQgYWVzX3dyYXBfY2lwaGVyKEVWUF9DSVBIRVJfQ1QKICAgICAgcmV0dXJuIHJ2ID8gKGludCly diA6IC0xOwogIH0KICAKQEAgLTEzNTksOSArMTE2OSw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9ldnAvZV9hZXMuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9h ZXMuCiAgICAgICAgICAgICAgICAgIHwgRVZQX0NJUEhfQ1VTVE9NX0lWIHwgRVZQX0NJUEhfRkxB R19DVVNUT01fQ0lQSEVSIFwKICAgICAgICAgICAgICAgICAgfCBFVlBfQ0lQSF9BTFdBWVNfQ0FM TF9JTklUIHwgRVZQX0NJUEhfRkxBR19ERUZBVUxUX0FTTjEpCiAgCi1kaWZmIC11cCBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vZXZwL2VfZGVzMy5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2 cC9lX2RlczMuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9kZXMzLmMuZmlwcwky MDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2Ny eXB0by9ldnAvZV9kZXMzLmMJMjAxOS0wMi0yOCAxMTozMDowNi44MDQ3NDU3MDcgKzAxMDAKK2Rp ZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAvZV9kZXMzLmMuZmlwcyBvcGVuc3NsLTEu MS4xZC9jcnlwdG8vZXZwL2VfZGVzMy5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9l X2RlczMuYy5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9lX2RlczMuYwkyMDE5LTA5LTEzIDE1OjEzOjExLjA1MDUy NTE1MSArMDIwMAogQEAgLTIxMSwxNiArMjExLDE5IEBAIEJMT0NLX0NJUEhFUl9kZWZzKGRlc19l ZGUsIERFU19FREVfS0VZLAogICMgZGVmaW5lIGRlc19lZGUzX2NiY19jaXBoZXIgZGVzX2VkZV9j YmNfY2lwaGVyCiAgIyBkZWZpbmUgZGVzX2VkZTNfZWNiX2NpcGhlciBkZXNfZWRlX2VjYl9jaXBo ZXIKQEAgLTEzODgsOSArMTE5OCw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9l dnAvZV9kZXMzLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2VfZGVzCiAgCiAgc3Rh dGljIGludCBkZXNfZWRlX2luaXRfa2V5KEVWUF9DSVBIRVJfQ1RYICpjdHgsIGNvbnN0IHVuc2ln bmVkIGNoYXIgKmtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWdu ZWQgY2hhciAqaXYsIGludCBlbmMpCi1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZw L2VfbnVsbC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lX251bGwuYwotLS0tIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9udWxsLmMuZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMw LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9udWxsLmMJ MjAxOS0wMi0yOCAxMTozMDowNi44MDU3NDU2ODggKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9ldnAvZV9udWxsLmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2Vf bnVsbC5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9lX251bGwuYy5maXBzCTIwMTkt MDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRv L2V2cC9lX251bGwuYwkyMDE5LTA5LTEzIDE1OjEzOjExLjA1MTUyNTEzMyArMDIwMAogQEAgLTE5 LDcgKzE5LDggQEAgc3RhdGljIGludCBudWxsX2NpcGhlcihFVlBfQ0lQSEVSX0NUWCAqYwogICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW4sIHNpemVfdCBpbmwp OwogIHN0YXRpYyBjb25zdCBFVlBfQ0lQSEVSIG5fY2lwaGVyID0gewpAQCAtMTQwMSw5ICsxMjEx LDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lX251bGwuYy5maXBzIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9udWwKICAgICAgbnVsbF9pbml0X2tleSwKICAgICAg bnVsbF9jaXBoZXIsCiAgICAgIE5VTEwsCi1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v ZXZwL2V2cF9lbmMuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZXZwX2VuYy5jCi0t LS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9ldnBfZW5jLmMuZmlwcwkyMDE5LTAyLTI2IDE1 OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZXZw X2VuYy5jCTIwMTktMDItMjggMTE6MzA6MDYuODA1NzQ1Njg4ICswMTAwCitkaWZmIC11cCBvcGVu c3NsLTEuMS4xZC9jcnlwdG8vZXZwL2V2cF9lbmMuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0 by9ldnAvZXZwX2VuYy5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9ldnBfZW5jLmMu ZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9ldnAvZXZwX2VuYy5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDUxNTI1MTMzICsw MjAwCiBAQCAtMTcsMTAgKzE3LDE5IEBACiAgI2luY2x1ZGUgPG9wZW5zc2wvZW5naW5lLmg+CiAg I2luY2x1ZGUgImludGVybmFsL2V2cF9pbnQuaCIKQEAgLTE0NzksMjcgKzEyODksMTggQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9ldnBfZW5jLmMuZmlwcyBvcGVuc3NsLTEu MS4xYi9jcnlwdG8vZXZwL2V2cF8KICAKICAgICAgaWYgKGtleSB8fCAoY3R4LT5jaXBoZXItPmZs YWdzICYgRVZQX0NJUEhfQUxXQVlTX0NBTExfSU5JVCkpIHsKICAgICAgICAgIGlmICghY3R4LT5j aXBoZXItPmluaXQoY3R4LCBrZXksIGl2LCBlbmMpKQotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL2V2cC9ldnBfZXJyLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2V2cF9l cnIuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZXZwX2Vyci5jLmZpcHMJMjAxOS0w Mi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v ZXZwL2V2cF9lcnIuYwkyMDE5LTA1LTA2IDE2OjQxOjA4LjU2NTczOTM2MSArMDIwMAotQEAgLTE1 LDExICsxNSwxNiBAQAotIAotIHN0YXRpYyBjb25zdCBFUlJfU1RSSU5HX0RBVEEgRVZQX3N0cl9m dW5jdHNbXSA9IHsKLSAgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCBFVlBfRl9BRVNOSV9JTklU X0tFWSwgMCksICJhZXNuaV9pbml0X2tleSJ9LAotKyAgICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAs IEVWUF9GX0FFU05JX1hUU19JTklUX0tFWSwgMCksICJhZXNuaV94dHNfaW5pdF9rZXkifSwKLSAg ICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCBFVlBfRl9BRVNfR0NNX0NUUkwsIDApLCAiYWVzX2dj bV9jdHJsIn0sCi0gICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwgRVZQX0ZfQUVTX0lOSVRfS0VZ LCAwKSwgImFlc19pbml0X2tleSJ9LAotICAgICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAsIEVWUF9G X0FFU19PQ0JfQ0lQSEVSLCAwKSwgImFlc19vY2JfY2lwaGVyIn0sCi0gICAgIHtFUlJfUEFDSyhF UlJfTElCX0VWUCwgRVZQX0ZfQUVTX1Q0X0lOSVRfS0VZLCAwKSwgImFlc190NF9pbml0X2tleSJ9 LAotKyAgICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAsIEVWUF9GX0FFU19UNF9YVFNfSU5JVF9LRVks IDApLAotKyAgICAgImFlc190NF94dHNfaW5pdF9rZXkifSwKK2RpZmYgLXVwIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9ldnAvZXZwX2Vyci5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9l dnBfZXJyLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2V2cF9lcnIuYy5maXBzCTIw MTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL2V2cC9ldnBfZXJyLmMJMjAxOS0wOS0xMyAxNToyNTo0Ny4yOTAyOTgxOTIgKzAyMDAKK0BA IC0yMyw2ICsyMyw3IEBAIHN0YXRpYyBjb25zdCBFUlJfU1RSSU5HX0RBVEEgRVZQX3N0cl9mdW4K KyAgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCBFVlBfRl9BRVNfVDRfWFRTX0lOSVRfS0VZLCAw KSwKKyAgICAgICJhZXNfdDRfeHRzX2luaXRfa2V5In0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElC X0VWUCwgRVZQX0ZfQUVTX1dSQVBfQ0lQSEVSLCAwKSwgImFlc193cmFwX2NpcGhlciJ9LAogKyAg ICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAsIEVWUF9GX0FFU19YVFNfQ0lQSEVSLCAwKSwgImFlc194 dHNfY2lwaGVyIn0sCi0rICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwgRVZQX0ZfQUVTX1hUU19J TklUX0tFWSwgMCksICJhZXNfeHRzX2luaXRfa2V5In0sCisgICAgIHtFUlJfUEFDSyhFUlJfTElC X0VWUCwgRVZQX0ZfQUVTX1hUU19JTklUX0tFWSwgMCksICJhZXNfeHRzX2luaXRfa2V5In0sCiAg ICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwgRVZQX0ZfQUxHX01PRFVMRV9JTklULCAwKSwgImFs Z19tb2R1bGVfaW5pdCJ9LAogICAgICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAsIEVWUF9GX0FSSUFf Q0NNX0lOSVRfS0VZLCAwKSwgImFyaWFfY2NtX2luaXRfa2V5In0sCi0gICAgIHtFUlJfUEFDSyhF UlJfTElCX0VWUCwgRVZQX0ZfQVJJQV9HQ01fQ1RSTCwgMCksICJhcmlhX2djbV9jdHJsIn0sCi1A QCAtMTc5LDYgKzE4MCw3IEBAIHN0YXRpYyBjb25zdCBFUlJfU1RSSU5HX0RBVEEgRVZQX3N0cl9y ZWEKK0BAIC0xODYsNiArMTg3LDcgQEAgc3RhdGljIGNvbnN0IEVSUl9TVFJJTkdfREFUQSBFVlBf c3RyX3JlYQogICAgICAiZGlmZmVyZW50IGtleSB0eXBlcyJ9LAogICAgICB7RVJSX1BBQ0soRVJS X0xJQl9FVlAsIDAsIEVWUF9SX0RJRkZFUkVOVF9QQVJBTUVURVJTKSwKICAgICAgImRpZmZlcmVu dCBwYXJhbWV0ZXJzIn0sCkBAIC0xNTA3LDcgKzEzMDgsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEu MS4xYi9jcnlwdG8vZXZwL2V2cF9lcnIuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAv ZXZwXwogICAgICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAsIDAsIEVWUF9SX0VSUk9SX0xPQURJTkdf U0VDVElPTiksCiAgICAgICJlcnJvciBsb2FkaW5nIHNlY3Rpb24ifSwKICAgICAge0VSUl9QQUNL KEVSUl9MSUJfRVZQLCAwLCBFVlBfUl9FUlJPUl9TRVRUSU5HX0ZJUFNfTU9ERSksCi1AQCAtMjQx LDYgKzI0Myw3IEBAIHN0YXRpYyBjb25zdCBFUlJfU1RSSU5HX0RBVEEgRVZQX3N0cl9yZWEKK0BA IC0yNDgsNiArMjUwLDcgQEAgc3RhdGljIGNvbnN0IEVSUl9TVFJJTkdfREFUQSBFVlBfc3RyX3Jl YQogICAgICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAsIDAsIEVWUF9SX1BSSVZBVEVfS0VZX0VOQ09E RV9FUlJPUiksCiAgICAgICJwcml2YXRlIGtleSBlbmNvZGUgZXJyb3IifSwKICAgICAge0VSUl9Q QUNLKEVSUl9MSUJfRVZQLCAwLCBFVlBfUl9QVUJMSUNfS0VZX05PVF9SU0EpLCAicHVibGljIGtl eSBub3QgcnNhIn0sCkBAIC0xNTE1LDIwICsxMzE2LDE4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9ldnAvZXZwX2Vyci5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9l dnBfCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwgMCwgRVZQX1JfVU5LTk9XTl9DSVBIRVIp LCAidW5rbm93biBjaXBoZXIifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCAwLCBFVlBf Ul9VTktOT1dOX0RJR0VTVCksICJ1bmtub3duIGRpZ2VzdCJ9LAogICAgICB7RVJSX1BBQ0soRVJS X0xJQl9FVlAsIDAsIEVWUF9SX1VOS05PV05fT1BUSU9OKSwgInVua25vd24gb3B0aW9uIn0sCi1A QCAtMjY2LDYgKzI2OSwxMCBAQCBzdGF0aWMgY29uc3QgRVJSX1NUUklOR19EQVRBIEVWUF9zdHJf cmVhCitAQCAtMjczLDYgKzI3Niw4IEBAIHN0YXRpYyBjb25zdCBFUlJfU1RSSU5HX0RBVEEgRVZQ X3N0cl9yZWEKICAgICAgIndyYXAgbW9kZSBub3QgYWxsb3dlZCJ9LAogICAgICB7RVJSX1BBQ0so RVJSX0xJQl9FVlAsIDAsIEVWUF9SX1dST05HX0ZJTkFMX0JMT0NLX0xFTkdUSCksCiAgICAgICJ3 cm9uZyBmaW5hbCBibG9jayBsZW5ndGgifSwKICsgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCAw LCBFVlBfUl9YVFNfREFUQV9VTklUX0lTX1RPT19MQVJHRSksCiArICAgICJ4dHMgZGF0YSB1bml0 IGlzIHRvbyBsYXJnZSJ9LAotKyAgICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAsIDAsIEVWUF9SX1hU U19EVVBMSUNBVEVEX0tFWVMpLAotKyAgICAieHRzIGR1cGxpY2F0ZWQga2V5cyJ9LAorICAgICB7 RVJSX1BBQ0soRVJSX0xJQl9FVlAsIDAsIEVWUF9SX1hUU19EVVBMSUNBVEVEX0tFWVMpLAorICAg ICAieHRzIGR1cGxpY2F0ZWQga2V5cyJ9LAogICAgICB7MCwgTlVMTH0KLSB9OwotIAotZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9ldnBfbGliLmMuZmlwcyBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZXZwL2V2cF9saWIuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZXZw X2xpYi5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZXZwL2V2cF9saWIuYwkyMDE5LTAyLTI4IDExOjMwOjA2LjgwNjc0 NTY3MCArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9ldnBfbGliLmMu ZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2V2cF9saWIuYworLS0tIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9ldnAvZXZwX2xpYi5jLmZpcHMJMjAxOS0wOS0xMCAxNToxMzowNy4wMDAwMDAw MDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2V2cF9saWIuYwkyMDE5LTA5 LTEzIDE1OjEzOjExLjA1MTUyNTEzMyArMDIwMAogQEAgLTE5Miw2ICsxOTIsOSBAQCBpbnQgRVZQ X0NJUEhFUl9pbXBsX2N0eF9zaXplKGNvbnN0IEVWUF9DCiAgaW50IEVWUF9DaXBoZXIoRVZQX0NJ UEhFUl9DVFggKmN0eCwgdW5zaWduZWQgY2hhciAqb3V0LAogICAgICAgICAgICAgICAgIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKmluLCB1bnNpZ25lZCBpbnQgaW5sKQpAQCAtMTUzOSw5ICsxMzM4LDkg QEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9ldnBfbGliLmMuZmlwcyBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZXZwL2V2cF8KICAgICAgcmV0dXJuIGN0eC0+Y2lwaGVyLT5kb19j aXBoZXIoY3R4LCBvdXQsIGluLCBpbmwpOwogIH0KICAKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9ldnAvbV9zaGExLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL21fc2hh MS5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9tX3NoYTEuYy5maXBzCTIwMTktMDIt MjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2 cC9tX3NoYTEuYwkyMDE5LTAyLTI4IDExOjMwOjA2LjgwNjc0NTY3MCArMDEwMAorZGlmZiAtdXAg b3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9tX3NoYTEuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9ldnAvbV9zaGExLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL21fc2hhMS5j LmZpcHMJMjAxOS0wOS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEu MS4xZC9jcnlwdG8vZXZwL21fc2hhMS5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDUyNTI1MTE2ICsw MjAwCiBAQCAtOTUsNyArOTUsNyBAQCBzdGF0aWMgY29uc3QgRVZQX01EIHNoYTFfbWQgPSB7CiAg ICAgIE5JRF9zaGExLAogICAgICBOSURfc2hhMVdpdGhSU0FFbmNyeXB0aW9uLApAQCAtMTYwNSwx MCArMTQwNCwxMCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL21fc2hhMS5j LmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9tX3NoYQogICAgICBpbml0NTEyLAogICAg ICB1cGRhdGU1MTIsCiAgICAgIGZpbmFsNTEyLAotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5 cHRvL2V2cC9tX3NoYTMuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvbV9zaGEzLmMK LS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL21fc2hhMy5jLmZpcHMJMjAxOS0wMi0yNiAx NToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL21f c2hhMy5jCTIwMTktMDUtMDYgMTY6MTI6MjMuMDEyODUxNzQ3ICswMjAwCi1AQCAtMjkyLDcgKzI5 Miw3IEBAIGNvbnN0IEVWUF9NRCAqRVZQX3NoYTNfIyNiaXRsZW4odm9pZCkKK2RpZmYgLXVwIG9w ZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAvbV9zaGEzLmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlw dG8vZXZwL21fc2hhMy5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9tX3NoYTMuYy5m aXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEu MWQvY3J5cHRvL2V2cC9tX3NoYTMuYwkyMDE5LTA5LTEzIDE1OjEzOjExLjA1MjUyNTExNiArMDIw MAorQEAgLTI5NSw3ICsyOTUsNyBAQCBjb25zdCBFVlBfTUQgKkVWUF9zaGEzXyMjYml0bGVuKHZv aWQpCiAgICAgICAgICBOSURfc2hhM18jI2JpdGxlbiwgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICAgICAgICBOSURfUlNBX1NIQTNfIyNiaXRsZW4sICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICAgICAgICBiaXRsZW4gLyA4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCkBAIC0xNjE3LDcgKzE0MTYsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v ZXZwL21fc2hhMy5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9tX3NoYQogICAgICAg ICAgczM5MHhfc2hhM19pbml0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg ICAgczM5MHhfc2hhM191cGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg ICAgczM5MHhfc2hhM19maW5hbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotQEAgLTMw NSw3ICszMDUsNyBAQCBjb25zdCBFVlBfTUQgKkVWUF9zaGEzXyMjYml0bGVuKHZvaWQpCitAQCAt MzA4LDcgKzMwOCw3IEBAIGNvbnN0IEVWUF9NRCAqRVZQX3NoYTNfIyNiaXRsZW4odm9pZCkKICAg ICAgICAgIE5JRF9zaGEzXyMjYml0bGVuLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICAgICAgIE5JRF9SU0FfU0hBM18jI2JpdGxlbiwgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICAgICAgIGJpdGxlbiAvIDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAg LTE2MjYsNyArMTQyNSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvbV9z aGEzLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL21fc2hhCiAgICAgICAgICBzaGEz X2luaXQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBzaGEz X3VwZGF0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBzaGEz X2ZpbmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi1AQCAtMzI2LDcgKzMy Niw3IEBAIGNvbnN0IEVWUF9NRCAqRVZQX3NoYWtlIyNiaXRsZW4odm9pZCkKK0BAIC0zMjksNyAr MzI5LDcgQEAgY29uc3QgRVZQX01EICpFVlBfc2hha2UjI2JpdGxlbih2b2lkKQogICAgICAgICAg TklEX3NoYWtlIyNiaXRsZW4sICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAg MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAg Yml0bGVuIC8gOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTYzNSw3 ICsxNDM0LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9tX3NoYTMuYy5m aXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvbV9zaGEKICAgICAgICAgIHMzOTB4X3NoYWtl X2luaXQsICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIHMzOTB4X3NoYTNf dXBkYXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIHMzOTB4X3NoYWtl X2ZpbmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLUBAIC0zNDAsNyArMzQwLDcgQEAg Y29uc3QgRVZQX01EICpFVlBfc2hha2UjI2JpdGxlbih2b2lkKQorQEAgLTM0Myw3ICszNDMsNyBA QCBjb25zdCBFVlBfTUQgKkVWUF9zaGFrZSMjYml0bGVuKHZvaWQpCiAgICAgICAgICBOSURfc2hh a2UjI2JpdGxlbiwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAwLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBiaXRsZW4g LyA4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0xNjQ0LDcgKzE0NDMs NyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL21fc2hhMy5jLmZpcHMgb3Bl bnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9tX3NoYQogICAgICAgICAgc2hha2VfaW5pdCwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgc2hhM191cGRhdGUsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgc2hhM19maW5hbCwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotQEAgLTM2NCw3ICszNjQsNyBAQCBjb25zdCBF VlBfTUQgKkVWUF9zaGEzXyMjYml0bGVuKHZvaWQpCitAQCAtMzY3LDcgKzM2Nyw3IEBAIGNvbnN0 IEVWUF9NRCAqRVZQX3NoYTNfIyNiaXRsZW4odm9pZCkKICAgICAgICAgIE5JRF9zaGEzXyMjYml0 bGVuLCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBOSURfUlNBX1NIQTNfIyNiaXRs ZW4sICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgYml0bGVuIC8gOCwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKQEAgLTE2NTMsNyArMTQ1Miw3IEBAIGRpZmYgLXVwIG9wZW5zc2wt MS4xLjFiL2NyeXB0by9ldnAvbV9zaGEzLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZw L21fc2hhCiAgICAgICAgICBzaGEzX2luaXQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgICAgICAgc2hhM191cGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICAgICAgIHNoYTNfZmluYWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi1AQCAtMzgz LDcgKzM4Myw3IEBAIGNvbnN0IEVWUF9NRCAqRVZQX3NoYWtlIyNiaXRsZW4odm9pZCkKK0BAIC0z ODYsNyArMzg2LDcgQEAgY29uc3QgRVZQX01EICpFVlBfc2hha2UjI2JpdGxlbih2b2lkKQogICAg ICAgICAgTklEX3NoYWtlIyNiaXRsZW4sICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBiaXRs ZW4gLyA4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTY2Miw5ICsxNDYxLDkg QEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9tX3NoYTMuYy5maXBzIG9wZW5z c2wtMS4xLjFiL2NyeXB0by9ldnAvbV9zaGEKICAgICAgICAgIHNoYWtlX2luaXQsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBzaGEzX3VwZGF0ZSwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogICAgICAgICAgc2hhM19maW5hbCwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvcG1ldGhfbGli LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL3BtZXRoX2xpYi5jCi0tLS0gb3BlbnNz bC0xLjEuMWIvY3J5cHRvL2V2cC9wbWV0aF9saWIuYy5maXBzCTIwMTktMDItMjYgMTU6MTU6MzAu MDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9wbWV0aF9saWIu YwkyMDE5LTA1LTA2IDE1OjExOjMzLjIwNzA5NTk4MyArMDIwMAorZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWQvY3J5cHRvL2V2cC9wbWV0aF9saWIuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9l dnAvcG1ldGhfbGliLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL3BtZXRoX2xpYi5j LmZpcHMJMjAxOS0wOS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEu MS4xZC9jcnlwdG8vZXZwL3BtZXRoX2xpYi5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDUyNTI1MTE2 ICswMjAwCiBAQCAtMTMxLDcgKzEzMSwxNSBAQCBzdGF0aWMgRVZQX1BLRVlfQ1RYICppbnRfY3R4 X25ldyhFVlBfUEtFCiAgICAgICAgICBwbWV0aCA9IEVOR0lORV9nZXRfcGtleV9tZXRoKGUsIGlk KTsKICAgICAgZWxzZQpAQCAtMTY4MSw5ICsxNDgwLDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2V2cC9wbWV0aF9saWIuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAv cG0KICAKICAgICAgaWYgKHBtZXRoID09IE5VTEwpIHsKICAjaWZuZGVmIE9QRU5TU0xfTk9fRU5H SU5FCi1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9idWlsZC5pbmZvLmZpcHMg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvYnVpbGQuaW5mbwotLS0tIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9maXBzL2J1aWxkLmluZm8uZmlwcwkyMDE5LTAyLTI4IDExOjMwOjA2LjgwNjc0NTY3 MCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2J1aWxkLmluZm8JMjAxOS0w Mi0yOCAxMTozMDowNi44MDY3NDU2NzAgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9maXBzL2J1aWxkLmluZm8uZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9idWls ZC5pbmZvCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvYnVpbGQuaW5mby5maXBzCTIw MTktMDktMTMgMTU6MTM6MTEuMDUyNTI1MTE2ICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL2ZpcHMvYnVpbGQuaW5mbwkyMDE5LTA5LTEzIDE1OjEzOjExLjA1MjUyNTExNiArMDIwMAog QEAgLTAsMCArMSwxNSBAQAogK0xJQlM9Li4vLi4vbGliY3J5cHRvCiArU09VUkNFWy4uLy4uL2xp YmNyeXB0b109XApAQCAtMTcwMCw5ICsxNDk5LDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL2ZpcHMvYnVpbGQuaW5mby5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2IK ICtTT1VSQ0VbZmlwc19zdGFuZGFsb25lX2htYWNdPWZpcHNfc3RhbmRhbG9uZV9obWFjLmMKICtJ TkNMVURFW2ZpcHNfc3RhbmRhbG9uZV9obWFjXT0uLi8uLi9pbmNsdWRlCiArREVQRU5EW2ZpcHNf c3RhbmRhbG9uZV9obWFjXT0uLi8uLi9saWJjcnlwdG8KLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9maXBzL2ZpcHNfYWVzX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlw dG8vZmlwcy9maXBzX2Flc19zZWxmdGVzdC5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2Zp cHMvZmlwc19hZXNfc2VsZnRlc3QuYy5maXBzCTIwMTktMDItMjggMTE6MzA6MDYuODA3NzQ1NjUx ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19hZXNfc2VsZnRlc3Qu YwkyMDE5LTAyLTI4IDExOjMwOjA2LjgwNzc0NTY1MSArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19hZXNfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4xLjFk L2NyeXB0by9maXBzL2ZpcHNfYWVzX3NlbGZ0ZXN0LmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlw dG8vZmlwcy9maXBzX2Flc19zZWxmdGVzdC5jLmZpcHMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNTM1 MjUwOTggKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2Flc19zZWxm dGVzdC5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDUzNTI1MDk4ICswMjAwCiBAQCAtMCwwICsxLDM3 MiBAQAogKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiArICogQ29weXJpZ2h0IChjKSAyMDAzIFRoZSBPcGVuU1NM IFByb2plY3QuICBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMjA3Niw5ICsxODc1LDkgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19hZXNfc2VsZnRlc3QuYy5maXBz IG9wZW5zc2wtMS4xLjFiL2NyeXAKICt9CiArCiArI2VuZGlmCi1kaWZmIC11cCBvcGVuc3NsLTEu MS4xYi9jcnlwdG8vZmlwcy9maXBzLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9m aXBzLmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzLmMuZmlwcwkyMDE5LTAy LTI4IDExOjMwOjA2LjgwNzc0NTY1MSArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9m aXBzL2ZpcHMuYwkyMDE5LTAyLTI4IDExOjMwOjA2LjgwNzc0NTY1MSArMDEwMAorZGlmZiAtdXAg b3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwcy5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL2ZpcHMvZmlwcy5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwcy5jLmZp cHMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNTM1MjUwOTggKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4x ZC9jcnlwdG8vZmlwcy9maXBzLmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNTM1MjUwOTggKzAyMDAK IEBAIC0wLDAgKzEsNTI2IEBACiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIw MDMgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0yNjA2LDkg KzI0MDUsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzLmMuZmlw cyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzLgogK30KICsKICsjZW5kaWYKLWRpZmYg LXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfY21hY19zZWxmdGVzdC5jLmZpcHMg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19jbWFjX3NlbGZ0ZXN0LmMKLS0tLSBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2NtYWNfc2VsZnRlc3QuYy5maXBzCTIwMTktMDIt MjggMTE6MzA6MDYuODA4NzQ1NjMzICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2Zp cHMvZmlwc19jbWFjX3NlbGZ0ZXN0LmMJMjAxOS0wMi0yOCAxMTozMDowNi44MDg3NDU2MzMgKzAx MDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfY21hY19zZWxmdGVz dC5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19jbWFjX3NlbGZ0ZXN0LmMK Ky0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2NtYWNfc2VsZnRlc3QuYy5maXBz CTIwMTktMDktMTMgMTU6MTM6MTEuMDUzNTI1MDk4ICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQv Y3J5cHRvL2ZpcHMvZmlwc19jbWFjX3NlbGZ0ZXN0LmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNTM1 MjUwOTggKzAyMDAKIEBAIC0wLDAgKzEsMTU2IEBACiArLyogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5 cmlnaHQgKGMpIDIwMTEgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu CkBAIC0yNzY2LDkgKzI1NjUsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlw cy9maXBzX2NtYWNfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeQogKyAgICByZXR1 cm4gcnY7CiArfQogKyNlbmRpZgotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMv Zmlwc19kZXNfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNf ZGVzX3NlbGZ0ZXN0LmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2Rlc19z ZWxmdGVzdC5jLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44MDg3NDU2MzMgKzAxMDAKLSsrKyBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2Rlc19zZWxmdGVzdC5jCTIwMTktMDItMjgg MTE6MzA6MDYuODA4NzQ1NjMzICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8v Zmlwcy9maXBzX2Rlc19zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMv Zmlwc19kZXNfc2VsZnRlc3QuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNf ZGVzX3NlbGZ0ZXN0LmMuZmlwcwkyMDE5LTA5LTEzIDE1OjEzOjExLjA1MzUyNTA5OCArMDIwMAor KysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfZGVzX3NlbGZ0ZXN0LmMJMjAxOS0w OS0xMyAxNToxMzoxMS4wNTM1MjUwOTggKzAyMDAKIEBAIC0wLDAgKzEsMTMzIEBACiArLyogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIwMDMgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFs bCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0yOTAzLDkgKzI3MDIsOSBAQCBkaWZmIC11cCBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2Rlc19zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjEu MWIvY3J5cAogKyAgICByZXR1cm4gcmV0OwogK30KICsjZW5kaWYKLWRpZmYgLXVwIG9wZW5zc2wt MS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZGhfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9maXBzL2ZpcHNfZGhfc2VsZnRlc3QuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9maXBzL2ZpcHNfZGhfc2VsZnRlc3QuYy5maXBzCTIwMTktMDItMjggMTE6MzA6MDYuODEwNzQ1 NTk2ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19kaF9zZWxmdGVz dC5jCTIwMTktMDItMjggMTE6MzA6MDYuODEwNzQ1NTk2ICswMTAwCitkaWZmIC11cCBvcGVuc3Ns LTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2RoX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMS4x ZC9jcnlwdG8vZmlwcy9maXBzX2RoX3NlbGZ0ZXN0LmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlw dG8vZmlwcy9maXBzX2RoX3NlbGZ0ZXN0LmMuZmlwcwkyMDE5LTA5LTEzIDE1OjEzOjExLjA1NTUy NTA2MyArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfZGhfc2VsZnRl c3QuYwkyMDE5LTA5LTEzIDE1OjEzOjExLjA1NTUyNTA2MyArMDIwMAogQEAgLTAsMCArMSwxODAg QEAKICsvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogKyAqIENvcHlyaWdodCAoYykgMjAxMSBUaGUgT3BlblNTTCBQ cm9qZWN0LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTMwODcsOSArMjg4Niw5IEBAIGRpZmYg LXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZGhfc2VsZnRlc3QuYy5maXBzIG9w ZW5zc2wtMS4xLjFiL2NyeXB0CiArICAgIHJldHVybiByZXQ7CiArfQogKyNlbmRpZgotZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2N0ci5jLmZpcHMgb3BlbnNz bC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2N0ci5jCi0tLS0gb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL2ZpcHMvZmlwc19kcmJnX2N0ci5jLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44MTE3 NDU1NzcgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2RyYmdfY3Ry LmMJMjAxOS0wMi0yOCAxMTozMDowNi44MTE3NDU1NzcgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wt MS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19jdHIuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9maXBzL2ZpcHNfZHJiZ19jdHIuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBz L2ZpcHNfZHJiZ19jdHIuYy5maXBzCTIwMTktMDktMTMgMTU6MTM6MTEuMDU1NTI1MDYzICswMjAw CisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2N0ci5jCTIwMTktMDkt MTMgMTU6MTM6MTEuMDU1NTI1MDYzICswMjAwCiBAQCAtMCwwICsxLDQwNiBAQAogKy8qIGZpcHMv cmFuZC9maXBzX2RyYmdfY3RyLmMgKi8KICsvKiBXcml0dGVuIGJ5IERyIFN0ZXBoZW4gTiBIZW5z b24gKHN0ZXZlQG9wZW5zc2wub3JnKSBmb3IgdGhlIE9wZW5TU0wKQEAgLTM0OTcsOSArMzI5Niw5 IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19jdHIuYy5m aXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9mCiArCiArICAgIHJldHVybiAxOwogK30KLWRpZmYg LXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19oYXNoLmMuZmlwcyBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2RyYmdfaGFzaC5jCi0tLS0gb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2hhc2guYy5maXBzCTIwMTktMDItMjggMTE6MzA6MDYu ODExNzQ1NTc3ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19kcmJn X2hhc2guYwkyMDE5LTAyLTI4IDExOjMwOjA2LjgxMTc0NTU3NyArMDEwMAorZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2hhc2guYy5maXBzIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19oYXNoLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlw dG8vZmlwcy9maXBzX2RyYmdfaGFzaC5jLmZpcHMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNTY1MjUw NDYgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2RyYmdfaGFzaC5j CTIwMTktMDktMTMgMTU6MTM6MTEuMDU2NTI1MDQ2ICswMjAwCiBAQCAtMCwwICsxLDM1NCBAQAog Ky8qIGZpcHMvcmFuZC9maXBzX2RyYmdfaGFzaC5jICovCiArLyogV3JpdHRlbiBieSBEciBTdGVw aGVuIE4gSGVuc29uIChzdGV2ZUBvcGVuc3NsLm9yZykgZm9yIHRoZSBPcGVuU1NMCkBAIC0zODU1 LDkgKzM2NTQsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2Ry YmdfaGFzaC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvLwogKwogKyAgICByZXR1cm4gMTsK ICt9Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2RyYmdfaG1hYy5j LmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2htYWMuYwotLS0tIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19obWFjLmMuZmlwcwkyMDE5LTAyLTI4 IDExOjMwOjA2LjgxMTc0NTU3NyArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBz L2ZpcHNfZHJiZ19obWFjLmMJMjAxOS0wMi0yOCAxMTozMDowNi44MTE3NDU1NzcgKzAxMDAKK2Rp ZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19obWFjLmMuZmlwcyBv cGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2RyYmdfaG1hYy5jCistLS0gb3BlbnNzbC0x LjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2htYWMuYy5maXBzCTIwMTktMDktMTMgMTU6MTM6 MTEuMDU2NTI1MDQ2ICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19k cmJnX2htYWMuYwkyMDE5LTA5LTEzIDE1OjEzOjExLjA1NjUyNTA0NiArMDIwMAogQEAgLTAsMCAr MSwyNjIgQEAKICsvKiBmaXBzL3JhbmQvZmlwc19kcmJnX2htYWMuYyAqLwogKy8qIFdyaXR0ZW4g YnkgRHIgU3RlcGhlbiBOIEhlbnNvbiAoc3RldmVAb3BlbnNzbC5vcmcpIGZvciB0aGUgT3BlblNT TApAQCAtNDEyMSw5ICszOTIwLDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2Zp cHMvZmlwc19kcmJnX2htYWMuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by8KICsKICsgICAg cmV0dXJuIDE7CiArfQotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19k cmJnX2xpYi5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2xpYi5j Ci0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2xpYi5jLmZpcHMJMjAx OS0wMi0yOCAxMTozMDowNi44MTI3NDU1NTggKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlw dG8vZmlwcy9maXBzX2RyYmdfbGliLmMJMjAxOS0wMi0yOCAxMTozMDowNi44MTI3NDU1NTggKzAx MDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19saWIuYy5m aXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19saWIuYworLS0tIG9wZW5z c2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19saWIuYy5maXBzCTIwMTktMDktMTMgMTU6 MTM6MTEuMDU2NTI1MDQ2ICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlw c19kcmJnX2xpYi5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDU2NTI1MDQ2ICswMjAwCiBAQCAtMCww ICsxLDUyOCBAQAogKy8qIFdyaXR0ZW4gYnkgRHIgU3RlcGhlbiBOIEhlbnNvbiAoc3RldmVAb3Bl bnNzbC5vcmcpIGZvciB0aGUgT3BlblNTTAogKyAqIHByb2plY3QuCkBAIC00NjUzLDkgKzQ0NTIs OSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2RyYmdfbGliLmMu ZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZgogK3sKICsgICAgLyogSnVzdCBiYWNrd2FyZHMg Y29tcGF0aWJpbGl0eSBBUEkgY2FsbCB3aXRoIG5vIGVmZmVjdC4gKi8KICt9Ci1kaWZmIC11cCBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2RyYmdfcmFuZC5jLmZpcHMgb3BlbnNzbC0x LjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX3JhbmQuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2Ny eXB0by9maXBzL2ZpcHNfZHJiZ19yYW5kLmMuZmlwcwkyMDE5LTAyLTI4IDExOjMwOjA2LjgxMjc0 NTU1OCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19yYW5k LmMJMjAxOS0wMi0yOCAxMTozMDowNi44MTI3NDU1NTggKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wt MS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19yYW5kLmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9j cnlwdG8vZmlwcy9maXBzX2RyYmdfcmFuZC5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2Zp cHMvZmlwc19kcmJnX3JhbmQuYy5maXBzCTIwMTktMDktMTMgMTU6MTM6MTEuMDU2NTI1MDQ2ICsw MjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX3JhbmQuYwkyMDE5 LTA5LTEzIDE1OjEzOjExLjA1NjUyNTA0NiArMDIwMAogQEAgLTAsMCArMSwxODUgQEAKICsvKiBm aXBzL3JhbmQvZmlwc19kcmJnX3JhbmQuYyAqLwogKy8qIFdyaXR0ZW4gYnkgRHIgU3RlcGhlbiBO IEhlbnNvbiAoc3RldmVAb3BlbnNzbC5vcmcpIGZvciB0aGUgT3BlblNTTApAQCAtNDg0Miw5ICs0 NjQxLDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX3Jh bmQuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by8KICt7CiArICAgIHJldHVybiAmcmFuZF9k cmJnX21ldGg7CiArfQotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19k cmJnX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2RyYmdf c2VsZnRlc3QuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19zZWxm dGVzdC5jLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44MTI3NDU1NTggKzAxMDAKLSsrKyBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2RyYmdfc2VsZnRlc3QuYwkyMDE5LTAyLTI4IDEx OjMwOjA2LjgxMjc0NTU1OCArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2Zp cHMvZmlwc19kcmJnX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9m aXBzX2RyYmdfc2VsZnRlc3QuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNf ZHJiZ19zZWxmdGVzdC5jLmZpcHMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNTc1MjUwMjggKzAyMDAK KysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2RyYmdfc2VsZnRlc3QuYwkyMDE5 LTA5LTEzIDE1OjEzOjExLjA1NzUyNTAyOCArMDIwMAogQEAgLTAsMCArMSw4MjggQEAKICsvKiBm aXBzL3JhbmQvZmlwc19kcmJnX3NlbGZ0ZXN0LmMgKi8KICsvKiBXcml0dGVuIGJ5IERyIFN0ZXBo ZW4gTiBIZW5zb24gKHN0ZXZlQG9wZW5zc2wub3JnKSBmb3IgdGhlIE9wZW5TU0wKQEAgLTU2NzQs OSArNTQ3Myw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZHJi Z19zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5CiArICAgIEZJUFNfZHJiZ19mcmVl KGRjdHgpOwogKyAgICByZXR1cm4gcnY7CiArfQotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5 cHRvL2ZpcHMvZmlwc19kcmJnX3NlbGZ0ZXN0LmguZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v Zmlwcy9maXBzX2RyYmdfc2VsZnRlc3QuaAotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBz L2ZpcHNfZHJiZ19zZWxmdGVzdC5oLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44MTM3NDU1NDAg KzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2RyYmdfc2VsZnRlc3Qu aAkyMDE5LTAyLTI4IDExOjMwOjA2LjgxMzc0NTU0MCArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX3NlbGZ0ZXN0LmguZmlwcyBvcGVuc3NsLTEuMS4x ZC9jcnlwdG8vZmlwcy9maXBzX2RyYmdfc2VsZnRlc3QuaAorLS0tIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9maXBzL2ZpcHNfZHJiZ19zZWxmdGVzdC5oLmZpcHMJMjAxOS0wOS0xMyAxNToxMzoxMS4w NTc1MjUwMjggKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2RyYmdf c2VsZnRlc3QuaAkyMDE5LTA5LTEzIDE1OjEzOjExLjA1NzUyNTAyOCArMDIwMAogQEAgLTAsMCAr MSwxNzkxIEBACiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVGhlIE9w ZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC03NDY5LDkgKzcyNjgsOSBA QCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2RyYmdfc2VsZnRlc3Qu aC5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeQogKyAgICAweGVmLCAweDA1LCAweDllLCAweGI4LCAw eGM3LCAweDUyLCAweGU0LCAweDBlLCAweDQyLCAweGFhLCAweDdjLCAweDc5LAogKyAgICAweGMy LCAweGQ2LCAweGZkLCAweGE1CiArfTsKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9m aXBzL2ZpcHNfZHNhX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9m aXBzX2RzYV9zZWxmdGVzdC5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19k c2Ffc2VsZnRlc3QuYy5maXBzCTIwMTktMDItMjggMTE6MzA6MDYuODE0NzQ1NTIxICswMTAwCi0r Kysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19kc2Ffc2VsZnRlc3QuYwkyMDE5LTAy LTI4IDExOjMwOjA2LjgxNDc0NTUyMSArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL2ZpcHMvZmlwc19kc2Ffc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9m aXBzL2ZpcHNfZHNhX3NlbGZ0ZXN0LmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9m aXBzX2RzYV9zZWxmdGVzdC5jLmZpcHMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNTc1MjUwMjggKzAy MDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2RzYV9zZWxmdGVzdC5jCTIw MTktMDktMTMgMTU6MTM6MTEuMDU3NTI1MDI4ICswMjAwCiBAQCAtMCwwICsxLDE5NSBAQAogKy8q ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiArICogQ29weXJpZ2h0IChjKSAyMDExIFRoZSBPcGVuU1NMIFByb2plY3Qu ICBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNzY2OCw5ICs3NDY3LDkgQEAgZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19kc2Ffc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wt MS4xLjFiL2NyeXAKICsgICAgcmV0dXJuIHJldDsKICt9CiArI2VuZGlmCi1kaWZmIC11cCBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2VjZGhfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wt MS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZWNkaF9zZWxmdGVzdC5jCi0tLS0gb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2ZpcHMvZmlwc19lY2RoX3NlbGZ0ZXN0LmMuZmlwcwkyMDE5LTAyLTI4IDExOjMw OjA2LjgxNDc0NTUyMSArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNf ZWNkaF9zZWxmdGVzdC5jCTIwMTktMDItMjggMTE6MzA6MDYuODE0NzQ1NTIxICswMTAwCitkaWZm IC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2VjZGhfc2VsZnRlc3QuYy5maXBz IG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfZWNkaF9zZWxmdGVzdC5jCistLS0gb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19lY2RoX3NlbGZ0ZXN0LmMuZmlwcwkyMDE5LTA5 LTEzIDE1OjEzOjExLjA1ODUyNTAxMSArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9m aXBzL2ZpcHNfZWNkaF9zZWxmdGVzdC5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDU4NTI1MDExICsw MjAwCiBAQCAtMCwwICsxLDI0MiBAQAogKy8qIGZpcHMvZWNkaC9maXBzX2VjZGhfc2VsZnRlc3Qu YyAqLwogKy8qIFdyaXR0ZW4gYnkgRHIgU3RlcGhlbiBOIEhlbnNvbiAoc3RldmVAb3BlbnNzbC5v cmcpIGZvciB0aGUgT3BlblNTTApAQCAtNzkxNCw5ICs3NzEzLDkgQEAgZGlmZiAtdXAgb3BlbnNz bC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19lY2RoX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEu MS4xYi9jcnkKICt9CiArCiArI2VuZGlmCi1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v Zmlwcy9maXBzX2VjZHNhX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlw cy9maXBzX2VjZHNhX3NlbGZ0ZXN0LmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9m aXBzX2VjZHNhX3NlbGZ0ZXN0LmMuZmlwcwkyMDE5LTAyLTI4IDExOjMwOjA2LjgxNDc0NTUyMSAr MDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZWNkc2Ffc2VsZnRlc3Qu YwkyMDE5LTAyLTI4IDExOjMwOjA2LjgxNDc0NTUyMSArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19lY2RzYV9zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjEu MWQvY3J5cHRvL2ZpcHMvZmlwc19lY2RzYV9zZWxmdGVzdC5jCistLS0gb3BlbnNzbC0xLjEuMWQv Y3J5cHRvL2ZpcHMvZmlwc19lY2RzYV9zZWxmdGVzdC5jLmZpcHMJMjAxOS0wOS0xMyAxNToxMzox MS4wNTg1MjUwMTEgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2Vj ZHNhX3NlbGZ0ZXN0LmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNTg1MjUwMTEgKzAyMDAKIEBAIC0w LDAgKzEsMTY2IEBACiArLyogZmlwcy9lY2RzYS9maXBzX2VjZHNhX3NlbGZ0ZXN0LmMgKi8KICsv KiBXcml0dGVuIGJ5IERyIFN0ZXBoZW4gTiBIZW5zb24gKHN0ZXZlQG9wZW5zc2wub3JnKSBmb3Ig dGhlIE9wZW5TU0wKQEAgLTgwODQsOSArNzg4Myw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9maXBzL2ZpcHNfZWNkc2Ffc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2Ny CiArfQogKwogKyNlbmRpZgotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlw c19lcnIuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZXJyLmgKLS0tLSBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2Vyci5oLmZpcHMJMjAxOS0wNS0wNiAxNjow ODo0Ni43OTI1OTgyMTEgKzAyMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBz X2Vyci5oCTIwMTktMDUtMDYgMTY6MTk6NTYuNDAzOTkzNTUxICswMjAwCitkaWZmIC11cCBvcGVu c3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2Vyci5oLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL2ZpcHMvZmlwc19lcnIuaAorLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNf ZXJyLmguZmlwcwkyMDE5LTA5LTEzIDE1OjEzOjExLjA1ODUyNTAxMSArMDIwMAorKysrIG9wZW5z c2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfZXJyLmgJMjAxOS0wOS0xMyAxNToxMzoxMS4wNTg1 MjUwMTEgKzAyMDAKIEBAIC0wLDAgKzEsMTk3IEBACiArLyogY3J5cHRvL2ZpcHNfZXJyLmggKi8K ICsvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpAQCAtODI4NSw5ICs4MDg0LDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19lcnIuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9m aXBzL2YKICsjZW5kaWYKICsgICAgcmV0dXJuIDE7CiArfQotZGlmZiAtdXAgb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2ZpcHMvZmlwc19lcnMuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBz L2ZpcHNfZXJzLmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2Vycy5jLmZp cHMJMjAxOS0wMi0yOCAxMTozMDowNi44MTU3NDU1MDMgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZmlwcy9maXBzX2Vycy5jCTIwMTktMDItMjggMTE6MzA6MDYuODE1NzQ1NTAzICsw MTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2Vycy5jLmZpcHMg b3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19lcnMuYworLS0tIG9wZW5zc2wtMS4xLjFk L2NyeXB0by9maXBzL2ZpcHNfZXJzLmMuZmlwcwkyMDE5LTA5LTEzIDE1OjEzOjExLjA1ODUyNTAx MSArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfZXJzLmMJMjAxOS0w OS0xMyAxNToxMzoxMS4wNTg1MjUwMTEgKzAyMDAKIEBAIC0wLDAgKzEsNyBAQAogKyNpbmNsdWRl IDxvcGVuc3NsL29wZW5zc2xjb25mLmg+CiArCkBAIC04Mjk2LDkgKzgwOTUsOSBAQCBkaWZmIC11 cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2Vycy5jLmZpcHMgb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2ZpcHMvZgogKyNlbHNlCiArc3RhdGljIHZvaWQgKmR1bW15ID0gJmR1bW15Owog KyNlbmRpZgotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19obWFjX3Nl bGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2htYWNfc2VsZnRl c3QuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfaG1hY19zZWxmdGVzdC5j LmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44MTU3NDU1MDMgKzAxMDAKLSsrKyBvcGVuc3NsLTEu MS4xYi9jcnlwdG8vZmlwcy9maXBzX2htYWNfc2VsZnRlc3QuYwkyMDE5LTAyLTI4IDExOjMwOjA2 LjgxNTc0NTUwMyArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlw c19obWFjX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2ht YWNfc2VsZnRlc3QuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfaG1hY19z ZWxmdGVzdC5jLmZpcHMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNTk1MjQ5OTMgKzAyMDAKKysrKyBv cGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX2htYWNfc2VsZnRlc3QuYwkyMDE5LTA5LTEz IDE1OjEzOjExLjA1OTUyNDk5MyArMDIwMAogQEAgLTAsMCArMSwxMzQgQEAKICsvKiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogKyAqIENvcHlyaWdodCAoYykgMjAwNSBUaGUgT3BlblNTTCBQcm9qZWN0LiAgQWxsIHJp Z2h0cyByZXNlcnZlZC4KQEAgLTg0MzQsOSArODIzMyw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9maXBzL2ZpcHNfaG1hY19zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIv Y3J5CiArICAgIHJldHVybiAxOwogK30KICsjZW5kaWYKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9maXBzL2ZpcHNfbG9jbC5oLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMv Zmlwc19sb2NsLmgKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2xvY2wuaC5m aXBzCTIwMTktMDItMjggMTE6MzA6MDYuODE1NzQ1NTAzICswMTAwCi0rKysgb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2ZpcHMvZmlwc19sb2NsLmgJMjAxOS0wMi0yOCAxMTozMDowNi44MTU3NDU1MDMg KzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfbG9jbC5oLmZp cHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19sb2NsLmgKKy0tLSBvcGVuc3NsLTEu MS4xZC9jcnlwdG8vZmlwcy9maXBzX2xvY2wuaC5maXBzCTIwMTktMDktMTMgMTU6MTM6MTEuMDU5 NTI0OTkzICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19sb2NsLmgJ MjAxOS0wOS0xMyAxNToxMzoxMS4wNTk1MjQ5OTMgKzAyMDAKIEBAIC0wLDAgKzEsNzEgQEAKICsv KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogKyAqIENvcHlyaWdodCAoYykgMjAxMSBUaGUgT3BlblNTTCBQcm9qZWN0 LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTg1MDksOSArODMwOCw5IEBAIGRpZmYgLXVwIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfbG9jbC5oLmZpcHMgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL2ZpcHMvCiArfQogKyMgZW5kaWYKICsjZW5kaWYKLWRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9maXBzL2ZpcHNfcG9zdC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2Zp cHMvZmlwc19wb3N0LmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX3Bvc3Qu Yy5maXBzCTIwMTktMDUtMDYgMTY6MDg6NDYuNzk0NTk4MTc3ICswMjAwCi0rKysgb3BlbnNzbC0x LjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19wb3N0LmMJMjAxOS0wNS0wNiAxNjowODo0Ni43OTQ1OTgx NzcgKzAyMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfcG9zdC5j LmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19wb3N0LmMKKy0tLSBvcGVuc3Ns LTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX3Bvc3QuYy5maXBzCTIwMTktMDktMTMgMTU6MTM6MTEu MDU5NTI0OTkzICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19wb3N0 LmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNTk1MjQ5OTMgKzAyMDAKIEBAIC0wLDAgKzEsMjI0IEBA CiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVGhlIE9wZW5TU0wgUHJv amVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC04NzM3LDkgKzg1MzYsOSBAQCBkaWZmIC11 cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX3Bvc3QuYy5maXBzIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9maXBzLwogKyAgICByZXR1cm4gMTsKICt9CiArI2VuZGlmCi1kaWZmIC11cCBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX3JhbmRfbGNsLmguZmlwcyBvcGVuc3NsLTEu MS4xYi9jcnlwdG8vZmlwcy9maXBzX3JhbmRfbGNsLmgKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlw dG8vZmlwcy9maXBzX3JhbmRfbGNsLmguZmlwcwkyMDE5LTAyLTI4IDExOjMwOjA2LjgxNjc0NTQ4 NCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfcmFuZF9sY2wuaAky MDE5LTAyLTI4IDExOjMwOjA2LjgxNjc0NTQ4NCArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEu MWQvY3J5cHRvL2ZpcHMvZmlwc19yYW5kX2xjbC5oLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRv L2ZpcHMvZmlwc19yYW5kX2xjbC5oCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlw c19yYW5kX2xjbC5oLmZpcHMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNjA1MjQ5NzYgKzAyMDAKKysr KyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX3JhbmRfbGNsLmgJMjAxOS0wOS0xMyAx NToxMzoxMS4wNjA1MjQ5NzYgKzAyMDAKIEBAIC0wLDAgKzEsMjAzIEBACiArLyogZmlwcy9yYW5k L2ZpcHNfcmFuZF9sY2wuaCAqLwogKy8qIFdyaXR0ZW4gYnkgRHIgU3RlcGhlbiBOIEhlbnNvbiAo c3RldmVAb3BlbnNzbC5vcmcpIGZvciB0aGUgT3BlblNTTApAQCAtODk0NCw5ICs4NzQzLDkgQEAg ZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19yYW5kX2xjbC5oLmZpcHMg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2YKICsjZGVmaW5lIEZJUFNfZGlnZXN0dXBkYXRlIEVWUF9E aWdlc3RVcGRhdGUKICsjZGVmaW5lIEZJUFNfZGlnZXN0ZmluYWwgRVZQX0RpZ2VzdEZpbmFsCiAr I2RlZmluZSBNX0VWUF9NRF9zaXplIEVWUF9NRF9zaXplCi1kaWZmIC11cCBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZmlwcy9maXBzX3JhbmRfbGliLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v Zmlwcy9maXBzX3JhbmRfbGliLmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBz X3JhbmRfbGliLmMuZmlwcwkyMDE5LTAyLTI4IDExOjMwOjA2LjgxNjc0NTQ4NCArMDEwMAotKysr IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfcmFuZF9saWIuYwkyMDE5LTAyLTI4IDEx OjMwOjA2LjgxNjc0NTQ4NCArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2Zp cHMvZmlwc19yYW5kX2xpYi5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19y YW5kX2xpYi5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19yYW5kX2xpYi5j LmZpcHMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNjA1MjQ5NzYgKzAyMDAKKysrKyBvcGVuc3NsLTEu MS4xZC9jcnlwdG8vZmlwcy9maXBzX3JhbmRfbGliLmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNjA1 MjQ5NzYgKzAyMDAKIEBAIC0wLDAgKzEsMjM0IEBACiArLyogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5 cmlnaHQgKGMpIDIwMTEgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu CkBAIC05MTgyLDkgKzg5ODEsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlw cy9maXBzX3JhbmRfbGliLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZgogKyMgZW5kaWYK ICt9CiArCi1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX3JzYV9zZWxm dGVzdC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19yc2Ffc2VsZnRlc3Qu YwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfcnNhX3NlbGZ0ZXN0LmMuZmlw cwkyMDE5LTAyLTI4IDExOjMwOjA2LjgxNjc0NTQ4NCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9maXBzL2ZpcHNfcnNhX3NlbGZ0ZXN0LmMJMjAxOS0wMi0yOCAxMTozMDowNi44MTY3 NDU0ODQgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfcnNh X3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX3JzYV9zZWxm dGVzdC5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19yc2Ffc2VsZnRlc3Qu Yy5maXBzCTIwMTktMDktMTMgMTU6MTM6MTEuMDYwNTI0OTc2ICswMjAwCisrKysgb3BlbnNzbC0x LjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19yc2Ffc2VsZnRlc3QuYwkyMDE5LTA5LTEzIDE1OjEzOjEx LjA2MDUyNDk3NiArMDIwMAogQEAgLTAsMCArMSwzMzggQEAKICsvKiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKyAq IENvcHlyaWdodCAoYykgMjAwMy0yMDA3IFRoZSBPcGVuU1NMIFByb2plY3QuICBBbGwgcmlnaHRz IHJlc2VydmVkLgpAQCAtOTUyNCw5ICs5MzIzLDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL2ZpcHMvZmlwc19yc2Ffc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXAK ICt9CiArCiArI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBkZWYgT1BFTlNTTF9G SVBTICovCi1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX3NoYV9zZWxm dGVzdC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19zaGFfc2VsZnRlc3Qu YwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfc2hhX3NlbGZ0ZXN0LmMuZmlw cwkyMDE5LTA1LTA2IDE2OjA4OjQ2Ljc5NTU5ODE1OSArMDIwMAotKysrIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9maXBzL2ZpcHNfc2hhX3NlbGZ0ZXN0LmMJMjAxOS0wNS0wNiAxNzozNTo0MC4yMTEz MTY4ODAgKzAyMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfc2hh X3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZmlwcy9maXBzX3NoYV9zZWxm dGVzdC5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19zaGFfc2VsZnRlc3Qu Yy5maXBzCTIwMTktMDktMTMgMTU6MTM6MTEuMDYwNTI0OTc2ICswMjAwCisrKysgb3BlbnNzbC0x LjEuMWQvY3J5cHRvL2ZpcHMvZmlwc19zaGFfc2VsZnRlc3QuYwkyMDE5LTA5LTEzIDE1OjEzOjEx LjA2MDUyNDk3NiArMDIwMAogQEAgLTAsMCArMSwyMjMgQEAKICsvKiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKyAq IENvcHlyaWdodCAoYykgMjAwMyBUaGUgT3BlblNTTCBQcm9qZWN0LiAgQWxsIHJpZ2h0cyByZXNl cnZlZC4KQEAgLTk3NTEsOSArOTU1MCw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9maXBzL2ZpcHNfc2hhX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwCiArfQog KwogKyNlbmRpZgotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19zdGFu ZGFsb25lX2htYWMuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfc3RhbmRh bG9uZV9obWFjLmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX3N0YW5kYWxv bmVfaG1hYy5jLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44MTc3NDU0NjYgKzAxMDAKLSsrKyBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX3N0YW5kYWxvbmVfaG1hYy5jCTIwMTktMDIt MjggMTE6MzA6MDYuODE3NzQ1NDY2ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlw dG8vZmlwcy9maXBzX3N0YW5kYWxvbmVfaG1hYy5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRv L2ZpcHMvZmlwc19zdGFuZGFsb25lX2htYWMuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9m aXBzL2ZpcHNfc3RhbmRhbG9uZV9obWFjLmMuZmlwcwkyMDE5LTA5LTEzIDE1OjEzOjExLjA2MTUy NDk1OCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9maXBzL2ZpcHNfc3RhbmRhbG9u ZV9obWFjLmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNjE1MjQ5NTggKzAyMDAKIEBAIC0wLDAgKzEs MTI3IEBACiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIwMDMgVGhlIE9wZW5T U0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC05ODgyLDkgKzk2ODEsOSBAQCBk aWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX3N0YW5kYWxvbmVfaG1hYy5j LmZpcHMgb3BlbnNzbC0xLjEuMWIvYwogKyNlbmRpZgogKyAgICByZXR1cm4gMDsKICt9Ci1kaWZm IC11cCBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vaG1hYy9obWFjLmMuZmlwcyBvcGVuc3NsLTEuMS4x Yy9jcnlwdG8vaG1hYy9obWFjLmMKLS0tLSBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vaG1hYy9obWFj LmMuZmlwcwkyMDE5LTA1LTI5IDE1OjQ2OjE5LjEzODI2MTEwNiArMDIwMAotKysrIG9wZW5zc2wt MS4xLjFjL2NyeXB0by9obWFjL2htYWMuYwkyMDE5LTA1LTI5IDE1OjQ5OjA5LjUwODI2MzEzMyAr MDIwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2htYWMvaG1hYy5jLmZpcHMgb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL2htYWMvaG1hYy5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRv L2htYWMvaG1hYy5jLmZpcHMJMjAxOS0wOS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysr KyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vaG1hYy9obWFjLmMJMjAxOS0wOS0xMyAxNToxMzoxMS4w NjE1MjQ5NTggKzAyMDAKIEBAIC00Myw2ICs0MywxMyBAQCBpbnQgSE1BQ19Jbml0X2V4KEhNQUNf Q1RYICpjdHgsIGNvbnN0IHZvCiAgICAgICAgICByZXR1cm4gMDsKICAKQEAgLTk4OTksOSArOTY5 OCw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFjL2NyeXB0by9obWFjL2htYWMuYy5maXBzIG9w ZW5zc2wtMS4xLjFjL2NyeXB0by9obWFjL2htYWMuCiAgICAgICAgICByZXNldCA9IDE7CiAgICAg ICAgICBqID0gRVZQX01EX2Jsb2NrX3NpemUobWQpOwogICAgICAgICAgaWYgKCFvc3NsX2Fzc2Vy dChqIDw9IChpbnQpc2l6ZW9mKGN0eC0+a2V5KSkpCi1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vaG1hYy9obV9wbWV0aC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2htYWMvaG1f cG1ldGguYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9obWFjL2htX3BtZXRoLmMuZmlwcwky MDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2Ny eXB0by9obWFjL2htX3BtZXRoLmMJMjAxOS0wNS0wNiAxNDo1NjowMS4xMjMyNTcwMjIgKzAyMDAK K2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9obWFjL2htX3BtZXRoLmMuZmlwcyBvcGVu c3NsLTEuMS4xZC9jcnlwdG8vaG1hYy9obV9wbWV0aC5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL2htYWMvaG1fcG1ldGguYy5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICsw MjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2htYWMvaG1fcG1ldGguYwkyMDE5LTA5LTEz IDE1OjEzOjExLjA2MTUyNDk1OCArMDIwMAogQEAgLTE4MCw3ICsxODAsNyBAQCBzdGF0aWMgaW50 IHBrZXlfaG1hY19jdHJsX3N0cihFVlBfUEtFWV9DCiAgCiAgY29uc3QgRVZQX1BLRVlfTUVUSE9E IGhtYWNfcGtleV9tZXRoID0gewpAQCAtOTkxMSw5ICs5NzEwLDkgQEAgZGlmZiAtdXAgb3BlbnNz bC0xLjEuMWIvY3J5cHRvL2htYWMvaG1fcG1ldGguYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9obWFjL2gKICAgICAgcGtleV9obWFjX2luaXQsCiAgICAgIHBrZXlfaG1hY19jb3B5LAogICAg ICBwa2V5X2htYWNfY2xlYW51cCwKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9pbmNs dWRlL2ludGVybmFsL2ZpcHNfaW50LmguZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vaW5jbHVk ZS9pbnRlcm5hbC9maXBzX2ludC5oCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2luY2x1ZGUv aW50ZXJuYWwvZmlwc19pbnQuaC5maXBzCTIwMTktMDItMjggMTE6MzA6MDYuODE3NzQ1NDY2ICsw MTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvZmlwc19pbnQu aAkyMDE5LTAyLTI4IDExOjMwOjA2LjgxNzc0NTQ2NiArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWQvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvZmlwc19pbnQuaC5maXBzIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9pbmNsdWRlL2ludGVybmFsL2ZpcHNfaW50LmgKKy0tLSBvcGVuc3NsLTEuMS4x ZC9jcnlwdG8vaW5jbHVkZS9pbnRlcm5hbC9maXBzX2ludC5oLmZpcHMJMjAxOS0wOS0xMyAxNTox MzoxMS4wNjE1MjQ5NTggKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vaW5jbHVkZS9p bnRlcm5hbC9maXBzX2ludC5oCTIwMTktMDktMTMgMTU6MTM6MTEuMDYxNTI0OTU4ICswMjAwCiBA QCAtMCwwICsxLDk4IEBACiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIwMDMg VGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xMDAxMyw5ICs5 ODEyLDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwv Zmlwc19pbnQuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2MKICt2b2lkIEZJUFNfZ2V0X3RpbWV2ZWMo dW5zaWduZWQgY2hhciAqYnVmLCB1bnNpZ25lZCBsb25nICpwY3RyKTsKICsKICsjZW5kaWYKLWRp ZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9vX2ZpcHMuYy5maXBzIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9vX2ZpcHMuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9vX2ZpcHMuYy5maXBz CTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL29fZmlwcy5jCTIwMTktMDItMjggMTE6MzA6MDYuODE3NzQ1NDY2ICswMTAwCitkaWZm IC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vb19maXBzLmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9j cnlwdG8vb19maXBzLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vb19maXBzLmMuZmlwcwky MDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9vX2ZpcHMuYwkyMDE5LTA5LTEzIDE1OjEzOjExLjA2MTUyNDk1OCArMDIwMAogQEAgLTgs MTcgKzgsMjggQEAKICAgKi8KICAKQEAgLTEwMDQ1LDkgKzk4NDQsOSBAQCBkaWZmIC11cCBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vb19maXBzLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vb19m aXBzLmMKICAgICAgcmV0dXJuIDA7CiArI2VuZGlmCiAgfQotZGlmZiAtdXAgb3BlbnNzbC0xLjEu MWIvY3J5cHRvL29faW5pdC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL29faW5pdC5jCi0t LS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL29faW5pdC5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNToz MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vb19pbml0LmMJMjAx OS0wMi0yOCAxMTozMDowNi44MTc3NDU0NjYgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFk L2NyeXB0by9vX2luaXQuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9vX2luaXQuYworLS0t IG9wZW5zc2wtMS4xLjFkL2NyeXB0by9vX2luaXQuYy5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcu MDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL29faW5pdC5jCTIwMTkt MDktMTMgMTU6MTM6MTEuMDYyNTI0OTQxICswMjAwCiBAQCAtNyw4ICs3LDY4IEBACiAgICogaHR0 cHM6Ly93d3cub3BlbnNzbC5vcmcvc291cmNlL2xpY2Vuc2UuaHRtbAogICAqLwpAQCAtMTAxMTcs OSArOTkxNiw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9vX2luaXQuYy5maXBz IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9vX2luaXQuYwogIAogIC8qCiAgICogUGVyZm9ybSBhbnkg ZXNzZW50aWFsIE9wZW5TU0wgaW5pdGlhbGl6YXRpb24gb3BlcmF0aW9ucy4gQ3VycmVudGx5IGRv ZXMKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yYW5kL3JhbmRfbGliLmMuZmlwcyBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jCi0tLS0gb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL3JhbmQvcmFuZF9saWIuYy5maXBzCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAw ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JhbmQvcmFuZF9saWIuYwkyMDE5LTAy LTI4IDExOjMwOjA2LjgxODc0NTQ0NyArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL3JhbmQvcmFuZF9saWIuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yYW5kL3JhbmRf bGliLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jLmZpcHMJMjAx OS0wOS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlw dG8vcmFuZC9yYW5kX2xpYi5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDYyNTI0OTQxICswMjAwCiBA QCAtMTYsNiArMTYsMTAgQEAKICAjaW5jbHVkZSAiaW50ZXJuYWwvdGhyZWFkX29uY2UuaCIKICAj aW5jbHVkZSAicmFuZF9sY2wuaCIKQEAgLTEwMTMxLDcgKzk5MzAsNyBAQCBkaWZmIC11cCBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5 cHRvL3JhbmQvcgogIAogICNpZm5kZWYgT1BFTlNTTF9OT19FTkdJTkUKICAvKiBub24tTlVMTCBp ZiBkZWZhdWx0X1JBTkRfbWV0aCBpcyBFTkdJTkUtcHJvdmlkZWQgKi8KLUBAIC04NTcsMyArODYx LDE1IEBAIGludCBSQU5EX3N0YXR1cyh2b2lkKQorQEAgLTk1OSwzICs5NjMsMTUgQEAgaW50IFJB TkRfc3RhdHVzKHZvaWQpCiAgICAgICAgICByZXR1cm4gbWV0aC0+c3RhdHVzKCk7CiAgICAgIHJl dHVybiAwOwogIH0KQEAgLTEwMTQ3LDkgKzk5NDYsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JhbmQv cgogKyAgICByZXR1cm4gMTsKICt9CiArI2VuZGlmCi1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vcnNhL3JzYV9jcnB0LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9j cnB0LmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9jcnB0LmMuZmlwcwkyMDE5 LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9yc2EvcnNhX2NycHQuYwkyMDE5LTAyLTI4IDExOjMwOjA2LjgxODc0NTQ0NyArMDEwMAorZGlm ZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3JzYS9yc2FfY3JwdC5jLmZpcHMgb3BlbnNzbC0x LjEuMWQvY3J5cHRvL3JzYS9yc2FfY3JwdC5jCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3Jz YS9yc2FfY3JwdC5jLmZpcHMJMjAxOS0wOS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysr KyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcnNhL3JzYV9jcnB0LmMJMjAxOS0wOS0xMyAxNToxMzox MS4wNjI1MjQ5NDEgKzAyMDAKIEBAIC0yNywyNCArMjcsNTIgQEAgaW50IFJTQV9zaXplKGNvbnN0 IFJTQSAqcikKICBpbnQgUlNBX3B1YmxpY19lbmNyeXB0KGludCBmbGVuLCBjb25zdCB1bnNpZ25l ZCBjaGFyICpmcm9tLCB1bnNpZ25lZCBjaGFyICp0bywKICAgICAgICAgICAgICAgICAgICAgICAg IFJTQSAqcnNhLCBpbnQgcGFkZGluZykKQEAgLTEwMjAzLDkgKzEwMDAyLDkgQEAgZGlmZiAtdXAg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JzYS9yc2FfY3JwdC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL3JzYS9yc2EKICAgICAgcmV0dXJuIHJzYS0+bWV0aC0+cnNhX3B1Yl9kZWMoZmxlbiwg ZnJvbSwgdG8sIHJzYSwgcGFkZGluZyk7CiAgfQogIAotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL3JzYS9yc2FfZXJyLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9l cnIuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX2Vyci5jLmZpcHMJMjAxOS0w Mi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v cnNhL3JzYV9lcnIuYwkyMDE5LTAyLTI4IDExOjMwOjA2LjgxODc0NTQ0NyArMDEwMAorZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3JzYS9yc2FfZXJyLmMuZmlwcyBvcGVuc3NsLTEuMS4x ZC9jcnlwdG8vcnNhL3JzYV9lcnIuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yc2EvcnNh X2Vyci5jLmZpcHMJMjAxOS0wOS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVu c3NsLTEuMS4xZC9jcnlwdG8vcnNhL3JzYV9lcnIuYwkyMDE5LTA5LTEzIDE1OjEzOjExLjA2MjUy NDk0MSArMDIwMAogQEAgLTE2LDYgKzE2LDggQEAKICBzdGF0aWMgY29uc3QgRVJSX1NUUklOR19E QVRBIFJTQV9zdHJfZnVuY3RzW10gPSB7CiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX1JTQSwgUlNB X0ZfQ0hFQ0tfUEFERElOR19NRCwgMCksICJjaGVja19wYWRkaW5nX21kIn0sCkBAIC0xMDI0OCw3 ICsxMDA0Nyw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX2Vyci5j LmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JzYS9yc2FfCiAgICAgIHtFUlJfUEFDSyhFUlJf TElCX1JTQSwgUlNBX0ZfU0VUVVBfVEJVRiwgMCksICJzZXR1cF90YnVmIn0sCiAgICAgIHswLCBO VUxMfQogIH07Ci1AQCAtMTgxLDYgKzE5Miw3IEBAIHN0YXRpYyBjb25zdCBFUlJfU1RSSU5HX0RB VEEgUlNBX3N0cl9yZWEKK0BAIC0xODMsNiArMTk0LDcgQEAgc3RhdGljIGNvbnN0IEVSUl9TVFJJ TkdfREFUQSBSU0Ffc3RyX3JlYQogICAgICAibXAgZXhwb25lbnQgbm90IGNvbmdydWVudCB0byBk In0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX1JTQSwgMCwgUlNBX1JfTVBfUl9OT1RfUFJJTUUp LCAibXAgciBub3QgcHJpbWUifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfUlNBLCAwLCBSU0Ff Ul9OT19QVUJMSUNfRVhQT05FTlQpLCAibm8gcHVibGljIGV4cG9uZW50In0sCkBAIC0xMDI1Niw3 ICsxMDA1NSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX2Vyci5j LmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JzYS9yc2FfCiAgICAgIHtFUlJfUEFDSyhFUlJf TElCX1JTQSwgMCwgUlNBX1JfTlVMTF9CRUZPUkVfQkxPQ0tfTUlTU0lORyksCiAgICAgICJudWxs IGJlZm9yZSBibG9jayBtaXNzaW5nIn0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX1JTQSwgMCwg UlNBX1JfTl9ET0VTX05PVF9FUVVBTF9QUk9EVUNUX09GX1BSSU1FUyksCi1AQCAtMTg5LDYgKzIw MSw4IEBAIHN0YXRpYyBjb25zdCBFUlJfU1RSSU5HX0RBVEEgUlNBX3N0cl9yZWEKK0BAIC0xOTEs NiArMjAzLDggQEAgc3RhdGljIGNvbnN0IEVSUl9TVFJJTkdfREFUQSBSU0Ffc3RyX3JlYQogICAg ICAibiBkb2VzIG5vdCBlcXVhbCBwIHEifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfUlNBLCAw LCBSU0FfUl9PQUVQX0RFQ09ESU5HX0VSUk9SKSwKICAgICAgIm9hZXAgZGVjb2RpbmcgZXJyb3Ii fSwKQEAgLTEwMjY1LDcgKzEwMDY0LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRv L3JzYS9yc2FfZXJyLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV8KICAgICAg e0VSUl9QQUNLKEVSUl9MSUJfUlNBLCAwLCBSU0FfUl9PUEVSQVRJT05fTk9UX1NVUFBPUlRFRF9G T1JfVEhJU19LRVlUWVBFKSwKICAgICAgIm9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIGZvciB0aGlz IGtleXR5cGUifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfUlNBLCAwLCBSU0FfUl9QQURESU5H X0NIRUNLX0ZBSUxFRCksCi1AQCAtMjI0LDYgKzIzOCw4IEBAIHN0YXRpYyBjb25zdCBFUlJfU1RS SU5HX0RBVEEgUlNBX3N0cl9yZWEKK0BAIC0yMjYsNiArMjQwLDggQEAgc3RhdGljIGNvbnN0IEVS Ul9TVFJJTkdfREFUQSBSU0Ffc3RyX3JlYQogICAgICAidW5zdXBwb3J0ZWQgbWFzayBhbGdvcml0 aG0ifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfUlNBLCAwLCBSU0FfUl9VTlNVUFBPUlRFRF9N QVNLX1BBUkFNRVRFUiksCiAgICAgICJ1bnN1cHBvcnRlZCBtYXNrIHBhcmFtZXRlciJ9LApAQCAt MTAyNzQsOSArMTAwNzMsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3Jz YV9lcnIuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhXwogICAgICB7RVJSX1BB Q0soRVJSX0xJQl9SU0EsIDAsIFJTQV9SX1VOU1VQUE9SVEVEX1NJR05BVFVSRV9UWVBFKSwKICAg ICAgInVuc3VwcG9ydGVkIHNpZ25hdHVyZSB0eXBlIn0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElC X1JTQSwgMCwgUlNBX1JfVkFMVUVfTUlTU0lORyksICJ2YWx1ZSBtaXNzaW5nIn0sCi1kaWZmIC11 cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9nZW4uYy5maXBzIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9yc2EvcnNhX2dlbi5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JzYS9yc2Ff Z2VuLmMuZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5z c2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX2dlbi5jCTIwMTktMDItMjggMTE6MzA6MDYuODE4NzQ1 NDQ3ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcnNhL3JzYV9nZW4uYy5m aXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yc2EvcnNhX2dlbi5jCistLS0gb3BlbnNzbC0xLjEu MWQvY3J5cHRvL3JzYS9yc2FfZ2VuLmMuZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAw MCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yc2EvcnNhX2dlbi5jCTIwMTktMDkt MTMgMTU6MTM6MTEuMDYzNTI0OTIzICswMjAwCiBAQCAtMTgsNiArMTgsNzYgQEAKICAjaW5jbHVk ZSAiaW50ZXJuYWwvY3J5cHRsaWIuaCIKICAjaW5jbHVkZSA8b3BlbnNzbC9ibi5oPgpAQCAtMTA2 NjksOSArMTA0NjgsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9n ZW4uYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhXwogIHN0YXRpYyBpbnQgcnNh X2J1aWx0aW5fa2V5Z2VuKFJTQSAqcnNhLCBpbnQgYml0cywgaW50IHByaW1lcywgQklHTlVNICpl X3ZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJOX0dFTkNCICpjYikKICB7 Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9saWIuYy5maXBzIG9wZW5z c2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX2xpYi5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRv L3JzYS9yc2FfbGliLmMuZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAot KysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX2xpYi5jCTIwMTktMDItMjggMTE6MzA6 MDYuODE5NzQ1NDI4ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcnNhL3Jz YV9saWIuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yc2EvcnNhX2xpYi5jCistLS0gb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL3JzYS9yc2FfbGliLmMuZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3 LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yc2EvcnNhX2xpYi5j CTIwMTktMDktMTMgMTU6MTM6MTEuMDYzNTI0OTIzICswMjAwCiBAQCAtMzQsNiArMzQsMTIgQEAg aW50IFJTQV9zZXRfbWV0aG9kKFJTQSAqcnNhLCBjb25zdCBSU0FfTQogICAgICAgKiB0byBkZWFs IHdpdGggd2hpY2ggRU5HSU5FIGl0IGNvbWVzIGZyb20uCiAgICAgICAqLwpAQCAtMTA3MTQsOSAr MTA1MTMsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9saWIuYy5m aXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhXwogICAgICBpZiAoIUNSWVBUT19uZXdf ZXhfZGF0YShDUllQVE9fRVhfSU5ERVhfUlNBLCByZXQsICZyZXQtPmV4X2RhdGEpKSB7CiAgICAg ICAgICBnb3RvIGVycjsKICAgICAgfQotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3Jz YS9yc2Ffb3NzbC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JzYS9yc2Ffb3NzbC5jCi0t LS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JzYS9yc2Ffb3NzbC5jLmZpcHMJMjAxOS0wMi0yNiAx NToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3Jz YV9vc3NsLmMJMjAxOS0wMi0yOCAxMTozMTo1Ny4zMTU2OTEzNzIgKzAxMDAKK2RpZmYgLXVwIG9w ZW5zc2wtMS4xLjFkL2NyeXB0by9yc2EvcnNhX29zc2wuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9yc2EvcnNhX29zc2wuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yc2EvcnNhX29z c2wuYy5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNz bC0xLjEuMWQvY3J5cHRvL3JzYS9yc2Ffb3NzbC5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDYzNTI0 OTIzICswMjAwCiBAQCAtMTIsNiArMTIsMTAgQEAKICAjaW5jbHVkZSAicnNhX2xvY2wuaCIKICAj aW5jbHVkZSAiaW50ZXJuYWwvY29uc3RhbnRfdGltZV9sb2NsLmgiCkBAIC0xMDc2NCw3ICsxMDU2 Myw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX29zc2wuYy5maXBz IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhCiAgICAgIGlmIChCTl9udW1fYml0cyhyc2Et Pm4pID4gT1BFTlNTTF9SU0FfTUFYX01PRFVMVVNfQklUUykgewogICAgICAgICAgUlNBZXJyKFJT QV9GX1JTQV9PU1NMX1BVQkxJQ19FTkNSWVBULCBSU0FfUl9NT0RVTFVTX1RPT19MQVJHRSk7CiAg ICAgICAgICByZXR1cm4gLTE7Ci1AQCAtMjQ3LDYgKzI3MywyMiBAQCBzdGF0aWMgaW50IHJzYV9v c3NsX3ByaXZhdGVfZW5jcnlwdChpbnQKK0BAIC0yNDYsNiArMjcyLDIyIEBAIHN0YXRpYyBpbnQg cnNhX29zc2xfcHJpdmF0ZV9lbmNyeXB0KGludAogICAgICBCSUdOVU0gKnVuYmxpbmQgPSBOVUxM OwogICAgICBCTl9CTElORElORyAqYmxpbmRpbmcgPSBOVUxMOwogIApAQCAtMTA3ODcsNyArMTA1 ODYsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9vc3NsLmMuZmlw cyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYQogICAgICBpZiAoKGN0eCA9IEJOX0NUWF9u ZXcoKSkgPT0gTlVMTCkKICAgICAgICAgIGdvdG8gZXJyOwogICAgICBCTl9DVFhfc3RhcnQoY3R4 KTsKLUBAIC0zNzcsNiArNDE5LDIyIEBAIHN0YXRpYyBpbnQgcnNhX29zc2xfcHJpdmF0ZV9kZWNy eXB0KGludAorQEAgLTM4MCw2ICs0MjIsMjIgQEAgc3RhdGljIGludCByc2Ffb3NzbF9wcml2YXRl X2RlY3J5cHQoaW50CiAgICAgIEJJR05VTSAqdW5ibGluZCA9IE5VTEw7CiAgICAgIEJOX0JMSU5E SU5HICpibGluZGluZyA9IE5VTEw7CiAgCkBAIC0xMDgxMCw3ICsxMDYwOSw3IEBAIGRpZmYgLXVw IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX29zc2wuYy5maXBzIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9yc2EvcnNhCiAgICAgIGlmICgoY3R4ID0gQk5fQ1RYX25ldygpKSA9PSBOVUxMKQog ICAgICAgICAgZ290byBlcnI7CiAgICAgIEJOX0NUWF9zdGFydChjdHgpOwotQEAgLTUwMCw2ICs1 NTgsMjIgQEAgc3RhdGljIGludCByc2Ffb3NzbF9wdWJsaWNfZGVjcnlwdChpbnQgZgorQEAgLTUw Nyw2ICs1NjUsMjIgQEAgc3RhdGljIGludCByc2Ffb3NzbF9wdWJsaWNfZGVjcnlwdChpbnQgZgog ICAgICB1bnNpZ25lZCBjaGFyICpidWYgPSBOVUxMOwogICAgICBCTl9DVFggKmN0eCA9IE5VTEw7 CiAgCkBAIC0xMDgzMyw5ICsxMDYzMiw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9yc2EvcnNhX29zc2wuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhCiAgICAg IGlmIChCTl9udW1fYml0cyhyc2EtPm4pID4gT1BFTlNTTF9SU0FfTUFYX01PRFVMVVNfQklUUykg ewogICAgICAgICAgUlNBZXJyKFJTQV9GX1JTQV9PU1NMX1BVQkxJQ19ERUNSWVBULCBSU0FfUl9N T0RVTFVTX1RPT19MQVJHRSk7CiAgICAgICAgICByZXR1cm4gLTE7Ci1kaWZmIC11cCBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9wbWV0aC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRv L3JzYS9yc2FfcG1ldGguYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX3BtZXRo LmMuZmlwcwkyMDE5LTA1LTA2IDE0OjQ4OjI2LjUxNDE3NDA1MyArMDIwMAotKysrIG9wZW5zc2wt MS4xLjFiL2NyeXB0by9yc2EvcnNhX3BtZXRoLmMJMjAxOS0wNS0wNiAxNDo0NTo0Ni43MzI5NTY2 NDkgKzAyMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9yc2EvcnNhX3BtZXRoLmMu ZmlwcyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcnNhL3JzYV9wbWV0aC5jCistLS0gb3BlbnNzbC0x LjEuMWQvY3J5cHRvL3JzYS9yc2FfcG1ldGguYy5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAw MDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3JzYS9yc2FfcG1ldGguYwky MDE5LTA5LTEzIDE1OjEzOjExLjA2MzUyNDkyMyArMDIwMAogQEAgLTc1Niw3ICs3NTYsNyBAQCBz dGF0aWMgaW50IHBrZXlfcnNhX2tleWdlbihFVlBfUEtFWV9DVFgKICAKICBjb25zdCBFVlBfUEtF WV9NRVRIT0QgcnNhX3BrZXlfbWV0aCA9IHsKQEAgLTEwODU0LDkgKzEwNjUzLDkgQEAgZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JzYS9yc2FfcG1ldGguYy5maXBzIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9yc2EvcnMKICAgICAgcGtleV9yc2FfaW5pdCwKICAgICAgcGtleV9yc2FfY29w eSwKICAgICAgcGtleV9yc2FfY2xlYW51cCwKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9yc2EvcnNhX3NpZ24uYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX3NpZ24u YwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX3NpZ24uYy5maXBzCTIwMTktMDIt MjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3Jz YS9yc2Ffc2lnbi5jCTIwMTktMDItMjggMTE6MzA6MDYuODE5NzQ1NDI4ICswMTAwCitkaWZmIC11 cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcnNhL3JzYV9zaWduLmMuZmlwcyBvcGVuc3NsLTEuMS4x ZC9jcnlwdG8vcnNhL3JzYV9zaWduLmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vcnNhL3Jz YV9zaWduLmMuZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9w ZW5zc2wtMS4xLjFkL2NyeXB0by9yc2EvcnNhX3NpZ24uYwkyMDE5LTA5LTEzIDE1OjEzOjExLjA2 NDUyNDkwNiArMDIwMAogQEAgLTczLDYgKzczLDEzIEBAIGludCBSU0Ffc2lnbihpbnQgdHlwZSwg Y29uc3QgdW5zaWduZWQgY2gKICAgICAgdW5zaWduZWQgY2hhciAqdG1wcyA9IE5VTEw7CiAgICAg IGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuY29kZWQgPSBOVUxMOwpAQCAtMTA4ODMsOSArMTA2ODIs OSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9zaWduLmMuZmlwcyBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYQogICAgICBpZiAoZW5jcnlwdF9sZW4gPD0gMCkK ICAgICAgICAgIGdvdG8gZXJyOwogIAotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3No YS9zaGEyNTYuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9zaGEvc2hhMjU2LmMKLS0tLSBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vc2hhL3NoYTI1Ni5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNToz MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vc2hhL3NoYTI1Ni5j CTIwMTktMDItMjggMTE6MzA6MDYuODE5NzQ1NDI4ICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEu MS4xZC9jcnlwdG8vc2hhL3NoYTI1Ni5jLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3NoYS9z aGEyNTYuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9zaGEvc2hhMjU2LmMuZmlwcwkyMDE5 LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0 by9zaGEvc2hhMjU2LmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNjQ1MjQ5MDYgKzAyMDAKIEBAIC0x OCw2ICsxOCw5IEBACiAgCiAgaW50IFNIQTIyNF9Jbml0KFNIQTI1Nl9DVFggKmMpCkBAIC0xMDkw Niw5ICsxMDcwNSw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9zaGEvc2hhMjU2 LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vc2hhL3NoYTI1CiAgICAgIG1lbXNldChjLCAw LCBzaXplb2YoKmMpKTsKICAgICAgYy0+aFswXSA9IDB4NmEwOWU2NjdVTDsKICAgICAgYy0+aFsx XSA9IDB4YmI2N2FlODVVTDsKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9zaGEvc2hh NTEyLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vc2hhL3NoYTUxMi5jCi0tLS0gb3BlbnNz bC0xLjEuMWIvY3J5cHRvL3NoYS9zaGE1MTIuYy5maXBzCTIwMTktMDItMjYgMTU6MTU6MzAuMDAw MDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3NoYS9zaGE1MTIuYwkyMDE5 LTAyLTI4IDExOjMwOjA2LjgyMDc0NTQxMCArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQv Y3J5cHRvL3NoYS9zaGE1MTIuYy5maXBzIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9zaGEvc2hhNTEy LmMKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vc2hhL3NoYTUxMi5jLmZpcHMJMjAxOS0wOS0x MCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vc2hh L3NoYTUxMi5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDY0NTI0OTA2ICswMjAwCiBAQCAtOTgsNiAr OTgsOSBAQCBpbnQgc2hhNTEyXzI1Nl9pbml0KFNIQTUxMl9DVFggKmMpCiAgCiAgaW50IFNIQTM4 NF9Jbml0KFNIQTUxMl9DVFggKmMpCkBAIC0xMDkyOSw5ICsxMDcyOCw5IEBAIGRpZmYgLXVwIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9zaGEvc2hhNTEyLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlw dG8vc2hhL3NoYTUxCiAgICAgIGMtPmhbMF0gPSBVNjQoMHg2YTA5ZTY2N2YzYmNjOTA4KTsKICAg ICAgYy0+aFsxXSA9IFU2NCgweGJiNjdhZTg1ODRjYWE3M2IpOwogICAgICBjLT5oWzJdID0gVTY0 KDB4M2M2ZWYzNzJmZTk0ZjgyYik7Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vc2hh L3NoYV9sb2NsLmguZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vc2hhL3NoYV9sb2NsLmgKLS0t LSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vc2hhL3NoYV9sb2NsLmguZmlwcwkyMDE5LTAyLTI4IDEx OjMwOjA2LjYyODc0ODk3OSArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9zaGEvc2hh X2xvY2wuaAkyMDE5LTAyLTI4IDExOjMwOjA2LjgyMDc0NTQxMCArMDEwMAorZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL3NoYS9zaGFfbG9jbC5oLmZpcHMgb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL3NoYS9zaGFfbG9jbC5oCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL3NoYS9zaGFfbG9j bC5oLmZpcHMJMjAxOS0wOS0xMyAxNToxMzoxMC44Mzc1Mjg4NzMgKzAyMDAKKysrKyBvcGVuc3Ns LTEuMS4xZC9jcnlwdG8vc2hhL3NoYV9sb2NsLmgJMjAxOS0wOS0xMyAxNToxMzoxMS4wNjQ1MjQ5 MDYgKzAyMDAKIEBAIC01Miw2ICs1Miw5IEBAIHZvaWQgc2hhMV9ibG9ja19kYXRhX29yZGVyKFNI QV9DVFggKmMsIGMKICAKICBpbnQgSEFTSF9JTklUKFNIQV9DVFggKmMpCkBAIC0xMDk0Miw5ICsx MDc0MSw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9zaGEvc2hhX2xvY2wuaC5m aXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9zaGEvc2hhCiAgICAgIG1lbXNldChjLCAwLCBzaXpl b2YoKmMpKTsKICAgICAgYy0+aDAgPSBJTklUX0RBVEFfaDA7CiAgICAgIGMtPmgxID0gSU5JVF9E QVRBX2gxOwotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvZG9jL21hbjMvRFNBX2dlbmVyYXRlX3Bh cmFtZXRlcnMucG9kLmZpcHMgb3BlbnNzbC0xLjEuMWIvZG9jL21hbjMvRFNBX2dlbmVyYXRlX3Bh cmFtZXRlcnMucG9kCi0tLS0gb3BlbnNzbC0xLjEuMWIvZG9jL21hbjMvRFNBX2dlbmVyYXRlX3Bh cmFtZXRlcnMucG9kLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBvcGVuc3NsLTEuMS4xYi9kb2MvbWFuMy9EU0FfZ2VuZXJhdGVfcGFyYW1ldGVycy5wb2QJMjAx OS0wMi0yOCAxMTozMDowNi44MjA3NDU0MTAgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFk L2RvYy9tYW4zL0RTQV9nZW5lcmF0ZV9wYXJhbWV0ZXJzLnBvZC5maXBzIG9wZW5zc2wtMS4xLjFk L2RvYy9tYW4zL0RTQV9nZW5lcmF0ZV9wYXJhbWV0ZXJzLnBvZAorLS0tIG9wZW5zc2wtMS4xLjFk L2RvYy9tYW4zL0RTQV9nZW5lcmF0ZV9wYXJhbWV0ZXJzLnBvZC5maXBzCTIwMTktMDktMTAgMTU6 MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvZG9jL21hbjMvRFNBX2dl bmVyYXRlX3BhcmFtZXRlcnMucG9kCTIwMTktMDktMTMgMTU6MTM6MTEuMDY0NTI0OTA2ICswMjAw CiBAQCAtMzAsOCArMzAsMTAgQEAgQjxiaXRzPiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBwcmltZSBw IHRvCiAgRm9yIGxlbmd0aHMgdW5kZXIgMjA0OCBiaXRzLCB0aGUgbGVuZ3RoIG9mIHEgaXMgMTYw IGJpdHM7IGZvciBsZW5ndGhzCiAgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDIwNDggYml0cywg dGhlIGxlbmd0aCBvZiBxIGlzIHNldCB0byAyNTYgYml0cy4KQEAgLTEwOTU4LDkgKzEwNzU3LDkg QEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvZG9jL21hbjMvRFNBX2dlbmVyYXRlX3BhcmFtZXRl cnMucG9kLmZpcHMgb3BlbnNzbC0xLjEuMWIKICAKICBEU0FfZ2VuZXJhdGVfcGFyYW1ldGVyc19l eCgpIHBsYWNlcyB0aGUgaXRlcmF0aW9uIGNvdW50IGluCiAgKkI8Y291bnRlcl9yZXQ+IGFuZCBh IGNvdW50ZXIgdXNlZCBmb3IgZmluZGluZyBhIGdlbmVyYXRvciBpbgotZGlmZiAtdXAgb3BlbnNz bC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2NyeXB0by5oLmZpcHMgb3BlbnNzbC0xLjEuMWIvaW5j bHVkZS9vcGVuc3NsL2NyeXB0by5oCi0tLS0gb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3Ns L2NyeXB0by5oLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBv cGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvY3J5cHRvLmgJMjAxOS0wMi0yOCAxMTozMDow Ni44MjA3NDU0MTAgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNz bC9jcnlwdG8uaC5maXBzIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9jcnlwdG8uaAor LS0tIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9jcnlwdG8uaC5maXBzCTIwMTktMDkt MTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9v cGVuc3NsL2NyeXB0by5oCTIwMTktMDktMTMgMTU6MTM6MTEuMDY1NTI0ODg4ICswMjAwCiBAQCAt MzMxLDYgKzMzMSwxMSBAQCBpbnQgT1BFTlNTTF9pc3NlcnZpY2Uodm9pZCk7CiAgaW50IEZJUFNf bW9kZSh2b2lkKTsKICBpbnQgRklQU19tb2RlX3NldChpbnQgcik7CkBAIC0xMDk3MywxMCArMTA3 NzIsMTAgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2NyeXB0by5o LmZpcHMgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGUKICB2b2lkIE9QRU5TU0xfaW5pdCh2b2lk KTsKICAjIGlmZGVmIE9QRU5TU0xfU1lTX1VOSVgKICB2b2lkIE9QRU5TU0xfZm9ya19wcmVwYXJl KHZvaWQpOwotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2RoZXJyLmgu ZmlwcyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZGhlcnIuaAotLS0tIG9wZW5zc2wt MS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9kaGVyci5oLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZGhlcnIu aAkyMDE5LTAyLTI4IDExOjMwOjA2LjgyMDc0NTQxMCArMDEwMAotQEAgLTMyLDYgKzMyLDkgQEAg aW50IEVSUl9sb2FkX0RIX3N0cmluZ3Modm9pZCk7CitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9p bmNsdWRlL29wZW5zc2wvZGhlcnIuaC5maXBzIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNz bC9kaGVyci5oCistLS0gb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVuc3NsL2RoZXJyLmguZmlw cwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFk L2luY2x1ZGUvb3BlbnNzbC9kaGVyci5oCTIwMTktMDktMTMgMTU6MTM6MTEuMDY1NTI0ODg4ICsw MjAwCitAQCAtMzYsNiArMzYsOSBAQCBpbnQgRVJSX2xvYWRfREhfc3RyaW5ncyh2b2lkKTsKICAj ICBkZWZpbmUgREhfRl9ESF9DTVNfREVDUllQVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDExNAogICMgIGRlZmluZSBESF9GX0RIX0NNU19TRVRfUEVFUktFWSAgICAgICAgICAgICAgICAg ICAgICAgICAgMTE1CiAgIyAgZGVmaW5lIERIX0ZfREhfQ01TX1NFVF9TSEFSRURfSU5GTyAgICAg ICAgICAgICAgICAgICAgICAxMTYKQEAgLTEwOTg2LDcgKzEwNzg1LDcgQEAgZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2RoZXJyLmguZmlwcyBvcGVuc3NsLTEuMS4xYi9p bmNsdWRlL29wZW4KICAjICBkZWZpbmUgREhfRl9ESF9NRVRIX0RVUCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDExNwogICMgIGRlZmluZSBESF9GX0RIX01FVEhfTkVXICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMTE4CiAgIyAgZGVmaW5lIERIX0ZfREhfTUVUSF9TRVQx X05BTUUgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTkKLUBAIC02OSwxMiArNzIsMTQgQEAg aW50IEVSUl9sb2FkX0RIX3N0cmluZ3Modm9pZCk7CitAQCAtNzMsMTIgKzc2LDE0IEBAIGludCBF UlJfbG9hZF9ESF9zdHJpbmdzKHZvaWQpOwogICMgIGRlZmluZSBESF9SX0lOVkFMSURfUEFSQU1F VEVSX05JRCAgICAgICAgICAgICAgICAgICAgICAgMTE0CiAgIyAgZGVmaW5lIERIX1JfSU5WQUxJ RF9QVUJLRVkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDIKICAjICBkZWZpbmUgREhf Ul9LREZfUEFSQU1FVEVSX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICAgIDExMgpAQCAtMTEw MDEsOSArMTA4MDAsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wv ZGhlcnIuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbgogICMgIGRlZmluZSBESF9S X1BBUkFNRVRFUl9FTkNPRElOR19FUlJPUiAgICAgICAgICAgICAgICAgICAgMTA1CiAgIyAgZGVm aW5lIERIX1JfUEVFUl9LRVlfRVJST1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTEK ICAjICBkZWZpbmUgREhfUl9TSEFSRURfSU5GT19FUlJPUiAgICAgICAgICAgICAgICAgICAgICAg ICAgIDExMwotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2RoLmguZmlw cyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZGguaAotLS0tIG9wZW5zc2wtMS4xLjFi L2luY2x1ZGUvb3BlbnNzbC9kaC5oLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZGguaAkyMDE5LTAyLTI4 IDExOjMwOjA2LjgyMDc0NTQxMCArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvaW5jbHVk ZS9vcGVuc3NsL2RoLmguZmlwcyBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvZGguaAor LS0tIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9kaC5oLmZpcHMJMjAxOS0wOS0xMCAx NToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5z c2wvZGguaAkyMDE5LTA5LTEzIDE1OjEzOjExLjA2NTUyNDg4OCArMDIwMAogQEAgLTMxLDYgKzMx LDcgQEAgZXh0ZXJuICJDIiB7CiAgIyBlbmRpZgogIApAQCAtMTEwMTIsMTAgKzEwODExLDEwIEBA IGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9kaC5oLmZpcHMgb3BlbnNz bC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsCiAgCiAgIyBkZWZpbmUgREhfRkxBR19DQUNIRV9NT05U X1AgICAgIDB4MDEKICAKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9k c2FlcnIuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9kc2FlcnIuaAotLS0t IG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9kc2FlcnIuaC5maXBzCTIwMTktMDItMjYg MTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVu c3NsL2RzYWVyci5oCTIwMTktMDItMjggMTE6MzA6MDYuODIxNzQ1MzkxICswMTAwCi1AQCAtMjUs OCArMjUsMTEgQEAgaW50IEVSUl9sb2FkX0RTQV9zdHJpbmdzKHZvaWQpOworZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVuc3NsL2RzYWVyci5oLmZpcHMgb3BlbnNzbC0xLjEuMWQv aW5jbHVkZS9vcGVuc3NsL2RzYWVyci5oCistLS0gb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVu c3NsL2RzYWVyci5oLmZpcHMJMjAxOS0wOS0xMCAxNToxMzowNy4wMDAwMDAwMDAgKzAyMDAKKysr KyBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvZHNhZXJyLmgJMjAxOS0wOS0xMyAxNTox NjozMi4yNjMwMDgxNTcgKzAyMDAKK0BAIC0yOSw4ICsyOSwxMSBAQCBpbnQgRVJSX2xvYWRfRFNB X3N0cmluZ3Modm9pZCk7CiAgICovCiAgIyAgZGVmaW5lIERTQV9GX0RTQVBBUkFNU19QUklOVCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAKICAjICBkZWZpbmUgRFNBX0ZfRFNBUEFSQU1T X1BSSU5UX0ZQICAgICAgICAgICAgICAgICAgICAgICAgIDEwMQpAQCAtMTEwMjcsMjIgKzEwODI2 LDIzIEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9kc2FlcnIuaC5m aXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlCiAgIyAgZGVmaW5lIERTQV9GX0RTQV9ET19T SUdOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTIKICAjICBkZWZpbmUgRFNBX0Zf RFNBX0RPX1ZFUklGWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExMwogICMgIGRlZmlu ZSBEU0FfRl9EU0FfTUVUSF9EVVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI3Ci1A QCAtNTYsOSArNTksMTIgQEAgaW50IEVSUl9sb2FkX0RTQV9zdHJpbmdzKHZvaWQpOworQEAgLTYw LDEwICs2MywxMyBAQCBpbnQgRVJSX2xvYWRfRFNBX3N0cmluZ3Modm9pZCk7CiAgIyAgZGVmaW5l IERTQV9SX0RFQ09ERV9FUlJPUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDQKICAj ICBkZWZpbmUgRFNBX1JfSU5WQUxJRF9ESUdFU1RfVFlQRSAgICAgICAgICAgICAgICAgICAgICAg IDEwNgogICMgIGRlZmluZSBEU0FfUl9JTlZBTElEX1BBUkFNRVRFUlMgICAgICAgICAgICAgICAg ICAgICAgICAgMTEyCiArIyAgZGVmaW5lIERTQV9SX0tFWV9TSVpFX0lOVkFMSUQgICAgICAgICAg ICAgICAgICAgICAgICAgICAyMDEKICsjICBkZWZpbmUgRFNBX1JfS0VZX1NJWkVfVE9PX1NNQUxM ICAgICAgICAgICAgICAgICAgICAgICAgIDIwMgogICMgIGRlZmluZSBEU0FfUl9NSVNTSU5HX1BB UkFNRVRFUlMgICAgICAgICAgICAgICAgICAgICAgICAgMTAxCisgIyAgZGVmaW5lIERTQV9SX01J U1NJTkdfUFJJVkFURV9LRVkgICAgICAgICAgICAgICAgICAgICAgICAxMTEKICAjICBkZWZpbmUg RFNBX1JfTU9EVUxVU19UT09fTEFSR0UgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMwogICMg IGRlZmluZSBEU0FfUl9OT19QQVJBTUVURVJTX1NFVCAgICAgICAgICAgICAgICAgICAgICAgICAg MTA3CiArIyAgZGVmaW5lIERTQV9SX05PTl9GSVBTX0RTQV9NRVRIT0QgICAgICAgICAgICAgICAg ICAgICAgICAyMDAKICAjICBkZWZpbmUgRFNBX1JfUEFSQU1FVEVSX0VOQ09ESU5HX0VSUk9SICAg ICAgICAgICAgICAgICAgIDEwNQogICMgIGRlZmluZSBEU0FfUl9RX05PVF9QUklNRSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMTEzCiAgIyAgZGVmaW5lIERTQV9SX1NFRURfTEVOX1NN QUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTAKLWRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL2luY2x1ZGUvb3BlbnNzbC9kc2EuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3Bl bnNzbC9kc2EuaAotLS0tIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9kc2EuaC5maXBz CTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWIv aW5jbHVkZS9vcGVuc3NsL2RzYS5oCTIwMTktMDItMjggMTE6MzA6MDYuODIxNzQ1MzkxICswMTAw CitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvZHNhLmguZmlwcyBvcGVu c3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvZHNhLmgKKy0tLSBvcGVuc3NsLTEuMS4xZC9pbmNs dWRlL29wZW5zc2wvZHNhLmguZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIw MAorKysrIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9kc2EuaAkyMDE5LTA5LTEzIDE1 OjEzOjExLjA2NTUyNDg4OCArMDIwMAogQEAgLTMxLDYgKzMxLDcgQEAgZXh0ZXJuICJDIiB7CiAg IyBlbmRpZgogIApAQCAtMTEwNTEsMjYgKzEwODUxLDI5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL2luY2x1ZGUvb3BlbnNzbC9kc2EuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3Bl bnNzCiAgCiAgIyBkZWZpbmUgRFNBX0ZMQUdfQ0FDSEVfTU9OVF9QICAgMHgwMQogICMgaWYgT1BF TlNTTF9BUElfQ09NUEFUIDwgMHgxMDEwMDAwMEwKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2lu Y2x1ZGUvb3BlbnNzbC9ldnBlcnIuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNz bC9ldnBlcnIuaAotLS0tIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9ldnBlcnIuaC5m aXBzCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjEu MWIvaW5jbHVkZS9vcGVuc3NsL2V2cGVyci5oCTIwMTktMDUtMDYgMTY6NDA6MjEuMzI0NTcxNDQ2 ICswMjAwCi1AQCAtMjAsMTEgKzIwLDE1IEBAIGludCBFUlJfbG9hZF9FVlBfc3RyaW5ncyh2b2lk KTsKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9ldnBlcnIuaC5maXBz IG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9ldnBlcnIuaAorLS0tIG9wZW5zc2wtMS4x LjFkL2luY2x1ZGUvb3BlbnNzbC9ldnBlcnIuaC5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAw MDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVuc3NsL2V2cGVyci5o CTIwMTktMDktMTMgMTU6MTg6MTcuNTUyMTY3ODEwICswMjAwCitAQCAtMjQsMTQgKzI0LDE1IEBA IGludCBFUlJfbG9hZF9FVlBfc3RyaW5ncyh2b2lkKTsKICAgKiBFVlAgZnVuY3Rpb24gY29kZXMu CiAgICovCiAgIyBkZWZpbmUgRVZQX0ZfQUVTTklfSU5JVF9LRVkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDE2NQorLSMgZGVmaW5lIEVWUF9GX0FFU05JX1hUU19JTklUX0tFWSAgICAgICAg ICAgICAgICAgICAgICAgICAyMDcKICsjIGRlZmluZSBFVlBfRl9BRVNOSV9YVFNfSU5JVF9LRVkg ICAgICAgICAgICAgICAgICAgICAgICAgMjMzCiAgIyBkZWZpbmUgRVZQX0ZfQUVTX0dDTV9DVFJM ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5NgogICMgZGVmaW5lIEVWUF9GX0FFU19J TklUX0tFWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMzMKICAjIGRlZmluZSBFVlBf Rl9BRVNfT0NCX0NJUEhFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTY5CiAgIyBkZWZp bmUgRVZQX0ZfQUVTX1Q0X0lOSVRfS0VZICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3OAor LSMgZGVmaW5lIEVWUF9GX0FFU19UNF9YVFNfSU5JVF9LRVkgICAgICAgICAgICAgICAgICAgICAg ICAyMDgKICsjIGRlZmluZSBFVlBfRl9BRVNfVDRfWFRTX0lOSVRfS0VZICAgICAgICAgICAgICAg ICAgICAgICAgMjM0CiAgIyBkZWZpbmUgRVZQX0ZfQUVTX1dSQVBfQ0lQSEVSICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDE3MAorLSMgZGVmaW5lIEVWUF9GX0FFU19YVFNfSU5JVF9LRVkgICAg ICAgICAgICAgICAgICAgICAgICAgICAyMDkKICsjIGRlZmluZSBFVlBfRl9BRVNfWFRTX0NJUEhF UiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjI5CiArIyBkZWZpbmUgRVZQX0ZfQUVTX1hU U19JTklUX0tFWSAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzNQogICMgZGVmaW5lIEVWUF9G X0FMR19NT0RVTEVfSU5JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNzcKICAjIGRlZmlu ZSBFVlBfRl9BUklBX0NDTV9JTklUX0tFWSAgICAgICAgICAgICAgICAgICAgICAgICAgMTc1CiAg IyBkZWZpbmUgRVZQX0ZfQVJJQV9HQ01fQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDE5NwotQEAgLTEzMyw2ICsxMzQsNyBAQCBpbnQgRVJSX2xvYWRfRVZQX3N0cmluZ3Modm9pZCk7 CitAQCAtMTQyLDYgKzE0Myw3IEBAIGludCBFUlJfbG9hZF9FVlBfc3RyaW5ncyh2b2lkKTsKICAj IGRlZmluZSBFVlBfUl9DVFJMX09QRVJBVElPTl9OT1RfSU1QTEVNRU5URUQgICAgICAgICAgICAg MTMzCiAgIyBkZWZpbmUgRVZQX1JfREFUQV9OT1RfTVVMVElQTEVfT0ZfQkxPQ0tfTEVOR1RIICAg ICAgICAgIDEzOAogICMgZGVmaW5lIEVWUF9SX0RFQ09ERV9FUlJPUiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxMTQKQEAgLTExMDc4LDcgKzEwODgxLDcgQEAgZGlmZiAtdXAgb3BlbnNz bC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2V2cGVyci5oLmZpcHMgb3BlbnNzbC0xLjEuMWIvaW5j bHVkZS9vcGUKICAjIGRlZmluZSBFVlBfUl9ESUZGRVJFTlRfS0VZX1RZUEVTICAgICAgICAgICAg ICAgICAgICAgICAgMTAxCiAgIyBkZWZpbmUgRVZQX1JfRElGRkVSRU5UX1BBUkFNRVRFUlMgICAg ICAgICAgICAgICAgICAgICAgIDE1MwogICMgZGVmaW5lIEVWUF9SX0VSUk9SX0xPQURJTkdfU0VD VElPTiAgICAgICAgICAgICAgICAgICAgICAxNjUKLUBAIC0xNzUsNiArMTc3LDcgQEAgaW50IEVS Ul9sb2FkX0VWUF9zdHJpbmdzKHZvaWQpOworQEAgLTE4NCw2ICsxODYsNyBAQCBpbnQgRVJSX2xv YWRfRVZQX3N0cmluZ3Modm9pZCk7CiAgIyBkZWZpbmUgRVZQX1JfUFJJVkFURV9LRVlfREVDT0RF X0VSUk9SICAgICAgICAgICAgICAgICAgIDE0NQogICMgZGVmaW5lIEVWUF9SX1BSSVZBVEVfS0VZ X0VOQ09ERV9FUlJPUiAgICAgICAgICAgICAgICAgICAxNDYKICAjIGRlZmluZSBFVlBfUl9QVUJM SUNfS0VZX05PVF9SU0EgICAgICAgICAgICAgICAgICAgICAgICAgMTA2CkBAIC0xMTA4NiwxOCAr MTA4ODksMTkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2V2cGVy ci5oLmZpcHMgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGUKICAjIGRlZmluZSBFVlBfUl9VTktO T1dOX0NJUEhFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYwCiAgIyBkZWZpbmUgRVZQ X1JfVU5LTk9XTl9ESUdFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2MQogICMgZGVm aW5lIEVWUF9SX1VOS05PV05fT1BUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjkK LUBAIC0xOTAsNSArMTkzLDcgQEAgaW50IEVSUl9sb2FkX0VWUF9zdHJpbmdzKHZvaWQpOworQEAg LTE5OSw2ICsyMDIsNyBAQCBpbnQgRVJSX2xvYWRfRVZQX3N0cmluZ3Modm9pZCk7CiAgIyBkZWZp bmUgRVZQX1JfVU5TVVBQT1JURURfU0FMVF9UWVBFICAgICAgICAgICAgICAgICAgICAgIDEyNgog ICMgZGVmaW5lIEVWUF9SX1dSQVBfTU9ERV9OT1RfQUxMT1dFRCAgICAgICAgICAgICAgICAgICAg ICAxNzAKICAjIGRlZmluZSBFVlBfUl9XUk9OR19GSU5BTF9CTE9DS19MRU5HVEggICAgICAgICAg ICAgICAgICAgMTA5CistIyBkZWZpbmUgRVZQX1JfWFRTX0RVUExJQ0FURURfS0VZUyAgICAgICAg ICAgICAgICAgICAgICAgIDE4MwogKyMgZGVmaW5lIEVWUF9SX1hUU19EQVRBX1VOSVRfSVNfVE9P X0xBUkdFICAgICAgICAgICAgICAgICAxOTEKICsjIGRlZmluZSBFVlBfUl9YVFNfRFVQTElDQVRF RF9LRVlTICAgICAgICAgICAgICAgICAgICAgICAgMTkyCiAgCiAgI2VuZGlmCi1kaWZmIC11cCBv cGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZXZwLmguZmlwcyBvcGVuc3NsLTEuMS4xYi9p bmNsdWRlL29wZW5zc2wvZXZwLmgKLS0tLSBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wv ZXZwLmguZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5z c2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9ldnAuaAkyMDE5LTA1LTA2IDE0OjU0OjEzLjIxMzEz NjI4MSArMDIwMAotQEAgLTEzMTksNiArMTMxOSw5IEBAIHZvaWQgRVZQX1BLRVlfYXNuMV9zZXRf c2VjdXJpdHlfYml0cyhFVlAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNz bC9ldnAuaC5maXBzIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9ldnAuaAorLS0tIG9w ZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9ldnAuaC5maXBzCTIwMTktMDktMTAgMTU6MTM6 MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVuc3NsL2V2 cC5oCTIwMTktMDktMTMgMTU6MTM6MTEuMDY2NTI0ODcxICswMjAwCitAQCAtMTMyNCw2ICsxMzI0 LDkgQEAgdm9pZCBFVlBfUEtFWV9hc24xX3NldF9zZWN1cml0eV9iaXRzKEVWUAogICAqLwogICMg ZGVmaW5lIEVWUF9QS0VZX0ZMQUdfU0lHQ1RYX0NVU1RPTSAgICAgNAogIApAQCAtMTExMDcsOSAr MTA5MTEsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZXZwLmgu ZmlwcyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zcwogIGNvbnN0IEVWUF9QS0VZX01FVEhP RCAqRVZQX1BLRVlfbWV0aF9maW5kKGludCB0eXBlKTsKICBFVlBfUEtFWV9NRVRIT0QgKkVWUF9Q S0VZX21ldGhfbmV3KGludCBpZCwgaW50IGZsYWdzKTsKICB2b2lkIEVWUF9QS0VZX21ldGhfZ2V0 MF9pbmZvKGludCAqcHBrZXlfaWQsIGludCAqcGZsYWdzLAotZGlmZiAtdXAgb3BlbnNzbC0xLjEu MWIvaW5jbHVkZS9vcGVuc3NsL2ZpcHMuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3Bl bnNzbC9maXBzLmgKLS0tLSBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZmlwcy5oLmZp cHMJMjAxOS0wNS0wNiAxNjowODo0Ni44MDA1OTgwNzMgKzAyMDAKLSsrKyBvcGVuc3NsLTEuMS4x Yi9pbmNsdWRlL29wZW5zc2wvZmlwcy5oCTIwMTktMDUtMDYgMTY6NDM6MTIuODc0NTQ5ODIxICsw MjAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvZmlwcy5oLmZpcHMg b3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVuc3NsL2ZpcHMuaAorLS0tIG9wZW5zc2wtMS4xLjFk L2luY2x1ZGUvb3BlbnNzbC9maXBzLmguZmlwcwkyMDE5LTA5LTEzIDE1OjEzOjExLjA2NjUyNDg3 MSArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9maXBzLmgJMjAxOS0w OS0xMyAxNToxMzoxMS4wNjY1MjQ4NzEgKzAyMDAKIEBAIC0wLDAgKzEsMTg3IEBACiArLyogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIwMDMgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFs bCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xMTI5OCw5ICsxMTEwMiw5IEBAIGRpZmYgLXVwIG9wZW5z c2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9maXBzLmguZmlwcyBvcGVuc3NsLTEuMS4xYi9pbmNs dWRlL29wZW5zCiArfQogKyMgZW5kaWYKICsjZW5kaWYKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFi L2luY2x1ZGUvb3BlbnNzbC9maXBzX3JhbmQuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUv b3BlbnNzbC9maXBzX3JhbmQuaAotLS0tIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9m aXBzX3JhbmQuaC5maXBzCTIwMTktMDItMjggMTE6MzA6MDYuODIxNzQ1MzkxICswMTAwCi0rKysg b3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2ZpcHNfcmFuZC5oCTIwMTktMDItMjggMTE6 MzA6MDYuODIxNzQ1MzkxICswMTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29w ZW5zc2wvZmlwc19yYW5kLmguZmlwcyBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvZmlw c19yYW5kLmgKKy0tLSBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvZmlwc19yYW5kLmgu ZmlwcwkyMDE5LTA5LTEzIDE1OjEzOjExLjA2NjUyNDg3MSArMDIwMAorKysrIG9wZW5zc2wtMS4x LjFkL2luY2x1ZGUvb3BlbnNzbC9maXBzX3JhbmQuaAkyMDE5LTA5LTEzIDE1OjEzOjExLjA2NjUy NDg3MSArMDIwMAogQEAgLTAsMCArMSwxNDUgQEAKICsvKiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKyAqIENvcHly aWdodCAoYykgMjAwMyBUaGUgT3BlblNTTCBQcm9qZWN0LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K QEAgLTExNDQ3LDkgKzExMjUxLDkgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9v cGVuc3NsL2ZpcHNfcmFuZC5oLmZpcHMgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS8KICsjICBlbmRp ZgogKyMgZW5kaWYKICsjZW5kaWYKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3Bl bnNzbC9vcGVuc3NsY29uZi5oLmluLmZpcHMgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3Ns L29wZW5zc2xjb25mLmguaW4KLS0tLSBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvb3Bl bnNzbGNvbmYuaC5pbi5maXBzCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0r Kysgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLmguaW4JMjAxOS0w Mi0yOCAxMTozMDowNi44MjI3NDUzNzIgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2lu Y2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi5oLmluLmZpcHMgb3BlbnNzbC0xLjEuMWQvaW5jbHVk ZS9vcGVuc3NsL29wZW5zc2xjb25mLmguaW4KKy0tLSBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29w ZW5zc2wvb3BlbnNzbGNvbmYuaC5pbi5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAw ICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLmgu aW4JMjAxOS0wOS0xMyAxNToxMzoxMS4wNjc1MjQ4NTMgKzAyMDAKIEBAIC0xNTAsNiArMTUwLDEx IEBAIGV4dGVybiAiQyIgewogIAogICNkZWZpbmUgUkM0X0lOVCB7LSAkY29uZmlne3JjNF9pbnR9 IC19CkBAIC0xMTQ2MiwxMCArMTEyNjYsMTAgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5j bHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLmguaW4uZmlwcyBvcGVuc3NsLTEuMS4xYi9pbmMKICAj aWZkZWYgIF9fY3BsdXNwbHVzCiAgfQogICNlbmRpZgotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIv aW5jbHVkZS9vcGVuc3NsL3JhbmRlcnIuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3Bl bnNzbC9yYW5kZXJyLmgKLS0tLSBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvcmFuZGVy ci5oLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3Ns LTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvcmFuZGVyci5oCTIwMTktMDItMjggMTE6MzA6MDYuODIy NzQ1MzcyICswMTAwCi1AQCAtMzUsNiArMzUsNyBAQCBpbnQgRVJSX2xvYWRfUkFORF9zdHJpbmdz KHZvaWQpOworZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVuc3NsL3JhbmRlcnIu aC5maXBzIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9yYW5kZXJyLmgKKy0tLSBvcGVu c3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvcmFuZGVyci5oLmZpcHMJMjAxOS0wOS0xMCAxNTox MzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wv cmFuZGVyci5oCTIwMTktMDktMTMgMTU6MTM6MTEuMDY3NTI0ODUzICswMjAwCitAQCAtMzcsNiAr MzcsNyBAQCBpbnQgRVJSX2xvYWRfUkFORF9zdHJpbmdzKHZvaWQpOwogICMgZGVmaW5lIFJBTkRf Rl9SQU5EX0RSQkdfU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDQKICAjIGRlZmlu ZSBSQU5EX0ZfUkFORF9EUkJHX1NFVF9ERUZBVUxUUyAgICAgICAgICAgICAgICAgICAgMTIxCiAg IyBkZWZpbmUgUkFORF9GX1JBTkRfRFJCR19VTklOU1RBTlRJQVRFICAgICAgICAgICAgICAgICAg IDExOApAQCAtMTE0NzMsOSArMTEyNzcsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9pbmNs dWRlL29wZW5zc2wvcmFuZGVyci5oLmZpcHMgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcAogICMg ZGVmaW5lIFJBTkRfRl9SQU5EX0xPQURfRklMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAx MTEKICAjIGRlZmluZSBSQU5EX0ZfUkFORF9QT09MX0FDUVVJUkVfRU5UUk9QWSAgICAgICAgICAg ICAgICAgMTIyCiAgIyBkZWZpbmUgUkFORF9GX1JBTkRfUE9PTF9BREQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDEwMwotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3Ns L3JhbmQuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9yYW5kLmgKLS0tLSBv cGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvcmFuZC5oLmZpcHMJMjAxOS0wMi0yNiAxNTox NTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wv cmFuZC5oCTIwMTktMDItMjggMTE6MzA6MDYuODIyNzQ1MzcyICswMTAwCitkaWZmIC11cCBvcGVu c3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvcmFuZC5oLmZpcHMgb3BlbnNzbC0xLjEuMWQvaW5j bHVkZS9vcGVuc3NsL3JhbmQuaAorLS0tIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9y YW5kLmguZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5z c2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9yYW5kLmgJMjAxOS0wOS0xMyAxNToxMzoxMS4wNjc1 MjQ4NTMgKzAyMDAKIEBAIC02OSw2ICs2OSwxMSBAQCBERVBSRUNBVEVESU5fMV8xXzAodm9pZCBS QU5EX3NjcmVlbih2b2lkCiAgREVQUkVDQVRFRElOXzFfMV8wKGludCBSQU5EX2V2ZW50KFVJTlQs IFdQQVJBTSwgTFBBUkFNKSkKICAjIGVuZGlmCkBAIC0xMTQ4OCwxMCArMTEyOTIsMTAgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL3JhbmQuaC5maXBzIG9wZW5zc2wt MS4xLjFiL2luY2x1ZGUvb3BlbnMKICAKICAjaWZkZWYgIF9fY3BsdXNwbHVzCiAgfQotZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL3JzYWVyci5oLmZpcHMgb3BlbnNzbC0x LjEuMWIvaW5jbHVkZS9vcGVuc3NsL3JzYWVyci5oCi0tLS0gb3BlbnNzbC0xLjEuMWIvaW5jbHVk ZS9vcGVuc3NsL3JzYWVyci5oLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvcnNhZXJyLmgJMjAxOS0wMi0y OCAxMTozMDowNi44MjI3NDUzNzIgKzAxMDAKLUBAIC0yMSw2ICsyMSw3IEBAIGludCBFUlJfbG9h ZF9SU0Ffc3RyaW5ncyh2b2lkKTsKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3Bl bnNzbC9yc2FlcnIuaC5maXBzIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9yc2FlcnIu aAorLS0tIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9yc2FlcnIuaC5maXBzCTIwMTkt MDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvaW5jbHVk ZS9vcGVuc3NsL3JzYWVyci5oCTIwMTktMDktMTMgMTU6MTM6MTEuMDY3NTI0ODUzICswMjAwCitA QCAtMjUsNiArMjUsNyBAQCBpbnQgRVJSX2xvYWRfUlNBX3N0cmluZ3Modm9pZCk7CiAgICovCiAg IyBkZWZpbmUgUlNBX0ZfQ0hFQ0tfUEFERElOR19NRCAgICAgICAgICAgICAgICAgICAgICAgICAg IDE0MAogICMgZGVmaW5lIFJTQV9GX0VOQ09ERV9QS0NTMSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxNDYKQEAgLTExNDk5LDcgKzExMzAzLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEu MWIvaW5jbHVkZS9vcGVuc3NsL3JzYWVyci5oLmZpcHMgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9v cGUKICAjIGRlZmluZSBSU0FfRl9JTlRfUlNBX1ZFUklGWSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMTQ1CiAgIyBkZWZpbmUgUlNBX0ZfT0xEX1JTQV9QUklWX0RFQ09ERSAgICAgICAgICAg ICAgICAgICAgICAgIDE0NwogICMgZGVmaW5lIFJTQV9GX1BLRVlfUFNTX0lOSVQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAxNjUKLUBAIC0zNSw2ICszNiw4IEBAIGludCBFUlJfbG9hZF9S U0Ffc3RyaW5ncyh2b2lkKTsKK0BAIC0zOSw2ICs0MCw4IEBAIGludCBFUlJfbG9hZF9SU0Ffc3Ry aW5ncyh2b2lkKTsKICAjIGRlZmluZSBSU0FfRl9SU0FfQ0hFQ0tfS0VZX0VYICAgICAgICAgICAg ICAgICAgICAgICAgICAgMTYwCiAgIyBkZWZpbmUgUlNBX0ZfUlNBX0NNU19ERUNSWVBUICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDE1OQogICMgZGVmaW5lIFJTQV9GX1JTQV9DTVNfVkVSSUZZ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTgKQEAgLTExNTA4LDcgKzExMzEyLDcgQEAg ZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL3JzYWVyci5oLmZpcHMgb3Bl bnNzbC0xLjEuMWIvaW5jbHVkZS9vcGUKICAjIGRlZmluZSBSU0FfRl9SU0FfSVRFTV9WRVJJRlkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQ4CiAgIyBkZWZpbmUgUlNBX0ZfUlNBX01FVEhf RFVQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2MQogICMgZGVmaW5lIFJTQV9GX1JT QV9NRVRIX05FVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjIKLUBAIC03MiwxMCAr NzUsMTYgQEAgaW50IEVSUl9sb2FkX1JTQV9zdHJpbmdzKHZvaWQpOworQEAgLTc2LDEwICs3OSwx NiBAQCBpbnQgRVJSX2xvYWRfUlNBX3N0cmluZ3Modm9pZCk7CiAgIyBkZWZpbmUgUlNBX0ZfUlNB X1BSSU5UX0ZQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExNgogICMgZGVmaW5lIFJT QV9GX1JTQV9QUklWX0RFQ09ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTAKICAjIGRl ZmluZSBSU0FfRl9SU0FfUFJJVl9FTkNPREUgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTM4 CkBAIC0xMTUyNSw3ICsxMTMyOSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUv b3BlbnNzbC9yc2FlcnIuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlCiAgIyBkZWZp bmUgUlNBX0ZfUlNBX1NJR04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExNwog ICMgZGVmaW5lIFJTQV9GX1JTQV9TSUdOX0FTTjFfT0NURVRfU1RSSU5HICAgICAgICAgICAgICAg ICAxMTgKICAjIGRlZmluZSBSU0FfRl9SU0FfVkVSSUZZICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMTE5Ci1AQCAtMTMyLDEwICsxNDEsMTIgQEAgaW50IEVSUl9sb2FkX1JTQV9zdHJp bmdzKHZvaWQpOworQEAgLTEzNywxMCArMTQ2LDEyIEBAIGludCBFUlJfbG9hZF9SU0Ffc3RyaW5n cyh2b2lkKTsKICAjIGRlZmluZSBSU0FfUl9NUF9FWFBPTkVOVF9OT1RfQ09OR1JVRU5UX1RPX0Qg ICAgICAgICAgICAgMTY5CiAgIyBkZWZpbmUgUlNBX1JfTVBfUl9OT1RfUFJJTUUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDE3MAogICMgZGVmaW5lIFJTQV9SX05PX1BVQkxJQ19FWFBPTkVO VCAgICAgICAgICAgICAgICAgICAgICAgICAxNDAKQEAgLTExNTM4LDcgKzExMzQyLDcgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL3JzYWVyci5oLmZpcHMgb3BlbnNz bC0xLjEuMWIvaW5jbHVkZS9vcGUKICAjIGRlZmluZSBSU0FfUl9PUEVSQVRJT05fTk9UX1NVUFBP UlRFRF9GT1JfVEhJU19LRVlUWVBFICAgMTQ4CiAgIyBkZWZpbmUgUlNBX1JfUEFERElOR19DSEVD S19GQUlMRUQgICAgICAgICAgICAgICAgICAgICAgIDExNAogICMgZGVmaW5lIFJTQV9SX1BLQ1Nf REVDT0RJTkdfRVJST1IgICAgICAgICAgICAgICAgICAgICAgICAxNTkKLUBAIC0xNTUsNiArMTY2 LDcgQEAgaW50IEVSUl9sb2FkX1JTQV9zdHJpbmdzKHZvaWQpOworQEAgLTE2MCw2ICsxNzEsNyBA QCBpbnQgRVJSX2xvYWRfUlNBX3N0cmluZ3Modm9pZCk7CiAgIyBkZWZpbmUgUlNBX1JfVU5TVVBQ T1JURURfTEFCRUxfU09VUkNFICAgICAgICAgICAgICAgICAgIDE2MwogICMgZGVmaW5lIFJTQV9S X1VOU1VQUE9SVEVEX01BU0tfQUxHT1JJVEhNICAgICAgICAgICAgICAgICAxNTMKICAjIGRlZmlu ZSBSU0FfUl9VTlNVUFBPUlRFRF9NQVNLX1BBUkFNRVRFUiAgICAgICAgICAgICAgICAgMTU0CkBA IC0xMTU0Niw5ICsxMTM1MCw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3Bl bnNzbC9yc2FlcnIuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlCiAgIyBkZWZpbmUg UlNBX1JfVU5TVVBQT1JURURfU0lHTkFUVVJFX1RZUEUgICAgICAgICAgICAgICAgIDE1NQogICMg ZGVmaW5lIFJTQV9SX1ZBTFVFX01JU1NJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx NDcKICAjIGRlZmluZSBSU0FfUl9XUk9OR19TSUdOQVRVUkVfTEVOR1RIICAgICAgICAgICAgICAg ICAgICAgMTE5Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9zc2wvc3NsX2NpcGguYy5maXBzIG9w ZW5zc2wtMS4xLjFiL3NzbC9zc2xfY2lwaC5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvc3NsL3NzbF9j aXBoLmMuZmlwcwkyMDE5LTAyLTI4IDExOjMwOjA2Ljc3Njc0NjIyOCArMDEwMAotKysrIG9wZW5z c2wtMS4xLjFiL3NzbC9zc2xfY2lwaC5jCTIwMTktMDItMjggMTE6MzA6MDYuODIyNzQ1MzcyICsw MTAwCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9zc2wvc3NsX2NpcGguYy5maXBzIG9wZW5zc2wt MS4xLjFkL3NzbC9zc2xfY2lwaC5jCistLS0gb3BlbnNzbC0xLjEuMWQvc3NsL3NzbF9jaXBoLmMu ZmlwcwkyMDE5LTA5LTEzIDE1OjEzOjExLjAxOTUyNTY5MiArMDIwMAorKysrIG9wZW5zc2wtMS4x LjFkL3NzbC9zc2xfY2lwaC5jCTIwMTktMDktMTMgMTU6MTM6MTEuMDY4NTI0ODM2ICswMjAwCiBA QCAtMzg3LDcgKzM4Nyw3IEBAIGludCBzc2xfbG9hZF9jaXBoZXJzKHZvaWQpCiAgICAgICAgICB9 CiAgICAgIH0KQEAgLTExNTc3LDcgKzExMzgxLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIv c3NsL3NzbF9jaXBoLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9zc2wvc3NsX2NpcGguYwogICAgICAg ICAgaWYgKChjLT5hbGdvcml0aG1fbWtleSAmIGRpc2FibGVkX21rZXkpIHx8CiAgICAgICAgICAg ICAgKGMtPmFsZ29yaXRobV9hdXRoICYgZGlzYWJsZWRfYXV0aCkgfHwKICAgICAgICAgICAgICAo Yy0+YWxnb3JpdGhtX2VuYyAmIGRpc2FibGVkX2VuYykgfHwKLUBAIC0xNjcwLDcgKzE2NzUsOCBA QCBTVEFDS19PRihTU0xfQ0lQSEVSKSAqc3NsX2NyZWF0ZV9jaXBoZXJfCitAQCAtMTY3MSw3ICsx Njc2LDggQEAgU1RBQ0tfT0YoU1NMX0NJUEhFUikgKnNzbF9jcmVhdGVfY2lwaGVyXwogICAgICAg KiB0byB0aGUgcmVzdWx0aW5nIHByZWNlZGVuY2UgdG8gdGhlIFNUQUNLX09GKFNTTF9DSVBIRVIp LgogICAgICAgKi8KICAgICAgZm9yIChjdXJyID0gaGVhZDsgY3VyciAhPSBOVUxMOyBjdXJyID0g Y3Vyci0+bmV4dCkgewpAQCAtMTE1ODcsOSArMTEzOTEsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEu MS4xYi9zc2wvc3NsX2NpcGguYy5maXBzIG9wZW5zc2wtMS4xLjFiL3NzbC9zc2xfY2lwaC5jCiAg ICAgICAgICAgICAgaWYgKCFza19TU0xfQ0lQSEVSX3B1c2goY2lwaGVyc3RhY2ssIGN1cnItPmNp cGhlcikpIHsKICAgICAgICAgICAgICAgICAgT1BFTlNTTF9mcmVlKGNvX2xpc3QpOwogICAgICAg ICAgICAgICAgICBza19TU0xfQ0lQSEVSX2ZyZWUoY2lwaGVyc3RhY2spOwotZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWIvc3NsL3NzbF9pbml0LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9zc2wvc3NsX2lu aXQuYwotLS0tIG9wZW5zc2wtMS4xLjFiL3NzbC9zc2xfaW5pdC5jLmZpcHMJMjAxOS0wMi0yNiAx NToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9zc2wvc3NsX2luaXQu YwkyMDE5LTAyLTI4IDExOjMwOjA2LjgyMzc0NTM1NCArMDEwMAorZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWQvc3NsL3NzbF9pbml0LmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9zc2wvc3NsX2luaXQuYwor LS0tIG9wZW5zc2wtMS4xLjFkL3NzbC9zc2xfaW5pdC5jLmZpcHMJMjAxOS0wOS0xMCAxNToxMzow Ny4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9zc2wvc3NsX2luaXQuYwkyMDE5 LTA5LTEzIDE1OjEzOjExLjA2ODUyNDgzNiArMDIwMAogQEAgLTI3LDYgKzI3LDEwIEBAIERFRklO RV9SVU5fT05DRV9TVEFUSUMob3NzbF9pbml0X3NzbF9iYXMKICAgICAgZnByaW50ZihzdGRlcnIs ICJPUEVOU1NMX0lOSVQ6IG9zc2xfaW5pdF9zc2xfYmFzZTogIgogICAgICAgICAgICAgICJBZGRp bmcgU1NMIGNpcGhlcnMgYW5kIGRpZ2VzdHNcbiIpOwpAQCAtMTE2MzMsMTAgKzExNDM3LDEwIEBA IGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3NzbC9zc2xfaW5pdC5jLmZpcHMgb3BlbnNzbC0xLjEu MWIvc3NsL3NzbF9pbml0LmMKICAjaWZuZGVmIE9QRU5TU0xfTk9fQ09NUAogICMgaWZkZWYgT1BF TlNTTF9JTklUX0RFQlVHCiAgICAgIGZwcmludGYoc3RkZXJyLCAiT1BFTlNTTF9JTklUOiBvc3Ns X2luaXRfc3NsX2Jhc2U6ICIKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3NzbC9zc2xfbGliLmMu ZmlwcyBvcGVuc3NsLTEuMS4xYi9zc2wvc3NsX2xpYi5jCi0tLS0gb3BlbnNzbC0xLjEuMWIvc3Ns L3NzbF9saWIuYy5maXBzCTIwMTktMDItMjggMTE6MzA6MDYuNzc2NzQ2MjI4ICswMTAwCi0rKysg b3BlbnNzbC0xLjEuMWIvc3NsL3NzbF9saWIuYwkyMDE5LTAyLTI4IDExOjMwOjA2LjgyMzc0NTM1 NCArMDEwMAotQEAgLTI5MDgsNiArMjkwOCwxMSBAQCBTU0xfQ1RYICpTU0xfQ1RYX25ldyhjb25z dCBTU0xfTUVUSE9EICptCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9zc2wvc3NsX2xpYi5jLmZp cHMgb3BlbnNzbC0xLjEuMWQvc3NsL3NzbF9saWIuYworLS0tIG9wZW5zc2wtMS4xLjFkL3NzbC9z c2xfbGliLmMuZmlwcwkyMDE5LTA5LTEzIDE1OjEzOjExLjAxOTUyNTY5MiArMDIwMAorKysrIG9w ZW5zc2wtMS4xLjFkL3NzbC9zc2xfbGliLmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNjk1MjQ4MTgg KzAyMDAKK0BAIC0yOTE2LDYgKzI5MTYsMTEgQEAgU1NMX0NUWCAqU1NMX0NUWF9uZXcoY29uc3Qg U1NMX01FVEhPRCAqbQogICAgICBpZiAoIU9QRU5TU0xfaW5pdF9zc2woT1BFTlNTTF9JTklUX0xP QURfU1NMX1NUUklOR1MsIE5VTEwpKQogICAgICAgICAgcmV0dXJuIE5VTEw7CiAgCkBAIC0xMTY0 OCw3ICsxMTQ1Miw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3NzbC9zc2xfbGliLmMuZmlw cyBvcGVuc3NsLTEuMS4xYi9zc2wvc3NsX2xpYi5jCiAgICAgIGlmIChTU0xfZ2V0X2V4X2RhdGFf WDUwOV9TVE9SRV9DVFhfaWR4KCkgPCAwKSB7CiAgICAgICAgICBTU0xlcnIoU1NMX0ZfU1NMX0NU WF9ORVcsIFNTTF9SX1g1MDlfVkVSSUZJQ0FUSU9OX1NFVFVQX1BST0JMRU1TKTsKICAgICAgICAg IGdvdG8gZXJyOwotQEAgLTI5NjQsMTMgKzI5NjksMTcgQEAgU1NMX0NUWCAqU1NMX0NUWF9uZXco Y29uc3QgU1NMX01FVEhPRCAqbQorQEAgLTI5NzIsMTMgKzI5NzcsMTcgQEAgU1NMX0NUWCAqU1NM X0NUWF9uZXcoY29uc3QgU1NMX01FVEhPRCAqbQogICAgICBpZiAocmV0LT5wYXJhbSA9PSBOVUxM KQogICAgICAgICAgZ290byBlcnI7CiAgCkBAIC0xMTY3MywxMCArMTE0NzcsMTAgQEAgZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWIvc3NsL3NzbF9saWIuYy5maXBzIG9wZW5zc2wtMS4xLjFiL3NzbC9z c2xfbGliLmMKICAgICAgfQogIAogICAgICBpZiAoKHJldC0+Y2FfbmFtZXMgPSBza19YNTA5X05B TUVfbmV3X251bGwoKSkgPT0gTlVMTCkKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFjL3NzbC9zc2xf bG9jbC5oLmZpcHMgb3BlbnNzbC0xLjEuMWMvc3NsL3NzbF9sb2NsLmgKLS0tLSBvcGVuc3NsLTEu MS4xYy9zc2wvc3NsX2xvY2wuaC5maXBzCTIwMTktMDYtMDMgMTY6NDQ6NTguOTYzNTYwMTAxICsw MjAwCi0rKysgb3BlbnNzbC0xLjEuMWMvc3NsL3NzbF9sb2NsLmgJMjAxOS0wNi0yNCAxNDo0Mzox OS41NDczNTMwNzYgKzAyMDAKLUBAIC0xNTA3LDYgKzE1MDcsNyBAQCB0eXBlZGVmIHN0cnVjdCB0 bHNfZ3JvdXBfaW5mb19zdCB7CitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9zc2wvc3NsX2xvY2wu aC5maXBzIG9wZW5zc2wtMS4xLjFkL3NzbC9zc2xfbG9jbC5oCistLS0gb3BlbnNzbC0xLjEuMWQv c3NsL3NzbF9sb2NsLmguZmlwcwkyMDE5LTA5LTEzIDE1OjEzOjEwLjkwMTUyNzc1NSArMDIwMAor KysrIG9wZW5zc2wtMS4xLjFkL3NzbC9zc2xfbG9jbC5oCTIwMTktMDktMTMgMTU6MTM6MTEuMDY5 NTI0ODE4ICswMjAwCitAQCAtMTUxNiw2ICsxNTE2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgdGxzX2dy b3VwX2luZm9fc3QgewogICMgZGVmaW5lIFRMU19DVVJWRV9QUklNRSAgICAgICAgIDB4MAogICMg ZGVmaW5lIFRMU19DVVJWRV9DSEFSMiAgICAgICAgIDB4MQogICMgZGVmaW5lIFRMU19DVVJWRV9D VVNUT00gICAgICAgIDB4MgpAQCAtMTE2ODQsMTAgKzExNDg4LDEwIEBAIGRpZmYgLXVwIG9wZW5z c2wtMS4xLjFjL3NzbC9zc2xfbG9jbC5oLmZpcHMgb3BlbnNzbC0xLjEuMWMvc3NsL3NzbF9sb2Ns LmgKICAKICB0eXBlZGVmIHN0cnVjdCBjZXJ0X3BrZXlfc3QgQ0VSVF9QS0VZOwogIAotZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWMvc3NsL3QxX2xpYi5jLmZpcHMgb3BlbnNzbC0xLjEuMWMvc3NsL3Qx X2xpYi5jCi0tLS0gb3BlbnNzbC0xLjEuMWMvc3NsL3QxX2xpYi5jLmZpcHMJMjAxOS0wNS0yOCAx NToxMjoyMS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBvcGVuc3NsLTEuMS4xYy9zc2wvdDFfbGliLmMJ MjAxOS0wNi0yNCAxNDo0OTowMC42Mzg1NzYyMzUgKzAyMDAKLUBAIC0xNTYsMTEgKzE1NiwxMSBA QCBzdGF0aWMgY29uc3QgVExTX0dST1VQX0lORk8gbmlkX2xpc3RbXSA9CitkaWZmIC11cCBvcGVu c3NsLTEuMS4xZC9zc2wvdDFfbGliLmMuZmlwcyBvcGVuc3NsLTEuMS4xZC9zc2wvdDFfbGliLmMK Ky0tLSBvcGVuc3NsLTEuMS4xZC9zc2wvdDFfbGliLmMuZmlwcwkyMDE5LTA5LTEwIDE1OjEzOjA3 LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL3NzbC90MV9saWIuYwkyMDE5LTA5 LTEzIDE1OjEzOjExLjA2OTUyNDgxOCArMDIwMAorQEAgLTE1OCwxMSArMTU4LDExIEBAIHN0YXRp YyBjb25zdCBUTFNfR1JPVVBfSU5GTyBuaWRfbGlzdFtdID0KICAgICAge05JRF9zZWNwMTkyazEs IDgwLCBUTFNfQ1VSVkVfUFJJTUV9LCAvKiBzZWNwMTkyazEgKDE4KSAqLwogICAgICB7TklEX1g5 XzYyX3ByaW1lMTkydjEsIDgwLCBUTFNfQ1VSVkVfUFJJTUV9LCAvKiBzZWNwMTkycjEgKDE5KSAq LwogICAgICB7TklEX3NlY3AyMjRrMSwgMTEyLCBUTFNfQ1VSVkVfUFJJTUV9LCAvKiBzZWNwMjI0 azEgKDIwKSAqLwpAQCAtMTE3MDMsNyArMTE1MDcsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4x Yy9zc2wvdDFfbGliLmMuZmlwcyBvcGVuc3NsLTEuMS4xYy9zc2wvdDFfbGliLmMKICAgICAge05J RF9icmFpbnBvb2xQMjU2cjEsIDEyOCwgVExTX0NVUlZFX1BSSU1FfSwgLyogYnJhaW5wb29sUDI1 NnIxICgyNikgKi8KICAgICAge05JRF9icmFpbnBvb2xQMzg0cjEsIDE5MiwgVExTX0NVUlZFX1BS SU1FfSwgLyogYnJhaW5wb29sUDM4NHIxICgyNykgKi8KICAgICAge05JRF9icmFpbnBvb2xQNTEy cjEsIDI1NiwgVExTX0NVUlZFX1BSSU1FfSwgLyogYnJhaW5wb29sNTEycjEgKDI4KSAqLwotQEAg LTI1NSw2ICsyNTUsOCBAQCBpbnQgdGxzX2N1cnZlX2FsbG93ZWQoU1NMICpzLCB1aW50MTZfdCBj CitAQCAtMjU3LDYgKzI1Nyw4IEBAIGludCB0bHNfY3VydmVfYWxsb3dlZChTU0wgKnMsIHVpbnQx Nl90IGMKICAgICAgaWYgKGNpbmZvLT5mbGFncyAmIFRMU19DVVJWRV9DSEFSMikKICAgICAgICAg IHJldHVybiAwOwogICMgZW5kaWYKQEAgLTExNzEyLDkgKzExNTE2LDkgQEAgZGlmZiAtdXAgb3Bl bnNzbC0xLjEuMWMvc3NsL3QxX2xpYi5jLmZpcHMgb3BlbnNzbC0xLjEuMWMvc3NsL3QxX2xpYi5j CiAgICAgIGN0bXBbMF0gPSBjdXJ2ZSA+PiA4OwogICAgICBjdG1wWzFdID0gY3VydmUgJiAweGZm OwogICAgICByZXR1cm4gc3NsX3NlY3VyaXR5KHMsIG9wLCBjaW5mby0+c2VjYml0cywgY2luZm8t Pm5pZCwgKHZvaWQgKiljdG1wKTsKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3Rlc3QvZHNhdGVz dC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvdGVzdC9kc2F0ZXN0LmMKLS0tLSBvcGVuc3NsLTEuMS4x Yi90ZXN0L2RzYXRlc3QuYy5maXBzCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAw Ci0rKysgb3BlbnNzbC0xLjEuMWIvdGVzdC9kc2F0ZXN0LmMJMjAxOS0wMi0yOCAxMTozMDowNi44 MjQ3NDUzMzUgKzAxMDAKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL3Rlc3QvZHNhdGVzdC5jLmZp cHMgb3BlbnNzbC0xLjEuMWQvdGVzdC9kc2F0ZXN0LmMKKy0tLSBvcGVuc3NsLTEuMS4xZC90ZXN0 L2RzYXRlc3QuYy5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysg b3BlbnNzbC0xLjEuMWQvdGVzdC9kc2F0ZXN0LmMJMjAxOS0wOS0xMyAxNToxMzoxMS4wNzA1MjQ4 MDEgKzAyMDAKIEBAIC0yNCw0MSArMjQsNDIgQEAKICAjaWZuZGVmIE9QRU5TU0xfTk9fRFNBCiAg c3RhdGljIGludCBkc2FfY2IoaW50IHAsIGludCBuLCBCTl9HRU5DQiAqYXJnKTsKQEAgLTExNzk3 LDEwICsxMTYwMSwxMCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi90ZXN0L2RzYXRlc3QuYy5m aXBzIG9wZW5zc2wtMS4xLjFiL3Rlc3QvZHNhdGVzdC5jCiAgICAgICAgICBnb3RvIGVuZDsKICAg ICAgaWYgKCFURVNUX2ludF9lcShoLCAyKSkKICAgICAgICAgIGdvdG8gZW5kOwotZGlmZiAtdXAg b3BlbnNzbC0xLjEuMWIvdGVzdC9yZWNpcGVzLzMwLXRlc3RfZXZwX2RhdGEvZXZwY2lwaC50eHQu ZmlwcyBvcGVuc3NsLTEuMS4xYi90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnBfZGF0YS9ldnBjaXBo LnR4dAotLS0tIG9wZW5zc2wtMS4xLjFiL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9kYXRhL2V2 cGNpcGgudHh0LmZpcHMJMjAxOS0wNS0wNiAxNjowODo0Ni44NTc1OTcwODUgKzAyMDAKLSsrKyBv cGVuc3NsLTEuMS4xYi90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnBfZGF0YS9ldnBjaXBoLnR4dAky MDE5LTA1LTA2IDE2OjM1OjM3LjkxNzU2MzI5MiArMDIwMAotQEAgLTExODQsNiArMTE4NCw3IEBA IEtleSA9IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2RpZmYgLXVwIG9wZW5z c2wtMS4xLjFkL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9kYXRhL2V2cGNpcGgudHh0LmZpcHMg b3BlbnNzbC0xLjEuMWQvdGVzdC9yZWNpcGVzLzMwLXRlc3RfZXZwX2RhdGEvZXZwY2lwaC50eHQK Ky0tLSBvcGVuc3NsLTEuMS4xZC90ZXN0L3JlY2lwZXMvMzAtdGVzdF9ldnBfZGF0YS9ldnBjaXBo LnR4dC5maXBzCTIwMTktMDktMTAgMTU6MTM6MDcuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNz bC0xLjEuMWQvdGVzdC9yZWNpcGVzLzMwLXRlc3RfZXZwX2RhdGEvZXZwY2lwaC50eHQJMjAxOS0w OS0xMyAxNToxMzoxMS4wNzA1MjQ4MDEgKzAyMDAKK0BAIC0xMjA2LDYgKzEyMDYsNyBAQCBLZXkg PSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgSVYgPSAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMAogIFBsYWludGV4dCA9IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKICBDaXBoZXJ0ZXh0ID0g OTE3Y2Y2OWViZDY4YjJlYzliOWZlOWEzZWFkZGE2OTJjZDQzZDJmNTk1OThlZDg1OGMwMmMyNjUy ZmJmOTIyZQpAQCAtMTE4MDgsMTMgKzExNjEyLDEzIEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFi L3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9kYXRhL2V2cGNpcGgudHh0LmZpcHMgb3BlbnNzbC0x CiAgCiAgQ2lwaGVyID0gYWVzLTEyOC14dHMKICBLZXkgPSAxMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyCi1kaWZmIC11cCBvcGVu c3NsLTEuMS4xYy91dGlsL2xpYmNyeXB0by5udW0uZmlwcyBvcGVuc3NsLTEuMS4xYy91dGlsL2xp YmNyeXB0by5udW0KLS0tLSBvcGVuc3NsLTEuMS4xYy91dGlsL2xpYmNyeXB0by5udW0uZmlwcwky MDE5LTA1LTI5IDE1OjQ2OjE5LjE1NDI2MDgyNCArMDIwMAotKysrIG9wZW5zc2wtMS4xLjFjL3V0 aWwvbGliY3J5cHRvLm51bQkyMDE5LTA1LTI5IDE1OjUwOjEwLjM5MDE5MTgwNSArMDIwMAotQEAg LTQ1ODAsMyArNDU4MCwzOCBAQCBFVlBfUEtFWV9tZXRoX2dldF9kaWdlc3RfY3VzdG9tCi0gT1BF TlNTTF9JTklUX3NldF9jb25maWdfZmlsZW5hbWUgICAgICAgIDQ1MzQJMV8xXzFiCUVYSVNUOjpG VU5DVElPTjpTVERJTwotIE9QRU5TU0xfSU5JVF9zZXRfY29uZmlnX2ZpbGVfZmxhZ3MgICAgICA0 NTM1CTFfMV8xYglFWElTVDo6RlVOQ1RJT046U1RESU8KK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFk L3V0aWwvbGliY3J5cHRvLm51bS5maXBzIG9wZW5zc2wtMS4xLjFkL3V0aWwvbGliY3J5cHRvLm51 bQorLS0tIG9wZW5zc2wtMS4xLjFkL3V0aWwvbGliY3J5cHRvLm51bS5maXBzCTIwMTktMDktMTMg MTU6MTM6MTEuMDcxNTI0NzgzICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvdXRpbC9saWJjcnlw dG8ubnVtCTIwMTktMDktMTMgMTU6MTU6MzkuODk1OTIzNDgxICswMjAwCitAQCAtNDU4MiwzICs0 NTgyLDM4IEBAIE9QRU5TU0xfSU5JVF9zZXRfY29uZmlnX2ZpbGVfZmxhZ3MKICBFVlBfUEtFWV9n ZXQwX2VuZ2luZSAgICAgICAgICAgICAgICAgICAgNDUzNgkxXzFfMWMJRVhJU1Q6OkZVTkNUSU9O OkVOR0lORQorIFg1MDlfZ2V0MF9hdXRob3JpdHlfc2VyaWFsICAgICAgICAgICAgICA0NTM3CTFf MV8xZAlFWElTVDo6RlVOQ1RJT046CisgWDUwOV9nZXQwX2F1dGhvcml0eV9pc3N1ZXIgICAgICAg ICAgICAgIDQ1MzgJMV8xXzFkCUVYSVNUOjpGVU5DVElPTjoKICtGSVBTX2RyYmdfcmVzZWVkICAg ICAgICAgICAgICAgICAgICAgICAgNjM0OAkxXzFfMGcJRVhJU1Q6OkZVTkNUSU9OOgogK0ZJUFNf c2VsZnRlc3RfY2hlY2sgICAgICAgICAgICAgICAgICAgICA2MzQ5CTFfMV8wZwlFWElTVDo6RlVO Q1RJT046CiArRklQU19yYW5kX3NldF9tZXRob2QgICAgICAgICAgICAgICAgICAgIDYzNTAJMV8x XzBnCUVYSVNUOjpGVU5DVElPTjoKCmRpZmYgLS1naXQgYS9vcGVuc3NsLTEuMS4xLW5vLWJyYWlu cG9vbC5wYXRjaCBiL29wZW5zc2wtMS4xLjEtbm8tYnJhaW5wb29sLnBhdGNoCmluZGV4IDJhYjZm YzkuLjkwYzg3YTggMTAwNjQ0Ci0tLSBhL29wZW5zc2wtMS4xLjEtbm8tYnJhaW5wb29sLnBhdGNo CisrKyBiL29wZW5zc2wtMS4xLjEtbm8tYnJhaW5wb29sLnBhdGNoCkBAIC0xLDE3ICsxLDE2IEBA Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYi90ZXN0L3NzbC10ZXN0cy8yMC1jZXJ0LXNlbGVjdC5j b25mLmluLm5vLWJyYWlucG9vbCBvcGVuc3NsLTEuMS4xYi90ZXN0L3NzbC10ZXN0cy8yMC1jZXJ0 LXNlbGVjdC5jb25mLmluCi0tLS0gb3BlbnNzbC0xLjEuMWIvdGVzdC9zc2wtdGVzdHMvMjAtY2Vy dC1zZWxlY3QuY29uZi5pbi5uby1icmFpbnBvb2wJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi90ZXN0L3NzbC10ZXN0cy8yMC1jZXJ0LXNlbGVj dC5jb25mLmluCTIwMTktMDUtMDcgMTE6NTI6MzUuODg1NTk3OTM0ICswMjAwCi1AQCAtMTQxLDIy ICsxNDEsMjMgQEAgb3VyIEB0ZXN0cyA9ICgKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL3Rlc3Qv c3NsLXRlc3RzLzIwLWNlcnQtc2VsZWN0LmNvbmYuaW4ubm8tYnJhaW5wb29sIG9wZW5zc2wtMS4x LjFkL3Rlc3Qvc3NsLXRlc3RzLzIwLWNlcnQtc2VsZWN0LmNvbmYuaW4KKy0tLSBvcGVuc3NsLTEu MS4xZC90ZXN0L3NzbC10ZXN0cy8yMC1jZXJ0LXNlbGVjdC5jb25mLmluLm5vLWJyYWlucG9vbAky MDE5LTA5LTEwIDE1OjEzOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL3Rl c3Qvc3NsLXRlc3RzLzIwLWNlcnQtc2VsZWN0LmNvbmYuaW4JMjAxOS0wOS0xMyAxNToxMTowNy4z NTg2ODcxNjkgKzAyMDAKK0BAIC0xNDcsMjIgKzE0NywyMiBAQCBvdXIgQHRlc3RzID0gKAogICAg ICB7CiAgICAgICAgICBuYW1lID0+ICJFQ0RTQSB3aXRoIGJyYWlucG9vbCIsCiAgICAgICAgICBz ZXJ2ZXIgPT4gIHsKIC0gICAgICAgICAgICAiQ2VydGlmaWNhdGUiID0+IHRlc3RfcGVtKCJzZXJ2 ZXItZWNkc2EtYnJhaW5wb29sUDI1NnIxLWNlcnQucGVtIiksCiAtICAgICAgICAgICAgIlByaXZh dGVLZXkiID0+IHRlc3RfcGVtKCJzZXJ2ZXItZWNkc2EtYnJhaW5wb29sUDI1NnIxLWtleS5wZW0i KSwKIC0gICAgICAgICAgICAiR3JvdXBzIiA9PiAiYnJhaW5wb29sUDI1NnIxIiwKLSsjICAgICAg ICAgICAgIkNlcnRpZmljYXRlIiA9PiB0ZXN0X3BlbSgic2VydmVyLWVjZHNhLWJyYWlucG9vbFAy NTZyMS1jZXJ0LnBlbSIpLAotKyMgICAgICAgICAgICAiUHJpdmF0ZUtleSIgPT4gdGVzdF9wZW0o InNlcnZlci1lY2RzYS1icmFpbnBvb2xQMjU2cjEta2V5LnBlbSIpLAorKyAgICAgICAgICAgICJD ZXJ0aWZpY2F0ZSIgPT4gdGVzdF9wZW0oInNlcnZlci1lY2RzYS1jZXJ0LnBlbSIpLAorKyAgICAg ICAgICAgICJQcml2YXRlS2V5IiA9PiB0ZXN0X3BlbSgic2VydmVyLWVjZHNhLWtleS5wZW0iKSwK ICsjICAgICAgICAgICAgIkdyb3VwcyIgPT4gImJyYWlucG9vbFAyNTZyMSIsCi0rICAgICAgICAg ICAgIkNpcGhlclN0cmluZyIgPT4gImFOVUxMIiwKICAgICAgICAgIH0sCiAgICAgICAgICBjbGll bnQgPT4gewogICAgICAgICAgICAgICNXZSBkb24ndCByZXN0cmljdCB0aGlzIHRvIFRMU3YxLjIs IGFsdGhvdWdoIHVzZSBvZiBicmFpbnBvb2wKQEAgLTMyLDE3ICszMSwxNiBAQCBkaWZmIC11cCBv cGVuc3NsLTEuMS4xYi90ZXN0L3NzbC10ZXN0cy8yMC1jZXJ0LXNlbGVjdC5jb25mLmluLm5vLWJy YWlucG9vbCBvcGVucwogICAgICAgICAgICAgICJFeHBlY3RlZFJlc3VsdCIgPT4gIlN1Y2Nlc3Mi CiAgICAgICAgICB9LAogICAgICB9LAotQEAgLTc4NywxOCArNzg4LDE5IEBAIG15IEB0ZXN0c190 bHNfMV8zID0gKAorQEAgLTg1MywxOCArODUzLDE4IEBAIG15IEB0ZXN0c190bHNfMV8zID0gKAog ICAgICB7CiAgICAgICAgICBuYW1lID0+ICJUTFMgMS4zIEVDRFNBIHdpdGggYnJhaW5wb29sIiwK ICAgICAgICAgIHNlcnZlciA9PiAgewogLSAgICAgICAgICAgICJDZXJ0aWZpY2F0ZSIgPT4gdGVz dF9wZW0oInNlcnZlci1lY2RzYS1icmFpbnBvb2xQMjU2cjEtY2VydC5wZW0iKSwKIC0gICAgICAg ICAgICAiUHJpdmF0ZUtleSIgPT4gdGVzdF9wZW0oInNlcnZlci1lY2RzYS1icmFpbnBvb2xQMjU2 cjEta2V5LnBlbSIpLAogLSAgICAgICAgICAgICJHcm91cHMiID0+ICJicmFpbnBvb2xQMjU2cjEi LAotKyMgICAgICAgICAgICAiQ2VydGlmaWNhdGUiID0+IHRlc3RfcGVtKCJzZXJ2ZXItZWNkc2Et YnJhaW5wb29sUDI1NnIxLWNlcnQucGVtIiksCi0rIyAgICAgICAgICAgICJQcml2YXRlS2V5IiA9 PiB0ZXN0X3BlbSgic2VydmVyLWVjZHNhLWJyYWlucG9vbFAyNTZyMS1rZXkucGVtIiksCisrICAg ICAgICAgICAgIkNlcnRpZmljYXRlIiA9PiB0ZXN0X3BlbSgic2VydmVyLWVjZHNhLWNlcnQucGVt IiksCisrICAgICAgICAgICAgIlByaXZhdGVLZXkiID0+IHRlc3RfcGVtKCJzZXJ2ZXItZWNkc2Et a2V5LnBlbSIpLAogKyMgICAgICAgICAgICAiR3JvdXBzIiA9PiAiYnJhaW5wb29sUDI1NnIxIiwK LSsgICAgICAgICAgICAgIkNpcGhlclN0cmluZyIgPT4gImFOVUxMIiwKICAgICAgICAgIH0sCiAg ICAgICAgICBjbGllbnQgPT4gewogICAgICAgICAgICAgICJSZXF1ZXN0Q0FGaWxlIiA9PiB0ZXN0 X3BlbSgicm9vdC1jZXJ0LnBlbSIpLApAQCAtNTcsMjAgKzU1LDE5IEBAIGRpZmYgLXVwIG9wZW5z c2wtMS4xLjFiL3Rlc3Qvc3NsLXRlc3RzLzIwLWNlcnQtc2VsZWN0LmNvbmYuaW4ubm8tYnJhaW5w b29sIG9wZW5zCiAgICAgICAgICB9LAogICAgICB9LAogICk7Ci1kaWZmIC11cCBvcGVuc3NsLTEu MS4xYi90ZXN0L3NzbC10ZXN0cy8yMC1jZXJ0LXNlbGVjdC5jb25mLm5vLWJyYWlucG9vbCBvcGVu c3NsLTEuMS4xYi90ZXN0L3NzbC10ZXN0cy8yMC1jZXJ0LXNlbGVjdC5jb25mCi0tLS0gb3BlbnNz bC0xLjEuMWIvdGVzdC9zc2wtdGVzdHMvMjAtY2VydC1zZWxlY3QuY29uZi5uby1icmFpbnBvb2wJ MjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi90 ZXN0L3NzbC10ZXN0cy8yMC1jZXJ0LXNlbGVjdC5jb25mCTIwMTktMDUtMDcgMTI6MTU6MTIuNzYy OTA3NDk2ICswMjAwCi1AQCAtMjMzLDIzICsyMzMsMTggQEAgc2VydmVyID0gNS1FQ0RTQSB3aXRo IGJyYWlucG9vbC1zZXJ2ZXIKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL3Rlc3Qvc3NsLXRlc3Rz LzIwLWNlcnQtc2VsZWN0LmNvbmYubm8tYnJhaW5wb29sIG9wZW5zc2wtMS4xLjFkL3Rlc3Qvc3Ns LXRlc3RzLzIwLWNlcnQtc2VsZWN0LmNvbmYKKy0tLSBvcGVuc3NsLTEuMS4xZC90ZXN0L3NzbC10 ZXN0cy8yMC1jZXJ0LXNlbGVjdC5jb25mLm5vLWJyYWlucG9vbAkyMDE5LTA5LTEwIDE1OjEzOjA3 LjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFkL3Rlc3Qvc3NsLXRlc3RzLzIwLWNl cnQtc2VsZWN0LmNvbmYJMjAxOS0wOS0xMyAxNToxMjoyNy4zODAyODg0NjkgKzAyMDAKK0BAIC0y MzgsMjMgKzIzOCwxOCBAQCBzZXJ2ZXIgPSA1LUVDRFNBIHdpdGggYnJhaW5wb29sLXNlcnZlcgog IGNsaWVudCA9IDUtRUNEU0Egd2l0aCBicmFpbnBvb2wtY2xpZW50CiAgCiAgWzUtRUNEU0Egd2l0 aCBicmFpbnBvb2wtc2VydmVyXQogLUNlcnRpZmljYXRlID0gJHtFTlY6OlRFU1RfQ0VSVFNfRElS fS9zZXJ2ZXItZWNkc2EtYnJhaW5wb29sUDI1NnIxLWNlcnQucGVtCi0tQ2lwaGVyU3RyaW5nID0g REVGQVVMVAorK0NlcnRpZmljYXRlID0gJHtFTlY6OlRFU1RfQ0VSVFNfRElSfS9zZXJ2ZXItZWNk c2EtY2VydC5wZW0KKyBDaXBoZXJTdHJpbmcgPSBERUZBVUxUCiAtR3JvdXBzID0gYnJhaW5wb29s UDI1NnIxCiAtUHJpdmF0ZUtleSA9ICR7RU5WOjpURVNUX0NFUlRTX0RJUn0vc2VydmVyLWVjZHNh LWJyYWlucG9vbFAyNTZyMS1rZXkucGVtCi0rQ2VydGlmaWNhdGUgPSAke0VOVjo6VEVTVF9DRVJU U19ESVJ9L3NlcnZlcmNlcnQucGVtCi0rQ2lwaGVyU3RyaW5nID0gYU5VTEwKLStQcml2YXRlS2V5 ID0gJHtFTlY6OlRFU1RfQ0VSVFNfRElSfS9zZXJ2ZXJrZXkucGVtCisrUHJpdmF0ZUtleSA9ICR7 RU5WOjpURVNUX0NFUlRTX0RJUn0vc2VydmVyLWVjZHNhLWtleS5wZW0KICAKICBbNS1FQ0RTQSB3 aXRoIGJyYWlucG9vbC1jbGllbnRdCiAgQ2lwaGVyU3RyaW5nID0gYUVDRFNBCkBAIC04NywyOCAr ODQsMjcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvdGVzdC9zc2wtdGVzdHMvMjAtY2VydC1z ZWxlY3QuY29uZi5uby1icmFpbnBvb2wgb3BlbnNzbC0KICAKICAKICAjID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1AQCAtMTU3Nywx NCArMTU3MiwxMiBAQCBzZXJ2ZXIgPSA0Ny1UTFMgMS4zIEVDRFNBIHdpdGggYnJhaW5wb29sCi0g Y2xpZW50ID0gNDctVExTIDEuMyBFQ0RTQSB3aXRoIGJyYWlucG9vbC1jbGllbnQKK0BAIC0xNzEz LDE0ICsxNzA4LDEyIEBAIHNlcnZlciA9IDUyLVRMUyAxLjMgRUNEU0Egd2l0aCBicmFpbnBvb2wK KyBjbGllbnQgPSA1Mi1UTFMgMS4zIEVDRFNBIHdpdGggYnJhaW5wb29sLWNsaWVudAogIAotIFs0 Ny1UTFMgMS4zIEVDRFNBIHdpdGggYnJhaW5wb29sLXNlcnZlcl0KKyBbNTItVExTIDEuMyBFQ0RT QSB3aXRoIGJyYWlucG9vbC1zZXJ2ZXJdCiAtQ2VydGlmaWNhdGUgPSAke0VOVjo6VEVTVF9DRVJU U19ESVJ9L3NlcnZlci1lY2RzYS1icmFpbnBvb2xQMjU2cjEtY2VydC5wZW0KLS1DaXBoZXJTdHJp bmcgPSBERUZBVUxUCisrQ2VydGlmaWNhdGUgPSAke0VOVjo6VEVTVF9DRVJUU19ESVJ9L3NlcnZl ci1lY2RzYS1jZXJ0LnBlbQorIENpcGhlclN0cmluZyA9IERFRkFVTFQKIC1Hcm91cHMgPSBicmFp bnBvb2xQMjU2cjEKIC1Qcml2YXRlS2V5ID0gJHtFTlY6OlRFU1RfQ0VSVFNfRElSfS9zZXJ2ZXIt ZWNkc2EtYnJhaW5wb29sUDI1NnIxLWtleS5wZW0KLStDZXJ0aWZpY2F0ZSA9ICR7RU5WOjpURVNU X0NFUlRTX0RJUn0vc2VydmVyY2VydC5wZW0KLStDaXBoZXJTdHJpbmcgPSBhTlVMTAotK1ByaXZh dGVLZXkgPSAke0VOVjo6VEVTVF9DRVJUU19ESVJ9L3NlcnZlcmtleS5wZW0KKytQcml2YXRlS2V5 ID0gJHtFTlY6OlRFU1RfQ0VSVFNfRElSfS9zZXJ2ZXItZWNkc2Eta2V5LnBlbQogIAotIFs0Ny1U TFMgMS4zIEVDRFNBIHdpdGggYnJhaW5wb29sLWNsaWVudF0KKyBbNTItVExTIDEuMyBFQ0RTQSB3 aXRoIGJyYWlucG9vbC1jbGllbnRdCiAgQ2lwaGVyU3RyaW5nID0gREVGQVVMVAogLUdyb3VwcyA9 IGJyYWlucG9vbFAyNTZyMQogIE1heFByb3RvY29sID0gVExTdjEuMwogIE1pblByb3RvY29sID0g VExTdjEuMwogIFJlcXVlc3RDQUZpbGUgPSAke0VOVjo6VEVTVF9DRVJUU19ESVJ9L3Jvb3QtY2Vy dC5wZW0KLUBAIC0xNTkyLDcgKzE1ODUsNyBAQCBWZXJpZnlDQUZpbGUgPSAke0VOVjo6VEVTVF9D RVJUU19ESVJ9L3JvCitAQCAtMTcyOCw3ICsxNzIxLDcgQEAgVmVyaWZ5Q0FGaWxlID0gJHtFTlY6 OlRFU1RfQ0VSVFNfRElSfS9ybwogIFZlcmlmeU1vZGUgPSBQZWVyCiAgCi0gW3Rlc3QtNDddCisg W3Rlc3QtNTJdCiAtRXhwZWN0ZWRSZXN1bHQgPSBTZXJ2ZXJGYWlsCiArRXhwZWN0ZWRSZXN1bHQg PSBTdWNjZXNzCiAgCgpkaWZmIC0tZ2l0IGEvb3BlbnNzbC0xLjEuMS1uby1odG1sLnBhdGNoIGIv b3BlbnNzbC0xLjEuMS1uby1odG1sLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjY2ODhkMWMKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc3NsLTEuMS4xLW5vLWh0bWwu cGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvQ29uZmlndXJh dGlvbnMvdW5peC1NYWtlZmlsZS50bXBsLm5vLWh0bWwgb3BlbnNzbC0xLjEuMWQvQ29uZmlndXJh dGlvbnMvdW5peC1NYWtlZmlsZS50bXBsCistLS0gb3BlbnNzbC0xLjEuMWQvQ29uZmlndXJhdGlv bnMvdW5peC1NYWtlZmlsZS50bXBsLm5vLWh0bWwJMjAxOS0wOS0xMyAxNTowMDozMi45NzY3NzQ2 NzMgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9Db25maWd1cmF0aW9ucy91bml4LU1ha2VmaWxl LnRtcGwJMjAxOS0wOS0xMyAxNTowMjoyMi4yODM4NjQzMjEgKzAyMDAKK0BAIC01NDQsNyArNTQ0 LDcgQEAgaW5zdGFsbF9zdzogaW5zdGFsbF9kZXYgaW5zdGFsbF9lbmdpbmVzCisgCisgdW5pbnN0 YWxsX3N3OiB1bmluc3RhbGxfcnVudGltZSB1bmluc3RhbGxfZW5naW5lcyB1bmluc3RhbGxfZGV2 CisgCistaW5zdGFsbF9kb2NzOiBpbnN0YWxsX21hbl9kb2NzIGluc3RhbGxfaHRtbF9kb2NzCisr aW5zdGFsbF9kb2NzOiBpbnN0YWxsX21hbl9kb2NzCisgCisgdW5pbnN0YWxsX2RvY3M6IHVuaW5z dGFsbF9tYW5fZG9jcyB1bmluc3RhbGxfaHRtbF9kb2NzCisgCSQoUk0pIC1yICQoREVTVERJUikk KERPQ0RJUikKCmRpZmYgLS1naXQgYS9vcGVuc3NsLTEuMS4xLXVwc3RyZWFtLXN5bmMucGF0Y2gg Yi9vcGVuc3NsLTEuMS4xLXVwc3RyZWFtLXN5bmMucGF0Y2gKaW5kZXggN2UwM2I4ZC4uODY0NDhh MCAxMDA2NDQKLS0tIGEvb3BlbnNzbC0xLjEuMS11cHN0cmVhbS1zeW5jLnBhdGNoCisrKyBiL29w ZW5zc2wtMS4xLjEtdXBzdHJlYW0tc3luYy5wYXRjaApAQCAtMSw1MzQgKzEsMTUzIEBACi1kaWZm IC11cCBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vZHNhL2RzYV9hbWV0aC5jLnN5bmMgb3BlbnNzbC0x LjEuMWMvY3J5cHRvL2RzYS9kc2FfYW1ldGguYwotLS0tIG9wZW5zc2wtMS4xLjFjL2NyeXB0by9k c2EvZHNhX2FtZXRoLmMuc3luYwkyMDE5LTA1LTI4IDE1OjEyOjIxLjAwMDAwMDAwMCArMDIwMAot KysrIG9wZW5zc2wtMS4xLjFjL2NyeXB0by9kc2EvZHNhX2FtZXRoLmMJMjAxOS0wNS0yOSAxNzox MDozOS43NjgxODcyODMgKzAyMDAKLUBAIC01MDMsNyArNTAzLDcgQEAgc3RhdGljIGludCBkc2Ff cGtleV9jdHJsKEVWUF9QS0VZICpwa2V5LAotIAotICAgICBjYXNlIEFTTjFfUEtFWV9DVFJMX0RF RkFVTFRfTURfTklEOgotICAgICAgICAgKihpbnQgKilhcmcyID0gTklEX3NoYTI1NjsKLS0gICAg ICAgIHJldHVybiAyOwotKyAgICAgICAgcmV0dXJuIDE7Ci0gCi0gICAgIGRlZmF1bHQ6Ci0gICAg ICAgICByZXR1cm4gLTI7Ci1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vZXJyL2Vyci5j LnN5bmMgb3BlbnNzbC0xLjEuMWMvY3J5cHRvL2Vyci9lcnIuYwotLS0tIG9wZW5zc2wtMS4xLjFj L2NyeXB0by9lcnIvZXJyLmMuc3luYwkyMDE5LTA1LTI4IDE1OjEyOjIxLjAwMDAwMDAwMCArMDIw MAotKysrIG9wZW5zc2wtMS4xLjFjL2NyeXB0by9lcnIvZXJyLmMJMjAxOS0wNS0yOSAxNzowNzox My4zNDU3OTM3OTIgKzAyMDAKLUBAIC0xODQsOCArMTg0LDggQEAgc3RhdGljIEVSUl9TVFJJTkdf REFUQSAqaW50X2Vycl9nZXRfaXRlbQotIH0KLSAKLSAjaWZuZGVmIE9QRU5TU0xfTk9fRVJSCi0t LyogQSBtZWFzdXJlbWVudCBvbiBMaW51eCAyMDE4LTExLTIxIHNob3dlZCBhYm91dCAzLjVraWIg Ki8KLS0jIGRlZmluZSBTUEFDRV9TWVNfU1RSX1JFQVNPTlMgNCAqIDEwMjQKLSsvKiAyMDE5LTA1 LTIxOiBSdXNzaWFuIGFuZCBVa3JhaW5pYW4gbG9jYWxlcyBvbiBMaW51eCByZXF1aXJlIG1vcmUg dGhhbiA2LDUga0IgKi8KLSsjIGRlZmluZSBTUEFDRV9TWVNfU1RSX1JFQVNPTlMgOCAqIDEwMjQK LSAjIGRlZmluZSBOVU1fU1lTX1NUUl9SRUFTT05TIDEyNwotIAotIHN0YXRpYyBFUlJfU1RSSU5H X0RBVEEgU1lTX3N0cl9yZWFzb25zW05VTV9TWVNfU1RSX1JFQVNPTlMgKyAxXTsKLUBAIC0yMTks MjEgKzIxOSwyMyBAQCBzdGF0aWMgdm9pZCBidWlsZF9TWVNfc3RyX3JlYXNvbnModm9pZCkKLSAg ICAgICAgIEVSUl9TVFJJTkdfREFUQSAqc3RyID0gJlNZU19zdHJfcmVhc29uc1tpIC0gMV07Ci0g Ci0gICAgICAgICBzdHItPmVycm9yID0gRVJSX1BBQ0soRVJSX0xJQl9TWVMsIDAsIGkpOwotLSAg ICAgICAgaWYgKHN0ci0+c3RyaW5nID09IE5VTEwpIHsKLSsgICAgICAgIC8qCi0rICAgICAgICAg KiBJZiB3ZSBoYXZlIHVzZWQgdXAgYWxsIHRoZSBzcGFjZSBpbiBzdHJlcnJvcl9wb29sLAotKyAg ICAgICAgICogdGhlcmUncyBubyBwb2ludCBpbiBjYWxsaW5nIG9wZW5zc2xfc3RyZXJyb3Jfcigp Ci0rICAgICAgICAgKi8KLSsgICAgICAgIGlmIChzdHItPnN0cmluZyA9PSBOVUxMICYmIGNudCA8 IHNpemVvZihzdHJlcnJvcl9wb29sKSkgewotICAgICAgICAgICAgIGlmIChvcGVuc3NsX3N0cmVy cm9yX3IoaSwgY3VyLCBzaXplb2Yoc3RyZXJyb3JfcG9vbCkgLSBjbnQpKSB7Ci0gICAgICAgICAg ICAgICAgIHNpemVfdCBsID0gc3RybGVuKGN1cik7Ci0gCi0gICAgICAgICAgICAgICAgIHN0ci0+ c3RyaW5nID0gY3VyOwotICAgICAgICAgICAgICAgICBjbnQgKz0gbDsKLS0gICAgICAgICAgICAg ICAgaWYgKGNudCA+IHNpemVvZihzdHJlcnJvcl9wb29sKSkKLS0gICAgICAgICAgICAgICAgICAg IGNudCA9IHNpemVvZihzdHJlcnJvcl9wb29sKTsKLSAgICAgICAgICAgICAgICAgY3VyICs9IGw7 Ci0gCi0gICAgICAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgICAgICAqIFZNUyBoYXMgYW4g dW51c3VhbCBxdWlyayBvZiBhZGRpbmcgc3BhY2VzIGF0IHRoZSBlbmQgb2YKLS0gICAgICAgICAg ICAgICAgICogc29tZSAobW9zdD8gYWxsPykgbWVzc2FnZXMuICBMZXRzIHRyaW0gdGhlbSBvZmYu Ci0rICAgICAgICAgICAgICAgICAqIHNvbWUgKG1vc3Q/IGFsbD8pIG1lc3NhZ2VzLiBMZXRzIHRy aW0gdGhlbSBvZmYuCi0gICAgICAgICAgICAgICAgICAqLwotLSAgICAgICAgICAgICAgICB3aGls ZSAob3NzbF9pc3NwYWNlKGN1clstMV0pKSB7Ci0rICAgICAgICAgICAgICAgIHdoaWxlIChjdXIg PiBzdHJlcnJvcl9wb29sICYmIG9zc2xfaXNzcGFjZShjdXJbLTFdKSkgewotICAgICAgICAgICAg ICAgICAgICAgY3VyLS07Ci0gICAgICAgICAgICAgICAgICAgICBjbnQtLTsKLSAgICAgICAgICAg ICAgICAgfQotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWMvY3J5cHRvL3JhbmQvcmFuZF9saWIuYy5z eW5jIG9wZW5zc2wtMS4xLjFjL2NyeXB0by9yYW5kL3JhbmRfbGliLmMKLS0tLSBvcGVuc3NsLTEu MS4xYy9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jLnN5bmMJMjAxOS0wNS0yOSAxNzoyMDoxNy4xNzUw OTkxODMgKzAyMDAKLSsrKyBvcGVuc3NsLTEuMS4xYy9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jCTIw MTktMDUtMzAgMTE6NTE6MjAuNzg0ODUwMjA4ICswMjAwCi1AQCAtMjM5LDggKzIzOSw5IEBAIHNp emVfdCByYW5kX2RyYmdfZ2V0X25vbmNlKFJBTkRfRFJCRyAqZHIKLSAgICAgc3RydWN0IHsKLSAg ICAgICAgIHZvaWQgKiBpbnN0YW5jZTsKLSAgICAgICAgIGludCBjb3VudDsKLS0gICAgfSBkYXRh ID0geyBOVUxMLCAwIH07Ci0rICAgIH0gZGF0YTsKLSAKLSsgICAgbWVtc2V0KCZkYXRhLCAwLCBz aXplb2YoZGF0YSkpOwotICAgICBwb29sID0gcmFuZF9wb29sX25ldygwLCBtaW5fbGVuLCBtYXhf bGVuKTsKLSAgICAgaWYgKHBvb2wgPT0gTlVMTCkKLSAgICAgICAgIHJldHVybiAwOwotRnJvbSA2 YzJmMzQ3Yzc4YTUzMDQwN2I1MzEwNDk3MDgwODEwMDk0NDI3OTIwIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogTWF0dCBDYXN3ZWxsIDxtYXR0QG9wZW5zc2wub3JnPgotRGF0ZTogV2Vk LCAxNyBBcHIgMjAxOSAxMTowOTowNSArMDEwMAotU3ViamVjdDogW1BBVENIIDEvMl0gRGVmZXIg c2VuZGluZyBhIEtleVVwZGF0ZSB1bnRpbCBhZnRlciBwZW5kaW5nIHdyaXRlcyBhcmUKLSBjb21w bGV0ZQotCi1JZiB3ZSByZWNlaXZlIGEgS2V5VXBkYXRlIG1lc3NhZ2UgKHVwZGF0ZSByZXF1ZXN0 ZWQpIGZyb20gdGhlIHBlZXIgd2hpbGUKLXdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgd3JpdGUs IHdlIHNob3VsZCBkZWZlciBzZW5kaW5nIHRoZSByZXNwb25kaW5nCi1LZXlVcGRhdGUgbWVzc2Fn ZSB1bnRpbCBhZnRlciB0aGUgY3VycmVudCB3cml0ZSBpcyBjb21wbGV0ZS4gV2UgZG8gdGhpcwot Ynkgd2FpdGluZyB0byBzZW5kIHRoZSBLZXlVcGRhdGUgdW50aWwgdGhlIG5leHQgdGltZSB3ZSB3 cml0ZSBhbmQgdGhlcmUgaXMKLW5vIHBlbmRpbmcgd3JpdGUgZGF0YS4KK2NvbW1pdCA1MTVjNzI4 ZGJhYTkyMjExZDJlYWZiMDA0MWFiOWZjZDI1OGZkYzQxCitBdXRob3I6IEJlcm5kIEVkbGluZ2Vy IDxiZXJuZC5lZGxpbmdlckBob3RtYWlsLmRlPgorRGF0ZTogICBNb24gU2VwIDkgMTk6MTI6MjUg MjAxOSArMDIwMAogCi1UaGlzIGRvZXMgaW1wbHkgYSBzdWJ0bGUgY2hhbmdlIGluIGJlaGF2aW91 ci4gRmlyc3RseSB0aGUgcmVzcG9uZGluZwotS2V5VXBkYXRlIG1lc3NhZ2Ugd29uJ3QgYmUgc2Vu dCBzdHJhaWdodCBhd2F5IGFzIGl0IGlzIG5vdy4gU2Vjb25kbHkgaWYKLXRoZSBwZWVyIHNlbmRz IG11bHRpcGxlIEtleVVwZGF0ZXMgd2l0aG91dCB1cyBkb2luZyBhbnkgd3JpdGluZyB0aGVuIHdl Ci13aWxsIG9ubHkgc2VuZCBvbmUgcmVzcG9uc2UsIGFzIG9wcG9zZWQgdG8gcHJldmlvdXNseSB3 aGVyZSB3ZSBzZW50IGEKLXJlc3BvbnNlIGZvciBlYWNoIEtleVVwZGF0ZSByZWNlaXZlZC4KKyAg ICBGaXggcG90ZW50aWFsIG1lbW9yeSBsZWFrcyB3aXRoIEJOX3RvX0FTTjFfSU5URUdFUgorICAg IAorICAgIFJldmlld2VkLWJ5OiBQYXVsIERhbGUgPHBhdWwuZGFsZUBvcmFjbGUuY29tPgorICAg IFJldmlld2VkLWJ5OiBNYXR0IENhc3dlbGwgPG1hdHRAb3BlbnNzbC5vcmc+CisgICAgKE1lcmdl ZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuc3NsL29wZW5zc2wvcHVsbC85ODMzKQorICAg IAorICAgIChjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGYyOGJjN2QzODZiMjVmYjc1NjI1ZDBj NjJjNmIyZTZkMjFkZTBkMDkpCiAKLUZpeGVzICM4Njc3Ci0KLVJldmlld2VkLWJ5OiBCZW4gS2Fk dWsgPGthZHVrQG1pdC5lZHU+Ci0oTWVyZ2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL29wZW5z c2wvb3BlbnNzbC9wdWxsLzg3NzMpCi0KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGZlYjll MzFjNDBjNDlkZTYzODRkZDA0MTM2ODVlOWI1YTE1YWRjOTkpCi0tLS0KLSBzc2wvcmVjb3JkL3Jl Y19sYXllcl9zMy5jIHwgNyArKysrKysrCi0gc3NsL3N0YXRlbS9zdGF0ZW1fY2xudC5jICB8IDYg LS0tLS0tCi0gc3NsL3N0YXRlbS9zdGF0ZW1fbGliLmMgICB8IDcgKystLS0tLQotIHNzbC9zdGF0 ZW0vc3RhdGVtX3NydnIuYyAgfCA2IC0tLS0tLQotIDQgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRp b25zKCspLCAxNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NzbC9yZWNvcmQvcmVjX2xh eWVyX3MzLmMgYi9zc2wvcmVjb3JkL3JlY19sYXllcl9zMy5jCi1pbmRleCBiMmY5N2VmOTA1Li5i NjUxMzdjMzMyIDEwMDY0NAotLS0tIGEvc3NsL3JlY29yZC9yZWNfbGF5ZXJfczMuYwotKysrIGIv c3NsL3JlY29yZC9yZWNfbGF5ZXJfczMuYwotQEAgLTM3Myw2ICszNzMsMTMgQEAgaW50IHNzbDNf d3JpdGVfYnl0ZXMoU1NMICpzLCBpbnQgdHlwZSwgY29uc3Qgdm9pZCAqYnVmXywgc2l6ZV90IGxl biwKLSAKLSAgICAgcy0+cmxheWVyLndudW0gPSAwOwotIAotKyAgICAvKgotKyAgICAgKiBJZiB3 ZSBhcmUgc3VwcG9zZWQgdG8gYmUgc2VuZGluZyBhIEtleVVwZGF0ZSB0aGVuIGdvIGludG8gaW5p dCB1bmxlc3Mgd2UKLSsgICAgICogaGF2ZSB3cml0ZXMgcGVuZGluZyAtIGluIHdoaWNoIGNhc2Ug d2Ugc2hvdWxkIGZpbmlzaCBkb2luZyB0aGF0IGZpcnN0LgotKyAgICAgKi8KLSsgICAgaWYgKHdi LT5sZWZ0ID09IDAgJiYgcy0+a2V5X3VwZGF0ZSAhPSBTU0xfS0VZX1VQREFURV9OT05FKQotKyAg ICAgICAgb3NzbF9zdGF0ZW1fc2V0X2luX2luaXQocywgMSk7Ci0rCi0gICAgIC8qCi0gICAgICAq IFdoZW4gd3JpdGluZyBlYXJseSBkYXRhIG9uIHRoZSBzZXJ2ZXIgc2lkZSB3ZSBjb3VsZCBiZSAi aW5faW5pdCIgaW4KLSAgICAgICogYmV0d2VlbiByZWNlaXZpbmcgdGhlIEVvRUQgYW5kIHRoZSBD RiAtIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGhhbmRsZSB0aG9zZQotZGlmZiAtLWdpdCBhL3NzbC9z dGF0ZW0vc3RhdGVtX2NsbnQuYyBiL3NzbC9zdGF0ZW0vc3RhdGVtX2NsbnQuYwotaW5kZXggODc4 MDBjZDgzNS4uNjQxMDQxNGZiNiAxMDA2NDQKLS0tLSBhL3NzbC9zdGF0ZW0vc3RhdGVtX2NsbnQu YwotKysrIGIvc3NsL3N0YXRlbS9zdGF0ZW1fY2xudC5jCi1AQCAtNDczLDEyICs0NzMsNiBAQCBz dGF0aWMgV1JJVEVfVFJBTiBvc3NsX3N0YXRlbV9jbGllbnQxM193cml0ZV90cmFuc2l0aW9uKFNT TCAqcykKLSAgICAgICAgIHJldHVybiBXUklURV9UUkFOX0NPTlRJTlVFOwotIAotICAgICBjYXNl IFRMU19TVF9DUl9LRVlfVVBEQVRFOgotLSAgICAgICAgaWYgKHMtPmtleV91cGRhdGUgIT0gU1NM X0tFWV9VUERBVEVfTk9ORSkgewotLSAgICAgICAgICAgIHN0LT5oYW5kX3N0YXRlID0gVExTX1NU X0NXX0tFWV9VUERBVEU7Ci0tICAgICAgICAgICAgcmV0dXJuIFdSSVRFX1RSQU5fQ09OVElOVUU7 Ci0tICAgICAgICB9Ci0tICAgICAgICAvKiBGYWxsIHRocm91Z2ggKi8KLS0KLSAgICAgY2FzZSBU TFNfU1RfQ1dfS0VZX1VQREFURToKLSAgICAgY2FzZSBUTFNfU1RfQ1JfU0VTU0lPTl9USUNLRVQ6 Ci0gICAgIGNhc2UgVExTX1NUX0NXX0ZJTklTSEVEOgotZGlmZiAtLWdpdCBhL3NzbC9zdGF0ZW0v c3RhdGVtX2xpYi5jIGIvc3NsL3N0YXRlbS9zdGF0ZW1fbGliLmMKLWluZGV4IGMwNDgyYjBhOTAu LjI5NjBkYWZhNTIgMTAwNjQ0Ci0tLS0gYS9zc2wvc3RhdGVtL3N0YXRlbV9saWIuYwotKysrIGIv c3NsL3N0YXRlbS9zdGF0ZW1fbGliLmMKLUBAIC02NDUsMTIgKzY0NSw5IEBAIE1TR19QUk9DRVNT X1JFVFVSTiB0bHNfcHJvY2Vzc19rZXlfdXBkYXRlKFNTTCAqcywgUEFDS0VUICpwa3QpCi0gICAg IC8qCi0gICAgICAqIElmIHdlIGdldCBhIHJlcXVlc3QgZm9yIHVzIHRvIHVwZGF0ZSBvdXIgc2Vu ZGluZyBrZXlzIHRvbyB0aGVuLCB3ZSBuZWVkCi0gICAgICAqIHRvIGFkZGl0aW9uYWxseSBzZW5k IGEgS2V5VXBkYXRlIG1lc3NhZ2UuIEhvd2V2ZXIgdGhhdCBtZXNzYWdlIHNob3VsZAotLSAgICAg KiBub3QgYWxzbyByZXF1ZXN0IGFuIHVwZGF0ZSAob3RoZXJ3aXNlIHdlIGdldCBpbnRvIGFuIGlu ZmluaXRlIGxvb3ApLiBXZQotLSAgICAgKiBpZ25vcmUgYSByZXF1ZXN0IGZvciB1cyB0byB1cGRh dGUgb3VyIHNlbmRpbmcga2V5cyB0b28gaWYgd2UgYWxyZWFkeQotLSAgICAgKiBzZW50IGNsb3Nl X25vdGlmeS4KLSsgICAgICogbm90IGFsc28gcmVxdWVzdCBhbiB1cGRhdGUgKG90aGVyd2lzZSB3 ZSBnZXQgaW50byBhbiBpbmZpbml0ZSBsb29wKS4KLSAgICAgICovCi0tICAgIGlmICh1cGRhdGV0 eXBlID09IFNTTF9LRVlfVVBEQVRFX1JFUVVFU1RFRAotLSAgICAgICAgICAgICYmIChzLT5zaHV0 ZG93biAmIFNTTF9TRU5UX1NIVVRET1dOKSA9PSAwKQotKyAgICBpZiAodXBkYXRldHlwZSA9PSBT U0xfS0VZX1VQREFURV9SRVFVRVNURUQpCi0gICAgICAgICBzLT5rZXlfdXBkYXRlID0gU1NMX0tF WV9VUERBVEVfTk9UX1JFUVVFU1RFRDsKLSAKLSAgICAgaWYgKCF0bHMxM191cGRhdGVfa2V5KHMs IDApKSB7Ci1kaWZmIC0tZ2l0IGEvc3NsL3N0YXRlbS9zdGF0ZW1fc3J2ci5jIGIvc3NsL3N0YXRl bS9zdGF0ZW1fc3J2ci5jCi1pbmRleCBkNDU0MzI2YTk5Li4wNGEyMzMyMGZjIDEwMDY0NAotLS0t IGEvc3NsL3N0YXRlbS9zdGF0ZW1fc3J2ci5jCi0rKysgYi9zc2wvc3RhdGVtL3N0YXRlbV9zcnZy LmMKLUBAIC01MDIsMTIgKzUwMiw2IEBAIHN0YXRpYyBXUklURV9UUkFOIG9zc2xfc3RhdGVtX3Nl cnZlcjEzX3dyaXRlX3RyYW5zaXRpb24oU1NMICpzKQotICAgICAgICAgcmV0dXJuIFdSSVRFX1RS QU5fQ09OVElOVUU7Ci0gCi0gICAgIGNhc2UgVExTX1NUX1NSX0tFWV9VUERBVEU6Ci0tICAgICAg ICBpZiAocy0+a2V5X3VwZGF0ZSAhPSBTU0xfS0VZX1VQREFURV9OT05FKSB7Ci0tICAgICAgICAg ICAgc3QtPmhhbmRfc3RhdGUgPSBUTFNfU1RfU1dfS0VZX1VQREFURTsKLS0gICAgICAgICAgICBy ZXR1cm4gV1JJVEVfVFJBTl9DT05USU5VRTsKLS0gICAgICAgIH0KLS0gICAgICAgIC8qIEZhbGwg dGhyb3VnaCAqLwotLQotICAgICBjYXNlIFRMU19TVF9TV19LRVlfVVBEQVRFOgotICAgICAgICAg c3QtPmhhbmRfc3RhdGUgPSBUTFNfU1RfT0s7Ci0gICAgICAgICByZXR1cm4gV1JJVEVfVFJBTl9D T05USU5VRTsKLS0tIAotMi4yMC4xCi0KLUZyb20gYzhmZWIxMDM5Y2NjNGNkMTFlNmRiMDg0ZGYx NDQ2YmY4NjNiZWUxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hdHQgQ2Fzd2Vs bCA8bWF0dEBvcGVuc3NsLm9yZz4KLURhdGU6IFdlZCwgMTcgQXByIDIwMTkgMTA6MzA6NTMgKzAx MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzJdIFdyaXRlIGEgdGVzdCBmb3IgcmVjZWl2aW5nIGEgS2V5 VXBkYXRlICh1cGRhdGUgcmVxdWVzdGVkKQotIHdoaWxlIHdyaXRpbmcKLQotUmV2aWV3ZWQtYnk6 IEJlbiBLYWR1ayA8a2FkdWtAbWl0LmVkdT4KLShNZXJnZWQgZnJvbSBodHRwczovL2dpdGh1Yi5j b20vb3BlbnNzbC9vcGVuc3NsL3B1bGwvODc3MykKLQotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t aXQgYTc3YjRkYmEyMzdkMDAxMDczZDJkMWM1ZDU1YzY3NGExOTZjOTQ5ZikKLS0tLQotIHRlc3Qv c3NsYXBpdGVzdC5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCi0gdGVzdC9zc2x0ZXN0bGliLmMgfCA5NiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwotIHRlc3Qvc3NsdGVzdGxpYi5oIHwgIDMgKysKLSAzIGZp bGVzIGNoYW5nZWQsIDE5MSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS90ZXN0L3NzbGFw aXRlc3QuYyBiL3Rlc3Qvc3NsYXBpdGVzdC5jCi1pbmRleCAyMjYxZmU0YTdhLi41NzczNDI2NDRk IDEwMDY0NAotLS0tIGEvdGVzdC9zc2xhcGl0ZXN0LmMKLSsrKyBiL3Rlc3Qvc3NsYXBpdGVzdC5j Ci1AQCAtNDI5MCw2ICs0MjkwLDExIEBAIHN0YXRpYyBpbnQgdGVzdF9rZXlfdXBkYXRlKHZvaWQp Ci0gICAgICAgICAgICAgICAgIHx8ICFURVNUX2ludF9lcShTU0xfcmVhZChzZXJ2ZXJzc2wsIGJ1 Ziwgc2l6ZW9mKGJ1ZikpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RybGVuKG1lc3MpKSkKLSAgICAgICAgICAgICBnb3RvIGVuZDsKLSsKLSsgICAgICAgIGlm ICghVEVTVF9pbnRfZXEoU1NMX3dyaXRlKHNlcnZlcnNzbCwgbWVzcywgc3RybGVuKG1lc3MpKSwg c3RybGVuKG1lc3MpKQotKyAgICAgICAgICAgICAgICB8fCAhVEVTVF9pbnRfZXEoU1NMX3JlYWQo Y2xpZW50c3NsLCBidWYsIHNpemVvZihidWYpKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cmxlbihtZXNzKSkpCi0rICAgICAgICAgICAgZ290byBlbmQ7Citk aWZmIC0tZ2l0IGEvY3J5cHRvL2VjL2VjX2FzbjEuYyBiL2NyeXB0by9lYy9lY19hc24xLmMKK2lu ZGV4IDFjZTExODFmYzEuLjdjYmY4ZGU5ODEgMTAwNjQ0CistLS0gYS9jcnlwdG8vZWMvZWNfYXNu MS5jCisrKysgYi9jcnlwdG8vZWMvZWNfYXNuMS5jCitAQCAtNDQ2LDYgKzQ0Niw3IEBAIEVDUEFS QU1FVEVSUyAqRUNfR1JPVVBfZ2V0X2VjcGFyYW1ldGVycyhjb25zdCBFQ19HUk9VUCAqZ3JvdXAs CisgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciA9IE5VTEw7CisgICAgIGNvbnN0IEVDX1BPSU5U ICpwb2ludCA9IE5VTEw7CisgICAgIHBvaW50X2NvbnZlcnNpb25fZm9ybV90IGZvcm07CisrICAg IEFTTjFfSU5URUdFUiAqb3JpZzsKKyAKKyAgICAgaWYgKHBhcmFtcyA9PSBOVUxMKSB7CisgICAg ICAgICBpZiAoKHJldCA9IEVDUEFSQU1FVEVSU19uZXcoKSkgPT0gTlVMTCkgeworQEAgLTQ5Niw4 ICs0OTcsOSBAQCBFQ1BBUkFNRVRFUlMgKkVDX0dST1VQX2dldF9lY3BhcmFtZXRlcnMoY29uc3Qg RUNfR1JPVVAgKmdyb3VwLAorICAgICAgICAgRUNlcnIoRUNfRl9FQ19HUk9VUF9HRVRfRUNQQVJB TUVURVJTLCBFUlJfUl9FQ19MSUIpOworICAgICAgICAgZ290byBlcnI7CiAgICAgIH0KLSAKLSAg ICAgdGVzdHJlc3VsdCA9IDE7Ci1AQCAtNDMwMiw2ICs0MzA3LDkxIEBAIHN0YXRpYyBpbnQgdGVz dF9rZXlfdXBkYXRlKHZvaWQpCi0gCi0gICAgIHJldHVybiB0ZXN0cmVzdWx0OwotIH0KLSsKLSsv KgotKyAqIFRlc3Qgd2UgY2FuIGhhbmRsZSBhIEtleVVwZGF0ZSAodXBkYXRlIHJlcXVlc3RlZCkg bWVzc2FnZSB3aGlsZSB3cml0ZSBkYXRhCi0rICogaXMgcGVuZGluZy4KLSsgKiBUZXN0IDA6IENs aWVudCBzZW5kcyBLZXlVcGRhdGUgd2hpbGUgU2VydmVyIGlzIHdyaXRpbmcKLSsgKiBUZXN0IDE6 IFNlcnZlciBzZW5kcyBLZXlVcGRhdGUgd2hpbGUgQ2xpZW50IGlzIHdyaXRpbmcKLSsgKi8KLStz dGF0aWMgaW50IHRlc3Rfa2V5X3VwZGF0ZV9pbl93cml0ZShpbnQgdHN0KQotK3sKLSsgICAgU1NM X0NUWCAqY2N0eCA9IE5VTEwsICpzY3R4ID0gTlVMTDsKLSsgICAgU1NMICpjbGllbnRzc2wgPSBO VUxMLCAqc2VydmVyc3NsID0gTlVMTDsKLSsgICAgaW50IHRlc3RyZXN1bHQgPSAwOwotKyAgICBj aGFyIGJ1ZlsyMF07Ci0rICAgIHN0YXRpYyBjaGFyICptZXNzID0gIkEgdGVzdCBtZXNzYWdlIjsK LSsgICAgQklPICpicmV0cnkgPSBCSU9fbmV3KGJpb19zX2Fsd2F5c19yZXRyeSgpKTsKLSsgICAg QklPICp0bXAgPSBOVUxMOwotKyAgICBTU0wgKnBlZXJ1cGRhdGUgPSBOVUxMLCAqcGVlcndyaXRl ID0gTlVMTDsKLSsKLSsgICAgaWYgKCFURVNUX3B0cihicmV0cnkpCi0rICAgICAgICAgICAgfHwg IVRFU1RfdHJ1ZShjcmVhdGVfc3NsX2N0eF9wYWlyKFRMU19zZXJ2ZXJfbWV0aG9kKCksCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRMU19jbGllbnRfbWV0 aG9kKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRM UzFfM19WRVJTSU9OLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm c2N0eCwgJmNjdHgsIGNlcnQsIHByaXZrZXkpKQotKyAgICAgICAgICAgIHx8ICFURVNUX3RydWUo Y3JlYXRlX3NzbF9vYmplY3RzKHNjdHgsIGNjdHgsICZzZXJ2ZXJzc2wsICZjbGllbnRzc2wsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCkp Ci0rICAgICAgICAgICAgfHwgIVRFU1RfdHJ1ZShjcmVhdGVfc3NsX2Nvbm5lY3Rpb24oc2VydmVy c3NsLCBjbGllbnRzc2wsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU1NMX0VSUk9SX05PTkUpKSkKLSsgICAgICAgIGdvdG8gZW5kOwotKwotKyAgICBw ZWVydXBkYXRlID0gdHN0ID09IDAgPyBjbGllbnRzc2wgOiBzZXJ2ZXJzc2w7Ci0rICAgIHBlZXJ3 cml0ZSA9IHRzdCA9PSAwID8gc2VydmVyc3NsIDogY2xpZW50c3NsOwotKwotKyAgICBpZiAoIVRF U1RfdHJ1ZShTU0xfa2V5X3VwZGF0ZShwZWVydXBkYXRlLCBTU0xfS0VZX1VQREFURV9SRVFVRVNU RUQpKQotKyAgICAgICAgICAgIHx8ICFURVNUX3RydWUoU1NMX2RvX2hhbmRzaGFrZShwZWVydXBk YXRlKSkpCi0rICAgICAgICBnb3RvIGVuZDsKLSsKLSsgICAgLyogU3dhcCB0aGUgd3JpdGluZyBl bmRwb2ludCdzIHdyaXRlIEJJTyB0byBmb3JjZSBhIHJldHJ5ICovCi0rICAgIHRtcCA9IFNTTF9n ZXRfd2JpbyhwZWVyd3JpdGUpOwotKyAgICBpZiAoIVRFU1RfcHRyKHRtcCkgfHwgIVRFU1RfdHJ1 ZShCSU9fdXBfcmVmKHRtcCkpKSB7Ci0rICAgICAgICB0bXAgPSBOVUxMOwotKyAgICAgICAgZ290 byBlbmQ7Ci0rICAgIH0KLSsgICAgU1NMX3NldDBfd2JpbyhwZWVyd3JpdGUsIGJyZXRyeSk7Ci0r ICAgIGJyZXRyeSA9IE5VTEw7Ci0rCi0rICAgIC8qIFdyaXRlIGRhdGEgdGhhdCB3ZSBrbm93IHdp bGwgZmFpbCB3aXRoIFNTTF9FUlJPUl9XQU5UX1dSSVRFICovCi0rICAgIGlmICghVEVTVF9pbnRf ZXEoU1NMX3dyaXRlKHBlZXJ3cml0ZSwgbWVzcywgc3RybGVuKG1lc3MpKSwgLTEpCi0rICAgICAg ICAgICAgfHwgIVRFU1RfaW50X2VxKFNTTF9nZXRfZXJyb3IocGVlcndyaXRlLCAwKSwgU1NMX0VS Uk9SX1dBTlRfV1JJVEUpKQotKyAgICAgICAgZ290byBlbmQ7Ci0rCi0rICAgIC8qIFJlaW5zdGF0 ZSB0aGUgb3JpZ2luYWwgd3JpdGluZyBlbmRwb2ludCdzIHdyaXRlIEJJTyAqLwotKyAgICBTU0xf c2V0MF93YmlvKHBlZXJ3cml0ZSwgdG1wKTsKLSsgICAgdG1wID0gTlVMTDsKLSsKLSsgICAgLyog Tm93IHJlYWQgc29tZSBkYXRhIC0gd2Ugd2lsbCByZWFkIHRoZSBrZXkgdXBkYXRlICovCi0rICAg IGlmICghVEVTVF9pbnRfZXEoU1NMX3JlYWQocGVlcndyaXRlLCBidWYsIHNpemVvZihidWYpKSwg LTEpCi0rICAgICAgICAgICAgfHwgIVRFU1RfaW50X2VxKFNTTF9nZXRfZXJyb3IocGVlcndyaXRl LCAwKSwgU1NMX0VSUk9SX1dBTlRfUkVBRCkpCi0rICAgICAgICBnb3RvIGVuZDsKLSsKLSsgICAg LyoKLSsgICAgICogQ29tcGxldGUgdGhlIHdyaXRlIHdlIHN0YXJ0ZWQgcHJldmlvdXNseSBhbmQg cmVhZCBpdCBmcm9tIHRoZSBvdGhlcgotKyAgICAgKiBlbmRwb2ludAotKyAgICAgKi8KLSsgICAg aWYgKCFURVNUX2ludF9lcShTU0xfd3JpdGUocGVlcndyaXRlLCBtZXNzLCBzdHJsZW4obWVzcykp LCBzdHJsZW4obWVzcykpCi0rICAgICAgICAgICAgfHwgIVRFU1RfaW50X2VxKFNTTF9yZWFkKHBl ZXJ1cGRhdGUsIGJ1Ziwgc2l6ZW9mKGJ1ZikpLCBzdHJsZW4obWVzcykpKQotKyAgICAgICAgZ290 byBlbmQ7Ci0rCi0rICAgIC8qIFdyaXRlIG1vcmUgZGF0YSB0byBlbnN1cmUgd2Ugc2VuZCB0aGUg S2V5VXBkYXRlIG1lc3NhZ2UgYmFjayAqLwotKyAgICBpZiAoIVRFU1RfaW50X2VxKFNTTF93cml0 ZShwZWVyd3JpdGUsIG1lc3MsIHN0cmxlbihtZXNzKSksIHN0cmxlbihtZXNzKSkKLSsgICAgICAg ICAgICB8fCAhVEVTVF9pbnRfZXEoU1NMX3JlYWQocGVlcnVwZGF0ZSwgYnVmLCBzaXplb2YoYnVm KSksIHN0cmxlbihtZXNzKSkpCi0rICAgICAgICBnb3RvIGVuZDsKLSsKLSsgICAgdGVzdHJlc3Vs dCA9IDE7Ci0rCi0rIGVuZDoKLSsgICAgU1NMX2ZyZWUoc2VydmVyc3NsKTsKLSsgICAgU1NMX2Zy ZWUoY2xpZW50c3NsKTsKLSsgICAgU1NMX0NUWF9mcmVlKHNjdHgpOwotKyAgICBTU0xfQ1RYX2Zy ZWUoY2N0eCk7Ci0rICAgIEJJT19mcmVlKGJyZXRyeSk7Ci0rICAgIEJJT19mcmVlKHRtcCk7Ci0r Ci0rICAgIHJldHVybiB0ZXN0cmVzdWx0OwotK30KLSAjZW5kaWYgLyogT1BFTlNTTF9OT19UTFMx XzMgKi8KLSAKLSBzdGF0aWMgaW50IHRlc3Rfc3NsX2NsZWFyKGludCBpZHgpCi1AQCAtNTk4Miw2 ICs2MDcyLDcgQEAgaW50IHNldHVwX3Rlc3RzKHZvaWQpCi0gI2lmbmRlZiBPUEVOU1NMX05PX1RM UzFfMwotICAgICBBRERfQUxMX1RFU1RTKHRlc3RfZXhwb3J0X2tleV9tYXRfZWFybHksIDMpOwot ICAgICBBRERfVEVTVCh0ZXN0X2tleV91cGRhdGUpOwotKyAgICBBRERfQUxMX1RFU1RTKHRlc3Rf a2V5X3VwZGF0ZV9pbl93cml0ZSwgMik7Ci0gI2VuZGlmCi0gICAgIEFERF9BTExfVEVTVFModGVz dF9zc2xfY2xlYXIsIDIpOwotICAgICBBRERfQUxMX1RFU1RTKHRlc3RfbWF4X2ZyYWdtZW50X2xl bl9leHQsIE9TU0xfTkVMRU0obWF4X2ZyYWdtZW50X2xlbl90ZXN0KSk7Ci1AQCAtNjAwMiw0ICs2 MDkzLDUgQEAgaW50IHNldHVwX3Rlc3RzKHZvaWQpCi0gdm9pZCBjbGVhbnVwX3Rlc3RzKHZvaWQp CistICAgIHJldC0+b3JkZXIgPSBCTl90b19BU04xX0lOVEVHRVIodG1wLCByZXQtPm9yZGVyKTsK KysgICAgcmV0LT5vcmRlciA9IEJOX3RvX0FTTjFfSU5URUdFUih0bXAsIG9yaWcgPSByZXQtPm9y ZGVyKTsKKyAgICAgaWYgKHJldC0+b3JkZXIgPT0gTlVMTCkgeworKyAgICAgICAgcmV0LT5vcmRl ciA9IG9yaWc7CisgICAgICAgICBFQ2VycihFQ19GX0VDX0dST1VQX0dFVF9FQ1BBUkFNRVRFUlMs IEVSUl9SX0FTTjFfTElCKTsKKyAgICAgICAgIGdvdG8gZXJyOworICAgICB9CitAQCAtNTA1LDgg KzUwNyw5IEBAIEVDUEFSQU1FVEVSUyAqRUNfR1JPVVBfZ2V0X2VjcGFyYW1ldGVycyhjb25zdCBF Q19HUk9VUCAqZ3JvdXAsCisgICAgIC8qIHNldCB0aGUgY29mYWN0b3IgKG9wdGlvbmFsKSAqLwor ICAgICB0bXAgPSBFQ19HUk9VUF9nZXQwX2NvZmFjdG9yKGdyb3VwKTsKKyAgICAgaWYgKHRtcCAh PSBOVUxMKSB7CistICAgICAgICByZXQtPmNvZmFjdG9yID0gQk5fdG9fQVNOMV9JTlRFR0VSKHRt cCwgcmV0LT5jb2ZhY3Rvcik7CisrICAgICAgICByZXQtPmNvZmFjdG9yID0gQk5fdG9fQVNOMV9J TlRFR0VSKHRtcCwgb3JpZyA9IHJldC0+Y29mYWN0b3IpOworICAgICAgICAgaWYgKHJldC0+Y29m YWN0b3IgPT0gTlVMTCkgeworKyAgICAgICAgICAgIHJldC0+Y29mYWN0b3IgPSBvcmlnOworICAg ICAgICAgICAgIEVDZXJyKEVDX0ZfRUNfR1JPVVBfR0VUX0VDUEFSQU1FVEVSUywgRVJSX1JfQVNO MV9MSUIpOworICAgICAgICAgICAgIGdvdG8gZXJyOworICAgICAgICAgfQorZGlmZiAtLWdpdCBh L2NyeXB0by94NTA5djMvdjNfYXNpZC5jIGIvY3J5cHRvL3g1MDl2My92M19hc2lkLmMKK2luZGV4 IDA4OWYyYWUyOWYuLmVmMmQ2NDgyNmYgMTAwNjQ0CistLS0gYS9jcnlwdG8veDUwOXYzL3YzX2Fz aWQuYworKysrIGIvY3J5cHRvL3g1MDl2My92M19hc2lkLmMKK0BAIC0yNTYsNiArMjU2LDcgQEAg c3RhdGljIGludCBleHRyYWN0X21pbl9tYXgoQVNJZE9yUmFuZ2UgKmFvciwKKyBzdGF0aWMgaW50 IEFTSWRlbnRpZmllckNob2ljZV9pc19jYW5vbmljYWwoQVNJZGVudGlmaWVyQ2hvaWNlICpjaG9p Y2UpCiAgewotICAgICBiaW9fc19tZW1wYWNrZXRfdGVzdF9mcmVlKCk7Ci0rICAgIGJpb19zX2Fs d2F5c19yZXRyeV9mcmVlKCk7Ci0gfQotZGlmZiAtLWdpdCBhL3Rlc3Qvc3NsdGVzdGxpYi5jIGIv dGVzdC9zc2x0ZXN0bGliLmMKLWluZGV4IDA1MTM5YmU3NTAuLmUxMDM4NjIwYWMgMTAwNjQ0Ci0t LS0gYS90ZXN0L3NzbHRlc3RsaWIuYwotKysrIGIvdGVzdC9zc2x0ZXN0bGliLmMKLUBAIC02Miw5 ICs2MiwxMSBAQCBzdGF0aWMgaW50IHRsc19kdW1wX3B1dHMoQklPICpicCwgY29uc3QgY2hhciAq c3RyKTsKLSAvKiBDaG9vc2UgYSBzdWZmaWNpZW50bHkgbGFyZ2UgdHlwZSBsaWtlbHkgdG8gYmUg dW51c2VkIGZvciB0aGlzIGN1c3RvbSBCSU8gKi8KLSAjZGVmaW5lIEJJT19UWVBFX1RMU19EVU1Q X0ZJTFRFUiAgKDB4ODAgfCBCSU9fVFlQRV9GSUxURVIpCi0gI2RlZmluZSBCSU9fVFlQRV9NRU1Q QUNLRVRfVEVTVCAgICAweDgxCi0rI2RlZmluZSBCSU9fVFlQRV9BTFdBWVNfUkVUUlkgICAgICAw eDgyCi0gCi0gc3RhdGljIEJJT19NRVRIT0QgKm1ldGhvZF90bHNfZHVtcCA9IE5VTEw7Ci0gc3Rh dGljIEJJT19NRVRIT0QgKm1ldGhfbWVtID0gTlVMTDsKLStzdGF0aWMgQklPX01FVEhPRCAqbWV0 aF9hbHdheXNfcmV0cnkgPSBOVUxMOwotIAotIC8qIE5vdGU6IE5vdCB0aHJlYWQgc2FmZSEgKi8K LSBjb25zdCBCSU9fTUVUSE9EICpiaW9fZl90bHNfZHVtcF9maWx0ZXIodm9pZCkKLUBAIC02MTIs NiArNjE0LDEwMCBAQCBzdGF0aWMgaW50IG1lbXBhY2tldF90ZXN0X3B1dHMoQklPICpiaW8sIGNv bnN0IGNoYXIgKnN0cikKLSAgICAgcmV0dXJuIG1lbXBhY2tldF90ZXN0X3dyaXRlKGJpbywgc3Ry LCBzdHJsZW4oc3RyKSk7Ci0gfQotIAotK3N0YXRpYyBpbnQgYWx3YXlzX3JldHJ5X25ldyhCSU8g KmJpKTsKLStzdGF0aWMgaW50IGFsd2F5c19yZXRyeV9mcmVlKEJJTyAqYSk7Ci0rc3RhdGljIGlu dCBhbHdheXNfcmV0cnlfcmVhZChCSU8gKmIsIGNoYXIgKm91dCwgaW50IG91dGwpOwotK3N0YXRp YyBpbnQgYWx3YXlzX3JldHJ5X3dyaXRlKEJJTyAqYiwgY29uc3QgY2hhciAqaW4sIGludCBpbmwp OwotK3N0YXRpYyBsb25nIGFsd2F5c19yZXRyeV9jdHJsKEJJTyAqYiwgaW50IGNtZCwgbG9uZyBu dW0sIHZvaWQgKnB0cik7Ci0rc3RhdGljIGludCBhbHdheXNfcmV0cnlfZ2V0cyhCSU8gKmJwLCBj aGFyICpidWYsIGludCBzaXplKTsKLStzdGF0aWMgaW50IGFsd2F5c19yZXRyeV9wdXRzKEJJTyAq YnAsIGNvbnN0IGNoYXIgKnN0cik7Ci0rCi0rY29uc3QgQklPX01FVEhPRCAqYmlvX3NfYWx3YXlz X3JldHJ5KHZvaWQpCi0rewotKyAgICBpZiAobWV0aF9hbHdheXNfcmV0cnkgPT0gTlVMTCkgewot KyAgICAgICAgaWYgKCFURVNUX3B0cihtZXRoX2Fsd2F5c19yZXRyeSA9IEJJT19tZXRoX25ldyhC SU9fVFlQRV9BTFdBWVNfUkVUUlksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJBbHdheXMgUmV0cnkiKSkKLSsgICAgICAgICAgICB8fCAh VEVTVF90cnVlKEJJT19tZXRoX3NldF93cml0ZShtZXRoX2Fsd2F5c19yZXRyeSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHdheXNfcmV0cnlfd3JpdGUp KQotKyAgICAgICAgICAgIHx8ICFURVNUX3RydWUoQklPX21ldGhfc2V0X3JlYWQobWV0aF9hbHdh eXNfcmV0cnksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh bHdheXNfcmV0cnlfcmVhZCkpCi0rICAgICAgICAgICAgfHwgIVRFU1RfdHJ1ZShCSU9fbWV0aF9z ZXRfcHV0cyhtZXRoX2Fsd2F5c19yZXRyeSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFsd2F5c19yZXRyeV9wdXRzKSkKLSsgICAgICAgICAgICB8fCAhVEVT VF90cnVlKEJJT19tZXRoX3NldF9nZXRzKG1ldGhfYWx3YXlzX3JldHJ5LAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx3YXlzX3JldHJ5X2dldHMpKQotKyAg ICAgICAgICAgIHx8ICFURVNUX3RydWUoQklPX21ldGhfc2V0X2N0cmwobWV0aF9hbHdheXNfcmV0 cnksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHdheXNf cmV0cnlfY3RybCkpCi0rICAgICAgICAgICAgfHwgIVRFU1RfdHJ1ZShCSU9fbWV0aF9zZXRfY3Jl YXRlKG1ldGhfYWx3YXlzX3JldHJ5LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhbHdheXNfcmV0cnlfbmV3KSkKLSsgICAgICAgICAgICB8fCAhVEVTVF90 cnVlKEJJT19tZXRoX3NldF9kZXN0cm95KG1ldGhfYWx3YXlzX3JldHJ5LAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx3YXlzX3JldHJ5X2ZyZWUpKSkK LSsgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSsgICAgfQotKyAgICByZXR1cm4gbWV0aF9hbHdh eXNfcmV0cnk7Ci0rfQotKwotK3ZvaWQgYmlvX3NfYWx3YXlzX3JldHJ5X2ZyZWUodm9pZCkKLSt7 Ci0rICAgIEJJT19tZXRoX2ZyZWUobWV0aF9hbHdheXNfcmV0cnkpOwotK30KLSsKLStzdGF0aWMg aW50IGFsd2F5c19yZXRyeV9uZXcoQklPICpiaW8pCi0rewotKyAgICBCSU9fc2V0X2luaXQoYmlv LCAxKTsKLSsgICAgcmV0dXJuIDE7Ci0rfQotKwotK3N0YXRpYyBpbnQgYWx3YXlzX3JldHJ5X2Zy ZWUoQklPICpiaW8pCi0rewotKyAgICBCSU9fc2V0X2RhdGEoYmlvLCBOVUxMKTsKLSsgICAgQklP X3NldF9pbml0KGJpbywgMCk7Ci0rICAgIHJldHVybiAxOwotK30KLSsKLStzdGF0aWMgaW50IGFs d2F5c19yZXRyeV9yZWFkKEJJTyAqYmlvLCBjaGFyICpvdXQsIGludCBvdXRsKQotK3sKLSsgICAg QklPX3NldF9yZXRyeV9yZWFkKGJpbyk7Ci0rICAgIHJldHVybiAtMTsKLSt9Ci0rCi0rc3RhdGlj IGludCBhbHdheXNfcmV0cnlfd3JpdGUoQklPICpiaW8sIGNvbnN0IGNoYXIgKmluLCBpbnQgaW5s KQotK3sKLSsgICAgQklPX3NldF9yZXRyeV93cml0ZShiaW8pOwotKyAgICByZXR1cm4gLTE7Ci0r fQotKwotK3N0YXRpYyBsb25nIGFsd2F5c19yZXRyeV9jdHJsKEJJTyAqYmlvLCBpbnQgY21kLCBs b25nIG51bSwgdm9pZCAqcHRyKQotK3sKLSsgICAgbG9uZyByZXQgPSAxOwotKwotKyAgICBzd2l0 Y2ggKGNtZCkgewotKyAgICBjYXNlIEJJT19DVFJMX0ZMVVNIOgotKyAgICAgICAgQklPX3NldF9y ZXRyeV93cml0ZShiaW8pOwotKyAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCi0rICAgIGNhc2Ug QklPX0NUUkxfRU9GOgotKyAgICBjYXNlIEJJT19DVFJMX1JFU0VUOgotKyAgICBjYXNlIEJJT19D VFJMX0RVUDoKLSsgICAgY2FzZSBCSU9fQ1RSTF9QVVNIOgotKyAgICBjYXNlIEJJT19DVFJMX1BP UDoKLSsgICAgZGVmYXVsdDoKLSsgICAgICAgIHJldCA9IDA7Ci0rICAgICAgICBicmVhazsKLSsg ICAgfQotKyAgICByZXR1cm4gcmV0OwotK30KLSsKLStzdGF0aWMgaW50IGFsd2F5c19yZXRyeV9n ZXRzKEJJTyAqYmlvLCBjaGFyICpidWYsIGludCBzaXplKQotK3sKLSsgICAgQklPX3NldF9yZXRy eV9yZWFkKGJpbyk7Ci0rICAgIHJldHVybiAtMTsKLSt9Ci0rCi0rc3RhdGljIGludCBhbHdheXNf cmV0cnlfcHV0cyhCSU8gKmJpbywgY29uc3QgY2hhciAqc3RyKQotK3sKLSsgICAgQklPX3NldF9y ZXRyeV93cml0ZShiaW8pOwotKyAgICByZXR1cm4gLTE7Ci0rfQotKwotIGludCBjcmVhdGVfc3Ns X2N0eF9wYWlyKGNvbnN0IFNTTF9NRVRIT0QgKnNtLCBjb25zdCBTU0xfTUVUSE9EICpjbSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWluX3Byb3RvX3ZlcnNpb24sIGludCBtYXhfcHJv dG9fdmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBTU0xfQ1RYICoqc2N0eCwgU1NM X0NUWCAqKmNjdHgsIGNoYXIgKmNlcnRmaWxlLAotZGlmZiAtLWdpdCBhL3Rlc3Qvc3NsdGVzdGxp Yi5oIGIvdGVzdC9zc2x0ZXN0bGliLmgKLWluZGV4IGZhMTllN2Q4MGQuLjU2ZTMyM2Y1YmMgMTAw NjQ0Ci0tLS0gYS90ZXN0L3NzbHRlc3RsaWIuaAotKysrIGIvdGVzdC9zc2x0ZXN0bGliLmgKLUBA IC0zMCw2ICszMCw5IEBAIHZvaWQgYmlvX2ZfdGxzX2R1bXBfZmlsdGVyX2ZyZWUodm9pZCk7Ci0g Y29uc3QgQklPX01FVEhPRCAqYmlvX3NfbWVtcGFja2V0X3Rlc3Qodm9pZCk7Ci0gdm9pZCBiaW9f c19tZW1wYWNrZXRfdGVzdF9mcmVlKHZvaWQpOwotIAotK2NvbnN0IEJJT19NRVRIT0QgKmJpb19z X2Fsd2F5c19yZXRyeSh2b2lkKTsKLSt2b2lkIGJpb19zX2Fsd2F5c19yZXRyeV9mcmVlKHZvaWQp OwotKwotIC8qIFBhY2tldCB0eXBlcyAtIHZhbHVlIDAgaXMgcmVzZXJ2ZWQgKi8KLSAjZGVmaW5l IElOSkVDVF9QQUNLRVQgICAgICAgICAgICAgICAgICAgMQotICNkZWZpbmUgSU5KRUNUX1BBQ0tF VF9JR05PUkVfUkVDX1NFUSAgICAyCi0tLSAKLTIuMjAuMQorICAgICBBU04xX0lOVEVHRVIgKmFf bWF4X3BsdXNfb25lID0gTlVMTDsKKysgICAgQVNOMV9JTlRFR0VSICpvcmlnOworICAgICBCSUdO VU0gKmJuID0gTlVMTDsKKyAgICAgaW50IGksIHJldCA9IDA7CisgCitAQCAtMjk4LDkgKzI5OSwx NSBAQCBzdGF0aWMgaW50IEFTSWRlbnRpZmllckNob2ljZV9pc19jYW5vbmljYWwoQVNJZGVudGlm aWVyQ2hvaWNlICpjaG9pY2UpCisgICAgICAgICAgKi8KKyAgICAgICAgIGlmICgoYm4gPT0gTlVM TCAmJiAoYm4gPSBCTl9uZXcoKSkgPT0gTlVMTCkgfHwKKyAgICAgICAgICAgICBBU04xX0lOVEVH RVJfdG9fQk4oYV9tYXgsIGJuKSA9PSBOVUxMIHx8CistICAgICAgICAgICAgIUJOX2FkZF93b3Jk KGJuLCAxKSB8fAorLSAgICAgICAgICAgIChhX21heF9wbHVzX29uZSA9CistICAgICAgICAgICAg IEJOX3RvX0FTTjFfSU5URUdFUihibiwgYV9tYXhfcGx1c19vbmUpKSA9PSBOVUxMKSB7CisrICAg ICAgICAgICAgIUJOX2FkZF93b3JkKGJuLCAxKSkgeworKyAgICAgICAgICAgIFg1MDlWM2VycihY NTA5VjNfRl9BU0lERU5USUZJRVJDSE9JQ0VfSVNfQ0FOT05JQ0FMLAorKyAgICAgICAgICAgICAg ICAgICAgICBFUlJfUl9NQUxMT0NfRkFJTFVSRSk7CisrICAgICAgICAgICAgZ290byBkb25lOwor KyAgICAgICAgfQorKworKyAgICAgICAgaWYgKChhX21heF9wbHVzX29uZSA9CisrICAgICAgICAg ICAgICAgIEJOX3RvX0FTTjFfSU5URUdFUihibiwgb3JpZyA9IGFfbWF4X3BsdXNfb25lKSkgPT0g TlVMTCkgeworKyAgICAgICAgICAgIGFfbWF4X3BsdXNfb25lID0gb3JpZzsKKyAgICAgICAgICAg ICBYNTA5VjNlcnIoWDUwOVYzX0ZfQVNJREVOVElGSUVSQ0hPSUNFX0lTX0NBTk9OSUNBTCwKKyAg ICAgICAgICAgICAgICAgICAgICAgRVJSX1JfTUFMTE9DX0ZBSUxVUkUpOworICAgICAgICAgICAg IGdvdG8gZG9uZTsKK0BAIC0zNTEsNiArMzU4LDcgQEAgaW50IFg1MDl2M19hc2lkX2lzX2Nhbm9u aWNhbChBU0lkZW50aWZpZXJzICphc2lkKQorIHN0YXRpYyBpbnQgQVNJZGVudGlmaWVyQ2hvaWNl X2Nhbm9uaXplKEFTSWRlbnRpZmllckNob2ljZSAqY2hvaWNlKQorIHsKKyAgICAgQVNOMV9JTlRF R0VSICphX21heF9wbHVzX29uZSA9IE5VTEw7CisrICAgIEFTTjFfSU5URUdFUiAqb3JpZzsKKyAg ICAgQklHTlVNICpibiA9IE5VTEw7CisgICAgIGludCBpLCByZXQgPSAwOworIAorQEAgLTQxNiw5 ICs0MjQsMTUgQEAgc3RhdGljIGludCBBU0lkZW50aWZpZXJDaG9pY2VfY2Fub25pemUoQVNJZGVu dGlmaWVyQ2hvaWNlICpjaG9pY2UpCisgICAgICAgICAgKi8KKyAgICAgICAgIGlmICgoYm4gPT0g TlVMTCAmJiAoYm4gPSBCTl9uZXcoKSkgPT0gTlVMTCkgfHwKKyAgICAgICAgICAgICBBU04xX0lO VEVHRVJfdG9fQk4oYV9tYXgsIGJuKSA9PSBOVUxMIHx8CistICAgICAgICAgICAgIUJOX2FkZF93 b3JkKGJuLCAxKSB8fAorLSAgICAgICAgICAgIChhX21heF9wbHVzX29uZSA9CistICAgICAgICAg ICAgIEJOX3RvX0FTTjFfSU5URUdFUihibiwgYV9tYXhfcGx1c19vbmUpKSA9PSBOVUxMKSB7Cisr ICAgICAgICAgICAgIUJOX2FkZF93b3JkKGJuLCAxKSkgeworKyAgICAgICAgICAgIFg1MDlWM2Vy cihYNTA5VjNfRl9BU0lERU5USUZJRVJDSE9JQ0VfQ0FOT05JWkUsCisrICAgICAgICAgICAgICAg ICAgICAgIEVSUl9SX01BTExPQ19GQUlMVVJFKTsKKysgICAgICAgICAgICBnb3RvIGRvbmU7Cisr ICAgICAgICB9CisrCisrICAgICAgICBpZiAoKGFfbWF4X3BsdXNfb25lID0KKysgICAgICAgICAg ICAgICAgIEJOX3RvX0FTTjFfSU5URUdFUihibiwgb3JpZyA9IGFfbWF4X3BsdXNfb25lKSkgPT0g TlVMTCkgeworKyAgICAgICAgICAgIGFfbWF4X3BsdXNfb25lID0gb3JpZzsKKyAgICAgICAgICAg ICBYNTA5VjNlcnIoWDUwOVYzX0ZfQVNJREVOVElGSUVSQ0hPSUNFX0NBTk9OSVpFLAorICAgICAg ICAgICAgICAgICAgICAgICBFUlJfUl9NQUxMT0NfRkFJTFVSRSk7CisgICAgICAgICAgICAgZ290 byBkb25lOworY29tbWl0IDg2ZWQ3ODY3NmM2NjBiNTUzNjk2Y2MxMGM2ODI5NjI1MjJkZmViNmMK K0F1dGhvcjogVG9tYXMgTXJheiA8dG1yYXpAZmVkb3JhcHJvamVjdC5vcmc+CitEYXRlOiAgIFRo dSBTZXAgMTIgMTI6Mjc6MzYgMjAxOSArMDIwMAogCi1kaWZmIC11cCBvcGVuc3NsLTEuMS4xYy9p bmNsdWRlL2ludGVybmFsL2NvbnN0YW50X3RpbWVfbG9jbC5oLnZhbGdyaW5kIG9wZW5zc2wtMS4x LjFjL2luY2x1ZGUvaW50ZXJuYWwvY29uc3RhbnRfdGltZV9sb2NsLmgKLS0tLSBvcGVuc3NsLTEu MS4xYy9pbmNsdWRlL2ludGVybmFsL2NvbnN0YW50X3RpbWVfbG9jbC5oLnZhbGdyaW5kCTIwMTkt MDUtMjggMTU6MTI6MjEuMDAwMDAwMDAwICswMjAwCi0rKysgb3BlbnNzbC0xLjEuMWMvaW5jbHVk ZS9pbnRlcm5hbC9jb25zdGFudF90aW1lX2xvY2wuaAkyMDE5LTA2LTI0IDE1OjAyOjEyLjc5NjA1 MzUzNiArMDIwMAotQEAgLTIxMywxOCArMjEzLDY2IEBAIHN0YXRpYyBvc3NsX2lubGluZSB1bnNp Z25lZCBjaGFyIGNvbnN0YW4KLSAgICAgcmV0dXJuIGNvbnN0YW50X3RpbWVfZXFfOCgodW5zaWdu ZWQpKGEpLCAodW5zaWduZWQpKGIpKTsKLSB9Ci0gCi0rLyogUmV0dXJucyB0aGUgdmFsdWUgdW5t b2RpZmllZCwgYnV0IGF2b2lkcyBvcHRpbWl6YXRpb25zLiAqLwotK3N0YXRpYyBvc3NsX2lubGlu ZSB1bnNpZ25lZCBpbnQgdmFsdWVfYmFycmllcih1bnNpZ25lZCBpbnQgYSkKLSt7Ci0rI2lmICFk ZWZpbmVkKE9QRU5TU0xfTk9fQVNNKSAmJiBkZWZpbmVkKF9fR05VQ19fKQotKyAgICB1bnNpZ25l ZCBpbnQgcjsKLSsgICAgX19hc21fXygiIiA6ICI9ciIocikgOiAiMCIoYSkpOwotKyNlbHNlCi0r ICAgIHZvbGF0aWxlIHVuc2lnbmVkIGludCByID0gYTsKLSsjZW5kaWYKLSsgICAgcmV0dXJuIHI7 Ci0rfQotKwotKy8qIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgdWludDMyX3QuICovCi0rc3RhdGlj IG9zc2xfaW5saW5lIHVpbnQzMl90IHZhbHVlX2JhcnJpZXJfMzIodWludDMyX3QgYSkKLSt7Ci0r I2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKSAmJiBkZWZpbmVkKF9fR05VQ19fKQotKyAgICB1 aW50MzJfdCByOwotKyAgICBfX2FzbV9fKCIiIDogIj1yIihyKSA6ICIwIihhKSk7Ci0rI2Vsc2UK LSsgICAgdm9sYXRpbGUgdWludDMyX3QgciA9IGE7Ci0rI2VuZGlmCi0rICAgIHJldHVybiByOwot K30KLSsKLSsvKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIHVpbnQ2NF90LiAqLwotK3N0YXRpYyBv c3NsX2lubGluZSB1aW50NjRfdCB2YWx1ZV9iYXJyaWVyXzY0KHVpbnQ2NF90IGEpCi0rewotKyNp ZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkgJiYgZGVmaW5lZChfX0dOVUNfXykKLSsgICAgdWlu dDY0X3QgcjsKLSsgICAgX19hc21fXygiIiA6ICI9ciIocikgOiAiMCIoYSkpOwotKyNlbHNlCi0r ICAgIHZvbGF0aWxlIHVpbnQ2NF90IHIgPSBhOwotKyNlbmRpZgotKyAgICByZXR1cm4gcjsKLSt9 CisgICAgQklPX2ZfemxpYjogUHJvcGVybHkgaGFuZGxlIEJJT19DVFJMX1BFTkRJTkcgYW5kIEJJ T19DVFJMX1dQRU5ESU5HIGNhbGxzLgorICAgIAorICAgIFRoZXJlIGNhbiBiZSBkYXRhIHRvIHdy aXRlIGluIG91dHB1dCBidWZmZXIgYW5kIGRhdGEgdG8gcmVhZCB0aGF0IHdlcmUKKyAgICBub3Qg eWV0IHJlYWQgaW4gdGhlIGlucHV0IHN0cmVhbS4KKyAgICAKKyAgICBGaXhlcyAjOTg2NgorICAg IAorICAgIFJldmlld2VkLWJ5OiBSaWNoYXJkIExldml0dGUgPGxldml0dGVAb3BlbnNzbC5vcmc+ CisgICAgKE1lcmdlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuc3NsL29wZW5zc2wvcHVs bC85ODc3KQorICAgIAorICAgIChjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDZiZWI4YjM5YmE4 ZTRjYjAwNWMxZmNkMjU4NmJhMTllMTdmMDRiOTUpCisKK2RpZmYgLS1naXQgYS9jcnlwdG8vY29t cC9jX3psaWIuYyBiL2NyeXB0by9jb21wL2NfemxpYi5jCitpbmRleCBkNjg4ZGVlZTVmLi43YzFi ZTM1OGZkIDEwMDY0NAorLS0tIGEvY3J5cHRvL2NvbXAvY196bGliLmMKKysrKyBiL2NyeXB0by9j b21wL2NfemxpYi5jCitAQCAtNTk4LDYgKzU5OCwyOCBAQCBzdGF0aWMgbG9uZyBiaW9femxpYl9j dHJsKEJJTyAqYiwgaW50IGNtZCwgbG9uZyBudW0sIHZvaWQgKnB0cikKKyAgICAgICAgIEJJT19j b3B5X25leHRfcmV0cnkoYik7CisgICAgICAgICBicmVhazsKKyAKKysgICAgY2FzZSBCSU9fQ1RS TF9XUEVORElORzoKKysgICAgICAgIGlmIChjdHgtPm9idWYgPT0gTlVMTCkKKysgICAgICAgICAg ICByZXR1cm4gMDsKKysKKysgICAgICAgIGlmIChjdHgtPm9kb25lKSB7CisrICAgICAgICAgICAg cmV0ID0gY3R4LT5vY291bnQ7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIHJldCA9 IGN0eC0+b2NvdW50OworKyAgICAgICAgICAgIGlmIChyZXQgPT0gMCkKKysgICAgICAgICAgICAg ICAgLyogVW5rbm93biBhbW91bnQgcGVuZGluZyBidXQgd2UgYXJlIG5vdCBmaW5pc2hlZCAqLwor KyAgICAgICAgICAgICAgICByZXQgPSAxOworKyAgICAgICAgfQorKyAgICAgICAgaWYgKHJldCA9 PSAwKQorKyAgICAgICAgICAgIHJldCA9IEJJT19jdHJsKG5leHQsIGNtZCwgbnVtLCBwdHIpOwor KyAgICAgICAgYnJlYWs7CiArCi0rLyogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBzaXplX3QuICov Ci0rc3RhdGljIG9zc2xfaW5saW5lIHNpemVfdCB2YWx1ZV9iYXJyaWVyX3Moc2l6ZV90IGEpCi0r ewotKyNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkgJiYgZGVmaW5lZChfX0dOVUNfXykKLSsg ICAgc2l6ZV90IHI7Ci0rICAgIF9fYXNtX18oIiIgOiAiPXIiKHIpIDogIjAiKGEpKTsKLSsjZWxz ZQotKyAgICB2b2xhdGlsZSBzaXplX3QgciA9IGE7Ci0rI2VuZGlmCi0rICAgIHJldHVybiByOwot K30KKysgICAgY2FzZSBCSU9fQ1RSTF9QRU5ESU5HOgorKyAgICAgICAgcmV0ID0gY3R4LT56aW4u YXZhaWxfaW47CisrICAgICAgICBpZiAocmV0ID09IDApCisrICAgICAgICAgICAgcmV0ID0gQklP X2N0cmwobmV4dCwgY21kLCBudW0sIHB0cik7CisrICAgICAgICBicmVhazsKICsKLSBzdGF0aWMg b3NzbF9pbmxpbmUgdW5zaWduZWQgaW50IGNvbnN0YW50X3RpbWVfc2VsZWN0KHVuc2lnbmVkIGlu dCBtYXNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgYikKLSB7Ci0tICAgIHJldHVybiAobWFz ayAmIGEpIHwgKH5tYXNrICYgYik7Ci0rICAgIHJldHVybiAodmFsdWVfYmFycmllcihtYXNrKSAm IGEpIHwgKHZhbHVlX2JhcnJpZXIofm1hc2spICYgYik7Ci0gfQotIAotIHN0YXRpYyBvc3NsX2lu bGluZSBzaXplX3QgY29uc3RhbnRfdGltZV9zZWxlY3RfcyhzaXplX3QgbWFzaywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGEsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBiKQot IHsKLS0gICAgcmV0dXJuIChtYXNrICYgYSkgfCAofm1hc2sgJiBiKTsKLSsgICAgcmV0dXJuICh2 YWx1ZV9iYXJyaWVyX3MobWFzaykgJiBhKSB8ICh2YWx1ZV9iYXJyaWVyX3Mofm1hc2spICYgYik7 Ci0gfQotIAotIHN0YXRpYyBvc3NsX2lubGluZSB1bnNpZ25lZCBjaGFyIGNvbnN0YW50X3RpbWVf c2VsZWN0XzgodW5zaWduZWQgY2hhciBtYXNrLAotQEAgLTI0OSwxMyArMjk3LDEzIEBAIHN0YXRp YyBvc3NsX2lubGluZSBpbnQgY29uc3RhbnRfdGltZV9zZWwKLSBzdGF0aWMgb3NzbF9pbmxpbmUg dWludDMyX3QgY29uc3RhbnRfdGltZV9zZWxlY3RfMzIodWludDMyX3QgbWFzaywgdWludDMyX3Qg YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgYikKLSB7Ci0tICAgIHJldHVybiAobWFzayAmIGEpIHwgKH5tYXNrICYgYik7Ci0r ICAgIHJldHVybiAodmFsdWVfYmFycmllcl8zMihtYXNrKSAmIGEpIHwgKHZhbHVlX2JhcnJpZXJf MzIofm1hc2spICYgYik7Ci0gfQotIAotIHN0YXRpYyBvc3NsX2lubGluZSB1aW50NjRfdCBjb25z dGFudF90aW1lX3NlbGVjdF82NCh1aW50NjRfdCBtYXNrLCB1aW50NjRfdCBhLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBiKQot IHsKLS0gICAgcmV0dXJuIChtYXNrICYgYSkgfCAofm1hc2sgJiBiKTsKLSsgICAgcmV0dXJuICh2 YWx1ZV9iYXJyaWVyXzY0KG1hc2spICYgYSkgfCAodmFsdWVfYmFycmllcl82NCh+bWFzaykgJiBi KTsKLSB9Ci0gCi0gLyoKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIHJldCA9IEJJT19jdHJsKG5l eHQsIGNtZCwgbnVtLCBwdHIpOworICAgICAgICAgYnJlYWs7CgpkaWZmIC0tZ2l0IGEvb3BlbnNz bC0xLjEuMS12ZXJzaW9uLW92ZXJyaWRlLnBhdGNoIGIvb3BlbnNzbC0xLjEuMS12ZXJzaW9uLW92 ZXJyaWRlLnBhdGNoCmluZGV4IDc5NzBiODQuLmNiZWNiOTAgMTAwNjQ0Ci0tLSBhL29wZW5zc2wt MS4xLjEtdmVyc2lvbi1vdmVycmlkZS5wYXRjaAorKysgYi9vcGVuc3NsLTEuMS4xLXZlcnNpb24t b3ZlcnJpZGUucGF0Y2gKQEAgLTEsMTIgKzEsMTIgQEAKLWRpZmYgLXVwIG9wZW5zc2wtMS4xLjFj L2luY2x1ZGUvb3BlbnNzbC9vcGVuc3Nsdi5oLnZlcnNpb24tb3ZlcnJpZGUgb3BlbnNzbC0xLjEu MWMvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2x2LmgKLS0tLSBvcGVuc3NsLTEuMS4xYy9pbmNsdWRl L29wZW5zc2wvb3BlbnNzbHYuaC52ZXJzaW9uLW92ZXJyaWRlCTIwMTktMDUtMjkgMTU6NTI6MzAu MDE0NzM0ODU5ICswMjAwCi0rKysgb3BlbnNzbC0xLjEuMWMvaW5jbHVkZS9vcGVuc3NsL29wZW5z c2x2LmgJMjAxOS0wNS0yOSAxNTo1MzoyMy4wOTM4MDA4MzEgKzAyMDAKK2RpZmYgLXVwIG9wZW5z c2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3Nsdi5oLnZlcnNpb24tb3ZlcnJpZGUgb3Bl bnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2x2LmgKKy0tLSBvcGVuc3NsLTEuMS4x ZC9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbHYuaC52ZXJzaW9uLW92ZXJyaWRlCTIwMTktMDktMTMg MTU6MjY6MzIuNjA2NTAwMjQ0ICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVu c3NsL29wZW5zc2x2LmgJMjAxOS0wOS0xMyAxNToyNzowMy44MDU5NTA4NjYgKzAyMDAKIEBAIC00 MCw3ICs0MCw3IEBAIGV4dGVybiAiQyIgewogICAqICBtYWpvciBtaW5vciBmaXggZmluYWwgcGF0 Y2gvYmV0YSkKICAgKi8KLSAjIGRlZmluZSBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSICAweDEwMTAx MDNmTAotLSMgZGVmaW5lIE9QRU5TU0xfVkVSU0lPTl9URVhUICAgICJPcGVuU1NMIDEuMS4xYyAg MjggTWF5IDIwMTkiCi0rIyBkZWZpbmUgT1BFTlNTTF9WRVJTSU9OX1RFWFQgICAgIk9wZW5TU0wg MS4xLjFjIEZJUFMgIDI4IE1heSAyMDE5IgorICMgZGVmaW5lIE9QRU5TU0xfVkVSU0lPTl9OVU1C RVIgIDB4MTAxMDEwNGZMCistIyBkZWZpbmUgT1BFTlNTTF9WRVJTSU9OX1RFWFQgICAgIk9wZW5T U0wgMS4xLjFkICAxMCBTZXAgMjAxOSIKKysjIGRlZmluZSBPUEVOU1NMX1ZFUlNJT05fVEVYVCAg ICAiT3BlblNTTCAxLjEuMWQgRklQUyAgMTAgU2VwIDIwMTkiCiAgCiAgLyotCiAgICogVGhlIG1h Y3JvcyBiZWxvdyBhcmUgdG8gYmUgdXNlZCBmb3Igc2hhcmVkIGxpYnJhcnkgKC5zbywgLmRsbCwg Li4uKQoKZGlmZiAtLWdpdCBhL29wZW5zc2wuc3BlYyBiL29wZW5zc2wuc3BlYwppbmRleCAwNjcw YmQ4Li4yZjZmZGZjIDEwMDY0NAotLS0gYS9vcGVuc3NsLnNwZWMKKysrIGIvb3BlbnNzbC5zcGVj CkBAIC0yMSw4ICsyMSw4IEBACiAKIFN1bW1hcnk6IFV0aWxpdGllcyBmcm9tIHRoZSBnZW5lcmFs IHB1cnBvc2UgY3J5cHRvZ3JhcGh5IGxpYnJhcnkgd2l0aCBUTFMgaW1wbGVtZW50YXRpb24KIE5h bWU6IG9wZW5zc2wKLVZlcnNpb246IDEuMS4xYwotUmVsZWFzZTogNiV7P2Rpc3R9CitWZXJzaW9u OiAxLjEuMWQKK1JlbGVhc2U6IDElez9kaXN0fQogRXBvY2g6IDEKICMgV2UgaGF2ZSB0byByZW1v dmUgY2VydGFpbiBwYXRlbnRlZCBhbGdvcml0aG1zIGZyb20gdGhlIG9wZW5zc2wgc291cmNlCiAj IHRhcmJhbGwgd2l0aCB0aGUgaG9iYmxlLW9wZW5zc2wgc2NyaXB0IHdoaWNoIGlzIGluY2x1ZGVk IGJlbG93LgpAQCAtNDAsNyArNDAsNyBAQCBTb3VyY2UxMzogZWN0ZXN0LmMKICMgQnVpbGQgY2hh bmdlcwogUGF0Y2gxOiBvcGVuc3NsLTEuMS4xLWJ1aWxkLnBhdGNoCiBQYXRjaDI6IG9wZW5zc2wt MS4xLjEtZGVmYXVsdHMucGF0Y2gKLVBhdGNoMzogb3BlbnNzbC0xLjEuMC1uby1odG1sLnBhdGNo CitQYXRjaDM6IG9wZW5zc2wtMS4xLjEtbm8taHRtbC5wYXRjaAogUGF0Y2g0OiBvcGVuc3NsLTEu MS4xLW1hbi1yZW5hbWUucGF0Y2gKICMgQnVnIGZpeGVzCiBQYXRjaDIxOiBvcGVuc3NsLTEuMS4w LWlzc3Vlci1oYXNoLnBhdGNoCkBAIC00NTQsNiArNDU0LDkgQEAgZXhwb3J0IExEX0xJQlJBUllf UEFUSAogJWxkY29uZmlnX3NjcmlwdGxldHMgbGlicwogCiAlY2hhbmdlbG9nCisqIEZyaSBTZXAg MTMgMjAxOSBUb23DocWhIE1yw6F6IDx0bXJhekByZWRoYXQuY29tPiAxLjEuMWQtMQorLSB1cGRh dGUgdG8gdGhlIDEuMS4xZCByZWxlYXNlCisKICogRnJpIFNlcCAgNiAyMDE5IFRvbcOhxaEgTXLD oXogPHRtcmF6QHJlZGhhdC5jb20+IDEuMS4xYy02CiAtIHVwc3RyZWFtIGZpeCBmb3Igc3RhdHVz IHJlcXVlc3QgZXh0ZW5zaW9uIG5vbi1jb21wbGlhbmNlICgjMTczNzQ3MSkKIAoKZGlmZiAtLWdp dCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDFjMDEzYTQuLjc4N2YxNTAgMTAwNjQ0Ci0tLSBh L3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBAQAotU0hBNTEyIChvcGVuc3NsLTEuMS4x Yy1ob2JibGVkLnRhci54eikgPSBlNjQ3NjIwOTM2NmQyODRiZDAyZGNhN2U1OWE3YmEyNTYyYWE3 YzU4YzkxZjAwNjNiMWUyYjBmMWE3Zjk2ZmNmZjAwMGUyNmQ5YzZmNTliOTQ0ZTA0N2IzMzA1ZDIz N2VkNDQyZjcwMmRkZDJlOGM2YzdhNGQ1YjEyZTIzYzhkYgorU0hBNTEyIChvcGVuc3NsLTEuMS4x ZC1ob2JibGVkLnRhci54eikgPSBjMzUwZTQ2NjliODJkY2JjN2ZjYzk5NzcyNmUzNzYzOTJlMmVl MGM5MmMzN2E5NTJlYjAyMzY5ZjA1NzgwYThkMWIwYzI2NWY2MjY0Y2UwZTc2MTllNDQyMDBkMmQw NTdlM2ZkY2IwZmUyMmMxNjhkZmIyOGU5MzgxODQxZmMwMAo=