From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f322.i.mail.ru (f322.i.mail.ru [217.69.130.180]) (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 67D0046971A for ; Sat, 14 Dec 2019 12:20:29 +0300 (MSK) From: =?UTF-8?B?U2VyZ2V5IE9zdGFuZXZpY2g=?= MIME-Version: 1.0 Date: Sat, 14 Dec 2019 12:20:28 +0300 Reply-To: =?UTF-8?B?U2VyZ2V5IE9zdGFuZXZpY2g=?= Message-ID: <1576315228.492749597@f322.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--0440cd9f3f09404180bb222796eaf72a1576315228" In-Reply-To: References: <20191209201842.GA14366@tarantool.org> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_1/1=5D_tuple=3A_enable_iso?= =?utf-8?q?lated_JSON_updates?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= Cc: =?UTF-8?B?dGFyYW50b29sLXBhdGNoZXM=?= ----ALT--0440cd9f3f09404180bb222796eaf72a1576315228 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 ClRoYW5rcywgTEdUTS4KCkJlc3QgcmVnYXJkcywKU2VyZ29zwqAKClNhdHVyZGF5LCAxNCBEZWNl bWJlciAyMDE5LCAwMjozNCArMDMwMCBmcm9tIFZsYWRpc2xhdiBTaHBpbGV2b3kgIDx2LnNocGls ZXZveUB0YXJhbnRvb2wub3JnPjoKPkhpISBUaGFua3MgZm9yIHRoZSByZXZpZXchCj4KPk9uIDA5 LzEyLzIwMTkgMjE6MTgsIFNlcmdleSBPc3RhbmV2aWNoIHdyb3RlOgo+PiBIaSEgCj4+IAo+PiBU aGFua3MgZm9yIHRoZSBwYXRjaCEKPj4gUGxlYXNlLCBzZWUgNCBjb21tZW50cyBiZWxvdy4KPj4g Cj4+IFJlZ2FyZHMsCj4+IFNlcmdvcwo+PiAKPj4gCj4+PiBkaWZmIC0tZ2l0IGEvc3JjL2JveC92 aW55bC5jIGIvc3JjL2JveC92aW55bC5jCj4+PiBpbmRleCA3NjdlNDAwMDYuLjE1YTEzNmY4MSAx MDA2NDQKPj4+IC0tLSBhL3NyYy9ib3gvdmlueWwuYwo+Pj4gKysrIGIvc3JjL2JveC92aW55bC5j Cj4+PiBAQCAtMjAwNCwxMyArMjAwNCwyNSBAQCByZXF1ZXN0X25vcm1hbGl6ZV9vcHMoc3RydWN0 IHJlcXVlc3QgKnJlcXVlc3QpCj4+PiAgCQlvcHNfZW5kID0gbXBfZW5jb2RlX3N0cihvcHNfZW5k LCBvcF9uYW1lLCBvcF9uYW1lX2xlbik7Cj4+PiAKPj4+ICAJCWludCBmaWVsZF9ubzsKPj4+IC0J CWlmIChtcF90eXBlb2YoKnBvcykgPT0gTVBfSU5UKSB7Cj4+PiArCQljb25zdCBjaGFyICpmaWVs ZF9uYW1lOwo+Pj4gKwkJc3dpdGNoIChtcF90eXBlb2YoKnBvcykpIHsKPj4+ICsJCWNhc2UgTVBf SU5UOgo+Pj4gIAkJCWZpZWxkX25vID0gbXBfZGVjb2RlX2ludCgmcG9zKTsKPj4+ICAJCQlvcHNf ZW5kID0gbXBfZW5jb2RlX2ludChvcHNfZW5kLCBmaWVsZF9ubyk7Cj4+PiAtCQl9IGVsc2Ugewo+ Pj4gKwkJCWJyZWFrOwo+Pj4gKwkJY2FzZSBNUF9VSU5UOgo+Pj4gIAkJCWZpZWxkX25vID0gbXBf ZGVjb2RlX3VpbnQoJnBvcyk7Cj4+PiAgCQkJZmllbGRfbm8gLT0gcmVxdWVzdC0+aW5kZXhfYmFz ZTsKPj4+ICAJCQlvcHNfZW5kID0gbXBfZW5jb2RlX3VpbnQob3BzX2VuZCwgZmllbGRfbm8pOwo+ Pj4gKwkJCWJyZWFrOwo+Pj4gKwkJY2FzZSBNUF9TVFI6Cj4+PiArCQkJZmllbGRfbmFtZSA9IHBv czsKPj4+ICsJCQltcF9uZXh0KCZwb3MpOwo+Pj4gKwkJCW1lbWNweShvcHNfZW5kLCBmaWVsZF9u YW1lLCBwb3MgLSBmaWVsZF9uYW1lKTsKPj4+ICsJCQlvcHNfZW5kICs9IHBvcyAtIGZpZWxkX25h bWU7Cj4+PiArCQkJYnJlYWs7Cj4+IAo+PiBBcmUgeW91IGludGVudGlvbmFsbHkgc2tpcCBlbmNv ZGUvZGVjb2RlIGhlcmU/IElzIGl0IHNhZmUgZW5vdWdoPwo+Cj5tcF9uZXh0KCkgZG9lcyBkZWNv ZGUuIE1lbWNweSBpcyB0aGUgc2FtZSBhcyBlbmNvZGUgaGVyZS4gSnVzdCB3aXRob3V0Cj4naWYn cy4gSXQgaXMgc2FmZS4KPgo+Pj4gZGlmZiAtLWdpdCBhL3NyYy9ib3gveHJvd191cGRhdGUuYyBi L3NyYy9ib3gveHJvd191cGRhdGUuYwo+Pj4gaW5kZXggMTIzZGIwODFhLi5lY2RhMTc1NDQgMTAw NjQ0Cj4+PiAtLS0gYS9zcmMvYm94L3hyb3dfdXBkYXRlLmMKPj4+ICsrKyBiL3NyYy9ib3gveHJv d191cGRhdGUuYwo+Pj4gQEAgLTQxMiw2ICs0MzQsMTUgQEAgeHJvd191cHNlcnRfc3F1YXNoKGNv bnN0IGNoYXIgKmV4cHIxLCBjb25zdCBjaGFyICpleHByMV9lbmQsCj4+PiAgCQkJaWYgKG9wLT5v cGNvZGUgIT0gJysnICYmIG9wLT5vcGNvZGUgIT0gJy0nICYmCj4+PiAgCQkJICAgIG9wLT5vcGNv ZGUgIT0gJz0nKQo+Pj4gIAkJCQlyZXR1cm4gTlVMTDsKPj4+ICsJCQkvKgo+Pj4gKwkJCSAqIE5v dCB0ZXJtaW5hbCBvcGVyYXRpb24gbWVhbnMsIHRoYXQgdGhlCj4+PiArCQkJICogdXBkYXRlIGlz IG5vdCBmbGF0LCBhbmQgc3F1YXNoIHdvdWxkCj4+PiArCQkJICogbmVlZCB0byBidWlsZCBhIHRy ZWUgb2Ygb3BlcmF0aW9ucyB0bwo+Pj4gKwkJCSAqIGZpbmQgbWF0Y2hlcy4gVGhhdCBpcyB0b28g Y29tcGxleCwKPj4+ICsJCQkgKiBzcXVhc2ggaXMgc2tpcHBlZC4KPj4+ICsJCQkgKi8KPj4+ICsJ CQlpZiAoISB4cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9wKSkKPj4+ICsJCQkJcmV0dXJuIE5VTEw7 Cj4+IAo+PiBQbGVhc2UsIG5vIHNwYWNlIGFmdGVyIHVuYXJ5IG9wIC0gYW5kIGZ1cnRoZXIgb24g aW4gdGhlIHBhdGNoIC0KPj4gYWNjb3JkaW5nIHRvICQzLjEgb2YKPj4gIGh0dHBzOi8vd3d3LnRh cmFudG9vbC5pby9lbi9kb2MvMi4yL2Rldl9ndWlkZS9jX3N0eWxlX2d1aWRlLwo+PiAKPgo+T2ss IGhlcmUgaXQgaXM6Cj4KPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+Cj5kaWZmIC0tZ2l0IGEvc3Jj L2JveC94cm93X3VwZGF0ZS5jIGIvc3JjL2JveC94cm93X3VwZGF0ZS5jCj5pbmRleCBlY2RhMTc1 NDQuLjBjZWU1MDAxNyAxMDA2NDQKPi0tLSBhL3NyYy9ib3gveHJvd191cGRhdGUuYwo+KysrIGIv c3JjL2JveC94cm93X3VwZGF0ZS5jCj5AQCAtNDQxLDcgKzQ0MSw3IEBAIHhyb3dfdXBzZXJ0X3Nx dWFzaChjb25zdCBjaGFyICpleHByMSwgY29uc3QgY2hhciAqZXhwcjFfZW5kLAo+wqAJCQkgKiBm aW5kIG1hdGNoZXMuIFRoYXQgaXMgdG9vIGNvbXBsZXgsCj7CoAkJCSAqIHNxdWFzaCBpcyBza2lw cGVkLgo+wqAJCQkgKi8KPi0JCQlpZiAoISB4cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9wKSkKPisJ CQlpZiAoIXhyb3dfdXBkYXRlX29wX2lzX3Rlcm0ob3ApKQo+wqAJCQkJcmV0dXJuIE5VTEw7Cj7C oAkJCWlmIChvcC0+ZmllbGRfbm8gPD0gcHJldl9maWVsZF9ubykKPsKgCQkJCXJldHVybiBOVUxM Owo+ZGlmZiAtLWdpdCBhL3NyYy9ib3gveHJvd191cGRhdGVfYXJyYXkuYyBiL3NyYy9ib3gveHJv d191cGRhdGVfYXJyYXkuYwo+aW5kZXggMWNjNDlmODYxLi41NzQyN2UzOWMgMTAwNjQ0Cj4tLS0g YS9zcmMvYm94L3hyb3dfdXBkYXRlX2FycmF5LmMKPisrKyBiL3NyYy9ib3gveHJvd191cGRhdGVf YXJyYXkuYwo+QEAgLTIyMSw3ICsyMjEsNyBAQCB4cm93X3VwZGF0ZV9vcF9kb19hcnJheV9pbnNl cnQoc3RydWN0IHhyb3dfdXBkYXRlX29wICpvcCwKPsKgewo+wqAJYXNzZXJ0KGZpZWxkLT50eXBl ID09IFhVUERBVEVfQVJSQVkpOwo+wqAJc3RydWN0IHhyb3dfdXBkYXRlX2FycmF5X2l0ZW0gKml0 ZW07Cj4tCWlmICghIHhyb3dfdXBkYXRlX29wX2lzX3Rlcm0ob3ApKSB7Cj4rCWlmICgheHJvd191 cGRhdGVfb3BfaXNfdGVybShvcCkpIHsKPsKgCQlpdGVtID0geHJvd191cGRhdGVfYXJyYXlfZXh0 cmFjdF9pdGVtKGZpZWxkLCBvcCk7Cj7CoAkJaWYgKGl0ZW0gPT0gTlVMTCkKPsKgCQkJcmV0dXJu IC0xOwo+QEAgLTI1Niw3ICsyNTYsNyBAQCB4cm93X3VwZGF0ZV9vcF9kb19hcnJheV9zZXQoc3Ry dWN0IHhyb3dfdXBkYXRlX29wICpvcCwKPsKgCQl4cm93X3VwZGF0ZV9hcnJheV9leHRyYWN0X2l0 ZW0oZmllbGQsIG9wKTsKPsKgCWlmIChpdGVtID09IE5VTEwpCj7CoAkJcmV0dXJuIC0xOwo+LQlp ZiAoISB4cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9wKSkKPisJaWYgKCF4cm93X3VwZGF0ZV9vcF9p c190ZXJtKG9wKSkKPsKgCQlyZXR1cm4geHJvd191cGRhdGVfb3BfZG9fZmllbGRfc2V0KG9wLCAm aXRlbS0+ZmllbGQpOwo+wqAJb3AtPm5ld19maWVsZF9sZW4gPSBvcC0+YXJnLnNldC5sZW5ndGg7 Cj7CoAkvKgo+QEAgLTI3NSw3ICsyNzUsNyBAQCB4cm93X3VwZGF0ZV9vcF9kb19hcnJheV9kZWxl dGUoc3RydWN0IHhyb3dfdXBkYXRlX29wICpvcCwKPsKgCQkJICAgICAgIHN0cnVjdCB4cm93X3Vw ZGF0ZV9maWVsZCAqZmllbGQpCj7CoHsKPsKgCWFzc2VydChmaWVsZC0+dHlwZSA9PSBYVVBEQVRF X0FSUkFZKTsKPi0JaWYgKCEgeHJvd191cGRhdGVfb3BfaXNfdGVybShvcCkpIHsKPisJaWYgKCF4 cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9wKSkgewo+wqAJCXN0cnVjdCB4cm93X3VwZGF0ZV9hcnJh eV9pdGVtICppdGVtID0KPsKgCQkJeHJvd191cGRhdGVfYXJyYXlfZXh0cmFjdF9pdGVtKGZpZWxk LCBvcCk7Cj7CoAkJaWYgKGl0ZW0gPT0gTlVMTCkKPkBAIC0zMDUsNyArMzA1LDcgQEAgeHJvd191 cGRhdGVfb3BfZG9fYXJyYXlfIyNvcF90eXBlKHN0cnVjdCB4cm93X3VwZGF0ZV9vcCAqb3AsCQkJ XAo+wqAJCXhyb3dfdXBkYXRlX2FycmF5X2V4dHJhY3RfaXRlbShmaWVsZCwgb3ApOwkJCVwKPsKg CWlmIChpdGVtID09IE5VTEwpCQkJCQkJCVwKPsKgCQlyZXR1cm4gLTE7CQkJCQkJCVwKPi0JaWYg KCEgeHJvd191cGRhdGVfb3BfaXNfdGVybShvcCkpCQkJCQlcCj4rCWlmICgheHJvd191cGRhdGVf b3BfaXNfdGVybShvcCkpCQkJCQlcCj7CoAkJcmV0dXJuIHhyb3dfdXBkYXRlX29wX2RvX2ZpZWxk XyMjb3BfdHlwZShvcCwgJml0ZW0tPmZpZWxkKTsJXAo+wqAJaWYgKGl0ZW0tPmZpZWxkLnR5cGUg IT0gWFVQREFURV9OT1ApCQkJCQlcCj7CoAkJcmV0dXJuIHhyb3dfdXBkYXRlX2Vycl9kb3VibGUo b3ApOwkJCQlcCj5kaWZmIC0tZ2l0IGEvc3JjL2JveC94cm93X3VwZGF0ZV9iYXIuYyBiL3NyYy9i b3gveHJvd191cGRhdGVfYmFyLmMKPmluZGV4IDczNzY3M2U4YS4uNzI4NWM3ZTJiIDEwMDY0NAo+ LS0tIGEvc3JjL2JveC94cm93X3VwZGF0ZV9iYXIuYwo+KysrIGIvc3JjL2JveC94cm93X3VwZGF0 ZV9iYXIuYwo+QEAgLTU4LDcgKzU4LDcgQEAgeHJvd191cGRhdGVfYmFyX2xvY2F0ZShzdHJ1Y3Qg eHJvd191cGRhdGVfb3AgKm9wLAo+wqAJICogbm9uIGVtcHR5IHBhdGguIFRoaXMgaXMgd2h5IG9w IGlzIGV4cGVjdGVkIHRvIGJlIG5vdAo+wqAJICogdGVybWluYWwuCj7CoAkgKi8KPi0JYXNzZXJ0 KCEgeHJvd191cGRhdGVfb3BfaXNfdGVybShvcCkpOwo+Kwlhc3NlcnQoIXhyb3dfdXBkYXRlX29w X2lzX3Rlcm0ob3ApKTsKPsKgCWludCByYzsKPsKgCWZpZWxkLT50eXBlID0gWFVQREFURV9CQVI7 Cj7CoAlmaWVsZC0+YmFyLm9wID0gb3A7Cj5AQCAtMTEzLDcgKzExMyw3IEBAIHhyb3dfdXBkYXRl X2Jhcl9sb2NhdGVfb3B0KHN0cnVjdCB4cm93X3VwZGF0ZV9vcCAqb3AsCj7CoAkgKiBub24gZW1w dHkgcGF0aC4gVGhpcyBpcyB3aHkgb3AgaXMgZXhwZWN0ZWQgdG8gYmUgbm90Cj7CoAkgKiB0ZXJt aW5hbC4KPsKgCSAqLwo+LQlhc3NlcnQoISB4cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9wKSk7Cj4r CWFzc2VydCgheHJvd191cGRhdGVfb3BfaXNfdGVybShvcCkpOwo+wqAJaW50IHJjOwo+wqAJZmll bGQtPnR5cGUgPSBYVVBEQVRFX0JBUjsKPsKgCWZpZWxkLT5iYXIub3AgPSBvcDsKPkBAIC0yNDUs NyArMjQ1LDcgQEAgeHJvd191cGRhdGVfb3BfZG9fbm9wX3NldChzdHJ1Y3QgeHJvd191cGRhdGVf b3AgKm9wLAo+wqAJaWYgKHhyb3dfdXBkYXRlX2Jhcl9sb2NhdGVfb3B0KG9wLCBmaWVsZCwgJmlz X2ZvdW5kLCAma2V5X2xlbikgIT0gMCkKPsKgCQlyZXR1cm4gLTE7Cj7CoAlvcC0+bmV3X2ZpZWxk X2xlbiA9IG9wLT5hcmcuc2V0Lmxlbmd0aDsKPi0JaWYgKCEgaXNfZm91bmQpIHsKPisJaWYgKCFp c19mb3VuZCkgewo+wqAJCW9wLT5vcGNvZGUgPSAnISc7Cj7CoAkJaWYgKG1wX3R5cGVvZigqZmll bGQtPmJhci5wYXJlbnQpID09IE1QX01BUCkKPsKgCQkJb3AtPm5ld19maWVsZF9sZW4gKz0gbXBf c2l6ZW9mX3N0cihrZXlfbGVuKTsKPgo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4KPj4+IGRpZmYg LS1naXQgYS9zcmMvYm94L3hyb3dfdXBkYXRlX2Jhci5jIGIvc3JjL2JveC94cm93X3VwZGF0ZV9i YXIuYwo+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4+IGluZGV4IDAwMDAwMDAwMC4uNzM3Njcz ZThhCj4+PiAtLS0gL2Rldi9udWxsCj4+PiArKysgYi9zcmMvYm94L3hyb3dfdXBkYXRlX2Jhci5j Cj4+PiArc3RhdGljIGlubGluZSBpbnQKPj4+ICt4cm93X3VwZGF0ZV9iYXJfbG9jYXRlX29wdChz dHJ1Y3QgeHJvd191cGRhdGVfb3AgKm9wLAo+Pj4gKwkJCSAgIHN0cnVjdCB4cm93X3VwZGF0ZV9m aWVsZCAqZmllbGQsIGJvb2wgKmlzX2ZvdW5kLAo+Pj4gKwkJCSAgIGludCAqa2V5X2xlbl9vcl9p bmRleCkKPj4+ICt7Cj4+PiArCS8qCj4+PiArCSAqIEJhciB1cGRhdGUgaXMgbm90IGZsYXQgYnkg ZGVmaW5pdGlvbi4gSXQgYWx3YXlzIGhhcyBhCj4+PiArCSAqIG5vbiBlbXB0eSBwYXRoLiBUaGlz IGlzIHdoeSBvcCBpcyBleHBlY3RlZCB0byBiZSBub3QKPj4+ICsJICogdGVybWluYWwuCj4+PiAr CSAqLwo+Pj4gKwlhc3NlcnQoISB4cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9wKSk7Cj4+PiArCWlu dCByYzsKPj4+ICsJZmllbGQtPnR5cGUgPSBYVVBEQVRFX0JBUjsKPj4+ICsJZmllbGQtPmJhci5v cCA9IG9wOwo+Pj4gKwlmaWVsZC0+YmFyLnBhdGggPSBvcC0+bGV4ZXIuc3JjICsgb3AtPmxleGVy Lm9mZnNldDsKPj4+ICsJZmllbGQtPmJhci5wYXRoX2xlbiA9IG9wLT5sZXhlci5zcmNfbGVuIC0g b3AtPmxleGVyLm9mZnNldDsKPj4+ICsJY29uc3QgY2hhciAqcG9zID0gZmllbGQtPmRhdGE7Cj4+ PiArCXN0cnVjdCBqc29uX3Rva2VuIHRva2VuOwo+Pj4gKwlkbyB7Cj4+PiArCQlyYyA9IGpzb25f bGV4ZXJfbmV4dF90b2tlbigmb3AtPmxleGVyLCAmdG9rZW4pOwo+Pj4gKwkJaWYgKHJjICE9IDAp Cj4+PiArCQkJcmV0dXJuIHhyb3dfdXBkYXRlX2Vycl9iYWRfanNvbihvcCwgcmMpOwo+Pj4gKwo+ Pj4gKwkJc3dpdGNoICh0b2tlbi50eXBlKSB7Cj4+PiArCQljYXNlIEpTT05fVE9LRU5fRU5EOgo+ Pj4gKwkJCSppc19mb3VuZCA9IHRydWU7Cj4+PiArCQkJZmllbGQtPmJhci5wb2ludCA9IHBvczsK Pj4+ICsJCQltcF9uZXh0KCZwb3MpOwo+Pj4gKwkJCWZpZWxkLT5iYXIucG9pbnRfc2l6ZSA9IHBv cyAtIGZpZWxkLT5iYXIucG9pbnQ7Cj4+PiArCQkJcmV0dXJuIDA7Cj4+PiArCQljYXNlIEpTT05f VE9LRU5fTlVNOgo+Pj4gKwkJCWZpZWxkLT5iYXIucGFyZW50ID0gcG9zOwo+Pj4gKwkJCSprZXlf bGVuX29yX2luZGV4ID0gdG9rZW4ubnVtOwo+Pj4gKwkJCXJjID0gdHVwbGVfZmllbGRfZ29fdG9f aW5kZXgoJnBvcywgdG9rZW4ubnVtKTsKPj4+ICsJCQlicmVhazsKPj4+ICsJCWNhc2UgSlNPTl9U T0tFTl9TVFI6Cj4+PiArCQkJZmllbGQtPmJhci5wYXJlbnQgPSBwb3M7Cj4+PiArCQkJKmtleV9s ZW5fb3JfaW5kZXggPSB0b2tlbi5sZW47Cj4+PiArCQkJcmMgPSB0dXBsZV9maWVsZF9nb190b19r ZXkoJnBvcywgdG9rZW4uc3RyLCB0b2tlbi5sZW4pOwo+Pj4gKwkJCWJyZWFrOwo+Pj4gKwkJZGVm YXVsdDoKPj4+ICsJCQlhc3NlcnQodG9rZW4udHlwZSA9PSBKU09OX1RPS0VOX0FOWSk7Cj4+PiAr CQkJcmMgPSBvcC0+bGV4ZXIuc3ltYm9sX2NvdW50IC0gMTsKPj4+ICsJCQlyZXR1cm4geHJvd191 cGRhdGVfZXJyX2JhZF9qc29uKG9wLCByYyk7Cj4+PiArCQl9Cj4+PiArCX0gd2hpbGUgKHJjID09 IDApOwo+Pj4gKwlhc3NlcnQocmMgPT0gLTEpOwo+Pj4gKwkvKiBFbnN1cmUsIHRoYXQgJ3Rva2Vu JyBpcyBuZXh0IHRvIGxhc3QgcGF0aCBwYXJ0LiAqLwo+Pj4gKwlzdHJ1Y3QganNvbl90b2tlbiB0 bXBfdG9rZW47Cj4+PiArCXJjID0ganNvbl9sZXhlcl9uZXh0X3Rva2VuKCZvcC0+bGV4ZXIsICZ0 bXBfdG9rZW4pOwo+Pj4gKwlpZiAocmMgIT0gMCkKPj4+ICsJCXJldHVybiB4cm93X3VwZGF0ZV9l cnJfYmFkX2pzb24ob3AsIHJjKTsKPj4+ICsJaWYgKHRtcF90b2tlbi50eXBlICE9IEpTT05fVE9L RU5fRU5EKQo+Pj4gKwkJcmV0dXJuIHhyb3dfdXBkYXRlX2Vycl9ub19zdWNoX2ZpZWxkKG9wKTsK Pj4+ICsKPj4+ICsJKmlzX2ZvdW5kID0gZmFsc2U7Cj4+PiArCWlmICh0b2tlbi50eXBlID09IEpT T05fVE9LRU5fTlVNKSB7Cj4+PiArCQljb25zdCBjaGFyICp0bXAgPSBmaWVsZC0+YmFyLnBhcmVu dDsKPj4+ICsJCWlmIChtcF90eXBlb2YoKnRtcCkgIT0gTVBfQVJSQVkpIHsKPj4+ICsJCQlyZXR1 cm4geHJvd191cGRhdGVfZXJyKG9wLCAiY2FuIG5vdCBhY2Nlc3MgYnkgaW5kZXggYSAiXAo+Pj4g KwkJCQkJICAgICAgICJub24tYXJyYXkgZmllbGQiKTsKPj4+ICsJCX0KPj4+ICsJCXVpbnQzMl90 IHNpemUgPSBtcF9kZWNvZGVfYXJyYXkoJnRtcCk7Cj4+PiArCQlpZiAoKHVpbnQzMl90KSB0b2tl bi5udW0gPiBzaXplKQo+Pj4gKwkJCXJldHVybiB4cm93X3VwZGF0ZV9lcnJfbm9fc3VjaF9maWVs ZChvcCk7Cj4+IAo+PiBJTUhPIHRoZXJlIHdpbGwgYmUgbW9yZSBpbmZvcm1hdGl2ZSB0byBtZW50 aW9uIHRoZSBhcnJheSBhbmQgYW4gaW5kZXgKPj4gdGhhdCBpcyBvdXQgb2YgYm91bmRzLgo+PiAK Pgo+V2VsbCwgeHJvd191cGRhdGVfZXJyX25vX3N1Y2hfZmllbGQoKSBkb2VzIGl0LiBJdCBhZGRz IHRoZSB3aG9sZQo+cGF0aCB0byB0aGUgZXJyb3IgbWVzc2FnZS4gU28gYSB1c2VyIHdpbGwgc2Vl IHdoYXQgYSBwYXRoIGNhdXNlZAo+dGhlIHByb2JsZW0uCj4KPj4+ICsJCS8qCj4+PiArCQkgKiBU aGUgdXBkYXRlZCBwb2ludCBpcyBpbiBhbiBhcnJheSwgaXRzIHBvc2l0aW9uCj4+PiArCQkgKiB3 YXMgbm90IGZvdW5kLCBhbmQgaXRzIGluZGV4IGlzIDw9IHNpemUuIFRoZQo+Pj4gKwkJICogb25s eSB3YXkgaG93IGNhbiB0aGF0IGhhcHBlbiAtIHRoZSB1cGRhdGUgdHJpZXMKPj4+ICsJCSAqIHRv IGFwcGVuZCBhIG5ldyBhcnJheSBlbGVtZW50LiBUaGUgZm9sbG93aW5nCj4+PiArCQkgKiBjb2Rl IHRyaWVzIHRvIGZpbmQgdGhlIGFycmF5J3MgZW5kLgo+Pj4gKwkJICovCj4+PiArCQlhc3NlcnQo KHVpbnQzMl90KSB0b2tlbi5udW0gPT0gc2l6ZSk7Cj4+PiArCQlpZiAoZmllbGQtPmJhci5wYXJl bnQgPT0gZmllbGQtPmRhdGEpIHsKPj4+ICsJCQkvKgo+Pj4gKwkJCSAqIE9wdGltaXphdGlvbiBm b3IgdGhlIGNhc2Ugd2hlbiB0aGUgcGF0aAo+Pj4gKwkJCSAqIGlzIHNob3J0LiBTbyBwYXJlbnQg b2YgdGhlIHVwZGF0ZWQKPj4+ICsJCQkgKiBwb2ludCBpcyB0aGUgZmllbGQgaXRzZWxmLiBJdCBh bGxvd3MKPj4+ICsJCQkgKiBub3QgdG8gZGVjb2RlIGFueXRoaW5nIGF0IGFsbC4gSXQgaXMKPj4+ ICsJCQkgKiB3b3J0aCBkb2luZywgc2luY2UgdGhlIHBhdGhzIGFyZQo+Pj4gKwkJCSAqIHVzdWFs bHkgc2hvcnQuCj4+PiArCQkJICovCj4+PiArCQkJZmllbGQtPmJhci5wb2ludCA9IGZpZWxkLT5k YXRhICsgZmllbGQtPnNpemU7Cj4+PiArCQl9IGVsc2Ugewo+Pj4gKwkJCWZpZWxkLT5iYXIucG9p bnQgPSBmaWVsZC0+YmFyLnBhcmVudDsKPj4+ICsJCQltcF9uZXh0KCZmaWVsZC0+YmFyLnBvaW50 KTsKPj4+ICsJCX0KPj4+ICsJCWZpZWxkLT5iYXIucG9pbnRfc2l6ZSA9IDA7Cj4+PiArCX0gZWxz ZSB7Cj4+PiArCQlhc3NlcnQodG9rZW4udHlwZSA9PSBKU09OX1RPS0VOX1NUUik7Cj4+PiArCQlm aWVsZC0+YmFyLm5ld19rZXkgPSB0b2tlbi5zdHI7Cj4+PiArCQlmaWVsZC0+YmFyLm5ld19rZXlf bGVuID0gdG9rZW4ubGVuOwo+Pj4gKwkJaWYgKG1wX3R5cGVvZigqZmllbGQtPmJhci5wYXJlbnQp ICE9IE1QX01BUCkgewo+Pj4gKwkJCXJldHVybiB4cm93X3VwZGF0ZV9lcnIob3AsICJjYW4gbm90 IGFjY2VzcyBieSBrZXkgYSAiXAo+Pj4gKwkJCQkJICAgICAgICJub24tbWFwIGZpZWxkIik7Cj4+ PiArCQl9Cj4+PiArCX0KPj4+ICsJcmV0dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4gKy8qKgo+Pj4g KyAqIE5vcCBmaWVsZHMgYXJlIHRob3NlIHdoaWNoIGFyZSBub3QgdXBkYXRlZC4gQW5kIHdoZW4g dGhleQo+Pj4gKyAqIHJlY2VpdmUgYW4gdXBkYXRlIHZpYSBvbmUgb2YgeHJvd191cGRhdGVfb3Bf ZG9fbm9wXyogZnVuY3Rpb25zLAo+Pj4gKyAqIGl0IG1lYW5zLCB0aGF0IHRoZXJlIGlzIGEgbm9u IHRlcm1pbmFsIHBhdGggZGlnZ2luZyBpbnNpZGUgdGhpcwo+Pj4gKyAqIG5vdCB1cGRhdGVkIGZp ZWxkLiBJdCB0dXJucyBub3AgZmllbGQgaW50byBhIGJhciBmaWVsZC4gSG93Cj4+PiArICogZXhh Y3RseSAtIGRlcGVuZHMgb24gYSBjb25jcmV0ZSBvcGVyYXRpb24uCj4+PiArICovCj4+PiArCj4+ PiAraW50Cj4+PiAreHJvd191cGRhdGVfb3BfZG9fbm9wX2luc2VydChzdHJ1Y3QgeHJvd191cGRh dGVfb3AgKm9wLAo+Pj4gKwkJCSAgICAgc3RydWN0IHhyb3dfdXBkYXRlX2ZpZWxkICpmaWVsZCkK Pj4+ICt7Cj4+PiArCWFzc2VydChvcC0+b3Bjb2RlID09ICchJyk7Cj4+PiArCWFzc2VydChmaWVs ZC0+dHlwZSA9PSBYVVBEQVRFX05PUCk7Cj4+IAo+PiBIbW0uIERvIHlvdSBleHBlY3QgdG8gaGFu ZGxlIGFsbCBwb3NzaWJsZSBjYXNlcyBpbiBkZWJ1ZyBtb2RlPyAKPj4gT3RoZXJ3aXNlIGhlcmUg c2hvdWxkIGJlIHNvbWUgc29ydCBvZiBnYWNlZnVsIGZhaWwgdG8gbWFrZSBwcm9kIG1vcmUKPj4g c3RhYmxlLgo+PiAKPgo+SW4gVGFyYW50b29sIHdlIHVzdWFsbHkgcmVseSBvbiB0aGUgdGVzdHMg YW5kIGRlYnVnIG1vZGUuIENvbmNyZXRlbHkKPnRoaXMgY2FzZSBJIGNvdmVyZWQgd2l0aCB0ZXN0 cyBvbiAxMDAlIG5vdCBpbmNsdWRpbmcgT09NICh3ZSBjYW4ndAo+dGVzdCBtYWxsb2MgZmFpbHVy ZXMsIGJhc2ljYWxseSkuIFRoaXMgaXMgZG9uZSB0byBub3Qgc2xvd2Rvd24gcmVsZWFzZQo+YnVp bGQgd2l0aCBuZXZlciBwYXNzaW5nIGNoZWNrcyBzdWNoIGFzIHRoaXMuIFJlbW92YWwgb2YgYXNz ZXJ0aW9uCj5jaGVja3MgZnJvbSByZWxlYXNlIGdpdmVzIHZlcnkgc2lnbmlmaWNhbnQgcGVyZiBp bXBhY3QuIEhvd2V2ZXIgaW4gc29tZQo+cGxhY2VzIHdoaWNoIGFyZSBub3QgaG90IHBhdGhzIHRo ZXJlIGlzIGEgdGhpbmcgcmVsYXRlZCB0byB3aGF0IHlvdQo+bWVhbjogIGh0dHBzOi8vZ2l0aHVi LmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy8yNTcxCg== ----ALT--0440cd9f3f09404180bb222796eaf72a1576315228 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXYgaWQ9ImNvbXBvc2VXZWJWaWV3X2VkaXRhYmxlX2NvbnRlbnQiIGRh dGEtbWFpbHJ1YXBwLWNvbXBvc2UtaWQ9ImNvbXBvc2VXZWJWaWV3X2VkaXRhYmxlX2NvbnRlbnQi IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+PGRpdj5UaGFua3MsIExHVE0uPC9kaXY+PGRpdj48 YnI+PC9kaXY+PGRpdiBpZD0ibWFpbC1hcHAtYXV0by1zaWduYXR1cmUiPgoKQmVzdCByZWdhcmRz LDxkaXY+U2VyZ29zJm5ic3A7PC9kaXY+CjwvZGl2Pjxicj48YnI+U2F0dXJkYXksIDE0IERlY2Vt YmVyIDIwMTksIDAyOjM0ICswMzAwIGZyb20gVmxhZGlzbGF2IFNocGlsZXZveSAgJmx0O3Yuc2hw aWxldm95QHRhcmFudG9vbC5vcmcmZ3Q7Ojxicj48ZGl2IGlkPSJjb21wb3NlV2ViVmlld19wcmV2 aW91c2VfY29udGVudCIgZGF0YS1tYWlscnVhcHAtY29tcG9zZS1pZD0iY29tcG9zZVdlYlZpZXdf cHJldmlvdXNlX2NvbnRlbnQiPjxibG9ja3F1b3RlIGlkPSJtYWlsLWFwcC1hdXRvLXF1b3RlIiBz dHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBi b3JkZXItbGVmdC1jb2xvcjogcmdiKDExLCAxMDIsIDI0OSk7IG1hcmdpbjogMTBweCAwcHggMTBw eCA1cHg7IHBhZGRpbmc6IDBweCAwcHggMHB4IDEwcHg7IGRpc3BsYXk6IGluaGVyaXQ7IiBkYXRh LWRhcmtvc2hhLWlkPSIxOjMiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyIg ZGF0YS1kYXJrb3NoYS1pZD0iMTo0IiBzdHlsZT0iIj4KCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIg ZGF0YS1kYXJrb3NoYS1pZD0iMTo1IiBzdHlsZT0iIj48L3N0eWxlPgogCTxkaXYgZGF0YS1kYXJr b3NoYS1pZD0iMTo2IiBzdHlsZT0iIj4KCQk8YmFzZSB0YXJnZXQ9Il9zZWxmIiBocmVmPSJodHRw czovL2UubWFpbC5ydS8iIGRhdGEtZGFya29zaGEtaWQ9IjE6NyIgc3R5bGU9IiI+CgkJCiAgICAg ICAgICAgIDxkaXYgaWQ9InN0eWxlXzE1NzYyODAwNjcwNDA0MTM5NzMyX0JPRFkiIGRhdGEtZGFy a29zaGEtaWQ9IjE6OCIgc3R5bGU9IiI+SGkhIFRoYW5rcyBmb3IgdGhlIHJldmlldyE8YnIgZGF0 YS1kYXJrb3NoYS1pZD0iMTo5IiBzdHlsZT0iIj4KPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTAi IHN0eWxlPSIiPgpPbiAwOS8xMi8yMDE5IDIxOjE4LCBTZXJnZXkgT3N0YW5ldmljaCB3cm90ZTo8 YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxMSIgc3R5bGU9IiI+CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZndDsgSGkhIDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjEyIiBzdHlsZT0i Ij4KJmd0OyA8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxMyIgc3R5bGU9IiI+CiZndDsgVGhhbmtz IGZvciB0aGUgcGF0Y2ghPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTQiIHN0eWxlPSIiPgomZ3Q7 IFBsZWFzZSwgc2VlIDQgY29tbWVudHMgYmVsb3cuPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTUi IHN0eWxlPSIiPgomZ3Q7IDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE2IiBzdHlsZT0iIj4KJmd0 OyBSZWdhcmRzLDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE3IiBzdHlsZT0iIj4KJmd0OyBTZXJn b3M8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxOCIgc3R5bGU9IiI+CiZndDsgPGJyIGRhdGEtZGFy a29zaGEtaWQ9IjE6MTkiIHN0eWxlPSIiPgomZ3Q7IDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIw IiBzdHlsZT0iIj4KJmd0OyZndDsgZGlmZiAtLWdpdCBhL3NyYy9ib3gvdmlueWwuYyBiL3NyYy9i b3gvdmlueWwuYzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIxIiBzdHlsZT0iIj4KJmd0OyZndDsg aW5kZXggNzY3ZTQwMDA2Li4xNWExMzZmODEgMTAwNjQ0PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6 MjIiIHN0eWxlPSIiPgomZ3Q7Jmd0OyAtLS0gYS9zcmMvYm94L3ZpbnlsLmM8YnIgZGF0YS1kYXJr b3NoYS1pZD0iMToyMyIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsrKyBiL3NyYy9ib3gvdmlueWwuYzxi ciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI0IiBzdHlsZT0iIj4KJmd0OyZndDsgQEAgLTIwMDQsMTMg KzIwMDQsMjUgQEAgcmVxdWVzdF9ub3JtYWxpemVfb3BzKHN0cnVjdCByZXF1ZXN0ICpyZXF1ZXN0 KTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI1IiBzdHlsZT0iIj4KJmd0OyZndDsgIAkJb3BzX2Vu ZCA9IG1wX2VuY29kZV9zdHIob3BzX2VuZCwgb3BfbmFtZSwgb3BfbmFtZV9sZW4pOzxiciBkYXRh LWRhcmtvc2hhLWlkPSIxOjI2IiBzdHlsZT0iIj4KJmd0OyZndDsgIDxiciBkYXRhLWRhcmtvc2hh LWlkPSIxOjI3IiBzdHlsZT0iIj4KJmd0OyZndDsgIAkJaW50IGZpZWxkX25vOzxiciBkYXRhLWRh cmtvc2hhLWlkPSIxOjI4IiBzdHlsZT0iIj4KJmd0OyZndDsgLQkJaWYgKG1wX3R5cGVvZigqcG9z KSA9PSBNUF9JTlQpIHs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyOSIgc3R5bGU9IiI+CiZndDsm Z3Q7ICsJCWNvbnN0IGNoYXIgKmZpZWxkX25hbWU7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MzAi IHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQlzd2l0Y2ggKG1wX3R5cGVvZigqcG9zKSkgezxiciBkYXRh LWRhcmtvc2hhLWlkPSIxOjMxIiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJY2FzZSBNUF9JTlQ6PGJy IGRhdGEtZGFya29zaGEtaWQ9IjE6MzIiIHN0eWxlPSIiPgomZ3Q7Jmd0OyAgCQkJZmllbGRfbm8g PSBtcF9kZWNvZGVfaW50KCZhbXA7cG9zKTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTozMyIgc3R5 bGU9IiI+CiZndDsmZ3Q7ICAJCQlvcHNfZW5kID0gbXBfZW5jb2RlX2ludChvcHNfZW5kLCBmaWVs ZF9ubyk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MzQiIHN0eWxlPSIiPgomZ3Q7Jmd0OyAtCQl9 IGVsc2UgezxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjM1IiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJ CWJyZWFrOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjM2IiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJ Y2FzZSBNUF9VSU5UOjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjM3IiBzdHlsZT0iIj4KJmd0OyZn dDsgIAkJCWZpZWxkX25vID0gbXBfZGVjb2RlX3VpbnQoJmFtcDtwb3MpOzxiciBkYXRhLWRhcmtv c2hhLWlkPSIxOjM4IiBzdHlsZT0iIj4KJmd0OyZndDsgIAkJCWZpZWxkX25vIC09IHJlcXVlc3Qt Jmd0O2luZGV4X2Jhc2U7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MzkiIHN0eWxlPSIiPgomZ3Q7 Jmd0OyAgCQkJb3BzX2VuZCA9IG1wX2VuY29kZV91aW50KG9wc19lbmQsIGZpZWxkX25vKTs8YnIg ZGF0YS1kYXJrb3NoYS1pZD0iMTo0MCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQlicmVhazs8YnIg ZGF0YS1kYXJrb3NoYS1pZD0iMTo0MSIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCWNhc2UgTVBfU1RS OjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjQyIiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJCWZpZWxk X25hbWUgPSBwb3M7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NDMiIHN0eWxlPSIiPgomZ3Q7Jmd0 OyArCQkJbXBfbmV4dCgmYW1wO3Bvcyk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NDQiIHN0eWxl PSIiPgomZ3Q7Jmd0OyArCQkJbWVtY3B5KG9wc19lbmQsIGZpZWxkX25hbWUsIHBvcyAtIGZpZWxk X25hbWUpOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjQ1IiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJ CW9wc19lbmQgKz0gcG9zIC0gZmllbGRfbmFtZTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo0NiIg c3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQlicmVhazs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo0NyIg c3R5bGU9IiI+CiZndDsgPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NDgiIHN0eWxlPSIiPgomZ3Q7 IEFyZSB5b3UgaW50ZW50aW9uYWxseSBza2lwIGVuY29kZS9kZWNvZGUgaGVyZT8gSXMgaXQgc2Fm ZSBlbm91Z2g/PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NDkiIHN0eWxlPSIiPgogICAgICA8YnIg ZGF0YS1kYXJrb3NoYS1pZD0iMTo1MCIgc3R5bGU9IiI+Cm1wX25leHQoKSBkb2VzIGRlY29kZS4g TWVtY3B5IGlzIHRoZSBzYW1lIGFzIGVuY29kZSBoZXJlLiBKdXN0IHdpdGhvdXQ8YnIgZGF0YS1k YXJrb3NoYS1pZD0iMTo1MSIgc3R5bGU9IiI+CidpZidzLiBJdCBpcyBzYWZlLjxiciBkYXRhLWRh cmtvc2hhLWlkPSIxOjUyIiBzdHlsZT0iIj4KPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NTMiIHN0 eWxlPSIiPgomZ3Q7Jmd0OyBkaWZmIC0tZ2l0IGEvc3JjL2JveC94cm93X3VwZGF0ZS5jIGIvc3Jj L2JveC94cm93X3VwZGF0ZS5jPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NTQiIHN0eWxlPSIiPgom Z3Q7Jmd0OyBpbmRleCAxMjNkYjA4MWEuLmVjZGExNzU0NCAxMDA2NDQ8YnIgZGF0YS1kYXJrb3No YS1pZD0iMTo1NSIgc3R5bGU9IiI+CiZndDsmZ3Q7IC0tLSBhL3NyYy9ib3gveHJvd191cGRhdGUu YzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjU2IiBzdHlsZT0iIj4KJmd0OyZndDsgKysrIGIvc3Jj L2JveC94cm93X3VwZGF0ZS5jPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NTciIHN0eWxlPSIiPgom Z3Q7Jmd0OyBAQCAtNDEyLDYgKzQzNCwxNSBAQCB4cm93X3Vwc2VydF9zcXVhc2goY29uc3QgY2hh ciAqZXhwcjEsIGNvbnN0IGNoYXIgKmV4cHIxX2VuZCw8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo1 OCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICAJCQlpZiAob3AtJmd0O29wY29kZSAhPSAnKycgJmFtcDsm YW1wOyBvcC0mZ3Q7b3Bjb2RlICE9ICctJyAmYW1wOyZhbXA7PGJyIGRhdGEtZGFya29zaGEtaWQ9 IjE6NTkiIHN0eWxlPSIiPgomZ3Q7Jmd0OyAgCQkJICAgIG9wLSZndDtvcGNvZGUgIT0gJz0nKTxi ciBkYXRhLWRhcmtvc2hhLWlkPSIxOjYwIiBzdHlsZT0iIj4KJmd0OyZndDsgIAkJCQlyZXR1cm4g TlVMTDs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo2MSIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQkv KjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjYyIiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJCSAqIE5v dCB0ZXJtaW5hbCBvcGVyYXRpb24gbWVhbnMsIHRoYXQgdGhlPGJyIGRhdGEtZGFya29zaGEtaWQ9 IjE6NjMiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQkJICogdXBkYXRlIGlzIG5vdCBmbGF0LCBhbmQg c3F1YXNoIHdvdWxkPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NjQiIHN0eWxlPSIiPgomZ3Q7Jmd0 OyArCQkJICogbmVlZCB0byBidWlsZCBhIHRyZWUgb2Ygb3BlcmF0aW9ucyB0bzxiciBkYXRhLWRh cmtvc2hhLWlkPSIxOjY1IiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJCSAqIGZpbmQgbWF0Y2hlcy4g VGhhdCBpcyB0b28gY29tcGxleCw8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo2NiIgc3R5bGU9IiI+ CiZndDsmZ3Q7ICsJCQkgKiBzcXVhc2ggaXMgc2tpcHBlZC48YnIgZGF0YS1kYXJrb3NoYS1pZD0i MTo2NyIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQkgKi88YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo2 OCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQlpZiAoISB4cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9w KSk8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo2OSIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQkJcmV0 dXJuIE5VTEw7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NzAiIHN0eWxlPSIiPgomZ3Q7IDxiciBk YXRhLWRhcmtvc2hhLWlkPSIxOjcxIiBzdHlsZT0iIj4KJmd0OyBQbGVhc2UsIG5vIHNwYWNlIGFm dGVyIHVuYXJ5IG9wIC0gYW5kIGZ1cnRoZXIgb24gaW4gdGhlIHBhdGNoIC08YnIgZGF0YS1kYXJr b3NoYS1pZD0iMTo3MiIgc3R5bGU9IiI+CiZndDsgYWNjb3JkaW5nIHRvICQzLjEgb2Y8YnIgZGF0 YS1kYXJrb3NoYS1pZD0iMTo3MyIgc3R5bGU9IiI+CiZndDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cu dGFyYW50b29sLmlvL2VuL2RvYy8yLjIvZGV2X2d1aWRlL2Nfc3R5bGVfZ3VpZGUvIiB0YXJnZXQ9 Il9ibGFuayIgZGF0YS1kYXJrb3NoYS1pZD0iMTo3NCIgc3R5bGU9IiI+aHR0cHM6Ly93d3cudGFy YW50b29sLmlvL2VuL2RvYy8yLjIvZGV2X2d1aWRlL2Nfc3R5bGVfZ3VpZGUvPC9hPjxiciBkYXRh LWRhcmtvc2hhLWlkPSIxOjc1IiBzdHlsZT0iIj4KJmd0OyA8YnIgZGF0YS1kYXJrb3NoYS1pZD0i MTo3NiIgc3R5bGU9IiI+CjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjc3IiBzdHlsZT0iIj4KT2ss IGhlcmUgaXQgaXM6PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NzgiIHN0eWxlPSIiPgo8YnIgZGF0 YS1kYXJrb3NoYS1pZD0iMTo3OSIgc3R5bGU9IiI+Cj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PTxiciBk YXRhLWRhcmtvc2hhLWlkPSIxOjgwIiBzdHlsZT0iIj4KPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6 ODEiIHN0eWxlPSIiPgpkaWZmIC0tZ2l0IGEvc3JjL2JveC94cm93X3VwZGF0ZS5jIGIvc3JjL2Jv eC94cm93X3VwZGF0ZS5jPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6ODIiIHN0eWxlPSIiPgppbmRl eCBlY2RhMTc1NDQuLjBjZWU1MDAxNyAxMDA2NDQ8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo4MyIg c3R5bGU9IiI+Ci0tLSBhL3NyYy9ib3gveHJvd191cGRhdGUuYzxiciBkYXRhLWRhcmtvc2hhLWlk PSIxOjg0IiBzdHlsZT0iIj4KKysrIGIvc3JjL2JveC94cm93X3VwZGF0ZS5jPGJyIGRhdGEtZGFy a29zaGEtaWQ9IjE6ODUiIHN0eWxlPSIiPgpAQCAtNDQxLDcgKzQ0MSw3IEBAIHhyb3dfdXBzZXJ0 X3NxdWFzaChjb25zdCBjaGFyICpleHByMSwgY29uc3QgY2hhciAqZXhwcjFfZW5kLDxiciBkYXRh LWRhcmtvc2hhLWlkPSIxOjg2IiBzdHlsZT0iIj4KJm5ic3A7CQkJICogZmluZCBtYXRjaGVzLiBU aGF0IGlzIHRvbyBjb21wbGV4LDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjg3IiBzdHlsZT0iIj4K Jm5ic3A7CQkJICogc3F1YXNoIGlzIHNraXBwZWQuPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6ODgi IHN0eWxlPSIiPgombmJzcDsJCQkgKi88YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo4OSIgc3R5bGU9 IiI+Ci0JCQlpZiAoISB4cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9wKSk8YnIgZGF0YS1kYXJrb3No YS1pZD0iMTo5MCIgc3R5bGU9IiI+CisJCQlpZiAoIXhyb3dfdXBkYXRlX29wX2lzX3Rlcm0ob3Ap KTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjkxIiBzdHlsZT0iIj4KJm5ic3A7CQkJCXJldHVybiBO VUxMOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjkyIiBzdHlsZT0iIj4KJm5ic3A7CQkJaWYgKG9w LSZndDtmaWVsZF9ubyAmbHQ7PSBwcmV2X2ZpZWxkX25vKTxiciBkYXRhLWRhcmtvc2hhLWlkPSIx OjkzIiBzdHlsZT0iIj4KJm5ic3A7CQkJCXJldHVybiBOVUxMOzxiciBkYXRhLWRhcmtvc2hhLWlk PSIxOjk0IiBzdHlsZT0iIj4KZGlmZiAtLWdpdCBhL3NyYy9ib3gveHJvd191cGRhdGVfYXJyYXku YyBiL3NyYy9ib3gveHJvd191cGRhdGVfYXJyYXkuYzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjk1 IiBzdHlsZT0iIj4KaW5kZXggMWNjNDlmODYxLi41NzQyN2UzOWMgMTAwNjQ0PGJyIGRhdGEtZGFy a29zaGEtaWQ9IjE6OTYiIHN0eWxlPSIiPgotLS0gYS9zcmMvYm94L3hyb3dfdXBkYXRlX2FycmF5 LmM8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo5NyIgc3R5bGU9IiI+CisrKyBiL3NyYy9ib3gveHJv d191cGRhdGVfYXJyYXkuYzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjk4IiBzdHlsZT0iIj4KQEAg LTIyMSw3ICsyMjEsNyBAQCB4cm93X3VwZGF0ZV9vcF9kb19hcnJheV9pbnNlcnQoc3RydWN0IHhy b3dfdXBkYXRlX29wICpvcCw8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo5OSIgc3R5bGU9IiI+CiZu YnNwO3s8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxMDAiIHN0eWxlPSIiPgombmJzcDsJYXNzZXJ0 KGZpZWxkLSZndDt0eXBlID09IFhVUERBVEVfQVJSQVkpOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIx OjEwMSIgc3R5bGU9IiI+CiZuYnNwOwlzdHJ1Y3QgeHJvd191cGRhdGVfYXJyYXlfaXRlbSAqaXRl bTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxMDIiIHN0eWxlPSIiPgotCWlmICghIHhyb3dfdXBk YXRlX29wX2lzX3Rlcm0ob3ApKSB7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTAzIiBzdHlsZT0i Ij4KKwlpZiAoIXhyb3dfdXBkYXRlX29wX2lzX3Rlcm0ob3ApKSB7PGJyIGRhdGEtZGFya29zaGEt aWQ9IjE6MTA0IiBzdHlsZT0iIj4KJm5ic3A7CQlpdGVtID0geHJvd191cGRhdGVfYXJyYXlfZXh0 cmFjdF9pdGVtKGZpZWxkLCBvcCk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTA1IiBzdHlsZT0i Ij4KJm5ic3A7CQlpZiAoaXRlbSA9PSBOVUxMKTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjEwNiIg c3R5bGU9IiI+CiZuYnNwOwkJCXJldHVybiAtMTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxMDci IHN0eWxlPSIiPgpAQCAtMjU2LDcgKzI1Niw3IEBAIHhyb3dfdXBkYXRlX29wX2RvX2FycmF5X3Nl dChzdHJ1Y3QgeHJvd191cGRhdGVfb3AgKm9wLDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjEwOCIg c3R5bGU9IiI+CiZuYnNwOwkJeHJvd191cGRhdGVfYXJyYXlfZXh0cmFjdF9pdGVtKGZpZWxkLCBv cCk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTA5IiBzdHlsZT0iIj4KJm5ic3A7CWlmIChpdGVt ID09IE5VTEwpPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTEwIiBzdHlsZT0iIj4KJm5ic3A7CQly ZXR1cm4gLTE7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTExIiBzdHlsZT0iIj4KLQlpZiAoISB4 cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9wKSk8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxMTIiIHN0 eWxlPSIiPgorCWlmICgheHJvd191cGRhdGVfb3BfaXNfdGVybShvcCkpPGJyIGRhdGEtZGFya29z aGEtaWQ9IjE6MTEzIiBzdHlsZT0iIj4KJm5ic3A7CQlyZXR1cm4geHJvd191cGRhdGVfb3BfZG9f ZmllbGRfc2V0KG9wLCAmYW1wO2l0ZW0tJmd0O2ZpZWxkKTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0i MToxMTQiIHN0eWxlPSIiPgombmJzcDsJb3AtJmd0O25ld19maWVsZF9sZW4gPSBvcC0mZ3Q7YXJn LnNldC5sZW5ndGg7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTE1IiBzdHlsZT0iIj4KJm5ic3A7 CS8qPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTE2IiBzdHlsZT0iIj4KQEAgLTI3NSw3ICsyNzUs NyBAQCB4cm93X3VwZGF0ZV9vcF9kb19hcnJheV9kZWxldGUoc3RydWN0IHhyb3dfdXBkYXRlX29w ICpvcCw8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxMTciIHN0eWxlPSIiPgombmJzcDsJCQkgICAg ICAgc3RydWN0IHhyb3dfdXBkYXRlX2ZpZWxkICpmaWVsZCk8YnIgZGF0YS1kYXJrb3NoYS1pZD0i MToxMTgiIHN0eWxlPSIiPgombmJzcDt7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTE5IiBzdHls ZT0iIj4KJm5ic3A7CWFzc2VydChmaWVsZC0mZ3Q7dHlwZSA9PSBYVVBEQVRFX0FSUkFZKTs8YnIg ZGF0YS1kYXJrb3NoYS1pZD0iMToxMjAiIHN0eWxlPSIiPgotCWlmICghIHhyb3dfdXBkYXRlX29w X2lzX3Rlcm0ob3ApKSB7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTIxIiBzdHlsZT0iIj4KKwlp ZiAoIXhyb3dfdXBkYXRlX29wX2lzX3Rlcm0ob3ApKSB7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6 MTIyIiBzdHlsZT0iIj4KJm5ic3A7CQlzdHJ1Y3QgeHJvd191cGRhdGVfYXJyYXlfaXRlbSAqaXRl bSA9PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTIzIiBzdHlsZT0iIj4KJm5ic3A7CQkJeHJvd191 cGRhdGVfYXJyYXlfZXh0cmFjdF9pdGVtKGZpZWxkLCBvcCk7PGJyIGRhdGEtZGFya29zaGEtaWQ9 IjE6MTI0IiBzdHlsZT0iIj4KJm5ic3A7CQlpZiAoaXRlbSA9PSBOVUxMKTxiciBkYXRhLWRhcmtv c2hhLWlkPSIxOjEyNSIgc3R5bGU9IiI+CkBAIC0zMDUsNyArMzA1LDcgQEAgeHJvd191cGRhdGVf b3BfZG9fYXJyYXlfIyNvcF90eXBlKHN0cnVjdCB4cm93X3VwZGF0ZV9vcCAqb3AsCQkJXDxiciBk YXRhLWRhcmtvc2hhLWlkPSIxOjEyNiIgc3R5bGU9IiI+CiZuYnNwOwkJeHJvd191cGRhdGVfYXJy YXlfZXh0cmFjdF9pdGVtKGZpZWxkLCBvcCk7CQkJXDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjEy NyIgc3R5bGU9IiI+CiZuYnNwOwlpZiAoaXRlbSA9PSBOVUxMKQkJCQkJCQlcPGJyIGRhdGEtZGFy a29zaGEtaWQ9IjE6MTI4IiBzdHlsZT0iIj4KJm5ic3A7CQlyZXR1cm4gLTE7CQkJCQkJCVw8YnIg ZGF0YS1kYXJrb3NoYS1pZD0iMToxMjkiIHN0eWxlPSIiPgotCWlmICghIHhyb3dfdXBkYXRlX29w X2lzX3Rlcm0ob3ApKQkJCQkJXDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjEzMCIgc3R5bGU9IiI+ CisJaWYgKCF4cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9wKSkJCQkJCVw8YnIgZGF0YS1kYXJrb3No YS1pZD0iMToxMzEiIHN0eWxlPSIiPgombmJzcDsJCXJldHVybiB4cm93X3VwZGF0ZV9vcF9kb19m aWVsZF8jI29wX3R5cGUob3AsICZhbXA7aXRlbS0mZ3Q7ZmllbGQpOwlcPGJyIGRhdGEtZGFya29z aGEtaWQ9IjE6MTMyIiBzdHlsZT0iIj4KJm5ic3A7CWlmIChpdGVtLSZndDtmaWVsZC50eXBlICE9 IFhVUERBVEVfTk9QKQkJCQkJXDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjEzMyIgc3R5bGU9IiI+ CiZuYnNwOwkJcmV0dXJuIHhyb3dfdXBkYXRlX2Vycl9kb3VibGUob3ApOwkJCQlcPGJyIGRhdGEt ZGFya29zaGEtaWQ9IjE6MTM0IiBzdHlsZT0iIj4KZGlmZiAtLWdpdCBhL3NyYy9ib3gveHJvd191 cGRhdGVfYmFyLmMgYi9zcmMvYm94L3hyb3dfdXBkYXRlX2Jhci5jPGJyIGRhdGEtZGFya29zaGEt aWQ9IjE6MTM1IiBzdHlsZT0iIj4KaW5kZXggNzM3NjczZThhLi43Mjg1YzdlMmIgMTAwNjQ0PGJy IGRhdGEtZGFya29zaGEtaWQ9IjE6MTM2IiBzdHlsZT0iIj4KLS0tIGEvc3JjL2JveC94cm93X3Vw ZGF0ZV9iYXIuYzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjEzNyIgc3R5bGU9IiI+CisrKyBiL3Ny Yy9ib3gveHJvd191cGRhdGVfYmFyLmM8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxMzgiIHN0eWxl PSIiPgpAQCAtNTgsNyArNTgsNyBAQCB4cm93X3VwZGF0ZV9iYXJfbG9jYXRlKHN0cnVjdCB4cm93 X3VwZGF0ZV9vcCAqb3AsPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTM5IiBzdHlsZT0iIj4KJm5i c3A7CSAqIG5vbiBlbXB0eSBwYXRoLiBUaGlzIGlzIHdoeSBvcCBpcyBleHBlY3RlZCB0byBiZSBu b3Q8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxNDAiIHN0eWxlPSIiPgombmJzcDsJICogdGVybWlu YWwuPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTQxIiBzdHlsZT0iIj4KJm5ic3A7CSAqLzxiciBk YXRhLWRhcmtvc2hhLWlkPSIxOjE0MiIgc3R5bGU9IiI+Ci0JYXNzZXJ0KCEgeHJvd191cGRhdGVf b3BfaXNfdGVybShvcCkpOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE0MyIgc3R5bGU9IiI+CisJ YXNzZXJ0KCF4cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9wKSk7PGJyIGRhdGEtZGFya29zaGEtaWQ9 IjE6MTQ0IiBzdHlsZT0iIj4KJm5ic3A7CWludCByYzs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTox NDUiIHN0eWxlPSIiPgombmJzcDsJZmllbGQtJmd0O3R5cGUgPSBYVVBEQVRFX0JBUjs8YnIgZGF0 YS1kYXJrb3NoYS1pZD0iMToxNDYiIHN0eWxlPSIiPgombmJzcDsJZmllbGQtJmd0O2Jhci5vcCA9 IG9wOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE0NyIgc3R5bGU9IiI+CkBAIC0xMTMsNyArMTEz LDcgQEAgeHJvd191cGRhdGVfYmFyX2xvY2F0ZV9vcHQoc3RydWN0IHhyb3dfdXBkYXRlX29wICpv cCw8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxNDgiIHN0eWxlPSIiPgombmJzcDsJICogbm9uIGVt cHR5IHBhdGguIFRoaXMgaXMgd2h5IG9wIGlzIGV4cGVjdGVkIHRvIGJlIG5vdDxiciBkYXRhLWRh cmtvc2hhLWlkPSIxOjE0OSIgc3R5bGU9IiI+CiZuYnNwOwkgKiB0ZXJtaW5hbC48YnIgZGF0YS1k YXJrb3NoYS1pZD0iMToxNTAiIHN0eWxlPSIiPgombmJzcDsJICovPGJyIGRhdGEtZGFya29zaGEt aWQ9IjE6MTUxIiBzdHlsZT0iIj4KLQlhc3NlcnQoISB4cm93X3VwZGF0ZV9vcF9pc190ZXJtKG9w KSk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTUyIiBzdHlsZT0iIj4KKwlhc3NlcnQoIXhyb3df dXBkYXRlX29wX2lzX3Rlcm0ob3ApKTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxNTMiIHN0eWxl PSIiPgombmJzcDsJaW50IHJjOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE1NCIgc3R5bGU9IiI+ CiZuYnNwOwlmaWVsZC0mZ3Q7dHlwZSA9IFhVUERBVEVfQkFSOzxiciBkYXRhLWRhcmtvc2hhLWlk PSIxOjE1NSIgc3R5bGU9IiI+CiZuYnNwOwlmaWVsZC0mZ3Q7YmFyLm9wID0gb3A7PGJyIGRhdGEt ZGFya29zaGEtaWQ9IjE6MTU2IiBzdHlsZT0iIj4KQEAgLTI0NSw3ICsyNDUsNyBAQCB4cm93X3Vw ZGF0ZV9vcF9kb19ub3Bfc2V0KHN0cnVjdCB4cm93X3VwZGF0ZV9vcCAqb3AsPGJyIGRhdGEtZGFy a29zaGEtaWQ9IjE6MTU3IiBzdHlsZT0iIj4KJm5ic3A7CWlmICh4cm93X3VwZGF0ZV9iYXJfbG9j YXRlX29wdChvcCwgZmllbGQsICZhbXA7aXNfZm91bmQsICZhbXA7a2V5X2xlbikgIT0gMCk8YnIg ZGF0YS1kYXJrb3NoYS1pZD0iMToxNTgiIHN0eWxlPSIiPgombmJzcDsJCXJldHVybiAtMTs8YnIg ZGF0YS1kYXJrb3NoYS1pZD0iMToxNTkiIHN0eWxlPSIiPgombmJzcDsJb3AtJmd0O25ld19maWVs ZF9sZW4gPSBvcC0mZ3Q7YXJnLnNldC5sZW5ndGg7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTYw IiBzdHlsZT0iIj4KLQlpZiAoISBpc19mb3VuZCkgezxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE2 MSIgc3R5bGU9IiI+CisJaWYgKCFpc19mb3VuZCkgezxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE2 MiIgc3R5bGU9IiI+CiZuYnNwOwkJb3AtJmd0O29wY29kZSA9ICchJzs8YnIgZGF0YS1kYXJrb3No YS1pZD0iMToxNjMiIHN0eWxlPSIiPgombmJzcDsJCWlmIChtcF90eXBlb2YoKmZpZWxkLSZndDti YXIucGFyZW50KSA9PSBNUF9NQVApPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTY0IiBzdHlsZT0i Ij4KJm5ic3A7CQkJb3AtJmd0O25ld19maWVsZF9sZW4gKz0gbXBfc2l6ZW9mX3N0cihrZXlfbGVu KTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxNjUiIHN0eWxlPSIiPgo8YnIgZGF0YS1kYXJrb3No YS1pZD0iMToxNjYiIHN0eWxlPSIiPgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08YnIgZGF0YS1kYXJr b3NoYS1pZD0iMToxNjciIHN0eWxlPSIiPgo8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxNjgiIHN0 eWxlPSIiPgomZ3Q7Jmd0OyBkaWZmIC0tZ2l0IGEvc3JjL2JveC94cm93X3VwZGF0ZV9iYXIuYyBi L3NyYy9ib3gveHJvd191cGRhdGVfYmFyLmM8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxNjkiIHN0 eWxlPSIiPgomZ3Q7Jmd0OyBuZXcgZmlsZSBtb2RlIDEwMDY0NDxiciBkYXRhLWRhcmtvc2hhLWlk PSIxOjE3MCIgc3R5bGU9IiI+CiZndDsmZ3Q7IGluZGV4IDAwMDAwMDAwMC4uNzM3NjczZThhPGJy IGRhdGEtZGFya29zaGEtaWQ9IjE6MTcxIiBzdHlsZT0iIj4KJmd0OyZndDsgLS0tIC9kZXYvbnVs bDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE3MiIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsrKyBiL3Ny Yy9ib3gveHJvd191cGRhdGVfYmFyLmM8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxNzMiIHN0eWxl PSIiPgomZ3Q7Jmd0OyArc3RhdGljIGlubGluZSBpbnQ8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTox NzQiIHN0eWxlPSIiPgomZ3Q7Jmd0OyAreHJvd191cGRhdGVfYmFyX2xvY2F0ZV9vcHQoc3RydWN0 IHhyb3dfdXBkYXRlX29wICpvcCw8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxNzUiIHN0eWxlPSIi PgomZ3Q7Jmd0OyArCQkJICAgc3RydWN0IHhyb3dfdXBkYXRlX2ZpZWxkICpmaWVsZCwgYm9vbCAq aXNfZm91bmQsPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTc2IiBzdHlsZT0iIj4KJmd0OyZndDsg KwkJCSAgIGludCAqa2V5X2xlbl9vcl9pbmRleCk8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxNzci IHN0eWxlPSIiPgomZ3Q7Jmd0OyArezxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE3OCIgc3R5bGU9 IiI+CiZndDsmZ3Q7ICsJLyo8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxNzkiIHN0eWxlPSIiPgom Z3Q7Jmd0OyArCSAqIEJhciB1cGRhdGUgaXMgbm90IGZsYXQgYnkgZGVmaW5pdGlvbi4gSXQgYWx3 YXlzIGhhcyBhPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTgwIiBzdHlsZT0iIj4KJmd0OyZndDsg KwkgKiBub24gZW1wdHkgcGF0aC4gVGhpcyBpcyB3aHkgb3AgaXMgZXhwZWN0ZWQgdG8gYmUgbm90 PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTgxIiBzdHlsZT0iIj4KJmd0OyZndDsgKwkgKiB0ZXJt aW5hbC48YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxODIiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCSAq LzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE4MyIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJYXNzZXJ0 KCEgeHJvd191cGRhdGVfb3BfaXNfdGVybShvcCkpOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE4 NCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJaW50IHJjOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE4 NSIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJZmllbGQtJmd0O3R5cGUgPSBYVVBEQVRFX0JBUjs8YnIg ZGF0YS1kYXJrb3NoYS1pZD0iMToxODYiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCWZpZWxkLSZndDti YXIub3AgPSBvcDs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxODciIHN0eWxlPSIiPgomZ3Q7Jmd0 OyArCWZpZWxkLSZndDtiYXIucGF0aCA9IG9wLSZndDtsZXhlci5zcmMgKyBvcC0mZ3Q7bGV4ZXIu b2Zmc2V0OzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE4OCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJ ZmllbGQtJmd0O2Jhci5wYXRoX2xlbiA9IG9wLSZndDtsZXhlci5zcmNfbGVuIC0gb3AtJmd0O2xl eGVyLm9mZnNldDs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxODkiIHN0eWxlPSIiPgomZ3Q7Jmd0 OyArCWNvbnN0IGNoYXIgKnBvcyA9IGZpZWxkLSZndDtkYXRhOzxiciBkYXRhLWRhcmtvc2hhLWlk PSIxOjE5MCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJc3RydWN0IGpzb25fdG9rZW4gdG9rZW47PGJy IGRhdGEtZGFya29zaGEtaWQ9IjE6MTkxIiBzdHlsZT0iIj4KJmd0OyZndDsgKwlkbyB7PGJyIGRh dGEtZGFya29zaGEtaWQ9IjE6MTkyIiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJcmMgPSBqc29uX2xl eGVyX25leHRfdG9rZW4oJmFtcDtvcC0mZ3Q7bGV4ZXIsICZhbXA7dG9rZW4pOzxiciBkYXRhLWRh cmtvc2hhLWlkPSIxOjE5MyIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCWlmIChyYyAhPSAwKTxiciBk YXRhLWRhcmtvc2hhLWlkPSIxOjE5NCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQlyZXR1cm4geHJv d191cGRhdGVfZXJyX2JhZF9qc29uKG9wLCByYyk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTk1 IiBzdHlsZT0iIj4KJmd0OyZndDsgKzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjE5NiIgc3R5bGU9 IiI+CiZndDsmZ3Q7ICsJCXN3aXRjaCAodG9rZW4udHlwZSkgezxiciBkYXRhLWRhcmtvc2hhLWlk PSIxOjE5NyIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCWNhc2UgSlNPTl9UT0tFTl9FTkQ6PGJyIGRh dGEtZGFya29zaGEtaWQ9IjE6MTk4IiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJCSppc19mb3VuZCA9 IHRydWU7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MTk5IiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJ CWZpZWxkLSZndDtiYXIucG9pbnQgPSBwb3M7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjAwIiBz dHlsZT0iIj4KJmd0OyZndDsgKwkJCW1wX25leHQoJmFtcDtwb3MpOzxiciBkYXRhLWRhcmtvc2hh LWlkPSIxOjIwMSIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQlmaWVsZC0mZ3Q7YmFyLnBvaW50X3Np emUgPSBwb3MgLSBmaWVsZC0mZ3Q7YmFyLnBvaW50OzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIw MiIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQlyZXR1cm4gMDs8YnIgZGF0YS1kYXJrb3NoYS1pZD0i MToyMDMiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQljYXNlIEpTT05fVE9LRU5fTlVNOjxiciBkYXRh LWRhcmtvc2hhLWlkPSIxOjIwNCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQlmaWVsZC0mZ3Q7YmFy LnBhcmVudCA9IHBvczs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyMDUiIHN0eWxlPSIiPgomZ3Q7 Jmd0OyArCQkJKmtleV9sZW5fb3JfaW5kZXggPSB0b2tlbi5udW07PGJyIGRhdGEtZGFya29zaGEt aWQ9IjE6MjA2IiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJCXJjID0gdHVwbGVfZmllbGRfZ29fdG9f aW5kZXgoJmFtcDtwb3MsIHRva2VuLm51bSk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjA3IiBz dHlsZT0iIj4KJmd0OyZndDsgKwkJCWJyZWFrOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIwOCIg c3R5bGU9IiI+CiZndDsmZ3Q7ICsJCWNhc2UgSlNPTl9UT0tFTl9TVFI6PGJyIGRhdGEtZGFya29z aGEtaWQ9IjE6MjA5IiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJCWZpZWxkLSZndDtiYXIucGFyZW50 ID0gcG9zOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIxMCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJ CQkqa2V5X2xlbl9vcl9pbmRleCA9IHRva2VuLmxlbjs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToy MTEiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQkJcmMgPSB0dXBsZV9maWVsZF9nb190b19rZXkoJmFt cDtwb3MsIHRva2VuLnN0ciwgdG9rZW4ubGVuKTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyMTIi IHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQkJYnJlYWs7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjEz IiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJZGVmYXVsdDo8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToy MTQiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQkJYXNzZXJ0KHRva2VuLnR5cGUgPT0gSlNPTl9UT0tF Tl9BTlkpOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIxNSIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJ CQlyYyA9IG9wLSZndDtsZXhlci5zeW1ib2xfY291bnQgLSAxOzxiciBkYXRhLWRhcmtvc2hhLWlk PSIxOjIxNiIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQlyZXR1cm4geHJvd191cGRhdGVfZXJyX2Jh ZF9qc29uKG9wLCByYyk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjE3IiBzdHlsZT0iIj4KJmd0 OyZndDsgKwkJfTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIxOCIgc3R5bGU9IiI+CiZndDsmZ3Q7 ICsJfSB3aGlsZSAocmMgPT0gMCk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjE5IiBzdHlsZT0i Ij4KJmd0OyZndDsgKwlhc3NlcnQocmMgPT0gLTEpOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIy MCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJLyogRW5zdXJlLCB0aGF0ICd0b2tlbicgaXMgbmV4dCB0 byBsYXN0IHBhdGggcGFydC4gKi88YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyMjEiIHN0eWxlPSIi PgomZ3Q7Jmd0OyArCXN0cnVjdCBqc29uX3Rva2VuIHRtcF90b2tlbjs8YnIgZGF0YS1kYXJrb3No YS1pZD0iMToyMjIiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCXJjID0ganNvbl9sZXhlcl9uZXh0X3Rv a2VuKCZhbXA7b3AtJmd0O2xleGVyLCAmYW1wO3RtcF90b2tlbik7PGJyIGRhdGEtZGFya29zaGEt aWQ9IjE6MjIzIiBzdHlsZT0iIj4KJmd0OyZndDsgKwlpZiAocmMgIT0gMCk8YnIgZGF0YS1kYXJr b3NoYS1pZD0iMToyMjQiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQlyZXR1cm4geHJvd191cGRhdGVf ZXJyX2JhZF9qc29uKG9wLCByYyk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjI1IiBzdHlsZT0i Ij4KJmd0OyZndDsgKwlpZiAodG1wX3Rva2VuLnR5cGUgIT0gSlNPTl9UT0tFTl9FTkQpPGJyIGRh dGEtZGFya29zaGEtaWQ9IjE6MjI2IiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJcmV0dXJuIHhyb3df dXBkYXRlX2Vycl9ub19zdWNoX2ZpZWxkKG9wKTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyMjci IHN0eWxlPSIiPgomZ3Q7Jmd0OyArPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjI4IiBzdHlsZT0i Ij4KJmd0OyZndDsgKwkqaXNfZm91bmQgPSBmYWxzZTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToy MjkiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCWlmICh0b2tlbi50eXBlID09IEpTT05fVE9LRU5fTlVN KSB7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjMwIiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJY29u c3QgY2hhciAqdG1wID0gZmllbGQtJmd0O2Jhci5wYXJlbnQ7PGJyIGRhdGEtZGFya29zaGEtaWQ9 IjE6MjMxIiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJaWYgKG1wX3R5cGVvZigqdG1wKSAhPSBNUF9B UlJBWSkgezxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIzMiIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJ CQlyZXR1cm4geHJvd191cGRhdGVfZXJyKG9wLCAiY2FuIG5vdCBhY2Nlc3MgYnkgaW5kZXggYSAi XDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIzMyIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQkJCSAg ICAgICAibm9uLWFycmF5IGZpZWxkIik7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjM0IiBzdHls ZT0iIj4KJmd0OyZndDsgKwkJfTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIzNSIgc3R5bGU9IiI+ CiZndDsmZ3Q7ICsJCXVpbnQzMl90IHNpemUgPSBtcF9kZWNvZGVfYXJyYXkoJmFtcDt0bXApOzxi ciBkYXRhLWRhcmtvc2hhLWlkPSIxOjIzNiIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCWlmICgodWlu dDMyX3QpIHRva2VuLm51bSAmZ3Q7IHNpemUpPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjM3IiBz dHlsZT0iIj4KJmd0OyZndDsgKwkJCXJldHVybiB4cm93X3VwZGF0ZV9lcnJfbm9fc3VjaF9maWVs ZChvcCk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjM4IiBzdHlsZT0iIj4KJmd0OyA8YnIgZGF0 YS1kYXJrb3NoYS1pZD0iMToyMzkiIHN0eWxlPSIiPgomZ3Q7IElNSE8gdGhlcmUgd2lsbCBiZSBt b3JlIGluZm9ybWF0aXZlIHRvIG1lbnRpb24gdGhlIGFycmF5IGFuZCBhbiBpbmRleDxiciBkYXRh LWRhcmtvc2hhLWlkPSIxOjI0MCIgc3R5bGU9IiI+CiZndDsgdGhhdCBpcyBvdXQgb2YgYm91bmRz LjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI0MSIgc3R5bGU9IiI+CiZndDsgPGJyIGRhdGEtZGFy a29zaGEtaWQ9IjE6MjQyIiBzdHlsZT0iIj4KPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjQzIiBz dHlsZT0iIj4KV2VsbCwgeHJvd191cGRhdGVfZXJyX25vX3N1Y2hfZmllbGQoKSBkb2VzIGl0LiBJ dCBhZGRzIHRoZSB3aG9sZTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI0NCIgc3R5bGU9IiI+CnBh dGggdG8gdGhlIGVycm9yIG1lc3NhZ2UuIFNvIGEgdXNlciB3aWxsIHNlZSB3aGF0IGEgcGF0aCBj YXVzZWQ8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNDUiIHN0eWxlPSIiPgp0aGUgcHJvYmxlbS48 YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNDYiIHN0eWxlPSIiPgo8YnIgZGF0YS1kYXJrb3NoYS1p ZD0iMToyNDciIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQkvKjxiciBkYXRhLWRhcmtvc2hhLWlkPSIx OjI0OCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCSAqIFRoZSB1cGRhdGVkIHBvaW50IGlzIGluIGFu IGFycmF5LCBpdHMgcG9zaXRpb248YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNDkiIHN0eWxlPSIi PgomZ3Q7Jmd0OyArCQkgKiB3YXMgbm90IGZvdW5kLCBhbmQgaXRzIGluZGV4IGlzICZsdDs9IHNp emUuIFRoZTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI1MCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJ CSAqIG9ubHkgd2F5IGhvdyBjYW4gdGhhdCBoYXBwZW4gLSB0aGUgdXBkYXRlIHRyaWVzPGJyIGRh dGEtZGFya29zaGEtaWQ9IjE6MjUxIiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJICogdG8gYXBwZW5k IGEgbmV3IGFycmF5IGVsZW1lbnQuIFRoZSBmb2xsb3dpbmc8YnIgZGF0YS1kYXJrb3NoYS1pZD0i MToyNTIiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQkgKiBjb2RlIHRyaWVzIHRvIGZpbmQgdGhlIGFy cmF5J3MgZW5kLjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI1MyIgc3R5bGU9IiI+CiZndDsmZ3Q7 ICsJCSAqLzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI1NCIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJ CWFzc2VydCgodWludDMyX3QpIHRva2VuLm51bSA9PSBzaXplKTs8YnIgZGF0YS1kYXJrb3NoYS1p ZD0iMToyNTUiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQlpZiAoZmllbGQtJmd0O2Jhci5wYXJlbnQg PT0gZmllbGQtJmd0O2RhdGEpIHs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNTYiIHN0eWxlPSIi PgomZ3Q7Jmd0OyArCQkJLyo8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNTciIHN0eWxlPSIiPgom Z3Q7Jmd0OyArCQkJICogT3B0aW1pemF0aW9uIGZvciB0aGUgY2FzZSB3aGVuIHRoZSBwYXRoPGJy IGRhdGEtZGFya29zaGEtaWQ9IjE6MjU4IiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJCSAqIGlzIHNo b3J0LiBTbyBwYXJlbnQgb2YgdGhlIHVwZGF0ZWQ8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNTki IHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQkJICogcG9pbnQgaXMgdGhlIGZpZWxkIGl0c2VsZi4gSXQg YWxsb3dzPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjYwIiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJ CSAqIG5vdCB0byBkZWNvZGUgYW55dGhpbmcgYXQgYWxsLiBJdCBpczxiciBkYXRhLWRhcmtvc2hh LWlkPSIxOjI2MSIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQkgKiB3b3J0aCBkb2luZywgc2luY2Ug dGhlIHBhdGhzIGFyZTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI2MiIgc3R5bGU9IiI+CiZndDsm Z3Q7ICsJCQkgKiB1c3VhbGx5IHNob3J0LjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI2MyIgc3R5 bGU9IiI+CiZndDsmZ3Q7ICsJCQkgKi88YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNjQiIHN0eWxl PSIiPgomZ3Q7Jmd0OyArCQkJZmllbGQtJmd0O2Jhci5wb2ludCA9IGZpZWxkLSZndDtkYXRhICsg ZmllbGQtJmd0O3NpemU7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjY1IiBzdHlsZT0iIj4KJmd0 OyZndDsgKwkJfSBlbHNlIHs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNjYiIHN0eWxlPSIiPgom Z3Q7Jmd0OyArCQkJZmllbGQtJmd0O2Jhci5wb2ludCA9IGZpZWxkLSZndDtiYXIucGFyZW50Ozxi ciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI2NyIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQltcF9uZXh0 KCZhbXA7ZmllbGQtJmd0O2Jhci5wb2ludCk7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjY4IiBz dHlsZT0iIj4KJmd0OyZndDsgKwkJfTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI2OSIgc3R5bGU9 IiI+CiZndDsmZ3Q7ICsJCWZpZWxkLSZndDtiYXIucG9pbnRfc2l6ZSA9IDA7PGJyIGRhdGEtZGFy a29zaGEtaWQ9IjE6MjcwIiBzdHlsZT0iIj4KJmd0OyZndDsgKwl9IGVsc2UgezxiciBkYXRhLWRh cmtvc2hhLWlkPSIxOjI3MSIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCWFzc2VydCh0b2tlbi50eXBl ID09IEpTT05fVE9LRU5fU1RSKTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNzIiIHN0eWxlPSIi PgomZ3Q7Jmd0OyArCQlmaWVsZC0mZ3Q7YmFyLm5ld19rZXkgPSB0b2tlbi5zdHI7PGJyIGRhdGEt ZGFya29zaGEtaWQ9IjE6MjczIiBzdHlsZT0iIj4KJmd0OyZndDsgKwkJZmllbGQtJmd0O2Jhci5u ZXdfa2V5X2xlbiA9IHRva2VuLmxlbjs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNzQiIHN0eWxl PSIiPgomZ3Q7Jmd0OyArCQlpZiAobXBfdHlwZW9mKCpmaWVsZC0mZ3Q7YmFyLnBhcmVudCkgIT0g TVBfTUFQKSB7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6Mjc1IiBzdHlsZT0iIj4KJmd0OyZndDsg KwkJCXJldHVybiB4cm93X3VwZGF0ZV9lcnIob3AsICJjYW4gbm90IGFjY2VzcyBieSBrZXkgYSAi XDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI3NiIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJCQkJCSAg ICAgICAibm9uLW1hcCBmaWVsZCIpOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI3NyIgc3R5bGU9 IiI+CiZndDsmZ3Q7ICsJCX08YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNzgiIHN0eWxlPSIiPgom Z3Q7Jmd0OyArCX08YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyNzkiIHN0eWxlPSIiPgomZ3Q7Jmd0 OyArCXJldHVybiAwOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI4MCIgc3R5bGU9IiI+CiZndDsm Z3Q7ICt9PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjgxIiBzdHlsZT0iIj4KJmd0OyZndDsgKzxi ciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI4MiIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsvKio8YnIgZGF0 YS1kYXJrb3NoYS1pZD0iMToyODMiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArICogTm9wIGZpZWxkcyBh cmUgdGhvc2Ugd2hpY2ggYXJlIG5vdCB1cGRhdGVkLiBBbmQgd2hlbiB0aGV5PGJyIGRhdGEtZGFy a29zaGEtaWQ9IjE6Mjg0IiBzdHlsZT0iIj4KJmd0OyZndDsgKyAqIHJlY2VpdmUgYW4gdXBkYXRl IHZpYSBvbmUgb2YgeHJvd191cGRhdGVfb3BfZG9fbm9wXyogZnVuY3Rpb25zLDxiciBkYXRhLWRh cmtvc2hhLWlkPSIxOjI4NSIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsgKiBpdCBtZWFucywgdGhhdCB0 aGVyZSBpcyBhIG5vbiB0ZXJtaW5hbCBwYXRoIGRpZ2dpbmcgaW5zaWRlIHRoaXM8YnIgZGF0YS1k YXJrb3NoYS1pZD0iMToyODYiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArICogbm90IHVwZGF0ZWQgZmll bGQuIEl0IHR1cm5zIG5vcCBmaWVsZCBpbnRvIGEgYmFyIGZpZWxkLiBIb3c8YnIgZGF0YS1kYXJr b3NoYS1pZD0iMToyODciIHN0eWxlPSIiPgomZ3Q7Jmd0OyArICogZXhhY3RseSAtIGRlcGVuZHMg b24gYSBjb25jcmV0ZSBvcGVyYXRpb24uPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6Mjg4IiBzdHls ZT0iIj4KJmd0OyZndDsgKyAqLzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI4OSIgc3R5bGU9IiI+ CiZndDsmZ3Q7ICs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyOTAiIHN0eWxlPSIiPgomZ3Q7Jmd0 OyAraW50PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjkxIiBzdHlsZT0iIj4KJmd0OyZndDsgK3hy b3dfdXBkYXRlX29wX2RvX25vcF9pbnNlcnQoc3RydWN0IHhyb3dfdXBkYXRlX29wICpvcCw8YnIg ZGF0YS1kYXJrb3NoYS1pZD0iMToyOTIiIHN0eWxlPSIiPgomZ3Q7Jmd0OyArCQkJICAgICBzdHJ1 Y3QgeHJvd191cGRhdGVfZmllbGQgKmZpZWxkKTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI5MyIg c3R5bGU9IiI+CiZndDsmZ3Q7ICt7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6Mjk0IiBzdHlsZT0i Ij4KJmd0OyZndDsgKwlhc3NlcnQob3AtJmd0O29wY29kZSA9PSAnIScpOzxiciBkYXRhLWRhcmtv c2hhLWlkPSIxOjI5NSIgc3R5bGU9IiI+CiZndDsmZ3Q7ICsJYXNzZXJ0KGZpZWxkLSZndDt0eXBl ID09IFhVUERBVEVfTk9QKTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToyOTYiIHN0eWxlPSIiPgom Z3Q7IDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjI5NyIgc3R5bGU9IiI+CiZndDsgSG1tLiBEbyB5 b3UgZXhwZWN0IHRvIGhhbmRsZSBhbGwgcG9zc2libGUgY2FzZXMgaW4gZGVidWcgbW9kZT8gPGJy IGRhdGEtZGFya29zaGEtaWQ9IjE6Mjk4IiBzdHlsZT0iIj4KJmd0OyBPdGhlcndpc2UgaGVyZSBz aG91bGQgYmUgc29tZSBzb3J0IG9mIGdhY2VmdWwgZmFpbCB0byBtYWtlIHByb2QgbW9yZTxiciBk YXRhLWRhcmtvc2hhLWlkPSIxOjI5OSIgc3R5bGU9IiI+CiZndDsgc3RhYmxlLjxiciBkYXRhLWRh cmtvc2hhLWlkPSIxOjMwMCIgc3R5bGU9IiI+CiZndDsgPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6 MzAxIiBzdHlsZT0iIj4KPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MzAyIiBzdHlsZT0iIj4KSW4g VGFyYW50b29sIHdlIHVzdWFsbHkgcmVseSBvbiB0aGUgdGVzdHMgYW5kIGRlYnVnIG1vZGUuIENv bmNyZXRlbHk8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTozMDMiIHN0eWxlPSIiPgp0aGlzIGNhc2Ug SSBjb3ZlcmVkIHdpdGggdGVzdHMgb24gMTAwJSBub3QgaW5jbHVkaW5nIE9PTSAod2UgY2FuJ3Q8 YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTozMDQiIHN0eWxlPSIiPgp0ZXN0IG1hbGxvYyBmYWlsdXJl cywgYmFzaWNhbGx5KS4gVGhpcyBpcyBkb25lIHRvIG5vdCBzbG93ZG93biByZWxlYXNlPGJyIGRh dGEtZGFya29zaGEtaWQ9IjE6MzA1IiBzdHlsZT0iIj4KYnVpbGQgd2l0aCBuZXZlciBwYXNzaW5n IGNoZWNrcyBzdWNoIGFzIHRoaXMuIFJlbW92YWwgb2YgYXNzZXJ0aW9uPGJyIGRhdGEtZGFya29z aGEtaWQ9IjE6MzA2IiBzdHlsZT0iIj4KY2hlY2tzIGZyb20gcmVsZWFzZSBnaXZlcyB2ZXJ5IHNp Z25pZmljYW50IHBlcmYgaW1wYWN0LiBIb3dldmVyIGluIHNvbWU8YnIgZGF0YS1kYXJrb3NoYS1p ZD0iMTozMDciIHN0eWxlPSIiPgpwbGFjZXMgd2hpY2ggYXJlIG5vdCBob3QgcGF0aHMgdGhlcmUg aXMgYSB0aGluZyByZWxhdGVkIHRvIHdoYXQgeW91PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MzA4 IiBzdHlsZT0iIj4KbWVhbjogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90 YXJhbnRvb2wvaXNzdWVzLzI1NzEiIHRhcmdldD0iX2JsYW5rIiBkYXRhLWRhcmtvc2hhLWlkPSIx OjMwOSIgc3R5bGU9IiI+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNz dWVzLzI1NzE8L2E+PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MzEwIiBzdHlsZT0iIj4KPC9kaXY+ CiAgICAgICAgICAgIAogICAgICAgIAoJCTxiYXNlIHRhcmdldD0iX3NlbGYiIGhyZWY9Imh0dHBz Oi8vZS5tYWlsLnJ1LyIgZGF0YS1kYXJrb3NoYS1pZD0iMTozMTEiIHN0eWxlPSIiPgoJPC9kaXY+ CgoJCjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48L2Rpdj48L0JPRFk+PC9IVE1MPgo= ----ALT--0440cd9f3f09404180bb222796eaf72a1576315228--