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 B93484050C for ; Tue, 21 Dec 2021 07:57:15 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1043868AEEA; Tue, 21 Dec 2021 09:57:05 +0200 (EET) Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8DF8868AB2E for ; Tue, 21 Dec 2021 09:56:57 +0200 (EET) Received: by mail-lf1-f46.google.com with SMTP id g26so11627438lfv.11 for ; Mon, 20 Dec 2021 23:56:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=ymNxm4BYK24CFTh53P1IrRiRqYUFdFuHYFgc8ZyeT8w=; b=qAX/j6V7yhBPEE4dWc+vECbFOhJ83b/DLhNBXeqHmwQ+qylmTQpB0DIFS7ztT/7g9G 2uE4P1PLV80G5zrAyokqb2abFx9YjMB+p8TGJ8rjQzxMhhkelOqt66SOuvsjyFxTPxda tv1M91l53SecCWTZmDB/Ggq2xFObntZTHBT+EPazskx6gUjvLxBHmN1eQjXhTzZ4XpjY YFtrqBk5W8zaeBo98EsSOOIgnRty/PJ5WfbvymFPWuhGiljXHmLw0f02/4vDqrJA7Hg3 rnMrxTzT5Ee7t0JA2EtkNl0WH/OE2cY3s7CbwxVSv6dwfkpBvpCjUns4peZwInN2gcSH M/hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ymNxm4BYK24CFTh53P1IrRiRqYUFdFuHYFgc8ZyeT8w=; b=wiGPsCqWgLskERbHofRDLDGjAv4W3PvQCwudmNqHEGBFZ3u1iuZjRnEChtFRdtwWcV VvdBifMUdu2kJnyAoQOOcbp1cbp+1K+z3pfHmyRIyAqFG61JOPFAleX8Oh5WM9w/v1hs jCW7jrQe/pIQMA1DdhNdqWK4fZFwz3P0IkWCStAD+OuO2WrVBob8dqFGLOFm7/5iI49P DBbz/lRvw+rUFpvlT6dcWgWUlxMZ7aC5xIqprbFQ3Qrblmg5gZLjm17yxjLGqMUikbe7 O6kfXW/upXHK276n2FUTWjX2jBZMnG2qbIvpyGK0pNmSvvuYlTjpud9/UkaXZCOMEeSJ ckTQ== X-Gm-Message-State: AOAM530D+/UtAJUj/XR44laH6HhgFOkYtvHQxzW6i9ue1oH94Yy+s0Db +bxS13axeZBmCJBUnmFjI4maZCwkOK0= X-Google-Smtp-Source: ABdhPJxk4SelJerh0K26DPdmUccUa1lqZcby5I/3oVyWFFdhIo4hXk+kN6h5tAd+qZjyHdlTNbHVFw== X-Received: by 2002:ac2:5ca4:: with SMTP id e4mr2103847lfq.263.1640073416936; Mon, 20 Dec 2021 23:56:56 -0800 (PST) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id j18sm2631729lfg.60.2021.12.20.23.56.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 23:56:56 -0800 (PST) From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Tue, 21 Dec 2021 09:56:48 +0200 Message-Id: <20211221075648.13059-2-jeebjp@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211221075648.13059-1-jeebjp@gmail.com> References: <20211221075648.13059-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] ffmpeg: add video heartbeat capability to fix_sub_duration 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 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: RnJvbTogSmFuIEVrc3Ryw7ZtIDxqYW4uZWtzdHJvbUAyNGkuY29tPgoKU3BsaXRzIHRoZSBjdXJy ZW50bHkgaGFuZGxlZCBzdWJ0aXRsZSBhdCByYW5kb20gYWNjZXNzIHBvaW50CnBhY2tldHMgdGhh dCBjYW4gYmUgY29uZmlndXJlZCB0byBmb2xsb3cgYSBzcGVjaWZpYyBvdXRwdXQgc3RyZWFtLgoK VGhpcyB3YXkgdGhlIHN1YnRpdGxlIC0gd2hpY2ggaXMga25vd24gdG8gYmUgc2hvd24gYXQgdGhp cyB0aW1lCmNhbiBiZSBzcGxpdCBhbmQgcGFzc2VkIHRvIG11eGVyIGJlZm9yZSBpdHMgZnVsbCBk dXJhdGlvbiBpcwp5ZXQga25vd24uCgpTaWduZWQtb2ZmLWJ5OiBKYW4gRWtzdHLDtm0gPGphbi5l a3N0cm9tQDI0aS5jb20+Ci0tLQogZG9jL2ZmbXBlZy50ZXhpICAgICAgfCAgMTEgKysrKwogZmZ0 b29scy9mZm1wZWcuYyAgICAgfCAxNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogZmZ0b29scy9mZm1wZWcuaCAgICAgfCAgIDggKysrCiBmZnRvb2xzL2ZmbXBl Z19vcHQuYyB8ICAgOSArKysKIDQgZmlsZXMgY2hhbmdlZCwgMTcwIGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9kb2MvZmZtcGVnLnRleGkgYi9kb2MvZmZtcGVnLnRleGkKaW5kZXggMTY0NDE5 Y2FkMy4uN2NlYjU1MzJjZSAxMDA2NDQKLS0tIGEvZG9jL2ZmbXBlZy50ZXhpCisrKyBiL2RvYy9m Zm1wZWcudGV4aQpAQCAtMTI5Nyw2ICsxMjk3LDE3IEBAIExpc3QgYWxsIGhhcmR3YXJlIGFjY2Vs ZXJhdGlvbiBjb21wb25lbnRzIGVuYWJsZWQgaW4gdGhpcyBidWlsZCBvZiBmZm1wZWcuCiBBY3R1 YWwgcnVudGltZSBhdmFpbGFiaWxpdHkgZGVwZW5kcyBvbiB0aGUgaGFyZHdhcmUgYW5kIGl0cyBz dWl0YWJsZSBkcml2ZXIKIGJlaW5nIGluc3RhbGxlZC4KIAorQGl0ZW0gLWZpeF9zdWJfZHVyYXRp b25faGVhcnRiZWF0WzpAdmFye3N0cmVhbV9zcGVjaWZpZXJ9XQorU2V0IGEgc3BlY2lmaWMgb3V0 cHV0IHZpZGVvIHN0cmVhbSBhcyB0aGUgaGVhcnRiZWF0IHN0cmVhbSBhY2NvcmRpbmcgdG8gd2hp Y2gKK3RvIHNwbGl0IGFuZCBwdXNoIHRocm91Z2ggY3VycmVudGx5IGluLXByb2dyZXNzIHN1YnRp dGxlIHVwb24gcmVjZWlwdCBvZiBhCityYW5kb20gYWNjZXNzIHBhY2tldC4KKworVGhpcyBsb3dl cnMgdGhlIGxhdGVuY3kgb2Ygc3VidGl0bGVzIGZvciB3aGljaCB0aGUgZW5kIHBhY2tldCBvciB0 aGUgZm9sbG93aW5nCitzdWJ0aXRsZSBoYXMgbm90IHlldCBiZWVuIHJlY2VpdmVkLgorCitSZXF1 aXJlcyBAb3B0aW9uey1maXhfc3ViX2R1cmF0aW9ufSB0byBiZSBzZXQgZm9yIHRoZSByZWxldmFu dCBpbnB1dCBzdWJ0aXRsZQorc3RyZWFtIGZvciB0aGlzIHRvIGhhdmUgYW55IGVmZmVjdC4KKwog QGVuZCB0YWJsZQogCiBAc2VjdGlvbiBBdWRpbyBPcHRpb25zCmRpZmYgLS1naXQgYS9mZnRvb2xz L2ZmbXBlZy5jIGIvZmZ0b29scy9mZm1wZWcuYwppbmRleCAxNjk3ODkxYTk5Li5mOGNjMTFkMWY0 IDEwMDY0NAotLS0gYS9mZnRvb2xzL2ZmbXBlZy5jCisrKyBiL2ZmdG9vbHMvZmZtcGVnLmMKQEAg LTEyNiw2ICsxMjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBCZW5jaG1hcmtUaW1lU3RhbXBzIHsKICAg ICBpbnQ2NF90IHN5c191c2VjOwogfSBCZW5jaG1hcmtUaW1lU3RhbXBzOwogCitzdGF0aWMgaW50 IHRyaWdnZXJfZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQoT3V0cHV0U3RyZWFtICpvc3QsIGNv bnN0IEFWUGFja2V0ICpwa3QpOwogc3RhdGljIHZvaWQgZG9fdmlkZW9fc3RhdHMoT3V0cHV0U3Ry ZWFtICpvc3QsIGludCBmcmFtZV9zaXplKTsKIHN0YXRpYyBCZW5jaG1hcmtUaW1lU3RhbXBzIGdl dF9iZW5jaG1hcmtfdGltZV9zdGFtcHModm9pZCk7CiBzdGF0aWMgaW50NjRfdCBnZXRtYXhyc3Mo dm9pZCk7CkBAIC0xMzgyLDYgKzEzODMsMTMgQEAgc3RhdGljIHZvaWQgZG9fdmlkZW9fb3V0KE91 dHB1dEZpbGUgKm9mLAogICAgICAgICAgICAgICAgICAgICBhdl90czJzdHIocGt0LT5kdHMpLCBh dl90czJ0aW1lc3RyKHBrdC0+ZHRzLCAmb3N0LT5tdXhfdGltZWJhc2UpKTsKICAgICAgICAgICAg IH0KIAorICAgICAgICAgICAgaWYgKChyZXQgPSB0cmlnZ2VyX2ZpeF9zdWJfZHVyYXRpb25faGVh cnRiZWF0KG9zdCwgcGt0KSkgPCAwKSB7CisgICAgICAgICAgICAgICAgYXZfbG9nKE5VTEwsIEFW X0xPR19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgIlN1YnRpdGxlIGhlYXJ0YmVhdCBs b2dpYyBmYWlsZWQgaW4gJXMhICglcylcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIF9fZnVu Y19fLCBhdl9lcnIyc3RyKHJldCkpOworICAgICAgICAgICAgICAgIGV4aXRfcHJvZ3JhbSgxKTsK KyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZnJhbWVfc2l6ZSA9IHBrdC0+c2l6ZTsKICAg ICAgICAgICAgIG91dHB1dF9wYWNrZXQob2YsIHBrdCwgb3N0LCAwKTsKIApAQCAtMjA5MSw2ICsy MDk5LDE2IEBAIHN0YXRpYyB2b2lkIGRvX3N0cmVhbWNvcHkoSW5wdXRTdHJlYW0gKmlzdCwgT3V0 cHV0U3RyZWFtICpvc3QsIGNvbnN0IEFWUGFja2V0ICpwCiAKICAgICBvc3QtPnN5bmNfb3B0cyAr PSBvcGt0LT5kdXJhdGlvbjsKIAorICAgIGlmIChvc3QtPnN0LT5jb2RlY3Bhci0+Y29kZWNfdHlw ZSA9PSBBVk1FRElBX1RZUEVfVklERU8pIHsKKyAgICAgICAgaW50IHJldDsKKyAgICAgICAgaWYg KChyZXQgPSB0cmlnZ2VyX2ZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0KG9zdCwgcGt0KSkgPCAw KSB7CisgICAgICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAg ICAgICAgICJTdWJ0aXRsZSBoZWFydGJlYXQgbG9naWMgZmFpbGVkIGluICVzISAoJXMpXG4iLAor ICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBhdl9lcnIyc3RyKHJldCkpOworICAgICAgICAg ICAgZXhpdF9wcm9ncmFtKDEpOworICAgICAgICB9CisgICAgfQorCiAgICAgb3V0cHV0X3BhY2tl dChvZiwgb3BrdCwgb3N0LCAwKTsKIH0KIApAQCAtMjU0OCw2ICsyNTY2LDEzMCBAQCBvdXQ6CiAg ICAgcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBjb3B5X2F2X3N1YnRpdGxlKEFWU3VidGl0 bGUgKmRzdCwgQVZTdWJ0aXRsZSAqc3JjKQoreworICAgIGludCByZXQgPSBBVkVSUk9SX0JVRzsK KyAgICBBVlN1YnRpdGxlIHRtcCA9IHsKKyAgICAgICAgLmZvcm1hdCA9IHNyYy0+Zm9ybWF0LAor ICAgICAgICAuc3RhcnRfZGlzcGxheV90aW1lID0gc3JjLT5zdGFydF9kaXNwbGF5X3RpbWUsCisg ICAgICAgIC5lbmRfZGlzcGxheV90aW1lID0gc3JjLT5lbmRfZGlzcGxheV90aW1lLAorICAgICAg ICAubnVtX3JlY3RzID0gMCwKKyAgICAgICAgLnJlY3RzID0gTlVMTCwKKyAgICAgICAgLnB0cyA9 IHNyYy0+cHRzCisgICAgfTsKKworICAgIGlmICghc3JjLT5udW1fcmVjdHMpCisgICAgICAgIGdv dG8gc3VjY2VzczsKKworICAgIGlmICghKHRtcC5yZWN0cyA9IGF2X2NhbGxvYyhzcmMtPm51bV9y ZWN0cywgc2l6ZW9mKCp0bXAucmVjdHMpKSkpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01F TSk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHNyYy0+bnVtX3JlY3RzOyBpKyspIHsKKyAg ICAgICAgQVZTdWJ0aXRsZVJlY3QgKnNyY19yZWN0ID0gc3JjLT5yZWN0c1tpXTsKKyAgICAgICAg QVZTdWJ0aXRsZVJlY3QgKmRzdF9yZWN0OworCisgICAgICAgIGlmICghKGRzdF9yZWN0ID0gdG1w LnJlY3RzW2ldID0gYXZfbWFsbG9jeihzaXplb2YoKnRtcC5yZWN0c1swXSkpKSkgeworICAgICAg ICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICAgICAgZ290byBjbGVhbnVwOwor ICAgICAgICB9CisKKyAgICAgICAgdG1wLm51bV9yZWN0cysrOworCisgICAgICAgIGRzdF9yZWN0 LT50eXBlICAgICAgPSBzcmNfcmVjdC0+dHlwZTsKKyAgICAgICAgZHN0X3JlY3QtPmZsYWdzICAg ICA9IHNyY19yZWN0LT5mbGFnczsKKworICAgICAgICBkc3RfcmVjdC0+eCAgICAgICAgID0gc3Jj X3JlY3QtPng7CisgICAgICAgIGRzdF9yZWN0LT55ICAgICAgICAgPSBzcmNfcmVjdC0+eTsKKyAg ICAgICAgZHN0X3JlY3QtPncgICAgICAgICA9IHNyY19yZWN0LT53OworICAgICAgICBkc3RfcmVj dC0+aCAgICAgICAgID0gc3JjX3JlY3QtPmg7CisgICAgICAgIGRzdF9yZWN0LT5uYl9jb2xvcnMg PSBzcmNfcmVjdC0+bmJfY29sb3JzOworCisgICAgICAgIGlmIChzcmNfcmVjdC0+dGV4dCkKKyAg ICAgICAgICAgIGlmICghKGRzdF9yZWN0LT50ZXh0ID0gYXZfc3RyZHVwKHNyY19yZWN0LT50ZXh0 KSkpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVOT01FTSk7CisgICAgICAgICAg ICAgICAgZ290byBjbGVhbnVwOworICAgICAgICAgICAgfQorCisgICAgICAgIGlmIChzcmNfcmVj dC0+YXNzKQorICAgICAgICAgICAgaWYgKCEoZHN0X3JlY3QtPmFzcyA9IGF2X3N0cmR1cChzcmNf cmVjdC0+YXNzKSkpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVOT01FTSk7Cisg ICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICAgICAgfQorCisgICAgICAgIGZv ciAoaW50IGogPSAwOyBqIDwgNDsgaisrKSB7CisgICAgICAgICAgICAvLyBTVUJUSVRMRV9CSVRN QVAgaW1hZ2VzIGFyZSBzcGVjaWFsIGluIHRoZSBzZW5zZSB0aGF0IHRoZXkKKyAgICAgICAgICAg IC8vIGFyZSBsaWtlIFBBTDggaW1hZ2VzLiBmaXJzdCBwb2ludGVyIHRvIGRhdGEsIHNlY29uZCB0 bworICAgICAgICAgICAgLy8gcGFsZXR0ZS4gVGhpcyBtYWtlcyB0aGUgc2l6ZSBjYWxjdWxhdGlv biBtYXRjaCB0aGlzLgorICAgICAgICAgICAgc2l6ZV90IGJ1Zl9zaXplID0gc3JjX3JlY3QtPnR5 cGUgPT0gU1VCVElUTEVfQklUTUFQICYmIGogPT0gMSA/CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBVlBBTEVUVEVfU0laRSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz cmNfcmVjdC0+aCAqIHNyY19yZWN0LT5saW5lc2l6ZVtqXTsKKworICAgICAgICAgICAgaWYgKCFz cmNfcmVjdC0+ZGF0YVtqXSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAg ICAgaWYgKCEoZHN0X3JlY3QtPmRhdGFbal0gPSBhdl9tZW1kdXAoc3JjX3JlY3QtPmRhdGFbal0s IGJ1Zl9zaXplKSkpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVOT01FTSk7Cisg ICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICAgICAgfQorICAgICAgICAgICAg ZHN0X3JlY3QtPmxpbmVzaXplW2pdID0gc3JjX3JlY3QtPmxpbmVzaXplW2pdOworICAgICAgICB9 CisgICAgfQorCitzdWNjZXNzOgorICAgICpkc3QgPSB0bXA7CisKKyAgICByZXR1cm4gMDsKKwor Y2xlYW51cDoKKyAgICBhdnN1YnRpdGxlX2ZyZWUoJnRtcCk7CisKKyAgICByZXR1cm4gcmV0Owor fQorCitzdGF0aWMgaW50IGZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0KElucHV0U3RyZWFtICpp c3QsIGludDY0X3Qgc2lnbmFsX3B0cykKK3sKKyAgICBpbnQgcmV0ID0gQVZFUlJPUl9CVUc7Cisg ICAgaW50IGdvdF9vdXRwdXQgPSAxOworICAgIEFWU3VidGl0bGUgKnByZXZfc3VidGl0bGUgPSAm aXN0LT5wcmV2X3N1Yi5zdWJ0aXRsZTsKKyAgICBBVlN1YnRpdGxlIHN1YnRpdGxlOworCisgICAg aWYgKCFpc3QtPmZpeF9zdWJfZHVyYXRpb24gfHwgIXByZXZfc3VidGl0bGUtPm51bV9yZWN0cyB8 fAorICAgICAgICBzaWduYWxfcHRzIDw9IHByZXZfc3VidGl0bGUtPnB0cykKKyAgICAgICAgcmV0 dXJuIDA7CisKKyAgICBpZiAoKHJldCA9IGNvcHlfYXZfc3VidGl0bGUoJnN1YnRpdGxlLCBwcmV2 X3N1YnRpdGxlKSkgPCAwKQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgc3VidGl0bGUucHRz ID0gc2lnbmFsX3B0czsKKworICAgIHJldHVybiBlbmNvZGVfbXV4X3N1YnRpdGxlcyhpc3QsICZz dWJ0aXRsZSwgJmdvdF9vdXRwdXQpOworfQorCitzdGF0aWMgaW50IHRyaWdnZXJfZml4X3N1Yl9k dXJhdGlvbl9oZWFydGJlYXQoT3V0cHV0U3RyZWFtICpvc3QsIGNvbnN0IEFWUGFja2V0ICpwa3Qp Cit7CisgICAgaW50NjRfdCBzaWduYWxfcHRzID0gYXZfcmVzY2FsZV9xKHBrdC0+cHRzLCBvc3Qt Pm11eF90aW1lYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZf VElNRV9CQVNFX1EpOworCisgICAgaWYgKCFvc3QtPmZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0 IHx8ICEocGt0LT5mbGFncyAmIEFWX1BLVF9GTEFHX0tFWSkpCisgICAgICAgIC8vIHdlIGFyZSBv bmx5IGludGVyZXN0ZWQgaW4gaGVhcnRiZWF0cyBvbiBzdHJlYW1zIGNvbmZpZ3VyZWQsIGFuZAor ICAgICAgICAvLyBvbmx5IG9uIHJhbmRvbSBhY2Nlc3MgcG9pbnRzLgorICAgICAgICByZXR1cm4g MDsKKworICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBuYl9pbnB1dF9zdHJlYW1zOyBp bmRleCsrKSB7CisgICAgICAgIElucHV0U3RyZWFtICpzdWJ0aXRsZV9pc3QgPSBpbnB1dF9zdHJl YW1zW2luZGV4XTsKKyAgICAgICAgaW50IHJldCA9IEFWRVJST1JfQlVHOworCisgICAgICAgIGlm ICghc3VidGl0bGVfaXN0LT5kZWNvZGluZ19uZWVkZWQgfHwKKyAgICAgICAgICAgIHN1YnRpdGxl X2lzdC0+ZGVjX2N0eC0+Y29kZWNfdHlwZSAhPSBBVk1FRElBX1RZUEVfU1VCVElUTEUpCisgICAg ICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoKHJldCA9IGZpeF9zdWJfZHVyYXRpb25f aGVhcnRiZWF0KHN1YnRpdGxlX2lzdCwgc2lnbmFsX3B0cykpIDwgMCkKKyAgICAgICAgICAgIHJl dHVybiByZXQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgdHJhbnNj b2RlX3N1YnRpdGxlcyhJbnB1dFN0cmVhbSAqaXN0LCBBVlBhY2tldCAqcGt0LCBpbnQgKmdvdF9v dXRwdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpkZWNvZGVfZmFpbGVk KQogewpkaWZmIC0tZ2l0IGEvZmZ0b29scy9mZm1wZWcuaCBiL2ZmdG9vbHMvZmZtcGVnLmgKaW5k ZXggOWIyMDBiODA2YS4uYjFlNjdhOTRlOSAxMDA2NDQKLS0tIGEvZmZ0b29scy9mZm1wZWcuaAor KysgYi9mZnRvb2xzL2ZmbXBlZy5oCkBAIC0yMDQsNiArMjA0LDggQEAgdHlwZWRlZiBzdHJ1Y3Qg T3B0aW9uc0NvbnRleHQgewogICAgIGludCAgICAgICAgbmJfcmVpbml0X2ZpbHRlcnM7CiAgICAg U3BlY2lmaWVyT3B0ICpmaXhfc3ViX2R1cmF0aW9uOwogICAgIGludCAgICAgICAgbmJfZml4X3N1 Yl9kdXJhdGlvbjsKKyAgICBTcGVjaWZpZXJPcHQgKmZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0 OworICAgIGludCAgICAgICAgbmJfZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQ7CiAgICAgU3Bl Y2lmaWVyT3B0ICpjYW52YXNfc2l6ZXM7CiAgICAgaW50ICAgICAgICBuYl9jYW52YXNfc2l6ZXM7 CiAgICAgU3BlY2lmaWVyT3B0ICpwYXNzOwpAQCAtNTcxLDYgKzU3MywxMiBAQCB0eXBlZGVmIHN0 cnVjdCBPdXRwdXRTdHJlYW0gewogCiAgICAgLyogZnJhbWUgZW5jb2RlIHN1bSBvZiBzcXVhcmVk IGVycm9yIHZhbHVlcyAqLwogICAgIGludDY0X3QgZXJyb3JbNF07CisKKyAgICAvKgorICAgICAq IGJvb2wgb24gd2hldGhlciB0aGlzIHN0cmVhbSBzaG91bGQgYmUgdXRpbGl6ZWQgZm9yIHNwbGl0 dGluZworICAgICAqIHN1YnRpdGxlcyB1dGlsaXppbmcgZml4X3N1Yl9kdXJhdGlvbiBhdCByYW5k b20gYWNjZXNzIHBvaW50cy4KKyAgICAgKi8KKyAgICB1bnNpZ25lZCBpbnQgZml4X3N1Yl9kdXJh dGlvbl9oZWFydGJlYXQ7CiB9IE91dHB1dFN0cmVhbTsKIAogdHlwZWRlZiBzdHJ1Y3QgT3V0cHV0 RmlsZSB7CmRpZmYgLS1naXQgYS9mZnRvb2xzL2ZmbXBlZ19vcHQuYyBiL2ZmdG9vbHMvZmZtcGVn X29wdC5jCmluZGV4IDljODIwYWI3M2YuLjY0YTA4NzQ5YWMgMTAwNjQ0Ci0tLSBhL2ZmdG9vbHMv ZmZtcGVnX29wdC5jCisrKyBiL2ZmdG9vbHMvZmZtcGVnX29wdC5jCkBAIC04Niw2ICs4Niw3IEBA IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBvcHRfbmFtZV9maWx0ZXJzW10gICAgICAgICAgICAg ICAgICAgPSB7ImZpbHRlciIsICJhZiIsCiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X25h bWVfZmlsdGVyX3NjcmlwdHNbXSAgICAgICAgICAgID0geyJmaWx0ZXJfc2NyaXB0IiwgTlVMTH07 CiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X25hbWVfcmVpbml0X2ZpbHRlcnNbXSAgICAg ICAgICAgID0geyJyZWluaXRfZmlsdGVyIiwgTlVMTH07CiBzdGF0aWMgY29uc3QgY2hhciAqY29u c3Qgb3B0X25hbWVfZml4X3N1Yl9kdXJhdGlvbltdICAgICAgICAgID0geyJmaXhfc3ViX2R1cmF0 aW9uIiwgTlVMTH07CitzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X25hbWVfZml4X3N1Yl9k dXJhdGlvbl9oZWFydGJlYXRbXSA9IHsiZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQiLCBOVUxM fTsKIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBvcHRfbmFtZV9jYW52YXNfc2l6ZXNbXSAgICAg ICAgICAgICAgPSB7ImNhbnZhc19zaXplIiwgTlVMTH07CiBzdGF0aWMgY29uc3QgY2hhciAqY29u c3Qgb3B0X25hbWVfcGFzc1tdICAgICAgICAgICAgICAgICAgICAgID0geyJwYXNzIiwgTlVMTH07 CiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X25hbWVfcGFzc2xvZ2ZpbGVzW10gICAgICAg ICAgICAgID0geyJwYXNzbG9nZmlsZSIsIE5VTEx9OwpAQCAtMTYwMCw2ICsxNjAxLDkgQEAgc3Rh dGljIE91dHB1dFN0cmVhbSAqbmV3X291dHB1dF9zdHJlYW0oT3B0aW9uc0NvbnRleHQgKm8sIEFW Rm9ybWF0Q29udGV4dCAqb2MsIGUKICAgICBNQVRDSF9QRVJfU1RSRUFNX09QVChiaXRzX3Blcl9y YXdfc2FtcGxlLCBpLCBvc3QtPmJpdHNfcGVyX3Jhd19zYW1wbGUsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgb2MsIHN0KTsKIAorICAgIE1BVENIX1BFUl9TVFJFQU1fT1BUKGZpeF9zdWJfZHVy YXRpb25faGVhcnRiZWF0LCBpLCBvc3QtPmZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0LAorICAg ICAgICAgICAgICAgICAgICAgICAgIG9jLCBzdCk7CisKICAgICBpZiAob2MtPm9mb3JtYXQtPmZs YWdzICYgQVZGTVRfR0xPQkFMSEVBREVSKQogICAgICAgICBvc3QtPmVuY19jdHgtPmZsYWdzIHw9 IEFWX0NPREVDX0ZMQUdfR0xPQkFMX0hFQURFUjsKIApAQCAtMzc5Myw2ICszNzk3LDExIEBAIGNv bnN0IE9wdGlvbkRlZiBvcHRpb25zW10gPSB7CiAgICAgeyAiYXV0b3NjYWxlIiwgICAgICAgIEhB U19BUkcgfCBPUFRfQk9PTCB8IE9QVF9TUEVDIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAg T1BUX0VYUEVSVCB8IE9QVF9PVVRQVVQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg Lm9mZiA9IE9GRlNFVChhdXRvc2NhbGUpIH0sCiAgICAgICAgICJhdXRvbWF0aWNhbGx5IGluc2Vy dCBhIHNjYWxlIGZpbHRlciBhdCB0aGUgZW5kIG9mIHRoZSBmaWx0ZXIgZ3JhcGgiIH0sCisgICAg eyAiZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQiLCBPUFRfVklERU8gfCBPUFRfQk9PTCB8IE9Q VF9FWFBFUlQgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1BUX1NQRUMg fCBPUFRfT1VUUFVULCAgICAgICAgICAgICAgICAgICAgICAgeyAub2ZmID0gT0ZGU0VUKGZpeF9z dWJfZHVyYXRpb25faGVhcnRiZWF0KSB9LAorICAgICAgICAic2V0IHRoaXMgdmlkZW8gb3V0cHV0 IHN0cmVhbSB0byBiZSBhIGhlYXJ0YmVhdCBzdHJlYW0gZm9yICIKKyAgICAgICAgImZpeF9zdWJf ZHVyYXRpb24sIGFjY29yZGluZyB0byB3aGljaCBzdWJ0aXRsZXMgc2hvdWxkIGJlIHNwbGl0IGF0 ICIKKyAgICAgICAgInJhbmRvbSBhY2Nlc3MgcG9pbnRzIiB9LAogCiAgICAgLyogYXVkaW8gb3B0 aW9ucyAqLwogICAgIHsgImFmcmFtZXMiLCAgICAgICAgT1BUX0FVRElPIHwgSEFTX0FSRyAgfCBP UFRfUEVSRklMRSB8IE9QVF9PVVRQVVQsICAgICAgICAgICB7IC5mdW5jX2FyZyA9IG9wdF9hdWRp b19mcmFtZXMgfSwKLS0gCjIuMzMuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZt cGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwK ClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwt cmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=