From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f561.i.mail.ru (f561.i.mail.ru [128.140.171.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id A811542F4C7 for ; Tue, 19 Nov 2019 10:14:25 +0300 (MSK) From: =?UTF-8?B?U2VyZ2V5IFBldHJlbmtv?= MIME-Version: 1.0 Date: Tue, 19 Nov 2019 10:14:24 +0300 Reply-To: =?UTF-8?B?U2VyZ2V5IFBldHJlbmtv?= Message-ID: <1574147664.963368755@f561.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--rCFBLuJaD2GE2pfD8ZIh391McRVAfSpN1574147664" In-Reply-To: References: <9acb94cdbc364205c96d66538f3ad06f3747aa54.1574091776.git.sergepetrenko@tarantool.org> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v3_1/3=5D_fiber=2Etop=28?= =?utf-8?q?=29_refactor_clock_and_cpu_time_calculation?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= Cc: tarantool-patches@dev.tarantool.org ----ALT--rCFBLuJaD2GE2pfD8ZIh391McRVAfSpN1574147664 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 Cj7QktGC0L7RgNC90LjQuiwgMTkg0L3QvtGP0LHRgNGPIDIwMTksIDE6MTkgKzAzOjAwINC+0YIg VmxhZGlzbGF2IFNocGlsZXZveSA8di5zaHBpbGV2b3lAdGFyYW50b29sLm9yZz46Cj4KPkhpISBU aGFua3MgZm9yIHRoZSBmaXhlcyEKPgo+SSBzdWdnZXN0IHlvdSB0byBtb3ZlIGFsbCBmdW5jdGlv bnMgcmVsYXRlZCB0byBjcHUgYW5kIGNsb2NrCj5zdGF0ZSB0byBmaWJlci5jIGFuZCBtYWtlIHRo ZW0gc3RhdGljIHRoZXJlLiBJbiBvcmRlciBub3QgdG8KPnBvbGx1dGUgdGhlIGdsb2JhbCBuYW1l c3BhY2Ugd2l0aCBmaWJlcidzIHByaXZhdGUgZnVuY3Rpb25zLgo+Cj5JIGRpZCB0aGF0IGluIGEg Y29tbWl0IGFib3ZlIHRoaXMgb25lLiBZb3UgbWF5IHNxdWFzaCwgb3IgcmVkbywKPndoYXRldmVy OgpIaSEgVGhhbmtzLCBJIHNxdWFzaGVkLgo+Cj4KPj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPgo+ZGlmZiAtLWdpdCBh L3NyYy9saWIvY29yZS9maWJlci5jIGIvc3JjL2xpYi9jb3JlL2ZpYmVyLmMKPmluZGV4IDFlMDhk MGVjOS4uM2ZhYTE5OGQzIDEwMDY0NAo+LS0tIGEvc3JjL2xpYi9jb3JlL2ZpYmVyLmMKPisrKyBi L3NyYy9saWIvY29yZS9maWJlci5jCj5AQCAtNDQsNiArNDQsMTEyIEBACj4KPsKgI2lmIEVOQUJM RV9GSUJFUl9UT1AKPsKgI2luY2x1ZGUgPHg4NmludHJpbi5oPiAvKiBfX3JkdHNjcCgpICovCj4r Cj4rc3RhdGljIGlubGluZSB2b2lkCj4rY2xvY2tfc3RhdF9hZGRfZGVsdGEoc3RydWN0IGNsb2Nr X3N0YXQgKnN0YXQsIHVpbnQ2NF90IGNsb2NrX2RlbHRhKQo+K3sKPisJc3RhdC0+ZGVsdGEgKz0g Y2xvY2tfZGVsdGE7Cj4rfQo+Kwo+Ky8qKgo+KyAqIENhbGN1bGF0ZSB0aGUgZXhwb25lbnRpYWwg bW92aW5nIGF2ZXJhZ2UgZm9yIHRoZSBjbG9jayBkZWx0YXMKPisgKiBwZXIgbG9vcCBpdGVyYXRp b24uIFRoZSBjb2VmZml0aWVudCBpcyAxLzE2Lgo+KyAqLwo+K3N0YXRpYyBpbmxpbmUgdWludDY0 X3QKPitjbG9ja19kaWZmX2FjY3VtdWxhdGUodWludDY0X3QgYWNjLCB1aW50NjRfdCBkZWx0YSkK Pit7Cj4rCWlmIChhY2MgPiAwKQo+KwkJcmV0dXJuIGRlbHRhIC8gMTYgKyAxNSAqIGFjYyAvIDE2 Owo+KwllbHNlCj4rCQlyZXR1cm4gZGVsdGE7Cj4rfQo+Kwo+K3N0YXRpYyBpbmxpbmUgdm9pZAo+ K2Nsb2NrX3N0YXRfdXBkYXRlKHN0cnVjdCBjbG9ja19zdGF0ICpzdGF0LCBkb3VibGUgbnNlY19w ZXJfY2xvY2spCj4rewo+KwlzdGF0LT5hY2MgPSBjbG9ja19kaWZmX2FjY3VtdWxhdGUoc3RhdC0+ YWNjLCBzdGF0LT5kZWx0YSk7Cj4rCXN0YXQtPnByZXZfZGVsdGEgPSBzdGF0LT5kZWx0YTsKPisJ c3RhdC0+Y3B1dGltZSArPSBzdGF0LT5kZWx0YSAqIG5zZWNfcGVyX2Nsb2NrOwo+KwlzdGF0LT5k ZWx0YSA9IDA7Cj4rfQo+Kwo+K3N0YXRpYyBpbmxpbmUgdm9pZAo+K2Nsb2NrX3N0YXRfcmVzZXQo c3RydWN0IGNsb2NrX3N0YXQgKnN0YXQpCj4rewo+KwlzdGF0LT5hY2MgPSAwOwo+KwlzdGF0LT5k ZWx0YSA9IDA7Cj4rCXN0YXQtPnByZXZfZGVsdGEgPSAwOwo+KwlzdGF0LT5jcHV0aW1lID0gMDsK Pit9Cj4rCj4rc3RhdGljIHZvaWQKPitjcHVfc3RhdF9zdGFydChzdHJ1Y3QgY3B1X3N0YXQgKnN0 YXQpCj4rewo+KwlzdGF0LT5wcmV2X2Nsb2NrID0gX19yZHRzY3AoJnN0YXQtPnByZXZfY3B1X2lk KTsKPisJc3RhdC0+Y3B1X21pc3NfY291bnQgPSAwOwo+KwkvKgo+KwkgKiBXZSB3YW50IHRvIG1l YXN1cmUgdGhyZWFkIGNwdSB0aW1lIGhlcmUgdG8gY2FsY3VsYXRlCj4rCSAqIGVhY2ggZmliZXIn cyBjcHUgdGltZSwgc28gZG9uJ3QgdXNlIGxpYmV2J3MgZXZfbm93KCkgb3IKPisJICogZXZfdGlt ZSgpIHNpbmNlIHRoZXkgdXNlIGVpdGhlciBtb25vdG9uaWMgb3IgcmVhbHRpbWUKPisJICogc3lz dGVtIGNsb2Nrcy4KPisJICovCj4rCXN0cnVjdCB0aW1lc3BlYyB0czsKPisJaWYgKGNsb2NrX2dl dHRpbWUoQ0xPQ0tfVEhSRUFEX0NQVVRJTUVfSUQsICZ0cykgIT0gMCkgewo+KwkJc2F5X2RlYnVn KCJjbG9ja19nZXR0aW1lKCk6IGZhaWxlZCB0byBnZXQgdGhpcyB0aHJlYWQncyIKPisJCQkgICIg Y3B1IHRpbWUuIik7Cj4rCQlyZXR1cm47Cj4rCX0KPisJc3RhdC0+cHJldl9jcHV0aW1lID0gKHVp bnQ2NF90KSB0cy50dl9zZWMgKiBGSUJFUl9USU1FX1JFUyArIHRzLnR2X25zZWM7Cj4rfQo+Kwo+ K3N0YXRpYyBpbmxpbmUgdm9pZAo+K2NwdV9zdGF0X3Jlc2V0KHN0cnVjdCBjcHVfc3RhdCAqc3Rh dCkKPit7Cj4rCXN0YXQtPnByZXZfY3B1X21pc3NfY291bnQgPSAwOwo+KwljcHVfc3RhdF9zdGFy dChzdGF0KTsKPit9Cj4rCj4rc3RhdGljIHVpbnQ2NF90Cj4rY3B1X3N0YXRfb25fY3N3KHN0cnVj dCBjcHVfc3RhdCAqc3RhdCkKPit7Cj4rCXVpbnQzMl90IGNwdV9pZDsKPisJdWludDY0X3QgZGVs dGEsIGNsb2NrID0gX19yZHRzY3AoJmNwdV9pZCk7Cj4rCj4rCWlmIChjcHVfaWQgPT0gc3RhdC0+ cHJldl9jcHVfaWQpIHsKPisJCWRlbHRhID0gY2xvY2sgLSBzdGF0LT5wcmV2X2Nsb2NrOwo+Kwl9 IGVsc2Ugewo+KwkJZGVsdGEgPSAwOwo+KwkJc3RhdC0+cHJldl9jcHVfaWQgPSBjcHVfaWQ7Cj4r CQlzdGF0LT5jcHVfbWlzc19jb3VudCsrOwo+Kwl9Cj4rCXN0YXQtPnByZXZfY2xvY2sgPSBjbG9j azsKPisKPisJcmV0dXJuIGRlbHRhOwo+K30KPisKPitzdGF0aWMgZG91YmxlCj4rY3B1X3N0YXRf ZW5kKHN0cnVjdCBjcHVfc3RhdCAqc3RhdCwgc3RydWN0IGNsb2NrX3N0YXQgKmNvcmRfY2xvY2tf c3RhdCkKPit7Cj4rCXN0YXQtPnByZXZfY3B1X21pc3NfY291bnQgPSBzdGF0LT5jcHVfbWlzc19j b3VudDsKPisJc3RhdC0+Y3B1X21pc3NfY291bnQgPSAwOwo+Kwo+KwlzdHJ1Y3QgdGltZXNwZWMg dHM7Cj4rCXVpbnQ2NF90IGRlbHRhX3RpbWU7Cj4rCWRvdWJsZSBuc2VjX3Blcl9jbG9jayA9IDA7 Cj4rCWlmIChjbG9ja19nZXR0aW1lKENMT0NLX1RIUkVBRF9DUFVUSU1FX0lELCAmdHMpICE9IDAp IHsKPisJCXNheV9kZWJ1ZygiY2xvY2tfZ2V0dGltZSgpOiBmYWlsZWQgdG8gZ2V0IHRoaXMgdGhy ZWFkJ3MiCj4rCQkJICAiIGNwdSB0aW1lLiIpOwo+Kwl9IGVsc2Ugewo+KwkJZGVsdGFfdGltZSA9 ICh1aW50NjRfdCkgdHMudHZfc2VjICogRklCRVJfVElNRV9SRVMgKwo+KwkJCSAgICAgdHMudHZf bnNlYzsKPisJCWlmIChkZWx0YV90aW1lID4gc3RhdC0+cHJldl9jcHV0aW1lICYmIGNvcmRfY2xv Y2tfc3RhdC0+ZGVsdGEgPiAwKSB7Cj4rCQkJZGVsdGFfdGltZSAtPSBzdGF0LT5wcmV2X2NwdXRp bWU7Cj4rCQkJbnNlY19wZXJfY2xvY2sgPSAoZG91YmxlKSBkZWx0YV90aW1lIC8gY29yZCgpLT5j bG9ja19zdGF0LmRlbHRhOwo+KwkJfQo+Kwl9Cj4rCXJldHVybiBuc2VjX3Blcl9jbG9jazsKPit9 Cj4rCj7CoCNlbmRpZiAvKiBFTkFCTEVfRklCRVJfVE9QICovCj4KPsKgI2luY2x1ZGUgInRoaXJk X3BhcnR5L3ZhbGdyaW5kL21lbWNoZWNrLmgiCj5AQCAtODgsOSArMTk0LDYgQEAgc3RhdGljIGlu dCAoKmZpYmVyX2ludm9rZSkoZmliZXJfZnVuYyBmLCB2YV9saXN0IGFwKTsKPgo+wqAjaWYgRU5B QkxFX0ZJQkVSX1RPUAo+wqBzdGF0aWMgX190aHJlYWQgYm9vbCBmaWJlcl90b3BfZW5hYmxlZCA9 IGZhbHNlOwo+LQo+LXVpbnQ2NF90Cj4tY3B1X3N0YXRfb25fY3N3KHN0cnVjdCBjcHVfc3RhdCAq c3RhdCk7Cj7CoCNlbmRpZiAvKiBFTkFCTEVfRklCRVJfVE9QICovCj4KPsKgLyoqCj5AQCAtMTA5 MSwxMTIgKzExOTQsNiBAQCBsb29wX29uX2l0ZXJhdGlvbl9zdGFydChldl9sb29wICpsb29wLCBl dl9jaGVjayAqd2F0Y2hlciwgaW50IHJldmVudHMpCj7CoAljcHVfc3RhdF9zdGFydCgmY29yZCgp LT5jcHVfc3RhdCk7Cj7CoH0KPgo+LS8qKgo+LSAqIENhbGN1bGF0ZSB0aGUgZXhwb25lbnRpYWwg bW92aW5nIGF2ZXJhZ2UgZm9yIHRoZSBjbG9jayBkZWx0YXMKPi0gKiBwZXIgbG9vcCBpdGVyYXRp b24uIFRoZSBjb2VmZml0aWVudCBpcyAxLzE2Lgo+LSAqLwo+LXN0YXRpYyBpbmxpbmUgdWludDY0 X3QKPi1jbG9ja19kaWZmX2FjY3VtdWxhdGUodWludDY0X3QgYWNjLCB1aW50NjRfdCBkZWx0YSkK Pi17Cj4tCWlmIChhY2MgPiAwKSB7Cj4tCQlyZXR1cm4gZGVsdGEgLyAxNiArIDE1ICogYWNjIC8g MTY7Cj4tCX0gZWxzZSB7Cj4tCQlyZXR1cm4gZGVsdGE7Cj4tCX0KPi19Cj4tCj4taW5saW5lIHZv aWQKPi1jbG9ja19zdGF0X2FkZF9kZWx0YShzdHJ1Y3QgY2xvY2tfc3RhdCAqc3RhdCwgdWludDY0 X3QgY2xvY2tfZGVsdGEpCj4tewo+LQlzdGF0LT5kZWx0YSArPSBjbG9ja19kZWx0YTsKPi19Cj4t Cj4tdm9pZAo+LWNsb2NrX3N0YXRfdXBkYXRlKHN0cnVjdCBjbG9ja19zdGF0ICpzdGF0LCBkb3Vi bGUgbnNlY19wZXJfY2xvY2spCj4tewo+LQlzdGF0LT5hY2MgPSBjbG9ja19kaWZmX2FjY3VtdWxh dGUoc3RhdC0+YWNjLCBzdGF0LT5kZWx0YSk7Cj4tCXN0YXQtPnByZXZfZGVsdGEgPSBzdGF0LT5k ZWx0YTsKPi0Jc3RhdC0+Y3B1dGltZSArPSBzdGF0LT5kZWx0YSAqIG5zZWNfcGVyX2Nsb2NrOwo+ LQlzdGF0LT5kZWx0YSA9IDA7Cj4tfQo+LQo+LXZvaWQKPi1jbG9ja19zdGF0X3Jlc2V0KHN0cnVj dCBjbG9ja19zdGF0ICpzdGF0KQo+LXsKPi0Jc3RhdC0+YWNjID0gMDsKPi0Jc3RhdC0+ZGVsdGEg PSAwOwo+LQlzdGF0LT5wcmV2X2RlbHRhID0gMDsKPi0Jc3RhdC0+Y3B1dGltZSA9IDA7Cj4tfQo+ LQo+LXZvaWQKPi1jcHVfc3RhdF9zdGFydChzdHJ1Y3QgY3B1X3N0YXQgKnN0YXQpCj4tewo+LQlz dGF0LT5wcmV2X2Nsb2NrID0gX19yZHRzY3AoJnN0YXQtPnByZXZfY3B1X2lkKTsKPi0Jc3RhdC0+ Y3B1X21pc3NfY291bnQgPSAwOwo+LQkvKgo+LQkgKiBXZSB3YW50IHRvIG1lYXN1cmUgdGhyZWFk IGNwdSB0aW1lIGhlcmUgdG8gY2FsY3VsYXRlCj4tCSAqIGVhY2ggZmliZXIncyBjcHUgdGltZSwg c28gZG9uJ3QgdXNlIGxpYmV2J3MgZXZfbm93KCkgb3IKPi0JICogZXZfdGltZSgpIHNpbmNlIHRo ZXkgdXNlIGVpdGhlciBtb25vdG9uaWMgb3IgcmVhbHRpbWUKPi0JICogc3lzdGVtIGNsb2Nrcy4K Pi0JICovCj4tCXN0cnVjdCB0aW1lc3BlYyB0czsKPi0JaWYgKGNsb2NrX2dldHRpbWUoQ0xPQ0tf VEhSRUFEX0NQVVRJTUVfSUQsICZ0cykgIT0gMCkgewo+LQkJc2F5X2RlYnVnKCJjbG9ja19nZXR0 aW1lKCk6IGZhaWxlZCB0byBnZXQgdGhpcyB0aHJlYWQncyIKPi0JCQkgICIgY3B1IHRpbWUuIik7 Cj4tCQlyZXR1cm47Cj4tCX0KPi0Jc3RhdC0+cHJldl9jcHV0aW1lID0gKHVpbnQ2NF90KSB0cy50 dl9zZWMgKiBGSUJFUl9USU1FX1JFUyArIHRzLnR2X25zZWM7Cj4tfQo+LQo+LXZvaWQKPi1jcHVf c3RhdF9yZXNldChzdHJ1Y3QgY3B1X3N0YXQgKnN0YXQpCj4tewo+LQlzdGF0LT5wcmV2X2NwdV9t aXNzX2NvdW50ID0gMDsKPi0JY3B1X3N0YXRfc3RhcnQoc3RhdCk7Cj4tfQo+LQo+LXVpbnQ2NF90 Cj4tY3B1X3N0YXRfb25fY3N3KHN0cnVjdCBjcHVfc3RhdCAqc3RhdCkKPi17Cj4tCXVpbnQzMl90 IGNwdV9pZDsKPi0JdWludDY0X3QgZGVsdGEgPSAwOwo+LQl1aW50NjRfdCBjbG9jayA9IF9fcmR0 c2NwKCZjcHVfaWQpOwo+LQo+LQlpZiAoY3B1X2lkID09IHN0YXQtPnByZXZfY3B1X2lkKSB7Cj4t CQlkZWx0YSA9IGNsb2NrIC0gc3RhdC0+cHJldl9jbG9jazsKPi0JfSBlbHNlIHsKPi0JCXN0YXQt PnByZXZfY3B1X2lkID0gY3B1X2lkOwo+LQkJc3RhdC0+Y3B1X21pc3NfY291bnQrKzsKPi0JfQo+ LQlzdGF0LT5wcmV2X2Nsb2NrID0gY2xvY2s7Cj4tCj4tCXJldHVybiBkZWx0YTsKPi19Cj4tCj4t ZG91YmxlCj4tY3B1X3N0YXRfZW5kKHN0cnVjdCBjcHVfc3RhdCAqc3RhdCwgc3RydWN0IGNsb2Nr X3N0YXQgKmNvcmRfY2xvY2tfc3RhdCkKPi17Cj4tCXN0YXQtPnByZXZfY3B1X21pc3NfY291bnQg PSBzdGF0LT5jcHVfbWlzc19jb3VudDsKPi0Jc3RhdC0+Y3B1X21pc3NfY291bnQgPSAwOwo+LQo+ LQlzdHJ1Y3QgdGltZXNwZWMgdHM7Cj4tCXVpbnQ2NF90IGRlbHRhX3RpbWU7Cj4tCWRvdWJsZSBu c2VjX3Blcl9jbG9jayA9IDA7Cj4tCWlmIChjbG9ja19nZXR0aW1lKENMT0NLX1RIUkVBRF9DUFVU SU1FX0lELCAmdHMpICE9IDApIHsKPi0JCXNheV9kZWJ1ZygiY2xvY2tfZ2V0dGltZSgpOiBmYWls ZWQgdG8gZ2V0IHRoaXMgdGhyZWFkJ3MiCj4tCQkJICAiIGNwdSB0aW1lLiIpOwo+LQl9IGVsc2Ug ewo+LQkJZGVsdGFfdGltZSA9ICh1aW50NjRfdCkgdHMudHZfc2VjICogRklCRVJfVElNRV9SRVMg Kwo+LQkJCSAgICAgdHMudHZfbnNlYzsKPi0JCWlmIChkZWx0YV90aW1lID4gc3RhdC0+cHJldl9j cHV0aW1lICYmIGNvcmRfY2xvY2tfc3RhdC0+ZGVsdGEgPiAwKSB7Cj4tCQkJZGVsdGFfdGltZSAt PSBzdGF0LT5wcmV2X2NwdXRpbWU7Cj4tCQkJbnNlY19wZXJfY2xvY2sgPSAoZG91YmxlKSBkZWx0 YV90aW1lIC8gY29yZCgpLT5jbG9ja19zdGF0LmRlbHRhOwo+LQkJfQo+LQl9Cj4tCXJldHVybiBu c2VjX3Blcl9jbG9jazsKPi19Cj4tCj7CoHN0YXRpYyB2b2lkCj7CoGxvb3Bfb25faXRlcmF0aW9u X2VuZChldl9sb29wICpsb29wLCBldl9wcmVwYXJlICp3YXRjaGVyLCBpbnQgcmV2ZW50cykKPsKg ewo+ZGlmZiAtLWdpdCBhL3NyYy9saWIvY29yZS9maWJlci5oIGIvc3JjL2xpYi9jb3JlL2ZpYmVy LmgKPmluZGV4IDA2Y2UyOGJiMS4uYzViOTc1NTEzIDEwMDY0NAo+LS0tIGEvc3JjL2xpYi9jb3Jl L2ZpYmVyLmgKPisrKyBiL3NyYy9saWIvY29yZS9maWJlci5oCj5AQCAtOTEsMTUgKzkxLDYgQEAg c3RydWN0IGNsb2NrX3N0YXQgewo+wqAJdWludDY0X3QgY3B1dGltZTsKPsKgfTsKPgo+LXZvaWQK Pi1jbG9ja19zdGF0X2FkZF9kZWx0YShzdHJ1Y3QgY2xvY2tfc3RhdCAqc3RhdCwgdWludDY0X3Qg Y2xvY2tfZGVsdGEpOwo+LQo+LXZvaWQKPi1jbG9ja19zdGF0X3VwZGF0ZShzdHJ1Y3QgY2xvY2tf c3RhdCAqc3RhdCwgZG91YmxlIG5zZWNfcGVyX2Nsb2NrKTsKPi0KPi12b2lkCj4tY2xvY2tfc3Rh dF9yZXNldChzdHJ1Y3QgY2xvY2tfc3RhdCAqc3RhdCk7Cj4tCj7CoC8qKgo+wqDCoCogQSBzdHJ1 Y3QgZW5jYXBzdWxhdGluZyBhbGwga25vd2xlZGdlIHRoaXMgY29yZCBoYXMgYWJvdXQgY3B1Cj7C oMKgKiBjbG9ja3MgYW5kIHRoZWlyIHN0YXRlLgo+QEAgLTExOSwxOCArMTEwLDYgQEAgc3RydWN0 IGNwdV9zdGF0IHsKPsKgCXVpbnQzMl90IHByZXZfY3B1X21pc3NfY291bnQ7Cj7CoH07Cj4KPi12 b2lkCj4tY3B1X3N0YXRfc3RhcnQoc3RydWN0IGNwdV9zdGF0ICpzdGF0KTsKPi0KPi12b2lkCj4t Y3B1X3N0YXRfcmVzZXQoc3RydWN0IGNwdV9zdGF0ICpzdGF0KTsKPi0KPi11aW50NjRfdAo+LWNw dV9zdGF0X29uX2NzdyhzdHJ1Y3QgY3B1X3N0YXQgKnN0YXQpOwo+LQo+LWRvdWJsZQo+LWNwdV9z dGF0X2VuZChzdHJ1Y3QgY3B1X3N0YXQgKnN0YXQsIHN0cnVjdCBjbG9ja19zdGF0ICpjb3JkX2Ns b2NrX3N0YXQpOwo+LQo+wqAjZW5kaWYgLyogRU5BQkxFX0ZJQkVSX1RPUCAqLwo+Cj7CoGVudW0g eyBGSUJFUl9OQU1FX01BWCA9IDMyIH07CgoKLS0gClNlcmdleSBQZXRyZW5rbwo= ----ALT--rCFBLuJaD2GE2pfD8ZIh391McRVAfSpN1574147664 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlk ICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij4KCdCS0YLQvtGA0L3Q uNC6LCAxOSDQvdC+0Y/QsdGA0Y8gMjAxOSwgMToxOSArMDM6MDAg0L7RgiBWbGFkaXNsYXYgU2hw aWxldm95ICZsdDt2LnNocGlsZXZveUB0YXJhbnRvb2wub3JnJmd0Ozo8YnI+PGJyPjxkaXYgaWQ9 IiI+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0 eWxlXzE1NzQxMTU1NTYxMjAwNjQxMjkxX0JPRFkiPkhpISBUaGFua3MgZm9yIHRoZSBmaXhlcyE8 YnI+PGJyPgpJIHN1Z2dlc3QgeW91IHRvIG1vdmUgYWxsIGZ1bmN0aW9ucyByZWxhdGVkIHRvIGNw dSBhbmQgY2xvY2s8YnI+CnN0YXRlIHRvIGZpYmVyLmMgYW5kIG1ha2UgdGhlbSBzdGF0aWMgdGhl cmUuIEluIG9yZGVyIG5vdCB0bzxicj4KcG9sbHV0ZSB0aGUgZ2xvYmFsIG5hbWVzcGFjZSB3aXRo IGZpYmVyJ3MgcHJpdmF0ZSBmdW5jdGlvbnMuPGJyPjxicj4KSSBkaWQgdGhhdCBpbiBhIGNvbW1p dCBhYm92ZSB0aGlzIG9uZS4gWW91IG1heSBzcXVhc2gsIG9yIHJlZG8sPGJyPgp3aGF0ZXZlcjo8 L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGJyPkhpISBUaGFua3MsIEkgc3F1 YXNoZWQuPGJyPjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdB NjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXYgaWQ9IiI+PGRpdiBjbGFz cz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE1NzQxMTU1 NTYxMjAwNjQxMjkxX0JPRFkiPjxicj48YnI+Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08YnI+PGJyPgpkaWZmIC0tZ2l0 IGEvc3JjL2xpYi9jb3JlL2ZpYmVyLmMgYi9zcmMvbGliL2NvcmUvZmliZXIuYzxicj4KaW5kZXgg MWUwOGQwZWM5Li4zZmFhMTk4ZDMgMTAwNjQ0PGJyPgotLS0gYS9zcmMvbGliL2NvcmUvZmliZXIu Yzxicj4KKysrIGIvc3JjL2xpYi9jb3JlL2ZpYmVyLmM8YnI+CkBAIC00NCw2ICs0NCwxMTIgQEA8 YnI+PGJyPgombmJzcDsjaWYgRU5BQkxFX0ZJQkVSX1RPUDxicj4KJm5ic3A7I2luY2x1ZGUgJmx0 O3g4NmludHJpbi5oJmd0OyAvKiBfX3JkdHNjcCgpICovPGJyPgorPGJyPgorc3RhdGljIGlubGlu ZSB2b2lkPGJyPgorY2xvY2tfc3RhdF9hZGRfZGVsdGEoc3RydWN0IGNsb2NrX3N0YXQgKnN0YXQs IHVpbnQ2NF90IGNsb2NrX2RlbHRhKTxicj4KK3s8YnI+CisJc3RhdC0mZ3Q7ZGVsdGEgKz0gY2xv Y2tfZGVsdGE7PGJyPgorfTxicj4KKzxicj4KKy8qKjxicj4KKyAqIENhbGN1bGF0ZSB0aGUgZXhw b25lbnRpYWwgbW92aW5nIGF2ZXJhZ2UgZm9yIHRoZSBjbG9jayBkZWx0YXM8YnI+CisgKiBwZXIg bG9vcCBpdGVyYXRpb24uIFRoZSBjb2VmZml0aWVudCBpcyAxLzE2Ljxicj4KKyAqLzxicj4KK3N0 YXRpYyBpbmxpbmUgdWludDY0X3Q8YnI+CitjbG9ja19kaWZmX2FjY3VtdWxhdGUodWludDY0X3Qg YWNjLCB1aW50NjRfdCBkZWx0YSk8YnI+Cit7PGJyPgorCWlmIChhY2MgJmd0OyAwKTxicj4KKwkJ cmV0dXJuIGRlbHRhIC8gMTYgKyAxNSAqIGFjYyAvIDE2Ozxicj4KKwllbHNlPGJyPgorCQlyZXR1 cm4gZGVsdGE7PGJyPgorfTxicj4KKzxicj4KK3N0YXRpYyBpbmxpbmUgdm9pZDxicj4KK2Nsb2Nr X3N0YXRfdXBkYXRlKHN0cnVjdCBjbG9ja19zdGF0ICpzdGF0LCBkb3VibGUgbnNlY19wZXJfY2xv Y2spPGJyPgorezxicj4KKwlzdGF0LSZndDthY2MgPSBjbG9ja19kaWZmX2FjY3VtdWxhdGUoc3Rh dC0mZ3Q7YWNjLCBzdGF0LSZndDtkZWx0YSk7PGJyPgorCXN0YXQtJmd0O3ByZXZfZGVsdGEgPSBz dGF0LSZndDtkZWx0YTs8YnI+CisJc3RhdC0mZ3Q7Y3B1dGltZSArPSBzdGF0LSZndDtkZWx0YSAq IG5zZWNfcGVyX2Nsb2NrOzxicj4KKwlzdGF0LSZndDtkZWx0YSA9IDA7PGJyPgorfTxicj4KKzxi cj4KK3N0YXRpYyBpbmxpbmUgdm9pZDxicj4KK2Nsb2NrX3N0YXRfcmVzZXQoc3RydWN0IGNsb2Nr X3N0YXQgKnN0YXQpPGJyPgorezxicj4KKwlzdGF0LSZndDthY2MgPSAwOzxicj4KKwlzdGF0LSZn dDtkZWx0YSA9IDA7PGJyPgorCXN0YXQtJmd0O3ByZXZfZGVsdGEgPSAwOzxicj4KKwlzdGF0LSZn dDtjcHV0aW1lID0gMDs8YnI+Cit9PGJyPgorPGJyPgorc3RhdGljIHZvaWQ8YnI+CitjcHVfc3Rh dF9zdGFydChzdHJ1Y3QgY3B1X3N0YXQgKnN0YXQpPGJyPgorezxicj4KKwlzdGF0LSZndDtwcmV2 X2Nsb2NrID0gX19yZHRzY3AoJmFtcDtzdGF0LSZndDtwcmV2X2NwdV9pZCk7PGJyPgorCXN0YXQt Jmd0O2NwdV9taXNzX2NvdW50ID0gMDs8YnI+CisJLyo8YnI+CisJICogV2Ugd2FudCB0byBtZWFz dXJlIHRocmVhZCBjcHUgdGltZSBoZXJlIHRvIGNhbGN1bGF0ZTxicj4KKwkgKiBlYWNoIGZpYmVy J3MgY3B1IHRpbWUsIHNvIGRvbid0IHVzZSBsaWJldidzIGV2X25vdygpIG9yPGJyPgorCSAqIGV2 X3RpbWUoKSBzaW5jZSB0aGV5IHVzZSBlaXRoZXIgbW9ub3RvbmljIG9yIHJlYWx0aW1lPGJyPgor CSAqIHN5c3RlbSBjbG9ja3MuPGJyPgorCSAqLzxicj4KKwlzdHJ1Y3QgdGltZXNwZWMgdHM7PGJy PgorCWlmIChjbG9ja19nZXR0aW1lKENMT0NLX1RIUkVBRF9DUFVUSU1FX0lELCAmYW1wO3RzKSAh PSAwKSB7PGJyPgorCQlzYXlfZGVidWcoImNsb2NrX2dldHRpbWUoKTogZmFpbGVkIHRvIGdldCB0 aGlzIHRocmVhZCdzIjxicj4KKwkJCSAgIiBjcHUgdGltZS4iKTs8YnI+CisJCXJldHVybjs8YnI+ CisJfTxicj4KKwlzdGF0LSZndDtwcmV2X2NwdXRpbWUgPSAodWludDY0X3QpIHRzLnR2X3NlYyAq IEZJQkVSX1RJTUVfUkVTICsgdHMudHZfbnNlYzs8YnI+Cit9PGJyPgorPGJyPgorc3RhdGljIGlu bGluZSB2b2lkPGJyPgorY3B1X3N0YXRfcmVzZXQoc3RydWN0IGNwdV9zdGF0ICpzdGF0KTxicj4K K3s8YnI+CisJc3RhdC0mZ3Q7cHJldl9jcHVfbWlzc19jb3VudCA9IDA7PGJyPgorCWNwdV9zdGF0 X3N0YXJ0KHN0YXQpOzxicj4KK308YnI+Cis8YnI+CitzdGF0aWMgdWludDY0X3Q8YnI+CitjcHVf c3RhdF9vbl9jc3coc3RydWN0IGNwdV9zdGF0ICpzdGF0KTxicj4KK3s8YnI+CisJdWludDMyX3Qg Y3B1X2lkOzxicj4KKwl1aW50NjRfdCBkZWx0YSwgY2xvY2sgPSBfX3JkdHNjcCgmYW1wO2NwdV9p ZCk7PGJyPgorPGJyPgorCWlmIChjcHVfaWQgPT0gc3RhdC0mZ3Q7cHJldl9jcHVfaWQpIHs8YnI+ CisJCWRlbHRhID0gY2xvY2sgLSBzdGF0LSZndDtwcmV2X2Nsb2NrOzxicj4KKwl9IGVsc2Ugezxi cj4KKwkJZGVsdGEgPSAwOzxicj4KKwkJc3RhdC0mZ3Q7cHJldl9jcHVfaWQgPSBjcHVfaWQ7PGJy PgorCQlzdGF0LSZndDtjcHVfbWlzc19jb3VudCsrOzxicj4KKwl9PGJyPgorCXN0YXQtJmd0O3By ZXZfY2xvY2sgPSBjbG9jazs8YnI+Cis8YnI+CisJcmV0dXJuIGRlbHRhOzxicj4KK308YnI+Cis8 YnI+CitzdGF0aWMgZG91YmxlPGJyPgorY3B1X3N0YXRfZW5kKHN0cnVjdCBjcHVfc3RhdCAqc3Rh dCwgc3RydWN0IGNsb2NrX3N0YXQgKmNvcmRfY2xvY2tfc3RhdCk8YnI+Cit7PGJyPgorCXN0YXQt Jmd0O3ByZXZfY3B1X21pc3NfY291bnQgPSBzdGF0LSZndDtjcHVfbWlzc19jb3VudDs8YnI+CisJ c3RhdC0mZ3Q7Y3B1X21pc3NfY291bnQgPSAwOzxicj4KKzxicj4KKwlzdHJ1Y3QgdGltZXNwZWMg dHM7PGJyPgorCXVpbnQ2NF90IGRlbHRhX3RpbWU7PGJyPgorCWRvdWJsZSBuc2VjX3Blcl9jbG9j ayA9IDA7PGJyPgorCWlmIChjbG9ja19nZXR0aW1lKENMT0NLX1RIUkVBRF9DUFVUSU1FX0lELCAm YW1wO3RzKSAhPSAwKSB7PGJyPgorCQlzYXlfZGVidWcoImNsb2NrX2dldHRpbWUoKTogZmFpbGVk IHRvIGdldCB0aGlzIHRocmVhZCdzIjxicj4KKwkJCSAgIiBjcHUgdGltZS4iKTs8YnI+CisJfSBl bHNlIHs8YnI+CisJCWRlbHRhX3RpbWUgPSAodWludDY0X3QpIHRzLnR2X3NlYyAqIEZJQkVSX1RJ TUVfUkVTICs8YnI+CisJCQkgICAgIHRzLnR2X25zZWM7PGJyPgorCQlpZiAoZGVsdGFfdGltZSAm Z3Q7IHN0YXQtJmd0O3ByZXZfY3B1dGltZSAmYW1wOyZhbXA7IGNvcmRfY2xvY2tfc3RhdC0mZ3Q7 ZGVsdGEgJmd0OyAwKSB7PGJyPgorCQkJZGVsdGFfdGltZSAtPSBzdGF0LSZndDtwcmV2X2NwdXRp bWU7PGJyPgorCQkJbnNlY19wZXJfY2xvY2sgPSAoZG91YmxlKSBkZWx0YV90aW1lIC8gY29yZCgp LSZndDtjbG9ja19zdGF0LmRlbHRhOzxicj4KKwkJfTxicj4KKwl9PGJyPgorCXJldHVybiBuc2Vj X3Blcl9jbG9jazs8YnI+Cit9PGJyPgorPGJyPgombmJzcDsjZW5kaWYgLyogRU5BQkxFX0ZJQkVS X1RPUCAqLzxicj48YnI+CiZuYnNwOyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS92YWxncmluZC9tZW1j aGVjay5oIjxicj4KQEAgLTg4LDkgKzE5NCw2IEBAIHN0YXRpYyBpbnQgKCpmaWJlcl9pbnZva2Up KGZpYmVyX2Z1bmMgZiwgdmFfbGlzdCBhcCk7PGJyPjxicj4KJm5ic3A7I2lmIEVOQUJMRV9GSUJF Ul9UT1A8YnI+CiZuYnNwO3N0YXRpYyBfX3RocmVhZCBib29sIGZpYmVyX3RvcF9lbmFibGVkID0g ZmFsc2U7PGJyPgotPGJyPgotdWludDY0X3Q8YnI+Ci1jcHVfc3RhdF9vbl9jc3coc3RydWN0IGNw dV9zdGF0ICpzdGF0KTs8YnI+CiZuYnNwOyNlbmRpZiAvKiBFTkFCTEVfRklCRVJfVE9QICovPGJy Pjxicj4KJm5ic3A7LyoqPGJyPgpAQCAtMTA5MSwxMTIgKzExOTQsNiBAQCBsb29wX29uX2l0ZXJh dGlvbl9zdGFydChldl9sb29wICpsb29wLCBldl9jaGVjayAqd2F0Y2hlciwgaW50IHJldmVudHMp PGJyPgombmJzcDsJY3B1X3N0YXRfc3RhcnQoJmFtcDtjb3JkKCktJmd0O2NwdV9zdGF0KTs8YnI+ CiZuYnNwO308YnI+PGJyPgotLyoqPGJyPgotICogQ2FsY3VsYXRlIHRoZSBleHBvbmVudGlhbCBt b3ZpbmcgYXZlcmFnZSBmb3IgdGhlIGNsb2NrIGRlbHRhczxicj4KLSAqIHBlciBsb29wIGl0ZXJh dGlvbi4gVGhlIGNvZWZmaXRpZW50IGlzIDEvMTYuPGJyPgotICovPGJyPgotc3RhdGljIGlubGlu ZSB1aW50NjRfdDxicj4KLWNsb2NrX2RpZmZfYWNjdW11bGF0ZSh1aW50NjRfdCBhY2MsIHVpbnQ2 NF90IGRlbHRhKTxicj4KLXs8YnI+Ci0JaWYgKGFjYyAmZ3Q7IDApIHs8YnI+Ci0JCXJldHVybiBk ZWx0YSAvIDE2ICsgMTUgKiBhY2MgLyAxNjs8YnI+Ci0JfSBlbHNlIHs8YnI+Ci0JCXJldHVybiBk ZWx0YTs8YnI+Ci0JfTxicj4KLX08YnI+Ci08YnI+Ci1pbmxpbmUgdm9pZDxicj4KLWNsb2NrX3N0 YXRfYWRkX2RlbHRhKHN0cnVjdCBjbG9ja19zdGF0ICpzdGF0LCB1aW50NjRfdCBjbG9ja19kZWx0 YSk8YnI+Ci17PGJyPgotCXN0YXQtJmd0O2RlbHRhICs9IGNsb2NrX2RlbHRhOzxicj4KLX08YnI+ Ci08YnI+Ci12b2lkPGJyPgotY2xvY2tfc3RhdF91cGRhdGUoc3RydWN0IGNsb2NrX3N0YXQgKnN0 YXQsIGRvdWJsZSBuc2VjX3Blcl9jbG9jayk8YnI+Ci17PGJyPgotCXN0YXQtJmd0O2FjYyA9IGNs b2NrX2RpZmZfYWNjdW11bGF0ZShzdGF0LSZndDthY2MsIHN0YXQtJmd0O2RlbHRhKTs8YnI+Ci0J c3RhdC0mZ3Q7cHJldl9kZWx0YSA9IHN0YXQtJmd0O2RlbHRhOzxicj4KLQlzdGF0LSZndDtjcHV0 aW1lICs9IHN0YXQtJmd0O2RlbHRhICogbnNlY19wZXJfY2xvY2s7PGJyPgotCXN0YXQtJmd0O2Rl bHRhID0gMDs8YnI+Ci19PGJyPgotPGJyPgotdm9pZDxicj4KLWNsb2NrX3N0YXRfcmVzZXQoc3Ry dWN0IGNsb2NrX3N0YXQgKnN0YXQpPGJyPgotezxicj4KLQlzdGF0LSZndDthY2MgPSAwOzxicj4K LQlzdGF0LSZndDtkZWx0YSA9IDA7PGJyPgotCXN0YXQtJmd0O3ByZXZfZGVsdGEgPSAwOzxicj4K LQlzdGF0LSZndDtjcHV0aW1lID0gMDs8YnI+Ci19PGJyPgotPGJyPgotdm9pZDxicj4KLWNwdV9z dGF0X3N0YXJ0KHN0cnVjdCBjcHVfc3RhdCAqc3RhdCk8YnI+Ci17PGJyPgotCXN0YXQtJmd0O3By ZXZfY2xvY2sgPSBfX3JkdHNjcCgmYW1wO3N0YXQtJmd0O3ByZXZfY3B1X2lkKTs8YnI+Ci0Jc3Rh dC0mZ3Q7Y3B1X21pc3NfY291bnQgPSAwOzxicj4KLQkvKjxicj4KLQkgKiBXZSB3YW50IHRvIG1l YXN1cmUgdGhyZWFkIGNwdSB0aW1lIGhlcmUgdG8gY2FsY3VsYXRlPGJyPgotCSAqIGVhY2ggZmli ZXIncyBjcHUgdGltZSwgc28gZG9uJ3QgdXNlIGxpYmV2J3MgZXZfbm93KCkgb3I8YnI+Ci0JICog ZXZfdGltZSgpIHNpbmNlIHRoZXkgdXNlIGVpdGhlciBtb25vdG9uaWMgb3IgcmVhbHRpbWU8YnI+ Ci0JICogc3lzdGVtIGNsb2Nrcy48YnI+Ci0JICovPGJyPgotCXN0cnVjdCB0aW1lc3BlYyB0czs8 YnI+Ci0JaWYgKGNsb2NrX2dldHRpbWUoQ0xPQ0tfVEhSRUFEX0NQVVRJTUVfSUQsICZhbXA7dHMp ICE9IDApIHs8YnI+Ci0JCXNheV9kZWJ1ZygiY2xvY2tfZ2V0dGltZSgpOiBmYWlsZWQgdG8gZ2V0 IHRoaXMgdGhyZWFkJ3MiPGJyPgotCQkJICAiIGNwdSB0aW1lLiIpOzxicj4KLQkJcmV0dXJuOzxi cj4KLQl9PGJyPgotCXN0YXQtJmd0O3ByZXZfY3B1dGltZSA9ICh1aW50NjRfdCkgdHMudHZfc2Vj ICogRklCRVJfVElNRV9SRVMgKyB0cy50dl9uc2VjOzxicj4KLX08YnI+Ci08YnI+Ci12b2lkPGJy PgotY3B1X3N0YXRfcmVzZXQoc3RydWN0IGNwdV9zdGF0ICpzdGF0KTxicj4KLXs8YnI+Ci0Jc3Rh dC0mZ3Q7cHJldl9jcHVfbWlzc19jb3VudCA9IDA7PGJyPgotCWNwdV9zdGF0X3N0YXJ0KHN0YXQp Ozxicj4KLX08YnI+Ci08YnI+Ci11aW50NjRfdDxicj4KLWNwdV9zdGF0X29uX2NzdyhzdHJ1Y3Qg Y3B1X3N0YXQgKnN0YXQpPGJyPgotezxicj4KLQl1aW50MzJfdCBjcHVfaWQ7PGJyPgotCXVpbnQ2 NF90IGRlbHRhID0gMDs8YnI+Ci0JdWludDY0X3QgY2xvY2sgPSBfX3JkdHNjcCgmYW1wO2NwdV9p ZCk7PGJyPgotPGJyPgotCWlmIChjcHVfaWQgPT0gc3RhdC0mZ3Q7cHJldl9jcHVfaWQpIHs8YnI+ Ci0JCWRlbHRhID0gY2xvY2sgLSBzdGF0LSZndDtwcmV2X2Nsb2NrOzxicj4KLQl9IGVsc2Ugezxi cj4KLQkJc3RhdC0mZ3Q7cHJldl9jcHVfaWQgPSBjcHVfaWQ7PGJyPgotCQlzdGF0LSZndDtjcHVf bWlzc19jb3VudCsrOzxicj4KLQl9PGJyPgotCXN0YXQtJmd0O3ByZXZfY2xvY2sgPSBjbG9jazs8 YnI+Ci08YnI+Ci0JcmV0dXJuIGRlbHRhOzxicj4KLX08YnI+Ci08YnI+Ci1kb3VibGU8YnI+Ci1j cHVfc3RhdF9lbmQoc3RydWN0IGNwdV9zdGF0ICpzdGF0LCBzdHJ1Y3QgY2xvY2tfc3RhdCAqY29y ZF9jbG9ja19zdGF0KTxicj4KLXs8YnI+Ci0Jc3RhdC0mZ3Q7cHJldl9jcHVfbWlzc19jb3VudCA9 IHN0YXQtJmd0O2NwdV9taXNzX2NvdW50Ozxicj4KLQlzdGF0LSZndDtjcHVfbWlzc19jb3VudCA9 IDA7PGJyPgotPGJyPgotCXN0cnVjdCB0aW1lc3BlYyB0czs8YnI+Ci0JdWludDY0X3QgZGVsdGFf dGltZTs8YnI+Ci0JZG91YmxlIG5zZWNfcGVyX2Nsb2NrID0gMDs8YnI+Ci0JaWYgKGNsb2NrX2dl dHRpbWUoQ0xPQ0tfVEhSRUFEX0NQVVRJTUVfSUQsICZhbXA7dHMpICE9IDApIHs8YnI+Ci0JCXNh eV9kZWJ1ZygiY2xvY2tfZ2V0dGltZSgpOiBmYWlsZWQgdG8gZ2V0IHRoaXMgdGhyZWFkJ3MiPGJy PgotCQkJICAiIGNwdSB0aW1lLiIpOzxicj4KLQl9IGVsc2Ugezxicj4KLQkJZGVsdGFfdGltZSA9 ICh1aW50NjRfdCkgdHMudHZfc2VjICogRklCRVJfVElNRV9SRVMgKzxicj4KLQkJCSAgICAgdHMu dHZfbnNlYzs8YnI+Ci0JCWlmIChkZWx0YV90aW1lICZndDsgc3RhdC0mZ3Q7cHJldl9jcHV0aW1l ICZhbXA7JmFtcDsgY29yZF9jbG9ja19zdGF0LSZndDtkZWx0YSAmZ3Q7IDApIHs8YnI+Ci0JCQlk ZWx0YV90aW1lIC09IHN0YXQtJmd0O3ByZXZfY3B1dGltZTs8YnI+Ci0JCQluc2VjX3Blcl9jbG9j ayA9IChkb3VibGUpIGRlbHRhX3RpbWUgLyBjb3JkKCktJmd0O2Nsb2NrX3N0YXQuZGVsdGE7PGJy PgotCQl9PGJyPgotCX08YnI+Ci0JcmV0dXJuIG5zZWNfcGVyX2Nsb2NrOzxicj4KLX08YnI+Ci08 YnI+CiZuYnNwO3N0YXRpYyB2b2lkPGJyPgombmJzcDtsb29wX29uX2l0ZXJhdGlvbl9lbmQoZXZf bG9vcCAqbG9vcCwgZXZfcHJlcGFyZSAqd2F0Y2hlciwgaW50IHJldmVudHMpPGJyPgombmJzcDt7 PGJyPgpkaWZmIC0tZ2l0IGEvc3JjL2xpYi9jb3JlL2ZpYmVyLmggYi9zcmMvbGliL2NvcmUvZmli ZXIuaDxicj4KaW5kZXggMDZjZTI4YmIxLi5jNWI5NzU1MTMgMTAwNjQ0PGJyPgotLS0gYS9zcmMv bGliL2NvcmUvZmliZXIuaDxicj4KKysrIGIvc3JjL2xpYi9jb3JlL2ZpYmVyLmg8YnI+CkBAIC05 MSwxNSArOTEsNiBAQCBzdHJ1Y3QgY2xvY2tfc3RhdCB7PGJyPgombmJzcDsJdWludDY0X3QgY3B1 dGltZTs8YnI+CiZuYnNwO307PGJyPjxicj4KLXZvaWQ8YnI+Ci1jbG9ja19zdGF0X2FkZF9kZWx0 YShzdHJ1Y3QgY2xvY2tfc3RhdCAqc3RhdCwgdWludDY0X3QgY2xvY2tfZGVsdGEpOzxicj4KLTxi cj4KLXZvaWQ8YnI+Ci1jbG9ja19zdGF0X3VwZGF0ZShzdHJ1Y3QgY2xvY2tfc3RhdCAqc3RhdCwg ZG91YmxlIG5zZWNfcGVyX2Nsb2NrKTs8YnI+Ci08YnI+Ci12b2lkPGJyPgotY2xvY2tfc3RhdF9y ZXNldChzdHJ1Y3QgY2xvY2tfc3RhdCAqc3RhdCk7PGJyPgotPGJyPgombmJzcDsvKio8YnI+CiZu YnNwOyZuYnNwOyogQSBzdHJ1Y3QgZW5jYXBzdWxhdGluZyBhbGwga25vd2xlZGdlIHRoaXMgY29y ZCBoYXMgYWJvdXQgY3B1PGJyPgombmJzcDsmbmJzcDsqIGNsb2NrcyBhbmQgdGhlaXIgc3RhdGUu PGJyPgpAQCAtMTE5LDE4ICsxMTAsNiBAQCBzdHJ1Y3QgY3B1X3N0YXQgezxicj4KJm5ic3A7CXVp bnQzMl90IHByZXZfY3B1X21pc3NfY291bnQ7PGJyPgombmJzcDt9Ozxicj48YnI+Ci12b2lkPGJy PgotY3B1X3N0YXRfc3RhcnQoc3RydWN0IGNwdV9zdGF0ICpzdGF0KTs8YnI+Ci08YnI+Ci12b2lk PGJyPgotY3B1X3N0YXRfcmVzZXQoc3RydWN0IGNwdV9zdGF0ICpzdGF0KTs8YnI+Ci08YnI+Ci11 aW50NjRfdDxicj4KLWNwdV9zdGF0X29uX2NzdyhzdHJ1Y3QgY3B1X3N0YXQgKnN0YXQpOzxicj4K LTxicj4KLWRvdWJsZTxicj4KLWNwdV9zdGF0X2VuZChzdHJ1Y3QgY3B1X3N0YXQgKnN0YXQsIHN0 cnVjdCBjbG9ja19zdGF0ICpjb3JkX2Nsb2NrX3N0YXQpOzxicj4KLTxicj4KJm5ic3A7I2VuZGlm IC8qIEVOQUJMRV9GSUJFUl9UT1AgKi88YnI+PGJyPgombmJzcDtlbnVtIHsgRklCRVJfTkFNRV9N QVggPSAzMiB9Ozxicj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+Cjxicj4K PGJyPi0tIDxicj5TZXJnZXkgUGV0cmVua288YnI+PC9CT0RZPjwvSFRNTD4K ----ALT--rCFBLuJaD2GE2pfD8ZIh391McRVAfSpN1574147664--