From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail.pqgruber.com ([178.189.19.235]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gWM3x-0008C9-7e for ptxdist@pengutronix.de; Mon, 10 Dec 2018 14:57:33 +0100 From: Clemens Gruber Date: Mon, 10 Dec 2018 14:56:50 +0100 Message-Id: <20181210135651.6254-3-clemens.gruber@pqgruber.com> In-Reply-To: <20181210135651.6254-1-clemens.gruber@pqgruber.com> References: <20181210135651.6254-1-clemens.gruber@pqgruber.com> MIME-Version: 1.0 Subject: [ptxdist] [PATCH 2/3] grpc: new package List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Cc: Clemens Gruber Z1JQQyBpcyBhIG1vZGVybiwgb3BlbiBzb3VyY2UsIGhpZ2gtcGVyZm9ybWFuY2UgcmVtb3RlIHBy b2NlZHVyZSBjYWxsCihSUEMpIGZyYW1ld29yay4KCk9uZSBwYXRjaCBpcyBuZWNlc3NhcnkgdG8g dXNlIHRoZSBob3N0LWJ1aWx0IGdycGNfY3BwX3BsdWdpbiBiaW5hcnkgd2hlbgpjcm9zcy1jb21w aWxpbmcuIChLdWRvcyB0byB0aGUgQnVpbGRyb290IHRlYW0pClRoZSBvdGhlciBvbmUgaXMgYSBz dGFibGUgYmFja3BvcnQgcGF0Y2ggdG8gZml4IGEgbGliY2FyZXMgcHJvYmxlbS4KClNpZ25lZC1v ZmYtYnk6IENsZW1lbnMgR3J1YmVyIDxjbGVtZW5zLmdydWJlckBwcWdydWJlci5jb20+Ci0tLQog Li4ubGxvdy1wYXNzaW5nLWEtcHJlLWV4aXN0aW5nLWdycGNfY3BwLnBhdGNoIHwgIDQ4ICsrCiAu Li5pdmUtYy1hcmVzLXF1ZXJpZXMtYWZ0ZXItMTAtc2Vjb25kcy0ucGF0Y2ggfCA0NjIgKysrKysr KysrKysrKysrKysrCiBwYXRjaGVzL2dycGMtMS4xNy4wL3NlcmllcyAgICAgICAgICAgICAgICAg ICAgfCAgIDYgKwogcnVsZXMvZ3JwYy5pbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIwICsKIHJ1bGVzL2dycGMubWFrZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA3NCArKysKIHJ1bGVzL2hvc3QtZ3JwYy5pbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAxMCArCiBydWxlcy9ob3N0LWdycGMubWFrZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MzcgKysKIDcgZmlsZXMgY2hhbmdlZCwgNjU3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCBwYXRjaGVzL2dycGMtMS4xNy4wLzAwMDEtQ01ha2VMaXN0cy50eHQtYWxsb3ctcGFzc2lu Zy1hLXByZS1leGlzdGluZy1ncnBjX2NwcC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNo ZXMvZ3JwYy0xLjE3LjAvMDEwMC1DYW5jZWwtc3RpbGwtYWN0aXZlLWMtYXJlcy1xdWVyaWVzLWFm dGVyLTEwLXNlY29uZHMtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9ncnBjLTEu MTcuMC9zZXJpZXMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBydWxlcy9ncnBjLmluCiBjcmVhdGUgbW9k ZSAxMDA2NDQgcnVsZXMvZ3JwYy5tYWtlCiBjcmVhdGUgbW9kZSAxMDA2NDQgcnVsZXMvaG9zdC1n cnBjLmluCiBjcmVhdGUgbW9kZSAxMDA2NDQgcnVsZXMvaG9zdC1ncnBjLm1ha2UKCmRpZmYgLS1n aXQgYS9wYXRjaGVzL2dycGMtMS4xNy4wLzAwMDEtQ01ha2VMaXN0cy50eHQtYWxsb3ctcGFzc2lu Zy1hLXByZS1leGlzdGluZy1ncnBjX2NwcC5wYXRjaCBiL3BhdGNoZXMvZ3JwYy0xLjE3LjAvMDAw MS1DTWFrZUxpc3RzLnR4dC1hbGxvdy1wYXNzaW5nLWEtcHJlLWV4aXN0aW5nLWdycGNfY3BwLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMTRlNTM1MGE5Ci0tLSAv ZGV2L251bGwKKysrIGIvcGF0Y2hlcy9ncnBjLTEuMTcuMC8wMDAxLUNNYWtlTGlzdHMudHh0LWFs bG93LXBhc3NpbmctYS1wcmUtZXhpc3RpbmctZ3JwY19jcHAucGF0Y2gKQEAgLTAsMCArMSw0OCBA QAorRnJvbTogUm9iZXJ0IFJvc2UgPHJvYmVydHJveXJvc2VAZ21haWwuY29tPgorRGF0ZTogV2Vk LCAyOCBOb3YgMjAxOCAwOTo0MTo1MiAtMDgwMAorU3ViamVjdDogW1BBVENIXSBDTWFrZUxpc3Rz LnR4dDogYWxsb3cgcGFzc2luZyBhIHByZS1leGlzdGluZyBncnBjX2NwcF9wbHVnaW4KKworVGhl IGdycGNfY3BwX3BsdWdpbiBpcyBtZWFudCB0byBiZSBleGVjdXRlZCBkdXJpbmcgdGhlIGJ1aWxk IHByb2Nlc3MKK29mIGdycGMuIEFzIHN1Y2gsIGluIGNyb3NzLWNvbXBpbGF0aW9uIGNvbnRleHRz LCB0aGlzIHByb2dyYW0gbmVlZHMgdG8KK2JlIGJ1aWx0IGZvciB0aGUgaG9zdCBtYWNoaW5lIGFu ZCBub3QgdGhlIHRhcmdldCBtYWNoaW5lLiBJbiBvcmRlciB0bworYWxsb3cgdGhpcywgdGhpcyBj b21taXQgYWRkcyBhbiBvcHRpb24gZ1JQQ19OQVRJVkVfQ1BQX1BMVUdJTiB0aGF0IGNhbgorYmUg cGFzc2VkIG9uIHRoZSBjb21tYW5kIGxpbmUsIHdpdGggdGhlIHBhdGggdG8gYW4gZXhpc3RpbmcK K2dycGNfY3BwX3BsdWdpbiBiaW5hcnkuIElmIG5vdCBwYXNzZWQsIGdycGNfY3BwX3BsdWdpbiBp cyBidWlsdCBhcwordXN1YWwuCisKK1NpZ25lZC1vZmYtYnk6IFJvYmVydCBSb3NlIDxyb2JlcnRy b3lyb3NlQGdtYWlsLmNvbT4KKy0tLQorIENNYWtlTGlzdHMudHh0IHwgMTMgKysrKysrKysrKysr KworIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9DTWFr ZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRleCA1ODUyNWQ2YzZmMTIuLjE5NTdhNDYz MWQ5NSAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAor QEAgLTEzMjI4LDYgKzEzMjI4LDE4IEBAIHRhcmdldF9saW5rX2xpYnJhcmllcyhncnBjX2NsaQor IGVuZGlmIChnUlBDX0JVSUxEX1RFU1RTKQorIGlmIChnUlBDX0JVSUxEX0NPREVHRU4pCisgCisr aWYgKGdSUENfTkFUSVZFX0NQUF9QTFVHSU4pCisrCisrYWRkX2V4ZWN1dGFibGUoZ3JwY19jcHBf cGx1Z2luCisrICBJTVBPUlRFRAorKykKKysKKytzZXRfcHJvcGVydHkoVEFSR0VUIGdycGNfY3Bw X3BsdWdpbgorKyAgUFJPUEVSVFkgSU1QT1JURURfTE9DQVRJT04gJHtnUlBDX05BVElWRV9DUFBf UExVR0lOfQorKykKKysKKytlbHNlKCkKKysKKyBhZGRfZXhlY3V0YWJsZShncnBjX2NwcF9wbHVn aW4KKyAgIHNyYy9jb21waWxlci9jcHBfcGx1Z2luLmNjCisgKQorQEAgLTEzMjYzLDYgKzEzMjc1 LDcgQEAgaWYgKGdSUENfSU5TVEFMTCkKKyAgICAgQVJDSElWRSBERVNUSU5BVElPTiAke2dSUENf SU5TVEFMTF9MSUJESVJ9CisgICApCisgZW5kaWYoKQorK2VuZGlmKCkKKyAKKyBlbmRpZiAoZ1JQ Q19CVUlMRF9DT0RFR0VOKQorIGlmIChnUlBDX0JVSUxEX0NPREVHRU4pCmRpZmYgLS1naXQgYS9w YXRjaGVzL2dycGMtMS4xNy4wLzAxMDAtQ2FuY2VsLXN0aWxsLWFjdGl2ZS1jLWFyZXMtcXVlcmll cy1hZnRlci0xMC1zZWNvbmRzLS5wYXRjaCBiL3BhdGNoZXMvZ3JwYy0xLjE3LjAvMDEwMC1DYW5j ZWwtc3RpbGwtYWN0aXZlLWMtYXJlcy1xdWVyaWVzLWFmdGVyLTEwLXNlY29uZHMtLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMGM3Mjg5Y2YwCi0tLSAvZGV2L251 bGwKKysrIGIvcGF0Y2hlcy9ncnBjLTEuMTcuMC8wMTAwLUNhbmNlbC1zdGlsbC1hY3RpdmUtYy1h cmVzLXF1ZXJpZXMtYWZ0ZXItMTAtc2Vjb25kcy0ucGF0Y2gKQEAgLTAsMCArMSw0NjIgQEAKK0Zy b206IEFsZXhhbmRlciBQb2xjeW4gPGFwb2xjeW5AZ29vZ2xlLmNvbT4KK0RhdGU6IEZyaSwgMzAg Tm92IDIwMTggMDE6NTk6MTUgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gQ2FuY2VsIHN0aWxsLWFj dGl2ZSBjLWFyZXMgcXVlcmllcyBhZnRlciAxMCBzZWNvbmRzIHRvIGF2b2lkCisgY2hhbmNlIG9m IGRlYWRsb2NrCisKKy0tLQorIGluY2x1ZGUvZ3JwYy9pbXBsL2NvZGVnZW4vZ3JwY190eXBlcy5o ICAgICAgICB8ICA1ICsrCisgLi4uL3Jlc29sdmVyL2Rucy9jX2FyZXMvZG5zX3Jlc29sdmVyX2Fy ZXMuY2MgIHwgMTAgKysrLQorIC4uLi9kbnMvY19hcmVzL2dycGNfYXJlc19ldl9kcml2ZXIuY2Mg ICAgICAgICB8IDM2ICsrKysrKysrKysrCisgLi4uL3Jlc29sdmVyL2Rucy9jX2FyZXMvZ3JwY19h cmVzX2V2X2RyaXZlci5oIHwgIDEgKworIC4uLi9yZXNvbHZlci9kbnMvY19hcmVzL2dycGNfYXJl c193cmFwcGVyLmNjICB8IDEyICsrLS0KKyAuLi4vcmVzb2x2ZXIvZG5zL2NfYXJlcy9ncnBjX2Fy ZXNfd3JhcHBlci5oICAgfCAgNCArLQorIC4uLi9kbnMvY19hcmVzL2dycGNfYXJlc193cmFwcGVy X2ZhbGxiYWNrLmNjICB8ICAzICstCisgc3JjL2NvcmUvbGliL2lvbWdyL3Jlc29sdmVfYWRkcmVz cy5oICAgICAgICAgIHwgIDIgKy0KKyAuLi4vZG5zX3Jlc29sdmVyX2Nvbm5lY3Rpdml0eV90ZXN0 LmNjICAgICAgICAgfCAgMiArLQorIC4uLi9yZXNvbHZlcnMvZG5zX3Jlc29sdmVyX2Nvb2xkb3du X3Rlc3QuY2MgICB8ICA2ICstCisgdGVzdC9jb3JlL2VuZDJlbmQvZnV6emVycy9hcGlfZnV6emVy LmNjICAgICAgIHwgIDIgKy0KKyB0ZXN0L2NvcmUvZW5kMmVuZC9nb2F3YXlfc2VydmVyX3Rlc3Qu Y2MgICAgICAgfCAgNiArLQorIHRlc3QvY3BwL25hbWluZy9jYW5jZWxfYXJlc19xdWVyeV90ZXN0 LmNjICAgICB8IDU5ICsrKysrKysrKysrKysrKysrLS0KKyAxMyBmaWxlcyBjaGFuZ2VkLCAxMjYg aW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2dy cGMvaW1wbC9jb2RlZ2VuL2dycGNfdHlwZXMuaCBiL2luY2x1ZGUvZ3JwYy9pbXBsL2NvZGVnZW4v Z3JwY190eXBlcy5oCitpbmRleCAxN2E0M2ZhYjBmMTkuLjU4ZjAyZGM3MjIxYyAxMDA2NDQKKy0t LSBhL2luY2x1ZGUvZ3JwYy9pbXBsL2NvZGVnZW4vZ3JwY190eXBlcy5oCisrKysgYi9pbmNsdWRl L2dycGMvaW1wbC9jb2RlZ2VuL2dycGNfdHlwZXMuaAorQEAgLTM1MCw2ICszNTAsMTEgQEAgdHlw ZWRlZiBzdHJ1Y3QgeworIC8qKiBJZiBzZXQsIGluaGliaXRzIGhlYWx0aCBjaGVja2luZyAod2hp Y2ggbWF5IGJlIGVuYWJsZWQgdmlhIHRoZQorICAqICBzZXJ2aWNlIGNvbmZpZy4pICovCisgI2Rl ZmluZSBHUlBDX0FSR19JTkhJQklUX0hFQUxUSF9DSEVDS0lORyAiZ3JwYy5pbmhpYml0X2hlYWx0 aF9jaGVja2luZyIKKysvKiogSWYgc2V0LCBkZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgbWlsbGlz ZWNvbmRzIHRoYXQgdGhlIGMtYXJlcyBiYXNlZAorKyAqIEROUyByZXNvbHZlciB3aWxsIHdhaXQg b24gcXVlcmllcyBiZWZvcmUgY2FuY2VsbGluZyB0aGVtLiBUaGUgZGVmYXVsdCB2YWx1ZQorKyAq IGlzIDEwMDAwLiBTZXR0aW5nIHRoaXMgdG8gIjAiIHdpbGwgZGlzYWJsZSBjLWFyZXMgcXVlcnkg dGltZW91dHMKKysgKiBlbnRpcmVseS4gKi8KKysjZGVmaW5lIEdSUENfQVJHX0ROU19BUkVTX1FV RVJZX1RJTUVPVVRfTVMgImdycGMuZG5zX2FyZXNfcXVlcnlfdGltZW91dCIKKyAvKiogXH0gKi8K KyAKKyAvKiogUmVzdWx0IG9mIGEgZ3JwYyBjYWxsLiBJZiB0aGUgY2FsbGVyIHNhdGlzZmllcyB0 aGUgcHJlcmVxdWlzaXRlcyBvZiBhCitkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvZXh0L2ZpbHRlcnMv Y2xpZW50X2NoYW5uZWwvcmVzb2x2ZXIvZG5zL2NfYXJlcy9kbnNfcmVzb2x2ZXJfYXJlcy5jYyBi L3NyYy9jb3JlL2V4dC9maWx0ZXJzL2NsaWVudF9jaGFubmVsL3Jlc29sdmVyL2Rucy9jX2FyZXMv ZG5zX3Jlc29sdmVyX2FyZXMuY2MKK2luZGV4IDkwYmM4ODk2MWQ5NS4uNGViYzJjODE2MWMyIDEw MDY0NAorLS0tIGEvc3JjL2NvcmUvZXh0L2ZpbHRlcnMvY2xpZW50X2NoYW5uZWwvcmVzb2x2ZXIv ZG5zL2NfYXJlcy9kbnNfcmVzb2x2ZXJfYXJlcy5jYworKysrIGIvc3JjL2NvcmUvZXh0L2ZpbHRl cnMvY2xpZW50X2NoYW5uZWwvcmVzb2x2ZXIvZG5zL2NfYXJlcy9kbnNfcmVzb2x2ZXJfYXJlcy5j YworQEAgLTEyMiw2ICsxMjIsOCBAQCBjbGFzcyBBcmVzRG5zUmVzb2x2ZXIgOiBwdWJsaWMgUmVz b2x2ZXIgeworICAgY2hhciogc2VydmljZV9jb25maWdfanNvbl8gPSBudWxscHRyOworICAgLy8g aGFzIHNodXRkb3duIGJlZW4gaW5pdGlhdGVkCisgICBib29sIHNodXRkb3duX2luaXRpYXRlZF8g PSBmYWxzZTsKKysgIC8vIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIGZvciBhY3RpdmUgRE5TIHF1 ZXJpZXMKKysgIGludCBxdWVyeV90aW1lb3V0X21zXzsKKyB9OworIAorIEFyZXNEbnNSZXNvbHZl cjo6QXJlc0Ruc1Jlc29sdmVyKGNvbnN0IFJlc29sdmVyQXJncyYgYXJncykKK0BAIC0xNTksNiAr MTYxLDExIEBAIEFyZXNEbnNSZXNvbHZlcjo6QXJlc0Ruc1Jlc29sdmVyKGNvbnN0IFJlc29sdmVy QXJncyYgYXJncykKKyAgICAgICAgICAgICAgICAgICAgIGdycGNfY29tYmluZXJfc2NoZWR1bGVy KGNvbWJpbmVyKCkpKTsKKyAgIEdSUENfQ0xPU1VSRV9JTklUKCZvbl9yZXNvbHZlZF8sIE9uUmVz b2x2ZWRMb2NrZWQsIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICBncnBjX2NvbWJpbmVyX3Nj aGVkdWxlcihjb21iaW5lcigpKSk7CisrICBjb25zdCBncnBjX2FyZyogcXVlcnlfdGltZW91dF9t c19hcmcgPQorKyAgICAgIGdycGNfY2hhbm5lbF9hcmdzX2ZpbmQoY2hhbm5lbF9hcmdzXywgR1JQ Q19BUkdfRE5TX0FSRVNfUVVFUllfVElNRU9VVF9NUyk7CisrICBxdWVyeV90aW1lb3V0X21zXyA9 IGdycGNfY2hhbm5lbF9hcmdfZ2V0X2ludGVnZXIoCisrICAgICAgcXVlcnlfdGltZW91dF9tc19h cmcsCisrICAgICAge0dSUENfRE5TX0FSRVNfREVGQVVMVF9RVUVSWV9USU1FT1VUX01TLCAwLCBJ TlRfTUFYfSk7CisgfQorIAorIEFyZXNEbnNSZXNvbHZlcjo6fkFyZXNEbnNSZXNvbHZlcigpIHsK K0BAIC00MTAsNyArNDE3LDggQEAgdm9pZCBBcmVzRG5zUmVzb2x2ZXI6OlN0YXJ0UmVzb2x2aW5n TG9ja2VkKCkgeworICAgcGVuZGluZ19yZXF1ZXN0XyA9IGdycGNfZG5zX2xvb2t1cF9hcmVzX2xv Y2tlZCgKKyAgICAgICBkbnNfc2VydmVyXywgbmFtZV90b19yZXNvbHZlXywga0RlZmF1bHRQb3J0 LCBpbnRlcmVzdGVkX3BhcnRpZXNfLAorICAgICAgICZvbl9yZXNvbHZlZF8sICZsYl9hZGRyZXNz ZXNfLCB0cnVlIC8qIGNoZWNrX2dycGNsYiAqLywKKy0gICAgICByZXF1ZXN0X3NlcnZpY2VfY29u ZmlnXyA/ICZzZXJ2aWNlX2NvbmZpZ19qc29uXyA6IG51bGxwdHIsIGNvbWJpbmVyKCkpOworKyAg ICAgIHJlcXVlc3Rfc2VydmljZV9jb25maWdfID8gJnNlcnZpY2VfY29uZmlnX2pzb25fIDogbnVs bHB0ciwKKysgICAgICBxdWVyeV90aW1lb3V0X21zXywgY29tYmluZXIoKSk7CisgICBsYXN0X3Jl c29sdXRpb25fdGltZXN0YW1wXyA9IGdycGNfY29yZTo6RXhlY0N0eDo6R2V0KCktPk5vdygpOwor IH0KKyAKK2RpZmYgLS1naXQgYS9zcmMvY29yZS9leHQvZmlsdGVycy9jbGllbnRfY2hhbm5lbC9y ZXNvbHZlci9kbnMvY19hcmVzL2dycGNfYXJlc19ldl9kcml2ZXIuY2MgYi9zcmMvY29yZS9leHQv ZmlsdGVycy9jbGllbnRfY2hhbm5lbC9yZXNvbHZlci9kbnMvY19hcmVzL2dycGNfYXJlc19ldl9k cml2ZXIuY2MKK2luZGV4IGZkYmQwN2ViZjUxNy4uZjQyYjFlMzA5ZGZjIDEwMDY0NAorLS0tIGEv c3JjL2NvcmUvZXh0L2ZpbHRlcnMvY2xpZW50X2NoYW5uZWwvcmVzb2x2ZXIvZG5zL2NfYXJlcy9n cnBjX2FyZXNfZXZfZHJpdmVyLmNjCisrKysgYi9zcmMvY29yZS9leHQvZmlsdGVycy9jbGllbnRf Y2hhbm5lbC9yZXNvbHZlci9kbnMvY19hcmVzL2dycGNfYXJlc19ldl9kcml2ZXIuY2MKK0BAIC0z Myw2ICszMyw3IEBACisgI2luY2x1ZGUgInNyYy9jb3JlL2xpYi9ncHIvc3RyaW5nLmgiCisgI2lu Y2x1ZGUgInNyYy9jb3JlL2xpYi9pb21nci9pb21ncl9pbnRlcm5hbC5oIgorICNpbmNsdWRlICJz cmMvY29yZS9saWIvaW9tZ3Ivc29ja2FkZHJfdXRpbHMuaCIKKysjaW5jbHVkZSAic3JjL2NvcmUv bGliL2lvbWdyL3RpbWVyLmgiCisgCisgdHlwZWRlZiBzdHJ1Y3QgZmRfbm9kZSB7CisgICAvKiog dGhlIG93bmVyIG9mIHRoaXMgZmQgbm9kZSAqLworQEAgLTc2LDYgKzc3LDEyIEBAIHN0cnVjdCBn cnBjX2FyZXNfZXZfZHJpdmVyIHsKKyAgIGdycGNfYXJlc19yZXF1ZXN0KiByZXF1ZXN0OworICAg LyoqIE93bmVkIGJ5IHRoZSBldl9kcml2ZXIuIENyZWF0ZXMgbmV3IEdycGNQb2xsZWRGZCdzICov CisgICBncnBjX2NvcmU6OlVuaXF1ZVB0cjxncnBjX2NvcmU6OkdycGNQb2xsZWRGZEZhY3Rvcnk+ IHBvbGxlZF9mZF9mYWN0b3J5OworKyAgLyoqIHF1ZXJ5IHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRz ICovCisrICBpbnQgcXVlcnlfdGltZW91dF9tczsKKysgIC8qKiBhbGFybSB0byBjYW5jZWwgYWN0 aXZlIHF1ZXJpZXMgKi8KKysgIGdycGNfdGltZXIgcXVlcnlfdGltZW91dDsKKysgIC8qKiBjYW5j ZWxzIHF1ZXJpZXMgb24gYSB0aW1lb3V0ICovCisrICBncnBjX2Nsb3N1cmUgb25fdGltZW91dF9s b2NrZWQ7CisgfTsKKyAKKyBzdGF0aWMgdm9pZCBncnBjX2FyZXNfbm90aWZ5X29uX2V2ZW50X2xv Y2tlZChncnBjX2FyZXNfZXZfZHJpdmVyKiBldl9kcml2ZXIpOworQEAgLTExNiw4ICsxMjMsMTEg QEAgc3RhdGljIHZvaWQgZmRfbm9kZV9zaHV0ZG93bl9sb2NrZWQoZmRfbm9kZSogZmRuLCBjb25z dCBjaGFyKiByZWFzb24pIHsKKyAgIH0KKyB9CisgCisrc3RhdGljIHZvaWQgb25fdGltZW91dF9s b2NrZWQodm9pZCogYXJnLCBncnBjX2Vycm9yKiBlcnJvcik7CisrCisgZ3JwY19lcnJvciogZ3Jw Y19hcmVzX2V2X2RyaXZlcl9jcmVhdGVfbG9ja2VkKGdycGNfYXJlc19ldl9kcml2ZXIqKiBldl9k cml2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdy cGNfcG9sbHNldF9zZXQqIHBvbGxzZXRfc2V0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgcXVlcnlfdGltZW91dF9tcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JwY19jb21iaW5lciogY29tYmluZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdycGNfYXJl c19yZXF1ZXN0KiByZXF1ZXN0KSB7CisgICAqZXZfZHJpdmVyID0gZ3JwY19jb3JlOjpOZXc8Z3Jw Y19hcmVzX2V2X2RyaXZlcj4oKTsKK0BAIC0xNDYsNiArMTU2LDkgQEAgZ3JwY19lcnJvciogZ3Jw Y19hcmVzX2V2X2RyaXZlcl9jcmVhdGVfbG9ja2VkKGdycGNfYXJlc19ldl9kcml2ZXIqKiBldl9k cml2ZXIsCisgICAgICAgZ3JwY19jb3JlOjpOZXdHcnBjUG9sbGVkRmRGYWN0b3J5KCgqZXZfZHJp dmVyKS0+Y29tYmluZXIpOworICAgKCpldl9kcml2ZXIpCisgICAgICAgLT5wb2xsZWRfZmRfZmFj dG9yeS0+Q29uZmlndXJlQXJlc0NoYW5uZWxMb2NrZWQoKCpldl9kcml2ZXIpLT5jaGFubmVsKTsK KysgIEdSUENfQ0xPU1VSRV9JTklUKCYoKmV2X2RyaXZlciktPm9uX3RpbWVvdXRfbG9ja2VkLCBv bl90aW1lb3V0X2xvY2tlZCwKKysgICAgICAgICAgICAgICAgICAgICpldl9kcml2ZXIsIGdycGNf Y29tYmluZXJfc2NoZWR1bGVyKGNvbWJpbmVyKSk7CisrICAoKmV2X2RyaXZlciktPnF1ZXJ5X3Rp bWVvdXRfbXMgPSBxdWVyeV90aW1lb3V0X21zOworICAgcmV0dXJuIEdSUENfRVJST1JfTk9ORTsK KyB9CisgCitAQCAtMTU1LDYgKzE2OCw3IEBAIHZvaWQgZ3JwY19hcmVzX2V2X2RyaXZlcl9vbl9x dWVyaWVzX2NvbXBsZXRlX2xvY2tlZCgKKyAgIC8vIGlzIHdvcmtpbmcsIGdycGNfYXJlc19ub3Rp Znlfb25fZXZlbnRfbG9ja2VkIHdpbGwgc2h1dCBkb3duIHRoZQorICAgLy8gZmRzOyBpZiBpdCdz IG5vdCB3b3JraW5nLCB0aGVyZSBhcmUgbm8gZmRzIHRvIHNodXQgZG93bi4KKyAgIGV2X2RyaXZl ci0+c2h1dHRpbmdfZG93biA9IHRydWU7CisrICBncnBjX3RpbWVyX2NhbmNlbCgmZXZfZHJpdmVy LT5xdWVyeV90aW1lb3V0KTsKKyAgIGdycGNfYXJlc19ldl9kcml2ZXJfdW5yZWYoZXZfZHJpdmVy KTsKKyB9CisgCitAQCAtMTg1LDYgKzE5OSwxNyBAQCBzdGF0aWMgZmRfbm9kZSogcG9wX2ZkX25v ZGVfbG9ja2VkKGZkX25vZGUqKiBoZWFkLCBhcmVzX3NvY2tldF90IGFzKSB7CisgICByZXR1cm4g bnVsbHB0cjsKKyB9CisgCisrc3RhdGljIHZvaWQgb25fdGltZW91dF9sb2NrZWQodm9pZCogYXJn LCBncnBjX2Vycm9yKiBlcnJvcikgeworKyAgZ3JwY19hcmVzX2V2X2RyaXZlciogZHJpdmVyID0g c3RhdGljX2Nhc3Q8Z3JwY19hcmVzX2V2X2RyaXZlcio+KGFyZyk7CisrICBHUlBDX0NBUkVTX1RS QUNFX0xPRygKKysgICAgICAiZXZfZHJpdmVyPSVwIG9uX3RpbWVvdXRfbG9ja2VkLiBkcml2ZXIt PnNodXR0aW5nX2Rvd249JWQuIGVycj0lcyIsCisrICAgICAgZHJpdmVyLCBkcml2ZXItPnNodXR0 aW5nX2Rvd24sIGdycGNfZXJyb3Jfc3RyaW5nKGVycm9yKSk7CisrICBpZiAoIWRyaXZlci0+c2h1 dHRpbmdfZG93biAmJiBlcnJvciA9PSBHUlBDX0VSUk9SX05PTkUpIHsKKysgICAgZ3JwY19hcmVz X2V2X2RyaXZlcl9zaHV0ZG93bl9sb2NrZWQoZHJpdmVyKTsKKysgIH0KKysgIGdycGNfYXJlc19l dl9kcml2ZXJfdW5yZWYoZHJpdmVyKTsKKyt9CisrCisgc3RhdGljIHZvaWQgb25fcmVhZGFibGVf bG9ja2VkKHZvaWQqIGFyZywgZ3JwY19lcnJvciogZXJyb3IpIHsKKyAgIGZkX25vZGUqIGZkbiA9 IHN0YXRpY19jYXN0PGZkX25vZGUqPihhcmcpOworICAgZ3JwY19hcmVzX2V2X2RyaXZlciogZXZf ZHJpdmVyID0gZmRuLT5ldl9kcml2ZXI7CitAQCAtMzE0LDYgKzMzOSwxNyBAQCB2b2lkIGdycGNf YXJlc19ldl9kcml2ZXJfc3RhcnRfbG9ja2VkKGdycGNfYXJlc19ldl9kcml2ZXIqIGV2X2RyaXZl cikgeworICAgaWYgKCFldl9kcml2ZXItPndvcmtpbmcpIHsKKyAgICAgZXZfZHJpdmVyLT53b3Jr aW5nID0gdHJ1ZTsKKyAgICAgZ3JwY19hcmVzX25vdGlmeV9vbl9ldmVudF9sb2NrZWQoZXZfZHJp dmVyKTsKKysgICAgZ3JwY19taWxsaXMgdGltZW91dCA9CisrICAgICAgICBldl9kcml2ZXItPnF1 ZXJ5X3RpbWVvdXRfbXMgPT0gMAorKyAgICAgICAgICAgID8gR1JQQ19NSUxMSVNfSU5GX0ZVVFVS RQorKyAgICAgICAgICAgIDogZXZfZHJpdmVyLT5xdWVyeV90aW1lb3V0X21zICsgZ3JwY19jb3Jl OjpFeGVjQ3R4OjpHZXQoKS0+Tm93KCk7CisrICAgIEdSUENfQ0FSRVNfVFJBQ0VfTE9HKAorKyAg ICAgICAgImV2X2RyaXZlcj0lcCBncnBjX2FyZXNfZXZfZHJpdmVyX3N0YXJ0X2xvY2tlZC4gdGlt ZW91dCBpbiAlIiBQUklkNjQKKysgICAgICAgICIgbXMiLAorKyAgICAgICAgZXZfZHJpdmVyLCB0 aW1lb3V0KTsKKysgICAgZ3JwY19hcmVzX2V2X2RyaXZlcl9yZWYoZXZfZHJpdmVyKTsKKysgICAg Z3JwY190aW1lcl9pbml0KCZldl9kcml2ZXItPnF1ZXJ5X3RpbWVvdXQsIHRpbWVvdXQsCisrICAg ICAgICAgICAgICAgICAgICAmZXZfZHJpdmVyLT5vbl90aW1lb3V0X2xvY2tlZCk7CisgICB9Cisg fQorIAorZGlmZiAtLWdpdCBhL3NyYy9jb3JlL2V4dC9maWx0ZXJzL2NsaWVudF9jaGFubmVsL3Jl c29sdmVyL2Rucy9jX2FyZXMvZ3JwY19hcmVzX2V2X2RyaXZlci5oIGIvc3JjL2NvcmUvZXh0L2Zp bHRlcnMvY2xpZW50X2NoYW5uZWwvcmVzb2x2ZXIvZG5zL2NfYXJlcy9ncnBjX2FyZXNfZXZfZHJp dmVyLmgKK2luZGV4IDY3MWM1MzdmZTcyOS4uYjhjZWZkOTQ3MGVjIDEwMDY0NAorLS0tIGEvc3Jj L2NvcmUvZXh0L2ZpbHRlcnMvY2xpZW50X2NoYW5uZWwvcmVzb2x2ZXIvZG5zL2NfYXJlcy9ncnBj X2FyZXNfZXZfZHJpdmVyLmgKKysrKyBiL3NyYy9jb3JlL2V4dC9maWx0ZXJzL2NsaWVudF9jaGFu bmVsL3Jlc29sdmVyL2Rucy9jX2FyZXMvZ3JwY19hcmVzX2V2X2RyaXZlci5oCitAQCAtNDMsNiAr NDMsNyBAQCBhcmVzX2NoYW5uZWwqIGdycGNfYXJlc19ldl9kcml2ZXJfZ2V0X2NoYW5uZWxfbG9j a2VkKAorICAgIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LiAqLworIGdycGNfZXJyb3IqIGdycGNfYXJl c19ldl9kcml2ZXJfY3JlYXRlX2xvY2tlZChncnBjX2FyZXNfZXZfZHJpdmVyKiogZXZfZHJpdmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnBjX3Bv bGxzZXRfc2V0KiBwb2xsc2V0X3NldCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IHF1ZXJ5X3RpbWVvdXRfbXMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdycGNfY29tYmluZXIqIGNvbWJpbmVyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnBjX2FyZXNfcmVx dWVzdCogcmVxdWVzdCk7CisgCitkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvZXh0L2ZpbHRlcnMvY2xp ZW50X2NoYW5uZWwvcmVzb2x2ZXIvZG5zL2NfYXJlcy9ncnBjX2FyZXNfd3JhcHBlci5jYyBiL3Ny Yy9jb3JlL2V4dC9maWx0ZXJzL2NsaWVudF9jaGFubmVsL3Jlc29sdmVyL2Rucy9jX2FyZXMvZ3Jw Y19hcmVzX3dyYXBwZXIuY2MKK2luZGV4IDU4MmUyMjAzZmM3OC4uNTU3MTU4NjliNjMzIDEwMDY0 NAorLS0tIGEvc3JjL2NvcmUvZXh0L2ZpbHRlcnMvY2xpZW50X2NoYW5uZWwvcmVzb2x2ZXIvZG5z L2NfYXJlcy9ncnBjX2FyZXNfd3JhcHBlci5jYworKysrIGIvc3JjL2NvcmUvZXh0L2ZpbHRlcnMv Y2xpZW50X2NoYW5uZWwvcmVzb2x2ZXIvZG5zL2NfYXJlcy9ncnBjX2FyZXNfd3JhcHBlci5jYwor QEAgLTM1OSw3ICszNTksNyBAQCBkb25lOgorIHZvaWQgZ3JwY19kbnNfbG9va3VwX2FyZXNfY29u dGludWVfYWZ0ZXJfY2hlY2tfbG9jYWxob3N0X2FuZF9pcF9saXRlcmFsc19sb2NrZWQoCisgICAg IGdycGNfYXJlc19yZXF1ZXN0KiByLCBjb25zdCBjaGFyKiBkbnNfc2VydmVyLCBjb25zdCBjaGFy KiBuYW1lLAorICAgICBjb25zdCBjaGFyKiBkZWZhdWx0X3BvcnQsIGdycGNfcG9sbHNldF9zZXQq IGludGVyZXN0ZWRfcGFydGllcywKKy0gICAgYm9vbCBjaGVja19ncnBjbGIsIGdycGNfY29tYmlu ZXIqIGNvbWJpbmVyKSB7CisrICAgIGJvb2wgY2hlY2tfZ3JwY2xiLCBpbnQgcXVlcnlfdGltZW91 dF9tcywgZ3JwY19jb21iaW5lciogY29tYmluZXIpIHsKKyAgIGdycGNfZXJyb3IqIGVycm9yID0g R1JQQ19FUlJPUl9OT05FOworICAgZ3JwY19hcmVzX2hvc3RieW5hbWVfcmVxdWVzdCogaHIgPSBu dWxscHRyOworICAgYXJlc19jaGFubmVsKiBjaGFubmVsID0gbnVsbHB0cjsKK0BAIC0zODgsNyAr Mzg4LDcgQEAgdm9pZCBncnBjX2Ruc19sb29rdXBfYXJlc19jb250aW51ZV9hZnRlcl9jaGVja19s b2NhbGhvc3RfYW5kX2lwX2xpdGVyYWxzX2xvY2tlZCgKKyAgICAgcG9ydCA9IGdwcl9zdHJkdXAo ZGVmYXVsdF9wb3J0KTsKKyAgIH0KKyAgIGVycm9yID0gZ3JwY19hcmVzX2V2X2RyaXZlcl9jcmVh dGVfbG9ja2VkKCZyLT5ldl9kcml2ZXIsIGludGVyZXN0ZWRfcGFydGllcywKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVyLCByKTsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5X3RpbWVvdXRfbXMsIGNv bWJpbmVyLCByKTsKKyAgIGlmIChlcnJvciAhPSBHUlBDX0VSUk9SX05PTkUpIGdvdG8gZXJyb3Jf Y2xlYW51cDsKKyAgIGNoYW5uZWwgPSBncnBjX2FyZXNfZXZfZHJpdmVyX2dldF9jaGFubmVsX2xv Y2tlZChyLT5ldl9kcml2ZXIpOworICAgLy8gSWYgZG5zX3NlcnZlciBpcyBzcGVjaWZpZWQsIHVz ZSBpdC4KK0BAIC01MjIsNyArNTIyLDcgQEAgc3RhdGljIGdycGNfYXJlc19yZXF1ZXN0KiBncnBj X2Ruc19sb29rdXBfYXJlc19sb2NrZWRfaW1wbCgKKyAgICAgY29uc3QgY2hhciogZG5zX3NlcnZl ciwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogZGVmYXVsdF9wb3J0LAorICAgICBncnBj X3BvbGxzZXRfc2V0KiBpbnRlcmVzdGVkX3BhcnRpZXMsIGdycGNfY2xvc3VyZSogb25fZG9uZSwK KyAgICAgZ3JwY19sYl9hZGRyZXNzZXMqKiBhZGRycywgYm9vbCBjaGVja19ncnBjbGIsIGNoYXIq KiBzZXJ2aWNlX2NvbmZpZ19qc29uLAorLSAgICBncnBjX2NvbWJpbmVyKiBjb21iaW5lcikgewor KyAgICBpbnQgcXVlcnlfdGltZW91dF9tcywgZ3JwY19jb21iaW5lciogY29tYmluZXIpIHsKKyAg IGdycGNfYXJlc19yZXF1ZXN0KiByID0KKyAgICAgICBzdGF0aWNfY2FzdDxncnBjX2FyZXNfcmVx dWVzdCo+KGdwcl96YWxsb2Moc2l6ZW9mKGdycGNfYXJlc19yZXF1ZXN0KSkpOworICAgci0+ZXZf ZHJpdmVyID0gbnVsbHB0cjsKK0BAIC01NDYsNyArNTQ2LDcgQEAgc3RhdGljIGdycGNfYXJlc19y ZXF1ZXN0KiBncnBjX2Ruc19sb29rdXBfYXJlc19sb2NrZWRfaW1wbCgKKyAgIC8vIExvb2sgdXAg bmFtZSB1c2luZyBjLWFyZXMgbGliLgorICAgZ3JwY19kbnNfbG9va3VwX2FyZXNfY29udGludWVf YWZ0ZXJfY2hlY2tfbG9jYWxob3N0X2FuZF9pcF9saXRlcmFsc19sb2NrZWQoCisgICAgICAgciwg ZG5zX3NlcnZlciwgbmFtZSwgZGVmYXVsdF9wb3J0LCBpbnRlcmVzdGVkX3BhcnRpZXMsIGNoZWNr X2dycGNsYiwKKy0gICAgICBjb21iaW5lcik7CisrICAgICAgcXVlcnlfdGltZW91dF9tcywgY29t YmluZXIpOworICAgcmV0dXJuIHI7CisgfQorIAorQEAgLTU1NCw2ICs1NTQsNyBAQCBncnBjX2Fy ZXNfcmVxdWVzdCogKCpncnBjX2Ruc19sb29rdXBfYXJlc19sb2NrZWQpKAorICAgICBjb25zdCBj aGFyKiBkbnNfc2VydmVyLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBkZWZhdWx0X3Bv cnQsCisgICAgIGdycGNfcG9sbHNldF9zZXQqIGludGVyZXN0ZWRfcGFydGllcywgZ3JwY19jbG9z dXJlKiBvbl9kb25lLAorICAgICBncnBjX2xiX2FkZHJlc3NlcyoqIGFkZHJzLCBib29sIGNoZWNr X2dycGNsYiwgY2hhcioqIHNlcnZpY2VfY29uZmlnX2pzb24sCisrICAgIGludCBxdWVyeV90aW1l b3V0X21zLAorICAgICBncnBjX2NvbWJpbmVyKiBjb21iaW5lcikgPSBncnBjX2Ruc19sb29rdXBf YXJlc19sb2NrZWRfaW1wbDsKKyAKKyBzdGF0aWMgdm9pZCBncnBjX2NhbmNlbF9hcmVzX3JlcXVl c3RfbG9ja2VkX2ltcGwoZ3JwY19hcmVzX3JlcXVlc3QqIHIpIHsKK0BAIC02NDgsNyArNjQ5LDgg QEAgc3RhdGljIHZvaWQgZ3JwY19yZXNvbHZlX2FkZHJlc3NfaW52b2tlX2Ruc19sb29rdXBfYXJl c19sb2NrZWQoCisgICByLT5hcmVzX3JlcXVlc3QgPSBncnBjX2Ruc19sb29rdXBfYXJlc19sb2Nr ZWQoCisgICAgICAgbnVsbHB0ciAvKiBkbnNfc2VydmVyICovLCByLT5uYW1lLCByLT5kZWZhdWx0 X3BvcnQsIHItPmludGVyZXN0ZWRfcGFydGllcywKKyAgICAgICAmci0+b25fZG5zX2xvb2t1cF9k b25lX2xvY2tlZCwgJnItPmxiX2FkZHJzLCBmYWxzZSAvKiBjaGVja19ncnBjbGIgKi8sCistICAg ICAgbnVsbHB0ciAvKiBzZXJ2aWNlX2NvbmZpZ19qc29uICovLCByLT5jb21iaW5lcik7CisrICAg ICAgbnVsbHB0ciAvKiBzZXJ2aWNlX2NvbmZpZ19qc29uICovLCBHUlBDX0ROU19BUkVTX0RFRkFV TFRfUVVFUllfVElNRU9VVF9NUywKKysgICAgICByLT5jb21iaW5lcik7CisgfQorIAorIHN0YXRp YyB2b2lkIGdycGNfcmVzb2x2ZV9hZGRyZXNzX2FyZXNfaW1wbChjb25zdCBjaGFyKiBuYW1lLAor ZGlmZiAtLWdpdCBhL3NyYy9jb3JlL2V4dC9maWx0ZXJzL2NsaWVudF9jaGFubmVsL3Jlc29sdmVy L2Rucy9jX2FyZXMvZ3JwY19hcmVzX3dyYXBwZXIuaCBiL3NyYy9jb3JlL2V4dC9maWx0ZXJzL2Ns aWVudF9jaGFubmVsL3Jlc29sdmVyL2Rucy9jX2FyZXMvZ3JwY19hcmVzX3dyYXBwZXIuaAoraW5k ZXggYTEyMzFjYzRlMGQwLi45YWNlZjFkMGNhOTEgMTAwNjQ0CistLS0gYS9zcmMvY29yZS9leHQv ZmlsdGVycy9jbGllbnRfY2hhbm5lbC9yZXNvbHZlci9kbnMvY19hcmVzL2dycGNfYXJlc193cmFw cGVyLmgKKysrKyBiL3NyYy9jb3JlL2V4dC9maWx0ZXJzL2NsaWVudF9jaGFubmVsL3Jlc29sdmVy L2Rucy9jX2FyZXMvZ3JwY19hcmVzX3dyYXBwZXIuaAorQEAgLTI2LDYgKzI2LDggQEAKKyAjaW5j bHVkZSAic3JjL2NvcmUvbGliL2lvbWdyL3BvbGxpbmdfZW50aXR5LmgiCisgI2luY2x1ZGUgInNy Yy9jb3JlL2xpYi9pb21nci9yZXNvbHZlX2FkZHJlc3MuaCIKKyAKKysjZGVmaW5lIEdSUENfRE5T X0FSRVNfREVGQVVMVF9RVUVSWV9USU1FT1VUX01TIDEwMDAwCisrCisgZXh0ZXJuIGdycGNfY29y ZTo6VHJhY2VGbGFnIGdycGNfdHJhY2VfY2FyZXNfYWRkcmVzc19zb3J0aW5nOworIAorIGV4dGVy biBncnBjX2NvcmU6OlRyYWNlRmxhZyBncnBjX3RyYWNlX2NhcmVzX3Jlc29sdmVyOworQEAgLTYw LDcgKzYyLDcgQEAgZXh0ZXJuIGdycGNfYXJlc19yZXF1ZXN0KiAoKmdycGNfZG5zX2xvb2t1cF9h cmVzX2xvY2tlZCkoCisgICAgIGNvbnN0IGNoYXIqIGRuc19zZXJ2ZXIsIGNvbnN0IGNoYXIqIG5h bWUsIGNvbnN0IGNoYXIqIGRlZmF1bHRfcG9ydCwKKyAgICAgZ3JwY19wb2xsc2V0X3NldCogaW50 ZXJlc3RlZF9wYXJ0aWVzLCBncnBjX2Nsb3N1cmUqIG9uX2RvbmUsCisgICAgIGdycGNfbGJfYWRk cmVzc2VzKiogYWRkcmVzc2VzLCBib29sIGNoZWNrX2dycGNsYiwKKy0gICAgY2hhcioqIHNlcnZp Y2VfY29uZmlnX2pzb24sIGdycGNfY29tYmluZXIqIGNvbWJpbmVyKTsKKysgICAgY2hhcioqIHNl cnZpY2VfY29uZmlnX2pzb24sIGludCBxdWVyeV90aW1lb3V0X21zLCBncnBjX2NvbWJpbmVyKiBj b21iaW5lcik7CisgCisgLyogQ2FuY2VsIHRoZSBwZW5kaW5nIGdycGNfYXJlc19yZXF1ZXN0IFxh IHJlcXVlc3QgKi8KKyBleHRlcm4gdm9pZCAoKmdycGNfY2FuY2VsX2FyZXNfcmVxdWVzdF9sb2Nr ZWQpKGdycGNfYXJlc19yZXF1ZXN0KiByZXF1ZXN0KTsKK2RpZmYgLS1naXQgYS9zcmMvY29yZS9l eHQvZmlsdGVycy9jbGllbnRfY2hhbm5lbC9yZXNvbHZlci9kbnMvY19hcmVzL2dycGNfYXJlc193 cmFwcGVyX2ZhbGxiYWNrLmNjIGIvc3JjL2NvcmUvZXh0L2ZpbHRlcnMvY2xpZW50X2NoYW5uZWwv cmVzb2x2ZXIvZG5zL2NfYXJlcy9ncnBjX2FyZXNfd3JhcHBlcl9mYWxsYmFjay5jYworaW5kZXgg OWYyOTNjMWFjMDc5Li5mYzc4YjE4MzA0NDggMTAwNjQ0CistLS0gYS9zcmMvY29yZS9leHQvZmls dGVycy9jbGllbnRfY2hhbm5lbC9yZXNvbHZlci9kbnMvY19hcmVzL2dycGNfYXJlc193cmFwcGVy X2ZhbGxiYWNrLmNjCisrKysgYi9zcmMvY29yZS9leHQvZmlsdGVycy9jbGllbnRfY2hhbm5lbC9y ZXNvbHZlci9kbnMvY19hcmVzL2dycGNfYXJlc193cmFwcGVyX2ZhbGxiYWNrLmNjCitAQCAtMzAs NyArMzAsNyBAQCBzdGF0aWMgZ3JwY19hcmVzX3JlcXVlc3QqIGdycGNfZG5zX2xvb2t1cF9hcmVz X2xvY2tlZF9pbXBsKAorICAgICBjb25zdCBjaGFyKiBkbnNfc2VydmVyLCBjb25zdCBjaGFyKiBu YW1lLCBjb25zdCBjaGFyKiBkZWZhdWx0X3BvcnQsCisgICAgIGdycGNfcG9sbHNldF9zZXQqIGlu dGVyZXN0ZWRfcGFydGllcywgZ3JwY19jbG9zdXJlKiBvbl9kb25lLAorICAgICBncnBjX2xiX2Fk ZHJlc3NlcyoqIGFkZHJzLCBib29sIGNoZWNrX2dycGNsYiwgY2hhcioqIHNlcnZpY2VfY29uZmln X2pzb24sCistICAgIGdycGNfY29tYmluZXIqIGNvbWJpbmVyKSB7CisrICAgIGludCBxdWVyeV90 aW1lb3V0X21zLCBncnBjX2NvbWJpbmVyKiBjb21iaW5lcikgeworICAgcmV0dXJuIE5VTEw7Cisg fQorIAorQEAgLTM4LDYgKzM4LDcgQEAgZ3JwY19hcmVzX3JlcXVlc3QqICgqZ3JwY19kbnNfbG9v a3VwX2FyZXNfbG9ja2VkKSgKKyAgICAgY29uc3QgY2hhciogZG5zX3NlcnZlciwgY29uc3QgY2hh ciogbmFtZSwgY29uc3QgY2hhciogZGVmYXVsdF9wb3J0LAorICAgICBncnBjX3BvbGxzZXRfc2V0 KiBpbnRlcmVzdGVkX3BhcnRpZXMsIGdycGNfY2xvc3VyZSogb25fZG9uZSwKKyAgICAgZ3JwY19s Yl9hZGRyZXNzZXMqKiBhZGRycywgYm9vbCBjaGVja19ncnBjbGIsIGNoYXIqKiBzZXJ2aWNlX2Nv bmZpZ19qc29uLAorKyAgICBpbnQgcXVlcnlfdGltZW91dF9tcywKKyAgICAgZ3JwY19jb21iaW5l ciogY29tYmluZXIpID0gZ3JwY19kbnNfbG9va3VwX2FyZXNfbG9ja2VkX2ltcGw7CisgCisgc3Rh dGljIHZvaWQgZ3JwY19jYW5jZWxfYXJlc19yZXF1ZXN0X2xvY2tlZF9pbXBsKGdycGNfYXJlc19y ZXF1ZXN0KiByKSB7fQorZGlmZiAtLWdpdCBhL3NyYy9jb3JlL2xpYi9pb21nci9yZXNvbHZlX2Fk ZHJlc3MuaCBiL3NyYy9jb3JlL2xpYi9pb21nci9yZXNvbHZlX2FkZHJlc3MuaAoraW5kZXggNmFm ZTk0YTdhOTIzLi43MDE2ZmZjMzFhYWMgMTAwNjQ0CistLS0gYS9zcmMvY29yZS9saWIvaW9tZ3Iv cmVzb2x2ZV9hZGRyZXNzLmgKKysrKyBiL3NyYy9jb3JlL2xpYi9pb21nci9yZXNvbHZlX2FkZHJl c3MuaAorQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBncnBjX3NldF9yZXNvbHZlcl9pbXBsKGdycGNf YWRkcmVzc19yZXNvbHZlcl92dGFibGUqIHZ0YWJsZSk7CisgCisgLyogQXN5bmNocm9ub3VzbHkg cmVzb2x2ZSBhZGRyLiBVc2UgZGVmYXVsdF9wb3J0IGlmIGEgcG9ydCBpc24ndCBkZXNpZ25hdGVk CisgICAgaW4gYWRkciwgb3RoZXJ3aXNlIHVzZSB0aGUgcG9ydCBpbiBhZGRyLiAqLworLS8qIFRP RE8oY3RpbGxlcik6IGFkZCBhIHRpbWVvdXQgaGVyZSAqLworKy8qIFRPRE8oYXBvbGN5bik6IGFk ZCBhIHRpbWVvdXQgaGVyZSAqLworIHZvaWQgZ3JwY19yZXNvbHZlX2FkZHJlc3MoY29uc3QgY2hh ciogYWRkciwgY29uc3QgY2hhciogZGVmYXVsdF9wb3J0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3JwY19wb2xsc2V0X3NldCogaW50ZXJlc3RlZF9wYXJ0aWVzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3JwY19jbG9zdXJlKiBvbl9kb25lLAorZGlmZiAtLWdpdCBhL3Rlc3Qv Y29yZS9jbGllbnRfY2hhbm5lbC9yZXNvbHZlcnMvZG5zX3Jlc29sdmVyX2Nvbm5lY3Rpdml0eV90 ZXN0LmNjIGIvdGVzdC9jb3JlL2NsaWVudF9jaGFubmVsL3Jlc29sdmVycy9kbnNfcmVzb2x2ZXJf Y29ubmVjdGl2aXR5X3Rlc3QuY2MKK2luZGV4IGViNWE5MTE3NDg0Yy4uY2MwNDFhYzdmM2Q2IDEw MDY0NAorLS0tIGEvdGVzdC9jb3JlL2NsaWVudF9jaGFubmVsL3Jlc29sdmVycy9kbnNfcmVzb2x2 ZXJfY29ubmVjdGl2aXR5X3Rlc3QuY2MKKysrKyBiL3Rlc3QvY29yZS9jbGllbnRfY2hhbm5lbC9y ZXNvbHZlcnMvZG5zX3Jlc29sdmVyX2Nvbm5lY3Rpdml0eV90ZXN0LmNjCitAQCAtNjQsNyArNjQs NyBAQCBzdGF0aWMgZ3JwY19hcmVzX3JlcXVlc3QqIG15X2Ruc19sb29rdXBfYXJlc19sb2NrZWQo CisgICAgIGNvbnN0IGNoYXIqIGRuc19zZXJ2ZXIsIGNvbnN0IGNoYXIqIGFkZHIsIGNvbnN0IGNo YXIqIGRlZmF1bHRfcG9ydCwKKyAgICAgZ3JwY19wb2xsc2V0X3NldCogaW50ZXJlc3RlZF9wYXJ0 aWVzLCBncnBjX2Nsb3N1cmUqIG9uX2RvbmUsCisgICAgIGdycGNfbGJfYWRkcmVzc2VzKiogbGJf YWRkcnMsIGJvb2wgY2hlY2tfZ3JwY2xiLCBjaGFyKiogc2VydmljZV9jb25maWdfanNvbiwKKy0g ICAgZ3JwY19jb21iaW5lciogY29tYmluZXIpIHsKKysgICAgaW50IHF1ZXJ5X3RpbWVvdXRfbXMs IGdycGNfY29tYmluZXIqIGNvbWJpbmVyKSB7CisgICBncHJfbXVfbG9jaygmZ19tdSk7CisgICBH UFJfQVNTRVJUKDAgPT0gc3RyY21wKCJ0ZXN0IiwgYWRkcikpOworICAgZ3JwY19lcnJvciogZXJy b3IgPSBHUlBDX0VSUk9SX05PTkU7CitkaWZmIC0tZ2l0IGEvdGVzdC9jb3JlL2NsaWVudF9jaGFu bmVsL3Jlc29sdmVycy9kbnNfcmVzb2x2ZXJfY29vbGRvd25fdGVzdC5jYyBiL3Rlc3QvY29yZS9j bGllbnRfY2hhbm5lbC9yZXNvbHZlcnMvZG5zX3Jlc29sdmVyX2Nvb2xkb3duX3Rlc3QuY2MKK2lu ZGV4IDFhN2RiNDBmNTk4Mi4uNTFmY2MwZGVjNjcxIDEwMDY0NAorLS0tIGEvdGVzdC9jb3JlL2Ns aWVudF9jaGFubmVsL3Jlc29sdmVycy9kbnNfcmVzb2x2ZXJfY29vbGRvd25fdGVzdC5jYworKysr IGIvdGVzdC9jb3JlL2NsaWVudF9jaGFubmVsL3Jlc29sdmVycy9kbnNfcmVzb2x2ZXJfY29vbGRv d25fdGVzdC5jYworQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIGdycGNfYXJlc19yZXF1ZXN0KiAo KmdfZGVmYXVsdF9kbnNfbG9va3VwX2FyZXNfbG9ja2VkKSgKKyAgICAgY29uc3QgY2hhciogZG5z X3NlcnZlciwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogZGVmYXVsdF9wb3J0LAorICAg ICBncnBjX3BvbGxzZXRfc2V0KiBpbnRlcmVzdGVkX3BhcnRpZXMsIGdycGNfY2xvc3VyZSogb25f ZG9uZSwKKyAgICAgZ3JwY19sYl9hZGRyZXNzZXMqKiBhZGRycywgYm9vbCBjaGVja19ncnBjbGIs IGNoYXIqKiBzZXJ2aWNlX2NvbmZpZ19qc29uLAorLSAgICBncnBjX2NvbWJpbmVyKiBjb21iaW5l cik7CisrICAgIGludCBxdWVyeV90aW1lb3V0X21zLCBncnBjX2NvbWJpbmVyKiBjb21iaW5lcik7 CisgCisgLy8gQ291bnRlciBpbmNyZW1lbnRlZCBieSB0ZXN0X3Jlc29sdmVfYWRkcmVzc19pbXBs IGluZGljYXRpbmcgdGhlIG51bWJlciBvZgorIC8vIHRpbWVzIGEgc3lzdGVtLWxldmVsIHJlc29s dXRpb24gaGFzIGhhcHBlbmVkLgorQEAgLTkxLDEwICs5MSwxMCBAQCBzdGF0aWMgZ3JwY19hcmVz X3JlcXVlc3QqIHRlc3RfZG5zX2xvb2t1cF9hcmVzX2xvY2tlZCgKKyAgICAgY29uc3QgY2hhciog ZG5zX3NlcnZlciwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogZGVmYXVsdF9wb3J0LAor ICAgICBncnBjX3BvbGxzZXRfc2V0KiBpbnRlcmVzdGVkX3BhcnRpZXMsIGdycGNfY2xvc3VyZSog b25fZG9uZSwKKyAgICAgZ3JwY19sYl9hZGRyZXNzZXMqKiBhZGRycywgYm9vbCBjaGVja19ncnBj bGIsIGNoYXIqKiBzZXJ2aWNlX2NvbmZpZ19qc29uLAorLSAgICBncnBjX2NvbWJpbmVyKiBjb21i aW5lcikgeworKyAgICBpbnQgcXVlcnlfdGltZW91dF9tcywgZ3JwY19jb21iaW5lciogY29tYmlu ZXIpIHsKKyAgIGdycGNfYXJlc19yZXF1ZXN0KiByZXN1bHQgPSBnX2RlZmF1bHRfZG5zX2xvb2t1 cF9hcmVzX2xvY2tlZCgKKyAgICAgICBkbnNfc2VydmVyLCBuYW1lLCBkZWZhdWx0X3BvcnQsIGdf aW9tZ3JfYXJncy5wb2xsc2V0X3NldCwgb25fZG9uZSwgYWRkcnMsCistICAgICAgY2hlY2tfZ3Jw Y2xiLCBzZXJ2aWNlX2NvbmZpZ19qc29uLCBjb21iaW5lcik7CisrICAgICAgY2hlY2tfZ3JwY2xi LCBzZXJ2aWNlX2NvbmZpZ19qc29uLCBxdWVyeV90aW1lb3V0X21zLCBjb21iaW5lcik7CisgICAr K2dfcmVzb2x1dGlvbl9jb3VudDsKKyAgIHN0YXRpYyBncnBjX21pbGxpcyBsYXN0X3Jlc29sdXRp b25fdGltZSA9IDA7CisgICBpZiAobGFzdF9yZXNvbHV0aW9uX3RpbWUgPT0gMCkgeworZGlmZiAt LWdpdCBhL3Rlc3QvY29yZS9lbmQyZW5kL2Z1enplcnMvYXBpX2Z1enplci5jYyBiL3Rlc3QvY29y ZS9lbmQyZW5kL2Z1enplcnMvYXBpX2Z1enplci5jYworaW5kZXggZTk3YTU0NGUxMmM1Li45YjZl ZGRlZTZlMWEgMTAwNjQ0CistLS0gYS90ZXN0L2NvcmUvZW5kMmVuZC9mdXp6ZXJzL2FwaV9mdXp6 ZXIuY2MKKysrKyBiL3Rlc3QvY29yZS9lbmQyZW5kL2Z1enplcnMvYXBpX2Z1enplci5jYworQEAg LTM3OCw3ICszNzgsNyBAQCBncnBjX2FyZXNfcmVxdWVzdCogbXlfZG5zX2xvb2t1cF9hcmVzX2xv Y2tlZCgKKyAgICAgY29uc3QgY2hhciogZG5zX3NlcnZlciwgY29uc3QgY2hhciogYWRkciwgY29u c3QgY2hhciogZGVmYXVsdF9wb3J0LAorICAgICBncnBjX3BvbGxzZXRfc2V0KiBpbnRlcmVzdGVk X3BhcnRpZXMsIGdycGNfY2xvc3VyZSogb25fZG9uZSwKKyAgICAgZ3JwY19sYl9hZGRyZXNzZXMq KiBsYl9hZGRycywgYm9vbCBjaGVja19ncnBjbGIsIGNoYXIqKiBzZXJ2aWNlX2NvbmZpZ19qc29u LAorLSAgICBncnBjX2NvbWJpbmVyKiBjb21iaW5lcikgeworKyAgICBpbnQgcXVlcnlfdGltZW91 dCwgZ3JwY19jb21iaW5lciogY29tYmluZXIpIHsKKyAgIGFkZHJfcmVxKiByID0gc3RhdGljX2Nh c3Q8YWRkcl9yZXEqPihncHJfbWFsbG9jKHNpemVvZigqcikpKTsKKyAgIHItPmFkZHIgPSBncHJf c3RyZHVwKGFkZHIpOworICAgci0+b25fZG9uZSA9IG9uX2RvbmU7CitkaWZmIC0tZ2l0IGEvdGVz dC9jb3JlL2VuZDJlbmQvZ29hd2F5X3NlcnZlcl90ZXN0LmNjIGIvdGVzdC9jb3JlL2VuZDJlbmQv Z29hd2F5X3NlcnZlcl90ZXN0LmNjCitpbmRleCAzZjFjNTU5NmFkOTUuLjYzNjljYWYwZDFiNiAx MDA2NDQKKy0tLSBhL3Rlc3QvY29yZS9lbmQyZW5kL2dvYXdheV9zZXJ2ZXJfdGVzdC5jYworKysr IGIvdGVzdC9jb3JlL2VuZDJlbmQvZ29hd2F5X3NlcnZlcl90ZXN0LmNjCitAQCAtNDgsNyArNDgs NyBAQCBzdGF0aWMgZ3JwY19hcmVzX3JlcXVlc3QqICgqaW9tZ3JfZG5zX2xvb2t1cF9hcmVzX2xv Y2tlZCkoCisgICAgIGNvbnN0IGNoYXIqIGRuc19zZXJ2ZXIsIGNvbnN0IGNoYXIqIGFkZHIsIGNv bnN0IGNoYXIqIGRlZmF1bHRfcG9ydCwKKyAgICAgZ3JwY19wb2xsc2V0X3NldCogaW50ZXJlc3Rl ZF9wYXJ0aWVzLCBncnBjX2Nsb3N1cmUqIG9uX2RvbmUsCisgICAgIGdycGNfbGJfYWRkcmVzc2Vz KiogYWRkcmVzc2VzLCBib29sIGNoZWNrX2dycGNsYiwKKy0gICAgY2hhcioqIHNlcnZpY2VfY29u ZmlnX2pzb24sIGdycGNfY29tYmluZXIqIGNvbWJpbmVyKTsKKysgICAgY2hhcioqIHNlcnZpY2Vf Y29uZmlnX2pzb24sIGludCBxdWVyeV90aW1lb3V0X21zLCBncnBjX2NvbWJpbmVyKiBjb21iaW5l cik7CisgCisgc3RhdGljIHZvaWQgKCppb21ncl9jYW5jZWxfYXJlc19yZXF1ZXN0X2xvY2tlZCko Z3JwY19hcmVzX3JlcXVlc3QqIHJlcXVlc3QpOworIAorQEAgLTEwNCwxMSArMTA0LDExIEBAIHN0 YXRpYyBncnBjX2FyZXNfcmVxdWVzdCogbXlfZG5zX2xvb2t1cF9hcmVzX2xvY2tlZCgKKyAgICAg Y29uc3QgY2hhciogZG5zX3NlcnZlciwgY29uc3QgY2hhciogYWRkciwgY29uc3QgY2hhciogZGVm YXVsdF9wb3J0LAorICAgICBncnBjX3BvbGxzZXRfc2V0KiBpbnRlcmVzdGVkX3BhcnRpZXMsIGdy cGNfY2xvc3VyZSogb25fZG9uZSwKKyAgICAgZ3JwY19sYl9hZGRyZXNzZXMqKiBsYl9hZGRycywg Ym9vbCBjaGVja19ncnBjbGIsIGNoYXIqKiBzZXJ2aWNlX2NvbmZpZ19qc29uLAorLSAgICBncnBj X2NvbWJpbmVyKiBjb21iaW5lcikgeworKyAgICBpbnQgcXVlcnlfdGltZW91dF9tcywgZ3JwY19j b21iaW5lciogY29tYmluZXIpIHsKKyAgIGlmICgwICE9IHN0cmNtcChhZGRyLCAidGVzdCIpKSB7 CisgICAgIHJldHVybiBpb21ncl9kbnNfbG9va3VwX2FyZXNfbG9ja2VkKAorICAgICAgICAgZG5z X3NlcnZlciwgYWRkciwgZGVmYXVsdF9wb3J0LCBpbnRlcmVzdGVkX3BhcnRpZXMsIG9uX2RvbmUs IGxiX2FkZHJzLAorLSAgICAgICAgY2hlY2tfZ3JwY2xiLCBzZXJ2aWNlX2NvbmZpZ19qc29uLCBj b21iaW5lcik7CisrICAgICAgICBjaGVja19ncnBjbGIsIHNlcnZpY2VfY29uZmlnX2pzb24sIHF1 ZXJ5X3RpbWVvdXRfbXMsIGNvbWJpbmVyKTsKKyAgIH0KKyAKKyAgIGdycGNfZXJyb3IqIGVycm9y ID0gR1JQQ19FUlJPUl9OT05FOworZGlmZiAtLWdpdCBhL3Rlc3QvY3BwL25hbWluZy9jYW5jZWxf YXJlc19xdWVyeV90ZXN0LmNjIGIvdGVzdC9jcHAvbmFtaW5nL2NhbmNlbF9hcmVzX3F1ZXJ5X3Rl c3QuY2MKK2luZGV4IGRlYzdjMTcxZGMwZS4uNGM3YTdjMzczNTcxIDEwMDY0NAorLS0tIGEvdGVz dC9jcHAvbmFtaW5nL2NhbmNlbF9hcmVzX3F1ZXJ5X3Rlc3QuY2MKKysrKyBiL3Rlc3QvY3BwL25h bWluZy9jYW5jZWxfYXJlc19xdWVyeV90ZXN0LmNjCitAQCAtMjYwLDggKzI2MCwxNSBAQCBURVNU KENhbmNlbER1cmluZ0FyZXNRdWVyeSwgVGVzdEZkc0FyZURlbGV0ZWRGcm9tUG9sbHNldFNldCkg eworICAgZ3JwY19wb2xsc2V0X3NldF9kZXN0cm95KGZha2Vfb3RoZXJfcG9sbHNldF9zZXQpOwor IH0KKyAKKy1URVNUKENhbmNlbER1cmluZ0FyZXNRdWVyeSwKKy0gICAgIFRlc3RIaXREZWFkbGlu ZUFuZERlc3Ryb3lDaGFubmVsRHVyaW5nQXJlc1Jlc29sdXRpb25Jc0dyYWNlZnVsKSB7CisrLy8g U2V0dGluZ3MgZm9yIFRlc3RDYW5jZWxEdXJpbmdBY3RpdmVRdWVyeSB0ZXN0CisrdHlwZWRlZiBl bnVtIHsKKysgIE5PTkUsCisrICBTSE9SVCwKKysgIFpFUk8sCisrfSBjYW5jZWxsYXRpb25fdGVz dF9xdWVyeV90aW1lb3V0X3NldHRpbmc7CisrCisrdm9pZCBUZXN0Q2FuY2VsRHVyaW5nQWN0aXZl UXVlcnkoCisrICAgIGNhbmNlbGxhdGlvbl90ZXN0X3F1ZXJ5X3RpbWVvdXRfc2V0dGluZyBxdWVy eV90aW1lb3V0X3NldHRpbmcpIHsKKyAgIC8vIFN0YXJ0IHVwIGZha2Ugbm9uIHJlc3BvbnNpdmUg RE5TIHNlcnZlcgorICAgaW50IGZha2VfZG5zX3BvcnQgPSBncnBjX3BpY2tfdW51c2VkX3BvcnRf b3JfZGllKCk7CisgICBGYWtlTm9uUmVzcG9uc2l2ZUROU1NlcnZlciBmYWtlX2Ruc19zZXJ2ZXIo ZmFrZV9kbnNfcG9ydCk7CitAQCAtMjcxLDkgKzI3OCwzMyBAQCBURVNUKENhbmNlbER1cmluZ0Fy ZXNRdWVyeSwKKyAgICAgICAmY2xpZW50X3RhcmdldCwKKyAgICAgICAiZG5zOi8vWzo6MV06JWQv ZG9udC1jYXJlLXNpbmNlLXdvbnQtYmUtcmVzb2x2ZWQudGVzdC5jb206MTIzNCIsCisgICAgICAg ZmFrZV9kbnNfcG9ydCkpOworKyAgZ3ByX2xvZyhHUFJfREVCVUcsICJUZXN0Q2FuY2VsQWN0aXZl RE5TUXVlcnkuIHF1ZXJ5IHRpbWVvdXQgc2V0dGluZzogJWQiLAorKyAgICAgICAgICBxdWVyeV90 aW1lb3V0X3NldHRpbmcpOworKyAgZ3JwY19jaGFubmVsX2FyZ3MqIGNsaWVudF9hcmdzID0gbnVs bHB0cjsKKysgIGdycGNfc3RhdHVzX2NvZGUgZXhwZWN0ZWRfc3RhdHVzX2NvZGUgPSBHUlBDX1NU QVRVU19PSzsKKysgIGlmIChxdWVyeV90aW1lb3V0X3NldHRpbmcgPT0gTk9ORSkgeworKyAgICBl eHBlY3RlZF9zdGF0dXNfY29kZSA9IEdSUENfU1RBVFVTX0RFQURMSU5FX0VYQ0VFREVEOworKyAg ICBjbGllbnRfYXJncyA9IG51bGxwdHI7CisrICB9IGVsc2UgaWYgKHF1ZXJ5X3RpbWVvdXRfc2V0 dGluZyA9PSBTSE9SVCkgeworKyAgICBleHBlY3RlZF9zdGF0dXNfY29kZSA9IEdSUENfU1RBVFVT X1VOQVZBSUxBQkxFOworKyAgICBncnBjX2FyZyBhcmc7CisrICAgIGFyZy50eXBlID0gR1JQQ19B UkdfSU5URUdFUjsKKysgICAgYXJnLmtleSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KEdSUENfQVJHX0RO U19BUkVTX1FVRVJZX1RJTUVPVVRfTVMpOworKyAgICBhcmcudmFsdWUuaW50ZWdlciA9CisrICAg ICAgICAxOyAgLy8gU2V0IHRoaXMgc2hvcnRlciB0aGFuIHRoZSBjYWxsIGRlYWRsaW5lIHNvIHRo YXQgaXQgZ29lcyBvZmYuCisrICAgIGNsaWVudF9hcmdzID0gZ3JwY19jaGFubmVsX2FyZ3NfY29w eV9hbmRfYWRkKG51bGxwdHIsICZhcmcsIDEpOworKyAgfSBlbHNlIGlmIChxdWVyeV90aW1lb3V0 X3NldHRpbmcgPT0gWkVSTykgeworKyAgICBleHBlY3RlZF9zdGF0dXNfY29kZSA9IEdSUENfU1RB VFVTX0RFQURMSU5FX0VYQ0VFREVEOworKyAgICBncnBjX2FyZyBhcmc7CisrICAgIGFyZy50eXBl ID0gR1JQQ19BUkdfSU5URUdFUjsKKysgICAgYXJnLmtleSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KEdS UENfQVJHX0ROU19BUkVTX1FVRVJZX1RJTUVPVVRfTVMpOworKyAgICBhcmcudmFsdWUuaW50ZWdl ciA9IDA7ICAvLyBTZXQgdGhpcyB0byB6ZXJvIHRvIGRpc2FibGUgcXVlcnkgdGltZW91dHMuCisr ICAgIGNsaWVudF9hcmdzID0gZ3JwY19jaGFubmVsX2FyZ3NfY29weV9hbmRfYWRkKG51bGxwdHIs ICZhcmcsIDEpOworKyAgfSBlbHNlIHsKKysgICAgYWJvcnQoKTsKKysgIH0KKyAgIGdycGNfY2hh bm5lbCogY2xpZW50ID0KKy0gICAgICBncnBjX2luc2VjdXJlX2NoYW5uZWxfY3JlYXRlKGNsaWVu dF90YXJnZXQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjbGllbnRf YXJncyAqLyBudWxscHRyLCBudWxscHRyKTsKKysgICAgICBncnBjX2luc2VjdXJlX2NoYW5uZWxf Y3JlYXRlKGNsaWVudF90YXJnZXQsIGNsaWVudF9hcmdzLCBudWxscHRyKTsKKyAgIGdwcl9mcmVl KGNsaWVudF90YXJnZXQpOworICAgZ3JwY19jb21wbGV0aW9uX3F1ZXVlKiBjcSA9IGdycGNfY29t cGxldGlvbl9xdWV1ZV9jcmVhdGVfZm9yX25leHQobnVsbHB0cik7CisgICBjcV92ZXJpZmllciog Y3F2ID0gY3FfdmVyaWZpZXJfY3JlYXRlKGNxKTsKK0BAIC0zMjUsOCArMzU2LDkgQEAgVEVTVChD YW5jZWxEdXJpbmdBcmVzUXVlcnksCisgICBFWFBFQ1RfRVEoR1JQQ19DQUxMX09LLCBlcnJvcik7 CisgICBDUV9FWFBFQ1RfQ09NUExFVElPTihjcXYsIFRhZygxKSwgMSk7CisgICBjcV92ZXJpZnko Y3F2KTsKKy0gIEVYUEVDVF9FUShzdGF0dXMsIEdSUENfU1RBVFVTX0RFQURMSU5FX0VYQ0VFREVE KTsKKysgIEVYUEVDVF9FUShzdGF0dXMsIGV4cGVjdGVkX3N0YXR1c19jb2RlKTsKKyAgIC8vIFRl YXJkb3duCisrICBncnBjX2NoYW5uZWxfYXJnc19kZXN0cm95KGNsaWVudF9hcmdzKTsKKyAgIGdy cGNfc2xpY2VfdW5yZWYoZGV0YWlscyk7CisgICBncHJfZnJlZSgodm9pZCopZXJyb3Jfc3RyaW5n KTsKKyAgIGdycGNfbWV0YWRhdGFfYXJyYXlfZGVzdHJveSgmaW5pdGlhbF9tZXRhZGF0YV9yZWN2 KTsKK0BAIC0zMzgsNiArMzcwLDIzIEBAIFRFU1QoQ2FuY2VsRHVyaW5nQXJlc1F1ZXJ5LAorICAg RW5kVGVzdChjbGllbnQsIGNxKTsKKyB9CisgCisrVEVTVChDYW5jZWxEdXJpbmdBcmVzUXVlcnks CisrICAgICBUZXN0SGl0RGVhZGxpbmVBbmREZXN0cm95Q2hhbm5lbER1cmluZ0FyZXNSZXNvbHV0 aW9uSXNHcmFjZWZ1bCkgeworKyAgVGVzdENhbmNlbER1cmluZ0FjdGl2ZVF1ZXJ5KE5PTkUgLyog ZG9uJ3Qgc2V0IHF1ZXJ5IHRpbWVvdXRzICovKTsKKyt9CisrCisrVEVTVCgKKysgICAgQ2FuY2Vs RHVyaW5nQXJlc1F1ZXJ5LAorKyAgICBUZXN0SGl0RGVhZGxpbmVBbmREZXN0cm95Q2hhbm5lbER1 cmluZ0FyZXNSZXNvbHV0aW9uV2l0aFF1ZXJ5VGltZW91dElzR3JhY2VmdWwpIHsKKysgIFRlc3RD YW5jZWxEdXJpbmdBY3RpdmVRdWVyeShTSE9SVCAvKiBzZXQgc2hvcnQgcXVlcnkgdGltZW91dCAq Lyk7CisrfQorKworK1RFU1QoCisrICAgIENhbmNlbER1cmluZ0FyZXNRdWVyeSwKKysgICAgVGVz dEhpdERlYWRsaW5lQW5kRGVzdHJveUNoYW5uZWxEdXJpbmdBcmVzUmVzb2x1dGlvbldpdGhaZXJv UXVlcnlUaW1lb3V0SXNHcmFjZWZ1bCkgeworKyAgVGVzdENhbmNlbER1cmluZ0FjdGl2ZVF1ZXJ5 KFpFUk8gLyogZGlzYWJsZSBxdWVyeSB0aW1lb3V0cyAqLyk7CisrfQorKworIH0gIC8vIG5hbWVz cGFjZQorIAorIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgeworLS0gCmRpZmYgLS1n aXQgYS9wYXRjaGVzL2dycGMtMS4xNy4wL3NlcmllcyBiL3BhdGNoZXMvZ3JwYy0xLjE3LjAvc2Vy aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNzY3NDYwY2FjCi0tLSAv ZGV2L251bGwKKysrIGIvcGF0Y2hlcy9ncnBjLTEuMTcuMC9zZXJpZXMKQEAgLTAsMCArMSw2IEBA CisjIGdlbmVyYXRlZCBieSBnaXQtcHR4LXBhdGNoZXMKKyN0YWc6YmFzZSAtLXN0YXJ0LW51bWJl ciAxCiswMDAxLUNNYWtlTGlzdHMudHh0LWFsbG93LXBhc3NpbmctYS1wcmUtZXhpc3RpbmctZ3Jw Y19jcHAucGF0Y2gKKyN0YWc6dXBzdHJlYW0gLS1zdGFydC1udW1iZXIgMTAwCiswMTAwLUNhbmNl bC1zdGlsbC1hY3RpdmUtYy1hcmVzLXF1ZXJpZXMtYWZ0ZXItMTAtc2Vjb25kcy0ucGF0Y2gKKyMg YzQwNWY1YTJlODg1YjRkNmVlOGU2OGZiOGVmMTE0ODMgIC0gZ2l0LXB0eC1wYXRjaGVzIG1hZ2lj CmRpZmYgLS1naXQgYS9ydWxlcy9ncnBjLmluIGIvcnVsZXMvZ3JwYy5pbgpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmQzYWU0ZWZhZgotLS0gL2Rldi9udWxsCisrKyBiL3J1 bGVzL2dycGMuaW4KQEAgLTAsMCArMSwyMCBAQAorIyMgU0VDVElPTj1zeXN0ZW1fbGlicmFyaWVz CisKK2NvbmZpZyBHUlBDCisJdHJpc3RhdGUKKwlzZWxlY3QgSE9TVF9DTUFLRQorCXNlbGVjdCBI T1NUX0dSUEMKKwlzZWxlY3QgR0NDTElCU19DWFgKKwlzZWxlY3QgR0NDTElCU19HQ0NfUworCXNl bGVjdCBMSUJDX0RMCisJc2VsZWN0IExJQkNfTQorCXNlbGVjdCBMSUJDX1BUSFJFQUQKKwlzZWxl Y3QgTElCQ19SVAorCXNlbGVjdCBDX0FSRVMKKwlzZWxlY3QgT1BFTlNTTAorCXNlbGVjdCBQUk9U T0JVRgorCXNlbGVjdCBaTElCCisJcHJvbXB0ICJncnBjICAgICAgICAgICAgICAgICAgICAgICAg ICAiCisJaGVscAorCSAgZ1JQQyBpcyBhIG1vZGVybiwgb3BlbiBzb3VyY2UsIGhpZ2gtcGVyZm9y bWFuY2UgcmVtb3RlIHByb2NlZHVyZQorCSAgY2FsbCAoUlBDKSBmcmFtZXdvcmsuCmRpZmYgLS1n aXQgYS9ydWxlcy9ncnBjLm1ha2UgYi9ydWxlcy9ncnBjLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi5iNzUzODlhODcKLS0tIC9kZXYvbnVsbAorKysgYi9ydWxlcy9n cnBjLm1ha2UKQEAgLTAsMCArMSw3NCBAQAorIyAtKi1tYWtlZmlsZS0qLQorIworIyBDb3B5cmln aHQgKEMpIDIwMTggYnkgQ2xlbWVucyBHcnViZXIgPGNsZW1lbnMuZ3J1YmVyQHBxZ3J1YmVyLmNv bT4KKyMKKyMgU2VlIENSRURJVFMgZm9yIGRldGFpbHMgYWJvdXQgd2hvIGhhcyBjb250cmlidXRl ZCB0byB0aGlzIHByb2plY3QuCisjCisjIEZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IHRo ZSBQVFhkaXN0IHByb2plY3QgYW5kIGxpY2Vuc2UgY29uZGl0aW9ucworIyBzZWUgdGhlIFJFQURN RSBmaWxlLgorIworCisjCisjIFdlIHByb3ZpZGUgdGhpcyBwYWNrYWdlCisjCitQQUNLQUdFUy0k KFBUWENPTkZfR1JQQykgKz0gZ3JwYworCisjCisjIFBhdGhzIGFuZCBuYW1lcworIworR1JQQ19W RVJTSU9OCTo9IDEuMTcuMAorR1JQQ19NRDUJOj0gY2NkMTExMzAzNzEyZmZhOGRjZjhkNzY2ZjM5 NjAzYWUKK0dSUEMJCTo9IGdycGMtJChHUlBDX1ZFUlNJT04pCitHUlBDX1NVRkZJWAk6PSB0YXIu Z3oKK0dSUENfVVJMCTo9IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnBjL2dycGMvYXJjaGl2ZS92JChH UlBDX1ZFUlNJT04pLiQoR1JQQ19TVUZGSVgpCitHUlBDX1NPVVJDRQk6PSAkKFNSQ0RJUikvJChH UlBDKS4kKEdSUENfU1VGRklYKQorR1JQQ19ESVIJOj0gJChCVUlMRERJUikvJChHUlBDKQorR1JQ Q19MSUNFTlNFCTo9IEJTRC0zLUNsYXVzZQorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUHJl cGFyZQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMKKyMgY21ha2UKKyMKK0dSUENfQ09ORl9U T09MCTo9IGNtYWtlCisKK0dSUENfQ09ORl9PUFQJOj0gXAorCSQoQ1JPU1NfQ01BS0VfVVNSKSBc CisJLURCVUlMRF9TSEFSRURfTElCUz1PTiBcCisJLURDTUFLRV9DWFhfRkxBR1M9Jy1Xbm8tZXJy b3I9aWdub3JlZC1xdWFsaWZpZXJzJyBcCisJLURnUlBDX0JBQ0tXQVJEU19DT01QQVRJQklMSVRZ X01PREU9T0ZGIFwKKwktRGdSUENfQlVJTERfQ1NIQVJQX0VYVD1PRkYgXAorCS1EZ1JQQ19CVUlM RF9URVNUUz1PRkYgXAorCS1EX2dSUENfQ0FSRVNfTElCUkFSSUVTPWNhcmVzIFwKKwktRGdSUENf Q0FSRVNfUFJPVklERVI9bm9uZSBcCisJLURnUlBDX1BST1RPQlVGX1BST1ZJREVSPXBhY2thZ2Ug XAorCS1EZ1JQQ19TU0xfUFJPVklERVI9cGFja2FnZSBcCisJLURnUlBDX1pMSUJfUFJPVklERVI9 cGFja2FnZSBcCisJLURnUlBDX05BVElWRV9DUFBfUExVR0lOPSQoUFRYRElTVF9TWVNST09UX0hP U1QpL2Jpbi9ncnBjX2NwcF9wbHVnaW4gXAorCS1EUFJPVE9CVUZfUFJPVE9DX0VYRUNVVEFCTEU9 JChQVFhESVNUX1NZU1JPT1RfSE9TVCkvYmluL3Byb3RvYworCisjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyMgVGFyZ2V0LUluc3RhbGwKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiskKFNUQVRFRElS KS9ncnBjLnRhcmdldGluc3RhbGw6CisJQCQoY2FsbCB0YXJnZXRpbmZvKQorCisJQCQoY2FsbCBp bnN0YWxsX2luaXQsIGdycGMpCisJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBncnBjLFBSSU9SSVRZ LG9wdGlvbmFsKQorCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgZ3JwYyxTRUNUSU9OLGJhc2UpCisJ QCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBncnBjLEFVVEhPUiwiQ2xlbWVucyBHcnViZXIgPGNsZW1l bnMuZ3J1YmVyQHBxZ3J1YmVyLmNvbT4iKQorCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgZ3JwYyxE RVNDUklQVElPTixtaXNzaW5nKQorCisJQCQoY2FsbCBpbnN0YWxsX2xpYiwgZ3JwYywgMCwgMCwg MDY0NCwgbGliYWRkcmVzc19zb3J0aW5nKQorCUAkKGNhbGwgaW5zdGFsbF9saWIsIGdycGMsIDAs IDAsIDA2NDQsIGxpYmdwcikKKwlAJChjYWxsIGluc3RhbGxfbGliLCBncnBjLCAwLCAwLCAwNjQ0 LCBsaWJncnBjKQorCUAkKGNhbGwgaW5zdGFsbF9saWIsIGdycGMsIDAsIDAsIDA2NDQsIGxpYmdy cGMrKykKKworCUAkKGNhbGwgaW5zdGFsbF9maW5pc2gsIGdycGMpCisKKwlAJChjYWxsIHRvdWNo KQorCisjIHZpbTogc3ludGF4PW1ha2UKZGlmZiAtLWdpdCBhL3J1bGVzL2hvc3QtZ3JwYy5pbiBi L3J1bGVzL2hvc3QtZ3JwYy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LmQ4MWI3ZDdlYgotLS0gL2Rldi9udWxsCisrKyBiL3J1bGVzL2hvc3QtZ3JwYy5pbgpAQCAtMCww ICsxLDEwIEBACisjIyBTRUNUSU9OPWhvc3R0b29sc19ub3Byb21wdAorCitjb25maWcgSE9TVF9H UlBDCisJdHJpc3RhdGUKKwlkZWZhdWx0IEFMTFlFUworCXNlbGVjdCBIT1NUX0NNQUtFCisJc2Vs ZWN0IEhPU1RfQ19BUkVTCisJc2VsZWN0IEhPU1RfT1BFTlNTTAorCXNlbGVjdCBIT1NUX1BST1RP QlVGCisJc2VsZWN0IEhPU1RfWkxJQgpkaWZmIC0tZ2l0IGEvcnVsZXMvaG9zdC1ncnBjLm1ha2Ug Yi9ydWxlcy9ob3N0LWdycGMubWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAuLjdkN2FkOWY2OQotLS0gL2Rldi9udWxsCisrKyBiL3J1bGVzL2hvc3QtZ3JwYy5tYWtlCkBA IC0wLDAgKzEsMzcgQEAKKyMgLSotbWFrZWZpbGUtKi0KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE4 IGJ5IENsZW1lbnMgR3J1YmVyIDxjbGVtZW5zLmdydWJlckBwcWdydWJlci5jb20+CisjCisjIFNl ZSBDUkVESVRTIGZvciBkZXRhaWxzIGFib3V0IHdobyBoYXMgY29udHJpYnV0ZWQgdG8gdGhpcyBw cm9qZWN0LgorIworIyBGb3IgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgUFRYZGlzdCBw cm9qZWN0IGFuZCBsaWNlbnNlIGNvbmRpdGlvbnMKKyMgc2VlIHRoZSBSRUFETUUgZmlsZS4KKyMK KworIworIyBXZSBwcm92aWRlIHRoaXMgcGFja2FnZQorIworSE9TVF9QQUNLQUdFUy0kKFBUWENP TkZfSE9TVF9HUlBDKSArPSBob3N0LWdycGMKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFBy ZXBhcmUKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjCisjIGNtYWtlCisjCitIT1NUX0dSUENf Q09ORl9UT09MCTo9IGNtYWtlCisKK0hPU1RfR1JQQ19DT05GX09QVAk6PSBcCisJJChIT1NUX0NN QUtFX09QVCkgXAorCS1EQ01BS0VfQ1hYX0ZMQUdTPSctV25vLWVycm9yPWlnbm9yZWQtcXVhbGlm aWVycycgXAorCS1EZ1JQQ19CQUNLV0FSRFNfQ09NUEFUSUJJTElUWV9NT0RFPU9GRiBcCisJLURn UlBDX0JVSUxEX0NTSEFSUF9FWFQ9T0ZGIFwKKwktRGdSUENfQlVJTERfVEVTVFM9T0ZGIFwKKwkt RF9nUlBDX0NBUkVTX0xJQlJBUklFUz1jYXJlcyBcCisJLURnUlBDX0NBUkVTX1BST1ZJREVSPW5v bmUgXAorCS1EZ1JQQ19QUk9UT0JVRl9QUk9WSURFUj1wYWNrYWdlIFwKKwktRGdSUENfU1NMX1BS T1ZJREVSPXBhY2thZ2UgXAorCS1EZ1JQQ19aTElCX1BST1ZJREVSPXBhY2thZ2UKKworIyB2aW06 IHN5bnRheD1tYWtlCi0tIAoyLjE5LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpwdHhkaXN0IG1haWxpbmcgbGlzdApwdHhkaXN0QHBlbmd1dHJvbml4 LmRl