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 1E7FD49ACA for ; Tue, 27 Feb 2024 22:12:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4F48E68C778; Wed, 28 Feb 2024 00:12:43 +0200 (EET) Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EC63168BF78 for ; Wed, 28 Feb 2024 00:12:36 +0200 (EET) Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2d2ab9c5e83so8162681fa.2 for ; Tue, 27 Feb 2024 14:12:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709071956; x=1709676756; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=tOcp5klsoe5P/zSZSy1LGFRklqTrq2H5f+b/mvbkf4A=; b=Y7bwQvydZMkrnIignebOBSPEj3HTs9U13dqH+dYU0Whri2SlgxvIAxAatkBQhRAmGy yLXxJVC9Kt1+H3h2eY6Ujhx20TyiVLihOhP8YSNoBH7itlbaOQR4r4zLwUR5pwmps65z 1dKdKf0UvqlxZjfLGQsZ0y8v1b9iQ0jIoT2mnS0omTIrytKoWCvSrFcXAhgoWlzUJdW7 ZfJi+fNZ7ENpZStXyqLd+GHoMbhW1pTzglFmG+7iI0LCAcaps0AfFF6ioo5Eac3Hm9DL 6OIqPMJcsKO5NqyxNqhMo3ckD4Qw/Vm7U6CA/hIe8GI2E/vUy7Lm0DrdiExcK/xd+x3j 6Y8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709071956; x=1709676756; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=tOcp5klsoe5P/zSZSy1LGFRklqTrq2H5f+b/mvbkf4A=; b=Olrf9pfK1sq/8b4OmykvyBhTqYm/vdCkUeXKBPKN1O70uC4mUiN1MUbwQ89wmN45hB E+4+LlfEGtHjPnsLUZw50V5CtsukqUkcgUSVoCNVS6tzAdTLjSUND9LdXd4zHzT+fyyd QQpzxKxOOWpowWDJYr5M7O3qFL0dNo4Jwyk36tkzQmqSCazSjoFdFjQNL0hrBCDFpU1e RZqE6T4JfcQincwqAXfBwJv+gj1bk5XK8C/xTh7nDwOeOlHczWL65aM4ZUaDoNeow9PE D1oZhsmhKzsyX0PAz2ShSZOwKkmiysEw3aTWtorfESHtGZFaeaPZtMm6vbmjm+qPe5m+ 12eA== X-Gm-Message-State: AOJu0YxiCcUDsBxI+Z3cDMKybMhmm9r2UZ+XY+EHY2/IHTiqu8xgXJ1G Qm/0ecyoFp9W4QG4iVXPHoJ01ui6GGKHDq6sHouDSnn+uMKZrIgqW7BQWfG0 X-Google-Smtp-Source: AGHT+IGzck9GInD+4L0R144fApYsNPHFmgNQ9GlXGGzAeU7XlGOEggCyteDW5O+Vim2jX7QW7FHuXA== X-Received: by 2002:a2e:b88f:0:b0:2d2:92f5:964f with SMTP id r15-20020a2eb88f000000b002d292f5964fmr3264471ljp.26.1709071955420; Tue, 27 Feb 2024 14:12:35 -0800 (PST) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id j9-20020a2e8009000000b002d09bc941e8sm1373564ljg.139.2024.02.27.14.12.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Feb 2024 14:12:34 -0800 (PST) From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Wed, 28 Feb 2024 00:12:03 +0200 Message-ID: <20240227221226.1377758-1-jeebjp@gmail.com> X-Mailer: git-send-email 2.43.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v6 00/13] encoder AVCodecContext configuration side data 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: RGlmZmVyZW5jZXMgdG8gdjU6CjEuIHJlYmFzZWQgb24gdG9wIG9mIGN1cnJlbnQgbWFzdGVyCjIu IGFzIHJlcXVlc3RlZCBieSBKYW1lcywgdGhlcmUgaXMgbm8gbG9uZ2VyIGEgc2V0IHN0cnVjdCwg YnV0IGluc3RlYWQgdGhlcmUKICAgbm93IGlzIGFuIGFkZGl0aW9uYWwgKiotYmFzZWQgbGlzdCBh cyB3ZWxsIGFzIGEgc2VwYXJhdGUgY291bnRlci4KCkNvbXBhcmlzb24gVVJMIChtb3N0bHkgY29u ZmlndXJlIGFuZCB3cmFwcGVycywgYXZ1dGlsL2ZyYW1lLmMpOgpodHRwczovL2dpdGh1Yi5jb20v amVlYi9mZm1wZWcvY29tcGFyZS9hdmNvZGVjX2NsbF9tZGN2X3NpZGVfZGF0YV92NS4uYXZjb2Rl Y19jbGxfbWRjdl9zaWRlX2RhdGFfdjYKClRoaXMgcGF0Y2ggc2V0IEkndmUgbm93IGJlZW4gd29y a2luZyBmb3IgYSB3aGlsZSBzaW5jZSBJIGZlbHQgbGlrZSBpdCB3YXMgd2VpcmQKd2UgY291bGRu J3QgcGFzcyB0aHJvdWdoIGluZm9ybWF0aW9uIHN1Y2ggYXMgc3RhdGljIEhEUiBtZXRhZGF0YSB0 byBlbmNvZGVycwpmcm9tIGRlY29kZWQgaW5wdXQuIFRoaXMgaW5pdGlhbCB2ZXJzaW9uIGFkZHMg dGhlIG5lY2Vzc2FyeSBmcmFtZXdvcmssIGFzIHdlbGwKYXMgYWRkcyBzdGF0aWMgSERSIG1ldGFk YXRhIHN1cHBvcnQgZm9yIGxpYnN2dGF2MSwgbGlieDI2NCBhcyB3ZWxsIGFzIGxpYngyNjUKd3Jh cHBlcnMuCgpBbiBhbHRlcm5hdGl2ZSB0byB0aGlzIHdvdWxkIGJlIHRvIG1ha2UgZW5jb2RlcnMg b25seSBwcm9wZXJseSBpbml0aWFsaXplIHdoZW4KdGhleSByZWNlaXZlIHRoZSBmaXJzdCBBVkZy YW1lLCBidXQgdGhhdCBzZWVtcyB0byBiZSBhIGJpZ2dlciwgbmFzdGllciBjaGFuZ2UKdGhhbiBp bnRyb2R1Y2luZyBhbiBBVkZyYW1lU2lkZURhdGFTZXQgaW4gYXZjdHggYXMgZXZlcnl0aGluZyBz ZWVtcyB0bwpwcmVzdW1lIHRoYXQgZXh0cmFkYXRhIGV0YyBhcmUgYXZhaWxhYmxlIGFmdGVyIG9w ZW5pbmcgdGhlIGVuY29kZXIuCgpOb3RlOiBBbnkgb3BpbmlvbnMgb24gd2hldGhlciBGRkNvZGVj IG9yIEFWQ29kZWMgc2hvdWxkIGhhdmUKICAgICAgaGFuZGxlZF9zaWRlX2RhdGEgbGlzdCwgc28g dGhhdCBpZiBmb3JtYXQgc3BlY2lmaWMgZ2VuZXJpYyBsb2dpYyBpcwogICAgICBhZGRlZCwgaXQg Y291bGQgYmUgY2hlY2tlZCB3aGV0aGVyIHRoZSBjb2RlYyBpdHNlbGYgaGFuZGxlcyB0aGlzIHNp ZGUKICAgICAgZGF0YT8gVGhpcyBjb3VsZCBhbHNvIGJlIHV0aWxpemVkIHRvIGxpc3QgaGFuZGxl ZCBzaWRlIGRhdGEgZnJvbSBmLmV4LgogICAgICBgZmZtcGVnIC1oIGVuY29kZXI9bGlic3Z0YXYx YC4KCkphbgoKSmFuIEVrc3Ryw7ZtICgxMyk6CiAgYXZ1dGlsL2ZyYW1lOiBzcGxpdCBzaWRlIGRh dGEgbGlzdCB3aXBpbmcgb3V0IHRvIG5vbi1BVkZyYW1lIGZ1bmN0aW9uCiAgYXZ1dGlsL2ZyYW1l OiBhZGQgaGVscGVyIGZvciBmcmVlaW5nIGFycmF5cyBvZiBzaWRlIGRhdGEKICBhdnV0aWwvZnJh bWU6IHNwbGl0IHNpZGVfZGF0YV9mcm9tX2J1ZiB0byBiYXNlIGFuZCBBVkZyYW1lIGZ1bmMKICBh dnV0aWwvZnJhbWU6IHNwbGl0IHNpZGUgZGF0YSByZW1vdmFsIG91dCB0byBub24tQVZGcmFtZSBm dW5jdGlvbgogIGF2dXRpbC9mcmFtZTogYWRkIGhlbHBlciBmb3IgYWRkaW5nIHNpZGUgZGF0YSB0 byBhcnJheQogIGF2dXRpbC9mcmFtZTogYWRkIGhlbHBlciBmb3IgYWRkaW5nIGV4aXN0aW5nIHNp ZGUgZGF0YSB0byBzZXQKICBhdnV0aWwvZnJhbWU6IGFkZCBoZWxwZXIgZm9yIGdldHRpbmcgc2lk ZSBkYXRhIGZyb20gYXJyYXkKICBhdmNvZGVjOiBhZGQgZnJhbWUgc2lkZSBkYXRhIGFycmF5IHRv IEFWQ29kZWNDb250ZXh0CiAgYXZjb2RlYzogYWRkIGhlbHBlciBmb3IgY29uZmlndXJpbmcgQVZD b2RlY0NvbnRleHQncyBmcmFtZSBzaWRlIGRhdGEKICBmZm1wZWc6IHBhc3MgZmlyc3QgdmlkZW8g QVZGcmFtZSdzIHNpZGUgZGF0YSB0byBlbmNvZGVyCiAgYXZjb2RlYy9saWJzdnRhdjE6IGFkZCBz dXBwb3J0IGZvciB3cml0aW5nIG91dCBDTEwgYW5kIE1EQ1YKICBhdmNvZGVjL2xpYngyNjQ6IGFk ZCBzdXBwb3J0IGZvciB3cml0aW5nIG91dCBDTEwgYW5kIE1EQ1YKICBhdmNvZGVjL2xpYngyNjU6 IGFkZCBzdXBwb3J0IGZvciB3cml0aW5nIG91dCBDTEwgYW5kIE1EQ1YKCiBjb25maWd1cmUgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICsKIGZmdG9vbHMvZmZtcGVnX2VuYy5jICAgICAgICAg ICAgfCAgMTAgKysKIGxpYmF2Y29kZWMvYXZjb2RlYy5jICAgICAgICAgICAgfCAgMzAgKysrKysr CiBsaWJhdmNvZGVjL2F2Y29kZWMuaCAgICAgICAgICAgIHwgIDI4ICsrKysrKwogbGliYXZjb2Rl Yy9saWJzdnRhdjEuYyAgICAgICAgICB8ICA2OCArKysrKysrKysrKysrCiBsaWJhdmNvZGVjL2xp YngyNjQuYyAgICAgICAgICAgIHwgIDc5ICsrKysrKysrKysrKysrKysKIGxpYmF2Y29kZWMvbGli eDI2NS5jICAgICAgICAgICAgfCAgODggKysrKysrKysrKysrKysrKysKIGxpYmF2Y29kZWMvb3B0 aW9ucy5jICAgICAgICAgICAgfCAgIDIgKwogbGliYXZ1dGlsL01ha2VmaWxlICAgICAgICAgICAg ICB8ICAgMSArCiBsaWJhdnV0aWwvZnJhbWUuYyAgICAgICAgICAgICAgIHwgMTYzICsrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tCiBsaWJhdnV0aWwvZnJhbWUuaCAgICAgICAgICAgICAg IHwgIDY1ICsrKysrKysrKysrKysKIGxpYmF2dXRpbC90ZXN0cy9zaWRlX2RhdGFfc2V0LmMgfCAx MDMgKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL2ZhdGUvZW5jX2V4dGVybmFsLm1hayAgICAg fCAgMTUgKysrCiB0ZXN0cy9mYXRlL2xpYmF2dXRpbC5tYWsgICAgICAgIHwgICA0ICsKIHRlc3Rz L3JlZi9mYXRlL2xpYnN2dGF2MS1oZHIxMCAgfCAgMTQgKysrCiB0ZXN0cy9yZWYvZmF0ZS9saWJ4 MjY0LWhkcjEwICAgIHwgIDE1ICsrKwogdGVzdHMvcmVmL2ZhdGUvbGlieDI2NS1oZHIxMCAgICB8 ICAxNiArKysrCiB0ZXN0cy9yZWYvZmF0ZS9zaWRlX2RhdGFfc2V0ICAgIHwgIDE0ICsrKwogMTgg ZmlsZXMgY2hhbmdlZCwgNjg3IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGxpYmF2dXRpbC90ZXN0cy9zaWRlX2RhdGFfc2V0LmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0cy9yZWYvZmF0ZS9saWJzdnRhdjEtaGRyMTAKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB0ZXN0cy9yZWYvZmF0ZS9saWJ4MjY0LWhkcjEwCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMv cmVmL2ZhdGUvbGlieDI2NS1oZHIxMAogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL3JlZi9mYXRl L3NpZGVfZGF0YV9zZXQKCkZ1bGwgZGlmZiBiYXNlZCBvbiB0aGUgc2FtZSBiYXNlIGhhc2ggZm9y IHY1LT52NjoKCmRpZmYgLS1naXQgYS9mZnRvb2xzL2ZmbXBlZ19lbmMuYyBiL2ZmdG9vbHMvZmZt cGVnX2VuYy5jCmluZGV4IDFlYjJjY2E0ZWQuLmUzOWJhMDViM2IgMTAwNjQ0Ci0tLSBhL2ZmdG9v bHMvZmZtcGVnX2VuYy5jCisrKyBiL2ZmdG9vbHMvZmZtcGVnX2VuYy5jCkBAIC0yNDcsMTAgKzI0 Nyw3IEBAIGludCBlbmNfb3Blbih2b2lkICpvcGFxdWUsIGNvbnN0IEFWRnJhbWUgKmZyYW1lKQog CiAgICAgICAgIHJldCA9IGF2Y29kZWNfY29uZmlndXJlX3NpZGVfZGF0YSgKICAgICAgICAgICAg IGVuY19jdHgsCi0gICAgICAgICAgICAmKGNvbnN0IEFWRnJhbWVTaWRlRGF0YVNldCl7Ci0gICAg ICAgICAgICAgICAgLnNkICAgID0gZnJhbWUtPnNpZGVfZGF0YSwKLSAgICAgICAgICAgICAgICAu bmJfc2QgPSBmcmFtZS0+bmJfc2lkZV9kYXRhCi0gICAgICAgICAgICB9LAorICAgICAgICAgICAg KGNvbnN0IEFWRnJhbWVTaWRlRGF0YSAqKilmcmFtZS0+c2lkZV9kYXRhLCBmcmFtZS0+bmJfc2lk ZV9kYXRhLAogICAgICAgICAgICAgQVZfRlJBTUVfU0lERV9EQVRBX1NFVF9GTEFHX05PX0RVUExJ Q0FURVMpOwogICAgICAgICBpZiAocmV0IDwgMCkgewogICAgICAgICAgICAgYXZfbG9nKE5VTEws IEFWX0xPR19FUlJPUiwgImZhaWxlZCB0byBjb25maWd1cmUgdmlkZW8gZW5jb2RlcjogJXMhXG4i LApkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hdmNvZGVjLmMgYi9saWJhdmNvZGVjL2F2Y29kZWMu YwppbmRleCA5MjNmYWMyYzI2Li5kM2VjNDFiMjgwIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2F2 Y29kZWMuYworKysgYi9saWJhdmNvZGVjL2F2Y29kZWMuYwpAQCAtNzIyLDI2ICs3MjIsMjggQEAg aW50IGF0dHJpYnV0ZV9hbGlnbl9hcmcgYXZjb2RlY19yZWNlaXZlX2ZyYW1lKEFWQ29kZWNDb250 ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnIKIH0KIAogaW50IGF2Y29kZWNfY29uZmlndXJlX3NpZGVf ZGF0YShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IEFWRnJhbWVTaWRlRGF0YVNldCAqc2V0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBBVkZyYW1lU2lkZURhdGEgKipzZCwgY29uc3QgaW50IG5iX3NkLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAg ICAgaWYgKCFhdmN0eCkKICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKIAotICAgIGlm ICghc2V0KSB7Ci0gICAgICAgIGF2X2ZyYW1lX3NpZGVfZGF0YV9zZXRfdW5pbml0KCZhdmN0eC0+ ZnJhbWVfc2Rfc2V0KTsKKyAgICBpZiAoIXNkKSB7CisgICAgICAgIGF2X2ZyYW1lX3NpZGVfZGF0 YV9mcmVlKAorICAgICAgICAgICAgJmF2Y3R4LT5mcmFtZV9zaWRlX2RhdGEsICZhdmN0eC0+bmJf ZnJhbWVfc2lkZV9kYXRhKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKHNl dC0+bmJfc2QgPiAwICYmIHNldC0+bmJfc2QgPT0gYXZjdHgtPmZyYW1lX3NkX3NldC5uYl9zZCAm JgotICAgICAgICBzZXQtPnNkID09IGF2Y3R4LT5mcmFtZV9zZF9zZXQuc2QpCisgICAgaWYgKG5i X3NkID4gMCAmJiBuYl9zZCA9PSBhdmN0eC0+bmJfZnJhbWVfc2lkZV9kYXRhICYmCisgICAgICAg IHNkID09IChjb25zdCBBVkZyYW1lU2lkZURhdGEgKiopYXZjdHgtPmZyYW1lX3NpZGVfZGF0YSkK ICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBp IDwgc2V0LT5uYl9zZDsgaSsrKSB7Ci0gICAgICAgIGludCByZXQgPSBhdl9mcmFtZV9zaWRlX2Rh dGFfc2V0X2VudHJ5X2Zyb21fc2QoCi0gICAgICAgICAgICAmYXZjdHgtPmZyYW1lX3NkX3NldCwg c2V0LT5zZFtpXSwgZmxhZ3MpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJfc2Q7IGkrKykg eworICAgICAgICBpbnQgcmV0ID0gYXZfZnJhbWVfc2lkZV9kYXRhX2Zyb21fc2QoCisgICAgICAg ICAgICAmYXZjdHgtPmZyYW1lX3NpZGVfZGF0YSwgJmF2Y3R4LT5uYl9mcmFtZV9zaWRlX2RhdGEs IHNkW2ldLCBmbGFncyk7CiAgICAgICAgIGlmIChyZXQgPCAwKSB7Ci0gICAgICAgICAgICBhdl9m cmFtZV9zaWRlX2RhdGFfc2V0X3VuaW5pdCgmYXZjdHgtPmZyYW1lX3NkX3NldCk7CisgICAgICAg ICAgICBhdl9mcmFtZV9zaWRlX2RhdGFfZnJlZSgKKyAgICAgICAgICAgICAgICAmYXZjdHgtPmZy YW1lX3NpZGVfZGF0YSwgJmF2Y3R4LT5uYl9mcmFtZV9zaWRlX2RhdGEpOwogICAgICAgICAgICAg cmV0dXJuIHJldDsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYXZj b2RlYy5oIGIvbGliYXZjb2RlYy9hdmNvZGVjLmgKaW5kZXggZTllZDg4MzMwYy4uM2I1Y2E5YzBl ZiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9hdmNvZGVjLmgKKysrIGIvbGliYXZjb2RlYy9hdmNv ZGVjLmgKQEAgLTIxMjYsNyArMjEyNiw4IEBAIHR5cGVkZWYgc3RydWN0IEFWQ29kZWNDb250ZXh0 IHsKICAgICAgKiAtIGVuY29kaW5nOiBzZXQgYnkgdXNlcgogICAgICAqIC0gZGVjb2Rpbmc6IHVu dXNlZAogICAgICAqLwotICAgIEFWRnJhbWVTaWRlRGF0YVNldCBmcmFtZV9zZF9zZXQ7CisgICAg QVZGcmFtZVNpZGVEYXRhICAqKmZyYW1lX3NpZGVfZGF0YTsKKyAgICBpbnQgICAgICAgICAgICAg bmJfZnJhbWVfc2lkZV9kYXRhOwogfSBBVkNvZGVjQ29udGV4dDsKIAogLyoqCkBAIC0zMTY5LDgg KzMxNzAsOSBAQCBpbnQgYXZjb2RlY19pc19vcGVuKEFWQ29kZWNDb250ZXh0ICpzKTsKICAqIHdo b2xlIHNpZGUgZGF0YSBzZXQuCiAgKgogICogQHBhcmFtIGF2Y3R4IGNvbnRleHQgdG8gd2hpY2gg dGhlIHNpZGUgZGF0YSBzaG91bGQgYmUgYWRkZWQKLSAqIEBwYXJhbSBzZXQgYSBzZXQgZnJvbSB3 aGljaCB0aGUgc2lkZSBkYXRhIHNob3VsZCBiZSBhZGRlZCBmcm9tLgotICogICAgICAgICAgICBp ZiBudWxsLCBjbGVhcnMgb3V0IHRoZSBzaWRlIGRhdGEgZm9yIHRoaXMgY29udGV4dC4KKyAqIEBw YXJhbSBzZCAgICBhcnJheSBvZiBzaWRlIGRhdGEgdG8gdXNlIGFzIGlucHV0LgorICogICAgICAg ICAgICAgIGlmIG51bGwsIGNsZWFycyBvdXQgdGhlIHNpZGUgZGF0YSBmb3IgdGhpcyBjb250ZXh0 LgorICogQHBhcmFtIG5iX3NkIGludGVnZXIgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGVudHJp ZXMgaW4gdGhlIGFycmF5LgogICogQHBhcmFtIGZsYWdzIFNvbWUgY29tYmluYXRpb24gb2YgQVZf RlJBTUVfU0lERV9EQVRBX1NFVF9GTEFHXyogZmxhZ3MsIG9yIDAuCiAgKgogICogQHJldHVybiBu ZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUsID49MCBvbiBzdWNjZXNzLgpAQCAtMzE3OCw5 ICszMTgwLDggQEAgaW50IGF2Y29kZWNfaXNfb3BlbihBVkNvZGVjQ29udGV4dCAqcyk7CiAgKiBA c2VlIGF2X2ZyYW1lX3NpZGVfZGF0YV9zZXRfbmV3X2VudHJ5IHJlZ2FyZGluZyB0aGUgZmxhZ3Mu CiAgKi8KIGludCBhdmNvZGVjX2NvbmZpZ3VyZV9zaWRlX2RhdGEoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBVkZyYW1lU2lkZURh dGFTZXQgKnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQVZGcmFt ZVNpZGVEYXRhICoqc2QsIGNvbnN0IGludCBuYl9zZCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKLQogLyoqCiAgKiBAfQogICovCmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL2xpYnN2dGF2MS5jIGIvbGliYXZjb2RlYy9saWJzdnRhdjEuYwppbmRl eCBhMTA4ZjQ2MjA3Li43NmYwMDBmZDY0IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2xpYnN2dGF2 MS5jCisrKyBiL2xpYmF2Y29kZWMvbGlic3Z0YXYxLmMKQEAgLTE4OSwxMyArMTg5LDE0IEBAIHN0 YXRpYyB2b2lkIGhhbmRsZV9tZGN2KHN0cnVjdCBFYlN2dEF2MU1hc3RlcmluZ0Rpc3BsYXlJbmZv ICpkc3QsCiBzdGF0aWMgdm9pZCBoYW5kbGVfc2lkZV9kYXRhKEFWQ29kZWNDb250ZXh0ICphdmN0 eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWJTdnRBdjFFbmNDb25maWd1cmF0aW9u ICpwYXJhbSkKIHsKLSAgICBjb25zdCBBVkZyYW1lU2lkZURhdGFTZXQgc2V0ID0gYXZjdHgtPmZy YW1lX3NkX3NldDsKICAgICBjb25zdCBBVkZyYW1lU2lkZURhdGEgKmNsbF9zZCA9Ci0gICAgICAg IGF2X2ZyYW1lX3NpZGVfZGF0YV9zZXRfZ2V0X2VudHJ5KAotICAgICAgICAgICAgc2V0LCBBVl9G UkFNRV9EQVRBX0NPTlRFTlRfTElHSFRfTEVWRUwpOworICAgICAgICBhdl9mcmFtZV9zaWRlX2Rh dGFfZ2V0KAorICAgICAgICAgICAgKGNvbnN0IEFWRnJhbWVTaWRlRGF0YSAqKilhdmN0eC0+ZnJh bWVfc2lkZV9kYXRhLAorICAgICAgICAgICAgYXZjdHgtPm5iX2ZyYW1lX3NpZGVfZGF0YSwgQVZf RlJBTUVfREFUQV9DT05URU5UX0xJR0hUX0xFVkVMKTsKICAgICBjb25zdCBBVkZyYW1lU2lkZURh dGEgKm1kY3Zfc2QgPQotICAgICAgICBhdl9mcmFtZV9zaWRlX2RhdGFfc2V0X2dldF9lbnRyeSgK LSAgICAgICAgICAgIHNldCwgQVZfRlJBTUVfREFUQV9NQVNURVJJTkdfRElTUExBWV9NRVRBREFU QSk7CisgICAgICAgIGF2X2ZyYW1lX3NpZGVfZGF0YV9nZXQoCisgICAgICAgICAgICAoY29uc3Qg QVZGcmFtZVNpZGVEYXRhICoqKWF2Y3R4LT5mcmFtZV9zaWRlX2RhdGEsCisgICAgICAgICAgICBh dmN0eC0+bmJfZnJhbWVfc2lkZV9kYXRhLCBBVl9GUkFNRV9EQVRBX01BU1RFUklOR19ESVNQTEFZ X01FVEFEQVRBKTsKIAogICAgIGlmIChjbGxfc2QpIHsKICAgICAgICAgY29uc3QgQVZDb250ZW50 TGlnaHRNZXRhZGF0YSAqY2xsID0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbGlieDI2NC5jIGIv bGliYXZjb2RlYy9saWJ4MjY0LmMKaW5kZXggNjgzYzBkMTcwOS4uZWZmZGNmZGIzNyAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy9saWJ4MjY0LmMKKysrIGIvbGliYXZjb2RlYy9saWJ4MjY0LmMKQEAg LTkyMywxMyArOTIzLDE0IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9tZGN2KHgyNjRfcGFyYW1fdCAq cGFyYW1zLAogc3RhdGljIHZvaWQgaGFuZGxlX3NpZGVfZGF0YShBVkNvZGVjQ29udGV4dCAqYXZj dHgsIHgyNjRfcGFyYW1fdCAqcGFyYW1zKQogewogI2lmIENPTkZJR19MSUJYMjY0X0hEUjEwCi0g ICAgY29uc3QgQVZGcmFtZVNpZGVEYXRhU2V0IHNldCA9IGF2Y3R4LT5mcmFtZV9zZF9zZXQ7CiAg ICAgY29uc3QgQVZGcmFtZVNpZGVEYXRhICpjbGxfc2QgPQotICAgICAgICBhdl9mcmFtZV9zaWRl X2RhdGFfc2V0X2dldF9lbnRyeSgKLSAgICAgICAgICAgIHNldCwgQVZfRlJBTUVfREFUQV9DT05U RU5UX0xJR0hUX0xFVkVMKTsKKyAgICAgICAgYXZfZnJhbWVfc2lkZV9kYXRhX2dldCgKKyAgICAg ICAgICAgIChjb25zdCBBVkZyYW1lU2lkZURhdGEgKiopYXZjdHgtPmZyYW1lX3NpZGVfZGF0YSwK KyAgICAgICAgICAgIGF2Y3R4LT5uYl9mcmFtZV9zaWRlX2RhdGEsIEFWX0ZSQU1FX0RBVEFfQ09O VEVOVF9MSUdIVF9MRVZFTCk7CiAgICAgY29uc3QgQVZGcmFtZVNpZGVEYXRhICptZGN2X3NkID0K LSAgICAgICAgYXZfZnJhbWVfc2lkZV9kYXRhX3NldF9nZXRfZW50cnkoCi0gICAgICAgICAgICBz ZXQsIEFWX0ZSQU1FX0RBVEFfTUFTVEVSSU5HX0RJU1BMQVlfTUVUQURBVEEpOworICAgICAgICBh dl9mcmFtZV9zaWRlX2RhdGFfZ2V0KAorICAgICAgICAgICAgKGNvbnN0IEFWRnJhbWVTaWRlRGF0 YSAqKilhdmN0eC0+ZnJhbWVfc2lkZV9kYXRhLAorICAgICAgICAgICAgYXZjdHgtPm5iX2ZyYW1l X3NpZGVfZGF0YSwgQVZfRlJBTUVfREFUQV9NQVNURVJJTkdfRElTUExBWV9NRVRBREFUQSk7CiAK ICAgICBpZiAoY2xsX3NkKSB7CiAgICAgICAgIGNvbnN0IEFWQ29udGVudExpZ2h0TWV0YWRhdGEg KmNsbCA9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2xpYngyNjUuYyBiL2xpYmF2Y29kZWMvbGli eDI2NS5jCmluZGV4IDk2ZTUwYTYyMjMuLjhkMzY2ZjUxYWIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29k ZWMvbGlieDI2NS5jCisrKyBiL2xpYmF2Y29kZWMvbGlieDI2NS5jCkBAIC0yMzIsMTMgKzIzMiwx NCBAQCBlbmQ6CiBzdGF0aWMgaW50IGhhbmRsZV9zaWRlX2RhdGEoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4LCBjb25zdCB4MjY1X2FwaSAqYXBpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgy NjVfcGFyYW0gKnBhcmFtcykKIHsKLSAgICBjb25zdCBBVkZyYW1lU2lkZURhdGFTZXQgc2V0ID0g YXZjdHgtPmZyYW1lX3NkX3NldDsKICAgICBjb25zdCBBVkZyYW1lU2lkZURhdGEgKmNsbF9zZCA9 Ci0gICAgICAgIGF2X2ZyYW1lX3NpZGVfZGF0YV9zZXRfZ2V0X2VudHJ5KAotICAgICAgICAgICAg c2V0LCBBVl9GUkFNRV9EQVRBX0NPTlRFTlRfTElHSFRfTEVWRUwpOworICAgICAgICBhdl9mcmFt ZV9zaWRlX2RhdGFfZ2V0KAorICAgICAgICAgICAgKGNvbnN0IEFWRnJhbWVTaWRlRGF0YSAqKilh dmN0eC0+ZnJhbWVfc2lkZV9kYXRhLAorICAgICAgICAgICAgYXZjdHgtPm5iX2ZyYW1lX3NpZGVf ZGF0YSwgQVZfRlJBTUVfREFUQV9DT05URU5UX0xJR0hUX0xFVkVMKTsKICAgICBjb25zdCBBVkZy YW1lU2lkZURhdGEgKm1kY3Zfc2QgPQotICAgICAgICBhdl9mcmFtZV9zaWRlX2RhdGFfc2V0X2dl dF9lbnRyeSgKLSAgICAgICAgICAgIHNldCwgQVZfRlJBTUVfREFUQV9NQVNURVJJTkdfRElTUExB WV9NRVRBREFUQSk7CisgICAgICAgIGF2X2ZyYW1lX3NpZGVfZGF0YV9nZXQoCisgICAgICAgICAg ICAoY29uc3QgQVZGcmFtZVNpZGVEYXRhICoqKWF2Y3R4LT5mcmFtZV9zaWRlX2RhdGEsCisgICAg ICAgICAgICBhdmN0eC0+bmJfZnJhbWVfc2lkZV9kYXRhLCBBVl9GUkFNRV9EQVRBX01BU1RFUklO R19ESVNQTEFZX01FVEFEQVRBKTsKIAogICAgIGlmIChjbGxfc2QpIHsKICAgICAgICAgY29uc3Qg QVZDb250ZW50TGlnaHRNZXRhZGF0YSAqY2xsID0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvb3B0 aW9ucy5jIGIvbGliYXZjb2RlYy9vcHRpb25zLmMKaW5kZXggOGUxNmQ1OThhNy4uN2UzOWI0OWI3 ZSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9vcHRpb25zLmMKKysrIGIvbGliYXZjb2RlYy9vcHRp b25zLmMKQEAgLTE4MSw3ICsxODEsOCBAQCB2b2lkIGF2Y29kZWNfZnJlZV9jb250ZXh0KEFWQ29k ZWNDb250ZXh0ICoqcGF2Y3R4KQogICAgIGF2X2ZyZWVwKCZhdmN0eC0+aW50ZXJfbWF0cml4KTsK ICAgICBhdl9mcmVlcCgmYXZjdHgtPnJjX292ZXJyaWRlKTsKICAgICBhdl9jaGFubmVsX2xheW91 dF91bmluaXQoJmF2Y3R4LT5jaF9sYXlvdXQpOwotICAgIGF2X2ZyYW1lX3NpZGVfZGF0YV9zZXRf dW5pbml0KCZhdmN0eC0+ZnJhbWVfc2Rfc2V0KTsKKyAgICBhdl9mcmFtZV9zaWRlX2RhdGFfZnJl ZSgKKyAgICAgICAgJmF2Y3R4LT5mcmFtZV9zaWRlX2RhdGEsICZhdmN0eC0+bmJfZnJhbWVfc2lk ZV9kYXRhKTsKIAogICAgIGF2X2ZyZWVwKHBhdmN0eCk7CiB9CmRpZmYgLS1naXQgYS9saWJhdnV0 aWwvZnJhbWUuYyBiL2xpYmF2dXRpbC9mcmFtZS5jCmluZGV4IGU0MDA0ZGFhNGIuLmU3Njc5YmYz NGQgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC9mcmFtZS5jCisrKyBiL2xpYmF2dXRpbC9mcmFtZS5j CkBAIC05MCw5ICs5MCw5IEBAIHN0YXRpYyB2b2lkIGZyYW1lX3NpZGVfZGF0YV93aXBlKEFWRnJh bWUgKmZyYW1lKQogICAgIHdpcGVfc2lkZV9kYXRhKCZmcmFtZS0+c2lkZV9kYXRhLCAmZnJhbWUt Pm5iX3NpZGVfZGF0YSk7CiB9CiAKLXZvaWQgYXZfZnJhbWVfc2lkZV9kYXRhX3NldF91bmluaXQo QVZGcmFtZVNpZGVEYXRhU2V0ICpzZXQpCit2b2lkIGF2X2ZyYW1lX3NpZGVfZGF0YV9mcmVlKEFW RnJhbWVTaWRlRGF0YSAqKipzZCwgaW50ICpuYl9zZCkKIHsKLSAgICB3aXBlX3NpZGVfZGF0YSgm c2V0LT5zZCwgJnNldC0+bmJfc2QpOworICAgIHdpcGVfc2lkZV9kYXRhKHNkLCBuYl9zZCk7CiB9 CiAKIHN0YXRpYyB2b2lkIHJlbW92ZV9zaWRlX2RhdGEoQVZGcmFtZVNpZGVEYXRhICoqKnNkLCBp bnQgKm5iX3NpZGVfZGF0YSwKQEAgLTExMCwxOSArMTEwLDE4IEBAIHN0YXRpYyB2b2lkIHJlbW92 ZV9zaWRlX2RhdGEoQVZGcmFtZVNpZGVEYXRhICoqKnNkLCBpbnQgKm5iX3NpZGVfZGF0YSwKICAg ICB9CiB9CiAKLXN0YXRpYyB2b2lkIHJlbW92ZV9zaWRlX2RhdGFfYnlfZW50cnkoQVZGcmFtZVNp ZGVEYXRhICoqKnNkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg Km5iX3NpZGVfZGF0YSwKK3N0YXRpYyB2b2lkIHJlbW92ZV9zaWRlX2RhdGFfYnlfZW50cnkoQVZG cmFtZVNpZGVEYXRhICoqKnNkLCBpbnQgKm5iX3NkLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBBVkZyYW1lU2lkZURhdGEgKnRhcmdldCkKIHsKLSAgICBmb3Ig KGludCBpID0gKm5iX3NpZGVfZGF0YSAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgZm9yIChpbnQg aSA9ICpuYl9zZCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgIEFWRnJhbWVTaWRlRGF0YSAq ZW50cnkgPSAoKCpzZClbaV0pOwogICAgICAgICBpZiAoZW50cnkgIT0gdGFyZ2V0KQogICAgICAg ICAgICAgY29udGludWU7CiAKICAgICAgICAgZnJlZV9zaWRlX2RhdGEoJmVudHJ5KTsKIAotICAg ICAgICAoKCpzZClbaV0pID0gKCgqc2QpWypuYl9zaWRlX2RhdGEgLSAxXSk7Ci0gICAgICAgICgq bmJfc2lkZV9kYXRhKS0tOworICAgICAgICAoKCpzZClbaV0pID0gKCgqc2QpWypuYl9zZCAtIDFd KTsKKyAgICAgICAgKCpuYl9zZCktLTsKIAogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODIw LDcgKzgxOSw4IEBAIEZGX0VOQUJMRV9ERVBSRUNBVElPTl9XQVJOSU5HUwogICAgIHJldHVybiBO VUxMOwogfQogCi1zdGF0aWMgQVZGcmFtZVNpZGVEYXRhICphZGRfc2lkZV9kYXRhX3RvX3NldF9m cm9tX2J1ZihBVkZyYW1lU2lkZURhdGFTZXQgKnNldCwKK3N0YXRpYyBBVkZyYW1lU2lkZURhdGEg KmFkZF9zaWRlX2RhdGFfdG9fc2V0X2Zyb21fYnVmKEFWRnJhbWVTaWRlRGF0YSAqKipzZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAq bmJfc2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlbnVtIEFWRnJhbWVTaWRlRGF0YVR5cGUgdHlwZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWQnVmZmVyUmVmICpidWYpCiB7CkBA IC04MjksMTMgKzgyOSwxMyBAQCBzdGF0aWMgQVZGcmFtZVNpZGVEYXRhICphZGRfc2lkZV9kYXRh X3RvX3NldF9mcm9tX2J1ZihBVkZyYW1lU2lkZURhdGFTZXQgKnNldCwKICAgICBpZiAoIWJ1ZikK ICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAoc2V0LT5uYl9zZCA+IElOVF9NQVggLyBz aXplb2YoKnNldC0+c2QpIC0gMSkKKyAgICBpZiAoKm5iX3NkID4gSU5UX01BWCAvIHNpemVvZigq c2QpIC0gMSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICB0bXAgPSBhdl9yZWFsbG9jKHNl dC0+c2QsIChzZXQtPm5iX3NkICsgMSkgKiBzaXplb2YoKnNldC0+c2QpKTsKKyAgICB0bXAgPSBh dl9yZWFsbG9jKCpzZCwgKCpuYl9zZCArIDEpICogc2l6ZW9mKCpzZCkpOwogICAgIGlmICghdG1w KQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBzZXQtPnNkID0gdG1wOworICAgICpzZCA9IHRt cDsKIAogICAgIHJldCA9IGF2X21hbGxvY3ooc2l6ZW9mKCpyZXQpKTsKICAgICBpZiAoIXJldCkK QEAgLTg0Niw3ICs4NDYsNyBAQCBzdGF0aWMgQVZGcmFtZVNpZGVEYXRhICphZGRfc2lkZV9kYXRh X3RvX3NldF9mcm9tX2J1ZihBVkZyYW1lU2lkZURhdGFTZXQgKnNldCwKICAgICByZXQtPnNpemUg PSBidWYtPnNpemU7CiAgICAgcmV0LT50eXBlID0gdHlwZTsKIAotICAgIHNldC0+c2Rbc2V0LT5u Yl9zZCsrXSA9IHJldDsKKyAgICAoKnNkKVsoKm5iX3NkKSsrXSA9IHJldDsKIAogICAgIHJldHVy biByZXQ7CiB9CkBAIC04NTUsMTYgKzg1NSw5IEBAIEFWRnJhbWVTaWRlRGF0YSAqYXZfZnJhbWVf bmV3X3NpZGVfZGF0YV9mcm9tX2J1ZihBVkZyYW1lICpmcmFtZSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIEFWRnJhbWVTaWRlRGF0YVR5cGUg dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB VkJ1ZmZlclJlZiAqYnVmKQogewotICAgIEFWRnJhbWVTaWRlRGF0YVNldCBzZXQgPSB7Ci0gICAg ICAgIC5zZCAgICA9IGZyYW1lLT5zaWRlX2RhdGEsCi0gICAgICAgIC5uYl9zZCA9IGZyYW1lLT5u Yl9zaWRlX2RhdGEsCi0gICAgfTsKLSAgICBBVkZyYW1lU2lkZURhdGEgKnJldCA9IGFkZF9zaWRl X2RhdGFfdG9fc2V0X2Zyb21fYnVmKCZzZXQsIHR5cGUsIGJ1Zik7Ci0KLSAgICBmcmFtZS0+c2lk ZV9kYXRhICAgID0gc2V0LnNkOwotICAgIGZyYW1lLT5uYl9zaWRlX2RhdGEgPSBzZXQubmJfc2Q7 Ci0KLSAgICByZXR1cm4gcmV0OworICAgIHJldHVybgorICAgICAgICBhZGRfc2lkZV9kYXRhX3Rv X3NldF9mcm9tX2J1ZigmZnJhbWUtPnNpZGVfZGF0YSwgJmZyYW1lLT5uYl9zaWRlX2RhdGEsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUsIGJ1Zik7CiB9CiAKIEFW RnJhbWVTaWRlRGF0YSAqYXZfZnJhbWVfbmV3X3NpZGVfZGF0YShBVkZyYW1lICpmcmFtZSwKQEAg LTg3OSwyOSArODcyLDI4IEBAIEFWRnJhbWVTaWRlRGF0YSAqYXZfZnJhbWVfbmV3X3NpZGVfZGF0 YShBVkZyYW1lICpmcmFtZSwKICAgICByZXR1cm4gcmV0OwogfQogCi1BVkZyYW1lU2lkZURhdGEg KmF2X2ZyYW1lX3NpZGVfZGF0YV9zZXRfbmV3X2VudHJ5KEFWRnJhbWVTaWRlRGF0YVNldCAqc2V0 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVt IEFWRnJhbWVTaWRlRGF0YVR5cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncykKK0FWRnJhbWVT aWRlRGF0YSAqYXZfZnJhbWVfc2lkZV9kYXRhX25ldyhBVkZyYW1lU2lkZURhdGEgKioqc2QsIGlu dCAqbmJfc2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBB VkZyYW1lU2lkZURhdGFUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGludCBmbGFncykKIHsKICAgICBBVkJ1ZmZl clJlZiAgICAgKmJ1ZiA9IGF2X2J1ZmZlcl9hbGxvYyhzaXplKTsKICAgICBBVkZyYW1lU2lkZURh dGEgKnJldCA9IE5VTEw7CiAKICAgICBpZiAoZmxhZ3MgJiBBVl9GUkFNRV9TSURFX0RBVEFfU0VU X0ZMQUdfTk9fRFVQTElDQVRFUykKLSAgICAgICAgcmVtb3ZlX3NpZGVfZGF0YSgmc2V0LT5zZCwg JnNldC0+bmJfc2QsIHR5cGUpOworICAgICAgICByZW1vdmVfc2lkZV9kYXRhKHNkLCBuYl9zZCwg dHlwZSk7CiAKLSAgICByZXQgPSBhZGRfc2lkZV9kYXRhX3RvX3NldF9mcm9tX2J1ZihzZXQsIHR5 cGUsIGJ1Zik7CisgICAgcmV0ID0gYWRkX3NpZGVfZGF0YV90b19zZXRfZnJvbV9idWYoc2QsIG5i X3NkLCB0eXBlLCBidWYpOwogICAgIGlmICghcmV0KQogICAgICAgICBhdl9idWZmZXJfdW5yZWYo JmJ1Zik7CiAKICAgICByZXR1cm4gcmV0OwogfQogCi1pbnQgYXZfZnJhbWVfc2lkZV9kYXRhX3Nl dF9lbnRyeV9mcm9tX3NkKEFWRnJhbWVTaWRlRGF0YVNldCAqZHN0LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBVkZyYW1lU2lkZURhdGEgKnNyYywKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdz KQoraW50IGF2X2ZyYW1lX3NpZGVfZGF0YV9mcm9tX3NkKEFWRnJhbWVTaWRlRGF0YSAqKipzZCwg aW50ICpuYl9zZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBVkZyYW1l U2lkZURhdGEgKnNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgZmxhZ3MpCiB7Ci0gICAgaWYgKCFkc3QgfHwgIXNyYykKKyAgICBpZiAoIXNkIHx8ICFzcmMg fHwgIW5iX3NkIHx8ICgqbmJfc2QgJiYgISpzZCkpCiAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJ TlZBTCk7CiAKICAgICB7CkBAIC05MDksOSArOTAxLDkgQEAgaW50IGF2X2ZyYW1lX3NpZGVfZGF0 YV9zZXRfZW50cnlfZnJvbV9zZChBVkZyYW1lU2lkZURhdGFTZXQgKmRzdCwKICAgICAgICAgQVZG cmFtZVNpZGVEYXRhICAgICAgICpzZF9kc3QgPSBOVUxMOwogCiAgICAgICAgIGlmIChmbGFncyAm IEFWX0ZSQU1FX1NJREVfREFUQV9TRVRfRkxBR19OT19EVVBMSUNBVEVTKQotICAgICAgICAgICAg cmVtb3ZlX3NpZGVfZGF0YSgmZHN0LT5zZCwgJmRzdC0+bmJfc2QsIHNyYy0+dHlwZSk7CisgICAg ICAgICAgICByZW1vdmVfc2lkZV9kYXRhKHNkLCBuYl9zZCwgc3JjLT50eXBlKTsKIAotICAgICAg ICBzZF9kc3QgPSBhZGRfc2lkZV9kYXRhX3RvX3NldF9mcm9tX2J1Zihkc3QsIHNyYy0+dHlwZSwg YnVmKTsKKyAgICAgICAgc2RfZHN0ID0gYWRkX3NpZGVfZGF0YV90b19zZXRfZnJvbV9idWYoc2Qs IG5iX3NkLCBzcmMtPnR5cGUsIGJ1Zik7CiAgICAgICAgIGlmICghc2RfZHN0KSB7CiAgICAgICAg ICAgICBhdl9idWZmZXJfdW5yZWYoJmJ1Zik7CiAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihF Tk9NRU0pOwpAQCAtOTIwLDcgKzkxMiw3IEBAIGludCBhdl9mcmFtZV9zaWRlX2RhdGFfc2V0X2Vu dHJ5X2Zyb21fc2QoQVZGcmFtZVNpZGVEYXRhU2V0ICpkc3QsCiAgICAgICAgIHsKICAgICAgICAg ICAgIGludCByZXQgPSBhdl9kaWN0X2NvcHkoJnNkX2RzdC0+bWV0YWRhdGEsIHNyYy0+bWV0YWRh dGEsIDApOwogICAgICAgICAgICAgaWYgKHJldCA8IDApIHsKLSAgICAgICAgICAgICAgICByZW1v dmVfc2lkZV9kYXRhX2J5X2VudHJ5KCZkc3QtPnNkLCAmZHN0LT5uYl9zZCwgc2RfZHN0KTsKKyAg ICAgICAgICAgICAgICByZW1vdmVfc2lkZV9kYXRhX2J5X2VudHJ5KHNkLCBuYl9zZCwgc2RfZHN0 KTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgICAgICAgfQogICAgICAgICB9 CkBAIC05MjksMTIgKzkyMSwxMyBAQCBpbnQgYXZfZnJhbWVfc2lkZV9kYXRhX3NldF9lbnRyeV9m cm9tX3NkKEFWRnJhbWVTaWRlRGF0YVNldCAqZHN0LAogICAgIH0KIH0KIAotQVZGcmFtZVNpZGVE YXRhICphdl9mcmFtZV9zaWRlX2RhdGFfc2V0X2dldF9lbnRyeShjb25zdCBBVkZyYW1lU2lkZURh dGFTZXQgc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlbnVtIEFWRnJhbWVTaWRlRGF0YVR5cGUgdHlwZSkKK2NvbnN0IEFWRnJhbWVTaWRlRGF0 YSAqYXZfZnJhbWVfc2lkZV9kYXRhX2dldChjb25zdCBBVkZyYW1lU2lkZURhdGEgKipzZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgbmJf c2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBB VkZyYW1lU2lkZURhdGFUeXBlIHR5cGUpCiB7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzZXQu bmJfc2Q7IGkrKykgewotICAgICAgICBpZiAoc2V0LnNkW2ldLT50eXBlID09IHR5cGUpCi0gICAg ICAgICAgICByZXR1cm4gc2V0LnNkW2ldOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJfc2Q7 IGkrKykgeworICAgICAgICBpZiAoc2RbaV0tPnR5cGUgPT0gdHlwZSkKKyAgICAgICAgICAgIHJl dHVybiBzZFtpXTsKICAgICB9CiAgICAgcmV0dXJuIE5VTEw7CiB9CkBAIC05NDIsMTEgKzkzNSw4 IEBAIEFWRnJhbWVTaWRlRGF0YSAqYXZfZnJhbWVfc2lkZV9kYXRhX3NldF9nZXRfZW50cnkoY29u c3QgQVZGcmFtZVNpZGVEYXRhU2V0IHNldCwKIEFWRnJhbWVTaWRlRGF0YSAqYXZfZnJhbWVfZ2V0 X3NpZGVfZGF0YShjb25zdCBBVkZyYW1lICpmcmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlbnVtIEFWRnJhbWVTaWRlRGF0YVR5cGUgdHlwZSkKIHsKLSAgICBy ZXR1cm4gYXZfZnJhbWVfc2lkZV9kYXRhX3NldF9nZXRfZW50cnkoCi0gICAgICAgIChjb25zdCBB VkZyYW1lU2lkZURhdGFTZXQpewotICAgICAgICAgICAgLnNkICAgID0gZnJhbWUtPnNpZGVfZGF0 YSwKLSAgICAgICAgICAgIC5uYl9zZCA9IGZyYW1lLT5uYl9zaWRlX2RhdGEKLSAgICAgICAgfSwK KyAgICByZXR1cm4gKEFWRnJhbWVTaWRlRGF0YSAqKWF2X2ZyYW1lX3NpZGVfZGF0YV9nZXQoCisg ICAgICAgIChjb25zdCBBVkZyYW1lU2lkZURhdGEgKiopZnJhbWUtPnNpZGVfZGF0YSwgZnJhbWUt Pm5iX3NpZGVfZGF0YSwKICAgICAgICAgdHlwZQogICAgICk7CiB9CmRpZmYgLS1naXQgYS9saWJh dnV0aWwvZnJhbWUuaCBiL2xpYmF2dXRpbC9mcmFtZS5oCmluZGV4IGU4NTE3YmY2YWQuLjc1MWY3 YTY3ZDYgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC9mcmFtZS5oCisrKyBiL2xpYmF2dXRpbC9mcmFt ZS5oCkBAIC0yNTEsMTQgKzI1MSw2IEBAIHR5cGVkZWYgc3RydWN0IEFWRnJhbWVTaWRlRGF0YSB7 CiAgICAgQVZCdWZmZXJSZWYgKmJ1ZjsKIH0gQVZGcmFtZVNpZGVEYXRhOwogCi0vKioKLSAqIFN0 cnVjdHVyZSB0byBob2xkIGEgc2V0IG9mIEFWRnJhbWVTaWRlRGF0YQotICovCi10eXBlZGVmIHN0 cnVjdCBBVkZyYW1lU2lkZURhdGFTZXQgewotICAgIEFWRnJhbWVTaWRlRGF0YSAqKnNkOwotICAg IGludCAgICAgICAgICAgIG5iX3NkOwotfSBBVkZyYW1lU2lkZURhdGFTZXQ7Ci0KIC8qKgogICog U3RydWN0dXJlIGRlc2NyaWJpbmcgYSBzaW5nbGUgUmVnaW9uIE9mIEludGVyZXN0LgogICoKQEAg LTEwNjEsMTggKzEwNTMsMjMgQEAgY29uc3QgY2hhciAqYXZfZnJhbWVfc2lkZV9kYXRhX25hbWUo ZW51bSBBVkZyYW1lU2lkZURhdGFUeXBlIHR5cGUpOwogICogRnJlZSBhbGwgc2lkZSBkYXRhIGVu dHJpZXMgYW5kIHRoZWlyIGNvbnRlbnRzLCB0aGVuIHplcm9lcyBvdXQgdGhlCiAgKiBzdHJ1Y3Qg dmFsdWVzLgogICoKLSAqIEBwYXJhbSBzZXQgdGhlIHNldCB3aGljaCBzaG91bGQgYmUgdW5pbml0 aWFsaXplZAorICogQHBhcmFtIHNkICAgIHBvaW50ZXIgdG8gYXJyYXkgb2Ygc2lkZSBkYXRhIHRv IGZyZWUuIFdpbGwgYmUgc2V0IHRvIE5VTEwKKyAqICAgICAgICAgICAgICB1cG9uIHJldHVybi4K KyAqIEBwYXJhbSBuYl9zZCBwb2ludGVyIHRvIGFuIGludGVnZXIgY29udGFpbmluZyB0aGUgbnVt YmVyIG9mIGVudHJpZXMgaW4KKyAqICAgICAgICAgICAgICB0aGUgYXJyYXkuIFdpbGwgYmUgc2V0 IHRvIDAgdXBvbiByZXR1cm4uCiAgKi8KLXZvaWQgYXZfZnJhbWVfc2lkZV9kYXRhX3NldF91bmlu aXQoQVZGcmFtZVNpZGVEYXRhU2V0ICpzZXQpOwordm9pZCBhdl9mcmFtZV9zaWRlX2RhdGFfZnJl ZShBVkZyYW1lU2lkZURhdGEgKioqc2QsIGludCAqbmJfc2QpOwogCiAjZGVmaW5lIEFWX0ZSQU1F X1NJREVfREFUQV9TRVRfRkxBR19OT19EVVBMSUNBVEVTICgxIDw8IDApCiAKIC8qKgogICogQWRk IGEgbmV3IHNpZGUgZGF0YSBlbnRyeSB0byBhIHNldC4KICAqCi0gKiBAcGFyYW0gc2V0IGEgc2V0 IHRvIHdoaWNoIHRoZSBzaWRlIGRhdGEgc2hvdWxkIGJlIGFkZGVkCi0gKiBAcGFyYW0gdHlwZSB0 eXBlIG9mIHRoZSBhZGRlZCBzaWRlIGRhdGEKLSAqIEBwYXJhbSBzaXplIHNpemUgb2YgdGhlIHNp ZGUgZGF0YQorICogQHBhcmFtIHNkICAgIHBvaW50ZXIgdG8gYXJyYXkgb2Ygc2lkZSBkYXRhIHRv IHdoaWNoIHRvIGFkZCBhbm90aGVyIGVudHJ5LgorICogQHBhcmFtIG5iX3NkIHBvaW50ZXIgdG8g YW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbgorICogICAgICAg ICAgICAgIHRoZSBhcnJheS4KKyAqIEBwYXJhbSB0eXBlICB0eXBlIG9mIHRoZSBhZGRlZCBzaWRl IGRhdGEKKyAqIEBwYXJhbSBzaXplICBzaXplIG9mIHRoZSBzaWRlIGRhdGEKICAqIEBwYXJhbSBm bGFncyBTb21lIGNvbWJpbmF0aW9uIG9mIEFWX0ZSQU1FX1NJREVfREFUQV9TRVRfRkxBR18qIGZs YWdzLCBvciAwLgogICoKICAqIEByZXR1cm4gbmV3bHkgYWRkZWQgc2lkZSBkYXRhIG9uIHN1Y2Nl c3MsIE5VTEwgb24gZXJyb3IuIEluIGNhc2Ugb2YKQEAgLTEwODAsMTYgKzEwNzcsMTggQEAgdm9p ZCBhdl9mcmFtZV9zaWRlX2RhdGFfc2V0X3VuaW5pdChBVkZyYW1lU2lkZURhdGFTZXQgKnNldCk7 CiAgKiAgICAgICAgIG9mIG1hdGNoaW5nIEFWRnJhbWVTaWRlRGF0YVR5cGUgd2lsbCBiZSByZW1v dmVkIGJlZm9yZSB0aGUKICAqICAgICAgICAgYWRkaXRpb24gaXMgYXR0ZW1wdGVkLgogICovCi1B VkZyYW1lU2lkZURhdGEgKmF2X2ZyYW1lX3NpZGVfZGF0YV9zZXRfbmV3X2VudHJ5KEFWRnJhbWVT aWRlRGF0YVNldCAqc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbnVtIEFWRnJhbWVTaWRlRGF0YVR5cGUgdHlwZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBm bGFncyk7CitBVkZyYW1lU2lkZURhdGEgKmF2X2ZyYW1lX3NpZGVfZGF0YV9uZXcoQVZGcmFtZVNp ZGVEYXRhICoqKnNkLCBpbnQgKm5iX3NkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVudW0gQVZGcmFtZVNpZGVEYXRhVHlwZSB0eXBlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQgZmxhZ3Mp OwogCiAvKioKLSAqIEFkZCBhIG5ldyBzaWRlIGRhdGEgZW50cnkgdG8gYSBzZXQgYmFzZWQgb24g ZXhpc3Rpbmcgc2lkZSBkYXRhLgorICogQWRkIGEgbmV3IHNpZGUgZGF0YSBlbnRyeSB0byBhIHNl dCBiYXNlZCBvbiBleGlzdGluZyBzaWRlIGRhdGEsIHRha2luZworICogYSByZWZlcmVuY2UgdG93 YXJkcyB0aGUgY29udGFpbmVkIEFWQnVmZmVyUmVmLgogICoKLSAqIEBwYXJhbSBkc3QgYSBzZXQg dG8gd2hpY2ggdGhlIHNpZGUgZGF0YSBzaG91bGQgYmUgYWRkZWQKLSAqIEBwYXJhbSBzcmMgc2lk ZSBkYXRhIHdoaWNoIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgc2V0CisgKiBAcGFyYW0gc2QgICAg cG9pbnRlciB0byBhcnJheSBvZiBzaWRlIGRhdGEgdG8gd2hpY2ggdG8gYWRkIGFub3RoZXIgZW50 cnkuCisgKiBAcGFyYW0gbmJfc2QgcG9pbnRlciB0byBhbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhl IG51bWJlciBvZiBlbnRyaWVzIGluCisgKiAgICAgICAgICAgICAgdGhlIGFycmF5LgorICogQHBh cmFtIHNyYyAgIHNpZGUgZGF0YSB3aGljaCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIHNldAogICog QHBhcmFtIGZsYWdzIFNvbWUgY29tYmluYXRpb24gb2YgQVZfRlJBTUVfU0lERV9EQVRBX1NFVF9G TEFHXyogZmxhZ3MsIG9yIDAuCiAgKgogICogQHJldHVybiBuZWdhdGl2ZSBlcnJvciBjb2RlIG9u IGZhaWx1cmUsID49MCBvbiBzdWNjZXNzLiBJbiBjYXNlIG9mCkBAIC0xMDk3LDIxICsxMDk2LDIz IEBAIEFWRnJhbWVTaWRlRGF0YSAqYXZfZnJhbWVfc2lkZV9kYXRhX3NldF9uZXdfZW50cnkoQVZG cmFtZVNpZGVEYXRhU2V0ICpzZXQsCiAgKiAgICAgICAgIG9mIG1hdGNoaW5nIEFWRnJhbWVTaWRl RGF0YVR5cGUgd2lsbCBiZSByZW1vdmVkIGJlZm9yZSB0aGUKICAqICAgICAgICAgYWRkaXRpb24g aXMgYXR0ZW1wdGVkLgogICovCi1pbnQgYXZfZnJhbWVfc2lkZV9kYXRhX3NldF9lbnRyeV9mcm9t X3NkKEFWRnJhbWVTaWRlRGF0YVNldCAqZHN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBBVkZyYW1lU2lkZURhdGEgKnNyYywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKK2ludCBhdl9m cmFtZV9zaWRlX2RhdGFfZnJvbV9zZChBVkZyYW1lU2lkZURhdGEgKioqc2QsIGludCAqbmJfc2Qs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQVZGcmFtZVNpZGVEYXRhICpz cmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsK IAogLyoqCiAgKiBHZXQgYSBzaWRlIGRhdGEgZW50cnkgb2YgYSBzcGVjaWZpYyB0eXBlIGZyb20g YSBzZXQuCiAgKgotICogQHBhcmFtIHNldCB0aGUgc2V0IGZyb20gd2hpY2ggc2lkZSBkYXRhIHNo b3VsZCBiZSBxdWVyaWVkIGZyb20KLSAqIEBwYXJhbSB0eXBlIHR5cGUgb2Ygc2lkZSBkYXRhIHRv IGJlIHF1ZXJpZWQKKyAqIEBwYXJhbSBzZCAgICBhcnJheSBvZiBzaWRlIGRhdGEuCisgKiBAcGFy YW0gbmJfc2QgaW50ZWdlciBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUg YXJyYXkuCisgKiBAcGFyYW0gdHlwZSAgdHlwZSBvZiBzaWRlIGRhdGEgdG8gYmUgcXVlcmllZAog ICoKICAqIEByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBzaWRlIGRhdGEgb2YgYSBnaXZlbiB0eXBl IG9uIHN1Y2Nlc3MsIE5VTEwgaWYgdGhlcmUKICAqICAgICAgICAgaXMgbm8gc2lkZSBkYXRhIHdp dGggc3VjaCB0eXBlIGluIHRoaXMgc2V0LgogICovCi1BVkZyYW1lU2lkZURhdGEgKmF2X2ZyYW1l X3NpZGVfZGF0YV9zZXRfZ2V0X2VudHJ5KGNvbnN0IEFWRnJhbWVTaWRlRGF0YVNldCBzZXQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQVZG cmFtZVNpZGVEYXRhVHlwZSB0eXBlKTsKK2NvbnN0IEFWRnJhbWVTaWRlRGF0YSAqYXZfZnJhbWVf c2lkZV9kYXRhX2dldChjb25zdCBBVkZyYW1lU2lkZURhdGEgKipzZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgbmJfc2QsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBBVkZyYW1lU2lkZURh dGFUeXBlIHR5cGUpOwogCiAvKioKICAqIEB9CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvdGVzdHMv c2lkZV9kYXRhX3NldC5jIGIvbGliYXZ1dGlsL3Rlc3RzL3NpZGVfZGF0YV9zZXQuYwppbmRleCA4 MjBiM2FhYzQ0Li43ZWY5OWRiM2QyIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvdGVzdHMvc2lkZV9k YXRhX3NldC5jCisrKyBiL2xpYmF2dXRpbC90ZXN0cy9zaWRlX2RhdGFfc2V0LmMKQEAgLTIyLDM2 ICsyMiw0MiBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9mcmFtZS5jIgogI2luY2x1ZGUgImxpYmF2 dXRpbC9tYXN0ZXJpbmdfZGlzcGxheV9tZXRhZGF0YS5oIgogCi1zdGF0aWMgdm9pZCBwcmludF9j bGxzKGNvbnN0IEFWRnJhbWVTaWRlRGF0YVNldCBzZXQpCitzdGF0aWMgdm9pZCBwcmludF9jbGxz KGNvbnN0IEFWRnJhbWVTaWRlRGF0YSAqKnNkLCBjb25zdCBpbnQgbmJfc2QpCiB7Ci0gICAgZm9y IChpbnQgaSA9IDA7IGkgPCBzZXQubmJfc2Q7IGkrKykgewotICAgICAgICBBVkZyYW1lU2lkZURh dGEgKnNkID0gc2V0LnNkW2ldOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJfc2Q7IGkrKykg eworICAgICAgICBjb25zdCBBVkZyYW1lU2lkZURhdGEgKmVudHJ5ID0gc2RbaV07CiAKICAgICAg ICAgcHJpbnRmKCJzZCAlZCwgJXMiLAotICAgICAgICAgICAgICAgaSwgYXZfZnJhbWVfc2lkZV9k YXRhX25hbWUoc2QtPnR5cGUpKTsKKyAgICAgICAgICAgICAgIGksIGF2X2ZyYW1lX3NpZGVfZGF0 YV9uYW1lKGVudHJ5LT50eXBlKSk7CiAKLSAgICAgICAgaWYgKHNkLT50eXBlICE9IEFWX0ZSQU1F X0RBVEFfQ09OVEVOVF9MSUdIVF9MRVZFTCkgeworICAgICAgICBpZiAoZW50cnktPnR5cGUgIT0g QVZfRlJBTUVfREFUQV9DT05URU5UX0xJR0hUX0xFVkVMKSB7CiAgICAgICAgICAgICBwdXRjaGFy KCdcbicpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBwcmlu dGYoIjogTWF4Q0xMOiAldVxuIiwKLSAgICAgICAgICAgICAgICgoQVZDb250ZW50TGlnaHRNZXRh ZGF0YSAqKXNkLT5kYXRhKS0+TWF4Q0xMKTsKKyAgICAgICAgICAgICAgICgoQVZDb250ZW50TGln aHRNZXRhZGF0YSAqKWVudHJ5LT5kYXRhKS0+TWF4Q0xMKTsKICAgICB9CiB9CiAKK3R5cGVkZWYg c3RydWN0IEZyYW1lU2lkZURhdGFTZXQgeworICAgIEFWRnJhbWVTaWRlRGF0YSAqKnNkOworICAg IGludCAgICAgICAgICAgIG5iX3NkOworfSBGcmFtZVNpZGVEYXRhU2V0OworCiBpbnQgbWFpbih2 b2lkKQogewotICAgIEFWRnJhbWVTaWRlRGF0YVNldCBzZXQgPSB7IDAgfTsKKyAgICBGcmFtZVNp ZGVEYXRhU2V0IHNldCA9IHsgMCB9OwogCiAgICAgYXZfYXNzZXJ0MCgKLSAgICAgICAgYXZfZnJh bWVfc2lkZV9kYXRhX3NldF9uZXdfZW50cnkoCi0gICAgICAgICAgICAmc2V0LCBBVl9GUkFNRV9E QVRBX0FNQklFTlRfVklFV0lOR19FTlZJUk9OTUVOVCwgMCwgMCkpOworICAgICAgICBhdl9mcmFt ZV9zaWRlX2RhdGFfbmV3KCZzZXQuc2QsICZzZXQubmJfc2QsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQVZfRlJBTUVfREFUQV9BTUJJRU5UX1ZJRVdJTkdfRU5WSVJPTk1FTlQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCkpOwogCiAgICAgLy8gdGVzdCBlbnRy aWVzIGluIHRoZSBtaWRkbGUKICAgICBmb3IgKGludCB2YWx1ZSA9IDE7IHZhbHVlIDwgNDsgdmFs dWUrKykgewotICAgICAgICBBVkZyYW1lU2lkZURhdGEgKnNkID0gYXZfZnJhbWVfc2lkZV9kYXRh X3NldF9uZXdfZW50cnkoCi0gICAgICAgICAgICAmc2V0LCBBVl9GUkFNRV9EQVRBX0NPTlRFTlRf TElHSFRfTEVWRUwsCisgICAgICAgIEFWRnJhbWVTaWRlRGF0YSAqc2QgPSBhdl9mcmFtZV9zaWRl X2RhdGFfbmV3KAorICAgICAgICAgICAgJnNldC5zZCwgJnNldC5uYl9zZCwgQVZfRlJBTUVfREFU QV9DT05URU5UX0xJR0hUX0xFVkVMLAogICAgICAgICAgICAgc2l6ZW9mKEFWQ29udGVudExpZ2h0 TWV0YWRhdGEpLCAwKTsKIAogICAgICAgICBhdl9hc3NlcnQwKHNkKTsKQEAgLTYwLDEzICs2Niwx MyBAQCBpbnQgbWFpbih2b2lkKQogICAgIH0KIAogICAgIGF2X2Fzc2VydDAoCi0gICAgICAgIGF2 X2ZyYW1lX3NpZGVfZGF0YV9zZXRfbmV3X2VudHJ5KAotICAgICAgICAgICAgJnNldCwgQVZfRlJB TUVfREFUQV9TUEhFUklDQUwsIDAsIDApKTsKKyAgICAgICAgYXZfZnJhbWVfc2lkZV9kYXRhX25l dygKKyAgICAgICAgICAgICZzZXQuc2QsICZzZXQubmJfc2QsIEFWX0ZSQU1FX0RBVEFfU1BIRVJJ Q0FMLCAwLCAwKSk7CiAKICAgICAvLyB0ZXN0IGVudHJpZXMgYXQgdGhlIGVuZAogICAgIGZvciAo aW50IHZhbHVlID0gMTsgdmFsdWUgPCA0OyB2YWx1ZSsrKSB7Ci0gICAgICAgIEFWRnJhbWVTaWRl RGF0YSAqc2QgPSBhdl9mcmFtZV9zaWRlX2RhdGFfc2V0X25ld19lbnRyeSgKLSAgICAgICAgICAg ICZzZXQsIEFWX0ZSQU1FX0RBVEFfQ09OVEVOVF9MSUdIVF9MRVZFTCwKKyAgICAgICAgQVZGcmFt ZVNpZGVEYXRhICpzZCA9IGF2X2ZyYW1lX3NpZGVfZGF0YV9uZXcoCisgICAgICAgICAgICAmc2V0 LnNkLCAmc2V0Lm5iX3NkLCBBVl9GUkFNRV9EQVRBX0NPTlRFTlRfTElHSFRfTEVWRUwsCiAgICAg ICAgICAgICBzaXplb2YoQVZDb250ZW50TGlnaHRNZXRhZGF0YSksIDApOwogCiAgICAgICAgIGF2 X2Fzc2VydDAoc2QpOwpAQCAtNzUsMTEgKzgxLDExIEBAIGludCBtYWluKHZvaWQpCiAgICAgfQog CiAgICAgcHV0cygiSW5pdGlhbCBhZGRpdGlvbiByZXN1bHRzIHdpdGggZHVwbGljYXRlczoiKTsK LSAgICBwcmludF9jbGxzKHNldCk7CisgICAgcHJpbnRfY2xscygoY29uc3QgQVZGcmFtZVNpZGVE YXRhICoqKXNldC5zZCwgc2V0Lm5iX3NkKTsKIAogICAgIHsKLSAgICAgICAgQVZGcmFtZVNpZGVE YXRhICpzZCA9IGF2X2ZyYW1lX3NpZGVfZGF0YV9zZXRfbmV3X2VudHJ5KAotICAgICAgICAgICAg JnNldCwgQVZfRlJBTUVfREFUQV9DT05URU5UX0xJR0hUX0xFVkVMLAorICAgICAgICBBVkZyYW1l U2lkZURhdGEgKnNkID0gYXZfZnJhbWVfc2lkZV9kYXRhX25ldygKKyAgICAgICAgICAgICZzZXQu c2QsICZzZXQubmJfc2QsIEFWX0ZSQU1FX0RBVEFfQ09OVEVOVF9MSUdIVF9MRVZFTCwKICAgICAg ICAgICAgIHNpemVvZihBVkNvbnRlbnRMaWdodE1ldGFkYXRhKSwKICAgICAgICAgICAgIEFWX0ZS QU1FX1NJREVfREFUQV9TRVRfRkxBR19OT19EVVBMSUNBVEVTKTsKIApAQCAtODksOSArOTUsOSBA QCBpbnQgbWFpbih2b2lkKQogICAgIH0KIAogICAgIHB1dHMoIlxuRmluYWwgc3RhdGUgYWZ0ZXIg YSBzaW5nbGUgJ25vLWR1cGxpY2F0ZXMnIGFkZGl0aW9uOiIpOwotICAgIHByaW50X2NsbHMoc2V0 KTsKKyAgICBwcmludF9jbGxzKChjb25zdCBBVkZyYW1lU2lkZURhdGEgKiopc2V0LnNkLCBzZXQu bmJfc2QpOwogCi0gICAgYXZfZnJhbWVfc2lkZV9kYXRhX3NldF91bmluaXQoJnNldCk7CisgICAg YXZfZnJhbWVfc2lkZV9kYXRhX2ZyZWUoJnNldC5zZCwgJnNldC5uYl9zZCk7CiAKICAgICByZXR1 cm4gMDsKIH0KCi0tIAoyLjQzLjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBl Zy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpU byB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJl cXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K