[Patch] OpenMP: Fortran + ME - update for spatial dimensions + message clause
Tobias Burnus <[email protected]> Mon, 27 Jul 2026 10:29:47 +0200
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.fortran |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------iCsM76R7KSqxfIvCzg0iVfNl Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Not yet implemented: C/C++ parser support (once done, some tree-usage cleanup can be done) nor actually passing anything to the runtime library. This patch does two things: * Add new clause parsing for Fortran: 'message'/'severity' clauses in target, teams, and parallel [Effective for num_teams - and via 'thread_limit(strict:' and 'num_threads(strict:') in the case an error appears.] * Modify the ME trees to be able to pass message/severity and also num_teams, thread_limit, num_threads with 'strict' and 'dims(…)' modifier (and num_threads also multiple values w/o 'dims(…)' for nested parallel). Due to the latter, the 'sorry, unimplemented' has been moved from the Fortran FE to omp-expand.cc. With '(relaxed : n)' and '(relaxed,dim(1) : n)' the effect is the same just using '(n)'. For those, no error is shown and the normal code is executed. Likewise for 'message' combined with 'relaxed' as then no error termination happens (not for 'target'; that will arrived with a num_teams in omp-expand.cc and it is easier just to print a sorry than handle the special case.) Comments, suggestions, remarks? Tobias PS: Usage: - num_threads / thread_limit: 'strict' permits an error diagnostic if the number of actual threads is less than requested. message(<string>) and serverity(fatal|warning) permits to tune that diagnostic. - Opposite is 'relaxed'. - num_thread( [lower :] upper) already implies 'strict', esp. as the default lower bound is the upper bound. Now message/severity can tune the diagnostic here as well. - for all three clauses, 'dim(n): <list> permits to specify spatical dimensions (n == 1 matches the current settings, except that 'strict' is implied). - num_teams permits (also without 'dims(...)' multiple values, to be used with tree nesting. To be usable, this requires passing the additional data to the runtime library and making use of it. As that's not done, yet. An sorry message is still printed. For the spatial dimensions, GCC already implements the API routines - but assumes that only 'dim(1)' appears (in line what the compiler produces), cf. https://gcc.gnu.org/onlinedocs/libgomp/Multidimensional-Support-Routines.html --------------iCsM76R7KSqxfIvCzg0iVfNl Content-Type: text/x-patch; charset=UTF-8; name="spatial-ME.diff" Content-Disposition: attachment; filename="spatial-ME.diff" Content-Transfer-Encoding: base64 T3Blbk1QOiBGb3J0cmFuICsgTUUgLSB1cGRhdGUgZm9yIHNwYXRpYWwgZGltZW5zaW9ucyAr IG1lc3NhZ2UgY2xhdXNlCgpBZGQgJ21lc3NhZ2UnICsgJ3NldmVyaXR5JyBjbGF1c2UgdG8g dGFyZ2V0LCB0ZWFtcywgYW5kIHBhcmFsbGVsLgpUcmFuc2xhdGUgdGhvc2UgYW5kIGhhbmRs ZSBzdHJpY3QvZGltcyBtb2RpZmllcnMgdG8gbnVtX3RlYW1zLCB0aHJlYWRfbGltaXQKYW5k IG51bV90aHJlYWRzIC0gdGhlIGxhdHRlciBhbHNvIHBlcm1pdHMgbXVsdGlwbGUgdmFsdWVz IHdpdGhvdXQgJ2RpbXMnLgoKV2l0aCB0aGlzIGNvbW1pdCwgdGhlICdzb3JyeSwgdW5pbXBs ZW1lbnRlZCcgaXMgbW92ZWQgZnJvbSB0aGUgRm9ydHJhbgpmcm9udCBlbmQgdG8gdGhlIG1p ZGRsZSBlbmQgKG9tcC1leHBhbmQuY2MpLiAgTm90ZSB0aGF0IHBhcnNlciBzdXBwb3J0CmZv ciBDIGFuZCBDKysgc3RpbGwgaGFzIHRvIGJlIGFkZGVkLgoKZ2NjL2ZvcnRyYW4vQ2hhbmdl TG9nOgoKCSogZHVtcC1wYXJzZS10cmVlLmNjIChzaG93X29tcF9jbGF1c2VzKTogRml4ICdt ZXNzYWdlJyBjbGF1c2UgbmFtZS4KCSogb3Blbm1wLmNjIChnZmNfbWF0Y2hfb21wX2NsYXVz ZXMpOiBJbXByb3ZlIG51bV90ZWFtJ3MgZXJyb3IKCWRpYWdub3N0aWMuCgkoT01QX1BBUkFM TEVMX0NMQVVTRVMsIE9NUF9UQVJHRVRfQ0xBVVNFUywgT01QX1RFQU1TX0NMQVVTRVMpOiBB ZGQKCU9NUF9DTEFVU0VfTUVTU0FHRSBhbmQgT01QX0NMQVVTRV9TRVZFUklUWS4KCSogdHJh bnMtb3Blbm1wLmNjIChnZmNfc3BsaXRfb21wX2NsYXVzZXMpOiBIYW5kbGUgbWVzc2FnZS9z ZXZlcml0eS4KCShnZmNfdHJhbnNfb21wX2NsYXVzZXMpOiBMaWtld2lzZTsgcmVwbGFjZSAn c29ycnknIGJ5IHVwZGF0ZWQgdHJlZQoJZ2VuZXJhdGlvbiBmb3IgbnVtX3RlYW1zLCBudW1f dGhyZWFkcywgdGhyZWFkX251bSBjbGF1c2VzLgoKZ2NjL0NoYW5nZUxvZzoKCgkqIGdpbXBs aWZ5LmNjIChnaW1wbGlmeV9zY2FuX29tcF9jbGF1c2VzKTogSGFuZGxlIGFsc28gVFJFRV9M SVNUCglmb3IgbnVtX3RlYW1zLCBudW1fdGhyZWFkcywgdGhyZWFkX251bSBjbGF1c2VzLiBB ZGQgbWVzc2FnZSBjbGF1c2UKCXRvIHN3aXRjaCBzdGF0ZW1lbnQuCgkqIG9tcC1leHBhbmQu Y2MgKGV4cGFuZF9wYXJhbGxlbF9jYWxsLCBleHBhbmRfdGVhbXNfY2FsbCwKCWdldF90YXJn ZXRfYXJndW1lbnRzKTogSGFuZGxlLCBtb3N0bHkgd2l0aCAnc29ycnksIHVuaW1wbGVtZW50 ZWQnLAoJdGhlICdkaW1zJyBhbmQgJ3N0cmljdCcgbW9kaWZpZXJzIGFuZCB0aGUgJ21lc3Nh Z2UnIGNsYXVzZS4KCSogb21wLWxvdy5jYyAoc2Nhbl9zaGFyaW5nX2NsYXVzZXMpOiBBZGQg bWVzc2FnZSBjbGF1c2UgdG8gc3dpdGNoLgoJKGxvd2VyX29tcF90ZWFtcyk6IEhhbmRsZSBU UkVFX0xJU1QgZm9yIG51bV90aHJlYWRzICsgdGhyZWFkX251bS4KCSogdHJlZS1jb3JlLmgg KGVudW0gb21wX2NsYXVzZV9jb2RlKTogQWRkIE9NUF9DTEFVU0VfTUVTU0FHRS4KCSogdHJl ZS1wcmV0dHktcHJpbnQuY2MgKGR1bXBfb21wX2NsYXVzZSk6IEhhbmRsZSAnbWVzc2FnZScg Y2xhdXNlLAoJdXBkYXRlIG51bV90ZWFtcywgbnVtX3RocmVhZHMsIHRocmVhZF9udW0gY2xh dXNlIHByaW50aW5nLgoJKiB0cmVlLmNjIChvbXBfY2xhdXNlX251bV9vcHMsIG9tcF9jbGF1 c2VfY29kZV9uYW1lKTogVXBkYXRlIGZvcgoJbWVzc2FnZSBjbGF1c2UuCgkqIHRyZWUuaCAo T01QX0NMQVVTRV9OVU1fVEhSRUFEU19TVFJJQ1QsCglPTVBfQ0xBVVNFX1RIUkVBRF9MSU1J VF9TVFJJQ1QsIE9NUF9DTEFVU0VfTlVNX1RFQU1TX0RJTVMsCglPTVBfQ0xBVVNFX05VTV9U SFJFQURTX0RJTVMsIE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX0RJTVMsCglPTVBfQ0xBVVNF X01FU1NBR0VfRVhQUiwgT01QX0NMQVVTRV9NRVNTQUdFX0xFTiwKCU9NUF9DTEFVU0VfTUVT U0FHRV9TRVZFUklUWV9XQVJOKTogTmV3LgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJ KiBnZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5zaW9ucy0xLmY5MDogTW92ZSB0byBn aW1wbGUgZHVtcHMKCWFuZCBleHRlbmQgdHJlZS1kdW1wIGNoZWNraW5nLgoJKiBnZm9ydHJh bi5kZy9nb21wL3NwYXRpYWwtZGltZW5zaW9ucy0yLmY5MDogUmVtb3ZlIHNvcnJ5IGFuZAoJ Y2hlY2sgb21wbG93ZXIgYW5kIG9tcGV4cCB0cmVlIGR1bXBzLgoJKiBnZm9ydHJhbi5kZy9n b21wL3NwYXRpYWwtZGltZW5zaW9ucy0zLmY5MDogVXBkYXRlIGRnLWVycm9yLgoJKiBnZm9y dHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5zaW9ucy00LmY5MDogTmV3IHRlc3QuCgkqIGdm b3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25zLTUuZjkwOiBOZXcgdGVzdC4KCiBn Y2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUuY2MgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMzMgKystLQogZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNjICAgICAgICAgICAg ICAgICAgICAgICAgfCAxMjggKysrKysrKystLS0tLS0tLQogZ2NjL2dpbXBsaWZ5LmNjICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjAgKystCiBnY2Mvb21wLWV4 cGFuZC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzMSArKysrKysr KysrKysrLS0tCiBnY2Mvb21wLWxvdy5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAxMyArKwogLi4uL2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNp b25zLTEuZjkwICAgICAgfCAxNjkgKysrKysrKysrKysrKystLS0tLS0tCiAuLi4vZ2ZvcnRy YW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMtMi5mOTAgICAgICB8ICAxMCArLQogLi4u L2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25zLTMuZjkwICAgICAgfCAgMjAg KystCiAuLi4vZ2ZvcnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMtNC5mOTAgICAg ICB8ICA5OSArKysrKysrKysrKysKIC4uLi9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGlt ZW5zaW9ucy01LmY5MCAgICAgIHwgIDg0ICsrKysrKysrKysKIGdjYy90cmVlLWNvcmUuaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsKIGdjYy90cmVlLXBy ZXR0eS1wcmludC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsrKysrKwog Z2NjL3RyZWUuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDIgKwogZ2NjL3RyZWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMjEgKysrCiAxNSBmaWxlcyBjaGFuZ2VkLCA2MjQgaW5zZXJ0aW9ucygrKSwgMTYw IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJl ZS5jYyBiL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5jYwppbmRleCAzZjFiMzViNzE1 YS4uOGQxM2FjZDg2NTYgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJl ZS5jYworKysgYi9nY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUuY2MKQEAgLTI0NTYsNyAr MjQ1Niw3IEBAIHNob3dfb21wX2NsYXVzZXMgKGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVz ZXMpCiAgICAgfQogICBpZiAob21wX2NsYXVzZXMtPm1lc3NhZ2UpCiAgICAgewotICAgICAg ZnB1dHMgKCIgRVJST1IgKCIsIGR1bXBmaWxlKTsKKyAgICAgIGZwdXRzICgiIE1FU1NBR0Ug KCIsIGR1bXBmaWxlKTsKICAgICAgIHNob3dfZXhwciAob21wX2NsYXVzZXMtPm1lc3NhZ2Up OwogICAgICAgZnB1dGMgKCcpJywgZHVtcGZpbGUpOwogICAgIH0KZGlmZiAtLWdpdCBhL2dj Yy9mb3J0cmFuL29wZW5tcC5jYyBiL2djYy9mb3J0cmFuL29wZW5tcC5jYwppbmRleCBkMTUx YWZmOGE0NS4uMzYxM2RjOGJkNDUgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL29wZW5tcC5j YworKysgYi9nY2MvZm9ydHJhbi9vcGVubXAuY2MKQEAgLTQxMzUsNiArNDEzNSw3IEBAIGdm Y19tYXRjaF9vbXBfY2xhdXNlcyAoZ2ZjX29tcF9jbGF1c2VzICoqY3AsIGNvbnN0IG9tcF9t YXNrIG1hc2ssCiAJCSAgICAgIGdvdG8gZXJyb3I7CiAJCSAgICB9CiAJCSAgYy0+bnVtX3Rl YW1zX2RpbXMgPSB0cnVlOworCQkgIGNvbnRpbnVlOwogCQl9CiAJICAgICAgZWxzZSBpZiAo Z2ZjX21hdGNoICgiJWUgIiwgJmV4cHIpID09IE1BVENIX1lFUykKIAkJewpAQCAtNDE0Mywy MSArNDE0NCwyMCBAQCBnZmNfbWF0Y2hfb21wX2NsYXVzZXMgKGdmY19vbXBfY2xhdXNlcyAq KmNwLCBjb25zdCBvbXBfbWFzayBtYXNrLAogCQkgIGlmIChnZmNfcGVla19hc2NpaV9jaGFy ICgpID09ICc6JykKIAkJICAgIHsKIAkJICAgICAgZXhwciA9IE5VTEw7Ci0JCSAgICAgIGlm IChnZmNfbWF0Y2ggKCI6ICVlICIsICZleHByKSAhPSBNQVRDSF9ZRVMpCi0JCQlnb3RvIGVy cm9yOwotCQkgICAgICBjLT5udW1fdGVhbXNfbGlzdC0+bmV4dCA9IGdmY19nZXRfZXhwcl9s aXN0KCk7Ci0JCSAgICAgIGMtPm51bV90ZWFtc19saXN0LT5uZXh0LT5leHByID0gZXhwcjsK KwkJICAgICAgaWYgKGdmY19tYXRjaCAoIjogJWUgIiwgJmV4cHIpID09IE1BVENIX1lFUykK KwkJCXsKKwkJCSAgYy0+bnVtX3RlYW1zX2xpc3QtPm5leHQgPSBnZmNfZ2V0X2V4cHJfbGlz dCgpOworCQkJICBjLT5udW1fdGVhbXNfbGlzdC0+bmV4dC0+ZXhwciA9IGV4cHI7CisJCQkg IGlmIChnZmNfbWF0Y2ggKCIpICIpID09IE1BVENIX1lFUykKKwkJCSAgICBjb250aW51ZTsK KwkJCX0KIAkJICAgIH0KLQkJICBpZiAoZ2ZjX21hdGNoICgiKSAiKSAhPSBNQVRDSF9ZRVMp Ci0JCSAgICBnb3RvIGVycm9yOworCQkgIGVsc2UgaWYgKGdmY19tYXRjaCAoIikgIikgPT0g TUFUQ0hfWUVTKQorCQkgICAgY29udGludWU7CiAJCX0KLQkgICAgICBlbHNlCi0JCXsKLQkJ ICBnZmNfZXJyb3IgKCJFeHBlY3RlZCBlaXRoZXIgJTxbbG93ZXItZXhwciA6IF0gdXBwZXIt ZXhwciU+IG9yICIKKwkgICAgICBnZmNfZXJyb3IgKCJFeHBlY3RlZCBlaXRoZXIgJTxbbG93 ZXItZXhwciA6IF0gdXBwZXItZXhwciU+IG9yICIKIAkJCSAgICAgIiU8ZGltcyhOKTogZXhw ci1saXN0JT4gYXQgJUMiKTsKLQkJICBnb3RvIGVycm9yOwotCQl9Ci0JICAgICAgY29udGlu dWU7CisJICAgICAgZ290byBlcnJvcjsKIAkgICAgfQogCSAgaWYgKChtYXNrICYgT01QX0NM QVVTRV9OVU1fVEhSRUFEUykKIAkgICAgICAmJiAobSA9IGdmY19tYXRjaF9kdXBsX2NoZWNr ICghYy0+bnVtX3RocmVhZHNfbGlzdCwKQEAgLTU1MzQsNyArNTUzNCw4IEBAIGNsZWFudXA6 CiAgIChvbXBfbWFzayAoT01QX0NMQVVTRV9QUklWQVRFKSB8IE9NUF9DTEFVU0VfRklSU1RQ UklWQVRFCQlcCiAgICB8IE9NUF9DTEFVU0VfU0hBUkVEIHwgT01QX0NMQVVTRV9DT1BZSU4g fCBPTVBfQ0xBVVNFX1JFRFVDVElPTglcCiAgICB8IE9NUF9DTEFVU0VfSUYgfCBPTVBfQ0xB VVNFX05VTV9USFJFQURTIHwgT01QX0NMQVVTRV9ERUZBVUxUCVwKLSAgIHwgT01QX0NMQVVT RV9QUk9DX0JJTkQgfCBPTVBfQ0xBVVNFX0FMTE9DQVRFKQorICAgfCBPTVBfQ0xBVVNFX1BS T0NfQklORCB8IE9NUF9DTEFVU0VfQUxMT0NBVEUgfCBPTVBfQ0xBVVNFX01FU1NBR0UJXAor ICAgfCBPTVBfQ0xBVVNFX1NFVkVSSVRZKQogI2RlZmluZSBPTVBfREVDTEFSRV9TSU1EX0NM QVVTRVMgXAogICAob21wX21hc2sgKE9NUF9DTEFVU0VfU0lNRExFTikgfCBPTVBfQ0xBVVNF X0xJTkVBUgkJCVwKICAgIHwgT01QX0NMQVVTRV9VTklGT1JNCXwgT01QX0NMQVVTRV9BTElH TkVEIHwgT01QX0NMQVVTRV9JTkJSQU5DSAlcCkBAIC01NTgzLDcgKzU1ODQsOCBAQCBjbGVh bnVwOgogICAgfCBPTVBfQ0xBVVNFX0lTX0RFVklDRV9QVFIgfCBPTVBfQ0xBVVNFX0lOX1JF RFVDVElPTgkJCVwKICAgIHwgT01QX0NMQVVTRV9USFJFQURfTElNSVQgfCBPTVBfQ0xBVVNF X0FMTE9DQVRFCQkJXAogICAgfCBPTVBfQ0xBVVNFX0hBU19ERVZJQ0VfQUREUiB8IE9NUF9D TEFVU0VfVVNFU19BTExPQ0FUT1JTCQlcCi0gICB8IE9NUF9DTEFVU0VfRFlOX0dST1VQUFJJ VkFURSB8IE9NUF9DTEFVU0VfREVWSUNFX1RZUEUpCisgICB8IE9NUF9DTEFVU0VfRFlOX0dS T1VQUFJJVkFURSB8IE9NUF9DTEFVU0VfREVWSUNFX1RZUEUJCVwKKyAgIHwgT01QX0NMQVVT RV9NRVNTQUdFIHwgT01QX0NMQVVTRV9TRVZFUklUWSkKICNkZWZpbmUgT01QX1RBUkdFVF9E QVRBX0NMQVVTRVMgXAogICAob21wX21hc2sgKE9NUF9DTEFVU0VfREVWSUNFKSB8IE9NUF9D TEFVU0VfTUFQIHwgT01QX0NMQVVTRV9JRglcCiAgICB8IE9NUF9DTEFVU0VfVVNFX0RFVklD RV9QVFIgfCBPTVBfQ0xBVVNFX1VTRV9ERVZJQ0VfQUREUikKQEAgLTU1OTksNyArNTYwMSw4 IEBAIGNsZWFudXA6CiAjZGVmaW5lIE9NUF9URUFNU19DTEFVU0VTIFwKICAgKG9tcF9tYXNr IChPTVBfQ0xBVVNFX05VTV9URUFNUykgfCBPTVBfQ0xBVVNFX1RIUkVBRF9MSU1JVAkJXAog ICAgfCBPTVBfQ0xBVVNFX0RFRkFVTFQgfCBPTVBfQ0xBVVNFX1BSSVZBVEUgfCBPTVBfQ0xB VVNFX0ZJUlNUUFJJVkFURQlcCi0gICB8IE9NUF9DTEFVU0VfU0hBUkVEIHwgT01QX0NMQVVT RV9SRURVQ1RJT04gfCBPTVBfQ0xBVVNFX0FMTE9DQVRFKQorICAgfCBPTVBfQ0xBVVNFX1NI QVJFRCB8IE9NUF9DTEFVU0VfUkVEVUNUSU9OIHwgT01QX0NMQVVTRV9BTExPQ0FURQlcCisg ICB8IE9NUF9DTEFVU0VfTUVTU0FHRSB8IE9NUF9DTEFVU0VfU0VWRVJJVFkpCiAjZGVmaW5l IE9NUF9ESVNUUklCVVRFX0NMQVVTRVMgXAogICAob21wX21hc2sgKE9NUF9DTEFVU0VfUFJJ VkFURSkgfCBPTVBfQ0xBVVNFX0ZJUlNUUFJJVkFURQkJXAogICAgfCBPTVBfQ0xBVVNFX0xB U1RQUklWQVRFIHwgT01QX0NMQVVTRV9DT0xMQVBTRSB8IE9NUF9DTEFVU0VfRElTVF9TQ0hF RFVMRSBcCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MgYi9nY2Mv Zm9ydHJhbi90cmFucy1vcGVubXAuY2MKaW5kZXggNTJiMTU1NGFjMzMuLjMxYTg0ZDUxZjE2 IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MKKysrIGIvZ2NjL2Zv cnRyYW4vdHJhbnMtb3Blbm1wLmNjCkBAIC01NjQwLDYgKzU2NDAsMzUgQEAgZ2ZjX3RyYW5z X29tcF9jbGF1c2VzIChzdG10YmxvY2tfdCAqYmxvY2ssIGdmY19vbXBfY2xhdXNlcyAqY2xh dXNlcywKICAgICAgIG9tcF9jbGF1c2VzID0gZ2ZjX3RyYW5zX2FkZF9jbGF1c2UgKGMsIG9t cF9jbGF1c2VzKTsKICAgICB9CiAKKyAgaWYgKGNsYXVzZXMtPm1lc3NhZ2UgfHwgY2xhdXNl cy0+c2V2ZXJpdHkgIT0gT01QX1NFVkVSSVRZX1VOU0VUKQorICAgIHsKKyAgICAgIHRyZWUg bWVzc2FnZSA9IE5VTExfVFJFRTsKKyAgICAgIHRyZWUgbGVuID0gTlVMTF9UUkVFOworCisg ICAgICBpZiAoY2xhdXNlcy0+bWVzc2FnZSkKKwl7CisJICBnZmNfaW5pdF9zZSAoJnNlLCBO VUxMKTsKKwkgIGdmY19jb252X2V4cHIgKCZzZSwgY2xhdXNlcy0+bWVzc2FnZSk7CisJICBn ZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnByZSk7CisJICBtZXNzYWdlID0g c2UuZXhwcjsKKwkgIGxlbiA9IHNlLnN0cmluZ19sZW5ndGg7CisJICBpZiAoIURFQ0xfUCAo c2UuZXhwcikpCisJICAgIG1lc3NhZ2UgPSBnZmNfZXZhbHVhdGVfbm93IChtZXNzYWdlLCBi bG9jayk7CisJICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnBvc3QpOwor CisJICBpZiAoIVBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKG1lc3NhZ2UpKSkKKwkgICAg LyogVG8gZW5zdXJlIGFuIEFSUkFZX1RZUEUgaXMgbm90IHBhc3NlZCBhcyBzdWNoLiAgKi8K KwkgICAgbWVzc2FnZSA9IGdmY19idWlsZF9hZGRyX2V4cHIgKE5VTEwsIG1lc3NhZ2UpOwor CX0KKworICAgICAgYyA9IGJ1aWxkX29tcF9jbGF1c2UgKGdmY19nZXRfbG9jYXRpb24gKCZ3 aGVyZSksIE9NUF9DTEFVU0VfTUVTU0FHRSk7CisgICAgICBPTVBfQ0xBVVNFX01FU1NBR0Vf RVhQUiAoYykgPSBtZXNzYWdlOworICAgICAgT01QX0NMQVVTRV9NRVNTQUdFX0xFTiAoYykg PSBsZW47CisgICAgICBpZiAoY2xhdXNlcy0+c2V2ZXJpdHkgPT0gT01QX1NFVkVSSVRZX1dB Uk5JTkcpCisJT01QX0NMQVVTRV9NRVNTQUdFX1NFVkVSSVRZX1dBUk4gKGMpID0gMTsKKyAg ICAgIG9tcF9jbGF1c2VzID0gZ2ZjX3RyYW5zX2FkZF9jbGF1c2UgKGMsIG9tcF9jbGF1c2Vz KTsKKyAgICB9CisKICAgaWYgKGNsYXVzZXMtPm5vdmFyaWFudHMpCiAgICAgewogICAgICAg dHJlZSBub3ZhcmlhbnRzX3ZhcjsKQEAgLTU2NzIsMjkgKzU3MDEsMTUgQEAgZ2ZjX3RyYW5z X29tcF9jbGF1c2VzIChzdG10YmxvY2tfdCAqYmxvY2ssIGdmY19vbXBfY2xhdXNlcyAqY2xh dXNlcywKIAogICBpZiAoY2xhdXNlcy0+bnVtX3RocmVhZHNfbGlzdCkKICAgICB7Ci0gICAg ICB0cmVlIG51bV90aHJlYWRzOwotCi0gICAgICBpZiAoY2xhdXNlcy0+bnVtX3RocmVhZHNf ZGltcykKLQlzb3JyeV9hdCAoZ2ZjX2dldF9sb2NhdGlvbiAoJmNsYXVzZXMtPm51bV90aHJl YWRzX2xpc3QtPmV4cHItPndoZXJlKSwKLQkJICAiJTxudW1fdGhyZWFkcyU+IHdpdGggJTxk aW1zJT4gbW9kaWZpZXIiKTsKLSAgICAgIGVsc2UgaWYgKGNsYXVzZXMtPm51bV90aHJlYWRz X3N0cmljdCkKLQlzb3JyeV9hdCAoZ2ZjX2dldF9sb2NhdGlvbiAoJmNsYXVzZXMtPm51bV90 aHJlYWRzX2xpc3QtPmV4cHItPndoZXJlKSwKLQkJICAiJTxudW1fdGhyZWFkcyU+IHdpdGgg JTxzdHJpY3QlPiBtb2RpZmllciIpOwotICAgICAgZWxzZSBpZiAoY2xhdXNlcy0+bnVtX3Ro cmVhZHNfbGlzdC0+bmV4dCkKLQl7Ci0JICBnZmNfZXhwciAqZXhwciA9IGNsYXVzZXMtPm51 bV90aHJlYWRzX2xpc3QtPm5leHQtPmV4cHI7Ci0JICBzb3JyeV9hdCAoZ2ZjX2dldF9sb2Nh dGlvbiAoJmV4cHItPndoZXJlKSwKLQkJICAgICIlPG51bV90aHJlYWRzJT4gd2l0aCBtb3Jl IHRoYW4gb25lIGFyZ3VtZW50Iik7Ci0JfQotCi0gICAgICBnZmNfaW5pdF9zZSAoJnNlLCBO VUxMKTsKLSAgICAgIGdmY19jb252X2V4cHIgKCZzZSwgY2xhdXNlcy0+bnVtX3RocmVhZHNf bGlzdC0+ZXhwcik7Ci0gICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNl LnByZSk7Ci0gICAgICBudW1fdGhyZWFkcyA9IGdmY19ldmFsdWF0ZV9ub3cgKHNlLmV4cHIs IGJsb2NrKTsKLSAgICAgIGdmY19hZGRfYmxvY2tfdG9fYmxvY2sgKGJsb2NrLCAmc2UucG9z dCk7Ci0KKyAgICAgIHRyZWUgbnVtX3RocmVhZHMgPSBOVUxMX1RSRUU7CisgICAgICBmb3Ig KGdmY19leHByX2xpc3QgKmVsID0gY2xhdXNlcy0+bnVtX3RocmVhZHNfbGlzdDsgZWw7IGVs ID0gZWwtPm5leHQpCisJbnVtX3RocmVhZHMgPSB0cmVlX2NvbnMgKE5VTExfVFJFRSwKKwkJ CQkgZ2ZjX2NvbnZlcnRfZXhwcl90b190cmVlIChibG9jaywgZWwtPmV4cHIpLAorCQkJCSBu dW1fdGhyZWFkcyk7CiAgICAgICBjID0gYnVpbGRfb21wX2NsYXVzZSAoZ2ZjX2dldF9sb2Nh dGlvbiAoJndoZXJlKSwgT01QX0NMQVVTRV9OVU1fVEhSRUFEUyk7Ci0gICAgICBPTVBfQ0xB VVNFX05VTV9USFJFQURTX0VYUFIgKGMpID0gbnVtX3RocmVhZHM7CisgICAgICBPTVBfQ0xB VVNFX05VTV9USFJFQURTX0VYUFIgKGMpID0gbnJldmVyc2UgKG51bV90aHJlYWRzKTsKKyAg ICAgIE9NUF9DTEFVU0VfTlVNX1RIUkVBRFNfU1RSSUNUIChjKSA9IGNsYXVzZXMtPm51bV90 aHJlYWRzX3N0cmljdDsKKyAgICAgIE9NUF9DTEFVU0VfTlVNX1RIUkVBRFNfRElNUyAoYykg PSBjbGF1c2VzLT5udW1fdGhyZWFkc19kaW1zOwogICAgICAgb21wX2NsYXVzZXMgPSBnZmNf dHJhbnNfYWRkX2NsYXVzZSAoYywgb21wX2NsYXVzZXMpOwogICAgIH0KIApAQCAtNTk5NSwz MiArNjAxMCwxNSBAQCBnZmNfdHJhbnNfb21wX2NsYXVzZXMgKHN0bXRibG9ja190ICpibG9j aywgZ2ZjX29tcF9jbGF1c2VzICpjbGF1c2VzLAogCiAgIGlmIChjbGF1c2VzLT5udW1fdGVh bXNfbGlzdCkKICAgICB7Ci0gICAgICB0cmVlIG51bV90ZWFtc19sb3dlciA9IE5VTExfVFJF RSwgbnVtX3RlYW1zX3VwcGVyOwotCi0gICAgICBpZiAoY2xhdXNlcy0+bnVtX3RlYW1zX2Rp bXMpCi0Jc29ycnlfYXQgKGdmY19nZXRfbG9jYXRpb24gKCZjbGF1c2VzLT5udW1fdGVhbXNf bGlzdC0+ZXhwci0+d2hlcmUpLAotCQkgICAgIiU8bnVtX3RlYW1zJT4gd2l0aCAlPGRpbXMl PiBtb2RpZmllciIpOwotCi0gICAgICBnZmNfZXhwcl9saXN0ICplbCA9IGNsYXVzZXMtPm51 bV90ZWFtc19saXN0OwotICAgICAgaWYgKGVsLT5uZXh0KQotCXsKLQkgIGdmY19pbml0X3Nl ICgmc2UsIE5VTEwpOwotCSAgZ2ZjX2NvbnZfZXhwciAoJnNlLCBlbC0+ZXhwcik7Ci0JICBn ZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnByZSk7Ci0JICBudW1fdGVhbXNf bG93ZXIgPSBnZmNfZXZhbHVhdGVfbm93IChzZS5leHByLCBibG9jayk7Ci0JICBnZmNfYWRk X2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnBvc3QpOwotCSAgZWwgPSBlbC0+bmV4dDsK LQl9Ci0KLSAgICAgIGdmY19pbml0X3NlICgmc2UsIE5VTEwpOwotICAgICAgZ2ZjX2NvbnZf ZXhwciAoJnNlLCBlbC0+ZXhwcik7Ci0gICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChi bG9jaywgJnNlLnByZSk7Ci0gICAgICBudW1fdGVhbXNfdXBwZXIgPSBnZmNfZXZhbHVhdGVf bm93IChzZS5leHByLCBibG9jayk7Ci0gICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChi bG9jaywgJnNlLnBvc3QpOwotCisgICAgICB0cmVlIG51bV90ZWFtcyA9IE5VTExfVFJFRTsK KyAgICAgIGZvciAoZ2ZjX2V4cHJfbGlzdCAqZWwgPSBjbGF1c2VzLT5udW1fdGVhbXNfbGlz dDsgZWw7IGVsID0gZWwtPm5leHQpCisJbnVtX3RlYW1zID0gdHJlZV9jb25zIChOVUxMX1RS RUUsCisJCQkgICAgICAgZ2ZjX2NvbnZlcnRfZXhwcl90b190cmVlIChibG9jaywgZWwtPmV4 cHIpLAorCQkJICAgICAgIG51bV90ZWFtcyk7CiAgICAgICBjID0gYnVpbGRfb21wX2NsYXVz ZSAoZ2ZjX2dldF9sb2NhdGlvbiAoJndoZXJlKSwgT01QX0NMQVVTRV9OVU1fVEVBTVMpOwot ICAgICAgT01QX0NMQVVTRV9OVU1fVEVBTVNfTE9XRVJfRVhQUiAoYykgPSBudW1fdGVhbXNf bG93ZXI7Ci0gICAgICBPTVBfQ0xBVVNFX05VTV9URUFNU19VUFBFUl9FWFBSIChjKSA9IG51 bV90ZWFtc191cHBlcjsKKyAgICAgIE9NUF9DTEFVU0VfTlVNX1RFQU1TX0xPV0VSX0VYUFIg KGMpID0gTlVMTF9UUkVFOworICAgICAgT01QX0NMQVVTRV9OVU1fVEVBTVNfVVBQRVJfRVhQ UiAoYykgPSBucmV2ZXJzZSAobnVtX3RlYW1zKTsKKyAgICAgIE9NUF9DTEFVU0VfTlVNX1RF QU1TX0RJTVMgKGMpID0gY2xhdXNlcy0+bnVtX3RlYW1zX2RpbXM7CiAgICAgICBvbXBfY2xh dXNlcyA9IGdmY190cmFuc19hZGRfY2xhdXNlIChjLCBvbXBfY2xhdXNlcyk7CiAgICAgfQog CkBAIC02MDQ1LDIyICs2MDQzLDE1IEBAIGdmY190cmFuc19vbXBfY2xhdXNlcyAoc3RtdGJs b2NrX3QgKmJsb2NrLCBnZmNfb21wX2NsYXVzZXMgKmNsYXVzZXMsCiAKICAgaWYgKGNsYXVz ZXMtPnRocmVhZF9saW1pdF9saXN0KQogICAgIHsKLSAgICAgIHRyZWUgdGhyZWFkX2xpbWl0 OwotCi0gICAgICBpZiAoY2xhdXNlcy0+dGhyZWFkX2xpbWl0X2RpbXMpCi0Jc29ycnlfYXQg KGdmY19nZXRfbG9jYXRpb24gKCZjbGF1c2VzLT50aHJlYWRfbGltaXRfbGlzdC0+ZXhwci0+ d2hlcmUpLAotCQkgICAgIiU8dGhyZWFkX2xpbWl0JT4gd2l0aCAlPGRpbXMlPiBtb2RpZmll ciIpOwotICAgICAgZWxzZSBpZiAoY2xhdXNlcy0+dGhyZWFkX2xpbWl0X3N0cmljdCkKLQlz b3JyeV9hdCAoZ2ZjX2dldF9sb2NhdGlvbiAoJmNsYXVzZXMtPnRocmVhZF9saW1pdF9saXN0 LT5leHByLT53aGVyZSksCi0JCSAgICAiJTx0aHJlYWRfbGltaXQlPiB3aXRoICU8c3RyaWN0 JT4gbW9kaWZpZXIiKTsKLSAgICAgIGdmY19pbml0X3NlICgmc2UsIE5VTEwpOwotICAgICAg Z2ZjX2NvbnZfZXhwciAoJnNlLCBjbGF1c2VzLT50aHJlYWRfbGltaXRfbGlzdC0+ZXhwcik7 Ci0gICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnByZSk7Ci0gICAg ICB0aHJlYWRfbGltaXQgPSBnZmNfZXZhbHVhdGVfbm93IChzZS5leHByLCBibG9jayk7Ci0g ICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnBvc3QpOwotCisgICAg ICB0cmVlIHRocmVhZF9saW1pdCA9IE5VTExfVFJFRTsKKyAgICAgIGZvciAoZ2ZjX2V4cHJf bGlzdCAqZWwgPSBjbGF1c2VzLT50aHJlYWRfbGltaXRfbGlzdDsgZWw7IGVsID0gZWwtPm5l eHQpCisJdGhyZWFkX2xpbWl0ID0gdHJlZV9jb25zIChOVUxMX1RSRUUsCisJCQkJICBnZmNf Y29udmVydF9leHByX3RvX3RyZWUgKGJsb2NrLCBlbC0+ZXhwciksCisJCQkJICB0aHJlYWRf bGltaXQpOwogICAgICAgYyA9IGJ1aWxkX29tcF9jbGF1c2UgKGdmY19nZXRfbG9jYXRpb24g KCZ3aGVyZSksIE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUKTsKLSAgICAgIE9NUF9DTEFVU0Vf VEhSRUFEX0xJTUlUX0VYUFIgKGMpID0gdGhyZWFkX2xpbWl0OworICAgICAgT01QX0NMQVVT RV9USFJFQURfTElNSVRfRVhQUiAoYykgPSBucmV2ZXJzZSAodGhyZWFkX2xpbWl0KTsKKyAg ICAgIE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX1NUUklDVCAoYykgPSBjbGF1c2VzLT50aHJl YWRfbGltaXRfc3RyaWN0OworICAgICAgT01QX0NMQVVTRV9USFJFQURfTElNSVRfRElNUyAo YykgPSBjbGF1c2VzLT50aHJlYWRfbGltaXRfZGltczsKICAgICAgIG9tcF9jbGF1c2VzID0g Z2ZjX3RyYW5zX2FkZF9jbGF1c2UgKGMsIG9tcF9jbGF1c2VzKTsKICAgICB9CiAKQEAgLTg1 MjcsNiArODUxOCwxMCBAQCBnZmNfc3BsaXRfb21wX2NsYXVzZXMgKGdmY19jb2RlICpjb2Rl LAogCSAgICA9IGNvZGUtPmV4dC5vbXBfY2xhdXNlcy0+bm93YWl0OwogCSAgY2xhdXNlc2Fb R0ZDX09NUF9TUExJVF9UQVJHRVRdLmRldmljZV90eXBlCiAJICAgID0gY29kZS0+ZXh0Lm9t cF9jbGF1c2VzLT5kZXZpY2VfdHlwZTsKKwkgIGNsYXVzZXNhW0dGQ19PTVBfU1BMSVRfVEFS R0VUXS5tZXNzYWdlCisJICAgID0gY29kZS0+ZXh0Lm9tcF9jbGF1c2VzLT5tZXNzYWdlOwor CSAgY2xhdXNlc2FbR0ZDX09NUF9TUExJVF9UQVJHRVRdLnNldmVyaXR5CisJICAgID0gY29k ZS0+ZXh0Lm9tcF9jbGF1c2VzLT5zZXZlcml0eTsKIAl9CiAgICAgICBpZiAobWFzayAmIEdG Q19PTVBfTUFTS19URUFNUykKIAl7CkBAIC04NTQ3LDYgKzg1NDIsMTEgQEAgZ2ZjX3NwbGl0 X29tcF9jbGF1c2VzIChnZmNfY29kZSAqY29kZSwKIAkgICAgPSBjb2RlLT5leHQub21wX2Ns YXVzZXMtPmxpc3RzW09NUF9MSVNUX1NIQVJFRF07CiAJICBjbGF1c2VzYVtHRkNfT01QX1NQ TElUX1RFQU1TXS5kZWZhdWx0X3NoYXJpbmcKIAkgICAgPSBjb2RlLT5leHQub21wX2NsYXVz ZXMtPmRlZmF1bHRfc2hhcmluZzsKKwkgIC8qIE1lc3NhZ2UgaXMgdXNlZCBvbiB0YXJnZXQs IHRlYW1zLCBhbmQgcGFyYWxsZWwuICAqLworCSAgY2xhdXNlc2FbR0ZDX09NUF9TUExJVF9U RUFNU10ubWVzc2FnZQorCSAgICA9IGNvZGUtPmV4dC5vbXBfY2xhdXNlcy0+bWVzc2FnZTsK KwkgIGNsYXVzZXNhW0dGQ19PTVBfU1BMSVRfVEVBTVNdLnNldmVyaXR5CisJICAgID0gY29k ZS0+ZXh0Lm9tcF9jbGF1c2VzLT5zZXZlcml0eTsKIAl9CiAgICAgICBpZiAobWFzayAmIEdG Q19PTVBfTUFTS19ESVNUUklCVVRFKQogCXsKQEAgLTg1ODksNiArODU4OSwxMCBAQCBnZmNf c3BsaXRfb21wX2NsYXVzZXMgKGdmY19jb2RlICpjb2RlLAogCSAgLyogQW5kIHRoaXMgaXMg Y29waWVkIHRvIGFsbC4gICovCiAJICBjbGF1c2VzYVtHRkNfT01QX1NQTElUX1BBUkFMTEVM XS5pZl9leHByCiAJICAgID0gY29kZS0+ZXh0Lm9tcF9jbGF1c2VzLT5pZl9leHByOworCSAg Y2xhdXNlc2FbR0ZDX09NUF9TUExJVF9QQVJBTExFTF0ubWVzc2FnZQorCSAgICA9IGNvZGUt PmV4dC5vbXBfY2xhdXNlcy0+bWVzc2FnZTsKKwkgIGNsYXVzZXNhW0dGQ19PTVBfU1BMSVRf UEFSQUxMRUxdLnNldmVyaXR5CisJICAgID0gY29kZS0+ZXh0Lm9tcF9jbGF1c2VzLT5zZXZl cml0eTsKIAl9CiAgICAgICBpZiAobWFzayAmIEdGQ19PTVBfTUFTS19NQVNLRUQpCiAJY2xh dXNlc2FbR0ZDX09NUF9TUExJVF9NQVNLRURdLmZpbHRlciA9IGNvZGUtPmV4dC5vbXBfY2xh dXNlcy0+ZmlsdGVyOwpkaWZmIC0tZ2l0IGEvZ2NjL2dpbXBsaWZ5LmNjIGIvZ2NjL2dpbXBs aWZ5LmNjCmluZGV4IDIyM2I1NWI3ZTkzLi5lZDYzN2QyZGU0NiAxMDA2NDQKLS0tIGEvZ2Nj L2dpbXBsaWZ5LmNjCisrKyBiL2djYy9naW1wbGlmeS5jYwpAQCAtMTQ4MjksNyArMTQ4Mjks MjMgQEAgZ2ltcGxpZnlfc2Nhbl9vbXBfY2xhdXNlcyAodHJlZSAqbGlzdF9wLCBnaW1wbGVf c2VxICpwcmVfcCwKIAljYXNlIE9NUF9DTEFVU0VfV09SS0VSOgogCWNhc2UgT01QX0NMQVVT RV9WRUNUT1I6CiAJICBpZiAoT01QX0NMQVVTRV9PUEVSQU5EIChjLCAwKQotCSAgICAgICYm ICFpc19naW1wbGVfbWluX2ludmFyaWFudCAoT01QX0NMQVVTRV9PUEVSQU5EIChjLCAwKSkp CisJICAgICAgJiYgVFJFRV9DT0RFIChPTVBfQ0xBVVNFX09QRVJBTkQgKGMsIDApKSA9PSBU UkVFX0xJU1QpCisJICAgIHsKKwkgICAgICBmb3IgKHRyZWUgdCA9IE9NUF9DTEFVU0VfT1BF UkFORCAoYywgMCk7IHQ7IHQgPSBUUkVFX0NIQUlOICh0KSkKKwkJaWYgKCFpc19naW1wbGVf bWluX2ludmFyaWFudCAoVFJFRV9WQUxVRSAodCkpKQorCQkgIHsKKwkJICAgIGlmIChlcnJv cl9vcGVyYW5kX3AgKFRSRUVfVkFMVUUgKHQpKSkKKwkJICAgICAgeworCQkJcmVtb3ZlID0g dHJ1ZTsKKwkJCWJyZWFrOworCQkgICAgICB9CisJCSAgICBUUkVFX1ZBTFVFICh0KQorCQkg ICAgICA9IGdldF9pbml0aWFsaXplZF90bXBfdmFyIChUUkVFX1ZBTFVFICh0KSwgcHJlX3As CisJCQkJCQkgTlVMTCwgdHJ1ZSk7CisJCSAgfQorCSAgICB9CisJICBlbHNlIGlmIChPTVBf Q0xBVVNFX09QRVJBTkQgKGMsIDApCisJCSAgICYmICFpc19naW1wbGVfbWluX2ludmFyaWFu dCAoT01QX0NMQVVTRV9PUEVSQU5EIChjLCAwKSkpCiAJICAgIHsKIAkgICAgICBpZiAoZXJy b3Jfb3BlcmFuZF9wIChPTVBfQ0xBVVNFX09QRVJBTkQgKGMsIDApKSkKIAkJewpAQCAtMTQ4 NzcsNiArMTQ4OTMsNyBAQCBnaW1wbGlmeV9zY2FuX29tcF9jbGF1c2VzICh0cmVlICpsaXN0 X3AsIGdpbXBsZV9zZXEgKnByZV9wLAogCWNhc2UgT01QX0NMQVVTRV9TRVE6CiAJY2FzZSBP TVBfQ0xBVVNFX0lOREVQRU5ERU5UOgogCWNhc2UgT01QX0NMQVVTRV9NRVJHRUFCTEU6CisJ Y2FzZSBPTVBfQ0xBVVNFX01FU1NBR0U6CiAJY2FzZSBPTVBfQ0xBVVNFX1BST0NfQklORDoK IAljYXNlIE9NUF9DTEFVU0VfU0FGRUxFTjoKIAljYXNlIE9NUF9DTEFVU0VfU0lNRExFTjoK QEAgLTE2NDMyLDYgKzE2NDQ5LDcgQEAgZW5kX2FkanVzdF9vbXBfbWFwX2NsYXVzZToKIAlj YXNlIE9NUF9DTEFVU0VfRVhDTFVTSVZFOgogCWNhc2UgT01QX0NMQVVTRV9VU0VTX0FMTE9D QVRPUlM6CiAJY2FzZSBPTVBfQ0xBVVNFX0RFVklDRV9UWVBFOgorCWNhc2UgT01QX0NMQVVT RV9NRVNTQUdFOgogCSAgYnJlYWs7CiAKIAljYXNlIE9NUF9DTEFVU0VfTk9IT1NUOgpkaWZm IC0tZ2l0IGEvZ2NjL29tcC1leHBhbmQuY2MgYi9nY2Mvb21wLWV4cGFuZC5jYwppbmRleCAw ZDgwMWUwZDY4YS4uZDZjNDRlYmRiZTIgMTAwNjQ0Ci0tLSBhL2djYy9vbXAtZXhwYW5kLmNj CisrKyBiL2djYy9vbXAtZXhwYW5kLmNjCkBAIC02NjEsNiArNjYxLDI1IEBAIGV4cGFuZF9w YXJhbGxlbF9jYWxsIChzdHJ1Y3Qgb21wX3JlZ2lvbiAqcmVnaW9uLCBiYXNpY19ibG9jayBi YiwKICAgICB7CiAgICAgICB2YWwgPSBPTVBfQ0xBVVNFX05VTV9USFJFQURTX0VYUFIgKGMp OwogICAgICAgY2xhdXNlX2xvYyA9IE9NUF9DTEFVU0VfTE9DQVRJT04gKGMpOworICAgICAg aWYgKFRSRUVfQ09ERSAodmFsKSA9PSBUUkVFX0xJU1QpCisJeworCSAgaWYgKE9NUF9DTEFV U0VfTlVNX1RIUkVBRFNfRElNUyAoYykKKwkgICAgICAmJiAoVFJFRV9DSEFJTiAodmFsKSB8 fCBPTVBfQ0xBVVNFX05VTV9USFJFQURTX1NUUklDVCAoYykpKQorCSAgICAvKiBBY2NlcHQg J2RpbSgxKSxyZWxheGVkJy4gKi8KKwkgICAgc29ycnlfYXQgKGNsYXVzZV9sb2MsCisJCSAg ICAgICIlPG51bV90aHJlYWRzJT4gY2xhdXNlIHdpdGggJTxkaW1zJT4gbW9kaWZpZXIiKTsK KwkgIGVsc2UgaWYgKFRSRUVfQ0hBSU4gKHZhbCkpCisJICAgIHNvcnJ5X2F0IChjbGF1c2Vf bG9jLAorCQkgICAgICAiJTxudW1fdGhyZWFkcyU+IGNsYXVzZSB3aXRoIG1vcmUgdGhhbiBv bmUgYXJndW1lbnQiKTsKKwkgIGVsc2UgaWYgKE9NUF9DTEFVU0VfTlVNX1RIUkVBRFNfU1RS SUNUIChjKSkKKwkgICAgc29ycnlfYXQgKGNsYXVzZV9sb2MsCisJCSAgICAgICIlPG51bV90 aHJlYWRzJT4gY2xhdXNlIHdpdGggJTxzdHJpY3QlPiBtb2RpZmllciIpOworCSAgdmFsID0g VFJFRV9WQUxVRSAodmFsKTsKKwl9CisgICAgICBlbHNlIGlmIChPTVBfQ0xBVVNFX05VTV9U SFJFQURTX1NUUklDVCAoYykpCisJc29ycnlfYXQgKGNsYXVzZV9sb2MsCisJCSAgIiU8bnVt X3RocmVhZHMlPiBjbGF1c2Ugd2l0aCAlPHN0cmljdCU+IG1vZGlmaWVyIik7CisgICAgICAv KiBGSVhNRTogSGFuZGxlIE9NUF9DTEFVU0VfTUVTU0FHRSAob25seSByZWxldmFudCB3aXRo ICdzdHJpY3QnKS4gICovCiAgICAgfQogICBlbHNlCiAgICAgY2xhdXNlX2xvYyA9IGdpbXBs ZV9sb2NhdGlvbiAoZW50cnlfc3RtdCk7CkBAIC05NjksMjAgKzk4OCw1NCBAQCBleHBhbmRf dGVhbXNfY2FsbCAoYmFzaWNfYmxvY2sgYmIsIGdvbXBfdGVhbXMgKmVudHJ5X3N0bXQpCiB7 CiAgIHRyZWUgY2xhdXNlcyA9IGdpbXBsZV9vbXBfdGVhbXNfY2xhdXNlcyAoZW50cnlfc3Rt dCk7CiAgIHRyZWUgbnVtX3RlYW1zID0gb21wX2ZpbmRfY2xhdXNlIChjbGF1c2VzLCBPTVBf Q0xBVVNFX05VTV9URUFNUyk7CisgIHRyZWUgdGhyZWFkX2xpbWl0ID0gb21wX2ZpbmRfY2xh dXNlIChjbGF1c2VzLCBPTVBfQ0xBVVNFX1RIUkVBRF9MSU1JVCk7CisgIHRyZWUgbWVzc2Fn ZSA9IG9tcF9maW5kX2NsYXVzZSAoY2xhdXNlcywgT01QX0NMQVVTRV9NRVNTQUdFKTsKKyAg aWYgKG1lc3NhZ2UKKyAgICAgICYmICgodGhyZWFkX2xpbWl0ICYmIE9NUF9DTEFVU0VfVEhS RUFEX0xJTUlUX1NUUklDVCAodGhyZWFkX2xpbWl0KSkKKwkgIHx8IChudW1fdGVhbXMgJiYg KFRSRUVfQ09ERSAobnVtX3RlYW1zKSAhPSBJTlRFR0VSX0NTVAorCQkJICAgIHx8IHRyZWVf aW50X2NzdF9zZ24gKG51bV90ZWFtcykgPCAwKSkpKQorICAgIHNvcnJ5X2F0IChPTVBfQ0xB VVNFX0xPQ0FUSU9OIChtZXNzYWdlKSwgIiU8bWVzc2FnZSU+IGNsYXVzZSIpOwogICBpZiAo bnVtX3RlYW1zID09IE5VTExfVFJFRSkKICAgICBudW1fdGVhbXMgPSBidWlsZF9pbnRfY3N0 ICh1bnNpZ25lZF90eXBlX25vZGUsIDApOwogICBlbHNlCiAgICAgewotICAgICAgbnVtX3Rl YW1zID0gT01QX0NMQVVTRV9OVU1fVEVBTVNfVVBQRVJfRVhQUiAobnVtX3RlYW1zKTsKLSAg ICAgIG51bV90ZWFtcyA9IGZvbGRfY29udmVydCAodW5zaWduZWRfdHlwZV9ub2RlLCBudW1f dGVhbXMpOworICAgICAgdHJlZSBleHByID0gT01QX0NMQVVTRV9OVU1fVEVBTVNfVVBQRVJf RVhQUiAobnVtX3RlYW1zKTsKKyAgICAgIC8qIEZJWE1FOiBJbXBsZW1lbnQgbG93ZXItYm91 bmQgaGFuZGxpbmcgYXMgd2VsbDsgaG93ZXZlciwgY3VycmVudGx5LAorCSBvbiB0aGUgaG9z dCB0aGUgdXNlLXNwZWNpZmllZCB2YWx1ZSBpcyBhbHdheXMgdXNlZC4gICovCisgICAgICBp ZiAoVFJFRV9DT0RFIChleHByKSA9PSBUUkVFX0xJU1QKKwkgICYmIE9NUF9DTEFVU0VfTlVN X1RFQU1TX0RJTVMgKG51bV90ZWFtcykKKwkgICYmIFRSRUVfQ0hBSU4gKGV4cHIpKQorCXsK KwkgIHNvcnJ5X2F0IChPTVBfQ0xBVVNFX0xPQ0FUSU9OIChudW1fdGVhbXMpLAorCQkgICAg IiU8bnVtX3RlYW1zJT4gY2xhdXNlIHdpdGggJTxkaW1zJT4gbW9kaWZpZXIiKTsKKwkgIGV4 cHIgPSBUUkVFX1ZBTFVFIChleHByKTsKKwl9CisgICAgICBlbHNlIGlmIChUUkVFX0NPREUg KGV4cHIpID09IFRSRUVfTElTVCkKKwlleHByID0gKFRSRUVfQ0hBSU4gKGV4cHIpCisJCT8g VFJFRV9WQUxVRSAoVFJFRV9DSEFJTiAoZXhwcikpIDogVFJFRV9WQUxVRSAoZXhwcikpOwor ICAgICAgbnVtX3RlYW1zID0gZm9sZF9jb252ZXJ0ICh1bnNpZ25lZF90eXBlX25vZGUsIGV4 cHIpOwogICAgIH0KLSAgdHJlZSB0aHJlYWRfbGltaXQgPSBvbXBfZmluZF9jbGF1c2UgKGNs YXVzZXMsIE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUKTsKICAgaWYgKHRocmVhZF9saW1pdCA9 PSBOVUxMX1RSRUUpCiAgICAgdGhyZWFkX2xpbWl0ID0gYnVpbGRfaW50X2NzdCAodW5zaWdu ZWRfdHlwZV9ub2RlLCAwKTsKICAgZWxzZQogICAgIHsKLSAgICAgIHRocmVhZF9saW1pdCA9 IE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX0VYUFIgKHRocmVhZF9saW1pdCk7Ci0gICAgICB0 aHJlYWRfbGltaXQgPSBmb2xkX2NvbnZlcnQgKHVuc2lnbmVkX3R5cGVfbm9kZSwgdGhyZWFk X2xpbWl0KTsKKyAgICAgIHRyZWUgZXhwciA9IE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX0VY UFIgKHRocmVhZF9saW1pdCk7CisgICAgICBpZiAoVFJFRV9DT0RFIChleHByKSA9PSBUUkVF X0xJU1QpCisJeworCSAgaWYgKE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX0RJTVMgKHRocmVh ZF9saW1pdCkKKwkgICAgICAmJiAoVFJFRV9DSEFJTiAoZXhwcikKKwkJICB8fCBPTVBfQ0xB VVNFX1RIUkVBRF9MSU1JVF9TVFJJQ1QgKHRocmVhZF9saW1pdCkpKQorCSAgICBzb3JyeV9h dCAoT01QX0NMQVVTRV9MT0NBVElPTiAodGhyZWFkX2xpbWl0KSwKKwkJICAgICAgIiU8dGhy ZWFkX2xpbWl0JT4gY2xhdXNlIHdpdGggJTxkaW1zJT4gbW9kaWZpZXIiKTsKKwkgIGVsc2Ug aWYgKE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX1NUUklDVCAodGhyZWFkX2xpbWl0KSkKKwkg ICAgc29ycnlfYXQgKE9NUF9DTEFVU0VfTE9DQVRJT04gKHRocmVhZF9saW1pdCksCisJCSAg ICAgICIlPHRocmVhZF9saW1pdCU+IGNsYXVzZSB3aXRoICU8c3RyaWN0JT4gbW9kaWZpZXIi KTsKKwkgIGV4cHIgPSBUUkVFX1ZBTFVFIChleHByKTsKKwl9CisgICAgICBlbHNlIGlmIChP TVBfQ0xBVVNFX1RIUkVBRF9MSU1JVF9TVFJJQ1QgKHRocmVhZF9saW1pdCkpCisJc29ycnlf YXQgKE9NUF9DTEFVU0VfTE9DQVRJT04gKHRocmVhZF9saW1pdCksCisJCSAgIiU8dGhyZWFk X2xpbWl0JT4gY2xhdXNlIHdpdGggJTxzdHJpY3QlPiBtb2RpZmllciIpOworICAgICAgdGhy ZWFkX2xpbWl0ID0gZm9sZF9jb252ZXJ0ICh1bnNpZ25lZF90eXBlX25vZGUsIGV4cHIpOwog ICAgIH0KIAogICBnaW1wbGVfc3RtdF9pdGVyYXRvciBnc2kgPSBnc2lfbGFzdF9ub25kZWJ1 Z19iYiAoYmIpOwpAQCAtMTAwMCw3ICsxMDUzLDcgQEAgZXhwYW5kX3RlYW1zX2NhbGwgKGJh c2ljX2Jsb2NrIGJiLCBnb21wX3RlYW1zICplbnRyeV9zdG10KQogICBhcmdzLT5xdWlja19w dXNoICh0MSk7CiAgIGFyZ3MtPnF1aWNrX3B1c2ggKG51bV90ZWFtcyk7CiAgIGFyZ3MtPnF1 aWNrX3B1c2ggKHRocmVhZF9saW1pdCk7Ci0gIC8qIEZvciBmdXR1cmUgZXh0ZW5zaWJpbGl0 eS4gICovCisgIC8qIEZvciBmdXR1cmUgZXh0ZW5zaWJpbGl0eTogZmxhZ3MuICAqLwogICBh cmdzLT5xdWlja19wdXNoIChidWlsZF96ZXJvX2NzdCAodW5zaWduZWRfdHlwZV9ub2RlKSk7 CiAKICAgdCA9IGJ1aWxkX2NhbGxfZXhwcl9sb2NfdmVjIChVTktOT1dOX0xPQ0FUSU9OLApA QCAtOTkzNSwyMiArOTk4OCw2NCBAQCBnZXRfdGFyZ2V0X2FyZ3VtZW50cyAoZ2ltcGxlX3N0 bXRfaXRlcmF0b3IgKmdzaSwgZ29tcF90YXJnZXQgKnRndF9zdG10KQogewogICBhdXRvX3Zl YyA8dHJlZSwgNj4gYXJnczsKICAgdHJlZSBjbGF1c2VzID0gZ2ltcGxlX29tcF90YXJnZXRf Y2xhdXNlcyAodGd0X3N0bXQpOwotICB0cmVlIHQsIGMgPSBvbXBfZmluZF9jbGF1c2UgKGNs YXVzZXMsIE9NUF9DTEFVU0VfTlVNX1RFQU1TKTsKLSAgaWYgKGMpCi0gICAgdCA9IE9NUF9D TEFVU0VfTlVNX1RFQU1TX1VQUEVSX0VYUFIgKGMpOworICB0cmVlIG51bV90ZWFtcyA9IG9t cF9maW5kX2NsYXVzZSAoY2xhdXNlcywgT01QX0NMQVVTRV9OVU1fVEVBTVMpOworICB0cmVl IHRocmVhZF9saW1pdCA9IG9tcF9maW5kX2NsYXVzZSAoY2xhdXNlcywgT01QX0NMQVVTRV9U SFJFQURfTElNSVQpOworICB0cmVlIG1lc3NhZ2UgPSBvbXBfZmluZF9jbGF1c2UgKGNsYXVz ZXMsIE9NUF9DTEFVU0VfTUVTU0FHRSk7CisgIGlmIChtZXNzYWdlKQorICAgIC8qIEZJWE1F OiBlcnJvciB0ZXJtaW5hdGlvbiBjaGVja2luZyBhbHNvIHJlcXVpcmVzIHRvIGNoZWNrCisg ICAgICAgT01QX0NMQVVTRV9OVU1fVEVBTVNfTE9XRVJfRVhQUiBub3Qgb25seSBVUFBFUiwg aS5lLiBpdAorICAgICAgIG5lZWRzIHRvIGJlIHBhc3NlZCB0byB0aGUgcnVudGltZSEgTm90 ZSB0aGF0IGJvdGggdGFyZ2V0IGFuZAorICAgICAgIGEgbmVzdGVkIHRlYW1zIGNhbiBoYXZl IGEgJ21lc3NhZ2UnIGNsYXVzZSAtIGFuZCBib3RoIHRha2UgYQorICAgICAgIHRocmVhZF9s aW1pdCBjbGF1c2UuICAqLworICAgIHNvcnJ5X2F0IChPTVBfQ0xBVVNFX0xPQ0FUSU9OICht ZXNzYWdlKSwgIiU8bWVzc2FnZSU+IGNsYXVzZSIpOworICBpZiAobnVtX3RlYW1zKQorICAg IHsKKyAgICAgIHRyZWUgZXhwciA9IE9NUF9DTEFVU0VfTlVNX1RFQU1TX1VQUEVSX0VYUFIg KG51bV90ZWFtcyk7CisgICAgICAvKiBGSVhNRTogVXBkYXRlIG9tcC1sb3cuY2MncyBsb3dl cl9vbXBfdGVhbXMgd2hlbiBpbXBsZW1lbnRpbmcuICAqLworICAgICAgaWYgKFRSRUVfQ09E RSAoZXhwcikgPT0gVFJFRV9MSVNUCisJICAmJiBPTVBfQ0xBVVNFX05VTV9URUFNU19ESU1T IChudW1fdGVhbXMpCisJICAmJiBUUkVFX0NIQUlOIChleHByKSkKKwl7CisJICBzb3JyeV9h dCAoT01QX0NMQVVTRV9MT0NBVElPTiAobnVtX3RlYW1zKSwKKwkJICAgICIlPG51bV90ZWFt cyU+IGNsYXVzZSB3aXRoICU8ZGltcyU+IG1vZGlmaWVyIik7CisJICBudW1fdGVhbXMgPSBU UkVFX1ZBTFVFIChleHByKTsKKwl9CisgICAgICBlbHNlIGlmIChUUkVFX0NPREUgKGV4cHIp ID09IFRSRUVfTElTVCkKKwludW1fdGVhbXMgPSAoVFJFRV9DSEFJTiAoZXhwcikKKwkJICAg ICA/IFRSRUVfVkFMVUUgKFRSRUVfQ0hBSU4gKGV4cHIpKSA6IFRSRUVfVkFMVUUgKGV4cHIp KTsKKyAgICAgIGVsc2UKKwludW1fdGVhbXMgPSBleHByOworICAgIH0KICAgZWxzZQotICAg IHQgPSBpbnRlZ2VyX21pbnVzX29uZV9ub2RlOworICAgIG51bV90ZWFtcyA9IGludGVnZXJf bWludXNfb25lX25vZGU7CiAgIHB1c2hfdGFyZ2V0X2FyZ3VtZW50X2FjY29yZGluZ190b192 YWx1ZSAoZ3NpLCBHT01QX1RBUkdFVF9BUkdfREVWSUNFX0FMTCwKLQkJCQkJICAgR09NUF9U QVJHRVRfQVJHX05VTV9URUFNUywgdCwgJmFyZ3MpOwotCi0gIGMgPSBvbXBfZmluZF9jbGF1 c2UgKGNsYXVzZXMsIE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUKTsKLSAgaWYgKGMpCi0gICAg dCA9IE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX0VYUFIgKGMpOworCQkJCQkgICBHT01QX1RB UkdFVF9BUkdfTlVNX1RFQU1TLAorCQkJCQkgICBudW1fdGVhbXMsICZhcmdzKTsKKyAgaWYg KHRocmVhZF9saW1pdCkKKyAgICB7CisgICAgICB0cmVlIGV4cHIgPSBPTVBfQ0xBVVNFX1RI UkVBRF9MSU1JVF9FWFBSICh0aHJlYWRfbGltaXQpOworICAgICAgaWYgKFRSRUVfQ09ERSAo ZXhwcikgPT0gVFJFRV9MSVNUKQorCXsKKwkgIGlmIChPTVBfQ0xBVVNFX1RIUkVBRF9MSU1J VF9ESU1TICh0aHJlYWRfbGltaXQpCisJICAgICAgJiYgKFRSRUVfQ0hBSU4gKGV4cHIpCisJ CSAgfHwgT01QX0NMQVVTRV9USFJFQURfTElNSVRfU1RSSUNUICh0aHJlYWRfbGltaXQpKSkK KwkgICAgc29ycnlfYXQgKE9NUF9DTEFVU0VfTE9DQVRJT04gKHRocmVhZF9saW1pdCksCisJ CSAgICAgICIlPHRocmVhZF9saW1pdCU+IGNsYXVzZSB3aXRoICU8ZGltcyU+IG1vZGlmaWVy Iik7CisJICBlbHNlIGlmIChPTVBfQ0xBVVNFX1RIUkVBRF9MSU1JVF9TVFJJQ1QgKHRocmVh ZF9saW1pdCkpCisJICAgIHNvcnJ5X2F0IChPTVBfQ0xBVVNFX0xPQ0FUSU9OICh0aHJlYWRf bGltaXQpLAorCQkgICAgICAiJTx0aHJlYWRfbGltaXQlPiBjbGF1c2Ugd2l0aCAlPHN0cmlj dCU+IG1vZGlmaWVyIik7CisJICBleHByID0gVFJFRV9WQUxVRSAoZXhwcik7CisJfQorICAg ICAgZWxzZSBpZiAoT01QX0NMQVVTRV9USFJFQURfTElNSVRfU1RSSUNUICh0aHJlYWRfbGlt aXQpKQorCXNvcnJ5X2F0IChPTVBfQ0xBVVNFX0xPQ0FUSU9OICh0aHJlYWRfbGltaXQpLAor CQkgICIlPHRocmVhZF9saW1pdCU+IGNsYXVzZSB3aXRoICU8c3RyaWN0JT4gbW9kaWZpZXIi KTsKKyAgICAgIHRocmVhZF9saW1pdCA9IGV4cHI7CisgICAgfQogICBlbHNlCi0gICAgdCA9 IGludGVnZXJfbWludXNfb25lX25vZGU7CisgICAgdGhyZWFkX2xpbWl0ID0gaW50ZWdlcl9t aW51c19vbmVfbm9kZTsKICAgcHVzaF90YXJnZXRfYXJndW1lbnRfYWNjb3JkaW5nX3RvX3Zh bHVlIChnc2ksIEdPTVBfVEFSR0VUX0FSR19ERVZJQ0VfQUxMLAotCQkJCQkgICBHT01QX1RB UkdFVF9BUkdfVEhSRUFEX0xJTUlULCB0LAotCQkJCQkgICAmYXJncyk7CisJCQkJCSAgIEdP TVBfVEFSR0VUX0FSR19USFJFQURfTElNSVQsCisJCQkJCSAgIHRocmVhZF9saW1pdCwgJmFy Z3MpOwogCiAgIC8qIFByb2R1Y2UgbW9yZSwgcGVyaGFwcyBkZXZpY2Ugc3BlY2lmaWMsIGFy Z3VtZW50cyBoZXJlLiAgKi8KIApkaWZmIC0tZ2l0IGEvZ2NjL29tcC1sb3cuY2MgYi9nY2Mv b21wLWxvdy5jYwppbmRleCAxOWVjMzA0ZGM4MS4uNTY3ZjBmODJmMmMgMTAwNjQ0Ci0tLSBh L2djYy9vbXAtbG93LmNjCisrKyBiL2djYy9vbXAtbG93LmNjCkBAIC0xODU4LDYgKzE4NTgs NyBAQCBzY2FuX3NoYXJpbmdfY2xhdXNlcyAodHJlZSBjbGF1c2VzLCBvbXBfY29udGV4dCAq Y3R4KQogCWNhc2UgT01QX0NMQVVTRV9JTklUOgogCWNhc2UgT01QX0NMQVVTRV9VU0U6CiAJ Y2FzZSBPTVBfQ0xBVVNFX0RFU1RST1k6CisJY2FzZSBPTVBfQ0xBVVNFX01FU1NBR0U6CiAJ ICBicmVhazsKIAogCWNhc2UgT01QX0NMQVVTRV9fQ0FDSEVfOgpAQCAtMjA2MSw2ICsyMDYy LDcgQEAgc2Nhbl9zaGFyaW5nX2NsYXVzZXMgKHRyZWUgY2xhdXNlcywgb21wX2NvbnRleHQg KmN0eCkKIAljYXNlIE9NUF9DTEFVU0VfREVTVFJPWToKIAljYXNlIE9NUF9DTEFVU0VfREVW SUNFX1RZUEU6CiAJY2FzZSBPTVBfQ0xBVVNFX1VTRVNfQUxMT0NBVE9SUzoKKwljYXNlIE9N UF9DTEFVU0VfTUVTU0FHRToKIAkgIGJyZWFrOwogCiAJY2FzZSBPTVBfQ0xBVVNFX19DQUNI RV86CkBAIC0xNTA1MSw2ICsxNTA1MywxNCBAQCBsb3dlcl9vbXBfdGVhbXMgKGdpbXBsZV9z dG10X2l0ZXJhdG9yICpnc2lfcCwgb21wX2NvbnRleHQgKmN0eCkKIAkJCSBmYl9ydmFsdWUp OwogCX0KICAgICAgIG51bV90ZWFtcyA9IE9NUF9DTEFVU0VfTlVNX1RFQU1TX1VQUEVSX0VY UFIgKG51bV90ZWFtcyk7CisgICAgICAvLyBGSVhNRTogSGFuZGxlIGRpbSh4KSwgY2YuIG9t cC1leHBhbmQuY2MncyBnZXRfdGFyZ2V0X2FyZ3VtZW50cy4gICovCisgICAgICBpZiAoVFJF RV9DT0RFIChudW1fdGVhbXMpID09IFRSRUVfTElTVCAmJiBUUkVFX0NIQUlOIChudW1fdGVh bXMpKQorCXsKKwkgIG51bV90ZWFtc19sb3dlciA9IFRSRUVfVkFMVUUgKG51bV90ZWFtcyk7 CisJICBudW1fdGVhbXMgPSBUUkVFX1ZBTFVFIChUUkVFX0NIQUlOIChudW1fdGVhbXMpKTsK Kwl9CisgICAgICBlbHNlIGlmIChUUkVFX0NPREUgKG51bV90ZWFtcykgPT0gVFJFRV9MSVNU KQorCW51bV90ZWFtcyA9IFRSRUVfVkFMVUUgKG51bV90ZWFtcyk7CiAgICAgICBudW1fdGVh bXMgPSBmb2xkX2NvbnZlcnQgKHVuc2lnbmVkX3R5cGVfbm9kZSwgbnVtX3RlYW1zKTsKICAg ICAgIGdpbXBsaWZ5X2V4cHIgKCZudW1fdGVhbXMsICZiaW5kX2JvZHksIE5VTEwsIGlzX2dp bXBsZV92YWwsIGZiX3J2YWx1ZSk7CiAgICAgfQpAQCAtMTUwNjMsNiArMTUwNzMsOSBAQCBs b3dlcl9vbXBfdGVhbXMgKGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2lfcCwgb21wX2NvbnRl eHQgKmN0eCkKICAgZWxzZQogICAgIHsKICAgICAgIHRocmVhZF9saW1pdCA9IE9NUF9DTEFV U0VfVEhSRUFEX0xJTUlUX0VYUFIgKHRocmVhZF9saW1pdCk7CisgICAgICAvLyBGSVhNRTog SGFuZGxlIGRpbSh4KSwgY2YuIG9tcC1leHBhbmQuY2MncyBnZXRfdGFyZ2V0X2FyZ3VtZW50 cy4gICovCisgICAgICBpZiAoVFJFRV9DT0RFICh0aHJlYWRfbGltaXQpID09IFRSRUVfTElT VCkKKwl0aHJlYWRfbGltaXQgPSBUUkVFX1ZBTFVFICh0aHJlYWRfbGltaXQpOwogICAgICAg dGhyZWFkX2xpbWl0ID0gZm9sZF9jb252ZXJ0ICh1bnNpZ25lZF90eXBlX25vZGUsIHRocmVh ZF9saW1pdCk7CiAgICAgICBnaW1wbGlmeV9leHByICgmdGhyZWFkX2xpbWl0LCAmYmluZF9i b2R5LCBOVUxMLCBpc19naW1wbGVfdmFsLAogCQkgICAgIGZiX3J2YWx1ZSk7CmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25z LTEuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5z aW9ucy0xLmY5MAppbmRleCA5NDM0OTE4MGY1ZS4uNmUwMDBjYjQ5YzQgMTAwNjQ0Ci0tLSBh L2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMtMS5m OTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5z aW9ucy0xLmY5MApAQCAtMSwxMTYgKzEsMTgxIEBACiAhIHsgZGctZG8gY29tcGlsZSB9Ci0h IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1vcmlnaW5hbCIgfQotCi1z dWJyb3V0aW5lIG9uZV9hCi0hJG9tcCB0ZWFtcyBudW1fdGVhbXMoZGltcygzKSA6IDEsMiwz KSAmICAgICAgICAgICAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAn bnVtX3RlYW1zJyB3aXRoICdkaW1zJyBtb2RpZmllciIgfQotISRvbXAmICAgICAgdGhyZWFk X2xpbWl0ICggZGltcyAoIDQgKSA6IDEsIDIsIDMsIDQpICEgeyBkZy1tZXNzYWdlICJzb3Jy eSwgdW5pbXBsZW1lbnRlZDogJ3RocmVhZF9saW1pdCcgd2l0aCAnZGltcycgbW9kaWZpZXIi IH0KLSEkb21wICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoZGltcygzKTogMSwyLDMpICAgICAg ICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGhyZWFkcycg d2l0aCAnZGltcycgbW9kaWZpZXIiIH0KKyEgeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1P MCAtZmR1bXAtdHJlZS1naW1wbGUgLWZkdW1wLXRyZWUtb21wbG93ZXIgLWZkdW1wLXRyZWUt b21wZXhwIiB9CisKK3N1YnJvdXRpbmUgb25lX2EoeCkKK2ltcGxpY2l0IG5vbmUKK2ludGVn ZXIgOjogeAorISRvbXAgdGVhbXMgbnVtX3RlYW1zKGRpbXMoMykgOiAxLDIsMykgJgorISRv bXAmICAgICAgdGhyZWFkX2xpbWl0ICggZGltcyAoIDQgKSA6IDEsIDIsIDMsIDQpCishIHsg ZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICd0aHJlYWRfbGltaXQnIGNsYXVz ZSB3aXRoICdkaW1zJyBtb2RpZmllciIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfQorISB7 IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnbnVtX3RlYW1zJyBjbGF1c2Ug d2l0aCAnZGltcycgbW9kaWZpZXIiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0yIH0KKyEkb21w ICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoZGltcygzKTogMSwyLDMpICAgICAgICAhIHsgZGct bWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGhyZWFkcycgY2xhdXNlIHdp dGggJ2RpbXMnIG1vZGlmaWVyIiB9CisgIHggPSAxCiAhJG9tcCAgIGVuZCBwYXJhbGxlbAog ISRvbXAgZW5kIHRlYW1zCiBlbmQKIAotc3Vicm91dGluZSBvbmVfYgotISRvbXAgdGVhbXMg bnVtX3RlYW1zKGRpbXMoMykgOiAxLDIsMykgJiAgICAgICAgICAgICAgICAgICAgICAhIHsg ZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGVhbXMnIHdpdGggJ2Rp bXMnIG1vZGlmaWVyIiB9Ci0hJG9tcCYgICAgICB0aHJlYWRfbGltaXQgKCBkaW1zICggNCAp ICwgcmVsYXhlZCA6IDEsIDIsIDMsIDQpICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBs ZW1lbnRlZDogJ3RocmVhZF9saW1pdCcgd2l0aCAnZGltcycgbW9kaWZpZXIiIH0KLSEkb21w ICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoZGltcygzKSAsIHJlbGF4ZWQgOiAxLDIsMykgICAg ICAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnbnVtX3RocmVhZHMn IHdpdGggJ2RpbXMnIG1vZGlmaWVyIiB9CishIEFzIHRoZSBlcnJvciBpcyBwcmludGVkIGlu ICdvbXAtZXhwYW5kLmNjJywgaXQgaXMgc2hvd24gb25seSBvbmNlIGFuZCBub3QgZm9yIGFs bCBvZiB0aGUgZm9sbG93aW5nCishIGNhc2VzLiBUaGlzIGFsc28gYWZmZWN0cyBvbXAtbG93 ZXIuIEhlbmNlOgorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFn bWEgb21wIHRlYW1zIiAxICJvbXBsb3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwiIDEgIm9tcGxvd2VyIiB9IH0K KyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJfX2J1aWx0aW5fR09NUF90 ZWFtc19yZWcgIiAxICJvbXBleHAiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1 bXAtdGltZXMgIl9fYnVpbHRpbl9HT01QX3BhcmFsbGVsICIgMSAib21wZXhwIiB9IH0KKwor c3Vicm91dGluZSBvbmVfYih4KQoraW1wbGljaXQgbm9uZQoraW50ZWdlciA6OiB4CishJG9t cCB0ZWFtcyBudW1fdGVhbXMoZGltcygzKSA6IDEsMiwzKSAmCishJG9tcCYgICAgICB0aHJl YWRfbGltaXQgKCBkaW1zICggNCApICwgcmVsYXhlZCA6IDEsIDIsIDMsIDQpCishJG9tcCAg IHBhcmFsbGVsIG51bV90aHJlYWRzKGRpbXMoMykgLCByZWxheGVkIDogMSwyLDMpCisgIHgg PSAxCiAhJG9tcCAgIGVuZCBwYXJhbGxlbAogISRvbXAgZW5kIHRlYW1zCiBlbmQKIAotc3Vi cm91dGluZSBvbmVfYwotISRvbXAgdGVhbXMgbnVtX3RlYW1zKGRpbXMoMykgOiAxLDIsMykg JiAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1l bnRlZDogJ251bV90ZWFtcycgd2l0aCAnZGltcycgbW9kaWZpZXIiIH0KLSEkb21wJiAgICAg IHRocmVhZF9saW1pdCAoIGRpbXMgKCA0ICkgLCBzdHJpY3QgOiAxLCAyLCAzLCA0KSAhIHsg ZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICd0aHJlYWRfbGltaXQnIHdpdGgg J2RpbXMnIG1vZGlmaWVyIiB9Ci0hJG9tcCAgIHBhcmFsbGVsIG51bV90aHJlYWRzKGRpbXMo MykgLCBzdHJpY3QgOiAxLDIsMykgICAgICAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmlt cGxlbWVudGVkOiAnbnVtX3RocmVhZHMnIHdpdGggJ2RpbXMnIG1vZGlmaWVyIiB9CitzdWJy b3V0aW5lIG9uZV9jKHgpCitpbXBsaWNpdCBub25lCitpbnRlZ2VyIDo6IHgKKyEkb21wIHRl YW1zIG51bV90ZWFtcyhkaW1zKDMpIDogMTEsMjIsMzMpICYKKyEkb21wJiAgICAgIHRocmVh ZF9saW1pdCAoIGRpbXMgKCA0ICkgLCBzdHJpY3QgOiAxMSwgMjIsIDMzLCA0NCkKKyEkb21w ICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoZGltcygzKSAsIHN0cmljdCA6IDExLDIyLDMzKQor ICB4ID0gMQogISRvbXAgICBlbmQgcGFyYWxsZWwKICEkb21wIGVuZCB0ZWFtcwogZW5kCiAK LXN1YnJvdXRpbmUgb25lX2QKLSEkb21wIHRlYW1zIG51bV90ZWFtcyAoIGRpbXMoMykgOiAx LDIsMykgJiAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5p bXBsZW1lbnRlZDogJ251bV90ZWFtcycgd2l0aCAnZGltcycgbW9kaWZpZXIiIH0KLSEkb21w JiAgICAgIHRocmVhZF9saW1pdCAoIHJlbGF4ZWQgLCAgZGltcyAoIDQgKSA6IDEsIDIsIDMs IDQpICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ3RocmVhZF9saW1p dCcgd2l0aCAnZGltcycgbW9kaWZpZXIiIH0KLSEkb21wICAgcGFyYWxsZWwgbnVtX3RocmVh ZHMoIHJlbGF4ZWQgLCBkaW1zKDMpIDogMSwyLDMpICAgICAgICEgeyBkZy1tZXNzYWdlICJz b3JyeSwgdW5pbXBsZW1lbnRlZDogJ251bV90aHJlYWRzJyB3aXRoICdkaW1zJyBtb2RpZmll ciIgfQorc3Vicm91dGluZSBvbmVfZCh4KQoraW1wbGljaXQgbm9uZQoraW50ZWdlciA6OiB4 CishJG9tcCB0ZWFtcyBudW1fdGVhbXMgKCBkaW1zKDMpIDogMSwyLDMpICYKKyEkb21wJiAg ICAgIHRocmVhZF9saW1pdCAoIHJlbGF4ZWQgLCAgZGltcyAoIDQgKSA6IDExMSwgMjIyLCAz MzMsIDQ0NCkKKyEkb21wICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoIHJlbGF4ZWQgLCBkaW1z KDMpIDogMTExLDIyMiwzMzMpCisgIHggPSAxCiAhJG9tcCAgIGVuZCBwYXJhbGxlbAogISRv bXAgZW5kIHRlYW1zCiBlbmQKIAotc3Vicm91dGluZSBvbmVfZQotISRvbXAgdGVhbXMgbnVt X3RlYW1zICggZGltcygzKSA6IDEsMiwzKSAmICAgICAgICAgICAgICAgICAgICAhIHsgZGct bWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGVhbXMnIHdpdGggJ2RpbXMn IG1vZGlmaWVyIiB9Ci0hJG9tcCYgICAgICB0aHJlYWRfbGltaXQgKCBzdHJpY3QgLCAgZGlt cyAoIDQgKSA6IDEsIDIsIDMsIDQpICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1l bnRlZDogJ3RocmVhZF9saW1pdCcgd2l0aCAnZGltcycgbW9kaWZpZXIiIH0KLSEkb21wICAg cGFyYWxsZWwgbnVtX3RocmVhZHMoIHN0cmljdCAsIGRpbXMoMykgOiAxLDIsMykgICAgICAg ISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnbnVtX3RocmVhZHMnIHdp dGggJ2RpbXMnIG1vZGlmaWVyIiB9CitzdWJyb3V0aW5lIG9uZV9lKHgpCitpbXBsaWNpdCBu b25lCitpbnRlZ2VyIDo6IHgKKyEkb21wIHRlYW1zIG51bV90ZWFtcyAoIGRpbXMoMykgOiAx LDIsMykgJgorISRvbXAmICAgICAgdGhyZWFkX2xpbWl0ICggc3RyaWN0ICwgIGRpbXMgKCA0 ICkgOiAxMTExLCAyMjIyLCAzMzMzLCA0NDQ0KQorISRvbXAgICBwYXJhbGxlbCBudW1fdGhy ZWFkcyggc3RyaWN0ICwgZGltcygzKSA6IDExMTEsMjIyMiwzMzMzKQorICB4ID0gMQogISRv bXAgICBlbmQgcGFyYWxsZWwKICEkb21wIGVuZCB0ZWFtcwogZW5kCiAKIAotc3Vicm91dGlu ZSB0d28KLSEkb21wIHRlYW1zIHRocmVhZF9saW1pdCAoc3RyaWN0IDogNCkgICAgICAgICAg ISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAndGhyZWFkX2xpbWl0JyB3 aXRoICdzdHJpY3QnIG1vZGlmaWVyIiB9Ci0hJG9tcCAgIHBhcmFsbGVsIG51bV90aHJlYWRz KHN0cmljdCA6IDIpICAgICAgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRl ZDogJ251bV90aHJlYWRzJyB3aXRoICdzdHJpY3QnIG1vZGlmaWVyIiB9CitzdWJyb3V0aW5l IHR3byh4KQoraW1wbGljaXQgbm9uZQoraW50ZWdlciA6OiB4CishJG9tcCB0ZWFtcyB0aHJl YWRfbGltaXQgKHN0cmljdCA6IDQpCishJG9tcCAgIHBhcmFsbGVsIG51bV90aHJlYWRzKHN0 cmljdCA6IDIpCisgIHggPSAxCiAhJG9tcCAgIGVuZCBwYXJhbGxlbAogISRvbXAgZW5kIHRl YW1zCiBlbmQKIAotc3Vicm91dGluZSB6ZXJvCi0hJG9tcCB0ZWFtcyBudW1fdGVhbXMoMTIz NCkgdGhyZWFkX2xpbWl0ICggMjM0NSkgICEgT0sKLSEkb21wICAgcGFyYWxsZWwgbnVtX3Ro cmVhZHMoIDM0NTYpICAgICAgICAgICAgISBPSworc3Vicm91dGluZSB6ZXJvKHgpCitpbXBs aWNpdCBub25lCitpbnRlZ2VyIDo6IHgKKyEkb21wIHRlYW1zIG51bV90ZWFtcygxMjM0KSB0 aHJlYWRfbGltaXQgKCAyMzQ1KSAgISBPSyAtIG9sZCBjb2RlCishJG9tcCAgIHBhcmFsbGVs IG51bV90aHJlYWRzKCAzNDU2KSAgICAgICAgICAgICAgICEgT0sgLSBvbGQgY29kZQorICB4 ID0gMQogISRvbXAgICBlbmQgcGFyYWxsZWwKICEkb21wIGVuZCB0ZWFtcwogCiAhJG9tcCB0 ZWFtcyBudW1fdGVhbXMoMTIzOjQ1NikKKyAgeCA9IDEKICEkb21wIGVuZCB0ZWFtcwogZW5k CiAKLXN1YnJvdXRpbmUgdGhyZWUKLSEkb21wIHRlYW1zIG51bV90ZWFtcyg0NTY3KSB0aHJl YWRfbGltaXQgKHJlbGF4ZWQgOiA1Njc4KSAgISBPSwotISRvbXAgICBwYXJhbGxlbCBudW1f dGhyZWFkcyhyZWxheGVkIDogNjc4OSkgICAgICAgICAgICAhIE9LCitzdWJyb3V0aW5lIHRo cmVlKHgpCitpbXBsaWNpdCBub25lCitpbnRlZ2VyIDo6IHgKKyEkb21wIHRlYW1zIG51bV90 ZWFtcyg0NTY3KSB0aHJlYWRfbGltaXQgKHJlbGF4ZWQgOiA1Njc4KSAgISBPSyAtIG9sZCBj b2RlICsgJ3JlbGF4ZWQnCishJG9tcCAgIHBhcmFsbGVsIG51bV90aHJlYWRzKHJlbGF4ZWQg OiA2Nzg5KSAgICAgICAgICAgICAgICEgT0sgLSBvbGQgY29kZSArICdyZWxheGVkJworICB4 ID0gMQogISRvbXAgICBlbmQgcGFyYWxsZWwKICEkb21wIGVuZCB0ZWFtcwogZW5kCiAKLXN1 YnJvdXRpbmUgZm91cgotISRvbXAgcGFyYWxsZWwgbnVtX3RocmVhZHMoMSAsIDIgLCAzICkg ICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ251bV90aHJlYWRzJyB3 aXRoIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQiIH0KK3N1YnJvdXRpbmUgZm91cih4KQoraW1w bGljaXQgbm9uZQoraW50ZWdlciA6OiB4CishJG9tcCBwYXJhbGxlbCBudW1fdGhyZWFkcygx ICwgMiAsIDMgKQorICB4ID0gMQogISRvbXAgZW5kIHBhcmFsbGVsCiBlbmQKIAotc3Vicm91 dGluZSBmaXZlCi0hJG9tcCBwYXJhbGxlbCBudW1fdGhyZWFkcyhyZWxheGVkIDogMSwyLDMp ICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGhyZWFkcycg d2l0aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IiB9CitzdWJyb3V0aW5lIGZpdmUoeCkKK2lt cGxpY2l0IG5vbmUKK2ludGVnZXIgOjogeAorISRvbXAgcGFyYWxsZWwgbnVtX3RocmVhZHMo cmVsYXhlZCA6IDExLDIyLDMzMykKKyAgeCA9IDEKICEkb21wIGVuZCBwYXJhbGxlbAogZW5k CiAKLXN1YnJvdXRpbmUgc2l4Ci0hJG9tcCBwYXJhbGxlbCBudW1fdGhyZWFkcyhzdHJpY3Qg OiAxLDIsMykgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ251bV90 aHJlYWRzJyB3aXRoICdzdHJpY3QnIG1vZGlmaWVyIiB9CitzdWJyb3V0aW5lIHNpeCh4KQor aW1wbGljaXQgbm9uZQoraW50ZWdlciA6OiB4CishJG9tcCBwYXJhbGxlbCBudW1fdGhyZWFk cyhzdHJpY3QgOiAxMTEsMjIyLDMzMykKKyAgeCA9IDEKICEkb21wIGVuZCBwYXJhbGxlbAog ZW5kCiAKIAotc3Vicm91dGluZSBzZXZlbgorc3Vicm91dGluZSBzZXZlbih4KQoraW1wbGlj aXQgbm9uZQoraW50ZWdlciA6OiB4CiAgIGludGVnZXIgOjogc3RhdGljLCByZWxheGVkLCBk aW1zKDIpCi0gICEkb21wIHRlYW1zIG51bV90ZWFtcyhzdGF0aWMpIHRocmVhZF9saW1pdCAo c3RhdGljKSAgISBPSworICAhJG9tcCB0ZWFtcyBudW1fdGVhbXMoc3RhdGljKSB0aHJlYWRf bGltaXQgKHN0YXRpYykgICEgT0sgLSBvbGQgY29kZSAodXNpbmcgdmFyaWFibGUgbmFtZSB0 aGF0IGxvb2tzIGxpa2UgYSBtb2RpZmllciBuYW1lKQogICAhJG9tcCAgIHBhcmFsbGVsIG51 bV90aHJlYWRzKHN0YXRpYykgICAgICAgICAgICAgICAgICEgT0sKKyAgICB4ID0gMQogICAh JG9tcCAgIGVuZCBwYXJhbGxlbAogICAhJG9tcCBlbmQgdGVhbXMKIAogICAhJG9tcCB0ZWFt cyBudW1fdGVhbXMocmVsYXhlZCkgdGhyZWFkX2xpbWl0IChyZWxheGVkKSAgISBPSwogICAh JG9tcCAgIHBhcmFsbGVsIG51bV90aHJlYWRzKHJlbGF4ZWQpICAgICAgICAgICAgICAgICAg ISBPSworICAgIHggPSAxCiAgICEkb21wICAgZW5kIHBhcmFsbGVsCiAgICEkb21wIGVuZCB0 ZWFtcwogCiAgICEkb21wIHRlYW1zIG51bV90ZWFtcyhkaW1zKDIpKSB0aHJlYWRfbGltaXQg KGRpbXMoMikpICAhIE9LCiAgICEkb21wICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoZGltcygy KSkgICAgICAgICAgICAgICAgICAhIE9LCisgICAgeCA9IDEKICAgISRvbXAgICBlbmQgcGFy YWxsZWwKICAgISRvbXAgZW5kIHRlYW1zCiAKIGVuZCBzdWJyb3V0aW5lCiAKLSEgQ2hlY2sg dGhhdCB0aGUgdHJlZSBpcyBjb3JyZWN0bHkgZ2VuZXJhdGVkOgotCi0hIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwo MTIzNFxcKSB0aHJlYWRfbGltaXRcXCgyMzQ1XFwpIiAxICJvcmlnaW5hbCIgfSB9Ci0hIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwg bnVtX3RocmVhZHNcXCgzNDU2XFwpIiAxICJvcmlnaW5hbCIgfSB9Ci0hIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwo NDU2N1xcKSB0aHJlYWRfbGltaXRcXCg1Njc4XFwpIiAxICJvcmlnaW5hbCIgfSB9Ci0hIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwg bnVtX3RocmVhZHNcXCg2Nzg5XFwpIiAxICJvcmlnaW5hbCIgfSB9Ci0hIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwo MTIzOjQ1NlxcKSIgMSAib3JpZ2luYWwiIH0gfQotCi0hIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAiRFxcLlxbMC05XF0rID0gc3RhdGljOyIgMyAib3JpZ2luYWwiIH0g fQotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIkRcXC5cWzAtOVxdKyA9 IHJlbGF4ZWQ7IiAzICJvcmlnaW5hbCIgfSB9Ci0hIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyAiRFxcLlxbMC05XF0rID0gZGltc1xcXFsxXFxcXTsiIDMgIm9yaWdpbmFs IiB9IH0KLSEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9t cCB0ZWFtcyBudW1fdGVhbXNcXChEXFwuXFswLTlcXStcXCkgdGhyZWFkX2xpbWl0XFwoRFxc LlxbMC05XF0rXFwpIiAzICJvcmlnaW5hbCIgfSB9Ci0hIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3RocmVhZHNcXChEXFwu XFswLTlcXStcXCkiIDMgIm9yaWdpbmFsIiB9IH0KKyEgQ2hlY2sgdGhhdCB0aGUgdHJlZSBp cyBjb3JyZWN0bHkgZ2VuZXJhdGVkIChnaW1wbGUgdHJlZSkKKworISB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRlYW1zIG51bV90ZWFtc1xcKGRp bXNcXChcXCk6MSwgMiwgM1xcKSB0aHJlYWRfbGltaXRcXChzdHJpY3QsZGltc1xcKFxcKTox LCAyLCAzLCA0XFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3Ro cmVhZHNcXChzdHJpY3QsZGltc1xcKFxcKToxLCAyLCAzXFwpIHNoYXJlZFxcKHhcXCkiIDEg ImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3By YWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoZGltc1xcKFxcKToxLCAyLCAzXFwpIHRocmVh ZF9saW1pdFxcKGRpbXNcXChcXCk6MSwgMiwgMywgNFxcKSBzaGFyZWRcXCh4XFwpIiAxICJn aW1wbGUiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFn bWEgb21wIHBhcmFsbGVsIG51bV90aHJlYWRzXFwoZGltc1xcKFxcKToxLCAyLCAzXFwpIHNo YXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoZGltc1xcKFxcKTox MSwgMjIsIDMzXFwpIHRocmVhZF9saW1pdFxcKHN0cmljdCxkaW1zXFwoXFwpOjExLCAyMiwg MzMsIDQ0XFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3RocmVh ZHNcXChzdHJpY3QsZGltc1xcKFxcKToxMSwgMjIsIDMzXFwpIHNoYXJlZFxcKHhcXCkiIDEg ImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3By YWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoZGltc1xcKFxcKToxLCAyLCAzXFwpIHRocmVh ZF9saW1pdFxcKGRpbXNcXChcXCk6MTExLCAyMjIsIDMzMywgNDQ0XFwpIHNoYXJlZFxcKHhc XCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3RocmVhZHNcXChkaW1zXFwoXFwpOjExMSwg MjIyLCAzMzNcXCkgc2hhcmVkXFwoeFxcKSIgMSAiZ2ltcGxlIiB9IH0KKyEgeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVhbXNc XChkaW1zXFwoXFwpOjEsIDIsIDNcXCkgdGhyZWFkX2xpbWl0XFwoc3RyaWN0LGRpbXNcXChc XCk6MTExMSwgMjIyMiwgMzMzMywgNDQ0NFxcKSBzaGFyZWRcXCh4XFwpIiAxICJnaW1wbGUi IH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21w IHBhcmFsbGVsIG51bV90aHJlYWRzXFwoc3RyaWN0LGRpbXNcXChcXCk6MTExMSwgMjIyMiwg MzMzM1xcKSBzaGFyZWRcXCh4XFwpIiAxICJnaW1wbGUiIH0gfQorISB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRlYW1zIHRocmVhZF9saW1pdFxc KHN0cmljdDo0XFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3Ro cmVhZHNcXChzdHJpY3Q6MlxcKSBzaGFyZWRcXCh4XFwpIiAxICJnaW1wbGUiIH0gfQorISB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRlYW1zIG51 bV90ZWFtc1xcKDEyMzRcXCkgdGhyZWFkX2xpbWl0XFwoMjM0NVxcKSBzaGFyZWRcXCh4XFwp IiAxICJnaW1wbGUiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMg IiNwcmFnbWEgb21wIHBhcmFsbGVsIG51bV90aHJlYWRzXFwoMzQ1NlxcKSBzaGFyZWRcXCh4 XFwpIiAxICJnaW1wbGUiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGlt ZXMgIiNwcmFnbWEgb21wIHRlYW1zIG51bV90ZWFtc1xcKDEyMywgNDU2XFwpIHNoYXJlZFxc KHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoNDU2N1xcKSB0aHJlYWRfbGlt aXRcXCg1Njc4XFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3Ro cmVhZHNcXCg2Nzg5XFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVt X3RocmVhZHNcXCgxLCAyLCAzXFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9Cish IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxs ZWwgbnVtX3RocmVhZHNcXCgxMSwgMjIsIDMzM1xcKSBzaGFyZWRcXCh4XFwpIiAxICJnaW1w bGUiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEg b21wIHBhcmFsbGVsIG51bV90aHJlYWRzXFwoc3RyaWN0OjExMSwgMjIyLCAzMzNcXCkgc2hh cmVkXFwoeFxcKSIgMSAiZ2ltcGxlIiB9IH0KKworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtdGltZXMgIkRcXC5cWzAtOVxdKyA9IHN0YXRpYzsiIDMgImdpbXBsZSIgfSB9Cish IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiRFxcLlxbMC05XF0rID0gcmVs YXhlZDsiIDMgImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyAiRFxcLlxbMC05XF0rID0gZGltc1xcXFsxXFxcXTsiIDMgImdpbXBsZSIgfSB9Cish IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMg bnVtX3RlYW1zXFwoX1xbMC05XF0rXFwpIHRocmVhZF9saW1pdFxcKF9cWzAtOVxdK1xcKSBz aGFyZWRcXChzdGF0aWNcXCkgc2hhcmVkXFwoeFxcKSIgMSAiZ2ltcGxlIiB9IH0KKyEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1f dGVhbXNcXChfXFswLTlcXStcXCkgdGhyZWFkX2xpbWl0XFwoX1xbMC05XF0rXFwpIHNoYXJl ZFxcKHJlbGF4ZWRcXCkgc2hhcmVkXFwoeFxcKSIgMSAiZ2ltcGxlIiB9IH0KKyEgeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVh bXNcXChfXFswLTlcXStcXCkgdGhyZWFkX2xpbWl0XFwoX1xbMC05XF0rXFwpIHNoYXJlZFxc KGRpbXNcXCkgc2hhcmVkXFwoeFxcKSIgMSAiZ2ltcGxlIiB9IH0KKyEgeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBwYXJhbGxlbCBudW1fdGhyZWFk c1xcKERcXC5cWzAtOVxdK1xcKSBzaGFyZWRcXCh4XFwpIiAzICJnaW1wbGUiIH0gfQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5z aW9ucy0yLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRp bWVuc2lvbnMtMi5mOTAKaW5kZXggZGI1NzBkZjg2ZjkuLjBiYWZhMDYxMGFiIDEwMDY0NAot LS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25z LTIuZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRp bWVuc2lvbnMtMi5mOTAKQEAgLTEsNSArMSw1IEBACiAhIHsgZGctZG8gY29tcGlsZSB9Ci0h IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1vcmlnaW5hbCIgfQorISB7 IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLWZkdW1wLXRyZWUtb21wbG93ZXIgLWZkdW1wLXRy ZWUtb21wZXhwIiB9CiAKICEgVGhpcyB0ZXN0Y2FzZSBpcyBhbWJpZ291cyBpbiBGb3J0cmFu CiAhIGNmLiBPcGVuTVAgU3BlYyBJc3N1ZXMgNDk5OApAQCAtMTMsMTAgKzEzLDEyIEBACiBz dWJyb3V0aW5lIHN1YgogICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogZGltcygyKSA9IFsxMSwy Ml0KICEuLi4KLSAgISRvbXAgdGVhbXMgIG51bV90ZWFtcyggZGltcygxKSA6IDI1NiApICAh IHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGVhbXMnIHdpdGgg J2RpbXMnIG1vZGlmaWVyIiB9CisgICEkb21wIHRlYW1zICBudW1fdGVhbXMoIGRpbXMoMSkg OiAyNTYgKQogICAhJG9tcCBlbmQgdGVhbXMKIGVuZAogCi0hIC4uLiBoZW5jZTogJ251bV90 ZWFtcygyNTYpJyBhbmQgbm90ICdudW1fdGVhbXMoMTE6MjU2KScKKyEgLi4uIGhlbmNlOiAn bnVtX3RlYW1zKGRpbXMoKToyNTYpJyBhbmQgbm90ICdudW1fdGVhbXMoMTE6MjU2KScKKyEg cmVnYXJkZWQgYXMgaWRlbmljYWwgdG8gbnVtX3RlYW1zKDI1NikgICh1bmRpbWVuc2lvbmFs IGNhc2UpCiAKLSEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICIjcHJhZ21hIG9tcCB0 ZWFtcyBudW1fdGVhbXNcXCgyNTZcXCkiICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcCAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoZGltc1xc KFxcKToyNTZcXCkiICJvbXBsb3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcCAiX19idWlsdGluX0dPTVBfdGVhbXNfcmVnIFxcKHN1Yl8uX29tcF9mbi4wLCAwQiwg MjU2LCAwLCAwXFwpOyIgIm9tcGV4cCIgfSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25zLTMuZjkwIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5zaW9ucy0zLmY5MAppbmRleCAy MmI5ZjIzZjY0MC4uMzcyOTI0ZDU1ZGEgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMtMy5mOTAKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5zaW9ucy0zLmY5MApAQCAtOTAs MjIgKzkwLDIyIEBAIHN1YnJvdXRpbmUgdGhyZWUKICAgISRvbXAgdGVhbXMgbnVtX3RlYW1z KCAgISB7IGRnLWVycm9yICJFeHBlY3RlZCBlaXRoZXIgJ1xcXFtsb3dlci1leHByIDogXFxc XSB1cHBlci1leHByJyBvciAnZGltc1xcKE5cXCk6IGV4cHItbGlzdCciIH0KICAgYmxvY2s7 IGVuZCBibG9jawogCi0gICEkb21wIHRlYW1zIG51bV90ZWFtcyggZGltcyAhIHsgZGctZXJy b3IgIkZhaWxlZCB0byBtYXRjaCBjbGF1c2UiIH0KKyAgISRvbXAgdGVhbXMgbnVtX3RlYW1z KCBkaW1zICEgeyBkZy1lcnJvciAiRXhwZWN0ZWQgZWl0aGVyICdcXFxbbG93ZXItZXhwciA6 IFxcXF0gdXBwZXItZXhwcicgb3IgJ2RpbXNcXChOXFwpOiBleHByLWxpc3QnIGF0IC4xLiIg fQogICBibG9jazsgZW5kIGJsb2NrCiAKLSAgISRvbXAgdGVhbXMgbnVtX3RlYW1zKCBkaW1z KDEpICEgeyBkZy1lcnJvciAiSW52YWxpZCBjaGFyYWN0ZXIgaW4gbmFtZSIgfQorICAhJG9t cCB0ZWFtcyBudW1fdGVhbXMoIGRpbXMoMSkgISB7IGRnLWVycm9yICJFeHBlY3RlZCBlaXRo ZXIgJ1xcXFtsb3dlci1leHByIDogXFxcXSB1cHBlci1leHByJyBvciAnZGltc1xcKE5cXCk6 IGV4cHItbGlzdCciIH0KICAgYmxvY2s7IGVuZCBibG9jawogCiAgICEkb21wIHRlYW1zIG51 bV90ZWFtcyggZGltcygxKSA6ICEgeyBkZy1lcnJvciAiRXhwZWN0ZWQgZWl0aGVyICdcXFxb bG93ZXItZXhwciA6IFxcXF0gdXBwZXItZXhwcicgb3IgJ2RpbXNcXChOXFwpOiBleHByLWxp c3QnIiB9CiAgIGJsb2NrOyBlbmQgYmxvY2sKIAotICAhJG9tcCB0ZWFtcyBudW1fdGVhbXMo IGRpbXMoMSkgOiAxICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIGluIE9wZW5NUCBleHBy ZXNzaW9uIiB9CisgICEkb21wIHRlYW1zIG51bV90ZWFtcyggZGltcygxKSA6IDEgISB7IGRn LWVycm9yICJFeHBlY3RlZCBlaXRoZXIgJ1xcXFtsb3dlci1leHByIDogXFxcXSB1cHBlci1l eHByJyBvciAnZGltc1xcKE5cXCk6IGV4cHItbGlzdCciIH0KICAgYmxvY2s7IGVuZCBibG9j awogCi0gICEkb21wIHRlYW1zIG51bV90ZWFtcyggNSA6ICEgeyBkZy1lcnJvciAiSW52YWxp ZCBjaGFyYWN0ZXIgaW4gbmFtZSIgfQorICAhJG9tcCB0ZWFtcyBudW1fdGVhbXMoIDUgOiAh IHsgZGctZXJyb3IgIkV4cGVjdGVkIGVpdGhlciAnXFxcW2xvd2VyLWV4cHIgOiBcXFxdIHVw cGVyLWV4cHInIG9yICdkaW1zXFwoTlxcKTogZXhwci1saXN0JyIgfQogICBibG9jazsgZW5k IGJsb2NrCiAKLSAgISRvbXAgdGVhbXMgbnVtX3RlYW1zKCA1IDogNSAhIHsgZGctZXJyb3Ig IkZhaWxlZCB0byBtYXRjaCBjbGF1c2UiIH0KKyAgISRvbXAgdGVhbXMgbnVtX3RlYW1zKCA1 IDogNSAhIHsgZGctZXJyb3IgIkV4cGVjdGVkIGVpdGhlciAnXFxcW2xvd2VyLWV4cHIgOiBc XFxdIHVwcGVyLWV4cHInIG9yICdkaW1zXFwoTlxcKTogZXhwci1saXN0JyBhdCAuMS4iIH0K ICAgYmxvY2s7IGVuZCBibG9jawogZW5kCiAKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdWJyb3V0 aW5lIGZpdmUKIGVuZAogCiBzdWJyb3V0aW5lIHNpeAotICAhJG9tcCB0ZWFtcyBudW1fdGVh bXMgKGRpbXMoMSksIGRpbXMoMSkgOiAxKSAhIHsgZGctZXJyb3IgIkludmFsaWQgY2hhcmFj dGVyIGluIG5hbWUiIH0KKyAgISRvbXAgdGVhbXMgbnVtX3RlYW1zIChkaW1zKDEpLCBkaW1z KDEpIDogMSkgISB7IGRnLWVycm9yICJFeHBlY3RlZCBlaXRoZXIgJ1xcXFtsb3dlci1leHBy IDogXFxcXSB1cHBlci1leHByJyBvciAnZGltc1xcKE5cXCk6IGV4cHItbGlzdCciIH0KICAg YmxvY2s7IGVuZCBibG9jawogCiAKQEAgLTI0MSw3ICsyNDEsNyBAQCBzdWJyb3V0aW5lIHNp eAogZW5kIHN1YnJvdXRpbmUKIAogc3Vicm91dGluZSBzZXZlbgotICAhJG9tcCB0ZWFtcyBu dW1fdGVhbXMgKDIsMikgICEgeyBkZy1lcnJvciAiRmFpbGVkIHRvIG1hdGNoIGNsYXVzZSIg fQorICAhJG9tcCB0ZWFtcyBudW1fdGVhbXMgKDIsMikgICEgeyBkZy1lcnJvciAiRXhwZWN0 ZWQgZWl0aGVyICdcXFxbbG93ZXItZXhwciA6IFxcXF0gdXBwZXItZXhwcicgb3IgJ2RpbXNc XChOXFwpOiBleHByLWxpc3QnIiB9CiAgIGJsb2NrOyBlbmQgYmxvY2sKIAogICAhJG9tcCB0 ZWFtcyB0aHJlYWRfbGltaXQgKDIsMikgICEgeyBkZy1lcnJvciAiV2l0aG91dCB0aGUgRElN IG1vZGlmaWVyLCBvbmx5IGEgc2luZ2xlIGludGVnZXIgZXhwcmVzc2lvbiBtYXkgYmUgc3Bl Y2lmaWVkIiB9CkBAIC0yNDksNCArMjQ5LDEwIEBAIHN1YnJvdXRpbmUgc2V2ZW4KIAogICAh JG9tcCBwYXJhbGxlbCBudW1fdGhyZWFkcyAoMiwyKSAgISBPSwogICBibG9jazsgZW5kIGJs b2NrCisKKyAgISRvbXAgdGVhbXMgbnVtX3RlYW1zKDM5ICEgeyBkZy1lcnJvciAiRXhwZWN0 ZWQgZWl0aGVyICdcXFxbbG93ZXItZXhwciA6IFxcXF0gdXBwZXItZXhwcicgb3IgJ2RpbXNc XChOXFwpOiBleHByLWxpc3QnIGF0IC4xLiIgfQorICBibG9jazsgZW5kIGJsb2NrCisgCisg ICEkb21wIHRlYW1zIG51bV90ZWFtcyhzdHJpY3QgOiA0IDogNSApICAhIHsgZGctZXJyb3Ig IkV4cGVjdGVkIGVpdGhlciAnXFxcW2xvd2VyLWV4cHIgOiBcXFxdIHVwcGVyLWV4cHInIG9y ICdkaW1zXFwoTlxcKTogZXhwci1saXN0JyBhdCAuMS4iIH0KKyAgYmxvY2s7IGVuZCBibG9j awogZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvc3Bh dGlhbC1kaW1lbnNpb25zLTQuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21w L3NwYXRpYWwtZGltZW5zaW9ucy00LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uOGY1NzQ3NDA0NjIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25zLTQuZjkwCkBAIC0wLDAg KzEsOTkgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1hZGRpdGlvbmFsLW9wdGlv bnMgIi1mZHVtcC10cmVlLW9tcGxvd2VyIC1mZHVtcC10cmVlLW9tcGV4cCIgfQorCishIEZv ciBvbXBleHAsIG9ubHkgY2hlY2sgdGVhbXMgKyBwYXJhbGxlbCBhbmQgbm90IHRhcmdldCAo dGVhbXMpCisKKyEgTm90ZTogVGhlIGZvbGxvd2luZyB0ZXN0cyBjb2RlIHRoYXQgcHJvZHVj ZXMgaWRlbnRpY2FsIGNvZGUgdG8gNS54CishIGV2ZW4gdGhvdWdoIE9wZW5NUCA2LjAgZmVh dHVyZXMgYXJlIHVzZWQuIE5hbWVseToKKyEgLSByZWxheGVkICBtb2RpZmllcgorISAtIHJl bGF4ZWQsIGRpbXMoMSkgIG1vZGllZmllcnMKKyEgLSBtZXNzYWdlIGNsYXVzZSB3aXRoIHBh cmFsbGVsIGFuZCB0ZWFtcyAtIGlmIHRoZXJlIGlzIG51bV90ZWFtcyBjbGF1c2UKKyEgICAo Rm9yIHRhcmdldCAodGVhbXMpLCB0aGVyZSBpcyBhbiBpbXBsaWNpdCAnbnVtX3RlYW1zJzsg dG8gYXZvaWQKKyEgICAgY29tcGxleCBzb3JyeSBjb2RlLCBtZXNzYWdlICsgdGFyZ2V0ICh0 ZWFtcykgaXMgcmVqZWN0ZWQuKQorCitzdWJyb3V0aW5lIHN1Yih4KQoraW1wbGljaXQgbm9u ZQoraW50ZWdlciA6OiB4LCBpCisKKyEkb21wIHRhcmdldCB0aHJlYWRfbGltaXQocmVsYXhl ZCA6IDExKQorYmxvY2sKKyAgeCA9IDEKK2VuZCBibG9jaworISB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBudW1fdGVhbXNcXCgtMlxc KSB0aHJlYWRfbGltaXRcXCgxMVxcKSBmaXJzdHByaXZhdGVcXCh4XFwpIFxcXFtjaGlsZCBm biIgMSAib21wbG93ZXIiIH0gfQorCishJG9tcCB0YXJnZXQgcGFyYWxsZWwgZG8gc2ltZCB0 aHJlYWRfbGltaXQocmVsYXhlZCwgZGltcygxKSA6IDIyKQorZG8gaSA9IDEsIDEKKyAgeCA9 IDEKK2VuZCBkbworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFn bWEgb21wIHRhcmdldCBudW1fdGVhbXNcXCgtMlxcKSB0aHJlYWRfbGltaXRcXChkaW1zXFwo XFwpOjIyXFwpIG1hcFxcKHRvZnJvbTppIFxcXFtsZW46IDRcXFxdIFxcXFtydW50aW1lX2lt cGxpY2l0XFxcXVxcKSBmaXJzdHByaXZhdGVcXCh4XFwpIFxcXFtjaGlsZCBmbiIgMSAib21w bG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFn bWEgb21wIHBhcmFsbGVsIGxhc3Rwcml2YXRlXFwoaVxcKSBzaGFyZWRcXCh4XFwpIFxcXFtj aGlsZCBmbiIgMSAib21wbG93ZXIiIH0gfQorCishJG9tcCB0YXJnZXQgdGVhbXMgdGhyZWFk X2xpbWl0KHJlbGF4ZWQgOiAzMSkgbnVtX3RlYW1zKGRpbXMoMSkgOiAzMykKK2Jsb2NrCisg IHggPSAxCitlbmQgYmxvY2sKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz ICIjcHJhZ21hIG9tcCB0YXJnZXQgbnVtX3RlYW1zXFwoLTFcXCkgdGhyZWFkX2xpbWl0XFwo MzFcXCkgZmlyc3Rwcml2YXRlXFwoeFxcKSBcXFxbY2hpbGQgZm4iIDEgIm9tcGxvd2VyIiB9 IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0 ZWFtcyBudW1fdGVhbXNcXChkaW1zXFwoXFwpOjMzXFwpIHRocmVhZF9saW1pdFxcKDMxXFwp IHNoYXJlZFxcKHhcXCkiIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICJfX2J1aWx0aW5fR09NUF90ZWFtczQgXFwoMzMsIDMzLCAzMSwg RC5cWzAtOV0rXFwpOyIgMSAib21wZXhwIiB9IH0KKworCishJG9tcCB0YXJnZXQgdGVhbXMg ZGlzdHJpYnV0ZSBwYXJhbGxlbCBkbyBzaW1kIHRocmVhZF9saW1pdChyZWxheGVkIDogNDEp IG51bV90ZWFtcyhkaW1zKDEpIDogNDMpIG51bV90aHJlYWRzKCBkaW1zICggMSApICwgcmVs YXhlZCA6IDQ0KQorZG8gaSA9IDEsIDEKKyAgeCA9IDEKK2VuZCBkbworISB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBudW1fdGVhbXNc XCgtMVxcKSB0aHJlYWRfbGltaXRcXCg0MVxcKSBtYXBcXCh0b2Zyb206aSBcXFxbbGVuOiA0 XFxcXSBcXFxbcnVudGltZV9pbXBsaWNpdFxcXF1cXCkgZmlyc3Rwcml2YXRlXFwoeFxcKSBc XFxbY2hpbGQgZm4iIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVhbXNcXChkaW1zXFwoXFwp OjQzXFwpIHRocmVhZF9saW1pdFxcKDQxXFwpIHNoYXJlZFxcKGlcXCkgc2hhcmVkXFwoeFxc KSIgMSAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGlt ZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIF9sb29wdGVtcF9cXChELlxbMC05XF0rXFwpIF9s b29wdGVtcF9cXChELlxbMC05XF0rXFwpIG51bV90aHJlYWRzXFwoZGltc1xcKFxcKTo0NFxc KSBsYXN0cHJpdmF0ZVxcKGlcXCkgc2hhcmVkXFwoeFxcKSBcXFxbY2hpbGQgZm4iIDEgIm9t cGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJfX2J1 aWx0aW5fR09NUF9wYXJhbGxlbCBcXChzdWJfLl9vbXBfZm4uXFswLTldKywgJi5vbXBfZGF0 YV9vLlxbMC05XSssIDQ0LCAwXFwpOyIgMSAib21wZXhwIiB9IH0KKworISRvbXAgdGVhbXMg dGhyZWFkX2xpbWl0KHJlbGF4ZWQgOiA1MSkgbnVtX3RlYW1zKGRpbXMoMSkgOiA1MykKK2Js b2NrCitlbmQgYmxvY2sKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIj cHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVhbXNcXChkaW1zXFwoXFwpOjUzXFwpIHRocmVhZF9s aW1pdFxcKDUxXFwpIiAxICJvbXBsb3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAiX19idWlsdGluX0dPTVBfdGVhbXNfcmVnIFxcKHN1Yl8uX29tcF9m bi5cWzAtOVxdKywgMEIsIDUzLCA1MSwgMFxcKTsiIDEgIm9tcGV4cCIgfSB9CisKKyEkb21w IHRlYW1zIGRpc3RyaWJ1dGUgcGFyYWxsZWwgZG8gc2ltZCB0aHJlYWRfbGltaXQocmVsYXhl ZCA6IDYxKSBudW1fdGVhbXMoZGltcygxKSA6IDYzKSBudW1fdGhyZWFkcyhyZWxheGVkLCBk aW1zKDEpIDogNjQpCitkbyBpID0gMSwgMQorICB4ID0gMQorZW5kIGRvCishIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1z XFwoZGltc1xcKFxcKTo2M1xcKSB0aHJlYWRfbGltaXRcXCg2MVxcKSBzaGFyZWRcXChpXFwp IHNoYXJlZFxcKHhcXCkiIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBwYXJhbGxlbCBfbG9vcHRlbXBfXFwoRC5c WzAtOVxdK1xcKSBfbG9vcHRlbXBfXFwoRC5cWzAtOVxdK1xcKSBudW1fdGhyZWFkc1xcKGRp bXNcXChcXCk6NjRcXCkgbGFzdHByaXZhdGVcXChpXFwpIHNoYXJlZFxcKHhcXCkgXFxcW2No aWxkIGZuIiAxICJvbXBsb3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cC10aW1lcyAiX19idWlsdGluX0dPTVBfdGVhbXNfcmVnIFxcKHN1Yl8uX29tcF9mbi5cWzAt OVxdKywgJi5vbXBfZGF0YV9vLlxbMC05XF0rLCA2MywgNjEsIDBcXCk7IiAxICJvbXBleHAi IH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIl9fYnVpbHRpbl9H T01QX3BhcmFsbGVsIFxcKHN1Yl8uX29tcF9mbi5cWzAtOVxdKywgJi5vbXBfZGF0YV9vLlxb MC05XF0rLCA2NCwgMFxcKTsiIDEgIm9tcGV4cCIgfSB9CisKKyEkb21wIHBhcmFsbGVsIG51 bV90aHJlYWRzKHJlbGF4ZWQsIGRpbXMoMSkgOiA3NykgbWVzc2FnZSgibXk3NyIpIHNldmVy aXR5KGZhdGFsKQorYmxvY2sKKyAgeCA9IDEKK2VuZCBibG9jaworISB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIG1lc3NhZ2VcXCgu bXk3Ny4gXFxcW2xlbjo0XFxcXVxcKXNldmVyaXR5XFwoZmF0YWxcXCkgbnVtX3RocmVhZHNc XChkaW1zXFwoXFwpOjc3XFwpIHNoYXJlZFxcKHhcXCkgXFxcW2NoaWxkIGZuIiAxICJvbXBs b3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiX19idWls dGluX0dPTVBfcGFyYWxsZWwgXFwoc3ViXy5fb21wX2ZuLlxbMC05XF0rLCAmLm9tcF9kYXRh X28uXFswLTlcXSssIDc3LCAwXFwpOyIgMSAib21wZXhwIiB9IH0KKworCishJG9tcCBwYXJh bGxlbCBudW1fdGhyZWFkcyhyZWxheGVkIDogODgpIG1lc3NhZ2UoIm15NzgiKSBzZXZlcml0 eSh3YXJuaW5nKQorYmxvY2sKKyAgeCA9IDEKK2VuZCBibG9jaworISB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIG1lc3NhZ2VcXCgu bXk3OC4gXFxcW2xlbjo0XFxcXVxcKSBzZXZlcml0eVxcKHdhcm5pbmdcXCkgbnVtX3RocmVh ZHNcXCg4OFxcKSBzaGFyZWRcXCh4XFwpIFxcXFtjaGlsZCBmbiIgMSAib21wbG93ZXIiIH0g fQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIl9fYnVpbHRpbl9HT01Q X3BhcmFsbGVsIFxcKHN1Yl8uX29tcF9mbi5cWzAtOVxdKywgJi5vbXBfZGF0YV9vLlxbMC05 XF0rLCA4OCwgMFxcKTsiIDEgIm9tcGV4cCIgfSB9CisKKyEkb21wIHRlYW1zIHRocmVhZF9s aW1pdChyZWxheGVkIDogOTEpIG51bV90ZWFtcygxIDogOTMpCitibG9jaworICB4ID0gMQor ZW5kIGJsb2NrCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdt YSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoMSwgOTNcXCkgdGhyZWFkX2xpbWl0XFwoOTFcXCkg c2hhcmVkXFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtdGltZXMgIl9fYnVpbHRpbl9HT01QX3RlYW1zX3JlZyBcXChzdWJfLl9vbXBf Zm4uXFswLTlcXSssICYub21wX2RhdGFfby5cWzAtOVxdKywgOTMsIDkxLCAwXFwpOyIgMSAi b21wZXhwIiB9IH0KKworISRvbXAgdGFyZ2V0IHRlYW1zIHRocmVhZF9saW1pdChyZWxheGVk IDogOTkxKSBudW1fdGVhbXMoMTkxIDogOTkzKQorYmxvY2sKKyAgeCA9IDEKK2VuZCBibG9j aworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRh cmdldCBudW1fdGVhbXNcXCgtMVxcKSB0aHJlYWRfbGltaXRcXCg5OTFcXCkgZmlyc3Rwcml2 YXRlXFwoeFxcKSBcXFxbY2hpbGQgZm4iIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVhbXNc XCgxOTEsIDk5M1xcKSB0aHJlYWRfbGltaXRcXCg5OTFcXCkgc2hhcmVkXFwoeFxcKSIgMSAi b21wbG93ZXIiIH0gfQorCishJG9tcCB0ZWFtcyB0aHJlYWRfbGltaXQocmVsYXhlZCA6IDEy MzEpIG1lc3NhZ2UoIm15MTIzNCIpIHNldmVyaXR5KHdhcm5pbmcpCitibG9jaworZW5kIGJs b2NrIAorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21w IHRlYW1zIG1lc3NhZ2VcXCgubXkxMjM0LiBcXFxbbGVuOjZcXFxdXFwpIHNldmVyaXR5XFwo d2FybmluZ1xcKSB0aHJlYWRfbGltaXRcXCgxMjMxXFwpIiAxICJvbXBsb3dlciIgfSB9Cish IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiX19idWlsdGluX0dPTVBfdGVh bXNfcmVnIFxcKHN1Yl8uX29tcF9mbi5cWzAtOVxdKywgMEIsIDAsIDEyMzEsIDBcXCk7IiAx ICJvbXBleHAiIH0gfQorCitlbmQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMtNS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25zLTUuZjkwCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWMzNDM1ZWNkNwotLS0gL2Rldi9udWxsCisr KyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMt NS5mOTAKQEAgLTAsMCArMSw4NCBAQAorISB7IGRnLWRvIGNvbXBpbGUgfQorISB7IGRnLWFk ZGl0aW9uYWwtb3B0aW9ucyAiLWZkdW1wLXRyZWUtZ2ltcGxlIiB9CisKK3N1YnJvdXRpbmUg c3ViKHgpCitpbXBsaWNpdCBub25lCitpbnRlZ2VyIDo6IHgsIGkKKworISRvbXAgdGFyZ2V0 IHRlYW1zIGRpc3RyaWJ1dGUgcGFyYWxsZWwgZG8gbnVtX3RlYW1zKDExIDogMjIpIHRocmVh ZF9saW1pdChzdHJpY3QsZGltcygzKSA6IDExLDEyLDEzKSBudW1fdGhyZWFkcyhyZWxheGVk OiAyMyw0NSw1MykgbWVzc2FnZSgiZmlyc3QiKSBzZXZlcml0eSh3YXJuaW5nKQorZG8gaSA9 IDEsMQorICB4ID0gMAorZW5kIGRvCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IG51bV90ZWFtc1xcKC0xXFwpIG1lc3NhZ2VcXCgu Zmlyc3QuIFxcXFtsZW46NVxcXF1cXCkgc2V2ZXJpdHlcXCh3YXJuaW5nXFwpIHRocmVhZF9s aW1pdFxcKHN0cmljdCxkaW1zXFwoXFwpOjExLCAxMiwgMTNcXCkgZmlyc3Rwcml2YXRlXFwo eFxcKSIgMSAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMgIiNwcmFnbWEgb21wIHRlYW1zIG51bV90ZWFtc1xcKDExLCAyMlxcKSB0aHJlYWRf bGltaXRcXChzdHJpY3QsZGltc1xcKFxcKToxMSwgMTIsIDEzXFwpIG1lc3NhZ2VcXCguZmly c3QuIFxcXFtsZW46NVxcXF1cXCkgc2V2ZXJpdHlcXCh3YXJuaW5nXFwpIHNoYXJlZFxcKHhc XCkiIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRp bWVzICIjcHJhZ21hIG9tcCBwYXJhbGxlbCBtZXNzYWdlXFwoLmZpcnN0LiBcXFxbbGVuOjVc XFxdXFwpIHNldmVyaXR5XFwod2FybmluZ1xcKSBudW1fdGhyZWFkc1xcKDIzLCA0NSwgNTNc XCkgc2hhcmVkXFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQorZW5kCisKKyEgeyBkZy1tZXNz YWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ251bV90aHJlYWRzJyBjbGF1c2Ugd2l0aCBt b3JlIHRoYW4gb25lIGFyZ3VtZW50IiAiIiB7IHRhcmdldCAqLSotKiB9IDggfQorISB7IGRn LW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnbWVzc2FnZScgY2xhdXNlIiAiIiB7 IHRhcmdldCAqLSotKiB9IDggfQorISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVu dGVkOiAndGhyZWFkX2xpbWl0JyBjbGF1c2Ugd2l0aCAnZGltcycgbW9kaWZpZXIiICIiIHsg dGFyZ2V0ICotKi0qIH0gOCB9CisKKworc3Vicm91dGluZSBzdWIyKHgpCitpbXBsaWNpdCBu b25lCitpbnRlZ2VyIDo6IHgsIGkKKworISRvbXAgdGFyZ2V0IHRlYW1zIGRpc3RyaWJ1dGUg cGFyYWxsZWwgZG8gbnVtX3RlYW1zKGRpbXMoNCk6IDExMSwyMjIsMzMzLCAzMjQpIHRocmVh ZF9saW1pdChyZWxheGVkIDogMTEpIG51bV90aHJlYWRzKHN0cmljdDogNDQ1LDU1MykgbWVz c2FnZSgic2Vjb25kIikgc2V2ZXJpdHkoZmF0YWwpCitkbyBpID0gMSwxCisgIHggPSAwCitl bmQgZG8KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9t cCB0YXJnZXQgbnVtX3RlYW1zXFwoLTFcXCkgbWVzc2FnZVxcKC5zZWNvbmQuIFxcXFtsZW46 NlxcXF1cXClzZXZlcml0eVxcKGZhdGFsXFwpIHRocmVhZF9saW1pdFxcKDExXFwpIGZpcnN0 cHJpdmF0ZVxcKHhcXCkiIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVhbXNcXChkaW1zXFwo XFwpOjExMSwgMjIyLCAzMzMsIDMyNFxcKSB0aHJlYWRfbGltaXRcXCgxMVxcKSBtZXNzYWdl XFwoLnNlY29uZC4gXFxcW2xlbjo2XFxcXVxcKXNldmVyaXR5XFwoZmF0YWxcXCkgc2hhcmVk XFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1 bXAtdGltZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIG1lc3NhZ2VcXCguc2Vjb25kLiBcXFxb bGVuOjZcXFxdXFwpc2V2ZXJpdHlcXChmYXRhbFxcKSBudW1fdGhyZWFkc1xcKHN0cmljdDo0 NDUsIDU1M1xcKSBzaGFyZWRcXCh4XFwpIiAxICJvbXBsb3dlciIgfSB9CisKKyEkb21wIHRl YW1zIGRpc3RyaWJ1dGUgcGFyYWxsZWwgZG8gbnVtX3RlYW1zKDExIDogNTUpIHRocmVhZF9s aW1pdChzdHJpY3QgOiAxMSkgbnVtX3RocmVhZHMocmVsYXhlZDogMjMsNDUsNTMpIG1lc3Nh Z2UoInRoaXJkIikgc2V2ZXJpdHkod2FybmluZykKK2RvIGkgPSAxLDEKKyAgeCA9IDAKK2Vu ZCBkbworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21w IHRlYW1zIG1lc3NhZ2VcXCgudGhpcmQuIFxcXFtsZW46NVxcXF1cXCkgc2V2ZXJpdHlcXCh3 YXJuaW5nXFwpIG51bV90ZWFtc1xcKDExLCA1NVxcKSB0aHJlYWRfbGltaXRcXChzdHJpY3Q6 MTFcXCkgc2hhcmVkXFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIG1lc3NhZ2VcXCgu dGhpcmQuIFxcXFtsZW46NVxcXF1cXCkgc2V2ZXJpdHlcXCh3YXJuaW5nXFwpIG51bV90aHJl YWRzXFwoMjMsIDQ1LCA1M1xcKSBzaGFyZWRcXCh4XFwpIiAxICJvbXBsb3dlciIgfSB9CisK KyEkb21wIHRlYW1zIGRpc3RyaWJ1dGUgcGFyYWxsZWwgZG8gbnVtX3RlYW1zKGRpbXMoMik6 IDExMTEsMzMpIHRocmVhZF9saW1pdChkaW1zKDMpIDogMTEsMyw0ODApIG51bV90aHJlYWRz KHN0cmljdCwgZGltcygyKTogNDQ1LDU1MykgbWVzc2FnZSgiZm91cnRoIikgc2V2ZXJpdHko ZmF0YWwpCitkbyBpID0gMSwxCisgIHggPSAwCitlbmQgZG8KKyEgeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBtZXNzYWdlXFwoLmZvdXJ0 aC4gXFxcW2xlbjo1XFxcXVxcKXNldmVyaXR5XFwoZmF0YWxcXCkgbnVtX3RlYW1zXFwoZGlt c1xcKFxcKToxMTExLCAzM1xcKSB0aHJlYWRfbGltaXRcXChzdHJpY3QsZGltc1xcKFxcKTox MSwgMywgNDgwXFwpIHNoYXJlZFxcKHhcXCkiIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBwYXJhbGxlbCBtZXNz YWdlXFwoLmZvdXJ0aC4gXFxcW2xlbjo1XFxcXVxcKXNldmVyaXR5XFwoZmF0YWxcXCkgbnVt X3RocmVhZHNcXChzdHJpY3QsZGltc1xcKFxcKTo0NDUsIDU1M1xcKSBzaGFyZWRcXCh4XFwp IiAxICJvbXBsb3dlciIgfSB9CisKKyEkb21wIHRhcmdldCBtZXNzYWdlKCJ0Z3QxIikgc2V2 ZXJpdHkod2FybmluZykgdGhyZWFkX2xpbWl0KHN0cmljdCA6IDE0NTQpCitibG9jaworICB4 ID0gMAorZW5kIGJsb2NrCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAi I3ByYWdtYSBvbXAgdGFyZ2V0IG51bV90ZWFtc1xcKC0yXFwpIG1lc3NhZ2VcXCgudGd0MS4g XFxcW2xlbjo0XFxcXVxcKSBzZXZlcml0eVxcKHdhcm5pbmdcXCkgdGhyZWFkX2xpbWl0XFwo c3RyaWN0OjE0NTRcXCkgZmlyc3Rwcml2YXRlXFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQor CishJG9tcCB0YXJnZXQgbWVzc2FnZSgidGd0MiIpIHNldmVyaXR5KGZhdGFsKSB0aHJlYWRf bGltaXQocmVsYXhlZCA6IDQ1NCkKK2Jsb2NrCisgIHggPSAwCitlbmQgYmxvY2sKKyEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgbnVt X3RlYW1zXFwoLTJcXCkgbWVzc2FnZVxcKC50Z3QyLiBcXFxbbGVuOjRcXFxdXFwpc2V2ZXJp dHlcXChmYXRhbFxcKSB0aHJlYWRfbGltaXRcXCg0NTRcXCkgZmlyc3Rwcml2YXRlXFwoeFxc KSIgMSAib21wbG93ZXIiIH0gfQorCishJG9tcCB0ZWFtcyBudW1fdGVhbXMoMTQgOiAzNCkg bWVzc2FnZSgidGVhbXMiKSBzZXZlcml0eShmYXRhbCkKK2Jsb2NrCisgIHggPSAwCitlbmQg YmxvY2sKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9t cCB0ZWFtcyBtZXNzYWdlXFwoLnRlYW1zLiBcXFxbbGVuOjVcXFxdXFwpc2V2ZXJpdHlcXChm YXRhbFxcKSBudW1fdGVhbXNcXCgxNCwgMzRcXCkgc2hhcmVkXFwoeFxcKSIgMSAib21wbG93 ZXIiIH0gfQorCishJG9tcCB0ZWFtcyB0aHJlYWRfbGltaXQocmVsYXhlZCwgZGltcygyKTog NTE0ICwgMzg0KSBzZXZlcml0eSh3YXJuaW5nKQorYmxvY2sKKyAgeCA9IDAKK2VuZCBibG9j aworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRl YW1zIHNldmVyaXR5XFwod2FybmluZ1xcKSB0aHJlYWRfbGltaXRcXChkaW1zXFwoXFwpOjUx NCwgMzg0XFwpIHNoYXJlZFxcKHhcXCkiIDEgIm9tcGxvd2VyIiB9IH0KKworISRvbXAgcGFy YWxsZWwgbnVtX3RocmVhZHMocmVsYXhlZCwgZGltcygyKTogNTE0ICwgMzg0KSBzZXZlcml0 eSh3YXJuaW5nKQorYmxvY2sKKyAgeCA9IDAKK2VuZCBibG9jaworISB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIHNldmVyaXR5XFwo d2FybmluZ1xcKSBudW1fdGhyZWFkc1xcKGRpbXNcXChcXCk6NTE0LCAzODRcXCkgc2hhcmVk XFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQorCishJG9tcCBwYXJhbGxlbCBudW1fdGhyZWFk cyhzdHJpY3Q6IDg0NyAsIDM1MjMsIDUzKSBtZXNzYWdlKCJwYXJhbGxlbCIpCitibG9jawor ICB4ID0gMAorZW5kIGJsb2NrCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbWVzc2FnZVxcKC5wYXJhbGxlbC4gXFxcW2xlbjo4 XFxcXVxcKXNldmVyaXR5XFwoZmF0YWxcXCkgbnVtX3RocmVhZHNcXChzdHJpY3Q6ODQ3LCAz NTIzLCA1M1xcKSBzaGFyZWRcXCh4XFwpIiAxICJvbXBsb3dlciIgfSB9CisKK2VuZApkaWZm IC0tZ2l0IGEvZ2NjL3RyZWUtY29yZS5oIGIvZ2NjL3RyZWUtY29yZS5oCmluZGV4IDkxOGUw NzdhZjFiLi4zYWMwZDU2ZmM5OSAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtY29yZS5oCisrKyBi L2djYy90cmVlLWNvcmUuaApAQCAtNjAyLDYgKzYwMiwxMyBAQCBlbnVtIG9tcF9jbGF1c2Vf Y29kZSB7CiAKICAgLyogT3Blbk1QIGNsYXVzZTogdXNlc19hbGxvY2F0b3JzLiAgKi8KICAg T01QX0NMQVVTRV9VU0VTX0FMTE9DQVRPUlMsCisKKyAgLyogT3Blbk1QIGNsYXVzZTogbWVz c2FnZSAoc3RyaW5nLWV4cHIpLgorICAgICBJZiB0aGUgc3RyaW5nIGV4cHIgaXMgbm90IG51 bGwgdGVybWluYXRlZCwgdGhlIGxlbmd0aCBuZWVkcyB0byBiZQorICAgICBzdG9yZWQgaW4g T01QX0NMQVVTRV9NRVNTQUdFX0xFTi4KKyAgICAgTm90ZSB0aGF0IHRoZSAnc2V2ZXJpdHkn IGNsYXVzZSBpcyBoYW5kbGVkIGFzIGZsYWcgdG8gJ21lc3NhZ2UnOgorICAgICBPTVBfQ0xB VVNFX01FU1NBR0VfU0VWRVJJVFlfV0FSTi4gICovCisgIE9NUF9DTEFVU0VfTUVTU0FHRQog fTsKIAogI3VuZGVmIERFRlRSRUVTVFJVQ1QKZGlmZiAtLWdpdCBhL2djYy90cmVlLXByZXR0 eS1wcmludC5jYyBiL2djYy90cmVlLXByZXR0eS1wcmludC5jYwppbmRleCBiNDcwYTlkZWU3 Yi4uYmQ2MGU1YzE1YzEgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXByZXR0eS1wcmludC5jYwor KysgYi9nY2MvdHJlZS1wcmV0dHktcHJpbnQuY2MKQEAgLTcwNCw2ICs3MDQsMTYgQEAgZHVt cF9vbXBfY2xhdXNlIChwcmV0dHlfcHJpbnRlciAqcHAsIHRyZWUgY2xhdXNlLCBpbnQgc3Bj LCBkdW1wX2ZsYWdzX3QgZmxhZ3MpCiAKICAgICBjYXNlIE9NUF9DTEFVU0VfTlVNX1RIUkVB RFM6CiAgICAgICBwcF9zdHJpbmcgKHBwLCAibnVtX3RocmVhZHMoIik7CisgICAgICBpZiAo T01QX0NMQVVTRV9OVU1fVEhSRUFEU19TVFJJQ1QgKGNsYXVzZSkpCisJcHBfc3RyaW5nIChw cCwgInN0cmljdCIpOworICAgICAgaWYgKE9NUF9DTEFVU0VfTlVNX1RIUkVBRFNfU1RSSUNU IChjbGF1c2UpCisJICAmJiBPTVBfQ0xBVVNFX05VTV9USFJFQURTX0RJTVMgKGNsYXVzZSkp CisJcHBfY29tbWEgKHBwKTsKKyAgICAgIGlmIChPTVBfQ0xBVVNFX05VTV9USFJFQURTX0RJ TVMgKGNsYXVzZSkpCisJcHBfc3RyaW5nIChwcCwgImRpbXMoKSIpOworICAgICAgaWYgKE9N UF9DTEFVU0VfTlVNX1RIUkVBRFNfU1RSSUNUIChjbGF1c2UpCisJICB8fCBPTVBfQ0xBVVNF X05VTV9USFJFQURTX0RJTVMgKGNsYXVzZSkpCisJcHBfY29sb24gKHBwKTsKICAgICAgIGR1 bXBfZ2VuZXJpY19ub2RlIChwcCwgT01QX0NMQVVTRV9OVU1fVEhSRUFEU19FWFBSIChjbGF1 c2UpLAogCQkJIHNwYywgZmxhZ3MsIGZhbHNlKTsKICAgICAgIHBwX3JpZ2h0X3BhcmVuIChw cCk7CkBAIC04MjAsNiArODMwLDI5IEBAIGR1bXBfb21wX2NsYXVzZSAocHJldHR5X3ByaW50 ZXIgKnBwLCB0cmVlIGNsYXVzZSwgaW50IHNwYywgZHVtcF9mbGFnc190IGZsYWdzKQogICAg ICAgcHBfc3RyaW5nIChwcCwgIm1lcmdlYWJsZSIpOwogICAgICAgYnJlYWs7CiAKKyAgICBj YXNlIE9NUF9DTEFVU0VfTUVTU0FHRToKKyAgICAgIGlmIChPTVBfQ0xBVVNFX01FU1NBR0Vf RVhQUiAoY2xhdXNlKSkKKwl7CisJICBwcF9zdHJpbmcgKHBwLCAibWVzc2FnZSgiKTsKKwkg IGR1bXBfZ2VuZXJpY19ub2RlIChwcCwgT01QX0NMQVVTRV9NRVNTQUdFX0VYUFIgKGNsYXVz ZSksCisJCQkgICAgIHNwYywgZmxhZ3MsIGZhbHNlKTsKKwkgIGlmIChPTVBfQ0xBVVNFX01F U1NBR0VfTEVOIChjbGF1c2UpKQorCSAgICB7CisJICAgICAgcHBfc3RyaW5nIChwcCwgIiBb bGVuOiIpOworCSAgICAgIGR1bXBfZ2VuZXJpY19ub2RlIChwcCwgT01QX0NMQVVTRV9NRVNT QUdFX0xFTiAoY2xhdXNlKSwKKwkJCQkgc3BjLCBmbGFncywgZmFsc2UpOworCSAgICAgIHBw X3JpZ2h0X2JyYWNrZXQgKHBwKTsKKwkgICAgfQorCSAgcHBfcmlnaHRfcGFyZW4gKHBwKTsK KwkgIGlmIChPTVBfQ0xBVVNFX01FU1NBR0VfU0VWRVJJVFlfV0FSTiAoY2xhdXNlKSkKKwkg ICAgcHBfc3BhY2UgKHBwKTsKKwl9CisgICAgICBpZiAoT01QX0NMQVVTRV9NRVNTQUdFX1NF VkVSSVRZX1dBUk4gKGNsYXVzZSkpCisJcHBfc3RyaW5nIChwcCwgInNldmVyaXR5KHdhcm5p bmcpIik7CisgICAgICBlbHNlCisJcHBfc3RyaW5nIChwcCwgInNldmVyaXR5KGZhdGFsKSIp OworICAgICAgYnJlYWs7CisKICAgICBjYXNlIE9NUF9DTEFVU0VfTElORUFSOgogICAgICAg cHBfc3RyaW5nIChwcCwgImxpbmVhcigiKTsKICAgICAgIGlmIChPTVBfQ0xBVVNFX0xJTkVB Ul9PTERfTElORUFSX01PRElGSUVSIChjbGF1c2UpKQpAQCAtMTI3Miw2ICsxMzA1LDggQEAg ZHVtcF9vbXBfY2xhdXNlIChwcmV0dHlfcHJpbnRlciAqcHAsIHRyZWUgY2xhdXNlLCBpbnQg c3BjLCBkdW1wX2ZsYWdzX3QgZmxhZ3MpCiAKICAgICBjYXNlIE9NUF9DTEFVU0VfTlVNX1RF QU1TOgogICAgICAgcHBfc3RyaW5nIChwcCwgIm51bV90ZWFtcygiKTsKKyAgICAgIGlmIChP TVBfQ0xBVVNFX05VTV9URUFNU19ESU1TIChjbGF1c2UpKQorCXBwX3N0cmluZyAocHAsICJk aW1zKCk6Iik7CiAgICAgICBpZiAoT01QX0NMQVVTRV9OVU1fVEVBTVNfTE9XRVJfRVhQUiAo Y2xhdXNlKSkKIAl7CiAJICBkdW1wX2dlbmVyaWNfbm9kZSAocHAsIE9NUF9DTEFVU0VfTlVN X1RFQU1TX0xPV0VSX0VYUFIgKGNsYXVzZSksCkBAIC0xMjg1LDYgKzEzMjAsMTYgQEAgZHVt cF9vbXBfY2xhdXNlIChwcmV0dHlfcHJpbnRlciAqcHAsIHRyZWUgY2xhdXNlLCBpbnQgc3Bj LCBkdW1wX2ZsYWdzX3QgZmxhZ3MpCiAKICAgICBjYXNlIE9NUF9DTEFVU0VfVEhSRUFEX0xJ TUlUOgogICAgICAgcHBfc3RyaW5nIChwcCwgInRocmVhZF9saW1pdCgiKTsKKyAgICAgIGlm IChPTVBfQ0xBVVNFX1RIUkVBRF9MSU1JVF9TVFJJQ1QgKGNsYXVzZSkpCisJcHBfc3RyaW5n IChwcCwgInN0cmljdCIpOworICAgICAgaWYgKE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX1NU UklDVCAoY2xhdXNlKQorCSAgJiYgT01QX0NMQVVTRV9USFJFQURfTElNSVRfRElNUyAoY2xh dXNlKSkKKwlwcF9jb21tYSAocHApOworICAgICAgaWYgKE9NUF9DTEFVU0VfVEhSRUFEX0xJ TUlUX0RJTVMgKGNsYXVzZSkpCisJcHBfc3RyaW5nIChwcCwgImRpbXMoKSIpOworICAgICAg aWYgKE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX1NUUklDVCAoY2xhdXNlKQorCSAgfHwgT01Q X0NMQVVTRV9USFJFQURfTElNSVRfRElNUyAoY2xhdXNlKSkKKwlwcF9jb2xvbiAocHApOwog ICAgICAgZHVtcF9nZW5lcmljX25vZGUgKHBwLCBPTVBfQ0xBVVNFX1RIUkVBRF9MSU1JVF9F WFBSIChjbGF1c2UpLAogCQkJIHNwYywgZmxhZ3MsIGZhbHNlKTsKICAgICAgIHBwX3JpZ2h0 X3BhcmVuIChwcCk7CmRpZmYgLS1naXQgYS9nY2MvdHJlZS5jYyBiL2djYy90cmVlLmNjCmlu ZGV4IDk3N2JkYWEwODQ1Li5iODAwNjgwOTMyMiAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUuY2MK KysrIGIvZ2NjL3RyZWUuY2MKQEAgLTQwMCw2ICs0MDAsNyBAQCB1bnNpZ25lZCBjb25zdCBj aGFyIG9tcF9jbGF1c2VfbnVtX29wc1tdID0KICAgMSwgLyogT01QX0NMQVVTRV9OT0NPTlRF WFQgKi8KICAgMSwgLyogT01QX0NMQVVTRV9EWU5fR1JPVVBQUklWQVRFICAqLwogICAzLCAv KiBPTVBfQ0xBVVNFX1VTRVNfQUxMT0NBVE9SUyAqLworICAyLCAvKiBPTVBfQ0xBVVNFX01F U1NBR0UgKi8KIH07CiAKIGNvbnN0IGNoYXIgKiBjb25zdCBvbXBfY2xhdXNlX2NvZGVfbmFt ZVtdID0KQEAgLTUwNSw2ICs1MDYsNyBAQCBjb25zdCBjaGFyICogY29uc3Qgb21wX2NsYXVz ZV9jb2RlX25hbWVbXSA9CiAgICJub2NvbnRleHQiLAogICAiZHluX2dyb3VwcHJpdmF0ZSIs CiAgICJ1c2VzX2FsbG9jYXRvcnMiLAorICAibWVzc2FnZSIKIH07CiAKIC8qIFVubGVzcyBz cGVjaWZpYyB0byBPcGVuQUNDLCB3ZSB0ZW5kIHRvIGludGVybmFsbHkgbWFpbnRhaW4gT3Bl bk1QLWNlbnRyaWMKZGlmZiAtLWdpdCBhL2djYy90cmVlLmggYi9nY2MvdHJlZS5oCmluZGV4 IGQwMzhkMmFmZDMzLi4xY2NiZjg0OGQ5YiAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUuaAorKysg Yi9nY2MvdHJlZS5oCkBAIC0xODY0LDYgKzE4NjQsMTYgQEAgY2xhc3MgYXV0b19zdXBwcmVz c19sb2NhdGlvbl93cmFwcGVycwogICBUUkVFX1BSSVZBVEUgKE9NUF9DTEFVU0VfU1VCQ09E RV9DSEVDSyAoTk9ERSwgT01QX0NMQVVTRV9HUkFJTlNJWkUpKQogI2RlZmluZSBPTVBfQ0xB VVNFX05VTV9UQVNLU19TVFJJQ1QoTk9ERSkgXAogICBUUkVFX1BSSVZBVEUgKE9NUF9DTEFV U0VfU1VCQ09ERV9DSEVDSyAoTk9ERSwgT01QX0NMQVVTRV9OVU1fVEFTS1MpKQorI2RlZmlu ZSBPTVBfQ0xBVVNFX05VTV9USFJFQURTX1NUUklDVChOT0RFKSBcCisgIFRSRUVfUFJJVkFU RSAoT01QX0NMQVVTRV9TVUJDT0RFX0NIRUNLIChOT0RFLCBPTVBfQ0xBVVNFX05VTV9USFJF QURTKSkKKyNkZWZpbmUgT01QX0NMQVVTRV9USFJFQURfTElNSVRfU1RSSUNUKE5PREUpIFwK KyAgVFJFRV9QUklWQVRFIChPTVBfQ0xBVVNFX1NVQkNPREVfQ0hFQ0sgKE5PREUsIE9NUF9D TEFVU0VfVEhSRUFEX0xJTUlUKSkKKyNkZWZpbmUgT01QX0NMQVVTRV9OVU1fVEVBTVNfRElN UyhOT0RFKSBcCisgIFRSRUVfUFJPVEVDVEVEIChPTVBfQ0xBVVNFX1NVQkNPREVfQ0hFQ0sg KE5PREUsIE9NUF9DTEFVU0VfTlVNX1RFQU1TKSkKKyNkZWZpbmUgT01QX0NMQVVTRV9OVU1f VEhSRUFEU19ESU1TKE5PREUpIFwKKyAgVFJFRV9QUk9URUNURUQgKE9NUF9DTEFVU0VfU1VC Q09ERV9DSEVDSyAoTk9ERSwgT01QX0NMQVVTRV9OVU1fVEhSRUFEUykpCisjZGVmaW5lIE9N UF9DTEFVU0VfVEhSRUFEX0xJTUlUX0RJTVMoTk9ERSkgXAorICBUUkVFX1BST1RFQ1RFRCAo T01QX0NMQVVTRV9TVUJDT0RFX0NIRUNLIChOT0RFLCBPTVBfQ0xBVVNFX1RIUkVBRF9MSU1J VCkpCiAKIC8qIE9wZW5BQ0MgY2xhdXNlIGV4cHJlc3Npb25zICAqLwogI2RlZmluZSBPTVBf Q0xBVVNFX0VYUFIoTk9ERSwgQ0xBVVNFKSBcCkBAIC0xOTA5LDYgKzE5MTksMTcgQEAgY2xh c3MgYXV0b19zdXBwcmVzc19sb2NhdGlvbl93cmFwcGVycwogI2RlZmluZSBPTVBfQ0xBVVNF X0RPQUNST1NTX0RFUEVORChOT0RFKSBcCiAgIFRSRUVfUFJPVEVDVEVEIChPTVBfQ0xBVVNF X1NVQkNPREVfQ0hFQ0sgKE5PREUsIE9NUF9DTEFVU0VfRE9BQ1JPU1MpKQogCisvKiBJZiB0 aGUgc3RyaW5nIHBhc3NlZCB0byB0aGUgJ21lc3NhZ2UnIGNsYXVzZSBpcyBub3QgbnVsbCB0 ZXJtaW5hdGVkLAorICAgT01QX0NMQVVTRV9NRVNTQUdFX0xFTiBtdXN0IGJlIHNldC4gICov CisjZGVmaW5lIE9NUF9DTEFVU0VfTUVTU0FHRV9FWFBSKE5PREUpIFwKKyAgT01QX0NMQVVT RV9PUEVSQU5EICggXAorICAgIE9NUF9DTEFVU0VfU1VCQ09ERV9DSEVDSyAoTk9ERSwgT01Q X0NMQVVTRV9NRVNTQUdFKSwgMCkKKyNkZWZpbmUgT01QX0NMQVVTRV9NRVNTQUdFX0xFTihO T0RFKSBcCisgIE9NUF9DTEFVU0VfT1BFUkFORCAoIFwKKyAgICBPTVBfQ0xBVVNFX1NVQkNP REVfQ0hFQ0sgKE5PREUsIE9NUF9DTEFVU0VfTUVTU0FHRSksIDEpCisjZGVmaW5lIE9NUF9D TEFVU0VfTUVTU0FHRV9TRVZFUklUWV9XQVJOKE5PREUpIFwKKyAgKE9NUF9DTEFVU0VfU1VC Q09ERV9DSEVDSyAoTk9ERSwgT01QX0NMQVVTRV9NRVNTQUdFKS0+YmFzZS5wdWJsaWNfZmxh ZykKKwogI2RlZmluZSBPTVBfQ0xBVVNFX01BUF9LSU5EKE5PREUpIFwKICAgKChlbnVtIGdv bXBfbWFwX2tpbmQpIE9NUF9DTEFVU0VfU1VCQ09ERV9DSEVDSyAoTk9ERSwgT01QX0NMQVVT RV9NQVApLT5vbXBfY2xhdXNlLnN1YmNvZGUubWFwX2tpbmQpCiAjZGVmaW5lIE9NUF9DTEFV U0VfU0VUX01BUF9LSU5EKE5PREUsIE1BUF9LSU5EKSBcCg== --------------iCsM76R7KSqxfIvCzg0iVfNl--