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 F122942470 for ; Mon, 19 Sep 2022 09:47:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 43B6968BC7B; Mon, 19 Sep 2022 12:46:20 +0300 (EEST) Received: from shout02.mail.de (shout02.mail.de [62.201.172.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 64DF268BC13 for ; Mon, 19 Sep 2022 12:46:12 +0300 (EEST) Received: from postfix01.mail.de (postfix01.bt.mail.de [10.0.121.125]) by shout02.mail.de (Postfix) with ESMTP id F2FA9A0C0F for ; Mon, 19 Sep 2022 11:46:06 +0200 (CEST) Received: from smtp01.mail.de (smtp01.bt.mail.de [10.0.121.211]) by postfix01.mail.de (Postfix) with ESMTP id DA04B802BB for ; Mon, 19 Sep 2022 11:46:06 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1663580766; bh=bI0c07TkkuYO4msVJI/6v+38eNAjrmjY4Vobj79oIhU=; h=From:To:Subject:Date:Message-Id:From:To:CC:Subject:Reply-To; b=5dkZo6w45vjLzTdTUcpSrGdCxv6IyS2BuRhVzs1gYO9YCOUQi/iVloU6uI5z4z8rF bJE2O1VLs6w94Usca4fmxfoCxRO04eSo7st8tJvWV7r4mxCZshtxNazw7qYBKYtEGe w1wD7QpyCUT0VM318Zu7yH9XicAaQfZsqyoxz4h3b8Cn3F9zbsqkStCok10XCSepg/ Ppa+ZDsMO/QauoAEt/0n4fpkkGPtHQV4lI2BfSIRTTP3XtpOoqeEjv5iacNTPmKwN0 cFAhfCSn0QqcuGGXrwUPCbEZvVR5o3mReTZcak5oFD4qJFyxh1N8ul8dFAdnWdlyMa tnPrES99OiNCQ== Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp01.mail.de (Postfix) with ESMTPSA id 91ADA100107 for ; Mon, 19 Sep 2022 11:46:06 +0200 (CEST) From: Thilo Borgmann To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Sep 2022 11:46:03 +0200 Message-Id: <20220919094604.4645-6-thilo.borgmann@mail.de> In-Reply-To: <20220919094604.4645-1-thilo.borgmann@mail.de> References: <20220919094604.4645-1-thilo.borgmann@mail.de> MIME-Version: 1.0 X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 12663 X-purgate-ID: 154282::1663580766-CD7F95FC-9ED4071B/0/0 Subject: [FFmpeg-devel] [PATCH v4 5/6] ffmpeg: Add display_matrix option 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: RnJvbTogSmFuIEVrc3Ryw7ZtIDxqZWVianBAZ21haWwuY29tPgoKVGhpcyBlbmFibGVzIG92ZXJy aWRpbmcgdGhlIHJvdGF0aW9uIGFzIHdlbGwgYXMgaG9yaXpvbnRhbC92ZXJ0aWNhbApmbGlwIHN0 YXRlIG9mIGEgc3BlY2lmaWMgdmlkZW8gc3RyZWFtIG9uIHRoZSBpbnB1dCBzaWRlLgoKQWRkaXRp b25hbGx5LCBzd2l0Y2ggdGhlIHNpbmd1bGFyIHRlc3QgdGhhdCB3YXMgdXRpbGl6aW5nIHRoZSBy b3RhdGlvbgptZXRhZGF0YSB0byBpbnN0ZWFkIG92ZXJyaWRlIHRoZSBpbnB1dCBkaXNwbGF5IHJv dGF0aW9uLCB0aHVzIGxlYWRpbmcKdG8gdGhlIHNhbWUgcmVzdWx0LgotLS0KIGRvYy9mZm1wZWcu dGV4aSAgICAgICAgICAgICB8ICAxOCArKysrKysKIGZmdG9vbHMvZmZtcGVnLmggICAgICAgICAg ICB8ICAgMiArCiBmZnRvb2xzL2ZmbXBlZ19maWx0ZXIuYyAgICAgfCAgMTMgKysrKwogZmZ0b29s cy9mZm1wZWdfb3B0LmMgICAgICAgIHwgMTIzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFrIHwgICAyICstCiA1IGZpbGVzIGNo YW5nZWQsIDE1NyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L2ZmbXBlZy50ZXhpIGIvZG9jL2ZmbXBlZy50ZXhpCmluZGV4IDQyNDQwZDkzYjQuLmVlODZmYWVk YzggMTAwNjQ0Ci0tLSBhL2RvYy9mZm1wZWcudGV4aQorKysgYi9kb2MvZmZtcGVnLnRleGkKQEAg LTkxMiw2ICs5MTIsMjQgQEAgSWYgdXNlZCB0b2dldGhlciB3aXRoIEBvcHRpb257LXZjb2RlYyBj b3B5fSwgaXQgd2lsbCBhZmZlY3QgdGhlIGFzcGVjdCByYXRpbwogc3RvcmVkIGF0IGNvbnRhaW5l ciBsZXZlbCwgYnV0IG5vdCB0aGUgYXNwZWN0IHJhdGlvIHN0b3JlZCBpbiBlbmNvZGVkCiBmcmFt ZXMsIGlmIGl0IGV4aXN0cy4KIAorQGl0ZW0gLWRpc3BsYXlfbWF0cml4WzpAdmFye3N0cmVhbV9z cGVjaWZpZXJ9XSBAdmFye29wdDE9dmFsMVssb3B0Mj12YWwyXS4uLn0gKEBlbXBoe2lucHV0LHBl ci1zdHJlYW19KQorU2V0IHRoZSB2aWRlbyBkaXNwbGF5IG1hdHJpeCBhY2NvcmRpbmcgdG8gZ2l2 ZW4gb3B0aW9ucy4KK1dlIHN1cHBvcnQgc2NhbGluZywgZmxpcHBpbmcgYW5kIHJvdGF0aW9uLiBU aGUgb3JkZXIgb2YgYXBwbGljYXRpb24gdG8gYW4gSW1hZ2UgaXMgc2NhbGUsIGZsaXAsIHJvdGF0 ZS4KKworQHRhYmxlIEBvcHRpb24KK0BpdGVtIHJvdGF0aW9uPUB2YXJ7bnVtYmVyfQorU2V0IHRo ZSByb3RhdGlvbiB1c2luZyBhIGZsb2F0aW5nIHBvaW50IG51bWJlciB0aGF0IGRlc2NyaWJlcyBh IHB1cmUKK2NvdW50ZXItY2xvY2t3aXNlIHJvdGF0aW9uIGluIGRlZ3JlZXMuCitUaGUgQGNvZGV7 LWF1dG9yb3RhdGV9IGxvZ2ljIHdpbGwgYmUgYWZmZWN0ZWQuCitAaXRlbSBoZmxpcD1AdmFye1sw LDFdfQorQGl0ZW0gdmZsaXA9QHZhcntbMCwxXX0KK1NldCBhIGhvcml6b250YWwgb3IgdmVydGlj YWwgZmxpcC4KK0BpdGVtIGhzY2FsZT1AdmFye251bWJlcn0KK1NldCBhIGhvcml6b250YWwgc2Nh bGluZyBieSBmYWN0b3Igb2YgdGhlIGdpdmVuIGZsb2F0aW5nLXBvaW50IHZhbHVlLgorQGl0ZW0g dnNjYWxlPUB2YXJ7bnVtYmVyfQorU2V0IGEgdmVydGljYWwgc2NhbGluZyBieSBmYWN0b3Igb2Yg dGhlIGdpdmVuIGZsb2F0aW5nLXBvaW50IHZhbHVlLgorQGVuZCB0YWJsZQorCiBAaXRlbSAtdm4g KEBlbXBoe2lucHV0L291dHB1dH0pCiBBcyBhbiBpbnB1dCBvcHRpb24sIGJsb2NrcyBhbGwgdmlk ZW8gc3RyZWFtcyBvZiBhIGZpbGUgZnJvbSBiZWluZyBmaWx0ZXJlZCBvcgogYmVpbmcgYXV0b21h dGljYWxseSBzZWxlY3RlZCBvciBtYXBwZWQgZm9yIGFueSBvdXRwdXQuIFNlZSBAY29kZXstZGlz Y2FyZH0KZGlmZiAtLWdpdCBhL2ZmdG9vbHMvZmZtcGVnLmggYi9mZnRvb2xzL2ZmbXBlZy5oCmlu ZGV4IGVkZTBiMmJkOTYuLjUyNGExZDQxNWEgMTAwNjQ0Ci0tLSBhL2ZmdG9vbHMvZmZtcGVnLmgK KysrIGIvZmZ0b29scy9mZm1wZWcuaApAQCAtMTkzLDYgKzE5Myw4IEBAIHR5cGVkZWYgc3RydWN0 IE9wdGlvbnNDb250ZXh0IHsKICAgICBpbnQgICAgICAgIG5iX2ZvcmNlX2ZwczsKICAgICBTcGVj aWZpZXJPcHQgKmZyYW1lX2FzcGVjdF9yYXRpb3M7CiAgICAgaW50ICAgICAgICBuYl9mcmFtZV9h c3BlY3RfcmF0aW9zOworICAgIFNwZWNpZmllck9wdCAqZGlzcGxheV9tYXRyaXhlczsKKyAgICBp bnQgICAgICAgIG5iX2Rpc3BsYXlfbWF0cml4ZXM7CiAgICAgU3BlY2lmaWVyT3B0ICpyY19vdmVy cmlkZXM7CiAgICAgaW50ICAgICAgICBuYl9yY19vdmVycmlkZXM7CiAgICAgU3BlY2lmaWVyT3B0 ICppbnRyYV9tYXRyaWNlczsKZGlmZiAtLWdpdCBhL2ZmdG9vbHMvZmZtcGVnX2ZpbHRlci5jIGIv ZmZ0b29scy9mZm1wZWdfZmlsdGVyLmMKaW5kZXggN2E1MzA4NDI1ZC4uOGJjYmEwZDNhMiAxMDA2 NDQKLS0tIGEvZmZ0b29scy9mZm1wZWdfZmlsdGVyLmMKKysrIGIvZmZ0b29scy9mZm1wZWdfZmls dGVyLmMKQEAgLTc3OSw5ICs3NzksMjIgQEAgc3RhdGljIGludCBjb25maWd1cmVfaW5wdXRfdmlk ZW9fZmlsdGVyKEZpbHRlckdyYXBoICpmZywgSW5wdXRGaWx0ZXIgKmlmaWx0ZXIsCiAgICAgaWYg KGlzdC0+YXV0b3JvdGF0ZSAmJiAhKGRlc2MtPmZsYWdzICYgQVZfUElYX0ZNVF9GTEFHX0hXQUND RUwpKSB7CiAgICAgICAgIGludDMyX3QgKmRpc3BsYXltYXRyaXggPSBpZmlsdGVyLT5kaXNwbGF5 bWF0cml4OwogICAgICAgICBkb3VibGUgdGhldGE7CisgICAgICAgIGRvdWJsZSBoc2NhbGUgPSAx LjBmOworICAgICAgICBkb3VibGUgdnNjYWxlID0gMS4wZjsKIAogICAgICAgICBpZiAoIWRpc3Bs YXltYXRyaXgpCiAgICAgICAgICAgICBkaXNwbGF5bWF0cml4ID0gKGludDMyX3QgKilhdl9zdHJl YW1fZ2V0X3NpZGVfZGF0YShpc3QtPnN0LCBBVl9QS1RfREFUQV9ESVNQTEFZTUFUUklYLCBOVUxM KTsKKworICAgICAgICBpZiAoZGlzcGxheW1hdHJpeCkgeworICAgICAgICAgICAgaHNjYWxlID0g YXZfZGlzcGxheV9oc2NhbGVfZ2V0KGRpc3BsYXltYXRyaXgpOworICAgICAgICAgICAgdnNjYWxl ID0gYXZfZGlzcGxheV92c2NhbGVfZ2V0KGRpc3BsYXltYXRyaXgpOworICAgICAgICAgICAgaWYg KGhzY2FsZSAhPSAxLjBmIHx8IHZzY2FsZSAhPSAxLjBmKSB7CisgICAgICAgICAgICAgICAgY2hh ciBzY2FsZV9idWZbMTI4XTsKKyAgICAgICAgICAgICAgICBzbnByaW50ZihzY2FsZV9idWYsIHNp emVvZihzY2FsZV9idWYpLCAiJWYqaXc6JWYqaWgiLCBoc2NhbGUsIHZzY2FsZSk7CisgICAgICAg ICAgICAgICAgcmV0ID0gaW5zZXJ0X2ZpbHRlcigmbGFzdF9maWx0ZXIsICZwYWRfaWR4LCAic2Nh bGUiLCBzY2FsZV9idWYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgdGhl dGEgPSBnZXRfcm90YXRpb24oZGlzcGxheW1hdHJpeCk7CiAKICAgICAgICAgaWYgKGZhYnModGhl dGEgLSA5MCkgPCAxLjApIHsKZGlmZiAtLWdpdCBhL2ZmdG9vbHMvZmZtcGVnX29wdC5jIGIvZmZ0 b29scy9mZm1wZWdfb3B0LmMKaW5kZXggYmUxY2Q2NzNmNi4uYmE1NjI2NzQ2MCAxMDA2NDQKLS0t IGEvZmZ0b29scy9mZm1wZWdfb3B0LmMKKysrIGIvZmZ0b29scy9mZm1wZWdfb3B0LmMKQEAgLTIw LDYgKzIwLDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaW5jbHVkZSA8ZmxvYXQuaD4K ICNpbmNsdWRlIDxzdGRpbnQuaD4KIAogI2lmIEhBVkVfU1lTX1JFU09VUkNFX0gKQEAgLTQ1LDYg KzQ2LDcgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvYXZ1dGlsLmgiCiAjaW5jbHVkZSAibGliYXZ1 dGlsL2JwcmludC5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9jaGFubmVsX2xheW91dC5oIgorI2lu Y2x1ZGUgImxpYmF2dXRpbC9kaXNwbGF5LmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2dldGVudl91 dGY4LmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2ludHJlYWR3cml0ZS5oIgogI2luY2x1ZGUgImxp YmF2dXRpbC9maWZvLmgiCkBAIC0xMDEsNiArMTAzLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IG9wdF9uYW1lX2ZvcmNlZF9rZXlfZnJhbWVzW10gICAgICAgICA9IHsiZm9yY2VkX2tleV9m cmEKIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBvcHRfbmFtZV9mcHNfbW9kZVtdICAgICAgICAg ICAgICAgICAgPSB7ImZwc19tb2RlIiwgTlVMTH07CiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg b3B0X25hbWVfZm9yY2VfZnBzW10gICAgICAgICAgICAgICAgID0geyJmb3JjZV9mcHMiLCBOVUxM fTsKIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBvcHRfbmFtZV9mcmFtZV9hc3BlY3RfcmF0aW9z W10gICAgICAgPSB7ImFzcGVjdCIsIE5VTEx9Oworc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9w dF9uYW1lX2Rpc3BsYXlfbWF0cml4ZXNbXSAgICAgICAgICA9IHsiZGlzcGxheV9tYXRyaXgiLCBO VUxMfTsKIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBvcHRfbmFtZV9yY19vdmVycmlkZXNbXSAg ICAgICAgICAgICAgPSB7InJjX292ZXJyaWRlIiwgTlVMTH07CiBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3Qgb3B0X25hbWVfaW50cmFfbWF0cmljZXNbXSAgICAgICAgICAgID0geyJpbnRyYV9tYXRy aXgiLCBOVUxMfTsKIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBvcHRfbmFtZV9pbnRlcl9tYXRy aWNlc1tdICAgICAgICAgICAgPSB7ImludGVyX21hdHJpeCIsIE5VTEx9OwpAQCAtMTI2LDYgKzEy OSwzOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X25hbWVfdGltZV9iYXNlc1tdICAg ICAgICAgICAgICAgID0geyJ0aW1lX2Jhc2UiLCBOVQogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IG9wdF9uYW1lX2VuY190aW1lX2Jhc2VzW10gICAgICAgICAgICA9IHsiZW5jX3RpbWVfYmFzZSIs IE5VTEx9Owogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX2JpdHNfcGVyX3Jhd19z YW1wbGVbXSAgICAgICA9IHsiYml0c19wZXJfcmF3X3NhbXBsZSIsIE5VTEx9OwogCisvLyBYWFgg dGhpcyBzaG91bGQgcHJvYmFibHkgZ28gaW50byBhIHNlcGVyYXRlIGZpbGUgPG5hbWU+X2FyZ3Mu YyBhbmQgI2luY2x1ZGVkIGhlcmUKKyAgICBzdHJ1Y3QgRGlzcGxheU1hdHJpeCB7CisgICAgICAg IGNvbnN0IEFWQ2xhc3MgKmNsYXNzOworICAgICAgICBkb3VibGUgIHJvdGF0aW9uOworICAgICAg ICBpbnQgICAgIGhmbGlwOworICAgICAgICBpbnQgICAgIHZmbGlwOworICAgICAgICBkb3VibGUg IGhzY2FsZTsKKyAgICAgICAgZG91YmxlICB2c2NhbGU7CisgICAgfTsKKyNkZWZpbmUgT0ZGU0VU KHgpIG9mZnNldG9mKHN0cnVjdCBEaXNwbGF5TWF0cml4LCB4KQorICAgIHN0YXRpYyBjb25zdCBB Vk9wdGlvbiBkaXNwbGF5X21hdHJpeF9hcmdzW10gPSB7CisgICAgICAgIHsgInJvdGF0aW9uIiwg InNldCByb3RhdGlvbiIsIE9GRlNFVChyb3RhdGlvbiksIEFWX09QVF9UWVBFX0RPVUJMRSwKKyAg ICAgICAgICAgIHsgLmRibCA9IERCTF9NQVggfSwgLShEQkxfTUFYKSwgREJMX01BWCAtIDEuMGYs IEFWX09QVF9GTEFHX0FSR1VNRU5UfSwKKyAgICAgICAgeyAiaGZsaXAiLCAgICAic2V0IGhmbGlw IiwgT0ZGU0VUKGhmbGlwKSwgICAgQVZfT1BUX1RZUEVfQk9PTCwKKyAgICAgICAgICAgIHsgLmk2 NCA9IC0xIH0sIDAsIDEsIEFWX09QVF9GTEFHX0FSR1VNRU5UfSwKKyAgICAgICAgeyAidmZsaXAi LCAgICAic2V0IHZmbGlwIiwgT0ZGU0VUKHZmbGlwKSwgICAgQVZfT1BUX1RZUEVfQk9PTCwKKyAg ICAgICAgICAgIHsgLmk2NCA9IC0xIH0sIDAsIDEsIEFWX09QVF9GTEFHX0FSR1VNRU5UfSwKKyAg ICAgICAgeyAiaHNjYWxlIiwgInNldCBob3Jpem9udGFsIHNjYWxlIGZhY3RvciIsIE9GRlNFVCho c2NhbGUpLCBBVl9PUFRfVFlQRV9ET1VCTEUsCisgICAgICAgICAgICB7IC5kYmwgPSBEQkxfTUFY IH0sIDAuMGYsIERCTF9NQVggLSAxLjBmLCBBVl9PUFRfRkxBR19BUkdVTUVOVH0sCisgICAgICAg IHsgInZzY2FsZSIsICJzZXQgdmVydGljYWwgc2NhbGUgZmFjdG9yIiwgT0ZGU0VUKHZzY2FsZSks IEFWX09QVF9UWVBFX0RPVUJMRSwKKyAgICAgICAgICAgIHsgLmRibCA9IERCTF9NQVggfSwgMC4w ZiwgREJMX01BWCAtIDEuMGYsIEFWX09QVF9GTEFHX0FSR1VNRU5UfSwKKyAgICAgICAgeyBOVUxM IH0sCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3QgQVZDbGFzcyBjbGFzc19kaXNwbGF5X21hdHJp eF9hcmdzID0geworICAgICAgICAuY2xhc3NfbmFtZSA9ICJkaXNwbGF5X21hdHJpeF9hcmdzIiwK KyAgICAgICAgLml0ZW1fbmFtZSAgPSBhdl9kZWZhdWx0X2l0ZW1fbmFtZSwKKyAgICAgICAgLm9w dGlvbiAgICAgPSBkaXNwbGF5X21hdHJpeF9hcmdzLAorICAgICAgICAudmVyc2lvbiAgICA9IExJ QkFWVVRJTF9WRVJTSU9OX0lOVCwKKyAgICB9OworI3VuZGVmIE9GRlNFVAorLy8gWFhYCisKICNk ZWZpbmUgV0FSTl9NVUxUSVBMRV9PUFRfVVNBR0UobmFtZSwgdHlwZSwgc28sIHN0KVwKIHtcCiAg ICAgY2hhciBuYW1lc3RyWzEyOF0gPSAiIjtcCkBAIC04MjQsNiArODU5LDg1IEBAIHN0YXRpYyBp bnQgb3B0X3JlY29yZGluZ190aW1lc3RhbXAodm9pZCAqb3B0Y3R4LCBjb25zdCBjaGFyICpvcHQs IGNvbnN0IGNoYXIgKmFyCiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIGFkZF9kaXNw bGF5X21hdHJpeF90b19zdHJlYW0oT3B0aW9uc0NvbnRleHQgKm8sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFWRm9ybWF0Q29udGV4dCAqY3R4LCBBVlN0cmVhbSAq c3QpCit7CisgICAgaW50IGhmbGlwX3NldCA9IDAsIHZmbGlwX3NldCA9IDAsIGRpc3BsYXlfcm90 YXRpb25fc2V0ID0gMCwgaHNjYWxlX3NldCA9IDAsIHZzY2FsZV9zZXQgPSAwOworICAgIHVpbnQ4 X3QgKmJ1ZiA9IE5VTEw7CisKKyAgICBzdHJ1Y3QgRGlzcGxheU1hdHJpeCB0ZXN0X2FyZ3MgPSB7 CisgICAgICAgIC5jbGFzcyAgICA9ICZjbGFzc19kaXNwbGF5X21hdHJpeF9hcmdzLAorICAgICAg ICAucm90YXRpb24gPSBEQkxfTUFYLAorICAgICAgICAuaGZsaXAgICAgPSAtMSwKKyAgICAgICAg LnZmbGlwICAgID0gLTEsCisgICAgICAgIC5oc2NhbGUgICAgPSBEQkxfTUFYLAorICAgICAgICAu dnNjYWxlICAgID0gREJMX01BWCwKKyAgICB9OworCisgICAgQVZEaWN0aW9uYXJ5ICpnbG9iYWxf YXJncyA9IE5VTEw7CisgICAgQVZEaWN0aW9uYXJ5ICpsb2NhbF9hcmdzICA9IE5VTEw7CisgICAg QVZEaWN0aW9uYXJ5RW50cnkgKmVuID0gTlVMTDsKKworICAgIE1BVENIX1BFUl9TVFJFQU1fT1BU KGRpc3BsYXlfbWF0cml4ZXMsIGRpY3QsIGdsb2JhbF9hcmdzLCBjdHgsIHN0KTsKKworICAgIGlm ICghZ2xvYmFsX2FyZ3MpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIG1ha2UgYSBjb3B5IG9m IHRoZSBkaWN0IHNvIGl0IGRvZXNuJ3QgZ2V0IGZyZWVkIGZyb20gdW5kZXJuZWF0aCB1cworICAg IGlmIChhdl9kaWN0X2NvcHkoJmxvY2FsX2FyZ3MsIGdsb2JhbF9hcmdzLCAwKSA8IDApIHsKKyAg ICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19GQVRBTCwKKyAgICAgICAgICAgICAgICJGYWlsZWQg dG8gY29weSBhcmd1bWVudCBkaWN0IGZvciBkaXNwbGF5IG1hdHJpeCFcbiIpOworICAgICAgICBl eGl0X3Byb2dyYW0oMSk7CisgICAgfQorCisgICAgaWYgKGF2X29wdF9zZXRfZGljdDIoJnRlc3Rf YXJncywgJmxvY2FsX2FyZ3MsIDApIDwgMCkgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9H X0ZBVEFMLAorICAgICAgICAgICAgICAgIkZhaWxlZCB0byBzZXQgb3B0aW9ucyBmb3IgYSBkaXNw bGF5IG1hdHJpeCFcbiIpOworICAgICAgICBleGl0X3Byb2dyYW0oMSk7CisgICAgfQorCisgICAg d2hpbGUgKChlbiA9IGF2X2RpY3RfZ2V0KGxvY2FsX2FyZ3MsICIiLCBlbiwgQVZfRElDVF9JR05P UkVfU1VGRklYKSkpIHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19GQVRBTCwKKyAgICAg ICAgICAgICAgICJVbmtub3duIG9wdGlvbj12YWx1ZSBwYWlyIGZvciBkaXNwbGF5IG1hdHJpeDog IgorICAgICAgICAgICAgICAgImtleTogJyVzJywgdmFsdWU6ICclcychXG4iLAorICAgICAgICAg ICAgICAgZW4tPmtleSwgZW4tPnZhbHVlKTsKKyAgICB9CisKKyAgICBpZiAoYXZfZGljdF9jb3Vu dChsb2NhbF9hcmdzKSkgeworICAgICAgICBleGl0X3Byb2dyYW0oMSk7CisgICAgfQorCisgICAg YXZfZGljdF9mcmVlKCZsb2NhbF9hcmdzKTsKKworICAgIGRpc3BsYXlfcm90YXRpb25fc2V0ID0g dGVzdF9hcmdzLnJvdGF0aW9uICE9IERCTF9NQVg7CisgICAgaGZsaXBfc2V0ICAgICAgICAgICAg PSB0ZXN0X2FyZ3MuaGZsaXAgIT0gLTE7CisgICAgdmZsaXBfc2V0ICAgICAgICAgICAgPSB0ZXN0 X2FyZ3MudmZsaXAgIT0gLTE7CisgICAgaHNjYWxlX3NldCAgICAgICAgICAgPSB0ZXN0X2FyZ3Mu aHNjYWxlICE9IERCTF9NQVg7CisgICAgdnNjYWxlX3NldCAgICAgICAgICAgPSB0ZXN0X2FyZ3Mu dnNjYWxlICE9IERCTF9NQVg7CisKKyAgICBpZiAoIWRpc3BsYXlfcm90YXRpb25fc2V0ICYmICFo ZmxpcF9zZXQgJiYgIXZmbGlwX3NldCAmJgorICAgICAgICAhaHNjYWxlX3NldCAmJiAhdnNjYWxl X3NldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCEoYnVmID0gYXZfc3RyZWFtX25ld19z aWRlX2RhdGEoc3QsIEFWX1BLVF9EQVRBX0RJU1BMQVlNQVRSSVgsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGludDMyX3QpICogOSkpKSB7CisgICAgICAg IGF2X2xvZyhOVUxMLCBBVl9MT0dfRkFUQUwsICJGYWlsZWQgdG8gZ2VuZXJhdGUgYSBkaXNwbGF5 IG1hdHJpeCFcbiIpOworICAgICAgICBleGl0X3Byb2dyYW0oMSk7CisgICAgfQorCisgICAgYXZf ZGlzcGxheV9yb3RhdGlvbl9zZXQoKGludDMyX3QgKilidWYsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGlzcGxheV9yb3RhdGlvbl9zZXQgPyAtKHRlc3RfYXJncy5yb3RhdGlvbikgOgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTAuMGYp OworICAgIGF2X2Rpc3BsYXlfbWF0cml4X2ZsaXAoKGludDMyX3QgKilidWYsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBoZmxpcF9zZXQgPyB0ZXN0X2FyZ3MuaGZsaXAgOiAwLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgdmZsaXBfc2V0ID8gdGVzdF9hcmdzLnZmbGlwIDogMCk7CisK KyAgICBhdl9kaXNwbGF5X21hdHJpeF9zY2FsZSgoaW50MzJfdCAqKWJ1ZiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBoc2NhbGVfc2V0ID8gdGVzdF9hcmdzLmhzY2FsZSA6IDEuMGYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdnNjYWxlX3NldCA/IHRlc3RfYXJncy52c2NhbGUg OiAxLjBmKTsKK30KKworCiBzdGF0aWMgY29uc3QgQVZDb2RlYyAqZmluZF9jb2RlY19vcl9kaWUo Y29uc3QgY2hhciAqbmFtZSwgZW51bSBBVk1lZGlhVHlwZSB0eXBlLCBpbnQgZW5jb2RlcikKIHsK ICAgICBjb25zdCBBVkNvZGVjRGVzY3JpcHRvciAqZGVzYzsKQEAgLTk1OCw2ICsxMDcyLDggQEAg c3RhdGljIHZvaWQgYWRkX2lucHV0X3N0cmVhbXMoT3B0aW9uc0NvbnRleHQgKm8sIEFWRm9ybWF0 Q29udGV4dCAqaWMpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoc3QtPmNvZGVjcGFyLT5jb2Rl Y190eXBlID09IEFWTUVESUFfVFlQRV9WSURFTykgeworICAgICAgICAgICAgYWRkX2Rpc3BsYXlf bWF0cml4X3RvX3N0cmVhbShvLCBpYywgc3QpOworCiAgICAgICAgICAgICBNQVRDSF9QRVJfU1RS RUFNX09QVChod2FjY2Vscywgc3RyLCBod2FjY2VsLCBpYywgc3QpOwogICAgICAgICAgICAgTUFU Q0hfUEVSX1NUUkVBTV9PUFQoaHdhY2NlbF9vdXRwdXRfZm9ybWF0cywgc3RyLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaHdhY2NlbF9vdXRwdXRfZm9ybWF0LCBpYywgc3QpOwpA QCAtMTg4Myw2ICsxOTk5LDggQEAgc3RhdGljIE91dHB1dFN0cmVhbSAqbmV3X3ZpZGVvX3N0cmVh bShPcHRpb25zQ29udGV4dCAqbywgQVZGb3JtYXRDb250ZXh0ICpvYywgaW4KICAgICAgICAgb3N0 LT5mcmFtZV9hc3BlY3RfcmF0aW8gPSBxOwogICAgIH0KIAorICAgIGFkZF9kaXNwbGF5X21hdHJp eF90b19zdHJlYW0obywgb2MsIHN0KTsKKwogICAgIE1BVENIX1BFUl9TVFJFQU1fT1BUKGZpbHRl cl9zY3JpcHRzLCBzdHIsIG9zdC0+ZmlsdGVyc19zY3JpcHQsIG9jLCBzdCk7CiAgICAgTUFUQ0hf UEVSX1NUUkVBTV9PUFQoZmlsdGVycywgICAgICAgIHN0ciwgb3N0LT5maWx0ZXJzLCAgICAgICAg b2MsIHN0KTsKIApAQCAtNDA0NCw2ICs0MTYyLDExIEBAIGNvbnN0IE9wdGlvbkRlZiBvcHRpb25z W10gPSB7CiAgICAgeyAiYXNwZWN0IiwgICAgICAgT1BUX1ZJREVPIHwgSEFTX0FSRyAgfCBPUFRf U1RSSU5HIHwgT1BUX1NQRUMgfAogICAgICAgICAgICAgICAgICAgICAgIE9QVF9PVVRQVVQsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAub2ZmID0gT0ZG U0VUKGZyYW1lX2FzcGVjdF9yYXRpb3MpIH0sCiAgICAgICAgICJzZXQgYXNwZWN0IHJhdGlvICg0 OjMsIDE2Ojkgb3IgMS4zMzMzLCAxLjc3NzcpIiwgImFzcGVjdCIgfSwKKyAgICB7ICJkaXNwbGF5 X21hdHJpeCIsIE9QVF9WSURFTyB8IEhBU19BUkcgfCBPUFRfRElDVCB8IE9QVF9TUEVDIHwKKyAg ICAgICAgICAgICAgICAgICAgICAgIE9QVF9JTlBVVCwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeyAub2ZmID0gT0ZGU0VUKGRpc3BsYXlfbWF0cml4ZXMpIH0s CisgICAgICAgICJkZWZpbmUgYSBkaXNwbGF5IG1hdHJpeCB3aXRoIHJvdGF0aW9uLCBhbmQvb3Ig aG9yaXpvbnRhbC92ZXJ0aWNhbCAiCisgICAgICAgICJmbGlwL3NjYWxlIGZvciBzdHJlYW0ocyki LAorICAgICAgICAiYXJndW1lbnRzIiwgJmNsYXNzX2Rpc3BsYXlfbWF0cml4X2FyZ3MgfSwKICAg ICB7ICJwaXhfZm10IiwgICAgICBPUFRfVklERU8gfCBIQVNfQVJHIHwgT1BUX0VYUEVSVCAgfCBP UFRfU1RSSU5HIHwgT1BUX1NQRUMgfAogICAgICAgICAgICAgICAgICAgICAgIE9QVF9JTlBVVCB8 IE9QVF9PVVRQVVQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAub2ZmID0g T0ZGU0VUKGZyYW1lX3BpeF9mbXRzKSB9LAogICAgICAgICAic2V0IHBpeGVsIGZvcm1hdCIsICJm b3JtYXQiIH0sCmRpZmYgLS1naXQgYS90ZXN0cy9mYXRlL2ZpbHRlci12aWRlby5tYWsgYi90ZXN0 cy9mYXRlL2ZpbHRlci12aWRlby5tYWsKaW5kZXggMzcyYzcwYmJhNy4uNzYzMzkwZWE1MSAxMDA2 NDQKLS0tIGEvdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFrCisrKyBiL3Rlc3RzL2ZhdGUvZmls dGVyLXZpZGVvLm1hawpAQCAtNjkxLDcgKzY5MSw3IEBAIGZhdGUtZmlsdGVyLW1ldGFkYXRhLWF2 Zi1hcGhhc2UtbWV0ZXItb3V0LW9mLXBoYXNlOiBTUkMgPSAkKFRBUkdFVF9TQU1QTEVTKS9maWx0 CiBmYXRlLWZpbHRlci1tZXRhZGF0YS1hdmYtYXBoYXNlLW1ldGVyLW91dC1vZi1waGFzZTogQ01E ID0gcnVuICQoRklMVEVSX01FVEFEQVRBX0NPTU1BTkQpICJhbW92aWU9JyQoU1JDKScsYXBoYXNl bWV0ZXI9dmlkZW89MCIKIAogRkFURV9GSUxURVJfU0FNUExFUy0kKGNhbGwgVFJBTlNDT0RFLCBS QVdWSURFTyBIMjY0LCBNT1YsIEFSRVNBTVBMRV9GSUxURVIgIEFBQ19GSVhFRF9ERUNPREVSKSAr PSBmYXRlLWZpbHRlci1tZXRhLTQ1NjAtcm90YXRlMAotZmF0ZS1maWx0ZXItbWV0YS00NTYwLXJv dGF0ZTA6IENNRCA9IHRyYW5zY29kZSBtb3YgJChUQVJHRVRfU0FNUExFUykvZmlsdGVyL3NhbXBs ZS1pbi1pc3N1ZS01MDUubW92IG1vdiAiLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTAi ICItYWYgYXJlc2FtcGxlIiAiIiAiIiAiLWZsYWdzICtiaXRleGFjdCAtYzphIGFhY19maXhlZCIK K2ZhdGUtZmlsdGVyLW1ldGEtNDU2MC1yb3RhdGUwOiBDTUQgPSB0cmFuc2NvZGUgIm1vdiAtZGlz cGxheV9tYXRyaXg6djowIHJvdGF0aW9uPTAiICQoVEFSR0VUX1NBTVBMRVMpL2ZpbHRlci9zYW1w bGUtaW4taXNzdWUtNTA1Lm1vdiBtb3YgIi1jIGNvcHkiICItYWYgYXJlc2FtcGxlIiAiIiAiIiAi LWZsYWdzICtiaXRleGFjdCAtYzphIGFhY19maXhlZCIKIAogRkFURV9GSUxURVJfQ01QX01FVEFE QVRBLSQoQ09ORklHX0JMT0NLREVURUNUX0ZJTFRFUikgKz0gZmF0ZS1maWx0ZXItcmVmY21wLWJs b2NrZGV0ZWN0LXl1dgogZmF0ZS1maWx0ZXItcmVmY21wLWJsb2NrZGV0ZWN0LXl1djogQ01EID0g Y21wX21ldGFkYXRhIGJsb2NrZGV0ZWN0IHl1djQyMHAgMC4wMTUKLS0gCjIuMjAuMSAoQXBwbGUg R2l0LTExNykKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6 Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmli ZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVn Lm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K