From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id D0E4144FF9 for ; Mon, 19 Dec 2022 09:30:07 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 38E7968B0A7; Mon, 19 Dec 2022 11:30:05 +0200 (EET) Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3DAD168A23A for ; Mon, 19 Dec 2022 11:29:57 +0200 (EET) Received: from kwepemm600008.china.huawei.com (unknown [172.30.72.55]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4NbDpq27nFzHqMN for ; Mon, 19 Dec 2022 17:26:11 +0800 (CST) Received: from kwepemi500014.china.huawei.com (7.221.188.232) by kwepemm600008.china.huawei.com (7.193.23.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Mon, 19 Dec 2022 17:29:54 +0800 Received: from kwepemi500014.china.huawei.com ([7.221.188.232]) by kwepemi500014.china.huawei.com ([7.221.188.232]) with mapi id 15.01.2375.034; Mon, 19 Dec 2022 17:29:54 +0800 From: "Wujian(Chin)" To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH] fftools/ffmpeg_ffplay_ffprobe_cmdutils: add -safe to replace the user name and password in the protocol address Thread-Index: AdkR6kCaPiIZsC5wR7GatfIhHllSDQBLYvgAABETSyD//7iDAP//YFiA Date: Mon, 19 Dec 2022 09:29:54 +0000 Message-ID: <41bbf184518f4ceead3acc0fe6a2aff4@huawei.com> References: <1f01a2a041ba4e809ec8d9175fde8d8e@huawei.com> <8bdf9456d1904119a59ddd5c7127690b@huawei.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.136.102.143] MIME-Version: 1.0 X-CFilter-Loop: Reflected Subject: [FFmpeg-devel] =?utf-8?b?562U5aSNOiAgW1BBVENIXSBmZnRvb2xzL2Zm?= =?utf-8?q?mpeg=5Fffplay=5Fffprobe=5Fcmdutils=3A_add_-safe_to_replace_the_?= =?utf-8?q?user_name_and_password_in_the_protocol_address?= X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: "zhangxiong \(A\)" , "wangqinghua \(I\)" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: DQoNCj4+IE9uIERlYyAxOSwgMjAyMiwgYXQgMTQ6NTAsIFd1amlhbihDaGluKSA8d3VqaWFuMkBo dWF3ZWkuY29tPiB3cm90ZToNCj4+IA0KPj4gDQo+Pj4+IE9uIERlYyAxNywgMjAyMiwgYXQgMTU6 MzYsIFd1amlhbihDaGluKSA8d3VqaWFuMkBodWF3ZWkuY29tPiB3cm90ZToNCj4+Pj4gDQo+Pj4+ IFRoZSBQcm90b2NvbCBhZGRyZXNzIG1heSBjb250YWluIHRoZSB1c2VyIG5hbWUgYW5kIHBhc3N3 b3JkLiBUaGUgcHMgLWVmIGNvbW1hbmQgbWF5IGV4cG9zZSB0aGUgcGxhaW50ZXh0Lg0KPj4+PiBU aGUgLXNhZmUgcGFyYW1ldGVyIG9wdGlvbiBpcyBhZGRlZCB0byByZXBsYWNlIHRoZSB1c2VyIG5h bWUgYW5kIHBhc3N3b3JkIGluIHRoZSBjb21tYW5kIGxpbmUgd2l0aCB0aGUgYXN0ZXJpc2sgKCop Lg0KPj4gDQo+Pj4gVGhlIHBhdGNoIHJlZHVjZWQgdGhlIHJpc2sgdG8gYSBsb3cgbGV2ZWwsIGJ1 dCBJIGRvbuKAmXQgdGhpbmsgaXQgZml4ZWQgdGhlIHNlY3VyaXR5IGlzc3VlIHRvdGFsbHkuIEl0 4oCZcyBzdGlsbCB0aGVyZSB3aXRoIGEgc21hbGwgdGltZSB3aW5kb3cuIFRoZSB1c2VjYXNlIGl0 c2VsZiBpcyB1bnNhZmUuDQo+PiANCj4+IEl0J3Mgc3RpbGwgdGhlcmUgd2l0aCBhIHNtYWxsIHRp bWUgd2luZG93LCB0b28gc2hvcnQgZm9yIHBlb3BsZSB0byBjYXB0dXJlLg0KPj4gRG8geW91IGhh dmUgYW55IG90aGVyIGJldHRlciB3YXksIGlmIG5vdCwgdGhpcyB3YXkgcHJldmVudHMgOTklIG9m IHRoZSBzY2VuZXMgYmV0dGVyIHRoYW4gbm90IGRvaW5nIGl0IGF0IGFsbC4NCj4+IA0KPj4gDQo+ Pj4gVGhlcmUgaXMgYW4gLXNhZmUgb3B0aW9uIGluIGNvbmNhdCBkZW11eGVyLCBwbGVhc2UgbWFr ZSBzdXJlIHRoZXJlIGlzIG5vIGNvbmZsaWN0Lg0KPj4+IGNvbmNhdCBkZW11eGVyIEFWT3B0aW9u czoNCj4+PiAtc2FmZSAgICAgICAgICAgICAgPGJvb2xlYW4+ICAgIC5ELi4uLi4uLi4uIGVuYWJs ZSBzYWZlIG1vZGUgKGRlZmF1bHQgdHJ1ZSkNCj4+IA0KPj4gVGhlcmUgaXMgbm8gY29uZmxpY3Qg YmVjYXVzZSAtc2FmZSBpcyBpZGVudGlmaWVkIGJ5IHRoZSBzZWNvbmQgcGFyYW1ldGVyIGFmdGVy IGZmbXBlZy9mZnByb2JlL2ZmcGxheS4NCg0KPklzbuKAmXQgaXQgYnJlYWsgdGhlIGZvbGxvd2lu ZyB1c2UgY2FzZT8NCg0KPmZmbXBlZyAtc2FmZSAwIC1mIGNvbmNhdCAtaSBhYmMgLWMgY29weSAv dG1wL3Rlc3QubXA0DQogDQoNClRoYW5rcywgemhpbGl6aGFvLg0KWW91J3JlIHJpZ2h0LCB3ZSdy ZSBnb2luZyB0byByZXBsYWNlIC1zYWZlIHdpdGggLWRlc2Vuc2l0aXphdGlvbiwgDQp3aGF0IG90 aGVyIGdvb2QgcGFyYW1ldGVyIG5hbWUgc3VnZ2VzdGlvbnMgZG8geW91IGhhdmU/DQoNCg0KPiAN Cj4gDQo+Pj4gU2lnbmVkLW9mZi1ieTogd3VqaWFuX25hbmppbmcgPHd1amlhbjJAaHVhd2VpLmNv bT4NCj4+PiAtLS0NCj4+PiBkb2MvZmZtcGVnLnRleGkgICAgfCAgNyArKysrKysrDQo+Pj4gZG9j L2ZmcGxheS50ZXhpICAgIHwgIDggKysrKysrKysNCj4+PiBkb2MvZmZwcm9iZS50ZXhpICAgfCAg NyArKysrKysrDQo+Pj4gZmZ0b29scy9jbWR1dGlscy5jIHwgNDcNCj4+PiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQ0KPj4+IGZmdG9vbHMvY21kdXRpbHMu aCB8IDE1ICsrKysrKysrKysrKysrKw0KPj4+IGZmdG9vbHMvZmZtcGVnLmMgICB8IDE2ICsrKysr KysrKysrKystLS0NCj4+PiBmZnRvb2xzL2ZmcGxheS5jICAgfCAxNSArKysrKysrKysrKysrLS0N Cj4+PiBmZnRvb2xzL2ZmcHJvYmUuYyAgfCAxOCArKysrKysrKysrKysrKy0tLS0NCj4+PiA4IGZp bGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkNCj4+PiANCj4+ PiBkaWZmIC0tZ2l0IGEvZG9jL2ZmbXBlZy50ZXhpIGIvZG9jL2ZmbXBlZy50ZXhpIGluZGV4IA0K Pj4+IDAzNjc5MzAuLmU5MDU1NDINCj4+PiAxMDA2NDQNCj4+PiAtLS0gYS9kb2MvZmZtcGVnLnRl eGkNCj4+PiArKysgYi9kb2MvZmZtcGVnLnRleGkNCj4+PiBAQCAtNTAsNiArNTAsMTMgQEAgb3V0 cHV0IGZpbGVzLiBBbHNvIGRvIG5vdCBtaXggb3B0aW9ucyB3aGljaCANCj4+PiBiZWxvbmcgdG8g ZGlmZmVyZW50IGZpbGVzLiBBbGwgb3B0aW9ucyBhcHBseSBPTkxZIHRvIHRoZSBuZXh0IGlucHV0 IG9yIG91dHB1dCBmaWxlIGFuZCBhcmUgcmVzZXQgYmV0d2VlbiBmaWxlcy4NCj4+PiANCj4+PiBA aXRlbWl6ZQ0KPj4+ICtAaXRlbSAtc2FmZQ0KPj4+ICtUaGUgUHJvdG9jb2wgYWRkcmVzcyBtYXkg Y29udGFpbiB0aGUgdXNlciBuYW1lIGFuZCBwYXNzd29yZC4gVGhlIHBzIC1lZiBjb21tYW5kIG1h eSBleHBvc2UgdGhlIHBsYWludGV4dC4NCj4+PiArVGhlIC1zYWZlIHBhcmFtZXRlciBvcHRpb24g aXMgYWRkZWQgdG8gcmVwbGFjZSB0aGUgdXNlciBuYW1lIGFuZCBwYXNzd29yZCBpbiB0aGUgY29t bWFuZCBsaW5lIHdpdGggdGhlIGFzdGVyaXNrICgqKS4NCj4+PiArQGV4YW1wbGUNCj4+PiArZmZt cGVnIC1zYWZlIC1pIHJ0c3A6Ly91c2VybmFtZUBwYXNzd29yZC54eHh4LmNvbSBAZW5kIGV4YW1w bGUNCj4+PiArDQo+Pj4gQGl0ZW0NCj4+PiBUbyBzZXQgdGhlIHZpZGVvIGJpdHJhdGUgb2YgdGhl IG91dHB1dCBmaWxlIHRvIDY0IGtiaXQvczoNCj4+PiBAZXhhbXBsZQ0KPj4+IGRpZmYgLS1naXQg YS9kb2MvZmZwbGF5LnRleGkgYi9kb2MvZmZwbGF5LnRleGkgaW5kZXggDQo+Pj4gNWRkODYwYi4u ZjQ2Y2E5MQ0KPj4+IDEwMDY0NA0KPj4+IC0tLSBhL2RvYy9mZnBsYXkudGV4aQ0KPj4+ICsrKyBi L2RvYy9mZnBsYXkudGV4aQ0KPj4+IEBAIC0xMjIsNiArMTIyLDE0IEBAIFJlYWQgQHZhcntpbnB1 dF91cmx9Lg0KPj4+IA0KPj4+IEBzZWN0aW9uIEFkdmFuY2VkIG9wdGlvbnMNCj4+PiBAdGFibGUg QG9wdGlvbg0KPj4+ICsNCj4+PiArQGl0ZW0gLXNhZmUNCj4+PiArVGhlIFByb3RvY29sIGFkZHJl c3MgbWF5IGNvbnRhaW4gdGhlIHVzZXIgbmFtZSBhbmQgcGFzc3dvcmQuIFRoZSBwcyAtZWYgY29t bWFuZCBtYXkgZXhwb3NlIHRoZSBwbGFpbnRleHQuDQo+Pj4gK1RoZSAtc2FmZSBwYXJhbWV0ZXIg b3B0aW9uIGlzIGFkZGVkIHRvIHJlcGxhY2UgdGhlIHVzZXIgbmFtZSBhbmQgcGFzc3dvcmQgaW4g dGhlIGNvbW1hbmQgbGluZSB3aXRoIHRoZSBhc3RlcmlzayAoKikuDQo+Pj4gK0BleGFtcGxlDQo+ Pj4gK2ZmcGxheSAtc2FmZSAtaSBydHNwOi8vdXNlcm5hbWVAcGFzc3dvcmQueHh4eC5jb20gQGVu ZCBleGFtcGxlDQo+Pj4gKw0KPj4+IEBpdGVtIC1zdGF0cw0KPj4+IFByaW50IHNldmVyYWwgcGxh eWJhY2sgc3RhdGlzdGljcywgaW4gcGFydGljdWxhciBzaG93IHRoZSBzdHJlYW0gDQo+Pj4gZHVy YXRpb24sIHRoZSBjb2RlYyBwYXJhbWV0ZXJzLCB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUg c3RyZWFtIA0KPj4+IGFuZCBkaWZmIC0tZ2l0IGEvZG9jL2ZmcHJvYmUudGV4aSBiL2RvYy9mZnBy b2JlLnRleGkgaW5kZXggDQo+Pj4gNGRjOWY1Ny4uOTJiMTNjZiAxMDA2NDQNCj4+PiAtLS0gYS9k b2MvZmZwcm9iZS50ZXhpDQo+Pj4gKysrIGIvZG9jL2ZmcHJvYmUudGV4aQ0KPj4+IEBAIC04OSw2 ICs4OSwxMyBAQCBTZXQgdGhlIG91dHB1dCBwcmludGluZyBmb3JtYXQuDQo+Pj4gQHZhcnt3cml0 ZXJfbmFtZX0gc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSB3cml0ZXIsIGFuZCANCj4+PiBAdmFy e3dyaXRlcl9vcHRpb25zfSBzcGVjaWZpZXMgdGhlIG9wdGlvbnMgdG8gYmUgcGFzc2VkIHRvIHRo ZSB3cml0ZXIuDQo+Pj4gDQo+Pj4gK0BpdGVtIC1zYWZlDQo+Pj4gK1RoZSBQcm90b2NvbCBhZGRy ZXNzIG1heSBjb250YWluIHRoZSB1c2VyIG5hbWUgYW5kIHBhc3N3b3JkLiBUaGUgcHMgLWVmIGNv bW1hbmQgbWF5IGV4cG9zZSB0aGUgcGxhaW50ZXh0Lg0KPj4+ICtUaGUgLXNhZmUgcGFyYW1ldGVy IG9wdGlvbiBpcyBhZGRlZCB0byByZXBsYWNlIHRoZSB1c2VyIG5hbWUgYW5kIHBhc3N3b3JkIGlu IHRoZSBjb21tYW5kIGxpbmUgd2l0aCB0aGUgYXN0ZXJpc2sgKCopLg0KPj4+ICtAZXhhbXBsZQ0K Pj4+ICtmZnByb2JlIC1zYWZlIC1pIHJ0c3A6Ly91c2VybmFtZUBwYXNzd29yZC54eHh4LmNvbSBA ZW5kIGV4YW1wbGUNCj4+PiArDQo+Pj4gRm9yIGV4YW1wbGUgZm9yIHByaW50aW5nIHRoZSBvdXRw dXQgaW4gSlNPTiBmb3JtYXQsIHNwZWNpZnk6DQo+Pj4gQGV4YW1wbGUNCj4+PiAtcHJpbnRfZm9y bWF0IGpzb24NCj4+PiBkaWZmIC0tZ2l0IGEvZmZ0b29scy9jbWR1dGlscy5jIGIvZmZ0b29scy9j bWR1dGlscy5jIGluZGV4DQo+Pj4gYTFkZTYyMS4uMjI0MDdmOCAxMDA2NDQNCj4+PiAtLS0gYS9m ZnRvb2xzL2NtZHV0aWxzLmMNCj4+PiArKysgYi9mZnRvb2xzL2NtZHV0aWxzLmMNCj4+PiBAQCAt NjEsNiArNjEsNDAgQEAgQVZEaWN0aW9uYXJ5ICpmb3JtYXRfb3B0cywgKmNvZGVjX29wdHM7DQo+ Pj4gDQo+Pj4gaW50IGhpZGVfYmFubmVyID0gMDsNCj4+PiANCj4+PiArdm9pZCBwYXJhbV9tYXNr aW5nKGludCBhcmdjLCBjaGFyICoqYXJndikgew0KPj4+ICsgICAgaW50IGksIGo7DQo+Pj4gKyAg ICBmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKSB7DQo+Pj4gKyAgICAgICAgY2hhciAqbWF0Y2gg PSBzdHJzdHIoYXJndltpXSwgIjovLyIpOw0KPj4+ICsgICAgICAgIGlmIChtYXRjaCkgew0KPj4+ ICsgICAgICAgICAgICBpbnQgdG90YWwgPSBzdHJsZW4oYXJndltpXSk7DQo+Pj4gKyAgICAgICAg ICAgIGZvciAoaiA9IDA7IGogPCB0b3RhbDsgaisrKSB7DQo+Pj4gKyAgICAgICAgICAgICAgICBh cmd2W2ldW2pdID0gJyonOw0KPj4+ICsgICAgICAgICAgICB9DQo+Pj4gKyAgICAgICAgfQ0KPj4+ ICsgICAgfQ0KPj4+ICt9DQo+Pj4gKw0KPj4+ICtjaGFyICoqY29weV9hcmd2KGludCBhcmdjLCBj aGFyICoqYXJndikgew0KPj4+ICsgICAgY2hhciAqKmFyZ3YyOw0KPj4+ICsgICAgYXJndjIgPSBh dl9tYWxsb2N6KGFyZ2MgKiBzaXplb2YoY2hhciAqKSk7DQo+Pj4gKyAgICBpZiAoIWFyZ3YyKQ0K Pj4+ICsgICAgICAgIGV4aXRfcHJvZ3JhbSgxKTsNCj4+PiArDQo+Pj4gKyAgICBmb3IgKGludCBp ID0gMDsgaSA8IGFyZ2M7IGkrKykgew0KPj4+ICsgICAgICAgIGludCBsZW5ndGggPSBzdHJsZW4o YXJndltpXSkgKyAxOw0KPj4+ICsgICAgICAgIGFyZ3YyW2ldID0gYXZfbWFsbG9jeihsZW5ndGgg KiBzaXplb2YoY2hhciAqKSk7DQo+Pj4gKyAgICAgICAgaWYgKCFhcmd2MltpXSkNCj4+PiArICAg ICAgICAgICAgZXhpdF9wcm9ncmFtKDEpOw0KPj4+ICsgICAgICAgIG1lbWNweShhcmd2MltpXSwg YXJndltpXSwgbGVuZ3RoIC0gMSk7DQo+Pj4gKyAgICB9DQo+Pj4gKyAgICByZXR1cm4gYXJndjI7 DQo+Pj4gK30NCj4+PiArDQo+Pj4gK3ZvaWQgZnJlZV9wcChpbnQgYXJnYywgY2hhciAqKmFyZ3Yp IHsNCj4+PiArICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnYzsgaSsrKQ0KPj4+ICsgICAgICAg IGF2X2ZyZWUoYXJndltpXSk7DQo+Pj4gKyAgICBhdl9mcmVlKGFyZ3YpOw0KPj4+ICt9DQo+Pj4g dm9pZCB1bmluaXRfb3B0cyh2b2lkKQ0KPj4+IHsNCj4+PiAgICBhdl9kaWN0X2ZyZWUoJnN3cl9v cHRzKTsNCj4+PiBAQCAtMjE1LDEzICsyNDksMTMgQEAgc3RhdGljIHZvaWQgcHJlcGFyZV9hcHBf YXJndW1lbnRzKGludCAqYXJnY19wdHIsIGNoYXIgKioqYXJndl9wdHIpDQo+Pj4gICAgaWYgKHdp bjMyX2FyZ3ZfdXRmOCkgew0KPj4+ICAgICAgICAqYXJnY19wdHIgPSB3aW4zMl9hcmdjOw0KPj4+ ICAgICAgICAqYXJndl9wdHIgPSB3aW4zMl9hcmd2X3V0Zjg7DQo+Pj4gLSAgICAgICAgcmV0dXJu Ow0KPj4+ICsgICAgICAgIGdvdG8gZW5kOw0KPj4+ICAgIH0NCj4+PiANCj4+PiAgICB3aW4zMl9h cmdjID0gMDsNCj4+PiAgICBhcmd2X3cgPSBDb21tYW5kTGluZVRvQXJndlcoR2V0Q29tbWFuZExp bmVXKCksICZ3aW4zMl9hcmdjKTsNCj4+PiAgICBpZiAod2luMzJfYXJnYyA8PSAwIHx8ICFhcmd2 X3cpDQo+Pj4gLSAgICAgICAgcmV0dXJuOw0KPj4+ICsgICAgICAgIGdvdG8gZW5kOw0KPj4+IA0K Pj4+ICAgIC8qIGRldGVybWluZSB0aGUgVVRGLTggYnVmZmVyIHNpemUgKGluY2x1ZGluZyBOVUxM LXRlcm1pbmF0aW9uIHN5bWJvbHMpICovDQo+Pj4gICAgZm9yIChpID0gMDsgaSA8IHdpbjMyX2Fy Z2M7IGkrKykNCj4+PiBAQCAtMjMyLDcgKzI2Niw3IEBAIHN0YXRpYyB2b2lkIHByZXBhcmVfYXBw X2FyZ3VtZW50cyhpbnQgKmFyZ2NfcHRyLCBjaGFyICoqKmFyZ3ZfcHRyKQ0KPj4+ICAgIGFyZ3N0 cl9mbGF0ICAgICA9IChjaGFyICopd2luMzJfYXJndl91dGY4ICsgc2l6ZW9mKGNoYXIgKikgKiAo d2luMzJfYXJnYyArIDEpOw0KPj4+ICAgIGlmICghd2luMzJfYXJndl91dGY4KSB7DQo+Pj4gICAg ICAgIExvY2FsRnJlZShhcmd2X3cpOw0KPj4+IC0gICAgICAgIHJldHVybjsNCj4+PiArICAgICAg ICBnb3RvIGVuZDsNCj4+PiAgICB9DQo+Pj4gDQo+Pj4gICAgZm9yIChpID0gMDsgaSA8IHdpbjMy X2FyZ2M7IGkrKykgeyBAQCAtMjQzLDkgKzI3NywxNCBAQCBzdGF0aWMgDQo+Pj4gdm9pZCBwcmVw YXJlX2FwcF9hcmd1bWVudHMoaW50ICphcmdjX3B0ciwgY2hhciAqKiphcmd2X3B0cikNCj4+PiAg ICB9DQo+Pj4gICAgd2luMzJfYXJndl91dGY4W2ldID0gTlVMTDsNCj4+PiAgICBMb2NhbEZyZWUo YXJndl93KTsNCj4+PiAtDQo+Pj4gICAgKmFyZ2NfcHRyID0gd2luMzJfYXJnYzsNCj4+PiAgICAq YXJndl9wdHIgPSB3aW4zMl9hcmd2X3V0Zjg7DQo+Pj4gK2VuZDoNCj4+PiArICAgIGlmICgqYXJn Y19wdHIgPiAxICYmICFzdHJjbXAoKCphcmd2X3B0cilbMV0sICItc2FmZSIpKSB7DQo+Pj4gKyAg ICAgICAgKCphcmd2X3B0cilbMV0gPSAoKmFyZ3ZfcHRyKVswXTsNCj4+PiArICAgICAgICAoKmFy Z2NfcHRyKS0tOw0KPj4+ICsgICAgICAgICgqYXJndl9wdHIpKys7DQo+Pj4gKyAgICB9DQo+Pj4g fQ0KPj4+ICNlbHNlDQo+Pj4gc3RhdGljIGlubGluZSB2b2lkIHByZXBhcmVfYXBwX2FyZ3VtZW50 cyhpbnQgKmFyZ2NfcHRyLCBjaGFyDQo+Pj4gKioqYXJndl9wdHIpIGRpZmYgLS1naXQgYS9mZnRv b2xzL2NtZHV0aWxzLmggYi9mZnRvb2xzL2NtZHV0aWxzLmggDQo+Pj4gaW5kZXggNDQ5NjIyMS4u Y2U0YzFkYiAxMDA2NDQNCj4+PiAtLS0gYS9mZnRvb2xzL2NtZHV0aWxzLmgNCj4+PiArKysgYi9m ZnRvb2xzL2NtZHV0aWxzLmgNCj4+PiBAQCAtNTAsNiArNTAsMjEgQEAgZXh0ZXJuIEFWRGljdGlv bmFyeSAqZm9ybWF0X29wdHMsICpjb2RlY19vcHRzOyANCj4+PiBleHRlcm4gaW50IGhpZGVfYmFu bmVyOw0KPj4+IA0KPj4+IC8qKg0KPj4+ICsgKiBVc2luZyB0byBtYXNraW5nIHNlbnNpdGl2ZSBp bmZvLg0KPj4+ICsgKi8NCj4+PiArdm9pZCBwYXJhbV9tYXNraW5nKGludCBhcmdjLCBjaGFyICoq YXJndik7DQo+Pj4gKw0KPj4+ICsvKioNCj4+PiArICogVXNpbmcgdG8gY29weSBvcmkgYXJndi4N Cj4+PiArICovDQo+Pj4gK2NoYXIgKipjb3B5X2FyZ3YoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsN Cj4+PiArDQo+Pj4gKy8qKg0KPj4+ICsgKiBGcmVlICoqDQo+Pj4gKyAqLw0KPj4gK3ZvaWQgZnJl ZV9wcChpbnQgYXJnYywgY2hhciAqKmFyZ3YpOw0KPj4+PiArDQo+Pj4gKy8qKg0KPj4+ICogUmVn aXN0ZXIgYSBwcm9ncmFtLXNwZWNpZmljIGNsZWFudXAgcm91dGluZS4NCj4+PiAqLw0KPj4+IHZv aWQgcmVnaXN0ZXJfZXhpdCh2b2lkICgqY2IpKGludCByZXQpKTsgZGlmZiAtLWdpdCANCj4+PiBh L2ZmdG9vbHMvZmZtcGVnLmMgYi9mZnRvb2xzL2ZmbXBlZy5jIGluZGV4IDg4MWQ2ZjAuLmY3N2U4 NTAgMTAwNjQ0DQo+Pj4gLS0tIGEvZmZ0b29scy9mZm1wZWcuYw0KPj4+ICsrKyBiL2ZmdG9vbHMv ZmZtcGVnLmMNCj4+PiBAQCAtMzg2NSw5ICszODY1LDkgQEAgc3RhdGljIGludDY0X3QgZ2V0bWF4 cnNzKHZvaWQpDQo+Pj4gDQo+Pj4gaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPj4+ IHsNCj4+PiAtICAgIGludCByZXQ7DQo+Pj4gKyAgICBpbnQgcmV0LCBzYWZlRmxhZzsNCj4+PiAg ICBCZW5jaG1hcmtUaW1lU3RhbXBzIHRpOw0KPj4+IC0NCj4+PiArICAgIGNoYXIgKiphcmd2MjsN Cj4+PiAgICBpbml0X2R5bmxvYWQoKTsNCj4+PiANCj4+PiAgICByZWdpc3Rlcl9leGl0KGZmbXBl Z19jbGVhbnVwKTsNCj4+PiBAQCAtMzg3NywxNSArMzg3NywyNSBAQCBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpDQo+Pj4gICAgYXZfbG9nX3NldF9mbGFncyhBVl9MT0dfU0tJUF9SRVBF QVRFRCk7DQo+Pj4gICAgcGFyc2VfbG9nbGV2ZWwoYXJnYywgYXJndiwgb3B0aW9ucyk7DQo+Pj4g DQo+Pj4gKyAgICBzYWZlRmxhZyA9IDA7DQo+Pj4gKyAgICBpZiAoYXJnYyA+IDEgJiYgIXN0cmNt cChhcmd2WzFdLCAiLXNhZmUiKSkgew0KPj4+ICsgICAgICAgIGFyZ3ZbMV0gPSBhcmd2WzBdOw0K Pj4+ICsgICAgICAgIHNhZmVGbGFnID0gMTsNCj4+PiArICAgICAgICBhcmdjLS07DQo+Pj4gKyAg ICAgICAgYXJndisrOw0KPj4+ICsgICAgfQ0KPj4+ICNpZiBDT05GSUdfQVZERVZJQ0UNCj4+PiAg ICBhdmRldmljZV9yZWdpc3Rlcl9hbGwoKTsNCj4+PiAjZW5kaWYNCj4+PiAgICBhdmZvcm1hdF9u ZXR3b3JrX2luaXQoKTsNCj4+PiANCj4+PiAgICBzaG93X2Jhbm5lcihhcmdjLCBhcmd2LCBvcHRp b25zKTsNCj4+PiArICAgIGFyZ3YyID0gY29weV9hcmd2KGFyZ2MsIGFyZ3YpOw0KPj4+ICsgICAg aWYgKHNhZmVGbGFnKQ0KPj4+ICsgICAgICAgIHBhcmFtX21hc2tpbmcoYXJnYywgYXJndik7DQo+ Pj4gDQo+Pj4gICAgLyogcGFyc2Ugb3B0aW9ucyBhbmQgb3BlbiBhbGwgaW5wdXQvb3V0cHV0IGZp bGVzICovDQo+Pj4gLSAgICByZXQgPSBmZm1wZWdfcGFyc2Vfb3B0aW9ucyhhcmdjLCBhcmd2KTsN Cj4+PiArICAgIHJldCA9IGZmbXBlZ19wYXJzZV9vcHRpb25zKGFyZ2MsIGFyZ3YyKTsNCj4+PiAg ICBpZiAocmV0IDwgMCkNCj4+PiAgICAgICAgZXhpdF9wcm9ncmFtKDEpOw0KPj4+IA0KPj4+IGRp ZmYgLS1naXQgYS9mZnRvb2xzL2ZmcGxheS5jIGIvZmZ0b29scy9mZnBsYXkuYyBpbmRleA0KPj4+ IGZjN2UxYzIuLmY5ZTZjOTEgMTAwNjQ0DQo+Pj4gLS0tIGEvZmZ0b29scy9mZnBsYXkuYw0KPj4+ ICsrKyBiL2ZmdG9vbHMvZmZwbGF5LmMNCj4+PiBAQCAtMzY2MywxMCArMzY2MywxOCBAQCB2b2lk IHNob3dfaGVscF9kZWZhdWx0KGNvbnN0IGNoYXIgKm9wdCwgDQo+Pj4gY29uc3QgY2hhciAqYXJn KQ0KPj4+IC8qIENhbGxlZCBmcm9tIHRoZSBtYWluICovDQo+Pj4gaW50IG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQ0KPj4+IHsNCj4+PiAtICAgIGludCBmbGFnczsNCj4+PiArICAgIGludCBm bGFncywgc2FmZUZsYWc7DQo+Pj4gKyAgICBjaGFyICoqYXJndjI7DQo+Pj4gICAgVmlkZW9TdGF0 ZSAqaXM7DQo+Pj4gDQo+Pj4gICAgaW5pdF9keW5sb2FkKCk7DQo+Pj4gKyAgICBzYWZlRmxhZyA9 IDA7DQo+Pj4gKyAgICBpZiAoYXJnYyA+IDEgJiYgIXN0cmNtcChhcmd2WzFdLCAiLXNhZmUiKSkg ew0KPj4+ICsgICAgICAgIGFyZ3ZbMV0gPSBhcmd2WzBdOw0KPj4+ICsgICAgICAgIHNhZmVGbGFn ID0gMTsNCj4+PiArICAgICAgICBhcmdjLS07DQo+Pj4gKyAgICAgICAgYXJndisrOw0KPj4+ICsg ICAgfQ0KPj4+IA0KPj4+ICAgIGF2X2xvZ19zZXRfZmxhZ3MoQVZfTE9HX1NLSVBfUkVQRUFURUQp Ow0KPj4+ICAgIHBhcnNlX2xvZ2xldmVsKGFyZ2MsIGFyZ3YsIG9wdGlvbnMpOyBAQCAtMzY4Miw3 ICszNjkwLDEwIEBAIGludCANCj4+PiBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4+PiAN Cj4+PiAgICBzaG93X2Jhbm5lcihhcmdjLCBhcmd2LCBvcHRpb25zKTsNCj4+PiANCj4+PiAtICAg IHBhcnNlX29wdGlvbnMoTlVMTCwgYXJnYywgYXJndiwgb3B0aW9ucywgb3B0X2lucHV0X2ZpbGUp Ow0KPj4+ICsgICAgYXJndjIgPSBjb3B5X2FyZ3YoYXJnYywgYXJndik7DQo+Pj4gKyAgICBwYXJz ZV9vcHRpb25zKE5VTEwsIGFyZ2MsIGFyZ3YyLCBvcHRpb25zLCBvcHRfaW5wdXRfZmlsZSk7DQo+ Pj4gKyAgICBpZiAoc2FmZUZsYWcpDQo+Pj4gKyAgICAgICAgcGFyYW1fbWFza2luZyhhcmdjLCBh cmd2KTsNCj4+PiANCj4+PiAgICBpZiAoIWlucHV0X2ZpbGVuYW1lKSB7DQo+Pj4gICAgICAgIHNo b3dfdXNhZ2UoKTsNCj4+PiBkaWZmIC0tZ2l0IGEvZmZ0b29scy9mZnByb2JlLmMgYi9mZnRvb2xz L2ZmcHJvYmUuYyBpbmRleA0KPj4+IGQyZjEyNmQuLjhkNGQxZTkgMTAwNjQ0DQo+Pj4gLS0tIGEv ZmZ0b29scy9mZnByb2JlLmMNCj4+PiArKysgYi9mZnRvb2xzL2ZmcHJvYmUuYw0KPj4+IEBAIC00 MDM1LDkgKzQwMzUsMTYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPj4+ICAg IFdyaXRlckNvbnRleHQgKndjdHg7DQo+Pj4gICAgY2hhciAqYnVmOw0KPj4+ICAgIGNoYXIgKndf bmFtZSA9IE5VTEwsICp3X2FyZ3MgPSBOVUxMOw0KPj4+IC0gICAgaW50IHJldCwgaW5wdXRfcmV0 LCBpOw0KPj4+IC0NCj4+PiArICAgIGludCByZXQsIGlucHV0X3JldCwgaSwgc2FmZUZsYWc7DQo+ Pj4gKyAgICBjaGFyICoqYXJndjI7DQo+Pj4gICAgaW5pdF9keW5sb2FkKCk7DQo+Pj4gKyAgICBz YWZlRmxhZyA9IDA7DQo+Pj4gKyAgICBpZiAoYXJnYyA+IDEgJiYgIXN0cmNtcChhcmd2WzFdLCAi LXNhZmUiKSkgew0KPj4+ICsgICAgICAgIGFyZ3ZbMV0gPSBhcmd2WzBdOw0KPj4+ICsgICAgICAg IHNhZmVGbGFnID0gMTsNCj4+PiArICAgICAgICBhcmdjLS07DQo+Pj4gKyAgICAgICAgYXJndisr Ow0KPj4+ICsgICAgfQ0KPj4+IA0KPj4+ICNpZiBIQVZFX1RIUkVBRFMNCj4+PiAgICByZXQgPSBw dGhyZWFkX211dGV4X2luaXQoJmxvZ19tdXRleCwgTlVMTCk7IEBAIC00MDU2LDggKzQwNjMsMTAg DQo+Pj4gQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSAjZW5kaWYNCj4+PiANCj4+ PiAgICBzaG93X2Jhbm5lcihhcmdjLCBhcmd2LCBvcHRpb25zKTsNCj4+PiAtICAgIHBhcnNlX29w dGlvbnMoTlVMTCwgYXJnYywgYXJndiwgb3B0aW9ucywgb3B0X2lucHV0X2ZpbGUpOw0KPj4+IC0N Cj4+PiArICAgIGFyZ3YyID0gY29weV9hcmd2KGFyZ2MsIGFyZ3YpOw0KPj4+ICsgICAgcGFyc2Vf b3B0aW9ucyhOVUxMLCBhcmdjLCBhcmd2Miwgb3B0aW9ucywgb3B0X2lucHV0X2ZpbGUpOw0KPj4+ ICsgICAgaWYgKHNhZmVGbGFnKQ0KPj4+ICsgICAgICAgIHBhcmFtX21hc2tpbmcoYXJnYywgYXJn dik7DQo+Pj4gICAgaWYgKGRvX3Nob3dfbG9nKQ0KPj4+ICAgICAgICBhdl9sb2dfc2V0X2NhbGxi YWNrKGxvZ19jYWxsYmFjayk7DQo+Pj4gDQo+Pj4gQEAgLTQxNzMsNiArNDE4Miw3IEBAIGVuZDoN Cj4+PiAgICBhdl9mcmVlcCgmcHJpbnRfZm9ybWF0KTsNCj4+PiAgICBhdl9mcmVlcCgmcmVhZF9p bnRlcnZhbHMpOw0KPj4+ICAgIGF2X2hhc2hfZnJlZXAoJmhhc2gpOw0KPj4+ICsgICAgZnJlZV9w cChhcmdjLCBhcmd2Mik7DQo+Pj4gDQo+Pj4gICAgdW5pbml0X29wdHMoKTsNCj4+PiAgICBmb3Ig KGkgPSAwOyBpIDwgRkZfQVJSQVlfRUxFTVMoc2VjdGlvbnMpOyBpKyspDQo+Pj4gLS0NCj4+PiAy LjcuNA0KPj4+IA0KPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQo+Pj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdA0KPj4+IGZmbXBlZy1kZXZlbEBm Zm1wZWcub3JnDQo+Pj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVn LWRldmVsDQo+Pj4gDQo+Pj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVt YWlsIA0KPj4+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1 bnN1YnNjcmliZSIuDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXw0KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0DQo+IGZmbXBlZy1kZXZlbEBm Zm1wZWcub3JnDQo+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1k ZXZlbA0KPiANCj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsIGZm bXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIu DQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IGZm bXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcNCj4gaHR0 cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsDQo+IA0KPiBUbyB1 bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwgDQo+IGZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuDQoNCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpmZm1wZWctZGV2ZWwgbWFp bGluZyBsaXN0DQpmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZw0KaHR0cHM6Ly9mZm1wZWcub3JnL21h aWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsDQoNClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5r IGFib3ZlLCBvciBlbWFpbCBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3Vi amVjdCAidW5zdWJzY3JpYmUiLg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVn Lm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVx dWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=