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 3BD0A45516 for ; Thu, 2 Mar 2023 21:43:42 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CCEAC68B43D; Thu, 2 Mar 2023 23:43:38 +0200 (EET) Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 315C168AD5C for ; Thu, 2 Mar 2023 23:43:33 +0200 (EET) Received: by mail-qv1-f43.google.com with SMTP id ev13so496369qvb.10 for ; Thu, 02 Mar 2023 13:43:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vimeo.com; s=google; h=content-transfer-encoding:content-language:to:subject:from :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=MimT6bbJTWDFV8UqpcrzadR/ubsfzYq3/PCpBOdqN4E=; b=UInpVpx1Gm9dPmT9bp8cwUpQgS3YtWaIxwlD1hSpsGAb50YDlinVWlaIIhtoe6MGY5 w8v7grgbBTdyPAyFMGl2cBAmyBYJg/BZoYOajiR1S0eAMjGje0svkDkZNcPvv0faYG/f ybt5l/cFPyBvieIJG/waV9vnJcvK6xe9ouVoQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:to:subject:from :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=MimT6bbJTWDFV8UqpcrzadR/ubsfzYq3/PCpBOdqN4E=; b=tSKwMJdivoN8XJi90zUQD3Oxrcz2XfpKLeZY/UdPeuATGrZtaiSUwJMPPwTNr6RLzM INjNnTUbA4IK5ZC7OzX5AvMiye53sYMNchDmPEZmv7PC/E8ZMeLXXTGopdfS2ntqVhEV eYZyB2Bi3Hq4N5TAKXmar658PvCA2+WUxM5gxQFpDMlmJzp6SHGFkqaOoo4o8HyaiSvL vViLXl8SrfWE+N3UcEQD8C/5Us/6R06bAFHr9eLimlBNn5O/X+U+AOCxNLwhcSjrB/i0 PcRtzqgH9LBTX0O7DuRHDAQT14wrjM79KRX5TVwtDgBX9iOcAft+eR+NoX6tudrSCIR5 XPWg== X-Gm-Message-State: AO0yUKWI0brnkDRvf2+t5a7VUTuZXjd9+5bEak5+XhpHKC71AY2qd0Ky n0kNMHdS0Aca6C6zrylQecruumRPBMULcCq++aE= X-Google-Smtp-Source: AK7set+Vj3c06CzCAy/EYDakkg8XrTg0LQf67o+dcHt/fh2x5DhuwQdb0Q0GO8GO3QCsYzK445ABEA== X-Received: by 2002:a05:6214:21a5:b0:56e:9f05:6278 with SMTP id t5-20020a05621421a500b0056e9f056278mr20292023qvc.33.1677793410767; Thu, 02 Mar 2023 13:43:30 -0800 (PST) Received: from ?IPV6:2600:4041:6c:7000:1f01:20c:8ba9:815b? ([2600:4041:6c:7000:1f01:20c:8ba9:815b]) by smtp.gmail.com with ESMTPSA id 136-20020a37088e000000b00742a252ba06sm399271qki.135.2023.03.02.13.43.30 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 02 Mar 2023 13:43:30 -0800 (PST) Message-ID: <3bd88490-9f9f-39e0-756e-9d15d2e78d88@vimeo.com> Date: Thu, 2 Mar 2023 16:43:29 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 From: =?UTF-8?Q?Rapha=c3=abl_Zumer?= To: ffmpeg-devel@ffmpeg.org Content-Language: en-US, fr-FR Subject: [FFmpeg-devel] [PATCH 2/2] avutil: add HDR10+ dynamic metadata serialization function 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: Rml4ZWQgYnJhY2Ugc3R5bGUgYW5kIG1vdmVkIGlubGluZSBidWZmZXIgc2l6ZSBjYWxjdWxhdGlv biBjb21tZW50cyB0byBhIHNpbmdsZSBibG9jayBhdCB0aGUgdG9wLgoKClNpZ25lZC1vZmYtYnk6 IFJhcGhhw6tsIFp1bWVyIDxyenVtZXJAdGViYWtvLm5ldD4KLS0tCiBsaWJhdnV0aWwvaGRyX2R5 bmFtaWNfbWV0YWRhdGEuYyB8IDE0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBs aWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaCB8ICAxMSArKysKIGxpYmF2dXRpbC92ZXJz aW9uLmggICAgICAgICAgICAgIHwgICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDE1NCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2hkcl9keW5hbWlj X21ldGFkYXRhLmMgYi9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuYwppbmRleCA5OGYz OTliMDMyLi4yNGRkM2RhYjJkIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0 YWRhdGEuYworKysgYi9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuYwpAQCAtMjI1LDMg KzIyNSwxNDUgQEAgaW50IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUoQVZEeW5hbWljSERS UGx1cyAqcywgY29uc3QgdWludDhfdCAqZGF0YSwKIAogICAgIHJldHVybiAwOwogfQorCitBVkJ1 ZmZlclJlZiAqYXZfZHluYW1pY19oZHJfcGx1c190b190MzUoQVZEeW5hbWljSERSUGx1cyAqcykK K3sKKyAgICBBVkJ1ZmZlclJlZiAqYnVmOworICAgIHNpemVfdCBzaXplX2JpdHMsIHNpemVfYnl0 ZXM7CisgICAgUHV0Qml0Q29udGV4dCBwYmMsICpwYiA9ICZwYmM7CisKKyAgICBpZiAoIXMpCisg ICAgICAgIHJldHVybiBOVUxMOworCisgICAgLyoqCisgICAgICogQnVmZmVyIHNpemUgcGVyIENU QS04NjEtSCBwLjI1My0yNTQ6CisgICAgICogNDggYml0cyBmb3IgdGhlIGhlYWRlciAoNTYgbWlu dXMgZXhjbHVkZWQgOC1iaXQgY291bnRyeSBjb2RlKQorICAgICAqIDIgYml0cyBmb3IgbnVtX3dp bmRvd3MKKyAgICAgKiA5MzcgYml0cyBmb3Igd2luZG93IGdlb21ldHJ5LCBmb3IgZWFjaCB3aW5k b3cgYWJvdmUgMQorICAgICAqIDI3IGJpdHMgZm9yIHRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X21h eGltdW1fbHVtaW5hbmNlCisgICAgICogMS0zODU1IGJpdHMgZm9yIHRhcmdldGVkIHN5c3RlbSBk aXNwbGF5IHBlYWsgbHVtaW5hbmNlIGluZm9ybWF0aW9uCisgICAgICogMC00NDIgYml0cyBmb3Ig aW50cmEtd2luZG93IHBpeGVsIGRpc3RyaWJ1dGlvbiBpbmZvcm1hdGlvbgorICAgICAqIDEtMzg1 NSBiaXRzIGZvciBtYXN0ZXJpbmcgZGlzcGxheSBwZWFrIGx1bWluYW5jZSBpbmZvcm1hdGlvbgor ICAgICAqIDAtNTM3IGJpdHMgZm9yIHBlci13aW5kb3cgdG9uZW1hcHBpbmcgaW5mb3JtYXRpb24K KyAgICAgKiAwLTIxIGJpdHMgZm9yIHBlci13aW5kb3cgY29sb3Igc2F0dXJhdGlvbiBtYXBwaW5n IGluZm9ybWF0aW9uCisgICAgICovCisgICAgc2l6ZV9iaXRzID0gNDggKworICAgICAgICAyICsK KyAgICAgICAgRkZNQVgoKHMtPm51bV93aW5kb3dzIC0gMSksIDApICogOTM3ICsKKyAgICAgICAg MjcgKworICAgICAgICAxICsgKHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFr X2x1bWluYW5jZV9mbGFnID8gMTAgKworICAgICAgICAgICAgcy0+bnVtX3Jvd3NfdGFyZ2V0ZWRf c3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICoKKyAgICAgICAgICAgIHMtPm51 bV9jb2xzX3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSAqIDQg OiAwKSArCisgICAgICAgIHMtPm51bV93aW5kb3dzICogODI7CisKKyAgICBmb3IgKGludCB3ID0g MDsgdyA8IHMtPm51bV93aW5kb3dzOyB3KyspCisgICAgICAgIHNpemVfYml0cyArPSBzLT5wYXJh bXNbd10ubnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXMgKiAyNDsKKworICAgIHNp emVfYml0cyArPSAxICsgKHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5j ZV9mbGFnID8gMTAgKworICAgICAgICBzLT5udW1fcm93c19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1 YWxfcGVha19sdW1pbmFuY2UgKgorICAgICAgICBzLT5udW1fY29sc19tYXN0ZXJpbmdfZGlzcGxh eV9hY3R1YWxfcGVha19sdW1pbmFuY2UgKiA0IDogMCkgKworICAgICAgICBzLT5udW1fd2luZG93 cyAqIDE7CisKKyAgICBmb3IgKGludCB3ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsK KyAgICAgICAgaWYgKHMtPnBhcmFtc1t3XS50b25lX21hcHBpbmdfZmxhZykKKyAgICAgICAgICAg IHNpemVfYml0cyArPSAyOCArIHMtPnBhcmFtc1t3XS5udW1fYmV6aWVyX2N1cnZlX2FuY2hvcnMg KiAxMDsKKyAgICB9CisKKyAgICBzaXplX2JpdHMgKz0gcy0+bnVtX3dpbmRvd3MgKiAxOworICAg IGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAgICBpZiAo cy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRpb25fbWFwcGluZ19mbGFnKQorICAgICAgICAgICAg c2l6ZV9iaXRzICs9IDY7CisgICAgfQorCisgICAgc2l6ZV9ieXRlcyA9IChzaXplX2JpdHMgKyA3 KSAvIDg7CisKKyAgICBidWYgPSBhdl9idWZmZXJfYWxsb2Moc2l6ZV9ieXRlcyk7CisgICAgaWYg KCFidWYpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaW5pdF9wdXRfYml0cyhwYiwgYnVm LT5kYXRhLCBzaXplX2J5dGVzKTsKKworICAgIC8vIGl0dV90X3QzNV9jb3VudHJ5X2NvZGUgc2hh bGwgYmUgMHhCNSAoVVNBKSAoZXhjbHVkZWQgZnJvbSB0aGUgcGF5bG9hZCkKKyAgICAvLyBpdHVf dF90MzVfdGVybWluYWxfcHJvdmlkZXJfY29kZSBzaGFsbCBiZSAweDAwM0MKKyAgICBwdXRfYml0 cyhwYiwgMTYsIDB4MDAzQyk7CisgICAgLy8gaXR1X3RfdDM1X3Rlcm1pbmFsX3Byb3ZpZGVyX29y aWVudGVkX2NvZGUgaXMgc2V0IHRvIFNUIDIwOTQtNDAKKyAgICBwdXRfYml0cyhwYiwgMTYsIDB4 MDAwMSk7CisgICAgLy8gYXBwbGljYXRpb25faWRlbnRpZmllciBzaGFsbCBiZSBzZXQgdG8gNAor ICAgIHB1dF9iaXRzKHBiLCA4LCA0KTsKKyAgICAvLyBhcHBsaWNhdGlvbl9tb2RlIGlzIHNldCB0 byBBcHBsaWNhdGlvbiBWZXJzaW9uIDEKKyAgICBwdXRfYml0cyhwYiwgOCwgMSk7CisKKyAgICAv LyBQYXlsb2FkIGFzIHBlciBDVEEtODYxLUggcC4yNTMtMjU0CisgICAgcHV0X2JpdHMocGIsIDIs IHMtPm51bV93aW5kb3dzKTsKKworICAgIGZvciAoaW50IHcgPSAxOyB3IDwgcy0+bnVtX3dpbmRv d3M7IHcrKykgeworICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS53aW5kb3df dXBwZXJfbGVmdF9jb3JuZXJfeC5udW0gLyBzLT5wYXJhbXNbd10ud2luZG93X3VwcGVyX2xlZnRf Y29ybmVyX3guZGVuKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10ud2lu ZG93X3VwcGVyX2xlZnRfY29ybmVyX3kubnVtIC8gcy0+cGFyYW1zW3ddLndpbmRvd191cHBlcl9s ZWZ0X2Nvcm5lcl95LmRlbik7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3dd LndpbmRvd19sb3dlcl9yaWdodF9jb3JuZXJfeC5udW0gLyBzLT5wYXJhbXNbd10ud2luZG93X2xv d2VyX3JpZ2h0X2Nvcm5lcl94LmRlbik7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFy YW1zW3ddLndpbmRvd19sb3dlcl9yaWdodF9jb3JuZXJfeS5udW0gLyBzLT5wYXJhbXNbd10ud2lu ZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl95LmRlbik7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwg cy0+cGFyYW1zW3ddLmNlbnRlcl9vZl9lbGxpcHNlX3gpOworICAgICAgICBwdXRfYml0cyhwYiwg MTYsIHMtPnBhcmFtc1t3XS5jZW50ZXJfb2ZfZWxsaXBzZV95KTsKKyAgICAgICAgcHV0X2JpdHMo cGIsIDgsIHMtPnBhcmFtc1t3XS5yb3RhdGlvbl9hbmdsZSk7CisgICAgICAgIHB1dF9iaXRzKHBi LCAxNiwgcy0+cGFyYW1zW3ddLnNlbWltYWpvcl9heGlzX2ludGVybmFsX2VsbGlwc2UpOworICAg ICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS5zZW1pbWFqb3JfYXhpc19leHRlcm5h bF9lbGxpcHNlKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uc2VtaW1p bm9yX2F4aXNfZXh0ZXJuYWxfZWxsaXBzZSk7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5w YXJhbXNbd10ub3ZlcmxhcF9wcm9jZXNzX29wdGlvbik7CisgICAgfQorCisgICAgcHV0X2JpdHMo cGIsIDI3LCBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9tYXhpbXVtX2x1bWluYW5jZS5udW0g KiBsdW1pbmFuY2VfZGVuIC8KKyAgICAgICAgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4 aW11bV9sdW1pbmFuY2UuZGVuKTsKKyAgICBwdXRfYml0cyhwYiwgMSwgcy0+dGFyZ2V0ZWRfc3lz dGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcpOworICAgIGlmIChzLT50YXJn ZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZykgeworICAgICAg ICBwdXRfYml0cyhwYiwgNSwgcy0+bnVtX3Jvd3NfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0 dWFsX3BlYWtfbHVtaW5hbmNlKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDUsIHMtPm51bV9jb2xz X3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSk7CisgICAgICAg IGZvciAoaW50IGkgPSAwOyBpIDwgcy0+bnVtX3Jvd3NfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlf YWN0dWFsX3BlYWtfbHVtaW5hbmNlOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAw OyBqIDwgcy0+bnVtX2NvbHNfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVt aW5hbmNlOyBqKyspCisgICAgICAgICAgICAgICAgcHV0X2JpdHMocGIsIDQsIHMtPnRhcmdldGVk X3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZVtpXVtqXS5udW0gKiBwZWFrX2x1 bWluYW5jZV9kZW4gLworICAgICAgICAgICAgICAgICAgICBzLT50YXJnZXRlZF9zeXN0ZW1fZGlz cGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VbaV1bal0uZGVuKTsKKyAgICAgICAgfQorICAgIH0K KworICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAg ICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykKKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAx Nywgcy0+cGFyYW1zW3ddLm1heHNjbFtpXS5udW0gKiByZ2JfZGVuIC8gcy0+cGFyYW1zW3ddLm1h eHNjbFtpXS5kZW4pOworICAgICAgICBwdXRfYml0cyhwYiwgMTcsIHMtPnBhcmFtc1t3XS5hdmVy YWdlX21heHJnYi5udW0gKiByZ2JfZGVuIC8gcy0+cGFyYW1zW3ddLmF2ZXJhZ2VfbWF4cmdiLmRl bik7CisgICAgICAgIHB1dF9iaXRzKHBiLCA0LCBzLT5wYXJhbXNbd10ubnVtX2Rpc3RyaWJ1dGlv bl9tYXhyZ2JfcGVyY2VudGlsZXMpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMtPnBh cmFtc1t3XS5udW1fZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlczsgaSsrKSB7CisgICAg ICAgICAgICBwdXRfYml0cyhwYiwgNywgcy0+cGFyYW1zW3ddLmRpc3RyaWJ1dGlvbl9tYXhyZ2Jb aV0ucGVyY2VudGFnZSk7CisgICAgICAgICAgICBwdXRfYml0cyhwYiwgMTcsIHMtPnBhcmFtc1t3 XS5kaXN0cmlidXRpb25fbWF4cmdiW2ldLnBlcmNlbnRpbGUubnVtICogcmdiX2RlbiAvCisgICAg ICAgICAgICAgICAgcy0+cGFyYW1zW3ddLmRpc3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGls ZS5kZW4pOworICAgICAgICB9CisgICAgICAgIHB1dF9iaXRzKHBiLCAxMCwgcy0+cGFyYW1zW3dd LmZyYWN0aW9uX2JyaWdodF9waXhlbHMubnVtICogZnJhY3Rpb25fcGl4ZWxfZGVuIC8KKyAgICAg ICAgICAgIHMtPnBhcmFtc1t3XS5mcmFjdGlvbl9icmlnaHRfcGl4ZWxzLmRlbik7CisgICAgfQor CisgICAgcHV0X2JpdHMocGIsIDEsIHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1 bWluYW5jZV9mbGFnKTsKKyAgICBpZiAocy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtf bHVtaW5hbmNlX2ZsYWcpIHsKKyAgICAgICAgcHV0X2JpdHMocGIsIDUsIHMtPm51bV9yb3dzX21h c3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSk7CisgICAgICAgIHB1dF9iaXRz KHBiLCA1LCBzLT5udW1fY29sc19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFu Y2UpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMtPm51bV9yb3dzX21hc3RlcmluZ19k aXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZTsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGlu dCBqID0gMDsgaiA8IHMtPm51bV9jb2xzX21hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1 bWluYW5jZTsgaisrKQorICAgICAgICAgICAgICAgIHB1dF9iaXRzKHBiLCA0LCBzLT5tYXN0ZXJp bmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VbaV1bal0ubnVtICogcGVha19sdW1pbmFu Y2VfZGVuIC8KKyAgICAgICAgICAgICAgICAgICAgcy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFs X3BlYWtfbHVtaW5hbmNlW2ldW2pdLmRlbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmb3Ig KGludCB3ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsKKyAgICAgICAgcHV0X2JpdHMo cGIsIDEsIHMtPnBhcmFtc1t3XS50b25lX21hcHBpbmdfZmxhZyk7CisgICAgICAgIGlmIChzLT5w YXJhbXNbd10udG9uZV9tYXBwaW5nX2ZsYWcpIHsKKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAx Miwgcy0+cGFyYW1zW3ddLmtuZWVfcG9pbnRfeC5udW0gKiBrbmVlX3BvaW50X2RlbiAvIHMtPnBh cmFtc1t3XS5rbmVlX3BvaW50X3guZGVuKTsKKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAxMiwg cy0+cGFyYW1zW3ddLmtuZWVfcG9pbnRfeS5udW0gKiBrbmVlX3BvaW50X2RlbiAvIHMtPnBhcmFt c1t3XS5rbmVlX3BvaW50X3kuZGVuKTsKKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCA0LCBzLT5w YXJhbXNbd10ubnVtX2Jlemllcl9jdXJ2ZV9hbmNob3JzKTsKKyAgICAgICAgICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgcy0+cGFyYW1zW3ddLm51bV9iZXppZXJfY3VydmVfYW5jaG9yczsgaSsrKQor ICAgICAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAxMCwgcy0+cGFyYW1zW3ddLmJlemllcl9jdXJ2 ZV9hbmNob3JzW2ldLm51bSAqIGJlemllcl9hbmNob3JfZGVuIC8KKyAgICAgICAgICAgICAgICAg ICAgcy0+cGFyYW1zW3ddLmJlemllcl9jdXJ2ZV9hbmNob3JzW2ldLmRlbik7CisgICAgICAgICAg ICBwdXRfYml0cyhwYiwgMSwgcy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRpb25fbWFwcGluZ19m bGFnKTsKKyAgICAgICAgICAgIGlmIChzLT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlvbl9tYXBw aW5nX2ZsYWcpCisgICAgICAgICAgICAgICAgcHV0X2JpdHMocGIsIDYsIHMtPnBhcmFtc1t3XS5j b2xvcl9zYXR1cmF0aW9uX3dlaWdodC5udW0gKiBzYXR1cmF0aW9uX3dlaWdodF9kZW4gLworICAg ICAgICAgICAgICAgICAgICBzLT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlvbl93ZWlnaHQuZGVu KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZsdXNoX3B1dF9iaXRzKHBiKTsKKyAgICByZXR1 cm4gYnVmOworfQpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmgg Yi9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaAppbmRleCAxZjk1M2VmMWY1Li43OTdh NWM2NGFlIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaAorKysg Yi9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaApAQCAtMjEsNiArMjEsNyBAQAogI2lm bmRlZiBBVlVUSUxfSERSX0RZTkFNSUNfTUVUQURBVEFfSAogI2RlZmluZSBBVlVUSUxfSERSX0RZ TkFNSUNfTUVUQURBVEFfSAogCisjaW5jbHVkZSAiYnVmZmVyLmgiCiAjaW5jbHVkZSAiZnJhbWUu aCIKICNpbmNsdWRlICJyYXRpb25hbC5oIgogCkBAIC0zNTEsNCArMzUyLDE0IEBAIEFWRHluYW1p Y0hEUlBsdXMgKmF2X2R5bmFtaWNfaGRyX3BsdXNfY3JlYXRlX3NpZGVfZGF0YShBVkZyYW1lICpm cmFtZSk7CiBpbnQgYXZfZHluYW1pY19oZHJfcGx1c19mcm9tX3QzNShBVkR5bmFtaWNIRFJQbHVz ICpzLCBjb25zdCB1aW50OF90ICpkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IHNpemUpOwogCisvKioKKyAqIFNlcmlhbGl6ZSBkeW5hbWljIEhEUjEwKyBtZXRhZGF0 YSB0byBhIHVzZXIgZGF0YSByZWdpc3RlcmVkIElUVS1UIFQuMzUgYnVmZmVyLAorICogZXhjbHVk aW5nIHRoZSBjb3VudHJ5IGNvZGUgYW5kIGJlZ2lubmluZyB3aXRoIHRoZSB0ZXJtaW5hbCBwcm92 aWRlciBjb2RlLgorICogQHBhcmFtIHMgQSBwb2ludGVyIGNvbnRhaW5pbmcgdGhlIGRlY29kZWQg QVZEeW5hbWljSERSUGx1cyBzdHJ1Y3R1cmUuCisgKgorICogQHJldHVybiBQb2ludGVyIHRvIGFu IEFWQnVmZmVyUmVmIGNvbnRhaW5pbmcgdGhlIHJhdyBJVFUtVCBULjM1IHJlcHJlc2VudGF0aW9u CisgKiAgICAgICAgIG9mIHRoZSBIRFIxMCsgbWV0YWRhdGEgaWYgc3VjY2VlZCwgb3IgTlVMTCBp ZiBidWZmZXIgYWxsb2NhdGlvbiBmYWlscy4KKyAqLworQVZCdWZmZXJSZWYgKmF2X2R5bmFtaWNf aGRyX3BsdXNfdG9fdDM1KEFWRHluYW1pY0hEUlBsdXMgKnMpOworCiAjZW5kaWYgLyogQVZVVElM X0hEUl9EWU5BTUlDX01FVEFEQVRBX0ggKi8KZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC92ZXJzaW9u LmggYi9saWJhdnV0aWwvdmVyc2lvbi5oCmluZGV4IDkwMGI3OTg5NzEuLjc2MzU2NzI5ODUgMTAw NjQ0Ci0tLSBhL2xpYmF2dXRpbC92ZXJzaW9uLmgKKysrIGIvbGliYXZ1dGlsL3ZlcnNpb24uaApA QCAtNzksNyArNzksNyBAQAogICovCiAKICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUFKT1Ig IDU4Ci0jZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01JTk9SICAgMworI2RlZmluZSBMSUJBVlVU SUxfVkVSU0lPTl9NSU5PUiAgIDQKICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlDUk8gMTAw CiAKICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fSU5UICAgQVZfVkVSU0lPTl9JTlQoTElCQVZV VElMX1ZFUlNJT05fTUFKT1IsIFwKLS0gCjIuMzkuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWct ZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1w ZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1w ZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=