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 8F84C439F0 for ; Tue, 5 Jul 2022 15:42:47 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CF51068B9EF; Tue, 5 Jul 2022 18:42:44 +0300 (EEST) Received: from mail-yw1-f182.google.com (mail-yw1-f182.google.com [209.85.128.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3226468B76C for ; Tue, 5 Jul 2022 18:42:39 +0300 (EEST) Received: by mail-yw1-f182.google.com with SMTP id 00721157ae682-3137316bb69so112751207b3.10 for ; Tue, 05 Jul 2022 08:42:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=ZEL8OxTHUA8ULPlzYg89x+EVy1RCgXyaJl81yqvhHvY=; b=MZ2v6IGNyCCtsOfr4biFr4kRrPpydInABIemTy2An/w/cnNgG1i+ljiu3LNp6Os3mN fvYcUW7D5O/tJIVmd5+qA1Q31VyKm6VeeSx1yGDfuiRC/BU/27T8ougBuMoqldJTNM6f pGBaeJAmSrfSjTWvVhssBBQKUEURzgm8Fj0rq98+NN9Bp9fGcYy8FpTYz1MTT0nXDHOX mxFys8rp+pENGBll1nbkP3gFUWhmRUSbFlz+qSWVK+HNYnM8OPNwGni4IFajIUMEQcuH fDTAPcVnit7GnRTJWKcTVILNnkQds5EsuR+lDW4m1HoL1vPq9DESGt1rI2DFPKS/eNKx l/oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=ZEL8OxTHUA8ULPlzYg89x+EVy1RCgXyaJl81yqvhHvY=; b=gb4HV6QcB+cwwcsT7++itlSrTuvuHL9R28Yxf/863hOarlZ27wOd8m2ZKbBUcmTqpY tg7AHRmeEYYtEQVmREZy4zFq5rNa32pktsAhKk9Yrcqmqj5Jo3n9Dt7ho4OZUzDKSYNY R15zH62HD1ZsBI8mTDRmKS35gaz+LYDgFgJ4+qgZpqTvsYsMzcXPNvZk33+6+PRcNJAw y8vAc66yUoMiHncHgGOuoo1nHLYrHfVtvbyhF6S21aTvFy3zVhoq/OIlsPl0l6yTqfDg ClbHpY0bI45aBbOvRn16PlKxLORRlpnTHkfN6w2KMkC1uG/7sgvOSX2nvuZjSV0W0k1G LqGA== X-Gm-Message-State: AJIora8y4dQ+N4Pfa8vs+eHrhamQLv1x26/lNwGePogxMSgtdWVlpEOd rUt63WUfERqWJ7PfkWGL1lffbmjuEoqMuk5h4dRfZJsu X-Google-Smtp-Source: AGRyM1uq11+M6MHK6vYM07lsyrH7HxfxNKXbgKrh1qQaqTAhV1DI/6k+cNeK+AxfTrI635bWq8FVe6wi38A4bkhNLxo= X-Received: by 2002:a81:1257:0:b0:31c:97fe:e416 with SMTP id 84-20020a811257000000b0031c97fee416mr12923726yws.34.1657035757449; Tue, 05 Jul 2022 08:42:37 -0700 (PDT) MIME-Version: 1.0 From: Paul B Mahol Date: Tue, 5 Jul 2022 17:45:20 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000b45dc405e310b39c" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] avcodec: add Radiance HDR image format support 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --000000000000b45dc405e310b39c Content-Type: text/plain; charset="UTF-8" Hello, Patch attached. --000000000000b45dc405e310b39c Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avcodec-add-Radiance-HDR-image-format-support.patch" Content-Disposition: attachment; filename="0001-avcodec-add-Radiance-HDR-image-format-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l58ceert0 RnJvbSA2MmZjZTJiZmQ4MTFlYjRmYjg2YjU5MDdkNjJlNjdmMGEyZDAzM2ZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFN1biwgMyBKdWwgMjAyMiAyMzo1MDowNSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGF2Y29kZWM6 IGFkZCBSYWRpYW5jZSBIRFIgaW1hZ2UgZm9ybWF0IHN1cHBvcnQKClNpZ25lZC1vZmYtYnk6IFBh dWwgQiBNYWhvbCA8b25lbWRhQGdtYWlsLmNvbT4KLS0tCiBkb2MvZ2VuZXJhbF9jb250ZW50cy50 ZXhpIHwgICAyICsKIGxpYmF2Y29kZWMvTWFrZWZpbGUgICAgICAgfCAgIDIgKwogbGliYXZjb2Rl Yy9hbGxjb2RlY3MuYyAgICB8ICAgMiArCiBsaWJhdmNvZGVjL2NvZGVjX2Rlc2MuYyAgIHwgICA3 ICsrCiBsaWJhdmNvZGVjL2NvZGVjX2lkLmggICAgIHwgICAxICsKIGxpYmF2Y29kZWMvaGRyZGVj LmMgICAgICAgfCAyMTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxp YmF2Y29kZWMvaGRyZW5jLmMgICAgICAgfCAxODggKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiBsaWJhdmZvcm1hdC9NYWtlZmlsZSAgICAgIHwgICAxICsKIGxpYmF2Zm9ybWF0L2Fs bGZvcm1hdHMuYyAgfCAgIDEgKwogbGliYXZmb3JtYXQvaW1nMi5jICAgICAgICB8ICAgMSArCiBs aWJhdmZvcm1hdC9pbWcyZGVjLmMgICAgIHwgICA4ICsrCiBsaWJhdmZvcm1hdC9pbWcyZW5jLmMg ICAgIHwgICAyICstCiAxMiBmaWxlcyBjaGFuZ2VkLCA0MjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvaGRyZGVjLmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBsaWJhdmNvZGVjL2hkcmVuYy5jCgpkaWZmIC0tZ2l0IGEvZG9jL2dlbmVyYWxf Y29udGVudHMudGV4aSBiL2RvYy9nZW5lcmFsX2NvbnRlbnRzLnRleGkKaW5kZXggYjFkM2UzYWEw NS4uZjI1Yzc4NGQzYiAxMDA2NDQKLS0tIGEvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aQorKysg Yi9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhpCkBAIC03NDksNiArNzQ5LDggQEAgZm9sbG93aW5n IGltYWdlIGZvcm1hdHMgYXJlIHN1cHBvcnRlZDoKICAgICBAdGFiIE9wZW5FWFIKIEBpdGVtIEZJ VFMgICAgICAgICBAdGFiIFggQHRhYiBYCiAgICAgQHRhYiBGbGV4aWJsZSBJbWFnZSBUcmFuc3Bv cnQgU3lzdGVtCitAaXRlbSBIRFIgICAgICAgICAgQHRhYiBYIEB0YWIgWAorICAgIEB0YWIgUmFk aWFuY2UgSERSIFJHQkUgSW1hZ2UgZm9ybWF0CiBAaXRlbSBJTUcgICAgICAgICAgQHRhYiAgIEB0 YWIgWAogICAgIEB0YWIgR0VNIFJhc3RlciBpbWFnZQogQGl0ZW0gSlBFRyAgICAgICAgIEB0YWIg WCBAdGFiIFgKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvTWFrZWZpbGUgYi9saWJhdmNvZGVjL01h a2VmaWxlCmluZGV4IDQ1N2VjNTgzNzcuLmRmN2UyMjdhN2YgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29k ZWMvTWFrZWZpbGUKKysrIGIvbGliYXZjb2RlYy9NYWtlZmlsZQpAQCAtNDAzLDYgKzQwMyw4IEBA IE9CSlMtJChDT05GSUdfSEFQX0RFQ09ERVIpICAgICAgICAgICAgICs9IGhhcGRlYy5vIGhhcC5v CiBPQkpTLSQoQ09ORklHX0hBUF9FTkNPREVSKSAgICAgICAgICAgICArPSBoYXBlbmMubyBoYXAu bwogT0JKUy0kKENPTkZJR19IQ0FfREVDT0RFUikgICAgICAgICAgICAgKz0gaGNhZGVjLm8KIE9C SlMtJChDT05GSUdfSENPTV9ERUNPREVSKSAgICAgICAgICAgICs9IGhjb20ubworT0JKUy0kKENP TkZJR19IRFJfREVDT0RFUikgICAgICAgICAgICAgKz0gaGRyZGVjLm8KK09CSlMtJChDT05GSUdf SERSX0VOQ09ERVIpICAgICAgICAgICAgICs9IGhkcmVuYy5vCiBPQkpTLSQoQ09ORklHX0hFVkNf REVDT0RFUikgICAgICAgICAgICArPSBoZXZjZGVjLm8gaGV2Y19tdnMubyBcCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXZjX2NhYmFjLm8gaGV2Y19yZWZzLm8g aGV2Y3ByZWQubyAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBoZXZjZHNwLm8gaGV2Y19maWx0ZXIubyBoZXZjX2RhdGEubyBcCmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL2FsbGNvZGVjcy5jIGIvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwppbmRleCBiZGZjMmY2 ZjQ1Li4zMWQyYzU5NzljIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5jCisrKyBi L2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKQEAgLTQ2OSw2ICs0NjksOCBAQCBleHRlcm4gY29uc3Qg RkZDb2RlYyBmZl9nc21fZGVjb2RlcjsKIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2dzbV9tc19k ZWNvZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfaGNhX2RlY29kZXI7CiBleHRlcm4gY29u c3QgRkZDb2RlYyBmZl9oY29tX2RlY29kZXI7CitleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9oZHJf ZW5jb2RlcjsKK2V4dGVybiBjb25zdCBGRkNvZGVjIGZmX2hkcl9kZWNvZGVyOwogZXh0ZXJuIGNv bnN0IEZGQ29kZWMgZmZfaWFjX2RlY29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9pbGJj X2RlY29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9pbWNfZGVjb2RlcjsKZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jIGIvbGliYXZjb2RlYy9jb2RlY19kZXNjLmMKaW5k ZXggNDRhZDJkMWZlOC4uZWVlYTE1YjFlZiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9jb2RlY19k ZXNjLmMKKysrIGIvbGliYXZjb2RlYy9jb2RlY19kZXNjLmMKQEAgLTE4OTMsNiArMTg5MywxMyBA QCBzdGF0aWMgY29uc3QgQVZDb2RlY0Rlc2NyaXB0b3IgY29kZWNfZGVzY3JpcHRvcnNbXSA9IHsK ICAgICAgICAgLmxvbmdfbmFtZSA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJQSE0gKFBvcnRhYmxl IEhhbGZGbG9hdE1hcCkgaW1hZ2UiKSwKICAgICAgICAgLnByb3BzICAgICA9IEFWX0NPREVDX1BS T1BfSU5UUkFfT05MWSB8IEFWX0NPREVDX1BST1BfTE9TU0xFU1MsCiAgICAgfSwKKyAgICB7Cisg ICAgICAgIC5pZCAgICAgICAgPSBBVl9DT0RFQ19JRF9IRFIsCisgICAgICAgIC50eXBlICAgICAg PSBBVk1FRElBX1RZUEVfVklERU8sCisgICAgICAgIC5uYW1lICAgICAgPSAiaGRyIiwKKyAgICAg ICAgLmxvbmdfbmFtZSA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJIRFIgKFJhZGlhbmNlIFJHQkUg Zm9ybWF0KSBpbWFnZSIpLAorICAgICAgICAucHJvcHMgICAgID0gQVZfQ09ERUNfUFJPUF9JTlRS QV9PTkxZIHwgQVZfQ09ERUNfUFJPUF9MT1NTWSwKKyAgICB9LAogCiAgICAgLyogdmFyaW91cyBQ Q00gImNvZGVjcyIgKi8KICAgICB7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2NvZGVjX2lkLmgg Yi9saWJhdmNvZGVjL2NvZGVjX2lkLmgKaW5kZXggODFmYjMxNmNmZi4uMDA1ZWZhNjMzNCAxMDA2 NDQKLS0tIGEvbGliYXZjb2RlYy9jb2RlY19pZC5oCisrKyBiL2xpYmF2Y29kZWMvY29kZWNfaWQu aApAQCAtMzEyLDYgKzMxMiw3IEBAIGVudW0gQVZDb2RlY0lEIHsKICAgICBBVl9DT0RFQ19JRF9K UEVHWEwsCiAgICAgQVZfQ09ERUNfSURfUU9JLAogICAgIEFWX0NPREVDX0lEX1BITSwKKyAgICBB Vl9DT0RFQ19JRF9IRFIsCiAKICAgICAvKiB2YXJpb3VzIFBDTSAiY29kZWNzIiAqLwogICAgIEFW X0NPREVDX0lEX0ZJUlNUX0FVRElPID0gMHgxMDAwMCwgICAgIC8vLzwgQSBkdW1teSBpZCBwb2lu dGluZyBhdCB0aGUgc3RhcnQgb2YgYXVkaW8gY29kZWNzCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L2hkcmRlYy5jIGIvbGliYXZjb2RlYy9oZHJkZWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi4yMTc4YTgyNGJkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYXZjb2RlYy9o ZHJkZWMuYwpAQCAtMCwwICsxLDIxMiBAQAorLyoKKyAqIFJhZGlhbmNlIEhEUiBpbWFnZSBmb3Jt YXQKKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVz c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG cmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp ZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUgPHN0 ZGxpYi5oPgorCisjaW5jbHVkZSAibGliYXZ1dGlsL2ltZ3V0aWxzLmgiCisjaW5jbHVkZSAiYXZj b2RlYy5oIgorI2luY2x1ZGUgImludGVybmFsLmgiCisjaW5jbHVkZSAiYnl0ZXN0cmVhbS5oIgor I2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCisjaW5jbHVkZSAidGhyZWFkLmgiCisKKyNkZWZp bmUgTUlORUxFTiA4CisjZGVmaW5lIE1BWEVMRU4gMHg3ZmZmCisKK3N0YXRpYyBpbnQgaGRyX2dl dF9saW5lKEdldEJ5dGVDb250ZXh0ICpnYiwgdWludDhfdCAqYnVmZmVyLCBpbnQgc2l6ZSkKK3sK KyAgICBpbnQgbiA9IDAsIGM7CisKKyAgICBtZW1zZXQoYnVmZmVyLCAwLCBzaXplKTsKKworICAg IGRvIHsKKyAgICAgICAgYyA9IGJ5dGVzdHJlYW0yX2dldF9ieXRlKGdiKTsKKyAgICAgICAgaWYg KG4gPCBzaXplIC0gMSkKKyAgICAgICAgICAgIGJ1ZmZlcltuKytdID0gYzsKKyAgICB9IHdoaWxl IChieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdChnYikgPiAwICYmIGMgIT0gJ1xuJyk7CisKKyAg ICByZXR1cm4gMDsKK30KKworc3RhdGljIGZsb2F0IGNvbnZlcnQoaW50IGV4cG8sIGludCB2YWwp Cit7CisgICAgaWYgKGV4cG8gPT0gLTEyOCkgeworICAgICAgICByZXR1cm4gMC5mOworICAgIH0g ZWxzZSB7CisgICAgICAgIGNvbnN0IGZsb2F0IHYgPSB2YWwgLyAyNTYuZjsKKworICAgICAgICBy ZXR1cm4gbGRleHBmKHYsIGV4cG8pOworICAgIH0KK30KKworc3RhdGljIGludCBkZWNvbXByZXNz KHVpbnQ4X3QgKnNjYW5saW5lLCBpbnQgdywgR2V0Qnl0ZUNvbnRleHQgKmdiKQoreworICAgIGlu dCByc2hpZnQgPSAwOworCisgICAgd2hpbGUgKHcgPiAwKSB7CisgICAgICAgIHNjYW5saW5lWzBd ID0gYnl0ZXN0cmVhbTJfZ2V0X2J5dGUoZ2IpOworICAgICAgICBzY2FubGluZVsxXSA9IGJ5dGVz dHJlYW0yX2dldF9ieXRlKGdiKTsKKyAgICAgICAgc2NhbmxpbmVbMl0gPSBieXRlc3RyZWFtMl9n ZXRfYnl0ZShnYik7CisgICAgICAgIHNjYW5saW5lWzNdID0gYnl0ZXN0cmVhbTJfZ2V0X2J5dGUo Z2IpOworCisgICAgICAgIGlmIChzY2FubGluZVswXSA9PSAxICYmCisgICAgICAgICAgICBzY2Fu bGluZVsxXSA9PSAxICYmCisgICAgICAgICAgICBzY2FubGluZVsyXSA9PSAxKSB7CisgICAgICAg ICAgICBmb3IgKGludCBpID0gc2NhbmxpbmVbM10gPDwgcnNoaWZ0OyBpID4gMDsgaS0tKSB7Cisg ICAgICAgICAgICAgICAgbWVtY3B5KHNjYW5saW5lLCBzY2FubGluZSAtIDQsIDQpOworICAgICAg ICAgICAgICAgIHNjYW5saW5lICs9IDQ7CisgICAgICAgICAgICAgICAgdy0tOworICAgICAgICAg ICAgfQorICAgICAgICAgICAgcnNoaWZ0ICs9IDg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICBzY2FubGluZSArPSA0OworICAgICAgICAgICAgdy0tOworICAgICAgICAgICAgcnNoaWZ0 ID0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50 IGhkcl9kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpwLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqZ290X2ZyYW1lLCBBVlBhY2tldCAqYXZwa3Qp Cit7CisgICAgY29uc3QgdWludDhfdCAqYnVmID0gYXZwa3QtPmRhdGE7CisgICAgaW50IHJldCwg YnVmX3NpemUgPSBhdnBrdC0+c2l6ZTsKKyAgICBpbnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwor ICAgIEdldEJ5dGVDb250ZXh0IGdiOworICAgIHVpbnQ4X3QgbGluZVs1MTJdOworCisgICAgYnl0 ZXN0cmVhbTJfaW5pdCgmZ2IsIGJ1ZiwgYnVmX3NpemUpOworICAgIGhkcl9nZXRfbGluZSgmZ2Is IGxpbmUsIHNpemVvZihsaW5lKSk7CisgICAgaWYgKG1lbWNtcCgiIz9SQURJQU5DRVxuIiwgbGlu ZSwgMTEpKQorICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKworICAgIGRvIHsK KyAgICAgICAgaGRyX2dldF9saW5lKCZnYiwgbGluZSwgc2l6ZW9mKGxpbmUpKTsKKyAgICB9IHdo aWxlIChsaW5lWzBdICE9ICdcbicpOworCisgICAgaGRyX2dldF9saW5lKCZnYiwgbGluZSwgc2l6 ZW9mKGxpbmUpKTsKKyAgICBpZiAoc3NjYW5mKGxpbmUsICItWSAlZCArWCAlZFxuIiwgJmhlaWdo dCwgJndpZHRoKSA9PSAyKSB7CisgICAgICAgIDsKKyAgICB9IGVsc2UgaWYgKHNzY2FuZihsaW5l LCAiK1kgJWQgK1ggJWRcbiIsICZoZWlnaHQsICZ3aWR0aCkgPT0gMikgeworICAgICAgICA7Cisg ICAgfSBlbHNlIGlmIChzc2NhbmYobGluZSwgIi1ZICVkIC1YICVkXG4iLCAmaGVpZ2h0LCAmd2lk dGgpID09IDIpIHsKKyAgICAgICAgOworICAgIH0gZWxzZSBpZiAoc3NjYW5mKGxpbmUsICIrWSAl ZCAtWCAlZFxuIiwgJmhlaWdodCwgJndpZHRoKSA9PSAyKSB7CisgICAgICAgIDsKKyAgICB9IGVs c2UgaWYgKHNzY2FuZihsaW5lLCAiLVggJWQgK1kgJWRcbiIsICZ3aWR0aCwgJmhlaWdodCkgPT0g MikgeworICAgICAgICA7CisgICAgfSBlbHNlIGlmIChzc2NhbmYobGluZSwgIitYICVkICtZICVk XG4iLCAmd2lkdGgsICZoZWlnaHQpID09IDIpIHsKKyAgICAgICAgOworICAgIH0gZWxzZSBpZiAo c3NjYW5mKGxpbmUsICItWCAlZCAtWSAlZFxuIiwgJndpZHRoLCAmaGVpZ2h0KSA9PSAyKSB7Cisg ICAgICAgIDsKKyAgICB9IGVsc2UgaWYgKHNzY2FuZihsaW5lLCAiK1ggJWQgLVkgJWRcbiIsICZ3 aWR0aCwgJmhlaWdodCkgPT0gMikgeworICAgICAgICA7CisgICAgfQorCisgICAgaWYgKChyZXQg PSBmZl9zZXRfZGltZW5zaW9ucyhhdmN0eCwgd2lkdGgsIGhlaWdodCkpIDwgMCkKKyAgICAgICAg cmV0dXJuIHJldDsKKworICAgIGF2Y3R4LT5waXhfZm10ID0gQVZfUElYX0ZNVF9HQlJQRjMyOwor ICAgIGlmICgocmV0ID0gZmZfdGhyZWFkX2dldF9idWZmZXIoYXZjdHgsIHAsIDApKSA8IDApCisg ICAgICAgIHJldHVybiByZXQ7CisKKyAgICBmb3IgKGludCB5ID0gMDsgeSA8IGhlaWdodDsgeSsr KSB7CisgICAgICAgIGZsb2F0ICpkc3RfciA9IChmbG9hdCAqKShwLT5kYXRhWzJdICsgeSAqIHAt PmxpbmVzaXplWzJdKTsKKyAgICAgICAgZmxvYXQgKmRzdF9nID0gKGZsb2F0ICopKHAtPmRhdGFb MF0gKyB5ICogcC0+bGluZXNpemVbMF0pOworICAgICAgICBmbG9hdCAqZHN0X2IgPSAoZmxvYXQg KikocC0+ZGF0YVsxXSArIHkgKiBwLT5saW5lc2l6ZVsxXSk7CisgICAgICAgIHVpbnQ4X3QgKnNj YW5saW5lID0gcC0+ZGF0YVswXSArIHkgKiBwLT5saW5lc2l6ZVswXTsKKyAgICAgICAgaW50IGk7 CisKKyAgICAgICAgaWYgKHdpZHRoIDwgTUlORUxFTiB8fCB3aWR0aCA+IE1BWEVMRU4pIHsKKyAg ICAgICAgICAgIGRlY29tcHJlc3Moc2NhbmxpbmUsIHdpZHRoLCAmZ2IpOworICAgICAgICAgICAg Z290byBjb252ZXJ0OworICAgICAgICB9CisKKyAgICAgICAgaSA9IGJ5dGVzdHJlYW0yX3BlZWtf Ynl0ZSgmZ2IpOworICAgICAgICBpZiAoaSAhPSAyKSB7CisgICAgICAgICAgICBkZWNvbXByZXNz KHNjYW5saW5lLCB3aWR0aCwgJmdiKTsKKyAgICAgICAgICAgIGdvdG8gY29udmVydDsKKyAgICAg ICAgfQorICAgICAgICBieXRlc3RyZWFtMl9za2lwKCZnYiwgMSk7CisKKyAgICAgICAgc2Nhbmxp bmVbMV0gPSBieXRlc3RyZWFtMl9nZXRfYnl0ZSgmZ2IpOworICAgICAgICBzY2FubGluZVsyXSA9 IGJ5dGVzdHJlYW0yX2dldF9ieXRlKCZnYik7CisgICAgICAgIGkgPSBieXRlc3RyZWFtMl9nZXRf Ynl0ZSgmZ2IpOworCisgICAgICAgIGlmIChzY2FubGluZVsxXSAhPSAyIHx8IHNjYW5saW5lWzJd ICYgMTI4KSB7CisgICAgICAgICAgICBzY2FubGluZVswXSA9IDI7CisgICAgICAgICAgICBzY2Fu bGluZVszXSA9IGk7CisgICAgICAgICAgICBkZWNvbXByZXNzKHNjYW5saW5lICsgNCwgd2lkdGgg LSAxLCAmZ2IpOworICAgICAgICAgICAgZ290byBjb252ZXJ0OworICAgICAgICB9CisKKyAgICAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKKyAgICAgICAgICAgIHVpbnQ4X3QgKnNj YW5saW5lID0gcC0+ZGF0YVswXSArIHkgKiBwLT5saW5lc2l6ZVswXSArIGk7CisKKyAgICAgICAg ICAgIGZvciAoaW50IGogPSAwOyBqIDwgd2lkdGggKiA0OyApIHsKKyAgICAgICAgICAgICAgICBp bnQgcnVuID0gYnl0ZXN0cmVhbTJfZ2V0X2J5dGUoJmdiKTsKKyAgICAgICAgICAgICAgICBpZiAo cnVuID4gMTI4KSB7CisgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgdmFsID0gYnl0ZXN0cmVh bTJfZ2V0X2J5dGUoJmdiKTsKKyAgICAgICAgICAgICAgICAgICAgcnVuICY9IDEyNzsKKyAgICAg ICAgICAgICAgICAgICAgd2hpbGUgKHJ1bi0tKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBz Y2FubGluZVtqXSA9IHZhbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGogKz0gNDsKKyAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg ICAgICAgIHdoaWxlIChydW4tLSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2NhbmxpbmVb al0gPSBieXRlc3RyZWFtMl9nZXRfYnl0ZSgmZ2IpOworICAgICAgICAgICAgICAgICAgICAgICAg aiArPSA0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgfQorICAgICAgICB9CisKK2NvbnZlcnQ6CisgICAgICAgIGZvciAoaW50IHggPSAwOyB4 IDwgd2lkdGg7IHgrKykgeworICAgICAgICAgICAgdWludDhfdCByZ2JlWzRdOworICAgICAgICAg ICAgaW50IGV4cG87CisKKyAgICAgICAgICAgIG1lbWNweShyZ2JlLCBwLT5kYXRhWzBdICsgeSAq IHAtPmxpbmVzaXplWzBdICsgeCAqIDQsIDQpOworICAgICAgICAgICAgZXhwbyA9IHJnYmVbM10g LSAxMjg7CisKKyAgICAgICAgICAgIGRzdF9yW3hdID0gY29udmVydChleHBvLCByZ2JlWzBdKTsK KyAgICAgICAgICAgIGRzdF9iW3hdID0gY29udmVydChleHBvLCByZ2JlWzJdKTsKKyAgICAgICAg ICAgIGRzdF9nW3hdID0gY29udmVydChleHBvLCByZ2JlWzFdKTsKKyAgICAgICAgfQorICAgIH0K KworICAgIHAtPmtleV9mcmFtZSA9IDE7CisgICAgcC0+cGljdF90eXBlID0gQVZfUElDVFVSRV9U WVBFX0k7CisKKyAgICAqZ290X2ZyYW1lICAgPSAxOworCisgICAgcmV0dXJuIGJ1Zl9zaXplOwor fQorCitjb25zdCBGRkNvZGVjIGZmX2hkcl9kZWNvZGVyID0geworICAgIC5wLm5hbWUgICAgICAg ICA9ICJoZHIiLAorICAgIC5wLmxvbmdfbmFtZSAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJI RFIgKFJhZGlhbmNlIFJHQkUgZm9ybWF0KSBpbWFnZSIpLAorICAgIC5wLnR5cGUgICAgICAgICA9 IEFWTUVESUFfVFlQRV9WSURFTywKKyAgICAucC5pZCAgICAgICAgICAgPSBBVl9DT0RFQ19JRF9I RFIsCisgICAgLnAuY2FwYWJpbGl0aWVzID0gQVZfQ09ERUNfQ0FQX0RSMSB8IEFWX0NPREVDX0NB UF9GUkFNRV9USFJFQURTLAorICAgIEZGX0NPREVDX0RFQ09ERV9DQihoZHJfZGVjb2RlX2ZyYW1l KSwKK307CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2hkcmVuYy5jIGIvbGliYXZjb2RlYy9oZHJl bmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kZmFjYjhkNzI1Ci0t LSAvZGV2L251bGwKKysrIGIvbGliYXZjb2RlYy9oZHJlbmMuYwpAQCAtMCwwICsxLDE4OCBAQAor LyoKKyAqIFJhZGlhbmNlIEhEUiBpbWFnZSBmb3JtYXQKKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFy dCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBG Rm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGgg RkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9u LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEw LTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUgImxpYmF2dXRpbC9pbWd1dGlscy5oIgorI2luY2x1 ZGUgImF2Y29kZWMuaCIKKyNpbmNsdWRlICJieXRlc3RyZWFtLmgiCisjaW5jbHVkZSAiY29kZWNf aW50ZXJuYWwuaCIKKyNpbmNsdWRlICJlbmNvZGUuaCIKKwordHlwZWRlZiBzdHJ1Y3QgSERSRW5j Q29udGV4dCB7CisgICAgdWludDhfdCAqc2NhbmxpbmU7Cit9IEhEUkVuY0NvbnRleHQ7CisKK3N0 YXRpYyBhdl9jb2xkIGludCBoZHJfZW5jb2RlX2luaXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQor eworICAgIEhEUkVuY0NvbnRleHQgKnMgPSBhdmN0eC0+cHJpdl9kYXRhOworCisgICAgcy0+c2Nh bmxpbmUgPSBhdl9jYWxsb2MoYXZjdHgtPndpZHRoICogNCwgc2l6ZW9mKCpzLT5zY2FubGluZSkp OworICAgIGlmICghcy0+c2NhbmxpbmUpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7 CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGF2X2NvbGQgaW50IGhkcl9lbmNvZGVfY2xv c2UoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQoreworICAgIEhEUkVuY0NvbnRleHQgKnMgPSBhdmN0 eC0+cHJpdl9kYXRhOworCisgICAgYXZfZnJlZXAoJnMtPnNjYW5saW5lKTsKKworICAgIHJldHVy biAwOworfQorCitzdGF0aWMgdm9pZCBieXRlc3RyZWFtX3B1dF9zdHIodWludDhfdCAqKmJ1Ziwg Y29uc3QgY2hhciAqY29uc3QgbGluZSkKK3sKKyAgICBieXRlc3RyZWFtX3B1dF9idWZmZXIoYnVm LCBsaW5lLCBzdHJsZW4obGluZSkpOworfQorCitzdGF0aWMgdm9pZCBmbG9hdDJyZ2JlKHVpbnQ4 X3QgKnJnYmUsIGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUpCit7CisgICAgZmxv YXQgdjsKKyAgICBpbnQgZTsKKworICAgIHYgPSBGRk1BWDMocmVkLCBncmVlbiwgYmx1ZSk7CisK KyAgICBpZiAodiA8IDFlLTMyZikgeworICAgICAgICByZ2JlWzBdID0gcmdiZVsxXSA9IHJnYmVb Ml0gPSByZ2JlWzNdID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICB2ID0gZnJleHBmKHYsICZl KSAqIDI1Ni5mIC8gdjsKKworICAgICAgICByZ2JlWzBdID0gYXZfY2xpcF91aW50OChyZWQgKiB2 KTsKKyAgICAgICAgcmdiZVsxXSA9IGF2X2NsaXBfdWludDgoZ3JlZW4gKiB2KTsKKyAgICAgICAg cmdiZVsyXSA9IGF2X2NsaXBfdWludDgoYmx1ZSAqIHYpOworICAgICAgICByZ2JlWzNdID0gYXZf Y2xpcF91aW50OChlICsgMTI4KTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHJsZSh1aW50OF90 ICoqYnVmZmVyLCBjb25zdCB1aW50OF90ICpkYXRhLCBpbnQgd2lkdGgpCit7CisjZGVmaW5lIE1J Tl9STEUgNAorICAgIGludCBjdXIgPSAwOworCisgICAgd2hpbGUgKGN1ciA8IHdpZHRoKSB7Cisg ICAgICAgIGludCBydW5fY291bnQgPSAwLCBvbGRfcnVuX2NvdW50ID0gMDsKKyAgICAgICAgaW50 IGJlZ19ydW4gPSBjdXI7CisgICAgICAgIHVpbnQ4X3QgYnVmWzJdOworCisgICAgICAgIHdoaWxl IChydW5fY291bnQgPCBNSU5fUkxFICYmIGJlZ19ydW4gPCB3aWR0aCkgeworICAgICAgICAgICAg YmVnX3J1biArPSBydW5fY291bnQ7CisgICAgICAgICAgICBvbGRfcnVuX2NvdW50ID0gcnVuX2Nv dW50OworICAgICAgICAgICAgcnVuX2NvdW50ID0gMTsKKyAgICAgICAgICAgIHdoaWxlICgoYmVn X3J1biArIHJ1bl9jb3VudCA8IHdpZHRoKSAmJiAocnVuX2NvdW50IDwgMTI3KSAmJgorICAgICAg ICAgICAgICAgICAgIChkYXRhW2JlZ19ydW4gKiA0XSA9PSBkYXRhWyhiZWdfcnVuICsgcnVuX2Nv dW50KSAqIDRdKSkKKyAgICAgICAgICAgICAgICBydW5fY291bnQrKzsKKyAgICAgICAgfQorCisg ICAgICAgIGlmICgob2xkX3J1bl9jb3VudCA+IDEpICYmIChvbGRfcnVuX2NvdW50ID09IGJlZ19y dW4gLSBjdXIpKSB7CisgICAgICAgICAgICBidWZbMF0gPSAxMjggKyBvbGRfcnVuX2NvdW50Owor ICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtjdXIgKiA0XTsKKyAgICAgICAgICAgIGJ5dGVzdHJl YW1fcHV0X2J1ZmZlcihidWZmZXIsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworICAgICAgICAgICAgY3Vy ID0gYmVnX3J1bjsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChjdXIgPCBiZWdfcnVuKSB7 CisgICAgICAgICAgICBpbnQgbm9ucnVuX2NvdW50ID0gRkZNSU4oMTI4LCBiZWdfcnVuIC0gY3Vy KTsKKyAgICAgICAgICAgIGJ1ZlswXSA9IG5vbnJ1bl9jb3VudDsKKyAgICAgICAgICAgIGJ5dGVz dHJlYW1fcHV0X2J5dGUoYnVmZmVyLCBidWZbMF0pOworICAgICAgICAgICAgZm9yIChpbnQgbiA9 IDA7IG4gPCBub25ydW5fY291bnQ7IG4rKykKKyAgICAgICAgICAgICAgICBieXRlc3RyZWFtX3B1 dF9ieXRlKGJ1ZmZlciwgZGF0YVsoY3VyICsgbikgKiA0XSk7CisgICAgICAgICAgICBjdXIgKz0g bm9ucnVuX2NvdW50OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJ1bl9jb3VudCA+PSBNSU5f UkxFKSB7CisgICAgICAgICAgICBidWZbMF0gPSAxMjggKyBydW5fY291bnQ7CisgICAgICAgICAg ICBidWZbMV0gPSBkYXRhW2JlZ19ydW4gKiA0XTsKKyAgICAgICAgICAgIGJ5dGVzdHJlYW1fcHV0 X2J1ZmZlcihidWZmZXIsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworICAgICAgICAgICAgY3VyICs9IHJ1 bl9jb3VudDsKKyAgICAgICAgfQorICAgIH0KK30KKworc3RhdGljIGludCBoZHJfZW5jb2RlX2Zy YW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZQYWNrZXQgKnBrdCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBBVkZyYW1lICpmcmFtZSwgaW50ICpnb3RfcGFja2V0KQorewor ICAgIEhEUkVuY0NvbnRleHQgKnMgPSBhdmN0eC0+cHJpdl9kYXRhOworICAgIGludDY0X3QgcGFj a2V0X3NpemU7CisgICAgdWludDhfdCAqYnVmOworICAgIGludCByZXQ7CisKKyAgICBwYWNrZXRf c2l6ZSA9IGF2Y3R4LT53aWR0aCAqIGF2Y3R4LT5oZWlnaHQgKiA0TEwgKyAxMDI0TEw7CisgICAg aWYgKChyZXQgPSBmZl9hbGxvY19wYWNrZXQoYXZjdHgsIHBrdCwgcGFja2V0X3NpemUpKSA8IDAp CisgICAgICAgIHJldHVybiByZXQ7CisKKyAgICBidWYgPSBwa3QtPmRhdGE7CisgICAgYnl0ZXN0 cmVhbV9wdXRfc3RyKCZidWYsICIjP1JBRElBTkNFXG4iKTsKKyAgICBieXRlc3RyZWFtX3B1dF9z dHIoJmJ1ZiwgIkZPUk1BVD0zMi1iaXRfcmxlX3JnYmVcblxuIik7CisgICAgYnl0ZXN0cmVhbV9w dXRfc3RyKCZidWYsICItWSAiKTsKKyAgICByZXQgPSBzbnByaW50ZihidWYsIDE2LCAiJWQgIiwg YXZjdHgtPmhlaWdodCk7CisgICAgaWYgKHJldCA+IDApCisgICAgICAgIGJ1ZiArPSByZXQ7Cisg ICAgYnl0ZXN0cmVhbV9wdXRfc3RyKCZidWYsICIrWCAiKTsKKyAgICByZXQgPSBzbnByaW50Zihi dWYsIDE2LCAiJWRcbiIsIGF2Y3R4LT53aWR0aCk7CisgICAgaWYgKHJldCA+IDApCisgICAgICAg IGJ1ZiArPSByZXQ7CisKKyAgICBmb3IgKGludCB5ID0gMDsgeSA8IGF2Y3R4LT5oZWlnaHQ7IHkr KykgeworICAgICAgICBjb25zdCBmbG9hdCAqcmVkICAgPSAoY29uc3QgZmxvYXQgKikoZnJhbWUt PmRhdGFbMl0gKyB5ICogZnJhbWUtPmxpbmVzaXplWzJdKTsKKyAgICAgICAgY29uc3QgZmxvYXQg KmdyZWVuID0gKGNvbnN0IGZsb2F0ICopKGZyYW1lLT5kYXRhWzBdICsgeSAqIGZyYW1lLT5saW5l c2l6ZVswXSk7CisgICAgICAgIGNvbnN0IGZsb2F0ICpibHVlICA9IChjb25zdCBmbG9hdCAqKShm cmFtZS0+ZGF0YVsxXSArIHkgKiBmcmFtZS0+bGluZXNpemVbMV0pOworCisgICAgICAgIGlmIChh dmN0eC0+d2lkdGggPCA4IHx8IGF2Y3R4LT53aWR0aCA+IDB4N2ZmZikgeworICAgICAgICAgICAg Zm9yIChpbnQgeCA9IDA7IHggPCBhdmN0eC0+d2lkdGg7IHgrKykgeworICAgICAgICAgICAgICAg IGZsb2F0MnJnYmUoYnVmLCByZWRbeF0sIGdyZWVuW3hdLCBibHVlW3hdKTsKKyAgICAgICAgICAg ICAgICBidWYgKz0gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgIGJ5dGVzdHJlYW1fcHV0X2J5dGUoJmJ1ZiwgMik7CisgICAgICAgICAgICBieXRlc3RyZWFt X3B1dF9ieXRlKCZidWYsIDIpOworICAgICAgICAgICAgYnl0ZXN0cmVhbV9wdXRfYnl0ZSgmYnVm LCBhdmN0eC0+d2lkdGggPj4gOCk7CisgICAgICAgICAgICBieXRlc3RyZWFtX3B1dF9ieXRlKCZi dWYsIGF2Y3R4LT53aWR0aCAmIDB4RkYpOworCisgICAgICAgICAgICBmb3IgKGludCB4ID0gMDsg eCA8IGF2Y3R4LT53aWR0aDsgeCsrKQorICAgICAgICAgICAgICAgIGZsb2F0MnJnYmUocy0+c2Nh bmxpbmUgKyA0ICogeCwgcmVkW3hdLCBncmVlblt4XSwgYmx1ZVt4XSk7CisgICAgICAgICAgICBm b3IgKGludCBwID0gMDsgcCA8IDQ7IHArKykKKyAgICAgICAgICAgICAgICBybGUoJmJ1Ziwgcy0+ c2NhbmxpbmUgKyBwLCBhdmN0eC0+d2lkdGgpOworICAgICAgICB9CisgICAgfQorCisgICAgcGt0 LT5zaXplID0gYnVmIC0gcGt0LT5kYXRhOworCisgICAgKmdvdF9wYWNrZXQgPSAxOworCisgICAg cmV0dXJuIDA7Cit9CisKK2NvbnN0IEZGQ29kZWMgZmZfaGRyX2VuY29kZXIgPSB7CisgICAgLnAu bmFtZSAgICAgICAgID0gImhkciIsCisgICAgLnAubG9uZ19uYW1lICAgID0gTlVMTF9JRl9DT05G SUdfU01BTEwoIkhEUiAoUmFkaWFuY2UgUkdCRSBmb3JtYXQpIGltYWdlIiksCisgICAgLnByaXZf ZGF0YV9zaXplID0gc2l6ZW9mKEhEUkVuY0NvbnRleHQpLAorICAgIC5wLnR5cGUgICAgICAgICA9 IEFWTUVESUFfVFlQRV9WSURFTywKKyAgICAucC5pZCAgICAgICAgICAgPSBBVl9DT0RFQ19JRF9I RFIsCisgICAgLnAuY2FwYWJpbGl0aWVzID0gQVZfQ09ERUNfQ0FQX0ZSQU1FX1RIUkVBRFMsCisg ICAgLmluaXQgICAgICAgICAgID0gaGRyX2VuY29kZV9pbml0LAorICAgIEZGX0NPREVDX0VOQ09E RV9DQihoZHJfZW5jb2RlX2ZyYW1lKSwKKyAgICAuY2xvc2UgICAgICAgICAgPSBoZHJfZW5jb2Rl X2Nsb3NlLAorICAgIC5wLnBpeF9mbXRzICAgICA9IChjb25zdCBlbnVtIEFWUGl4ZWxGb3JtYXRb XSl7CisgICAgICAgIEFWX1BJWF9GTVRfR0JSUEYzMiwKKyAgICAgICAgQVZfUElYX0ZNVF9OT05F CisgICAgfSwKKyAgICAuY2Fwc19pbnRlcm5hbCAgPSBGRl9DT0RFQ19DQVBfSU5JVF9USFJFQURT QUZFLAorfTsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlIGIvbGliYXZmb3JtYXQv TWFrZWZpbGUKaW5kZXggNmM2Yjc3OTA4MC4uZTQyMDM4NDM1NSAxMDA2NDQKLS0tIGEvbGliYXZm b3JtYXQvTWFrZWZpbGUKKysrIGIvbGliYXZmb3JtYXQvTWFrZWZpbGUKQEAgLTI3Myw2ICsyNzMs NyBAQCBPQkpTLSQoQ09ORklHX0lNQUdFX0RQWF9QSVBFX0RFTVVYRVIpICAgICArPSBpbWcyZGVj Lm8gaW1nMi5vCiBPQkpTLSQoQ09ORklHX0lNQUdFX0VYUl9QSVBFX0RFTVVYRVIpICAgICArPSBp bWcyZGVjLm8gaW1nMi5vCiBPQkpTLSQoQ09ORklHX0lNQUdFX0dFTV9QSVBFX0RFTVVYRVIpICAg ICArPSBpbWcyZGVjLm8gaW1nMi5vCiBPQkpTLSQoQ09ORklHX0lNQUdFX0dJRl9QSVBFX0RFTVVY RVIpICAgICArPSBpbWcyZGVjLm8gaW1nMi5vCitPQkpTLSQoQ09ORklHX0lNQUdFX0hEUl9QSVBF X0RFTVVYRVIpICAgICArPSBpbWcyZGVjLm8gaW1nMi5vCiBPQkpTLSQoQ09ORklHX0lNQUdFX0oy S19QSVBFX0RFTVVYRVIpICAgICArPSBpbWcyZGVjLm8gaW1nMi5vCiBPQkpTLSQoQ09ORklHX0lN QUdFX0pQRUdfUElQRV9ERU1VWEVSKSAgICArPSBpbWcyZGVjLm8gaW1nMi5vCiBPQkpTLSQoQ09O RklHX0lNQUdFX0pQRUdMU19QSVBFX0RFTVVYRVIpICArPSBpbWcyZGVjLm8gaW1nMi5vCmRpZmYg LS1naXQgYS9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgYi9saWJhdmZvcm1hdC9hbGxmb3JtYXRz LmMKaW5kZXggMzI2OThiODU3Zi4uYWU0NDc5ZmI3YSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQv YWxsZm9ybWF0cy5jCisrKyBiL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYwpAQCAtNTA4LDYgKzUw OCw3IEBAIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9pbWFnZV9kcHhfcGlwZV9kZW11 eGVyOwogZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2ltYWdlX2V4cl9waXBlX2RlbXV4 ZXI7CiBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfaW1hZ2VfZ2VtX3BpcGVfZGVtdXhl cjsKIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9pbWFnZV9naWZfcGlwZV9kZW11eGVy OworZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2ltYWdlX2hkcl9waXBlX2RlbXV4ZXI7 CiBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfaW1hZ2VfajJrX3BpcGVfZGVtdXhlcjsK IGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9pbWFnZV9qcGVnX3BpcGVfZGVtdXhlcjsK IGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9pbWFnZV9qcGVnbHNfcGlwZV9kZW11eGVy OwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaW1nMi5jIGIvbGliYXZmb3JtYXQvaW1nMi5jCmlu ZGV4IDg3MGQyZWJiYzUuLmIwMzA3NWYzYjAgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2ltZzIu YworKysgYi9saWJhdmZvcm1hdC9pbWcyLmMKQEAgLTkxLDYgKzkxLDcgQEAgY29uc3QgSWRTdHJN YXAgZmZfaW1nX3RhZ3NbXSA9IHsKICAgICB7IEFWX0NPREVDX0lEX1ZCTiwgICAgICAgICJ2Ym4i ICAgICAgfSwKICAgICB7IEFWX0NPREVDX0lEX0pQRUdYTCwgICAgICJqeGwiICAgICAgfSwKICAg ICB7IEFWX0NPREVDX0lEX1FPSSwgICAgICAgICJxb2kiICAgICAgfSwKKyAgICB7IEFWX0NPREVD X0lEX0hEUiwgICAgICAgICJoZHIiICAgICAgfSwKICAgICB7IEFWX0NPREVDX0lEX05PTkUsICAg ICAgIE5VTEwgICAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaW1nMmRlYy5j IGIvbGliYXZmb3JtYXQvaW1nMmRlYy5jCmluZGV4IGU3ZmYyNmU1ZGQuLjRjNmM3MDEzOWMgMTAw NjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2ltZzJkZWMuYworKysgYi9saWJhdmZvcm1hdC9pbWcyZGVj LmMKQEAgLTEwNzAsNiArMTA3MCwxMyBAQCBzdGF0aWMgaW50IHBhbV9wcm9iZShjb25zdCBBVlBy b2JlRGF0YSAqcCkKICAgICByZXR1cm4gcG5tX21hZ2ljX2NoZWNrKHAsIDcpID8gcG5tX3Byb2Jl KHApIDogMDsKIH0KIAorc3RhdGljIGludCBoZHJfcHJvYmUoY29uc3QgQVZQcm9iZURhdGEgKnAp Cit7CisgICAgaWYgKCFtZW1jbXAocC0+YnVmLCAiIz9SQURJQU5DRVxuIiwgMTEpKQorICAgICAg ICByZXR1cm4gQVZQUk9CRV9TQ09SRV9NQVg7CisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBp bnQgeGJtX3Byb2JlKGNvbnN0IEFWUHJvYmVEYXRhICpwKQogewogICAgIGlmICghbWVtY21wKHAt PmJ1ZiwgIi8qIFhCTSBYMTAgZm9ybWF0ICovIiwgMjApKQpAQCAtMTIyMSw2ICsxMjI4LDcgQEAg SU1BR0VBVVRPX0RFTVVYRVIoZHB4LCAgICAgICBEUFgpCiBJTUFHRUFVVE9fREVNVVhFUihleHIs ICAgICAgIEVYUikKIElNQUdFQVVUT19ERU1VWEVSKGdlbSwgICAgICAgR0VNKQogSU1BR0VBVVRP X0RFTVVYRVIoZ2lmLCAgICAgICBHSUYpCitJTUFHRUFVVE9fREVNVVhFUihoZHIsICAgICAgIEhE UikKIElNQUdFQVVUT19ERU1VWEVSX0VYVChqMmssICAgSlBFRzIwMDAsIEoySykKIElNQUdFQVVU T19ERU1VWEVSX0VYVChqcGVnLCAgTUpQRUcsIEpQRUcpCiBJTUFHRUFVVE9fREVNVVhFUihqcGVn bHMsICAgIEpQRUdMUykKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2ltZzJlbmMuYyBiL2xpYmF2 Zm9ybWF0L2ltZzJlbmMuYwppbmRleCAwYTExZmFlMzRlLi43MzRmOTNjNjg2IDEwMDY0NAotLS0g YS9saWJhdmZvcm1hdC9pbWcyZW5jLmMKKysrIGIvbGliYXZmb3JtYXQvaW1nMmVuYy5jCkBAIC0y NjcsNyArMjY3LDcgQEAgY29uc3QgQVZPdXRwdXRGb3JtYXQgZmZfaW1hZ2UyX211eGVyID0gewog ICAgIC5sb25nX25hbWUgICAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJpbWFnZTIgc2VxdWVu Y2UiKSwKICAgICAuZXh0ZW5zaW9ucyAgICAgPSAiYm1wLGRweCxleHIsamxzLGpwZWcsanBnLGp4 bCxsanBnLHBhbSxwYm0scGN4LHBmbSxwZ20scGdteXV2LHBobSwiCiAgICAgICAgICAgICAgICAg ICAgICAgInBuZyxwcG0sc2dpLHRnYSx0aWYsdGlmZixqcDIsajJjLGoyayx4d2Qsc3VuLHJhcyxy cyxpbTEsaW04LCIKLSAgICAgICAgICAgICAgICAgICAgICAiaW0yNCxzdW5yYXMsdmJuLHhibSx4 ZmFjZSxwaXgseSxhdmlmLHFvaSIsCisgICAgICAgICAgICAgICAgICAgICAgImltMjQsc3VucmFz LHZibix4Ym0seGZhY2UscGl4LHksYXZpZixxb2ksaGRyIiwKICAgICAucHJpdl9kYXRhX3NpemUg PSBzaXplb2YoVmlkZW9NdXhEYXRhKSwKICAgICAudmlkZW9fY29kZWMgICAgPSBBVl9DT0RFQ19J RF9NSlBFRywKICAgICAud3JpdGVfaGVhZGVyICAgPSB3cml0ZV9oZWFkZXIsCi0tIAoyLjM2LjEK Cg== --000000000000b45dc405e310b39c Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --000000000000b45dc405e310b39c--