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 BB72942C99 for ; Thu, 2 Jun 2022 15:58:54 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5FFC968B546; Thu, 2 Jun 2022 18:58:51 +0300 (EEST) Received: from mail-yw1-f169.google.com (mail-yw1-f169.google.com [209.85.128.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2C6EA68B546 for ; Thu, 2 Jun 2022 18:58:45 +0300 (EEST) Received: by mail-yw1-f169.google.com with SMTP id 00721157ae682-30fdbe7467cso20761777b3.1 for ; Thu, 02 Jun 2022 08:58:45 -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=r/J3eElDTlwQgPue7AlG5HGH69WQNK3xzOBuBWYeOJw=; b=NHUXL1XWuTmkhKQbi/7dCpXz5+Y3eTk3if9j0xeaT1Mcx6hFfqTEDaN9maXudfcxA5 cyHZrhKYBCng7HsOmfpsnmZSo4Cev31zHW+i3fz3Ji/mBp7g8FPOQ5ifaaH8GmfrbIQs 3QuPCv+R7K7yVZHWpKFq8WALoK9+KHGhIBnbodh5VewpeJwcQJ5oQN3aV4y16/pjgcLO f+YzrJDSmONLOH1GcyySr947FKGehymkYyQKH7BRpit5QySxdLzy42d5+DCztQ4l857v ByHGWyfysh2+BHBPC5Z8BZXz0nsf3FFv8LIDfkbbrWt/Ls2aJKSxPQO8R2gB+wISZrE+ 5zQQ== 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=r/J3eElDTlwQgPue7AlG5HGH69WQNK3xzOBuBWYeOJw=; b=UjuBKlXLXc34B8as+DotNu7Vg1l2k5RW9AWKwS1Hz8Ny3ix3joZKoItbNus+EmbOaD Bkvkc4rtunBd8wlf7K9RWBoUWMg2sWxGjeeD9JEfhKXBWH87uf1UTGWjUMT4lFE8cKVd YljpKJemZIj89GhNIaQmsYaCO+9pDaYHNSeHdRTZBxz6YE/cOewYyJDg70THFx6t4vpT A5wVO397nihl6znr2nl5xht8xvl3d9Rz0id9/lHsMBdZPZ7SPnB9scqOy/w7aH4dx61z /BNxDFsXCNNeP+MYOphetuTNKdatf+Q4aX3ySakt2Y01zZzCXOine+R21X34usCjH/PM +xaw== X-Gm-Message-State: AOAM530p8JYvYNkL/fCiCgQJl/OQN8RgrP9cdolznz2oqEOJJTJpxg1l 60g20o/yLO8VCiMty524S0OmOVwypR3ZgxNBQo4JbMiMmcQ= X-Google-Smtp-Source: ABdhPJwMCn7yr4/E179G7R7DpdLQe29tNYj1O4tsXmbcVtmdFidklONsDbnDkw/QTE8+TGixS34kI0/POwzwdla12Iw= X-Received: by 2002:a0d:d7c7:0:b0:30c:754d:6d8e with SMTP id z190-20020a0dd7c7000000b0030c754d6d8emr6204099ywd.516.1654185523289; Thu, 02 Jun 2022 08:58:43 -0700 (PDT) MIME-Version: 1.0 From: Paul B Mahol Date: Thu, 2 Jun 2022 18:01:39 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000823d7f05e07914d8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] avcodec: add QOI decoder and demuxer and parser and encoder and muxer 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: --000000000000823d7f05e07914d8 Content-Type: text/plain; charset="UTF-8" Patch attached. --000000000000823d7f05e07914d8 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avcodec-add-QOI-decoder-and-demuxer-and-parser-and-e.patch" Content-Disposition: attachment; filename="0001-avcodec-add-QOI-decoder-and-demuxer-and-parser-and-e.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l3x7g2i40 RnJvbSA4ODVlZjRlYWEwNzBmZjJiNjUxNzg0Mjk5NzcyNGI5M2Y5NjYzNDg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgMzEgTWF5IDIwMjIgMTI6MzM6NTQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBhdmNvZGVj OiBhZGQgUU9JIGRlY29kZXIgYW5kIGRlbXV4ZXIgYW5kIHBhcnNlciBhbmQgZW5jb2RlcgogYW5k IG11eGVyCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+Ci0t LQogbGliYXZjb2RlYy9NYWtlZmlsZSAgICAgIHwgICAzICsKIGxpYmF2Y29kZWMvYWxsY29kZWNz LmMgICB8ICAgMiArCiBsaWJhdmNvZGVjL2NvZGVjX2Rlc2MuYyAgfCAgIDcgKysKIGxpYmF2Y29k ZWMvY29kZWNfaWQuaCAgICB8ICAgMSArCiBsaWJhdmNvZGVjL3BhcnNlcnMuYyAgICAgfCAgIDEg KwogbGliYXZjb2RlYy9xb2kuaCAgICAgICAgIHwgIDM1ICsrKysrKysrKysKIGxpYmF2Y29kZWMv cW9pX3BhcnNlci5jICB8ICA3NyArKysrKysrKysrKysrKysrKysrKysKIGxpYmF2Y29kZWMvcW9p ZGVjLmMgICAgICB8IDEyNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGli YXZjb2RlYy9xb2llbmMuYyAgICAgIHwgMTQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogbGliYXZmb3JtYXQvTWFrZWZpbGUgICAgIHwgICAxICsKIGxpYmF2Zm9ybWF0 L2FsbGZvcm1hdHMuYyB8ICAgMSArCiBsaWJhdmZvcm1hdC9pbWcyLmMgICAgICAgfCAgIDEgKwog bGliYXZmb3JtYXQvaW1nMmRlYy5jICAgIHwgIDE4ICsrKysrCiBsaWJhdmZvcm1hdC9pbWcyZW5j LmMgICAgfCAgIDIgKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDQxNCBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9xb2kuaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYmF2Y29kZWMvcW9pX3BhcnNlci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGli YXZjb2RlYy9xb2lkZWMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvcW9pZW5jLmMK CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL01ha2VmaWxlIGIvbGliYXZjb2RlYy9NYWtlZmlsZQpp bmRleCBlNmViOGMwODU0Li5iYWYyOTVhNThiIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL01ha2Vm aWxlCisrKyBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKQEAgLTU5NCw2ICs1OTQsOCBAQCBPQkpTLSQo Q09ORklHX1FDRUxQX0RFQ09ERVIpICAgICAgICAgICArPSBxY2VscGRlYy5vICAgICAgICAgICAg ICAgICAgICAgXAogT0JKUy0kKENPTkZJR19RRE0yX0RFQ09ERVIpICAgICAgICAgICAgKz0gcWRt Mi5vCiBPQkpTLSQoQ09ORklHX1FETUNfREVDT0RFUikgICAgICAgICAgICArPSBxZG1jLm8KIE9C SlMtJChDT05GSUdfUURSQVdfREVDT0RFUikgICAgICAgICAgICs9IHFkcncubworT0JKUy0kKENP TkZJR19RT0lfREVDT0RFUikgICAgICAgICAgICAgKz0gcW9pZGVjLm8KK09CSlMtJChDT05GSUdf UU9JX0VOQ09ERVIpICAgICAgICAgICAgICs9IHFvaWVuYy5vCiBPQkpTLSQoQ09ORklHX1FQRUdf REVDT0RFUikgICAgICAgICAgICArPSBxcGVnLm8KIE9CSlMtJChDT05GSUdfUVRSTEVfREVDT0RF UikgICAgICAgICAgICs9IHF0cmxlLm8KIE9CSlMtJChDT05GSUdfUVRSTEVfRU5DT0RFUikgICAg ICAgICAgICs9IHF0cmxlZW5jLm8KQEAgLTExNTIsNiArMTE1NCw3IEBAIE9CSlMtJChDT05GSUdf T1BVU19QQVJTRVIpICAgICAgICAgICAgICs9IG9wdXNfcGFyc2VyLm8gb3B1cy5vIG9wdXN0YWIu byBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHVzX3JjLm8g dm9yYmlzX2RhdGEubwogT0JKUy0kKENPTkZJR19QTkdfUEFSU0VSKSAgICAgICAgICAgICAgKz0g cG5nX3BhcnNlci5vCiBPQkpTLSQoQ09ORklHX1BOTV9QQVJTRVIpICAgICAgICAgICAgICArPSBw bm1fcGFyc2VyLm8gcG5tLm8KK09CSlMtJChDT05GSUdfUU9JX1BBUlNFUikgICAgICAgICAgICAg ICs9IHFvaV9wYXJzZXIubwogT0JKUy0kKENPTkZJR19SVjMwX1BBUlNFUikgICAgICAgICAgICAg Kz0gcnYzNF9wYXJzZXIubwogT0JKUy0kKENPTkZJR19SVjQwX1BBUlNFUikgICAgICAgICAgICAg Kz0gcnYzNF9wYXJzZXIubwogT0JKUy0kKENPTkZJR19TQkNfUEFSU0VSKSAgICAgICAgICAgICAg Kz0gc2JjX3BhcnNlci5vCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5jIGIvbGli YXZjb2RlYy9hbGxjb2RlY3MuYwppbmRleCAzYWU0MTgyN2EyLi5kOTVhYTM1ZWEyIDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5jCisrKyBiL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMK QEAgLTI3MCw2ICsyNzAsOCBAQCBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9wcm9zdW1lcl9kZWNv ZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfcHNkX2RlY29kZXI7CiBleHRlcm4gY29uc3Qg RkZDb2RlYyBmZl9wdHhfZGVjb2RlcjsKIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX3FkcmF3X2Rl Y29kZXI7CitleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9xb2lfZW5jb2RlcjsKK2V4dGVybiBjb25z dCBGRkNvZGVjIGZmX3FvaV9kZWNvZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfcXBlZ19k ZWNvZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfcXRybGVfZW5jb2RlcjsKIGV4dGVybiBj b25zdCBGRkNvZGVjIGZmX3F0cmxlX2RlY29kZXI7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Nv ZGVjX2Rlc2MuYyBiL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jCmluZGV4IDNiY2YyMmU2ZTcuLmRk ODc3Y2EwYmQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jCisrKyBiL2xpYmF2 Y29kZWMvY29kZWNfZGVzYy5jCkBAIC0xODg2LDYgKzE4ODYsMTMgQEAgc3RhdGljIGNvbnN0IEFW Q29kZWNEZXNjcmlwdG9yIGNvZGVjX2Rlc2NyaXB0b3JzW10gPSB7CiAgICAgICAgIC5sb25nX25h bWUgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiQmluayB2aWRlbyAyIiksCiAgICAgICAgIC5wcm9w cyAgICAgPSBBVl9DT0RFQ19QUk9QX0xPU1NZLAogICAgIH0sCisgICAgeworICAgICAgICAuaWQg ICAgICAgID0gQVZfQ09ERUNfSURfUU9JLAorICAgICAgICAudHlwZSAgICAgID0gQVZNRURJQV9U WVBFX1ZJREVPLAorICAgICAgICAubmFtZSAgICAgID0gInFvaSIsCisgICAgICAgIC5sb25nX25h bWUgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiUU9JIChRdWl0ZSBPSyBJbWFnZSkiKSwKKyAgICAg ICAgLnByb3BzICAgICA9IEFWX0NPREVDX1BST1BfSU5UUkFfT05MWSB8IEFWX0NPREVDX1BST1Bf TE9TU0xFU1MsCisgICAgfSwKIAogICAgIC8qIHZhcmlvdXMgUENNICJjb2RlY3MiICovCiAgICAg ewpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9jb2RlY19pZC5oIGIvbGliYXZjb2RlYy9jb2RlY19p ZC5oCmluZGV4IDAzMjM0Yjc1NDMuLmE3MTZkYzg3YzMgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMv Y29kZWNfaWQuaAorKysgYi9saWJhdmNvZGVjL2NvZGVjX2lkLmgKQEAgLTMxMSw2ICszMTEsNyBA QCBlbnVtIEFWQ29kZWNJRCB7CiAgICAgQVZfQ09ERUNfSURfVkJOLAogICAgIEFWX0NPREVDX0lE X0pQRUdYTCwKICAgICBBVl9DT0RFQ19JRF9CSU5LVklERU8yLAorICAgIEFWX0NPREVDX0lEX1FP SSwKIAogICAgIC8qIHZhcmlvdXMgUENNICJjb2RlY3MiICovCiAgICAgQVZfQ09ERUNfSURfRklS U1RfQVVESU8gPSAweDEwMDAwLCAgICAgLy8vPCBBIGR1bW15IGlkIHBvaW50aW5nIGF0IHRoZSBz dGFydCBvZiBhdWRpbyBjb2RlY3MKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcGFyc2Vycy5jIGIv bGliYXZjb2RlYy9wYXJzZXJzLmMKaW5kZXggNmI0MGMxOGQ4MC4uYjU5Mzg4ODM1ZCAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy9wYXJzZXJzLmMKKysrIGIvbGliYXZjb2RlYy9wYXJzZXJzLmMKQEAg LTYwLDYgKzYwLDcgQEAgZXh0ZXJuIGNvbnN0IEFWQ29kZWNQYXJzZXIgZmZfbXBlZ3ZpZGVvX3Bh cnNlcjsKIGV4dGVybiBjb25zdCBBVkNvZGVjUGFyc2VyIGZmX29wdXNfcGFyc2VyOwogZXh0ZXJu IGNvbnN0IEFWQ29kZWNQYXJzZXIgZmZfcG5nX3BhcnNlcjsKIGV4dGVybiBjb25zdCBBVkNvZGVj UGFyc2VyIGZmX3BubV9wYXJzZXI7CitleHRlcm4gY29uc3QgQVZDb2RlY1BhcnNlciBmZl9xb2lf cGFyc2VyOwogZXh0ZXJuIGNvbnN0IEFWQ29kZWNQYXJzZXIgZmZfcnYzMF9wYXJzZXI7CiBleHRl cm4gY29uc3QgQVZDb2RlY1BhcnNlciBmZl9ydjQwX3BhcnNlcjsKIGV4dGVybiBjb25zdCBBVkNv ZGVjUGFyc2VyIGZmX3NiY19wYXJzZXI7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3FvaS5oIGIv bGliYXZjb2RlYy9xb2kuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4z ZWZhYjFlNTViCi0tLSAvZGV2L251bGwKKysrIGIvbGliYXZjb2RlYy9xb2kuaApAQCAtMCwwICsx LDM1IEBACisvKgorICogUU9JIGltYWdlIGZvcm1hdAorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBM aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZG bXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBG Rm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24s IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAt MTMwMSBVU0EKKyAqLworCisjaWZuZGVmIEFWQ09ERUNfUU9JX0gKKyNkZWZpbmUgQVZDT0RFQ19R T0lfSAorCisjZGVmaW5lIFFPSV9PUF9JTkRFWCAgMHgwMCAvKiAwMHh4eHh4eCAqLworI2RlZmlu ZSBRT0lfT1BfRElGRiAgIDB4NDAgLyogMDF4eHh4eHggKi8KKyNkZWZpbmUgUU9JX09QX0xVTUEg ICAweDgwIC8qIDEweHh4eHh4ICovCisjZGVmaW5lIFFPSV9PUF9SVU4gICAgMHhjMCAvKiAxMXh4 eHh4eCAqLworI2RlZmluZSBRT0lfT1BfUkdCICAgIDB4ZmUgLyogMTExMTExMTAgKi8KKyNkZWZp bmUgUU9JX09QX1JHQkEgICAweGZmIC8qIDExMTExMTExICovCisKKyNkZWZpbmUgUU9JX01BU0tf MiAgICAweGMwIC8qIDExMDAwMDAwICovCisKKyNkZWZpbmUgUU9JX0NPTE9SX0hBU0gocHgpIChw eFswXSozICsgcHhbMV0qNSArIHB4WzJdKjcgKyBweFszXSoxMSkKKworI2VuZGlmIC8qIEFWQ09E RUNfUU9JX0ggKi8KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcW9pX3BhcnNlci5jIGIvbGliYXZj b2RlYy9xb2lfcGFyc2VyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u ZTVhZjExZTk0OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmF2Y29kZWMvcW9pX3BhcnNlci5jCkBA IC0wLDAgKzEsNzcgQEAKKy8qCisgKiBRT0kgcGFyc2VyCisgKiBDb3B5cmlnaHQgKGMpIDIwMjIg UGF1bCBCIE1haG9sCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAq IEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH TlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0 ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKy8q KgorICogQGZpbGUKKyAqIFFPSSBwYXJzZXIKKyAqLworCisjaW5jbHVkZSAicGFyc2VyLmgiCisK K3R5cGVkZWYgc3RydWN0IFFPSVBhcnNlQ29udGV4dCB7CisgICAgUGFyc2VDb250ZXh0IHBjOwor fSBRT0lQYXJzZUNvbnRleHQ7CisKK3N0YXRpYyBpbnQgcW9pX3BhcnNlKEFWQ29kZWNQYXJzZXJD b250ZXh0ICpzLCBBVkNvZGVjQ29udGV4dCAqYXZjdHgsCisgICAgICAgICAgICAgICAgICAgICBj b25zdCB1aW50OF90ICoqcG91dGJ1ZiwgaW50ICpwb3V0YnVmX3NpemUsCisgICAgICAgICAgICAg ICAgICAgICBjb25zdCB1aW50OF90ICpidWYsIGludCBidWZfc2l6ZSkKK3sKKyAgICBRT0lQYXJz ZUNvbnRleHQgKmlwYyA9IHMtPnByaXZfZGF0YTsKKyAgICB1aW50NjRfdCBzdGF0ZSA9IGlwYy0+ cGMuc3RhdGU2NDsKKyAgICBpbnQgbmV4dCA9IEVORF9OT1RfRk9VTkQsIGkgPSAwOworCisgICAg cy0+cGljdF90eXBlID0gQVZfUElDVFVSRV9UWVBFX05PTkU7CisgICAgcy0+ZHVyYXRpb24gID0g MTsKKworICAgICpwb3V0YnVmX3NpemUgPSAwOworICAgICpwb3V0YnVmID0gTlVMTDsKKworICAg IGlmIChzLT5mbGFncyAmIFBBUlNFUl9GTEFHX0NPTVBMRVRFX0ZSQU1FUykgeworICAgICAgICBu ZXh0ID0gYnVmX3NpemU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yICg7IGkgPCBidWZfc2l6 ZTsgaSsrKSB7CisgICAgICAgICAgICBzdGF0ZSA9IChzdGF0ZSA8PCA4KSB8IGJ1ZltpXTsKKyAg ICAgICAgICAgIGlmIChzdGF0ZSA9PSAweDAxTEwpIHsKKyAgICAgICAgICAgICAgICBuZXh0ID0g aSArIDE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0K KworICAgICAgICBpcGMtPnBjLnN0YXRlNjQgPSBzdGF0ZTsKKyAgICAgICAgaWYgKGZmX2NvbWJp bmVfZnJhbWUoJmlwYy0+cGMsIG5leHQsICZidWYsICZidWZfc2l6ZSkgPCAwKSB7CisgICAgICAg ICAgICAqcG91dGJ1ZiA9IE5VTEw7CisgICAgICAgICAgICAqcG91dGJ1Zl9zaXplID0gMDsKKyAg ICAgICAgICAgIHJldHVybiBidWZfc2l6ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgICpwb3V0 YnVmICAgICAgPSBidWY7CisgICAgKnBvdXRidWZfc2l6ZSA9IGJ1Zl9zaXplOworCisgICAgcmV0 dXJuIG5leHQ7Cit9CisKK2NvbnN0IEFWQ29kZWNQYXJzZXIgZmZfcW9pX3BhcnNlciA9IHsKKyAg ICAuY29kZWNfaWRzICAgICAgPSB7IEFWX0NPREVDX0lEX1FPSSB9LAorICAgIC5wcml2X2RhdGFf c2l6ZSA9IHNpemVvZihRT0lQYXJzZUNvbnRleHQpLAorICAgIC5wYXJzZXJfcGFyc2UgICA9IHFv aV9wYXJzZSwKKyAgICAucGFyc2VyX2Nsb3NlICAgPSBmZl9wYXJzZV9jbG9zZSwKK307CmRpZmYg LS1naXQgYS9saWJhdmNvZGVjL3FvaWRlYy5jIGIvbGliYXZjb2RlYy9xb2lkZWMuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44YTExOWY3NjA2Ci0tLSAvZGV2L251bGwK KysrIGIvbGliYXZjb2RlYy9xb2lkZWMuYwpAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAqIFFPSSBp bWFnZSBmb3JtYXQKKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICog RkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2lu Y2x1ZGUgPHN0ZGxpYi5oPgorCisjaW5jbHVkZSAibGliYXZ1dGlsL2ltZ3V0aWxzLmgiCisjaW5j bHVkZSAiYXZjb2RlYy5oIgorI2luY2x1ZGUgImludGVybmFsLmgiCisjaW5jbHVkZSAiYnl0ZXN0 cmVhbS5oIgorI2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCisjaW5jbHVkZSAidGhyZWFkLmgi CisjaW5jbHVkZSAicW9pLmgiCisKK3N0YXRpYyBpbnQgcW9pX2RlY29kZV9mcmFtZShBVkNvZGVj Q29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50ICpnb3RfZnJhbWUsIEFWUGFja2V0ICphdnBrdCkKK3sKKyAgICBjb25zdCB1aW50OF90ICpi dWYgPSBhdnBrdC0+ZGF0YTsKKyAgICBpbnQgcmV0LCBidWZfc2l6ZSA9IGF2cGt0LT5zaXplOwor ICAgIGludCB3aWR0aCwgaGVpZ2h0LCBjaGFubmVscywgc3BhY2UsIHJ1biA9IDA7CisgICAgdWlu dDhfdCBpbmRleFs2NF1bNF0gPSB7IDAgfTsKKyAgICB1aW50OF90IHB4WzRdID0geyAwLCAwLCAw LCAyNTUgfTsKKyAgICBHZXRCeXRlQ29udGV4dCBnYjsKKyAgICB1aW50OF90ICpkc3Q7CisgICAg dWludDY0X3QgbGVuOworCisgICAgaWYgKGJ1Zl9zaXplIDwgMjApCisgICAgICAgIHJldHVybiBB VkVSUk9SX0lOVkFMSUREQVRBOworCisgICAgYnl0ZXN0cmVhbTJfaW5pdCgmZ2IsIGJ1ZiwgYnVm X3NpemUpOworICAgIGJ5dGVzdHJlYW0yX3NraXAoJmdiLCA0KTsKKyAgICB3aWR0aCAgPSBieXRl c3RyZWFtMl9nZXRfYmUzMigmZ2IpOworICAgIGhlaWdodCA9IGJ5dGVzdHJlYW0yX2dldF9iZTMy KCZnYik7CisgICAgY2hhbm5lbHMgPSBieXRlc3RyZWFtMl9nZXRfYnl0ZSgmZ2IpOworICAgIHNw YWNlID0gYnl0ZXN0cmVhbTJfZ2V0X2J5dGUoJmdiKTsKKyAgICBzd2l0Y2ggKHNwYWNlKSB7Cisg ICAgY2FzZSAwOiBicmVhazsKKyAgICBjYXNlIDE6IGF2Y3R4LT5jb2xvcl90cmMgPSBBVkNPTF9U UkNfTElORUFSOyBicmVhazsKKyAgICBkZWZhdWx0OiByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFU QTsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IGZmX3NldF9kaW1lbnNpb25zKGF2Y3R4LCB3aWR0 aCwgaGVpZ2h0KSkgPCAwKQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgc3dpdGNoIChjaGFu bmVscykgeworICAgIGNhc2UgMzogYXZjdHgtPnBpeF9mbXQgPSBBVl9QSVhfRk1UX1JHQjI0OyBi cmVhazsKKyAgICBjYXNlIDQ6IGF2Y3R4LT5waXhfZm10ID0gQVZfUElYX0ZNVF9SR0JBOyAgYnJl YWs7CisgICAgZGVmYXVsdDogcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisgICAgfQorCisg ICAgaWYgKChyZXQgPSBmZl90aHJlYWRfZ2V0X2J1ZmZlcihhdmN0eCwgcCwgMCkpIDwgMCkKKyAg ICAgICAgcmV0dXJuIHJldDsKKworICAgIGRzdCA9IHAtPmRhdGFbMF07CisgICAgbGVuID0gd2lk dGggKiBoZWlnaHQgKiBjaGFubmVsczsKKyAgICBmb3IgKGludCBuID0gMCwgb2ZmX3ggPSAwLCBv ZmZfeSA9IDA7IG4gPCBsZW47IG4gKz0gY2hhbm5lbHMsIG9mZl94KyspIHsKKyAgICAgICAgaWYg KG9mZl94ID49IHdpZHRoKSB7CisgICAgICAgICAgICBvZmZfeCA9IDA7CisgICAgICAgICAgICBv ZmZfeSsrOworICAgICAgICAgICAgZHN0ICs9IHAtPmxpbmVzaXplWzBdOworICAgICAgICB9Cisg ICAgICAgIGlmIChydW4gPiAwKSB7CisgICAgICAgICAgICBydW4tLTsKKyAgICAgICAgfSBlbHNl IGlmIChieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmZ2IpID4gNCkgeworICAgICAgICAgICAg aW50IGNodW5rID0gYnl0ZXN0cmVhbTJfZ2V0X2J5dGV1KCZnYik7CisKKyAgICAgICAgICAgIGlm IChjaHVuayA9PSBRT0lfT1BfUkdCKSB7CisgICAgICAgICAgICAgICAgYnl0ZXN0cmVhbTJfZ2V0 X2J1ZmZlcnUoJmdiLCBweCwgMyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNodW5rID09IFFP SV9PUF9SR0JBKSB7CisgICAgICAgICAgICAgICAgYnl0ZXN0cmVhbTJfZ2V0X2J1ZmZlcnUoJmdi LCBweCwgNCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKChjaHVuayAmIFFPSV9NQVNLXzIpID09 IFFPSV9PUF9JTkRFWCkgeworICAgICAgICAgICAgICAgIG1lbWNweShweCwgaW5kZXhbY2h1bmtd LCA0KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKGNodW5rICYgUU9JX01BU0tfMikgPT0gUU9J X09QX0RJRkYpIHsKKyAgICAgICAgICAgICAgICBweFswXSArPSAoKGNodW5rID4+IDQpICYgMHgw MykgLSAyOworICAgICAgICAgICAgICAgIHB4WzFdICs9ICgoY2h1bmsgPj4gMikgJiAweDAzKSAt IDI7CisgICAgICAgICAgICAgICAgcHhbMl0gKz0gKCBjaHVuayAgICAgICAmIDB4MDMpIC0gMjsK KyAgICAgICAgICAgIH0gZWxzZSBpZiAoKGNodW5rICYgUU9JX01BU0tfMikgPT0gUU9JX09QX0xV TUEpIHsKKyAgICAgICAgICAgICAgICBpbnQgYjIgPSBieXRlc3RyZWFtMl9nZXRfYnl0ZXUoJmdi KTsKKyAgICAgICAgICAgICAgICBpbnQgdmcgPSAoY2h1bmsgJiAweDNmKSAtIDMyOworICAgICAg ICAgICAgICAgIHB4WzBdICs9IHZnIC0gOCArICgoYjIgPj4gNCkgJiAweDBmKTsKKyAgICAgICAg ICAgICAgICBweFsxXSArPSB2ZzsKKyAgICAgICAgICAgICAgICBweFsyXSArPSB2ZyAtIDggKyAg KGIyICAgICAgICYgMHgwZik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKChjaHVuayAmIFFPSV9N QVNLXzIpID09IFFPSV9PUF9SVU4pIHsKKyAgICAgICAgICAgICAgICBydW4gPSBjaHVuayAmIDB4 M2Y7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1lbWNweShpbmRleFtRT0lfQ09MT1Jf SEFTSChweCkgJiA2M10sIHB4LCA0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJy ZWFrOworICAgICAgICB9CisKKyAgICAgICAgbWVtY3B5KCZkc3Rbb2ZmX3ggKiBjaGFubmVsc10s IHB4LCBjaGFubmVscyk7CisgICAgfQorCisgICAgcC0+a2V5X2ZyYW1lID0gMTsKKyAgICBwLT5w aWN0X3R5cGUgPSBBVl9QSUNUVVJFX1RZUEVfSTsKKworICAgICpnb3RfZnJhbWUgICA9IDE7CisK KyAgICByZXR1cm4gYnVmX3NpemU7Cit9CisKK2NvbnN0IEZGQ29kZWMgZmZfcW9pX2RlY29kZXIg PSB7CisgICAgLnAubmFtZSAgICAgICAgID0gInFvaSIsCisgICAgLnAubG9uZ19uYW1lICAgID0g TlVMTF9JRl9DT05GSUdfU01BTEwoIlFPSSAoUXVpdGUgT0sgSW1hZ2UgZm9ybWF0KSBpbWFnZSIp LAorICAgIC5wLnR5cGUgICAgICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywKKyAgICAucC5pZCAg ICAgICAgICAgPSBBVl9DT0RFQ19JRF9RT0ksCisgICAgLnAuY2FwYWJpbGl0aWVzID0gQVZfQ09E RUNfQ0FQX0RSMSB8IEFWX0NPREVDX0NBUF9GUkFNRV9USFJFQURTLAorICAgIEZGX0NPREVDX0RF Q09ERV9DQihxb2lfZGVjb2RlX2ZyYW1lKSwKK307CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Fv aWVuYy5jIGIvbGliYXZjb2RlYy9xb2llbmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi45ODMyYzVjNzY3Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYXZjb2RlYy9xb2ll bmMuYwpAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqIFFPSSBpbWFnZSBmb3JtYXQgZW5jb2Rlcgor ICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK KyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK KyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaW5jbHVkZSAibGliYXZ1 dGlsL2ltZ3V0aWxzLmgiCisjaW5jbHVkZSAiYXZjb2RlYy5oIgorI2luY2x1ZGUgImJ5dGVzdHJl YW0uaCIKKyNpbmNsdWRlICJjb2RlY19pbnRlcm5hbC5oIgorI2luY2x1ZGUgImVuY29kZS5oIgor I2luY2x1ZGUgInFvaS5oIgorCitzdGF0aWMgaW50IHFvaV9lbmNvZGVfZnJhbWUoQVZDb2RlY0Nv bnRleHQgKmF2Y3R4LCBBVlBhY2tldCAqcGt0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IEFWRnJhbWUgKnBpY3QsIGludCAqZ290X3BhY2tldCkKK3sKKyAgICBjb25zdCBpbnQg Y2hhbm5lbHMgPSAzICsgKGF2Y3R4LT5waXhfZm10ID09IEFWX1BJWF9GTVRfUkdCQSk7CisgICAg dWludDhfdCBweF9wcmV2WzRdID0geyAwLCAwLCAwLCAyNTUgfTsKKyAgICB1aW50OF90IHB4WzRd ID0geyAwLCAwLCAwLCAyNTUgfTsKKyAgICB1aW50OF90IGluZGV4WzY0XVs0XSA9IHsgMCB9Owor ICAgIGludDY0X3QgcGFja2V0X3NpemU7CisgICAgdWludDhfdCAqYnVmLCAqc3JjOworICAgIGlu dCByZXQsIHJ1biA9IDA7CisKKyAgICBwYWNrZXRfc2l6ZSA9IGF2Y3R4LT53aWR0aCAqIGF2Y3R4 LT5oZWlnaHQgKiAxNkxMOworICAgIGlmICgocmV0ID0gZmZfYWxsb2NfcGFja2V0KGF2Y3R4LCBw a3QsIHBhY2tldF9zaXplKSkgPCAwKQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgYnVmID0g cGt0LT5kYXRhOworICAgIHNyYyA9IHBpY3QtPmRhdGFbMF07CisKKyAgICBieXRlc3RyZWFtX3B1 dF9idWZmZXIoJmJ1ZiwgInFvaWYiLCA0KTsKKyAgICBieXRlc3RyZWFtX3B1dF9iZTMyKCZidWYs IGF2Y3R4LT53aWR0aCk7CisgICAgYnl0ZXN0cmVhbV9wdXRfYmUzMigmYnVmLCBhdmN0eC0+aGVp Z2h0KTsKKyAgICBieXRlc3RyZWFtX3B1dF9ieXRlKCZidWYsIGNoYW5uZWxzKTsKKyAgICBieXRl c3RyZWFtX3B1dF9ieXRlKCZidWYsIDApOworCisgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBhdmN0 eC0+aGVpZ2h0OyB5KyspIHsKKyAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBhdmN0eC0+d2lk dGg7IHgrKykgeworICAgICAgICAgICAgbWVtY3B5KHB4LCBzcmMgKyB4ICogY2hhbm5lbHMsIGNo YW5uZWxzKTsKKworICAgICAgICAgICAgaWYgKCFtZW1jbXAocHgsIHB4X3ByZXYsIDQpKSB7Cisg ICAgICAgICAgICAgICAgcnVuKys7CisgICAgICAgICAgICAgICAgaWYgKHJ1biA9PSA2Mikgewor ICAgICAgICAgICAgICAgICAgICBieXRlc3RyZWFtX3B1dF9ieXRlKCZidWYsIFFPSV9PUF9SVU4g fCAocnVuIC0gMSkpOworICAgICAgICAgICAgICAgICAgICBydW4gPSAwOworICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGluZGV4X3Bv czsKKworICAgICAgICAgICAgICAgIGlmIChydW4gPiAwKSB7CisgICAgICAgICAgICAgICAgICAg IGJ5dGVzdHJlYW1fcHV0X2J5dGUoJmJ1ZiwgUU9JX09QX1JVTiB8IChydW4gLSAxKSk7CisgICAg ICAgICAgICAgICAgICAgIHJ1biA9IDA7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg ICAgICAgaW5kZXhfcG9zID0gUU9JX0NPTE9SX0hBU0gocHgpICYgNjM7CisKKyAgICAgICAgICAg ICAgICBpZiAoIW1lbWNtcChpbmRleFtpbmRleF9wb3NdLCBweCwgNCkpIHsKKyAgICAgICAgICAg ICAgICAgICAgYnl0ZXN0cmVhbV9wdXRfYnl0ZSgmYnVmLCBRT0lfT1BfSU5ERVggfCBpbmRleF9w b3MpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1lbWNw eShpbmRleFtpbmRleF9wb3NdLCBweCwgNCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHB4 WzNdID09IHB4X3ByZXZbM10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludDhfdCB2ciA9 IHB4WzBdIC0gcHhfcHJldlswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludDhfdCB2ZyA9 IHB4WzFdIC0gcHhfcHJldlsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludDhfdCB2YiA9 IHB4WzJdIC0gcHhfcHJldlsyXTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaW50OF90IHZn X3IgPSB2ciAtIHZnOworICAgICAgICAgICAgICAgICAgICAgICAgaW50OF90IHZnX2IgPSB2YiAt IHZnOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodnIgPiAtMyAmJiB2ciA8IDIgJiYK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZyA+IC0zICYmIHZnIDwgMiAmJgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZiID4gLTMgJiYgdmIgPCAyKSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnl0ZXN0cmVhbV9wdXRfYnl0ZSgmYnVmLCBRT0lfT1BfRElGRiB8ICh2 ciArIDIpIDw8IDQgfCAodmcgKyAyKSA8PCAyIHwgKHZiICsgMikpOworICAgICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIGlmICh2Z19yID4gIC05ICYmIHZnX3IgPCAgOCAmJgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ZyAgID4gLTMzICYmIHZnICAgPCAzMiAmJgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Z19iID4gIC05ICYmIHZnX2IgPCAgOCkg eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzdHJlYW1fcHV0X2J5dGUoJmJ1Ziwg UU9JX09QX0xVTUEgICAgIHwgKHZnICAgKyAzMikpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJ5dGVzdHJlYW1fcHV0X2J5dGUoJmJ1ZiwgKHZnX3IgKyA4KSA8PCA0IHwgKHZnX2IgKyAg OCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBieXRlc3RyZWFtX3B1dF9ieXRlKCZidWYsIFFPSV9PUF9SR0IpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzdHJlYW1fcHV0X2J5dGUoJmJ1ZiwgcHhbMF0pOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzdHJlYW1fcHV0X2J5dGUoJmJ1ZiwgcHhb MV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzdHJlYW1fcHV0X2J5dGUoJmJ1 ZiwgcHhbMl0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXN0cmVhbV9wdXRfYnl0ZSgm YnVmLCBRT0lfT1BfUkdCQSk7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlc3RyZWFtX3B1 dF9ieXRlKCZidWYsIHB4WzBdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzdHJlYW1f cHV0X2J5dGUoJmJ1ZiwgcHhbMV0pOworICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXN0cmVh bV9wdXRfYnl0ZSgmYnVmLCBweFsyXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlc3Ry ZWFtX3B1dF9ieXRlKCZidWYsIHB4WzNdKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWVtY3B5KHB4X3ByZXYs IHB4LCA0KTsKKyAgICAgICAgfQorCisgICAgICAgIHNyYyArPSBwaWN0LT5saW5lc2l6ZVswXTsK KyAgICB9CisKKyAgICBpZiAocnVuKQorICAgICAgICBieXRlc3RyZWFtX3B1dF9ieXRlKCZidWYs IFFPSV9PUF9SVU4gfCAocnVuIC0gMSkpOworCisgICAgYnl0ZXN0cmVhbV9wdXRfYmU2NCgmYnVm LCAweDAxKTsKKworICAgIHBrdC0+c2l6ZSA9IGJ1ZiAtIHBrdC0+ZGF0YTsKKworICAgICpnb3Rf cGFja2V0ID0gMTsKKworICAgIHJldHVybiAwOworfQorCitjb25zdCBGRkNvZGVjIGZmX3FvaV9l bmNvZGVyID0geworICAgIC5wLm5hbWUgICAgICAgICA9ICJxb2kiLAorICAgIC5wLmxvbmdfbmFt ZSAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJRT0kgKFF1aXRlIE9LIEltYWdlIGZvcm1hdCkg aW1hZ2UiKSwKKyAgICAucC50eXBlICAgICAgICAgPSBBVk1FRElBX1RZUEVfVklERU8sCisgICAg LnAuaWQgICAgICAgICAgID0gQVZfQ09ERUNfSURfUU9JLAorICAgIC5wLmNhcGFiaWxpdGllcyA9 IEFWX0NPREVDX0NBUF9GUkFNRV9USFJFQURTLAorICAgIEZGX0NPREVDX0VOQ09ERV9DQihxb2lf ZW5jb2RlX2ZyYW1lKSwKKyAgICAucC5waXhfZm10cyAgICAgPSAoY29uc3QgZW51bSBBVlBpeGVs Rm9ybWF0W10peworICAgICAgICBBVl9QSVhfRk1UX1JHQkEsIEFWX1BJWF9GTVRfUkdCMjQsCisg ICAgICAgIEFWX1BJWF9GTVRfTk9ORQorICAgIH0sCisgICAgLmNhcHNfaW50ZXJuYWwgID0gRkZf Q09ERUNfQ0FQX0lOSVRfVEhSRUFEU0FGRSwKK307CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9N YWtlZmlsZSBiL2xpYmF2Zm9ybWF0L01ha2VmaWxlCmluZGV4IDhlNjEyYjZjYzcuLjE0MTZiZjMx YmQgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlCisrKyBiL2xpYmF2Zm9ybWF0L01h a2VmaWxlCkBAIC0yODksNiArMjg5LDcgQEAgT0JKUy0kKENPTkZJR19JTUFHRV9QTkdfUElQRV9E RU1VWEVSKSAgICAgKz0gaW1nMmRlYy5vIGltZzIubwogT0JKUy0kKENPTkZJR19JTUFHRV9QUE1f UElQRV9ERU1VWEVSKSAgICAgKz0gaW1nMmRlYy5vIGltZzIubwogT0JKUy0kKENPTkZJR19JTUFH RV9QU0RfUElQRV9ERU1VWEVSKSAgICAgKz0gaW1nMmRlYy5vIGltZzIubwogT0JKUy0kKENPTkZJ R19JTUFHRV9RRFJBV19QSVBFX0RFTVVYRVIpICAgKz0gaW1nMmRlYy5vIGltZzIubworT0JKUy0k KENPTkZJR19JTUFHRV9RT0lfUElQRV9ERU1VWEVSKSAgICAgKz0gaW1nMmRlYy5vIGltZzIubwog T0JKUy0kKENPTkZJR19JTUFHRV9TR0lfUElQRV9ERU1VWEVSKSAgICAgKz0gaW1nMmRlYy5vIGlt ZzIubwogT0JKUy0kKENPTkZJR19JTUFHRV9TVkdfUElQRV9ERU1VWEVSKSAgICAgKz0gaW1nMmRl Yy5vIGltZzIubwogT0JKUy0kKENPTkZJR19JTUFHRV9TVU5SQVNUX1BJUEVfREVNVVhFUikgKz0g aW1nMmRlYy5vIGltZzIubwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jIGIv bGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCmluZGV4IDE4MDI1MzY2MzMuLjhiODRiNTJjNjQgMTAw NjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYworKysgYi9saWJhdmZvcm1hdC9hbGxm b3JtYXRzLmMKQEAgLTUyNCw2ICs1MjQsNyBAQCBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAg ZmZfaW1hZ2VfcG5nX3BpcGVfZGVtdXhlcjsKIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBm Zl9pbWFnZV9wcG1fcGlwZV9kZW11eGVyOwogZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZm X2ltYWdlX3BzZF9waXBlX2RlbXV4ZXI7CiBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZf aW1hZ2VfcWRyYXdfcGlwZV9kZW11eGVyOworZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZm X2ltYWdlX3FvaV9waXBlX2RlbXV4ZXI7CiBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZf aW1hZ2Vfc2dpX3BpcGVfZGVtdXhlcjsKIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9p bWFnZV9zdmdfcGlwZV9kZW11eGVyOwogZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2lt YWdlX3N1bnJhc3RfcGlwZV9kZW11eGVyOwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaW1nMi5j IGIvbGliYXZmb3JtYXQvaW1nMi5jCmluZGV4IDU2NmVmODczY2EuLjY4Y2I3ZGUyYzEgMTAwNjQ0 Ci0tLSBhL2xpYmF2Zm9ybWF0L2ltZzIuYworKysgYi9saWJhdmZvcm1hdC9pbWcyLmMKQEAgLTg5 LDYgKzg5LDcgQEAgY29uc3QgSWRTdHJNYXAgZmZfaW1nX3RhZ3NbXSA9IHsKICAgICB7IEFWX0NP REVDX0lEX0dFTSwgICAgICAgICJ0aW1nIiAgICAgfSwKICAgICB7IEFWX0NPREVDX0lEX1ZCTiwg ICAgICAgICJ2Ym4iICAgICAgfSwKICAgICB7IEFWX0NPREVDX0lEX0pQRUdYTCwgICAgICJqeGwi ICAgICAgfSwKKyAgICB7IEFWX0NPREVDX0lEX1FPSSwgICAgICAgICJxb2kiICAgICAgfSwKICAg ICB7IEFWX0NPREVDX0lEX05PTkUsICAgICAgIE5VTEwgICAgICAgfQogfTsKIApkaWZmIC0tZ2l0 IGEvbGliYXZmb3JtYXQvaW1nMmRlYy5jIGIvbGliYXZmb3JtYXQvaW1nMmRlYy5jCmluZGV4IDVm OWQxZjA5NGYuLmU0OTEyY2I0ODcgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2ltZzJkZWMuYwor KysgYi9saWJhdmZvcm1hdC9pbWcyZGVjLmMKQEAgLTExMzEsNiArMTEzMSwyMyBAQCBzdGF0aWMg aW50IHBob3RvY2RfcHJvYmUoY29uc3QgQVZQcm9iZURhdGEgKnApCiAgICAgcmV0dXJuIEFWUFJP QkVfU0NPUkVfTUFYIC0gMTsKIH0KIAorc3RhdGljIGludCBxb2lfcHJvYmUoY29uc3QgQVZQcm9i ZURhdGEgKnApCit7CisgICAgaWYgKG1lbWNtcChwLT5idWYsICJxb2lmIiwgNCkpCisgICAgICAg IHJldHVybiAwOworCisgICAgaWYgKEFWX1JCMzIocC0+YnVmICsgNCkgPT0gMCB8fCBBVl9SQjMy KHAtPmJ1ZiArIDgpID09IDApCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKHAtPmJ1Zlsx Ml0gIT0gMyAmJiBwLT5idWZbMTJdICE9IDQpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYg KHAtPmJ1ZlsxM10gPiAxKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBBVlBST0JF X1NDT1JFX01BWCAtIDE7Cit9CisKIHN0YXRpYyBpbnQgZ2VtX3Byb2JlKGNvbnN0IEFWUHJvYmVE YXRhICpwKQogewogICAgIGNvbnN0IHVpbnQ4X3QgKmIgPSBwLT5idWY7CkBAIC0xMjA4LDYgKzEy MjUsNyBAQCBJTUFHRUFVVE9fREVNVVhFUihwbmcsICAgICAgIFBORykKIElNQUdFQVVUT19ERU1V WEVSKHBwbSwgICAgICAgUFBNKQogSU1BR0VBVVRPX0RFTVVYRVIocHNkLCAgICAgICBQU0QpCiBJ TUFHRUFVVE9fREVNVVhFUihxZHJhdywgICAgIFFEUkFXKQorSU1BR0VBVVRPX0RFTVVYRVIocW9p LCAgICAgICBRT0kpCiBJTUFHRUFVVE9fREVNVVhFUihzZ2ksICAgICAgIFNHSSkKIElNQUdFQVVU T19ERU1VWEVSKHN1bnJhc3QsICAgU1VOUkFTVCkKIElNQUdFQVVUT19ERU1VWEVSKHN2ZywgICAg ICAgU1ZHKQpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaW1nMmVuYy5jIGIvbGliYXZmb3JtYXQv aW1nMmVuYy5jCmluZGV4IDAwMTUyOTdlYzIuLmIzYTA4MDFlYzkgMTAwNjQ0Ci0tLSBhL2xpYmF2 Zm9ybWF0L2ltZzJlbmMuYworKysgYi9saWJhdmZvcm1hdC9pbWcyZW5jLmMKQEAgLTI2Nyw3ICsy NjcsNyBAQCBjb25zdCBBVk91dHB1dEZvcm1hdCBmZl9pbWFnZTJfbXV4ZXIgPSB7CiAgICAgLmxv bmdfbmFtZSAgICAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwoImltYWdlMiBzZXF1ZW5jZSIpLAog ICAgIC5leHRlbnNpb25zICAgICA9ICJibXAsZHB4LGV4cixqbHMsanBlZyxqcGcsanhsLGxqcGcs cGFtLHBibSxwY3gscGZtLHBnbSxwZ215dXYsIgogICAgICAgICAgICAgICAgICAgICAgICJwbmcs cHBtLHNnaSx0Z2EsdGlmLHRpZmYsanAyLGoyYyxqMmsseHdkLHN1bixyYXMscnMsaW0xLGltOCwi Ci0gICAgICAgICAgICAgICAgICAgICAgImltMjQsc3VucmFzLHZibix4Ym0seGZhY2UscGl4LHks YXZpZiIsCisgICAgICAgICAgICAgICAgICAgICAgImltMjQsc3VucmFzLHZibix4Ym0seGZhY2Us cGl4LHksYXZpZixxb2kiLAogICAgIC5wcml2X2RhdGFfc2l6ZSA9IHNpemVvZihWaWRlb011eERh dGEpLAogICAgIC52aWRlb19jb2RlYyAgICA9IEFWX0NPREVDX0lEX01KUEVHLAogICAgIC53cml0 ZV9oZWFkZXIgICA9IHdyaXRlX2hlYWRlciwKLS0gCjIuMzYuMQoK --000000000000823d7f05e07914d8 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". --000000000000823d7f05e07914d8--