From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 831FB25022 for ; Tue, 31 Jul 2018 07:40:36 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VNjhRDbYHiaW for ; Tue, 31 Jul 2018 07:40:36 -0400 (EDT) Received: from f42.i.mail.ru (f42.i.mail.ru [217.69.128.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id D27E621AC1 for ; Tue, 31 Jul 2018 07:40:35 -0400 (EDT) From: =?UTF-8?B?S29uc3RhbnRpbiBCZWx5YXZza2l5?= Subject: [tarantool-patches] =?UTF-8?B?UmU6IFt0YXJhbnRvb2wtcGF0Y2hlc10gW2JveC5jdGwgMS8zXSBib3guY3Rs?= =?UTF-8?B?OiBJbnRyb2R1Y2Ugc3RhYiBib3guY3RsLm9uX2N0bF9ldmVudA==?= MIME-Version: 1.0 Date: Tue, 31 Jul 2018 14:40:33 +0300 Message-ID: <1533037233.886599501@f42.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--3R291W653sbJZEazHBBjgkOxpesF5nVS1533037233" In-Reply-To: References: Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: =?UTF-8?B?Z2Vvcmd5?= , =?UTF-8?B?0JjQu9GM0Y8g0JzQsNGA0LrQvtCy?= Cc: =?UTF-8?B?dGFyYW50b29sLXBhdGNoZXM=?= ----ALT--3R291W653sbJZEazHBBjgkOxpesF5nVS1533037233 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGksCm92ZXJhbGwgcGF0Y2ggbG9va3MgZ29vZCB3aXRoIG1pbm9yIGZpeGVzIChzaG9ydCBzdW1t YXJ5LCBzZWUgZXhwbGFuYXRpb24gYmVsb3cpOgotIGZpeCBjb21taXQgbWVzc2FnZQotIGNoYW5n ZSBmdW5jdGlvbiBuYW1lCi0gcmVtb3ZlIHVudXNlZCBoZWFkZXIKCj7Qp9C10YLQstC10YDQsywg MTQg0LjRjtC90Y8gMjAxOCwgMTg6MDQgKzAzOjAwINC+0YIgSWx5YSBNYXJrb3YgPGltYXJrb3ZA dGFyYW50b29sLm9yZz46Cj4KPkFkZCByZXF1aXJlZCBmb3IgdHJpZ2dlciBvbl9jdGxfZXZlbnQK PnN0cnVjdHVyZXMgYW5kIGx1YSBiaW5kaW5ncy4KPgo+UHJlcmVxdWlzaXRlICMzMjU5IAojMzE1 OQo+Cj4tLS0KPsKgc3JjL2JveC9DTWFrZUxpc3RzLnR4dCAgIHwgIDEgKwo+wqBzcmMvYm94L2Jv eC5jYyAgICAgICAgICAgfCAgOSArKysrKysKPsKgc3JjL2JveC9ib3guaCAgICAgICAgICAgIHwg IDEgKwo+wqBzcmMvYm94L2N0bC5jICAgICAgICAgICAgfCA2MyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj7CoHNyYy9ib3gvY3RsLmggICAgICAgICAgICB8IDgxICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+wqBzcmMvYm94L2x1 YS9jZmcuY2MgICAgICAgfCAxMiArKysrKysrCj7CoHNyYy9ib3gvbHVhL2N0bC5jICAgICAgICB8 IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+wqBzcmMvYm94L2x1YS9jdGwuaCAg ICAgICAgfCAgMiArKwo+wqBzcmMvYm94L2x1YS9sb2FkX2NmZy5sdWEgfCAxMCArKysrKy0KPsKg c3JjL2NmZy5jICAgICAgICAgICAgICAgIHwgMzcgKysrKysrKysrKysrKysrKysrKysrKwo+wqBz cmMvY2ZnLmggICAgICAgICAgICAgICAgfCAgNCArKysKPsKgMTEgZmlsZXMgY2hhbmdlZCwgMjcw IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPsKgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9i b3gvY3RsLmMKPsKgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9ib3gvY3RsLmgKPgo+ZGlmZiAtLWdp dCBhL3NyYy9ib3gvQ01ha2VMaXN0cy50eHQgYi9zcmMvYm94L0NNYWtlTGlzdHMudHh0Cj5pbmRl eCA2YjFhZTNlLi43NGY2YjU0IDEwMDY0NAo+LS0tIGEvc3JjL2JveC9DTWFrZUxpc3RzLnR4dAo+ KysrIGIvc3JjL2JveC9DTWFrZUxpc3RzLnR4dAo+QEAgLTExMiw2ICsxMTIsNyBAQCBhZGRfbGli cmFyeShib3ggU1RBVElDCj7CoMKgwqDCoMKgam91cm5hbC5jCj7CoMKgwqDCoMKgd2FsLmMKPsKg wqDCoMKgwqBjYWxsLmMKPisgICAgY3RsLmMKPsKgwqDCoMKgwqAke2x1YV9zb3VyY2VzfQo+wqDC oMKgwqDCoGx1YS9pbml0LmMKPsKgwqDCoMKgwqBsdWEvY2FsbC5jCj5kaWZmIC0tZ2l0IGEvc3Jj L2JveC9ib3guY2MgYi9zcmMvYm94L2JveC5jYwo+aW5kZXggNjFiZmExMS4uMjYyNzdlNyAxMDA2 NDQKPi0tLSBhL3NyYy9ib3gvYm94LmNjCj4rKysgYi9zcmMvYm94L2JveC5jYwo+QEAgLTcyLDYg KzcyLDcgQEAKPsKgI2luY2x1ZGUgImNhbGwuaCIKPsKgI2luY2x1ZGUgImZ1bmMuaCIKPsKgI2lu Y2x1ZGUgInNlcXVlbmNlLmgiCj4rI2luY2x1ZGUgImN0bC5oIgo+Cj7CoHN0YXRpYyBjaGFyIHN0 YXR1c1s2NF0gPSAidW5rbm93biI7Cj4KPkBAIC04MjMsNiArODI0LDEzIEBAIGJveF9zZXRfbmV0 X21zZ19tYXgodm9pZCkKPsKgCQkJCUlQUk9UT19GSUJFUl9QT09MX1NJWkVfRkFDVE9SKTsKPsKg fQo+Cj4rdm9pZAo+K2JveF9zZXRfb25fY3RsX2V2ZW50KHZvaWQpCj4rewo+KwlpZiAoY2ZnX3Jl c2V0X29uX2N0bF9ldmVudCgpIDwgMCkKPisJCWRpYWdfcmFpc2UoKTsKPit9IApQbGVhc2UgYWRk IF94YyBzdWZmaXgsIHNpbmNlIGZ1bmN0aW9uIHJhaXNlIGV4Y2VwdGlvbi4KPgo+Kwo+wqAvKiB9 fX0gY29uZmlndXJhdGlvbiBiaW5kaW5ncyAqLwo+Cj7CoC8qKgo+QEAgLTE4MDgsNiArMTgxNiw3 IEBAIGJveF9jZmdfeGModm9pZCkKPsKgCWJveF9zZXRfcmVwbGljYXRpb25fY29ubmVjdF90aW1l b3V0KCk7Cj7CoAlib3hfc2V0X3JlcGxpY2F0aW9uX2Nvbm5lY3RfcXVvcnVtKCk7Cj7CoAlib3hf c2V0X3JlcGxpY2F0aW9uX3NraXBfY29uZmxpY3QoKTsKPisJYm94X3NldF9vbl9jdGxfZXZlbnQo KTsKPsKgCXJlcGxpY2F0aW9uX3N5bmNfbGFnID0gYm94X2NoZWNrX3JlcGxpY2F0aW9uX3N5bmNf bGFnKCk7Cj7CoAl4c3RyZWFtX2NyZWF0ZSgmam9pbl9zdHJlYW0sIGFwcGx5X2luaXRpYWxfam9p bl9yb3cpOwo+wqAJeHN0cmVhbV9jcmVhdGUoJnN1YnNjcmliZV9zdHJlYW0sIGFwcGx5X3Jvdyk7 Cj5kaWZmIC0tZ2l0IGEvc3JjL2JveC9ib3guaCBiL3NyYy9ib3gvYm94LmgKPmluZGV4IGQzOTY3 ODkuLjAzMjU1MjcgMTAwNjQ0Cj4tLS0gYS9zcmMvYm94L2JveC5oCj4rKysgYi9zcmMvYm94L2Jv eC5oCj5AQCAtMTkxLDYgKzE5MSw3IEBAIHZvaWQgYm94X3NldF9yZXBsaWNhdGlvbl9jb25uZWN0 X3RpbWVvdXQodm9pZCk7Cj7CoHZvaWQgYm94X3NldF9yZXBsaWNhdGlvbl9jb25uZWN0X3F1b3J1 bSh2b2lkKTsKPsKgdm9pZCBib3hfc2V0X3JlcGxpY2F0aW9uX3NraXBfY29uZmxpY3Qodm9pZCk7 Cj7CoHZvaWQgYm94X3NldF9uZXRfbXNnX21heCh2b2lkKTsKPit2b2lkIGJveF9zZXRfb25fY3Rs X2V2ZW50KHZvaWQpOwo+Cj7CoGV4dGVybiAiQyIgewo+wqAjZW5kaWYgLyogZGVmaW5lZChfX2Nw bHVzcGx1cykgKi8KPmRpZmYgLS1naXQgYS9zcmMvYm94L2N0bC5jIGIvc3JjL2JveC9jdGwuYwo+ bmV3IGZpbGUgbW9kZSAxMDA2NDQKPmluZGV4IDAwMDAwMDAuLmZjM2FlMzcKPi0tLSAvZGV2L251 bGwKPisrKyBiL3NyYy9ib3gvY3RsLmMKPkBAIC0wLDAgKzEsNjMgQEAKPisvKgo+KyAqIENvcHly aWdodCAyMDEwLTIwMTgsIFRhcmFudG9vbCBBVVRIT1JTLCBwbGVhc2Ugc2VlIEFVVEhPUlMgZmls ZS4KPisgKgo+KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg Zm9ybXMsIHdpdGggb3IKPisgKiB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcKPisgKiBjb25kaXRpb25zIGFyZSBtZXQ6Cj4rICoK PisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi b3ZlCj4rICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k IHRoZQo+KyAqICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgo+KyAqCj4rICogMi4gUmVkaXN0cmli dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQo+KyAqICAgIGNv cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n Cj4rICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0 ZXJpYWxzCj4rICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgo+KyAqCj4rICog VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSA8Q09QWVJJR0hUIEhPTERFUj4gYGBBUyBJUycn IEFORAo+KyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC VVQgTk9UIExJTUlURUQKPisgKiBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCj4rICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMCj4rICogPENPUFlSSUdIVCBIT0xERVI+IE9SIENP TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsCj4rICogSU5ESVJFQ1QsIElOQ0lE RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAo+KyAqIERBTUFHRVMg KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgo+KyAqIFNVQlNU SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP Ugo+KyAqIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU SEVPUlkgT0YKPisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC SUxJVFksIE9SIFRPUlQKPisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCj4rICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCj4rICogU1VDSCBEQU1BR0UuCj4r ICovCj4rI2luY2x1ZGUgPGxpYi9zbWFsbC9zbWFsbC9ybGlzdC5oPgo+KyNpbmNsdWRlIDx0cmln Z2VyLmg+Cj4rI2luY2x1ZGUgPGJveC9jdGwuaD4KPisjaW5jbHVkZSAiZXJyY29kZS5oIgo+KyNp bmNsdWRlICJlcnJvci5oIgo+KyNpbmNsdWRlIDxleGNlcHRpb24uaD4KPisKPitSTElTVF9IRUFE KG9uX2N0bF9ldmVudCk7Cj4rCj4raW50Cj4rcnVuX29uX2N0bF9ldmVudF90cmlnZ2Vycyhjb25z dCBzdHJ1Y3Qgb25fY3RsX2V2ZW50X2N0eCAqcmVzdWx0KSB7Cj4rCXJldHVybiB0cmlnZ2VyX3J1 bigmb25fY3RsX2V2ZW50LCAodm9pZCAqKSByZXN1bHQpOwo+K30KPisKPitpbnQKPitydW5fb25f Y3RsX2V2ZW50X3RyaWdnZXJfdHlwZShlbnVtIGN0bF9ldmVudF90eXBlIHR5cGUpCj4rewo+Kwlz dHJ1Y3Qgb25fY3RsX2V2ZW50X2N0eCBjdHggPSB7fTsKPisJY3R4LnR5cGUgPSB0eXBlOwo+Kwly ZXR1cm4gcnVuX29uX2N0bF9ldmVudF90cmlnZ2VycygmY3R4KTsKPit9Cj4rCj4raW50Cj4rY2Zn X3Jlc2V0X29uX2N0bF9ldmVudCgpCj4rewo+KwlpZiAoY2ZnX3Jlc2V0X3RyaWdnZXIoIm9uX2N0 bF9ldmVudCIsICZvbl9jdGxfZXZlbnQsCj4rCQlsYm94X3B1c2hfb25fY3RsX2V2ZW50LCBOVUxM KSA8IDApIHsKPisJCWRpYWdfc2V0KENsaWVudEVycm9yLCBFUl9DRkcsICJvbl9jdGxfZXZlbnQi LAo+KwkJCSAiZXhwZWN0ZWQgZnVuY3Rpb24gb3IgdGFibGUiKTsKPisJCXJldHVybiAtMTsKPisJ fQo+KwlyZXR1cm4gMDsKPit9Cj5cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKPmRpZmYgLS1n aXQgYS9zcmMvYm94L2N0bC5oIGIvc3JjL2JveC9jdGwuaAo+bmV3IGZpbGUgbW9kZSAxMDA2NDQK PmluZGV4IDAwMDAwMDAuLjFkYmI2YmUKPi0tLSAvZGV2L251bGwKPisrKyBiL3NyYy9ib3gvY3Rs LmgKPkBAIC0wLDAgKzEsODEgQEAKPisjaWZuZGVmIElOQ0xVREVTX1RBUkFOVE9PTF9DVExfSAo+ KyNkZWZpbmUgSU5DTFVERVNfVEFSQU5UT09MX0NUTF9ICj4rCj4rLyoKPisgKiBDb3B5cmlnaHQg MjAxMC0yMDE4LCBUYXJhbnRvb2wgQVVUSE9SUywgcGxlYXNlIHNlZSBBVVRIT1JTIGZpbGUuCj4r ICoKPisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z LCB3aXRoIG9yCj4rICogd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk ZWQgdGhhdCB0aGUgZm9sbG93aW5nCj4rICogY29uZGl0aW9ucyBhcmUgbWV0Ogo+KyAqCj4rICog MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQo+ KyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUK PisgKiAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KPisgKgo+KyAqIDIuIFJlZGlzdHJpYnV0aW9u cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKPisgKiAgICBjb3B5cmln aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwo+KyAq ICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs cwo+KyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KPisgKgo+KyAqIFRISVMg U09GVFdBUkUgSVMgUFJPVklERUQgQlkgPENPUFlSSUdIVCBIT0xERVI+IGBgQVMgSVMnJyBBTkQK PisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P VCBMSU1JVEVECj4rICogVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZIEFORCBGSVRORVNTIEZPUgo+KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ TUVELiBJTiBOTyBFVkVOVCBTSEFMTAo+KyAqIDxDT1BZUklHSFQgSE9MREVSPiBPUiBDT05UUklC VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULAo+KyAqIElORElSRUNULCBJTkNJREVOVEFM LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKPisgKiBEQU1BR0VTIChJTkNM VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKPisgKiBTVUJTVElUVVRF IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKPisg KiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ IE9GCj4rICogTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ LCBPUiBUT1JUCj4rICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO RyBJTiBBTlkgV0FZIE9VVCBPRgo+KyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgo+KyAqIFNVQ0ggREFNQUdFLgo+KyAqLwo+ Kwo+KyNpbmNsdWRlIDxjZmcuaD4KPisjaW5jbHVkZSA8Ym94L2x1YS9jdGwuaD4KPgo+KyNpbmNs dWRlICJlcnJjb2RlLmgiCj4rI2luY2x1ZGUgImVycm9yLmgiCj4rI2luY2x1ZGUgPGV4Y2VwdGlv bi5oPgpJIHRoaW5rIGxhc3QgdGhyZWUgaGVhZGVycyBhcmUgdXNlbGVzcyBoZXJlLgo+Cj4rCj4r LyoqIEdsb2JhbCBvbi1jdGxfZXZlbnQgdHJpZ2dlcnMuICovCj4rZXh0ZXJuIHN0cnVjdCBybGlz dCBvbl9jdGxfZXZlbnQ7Cj4rCj4rZW51bSBjdGxfZXZlbnRfdHlwZSB7Cj4rCUNUTF9FVkVOVF9T WVNURU1fU1BBQ0VfUkVDT1ZFUlksCj4rCUNUTF9FVkVOVF9MT0NBTF9SRUNPVkVSWSwKPisJQ1RM X0VWRU5UX1JFQURfT05MWSwKPisJQ1RMX0VWRU5UX1JFQURfV1JJVEUsCj4rCUNUTF9FVkVOVF9T SFVURE9XTiwKPisJQ1RMX0VWRU5UX1JFUExJQ0FTRVRfQURELAo+KwlDVExfRVZFTlRfUkVQTElD QVNFVF9SRU1PVkUsCj4rfTsKPisKPitzdHJ1Y3Qgb25fY3RsX2V2ZW50X2N0eCB7Cj4rCWVudW0g Y3RsX2V2ZW50X3R5cGUgdHlwZTsKPisJdWludDMyX3QgcmVwbGljYV9pZDsKPit9Owo+Kwo+KyNp ZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQo+K2V4dGVybiAiQyIgewo+KyNlbmRpZiAvKiBkZWZpbmVk KF9fY3BsdXNwbHVzKSAqLwo+Kwo+Ky8qKgo+KyAqIFJ1bnMgb25fY3RsX2V2ZW50IHRyaWdnZXJz IHdpdGggc3BlY2lmaWVkIGNvbnRleHQuCj4rICovCj4raW50Cj4rcnVuX29uX2N0bF9ldmVudF90 cmlnZ2Vycyhjb25zdCBzdHJ1Y3Qgb25fY3RsX2V2ZW50X2N0eCAqcmVzdWx0KTsKPisKPisvKioK PisgKiBSdW5zIG9uX2N0bF9ldmVudCB0cmlnZ2VycyB3aXRoIHNwZWNpZmllZCB0eXBlLgo+KyAq Lwo+K2ludAo+K3J1bl9vbl9jdGxfZXZlbnRfdHJpZ2dlcl90eXBlKGVudW0gY3RsX2V2ZW50X3R5 cGUgdHlwZSk7Cj4rCj4raW50Cj4rY2ZnX3Jlc2V0X29uX2N0bF9ldmVudCgpOwo+KyNpZiBkZWZp bmVkKF9fY3BsdXNwbHVzKQo+K30gLyogZXh0ZXJuICJDIiAqLwo+KyNlbmRpZiAvKiBkZWZpbmVk KF9fY3BsdXNwbHVzKSAqLwo+Kwo+KyNlbmRpZiAvKiBJTkNMVURFU19UQVJBTlRPT0xfTFVBX0NU TF9IICovCj5kaWZmIC0tZ2l0IGEvc3JjL2JveC9sdWEvY2ZnLmNjIGIvc3JjL2JveC9sdWEvY2Zn LmNjCj5pbmRleCA1YWZlYmM5Li5jOTI0NzhmIDEwMDY0NAo+LS0tIGEvc3JjL2JveC9sdWEvY2Zn LmNjCj4rKysgYi9zcmMvYm94L2x1YS9jZmcuY2MKPkBAIC0yNTQsNiArMjU0LDE3IEBAIGxib3hf Y2ZnX3NldF9uZXRfbXNnX21heChzdHJ1Y3QgbHVhX1N0YXRlICpMKQo+wqB9Cj4KPsKgc3RhdGlj IGludAo+K2xib3hfY2ZnX3NldF9vbl9jdGxfZXZlbnQoc3RydWN0IGx1YV9TdGF0ZSAqTCkKPit7 Cj4rCXRyeSB7Cj4rCQlib3hfc2V0X29uX2N0bF9ldmVudCgpOwo+Kwl9IGNhdGNoIChFeGNlcHRp b24gKikgewo+KwkJbHVhVF9lcnJvcihMKTsKPisJfQo+KwlyZXR1cm4gMDsKPit9Cj4rCj4rc3Rh dGljIGludAo+wqBsYm94X2NmZ19zZXRfd29ya2VyX3Bvb2xfdGhyZWFkcyhzdHJ1Y3QgbHVhX1N0 YXRlICpMKQo+wqB7Cj7CoAkodm9pZCkgTDsKPkBAIC0zMzEsNiArMzQyLDcgQEAgYm94X2x1YV9j ZmdfaW5pdChzdHJ1Y3QgbHVhX1N0YXRlICpMKQo+wqAJCXsiY2ZnX3NldF9yZXBsaWNhdGlvbl9z a2lwX2NvbmZsaWN0IiwgbGJveF9jZmdfc2V0X3JlcGxpY2F0aW9uX3NraXBfY29uZmxpY3R9LAo+ wqAJCXsiY2ZnX3NldF9yZXBsaWNhdGlvbl9jb25uZWN0X3RpbWVvdXQiLCBsYm94X2NmZ19zZXRf cmVwbGljYXRpb25fY29ubmVjdF90aW1lb3V0fSwKPsKgCQl7ImNmZ19zZXRfbmV0X21zZ19tYXgi LCBsYm94X2NmZ19zZXRfbmV0X21zZ19tYXh9LAo+KwkJeyJjZmdfc2V0X29uX2N0bF9ldmVudCIs IGxib3hfY2ZnX3NldF9vbl9jdGxfZXZlbnR9LAo+wqAJCXtOVUxMLCBOVUxMfQo+wqAJfTsKPgo+ ZGlmZiAtLWdpdCBhL3NyYy9ib3gvbHVhL2N0bC5jIGIvc3JjL2JveC9sdWEvY3RsLmMKPmluZGV4 IDlhMTA1ZWQuLjUyZjMyMGEgMTAwNjQ0Cj4tLS0gYS9zcmMvYm94L2x1YS9jdGwuYwo+KysrIGIv c3JjL2JveC9sdWEvY3RsLmMKPkBAIC0zNSw2ICszNSw4IEBACj7CoCNpbmNsdWRlIDxsdWEuaD4K PsKgI2luY2x1ZGUgPGxhdXhsaWIuaD4KPsKgI2luY2x1ZGUgPGx1YWxpYi5oPgo+KyNpbmNsdWRl IDxsdWEvdHJpZ2dlci5oPgo+KyNpbmNsdWRlIDxib3gvY3RsLmg+Cj4KPsKgI2luY2x1ZGUgImx1 YS91dGlscy5oIgo+Cj5AQCAtNjQsOSArNjYsMzcgQEAgbGJveF9jdGxfd2FpdF9ydyhzdHJ1Y3Qg bHVhX1N0YXRlICpMKQo+wqAJcmV0dXJuIDA7Cj7CoH0KPgo+Kwo+K2ludAo+K2xib3hfcHVzaF9v bl9jdGxfZXZlbnQoc3RydWN0IGx1YV9TdGF0ZSAqTCwgdm9pZCAqZXZlbnQpCj4rewo+KwlzdHJ1 Y3Qgb25fY3RsX2V2ZW50X2N0eCAqY3R4ID0gKHN0cnVjdCBvbl9jdGxfZXZlbnRfY3R4ICopIGV2 ZW50Owo+KwlsdWFfbmV3dGFibGUoTCk7Cj4rCWx1YV9wdXNoc3RyaW5nKEwsICJ0eXBlIik7Cj4r CWx1YV9wdXNoaW50ZWdlcihMLCBjdHgtPnR5cGUpOwo+KwlsdWFfc2V0dGFibGUoTCwgLTMpOwo+ Kwo+KwlpZiAoY3R4LT50eXBlID09IENUTF9FVkVOVF9SRVBMSUNBU0VUX0FERCB8fAo+KwkJY3R4 LT50eXBlID09IENUTF9FVkVOVF9SRVBMSUNBU0VUX1JFTU9WRSkgewo+KwkJbHVhX3B1c2hzdHJp bmcoTCwgInJlcGxpY2FfaWQiKTsKPisJCWx1YUxfcHVzaHVpbnQ2NChMLCBjdHgtPnJlcGxpY2Ff aWQpOwo+KwkJbHVhX3NldHRhYmxlKEwsIC0zKTsKPisJfQo+KwlyZXR1cm4gMTsKPit9Cj4rCj4r c3RhdGljIGludAo+K2xib3hfb25fY3RsX2V2ZW50KHN0cnVjdCBsdWFfU3RhdGUgKkwpCj4rewo+ KwlyZXR1cm4gbGJveF90cmlnZ2VyX3Jlc2V0KEwsIDIsICZvbl9jdGxfZXZlbnQsCj4rCQkJCSAg bGJveF9wdXNoX29uX2N0bF9ldmVudCwgTlVMTCk7Cj4rfQo+Kwo+Kwo+wqBzdGF0aWMgY29uc3Qg c3RydWN0IGx1YUxfUmVnIGxib3hfY3RsX2xpYltdID0gewo+wqAJeyJ3YWl0X3JvIiwgbGJveF9j dGxfd2FpdF9yb30sCj7CoAl7IndhaXRfcnciLCBsYm94X2N0bF93YWl0X3J3fSwKPisJeyJvbl9j dGxfZXZlbnQiLCBsYm94X29uX2N0bF9ldmVudH0sCj7CoAl7TlVMTCwgTlVMTH0KPsKgfTsKPgo+ QEAgLTc1LDQgKzEwNSwyNSBAQCBib3hfbHVhX2N0bF9pbml0KHN0cnVjdCBsdWFfU3RhdGUgKkwp Cj7CoHsKPsKgCWx1YUxfcmVnaXN0ZXJfbW9kdWxlKEwsICJib3guY3RsIiwgbGJveF9jdGxfbGli KTsKPsKgCWx1YV9wb3AoTCwgMSk7Cj4rCj4rCWx1YUxfZmluZHRhYmxlKEwsIExVQV9HTE9CQUxT SU5ERVgsICJib3guY3RsIiwgMSk7Cj4rCWx1YV9uZXd0YWJsZShMKTsKPisJbHVhX3NldGZpZWxk KEwsIC0yLCAiZXZlbnQiKTsKPisJbHVhX2dldGZpZWxkKEwsIC0xLCAiZXZlbnQiKTsKPisKPisJ bHVhX3B1c2hudW1iZXIoTCwgQ1RMX0VWRU5UX1NZU1RFTV9TUEFDRV9SRUNPVkVSWSk7Cj4rCWx1 YV9zZXRmaWVsZChMLCAtMiwgIlNZU1RFTV9TUEFDRV9SRUNPVkVSWSIpOwo+KwlsdWFfcHVzaG51 bWJlcihMLCBDVExfRVZFTlRfTE9DQUxfUkVDT1ZFUlkpOwo+KwlsdWFfc2V0ZmllbGQoTCwgLTIs ICJMT0NBTF9SRUNPVkVSWSIpOwo+KwlsdWFfcHVzaG51bWJlcihMLCBDVExfRVZFTlRfUkVBRF9P TkxZKTsKPisJbHVhX3NldGZpZWxkKEwsIC0yLCAiUkVBRF9PTkxZIik7Cj4rCWx1YV9wdXNobnVt YmVyKEwsIENUTF9FVkVOVF9SRUFEX1dSSVRFKTsKPisJbHVhX3NldGZpZWxkKEwsIC0yLCAiUkVB RF9XUklURSIpOwo+KwlsdWFfcHVzaG51bWJlcihMLCBDVExfRVZFTlRfU0hVVERPV04pOwo+Kwls dWFfc2V0ZmllbGQoTCwgLTIsICJTSFVURE9XTiIpOwo+KwlsdWFfcHVzaG51bWJlcihMLCBDVExf RVZFTlRfUkVQTElDQVNFVF9BREQpOwo+KwlsdWFfc2V0ZmllbGQoTCwgLTIsICJDVExfRVZFTlRf UkVQTElDQVNFVF9BREQiKTsKPisJbHVhX3B1c2hudW1iZXIoTCwgQ1RMX0VWRU5UX1JFUExJQ0FT RVRfUkVNT1ZFKTsKPisJbHVhX3NldGZpZWxkKEwsIC0yLCAiQ1RMX0VWRU5UX1JFUExJQ0FTRVRf UkVNT1ZFIik7Cj4rCWx1YV9wb3AoTCwgMik7IC8qIGJveCwgY3RsICovCj7CoH0KPmRpZmYgLS1n aXQgYS9zcmMvYm94L2x1YS9jdGwuaCBiL3NyYy9ib3gvbHVhL2N0bC5oCj5pbmRleCBlN2MyZWRk Li5hYjYzMjMyIDEwMDY0NAo+LS0tIGEvc3JjL2JveC9sdWEvY3RsLmgKPisrKyBiL3NyYy9ib3gv bHVhL2N0bC5oCj5AQCAtNDEsNiArNDEsOCBAQCBzdHJ1Y3QgbHVhX1N0YXRlOwo+wqB2b2lkCj7C oGJveF9sdWFfY3RsX2luaXQoc3RydWN0IGx1YV9TdGF0ZSAqTCk7Cj4KPitpbnQKPitsYm94X3B1 c2hfb25fY3RsX2V2ZW50KHN0cnVjdCBsdWFfU3RhdGUgKkwsIHZvaWQgKmV2ZW50KTsKPsKgI2lm IGRlZmluZWQoX19jcGx1c3BsdXMpCj7CoH0gLyogZXh0ZXJuICJDIiAqLwo+wqAjZW5kaWYgLyog ZGVmaW5lZChfX2NwbHVzcGx1cykgKi8KPmRpZmYgLS1naXQgYS9zcmMvYm94L2x1YS9sb2FkX2Nm Zy5sdWEgYi9zcmMvYm94L2x1YS9sb2FkX2NmZy5sdWEKPmluZGV4IDBiNjY4Y2QuLmM0ZDEzNDcg MTAwNjQ0Cj4tLS0gYS9zcmMvYm94L2x1YS9sb2FkX2NmZy5sdWEKPisrKyBiL3NyYy9ib3gvbHVh L2xvYWRfY2ZnLmx1YQo+QEAgLTEsNyArMSwxMSBAQAo+wqAtLSBsb2FkX2NmZy5sdWEgLSBpbnRl cm5hbCBmaWxlCj4KPsKgbG9jYWwgbG9nID0gcmVxdWlyZSgnbG9nJykKPi1sb2NhbCBqc29uID0g cmVxdWlyZSgnanNvbicpCj4rbG9jYWwganNvbiA9IHJlcXVpcmUoImpzb24iKS5uZXcoKQo+K2pz b24uY2Znewo+KyAgICBlbmNvZGVfdXNlX3Rvc3RyaW5nICAgID0gdHJ1ZSwKPit9Cj4rCj7CoGxv Y2FsIHByaXZhdGUgPSByZXF1aXJlKCdib3guaW50ZXJuYWwnKQo+wqBsb2NhbCB1cmlsaWIgPSBy ZXF1aXJlKCd1cmknKQo+wqBsb2NhbCBtYXRoID0gcmVxdWlyZSgnbWF0aCcpCj5AQCAtNjQsNiAr NjgsNyBAQCBsb2NhbCBkZWZhdWx0X2NmZyA9IHsKPsKgwqDCoMKgwqBmZWVkYmFja19ob3N0ICAg ICAgICAgPSAiIGh0dHBzOi8vZmVlZGJhY2sudGFyYW50b29sLmlvICIsCj7CoMKgwqDCoMKgZmVl ZGJhY2tfaW50ZXJ2YWwgICAgID0gMzYwMCwKPsKgwqDCoMKgwqBuZXRfbXNnX21heCAgICAgICAg ICAgPSA3NjgsCj4rICAgIG9uX2N0bF9ldmVudCAgICAgICAgICA9IG5pbCwKPsKgfQo+Cj7CoC0t IHR5cGVzIG9mIGF2YWlsYWJsZSBvcHRpb25zCj5AQCAtMTI1LDYgKzEzMCw3IEBAIGxvY2FsIHRl bXBsYXRlX2NmZyA9IHsKPsKgwqDCoMKgwqBmZWVkYmFja19ob3N0ICAgICAgICAgPSAnc3RyaW5n JywKPsKgwqDCoMKgwqBmZWVkYmFja19pbnRlcnZhbCAgICAgPSAnbnVtYmVyJywKPsKgwqDCoMKg wqBuZXRfbXNnX21heCAgICAgICAgICAgPSAnbnVtYmVyJywKPisgICAgb25fY3RsX2V2ZW50ICAg ICAgICAgID0gJ2Z1bmN0aW9uLCB0YWJsZScsCj7CoH0KPgo+wqBsb2NhbCBmdW5jdGlvbiBub3Jt YWxpemVfdXJpKHBvcnQpCj5AQCAtMjE2LDYgKzIyMiw3IEBAIGxvY2FsIGR5bmFtaWNfY2ZnID0g ewo+wqDCoMKgwqDCoHJlcGxpY2FzZXRfdXVpZCAgICAgICAgID0gY2hlY2tfcmVwbGljYXNldF91 dWlkLAo+wqDCoMKgwqDCoHJlcGxpY2F0aW9uX3NraXBfY29uZmxpY3QgPSBwcml2YXRlLmNmZ19z ZXRfcmVwbGljYXRpb25fc2tpcF9jb25mbGljdCwKPsKgwqDCoMKgwqBuZXRfbXNnX21heCAgICAg ICAgICAgICA9IHByaXZhdGUuY2ZnX3NldF9uZXRfbXNnX21heCwKPisgICAgb25fY3RsX2V2ZW50 ICAgICAgICAgICAgPSBwcml2YXRlLmNmZ19zZXRfb25fY3RsX2V2ZW50LAo+wqB9Cj4KPsKgbG9j YWwgZHluYW1pY19jZmdfc2tpcF9hdF9sb2FkID0gewo+QEAgLTIzMiw2ICsyMzksNyBAQCBsb2Nh bCBkeW5hbWljX2NmZ19za2lwX2F0X2xvYWQgPSB7Cj7CoMKgwqDCoMKgZm9yY2VfcmVjb3Zlcnkg ICAgICAgICAgPSB0cnVlLAo+wqDCoMKgwqDCoGluc3RhbmNlX3V1aWQgICAgICAgICAgID0gdHJ1 ZSwKPsKgwqDCoMKgwqByZXBsaWNhc2V0X3V1aWQgICAgICAgICA9IHRydWUsCj4rICAgIG9uX2N0 bF9ldmVudCAgICAgICAgICAgID0gdHJ1ZSwKPsKgfQo+Cj7CoGxvY2FsIGZ1bmN0aW9uIGNvbnZl cnRfZ2Ioc2l6ZSkKPmRpZmYgLS1naXQgYS9zcmMvY2ZnLmMgYi9zcmMvY2ZnLmMKPmluZGV4IDdj N2Q2ZTcuLmIwN2MxZjMgMTAwNjQ0Cj4tLS0gYS9zcmMvY2ZnLmMKPisrKyBiL3NyYy9jZmcuYwo+ QEAgLTE1MywzICsxNTMsNDAgQEAgY2ZnX2dldGFycl9lbGVtKGNvbnN0IGNoYXIgKm5hbWUsIGlu dCBpKQo+wqAJbHVhX3BvcCh0YXJhbnRvb2xfTCwgMik7Cj7CoAlyZXR1cm4gdmFsOwo+wqB9Cj4r Cj4raW50Cj4rY2ZnX3Jlc2V0X3RyaWdnZXIoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHJsaXN0 ICpsaXN0LAo+KwkJICBsYm94X3B1c2hfZXZlbnRfZiBwdXNoX2V2ZW50LCBsYm94X3BvcF9ldmVu dF9mIHBvcF9ldmVudCkKPit7Cj4rCWNmZ19nZXQobmFtZSk7Cj4rCXN0cnVjdCBsdWFfU3RhdGUg KkwgPSB0YXJhbnRvb2xfTDsKPisJaWYgKGx1YV9pc25pbChMLCAtMSkpCj4rCQlyZXR1cm4gMDsK PisJaWYgKCFsdWFfaXNmdW5jdGlvbihMLCAtMSkgJiYgIWx1YV9pc3RhYmxlKEwsIC0xKSkgewo+ KwkJcmV0dXJuIC0xOwo+Kwl9Cj4rCWlmIChsdWFfaXN0YWJsZShMLCAtMSkpIHsKPisJCWx1YV9w dXNoaW50ZWdlcihMLCAxKTsKPisJCWx1YV9nZXR0YWJsZShMLCAtMik7Cj4rCQlpZiAoIWx1YUxf aXNudWxsKEwsIGx1YV9nZXR0b3AoTCkpICYmICFsdWFfaXNmdW5jdGlvbihMLCAtMSkpCj4rCQkJ cmV0dXJuIC0xOwo+KwkJYm9vbCBpc19uaWwgPSBsdWFMX2lzbnVsbChMLCBsdWFfZ2V0dG9wKEwp KTsKPisJCWlmIChpc19uaWwpIHsKPisJCQlsdWFfcG9wKEwsIDEpOwo+KwkJCWx1YV9wdXNobmls KEwpOwo+KwkJfQo+KwkJbHVhX3B1c2hpbnRlZ2VyKEwsIDIpOwo+KwkJbHVhX2dldHRhYmxlKEws IC0zKTsKPisJCWlmICghbHVhX2lzZnVuY3Rpb24oTCwgLTEpICYmICFsdWFfaXNuaWwoTCwgLTEp KQo+KwkJCXJldHVybiAtMTsKPisJCWlmIChpc19uaWwgJiYgbHVhX2lzbmlsKEwsIC0xKSkgewo+ KwkJCXJldHVybiAwOwo+KwkJfQo+Kwl9IGVsc2Ugewo+KwkJbHVhX3B1c2huaWwoTCk7Cj4rCX0K PisJaW50IHJjID0gbGJveF90cmlnZ2VyX3Jlc2V0KEwsIGx1YV9nZXR0b3AoTCksIGxpc3QsCj4r CQkJCSAgcHVzaF9ldmVudCwgcG9wX2V2ZW50KTsKPisJbHVhX3BvcChMLCAxKTsKPisJcmV0dXJu IHJjOwo+K30KPlwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo+ZGlmZiAtLWdpdCBhL3NyYy9j ZmcuaCBiL3NyYy9jZmcuaAo+aW5kZXggIDg0OTkzODggLi5kMzY0NjVjIDEwMDY0NAo+LS0tIGEv c3JjL2NmZy5oCj4rKysgYi9zcmMvY2ZnLmgKPkBAIC0zMiw2ICszMiw3IEBACj7CoMKgKi8KPgo+ wqAjaW5jbHVkZSA8c3RkaW50Lmg+Cj4rI2luY2x1ZGUgPGx1YS90cmlnZ2VyLmg+Cj4KPsKgI2lm IGRlZmluZWQoX19jcGx1c3BsdXMpCj7CoGV4dGVybiAiQyIgewo+QEAgLTYxLDYgKzYyLDkgQEAg Y2ZnX2dldGFycl9zaXplKGNvbnN0IGNoYXIgKm5hbWUpOwo+wqBjb25zdCBjaGFyICoKPsKgY2Zn X2dldGFycl9lbGVtKGNvbnN0IGNoYXIgKm5hbWUsIGludCBpKTsKPgo+K2ludAo+K2NmZ19yZXNl dF90cmlnZ2VyKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBybGlzdCAqbGlzdCwKPisJCSAgbGJv eF9wdXNoX2V2ZW50X2YgcHVzaF9ldmVudCwgbGJveF9wb3BfZXZlbnRfZiBwb3BfZXZlbnQpOwo+ wqAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKPsKgfSAvKiBleHRlcm4gIkMiICovCj7CoCNlbmRp ZiAvKiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAqLwo+LS0gCj4yLjcuNAo+Cj4KCgpCZXN0IHJlZ2Fy ZHMsCktvbnN0YW50aW4gQmVseWF2c2tpeQprLmJlbHlhdnNraXlAdGFyYW50b29sLm9yZwo= ----ALT--3R291W653sbJZEazHBBjgkOxpesF5nVS1533037233 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPkhpLDxicj5vdmVyYWxsIHBhdGNoIGxvb2tzIGdvb2Qgd2l0aCBtaW5vciBm aXhlcyAoc2hvcnQgc3VtbWFyeSwgc2VlIGV4cGxhbmF0aW9uIGJlbG93KTo8YnI+LSBmaXggY29t bWl0IG1lc3NhZ2U8YnI+LSBjaGFuZ2UgZnVuY3Rpb24gbmFtZTxicj4tIHJlbW92ZSB1bnVzZWQg aGVhZGVyPGJyPjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMw ODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij4KCdCn0LXRgtCy0LXRgNCz LCAxNCDQuNGO0L3RjyAyMDE4LCAxODowNCArMDM6MDAg0L7RgiBJbHlhIE1hcmtvdiAmbHQ7aW1h cmtvdkB0YXJhbnRvb2wub3JnJmd0Ozo8YnI+PGJyPjxkaXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMt aGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE1Mjg5ODg2OTEwMDAw MDAwNTcxX0JPRFkiPkFkZCByZXF1aXJlZCBmb3IgdHJpZ2dlciBvbl9jdGxfZXZlbnQ8YnI+CnN0 cnVjdHVyZXMgYW5kIGx1YSBiaW5kaW5ncy48YnI+PGJyPgpQcmVyZXF1aXNpdGUgIzMyNTk8L2Rp dj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+IzMxNTk8YnI+PGJsb2NrcXVvdGUgc3R5 bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzow IDAgMCAxMHB4OyI+PGRpdiBpZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1t c2ciPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTUyODk4ODY5MTAwMDAwMDA1NzFfQk9EWSI+PGJyPgot LS08YnI+CiZuYnNwO3NyYy9ib3gvQ01ha2VMaXN0cy50eHQgICB8ICAxICs8YnI+CiZuYnNwO3Ny Yy9ib3gvYm94LmNjICAgICAgICAgICB8ICA5ICsrKysrKzxicj4KJm5ic3A7c3JjL2JveC9ib3gu aCAgICAgICAgICAgIHwgIDEgKzxicj4KJm5ic3A7c3JjL2JveC9jdGwuYyAgICAgICAgICAgIHwg NjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKzxicj4KJm5ic3A7c3JjL2Jv eC9jdGwuaCAgICAgICAgICAgIHwgODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrPGJyPgombmJzcDtzcmMvYm94L2x1YS9jZmcuY2MgICAgICAgfCAxMiAr KysrKysrPGJyPgombmJzcDtzcmMvYm94L2x1YS9jdGwuYyAgICAgICAgfCA1MSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKys8YnI+CiZuYnNwO3NyYy9ib3gvbHVhL2N0bC5oICAgICAgICB8 ICAyICsrPGJyPgombmJzcDtzcmMvYm94L2x1YS9sb2FkX2NmZy5sdWEgfCAxMCArKysrKy08YnI+ CiZuYnNwO3NyYy9jZmcuYyAgICAgICAgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKysrKysr Kys8YnI+CiZuYnNwO3NyYy9jZmcuaCAgICAgICAgICAgICAgICB8ICA0ICsrKzxicj4KJm5ic3A7 MTEgZmlsZXMgY2hhbmdlZCwgMjcwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSk8YnI+CiZu YnNwO2NyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYm94L2N0bC5jPGJyPgombmJzcDtjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL2JveC9jdGwuaDxicj48YnI+CmRpZmYgLS1naXQgYS9zcmMvYm94L0NNYWtl TGlzdHMudHh0IGIvc3JjL2JveC9DTWFrZUxpc3RzLnR4dDxicj4KaW5kZXggNmIxYWUzZS4uNzRm NmI1NCAxMDA2NDQ8YnI+Ci0tLSBhL3NyYy9ib3gvQ01ha2VMaXN0cy50eHQ8YnI+CisrKyBiL3Ny Yy9ib3gvQ01ha2VMaXN0cy50eHQ8YnI+CkBAIC0xMTIsNiArMTEyLDcgQEAgYWRkX2xpYnJhcnko Ym94IFNUQVRJQzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7am91cm5hbC5jPGJy PgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt3YWwuYzxicj4KJm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Y2FsbC5jPGJyPgorICAgIGN0bC5jPGJyPgombmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDske2x1YV9zb3VyY2VzfTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7bHVhL2luaXQuYzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bHVhL2Nh bGwuYzxicj4KZGlmZiAtLWdpdCBhL3NyYy9ib3gvYm94LmNjIGIvc3JjL2JveC9ib3guY2M8YnI+ CmluZGV4IDYxYmZhMTEuLjI2Mjc3ZTcgMTAwNjQ0PGJyPgotLS0gYS9zcmMvYm94L2JveC5jYzxi cj4KKysrIGIvc3JjL2JveC9ib3guY2M8YnI+CkBAIC03Miw2ICs3Miw3IEBAPGJyPgombmJzcDsj aW5jbHVkZSAiY2FsbC5oIjxicj4KJm5ic3A7I2luY2x1ZGUgImZ1bmMuaCI8YnI+CiZuYnNwOyNp bmNsdWRlICJzZXF1ZW5jZS5oIjxicj4KKyNpbmNsdWRlICJjdGwuaCI8YnI+PGJyPgombmJzcDtz dGF0aWMgY2hhciBzdGF0dXNbNjRdID0gInVua25vd24iOzxicj48YnI+CkBAIC04MjMsNiArODI0 LDEzIEBAIGJveF9zZXRfbmV0X21zZ19tYXgodm9pZCk8YnI+CiZuYnNwOwkJCQlJUFJPVE9fRklC RVJfUE9PTF9TSVpFX0ZBQ1RPUik7PGJyPgombmJzcDt9PGJyPjxicj4KK3ZvaWQ8YnI+Citib3hf c2V0X29uX2N0bF9ldmVudCh2b2lkKTxicj4KK3s8YnI+CisJaWYgKGNmZ19yZXNldF9vbl9jdGxf ZXZlbnQoKSAmbHQ7IDApPGJyPgorCQlkaWFnX3JhaXNlKCk7PGJyPgorfTwvZGl2PjwvZGl2Pjwv ZGl2PjwvZGl2PjwvYmxvY2txdW90ZT5QbGVhc2UgYWRkIF94YyBzdWZmaXgsIHNpbmNlIGZ1bmN0 aW9uIHJhaXNlIGV4Y2VwdGlvbi48YnI+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFw eCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdiBp ZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdiBpZD0i c3R5bGVfMTUyODk4ODY5MTAwMDAwMDA1NzFfQk9EWSI+PGJyPgorPGJyPgombmJzcDsvKiB9fX0g Y29uZmlndXJhdGlvbiBiaW5kaW5ncyAqLzxicj48YnI+CiZuYnNwOy8qKjxicj4KQEAgLTE4MDgs NiArMTgxNiw3IEBAIGJveF9jZmdfeGModm9pZCk8YnI+CiZuYnNwOwlib3hfc2V0X3JlcGxpY2F0 aW9uX2Nvbm5lY3RfdGltZW91dCgpOzxicj4KJm5ic3A7CWJveF9zZXRfcmVwbGljYXRpb25fY29u bmVjdF9xdW9ydW0oKTs8YnI+CiZuYnNwOwlib3hfc2V0X3JlcGxpY2F0aW9uX3NraXBfY29uZmxp Y3QoKTs8YnI+CisJYm94X3NldF9vbl9jdGxfZXZlbnQoKTs8YnI+CiZuYnNwOwlyZXBsaWNhdGlv bl9zeW5jX2xhZyA9IGJveF9jaGVja19yZXBsaWNhdGlvbl9zeW5jX2xhZygpOzxicj4KJm5ic3A7 CXhzdHJlYW1fY3JlYXRlKCZhbXA7am9pbl9zdHJlYW0sIGFwcGx5X2luaXRpYWxfam9pbl9yb3cp Ozxicj4KJm5ic3A7CXhzdHJlYW1fY3JlYXRlKCZhbXA7c3Vic2NyaWJlX3N0cmVhbSwgYXBwbHlf cm93KTs8YnI+CmRpZmYgLS1naXQgYS9zcmMvYm94L2JveC5oIGIvc3JjL2JveC9ib3guaDxicj4K aW5kZXggZDM5Njc4OS4uMDMyNTUyNyAxMDA2NDQ8YnI+Ci0tLSBhL3NyYy9ib3gvYm94Lmg8YnI+ CisrKyBiL3NyYy9ib3gvYm94Lmg8YnI+CkBAIC0xOTEsNiArMTkxLDcgQEAgdm9pZCBib3hfc2V0 X3JlcGxpY2F0aW9uX2Nvbm5lY3RfdGltZW91dCh2b2lkKTs8YnI+CiZuYnNwO3ZvaWQgYm94X3Nl dF9yZXBsaWNhdGlvbl9jb25uZWN0X3F1b3J1bSh2b2lkKTs8YnI+CiZuYnNwO3ZvaWQgYm94X3Nl dF9yZXBsaWNhdGlvbl9za2lwX2NvbmZsaWN0KHZvaWQpOzxicj4KJm5ic3A7dm9pZCBib3hfc2V0 X25ldF9tc2dfbWF4KHZvaWQpOzxicj4KK3ZvaWQgYm94X3NldF9vbl9jdGxfZXZlbnQodm9pZCk7 PGJyPjxicj4KJm5ic3A7ZXh0ZXJuICJDIiB7PGJyPgombmJzcDsjZW5kaWYgLyogZGVmaW5lZChf X2NwbHVzcGx1cykgKi88YnI+CmRpZmYgLS1naXQgYS9zcmMvYm94L2N0bC5jIGIvc3JjL2JveC9j dGwuYzxicj4KbmV3IGZpbGUgbW9kZSAxMDA2NDQ8YnI+CmluZGV4IDAwMDAwMDAuLmZjM2FlMzc8 YnI+Ci0tLSAvZGV2L251bGw8YnI+CisrKyBiL3NyYy9ib3gvY3RsLmM8YnI+CkBAIC0wLDAgKzEs NjMgQEA8YnI+CisvKjxicj4KKyAqIENvcHlyaWdodCAyMDEwLTIwMTgsIFRhcmFudG9vbCBBVVRI T1JTLCBwbGVhc2Ugc2VlIEFVVEhPUlMgZmlsZS48YnI+CisgKjxicj4KKyAqIFJlZGlzdHJpYnV0 aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3I8YnI+CisgKiB3 aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs b3dpbmc8YnI+CisgKiBjb25kaXRpb25zIGFyZSBtZXQ6PGJyPgorICo8YnI+CisgKiAxLiBSZWRp c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlPGJyPgorICog ICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZTxicj4K KyAqICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLjxicj4KKyAqPGJyPgorICogMi4gUmVkaXN0cmli dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZTxicj4KKyAqICAg IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93 aW5nPGJyPgorICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro ZXIgbWF0ZXJpYWxzPGJyPgorICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLjxi cj4KKyAqPGJyPgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSAmbHQ7Q09QWVJJR0hU IEhPTERFUiZndDsgYGBBUyBJUycnIEFORDxicj4KKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQ8YnI+CisgKiBUTywgVEhFIElN UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SPGJyPgor ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM PGJyPgorICogJmx0O0NPUFlSSUdIVCBIT0xERVImZ3Q7IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC TEUgRk9SIEFOWSBESVJFQ1QsPGJyPgorICogSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTDxicj4KKyAqIERBTUFHRVMgKElOQ0xVRElORywg QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRjxicj4KKyAqIFNVQlNUSVRVVEUgR09P RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUjxicj4KKyAq IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg T0Y8YnI+CisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ VFksIE9SIFRPUlQ8YnI+CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GPGJyPgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GPGJyPgorICogU1VDSCBEQU1B R0UuPGJyPgorICovPGJyPgorI2luY2x1ZGUgJmx0O2xpYi9zbWFsbC9zbWFsbC9ybGlzdC5oJmd0 Ozxicj4KKyNpbmNsdWRlICZsdDt0cmlnZ2VyLmgmZ3Q7PGJyPgorI2luY2x1ZGUgJmx0O2JveC9j dGwuaCZndDs8YnI+CisjaW5jbHVkZSAiZXJyY29kZS5oIjxicj4KKyNpbmNsdWRlICJlcnJvci5o Ijxicj4KKyNpbmNsdWRlICZsdDtleGNlcHRpb24uaCZndDs8YnI+Cis8YnI+CitSTElTVF9IRUFE KG9uX2N0bF9ldmVudCk7PGJyPgorPGJyPgoraW50PGJyPgorcnVuX29uX2N0bF9ldmVudF90cmln Z2Vycyhjb25zdCBzdHJ1Y3Qgb25fY3RsX2V2ZW50X2N0eCAqcmVzdWx0KSB7PGJyPgorCXJldHVy biB0cmlnZ2VyX3J1bigmYW1wO29uX2N0bF9ldmVudCwgKHZvaWQgKikgcmVzdWx0KTs8YnI+Cit9 PGJyPgorPGJyPgoraW50PGJyPgorcnVuX29uX2N0bF9ldmVudF90cmlnZ2VyX3R5cGUoZW51bSBj dGxfZXZlbnRfdHlwZSB0eXBlKTxicj4KK3s8YnI+CisJc3RydWN0IG9uX2N0bF9ldmVudF9jdHgg Y3R4ID0ge307PGJyPgorCWN0eC50eXBlID0gdHlwZTs8YnI+CisJcmV0dXJuIHJ1bl9vbl9jdGxf ZXZlbnRfdHJpZ2dlcnMoJmFtcDtjdHgpOzxicj4KK308YnI+Cis8YnI+CitpbnQ8YnI+CitjZmdf cmVzZXRfb25fY3RsX2V2ZW50KCk8YnI+Cit7PGJyPgorCWlmIChjZmdfcmVzZXRfdHJpZ2dlcigi b25fY3RsX2V2ZW50IiwgJmFtcDtvbl9jdGxfZXZlbnQsPGJyPgorCQlsYm94X3B1c2hfb25fY3Rs X2V2ZW50LCBOVUxMKSAmbHQ7IDApIHs8YnI+CisJCWRpYWdfc2V0KENsaWVudEVycm9yLCBFUl9D RkcsICJvbl9jdGxfZXZlbnQiLDxicj4KKwkJCSAiZXhwZWN0ZWQgZnVuY3Rpb24gb3IgdGFibGUi KTs8YnI+CisJCXJldHVybiAtMTs8YnI+CisJfTxicj4KKwlyZXR1cm4gMDs8YnI+Cit9PGJyPgpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGU8YnI+CmRpZmYgLS1naXQgYS9zcmMvYm94L2N0bC5o IGIvc3JjL2JveC9jdGwuaDxicj4KbmV3IGZpbGUgbW9kZSAxMDA2NDQ8YnI+CmluZGV4IDAwMDAw MDAuLjFkYmI2YmU8YnI+Ci0tLSAvZGV2L251bGw8YnI+CisrKyBiL3NyYy9ib3gvY3RsLmg8YnI+ CkBAIC0wLDAgKzEsODEgQEA8YnI+CisjaWZuZGVmIElOQ0xVREVTX1RBUkFOVE9PTF9DVExfSDxi cj4KKyNkZWZpbmUgSU5DTFVERVNfVEFSQU5UT09MX0NUTF9IPGJyPgorPGJyPgorLyo8YnI+Cisg KiBDb3B5cmlnaHQgMjAxMC0yMDE4LCBUYXJhbnRvb2wgQVVUSE9SUywgcGxlYXNlIHNlZSBBVVRI T1JTIGZpbGUuPGJyPgorICo8YnI+CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yPGJyPgorICogd2l0aG91dCBtb2RpZmljYXRpb24s IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nPGJyPgorICogY29uZGl0 aW9ucyBhcmUgbWV0Ojxicj4KKyAqPGJyPgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZTxicj4KKyAqICAgIGNvcHlyaWdodCBub3RpY2Us IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGU8YnI+CisgKiAgICBmb2xsb3dpbmcgZGlz Y2xhaW1lci48YnI+CisgKjxicj4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmU8YnI+CisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0 aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZzxicj4KKyAqICAgIGRpc2Ns YWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFsczxicj4KKyAq ICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi48YnI+CisgKjxicj4KKyAqIFRISVMg U09GVFdBUkUgSVMgUFJPVklERUQgQlkgJmx0O0NPUFlSSUdIVCBIT0xERVImZ3Q7IGBgQVMgSVMn JyBBTkQ8YnI+CisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO RywgQlVUIE5PVCBMSU1JVEVEPGJyPgorICogVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUjxicj4KKyAqIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTDxicj4KKyAqICZsdDtDT1BZUklH SFQgSE9MREVSJmd0OyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULDxi cj4KKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF UVVFTlRJQUw8YnI+CisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg UFJPQ1VSRU1FTlQgT0Y8YnI+CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1I8YnI+CisgKiBCVVNJTkVTUyBJTlRFUlJVUFRJ T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GPGJyPgorICogTElBQklMSVRZ LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUPGJyPgorICog KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V VCBPRjxicj4KKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G IFRIRSBQT1NTSUJJTElUWSBPRjxicj4KKyAqIFNVQ0ggREFNQUdFLjxicj4KKyAqLzxicj4KKzxi cj4KKyNpbmNsdWRlICZsdDtjZmcuaCZndDs8YnI+CisjaW5jbHVkZSAmbHQ7Ym94L2x1YS9jdGwu aCZndDs8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGJyPjxibG9ja3F1b3Rl IHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRp bmc6MCAwIDAgMTBweDsiPjxkaXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRt c2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE1Mjg5ODg2OTEwMDAwMDAwNTcxX0JPRFkiPjxi cj4KKyNpbmNsdWRlICJlcnJjb2RlLmgiPGJyPgorI2luY2x1ZGUgImVycm9yLmgiPGJyPgorI2lu Y2x1ZGUgJmx0O2V4Y2VwdGlvbi5oJmd0OzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2tx dW90ZT48YnI+SSB0aGluayBsYXN0IHRocmVlIGhlYWRlcnMgYXJlIHVzZWxlc3MgaGVyZS48YnI+ PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46 MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdiBpZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxw ZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTUyODk4ODY5MTAwMDAwMDA1 NzFfQk9EWSI+PGJyPgorPGJyPgorLyoqIEdsb2JhbCBvbi1jdGxfZXZlbnQgdHJpZ2dlcnMuICov PGJyPgorZXh0ZXJuIHN0cnVjdCBybGlzdCBvbl9jdGxfZXZlbnQ7PGJyPgorPGJyPgorZW51bSBj dGxfZXZlbnRfdHlwZSB7PGJyPgorCUNUTF9FVkVOVF9TWVNURU1fU1BBQ0VfUkVDT1ZFUlksPGJy PgorCUNUTF9FVkVOVF9MT0NBTF9SRUNPVkVSWSw8YnI+CisJQ1RMX0VWRU5UX1JFQURfT05MWSw8 YnI+CisJQ1RMX0VWRU5UX1JFQURfV1JJVEUsPGJyPgorCUNUTF9FVkVOVF9TSFVURE9XTiw8YnI+ CisJQ1RMX0VWRU5UX1JFUExJQ0FTRVRfQURELDxicj4KKwlDVExfRVZFTlRfUkVQTElDQVNFVF9S RU1PVkUsPGJyPgorfTs8YnI+Cis8YnI+CitzdHJ1Y3Qgb25fY3RsX2V2ZW50X2N0eCB7PGJyPgor CWVudW0gY3RsX2V2ZW50X3R5cGUgdHlwZTs8YnI+CisJdWludDMyX3QgcmVwbGljYV9pZDs8YnI+ Cit9Ozxicj4KKzxicj4KKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKTxicj4KK2V4dGVybiAiQyIg ezxicj4KKyNlbmRpZiAvKiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAqLzxicj4KKzxicj4KKy8qKjxi cj4KKyAqIFJ1bnMgb25fY3RsX2V2ZW50IHRyaWdnZXJzIHdpdGggc3BlY2lmaWVkIGNvbnRleHQu PGJyPgorICovPGJyPgoraW50PGJyPgorcnVuX29uX2N0bF9ldmVudF90cmlnZ2Vycyhjb25zdCBz dHJ1Y3Qgb25fY3RsX2V2ZW50X2N0eCAqcmVzdWx0KTs8YnI+Cis8YnI+CisvKio8YnI+CisgKiBS dW5zIG9uX2N0bF9ldmVudCB0cmlnZ2VycyB3aXRoIHNwZWNpZmllZCB0eXBlLjxicj4KKyAqLzxi cj4KK2ludDxicj4KK3J1bl9vbl9jdGxfZXZlbnRfdHJpZ2dlcl90eXBlKGVudW0gY3RsX2V2ZW50 X3R5cGUgdHlwZSk7PGJyPgorPGJyPgoraW50PGJyPgorY2ZnX3Jlc2V0X29uX2N0bF9ldmVudCgp Ozxicj4KKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKTxicj4KK30gLyogZXh0ZXJuICJDIiAqLzxi cj4KKyNlbmRpZiAvKiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAqLzxicj4KKzxicj4KKyNlbmRpZiAv KiBJTkNMVURFU19UQVJBTlRPT0xfTFVBX0NUTF9IICovPGJyPgpkaWZmIC0tZ2l0IGEvc3JjL2Jv eC9sdWEvY2ZnLmNjIGIvc3JjL2JveC9sdWEvY2ZnLmNjPGJyPgppbmRleCA1YWZlYmM5Li5jOTI0 NzhmIDEwMDY0NDxicj4KLS0tIGEvc3JjL2JveC9sdWEvY2ZnLmNjPGJyPgorKysgYi9zcmMvYm94 L2x1YS9jZmcuY2M8YnI+CkBAIC0yNTQsNiArMjU0LDE3IEBAIGxib3hfY2ZnX3NldF9uZXRfbXNn X21heChzdHJ1Y3QgbHVhX1N0YXRlICpMKTxicj4KJm5ic3A7fTxicj48YnI+CiZuYnNwO3N0YXRp YyBpbnQ8YnI+CitsYm94X2NmZ19zZXRfb25fY3RsX2V2ZW50KHN0cnVjdCBsdWFfU3RhdGUgKkwp PGJyPgorezxicj4KKwl0cnkgezxicj4KKwkJYm94X3NldF9vbl9jdGxfZXZlbnQoKTs8YnI+CisJ fSBjYXRjaCAoRXhjZXB0aW9uICopIHs8YnI+CisJCWx1YVRfZXJyb3IoTCk7PGJyPgorCX08YnI+ CisJcmV0dXJuIDA7PGJyPgorfTxicj4KKzxicj4KK3N0YXRpYyBpbnQ8YnI+CiZuYnNwO2xib3hf Y2ZnX3NldF93b3JrZXJfcG9vbF90aHJlYWRzKHN0cnVjdCBsdWFfU3RhdGUgKkwpPGJyPgombmJz cDt7PGJyPgombmJzcDsJKHZvaWQpIEw7PGJyPgpAQCAtMzMxLDYgKzM0Miw3IEBAIGJveF9sdWFf Y2ZnX2luaXQoc3RydWN0IGx1YV9TdGF0ZSAqTCk8YnI+CiZuYnNwOwkJeyJjZmdfc2V0X3JlcGxp Y2F0aW9uX3NraXBfY29uZmxpY3QiLCBsYm94X2NmZ19zZXRfcmVwbGljYXRpb25fc2tpcF9jb25m bGljdH0sPGJyPgombmJzcDsJCXsiY2ZnX3NldF9yZXBsaWNhdGlvbl9jb25uZWN0X3RpbWVvdXQi LCBsYm94X2NmZ19zZXRfcmVwbGljYXRpb25fY29ubmVjdF90aW1lb3V0fSw8YnI+CiZuYnNwOwkJ eyJjZmdfc2V0X25ldF9tc2dfbWF4IiwgbGJveF9jZmdfc2V0X25ldF9tc2dfbWF4fSw8YnI+CisJ CXsiY2ZnX3NldF9vbl9jdGxfZXZlbnQiLCBsYm94X2NmZ19zZXRfb25fY3RsX2V2ZW50fSw8YnI+ CiZuYnNwOwkJe05VTEwsIE5VTEx9PGJyPgombmJzcDsJfTs8YnI+PGJyPgpkaWZmIC0tZ2l0IGEv c3JjL2JveC9sdWEvY3RsLmMgYi9zcmMvYm94L2x1YS9jdGwuYzxicj4KaW5kZXggOWExMDVlZC4u NTJmMzIwYSAxMDA2NDQ8YnI+Ci0tLSBhL3NyYy9ib3gvbHVhL2N0bC5jPGJyPgorKysgYi9zcmMv Ym94L2x1YS9jdGwuYzxicj4KQEAgLTM1LDYgKzM1LDggQEA8YnI+CiZuYnNwOyNpbmNsdWRlICZs dDtsdWEuaCZndDs8YnI+CiZuYnNwOyNpbmNsdWRlICZsdDtsYXV4bGliLmgmZ3Q7PGJyPgombmJz cDsjaW5jbHVkZSAmbHQ7bHVhbGliLmgmZ3Q7PGJyPgorI2luY2x1ZGUgJmx0O2x1YS90cmlnZ2Vy LmgmZ3Q7PGJyPgorI2luY2x1ZGUgJmx0O2JveC9jdGwuaCZndDs8YnI+PGJyPgombmJzcDsjaW5j bHVkZSAibHVhL3V0aWxzLmgiPGJyPjxicj4KQEAgLTY0LDkgKzY2LDM3IEBAIGxib3hfY3RsX3dh aXRfcncoc3RydWN0IGx1YV9TdGF0ZSAqTCk8YnI+CiZuYnNwOwlyZXR1cm4gMDs8YnI+CiZuYnNw O308YnI+PGJyPgorPGJyPgoraW50PGJyPgorbGJveF9wdXNoX29uX2N0bF9ldmVudChzdHJ1Y3Qg bHVhX1N0YXRlICpMLCB2b2lkICpldmVudCk8YnI+Cit7PGJyPgorCXN0cnVjdCBvbl9jdGxfZXZl bnRfY3R4ICpjdHggPSAoc3RydWN0IG9uX2N0bF9ldmVudF9jdHggKikgZXZlbnQ7PGJyPgorCWx1 YV9uZXd0YWJsZShMKTs8YnI+CisJbHVhX3B1c2hzdHJpbmcoTCwgInR5cGUiKTs8YnI+CisJbHVh X3B1c2hpbnRlZ2VyKEwsIGN0eC0mZ3Q7dHlwZSk7PGJyPgorCWx1YV9zZXR0YWJsZShMLCAtMyk7 PGJyPgorPGJyPgorCWlmIChjdHgtJmd0O3R5cGUgPT0gQ1RMX0VWRU5UX1JFUExJQ0FTRVRfQURE IHx8PGJyPgorCQljdHgtJmd0O3R5cGUgPT0gQ1RMX0VWRU5UX1JFUExJQ0FTRVRfUkVNT1ZFKSB7 PGJyPgorCQlsdWFfcHVzaHN0cmluZyhMLCAicmVwbGljYV9pZCIpOzxicj4KKwkJbHVhTF9wdXNo dWludDY0KEwsIGN0eC0mZ3Q7cmVwbGljYV9pZCk7PGJyPgorCQlsdWFfc2V0dGFibGUoTCwgLTMp Ozxicj4KKwl9PGJyPgorCXJldHVybiAxOzxicj4KK308YnI+Cis8YnI+CitzdGF0aWMgaW50PGJy PgorbGJveF9vbl9jdGxfZXZlbnQoc3RydWN0IGx1YV9TdGF0ZSAqTCk8YnI+Cit7PGJyPgorCXJl dHVybiBsYm94X3RyaWdnZXJfcmVzZXQoTCwgMiwgJmFtcDtvbl9jdGxfZXZlbnQsPGJyPgorCQkJ CSAgbGJveF9wdXNoX29uX2N0bF9ldmVudCwgTlVMTCk7PGJyPgorfTxicj4KKzxicj4KKzxicj4K Jm5ic3A7c3RhdGljIGNvbnN0IHN0cnVjdCBsdWFMX1JlZyBsYm94X2N0bF9saWJbXSA9IHs8YnI+ CiZuYnNwOwl7IndhaXRfcm8iLCBsYm94X2N0bF93YWl0X3JvfSw8YnI+CiZuYnNwOwl7IndhaXRf cnciLCBsYm94X2N0bF93YWl0X3J3fSw8YnI+CisJeyJvbl9jdGxfZXZlbnQiLCBsYm94X29uX2N0 bF9ldmVudH0sPGJyPgombmJzcDsJe05VTEwsIE5VTEx9PGJyPgombmJzcDt9Ozxicj48YnI+CkBA IC03NSw0ICsxMDUsMjUgQEAgYm94X2x1YV9jdGxfaW5pdChzdHJ1Y3QgbHVhX1N0YXRlICpMKTxi cj4KJm5ic3A7ezxicj4KJm5ic3A7CWx1YUxfcmVnaXN0ZXJfbW9kdWxlKEwsICJib3guY3RsIiwg bGJveF9jdGxfbGliKTs8YnI+CiZuYnNwOwlsdWFfcG9wKEwsIDEpOzxicj4KKzxicj4KKwlsdWFM X2ZpbmR0YWJsZShMLCBMVUFfR0xPQkFMU0lOREVYLCAiYm94LmN0bCIsIDEpOzxicj4KKwlsdWFf bmV3dGFibGUoTCk7PGJyPgorCWx1YV9zZXRmaWVsZChMLCAtMiwgImV2ZW50Iik7PGJyPgorCWx1 YV9nZXRmaWVsZChMLCAtMSwgImV2ZW50Iik7PGJyPgorPGJyPgorCWx1YV9wdXNobnVtYmVyKEws IENUTF9FVkVOVF9TWVNURU1fU1BBQ0VfUkVDT1ZFUlkpOzxicj4KKwlsdWFfc2V0ZmllbGQoTCwg LTIsICJTWVNURU1fU1BBQ0VfUkVDT1ZFUlkiKTs8YnI+CisJbHVhX3B1c2hudW1iZXIoTCwgQ1RM X0VWRU5UX0xPQ0FMX1JFQ09WRVJZKTs8YnI+CisJbHVhX3NldGZpZWxkKEwsIC0yLCAiTE9DQUxf UkVDT1ZFUlkiKTs8YnI+CisJbHVhX3B1c2hudW1iZXIoTCwgQ1RMX0VWRU5UX1JFQURfT05MWSk7 PGJyPgorCWx1YV9zZXRmaWVsZChMLCAtMiwgIlJFQURfT05MWSIpOzxicj4KKwlsdWFfcHVzaG51 bWJlcihMLCBDVExfRVZFTlRfUkVBRF9XUklURSk7PGJyPgorCWx1YV9zZXRmaWVsZChMLCAtMiwg IlJFQURfV1JJVEUiKTs8YnI+CisJbHVhX3B1c2hudW1iZXIoTCwgQ1RMX0VWRU5UX1NIVVRET1dO KTs8YnI+CisJbHVhX3NldGZpZWxkKEwsIC0yLCAiU0hVVERPV04iKTs8YnI+CisJbHVhX3B1c2hu dW1iZXIoTCwgQ1RMX0VWRU5UX1JFUExJQ0FTRVRfQUREKTs8YnI+CisJbHVhX3NldGZpZWxkKEws IC0yLCAiQ1RMX0VWRU5UX1JFUExJQ0FTRVRfQUREIik7PGJyPgorCWx1YV9wdXNobnVtYmVyKEws IENUTF9FVkVOVF9SRVBMSUNBU0VUX1JFTU9WRSk7PGJyPgorCWx1YV9zZXRmaWVsZChMLCAtMiwg IkNUTF9FVkVOVF9SRVBMSUNBU0VUX1JFTU9WRSIpOzxicj4KKwlsdWFfcG9wKEwsIDIpOyAvKiBi b3gsIGN0bCAqLzxicj4KJm5ic3A7fTxicj4KZGlmZiAtLWdpdCBhL3NyYy9ib3gvbHVhL2N0bC5o IGIvc3JjL2JveC9sdWEvY3RsLmg8YnI+CmluZGV4IGU3YzJlZGQuLmFiNjMyMzIgMTAwNjQ0PGJy PgotLS0gYS9zcmMvYm94L2x1YS9jdGwuaDxicj4KKysrIGIvc3JjL2JveC9sdWEvY3RsLmg8YnI+ CkBAIC00MSw2ICs0MSw4IEBAIHN0cnVjdCBsdWFfU3RhdGU7PGJyPgombmJzcDt2b2lkPGJyPgom bmJzcDtib3hfbHVhX2N0bF9pbml0KHN0cnVjdCBsdWFfU3RhdGUgKkwpOzxicj48YnI+CitpbnQ8 YnI+CitsYm94X3B1c2hfb25fY3RsX2V2ZW50KHN0cnVjdCBsdWFfU3RhdGUgKkwsIHZvaWQgKmV2 ZW50KTs8YnI+CiZuYnNwOyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKTxicj4KJm5ic3A7fSAvKiBl eHRlcm4gIkMiICovPGJyPgombmJzcDsjZW5kaWYgLyogZGVmaW5lZChfX2NwbHVzcGx1cykgKi88 YnI+CmRpZmYgLS1naXQgYS9zcmMvYm94L2x1YS9sb2FkX2NmZy5sdWEgYi9zcmMvYm94L2x1YS9s b2FkX2NmZy5sdWE8YnI+CmluZGV4IDBiNjY4Y2QuLmM0ZDEzNDcgMTAwNjQ0PGJyPgotLS0gYS9z cmMvYm94L2x1YS9sb2FkX2NmZy5sdWE8YnI+CisrKyBiL3NyYy9ib3gvbHVhL2xvYWRfY2ZnLmx1 YTxicj4KQEAgLTEsNyArMSwxMSBAQDxicj4KJm5ic3A7LS0gbG9hZF9jZmcubHVhIC0gaW50ZXJu YWwgZmlsZTxicj48YnI+CiZuYnNwO2xvY2FsIGxvZyA9IHJlcXVpcmUoJ2xvZycpPGJyPgotbG9j YWwganNvbiA9IHJlcXVpcmUoJ2pzb24nKTxicj4KK2xvY2FsIGpzb24gPSByZXF1aXJlKCJqc29u IikubmV3KCk8YnI+Citqc29uLmNmZ3s8YnI+CisgICAgZW5jb2RlX3VzZV90b3N0cmluZyAgICA9 IHRydWUsPGJyPgorfTxicj4KKzxicj4KJm5ic3A7bG9jYWwgcHJpdmF0ZSA9IHJlcXVpcmUoJ2Jv eC5pbnRlcm5hbCcpPGJyPgombmJzcDtsb2NhbCB1cmlsaWIgPSByZXF1aXJlKCd1cmknKTxicj4K Jm5ic3A7bG9jYWwgbWF0aCA9IHJlcXVpcmUoJ21hdGgnKTxicj4KQEAgLTY0LDYgKzY4LDcgQEAg bG9jYWwgZGVmYXVsdF9jZmcgPSB7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtm ZWVkYmFja19ob3N0ICAgICAgICAgPSAiPGEgaHJlZj0iaHR0cHM6Ly9mZWVkYmFjay50YXJhbnRv b2wuaW8iIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2ZlZWRiYWNrLnRhcmFudG9vbC5pbzwvYT4i LDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZmVlZGJhY2tfaW50ZXJ2YWwgICAg ID0gMzYwMCw8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO25ldF9tc2dfbWF4ICAg ICAgICAgICA9IDc2OCw8YnI+CisgICAgb25fY3RsX2V2ZW50ICAgICAgICAgID0gbmlsLDxicj4K Jm5ic3A7fTxicj48YnI+CiZuYnNwOy0tIHR5cGVzIG9mIGF2YWlsYWJsZSBvcHRpb25zPGJyPgpA QCAtMTI1LDYgKzEzMCw3IEBAIGxvY2FsIHRlbXBsYXRlX2NmZyA9IHs8YnI+CiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO2ZlZWRiYWNrX2hvc3QgICAgICAgICA9ICdzdHJpbmcnLDxicj4K Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZmVlZGJhY2tfaW50ZXJ2YWwgICAgID0gJ251 bWJlcicsPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtuZXRfbXNnX21heCAgICAg ICAgICAgPSAnbnVtYmVyJyw8YnI+CisgICAgb25fY3RsX2V2ZW50ICAgICAgICAgID0gJ2Z1bmN0 aW9uLCB0YWJsZScsPGJyPgombmJzcDt9PGJyPjxicj4KJm5ic3A7bG9jYWwgZnVuY3Rpb24gbm9y bWFsaXplX3VyaShwb3J0KTxicj4KQEAgLTIxNiw2ICsyMjIsNyBAQCBsb2NhbCBkeW5hbWljX2Nm ZyA9IHs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JlcGxpY2FzZXRfdXVpZCAg ICAgICAgID0gY2hlY2tfcmVwbGljYXNldF91dWlkLDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7cmVwbGljYXRpb25fc2tpcF9jb25mbGljdCA9IHByaXZhdGUuY2ZnX3NldF9yZXBs aWNhdGlvbl9za2lwX2NvbmZsaWN0LDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 bmV0X21zZ19tYXggICAgICAgICAgICAgPSBwcml2YXRlLmNmZ19zZXRfbmV0X21zZ19tYXgsPGJy PgorICAgIG9uX2N0bF9ldmVudCAgICAgICAgICAgID0gcHJpdmF0ZS5jZmdfc2V0X29uX2N0bF9l dmVudCw8YnI+CiZuYnNwO308YnI+PGJyPgombmJzcDtsb2NhbCBkeW5hbWljX2NmZ19za2lwX2F0 X2xvYWQgPSB7PGJyPgpAQCAtMjMyLDYgKzIzOSw3IEBAIGxvY2FsIGR5bmFtaWNfY2ZnX3NraXBf YXRfbG9hZCA9IHs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ZvcmNlX3JlY292 ZXJ5ICAgICAgICAgID0gdHJ1ZSw8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lu c3RhbmNlX3V1aWQgICAgICAgICAgID0gdHJ1ZSw8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO3JlcGxpY2FzZXRfdXVpZCAgICAgICAgID0gdHJ1ZSw8YnI+CisgICAgb25fY3RsX2V2 ZW50ICAgICAgICAgICAgPSB0cnVlLDxicj4KJm5ic3A7fTxicj48YnI+CiZuYnNwO2xvY2FsIGZ1 bmN0aW9uIGNvbnZlcnRfZ2Ioc2l6ZSk8YnI+CmRpZmYgLS1naXQgYS9zcmMvY2ZnLmMgYi9zcmMv Y2ZnLmM8YnI+CmluZGV4IDdjN2Q2ZTcuLmIwN2MxZjMgMTAwNjQ0PGJyPgotLS0gYS9zcmMvY2Zn LmM8YnI+CisrKyBiL3NyYy9jZmcuYzxicj4KQEAgLTE1MywzICsxNTMsNDAgQEAgY2ZnX2dldGFy cl9lbGVtKGNvbnN0IGNoYXIgKm5hbWUsIGludCBpKTxicj4KJm5ic3A7CWx1YV9wb3AodGFyYW50 b29sX0wsIDIpOzxicj4KJm5ic3A7CXJldHVybiB2YWw7PGJyPgombmJzcDt9PGJyPgorPGJyPgor aW50PGJyPgorY2ZnX3Jlc2V0X3RyaWdnZXIoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHJsaXN0 ICpsaXN0LDxicj4KKwkJICBsYm94X3B1c2hfZXZlbnRfZiBwdXNoX2V2ZW50LCBsYm94X3BvcF9l dmVudF9mIHBvcF9ldmVudCk8YnI+Cit7PGJyPgorCWNmZ19nZXQobmFtZSk7PGJyPgorCXN0cnVj dCBsdWFfU3RhdGUgKkwgPSB0YXJhbnRvb2xfTDs8YnI+CisJaWYgKGx1YV9pc25pbChMLCAtMSkp PGJyPgorCQlyZXR1cm4gMDs8YnI+CisJaWYgKCFsdWFfaXNmdW5jdGlvbihMLCAtMSkgJmFtcDsm YW1wOyAhbHVhX2lzdGFibGUoTCwgLTEpKSB7PGJyPgorCQlyZXR1cm4gLTE7PGJyPgorCX08YnI+ CisJaWYgKGx1YV9pc3RhYmxlKEwsIC0xKSkgezxicj4KKwkJbHVhX3B1c2hpbnRlZ2VyKEwsIDEp Ozxicj4KKwkJbHVhX2dldHRhYmxlKEwsIC0yKTs8YnI+CisJCWlmICghbHVhTF9pc251bGwoTCwg bHVhX2dldHRvcChMKSkgJmFtcDsmYW1wOyAhbHVhX2lzZnVuY3Rpb24oTCwgLTEpKTxicj4KKwkJ CXJldHVybiAtMTs8YnI+CisJCWJvb2wgaXNfbmlsID0gbHVhTF9pc251bGwoTCwgbHVhX2dldHRv cChMKSk7PGJyPgorCQlpZiAoaXNfbmlsKSB7PGJyPgorCQkJbHVhX3BvcChMLCAxKTs8YnI+CisJ CQlsdWFfcHVzaG5pbChMKTs8YnI+CisJCX08YnI+CisJCWx1YV9wdXNoaW50ZWdlcihMLCAyKTs8 YnI+CisJCWx1YV9nZXR0YWJsZShMLCAtMyk7PGJyPgorCQlpZiAoIWx1YV9pc2Z1bmN0aW9uKEws IC0xKSAmYW1wOyZhbXA7ICFsdWFfaXNuaWwoTCwgLTEpKTxicj4KKwkJCXJldHVybiAtMTs8YnI+ CisJCWlmIChpc19uaWwgJmFtcDsmYW1wOyBsdWFfaXNuaWwoTCwgLTEpKSB7PGJyPgorCQkJcmV0 dXJuIDA7PGJyPgorCQl9PGJyPgorCX0gZWxzZSB7PGJyPgorCQlsdWFfcHVzaG5pbChMKTs8YnI+ CisJfTxicj4KKwlpbnQgcmMgPSBsYm94X3RyaWdnZXJfcmVzZXQoTCwgbHVhX2dldHRvcChMKSwg bGlzdCw8YnI+CisJCQkJICBwdXNoX2V2ZW50LCBwb3BfZXZlbnQpOzxicj4KKwlsdWFfcG9wKEws IDEpOzxicj4KKwlyZXR1cm4gcmM7PGJyPgorfTxicj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlPGJyPgpkaWZmIC0tZ2l0IGEvc3JjL2NmZy5oIGIvc3JjL2NmZy5oPGJyPgppbmRleCA8c3Bh biBjbGFzcz0ianMtcGhvbmUtbnVtYmVyIj44NDk5Mzg4PC9zcGFuPi4uZDM2NDY1YyAxMDA2NDQ8 YnI+Ci0tLSBhL3NyYy9jZmcuaDxicj4KKysrIGIvc3JjL2NmZy5oPGJyPgpAQCAtMzIsNiArMzIs NyBAQDxicj4KJm5ic3A7Jm5ic3A7Ki88YnI+PGJyPgombmJzcDsjaW5jbHVkZSAmbHQ7c3RkaW50 LmgmZ3Q7PGJyPgorI2luY2x1ZGUgJmx0O2x1YS90cmlnZ2VyLmgmZ3Q7PGJyPjxicj4KJm5ic3A7 I2lmIGRlZmluZWQoX19jcGx1c3BsdXMpPGJyPgombmJzcDtleHRlcm4gIkMiIHs8YnI+CkBAIC02 MSw2ICs2Miw5IEBAIGNmZ19nZXRhcnJfc2l6ZShjb25zdCBjaGFyICpuYW1lKTs8YnI+CiZuYnNw O2NvbnN0IGNoYXIgKjxicj4KJm5ic3A7Y2ZnX2dldGFycl9lbGVtKGNvbnN0IGNoYXIgKm5hbWUs IGludCBpKTs8YnI+PGJyPgoraW50PGJyPgorY2ZnX3Jlc2V0X3RyaWdnZXIoY29uc3QgY2hhciAq bmFtZSwgc3RydWN0IHJsaXN0ICpsaXN0LDxicj4KKwkJICBsYm94X3B1c2hfZXZlbnRfZiBwdXNo X2V2ZW50LCBsYm94X3BvcF9ldmVudF9mIHBvcF9ldmVudCk7PGJyPgombmJzcDsjaWYgZGVmaW5l ZChfX2NwbHVzcGx1cyk8YnI+CiZuYnNwO30gLyogZXh0ZXJuICJDIiAqLzxicj4KJm5ic3A7I2Vu ZGlmIC8qIGRlZmluZWQoX19jcGx1c3BsdXMpICovPGJyPgotLSA8YnI+CjIuNy40PGJyPjxicj48 YnI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPgo8YnI+Cjxicj5CZXN0IHJl Z2FyZHMsPGJyPktvbnN0YW50aW4gQmVseWF2c2tpeTxicj5rLmJlbHlhdnNraXlAdGFyYW50b29s Lm9yZzxicj48L0JPRFk+PC9IVE1MPgo= ----ALT--3R291W653sbJZEazHBBjgkOxpesF5nVS1533037233--