From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: =?UTF-8?B?S29uc3RhbnRpbiBCZWx5YXZza2l5?= Subject: =?UTF-8?B?UmVbMl06IFt0YXJhbnRvb2wtcGF0Y2hlc10gW1BBVENIIHYzXSByZXBsaWNh?= =?UTF-8?B?dGlvbjogZm9yY2UgZ2MgdG8gY2xlYW4geGRpciBvbiBFTk9TUEMgZXJy?= MIME-Version: 1.0 Date: Wed, 27 Jun 2018 19:11:55 +0300 Reply-To: =?UTF-8?B?S29uc3RhbnRpbiBCZWx5YXZza2l5?= Message-ID: <1530115915.875536818@f107.i.mail.ru> Content-Type: multipart/mixed; boundary="----JBlmLOi2Xuz1N5cKa6wTGNPPZ4ygXfgr-ogjoQRQ8mVHbgITh-1530115915" In-Reply-To: <20180618123523.tsxxaedwm5262qj3@esperanza> References: <20180609140510.81377-1-k.belyavskiy@tarantool.org> <20180618123523.tsxxaedwm5262qj3@esperanza> To: =?UTF-8?B?VmxhZGltaXIgRGF2eWRvdg==?= Cc: georgy@tarantool.org, tarantool-patches@freelists.org List-ID: ------JBlmLOi2Xuz1N5cKa6wTGNPPZ4ygXfgr-ogjoQRQ8mVHbgITh-1530115915 Content-Type: multipart/alternative; boundary="--ALT--JBlmLOi2Xuz1N5cKa6wTGNPPZ4ygXfgr1530115915" ----ALT--JBlmLOi2Xuz1N5cKa6wTGNPPZ4ygXfgr1530115915 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 ClBsZWFzZSB0YWtlIGEgbG9vayBhdCB1cGRhdGVkIHBhdGNoCgp0aWNrZXQ6IGh0dHBzOi8vZ2l0 aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy8zMzk3CmJyYW5jaDogaHR0cHM6Ly9n aXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvdHJlZS9rYmVseWF2cy9naC0zMzk3LWZvcmNl LWRlbC1sb2dzLW9uLW5vLWRpc2stc3BhY2UKCj7Qn9C+0L3QtdC00LXQu9GM0L3QuNC6LCAxOCDQ uNGO0L3RjyAyMDE4LCAxNTozNSArMDM6MDAg0L7RgiBWbGFkaW1pciBEYXZ5ZG92IDx2ZGF2eWRv di5kZXZAZ21haWwuY29tPjoKPgo+T24gU2F0LCBKdW4gMDksIDIwMTggYXQgMDU6MDU6MTBQTSAr MDMwMCwgS29uc3RhbnRpbiBCZWx5YXZza2l5IHdyb3RlOgo+PiBHYXJiYWdlIGNvbGxlY3RvciBk byBub3QgZGVsZXRlIHhsb2cgdW5sZXNzIHJlcGxpY2EgZG8gbm90IG5vdGlmeQo+PiBtYXN0ZXIg d2l0aCBuZXdlciB2Y2xvY2suIFRoaXMgY2FuIGxlYWQgdG8gcnVubmluZyBvdXQgb2YgZGlzawo+ PiBzcGFjZSBlcnJvciBhbmQgdGhpcyBpcyBub3QgcmlnaHQgYmVoYXZpb3VyIHNpbmNlIGl0IHdp bGwgc3RvcCB0aGUKPj4gbWFzdGVyLgo+Cj5BRkFJVSB0aGlzIGlzIHRoZSBzZWNvbmQgaXRlcmF0 aW9uIG9mIHRoaXMgcGF0Y2guIElmIHNvLCB5b3Ugc2hvdWxkCj5oYXZlIGFwcGVuZGVkIHRoZSB2 ZXJzaW9uIG51bWJlciB0byB0aGUgc3ViamVjdCBwcmVmaXggKGkuZS4gUEFUQ0ggdjIpCj5hY2Nv cmRpbmcgdG8gb3VyIGd1aWRlbGluZToKPgo+aHR0cHM6Ly90YXJhbnRvb2wuaW8vZW4vZG9jLzEu OS9kZXZfZ3VpZGUvZGV2ZWxvcGVyX2d1aWRlbGluZXMuaHRtbCNob3ctdG8tc3VibWl0LWEtcGF0 Y2gtZm9yLXJldmlldwo+Cj4+IAo+PiBMaXN0IG9mIGNoYW5nZXM6Cj4+IC0gUHJvbW90aW5nIGVy cm9yIGZyb20gd2FsX3RocmVhZCB0byB0eCB2aWEgY3BpcGUuCj4+IC0gSW50cm9kdWNlIHN0YXRl cyBmb3IgZ2NfY29uc3VtZXJzIChPSyBhbmQgT0ZGKS4gR0MgZG9lcyBub3QKPj4gdGFrZSBpbnRv IGFjY291bnQgY29uc3VtZXJzIHdpdGggc3RhdGUgT0ZGLgo+PiAtIEFkZCBhbiBlcnJvciBpbmpl Y3Rpb24gYW5kIGEgdGVzdC4KPgo+VGhlIGxpc3Qgb2YgY2hhbmdlcyBiZXR3ZWVuIGRpZmZlcmVu dCB2ZXJzaW9ucyBvZiB0aGUgc2FtZSBwYXRjaCBzaG91bGQKPmdvIGFmdGVyIHRoZSBsaW5rIHRv IHRoZSBicmFuY2ggYW5kIHRoZSB0aWNrZXQuIEZvciBleGFtcGxlIHNlZQo+Cj5odHRwczovL3d3 dy5mcmVlbGlzdHMub3JnL3Bvc3QvdGFyYW50b29sLXBhdGNoZXMvUEFUQ0gtdjItYm94LW1ha2Ut Z2MtaW5mby1wdWJsaWMKPgo+PiAKPj4gQ2xvc2VzICMzMzk3Cj4+IC0tLQo+PiB0aWNrZXQ6ICBo dHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9pc3N1ZXMvMzM5Nwo+PiBicmFu Y2g6ICBodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC90cmVlL2tiZWx5YXZz L2doLTMzOTctZm9yY2UtZGVsLWxvZ3Mtb24tbm8tZGlzay1zcGFjZQo+PiAKPj4gIHNyYy9ib3gv Z2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTIgKysrKysrKysr Ky0KPj4gIHNyYy9ib3gvZ2MuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMTMgKysrCj4+ICBzcmMvYm94L3dhbC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDU2ICsrKysrKysrKy0tCj4+ICBzcmMvZXJyaW5qLmggICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKPj4gIHNyYy9maW8uYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKysKPj4gIHRlc3QvYm94L2Vycmluai5y ZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwo+PiAgdGVzdC9yZXBsaWNh dGlvbi9mb3JjZV9nY19vbl9lcnJfbm9zcGFjZS5yZXN1bHQgICB8IDEwNyArKysrKysrKysrKysr KysrKysrKysrCj4+ICB0ZXN0L3JlcGxpY2F0aW9uL2ZvcmNlX2djX29uX2Vycl9ub3NwYWNlLnRl c3QubHVhIHwgIDM4ICsrKysrKysrCj4+ICA4IGZpbGVzIGNoYW5nZWQsIDI2NSBpbnNlcnRpb25z KCspLCAxMSBkZWxldGlvbnMoLSkKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L3JlcGxpY2F0 aW9uL2ZvcmNlX2djX29uX2Vycl9ub3NwYWNlLnJlc3VsdAo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IHRlc3QvcmVwbGljYXRpb24vZm9yY2VfZ2Nfb25fZXJyX25vc3BhY2UudGVzdC5sdWEKPj4gCj4+ IGRpZmYgLS1naXQgYS9zcmMvYm94L2djLmMgYi9zcmMvYm94L2djLmMKPj4gaW5kZXggMTJlNjhm M2RjLi5lZmUwMzNhYWYgMTAwNjQ0Cj4+IC0tLSBhL3NyYy9ib3gvZ2MuYwo+PiArKysgYi9zcmMv Ym94L2djLmMKPj4gQEAgLTU5LDYgKzU5LDggQEAgc3RydWN0IGdjX2NvbnN1bWVyIHsKPj4gIAln Y19ub2RlX3Qgbm9kZTsKPj4gIAkvKiogSHVtYW4tcmVhZGFibGUgbmFtZS4gKi8KPj4gIAljaGFy ICpuYW1lOwo+PiArCS8qKiBEZWFkIG9yIGFsaXZlLiBHQyBpZ25vcmVzIGRlYWQgY29uc3VtZXJz LiAqLwo+PiArCWVudW0gZ2NfY29uc3VtZXJfc3RhdGUgc3RhdGU7Cj4KPktlZXBpbmcgZGVhZCBj b25zdW1lcnMgYXJvdW5kIGlzIHBvaW50bGVzcy4gQSBjb25zdW1lciBtdXN0IGJlIHJlbW92ZWQK PmZyb20gdGhlIHRyZWUgYXMgc29vbiBhcyBpdCBpcyBldmljdGVkLiAKRml4ZWQKPgo+PiArdm9p ZAo+PiArZ2NfeGRpcl9jbGVhbl9ub3RpZnkoYm9vbCBmb3JjZV9jbGVhbikKPj4gK3sKPj4gKwlp ZiAoZm9yY2VfY2xlYW4gPT0gZ2MuZm9yY2VfY2xlYW5fZmxhZykKPj4gKwkJcmV0dXJuOyAvLyBu b3RoaW5nIHRvIGRvCj4+ICsJZWxzZSBpZiAoZm9yY2VfY2xlYW4pIHsgLy8geGRpciBjbGVhbiBy ZXF1aXJlZAo+PiArCQlnYy5mb3JjZV9jbGVhbl9mbGFnID0gdHJ1ZTsKPgo+V2UgZG9uJ3QgdXNl IEMrKyBzdHlsZSBjb21tZW50cyBpbiB0aGUgY29kZS4gCkZpeGVkCj4KPj4gKwkJLyoqCj4+ICsJ CSAqIE1hcmsgY29uc3VtZXIgd2l0aCBsZWFzdCByZWNlbnQgdmNsb2NrIGFzICJkZWFkIiBhbmQK Pj4gKwkJICogaW52b2tlIGdhcmJhZ2UgY29sbGVjdGlvbi4gSWYgbm90aGluZyB0byBkZWxldGUg ZmluZAo+PiArCQkgKiBuZXh0IGFsaXZlIGNvbnN1bWVyIGV0Yy4gT3JpZ2luYWxseSBjcmVhdGVk IGZvcgo+PiArCQkgKiBjYXNlcyB3aXRoIHJ1bm5pbmcgb3V0IG9mIGRpc2sgc3BhY2UgYmVjYXVz ZSBvZgo+PiArCQkgKiBkaXNjb25uZWN0ZWQgcmVwbGljYS4KPj4gKwkJICovCj4+ICsJCXN0cnVj dCBnY19jb25zdW1lciAqbGVmdG1vc3QgPQo+PiArCQkgICAgZ2NfdHJlZV9maXJzdF9hbGl2ZSgm Z2MuY29uc3VtZXJzKTsKPj4gKwkJaWYgKGxlZnRtb3N0ID09IE5VTEwpCj4+ICsJCQlyZXR1cm47 IC8vIGRvIG5vdGhpbmcKPj4gKwkJaW50NjRfdCBzaWduYXR1cmUgPSBsZWZ0bW9zdC0+c2lnbmF0 dXJlOwo+PiArCQl3aGlsZSAodHJ1ZSkgewo+PiArCQkJbGVmdG1vc3QtPnN0YXRlID0gQ09OU1VN RVJfT0ZGOwo+PiArCQkJbGVmdG1vc3QgPSBnY190cmVlX2ZpcnN0X2FsaXZlKCZnYy5jb25zdW1l cnMpOwo+PiArCQkJaWYgKGxlZnRtb3N0ID09IE5VTEwgfHwKPj4gKwkJCSAgICBsZWZ0bW9zdC0+ c2lnbmF0dXJlID4gc2lnbmF0dXJlKSB7Cj4+ICsJCQkJZ2NfcnVuKCk7Cj4+ICsJCQkJcmV0dXJu Owo+Cj5BIGNvbnN1bWVyIG1heSBjb3JyZXNwb25kIHRvIGEgYmFja3VwIHByb2NlZHVyZSwgaW4g d2hpY2ggY2FzZSBpdCBtdXN0Cj5ub3QgYmUgZXZpY3RlZCwgZXZlbiBvbiBFTk9TUEMuIApGaXhl ZAo+Cj4KPj4gKwkJCX0KPj4gKwkJfQo+PiArCX0gZWxzZQo+PiArCQlnYy5mb3JjZV9jbGVhbl9m bGFnID0gZmFsc2U7Cj4+ICt9Cj4KPj4gZGlmZiAtLWdpdCBhL3NyYy9ib3gvd2FsLmNjIGIvc3Jj L2JveC93YWwuY2MKPj4gaW5kZXggMDk5YzcwY2FhLi45ZGQ4MzQ3ZDUgMTAwNjQ0Cj4+IC0tLSBh L3NyYy9ib3gvd2FsLmNjCj4+ICsrKyBiL3NyYy9ib3gvd2FsLmNjCj4+IEBAIC01OSw2ICs2Miwx MSBAQCBzdHJ1Y3Qgd2FsX3RocmVhZCB7Cj4+ICAJc3RydWN0IGNvcmQgY29yZDsKPj4gIAkvKiog QSBwaXBlIGZyb20gJ3R4JyB0aHJlYWQgdG8gJ3dhbCcgKi8KPj4gIAlzdHJ1Y3QgY3BpcGUgd2Fs X3BpcGU7Cj4+ICsJLyoqCj4+ICsJICogUmV0dXJuIHBpcGUgZnJvbSAnd2FsJyB0byB0eCcuIFRo aXMgaXMgYQo+PiArCSAqIHByaW9yaXR5IHBpcGUgYW5kIERPRVMgTk9UIHN1cHBvcnQgeWllbGQu Cj4+ICsJICovCj4+ICsJc3RydWN0IGNwaXBlIHR4X3ByaW9fcGlwZTsKPj4gIAkvKiogUmV0dXJu IHBpcGUgZnJvbSAnd2FsJyB0byB0eCcgKi8KPj4gIAlzdHJ1Y3QgY3BpcGUgdHhfcGlwZTsKPj4g IH07Cj4+IEBAIC0xNTQsNyArMTY2LDcgQEAgc3RhdGljIHZvaWQKPj4gIHR4X3NjaGVkdWxlX2Nv bW1pdChzdHJ1Y3QgY21zZyAqbXNnKTsKPj4gCj4+ICBzdGF0aWMgc3RydWN0IGNtc2dfaG9wIHdh bF9yZXF1ZXN0X3JvdXRlW10gPSB7Cj4+IC0Je3dhbF93cml0ZV90b19kaXNrLCAmd2FsX3RocmVh ZC50eF9waXBlfSwKPj4gKwl7d2FsX3dyaXRlX3RvX2Rpc2ssICZ3YWxfdGhyZWFkLnR4X3ByaW9f cGlwZX0sCj4KPkFGQUlDUyB5b3UgcmVuYW1lIHdhbF90aHJlYWQudHhfcGlwZSB0byB0eF9wcmlv X3BpcGUgYW5kIGNyZWF0ZSBhIG5ldwo+cGlwZSBjYWxsZWQgd2FsX3RocmVhZC50eF9waXBlIHRv IGJlIHVzZWQgZm9yIGdhcmJhZ2UgY29sbGVjdGlvbiwgYWxsIGluCj5vbmUgcGF0Y2guIFRoaXMg aXMgdmVyeSBkaWZmaWN1bHQgdG8gcmV2aWV3LiBQcm92aWRlZCB5b3UgcmVhbGx5IG5lZWQKPml0 LCByZW5hbWluZyBzaG91bGQgYmUgZG9uZSBpbiBhIHNlcGFyYXRlIHBhdGNoIHdpdGggYSBnb29k IGV4cGxhbmF0aW9uCj53aHkgeW91J3JlIGRvaW5nIHdoYXQgeW91J3JlIGRvaW5nLiBDdXJyZW50 bHksIEkgZmFpbCB0byBzZWUgYSByZWFzb24uCj4KPj4gK3N0YXRpYyB2b2lkCj4+ICtnY19zdGF0 dXNfdXBkYXRlKHN0cnVjdCBjbXNnICptc2cpCj4+ICt7Cj4+ICsJbXNnLT5yb3V0ZSA9IE5VTEw7 Cj4+ICsJc2F5X2luZm8oIlFRUTogZ2Nfc3RhdHVzX3VwZGF0ZSIpOwo+Cj5XaGF0IGlzIHRoaXM/ IApTb3JyeSwgbXkgZmF1bHQgKHVzZSB0byBmaW5kIGluIGxvZ3MpLgo+Cj4KPj4gKwlnY194ZGly X2NsZWFuX25vdGlmeShzdGF0aWNfY2FzdDxnY19tc2cqPihtc2cpLT5pb19lcnIpOwo+PiArfQo+ PiArCj4+ICBzdGF0aWMgdm9pZAo+PiAgd2FsX3dyaXRlX3RvX2Rpc2soc3RydWN0IGNtc2cgKm1z ZykKPj4gIHsKPj4gQEAgLTY0NywxMSArNjY3LDI5IEBAIHdhbF93cml0ZV90b19kaXNrKHN0cnVj dCBjbXNnICptc2cpCj4+ICAJbGFzdF9jb21taXR0ZWQgPSBzdGFpbHFfbGFzdCgmd2FsX21zZy0+ Y29tbWl0KTsKPj4gCj4+ICBkb25lOgo+PiArCWJvb2wgbmVlZF9zZW5kID0gZmFsc2U7Cj4+ICAJ c3RydWN0IGVycm9yICplcnJvciA9IGRpYWdfbGFzdF9lcnJvcihkaWFnX2dldCgpKTsKPj4gIAlp ZiAoZXJyb3IpIHsKPj4gIAkJLyogVW50aWwgd2UgY2FuIHBhc3MgdGhlIGVycm9yIHRvIHR4LCBs b2cgaXQgYW5kIGNsZWFyLiAqLwo+PiAgCQllcnJvcl9sb2coZXJyb3IpOwo+PiAgCQlkaWFnX2Ns ZWFyKGRpYWdfZ2V0KCkpOwo+PiArCQlpZiAoZXJybm8gPT0gRU5PU1BDKSB7Cj4+ICsJCQllcnJf bm9zcGFjZSA9IHRydWU7Cj4+ICsJCQluZWVkX3NlbmQgPSB0cnVlOwo+PiArCQl9Cj4+ICsJfSBl bHNlIGlmIChlcnJfbm9zcGFjZSkgewo+PiArCQkvKiogQ2xlYXIgZmxhZyBhbmQgc2VuZCBtZXNz YWdlIHRvIGdjLiAqLwo+PiArCQllcnJfbm9zcGFjZSA9IGZhbHNlOwo+PiArCQluZWVkX3NlbmQg PSB0cnVlOwo+PiArCX0KPj4gKwlpZiAobmVlZF9zZW5kKSB7Cj4KPlRoaXMgam9nZ2xpbmcgd2l0 aCBmbGFncyBsb29rcyBjb25mdXNpbmcuIFdoYXQgYXJlIHlvdSB0cnlpbmcgdG8gYWNoaWV2ZQo+ aGVyZT8gQXZvaWQgaW52b2tpbmcgZ2FyYmFnZSBjb2xsZWN0b3IgdHdpY2Ugb24gRU5PU1BDIGVy cm9yPyBBdCB0aGUKPnZlcnkgbGVhc3QsIHRoaXMgY29kZSBzaG91bGQgYmUgYWNjb21wYW5pZWQg YnkgYSBjb21tZW50Lgo+Cj5BbHNvLCBBRkFJQ1MgeW91IGZhaWwgYSB0cmFuc2FjdGlvbiB0aGF0 IGhpdCBFTk9TUEMgYW5kIHRyaWdnZXJlZAo+Z2FyYmFnZSBjb2xsZWN0aW9uLiBJIGRvbid0IHRo aW5rIGl0J3MgZ29vZC4gSSBzZWUgdHdvIHdheXMgb2YKPnJlY3RpZnlpbmcgdGhpczogZWl0aGVy IHJldHJ5IFdBTCB3cml0ZSBhZnRlciBpbnZva2luZyBnYXJiYWdlCj5jb2xsZWN0aW9uIG9yIHVz ZSBmYWxsb2NhdGUgdG8gcmVzZXJ2ZSBzb21lIHNwYWNlIGJleW9uZCB0aGUgZW5kIG9mCj50aGUg ZmlsZSBiZWZvcmUgd3JpdGluZyB0byBXQUwuCkZpeGVkIGJ5IGNvbXBhcmluZyBjdXJyZW50IHRp bWVzdGFtcCB3aXRoIHRoZSBwcmV2aW91cyBvbmUuCj4KPgo+PiArCQlzdHJ1Y3QgZ2NfbXNnIG1z ZzsKPj4gKwkJc3RhdGljIGNvbnN0IHN0cnVjdCBjbXNnX2hvcCByb3V0ZVtdID0gewo+PiArCQkJ e2djX3N0YXR1c191cGRhdGUsIE5VTEx9Cj4+ICsJCX07Cj4+ICsJCWNtc2dfaW5pdCgmbXNnLCBy b3V0ZSk7Cj4+ICsJCW1zZy5pb19lcnIgPSBlcnJfbm9zcGFjZTsKPj4gKwkJY3BpcGVfcHVzaCgm d2FsX3RocmVhZC50eF9waXBlLCAmbXNnKTsKPj4gIAl9Cj4KPlB1c2hpbmcgYSBtZXNzYWdlIGRl ZmluZWQgb24gc3RhY2sgdG8gYSBwaXBlIGFuZCBub3Qgd2FpdGluZyBmb3IgaXQgdG8KPmJlIGRl bGl2ZXJlZCBkb2Vzbid0IGxvb2sgcmlnaHQuIApGaXhlZAoKQmVzdCByZWdhcmRzLApLb25zdGFu dGluIEJlbHlhdnNraXkKay5iZWx5YXZza2l5QHRhcmFudG9vbC5vcmcK ----ALT--JBlmLOi2Xuz1N5cKa6wTGNPPZ4ygXfgr1530115915 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxwPlBsZWFzZSB0YWtlIGEgbG9vayBhdCB1cGRhdGVkIHBhdGNoPGJyPjxi cj50aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy8z Mzk3PGJyPmJyYW5jaDogaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvdHJl ZS9rYmVseWF2cy9naC0zMzk3LWZvcmNlLWRlbC1sb2dzLW9uLW5vLWRpc2stc3BhY2U8L3A+PGJy Pjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1h cmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij4KCdCf0L7QvdC10LTQtdC70YzQvdC40Los IDE4INC40Y7QvdGPIDIwMTgsIDE1OjM1ICswMzowMCDQvtGCIFZsYWRpbWlyIERhdnlkb3YgJmx0 O3ZkYXZ5ZG92LmRldkBnbWFpbC5jb20mZ3Q7Ojxicj48YnI+PGRpdiBpZD0iIj48ZGl2IGNsYXNz PSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTUyOTMyNTMy NzAwMDAwMDAwNzJfQk9EWSI+T24gU2F0LCBKdW4gMDksIDIwMTggYXQgMDU6MDU6MTBQTSArMDMw MCwgS29uc3RhbnRpbiBCZWx5YXZza2l5IHdyb3RlOjxicj4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmd0OyBHYXJiYWdlIGNvbGxlY3RvciBkbyBub3QgZGVsZXRlIHhsb2cgdW5s ZXNzIHJlcGxpY2EgZG8gbm90IG5vdGlmeTxicj4KJmd0OyBtYXN0ZXIgd2l0aCBuZXdlciB2Y2xv Y2suIFRoaXMgY2FuIGxlYWQgdG8gcnVubmluZyBvdXQgb2YgZGlzazxicj4KJmd0OyBzcGFjZSBl cnJvciBhbmQgdGhpcyBpcyBub3QgcmlnaHQgYmVoYXZpb3VyIHNpbmNlIGl0IHdpbGwgc3RvcCB0 aGU8YnI+CiZndDsgbWFzdGVyLjxicj48YnI+CkFGQUlVIHRoaXMgaXMgdGhlIHNlY29uZCBpdGVy YXRpb24gb2YgdGhpcyBwYXRjaC4gSWYgc28sIHlvdSBzaG91bGQ8YnI+CmhhdmUgYXBwZW5kZWQg dGhlIHZlcnNpb24gbnVtYmVyIHRvIHRoZSBzdWJqZWN0IHByZWZpeCAoaS5lLiBQQVRDSCB2Mik8 YnI+CmFjY29yZGluZyB0byBvdXIgZ3VpZGVsaW5lOjxicj48YnI+PGEgaHJlZj0iaHR0cHM6Ly90 YXJhbnRvb2wuaW8vZW4vZG9jLzEuOS9kZXZfZ3VpZGUvZGV2ZWxvcGVyX2d1aWRlbGluZXMuaHRt bCNob3ctdG8tc3VibWl0LWEtcGF0Y2gtZm9yLXJldmlldyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBz Oi8vdGFyYW50b29sLmlvL2VuL2RvYy8xLjkvZGV2X2d1aWRlL2RldmVsb3Blcl9ndWlkZWxpbmVz Lmh0bWwjaG93LXRvLXN1Ym1pdC1hLXBhdGNoLWZvci1yZXZpZXc8L2E+PGJyPjxicj4KJmd0OyA8 YnI+CiZndDsgTGlzdCBvZiBjaGFuZ2VzOjxicj4KJmd0OyAtIFByb21vdGluZyBlcnJvciBmcm9t IHdhbF90aHJlYWQgdG8gdHggdmlhIGNwaXBlLjxicj4KJmd0OyAtIEludHJvZHVjZSBzdGF0ZXMg Zm9yIGdjX2NvbnN1bWVycyAoT0sgYW5kIE9GRikuIEdDIGRvZXMgbm90PGJyPgomZ3Q7IHRha2Ug aW50byBhY2NvdW50IGNvbnN1bWVycyB3aXRoIHN0YXRlIE9GRi48YnI+CiZndDsgLSBBZGQgYW4g ZXJyb3IgaW5qZWN0aW9uIGFuZCBhIHRlc3QuPGJyPjxicj4KVGhlIGxpc3Qgb2YgY2hhbmdlcyBi ZXR3ZWVuIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgc2FtZSBwYXRjaCBzaG91bGQ8YnI+Cmdv IGFmdGVyIHRoZSBsaW5rIHRvIHRoZSBicmFuY2ggYW5kIHRoZSB0aWNrZXQuIEZvciBleGFtcGxl IHNlZTxicj48YnI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZnJlZWxpc3RzLm9yZy9wb3N0L3RhcmFu dG9vbC1wYXRjaGVzL1BBVENILXYyLWJveC1tYWtlLWdjLWluZm8tcHVibGljIiB0YXJnZXQ9Il9i bGFuayI+aHR0cHM6Ly93d3cuZnJlZWxpc3RzLm9yZy9wb3N0L3RhcmFudG9vbC1wYXRjaGVzL1BB VENILXYyLWJveC1tYWtlLWdjLWluZm8tcHVibGljPC9hPjxicj48YnI+CiZndDsgPGJyPgomZ3Q7 IENsb3NlcyAjMzM5Nzxicj4KJmd0OyAtLS08YnI+CiZndDsgdGlja2V0OiA8YSBocmVmPSJodHRw czovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9pc3N1ZXMvMzM5NyIgdGFyZ2V0PSJf YmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy8zMzk3 PC9hPjxicj4KJmd0OyBicmFuY2g6IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRv b2wvdGFyYW50b29sL3RyZWUva2JlbHlhdnMvZ2gtMzM5Ny1mb3JjZS1kZWwtbG9ncy1vbi1uby1k aXNrLXNwYWNlIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90 YXJhbnRvb2wvdHJlZS9rYmVseWF2cy9naC0zMzk3LWZvcmNlLWRlbC1sb2dzLW9uLW5vLWRpc2st c3BhY2U8L2E+PGJyPgomZ3Q7IDxicj4KJmd0OyAgc3JjL2JveC9nYy5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA1MiArKysrKysrKysrLTxicj4KJmd0OyAgc3JjL2Jv eC9nYy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArKys8YnI+ CiZndDsgIHNyYy9ib3gvd2FsLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgNTYgKysrKysrKysrLS08YnI+CiZndDsgIHNyYy9lcnJpbmouaCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKzxicj4KJmd0OyAgc3JjL2Zpby5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArKzxicj4KJmd0OyAgdGVzdC9i b3gvZXJyaW5qLnJlc3VsdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArPGJyPgom Z3Q7ICB0ZXN0L3JlcGxpY2F0aW9uL2ZvcmNlX2djX29uX2Vycl9ub3NwYWNlLnJlc3VsdCAgIHwg MTA3ICsrKysrKysrKysrKysrKysrKysrKys8YnI+CiZndDsgIHRlc3QvcmVwbGljYXRpb24vZm9y Y2VfZ2Nfb25fZXJyX25vc3BhY2UudGVzdC5sdWEgfCAgMzggKysrKysrKys8YnI+CiZndDsgIDgg ZmlsZXMgY2hhbmdlZCwgMjY1IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKTxicj4KJmd0 OyAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvcmVwbGljYXRpb24vZm9yY2VfZ2Nfb25fZXJyX25v c3BhY2UucmVzdWx0PGJyPgomZ3Q7ICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9yZXBsaWNhdGlv bi9mb3JjZV9nY19vbl9lcnJfbm9zcGFjZS50ZXN0Lmx1YTxicj4KJmd0OyA8YnI+CiZndDsgZGlm ZiAtLWdpdCBhL3NyYy9ib3gvZ2MuYyBiL3NyYy9ib3gvZ2MuYzxicj4KJmd0OyBpbmRleCAxMmU2 OGYzZGMuLmVmZTAzM2FhZiAxMDA2NDQ8YnI+CiZndDsgLS0tIGEvc3JjL2JveC9nYy5jPGJyPgom Z3Q7ICsrKyBiL3NyYy9ib3gvZ2MuYzxicj4KJmd0OyBAQCAtNTksNiArNTksOCBAQCBzdHJ1Y3Qg Z2NfY29uc3VtZXIgezxicj4KJmd0OyAgCWdjX25vZGVfdCBub2RlOzxicj4KJmd0OyAgCS8qKiBI dW1hbi1yZWFkYWJsZSBuYW1lLiAqLzxicj4KJmd0OyAgCWNoYXIgKm5hbWU7PGJyPgomZ3Q7ICsJ LyoqIERlYWQgb3IgYWxpdmUuIEdDIGlnbm9yZXMgZGVhZCBjb25zdW1lcnMuICovPGJyPgomZ3Q7 ICsJZW51bSBnY19jb25zdW1lcl9zdGF0ZSBzdGF0ZTs8YnI+PGJyPgpLZWVwaW5nIGRlYWQgY29u c3VtZXJzIGFyb3VuZCBpcyBwb2ludGxlc3MuIEEgY29uc3VtZXIgbXVzdCBiZSByZW1vdmVkPGJy Pgpmcm9tIHRoZSB0cmVlIGFzIHNvb24gYXMgaXQgaXMgZXZpY3RlZC48L2Rpdj48L2Rpdj48L2Rp dj48L2Rpdj48L2Jsb2NrcXVvdGU+Rml4ZWQ8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6 MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2 IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2IGlk PSJzdHlsZV8xNTI5MzI1MzI3MDAwMDAwMDA3Ml9CT0RZIj48YnI+CiZndDsgK3ZvaWQ8YnI+CiZn dDsgK2djX3hkaXJfY2xlYW5fbm90aWZ5KGJvb2wgZm9yY2VfY2xlYW4pPGJyPgomZ3Q7ICt7PGJy PgomZ3Q7ICsJaWYgKGZvcmNlX2NsZWFuID09IGdjLmZvcmNlX2NsZWFuX2ZsYWcpPGJyPgomZ3Q7 ICsJCXJldHVybjsgLy8gbm90aGluZyB0byBkbzxicj4KJmd0OyArCWVsc2UgaWYgKGZvcmNlX2Ns ZWFuKSB7IC8vIHhkaXIgY2xlYW4gcmVxdWlyZWQ8YnI+CiZndDsgKwkJZ2MuZm9yY2VfY2xlYW5f ZmxhZyA9IHRydWU7PGJyPjxicj4KV2UgZG9uJ3QgdXNlIEMrKyBzdHlsZSBjb21tZW50cyBpbiB0 aGUgY29kZS48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+Rml4ZWQ8YnI+PGJs b2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBw eDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdiBpZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIg anMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTUyOTMyNTMyNzAwMDAwMDAwNzJf Qk9EWSI+PGJyPgomZ3Q7ICsJCS8qKjxicj4KJmd0OyArCQkgKiBNYXJrIGNvbnN1bWVyIHdpdGgg bGVhc3QgcmVjZW50IHZjbG9jayBhcyAiZGVhZCIgYW5kPGJyPgomZ3Q7ICsJCSAqIGludm9rZSBn YXJiYWdlIGNvbGxlY3Rpb24uIElmIG5vdGhpbmcgdG8gZGVsZXRlIGZpbmQ8YnI+CiZndDsgKwkJ ICogbmV4dCBhbGl2ZSBjb25zdW1lciBldGMuIE9yaWdpbmFsbHkgY3JlYXRlZCBmb3I8YnI+CiZn dDsgKwkJICogY2FzZXMgd2l0aCBydW5uaW5nIG91dCBvZiBkaXNrIHNwYWNlIGJlY2F1c2Ugb2Y8 YnI+CiZndDsgKwkJICogZGlzY29ubmVjdGVkIHJlcGxpY2EuPGJyPgomZ3Q7ICsJCSAqLzxicj4K Jmd0OyArCQlzdHJ1Y3QgZ2NfY29uc3VtZXIgKmxlZnRtb3N0ID08YnI+CiZndDsgKwkJICAgIGdj X3RyZWVfZmlyc3RfYWxpdmUoJmFtcDtnYy5jb25zdW1lcnMpOzxicj4KJmd0OyArCQlpZiAobGVm dG1vc3QgPT0gTlVMTCk8YnI+CiZndDsgKwkJCXJldHVybjsgLy8gZG8gbm90aGluZzxicj4KJmd0 OyArCQlpbnQ2NF90IHNpZ25hdHVyZSA9IGxlZnRtb3N0LSZndDtzaWduYXR1cmU7PGJyPgomZ3Q7 ICsJCXdoaWxlICh0cnVlKSB7PGJyPgomZ3Q7ICsJCQlsZWZ0bW9zdC0mZ3Q7c3RhdGUgPSBDT05T VU1FUl9PRkY7PGJyPgomZ3Q7ICsJCQlsZWZ0bW9zdCA9IGdjX3RyZWVfZmlyc3RfYWxpdmUoJmFt cDtnYy5jb25zdW1lcnMpOzxicj4KJmd0OyArCQkJaWYgKGxlZnRtb3N0ID09IE5VTEwgfHw8YnI+ CiZndDsgKwkJCSAgICBsZWZ0bW9zdC0mZ3Q7c2lnbmF0dXJlICZndDsgc2lnbmF0dXJlKSB7PGJy PgomZ3Q7ICsJCQkJZ2NfcnVuKCk7PGJyPgomZ3Q7ICsJCQkJcmV0dXJuOzxicj48YnI+CkEgY29u c3VtZXIgbWF5IGNvcnJlc3BvbmQgdG8gYSBiYWNrdXAgcHJvY2VkdXJlLCBpbiB3aGljaCBjYXNl IGl0IG11c3Q8YnI+Cm5vdCBiZSBldmljdGVkLCBldmVuIG9uIEVOT1NQQy48L2Rpdj48L2Rpdj48 L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+Rml4ZWQ8YnI+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRl ci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4 OyI+PGRpdiBpZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+ PGRpdiBpZD0ic3R5bGVfMTUyOTMyNTMyNzAwMDAwMDAwNzJfQk9EWSI+PGJyPjxicj4KJmd0OyAr CQkJfTxicj4KJmd0OyArCQl9PGJyPgomZ3Q7ICsJfSBlbHNlPGJyPgomZ3Q7ICsJCWdjLmZvcmNl X2NsZWFuX2ZsYWcgPSBmYWxzZTs8YnI+CiZndDsgK308YnI+PGJyPgomZ3Q7IGRpZmYgLS1naXQg YS9zcmMvYm94L3dhbC5jYyBiL3NyYy9ib3gvd2FsLmNjPGJyPgomZ3Q7IGluZGV4IDA5OWM3MGNh YS4uOWRkODM0N2Q1IDEwMDY0NDxicj4KJmd0OyAtLS0gYS9zcmMvYm94L3dhbC5jYzxicj4KJmd0 OyArKysgYi9zcmMvYm94L3dhbC5jYzxicj4KJmd0OyBAQCAtNTksNiArNjIsMTEgQEAgc3RydWN0 IHdhbF90aHJlYWQgezxicj4KJmd0OyAgCXN0cnVjdCBjb3JkIGNvcmQ7PGJyPgomZ3Q7ICAJLyoq IEEgcGlwZSBmcm9tICd0eCcgdGhyZWFkIHRvICd3YWwnICovPGJyPgomZ3Q7ICAJc3RydWN0IGNw aXBlIHdhbF9waXBlOzxicj4KJmd0OyArCS8qKjxicj4KJmd0OyArCSAqIFJldHVybiBwaXBlIGZy b20gJ3dhbCcgdG8gdHgnLiBUaGlzIGlzIGE8YnI+CiZndDsgKwkgKiBwcmlvcml0eSBwaXBlIGFu ZCBET0VTIE5PVCBzdXBwb3J0IHlpZWxkLjxicj4KJmd0OyArCSAqLzxicj4KJmd0OyArCXN0cnVj dCBjcGlwZSB0eF9wcmlvX3BpcGU7PGJyPgomZ3Q7ICAJLyoqIFJldHVybiBwaXBlIGZyb20gJ3dh bCcgdG8gdHgnICovPGJyPgomZ3Q7ICAJc3RydWN0IGNwaXBlIHR4X3BpcGU7PGJyPgomZ3Q7ICB9 Ozxicj4KJmd0OyBAQCAtMTU0LDcgKzE2Niw3IEBAIHN0YXRpYyB2b2lkPGJyPgomZ3Q7ICB0eF9z Y2hlZHVsZV9jb21taXQoc3RydWN0IGNtc2cgKm1zZyk7PGJyPgomZ3Q7ICA8YnI+CiZndDsgIHN0 YXRpYyBzdHJ1Y3QgY21zZ19ob3Agd2FsX3JlcXVlc3Rfcm91dGVbXSA9IHs8YnI+CiZndDsgLQl7 d2FsX3dyaXRlX3RvX2Rpc2ssICZhbXA7d2FsX3RocmVhZC50eF9waXBlfSw8YnI+CiZndDsgKwl7 d2FsX3dyaXRlX3RvX2Rpc2ssICZhbXA7d2FsX3RocmVhZC50eF9wcmlvX3BpcGV9LDxicj48YnI+ CkFGQUlDUyB5b3UgcmVuYW1lIHdhbF90aHJlYWQudHhfcGlwZSB0byB0eF9wcmlvX3BpcGUgYW5k IGNyZWF0ZSBhIG5ldzxicj4KcGlwZSBjYWxsZWQgd2FsX3RocmVhZC50eF9waXBlIHRvIGJlIHVz ZWQgZm9yIGdhcmJhZ2UgY29sbGVjdGlvbiwgYWxsIGluPGJyPgpvbmUgcGF0Y2guIFRoaXMgaXMg dmVyeSBkaWZmaWN1bHQgdG8gcmV2aWV3LiBQcm92aWRlZCB5b3UgcmVhbGx5IG5lZWQ8YnI+Cml0 LCByZW5hbWluZyBzaG91bGQgYmUgZG9uZSBpbiBhIHNlcGFyYXRlIHBhdGNoIHdpdGggYSBnb29k IGV4cGxhbmF0aW9uPGJyPgp3aHkgeW91J3JlIGRvaW5nIHdoYXQgeW91J3JlIGRvaW5nLiBDdXJy ZW50bHksIEkgZmFpbCB0byBzZWUgYSByZWFzb24uPGJyPjxicj4KJmd0OyArc3RhdGljIHZvaWQ8 YnI+CiZndDsgK2djX3N0YXR1c191cGRhdGUoc3RydWN0IGNtc2cgKm1zZyk8YnI+CiZndDsgK3s8 YnI+CiZndDsgKwltc2ctJmd0O3JvdXRlID0gTlVMTDs8YnI+CiZndDsgKwlzYXlfaW5mbygiUVFR OiBnY19zdGF0dXNfdXBkYXRlIik7PGJyPjxicj4KV2hhdCBpcyB0aGlzPzwvZGl2PjwvZGl2Pjwv ZGl2PjwvZGl2PjwvYmxvY2txdW90ZT5Tb3JyeSwgbXkgZmF1bHQgKHVzZSB0byBmaW5kIGluIGxv Z3MpLjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7 IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2IGlkPSIiPjxkaXYgY2xhc3M9 ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNTI5MzI1MzI3 MDAwMDAwMDA3Ml9CT0RZIj48YnI+PGJyPgomZ3Q7ICsJZ2NfeGRpcl9jbGVhbl9ub3RpZnkoc3Rh dGljX2Nhc3QmbHQ7Z2NfbXNnKiZndDsobXNnKS0mZ3Q7aW9fZXJyKTs8YnI+CiZndDsgK308YnI+ CiZndDsgKzxicj4KJmd0OyAgc3RhdGljIHZvaWQ8YnI+CiZndDsgIHdhbF93cml0ZV90b19kaXNr KHN0cnVjdCBjbXNnICptc2cpPGJyPgomZ3Q7ICB7PGJyPgomZ3Q7IEBAIC02NDcsMTEgKzY2Nywy OSBAQCB3YWxfd3JpdGVfdG9fZGlzayhzdHJ1Y3QgY21zZyAqbXNnKTxicj4KJmd0OyAgCWxhc3Rf Y29tbWl0dGVkID0gc3RhaWxxX2xhc3QoJmFtcDt3YWxfbXNnLSZndDtjb21taXQpOzxicj4KJmd0 OyAgPGJyPgomZ3Q7ICBkb25lOjxicj4KJmd0OyArCWJvb2wgbmVlZF9zZW5kID0gZmFsc2U7PGJy PgomZ3Q7ICAJc3RydWN0IGVycm9yICplcnJvciA9IGRpYWdfbGFzdF9lcnJvcihkaWFnX2dldCgp KTs8YnI+CiZndDsgIAlpZiAoZXJyb3IpIHs8YnI+CiZndDsgIAkJLyogVW50aWwgd2UgY2FuIHBh c3MgdGhlIGVycm9yIHRvIHR4LCBsb2cgaXQgYW5kIGNsZWFyLiAqLzxicj4KJmd0OyAgCQllcnJv cl9sb2coZXJyb3IpOzxicj4KJmd0OyAgCQlkaWFnX2NsZWFyKGRpYWdfZ2V0KCkpOzxicj4KJmd0 OyArCQlpZiAoZXJybm8gPT0gRU5PU1BDKSB7PGJyPgomZ3Q7ICsJCQllcnJfbm9zcGFjZSA9IHRy dWU7PGJyPgomZ3Q7ICsJCQluZWVkX3NlbmQgPSB0cnVlOzxicj4KJmd0OyArCQl9PGJyPgomZ3Q7 ICsJfSBlbHNlIGlmIChlcnJfbm9zcGFjZSkgezxicj4KJmd0OyArCQkvKiogQ2xlYXIgZmxhZyBh bmQgc2VuZCBtZXNzYWdlIHRvIGdjLiAqLzxicj4KJmd0OyArCQllcnJfbm9zcGFjZSA9IGZhbHNl Ozxicj4KJmd0OyArCQluZWVkX3NlbmQgPSB0cnVlOzxicj4KJmd0OyArCX08YnI+CiZndDsgKwlp ZiAobmVlZF9zZW5kKSB7PGJyPjxicj4KVGhpcyBqb2dnbGluZyB3aXRoIGZsYWdzIGxvb2tzIGNv bmZ1c2luZy4gV2hhdCBhcmUgeW91IHRyeWluZyB0byBhY2hpZXZlPGJyPgpoZXJlPyBBdm9pZCBp bnZva2luZyBnYXJiYWdlIGNvbGxlY3RvciB0d2ljZSBvbiBFTk9TUEMgZXJyb3I/IEF0IHRoZTxi cj4KdmVyeSBsZWFzdCwgdGhpcyBjb2RlIHNob3VsZCBiZSBhY2NvbXBhbmllZCBieSBhIGNvbW1l bnQuPGJyPjxicj4KQWxzbywgQUZBSUNTIHlvdSBmYWlsIGEgdHJhbnNhY3Rpb24gdGhhdCBoaXQg RU5PU1BDIGFuZCB0cmlnZ2VyZWQ8YnI+CmdhcmJhZ2UgY29sbGVjdGlvbi4gSSBkb24ndCB0aGlu ayBpdCdzIGdvb2QuIEkgc2VlIHR3byB3YXlzIG9mPGJyPgpyZWN0aWZ5aW5nIHRoaXM6IGVpdGhl ciByZXRyeSBXQUwgd3JpdGUgYWZ0ZXIgaW52b2tpbmcgZ2FyYmFnZTxicj4KY29sbGVjdGlvbiBv ciB1c2UgZmFsbG9jYXRlIHRvIHJlc2VydmUgc29tZSBzcGFjZSBiZXlvbmQgdGhlIGVuZCBvZjxi cj4KdGhlIGZpbGUgYmVmb3JlIHdyaXRpbmcgdG8gV0FMLjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2 PjwvYmxvY2txdW90ZT48YnI+Rml4ZWQgYnkgY29tcGFyaW5nIGN1cnJlbnQgdGltZXN0YW1wIHdp dGggdGhlIHByZXZpb3VzIG9uZS48YnI+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFw eCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdiBp ZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdiBpZD0i c3R5bGVfMTUyOTMyNTMyNzAwMDAwMDAwNzJfQk9EWSI+PGJyPjxicj4KJmd0OyArCQlzdHJ1Y3Qg Z2NfbXNnIG1zZzs8YnI+CiZndDsgKwkJc3RhdGljIGNvbnN0IHN0cnVjdCBjbXNnX2hvcCByb3V0 ZVtdID0gezxicj4KJmd0OyArCQkJe2djX3N0YXR1c191cGRhdGUsIE5VTEx9PGJyPgomZ3Q7ICsJ CX07PGJyPgomZ3Q7ICsJCWNtc2dfaW5pdCgmYW1wO21zZywgcm91dGUpOzxicj4KJmd0OyArCQlt c2cuaW9fZXJyID0gZXJyX25vc3BhY2U7PGJyPgomZ3Q7ICsJCWNwaXBlX3B1c2goJmFtcDt3YWxf dGhyZWFkLnR4X3BpcGUsICZhbXA7bXNnKTs8YnI+CiZndDsgIAl9PGJyPjxicj4KUHVzaGluZyBh IG1lc3NhZ2UgZGVmaW5lZCBvbiBzdGFjayB0byBhIHBpcGUgYW5kIG5vdCB3YWl0aW5nIGZvciBp dCB0bzxicj4KYmUgZGVsaXZlcmVkIGRvZXNuJ3QgbG9vayByaWdodC48L2Rpdj48L2Rpdj48L2Rp dj48L2Rpdj48L2Jsb2NrcXVvdGU+CkZpeGVkPGJyPgo8YnI+QmVzdCByZWdhcmRzLDxicj5Lb25z dGFudGluIEJlbHlhdnNraXk8YnI+ay5iZWx5YXZza2l5QHRhcmFudG9vbC5vcmc8YnI+PC9CT0RZ PjwvSFRNTD4K ----ALT--JBlmLOi2Xuz1N5cKa6wTGNPPZ4ygXfgr1530115915-- ------JBlmLOi2Xuz1N5cKa6wTGNPPZ4ygXfgr-ogjoQRQ8mVHbgITh-1530115915 Content-Type: application/x-patch; name="=?UTF-8?B?MDAwMC1jb3Zlci1sZXR0ZXIucGF0Y2g=?=" Content-Disposition: attachment; filename="=?UTF-8?B?MDAwMC1jb3Zlci1sZXR0ZXIucGF0Y2g=?=" Content-Transfer-Encoding: base64 RnJvbSAyZDg5NDlmMWUyMGY1N2Y0NjZkNWFlNTZhMTMxYjg2YzU2MThhMTEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8Y292ZXIuMTUzMDExNTQyMy5naXQuay5iZWx5YXZz a2l5QHRhcmFudG9vbC5vcmc+CkZyb206IEtvbnN0YW50aW4gQmVseWF2c2tpeSA8ay5iZWx5YXZz a2l5QHRhcmFudG9vbC5vcmc+CkRhdGU6IFdlZCwgMjcgSnVuIDIwMTggMTk6MDM6NDMgKzAzMDAK U3ViamVjdDogW1BBVENIIHYzIDAvMl0gKioqIFNVQkpFQ1QgSEVSRSAqKioKCnRpY2tldDogaHR0 cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzMzOTcKYnJhbmNoOiBo dHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC90cmVlL2tiZWx5YXZzL2doLTMz OTctZm9yY2UtZGVsLWxvZ3Mtb24tbm8tZGlzay1zcGFjZQoKS29uc3RhbnRpbiBCZWx5YXZza2l5 ICgyKToKICByZXBsaWNhdGlvbjogcmVuYW1lIHRocmVhZCBmcm9tIHR4IHRvIHR4X3ByaW8KICBy ZXBsaWNhdGlvbjogZm9yY2UgZ2MgdG8gY2xlYW4geGRpciBvbiBFTk9TUEMgZXJyCgogc3JjL2Jv eC9ib3guY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMv Ym94L2djLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUxICsrKysr KysrKysrCiBzcmMvYm94L2djLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDE2ICsrKysKIHNyYy9ib3gvcmVsYXkuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogc3JjL2JveC93YWwuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICA0MCArKysrKystLQogc3JjL2Vycmluai5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvZmlvLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICA3ICsrCiB0ZXN0L2JveC9lcnJpbmoucmVzdWx0ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHRlc3QvcmVwbGljYXRpb24vZm9yY2VfZ2Nf b25fZXJyX25vc3BhY2UucmVzdWx0ICAgfCAxMDcgKysrKysrKysrKysrKysrKysrKysrKwogdGVz dC9yZXBsaWNhdGlvbi9mb3JjZV9nY19vbl9lcnJfbm9zcGFjZS50ZXN0Lmx1YSB8ICAzOCArKysr KysrKwogdGVzdC9yZXBsaWNhdGlvbi9zdWl0ZS5pbmkgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogMTEgZmlsZXMgY2hhbmdlZCwgMjU3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9yZXBsaWNhdGlvbi9mb3JjZV9nY19vbl9lcnJf bm9zcGFjZS5yZXN1bHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L3JlcGxpY2F0aW9uL2ZvcmNl X2djX29uX2Vycl9ub3NwYWNlLnRlc3QubHVhCgotLQoyLjE0LjMgKEFwcGxlIEdpdC05OCkK ------JBlmLOi2Xuz1N5cKa6wTGNPPZ4ygXfgr-ogjoQRQ8mVHbgITh-1530115915 Content-Type: application/x-patch; name="=?UTF-8?B?MDAwMS1yZXBsaWNhdGlvbi1yZW5hbWUtdGhyZWFkLWZyb20tdHgtdG8tdHhf?= =?UTF-8?B?cHJpby5wYXRjaA==?=" Content-Disposition: attachment; filename="=?UTF-8?B?MDAwMS1yZXBsaWNhdGlvbi1yZW5hbWUtdGhyZWFkLWZyb20tdHgtdG8tdHhf?= =?UTF-8?B?cHJpby5wYXRjaA==?=" Content-Transfer-Encoding: base64 RnJvbSAxMjgzNTY0YWUyZDAyOTI3MWRiYzIxZDhkMDViODBjMzZhNjM4MWQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8MTI4MzU2NGFlMmQwMjkyNzFkYmMyMWQ4ZDA1Yjgw YzM2YTYzODFkNi4xNTMwMTE1NDIzLmdpdC5rLmJlbHlhdnNraXlAdGFyYW50b29sLm9yZz4KSW4t UmVwbHktVG86IDxjb3Zlci4xNTMwMTE1NDIzLmdpdC5rLmJlbHlhdnNraXlAdGFyYW50b29sLm9y Zz4KUmVmZXJlbmNlczogPGNvdmVyLjE1MzAxMTU0MjMuZ2l0LmsuYmVseWF2c2tpeUB0YXJhbnRv b2wub3JnPgpGcm9tOiBLb25zdGFudGluIEJlbHlhdnNraXkgPGsuYmVseWF2c2tpeUB0YXJhbnRv b2wub3JnPgpEYXRlOiBNb24sIDE4IEp1biAyMDE4IDIxOjA1OjQ4ICswMzAwClN1YmplY3Q6IFtQ QVRDSCB2MyAxLzJdIHJlcGxpY2F0aW9uOiByZW5hbWUgdGhyZWFkIGZyb20gdHggdG8gdHhfcHJp bwoKVGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgdGhyZWFkczogJ3R4JyBhbmQgJ3R4X3ByaW8nLCB0 aGUgbGF0dGVyCmRvZXMgbm90IHN1cHBvcnQgeWllbGQoKS4gUmVuYW1lIHRvIGF2b2lkIG1pc3Vu ZGVyc3RhbmRpbmcuCgpOZWVkZWQgZm9yICMzMzk3Ci0tLQogc3JjL2JveC93YWwuY2MgfCAyNSAr KysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JveC93YWwuY2MgYi9zcmMvYm94 L3dhbC5jYwppbmRleCAwOTljNzBjYWEuLjkzYzM1MGUxZiAxMDA2NDQKLS0tIGEvc3JjL2JveC93 YWwuY2MKKysrIGIvc3JjL2JveC93YWwuY2MKQEAgLTU5LDggKzU5LDExIEBAIHN0cnVjdCB3YWxf dGhyZWFkIHsKIAlzdHJ1Y3QgY29yZCBjb3JkOwogCS8qKiBBIHBpcGUgZnJvbSAndHgnIHRocmVh ZCB0byAnd2FsJyAqLwogCXN0cnVjdCBjcGlwZSB3YWxfcGlwZTsKLQkvKiogUmV0dXJuIHBpcGUg ZnJvbSAnd2FsJyB0byB0eCcgKi8KLQlzdHJ1Y3QgY3BpcGUgdHhfcGlwZTsKKwkvKioKKwkgKiBS ZXR1cm4gcGlwZSBmcm9tICd3YWwnIHRvIHR4Jy4gVGhpcyBpcyBhCisJICogcHJpb3JpdHkgcGlw ZSBhbmQgRE9FUyBOT1Qgc3VwcG9ydCB5aWVsZC4KKwkgKi8KKwlzdHJ1Y3QgY3BpcGUgdHhfcHJp b19waXBlOwogfTsKIAogLyoKQEAgLTE1NCw3ICsxNTcsNyBAQCBzdGF0aWMgdm9pZAogdHhfc2No ZWR1bGVfY29tbWl0KHN0cnVjdCBjbXNnICptc2cpOwogCiBzdGF0aWMgc3RydWN0IGNtc2dfaG9w IHdhbF9yZXF1ZXN0X3JvdXRlW10gPSB7Ci0Je3dhbF93cml0ZV90b19kaXNrLCAmd2FsX3RocmVh ZC50eF9waXBlfSwKKwl7d2FsX3dyaXRlX3RvX2Rpc2ssICZ3YWxfdGhyZWFkLnR4X3ByaW9fcGlw ZX0sCiAJe3R4X3NjaGVkdWxlX2NvbW1pdCwgTlVMTH0sCiB9OwogCkBAIC00MTQsNyArNDE3LDcg QEAgd2FsX2NoZWNrcG9pbnQoc3RydWN0IHZjbG9jayAqdmNsb2NrLCBib29sIHJvdGF0ZSkKIAkJ cmV0dXJuIDA7CiAJfQogCXN0YXRpYyBzdHJ1Y3QgY21zZ19ob3Agd2FsX2NoZWNrcG9pbnRfcm91 dGVbXSA9IHsKLQkJe3dhbF9jaGVja3BvaW50X2YsICZ3YWxfdGhyZWFkLnR4X3BpcGV9LAorCQl7 d2FsX2NoZWNrcG9pbnRfZiwgJndhbF90aHJlYWQudHhfcHJpb19waXBlfSwKIAkJe3dhbF9jaGVj a3BvaW50X2RvbmVfZiwgTlVMTH0sCiAJfTsKIAl2Y2xvY2tfY3JlYXRlKHZjbG9jayk7CkBAIC00 NTMsNyArNDU2LDcgQEAgd2FsX2NvbGxlY3RfZ2FyYmFnZShpbnQ2NF90IGxzbikKIAlzdHJ1Y3Qg d2FsX2djX21zZyBtc2c7CiAJbXNnLmxzbiA9IGxzbjsKIAlib29sIGNhbmNlbGxhYmxlID0gZmli ZXJfc2V0X2NhbmNlbGxhYmxlKGZhbHNlKTsKLQljYnVzX2NhbGwoJndhbF90aHJlYWQud2FsX3Bp cGUsICZ3YWxfdGhyZWFkLnR4X3BpcGUsICZtc2csCisJY2J1c19jYWxsKCZ3YWxfdGhyZWFkLndh bF9waXBlLCAmd2FsX3RocmVhZC50eF9wcmlvX3BpcGUsICZtc2csCiAJCSAgd2FsX2NvbGxlY3Rf Z2FyYmFnZV9mLCBOVUxMLCBUSU1FT1VUX0lORklOSVRZKTsKIAlmaWJlcl9zZXRfY2FuY2VsbGFi bGUoY2FuY2VsbGFibGUpOwogfQpAQCAtNTQ0LDcgKzU0Nyw3IEBAIHdhbF93cml0ZXJfYmVnaW5f cm9sbGJhY2soc3RydWN0IHdhbF93cml0ZXIgKndyaXRlcikKIAkJICogbGlzdC4KIAkJICovCiAJ CXsgd2FsX3dyaXRlcl9jbGVhcl9idXMsICZ3YWxfdGhyZWFkLndhbF9waXBlIH0sCi0JCXsgd2Fs X3dyaXRlcl9jbGVhcl9idXMsICZ3YWxfdGhyZWFkLnR4X3BpcGUgfSwKKwkJeyB3YWxfd3JpdGVy X2NsZWFyX2J1cywgJndhbF90aHJlYWQudHhfcHJpb19waXBlIH0sCiAJCS8qCiAJCSAqIFN0ZXAg Mjogd3JpdGVyLT5yb2xsYmFjayBxdWV1ZSBjb250YWlucyBhbGwKIAkJICogbWVzc2FnZXMgd2hp Y2ggbmVlZCB0byBiZSByb2xsZWQgYmFjaywKQEAgLTU2Miw3ICs1NjUsNyBAQCB3YWxfd3JpdGVy X2JlZ2luX3JvbGxiYWNrKHN0cnVjdCB3YWxfd3JpdGVyICp3cml0ZXIpCiAJICogYWxsIGlucHV0 IHVudGlsIHJvbGxiYWNrIG1vZGUgaXMgb2ZmLgogCSAqLwogCWNtc2dfaW5pdCgmd3JpdGVyLT5p bl9yb2xsYmFjaywgcm9sbGJhY2tfcm91dGUpOwotCWNwaXBlX3B1c2goJndhbF90aHJlYWQudHhf cGlwZSwgJndyaXRlci0+aW5fcm9sbGJhY2spOworCWNwaXBlX3B1c2goJndhbF90aHJlYWQudHhf cHJpb19waXBlLCAmd3JpdGVyLT5pbl9yb2xsYmFjayk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC02 OTEsNyArNjk0LDcgQEAgd2FsX3RocmVhZF9mKHZhX2xpc3QgYXApCiAJICogZW5kcG9pbnQsIHRv IGVuc3VyZSB0aGF0IFdBTCBtZXNzYWdlcyBhcmUgZGVsaXZlcmVkCiAJICogZXZlbiB3aGVuIHR4 IGZpYmVyIHBvb2wgaXMgdXNlZCB1cCBieSBuZXQgbWVzc2FnZXMuCiAJICovCi0JY3BpcGVfY3Jl YXRlKCZ3YWxfdGhyZWFkLnR4X3BpcGUsICJ0eF9wcmlvIik7CisJY3BpcGVfY3JlYXRlKCZ3YWxf dGhyZWFkLnR4X3ByaW9fcGlwZSwgInR4X3ByaW8iKTsKIAogCWNidXNfbG9vcCgmZW5kcG9pbnQp OwogCkBAIC03MDMsNyArNzA2LDcgQEAgd2FsX3RocmVhZF9mKHZhX2xpc3QgYXApCiAJaWYgKHhs b2dfaXNfb3BlbigmdnlfbG9nX3dyaXRlci54bG9nKSkKIAkJeGxvZ19jbG9zZSgmdnlfbG9nX3dy aXRlci54bG9nLCBmYWxzZSk7CiAKLQljcGlwZV9kZXN0cm95KCZ3YWxfdGhyZWFkLnR4X3BpcGUp OworCWNwaXBlX2Rlc3Ryb3koJndhbF90aHJlYWQudHhfcHJpb19waXBlKTsKIAlyZXR1cm4gMDsK IH0KIApAQCAtODQzLDcgKzg0Niw3IEBAIHdhbF93cml0ZV92eV9sb2coc3RydWN0IGpvdXJuYWxf ZW50cnkgKmVudHJ5KQogCXN0cnVjdCB3YWxfd3JpdGVfdnlfbG9nX21zZyBtc2c7CiAJbXNnLmVu dHJ5PSBlbnRyeTsKIAlib29sIGNhbmNlbGxhYmxlID0gZmliZXJfc2V0X2NhbmNlbGxhYmxlKGZh bHNlKTsKLQlpbnQgcmMgPSBjYnVzX2NhbGwoJndhbF90aHJlYWQud2FsX3BpcGUsICZ3YWxfdGhy ZWFkLnR4X3BpcGUsICZtc2csCisJaW50IHJjID0gY2J1c19jYWxsKCZ3YWxfdGhyZWFkLndhbF9w aXBlLCAmd2FsX3RocmVhZC50eF9wcmlvX3BpcGUsICZtc2csCiAJCQkgICB3YWxfd3JpdGVfdnlf bG9nX2YsIE5VTEwsIFRJTUVPVVRfSU5GSU5JVFkpOwogCWZpYmVyX3NldF9jYW5jZWxsYWJsZShj YW5jZWxsYWJsZSk7CiAJcmV0dXJuIHJjOwpAQCAtODYzLDcgKzg2Niw3IEBAIHdhbF9yb3RhdGVf dnlfbG9nKCkKIHsKIAlzdHJ1Y3QgY2J1c19jYWxsX21zZyBtc2c7CiAJYm9vbCBjYW5jZWxsYWJs ZSA9IGZpYmVyX3NldF9jYW5jZWxsYWJsZShmYWxzZSk7Ci0JY2J1c19jYWxsKCZ3YWxfdGhyZWFk LndhbF9waXBlLCAmd2FsX3RocmVhZC50eF9waXBlLCAmbXNnLAorCWNidXNfY2FsbCgmd2FsX3Ro cmVhZC53YWxfcGlwZSwgJndhbF90aHJlYWQudHhfcHJpb19waXBlLCAmbXNnLAogCQkgIHdhbF9y b3RhdGVfdnlfbG9nX2YsIE5VTEwsIFRJTUVPVVRfSU5GSU5JVFkpOwogCWZpYmVyX3NldF9jYW5j ZWxsYWJsZShjYW5jZWxsYWJsZSk7CiB9Ci0tIAoyLjE0LjMgKEFwcGxlIEdpdC05OCkKCg== ------JBlmLOi2Xuz1N5cKa6wTGNPPZ4ygXfgr-ogjoQRQ8mVHbgITh-1530115915 Content-Type: application/x-patch; name="=?UTF-8?B?MDAwMi1yZXBsaWNhdGlvbi1mb3JjZS1nYy10by1jbGVhbi14ZGlyLW9uLUVO?= =?UTF-8?B?T1NQQy1lcnIucGF0Y2g=?=" Content-Disposition: attachment; filename="=?UTF-8?B?MDAwMi1yZXBsaWNhdGlvbi1mb3JjZS1nYy10by1jbGVhbi14ZGlyLW9uLUVO?= =?UTF-8?B?T1NQQy1lcnIucGF0Y2g=?=" Content-Transfer-Encoding: base64 RnJvbSAyZDg5NDlmMWUyMGY1N2Y0NjZkNWFlNTZhMTMxYjg2YzU2MThhMTEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8MmQ4OTQ5ZjFlMjBmNTdmNDY2ZDVhZTU2YTEzMWI4 NmM1NjE4YTExMC4xNTMwMTE1NDIzLmdpdC5rLmJlbHlhdnNraXlAdGFyYW50b29sLm9yZz4KSW4t UmVwbHktVG86IDxjb3Zlci4xNTMwMTE1NDIzLmdpdC5rLmJlbHlhdnNraXlAdGFyYW50b29sLm9y Zz4KUmVmZXJlbmNlczogPGNvdmVyLjE1MzAxMTU0MjMuZ2l0LmsuYmVseWF2c2tpeUB0YXJhbnRv b2wub3JnPgpGcm9tOiBLb25zdGFudGluIEJlbHlhdnNraXkgPGsuYmVseWF2c2tpeUB0YXJhbnRv b2wub3JnPgpEYXRlOiBNb24sIDE4IEp1biAyMDE4IDIxOjEwOjU5ICswMzAwClN1YmplY3Q6IFtQ QVRDSCB2MyAyLzJdIHJlcGxpY2F0aW9uOiBmb3JjZSBnYyB0byBjbGVhbiB4ZGlyIG9uIEVOT1NQ QyBlcnIKCkdhcmJhZ2UgY29sbGVjdG9yIGRvIG5vdCBkZWxldGUgeGxvZyB1bmxlc3MgcmVwbGlj YSBkbyBub3Qgbm90aWZ5Cm1hc3RlciB3aXRoIG5ld2VyIHZjbG9jay4gVGhpcyBjYW4gbGVhZCB0 byBydW5uaW5nIG91dCBvZiBkaXNrCnNwYWNlIGVycm9yIGFuZCB0aGlzIGlzIG5vdCByaWdodCBi ZWhhdmlvdXIgc2luY2UgaXQgd2lsbCBzdG9wIHRoZQptYXN0ZXIuCkZpeCBpdCBieSBmb3JjaW5n IGdjIHRvIGNsZWFuIHhsb2dzIGZvciByZXBsaWNhIHdpdGggaGlnaGVzdCBsYWcuCkFkZCBhbiBl cnJvciBpbmplY3Rpb24gYW5kIGEgdGVzdC4KCkNoYW5nZXMgaW4gVjI6Ci0gUHJvbW90aW5nIGVy cm9yIGZyb20gd2FsX3RocmVhZCB0byB0eCB2aWEgY3BpcGUuCkNoYW5nZXMgaW4gVjM6Ci0gRGVs ZXRlIGNvbnN1bWVycyBhbmQgb25seSBmb3IgcmVwbGljYXMgKGJ1dCBub3QgYmFja3VwKS4KCkNs b3NlcyAjMzM5NwotLS0KIHNyYy9ib3gvYm94LmNjICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JveC9nYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA1MSArKysrKysrKysrKwogc3JjL2JveC9nYy5oICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAxNiArKysrCiBzcmMvYm94L3JlbGF5LmNjICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9ib3gvd2FsLmNjICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjEgKysrKysKIHNyYy9lcnJpbmouaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Zpby5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArKwogdGVzdC9ib3gv ZXJyaW5qLnJlc3VsdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiB0ZXN0L3Jl cGxpY2F0aW9uL2ZvcmNlX2djX29uX2Vycl9ub3NwYWNlLnJlc3VsdCAgIHwgMTA3ICsrKysrKysr KysrKysrKysrKysrKysKIHRlc3QvcmVwbGljYXRpb24vZm9yY2VfZ2Nfb25fZXJyX25vc3BhY2Uu dGVzdC5sdWEgfCAgMzggKysrKysrKysKIHRlc3QvcmVwbGljYXRpb24vc3VpdGUuaW5pICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIDExIGZpbGVzIGNoYW5nZWQsIDI0NiBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9yZXBsaWNhdGlv bi9mb3JjZV9nY19vbl9lcnJfbm9zcGFjZS5yZXN1bHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0 L3JlcGxpY2F0aW9uL2ZvcmNlX2djX29uX2Vycl9ub3NwYWNlLnRlc3QubHVhCgpkaWZmIC0tZ2l0 IGEvc3JjL2JveC9ib3guY2MgYi9zcmMvYm94L2JveC5jYwppbmRleCBlM2ViMjczOGYuLmJhODk0 YzMzYSAxMDA2NDQKLS0tIGEvc3JjL2JveC9ib3guY2MKKysrIGIvc3JjL2JveC9ib3guY2MKQEAg LTEzNzAsNiArMTM3MCw3IEBAIGJveF9wcm9jZXNzX2pvaW4oc3RydWN0IGV2X2lvICppbywgc3Ry dWN0IHhyb3dfaGVhZGVyICpoZWFkZXIpCiAJcmVwbGljYSA9IHJlcGxpY2FfYnlfdXVpZCgmaW5z dGFuY2VfdXVpZCk7CiAJYXNzZXJ0KHJlcGxpY2EgIT0gTlVMTCk7CiAJcmVwbGljYS0+Z2MgPSBn YzsKKwlnY19jb25zdW1lcl9zZXRfcmVwbGljYShnYywgcmVwbGljYSk7CiAJZ2NfZ3VhcmQuaXNf YWN0aXZlID0gZmFsc2U7CiAKIAkvKiBSZW1lbWJlciBtYXN0ZXIncyB2Y2xvY2sgYWZ0ZXIgdGhl IGxhc3QgcmVxdWVzdCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JveC9nYy5jIGIvc3JjL2JveC9nYy5j CmluZGV4IDEyZTY4ZjNkYy4uOTA0NDk2MzY2IDEwMDY0NAotLS0gYS9zcmMvYm94L2djLmMKKysr IGIvc3JjL2JveC9nYy5jCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAj aW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5o PgogCiAjZGVmaW5lIFJCX0NPTVBBQ1QgMQogI2luY2x1ZGUgPHNtYWxsL3JiLmg+CkBAIC02MSw2 ICs2Miw4IEBAIHN0cnVjdCBnY19jb25zdW1lciB7CiAJY2hhciAqbmFtZTsKIAkvKiogVGhlIHZj bG9jayBzaWduYXR1cmUgdHJhY2tlZCBieSB0aGlzIGNvbnN1bWVyLiAqLwogCWludDY0X3Qgc2ln bmF0dXJlOworCS8qKiBSZXBsaWNhIGFzc29jaWF0ZWQgd2l0aCBjb25zdW1lciAoaWYgYW55KS4g Ki8KKwlzdHJ1Y3QgcmVwbGljYSAqcmVwbGljYTsKIH07CiAKIHR5cGVkZWYgcmJfdHJlZShzdHJ1 Y3QgZ2NfY29uc3VtZXIpIGdjX3RyZWVfdDsKQEAgLTEyMywxMCArMTI2LDE4IEBAIGdjX2NvbnN1 bWVyX25ldyhjb25zdCBjaGFyICpuYW1lLCBpbnQ2NF90IHNpZ25hdHVyZSkKIAlyZXR1cm4gY29u c3VtZXI7CiB9CiAKK3ZvaWQKK2djX2NvbnN1bWVyX3NldF9yZXBsaWNhKHN0cnVjdCBnY19jb25z dW1lciAqZ2MsIHN0cnVjdCByZXBsaWNhICpyZXBsaWNhKQoreworCWdjLT5yZXBsaWNhID0gcmVw bGljYTsKK30KKwogLyoqIEZyZWUgYSBjb25zdW1lciBvYmplY3QuICovCiBzdGF0aWMgdm9pZAog Z2NfY29uc3VtZXJfZGVsZXRlKHN0cnVjdCBnY19jb25zdW1lciAqY29uc3VtZXIpCiB7CisJaWYg KGNvbnN1bWVyLT5yZXBsaWNhICE9IE5VTEwpCisJCWNvbnN1bWVyLT5yZXBsaWNhLT5nYyA9IE5V TEw7CiAJZnJlZShjb25zdW1lci0+bmFtZSk7CiAJVFJBU0goY29uc3VtZXIpOwogCWZyZWUoY29u c3VtZXIpOwpAQCAtMjE2LDYgKzIyNyw0NiBAQCBnY19zZXRfY2hlY2twb2ludF9jb3VudChpbnQg Y2hlY2twb2ludF9jb3VudCkKIAlnYy5jaGVja3BvaW50X2NvdW50ID0gY2hlY2twb2ludF9jb3Vu dDsKIH0KIAordm9pZAorZ2NfeGRpcl9jbGVhbl9ub3RpZnkoKQoreworCS8qCisJICogQ29tcGFy ZSB0aGUgY3VycmVudCB0aW1lIHdpdGggdGhlIHRpbWUgb2YgdGhlIGxhc3QgcnVuLgorCSAqIFRo aXMgaXMgbmVlZGVkIGluIGNhc2Ugb2YgbXVsdGlwbGUgZmFpbHVyZXMgdG8gcHJldmVudAorCSAq IGZyb20gZGVsZXRpbmcgYWxsIHJlcGxpY2FzLgorCSAqLworCXN0YXRpYyBpbnQgcHJldl90aW1l ID0gMDsKKwlpbnQgY3VyX3RpbWUgPSB0aW1lKE5VTEwpOworCWlmIChjdXJfdGltZSAtIHByZXZf dGltZSA8IDEpCisJCXJldHVybjsKKwlwcmV2X3RpbWUgPSBjdXJfdGltZTsKKwkvKioKKwkgKiBN YXJrIGNvbnN1bWVyIHdpdGggbGVhc3QgcmVjZW50IHZjbG9jayBhcyAiZGVhZCIgYW5kCisJICog aW52b2tlIGdhcmJhZ2UgY29sbGVjdGlvbi4gSWYgbm90aGluZyB0byBkZWxldGUgZmluZAorCSAq IG5leHQgYWxpdmUgY29uc3VtZXIgZXRjLiBPcmlnaW5hbGx5IGNyZWF0ZWQgZm9yCisJICogY2Fz ZXMgd2l0aCBydW5uaW5nIG91dCBvZiBkaXNrIHNwYWNlIGJlY2F1c2Ugb2YKKwkgKiBkaXNjb25u ZWN0ZWQgcmVwbGljYS4KKwkgKi8KKwlzdHJ1Y3QgZ2NfY29uc3VtZXIgKmxlZnRtb3N0ID0KKwkg ICAgZ2NfdHJlZV9maXJzdCgmZ2MuY29uc3VtZXJzKTsKKwkvKgorCSAqIEV4aXQgaWYgbm8gY29u c3VtZXJzIGxlZnQgb3IgaWYgdGhpcyBjb25zdW1lciBpcworCSAqIG5vdCBhc3NvY2lhdGVkIHdp dGggcmVwbGljYSAoYmFja3VwIGZvciBleGFtcGxlKS4KKwkgKi8KKwlpZiAobGVmdG1vc3QgPT0g TlVMTCB8fCBsZWZ0bW9zdC0+cmVwbGljYSA9PSBOVUxMKQorCQlyZXR1cm47CisJaW50NjRfdCBz aWduYXR1cmUgPSBsZWZ0bW9zdC0+c2lnbmF0dXJlOworCXdoaWxlICh0cnVlKSB7CisJCWdjX2Nv bnN1bWVyX3VucmVnaXN0ZXIobGVmdG1vc3QpOworCQlsZWZ0bW9zdCA9IGdjX3RyZWVfZmlyc3Qo JmdjLmNvbnN1bWVycyk7CisJCWlmIChsZWZ0bW9zdCA9PSBOVUxMIHx8IGxlZnRtb3N0LT5yZXBs aWNhID09IE5VTEwgfHwKKwkJICAgIGxlZnRtb3N0LT5zaWduYXR1cmUgPiBzaWduYXR1cmUpIHsK KwkJCWdjX3J1bigpOworCQkJcmV0dXJuOworCQl9CisJfQorfQorCiBzdHJ1Y3QgZ2NfY29uc3Vt ZXIgKgogZ2NfY29uc3VtZXJfcmVnaXN0ZXIoY29uc3QgY2hhciAqbmFtZSwgaW50NjRfdCBzaWdu YXR1cmUpCiB7CmRpZmYgLS1naXQgYS9zcmMvYm94L2djLmggYi9zcmMvYm94L2djLmgKaW5kZXgg NjM0Y2U2ZDM4Li4xNWQ5NjZmNTQgMTAwNjQ0Ci0tLSBhL3NyYy9ib3gvZ2MuaAorKysgYi9zcmMv Ym94L2djLmgKQEAgLTMxLDkgKzMxLDEyIEBACiAgKiBTVUNIIERBTUFHRS4KICAqLwogCisjaW5j bHVkZSA8c3RkYm9vbC5oPgogI2luY2x1ZGUgPHN0ZGRlZi5oPgogI2luY2x1ZGUgPHN0ZGludC5o PgogCisjaW5jbHVkZSAicmVwbGljYXRpb24uaCIKKwogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMp CiBleHRlcm4gIkMiIHsKICNlbmRpZiAvKiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAqLwpAQCAtODEs NiArODQsMTIgQEAgZ2Nfc2V0X2NoZWNrcG9pbnRfY291bnQoaW50IGNoZWNrcG9pbnRfY291bnQp Owogc3RydWN0IGdjX2NvbnN1bWVyICoKIGdjX2NvbnN1bWVyX3JlZ2lzdGVyKGNvbnN0IGNoYXIg Km5hbWUsIGludDY0X3Qgc2lnbmF0dXJlKTsKIAorLyoqCisgKiBCaW5kIGNvbnN1bWVyIHdpdGgg YXNzb2NpYXRlZCByZXBsaWNhIChpZiBhbnkpLgorICovCit2b2lkCitnY19jb25zdW1lcl9zZXRf cmVwbGljYShzdHJ1Y3QgZ2NfY29uc3VtZXIgKmdjLCBzdHJ1Y3QgcmVwbGljYSAqcmVwbGljYSk7 CisKIC8qKgogICogVW5yZWdpc3RlciBhIGNvbnN1bWVyIGFuZCBpbnZva2UgZ2FyYmFnZSBjb2xs ZWN0aW9uCiAgKiBpZiBuZWVkZWQuCkBAIC04OCw2ICs5NywxMyBAQCBnY19jb25zdW1lcl9yZWdp c3Rlcihjb25zdCBjaGFyICpuYW1lLCBpbnQ2NF90IHNpZ25hdHVyZSk7CiB2b2lkCiBnY19jb25z dW1lcl91bnJlZ2lzdGVyKHN0cnVjdCBnY19jb25zdW1lciAqY29uc3VtZXIpOwogCisvKioKKyAq IE5vdGlmeSBnYyB0byBjbGVhbiB4ZGlyIGJlY2F1c2Ugb2YgcnVubmluZyBvdXQKKyAqIG9mIGRp c2sgc3BhY2UuCisgKi8KK3ZvaWQKK2djX3hkaXJfY2xlYW5fbm90aWZ5KCk7CisKIC8qKgogICog QWR2YW5jZSB0aGUgdmNsb2NrIHNpZ25hdHVyZSB0cmFja2VkIGJ5IGEgY29uc3VtZXIgYW5kCiAg KiBpbnZva2UgZ2FyYmFnZSBjb2xsZWN0aW9uIGlmIG5lZWRlZC4KZGlmZiAtLWdpdCBhL3NyYy9i b3gvcmVsYXkuY2MgYi9zcmMvYm94L3JlbGF5LmNjCmluZGV4IGQyY2VhZjExMC4uYzMxNzc3NWE0 IDEwMDY0NAotLS0gYS9zcmMvYm94L3JlbGF5LmNjCisrKyBiL3NyYy9ib3gvcmVsYXkuY2MKQEAg LTUzNSw2ICs1MzUsNyBAQCByZWxheV9zdWJzY3JpYmUoaW50IGZkLCB1aW50NjRfdCBzeW5jLCBz dHJ1Y3QgcmVwbGljYSAqcmVwbGljYSwKIAkJCXZjbG9ja19zdW0ocmVwbGljYV9jbG9jaykpOwog CQlpZiAocmVwbGljYS0+Z2MgPT0gTlVMTCkKIAkJCWRpYWdfcmFpc2UoKTsKKwkJZ2NfY29uc3Vt ZXJfc2V0X3JlcGxpY2EocmVwbGljYS0+Z2MsIHJlcGxpY2EpOwogCX0KIAogCXN0cnVjdCByZWxh eSByZWxheTsKZGlmZiAtLWdpdCBhL3NyYy9ib3gvd2FsLmNjIGIvc3JjL2JveC93YWwuY2MKaW5k ZXggOTNjMzUwZTFmLi44ZGM5NzNkZTggMTAwNjQ0Ci0tLSBhL3NyYy9ib3gvd2FsLmNjCisrKyBi L3NyYy9ib3gvd2FsLmNjCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2J1cy5oIgogI2lu Y2x1ZGUgImNvaW9fdGFzay5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uLmgiCisjaW5jbHVkZSAi Z2MuaCIKIAogCiBjb25zdCBjaGFyICp3YWxfbW9kZV9TVFJTW10gPSB7ICJub25lIiwgIndyaXRl IiwgImZzeW5jIiwgTlVMTCB9OwpAQCAtNjQsNiArNjUsOCBAQCBzdHJ1Y3Qgd2FsX3RocmVhZCB7 CiAJICogcHJpb3JpdHkgcGlwZSBhbmQgRE9FUyBOT1Qgc3VwcG9ydCB5aWVsZC4KIAkgKi8KIAlz dHJ1Y3QgY3BpcGUgdHhfcHJpb19waXBlOworCS8qKiBSZXR1cm4gcGlwZSBmcm9tICd3YWwnIHRv IHR4JyAqLworCXN0cnVjdCBjcGlwZSB0eF9waXBlOwogfTsKIAogLyoKQEAgLTU4NCw2ICs1ODcs MTMgQEAgd2FsX2Fzc2lnbl9sc24oc3RydWN0IHdhbF93cml0ZXIgKndyaXRlciwgc3RydWN0IHhy b3dfaGVhZGVyICoqcm93LAogCX0KIH0KIAorc3RhdGljIHZvaWQKK2djX3N0YXR1c191cGRhdGUo c3RydWN0IGNtc2cgKm1zZykKK3sKKwlnY194ZGlyX2NsZWFuX25vdGlmeSgpOworCWRlbGV0ZSht c2cpOworfQorCiBzdGF0aWMgdm9pZAogd2FsX3dyaXRlX3RvX2Rpc2soc3RydWN0IGNtc2cgKm1z ZykKIHsKQEAgLTY1NSw2ICs2NjUsMTUgQEAgZG9uZToKIAkJLyogVW50aWwgd2UgY2FuIHBhc3Mg dGhlIGVycm9yIHRvIHR4LCBsb2cgaXQgYW5kIGNsZWFyLiAqLwogCQllcnJvcl9sb2coZXJyb3Ip OwogCQlkaWFnX2NsZWFyKGRpYWdfZ2V0KCkpOworCQlpZiAoZXJybm8gPT0gRU5PU1BDKSB7CisJ CQlzdHJ1Y3QgY21zZyAqbXNnID0KKwkJCSAgICAoc3RydWN0IGNtc2cqKWNhbGxvYygxLCBzaXpl b2Yoc3RydWN0IGNtc2cpKTsKKwkJCXN0YXRpYyBjb25zdCBzdHJ1Y3QgY21zZ19ob3Agcm91dGVb XSA9IHsKKwkJCQl7Z2Nfc3RhdHVzX3VwZGF0ZSwgTlVMTH0KKwkJCX07CisJCQljbXNnX2luaXQo bXNnLCByb3V0ZSk7CisJCQljcGlwZV9wdXNoKCZ3YWxfdGhyZWFkLnR4X3BpcGUsIG1zZyk7CisJ CX0KIAl9CiAJLyoKIAkgKiBXZSBuZWVkIHRvIHN0YXJ0IHJvbGxiYWNrIGZyb20gdGhlIGZpcnN0 IHJlcXVlc3QKQEAgLTY5NSw2ICs3MTQsNyBAQCB3YWxfdGhyZWFkX2YodmFfbGlzdCBhcCkKIAkg KiBldmVuIHdoZW4gdHggZmliZXIgcG9vbCBpcyB1c2VkIHVwIGJ5IG5ldCBtZXNzYWdlcy4KIAkg Ki8KIAljcGlwZV9jcmVhdGUoJndhbF90aHJlYWQudHhfcHJpb19waXBlLCAidHhfcHJpbyIpOwor CWNwaXBlX2NyZWF0ZSgmd2FsX3RocmVhZC50eF9waXBlLCAidHgiKTsKIAogCWNidXNfbG9vcCgm ZW5kcG9pbnQpOwogCkBAIC03MDcsNiArNzI3LDcgQEAgd2FsX3RocmVhZF9mKHZhX2xpc3QgYXAp CiAJCXhsb2dfY2xvc2UoJnZ5X2xvZ193cml0ZXIueGxvZywgZmFsc2UpOwogCiAJY3BpcGVfZGVz dHJveSgmd2FsX3RocmVhZC50eF9wcmlvX3BpcGUpOworCWNwaXBlX2Rlc3Ryb3koJndhbF90aHJl YWQudHhfcGlwZSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9lcnJpbmouaCBi L3NyYy9lcnJpbmouaAppbmRleCA4OTVkOTM4ZDUuLjExZjFiN2ZkYyAxMDA2NDQKLS0tIGEvc3Jj L2Vycmluai5oCisrKyBiL3NyYy9lcnJpbmouaApAQCAtMTEyLDYgKzExMiw3IEBAIHN0cnVjdCBl cnJpbmogewogCV8oRVJSSU5KX0xPR19ST1RBVEUsIEVSUklOSl9CT09MLCB7LmJwYXJhbSA9IGZh bHNlfSkgXAogCV8oRVJSSU5KX1NOQVBfQ09NTUlUX0RFTEFZLCBFUlJJTkpfQk9PTCwgey5icGFy YW0gPSAwfSkgXAogCV8oRVJSSU5KX1NOQVBfV1JJVEVfUk9XX1RJTUVPVVQsIEVSUklOSl9ET1VC TEUsIHsuZHBhcmFtID0gMH0pIFwKKwlfKEVSUklOSl9OT19ESVNLX1NQQUNFLCBFUlJJTkpfQk9P TCwgey5icGFyYW0gPSBmYWxzZX0pIFwKIAogRU5VTTAoZXJyaW5qX2lkLCBFUlJJTkpfTElTVCk7 CiBleHRlcm4gc3RydWN0IGVycmluaiBlcnJpbmpzW107CmRpZmYgLS1naXQgYS9zcmMvZmlvLmMg Yi9zcmMvZmlvLmMKaW5kZXggYjc5ZDNkMDU4Li5jZGVhMTFlODcgMTAwNjQ0Ci0tLSBhL3NyYy9m aW8uYworKysgYi9zcmMvZmlvLmMKQEAgLTI5LDYgKzI5LDcgQEAKICAqIFNVQ0ggREFNQUdFLgog ICovCiAjaW5jbHVkZSAiZmlvLmgiCisjaW5jbHVkZSAiZXJyaW5qLmgiCiAKICNpbmNsdWRlIDxz eXMvdHlwZXMuaD4KIApAQCAtMTQxLDYgKzE0MiwxMiBAQCBmaW9fd3JpdGV2KGludCBmZCwgc3Ry dWN0IGlvdmVjICppb3YsIGludCBpb3ZjbnQpCiAJc3NpemVfdCBud3I7CiByZXN0YXJ0OgogCW53 ciA9IHdyaXRldihmZCwgaW92LCBpb3ZjbnQpOworCS8qIFNpbXVsYXRlIHJ1bm5pbmcgb3V0IG9m IGRpc2sgc3BhY2UgdG8gZm9yY2UgdGhlIGdjIHRvIGNsZWFuIGxvZ3MuICovCisJc3RydWN0IGVy cmluaiAqaW5qID0gZXJyaW5qKEVSUklOSl9OT19ESVNLX1NQQUNFLCBFUlJJTkpfQk9PTCk7CisJ aWYgKGluaiAhPSBOVUxMICYmIGluai0+YnBhcmFtKSB7CisJCWVycm5vID0gRU5PU1BDOworCQlu d3IgPSAtMTsKKwl9CiAJaWYgKG53ciA8IDApIHsKIAkJaWYgKGVycm5vID09IEVJTlRSKSB7CiAJ CQllcnJubyA9IDA7CmRpZmYgLS1naXQgYS90ZXN0L2JveC9lcnJpbmoucmVzdWx0IGIvdGVzdC9i b3gvZXJyaW5qLnJlc3VsdAppbmRleCAyMWE5NDk5NjUuLmEyODY4ODQzNiAxMDA2NDQKLS0tIGEv dGVzdC9ib3gvZXJyaW5qLnJlc3VsdAorKysgYi90ZXN0L2JveC9lcnJpbmoucmVzdWx0CkBAIC01 Niw2ICs1Niw4IEBAIGVycmluai5pbmZvKCkKICAgICBzdGF0ZTogZmFsc2UKICAgRVJSSU5KX1ZZ X1JVTl9XUklURToKICAgICBzdGF0ZTogZmFsc2UKKyAgRVJSSU5KX05PX0RJU0tfU1BBQ0U6Cisg ICAgc3RhdGU6IGZhbHNlCiAgIEVSUklOSl9WWV9MT0dfRkxVU0hfREVMQVk6CiAgICAgc3RhdGU6 IGZhbHNlCiAgIEVSUklOSl9TTkFQX0NPTU1JVF9ERUxBWToKZGlmZiAtLWdpdCBhL3Rlc3QvcmVw bGljYXRpb24vZm9yY2VfZ2Nfb25fZXJyX25vc3BhY2UucmVzdWx0IGIvdGVzdC9yZXBsaWNhdGlv bi9mb3JjZV9nY19vbl9lcnJfbm9zcGFjZS5yZXN1bHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwLi45MDRhMzZkZGMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0L3JlcGxpY2F0 aW9uL2ZvcmNlX2djX29uX2Vycl9ub3NwYWNlLnJlc3VsdApAQCAtMCwwICsxLDEwNyBAQAorZW52 ID0gcmVxdWlyZSgndGVzdF9ydW4nKQorLS0tCisuLi4KK3Rlc3RfcnVuID0gZW52Lm5ldygpCist LS0KKy4uLgorZW5naW5lID0gdGVzdF9ydW46Z2V0X2NmZygnZW5naW5lJykKKy0tLQorLi4uCiti b3guc2NoZW1hLnVzZXIuZ3JhbnQoJ2d1ZXN0JywgJ3JlYWQsd3JpdGUsZXhlY3V0ZScsICd1bml2 ZXJzZScpCistLS0KKy4uLgorcyA9IGJveC5zY2hlbWEuc3BhY2UuY3JlYXRlKCd0ZXN0Jywge2Vu Z2luZSA9IGVuZ2luZX0pOworLS0tCisuLi4KK2luZGV4ID0gczpjcmVhdGVfaW5kZXgoJ3ByaW1h cnknLCB7dHlwZSA9ICd0cmVlJ30pCistLS0KKy4uLgorZXJyaW5qID0gYm94LmVycm9yLmluamVj dGlvbgorLS0tCisuLi4KK2ZpbyA9IHJlcXVpcmUoJ2ZpbycpCistLS0KKy4uLgorYm94LnNjaGVt YS51c2VyLmdyYW50KCdndWVzdCcsICdyZXBsaWNhdGlvbicpCistLS0KKy4uLgordGVzdF9ydW46 Y21kKCJjcmVhdGUgc2VydmVyIHJlcGxpY2Egd2l0aCBycGxfbWFzdGVyPWRlZmF1bHQsIHNjcmlw dD0ncmVwbGljYXRpb24vcmVwbGljYS5sdWEnIikKKy0tLQorLSB0cnVlCisuLi4KK3Rlc3RfcnVu OmNtZCgic3RhcnQgc2VydmVyIHJlcGxpY2EiKQorLS0tCistIHRydWUKKy4uLgordGVzdF9ydW46 Y21kKCJzd2l0Y2ggcmVwbGljYSIpCistLS0KKy0gdHJ1ZQorLi4uCityZXBsID0gYm94LmNmZy5y ZXBsaWNhdGlvbgorLS0tCisuLi4KK2JveC5jZmd7cmVwbGljYXRpb24gPSAiIn0KKy0tLQorLi4u Cit0ZXN0X3J1bjpjbWQoInN3aXRjaCBkZWZhdWx0IikKKy0tLQorLSB0cnVlCisuLi4KK2ZvciBp ID0gMSwgNSBkbyBzOmluc2VydHtpfSBib3guc25hcHNob3QoKSBlbmQKKy0tLQorLi4uCitzOnNl bGVjdCgpCistLS0KKy0gLSBbMV0KKyAgLSBbMl0KKyAgLSBbM10KKyAgLSBbNF0KKyAgLSBbNV0K Ky4uLgorI2Zpby5nbG9iKGZpby5wYXRoam9pbihmaW8uYWJzcGF0aCgiLiIpLCAnbWFzdGVyLyou eGxvZycpKQorLS0tCistIDYKKy4uLgorZXJyaW5qLnNldCgiRVJSSU5KX05PX0RJU0tfU1BBQ0Ui LCB0cnVlKQorLS0tCistIG9rCisuLi4KK2Z1bmN0aW9uIGluc2VydChhKSBzOmluc2VydChhKSBl bmQKKy0tLQorLi4uCitfLCBlcnIgPSBwY2FsbChpbnNlcnQsIHs2fSkKKy0tLQorLi4uCitlcnI6 bWF0Y2goImFpbGVkIHRvIHdyaXRlIikKKy0tLQorLSBhaWxlZCB0byB3cml0ZQorLi4uCistLSBh ZGQgYSBsaXR0bGUgdGltZW91dCBzbyBnYyBjb3VsZCBmaW5pc2ggam9iCityZXF1aXJlKCdmaWJl cicpLnNsZWVwKDAuMDEpCistLS0KKy4uLgorI2Zpby5nbG9iKGZpby5wYXRoam9pbihmaW8uYWJz cGF0aCgiLiIpLCAnbWFzdGVyLyoueGxvZycpKQorLS0tCistIDIKKy4uLgorLS0gY2xlYW51cAor dGVzdF9ydW46Y21kKCJzd2l0Y2ggcmVwbGljYSIpCistLS0KKy0gdHJ1ZQorLi4uCit0ZXN0X3J1 bjpjbWQoInJlc3RhcnQgc2VydmVyIGRlZmF1bHQgd2l0aCBjbGVhbnVwPTEiKQorLS0tCistIHRy dWUKKy4uLgordGVzdF9ydW46Y21kKCJzd2l0Y2ggZGVmYXVsdCIpCistLS0KKy0gdHJ1ZQorLi4u Cit0ZXN0X3J1bjpjbWQoInN0b3Agc2VydmVyIHJlcGxpY2EiKQorLS0tCistIHRydWUKKy4uLgor dGVzdF9ydW46Y21kKCJjbGVhbnVwIHNlcnZlciByZXBsaWNhIikKKy0tLQorLSB0cnVlCisuLi4K ZGlmZiAtLWdpdCBhL3Rlc3QvcmVwbGljYXRpb24vZm9yY2VfZ2Nfb25fZXJyX25vc3BhY2UudGVz dC5sdWEgYi90ZXN0L3JlcGxpY2F0aW9uL2ZvcmNlX2djX29uX2Vycl9ub3NwYWNlLnRlc3QubHVh Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZmVhNGFhNzNiCi0tLSAvZGV2 L251bGwKKysrIGIvdGVzdC9yZXBsaWNhdGlvbi9mb3JjZV9nY19vbl9lcnJfbm9zcGFjZS50ZXN0 Lmx1YQpAQCAtMCwwICsxLDM4IEBACitlbnYgPSByZXF1aXJlKCd0ZXN0X3J1bicpCit0ZXN0X3J1 biA9IGVudi5uZXcoKQorZW5naW5lID0gdGVzdF9ydW46Z2V0X2NmZygnZW5naW5lJykKKworYm94 LnNjaGVtYS51c2VyLmdyYW50KCdndWVzdCcsICdyZWFkLHdyaXRlLGV4ZWN1dGUnLCAndW5pdmVy c2UnKQorCitzID0gYm94LnNjaGVtYS5zcGFjZS5jcmVhdGUoJ3Rlc3QnLCB7ZW5naW5lID0gZW5n aW5lfSk7CitpbmRleCA9IHM6Y3JlYXRlX2luZGV4KCdwcmltYXJ5Jywge3R5cGUgPSAndHJlZSd9 KQorCitlcnJpbmogPSBib3guZXJyb3IuaW5qZWN0aW9uCitmaW8gPSByZXF1aXJlKCdmaW8nKQor Citib3guc2NoZW1hLnVzZXIuZ3JhbnQoJ2d1ZXN0JywgJ3JlcGxpY2F0aW9uJykKK3Rlc3RfcnVu OmNtZCgiY3JlYXRlIHNlcnZlciByZXBsaWNhIHdpdGggcnBsX21hc3Rlcj1kZWZhdWx0LCBzY3Jp cHQ9J3JlcGxpY2F0aW9uL3JlcGxpY2EubHVhJyIpCit0ZXN0X3J1bjpjbWQoInN0YXJ0IHNlcnZl ciByZXBsaWNhIikKKwordGVzdF9ydW46Y21kKCJzd2l0Y2ggcmVwbGljYSIpCityZXBsID0gYm94 LmNmZy5yZXBsaWNhdGlvbgorYm94LmNmZ3tyZXBsaWNhdGlvbiA9ICIifQordGVzdF9ydW46Y21k KCJzd2l0Y2ggZGVmYXVsdCIpCisKK2ZvciBpID0gMSwgNSBkbyBzOmluc2VydHtpfSBib3guc25h cHNob3QoKSBlbmQKK3M6c2VsZWN0KCkKKyNmaW8uZ2xvYihmaW8ucGF0aGpvaW4oZmlvLmFic3Bh dGgoIi4iKSwgJ21hc3Rlci8qLnhsb2cnKSkKK2Vycmluai5zZXQoIkVSUklOSl9OT19ESVNLX1NQ QUNFIiwgdHJ1ZSkKK2Z1bmN0aW9uIGluc2VydChhKSBzOmluc2VydChhKSBlbmQKK18sIGVyciA9 IHBjYWxsKGluc2VydCwgezZ9KQorZXJyOm1hdGNoKCJhaWxlZCB0byB3cml0ZSIpCistLSBhZGQg YSBsaXR0bGUgdGltZW91dCBzbyBnYyBjb3VsZCBmaW5pc2ggam9iCityZXF1aXJlKCdmaWJlcicp LnNsZWVwKDAuMDEpCisjZmlvLmdsb2IoZmlvLnBhdGhqb2luKGZpby5hYnNwYXRoKCIuIiksICdt YXN0ZXIvKi54bG9nJykpCisKKy0tIGNsZWFudXAKK3Rlc3RfcnVuOmNtZCgic3dpdGNoIHJlcGxp Y2EiKQordGVzdF9ydW46Y21kKCJyZXN0YXJ0IHNlcnZlciBkZWZhdWx0IHdpdGggY2xlYW51cD0x IikKK3Rlc3RfcnVuOmNtZCgic3dpdGNoIGRlZmF1bHQiKQordGVzdF9ydW46Y21kKCJzdG9wIHNl cnZlciByZXBsaWNhIikKK3Rlc3RfcnVuOmNtZCgiY2xlYW51cCBzZXJ2ZXIgcmVwbGljYSIpCmRp ZmYgLS1naXQgYS90ZXN0L3JlcGxpY2F0aW9uL3N1aXRlLmluaSBiL3Rlc3QvcmVwbGljYXRpb24v c3VpdGUuaW5pCmluZGV4IGI0ODlhZGQ1OC4uMTcwNmNmNjk3IDEwMDY0NAotLS0gYS90ZXN0L3Jl cGxpY2F0aW9uL3N1aXRlLmluaQorKysgYi90ZXN0L3JlcGxpY2F0aW9uL3N1aXRlLmluaQpAQCAt Myw3ICszLDcgQEAgY29yZSA9IHRhcmFudG9vbAogc2NyaXB0ID0gIG1hc3Rlci5sdWEKIGRlc2Ny aXB0aW9uID0gdGFyYW50b29sL2JveCwgcmVwbGljYXRpb24KIGRpc2FibGVkID0gY29uc2lzdGVu dC50ZXN0Lmx1YQotcmVsZWFzZV9kaXNhYmxlZCA9IGNhdGNoLnRlc3QubHVhIGVycmluai50ZXN0 Lmx1YSBnYy50ZXN0Lmx1YSBiZWZvcmVfcmVwbGFjZS50ZXN0Lmx1YSBxdW9ydW0udGVzdC5sdWEg cmVjb3Zlcl9taXNzaW5nX3hsb2cudGVzdC5sdWEKK3JlbGVhc2VfZGlzYWJsZWQgPSBjYXRjaC50 ZXN0Lmx1YSBlcnJpbmoudGVzdC5sdWEgZm9yY2VfZ2Nfb25fZXJyX25vc3BhY2UudGVzdC5sdWEg Z2MudGVzdC5sdWEgYmVmb3JlX3JlcGxhY2UudGVzdC5sdWEgcXVvcnVtLnRlc3QubHVhIHJlY292 ZXJfbWlzc2luZ194bG9nLnRlc3QubHVhCiBjb25maWcgPSBzdWl0ZS5jZmcKIGx1YV9saWJzID0g bHVhL2Zhc3RfcmVwbGljYS5sdWEKIGxvbmdfcnVuID0gcHJ1bmUudGVzdC5sdWEKLS0gCjIuMTQu MyAoQXBwbGUgR2l0LTk4KQoK ------JBlmLOi2Xuz1N5cKa6wTGNPPZ4ygXfgr-ogjoQRQ8mVHbgITh-1530115915--