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 A433848686 for ; Wed, 13 Dec 2023 13:42:18 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CD54268D20F; Wed, 13 Dec 2023 15:42:15 +0200 (EET) Received: from out203-205-221-221.mail.qq.com (out203-205-221-221.mail.qq.com [203.205.221.221]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 62E2468D065 for ; Wed, 13 Dec 2023 15:42:08 +0200 (EET) Received: from smtpclient.apple ([163.125.195.150]) by newxmesmtplogicsvrszc5-1.qq.com (NewEsmtp) with SMTP id A79B92EA; Wed, 13 Dec 2023 21:41:57 +0800 X-QQ-mid: xmsmtpt1702474917tqexnop8c Message-ID: X-QQ-XMAILINFO: NafziRg7Bx69sh5bJ4k1bSb/Tr+UGodF71pQr+iVvZpu5BAFNvmxT7dnpMOn3W dBcXABrOIGw0GTNUGehARL2U+S7Gk1itgazx4HGuTBmzKI1bqxBt3Mz/FqKpRWBuIDb5xwd3uot5 HU+HIv6LOultm/VHj5N9mWYVIvgbUhQs2rNqGl60X+chvloxiVSJwtNA6Tkup2DGGzS5lG4TEidR nNDdAAaldrTMOYXKOl8UGtuDY8C9oIclre8mh+6p6NRCzhe0aPGK/gMup/A885u7PmcXns/DUQjh VdZll2uo9k5VihMFBry71PtgbdyAVkjqbL5EEc31a8kYw2BHIUTmzqvJIG4oLP6VidYFBAi8v3Dh OMR+HYcQhB2cK8o0074ALhoShn6eOdipzT0ZDO7P2R9whHeWRBvmHK8/nq/BJJYCxhpevYEo4CzR GrRXdi3cH8KuxH2GBLDHlL7goJ8wKqJIMmSG3b07Ju+fmcoO55gaI/n/vcu+Ah+cUcWJwl2G/gKJ sX0d+2FfGHAA0u1/oekjB3FUbk+fzoM59o3Jz87mU0+fwJFD9qU6WOQPaiNu0X/tBYXRUb0eN8rU LA+dvmyroeGL1qoF/jarG3yIf4ze950VzDJJwuuZQKbfLAitVlqeCbKmhOubLBjZUfAaAFnK28cj ZNQAkxjLyXi07tube+eam5F8qEaV9EOwgD2QVNtxvVquN0cvqazdlm1V71NflN67iD9is/FeELY1 OVfLdSK9mjJPZaRqAb1+kRw3FM0Ujf3qzwY0TKZF1OlI6ySsxuzKiJFglSQqXkULNxy/L7vOzTOk iP2mQpHXN6L2CsU+/LN8Da/wIAchreJwdaCwa/UaAkFPSp9WKXvyWCYPcN1wnWUFNKtdw+vULKhk ipsI9BLMNzNld59cAAtjzIk9pd6isX7unDMdp6fRdJq4JvbnlLbsBccF5A7Giigow9BO3uK3Utro s0H1tOVyY= X-QQ-XMRINFO: NI4Ajvh11aEj8Xl/2s1/T8w= X-OQ-MSGID: <837B46CB-789B-4AC3-AAA2-38A05A213FEC@qq.com> Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.100.2.1.4\)) Date: Wed, 13 Dec 2023 21:41:47 +0800 In-Reply-To: <29ed7620-f60f-4f31-bc22-3f0903456c07@gmail.com> To: FFmpeg development discussions and patches References: <29ed7620-f60f-4f31-bc22-3f0903456c07@gmail.com> X-Mailer: Apple Mail (2.3774.100.2.1.4) X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 2/2] avformat/flvdec: support enhanced flv PacketTypeMetadata 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: , From: =?utf-8?b?5pyx6bmP6aOeIHZpYSBmZm1wZWctZGV2ZWw=?= Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?B?5pyx6bmP6aOe?= <411294962@qq.com>, jamrial@gmail.com 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: Cgo+IDIwMjPlubQxMuaciDXml6UgMDU6MzLvvIxKYW1lcyBBbG1lciA8amFtcmlhbEBnbWFpbC5j b20+IOWGmemBk++8mgo+IAo+IE9uIDExLzE1LzIwMjMgMTE6NDAgQU0sIHpodXBlbmdmZWkgdmlh IGZmbXBlZy1kZXZlbCB3cm90ZToKPj4gRnJvbTogWmh1IFBlbmdmZWkgPDQxMTI5NDk2MkBxcS5j b20+Cj4+IFNpZ25lZC1vZmYtYnk6IFpodSBQZW5nZmVpIDw0MTEyOTQ5NjJAcXEuY29tPgo+PiAt LS0KPj4gIGxpYmF2Zm9ybWF0L2ZsdmRlYy5jIHwgMTcxICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0KPj4gIDEgZmlsZSBjaGFuZ2VkLCAxNzAgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvZmx2ZGVjLmMgYi9s aWJhdmZvcm1hdC9mbHZkZWMuYwo+PiBpbmRleCBlMjViNWJkMTYzLi40NmJiMDgyNWNhIDEwMDY0 NAo+PiAtLS0gYS9saWJhdmZvcm1hdC9mbHZkZWMuYwo+PiArKysgYi9saWJhdmZvcm1hdC9mbHZk ZWMuYwo+PiBAQCAtMzQsNiArMzQsNyBAQAo+PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRmbG9h dC5oIgo+PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3JpdGUuaCIKPj4gICNpbmNsdWRl ICJsaWJhdnV0aWwvbWF0aGVtYXRpY3MuaCIKPj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvbWFzdGVy aW5nX2Rpc3BsYXlfbWV0YWRhdGEuaCIKPj4gICNpbmNsdWRlICJhdmZvcm1hdC5oIgo+PiAgI2lu Y2x1ZGUgImRlbXV4LmgiCj4+ICAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKPj4gQEAgLTQ1LDYgKzQ2 LDI4IEBACj4+ICAgICNkZWZpbmUgTUFYX0RFUFRIIDE2ICAgICAgLy8vPCBhcmJpdHJhcnkgbGlt aXQgdG8gcHJldmVudCB1bmJvdW5kZWQgcmVjdXJzaW9uCj4+ICArdHlwZWRlZiBzdHJ1Y3QgRkxW TWFzdGVyaW5nTWV0YSB7Cj4+ICsgICAgZG91YmxlIHJfeDsKPj4gKyAgICBkb3VibGUgcl95Owo+ PiArICAgIGRvdWJsZSBnX3g7Cj4+ICsgICAgZG91YmxlIGdfeTsKPj4gKyAgICBkb3VibGUgYl94 Owo+PiArICAgIGRvdWJsZSBiX3k7Cj4+ICsgICAgZG91YmxlIHdoaXRlX3g7Cj4+ICsgICAgZG91 YmxlIHdoaXRlX3k7Cj4+ICsgICAgZG91YmxlIG1heF9sdW1pbmFuY2U7Cj4+ICsgICAgZG91Ymxl IG1pbl9sdW1pbmFuY2U7Cj4+ICt9IEZMVk1hc3RlcmluZ01ldGE7Cj4+ICsKPj4gK3R5cGVkZWYg c3RydWN0IEZMVk1ldGFWaWRlb0NvbG9yIHsKPj4gKyAgICB1aW50NjRfdCBtYXRyaXhfY29lZmZp Y2llbnRzOwo+PiArICAgIHVpbnQ2NF90IHRyYW5zZmVyX2NoYXJhY3RlcmlzdGljczsKPj4gKyAg ICB1aW50NjRfdCBwcmltYXJpZXM7Cj4+ICsgICAgdWludDY0X3QgbWF4X2NsbDsKPj4gKyAgICB1 aW50NjRfdCBtYXhfZmFsbDsKPj4gKyAgICBGTFZNYXN0ZXJpbmdNZXRhIG1hc3RlcmluZ19tZXRh Owo+PiArfSBGTFZNZXRhVmlkZW9Db2xvcjsKPj4gKwo+PiAgdHlwZWRlZiBzdHJ1Y3QgRkxWQ29u dGV4dCB7Cj4+ICAgICAgY29uc3QgQVZDbGFzcyAqY2xhc3M7IC8vLzwgQ2xhc3MgZm9yIHByaXZh dGUgb3B0aW9ucy4KPj4gICAgICBpbnQgdHJ1c3RfbWV0YWRhdGE7ICAgLy8vPCBjb25maWd1cmUg c3RyZWFtcyBhY2NvcmRpbmcgb25NZXRhRGF0YQo+PiBAQCAtODAsNiArMTAzLDggQEAgdHlwZWRl ZiBzdHJ1Y3QgRkxWQ29udGV4dCB7Cj4+ICAgICAgaW50NjRfdCB0aW1lX29mZnNldDsKPj4gICAg ICBpbnQ2NF90IHRpbWVfcG9zOwo+PiAgKyAgICBGTFZNZXRhVmlkZW9Db2xvciAqbWV0YVZpZGVv Q29sb3I7Cj4+ICsgICAgaW50IG1ldGFfY29sb3JfaW5mb19mbGFnOwo+PiAgfSBGTFZDb250ZXh0 Owo+PiAgICAvKiBBTUYgZGF0ZSB0eXBlICovCj4+IEBAIC01MjQsNiArNTQ5LDcgQEAgc3RhdGlj IGludCBhbWZfcGFyc2Vfb2JqZWN0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZTdHJlYW0gKmFzdHJl YW0sCj4+ICAgICAgRkxWQ29udGV4dCAqZmx2ID0gcy0+cHJpdl9kYXRhOwo+PiAgICAgIEFWSU9D b250ZXh0ICppb2M7Cj4+ICAgICAgQU1GRGF0YVR5cGUgYW1mX3R5cGU7Cj4+ICsgICAgRkxWTWV0 YVZpZGVvQ29sb3IgKm1ldGFfdmlkZW9fY29sb3IgPSBmbHYtPm1ldGFWaWRlb0NvbG9yOwo+PiAg ICAgIGNoYXIgc3RyX3ZhbFsxMDI0XTsKPj4gICAgICBkb3VibGUgbnVtX3ZhbDsKPj4gICAgICBh bWZfZGF0ZSBkYXRlOwo+PiBAQCAtNjU1LDYgKzY4MSwzNiBAQCBzdGF0aWMgaW50IGFtZl9wYXJz ZV9vYmplY3QoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlN0cmVhbSAqYXN0cmVhbSwKPj4gICAgICAg ICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgImhlaWdodCIpICYmIHZwYXIp IHsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHZwYXItPmhlaWdodCA9IG51bV92YWw7Cj4+ ICAgICAgICAgICAgICAgICAgICAgIH0KPj4gKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFz dHJjbXAoa2V5LCAiY29sb3JQcmltYXJpZXMiKSAmJiBtZXRhX3ZpZGVvX2NvbG9yKSB7Cj4gCj4g WW91IHNob3VsZCBwdXQgdGhpcyBpbnNpZGUgYW4gImVsc2UgaWYgKG1ldGFfdmlkZW9fY29sb3Ip IiBibG9jaywgaW5zdGVhZCBvZiBjaGVja2luZyBmb3IgbWV0YV92aWRlb19jb2xvciB3aXRoIGV2 ZXJ5IHNpbmdsZSBzdHJpbmcuCj4gCj4gU2VlIGhvdyBpdCdzIGRvbmUgZm9yIGZsdi0+dHJ1c3Rf bWV0YWRhdGEgYWJvdmUuCj4gCj4+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFfdmlkZW9fY29s b3ItPnByaW1hcmllcyA9IG51bV92YWw7Cj4+ICsgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgh c3RyY21wKGtleSwgInRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzIikgJiYgbWV0YV92aWRlb19jb2xv cikgewo+PiArICAgICAgICAgICAgICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT50cmFuc2Zlcl9j aGFyYWN0ZXJpc3RpY3MgPSBudW1fdmFsOwo+PiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo IXN0cmNtcChrZXksICJtYXRyaXhDb2VmZmljaWVudHMiKSAmJiBtZXRhX3ZpZGVvX2NvbG9yKSB7 Cj4+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hdHJpeF9jb2VmZmlj aWVudHMgPSBudW1fdmFsOwo+PiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChr ZXksICJtYXhGYWxsIikgJiYgbWV0YV92aWRlb19jb2xvcikgewo+PiArICAgICAgICAgICAgICAg ICAgICBtZXRhX3ZpZGVvX2NvbG9yLT5tYXhfZmFsbCA9IG51bV92YWw7Cj4+ICsgICAgICAgICAg ICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgIm1heENMTCIpICYmIG1ldGFfdmlkZW9fY29s b3IpIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgbWV0YV92aWRlb19jb2xvci0+bWF4X2NsbCA9 IG51bV92YWw7Cj4+ICsgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgInJl ZFgiKSAmJiBtZXRhX3ZpZGVvX2NvbG9yKSB7Cj4+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFf dmlkZW9fY29sb3ItPm1hc3RlcmluZ19tZXRhLnJfeCA9IG51bV92YWw7Cj4+ICsgICAgICAgICAg ICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgInJlZFkiKSAmJiBtZXRhX3ZpZGVvX2NvbG9y KSB7Cj4+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hc3RlcmluZ19t ZXRhLnJfeSA9IG51bV92YWw7Cj4+ICsgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyY21w KGtleSwgImdyZWVuWCIpICYmIG1ldGFfdmlkZW9fY29sb3IpIHsKPj4gKyAgICAgICAgICAgICAg ICAgICAgbWV0YV92aWRlb19jb2xvci0+bWFzdGVyaW5nX21ldGEuZ194ID0gbnVtX3ZhbDsKPj4g KyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiZ3JlZW5ZIikgJiYgbWV0 YV92aWRlb19jb2xvcikgewo+PiArICAgICAgICAgICAgICAgICAgICBtZXRhX3ZpZGVvX2NvbG9y LT5tYXN0ZXJpbmdfbWV0YS5nX3kgPSBudW1fdmFsOwo+PiArICAgICAgICAgICAgICAgIH0gZWxz ZSBpZiAoIXN0cmNtcChrZXksICJibHVlWCIpICYmIG1ldGFfdmlkZW9fY29sb3IpIHsKPj4gKyAg ICAgICAgICAgICAgICAgICAgbWV0YV92aWRlb19jb2xvci0+bWFzdGVyaW5nX21ldGEuYl94ID0g bnVtX3ZhbDsKPj4gKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiYmx1 ZVkiKSAmJiBtZXRhX3ZpZGVvX2NvbG9yKSB7Cj4+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFf dmlkZW9fY29sb3ItPm1hc3RlcmluZ19tZXRhLmJfeSA9IG51bV92YWw7Cj4+ICsgICAgICAgICAg ICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgIndoaXRlUG9pbnRYIikgJiYgbWV0YV92aWRl b19jb2xvcikgewo+PiArICAgICAgICAgICAgICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT5tYXN0 ZXJpbmdfbWV0YS53aGl0ZV94ID0gbnVtX3ZhbDsKPj4gKyAgICAgICAgICAgICAgICB9IGVsc2Ug aWYgKCFzdHJjbXAoa2V5LCAid2hpdGVQb2ludFkiKSAmJiBtZXRhX3ZpZGVvX2NvbG9yKSB7Cj4+ ICsgICAgICAgICAgICAgICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hc3RlcmluZ19tZXRhLndo aXRlX3kgPSBudW1fdmFsOwo+PiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChr ZXksICJtYXhMdW1pbmFuY2UiKSAmJiBtZXRhX3ZpZGVvX2NvbG9yKSB7Cj4+ICsgICAgICAgICAg ICAgICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hc3RlcmluZ19tZXRhLm1heF9sdW1pbmFuY2Ug PSBudW1fdmFsOwo+PiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJt aW5MdW1pbmFuY2UiKSAmJiBtZXRhX3ZpZGVvX2NvbG9yKSB7Cj4+ICsgICAgICAgICAgICAgICAg ICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hc3RlcmluZ19tZXRhLm1pbl9sdW1pbmFuY2UgPSBudW1f dmFsOwo+PiAgICAgICAgICAgICAgICAgIH0KPj4gICAgICAgICAgICAgIH0KPj4gICAgICAgICAg ICAgIGlmIChhbWZfdHlwZSA9PSBBTUZfREFUQV9UWVBFX1NUUklORykgewo+PiBAQCAtODI0LDYg Kzg4MCw3IEBAIHN0YXRpYyBpbnQgZmx2X3JlYWRfY2xvc2UoQVZGb3JtYXRDb250ZXh0ICpzKQo+ PiAgICAgICAgICBhdl9mcmVlcCgmZmx2LT5uZXdfZXh0cmFkYXRhW2ldKTsKPj4gICAgICBhdl9m cmVlcCgmZmx2LT5rZXlmcmFtZV90aW1lcyk7Cj4+ICAgICAgYXZfZnJlZXAoJmZsdi0+a2V5ZnJh bWVfZmlsZXBvc2l0aW9ucyk7Cj4+ICsgICAgYXZfZnJlZXAoJmZsdi0+bWV0YVZpZGVvQ29sb3Ip Owo+PiAgICAgIHJldHVybiAwOwo+PiAgfQo+PiAgQEAgLTEwMjgsNiArMTA4NSwxMDQgQEAgc3Rh dGljIGludCByZXN5bmMoQVZGb3JtYXRDb250ZXh0ICpzKQo+PiAgICAgIHJldHVybiBBVkVSUk9S X0VPRjsKPj4gIH0KPj4gICtzdGF0aWMgaW50IGZsdl9wYXJzZV92aWRlb19jb2xvcl9pbmZvKEFW Rm9ybWF0Q29udGV4dCAqcywgQVZTdHJlYW0gKnN0LCBpbnQ2NF90IG5leHRfcG9zKQo+PiArewo+ PiArICAgIEZMVkNvbnRleHQgKmZsdiA9IHMtPnByaXZfZGF0YTsKPj4gKyAgICBBTUZEYXRhVHlw ZSB0eXBlOwo+PiArICAgIEFWSU9Db250ZXh0ICppb2M7Cj4+ICsgICAgY2hhciBidWZmZXJbMzJd Owo+PiArICAgIGlvYyAgICAgPSBzLT5wYjsKPj4gKwo+PiArICAgIC8vIGZpcnN0IG9iamVjdCBu ZWVkcyB0byBiZSAiY29sb3JJbmZvIiBzdHJpbmcKPj4gKyAgICB0eXBlID0gYXZpb19yOChpb2Mp Owo+PiArICAgIGlmICh0eXBlICE9IEFNRl9EQVRBX1RZUEVfU1RSSU5HIHx8Cj4+ICsgICAgICAg IGFtZl9nZXRfc3RyaW5nKGlvYywgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSkgPCAwKQo+PiArICAg ICAgICByZXR1cm4gVFlQRV9VTktOT1dOOwo+PiArCj4+ICsgICAgaWYgKHN0cmNtcChidWZmZXIs ICJjb2xvckluZm8iKSkgewo+PiArICAgICAgICBhdl9sb2cocywgQVZfTE9HX0RFQlVHLCAiVW5r bm93biB0eXBlICVzXG4iLCBidWZmZXIpOwo+PiArICAgICAgICByZXR1cm4gVFlQRV9VTktOT1dO Owo+PiArICAgIH0KPj4gKwo+PiArICAgIGZsdi0+bWV0YVZpZGVvQ29sb3IgPSBhdl9tYWxsb2N6 KHNpemVvZihGTFZNZXRhVmlkZW9Db2xvcikpOwo+PiArICAgIGlmICghZmx2LT5tZXRhVmlkZW9D b2xvcikgewo+PiArICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+PiArICAgIH0KPj4g KyAgICBmbHYtPm1ldGFfY29sb3JfaW5mb19mbGFnID0gMTsKPj4gKyAgICBhbWZfcGFyc2Vfb2Jq ZWN0KHMsIE5VTEwsIE5VTEwsIGJ1ZmZlciwgbmV4dF9wb3MsIDApOyAvLyBwYXJzZSBtZXRhZGF0 YQo+PiArICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IGZsdl91cGRhdGVf dmlkZW9fY29sb3JfaW5mbyhBVkZvcm1hdENvbnRleHQgKnMsIEFWU3RyZWFtICpzdCkKPj4gK3sK Pj4gKyAgICBGTFZDb250ZXh0ICpmbHYgPSBzLT5wcml2X2RhdGE7Cj4+ICsgICAgY29uc3QgRkxW TWV0YVZpZGVvQ29sb3IqIG1ldGFfdmlkZW9fY29sb3IgPSBmbHYtPm1ldGFWaWRlb0NvbG9yOwo+ PiArICAgIGNvbnN0IEZMVk1hc3RlcmluZ01ldGEgKm1hc3RlcmluZ19tZXRhID0gJm1ldGFfdmlk ZW9fY29sb3ItPm1hc3RlcmluZ19tZXRhOwo+PiArCj4+ICsgICAgaW50IGhhc19tYXN0ZXJpbmdf cHJpbWFyaWVzLCBoYXNfbWFzdGVyaW5nX2x1bWluYW5jZTsKPj4gKyAgICAvLyBNYXN0ZXJpbmcg cHJpbWFyaWVzIGFyZSBDSUUgMTkzMSBjb29yZHMsIGFuZCBtdXN0IGJlID4gMC4KPj4gKyAgICBo YXNfbWFzdGVyaW5nX3ByaW1hcmllcyA9Cj4+ICsgICAgICAgIG1hc3RlcmluZ19tZXRhLT5yX3gg PiAwICYmIG1hc3RlcmluZ19tZXRhLT5yX3kgPiAwICYmCj4+ICsgICAgICAgIG1hc3RlcmluZ19t ZXRhLT5nX3ggPiAwICYmIG1hc3RlcmluZ19tZXRhLT5nX3kgPiAwICYmCj4+ICsgICAgICAgIG1h c3RlcmluZ19tZXRhLT5iX3ggPiAwICYmIG1hc3RlcmluZ19tZXRhLT5iX3kgPiAwICYmCj4+ICsg ICAgICAgIG1hc3RlcmluZ19tZXRhLT53aGl0ZV94ID4gMCAmJiBtYXN0ZXJpbmdfbWV0YS0+d2hp dGVfeSA+IDA7Cj4+ICsgICAgaGFzX21hc3RlcmluZ19sdW1pbmFuY2UgPSBtYXN0ZXJpbmdfbWV0 YS0+bWF4X2x1bWluYW5jZSA+PSAwICYmIG1hc3RlcmluZ19tZXRhLT5taW5fbHVtaW5hbmNlID49 IDA7Cj4+ICsKPj4gKyAgICBpZiAobWV0YV92aWRlb19jb2xvci0+bWF0cml4X2NvZWZmaWNpZW50 cyAhPSBBVkNPTF9TUENfUkVTRVJWRUQpCj4+ICsgICAgICAgIHN0LT5jb2RlY3Bhci0+Y29sb3Jf c3BhY2UgPSBtZXRhX3ZpZGVvX2NvbG9yLT5tYXRyaXhfY29lZmZpY2llbnRzOwo+PiArICAgIGlm IChtZXRhX3ZpZGVvX2NvbG9yLT5wcmltYXJpZXMgIT0gQVZDT0xfUFJJX1JFU0VSVkVEICYmCj4+ ICsgICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPnByaW1hcmllcyAhPSBBVkNPTF9QUklfUkVTRVJW RUQwKQo+PiArICAgICAgICBzdC0+Y29kZWNwYXItPmNvbG9yX3ByaW1hcmllcyA9IG1ldGFfdmlk ZW9fY29sb3ItPnByaW1hcmllczsKPj4gKyAgICBpZiAobWV0YV92aWRlb19jb2xvci0+dHJhbnNm ZXJfY2hhcmFjdGVyaXN0aWNzICE9IEFWQ09MX1RSQ19SRVNFUlZFRCAmJgo+PiArICAgICAgICBt ZXRhX3ZpZGVvX2NvbG9yLT50cmFuc2Zlcl9jaGFyYWN0ZXJpc3RpY3MgIT0gQVZDT0xfVFJDX1JF U0VSVkVEMCkKPj4gKyAgICAgICAgc3QtPmNvZGVjcGFyLT5jb2xvcl90cmMgPSBtZXRhX3ZpZGVv X2NvbG9yLT50cmFuc2Zlcl9jaGFyYWN0ZXJpc3RpY3M7Cj4+ICsKPj4gKyAgICBpZiAobWV0YV92 aWRlb19jb2xvci0+bWF4X2NsbCAmJiBtZXRhX3ZpZGVvX2NvbG9yLT5tYXhfZmFsbCkgewo+PiAr ICAgICAgICBzaXplX3Qgc2l6ZSA9IDA7Cj4+ICsgICAgICAgIEFWQ29udGVudExpZ2h0TWV0YWRh dGEgKm1ldGFkYXRhID0gYXZfY29udGVudF9saWdodF9tZXRhZGF0YV9hbGxvYygmc2l6ZSk7Cj4+ ICsgICAgICAgIGlmICghbWV0YWRhdGEpCj4+ICsgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihF Tk9NRU0pOwo+PiArICAgICAgICBpZiAoIWF2X3BhY2tldF9zaWRlX2RhdGFfYWRkKCZzdC0+Y29k ZWNwYXItPmNvZGVkX3NpZGVfZGF0YSwgJnN0LT5jb2RlY3Bhci0+bmJfY29kZWRfc2lkZV9kYXRh LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWX1BLVF9EQVRB X0NPTlRFTlRfTElHSFRfTEVWRUwsIG1ldGFkYXRhLCBzaXplLCAwKSkgewo+PiArICAgICAgICAg ICAgYXZfZnJlZXAoJm1ldGFkYXRhKTsKPj4gKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVO T01FTSk7Cj4+ICsgICAgICAgIH0KPj4gKyAgICAgICAgbWV0YWRhdGEtPk1heENMTCAgPSBtZXRh X3ZpZGVvX2NvbG9yLT5tYXhfY2xsOwo+PiArICAgICAgICBtZXRhZGF0YS0+TWF4RkFMTCA9IG1l dGFfdmlkZW9fY29sb3ItPm1heF9mYWxsOwo+PiArICAgIH0KPj4gKwo+PiArICAgIGlmIChoYXNf bWFzdGVyaW5nX3ByaW1hcmllcyB8fCBoYXNfbWFzdGVyaW5nX2x1bWluYW5jZSkgewo+PiArICAg ICAgICBBVk1hc3RlcmluZ0Rpc3BsYXlNZXRhZGF0YSAqbWV0YWRhdGE7Cj4+ICsgICAgICAgIEFW UGFja2V0U2lkZURhdGEgKnNkID0gYXZfcGFja2V0X3NpZGVfZGF0YV9uZXcoJnN0LT5jb2RlY3Bh ci0+Y29kZWRfc2lkZV9kYXRhLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmc3QtPmNvZGVjcGFyLT5uYl9jb2RlZF9zaWRlX2RhdGEs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFWX1BLVF9EQVRBX01BU1RFUklOR19ESVNQTEFZX01FVEFEQVRBLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoQVZN YXN0ZXJpbmdEaXNwbGF5TWV0YWRhdGEpLCAwKTsKPj4gKyAgICAgICAgaWYgKCFzZCkKPj4gKyAg ICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4+ICsgICAgICAgIG1ldGFkYXRhID0g KEFWTWFzdGVyaW5nRGlzcGxheU1ldGFkYXRhKilzZC0+ZGF0YTsKPj4gKyAgICAgICAgbWVtc2V0 KG1ldGFkYXRhLCAwLCBzaXplb2YoQVZNYXN0ZXJpbmdEaXNwbGF5TWV0YWRhdGEpKTsKPj4gKyAg ICAgICAgLy8gaGRyQ2xsCj4+ICsgICAgICAgIGlmIChoYXNfbWFzdGVyaW5nX2x1bWluYW5jZSkg ewo+PiArICAgICAgICAgICAgbWV0YWRhdGEtPm1heF9sdW1pbmFuY2UgPSBhdl9kMnEobWFzdGVy aW5nX21ldGEtPm1heF9sdW1pbmFuY2UsIElOVF9NQVgpOwo+PiArICAgICAgICAgICAgbWV0YWRh dGEtPm1pbl9sdW1pbmFuY2UgPSBhdl9kMnEobWFzdGVyaW5nX21ldGEtPm1pbl9sdW1pbmFuY2Us IElOVF9NQVgpOwo+PiArICAgICAgICAgICAgbWV0YWRhdGEtPmhhc19sdW1pbmFuY2UgPSAxOwo+ PiArICAgICAgICB9Cj4+ICsgICAgICAgIC8vIGhkck1kY3YKPj4gKyAgICAgICAgaWYgKGhhc19t YXN0ZXJpbmdfcHJpbWFyaWVzKSB7Cj4+ICsgICAgICAgICAgICBtZXRhZGF0YS0+ZGlzcGxheV9w cmltYXJpZXNbMF1bMF0gPSBhdl9kMnEobWFzdGVyaW5nX21ldGEtPnJfeCwgSU5UX01BWCk7Cj4+ ICsgICAgICAgICAgICBtZXRhZGF0YS0+ZGlzcGxheV9wcmltYXJpZXNbMF1bMV0gPSBhdl9kMnEo bWFzdGVyaW5nX21ldGEtPnJfeSwgSU5UX01BWCk7Cj4+ICsgICAgICAgICAgICBtZXRhZGF0YS0+ ZGlzcGxheV9wcmltYXJpZXNbMV1bMF0gPSBhdl9kMnEobWFzdGVyaW5nX21ldGEtPmdfeCwgSU5U X01BWCk7Cj4+ICsgICAgICAgICAgICBtZXRhZGF0YS0+ZGlzcGxheV9wcmltYXJpZXNbMV1bMV0g PSBhdl9kMnEobWFzdGVyaW5nX21ldGEtPmdfeSwgSU5UX01BWCk7Cj4+ICsgICAgICAgICAgICBt ZXRhZGF0YS0+ZGlzcGxheV9wcmltYXJpZXNbMl1bMF0gPSBhdl9kMnEobWFzdGVyaW5nX21ldGEt PmJfeCwgSU5UX01BWCk7Cj4+ICsgICAgICAgICAgICBtZXRhZGF0YS0+ZGlzcGxheV9wcmltYXJp ZXNbMl1bMV0gPSBhdl9kMnEobWFzdGVyaW5nX21ldGEtPmJfeSwgSU5UX01BWCk7Cj4+ICsgICAg ICAgICAgICBtZXRhZGF0YS0+d2hpdGVfcG9pbnRbMF0gPSBhdl9kMnEobWFzdGVyaW5nX21ldGEt PndoaXRlX3gsIElOVF9NQVgpOwo+PiArICAgICAgICAgICAgbWV0YWRhdGEtPndoaXRlX3BvaW50 WzFdID0gYXZfZDJxKG1hc3RlcmluZ19tZXRhLT53aGl0ZV95LCBJTlRfTUFYKTsKPj4gKyAgICAg ICAgICAgIG1ldGFkYXRhLT5oYXNfcHJpbWFyaWVzID0gMTsKPj4gKyAgICAgICAgfQo+PiArICAg IH0KPj4gKyAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiAgc3RhdGljIGludCBmbHZfcmVhZF9w YWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQo+PiAgewo+PiAgICAgIEZM VkNvbnRleHQgKmZsdiA9IHMtPnByaXZfZGF0YTsKPj4gQEAgLTExMDAsOCArMTI1NSwxNyBAQCBy ZXRyeToKPj4gICAgICAgICAgICAgIHZpZGVvX2NvZGVjX2lkID0gYXZpb19yYjMyKHMtPnBiKTsK Pj4gICAgICAgICAgICAgIHNpemUgLT0gNDsKPj4gICAgICAgICAgfQo+PiAtICAgICAgICBpZiAo KGZsYWdzICYgRkxWX1ZJREVPX0ZSQU1FVFlQRV9NQVNLKSA9PSBGTFZfRlJBTUVfVklERU9fSU5G T19DTUQpCj4+ICsKPj4gKyAgICAgICAgaWYgKGVuaGFuY2VkX2ZsdiAmJiBzdHJlYW1fdHlwZSA9 PSBGTFZfU1RSRUFNX1RZUEVfVklERU8gJiYgKGZsYWdzICYgRkxWX1ZJREVPX0ZSQU1FVFlQRV9N QVNLKSA9PSBGTFZfRlJBTUVfVklERU9fSU5GT19DTUQpIHsKPj4gKyAgICAgICAgICAgIHR5cGUg PSBmbGFncyAmIDB4MEY7Cj4+ICsgICAgICAgICAgICBpZiAodHlwZSA9PSBQYWNrZXRUeXBlTWV0 YWRhdGEpIHsKPj4gKyAgICAgICAgICAgICAgICBpbnQgcmV0ID0gZmx2X3BhcnNlX3ZpZGVvX2Nv bG9yX2luZm8ocywgc3QsIG5leHQpOwo+PiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9M T0dfSU5GTywgImVuaGFuY2VkIGZsdiBwYXJzZSBtZXRhZGF0YSByZXQgJWQgYW5kIHNraXBcbiIs IHJldCk7Cj4+ICsgICAgICAgICAgICB9Cj4+ICsgICAgICAgICAgICBnb3RvIHNraXA7Cj4+ICsg ICAgICAgIH0gZWxzZSBpZiAoKGZsYWdzICYgRkxWX1ZJREVPX0ZSQU1FVFlQRV9NQVNLKSA9PSBG TFZfRlJBTUVfVklERU9fSU5GT19DTUQpIHsKPj4gICAgICAgICAgICAgIGdvdG8gc2tpcDsKPj4g KyAgICAgICAgfQo+PiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBGTFZfVEFHX1RZUEVfTUVUQSkg ewo+PiAgICAgICAgICBzdHJlYW1fdHlwZT1GTFZfU1RSRUFNX1RZUEVfU1VCVElUTEU7Cj4+ICAg ICAgICAgIGlmIChzaXplID4gMTMgKyAxICsgNCkgeyAvLyBIZWFkZXItdHlwZSBtZXRhZGF0YSBz dHVmZgo+PiBAQCAtMTI4Nyw2ICsxNDUxLDExIEBAIHJldHJ5X2R1cmF0aW9uOgo+PiAgICAgICAg ICAgICAgZ290byBsZWF2ZTsKPj4gICAgICAgICAgfQo+PiAgKyAgICAgICAgaWYgKGVuaGFuY2Vk X2ZsdiAmJiBzdHJlYW1fdHlwZSA9PSBGTFZfU1RSRUFNX1RZUEVfVklERU8gJiYgZmx2LT5tZXRh X2NvbG9yX2luZm9fZmxhZykgewo+PiArICAgICAgICAgICAgZmx2X3VwZGF0ZV92aWRlb19jb2xv cl9pbmZvKHMsIHN0KTsgLy8gdXBkYXRlIGF2IHBhY2tldCBzaWRlIGRhdGEKPj4gKyAgICAgICAg ICAgIGZsdi0+bWV0YV9jb2xvcl9pbmZvX2ZsYWcgPSAwOwo+PiArICAgICAgICB9Cj4+ICsKPj4g ICAgICAgICAgaWYgKHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfSDI2NCB8 fCBzdC0+Y29kZWNwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX01QRUc0IHx8Cj4+ICAgICAg ICAgICAgICAoc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IRVZDICYmIHR5 cGUgPT0gUGFja2V0VHlwZUNvZGVkRnJhbWVzKSkgewo+PiAgICAgICAgICAgICAgLy8gc2lnbiBl eHRlbnNpb24KPiAKPiBBIHRlc3QgZm9yIHRoaXMgd291bGQgYmUgbmljZS4gQ2FuIGJlIG9uZSB0 aGF0IGNyZWF0ZXMgYSBmaWxlIGFuZCB0aGVuIGRlbXV4ZXMgaXQuCj4gU2VlIHRoZSBmYXRlLWxh dmYtZmF0ZS0qIHRlc3RzIHRvIHJlbXV4IGFuIGV4aXN0aW5nIHNhbXBsZS4KCgpUaGFuayB5b3Ug dmVyeSBtdWNoIGZvciB5b3VyIHN1Z2dlc3Rpb24uICAgQWxsIG90aGVyIGNvbW1lbnRzIGhhdmUg YmVlbiBtb2RpZmllZCBhcyBwZXIgeW91ciBzdWdnZXN0aW9ucyBsb2NhbGx5LiAKCkJ1dCBhYm91 dCBmYXRlIHRlc3QsIEkgaGF2ZSBzb21lIHF1ZXN0aW9ucyB0aGF0IHdvdWxkIGxpa2UgdG8gYXNr IGZvciBhZHZpY2U6CjEuIER1cmluZyB0aGUgZGV2ZWxvcG1lbnQgc3RhZ2UsIGNhbiBJIHVzZSBm Zm1wZWcgd2l0aCB0aGUgbW92L21rdiBtdXhlciB0byB3cml0ZSBzaWRlIGRhdGEgdG8gY29uc3Ry dWN0IGFuIGhkciBmbHYgZmlsZSAoZmZtcGVnIC1pICoqKiAtbWV0YWRhdGE6czp2ICoqLm1rdikK Mi4gUmVmZXJyaW5nIHRvIGZhdGUtbGF2Zi1mYXRlLSogdGVzdHMsIEkgZGlkIG5vdCBmaW5kIHNh bXBsZSBmaWxlIHdpdGggbWV0YWRhdGEgaW4gdGhlIG9mZmljaWFsIGZhdGUgc3VpdGUuIElmIHRl c3QtZmF0ZSB1c2VzIGNvZGVjIGNvcHksIGl0IGNhbm5vdCBvYnRhaW4gc2lkZWRhdGEgYW5kIHRo ZXJlZm9yZSBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZmx2IGZpbGUuCjMuIERvIHlvdSBoYXZlIGFu eSBzdWdnZXN0aW9ucz8gQmVzaWRlcyBjcmVhdGluZyBhIG5ldyBmYXRlIHN1aXRlIGZpbGUsIGFy ZSB0aGVyZSBhbnkgb3RoZXIgbWV0aG9kcz8KClRoYW5rcwoKCj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0 Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcgPG1haWx0bzpmZm1wZWctZGV2ZWxAZmZtcGVnLm9y Zz4KPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPiAK PiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2 ZWwtcmVxdWVzdEBmZm1wZWcub3JnIDxtYWlsdG86ZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVn Lm9yZz4gd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBl Zy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Zm bXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZm bXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIu Cg==