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 096D645B0D for ; Thu, 16 Mar 2023 21:25:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E24C468C0E8; Thu, 16 Mar 2023 23:25:42 +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 0C79068C0D9 for ; Thu, 16 Mar 2023 23:25:35 +0200 (EET) Received: by mail-qv1-f43.google.com with SMTP id g9so2168835qvt.8 for ; Thu, 16 Mar 2023 14:25:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vimeo.com; s=google; t=1679001934; 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=acLLs63f9ANHRoN2yS5C5MsUCWUD5rtenNqNDi5qDn8=; b=kvKuB4nfIN6ZpeRkSFNojR+mgWsdCfYztA3GmGQwMYiHyJEUWOHByhv6AEliBpOlqu 6oVQ63OTM9ZFu3p50NMmlJvmeDlwiVU3HBwLL7sQdRmCcRJencZQvW0FvkEWAL/LuHny dfFRPCv/zm1xUauFAlHieJnbDAq0lP5lIB++Q= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679001934; 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=acLLs63f9ANHRoN2yS5C5MsUCWUD5rtenNqNDi5qDn8=; b=CztmhBUk9yXLmnLfLjDrXltbIV+dz+UYCcqKDpqahRMh+ksewlmgDQ7WzmZAfmT1CB 3xjbFmwiE0ZQCMh1LjwN/y466mRm+hqxojaDna0fMaYIF4GyL9uppELIC+7fMrK8RLXN sRxqpgdIGPH37WBkj44+JTyawsVxKK+34eZLu9xyjHcDpl9FdEEIr6Zu1xgKecq0l4OA +oXdtzghLLnLEIP3WKSLg/NJnmf9+6QgCpealZt8Xj1gbptN9ej2SKJr/wIrdGbQhfnT h+cCgm0UjDEw1RF4UyEeQlNlofdXo40bUJFHWuo41XtQ0AqP4m+pvgInqVGORKrnndIN AyZg== X-Gm-Message-State: AO0yUKXw14OKX5PmUCCvOPN0i60g0WclnY55JeAyRncKENbyAhISyBvW UtH1fNzav5g8LltE+horW1C541mJBR0Cx+n0TdMyjQ== X-Google-Smtp-Source: AK7set8/G+mmaFh7O2T+jJQxezJ/JV3bvNNFJFZv2UIFSxlZuSLK2cbMwnLOPQmfVrNg5qsO4foXGA== X-Received: by 2002:a05:6214:628:b0:5b1:9c9f:d4d6 with SMTP id a8-20020a056214062800b005b19c9fd4d6mr10946356qvx.37.1679001933983; Thu, 16 Mar 2023 14:25:33 -0700 (PDT) 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 d76-20020ae9ef4f000000b00729a26e836esm304893qkg.84.2023.03.16.14.25.33 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 16 Mar 2023 14:25:33 -0700 (PDT) Message-ID: <132cfb0c-0402-864b-4637-d4673ee05d12@vimeo.com> Date: Thu, 16 Mar 2023 17:25:32 -0400 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 v8 1/2] avcodec/avutil: move dynamic HDR10+ metadata parsing to libavutil 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: U2lnbmVkLW9mZi1ieTogUmFwaGHDq2wgWnVtZXIgPHJ6dW1lckB0ZWJha28ubmV0PgotLS0KIGxp YmF2Y29kZWMvTWFrZWZpbGUgICAgICAgICAgICAgIHwgICA2ICstCiBsaWJhdmNvZGVjL2F2MWRl Yy5jICAgICAgICAgICAgICB8ICAgNiArLQogbGliYXZjb2RlYy9keW5hbWljX2hkcjEwX3BsdXMu YyAgfCAxOTggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbGliYXZjb2RlYy9keW5h bWljX2hkcjEwX3BsdXMuaCAgfCAgMzUgLS0tLS0tCiBsaWJhdmNvZGVjL2gyNjQ1X3NlaS5jICAg ICAgICAgICB8ICAgNiArLQogbGliYXZjb2RlYy9saWJkYXYxZC5jICAgICAgICAgICAgfCAgIDYg Ky0KIGxpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5jIHwgMTkwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBsaWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaCB8ICAxMyAr KwogOCBmaWxlcyBjaGFuZ2VkLCAyMTUgaW5zZXJ0aW9ucygrKSwgMjQ1IGRlbGV0aW9ucygtKQog ZGVsZXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvZHluYW1pY19oZHIxMF9wbHVzLmMKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL2R5bmFtaWNfaGRyMTBfcGx1cy5oCgpkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy9NYWtlZmlsZSBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKaW5kZXggYWJhZTQ5 MDlkMi4uNDA4ZWNkMWUzMSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9NYWtlZmlsZQorKysgYi9s aWJhdmNvZGVjL01ha2VmaWxlCkBAIC0xMDQsNyArMTA0LDcgQEAgT0JKUy0kKENPTkZJR19IMjY0 X1NFSSkgICAgICAgICAgICAgICAgKz0gaDI2NF9zZWkubyBoMjY0NV9zZWkubwogT0JKUy0kKENP TkZJR19IRVZDUEFSU0UpICAgICAgICAgICAgICAgKz0gaGV2Y19wYXJzZS5vIGhldmNfcHMubyBo ZXZjX2RhdGEubyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo MjY0NWRhdGEubyBoMjY0NV9wYXJzZS5vIGgyNjQ1X3Z1aS5vCiBPQkpTLSQoQ09ORklHX0hFVkNf U0VJKSAgICAgICAgICAgICAgICArPSBoZXZjX3NlaS5vIGgyNjQ1X3NlaS5vIFwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNfaGRyMTBfcGx1cy5vIGR5 bmFtaWNfaGRyX3ZpdmlkLm8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGR5bmFtaWNfaGRyX3ZpdmlkLm8KIE9CSlMtJChDT05GSUdfSFBFTERTUCkgICAgICAgICAg ICAgICAgICs9IGhwZWxkc3AubwogT0JKUy0kKENPTkZJR19IVUZGTUFOKSAgICAgICAgICAgICAg ICAgKz0gaHVmZm1hbi5vCiBPQkpTLSQoQ09ORklHX0hVRkZZVVZEU1ApICAgICAgICAgICAgICAr PSBodWZmeXV2ZHNwLm8KQEAgLTI1MCw3ICsyNTAsNyBAQCBPQkpTLSQoQ09ORklHX0FUUkFDM1BB TF9ERUNPREVSKSAgICAgICArPSBhdHJhYzNwbHVzZGVjLm8gYXRyYWMzcGx1cy5vIFwKIE9CSlMt JChDT05GSUdfQVRSQUM5X0RFQ09ERVIpICAgICAgICAgICs9IGF0cmFjOWRlYy5vCiBPQkpTLSQo Q09ORklHX0FVUkFfREVDT0RFUikgICAgICAgICAgICArPSBjeXV2Lm8KIE9CSlMtJChDT05GSUdf QVVSQTJfREVDT0RFUikgICAgICAgICAgICs9IGF1cmEubwotT0JKUy0kKENPTkZJR19BVjFfREVD T0RFUikgICAgICAgICAgICAgKz0gYXYxZGVjLm8gZHluYW1pY19oZHIxMF9wbHVzLm8KK09CSlMt JChDT05GSUdfQVYxX0RFQ09ERVIpICAgICAgICAgICAgICs9IGF2MWRlYy5vCiBPQkpTLSQoQ09O RklHX0FWMV9DVVZJRF9ERUNPREVSKSAgICAgICArPSBjdXZpZGRlYy5vCiBPQkpTLSQoQ09ORklH X0FWMV9NRURJQUNPREVDX0RFQ09ERVIpICArPSBtZWRpYWNvZGVjZGVjLm8KIE9CSlMtJChDT05G SUdfQVYxX05WRU5DX0VOQ09ERVIpICAgICAgICs9IG52ZW5jX2F2MS5vIG52ZW5jLm8KQEAgLTEw ODIsNyArMTA4Miw3IEBAIE9CSlMtJChDT05GSUdfTElCQVJJQkIyNF9ERUNPREVSKSAgICAgICAg ICs9IGxpYmFyaWJiMjQubyBhc3MubwogT0JKUy0kKENPTkZJR19MSUJDRUxUX0RFQ09ERVIpICAg ICAgICAgICAgKz0gbGliY2VsdF9kZWMubwogT0JKUy0kKENPTkZJR19MSUJDT0RFQzJfREVDT0RF UikgICAgICAgICAgKz0gbGliY29kZWMyLm8KIE9CSlMtJChDT05GSUdfTElCQ09ERUMyX0VOQ09E RVIpICAgICAgICAgICs9IGxpYmNvZGVjMi5vCi1PQkpTLSQoQ09ORklHX0xJQkRBVjFEX0RFQ09E RVIpICAgICAgICAgICArPSBsaWJkYXYxZC5vIGR5bmFtaWNfaGRyMTBfcGx1cy5vCitPQkpTLSQo Q09ORklHX0xJQkRBVjFEX0RFQ09ERVIpICAgICAgICAgICArPSBsaWJkYXYxZC5vCiBPQkpTLSQo Q09ORklHX0xJQkRBVlMyX0RFQ09ERVIpICAgICAgICAgICArPSBsaWJkYXZzMi5vCiBPQkpTLSQo Q09ORklHX0xJQkZES19BQUNfREVDT0RFUikgICAgICAgICArPSBsaWJmZGstYWFjZGVjLm8KIE9C SlMtJChDT05GSUdfTElCRkRLX0FBQ19FTkNPREVSKSAgICAgICAgICs9IGxpYmZkay1hYWNlbmMu bwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hdjFkZWMuYyBiL2xpYmF2Y29kZWMvYXYxZGVjLmMK aW5kZXggYTgwZTM3ZTMzZi4uZGYzOTNmZTNkMCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9hdjFk ZWMuYworKysgYi9saWJhdmNvZGVjL2F2MWRlYy5jCkBAIC0yMCw2ICsyMCw3IEBACiAKICNpbmNs dWRlICJjb25maWdfY29tcG9uZW50cy5oIgogCisjaW5jbHVkZSAibGliYXZ1dGlsL2hkcl9keW5h bWljX21ldGFkYXRhLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2ZpbG1fZ3JhaW5fcGFyYW1zLmgi CiAjaW5jbHVkZSAibGliYXZ1dGlsL21hc3RlcmluZ19kaXNwbGF5X21ldGFkYXRhLmgiCiAjaW5j bHVkZSAibGliYXZ1dGlsL3BpeGRlc2MuaCIKQEAgLTMwLDcgKzMxLDYgQEAKICNpbmNsdWRlICJi eXRlc3RyZWFtLmgiCiAjaW5jbHVkZSAiY29kZWNfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJkZWNv ZGUuaCIKLSNpbmNsdWRlICJkeW5hbWljX2hkcjEwX3BsdXMuaCIKICNpbmNsdWRlICJod2NvbmZp Zy5oIgogI2luY2x1ZGUgInByb2ZpbGVzLmgiCiAjaW5jbHVkZSAidGhyZWFkLmgiCkBAIC05MjUs OCArOTI1LDggQEAgc3RhdGljIGludCBleHBvcnRfaXR1dF90MzUoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4LCBBVkZyYW1lICpmcmFtZSwKICAgICAgICAgaWYgKCFoZHJwbHVzKQogICAgICAgICAgICAg cmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKIAotICAgICAgICByZXQgPSBmZl9wYXJzZV9pdHVfdF90 MzVfdG9fZHluYW1pY19oZHIxMF9wbHVzKGhkcnBsdXMsIGdiLmJ1ZmZlciwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc3RyZWFtMl9n ZXRfYnl0ZXNfbGVmdCgmZ2IpKTsKKyAgICAgICAgcmV0ID0gYXZfZHluYW1pY19oZHJfcGx1c19m cm9tX3QzNShoZHJwbHVzLCBnYi5idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnl0ZXN0cmVhbTJfZ2V0X2J5dGVzX2xlZnQoJmdiKSk7CiAgICAgICAg IGlmIChyZXQgPCAwKQogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICAgYnJlYWs7CmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL2R5bmFtaWNfaGRyMTBfcGx1cy5jIGIvbGliYXZjb2RlYy9k eW5hbWljX2hkcjEwX3BsdXMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzRhNDRh YWM2NS4uMDAwMDAwMDAwMAotLS0gYS9saWJhdmNvZGVjL2R5bmFtaWNfaGRyMTBfcGx1cy5jCisr KyAvZGV2L251bGwKQEAgLTEsMTk4ICswLDAgQEAKLS8qCi0gKiBUaGlzIGZpbGUgaXMgcGFydCBv ZiBGRm1wZWcuCi0gKgotICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBGRm1w ZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAq IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQotICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFsb25nIHdpdGggRkZt cGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiBGb3VuZGF0aW9uLCBJ bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEz MDEgVVNBCi0gKi8KLQotI2luY2x1ZGUgImR5bmFtaWNfaGRyMTBfcGx1cy5oIgotI2luY2x1ZGUg ImdldF9iaXRzLmgiCi0KLXN0YXRpYyBjb25zdCBpbnQ2NF90IGx1bWluYW5jZV9kZW4gPSAxOwot c3RhdGljIGNvbnN0IGludDMyX3QgcGVha19sdW1pbmFuY2VfZGVuID0gMTU7Ci1zdGF0aWMgY29u c3QgaW50NjRfdCByZ2JfZGVuID0gMTAwMDAwOwotc3RhdGljIGNvbnN0IGludDMyX3QgZnJhY3Rp b25fcGl4ZWxfZGVuID0gMTAwMDsKLXN0YXRpYyBjb25zdCBpbnQzMl90IGtuZWVfcG9pbnRfZGVu ID0gNDA5NTsKLXN0YXRpYyBjb25zdCBpbnQzMl90IGJlemllcl9hbmNob3JfZGVuID0gMTAyMzsK LXN0YXRpYyBjb25zdCBpbnQzMl90IHNhdHVyYXRpb25fd2VpZ2h0X2RlbiA9IDg7Ci0KLWludCBm Zl9wYXJzZV9pdHVfdF90MzVfdG9fZHluYW1pY19oZHIxMF9wbHVzKEFWRHluYW1pY0hEUlBsdXMg KnMsIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgc2l6ZSkKLXsKLSAgICBHZXRCaXRDb250ZXh0IGdiYywgKmdiID0g JmdiYzsKLSAgICBpbnQgcmV0OwotCi0gICAgaWYgKCFzKQotICAgICAgICByZXR1cm4gQVZFUlJP UihFTk9NRU0pOwotCi0gICAgcmV0ID0gaW5pdF9nZXRfYml0czgoZ2IsIGRhdGEsIHNpemUpOwot ICAgIGlmIChyZXQgPCAwKQotICAgICAgICByZXR1cm4gcmV0OwotCi0gICAgaWYgKGdldF9iaXRz X2xlZnQoZ2IpIDwgMTApCi0gICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwotCi0g ICAgcy0+YXBwbGljYXRpb25fdmVyc2lvbiA9IGdldF9iaXRzKGdiLCA4KTsKLSAgICBzLT5udW1f d2luZG93cyA9IGdldF9iaXRzKGdiLCAyKTsKLQotICAgIGlmIChzLT5udW1fd2luZG93cyA8IDEg fHwgcy0+bnVtX3dpbmRvd3MgPiAzKSB7Ci0gICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE QVRBOwotICAgIH0KLQotICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8ICgoMTkgKiA4ICsgMSkg KiAocy0+bnVtX3dpbmRvd3MgLSAxKSkpCi0gICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE QVRBOwotCi0gICAgZm9yIChpbnQgdyA9IDE7IHcgPCBzLT5udW1fd2luZG93czsgdysrKSB7Ci0g ICAgICAgIC8vIFRoZSBjb3JuZXJzIGFyZSBzZXQgdG8gYWJzb2x1dGUgY29vcmRpbmF0ZXMgaGVy ZS4gVGhleSBzaG91bGQgYmUKLSAgICAgICAgLy8gY29udmVydGVkIHRvIHRoZSByZWxhdGl2ZSBj b29yZGluYXRlcyAoaW4gWzAsIDFdKSBpbiB0aGUgZGVjb2Rlci4KLSAgICAgICAgQVZIRFJQbHVz Q29sb3JUcmFuc2Zvcm1QYXJhbXMgKnBhcmFtcyA9ICZzLT5wYXJhbXNbd107Ci0gICAgICAgIHBh cmFtcy0+d2luZG93X3VwcGVyX2xlZnRfY29ybmVyX3ggPQotICAgICAgICAgICAgKEFWUmF0aW9u YWwpe2dldF9iaXRzKGdiLCAxNiksIDF9OwotICAgICAgICBwYXJhbXMtPndpbmRvd191cHBlcl9s ZWZ0X2Nvcm5lcl95ID0KLSAgICAgICAgICAgIChBVlJhdGlvbmFsKXtnZXRfYml0cyhnYiwgMTYp LCAxfTsKLSAgICAgICAgcGFyYW1zLT53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3ggPQotICAg ICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCAxNiksIDF9OwotICAgICAgICBwYXJh bXMtPndpbmRvd19sb3dlcl9yaWdodF9jb3JuZXJfeSA9Ci0gICAgICAgICAgICAoQVZSYXRpb25h bCl7Z2V0X2JpdHMoZ2IsIDE2KSwgMX07Ci0KLSAgICAgICAgcGFyYW1zLT5jZW50ZXJfb2ZfZWxs aXBzZV94ID0gZ2V0X2JpdHMoZ2IsIDE2KTsKLSAgICAgICAgcGFyYW1zLT5jZW50ZXJfb2ZfZWxs aXBzZV95ID0gZ2V0X2JpdHMoZ2IsIDE2KTsKLSAgICAgICAgcGFyYW1zLT5yb3RhdGlvbl9hbmds ZSA9IGdldF9iaXRzKGdiLCA4KTsKLSAgICAgICAgcGFyYW1zLT5zZW1pbWFqb3JfYXhpc19pbnRl cm5hbF9lbGxpcHNlID0gZ2V0X2JpdHMoZ2IsIDE2KTsKLSAgICAgICAgcGFyYW1zLT5zZW1pbWFq b3JfYXhpc19leHRlcm5hbF9lbGxpcHNlID0gZ2V0X2JpdHMoZ2IsIDE2KTsKLSAgICAgICAgcGFy YW1zLT5zZW1pbWlub3JfYXhpc19leHRlcm5hbF9lbGxpcHNlID0gZ2V0X2JpdHMoZ2IsIDE2KTsK LSAgICAgICAgcGFyYW1zLT5vdmVybGFwX3Byb2Nlc3Nfb3B0aW9uID0gZ2V0X2JpdHMxKGdiKTsK LSAgICB9Ci0KLSAgICBpZiAoZ2V0X2JpdHNfbGVmdChnYikgPCAyOCkKLSAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7Ci0KLSAgICBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9t YXhpbXVtX2x1bWluYW5jZSA9Ci0gICAgICAgIChBVlJhdGlvbmFsKXtnZXRfYml0c19sb25nKGdi LCAyNyksIGx1bWluYW5jZV9kZW59OwotICAgIHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2Fj dHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnID0gZ2V0X2JpdHMxKGdiKTsKLQotICAgIGlmIChzLT50 YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZykgewotICAg ICAgICBpbnQgcm93cywgY29sczsKLSAgICAgICAgaWYgKGdldF9iaXRzX2xlZnQoZ2IpIDwgMTAp Ci0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKLSAgICAgICAgcm93cyA9 IGdldF9iaXRzKGdiLCA1KTsKLSAgICAgICAgY29scyA9IGdldF9iaXRzKGdiLCA1KTsKLSAgICAg ICAgaWYgKCgocm93cyA8IDIpIHx8IChyb3dzID4gMjUpKSB8fCAoKGNvbHMgPCAyKSB8fCAoY29s cyA+IDI1KSkpIHsKLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwotICAg ICAgICB9Ci0gICAgICAgIHMtPm51bV9yb3dzX3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVh bF9wZWFrX2x1bWluYW5jZSA9IHJvd3M7Ci0gICAgICAgIHMtPm51bV9jb2xzX3RhcmdldGVkX3N5 c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSA9IGNvbHM7Ci0KLSAgICAgICAgaWYg KGdldF9iaXRzX2xlZnQoZ2IpIDwgKHJvd3MgKiBjb2xzICogNCkpCi0gICAgICAgICAgICByZXR1 cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKLQotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJv d3M7IGkrKykgewotICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb2xzOyBqKyspIHsK LSAgICAgICAgICAgICAgICBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19s dW1pbmFuY2VbaV1bal0gPQotICAgICAgICAgICAgICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2Jp dHMoZ2IsIDQpLCBwZWFrX2x1bWluYW5jZV9kZW59OwotICAgICAgICAgICAgfQotICAgICAgICB9 Ci0gICAgfQotICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgewot ICAgICAgICBBVkhEUlBsdXNDb2xvclRyYW5zZm9ybVBhcmFtcyAqcGFyYW1zID0gJnMtPnBhcmFt c1t3XTsKLSAgICAgICAgaWYgKGdldF9iaXRzX2xlZnQoZ2IpIDwgKDMgKiAxNyArIDE3ICsgNCkp Ci0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKLQotICAgICAgICBmb3Ig KGludCBpID0gMDsgaSA8IDM7IGkrKykgewotICAgICAgICAgICAgcGFyYW1zLT5tYXhzY2xbaV0g PQotICAgICAgICAgICAgICAgIChBVlJhdGlvbmFsKXtnZXRfYml0cyhnYiwgMTcpLCByZ2JfZGVu fTsKLSAgICAgICAgfQotICAgICAgICBwYXJhbXMtPmF2ZXJhZ2VfbWF4cmdiID0KLSAgICAgICAg ICAgIChBVlJhdGlvbmFsKXtnZXRfYml0cyhnYiwgMTcpLCByZ2JfZGVufTsKLSAgICAgICAgcGFy YW1zLT5udW1fZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlcyA9IGdldF9iaXRzKGdiLCA0 KTsKLQotICAgICAgICBpZiAoZ2V0X2JpdHNfbGVmdChnYikgPAotICAgICAgICAgICAgKHBhcmFt cy0+bnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXMgKiAyNCkpCi0gICAgICAgICAg ICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKLQotICAgICAgICBmb3IgKGludCBpID0gMDsg aSA8IHBhcmFtcy0+bnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXM7IGkrKykgewot ICAgICAgICAgICAgcGFyYW1zLT5kaXN0cmlidXRpb25fbWF4cmdiW2ldLnBlcmNlbnRhZ2UgPSBn ZXRfYml0cyhnYiwgNyk7Ci0gICAgICAgICAgICBwYXJhbXMtPmRpc3RyaWJ1dGlvbl9tYXhyZ2Jb aV0ucGVyY2VudGlsZSA9Ci0gICAgICAgICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdi LCAxNyksIHJnYl9kZW59OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGdldF9iaXRzX2xlZnQo Z2IpIDwgMTApCi0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKLQotICAg ICAgICBwYXJhbXMtPmZyYWN0aW9uX2JyaWdodF9waXhlbHMgPSAoQVZSYXRpb25hbCl7Z2V0X2Jp dHMoZ2IsIDEwKSwgZnJhY3Rpb25fcGl4ZWxfZGVufTsKLSAgICB9Ci0gICAgaWYgKGdldF9iaXRz X2xlZnQoZ2IpIDwgMSkKLSAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Ci0gICAg cy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcgPSBnZXRfYml0 czEoZ2IpOwotICAgIGlmIChzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFu Y2VfZmxhZykgewotICAgICAgICBpbnQgcm93cywgY29sczsKLSAgICAgICAgaWYgKGdldF9iaXRz X2xlZnQoZ2IpIDwgMTApCi0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsK LSAgICAgICAgcm93cyA9IGdldF9iaXRzKGdiLCA1KTsKLSAgICAgICAgY29scyA9IGdldF9iaXRz KGdiLCA1KTsKLSAgICAgICAgaWYgKCgocm93cyA8IDIpIHx8IChyb3dzID4gMjUpKSB8fCAoKGNv bHMgPCAyKSB8fCAoY29scyA+IDI1KSkpIHsKLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lO VkFMSUREQVRBOwotICAgICAgICB9Ci0gICAgICAgIHMtPm51bV9yb3dzX21hc3RlcmluZ19kaXNw bGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSA9IHJvd3M7Ci0gICAgICAgIHMtPm51bV9jb2xzX21h c3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSA9IGNvbHM7Ci0KLSAgICAgICAg aWYgKGdldF9iaXRzX2xlZnQoZ2IpIDwgKHJvd3MgKiBjb2xzICogNCkpCi0gICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKLQotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IHJvd3M7IGkrKykgewotICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb2xzOyBqKysp IHsKLSAgICAgICAgICAgICAgICBzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1p bmFuY2VbaV1bal0gPQotICAgICAgICAgICAgICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMo Z2IsIDQpLCBwZWFrX2x1bWluYW5jZV9kZW59OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g ICAgfQotCi0gICAgZm9yIChpbnQgdyA9IDA7IHcgPCBzLT5udW1fd2luZG93czsgdysrKSB7Ci0g ICAgICAgIEFWSERSUGx1c0NvbG9yVHJhbnNmb3JtUGFyYW1zICpwYXJhbXMgPSAmcy0+cGFyYW1z W3ddOwotICAgICAgICBpZiAoZ2V0X2JpdHNfbGVmdChnYikgPCAxKQotICAgICAgICAgICAgcmV0 dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Ci0KLSAgICAgICAgcGFyYW1zLT50b25lX21hcHBpbmdf ZmxhZyA9IGdldF9iaXRzMShnYik7Ci0gICAgICAgIGlmIChwYXJhbXMtPnRvbmVfbWFwcGluZ19m bGFnKSB7Ci0gICAgICAgICAgICBpZiAoZ2V0X2JpdHNfbGVmdChnYikgPCAyOCkKLSAgICAgICAg ICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKLQotICAgICAgICAgICAgcGFyYW1z LT5rbmVlX3BvaW50X3ggPQotICAgICAgICAgICAgICAgIChBVlJhdGlvbmFsKXtnZXRfYml0cyhn YiwgMTIpLCBrbmVlX3BvaW50X2Rlbn07Ci0gICAgICAgICAgICBwYXJhbXMtPmtuZWVfcG9pbnRf eSA9Ci0gICAgICAgICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCAxMiksIGtuZWVf cG9pbnRfZGVufTsKLSAgICAgICAgICAgIHBhcmFtcy0+bnVtX2Jlemllcl9jdXJ2ZV9hbmNob3Jz ID0gZ2V0X2JpdHMoZ2IsIDQpOwotCi0gICAgICAgICAgICBpZiAoZ2V0X2JpdHNfbGVmdChnYikg PCAocGFyYW1zLT5udW1fYmV6aWVyX2N1cnZlX2FuY2hvcnMgKiAxMCkpCi0gICAgICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Ci0KLSAgICAgICAgICAgIGZvciAoaW50IGkg PSAwOyBpIDwgcGFyYW1zLT5udW1fYmV6aWVyX2N1cnZlX2FuY2hvcnM7IGkrKykgewotICAgICAg ICAgICAgICAgIHBhcmFtcy0+YmV6aWVyX2N1cnZlX2FuY2hvcnNbaV0gPQotICAgICAgICAgICAg ICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2IsIDEwKSwgYmV6aWVyX2FuY2hvcl9kZW59 OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGdldF9iaXRzX2xlZnQo Z2IpIDwgMSkKLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwotICAgICAg ICBwYXJhbXMtPmNvbG9yX3NhdHVyYXRpb25fbWFwcGluZ19mbGFnID0gZ2V0X2JpdHMxKGdiKTsK LSAgICAgICAgaWYgKHBhcmFtcy0+Y29sb3Jfc2F0dXJhdGlvbl9tYXBwaW5nX2ZsYWcpIHsKLSAg ICAgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IDYpCi0gICAgICAgICAgICAgICAgcmV0 dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Ci0gICAgICAgICAgICBwYXJhbXMtPmNvbG9yX3NhdHVy YXRpb25fd2VpZ2h0ID0KLSAgICAgICAgICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2Is IDYpLCBzYXR1cmF0aW9uX3dlaWdodF9kZW59OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0 dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2R5bmFtaWNfaGRyMTBfcGx1cy5oIGIv bGliYXZjb2RlYy9keW5hbWljX2hkcjEwX3BsdXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggY2Q3YWNmMDQzMi4uMDAwMDAwMDAwMAotLS0gYS9saWJhdmNvZGVjL2R5bmFtaWNfaGRy MTBfcGx1cy5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEZGbXBlZy4KLSAqCi0gKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMi4x IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot ICoKLSAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYWxv bmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqIEZv dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg TUEgMDIxMTAtMTMwMSBVU0EKLSAqLwotCi0jaWZuZGVmIEFWQ09ERUNfRFlOQU1JQ19IRFIxMF9Q TFVTX0gKLSNkZWZpbmUgQVZDT0RFQ19EWU5BTUlDX0hEUjEwX1BMVVNfSAotCi0jaW5jbHVkZSAi bGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmgiCi0KLS8qKgotICogUGFyc2UgdGhlIHVz ZXIgZGF0YSByZWdpc3RlcmVkIElUVS1UIFQuMzUgdG8gQVZidWZmZXIgKEFWRHluYW1pY0hEUlBs dXMpLgotICogQHBhcmFtIHMgQSBwb2ludGVyIGNvbnRhaW5pbmcgdGhlIGRlY29kZWQgQVZEeW5h bWljSERSUGx1cyBzdHJ1Y3R1cmUuCi0gKiBAcGFyYW0gZGF0YSBUaGUgYnl0ZSBhcnJheSBjb250 YWluaW5nIHRoZSByYXcgSVRVLVQgVC4zNSBkYXRhLgotICogQHBhcmFtIHNpemUgU2l6ZSBvZiB0 aGUgZGF0YSBhcnJheSBpbiBieXRlcy4KLSAqCi0gKiBAcmV0dXJuIDAgaWYgc3VjY2VlZC4gT3Ro ZXJ3aXNlLCByZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBBVkVSUk9SLgotICovCi1pbnQgZmZfcGFy c2VfaXR1X3RfdDM1X3RvX2R5bmFtaWNfaGRyMTBfcGx1cyhBVkR5bmFtaWNIRFJQbHVzICpzLCBj b25zdCB1aW50OF90ICpkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IHNpemUpOwotCi0jZW5kaWYgLyogQVZDT0RFQ19EWU5BTUlDX0hEUjEwX1BM VVNfSCAqLwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oMjY0NV9zZWkuYyBiL2xpYmF2Y29kZWMv aDI2NDVfc2VpLmMKaW5kZXggNmU0YTlhMWFmMi4uNjNhYjcxMWJjOSAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9oMjY0NV9zZWkuYworKysgYi9saWJhdmNvZGVjL2gyNjQ1X3NlaS5jCkBAIC0yNywx MyArMjcsMTMgQEAKIAogI2luY2x1ZGUgImxpYmF2dXRpbC9hbWJpZW50X3ZpZXdpbmdfZW52aXJv bm1lbnQuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvZGlzcGxheS5oIgorI2luY2x1ZGUgImxpYmF2 dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9maWxtX2dy YWluX3BhcmFtcy5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9waXhkZXNjLmgiCiAjaW5jbHVkZSAi bGliYXZ1dGlsL3N0ZXJlbzNkLmgiCiAKICNpbmNsdWRlICJhdHNjX2E1My5oIgogI2luY2x1ZGUg ImF2Y29kZWMuaCIKLSNpbmNsdWRlICJkeW5hbWljX2hkcjEwX3BsdXMuaCIKICNpbmNsdWRlICJk eW5hbWljX2hkcl92aXZpZC5oIgogI2luY2x1ZGUgImdldF9iaXRzLmgiCiAjaW5jbHVkZSAiZ29s b21iLmgiCkBAIC01Miw4ICs1Miw4IEBAIHN0YXRpYyBpbnQgZGVjb2RlX3JlZ2lzdGVyZWRfdXNl cl9kYXRhX2R5bmFtaWNfaGRyX3BsdXMoSEVWQ1NFSUR5bmFtaWNIRFJQbHVzICpzCiAgICAgaWYg KCFtZXRhZGF0YSkKICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKIAotICAgIGVyciA9 IGZmX3BhcnNlX2l0dV90X3QzNV90b19keW5hbWljX2hkcjEwX3BsdXMobWV0YWRhdGEsIGdiLT5i dWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdChnYikpOworICAgIGVyciA9IGF2X2R5bmFtaWNf aGRyX3BsdXNfZnJvbV90MzUobWV0YWRhdGEsIGdiLT5idWZmZXIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdChnYikpOwog ICAgIGlmIChlcnIgPCAwKSB7CiAgICAgICAgIGF2X2ZyZWUobWV0YWRhdGEpOwogICAgICAgICBy ZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9saWJkYXYxZC5jIGIvbGliYXZjb2Rl Yy9saWJkYXYxZC5jCmluZGV4IGViMTIyNWVhMWEuLjUwYzRjZWVlNDAgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvbGliZGF2MWQuYworKysgYi9saWJhdmNvZGVjL2xpYmRhdjFkLmMKQEAgLTI0LDYg KzI0LDcgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvYXZhc3NlcnQuaCIKICNpbmNsdWRlICJsaWJh dnV0aWwvY3B1LmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2ZpbG1fZ3JhaW5fcGFyYW1zLmgiCisj aW5jbHVkZSAibGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmgiCiAjaW5jbHVkZSAibGli YXZ1dGlsL21hc3RlcmluZ19kaXNwbGF5X21ldGFkYXRhLmgiCiAjaW5jbHVkZSAibGliYXZ1dGls L2ltZ3V0aWxzLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL29wdC5oIgpAQCAtMzMsNyArMzQsNiBA QAogI2luY2x1ZGUgImJ5dGVzdHJlYW0uaCIKICNpbmNsdWRlICJjb2RlY19pbnRlcm5hbC5oIgog I2luY2x1ZGUgImRlY29kZS5oIgotI2luY2x1ZGUgImR5bmFtaWNfaGRyMTBfcGx1cy5oIgogI2lu Y2x1ZGUgImludGVybmFsLmgiCiAKICNkZWZpbmUgRkZfREFWMURfVkVSU0lPTl9BVF9MRUFTVCh4 LHkpIFwKQEAgLTU1NSw4ICs1NTUsOCBAQCBGRl9FTkFCTEVfREVQUkVDQVRJT05fV0FSTklOR1MK ICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg IHJlcyA9IGZmX3BhcnNlX2l0dV90X3QzNV90b19keW5hbWljX2hkcjEwX3BsdXMoaGRycGx1cywg Z2IuYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmZ2IpKTsKKyAgICAgICAg ICAgIHJlcyA9IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUoaGRycGx1cywgZ2IuYnVmZmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc3Ry ZWFtMl9nZXRfYnl0ZXNfbGVmdCgmZ2IpKTsKICAgICAgICAgICAgIGlmIChyZXMgPCAwKQogICAg ICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv bGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMgYi9saWJhdnV0aWwvaGRyX2R5bmFtaWNf bWV0YWRhdGEuYwppbmRleCAwZmExZWU4MmRlLi5lYmFiMzg4ZDA5IDEwMDY0NAotLS0gYS9saWJh dnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuYworKysgYi9saWJhdnV0aWwvaGRyX2R5bmFtaWNf bWV0YWRhdGEuYwpAQCAtMjAsNiArMjAsMTggQEAKIAogI2luY2x1ZGUgImhkcl9keW5hbWljX21l dGFkYXRhLmgiCiAjaW5jbHVkZSAibWVtLmgiCisjaW5jbHVkZSAibGliYXZjb2RlYy9nZXRfYml0 cy5oIgorI2luY2x1ZGUgImxpYmF2Y29kZWMvcHV0X2JpdHMuaCIKKworI2RlZmluZSBUMzVfUEFZ TE9BRF9NQVhfU0laRSA5MDcKKworc3RhdGljIGNvbnN0IGludDY0X3QgbHVtaW5hbmNlX2RlbiA9 IDE7CitzdGF0aWMgY29uc3QgaW50MzJfdCBwZWFrX2x1bWluYW5jZV9kZW4gPSAxNTsKK3N0YXRp YyBjb25zdCBpbnQ2NF90IHJnYl9kZW4gPSAxMDAwMDA7CitzdGF0aWMgY29uc3QgaW50MzJfdCBm cmFjdGlvbl9waXhlbF9kZW4gPSAxMDAwOworc3RhdGljIGNvbnN0IGludDMyX3Qga25lZV9wb2lu dF9kZW4gPSA0MDk1Oworc3RhdGljIGNvbnN0IGludDMyX3QgYmV6aWVyX2FuY2hvcl9kZW4gPSAx MDIzOworc3RhdGljIGNvbnN0IGludDMyX3Qgc2F0dXJhdGlvbl93ZWlnaHRfZGVuID0gODsKIAog QVZEeW5hbWljSERSUGx1cyAqYXZfZHluYW1pY19oZHJfcGx1c19hbGxvYyhzaXplX3QgKnNpemUp CiB7CkBAIC00NSwzICs1NywxODEgQEAgQVZEeW5hbWljSERSUGx1cyAqYXZfZHluYW1pY19oZHJf cGx1c19jcmVhdGVfc2lkZV9kYXRhKEFWRnJhbWUgKmZyYW1lKQogCiAgICAgcmV0dXJuIChBVkR5 bmFtaWNIRFJQbHVzICopc2lkZV9kYXRhLT5kYXRhOwogfQorCitpbnQgYXZfZHluYW1pY19oZHJf cGx1c19mcm9tX3QzNShBVkR5bmFtaWNIRFJQbHVzICpzLCBjb25zdCB1aW50OF90ICpkYXRhLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpCit7CisgICAgdWlu dDhfdCBwYWRkZWRfYnVmW1QzNV9QQVlMT0FEX01BWF9TSVpFICsgQVZfSU5QVVRfQlVGRkVSX1BB RERJTkdfU0laRV07CisgICAgR2V0Qml0Q29udGV4dCBnYmMsICpnYiA9ICZnYmM7CisgICAgaW50 IHJldDsKKworICAgIGlmICghcykKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKwor ICAgIGlmIChzaXplID4gVDM1X1BBWUxPQURfTUFYX1NJWkUpCisgICAgICAgIHJldHVybiBBVkVS Uk9SKEVJTlZBTCk7CisKKyAgICBtZW1jcHkocGFkZGVkX2J1ZiwgZGF0YSwgc2l6ZSk7CisgICAg Ly8gWmVyby1pbml0aWFsaXplIHRoZSBidWZmZXIgcGFkZGluZyB0byBhdm9pZCBvdmVycmVhZHMg aW50byB1bmluaXRpYWxpemVkIGRhdGEuCisgICAgbWVtc2V0KHBhZGRlZF9idWYgKyBzaXplLCAw LCBBVl9JTlBVVF9CVUZGRVJfUEFERElOR19TSVpFKTsKKworICAgIHJldCA9IGluaXRfZ2V0X2Jp dHM4KGdiLCBwYWRkZWRfYnVmLCBzaXplKTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgcmV0 dXJuIHJldDsKKworICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IDEwKQorICAgICAgICByZXR1 cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKworICAgIHMtPmFwcGxpY2F0aW9uX3ZlcnNpb24gPSBn ZXRfYml0cyhnYiwgOCk7CisgICAgcy0+bnVtX3dpbmRvd3MgPSBnZXRfYml0cyhnYiwgMik7CisK KyAgICBpZiAocy0+bnVtX3dpbmRvd3MgPCAxIHx8IHMtPm51bV93aW5kb3dzID4gMykgeworICAg ICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKyAgICB9CisKKyAgICBpZiAoZ2V0X2Jp dHNfbGVmdChnYikgPCAoKDE5ICogOCArIDEpICogKHMtPm51bV93aW5kb3dzIC0gMSkpKQorICAg ICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKworICAgIGZvciAoaW50IHcgPSAxOyB3 IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAgICAvLyBUaGUgY29ybmVycyBhcmUgc2V0 IHRvIGFic29sdXRlIGNvb3JkaW5hdGVzIGhlcmUuIFRoZXkgc2hvdWxkIGJlCisgICAgICAgIC8v IGNvbnZlcnRlZCB0byB0aGUgcmVsYXRpdmUgY29vcmRpbmF0ZXMgKGluIFswLCAxXSkgaW4gdGhl IGRlY29kZXIuCisgICAgICAgIEFWSERSUGx1c0NvbG9yVHJhbnNmb3JtUGFyYW1zICpwYXJhbXMg PSAmcy0+cGFyYW1zW3ddOworICAgICAgICBwYXJhbXMtPndpbmRvd191cHBlcl9sZWZ0X2Nvcm5l cl94ID0KKyAgICAgICAgICAgIChBVlJhdGlvbmFsKXtnZXRfYml0cyhnYiwgMTYpLCAxfTsKKyAg ICAgICAgcGFyYW1zLT53aW5kb3dfdXBwZXJfbGVmdF9jb3JuZXJfeSA9CisgICAgICAgICAgICAo QVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2IsIDE2KSwgMX07CisgICAgICAgIHBhcmFtcy0+d2luZG93 X2xvd2VyX3JpZ2h0X2Nvcm5lcl94ID0KKyAgICAgICAgICAgIChBVlJhdGlvbmFsKXtnZXRfYml0 cyhnYiwgMTYpLCAxfTsKKyAgICAgICAgcGFyYW1zLT53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVy X3kgPQorICAgICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCAxNiksIDF9OworCisg ICAgICAgIHBhcmFtcy0+Y2VudGVyX29mX2VsbGlwc2VfeCA9IGdldF9iaXRzKGdiLCAxNik7Cisg ICAgICAgIHBhcmFtcy0+Y2VudGVyX29mX2VsbGlwc2VfeSA9IGdldF9iaXRzKGdiLCAxNik7Cisg ICAgICAgIHBhcmFtcy0+cm90YXRpb25fYW5nbGUgPSBnZXRfYml0cyhnYiwgOCk7CisgICAgICAg IHBhcmFtcy0+c2VtaW1ham9yX2F4aXNfaW50ZXJuYWxfZWxsaXBzZSA9IGdldF9iaXRzKGdiLCAx Nik7CisgICAgICAgIHBhcmFtcy0+c2VtaW1ham9yX2F4aXNfZXh0ZXJuYWxfZWxsaXBzZSA9IGdl dF9iaXRzKGdiLCAxNik7CisgICAgICAgIHBhcmFtcy0+c2VtaW1pbm9yX2F4aXNfZXh0ZXJuYWxf ZWxsaXBzZSA9IGdldF9iaXRzKGdiLCAxNik7CisgICAgICAgIHBhcmFtcy0+b3ZlcmxhcF9wcm9j ZXNzX29wdGlvbiA9IGdldF9iaXRzMShnYik7CisgICAgfQorCisgICAgaWYgKGdldF9iaXRzX2xl ZnQoZ2IpIDwgMjgpCisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOworCisgICAg cy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4aW11bV9sdW1pbmFuY2UgPQorICAgICAgICAo QVZSYXRpb25hbCl7Z2V0X2JpdHNfbG9uZyhnYiwgMjcpLCBsdW1pbmFuY2VfZGVufTsKKyAgICBz LT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZyA9IGdl dF9iaXRzMShnYik7CisKKyAgICBpZiAocy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFs X3BlYWtfbHVtaW5hbmNlX2ZsYWcpIHsKKyAgICAgICAgaW50IHJvd3MsIGNvbHM7CisgICAgICAg IGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IDEwKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Jf SU5WQUxJRERBVEE7CisgICAgICAgIHJvd3MgPSBnZXRfYml0cyhnYiwgNSk7CisgICAgICAgIGNv bHMgPSBnZXRfYml0cyhnYiwgNSk7CisgICAgICAgIGlmICgoKHJvd3MgPCAyKSB8fCAocm93cyA+ IDI1KSkgfHwgKChjb2xzIDwgMikgfHwgKGNvbHMgPiAyNSkpKSB7CisgICAgICAgICAgICByZXR1 cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKyAgICAgICAgfQorICAgICAgICBzLT5udW1fcm93c190 YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UgPSByb3dzOworICAg ICAgICBzLT5udW1fY29sc190YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1p bmFuY2UgPSBjb2xzOworCisgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IChyb3dzICog Y29scyAqIDQpKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisKKyAg ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dzOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAo aW50IGogPSAwOyBqIDwgY29sczsgaisrKSB7CisgICAgICAgICAgICAgICAgcy0+dGFyZ2V0ZWRf c3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pdID0KKyAgICAgICAgICAg ICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCA0KSwgcGVha19sdW1pbmFuY2VfZGVu fTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBmb3IgKGludCB3ID0gMDsg dyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsKKyAgICAgICAgQVZIRFJQbHVzQ29sb3JUcmFuc2Zv cm1QYXJhbXMgKnBhcmFtcyA9ICZzLT5wYXJhbXNbd107CisgICAgICAgIGlmIChnZXRfYml0c19s ZWZ0KGdiKSA8ICgzICogMTcgKyAxNyArIDQpKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Jf SU5WQUxJRERBVEE7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAg ICAgICAgICAgIHBhcmFtcy0+bWF4c2NsW2ldID0KKyAgICAgICAgICAgICAgICAoQVZSYXRpb25h bCl7Z2V0X2JpdHMoZ2IsIDE3KSwgcmdiX2Rlbn07CisgICAgICAgIH0KKyAgICAgICAgcGFyYW1z LT5hdmVyYWdlX21heHJnYiA9CisgICAgICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2Is IDE3KSwgcmdiX2Rlbn07CisgICAgICAgIHBhcmFtcy0+bnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2Jf cGVyY2VudGlsZXMgPSBnZXRfYml0cyhnYiwgNCk7CisKKyAgICAgICAgaWYgKGdldF9iaXRzX2xl ZnQoZ2IpIDwKKyAgICAgICAgICAgIChwYXJhbXMtPm51bV9kaXN0cmlidXRpb25fbWF4cmdiX3Bl cmNlbnRpbGVzICogMjQpKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7 CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXJhbXMtPm51bV9kaXN0cmlidXRpb25f bWF4cmdiX3BlcmNlbnRpbGVzOyBpKyspIHsKKyAgICAgICAgICAgIHBhcmFtcy0+ZGlzdHJpYnV0 aW9uX21heHJnYltpXS5wZXJjZW50YWdlID0gZ2V0X2JpdHMoZ2IsIDcpOworICAgICAgICAgICAg cGFyYW1zLT5kaXN0cmlidXRpb25fbWF4cmdiW2ldLnBlcmNlbnRpbGUgPQorICAgICAgICAgICAg ICAgIChBVlJhdGlvbmFsKXtnZXRfYml0cyhnYiwgMTcpLCByZ2JfZGVufTsKKyAgICAgICAgfQor CisgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IDEwKQorICAgICAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7CisKKyAgICAgICAgcGFyYW1zLT5mcmFjdGlvbl9icmlnaHRf cGl4ZWxzID0gKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCAxMCksIGZyYWN0aW9uX3BpeGVsX2Rl bn07CisgICAgfQorICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IDEpCisgICAgICAgIHJldHVy biBBVkVSUk9SX0lOVkFMSUREQVRBOworICAgIHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9w ZWFrX2x1bWluYW5jZV9mbGFnID0gZ2V0X2JpdHMxKGdiKTsKKyAgICBpZiAocy0+bWFzdGVyaW5n X2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcpIHsKKyAgICAgICAgaW50IHJvd3Ms IGNvbHM7CisgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IDEwKQorICAgICAgICAgICAg cmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisgICAgICAgIHJvd3MgPSBnZXRfYml0cyhnYiwg NSk7CisgICAgICAgIGNvbHMgPSBnZXRfYml0cyhnYiwgNSk7CisgICAgICAgIGlmICgoKHJvd3Mg PCAyKSB8fCAocm93cyA+IDI1KSkgfHwgKChjb2xzIDwgMikgfHwgKGNvbHMgPiAyNSkpKSB7Cisg ICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKyAgICAgICAgfQorICAgICAg ICBzLT5udW1fcm93c19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UgPSBy b3dzOworICAgICAgICBzLT5udW1fY29sc19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19s dW1pbmFuY2UgPSBjb2xzOworCisgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IChyb3dz ICogY29scyAqIDQpKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisK KyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dzOyBpKyspIHsKKyAgICAgICAgICAgIGZv ciAoaW50IGogPSAwOyBqIDwgY29sczsgaisrKSB7CisgICAgICAgICAgICAgICAgcy0+bWFzdGVy aW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pdID0KKyAgICAgICAgICAgICAg ICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCA0KSwgcGVha19sdW1pbmFuY2VfZGVufTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGZvciAoaW50IHcgPSAwOyB3 IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAgICBBVkhEUlBsdXNDb2xvclRyYW5zZm9y bVBhcmFtcyAqcGFyYW1zID0gJnMtPnBhcmFtc1t3XTsKKyAgICAgICAgaWYgKGdldF9iaXRzX2xl ZnQoZ2IpIDwgMSkKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOworCisg ICAgICAgIHBhcmFtcy0+dG9uZV9tYXBwaW5nX2ZsYWcgPSBnZXRfYml0czEoZ2IpOworICAgICAg ICBpZiAocGFyYW1zLT50b25lX21hcHBpbmdfZmxhZykgeworICAgICAgICAgICAgaWYgKGdldF9i aXRzX2xlZnQoZ2IpIDwgMjgpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJ RERBVEE7CisKKyAgICAgICAgICAgIHBhcmFtcy0+a25lZV9wb2ludF94ID0KKyAgICAgICAgICAg ICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2IsIDEyKSwga25lZV9wb2ludF9kZW59OworICAg ICAgICAgICAgcGFyYW1zLT5rbmVlX3BvaW50X3kgPQorICAgICAgICAgICAgICAgIChBVlJhdGlv bmFsKXtnZXRfYml0cyhnYiwgMTIpLCBrbmVlX3BvaW50X2Rlbn07CisgICAgICAgICAgICBwYXJh bXMtPm51bV9iZXppZXJfY3VydmVfYW5jaG9ycyA9IGdldF9iaXRzKGdiLCA0KTsKKworICAgICAg ICAgICAgaWYgKGdldF9iaXRzX2xlZnQoZ2IpIDwgKHBhcmFtcy0+bnVtX2Jlemllcl9jdXJ2ZV9h bmNob3JzICogMTApKQorICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRB OworCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhcmFtcy0+bnVtX2Jlemllcl9j dXJ2ZV9hbmNob3JzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBwYXJhbXMtPmJlemllcl9jdXJ2 ZV9hbmNob3JzW2ldID0KKyAgICAgICAgICAgICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRz KGdiLCAxMCksIGJlemllcl9hbmNob3JfZGVufTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor CisgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IDEpCisgICAgICAgICAgICByZXR1cm4g QVZFUlJPUl9JTlZBTElEREFUQTsKKyAgICAgICAgcGFyYW1zLT5jb2xvcl9zYXR1cmF0aW9uX21h cHBpbmdfZmxhZyA9IGdldF9iaXRzMShnYik7CisgICAgICAgIGlmIChwYXJhbXMtPmNvbG9yX3Nh dHVyYXRpb25fbWFwcGluZ19mbGFnKSB7CisgICAgICAgICAgICBpZiAoZ2V0X2JpdHNfbGVmdChn YikgPCA2KQorICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOworICAg ICAgICAgICAgcGFyYW1zLT5jb2xvcl9zYXR1cmF0aW9uX3dlaWdodCA9CisgICAgICAgICAgICAg ICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCA2KSwgc2F0dXJhdGlvbl93ZWlnaHRfZGVufTsK KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbGliYXZ1 dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmggYi9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRh dGEuaAppbmRleCAyZDcyZGU1NmFlLi5mYWE0ZjQ2YjBiIDEwMDY0NAotLS0gYS9saWJhdnV0aWwv aGRyX2R5bmFtaWNfbWV0YWRhdGEuaAorKysgYi9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRh dGEuaApAQCAtMzQwLDQgKzM0MCwxNyBAQCBBVkR5bmFtaWNIRFJQbHVzICphdl9keW5hbWljX2hk cl9wbHVzX2FsbG9jKHNpemVfdCAqc2l6ZSk7CiAgKi8KIEFWRHluYW1pY0hEUlBsdXMgKmF2X2R5 bmFtaWNfaGRyX3BsdXNfY3JlYXRlX3NpZGVfZGF0YShBVkZyYW1lICpmcmFtZSk7CiAKKy8qKgor ICogUGFyc2UgdGhlIHVzZXIgZGF0YSByZWdpc3RlcmVkIElUVS1UIFQuMzUgdG8gQVZidWZmZXIg KEFWRHluYW1pY0hEUlBsdXMpLgorICogVGhlIFQuMzUgYnVmZmVyIG11c3QgYmVnaW4gd2l0aCB0 aGUgYXBwbGljYXRpb24gbW9kZSwgc2tpcHBpbmcgdGhlCisgKiBjb3VudHJ5IGNvZGUsIHRlcm1p bmFsIHByb3ZpZGVyIGNvZGVzLCBhbmQgYXBwbGljYXRpb24gaWRlbnRpZmllci4KKyAqIEBwYXJh bSBzIEEgcG9pbnRlciBjb250YWluaW5nIHRoZSBkZWNvZGVkIEFWRHluYW1pY0hEUlBsdXMgc3Ry dWN0dXJlLgorICogQHBhcmFtIGRhdGEgVGhlIGJ5dGUgYXJyYXkgY29udGFpbmluZyB0aGUgcmF3 IElUVS1UIFQuMzUgZGF0YS4KKyAqIEBwYXJhbSBzaXplIFNpemUgb2YgdGhlIGRhdGEgYXJyYXkg aW4gYnl0ZXMuCisgKgorICogQHJldHVybiAwIGlmIHN1Y2NlZWQuIE90aGVyd2lzZSwgcmV0dXJu cyB0aGUgYXBwcm9wcmlhdGUgQVZFUlJPUi4KKyAqLworaW50IGF2X2R5bmFtaWNfaGRyX3BsdXNf ZnJvbV90MzUoQVZEeW5hbWljSERSUGx1cyAqcywgY29uc3QgdWludDhfdCAqZGF0YSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKTsKKwogI2VuZGlmIC8qIEFW VVRJTF9IRFJfRFlOQU1JQ19NRVRBREFUQV9IICovCi0tIAoyLjM5LjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxp c3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlz dGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3Ig ZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vi c2NyaWJlIi4K