From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 1A0244D111 for ; Fri, 9 Jan 2026 19:55:03 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'+EGu5kYS5VuA2+DOmETVYrO/ZAPKQup4uscv2Ekzp08=', expected b'1Ii0gq0vyN1G9RcXucp1ct21hSpI3J/XSsvCbV0OxpY=')) header.d=artisan-build.20230601.gappssmtp.com header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1767988487; h=mime-version : date : message-id : to : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=+EGu5kYS5VuA2+DOmETVYrO/ZAPKQup4uscv2Ekzp08=; b=hS9a73tYPKXa1LuBenYlQpjtYRPOhlPBuoGnZ0Q5jqofrE7GjOtvJ5A9Gq2dpn9Zm2Z1a DsEE36j03vorp2T5xQLw6hacG8X0tSQzrERdFDrtxetpH3A1gR5bzGoLNOFkXcfolPCI0xg NYSqWsC/jdNcasYmX5Ne24R6Omt+NKYFW/per9wGO6yX3APvwNZfBL1VT9EcL03FFDM57i4 KUASJorTHz30FSuvMLc1B2gJCkh/1WMwkX5Vc8bSPkYn+/1Dpxnrj2R8SVoVv/u5iq4QShG pp89CPqjBG2NoJAoh/ST32kPE3ZItdtlddKe199qSNAOCfkt7eP8rdCKPOWA== Received: from [172.20.0.4] (unknown [172.20.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 725B8690DEB; Fri, 9 Jan 2026 21:54:47 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1767988473; b=c5UIcpqxkbtlK5oxGy/ZJqERQ9gZOipeL3NOk6mhCfGtkvE+JW+9z+sm478XGEF78d1dG 7jsKTIBms5JCbHWdk/s0IK57FaK2Gt6anCOFAyBK7jTnyyn/p3DHb9WbJFyTh6JrzRfJ2+F LHcSuZUBaXur5OJZC5CNHFofBGrlb/f2AXXXJelgibk0y3npoK+jK5nunIhX2gidRSe3D7q Ft/SW3ttzGAjLoR2H8GgQ9XF23WVptoRe7Oa9AP7uTuHhcxiO/viq7yomiabtwQSpBOML1X NOGUnUaj1TohgLhmhPp+iWPhoflPho/nBP5jQy0JHbd7s7Mk5yBXbI0JSuRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1767988473; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=+EGu5kYS5VuA2+DOmETVYrO/ZAPKQup4uscv2Ekzp08=; b=AudHRn3C1RRY/cmYPKvD5VfPdl47m2F4DiyGJ5jNOVfspY/tAjf61B44FG8Hw2wDumz3Y 41Cc2/BDhDIPiZEOvglKBYENpgyboafxcIFVj0So17y0UlBEkeItmFRqHlVq4QsLppW4/05 l0ius8VOzFV0ldLGSqs3YnZFlBL4cLmUKs444U/XXG9OfRQXwzRDpG64MZgVkURLEzfcgVE zALnLYHRNPqIz2bpEA18HVVo1/ixfaMKngj4fDJAyH86ByTl2K0LEuywf32lPKQeIDSb0KC xp1dtAIDtLYYyVRhyul4UPNmVHx0rY/aPxqauL+KqzcO7TsZ5Iddw433xM9g== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=artisan-build.20230601.gappssmtp.com; arc=none; dmarc=fail header.from=artisan.build policy.dmarc=none Authentication-Results: ffmpeg.org; dkim=pass header.d=artisan-build.20230601.gappssmtp.com; arc=none (Message is not ARC signed); dmarc=fail (Used From Domain Record) header.from=artisan.build policy.dmarc=none Received: from mail-vs1-f42.google.com (mail-vs1-f42.google.com [209.85.217.42]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id CD8936905FC for ; Fri, 9 Jan 2026 21:54:20 +0200 (EET) Received: by mail-vs1-f42.google.com with SMTP id ada2fe7eead31-5efa4229bd2so417092137.0 for ; Fri, 09 Jan 2026 11:54:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=artisan-build.20230601.gappssmtp.com; s=20230601; t=1767988459; x=1768593259; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=1Ii0gq0vyN1G9RcXucp1ct21hSpI3J/XSsvCbV0OxpY=; b=VGsBzgY7hZxe0lOvYhxmmAykOafenanf842Qw2/hnN9oG2HLi4TDjMgWJvmI9J23Ec zTIpunMwOxrzrGQL8mmX65IEveGOZOcaSov7Gcau3re8Bb2BD/6pJ2aBFWjSzA3jUV0h Ardbkl+x+nySgOBAuSmK3iStlgk7Q2RfgN7LsgEtiLgaezozjxcJMcwxS2NH2FXDiYOz rLKE1mOAPFpJDp32v+NnBeHinTutwV35DYLgblJr6p9BKIpXxhysm/KXL6Mktc/JIuai TKR/sY68ghGbDyOlKG3FA8pNV2aPbi1rjnOzLu5dO/BOGHtDU+MZSxh9Hxvo0S6LDARO XLkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767988459; x=1768593259; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1Ii0gq0vyN1G9RcXucp1ct21hSpI3J/XSsvCbV0OxpY=; b=Eu3sT9Ro2Eufo545g+nnP4AXcTjQceaENSLR2U0Bds2h/l02yzO0KUGYf1uIFzW8Bs fuVc4x9NEnc7up5gI8XX7I20/8ONDaX9dgPQXBOoPK2o1wFuJ+9GYXqMWgYiDOPBeJD3 qqXhR/agtgDU5lUe7vdKThvnC05SA9lcVQiz4CXTRvoDS+AwdNloU5QKXD7Cu5vTaZEs g4KBBLZjGLb2maxtkeus3PE3mljeKsHNgzOWqxCVL6/i0sy+FRGVa4et8y2/9igSDRUm kMzzOKhFJKO5tzoHy2Oo1C1W+0D5MaME4+4ZCniuyW2lw0ypETQVazEgROmD3vcP+O59 Tk1A== X-Gm-Message-State: AOJu0YyYal4L5bSwp3b1eZlt73PEbGr8cS6hgcMcnLpLcQIxqORzk02Q TGM945cOLHroq7oxpypZf5CFt8OUQibE0ghA6g6XqclC9pJo8Y7buxsIV0TBG+LCb/uKZ4C3jUQ /0MZW1vOVZQX/PfJSTvGMti9EuRPvyblCectVGiGVBEaW4b2iF77aq/FXcQ== X-Gm-Gg: AY/fxX72PM4wpVqrKCo0bV83DIreMtkD3kN/oyDnKAht4dDawVlGxPmIPoRcQsG3HWm leTDKGERhL8c/sg+xeUgceWFGV/rB0LvW++P5io7SAwzkEE9x3RubUCFYjNaAUYwHDbr3gwRDPK +kOZ2t366Gt/dSSIPEygrLcUsotRUMKTP0IFkMCP5znK10h/36Ixh+DVQwisy7djHYWUZ04vUXX NZTNagIbZvDRCMIYrIye++Bqt4r2jnG4+VMlXaInqwIQySLMLYmcLXYb68/Nc9d255YsX8ztV5M c5UetvPrzBAYpgZ3pKAV2gOIZwTJXZ9HtPd2jyUw X-Google-Smtp-Source: AGHT+IG1q3RefgvlOfUOocGuOneX7V8VJbQ2POVLN+qtIaYOdBfIf8BsdRKpw0cZPodYeO09Wl7O01LKbujOp9/61sE= X-Received: by 2002:a05:6102:f9b:b0:5ef:255a:22f1 with SMTP id ada2fe7eead31-5ef255a26b5mr1634249137.17.1767988458722; Fri, 09 Jan 2026 11:54:18 -0800 (PST) MIME-Version: 1.0 Date: Fri, 9 Jan 2026 11:54:08 -0800 X-Gm-Features: AZwV_Qj6z4On9D453ejwYlD14bTyx9Jm_coe9ih3BHZrKcf7zB_-UMhu7I-A-4A Message-ID: To: ffmpeg-devel@ffmpeg.org Message-ID-Hash: HTGQCJGDOLLLWLPT6ZP7MVNMLOO4PVDG X-Message-ID-Hash: HTGQCJGDOLLLWLPT6ZP7MVNMLOO4PVDG X-MailFrom: SRS0=LUvZ=7O=artisan.build=len@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Content-Filtered-By: Mailman/MimeDel 3.3.10 X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH RFC] libavfilter: expose expression variable metadata via AVFilter struct List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Len Woodward via ffmpeg-devel Cc: Len Woodward Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Archived-At: List-Archive: List-Post: IyMgUHJpb3IgRGlzY3Vzc2lvbg0KDQpBIHNlYXJjaCBvZiB0aGUgbWFpbGluZyBsaXN0IGFyY2hp dmVzIGZvdW5kIG5vIHByaW9yIHByb3Bvc2FscyBmb3IgdGhpcw0Kc3BlY2lmaWMgZmVhdHVyZS4g VGhlIGNsb3Nlc3QgcmVsYXRlZCBkaXNjdXNzaW9uIGlzIHRoZSBbMjAxMyBTY3JpcHRpbmcNClJG Q10oaHR0cHM6Ly9mZm1wZWcub3JnL3BpcGVybWFpbC9mZm1wZWctZGV2ZWwvMjAxMy1Ob3ZlbWJl ci8xNTEwNjkuaHRtbCksDQp3aGljaCByYWlzZWQgdGhlIGJyb2FkZXIgY2hhbGxlbmdlIG9mIGJp bmRpbmcgdGhlIGxhdmZpIEFQSSB0byBvdGhlcg0KbGFuZ3VhZ2VzLiBUaGlzIHByb3Bvc2FsIGFk ZHJlc3NlcyBvbmUgbmFycm93IGFzcGVjdCBvZiB0aGF0OiBtYWtpbmcgZmlsdGVyDQpleHByZXNz aW9uIHZhcmlhYmxlcyBkaXNjb3ZlcmFibGUuDQoNCiMjIFByb2JsZW0NCg0KRmlsdGVycyBsaWtl IGBkcmF3dGV4dGAsIGBnZXFgLCBhbmQgYG92ZXJsYXlgIGFjY2VwdCBleHByZXNzaW9ucw0KcmVm ZXJlbmNpbmcgdmFyaWFibGVzIHN1Y2ggYXMgYHdgLCBgaGAsIGB0YCwgYG5gLCBldGMuIFRoZXNl IHZhcmlhYmxlcyBhcmUNCmRvY3VtZW50ZWQgaW4gRkZtcGVnJ3Mgb2ZmaWNpYWwgZG9jdW1lbnRh dGlvbiBhbmQgdXNlZCBpbiBjb3VudGxlc3MgZmlsdGVyDQpzdHJpbmdzIHdvcmxkd2lkZeKAlGJ1 dCB0aGV5J3JlIG5vdCBwcm9ncmFtbWF0aWNhbGx5IGRpc2NvdmVyYWJsZS4NCg0KQXBwbGljYXRp b25zIGJ1aWxkaW5nIGZpbHRlciBncmFwaHMgcHJvZ3JhbW1hdGljYWxseSAoR1VJcywgbGFuZ3Vh Z2UNCmJpbmRpbmdzLCB2aWRlbyBlZGl0b3JzKSBjdXJyZW50bHkgbXVzdCBkdXBsaWNhdGUgRkZt cGVnJ3MgaW50ZXJuYWwNCmB2YXJfbmFtZXNgIGFycmF5cyBhbmQgbWFudWFsbHkga2VlcCB0aGVt IGluIHN5bmMuIFRoaXMgaXMgZnJhZ2lsZSBhbmQNCmNyZWF0ZXMgbWFpbnRlbmFuY2UgYnVyZGVu IGFjcm9zcyB0aGUgZWNvc3lzdGVtLg0KDQojIyBXaHkgVGhlc2UgQXJlIEFscmVhZHkgU3RhYmxl IEFQSQ0KDQpUaGVzZSB2YXJpYWJsZXMgYXJlIGRvY3VtZW50ZWQsIHVzZXItZmFjaW5nLCBhbmQg Y2Fubm90IGJlIGNoYW5nZWQgd2l0aG91dA0KYnJlYWtpbmcgZXhpc3RpbmcgZmlsdGVyIHN0cmlu Z3MuIFRoZSBzdGFiaWxpdHkgY29udHJhY3QgYWxyZWFkeQ0KZXhpc3Rz4oCUdGhpcyBwcm9wb3Nh bCBzaW1wbHkgZXh0ZW5kcyBwcm9ncmFtbWF0aWMgYWNjZXNzIHRvIG1hdGNoIHdoYXQNCnN0cmlu Zy1iYXNlZCB1c2VycyBhbHJlYWR5IGhhdmUuDQoNCiMjIFByb3Bvc2VkIFNvbHV0aW9uDQoNCkFk ZCBhbiBgZXhwcmVzc2lvbl92YXJzYCBmaWVsZCB0byB0aGUgYEFWRmlsdGVyYCBzdHJ1Y3QsIGZv bGxvd2luZyB0aGUNCnBhdHRlcm4gZXN0YWJsaXNoZWQgYnkgYEFWT3B0aW9uYCBmb3IgZmlsdGVy IG9wdGlvbnMuDQoNCioqUHVibGljIEFQSSBhZGRpdGlvbiAoYXZmaWx0ZXIuaCk6KioNCg0KYGBg Yw0KdHlwZWRlZiBzdHJ1Y3QgQVZGaWx0ZXJFeHByVmFyIHsNCiAgICBjb25zdCBjaGFyICpuYW1l OyAgICAvKiBWYXJpYWJsZSBuYW1lIChlLmcuLCAidGV4dF93IikgKi8NCiAgICBjb25zdCBjaGFy ICpoZWxwOyAgICAvKiBEZXNjcmlwdGlvbiAoZS5nLiwgIldpZHRoIG9mIHJlbmRlcmVkIHRleHQi KSAqLw0KfSBBVkZpbHRlckV4cHJWYXI7DQoNCnR5cGVkZWYgc3RydWN0IEFWRmlsdGVyIHsNCiAg ICAvLyAuLi4gZXhpc3RpbmcgZmllbGRzIC4uLg0KDQogICAgLyoqDQogICAgICogTlVMTC10ZXJt aW5hdGVkIGFycmF5IG9mIGV4cHJlc3Npb24gdmFyaWFibGVzIGFjY2VwdGVkIGJ5IHRoaXMNCmZp bHRlciwNCiAgICAgKiBvciBOVUxMIGlmIHRoZSBmaWx0ZXIgZG9lcyBub3QgdXNlIGV4cHJlc3Np b24gZXZhbHVhdGlvbi4NCiAgICAgKi8NCiAgICBjb25zdCBBVkZpbHRlckV4cHJWYXIgKmV4cHJl c3Npb25fdmFyczsNCn0gQVZGaWx0ZXI7DQpgYGANCg0KKipGaWx0ZXIgaW1wbGVtZW50YXRpb24g KGUuZy4sIHZmX2RyYXd0ZXh0LmMpOioqDQoNCmBgYGMNCi8vIEV4aXN0aW5nIGFycmF5IC0gdW5j aGFuZ2VkLCB1c2VkIGludGVybmFsbHkgYnkgYXZfZXhwcl9wYXJzZSgpLA0KLy8gZmZfcHJpbnRf ZXZhbF9leHByKCksIGFuZCBvdGhlciBpbnRlcm5hbCBmdW5jdGlvbnMNCnN0YXRpYyBjb25zdCBj aGFyICpjb25zdCB2YXJfbmFtZXNbXSA9IHsNCiAgICAiZGFyIiwgImgiLCAidyIsICJuIiwgInQi LCAidGV4dF9oIiwgInRleHRfdyIsDQogICAgLy8gLi4uDQogICAgTlVMTA0KfTsNCg0KLy8gTmV3 IGFycmF5IC0gcHVibGljIG1ldGFkYXRhIHdpdGggZG9jdW1lbnRhdGlvbg0Kc3RhdGljIGNvbnN0 IEFWRmlsdGVyRXhwclZhciBkcmF3dGV4dF9leHByX3ZhcnNbXSA9IHsNCiAgICB7ICJkYXIiLCAg ICAiRGlzcGxheSBhc3BlY3QgcmF0aW8iIH0sDQogICAgeyAiaCIsICAgICAgIlZpZGVvIGhlaWdo dCIgfSwNCiAgICB7ICJ3IiwgICAgICAiVmlkZW8gd2lkdGgiIH0sDQogICAgeyAibiIsICAgICAg IkZyYW1lIG51bWJlciAoc3RhcnRpbmcgYXQgMCkiIH0sDQogICAgeyAidCIsICAgICAgIlRpbWVz dGFtcCBpbiBzZWNvbmRzIiB9LA0KICAgIHsgInRleHRfaCIsICJIZWlnaHQgb2YgcmVuZGVyZWQg dGV4dCIgfSwNCiAgICB7ICJ0ZXh0X3ciLCAiV2lkdGggb2YgcmVuZGVyZWQgdGV4dCIgfSwNCiAg ICAvLyAuLi4NCiAgICB7IE5VTEwgfQ0KfTsNCg0KY29uc3QgQVZGaWx0ZXIgZmZfdmZfZHJhd3Rl eHQgPSB7DQogICAgLm5hbWUgICAgICAgICAgICA9ICJkcmF3dGV4dCIsDQogICAgLy8gLi4uIGV4 aXN0aW5nIGZpZWxkcyAuLi4NCiAgICAuZXhwcmVzc2lvbl92YXJzID0gZHJhd3RleHRfZXhwcl92 YXJzLA0KfTsNCmBgYA0KDQoqKkFwcGxpY2F0aW9uIHVzYWdlOioqDQoNCmBgYGMNCmNvbnN0IEFW RmlsdGVyICpmID0gYXZmaWx0ZXJfZ2V0X2J5X25hbWUoImRyYXd0ZXh0Iik7DQppZiAoZi0+ZXhw cmVzc2lvbl92YXJzKSB7DQogICAgZm9yIChjb25zdCBBVkZpbHRlckV4cHJWYXIgKnYgPSBmLT5l eHByZXNzaW9uX3ZhcnM7IHYtPm5hbWU7IHYrKykNCiAgICAgICAgcHJpbnRmKCIgICVzIC0gJXNc biIsIHYtPm5hbWUsIHYtPmhlbHApOw0KfQ0KYGBgDQoNCiMjIFdoeSBUaGlzIEFwcHJvYWNoDQoN CjEuICoqRm9sbG93cyBlc3RhYmxpc2hlZCBwcmVjZWRlbnQqKjogTWlycm9ycyBob3cgYEFWT3B0 aW9uYCBleHBvc2VzIGZpbHRlcg0Kb3B0aW9ucy4gRGV2ZWxvcGVycyBhbHJlYWR5IHVuZGVyc3Rh bmQgdGhpcyBwYXR0ZXJuLg0KMi4gKipEaXNjb3ZlcmFibGUqKjogR2l2ZW4gYW55IGBBVkZpbHRl cipgLCBjaGVjayBpZiBpdCBoYXMgZXhwcmVzc2lvbg0KdmFyaWFibGVzLiBObyBuZWVkIGZvciBw ZXItZmlsdGVyIHN5bWJvbCBrbm93bGVkZ2UuDQozLiAqKlNlbGYtZG9jdW1lbnRpbmcqKjogSGVs cCB0ZXh0IChhbHJlYWR5IHdyaXR0ZW4gaW4gYC50ZXhpYCBmaWxlcykNCmJlY29tZXMgbWFjaGlu ZS1yZWFkYWJsZS4NCjQuICoqUHVyZWx5IGFkZGl0aXZlKio6IEV4aXN0aW5nIGludGVybmFsIGZ1 bmN0aW9ucyAoYGF2X2V4cHJfcGFyc2UoKWAsDQpgZmZfcHJpbnRfZXZhbF9leHByKClgLCBgZmZf cHJpbnRfZm9ybWF0dGVkX2V2YWxfZXhwcigpYCwgZXRjLikgY29udGludWUNCnVzaW5nIGB2YXJf bmFtZXNgIHVuY2hhbmdlZC4gTm8gc2lnbmF0dXJlIGNoYW5nZXMsIG5vIHJpc2sgdG8gZXhpc3Rp bmcgY29kZQ0KcGF0aHMuDQo1LiAqKk1pbm9yIHJlbGVhc2UgY29tcGF0aWJsZSoqOiBUaGlzIGNh biBsYW5kIGluIGEgbWlub3IgcmVsZWFzZSBzaW5jZSBpdA0KYWRkcyBmdW5jdGlvbmFsaXR5IHdp dGhvdXQgbW9kaWZ5aW5nIGV4aXN0aW5nIGJlaGF2aW9yLg0KNi4gKipFeHRlbnNpYmxlKio6IFRo ZSBzdHJ1Y3QgY2FuIGxhdGVyIGdhaW4gZmllbGRzICh0eXBlIGhpbnRzLCBmbGFncykNCndpdGhv dXQgYnJlYWtpbmcgdXNlcnMuDQoNCiMjIE9uIEFycmF5IER1cGxpY2F0aW9uDQoNClllcywgdGhp cyBtZWFucyBmaWx0ZXJzIGhhdmUgdHdvIGFycmF5cyB3aXRoIG92ZXJsYXBwaW5nIGNvbnRlbnQu IFRoaXMgaXMNCmludGVudGlvbmFsOg0KDQotIEJvdGggYXJyYXlzIGxpdmUgaW4gdGhlIHNhbWUg ZmlsZSwgYWRqYWNlbnQgdG8gZWFjaCBvdGhlcuKAlGRyaWZ0IGlzIGVhc3kNCnRvIHNwb3QgZHVy aW5nIHJldmlldw0KLSBUaGUgZXhpc3RpbmcgYHZhcl9uYW1lc2AgYXJyYXkgaXMgdXNlZCBieSBt dWx0aXBsZSBpbnRlcm5hbCBmdW5jdGlvbnM7DQpjaGFuZ2luZyBhbGwgb2YgdGhlbSBpcyBhIGxh cmdlciB1bmRlcnRha2luZyBiZXR0ZXIgc3VpdGVkIGZvciBhIG1ham9yDQpyZWxlYXNlDQotIFRo ZSBjb3N0IGlzIGEgZmV3IGh1bmRyZWQgYnl0ZXMgb2Ygc3RhdGljIHN0b3JhZ2UgcGVyIGZpbHRl cg0KDQpJZiBzb3VyY2UtbGV2ZWwgZHVwbGljYXRpb24gaXMgYSBjb25jZXJuLCBhbiBYLW1hY3Jv IGNhbiBnZW5lcmF0ZSBib3RoDQphcnJheXMgZnJvbSBhIHNpbmdsZSBkZWZpbml0aW9uOg0KDQpg YGBjDQojZGVmaW5lIERSQVdURVhUX0VYUFJfVkFSUyBcDQogICAgWCgiZGFyIiwgICAgIkRpc3Bs YXkgYXNwZWN0IHJhdGlvIikgXA0KICAgIFgoImgiLCAgICAgICJWaWRlbyBoZWlnaHQiKSBcDQog ICAgWCgidyIsICAgICAgIlZpZGVvIHdpZHRoIikNCiAgICAvLyAuLi4NCg0KI2RlZmluZSBYKG5h bWUsIGhlbHApIG5hbWUsDQpzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgdmFyX25hbWVzW10gPSB7 IERSQVdURVhUX0VYUFJfVkFSUyBOVUxMIH07DQojdW5kZWYgWA0KDQojZGVmaW5lIFgobmFtZSwg aGVscCkgeyBuYW1lLCBoZWxwIH0sDQpzdGF0aWMgY29uc3QgQVZGaWx0ZXJFeHByVmFyIGRyYXd0 ZXh0X2V4cHJfdmFyc1tdID0geyBEUkFXVEVYVF9FWFBSX1ZBUlMgew0KTlVMTCB9IH07DQojdW5k ZWYgWA0KYGBgDQoNClRoaXMgZWxpbWluYXRlcyBhbnkgcG9zc2liaWxpdHkgb2YgZHJpZnQgYmV0 d2VlbiBhcnJheXMuIEVpdGhlciBhcHByb2FjaA0Kd29ya3PigJRtYWludGFpbmVyIHByZWZlcmVu Y2UuDQoNCkEgZnV0dXJlIG1ham9yIHJlbGVhc2UgY291bGQgY29uc29saWRhdGUgdG8gYSBzaW5n bGUgYXJyYXkgYnkgdXBkYXRpbmcNCmludGVybmFsIGZ1bmN0aW9ucyB0byBhY2NlcHQgYEFWRmls dGVyRXhwclZhcipgLCBidXQgdGhhdCdzIGEgc2VwYXJhdGUsDQpsYXJnZXIgZWZmb3J0LiBUaGlz IHByb3Bvc2FsIGRlbGl2ZXJzIHZhbHVlIG5vdyB3aXRob3V0IHRoYXQgc2NvcGUuDQoNCiMjIFNp bXBsZXIgQWx0ZXJuYXRpdmVzDQoNCklmIGV4dGVuZGluZyBgQVZGaWx0ZXJgIGlzIHVuZGVzaXJh YmxlLCB0aGVzZSBhbHRlcm5hdGl2ZXMgYWxzbyBzb2x2ZSB0aGUNCmltbWVkaWF0ZSBwcm9ibGVt Og0KDQoqKkV4cG9ydCBleGlzdGluZyBzeW1ib2xzOioqDQpgYGBkaWZmDQotc3RhdGljIGNvbnN0 IGNoYXIgKmNvbnN0IHZhcl9uYW1lc1tdID0gew0KK2NvbnN0IGNoYXIgKmNvbnN0IGZmX2RyYXd0 ZXh0X3Zhcl9uYW1lc1tdID0gew0KYGBgDQoNCioqUGVyLWZpbHRlciBhY2Nlc3NvcjoqKg0KYGBg Yw0KY29uc3QgY2hhciAqY29uc3QgKmF2ZmlsdGVyX2RyYXd0ZXh0X2dldF92YXJfbmFtZXModm9p ZCk7DQpgYGANCg0KQm90aCB3b3JrLCBidXQgbGFjayBkaXNjb3ZlcmFiaWxpdHkgYW5kIG1ldGFk YXRhLiBJZiBjb21taXR0aW5nIHRvIEFQSQ0Kc3RhYmlsaXR5IGZvciBleHByZXNzaW9uIHZhcmlh YmxlcywgdGhlIGBBVkZpbHRlcmAgc3RydWN0IGFwcHJvYWNoIHByb3ZpZGVzDQpiZXR0ZXIgbG9u Zy10ZXJtIHZhbHVlLg0KDQojIyBTY29wZQ0KDQpJJ20gcHJlcGFyZWQgdG8gc3VibWl0IHBhdGNo ZXMgZm9yOg0KDQoxLiBgQVZGaWx0ZXJFeHByVmFyYCBzdHJ1Y3QgYW5kIGBBVkZpbHRlcmAgZmll bGQgYWRkaXRpb24NCjIuIE1pZ3JhdGlvbiBvZiBgZHJhd3RleHRgIGFzIHByb29mIG9mIGNvbmNl cHQNCjMuIE1pZ3JhdGlvbiBvZiBvdGhlciBleHByZXNzaW9uLWVuYWJsZWQgZmlsdGVycyBpZiBk ZXNpcmVkDQo0LiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMNCg0KSGFwcHkgdG8gc3RhcnQgd2l0aCBg ZHJhd3RleHRgIG9ubHksIG9yIGNvdmVyIGFsbCBmaWx0ZXJz4oCUd2hpY2hldmVyDQptYWludGFp bmVycyBwcmVmZXIuDQoNCi0tLQ0KDQpJJ3ZlIGVuY291bnRlcmVkIHRoaXMgbGltaXRhdGlvbiBi dWlsZGluZyBsYW5ndWFnZSBiaW5kaW5ncyBmb3IgRkZtcGVnDQpmaWx0ZXJzLiBUaGlzIGlzIGEg a25vd24gcGFpbiBwb2ludCBmb3IgcHJvamVjdHMgdGhhdCBidWlsZCBmaWx0ZXIgZ3JhcGhzDQpw cm9ncmFtbWF0aWNhbGx54oCUYW55IGFwcGxpY2F0aW9uIHRoYXQgdmFsaWRhdGVzIHVzZXIgZXhw cmVzc2lvbnMsIHByb3ZpZGVzDQphdXRvY29tcGxldGUsIG9yIGdlbmVyYXRlcyBkb2N1bWVudGF0 aW9uIGZhY2VzIHRoaXMgaXNzdWUuDQoNClRoaXMgUkZDIHNlZWtzIGZlZWRiYWNrIG9uIHRoZSBh cHByb2FjaCBiZWZvcmUgc3VibWl0dGluZyBwYXRjaGVzLiBJZg0KdGhlcmUncyBpbnRlcmVzdCwg SSdsbCBmb2xsb3cgdXAgd2l0aCBhIHByb3BlciBwYXRjaCBzZXJpZXMgaW5jbHVkaW5nDQpEb3h5 Z2VuIGRvY3VtZW50YXRpb24gYW5kIHZlcnNpb24gYnVtcC4NCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QgLS0g ZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBm Zm1wZWctZGV2ZWwtbGVhdmVAZmZtcGVnLm9yZwo=